llm-simple-router 0.3.5 → 0.3.7

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 (55) hide show
  1. package/README.md +11 -0
  2. package/dist/admin/services.d.ts +7 -0
  3. package/dist/admin/services.js +63 -0
  4. package/dist/cli.js +0 -0
  5. package/dist/index.js +0 -0
  6. package/frontend-dist/assets/{CardContent-B40ArIqh.js → CardContent-CucI6u41.js} +1 -1
  7. package/frontend-dist/assets/{CardHeader-BjkSQf27.js → CardHeader-d-DYsWxe.js} +1 -1
  8. package/frontend-dist/assets/{CardTitle-DjG2kSF3.js → CardTitle-CIDEQkWB.js} +1 -1
  9. package/frontend-dist/assets/{Checkbox-Cw0rq2D9.js → Checkbox-CybCw3zS.js} +1 -1
  10. package/frontend-dist/assets/{CollapsibleTrigger-BvYqNbGA.js → CollapsibleTrigger-BFNhb19_.js} +1 -1
  11. package/frontend-dist/assets/{Collection-CQ4pV54w.js → Collection-DUBb4r6h.js} +1 -1
  12. package/frontend-dist/assets/{Dashboard-CsOTBnSa.js → Dashboard-DLB6iqH1.js} +1 -1
  13. package/frontend-dist/assets/{DialogTitle-PS2W-IfG.js → DialogTitle-Dq-5o7nJ.js} +1 -1
  14. package/frontend-dist/assets/{Input-toxjzsir.js → Input-HN3Il0-c.js} +1 -1
  15. package/frontend-dist/assets/{Label-fZNDEQjf.js → Label-CXAeFn-r.js} +1 -1
  16. package/frontend-dist/assets/{LogResponseViewer-B9kSncNr.js → LogResponseViewer-CyBzv02a.js} +1 -1
  17. package/frontend-dist/assets/{Login-DRm9DHq1.js → Login-Br3qsdxf.js} +1 -1
  18. package/frontend-dist/assets/{Logs-NHxebwmP.js → Logs-Cu_IftdS.js} +1 -1
  19. package/frontend-dist/assets/ModelMappings-DXC0sNH5.js +1 -0
  20. package/frontend-dist/assets/{Monitor-B5TYWb2n.js → Monitor-CKlid1sC.js} +1 -1
  21. package/frontend-dist/assets/{PopperContent-BvKlcZEO.js → PopperContent-CnZejY31.js} +1 -1
  22. package/frontend-dist/assets/Providers-8CHhW4uH.js +1 -0
  23. package/frontend-dist/assets/{ProxyEnhancement-B2OliarO.js → ProxyEnhancement-CkYeXwgH.js} +1 -1
  24. package/frontend-dist/assets/RetryRules-Csb7u9W4.js +1 -0
  25. package/frontend-dist/assets/RouterKeys-C6YIufmj.js +1 -0
  26. package/frontend-dist/assets/{RovingFocusItem-DHfpgdA0.js → RovingFocusItem-B7ZIkplZ.js} +1 -1
  27. package/frontend-dist/assets/{SelectValue-CFf_mD9E.js → SelectValue-B32pgmTJ.js} +1 -1
  28. package/frontend-dist/assets/{Setup-BMjCT-Tl.js → Setup-Df9IQo2x.js} +1 -1
  29. package/frontend-dist/assets/{Switch-BGCQ7puL.js → Switch-CLeo7H6d.js} +1 -1
  30. package/frontend-dist/assets/{TableHeader-DAOs6nSA.js → TableHeader-BpscAtT3.js} +1 -1
  31. package/frontend-dist/assets/{TabsTrigger-DBAYM66g.js → TabsTrigger-DErAbTuM.js} +1 -1
  32. package/frontend-dist/assets/{VisuallyHidden-Dh7svQf3.js → VisuallyHidden-CJBR3YB3.js} +1 -1
  33. package/frontend-dist/assets/{VisuallyHiddenInput-BOaRSEmd.js → VisuallyHiddenInput-Cy0VuE1l.js} +1 -1
  34. package/frontend-dist/assets/{alert-dialog-CUNSZqpB.js → alert-dialog-BAR1JRmT.js} +1 -1
  35. package/frontend-dist/assets/{button-CfQs66fX.js → button-D54q76GQ.js} +1 -1
  36. package/frontend-dist/assets/{client-DvdghFBq.js → client-Mb8fy_bC.js} +2 -2
  37. package/frontend-dist/assets/{createLucideIcon-DCD7INQf.js → createLucideIcon-CCmQ9QKM.js} +1 -1
  38. package/frontend-dist/assets/{dialog-DQFRGKR6.js → dialog-DSH5k5Kj.js} +1 -1
  39. package/frontend-dist/assets/{index--5JhZIwi.js → index-BQBtSfem.js} +1 -1
  40. package/frontend-dist/assets/index-H-lnTkMr.css +1 -0
  41. package/frontend-dist/assets/{lib-BJNsNHLO.js → lib-BgOqOzXI.js} +1 -1
  42. package/frontend-dist/assets/{ohash.D__AXeF1-CNudYmrX.js → ohash.D__AXeF1-p4vp6Svt.js} +1 -1
  43. package/frontend-dist/assets/{useClipboard-aPMKfK25.js → useClipboard-DO-38TXr.js} +1 -1
  44. package/frontend-dist/assets/{useForwardExpose-u2vjohek.js → useForwardExpose-CzQFheaD.js} +1 -1
  45. package/frontend-dist/assets/useNonce-CU-NirfM.js +1 -0
  46. package/frontend-dist/assets/x-DEJ1xpi5.js +1 -0
  47. package/frontend-dist/index.html +7 -7
  48. package/package.json +1 -1
  49. package/frontend-dist/assets/ModelMappings-DV0RPnO2.js +0 -1
  50. package/frontend-dist/assets/Providers-D1Rauu-D.js +0 -1
  51. package/frontend-dist/assets/RetryRules-BWu2gicT.js +0 -1
  52. package/frontend-dist/assets/RouterKeys-BP6XJCVa.js +0 -1
  53. package/frontend-dist/assets/index-Bx15k8FA.css +0 -1
  54. package/frontend-dist/assets/useNonce-ClXGIm-8.js +0 -1
  55. package/frontend-dist/assets/x-ILQhskuj.js +0 -1
@@ -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(65% .14 30);--color-role-tool-bg:oklch(94% .04 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(25% .05 30);--color-role-tool:oklch(60% .1 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)}.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}.left-1\/2{left:50%}.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-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-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-1{margin-left:.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display: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}.aspect-square{aspect-ratio:1}.size-10{width:2.5rem;height:2.5rem}.size-2\.5{width:.625rem;height:.625rem}.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-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-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-80{max-height:20rem}.max-h-\[40vh\]{max-height:40vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1\/3{width:33.3333%}.w-12{width:3rem}.w-16{width:4rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[260px\]{width:260px}.w-fit{width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[140px\]{max-width:140px}.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-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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))}@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-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.select-all{-webkit-user-select:all;user-select:all}.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-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}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.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))}.self-start{align-self:flex-start}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.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-none{border-radius:0}.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-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-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-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{background-color:var(--color-info)}.bg-info-light{background-color:var(--color-info-light)}.bg-muted{background-color:var(--muted)}.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-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-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-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pl-1\.5{padding-left:.375rem}.pl-2\.5{padding-left:.625rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.pt-2{padding-top:.5rem}.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}.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-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}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.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-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-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-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-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))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-25{opacity:.25}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.bg-blend-color{background-blend-mode:color}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px 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-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)}.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)}.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-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-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-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-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-80:hover{opacity:.8}.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-teal-600:is(.dark *){background-color:var(--color-teal-600)}.dark\:bg-teal-700:is(.dark *){background-color:var(--color-teal-700)}.dark\:bg-teal-800:is(.dark *){background-color:var(--color-teal-800)}.dark\:bg-teal-900:is(.dark *){background-color:var(--color-teal-900)}.dark\:text-danger:is(.dark *){color:var(--color-danger)}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-info:is(.dark *){color:var(--color-info)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-success:is(.dark *){color:var(--color-success)}.dark\:text-teal-100:is(.dark *){color:var(--color-teal-100)}.dark\:text-teal-200:is(.dark *){color:var(--color-teal-200)}.dark\:text-teal-300:is(.dark *){color:var(--color-teal-300)}.dark\:text-warning:is(.dark *){color:var(--color-warning)}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:after\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}.dark\:hover\:text-foreground:hover:is(.dark *){color:var(--foreground)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:var(--input)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:var(--foreground)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:var(--foreground)}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state=active]:is(.dark *){border-color:#0000}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]:is(.dark *){background-color:#0000}@media (width>=640px){.sm\:max-w-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-2{grid-template-columns:repeat(2,minmax(0,1fr))}.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,B as t,D as n,F as r,H as i,K as a,L as o,M as s,R as c,S as l,Y as u,_ as d,_t as f,b as p,f as m,g as h,gt as g,h as _,j as ee,k as v,mt as y,ot as b,q as x,v as S,vt as C,x as w,y as T,yt as E}from"./client-DvdghFBq.js";import{D,b as O,i as k,r as A}from"./button-CfQs66fX.js";var j=l({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=O(t,`class`);return(i,a)=>(r(),d(y(k),v({"data-slot":`badge`,"data-variant":e.variant,class:y(A)(y(M)({variant:e.variant}),t.class)},y(n)),{default:u(()=>[c(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),M=D(`h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}}),N=1,P=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:N++,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=(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let i=Promise.resolve(e instanceof Function?e():e),a=r!==void 0,o,s=i.then(async e=>{if(o=[`resolve`,e],n(e))a=!1,this.create({id:r,type:`default`,message:e});else if(I(e)&&!e.ok){a=!1;let i=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,o=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(e instanceof Error){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(t.success!==void 0){a=!1;let i=typeof t.success==`function`?await t.success(e):t.success,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`success`,description:o,...s})}}).catch(async e=>{if(o=[`reject`,e],t.error!==void 0){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),t.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||N++,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 F(e,t){let n=t?.id||N++;return P.create({message:e,id:n,type:`default`,...t}),n}var I=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,L=Object.assign(F,{success:P.success,info:P.info,warning:P.warning,error:P.error,custom:P.custom,message:P.message,promise:P.promise,dismiss:P.dismiss,loading:P.loading},{getHistory:()=>P.toasts,getToasts:()=>P.getActiveToasts()});function R(e){return e.label!==void 0}var z=3,B=`24px`,V=`16px`,H=4e3,te=356,U=14,ne=45,re=200;function ie(){let e=b(!1);return x(()=>{let t=()=>{e.value=document.hidden};return document.addEventListener(`visibilitychange`,t),()=>window.removeEventListener(`visibilitychange`,t)}),{isDocumentHidden:e}}function W(...e){return e.filter(Boolean).join(` `)}function ae(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}function G(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?V:B;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 oe=[`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`],se=[`aria-label`,`data-disabled`,`data-close-button-position`],ce=l({__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(n,{emit:i}){let o=n,l=i,u=b(null),w=b(null),D=b(!1),O=b(!1),k=b(!1),A=b(!1),j=b(!1),M=b(0),N=b(0),P=b(o.toast.duration||o.duration||H),F=b(null),I=b(null),L=_(()=>o.index===0),z=_(()=>o.index+1<=o.visibleToasts),B=_(()=>o.toast.type),V=_(()=>o.toast.dismissible!==!1),te=_(()=>o.toast.class||``),U=_(()=>o.descriptionClass||``),G=_(()=>{let e=o.toast.position||o.position,t=o.heights.filter(t=>t.position===e).findIndex(e=>e.toastId===o.toast.id);return t>=0?t:0}),ce=_(()=>{let e=o.toast.position||o.position;return o.heights.filter(t=>t.position===e).reduce((e,t,n)=>n>=G.value?e:e+t.height,0)}),K=_(()=>G.value*o.gap+ce.value||0),le=_(()=>o.toast.closeButton??o.closeButton),ue=_(()=>o.toast.duration||o.duration||H),q=b(0),J=b(0),Y=b(null),X=_(()=>o.position.split(`-`)),de=_(()=>X.value[0]),fe=_(()=>X.value[1]),pe=_(()=>typeof o.toast.title!=`string`),me=_(()=>typeof o.toast.description!=`string`),{isDocumentHidden:Z}=ie(),Q=_(()=>B.value&&B.value===`loading`);s(()=>{D.value=!0,P.value=ue.value}),x(async()=>{if(!D.value||!I.value)return;await e();let t=I.value,n=t.style.height;t.style.height=`auto`;let r=t.getBoundingClientRect().height;t.style.height=n,N.value=r,l(`update:height`,{toastId:o.toast.id,height:r,position:o.toast.position||o.position})});function $(){O.value=!0,M.value=K.value,setTimeout(()=>{l(`removeToast`,o.toast)},re)}function he(){if(Q.value||!V.value)return{};$(),o.toast.onDismiss?.(o.toast)}function ge(e){e.button!==2&&(Q.value||!V.value||(F.value=new Date,M.value=K.value,e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(k.value=!0,Y.value={x:e.clientX,y:e.clientY})))}function _e(){if(A.value||!V.value)return;Y.value=null;let e=Number(I.value?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(I.value?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),n=new Date().getTime()-(F.value?.getTime()||0),r=u.value===`x`?e:t,i=Math.abs(r)/n;if(Math.abs(r)>=ne||i>.11){M.value=K.value,o.toast.onDismiss?.(o.toast),u.value===`x`?w.value=e>0?`right`:`left`:w.value=t>0?`down`:`up`,$(),A.value=!0;return}else I.value?.style.setProperty(`--swipe-amount-x`,`0px`),I.value?.style.setProperty(`--swipe-amount-y`,`0px`);j.value=!1,k.value=!1,u.value=null}function ve(e){if(!Y.value||!V.value||(window?.getSelection()?.toString()?.length??!1))return;let t=e.clientY-Y.value.y,n=e.clientX-Y.value.x,r=o.swipeDirections??ae(o.position);!u.value&&(Math.abs(n)>1||Math.abs(t)>1)&&(u.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(u.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(u.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),I.value?.style.setProperty(`--swipe-amount-x`,`${i.x}px`),I.value?.style.setProperty(`--swipe-amount-y`,`${i.y}px`)}s(()=>{if(D.value=!0,!I.value)return;let e=I.value.getBoundingClientRect().height;N.value=e,l(`update:heights`,[{toastId:o.toast.id,height:e,position:o.toast.position},...o.heights])}),ee(()=>{I.value&&l(`removeToast`,o.toast)}),x(e=>{if(o.toast.promise&&B.value===`loading`||o.toast.duration===1/0||o.toast.type===`loading`)return;let t;o.expanded||o.interacting||Z.value?(()=>{if(J.value<q.value){let e=new Date().getTime()-q.value;P.value-=e}J.value=new Date().getTime()})():P.value!==1/0&&(q.value=new Date().getTime(),t=setTimeout(()=>{o.toast.onAutoClose?.(o.toast),$()},P.value)),e(()=>{clearTimeout(t)})}),a(()=>o.toast.delete,e=>{e!==void 0&&e&&($(),o.toast.onDismiss?.(o.toast))},{deep:!0});function ye(){k.value=!1,u.value=null,Y.value=null}return(e,n)=>(r(),T(`li`,{tabindex:`0`,ref_key:`toastRef`,ref:I,class:g(y(W)(o.class,te.value,e.classes?.toast,e.toast.classes?.toast,e.classes?.[B.value],e.toast?.classes?.[B.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":z.value,"data-y-position":de.value,"data-x-position":fe.value,"data-index":e.index,"data-front":L.value,"data-swiping":k.value,"data-dismissible":V.value,"data-type":B.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:C({"--index":e.index,"--toasts-before":e.index,"--z-index":e.toasts.length-e.index,"--offset":`${O.value?M.value:K.value}px`,"--initial-height":e.expandByDefault?`auto`:`${N.value}px`,...e.style,...o.toast.style}),onDragend:ye,onPointerdown:ge,onPointerup:_e,onPointermove:ve},[le.value&&!e.toast.component&&B.value!==`loading`?(r(),T(`button`,{key:0,"aria-label":e.closeButtonAriaLabel||`Close toast`,"data-disabled":Q.value,"data-close-button":`true`,"data-close-button-position":e.closeButtonPosition,class:g(y(W)(e.classes?.closeButton,e.toast?.classes?.closeButton)),onClick:he},[e.icons?.close?(r(),d(t(e.icons?.close),{key:0})):c(e.$slots,`close-icon`,{key:1})],10,se)):S(`v-if`,!0),e.toast.component?(r(),d(t(e.toast.component),v({key:1},e.toast.componentProps,{onCloseToast:he,isPaused:e.$props.expanded||e.$props.interacting||y(Z)}),null,16,[`isPaused`])):(r(),T(m,{key:2},[B.value!==`default`||e.toast.icon||e.toast.promise?(r(),T(`div`,{key:0,"data-icon":``,class:g(y(W)(e.classes?.icon,e.toast?.classes?.icon))},[e.toast.icon?(r(),d(t(e.toast.icon),{key:0})):(r(),T(m,{key:1},[B.value===`loading`?c(e.$slots,`loading-icon`,{key:0}):B.value===`success`?c(e.$slots,`success-icon`,{key:1}):B.value===`error`?c(e.$slots,`error-icon`,{key:2}):B.value===`warning`?c(e.$slots,`warning-icon`,{key:3}):B.value===`info`?c(e.$slots,`info-icon`,{key:4}):S(`v-if`,!0)],64))],2)):S(`v-if`,!0),h(`div`,{"data-content":``,class:g(y(W)(e.classes?.content,e.toast?.classes?.content))},[h(`div`,{"data-title":``,class:g(y(W)(e.classes?.title,e.toast.classes?.title))},[pe.value?(r(),d(t(e.toast.title),f(v({key:0},e.toast.componentProps)),null,16)):(r(),T(m,{key:1},[p(E(e.toast.title),1)],64))],2),e.toast.description?(r(),T(`div`,{key:0,"data-description":``,class:g(y(W)(e.descriptionClass,U.value,e.classes?.description,e.toast.classes?.description))},[me.value?(r(),d(t(e.toast.description),f(v({key:0},e.toast.componentProps)),null,16)):(r(),T(m,{key:1},[p(E(e.toast.description),1)],64))],2)):S(`v-if`,!0)],2),e.toast.cancel?(r(),T(`button`,{key:1,style:C(e.toast.cancelButtonStyle||e.cancelButtonStyle),class:g(y(W)(e.classes?.cancelButton,e.toast.classes?.cancelButton)),"data-button":``,"data-cancel":``,onClick:n[0]||=t=>{y(R)(e.toast.cancel)&&V.value&&(e.toast.cancel.onClick?.(t),$())}},E(y(R)(e.toast.cancel)?e.toast.cancel?.label:e.toast.cancel),7)):S(`v-if`,!0),e.toast.action?(r(),T(`button`,{key:2,style:C(e.toast.actionButtonStyle||e.actionButtonStyle),class:g(y(W)(e.classes?.actionButton,e.toast.classes?.actionButton)),"data-button":``,"data-action":``,onClick:n[1]||=t=>{y(R)(e.toast.action)&&(e.toast.action.onClick?.(t),!t.defaultPrevented&&$())}},E(y(R)(e.toast.action)?e.toast.action?.label:e.toast.action),7)):S(`v-if`,!0)],64))],46,oe))}}),K=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},le={},ue={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 q(e,t){return r(),T(`svg`,ue,t[0]||=[h(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),h(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)])}var J=K(le,[[`render`,q]]),Y=[`data-visible`],X={class:`sonner-spinner`},de=l({__name:`Loader`,props:{visible:{type:Boolean}},setup(e){let t=Array(12).fill(0);return(e,n)=>(r(),T(`div`,{class:`sonner-loading-wrapper`,"data-visible":e.visible},[h(`div`,X,[(r(!0),T(m,null,o(y(t),e=>(r(),T(`div`,{key:`spinner-bar-${e}`,class:`sonner-loading-bar`}))),128))])],8,Y))}}),fe={},pe={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function me(e,t){return r(),T(`svg`,pe,t[0]||=[h(`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 Z=K(fe,[[`render`,me]]),Q={},$={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function he(e,t){return r(),T(`svg`,$,t[0]||=[h(`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 ge=K(Q,[[`render`,he]]),_e={},ve={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`};function ye(e,t){return r(),T(`svg`,ve,t[0]||=[h(`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 be=K(_e,[[`render`,ye]]),xe={},Se={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function Ce(e,t){return r(),T(`svg`,Se,t[0]||=[h(`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 we=K(xe,[[`render`,Ce]]),Te=[`aria-label`],Ee=[`data-sonner-theme`,`dir`,`data-theme`,`data-rich-colors`,`data-y-position`,`data-x-position`],De=typeof window<`u`&&typeof document<`u`;function Oe(){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 ke=l({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:U},visibleToasts:{default:z},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:``},style:{},offset:{default:B},mobileOffset:{default:V},dir:{default:`auto`},swipeDirections:{},icons:{},containerAriaLabel:{default:`Notifications`}},setup(t){let n=t,a=i(),s=b([]),l=_(()=>n.id?s.value.filter(e=>e.toasterId===n.id):s.value.filter(e=>!e.toasterId));function f(e,t){return l.value.filter(n=>!n.position&&t===0||n.position===e)}let p=_(()=>{let e=l.value.filter(e=>e.position).map(e=>e.position);return e.length>0?Array.from(new Set([n.position].concat(e))):[n.position]}),ee=_(()=>{let e={};return p.value.forEach(t=>{e[t]=s.value.filter(e=>e.position===t)}),e}),E=b([]),D=b({}),O=b(!1);x(()=>{p.value.forEach(e=>{e in D.value||(D.value[e]=!1)})});let k=b(n.theme===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:n.theme),A=b(null),j=b(null),M=b(!1),N=n.hotkey.join(`+`).replace(/Key/g,``).replace(/Digit/g,``);function F(e){s.value.find(t=>t.id===e.id)?.delete||P.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))},re+50)}function I(e){M.value&&!e.currentTarget?.contains?.(e.relatedTarget)&&(M.value=!1,j.value&&=(j.value.focus({preventScroll:!0}),null))}function L(e){e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M.value||(M.value=!0,j.value=e.relatedTarget)}function R(e){e.target&&e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||(O.value=!0)}x(t=>{t(P.subscribe(t=>{if(t.dismiss){requestAnimationFrame(()=>{s.value=s.value.map(e=>e.id===t.id?{...e,delete:!0}:e)});return}e(()=>{let e=s.value.findIndex(e=>e.id===t.id);e===-1?s.value=[t,...s.value]:s.value=[...s.value.slice(0,e),{...s.value[e],...t},...s.value.slice(e+1)]})}))}),x(e=>{if(typeof window>`u`)return;if(n.theme!==`system`){k.value=n.theme;return}let t=window.matchMedia(`(prefers-color-scheme: dark)`),r=e=>{k.value=e?`dark`:`light`};r(t.matches);let i=e=>{r(e.matches)};try{t.addEventListener(`change`,i)}catch{t.addListener(i)}e(()=>{try{t.removeEventListener(`change`,i)}catch{t.removeListener(i)}})}),x(()=>{A.value&&j.value&&(j.value.focus({preventScroll:!0}),j.value=null,M.value=!1)}),x(()=>{s.value.length<=1&&Object.keys(D.value).forEach(e=>{D.value[e]=!1})}),x(e=>{function t(e){let t=n.hotkey.every(t=>e[t]||e.code===t),r=Array.isArray(A.value)?A.value[0]:A.value;t&&(p.value.forEach(e=>{D.value[e]=!0}),r?.focus());let i=document.activeElement===A.value||r?.contains(document.activeElement);e.code===`Escape`&&i&&p.value.forEach(e=>{D.value[e]=!1})}De&&(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(!O.value){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!1}}function V(){Object.keys(D.value).forEach(e=>{D.value[e]=!1})}function H(){O.value=!1}function U(e){E.value=e}function ne(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)=>(r(),T(m,null,[S(` Remove item from normal navigation flow, only available via hotkey `),h(`section`,{"aria-label":`${e.containerAriaLabel} ${y(N)}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`},[(r(!0),T(m,null,o(p.value,(t,i)=>(r(),T(`ol`,v({key:t,ref_for:!0,ref_key:`listRef`,ref:A,"data-sonner-toaster":``,"data-sonner-theme":k.value,class:n.class,dir:e.dir===`auto`?Oe():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":`${y(te)}px`,"--gap":`${e.gap}px`,...e.style,...y(a).style,...y(G)(e.offset,e.mobileOffset)}},{ref_for:!0},e.$attrs,{onBlur:I,onFocus:L,onMouseenter:z,onMousemove:z,onMouseleave:B,onDragend:V,onPointerdown:R,onPointerup:H}),[(r(!0),T(m,null,o(f(t,i),(i,a)=>(r(),d(ce,{key:i.id,heights:E.value,icons:e.icons,index:a,toast:i,defaultRichColors:e.richColors,duration:e.toastOptions?.duration??e.duration,class:g(e.toastOptions?.class??``),descriptionClass:e.toastOptions?.descriptionClass,invert:e.invert,visibleToasts:e.visibleToasts,closeButton:e.toastOptions?.closeButton??e.closeButton,interacting:O.value,position:t,closeButtonPosition:e.toastOptions?.closeButtonPosition??e.closeButtonPosition,style:C(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:ee.value[t],expandByDefault:e.expand,gap:e.gap,expanded:D.value[t]||!1,swipeDirections:n.swipeDirections,"onUpdate:heights":U,"onUpdate:height":ne,onRemoveToast:F},{"close-icon":u(()=>[c(e.$slots,`close-icon`,{},()=>[w(J)])]),"loading-icon":u(()=>[c(e.$slots,`loading-icon`,{},()=>[w(de,{visible:i.type===`loading`},null,8,[`visible`])])]),"success-icon":u(()=>[c(e.$slots,`success-icon`,{},()=>[w(Z)])]),"error-icon":u(()=>[c(e.$slots,`error-icon`,{},()=>[w(we)])]),"warning-icon":u(()=>[c(e.$slots,`warning-icon`,{},()=>[w(be)])]),"info-icon":u(()=>[c(e.$slots,`info-icon`,{},()=>[w(ge)])]),_: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,Ee))),128))],8,Te)],2112))}});export{L as n,j as r,ke as t};
1
+ import{A as e,B as t,D as n,F as r,H as i,K as a,L as o,M as s,R as c,S as l,Y as u,_ as d,_t as f,b as p,f as m,g as h,gt as g,h as _,j as ee,k as v,mt as y,ot as b,q as x,v as S,vt as C,x as w,y as T,yt as E}from"./client-Mb8fy_bC.js";import{D,b as O,i as k,r as A}from"./button-D54q76GQ.js";var j=l({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{type:[Boolean,null,String,Object,Array]}},setup(e){let t=e,n=O(t,`class`);return(i,a)=>(r(),d(y(k),v({"data-slot":`badge`,"data-variant":e.variant,class:y(A)(y(M)({variant:e.variant}),t.class)},y(n)),{default:u(()=>[c(i.$slots,`default`)]),_:3},16,[`data-variant`,`class`]))}}),M=D(`h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! group/badge inline-flex w-fit shrink-0 items-center justify-center overflow-hidden whitespace-nowrap focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20`,outline:`border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}}),N=1,P=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:N++,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=(e,t)=>{if(!t)return;let r;t.loading!==void 0&&(r=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let i=Promise.resolve(e instanceof Function?e():e),a=r!==void 0,o,s=i.then(async e=>{if(o=[`resolve`,e],n(e))a=!1,this.create({id:r,type:`default`,message:e});else if(I(e)&&!e.ok){a=!1;let i=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,o=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(e instanceof Error){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}else if(t.success!==void 0){a=!1;let i=typeof t.success==`function`?await t.success(e):t.success,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`success`,description:o,...s})}}).catch(async e=>{if(o=[`reject`,e],t.error!==void 0){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!n(i)?i:{message:i||``,id:r||``};this.create({id:r,type:`error`,description:o,...s})}}).finally(()=>{a&&(this.dismiss(r),r=void 0),t.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||N++,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 F(e,t){let n=t?.id||N++;return P.create({message:e,id:n,type:`default`,...t}),n}var I=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,L=Object.assign(F,{success:P.success,info:P.info,warning:P.warning,error:P.error,custom:P.custom,message:P.message,promise:P.promise,dismiss:P.dismiss,loading:P.loading},{getHistory:()=>P.toasts,getToasts:()=>P.getActiveToasts()});function R(e){return e.label!==void 0}var z=3,B=`24px`,V=`16px`,H=4e3,te=356,U=14,ne=45,re=200;function ie(){let e=b(!1);return x(()=>{let t=()=>{e.value=document.hidden};return document.addEventListener(`visibilitychange`,t),()=>window.removeEventListener(`visibilitychange`,t)}),{isDocumentHidden:e}}function W(...e){return e.filter(Boolean).join(` `)}function ae(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}function G(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?V:B;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 oe=[`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`],se=[`aria-label`,`data-disabled`,`data-close-button-position`],ce=l({__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(n,{emit:i}){let o=n,l=i,u=b(null),w=b(null),D=b(!1),O=b(!1),k=b(!1),A=b(!1),j=b(!1),M=b(0),N=b(0),P=b(o.toast.duration||o.duration||H),F=b(null),I=b(null),L=_(()=>o.index===0),z=_(()=>o.index+1<=o.visibleToasts),B=_(()=>o.toast.type),V=_(()=>o.toast.dismissible!==!1),te=_(()=>o.toast.class||``),U=_(()=>o.descriptionClass||``),G=_(()=>{let e=o.toast.position||o.position,t=o.heights.filter(t=>t.position===e).findIndex(e=>e.toastId===o.toast.id);return t>=0?t:0}),ce=_(()=>{let e=o.toast.position||o.position;return o.heights.filter(t=>t.position===e).reduce((e,t,n)=>n>=G.value?e:e+t.height,0)}),K=_(()=>G.value*o.gap+ce.value||0),le=_(()=>o.toast.closeButton??o.closeButton),ue=_(()=>o.toast.duration||o.duration||H),q=b(0),J=b(0),Y=b(null),X=_(()=>o.position.split(`-`)),de=_(()=>X.value[0]),fe=_(()=>X.value[1]),pe=_(()=>typeof o.toast.title!=`string`),me=_(()=>typeof o.toast.description!=`string`),{isDocumentHidden:Z}=ie(),Q=_(()=>B.value&&B.value===`loading`);s(()=>{D.value=!0,P.value=ue.value}),x(async()=>{if(!D.value||!I.value)return;await e();let t=I.value,n=t.style.height;t.style.height=`auto`;let r=t.getBoundingClientRect().height;t.style.height=n,N.value=r,l(`update:height`,{toastId:o.toast.id,height:r,position:o.toast.position||o.position})});function $(){O.value=!0,M.value=K.value,setTimeout(()=>{l(`removeToast`,o.toast)},re)}function he(){if(Q.value||!V.value)return{};$(),o.toast.onDismiss?.(o.toast)}function ge(e){e.button!==2&&(Q.value||!V.value||(F.value=new Date,M.value=K.value,e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(k.value=!0,Y.value={x:e.clientX,y:e.clientY})))}function _e(){if(A.value||!V.value)return;Y.value=null;let e=Number(I.value?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(I.value?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),n=new Date().getTime()-(F.value?.getTime()||0),r=u.value===`x`?e:t,i=Math.abs(r)/n;if(Math.abs(r)>=ne||i>.11){M.value=K.value,o.toast.onDismiss?.(o.toast),u.value===`x`?w.value=e>0?`right`:`left`:w.value=t>0?`down`:`up`,$(),A.value=!0;return}else I.value?.style.setProperty(`--swipe-amount-x`,`0px`),I.value?.style.setProperty(`--swipe-amount-y`,`0px`);j.value=!1,k.value=!1,u.value=null}function ve(e){if(!Y.value||!V.value||(window?.getSelection()?.toString()?.length??!1))return;let t=e.clientY-Y.value.y,n=e.clientX-Y.value.x,r=o.swipeDirections??ae(o.position);!u.value&&(Math.abs(n)>1||Math.abs(t)>1)&&(u.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(u.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(u.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),I.value?.style.setProperty(`--swipe-amount-x`,`${i.x}px`),I.value?.style.setProperty(`--swipe-amount-y`,`${i.y}px`)}s(()=>{if(D.value=!0,!I.value)return;let e=I.value.getBoundingClientRect().height;N.value=e,l(`update:heights`,[{toastId:o.toast.id,height:e,position:o.toast.position},...o.heights])}),ee(()=>{I.value&&l(`removeToast`,o.toast)}),x(e=>{if(o.toast.promise&&B.value===`loading`||o.toast.duration===1/0||o.toast.type===`loading`)return;let t;o.expanded||o.interacting||Z.value?(()=>{if(J.value<q.value){let e=new Date().getTime()-q.value;P.value-=e}J.value=new Date().getTime()})():P.value!==1/0&&(q.value=new Date().getTime(),t=setTimeout(()=>{o.toast.onAutoClose?.(o.toast),$()},P.value)),e(()=>{clearTimeout(t)})}),a(()=>o.toast.delete,e=>{e!==void 0&&e&&($(),o.toast.onDismiss?.(o.toast))},{deep:!0});function ye(){k.value=!1,u.value=null,Y.value=null}return(e,n)=>(r(),T(`li`,{tabindex:`0`,ref_key:`toastRef`,ref:I,class:g(y(W)(o.class,te.value,e.classes?.toast,e.toast.classes?.toast,e.classes?.[B.value],e.toast?.classes?.[B.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":z.value,"data-y-position":de.value,"data-x-position":fe.value,"data-index":e.index,"data-front":L.value,"data-swiping":k.value,"data-dismissible":V.value,"data-type":B.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:C({"--index":e.index,"--toasts-before":e.index,"--z-index":e.toasts.length-e.index,"--offset":`${O.value?M.value:K.value}px`,"--initial-height":e.expandByDefault?`auto`:`${N.value}px`,...e.style,...o.toast.style}),onDragend:ye,onPointerdown:ge,onPointerup:_e,onPointermove:ve},[le.value&&!e.toast.component&&B.value!==`loading`?(r(),T(`button`,{key:0,"aria-label":e.closeButtonAriaLabel||`Close toast`,"data-disabled":Q.value,"data-close-button":`true`,"data-close-button-position":e.closeButtonPosition,class:g(y(W)(e.classes?.closeButton,e.toast?.classes?.closeButton)),onClick:he},[e.icons?.close?(r(),d(t(e.icons?.close),{key:0})):c(e.$slots,`close-icon`,{key:1})],10,se)):S(`v-if`,!0),e.toast.component?(r(),d(t(e.toast.component),v({key:1},e.toast.componentProps,{onCloseToast:he,isPaused:e.$props.expanded||e.$props.interacting||y(Z)}),null,16,[`isPaused`])):(r(),T(m,{key:2},[B.value!==`default`||e.toast.icon||e.toast.promise?(r(),T(`div`,{key:0,"data-icon":``,class:g(y(W)(e.classes?.icon,e.toast?.classes?.icon))},[e.toast.icon?(r(),d(t(e.toast.icon),{key:0})):(r(),T(m,{key:1},[B.value===`loading`?c(e.$slots,`loading-icon`,{key:0}):B.value===`success`?c(e.$slots,`success-icon`,{key:1}):B.value===`error`?c(e.$slots,`error-icon`,{key:2}):B.value===`warning`?c(e.$slots,`warning-icon`,{key:3}):B.value===`info`?c(e.$slots,`info-icon`,{key:4}):S(`v-if`,!0)],64))],2)):S(`v-if`,!0),h(`div`,{"data-content":``,class:g(y(W)(e.classes?.content,e.toast?.classes?.content))},[h(`div`,{"data-title":``,class:g(y(W)(e.classes?.title,e.toast.classes?.title))},[pe.value?(r(),d(t(e.toast.title),f(v({key:0},e.toast.componentProps)),null,16)):(r(),T(m,{key:1},[p(E(e.toast.title),1)],64))],2),e.toast.description?(r(),T(`div`,{key:0,"data-description":``,class:g(y(W)(e.descriptionClass,U.value,e.classes?.description,e.toast.classes?.description))},[me.value?(r(),d(t(e.toast.description),f(v({key:0},e.toast.componentProps)),null,16)):(r(),T(m,{key:1},[p(E(e.toast.description),1)],64))],2)):S(`v-if`,!0)],2),e.toast.cancel?(r(),T(`button`,{key:1,style:C(e.toast.cancelButtonStyle||e.cancelButtonStyle),class:g(y(W)(e.classes?.cancelButton,e.toast.classes?.cancelButton)),"data-button":``,"data-cancel":``,onClick:n[0]||=t=>{y(R)(e.toast.cancel)&&V.value&&(e.toast.cancel.onClick?.(t),$())}},E(y(R)(e.toast.cancel)?e.toast.cancel?.label:e.toast.cancel),7)):S(`v-if`,!0),e.toast.action?(r(),T(`button`,{key:2,style:C(e.toast.actionButtonStyle||e.actionButtonStyle),class:g(y(W)(e.classes?.actionButton,e.toast.classes?.actionButton)),"data-button":``,"data-action":``,onClick:n[1]||=t=>{y(R)(e.toast.action)&&(e.toast.action.onClick?.(t),!t.defaultPrevented&&$())}},E(y(R)(e.toast.action)?e.toast.action?.label:e.toast.action),7)):S(`v-if`,!0)],64))],46,oe))}}),K=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},le={},ue={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 q(e,t){return r(),T(`svg`,ue,t[0]||=[h(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`},null,-1),h(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`},null,-1)])}var J=K(le,[[`render`,q]]),Y=[`data-visible`],X={class:`sonner-spinner`},de=l({__name:`Loader`,props:{visible:{type:Boolean}},setup(e){let t=Array(12).fill(0);return(e,n)=>(r(),T(`div`,{class:`sonner-loading-wrapper`,"data-visible":e.visible},[h(`div`,X,[(r(!0),T(m,null,o(y(t),e=>(r(),T(`div`,{key:`spinner-bar-${e}`,class:`sonner-loading-bar`}))),128))])],8,Y))}}),fe={},pe={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function me(e,t){return r(),T(`svg`,pe,t[0]||=[h(`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 Z=K(fe,[[`render`,me]]),Q={},$={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function he(e,t){return r(),T(`svg`,$,t[0]||=[h(`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 ge=K(Q,[[`render`,he]]),_e={},ve={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`};function ye(e,t){return r(),T(`svg`,ve,t[0]||=[h(`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 be=K(_e,[[`render`,ye]]),xe={},Se={xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`};function Ce(e,t){return r(),T(`svg`,Se,t[0]||=[h(`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 we=K(xe,[[`render`,Ce]]),Te=[`aria-label`],Ee=[`data-sonner-theme`,`dir`,`data-theme`,`data-rich-colors`,`data-y-position`,`data-x-position`],De=typeof window<`u`&&typeof document<`u`;function Oe(){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 ke=l({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:U},visibleToasts:{default:z},closeButton:{type:Boolean,default:!1},toastOptions:{default:()=>({})},class:{default:``},style:{},offset:{default:B},mobileOffset:{default:V},dir:{default:`auto`},swipeDirections:{},icons:{},containerAriaLabel:{default:`Notifications`}},setup(t){let n=t,a=i(),s=b([]),l=_(()=>n.id?s.value.filter(e=>e.toasterId===n.id):s.value.filter(e=>!e.toasterId));function f(e,t){return l.value.filter(n=>!n.position&&t===0||n.position===e)}let p=_(()=>{let e=l.value.filter(e=>e.position).map(e=>e.position);return e.length>0?Array.from(new Set([n.position].concat(e))):[n.position]}),ee=_(()=>{let e={};return p.value.forEach(t=>{e[t]=s.value.filter(e=>e.position===t)}),e}),E=b([]),D=b({}),O=b(!1);x(()=>{p.value.forEach(e=>{e in D.value||(D.value[e]=!1)})});let k=b(n.theme===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:n.theme),A=b(null),j=b(null),M=b(!1),N=n.hotkey.join(`+`).replace(/Key/g,``).replace(/Digit/g,``);function F(e){s.value.find(t=>t.id===e.id)?.delete||P.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))},re+50)}function I(e){M.value&&!e.currentTarget?.contains?.(e.relatedTarget)&&(M.value=!1,j.value&&=(j.value.focus({preventScroll:!0}),null))}function L(e){e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||M.value||(M.value=!0,j.value=e.relatedTarget)}function R(e){e.target&&e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||(O.value=!0)}x(t=>{t(P.subscribe(t=>{if(t.dismiss){requestAnimationFrame(()=>{s.value=s.value.map(e=>e.id===t.id?{...e,delete:!0}:e)});return}e(()=>{let e=s.value.findIndex(e=>e.id===t.id);e===-1?s.value=[t,...s.value]:s.value=[...s.value.slice(0,e),{...s.value[e],...t},...s.value.slice(e+1)]})}))}),x(e=>{if(typeof window>`u`)return;if(n.theme!==`system`){k.value=n.theme;return}let t=window.matchMedia(`(prefers-color-scheme: dark)`),r=e=>{k.value=e?`dark`:`light`};r(t.matches);let i=e=>{r(e.matches)};try{t.addEventListener(`change`,i)}catch{t.addListener(i)}e(()=>{try{t.removeEventListener(`change`,i)}catch{t.removeListener(i)}})}),x(()=>{A.value&&j.value&&(j.value.focus({preventScroll:!0}),j.value=null,M.value=!1)}),x(()=>{s.value.length<=1&&Object.keys(D.value).forEach(e=>{D.value[e]=!1})}),x(e=>{function t(e){let t=n.hotkey.every(t=>e[t]||e.code===t),r=Array.isArray(A.value)?A.value[0]:A.value;t&&(p.value.forEach(e=>{D.value[e]=!0}),r?.focus());let i=document.activeElement===A.value||r?.contains(document.activeElement);e.code===`Escape`&&i&&p.value.forEach(e=>{D.value[e]=!1})}De&&(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(!O.value){let t=e.currentTarget,n=t.getAttribute(`data-y-position`)+`-`+t.getAttribute(`data-x-position`);D.value[n]=!1}}function V(){Object.keys(D.value).forEach(e=>{D.value[e]=!1})}function H(){O.value=!1}function U(e){E.value=e}function ne(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)=>(r(),T(m,null,[S(` Remove item from normal navigation flow, only available via hotkey `),h(`section`,{"aria-label":`${e.containerAriaLabel} ${y(N)}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`},[(r(!0),T(m,null,o(p.value,(t,i)=>(r(),T(`ol`,v({key:t,ref_for:!0,ref_key:`listRef`,ref:A,"data-sonner-toaster":``,"data-sonner-theme":k.value,class:n.class,dir:e.dir===`auto`?Oe():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":`${y(te)}px`,"--gap":`${e.gap}px`,...e.style,...y(a).style,...y(G)(e.offset,e.mobileOffset)}},{ref_for:!0},e.$attrs,{onBlur:I,onFocus:L,onMouseenter:z,onMousemove:z,onMouseleave:B,onDragend:V,onPointerdown:R,onPointerup:H}),[(r(!0),T(m,null,o(f(t,i),(i,a)=>(r(),d(ce,{key:i.id,heights:E.value,icons:e.icons,index:a,toast:i,defaultRichColors:e.richColors,duration:e.toastOptions?.duration??e.duration,class:g(e.toastOptions?.class??``),descriptionClass:e.toastOptions?.descriptionClass,invert:e.invert,visibleToasts:e.visibleToasts,closeButton:e.toastOptions?.closeButton??e.closeButton,interacting:O.value,position:t,closeButtonPosition:e.toastOptions?.closeButtonPosition??e.closeButtonPosition,style:C(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:ee.value[t],expandByDefault:e.expand,gap:e.gap,expanded:D.value[t]||!1,swipeDirections:n.swipeDirections,"onUpdate:heights":U,"onUpdate:height":ne,onRemoveToast:F},{"close-icon":u(()=>[c(e.$slots,`close-icon`,{},()=>[w(J)])]),"loading-icon":u(()=>[c(e.$slots,`loading-icon`,{},()=>[w(de,{visible:i.type===`loading`},null,8,[`visible`])])]),"success-icon":u(()=>[c(e.$slots,`success-icon`,{},()=>[w(Z)])]),"error-icon":u(()=>[c(e.$slots,`error-icon`,{},()=>[w(we)])]),"warning-icon":u(()=>[c(e.$slots,`warning-icon`,{},()=>[w(be)])]),"info-icon":u(()=>[c(e.$slots,`info-icon`,{},()=>[w(ge)])]),_: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,Ee))),128))],8,Te)],2112))}});export{L as n,j as r,ke as t};
@@ -1 +1 @@
1
- import{t as e}from"./createLucideIcon-DCD7INQf.js";var t=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]);function n(e){return typeof e==`string`?`'${e}'`:new r().serialize(e)}var r=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function i(e,t){return e===t||n(e)===n(t)}export{t as n,i as t};
1
+ import{t as e}from"./createLucideIcon-CCmQ9QKM.js";var t=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]);function n(e){return typeof e==`string`?`'${e}'`:new r().serialize(e)}var r=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function i(e,t){return e===t||n(e)===n(t)}export{t as n,i as t};
@@ -1 +1 @@
1
- import{ot as e}from"./client-DvdghFBq.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{ot as e}from"./client-Mb8fy_bC.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{C as e,P as t,h as n,ot as r,pt as i}from"./client-DvdghFBq.js";import{l as a}from"./button-CfQs66fX.js";function o(){let o=e(),s=r(),c=n(()=>l());t(()=>{c.value!==l()&&i(s)});function l(){return s.value&&`$el`in s.value&&[`#text`,`#comment`].includes(s.value.$el.nodeName)?s.value.$el.nextElementSibling:a(s)}let u=Object.assign({},o.exposed),d={};for(let e in o.props)Object.defineProperty(d,e,{enumerable:!0,configurable:!0,get:()=>o.props[e]});if(Object.keys(u).length>0)for(let e in u)Object.defineProperty(d,e,{enumerable:!0,configurable:!0,get:()=>u[e]});Object.defineProperty(d,`$el`,{enumerable:!0,configurable:!0,get:()=>o.vnode.el}),o.exposed=d;function f(e){if(s.value=e,e&&(Object.defineProperty(d,`$el`,{enumerable:!0,configurable:!0,get:()=>e instanceof Element?e:e.$el}),!(e instanceof Element)&&!Object.hasOwn(e,`$el`))){let t=e.$.exposed,n=Object.assign({},d);for(let e in t)Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:()=>t[e]});o.exposed=n}}return{forwardRef:f,currentRef:s,currentElement:c}}export{o as t};
1
+ import{C as e,P as t,h as n,ot as r,pt as i}from"./client-Mb8fy_bC.js";import{l as a}from"./button-D54q76GQ.js";function o(){let o=e(),s=r(),c=n(()=>l());t(()=>{c.value!==l()&&i(s)});function l(){return s.value&&`$el`in s.value&&[`#text`,`#comment`].includes(s.value.$el.nodeName)?s.value.$el.nextElementSibling:a(s)}let u=Object.assign({},o.exposed),d={};for(let e in o.props)Object.defineProperty(d,e,{enumerable:!0,configurable:!0,get:()=>o.props[e]});if(Object.keys(u).length>0)for(let e in u)Object.defineProperty(d,e,{enumerable:!0,configurable:!0,get:()=>u[e]});Object.defineProperty(d,`$el`,{enumerable:!0,configurable:!0,get:()=>o.vnode.el}),o.exposed=d;function f(e){if(s.value=e,e&&(Object.defineProperty(d,`$el`,{enumerable:!0,configurable:!0,get:()=>e instanceof Element?e:e.$el}),!(e instanceof Element)&&!Object.hasOwn(e,`$el`))){let t=e.$.exposed,n=Object.assign({},d);for(let e in t)Object.defineProperty(n,e,{enumerable:!0,configurable:!0,get:()=>t[e]});o.exposed=n}}return{forwardRef:f,currentRef:s,currentElement:c}}export{o as t};
@@ -0,0 +1 @@
1
+ import{h as e,ot as t}from"./client-Mb8fy_bC.js";import{v as n}from"./Collection-DUBb4r6h.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:t()});return e(()=>r?.value||i.nonce?.value)}export{r as n,i as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-CCmQ9QKM.js";var t=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};
@@ -5,13 +5,13 @@
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>frontend</title>
8
- <script type="module" crossorigin src="/admin/assets/index--5JhZIwi.js"></script>
9
- <link rel="modulepreload" crossorigin href="/admin/assets/client-DvdghFBq.js">
10
- <link rel="modulepreload" crossorigin href="/admin/assets/button-CfQs66fX.js">
11
- <link rel="modulepreload" crossorigin href="/admin/assets/createLucideIcon-DCD7INQf.js">
12
- <link rel="modulepreload" crossorigin href="/admin/assets/x-ILQhskuj.js">
13
- <link rel="modulepreload" crossorigin href="/admin/assets/lib-BJNsNHLO.js">
14
- <link rel="stylesheet" crossorigin href="/admin/assets/index-Bx15k8FA.css">
8
+ <script type="module" crossorigin src="/admin/assets/index-BQBtSfem.js"></script>
9
+ <link rel="modulepreload" crossorigin href="/admin/assets/client-Mb8fy_bC.js">
10
+ <link rel="modulepreload" crossorigin href="/admin/assets/button-D54q76GQ.js">
11
+ <link rel="modulepreload" crossorigin href="/admin/assets/createLucideIcon-CCmQ9QKM.js">
12
+ <link rel="modulepreload" crossorigin href="/admin/assets/x-DEJ1xpi5.js">
13
+ <link rel="modulepreload" crossorigin href="/admin/assets/lib-BgOqOzXI.js">
14
+ <link rel="stylesheet" crossorigin href="/admin/assets/index-H-lnTkMr.css">
15
15
  </head>
16
16
  <body>
17
17
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llm-simple-router",
3
- "version": "0.3.5",
3
+ "version": "0.3.7",
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",
@@ -1 +0,0 @@
1
- import{F as e,L as t,M as n,S as r,Y as i,_ as a,b as o,f as s,g as c,h as l,mt as u,ot as d,t as f,u as p,v as m,x as h,y as g,yt as _}from"./client-DvdghFBq.js";import{a as v,i as y,n as b,r as x,t as S}from"./SelectValue-CFf_mD9E.js";import{n as C}from"./button-CfQs66fX.js";import{n as w,r as T,t as E}from"./CollapsibleTrigger-BvYqNbGA.js";import{a as D,i as O,o as k,r as A,s as j,t as M}from"./dialog-DQFRGKR6.js";import{a as N,c as P,i as F,n as I,o as L,r as R,t as z}from"./alert-dialog-CUNSZqpB.js";import{t as B}from"./Label-fZNDEQjf.js";import{n as V,r as H}from"./lib-BJNsNHLO.js";import{n as ee,t as te}from"./CardContent-B40ArIqh.js";import{t as U}from"./CardHeader-BjkSQf27.js";import{t as W}from"./CardTitle-DjG2kSF3.js";import{t as G}from"./Input-toxjzsir.js";var K={class:`border rounded-lg p-3 space-y-3`},q={class:`flex gap-3`},J={class:`flex-1`},Y={class:`flex-1`},X={class:`border rounded-lg p-3 space-y-3`},Z={class:`flex items-center justify-between`},Q={class:`flex items-end gap-2`},ne={class:`w-24`},re={class:`w-24`},ie={class:`flex gap-3`},ae={class:`flex-1`},oe={class:`flex-1`},se={key:0,class:`text-sm text-muted-foreground`},ce={key:1,class:`border rounded-lg p-3 space-y-3`},le={class:`flex items-center justify-between`},ue={class:`flex gap-3`},de={class:`flex-1`},fe={class:`flex-1`},pe={class:`flex justify-end gap-1`},me={key:0,class:`text-sm text-muted-foreground`},he=r({__name:`MappingGroupFormDialog`,props:{open:{type:Boolean},editingId:{},form:{},providers:{},providerModels:{}},emits:[`update:open`,`save`,`addWindow`,`removeWindow`,`addTarget`,`removeTarget`,`moveTargetUp`,`moveTargetDown`],setup(n,{emit:r}){let d=n,f=r,w=l(()=>d.providerModels.get(d.form.default.provider_id)||[]);function T(e){let t=d.form.windows[e]?.target?.provider_id;return t&&d.providerModels.get(t)||[]}function E(e){if(typeof e!=`string`)return;d.form.default.provider_id=e;let t=d.providerModels.get(e)||[];d.form.default.backend_model=t[0]||``}function N(e,t){if(typeof t!=`string`)return;d.form.windows[e].target.provider_id=t;let n=d.providerModels.get(t)||[];d.form.windows[e].target.backend_model=n[0]||``}function P(e){let t=d.form.targets[e]?.provider_id;return t&&d.providerModels.get(t)||[]}function F(e,t){if(typeof t!=`string`)return;d.form.targets[e].provider_id=t;let n=d.providerModels.get(t)||[];d.form.targets[e].backend_model=n[0]||``}function I(){f(`save`)}return(r,l)=>(e(),a(u(j),{open:n.open,"onUpdate:open":l[6]||=e=>f(`update:open`,e)},{default:i(()=>[h(u(k),{class:`max-w-2xl`},{default:i(()=>[h(u(A),null,{default:i(()=>[h(u(M),null,{default:i(()=>[o(_(n.editingId?`编辑分组`:`添加分组`),1)]),_:1}),h(u(D),null,{default:i(()=>[...l[7]||=[o(`配置客户端模型到后端供应商模型的映射规则`,-1)]]),_:1})]),_:1}),c(`form`,{onSubmit:p(I,[`prevent`]),class:`space-y-4`},[c(`div`,null,[h(u(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...l[8]||=[o(`客户端模型`,-1)]]),_:1}),h(u(G),{modelValue:n.form.client_model,"onUpdate:modelValue":l[0]||=e=>n.form.client_model=e,type:`text`,required:``},null,8,[`modelValue`])]),c(`div`,null,[h(u(B),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...l[9]||=[o(`策略`,-1)]]),_:1}),h(u(v),{modelValue:n.form.strategy,"onUpdate:modelValue":l[1]||=e=>n.form.strategy=e},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:`选择策略`})]),_:1}),h(u(y),null,{default:i(()=>[h(u(x),{value:`scheduled`},{default:i(()=>[...l[10]||=[o(`定时切换 (scheduled)`,-1)]]),_:1}),h(u(x),{value:`round-robin`},{default:i(()=>[...l[11]||=[o(`轮询 (round-robin)`,-1)]]),_:1}),h(u(x),{value:`random`},{default:i(()=>[...l[12]||=[o(`随机 (random)`,-1)]]),_:1}),h(u(x),{value:`failover`},{default:i(()=>[...l[13]||=[o(`故障转移 (failover)`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),n.form.strategy===`scheduled`?(e(),g(s,{key:0},[c(`div`,K,[l[16]||=c(`div`,{class:`text-sm font-medium text-foreground`},`默认目标`,-1),c(`div`,q,[c(`div`,J,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[14]||=[o(`供应商`,-1)]]),_:1}),h(u(v),{"model-value":n.form.default.provider_id,"onUpdate:modelValue":E},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:`选择供应商`})]),_:1}),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(n.providers,t=>(e(),a(u(x),{key:t.id,value:t.id},{default:i(()=>[o(_(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`])]),c(`div`,Y,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[15]||=[o(`后端模型`,-1)]]),_:1}),h(u(v),{modelValue:n.form.default.backend_model,"onUpdate:modelValue":l[2]||=e=>n.form.default.backend_model=e,disabled:w.value.length===0},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:w.value.length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:1}),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(w.value,t=>(e(),a(u(x),{key:t,value:t},{default:i(()=>[o(_(t),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`])])])]),c(`div`,X,[c(`div`,Z,[l[18]||=c(`div`,{class:`text-sm font-medium text-foreground`},`时间窗口`,-1),h(u(C),{type:`button`,variant:`outline`,size:`sm`,onClick:l[3]||=e=>f(`addWindow`)},{default:i(()=>[...l[17]||=[o(`添加窗口`,-1)]]),_:1})]),(e(!0),g(s,null,t(n.form.windows,(r,d)=>(e(),g(`div`,{key:d,class:`border rounded-md p-2 space-y-2`},[c(`div`,Q,[c(`div`,ne,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[19]||=[o(`开始`,-1)]]),_:1}),h(u(G),{modelValue:r.start,"onUpdate:modelValue":e=>r.start=e,type:`text`,placeholder:`HH:MM`,required:``},null,8,[`modelValue`,`onUpdate:modelValue`])]),l[22]||=c(`span`,{class:`text-muted-foreground pb-1.5`},`-`,-1),c(`div`,re,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[20]||=[o(`结束`,-1)]]),_:1}),h(u(G),{modelValue:r.end,"onUpdate:modelValue":e=>r.end=e,type:`text`,placeholder:`HH:MM`,required:``},null,8,[`modelValue`,`onUpdate:modelValue`])]),l[23]||=c(`div`,{class:`flex-1`},null,-1),h(u(C),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>f(`removeWindow`,d)},{default:i(()=>[...l[21]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),c(`div`,ie,[c(`div`,ae,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[24]||=[o(`供应商`,-1)]]),_:1}),h(u(v),{"model-value":r.target.provider_id,"onUpdate:modelValue":e=>N(d,e)},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:`选择供应商`})]),_:1}),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(n.providers,t=>(e(),a(u(x),{key:t.id,value:t.id},{default:i(()=>[o(_(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`])]),c(`div`,oe,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[25]||=[o(`后端模型`,-1)]]),_:1}),h(u(v),{modelValue:r.target.backend_model,"onUpdate:modelValue":e=>r.target.backend_model=e,disabled:T(d).length===0},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:T(d).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(T(d),t=>(e(),a(u(x),{key:t,value:t},{default:i(()=>[o(_(t),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`])])])]))),128)),n.form.windows.length===0?(e(),g(`div`,se,`暂无窗口`)):m(``,!0)])],64)):(e(),g(`div`,ce,[c(`div`,le,[l[27]||=c(`div`,{class:`text-sm font-medium text-foreground`},`目标列表`,-1),h(u(C),{type:`button`,variant:`outline`,size:`sm`,onClick:l[4]||=e=>f(`addTarget`)},{default:i(()=>[...l[26]||=[o(`添加目标`,-1)]]),_:1})]),(e(!0),g(s,null,t(n.form.targets,(r,d)=>(e(),g(`div`,{key:d,class:`border rounded-md p-2 space-y-2`},[c(`div`,ue,[c(`div`,de,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[28]||=[o(`供应商`,-1)]]),_:1}),h(u(v),{"model-value":r.provider_id,"onUpdate:modelValue":e=>F(d,e)},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:`选择供应商`})]),_:1}),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(n.providers,t=>(e(),a(u(x),{key:t.id,value:t.id},{default:i(()=>[o(_(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`model-value`,`onUpdate:modelValue`])]),c(`div`,fe,[h(u(B),{class:`block text-xs text-muted-foreground mb-1`},{default:i(()=>[...l[29]||=[o(`后端模型`,-1)]]),_:1}),h(u(v),{modelValue:r.backend_model,"onUpdate:modelValue":e=>r.backend_model=e,disabled:P(d).length===0},{default:i(()=>[h(u(b),null,{default:i(()=>[h(u(S),{placeholder:P(d).length===0?`暂无可用模型`:`选择后端模型`},null,8,[`placeholder`])]),_:2},1024),h(u(y),null,{default:i(()=>[(e(!0),g(s,null,t(P(d),t=>(e(),a(u(x),{key:t,value:t},{default:i(()=>[o(_(t),1)]),_:2},1032,[`value`]))),128))]),_:2},1024)]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`disabled`])])]),c(`div`,pe,[n.form.strategy===`failover`?(e(),a(u(C),{key:0,type:`button`,variant:`ghost`,size:`sm`,disabled:d===0,onClick:e=>f(`moveTargetUp`,d)},{default:i(()=>[...l[30]||=[o(`↑`,-1)]]),_:1},8,[`disabled`,`onClick`])):m(``,!0),n.form.strategy===`failover`?(e(),a(u(C),{key:1,type:`button`,variant:`ghost`,size:`sm`,disabled:d===n.form.targets.length-1,onClick:e=>f(`moveTargetDown`,d)},{default:i(()=>[...l[31]||=[o(`↓`,-1)]]),_:1},8,[`disabled`,`onClick`])):m(``,!0),h(u(C),{type:`button`,variant:`ghost`,size:`sm`,class:`text-destructive shrink-0`,onClick:e=>f(`removeTarget`,d)},{default:i(()=>[...l[32]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128)),n.form.targets.length===0?(e(),g(`div`,me,`暂无目标`)):m(``,!0)])),h(u(O),null,{default:i(()=>[h(u(C),{type:`button`,variant:`outline`,onClick:l[5]||=e=>f(`update:open`,!1)},{default:i(()=>[...l[33]||=[o(`取消`,-1)]]),_:1}),h(u(C),{type:`submit`},{default:i(()=>[...l[34]||=[o(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]))}}),ge=r({__name:`MappingGroupDeleteDialog`,props:{target:{}},emits:[`confirm`,`cancel`],setup(t,{emit:n}){let r=n;return(n,s)=>(e(),a(u(P),{open:!!t.target,"onUpdate:open":s[1]||=e=>{e||r(`cancel`)}},{default:i(()=>[h(u(N),null,{default:i(()=>[h(u(I),null,{default:i(()=>[h(u(z),null,{default:i(()=>[...s[2]||=[o(`确认删除`,-1)]]),_:1}),h(u(F),null,{default:i(()=>[o(`确定要删除分组「`+_(t.target?.client_model)+`」吗?`,1)]),_:1})]),_:1}),h(u(R),null,{default:i(()=>[h(u(L),null,{default:i(()=>[...s[3]||=[o(`取消`,-1)]]),_:1}),h(u(C),{variant:`destructive`,onClick:s[0]||=e=>r(`confirm`)},{default:i(()=>[...s[4]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]))}}),_e={class:`p-6`},ve={class:`flex items-center justify-between mb-4`},ye={class:`space-y-4`},be={class:`flex items-center gap-3`},xe={class:`flex items-center gap-2`},Se={key:0,class:`space-y-3`},Ce={class:`flex items-center gap-2 text-sm`},we={class:`font-mono`},Te={key:0,class:`space-y-2`},Ee={class:`font-mono text-xs bg-muted px-2 py-0.5 rounded`},De={class:`font-mono`},$={key:1,class:`text-sm text-muted-foreground`},Oe={key:1,class:`space-y-2`},ke={key:0,class:`text-muted-foreground text-xs`},Ae={class:`font-mono`},je={key:0,class:`text-sm text-muted-foreground`},Me={key:0,class:`text-center text-muted-foreground py-12 bg-card rounded-xl border`},Ne=r({__name:`ModelMappings`,setup(r){let p={client_model:``,strategy:`scheduled`,default:{backend_model:``,provider_id:``},windows:[],targets:[]},v=d([]),y=d([]),b=d(!1),x=d(null),S=d(null),D=d({...p}),O=l(()=>{let e=new Map;for(let t of y.value)e.set(t.id,t.name);return e}),k=l(()=>{let e=new Map;for(let t of y.value){let n=t.models;Array.isArray(n)&&n.length>0&&e.set(t.id,[...n])}return e}),A=l(()=>v.value.map(e=>{let t={};try{t=JSON.parse(e.rule)}catch{}return{...e,parsedRule:t}}));async function j(){let e=await Promise.allSettled([f.getMappingGroups(),f.getProviders()]);e[0].status===`fulfilled`?v.value=e[0].value.data:console.error(`Failed to load groups:`,e[0].reason),e[1].status===`fulfilled`?y.value=e[1].value:(console.error(`Failed to load providers:`,e[1].reason),V.error(`加载供应商失败`))}function M(){x.value=null;let e=y.value[0]?.id||``;D.value={client_model:``,strategy:`scheduled`,default:{backend_model:(k.value.get(e)||[])[0]||``,provider_id:e},windows:[],targets:[]},b.value=!0}function N(e){x.value=e.id;let t={};try{t=JSON.parse(e.rule)}catch{}if(e.strategy===`scheduled`)D.value={...p,client_model:e.client_model,strategy:e.strategy,default:{backend_model:t.default?.backend_model||``,provider_id:t.default?.provider_id||y.value[0]?.id||``},windows:t.windows?JSON.parse(JSON.stringify(t.windows)):[]};else{let n=y.value[0]?.id||``,r=k.value.get(n)||[];D.value={...p,client_model:e.client_model,strategy:e.strategy,targets:Array.isArray(t.targets)?t.targets.map(e=>({backend_model:e.backend_model||``,provider_id:e.provider_id||n})):[{backend_model:r[0]||``,provider_id:n}]}}b.value=!0}function P(){let e=y.value[0]?.id||``,t=k.value.get(e)||[];D.value.windows.push({start:``,end:``,target:{backend_model:t[0]||``,provider_id:e}})}function F(e){D.value.windows.splice(e,1)}function I(){let e=y.value[0]?.id||``,t=k.value.get(e)||[];D.value.targets.push({backend_model:t[0]||``,provider_id:e})}function L(e){D.value.targets.splice(e,1)}function R(e){if(e<=0)return;let t=D.value.targets;[t[e-1],t[e]]=[t[e],t[e-1]]}function z(e){let t=D.value.targets;e>=t.length-1||([t[e],t[e+1]]=[t[e+1],t[e]])}async function B(){try{let e;e=D.value.strategy===`scheduled`?JSON.stringify({default:D.value.default,windows:D.value.windows}):JSON.stringify({targets:D.value.targets});let t={client_model:D.value.client_model,strategy:D.value.strategy,rule:e};x.value?await f.updateMappingGroup(x.value,t):await f.createMappingGroup(t),b.value=!1,await j()}catch(e){console.error(`Failed to save mapping group:`,e),V.error(`保存分组失败`)}}async function G(){let e=S.value;if(e){S.value=null;try{await f.deleteMappingGroup(e.id),await j()}catch(e){console.error(`Failed to delete mapping group:`,e),V.error(`删除分组失败`)}}}return n(j),(n,r)=>(e(),g(`div`,_e,[c(`div`,ve,[r[3]||=c(`h2`,{class:`text-lg font-semibold text-foreground`},`模型映射`,-1),h(u(C),{onClick:M,class:`flex items-center gap-1`},{default:i(()=>[...r[2]||=[c(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),o(` 添加分组 `,-1)]]),_:1})]),c(`div`,ye,[(e(!0),g(s,null,t(A.value,n=>(e(),a(u(ee),{key:n.id},{default:i(()=>[h(u(T),{"default-open":!0},{default:i(()=>[h(u(U),{class:`flex flex-row items-center justify-between gap-4`},{default:i(()=>[c(`div`,be,[h(u(W),{class:`font-mono text-sm`},{default:i(()=>[o(_(n.client_model),1)]),_:2},1024),h(u(H),{variant:`secondary`},{default:i(()=>[o(_(n.strategy),1)]),_:2},1024)]),c(`div`,xe,[h(u(E),{"as-child":``},{default:i(()=>[h(u(C),{variant:`ghost`,size:`sm`},{default:i(()=>[...r[4]||=[o(` 展开 `,-1)]]),_:1})]),_:1}),h(u(C),{variant:`ghost`,size:`sm`,onClick:e=>N(n)},{default:i(()=>[...r[5]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),h(u(C),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>S.value=n},{default:i(()=>[...r[6]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])])]),_:2},1024),h(u(w),null,{default:i(()=>[h(u(te),null,{default:i(()=>[n.strategy===`scheduled`?(e(),g(`div`,Se,[c(`div`,Ce,[r[7]||=c(`span`,{class:`text-muted-foreground`},`默认模型:`,-1),c(`span`,we,_(n.parsedRule.default?.backend_model||`-`),1),r[8]||=c(`span`,{class:`text-muted-foreground`},`/`,-1),c(`span`,null,_(O.value.get(n.parsedRule.default?.provider_id||``)||`-`),1)]),n.parsedRule.windows?.length?(e(),g(`div`,Te,[r[10]||=c(`div`,{class:`text-sm text-muted-foreground`},`时间窗口`,-1),(e(!0),g(s,null,t(n.parsedRule.windows,(t,n)=>(e(),g(`div`,{key:n,class:`flex items-center gap-2 text-sm`},[c(`span`,Ee,_(t.start)+` - `+_(t.end),1),c(`span`,De,_(t.target.backend_model),1),r[9]||=c(`span`,{class:`text-muted-foreground`},`/`,-1),c(`span`,null,_(O.value.get(t.target.provider_id)||t.target.provider_id),1)]))),128))])):(e(),g(`div`,$,`无时间窗口`))])):(e(),g(`div`,Oe,[(e(!0),g(s,null,t(n.parsedRule.targets||[],(t,i)=>(e(),g(`div`,{key:i,class:`flex items-center gap-2 text-sm`},[n.strategy===`failover`?(e(),g(`span`,ke,_(i+1)+`.`,1)):m(``,!0),c(`span`,Ae,_(t.backend_model),1),r[11]||=c(`span`,{class:`text-muted-foreground`},`/`,-1),c(`span`,null,_(O.value.get(t.provider_id)||t.provider_id),1)]))),128)),(n.parsedRule.targets||[]).length?m(``,!0):(e(),g(`div`,je,`无目标`))]))]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128)),v.value.length===0?(e(),g(`div`,Me,` 暂无映射分组 `)):m(``,!0)]),h(he,{open:b.value,"onUpdate:open":r[0]||=e=>b.value=e,"editing-id":x.value,form:D.value,providers:y.value,"provider-models":k.value,onSave:B,onAddWindow:P,onRemoveWindow:F,onAddTarget:I,onRemoveTarget:L,onMoveTargetUp:R,onMoveTargetDown:z},null,8,[`open`,`editing-id`,`form`,`providers`,`provider-models`]),h(ge,{target:S.value,onConfirm:G,onCancel:r[1]||=e=>S.value=null},null,8,[`target`])]))}});export{Ne as default};
@@ -1 +0,0 @@
1
- import{F as e,L as t,M as n,S as r,Y as i,_ as a,b as o,f as s,g as c,gt as ee,h as te,l as ne,mt as l,ot as u,t as d,u as f,v as p,x as m,y as h,yt as g}from"./client-DvdghFBq.js";import{a as _,i as v,n as y,r as b,t as x}from"./SelectValue-CFf_mD9E.js";import{n as S}from"./button-CfQs66fX.js";import{t as re}from"./Checkbox-Cw0rq2D9.js";import{i as ie,o as ae,r as C,s as w,t as oe}from"./dialog-DQFRGKR6.js";import{a as se,c as ce,i as le,n as ue,o as de,r as fe,t as pe}from"./alert-dialog-CUNSZqpB.js";import{t as T}from"./Label-fZNDEQjf.js";import{t as me}from"./Switch-BGCQ7puL.js";import{n as E,r as D}from"./lib-BJNsNHLO.js";import{a as he,i as O,n as k,o as ge,r as A,t as _e}from"./TableHeader-DAOs6nSA.js";import{t as j}from"./Input-toxjzsir.js";var M=[{group:`智谱`,presets:[{plan:`标准`,presetName:`智谱`,apiType:`openai`,baseUrl:`https://open.bigmodel.cn/api/paas/v4`,models:[`glm-5.1`,`glm-5`,`glm-5-turbo`,`glm-4.7`,`glm-4.7-flash`,`glm-4.6`]},{plan:`Coding Plan`,presetName:`智谱 Coding Plan`,apiType:`anthropic`,baseUrl:`https://open.bigmodel.cn/api/anthropic`,models:[`glm-5.1`,`glm-5-turbo`,`glm-4.7`,`glm-4.5-air`]}]},{group:`KIMI`,presets:[{plan:`标准`,presetName:`KIMI`,apiType:`openai`,baseUrl:`https://api.moonshot.cn`,models:[`kimi-k2.5`,`kimi-k2-0905-preview`,`kimi-k2-turbo-preview`,`kimi-k2-thinking`,`kimi-k2-thinking-turbo`,`moonshot-v1-128k`]},{plan:`Coding Plan`,presetName:`KIMI Coding Plan`,apiType:`anthropic`,baseUrl:`https://api.kimi.com/coding`,models:[`kimi-for-coding`,`kimi-k2.5`]}]},{group:`Minimax`,presets:[{plan:`标准`,presetName:`Minimax`,apiType:`openai`,baseUrl:`https://api.minimax.chat`,models:[`MiniMax-M2.7`,`MiniMax-M2.7-highspeed`,`MiniMax-M2.5`,`MiniMax-M2.5-highspeed`,`MiniMax-M2.1`,`MiniMax-M2`]},{plan:`Token Plan`,presetName:`Minimax Token Plan`,apiType:`anthropic`,baseUrl:`https://api.minimaxi.com/anthropic`,models:[`MiniMax-M2.7`]}]},{group:`火山引擎`,presets:[{plan:`标准`,presetName:`火山引擎`,apiType:`openai`,baseUrl:`https://ark.cn-beijing.volces.com/api/v3`,models:[`doubao-seed-2-0-pro-260215`,`doubao-seed-1-8-251228`,`doubao-seed-code-preview-251028`]},{plan:`Coding Plan`,presetName:`火山引擎 Coding Plan`,apiType:`anthropic`,baseUrl:`https://ark.cn-beijing.volces.com/api/compatible`,models:[`ark-code-latest`,`doubao-seed-2.0-code`,`kimi-k2.5`,`glm-4.7`,`deepseek-v3.2`]}]},{group:`阿里云`,presets:[{plan:`标准`,presetName:`阿里云百炼`,apiType:`openai`,baseUrl:`https://dashscope.aliyuncs.com/compatible-mode`,models:[`qwen3.6-plus`,`qwen3.5-plus`,`qwen3-max`,`qwen3.5-flash`,`qwen3-coder-plus`,`qwen3-coder-next`]},{plan:`Coding Plan`,presetName:`阿里云 Coding Plan`,apiType:`anthropic`,baseUrl:`https://coding.dashscope.aliyuncs.com/apps/anthropic`,models:[`qwen3.6-plus`,`qwen3-coder-next`,`qwen3-coder-plus`,`kimi-k2.5`,`glm-5`,`MiniMax-M2.5`]}]},{group:`腾讯云`,presets:[{plan:`标准`,presetName:`腾讯云混元`,apiType:`openai`,baseUrl:`https://api.hunyuan.cloud.tencent.com`,models:[`hunyuan-2.0-thinking`,`hunyuan-2.0-instruct`,`hunyuan-t1-latest`,`hunyuan-a13b`,`hunyuan-turbos-latest`]},{plan:`Coding Plan`,presetName:`腾讯云 Coding Plan`,apiType:`anthropic`,baseUrl:`https://api.lkeap.cloud.tencent.com/coding/anthropic`,models:[`tc-code-latest`,`hunyuan-2.0-instruct`,`hunyuan-2.0-thinking`,`hunyuan-turbos`,`hunyuan-t1`,`glm-5`,`kimi-k2.5`]}]},{group:`阶跃星辰`,presets:[{plan:`标准`,presetName:`阶跃星辰`,apiType:`openai`,baseUrl:`https://api.stepfun.com`,models:[`step-3.5-flash`,`step-3`,`step-2-mini`,`step-2-16k`,`step-1-8k`,`step-1-32k`]},{plan:`Step Plan`,presetName:`阶跃星辰 Step Plan`,apiType:`anthropic`,baseUrl:`https://api.stepfun.com/step_plan`,models:[`step-3.5-flash-2603`,`step-3.5-flash`]}]}],N={class:`p-6`},P={class:`flex items-center justify-between mb-4`},F={class:`bg-card rounded-lg border overflow-hidden`},I={class:`flex flex-wrap gap-1`},ve={key:0,class:`text-muted-foreground text-xs`},ye={key:1,class:`text-muted-foreground`},be={class:`rounded-md border bg-muted/40 p-3 space-y-2`},xe={class:`flex gap-2`},Se={class:`flex flex-wrap gap-1.5 mb-1.5`},Ce={class:`flex gap-2`},we={class:`flex items-center gap-2 mb-1`},Te={key:0,class:`mt-2 space-y-2`},Ee={class:`flex items-center gap-2`},L=3,R=12e4,z=10,De=100,Oe=1e3,B=r({__name:`Providers`,setup(r){let B={name:``,api_type:`anthropic`,base_url:``,api_key:``,models:[],is_active:!0,max_concurrency:L,queue_timeout_ms:R,max_queue_size:z},V=u(``),H=u([]),U=u(!1),W=u(null),G=u(null),K=u({...B}),q=u(!1),J=u(``),Y=u(``),X=te(()=>J.value?M.find(e=>e.group===J.value)?.presets??[]:[]);function ke(){Y.value=``}function Ae(){let e=X.value.find(e=>e.plan===Y.value);e&&(K.value.name=e.presetName,K.value.api_type=`anthropic`,K.value.base_url=e.baseUrl,K.value.models=[...e.models])}async function Z(){try{H.value=await d.getProviders()}catch(e){console.error(`Failed to load providers:`,e),E.error(`加载供应商失败`)}}function Q(){let e=V.value.trim();if(!e)return;let t=e.split(/[,,]/).map(e=>e.trim()).filter(Boolean);for(let e of t)K.value.models.includes(e)||K.value.models.push(e);V.value=``}function $(e){K.value.models.splice(e,1)}function je(){W.value=null,K.value={...B},q.value=!0,V.value=``,J.value=``,Y.value=``,U.value=!0}function Me(e){W.value=e.id,K.value={name:e.name,api_type:`anthropic`,base_url:e.base_url,api_key:e.api_key,models:[...e.models||[]],is_active:!!e.is_active,max_concurrency:e.max_concurrency??L,queue_timeout_ms:e.queue_timeout_ms??R,max_queue_size:e.max_queue_size??z},q.value=(e.max_concurrency??0)>0,V.value=``,J.value=``,Y.value=``,U.value=!0}function Ne(){let e={name:K.value.name,api_type:`anthropic`,base_url:K.value.base_url,models:K.value.models,is_active:+!!K.value.is_active,max_concurrency:q.value?K.value.max_concurrency:0,queue_timeout_ms:q.value?K.value.queue_timeout_ms:0,max_queue_size:q.value?K.value.max_queue_size:z};return K.value.api_key&&(e.api_key=K.value.api_key),e}async function Pe(){let e=K.value.name.trim();if(!/^[a-zA-Z0-9_-]+$/.test(e)){E.error(`名称仅允许英文大小写字母、数字、横线和下划线`);return}try{let t=Ne();t.name=e,W.value?await d.updateProvider(W.value,t):(t.api_key=K.value.api_key,await d.createProvider(t)),U.value=!1,await Z()}catch(e){console.error(`Failed to save provider:`,e),E.error(`保存供应商失败`)}}function Fe(e){G.value=e}async function Ie(){let e=G.value;if(e){G.value=null;try{await d.deleteProvider(e.id),await Z()}catch(e){console.error(`Failed to delete provider:`,e),E.error(`删除供应商失败`)}}}return n(Z),(n,r)=>(e(),h(`div`,N,[c(`div`,P,[r[15]||=c(`h2`,{class:`text-lg font-semibold text-foreground`},`供应商`,-1),m(l(S),{onClick:je,class:`flex items-center gap-1`},{default:i(()=>[...r[14]||=[c(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),o(` 添加供应商 `,-1)]]),_:1})]),c(`div`,F,[m(l(ge),null,{default:i(()=>[m(l(_e),null,{default:i(()=>[m(l(A),{class:`bg-muted`},{default:i(()=>[m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[16]||=[o(`名称`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[17]||=[o(`类型`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[18]||=[o(`Base URL`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[19]||=[o(`API Key`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[20]||=[o(`模型`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[21]||=[o(`并发`,-1)]]),_:1}),m(l(k),{class:`text-muted-foreground`},{default:i(()=>[...r[22]||=[o(`状态`,-1)]]),_:1}),m(l(k),{class:`text-right text-muted-foreground`},{default:i(()=>[...r[23]||=[o(`操作`,-1)]]),_:1})]),_:1})]),_:1}),m(l(he),null,{default:i(()=>[(e(!0),h(s,null,t(H.value,n=>(e(),a(l(A),{key:n.id,class:ee({"opacity-60":!n.is_active})},{default:i(()=>[m(l(O),{class:`font-medium`},{default:i(()=>[o(g(n.name),1)]),_:2},1024),m(l(O),null,{default:i(()=>[m(l(D),{variant:`secondary`},{default:i(()=>[o(g(n.api_type),1)]),_:2},1024)]),_:2},1024),m(l(O),{class:`text-muted-foreground`},{default:i(()=>[o(g(n.base_url),1)]),_:2},1024),m(l(O),{class:`text-muted-foreground font-mono text-xs`},{default:i(()=>[o(g(n.api_key),1)]),_:2},1024),m(l(O),null,{default:i(()=>[c(`div`,I,[(e(!0),h(s,null,t(n.models||[],t=>(e(),a(l(D),{key:t,variant:`secondary`,class:`text-xs`},{default:i(()=>[o(g(t),1)]),_:2},1024))),128)),n.models?.length?p(``,!0):(e(),h(`span`,ve,`-`))])]),_:2},1024),m(l(O),null,{default:i(()=>[n.max_concurrency>0?(e(),a(l(D),{key:0,variant:`secondary`},{default:i(()=>[o(g(n.max_concurrency),1)]),_:2},1024)):(e(),h(`span`,ye,`-`))]),_:2},1024),m(l(O),null,{default:i(()=>[m(l(D),{variant:n.is_active?`default`:`secondary`},{default:i(()=>[o(g(n.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),m(l(O),{class:`text-right`},{default:i(()=>[m(l(S),{variant:`ghost`,size:`sm`,onClick:e=>Me(n),class:`text-muted-foreground hover:text-primary mr-2`},{default:i(()=>[...r[24]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(l(S),{variant:`ghost`,size:`sm`,onClick:e=>Fe(n),class:`text-muted-foreground hover:text-destructive`},{default:i(()=>[...r[25]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),H.value.length===0?(e(),a(l(A),{key:0},{default:i(()=>[m(l(O),{colspan:`8`,class:`text-center text-muted-foreground py-8`},{default:i(()=>[...r[26]||=[o(`暂无供应商`,-1)]]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1})]),m(l(w),{open:U.value,"onUpdate:open":r[12]||=e=>U.value=e},{default:i(()=>[m(l(ae),null,{default:i(()=>[m(l(C),null,{default:i(()=>[m(l(oe),null,{default:i(()=>[o(g(W.value?`编辑供应商`:`添加供应商`),1)]),_:1})]),_:1}),c(`form`,{onSubmit:f(Pe,[`prevent`]),class:`space-y-3`},[c(`div`,be,[r[27]||=c(`div`,{class:`text-xs font-medium text-muted-foreground`},`快速配置`,-1),c(`div`,xe,[m(l(_),{modelValue:J.value,"onUpdate:modelValue":[r[0]||=e=>J.value=e,ke]},{default:i(()=>[m(l(y),{class:`flex-1`},{default:i(()=>[m(l(x),{placeholder:`选择供应商`})]),_:1}),m(l(v),null,{default:i(()=>[(e(!0),h(s,null,t(l(M),t=>(e(),a(l(b),{key:t.group,value:t.group},{default:i(()=>[o(g(t.group),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`]),m(l(_),{modelValue:Y.value,"onUpdate:modelValue":[r[1]||=e=>Y.value=e,Ae],disabled:!J.value},{default:i(()=>[m(l(y),{class:`flex-1`},{default:i(()=>[m(l(x),{placeholder:`选择套餐`})]),_:1}),m(l(v),null,{default:i(()=>[(e(!0),h(s,null,t(X.value,t=>(e(),a(l(b),{key:t.plan,value:t.plan},{default:i(()=>[o(g(t.plan),1)]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`modelValue`,`disabled`])])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[28]||=[o(`名称`,-1)]]),_:1}),m(l(j),{modelValue:K.value.name,"onUpdate:modelValue":r[2]||=e=>K.value.name=e,type:`text`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[29]||=[o(`Base URL`,-1)]]),_:1}),m(l(j),{modelValue:K.value.base_url,"onUpdate:modelValue":r[3]||=e=>K.value.base_url=e,type:`url`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[30]||=[o(`API Key`,-1)]]),_:1}),m(l(j),{modelValue:K.value.api_key,"onUpdate:modelValue":r[4]||=e=>K.value.api_key=e,type:`text`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[31]||=[o(`可用模型`,-1)]]),_:1}),c(`div`,Se,[(e(!0),h(s,null,t(K.value.models,(t,n)=>(e(),a(l(D),{key:n,variant:`secondary`,class:`gap-1 pr-1`},{default:i(()=>[o(g(t)+` `,1),m(l(S),{type:`button`,variant:`ghost`,size:`icon`,class:`h-4 w-4 rounded-full hover:bg-muted p-0 text-xs leading-none`,onClick:e=>$(n)},{default:i(()=>[...r[32]||=[o(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))]),c(`div`,Ce,[m(l(j),{modelValue:V.value,"onUpdate:modelValue":r[5]||=e=>V.value=e,placeholder:`输入模型名称,多个用逗号分隔`,onKeydown:ne(f(Q,[`prevent`]),[`enter`]),class:`flex-1`},null,8,[`modelValue`,`onKeydown`]),m(l(S),{type:`button`,variant:`outline`,size:`sm`,onClick:Q,disabled:!V.value.trim()},{default:i(()=>[...r[33]||=[o(`添加`,-1)]]),_:1},8,[`disabled`])])]),c(`div`,null,[c(`div`,we,[m(l(me),{modelValue:q.value,"onUpdate:modelValue":r[6]||=e=>q.value=e,id:`concurrency-switch`},null,8,[`modelValue`]),m(l(T),{for:`concurrency-switch`,class:`text-sm text-foreground`},{default:i(()=>[...r[34]||=[o(`并发控制`,-1)]]),_:1})]),q.value?(e(),h(`div`,Te,[c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[35]||=[o(`最大并发数`,-1)]]),_:1}),m(l(j),{modelValue:K.value.max_concurrency,"onUpdate:modelValue":r[7]||=e=>K.value.max_concurrency=e,modelModifiers:{number:!0},type:`number`,min:`1`,max:De,placeholder:`3`},null,8,[`modelValue`])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[36]||=[o(`队列超时 (ms)`,-1)]]),_:1}),m(l(j),{modelValue:K.value.queue_timeout_ms,"onUpdate:modelValue":r[8]||=e=>K.value.queue_timeout_ms=e,modelModifiers:{number:!0},type:`number`,min:`0`,placeholder:`0 = 无限等待`},null,8,[`modelValue`])]),c(`div`,null,[m(l(T),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[37]||=[o(`最大队列长度`,-1)]]),_:1}),m(l(j),{modelValue:K.value.max_queue_size,"onUpdate:modelValue":r[9]||=e=>K.value.max_queue_size=e,modelModifiers:{number:!0},type:`number`,min:`1`,max:Oe,placeholder:z},null,8,[`modelValue`])])])):p(``,!0)]),c(`div`,Ee,[m(l(re),{modelValue:K.value.is_active,"onUpdate:modelValue":r[10]||=e=>K.value.is_active=e,id:`svc-active`},null,8,[`modelValue`]),m(l(T),{for:`svc-active`,class:`text-sm text-foreground`},{default:i(()=>[...r[38]||=[o(`启用`,-1)]]),_:1})]),m(l(ie),null,{default:i(()=>[m(l(S),{type:`button`,variant:`outline`,onClick:r[11]||=e=>U.value=!1},{default:i(()=>[...r[39]||=[o(`取消`,-1)]]),_:1}),m(l(S),{type:`submit`},{default:i(()=>[...r[40]||=[o(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),m(l(ce),{open:!!G.value,"onUpdate:open":r[13]||=e=>{e||(G.value=null)}},{default:i(()=>[m(l(se),null,{default:i(()=>[m(l(ue),null,{default:i(()=>[m(l(pe),null,{default:i(()=>[...r[41]||=[o(`确认删除`,-1)]]),_:1}),m(l(le),null,{default:i(()=>[o(`确定要删除供应商「`+g(G.value?.name)+`」吗?此操作不可撤销。`,1)]),_:1})]),_:1}),m(l(fe),null,{default:i(()=>[m(l(de),null,{default:i(()=>[...r[42]||=[o(`取消`,-1)]]),_:1}),m(l(S),{variant:`destructive`,onClick:Ie},{default:i(()=>[...r[43]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{B as default};
@@ -1 +0,0 @@
1
- import{F as e,L as t,M as n,S as r,Y as i,_ as a,b as o,f as s,g as c,mt as l,ot as u,t as d,u as f,v as p,x as m,y as h,yt as g}from"./client-DvdghFBq.js";import{a as ee,i as te,n as ne,r as _,t as re}from"./SelectValue-CFf_mD9E.js";import{n as v}from"./button-CfQs66fX.js";import{t as y}from"./Checkbox-Cw0rq2D9.js";import{i as b,o as x,r as S,s as C,t as w}from"./dialog-DQFRGKR6.js";import{a as T,c as E,i as ie,n as ae,o as D,r as O,t as k}from"./alert-dialog-CUNSZqpB.js";import{t as A}from"./Label-fZNDEQjf.js";import{n as j,r as M}from"./lib-BJNsNHLO.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./TableHeader-DAOs6nSA.js";import{t as z}from"./Input-toxjzsir.js";var B={class:`p-6`},V={class:`flex items-center justify-between mb-4`},oe={class:`bg-card rounded-lg border overflow-hidden`},H={class:`flex items-center gap-2`},U={class:`text-xs text-muted-foreground`},W={class:`grid grid-cols-2 gap-3`},G={key:0},K={class:`flex items-center gap-2`},q=r({__name:`RetryRules`,setup(r){let q={name:``,status_code:429,body_pattern:``,is_active:!0,retry_strategy:`exponential`,retry_delay_ms:5e3,max_retries:10,max_delay_ms:6e4},J=u([]),Y=u(!1),X=u(null),Z=u(null),Q=u({...q});async function $(){try{J.value=(await d.getRetryRules()).data}catch(e){console.error(`Failed to load retry rules:`,e),j.error(`加载数据失败`)}}function se(){X.value=null,Q.value={...q},Y.value=!0}function ce(e){X.value=e.id,Q.value={name:e.name,status_code:e.status_code,body_pattern:e.body_pattern,is_active:!!e.is_active,retry_strategy:e.retry_strategy,retry_delay_ms:e.retry_delay_ms,max_retries:e.max_retries,max_delay_ms:e.max_delay_ms},Y.value=!0}async function le(){try{let e={name:Q.value.name,status_code:Number(Q.value.status_code),body_pattern:Q.value.body_pattern,is_active:+!!Q.value.is_active,retry_strategy:Q.value.retry_strategy,retry_delay_ms:Number(Q.value.retry_delay_ms),max_retries:Number(Q.value.max_retries),max_delay_ms:Number(Q.value.max_delay_ms)};X.value?await d.updateRetryRule(X.value,e):await d.createRetryRule(e),Y.value=!1,await $()}catch(e){console.error(`Failed to save retry rule:`,e),j.error(`保存规则失败`)}}function ue(e){Z.value=e}async function de(){let e=Z.value;if(e){Z.value=null;try{await d.deleteRetryRule(e.id),await $()}catch(e){console.error(`Failed to delete retry rule:`,e),j.error(`删除规则失败`)}}}return n($),(n,r)=>(e(),h(`div`,B,[c(`div`,V,[r[12]||=c(`h2`,{class:`text-lg font-semibold text-foreground`},`重试规则`,-1),m(l(v),{onClick:se,class:`flex items-center gap-1`},{default:i(()=>[...r[11]||=[c(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),o(` 添加规则 `,-1)]]),_:1})]),c(`div`,oe,[m(l(I),null,{default:i(()=>[m(l(R),null,{default:i(()=>[m(l(L),{class:`bg-muted`},{default:i(()=>[m(l(F),{class:`text-muted-foreground`},{default:i(()=>[...r[13]||=[o(`名称`,-1)]]),_:1}),m(l(F),{class:`text-muted-foreground`},{default:i(()=>[...r[14]||=[o(`HTTP 状态码`,-1)]]),_:1}),m(l(F),{class:`text-muted-foreground`},{default:i(()=>[...r[15]||=[o(`响应体匹配`,-1)]]),_:1}),m(l(F),{class:`text-muted-foreground`},{default:i(()=>[...r[16]||=[o(`重试策略`,-1)]]),_:1}),m(l(F),{class:`text-muted-foreground`},{default:i(()=>[...r[17]||=[o(`状态`,-1)]]),_:1}),m(l(F),{class:`text-right text-muted-foreground`},{default:i(()=>[...r[18]||=[o(`操作`,-1)]]),_:1})]),_:1})]),_:1}),m(l(N),null,{default:i(()=>[(e(!0),h(s,null,t(J.value,t=>(e(),a(l(L),{key:t.id},{default:i(()=>[m(l(P),{class:`font-mono text-sm`},{default:i(()=>[o(g(t.name),1)]),_:2},1024),m(l(P),null,{default:i(()=>[o(g(t.status_code),1)]),_:2},1024),m(l(P),{class:`font-mono text-xs text-muted-foreground`},{default:i(()=>[o(g(t.body_pattern),1)]),_:2},1024),m(l(P),null,{default:i(()=>[c(`div`,H,[m(l(M),{variant:`outline`},{default:i(()=>[o(g(t.retry_strategy===`fixed`?`固定间隔`:`指数退避`),1)]),_:2},1024),c(`span`,U,[o(g(t.retry_delay_ms/1e3)+`s · `+g(t.max_retries)+`次 `,1),t.retry_strategy===`exponential`?(e(),h(s,{key:0},[o(` · 上限`+g(t.max_delay_ms/1e3)+`s`,1)],64)):p(``,!0)])])]),_:2},1024),m(l(P),null,{default:i(()=>[m(l(M),{variant:t.is_active?`default`:`secondary`},{default:i(()=>[o(g(t.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),m(l(P),{class:`text-right`},{default:i(()=>[m(l(v),{variant:`ghost`,size:`sm`,onClick:e=>ce(t),class:`mr-2`},{default:i(()=>[...r[19]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(l(v),{variant:`ghost`,size:`sm`,class:`text-destructive hover:text-destructive`,onClick:e=>ue(t)},{default:i(()=>[...r[20]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128)),J.value.length===0?(e(),a(l(L),{key:0},{default:i(()=>[m(l(P),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:i(()=>[...r[21]||=[o(`暂无规则`,-1)]]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1})]),m(l(C),{open:Y.value,"onUpdate:open":r[9]||=e=>Y.value=e},{default:i(()=>[m(l(x),null,{default:i(()=>[m(l(S),null,{default:i(()=>[m(l(w),null,{default:i(()=>[o(g(X.value?`编辑规则`:`添加规则`),1)]),_:1})]),_:1}),c(`form`,{onSubmit:f(le,[`prevent`]),class:`space-y-3`},[c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[22]||=[o(`名称`,-1)]]),_:1}),m(l(z),{modelValue:Q.value.name,"onUpdate:modelValue":r[0]||=e=>Q.value.name=e,type:`text`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[23]||=[o(`HTTP 状态码`,-1)]]),_:1}),m(l(z),{modelValue:Q.value.status_code,"onUpdate:modelValue":r[1]||=e=>Q.value.status_code=e,modelModifiers:{number:!0},type:`number`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[24]||=[o(`响应体匹配`,-1)]]),_:1}),m(l(z),{modelValue:Q.value.body_pattern,"onUpdate:modelValue":r[2]||=e=>Q.value.body_pattern=e,type:`text`,placeholder:`正则表达式,例如 .*rate_limit.*`,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[25]||=[o(`重试策略`,-1)]]),_:1}),m(l(ee),{modelValue:Q.value.retry_strategy,"onUpdate:modelValue":r[3]||=e=>Q.value.retry_strategy=e},{default:i(()=>[m(l(ne),{class:`w-full`},{default:i(()=>[m(l(re),{placeholder:`选择策略`})]),_:1}),m(l(te),null,{default:i(()=>[m(l(_),{value:`exponential`},{default:i(()=>[...r[26]||=[o(`指数退避`,-1)]]),_:1}),m(l(_),{value:`fixed`},{default:i(()=>[...r[27]||=[o(`固定间隔`,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),c(`div`,W,[c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[o(g(Q.value.retry_strategy===`fixed`?`间隔时间 (ms)`:`初始延迟 (ms)`),1)]),_:1}),m(l(z),{modelValue:Q.value.retry_delay_ms,"onUpdate:modelValue":r[4]||=e=>Q.value.retry_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``},null,8,[`modelValue`])]),c(`div`,null,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[28]||=[o(`最大重试次数`,-1)]]),_:1}),m(l(z),{modelValue:Q.value.max_retries,"onUpdate:modelValue":r[5]||=e=>Q.value.max_retries=e,modelModifiers:{number:!0},type:`number`,min:0,max:100,required:``},null,8,[`modelValue`])])]),Q.value.retry_strategy===`exponential`?(e(),h(`div`,G,[m(l(A),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[29]||=[o(`延迟上限 (ms)`,-1)]]),_:1}),m(l(z),{modelValue:Q.value.max_delay_ms,"onUpdate:modelValue":r[6]||=e=>Q.value.max_delay_ms=e,modelModifiers:{number:!0},type:`number`,min:100,required:``},null,8,[`modelValue`])])):p(``,!0),c(`div`,K,[m(l(y),{modelValue:Q.value.is_active,"onUpdate:modelValue":r[7]||=e=>Q.value.is_active=e,id:`rule-active`},null,8,[`modelValue`]),m(l(A),{for:`rule-active`,class:`text-sm text-foreground`},{default:i(()=>[...r[30]||=[o(`启用`,-1)]]),_:1})]),m(l(b),null,{default:i(()=>[m(l(v),{type:`button`,variant:`outline`,onClick:r[8]||=e=>Y.value=!1},{default:i(()=>[...r[31]||=[o(`取消`,-1)]]),_:1}),m(l(v),{type:`submit`},{default:i(()=>[...r[32]||=[o(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),m(l(E),{open:!!Z.value,"onUpdate:open":r[10]||=e=>{e||(Z.value=null)}},{default:i(()=>[m(l(T),null,{default:i(()=>[m(l(ae),null,{default:i(()=>[m(l(k),null,{default:i(()=>[...r[33]||=[o(`确认删除`,-1)]]),_:1}),m(l(ie),null,{default:i(()=>[o(`确定要删除规则「`+g(Z.value?.name)+`」吗?`,1)]),_:1})]),_:1}),m(l(O),null,{default:i(()=>[m(l(D),null,{default:i(()=>[...r[34]||=[o(`取消`,-1)]]),_:1}),m(l(v),{variant:`destructive`,onClick:de},{default:i(()=>[...r[35]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{q as default};
@@ -1 +0,0 @@
1
- import{F as e,L as t,M as n,S as r,Y as i,_ as a,b as o,f as s,g as c,gt as ee,mt as l,ot as u,t as d,u as f,v as p,x as m,y as h,yt as g}from"./client-DvdghFBq.js";import{n as _}from"./button-CfQs66fX.js";import{t as v}from"./Checkbox-Cw0rq2D9.js";import{i as y,o as b,r as x,s as S,t as te}from"./dialog-DQFRGKR6.js";import{a as ne,c as re,i as ie,n as ae,o as oe,r as se,t as ce}from"./alert-dialog-CUNSZqpB.js";import{t as C}from"./Label-fZNDEQjf.js";import{n as w,r as T}from"./lib-BJNsNHLO.js";import{a as E,i as D,n as O,o as k,r as A,t as j}from"./TableHeader-DAOs6nSA.js";import{t as M}from"./Input-toxjzsir.js";import{t as N}from"./useClipboard-aPMKfK25.js";var P={class:`p-6`},F={class:`flex items-center justify-between mb-4`},I={class:`bg-card rounded-lg border overflow-hidden`},L={class:`flex items-center gap-1`},R={class:`font-mono text-xs text-muted-foreground`},z={key:0,class:`w-3.5 h-3.5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},B={key:1,class:`w-3.5 h-3.5 text-success`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},V={key:0,class:`flex flex-wrap gap-1`},H={class:`border rounded-md p-3 max-h-48 overflow-y-auto space-y-2 bg-muted`},U={class:`font-mono text-xs`},le={key:0,class:`text-muted-foreground text-sm text-center py-2`},W={key:0,class:`flex flex-wrap gap-1 mt-2`},ue={key:0,class:`flex items-center gap-2`},G=r({__name:`RouterKeys`,setup(r){let G={name:``,allowed_models:[],is_active:!0},K=u([]),q=u([]),J=u(!1),Y=u(null),X=u(null),Z=u({...G,allowed_models:[]}),{copied:de,copy:fe}=N();function pe(e){return new Date(e).toLocaleString(`zh-CN`)}function me(e){let t=Z.value.allowed_models.indexOf(e);t>=0&&Z.value.allowed_models.splice(t,1)}async function Q(){try{let[e,t]=await Promise.allSettled([d.getRouterKeys(),d.getAvailableModels()]);e.status===`fulfilled`&&(K.value=e.value.data),t.status===`fulfilled`&&(q.value=t.value.data)}catch(e){console.error(`Failed to load data:`,e),w.error(`加载数据失败`)}}function he(){Y.value=null,Z.value={...G,allowed_models:[]},J.value=!0}function ge(e){Y.value=e.id,Z.value={name:e.name,allowed_models:e.allowed_models?[...e.allowed_models]:[],is_active:!!e.is_active},J.value=!0}function $(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null,is_active:+!!Z.value.is_active}}function _e(){return{name:Z.value.name,allowed_models:Z.value.allowed_models.length>0?Z.value.allowed_models:null}}async function ve(){try{Y.value?await d.updateRouterKey(Y.value,$()):await d.createRouterKey(_e()),J.value=!1,await Q()}catch(e){console.error(`Failed to save router key:`,e),w.error(`保存密钥失败`)}}function ye(e){X.value=e}async function be(){let e=X.value;if(e){X.value=null;try{await d.deleteRouterKey(e.id),await Q()}catch(e){console.error(`Failed to delete router key:`,e),w.error(`删除密钥失败`)}}}return n(Q),(n,r)=>(e(),h(`div`,P,[c(`div`,F,[r[6]||=c(`h2`,{class:`text-lg font-semibold text-foreground`},`API 密钥`,-1),m(l(_),{onClick:he,class:`flex items-center gap-1`},{default:i(()=>[...r[5]||=[c(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M12 4v16m8-8H4`})],-1),o(` 创建密钥 `,-1)]]),_:1})]),c(`div`,I,[m(l(k),null,{default:i(()=>[m(l(j),null,{default:i(()=>[m(l(A),{class:`bg-muted`},{default:i(()=>[m(l(O),{class:`text-muted-foreground`},{default:i(()=>[...r[7]||=[o(`名称`,-1)]]),_:1}),m(l(O),{class:`text-muted-foreground`},{default:i(()=>[...r[8]||=[o(`密钥`,-1)]]),_:1}),m(l(O),{class:`text-muted-foreground`},{default:i(()=>[...r[9]||=[o(`白名单模型`,-1)]]),_:1}),m(l(O),{class:`text-muted-foreground`},{default:i(()=>[...r[10]||=[o(`状态`,-1)]]),_:1}),m(l(O),{class:`text-muted-foreground`},{default:i(()=>[...r[11]||=[o(`创建时间`,-1)]]),_:1}),m(l(O),{class:`text-right text-muted-foreground`},{default:i(()=>[...r[12]||=[o(`操作`,-1)]]),_:1})]),_:1})]),_:1}),m(l(E),null,{default:i(()=>[(e(!0),h(s,null,t(K.value,n=>(e(),a(l(A),{key:n.id,class:ee({"opacity-60":!n.is_active})},{default:i(()=>[m(l(D),{class:`font-medium`},{default:i(()=>[o(g(n.name),1)]),_:2},1024),m(l(D),null,{default:i(()=>[c(`div`,L,[c(`span`,R,g(n.key),1),m(l(_),{variant:`ghost`,size:`sm`,class:`h-6 w-6 p-0`,onClick:e=>l(fe)(n.key)},{default:i(()=>[l(de)?(e(),h(`svg`,B,[...r[14]||=[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 13l4 4L19 7`},null,-1)]])):(e(),h(`svg`,z,[...r[13]||=[c(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z`},null,-1)]]))]),_:1},8,[`onClick`])])]),_:2},1024),m(l(D),null,{default:i(()=>[n.allowed_models&&n.allowed_models.length>0?(e(),h(`div`,V,[(e(!0),h(s,null,t(n.allowed_models,t=>(e(),a(l(T),{key:t,variant:`outline`,class:`text-xs`},{default:i(()=>[o(g(t),1)]),_:2},1024))),128))])):(e(),a(l(T),{key:1,variant:`secondary`},{default:i(()=>[...r[15]||=[o(`全部模型`,-1)]]),_:1}))]),_:2},1024),m(l(D),null,{default:i(()=>[m(l(T),{variant:n.is_active?`default`:`secondary`},{default:i(()=>[o(g(n.is_active?`启用`:`禁用`),1)]),_:2},1032,[`variant`])]),_:2},1024),m(l(D),{class:`text-muted-foreground text-sm`},{default:i(()=>[o(g(pe(n.created_at)),1)]),_:2},1024),m(l(D),{class:`text-right`},{default:i(()=>[m(l(_),{variant:`ghost`,size:`sm`,onClick:e=>ge(n),class:`text-muted-foreground hover:text-primary mr-2`},{default:i(()=>[...r[16]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),m(l(_),{variant:`ghost`,size:`sm`,onClick:e=>ye(n),class:`text-muted-foreground hover:text-destructive`},{default:i(()=>[...r[17]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1032,[`class`]))),128)),K.value.length===0?(e(),a(l(A),{key:0},{default:i(()=>[m(l(D),{colspan:`6`,class:`text-center text-muted-foreground py-8`},{default:i(()=>[...r[18]||=[o(`暂无密钥`,-1)]]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1})]),m(l(S),{open:J.value,"onUpdate:open":r[3]||=e=>J.value=e},{default:i(()=>[m(l(b),{class:`sm:max-w-lg`},{default:i(()=>[m(l(x),null,{default:i(()=>[m(l(te),null,{default:i(()=>[o(g(Y.value?`编辑密钥`:`创建密钥`),1)]),_:1})]),_:1}),c(`form`,{onSubmit:f(ve,[`prevent`]),class:`space-y-4`},[c(`div`,null,[m(l(C),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[19]||=[o(`名称`,-1)]]),_:1}),m(l(M),{modelValue:Z.value.name,"onUpdate:modelValue":r[0]||=e=>Z.value.name=e,type:`text`,required:``,placeholder:`例如:生产环境`},null,8,[`modelValue`])]),c(`div`,null,[m(l(C),{class:`block text-sm font-medium text-foreground mb-1`},{default:i(()=>[...r[20]||=[o(`白名单模型`,-1)]]),_:1}),r[22]||=c(`div`,{class:`text-xs text-muted-foreground mb-2`},`不选择 = 允许所有模型`,-1),c(`div`,H,[(e(!0),h(s,null,t(q.value,t=>(e(),a(l(C),{key:t,class:`flex items-center gap-2 cursor-pointer text-sm font-normal`},{default:i(()=>[m(l(v),{"model-value":Z.value.allowed_models.includes(t),"onUpdate:modelValue":e=>{if(e&&e!==`indeterminate`&&!Z.value.allowed_models.includes(t))Z.value.allowed_models.push(t);else if(!e){let e=Z.value.allowed_models.indexOf(t);e>=0&&Z.value.allowed_models.splice(e,1)}}},null,8,[`model-value`,`onUpdate:modelValue`]),c(`span`,U,g(t),1)]),_:2},1024))),128)),q.value.length===0?(e(),h(`div`,le,` 暂无可用模型,请先配置模型映射 `)):p(``,!0)]),Z.value.allowed_models.length>0?(e(),h(`div`,W,[(e(!0),h(s,null,t(Z.value.allowed_models,t=>(e(),a(l(T),{key:t,variant:`outline`,class:`text-xs`},{default:i(()=>[o(g(t)+` `,1),m(l(_),{type:`button`,variant:`ghost`,size:`sm`,class:`ml-1 h-4 w-4 p-0 text-muted-foreground hover:text-destructive`,onClick:e=>me(t)},{default:i(()=>[...r[21]||=[o(`×`,-1)]]),_:1},8,[`onClick`])]),_:2},1024))),128))])):p(``,!0)]),Y.value?(e(),h(`div`,ue,[m(l(v),{modelValue:Z.value.is_active,"onUpdate:modelValue":r[1]||=e=>Z.value.is_active=e,id:`key-active`},null,8,[`modelValue`]),m(l(C),{for:`key-active`,class:`text-sm text-foreground`},{default:i(()=>[...r[23]||=[o(`启用`,-1)]]),_:1})])):p(``,!0),m(l(y),null,{default:i(()=>[m(l(_),{type:`button`,variant:`outline`,onClick:r[2]||=e=>J.value=!1},{default:i(()=>[...r[24]||=[o(`取消`,-1)]]),_:1}),m(l(_),{type:`submit`},{default:i(()=>[...r[25]||=[o(`保存`,-1)]]),_:1})]),_:1})],32)]),_:1})]),_:1},8,[`open`]),m(l(re),{open:!!X.value,"onUpdate:open":r[4]||=e=>{e||(X.value=null)}},{default:i(()=>[m(l(ne),null,{default:i(()=>[m(l(ae),null,{default:i(()=>[m(l(ce),null,{default:i(()=>[...r[26]||=[o(`确认删除`,-1)]]),_:1}),m(l(ie),null,{default:i(()=>[o(`确定要删除密钥「`+g(X.value?.name)+`」吗?使用此密钥的所有请求将被拒绝,此操作不可撤销。`,1)]),_:1})]),_:1}),m(l(se),null,{default:i(()=>[m(l(oe),null,{default:i(()=>[...r[27]||=[o(`取消`,-1)]]),_:1}),m(l(_),{variant:`destructive`,onClick:be},{default:i(()=>[...r[28]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`])]))}});export{G as default};
@@ -1 +0,0 @@
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(65% .14 30);--color-role-tool-bg:oklch(94% .04 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(25% .05 30);--color-role-tool:oklch(60% .1 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)}.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}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.bottom-0{bottom:0}.left-1\/2{left:50%}.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-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-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-1{margin-left:.25rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.block{display: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}.aspect-square{aspect-ratio:1}.size-10{width:2.5rem;height:2.5rem}.size-2\.5{width:.625rem;height:.625rem}.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-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-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-80{max-height:20rem}.max-h-\[40vh\]{max-height:40vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1\/3{width:33.3333%}.w-12{width:3rem}.w-16{width:4rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[260px\]{width:260px}.w-fit{width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-36{min-width:9rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-\[140px\]{max-width:140px}.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-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate:0deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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))}@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-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.select-all{-webkit-user-select:all;user-select:all}.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-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}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.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))}.self-start{align-self:flex-start}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.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-none{border-radius:0}.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-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-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-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{background-color:var(--color-info)}.bg-info-light{background-color:var(--color-info-light)}.bg-muted{background-color:var(--muted)}.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-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-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-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pl-1\.5{padding-left:.375rem}.pl-2\.5{padding-left:.625rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.pt-2{padding-top:.5rem}.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}.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-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}.italic{font-style:italic}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.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-foreground{color:var(--foreground)}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-info-dark{color:var(--color-info-dark)}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-role-assistant{color:var(--color-role-assistant)}.text-role-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-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))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-25{opacity:.25}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.bg-blend-color{background-blend-mode:color}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px 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-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)}.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)}.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-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-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-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-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-80:hover{opacity:.8}.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-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open],.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open],.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-.5rem}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-1\.5[data-slot=select-value]>*{gap:.375rem}.\*\:data-\[slot\=avatar\]\:ring-2[data-slot=avatar]>*{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.\*\:data-\[slot\=avatar\]\:ring-background[data-slot=avatar]>*{--tw-ring-color:var(--background)}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid{display:grid}.group\/avatar[data-size=default] .group-data-\[size\=default\]\/avatar\:size-2\.5{width:.625rem;height:.625rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:size-4{width:1rem;height:1rem}.group\/avatar[data-size=lg] .group-data-\[size\=lg\]\/avatar\:size-3{width:.75rem;height:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:size-2{width:.5rem;height:.5rem}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:size-3{width:.75rem;height:.75rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:h-8{height:2rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:h-fit{height:fit-content}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:w-full{width:100%}.group\/alert-dialog-content[data-size=sm] .group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:flex-col{flex-direction:column}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:justify-start{justify-content:flex-start}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:bg-transparent{background-color:#0000}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:p-3{padding:.75rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:px-3{padding-left:.75rem;padding-right:.75rem}.group\/avatar[data-size=sm] .group-data-\[size\=sm\]\/avatar\:text-xs{font-size:.75rem;line-height:1rem}.group\/card[data-size=sm] .group-data-\[size\=sm\]\/card\:text-sm{font-size:.875rem;line-height:1.25rem}.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:after{content:var(--tw-content);left:0;right:0}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:after{content:var(--tw-content);bottom:-5px}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:after{content:var(--tw-content);right:-.25rem}.group\/tabs[data-orientation=horizontal] .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:after{content:var(--tw-content);height:.125rem}.group\/tabs[data-orientation=vertical] .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:after{content:var(--tw-content);width:.125rem}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=default] .group-data-\[size\=default\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/switch[data-size=sm] .group-data-\[size\=sm\]\/switch\:data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]{background-color:#0000}.group\/tabs-list[data-variant=default] .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none[data-state=active]{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.group\/tabs-list[data-variant=line] .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100[data-state=active]:after{content:var(--tw-content);opacity:1}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:border-teal-800:is(.dark *){border-color:var(--color-teal-800)}.dark\:bg-teal-600:is(.dark *){background-color:var(--color-teal-600)}.dark\:bg-teal-700:is(.dark *){background-color:var(--color-teal-700)}.dark\:bg-teal-800:is(.dark *){background-color:var(--color-teal-800)}.dark\:bg-teal-900:is(.dark *){background-color:var(--color-teal-900)}.dark\:text-danger:is(.dark *){color:var(--color-danger)}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-info:is(.dark *){color:var(--color-info)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:text-orange-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-success:is(.dark *){color:var(--color-success)}.dark\:text-teal-100:is(.dark *){color:var(--color-teal-100)}.dark\:text-teal-200:is(.dark *){color:var(--color-teal-200)}.dark\:text-teal-300:is(.dark *){color:var(--color-teal-300)}.dark\:text-warning:is(.dark *){color:var(--color-warning)}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.dark\:after\:mix-blend-lighten:is(.dark *):after{content:var(--tw-content);mix-blend-mode:lighten}.dark\:hover\:text-foreground:hover:is(.dark *){color:var(--foreground)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:var(--input)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:var(--primary)}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:var(--primary-foreground)}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:var(--foreground)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:var(--foreground)}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent[data-state=active]:is(.dark *){border-color:#0000}.group\/tabs-list[data-variant=line] .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent[data-state=active]:is(.dark *){background-color:#0000}@media (width>=640px){.sm\:max-w-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-2{grid-template-columns:repeat(2,minmax(0,1fr))}.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 +0,0 @@
1
- import{h as e,ot as t}from"./client-DvdghFBq.js";import{v as n}from"./Collection-CQ4pV54w.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:t()});return e(()=>r?.value||i.nonce?.value)}export{r as n,i as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./createLucideIcon-DCD7INQf.js";var t=e(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]);export{t};