@chenpu17/cc-gw 0.12.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +2 -0
  2. package/package.json +7 -7
  3. package/src/web/dist/assets/About-D2m94wu2.js +1 -0
  4. package/src/web/dist/assets/ApiKeys-Bt-otGF_.js +1 -0
  5. package/src/web/dist/assets/{ConfirmDialog-cZsL-k-v.js → ConfirmDialog-CRSbmgE7.js} +1 -1
  6. package/src/web/dist/assets/Dashboard-81qp43jm.js +1 -0
  7. package/src/web/dist/assets/DialogShell-DxWKa5oR.js +1 -0
  8. package/src/web/dist/assets/Events-BQ4Dkqon.js +1 -0
  9. package/src/web/dist/assets/Help-XaAZ__Kz.js +4 -0
  10. package/src/web/dist/assets/Login-atwWPGzz.js +1 -0
  11. package/src/web/dist/assets/Logs-BYFIK_hM.js +1 -0
  12. package/src/web/dist/assets/PageSection-CC5EhfMe.js +1 -0
  13. package/src/web/dist/assets/PageState-XybOeENt.js +1 -0
  14. package/src/web/dist/assets/PageToolbar-CnLp4aWt.js +1 -0
  15. package/src/web/dist/assets/ProvidersPage-CFCY2xSG.js +1 -0
  16. package/src/web/dist/assets/RoutingPage-35o5ZSMg.js +1 -0
  17. package/src/web/dist/assets/Settings-DC1TPeS9.js +1 -0
  18. package/src/web/dist/assets/Setup-CnQPVK9X.js +2 -0
  19. package/src/web/dist/assets/TargetCombobox-DkVdA04_.js +1 -0
  20. package/src/web/dist/assets/apiKeys-CMk2nxB_.js +1 -0
  21. package/src/web/dist/assets/app-CRxPj2SJ.js +61 -0
  22. package/src/web/dist/assets/badge-eRkhnmCs.js +1 -0
  23. package/src/web/dist/assets/chartTheme-Cx-0Jiew.js +1 -0
  24. package/src/web/dist/assets/{charts-core-DlIzYcw_.js → charts-core-BOHudNiN.js} +1 -1
  25. package/src/web/dist/assets/{charts-engine-C14rMTiz.js → charts-engine-BhFpDbO0.js} +1 -1
  26. package/src/web/dist/assets/{charts-react-Bz6GVFr3.js → charts-react-CPWg-GRD.js} +1 -1
  27. package/src/web/dist/assets/clipboard-DqvcglYs.js +1 -0
  28. package/src/web/dist/assets/currency-Bx141-XL.js +3 -0
  29. package/src/web/dist/assets/disclosure-CU-KJc8C.js +1 -0
  30. package/src/web/dist/assets/{gateway-B_xLF-Rk.js → gateway-DyhqzHSh.js} +1 -1
  31. package/src/web/dist/assets/{global-CJOj9WGx.js → global-BLUcvOa8.js} +1 -1
  32. package/src/web/dist/assets/global-BQq8O0Tv.css +1 -0
  33. package/src/web/dist/assets/{i18n-Dp-o1LhZ.js → i18n-v60Yn7Ls.js} +1 -1
  34. package/src/web/dist/assets/{label-Da-JMxO2.js → label-CdbE1ezd.js} +1 -1
  35. package/src/web/dist/assets/{landing-MsSWlQKc.js → landing-BQdbaG8s.js} +4 -4
  36. package/src/web/dist/assets/modelManagement-DwdbGu0o.js +1 -0
  37. package/src/web/dist/assets/package-Dmrvm3RO.js +1 -0
  38. package/src/web/dist/assets/popover-CuM9b3U7.js +1 -0
  39. package/src/web/dist/assets/{query-DVc6ZTRQ.js → query-CvboQrUT.js} +1 -1
  40. package/src/web/dist/assets/{radix-B9EIjzyN.js → radix-d0BukFWM.js} +2 -2
  41. package/src/web/dist/assets/router-CqUBCAsx.js +19 -0
  42. package/src/web/dist/assets/segmented-control-5mZhY1KZ.js +1 -0
  43. package/src/web/dist/assets/shared-zfHsnBTk.js +1 -0
  44. package/src/web/dist/assets/switch-CZn1nypU.js +1 -0
  45. package/src/web/dist/assets/tabs-CrNMQMmG.js +1 -0
  46. package/src/web/dist/assets/{types-DYz12j32.js → types-BT3gK5lJ.js} +1 -1
  47. package/src/web/dist/assets/useAppMutation-B29oVzxS.js +1 -0
  48. package/src/web/dist/assets/{useEventStream-CQTreYBE.js → useEventStream-DN2DYBVS.js} +1 -1
  49. package/src/web/dist/assets/useProviderForm-DIuM3Z2u.js +1 -0
  50. package/src/web/dist/assets/vendor-JUtelXU0.js +445 -0
  51. package/src/web/dist/index.html +28 -9
  52. package/src/web/dist/landing.html +7 -7
  53. package/src/web/dist/assets/About-B4KoKSAM.js +0 -1
  54. package/src/web/dist/assets/ApiKeys-CwiStTlS.js +0 -1
  55. package/src/web/dist/assets/Dashboard-khRk8U0-.js +0 -1
  56. package/src/web/dist/assets/DialogShell-BbpG8sot.js +0 -1
  57. package/src/web/dist/assets/Events-BGQklKqB.js +0 -1
  58. package/src/web/dist/assets/Help-B2MDKuj8.js +0 -4
  59. package/src/web/dist/assets/Login-CrvH8tn2.js +0 -1
  60. package/src/web/dist/assets/Logs-DoAgVjw3.js +0 -1
  61. package/src/web/dist/assets/PageSection-Bv6dZZwN.js +0 -1
  62. package/src/web/dist/assets/PageState-U6DpaNu4.js +0 -1
  63. package/src/web/dist/assets/PageToolbar-BnDacS2l.js +0 -1
  64. package/src/web/dist/assets/ProvidersWorkbench-CI7TbMf1.js +0 -1
  65. package/src/web/dist/assets/Settings-BnqMqPol.js +0 -1
  66. package/src/web/dist/assets/Setup-deGPdPcE.js +0 -2
  67. package/src/web/dist/assets/apiKeys-Ol_q3sZL.js +0 -1
  68. package/src/web/dist/assets/app-BBAnVEPg.js +0 -61
  69. package/src/web/dist/assets/badge-RZTsODn-.js +0 -1
  70. package/src/web/dist/assets/card-DhuLMeO9.js +0 -1
  71. package/src/web/dist/assets/clipboard-BnAnBk_-.js +0 -1
  72. package/src/web/dist/assets/disclosure-CJdf1-ap.js +0 -1
  73. package/src/web/dist/assets/global-CWlBZlIY.css +0 -1
  74. package/src/web/dist/assets/metric-card-B_6litu2.js +0 -1
  75. package/src/web/dist/assets/package-DHb277_G.js +0 -1
  76. package/src/web/dist/assets/popover-JpUYyIhi.js +0 -1
  77. package/src/web/dist/assets/router-CUBM_FND.js +0 -19
  78. package/src/web/dist/assets/segmented-control-D80bc13p.js +0 -1
  79. package/src/web/dist/assets/select-BTwqvh0l.js +0 -1
  80. package/src/web/dist/assets/shared-BIsbTzWd.js +0 -1
  81. package/src/web/dist/assets/switch-CeKtgMDT.js +0 -1
  82. package/src/web/dist/assets/table-rPjqxS-f.js +0 -1
  83. package/src/web/dist/assets/tabs-DYNHHISl.js +0 -1
  84. package/src/web/dist/assets/useAppMutation-Ds2SX3kE.js +0 -1
  85. package/src/web/dist/assets/useProviderForm-CtZEenP9.js +0 -1
  86. package/src/web/dist/assets/utils-HY2ZFw0f.js +0 -3
  87. package/src/web/dist/assets/vendor-D2wC0h2o.js +0 -409
@@ -1 +0,0 @@
1
- *,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Archivo,Noto Sans SC,PingFang SC,ui-sans-serif,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Archivo,SF Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,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{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: #f3f2f2;--foreground: #201e1d;--card: #ffffff;--card-foreground: #201e1d;--popover: #ffffff;--popover-foreground: #201e1d;--primary: #ec3013;--primary-foreground: #ffffff;--secondary: #f8f4f4;--secondary-foreground: #201e1d;--muted: #eae7e7;--muted-foreground: #605d5d;--accent: #f8f4f4;--accent-foreground: #201e1d;--destructive: #dd2b0f;--destructive-foreground: #ffffff;--border: #d7d3d3;--input: #d7d3d3;--ring: #ec3013;--radius: 0px;--success: #444141;--success-bg: #eae7e7;--warning: #ae1800;--warning-bg: #ffe0d9;--error: #dd2b0f;--error-bg: #fff2ef;--info: #605d5d;--info-bg: #eae7e7;--chart-1: #ec3013;--chart-2: #ae1800;--chart-3: #ff9783;--chart-4: #444141;--chart-5: #9b9797;--surface-shadow: none;--surface-shadow-lg: none;--surface-border: #d7d3d3;--ease-surface: cubic-bezier(.22, 1, .36, 1)}.dark,[data-theme=dark]{--background: #201e1d;--foreground: #f8f4f4;--card: #2d2b2b;--card-foreground: #f8f4f4;--popover: #2d2b2b;--popover-foreground: #f8f4f4;--primary: #ff563c;--primary-foreground: #201e1d;--secondary: #363333;--secondary-foreground: #f8f4f4;--muted: #444141;--muted-foreground: #d7d3d3;--accent: #363333;--accent-foreground: #f8f4f4;--destructive: #ff563c;--destructive-foreground: #201e1d;--border: #605d5d;--input: #605d5d;--ring: #ff563c;--success: #d7d3d3;--success-bg: #444141;--warning: #ff9783;--warning-bg: #71261b;--error: #ff563c;--error-bg: #7c1405;--info: #d7d3d3;--info-bg: #444141;--chart-1: #ff563c;--chart-2: #ff9783;--chart-3: #ae1800;--chart-4: #d7d3d3;--chart-5: #9b9797;--surface-shadow: none;--surface-shadow-lg: none;--surface-border: #605d5d}*{--tw-border-opacity: 1;border-color:rgb(from var(--border) r g b / var(--tw-border-opacity, 1))}html,body,#root{height:100%;width:100%;overflow-x:hidden}body{--tw-bg-opacity: 1;background-color:rgb(from var(--background) r g b / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1));font-family:Archivo,Noto Sans SC,PingFang SC,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;font-feature-settings:"rlig" 1,"calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-weight:800;letter-spacing:-.015em}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.left-0{left:0}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1\.5{right:.375rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-20{top:5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[18\%\]{top:18%}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.-ml-0\.5{margin-left:-.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-9{margin-top:2.25rem}.mt-\[3px\]{margin-top:3px}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[220px\]{height:220px}.h-\[280px\]{height:280px}.h-\[30px\]{height:30px}.h-\[320px\]{height:320px}.h-\[36vh\]{height:36vh}.h-\[72px\]{height:72px}.h-\[7px\]{height:7px}.h-\[9px\]{height:9px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:10rem}.max-h-56{max-height:14rem}.max-h-72{max-height:18rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[172px\]{max-height:172px}.max-h-\[400px\]{max-height:400px}.max-h-\[52vh\]{max-height:52vh}.max-h-\[62vh\]{max-height:62vh}.max-h-\[78vh\]{max-height:78vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[min\(28rem\,var\(--radix-popover-content-available-height\)\)\]{max-height:min(28rem,var(--radix-popover-content-available-height))}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-\[160px\]{min-height:160px}.min-h-\[180px\]{min-height:180px}.min-h-\[188px\]{min-height:188px}.min-h-\[220px\]{min-height:220px}.min-h-\[240px\]{min-height:240px}.min-h-\[260px\]{min-height:260px}.min-h-\[280px\]{min-height:280px}.min-h-\[320px\]{min-height:320px}.min-h-\[80px\]{min-height:80px}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[104px\]{width:104px}.w-\[130px\]{width:130px}.w-\[132px\]{width:132px}.w-\[168px\]{width:168px}.w-\[1px\]{width:1px}.w-\[220px\]{width:220px}.w-\[236px\]{width:236px}.w-\[7px\]{width:7px}.w-\[80px\]{width:80px}.w-\[9px\]{width:9px}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(96vw\,1200px\)\]{width:min(96vw,1200px)}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-14{min-width:3.5rem}.min-w-24{min-width:6rem}.min-w-5{min-width:1.25rem}.min-w-\[1180px\]{min-width:1180px}.min-w-\[180px\]{min-width:180px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[980px\]{min-width:980px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[100px\]{max-width:100px}.max-w-\[1200px\]{max-width:1200px}.max-w-\[120px\]{max-width:120px}.max-w-\[1280px\]{max-width:1280px}.max-w-\[180px\]{max-width:180px}.max-w-\[220px\]{max-width:220px}.max-w-\[90px\]{max-width:90px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-\[1\.15\]{flex:1.15}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-left{transform-origin:left}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(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)) skew(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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-0{--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-100{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}.animate-live-pulse{animation:live-pulse 2.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[14px_1fr\]{grid-template-columns:14px 1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-px{gap:1px}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-border>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(from var(--border) r g b / var(--tw-divide-opacity, 1))}.divide-border\/50>:not([hidden])~:not([hidden]){border-color:rgb(from var(--border) r g b / .5)}.self-start{align-self:flex-start}.self-end{align-self:flex-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{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl,.rounded-3xl{border-radius:var(--radius)}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg,.rounded-md,.rounded-sm,.rounded-xl{border-radius:var(--radius)}.rounded-b-xl{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[color\:var\(--surface-border\)\]{border-color:var(--surface-border)}.border-border{--tw-border-opacity: 1;border-color:rgb(from var(--border) r g b / var(--tw-border-opacity, 1))}.border-border\/30{border-color:rgb(from var(--border) r g b / .3)}.border-border\/40{border-color:rgb(from var(--border) r g b / .4)}.border-border\/45{border-color:rgb(from var(--border) r g b / .45)}.border-border\/50{border-color:rgb(from var(--border) r g b / .5)}.border-border\/55{border-color:rgb(from var(--border) r g b / .55)}.border-border\/60{border-color:rgb(from var(--border) r g b / .6)}.border-border\/70{border-color:rgb(from var(--border) r g b / .7)}.border-destructive{--tw-border-opacity: 1;border-color:rgb(from var(--destructive) r g b / var(--tw-border-opacity, 1))}.border-destructive\/15{border-color:rgb(from var(--destructive) r g b / .15)}.border-destructive\/20{border-color:rgb(from var(--destructive) r g b / .2)}.border-destructive\/25{border-color:rgb(from var(--destructive) r g b / .25)}.border-destructive\/30{border-color:rgb(from var(--destructive) r g b / .3)}.border-destructive\/40{border-color:rgb(from var(--destructive) r g b / .4)}.border-destructive\/50{border-color:rgb(from var(--destructive) r g b / .5)}.border-error\/30{border-color:rgb(from var(--error) r g b / .3)}.border-input{--tw-border-opacity: 1;border-color:rgb(from var(--input) r g b / var(--tw-border-opacity, 1))}.border-primary{--tw-border-opacity: 1;border-color:rgb(from var(--primary) r g b / var(--tw-border-opacity, 1))}.border-primary\/10{border-color:rgb(from var(--primary) r g b / .1)}.border-primary\/20{border-color:rgb(from var(--primary) r g b / .2)}.border-primary\/30{border-color:rgb(from var(--primary) r g b / .3)}.border-primary\/40{border-color:rgb(from var(--primary) r g b / .4)}.border-success{--tw-border-opacity: 1;border-color:rgb(from var(--success) r g b / var(--tw-border-opacity, 1))}.border-success\/20{border-color:rgb(from var(--success) r g b / .2)}.border-success\/30{border-color:rgb(from var(--success) r g b / .3)}.border-transparent{border-color:transparent}.border-warning\/30{border-color:rgb(from var(--warning) r g b / .3)}.border-l-error{--tw-border-opacity: 1;border-left-color:rgb(from var(--error) r g b / var(--tw-border-opacity, 1))}.border-l-success{--tw-border-opacity: 1;border-left-color:rgb(from var(--success) r g b / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-l-warning{--tw-border-opacity: 1;border-left-color:rgb(from var(--warning) r g b / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(from var(--accent) r g b / var(--tw-bg-opacity, 1))}.bg-background{--tw-bg-opacity: 1;background-color:rgb(from var(--background) r g b / var(--tw-bg-opacity, 1))}.bg-background\/95{background-color:rgb(from var(--background) r g b / .95)}.bg-border{--tw-bg-opacity: 1;background-color:rgb(from var(--border) r g b / var(--tw-bg-opacity, 1))}.bg-border\/55{background-color:rgb(from var(--border) r g b / .55)}.bg-border\/60{background-color:rgb(from var(--border) r g b / .6)}.bg-card{--tw-bg-opacity: 1;background-color:rgb(from var(--card) r g b / var(--tw-bg-opacity, 1))}.bg-destructive{--tw-bg-opacity: 1;background-color:rgb(from var(--destructive) r g b / var(--tw-bg-opacity, 1))}.bg-destructive\/10{background-color:rgb(from var(--destructive) r g b / .1)}.bg-destructive\/5{background-color:rgb(from var(--destructive) r g b / .05)}.bg-error-bg{--tw-bg-opacity: 1;background-color:rgb(from var(--error-bg) r g b / var(--tw-bg-opacity, 1))}.bg-foreground{--tw-bg-opacity: 1;background-color:rgb(from var(--foreground) r g b / var(--tw-bg-opacity, 1))}.bg-info-bg{--tw-bg-opacity: 1;background-color:rgb(from var(--info-bg) r g b / var(--tw-bg-opacity, 1))}.bg-muted{--tw-bg-opacity: 1;background-color:rgb(from var(--muted) r g b / var(--tw-bg-opacity, 1))}.bg-muted-foreground{--tw-bg-opacity: 1;background-color:rgb(from var(--muted-foreground) r g b / var(--tw-bg-opacity, 1))}.bg-muted-foreground\/40{background-color:rgb(from var(--muted-foreground) r g b / .4)}.bg-muted\/30{background-color:rgb(from var(--muted) r g b / .3)}.bg-muted\/50{background-color:rgb(from var(--muted) r g b / .5)}.bg-popover{--tw-bg-opacity: 1;background-color:rgb(from var(--popover) r g b / var(--tw-bg-opacity, 1))}.bg-primary{--tw-bg-opacity: 1;background-color:rgb(from var(--primary) r g b / var(--tw-bg-opacity, 1))}.bg-primary\/10{background-color:rgb(from var(--primary) r g b / .1)}.bg-primary\/15{background-color:rgb(from var(--primary) r g b / .15)}.bg-primary\/40{background-color:rgb(from var(--primary) r g b / .4)}.bg-primary\/5{background-color:rgb(from var(--primary) r g b / .05)}.bg-primary\/\[0\.03\]{background-color:rgb(from var(--primary) r g b / .03)}.bg-secondary{--tw-bg-opacity: 1;background-color:rgb(from var(--secondary) r g b / var(--tw-bg-opacity, 1))}.bg-secondary\/30{background-color:rgb(from var(--secondary) r g b / .3)}.bg-secondary\/40{background-color:rgb(from var(--secondary) r g b / .4)}.bg-secondary\/45{background-color:rgb(from var(--secondary) r g b / .45)}.bg-secondary\/50{background-color:rgb(from var(--secondary) r g b / .5)}.bg-secondary\/55{background-color:rgb(from var(--secondary) r g b / .55)}.bg-secondary\/60{background-color:rgb(from var(--secondary) r g b / .6)}.bg-success{--tw-bg-opacity: 1;background-color:rgb(from var(--success) r g b / var(--tw-bg-opacity, 1))}.bg-success-bg{--tw-bg-opacity: 1;background-color:rgb(from var(--success-bg) r g b / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-warning{--tw-bg-opacity: 1;background-color:rgb(from var(--warning) r g b / var(--tw-bg-opacity, 1))}.bg-warning-bg{--tw-bg-opacity: 1;background-color:rgb(from var(--warning-bg) r g b / var(--tw-bg-opacity, 1))}.fill-current{fill:currentColor}.fill-primary\/5{fill:rgb(from var(--primary) r g b / .05)}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.p-\[1px\]{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-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.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-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-2\.5{padding-bottom:.625rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3\.5{padding-bottom:.875rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-14{padding-right:3.5rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-20{padding-top:5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:Archivo,SF Mono,ui-monospace,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.95em\]{font-size:.95em}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-\[2\.4rem\]{font-size:2.4rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-8{line-height:2rem}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.55\]{line-height:1.55}.leading-\[1\.65\]{line-height:1.65}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[-0\.01em\]{letter-spacing:-.01em}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-\[-0\.035em\]{letter-spacing:-.035em}.tracking-\[0\.06em\]{letter-spacing:.06em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.34em\]{letter-spacing:.34em}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{--tw-text-opacity: 1;color:rgb(from var(--accent-foreground) r g b / var(--tw-text-opacity, 1))}.text-background{--tw-text-opacity: 1;color:rgb(from var(--background) r g b / var(--tw-text-opacity, 1))}.text-background\/60{color:rgb(from var(--background) r g b / .6)}.text-background\/80{color:rgb(from var(--background) r g b / .8)}.text-card-foreground{--tw-text-opacity: 1;color:rgb(from var(--card-foreground) r g b / var(--tw-text-opacity, 1))}.text-destructive{--tw-text-opacity: 1;color:rgb(from var(--destructive) r g b / var(--tw-text-opacity, 1))}.text-destructive-foreground{--tw-text-opacity: 1;color:rgb(from var(--destructive-foreground) r g b / var(--tw-text-opacity, 1))}.text-error{--tw-text-opacity: 1;color:rgb(from var(--error) r g b / var(--tw-text-opacity, 1))}.text-foreground{--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1))}.text-foreground\/50{color:rgb(from var(--foreground) r g b / .5)}.text-foreground\/90{color:rgb(from var(--foreground) r g b / .9)}.text-info{--tw-text-opacity: 1;color:rgb(from var(--info) r g b / var(--tw-text-opacity, 1))}.text-muted-foreground{--tw-text-opacity: 1;color:rgb(from var(--muted-foreground) r g b / var(--tw-text-opacity, 1))}.text-muted-foreground\/40{color:rgb(from var(--muted-foreground) r g b / .4)}.text-muted-foreground\/50{color:rgb(from var(--muted-foreground) r g b / .5)}.text-muted-foreground\/60{color:rgb(from var(--muted-foreground) r g b / .6)}.text-muted-foreground\/70{color:rgb(from var(--muted-foreground) r g b / .7)}.text-popover-foreground{--tw-text-opacity: 1;color:rgb(from var(--popover-foreground) r g b / var(--tw-text-opacity, 1))}.text-primary{--tw-text-opacity: 1;color:rgb(from var(--primary) r g b / var(--tw-text-opacity, 1))}.text-primary-foreground{--tw-text-opacity: 1;color:rgb(from var(--primary-foreground) r g b / var(--tw-text-opacity, 1))}.text-primary\/60{color:rgb(from var(--primary) r g b / .6)}.text-primary\/75{color:rgb(from var(--primary) r g b / .75)}.text-primary\/80{color:rgb(from var(--primary) r g b / .8)}.text-secondary-foreground{--tw-text-opacity: 1;color:rgb(from var(--secondary-foreground) r g b / var(--tw-text-opacity, 1))}.text-success{--tw-text-opacity: 1;color:rgb(from var(--success) r g b / var(--tw-text-opacity, 1))}.text-warning{--tw-text-opacity: 1;color:rgb(from var(--warning) r g b / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.accent-primary{accent-color:rgb(from var(--primary) r g b / 1)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.shadow-none{--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)}.shadow-\[var\(--surface-shadow\)\]{--tw-shadow-color: var(--surface-shadow);--tw-shadow: var(--tw-shadow-colored)}.shadow-\[var\(--surface-shadow-lg\)\]{--tw-shadow-color: var(--surface-shadow-lg);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.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-border{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--border) r g b / var(--tw-ring-opacity, 1))}.ring-destructive\/20{--tw-ring-color: rgb(from var(--destructive) r g b / .2)}.ring-destructive\/30{--tw-ring-color: rgb(from var(--destructive) r g b / .3)}.ring-primary\/20{--tw-ring-color: rgb(from var(--primary) r g b / .2)}.ring-ring{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--ring) r g b / var(--tw-ring-opacity, 1))}.ring-warning\/30{--tw-ring-color: rgb(from var(--warning) r g b / .3)}.ring-offset-2{--tw-ring-offset-width: 2px}.ring-offset-background{--tw-ring-offset-color: rgb(from var(--background) r g b / 1)}.blur{--tw-blur: blur(8px);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)}.invert{--tw-invert: invert(100%);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)}.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{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-160{transition-duration:.16s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-surface{transition-timing-function:cubic-bezier(.22,1,.36,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in,.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-left{--tw-enter-translate-x: -100%}.slide-in-from-top-2{--tw-enter-translate-y: -.5rem}.duration-150{animation-duration:.15s}.duration-160{animation-duration:.16s}.duration-200{animation-duration:.2s}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.ease-surface{animation-timing-function:cubic-bezier(.22,1,.36,1)}.running{animation-play-state:running}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground);background-clip:content-box}*:focus-visible{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--primary) r g b / var(--tw-ring-opacity, 1));--tw-ring-offset-width: 2px;--tw-ring-offset-color: rgb(from var(--background) r g b / 1)}::-moz-selection{background:color-mix(in srgb,var(--primary) 30%,transparent)}::selection{background:color-mix(in srgb,var(--primary) 30%,transparent)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .2s ease-out}.motion-surface{transition-property:transform,box-shadow,border-color,background-color,color;transition-duration:.16s;transition-timing-function:var(--ease-surface, cubic-bezier(.22, 1, .36, 1))}.metric-number{font-family:Archivo,SF Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.02em}@media (hover: none) and (pointer: coarse){button,a,[role=button]{min-height:44px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@keyframes toastIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.animate-toast-in{animation:toastIn .3s ease-out}.animate-toast-out{animation:toastOut .2s ease-in forwards}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.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{--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1))}.placeholder\:text-muted-foreground::-moz-placeholder{--tw-text-opacity: 1;color:rgb(from var(--muted-foreground) r g b / var(--tw-text-opacity, 1))}.placeholder\:text-muted-foreground::placeholder{--tw-text-opacity: 1;color:rgb(from var(--muted-foreground) r g b / var(--tw-text-opacity, 1))}.placeholder\:text-muted-foreground\/50::-moz-placeholder{color:rgb(from var(--muted-foreground) r g b / .5)}.placeholder\:text-muted-foreground\/50::placeholder{color:rgb(from var(--muted-foreground) r g b / .5)}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-1\.5:before{content:var(--tw-content);width:.375rem}@keyframes live-pulse{0%,to{content:var(--tw-content);opacity:1;transform:scale(1)}50%{content:var(--tw-content);opacity:.35;transform:scale(.82)}}.before\:animate-live-pulse:before{content:var(--tw-content);animation:live-pulse 2.4s ease-in-out infinite}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-destructive:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(from var(--destructive) r g b / var(--tw-bg-opacity, 1))}.before\:bg-success:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(from var(--success) r g b / var(--tw-bg-opacity, 1))}.before\:bg-warning:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(from var(--warning) r g b / var(--tw-bg-opacity, 1))}.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}.focus-within\:bg-accent:focus-within{--tw-bg-opacity: 1;background-color:rgb(from var(--accent) r g b / var(--tw-bg-opacity, 1))}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-border\/60:hover{border-color:rgb(from var(--border) r g b / .6)}.hover\:border-primary:hover{--tw-border-opacity: 1;border-color:rgb(from var(--primary) r g b / var(--tw-border-opacity, 1))}.hover\:border-primary\/20:hover{border-color:rgb(from var(--primary) r g b / .2)}.hover\:border-primary\/40:hover{border-color:rgb(from var(--primary) r g b / .4)}.hover\:bg-accent:hover{--tw-bg-opacity: 1;background-color:rgb(from var(--accent) r g b / var(--tw-bg-opacity, 1))}.hover\:bg-accent\/50:hover{background-color:rgb(from var(--accent) r g b / .5)}.hover\:bg-background:hover{--tw-bg-opacity: 1;background-color:rgb(from var(--background) r g b / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/10:hover{background-color:rgb(from var(--destructive) r g b / .1)}.hover\:bg-destructive\/90:hover{background-color:rgb(from var(--destructive) r g b / .9)}.hover\:bg-muted:hover{--tw-bg-opacity: 1;background-color:rgb(from var(--muted) r g b / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/30:hover{background-color:rgb(from var(--muted) r g b / .3)}.hover\:bg-muted\/40:hover{background-color:rgb(from var(--muted) r g b / .4)}.hover\:bg-muted\/50:hover{background-color:rgb(from var(--muted) r g b / .5)}.hover\:bg-primary\/5:hover{background-color:rgb(from var(--primary) r g b / .05)}.hover\:bg-primary\/90:hover{background-color:rgb(from var(--primary) r g b / .9)}.hover\:bg-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(from var(--secondary) r g b / var(--tw-bg-opacity, 1))}.hover\:bg-secondary\/45:hover{background-color:rgb(from var(--secondary) r g b / .45)}.hover\:bg-secondary\/50:hover{background-color:rgb(from var(--secondary) r g b / .5)}.hover\:bg-secondary\/80:hover{background-color:rgb(from var(--secondary) r g b / .8)}.hover\:bg-transparent:hover{background-color:transparent}.hover\:text-destructive:hover{--tw-text-opacity: 1;color:rgb(from var(--destructive) r g b / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1))}.hover\:text-primary:hover{--tw-text-opacity: 1;color:rgb(from var(--primary) r g b / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:rgb(from var(--primary) r g b / .8)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[var\(--surface-shadow-lg\)\]:hover{--tw-shadow-color: var(--surface-shadow-lg);--tw-shadow: var(--tw-shadow-colored)}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:absolute:focus{position:absolute}.focus\:z-50:focus{z-index:50}.focus\:m-4:focus{margin:1rem}.focus\:rounded-md:focus{border-radius:var(--radius)}.focus\:bg-accent:focus{--tw-bg-opacity: 1;background-color:rgb(from var(--accent) r g b / var(--tw-bg-opacity, 1))}.focus\:bg-accent\/80:focus{background-color:rgb(from var(--accent) r g b / .8)}.focus\:bg-primary:focus{--tw-bg-opacity: 1;background-color:rgb(from var(--primary) r g b / var(--tw-bg-opacity, 1))}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:text-accent-foreground:focus{--tw-text-opacity: 1;color:rgb(from var(--accent-foreground) r g b / var(--tw-text-opacity, 1))}.focus\:text-primary-foreground:focus{--tw-text-opacity: 1;color:rgb(from var(--primary-foreground) r g b / var(--tw-text-opacity, 1))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--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)}.focus\:ring-ring:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--ring) r g b / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2: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(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)}.focus-visible\:ring-primary:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--primary) r g b / var(--tw-ring-opacity, 1))}.focus-visible\:ring-ring:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--ring) r g b / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: rgb(from var(--background) r g b / 1)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group[open] .group-open\:rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[open] .group-open\:bg-primary\/10{background-color:rgb(from var(--primary) r g b / .1)}.group[open] .group-open\:text-primary{--tw-text-opacity: 1;color:rgb(from var(--primary) r g b / var(--tw-text-opacity, 1))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-destructive\/20{border-color:rgb(from var(--destructive) r g b / .2)}.group.destructive .group-\[\.destructive\]\:text-destructive{--tw-text-opacity: 1;color:rgb(from var(--destructive) r g b / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:rgb(from var(--destructive) r g b / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive\/10:hover{background-color:rgb(from var(--destructive) r g b / .1)}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive:hover{--tw-text-opacity: 1;color:rgb(from var(--destructive) r g b / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(from var(--destructive) r g b / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-destructive:focus{--tw-ring-offset-color: rgb(from var(--destructive) r g b / 1)}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled],.data-\[state\=closed\]\:pointer-events-none[data-state=closed]{pointer-events:none}.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)) skew(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)) skew(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)) skew(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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:border-primary[data-state=active]{--tw-border-opacity: 1;border-color:rgb(from var(--primary) r g b / var(--tw-border-opacity, 1))}.data-\[selected\=true\]\:bg-secondary[data-selected=true]{--tw-bg-opacity: 1;background-color:rgb(from var(--secondary) r g b / var(--tw-bg-opacity, 1))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(from var(--primary) r g b / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:bg-accent\/80[data-state=open]{background-color:rgb(from var(--accent) r g b / .8)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{--tw-bg-opacity: 1;background-color:rgb(from var(--muted) r g b / var(--tw-bg-opacity, 1))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{--tw-bg-opacity: 1;background-color:rgb(from var(--input) r g b / var(--tw-bg-opacity, 1))}.data-\[state\=active\]\:font-semibold[data-state=active]{font-weight:600}.data-\[selected\=true\]\:text-foreground[data-selected=true],.data-\[state\=active\]\:text-foreground[data-state=active]{--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.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-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top-\[12\%\][data-state=closed]{--tw-exit-translate-y: -12%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[12\%\][data-state=open]{--tw-enter-translate-y: -12%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=inactive\]\:hover\:text-foreground:hover[data-state=inactive]{--tw-text-opacity: 1;color:rgb(from var(--foreground) r g b / var(--tw-text-opacity, 1))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mt-2\.5{margin-top:.625rem}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-8{height:2rem}.sm\:w-56{width:14rem}.sm\:w-64{width:16rem}.sm\:w-8{width:2rem}.sm\:w-9{width:2.25rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\: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)))}.sm\:self-auto{align-self:auto}.sm\:justify-self-end{justify-self:end}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3\.5{padding:.875rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-6xl{font-size:3.75rem;line-height:1}.sm\:text-\[13px\]{font-size:13px}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.sm\:leading-5{line-height:1.25rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:inline-flex{display:inline-flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:w-56{width:14rem}.md\:w-\[200px\]{width:200px}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:px-0{padding-left:0;padding-right:0}.md\:pb-4{padding-bottom:1rem}}@media (min-width: 1024px){.lg\:mx-0{margin-left:0;margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-full{height:100%}.lg\:w-auto{width:auto}.lg\:max-w-3xl{max-width:48rem}.lg\:shrink{flex-shrink:1}.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))}.lg\:grid-cols-\[1\.2fr_auto\]{grid-template-columns:1.2fr auto}.lg\:grid-cols-\[1fr_auto_1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr auto 1fr}.lg\:grid-cols-\[200px_minmax\(0\,1fr\)_288px\]{grid-template-columns:200px minmax(0,1fr) 288px}.lg\:grid-cols-\[280px_minmax\(0\,1fr\)\]{grid-template-columns:280px minmax(0,1fr)}.lg\:grid-cols-\[minmax\(0\,1\.05fr\)_minmax\(0\,0\.95fr\)\]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1\.05fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(400px\,0\.8fr\)\]{grid-template-columns:minmax(0,1fr) minmax(400px,.8fr)}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:flex-wrap{flex-wrap:wrap}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-center{align-items:center}.lg\:items-stretch{align-items:stretch}.lg\:justify-end{justify-content:flex-end}.lg\:justify-between{justify-content:space-between}.lg\:gap-1{gap:.25rem}.lg\:overflow-visible{overflow:visible}.lg\:border-b-0{border-bottom-width:0px}.lg\:border-r{border-right-width:1px}.lg\:p-10{padding:2.5rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-24{padding-top:6rem;padding-bottom:6rem}.lg\:pb-0{padding-bottom:0}.lg\:pt-28{padding-top:7rem}.lg\:text-right{text-align:right}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-4{top:1rem}.xl\:block{display:block}.xl\:hidden{display:none}.xl\:w-auto{width:auto}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-\[200px_1fr\]{grid-template-columns:200px 1fr}.xl\:grid-cols-\[208px_minmax\(0\,1fr\)\]{grid-template-columns:208px minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,0\.9fr\)_minmax\(0\,1\.1fr\)\]{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.xl\:grid-cols-\[minmax\(0\,1\.15fr\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.xl\:grid-cols-\[minmax\(0\,1\.35fr\)_minmax\(320px\,0\.85fr\)\]{grid-template-columns:minmax(0,1.35fr) minmax(320px,.85fr)}.xl\:grid-cols-\[minmax\(0\,1fr\)_280px\]{grid-template-columns:minmax(0,1fr) 280px}.xl\:flex-row{flex-direction:row}.xl\:flex-nowrap{flex-wrap:nowrap}.xl\:items-start{align-items:flex-start}.xl\:items-center{align-items:center}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-\[10px\] [cmdk-group-heading]{font-size:10px}.\[\&_\[cmdk-group-heading\]\]\:font-semibold [cmdk-group-heading]{font-weight:600}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_\[cmdk-group-heading\]\]\:tracking-wider [cmdk-group-heading]{letter-spacing:.05em}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{--tw-text-opacity: 1;color:rgb(from var(--muted-foreground) r g b / var(--tw-text-opacity, 1))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-1\.5 [cmdk-group]{padding-left:.375rem;padding-right:.375rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-4 [cmdk-input-wrapper] svg{height:1rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-4 [cmdk-input-wrapper] svg{width:1rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-2 [cmdk-item]{padding-top:.5rem;padding-bottom:.5rem}.\[\&_\[cmdk-item\]_svg\]\:h-4 [cmdk-item] svg{height:1rem}.\[\&_\[cmdk-item\]_svg\]\:w-4 [cmdk-item] svg{width:1rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.\[\&_tr\]\:border-border tr{--tw-border-opacity: 1;border-color:rgb(from var(--border) r g b / var(--tw-border-opacity, 1))}
@@ -1 +0,0 @@
1
- import{r as g,j as t,aU as y,aV as N}from"./vendor-D2wC0h2o.js";import{c as M}from"./card-DhuLMeO9.js";import{c as d}from"./global-CJOj9WGx.js";const $=e=>1-Math.pow(1-e,3);function R(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}const A=e=>Math.round(e).toLocaleString();function F({value:e,duration:i=600,format:n=A,className:s}){const r=g.useRef(R()).current,[u,m]=g.useState(e),o=g.useRef(e),a=g.useRef(void 0);return g.useEffect(()=>{const c=o.current,l=e;if(o.current=e,r||!Number.isFinite(l)||c===l){m(l);return}const x=performance.now(),f=p=>{const h=Math.min(1,(p-x)/i);m(c+(l-c)*$(h)),h<1&&(a.current=requestAnimationFrame(f))};return a.current=requestAnimationFrame(f),()=>{a.current!==void 0&&cancelAnimationFrame(a.current)}},[e,i,r]),t.jsx("span",{className:s,children:n(u)})}const L={sm:{wrap:"p-3.5",value:"text-xl",label:"text-[11px]",body:"mt-1"},md:{wrap:"p-5",value:"text-2xl",label:"text-xs",body:"mt-2"},lg:{wrap:"p-5",value:"text-3xl",label:"text-xs",body:"mt-2.5"}};function C(e,i){if(!e||e.length<2)return null;const n=100,s=28,r=Math.min(...e),m=Math.max(...e)-r||1,o=n/(e.length-1),c=`M ${e.map((x,f)=>{const p=f*o,h=s-(x-r)/m*(s-4)-2;return`${p.toFixed(2)},${h.toFixed(2)}`}).join(" L ")}`,l=`${c} L ${n},${s} L 0,${s} Z`;return t.jsxs("svg",{viewBox:`0 0 ${n} ${s}`,preserveAspectRatio:"none","aria-hidden":!0,className:"h-8 w-full",children:[t.jsx("path",{d:l,className:"fill-primary/5"}),t.jsx("path",{d:c,fill:"none",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:d(i)})]})}function k({delta:e}){const i=e.value>=0,n=!e.invertColor,s=i===n,r=e.format?e.format(e.value):`${e.value>0?"+":""}${e.value}`,u=i?y:N;return t.jsxs("span",{className:d("inline-flex items-center gap-0.5 px-1.5 py-0.5 text-[11px] font-medium",s?"bg-success-bg text-success":"bg-error-bg text-error"),children:[t.jsx(u,{className:"h-3 w-3","aria-hidden":!0}),r]})}function U({label:e,value:i,rawValue:n,format:s,suffix:r,icon:u,delta:m,sparkline:o,hint:a,size:c="md",featured:l=!1,dotClassName:x,className:f,valueTestId:p,interactive:h=!0,style:w}){const j=L[c],b=n!==void 0?t.jsx(F,{value:n,format:s}):i,v=(o==null?void 0:o.strokeClassName)??"text-primary/60";return t.jsxs("div",{className:d(M({variant:h?"interactive":"default"}),"motion-surface relative flex flex-col",j.wrap,l&&"bg-primary/[0.03]",f),style:w,children:[t.jsxs("div",{className:"flex items-center gap-2",children:[x?t.jsx("span",{className:d("h-[7px] w-[7px] rounded-full",x),"aria-hidden":!0}):null,u?t.jsx("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-lg bg-secondary text-muted-foreground",children:u}):null,t.jsx("span",{className:d("font-medium uppercase tracking-wider text-muted-foreground",j.label),children:e})]}),t.jsxs("div",{className:d("flex items-end gap-2",j.body),children:[t.jsxs("span",{...p?{"data-testid":p}:{},className:d("metric-number font-semibold tracking-tight text-foreground",j.value),children:[b,r?t.jsx("span",{className:"ml-0.5 text-sm font-medium text-muted-foreground",children:r}):null]}),m?t.jsx(k,{delta:m}):null]}),a?t.jsx("p",{className:"mt-1.5 text-xs text-muted-foreground/70",children:a}):null,o?t.jsx("div",{className:"mt-2.5",children:C(o.data,v)}):null]})}export{U as M};
@@ -1 +0,0 @@
1
- const o="0.12.0",s={version:o};export{s as p};
@@ -1 +0,0 @@
1
- import{r as n,j as o}from"./vendor-D2wC0h2o.js";import{p as i,q as p,r as c,s as t,A as m}from"./radix-B9EIjzyN.js";import{c as l}from"./global-CJOj9WGx.js";const x=i,b=p,h=m,f=n.forwardRef(({className:a,align:e="center",sideOffset:r=4,...s},d)=>o.jsx(c,{children:o.jsx(t,{ref:d,align:e,sideOffset:r,className:l("z-50 w-72 rounded-xl border border-[color:var(--surface-border)] bg-popover p-4 text-popover-foreground shadow-[var(--surface-shadow-lg)] outline-none data-[state=open]:animate-in data-[state=closed]:pointer-events-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...s})}));f.displayName=t.displayName;export{x as P,b as a,f as b,h as c};
@@ -1,19 +0,0 @@
1
- import{r as a,b as g,c as T,g as D,d as J,A as Q,p as Y,e as S,m as ie,f as se,h as K,k as ue,R as ce,l as $}from"./vendor-D2wC0h2o.js";/**
2
- * React Router v6.30.3
3
- *
4
- * Copyright (c) Remix Software Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */function N(){return N=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},N.apply(this,arguments)}const B=a.createContext(null),Z=a.createContext(null),R=a.createContext(null),k=a.createContext(null),P=a.createContext({outlet:null,matches:[],isDataRoute:!1}),H=a.createContext(null);function fe(e,t){let{relative:r}=t===void 0?{}:t;L()||g(!1);let{basename:n,navigator:o}=a.useContext(R),{hash:i,pathname:l,search:d}=_(e,{relative:r}),f=l;return n!=="/"&&(f=l==="/"?n:T([n,l])),o.createHref({pathname:f,search:d,hash:i})}function L(){return a.useContext(k)!=null}function w(){return L()||g(!1),a.useContext(k).location}function ee(e){a.useContext(R).static||a.useLayoutEffect(e)}function V(){let{isDataRoute:e}=a.useContext(P);return e?Le():de()}function de(){L()||g(!1);let e=a.useContext(B),{basename:t,future:r,navigator:n}=a.useContext(R),{matches:o}=a.useContext(P),{pathname:i}=w(),l=JSON.stringify(D(o,r.v7_relativeSplatPath)),d=a.useRef(!1);return ee(()=>{d.current=!0}),a.useCallback(function(c,u){if(u===void 0&&(u={}),!d.current)return;if(typeof c=="number"){n.go(c);return}let s=J(c,JSON.parse(l),i,u.relative==="path");e==null&&t!=="/"&&(s.pathname=s.pathname==="/"?t:T([t,s.pathname])),(u.replace?n.replace:n.push)(s,u.state,u)},[t,n,l,i,e])}const he=a.createContext(null);function pe(e){let t=a.useContext(P).outlet;return t&&a.createElement(he.Provider,{value:e},t)}function _(e,t){let{relative:r}=t===void 0?{}:t,{future:n}=a.useContext(R),{matches:o}=a.useContext(P),{pathname:i}=w(),l=JSON.stringify(D(o,n.v7_relativeSplatPath));return a.useMemo(()=>J(e,JSON.parse(l),i,r==="path"),[e,l,i,r])}function ve(e,t){return me(e,t)}function me(e,t,r,n){L()||g(!1);let{navigator:o}=a.useContext(R),{matches:i}=a.useContext(P),l=i[i.length-1],d=l?l.params:{};l&&l.pathname;let f=l?l.pathnameBase:"/";l&&l.route;let c=w(),u;if(t){var s;let h=typeof t=="string"?Y(t):t;f==="/"||(s=h.pathname)!=null&&s.startsWith(f)||g(!1),u=h}else u=c;let p=u.pathname||"/",C=p;if(f!=="/"){let h=f.replace(/^\//,"").split("/");C="/"+p.replace(/^\//,"").split("/").slice(h.length).join("/")}let v=ie(e,{pathname:C}),x=Ee(v&&v.map(h=>Object.assign({},h,{params:Object.assign({},d,h.params),pathname:T([f,o.encodeLocation?o.encodeLocation(h.pathname).pathname:h.pathname]),pathnameBase:h.pathnameBase==="/"?f:T([f,o.encodeLocation?o.encodeLocation(h.pathnameBase).pathname:h.pathnameBase])})),i,r,n);return t&&x?a.createElement(k.Provider,{value:{location:N({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Q.Pop}},x):x}function ge(){let e=we(),t=se(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),r?a.createElement("pre",{style:o},r):null,null)}const Ce=a.createElement(ge,null);class xe extends a.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error!==void 0?a.createElement(P.Provider,{value:this.props.routeContext},a.createElement(H.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function ye(e){let{routeContext:t,match:r,children:n}=e,o=a.useContext(B);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),a.createElement(P.Provider,{value:t},n)}function Ee(e,t,r,n){var o;if(t===void 0&&(t=[]),r===void 0&&(r=null),n===void 0&&(n=null),e==null){var i;if(!r)return null;if(r.errors)e=r.matches;else if((i=n)!=null&&i.v7_partialHydration&&t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let l=e,d=(o=r)==null?void 0:o.errors;if(d!=null){let u=l.findIndex(s=>s.route.id&&(d==null?void 0:d[s.route.id])!==void 0);u>=0||g(!1),l=l.slice(0,Math.min(l.length,u+1))}let f=!1,c=-1;if(r&&n&&n.v7_partialHydration)for(let u=0;u<l.length;u++){let s=l[u];if((s.route.HydrateFallback||s.route.hydrateFallbackElement)&&(c=u),s.route.id){let{loaderData:p,errors:C}=r,v=s.route.loader&&p[s.route.id]===void 0&&(!C||C[s.route.id]===void 0);if(s.route.lazy||v){f=!0,c>=0?l=l.slice(0,c+1):l=[l[0]];break}}}return l.reduceRight((u,s,p)=>{let C,v=!1,x=null,h=null;r&&(C=d&&s.route.id?d[s.route.id]:void 0,x=s.route.errorElement||Ce,f&&(c<0&&p===0?(Se("route-fallback"),v=!0,h=null):c===p&&(v=!0,h=s.route.hydrateFallbackElement||null)));let b=t.concat(l.slice(0,p+1)),y=()=>{let m;return C?m=x:v?m=h:s.route.Component?m=a.createElement(s.route.Component,null):s.route.element?m=s.route.element:m=u,a.createElement(ye,{match:s,routeContext:{outlet:u,matches:b,isDataRoute:r!=null},children:m})};return r&&(s.route.ErrorBoundary||s.route.errorElement||p===0)?a.createElement(xe,{location:r.location,revalidation:r.revalidation,component:x,error:C,children:y(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):y()},null)}var te=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(te||{}),re=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(re||{});function Re(e){let t=a.useContext(B);return t||g(!1),t}function Pe(e){let t=a.useContext(Z);return t||g(!1),t}function be(e){let t=a.useContext(P);return t||g(!1),t}function ne(e){let t=be(),r=t.matches[t.matches.length-1];return r.route.id||g(!1),r.route.id}function we(){var e;let t=a.useContext(H),r=Pe(),n=ne();return t!==void 0?t:(e=r.errors)==null?void 0:e[n]}function Le(){let{router:e}=Re(te.UseNavigateStable),t=ne(re.UseNavigateStable),r=a.useRef(!1);return ee(()=>{r.current=!0}),a.useCallback(function(o,i){i===void 0&&(i={}),r.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,N({fromRouteId:t},i)))},[e,t])}const G={};function Se(e,t,r){G[e]||(G[e]=!0)}function Ne(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function $e(e){let{to:t,replace:r,state:n,relative:o}=e;L()||g(!1);let{future:i,static:l}=a.useContext(R),{matches:d}=a.useContext(P),{pathname:f}=w(),c=V(),u=J(t,D(d,i.v7_relativeSplatPath),f,o==="path"),s=JSON.stringify(u);return a.useEffect(()=>c(JSON.parse(s),{replace:r,state:n,relative:o}),[c,s,o,r,n]),null}function Ge(e){return pe(e.context)}function Ue(e){g(!1)}function Te(e){let{basename:t="/",children:r=null,location:n,navigationType:o=Q.Pop,navigator:i,static:l=!1,future:d}=e;L()&&g(!1);let f=t.replace(/^\/*/,"/"),c=a.useMemo(()=>({basename:f,navigator:i,static:l,future:N({v7_relativeSplatPath:!1},d)}),[f,d,i,l]);typeof n=="string"&&(n=Y(n));let{pathname:u="/",search:s="",hash:p="",state:C=null,key:v="default"}=n,x=a.useMemo(()=>{let h=S(u,f);return h==null?null:{location:{pathname:h,search:s,hash:p,state:C,key:v},navigationType:o}},[f,u,s,p,C,v,o]);return x==null?null:a.createElement(R.Provider,{value:c},a.createElement(k.Provider,{children:r,value:x}))}function Xe(e){let{children:t,location:r}=e;return ve(A(t),r)}new Promise(()=>{});function A(e,t){t===void 0&&(t=[]);let r=[];return a.Children.forEach(e,(n,o)=>{if(!a.isValidElement(n))return;let i=[...t,o];if(n.type===a.Fragment){r.push.apply(r,A(n.props.children,i));return}n.type!==Ue&&g(!1),!n.props.index||!n.props.children||g(!1);let l={id:n.props.id||i.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(l.children=A(n.props.children,i)),r.push(l)}),r}/**
11
- * React Router DOM v6.30.3
12
- *
13
- * Copyright (c) Remix Software Inc.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE.md file in the root directory of this source tree.
17
- *
18
- * @license MIT
19
- */function O(){return O=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},O.apply(this,arguments)}function ae(e,t){if(e==null)return{};var r={},n=Object.keys(e),o,i;for(i=0;i<n.length;i++)o=n[i],!(t.indexOf(o)>=0)&&(r[o]=e[o]);return r}function Oe(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Be(e,t){return e.button===0&&(!t||t==="_self")&&!Oe(e)}function M(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(o=>[r,o]):[[r,n]])},[]))}function ke(e,t){let r=M(e);return t&&t.forEach((n,o)=>{r.has(o)||t.getAll(o).forEach(i=>{r.append(o,i)})}),r}const _e=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],Fe=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],je="6";try{window.__reactRouterVersion=je}catch{}const Ie=a.createContext({isTransitioning:!1}),Ae="startTransition",X=ce[Ae];function qe(e){let{basename:t,children:r,future:n,window:o}=e,i=a.useRef();i.current==null&&(i.current=ue({window:o,v5Compat:!0}));let l=i.current,[d,f]=a.useState({action:l.action,location:l.location}),{v7_startTransition:c}=n||{},u=a.useCallback(s=>{c&&X?X(()=>f(s)):f(s)},[f,c]);return a.useLayoutEffect(()=>l.listen(u),[l,u]),a.useEffect(()=>Ne(n),[n]),a.createElement(Te,{basename:t,children:r,location:d.location,navigationType:d.action,navigator:l,future:n})}const Me=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",We=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,De=a.forwardRef(function(t,r){let{onClick:n,relative:o,reloadDocument:i,replace:l,state:d,target:f,to:c,preventScrollReset:u,viewTransition:s}=t,p=ae(t,_e),{basename:C}=a.useContext(R),v,x=!1;if(typeof c=="string"&&We.test(c)&&(v=c,Me))try{let m=new URL(window.location.href),E=c.startsWith("//")?new URL(m.protocol+c):new URL(c),U=S(E.pathname,C);E.origin===m.origin&&U!=null?c=U+E.search+E.hash:x=!0}catch{}let h=fe(c,{relative:o}),b=Ve(c,{replace:l,state:d,target:f,preventScrollReset:u,relative:o,viewTransition:s});function y(m){n&&n(m),m.defaultPrevented||b(m)}return a.createElement("a",O({},p,{href:v||h,onClick:x||i?n:y,ref:r,target:f}))}),Qe=a.forwardRef(function(t,r){let{"aria-current":n="page",caseSensitive:o=!1,className:i="",end:l=!1,style:d,to:f,viewTransition:c,children:u}=t,s=ae(t,Fe),p=_(f,{relative:s.relative}),C=w(),v=a.useContext(Z),{navigator:x,basename:h}=a.useContext(R),b=v!=null&&ze(p)&&c===!0,y=x.encodeLocation?x.encodeLocation(p).pathname:p.pathname,m=C.pathname,E=v&&v.navigation&&v.navigation.location?v.navigation.location.pathname:null;o||(m=m.toLowerCase(),E=E?E.toLowerCase():null,y=y.toLowerCase()),E&&h&&(E=S(E,h)||E);const U=y!=="/"&&y.endsWith("/")?y.length-1:y.length;let F=m===y||!l&&m.startsWith(y)&&m.charAt(U)==="/",z=E!=null&&(E===y||!l&&E.startsWith(y)&&E.charAt(y.length)==="/"),j={isActive:F,isPending:z,isTransitioning:b},oe=F?n:void 0,I;typeof i=="function"?I=i(j):I=[i,F?"active":null,z?"pending":null,b?"transitioning":null].filter(Boolean).join(" ");let le=typeof d=="function"?d(j):d;return a.createElement(De,O({},s,{"aria-current":oe,className:I,ref:r,style:le,to:f,viewTransition:c}),typeof u=="function"?u(j):u)});var W;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(W||(W={}));var q;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(q||(q={}));function Je(e){let t=a.useContext(B);return t||g(!1),t}function Ve(e,t){let{target:r,replace:n,state:o,preventScrollReset:i,relative:l,viewTransition:d}=t===void 0?{}:t,f=V(),c=w(),u=_(e,{relative:l});return a.useCallback(s=>{if(Be(s,r)){s.preventDefault();let p=n!==void 0?n:K(c)===K(u);f(e,{replace:p,state:o,preventScrollReset:i,relative:l,viewTransition:d})}},[c,f,u,n,o,r,e,i,l,d])}function Ye(e){let t=a.useRef(M(e)),r=a.useRef(!1),n=w(),o=a.useMemo(()=>ke(n.search,r.current?null:t.current),[n.search]),i=V(),l=a.useCallback((d,f)=>{const c=M(typeof d=="function"?d(o):d);r.current=!0,i("?"+c,f)},[i,o]);return[o,l]}function ze(e,t){t===void 0&&(t={});let r=a.useContext(Ie);r==null&&g(!1);let{basename:n}=Je(W.useViewTransitionState),o=_(e,{relative:t.relative});if(!r.isTransitioning)return!1;let i=S(r.currentLocation.pathname,n)||r.currentLocation.pathname,l=S(r.nextLocation.pathname,n)||r.nextLocation.pathname;return $(o.pathname,l)!=null||$(o.pathname,i)!=null}export{qe as B,De as L,$e as N,Ge as O,Xe as R,w as a,Qe as b,Ue as c,Ye as d,V as u};
@@ -1 +0,0 @@
1
- import{j as t}from"./vendor-D2wC0h2o.js";import{c as a}from"./global-CJOj9WGx.js";function x({value:n,onChange:s,options:i,className:l,block:o,"aria-label":m}){return t.jsx("div",{role:"group","aria-label":m,className:a("flex items-center gap-1 bg-secondary p-1",l),children:i.map(e=>{const r=e.value===n;return t.jsxs("button",{type:"button",onClick:()=>s(e.value),"aria-pressed":r,className:a("inline-flex h-8 items-center justify-center gap-1.5 whitespace-nowrap px-3.5 text-xs font-medium transition-all",o?"flex-1":"shrink-0",r?"bg-primary text-primary-foreground":"text-muted-foreground hover:bg-primary/5 hover:text-foreground"),children:[e.icon,e.label]},e.value)})})}export{x as S};
@@ -1 +0,0 @@
1
- import{r as o,j as e,aj as d,$ as g,ar as N}from"./vendor-D2wC0h2o.js";import{B as w,V as j,E as n,F as b,G as S,H as i,J as v,K as c,M as R,N as C,Q as m,U as p,W as f,X as u}from"./radix-B9EIjzyN.js";import{c as r}from"./global-CJOj9WGx.js";const k=w,L=j,I=o.forwardRef(({className:s,children:t,...a},l)=>e.jsxs(n,{ref:l,className:r("flex h-9 w-full items-center justify-between rounded-lg border border-border bg-card px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...a,children:[t,e.jsx(b,{asChild:!0,children:e.jsx(d,{className:"h-4 w-4 opacity-50"})})]}));I.displayName=n.displayName;const x=o.forwardRef(({className:s,...t},a)=>e.jsx(m,{ref:a,className:r("flex cursor-default items-center justify-center py-1",s),...t,children:e.jsx(N,{className:"h-4 w-4"})}));x.displayName=m.displayName;const h=o.forwardRef(({className:s,...t},a)=>e.jsx(p,{ref:a,className:r("flex cursor-default items-center justify-center py-1",s),...t,children:e.jsx(d,{className:"h-4 w-4"})}));h.displayName=p.displayName;const B=o.forwardRef(({className:s,children:t,position:a="popper",...l},y)=>e.jsx(S,{children:e.jsxs(i,{ref:y,className:r("relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-[var(--surface-shadow-lg)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",s),position:a,...l,children:[e.jsx(x,{}),e.jsx(v,{className:r("p-2",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),e.jsx(h,{})]})}));B.displayName=i.displayName;const U=o.forwardRef(({className:s,...t},a)=>e.jsx(f,{ref:a,className:r("py-1.5 pl-8 pr-2 text-sm font-semibold",s),...t}));U.displayName=f.displayName;const V=o.forwardRef(({className:s,children:t,...a},l)=>e.jsxs(c,{ref:l,className:r("relative flex w-full cursor-default select-none items-center rounded-md py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...a,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(R,{children:e.jsx(g,{className:"h-4 w-4"})})}),e.jsx(C,{children:t})]}));V.displayName=c.displayName;const z=o.forwardRef(({className:s,...t},a)=>e.jsx(u,{ref:a,className:r("-mx-1 my-1 h-px bg-border",s),...t}));z.displayName=u.displayName;export{k as S,I as a,L as b,B as c,V as d};
@@ -1 +0,0 @@
1
- import{r as p,j as e}from"./vendor-D2wC0h2o.js";import{c as u,q as m}from"./app-BBAnVEPg.js";import{a as b}from"./apiKeys-Ol_q3sZL.js";import{u as x}from"./i18n-Dp-o1LhZ.js";const j=[{value:1,labelKey:"apiKeys.analytics.range.today"},{value:7,labelKey:"apiKeys.analytics.range.week"},{value:30,labelKey:"apiKeys.analytics.range.month"}];function v(){var s;const l=[{id:"anthropic",label:"Anthropic"},{id:"openai",label:"OpenAI"}],t=u(m.customEndpoints.all(),b.customEndpointOptionsRequest());return p.useMemo(()=>{var n;const a=(((n=t.data)==null?void 0:n.endpoints)??[]).map(o=>({id:o.id,label:o.label||o.id}));return[...l,...a]},[(s=t.data)==null?void 0:s.endpoints])}function N({available:l,hint:t,onChange:s,selected:a}){const{t:n}=x(),o=a.length===0,i=()=>{s([])},c=r=>{if(a.includes(r)){s(a.filter(d=>d!==r));return}s([...a,r])};return e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"rounded-lg border border-border bg-secondary px-3 py-3 text-xs text-muted-foreground",children:t}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 transition-colors hover:border-primary/20 hover:bg-accent/50",children:[e.jsx("input",{type:"checkbox",checked:o,onChange:i,className:"h-4 w-4 rounded border-input accent-primary"}),e.jsx("span",{className:"text-sm font-medium",children:n("apiKeys.allEndpoints")})]}),e.jsx("div",{className:"grid max-h-40 gap-1 overflow-y-auto",children:l.map(r=>e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-lg border border-border bg-card px-3 py-2.5 transition-colors hover:border-primary/20 hover:bg-accent/50",children:[e.jsx("input",{type:"checkbox",checked:!o&&a.includes(r.id),onChange:()=>c(r.id),className:"h-4 w-4 rounded border-input accent-primary"}),e.jsx("span",{className:"text-sm",children:r.label}),e.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",r.id,")"]})]},r.id))})]})}export{N as E,j as R,v as u};
@@ -1 +0,0 @@
1
- import{r as i,j as e}from"./vendor-D2wC0h2o.js";import{y as s,z as n}from"./radix-B9EIjzyN.js";import{c as r}from"./global-CJOj9WGx.js";const c=i.forwardRef(({className:t,...a},o)=>e.jsx(s,{className:r("peer inline-flex h-7 w-12 shrink-0 cursor-pointer items-center rounded-full border border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",t),...a,ref:o,children:e.jsx(n,{className:r("pointer-events-none block h-6 w-6 rounded-full bg-background ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));c.displayName=s.displayName;export{c as S};
@@ -1 +0,0 @@
1
- import{_ as r}from"./charts-react-Bz6GVFr3.js";import{u as d,i as m,a as b,b as i,c,d as f,f as n,g as p}from"./charts-core-DlIzYcw_.js";import{r as l,j as t}from"./vendor-D2wC0h2o.js";import{c as o}from"./global-CJOj9WGx.js";d([m,b,i,c,f,n,p]);const _=r,x=l.forwardRef(({className:a,...e},s)=>t.jsx("div",{className:"relative w-full overflow-auto",children:t.jsx("table",{ref:s,className:o("w-full caption-bottom border-collapse text-sm",a),...e})}));x.displayName="Table";const u=l.forwardRef(({className:a,...e},s)=>t.jsx("thead",{ref:s,className:o("[&_tr]:border-b [&_tr]:border-border",a),...e}));u.displayName="TableHeader";const N=l.forwardRef(({className:a,...e},s)=>t.jsx("tbody",{ref:s,className:o("[&_tr:last-child]:border-0",a),...e}));N.displayName="TableBody";const T=l.forwardRef(({className:a,...e},s)=>t.jsx("tfoot",{ref:s,className:o("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",a),...e}));T.displayName="TableFooter";const w=l.forwardRef(({className:a,...e},s)=>t.jsx("tr",{ref:s,className:o("border-b border-border transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted group",a),...e}));w.displayName="TableRow";const y=l.forwardRef(({className:a,...e},s)=>t.jsx("th",{ref:s,className:o("h-10 px-4 text-left align-middle text-xs font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",a),...e}));y.displayName="TableHead";const h=l.forwardRef(({className:a,...e},s)=>t.jsx("td",{ref:s,className:o("px-4 py-3 align-middle text-sm [&:has([role=checkbox])]:pr-0",a),...e}));h.displayName="TableCell";const j=l.forwardRef(({className:a,...e},s)=>t.jsx("caption",{ref:s,className:o("mt-4 text-sm text-muted-foreground",a),...e}));j.displayName="TableCaption";export{_ as E,x as T,u as a,w as b,y as c,N as d,h as e};
@@ -1 +0,0 @@
1
- import{r as a,j as i}from"./vendor-D2wC0h2o.js";import{t as c,u as o,v as n,w as f}from"./radix-B9EIjzyN.js";import{c as r}from"./global-CJOj9WGx.js";const u=c,d=a.forwardRef(({className:e,...s},t)=>i.jsx(o,{ref:t,className:r("inline-flex h-9 items-center gap-1 border-b border-border text-muted-foreground",e),...s}));d.displayName=o.displayName;const b=a.forwardRef(({className:e,...s},t)=>i.jsx(n,{ref:t,className:r("inline-flex items-center justify-center whitespace-nowrap border-b-2 border-transparent px-3 pb-2.5 pt-2 text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-primary data-[state=active]:text-foreground data-[state=active]:font-semibold data-[state=inactive]:hover:text-foreground",e),...s}));b.displayName=n.displayName;const l=a.forwardRef(({className:e,...s},t)=>i.jsx(f,{ref:t,className:r("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...s}));l.displayName=f.displayName;export{u as T,d as a,b,l as c};
@@ -1 +0,0 @@
1
- import{a as o,b as q}from"./query-DVc6ZTRQ.js";import{a as x,t as y}from"./app-BBAnVEPg.js";function j({mutationFn:C,successToast:u,errorToast:p,invalidateKeys:n,onSuccess:m,onError:f,...M}){const Q=o(),{pushToast:A}=x();return q({...M,mutationFn:async t=>{try{return await C(t)}catch(a){throw y(a)}},onSuccess:async(t,a,w,h)=>{n!=null&&n.length&&await Promise.all(n.map(g=>Q.invalidateQueries({queryKey:g})));const i=u==null?void 0:u(t,a);i&&A({...i,variant:"success"}),await(m==null?void 0:m(t,a,w,h))},onError:async(t,a,w,h)=>{const i=p==null?void 0:p(t,a);i&&A({...i,variant:"error"}),await(f==null?void 0:f(t,a,w,h))}})}export{j as u};
@@ -1 +0,0 @@
1
- import{r as R,j as r,$ as Se}from"./vendor-D2wC0h2o.js";import{u as Me}from"./query-DVc6ZTRQ.js";import{a as ke,c as Ce,q as te,e as Ue,i as W,d as V,B as F}from"./app-BBAnVEPg.js";import{g as Re}from"./gateway-B_xLF-Rk.js";import{u as q}from"./i18n-Dp-o1LhZ.js";import{c as K}from"./global-CJOj9WGx.js";import{D as ne}from"./disclosure-CJdf1-ap.js";import{L as C,I as U}from"./label-Da-JMxO2.js";import{S as Ie,a as Te,b as Ee,c as Ae,d as Y}from"./select-BTwqvh0l.js";import{S as Z}from"./switch-CeKtgMDT.js";import{B as _e}from"./badge-RZTsODn-.js";const br=["claude-sonnet-4-5-20250929","claude-sonnet-4-5-20250929-thinking","claude-sonnet-4-20250514","claude-opus-4-1-20250805","claude-opus-4-1-20250805-thinking","claude-haiku-4-5-20251001","claude-haiku-4-5-20251001-thinking","claude-3-5-haiku-20241022"],vr=["gpt-4o-mini","gpt-4o","o4-mini","o4-large","gpt-5-codex"];function He(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2,10)}function P(e,s){var a;return(a=e==null?void 0:e.customEndpoints)!=null&&a.length?e.customEndpoints:s}function ee(e){return e?Object.entries(e).map(([s,a])=>({id:He(),source:s,target:a})):[]}function yr(e,s){var i,d,c;if(!e)return{};const a={},m=e.endpointRouting??{};a.anthropic=ee(((i=m.anthropic)==null?void 0:i.modelRoutes)??e.modelRoutes??{}),a.openai=ee(((d=m.openai)==null?void 0:d.modelRoutes)??{});for(const h of P(e,s))(c=h.routing)!=null&&c.modelRoutes?a[h.id]=ee(h.routing.modelRoutes):a[h.id]=[];return a}function De(e,s,a){var d,c,h;const m=P(e,s).find(S=>S.id===a);if(m)return((d=m.routing)==null?void 0:d.modelRoutes)??{};const i=e.endpointRouting??{};return a==="anthropic"?((c=i.anthropic)==null?void 0:c.modelRoutes)??e.modelRoutes??{}:a==="openai"?((h=i.openai)==null?void 0:h.modelRoutes)??{}:{}}function re(e,s,a){var i,d,c;if(a==="anthropic"||a==="openai")return((d=(i=e.endpointRouting)==null?void 0:i[a])==null?void 0:d.defaults)??e.defaults;const m=P(e,s).find(h=>h.id===a);return((c=m==null?void 0:m.routing)==null?void 0:c.defaults)??{completion:null,reasoning:null,background:null,longContextThreshold:e.defaults.longContextThreshold}}function jr(e,s){if(!e)return{};const a={anthropic:re(e,s,"anthropic"),openai:re(e,s,"openai")};for(const m of P(e,s))a[m.id]=re(e,s,m.id);return a}function Le(e){const s={};for(const a of e){const m=a.source.trim(),i=a.target.trim();m&&i&&(s[m]=i)}return s}function Nr(e,s){return JSON.stringify(Le(e))!==JSON.stringify(s)}function wr(e,s,a){var i,d,c;if(!s)return;if(e==="anthropic"||e==="openai")return(d=(i=s.endpointRouting)==null?void 0:i[e])==null?void 0:d.compatibility;const m=P(s,a).find(h=>h.id===e);return(c=m==null?void 0:m.routing)==null?void 0:c.compatibility}function Sr(e,s){var m,i;const a={anthropic:((m=e.routingPresets)==null?void 0:m.anthropic)??[],openai:((i=e.routingPresets)==null?void 0:i.openai)??[]};for(const d of P(e,s))a[d.id]=d.routingPresets??[];return a}function Pe(e,s){const a=[{key:"providers",label:e("modelManagement.tabs.providers"),description:e("modelManagement.tabs.providersDesc"),isSystem:!0,canDelete:!1},{key:"anthropic",label:e("modelManagement.tabs.anthropic"),description:e("modelManagement.tabs.anthropicDesc"),isSystem:!0,canDelete:!1,protocols:["anthropic"]},{key:"openai",label:e("modelManagement.tabs.openai"),description:e("modelManagement.tabs.openaiDesc"),isSystem:!0,canDelete:!1,protocols:["openai-auto","openai-chat","openai-responses"]}],m=s.map(i=>{let d=e("modelManagement.tabs.customEndpoint"),c=[];if(i.paths&&i.paths.length>0)d=`${e("modelManagement.tabs.customEndpoint")}: ${i.paths.map(h=>`${h.path} (${h.protocol})`).join(", ")}`,c=[...new Set(i.paths.map(h=>h.protocol))];else if(i.path){const h=i.protocol||"anthropic";d=`${e("modelManagement.tabs.customEndpoint")}: ${i.path} (${h})`,c=[h]}return{key:i.id,label:i.label||i.id,description:d,isSystem:!1,canDelete:i.deletable!==!1,protocols:c}});return[...a,...m]}function Mr(e){return e.label&&e.label.trim().length>0?`${e.label} (${e.id})`:e.id}function Oe(e,s){if(!e)return!1;const[a]=e.split(":");return a===s||e===s}function We(e,s,a){if(!e)return[];const m=["anthropic","openai",...P(e,s).map(d=>d.id)],i=[];for(const d of m){const c=De(e,s,d);for(const[h,S]of Object.entries(c))Oe(S,a)&&i.push({endpoint:d,source:h,target:S})}return i}function kr(e,s,a){return We(e,s,a).length}function Cr(){var N;const{t:e}=q(),{pushToast:s}=ke(),a=Ce(te.config.full(),Re.configRequest()),m=Me({queryKey:te.customEndpoints.all(),queryFn:Ue.list,refetchInterval:1e4}),i=R.useMemo(()=>{var y;return((y=m.data)==null?void 0:y.endpoints)??[]},[(N=m.data)==null?void 0:N.endpoints]),d=R.useMemo(()=>Pe(e,i),[i,e]),[c,h]=R.useState(null);return R.useEffect(()=>{a.data&&h(a.data)},[a.data]),R.useEffect(()=>{!a.isError||!a.error||s({title:e("providers.toast.loadFailure",{message:a.error.message}),variant:"error"})},[a.error,a.isError,s,e]),{t:e,pushToast:s,config:c,setConfig:h,configQuery:a,customEndpoints:i,customEndpointsQuery:m,tabs:d,ensureConfig:()=>c?!0:(s({title:e("settings.toast.missingConfig"),variant:"error"}),a.refetch(),!1)}}const Ur={savePreset(e,s){return W(V.post(`/api/routing-presets/${e}`,{name:s}))},applyPreset(e,s){return W(V.post(`/api/routing-presets/${e}/apply`,{name:s}))},deletePreset(e,s){return W(V.delete(`/api/routing-presets/${e}/${encodeURIComponent(s)}`))},testProvider(e,s){return W(V.post(`/api/providers/${e}/test`,s??{}))},probeModels(e,s){return W(V.post(`/api/providers/${e}/models/probe`,s?{provider:s}:{}))},backendsHealth(){return W(V.get("/api/providers/backends/health"))}},Ve={complete:"border-primary bg-primary text-primary-foreground",current:"border-primary bg-card text-primary ring-2 ring-primary/20",error:"border-destructive bg-card text-destructive ring-2 ring-destructive/20",upcoming:"border-border bg-card text-muted-foreground"},Fe={complete:"text-foreground",current:"text-foreground font-medium",error:"text-destructive font-medium",upcoming:"text-muted-foreground"};function Rr({steps:e,current:s,onSelect:a,className:m}){return r.jsx("nav",{"aria-label":"steps",className:K("flex items-start",m),children:e.map((i,d)=>{const c=a&&(i.status==="complete"||i.status==="current"),h=d===e.length-1,S=i.status==="complete"?"bg-primary/40":"bg-border",N=r.jsx("span",{className:K("motion-surface flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border text-xs font-semibold",Ve[i.status]),"aria-current":i.id===s?"step":void 0,children:i.status==="complete"?r.jsx(Se,{className:"h-3.5 w-3.5","aria-hidden":!0}):d+1}),y=`stepnav-${i.id}-label`;return r.jsxs("div",{className:"flex flex-1 items-start",children:[r.jsxs("div",{className:"flex min-w-0 flex-col items-center gap-1.5",children:[c?r.jsx("button",{type:"button",onClick:()=>a==null?void 0:a(i.id),"aria-labelledby":y,className:"rounded-lg outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background motion-surface",children:N}):N,r.jsx("span",{id:y,className:K("text-center text-[11px] leading-tight",Fe[i.status]),children:i.label})]}),h?null:r.jsx("span",{"aria-hidden":!0,className:K("mx-1.5 mt-3.5 h-px flex-1",S)})]},i.id)})})}function Ke({result:e,className:s}){const{t:a}=q();return r.jsxs("div",{className:K("flex flex-wrap items-center gap-2 rounded-lg px-3 py-2 text-xs",e.ok?"bg-success-bg text-success":"bg-destructive/10 text-destructive",s),children:[r.jsx(_e,{variant:e.ok?"success":"destructive",className:"shrink-0",children:e.ok?a("workbench.testResult.success"):a("workbench.testResult.failure")}),e.status?r.jsx("span",{className:"shrink-0",children:a("workbench.testResult.status",{status:e.status})}):null,e.durationMs?r.jsx("span",{className:"shrink-0",children:a("workbench.testResult.duration",{duration:`${e.durationMs} ms`})}):null,e.message?r.jsx("span",{className:"min-w-0 truncate",title:e.message,children:e.message}):null]})}function L(){return typeof globalThis.crypto<"u"&&typeof globalThis.crypto.randomUUID=="function"?globalThis.crypto.randomUUID():Math.random().toString(36).slice(2,10)}function ae(){return{_key:L(),id:"",label:"",members:[],failover:de()}}function $e(){return{_key:L(),target:""}}function de(){return{consecutiveFailures:"",cooldownSeconds:"",failureWindowSeconds:"",triggerStatusCodes:""}}function Be(e){var s;return{consecutiveFailures:(e==null?void 0:e.consecutiveFailures)!=null?String(e.consecutiveFailures):"",cooldownSeconds:(e==null?void 0:e.cooldownSeconds)!=null?String(e.cooldownSeconds):"",failureWindowSeconds:(e==null?void 0:e.failureWindowSeconds)!=null?String(e.failureWindowSeconds):"",triggerStatusCodes:((s=e==null?void 0:e.triggerStatusCodes)==null?void 0:s.join(", "))??""}}function ze(){return{_key:L(),name:"",value:""}}const G={openai:{baseUrl:"https://api.openai.com/v1"},deepseek:{baseUrl:"https://api.deepseek.com/v1"},huawei:{baseUrl:"https://api.modelarts-maas.com/v1"},kimi:{baseUrl:"https://api.moonshot.cn/v1"},anthropic:{baseUrl:"https://api.anthropic.com/v1"},custom:{},aggregate:{}},le=[{value:"openai",label:"OpenAI"},{value:"deepseek",label:"DeepSeek"},{value:"huawei",label:"Huawei Cloud"},{value:"kimi",label:"Kimi"},{value:"anthropic",label:"Anthropic"},{value:"custom",label:"Custom"},{value:"aggregate",label:"Aggregate"}];function qe(e,s){var a;return e==="aggregate"?s("providers.aggregate.typeLabel"):((a=le.find(m=>m.value===e))==null?void 0:a.label)??"Custom"}const Ir=[{id:"basics",labelKey:"providers.drawer.steps.basics"},{id:"models",labelKey:"providers.drawer.steps.modelsVerify"}];function Q(e){return e==="anthropic"?"authToken":"apiKey"}function Xe(e,s,a){return a(s==="authToken"?"providers.drawer.fields.authModeAuthToken":s==="xAuthToken"?"providers.drawer.fields.authModeXAuthToken":e==="anthropic"?"providers.drawer.fields.authModeApiKey":"providers.drawer.fields.authModeProviderDefault")}function ie(e){return e?{id:e.id,label:e.label??e.id,baseUrl:e.baseUrl??"",apiKey:e.apiKey??"",type:e.type??"custom",defaultModel:e.defaultModel??"",models:(e.models??[]).map(s=>({...s,_key:L(),members:(s.members??[]).map(a=>({...a,_key:L()})),failover:Be(s.failover)})),authMode:e.authMode??Q(e.type??"custom"),nonStreamViaStream:e.nonStreamViaStream??!1,useAbsoluteUrl:e.useAbsoluteUrl??!1,streamUsage:e.streamUsage===!0,rpmLimit:e.rpmLimit!=null?String(e.rpmLimit):"",rpmMaxWaitSeconds:e.rpmMaxWaitSeconds!=null?String(e.rpmMaxWaitSeconds):"",extraHeaders:Object.entries(e.extraHeaders??{}).map(([s,a])=>({name:s,value:a,_key:L()}))}:{id:"",label:"",baseUrl:"",apiKey:"",type:"custom",defaultModel:"",models:[],authMode:Q("custom"),nonStreamViaStream:!1,useAbsoluteUrl:!1,streamUsage:!1,rpmLimit:"",rpmMaxWaitSeconds:"",extraHeaders:[]}}function Ge(e){return{_key:L(),id:e.id,label:e.label,nonStreamViaStream:e.nonStreamViaStream,members:[],failover:de()}}function Tr({form:e,errors:s,isCreate:a,advancedOpen:m,onAdvancedOpenChange:i,idInputRef:d,onProviderIdChange:c,onFieldChange:h,onTypeChange:S,onAuthModeChange:N,onNonStreamViaStreamChange:y,onUseAbsoluteUrlChange:T,onStreamUsageChange:g,onAddHeader:$,onRemoveHeader:w,onHeaderChange:I}){const{t:l}=q(),X=e.type==="aggregate";return r.jsxs("div",{className:"space-y-8",children:[r.jsxs("section",{className:"space-y-5","aria-labelledby":"provider-type-fields",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{id:"provider-type-fields",className:"text-sm font-semibold",children:l("providers.drawer.sections.type")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("providers.drawer.hints.type")})]}),r.jsx("div",{className:"grid gap-2 md:grid-cols-3",children:le.map(b=>{var E;const A=b.value===e.type;return r.jsxs("button",{type:"button",onClick:()=>S(b.value),className:K("rounded-2xl border px-4 py-3 text-left transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",A?"border-primary bg-primary/10 text-primary":"border-border bg-card text-foreground hover:border-primary/20 hover:bg-accent/50"),children:[r.jsx("div",{className:"text-sm font-semibold",children:qe(b.value,l)}),r.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:b.value==="aggregate"?l("providers.aggregate.drawer.typeHint"):((E=G[b.value??"custom"])==null?void 0:E.baseUrl)??l("providers.drawer.hints.customProvider")})]},b.value??"custom")})})]}),r.jsxs("section",{className:"space-y-4","aria-labelledby":"provider-basic-info",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{id:"provider-basic-info",className:"text-sm font-semibold",children:l("providers.drawer.sections.basic")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("providers.drawer.hints.basic")})]}),r.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.id")}),r.jsx(U,{value:e.id,ref:d,onChange:b=>c(b.target.value),disabled:!a,placeholder:l("providers.drawer.fields.idPlaceholder"),"aria-invalid":!!s.id}),s.id?r.jsx("span",{className:"text-xs text-destructive",children:s.id}):null]}),r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.label")}),r.jsx(U,{value:e.label,onChange:b=>h("label")(b.target.value),placeholder:l("providers.drawer.fields.labelPlaceholder")})]})]}),X?r.jsxs("div",{className:"space-y-2 border border-border bg-card p-4",children:[r.jsx("p",{className:"text-sm font-semibold",children:l("providers.aggregate.drawer.explainerTitle")}),r.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:l("providers.aggregate.drawer.explainerBody")})]}):r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.baseUrl")}),r.jsx(U,{value:e.baseUrl,onChange:b=>h("baseUrl")(b.target.value),placeholder:l("providers.drawer.fields.baseUrlPlaceholder"),"aria-invalid":!!s.baseUrl}),s.baseUrl?r.jsx("span",{className:"text-xs text-destructive",children:s.baseUrl}):null]})]}),X?null:r.jsxs("section",{className:"space-y-4","aria-labelledby":"provider-auth-fields",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{id:"provider-auth-fields",className:"text-sm font-semibold",children:l("providers.drawer.sections.auth")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:l("providers.drawer.hints.auth")})]}),r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.apiKey")}),r.jsx(U,{value:e.apiKey,onChange:b=>h("apiKey")(b.target.value),placeholder:l("providers.drawer.fields.apiKeyPlaceholder")})]}),r.jsxs("fieldset",{className:"grid gap-2 rounded-xl border border-transparent bg-card p-4 text-xs shadow-[var(--surface-shadow)]",children:[r.jsx("legend",{className:"px-1 text-muted-foreground",children:l("providers.drawer.fields.authMode")}),r.jsx("p",{className:"text-[11px] text-muted-foreground",children:l("providers.drawer.fields.authModeHint")}),r.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-xl border border-transparent px-3 py-2 transition hover:bg-accent focus-within:bg-accent",children:[r.jsx("input",{type:"radio",name:"provider-auth-mode",value:"apiKey",checked:e.authMode==="apiKey",onChange:()=>N("apiKey"),className:"mt-0.5 h-4 w-4 accent-primary"}),r.jsx("span",{children:Xe(e.type,"apiKey",l)})]}),r.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-xl border border-transparent px-3 py-2 transition hover:bg-accent focus-within:bg-accent",children:[r.jsx("input",{type:"radio",name:"provider-auth-mode",value:"authToken",checked:e.authMode==="authToken",onChange:()=>N("authToken"),className:"mt-0.5 h-4 w-4 accent-primary"}),r.jsx("span",{children:l("providers.drawer.fields.authModeAuthToken")})]}),r.jsxs("label",{className:"flex cursor-pointer items-start gap-3 rounded-xl border border-transparent px-3 py-2 transition hover:bg-accent focus-within:bg-accent",children:[r.jsx("input",{type:"radio",name:"provider-auth-mode",value:"xAuthToken",checked:e.authMode==="xAuthToken",onChange:()=>N("xAuthToken"),className:"mt-0.5 h-4 w-4 accent-primary"}),r.jsx("span",{children:l("providers.drawer.fields.authModeXAuthToken")})]})]}),r.jsxs(ne,{open:m,onOpenChange:i,summary:l("providers.drawer.fields.advancedOptions"),className:"rounded-xl border border-transparent bg-card shadow-[var(--surface-shadow)]",summaryClassName:"px-4 py-3 text-sm font-medium",contentClassName:"border-t border-border px-4 py-4",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("providers.drawer.fields.nonStreamViaStream")}),r.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:l("providers.drawer.fields.nonStreamViaStreamHint")})]}),r.jsx(Z,{checked:e.nonStreamViaStream,onCheckedChange:y,"aria-label":l("providers.drawer.fields.nonStreamViaStream")})]}),r.jsx("div",{className:"mt-4 border-t border-border pt-4",children:r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("providers.drawer.fields.useAbsoluteUrl")}),r.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:l("providers.drawer.fields.useAbsoluteUrlHint")})]}),r.jsx(Z,{checked:e.useAbsoluteUrl,onCheckedChange:T,"aria-label":l("providers.drawer.fields.useAbsoluteUrl")})]})}),r.jsx("div",{className:"mt-4 border-t border-border pt-4",children:r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("providers.drawer.fields.streamUsage")}),r.jsx("p",{className:"text-xs leading-relaxed text-warning",children:l("providers.drawer.fields.streamUsageHint")})]}),r.jsx(Z,{checked:e.streamUsage,onCheckedChange:g,"aria-label":l("providers.drawer.fields.streamUsage")})]})}),r.jsxs("div",{className:"mt-4 border-t border-border pt-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("providers.drawer.fields.rpmLimitSection")}),r.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:l("providers.drawer.fields.rpmLimitHint")})]}),r.jsxs("div",{className:"mt-3 grid gap-3 md:grid-cols-2",children:[r.jsxs(C,{className:"flex flex-col gap-1.5 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.rpmLimit")}),r.jsx(U,{type:"number",min:1,value:e.rpmLimit,onChange:b=>h("rpmLimit")(b.target.value),placeholder:l("providers.drawer.fields.rpmLimitPlaceholder"),"aria-invalid":!!s.rpmLimit})]}),r.jsxs(C,{className:"flex flex-col gap-1.5 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.rpmMaxWaitSeconds")}),r.jsx(U,{type:"number",min:1,max:3600,value:e.rpmMaxWaitSeconds,onChange:b=>h("rpmMaxWaitSeconds")(b.target.value),placeholder:l("providers.drawer.fields.rpmMaxWaitPlaceholder"),"aria-invalid":!!s.rpmMaxWaitSeconds})]})]}),s.rpmLimit?r.jsx("p",{className:"mt-2 text-xs text-destructive",children:s.rpmLimit}):null,s.rpmMaxWaitSeconds?r.jsx("p",{className:"mt-2 text-xs text-destructive",children:s.rpmMaxWaitSeconds}):null]}),r.jsxs("div",{className:"mt-4 border-t border-border pt-4",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:l("providers.drawer.fields.extraHeaders")}),r.jsx("p",{className:"text-xs leading-relaxed text-muted-foreground",children:l("providers.drawer.fields.extraHeadersHint")})]}),r.jsx(F,{type:"button",variant:"outline",size:"sm",onClick:$,className:"bg-card text-xs",children:l("providers.drawer.fields.addHeader")})]}),s.extraHeaders?r.jsx("p",{className:"mt-2 text-xs text-destructive",children:s.extraHeaders}):null,e.extraHeaders.length>0?r.jsx("div",{className:"mt-3 space-y-3",children:e.extraHeaders.map((b,A)=>r.jsxs("div",{className:"rounded-xl border border-transparent bg-secondary/40 p-3",children:[r.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[r.jsxs(C,{className:"flex flex-col gap-1.5 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.headerName")}),r.jsx(U,{value:b.name,onChange:E=>I(A,{name:E.target.value}),placeholder:l("providers.drawer.fields.headerNamePlaceholder")})]}),r.jsxs(C,{className:"flex flex-col gap-1.5 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:l("providers.drawer.fields.headerValue")}),r.jsx(U,{value:b.value,onChange:E=>I(A,{value:E.target.value}),placeholder:l("providers.drawer.fields.headerValuePlaceholder")})]})]}),r.jsx("div",{className:"mt-2 flex justify-end",children:r.jsx(F,{type:"button",variant:"ghost",size:"sm",className:"h-auto px-2 text-destructive",onClick:()=>w(A),children:l("providers.drawer.fields.removeHeader")})})]},b._key))}):null]})]})]})]})}function Er({form:e,errors:s,advancedOpen:a,onAdvancedOpenChange:m,onModelIdChange:i,onModelChange:d,onAddModel:c,onRemoveModel:h,onModelNonStreamViaStreamChange:S,onSetDefaultModel:N,testVerification:y,probeModels:T}){const{t:g}=q(),$=e.models.filter(w=>w.id.trim().length>0);return r.jsxs("div",{className:"space-y-8",children:[r.jsxs("section",{className:"space-y-4","aria-labelledby":"provider-model-fields",children:[r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{id:"provider-model-fields",className:"text-sm font-semibold",children:g("providers.drawer.fields.models")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:g("providers.drawer.modelsDescription")})]}),r.jsxs("div",{className:"flex shrink-0 gap-2",children:[T?r.jsx(F,{type:"button",variant:"outline",size:"sm",onClick:T.onProbe,disabled:!T.available,title:T.available?void 0:g("providers.drawer.probe.needsBaseUrl"),className:"bg-card text-xs",children:g("providers.drawer.probe.button")}):null,r.jsx(F,{type:"button",variant:"outline",size:"sm",onClick:c,className:"bg-card text-xs",children:g("providers.drawer.fields.addModel")})]})]}),s.models?r.jsx("p",{className:"text-xs text-destructive",children:s.models}):null,r.jsxs("div",{className:"space-y-4",children:[e.models.map((w,I)=>r.jsxs("div",{className:"rounded-xl border border-transparent bg-card p-4 shadow-[var(--surface-shadow)]",children:[r.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:g("providers.drawer.fields.modelId")}),r.jsx(U,{value:w.id,onChange:l=>i(I,l.target.value),placeholder:g("providers.drawer.fields.modelIdPlaceholder")})]})}),r.jsxs(ne,{open:a,onOpenChange:m,summary:g("providers.drawer.fields.advancedOptions"),className:"mt-4 rounded-xl bg-secondary/50",summaryClassName:"px-3 py-2 text-xs font-medium",contentClassName:"space-y-4 px-3 py-3",children:[r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:g("providers.drawer.fields.modelLabel")}),r.jsx(U,{value:w.label??"",onChange:l=>d(I,{label:l.target.value}),placeholder:g("providers.drawer.fields.modelLabelPlaceholder")})]}),r.jsxs(C,{className:"flex flex-col gap-2 text-sm",children:[r.jsx("span",{className:"text-xs text-muted-foreground",children:g("providers.drawer.fields.modelNonStreamViaStream")}),r.jsxs(Ie,{value:w.nonStreamViaStream===void 0?"inherit":w.nonStreamViaStream?"enabled":"disabled",onValueChange:l=>S(I,l),children:[r.jsx(Te,{children:r.jsx(Ee,{})}),r.jsxs(Ae,{children:[r.jsx(Y,{value:"inherit",children:g("providers.drawer.fields.modelNonStreamViaStreamInherit")}),r.jsx(Y,{value:"enabled",children:g("providers.drawer.fields.modelNonStreamViaStreamEnabled")}),r.jsx(Y,{value:"disabled",children:g("providers.drawer.fields.modelNonStreamViaStreamDisabled")})]})]})]})]}),r.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-3 text-xs",children:[r.jsxs("label",{className:"flex items-center gap-2 text-muted-foreground",children:[r.jsx("input",{type:"radio",name:"defaultModel",value:w.id,"aria-label":g("providers.drawer.fields.setDefault"),checked:e.defaultModel===w.id,onChange:()=>N(w.id),disabled:w.id.trim().length===0,className:"h-4 w-4 accent-primary"}),g("providers.drawer.fields.setDefault")]}),r.jsx(F,{type:"button",variant:"ghost",size:"sm",className:"h-auto px-2 text-destructive",onClick:()=>h(I),disabled:e.models.length===0,children:g("providers.drawer.fields.removeModel")})]})]},w._key)),e.models.length===0?r.jsx("div",{className:"rounded-xl border border-warning/30 bg-warning-bg p-5",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-semibold text-warning",children:g("providers.drawer.noModelsTitle")}),r.jsx("p",{className:"text-xs leading-relaxed text-warning",children:g("providers.drawer.noModelsHint",{providerId:e.id||"provider-id"})}),r.jsxs("div",{className:"rounded-lg bg-secondary/50 p-2.5",children:[r.jsx("p",{className:"mb-1.5 text-xs font-medium text-foreground",children:g("providers.drawer.routeExample")}),r.jsxs("code",{className:"block rounded-lg border border-transparent bg-card px-2.5 py-1.5 font-mono text-xs text-foreground shadow-[var(--surface-shadow)]",children:['"claude-*": "',(e.id||"provider-id").trim()||"provider-id",':*"']})]})]})}):null]}),$.length>1?r.jsx("div",{className:"text-xs text-muted-foreground",children:g("providers.drawer.defaultHint",{model:e.defaultModel||g("providers.card.noDefault")})}):null]}),y?r.jsxs("section",{className:"space-y-3","aria-labelledby":"provider-verify-fields",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("h3",{id:"provider-verify-fields",className:"text-sm font-semibold",children:g("workbench.drawer.verifyTitle")}),r.jsx("p",{className:"text-xs text-muted-foreground",children:g("workbench.drawer.verifyHint")})]}),y.available?r.jsxs("div",{className:"space-y-3 rounded-xl border border-transparent bg-card p-4 shadow-[var(--surface-shadow)]",children:[r.jsx(F,{type:"button",variant:"outline",size:"sm",onClick:y.onTest,disabled:y.testing,children:y.testing?g("common.actions.testingConnection"):g("workbench.drawer.verifyRun")}),y.result?r.jsx(Ke,{result:y.result}):null]}):r.jsx("p",{className:"rounded-xl bg-secondary/50 px-4 py-3 text-xs text-muted-foreground",children:g("workbench.drawer.verifySaveFirst")})]}):null]})}const Qe=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Je=1e6,Ye=3600,Ze=100,er=86400,rr=86400,sr=/^[^:\s]+:[^:\s]+$/;function tr(e){if(/^[1-5]xx$/.test(e))return!0;if(/^\d{3}$/.test(e)){const s=Number(e);return s>=100&&s<=599}return!1}function ar(e){const s={},a=Number(e.consecutiveFailures.trim());e.consecutiveFailures.trim()&&Number.isInteger(a)&&(s.consecutiveFailures=a);const m=Number(e.cooldownSeconds.trim());e.cooldownSeconds.trim()&&Number.isInteger(m)&&(s.cooldownSeconds=m);const i=Number(e.failureWindowSeconds.trim());e.failureWindowSeconds.trim()&&Number.isInteger(i)&&(s.failureWindowSeconds=i);const d=e.triggerStatusCodes.split(",").map(c=>c.trim()).filter(Boolean);return d.length>0&&(s.triggerStatusCodes=d),Object.keys(s).length>0?s:void 0}function Ar({mode:e,provider:s,existingProviderIds:a,providers:m}){const{t:i}=q(),[d,c]=R.useState(()=>ie(s)),[h,S]=R.useState({}),[N,y]=R.useState(e==="edit"),T=R.useRef(null),g=R.useCallback(()=>{c(ie(s)),S({}),y(e==="edit")},[s,e]),$=t=>n=>{c(u=>({...u,[t]:n}))},w=t=>{c(n=>{const o=!N||n.label.trim().length===0||n.label===n.id?t:n.label;return{...n,id:t,label:o}})},I=t=>{c(n=>{var _;const o=G[t??"custom"]??G.custom,f=Q(n.type),p=Q(t),v=Object.values(G).map(H=>H.baseUrl).filter(H=>!!H),j=!n.baseUrl||v.includes(n.baseUrl),x=e==="create"&&(n.models.length===0||n.models.every(H=>H.id.trim().length===0)),M={...n,type:t,authMode:n.authMode===f?p:n.authMode};return o!=null&&o.baseUrl&&j&&(M.baseUrl=o.baseUrl),o!=null&&o.models&&x&&(M.models=o.models.map(Ge),M.defaultModel=o.defaultModel??((_=o.models[0])==null?void 0:_.id)??""),M})},l=(t,n)=>{c(u=>{const o=[...u.models];return o[t]={...o[t],...n},{...u,models:o}})},X=(t,n)=>{c(u=>{const o=[...u.models],f=o[t];if(!f)return u;const p=!N||!f.label||f.label===f.id,v={...f,id:n,label:p?n:f.label};o[t]=v;const j=u.defaultModel===f.id?n:u.defaultModel;return{...u,models:o,defaultModel:j}})},b=t=>{c(n=>{if(t<0||t>=n.models.length)return n;const u=n.models.filter((f,p)=>p!==t);let o=n.defaultModel;return u.some(f=>f.id===o)||(o=""),{...n,models:u,defaultModel:o}})},A=()=>{c(t=>({...t,models:[...t.models,ae()]}))},E=t=>{c(n=>{const u=new Set(n.models.map(f=>f.id.trim())),o=t.filter(f=>f.id.trim().length>0&&!u.has(f.id.trim())).map(f=>{var p;return{...ae(),id:f.id.trim(),label:((p=f.label)==null?void 0:p.trim())??""}});return o.length===0?n:{...n,models:[...n.models,...o]}})},oe=(t,n)=>{c(u=>{const o=[...u.extraHeaders];return o[t]={...o[t],...n},{...u,extraHeaders:o}})},ce=()=>{c(t=>({...t,extraHeaders:[...t.extraHeaders,ze()]}))},me=t=>{c(n=>{if(t<0||t>=n.extraHeaders.length)return n;const u=n.extraHeaders.filter((o,f)=>f!==t);return{...n,extraHeaders:u}})},ue=t=>{c(n=>({...n,authMode:t}))},pe=t=>{c(n=>({...n,nonStreamViaStream:t}))},xe=t=>{c(n=>({...n,useAbsoluteUrl:t}))},he=t=>{c(n=>({...n,streamUsage:t}))},fe=(t,n)=>{l(t,{nonStreamViaStream:n==="inherit"?void 0:n==="enabled"})},ge=t=>{c(n=>({...n,defaultModel:t}))},B=(t,n)=>{c(u=>({...u,models:u.models.map(o=>o._key===t?n(o):o)}))},be=t=>{B(t,n=>({...n,members:[...n.members,$e()]}))},ve=(t,n)=>{B(t,u=>({...u,members:u.members.filter(o=>o._key!==n)}))},ye=(t,n,u)=>{B(t,o=>({...o,members:o.members.map(f=>f._key===n?{...f,target:u}:f)}))},je=(t,n,u)=>{n!==u&&B(t,o=>{const f=o.members.findIndex(x=>x._key===n),p=o.members.findIndex(x=>x._key===u);if(f<0||p<0)return o;const v=[...o.members],[j]=v.splice(f,1);return v.splice(p,0,j),{...o,members:v}})},Ne=(t,n)=>{B(t,u=>({...u,failover:{...u.failover,...n}}))},se=()=>{const t={},n=d.id.trim(),u=d.baseUrl.trim();if(e==="create"&&(n.length===0?t.id=i("providers.drawer.errors.idRequired"):a.includes(n)&&(t.id=i("providers.drawer.errors.idDuplicate"))),e==="edit"&&n.length===0&&(t.id=i("providers.drawer.errors.idRequired")),d.type!=="aggregate")if(u.length===0)t.baseUrl=i("providers.drawer.errors.baseUrlInvalid");else try{new URL(u)}catch{t.baseUrl=i("providers.drawer.errors.baseUrlInvalid")}if(d.type==="aggregate"){d.models.length===0&&(t.models=i("providers.drawer.errors.modelsRequired"));const p={},v={},j=new Map((m??[]).map(x=>[x.id,x]));for(const x of d.models){const M=x.members.map(k=>k.target.trim()).filter(k=>k.length>0);if(M.length===0)p[x._key]=i("providers.aggregate.errors.memberRequired");else{const k=new Set;for(const D of M){if(!sr.test(D)){p[x._key]=i("providers.aggregate.errors.memberInvalid");break}const[O]=D.split(":");if(m){const z=j.get(O);if(!z){p[x._key]=i("providers.aggregate.errors.memberDangling",{provider:O});break}if(z.type==="aggregate"||O===d.id.trim()){p[x._key]=i("providers.aggregate.errors.memberNested",{provider:O});break}}if(k.has(D)){p[x._key]=i("providers.aggregate.errors.memberDuplicate",{target:D});break}k.add(D)}}const H=[[x.failover.consecutiveFailures,1,Ze],[x.failover.cooldownSeconds,1,er],[x.failover.failureWindowSeconds,1,rr]].some(([k,D,O])=>{const z=k.trim();if(!z)return!1;const J=Number(z);return!Number.isInteger(J)||J<D||J>O}),we=x.failover.triggerStatusCodes.split(",").map(k=>k.trim()).filter(Boolean);H?v[x._key]=i("providers.aggregate.errors.failoverInvalid"):we.some(k=>!tr(k))&&(v[x._key]=i("providers.aggregate.errors.triggerCodesInvalid"))}Object.keys(p).length>0&&(t.members=p),Object.keys(v).length>0&&(t.failover=v)}if(d.models.length>0){const p=new Set;d.models.some(j=>{const x=j.id.trim();return x.length===0||p.has(x)?!0:(p.add(x),!1)})&&(t.models=i("providers.drawer.errors.modelInvalid"))}d.defaultModel&&!d.models.some(p=>p.id===d.defaultModel)&&(t.models=i("providers.drawer.errors.defaultInvalid"));const o=d.rpmLimit.trim();if(o.length>0){const p=Number(o);(!Number.isInteger(p)||p<1||p>Je)&&(t.rpmLimit=i("providers.drawer.errors.rpmLimitInvalid"))}const f=d.rpmMaxWaitSeconds.trim();if(f.length>0){const p=Number(f);(!Number.isInteger(p)||p<1||p>Ye)&&(t.rpmMaxWaitSeconds=i("providers.drawer.errors.rpmMaxWaitInvalid"))}if(d.extraHeaders.length>0){const p=new Set;for(const v of d.extraHeaders){const j=v.name.trim();if(j.length===0)continue;if(!Qe.test(j)){t.extraHeaders=i("providers.drawer.errors.headerNameInvalid");break}const x=j.toLowerCase();if(p.has(x)){t.extraHeaders=i("providers.drawer.errors.headerNameDuplicate");break}p.add(x)}}return S(t),t};return{form:d,errors:h,advancedOpen:N,setAdvancedOpen:y,providerIdRef:T,isCreate:e==="create",resetForm:g,validate:()=>Object.keys(se()).length===0,validateErrors:se,serialize:()=>{const t=d.type==="aggregate",n=d.models.map(x=>{var M;return{id:x.id.trim(),label:(M=x.label)!=null&&M.trim()?x.label.trim():void 0,nonStreamViaStream:x.nonStreamViaStream,...t?{members:x.members.map(_=>({target:_.target.trim()})).filter(_=>_.target.length>0),failover:ar(x.failover)}:null}}).filter(x=>x.id.length>0),u={};for(const x of d.extraHeaders){const M=x.name.trim();M.length>0&&(u[M]=x.value)}const o=Object.keys(u).length>0,f=d.authMode==="apiKey"&&d.type!=="anthropic"?void 0:d.authMode,p={id:d.id.trim(),label:d.label.trim()||d.id.trim(),baseUrl:t?void 0:d.baseUrl.trim(),apiKey:t?void 0:d.apiKey.trim()||void 0,type:d.type??"custom",defaultModel:t?void 0:d.defaultModel||void 0,models:n.length>0?n:void 0,extraHeaders:t?void 0:o?u:void 0,authMode:t?void 0:f};d.nonStreamViaStream&&(p.nonStreamViaStream=!0),d.useAbsoluteUrl&&(p.useAbsoluteUrl=!0),d.streamUsage&&(p.streamUsage=!0);const v=Number(d.rpmLimit.trim());d.rpmLimit.trim().length>0&&Number.isInteger(v)&&v>=1&&(p.rpmLimit=v);const j=Number(d.rpmMaxWaitSeconds.trim());return d.rpmMaxWaitSeconds.trim().length>0&&Number.isInteger(j)&&j>=1&&(p.rpmMaxWaitSeconds=j),p},handleFieldChange:$,handleProviderIdChange:w,handleTypeChange:I,handleModelChange:l,handleModelIdChange:X,handleRemoveModel:b,handleAddModel:A,handleImportModels:E,handleHeaderChange:oe,handleAddHeader:ce,handleRemoveHeader:me,handleAuthModeChange:ue,handleProviderNonStreamViaStreamChange:pe,handleUseAbsoluteUrlChange:xe,handleStreamUsageChange:he,handleModelNonStreamViaStreamChange:fe,handleSetDefaultModel:ge,handleAddMember:be,handleRemoveMember:ve,handleMemberTargetChange:ye,handleReorderMembers:je,handleModelFailoverChange:Ne}}export{Tr as B,br as C,Er as M,vr as O,Ir as P,Rr as S,Ke as T,Nr as a,jr as b,re as c,yr as d,Sr as e,He as f,De as g,Mr as h,Xe as i,le as j,We as k,wr as l,Ur as m,Cr as n,kr as o,qe as p,Oe as r,Ar as u};
@@ -1,3 +0,0 @@
1
- import{j as n}from"./vendor-D2wC0h2o.js";import{c as g}from"./global-CJOj9WGx.js";function l({className:t}){return n.jsx("div",{role:"status","aria-label":"Loading",className:g("animate-pulse rounded-xl bg-muted",t)})}function _(){return n.jsxs("div",{className:"space-y-3 rounded-xl bg-card p-6 shadow-[var(--surface-shadow)]",children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(l,{className:"h-3 w-24"}),n.jsx(l,{className:"h-10 w-10 rounded-xl"})]}),n.jsx(l,{className:"h-8 w-32"})]})}function y(){return n.jsxs("div",{className:"space-y-4 rounded-xl bg-card p-6 shadow-[var(--surface-shadow)]",children:[n.jsxs("div",{className:"space-y-2",children:[n.jsx(l,{className:"h-4 w-32"}),n.jsx(l,{className:"h-3 w-48"})]}),n.jsx(l,{className:"h-[320px] w-full rounded-xl"})]})}function N({columns:t=6}){const e=["w-24","w-16","w-20","w-28","w-14","w-12","w-20","w-16","w-14","w-12"];return n.jsx("tr",{className:"border-b",children:Array.from({length:t}).map((a,r)=>n.jsx("td",{className:"px-3 py-3",children:n.jsx(l,{className:g("h-4",e[r%e.length])})},r))})}const m=[168,184,198,208,218,228,238,248,258,268,278,292],b=2e5,c=12e4;function j(t){const e=new Date(t);return`${e.getFullYear()}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")} ${`${e.getHours()}`.padStart(2,"0")}:${`${e.getMinutes()}`.padStart(2,"0")}:${`${e.getSeconds()}`.padStart(2,"0")}`}function o(t){return t==null?"-":t.toLocaleString()}function T(t,e){const a=o(t);return a==="-"?"-":`${a} ${e}`}function E(t){return t?"true":"false"}function w(t,e){if(!t||t.trim().length===0)return e;if(t.length>b)return t;try{const a=JSON.parse(t);return JSON.stringify(a,null,2)}catch{return t}}function S(t){return t.length<=c?{displayedLength:t.length,isTruncated:!1,originalLength:t.length,text:t}:{displayedLength:c,isTruncated:!0,originalLength:t.length,text:`${t.slice(0,c)}
2
-
3
- ...`}}function P(t,e){return S(w(t,e))}function k(t,e){return t.status_code===null||t.status_code===void 0?t.error?{label:e("common.status.error"),tone:"error",variant:"destructive"}:{label:e("common.status.pending"),tone:"pending",variant:"warning"}:t.error||t.status_code>=400?{label:t.status_code.toString(),tone:"error",variant:"destructive"}:{label:t.status_code.toString(),tone:"success",variant:"success"}}function D(t,e){if(!(!!t.error||(t.status_code??0)>=400))return{label:e("logs.detail.errorSource.none"),tone:"none"};switch(t.error_source){case"client":return{label:e("logs.detail.errorSource.client"),tone:"client"};case"gateway":return{label:e("logs.detail.errorSource.gateway"),tone:"gateway"};case"upstream":return{label:e("logs.detail.errorSource.upstream"),tone:"upstream"};default:return{label:e("logs.detail.errorSource.unknown"),tone:"unknown"}}}function M(t,e,a){const r=t.latency_ms,s=t.ttft_ms,d=r!=null&&r>0,h=!!t.error||(t.status_code??0)>=400,i=[];if(i.push({id:"arrived",title:a("logs.detail.trace.arrived"),atLabel:"0 ms",durLabel:null,detail:[t.endpoint||"-",t.stream?a("logs.detail.trace.streamOn"):a("logs.detail.trace.streamOff")].join(" · "),tone:"accent",barPct:0}),s!=null&&s>0&&i.push({id:"ttft",title:a("logs.detail.trace.ttft"),atLabel:`+${o(s)} ms`,durLabel:`${o(s)} ms`,detail:`${e} · ${t.model}`,tone:"warn",barPct:d?Math.min(100,Math.round(s/r*100)):100}),d){const u=r-(s??0),f=[`${o(t.output_tokens)} ${a("common.units.token")}`,t.tpot_ms!=null?`${a("logs.detail.trace.tpot")} ${o(t.tpot_ms)} ${a("common.units.msPerToken")}`:null].filter(p=>!!p);i.push({id:"complete",title:a("logs.detail.trace.complete"),atLabel:`+${o(r)} ms`,durLabel:u>0?`${o(u)} ms`:null,detail:f.join(" · "),tone:h?"error":"ok",barPct:u>0?Math.min(100,Math.round(u/r*100)):0})}else i.push({id:"pending",title:a("logs.detail.trace.pending"),atLabel:"",durLabel:null,detail:"",tone:"warn",barPct:0});return i}function $(t){let e=0;for(let a=0;a<t.length;a+=1)e=e*31+t.charCodeAt(a)>>>0;return e}function v(t){const e=t==null?void 0:t.trim();if(!e)return null;const a=$(e),r=m[a%m.length],s=`hsl(${r} 74% 46% / 0.55)`;return{sessionId:e,colorKey:`${r}`,accentStyle:{borderLeft:`2px solid ${s}`}}}export{y as C,_ as S,N as T,D as a,P as b,j as c,E as d,o as e,T as f,k as g,v as h,l as i,M as j};