llm-simple-router 0.7.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/dist/admin/proxy-enhancement.js +3 -1
  2. package/dist/admin/routes.d.ts +1 -0
  3. package/dist/admin/routes.js +3 -1
  4. package/dist/admin/settings-import-export.d.ts +1 -0
  5. package/dist/admin/settings-import-export.js +7 -0
  6. package/dist/admin/transform-rules.d.ts +8 -0
  7. package/dist/admin/transform-rules.js +38 -0
  8. package/dist/admin/usage.js +1 -1
  9. package/dist/core/container.d.ts +1 -0
  10. package/dist/core/container.js +1 -0
  11. package/dist/db/migrations/034_create_provider_transform_rules.sql +11 -0
  12. package/dist/db/transform-rules.d.ts +16 -0
  13. package/dist/db/transform-rules.js +51 -0
  14. package/dist/index.js +30 -1
  15. package/dist/metrics/sse-parser.d.ts +2 -0
  16. package/dist/metrics/sse-parser.js +4 -0
  17. package/dist/monitor/request-tracker.d.ts +2 -0
  18. package/dist/monitor/request-tracker.js +22 -1
  19. package/dist/monitor/types.d.ts +1 -1
  20. package/dist/proxy/enhancement/response-cleaner.js +14 -6
  21. package/dist/proxy/handler/openai.js +13 -4
  22. package/dist/proxy/handler/proxy-handler-utils.js +2 -7
  23. package/dist/proxy/handler/proxy-handler.js +85 -18
  24. package/dist/proxy/patch/deepseek/index.d.ts +15 -3
  25. package/dist/proxy/patch/deepseek/index.js +29 -6
  26. package/dist/proxy/patch/deepseek/patch-cache-control.d.ts +6 -0
  27. package/dist/proxy/patch/deepseek/patch-cache-control.js +30 -0
  28. package/dist/proxy/patch/deepseek/patch-non-deepseek-tools.d.ts +16 -0
  29. package/dist/proxy/patch/deepseek/patch-non-deepseek-tools.js +74 -0
  30. package/dist/proxy/patch/deepseek/patch-orphan-tool-results.d.ts +10 -1
  31. package/dist/proxy/patch/deepseek/patch-orphan-tool-results.js +58 -15
  32. package/dist/proxy/patch/deepseek/patch-thinking-blocks.d.ts +5 -1
  33. package/dist/proxy/patch/deepseek/patch-thinking-blocks.js +37 -4
  34. package/dist/proxy/patch/deepseek/patch-thinking-param.d.ts +6 -0
  35. package/dist/proxy/patch/deepseek/patch-thinking-param.js +32 -0
  36. package/dist/proxy/patch/deepseek/utils.d.ts +8 -0
  37. package/dist/proxy/patch/deepseek/utils.js +38 -0
  38. package/dist/proxy/patch/index.d.ts +2 -2
  39. package/dist/proxy/patch/index.js +50 -4
  40. package/dist/proxy/patch/router-cleanup.js +1 -24
  41. package/dist/proxy/patch/safe-sse-parser.d.ts +9 -0
  42. package/dist/proxy/patch/safe-sse-parser.js +16 -0
  43. package/dist/proxy/patch/tool-round-limiter.d.ts +38 -0
  44. package/dist/proxy/patch/tool-round-limiter.js +115 -0
  45. package/dist/proxy/pipeline-snapshot.d.ts +4 -0
  46. package/dist/proxy/proxy-core.js +1 -0
  47. package/dist/proxy/proxy-logging.d.ts +1 -1
  48. package/dist/proxy/proxy-logging.js +3 -3
  49. package/dist/proxy/routing/enhancement-config.d.ts +1 -0
  50. package/dist/proxy/routing/enhancement-config.js +2 -0
  51. package/dist/proxy/transform/id-utils.d.ts +3 -0
  52. package/dist/proxy/transform/id-utils.js +9 -0
  53. package/dist/proxy/transform/message-mapper.d.ts +15 -0
  54. package/dist/proxy/transform/message-mapper.js +173 -0
  55. package/dist/proxy/transform/plugin-registry.d.ts +23 -0
  56. package/dist/proxy/transform/plugin-registry.js +130 -0
  57. package/dist/proxy/transform/plugin-types.d.ts +46 -0
  58. package/dist/proxy/transform/plugin-types.js +15 -0
  59. package/dist/proxy/transform/provider-meta.d.ts +29 -0
  60. package/dist/proxy/transform/provider-meta.js +72 -0
  61. package/dist/proxy/transform/request-transform.d.ts +4 -0
  62. package/dist/proxy/transform/request-transform.js +151 -0
  63. package/dist/proxy/transform/response-transform.d.ts +4 -0
  64. package/dist/proxy/transform/response-transform.js +99 -0
  65. package/dist/proxy/transform/sanitize.d.ts +3 -0
  66. package/dist/proxy/transform/sanitize.js +24 -0
  67. package/dist/proxy/transform/stream-ant2oa.d.ts +20 -0
  68. package/dist/proxy/transform/stream-ant2oa.js +200 -0
  69. package/dist/proxy/transform/stream-oa2ant.d.ts +25 -0
  70. package/dist/proxy/transform/stream-oa2ant.js +201 -0
  71. package/dist/proxy/transform/stream-transform-base.d.ts +19 -0
  72. package/dist/proxy/transform/stream-transform-base.js +61 -0
  73. package/dist/proxy/transform/thinking-mapper.d.ts +4 -0
  74. package/dist/proxy/transform/thinking-mapper.js +15 -0
  75. package/dist/proxy/transform/tool-mapper.d.ts +8 -0
  76. package/dist/proxy/transform/tool-mapper.js +67 -0
  77. package/dist/proxy/transform/transform-coordinator.d.ts +11 -0
  78. package/dist/proxy/transform/transform-coordinator.js +32 -0
  79. package/dist/proxy/transform/types.d.ts +43 -0
  80. package/dist/proxy/transform/types.js +1 -0
  81. package/dist/proxy/transform/usage-mapper.d.ts +8 -0
  82. package/dist/proxy/transform/usage-mapper.js +46 -0
  83. package/dist/proxy/transport/stream.d.ts +1 -1
  84. package/dist/proxy/transport/stream.js +19 -10
  85. package/dist/proxy/transport/transport-fn.d.ts +3 -0
  86. package/dist/proxy/transport/transport-fn.js +11 -4
  87. package/dist/storage/log-file-compressor.js +5 -6
  88. package/dist/storage/log-file-writer.js +11 -13
  89. package/dist/storage/types.d.ts +2 -0
  90. package/dist/storage/types.js +7 -0
  91. package/frontend-dist/assets/{CardContent-CxOF1feY.js → CardContent-BVMQ2_pg.js} +1 -1
  92. package/frontend-dist/assets/{CardTitle-BSEFcEOM.js → CardTitle-GLv7QyIY.js} +1 -1
  93. package/frontend-dist/assets/{CascadingModelSelect-DTwksDPZ.js → CascadingModelSelect-CBhqKFDX.js} +1 -1
  94. package/frontend-dist/assets/{Checkbox-RfsERG07.js → Checkbox-HPVDmEdV.js} +1 -1
  95. package/frontend-dist/assets/{CollapsibleTrigger-Dsjo7QlC.js → CollapsibleTrigger-DhxD9tpM.js} +1 -1
  96. package/frontend-dist/assets/{Collection-rQ4eIYfa.js → Collection-BRt7YxN8.js} +1 -1
  97. package/frontend-dist/assets/{Dashboard-YejfAPiB.js → Dashboard-D1Ys8Zog.js} +1 -1
  98. package/frontend-dist/assets/{DialogTitle-DeFTnmgC.js → DialogTitle-23q73lwF.js} +1 -1
  99. package/frontend-dist/assets/{Input-CENz_g9t.js → Input-CAnKUBBK.js} +1 -1
  100. package/frontend-dist/assets/{Label-BAciBrrd.js → Label-DWdYtVMI.js} +1 -1
  101. package/frontend-dist/assets/{Login-DQkYFq7R.js → Login-w5WFOinP.js} +1 -1
  102. package/frontend-dist/assets/{Logs-Dol8AX7z.js → Logs-C1F1ZmWF.js} +1 -1
  103. package/frontend-dist/assets/{ModelMappings-VEYW1TrW.js → ModelMappings-BzmecWEH.js} +1 -1
  104. package/frontend-dist/assets/{Monitor-C0r9WefB.js → Monitor-DrAZFTKR.js} +1 -1
  105. package/frontend-dist/assets/{PopoverTrigger-Cyqik5SE.js → PopoverTrigger-Bj65uUbv.js} +1 -1
  106. package/frontend-dist/assets/{PopperContent-B7IuAHeq.js → PopperContent-gzzf1XHe.js} +1 -1
  107. package/frontend-dist/assets/Providers-DSgf4mb6.js +1 -0
  108. package/frontend-dist/assets/ProxyEnhancement-Bb1cCP6d.js +5 -0
  109. package/frontend-dist/assets/{RetryRules-F0295m4_.js → RetryRules-BwPfEZtm.js} +1 -1
  110. package/frontend-dist/assets/{RouterKeys-CFbPtUE_.js → RouterKeys-CzTSq1Mx.js} +1 -1
  111. package/frontend-dist/assets/{RovingFocusItem-D291Vjh8.js → RovingFocusItem-CXM_Yfkm.js} +1 -1
  112. package/frontend-dist/assets/{Schedules-DWhF3uod.js → Schedules-DVilCXrC.js} +1 -1
  113. package/frontend-dist/assets/{SelectValue-BWlgUZa3.js → SelectValue-C0-LzGQY.js} +1 -1
  114. package/frontend-dist/assets/{Settings-BnIzEF_k.js → Settings-Bpk53zVX.js} +1 -1
  115. package/frontend-dist/assets/{Setup-BglKyQKq.js → Setup-Dn7EgC49.js} +1 -1
  116. package/frontend-dist/assets/{Switch-DyCR-CPu.js → Switch-BO8Ooae6.js} +1 -1
  117. package/frontend-dist/assets/{TableHeader-DVUlBL35.js → TableHeader-Bded9VTC.js} +1 -1
  118. package/frontend-dist/assets/{TabsTrigger-BU1DY-C8.js → TabsTrigger-BzKMi9AF.js} +1 -1
  119. package/frontend-dist/assets/{Teleport-BQgusr9g.js → Teleport-DizRK5O3.js} +1 -1
  120. package/frontend-dist/assets/{TooltipTrigger-Bv_QoBns.js → TooltipTrigger-EiIy2zn8.js} +1 -1
  121. package/frontend-dist/assets/{UnifiedRequestDialog-f_evI835.js → UnifiedRequestDialog-BABsTaGb.js} +1 -1
  122. package/frontend-dist/assets/{VisuallyHidden-Con10z4F.js → VisuallyHidden-5AozJQza.js} +1 -1
  123. package/frontend-dist/assets/{VisuallyHiddenInput-yrDtxucb.js → VisuallyHiddenInput-DdiZrV2i.js} +1 -1
  124. package/frontend-dist/assets/{alert-dialog-2Db6Z7JQ.js → alert-dialog-DlKUuTPe.js} +1 -1
  125. package/frontend-dist/assets/arrow-down-CxWKmZ2I.js +1 -0
  126. package/frontend-dist/assets/{badge-DEhZfeI0.js → badge-9KJEMa53.js} +1 -1
  127. package/frontend-dist/assets/button-Ul8WlrM5.js +12 -0
  128. package/frontend-dist/assets/check-7ahK--N4.js +1 -0
  129. package/frontend-dist/assets/{copy-CwqZSuIG.js → copy-DzU2pAMG.js} +1 -1
  130. package/frontend-dist/assets/{dialog-CVMKSdPr.js → dialog-B9j-FMrd.js} +1 -1
  131. package/frontend-dist/assets/{file-text-D0K8Hovo.js → file-text-Bj3ZIo-E.js} +1 -1
  132. package/frontend-dist/assets/index-Bz_ZaXNn.css +1 -0
  133. package/frontend-dist/assets/{index-Ct718O93.js → index-MedWZMHB.js} +1 -1
  134. package/frontend-dist/assets/{lib-H3YI7EK4.js → lib-Hhs3NqfD.js} +1 -1
  135. package/frontend-dist/assets/loader-circle-5TJUukEe.js +1 -0
  136. package/frontend-dist/assets/{useClipboard-Cd7k-5Yq.js → useClipboard-BmmsNSGV.js} +1 -1
  137. package/frontend-dist/assets/{useFocusGuards-luoLXnwV.js → useFocusGuards-A-9V2Y-b.js} +1 -1
  138. package/frontend-dist/assets/useFormControl-DEO19lRe.js +1 -0
  139. package/frontend-dist/assets/{useLogRetention-DB4Iu6o_.js → useLogRetention-BfnBFZ5K.js} +1 -1
  140. package/frontend-dist/assets/useNonce-BfwUJ1Ci.js +1 -0
  141. package/frontend-dist/assets/x-Cfopt3QL.js +1 -0
  142. package/frontend-dist/index.html +20 -20
  143. package/package.json +1 -1
  144. package/frontend-dist/assets/Providers-D8Z97edN.js +0 -1
  145. package/frontend-dist/assets/ProxyEnhancement-Kn8r2SN6.js +0 -5
  146. package/frontend-dist/assets/arrow-down-WyouvE7T.js +0 -1
  147. package/frontend-dist/assets/button-Cnkbp_6J.js +0 -12
  148. package/frontend-dist/assets/check-BuqB5Nyb.js +0 -1
  149. package/frontend-dist/assets/index-xjdbFKXJ.css +0 -1
  150. package/frontend-dist/assets/loader-circle-Be82FnVY.js +0 -1
  151. package/frontend-dist/assets/useFormControl-Da4ViGZF.js +0 -1
  152. package/frontend-dist/assets/useNonce-DvAdQ48J.js +0 -1
  153. package/frontend-dist/assets/x-DB22csQl.js +0 -1
@@ -1 +1 @@
1
- import{G as e,H as t,It as n,J as r,K as i,Lt as a,Pt as o,U as s,W as c,X as l,lt as u,n as d,ot as f,q as p,r as m,tt as h,x as g,yt as _}from"./button-Cnkbp_6J.js";import{d as v,t as y,u as b}from"./Teleport-BQgusr9g.js";import{t as x}from"./x-DB22csQl.js";import{a as S,i as C,n as w,o as T,r as E,t as D}from"./DialogTitle-DeFTnmgC.js";var O=r({__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 t=e;return(e,n)=>(f(),s(o(y),a(l(t)),{default:_(()=>[u(e.$slots,`default`)]),_:3},16))}}),k=r({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=b(e,t);return(e,t)=>(f(),s(o(T),h({"data-slot":`dialog`},o(n)),{default:_(t=>[u(e.$slots,`default`,a(l(t)))]),_:3},16))}}),A=r({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=g(t,`class`);return(e,r)=>(f(),s(o(w),h({"data-slot":`dialog-overlay`},o(n),{class:o(m)(`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`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}}),j=r({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:n}){let r=e,i=n,a=b(g(r,`class`),i);return(n,i)=>(f(),s(o(O),null,{default:_(()=>[p(A),p(o(C),h({"data-slot":`dialog-content`},{...n.$attrs,...o(a)},{class:o(m)(`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`,r.class)}),{default:_(()=>[u(n.$slots,`default`),e.showCloseButton?(f(),s(o(S),{key:0,"data-slot":`dialog-close`,"as-child":``},{default:_(()=>[p(o(d),{variant:`ghost`,class:`absolute top-2 right-2`,size:`icon-sm`},{default:_(()=>[p(o(x)),i[0]||=t(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:1})):c(``,!0)]),_:3},16,[`class`])]),_:3}))}}),M=r({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=v(g(t,`class`));return(e,r)=>(f(),s(o(E),h({"data-slot":`dialog-description`},o(n),{class:o(m)(`text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}}),N=r({__name:`DialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!1}},setup(t){let r=t;return(a,l)=>(f(),e(`div`,{"data-slot":`dialog-footer`,class:n(o(m)(`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`,r.class))},[u(a.$slots,`default`),t.showCloseButton?(f(),s(o(S),{key:0,"as-child":``},{default:_(()=>[p(o(d),{variant:`outline`},{default:_(()=>[...l[0]||=[i(` Close `,-1)]]),_:1})]),_:1})):c(``,!0)],2))}}),P=r({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let r=t;return(t,i)=>(f(),e(`div`,{"data-slot":`dialog-header`,class:n(o(m)(`gap-2 flex flex-col`,r.class))},[u(t.$slots,`default`)],2))}}),F=r({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=v(g(t,`class`));return(e,r)=>(f(),s(o(D),h({"data-slot":`dialog-title`},o(n),{class:o(m)(`text-base leading-none font-medium cn-font-heading`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}});export{j as a,M as i,P as n,k as o,N as r,F as t};
1
+ import{G as e,H as t,It as n,J as r,K as i,Lt as a,Pt as o,U as s,W as c,X as l,lt as u,n as d,ot as f,q as p,r as m,tt as h,x as g,yt as _}from"./button-Ul8WlrM5.js";import{d as v,t as y,u as b}from"./Teleport-DizRK5O3.js";import{t as x}from"./x-Cfopt3QL.js";import{a as S,i as C,n as w,o as T,r as E,t as D}from"./DialogTitle-23q73lwF.js";var O=r({__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 t=e;return(e,n)=>(f(),s(o(y),a(l(t)),{default:_(()=>[u(e.$slots,`default`)]),_:3},16))}}),k=r({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=b(e,t);return(e,t)=>(f(),s(o(T),h({"data-slot":`dialog`},o(n)),{default:_(t=>[u(e.$slots,`default`,a(l(t)))]),_:3},16))}}),A=r({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=g(t,`class`);return(e,r)=>(f(),s(o(w),h({"data-slot":`dialog-overlay`},o(n),{class:o(m)(`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`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}}),j=r({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:n}){let r=e,i=n,a=b(g(r,`class`),i);return(n,i)=>(f(),s(o(O),null,{default:_(()=>[p(A),p(o(C),h({"data-slot":`dialog-content`},{...n.$attrs,...o(a)},{class:o(m)(`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`,r.class)}),{default:_(()=>[u(n.$slots,`default`),e.showCloseButton?(f(),s(o(S),{key:0,"data-slot":`dialog-close`,"as-child":``},{default:_(()=>[p(o(d),{variant:`ghost`,class:`absolute top-2 right-2`,size:`icon-sm`},{default:_(()=>[p(o(x)),i[0]||=t(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:1})):c(``,!0)]),_:3},16,[`class`])]),_:3}))}}),M=r({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=v(g(t,`class`));return(e,r)=>(f(),s(o(E),h({"data-slot":`dialog-description`},o(n),{class:o(m)(`text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}}),N=r({__name:`DialogFooter`,props:{class:{type:[Boolean,null,String,Object,Array]},showCloseButton:{type:Boolean,default:!1}},setup(t){let r=t;return(a,l)=>(f(),e(`div`,{"data-slot":`dialog-footer`,class:n(o(m)(`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`,r.class))},[u(a.$slots,`default`),t.showCloseButton?(f(),s(o(S),{key:0,"as-child":``},{default:_(()=>[p(o(d),{variant:`outline`},{default:_(()=>[...l[0]||=[i(` Close `,-1)]]),_:1})]),_:1})):c(``,!0)],2))}}),P=r({__name:`DialogHeader`,props:{class:{type:[Boolean,null,String,Object,Array]}},setup(t){let r=t;return(t,i)=>(f(),e(`div`,{"data-slot":`dialog-header`,class:n(o(m)(`gap-2 flex flex-col`,r.class))},[u(t.$slots,`default`)],2))}}),F=r({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=v(g(t,`class`));return(e,r)=>(f(),s(o(D),h({"data-slot":`dialog-title`},o(n),{class:o(m)(`text-base leading-none font-medium cn-font-heading`,t.class)}),{default:_(()=>[u(e.$slots,`default`)]),_:3},16,[`class`]))}});export{j as a,M as i,P as n,k as o,N as r,F as t};
@@ -1 +1 @@
1
- import{b as e}from"./Teleport-BQgusr9g.js";var t=e(`file-text`,[[`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 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]);export{t};
1
+ import{b as e}from"./Teleport-DizRK5O3.js";var t=e(`file-text`,[[`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 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]);export{t};
@@ -0,0 +1 @@
1
+ @import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&display=swap";: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(30% .05 150);--color-warning-light:oklch(32% .06 80);--color-danger-light:oklch(28% .08 25);--color-info-light:oklch(28% .06 250);--color-bg-sidebar:oklch(14.5% 0 0);--color-text-tertiary:oklch(55.6% 0 0);--color-role-user-bg:oklch(28% .04 175);--color-role-user:oklch(72% .08 175);--color-role-assistant-bg:oklch(25% .05 260);--color-role-assistant:oklch(60% .1 260);--color-role-tool-bg:oklch(22% .03 30);--color-role-tool:oklch(65% .06 30);--color-role-thinking-bg:oklch(23% .04 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)}.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 / .5);color:var(--muted-foreground)}.block-tool-use-content{background-color:oklch(from var(--color-role-tool-bg) l c h / .5)}.block-tool-result-content{background-color:oklch(from var(--color-role-user-bg) l c h / .5)}.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}.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-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-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.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}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.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-10{width:2.5rem;height:2.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.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}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.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-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.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-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.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}.max-w-2xl{max-width:42rem}.max-w-40{max-width:10rem}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.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-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))}.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-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}.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-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.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-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-accent{background-color:var(--accent)}.bg-background{background-color:var(--background)}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/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-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-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/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-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-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.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-4{padding-left:1rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.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-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.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-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-foreground{color:var(--foreground)}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.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-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 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-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.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)}.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)}@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)}.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\: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-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-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-orange-900\/30:is(.dark *){background-color:#7c2d124d}.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-300:is(.dark *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity,1))}.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}}@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))}}.\[\&\: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}
@@ -1 +1 @@
1
- import{A as e,Dt as t,F as n,G as r,H as i,It as a,J as o,K as s,M as c,N as l,Pt as u,U as d,V as f,W as p,at as ee,ct as te,dt as ne,gt as m,it as re,j as h,k as g,n as _,ot as v,q as y,r as b,tt as x,ut as S,yt as C,z as w,zt as T}from"./button-Cnkbp_6J.js";import{i as ie}from"./format-Dln15Luw.js";import{b as E}from"./Teleport-BQgusr9g.js";import{a as ae,i as D,n as oe,r as O,t as se}from"./SelectValue-BWlgUZa3.js";import{t as k}from"./file-text-D0K8Hovo.js";import{t as A}from"./loader-circle-Be82FnVY.js";import{t as j}from"./x-DB22csQl.js";import{a as M,c as N,i as P,n as F,o as I,r as L,s as R,t as z}from"./alert-dialog-2Db6Z7JQ.js";import{n as ce,r as le,t as ue}from"./PopoverTrigger-Cyqik5SE.js";import{t as B}from"./badge-DEhZfeI0.js";import{n as V,t as H}from"./lib-H3YI7EK4.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var U=E(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),de=E(`arrow-left-right`,[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]]),fe=E(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),pe=E(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),W=E(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),G=E(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),me=E(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),he=E(`layout-dashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),ge=E(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),K=E(`octagon-x`,[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),_e=E(`refresh-ccw`,[[`path`,{d:`M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`14sxne`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16`,key:`1hlbsb`}],[`path`,{d:`M16 16h5v5`,key:`ccwih5`}]]),ve=E(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),q=E(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),ye=E(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),be=E(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),J=E(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),xe={class:`w-56 bg-sidebar text-sidebar-foreground flex-shrink-0 flex flex-col`},Se={class:`p-4 border-b border-sidebar-border`},Ce={class:`flex items-center gap-2`},we={key:0,class:`p-3 border-b border-border`},Te={class:`flex items-center gap-2 mb-2`},Ee={class:`w-4 h-4 rounded-full bg-primary flex items-center justify-center text-primary-foreground`},De={class:`text-xs text-muted-foreground mb-2`},Oe={class:`text-primary font-medium`},ke={key:1,class:`text-xs text-warning bg-warning-light p-2 rounded`},Ae={key:1,class:`p-3 border-b border-border`},je={class:`flex items-center gap-2 mb-2`},Me={class:`w-4 h-4 rounded-full bg-primary flex items-center justify-center text-primary-foreground`},Ne={class:`flex items-center gap-2 mb-2`},Pe={key:2,class:`p-3`},Fe={class:`px-3 py-2 flex justify-between items-center text-xs text-muted-foreground`},Ie={class:`flex-1 p-2 space-y-1`},Le={class:`p-3 border-t border-sidebar-border`},Re={class:`bg-muted px-1 py-0.5 rounded text-xs`},ze=300*1e3,Y=o({__name:`Sidebar`,setup(n){let o=t(null),m=t(!1),h=t(!1),b=t(!1),x=t(!1),E=t(!1),A=null;async function j(){try{o.value=await g.getUpgradeStatus()}catch{o.value=null}}async function H(){try{await g.triggerUpgradeCheck(),await j()}catch(t){V.error(e(t,`检查失败`))}}async function W(){if(o.value?.npm.latestVersion){b.value=!0;try{await g.executeUpgrade(o.value.npm.latestVersion),V.success(`升级成功`),m.value=!1,h.value=!0,await j()}catch(t){V.error(e(t,`升级失败`))}finally{b.value=!1}}}async function G(){let t=o.value?.syncSource??`github`;x.value=!0;try{await g.syncConfig(t),V.success(`配置同步成功`),await j()}catch(t){V.error(e(t,`同步失败`))}finally{x.value=!1}}async function K(t){if(typeof t==`string`)try{await g.setSyncSource(t),await j()}catch(t){V.error(e(t,`保存失败`))}}let J=f(()=>{if(!o.value)return 0;let e=0;return o.value.npm.hasUpdate&&e++,o.value.config.hasUpdate&&e++,e});re(()=>{j(),A=setInterval(j,ze)}),ee(()=>{A&&clearInterval(A)});let Y=[{path:`/`,label:`仪表盘`,icon:he},{path:`/providers`,label:`供应商`,icon:q},{path:`/mappings`,label:`模型映射`,icon:de},{path:`/schedules`,label:`调度管理`,icon:pe},{path:`/router-keys`,label:`API 密钥`,icon:me},{path:`/retry-rules`,label:`重试规则`,icon:_e},{path:`/proxy-enhancement`,label:`代理增强(实验性)`,icon:be},{path:`/monitor`,label:`实时监控`,icon:U},{path:`/logs`,label:`请求日志`,icon:k},{path:`/settings`,label:`系统设置`,icon:ye}],X=c(),Z=l();function Q(e){return e===`/`?X.path===`/`:X.path.startsWith(e)}async function $(){try{await g.restartServer(),V.success(`重启指令已发送,等待服务恢复...`),h.value=!1,setTimeout(()=>{window.location.reload()},5e3)}catch(t){V.error(e(t,`重启失败`))}}async function Be(){try{await g.logout()}finally{Z.push(`/login`)}}return(e,t)=>{let n=S(`router-link`);return v(),r(`aside`,xe,[i(`div`,Se,[i(`div`,Ce,[t[15]||=i(`div`,{class:`w-8 h-8 bg-sidebar-primary rounded-lg flex items-center justify-center`},[i(`svg`,{class:`w-5 h-5 text-sidebar-primary-foreground`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[i(`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),y(u(le),{open:E.value,"onUpdate:open":t[1]||=e=>E.value=e},{default:C(()=>[y(u(ue),{"as-child":``},{default:C(()=>[y(u(_),{variant:`ghost`,class:`flex items-center gap-2 px-0 h-auto`},{default:C(()=>[t[5]||=i(`span`,{class:`font-semibold text-sm`},`LLM Router`,-1),y(u(B),{variant:`secondary`,class:`text-[10px] px-1.5 py-0 h-4 leading-none`},{default:C(()=>[s(`v`+T(u(`0.7.1`)),1)]),_:1}),J.value>0?(v(),d(u(B),{key:0,variant:`destructive`,class:`text-[10px] px-1.5 h-4 leading-none bg-destructive text-destructive-foreground font-semibold`},{default:C(()=>[s(T(J.value),1)]),_:1})):p(``,!0)]),_:1})]),_:1}),y(u(ce),{side:`right`,align:`start`,class:`w-80 p-0`},{default:C(()=>[o.value?.npm.hasUpdate?(v(),r(`div`,we,[i(`div`,Te,[i(`div`,Ee,[y(u(fe),{class:`w-3 h-3`})]),t[6]||=i(`span`,{class:`text-sm font-medium`},`新版本可用`,-1)]),i(`p`,De,[s(T(o.value.npm.currentVersion)+` → `,1),i(`span`,Oe,T(o.value.npm.latestVersion),1)]),o.value.deployment===`npm`?(v(),d(u(_),{key:0,size:`sm`,class:`w-full text-xs`,disabled:b.value,onClick:t[0]||=e=>m.value=!0},{default:C(()=>[s(T(b.value?`升级中...`:`一键升级`),1)]),_:1},8,[`disabled`])):(v(),r(`div`,ke,[s(` 检测到 `+T(o.value.deployment===`docker`?`Docker`:`未知`)+` 部署,请手动更新: `,1),t[7]||=i(`code`,{class:`block mt-1 text-warning bg-warning-dark/10 p-1 rounded`},`docker pull ghcr.io/zhushanwen321/llm-simple-router:latest`,-1)]))])):p(``,!0),o.value?.config.hasUpdate?(v(),r(`div`,Ae,[i(`div`,je,[i(`div`,Me,[y(u(ve),{class:`w-3 h-3`})]),t[8]||=i(`span`,{class:`text-sm font-medium`},`推荐配置已更新`,-1)]),t[12]||=i(`p`,{class:`text-xs text-muted-foreground mb-2`},` 供应商或重试规则有新版本 `,-1),i(`div`,Ne,[t[11]||=i(`span`,{class:`text-xs text-muted-foreground`},`来源`,-1),y(u(ae),{"model-value":o.value?.syncSource,"onUpdate:modelValue":K},{default:C(()=>[y(u(oe),{class:`h-7 text-xs flex-1`},{default:C(()=>[y(u(se))]),_:1}),y(u(D),null,{default:C(()=>[y(u(O),{value:`github`},{default:C(()=>[...t[9]||=[s(`GitHub`,-1)]]),_:1}),y(u(O),{value:`gitee`},{default:C(()=>[...t[10]||=[s(`Gitee`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`])]),y(u(_),{size:`sm`,variant:`secondary`,class:`w-full text-xs`,disabled:x.value,onClick:G},{default:C(()=>[s(T(x.value?`同步中...`:`同步配置`),1)]),_:1},8,[`disabled`])])):p(``,!0),!o.value?.npm.hasUpdate&&!o.value?.config.hasUpdate?(v(),r(`div`,Pe,[...t[13]||=[i(`p`,{class:`text-xs text-muted-foreground`},`当前已是最新版本,配置也是最新的`,-1)]])):p(``,!0),i(`div`,Fe,[i(`span`,null,T(o.value?.lastCheckedAt?`检查于 ${u(ie)(o.value.lastCheckedAt).toLocaleTimeString(`zh-CN`,{timeZone:`Asia/Shanghai`})}`:`未检查`),1),y(u(_),{variant:`link`,class:`text-primary h-auto p-0`,onClick:H},{default:C(()=>[...t[14]||=[s(`立即检查`,-1)]]),_:1})])]),_:1})]),_:1},8,[`open`])])]),i(`nav`,Ie,[(v(),r(w,null,te(Y,e=>y(n,{key:e.path,to:e.path,class:a([`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors`,Q(e.path)?`bg-sidebar-accent text-sidebar-primary`:`text-sidebar-foreground hover:bg-sidebar-accent`])},{default:C(()=>[(v(),d(ne(e.icon),{class:`w-4 h-4`})),s(` `+T(e.label),1)]),_:2},1032,[`to`,`class`])),64))]),i(`div`,Le,[y(u(_),{variant:`ghost`,class:`w-full justify-start text-sidebar-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent`,onClick:Be},{default:C(()=>[y(u(ge),{class:`w-4 h-4`}),t[16]||=s(` 登出 `,-1)]),_:1})]),y(u(N),{open:m.value,"onUpdate:open":t[2]||=e=>m.value=e},{default:C(()=>[y(u(M),null,{default:C(()=>[y(u(F),null,{default:C(()=>[y(u(z),null,{default:C(()=>[s(`确认升级到 `+T(o.value?.npm.latestVersion)+`?`,1)]),_:1}),y(u(P),null,{default:C(()=>[t[17]||=s(` 将执行 `,-1),i(`code`,Re,`npm install -g llm-simple-router@`+T(o.value?.npm.latestVersion),1),t[18]||=s(`,升级完成后需要重启服务才能生效。 `,-1)]),_:1})]),_:1}),y(u(L),null,{default:C(()=>[y(u(I),null,{default:C(()=>[...t[19]||=[s(`取消`,-1)]]),_:1}),y(u(R),{onClick:W,disabled:b.value},{default:C(()=>[s(T(b.value?`升级中...`:`确认升级`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),y(u(N),{open:h.value,"onUpdate:open":t[4]||=e=>h.value=e},{default:C(()=>[y(u(M),null,{default:C(()=>[y(u(F),null,{default:C(()=>[y(u(z),null,{default:C(()=>[...t[20]||=[s(`升级成功`,-1)]]),_:1}),y(u(P),null,{default:C(()=>[s(` 已升级到 `+T(o.value?.npm.latestVersion)+`。需要重启服务才能生效。 `,1)]),_:1})]),_:1}),y(u(L),null,{default:C(()=>[y(u(I),{onClick:t[3]||=e=>h.value=!1},{default:C(()=>[...t[21]||=[s(`稍后重启`,-1)]]),_:1}),y(u(R),{onClick:$},{default:C(()=>[...t[22]||=[s(`立即重启`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])}}}),X=o({__name:`Sonner`,props:{id:{},invert:{type:Boolean},theme:{},position:{},closeButtonPosition:{},hotkey:{},richColors:{type:Boolean},expand:{type:Boolean},duration:{},gap:{},visibleToasts:{},closeButton:{type:Boolean},toastOptions:{},class:{},style:{},offset:{},mobileOffset:{},dir:{},swipeDirections:{},icons:{},containerAriaLabel:{}},setup(e){let t=e;return(e,n)=>(v(),d(u(H),x({class:u(b)(`toaster group`,t.class),style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`}},t),{"success-icon":C(()=>[y(u(W),{class:`size-4`})]),"info-icon":C(()=>[y(u(G),{class:`size-4`})]),"warning-icon":C(()=>[y(u(J),{class:`size-4`})]),"error-icon":C(()=>[y(u(K),{class:`size-4`})]),"loading-icon":C(()=>[i(`div`,null,[y(u(A),{class:`size-4 animate-spin`})])]),"close-icon":C(()=>[y(u(j),{class:`size-4`})]),_:1},16,[`class`]))}}),Z={key:0,class:`min-h-screen flex`},Q={class:`flex-1 overflow-auto bg-muted`},$=n(o({__name:`App`,setup(e){let n=l(),a=c(),o=t(!1),s=[`/login`,`/setup`];async function f(){if(s.includes(a.path)){o.value=!1;return}try{await g.getStats(),o.value=!0}catch{o.value=!1,n.push(`/login`)}}return f(),m(()=>a.path,f),(e,t)=>{let n=S(`router-view`);return v(),r(w,null,[o.value?(v(),r(`div`,Z,[y(Y),i(`main`,Q,[y(n)])])):(v(),d(n,{key:1})),y(u(X),{richColors:``,position:`top-center`})],64)}}}));$.use(h),$.mount(`#app`);
1
+ import{A as e,Dt as t,F as n,G as r,H as i,It as a,J as o,K as s,M as c,N as l,Pt as u,U as d,V as f,W as p,at as ee,ct as te,dt as ne,gt as m,it as re,j as h,k as g,n as _,ot as v,q as y,r as b,tt as x,ut as S,yt as C,z as w,zt as T}from"./button-Ul8WlrM5.js";import{i as ie}from"./format-Dln15Luw.js";import{b as E}from"./Teleport-DizRK5O3.js";import{a as ae,i as D,n as oe,r as O,t as se}from"./SelectValue-C0-LzGQY.js";import{t as k}from"./file-text-Bj3ZIo-E.js";import{t as A}from"./loader-circle-5TJUukEe.js";import{t as j}from"./x-Cfopt3QL.js";import{a as M,c as N,i as P,n as F,o as I,r as L,s as R,t as z}from"./alert-dialog-DlKUuTPe.js";import{n as ce,r as le,t as ue}from"./PopoverTrigger-Bj65uUbv.js";import{t as B}from"./badge-9KJEMa53.js";import{n as V,t as H}from"./lib-Hhs3NqfD.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var U=E(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),de=E(`arrow-left-right`,[[`path`,{d:`M8 3 4 7l4 4`,key:`9rb6wj`}],[`path`,{d:`M4 7h16`,key:`6tx8e3`}],[`path`,{d:`m16 21 4-4-4-4`,key:`siv7j2`}],[`path`,{d:`M20 17H4`,key:`h6l3hr`}]]),fe=E(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),pe=E(`calendar-clock`,[[`path`,{d:`M16 14v2.2l1.6 1`,key:`fo4ql5`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`path`,{d:`M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5`,key:`1osxxc`}],[`path`,{d:`M3 10h5`,key:`r794hk`}],[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`circle`,{cx:`16`,cy:`16`,r:`6`,key:`qoo3c4`}]]),W=E(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),G=E(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),me=E(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),he=E(`layout-dashboard`,[[`rect`,{width:`7`,height:`9`,x:`3`,y:`3`,rx:`1`,key:`10lvy0`}],[`rect`,{width:`7`,height:`5`,x:`14`,y:`3`,rx:`1`,key:`16une8`}],[`rect`,{width:`7`,height:`9`,x:`14`,y:`12`,rx:`1`,key:`1hutg5`}],[`rect`,{width:`7`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`ldoo1y`}]]),ge=E(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),K=E(`octagon-x`,[[`path`,{d:`m15 9-6 6`,key:`1uzhvr`}],[`path`,{d:`M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z`,key:`2d38gg`}],[`path`,{d:`m9 9 6 6`,key:`z0biqf`}]]),_e=E(`refresh-ccw`,[[`path`,{d:`M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`14sxne`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16`,key:`1hlbsb`}],[`path`,{d:`M16 16h5v5`,key:`ccwih5`}]]),ve=E(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),q=E(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),ye=E(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),be=E(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),J=E(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),xe={class:`w-56 bg-sidebar text-sidebar-foreground flex-shrink-0 flex flex-col`},Se={class:`p-4 border-b border-sidebar-border`},Ce={class:`flex items-center gap-2`},we={key:0,class:`p-3 border-b border-border`},Te={class:`flex items-center gap-2 mb-2`},Ee={class:`w-4 h-4 rounded-full bg-primary flex items-center justify-center text-primary-foreground`},De={class:`text-xs text-muted-foreground mb-2`},Oe={class:`text-primary font-medium`},ke={key:1,class:`text-xs text-warning bg-warning-light p-2 rounded`},Ae={key:1,class:`p-3 border-b border-border`},je={class:`flex items-center gap-2 mb-2`},Me={class:`w-4 h-4 rounded-full bg-primary flex items-center justify-center text-primary-foreground`},Ne={class:`flex items-center gap-2 mb-2`},Pe={key:2,class:`p-3`},Fe={class:`px-3 py-2 flex justify-between items-center text-xs text-muted-foreground`},Ie={class:`flex-1 p-2 space-y-1`},Le={class:`p-3 border-t border-sidebar-border`},Re={class:`bg-muted px-1 py-0.5 rounded text-xs`},ze=300*1e3,Y=o({__name:`Sidebar`,setup(n){let o=t(null),m=t(!1),h=t(!1),b=t(!1),x=t(!1),E=t(!1),A=null;async function j(){try{o.value=await g.getUpgradeStatus()}catch{o.value=null}}async function H(){try{await g.triggerUpgradeCheck(),await j()}catch(t){V.error(e(t,`检查失败`))}}async function W(){if(o.value?.npm.latestVersion){b.value=!0;try{await g.executeUpgrade(o.value.npm.latestVersion),V.success(`升级成功`),m.value=!1,h.value=!0,await j()}catch(t){V.error(e(t,`升级失败`))}finally{b.value=!1}}}async function G(){let t=o.value?.syncSource??`github`;x.value=!0;try{await g.syncConfig(t),V.success(`配置同步成功`),await j()}catch(t){V.error(e(t,`同步失败`))}finally{x.value=!1}}async function K(t){if(typeof t==`string`)try{await g.setSyncSource(t),await j()}catch(t){V.error(e(t,`保存失败`))}}let J=f(()=>{if(!o.value)return 0;let e=0;return o.value.npm.hasUpdate&&e++,o.value.config.hasUpdate&&e++,e});re(()=>{j(),A=setInterval(j,ze)}),ee(()=>{A&&clearInterval(A)});let Y=[{path:`/`,label:`仪表盘`,icon:he},{path:`/providers`,label:`供应商`,icon:q},{path:`/mappings`,label:`模型映射`,icon:de},{path:`/schedules`,label:`调度管理`,icon:pe},{path:`/router-keys`,label:`API 密钥`,icon:me},{path:`/retry-rules`,label:`重试规则`,icon:_e},{path:`/proxy-enhancement`,label:`代理增强(实验性)`,icon:be},{path:`/monitor`,label:`实时监控`,icon:U},{path:`/logs`,label:`请求日志`,icon:k},{path:`/settings`,label:`系统设置`,icon:ye}],X=c(),Z=l();function Q(e){return e===`/`?X.path===`/`:X.path.startsWith(e)}async function $(){try{await g.restartServer(),V.success(`重启指令已发送,等待服务恢复...`),h.value=!1,setTimeout(()=>{window.location.reload()},5e3)}catch(t){V.error(e(t,`重启失败`))}}async function Be(){try{await g.logout()}finally{Z.push(`/login`)}}return(e,t)=>{let n=S(`router-link`);return v(),r(`aside`,xe,[i(`div`,Se,[i(`div`,Ce,[t[15]||=i(`div`,{class:`w-8 h-8 bg-sidebar-primary rounded-lg flex items-center justify-center`},[i(`svg`,{class:`w-5 h-5 text-sidebar-primary-foreground`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[i(`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),y(u(le),{open:E.value,"onUpdate:open":t[1]||=e=>E.value=e},{default:C(()=>[y(u(ue),{"as-child":``},{default:C(()=>[y(u(_),{variant:`ghost`,class:`flex items-center gap-2 px-0 h-auto`},{default:C(()=>[t[5]||=i(`span`,{class:`font-semibold text-sm`},`LLM Router`,-1),y(u(B),{variant:`secondary`,class:`text-[10px] px-1.5 py-0 h-4 leading-none`},{default:C(()=>[s(`v`+T(u(`0.8.2`)),1)]),_:1}),J.value>0?(v(),d(u(B),{key:0,variant:`destructive`,class:`text-[10px] px-1.5 h-4 leading-none bg-destructive text-destructive-foreground font-semibold`},{default:C(()=>[s(T(J.value),1)]),_:1})):p(``,!0)]),_:1})]),_:1}),y(u(ce),{side:`right`,align:`start`,class:`w-80 p-0`},{default:C(()=>[o.value?.npm.hasUpdate?(v(),r(`div`,we,[i(`div`,Te,[i(`div`,Ee,[y(u(fe),{class:`w-3 h-3`})]),t[6]||=i(`span`,{class:`text-sm font-medium`},`新版本可用`,-1)]),i(`p`,De,[s(T(o.value.npm.currentVersion)+` → `,1),i(`span`,Oe,T(o.value.npm.latestVersion),1)]),o.value.deployment===`npm`?(v(),d(u(_),{key:0,size:`sm`,class:`w-full text-xs`,disabled:b.value,onClick:t[0]||=e=>m.value=!0},{default:C(()=>[s(T(b.value?`升级中...`:`一键升级`),1)]),_:1},8,[`disabled`])):(v(),r(`div`,ke,[s(` 检测到 `+T(o.value.deployment===`docker`?`Docker`:`未知`)+` 部署,请手动更新: `,1),t[7]||=i(`code`,{class:`block mt-1 text-warning bg-warning-dark/10 p-1 rounded`},`docker pull ghcr.io/zhushanwen321/llm-simple-router:latest`,-1)]))])):p(``,!0),o.value?.config.hasUpdate?(v(),r(`div`,Ae,[i(`div`,je,[i(`div`,Me,[y(u(ve),{class:`w-3 h-3`})]),t[8]||=i(`span`,{class:`text-sm font-medium`},`推荐配置已更新`,-1)]),t[12]||=i(`p`,{class:`text-xs text-muted-foreground mb-2`},` 供应商或重试规则有新版本 `,-1),i(`div`,Ne,[t[11]||=i(`span`,{class:`text-xs text-muted-foreground`},`来源`,-1),y(u(ae),{"model-value":o.value?.syncSource,"onUpdate:modelValue":K},{default:C(()=>[y(u(oe),{class:`h-7 text-xs flex-1`},{default:C(()=>[y(u(se))]),_:1}),y(u(D),null,{default:C(()=>[y(u(O),{value:`github`},{default:C(()=>[...t[9]||=[s(`GitHub`,-1)]]),_:1}),y(u(O),{value:`gitee`},{default:C(()=>[...t[10]||=[s(`Gitee`,-1)]]),_:1})]),_:1})]),_:1},8,[`model-value`])]),y(u(_),{size:`sm`,variant:`secondary`,class:`w-full text-xs`,disabled:x.value,onClick:G},{default:C(()=>[s(T(x.value?`同步中...`:`同步配置`),1)]),_:1},8,[`disabled`])])):p(``,!0),!o.value?.npm.hasUpdate&&!o.value?.config.hasUpdate?(v(),r(`div`,Pe,[...t[13]||=[i(`p`,{class:`text-xs text-muted-foreground`},`当前已是最新版本,配置也是最新的`,-1)]])):p(``,!0),i(`div`,Fe,[i(`span`,null,T(o.value?.lastCheckedAt?`检查于 ${u(ie)(o.value.lastCheckedAt).toLocaleTimeString(`zh-CN`,{timeZone:`Asia/Shanghai`})}`:`未检查`),1),y(u(_),{variant:`link`,class:`text-primary h-auto p-0`,onClick:H},{default:C(()=>[...t[14]||=[s(`立即检查`,-1)]]),_:1})])]),_:1})]),_:1},8,[`open`])])]),i(`nav`,Ie,[(v(),r(w,null,te(Y,e=>y(n,{key:e.path,to:e.path,class:a([`flex items-center gap-3 px-3 py-2 rounded-lg text-sm transition-colors`,Q(e.path)?`bg-sidebar-accent text-sidebar-primary`:`text-sidebar-foreground hover:bg-sidebar-accent`])},{default:C(()=>[(v(),d(ne(e.icon),{class:`w-4 h-4`})),s(` `+T(e.label),1)]),_:2},1032,[`to`,`class`])),64))]),i(`div`,Le,[y(u(_),{variant:`ghost`,class:`w-full justify-start text-sidebar-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent`,onClick:Be},{default:C(()=>[y(u(ge),{class:`w-4 h-4`}),t[16]||=s(` 登出 `,-1)]),_:1})]),y(u(N),{open:m.value,"onUpdate:open":t[2]||=e=>m.value=e},{default:C(()=>[y(u(M),null,{default:C(()=>[y(u(F),null,{default:C(()=>[y(u(z),null,{default:C(()=>[s(`确认升级到 `+T(o.value?.npm.latestVersion)+`?`,1)]),_:1}),y(u(P),null,{default:C(()=>[t[17]||=s(` 将执行 `,-1),i(`code`,Re,`npm install -g llm-simple-router@`+T(o.value?.npm.latestVersion),1),t[18]||=s(`,升级完成后需要重启服务才能生效。 `,-1)]),_:1})]),_:1}),y(u(L),null,{default:C(()=>[y(u(I),null,{default:C(()=>[...t[19]||=[s(`取消`,-1)]]),_:1}),y(u(R),{onClick:W,disabled:b.value},{default:C(()=>[s(T(b.value?`升级中...`:`确认升级`),1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),y(u(N),{open:h.value,"onUpdate:open":t[4]||=e=>h.value=e},{default:C(()=>[y(u(M),null,{default:C(()=>[y(u(F),null,{default:C(()=>[y(u(z),null,{default:C(()=>[...t[20]||=[s(`升级成功`,-1)]]),_:1}),y(u(P),null,{default:C(()=>[s(` 已升级到 `+T(o.value?.npm.latestVersion)+`。需要重启服务才能生效。 `,1)]),_:1})]),_:1}),y(u(L),null,{default:C(()=>[y(u(I),{onClick:t[3]||=e=>h.value=!1},{default:C(()=>[...t[21]||=[s(`稍后重启`,-1)]]),_:1}),y(u(R),{onClick:$},{default:C(()=>[...t[22]||=[s(`立即重启`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])])}}}),X=o({__name:`Sonner`,props:{id:{},invert:{type:Boolean},theme:{},position:{},closeButtonPosition:{},hotkey:{},richColors:{type:Boolean},expand:{type:Boolean},duration:{},gap:{},visibleToasts:{},closeButton:{type:Boolean},toastOptions:{},class:{},style:{},offset:{},mobileOffset:{},dir:{},swipeDirections:{},icons:{},containerAriaLabel:{}},setup(e){let t=e;return(e,n)=>(v(),d(u(H),x({class:u(b)(`toaster group`,t.class),style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`}},t),{"success-icon":C(()=>[y(u(W),{class:`size-4`})]),"info-icon":C(()=>[y(u(G),{class:`size-4`})]),"warning-icon":C(()=>[y(u(J),{class:`size-4`})]),"error-icon":C(()=>[y(u(K),{class:`size-4`})]),"loading-icon":C(()=>[i(`div`,null,[y(u(A),{class:`size-4 animate-spin`})])]),"close-icon":C(()=>[y(u(j),{class:`size-4`})]),_:1},16,[`class`]))}}),Z={key:0,class:`min-h-screen flex`},Q={class:`flex-1 overflow-auto bg-muted`},$=n(o({__name:`App`,setup(e){let n=l(),a=c(),o=t(!1),s=[`/login`,`/setup`];async function f(){if(s.includes(a.path)){o.value=!1;return}try{await g.getStats(),o.value=!0}catch{o.value=!1,n.push(`/login`)}}return f(),m(()=>a.path,f),(e,t)=>{let n=S(`router-view`);return v(),r(w,null,[o.value?(v(),r(`div`,Z,[y(Y),i(`main`,Q,[y(n)])])):(v(),d(n,{key:1})),y(u(X),{richColors:``,position:`top-center`})],64)}}}));$.use(h),$.mount(`#app`);
@@ -1 +1 @@
1
- import{$ as e,Dt as t,G as n,H as r,It as i,J as a,K as o,Lt as s,Pt as c,Rt as l,U as u,V as d,W as f,_t as p,ct as m,dt as h,gt as ee,it as g,lt as _,nt as v,ot as y,pt as b,q as x,rt as S,tt as C,yt as w,z as T,zt as E}from"./button-Cnkbp_6J.js";var D=1,O=new class{subscribers;toasts;dismissedToasts;constructor(){this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)});publish=e=>{this.subscribers.forEach(t=>t(e))};addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]};create=e=>{let{message:t,...n}=e,r=typeof e.id==`number`||e.id&&e.id?.length>0?e.id:D++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r};dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e);message=(e,t)=>this.create({...t,message:e,type:`default`});error=(e,t)=>this.create({...t,type:`error`,message:e});success=(e,t)=>this.create({...t,type:`success`,message:e});info=(e,t)=>this.create({...t,type:`info`,message:e});warning=(e,t)=>this.create({...t,type:`warning`,message:e});loading=(e,t)=>this.create({...t,type:`loading`,message:e});promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:`loading`,message:n.loading,description:typeof n.description==`function`?void 0:n.description}));let i=Promise.resolve(t instanceof Function?t():t),a=r!==void 0,o,s=i.then(async t=>{if(o=[`resolve`,t],e(t))a=!1,this.create({id:r,type:`default`,message:t});else if(A(t)&&!t.ok){a=!1;let i=typeof n.error==`function`?await n.error(`HTTP error! status: ${t.status}`):n.error,o=typeof n.description==`function`?await n.description(`HTTP error! status: ${t.status}`):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(t instanceof Error){a=!1;let i=typeof n.error==`function`?await n.error(t):n.error,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(n.success!==void 0){a=!1;let i=typeof n.success==`function`?await n.success(t):n.success,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`success`,description:o,...s})}}).catch(async t=>{if(o=[`reject`,t],n.error!==void 0){a=!1;let i=typeof n.error==`function`?await n.error(t):n.error,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),n.finally?.()}),c=()=>new Promise((e,t)=>s.then(()=>o[0]===`reject`?t(o[1]):e(o[1])).catch(t));return typeof r!=`string`&&typeof r!=`number`?{unwrap:c}:Object.assign(r,{unwrap:c})};custom=(e,t)=>{let n=t?.id||D++,r=this.toasts.find(e=>e.id===n),i=t?.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(n)&&this.dismissedToasts.delete(n),r?this.toasts=this.toasts.map(r=>r.id===n?(this.publish({...r,component:e,dismissible:i,id:n,...t}),{...r,component:e,dismissible:i,id:n,...t}):r):this.addToast({component:e,dismissible:i,id:n,...t}),n};getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id))};function k(e,t){let n=t?.id||D++;return O.create({message:e,id:n,type:`default`,...t}),n}var A=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,j=Object.assign(k,{success:O.success,info:O.info,warning:O.warning,error:O.error,custom:O.custom,message:O.message,promise:O.promise,dismiss:O.dismiss,loading:O.loading},{getHistory:()=>O.toasts,getToasts:()=>O.getActiveToasts()});function M(e){return e.label!==void 0}var N=3,P=`24px`,F=`16px`,I=4e3,L=356,R=14,te=45,ne=200;function z(){let e=t(!1);return p(()=>{let t=()=>{e.value=document.hidden};return document.addEventListener(`visibilitychange`,t),()=>window.removeEventListener(`visibilitychange`,t)}),{isDocumentHidden:e}}function B(...e){return e.filter(Boolean).join(` `)}function re(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}function ie(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?F:P;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var ae=[`data-rich-colors`,`data-styled`,`data-mounted`,`data-promise`,`data-swiped`,`data-removed`,`data-visible`,`data-y-position`,`data-x-position`,`data-index`,`data-front`,`data-swiping`,`data-dismissible`,`data-type`,`data-invert`,`data-swipe-out`,`data-swipe-direction`,`data-expanded`,`data-testid`],oe=[`aria-label`,`data-disabled`,`data-close-button-position`],se=a({__name:`Toast`,props:{toast:{},toasts:{},index:{},swipeDirections:{},expanded:{type:Boolean},invert:{type:Boolean},heights:{},gap:{},position:{},closeButtonPosition:{},visibleToasts:{},expandByDefault:{type:Boolean},closeButton:{type:Boolean},interacting:{type:Boolean},style:{},cancelButtonStyle:{},actionButtonStyle:{},duration:{},class:{},unstyled:{type:Boolean},descriptionClass:{},loadingIcon:{},classes:{},icons:{},closeButtonAriaLabel:{},defaultRichColors:{type:Boolean}},emits:[`update:heights`,`update:height`,`removeToast`],setup(e,{emit:a}){let m=e,b=a,x=t(null),w=t(null),D=t(!1),O=t(!1),k=t(!1),A=t(!1),j=t(!1),N=t(0),P=t(0),F=t(m.toast.duration||m.duration||I),L=t(null),R=t(null),ie=d(()=>m.index===0),se=d(()=>m.index+1<=m.visibleToasts),V=d(()=>m.toast.type),H=d(()=>m.toast.dismissible!==!1),ce=d(()=>m.toast.class||``),le=d(()=>m.descriptionClass||``),U=d(()=>{let e=m.toast.position||m.position,t=m.heights.filter(t=>t.position===e).findIndex(e=>e.toastId===m.toast.id);return t>=0?t:0}),ue=d(()=>{let e=m.toast.position||m.position;return m.heights.filter(t=>t.position===e).reduce((e,t,n)=>n>=U.value?e:e+t.height,0)}),W=d(()=>U.value*m.gap+ue.value||0),de=d(()=>m.toast.closeButton??m.closeButton),fe=d(()=>m.toast.duration||m.duration||I),G=t(0),K=t(0),q=t(null),J=d(()=>m.position.split(`-`)),pe=d(()=>J.value[0]),me=d(()=>J.value[1]),he=d(()=>typeof m.toast.title!=`string`),ge=d(()=>typeof m.toast.description!=`string`),{isDocumentHidden:Y}=z(),X=d(()=>V.value&&V.value===`loading`);g(()=>{D.value=!0,F.value=fe.value}),p(async()=>{if(!D.value||!R.value)return;await v();let e=R.value,t=e.style.height;e.style.height=`auto`;let n=e.getBoundingClientRect().height;e.style.height=t,P.value=n,b(`update:height`,{toastId:m.toast.id,height:n,position:m.toast.position||m.position})});function Z(){O.value=!0,N.value=W.value,setTimeout(()=>{b(`removeToast`,m.toast)},ne)}function Q(){if(X.value||!H.value)return{};Z(),m.toast.onDismiss?.(m.toast)}function $(e){e.button!==2&&(X.value||!H.value||(L.value=new Date,N.value=W.value,e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(k.value=!0,q.value={x:e.clientX,y:e.clientY})))}function _e(){if(A.value||!H.value)return;q.value=null;let e=Number(R.value?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(R.value?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),n=new Date().getTime()-(L.value?.getTime()||0),r=x.value===`x`?e:t,i=Math.abs(r)/n;if(Math.abs(r)>=te||i>.11){N.value=W.value,m.toast.onDismiss?.(m.toast),x.value===`x`?w.value=e>0?`right`:`left`:w.value=t>0?`down`:`up`,Z(),A.value=!0;return}else R.value?.style.setProperty(`--swipe-amount-x`,`0px`),R.value?.style.setProperty(`--swipe-amount-y`,`0px`);j.value=!1,k.value=!1,x.value=null}function ve(e){if(!q.value||!H.value||(window?.getSelection()?.toString()?.length??!1))return;let t=e.clientY-q.value.y,n=e.clientX-q.value.x,r=m.swipeDirections??re(m.position);!x.value&&(Math.abs(n)>1||Math.abs(t)>1)&&(x.value=Math.abs(n)>Math.abs(t)?`x`:`y`);let i={x:0,y:0},a=e=>1/(1.5+Math.abs(e)/20);if(x.value===`y`){if(r.includes(`top`)||r.includes(`bottom`))if(r.includes(`top`)&&t<0||r.includes(`bottom`)&&t>0)i.y=t;else{let e=t*a(t);i.y=Math.abs(e)<Math.abs(t)?e:t}}else if(x.value===`x`&&(r.includes(`left`)||r.includes(`right`)))if(r.includes(`left`)&&n<0||r.includes(`right`)&&n>0)i.x=n;else{let e=n*a(n);i.x=Math.abs(e)<Math.abs(n)?e:n}(Math.abs(i.x)>0||Math.abs(i.y)>0)&&(j.value=!0),R.value?.style.setProperty(`--swipe-amount-x`,`${i.x}px`),R.value?.style.setProperty(`--swipe-amount-y`,`${i.y}px`)}g(()=>{if(D.value=!0,!R.value)return;let e=R.value.getBoundingClientRect().height;P.value=e,b(`update:heights`,[{toastId:m.toast.id,height:e,position:m.toast.position},...m.heights])}),S(()=>{R.value&&b(`removeToast`,m.toast)}),p(e=>{if(m.toast.promise&&V.value===`loading`||m.toast.duration===1/0||m.toast.type===`loading`)return;let t;m.expanded||m.interacting||Y.value?(()=>{if(K.value<G.value){let e=new Date().getTime()-G.value;F.value-=e}K.value=new Date().getTime()})():F.value!==1/0&&(G.value=new Date().getTime(),t=setTimeout(()=>{m.toast.onAutoClose?.(m.toast),Z()},F.value)),e(()=>{clearTimeout(t)})}),ee(()=>m.toast.delete,e=>{e!==void 0&&e&&(Z(),m.toast.onDismiss?.(m.toast))},{deep:!0});function ye(){k.value=!1,x.value=null,q.value=null}return(e,t)=>(y(),n(`li`,{tabindex:`0`,ref_key:`toastRef`,ref:R,class:i(c(B)(m.class,ce.value,e.classes?.toast,e.toast.classes?.toast,e.classes?.[V.value],e.toast?.classes?.[V.value])),"data-sonner-toast":``,"data-rich-colors":e.toast.richColors??e.defaultRichColors,"data-styled":!(e.toast.component||e.toast?.unstyled||e.unstyled),"data-mounted":D.value,"data-promise":!!e.toast.promise,"data-swiped":j.value,"data-removed":O.value,"data-visible":se.value,"data-y-position":pe.value,"data-x-position":me.value,"data-index":e.index,"data-front":ie.value,"data-swiping":k.value,"data-dismissible":H.value,"data-type":V.value,"data-invert":e.toast.invert||e.invert,"data-swipe-out":A.value,"data-swipe-direction":w.value,"data-expanded":!!(e.expanded||e.expandByDefault&&D.value),"data-testid":e.toast.testId,style:l({"--index":e.index,"--toasts-before":e.index,"--z-index":e.toasts.length-e.index,"--offset":`${O.value?N.value:W.value}px`,"--initial-height":e.expandByDefault?`auto`:`${P.value}px`,...e.style,...m.toast.style}),onDragend:ye,onPointerdown:$,onPointerup:_e,onPointermove:ve},[de.value&&!e.toast.component&&V.value!==`loading`?(y(),n(`button`,{key:0,"aria-label":e.closeButtonAriaLabel||`Close toast`,"data-disabled":X.value,"data-close-button":`true`,"data-close-button-position":e.closeButtonPosition,class:i(c(B)(e.classes?.closeButton,e.toast?.classes?.closeButton)),onClick:Q},[e.icons?.close?(y(),u(h(e.icons?.close),{key:0})):_(e.$slots,`close-icon`,{key:1})],10,oe)):f(`v-if`,!0),e.toast.component?(y(),u(h(e.toast.component),C({key:1},e.toast.componentProps,{onCloseToast:Q,isPaused:e.$props.expanded||e.$props.interacting||c(Y)}),null,16,[`isPaused`])):(y(),n(T,{key:2},[V.value!==`default`||e.toast.icon||e.toast.promise?(y(),n(`div`,{key:0,"data-icon":``,class:i(c(B)(e.classes?.icon,e.toast?.classes?.icon))},[e.toast.icon?(y(),u(h(e.toast.icon),{key:0})):(y(),n(T,{key:1},[V.value===`loading`?_(e.$slots,`loading-icon`,{key:0}):V.value===`success`?_(e.$slots,`success-icon`,{key:1}):V.value===`error`?_(e.$slots,`error-icon`,{key:2}):V.value===`warning`?_(e.$slots,`warning-icon`,{key:3}):V.value===`info`?_(e.$slots,`info-icon`,{key:4}):f(`v-if`,!0)],64))],2)):f(`v-if`,!0),r(`div`,{"data-content":``,class:i(c(B)(e.classes?.content,e.toast?.classes?.content))},[r(`div`,{"data-title":``,class:i(c(B)(e.classes?.title,e.toast.classes?.title))},[he.value?(y(),u(h(e.toast.title),s(C({key:0},e.toast.componentProps)),null,16)):(y(),n(T,{key:1},[o(E(e.toast.title),1)],64))],2),e.toast.description?(y(),n(`div`,{key:0,"data-description":``,class:i(c(B)(e.descriptionClass,le.value,e.classes?.description,e.toast.classes?.description))},[ge.value?(y(),u(h(e.toast.description),s(C({key:0},e.toast.componentProps)),null,16)):(y(),n(T,{key:1},[o(E(e.toast.description),1)],64))],2)):f(`v-if`,!0)],2),e.toast.cancel?(y(),n(`button`,{key:1,style:l(e.toast.cancelButtonStyle||e.cancelButtonStyle),class:i(c(B)(e.classes?.cancelButton,e.toast.classes?.cancelButton)),"data-button":``,"data-cancel":``,onClick:t[0]||=t=>{c(M)(e.toast.cancel)&&H.value&&(e.toast.cancel.onClick?.(t),Z())}},E(c(M)(e.toast.cancel)?e.toast.cancel?.label:e.toast.cancel),7)):f(`v-if`,!0),e.toast.action?(y(),n(`button`,{key:2,style:l(e.toast.actionButtonStyle||e.actionButtonStyle),class:i(c(B)(e.classes?.actionButton,e.toast.classes?.actionButton)),"data-button":``,"data-action":``,onClick:t[1]||=t=>{c(M)(e.toast.action)&&(e.toast.action.onClick?.(t),!t.defaultPrevented&&Z())}},E(c(M)(e.toast.action)?e.toast.action?.label:e.toast.action),7)):f(`v-if`,!0)],64))],46,ae))}}),V=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},H={},ce={xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stoke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function le(e,t){return y(),n(`svg`,ce,t[0]||=[r(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),r(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)])}var U=V(H,[[`render`,le]]),ue=[`data-visible`],W={class:`sonner-spinner`},de=a({__name:`Loader`,props:{visible:{type:Boolean}},setup(e){let t=Array(12).fill(0);return(e,i)=>(y(),n(`div`,{class:`sonner-loading-wrapper`,"data-visible":e.visible},[r(`div`,W,[(y(!0),n(T,null,m(c(t),e=>(y(),n(`div`,{key:`spinner-bar-${e}`,class:`sonner-loading-bar`}))),128))])],8,ue))}}),fe={},G={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function K(e,t){return y(),n(`svg`,G,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,"clip-rule":`evenodd`},null,-1)])}var q=V(fe,[[`render`,K]]),J={},pe={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function me(e,t){return y(),n(`svg`,pe,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,"clip-rule":`evenodd`},null,-1)])}var he=V(J,[[`render`,me]]),ge={},Y={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`};function X(e,t){return y(),n(`svg`,Y,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,"clip-rule":`evenodd`},null,-1)])}var Z=V(ge,[[`render`,X]]),Q={},$={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function _e(e,t){return y(),n(`svg`,$,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,"clip-rule":`evenodd`},null,-1)])}var ve=V(Q,[[`render`,_e]]),ye=[`aria-label`],be=[`data-sonner-theme`,`dir`,`data-theme`,`data-rich-colors`,`data-y-position`,`data-x-position`],xe=typeof window<`u`&&typeof document<`u`;function Se(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}var Ce=a({name:`Toaster`,inheritAttrs:!1,__name:`Toaster`,props:{id:{},invert:{type:Boolean,default:!1},theme:{default:`light`},position:{default:`bottom-right`},closeButtonPosition:{default:`top-left`},hotkey:{default:()=>[`altKey`,`KeyT`]},richColors:{type:Boolean,default:!1},expand:{type:Boolean,default:!1},duration:{},gap:{default:R},visibleToasts:{default:N},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:``},style:{},offset:{default:P},mobileOffset:{default:F},dir:{default:`auto`},swipeDirections:{},icons:{},containerAriaLabel:{default:`Notifications`}},setup(e){let a=e,o=b(),s=t([]),h=d(()=>a.id?s.value.filter(e=>e.toasterId===a.id):s.value.filter(e=>!e.toasterId));function ee(e,t){return h.value.filter(n=>!n.position&&t===0||n.position===e)}let g=d(()=>{let e=h.value.filter(e=>e.position).map(e=>e.position);return e.length>0?Array.from(new Set([a.position].concat(e))):[a.position]}),S=d(()=>{let e={};return g.value.forEach(t=>{e[t]=s.value.filter(e=>e.position===t)}),e}),E=t([]),D=t({}),k=t(!1);p(()=>{g.value.forEach(e=>{e in D.value||(D.value[e]=!1)})});let A=t(a.theme===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:a.theme),j=t(null),M=t(null),N=t(!1),P=a.hotkey.join(`+`).replace(/Key/g,``).replace(/Digit/g,``);function F(e){s.value.find(t=>t.id===e.id)?.delete||O.dismiss(e.id),s.value=s.value.filter(({id:t})=>t!==e.id),setTimeout(()=>{s.value.find(t=>t.id===e.id)||(E.value=E.value.filter(t=>t.toastId!==e.id))},ne+50)}function I(e){N.value&&!e.currentTarget?.contains?.(e.relatedTarget)&&(N.value=!1,M.value&&=(M.value.focus({preventScroll:!0}),null))}function R(e){e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||N.value||(N.value=!0,M.value=e.relatedTarget)}function te(e){e.target&&e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||(k.value=!0)}p(e=>{e(O.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{s.value=s.value.map(t=>t.id===e.id?{...t,delete:!0}:t)});return}v(()=>{let t=s.value.findIndex(t=>t.id===e.id);t===-1?s.value=[e,...s.value]:s.value=[...s.value.slice(0,t),{...s.value[t],...e},...s.value.slice(t+1)]})}))}),p(e=>{if(typeof window>`u`)return;if(a.theme!==`system`){A.value=a.theme;return}let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=e=>{A.value=e?`dark`:`light`};n(t.matches);let r=e=>{n(e.matches)};try{t.addEventListener(`change`,r)}catch{t.addListener(r)}e(()=>{try{t.removeEventListener(`change`,r)}catch{t.removeListener(r)}})}),p(()=>{j.value&&M.value&&(M.value.focus({preventScroll:!0}),M.value=null,N.value=!1)}),p(()=>{s.value.length<=1&&Object.keys(D.value).forEach(e=>{D.value[e]=!1})}),p(e=>{function t(e){let t=a.hotkey.every(t=>e[t]||e.code===t),n=Array.isArray(j.value)?j.value[0]:j.value;t&&(g.value.forEach(e=>{D.value[e]=!0}),n?.focus());let r=document.activeElement===j.value||n?.contains(document.activeElement);e.code===`Escape`&&r&&g.value.forEach(e=>{D.value[e]=!1})}xe&&(document.addEventListener(`keydown`,t),e(()=>{document.removeEventListener(`keydown`,t)}))});function z(e){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!0}function B(e){if(!k.value){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!1}}function re(){Object.keys(D.value).forEach(e=>{D.value[e]=!1})}function ae(){k.value=!1}function oe(e){E.value=e}function V(e){let t=E.value.findIndex(t=>t.toastId===e.toastId);if(t!==-1)E.value[t]=e;else{let t=E.value.findIndex(t=>t.position===e.position);t===-1?E.value.unshift(e):E.value.splice(t,0,e)}}return(e,t)=>(y(),n(T,null,[f(` Remove item from normal navigation flow, only available via hotkey `),r(`section`,{"aria-label":`${e.containerAriaLabel} ${c(P)}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`},[(y(!0),n(T,null,m(g.value,(t,r)=>(y(),n(`ol`,C({key:t,ref_for:!0,ref_key:`listRef`,ref:j,"data-sonner-toaster":``,"data-sonner-theme":A.value,class:a.class,dir:e.dir===`auto`?Se():e.dir,tabIndex:-1,"data-theme":e.theme,"data-rich-colors":e.richColors,"data-y-position":t.split(`-`)[0],"data-x-position":t.split(`-`)[1],style:{"--front-toast-height":`${E.value[0]?.height||0}px`,"--width":`${c(L)}px`,"--gap":`${e.gap}px`,...e.style,...c(o).style,...c(ie)(e.offset,e.mobileOffset)}},{ref_for:!0},e.$attrs,{onBlur:I,onFocus:R,onMouseenter:z,onMousemove:z,onMouseleave:B,onDragend:re,onPointerdown:te,onPointerup:ae}),[(y(!0),n(T,null,m(ee(t,r),(n,r)=>(y(),u(se,{key:n.id,heights:E.value,icons:e.icons,index:r,toast:n,defaultRichColors:e.richColors,duration:e.toastOptions?.duration??e.duration,class:i(e.toastOptions?.class??``),descriptionClass:e.toastOptions?.descriptionClass,invert:e.invert,visibleToasts:e.visibleToasts,closeButton:e.toastOptions?.closeButton??e.closeButton,interacting:k.value,position:t,closeButtonPosition:e.toastOptions?.closeButtonPosition??e.closeButtonPosition,style:l(e.toastOptions?.style),unstyled:e.toastOptions?.unstyled,classes:e.toastOptions?.classes,cancelButtonStyle:e.toastOptions?.cancelButtonStyle,actionButtonStyle:e.toastOptions?.actionButtonStyle,"close-button-aria-label":e.toastOptions?.closeButtonAriaLabel,toasts:S.value[t],expandByDefault:e.expand,gap:e.gap,expanded:D.value[t]||!1,swipeDirections:a.swipeDirections,"onUpdate:heights":oe,"onUpdate:height":V,onRemoveToast:F},{"close-icon":w(()=>[_(e.$slots,`close-icon`,{},()=>[x(U)])]),"loading-icon":w(()=>[_(e.$slots,`loading-icon`,{},()=>[x(de,{visible:n.type===`loading`},null,8,[`visible`])])]),"success-icon":w(()=>[_(e.$slots,`success-icon`,{},()=>[x(q)])]),"error-icon":w(()=>[_(e.$slots,`error-icon`,{},()=>[x(ve)])]),"warning-icon":w(()=>[_(e.$slots,`warning-icon`,{},()=>[x(Z)])]),"info-icon":w(()=>[_(e.$slots,`info-icon`,{},()=>[x(he)])]),_:2},1032,[`heights`,`icons`,`index`,`toast`,`defaultRichColors`,`duration`,`class`,`descriptionClass`,`invert`,`visibleToasts`,`closeButton`,`interacting`,`position`,`closeButtonPosition`,`style`,`unstyled`,`classes`,`cancelButtonStyle`,`actionButtonStyle`,`close-button-aria-label`,`toasts`,`expandByDefault`,`gap`,`expanded`,`swipeDirections`]))),128))],16,be))),128))],8,ye)],2112))}});export{j as n,Ce as t};
1
+ import{$ as e,Dt as t,G as n,H as r,It as i,J as a,K as o,Lt as s,Pt as c,Rt as l,U as u,V as d,W as f,_t as p,ct as m,dt as h,gt as ee,it as g,lt as _,nt as v,ot as y,pt as b,q as x,rt as S,tt as C,yt as w,z as T,zt as E}from"./button-Ul8WlrM5.js";var D=1,O=new class{subscribers;toasts;dismissedToasts;constructor(){this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)});publish=e=>{this.subscribers.forEach(t=>t(e))};addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]};create=e=>{let{message:t,...n}=e,r=typeof e.id==`number`||e.id&&e.id?.length>0?e.id:D++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r};dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e);message=(e,t)=>this.create({...t,message:e,type:`default`});error=(e,t)=>this.create({...t,type:`error`,message:e});success=(e,t)=>this.create({...t,type:`success`,message:e});info=(e,t)=>this.create({...t,type:`info`,message:e});warning=(e,t)=>this.create({...t,type:`warning`,message:e});loading=(e,t)=>this.create({...t,type:`loading`,message:e});promise=(t,n)=>{if(!n)return;let r;n.loading!==void 0&&(r=this.create({...n,promise:t,type:`loading`,message:n.loading,description:typeof n.description==`function`?void 0:n.description}));let i=Promise.resolve(t instanceof Function?t():t),a=r!==void 0,o,s=i.then(async t=>{if(o=[`resolve`,t],e(t))a=!1,this.create({id:r,type:`default`,message:t});else if(A(t)&&!t.ok){a=!1;let i=typeof n.error==`function`?await n.error(`HTTP error! status: ${t.status}`):n.error,o=typeof n.description==`function`?await n.description(`HTTP error! status: ${t.status}`):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(t instanceof Error){a=!1;let i=typeof n.error==`function`?await n.error(t):n.error,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(n.success!==void 0){a=!1;let i=typeof n.success==`function`?await n.success(t):n.success,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`success`,description:o,...s})}}).catch(async t=>{if(o=[`reject`,t],n.error!==void 0){a=!1;let i=typeof n.error==`function`?await n.error(t):n.error,o=typeof n.description==`function`?await n.description(t):n.description,s=typeof i==`object`&&!e(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),n.finally?.()}),c=()=>new Promise((e,t)=>s.then(()=>o[0]===`reject`?t(o[1]):e(o[1])).catch(t));return typeof r!=`string`&&typeof r!=`number`?{unwrap:c}:Object.assign(r,{unwrap:c})};custom=(e,t)=>{let n=t?.id||D++,r=this.toasts.find(e=>e.id===n),i=t?.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(n)&&this.dismissedToasts.delete(n),r?this.toasts=this.toasts.map(r=>r.id===n?(this.publish({...r,component:e,dismissible:i,id:n,...t}),{...r,component:e,dismissible:i,id:n,...t}):r):this.addToast({component:e,dismissible:i,id:n,...t}),n};getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id))};function k(e,t){let n=t?.id||D++;return O.create({message:e,id:n,type:`default`,...t}),n}var A=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,j=Object.assign(k,{success:O.success,info:O.info,warning:O.warning,error:O.error,custom:O.custom,message:O.message,promise:O.promise,dismiss:O.dismiss,loading:O.loading},{getHistory:()=>O.toasts,getToasts:()=>O.getActiveToasts()});function M(e){return e.label!==void 0}var N=3,P=`24px`,F=`16px`,I=4e3,L=356,R=14,te=45,ne=200;function z(){let e=t(!1);return p(()=>{let t=()=>{e.value=document.hidden};return document.addEventListener(`visibilitychange`,t),()=>window.removeEventListener(`visibilitychange`,t)}),{isDocumentHidden:e}}function B(...e){return e.filter(Boolean).join(` `)}function re(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}function ie(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?F:P;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var ae=[`data-rich-colors`,`data-styled`,`data-mounted`,`data-promise`,`data-swiped`,`data-removed`,`data-visible`,`data-y-position`,`data-x-position`,`data-index`,`data-front`,`data-swiping`,`data-dismissible`,`data-type`,`data-invert`,`data-swipe-out`,`data-swipe-direction`,`data-expanded`,`data-testid`],oe=[`aria-label`,`data-disabled`,`data-close-button-position`],se=a({__name:`Toast`,props:{toast:{},toasts:{},index:{},swipeDirections:{},expanded:{type:Boolean},invert:{type:Boolean},heights:{},gap:{},position:{},closeButtonPosition:{},visibleToasts:{},expandByDefault:{type:Boolean},closeButton:{type:Boolean},interacting:{type:Boolean},style:{},cancelButtonStyle:{},actionButtonStyle:{},duration:{},class:{},unstyled:{type:Boolean},descriptionClass:{},loadingIcon:{},classes:{},icons:{},closeButtonAriaLabel:{},defaultRichColors:{type:Boolean}},emits:[`update:heights`,`update:height`,`removeToast`],setup(e,{emit:a}){let m=e,b=a,x=t(null),w=t(null),D=t(!1),O=t(!1),k=t(!1),A=t(!1),j=t(!1),N=t(0),P=t(0),F=t(m.toast.duration||m.duration||I),L=t(null),R=t(null),ie=d(()=>m.index===0),se=d(()=>m.index+1<=m.visibleToasts),V=d(()=>m.toast.type),H=d(()=>m.toast.dismissible!==!1),ce=d(()=>m.toast.class||``),le=d(()=>m.descriptionClass||``),U=d(()=>{let e=m.toast.position||m.position,t=m.heights.filter(t=>t.position===e).findIndex(e=>e.toastId===m.toast.id);return t>=0?t:0}),ue=d(()=>{let e=m.toast.position||m.position;return m.heights.filter(t=>t.position===e).reduce((e,t,n)=>n>=U.value?e:e+t.height,0)}),W=d(()=>U.value*m.gap+ue.value||0),de=d(()=>m.toast.closeButton??m.closeButton),fe=d(()=>m.toast.duration||m.duration||I),G=t(0),K=t(0),q=t(null),J=d(()=>m.position.split(`-`)),pe=d(()=>J.value[0]),me=d(()=>J.value[1]),he=d(()=>typeof m.toast.title!=`string`),ge=d(()=>typeof m.toast.description!=`string`),{isDocumentHidden:Y}=z(),X=d(()=>V.value&&V.value===`loading`);g(()=>{D.value=!0,F.value=fe.value}),p(async()=>{if(!D.value||!R.value)return;await v();let e=R.value,t=e.style.height;e.style.height=`auto`;let n=e.getBoundingClientRect().height;e.style.height=t,P.value=n,b(`update:height`,{toastId:m.toast.id,height:n,position:m.toast.position||m.position})});function Z(){O.value=!0,N.value=W.value,setTimeout(()=>{b(`removeToast`,m.toast)},ne)}function Q(){if(X.value||!H.value)return{};Z(),m.toast.onDismiss?.(m.toast)}function $(e){e.button!==2&&(X.value||!H.value||(L.value=new Date,N.value=W.value,e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(k.value=!0,q.value={x:e.clientX,y:e.clientY})))}function _e(){if(A.value||!H.value)return;q.value=null;let e=Number(R.value?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(R.value?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),n=new Date().getTime()-(L.value?.getTime()||0),r=x.value===`x`?e:t,i=Math.abs(r)/n;if(Math.abs(r)>=te||i>.11){N.value=W.value,m.toast.onDismiss?.(m.toast),x.value===`x`?w.value=e>0?`right`:`left`:w.value=t>0?`down`:`up`,Z(),A.value=!0;return}else R.value?.style.setProperty(`--swipe-amount-x`,`0px`),R.value?.style.setProperty(`--swipe-amount-y`,`0px`);j.value=!1,k.value=!1,x.value=null}function ve(e){if(!q.value||!H.value||(window?.getSelection()?.toString()?.length??!1))return;let t=e.clientY-q.value.y,n=e.clientX-q.value.x,r=m.swipeDirections??re(m.position);!x.value&&(Math.abs(n)>1||Math.abs(t)>1)&&(x.value=Math.abs(n)>Math.abs(t)?`x`:`y`);let i={x:0,y:0},a=e=>1/(1.5+Math.abs(e)/20);if(x.value===`y`){if(r.includes(`top`)||r.includes(`bottom`))if(r.includes(`top`)&&t<0||r.includes(`bottom`)&&t>0)i.y=t;else{let e=t*a(t);i.y=Math.abs(e)<Math.abs(t)?e:t}}else if(x.value===`x`&&(r.includes(`left`)||r.includes(`right`)))if(r.includes(`left`)&&n<0||r.includes(`right`)&&n>0)i.x=n;else{let e=n*a(n);i.x=Math.abs(e)<Math.abs(n)?e:n}(Math.abs(i.x)>0||Math.abs(i.y)>0)&&(j.value=!0),R.value?.style.setProperty(`--swipe-amount-x`,`${i.x}px`),R.value?.style.setProperty(`--swipe-amount-y`,`${i.y}px`)}g(()=>{if(D.value=!0,!R.value)return;let e=R.value.getBoundingClientRect().height;P.value=e,b(`update:heights`,[{toastId:m.toast.id,height:e,position:m.toast.position},...m.heights])}),S(()=>{R.value&&b(`removeToast`,m.toast)}),p(e=>{if(m.toast.promise&&V.value===`loading`||m.toast.duration===1/0||m.toast.type===`loading`)return;let t;m.expanded||m.interacting||Y.value?(()=>{if(K.value<G.value){let e=new Date().getTime()-G.value;F.value-=e}K.value=new Date().getTime()})():F.value!==1/0&&(G.value=new Date().getTime(),t=setTimeout(()=>{m.toast.onAutoClose?.(m.toast),Z()},F.value)),e(()=>{clearTimeout(t)})}),ee(()=>m.toast.delete,e=>{e!==void 0&&e&&(Z(),m.toast.onDismiss?.(m.toast))},{deep:!0});function ye(){k.value=!1,x.value=null,q.value=null}return(e,t)=>(y(),n(`li`,{tabindex:`0`,ref_key:`toastRef`,ref:R,class:i(c(B)(m.class,ce.value,e.classes?.toast,e.toast.classes?.toast,e.classes?.[V.value],e.toast?.classes?.[V.value])),"data-sonner-toast":``,"data-rich-colors":e.toast.richColors??e.defaultRichColors,"data-styled":!(e.toast.component||e.toast?.unstyled||e.unstyled),"data-mounted":D.value,"data-promise":!!e.toast.promise,"data-swiped":j.value,"data-removed":O.value,"data-visible":se.value,"data-y-position":pe.value,"data-x-position":me.value,"data-index":e.index,"data-front":ie.value,"data-swiping":k.value,"data-dismissible":H.value,"data-type":V.value,"data-invert":e.toast.invert||e.invert,"data-swipe-out":A.value,"data-swipe-direction":w.value,"data-expanded":!!(e.expanded||e.expandByDefault&&D.value),"data-testid":e.toast.testId,style:l({"--index":e.index,"--toasts-before":e.index,"--z-index":e.toasts.length-e.index,"--offset":`${O.value?N.value:W.value}px`,"--initial-height":e.expandByDefault?`auto`:`${P.value}px`,...e.style,...m.toast.style}),onDragend:ye,onPointerdown:$,onPointerup:_e,onPointermove:ve},[de.value&&!e.toast.component&&V.value!==`loading`?(y(),n(`button`,{key:0,"aria-label":e.closeButtonAriaLabel||`Close toast`,"data-disabled":X.value,"data-close-button":`true`,"data-close-button-position":e.closeButtonPosition,class:i(c(B)(e.classes?.closeButton,e.toast?.classes?.closeButton)),onClick:Q},[e.icons?.close?(y(),u(h(e.icons?.close),{key:0})):_(e.$slots,`close-icon`,{key:1})],10,oe)):f(`v-if`,!0),e.toast.component?(y(),u(h(e.toast.component),C({key:1},e.toast.componentProps,{onCloseToast:Q,isPaused:e.$props.expanded||e.$props.interacting||c(Y)}),null,16,[`isPaused`])):(y(),n(T,{key:2},[V.value!==`default`||e.toast.icon||e.toast.promise?(y(),n(`div`,{key:0,"data-icon":``,class:i(c(B)(e.classes?.icon,e.toast?.classes?.icon))},[e.toast.icon?(y(),u(h(e.toast.icon),{key:0})):(y(),n(T,{key:1},[V.value===`loading`?_(e.$slots,`loading-icon`,{key:0}):V.value===`success`?_(e.$slots,`success-icon`,{key:1}):V.value===`error`?_(e.$slots,`error-icon`,{key:2}):V.value===`warning`?_(e.$slots,`warning-icon`,{key:3}):V.value===`info`?_(e.$slots,`info-icon`,{key:4}):f(`v-if`,!0)],64))],2)):f(`v-if`,!0),r(`div`,{"data-content":``,class:i(c(B)(e.classes?.content,e.toast?.classes?.content))},[r(`div`,{"data-title":``,class:i(c(B)(e.classes?.title,e.toast.classes?.title))},[he.value?(y(),u(h(e.toast.title),s(C({key:0},e.toast.componentProps)),null,16)):(y(),n(T,{key:1},[o(E(e.toast.title),1)],64))],2),e.toast.description?(y(),n(`div`,{key:0,"data-description":``,class:i(c(B)(e.descriptionClass,le.value,e.classes?.description,e.toast.classes?.description))},[ge.value?(y(),u(h(e.toast.description),s(C({key:0},e.toast.componentProps)),null,16)):(y(),n(T,{key:1},[o(E(e.toast.description),1)],64))],2)):f(`v-if`,!0)],2),e.toast.cancel?(y(),n(`button`,{key:1,style:l(e.toast.cancelButtonStyle||e.cancelButtonStyle),class:i(c(B)(e.classes?.cancelButton,e.toast.classes?.cancelButton)),"data-button":``,"data-cancel":``,onClick:t[0]||=t=>{c(M)(e.toast.cancel)&&H.value&&(e.toast.cancel.onClick?.(t),Z())}},E(c(M)(e.toast.cancel)?e.toast.cancel?.label:e.toast.cancel),7)):f(`v-if`,!0),e.toast.action?(y(),n(`button`,{key:2,style:l(e.toast.actionButtonStyle||e.actionButtonStyle),class:i(c(B)(e.classes?.actionButton,e.toast.classes?.actionButton)),"data-button":``,"data-action":``,onClick:t[1]||=t=>{c(M)(e.toast.action)&&(e.toast.action.onClick?.(t),!t.defaultPrevented&&Z())}},E(c(M)(e.toast.action)?e.toast.action?.label:e.toast.action),7)):f(`v-if`,!0)],64))],46,ae))}}),V=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},H={},ce={xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stoke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`};function le(e,t){return y(),n(`svg`,ce,t[0]||=[r(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),r(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)])}var U=V(H,[[`render`,le]]),ue=[`data-visible`],W={class:`sonner-spinner`},de=a({__name:`Loader`,props:{visible:{type:Boolean}},setup(e){let t=Array(12).fill(0);return(e,i)=>(y(),n(`div`,{class:`sonner-loading-wrapper`,"data-visible":e.visible},[r(`div`,W,[(y(!0),n(T,null,m(c(t),e=>(y(),n(`div`,{key:`spinner-bar-${e}`,class:`sonner-loading-bar`}))),128))])],8,ue))}}),fe={},G={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function K(e,t){return y(),n(`svg`,G,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,"clip-rule":`evenodd`},null,-1)])}var q=V(fe,[[`render`,K]]),J={},pe={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function me(e,t){return y(),n(`svg`,pe,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,"clip-rule":`evenodd`},null,-1)])}var he=V(J,[[`render`,me]]),ge={},Y={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`};function X(e,t){return y(),n(`svg`,Y,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,"clip-rule":`evenodd`},null,-1)])}var Z=V(ge,[[`render`,X]]),Q={},$={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function _e(e,t){return y(),n(`svg`,$,t[0]||=[r(`path`,{"fill-rule":`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,"clip-rule":`evenodd`},null,-1)])}var ve=V(Q,[[`render`,_e]]),ye=[`aria-label`],be=[`data-sonner-theme`,`dir`,`data-theme`,`data-rich-colors`,`data-y-position`,`data-x-position`],xe=typeof window<`u`&&typeof document<`u`;function Se(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}var Ce=a({name:`Toaster`,inheritAttrs:!1,__name:`Toaster`,props:{id:{},invert:{type:Boolean,default:!1},theme:{default:`light`},position:{default:`bottom-right`},closeButtonPosition:{default:`top-left`},hotkey:{default:()=>[`altKey`,`KeyT`]},richColors:{type:Boolean,default:!1},expand:{type:Boolean,default:!1},duration:{},gap:{default:R},visibleToasts:{default:N},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:``},style:{},offset:{default:P},mobileOffset:{default:F},dir:{default:`auto`},swipeDirections:{},icons:{},containerAriaLabel:{default:`Notifications`}},setup(e){let a=e,o=b(),s=t([]),h=d(()=>a.id?s.value.filter(e=>e.toasterId===a.id):s.value.filter(e=>!e.toasterId));function ee(e,t){return h.value.filter(n=>!n.position&&t===0||n.position===e)}let g=d(()=>{let e=h.value.filter(e=>e.position).map(e=>e.position);return e.length>0?Array.from(new Set([a.position].concat(e))):[a.position]}),S=d(()=>{let e={};return g.value.forEach(t=>{e[t]=s.value.filter(e=>e.position===t)}),e}),E=t([]),D=t({}),k=t(!1);p(()=>{g.value.forEach(e=>{e in D.value||(D.value[e]=!1)})});let A=t(a.theme===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:a.theme),j=t(null),M=t(null),N=t(!1),P=a.hotkey.join(`+`).replace(/Key/g,``).replace(/Digit/g,``);function F(e){s.value.find(t=>t.id===e.id)?.delete||O.dismiss(e.id),s.value=s.value.filter(({id:t})=>t!==e.id),setTimeout(()=>{s.value.find(t=>t.id===e.id)||(E.value=E.value.filter(t=>t.toastId!==e.id))},ne+50)}function I(e){N.value&&!e.currentTarget?.contains?.(e.relatedTarget)&&(N.value=!1,M.value&&=(M.value.focus({preventScroll:!0}),null))}function R(e){e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||N.value||(N.value=!0,M.value=e.relatedTarget)}function te(e){e.target&&e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||(k.value=!0)}p(e=>{e(O.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{s.value=s.value.map(t=>t.id===e.id?{...t,delete:!0}:t)});return}v(()=>{let t=s.value.findIndex(t=>t.id===e.id);t===-1?s.value=[e,...s.value]:s.value=[...s.value.slice(0,t),{...s.value[t],...e},...s.value.slice(t+1)]})}))}),p(e=>{if(typeof window>`u`)return;if(a.theme!==`system`){A.value=a.theme;return}let t=window.matchMedia(`(prefers-color-scheme: dark)`),n=e=>{A.value=e?`dark`:`light`};n(t.matches);let r=e=>{n(e.matches)};try{t.addEventListener(`change`,r)}catch{t.addListener(r)}e(()=>{try{t.removeEventListener(`change`,r)}catch{t.removeListener(r)}})}),p(()=>{j.value&&M.value&&(M.value.focus({preventScroll:!0}),M.value=null,N.value=!1)}),p(()=>{s.value.length<=1&&Object.keys(D.value).forEach(e=>{D.value[e]=!1})}),p(e=>{function t(e){let t=a.hotkey.every(t=>e[t]||e.code===t),n=Array.isArray(j.value)?j.value[0]:j.value;t&&(g.value.forEach(e=>{D.value[e]=!0}),n?.focus());let r=document.activeElement===j.value||n?.contains(document.activeElement);e.code===`Escape`&&r&&g.value.forEach(e=>{D.value[e]=!1})}xe&&(document.addEventListener(`keydown`,t),e(()=>{document.removeEventListener(`keydown`,t)}))});function z(e){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!0}function B(e){if(!k.value){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!1}}function re(){Object.keys(D.value).forEach(e=>{D.value[e]=!1})}function ae(){k.value=!1}function oe(e){E.value=e}function V(e){let t=E.value.findIndex(t=>t.toastId===e.toastId);if(t!==-1)E.value[t]=e;else{let t=E.value.findIndex(t=>t.position===e.position);t===-1?E.value.unshift(e):E.value.splice(t,0,e)}}return(e,t)=>(y(),n(T,null,[f(` Remove item from normal navigation flow, only available via hotkey `),r(`section`,{"aria-label":`${e.containerAriaLabel} ${c(P)}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`},[(y(!0),n(T,null,m(g.value,(t,r)=>(y(),n(`ol`,C({key:t,ref_for:!0,ref_key:`listRef`,ref:j,"data-sonner-toaster":``,"data-sonner-theme":A.value,class:a.class,dir:e.dir===`auto`?Se():e.dir,tabIndex:-1,"data-theme":e.theme,"data-rich-colors":e.richColors,"data-y-position":t.split(`-`)[0],"data-x-position":t.split(`-`)[1],style:{"--front-toast-height":`${E.value[0]?.height||0}px`,"--width":`${c(L)}px`,"--gap":`${e.gap}px`,...e.style,...c(o).style,...c(ie)(e.offset,e.mobileOffset)}},{ref_for:!0},e.$attrs,{onBlur:I,onFocus:R,onMouseenter:z,onMousemove:z,onMouseleave:B,onDragend:re,onPointerdown:te,onPointerup:ae}),[(y(!0),n(T,null,m(ee(t,r),(n,r)=>(y(),u(se,{key:n.id,heights:E.value,icons:e.icons,index:r,toast:n,defaultRichColors:e.richColors,duration:e.toastOptions?.duration??e.duration,class:i(e.toastOptions?.class??``),descriptionClass:e.toastOptions?.descriptionClass,invert:e.invert,visibleToasts:e.visibleToasts,closeButton:e.toastOptions?.closeButton??e.closeButton,interacting:k.value,position:t,closeButtonPosition:e.toastOptions?.closeButtonPosition??e.closeButtonPosition,style:l(e.toastOptions?.style),unstyled:e.toastOptions?.unstyled,classes:e.toastOptions?.classes,cancelButtonStyle:e.toastOptions?.cancelButtonStyle,actionButtonStyle:e.toastOptions?.actionButtonStyle,"close-button-aria-label":e.toastOptions?.closeButtonAriaLabel,toasts:S.value[t],expandByDefault:e.expand,gap:e.gap,expanded:D.value[t]||!1,swipeDirections:a.swipeDirections,"onUpdate:heights":oe,"onUpdate:height":V,onRemoveToast:F},{"close-icon":w(()=>[_(e.$slots,`close-icon`,{},()=>[x(U)])]),"loading-icon":w(()=>[_(e.$slots,`loading-icon`,{},()=>[x(de,{visible:n.type===`loading`},null,8,[`visible`])])]),"success-icon":w(()=>[_(e.$slots,`success-icon`,{},()=>[x(q)])]),"error-icon":w(()=>[_(e.$slots,`error-icon`,{},()=>[x(ve)])]),"warning-icon":w(()=>[_(e.$slots,`warning-icon`,{},()=>[x(Z)])]),"info-icon":w(()=>[_(e.$slots,`info-icon`,{},()=>[x(he)])]),_:2},1032,[`heights`,`icons`,`index`,`toast`,`defaultRichColors`,`duration`,`class`,`descriptionClass`,`invert`,`visibleToasts`,`closeButton`,`interacting`,`position`,`closeButtonPosition`,`style`,`unstyled`,`classes`,`cancelButtonStyle`,`actionButtonStyle`,`close-button-aria-label`,`toasts`,`expandByDefault`,`gap`,`expanded`,`swipeDirections`]))),128))],16,be))),128))],8,ye)],2112))}});export{j as n,Ce as t};
@@ -0,0 +1 @@
1
+ import{b as e}from"./Teleport-DizRK5O3.js";var t=e(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]);export{t};
@@ -1 +1 @@
1
- import{Dt as e}from"./button-Cnkbp_6J.js";var t=2e3;function n(){let n=e(!1);async function i(e){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(e):r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{try{return r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{return!1}}}return{copied:n,copy:i}}function r(e){let t=document.createElement(`textarea`);if(t.value=e,t.style.cssText=`position:fixed;left:-9999px;opacity:0`,document.body.appendChild(t),t.select(),!document.execCommand(`copy`))throw Error(`execCommand copy failed`);document.body.removeChild(t)}export{n as t};
1
+ import{Dt as e}from"./button-Ul8WlrM5.js";var t=2e3;function n(){let n=e(!1);async function i(e){try{return navigator.clipboard?.writeText?await navigator.clipboard.writeText(e):r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{try{return r(e),n.value=!0,setTimeout(()=>{n.value=!1},t),!0}catch{return!1}}}return{copied:n,copy:i}}function r(e){let t=document.createElement(`textarea`);if(t.value=e,t.style.cssText=`position:fixed;left:-9999px;opacity:0`,document.body.appendChild(t),t.select(),!document.execCommand(`copy`))throw Error(`execCommand copy failed`);document.body.removeChild(t)}export{n as t};
@@ -1 +1 @@
1
- import{_t as e,y as t}from"./button-Cnkbp_6J.js";var n=0;function r(){e(e=>{if(!t)return;let r=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,r[0]??i()),document.body.insertAdjacentElement(`beforeend`,r[1]??i()),n++,e(()=>{n===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),n--})})}function i(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}export{r as t};
1
+ import{_t as e,y as t}from"./button-Ul8WlrM5.js";var n=0;function r(){e(e=>{if(!t)return;let r=document.querySelectorAll(`[data-reka-focus-guard]`);document.body.insertAdjacentElement(`afterbegin`,r[0]??i()),document.body.insertAdjacentElement(`beforeend`,r[1]??i()),n++,e(()=>{n===1&&document.querySelectorAll(`[data-reka-focus-guard]`).forEach(e=>e.remove()),n--})})}function i(){let e=document.createElement(`span`);return e.setAttribute(`data-reka-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}export{r as t};
@@ -0,0 +1 @@
1
+ import{Nt as e,V as t,u as n}from"./button-Ul8WlrM5.js";function r(r){return t(()=>e(r)?!!n(r)?.closest(`form`):!0)}export{r as t};
@@ -1 +1 @@
1
- import{A as e,Dt as t,k as n}from"./button-Cnkbp_6J.js";import{n as r}from"./lib-H3YI7EK4.js";var i=3;function a(){let a=t(i),o=t(!1);async function s(){o.value=!0;try{a.value=(await n.setLogRetention(a.value)).days,r.success(`日志保留天数已更新`)}catch(t){r.error(e(t,`更新保留天数失败`))}finally{o.value=!1}}async function c(){try{let{days:e}=await n.getLogRetention();a.value=e}catch(t){r.error(e(t,`加载保留天数失败,使用默认值`))}}return{retentionDays:a,retentionSaving:o,saveRetention:s,loadRetention:c}}export{a as t};
1
+ import{A as e,Dt as t,k as n}from"./button-Ul8WlrM5.js";import{n as r}from"./lib-Hhs3NqfD.js";var i=3;function a(){let a=t(i),o=t(!1);async function s(){o.value=!0;try{a.value=(await n.setLogRetention(a.value)).days,r.success(`日志保留天数已更新`)}catch(t){r.error(e(t,`更新保留天数失败`))}finally{o.value=!1}}async function c(){try{let{days:e}=await n.getLogRetention();a.value=e}catch(t){r.error(e(t,`加载保留天数失败,使用默认值`))}}return{retentionDays:a,retentionSaving:o,saveRetention:s,loadRetention:c}}export{a as t};
@@ -0,0 +1 @@
1
+ import{Dt as e,V as t}from"./button-Ul8WlrM5.js";import{h as n}from"./Teleport-DizRK5O3.js";function r(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function i(r){let i=n({nonce:e()});return t(()=>r?.value||i.nonce?.value)}export{r as n,i as t};
@@ -0,0 +1 @@
1
+ import{b as e}from"./Teleport-DizRK5O3.js";var t=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
@@ -5,28 +5,28 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/admin/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>LLM Simple Router</title>
8
- <script type="module" crossorigin src="/admin/assets/index-Ct718O93.js"></script>
9
- <link rel="modulepreload" crossorigin href="/admin/assets/button-Cnkbp_6J.js">
10
- <link rel="modulepreload" crossorigin href="/admin/assets/Teleport-BQgusr9g.js">
11
- <link rel="modulepreload" crossorigin href="/admin/assets/PopperContent-B7IuAHeq.js">
12
- <link rel="modulepreload" crossorigin href="/admin/assets/check-BuqB5Nyb.js">
8
+ <script type="module" crossorigin src="/admin/assets/index-MedWZMHB.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/admin/assets/button-Ul8WlrM5.js">
10
+ <link rel="modulepreload" crossorigin href="/admin/assets/Teleport-DizRK5O3.js">
11
+ <link rel="modulepreload" crossorigin href="/admin/assets/PopperContent-gzzf1XHe.js">
12
+ <link rel="modulepreload" crossorigin href="/admin/assets/check-7ahK--N4.js">
13
13
  <link rel="modulepreload" crossorigin href="/admin/assets/ohash.D__AXeF1-D5e5Wyzx.js">
14
- <link rel="modulepreload" crossorigin href="/admin/assets/Collection-rQ4eIYfa.js">
15
- <link rel="modulepreload" crossorigin href="/admin/assets/VisuallyHidden-Con10z4F.js">
16
- <link rel="modulepreload" crossorigin href="/admin/assets/useNonce-DvAdQ48J.js">
17
- <link rel="modulepreload" crossorigin href="/admin/assets/useFocusGuards-luoLXnwV.js">
18
- <link rel="modulepreload" crossorigin href="/admin/assets/useFormControl-Da4ViGZF.js">
19
- <link rel="modulepreload" crossorigin href="/admin/assets/SelectValue-BWlgUZa3.js">
20
- <link rel="modulepreload" crossorigin href="/admin/assets/file-text-D0K8Hovo.js">
21
- <link rel="modulepreload" crossorigin href="/admin/assets/loader-circle-Be82FnVY.js">
22
- <link rel="modulepreload" crossorigin href="/admin/assets/x-DB22csQl.js">
23
- <link rel="modulepreload" crossorigin href="/admin/assets/DialogTitle-DeFTnmgC.js">
24
- <link rel="modulepreload" crossorigin href="/admin/assets/alert-dialog-2Db6Z7JQ.js">
25
- <link rel="modulepreload" crossorigin href="/admin/assets/PopoverTrigger-Cyqik5SE.js">
26
- <link rel="modulepreload" crossorigin href="/admin/assets/lib-H3YI7EK4.js">
27
- <link rel="modulepreload" crossorigin href="/admin/assets/badge-DEhZfeI0.js">
14
+ <link rel="modulepreload" crossorigin href="/admin/assets/Collection-BRt7YxN8.js">
15
+ <link rel="modulepreload" crossorigin href="/admin/assets/VisuallyHidden-5AozJQza.js">
16
+ <link rel="modulepreload" crossorigin href="/admin/assets/useNonce-BfwUJ1Ci.js">
17
+ <link rel="modulepreload" crossorigin href="/admin/assets/useFocusGuards-A-9V2Y-b.js">
18
+ <link rel="modulepreload" crossorigin href="/admin/assets/useFormControl-DEO19lRe.js">
19
+ <link rel="modulepreload" crossorigin href="/admin/assets/SelectValue-C0-LzGQY.js">
20
+ <link rel="modulepreload" crossorigin href="/admin/assets/file-text-Bj3ZIo-E.js">
21
+ <link rel="modulepreload" crossorigin href="/admin/assets/loader-circle-5TJUukEe.js">
22
+ <link rel="modulepreload" crossorigin href="/admin/assets/x-Cfopt3QL.js">
23
+ <link rel="modulepreload" crossorigin href="/admin/assets/DialogTitle-23q73lwF.js">
24
+ <link rel="modulepreload" crossorigin href="/admin/assets/alert-dialog-DlKUuTPe.js">
25
+ <link rel="modulepreload" crossorigin href="/admin/assets/PopoverTrigger-Bj65uUbv.js">
26
+ <link rel="modulepreload" crossorigin href="/admin/assets/lib-Hhs3NqfD.js">
27
+ <link rel="modulepreload" crossorigin href="/admin/assets/badge-9KJEMa53.js">
28
28
  <link rel="modulepreload" crossorigin href="/admin/assets/format-Dln15Luw.js">
29
- <link rel="stylesheet" crossorigin href="/admin/assets/index-xjdbFKXJ.css">
29
+ <link rel="stylesheet" crossorigin href="/admin/assets/index-Bz_ZaXNn.css">
30
30
  </head>
31
31
  <body>
32
32
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-simple-router",
3
- "version": "0.7.1",
3
+ "version": "0.8.2",
4
4
  "description": "LLM API proxy router with OpenAI/Anthropic support, model mapping, retry strategies, and admin dashboard",
5
5
  "license": "MIT",
6
6
  "author": "ZZzzswszzZZ",