prime-dev-cli 2.0.2 → 2.0.3
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.
- package/dist/server/.next/BUILD_ID +1 -1
- package/dist/server/.next/app-build-manifest.json +5 -5
- package/dist/server/.next/build-manifest.json +2 -2
- package/dist/server/.next/cache/.rscinfo +1 -1
- package/dist/server/.next/cache/.tsbuildinfo +1 -1
- package/dist/server/.next/cache/eslint/.cache_1qa5vxt +1 -1
- package/dist/server/.next/fallback-build-manifest.json +2 -2
- package/dist/server/.next/next-minimal-server.js.nft.json +1 -1
- package/dist/server/.next/next-server.js.nft.json +1 -1
- package/dist/server/.next/prerender-manifest.json +12 -12
- package/dist/server/.next/server/app/_not-found/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/_not-found.html +1 -1
- package/dist/server/.next/server/app/_not-found.rsc +2 -2
- package/dist/server/.next/server/app/configuration/page/app-build-manifest.json +2 -2
- package/dist/server/.next/server/app/configuration/page.js.nft.json +1 -1
- package/dist/server/.next/server/app/configuration/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/configuration.html +1 -1
- package/dist/server/.next/server/app/configuration.rsc +3 -3
- package/dist/server/.next/server/app/index.html +1 -1
- package/dist/server/.next/server/app/index.rsc +2 -2
- package/dist/server/.next/server/app/initialization/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/initialization/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/initialization.html +1 -1
- package/dist/server/.next/server/app/initialization.rsc +2 -2
- package/dist/server/.next/server/app/page/app-build-manifest.json +1 -1
- package/dist/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/chunks/ssr/_9f432559._.js +57 -0
- package/dist/server/.next/server/chunks/ssr/_9f432559._.js.map +1 -0
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js +1 -1
- package/dist/server/.next/server/chunks/ssr/_b0947ff2._.js.map +1 -1
- package/dist/server/.next/server/pages/404.html +1 -1
- package/dist/server/.next/server/pages/500.html +1 -1
- package/dist/server/.next/server/server-reference-manifest.js +1 -1
- package/dist/server/.next/server/server-reference-manifest.json +1 -1
- package/dist/server/.next/static/chunks/50969308f8935cef.js +57 -0
- package/dist/server/.next/static/chunks/7ac838021c9de490.css +3 -0
- package/dist/server/.next/static/chunks/a0356c0f8a18f98a.js.map +1 -0
- package/dist/server/.next/static/chunks/c70911a309736bdf.css.map +1 -0
- package/dist/server/.next/trace +2 -2
- package/package.json +1 -1
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js +0 -57
- package/dist/server/.next/server/chunks/ssr/_5579d68f._.js.map +0 -1
- package/dist/server/.next/static/chunks/511924c894f8e3de.css.map +0 -1
- package/dist/server/.next/static/chunks/51208386dbc1874e.js.map +0 -1
- package/dist/server/.next/static/chunks/861aac2fba8d4e28.css +0 -3
- package/dist/server/.next/static/chunks/8c850efc5ffddd02.js +0 -57
- /package/dist/server/.next/static/{hKvS6HjDU-eBShMXMQ7An → Ia-qlvzazBlu740_UlpFl}/_buildManifest.js +0 -0
- /package/dist/server/.next/static/{hKvS6HjDU-eBShMXMQ7An → Ia-qlvzazBlu740_UlpFl}/_clientMiddlewareManifest.json +0 -0
- /package/dist/server/.next/static/{hKvS6HjDU-eBShMXMQ7An → Ia-qlvzazBlu740_UlpFl}/_ssgManifest.js +0 -0
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-red-50:oklch(97.1% .013 17.38);--color-red-100:oklch(93.6% .032 17.717);--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-red-800:oklch(44.4% .177 26.899);--color-orange-50:oklch(98% .016 73.684);--color-orange-200:oklch(90.1% .076 70.697);--color-orange-600:oklch(64.6% .222 41.116);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-100:oklch(97.3% .071 103.193);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-yellow-700:oklch(55.4% .135 66.442);--color-yellow-800:oklch(47.6% .114 61.907);--color-green-50:oklch(98.2% .018 155.826);--color-green-100:oklch(96.2% .044 156.743);--color-green-200:oklch(92.5% .084 155.995);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-green-800:oklch(44.8% .119 151.328);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-gray-950:oklch(13% .028 261.692);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-widest:.1em;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}body{background-color:var(--background);color:var(--foreground)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.right-1{right:calc(var(--spacing)*1)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2/span 2}.col-span-full{grid-column:1/-1}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-6{margin-inline:calc(var(--spacing)*6)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\[1\.15rem\]{height:1.15rem}.h-\[85vh\]{height:85vh}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-96{max-height:calc(var(--spacing)*96)}.max-h-\[85vh\]{max-height:85vh}.max-h-none{max-height:none}.min-h-0{min-height:calc(var(--spacing)*0)}.min-h-16{min-height:calc(var(--spacing)*16)}.min-h-\[140px\]{min-height:140px}.min-h-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-screen{width:100vw}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-max{max-width:max-content}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.list-disc{list-style-type:disc}.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))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-3>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*3)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-x-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-600{border-color:var(--color-blue-600)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-input{border-color:var(--input)}.border-orange-200{border-color:var(--color-orange-200)}.border-red-200{border-color:var(--color-red-200)}.border-transparent{border-color:#0000}.border-yellow-200{border-color:var(--color-yellow-200)}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-background{background-color:var(--background)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-border{background-color:var(--border)}.bg-current{background-color:currentColor}.bg-destructive{background-color:var(--destructive)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-500{background-color:var(--color-green-500)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-orange-50{background-color:var(--color-orange-50)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-yellow-100{background-color:var(--color-yellow-100)}.bg-yellow-500{background-color:var(--color-yellow-500)}.fill-current{fill:currentColor}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[1px\]{padding:1px}.p-\[3px\]{padding:3px}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-8{padding-right:calc(var(--spacing)*8)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-4{padding-left:calc(var(--spacing)*4)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-geist-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-800{color:var(--color-blue-800)}.text-current{color:currentColor}.text-foreground{color:var(--foreground)}.text-gray-100{color:var(--color-gray-100)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-green-800{color:var(--color-green-800)}.text-muted-foreground{color:var(--muted-foreground)}.text-orange-600{color:var(--color-orange-600)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-800{color:var(--color-red-800)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.text-yellow-700{color:var(--color-yellow-700)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-0{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.ring-offset-white{--tw-ring-offset-color:var(--color-white)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.running{animation-play-state:running}.slide-in-from-top-2{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[state\=open\]\:rotate-180:is(:where(.group)[data-state=open] *){rotate:180deg}.group-data-\[viewport\=false\]\/navigation-menu\:top-full:is(:where(.group\/navigation-menu)[data-viewport=false] *){top:100%}.group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5:is(:where(.group\/navigation-menu)[data-viewport=false] *){margin-top:calc(var(--spacing)*1.5)}.group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden:is(:where(.group\/navigation-menu)[data-viewport=false] *){overflow:hidden}.group-data-\[viewport\=false\]\/navigation-menu\:rounded-md:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-radius:calc(var(--radius) - 2px)}.group-data-\[viewport\=false\]\/navigation-menu\:border:is(:where(.group\/navigation-menu)[data-viewport=false] *){border-style:var(--tw-border-style);border-width:1px}.group-data-\[viewport\=false\]\/navigation-menu\:bg-popover:is(:where(.group\/navigation-menu)[data-viewport=false] *){background-color:var(--popover)}.group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground:is(:where(.group\/navigation-menu)[data-viewport=false] *){color:var(--popover-foreground)}.group-data-\[viewport\=false\]\/navigation-menu\:shadow:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.group-data-\[viewport\=false\]\/navigation-menu\:duration-200:is(:where(.group\/navigation-menu)[data-viewport=false] *){--tw-duration:.2s;transition-duration:.2s}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}.selection\:bg-primary ::selection,.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection,.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}@media (hover:hover){.hover\:border-red-300:hover{border-color:var(--color-red-300)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-blue-100:hover{background-color:var(--color-blue-100)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-red-100:hover{background-color:var(--color-red-100)}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:text-red-700:hover{color:var(--color-red-700)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-gray-950:focus-visible{--tw-ring-color:var(--color-gray-950)}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:var(--accent-foreground)}@media (hover:hover){.data-\[active\=true\]\:hover\:bg-accent[data-active=true]:hover{background-color:var(--accent)}}.data-\[active\=true\]\:focus\:bg-accent[data-active=true]:focus{background-color:var(--accent)}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:calc(52*var(--spacing))}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:calc(52*var(--spacing))}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:calc(52*var(--spacing)*-1)}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-]{--tw-exit-opacity:0}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:ring-0 *)[data-slot=navigation-menu-link]:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}:is(.\*\*\:data-\[slot\=navigation-menu-link\]\:focus\:outline-none *)[data-slot=navigation-menu-link]:focus{--tw-outline-style:none;outline-style:none}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x:calc(100% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=checked\]\:bg-gray-900[data-state=checked]{background-color:var(--color-gray-900)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-white[data-state=checked]{color:var(--color-white)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=closed]{--tw-exit-opacity:0}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open],.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=open]{--tw-enter-opacity:0}.group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95:is(:where(.group\/navigation-menu)[data-viewport=false] *)[data-state=open]{--tw-enter-scale:.95}@media (hover:hover){.data-\[state\=open\]\:hover\:bg-accent[data-state=open]:hover{background-color:var(--accent)}}.data-\[state\=open\]\:focus\:bg-accent[data-state=open]:focus{background-color:var(--accent)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:var(--input)}.data-\[state\=visible\]\:animate-in[data-state=visible]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}@media (width>=40rem){.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:justify-end{justify-content:flex-end}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:absolute{position:absolute}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.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-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (width>=64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:border-gray-800:is(.dark *){border-color:var(--color-gray-800)}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}.dark\:ring-offset-gray-950:is(.dark *){--tw-ring-offset-color:var(--color-gray-950)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:focus-visible\:ring-gray-300:is(.dark *):focus-visible{--tw-ring-color:var(--color-gray-300)}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:data-\[state\=checked\]\:bg-gray-50:is(.dark *)[data-state=checked]{background-color:var(--color-gray-50)}.dark\:data-\[state\=checked\]\:bg-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.dark\:data-\[state\=checked\]\:text-gray-900:is(.dark *)[data-state=checked]{color:var(--color-gray-900)}.dark\:data-\[state\=unchecked\]\:bg-foreground:is(.dark *)[data-state=unchecked]{background-color:var(--foreground)}.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=unchecked\]\:bg-input\/80:is(.dark *)[data-state=unchecked]{background-color:color-mix(in oklab,var(--input)80%,transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(100% 0 0);--foreground:oklch(14.5% 0 0);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% 0 0);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% 0 0);--primary:oklch(20.5% 0 0);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(97% 0 0);--secondary-foreground:oklch(20.5% 0 0);--muted:oklch(97% 0 0);--muted-foreground:oklch(55.6% 0 0);--accent:oklch(97% 0 0);--accent-foreground:oklch(20.5% 0 0);--destructive:oklch(57.7% .245 27.325);--border:oklch(92.2% 0 0);--input:oklch(92.2% 0 0);--ring:oklch(70.8% 0 0);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(98.5% 0 0);--sidebar-foreground:oklch(14.5% 0 0);--sidebar-primary:oklch(20.5% 0 0);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(97% 0 0);--sidebar-accent-foreground:oklch(20.5% 0 0);--sidebar-border:oklch(92.2% 0 0);--sidebar-ring:oklch(70.8% 0 0)}.dark{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@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))}}
|
|
2
|
-
|
|
3
|
-
/*# sourceMappingURL=511924c894f8e3de.css.map*/
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK=globalThis.TURBOPACK||[]).push(["object"==typeof document?document.currentScript:void 0,{39171:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Item:()=>I,Root:()=>R,RovingFocusGroup:()=>S,RovingFocusGroupItem:()=>T,createRovingFocusGroupScope:()=>j});var n=e.i(19886),s=e.i(77787),a=e.i(29615),i=e.i(28537),o=e.i(15836),l=e.i(86048),c=e.i(42352),d=e.i(81897),u=e.i(98644),m=e.i(53955),p=e.i(20393),h="rovingFocusGroup.onEntryFocus",f={bubbles:!1,cancelable:!0},x="RovingFocusGroup",[g,v,y]=(0,a.createCollection)(x),[b,j]=(0,o.createContextScope)(x,[y]),[w,N]=b(x),S=(0,n.forwardRef)((e,t)=>(0,p.jsx)(g.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(g.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,p.jsx)(k,{...e,ref:t})})}));S.displayName=x;var k=(0,n.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:a,loop:o=!1,dir:l,currentTabStopId:g,defaultCurrentTabStopId:y,onCurrentTabStopIdChange:b,onEntryFocus:j,preventScrollOnEntryFocus:N=!1,...S}=e,k=(0,n.useRef)(null),C=(0,i.useComposedRefs)(t,k),T=(0,m.useDirection)(l),[P,R]=(0,u.useControllableState)({prop:g,defaultProp:y??null,onChange:b,caller:x}),[I,M]=(0,n.useState)(!1),O=(0,d.useCallbackRef)(j),_=v(r),L=(0,n.useRef)(!1),[D,A]=(0,n.useState)(0);return(0,n.useEffect)(()=>{let e=k.current;if(e)return e.addEventListener(h,O),()=>e.removeEventListener(h,O)},[O]),(0,p.jsx)(w,{scope:r,orientation:a,dir:T,loop:o,currentTabStopId:P,onItemFocus:(0,n.useCallback)(e=>R(e),[R]),onItemShiftTab:(0,n.useCallback)(()=>M(!0),[]),onFocusableItemAdd:(0,n.useCallback)(()=>A(e=>e+1),[]),onFocusableItemRemove:(0,n.useCallback)(()=>A(e=>e-1),[]),children:(0,p.jsx)(c.Primitive.div,{tabIndex:I||0===D?-1:0,"data-orientation":a,...S,ref:C,style:{outline:"none",...e.style},onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,()=>{L.current=!0}),onFocus:(0,s.composeEventHandlers)(e.onFocus,e=>{let t=!L.current;if(e.target===e.currentTarget&&t&&!I){let t=new CustomEvent(h,f);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=_().filter(e=>e.focusable);E([e.find(e=>e.active),e.find(e=>e.id===P),...e].filter(Boolean).map(e=>e.ref.current),N)}}L.current=!1}),onBlur:(0,s.composeEventHandlers)(e.onBlur,()=>M(!1))})})}),C="RovingFocusGroupItem",T=(0,n.forwardRef)((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:a=!0,active:i=!1,tabStopId:o,children:d,...u}=e,m=(0,l.useId)(),h=o||m,f=N(C,r),x=f.currentTabStopId===h,y=v(r),{onFocusableItemAdd:b,onFocusableItemRemove:j,currentTabStopId:w}=f;return(0,n.useEffect)(()=>{if(a)return b(),()=>j()},[a,b,j]),(0,p.jsx)(g.ItemSlot,{scope:r,id:h,focusable:a,active:i,children:(0,p.jsx)(c.Primitive.span,{tabIndex:x?0:-1,"data-orientation":f.orientation,...u,ref:t,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{a?f.onItemFocus(h):e.preventDefault()}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>f.onItemFocus(h)),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let s=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(s))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(s)))return P[s]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let r=y().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)r.reverse();else if("prev"===t||"next"===t){"prev"===t&&r.reverse();let n=r.indexOf(e.currentTarget);r=f.loop?function(e,t){return e.map((r,n)=>e[(t+n)%e.length])}(r,n+1):r.slice(n+1)}setTimeout(()=>E(r))}}),children:"function"==typeof d?d({isCurrentTabStop:x,hasTabStop:null!=w}):d})})});T.displayName=C;var P={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function E(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var R=S,I=T},47385:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Content:()=>I,List:()=>E,Root:()=>P,Tabs:()=>y,TabsContent:()=>k,TabsList:()=>j,TabsTrigger:()=>N,Trigger:()=>R,createTabsScope:()=>f});var n=e.i(19886),s=e.i(77787),a=e.i(15836),i=e.i(39171),o=e.i(85017),l=e.i(42352),c=e.i(53955),d=e.i(98644),u=e.i(86048),m=e.i(20393),p="Tabs",[h,f]=(0,a.createContextScope)(p,[i.createRovingFocusGroupScope]),x=(0,i.createRovingFocusGroupScope)(),[g,v]=h(p),y=(0,n.forwardRef)((e,t)=>{let{__scopeTabs:r,value:n,onValueChange:s,defaultValue:a,orientation:i="horizontal",dir:o,activationMode:h="automatic",...f}=e,x=(0,c.useDirection)(o),[v,y]=(0,d.useControllableState)({prop:n,onChange:s,defaultProp:a??"",caller:p});return(0,m.jsx)(g,{scope:r,baseId:(0,u.useId)(),value:v,onValueChange:y,orientation:i,dir:x,activationMode:h,children:(0,m.jsx)(l.Primitive.div,{dir:x,"data-orientation":i,...f,ref:t})})});y.displayName=p;var b="TabsList",j=(0,n.forwardRef)((e,t)=>{let{__scopeTabs:r,loop:n=!0,...s}=e,a=v(b,r),o=x(r);return(0,m.jsx)(i.Root,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:n,children:(0,m.jsx)(l.Primitive.div,{role:"tablist","aria-orientation":a.orientation,...s,ref:t})})});j.displayName=b;var w="TabsTrigger",N=(0,n.forwardRef)((e,t)=>{let{__scopeTabs:r,value:n,disabled:a=!1,...o}=e,c=v(w,r),d=x(r),u=C(c.baseId,n),p=T(c.baseId,n),h=n===c.value;return(0,m.jsx)(i.Item,{asChild:!0,...d,focusable:!a,active:h,children:(0,m.jsx)(l.Primitive.button,{type:"button",role:"tab","aria-selected":h,"aria-controls":p,"data-state":h?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:u,...o,ref:t,onMouseDown:(0,s.composeEventHandlers)(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():c.onValueChange(n)}),onKeyDown:(0,s.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&c.onValueChange(n)}),onFocus:(0,s.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==c.activationMode;h||a||!e||c.onValueChange(n)})})})});N.displayName=w;var S="TabsContent",k=(0,n.forwardRef)((e,t)=>{let{__scopeTabs:r,value:s,forceMount:a,children:i,...c}=e,d=v(S,r),u=C(d.baseId,s),p=T(d.baseId,s),h=s===d.value,f=(0,n.useRef)(h);return(0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>f.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,m.jsx)(o.Presence,{present:a||h,children:({present:r})=>(0,m.jsx)(l.Primitive.div,{"data-state":h?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":u,hidden:!r,id:p,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:f.current?"0s":void 0},children:r&&i})})});function C(e,t){return`${e}-trigger-${t}`}function T(e,t){return`${e}-content-${t}`}k.displayName=S;var P=y,E=j,R=N,I=k},72242:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Tabs:()=>i,TabsContent:()=>c,TabsList:()=>o,TabsTrigger:()=>l});var n=e.i(20393),s=e.i(47385),a=e.i(39037);function i({className:e,...t}){return(0,n.jsx)(s.Root,{"data-slot":"tabs",className:(0,a.cn)("flex flex-col gap-2",e),...t})}function o({className:e,...t}){return(0,n.jsx)(s.List,{"data-slot":"tabs-list",className:(0,a.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",e),...t})}function l({className:e,...t}){return(0,n.jsx)(s.Trigger,{"data-slot":"tabs-trigger",className:(0,a.cn)("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...t})}function c({className:e,...t}){return(0,n.jsx)(s.Content,{"data-slot":"tabs-content",className:(0,a.cn)("flex-1 outline-none",e),...t})}},44299:e=>{"use strict";var{g:t,__dirname:r}=e;function n(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s({clamp:()=>n})},25663:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({ALIGN_OPTIONS:()=>f,Anchor:()=>L,Arrow:()=>A,Content:()=>D,Popper:()=>j,PopperAnchor:()=>N,PopperArrow:()=>R,PopperContent:()=>T,Root:()=>_,SIDE_OPTIONS:()=>h,createPopperScope:()=>v});var n=e.i(19886),s=e.i(73784),a=e.i(13450),i=e.i(36578),o=e.i(28537),l=e.i(15836),c=e.i(42352),d=e.i(81897),u=e.i(91327),m=e.i(30287),p=e.i(20393),h=["top","right","bottom","left"],f=["start","center","end"],x="Popper",[g,v]=(0,l.createContextScope)(x),[y,b]=g(x),j=e=>{let{__scopePopper:t,children:r}=e,[s,a]=(0,n.useState)(null);return(0,p.jsx)(y,{scope:t,anchor:s,onAnchorChange:a,children:r})};j.displayName=x;var w="PopperAnchor",N=(0,n.forwardRef)((e,t)=>{let{__scopePopper:r,virtualRef:s,...a}=e,i=b(w,r),l=(0,n.useRef)(null),d=(0,o.useComposedRefs)(t,l);return(0,n.useEffect)(()=>{i.onAnchorChange(s?.current||l.current)}),s?null:(0,p.jsx)(c.Primitive.div,{...a,ref:d})});N.displayName=w;var S="PopperContent",[k,C]=g(S),T=(0,n.forwardRef)((e,t)=>{let{__scopePopper:r,side:i="bottom",sideOffset:l=0,align:h="center",alignOffset:f=0,arrowPadding:x=0,avoidCollisions:g=!0,collisionBoundary:v=[],collisionPadding:y=0,sticky:j="partial",hideWhenDetached:w=!1,updatePositionStrategy:N="optimized",onPlaced:C,...T}=e,P=b(S,r),[E,R]=(0,n.useState)(null),_=(0,o.useComposedRefs)(t,e=>R(e)),[L,D]=(0,n.useState)(null),A=(0,m.useSize)(L),$=A?.width??0,z=A?.height??0,H="number"==typeof y?y:{top:0,right:0,bottom:0,left:0,...y},F=Array.isArray(v)?v:[v],B=F.length>0,U={padding:H,boundary:F.filter(I),altBoundary:B},{refs:V,floatingStyles:G,placement:K,isPositioned:W,middlewareData:q}=(0,s.useFloating)({strategy:"fixed",placement:i+("center"!==h?"-"+h:""),whileElementsMounted:(...e)=>(0,a.autoUpdate)(...e,{animationFrame:"always"===N}),elements:{reference:P.anchor},middleware:[(0,s.offset)({mainAxis:l+z,alignmentAxis:f}),g&&(0,s.shift)({mainAxis:!0,crossAxis:!1,limiter:"partial"===j?(0,s.limitShift)():void 0,...U}),g&&(0,s.flip)({...U}),(0,s.size)({...U,apply:({elements:e,rects:t,availableWidth:r,availableHeight:n})=>{let{width:s,height:a}=t.reference,i=e.floating.style;i.setProperty("--radix-popper-available-width",`${r}px`),i.setProperty("--radix-popper-available-height",`${n}px`),i.setProperty("--radix-popper-anchor-width",`${s}px`),i.setProperty("--radix-popper-anchor-height",`${a}px`)}}),L&&(0,s.arrow)({element:L,padding:x}),M({arrowWidth:$,arrowHeight:z}),w&&(0,s.hide)({strategy:"referenceHidden",...U})]}),[J,Y]=O(K),X=(0,d.useCallbackRef)(C);(0,u.useLayoutEffect)(()=>{W&&X?.()},[W,X]);let Z=q.arrow?.x,Q=q.arrow?.y,ee=q.arrow?.centerOffset!==0,[et,er]=(0,n.useState)();return(0,u.useLayoutEffect)(()=>{E&&er(window.getComputedStyle(E).zIndex)},[E]),(0,p.jsx)("div",{ref:V.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:W?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:et,"--radix-popper-transform-origin":[q.transformOrigin?.x,q.transformOrigin?.y].join(" "),...q.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,p.jsx)(k,{scope:r,placedSide:J,onArrowChange:D,arrowX:Z,arrowY:Q,shouldHideArrow:ee,children:(0,p.jsx)(c.Primitive.div,{"data-side":J,"data-align":Y,...T,ref:_,style:{...T.style,animation:W?void 0:"none"}})})})});T.displayName=S;var P="PopperArrow",E={top:"bottom",right:"left",bottom:"top",left:"right"},R=(0,n.forwardRef)(function(e,t){let{__scopePopper:r,...n}=e,s=C(P,r),a=E[s.placedSide];return(0,p.jsx)("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:(0,p.jsx)(i.Root,{...n,ref:t,style:{...n.style,display:"block"}})})});function I(e){return null!==e}R.displayName=P;var M=e=>({name:"transformOrigin",options:e,fn(t){let{placement:r,rects:n,middlewareData:s}=t,a=s.arrow?.centerOffset!==0,i=a?0:e.arrowWidth,o=a?0:e.arrowHeight,[l,c]=O(r),d={start:"0%",center:"50%",end:"100%"}[c],u=(s.arrow?.x??0)+i/2,m=(s.arrow?.y??0)+o/2,p="",h="";return"bottom"===l?(p=a?d:`${u}px`,h=`${-o}px`):"top"===l?(p=a?d:`${u}px`,h=`${n.floating.height+o}px`):"right"===l?(p=`${-o}px`,h=a?d:`${m}px`):"left"===l&&(p=`${n.floating.width+o}px`,h=a?d:`${m}px`),{data:{x:p,y:h}}}});function O(e){let[t,r="center"]=e.split("-");return[t,r]}var _=j,L=N,D=T,A=R},44916:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({usePrevious:()=>s});var n=e.i(19886);function s(e){let t=(0,n.useRef)({value:e,previous:e});return(0,n.useMemo)(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}},76:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Root:()=>l,VISUALLY_HIDDEN_STYLES:()=>i,VisuallyHidden:()=>o});var n=e.i(19886),s=e.i(42352),a=e.i(20393),i=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),o=(0,n.forwardRef)((e,t)=>(0,a.jsx)(s.Primitive.span,{...e,ref:t,style:{...i,...e.style}}));o.displayName="VisuallyHidden";var l=o},1990:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Arrow:()=>eK,Content:()=>eD,Group:()=>e$,Icon:()=>e_,Item:()=>eH,ItemIndicator:()=>eB,ItemText:()=>eF,Label:()=>ez,Portal:()=>eL,Root:()=>eI,ScrollDownButton:()=>eV,ScrollUpButton:()=>eU,Select:()=>H,SelectArrow:()=>eC,SelectContent:()=>q,SelectGroup:()=>el,SelectIcon:()=>G,SelectItem:()=>eh,SelectItemIndicator:()=>ev,SelectItemText:()=>ex,SelectLabel:()=>ed,SelectPortal:()=>K,SelectScrollDownButton:()=>ew,SelectScrollUpButton:()=>eb,SelectSeparator:()=>eS,SelectTrigger:()=>B,SelectValue:()=>V,SelectViewport:()=>es,Separator:()=>eG,Trigger:()=>eM,Value:()=>eO,Viewport:()=>eA,createSelectScope:()=>_});var n=e.i(19886),s=e.i(14709),a=e.i(44299),i=e.i(77787),o=e.i(29615),l=e.i(28537),c=e.i(15836),d=e.i(53955),u=e.i(74702),m=e.i(63433),p=e.i(32240),h=e.i(86048),f=e.i(25663),x=e.i(23214),g=e.i(42352),v=e.i(74009),y=e.i(81897),b=e.i(98644),j=e.i(91327),w=e.i(44916),N=e.i(76),S=e.i(83276),k=e.i(65544),C=e.i(20393),T=[" ","Enter","ArrowUp","ArrowDown"],P=[" ","Enter"],E="Select",[R,I,M]=(0,o.createCollection)(E),[O,_]=(0,c.createContextScope)(E,[M,f.createPopperScope]),L=(0,f.createPopperScope)(),[D,A]=O(E),[$,z]=O(E),H=e=>{let{__scopeSelect:t,children:r,open:s,defaultOpen:a,onOpenChange:i,value:o,defaultValue:l,onValueChange:c,dir:u,name:m,autoComplete:p,disabled:x,required:g,form:v}=e,y=L(t),[j,w]=(0,n.useState)(null),[N,S]=(0,n.useState)(null),[k,T]=(0,n.useState)(!1),P=(0,d.useDirection)(u),[I,M]=(0,b.useControllableState)({prop:s,defaultProp:a??!1,onChange:i,caller:E}),[O,_]=(0,b.useControllableState)({prop:o,defaultProp:l,onChange:c,caller:E}),A=(0,n.useRef)(null),z=!j||v||!!j.closest("form"),[H,F]=(0,n.useState)(new Set),B=Array.from(H).map(e=>e.props.value).join(";");return(0,C.jsx)(f.Root,{...y,children:(0,C.jsxs)(D,{required:g,scope:t,trigger:j,onTriggerChange:w,valueNode:N,onValueNodeChange:S,valueNodeHasChildren:k,onValueNodeHasChildrenChange:T,contentId:(0,h.useId)(),value:O,onValueChange:_,open:I,onOpenChange:M,dir:P,triggerPointerDownPosRef:A,disabled:x,children:[(0,C.jsx)(R.Provider,{scope:t,children:(0,C.jsx)($,{scope:e.__scopeSelect,onNativeOptionAdd:(0,n.useCallback)(e=>{F(t=>new Set(t).add(e))},[]),onNativeOptionRemove:(0,n.useCallback)(e=>{F(t=>{let r=new Set(t);return r.delete(e),r})},[]),children:r})}),z?(0,C.jsxs)(eT,{"aria-hidden":!0,required:g,tabIndex:-1,name:m,autoComplete:p,value:O,onChange:e=>_(e.target.value),disabled:x,form:v,children:[void 0===O?(0,C.jsx)("option",{value:""}):null,Array.from(H)]},B):null]})})};H.displayName=E;var F="SelectTrigger",B=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,disabled:s=!1,...a}=e,o=L(r),c=A(F,r),d=c.disabled||s,u=(0,l.useComposedRefs)(t,c.onTriggerChange),m=I(r),p=(0,n.useRef)("touch"),[h,x,v]=eE(e=>{let t=m().filter(e=>!e.disabled),r=t.find(e=>e.value===c.value),n=eR(t,e,r);void 0!==n&&c.onValueChange(n.value)}),y=e=>{d||(c.onOpenChange(!0),v()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,C.jsx)(f.Anchor,{asChild:!0,...o,children:(0,C.jsx)(g.Primitive.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":eP(c.value)?"":void 0,...a,ref:u,onClick:(0,i.composeEventHandlers)(a.onClick,e=>{e.currentTarget.focus(),"mouse"!==p.current&&y(e)}),onPointerDown:(0,i.composeEventHandlers)(a.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(y(e),e.preventDefault())}),onKeyDown:(0,i.composeEventHandlers)(a.onKeyDown,e=>{let t=""!==h.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||x(e.key),(!t||" "!==e.key)&&T.includes(e.key)&&(y(),e.preventDefault())})})})});B.displayName=F;var U="SelectValue",V=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,className:n,style:s,children:a,placeholder:i="",...o}=e,c=A(U,r),{onValueNodeHasChildrenChange:d}=c,u=void 0!==a,m=(0,l.useComposedRefs)(t,c.onValueNodeChange);return(0,j.useLayoutEffect)(()=>{d(u)},[d,u]),(0,C.jsx)(g.Primitive.span,{...o,ref:m,style:{pointerEvents:"none"},children:eP(c.value)?(0,C.jsx)(C.Fragment,{children:i}):a})});V.displayName=U;var G=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,children:n,...s}=e;return(0,C.jsx)(g.Primitive.span,{"aria-hidden":!0,...s,ref:t,children:n||"▼"})});G.displayName="SelectIcon";var K=e=>(0,C.jsx)(x.Portal,{asChild:!0,...e});K.displayName="SelectPortal";var W="SelectContent",q=(0,n.forwardRef)((e,t)=>{let r=A(W,e.__scopeSelect),[a,i]=(0,n.useState)();return((0,j.useLayoutEffect)(()=>{i(new DocumentFragment)},[]),r.open)?(0,C.jsx)(Z,{...e,ref:t}):a?(0,s.createPortal)((0,C.jsx)(J,{scope:e.__scopeSelect,children:(0,C.jsx)(R.Slot,{scope:e.__scopeSelect,children:(0,C.jsx)("div",{children:e.children})})}),a):null});q.displayName=W;var[J,Y]=O(W),X=(0,v.createSlot)("SelectContent.RemoveScroll"),Z=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,position:s="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:c,side:d,sideOffset:h,align:f,alignOffset:x,arrowPadding:g,collisionBoundary:v,collisionPadding:y,sticky:b,hideWhenDetached:j,avoidCollisions:w,...N}=e,T=A(W,r),[P,E]=(0,n.useState)(null),[R,M]=(0,n.useState)(null),O=(0,l.useComposedRefs)(t,e=>E(e)),[_,L]=(0,n.useState)(null),[D,$]=(0,n.useState)(null),z=I(r),[H,F]=(0,n.useState)(!1),B=(0,n.useRef)(!1);(0,n.useEffect)(()=>{if(P)return(0,S.hideOthers)(P)},[P]),(0,m.useFocusGuards)();let U=(0,n.useCallback)(e=>{let[t,...r]=z().map(e=>e.ref.current),[n]=r.slice(-1),s=document.activeElement;for(let r of e)if(r===s||(r?.scrollIntoView({block:"nearest"}),r===t&&R&&(R.scrollTop=0),r===n&&R&&(R.scrollTop=R.scrollHeight),r?.focus(),document.activeElement!==s))return},[z,R]),V=(0,n.useCallback)(()=>U([_,P]),[U,_,P]);(0,n.useEffect)(()=>{H&&V()},[H,V]);let{onOpenChange:G,triggerPointerDownPosRef:K}=T;(0,n.useEffect)(()=>{if(P){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(K.current?.y??0))}},r=r=>{e.x<=10&&e.y<=10?r.preventDefault():P.contains(r.target)||G(!1),document.removeEventListener("pointermove",t),K.current=null};return null!==K.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",r,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",r,{capture:!0})}}},[P,G,K]),(0,n.useEffect)(()=>{let e=()=>G(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[G]);let[q,Y]=eE(e=>{let t=z().filter(e=>!e.disabled),r=t.find(e=>e.ref.current===document.activeElement),n=eR(t,e,r);n&&setTimeout(()=>n.ref.current.focus())}),Z=(0,n.useCallback)((e,t,r)=>{let n=!B.current&&!r;(void 0!==T.value&&T.value===t||n)&&(L(e),n&&(B.current=!0))},[T.value]),et=(0,n.useCallback)(()=>P?.focus(),[P]),er=(0,n.useCallback)((e,t,r)=>{let n=!B.current&&!r;(void 0!==T.value&&T.value===t||n)&&$(e)},[T.value]),en="popper"===s?ee:Q,es=en===ee?{side:d,sideOffset:h,align:f,alignOffset:x,arrowPadding:g,collisionBoundary:v,collisionPadding:y,sticky:b,hideWhenDetached:j,avoidCollisions:w}:{};return(0,C.jsx)(J,{scope:r,content:P,viewport:R,onViewportChange:M,itemRefCallback:Z,selectedItem:_,onItemLeave:et,itemTextRefCallback:er,focusSelectedItem:V,selectedItemText:D,position:s,isPositioned:H,searchRef:q,children:(0,C.jsx)(k.RemoveScroll,{as:X,allowPinchZoom:!0,children:(0,C.jsx)(p.FocusScope,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,i.composeEventHandlers)(a,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,C.jsx)(u.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:c,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,C.jsx)(en,{role:"listbox",id:T.contentId,"data-state":T.open?"open":"closed",dir:T.dir,onContextMenu:e=>e.preventDefault(),...N,...es,onPlaced:()=>F(!0),ref:O,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:(0,i.composeEventHandlers)(N.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||Y(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=z().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let r=e.target,n=t.indexOf(r);t=t.slice(n+1)}setTimeout(()=>U(t)),e.preventDefault()}})})})})})})});Z.displayName="SelectContentImpl";var Q=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,onPlaced:s,...i}=e,o=A(W,r),c=Y(W,r),[d,u]=(0,n.useState)(null),[m,p]=(0,n.useState)(null),h=(0,l.useComposedRefs)(t,e=>p(e)),f=I(r),x=(0,n.useRef)(!1),v=(0,n.useRef)(!0),{viewport:y,selectedItem:b,selectedItemText:w,focusSelectedItem:N}=c,S=(0,n.useCallback)(()=>{if(o.trigger&&o.valueNode&&d&&m&&y&&b&&w){let e=o.trigger.getBoundingClientRect(),t=m.getBoundingClientRect(),r=o.valueNode.getBoundingClientRect(),n=w.getBoundingClientRect();if("rtl"!==o.dir){let s=n.left-t.left,i=r.left-s,o=e.left-i,l=e.width+o,c=Math.max(l,t.width),u=window.innerWidth-10,m=(0,a.clamp)(i,[10,Math.max(10,u-c)]);d.style.minWidth=l+"px",d.style.left=m+"px"}else{let s=t.right-n.right,i=window.innerWidth-r.right-s,o=window.innerWidth-e.right-i,l=e.width+o,c=Math.max(l,t.width),u=window.innerWidth-10,m=(0,a.clamp)(i,[10,Math.max(10,u-c)]);d.style.minWidth=l+"px",d.style.right=m+"px"}let i=f(),l=window.innerHeight-20,c=y.scrollHeight,u=window.getComputedStyle(m),p=parseInt(u.borderTopWidth,10),h=parseInt(u.paddingTop,10),g=parseInt(u.borderBottomWidth,10),v=p+h+c+parseInt(u.paddingBottom,10)+g,j=Math.min(5*b.offsetHeight,v),N=window.getComputedStyle(y),S=parseInt(N.paddingTop,10),k=parseInt(N.paddingBottom,10),C=e.top+e.height/2-10,T=b.offsetHeight/2,P=p+h+(b.offsetTop+T);if(P<=C){let e=i.length>0&&b===i[i.length-1].ref.current;d.style.bottom="0px";let t=Math.max(l-C,T+(e?k:0)+(m.clientHeight-y.offsetTop-y.offsetHeight)+g);d.style.height=P+t+"px"}else{let e=i.length>0&&b===i[0].ref.current;d.style.top="0px";let t=Math.max(C,p+y.offsetTop+(e?S:0)+T);d.style.height=t+(v-P)+"px",y.scrollTop=P-C+y.offsetTop}d.style.margin="10px 0",d.style.minHeight=j+"px",d.style.maxHeight=l+"px",s?.(),requestAnimationFrame(()=>x.current=!0)}},[f,o.trigger,o.valueNode,d,m,y,b,w,o.dir,s]);(0,j.useLayoutEffect)(()=>S(),[S]);let[k,T]=(0,n.useState)();(0,j.useLayoutEffect)(()=>{m&&T(window.getComputedStyle(m).zIndex)},[m]);let P=(0,n.useCallback)(e=>{e&&!0===v.current&&(S(),N?.(),v.current=!1)},[S,N]);return(0,C.jsx)(et,{scope:r,contentWrapper:d,shouldExpandOnScrollRef:x,onScrollButtonChange:P,children:(0,C.jsx)("div",{ref:u,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:k},children:(0,C.jsx)(g.Primitive.div,{...i,ref:h,style:{boxSizing:"border-box",maxHeight:"100%",...i.style}})})})});Q.displayName="SelectItemAlignedPosition";var ee=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,align:n="start",collisionPadding:s=10,...a}=e,i=L(r);return(0,C.jsx)(f.Content,{...i,...a,ref:t,align:n,collisionPadding:s,style:{boxSizing:"border-box",...a.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});ee.displayName="SelectPopperPosition";var[et,er]=O(W,{}),en="SelectViewport",es=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,nonce:s,...a}=e,o=Y(en,r),c=er(en,r),d=(0,l.useComposedRefs)(t,o.onViewportChange),u=(0,n.useRef)(0);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:s}),(0,C.jsx)(R.Slot,{scope:r,children:(0,C.jsx)(g.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:(0,i.composeEventHandlers)(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:r,shouldExpandOnScrollRef:n}=c;if(n?.current&&r){let e=Math.abs(u.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,s=Math.max(parseFloat(r.style.minHeight),parseFloat(r.style.height));if(s<n){let a=s+e,i=Math.min(n,a),o=a-i;r.style.height=i+"px","0px"===r.style.bottom&&(t.scrollTop=o>0?o:0,r.style.justifyContent="flex-end")}}}u.current=t.scrollTop})})})]})});es.displayName=en;var ea="SelectGroup",[ei,eo]=O(ea),el=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,...n}=e,s=(0,h.useId)();return(0,C.jsx)(ei,{scope:r,id:s,children:(0,C.jsx)(g.Primitive.div,{role:"group","aria-labelledby":s,...n,ref:t})})});el.displayName=ea;var ec="SelectLabel",ed=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,...n}=e,s=eo(ec,r);return(0,C.jsx)(g.Primitive.div,{id:s.id,...n,ref:t})});ed.displayName=ec;var eu="SelectItem",[em,ep]=O(eu),eh=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,value:s,disabled:a=!1,textValue:o,...c}=e,d=A(eu,r),u=Y(eu,r),m=d.value===s,[p,f]=(0,n.useState)(o??""),[x,v]=(0,n.useState)(!1),y=(0,l.useComposedRefs)(t,e=>u.itemRefCallback?.(e,s,a)),b=(0,h.useId)(),j=(0,n.useRef)("touch"),w=()=>{a||(d.onValueChange(s),d.onOpenChange(!1))};if(""===s)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,C.jsx)(em,{scope:r,value:s,disabled:a,textId:b,isSelected:m,onItemTextChange:(0,n.useCallback)(e=>{f(t=>t||(e?.textContent??"").trim())},[]),children:(0,C.jsx)(R.ItemSlot,{scope:r,value:s,disabled:a,textValue:p,children:(0,C.jsx)(g.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":x?"":void 0,"aria-selected":m&&x,"data-state":m?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...c,ref:y,onFocus:(0,i.composeEventHandlers)(c.onFocus,()=>v(!0)),onBlur:(0,i.composeEventHandlers)(c.onBlur,()=>v(!1)),onClick:(0,i.composeEventHandlers)(c.onClick,()=>{"mouse"!==j.current&&w()}),onPointerUp:(0,i.composeEventHandlers)(c.onPointerUp,()=>{"mouse"===j.current&&w()}),onPointerDown:(0,i.composeEventHandlers)(c.onPointerDown,e=>{j.current=e.pointerType}),onPointerMove:(0,i.composeEventHandlers)(c.onPointerMove,e=>{j.current=e.pointerType,a?u.onItemLeave?.():"mouse"===j.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,i.composeEventHandlers)(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&u.onItemLeave?.()}),onKeyDown:(0,i.composeEventHandlers)(c.onKeyDown,e=>{(u.searchRef?.current===""||" "!==e.key)&&(P.includes(e.key)&&w()," "===e.key&&e.preventDefault())})})})})});eh.displayName=eu;var ef="SelectItemText",ex=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,className:a,style:i,...o}=e,c=A(ef,r),d=Y(ef,r),u=ep(ef,r),m=z(ef,r),[p,h]=(0,n.useState)(null),f=(0,l.useComposedRefs)(t,e=>h(e),u.onItemTextChange,e=>d.itemTextRefCallback?.(e,u.value,u.disabled)),x=p?.textContent,v=(0,n.useMemo)(()=>(0,C.jsx)("option",{value:u.value,disabled:u.disabled,children:x},u.value),[u.disabled,u.value,x]),{onNativeOptionAdd:y,onNativeOptionRemove:b}=m;return(0,j.useLayoutEffect)(()=>(y(v),()=>b(v)),[y,b,v]),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(g.Primitive.span,{id:u.textId,...o,ref:f}),u.isSelected&&c.valueNode&&!c.valueNodeHasChildren?(0,s.createPortal)(o.children,c.valueNode):null]})});ex.displayName=ef;var eg="SelectItemIndicator",ev=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,...n}=e;return ep(eg,r).isSelected?(0,C.jsx)(g.Primitive.span,{"aria-hidden":!0,...n,ref:t}):null});ev.displayName=eg;var ey="SelectScrollUpButton",eb=(0,n.forwardRef)((e,t)=>{let r=Y(ey,e.__scopeSelect),s=er(ey,e.__scopeSelect),[a,i]=(0,n.useState)(!1),o=(0,l.useComposedRefs)(t,s.onScrollButtonChange);return(0,j.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){i(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),a?(0,C.jsx)(eN,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});eb.displayName=ey;var ej="SelectScrollDownButton",ew=(0,n.forwardRef)((e,t)=>{let r=Y(ej,e.__scopeSelect),s=er(ej,e.__scopeSelect),[a,i]=(0,n.useState)(!1),o=(0,l.useComposedRefs)(t,s.onScrollButtonChange);return(0,j.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;i(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),a?(0,C.jsx)(eN,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});ew.displayName=ej;var eN=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,onAutoScroll:s,...a}=e,o=Y("SelectScrollButton",r),l=(0,n.useRef)(null),c=I(r),d=(0,n.useCallback)(()=>{null!==l.current&&(window.clearInterval(l.current),l.current=null)},[]);return(0,n.useEffect)(()=>()=>d(),[d]),(0,j.useLayoutEffect)(()=>{let e=c().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[c]),(0,C.jsx)(g.Primitive.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:(0,i.composeEventHandlers)(a.onPointerDown,()=>{null===l.current&&(l.current=window.setInterval(s,50))}),onPointerMove:(0,i.composeEventHandlers)(a.onPointerMove,()=>{o.onItemLeave?.(),null===l.current&&(l.current=window.setInterval(s,50))}),onPointerLeave:(0,i.composeEventHandlers)(a.onPointerLeave,()=>{d()})})}),eS=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,...n}=e;return(0,C.jsx)(g.Primitive.div,{"aria-hidden":!0,...n,ref:t})});eS.displayName="SelectSeparator";var ek="SelectArrow",eC=(0,n.forwardRef)((e,t)=>{let{__scopeSelect:r,...n}=e,s=L(r),a=A(ek,r),i=Y(ek,r);return a.open&&"popper"===i.position?(0,C.jsx)(f.Arrow,{...s,...n,ref:t}):null});eC.displayName=ek;var eT=(0,n.forwardRef)(({__scopeSelect:e,value:t,...r},s)=>{let a=(0,n.useRef)(null),i=(0,l.useComposedRefs)(s,a),o=(0,w.usePrevious)(t);return(0,n.useEffect)(()=>{let e=a.current;if(!e)return;let r=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(o!==t&&r){let n=new Event("change",{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,C.jsx)(g.Primitive.select,{...r,style:{...N.VISUALLY_HIDDEN_STYLES,...r.style},ref:i,defaultValue:t})});function eP(e){return""===e||void 0===e}function eE(e){let t=(0,y.useCallbackRef)(e),r=(0,n.useRef)(""),s=(0,n.useRef)(0),a=(0,n.useCallback)(e=>{let n=r.current+e;t(n),function e(t){r.current=t,window.clearTimeout(s.current),""!==t&&(s.current=window.setTimeout(()=>e(""),1e3))}(n)},[t]),i=(0,n.useCallback)(()=>{r.current="",window.clearTimeout(s.current)},[]);return(0,n.useEffect)(()=>()=>window.clearTimeout(s.current),[]),[r,a,i]}function eR(e,t,r){var n,s;let a=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=r?e.indexOf(r):-1,o=(n=e,s=Math.max(i,0),n.map((e,t)=>n[(s+t)%n.length]));1===a.length&&(o=o.filter(e=>e!==r));let l=o.find(e=>e.textValue.toLowerCase().startsWith(a.toLowerCase()));return l!==r?l:void 0}eT.displayName="SelectBubbleInput";var eI=H,eM=B,eO=V,e_=G,eL=K,eD=q,eA=es,e$=el,ez=ed,eH=eh,eF=ex,eB=ev,eU=eb,eV=ew,eG=eS,eK=eC},68080:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({__iconNode:()=>t,default:()=>r});var n=e.i(49770);let t=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],r=(0,n.default)("chevron-up",t)}},9927:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({ChevronUpIcon:()=>n.default});var n=e.i(68080)},40989:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Select:()=>c,SelectContent:()=>p,SelectGroup:()=>d,SelectItem:()=>f,SelectLabel:()=>h,SelectScrollDownButton:()=>v,SelectScrollUpButton:()=>g,SelectSeparator:()=>x,SelectTrigger:()=>m,SelectValue:()=>u});var n=e.i(20393),s=e.i(1990),a=e.i(31110),i=e.i(20546),o=e.i(9927),l=e.i(39037);function c({...e}){return(0,n.jsx)(s.Root,{"data-slot":"select",...e})}function d({...e}){return(0,n.jsx)(s.Group,{"data-slot":"select-group",...e})}function u({...e}){return(0,n.jsx)(s.Value,{"data-slot":"select-value",...e})}function m({className:e,size:t="default",children:r,...a}){return(0,n.jsxs)(s.Trigger,{"data-slot":"select-trigger","data-size":t,className:(0,l.cn)("border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...a,children:[r,(0,n.jsx)(s.Icon,{asChild:!0,children:(0,n.jsx)(i.ChevronDownIcon,{className:"size-4 opacity-50"})})]})}function p({className:e,children:t,position:r="popper",...a}){return(0,n.jsx)(s.Portal,{children:(0,n.jsxs)(s.Content,{"data-slot":"select-content",className:(0,l.cn)("bg-popover text-popover-foreground 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 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md","popper"===r&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:r,...a,children:[(0,n.jsx)(g,{}),(0,n.jsx)(s.Viewport,{className:(0,l.cn)("p-1","popper"===r&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),(0,n.jsx)(v,{})]})})}function h({className:e,...t}){return(0,n.jsx)(s.Label,{"data-slot":"select-label",className:(0,l.cn)("text-muted-foreground px-2 py-1.5 text-xs",e),...t})}function f({className:e,children:t,...r}){return(0,n.jsxs)(s.Item,{"data-slot":"select-item",className:(0,l.cn)("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...r,children:[(0,n.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,n.jsx)(s.ItemIndicator,{children:(0,n.jsx)(a.CheckIcon,{className:"size-4"})})}),(0,n.jsx)(s.ItemText,{children:t})]})}function x({className:e,...t}){return(0,n.jsx)(s.Separator,{"data-slot":"select-separator",className:(0,l.cn)("bg-border pointer-events-none -mx-1 my-1 h-px",e),...t})}function g({className:e,...t}){return(0,n.jsx)(s.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,n.jsx)(o.ChevronUpIcon,{className:"size-4"})})}function v({className:e,...t}){return(0,n.jsx)(s.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:(0,l.cn)("flex cursor-default items-center justify-center py-1",e),...t,children:(0,n.jsx)(i.ChevronDownIcon,{className:"size-4"})})}},60994:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Root:()=>w,Switch:()=>g,SwitchThumb:()=>y,Thumb:()=>N,createSwitchScope:()=>h});var n=e.i(19886),s=e.i(77787),a=e.i(28537),i=e.i(15836),o=e.i(98644),l=e.i(44916),c=e.i(30287),d=e.i(42352),u=e.i(20393),m="Switch",[p,h]=(0,i.createContextScope)(m),[f,x]=p(m),g=(0,n.forwardRef)((e,t)=>{let{__scopeSwitch:r,name:i,checked:l,defaultChecked:c,required:p,disabled:h,value:x="on",onCheckedChange:g,form:v,...y}=e,[w,N]=(0,n.useState)(null),S=(0,a.useComposedRefs)(t,e=>N(e)),k=(0,n.useRef)(!1),C=!w||v||!!w.closest("form"),[T,P]=(0,o.useControllableState)({prop:l,defaultProp:c??!1,onChange:g,caller:m});return(0,u.jsxs)(f,{scope:r,checked:T,disabled:h,children:[(0,u.jsx)(d.Primitive.button,{type:"button",role:"switch","aria-checked":T,"aria-required":p,"data-state":j(T),"data-disabled":h?"":void 0,disabled:h,value:x,...y,ref:S,onClick:(0,s.composeEventHandlers)(e.onClick,e=>{P(e=>!e),C&&(k.current=e.isPropagationStopped(),k.current||e.stopPropagation())})}),C&&(0,u.jsx)(b,{control:w,bubbles:!k.current,name:i,value:x,checked:T,required:p,disabled:h,form:v,style:{transform:"translateX(-100%)"}})]})});g.displayName=m;var v="SwitchThumb",y=(0,n.forwardRef)((e,t)=>{let{__scopeSwitch:r,...n}=e,s=x(v,r);return(0,u.jsx)(d.Primitive.span,{"data-state":j(s.checked),"data-disabled":s.disabled?"":void 0,...n,ref:t})});y.displayName=v;var b=(0,n.forwardRef)(({__scopeSwitch:e,control:t,checked:r,bubbles:s=!0,...i},o)=>{let d=(0,n.useRef)(null),m=(0,a.useComposedRefs)(d,o),p=(0,l.usePrevious)(r),h=(0,c.useSize)(t);return(0,n.useEffect)(()=>{let e=d.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(p!==r&&t){let n=new Event("click",{bubbles:s});t.call(e,r),e.dispatchEvent(n)}},[p,r,s]),(0,u.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...i,tabIndex:-1,ref:m,style:{...i.style,...h,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function j(e){return e?"checked":"unchecked"}b.displayName="SwitchBubbleInput";var w=g,N=y},46284:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Switch:()=>i});var n=e.i(20393),s=e.i(60994),a=e.i(39037);function i({className:e,...t}){return(0,n.jsx)(s.Root,{"data-slot":"switch",className:(0,a.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:(0,n.jsx)(s.Thumb,{"data-slot":"switch-thumb",className:(0,a.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}},9385:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Table:()=>a,TableBody:()=>o,TableCaption:()=>m,TableCell:()=>u,TableFooter:()=>l,TableHead:()=>d,TableHeader:()=>i,TableRow:()=>c});var n=e.i(20393),s=e.i(39037);function a({className:e,...t}){return(0,n.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,n.jsx)("table",{"data-slot":"table",className:(0,s.cn)("w-full caption-bottom text-sm",e),...t})})}function i({className:e,...t}){return(0,n.jsx)("thead",{"data-slot":"table-header",className:(0,s.cn)("[&_tr]:border-b",e),...t})}function o({className:e,...t}){return(0,n.jsx)("tbody",{"data-slot":"table-body",className:(0,s.cn)("[&_tr:last-child]:border-0",e),...t})}function l({className:e,...t}){return(0,n.jsx)("tfoot",{"data-slot":"table-footer",className:(0,s.cn)("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",e),...t})}function c({className:e,...t}){return(0,n.jsx)("tr",{"data-slot":"table-row",className:(0,s.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...t})}function d({className:e,...t}){return(0,n.jsx)("th",{"data-slot":"table-head",className:(0,s.cn)("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t})}function u({className:e,...t}){return(0,n.jsx)("td",{"data-slot":"table-cell",className:(0,s.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t})}function m({className:e,...t}){return(0,n.jsx)("caption",{"data-slot":"table-caption",className:(0,s.cn)("text-muted-foreground mt-4 text-sm",e),...t})}},78237:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Checkbox:()=>j,CheckboxIndicator:()=>N,Indicator:()=>N,Root:()=>j,createCheckboxScope:()=>f,unstable_BubbleInput:()=>k,unstable_CheckboxBubbleInput:()=>k,unstable_CheckboxProvider:()=>v,unstable_CheckboxTrigger:()=>b,unstable_Provider:()=>v,unstable_Trigger:()=>b});var n=e.i(19886),s=e.i(28537),a=e.i(15836),i=e.i(92391),o=e.i(98644),l=e.i(44916),c=e.i(30287),d=e.i(62585),u=e.i(42352),m=e.i(20393),p="Checkbox",[h,f]=(0,a.createContextScope)(p),[x,g]=h(p);function v(e){let{__scopeCheckbox:t,checked:r,children:s,defaultChecked:a,disabled:i,form:l,name:c,onCheckedChange:d,required:u,value:h="on",internal_do_not_use_render:f}=e,[g,v]=(0,o.useControllableState)({prop:r,defaultProp:a??!1,onChange:d,caller:p}),[y,b]=(0,n.useState)(null),[j,w]=(0,n.useState)(null),N=(0,n.useRef)(!1),S=!y||!!l||!!y.closest("form"),k={checked:g,disabled:i,setChecked:v,control:y,setControl:b,name:c,form:l,value:h,hasConsumerStoppedPropagationRef:N,required:u,defaultChecked:!C(a)&&a,isFormControl:S,bubbleInput:j,setBubbleInput:w};return(0,m.jsx)(x,{scope:t,...k,children:"function"==typeof f?f(k):s})}var y="CheckboxTrigger",b=(0,n.forwardRef)(({__scopeCheckbox:e,onKeyDown:t,onClick:r,...a},o)=>{let{control:l,value:c,disabled:d,checked:p,required:h,setControl:f,setChecked:x,hasConsumerStoppedPropagationRef:v,isFormControl:b,bubbleInput:j}=g(y,e),w=(0,s.useComposedRefs)(o,f),N=(0,n.useRef)(p);return(0,n.useEffect)(()=>{let e=l?.form;if(e){let t=()=>x(N.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[l,x]),(0,m.jsx)(u.Primitive.button,{type:"button",role:"checkbox","aria-checked":C(p)?"mixed":p,"aria-required":h,"data-state":T(p),"data-disabled":d?"":void 0,disabled:d,value:c,...a,ref:w,onKeyDown:(0,i.composeEventHandlers)(t,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.composeEventHandlers)(r,e=>{x(e=>!!C(e)||!e),j&&b&&(v.current=e.isPropagationStopped(),v.current||e.stopPropagation())})})});b.displayName=y;var j=(0,n.forwardRef)((e,t)=>{let{__scopeCheckbox:r,name:n,checked:s,defaultChecked:a,required:i,disabled:o,value:l,onCheckedChange:c,form:d,...u}=e;return(0,m.jsx)(v,{__scopeCheckbox:r,checked:s,defaultChecked:a,disabled:o,required:i,onCheckedChange:c,name:n,form:d,value:l,internal_do_not_use_render:({isFormControl:e})=>(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(b,{...u,ref:t,__scopeCheckbox:r}),e&&(0,m.jsx)(k,{__scopeCheckbox:r})]})})});j.displayName=p;var w="CheckboxIndicator",N=(0,n.forwardRef)((e,t)=>{let{__scopeCheckbox:r,forceMount:n,...s}=e,a=g(w,r);return(0,m.jsx)(d.Presence,{present:n||C(a.checked)||!0===a.checked,children:(0,m.jsx)(u.Primitive.span,{"data-state":T(a.checked),"data-disabled":a.disabled?"":void 0,...s,ref:t,style:{pointerEvents:"none",...e.style}})})});N.displayName=w;var S="CheckboxBubbleInput",k=(0,n.forwardRef)(({__scopeCheckbox:e,...t},r)=>{let{control:a,hasConsumerStoppedPropagationRef:i,checked:o,defaultChecked:d,required:p,disabled:h,name:f,value:x,form:v,bubbleInput:y,setBubbleInput:b}=g(S,e),j=(0,s.useComposedRefs)(r,b),w=(0,l.usePrevious)(o),N=(0,c.useSize)(a);(0,n.useEffect)(()=>{if(!y)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!i.current;if(w!==o&&e){let r=new Event("click",{bubbles:t});y.indeterminate=C(o),e.call(y,!C(o)&&o),y.dispatchEvent(r)}},[y,w,o,i]);let k=(0,n.useRef)(!C(o)&&o);return(0,m.jsx)(u.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:d??k.current,required:p,disabled:h,name:f,value:x,form:v,...t,tabIndex:-1,ref:j,style:{...t.style,...N,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function C(e){return"indeterminate"===e}function T(e){return C(e)?"indeterminate":e?"checked":"unchecked"}k.displayName=S},46456:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({Check:()=>n.default});var n=e.i(64412)},42736:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({Checkbox:()=>t});var n=e.i(20393),s=e.i(19886),a=e.i(78237),i=e.i(46456),o=e.i(39037);let t=(0,s.forwardRef)(({className:e,...t},r)=>(0,n.jsx)(a.Root,{ref:r,className:(0,o.cn)("peer h-4 w-4 shrink-0 rounded-sm border border-gray-300 ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-gray-950 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-gray-900 data-[state=checked]:text-white dark:border-gray-800 dark:ring-offset-gray-950 dark:focus-visible:ring-gray-300 dark:data-[state=checked]:bg-gray-50 dark:data-[state=checked]:text-gray-900",e),...t,children:(0,n.jsx)(a.Indicator,{className:(0,o.cn)("flex items-center justify-center text-current"),children:(0,n.jsx)(i.Check,{className:"h-4 w-4"})})}));t.displayName=a.Root.displayName}},95113:e=>{"use strict";var{g:t,__dirname:r}=e;function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach(function(t){n(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function i(e,t){if(null==e)return{};var r,n,s={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}function o(e,t){if(null==e)return{};var r,n,s=i(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(s[r]=e[r])}return s}function l(e,t){return c(e)||d(e,t)||u(e,t)||p()}function c(e){if(Array.isArray(e))return e}function d(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,s=!1,a=void 0;try{for(var i,o=e[Symbol.iterator]();!(n=(i=o.next()).done)&&(r.push(i.value),!t||r.length!==t);n=!0);}catch(e){s=!0,a=e}finally{try{n||null==o.return||o.return()}finally{if(s)throw a}}return r}}function u(e,t){if(e){if("string"==typeof e)return m(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return m(e,t)}}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function p(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}e.s({arrayLikeToArray:()=>m,arrayWithHoles:()=>c,defineProperty:()=>n,iterableToArrayLimit:()=>d,nonIterableRest:()=>p,objectSpread2:()=>a,objectWithoutProperties:()=>o,objectWithoutPropertiesLoose:()=>i,slicedToArray:()=>l,unsupportedIterableToArray:()=>u})},85767:e=>{"use strict";var{g:t,__dirname:r}=e;{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function a(e){return function t(){for(var r=this,n=arguments.length,s=Array(n),a=0;a<n;a++)s[a]=arguments[a];return s.length>=e.length?e.apply(this,s):function(){for(var e=arguments.length,n=Array(e),a=0;a<e;a++)n[a]=arguments[a];return t.apply(r,[].concat(s,n))}}}function i(e){return({}).toString.call(e).includes("Object")}function o(e){return"function"==typeof e}e.s({default:()=>t});var l=a(function(e,t){throw Error(e[t]||e.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),c={changes:function(e,t){return i(t)||l("changeType"),Object.keys(t).some(function(t){return!Object.prototype.hasOwnProperty.call(e,t)})&&l("changeField"),t},selector:function(e){o(e)||l("selectorType")},handler:function(e){o(e)||i(e)||l("handlerType"),i(e)&&Object.values(e).some(function(e){return!o(e)})&&l("handlersType")},initial:function(e){e||l("initialIsRequired"),i(e)||l("initialType"),Object.keys(e).length||l("initialContent")}};function d(e,t){return o(t)?t(e.current):t}function u(e,t){return e.current=s(s({},e.current),t),t}function m(e,t,r){return o(t)?t(e.current):Object.keys(r).forEach(function(r){var n;return null==(n=t[r])?void 0:n.call(t,e.current[r])}),r}let t={create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};c.initial(e),c.handler(t);var r={current:e},n=a(m)(r,t),s=a(u)(r),i=a(c.changes)(e),o=a(d)(r);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return c.selector(e),e(r.current)},function(e){(function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}})(n,s,i,o)(e)}]}}}},53120:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});let t={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}}}},72460:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});let t=function(e){return function t(){for(var r=this,n=arguments.length,s=Array(n),a=0;a<n;a++)s[a]=arguments[a];return s.length>=e.length?e.apply(this,s):function(){for(var e=arguments.length,n=Array(e),a=0;a<e;a++)n[a]=arguments[a];return t.apply(r,[].concat(s,n))}}}}},63839:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});let t=function(e){return({}).toString.call(e).includes("Object")}}},93408:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t,errorHandler:()=>i,errorMessages:()=>a});var n=e.i(72460),s=e.i(63839),a={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "},i=(0,n.default)(function(e,t){throw Error(e[t]||e.default)})(a);let t={config:function(e){return(e||i("configIsRequired"),(0,s.default)(e)||i("configType"),e.urls)?(console.warn(a.deprecation),{paths:{vs:e.urls.monacoBase}}):e}}}},28295:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});let t=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}}}},13614:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});var n=e.i(95113);let t=function e(t,r){return Object.keys(r).forEach(function(n){r[n]instanceof Object&&t[n]&&Object.assign(r[n],e(t[n],r[n]))}),(0,n.objectSpread2)((0,n.objectSpread2)({},t),r)}}},28042:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({CANCELATION_MESSAGE:()=>n,default:()=>t});var n={type:"cancelation",msg:"operation is manually canceled"};let t=function(e){var t=!1,r=new Promise(function(r,s){e.then(function(e){return t?s(n):r(e)}),e.catch(s)});return r.cancel=function(){return t=!0},r}}},72189:e=>{"use strict";var{g:t,__dirname:r}=e;{e.s({default:()=>t});var n=e.i(95113),s=e.i(85767),a=e.i(53120),i=e.i(93408),o=e.i(28295),l=e.i(13614),c=e.i(28042),d=s.default.create({config:a.default,isInitialized:!1,resolve:null,reject:null,monaco:null}),u=(0,n.slicedToArray)(d,2),m=u[0],p=u[1];function h(e){return document.body.appendChild(e)}function f(e){var t,r,n=m(function(e){return{config:e.config,reject:e.reject}}),s=(t="".concat(n.config.paths.vs,"/loader.js"),r=document.createElement("script"),t&&(r.src=t),r);return s.onload=function(){return e()},s.onerror=n.reject,s}function x(){var e=m(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(t){g(t),e.resolve(t)},function(t){e.reject(t)})}function g(e){m().monaco||p({monaco:e})}var v=new Promise(function(e,t){return p({resolve:e,reject:t})});let t={config:function(e){var t=i.default.config(e),r=t.monaco,s=(0,n.objectWithoutProperties)(t,["monaco"]);p(function(e){return{config:(0,l.default)(e.config,s),monaco:r}})},init:function(){var e=m(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(p({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),(0,c.default)(v);if(window.monaco&&window.monaco.editor)return g(window.monaco),e.resolve(window.monaco),(0,c.default)(v);(0,o.default)(h,f)(x)}return(0,c.default)(v)},__getMonacoInstance:function(){return m(function(e){return e.monaco})}}}},25799:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({}),e.i(72189)},30079:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({}),e.i(72189),e.i(25799)},14991:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({DiffEditor:()=>h,Editor:()=>v,default:()=>y,useMonaco:()=>f}),e.i(30079);var n=e.i(19886),s=e.i(72189),a={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},i={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},o=function({children:e}){return n.default.createElement("div",{style:i.container},e)},l=(0,n.memo)(function({width:e,height:t,isEditorReady:r,loading:s,_ref:i,className:l,wrapperProps:c}){return n.default.createElement("section",{style:{...a.wrapper,width:e,height:t},...c},!r&&n.default.createElement(o,null,s),n.default.createElement("div",{ref:i,style:{...a.fullWidth,...!r&&a.hide},className:l}))}),c=function(e){(0,n.useEffect)(e,[])},d=function(e,t,r=!0){let s=(0,n.useRef)(!0);(0,n.useEffect)(s.current||!r?()=>{s.current=!1}:e,t)};function u(){}function m(e,t,r,n){var s,a,i,o,l,c;return s=e,a=n,s.editor.getModel(p(s,a))||(i=e,o=t,l=r,c=n,i.editor.createModel(o,l,c?p(i,c):void 0))}function p(e,t){return e.Uri.parse(t)}var h=(0,n.memo)(function({original:e,modified:t,language:r,originalLanguage:a,modifiedLanguage:i,originalModelPath:o,modifiedModelPath:p,keepCurrentOriginalModel:h=!1,keepCurrentModifiedModel:f=!1,theme:x="light",loading:g="Loading...",options:v={},height:y="100%",width:b="100%",className:j,wrapperProps:w={},beforeMount:N=u,onMount:S=u}){let[k,C]=(0,n.useState)(!1),[T,P]=(0,n.useState)(!0),E=(0,n.useRef)(null),R=(0,n.useRef)(null),I=(0,n.useRef)(null),M=(0,n.useRef)(S),O=(0,n.useRef)(N),_=(0,n.useRef)(!1);c(()=>{let e=s.default.init();return e.then(e=>(R.current=e)&&P(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>{let t;return E.current?(t=E.current?.getModel(),void(h||t?.original?.dispose(),f||t?.modified?.dispose(),E.current?.dispose())):e.cancel()}}),d(()=>{if(E.current&&R.current){let t=E.current.getOriginalEditor(),n=m(R.current,e||"",a||r||"text",o||"");n!==t.getModel()&&t.setModel(n)}},[o],k),d(()=>{if(E.current&&R.current){let e=E.current.getModifiedEditor(),n=m(R.current,t||"",i||r||"text",p||"");n!==e.getModel()&&e.setModel(n)}},[p],k),d(()=>{let e=E.current.getModifiedEditor();e.getOption(R.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())},[t],k),d(()=>{E.current?.getModel()?.original.setValue(e||"")},[e],k),d(()=>{let{original:e,modified:t}=E.current.getModel();R.current.editor.setModelLanguage(e,a||r||"text"),R.current.editor.setModelLanguage(t,i||r||"text")},[r,a,i],k),d(()=>{R.current?.editor.setTheme(x)},[x],k),d(()=>{E.current?.updateOptions(v)},[v],k);let L=(0,n.useCallback)(()=>{if(!R.current)return;O.current(R.current);let n=m(R.current,e||"",a||r||"text",o||""),s=m(R.current,t||"",i||r||"text",p||"");E.current?.setModel({original:n,modified:s})},[r,t,i,e,a,o,p]),D=(0,n.useCallback)(()=>{!_.current&&I.current&&(E.current=R.current.editor.createDiffEditor(I.current,{automaticLayout:!0,...v}),L(),R.current?.editor.setTheme(x),C(!0),_.current=!0)},[v,x,L]);return(0,n.useEffect)(()=>{k&&M.current(E.current,R.current)},[k]),(0,n.useEffect)(()=>{T||k||D()},[T,k,D]),n.default.createElement(l,{width:b,height:y,isEditorReady:k,loading:g,_ref:I,className:j,wrapperProps:w})}),f=function(){let[e,t]=(0,n.useState)(s.default.__getMonacoInstance());return c(()=>{let r;return e||(r=s.default.init()).then(e=>{t(e)}),()=>r?.cancel()}),e},x=function(e){let t=(0,n.useRef)();return(0,n.useEffect)(()=>{t.current=e},[e]),t.current},g=new Map,v=(0,n.memo)(function({defaultValue:e,defaultLanguage:t,defaultPath:r,value:a,language:i,path:o,theme:p="light",line:h,loading:f="Loading...",options:v={},overrideServices:y={},saveViewState:b=!0,keepCurrentModel:j=!1,width:w="100%",height:N="100%",className:S,wrapperProps:k={},beforeMount:C=u,onMount:T=u,onChange:P,onValidate:E=u}){let[R,I]=(0,n.useState)(!1),[M,O]=(0,n.useState)(!0),_=(0,n.useRef)(null),L=(0,n.useRef)(null),D=(0,n.useRef)(null),A=(0,n.useRef)(T),$=(0,n.useRef)(C),z=(0,n.useRef)(),H=(0,n.useRef)(a),F=x(o),B=(0,n.useRef)(!1),U=(0,n.useRef)(!1);c(()=>{let e=s.default.init();return e.then(e=>(_.current=e)&&O(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>L.current?void(z.current?.dispose(),j?b&&g.set(o,L.current.saveViewState()):L.current.getModel()?.dispose(),L.current.dispose()):e.cancel()}),d(()=>{let n=m(_.current,e||a||"",t||i||"",o||r||"");n!==L.current?.getModel()&&(b&&g.set(F,L.current?.saveViewState()),L.current?.setModel(n),b&&L.current?.restoreViewState(g.get(o)))},[o],R),d(()=>{L.current?.updateOptions(v)},[v],R),d(()=>{L.current&&void 0!==a&&(L.current.getOption(_.current.editor.EditorOption.readOnly)?L.current.setValue(a):a!==L.current.getValue()&&(U.current=!0,L.current.executeEdits("",[{range:L.current.getModel().getFullModelRange(),text:a,forceMoveMarkers:!0}]),L.current.pushUndoStop(),U.current=!1))},[a],R),d(()=>{let e=L.current?.getModel();e&&i&&_.current?.editor.setModelLanguage(e,i)},[i],R),d(()=>{void 0!==h&&L.current?.revealLine(h)},[h],R),d(()=>{_.current?.editor.setTheme(p)},[p],R);let V=(0,n.useCallback)(()=>{if(!(!D.current||!_.current)&&!B.current){$.current(_.current);let n=o||r,s=m(_.current,a||e||"",t||i||"",n||"");L.current=_.current?.editor.create(D.current,{model:s,automaticLayout:!0,...v},y),b&&L.current.restoreViewState(g.get(n)),_.current.editor.setTheme(p),void 0!==h&&L.current.revealLine(h),I(!0),B.current=!0}},[e,t,r,a,i,o,v,y,b,p,h]);return(0,n.useEffect)(()=>{R&&A.current(L.current,_.current)},[R]),(0,n.useEffect)(()=>{M||R||V()},[M,R,V]),H.current=a,(0,n.useEffect)(()=>{R&&P&&(z.current?.dispose(),z.current=L.current?.onDidChangeModelContent(e=>{U.current||P(L.current.getValue(),e)}))},[R,P]),(0,n.useEffect)(()=>{if(R){let e=_.current.editor.onDidChangeMarkers(e=>{let t=L.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=_.current.editor.getModelMarkers({resource:t});E?.(e)}});return()=>{e?.dispose()}}return()=>{}},[R,E]),n.default.createElement(l,{width:w,height:N,isEditorReady:R,loading:f,_ref:D,className:S,wrapperProps:k})}),y=v},94087:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({}),e.i(30079),e.i(19886),e.i(14991)},20561:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({default:()=>l});var n=e.i(20393),s=e.i(19886),a=e.i(9385),i=e.i(70599),o=e.i(86871);function l({className:e,currentProjectName:t,currentEnvName:r}){let[l,c]=(0,s.useState)([]),[d,u]=(0,s.useState)(!0),[m,p]=(0,s.useState)(null),[h,f]=(0,s.useState)(new Set),[x,g]=(0,s.useState)(""),[v,y]=(0,s.useState)(!1),[b,j]=(0,s.useState)(""),[w,N]=(0,s.useState)(!1),[S,k]=(0,s.useState)(null),C=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(l.length>0){let e=l.find(e=>e.projectName===t&&e.envName===r);if(e&&e.subApps.length>0){let t=new Set;e.subApps.forEach(e=>{l.forEach(r=>{r.envName===e&&t.add(I(r))})}),f(t)}}},[l,t,r]);let T=async()=>{u(!0),p(null);try{let e=await fetch("/api/all-projects-envs"),t=await e.json();t.success?c(t.data):p(t.error||"获取项目环境信息失败")}catch(e){console.error("获取项目环境信息失败:",e),p("获取项目环境信息失败: 网络错误")}finally{u(!1)}};(0,s.useEffect)(()=>(T(),P(),()=>{E()}),[r]);let P=()=>{C.current&&E();let e=`microapp-table-${Date.now()}-${Math.random().toString(36).substr(2,9)}`,t=`/api/microapp-proxy-change-stream?env=${encodeURIComponent(r)}&clientId=${encodeURIComponent(e)}`;console.log(`[SSE] 建立连接到: ${t}`),k(null);try{let e=new EventSource(t);C.current=e,e.onopen=()=>{console.log(`[SSE] 连接已建立,环境: ${r}`),N(!0),k(null)},e.onmessage=e=>{try{let t=JSON.parse(e.data);R(t)}catch(e){console.error("[SSE] 解析消息失败:",e)}},e.onerror=()=>{console.error(`[SSE] 连接错误,环境: ${r}`),N(!1),k("实时推送连接断开"),setTimeout(()=>{C.current&&C.current.readyState!==EventSource.CLOSED||(console.log("[SSE] 尝试重新连接..."),P())},3e3)}}catch(e){console.error("[SSE] 建立连接失败:",e),k("无法建立实时推送连接")}},E=()=>{C.current&&(console.log("[SSE] 关闭连接"),C.current.close(),C.current=null,N(!1))},R=e=>{switch(console.log("[SSE] 收到消息:",e),e.type){case"connection-established":console.log(`[SSE] 连接确认: ${e.message}`),N(!0),k(null);break;case"microapp-proxy-config-change":if(console.log(`[SSE] 配置变化通知: 环境=${e.envName}`),console.log(`[SSE] 变化详情:`,e.changes),e.changes){let{added:t,removed:r}=e.changes,n="";t.length>0&&(n+=`新增: ${t.join(", ")}`),r.length>0&&(n&&(n+="; "),n+=`移除: ${r.join(", ")}`),j(`配置已更新 (${n})`)}else j("配置已更新");T(),setTimeout(()=>j(""),3e3);break;case"heartbeat":N(!0),k(null);break;default:console.log("[SSE] 未知消息类型:",e.type)}},I=e=>`${e.projectName}-${e.envName}`,M=x.trim()?l.filter(e=>e.projectName.toLowerCase().includes(x.toLowerCase())||e.envName.toLowerCase().includes(x.toLowerCase())||e.host.toLowerCase().includes(x.toLowerCase())):l,O=(e,t)=>{let r=new Set(h);t?r.add(e):r.delete(e),f(r)},_=e=>{e?f(new Set(M.map(e=>I(e)))):f(new Set)},L=async()=>{y(!0),j("");try{let e=Array.from(h).map(e=>{let t=l.find(t=>I(t)===e);return t?t.envName:""}).filter(e=>""!==e),n=[...new Set(e)],s=await fetch("/api/microapp-proxy-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:t,envName:r,selectedItems:n})}),a=await s.json();a.success?(j(a.message||"保存成功"),await T()):j(`保存失败: ${a.error}`)}catch(e){console.error("保存MicroApp代理配置失败:",e),j("保存失败: 网络错误")}finally{y(!1),setTimeout(()=>{j("")},5e3)}},D=h.size,A=M.length>0&&M.every(e=>h.has(I(e))),$=M.some(e=>h.has(I(e)));return d?(0,n.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${e}`,children:[(0,n.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,n.jsx)("div",{className:"text-center py-8",children:(0,n.jsx)("p",{className:"text-gray-500",children:"加载中..."})})]}):m?(0,n.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${e}`,children:[(0,n.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,n.jsxs)("div",{className:"text-center py-8",children:[(0,n.jsx)("p",{className:"text-red-500",children:m}),(0,n.jsx)(o.Button,{variant:"outline",size:"sm",onClick:T,className:"mt-2",children:"重试"})]})]}):(0,n.jsxs)("div",{className:`p-6 bg-gray-50 rounded-lg ${e}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h4",{className:"text-md font-medium",children:"MicroApp代理配置"}),(0,n.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["为 ",t," - ",r," 环境配置微应用代理"]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("div",{className:`w-2 h-2 rounded-full ${w?"bg-green-500":"bg-red-500"}`,title:w?"实时推送已连接":"实时推送断开"}),(0,n.jsx)("span",{className:"text-xs text-gray-500",children:w?"实时":"离线"})]}),(b||S)&&(0,n.jsx)("span",{className:`text-sm max-w-xs ${b&&b.includes("失败")||S?"text-red-600":b&&b.includes("但有")?"text-yellow-600":"text-green-600"}`,title:b||S||"",children:b||S}),(0,n.jsx)(o.Button,{variant:"outline",size:"sm",onClick:T,disabled:v,children:"刷新"}),(0,n.jsx)(o.Button,{variant:"default",size:"sm",onClick:L,disabled:v,children:v?"保存中...":"保存配置"})]})]}),(0,n.jsxs)("div",{className:"space-y-3 mb-4",children:[(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,n.jsx)(i.Input,{placeholder:"搜索项目名称、环境名称或Host...",value:x,onChange:e=>g(e.target.value),className:"pr-8"}),x&&(0,n.jsx)(o.Button,{variant:"ghost",size:"sm",onClick:()=>{g("")},className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0 hover:bg-gray-100",children:"×"})]})}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-sm text-gray-600",children:[(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsxs)("span",{children:["显示 ",M.length," 个环境配置",x&&` (搜索: "${x}")`]}),D>0&&(0,n.jsxs)("span",{className:"text-blue-600 font-medium",children:["已选择 ",D," 项"]})]}),D>0&&(0,n.jsx)(o.Button,{variant:"outline",size:"sm",onClick:()=>{f(new Set)},children:"清空选择"})]})]}),M.length>0?(0,n.jsx)("div",{className:"border rounded-md",children:(0,n.jsxs)(a.Table,{children:[(0,n.jsx)(a.TableHeader,{children:(0,n.jsxs)(a.TableRow,{children:[(0,n.jsx)(a.TableHead,{className:"w-12",children:(0,n.jsx)("input",{type:"checkbox",checked:A,onChange:e=>_(e.target.checked),ref:e=>{e&&(e.indeterminate=$&&!A)},className:"rounded border-gray-300"})}),(0,n.jsx)(a.TableHead,{children:"环境名称"}),(0,n.jsx)(a.TableHead,{children:"项目名称"}),(0,n.jsx)(a.TableHead,{children:"Host地址"}),(0,n.jsx)(a.TableHead,{children:"当前代理"})]})}),(0,n.jsx)(a.TableBody,{children:M.map(e=>{let t=I(e),r=h.has(t);return(0,n.jsxs)(a.TableRow,{children:[(0,n.jsx)(a.TableCell,{children:(0,n.jsx)("input",{type:"checkbox",checked:r,onChange:e=>O(t,e.target.checked),className:"rounded border-gray-300"})}),(0,n.jsx)(a.TableCell,{children:(0,n.jsx)("span",{className:"px-2 py-1 rounded text-xs font-medium bg-blue-100 text-blue-800",children:e.envName})}),(0,n.jsx)(a.TableCell,{className:"font-medium",children:e.projectName}),(0,n.jsx)(a.TableCell,{className:"font-mono text-sm",children:e.host}),(0,n.jsxs)(a.TableCell,{className:"text-sm text-gray-600",children:[e.apiProxies?.[0]?`${e.apiProxies[0].prefix} -> ${e.apiProxies[0].currentProxy}`:"-",e.apiProxies?.[0]&&e.apiProxies[0].proxyEnv[e.apiProxies[0].currentProxy]&&(0,n.jsx)("div",{className:"text-xs text-gray-500",children:e.apiProxies[0].proxyEnv[e.apiProxies[0].currentProxy]})]})]},t)})})]})}):(0,n.jsx)("div",{className:"text-center py-8",children:(0,n.jsx)("p",{className:"text-gray-500",children:x?"没有找到匹配的环境配置":"暂无环境配置"})}),D>0&&(0,n.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md",children:(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("span",{className:"text-sm text-blue-700",children:["已选择 ",D," 个环境配置将作为微应用代理"]}),(0,n.jsx)("span",{className:"text-xs text-blue-600",children:"点击上方“保存配置”按钮保存设置"})]})})]})}},94334:function(e){var{g:t,__dirname:r,m:n,e:s}=e},51904:function(e){var{g:t,__dirname:r,m:n,e:s}=e,a=e.i(47412);e.r(94334);var i=e.r(19886),o=i&&"object"==typeof i&&"default"in i?i:{default:i},l=void 0!==a.default&&a.default.env&&!0,c=function(e){return"[object String]"===Object.prototype.toString.call(e)},d=function(){function e(e){var t=void 0===e?{}:e,r=t.name,n=void 0===r?"stylesheet":r,s=t.optimizeForSpeed,a=void 0===s?l:s;u(c(n),"`name` must be a string"),this._name=n,this._deletedRulePlaceholder="#"+n+"-deleted-rule____{}",u("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var i="undefined"!=typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=i?i.getAttribute("content"):null}var t,r=e.prototype;return r.setOptimizeForSpeed=function(e){u("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),u(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},r.isOptimizeForSpeed=function(){return this._optimizeForSpeed},r.inject=function(){var e=this;if(u(!this._injected,"sheet already injected"),this._injected=!0,"undefined"!=typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(l||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},r.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},r.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},r.insertRule=function(e,t){if(u(c(e),"`insertRule` accepts only strings"),"undefined"==typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var r=this.getSheet();"number"!=typeof t&&(t=r.cssRules.length);try{r.insertRule(e,t)}catch(t){return l||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var n=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,n))}return this._rulesCount++},r.replaceRule=function(e,t){if(this._optimizeForSpeed||"undefined"==typeof window){var r="undefined"!=typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(n){l||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}}else{var n=this._tags[e];u(n,"old rule at index `"+e+"` not found"),n.textContent=t}return e},r.deleteRule=function(e){if("undefined"==typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];u(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},r.flush=function(){this._injected=!1,this._rulesCount=0,"undefined"!=typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},r.cssRules=function(){var e=this;return"undefined"==typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,r){return r?t=t.concat(Array.prototype.map.call(e.getSheetForTag(r).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},r.makeStyleTag=function(e,t,r){t&&u(c(t),"makeStyleTag accepts only strings as second parameter");var n=document.createElement("style");this._nonce&&n.setAttribute("nonce",this._nonce),n.type="text/css",n.setAttribute("data-"+e,""),t&&n.appendChild(document.createTextNode(t));var s=document.head||document.getElementsByTagName("head")[0];return r?s.insertBefore(n,r):s.appendChild(n),n},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(e.prototype,t),e}();function u(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var m=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return t>>>0},p={};function h(e,t){if(!t)return"jsx-"+e;var r=String(t),n=e+r;return p[n]||(p[n]="jsx-"+m(e+"-"+r)),p[n]}function f(e,t){"undefined"==typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var r=e+t;return p[r]||(p[r]=t.replace(/__jsx-style-dynamic-selector/g,e)),p[r]}var x=function(){function e(e){var t=void 0===e?{}:e,r=t.styleSheet,n=void 0===r?null:r,s=t.optimizeForSpeed,a=void 0!==s&&s;this._sheet=n||new d({name:"styled-jsx",optimizeForSpeed:a}),this._sheet.inject(),n&&"boolean"==typeof a&&(this._sheet.setOptimizeForSpeed(a),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"undefined"==typeof window||this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var r=this.getIdAndRules(e),n=r.styleId,s=r.rules;if(n in this._instancesCounts){this._instancesCounts[n]+=1;return}var a=s.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[n]=a,this._instancesCounts[n]=1},t.remove=function(e){var t=this,r=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(r in this._instancesCounts,"styleId: `"+r+"` not found"),this._instancesCounts[r]-=1,this._instancesCounts[r]<1){var n=this._fromServer&&this._fromServer[r];n?(n.parentNode.removeChild(n),delete this._fromServer[r]):(this._indices[r].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[r]),delete this._instancesCounts[r]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],r=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return r[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,r;return t=this.cssRules(),void 0===(r=e)&&(r={}),t.map(function(e){var t=e[0],n=e[1];return o.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:r.nonce?r.nonce:void 0,dangerouslySetInnerHTML:{__html:n}})})},t.getIdAndRules=function(e){var t=e.children,r=e.dynamic,n=e.id;if(r){var s=h(n,r);return{styleId:s,rules:Array.isArray(t)?t.map(function(e){return f(s,e)}):[f(s,t)]}}return{styleId:h(n),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),g=i.createContext(null);function v(){return new x}function y(){return i.useContext(g)}g.displayName="StyleSheetContext";var b=o.default.useInsertionEffect||o.default.useLayoutEffect,j="undefined"!=typeof window?v():void 0;function w(e){var t=j||y();return t&&("undefined"==typeof window?t.add(e):b(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}w.dynamic=function(e){return e.map(function(e){return h(e[0],e[1])}).join(" ")},s.StyleRegistry=function(e){var t=e.registry,r=e.children,n=i.useContext(g),s=i.useState(function(){return n||t||v()})[0];return o.default.createElement(g.Provider,{value:s},r)},s.createStyleRegistry=v,s.style=w,s.useStyleRegistry=y},56591:function(e){var{g:t,__dirname:r,m:n,e:s}=e;n.exports=e.r(51904).style},23619:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({default:()=>i});var n=e.i(20393),s=e.i(56591),a=e.i(19886);function i({logs:e}){let t=(0,a.useRef)(null),r=(0,a.useRef)(!0),i=e=>e.replace(/\x1b\[[0-9;]*m/g,"").replace(/\x1b\[[0-9]*[A-Z]/g,"").replace(/\x1b\[K/g,"").replace(/\x1b\[2K/g,"").replace(/\x1b\[G/g,"").replace(/\x1b\[\d+A/g,"").replace(/\x1b\[\d+B/g,"").replace(/\x1b\[\d+C/g,"").replace(/\x1b\[\d+D/g,"").replace(/\[2K\[1A\[2K\[G/g,"").replace(/\[\d+[A-Z]/g,"").replace(/\[STDOUT\]/g,"[OUT]").replace(/\[STDERR\]/g,"[ERR]"),o=()=>{if(!t.current)return!0;let{scrollTop:e,scrollHeight:r,clientHeight:n}=t.current;return r-e-n<100},l=()=>{t.current&&r.current&&(t.current.scrollTop=t.current.scrollHeight)};return(0,a.useEffect)(()=>{setTimeout(l,10)},[e]),(0,n.jsxs)("div",{ref:t,onScroll:()=>{r.current=o()},style:{scrollBehavior:"smooth",maxHeight:"100%"},className:"jsx-b464fb0f479e34f5 h-full w-full overflow-y-auto overflow-x-hidden p-4 custom-scrollbar",children:[(0,n.jsx)(s.default,{id:"b464fb0f479e34f5",children:".custom-scrollbar.jsx-b464fb0f479e34f5{scrollbar-width:thin;scrollbar-color:#fff3 #0000001a}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar{width:10px;height:10px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-track{background:#0000001a;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb:hover{background:#fff6}"}),(0,n.jsx)("div",{className:"jsx-b464fb0f479e34f5 space-y-0.5",children:e.length>0?e.map((e,t)=>{let r=i(e);if(!r.trim())return null;let s=e.includes("[STDERR]"),a=e.includes("[SYSTEM]"),o=r.match(/^\[([\d-T:.Z]+)\]/)?.[1],l=r.replace(/^\[[\d-T:.Z]+\]\s*/,"");return(0,n.jsxs)("div",{className:`jsx-b464fb0f479e34f5 font-mono text-xs leading-5 ${s?"text-red-400":a?"text-yellow-400":"text-gray-100"}`,children:[o&&(0,n.jsxs)("span",{className:"jsx-b464fb0f479e34f5 text-gray-500 mr-2",children:["[",new Date(o).toLocaleTimeString("zh-CN"),"]"]}),(0,n.jsx)("span",{className:"jsx-b464fb0f479e34f5 whitespace-pre-wrap break-all",children:l})]},t)}):(0,n.jsx)("div",{className:"jsx-b464fb0f479e34f5 text-center text-gray-500 mt-8",children:"等待日志输出..."})})]})}},40941:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({default:()=>i});var n=e.i(20393),s=e.i(19886),a=e.i(86871);function i({projectName:e,className:t="",compact:r=!1}){let[i,o]=(0,s.useState)(null),[l,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(null),[m,p]=(0,s.useState)(""),h=(0,s.useCallback)(async()=>{if(e){c(!0),u(null);try{let t=await fetch(`/api/current-branch?project=${encodeURIComponent(e)}`),r=await t.json();r.success?(o(r.data),p(new Date().toLocaleTimeString("zh-CN",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"}))):u(r.error||"获取分支信息失败")}catch(e){u("网络请求失败"),console.error("获取分支信息失败:",e)}finally{c(!1)}}},[e]);(0,s.useEffect)(()=>{h()},[h]),(0,s.useEffect)(()=>{if(!e)return;let t=setInterval(()=>{h()},r?15e3:3e4);return()=>clearInterval(t)},[e,h,r]);let f=e=>0===e?"text-gray-500":"text-orange-600",x=()=>{if(!i)return null;let{ahead:e,behind:t}=i.status;return e>0&&t>0?(0,n.jsx)("span",{className:"text-yellow-500 text-xs",children:"↕"}):e>0?(0,n.jsx)("span",{className:"text-green-500 text-xs",children:"↑"}):t>0?(0,n.jsx)("span",{className:"text-red-500 text-xs",children:"↓"}):(0,n.jsx)("span",{className:"text-gray-400 text-xs",children:"✓"})};return l&&!i?r?(0,n.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-gray-50 rounded-md ${t}`,children:[(0,n.jsx)("div",{className:"animate-spin w-3 h-3 border-2 border-blue-500 border-t-transparent rounded-full"}),(0,n.jsx)("span",{className:"text-xs text-gray-500",children:"加载中..."})]}):(0,n.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${t}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,n.jsx)("div",{className:"animate-spin w-4 h-4 border-2 border-blue-500 border-t-transparent rounded-full"})]}),(0,n.jsx)("div",{className:"text-sm text-gray-500",children:"正在加载分支信息..."})]}):d?r?(0,n.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-red-50 rounded-md ${t}`,children:[(0,n.jsx)("span",{className:"text-xs text-red-500",children:"分支信息错误"}),(0,n.jsx)(a.Button,{variant:"ghost",size:"sm",onClick:h,disabled:l,className:"h-5 w-5 p-0 text-red-500 hover:bg-red-100",children:"↻"})]}):(0,n.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${t}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,n.jsx)(a.Button,{variant:"outline",size:"sm",onClick:h,disabled:l,className:"h-6 px-2 text-xs",children:l?"刷新中...":"重试"})]}),(0,n.jsx)("div",{className:"text-sm text-red-500 bg-red-50 p-2 rounded",children:d})]}):i?r?(0,n.jsxs)("div",{className:`flex items-center gap-2 px-3 py-1 bg-blue-50 border border-blue-200 rounded-md ${t}`,children:[(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-blue-600",children:[(0,n.jsx)("polyline",{points:"6,3 6,15"}),(0,n.jsx)("circle",{cx:"18",cy:"6",r:"3"}),(0,n.jsx)("circle",{cx:"6",cy:"18",r:"3"}),(0,n.jsx)("path",{d:"m18,9a9,9 0 0,1-9,9"})]}),(0,n.jsx)("span",{className:"text-sm font-medium text-blue-800",children:i.currentBranch}),x(),(0,n.jsx)(a.Button,{variant:"ghost",size:"sm",onClick:h,disabled:l,className:"h-5 w-5 p-0 text-blue-600 hover:bg-blue-100",title:"刷新分支信息",children:l?(0,n.jsx)("div",{className:"animate-spin w-3 h-3 border-2 border-blue-600 border-t-transparent rounded-full"}):"↻"})]}):(0,n.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${t}`,children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,n.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[m&&(0,n.jsx)("span",{className:"text-xs text-gray-400",children:m}),(0,n.jsx)(a.Button,{variant:"outline",size:"sm",onClick:h,disabled:l,className:"h-6 px-2 text-xs",children:l?"刷新中...":"刷新"})]})]}),(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsx)("div",{className:"flex items-center gap-2",children:(0,n.jsxs)("div",{className:"flex items-center gap-1",children:[(0,n.jsx)("span",{className:"text-xs text-gray-500",children:"分支:"}),(0,n.jsx)("span",{className:"text-sm font-medium text-blue-600 bg-blue-50 px-2 py-1 rounded",children:i.currentBranch}),x()]})}),(0,n.jsxs)("div",{className:"bg-gray-50 p-3 rounded text-xs space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"提交:"}),(0,n.jsx)("code",{className:"bg-gray-200 px-1 rounded font-mono text-xs",children:i.lastCommit.hash})]}),(0,n.jsx)("div",{className:"text-gray-700 font-medium line-clamp-2",children:i.lastCommit.message}),(0,n.jsxs)("div",{className:"flex items-center justify-between text-gray-500",children:[(0,n.jsx)("span",{children:i.lastCommit.author}),(0,n.jsx)("span",{children:i.lastCommit.date})]})]}),(0,n.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"领先:"}),(0,n.jsx)("span",{className:f(i.status.ahead),children:i.status.ahead})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"落后:"}),(0,n.jsx)("span",{className:f(i.status.behind),children:i.status.behind})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"已修改:"}),(0,n.jsx)("span",{className:f(i.status.modified),children:i.status.modified})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"已暂存:"}),(0,n.jsx)("span",{className:f(i.status.staged),children:i.status.staged})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between col-span-2",children:[(0,n.jsx)("span",{className:"text-gray-500",children:"未跟踪:"}),(0,n.jsx)("span",{className:f(i.status.untracked),children:i.status.untracked})]})]}),(i.status.ahead>0||i.status.behind>0)&&(0,n.jsxs)("div",{className:"text-xs p-2 rounded bg-yellow-50 border border-yellow-200",children:[i.status.ahead>0&&i.status.behind>0&&(0,n.jsxs)("span",{className:"text-yellow-700",children:["分支与远程不同步,有 ",i.status.ahead," 个本地提交,",i.status.behind," 个远程提交"]}),i.status.ahead>0&&0===i.status.behind&&(0,n.jsxs)("span",{className:"text-green-700",children:["本地领先远程 ",i.status.ahead," 个提交"]}),0===i.status.ahead&&i.status.behind>0&&(0,n.jsxs)("span",{className:"text-red-700",children:["本地落后远程 ",i.status.behind," 个提交"]})]})]})]}):r?(0,n.jsx)("div",{className:`flex items-center gap-2 px-3 py-1 bg-gray-50 rounded-md ${t}`,children:(0,n.jsx)("span",{className:"text-xs text-gray-500",children:"暂无分支信息"})}):(0,n.jsxs)("div",{className:`bg-white rounded-lg shadow-sm border p-4 ${t}`,children:[(0,n.jsx)("div",{className:"flex items-center justify-between mb-3",children:(0,n.jsx)("h3",{className:"text-sm font-semibold text-gray-700",children:"Git 分支信息"})}),(0,n.jsx)("div",{className:"text-sm text-gray-500",children:"暂无分支信息"})]})}},66445:e=>{"use strict";var{g:t,__dirname:r}=e;e.s({buildApiProxiesPayload:()=>w,default:()=>S,validateApiProxiesForSave:()=>j});var n=e.i(20393),s=e.i(19886),a=e.i(42152),i=e.i(86871),o=e.i(75777),l=e.i(72242),c=e.i(40989),d=e.i(70599),u=e.i(80226),m=e.i(46284),p=e.i(9385),h=e.i(19579),f=e.i(42736);e.i(94087);var x=e.i(14991),g=e.i(20561),v=e.i(23619),y=e.i(40941),b=function(e){return e.PENDING="pending",e.EXISTING="existing",e.CLONING="cloning",e.SUCCESS="success",e.FAILED="failed",e.RETRYING="retrying",e}(b||{});function j(e){if(0===e.length)return"至少需要一条前缀配置";for(let t of e){let e=t.prefix.trim();if(!e||!e.startsWith("/"))return"prefix 必填且必须以 / 开头";if("custom"===t.currentProxy&&!(t.proxyEnv.custom||"").trim())return"custom 选项必须填写 URL";if(t.rewrite){let e=t.rewrite.mode;if(!["none","remove","replace"].includes(e))return"rewrite mode 仅支持 none/remove/replace";if("remove"===e&&(t.rewrite.targetPrefix||"").trim())return"rewrite 为 remove 时不允许填写 targetPrefix";if("replace"===e){let e=(t.rewrite.targetPrefix||"").trim();if(!e||!e.startsWith("/")||/\s/.test(e))return"rewrite 为 replace 时必须填写 targetPrefix,且必须以 / 开头且不能有空白字符"}}}return new Set(e.map(e=>e.prefix.trim())).size!==e.length?"prefix 不能重复":null}function w(e,t,r){return{projectName:e,envName:t,apiProxies:r}}function N(){let e=(0,a.useSearchParams)(),t=(0,a.useRouter)(),r=e.get("project"),[b,N]=(0,s.useState)(null),[S,k]=(0,s.useState)(!0),[C,T]=(0,s.useState)(null),[P,E]=(0,s.useState)({}),[R,I]=(0,s.useState)({mockingIntercept:!1,mockOpen:!1}),[M,O]=(0,s.useState)(!1),[_,L]=(0,s.useState)(null),[D,A]=(0,s.useState)(!1),[$,z]=(0,s.useState)(1),[H]=(0,s.useState)(10),[F,B]=(0,s.useState)(""),[U,V]=(0,s.useState)(null),[G,K]=(0,s.useState)(!1),[W,q]=(0,s.useState)(!1),[J,Y]=(0,s.useState)(!1),[X,Z]=(0,s.useState)(!0),[Q,ee]=(0,s.useState)(null),[et,er]=(0,s.useState)([]),[en,es]=(0,s.useState)(!1),[ea,ei]=(0,s.useState)({}),[eo,el]=(0,s.useState)(!1),[ec,ed]=(0,s.useState)(!1),[eu,em]=(0,s.useState)({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),[ep,eh]=(0,s.useState)(null),[ef,ex]=(0,s.useState)(!1),[eg,ev]=(0,s.useState)({open:!1,apiName:"",method:"",siteName:""}),[ey,eb]=(0,s.useState)({open:!1,apiName:"",apiPath:""}),[ej,ew]=(0,s.useState)({open:!1,type:"success",message:""}),[eN,eS]=(0,s.useState)(!1),[ek,eC]=(0,s.useState)([]),[eT,eP]=(0,s.useState)(!1),[eE,eR]=(0,s.useState)(""),eI=(0,s.useRef)(null),[eM,eO]=(0,s.useState)({}),[e_,eL]=(0,s.useState)(!1),[eD,eA]=(0,s.useState)(""),[e$,ez]=(0,s.useState)([]),eH=(0,s.useCallback)(async()=>{Q&&await eB(Q)},[Q]),eF=(0,s.useCallback)(async e=>{G&&(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),await eH())},[G,eH]);(0,s.useEffect)(()=>{if(G)return document.addEventListener("keydown",eF),()=>{document.removeEventListener("keydown",eF)}},[G,Q,eF]);let eB=async e=>{try{await new Promise(e=>setTimeout(e,200));let t=e.getModel();if(t){await e.getAction("editor.action.formatDocument")?.run();let r=t.getValue();if(r&&!r.includes("\n")&&r.length>50){let n=r.replace(/\{\s*/g,"{\n ").replace(/\}\s*/g,"\n}").replace(/;\s*/g,";\n ").replace(/,\s*/g,",\n ").replace(/\n\s*\n/g,"\n").trim();n!==r&&(t.setValue(n),setTimeout(()=>{e.getAction("editor.action.formatDocument")?.run()},100))}}}catch(e){console.log("自动格式化失败:",e)}},eU=()=>{t.push("/initialization")},eV=async()=>{es(!0);try{let e=await fetch("/api/check-workspace"),t=await e.json();if(t.success&&t.projects){let e=t.projects.map(e=>({name:e.name,status:e.status,message:e.message}));er(e)}else console.error("获取项目列表失败:",t.error),er([])}catch(e){console.error("获取项目列表失败:",e),er([])}finally{es(!1)}},eG=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/process/status"),t=await e.json();if(t.success&&Array.isArray(t.data)){let e={};t.data.forEach(t=>{(t.running||t.portInUse)&&(e[t.projectName]=!0)}),ei(e)}else ei({})}catch(e){console.error("获取运行中项目失败:",e),ei({})}},[]),eK=async(e="cursor")=>{if(r){O(!0);try{let t=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,editor:e})}),n=await t.json();if(n.success&&n.editorUrl){let e=document.createElement("a");e.href=n.editorUrl,e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}else console.error("打开项目失败:",n.error),ty("error",`打开项目失败: ${n.error}`)}catch(e){console.error("打开项目失败:",e),ty("error","打开项目失败: 网络错误")}finally{O(!1)}}},eW=async(e="cursor")=>{if(0===ek.length)return void ty("error","请至少选择一个项目");eP(!0);try{let t=await fetch("/api/workspace/create",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projects:ek,editor:e})}),r=await t.json();r.success?(ty("success",r.message||"工作区已创建"),eS(!1),eC([])):ty("error",`创建工作区失败: ${r.error}`)}catch(e){console.error("创建工作区失败:",e),ty("error","创建工作区失败: 网络错误")}finally{eP(!1)}},eq=e=>{eC(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])};(0,s.useEffect)(()=>{if(!r){T("项目名称缺失"),k(!1);return}(async()=>{try{let e=await fetch(`/api/project-config?project=${encodeURIComponent(r)}`),t=await e.json();if(t.success){N(t.data);let e={};Object.keys(t.data.envs).forEach(r=>{let n=t.data.envs[r];e[r]={apiProxies:(n.apiProxies||[]).map(e=>({...e,proxyEnv:{...e.proxyEnv},rewrite:e.rewrite?{...e.rewrite}:{mode:"none"}}))}}),E(e),I({mockingIntercept:t.data.mockingIntercept||!1,mockOpen:t.data.mockOpen||!1})}else T(t.error)}catch(e){T("获取项目配置失败"),console.error("获取项目配置失败:",e)}finally{k(!1)}})()},[r]);let eJ=(0,s.useCallback)(async()=>{if(r){A(!0);try{let e=await fetch(`/api/mock-file?project=${encodeURIComponent(r)}`),t=await e.json();t.success?L(t.data):console.error("获取Mock数据失败:",t.error)}catch(e){console.error("获取Mock数据失败:",e)}finally{A(!1)}}},[r]);(0,s.useEffect)(()=>{if(b&&r){let e=null!==eI.current&&eI.current!==r;e&&(eR(""),z(1),L(null)),eI.current=r;let t=Object.keys(b.envs),n=new URLSearchParams(window.location.search).get("tab"),s="";(s=F&&("mock"===F||t.includes(F))?F:n&&("mock"===n||t.includes(n))?n:t.length>0?t[0]:"mock")!==F?(B(s),"mock"===s&&eJ()):e&&"mock"===F&&eJ()}},[b,r,F,eJ]),(0,s.useEffect)(()=>{eV()},[]),(0,s.useEffect)(()=>{eG()},[eG]);let eY=(0,s.useCallback)(async()=>{if(!r||!b)return;let e={};for(let t of Object.keys(b.envs))e[`${t}`]={loading:!0,running:!1};eO(e);let t=Object.keys(b.envs).map(async e=>{try{let t=await fetch(`/api/process/status?projectName=${encodeURIComponent(r)}&envName=${encodeURIComponent(e)}`),n=await t.json();if(n.success&&n.data)return{envName:e,status:n.data}}catch(t){console.error(`获取环境 ${e} 状态失败:`,t)}return{envName:e,status:{running:!1}}}),n=await Promise.all(t),s={};n.forEach(({envName:e,status:t})=>{s[e]={running:t.running||!1,pid:t.pid,startTime:t.startTime,port:t.port,loading:!1}}),eO(s)},[r,b]),eX=async e=>{if(!r||!b)return;let t=b.envs[e];if(!t.startCommand)return void ty("error","该环境未配置启动命令");eO(t=>({...t,[e]:{...t[e],loading:!0}}));try{let n=await fetch("/api/process/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,envName:e,startCommand:t.startCommand})}),s=await n.json();if(s.success)eO(t=>({...t,[e]:{running:!0,pid:s.data.pid,startTime:s.data.startTime,port:s.data.port,loading:!1}})),ei(e=>({...e,[r]:!0}));else throw Error(s.error||"启动失败")}catch(t){console.error("启动进程失败:",t),ty("error",`启动失败: ${t instanceof Error?t.message:"未知错误"}`),eO(t=>({...t,[e]:{...t[e],loading:!1}}))}},eZ=async e=>{if(r){eO(t=>({...t,[e]:{...t[e],loading:!0}}));try{let t=await fetch(`/api/process/start?projectName=${encodeURIComponent(r)}&envName=${encodeURIComponent(e)}`,{method:"DELETE"}),n=await t.json();if(n.success)eO(t=>({...t,[e]:{running:!1,loading:!1}})),eG();else throw Error(n.error||"停止失败")}catch(t){console.error("停止进程失败:",t),ty("error",`停止失败: ${t instanceof Error?t.message:"未知错误"}`),eO(t=>({...t,[e]:{...t[e],loading:!1}}))}}},[eQ,e0]=(0,s.useState)(null),e1=e=>{if(!r)return;eQ&&eQ.close(),ez([]);let t=new EventSource(`/api/process/logs/stream?projectName=${encodeURIComponent(r)}&envName=${encodeURIComponent(e)}`);t.onmessage=e=>{try{let t=JSON.parse(e.data);"log"===t.type?ez(e=>{let r=[...e,t.content];return r.length>1e3?r.slice(-1e3):r}):"init"===t.type?ez([t.message]):"end"===t.type&&ez(e=>[...e,`[系统] ${t.message}`])}catch(e){console.error("解析日志数据失败:",e)}},t.onerror=e=>{console.error("日志流错误:",e),t.close(),e0(null)},e0(t)},e2=()=>{eQ&&(eQ.close(),e0(null))},e4=e=>{eA(e),eL(!0),e1(e)},e5=()=>{eL(!1),ez([]),eA(""),e2()};(0,s.useEffect)(()=>{if(b&&r){eY();let e=setInterval(()=>{eY()},5e3);return()=>clearInterval(e)}},[b,r,eY]);let e3=(e,t,r)=>{E(n=>{let s=n[e];if(!s)return n;let a=s.apiProxies.map((e,n)=>n!==t?e:{...e,currentProxy:r});return{...n,[e]:{...s,apiProxies:a,saveMessage:""}}})},e6=(e,t,r)=>{E(n=>{let s=n[e];if(!s)return n;let a=s.apiProxies.map((e,n)=>n!==t?e:{...e,proxyEnv:{...e.proxyEnv,custom:r}});return{...n,[e]:{...s,apiProxies:a,saveMessage:""}}})},e9=(e,t,r)=>{E(n=>{let s=n[e];if(!s)return n;let a=s.apiProxies.map((e,n)=>n!==t?e:{...e,prefix:r});return{...n,[e]:{...s,apiProxies:a,saveMessage:""}}})},e8=(e,t,r)=>{E(n=>{let s=n[e];if(!s)return n;let a=s.apiProxies.map((e,n)=>n!==t?e:"replace"===r?{...e,rewrite:{mode:"replace",targetPrefix:e.rewrite?.targetPrefix||""}}:{...e,rewrite:{mode:r}});return{...n,[e]:{...s,apiProxies:a,saveMessage:""}}})},e7=(e,t,r)=>{E(n=>{let s=n[e];if(!s)return n;let a=s.apiProxies.map((e,n)=>n!==t?e:{...e,rewrite:{mode:"replace",targetPrefix:r}});return{...n,[e]:{...s,apiProxies:a,saveMessage:""}}})},te=e=>{E(t=>{let r=t[e];return r?{...t,[e]:{...r,apiProxies:[...r.apiProxies,{prefix:"/new-api",currentProxy:"custom",proxyEnv:{custom:""},rewrite:{mode:"none"}}],saveMessage:""}}:t})},tt=(e,t)=>{E(r=>{let n=r[e];return!n||n.apiProxies.length<=1?r:{...r,[e]:{...n,apiProxies:n.apiProxies.filter((e,r)=>r!==t),saveMessage:""}}})},tr=async e=>{I(t=>({...t,mockingIntercept:e,saving:!0,saveMessage:""}));try{let t=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,projectConfig:{mockingIntercept:e,mockOpen:R.mockOpen}})}),n=await t.json();if(n.success)N(t=>t?{...t,mockingIntercept:e}:t),I(e=>({...e,saving:!1,saveMessage:"Mock拦截配置已保存"})),setTimeout(()=>{I(e=>({...e,saveMessage:""}))},2e3);else throw Error(n.error||"保存失败")}catch(t){console.error("保存Mock拦截配置失败:",t),I(r=>({...r,mockingIntercept:!e,saving:!1,saveMessage:`保存失败: ${t instanceof Error?t.message:"未知错误"}`})),setTimeout(()=>{I(e=>({...e,saveMessage:""}))},3e3)}},tn=async e=>{I(t=>({...t,mockOpen:e,saving:!0,saveMessage:""}));try{let t=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,projectConfig:{mockingIntercept:R.mockingIntercept,mockOpen:e}})}),n=await t.json();if(n.success)N(t=>t?{...t,mockOpen:e}:t),I(e=>({...e,saving:!1,saveMessage:"Mock开启配置已保存"})),setTimeout(()=>{I(e=>({...e,saveMessage:""}))},2e3);else throw Error(n.error||"保存失败")}catch(t){console.error("保存Mock开启配置失败:",t),I(r=>({...r,mockOpen:!e,saving:!1,saveMessage:`保存失败: ${t instanceof Error?t.message:"未知错误"}`})),setTimeout(()=>{I(e=>({...e,saveMessage:""}))},3e3)}},ts=async e=>{if(!b||!r)return;let t=P[e]?.apiProxies||[],n=j(t);if(n)return void E(t=>({...t,[e]:{...t[e],saveMessage:n}}));E(t=>({...t,[e]:{...t[e],saving:!0,saveMessage:""}}));try{let n=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(w(r,e,t))}),s=await n.json();s.success?(N(t=>{if(!t)return t;let r={...t.envs};return r[e]={...r[e],apiProxies:s.data.apiProxies},{...t,envs:r}}),E(t=>({...t,[e]:{...t[e],apiProxies:s.data.apiProxies,saving:!1,saveMessage:"保存成功"}}))):E(t=>({...t,[e]:{...t[e],saving:!1,saveMessage:`保存失败: ${s.error}`}}))}catch(t){console.error("保存配置失败:",t),E(t=>({...t,[e]:{...t[e],saving:!1,saveMessage:"保存失败: 网络错误"}}))}},ta=async()=>{if(window.confirm("确定要一键关闭所有Mock吗?"))try{let e=await fetch("/api/cleanup-mock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r})});(await e.json()).success&&await eJ()}catch(e){console.error("清空Mock配置失败:",e)}},ti=async()=>{if(window.confirm("确定要一键开启所有Mock吗?"))try{let e=await fetch("/api/open-all-mock",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r})});(await e.json()).success&&await eJ()}catch(e){console.error("清空Mock配置失败:",e)}},to=async(e,t,n)=>{if(r)try{let s=await fetch("/api/mock-setting",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,apiName:e,method:t,currentSite:n})}),a=await s.json();a.success?L(r=>r?{...r,mockFiles:r.mockFiles.map(r=>r.apiName===e?{...r,methods:r.methods.map(e=>e.method===t?{...e,setting:{...e.setting,currentSite:n}}:e)}:r)}:r):(console.error("更新场景失败:",a.error),ty("error",`更新场景失败: ${a.error}`))}catch(e){console.error("更新场景失败:",e),ty("error","更新场景失败: 网络错误")}},tl=async(e,t,n)=>{if(r){q(!0),Z(!0);try{let s=await fetch(`/api/mock-file-content?project=${encodeURIComponent(r)}&apiName=${encodeURIComponent(e)}&method=${encodeURIComponent(t)}&siteName=${encodeURIComponent(n)}`),a=await s.json();a.success?(V({projectName:r,apiName:e,method:t,siteName:n,content:a.data.content}),K(!0)):(console.error("获取文件内容失败:",a.error),ty("error",`获取文件内容失败: ${a.error}`))}catch(e){console.error("获取文件内容失败:",e),ty("error","获取文件内容失败: 网络错误")}finally{q(!1)}}},tc=async()=>{if(U){Y(!0);try{let e=await fetch("/api/mock-file-content",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(U)}),t=await e.json();t.success?(K(!1),V(null)):(console.error("保存文件失败:",t.error),ty("error",`保存文件失败: ${t.error}`))}catch(e){console.error("保存文件失败:",e),ty("error","保存文件失败: 网络错误")}finally{Y(!1)}}},td=()=>{K(!1),V(null),Z(!0)},tu=(e,t)=>{"siteName"===e&&eo||em(r=>({...r,[e]:t}))},tm=(e,t)=>{let r=e.toUpperCase(),n=t.replace(/\//g,"_").replace(/^_/,"");switch(r){case"GET":return`const Mock = require('mockjs');
|
|
2
|
-
|
|
3
|
-
module.exports = Mock.mock({
|
|
4
|
-
"code": 200,
|
|
5
|
-
"message": "获取${n}成功",
|
|
6
|
-
"data": {
|
|
7
|
-
"id|1-100": 1,
|
|
8
|
-
"name": "@cname",
|
|
9
|
-
"email": "@email",
|
|
10
|
-
"phone": /^1[3-9]\\d{9}$/,
|
|
11
|
-
"status|1": ["active", "inactive", "pending"],
|
|
12
|
-
"createTime": "@datetime('yyyy-MM-dd HH:mm:ss')",
|
|
13
|
-
"updateTime": "@now('yyyy-MM-dd HH:mm:ss')",
|
|
14
|
-
"avatar": "@image('200x200', '@color', '@cname')",
|
|
15
|
-
"address": "@county(true)"
|
|
16
|
-
}
|
|
17
|
-
});`;case"POST":return`const Mock = require('mockjs');
|
|
18
|
-
|
|
19
|
-
module.exports = Mock.mock({
|
|
20
|
-
"code": 200,
|
|
21
|
-
"message": "创建${n}成功",
|
|
22
|
-
"data": {
|
|
23
|
-
"id|1-100": 1,
|
|
24
|
-
"result": "success",
|
|
25
|
-
"createTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
26
|
-
}
|
|
27
|
-
});`;case"PUT":return`const Mock = require('mockjs');
|
|
28
|
-
|
|
29
|
-
module.exports = Mock.mock({
|
|
30
|
-
"code": 200,
|
|
31
|
-
"message": "更新${n}成功",
|
|
32
|
-
"data": {
|
|
33
|
-
"id|1-100": 1,
|
|
34
|
-
"result": "success",
|
|
35
|
-
"updateTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
36
|
-
}
|
|
37
|
-
});`;case"DELETE":return`const Mock = require('mockjs');
|
|
38
|
-
|
|
39
|
-
module.exports = Mock.mock({
|
|
40
|
-
"code": 200,
|
|
41
|
-
"message": "删除${n}成功",
|
|
42
|
-
"data": {
|
|
43
|
-
"result": "success",
|
|
44
|
-
"deleteTime": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
45
|
-
}
|
|
46
|
-
});`;default:return`const Mock = require('mockjs');
|
|
47
|
-
|
|
48
|
-
module.exports = Mock.mock({
|
|
49
|
-
"code": 200,
|
|
50
|
-
"message": "操作成功",
|
|
51
|
-
"data": {
|
|
52
|
-
"id|1-100": 1,
|
|
53
|
-
"timestamp": "@now('yyyy-MM-dd HH:mm:ss')"
|
|
54
|
-
}
|
|
55
|
-
});`}},tp=(e,t,r)=>{if(!_)return!1;let n=e.replace(/\//g,"_").replace(/^_/,""),s=_.mockFiles.find(e=>e.apiName===n);if(!s)return!1;let a=s.methods.find(e=>e.method.toLowerCase()===t.toLowerCase());return!!a&&!!a.files.find(e=>e.siteName===r)},th=async()=>{if(!eu.apiPath.trim())return void ty("error","请输入接口地址");if(tp(eu.apiPath,eu.method,eu.siteName))return void ty("error",`接口 ${eu.apiPath} [${eu.method.toUpperCase()}] 的场景 "${eu.siteName}" 已存在,不能重复创建`);ex(!0);try{let e=eu.apiPath.replace(/\//g,"_").replace(/^_/,""),t=U?.content??tm(eu.method,eu.apiPath),n=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,apiName:e,method:eu.method.toLowerCase(),siteName:eu.siteName,content:t})}),s=await n.json();if(s.success)eu.mockOpen&&await tv(e,eu.method.toLowerCase(),eu.siteName,!0),em({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),el(!1),await eJ(),ty("success","Mock文件创建成功");else throw Error(s.error||"创建失败")}catch(e){console.error("创建Mock文件失败:",e),ty("error",`创建Mock文件失败: ${e instanceof Error?e.message:"未知错误"}`)}finally{ex(!1)}},tf=(e,t,n)=>{console.log("新增场景点击:",{apiName:e,method:t,apiPath:n}),eh({apiName:e,method:t,apiPath:n});let s={apiPath:n,method:t.toUpperCase(),siteName:"",mockOpen:!0};console.log("设置表单数据:",s),em(s),ed(!0);let a=tm(s.method,s.apiPath);V({projectName:r||"",apiName:e,method:t.toLowerCase(),siteName:"",content:a||""})},tx=(e,t,r)=>{if(!_)return!1;let n=_.mockFiles.find(t=>t.apiName===e);if(!n)return!1;let s=n.methods.find(e=>e.method.toLowerCase()===t.toLowerCase());return!!s&&!!s.files.find(e=>e.siteName===r)},tg=async()=>{if(!ep||!eu.siteName.trim())return void ty("error","请输入场景名称");if(tx(ep.apiName,ep.method,eu.siteName))return void ty("error",`接口 ${ep.apiPath} [${ep.method.toUpperCase()}] 的场景 "${eu.siteName}" 已存在`);ex(!0);try{let e=U?.content??tm(ep.method,ep.apiPath);console.log("defaultContent",e,U);let t=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:r,apiName:ep.apiName,method:ep.method.toLowerCase(),siteName:eu.siteName,content:e})}),n=await t.json();if(n.success){if(eu.mockOpen&&await tv(ep.apiName,ep.method,eu.siteName,!0),em({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),b)try{let e=await fetch("/api/mock-setting",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:b.projectName,apiName:ep.apiName,method:ep.method,currentSite:eu.siteName})}),t=await e.json();t.success||console.warn("切换到新场景失败:",t.error)}catch(e){console.warn("切换到新场景失败:",e)}try{await tv(ep.apiName,ep.method,eu.siteName,!0)}catch(e){console.warn("自动开启新场景失败:",e)}ed(!1),eh(null),await eJ(),ty("success","场景创建成功")}else throw Error(n.error||"创建失败")}catch(e){console.error("创建场景失败:",e),ty("error",`创建场景失败: ${e instanceof Error?e.message:"未知错误"}`)}finally{ex(!1)}},tv=async(e,t,r,n)=>{if(b)try{let s=await fetch("/api/mock-open-status",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:b.projectName,apiName:e,method:t,siteName:r,isOpen:n})}),a=await s.json();a.success?await eJ():console.error("更新Mock开启状态失败:",a.error)}catch(e){console.error("更新Mock开启状态失败:",e)}},ty=(e,t)=>{ew({open:!0,type:e,message:t}),setTimeout(()=>{ew({open:!1,type:"success",message:""})},3e3)},tb=(e,t,r)=>{ev({open:!0,apiName:e,method:t,siteName:r})},tj=async()=>{if(!b)return;let{apiName:e,method:t,siteName:r}=eg;try{let n=await fetch(`/api/mock-file?project=${encodeURIComponent(b.projectName)}&apiName=${encodeURIComponent(e)}&method=${encodeURIComponent(t)}&siteName=${encodeURIComponent(r)}`,{method:"DELETE"}),s=await n.json();if(s.success){let e=window.scrollY;await eJ(),window.scrollTo(0,e),ty("success","场景删除成功")}else console.error("删除场景失败:",s.error),ty("error",`删除场景失败: ${s.error}`)}catch(e){console.error("删除场景失败:",e),ty("error","删除场景失败: 网络错误")}finally{ev({open:!1,apiName:"",method:"",siteName:""})}},tw=(e,t)=>{eb({open:!0,apiName:e,apiPath:t})},tN=async()=>{if(!b)return;let{apiName:e}=ey;try{let t=await fetch(`/api/delete-mock-api?project=${encodeURIComponent(b.projectName)}&apiName=${encodeURIComponent(e)}`,{method:"DELETE"}),r=await t.json();if(r.success){let e=window.scrollY;await eJ(),window.scrollTo(0,e),ty("success","接口删除成功")}else console.error("删除接口失败:",r.error),ty("error",`删除接口失败: ${r.error}`)}catch(e){console.error("删除接口失败:",e),ty("error","删除接口失败: 网络错误")}finally{eb({open:!1,apiName:"",apiPath:""})}},tS=e=>{eR(e),z(1)};if(S)return(0,n.jsx)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:(0,n.jsx)("div",{className:"text-center py-8",children:(0,n.jsx)("p",{children:"加载中..."})})});if(C||!b)return(0,n.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,n.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold",children:"项目配置"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[r&&(0,n.jsx)(o.EditorSplitButton,{onOpen:eK,loading:M,loadingText:"打开中...",variant:"default"}),(0,n.jsx)(i.Button,{variant:"outline",onClick:eU,children:"返回初始化页面"})]})]}),(0,n.jsx)("div",{className:"text-center text-red-500 py-8",children:(0,n.jsx)("p",{children:C||"未找到项目配置"})})]});let tk=Object.keys(b.envs);return(0,n.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,n.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsxs)("h1",{className:"text-2xl font-bold",children:[b.projectName," - 项目配置"]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(u.Label,{className:"text-sm font-medium text-gray-600",children:"切换项目:"}),(0,n.jsxs)(c.Select,{value:r||"",onValueChange:n=>{if(n===r)return;eR(""),z(1),L(null);let s=e.get("tab"),a=`/configuration?project=${encodeURIComponent(n)}${s?`&tab=${s}`:""}`;t.push(a)},disabled:en,children:[(0,n.jsx)(c.SelectTrigger,{className:"w-40",children:(0,n.jsx)(c.SelectValue,{placeholder:en?"加载中...":"选择项目"})}),(0,n.jsx)(c.SelectContent,{children:et.map(e=>(0,n.jsx)(c.SelectItem,{value:e.name,children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)("span",{className:`h-2 w-2 rounded-full ${"existing"===e.status?"bg-green-500":"failed"===e.status?"bg-red-500":"bg-yellow-500"} ${ea[e.name]?"animate-pulse":""}`}),(0,n.jsx)("span",{children:e.name})]})},e.name))})]})]}),(0,n.jsx)("div",{className:"ml-4",children:(0,n.jsx)(y.default,{projectName:r||"",compact:!0})})]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>eS(!0),children:"创建工作区"}),(0,n.jsx)(o.EditorSplitButton,{onOpen:eK,loading:M,loadingText:"打开中...",variant:"default"}),(0,n.jsx)(i.Button,{variant:"outline",onClick:eU,children:"返回初始化页面"})]})]}),tk.length>0?(0,n.jsxs)(l.Tabs,{value:F||tk[0],onValueChange:e=>{B(e),"mock"===e&&eJ()},className:"w-full",children:[(0,n.jsxs)(l.TabsList,{className:"grid w-full",style:{gridTemplateColumns:`repeat(${tk.length+1}, 1fr)`},children:[tk.map(e=>(0,n.jsx)(l.TabsTrigger,{value:e,className:"capitalize relative",children:(0,n.jsxs)("span",{className:"flex items-center gap-2",children:[e,eM[e]?.running&&(0,n.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse",title:"运行中"})]})},e)),(0,n.jsx)(l.TabsTrigger,{value:"mock",className:"capitalize",children:"Mock配置"})]}),tk.map(e=>{let t=b.envs[e],r=P[e]?.apiProxies||[];return(0,n.jsxs)(l.TabsContent,{value:e,className:"space-y-6",children:[(0,n.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h3",{className:"text-lg font-semibold",children:"开发服务器控制"}),(0,n.jsx)("div",{className:"flex items-center gap-4",children:eM[e]?.running?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,n.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"运行中 (PID: ",eM[e]?.pid,")"]}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>e4(e),children:"查看日志"}),(0,n.jsx)(i.Button,{variant:"destructive",size:"sm",onClick:()=>eZ(e),disabled:eM[e]?.loading,children:eM[e]?.loading?"处理中...":"停止"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,n.jsx)("span",{className:"w-2 h-2 bg-gray-400 rounded-full"}),"未运行"]}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>e4(e),children:"查看日志"}),(0,n.jsx)(i.Button,{variant:"default",size:"sm",onClick:()=>eX(e),disabled:eM[e]?.loading||!t.startCommand,children:eM[e]?.loading?"处理中...":"启动"})]})})]}),t.startCommand?(0,n.jsxs)("div",{className:"text-sm text-gray-600",children:[(0,n.jsx)("span",{className:"font-medium",children:"启动命令:"})," ",(0,n.jsx)("code",{className:"px-2 py-1 bg-gray-200 rounded",children:t.startCommand})]}):(0,n.jsx)("div",{className:"text-sm text-yellow-600",children:"⚠️ 该环境未配置启动命令"}),t.host&&(0,n.jsxs)("div",{className:"text-sm text-gray-600 mt-2",children:[(0,n.jsx)("span",{className:"font-medium",children:"访问地址:"}),eM[e]?.running?(0,n.jsx)("a",{href:t.host,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-blue-600 hover:underline",children:t.host}):(0,n.jsx)("span",{className:"ml-2",children:t.host})]})]}),(0,n.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,n.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsxs)("h3",{className:"text-lg font-semibold",children:[e," 环境配置"]}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>te(e),children:"新增前缀"})]}),(0,n.jsxs)("div",{className:"space-y-4",children:[r.map((t,s)=>{let a=Object.entries(t.proxyEnv),o=t.proxyEnv[t.currentProxy]||"";return(0,n.jsxs)("div",{className:"border rounded-md p-3 space-y-3 bg-white",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"flex-1",children:[(0,n.jsx)(u.Label,{className:"block text-sm font-medium mb-1",children:"prefix"}),(0,n.jsx)(d.Input,{value:t.prefix,onChange:t=>e9(e,s,t.target.value),placeholder:"例如 /api"})]}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>tt(e,s),disabled:r.length<=1,className:"mt-6",children:"删除"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(u.Label,{className:"block text-sm font-medium mb-2",children:"代理环境"}),(0,n.jsxs)(c.Select,{value:t.currentProxy,onValueChange:t=>e3(e,s,t),children:[(0,n.jsx)(c.SelectTrigger,{className:"w-full",children:(0,n.jsx)(c.SelectValue,{placeholder:"选择代理环境"})}),(0,n.jsx)(c.SelectContent,{children:a.map(([e,t])=>(0,n.jsxs)(c.SelectItem,{value:e,children:[e,"(",t,")"]},e))})]})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)(u.Label,{className:"block text-sm font-medium mb-2",children:"路径重写"}),(0,n.jsxs)(c.Select,{value:t.rewrite?.mode||"none",onValueChange:t=>e8(e,s,t),children:[(0,n.jsx)(c.SelectTrigger,{className:"w-full",children:(0,n.jsx)(c.SelectValue,{placeholder:"选择路径重写模式"})}),(0,n.jsxs)(c.SelectContent,{children:[(0,n.jsx)(c.SelectItem,{value:"none",children:"none(不改路径)"}),(0,n.jsx)(c.SelectItem,{value:"remove",children:"remove(移除当前前缀)"}),(0,n.jsx)(c.SelectItem,{value:"replace",children:"replace(替换为目标前缀)"})]})]})]}),t.rewrite?.mode==="replace"&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{className:"block text-sm font-medium",children:"rewrite targetPrefix"}),(0,n.jsx)(d.Input,{placeholder:"例如 /auth",value:t.rewrite?.targetPrefix||"",onChange:t=>e7(e,s,t.target.value),className:"w-full"})]}),"custom"===t.currentProxy&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{className:"block text-sm font-medium",children:"自定义代理地址"}),(0,n.jsx)(d.Input,{type:"url",placeholder:"请输入自定义代理地址 (如: http://localhost:52741)",value:o,onChange:t=>e6(e,s,t.target.value),className:"w-full"})]})]},`${t.prefix}-${s}`)}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)(i.Button,{onClick:()=>ts(e),disabled:P[e]?.saving,className:"w-full sm:w-auto",children:P[e]?.saving?"保存中...":"保存配置"}),P[e]?.saveMessage&&(0,n.jsx)("span",{className:`text-sm ml-3 ${P[e]?.saveMessage==="保存成功"?"text-green-600":"text-red-600"}`,children:P[e]?.saveMessage})]})]})]}),(0,n.jsx)(g.default,{currentProjectName:b.projectName,currentEnvName:e})]})]},e)}),(0,n.jsx)(l.TabsContent,{value:"mock",className:"space-y-6",children:(0,n.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,n.jsx)("h3",{className:"text-lg font-semibold mb-4",children:"Mock配置"}),(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-6",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)(u.Label,{className:"text-sm font-medium",children:"Mock拦截"}),(0,n.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock拦截功能"})]}),(0,n.jsx)(m.Switch,{checked:R.mockingIntercept,onCheckedChange:tr})]}),(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsx)(u.Label,{className:"text-sm font-medium",children:"Mock开启"}),(0,n.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock功能"})]}),(0,n.jsx)(m.Switch,{checked:R.mockOpen,onCheckedChange:tn})]})]}),R.saveMessage&&(0,n.jsx)("div",{className:"mb-6",children:(0,n.jsx)("span",{className:`text-sm ${R.saveMessage.includes("已保存")?"text-green-600":"text-red-600"}`,children:R.saveMessage})}),(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsx)("h4",{className:"text-md font-medium",children:"Mock接口列表"}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(i.Button,{onClick:()=>{el(!0);let e=tm(eu.method,eu.apiPath);V({projectName:r||"",apiName:eu.apiPath,method:eu.method.toLowerCase(),siteName:"",content:e||""})},variant:"default",size:"sm",children:"新建"}),(0,n.jsx)(i.Button,{onClick:eJ,disabled:D,variant:"outline",size:"sm",children:D?"加载中...":"刷新"}),(0,n.jsx)(i.Button,{onClick:ta,variant:"outline",size:"sm",children:"一键关闭"}),(0,n.jsx)(i.Button,{onClick:ti,variant:"outline",size:"sm",children:"一键开启"})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,n.jsx)(d.Input,{placeholder:"搜索接口地址...",value:eE,onChange:e=>tS(e.target.value),className:"pr-8"}),eE&&(0,n.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:()=>{eR(""),z(1)},className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0 hover:bg-gray-100",children:"×"})]}),eE&&(0,n.jsxs)("span",{className:"text-sm text-gray-500",children:['搜索关键词: "',eE,'"']})]}),D?(0,n.jsx)("div",{className:"text-center py-8",children:(0,n.jsx)("p",{className:"text-gray-500",children:"加载Mock数据中..."})}):_&&_.mockFiles.length>0?(()=>{let e=[];_.mockFiles.forEach(t=>{t.methods.forEach(r=>{let n=t.apiName.replace(/_/g,"/"),s=r.files.map(e=>e.siteName),a=r.setting?.currentSite||s[0]||"",i=r.setting?.open||[],o=i.includes(a);e.push({apiPath:n,method:r.method.toUpperCase(),currentSite:a,availableSites:s,apiName:t.apiName,isOpen:o,openSites:i})})});let t=eE.trim()?e.filter(e=>e.apiPath.toLowerCase().includes(eE.toLowerCase())):e,r=t.length,s=Math.ceil(r/H),a=($-1)*H,o=a+H,l=t.slice(a,o);return(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)(p.Table,{children:[(0,n.jsx)(p.TableHeader,{children:(0,n.jsxs)(p.TableRow,{children:[(0,n.jsx)(p.TableHead,{children:"接口地址"}),(0,n.jsx)(p.TableHead,{children:"请求方法"}),(0,n.jsx)(p.TableHead,{children:"当前场景"}),(0,n.jsx)(p.TableHead,{children:"开启mock"}),(0,n.jsx)(p.TableHead,{children:"操作"})]})}),(0,n.jsx)(p.TableBody,{children:l.map((e,t)=>(0,n.jsxs)(p.TableRow,{children:[(0,n.jsx)(p.TableCell,{className:"font-medium",children:e.apiPath}),(0,n.jsx)(p.TableCell,{children:(0,n.jsx)("span",{className:`px-2 py-1 rounded text-xs font-medium ${"GET"===e.method?"bg-green-100 text-green-800":"POST"===e.method?"bg-blue-100 text-blue-800":"PUT"===e.method?"bg-yellow-100 text-yellow-800":"DELETE"===e.method?"bg-red-100 text-red-800":"bg-gray-100 text-gray-800"}`,children:e.method})}),(0,n.jsx)(p.TableCell,{children:(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsxs)(c.Select,{value:e.currentSite,onValueChange:t=>to(e.apiName,e.method.toLowerCase(),t),children:[(0,n.jsx)(c.SelectTrigger,{className:"w-32",children:(0,n.jsx)(c.SelectValue,{})}),(0,n.jsx)(c.SelectContent,{children:e.availableSites.map(e=>(0,n.jsx)(c.SelectItem,{value:e,children:e},e))})]}),e.availableSites.length>1&&(0,n.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:()=>tb(e.apiName,e.method.toLowerCase(),e.currentSite),className:"h-8 w-8 p-0 text-red-500 hover:text-red-700 hover:bg-red-50",title:"删除当前场景",children:(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M3 6h18"}),(0,n.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,n.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]})})]})}),(0,n.jsx)(p.TableCell,{children:(0,n.jsx)(m.Switch,{checked:e.isOpen,onCheckedChange:t=>tv(e.apiName,e.method.toLowerCase(),e.currentSite,t)})}),(0,n.jsx)(p.TableCell,{children:(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>tl(e.apiName,e.method.toLowerCase(),e.currentSite),disabled:W,children:W?"加载中...":"编辑"}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>tf(e.apiName,e.method.toLowerCase(),e.apiPath),disabled:ef,children:"新增场景"}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>tw(e.apiName,e.apiPath),className:"text-red-500 hover:text-red-700 hover:border-red-300",children:"删除接口"})]})})]},`${e.apiName}-${e.method}-${t}`))})]}),s>1&&(0,n.jsxs)("div",{className:"flex items-center justify-between",children:[(0,n.jsxs)("div",{className:"text-sm text-gray-500",children:["显示 ",a+1,"-",Math.min(o,r)," 条,共 ",r," 条"]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>z(e=>Math.max(1,e-1)),disabled:1===$,children:"上一页"}),(0,n.jsxs)("span",{className:"text-sm",children:[$," / ",s]}),(0,n.jsx)(i.Button,{variant:"outline",size:"sm",onClick:()=>z(e=>Math.min(s,e+1)),disabled:$===s,children:"下一页"})]})]})]})})():(0,n.jsxs)("div",{className:"text-center py-8",children:[(0,n.jsx)("p",{className:"text-gray-500",children:"暂无Mock接口数据"}),(0,n.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"请先创建Mock文件"})]})]})]})})]}):(0,n.jsx)("div",{className:"text-center text-gray-500 py-8",children:(0,n.jsx)("p",{children:"该项目没有配置环境信息"})}),(0,n.jsx)(h.Dialog,{open:G||eo||ec,onOpenChange:e=>{e||(K(!1),el(!1),ed(!1),eh(null))},children:(0,n.jsxs)(h.DialogContent,{className:"w-screen h-screen max-w-none max-h-none m-0 rounded-none overflow-hidden flex flex-col",children:[(0,n.jsxs)(h.DialogHeader,{className:"flex-shrink-0 border-b pb-4",children:[(0,n.jsx)(h.DialogTitle,{children:eo?"新建Mock文件":ec?"新增场景":"编辑Mock文件"}),(0,n.jsx)(h.DialogDescription,{children:eo?"创建一个新的Mock接口文件":ec&&ep?(0,n.jsxs)(n.Fragment,{children:["为接口 ",ep.apiPath," [",ep.method.toUpperCase(),"] 新增场景"]}):U?(0,n.jsxs)(n.Fragment,{children:["编辑 ",U.apiName.replace(/_/g,"/")," - ",U.method.toUpperCase()," - ",U.siteName,".cjs"]}):null})]}),(eo||ec)&&(0,n.jsxs)("div",{className:"flex-shrink-0 border-b pb-4",children:[(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{htmlFor:"apiPath",className:"text-sm font-medium",children:"接口地址"}),ec?(0,n.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:eu.apiPath}):(0,n.jsx)(d.Input,{id:"apiPath",placeholder:"/api/user/info",value:eu.apiPath,onChange:e=>tu("apiPath",e.target.value)})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{htmlFor:"method",className:"text-sm font-medium",children:"请求方法"}),ec?(0,n.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:eu.method}):(0,n.jsxs)(c.Select,{value:eu.method,onValueChange:e=>tu("method",e),children:[(0,n.jsx)(c.SelectTrigger,{children:(0,n.jsx)(c.SelectValue,{})}),(0,n.jsxs)(c.SelectContent,{children:[(0,n.jsx)(c.SelectItem,{value:"GET",children:"GET"}),(0,n.jsx)(c.SelectItem,{value:"POST",children:"POST"}),(0,n.jsx)(c.SelectItem,{value:"PUT",children:"PUT"}),(0,n.jsx)(c.SelectItem,{value:"DELETE",children:"DELETE"}),(0,n.jsx)(c.SelectItem,{value:"PATCH",children:"PATCH"})]})]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{htmlFor:"siteName",className:"text-sm font-medium",children:"场景名称"}),eo?(0,n.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:"默认场景"}):(0,n.jsx)(d.Input,{id:"siteName",placeholder:"请输入场景名称",value:eu.siteName,onChange:e=>tu("siteName",e.target.value)})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(u.Label,{htmlFor:"mockOpen",className:"text-sm font-medium",children:"开启Mock"}),(0,n.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,n.jsx)(m.Switch,{id:"mockOpen",checked:eu.mockOpen,onCheckedChange:e=>tu("mockOpen",e)}),(0,n.jsx)("span",{className:"text-sm text-gray-600",children:eu.mockOpen?"开启":"关闭"})]})]})]}),eo&&eu.apiPath.trim()&&eu.siteName.trim()&&tp(eu.apiPath,eu.method,eu.siteName)&&(0,n.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,n.jsx)("div",{className:"flex items-center",children:(0,n.jsxs)("span",{className:"text-red-600 text-sm",children:["⚠️ 接口 ",eu.apiPath," [",eu.method.toUpperCase(),'] 的场景 "',eu.siteName,'" 已存在']})})}),ec&&ep&&eu.siteName.trim()&&tx(ep.apiName,ep.method,eu.siteName)&&(0,n.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,n.jsx)("div",{className:"flex items-center",children:(0,n.jsxs)("span",{className:"text-red-600 text-sm",children:['⚠️ 场景 "',eu.siteName,'" 已存在']})})})]}),(0,n.jsx)("div",{className:"flex-1 flex flex-col space-y-4 py-4",children:(0,n.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,n.jsx)(u.Label,{className:"text-sm font-medium mb-2",children:"文件内容"}),(0,n.jsxs)("div",{className:"flex-1 border rounded-md overflow-hidden relative",children:[X&&(0,n.jsx)("div",{className:"absolute inset-0 bg-gray-50 flex items-center justify-center z-10",children:(0,n.jsx)("p",{className:"text-gray-500",children:"编辑器加载中..."})}),(0,n.jsx)(x.default,{height:"100%",defaultLanguage:"javascript",value:U?.content||"",onChange:e=>{V(t=>t?{...t,content:e||""}:null)},onMount:async e=>{console.log("编辑器挂载,模式:",{isCreateMode:eo,isAddSceneMode:ec,createFormData:eu}),ee(e),Z(!1),setTimeout(()=>eB(e),500)},loading:(0,n.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,n.jsx)("p",{className:"text-gray-500",children:"编辑器加载中..."})}),options:{minimap:{enabled:!1},fontSize:14,lineNumbers:"on",roundedSelection:!1,scrollBeyondLastLine:!1,automaticLayout:!0,tabSize:2,insertSpaces:!0,wordWrap:"on",theme:"vs-dark",bracketPairColorization:{enabled:!0},quickSuggestions:{other:!0,comments:!0,strings:!0},formatOnPaste:!0,formatOnType:!0,readOnly:!1}},eo?"create":ec?"addscene":"edit")]})]})}),(0,n.jsxs)(h.DialogFooter,{className:"flex justify-between flex-shrink-0 border-t pt-4",children:[(0,n.jsx)(i.Button,{variant:"secondary",onClick:eH,disabled:!Q||X,children:"格式化代码"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>{eo?(el(!1),em({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):ec?(ed(!1),eh(null),em({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):td()},children:"取消"}),eo?(0,n.jsx)(i.Button,{onClick:th,disabled:ef||!eu.apiPath.trim()||!eu.siteName.trim()||tp(eu.apiPath,eu.method,eu.siteName),children:ef?"创建中...":"创建"}):ec?(0,n.jsx)(i.Button,{onClick:tg,disabled:ef||!eu.siteName.trim()||!!ep&&tx(ep.apiName,ep.method,eu.siteName),children:ef?"创建中...":"创建"}):(0,n.jsx)(i.Button,{onClick:tc,disabled:J,children:J?"保存中...":"保存"})]})]})]})}),(0,n.jsx)(h.Dialog,{open:e_,onOpenChange:e=>{e||e5()},children:(0,n.jsxs)(h.DialogContent,{className:"max-w-5xl h-[85vh] max-h-[85vh] flex flex-col p-0",children:[(0,n.jsxs)(h.DialogHeader,{className:"px-6 pt-6 pb-4",children:[(0,n.jsxs)(h.DialogTitle,{className:"flex items-center justify-between",children:[(0,n.jsxs)("span",{children:["进程日志 - ",r," - ",eD]}),(0,n.jsx)("span",{className:"flex items-center gap-2 text-sm font-normal",children:eQ&&(0,n.jsxs)("span",{className:"flex items-center gap-1 text-green-600",children:[(0,n.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"实时连接"]})})]}),(0,n.jsx)(h.DialogDescription,{children:"实时显示进程输出日志"})]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 bg-gray-900 mx-6 rounded-md overflow-hidden",children:(0,n.jsx)(v.default,{logs:e$})}),(0,n.jsxs)(h.DialogFooter,{className:"flex items-center justify-between px-6 pb-6 pt-4",children:[(0,n.jsxs)("div",{className:"text-sm text-gray-500",children:["共 ",e$.length," 条日志"]}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>{eD&&(e2(),e1(eD))},disabled:!!eQ,children:"重新连接"}),(0,n.jsx)(i.Button,{variant:"default",onClick:e5,children:"关闭"})]})]})]})}),(0,n.jsx)(h.Dialog,{open:eg.open,onOpenChange:e=>{e||ev({open:!1,apiName:"",method:"",siteName:""})},children:(0,n.jsxs)(h.DialogContent,{className:"max-w-md",children:[(0,n.jsxs)(h.DialogHeader,{children:[(0,n.jsxs)(h.DialogTitle,{className:"flex items-center gap-2 text-red-600",children:[(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M3 6h18"}),(0,n.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,n.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]}),"确认删除场景"]}),(0,n.jsxs)(h.DialogDescription,{children:["确定要删除场景 ",(0,n.jsxs)("span",{className:"font-medium text-gray-900",children:['"',eg.siteName,'"']})," 吗?",(0,n.jsx)("br",{}),(0,n.jsx)("span",{className:"text-red-500 text-sm mt-2 block",children:"此操作不可撤销"})]})]}),(0,n.jsxs)(h.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>ev({open:!1,apiName:"",method:"",siteName:""}),children:"取消"}),(0,n.jsx)(i.Button,{variant:"destructive",onClick:tj,children:"删除"})]})]})}),(0,n.jsx)(h.Dialog,{open:ey.open,onOpenChange:e=>{e||eb({open:!1,apiName:"",apiPath:""})},children:(0,n.jsxs)(h.DialogContent,{className:"max-w-md",children:[(0,n.jsxs)(h.DialogHeader,{children:[(0,n.jsxs)(h.DialogTitle,{className:"flex items-center gap-2 text-red-600",children:[(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,n.jsx)("path",{d:"M3 6h18"}),(0,n.jsx)("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),(0,n.jsx)("path",{d:"M8 6V4c0-1 1-2 2-2h4c0 1 1 2 2 2v2"})]}),"确认删除接口"]}),(0,n.jsxs)(h.DialogDescription,{children:["确定要删除整个接口 ",(0,n.jsxs)("span",{className:"font-medium text-gray-900",children:['"',ey.apiPath,'"']})," 吗?",(0,n.jsx)("br",{}),(0,n.jsx)("span",{className:"text-red-500 text-sm mt-2 block font-medium",children:"⚠️ 这将删除该接口的所有场景和相关文件,此操作不可撤销"})]})]}),(0,n.jsxs)(h.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>eb({open:!1,apiName:"",apiPath:""}),children:"取消"}),(0,n.jsx)(i.Button,{variant:"destructive",onClick:tN,children:"删除整个接口"})]})]})}),(0,n.jsx)(h.Dialog,{open:eN,onOpenChange:eS,children:(0,n.jsxs)(h.DialogContent,{className:"max-w-md",children:[(0,n.jsxs)(h.DialogHeader,{children:[(0,n.jsx)(h.DialogTitle,{children:"创建工作区"}),(0,n.jsx)(h.DialogDescription,{children:"选择要包含在工作区中的项目"})]}),(0,n.jsxs)("div",{className:"py-4 max-h-96 overflow-y-auto",children:[(0,n.jsx)("div",{className:"space-y-3",children:et.filter(e=>"existing"===e.status).map(e=>(0,n.jsxs)("div",{className:"flex items-center space-x-3 p-3 rounded-lg border border-gray-200 hover:bg-gray-50 transition-colors",children:[(0,n.jsx)(f.Checkbox,{id:`workspace-${e.name}`,checked:ek.includes(e.name),onCheckedChange:()=>eq(e.name)}),(0,n.jsx)("label",{htmlFor:`workspace-${e.name}`,className:"flex-1 cursor-pointer text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:e.name})]},e.name))}),0===et.filter(e=>"existing"===e.status).length&&(0,n.jsx)("div",{className:"text-center py-8 text-gray-500",children:"没有可用的项目"})]}),(0,n.jsxs)(h.DialogFooter,{className:"flex gap-2 justify-end",children:[(0,n.jsx)(i.Button,{variant:"outline",onClick:()=>{eS(!1),eC([])},children:"取消"}),(0,n.jsx)(o.EditorSplitButton,{onOpen:eW,loading:eT,loadingText:"创建中...",disabled:0===ek.length,actionType:"create",variant:"default"})]})]})}),ej.open&&(0,n.jsx)("div",{className:"fixed top-4 right-4 z-50 animate-in slide-in-from-top-2 duration-300",children:(0,n.jsxs)("div",{className:`flex items-center gap-3 px-4 py-3 rounded-lg shadow-lg border max-w-sm ${"success"===ej.type?"bg-green-50 border-green-200 text-green-800":"bg-red-50 border-red-200 text-red-800"}`,children:[(0,n.jsx)("div",{className:"flex-shrink-0",children:"success"===ej.type?(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-green-600",children:(0,n.jsx)("path",{d:"M20 6L9 17l-5-5"})}):(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"text-red-600",children:[(0,n.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,n.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15"}),(0,n.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15"})]})}),(0,n.jsx)("p",{className:"text-sm font-medium",children:ej.message}),(0,n.jsx)("button",{onClick:()=>ew({open:!1,type:"success",message:""}),className:"flex-shrink-0 ml-auto",children:(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"opacity-60 hover:opacity-100",children:[(0,n.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,n.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})})]})}function S(){return(0,n.jsx)(s.Suspense,{fallback:(0,n.jsx)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:(0,n.jsxs)("div",{className:"text-center space-y-4",children:[(0,n.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"}),(0,n.jsx)("p",{className:"text-gray-600",children:"正在加载配置页面..."})]})}),children:(0,n.jsx)(N,{})})}}}]);
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=51208386dbc1874e.js.map
|
/package/dist/server/.next/static/{hKvS6HjDU-eBShMXMQ7An → Ia-qlvzazBlu740_UlpFl}/_buildManifest.js
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/server/.next/static/{hKvS6HjDU-eBShMXMQ7An → Ia-qlvzazBlu740_UlpFl}/_ssgManifest.js
RENAMED
|
File without changes
|