llm-simple-router 0.9.19 → 0.9.21

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 (83) hide show
  1. package/config/recommended-retry-rules.json +1 -0
  2. package/dist/admin/providers.js +22 -6
  3. package/dist/admin/setup.js +2 -1
  4. package/dist/config/model-context.d.ts +2 -0
  5. package/dist/config/model-context.js +14 -6
  6. package/dist/core/types.d.ts +5 -0
  7. package/dist/db/index.js +45 -0
  8. package/dist/db/migrations/040_models_object_format.sql +4 -0
  9. package/dist/db/providers.d.ts +4 -0
  10. package/dist/db/providers.js +31 -0
  11. package/dist/middleware/admin-auth.js +2 -1
  12. package/dist/proxy/handler/proxy-handler.js +19 -1
  13. package/dist/proxy/transport/stream.d.ts +4 -1
  14. package/dist/proxy/transport/stream.js +21 -6
  15. package/dist/proxy/transport/transport-fn.d.ts +4 -0
  16. package/dist/proxy/transport/transport-fn.js +1 -1
  17. package/dist/utils/cookie-secure.d.ts +3 -0
  18. package/dist/utils/cookie-secure.js +8 -0
  19. package/frontend-dist/assets/CardContent-DmBQARma.js +1 -0
  20. package/frontend-dist/assets/CardTitle-DgwtSVqy.js +1 -0
  21. package/frontend-dist/assets/Checkbox-DgWzyASL.js +1 -0
  22. package/frontend-dist/assets/CollapsibleContent-BjJrE5cf.js +1 -0
  23. package/frontend-dist/assets/CollapsibleTrigger-C73cozLg.js +1 -0
  24. package/frontend-dist/assets/{Dashboard-yhOvjTlI.js → Dashboard-D47Lzd5i.js} +2 -2
  25. package/frontend-dist/assets/{Input-1iFstr5N.js → Input-glS226Q6.js} +1 -1
  26. package/frontend-dist/assets/Label-B2lstY9k.js +1 -0
  27. package/frontend-dist/assets/Login-B5v_CIaw.js +1 -0
  28. package/frontend-dist/assets/Logs-CC6e8ty3.js +1 -0
  29. package/frontend-dist/assets/MappingEntryEditor-auxWvl8S.js +1 -0
  30. package/frontend-dist/assets/{ModelCard-PiwXmas-.js → ModelCard-DixuS062.js} +1 -1
  31. package/frontend-dist/assets/ModelMappings-DtmMS2o6.js +1 -0
  32. package/frontend-dist/assets/Monitor-F6DD03LF.js +1 -0
  33. package/frontend-dist/assets/Providers-DZkl5ryZ.js +1 -0
  34. package/frontend-dist/assets/ProxyEnhancement-C1uXuPZm.js +1 -0
  35. package/frontend-dist/assets/QuickSetup-BEeZJQ3g.js +1 -0
  36. package/frontend-dist/assets/RetryRules-plJdXlmH.js +1 -0
  37. package/frontend-dist/assets/RouterKeys-CLh6XISQ.js +1 -0
  38. package/frontend-dist/assets/{RovingFocusItem-WFfF7xTx.js → RovingFocusItem-BnqO1JTY.js} +1 -1
  39. package/frontend-dist/assets/Schedules-btnuRbYc.js +1 -0
  40. package/frontend-dist/assets/Settings-CbQaUkQ5.js +6 -0
  41. package/frontend-dist/assets/Setup-8yOUQ97d.js +1 -0
  42. package/frontend-dist/assets/Switch-BwPbL6O4.js +1 -0
  43. package/frontend-dist/assets/TooltipTrigger-D4gYyjGF.js +1 -0
  44. package/frontend-dist/assets/TransformRulesForm-C6PBk8zI.js +1 -0
  45. package/frontend-dist/assets/UnifiedRequestDialog-rmWxp09D.js +3 -0
  46. package/frontend-dist/assets/VisuallyHiddenInput-BPy71v35.js +1 -0
  47. package/frontend-dist/assets/{button-DMmB7tDy.js → button-DRFSckEU.js} +2 -2
  48. package/frontend-dist/assets/{copy-3gKHS1GQ.js → copy-BsWNnxok.js} +1 -1
  49. package/frontend-dist/assets/dialog-DxoN_Irc.js +1 -0
  50. package/frontend-dist/assets/index-Dr-BkaVu.js +3 -0
  51. package/frontend-dist/assets/index-iEMoIOdZ.css +1 -0
  52. package/frontend-dist/assets/{trash-2-C8JRtoE6.js → trash-2-DZ6KuutY.js} +1 -1
  53. package/frontend-dist/assets/{useClipboard-Df2zt0gp.js → useClipboard-B0s-K67s.js} +1 -1
  54. package/frontend-dist/assets/{useLogRetention-D79yrt_t.js → useLogRetention-BS-AFvlE.js} +1 -1
  55. package/frontend-dist/index.html +3 -3
  56. package/package.json +1 -1
  57. package/frontend-dist/assets/CardContent-DpdNrtkG.js +0 -1
  58. package/frontend-dist/assets/CardTitle-mrTD9vua.js +0 -1
  59. package/frontend-dist/assets/Checkbox-1rtzAXdv.js +0 -1
  60. package/frontend-dist/assets/CollapsibleContent-Gd8G1WPI.js +0 -1
  61. package/frontend-dist/assets/CollapsibleTrigger-DEs_2Gam.js +0 -1
  62. package/frontend-dist/assets/Label-CRw4oQf2.js +0 -1
  63. package/frontend-dist/assets/Login-BJLsCn5J.js +0 -1
  64. package/frontend-dist/assets/Logs-DhCuj7rp.js +0 -1
  65. package/frontend-dist/assets/MappingEntryEditor-B7cc69AQ.js +0 -1
  66. package/frontend-dist/assets/ModelMappings-8u8jBFoA.js +0 -1
  67. package/frontend-dist/assets/Monitor-UFRtv7Oi.js +0 -1
  68. package/frontend-dist/assets/Providers-CyUi2DVb.js +0 -1
  69. package/frontend-dist/assets/ProxyEnhancement-BxZCYxBL.js +0 -1
  70. package/frontend-dist/assets/QuickSetup-CYVEtfPZ.js +0 -1
  71. package/frontend-dist/assets/RetryRules-DXU-NS1-.js +0 -1
  72. package/frontend-dist/assets/RouterKeys-CUa64rMC.js +0 -1
  73. package/frontend-dist/assets/Schedules-DJboHZQe.js +0 -1
  74. package/frontend-dist/assets/Settings-C00E7rLh.js +0 -6
  75. package/frontend-dist/assets/Setup-Bdg3g-7K.js +0 -1
  76. package/frontend-dist/assets/Switch-DXVDTQ8F.js +0 -1
  77. package/frontend-dist/assets/TooltipTrigger-BcM0p009.js +0 -1
  78. package/frontend-dist/assets/TransformRulesForm-BhiHKW55.js +0 -1
  79. package/frontend-dist/assets/UnifiedRequestDialog-DniIXKEa.js +0 -3
  80. package/frontend-dist/assets/VisuallyHiddenInput-Bae_wVf3.js +0 -1
  81. package/frontend-dist/assets/dialog-B68sJflZ.js +0 -1
  82. package/frontend-dist/assets/index-BdA9t4qo.css +0 -1
  83. package/frontend-dist/assets/index-QPBBCV_W.js +0 -3
@@ -1 +0,0 @@
1
- import{A as e,Bt as t,Ct as n,F as r,G as i,H as a,J as o,K as s,Q as c,Rt as l,U as u,Ut as d,X as f,Y as p,Z as m,ct as ee,ft as h,jt as g,k as _,n as v,q as y,ut as b}from"./button-DMmB7tDy.js";import{n as te,t as ne}from"./MappingEntryEditor-B7cc69AQ.js";import{a as re,c as x,d as ie,f as ae,l as S,n as oe,o as se,r as ce,s as le,t as ue,u as C}from"./dialog-B68sJflZ.js";import{t as w}from"./Label-CRw4oQf2.js";import{t as de}from"./Switch-DXVDTQ8F.js";import{a as fe,b as T,c as pe,d as me,f as E,g as D,h as O,i as he,l as ge,m as k,o as _e,p as A,r as j,s as ve,tt as ye}from"./index-QPBBCV_W.js";import{t as be}from"./Input-1iFstr5N.js";import"./constants-yM0YwP2s.js";import{n as xe,t as M}from"./TransformRulesForm-BhiHKW55.js";var Se={class:`p-6 space-y-3`},Ce={class:`text-lg font-semibold text-foreground`},we={class:`text-sm text-muted-foreground mt-1`},Te={key:0,class:`flex items-center justify-center py-16 text-muted-foreground text-sm`},Ee={class:`grid grid-cols-3 gap-3`},De=[`onClick`],Oe={class:`font-mono text-sm font-semibold text-foreground shrink-0`},ke={class:`flex-1 flex flex-wrap gap-1 min-w-0`},Ae={class:`ml-1 text-muted-foreground/60 font-mono`},je={key:0,class:`text-[10px] text-muted-foreground/50 self-center`},Me={key:0,class:`border-t`},Ne={class:`flex items-center justify-between px-4 py-2 bg-muted/30`},Pe={class:`text-xs font-medium text-muted-foreground`},Fe={class:`flex flex-wrap gap-1`},Ie={class:`flex items-center justify-end gap-1`},Le={key:0,class:`py-12 text-center text-xs text-muted-foreground`},Re={key:0,class:`bg-destructive/10 border border-destructive/30 rounded-md px-3 py-2 text-sm text-destructive`},ze={class:`grid grid-cols-2 gap-3`},Be={key:0,class:`text-xs text-destructive mt-0.5`},Ve={class:`flex flex-wrap gap-1.5`},He={key:0,class:`text-xs text-destructive mt-0.5`},Ue={class:`flex items-center gap-2 mb-2`},We={class:`flex gap-1.5`},Ge={class:`grid grid-cols-2 gap-3`},Ke={key:0,class:`text-xs text-destructive mt-0.5`},qe={key:0,class:`text-xs text-destructive mt-0.5`},Je={class:`grid grid-cols-2 gap-4`},Ye={class:`border rounded-md p-3 space-y-3`},Xe={class:`text-xs font-medium text-muted-foreground`},Ze={class:`border rounded-md p-3 space-y-3`},Qe={class:`text-xs font-medium text-muted-foreground`},N=c({__name:`Schedules`,setup(c){let{t:N}=r(),P=i(()=>[N(`schedules.weekDays.sun`),N(`schedules.weekDays.mon`),N(`schedules.weekDays.tue`),N(`schedules.weekDays.wed`),N(`schedules.weekDays.thu`),N(`schedules.weekDays.fri`),N(`schedules.weekDays.sat`)]),F=()=>({name:``,week:[1,2,3,4,5],start_hour:0,end_hour:24,targets:[{backend_model:``,provider_id:``}],concurrency_mode:`auto`,max_concurrency:10,queue_timeout_ms:12e4,max_queue_size:100}),I=g(!1),L=g([]),R=g([]),z=g([]),B=g(null),V=g(!1),H=g(null),U=g(``),W=g(null),G=g(F()),K=g({}),q=g(``),J=g({injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``}),Y=i(()=>{let e={};for(let t of z.value)e[t.mapping_group_id]||(e[t.mapping_group_id]=[]),e[t.mapping_group_id].push(t);return e}),$e=i(()=>({clientModel:L.value.find(e=>e.id===U.value)?.client_model??``,targets:G.value.targets,existing:!1,tag:`cust`,active:!0}));function et(e){G.value.targets=e}function tt(e){let t=P.value,n=[];try{n=JSON.parse(e)}catch{return[]}return n.map(e=>t[e]??String(e))}function X(e){return String(e).padStart(2,`0`)+`:00`}function Z(e,t){G.value.start_hour=e,G.value.end_hour=t,delete K.value.time}function nt(e){B.value=B.value===e?null:e}async function Q(){try{L.value=await _.getMappingGroups()}catch(t){j.error(e(t,N(`schedules.loadGroupsFailed`)))}}async function rt(){try{R.value=await _.getProviders()}catch(t){j.error(e(t,N(`schedules.loadProvidersFailed`)))}}async function $(){try{z.value=await _.getSchedules()}catch(t){j.error(e(t,N(`schedules.loadSchedulesFailed`)))}}let it=i(()=>R.value.map(e=>({provider:{id:e.id,name:e.name},models:(e.models??[]).map(e=>({name:e.name,contextWindow:e.context_window??2e5}))})));function at(e){let t=G.value.week.indexOf(e);t>=0?G.value.week.splice(t,1):G.value.week.push(e),delete K.value.week}function ot(e){H.value=null,U.value=e,G.value=F(),J.value={injectHeadersInput:``,dropFieldsInput:``,requestDefaultsInput:``},K.value={},q.value=``,V.value=!0}function st(e){H.value=e.id,U.value=e.mapping_group_id,K.value={},q.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:`,e)}let n=[1,2,3,4,5];try{n=JSON.parse(e.week)}catch(e){console.warn(`Failed to parse week:`,e)}let r=`auto`,i=10,a=12e4,o=100;if(e.concurrency_rule)try{let t=JSON.parse(e.concurrency_rule);r=t.mode||`auto`,t.max_concurrency&&(i=t.max_concurrency),t.queue_timeout_ms&&(a=t.queue_timeout_ms),t.max_queue_size&&(o=t.max_queue_size)}catch(e){console.warn(`Failed to parse concurrency_rule:`,e)}let s=``,c=``,l=``;if(e.transform_rule)try{let t=JSON.parse(e.transform_rule);c=(t.drop_fields||[]).join(`, `),l=t.request_defaults?JSON.stringify(t.request_defaults):``,s=t.inject_headers?JSON.stringify(t.inject_headers):``}catch(e){console.warn(`Failed to parse transform_rule:`,e)}G.value={name:e.name,week:n,start_hour:e.start_hour,end_hour:e.end_hour,targets:t,concurrency_mode:r,max_concurrency:i,queue_timeout_ms:a,max_queue_size:o},J.value={injectHeadersInput:s,dropFieldsInput:c,requestDefaultsInput:l},V.value=!0}function ct(){let e={};G.value.name.trim()||(e.name=N(`schedules.form.nameRequired`)),G.value.week.length===0&&(e.week=N(`schedules.form.weekRequired`)),G.value.start_hour>=G.value.end_hour&&(e.time=N(`schedules.form.timeInvalid`));for(let t of G.value.targets)if(!t.provider_id||!t.backend_model){e.targets=N(`schedules.form.targetRequired`);break}return K.value=e,Object.keys(e).length===0}function lt(){let{injectHeadersInput:e,dropFieldsInput:t,requestDefaultsInput:n}=J.value;if(!e.trim()&&!t.trim()&&!n.trim())return{rule:null,error:!1};let r=t?t.split(`,`).map(e=>e.trim()).filter(Boolean):null,i=null;if(n.trim())try{i=JSON.parse(n)}catch{return j.error(N(`providers.transform.requestDefaultsJsonError`)),{rule:null,error:!0}}let a=null;if(e.trim())try{a=JSON.parse(e)}catch{return j.error(N(`providers.transform.injectHeadersJsonError`)),{rule:null,error:!0}}return{rule:JSON.stringify({drop_fields:r,request_defaults:i,inject_headers:a}),error:!1}}async function ut(){if(q.value=``,!ct())return;let{rule:t,error:n}=lt();if(!n)try{let e=JSON.stringify({targets:G.value.targets}),n=G.value.concurrency_mode===`none`?null:JSON.stringify({mode:G.value.concurrency_mode,max_concurrency:G.value.max_concurrency,queue_timeout_ms:G.value.queue_timeout_ms,max_queue_size:G.value.max_queue_size}),r={mapping_group_id:U.value,name:G.value.name,week:JSON.stringify(G.value.week),start_hour:G.value.start_hour,end_hour:G.value.end_hour,mapping_rule:e,concurrency_rule:n,transform_rule:t};H.value?await _.updateSchedule(H.value,r):await _.createSchedule(r),V.value=!1,await $()}catch(t){q.value=e(t,N(`schedules.saveFailed`))}}async function dt(t){try{await _.toggleSchedule(t.id),await $()}catch(t){j.error(e(t,N(`schedules.toggleFailed`)))}}async function ft(){let t=W.value;if(t){W.value=null;try{await _.deleteSchedule(t.id),await $()}catch(t){j.error(e(t,N(`schedules.deleteFailed`)))}}}return ee(async()=>{I.value=!0,await Promise.allSettled([Q(),rt(),$()]),I.value=!1}),(e,r)=>(b(),p(`div`,Se,[s(`div`,null,[s(`h2`,Ce,d(l(N)(`schedules.title`)),1),s(`p`,we,d(l(N)(`schedules.description`)),1)]),I.value?(b(),p(`div`,Te,d(l(N)(`common.loading`)),1)):o(``,!0),I.value?o(``,!0):(b(),p(u,{key:1},[s(`div`,Ee,[(b(!0),p(u,null,h(L.value,e=>(b(),p(`div`,{key:e.id,class:t([`rounded-lg border transition-colors`,[B.value===e.id?`col-span-3 border-primary/30 shadow-sm shadow-primary/5`:`border-border hover:border-border/80`]])},[s(`div`,{class:`flex items-center gap-3 px-4 py-3 cursor-pointer`,onClick:t=>nt(e.id)},[s(`span`,Oe,d(e.client_model),1),Y.value[e.id]?.length?(b(),y(l(T),{key:0,variant:`secondary`,class:`text-[10px]`},{default:n(()=>[f(d(l(N)(`schedules.ruleCount`,{count:Y.value[e.id].length})),1)]),_:2},1024)):(b(),y(l(T),{key:1,variant:`outline`,class:`text-[10px] text-muted-foreground/50`},{default:n(()=>[f(d(l(N)(`schedules.noRules`)),1)]),_:1})),s(`div`,ke,[(b(!0),p(u,null,h((Y.value[e.id]??[]).slice(0,3),e=>(b(),y(l(T),{key:e.id,variant:e.enabled?`default`:`secondary`,class:`text-[10px] font-normal`},{default:n(()=>[f(d(e.name)+` `,1),s(`span`,Ae,d(X(e.start_hour))+`-`+d(X(e.end_hour)),1)]),_:2},1032,[`variant`]))),128)),(Y.value[e.id]?.length??0)>3?(b(),p(`span`,je,` +`+d(Y.value[e.id].length-3),1)):o(``,!0)]),m(l(ye),{class:t([`size-4 text-muted-foreground/40 shrink-0 transition-transform`,{"rotate-180":B.value===e.id}])},null,8,[`class`])],8,De),B.value===e.id?(b(),p(`div`,Me,[s(`div`,Ne,[s(`span`,Pe,d(l(N)(`schedules.scheduleRules`)),1),m(l(v),{size:`sm`,variant:`outline`,class:`h-7 text-xs`,onClick:t=>ot(e.id)},{default:n(()=>[m(l(te),{class:`w-3 h-3 mr-1`}),f(` `+d(l(N)(`schedules.createSchedule`)),1)]),_:1},8,[`onClick`])]),m(l(ae),null,{default:n(()=>[m(l(le),null,{default:n(()=>[m(l(S),{class:`bg-muted/50`},{default:n(()=>[m(l(x),{class:`text-muted-foreground text-xs h-8`},{default:n(()=>[f(d(l(N)(`schedules.tableHeaders.name`)),1)]),_:1}),m(l(x),{class:`text-muted-foreground text-xs h-8`},{default:n(()=>[f(d(l(N)(`schedules.tableHeaders.status`)),1)]),_:1}),m(l(x),{class:`text-muted-foreground text-xs h-8`},{default:n(()=>[f(d(l(N)(`schedules.tableHeaders.week`)),1)]),_:1}),m(l(x),{class:`text-muted-foreground text-xs h-8`},{default:n(()=>[f(d(l(N)(`schedules.tableHeaders.timeRange`)),1)]),_:1}),m(l(x),{class:`text-right text-muted-foreground text-xs h-8`},{default:n(()=>[f(d(l(N)(`schedules.tableHeaders.actions`)),1)]),_:1})]),_:1})]),_:1}),m(l(ie),null,{default:n(()=>[(b(!0),p(u,null,h(Y.value[e.id]??[],e=>(b(),y(l(S),{key:e.id},{default:n(()=>[m(l(C),{class:`font-medium text-sm`},{default:n(()=>[f(d(e.name),1)]),_:2},1024),m(l(C),null,{default:n(()=>[m(l(T),{variant:e.enabled?`default`:`secondary`,class:`text-xs`},{default:n(()=>[f(d(e.enabled?l(N)(`schedules.enabled`):l(N)(`schedules.disabled`)),1)]),_:2},1032,[`variant`])]),_:2},1024),m(l(C),null,{default:n(()=>[s(`div`,Fe,[(b(!0),p(u,null,h(tt(e.week),e=>(b(),y(l(T),{key:e,variant:`outline`,class:`text-xs`},{default:n(()=>[f(d(e),1)]),_:2},1024))),128))])]),_:2},1024),m(l(C),{class:`font-mono text-sm`},{default:n(()=>[f(d(X(e.start_hour))+`-`+d(X(e.end_hour)),1)]),_:2},1024),m(l(C),{class:`text-right`},{default:n(()=>[s(`div`,Ie,[m(l(de),{"model-value":!!e.enabled,class:`scale-75`,onClick:a(t=>dt(e),[`stop`])},null,8,[`model-value`,`onClick`]),m(l(v),{variant:`ghost`,size:`sm`,onClick:t=>st(e)},{default:n(()=>[f(d(l(N)(`common.edit`)),1)]),_:1},8,[`onClick`]),m(l(v),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:t=>W.value=e},{default:n(()=>[f(d(l(N)(`common.delete`)),1)]),_:1},8,[`onClick`])])]),_:2},1024)]),_:2},1024))),128)),Y.value[e.id]?.length?o(``,!0):(b(),y(l(S),{key:0},{default:n(()=>[m(l(C),{colspan:`5`,class:`text-center text-muted-foreground py-6 text-xs`},{default:n(()=>[f(d(l(N)(`schedules.emptyRules`)),1)]),_:1})]),_:1}))]),_:2},1024)]),_:2},1024)])):o(``,!0)],2))),128))]),L.value.length===0?(b(),p(`p`,Le,d(l(N)(`schedules.noGroups`)),1)):o(``,!0)],64)),m(l(se),{open:V.value,"onUpdate:open":r[17]||=e=>V.value=e},{default:n(()=>[m(l(re),{class:`sm:max-w-4xl max-h-[85vh] overflow-y-auto`},{default:n(()=>[m(l(oe),null,{default:n(()=>[m(l(ue),null,{default:n(()=>[f(d(H.value?l(N)(`schedules.editSchedule`):l(N)(`schedules.createSchedule`)),1)]),_:1})]),_:1}),s(`form`,{onSubmit:a(ut,[`prevent`]),class:`space-y-4`},[q.value?(b(),p(`div`,Re,d(q.value),1)):o(``,!0),s(`div`,ze,[s(`div`,null,[m(l(w),{class:`text-xs text-muted-foreground`},{default:n(()=>[f(d(l(N)(`schedules.form.name`)),1)]),_:1}),m(l(be),{modelValue:G.value.name,"onUpdate:modelValue":r[0]||=e=>G.value.name=e,class:`mt-1`,placeholder:l(N)(`schedules.form.namePlaceholder`),onInput:r[1]||=e=>delete K.value.name},null,8,[`modelValue`,`placeholder`]),K.value.name?(b(),p(`p`,Be,d(K.value.name),1)):o(``,!0)]),s(`div`,null,[m(l(w),{class:`text-xs text-muted-foreground mb-1.5 block`},{default:n(()=>[f(d(l(N)(`schedules.form.week`)),1)]),_:1}),s(`div`,Ve,[(b(!0),p(u,null,h(P.value,(e,t)=>(b(),y(l(v),{key:t,type:`button`,variant:(G.value.week??[]).includes(t)?`default`:`outline`,size:`sm`,class:`h-7 text-xs`,onClick:e=>at(t)},{default:n(()=>[f(d(e),1)]),_:2},1032,[`variant`,`onClick`]))),128))]),K.value.week?(b(),p(`p`,He,d(K.value.week),1)):o(``,!0)])]),s(`div`,null,[s(`div`,Ue,[m(l(w),{class:`text-xs text-muted-foreground`},{default:n(()=>[f(d(l(N)(`schedules.timePresets.label`)),1)]),_:1}),s(`div`,We,[m(l(v),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[2]||=e=>Z(9,12)},{default:n(()=>[f(d(l(N)(`schedules.timePresets.morning`)),1)]),_:1}),m(l(v),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[3]||=e=>Z(14,18)},{default:n(()=>[f(d(l(N)(`schedules.timePresets.afternoon`)),1)]),_:1}),m(l(v),{type:`button`,variant:`outline`,size:`sm`,class:`text-xs h-6`,onClick:r[4]||=e=>Z(19,21)},{default:n(()=>[f(d(l(N)(`schedules.timePresets.evening`)),1)]),_:1})])]),s(`div`,Ge,[s(`div`,null,[m(l(w),{class:`text-xs text-muted-foreground`},{default:n(()=>[f(d(l(N)(`schedules.form.startTime`)),1)]),_:1}),m(l(D),{modelValue:G.value.start_hour,"onUpdate:modelValue":[r[5]||=e=>G.value.start_hour=e,r[6]||=e=>{G.value.start_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:n(()=>[m(l(A),null,{default:n(()=>[m(l(E),{placeholder:l(N)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),m(l(O),null,{default:n(()=>[(b(),p(u,null,h(24,e=>m(l(k),{key:e-1,value:e-1},{default:n(()=>[f(d(String(e-1).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])]),s(`div`,null,[m(l(w),{class:`text-xs text-muted-foreground`},{default:n(()=>[f(d(l(N)(`schedules.form.endTime`)),1)]),_:1}),m(l(D),{modelValue:G.value.end_hour,"onUpdate:modelValue":[r[7]||=e=>G.value.end_hour=e,r[8]||=e=>{G.value.end_hour=Number(e),delete K.value.time}],class:`mt-1`},{default:n(()=>[m(l(A),null,{default:n(()=>[m(l(E),{placeholder:l(N)(`schedules.form.selectHour`)},null,8,[`placeholder`])]),_:1}),m(l(O),null,{default:n(()=>[(b(),p(u,null,h(24,e=>m(l(k),{key:e,value:e},{default:n(()=>[f(d(String(e).padStart(2,`0`))+`:00`,1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`modelValue`])])]),K.value.time?(b(),p(`p`,Ke,d(K.value.time),1)):o(``,!0)]),s(`div`,null,[m(l(w),{class:`text-xs text-muted-foreground mb-1 block`},{default:n(()=>[f(d(l(N)(`schedules.form.targets`)),1)]),_:1}),m(ne,{entry:$e.value,"provider-groups":it.value,expanded:!0,editable:!0,"onUpdate:targets":et},null,8,[`entry`,`provider-groups`]),K.value.targets?(b(),p(`p`,qe,d(K.value.targets),1)):o(``,!0)]),s(`div`,Je,[s(`div`,Ye,[s(`div`,Xe,d(l(N)(`schedules.form.concurrencyTitle`)),1),m(xe,{mode:G.value.concurrency_mode,"max-concurrency":G.value.max_concurrency,"queue-timeout-ms":G.value.queue_timeout_ms,"max-queue-size":G.value.max_queue_size,compact:``,"onUpdate:mode":r[9]||=e=>G.value.concurrency_mode=e,"onUpdate:maxConcurrency":r[10]||=e=>G.value.max_concurrency=e,"onUpdate:queueTimeoutMs":r[11]||=e=>G.value.queue_timeout_ms=e,"onUpdate:maxQueueSize":r[12]||=e=>G.value.max_queue_size=e},null,8,[`mode`,`max-concurrency`,`queue-timeout-ms`,`max-queue-size`])]),s(`div`,Ze,[s(`div`,Qe,d(l(N)(`providers.transform.title`)),1),m(M,{"inject-headers":J.value.injectHeadersInput,"drop-fields":J.value.dropFieldsInput,"request-defaults":J.value.requestDefaultsInput,compact:``,"onUpdate:injectHeaders":r[13]||=e=>J.value.injectHeadersInput=e,"onUpdate:dropFields":r[14]||=e=>J.value.dropFieldsInput=e,"onUpdate:requestDefaults":r[15]||=e=>J.value.requestDefaultsInput=e},null,8,[`inject-headers`,`drop-fields`,`request-defaults`])])]),m(l(ce),null,{default:n(()=>[m(l(v),{type:`button`,variant:`outline`,onClick:r[16]||=e=>V.value=!1},{default:n(()=>[f(d(l(N)(`common.cancel`)),1)]),_:1}),m(l(v),{type:`submit`},{default:n(()=>[f(d(l(N)(`common.save`)),1)]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),m(l(me),{open:!!W.value,"onUpdate:open":r[18]||=e=>{e||(W.value=null)}},{default:n(()=>[m(l(pe),null,{default:n(()=>[m(l(fe),null,{default:n(()=>[m(l(he),null,{default:n(()=>[f(d(l(N)(`schedules.confirmDeleteTitle`)),1)]),_:1}),m(l(ve),null,{default:n(()=>[f(d(l(N)(`schedules.confirmDeleteMessage`,{name:W.value?.name??``})),1)]),_:1})]),_:1}),m(l(_e),null,{default:n(()=>[m(l(ge),null,{default:n(()=>[f(d(l(N)(`common.cancel`)),1)]),_:1}),m(l(v),{variant:`destructive`,onClick:ft},{default:n(()=>[f(d(l(N)(`common.delete`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{N as default};
@@ -1,6 +0,0 @@
1
- import{A as e,Ct as t,Dt as n,F as r,G as ee,Ht as i,J as a,K as o,M as s,Q as c,Rt as l,U as u,Ut as d,X as f,Y as p,Z as m,at as h,bt as g,ct as te,ft as ne,i as _,jt as v,k as y,m as b,n as x,o as S,ot as C,pt as w,q as T,r as E,ut as D,x as O}from"./button-DMmB7tDy.js";import{t as k}from"./Label-CRw4oQf2.js";import{G as A,a as re,c as j,d as ie,i as ae,l as oe,o as se,q as M,r as N,s as ce,u as le}from"./index-QPBBCV_W.js";import{t as P}from"./Input-1iFstr5N.js";import{t as F}from"./useLogRetention-D79yrt_t.js";var I=s(`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`}]]),ue=s(`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`}]]),de=s(`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`}]]),L=100,[R,z]=M(`ProgressRoot`),B=e=>typeof e==`number`;function V(e,t){return A(e)||B(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 ${L} if no \`max\` prop is set)
4
- - \`null\` or \`undefined\` if the progress is indeterminate.
5
-
6
- Defaulting to \`null\`.`),null)}function H(e){return B(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 \`${L}\`.`),L)}var U=c({__name:`ProgressRoot`,props:{modelValue:{type:[Number,null],required:!1},max:{type:Number,required:!1,default:L},getValueLabel:{type:Function,required:!1,default:(e,t)=>B(e)?`${Math.round(e/t*L)}%`: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:n}){let r=e,i=n;S();let a=b(r,`modelValue`,i,{passive:r.modelValue===void 0}),o=b(r,`max`,i,{passive:r.max===void 0});g(()=>a.value,async e=>{let t=V(e,r.max);t!==e&&(await C(),a.value=t)},{immediate:!0}),g(()=>r.max,e=>{let t=H(r.max);t!==e&&(o.value=t)},{immediate:!0});let s=ee(()=>A(a.value)?`indeterminate`:a.value===o.value?`complete`:`loading`);return z({modelValue:a,max:o,progressState:s}),(e,n)=>(D(),T(l(_),{"as-child":e.asChild,as:e.as,"aria-valuemax":l(o),"aria-valuemin":0,"aria-valuenow":B(l(a))?l(a):void 0,"aria-valuetext":e.getValueText?.(l(a),l(o)),"aria-label":e.getValueLabel(l(a),l(o)),role:`progressbar`,"data-state":s.value,"data-value":l(a)??void 0,"data-max":l(o)},{default:t(()=>[w(e.$slots,`default`,{modelValue:l(a)})]),_:3},8,[`as-child`,`as`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`,`aria-label`,`data-state`,`data-value`,`data-max`]))}}),W=c({__name:`ProgressIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,r=R();return S(),(e,ee)=>(D(),T(l(_),h(n,{"data-state":l(r).progressState.value,"data-value":l(r).modelValue?.value??void 0,"data-max":l(r).max.value}),{default:t(()=>[w(e.$slots,`default`)]),_:3},16,[`data-state`,`data-value`,`data-max`]))}}),G=c({__name:`Progress`,props:{modelValue:{default:0},max:{},getValueLabel:{},getValueText:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=O(n,`class`);return(e,ee)=>(D(),T(l(U),h({"data-slot":`progress`},l(r),{class:l(E)(`bg-muted h-1 rounded-full relative flex w-full items-center overflow-x-hidden`,n.class)}),{default:t(()=>[m(l(W),{"data-slot":`progress-indicator`,class:`bg-primary size-full flex-1 transition-all`,style:i(`transform: translateX(-${100-(n.modelValue??0)}%);`)},null,8,[`style`])]),_:1},16,[`class`]))}}),fe={class:`p-6 space-y-6`},pe={class:`text-lg font-semibold text-foreground`},me={class:`bg-card rounded-lg border p-4 space-y-3`},he={class:`font-medium text-sm text-foreground`},ge={class:`text-sm text-muted-foreground`},_e={class:`flex items-end gap-4`},ve={class:`space-y-1`},ye={key:0,class:`text-sm text-destructive mt-1`},be={class:`bg-card rounded-lg border p-4 space-y-4`},xe={class:`font-medium text-sm text-foreground flex items-center gap-2`},Se={class:`text-sm text-muted-foreground`},K={class:`space-y-1`},Ce={class:`flex justify-between text-sm`},we={class:`text-muted-foreground`},Te={class:`space-y-1`},Ee={class:`flex justify-between text-sm`},De={class:`text-muted-foreground`},Oe={class:`space-y-1`},ke={class:`flex justify-between text-sm`},Ae={class:`text-muted-foreground`},je={key:0,class:`text-xs text-muted-foreground`},Me={class:`grid grid-cols-2 gap-4 pt-3 border-t`},Ne={class:`space-y-1`},Pe={key:0,class:`text-sm text-destructive mt-1`},Fe={class:`space-y-1`},Ie={key:0,class:`text-sm text-destructive mt-1`},Le={class:`bg-card rounded-lg border p-4 space-y-3`},Re={class:`font-medium text-sm text-foreground`},ze={class:`text-sm text-muted-foreground`},Be={class:`flex gap-3`},Ve={key:0,class:`text-sm space-y-1 p-3 bg-muted rounded-md`},He={class:`font-medium`},q=1048576,J=1024,Y=100,Ue=2,We=10,X=0,Z=90,Q=1,Ge=1024,Ke=800,$=c({__name:`Settings`,setup(ee){let{t:i}=r(),{retentionDays:s,saveRetention:c}=F(),h=v(null),g=v(Ge),_=v(Ke),b=v(!1),S=v(!1),C=v(null),w=v(!1),T=v(null),E=v(),O=v(``),A=v(``),M=v(``);function L(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.min(Math.floor(Math.log(e)/Math.log(J)),t.length-1);return`${(e/J**+n).toFixed(1)} ${t[n]}`}async function R(){b.value=!0;try{let[e,t]=await Promise.allSettled([y.getDbSizeInfo(),y.getLogRetention()]);e.status===`fulfilled`&&(h.value=e.value,g.value=e.value.thresholds.dbMaxSizeMb,_.value=e.value.thresholds.logTableMaxSizeMb),t.status===`fulfilled`&&(s.value=t.value.days)}finally{b.value=!1}}function z(){O.value=``;let e=s.value;return Number.isInteger(e)?e<X||e>Z?(O.value=i(`settings.retention.rangeError`,{min:X,max:Z}),!1):!0:(O.value=i(`settings.retention.integerRequired`),!1)}async function B(){z()&&await c()}function V(){A.value=``,M.value=``;let e=!0;return(!Number.isFinite(g.value)||g.value<Q)&&(A.value=i(`settings.storage.minValueError`,{min:Q}),e=!1),(!Number.isFinite(_.value)||_.value<Q)&&(M.value=i(`settings.storage.minValueError`,{min:Q}),e=!1),e&&_.value>g.value&&(M.value=i(`settings.storage.logExceedsDbError`),e=!1),e}async function H(){if(V())try{let e=await y.setDbSizeThresholds({dbMaxSizeMb:g.value,logTableMaxSizeMb:_.value});g.value=e.dbMaxSizeMb,_.value=e.logTableMaxSizeMb,N.success(i(`settings.storage.thresholdsUpdated`)),await R()}catch(t){N.error(e(t,i(`settings.storage.updateFailed`)))}}async function U(){try{let e=await y.exportConfig(),t=new Blob([JSON.stringify(e,null,Ue)],{type:`application/json`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`router-config-${new Date().toISOString().slice(0,We)}.json`,r.click(),URL.revokeObjectURL(n),N.success(i(`settings.importExport.exportSuccess`))}catch(t){N.error(e(t,i(`settings.importExport.exportFailed`)))}}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){N.error(i(`settings.importExport.unsupportedVersion`));return}T.value=e,w.value=!0}catch{N.error(i(`settings.importExport.invalidJson`))}},r.readAsText(n),t.value=``}async function $(){if(T.value){S.value=!0;try{C.value=await y.importConfig(T.value),w.value=!1,N.success(i(`settings.importExport.importSuccess`)),await R()}catch(t){N.error(e(t,i(`settings.importExport.importFailed`)))}finally{S.value=!1,T.value=null}}}return te(R),(e,r)=>(D(),p(`div`,fe,[o(`h2`,pe,d(l(i)(`settings.title`)),1),o(`div`,me,[o(`h3`,he,d(l(i)(`settings.retention.title`)),1),o(`p`,ge,d(l(i)(`settings.retention.desc`)),1),o(`div`,_e,[o(`div`,ve,[m(l(k),{for:`retention-days`},{default:t(()=>[f(d(l(i)(`settings.retention.daysLabel`)),1)]),_:1}),m(l(P),{id:`retention-days`,modelValue:l(s),"onUpdate:modelValue":r[0]||=e=>n(s)?s.value=e:null,modelModifiers:{number:!0},type:`number`,min:X,max:Z,class:`w-32`,onInput:r[1]||=e=>O.value=``},null,8,[`modelValue`]),O.value?(D(),p(`p`,ye,d(O.value),1)):a(``,!0)]),m(l(x),{size:`sm`,disabled:b.value,onClick:B},{default:t(()=>[f(d(l(i)(`common.save`)),1)]),_:1},8,[`disabled`])])]),o(`div`,be,[o(`h3`,xe,[m(l(ue),{class:`h-4 w-4`}),f(` `+d(l(i)(`settings.storage.title`)),1)]),o(`p`,Se,d(l(i)(`settings.storage.desc`)),1),h.value?(D(),p(u,{key:0},[o(`div`,K,[o(`div`,Ce,[o(`span`,null,d(l(i)(`settings.storage.dbTotalSize`)),1),o(`span`,we,d(L(h.value.totalBytes))+` / `+d(g.value)+` MB `,1)]),m(l(G),{"model-value":Math.min(Y,h.value.totalBytes/(g.value*q)*Y)},null,8,[`model-value`])]),o(`div`,Te,[o(`div`,Ee,[o(`span`,null,d(l(i)(`settings.storage.logSize`))+` (`+d(l(i)(`common.count`,{count:h.value.logCount}))+`)`,1),o(`span`,De,d(L(h.value.logTableBytes))+` / `+d(_.value)+` MB `,1)]),m(l(G),{"model-value":Math.min(Y,h.value.logTableBytes/(_.value*q)*Y)},null,8,[`model-value`])]),o(`div`,Oe,[o(`div`,ke,[o(`span`,null,d(l(i)(`settings.storage.logFileSize`)),1),o(`span`,Ae,d(L(h.value.logFileBytes??0)),1)])]),h.value.lastChecked?(D(),p(`p`,je,d(l(i)(`common.lastChecked`))+`:`+d(h.value.lastChecked),1)):a(``,!0)],64)):a(``,!0),o(`div`,Me,[o(`div`,Ne,[m(l(k),{for:`db-max-size`},{default:t(()=>[f(d(l(i)(`settings.storage.dbMaxSizeLabel`)),1)]),_:1}),m(l(P),{id:`db-max-size`,modelValue:g.value,"onUpdate:modelValue":r[2]||=e=>g.value=e,modelModifiers:{number:!0},type:`number`,min:Q,onInput:r[3]||=e=>A.value=``},null,8,[`modelValue`]),A.value?(D(),p(`p`,Pe,d(A.value),1)):a(``,!0)]),o(`div`,Fe,[m(l(k),{for:`log-max-size`},{default:t(()=>[f(d(l(i)(`settings.storage.logMaxSizeLabel`)),1)]),_:1}),m(l(P),{id:`log-max-size`,modelValue:_.value,"onUpdate:modelValue":r[4]||=e=>_.value=e,modelModifiers:{number:!0},type:`number`,min:Q,onInput:r[5]||=e=>M.value=``},null,8,[`modelValue`]),M.value?(D(),p(`p`,Ie,d(M.value),1)):a(``,!0)])]),m(l(x),{size:`sm`,disabled:b.value,onClick:H},{default:t(()=>[f(d(l(i)(`common.saveThresholds`)),1)]),_:1},8,[`disabled`])]),o(`div`,Le,[o(`h3`,Re,d(l(i)(`settings.importExport.title`)),1),o(`p`,ze,d(l(i)(`settings.importExport.desc`)),1),o(`div`,Be,[m(l(x),{variant:`outline`,size:`sm`,disabled:b.value,onClick:U},{default:t(()=>[m(l(I),{class:`mr-2 h-4 w-4`}),f(` `+d(l(i)(`settings.importExport.export`)),1)]),_:1},8,[`disabled`]),m(l(x),{variant:`outline`,size:`sm`,disabled:b.value,onClick:r[6]||=e=>E.value?.click()},{default:t(()=>[m(l(de),{class:`mr-2 h-4 w-4`}),f(` `+d(l(i)(`settings.importExport.import`)),1)]),_:1},8,[`disabled`]),o(`input`,{ref_key:`fileInput`,ref:E,type:`file`,accept:`.json`,class:`hidden`,onChange:W},null,544)]),C.value?(D(),p(`div`,Ve,[o(`p`,He,d(l(i)(`settings.importExport.importComplete`)),1),(D(!0),p(u,null,ne(C.value,(e,t)=>(D(),p(`p`,{key:t},d(t)+`: `+d(l(i)(`common.count`,{count:e})),1))),128))])):a(``,!0)]),m(l(ie),{open:w.value,"onUpdate:open":r[7]||=e=>w.value=e},{default:t(()=>[m(l(j),null,{default:t(()=>[m(l(re),null,{default:t(()=>[m(l(ae),null,{default:t(()=>[f(d(l(i)(`settings.importExport.confirmImport`)),1)]),_:1}),m(l(ce),null,{default:t(()=>[f(d(l(i)(`settings.importExport.importWarning`))+` `+d(l(i)(`common.irreversible`)),1)]),_:1})]),_:1}),m(l(se),null,{default:t(()=>[m(l(oe),{disabled:S.value},{default:t(()=>[f(d(l(i)(`common.cancel`)),1)]),_:1},8,[`disabled`]),m(l(le),{disabled:S.value,onClick:$},{default:t(()=>[f(d(S.value?l(i)(`settings.importExport.importing`):l(i)(`settings.importExport.confirmButton`)),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{$ as default};
@@ -1 +0,0 @@
1
- import{A as e,Ct as t,F as n,H as r,J as i,K as a,L as o,Q as s,Rt as c,Ut as l,X as u,Y as d,Z as f,jt as p,k as m,n as h,q as g,ut as _}from"./button-DMmB7tDy.js";import{t as v}from"./Label-CRw4oQf2.js";import{Q as y,Z as b,t as x}from"./index-QPBBCV_W.js";import{n as S,t as C}from"./CardContent-DpdNrtkG.js";import{t as w}from"./Input-1iFstr5N.js";var T={class:`min-h-screen flex items-center justify-center bg-background relative`},E={class:`text-center mb-6`},D={class:`text-sm text-muted-foreground mt-1`},O={key:0,class:`text-destructive text-sm`},k=s({__name:`Setup`,setup(s){let{t:k}=n(),{isDark:A,toggleTheme:j}=x(),M=o(),N=p(``),P=p(``),F=p(``),I=p(!1);async function L(){if(!N.value||!P.value){F.value=k(`setup.pleaseInputPassword`);return}if(N.value!==P.value){F.value=k(`setup.passwordMismatch`);return}if(N.value.length<6){F.value=k(`setup.passwordTooShort`);return}F.value=``,I.value=!0;try{await m.initializeSetup(N.value),M.push(`/admin/dashboard`)}catch(t){F.value=e(t,k(`setup.setupFailed`))}finally{I.value=!1}}return(e,n)=>(_(),d(`div`,T,[f(c(h),{variant:`ghost`,size:`icon`,class:`absolute top-4 right-4 text-muted-foreground hover:text-foreground`,onClick:c(j)},{default:t(()=>[c(A)?(_(),g(c(b),{key:1,class:`w-4 h-4`})):(_(),g(c(y),{key:0,class:`w-4 h-4`}))]),_:1},8,[`onClick`]),f(c(S),{class:`w-full max-w-sm shadow-lg`},{default:t(()=>[f(c(C),{class:`pt-6`},{default:t(()=>[a(`div`,E,[n[2]||=a(`div`,{class:`w-12 h-12 bg-primary rounded-lg mx-auto mb-3 flex items-center justify-center`},[a(`svg`,{class:`w-7 h-7 text-white`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[a(`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`})])],-1),n[3]||=a(`h1`,{class:`text-xl font-semibold text-foreground`},`LLM Simple Router`,-1),a(`p`,D,l(c(k)(`setup.subtitle`)),1)]),a(`form`,{onSubmit:r(L,[`prevent`]),class:`space-y-4`},[a(`div`,null,[f(c(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:t(()=>[u(l(c(k)(`setup.password`)),1)]),_:1}),f(c(w),{modelValue:N.value,"onUpdate:modelValue":n[0]||=e=>N.value=e,type:`password`,placeholder:c(k)(`setup.passwordPlaceholder`),disabled:I.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),a(`div`,null,[f(c(v),{class:`block text-sm font-medium text-foreground mb-1`},{default:t(()=>[u(l(c(k)(`setup.confirmPassword`)),1)]),_:1}),f(c(w),{modelValue:P.value,"onUpdate:modelValue":n[1]||=e=>P.value=e,type:`password`,placeholder:c(k)(`setup.confirmPasswordPlaceholder`),disabled:I.value},null,8,[`modelValue`,`placeholder`,`disabled`])]),F.value?(_(),d(`p`,O,l(F.value),1)):i(``,!0),f(c(h),{type:`submit`,class:`w-full`,disabled:I.value},{default:t(()=>[u(l(I.value?c(k)(`setup.settingUp`):c(k)(`setup.setupButton`)),1)]),_:1},8,[`disabled`])],32)]),_:1})]),_:1})]))}});export{k as default};
@@ -1 +0,0 @@
1
- import{Ct as e,G as t,H as n,It as r,J as i,Q as a,Rt as o,V as s,Vt as c,Z as l,at as u,et as d,i as f,m as p,o as m,pt as h,q as g,r as _,ut as v,x as y}from"./button-DMmB7tDy.js";import{t as b}from"./VisuallyHiddenInput-Bae_wVf3.js";import{B as x,H as S,q as C}from"./index-QPBBCV_W.js";var[w,T]=C(`SwitchRoot`),E=a({__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(a,{emit:c}){let l=a,d=c,{disabled:_}=r(l),y=p(l,`modelValue`,d,{defaultValue:l.defaultValue??l.falseValue,passive:l.modelValue===void 0}),x=t(()=>y.value===l.trueValue);function C(){_.value||(y.value=x.value?l.falseValue:l.trueValue)}let{forwardRef:w,currentElement:E}=m(),D=S(E),O=t(()=>l.id&&E.value?document.querySelector(`[for="${l.id}"]`)?.innerText:void 0);return T({checked:x,toggleCheck:C,disabled:_}),(t,r)=>(v(),g(o(f),u(t.$attrs,{id:t.id,ref:o(w),role:`switch`,type:t.as===`button`?`button`:void 0,value:t.value,"aria-label":t.$attrs[`aria-label`]||O.value,"aria-checked":x.value,"aria-required":t.required,"data-state":x.value?`checked`:`unchecked`,"data-disabled":o(_)?``:void 0,"as-child":t.asChild,as:t.as,disabled:o(_),onClick:C,onKeydown:s(n(C,[`prevent`]),[`enter`])}),{default:e(()=>[h(t.$slots,`default`,{modelValue:o(y),checked:x.value}),o(D)&&t.name?(v(),g(o(b),{key:0,type:`checkbox`,name:t.name,disabled:o(_),required:t.required,value:t.value,checked:x.value},null,8,[`name`,`disabled`,`required`,`value`,`checked`])):i(`v-if`,!0)]),_:3},16,[`id`,`type`,`value`,`aria-label`,`aria-checked`,`aria-required`,`data-state`,`data-disabled`,`as-child`,`as`,`disabled`,`onKeydown`]))}}),D=a({__name:`SwitchThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(t){let n=w();return m(),(t,r)=>(v(),g(o(f),{"data-state":o(n).checked.value?`checked`:`unchecked`,"data-disabled":o(n).disabled.value?``:void 0,"as-child":t.asChild,as:t.as},{default:e(()=>[h(t.$slots,`default`)]),_:3},8,[`data-state`,`data-disabled`,`as-child`,`as`]))}}),O=a({__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 r=t,i=n,a=x(y(r,`class`,`size`),i);return(n,i)=>(v(),g(o(E),u({"data-slot":`switch`,"data-size":t.size},o(a),{class:o(_)(`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`,r.class)}),{default:e(t=>[l(o(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:e(()=>[h(n.$slots,`thumb`,c(d(t)))]),_:2},1024)]),_:3},16,[`data-size`,`class`]))}});export{O as t};
@@ -1 +0,0 @@
1
- import{Ct as e,E as t,G as n,H as r,Ht as i,It as a,Q as o,Rt as s,S as c,Ut as l,Vt as u,X as d,Y as f,Z as p,at as m,bt as h,ct as g,d as _,et as v,g as y,gt as b,ht as x,i as S,jt as C,m as w,o as T,pt as E,q as D,r as O,ut as k,w as A,x as ee,xt as j}from"./button-DMmB7tDy.js";import{B as M,C as te,E as ne,L as re,N as ie,S as N,T as P,V as F,W as I,k as L,q as R,w as z,z as B}from"./index-QPBBCV_W.js";function V(e,t){let n=c(!1,300);A(()=>{n.value=!1});let r=C(null),i=y();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=U(a,H(a,i.getBoundingClientRect()),1),s=W(t.getBoundingClientRect());r.value=K([...o,...s]),n.value=!0}return j(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)})}}),j(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=!G(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 H(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 U(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 W(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 G(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 K(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)),q(t)}function q(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 J={key:0,d:`M0 0L6 6L12 0`},ae={key:1,d:`M0 0L4.58579 4.58579C5.36683 5.36683 6.63316 5.36684 7.41421 4.58579L12 0`},oe=o({__name:`Arrow`,props:{width:{type:Number,required:!1,default:10},height:{type:Number,required:!1,default:5},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let n=t;return T(),(t,r)=>(k(),D(s(S),m(n,{width:t.width,height:t.height,viewBox:t.asChild?void 0:`0 0 12 6`,preserveAspectRatio:t.asChild?void 0:`none`}),{default:e(()=>[E(t.$slots,`default`,{},()=>[t.rounded?(k(),f(`path`,ae)):(k(),f(`path`,J))])]),_:3},16,[`width`,`height`,`viewBox`,`preserveAspectRatio`]))}}),se={top:`bottom`,right:`left`,bottom:`top`,left:`right`},ce=o({inheritAttrs:!1,__name:`PopperArrow`,props:{width:{type:Number,required:!1},height:{type:Number,required:!1},rounded:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`svg`}},setup(t){let{forwardRef:r}=T(),a=te(),o=n(()=>se[a.placedSide.value]);return(t,n)=>(k(),f(`span`,{ref:e=>{s(a).onArrowChange(e??void 0)},style:i({position:`absolute`,left:s(a).arrowX?.value?`${s(a).arrowX?.value}px`:void 0,top:s(a).arrowY?.value?`${s(a).arrowY?.value}px`:void 0,[o.value]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[s(a).placedSide.value],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[s(a).placedSide.value],visibility:s(a).shouldHideArrow.value?`hidden`:void 0})},[p(oe,m(t.$attrs,{ref:s(r),style:{display:`block`},as:t.as,"as-child":t.asChild,rounded:t.rounded,width:t.width,height:t.height}),{default:e(()=>[E(t.$slots,`default`)]),_:3},16,[`as`,`as-child`,`rounded`,`width`,`height`])],4))}}),le=o({__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(t){let n=t;return T(),(t,r)=>(k(),D(s(ce),u(v(n)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))}}),[Y,ue]=R(`TooltipProvider`),de=o({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:n,skipDelayDuration:r,disableHoverableContent:i,disableClosingTrigger:o,ignoreNonKeyboardFocus:s,disabled:c,content:l}=a(e);T();let u=C(!0),d=C(!1),{start:f,stop:p}=t(()=>{u.value=!0},r,{immediate:!1});return ue({isOpenDelayed:u,delayDuration:n,onOpen(){p(),u.value=!1},onClose(){f()},isPointerInTransitRef:d,disableHoverableContent:i,disableClosingTrigger:o,disabled:c,ignoreNonKeyboardFocus:s,content:l}),(e,t)=>E(e.$slots,`default`)}}),X=`tooltip.open`,[Z,fe]=R(`TooltipRoot`),pe=o({__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(r,{emit:i}){let a=r,o=i;T();let c=Y(),l=n(()=>a.disableHoverableContent??c.disableHoverableContent.value),u=n(()=>a.disableClosingTrigger??c.disableClosingTrigger.value),d=n(()=>a.disabled??c.disabled.value),f=n(()=>a.delayDuration??c.delayDuration.value),p=n(()=>a.ignoreNonKeyboardFocus??c.ignoreNonKeyboardFocus.value),m=w(a,`open`,o,{defaultValue:a.defaultOpen,passive:a.open===void 0});h(m,e=>{c.onClose&&(e?(c.onOpen(),document.dispatchEvent(new CustomEvent(X))):c.onClose())});let g=C(!1),_=C(),v=n(()=>m.value?g.value?`delayed-open`:`instant-open`:`closed`),{start:y,stop:b}=t(()=>{g.value=!0,m.value=!0},f,{immediate:!1});function x(){b(),g.value=!1,m.value=!0}function S(){b(),m.value=!1}function O(){y()}return fe({contentId:``,open:m,stateAttribute:v,trigger:_,onTriggerChange(e){_.value=e},onTriggerEnter(){c.isOpenDelayed.value?O():x()},onTriggerLeave(){l.value?S():b()},onOpen:x,onClose:S,disableHoverableContent:l,disableClosingTrigger:u,disabled:d,ignoreNonKeyboardFocus:p}),(t,n)=>(k(),D(s(P),null,{default:e(()=>[E(t.$slots,`default`,{open:s(m)})]),_:3}))}}),Q=o({__name:`TooltipContentImpl`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1,default:void 0},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1,default:void 0},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1,default:void 0},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:i}){let a=t,o=i,c=Z(),u=Y(),{forwardRef:f,currentElement:h}=T(),v=n(()=>a.ariaLabel||h.value?.textContent),y=n(()=>{let{ariaLabel:e,...t}=a;return I(t,u.content.value??{},{side:`top`,sideOffset:0,align:`center`,avoidCollisions:!0,collisionBoundary:[],collisionPadding:0,arrowPadding:0,sticky:`partial`,hideWhenDetached:!1})});return g(()=>{_(window,`scroll`,e=>{e.target?.contains(c.trigger.value)&&c.onClose()},{capture:!0}),_(window,X,c.onClose)}),(t,n)=>(k(),D(s(ie),{"as-child":``,"disable-outside-pointer-events":!1,onEscapeKeyDown:n[0]||=e=>o(`escapeKeyDown`,e),onPointerDownOutside:n[1]||=e=>{s(c).disableClosingTrigger.value&&s(c).trigger.value?.contains(e.target)&&e.preventDefault(),o(`pointerDownOutside`,e)},onFocusOutside:n[2]||=r(()=>{},[`prevent`]),onDismiss:n[3]||=e=>s(c).onClose()},{default:e(()=>[p(s(N),m({ref:s(f),"data-state":s(c).stateAttribute.value},{...t.$attrs,...y.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:e(()=>[E(t.$slots,`default`),p(s(ne),{id:s(c).contentId,role:`tooltip`},{default:e(()=>[d(l(v.value),1)]),_:1},8,[`id`])]),_:3},16,[`data-state`])]),_:3}))}}),me=o({__name:`TooltipContentHoverable`,props:{ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},setup(t){let n=F(t),{forwardRef:r,currentElement:i}=T(),{trigger:a,onClose:o}=Z(),c=Y(),{isPointerInTransit:l,onPointerExit:u}=V(a,i);return c.isPointerInTransitRef=l,u(()=>{o()}),(t,i)=>(k(),D(Q,m({ref:s(r)},s(n)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))}}),he=o({__name:`TooltipContent`,props:{forceMount:{type:Boolean,required:!1},ariaLabel:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let r=t,i=n,a=Z(),o=M(r,i),{forwardRef:c}=T();return(t,n)=>(k(),D(s(re),{present:t.forceMount||s(a).open.value},{default:e(()=>[(k(),D(x(s(a).disableHoverableContent.value?Q:me),m({ref:s(c)},s(o)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))]),_:3},8,[`present`]))}}),ge=o({__name:`TooltipPortal`,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)=>(k(),D(s(L),u(v(n)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))}}),$=o({__name:`TooltipTrigger`,props:{reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(t){let r=t,i=Z(),a=Y();i.contentId||=B(void 0,`reka-tooltip-content`);let{forwardRef:o,currentElement:c}=T(),l=C(!1),u=C(!1),d=n(()=>i.disabled.value?{}:{click:w,focus:y,pointermove:_,pointerleave:v,pointerdown:h,blur:x});g(()=>{i.onTriggerChange(c.value)});function f(){setTimeout(()=>{l.value=!1},1)}function h(){i.open&&!i.disableClosingTrigger.value&&i.onClose(),l.value=!0,document.addEventListener(`pointerup`,f,{once:!0})}function _(e){e.pointerType!==`touch`&&!u.value&&!a.isPointerInTransitRef.value&&(i.onTriggerEnter(),u.value=!0)}function v(){i.onTriggerLeave(),u.value=!1}function y(e){l.value||i.ignoreNonKeyboardFocus.value&&!e.target.matches?.(`:focus-visible`)||i.onOpen()}function x(){i.onClose()}function w(){i.disableClosingTrigger.value||i.onClose()}return(t,n)=>(k(),D(s(z),{"as-child":``,reference:t.reference},{default:e(()=>[p(s(S),m({ref:s(o),"aria-describedby":s(i).open.value?s(i).contentId:void 0,"data-state":s(i).stateAttribute.value,as:t.as,"as-child":r.asChild,"data-grace-area-trigger":``},b(d.value)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16,[`aria-describedby`,`data-state`,`as`,`as-child`])]),_:3},8,[`reference`]))}}),_e=o({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(t,{emit:n}){let r=M(t,n);return(t,n)=>(k(),D(s(pe),m({"data-slot":`tooltip`},s(r)),{default:e(e=>[E(t.$slots,`default`,u(v(e)))]),_:3},16))}}),ve=o({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:0},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{type:[Boolean,null,String,Object,Array]}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(t,{emit:n}){let r=t,i=n,a=M(ee(r,`class`),i);return(t,n)=>(k(),D(s(ge),null,{default:e(()=>[p(s(he),m({"data-slot":`tooltip-content`},{...s(a),...t.$attrs},{class:s(O)(`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)`,r.class)}),{default:e(()=>[E(t.$slots,`default`),p(s(le),{class:`size-2.5 rotate-45 rounded-[2px] bg-foreground fill-foreground z-dropdown translate-y-[calc(-50%_-_2px)]`})]),_:3},16,[`class`])]),_:3}))}}),ye=o({__name:`TooltipProvider`,props:{delayDuration:{default:0},skipDelayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean},content:{}},setup(t){let n=t;return(t,r)=>(k(),D(s(de),u(v(n)),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))}}),be=o({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(t){let n=t;return(t,r)=>(k(),D(s($),m({"data-slot":`tooltip-trigger`},n),{default:e(()=>[E(t.$slots,`default`)]),_:3},16))}});export{_e as i,ye as n,ve as r,be as t};
@@ -1 +0,0 @@
1
- import{Bt as e,Ct as t,F as n,J as r,K as i,Q as a,Rt as o,U as s,Ut as c,X as l,Y as u,Z as d,ut as f}from"./button-DMmB7tDy.js";import{t as p}from"./Label-CRw4oQf2.js";import{f as m,g as h,h as g,m as _,p as v}from"./index-QPBBCV_W.js";import{t as y}from"./Input-1iFstr5N.js";var b={key:1,class:`text-[10px] text-muted-foreground leading-snug`},x=a({__name:`ConcurrencyControl`,props:{mode:{},maxConcurrency:{default:10},queueTimeoutMs:{default:12e4},maxQueueSize:{default:100},compact:{type:Boolean,default:!1}},emits:[`update:mode`,`update:maxConcurrency`,`update:queueTimeoutMs`,`update:maxQueueSize`],setup(a,{emit:x}){let{t:S}=n(),C=x;return(n,x)=>(f(),u(`div`,{class:e(a.compact?`space-y-2`:`flex items-end gap-2 flex-wrap`)},[i(`div`,{class:e([a.compact?``:`w-36`,`space-y-1`])},[d(o(p),{class:`text-xs text-muted-foreground`},{default:t(()=>[l(c(o(S)(`providers.concurrency.mode`)),1)]),_:1}),d(o(h),{"model-value":a.mode,"onUpdate:modelValue":x[0]||=e=>C(`update:mode`,e)},{default:t(()=>[d(o(v),{class:`w-full text-xs data-[size=default]:h-7`},{default:t(()=>[d(o(m))]),_:1}),d(o(g),null,{default:t(()=>[d(o(_),{value:`auto`},{default:t(()=>[l(c(o(S)(`providers.concurrency.autoAdaptive`)),1)]),_:1}),d(o(_),{value:`manual`},{default:t(()=>[l(c(o(S)(`providers.concurrency.manual`)),1)]),_:1}),d(o(_),{value:`none`},{default:t(()=>[l(c(o(S)(`providers.concurrency.none`)),1)]),_:1})]),_:1})]),_:1},8,[`model-value`])],2),a.mode===`none`?r(``,!0):(f(),u(s,{key:0},[i(`div`,{class:e([a.compact?``:`w-28`,`space-y-1`])},[d(o(p),{class:`text-xs text-muted-foreground`},{default:t(()=>[l(c(o(S)(`providers.concurrency.maxConcurrency`)),1)]),_:1}),d(o(y),{"model-value":a.maxConcurrency,type:`number`,min:`1`,max:`100`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[1]||=e=>C(`update:maxConcurrency`,Number(e))},null,8,[`model-value`])],2),i(`div`,{class:e([a.compact?``:`w-32`,`space-y-1`])},[d(o(p),{class:`text-xs text-muted-foreground`},{default:t(()=>[l(c(o(S)(`providers.concurrency.queueTimeout`)),1)]),_:1}),d(o(y),{"model-value":a.queueTimeoutMs,type:`number`,min:`0`,placeholder:o(S)(`providers.shared.queueTimeoutPlaceholder`),class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[2]||=e=>C(`update:queueTimeoutMs`,Number(e))},null,8,[`model-value`,`placeholder`])],2),i(`div`,{class:e([a.compact?``:`w-32`,`space-y-1`])},[d(o(p),{class:`text-xs text-muted-foreground`},{default:t(()=>[l(c(o(S)(`providers.concurrency.maxQueueSize`)),1)]),_:1}),d(o(y),{"model-value":a.maxQueueSize,type:`number`,min:`1`,max:`1000`,class:`text-xs md:text-xs md:text-xs h-7`,"onUpdate:modelValue":x[3]||=e=>C(`update:maxQueueSize`,Number(e))},null,8,[`model-value`])],2)],64)),a.mode===`auto`&&!a.compact?(f(),u(`div`,b,c(o(S)(`providers.shared.autoHint`)),1)):r(``,!0)],2))}}),S=a({__name:`TransformRulesForm`,props:{injectHeaders:{},dropFields:{},requestDefaults:{},compact:{type:Boolean}},emits:[`update:injectHeaders`,`update:dropFields`,`update:requestDefaults`],setup(r,{emit:a}){let s=a,{t:m}=n();return(n,a)=>(f(),u(`div`,{class:e(r.compact?`space-y-2`:`space-y-3`)},[i(`div`,null,[d(o(p),{class:`text-[11px] text-muted-foreground`},{default:t(()=>[l(c(o(m)(`providers.transform.injectHeaders`)),1)]),_:1}),d(o(y),{"model-value":r.injectHeaders,placeholder:`{"x-custom": "value"}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":a[0]||=e=>s(`update:injectHeaders`,e)},null,8,[`model-value`])]),i(`div`,null,[d(o(p),{class:`text-[11px] text-muted-foreground`},{default:t(()=>[l(c(o(m)(`providers.transform.dropFields`)),1)]),_:1}),d(o(y),{"model-value":r.dropFields,placeholder:`logprobs, frequency_penalty`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":a[1]||=e=>s(`update:dropFields`,e)},null,8,[`model-value`])]),i(`div`,null,[d(o(p),{class:`text-[11px] text-muted-foreground`},{default:t(()=>[l(c(o(m)(`providers.transform.requestDefaults`)),1)]),_:1}),d(o(y),{"model-value":r.requestDefaults,placeholder:`{"max_tokens": 4096}`,class:`mt-0.5 md:text-xs font-mono`,"onUpdate:modelValue":a[2]||=e=>s(`update:requestDefaults`,e)},null,8,[`model-value`])])],2))}});export{x as n,S as t};
@@ -1,3 +0,0 @@
1
- import{Bt as e,Ct as t,D as n,F as r,G as i,H as a,Ht as o,It as s,J as c,K as l,M as u,Nt as d,Q as f,Rt as p,T as m,U as h,Ut as g,V as _,Vt as v,X as y,Y as b,Z as x,at as S,bt as C,ct as w,et as T,ft as E,ht as D,i as O,jt as k,lt as A,m as j,n as M,o as N,ot as ee,p as P,pt as F,q as I,r as L,ut as R,x as z,xt as B}from"./button-DMmB7tDy.js";import{t as te}from"./copy-3gKHS1GQ.js";import{n as ne,t as re}from"./CollapsibleContent-Gd8G1WPI.js";import{t as ie}from"./CollapsibleTrigger-DEs_2Gam.js";import{a as ae,i as oe,n as se,o as ce,t as le}from"./dialog-B68sJflZ.js";import{n as ue,t as de}from"./RovingFocusItem-WFfF7xTx.js";import{B as fe,J as pe,L as V,R as me,U as he,V as ge,b as H,et as _e,nt as ve,q as U,tt as ye,x as be,z as xe}from"./index-QPBBCV_W.js";import{t as Se}from"./useClipboard-Df2zt0gp.js";var Ce=u(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),we=u(`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`}]]),Te=u(`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`}]]),W=u(`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`}]]),Ee=u(`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`}]]),De=u(`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`}]]),[G,Oe]=U(`ScrollAreaRoot`),ke=f({__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:n}){let r=e,i=k(0),a=k(0),c=k(),l=k(),u=k(),d=k(),f=k(!1),m=k(!1),{type:h,dir:g,scrollHideDelay:_}=s(r),v=he(g);function y(){c.value?.scrollTo({top:0})}function b(){c.value?.scrollTo({top:0,left:0})}n({viewport:c,scrollTop:y,scrollTopLeft:b});let{forwardRef:x,currentElement:S}=N();return Oe({type:h,dir:v,scrollHideDelay:_,scrollArea:S,viewport:c,onViewportChange:e=>{c.value=e||void 0},content:l,onContentChange:e=>{l.value=e},scrollbarX:u,scrollbarXEnabled:f,scrollbarY:d,scrollbarYEnabled:m,onScrollbarXChange:e=>{u.value=e||void 0},onScrollbarYChange:e=>{d.value=e||void 0},onScrollbarXEnabledChange:e=>{f.value=e},onScrollbarYEnabledChange:e=>{m.value=e},onCornerWidthChange:e=>{i.value=e},onCornerHeightChange:e=>{a.value=e}}),(e,n)=>(R(),I(p(O),{ref:p(x),"as-child":r.asChild,as:e.as,dir:p(v),style:o({position:`relative`,"--reka-scroll-area-corner-width":`${i.value}px`,"--reka-scroll-area-corner-height":`${a.value}px`})},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`dir`,`style`]))}}),Ae=f({__name:`ScrollAreaCornerImpl`,setup(e){let n=G(),r=k(0),a=k(0),o=i(()=>!!r.value&&!!a.value);function s(){let e=n.scrollbarX.value?.offsetHeight||0;n.onCornerHeightChange(e),a.value=e}function l(){let e=n.scrollbarY.value?.offsetWidth||0;n.onCornerWidthChange(e),r.value=e}return P(n.scrollbarX.value,s),P(n.scrollbarY.value,l),C(()=>n.scrollbarX.value,s),C(()=>n.scrollbarY.value,l),(e,i)=>o.value?(R(),I(p(O),S({key:0,style:{width:`${r.value}px`,height:`${a.value}px`,position:`absolute`,right:p(n).dir.value===`ltr`?0:void 0,left:p(n).dir.value===`rtl`?0:void 0,bottom:0}},e.$parent?.$props),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`style`])):c(`v-if`,!0)}}),je=f({__name:`ScrollAreaCorner`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let n=e,{forwardRef:r}=N(),a=G(),o=i(()=>!!a.scrollbarX.value&&!!a.scrollbarY.value),s=i(()=>a.type.value!==`scroll`&&o.value);return(e,i)=>s.value?(R(),I(Ae,S({key:0},n,{ref:p(r)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16)):c(`v-if`,!0)}});function Me(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 K(e){let t=Ne(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Ne(e,t){let n=e/t;return Number.isNaN(n)?0:n}function Pe(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 Fe(e,t,n=`ltr`){let r=K(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=pe(e,c[0],c[1]);return Me([0,o],[0,s])(l)}function q(e){return e?Number.parseInt(e,10):0}function Ie(e,t,n,r=`ltr`){let i=K(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 Me([c,l],d)(e)}function Le(e,t){return e>0&&e<t}var Re=f({__name:`ScrollAreaScrollbarX`,setup(e){let n=G(),r=X(),{forwardRef:a,currentElement:s}=N();w(()=>{s.value&&n.onScrollbarXChange(s.value)});let c=i(()=>r.sizes.value);return(e,i)=>(R(),I(qe,{ref:p(a),"is-horizontal":!0,"data-orientation":`horizontal`,style:o({bottom:0,left:p(n).dir.value===`rtl`?`var(--reka-scroll-area-corner-width)`:0,right:p(n).dir.value===`ltr`?`var(--reka-scroll-area-corner-width)`:0,"--reka-scroll-area-thumb-width":c.value?`${p(K)(c.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>p(r).onDragScroll(e.x)},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`style`]))}}),ze=f({__name:`ScrollAreaScrollbarY`,setup(e){let n=G(),r=X(),{forwardRef:a,currentElement:s}=N();w(()=>{s.value&&n.onScrollbarYChange(s.value)});let c=i(()=>r.sizes.value);return(e,i)=>(R(),I(qe,{ref:p(a),"is-horizontal":!1,"data-orientation":`vertical`,style:o({top:0,right:p(n).dir.value===`ltr`?0:void 0,left:p(n).dir.value===`rtl`?0:void 0,bottom:`var(--reka-scroll-area-corner-height)`,"--reka-scroll-area-thumb-height":c.value?`${p(K)(c.value)}px`:void 0}),onOnDragScroll:i[0]||=e=>p(r).onDragScroll(e.y)},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`style`]))}}),J=f({__name:`ScrollAreaScrollbarAuto`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let n=G(),r=Y(),{forwardRef:i}=N(),a=k(!1),o=m(()=>{if(n.viewport.value){let e=n.viewport.value.offsetWidth<n.viewport.value.scrollWidth,t=n.viewport.value.offsetHeight<n.viewport.value.scrollHeight;a.value=r.isHorizontal.value?e:t}},10);return w(()=>o()),P(n.viewport,o),P(n.content,o),(e,n)=>(R(),I(p(V),{present:e.forceMount||a.value},{default:t(()=>[x(Ke,S(e.$attrs,{ref:p(i),"data-state":a.value?`visible`:`hidden`}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Be=f({inheritAttrs:!1,__name:`ScrollAreaScrollbarGlimpse`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let n=G(),r=Y(),{forwardRef:a}=N(),{state:o,dispatch:s}=me(`hidden`,{hidden:{POINTER_ENTER:`glimpse`,SCROLL:`scrolling`},glimpse:{HIDE:`hidden`,POINTER_LEAVE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`glimpse`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),c=i(()=>o.value!==`hidden`);function l(){s(`POINTER_ENTER`)}function u(){s(`POINTER_LEAVE`)}let d=m(()=>s(`SCROLL_END`),100);return B(e=>{if(o.value===`glimpse`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}}),B(e=>{if(o.value===`idle`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}}),B(e=>{let t=n.viewport.value,i=r.isHorizontal.value?`scrollLeft`:`scrollTop`;if(t){let n=t[i],r=()=>{let e=t[i];n!==e&&(s(`SCROLL`),d()),n=e};t.addEventListener(`scroll`,r),e(()=>{t.removeEventListener(`scroll`,r)})}}),w(()=>{let e=n.scrollArea.value;e&&(e.addEventListener(`pointerenter`,l),e.addEventListener(`pointerleave`,u))}),A(()=>{let e=n.scrollArea.value;e&&(e.removeEventListener(`pointerenter`,l),e.removeEventListener(`pointerleave`,u))}),(e,n)=>(R(),I(p(V),{present:e.forceMount||c.value},{default:t(()=>[x(J,S(e.$attrs,{ref:p(a),"data-state":c.value?`visible`:`hidden`}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),Ve=f({inheritAttrs:!1,__name:`ScrollAreaScrollbarHover`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let n=G(),{forwardRef:r}=N(),i,a=k(!1);function o(){window.clearTimeout(i),a.value=!0}function s(){i=window.setTimeout(()=>{a.value=!1},n.scrollHideDelay.value)}return w(()=>{let e=n.scrollArea.value;e&&(e.addEventListener(`pointerenter`,o),e.addEventListener(`pointerleave`,s))}),A(()=>{let e=n.scrollArea.value;e&&(window.clearTimeout(i),e.removeEventListener(`pointerenter`,o),e.removeEventListener(`pointerleave`,s))}),(e,n)=>(R(),I(p(V),{present:e.forceMount||a.value},{default:t(()=>[x(J,S(e.$attrs,{ref:p(r),"data-state":a.value?`visible`:`hidden`}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),He=f({__name:`ScrollAreaScrollbarScroll`,props:{forceMount:{type:Boolean,required:!1}},setup(e){let n=G(),r=Y(),{forwardRef:a}=N(),{state:o,dispatch:s}=me(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}}),c=i(()=>o.value!==`hidden`);B(e=>{if(o.value===`idle`){let t=window.setTimeout(s,n.scrollHideDelay.value,`HIDE`);e(()=>{window.clearTimeout(t)})}});let l=m(()=>s(`SCROLL_END`),100);return B(e=>{let t=n.viewport.value,i=r.isHorizontal.value?`scrollLeft`:`scrollTop`;if(t){let n=t[i],r=()=>{let e=t[i];n!==e&&(s(`SCROLL`),l()),n=e};t.addEventListener(`scroll`,r),e(()=>{t.removeEventListener(`scroll`,r)})}}),(e,n)=>(R(),I(p(V),{present:e.forceMount||c.value},{default:t(()=>[x(Ke,S(e.$attrs,{ref:p(a),"data-state":c.value?`visible`:`hidden`}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`data-state`])]),_:3},8,[`present`]))}}),[Y,Ue]=U(`ScrollAreaScrollbar`),We=f({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 n=e,{forwardRef:r}=N(),a=G(),o=i(()=>n.orientation===`horizontal`);C(o,()=>{o.value?a.onScrollbarXEnabledChange(!0):a.onScrollbarYEnabledChange(!0)},{immediate:!0}),A(()=>{a.onScrollbarXEnabledChange(!1),a.onScrollbarYEnabledChange(!1)});let{orientation:l,forceMount:u,asChild:d,as:f}=s(n);return Ue({orientation:l,forceMount:u,isHorizontal:o,as:f,asChild:d}),(e,n)=>p(a).type.value===`hover`?(R(),I(Ve,S({key:0},e.$attrs,{ref:p(r),"force-mount":p(u)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`force-mount`])):p(a).type.value===`scroll`?(R(),I(He,S({key:1},e.$attrs,{ref:p(r),"force-mount":p(u)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`force-mount`])):p(a).type.value===`glimpse`?(R(),I(Be,S({key:2},e.$attrs,{ref:p(r),"force-mount":p(u)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`force-mount`])):p(a).type.value===`auto`?(R(),I(J,S({key:3},e.$attrs,{ref:p(r),"force-mount":p(u)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`force-mount`])):p(a).type.value===`always`?(R(),I(Ke,S({key:4},e.$attrs,{ref:p(r),"data-state":`visible`}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16)):c(`v-if`,!0)}}),[X,Ge]=U(`ScrollAreaScrollbarVisible`),Ke=f({__name:`ScrollAreaScrollbarVisible`,setup(e){let n=G(),r=Y(),{forwardRef:a}=N(),o=k({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),s=i(()=>{let e=Ne(o.value.viewport,o.value.content);return e>0&&e<1}),c=k(),l=k(0);function u(e,t){if(g.value){let r=n.viewport.value.scrollLeft+e.deltaY;n.viewport.value.scrollLeft=r,Le(r,t)&&e.preventDefault()}else{let r=n.viewport.value.scrollTop+e.deltaY;n.viewport.value.scrollTop=r,Le(r,t)&&e.preventDefault()}}function d(e,t){g.value?l.value=t.x:l.value=t.y}function f(e){l.value=0}function m(e){o.value=e}function h(e,t){return Ie(e,l.value,o.value,t)}let g=i(()=>r.isHorizontal.value);function _(e){g.value?n.viewport.value.scrollLeft=h(e,n.dir.value):n.viewport.value.scrollTop=h(e)}function v(){if(g.value){if(n.viewport.value&&c.value){let e=n.viewport.value.scrollLeft,t=Fe(e,o.value,n.dir.value);c.value.style.transform=`translate3d(${t}px, 0, 0)`}}else if(n.viewport.value&&c.value){let e=n.viewport.value.scrollTop,t=Fe(e,o.value);c.value.style.transform=`translate3d(0, ${t}px, 0)`}}function y(e){c.value=e}return Ge({sizes:o,hasThumb:s,handleWheelScroll:u,handleThumbDown:d,handleThumbUp:f,handleSizeChange:m,onThumbPositionChange:v,onThumbChange:y,onDragScroll:_}),(e,n)=>g.value?(R(),I(Re,S({key:0},e.$attrs,{ref:p(a)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16)):(R(),I(ze,S({key:1},e.$attrs,{ref:p(a)}),{default:t(()=>[F(e.$slots,`default`)]),_:3},16))}}),qe=f({__name:`ScrollAreaScrollbarImpl`,props:{isHorizontal:{type:Boolean,required:!0}},emits:[`onDragScroll`,`onWheelScroll`,`onThumbPointerDown`],setup(e,{emit:n}){let r=e,i=n,a=G(),o=X(),s=Y(),{forwardRef:c,currentElement:l}=N(),u=k(``),d=k();function f(e){d.value&&i(`onDragScroll`,{x:e.clientX-d.value?.left,y:e.clientY-d.value?.top})}function m(e){e.button===0&&(e.target.setPointerCapture(e.pointerId),d.value=l.value.getBoundingClientRect(),u.value=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,a.viewport&&(a.viewport.value.style.scrollBehavior=`auto`),f(e))}function h(e){f(e)}function g(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=``),d.value=void 0}function _(e){let t=e.target,n=l.value?.contains(t),r=o.sizes.value.content-o.sizes.value.viewport;n&&o.handleWheelScroll(e,r)}w(()=>{document.addEventListener(`wheel`,_,{passive:!1})}),A(()=>{document.removeEventListener(`wheel`,_)});function v(){l.value&&(r.isHorizontal?o.handleSizeChange({content:a.viewport.value?.scrollWidth??0,viewport:a.viewport.value?.offsetWidth??0,scrollbar:{size:l.value.clientWidth??0,paddingStart:q(getComputedStyle(l.value).paddingLeft),paddingEnd:q(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:q(getComputedStyle(l.value).paddingTop),paddingEnd:q(getComputedStyle(l.value).paddingBottom)}}),o.onThumbPositionChange())}return P(l,v),P(a.content,v),(e,n)=>(R(),I(p(O),{ref:p(c),style:{position:`absolute`},"data-scrollbarimpl":``,as:p(s).as.value,"as-child":p(s).asChild.value,onPointerdown:m,onPointermove:h,onPointerup:g},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`as`,`as-child`]))}}),Je=f({__name:`ScrollAreaThumb`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let r=e,a=G(),o=X();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}=N(),d=k(),f=i(()=>a.viewport.value);function m(){d.value||(d.value=Pe(f.value,o.onThumbPositionChange),o.onThumbPositionChange())}return n(i(()=>o.sizes.value),()=>{o.onThumbChange(u.value),f.value&&(o.onThumbPositionChange(),f.value.addEventListener(`scroll`,m))}),A(()=>{f.value.removeEventListener(`scroll`,m),a.viewport.value?.removeEventListener(`scroll`,m)}),(e,n)=>(R(),I(p(O),{ref:p(l),"data-state":p(o).hasThumb?`visible`:`hidden`,style:{width:`var(--reka-scroll-area-thumb-width)`,height:`var(--reka-scroll-area-thumb-height)`},"as-child":r.asChild,as:e.as,onPointerdown:s,onPointerup:c},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`data-state`,`as-child`,`as`]))}}),Ye=f({inheritAttrs:!1,__name:`ScrollAreaViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e,{expose:n}){let r=e,{nonce:i}=s(r),a=be(i),c=G(),u=k();w(()=>{c.onViewportChange(u.value),c.onContentChange(f.value)}),n({viewportElement:u});let{forwardRef:d,currentElement:f}=N();return(e,n)=>(R(),b(h,null,[l(`div`,S({ref_key:`viewportElement`,ref:u,"data-reka-scroll-area-viewport":``,style:{overflowX:p(c).scrollbarXEnabled.value?`scroll`:`hidden`,overflowY:p(c).scrollbarYEnabled.value?`scroll`:`hidden`}},e.$attrs,{tabindex:0}),[x(p(O),{ref:p(d),style:o({minWidth:p(c).scrollbarXEnabled.value?`fit-content`:void 0}),"as-child":r.asChild,as:e.as},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`style`,`as-child`,`as`])],16),x(p(O),{as:`style`,nonce:p(a)},{default:t(()=>n[0]||=[y(` /* 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))}}),Xe=f({__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 n=e,r=[`horizontal`,`vertical`];function a(e){return r.includes(e)}let o=i(()=>a(n.orientation)?n.orientation:`horizontal`),s=i(()=>o.value===`vertical`?n.orientation:void 0),c=i(()=>n.decorative?{role:`none`}:{"aria-orientation":s.value,role:`separator`});return(e,n)=>(R(),I(p(O),S({as:e.as,"as-child":e.asChild,"data-orientation":o.value},c.value),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`as`,`as-child`,`data-orientation`]))}}),Ze=f({__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 n=e;return(e,r)=>(R(),I(Xe,v(T(n)),{default:t(()=>[F(e.$slots,`default`)]),_:3},16))}}),[Qe,$e]=U(`TabsRoot`),et=f({__name:`TabsRoot`,props:{defaultValue:{type:null,required:!1},orientation:{type:String,required:!1,default:`horizontal`},dir:{type:String,required:!1},activationMode:{type:String,required:!1,default:`automatic`},modelValue:{type:null,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=e,i=n,{orientation:a,unmountOnHide:o,dir:c}=s(r),l=he(c);N();let u=j(r,`modelValue`,i,{defaultValue:r.defaultValue,passive:r.modelValue===void 0}),f=k(),m=d(new Set);return $e({modelValue:u,changeModelValue:e=>{u.value=e},orientation:a,dir:l,unmountOnHide:o,activationMode:r.activationMode,baseId:xe(void 0,`reka-tabs`),tabsList:f,contentIds:m,registerContent:e=>{m.value=new Set([...m.value,e])},unregisterContent:e=>{let t=new Set(m.value);t.delete(e),m.value=t}}),(e,n)=>(R(),I(p(O),{dir:p(l),"data-orientation":p(a),"as-child":e.asChild,as:e.as},{default:t(()=>[F(e.$slots,`default`,{modelValue:p(u)})]),_:3},8,[`dir`,`data-orientation`,`as-child`,`as`]))}});function tt(e,t){return`${e}-trigger-${t}`}function nt(e,t){return`${e}-content-${t}`}var rt=f({__name:`TabsList`,props:{loop:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let{loop:n}=s(e),{forwardRef:r,currentElement:i}=N(),a=Qe();return a.tabsList=i,(e,i)=>(R(),I(p(ue),{"as-child":``,orientation:p(a).orientation.value,dir:p(a).dir.value,loop:p(n)},{default:t(()=>[x(p(O),{ref:p(r),role:`tablist`,"as-child":e.asChild,as:e.as,"aria-orientation":p(a).orientation.value},{default:t(()=>[F(e.$slots,`default`)]),_:3},8,[`as-child`,`as`,`aria-orientation`])]),_:3},8,[`orientation`,`dir`,`loop`]))}}),it=f({__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 n=e,{forwardRef:r}=N(),o=Qe(),s=i(()=>tt(o.baseId,n.value)),c=i(()=>o.contentIds.value.has(n.value)?nt(o.baseId,n.value):void 0),l=i(()=>n.value===o.modelValue.value);return(e,n)=>(R(),I(p(de),{"as-child":``,focusable:!e.disabled,active:l.value},{default:t(()=>[x(p(O),{id:s.value,ref:p(r),role:`tab`,type:e.as===`button`?`button`:void 0,as:e.as,"as-child":e.asChild,"aria-selected":l.value?`true`:`false`,"aria-controls":c.value,"data-state":l.value?`active`:`inactive`,disabled:e.disabled,"data-disabled":e.disabled?``:void 0,"data-orientation":p(o).orientation.value,onMousedown:n[0]||=a(t=>{!e.disabled&&t.ctrlKey===!1?p(o).changeModelValue(e.value):t.preventDefault()},[`left`]),onKeydown:n[1]||=_(t=>p(o).changeModelValue(e.value),[`enter`,`space`]),onFocus:n[2]||=()=>{let t=p(o).activationMode!==`manual`;!l.value&&!e.disabled&&t&&p(o).changeModelValue(e.value)}},{default:t(()=>[F(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`]))}}),Z=f({__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=z(t,`class`);return(e,r)=>(R(),I(p(Ze),S({"data-slot":`separator`},p(n),{class:p(L)(`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`]))}}),at=f({__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:n}){let r=e,i=n,a=fe(z(r,`class`),i);return(e,n)=>(R(),I(p(et),S({"data-slot":`tabs`,"data-orientation":p(a).orientation||`horizontal`},p(a),{class:p(L)(`gap-2 group/tabs flex data-[orientation=horizontal]:flex-col`,r.class)}),{default:t(t=>[F(e.$slots,`default`,v(T(t)))]),_:3},16,[`data-orientation`,`class`]))}}),ot=f({__name:`TabsList`,props:{loop:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},variant:{default:`default`}},setup(e){let n=e,r=z(n,`class`,`variant`);return(i,a)=>(R(),I(p(rt),S({"data-slot":`tabs-list`,"data-variant":e.variant},p(r),{class:p(L)(`rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-8 data-[variant=line]:rounded-none group/tabs-list inline-flex w-fit items-center justify-center text-muted-foreground group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col`,e.variant===`default`&&`bg-muted`,e.variant===`line`&&`gap-1 bg-transparent`,n.class)}),{default:t(()=>[F(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),st=f({__name:`TabsTrigger`,props:{value:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=ge(z(n,`class`));return(e,i)=>(R(),I(p(it),S({"data-slot":`tabs-trigger`,class:p(L)(`gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg:not([class*=size-])]:size-4 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0`,`group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent`,`data-[state=active]:bg-background data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 dark:data-[state=active]:text-foreground`,`after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100`,n.class)},p(r)),{default:t(()=>[F(e.$slots,`default`)]),_:3},16,[`class`]))}}),Q=1e3;function ct(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 lt(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 ut=[`stream_error: upstream returned 200 but body contains error`];function dt(e){return e?ut.some(t=>e.startsWith(t)):!1}function ft(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=lt(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:dt(e.error_message)?null:e.error_message,createdAt:e.created_at,inputTokensEstimated:e.input_tokens_estimated===1}}var pt=f({__name:`ScrollBar`,props:{orientation:{default:`vertical`},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=z(n,`class`);return(i,a)=>(R(),I(p(We),S({"data-slot":`scroll-area-scrollbar`,"data-orientation":e.orientation},p(r),{class:p(L)(`data-[orientation=horizontal]:h-2.5 data-[orientation=horizontal]:flex-col data-[orientation=horizontal]:border-t data-[orientation=horizontal]:border-t-transparent data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2.5 data-[orientation=vertical]:border-l data-[orientation=vertical]:border-l-transparent flex touch-none p-px transition-colors select-none`,n.class)}),{default:t(()=>[x(p(Je),{"data-slot":`scroll-area-thumb`,class:`rounded-full relative flex-1 bg-border`})]),_:1},16,[`data-orientation`,`class`]))}}),$=f({__name:`ScrollArea`,props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=z(n,`class`);return(e,i)=>(R(),I(p(ke),S({"data-slot":`scroll-area`},p(r),{class:p(L)(`relative`,n.class)}),{default:t(()=>[x(p(Ye),{"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:t(()=>[F(e.$slots,`default`)]),_:3}),x(pt),x(p(je))]),_:3},16,[`class`]))}});function mt(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 ht=new Set([`choices`,`content`]);function gt(e,t){if(!e&&!t)return``;let n=_t(e),r=n?.headers,i=n?.body??t;if(r){let e={headers:r};return i&&(e.body=vt(i)),JSON.stringify(e,null,2)}if(i){let e=vt(i);return JSON.stringify(e,null,2)}return``}function _t(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 vt(e){try{let t=JSON.parse(e);if(typeof t==`object`&&t){let e={};for(let[n,r]of Object.entries(t))ht.has(n)||(e[n]=r);return e}return e}catch{return e}}var yt={class:`space-y-3`},bt={class:`flex items-center justify-between`},xt={class:`text-xs font-medium text-muted-foreground`},St={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},Ct={class:`flex items-baseline gap-1 min-w-0`},wt={class:`font-mono text-[11px] font-semibold truncate min-w-0`},Tt={class:`text-[10px] text-muted-foreground flex-shrink-0`},Et={class:`flex items-center gap-1.5`},Dt={key:0,class:`flex items-center gap-1.5`},Ot={class:`font-mono text-[11px] text-muted-foreground truncate`},kt={class:`grid grid-cols-2 gap-1.5`},At={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},jt={class:`text-[10px] text-muted-foreground`},Mt={class:`text-sm font-semibold truncate`},Nt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Pt={class:`text-[10px] text-muted-foreground`},Ft={class:`text-sm font-semibold truncate`},It={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Lt={class:`text-[10px] text-muted-foreground`},Rt={class:`text-sm font-semibold truncate`},zt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Bt={class:`text-[10px] text-muted-foreground`},Vt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Ht={class:`text-[10px] text-muted-foreground`},Ut={class:`text-sm font-semibold truncate`},Wt={class:`bg-muted/50 rounded-md px-2 py-1.5 min-w-0`},Gt={class:`text-[10px] text-muted-foreground`},Kt={class:`text-sm font-semibold truncate`},qt={class:`space-y-1.5`},Jt={class:`text-[10px] text-muted-foreground uppercase tracking-wider`},Yt={key:0,class:`text-[11px] text-muted-foreground`},Xt={class:`text-muted-foreground`},Zt={class:`text-muted-foreground`},Qt={class:`space-y-1`},$t={key:0,class:`flex items-center justify-between text-[11px]`},en={class:`text-muted-foreground`},tn={class:`font-mono`},nn={key:1,class:`flex items-center justify-between text-[11px]`},rn={class:`text-muted-foreground`},an={class:`font-mono truncate max-w-[160px]`},on=f({__name:`RequestOverviewPanel`,props:{overview:{}},setup(n){let{t:a}=r(),o=n,s=k(!1),u=i(()=>gt(o.overview.upstreamResponse,o.overview.responseBody)||JSON.stringify({latencyMs:o.overview.latencyMs,ttftMs:o.overview.ttftMs,inputTokens:o.overview.inputTokens,outputTokens:o.overview.outputTokens,tokensPerSecond:o.overview.tokensPerSecond,cacheReadTokens:o.overview.cacheReadTokens,cacheWriteTokens:o.overview.cacheWriteTokens,stopReason:o.overview.stopReason,statusCode:o.overview.statusCode},null,2)),d=i(()=>{if(o.overview.status===`pending`)return`pending`;let e=o.overview.statusCode;return o.overview.status===`failed`||e!=null&&e>=400?`error`:`success`}),f=i(()=>o.overview.status===`pending`&&o.overview.outputTokens!=null),m=i(()=>{let e=o.overview.outputTokens;return e==null?`--`:f.value?`+${e}`:String(e)}),_=i(()=>o.overview.status===`pending`&&o.overview.latencyMs==null?`...`:o.overview.latencyMs==null?`--`:`${(o.overview.latencyMs/Q).toFixed(1)}s`),v=i(()=>{if(o.overview.tokensPerSecond!=null)return`${o.overview.tokensPerSecond.toFixed(1)}`;let{outputTokens:e,latencyMs:t}=o.overview;return e&&t?`${(e/t*Q).toFixed(1)}`:`--`});function S(e){return e!=null&&e>=400}return(r,i)=>(R(),b(`div`,yt,[l(`div`,bt,[l(`span`,xt,g(p(a)(`requestDetail.overviewTitle`)),1),x(p(M),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:i[0]||=e=>s.value=!s.value},{default:t(()=>[(R(),I(D(s.value?p(_e):p(W)),{class:`h-3 w-3`})),y(` `+g(s.value?p(a)(`requestDetail.structured`):p(a)(`requestDetail.rawData`)),1)]),_:1})]),s.value?(R(),I(p($),{key:0,class:`rounded-md border flex-1`},{default:t(()=>[l(`pre`,St,g(u.value),1)]),_:1})):c(``,!0),s.value?c(``,!0):(R(),b(h,{key:1},[l(`div`,Ct,[l(`span`,wt,g(n.overview.model),1),l(`span`,Tt,`@ `+g(n.overview.providerName||p(a)(`requestDetail.unknownProvider`)),1)]),l(`div`,Et,[d.value===`pending`?(R(),I(p(H),{key:0,variant:`outline`,class:`border-warning/30 bg-warning-light text-warning-dark`},{default:t(()=>[i[1]||=l(`span`,{class:`w-1.5 h-1.5 rounded-full bg-warning animate-pulse`},null,-1),y(` `+g(p(a)(`requestDetail.pending`)),1)]),_:1})):d.value===`error`?(R(),I(p(H),{key:1,variant:`outline`,class:`border-danger/30 bg-danger-light text-danger-dark`},{default:t(()=>[y(g(n.overview.statusCode??p(a)(`requestDetail.failed`)),1)]),_:1})):(R(),I(p(H),{key:2,variant:`outline`,class:`border-success/30 bg-success-light text-success-dark`},{default:t(()=>[i[2]||=l(`span`,{class:`w-1.5 h-1.5 rounded-full bg-success`},null,-1),y(` `+g(p(a)(`requestDetail.completed`)),1)]),_:1})),x(p(H),{variant:`outline`},{default:t(()=>[y(g(n.overview.isStream?`SSE`:p(a)(`requestDetail.nonStream`)),1)]),_:1}),x(p(H),{variant:`outline`},{default:t(()=>[y(g(n.overview.apiType),1)]),_:1})]),n.overview.sessionId?(R(),b(`div`,Dt,[x(p(H),{variant:`secondary`,class:`text-[10px]`},{default:t(()=>[...i[3]||=[y(`Session`,-1)]]),_:1}),l(`span`,Ot,g(n.overview.sessionId.slice(0,8)),1)])):c(``,!0),l(`div`,kt,[l(`div`,At,[l(`div`,jt,g(p(a)(`requestDetail.latency`)),1),l(`div`,Mt,g(_.value),1)]),l(`div`,Nt,[l(`div`,Pt,g(p(a)(`requestDetail.ttft`)),1),l(`div`,Ft,g(n.overview.ttftMs==null?`--`:`${n.overview.ttftMs}ms`),1)]),l(`div`,It,[l(`div`,Lt,g(n.overview.inputTokensEstimated?p(a)(`requestDetail.estInputTokens`):p(a)(`requestDetail.inputTokens`)),1),l(`div`,Rt,g(n.overview.inputTokens==null?`--`:n.overview.inputTokens),1)]),l(`div`,zt,[l(`div`,Bt,g(p(a)(`requestDetail.outputTokens`)),1),l(`div`,{class:e([`text-sm font-semibold truncate`,f.value?`diff-added`:``])},g(m.value),3)]),l(`div`,Vt,[l(`div`,Ht,g(p(a)(`requestDetail.speed`)),1),l(`div`,Ut,g(v.value),1)]),l(`div`,Wt,[l(`div`,Gt,g(p(a)(`requestDetail.cacheRead`)),1),l(`div`,Kt,g(n.overview.cacheReadTokens==null?`--`:n.overview.cacheReadTokens),1)])]),x(p(Z)),l(`div`,qt,[l(`span`,Jt,g(p(a)(`requestDetail.attemptHistory`)),1),n.overview.attempts.length===0?(R(),b(`div`,Yt,g(p(a)(`requestDetail.noRetry`)),1)):c(``,!0),(R(!0),b(h,null,E(n.overview.attempts,(t,n)=>(R(),b(`div`,{key:n,class:`flex items-center gap-1 text-[11px]`},[l(`span`,Xt,`#`+g(n+1),1),l(`span`,{class:e(S(t.statusCode)?`diff-removed`:`diff-added`)},g(t.statusCode??`--`),3),l(`span`,Zt,g((t.latencyMs/p(Q)).toFixed(1))+`s`,1)]))),128))]),x(p(Z)),l(`div`,Qt,[n.overview.statusCode==null?c(``,!0):(R(),b(`div`,$t,[l(`span`,en,g(p(a)(`requestDetail.statusCodeLabel`)),1),l(`span`,tn,g(n.overview.statusCode),1)])),n.overview.clientIp?(R(),b(`div`,nn,[l(`span`,rn,g(p(a)(`requestDetail.clientIp`)),1),l(`span`,an,g(n.overview.clientIp),1)])):c(``,!0)])],64))]))}}),sn={key:0,class:`rounded-md border bg-card`},cn={class:`flex items-center gap-1.5 px-2.5 py-1.5 border-b`},ln={class:`text-xs font-medium`},un={class:`px-2.5 py-2`},dn={key:0,class:`inline-block w-1.5 h-3.5 dot-success animate-pulse ml-0.5 align-text-bottom`},fn={class:`flex items-center gap-1.5 px-2.5 py-1.5 cursor-pointer hover:brightness-95 rounded-t-md`},pn={class:`text-xs font-medium`},mn={key:0,class:`text-xs text-muted-foreground`},hn={class:`px-2.5 pb-2`},gn=f({__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(n){let{t:a}=r(),o=n,s=k(o.type===`text`?!0:o.defaultOpen),u=k(null),d=i(()=>{switch(o.type){case`thinking`:return`block-thinking`;case`tool_use`:return`block-tool-use`;case`tool_result`:return`block-tool-result`;default:return`bg-card`}}),f=i(()=>{switch(o.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`}}),m=i(()=>{switch(o.type){case`thinking`:return we;case`tool_use`:return De;case`tool_result`:return Te;default:return Ee}}),h=i(()=>{switch(o.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`}}),_=i(()=>{switch(o.type){case`thinking`:return a(`requestDetail.thinking`);case`tool_use`:return a(`requestDetail.toolUse`);case`tool_result`:return a(`requestDetail.toolResultLabel`);default:return``}}),v=i(()=>o.type===`tool_use`?a(`requestDetail.waitingData`):o.type===`tool_result`?a(`requestDetail.noReturnData`):``);return C(()=>o.content,()=>{o.autoScroll&&ee(()=>{let e=u.value;e&&(e.scrollTop=e.scrollHeight)})}),(r,i)=>n.type===`text`?(R(),b(`div`,sn,[l(`div`,cn,[x(p(Ee),{class:`h-3.5 w-3.5 diff-added`}),l(`span`,ln,g(p(a)(`requestDetail.reply`)),1)]),l(`div`,un,[l(`pre`,{ref_key:`contentRef`,ref:u,class:`text-xs overflow-y-auto whitespace-pre-wrap break-words`,style:{"max-height":`300px`}},[l(`code`,null,[y(g(n.content),1),n.showCursor?(R(),b(`span`,dn)):c(``,!0)])],512)])])):(R(),I(p(ne),{key:1,open:s.value,"onUpdate:open":i[0]||=e=>s.value=e,class:e([`rounded-md border`,d.value])},{default:t(()=>[x(p(ie),{"as-child":``},{default:t(()=>[l(`div`,fn,[x(p(ye),{class:e([`h-3 w-3 transition-transform duration-200`,{"rotate-180":!s.value}])},null,8,[`class`]),(R(),I(D(m.value),{class:e([`h-3.5 w-3.5`,h.value])},null,8,[`class`])),l(`span`,pn,g(_.value),1),n.type===`thinking`?(R(),b(`span`,mn,`(`+g(p(a)(`requestDetail.charCount`,{count:n.content.length}))+`)`,1)):c(``,!0),n.type===`tool_use`&&n.name?(R(),I(p(H),{key:1,variant:`secondary`,class:`text-xs`},{default:t(()=>[y(g(n.name),1)]),_:1})):c(``,!0)])]),_:1}),x(p(re),null,{default:t(()=>[l(`div`,hn,[l(`pre`,{ref_key:`contentRef`,ref:u,class:e([`text-xs rounded p-2 overflow-y-auto whitespace-pre-wrap break-words`,f.value]),style:{"max-height":`300px`}},[l(`code`,null,g(n.content||v.value),1)],2)])]),_:1})]),_:1},8,[`open`,`class`]))}}),_n=2;function vn(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,_n),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 yn(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,_n),name:String(n.name??e.name??``)})}}}return t}function bn(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)?vn(o.content):n===`openai`&&Array.isArray(o.choices)?yn(o.choices):[]}var xn=5,Sn=2,Cn=3;function wn(e,t,n){let r=i(()=>{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(xn).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:i(()=>{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,Sn))}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:i(()=>{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:i(()=>{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:i(()=>{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:i(()=>{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:i(()=>{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<Cn)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:i(()=>{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:i(()=>r.value.some(e=>e.type===`data`&&e.data.type===`message_stop`)),openaiSseRole:i(()=>{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:i(()=>{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:i(()=>{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:i(()=>{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:i(()=>{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 Tn={class:`flex flex-col gap-2 min-h-0 flex-1`},En={class:`flex items-center justify-between flex-shrink-0`},Dn={class:`text-xs font-medium text-muted-foreground`},On={key:0,class:`relative flex-1 min-h-0`},kn={key:0,class:`flex flex-col gap-2`},An={key:1,class:`text-xs text-muted-foreground`},jn={key:2,class:`text-xs text-muted-foreground`},Mn={key:3,class:`text-xs text-muted-foreground`},Nn={class:`p-3 text-[11px] whitespace-pre-wrap break-words`},Pn=50,Fn=f({__name:`ResponseViewer`,props:{source:{},apiType:{},isStream:{type:Boolean},streamContent:{default:null},nonStreamBody:{default:null},responseBody:{default:null},upstreamResponse:{default:null},status:{}},setup(e){let{t:n}=r(),a=k(null),o=e,s=k(!1),u=i(()=>!!(o.responseBody||o.upstreamResponse)),{assembledBlocks:d}=wn(i(()=>{if(o.source!==`history`)return``;let e=o.responseBody||o.upstreamResponse||``;try{return JSON.parse(e).body||e}catch{return e}}),o.isStream,o.apiType),f=i(()=>{if(o.source===`realtime`){let e=o.streamContent?.blocks;if(e&&e.length>0)return e;if(o.responseBody){let e=bn(o.responseBody,null,o.apiType);if(e.length>0)return e}return[]}let e=bn(o.responseBody??null,o.upstreamResponse??null,o.apiType);if(e.length>0)return e;if(o.responseBody&&o.responseBody.trim().length>0)return[{type:`text`,content:o.responseBody}];let t=[`thinking`,`text`,`tool_use`,`tool_result`];return d.value.map(e=>({type:t.includes(e.type)?e.type:`text`,content:e.content,...e.toolName?{name:e.toolName}:{}}))}),m=i(()=>o.source===`realtime`?o.streamContent?.rawChunks||o.responseBody||``:mt(o.upstreamResponse??null,o.responseBody??null)),_=k(!1);function v(){let e=a.value;e&&(_.value=e.scrollHeight-e.scrollTop-e.clientHeight>Pn)}function S(){let e=a.value;e&&(e.scrollTop=e.scrollHeight)}return C(f,()=>{_.value||ee(()=>S())},{deep:!0}),(e,r)=>(R(),b(`div`,Tn,[l(`div`,En,[l(`span`,Dn,g(p(n)(`requestDetail.responseTitle`)),1),x(p(M),{size:`sm`,variant:`outline`,class:`h-6 gap-1 text-xs`,onClick:r[0]||=e=>s.value=!s.value},{default:t(()=>[(R(),I(D(s.value?p(_e):p(W)),{class:`h-3 w-3`})),y(` `+g(s.value?p(n)(`requestDetail.structured`):o.isStream?p(n)(`requestDetail.rawSse`):p(n)(`requestDetail.rawJson`)),1)]),_:1})]),s.value?(R(),I(p($),{key:1,class:`flex-1 min-h-0 rounded-md border`},{default:t(()=>[l(`pre`,Nn,g(m.value),1)]),_:1})):(R(),b(`div`,On,[l(`div`,{ref_key:`structuredRef`,ref:a,class:`flex-1 min-h-0 overflow-y-auto`,onScroll:v},[f.value.length>0?(R(),b(`div`,kn,[(R(!0),b(h,null,E(f.value,(e,t)=>(R(),I(gn,{key:t,type:e.type,content:e.content,name:e.name,"show-cursor":o.status===`pending`&&t===f.value.length-1,"auto-scroll":o.status===`pending`&&t===f.value.length-1},null,8,[`type`,`content`,`name`,`show-cursor`,`auto-scroll`]))),128))])):o.status===`pending`?(R(),b(`p`,An,g(p(n)(`requestDetail.waitingResponse`)),1)):o.source===`history`&&o.isStream&&!u.value?(R(),b(`p`,jn,g(p(n)(`requestDetail.streamNotPersisted`)),1)):(R(),b(`p`,Mn,g(p(n)(`requestDetail.noResponseContent`)),1))],544),_.value?(R(),I(p(M),{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:S},{default:t(()=>[x(p(Ce),{class:`h-3.5 w-3.5`})]),_:1})):c(``,!0)]))]))}}),In={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`},Rn=f({__name:`JsonCopyBlock`,props:{content:{},hideCopyButton:{type:Boolean}},setup(e){let{t:n}=r(),i=e,{copied:a,copy:o}=Se();async function s(){await o(i.content)}return(r,i)=>(R(),b(`div`,In,[e.hideCopyButton?c(``,!0):(R(),I(p(M),{key:0,variant:`outline`,size:`sm`,class:`absolute top-2 right-2 h-7 text-xs`,onClick:s},{default:t(()=>[y(g(p(a)?p(n)(`logs.viewer.copied`):p(n)(`logs.viewer.copy`)),1)]),_:1})),l(`pre`,Ln,g(e.content),1)]))}}),zn={class:`flex flex-col min-h-0 h-full`},Bn={class:`flex justify-end mb-1 flex-shrink-0`},Vn={key:0,class:`space-y-3`},Hn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Un={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Wn={key:0,class:`text-[11px] text-muted-foreground py-4 text-center`},Gn={key:1,class:`text-[11px] text-muted-foreground py-2 text-center`},Kn={key:2,class:`space-y-4`},qn={key:0},Jn={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},Yn={class:`flex items-center gap-2 text-[11px]`},Xn={class:`font-mono text-muted-foreground`},Zn={class:`font-mono text-primary font-semibold`},Qn={key:1},$n={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},er={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`},tr={key:2},nr={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},rr={class:`space-y-1.5`},ir={class:`flex items-center gap-1.5 mb-1`},ar={key:1,class:`text-[9px] text-muted-foreground`},or={key:0,class:`diff-removed line-through mb-0.5`},sr={key:1,class:`text-foreground overflow-y-auto max-h-40`},cr={key:2,class:`text-muted-foreground text-[10px]`},lr={key:3},ur={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},dr={class:`space-y-1`},fr={class:`grid grid-cols-5 gap-1`},pr=[`title`,`onClick`],mr={key:0,class:`rounded-md border bg-background p-2.5`},hr={class:`flex items-center gap-2 mb-1`},gr={class:`text-[11px] font-semibold font-mono`},_r={key:0,class:`text-[11px] text-muted-foreground`},vr={key:1,class:`mt-1 flex flex-wrap gap-1`},yr={key:4},br={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},xr={class:`flex items-center gap-2 text-[11px]`},Sr={key:5},Cr={class:`text-[10px] uppercase tracking-wider text-muted-foreground font-medium mb-1`},wr={class:`flex items-center gap-2 text-[11px]`},Tr={class:`font-mono diff-removed line-through`},Er={class:`font-mono diff-added font-medium`},Dr=4,Or=5,kr=f({__name:`RequestDiffViewer`,props:{overview:{}},setup(n){let{t:a}=r(),o=n,s=k(!1);function u(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 d(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 f(e){if(!e)return``;let t=e.replace(/^Bearer\s+/i,``);return t.length<=Dr?`***`:`${t.slice(0,Dr)}***`}function m(e,t){let n=t.toLowerCase();for(let[t,r]of Object.entries(e))if(t.toLowerCase()===n)return r}let _=i(()=>u(o.overview.clientRequest)),v=i(()=>u(o.overview.upstreamRequest)),S=i(()=>{let e=_.value?.body?.model,t=v.value?.body?.model;return{hasDiff:!!e&&!!t&&e!==t,from:e??``,to:t??``}}),C=i(()=>{let e=v.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 d(e)}return null}),w=i(()=>{let e=v.value?.body?.messages??[],t=_.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=d(i),s=t[r],c=s?d(s):null,l=c!==null&&o!==c,u=i.content,f=Array.isArray(u)?u:[],p=f.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_use`).map(e=>e.name).filter(Boolean),m=f.filter(e=>typeof e==`object`&&!!e&&e.type===`tool_result`).length;n.push({role:a,text:o,removedText:l?c:null,modified:l,toolCalls:p,toolResultCount:m})}return n}),T=k(-1),D=i(()=>{let e=[];for(let t=0;t<O.value.length;t+=Or)e.push({tools:O.value.slice(t,t+Or),startIdx:t});return e}),O=i(()=>{let e=v.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=i(()=>{let e=_.value?.body?.stream_options!=null,t=v.value?.body?.stream_options!=null;return!e&&t}),j=i(()=>{if(!_.value?.headers||!v.value?.headers)return{hasDiff:!1,old:``,new:``};let e=m(_.value.headers,`authorization`),t=m(v.value.headers,`authorization`);return{hasDiff:!!e&&!!t&&e!==t,old:f(e),new:f(t)}});return(r,i)=>(R(),b(`div`,zn,[l(`div`,Bn,[x(p(M),{variant:`outline`,size:`xs`,class:`gap-1`,onClick:i[0]||=e=>s.value=!s.value},{default:t(()=>[s.value?(R(),I(p(W),{key:0,class:`size-3`})):(R(),I(p(_e),{key:1,class:`size-3`})),y(` `+g(s.value?p(a)(`requestDetail.structured`):p(a)(`requestDetail.rawJson`)),1)]),_:1})]),x(p($),{class:`flex-1 min-h-0`},{default:t(()=>[s.value?(R(),b(`div`,Vn,[l(`div`,null,[l(`div`,Hn,g(p(a)(`requestDetail.clientRequest`)),1),x(Rn,{content:n.overview.clientRequest??`{}`},null,8,[`content`])]),l(`div`,null,[l(`div`,Un,g(p(a)(`requestDetail.upstreamRequest`)),1),x(Rn,{content:n.overview.upstreamRequest??`{}`},null,8,[`content`])])])):(R(),b(h,{key:1},[!v.value&&!_.value?(R(),b(`div`,Wn,g(p(a)(`requestDetail.noRequestData`)),1)):!v.value&&_.value?(R(),b(`div`,Gn,g(p(a)(`requestDetail.requestInProgress`)),1)):(R(),b(`div`,Kn,[S.value.hasDiff?(R(),b(`div`,qn,[l(`div`,Jn,g(p(a)(`requestDetail.modelMapping`)),1),l(`div`,Yn,[l(`span`,Xn,g(S.value.from),1),i[1]||=l(`span`,{class:`text-muted-foreground`},`→`,-1),l(`span`,Zn,g(S.value.to),1)])])):c(``,!0),C.value?(R(),b(`div`,Qn,[l(`div`,$n,g(p(a)(`requestDetail.system`)),1),l(`pre`,er,g(C.value),1)])):c(``,!0),w.value.length>0?(R(),b(`div`,tr,[l(`div`,nr,g(p(a)(`requestDetail.messagesCount`,{count:w.value.length})),1),l(`div`,rr,[(R(!0),b(h,null,E(w.value,(n,r)=>(R(),b(`div`,{key:r,class:e([`rounded-md border px-2.5 py-1.5 text-[11px]`,n.modified?`diff-modified`:`bg-background`])},[l(`div`,ir,[x(p(H),{variant:`outline`,class:e([`text-[9px] px-1.5 py-0 border-transparent`,n.role===`user`?`bg-role-user-bg text-role-user`:n.role===`assistant`?`bg-role-assistant-bg text-role-assistant`:`bg-role-thinking-bg text-role-thinking`])},{default:t(()=>[y(g(n.role),1)]),_:2},1032,[`class`]),n.modified?(R(),I(p(H),{key:0,variant:`outline`,class:`bg-role-thinking-bg text-role-thinking text-[9px] px-1.5 py-0 border-transparent`},{default:t(()=>[y(g(p(a)(`requestDetail.modified`)),1)]),_:1})):c(``,!0),n.toolCalls.length>0?(R(),b(`span`,ar,` → `+g(n.toolCalls.join(`, `)),1)):c(``,!0)]),n.modified&&n.removedText?(R(),b(`div`,or,g(n.removedText),1)):c(``,!0),n.text?(R(),b(`div`,sr,g(n.text),1)):n.toolResultCount>0?(R(),b(`div`,cr,g(p(a)(`requestDetail.toolResultCount`,{count:n.toolResultCount})),1)):c(``,!0)],2))),128))])])):c(``,!0),O.value.length>0?(R(),b(`div`,lr,[l(`div`,ur,g(p(a)(`requestDetail.toolsCount`,{count:O.value.length})),1),l(`div`,dr,[(R(!0),b(h,null,E(D.value,(n,r)=>(R(),b(h,{key:r},[l(`div`,fr,[(R(!0),b(h,null,E(n.tools,(t,r)=>(R(),b(`div`,{key:r,class:e([`cursor-pointer rounded-md border px-1.5 py-1 text-[10px] truncate text-center transition-colors`,T.value===n.startIdx+r?`bg-role-tool-bg text-role-tool border-role-tool`:`bg-background hover:bg-muted`]),title:t.name,onClick:e=>T.value=T.value===n.startIdx+r?-1:n.startIdx+r},g(t.name),11,pr))),128))]),T.value>=n.startIdx&&T.value<n.startIdx+n.tools.length?(R(),b(`div`,mr,[l(`div`,hr,[l(`span`,gr,g(O.value[T.value].name),1)]),O.value[T.value].description?(R(),b(`p`,_r,g(O.value[T.value].description),1)):c(``,!0),O.value[T.value].params.length>0?(R(),b(`div`,vr,[(R(!0),b(h,null,E(O.value[T.value].params,e=>(R(),I(p(H),{key:e,variant:`outline`,class:`text-[9px] px-1 py-0`},{default:t(()=>[y(g(e),1)]),_:2},1024))),128))])):c(``,!0)])):c(``,!0)],64))),128))])])):c(``,!0),A.value?(R(),b(`div`,yr,[l(`div`,br,g(p(a)(`requestDetail.streamOptions`)),1),l(`div`,xr,[x(p(H),{variant:`outline`,class:`bg-success-light text-success-dark text-[9px] px-1.5 py-0 border-transparent`},{default:t(()=>[y(g(p(a)(`requestDetail.injected`)),1)]),_:1}),i[2]||=l(`code`,{class:`font-mono diff-added`},`{ "include_usage": true }`,-1)])])):c(``,!0),j.value.hasDiff?(R(),b(`div`,Sr,[l(`div`,Cr,g(p(a)(`requestDetail.authReplacement`)),1),l(`div`,wr,[l(`span`,Tr,g(j.value.old),1),x(p(Z),{orientation:`vertical`,class:`h-3`}),l(`span`,Er,g(j.value.new),1)])])):c(``,!0)]))],64))]),_:1})]))}}),Ar={class:`h-[3px] w-full overflow-hidden`},jr={key:0,class:`h-full w-[40%] progress-active`,style:{animation:`shimmer 1.5s infinite`}},Mr={key:1,class:`h-full w-full progress-failed`},Nr={key:2,class:`h-full w-full progress-active`},Pr={key:0,class:`font-mono text-[11px] text-muted-foreground`},Fr={key:0,class:`flex gap-0 px-4 pb-4 min-h-0 h-[calc(85vh-80px)]`},Ir={class:`w-[280px] border-r pr-3 flex-shrink-0 overflow-y-auto min-h-0`},Lr={class:`flex-1 flex flex-col min-w-0 min-h-0 pl-3`},Rr={key:0,class:`rounded-md bg-destructive/10 px-3 py-1.5 text-xs text-destructive mb-2 flex-shrink-0`},zr={key:0,class:`flex-1 min-h-0 overflow-y-auto mt-2`},Br={key:1,class:`flex-1 min-h-0 mt-2`},Vr={key:1,class:`flex items-center justify-center h-[calc(85vh-80px)]`},Hr={class:`text-sm text-muted-foreground`},Ur=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(f({__name:`UnifiedRequestDialog`,props:{open:{type:Boolean},source:{},request:{},streamContent:{},logDetailData:{},logEntry:{}},emits:[`update:open`],setup(e,{emit:n}){let{t:a}=r(),{copied:o,copy:s}=Se();function u(){_.value&&s(_.value.id)}let d=e,f=n,m=k(`response`),h=k(null),_=i(()=>{if(d.source===`realtime`){if(!d.request)return null;let e=ct(d.request,d.logDetailData?.responseBody);return d.logDetailData&&(d.logDetailData.clientRequest&&(e.clientRequest=d.logDetailData.clientRequest),d.logDetailData.upstreamRequest&&(e.upstreamRequest=d.logDetailData.upstreamRequest)),e}return h.value}),v=i(()=>_.value?_.value.status:`pending`);return C([()=>d.open,()=>d.logEntry],([e,t])=>{e&&(m.value=`response`,d.source===`history`&&t&&(h.value=ft(t)))}),(n,r)=>(R(),I(p(ce),{open:d.open,"onUpdate:open":r[1]||=e=>f(`update:open`,e)},{default:t(()=>[x(p(ae),{class:`sm:max-w-6xl max-h-[85vh] p-0 overflow-hidden flex flex-col`},{default:t(()=>[l(`div`,Ar,[v.value===`pending`?(R(),b(`div`,jr)):v.value===`failed`?(R(),b(`div`,Mr)):(R(),b(`div`,Nr))]),x(p(se),{class:`px-4 pt-2 pb-0`},{default:t(()=>[x(p(le),{class:`text-sm flex items-center gap-2`},{default:t(()=>[y(g(p(a)(`requestDetail.dialogTitle`))+` `,1),_.value?(R(),b(`span`,Pr,g(_.value.id),1)):c(``,!0),_.value?(R(),I(p(M),{key:1,variant:`ghost`,size:`icon-xs`,class:`shrink-0`,onClick:u},{default:t(()=>[p(o)?(R(),I(p(ve),{key:0,class:`size-3 text-success`})):(R(),I(p(te),{key:1,class:`size-3`}))]),_:1})):c(``,!0)]),_:1}),x(p(oe),{class:`sr-only`},{default:t(()=>[y(g(p(a)(`requestDetail.dialogDescription`)),1)]),_:1})]),_:1}),_.value?(R(),b(`div`,Fr,[l(`div`,Ir,[x(on,{overview:_.value},null,8,[`overview`])]),l(`div`,Lr,[_.value.errorMessage?(R(),b(`div`,Rr,g(_.value.errorMessage),1)):c(``,!0),x(p(at),{modelValue:m.value,"onUpdate:modelValue":r[0]||=e=>m.value=e,class:`flex-1 flex flex-col min-h-0`},{default:t(()=>[x(p(ot),{class:`flex-shrink-0`},{default:t(()=>[x(p(st),{value:`response`},{default:t(()=>[y(g(p(a)(`requestDetail.responseTab`)),1)]),_:1}),x(p(st),{value:`request`},{default:t(()=>[y(g(p(a)(`requestDetail.requestTab`)),1)]),_:1})]),_:1}),m.value===`response`?(R(),b(`div`,zr,[x(Fn,{source:d.source,"api-type":_.value.apiType,"is-stream":_.value.isStream,"stream-content":d.streamContent,"non-stream-body":e.logDetailData?.responseBody,"response-body":_.value.responseBody,"upstream-response":_.value.upstreamResponse,status:_.value.status},null,8,[`source`,`api-type`,`is-stream`,`stream-content`,`non-stream-body`,`response-body`,`upstream-response`,`status`])])):c(``,!0),m.value===`request`?(R(),b(`div`,Br,[x(kr,{overview:_.value},null,8,[`overview`])])):c(``,!0)]),_:1},8,[`modelValue`])])])):(R(),b(`div`,Vr,[l(`p`,Hr,g(d.source===`realtime`?p(a)(`requestDetail.loading`):p(a)(`requestDetail.noSelectedRequest`)),1)]))]),_:1})]),_:1},8,[`open`]))}}),[[`__scopeId`,`data-v-85829d32`]]);export{$ as n,Z as r,Ur as t};
@@ -1 +0,0 @@
1
- import{G as e,J as t,Q as n,U as r,Y as i,at as a,bt as o,ft as s,q as c,ut as l}from"./button-DMmB7tDy.js";import{E as u,I as d}from"./index-QPBBCV_W.js";var f=n({inheritAttrs:!1,__name:`VisuallyHiddenInputBubble`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(t){let n=t,{primitiveElement:r,currentElement:i}=d();return o(e(()=>n.checked??n.value),(e,t)=>{if(!i.value)return;let n=i.value,r=window.HTMLInputElement.prototype,a=Object.getOwnPropertyDescriptor(r,`value`).set;if(a&&e!==t){let t=new Event(`input`,{bubbles:!0}),r=new Event(`change`,{bubbles:!0});a.call(n,e),n.dispatchEvent(t),n.dispatchEvent(r)}}),(e,t)=>(l(),c(u,a({ref_key:`primitiveElement`,ref:r},{...n,...e.$attrs},{as:`input`}),null,16))}}),p=n({inheritAttrs:!1,__name:`VisuallyHiddenInput`,props:{name:{type:String,required:!0},value:{type:null,required:!0},checked:{type:Boolean,required:!1,default:void 0},required:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},feature:{type:String,required:!1,default:`fully-hidden`}},setup(n){let o=n,u=e(()=>typeof o.value==`object`&&Array.isArray(o.value)&&o.value.length===0&&o.required),d=e(()=>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(e,n)=>(l(),i(r,null,[t(` We render single input if it's required `),u.value?(l(),c(f,a({key:e.name},{...o,...e.$attrs},{name:e.name,value:e.value}),null,16,[`name`,`value`])):(l(!0),i(r,{key:1},s(d.value,t=>(l(),c(f,a({key:t.name},{ref_for:!0},{...o,...e.$attrs},{name:t.name,value:t.value}),null,16,[`name`,`value`]))),128))],2112))}});export{p as t};
@@ -1 +0,0 @@
1
- import{Bt as e,Ct as t,J as n,K as r,Q as i,Rt as a,Vt as o,X as s,Y as c,Z as l,at as u,et as d,n as f,pt as p,q as m,r as h,ut as g,x as _}from"./button-DMmB7tDy.js";import{A as v,B as y,F as b,M as x,O as S,P as C,V as w,X as T,j as E,k as D}from"./index-QPBBCV_W.js";var O=i({__name:`DialogPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let n=e;return(e,r)=>(g(),m(a(D),o(d(n)),{default:t(()=>[p(e.$slots,`default`)]),_:3},16))}}),k={"data-slot":`table-container`,class:`relative w-full overflow-x-auto`},A=i({__name:`Table`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,i)=>(g(),c(`div`,k,[r(`table`,{"data-slot":`table`,class:e(a(h)(`w-full caption-bottom text-sm`,n.class))},[p(t.$slots,`default`)],2)]))}}),j=i({__name:`TableBody`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`tbody`,{"data-slot":`table-body`,class:e(a(h)(`[&_tr:last-child]:border-0`,n.class))},[p(t.$slots,`default`)],2))}}),M=i({__name:`TableCell`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`td`,{"data-slot":`table-cell`,class:e(a(h)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0`,n.class))},[p(t.$slots,`default`)],2))}}),N=i({__name:`TableRow`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`tr`,{"data-slot":`table-row`,class:e(a(h)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors has-aria-expanded:bg-muted/50`,n.class))},[p(t.$slots,`default`)],2))}}),P=i({__name:`TableHead`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`th`,{"data-slot":`table-head`,class:e(a(h)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0`,n.class))},[p(t.$slots,`default`)],2))}}),F=i({__name:`TableHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`thead`,{"data-slot":`table-header`,class:e(a(h)(`[&_tr]:border-b`,n.class))},[p(t.$slots,`default`)],2))}}),I=i({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:n}){let r=y(e,n);return(e,n)=>(g(),m(a(b),u({"data-slot":`dialog`},a(r)),{default:t(t=>[p(e.$slots,`default`,o(d(t)))]),_:3},16))}}),L=i({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=_(n,`class`);return(e,i)=>(g(),m(a(v),u({"data-slot":`dialog-overlay`},a(r),{class:a(h)(`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 isolate z-modal`,n.class)}),{default:t(()=>[p(e.$slots,`default`)]),_:3},16,[`class`]))}}),R=i({inheritAttrs:!1,__name:`DialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:i}){let o=e,s=i,c=y(_(o,`class`),s);return(i,s)=>(g(),m(a(O),null,{default:t(()=>[l(L),l(a(x),u({"data-slot":`dialog-content`},{...i.$attrs,...a(c)},{class:a(h)(`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 ring-foreground/10 grid max-w-[calc(100%-2rem)] max-h-[90vh] overflow-y-auto gap-4 rounded-xl p-4 text-sm ring-1 duration-fast sm:max-w-sm fixed top-1/2 left-1/2 z-modal w-full -translate-x-1/2 -translate-y-1/2 outline-none`,o.class)}),{default:t(()=>[p(i.$slots,`default`),e.showCloseButton?(g(),m(a(C),{key:0,"data-slot":`dialog-close`,"as-child":``},{default:t(()=>[l(a(f),{variant:`ghost`,class:`absolute top-2 right-2`,size:`icon-sm`},{default:t(()=>[l(a(T)),s[0]||=r(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:1})):n(``,!0)]),_:3},16,[`class`])]),_:3}))}}),z=i({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=w(_(n,`class`));return(e,i)=>(g(),m(a(E),u({"data-slot":`dialog-description`},a(r),{class:a(h)(`text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3`,n.class)}),{default:t(()=>[p(e.$slots,`default`)]),_:3},16,[`class`]))}}),B=i({__name:`DialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!1}},setup(r){let i=r;return(o,u)=>(g(),c(`div`,{"data-slot":`dialog-footer`,class:e(a(h)(`bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,i.class))},[p(o.$slots,`default`),r.showCloseButton?(g(),m(a(C),{key:0,"as-child":``},{default:t(()=>[l(a(f),{variant:`outline`},{default:t(()=>[...u[0]||=[s(` Close `,-1)]]),_:1})]),_:1})):n(``,!0)],2))}}),V=i({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let n=t;return(t,r)=>(g(),c(`div`,{"data-slot":`dialog-header`,class:e(a(h)(`gap-2 flex flex-col`,n.class))},[p(t.$slots,`default`)],2))}}),H=i({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let n=e,r=w(_(n,`class`));return(e,i)=>(g(),m(a(S),u({"data-slot":`dialog-title`},a(r),{class:a(h)(`text-base leading-none font-medium cn-font-heading`,n.class)}),{default:t(()=>[p(e.$slots,`default`)]),_:3},16,[`class`]))}});export{R as a,P as c,j as d,A as f,z as i,N as l,V as n,I as o,B as r,F as s,H as t,M as u};
@@ -1 +0,0 @@
1
- @import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap";html[dir=ltr],[data-sonner-toaster][dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0}html[dir=rtl],[data-sonner-toaster][dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto}[data-sonner-toaster]{width:var(--width);--gray1:#fcfcfc;--gray2:#f8f8f8;--gray3:#f3f3f3;--gray4:#ededed;--gray5:#e8e8e8;--gray6:#e2e2e2;--gray7:#dbdbdb;--gray8:#c7c7c7;--gray9:#8f8f8f;--gray10:#858585;--gray11:#6f6f6f;--gray12:#171717;--border-radius:8px;box-sizing:border-box;z-index:999999999;outline:none;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;list-style:none;transition:transform .4s;position:fixed}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translate(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);opacity:0;transform:var(--y);touch-action:none;box-sizing:border-box;overflow-wrap:anywhere;outline:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;position:absolute}[data-sonner-toast][data-styled=true]{background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);width:var(--width);align-items:center;gap:6px;padding:16px;font-size:13px;display:flex;box-shadow:0 4px 12px #0000001a}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-y-position=top]{--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap));top:0}[data-sonner-toast][data-y-position=bottom]{--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap));bottom:0}[data-sonner-toast][data-styled=true] [data-description]{color:#3f3f3f;font-weight:400;line-height:1.4}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{color:inherit;font-weight:500;line-height:1.5}[data-sonner-toast][data-styled=true] [data-icon]{width:16px;height:16px;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end);flex-shrink:0;justify-content:flex-start;align-items:center;display:flex;position:relative}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform-origin:50%;animation:.3s forwards sonner-fade-in;transform:scale(.8)}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{flex-direction:column;gap:2px;display:flex}[data-sonner-toast][data-styled=true] [data-button]{height:24px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);cursor:pointer;border:none;border-radius:4px;outline:none;flex-shrink:0;align-items:center;padding-left:8px;padding-right:8px;font-size:12px;font-weight:500;transition:opacity .4s,box-shadow .2s;display:flex}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px #0006}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:#00000014}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:#ffffff4d}[data-sonner-toaster] [data-close-button-position=top-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster] [data-close-button-position=top-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:0;--toast-close-button-bottom:unset;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster] [data-close-button-position=bottom-left]{--toast-close-button-left:0;--toast-close-button-right:unset;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(-35%, 35%)}[data-sonner-toaster] [data-close-button-position=bottom-right]{--toast-close-button-left:unset;--toast-close-button-right:0;--toast-close-button-top:unset;--toast-close-button-bottom:0;--toast-close-button-transform:translate(35%, 35%)}[data-sonner-toast][data-styled=true] [data-close-button]{left:var(--toast-close-button-left);right:var(--toast-close-button-right);top:var(--toast-close-button-top);bottom:var(--toast-close-button-bottom);width:20px;height:20px;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .1s,background .2s,border-color .2s;display:flex;position:absolute}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]:before{content:"";z-index:-1;height:100%;position:absolute;left:-100%;right:-100%}[data-sonner-toast][data-y-position=top][data-swiping=true]:before{bottom:50%;transform:scaleY(3)translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]:before{top:50%;transform:scaleY(3)translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]:before{content:"";position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]:after{content:"";height:calc(var(--gap) + 1px);width:100%;position:absolute;bottom:100%;left:0}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * .05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--toasts-before) * .05 + 1));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]:before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0px)) translateX(var(--swipe-amount-x,0px));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (width<=600px){[data-sonner-toaster]{right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%;position:fixed}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{width:calc(100% - var(--mobile-offset-left) * 2);left:0;right:0}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:calc(var(--mobile-offset-bottom) + max(env(safe-area-inset-bottom), 0px))}[data-sonner-toaster][data-y-position=top]{top:calc(var(--mobile-offset-top) + max(env(safe-area-inset-top), 0px))}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:#ecfdf3;--success-border:#bffcd9;--success-text:#008a2e;--info-bg:#f0f8ff;--info-border:#dde7fd;--info-text:#0973dc;--warning-bg:#fffcf0;--warning-border:#fbeeb1;--warning-text:#dc7609;--error-bg:#fff0f0;--error-border:#ffe0e1;--error-text:#e60000}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:#333;--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:#1f1f1f;--normal-border:#333;--normal-border-hover:#404040;--normal-text:var(--gray1);--success-bg:#001f0f;--success-border:#003d1c;--success-text:#59f3a6;--info-bg:#000d1f;--info-border:#19233e;--info-text:#5896f3;--warning-bg:#1d1f00;--warning-border:#2e2e00;--warning-text:#f3cf58;--error-bg:#2d0607;--error-border:#4d0408;--error-text:#ff9ea1}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);z-index:10;position:absolute;inset:0}.sonner-loading-wrapper[data-visible=false]{transform-origin:50%;animation:.2s forwards sonner-fade-out}.sonner-spinner{height:var(--size);width:var(--size);position:relative;top:50%;left:50%}.sonner-loading-bar{background:var(--gray11);border-radius:6px;width:24%;height:8%;animation:1.2s linear infinite sonner-spin;position:absolute;top:-3.9%;left:-10%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg)translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg)translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg)translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg)translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg)translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg)translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg)translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg)translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg)translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg)translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg)translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg)translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{transform-origin:50%;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8)translate(-50%,-50%)}:root{--color-teal-50:oklch(97% .02 175);--color-teal-100:oklch(93% .04 175);--color-teal-200:oklch(87% .07 175);--color-teal-300:oklch(78% .1 175);--color-teal-400:oklch(68% .13 175);--color-teal-500:oklch(58% .14 175);--color-teal-600:oklch(48% .12 175);--color-teal-700:oklch(40% .1 175);--color-teal-800:oklch(32% .08 175);--color-teal-900:oklch(25% .06 175);--color-success:oklch(65% .17 150);--color-success-light:oklch(92% .05 150);--color-success-dark:oklch(45% .15 150);--color-warning:oklch(78% .16 80);--color-warning-light:oklch(94% .06 80);--color-warning-dark:oklch(55% .14 80);--color-danger:oklch(58% .22 25);--color-danger-light:oklch(90% .08 25);--color-danger-dark:oklch(40% .18 25);--color-info:oklch(62% .18 250);--color-info-light:oklch(91% .06 250);--color-info-dark:oklch(43% .16 250);--color-bg-page:var(--background);--color-bg-card:var(--card);--color-bg-sidebar:oklch(20.5% 0 0);--color-text-primary:var(--foreground);--color-text-secondary:var(--muted-foreground);--color-text-tertiary:oklch(65% 0 0);--color-role-user:oklch(78% .1 175);--color-role-user-bg:oklch(97% .02 175);--color-role-assistant:oklch(65% .14 260);--color-role-assistant-bg:oklch(93% .04 260);--color-role-tool:oklch(60% .08 30);--color-role-tool-bg:oklch(96% .02 30);--color-role-thinking:oklch(58% .12 290);--color-role-thinking-bg:oklch(91% .03 290);--color-sse-message-start:oklch(68% .13 175);--color-sse-content-block-start:oklch(58% .14 175);--color-sse-content-block-delta:oklch(48% .12 175);--color-sse-message-delta:oklch(40% .1 175);--color-sse-message-stop:oklch(65% .17 150);--spacing-dense-xs:.25rem;--spacing-dense-sm:.375rem;--spacing-dense-md:.5rem;--spacing-page:1.5rem;--spacing-section:1.25rem;--spacing-card:1rem;--spacing-tight:.5rem;--gap-icon-text:.375rem;--radius-pill:9999px;--color-overlay-light:oklch(0% 0 0/.1);--color-overlay:oklch(0% 0 0/.8);--shadow-card:0 1px 3px oklch(0% 0 0/.1);--shadow-elevated:0 4px 12px oklch(0% 0 0/.12);--shadow-focus:0 0 0 2px oklch(58% .14 175);--duration-fast:.15s;--duration-normal:.2s;--ease-default:cubic-bezier(.4, 0, .2, 1);--z-modal:100;--z-dropdown:150;--z-toast:200}.dark{--color-success-light:oklch(32% .05 150);--color-warning-light:oklch(35% .06 80);--color-danger-light:oklch(30% .08 25);--color-info-light:oklch(30% .06 250);--color-bg-sidebar:oklch(14.5% 0 0);--color-text-tertiary:oklch(55.6% 0 0);--color-role-user-bg:oklch(32% .05 175);--color-role-user:oklch(72% .08 175);--color-role-assistant-bg:oklch(30% .06 260);--color-role-assistant:oklch(60% .1 260);--color-role-tool-bg:oklch(28% .04 30);--color-role-tool:oklch(65% .06 30);--color-role-thinking-bg:oklch(28% .05 290);--color-role-thinking:oklch(55% .09 290)}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(48% .12 175);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(58% .14 175);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.375rem;--radius-sm:calc(var(--radius) - 4px);--radius-md:calc(var(--radius) - 2px);--radius-lg:var(--radius);--radius-xl:calc(var(--radius) + 2px);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0);--font-sans:"Geist Variable", sans-serif;--font-heading:var(--font-sans);--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, monospace}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(68% .13 175);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(78% .1 175);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(68% .13 175);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans)}.theme{--font-heading:var(--font-sans)}.dot-success{background-color:var(--color-success)}.block-thinking{background-color:var(--color-role-thinking-bg)}.block-tool-use{background-color:var(--color-role-tool-bg)}.block-tool-result{background-color:var(--color-role-user-bg)}.block-thinking-content{background-color:oklch(from var(--color-role-thinking-bg) l c h / .7);color:var(--muted-foreground)}.block-tool-use-content{background-color:oklch(from var(--color-role-tool-bg) l c h / .7)}.block-tool-result-content{background-color:oklch(from var(--color-role-user-bg) l c h / .7)}.diff-modified{background-color:var(--color-warning-light);border-color:var(--color-warning)}.diff-removed{color:var(--color-danger)}.diff-added{color:var(--color-success)}.progress-active{background-color:var(--color-success)}.progress-failed{background-color:var(--color-danger)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.left-1\/2{left:50%}.left-56{left:14rem}.left-full{left:100%}.right-0{right:0}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-2{top:.5rem}.top-4{top:1rem}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[200\]{z-index:200}.z-dropdown{z-index:var(--z-dropdown)}.z-modal{z-index:var(--z-modal)}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-1\.5{margin-top:.375rem;margin-bottom:.375rem}.my-8{margin-top:2rem;margin-bottom:2rem}.-mb-4{margin-bottom:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.size-1\.5{width:.375rem;height:.375rem}.size-10{width:2.5rem;height:2.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-full{width:100%;height:100%}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[3px\]{height:3px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(85vh-80px\)\]{height:calc(85vh - 80px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-\[320px\]{max-height:320px}.max-h-\[40vh\]{max-height:40vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-16{min-height:4rem}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-1\/3{width:33.3333%}.w-10{width:2.5rem}.w-12{width:3rem}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-\[280px\]{width:280px}.w-\[40\%\]{width:40%}.w-\[72px\]{width:72px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.min-w-48{min-width:12rem}.min-w-56{min-width:14rem}.min-w-8{min-width:2rem}.min-w-\[90px\]{min-width:90px}.max-w-40{max-width:10rem}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0\.5{--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-3\.5{--tw-translate-x:.875rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-75{--tw-scale-x:.75;--tw-scale-y:.75;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(-.5rem * var(--tw-space-x-reverse));margin-left:calc(-.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.self-start{align-self:flex-start}.self-center{align-self:center}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-b-xl{border-bottom-right-radius:var(--radius-xl);border-bottom-left-radius:var(--radius-xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--ring\)\]{border-color:var(--ring)}.border-border{border-color:var(--border)}.border-danger{border-color:var(--color-danger)}.border-destructive{border-color:var(--destructive)}.border-info{border-color:var(--color-info)}.border-input{border-color:var(--input)}.border-muted{border-color:var(--muted)}.border-orange-400\/30{border-color:#fb923c4d}.border-primary{border-color:var(--primary)}.border-role-tool{border-color:var(--color-role-tool)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-success{border-color:var(--color-success)}.border-teal-200{border-color:var(--color-teal-200)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--color-warning)}.bg-\[var\(--border\)\]{background-color:var(--border)}.bg-\[var\(--primary\)\]{background-color:var(--primary)}.bg-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-danger-light{background-color:var(--color-danger-light)}.bg-destructive{background-color:var(--destructive)}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-600{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-foreground{background-color:var(--foreground)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-info-light{background-color:var(--color-info-light)}.bg-input{background-color:var(--input)}.bg-muted{background-color:var(--muted)}.bg-orange-400\/30{background-color:#fb923c4d}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-600{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.bg-overlay{background-color:var(--color-overlay)}.bg-overlay-light{background-color:var(--color-overlay-light)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-purple-600{--tw-bg-opacity:1;background-color:rgb(147 51 234/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-role-assistant-bg{background-color:var(--color-role-assistant-bg)}.bg-role-thinking-bg{background-color:var(--color-role-thinking-bg)}.bg-role-tool-bg{background-color:var(--color-role-tool-bg)}.bg-role-user-bg{background-color:var(--color-role-user-bg)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-sidebar-primary{background-color:var(--sidebar-primary)}.bg-success{background-color:var(--color-success)}.bg-success-light{background-color:var(--color-success-light)}.bg-teal-200{background-color:var(--color-teal-200)}.bg-teal-300{background-color:var(--color-teal-300)}.bg-teal-50{background-color:var(--color-teal-50)}.bg-teal-500{background-color:var(--color-teal-500)}.bg-teal-600{background-color:var(--color-teal-600)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--color-warning)}.bg-warning-light{background-color:var(--color-warning-light)}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.bg-clip-padding{background-clip:padding-box}.fill-foreground{fill:var(--foreground)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[3px\]{padding:3px}.p-px{padding:1px}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-1\.5{padding-left:.375rem}.pl-10{padding-left:2.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0\.5{padding-top:.125rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-\[var\(--color-role-thinking\)\]{color:var(--color-role-thinking)}.text-\[var\(--color-role-tool\)\]{color:var(--color-role-tool)}.text-\[var\(--color-role-user\)\]{color:var(--color-role-user)}.text-\[var\(--muted-foreground\)\]{color:var(--muted-foreground)}.text-\[var\(--primary\)\]{color:var(--primary)}.text-accent-foreground{color:var(--accent-foreground)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-danger-dark{color:var(--color-danger-dark)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-foreground{color:var(--foreground)}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-info-dark{color:var(--color-info-dark)}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-400\/50{color:#fb923c80}.text-orange-400\/60{color:#fb923c99}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-role-assistant{color:var(--color-role-assistant)}.text-role-thinking{color:var(--color-role-thinking)}.text-role-tool{color:var(--color-role-tool)}.text-role-user{color:var(--color-role-user)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-sidebar-primary{color:var(--sidebar-primary)}.text-sidebar-primary-foreground{color:var(--sidebar-primary-foreground)}.text-success{color:var(--color-success)}.text-success-dark{color:var(--color-success-dark)}.text-teal-200{color:var(--color-teal-200)}.text-teal-300{color:var(--color-teal-300)}.text-teal-700{color:var(--color-teal-700)}.text-teal-900{color:var(--color-teal-900)}.text-warning{color:var(--color-warning)}.text-warning-dark{color:var(--color-warning-dark)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.bg-blend-color{background-blend-mode:color}.shadow-elevated{--tw-shadow:var(--shadow-elevated);--tw-shadow-colored:var(--shadow-elevated);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.ring-background{--tw-ring-color:var(--background)}.ring-ring{--tw-ring-color:var(--ring)}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-background{--tw-ring-offset-color:var(--background)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-none{transition-property:none}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-fast{transition-duration:var(--duration-fast)}.duration-normal{transition-duration:var(--duration-normal)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-fast{animation-duration:var(--duration-fast)}.duration-normal{animation-duration:var(--duration-normal)}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.\[appearance\:textfield\]{appearance:textfield}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:1.5rem}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-0:after{content:var(--tw-content);inset:0}.after\:-inset-x-3:after{content:var(--tw-content);left:-.75rem;right:-.75rem}.after\:-inset-y-2:after{content:var(--tw-content);top:-.5rem;bottom:-.5rem}.after\:rounded-full:after{content:var(--tw-content);border-radius:9999px}.after\:border:after{content:var(--tw-content);border-width:1px}.after\:border-border:after{content:var(--tw-content);border-color:var(--border)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:mix-blend-darken:after{content:var(--tw-content);mix-blend-mode:darken}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hover\:border-\[var\(--muted-foreground\)\]:hover{border-color:var(--muted-foreground)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:bg-secondary:hover{background-color:var(--secondary)}.hover\:bg-sidebar-accent:hover{background-color:var(--sidebar-accent)}.hover\:text-\[var\(--foreground\)\]:hover{color:var(--foreground)}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-muted-foreground:hover{color:var(--muted-foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:text-sidebar-foreground:hover{color:var(--sidebar-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:brightness-95:hover{--tw-brightness:brightness(.95);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.has-\[\>img\:first-child\]\:pt-0:has(>img:first-child){padding-top:0}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[size\=lg\]\:size-10[data-size=lg]{width:2.5rem;height:2.5rem}.data-\[size\=sm\]\:size-6[data-size=sm]{width:1.5rem;height:1.5rem}.data-\[orientation\=horizontal\]\:h-2\.5[data-orientation=horizontal]{height:.625rem}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[position\=popper\]\:h-\[var\(--reka-select-trigger-height\)\][data-position=popper]{height:var(--reka-select-trigger-height)}.data-\[size\=default\]\:h-7[data-size=default]{height:1.75rem}.data-\[size\=default\]\:h-8[data-size=default]{height:2rem}.data-\[size\=default\]\:h-\[18\.4px\][data-size=default]{height:18.4px}.data-\[size\=sm\]\:h-7[data-size=sm]{height:1.75rem}.data-\[size\=sm\]\:h-\[14px\][data-size=sm]{height:14px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-2\.5[data-orientation=vertical]{width:.625rem}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[position\=popper\]\:w-full[data-position=popper]{width:100%}.data-\[size\=default\]\:w-\[32px\][data-size=default]{width:32px}.data-\[size\=sm\]\:w-\[24px\][data-size=sm]{width:24px}.data-\[position\=popper\]\:min-w-\[var\(--reka-select-trigger-width\)\][data-position=popper]{min-width:var(--reka-select-trigger-width)}.data-\[size\=default\]\:max-w-xs[data-size=default],.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:20rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-.25rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[disabled\]\:cursor-not-allowed[data-disabled]{cursor:not-allowed}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[size\=sm\]\:gap-3[data-size=sm]{gap:.75rem}.data-\[orientation\=vertical\]\:self-stretch[data-orientation=vertical]{align-self:stretch}.data-\[size\=sm\]\:rounded-md[data-size=sm]{border-radius:var(--radius-md)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}.data-\[orientation\=horizontal\]\:border-t[data-orientation=horizontal]{border-top-width:1px}.data-\[orientation\=vertical\]\:border-l[data-orientation=vertical]{border-left-width:1px}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[orientation\=horizontal\]\:border-t-transparent[data-orientation=horizontal]{border-top-color:#0000}.data-\[orientation\=vertical\]\:border-l-transparent[data-orientation=vertical]{border-left-color:#0000}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[size\=sm\]\:py-3[data-size=sm]{padding-top:.75rem;padding-bottom:.75rem}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open],.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open],.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-1\.5[data-slot=select-value]>*{gap:.375rem}.\*\:data-\[slot\=avatar\]\:ring-2[data-slot=avatar]>*{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.\*\:data-\[slot\=avatar\]\:ring-background[data-slot=avatar]>*{--tw-ring-color:var(--background)}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid{display:grid}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:size-2\.5{width:.625rem;height:.625rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:size-4{width:1rem;height:1rem}.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:size-3{width:.75rem;height:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:size-2{width:.5rem;height:.5rem}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:size-3{width:.75rem;height:.75rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:h-8{height:2rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:h-fit{height:fit-content}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:w-full{width:100%}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:flex-col{flex-direction:column}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:justify-start{justify-content:flex-start}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:bg-transparent{background-color:#0000}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:p-3{padding:.75rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:px-3{padding-left:.75rem;padding-right:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:text-xs{font-size:.75rem;line-height:1rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:text-sm{font-size:.875rem;line-height:1.25rem}.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:after{content:var(--tw-content);bottom:-5px}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:after{content:var(--tw-content);right:-.25rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:after{content:var(--tw-content);height:.125rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:after{content:var(--tw-content);width:.125rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.group\/tabs-list[data-variant=default] .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-teal-800:is(.dark *){border-color:var(--color-teal-800)}.dark\:bg-teal-600:is(.dark *){background-color:var(--color-teal-600)}.dark\:bg-teal-700:is(.dark *){background-color:var(--color-teal-700)}.dark\:bg-teal-800:is(.dark *){background-color:var(--color-teal-800)}.dark\:bg-teal-900:is(.dark *){background-color:var(--color-teal-900)}.dark\:text-danger:is(.dark *){color:var(--color-danger)}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-info:is(.dark *){color:var(--color-info)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-success:is(.dark *){color:var(--color-success)}.dark\:text-teal-100:is(.dark *){color:var(--color-teal-100)}.dark\:text-teal-200:is(.dark *){color:var(--color-teal-200)}.dark\:text-teal-300:is(.dark *){color:var(--color-teal-300)}.dark\:text-warning:is(.dark *){color:var(--color-warning)}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:after\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}.dark\:hover\:text-foreground:hover:is(.dark *){color:var(--foreground)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:var(--input)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:var(--foreground)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:var(--foreground)}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state=active]:is(.dark *){border-color:#0000}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]:is(.dark *){background-color:#0000}@media (width>=640px){.sm\:max-w-4xl{max-width:56rem}.sm\:max-w-6xl{max-width:72rem}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-lg{border-radius:var(--radius-lg)}.data-\[size\=default\]\:sm\:max-w-sm[data-size=default]{max-width:24rem}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2{grid-row:span 2/span 2}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start{place-items:start}.group\/alert-dialog-content[data-size=default] .sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left{text-align:left}}@media (width>=768px){.md\:w-full{width:100%}.md\:text-pretty{text-wrap:pretty}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media (width>=1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{appearance:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:\[\&\>svg\]\:hidden>svg{display:none}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:\[\&\>svg\]\:size-2>svg,.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:\[\&\>svg\]\:size-2>svg{width:.5rem;height:.5rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-3\.5 svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&_svg\:not\(\[class\*\=size-\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}