prime-dev-cli 1.0.3 → 1.0.5
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/config/projects.json +33 -17
- package/dist/server/.next/BUILD_ID +1 -1
- package/dist/server/.next/app-build-manifest.json +81 -53
- package/dist/server/.next/app-path-routes-manifest.json +14 -10
- package/dist/server/.next/build-manifest.json +3 -3
- 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/cache/webpack/client-production/0.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/1.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/11.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/13.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/14.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/15.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/16.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/17.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/18.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/2.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/3.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/4.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/5.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/6.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/7.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/8.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/index.pack +0 -0
- package/dist/server/.next/cache/webpack/client-production/index.pack.old +0 -0
- package/dist/server/.next/cache/webpack/edge-server-production/index.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/0.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/1.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/2.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/3.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/4.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/6.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/7.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/8.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/9.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/index.pack +0 -0
- package/dist/server/.next/cache/webpack/server-production/index.pack.old +0 -0
- 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 +9 -9
- package/dist/server/.next/required-server-files.json +3 -3
- package/dist/server/.next/server/app/_not-found/page.js +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/api/all-projects-envs/route.js +1 -1
- package/dist/server/.next/server/app/api/all-projects-envs/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route.js +1 -1
- package/dist/server/.next/server/app/api/check-mock-intercept/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/check-workspace/route.js +2 -2
- package/dist/server/.next/server/app/api/check-workspace/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/cleanup-project/route.js +1 -1
- package/dist/server/.next/server/app/api/cleanup-project/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/get-mock-data/route.js +1 -1
- package/dist/server/.next/server/app/api/get-mock-data/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/initialize-workspace/route.js +6 -6
- package/dist/server/.next/server/app/api/initialize-workspace/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route.js +3 -3
- package/dist/server/.next/server/app/api/microapp-proxy-change-stream/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/microapp-proxy-config/route.js +2 -2
- package/dist/server/.next/server/app/api/microapp-proxy-config/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/mock-file/route.js +2 -2
- package/dist/server/.next/server/app/api/mock-file/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/mock-file-content/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-file-content/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/mock-open-status/route.js +3 -3
- package/dist/server/.next/server/app/api/mock-open-status/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/mock-setting/route.js +1 -1
- package/dist/server/.next/server/app/api/mock-setting/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/open-project/route.js +2 -2
- package/dist/server/.next/server/app/api/open-project/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/process/logs/route.js +1 -0
- package/dist/server/.next/server/app/api/process/logs/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/process/logs/route_client-reference-manifest.js +1 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route.js +9 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/process/logs/stream/route_client-reference-manifest.js +1 -0
- package/dist/server/.next/server/app/api/process/start/route.js +1 -0
- package/dist/server/.next/server/app/api/process/start/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/process/start/route_client-reference-manifest.js +1 -0
- package/dist/server/.next/server/app/api/process/status/route.js +1 -0
- package/dist/server/.next/server/app/api/process/status/route.js.nft.json +1 -0
- package/dist/server/.next/server/app/api/process/status/route_client-reference-manifest.js +1 -0
- package/dist/server/.next/server/app/api/project-config/route.js +1 -1
- package/dist/server/.next/server/app/api/project-config/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/api/retry-project/route.js +9 -9
- package/dist/server/.next/server/app/api/retry-project/route_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app/configuration/page.js +7 -7
- 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/favicon.ico/route.js +1 -1
- 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.js +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 +3 -3
- package/dist/server/.next/server/app/page.js +1 -1
- package/dist/server/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dist/server/.next/server/app-paths-manifest.json +14 -10
- package/dist/server/.next/server/chunks/967.js +3 -3
- package/dist/server/.next/server/middleware-build-manifest.js +1 -1
- package/dist/server/.next/server/next-font-manifest.js +1 -1
- package/dist/server/.next/server/next-font-manifest.json +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/pages-manifest.json +1 -1
- package/dist/server/.next/server/server-reference-manifest.json +1 -1
- package/dist/server/.next/static/0YG3L7wZtbtQp2XameODj/_buildManifest.js +1 -0
- package/dist/server/.next/static/0YG3L7wZtbtQp2XameODj/_ssgManifest.js +1 -0
- package/dist/server/.next/static/Mmn2KHpe4Btd9UFvAkzbC/_buildManifest.js +1 -0
- package/dist/server/.next/static/Mmn2KHpe4Btd9UFvAkzbC/_ssgManifest.js +1 -0
- package/dist/server/.next/static/MwYZh9prxBMJtf26zAtTY/_buildManifest.js +1 -0
- package/dist/server/.next/static/MwYZh9prxBMJtf26zAtTY/_ssgManifest.js +1 -0
- package/dist/server/.next/static/chunks/495-1a64c3075b5b8ac4.js +1 -0
- package/dist/server/.next/static/chunks/app/api/all-projects-envs/route-4a1691275c5ae416.js +1 -0
- package/dist/server/.next/static/chunks/app/api/check-mock-intercept/route-f2e048a9d229f7e7.js +1 -0
- package/dist/server/.next/static/chunks/app/api/check-workspace/route-3569564cd2b09683.js +1 -0
- package/dist/server/.next/static/chunks/app/api/cleanup-project/route-a6c005b8a485a192.js +1 -0
- package/dist/server/.next/static/chunks/app/api/get-mock-data/route-0ff137f28b0bbfd4.js +1 -0
- package/dist/server/.next/static/chunks/app/api/initialize-workspace/route-7faec0a7a2e6383d.js +1 -0
- package/dist/server/.next/static/chunks/app/api/microapp-proxy-change-stream/route-81a2d573a6a5b3d9.js +1 -0
- package/dist/server/.next/static/chunks/app/api/microapp-proxy-config/route-05c8c2aae5088b98.js +1 -0
- package/dist/server/.next/static/chunks/app/api/mock-file/route-606d825407e0fd4c.js +1 -0
- package/dist/server/.next/static/chunks/app/api/mock-file-content/route-4bc78ec0cbed800a.js +1 -0
- package/dist/server/.next/static/chunks/app/api/mock-open-status/route-a9410ab77572cb9e.js +1 -0
- package/dist/server/.next/static/chunks/app/api/mock-setting/route-48cfb30a284d746d.js +1 -0
- package/dist/server/.next/static/chunks/app/api/open-project/route-b6e6fca6c827640d.js +1 -0
- package/dist/server/.next/static/chunks/app/api/process/logs/route-3d9ee52d7c8aacef.js +1 -0
- package/dist/server/.next/static/chunks/app/api/process/logs/stream/route-e9633e0e72dfb31b.js +1 -0
- package/dist/server/.next/static/chunks/app/api/process/start/route-54c553f9e551d14b.js +1 -0
- package/dist/server/.next/static/chunks/app/api/process/status/route-06151b6ca21ffd52.js +1 -0
- package/dist/server/.next/static/chunks/app/api/project-config/route-ebe1c2ee41dedc74.js +1 -0
- package/dist/server/.next/static/chunks/app/api/retry-project/route-c25d253b5eacedef.js +1 -0
- package/dist/server/.next/static/chunks/app/configuration/page-978351fa7fe07983.js +1 -0
- package/dist/server/.next/static/chunks/app/page-9e7caf746eefeed4.js +1 -0
- package/dist/server/.next/static/css/1c3633790ce12b77.css +3 -0
- package/dist/server/.next/trace +3 -12
- package/dist/server/.next/types/app/api/all-projects-envs/route.ts +1 -1
- package/dist/server/.next/types/app/api/check-mock-intercept/route.ts +1 -1
- package/dist/server/.next/types/app/api/check-workspace/route.ts +1 -1
- package/dist/server/.next/types/app/api/cleanup-project/route.ts +1 -1
- package/dist/server/.next/types/app/api/get-mock-data/route.ts +1 -1
- package/dist/server/.next/types/app/api/initialize-workspace/route.ts +1 -1
- package/dist/server/.next/types/app/api/microapp-proxy-change-stream/route.ts +1 -1
- package/dist/server/.next/types/app/api/microapp-proxy-config/route.ts +1 -1
- package/dist/server/.next/types/app/api/mock-file/route.ts +1 -1
- package/dist/server/.next/types/app/api/mock-file-content/route.ts +1 -1
- package/dist/server/.next/types/app/api/mock-open-status/route.ts +1 -1
- package/dist/server/.next/types/app/api/mock-setting/route.ts +1 -1
- package/dist/server/.next/types/app/api/open-project/route.ts +1 -1
- package/dist/server/.next/types/app/api/process/logs/route.ts +347 -0
- package/dist/server/.next/types/app/api/process/logs/stream/route.ts +347 -0
- package/dist/server/.next/types/app/api/process/start/route.ts +347 -0
- package/dist/server/.next/types/app/api/process/status/route.ts +347 -0
- package/dist/server/.next/types/app/api/project-config/route.ts +1 -1
- package/dist/server/.next/types/app/api/retry-project/route.ts +1 -1
- package/dist/server/.next/types/app/configuration/page.ts +1 -1
- package/dist/server/.next/types/app/initialization/page.ts +1 -1
- package/dist/server/.next/types/app/layout.ts +1 -1
- package/dist/server/.next/types/app/page.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[823],{2190:(e,t,s)=>{Promise.resolve().then(s.bind(s,6175))},6162:(e,t,s)=>{"use strict";s.d(t,{cn:()=>r});var a=s(4407),n=s(1467);function r(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,n.QP)((0,a.$)(t))}},6175:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>X});var a=s(5167),n=s(6343),r=s(1349),l=s(7541),c=s(508),i=s(6162);function o(e){let{className:t,...s}=e;return(0,a.jsx)(c.bL,{"data-slot":"tabs",className:(0,i.cn)("flex flex-col gap-2",t),...s})}function d(e){let{className:t,...s}=e;return(0,a.jsx)(c.B8,{"data-slot":"tabs-list",className:(0,i.cn)("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",t),...s})}function m(e){let{className:t,...s}=e;return(0,a.jsx)(c.l9,{"data-slot":"tabs-trigger",className:(0,i.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",t),...s})}function u(e){let{className:t,...s}=e;return(0,a.jsx)(c.UC,{"data-slot":"tabs-content",className:(0,i.cn)("flex-1 outline-none",t),...s})}var x=s(8358),h=s(7151),p=s(5211),g=s(9926);function f(e){let{...t}=e;return(0,a.jsx)(x.bL,{"data-slot":"select",...t})}function j(e){let{...t}=e;return(0,a.jsx)(x.WT,{"data-slot":"select-value",...t})}function v(e){let{className:t,size:s="default",children:n,...r}=e;return(0,a.jsxs)(x.l9,{"data-slot":"select-trigger","data-size":s,className:(0,i.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",t),...r,children:[n,(0,a.jsx)(x.In,{asChild:!0,children:(0,a.jsx)(h.A,{className:"size-4 opacity-50"})})]})}function b(e){let{className:t,children:s,position:n="popper",...r}=e;return(0,a.jsx)(x.ZL,{children:(0,a.jsxs)(x.UC,{"data-slot":"select-content",className:(0,i.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"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",t),position:n,...r,children:[(0,a.jsx)(y,{}),(0,a.jsx)(x.LM,{className:(0,i.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:s}),(0,a.jsx)(w,{})]})})}function N(e){let{className:t,children:s,...n}=e;return(0,a.jsxs)(x.q7,{"data-slot":"select-item",className:(0,i.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",t),...n,children:[(0,a.jsx)("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:(0,a.jsx)(x.VF,{children:(0,a.jsx)(p.A,{className:"size-4"})})}),(0,a.jsx)(x.p4,{children:s})]})}function y(e){let{className:t,...s}=e;return(0,a.jsx)(x.PP,{"data-slot":"select-scroll-up-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,a.jsx)(g.A,{className:"size-4"})})}function w(e){let{className:t,...s}=e;return(0,a.jsx)(x.wn,{"data-slot":"select-scroll-down-button",className:(0,i.cn)("flex cursor-default items-center justify-center py-1",t),...s,children:(0,a.jsx)(h.A,{className:"size-4"})})}function k(e){let{className:t,type:s,...n}=e;return(0,a.jsx)("input",{type:s,"data-slot":"input",className:(0,i.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...n})}var C=s(7752);function S(e){let{className:t,...s}=e;return(0,a.jsx)(C.b,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...s})}var E=s(7807);function P(e){let{className:t,...s}=e;return(0,a.jsx)(E.bL,{"data-slot":"switch",className:(0,i.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",t),...s,children:(0,a.jsx)(E.zi,{"data-slot":"switch-thumb",className:(0,i.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")})})}function T(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:(0,a.jsx)("table",{"data-slot":"table",className:(0,i.cn)("w-full caption-bottom text-sm",t),...s})})}function O(e){let{className:t,...s}=e;return(0,a.jsx)("thead",{"data-slot":"table-header",className:(0,i.cn)("[&_tr]:border-b",t),...s})}function M(e){let{className:t,...s}=e;return(0,a.jsx)("tbody",{"data-slot":"table-body",className:(0,i.cn)("[&_tr:last-child]:border-0",t),...s})}function z(e){let{className:t,...s}=e;return(0,a.jsx)("tr",{"data-slot":"table-row",className:(0,i.cn)("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",t),...s})}function L(e){let{className:t,...s}=e;return(0,a.jsx)("th",{"data-slot":"table-head",className:(0,i.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]",t),...s})}function U(e){let{className:t,...s}=e;return(0,a.jsx)("td",{"data-slot":"table-cell",className:(0,i.cn)("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",t),...s})}var I=s(7890),_=s(4279);function $(e){let{...t}=e;return(0,a.jsx)(I.bL,{"data-slot":"dialog",...t})}function R(e){let{...t}=e;return(0,a.jsx)(I.ZL,{"data-slot":"dialog-portal",...t})}function A(e){let{className:t,...s}=e;return(0,a.jsx)(I.hJ,{"data-slot":"dialog-overlay",className:(0,i.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...s})}function D(e){let{className:t,children:s,showCloseButton:n=!0,...r}=e;return(0,a.jsxs)(R,{"data-slot":"dialog-portal",children:[(0,a.jsx)(A,{}),(0,a.jsxs)(I.UC,{"data-slot":"dialog-content",className:(0,i.cn)("bg-background 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 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200",t),...r,children:[s,n&&(0,a.jsxs)(I.bm,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,a.jsx)(_.A,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function F(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"dialog-header",className:(0,i.cn)("flex flex-col gap-2 text-center sm:text-left",t),...s})}function G(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"dialog-footer",className:(0,i.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...s})}function J(e){let{className:t,...s}=e;return(0,a.jsx)(I.hE,{"data-slot":"dialog-title",className:(0,i.cn)("text-lg leading-none font-semibold",t),...s})}function V(e){let{className:t,...s}=e;return(0,a.jsx)(I.VY,{"data-slot":"dialog-description",className:(0,i.cn)("text-muted-foreground text-sm",t),...s})}var H=s(4064);function K(e){let{className:t,currentProjectName:s,currentEnvName:r}=e,[c,i]=(0,n.useState)([]),[o,d]=(0,n.useState)(!0),[m,u]=(0,n.useState)(null),[x,h]=(0,n.useState)(new Set),[p,g]=(0,n.useState)(""),[f,j]=(0,n.useState)(!1),[v,b]=(0,n.useState)(""),[N,y]=(0,n.useState)(!1),[w,C]=(0,n.useState)(null),S=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(c.length>0){let e=c.find(e=>e.projectName===s&&e.envName===r);if(e&&e.subApps.length>0){let t=new Set;e.subApps.forEach(e=>{c.forEach(s=>{s.envName===e&&t.add($(s))})}),h(t)}}},[c,s,r]);let E=async()=>{d(!0),u(null);try{let e=await fetch("/api/all-projects-envs"),t=await e.json();t.success?i(t.data):u(t.error||"获取项目环境信息失败")}catch(e){console.error("获取项目环境信息失败:",e),u("获取项目环境信息失败: 网络错误")}finally{d(!1)}};(0,n.useEffect)(()=>(E(),P(),()=>{I()}),[r]);let P=()=>{S.current&&I();let e="microapp-table-".concat(Date.now(),"-").concat(Math.random().toString(36).substr(2,9)),t="/api/microapp-proxy-change-stream?env=".concat(encodeURIComponent(r),"&clientId=").concat(encodeURIComponent(e));console.log("[SSE] 建立连接到: ".concat(t)),C(null);try{let e=new EventSource(t);S.current=e,e.onopen=()=>{console.log("[SSE] 连接已建立,环境: ".concat(r)),y(!0),C(null)},e.onmessage=e=>{try{let t=JSON.parse(e.data);_(t)}catch(e){console.error("[SSE] 解析消息失败:",e)}},e.onerror=()=>{console.error("[SSE] 连接错误,环境: ".concat(r)),y(!1),C("实时推送连接断开"),setTimeout(()=>{S.current&&S.current.readyState!==EventSource.CLOSED||(console.log("[SSE] 尝试重新连接..."),P())},3e3)}}catch(e){console.error("[SSE] 建立连接失败:",e),C("无法建立实时推送连接")}},I=()=>{S.current&&(console.log("[SSE] 关闭连接"),S.current.close(),S.current=null,y(!1))},_=e=>{switch(console.log("[SSE] 收到消息:",e),e.type){case"connection-established":console.log("[SSE] 连接确认: ".concat(e.message)),y(!0),C(null);break;case"microapp-proxy-config-change":if(console.log("[SSE] 配置变化通知: 环境=".concat(e.envName)),console.log("[SSE] 变化详情:",e.changes),e.changes){let{added:t,removed:s}=e.changes,a="";t.length>0&&(a+="新增: ".concat(t.join(", "))),s.length>0&&(a&&(a+="; "),a+="移除: ".concat(s.join(", "))),b("配置已更新 (".concat(a,")"))}else b("配置已更新");E(),setTimeout(()=>b(""),3e3);break;case"heartbeat":y(!0),C(null);break;default:console.log("[SSE] 未知消息类型:",e.type)}},$=e=>"".concat(e.projectName,"-").concat(e.envName),R=p.trim()?c.filter(e=>e.projectName.toLowerCase().includes(p.toLowerCase())||e.envName.toLowerCase().includes(p.toLowerCase())||e.host.toLowerCase().includes(p.toLowerCase())):c,A=(e,t)=>{let s=new Set(x);t?s.add(e):s.delete(e),h(s)},D=e=>{e?h(new Set(R.map(e=>$(e)))):h(new Set)},F=async()=>{j(!0),b("");try{let e=Array.from(x).map(e=>{let t=c.find(t=>$(t)===e);return t?t.envName:""}).filter(e=>""!==e),t=[...new Set(e)],a=await fetch("/api/microapp-proxy-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s,envName:r,selectedItems:t})}),n=await a.json();n.success?(b(n.message||"保存成功"),await E()):b("保存失败: ".concat(n.error))}catch(e){console.error("保存MicroApp代理配置失败:",e),b("保存失败: 网络错误")}finally{j(!1),setTimeout(()=>{b("")},5e3)}},G=x.size,J=R.length>0&&R.every(e=>x.has($(e))),V=R.some(e=>x.has($(e)));return o?(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg ".concat(t),children:[(0,a.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("p",{className:"text-gray-500",children:"加载中..."})})]}):m?(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg ".concat(t),children:[(0,a.jsx)("h4",{className:"text-md font-medium mb-4",children:"MicroApp代理配置"}),(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)("p",{className:"text-red-500",children:m}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:E,className:"mt-2",children:"重试"})]})]}):(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg ".concat(t),children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-md font-medium",children:"MicroApp代理配置"}),(0,a.jsxs)("p",{className:"text-xs text-gray-500 mt-1",children:["为 ",s," - ",r," 环境配置微应用代理"]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)("div",{className:"w-2 h-2 rounded-full ".concat(N?"bg-green-500":"bg-red-500"),title:N?"实时推送已连接":"实时推送断开"}),(0,a.jsx)("span",{className:"text-xs text-gray-500",children:N?"实时":"离线"})]}),(v||w)&&(0,a.jsx)("span",{className:"text-sm max-w-xs ".concat(v&&v.includes("失败")||w?"text-red-600":v&&v.includes("但有")?"text-yellow-600":"text-green-600"),title:v||w||"",children:v||w}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:E,disabled:f,children:"刷新"}),(0,a.jsx)(l.$,{variant:"default",size:"sm",onClick:F,disabled:f,children:f?"保存中...":"保存配置"})]})]}),(0,a.jsxs)("div",{className:"space-y-3 mb-4",children:[(0,a.jsx)("div",{className:"flex items-center gap-2",children:(0,a.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,a.jsx)(k,{placeholder:"搜索项目名称、环境名称或Host...",value:p,onChange:e=>g(e.target.value),className:"pr-8"}),p&&(0,a.jsx)(l.$,{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:"\xd7"})]})}),(0,a.jsxs)("div",{className:"flex items-center justify-between text-sm text-gray-600",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsxs)("span",{children:["显示 ",R.length," 个环境配置",p&&' (搜索: "'.concat(p,'")')]}),G>0&&(0,a.jsxs)("span",{className:"text-blue-600 font-medium",children:["已选择 ",G," 项"]})]}),G>0&&(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>{h(new Set)},children:"清空选择"})]})]}),R.length>0?(0,a.jsx)("div",{className:"border rounded-md",children:(0,a.jsxs)(T,{children:[(0,a.jsx)(O,{children:(0,a.jsxs)(z,{children:[(0,a.jsx)(L,{className:"w-12",children:(0,a.jsx)("input",{type:"checkbox",checked:J,onChange:e=>D(e.target.checked),ref:e=>{e&&(e.indeterminate=V&&!J)},className:"rounded border-gray-300"})}),(0,a.jsx)(L,{children:"环境名称"}),(0,a.jsx)(L,{children:"项目名称"}),(0,a.jsx)(L,{children:"Host地址"}),(0,a.jsx)(L,{children:"当前代理"})]})}),(0,a.jsx)(M,{children:R.map(e=>{let t=$(e),s=x.has(t);return(0,a.jsxs)(z,{children:[(0,a.jsx)(U,{children:(0,a.jsx)("input",{type:"checkbox",checked:s,onChange:e=>A(t,e.target.checked),className:"rounded border-gray-300"})}),(0,a.jsx)(U,{children:(0,a.jsx)("span",{className:"px-2 py-1 rounded text-xs font-medium bg-blue-100 text-blue-800",children:e.envName})}),(0,a.jsx)(U,{className:"font-medium",children:e.projectName}),(0,a.jsx)(U,{className:"font-mono text-sm",children:e.host}),(0,a.jsxs)(U,{className:"text-sm text-gray-600",children:[e.currentProxy,e.proxyEnv[e.currentProxy]&&(0,a.jsx)("div",{className:"text-xs text-gray-500",children:e.proxyEnv[e.currentProxy]})]})]},t)})})]})}):(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("p",{className:"text-gray-500",children:p?"没有找到匹配的环境配置":"暂无环境配置"})}),G>0&&(0,a.jsx)("div",{className:"mt-4 p-3 bg-blue-50 rounded-md",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("span",{className:"text-sm text-blue-700",children:["已选择 ",G," 个环境配置将作为微应用代理"]}),(0,a.jsx)("span",{className:"text-xs text-blue-600",children:"点击上方“保存配置”按钮保存设置"})]})})]})}var Z=s(5735),B=s.n(Z);function Y(e){let{logs:t}=e,s=(0,n.useRef)(null),r=(0,n.useRef)(!0),l=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]"),c=()=>{if(!s.current)return!0;let{scrollTop:e,scrollHeight:t,clientHeight:a}=s.current;return t-e-a<100},i=()=>{s.current&&r.current&&(s.current.scrollTop=s.current.scrollHeight)};return(0,n.useEffect)(()=>{setTimeout(i,10)},[t]),(0,a.jsxs)("div",{ref:s,onScroll:()=>{r.current=c()},style:{scrollBehavior:"smooth",maxHeight:"100%"},className:"jsx-b464fb0f479e34f5 h-full w-full overflow-y-auto overflow-x-hidden p-4 custom-scrollbar",children:[(0,a.jsx)(B(),{id:"b464fb0f479e34f5",children:".custom-scrollbar.jsx-b464fb0f479e34f5{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2)rgba(0,0,0,.1)}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar{width:10px;height:10px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-track{background:rgba(0,0,0,.1);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.custom-scrollbar.jsx-b464fb0f479e34f5::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4)}"}),(0,a.jsx)("div",{className:"jsx-b464fb0f479e34f5 space-y-0.5",children:t.length>0?t.map((e,t)=>{var s;let n=l(e);if(!n.trim())return null;let r=e.includes("[STDERR]"),c=e.includes("[SYSTEM]"),i=null==(s=n.match(/^\[([\d-T:.Z]+)\]/))?void 0:s[1],o=n.replace(/^\[[\d-T:.Z]+\]\s*/,"");return(0,a.jsxs)("div",{className:"jsx-b464fb0f479e34f5 "+"font-mono text-xs leading-5 ".concat(r?"text-red-400":c?"text-yellow-400":"text-gray-100"),children:[i&&(0,a.jsxs)("span",{className:"jsx-b464fb0f479e34f5 text-gray-500 mr-2",children:["[",new Date(i).toLocaleTimeString("zh-CN"),"]"]}),(0,a.jsx)("span",{className:"jsx-b464fb0f479e34f5 whitespace-pre-wrap break-all",children:o})]},t)}):(0,a.jsx)("div",{className:"jsx-b464fb0f479e34f5 text-center text-gray-500 mt-8",children:"等待日志输出..."})})]})}var q=function(e){return e.PENDING="pending",e.EXISTING="existing",e.CLONING="cloning",e.SUCCESS="success",e.FAILED="failed",e.RETRYING="retrying",e}(q||{});function W(){let e=(0,r.useSearchParams)(),t=(0,r.useRouter)(),s=e.get("project"),[c,i]=(0,n.useState)(null),[x,h]=(0,n.useState)(!0),[p,g]=(0,n.useState)(null),[y,w]=(0,n.useState)({}),[C,E]=(0,n.useState)({mockingIntercept:!1,mockOpen:!1}),[I,_]=(0,n.useState)(!1),[R,A]=(0,n.useState)(null),[Z,B]=(0,n.useState)(!1),[q,W]=(0,n.useState)(1),[X]=(0,n.useState)(10),[Q,ee]=(0,n.useState)(""),[et,es]=(0,n.useState)(null),[ea,en]=(0,n.useState)(!1),[er,el]=(0,n.useState)(!1),[ec,ei]=(0,n.useState)(!1),[eo,ed]=(0,n.useState)(!0),[em,eu]=(0,n.useState)(null),[ex,eh]=(0,n.useState)([]),[ep,eg]=(0,n.useState)(!1),[ef,ej]=(0,n.useState)(!1),[ev,eb]=(0,n.useState)(!1),[eN,ey]=(0,n.useState)({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),[ew,ek]=(0,n.useState)(null),[eC,eS]=(0,n.useState)(!1),[eE,eP]=(0,n.useState)(""),[eT,eO]=(0,n.useState)({}),[eM,ez]=(0,n.useState)(!1),[eL,eU]=(0,n.useState)(""),[eI,e_]=(0,n.useState)([]),e$=async()=>{em&&await eA(em)},eR=async e=>{ea&&(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),await e$())};(0,n.useEffect)(()=>{if(ea)return document.addEventListener("keydown",eR),()=>{document.removeEventListener("keydown",eR)}},[ea,em]);let eA=async e=>{try{await new Promise(e=>setTimeout(e,200));let s=e.getModel();if(s){var t;await (null==(t=e.getAction("editor.action.formatDocument"))?void 0:t.run());let a=s.getValue();if(a&&!a.includes("\n")&&a.length>50){let t=a.replace(/\{\s*/g,"{\n ").replace(/\}\s*/g,"\n}").replace(/;\s*/g,";\n ").replace(/,\s*/g,",\n ").replace(/\n\s*\n/g,"\n").trim();t!==a&&(s.setValue(t),setTimeout(()=>{var t;null==(t=e.getAction("editor.action.formatDocument"))||t.run()},100))}}}catch(e){console.log("自动格式化失败:",e)}},eD=()=>{t.push("/initialization")},eF=async()=>{eg(!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}));eh(e)}else console.error("获取项目列表失败:",t.error),eh([])}catch(e){console.error("获取项目列表失败:",e),eh([])}finally{eg(!1)}},eG=async()=>{if(s){_(!0);try{let e=await fetch("/api/open-project",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s})}),t=await e.json();t.success||(console.error("打开项目失败:",t.error),alert("打开项目失败: ".concat(t.error)))}catch(e){console.error("打开项目失败:",e),alert("打开项目失败: 网络错误")}finally{_(!1)}}};(0,n.useEffect)(()=>{if(!s){g("项目名称缺失"),h(!1);return}(async()=>{try{let e=await fetch("/api/project-config?project=".concat(encodeURIComponent(s))),t=await e.json();if(t.success){i(t.data);let e={};Object.keys(t.data.envs).forEach(s=>{let a=t.data.envs[s],n="";n=a.proxyEnv[a.currentProxy]?a.proxyEnv[a.currentProxy]:a.currentProxy;let r="";r=a.proxyEnv[a.currentProxy]?a.currentProxy:"custom",e[s]={selectedProxy:n||"",selectedOption:r}}),w(e),E({mockingIntercept:t.data.mockingIntercept||!1,mockOpen:t.data.mockOpen||!1})}else g(t.error)}catch(e){g("获取项目配置失败"),console.error("获取项目配置失败:",e)}finally{h(!1)}})()},[s]),(0,n.useEffect)(()=>{if(c&&s){let e=Object.keys(c.envs),t=new URLSearchParams(window.location.search).get("tab"),s="";(s=Q&&("mock"===Q||e.includes(Q))?Q:t&&("mock"===t||e.includes(t))?t:e.length>0?e[0]:"mock")!==Q&&(ee(s),"mock"===s&&e2())}},[c,s]),(0,n.useEffect)(()=>{eF()},[]);let eJ=(0,n.useCallback)(async()=>{if(!s||!c)return;let e={};for(let t of Object.keys(c.envs))e["".concat(t)]={loading:!0,running:!1};eO(e);let t=Object.keys(c.envs).map(async e=>{try{let t=await fetch("/api/process/status?projectName=".concat(encodeURIComponent(s),"&envName=").concat(encodeURIComponent(e))),a=await t.json();if(a.success&&a.data)return{envName:e,status:a.data}}catch(t){console.error("获取环境 ".concat(e," 状态失败:"),t)}return{envName:e,status:{running:!1}}}),a=await Promise.all(t),n={};a.forEach(e=>{let{envName:t,status:s}=e;n[t]={running:s.running||!1,pid:s.pid,startTime:s.startTime,port:s.port,loading:!1}}),eO(n)},[s,c]),eV=async e=>{if(!s||!c)return;let t=c.envs[e];if(!t.startCommand)return void alert("该环境未配置启动命令");eO(t=>({...t,[e]:{...t[e],loading:!0}}));try{let a=await fetch("/api/process/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s,envName:e,startCommand:t.startCommand})}),n=await a.json();if(n.success)eO(t=>({...t,[e]:{running:!0,pid:n.data.pid,startTime:n.data.startTime,port:n.data.port,loading:!1}}));else throw Error(n.error||"启动失败")}catch(t){console.error("启动进程失败:",t),alert("启动失败: ".concat(t instanceof Error?t.message:"未知错误")),eO(t=>({...t,[e]:{...t[e],loading:!1}}))}},eH=async e=>{if(s){eO(t=>({...t,[e]:{...t[e],loading:!0}}));try{let t=await fetch("/api/process/start?projectName=".concat(encodeURIComponent(s),"&envName=").concat(encodeURIComponent(e)),{method:"DELETE"}),a=await t.json();if(a.success)eO(t=>({...t,[e]:{running:!1,loading:!1}}));else throw Error(a.error||"停止失败")}catch(t){console.error("停止进程失败:",t),alert("停止失败: ".concat(t instanceof Error?t.message:"未知错误")),eO(t=>({...t,[e]:{...t[e],loading:!1}}))}}},[eK,eZ]=(0,n.useState)(null),eB=e=>{if(!s)return;eK&&eK.close(),e_([]);let t=new EventSource("/api/process/logs/stream?projectName=".concat(encodeURIComponent(s),"&envName=").concat(encodeURIComponent(e)));t.onmessage=e=>{try{let t=JSON.parse(e.data);"log"===t.type?e_(e=>{let s=[...e,t.content];return s.length>1e3?s.slice(-1e3):s}):"init"===t.type?e_([t.message]):"end"===t.type&&e_(e=>[...e,"[系统] ".concat(t.message)])}catch(e){console.error("解析日志数据失败:",e)}},t.onerror=e=>{console.error("日志流错误:",e),t.close(),eZ(null)},eZ(t)},eY=()=>{eK&&(eK.close(),eZ(null))},eq=e=>{eU(e),ez(!0),eB(e)},eW=()=>{ez(!1),e_([]),eU(""),eY()};(0,n.useEffect)(()=>{if(c&&s){eJ();let e=setInterval(()=>{eJ()},5e3);return()=>clearInterval(e)}},[c,s,eJ]);let eX=(e,t)=>{if(!c)return;let s=c.envs[e],a="";if("custom"===t){var n,r;a=(null==(n=y[e])?void 0:n.selectedOption)==="custom"?(null==(r=y[e])?void 0:r.selectedProxy)||"":s.proxyEnv.custom||""}else a=s.proxyEnv[t]||"";w(s=>({...s,[e]:{...s[e],selectedProxy:a,selectedOption:t,saveMessage:""}}))},eQ=(e,t)=>{w(s=>({...s,[e]:{...s[e],selectedProxy:t,saveMessage:""}}))},e0=async e=>{E(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:s,projectConfig:{mockingIntercept:e,mockOpen:C.mockOpen}})}),a=await t.json();if(a.success)i(t=>t?{...t,mockingIntercept:e}:t),E(e=>({...e,saving:!1,saveMessage:"Mock拦截配置已保存"})),setTimeout(()=>{E(e=>({...e,saveMessage:""}))},2e3);else throw Error(a.error||"保存失败")}catch(t){console.error("保存Mock拦截配置失败:",t),E(s=>({...s,mockingIntercept:!e,saving:!1,saveMessage:"保存失败: ".concat(t instanceof Error?t.message:"未知错误")})),setTimeout(()=>{E(e=>({...e,saveMessage:""}))},3e3)}},e1=async e=>{E(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:s,projectConfig:{mockingIntercept:C.mockingIntercept,mockOpen:e}})}),a=await t.json();if(a.success)i(t=>t?{...t,mockOpen:e}:t),E(e=>({...e,saving:!1,saveMessage:"Mock开启配置已保存"})),setTimeout(()=>{E(e=>({...e,saveMessage:""}))},2e3);else throw Error(a.error||"保存失败")}catch(t){console.error("保存Mock开启配置失败:",t),E(s=>({...s,mockOpen:!e,saving:!1,saveMessage:"保存失败: ".concat(t instanceof Error?t.message:"未知错误")})),setTimeout(()=>{E(e=>({...e,saveMessage:""}))},3e3)}},e5=async e=>{var t,a;if(!c||!s)return;let n=null==(a=y[e])||null==(t=a.selectedProxy)?void 0:t.trim();if(!n)return void w(t=>({...t,[e]:{...t[e],saveMessage:"请先选择或填写代理地址"}}));let r=c.envs[e],l=!Object.values(r.proxyEnv).includes(n);w(t=>({...t,[e]:{...t[e],saving:!0,saveMessage:""}}));try{let t={projectName:s,envName:e,newProxy:l?"custom":Object.keys(r.proxyEnv).find(e=>r.proxyEnv[e]===n)||""};l&&(t.customProxyUrl=n);let a=await fetch("/api/project-config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),c=await a.json();c.success?(i(t=>{if(!t)return t;let s={...t.envs};return s[e]={...s[e],currentProxy:c.data.currentProxy},"custom"===c.data.currentProxy&&(s[e].proxyEnv={...s[e].proxyEnv,custom:n}),{...t,envs:s}}),w(t=>({...t,[e]:{...t[e],saving:!1,saveMessage:"保存成功"}}))):w(t=>({...t,[e]:{...t[e],saving:!1,saveMessage:"保存失败: ".concat(c.error)}}))}catch(t){console.error("保存配置失败:",t),w(t=>({...t,[e]:{...t[e],saving:!1,saveMessage:"保存失败: 网络错误"}}))}},e2=async()=>{if(s){B(!0);try{let e=await fetch("/api/mock-file?project=".concat(encodeURIComponent(s))),t=await e.json();t.success?A(t.data):console.error("获取Mock数据失败:",t.error)}catch(e){console.error("获取Mock数据失败:",e)}finally{B(!1)}}},e4=async(e,t,a)=>{if(s)try{let n=await fetch("/api/mock-setting",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s,apiName:e,method:t,currentSite:a})}),r=await n.json();r.success?A(s=>s?{...s,mockFiles:s.mockFiles.map(s=>s.apiName===e?{...s,methods:s.methods.map(e=>e.method===t?{...e,setting:{...e.setting,currentSite:a}}:e)}:s)}:s):(console.error("更新场景失败:",r.error),alert("更新场景失败: ".concat(r.error)))}catch(e){console.error("更新场景失败:",e),alert("更新场景失败: 网络错误")}},e6=async(e,t,a)=>{if(s){el(!0),ed(!0);try{let n=await fetch("/api/mock-file-content?project=".concat(encodeURIComponent(s),"&apiName=").concat(encodeURIComponent(e),"&method=").concat(encodeURIComponent(t),"&siteName=").concat(encodeURIComponent(a))),r=await n.json();r.success?(es({projectName:s,apiName:e,method:t,siteName:a,content:r.data.content}),en(!0)):(console.error("获取文件内容失败:",r.error),alert("获取文件内容失败: ".concat(r.error)))}catch(e){console.error("获取文件内容失败:",e),alert("获取文件内容失败: 网络错误")}finally{el(!1)}}},e3=async()=>{if(et){ei(!0);try{let e=await fetch("/api/mock-file-content",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(et)}),t=await e.json();t.success?(en(!1),es(null)):(console.error("保存文件失败:",t.error),alert("保存文件失败: ".concat(t.error)))}catch(e){console.error("保存文件失败:",e),alert("保存文件失败: 网络错误")}finally{ei(!1)}}},e8=()=>{en(!1),es(null),ed(!0)},e7=(e,t)=>{"siteName"===e&&ef||ey(s=>({...s,[e]:t}))},e9=(e,t)=>{let s=e.toUpperCase(),a=t.replace(/\//g,"_").replace(/^_/,"");switch(s){case"GET":return'module.exports = {\n "code": 200,\n "message": "获取'.concat(a,'成功",\n "data": {\n "id": 1,\n "name": "示例数据",\n "status": "active",\n "createTime": "2024-01-01 12:00:00"\n }\n}');case"POST":return'module.exports = {\n "code": 200,\n "message": "创建'.concat(a,'成功",\n "data": {\n "id": 1,\n "result": "success"\n }\n}');case"PUT":return'module.exports = {\n "code": 200,\n "message": "更新'.concat(a,'成功",\n "data": {\n "result": "success"\n }\n}');case"DELETE":return'module.exports = {\n "code": 200,\n "message": "删除'.concat(a,'成功",\n "data": {\n "result": "success"\n }\n}');default:return'module.exports = {\n "code": 200,\n "message": "操作成功",\n "data": {}\n}'}},te=(e,t,s)=>{if(!R)return!1;let a=e.replace(/\//g,"_").replace(/^_/,""),n=R.mockFiles.find(e=>e.apiName===a);if(!n)return!1;let r=n.methods.find(e=>e.method.toLowerCase()===t.toLowerCase());return!!r&&!!r.files.find(e=>e.siteName===s)},tt=async()=>{if(!eN.apiPath.trim())return void alert("请输入接口地址");if(te(eN.apiPath,eN.method,eN.siteName))return void alert("接口 ".concat(eN.apiPath," [").concat(eN.method.toUpperCase(),'] 的场景 "').concat(eN.siteName,'" 已存在,不能重复创建'));eS(!0);try{let e=eN.apiPath.replace(/\//g,"_").replace(/^_/,""),t=e9(eN.method,eN.apiPath),a=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s,apiName:e,method:eN.method.toLowerCase(),siteName:eN.siteName,content:t})}),n=await a.json();if(n.success)eN.mockOpen&&await tr(e,eN.method.toLowerCase(),eN.siteName,!0),ey({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),ej(!1),await e2(),alert("Mock文件创建成功");else throw Error(n.error||"创建失败")}catch(e){console.error("创建Mock文件失败:",e),alert("创建Mock文件失败: ".concat(e instanceof Error?e.message:"未知错误"))}finally{eS(!1)}},ts=(e,t,s)=>{console.log("新增场景点击:",{apiName:e,method:t,apiPath:s}),ek({apiName:e,method:t,apiPath:s});let a={apiPath:s,method:t.toUpperCase(),siteName:"",mockOpen:!0};console.log("设置表单数据:",a),ey(a),eb(!0)},ta=(e,t,s)=>{if(!R)return!1;let a=R.mockFiles.find(t=>t.apiName===e);if(!a)return!1;let n=a.methods.find(e=>e.method.toLowerCase()===t.toLowerCase());return!!n&&!!n.files.find(e=>e.siteName===s)},tn=async()=>{if(!ew||!eN.siteName.trim())return void alert("请输入场景名称");if(ta(ew.apiName,ew.method,eN.siteName))return void alert("接口 ".concat(ew.apiPath," [").concat(ew.method.toUpperCase(),'] 的场景 "').concat(eN.siteName,'" 已存在'));eS(!0);try{let e=e9(ew.method,ew.apiPath),t=await fetch("/api/mock-file",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:s,apiName:ew.apiName,method:ew.method.toLowerCase(),siteName:eN.siteName,content:e})}),a=await t.json();if(a.success)eN.mockOpen&&await tr(ew.apiName,ew.method,eN.siteName,!0),ey({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0}),eb(!1),ek(null),await e2(),alert("场景创建成功");else throw Error(a.error||"创建失败")}catch(e){console.error("创建场景失败:",e),alert("创建场景失败: ".concat(e instanceof Error?e.message:"未知错误"))}finally{eS(!1)}},tr=async(e,t,s,a)=>{if(c)try{let n=await fetch("/api/mock-open-status",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:c.projectName,apiName:e,method:t,siteName:s,isOpen:a})}),r=await n.json();r.success?await e2():console.error("更新Mock开启状态失败:",r.error)}catch(e){console.error("更新Mock开启状态失败:",e)}},tl=e=>{eP(e),W(1)};if(x)return(0,a.jsx)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("p",{children:"加载中..."})})});if(p||!c)return(0,a.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold",children:"项目配置"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[s&&(0,a.jsx)(l.$,{variant:"default",onClick:eG,disabled:I,children:I?"打开中...":"在 Cursor 中打开"}),(0,a.jsx)(l.$,{variant:"outline",onClick:eD,children:"返回初始化页面"})]})]}),(0,a.jsx)("div",{className:"text-center text-red-500 py-8",children:(0,a.jsx)("p",{children:p||"未找到项目配置"})})]});let tc=Object.keys(c.envs);return(0,a.jsxs)("main",{className:"container mx-auto p-4 sm:p-6 md:p-8",children:[(0,a.jsxs)("div",{className:"flex justify-between items-center mb-6",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsxs)("h1",{className:"text-2xl font-bold",children:[c.projectName," - 项目配置"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(S,{className:"text-sm font-medium text-gray-600",children:"切换项目:"}),(0,a.jsxs)(f,{value:s||"",onValueChange:a=>{if(a===s)return;let n=e.get("tab"),r="/configuration?project=".concat(encodeURIComponent(a)).concat(n?"&tab=".concat(n):"");t.push(r)},disabled:ep,children:[(0,a.jsx)(v,{className:"w-40",children:(0,a.jsx)(j,{placeholder:ep?"加载中...":"选择项目"})}),(0,a.jsx)(b,{children:ex.map(e=>(0,a.jsx)(N,{value:e.name,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)("span",{className:"w-2 h-2 rounded-full ".concat("existing"===e.status?"bg-green-500":"failed"===e.status?"bg-red-500":"bg-yellow-500")}),(0,a.jsx)("span",{children:e.name})]})},e.name))})]})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.$,{variant:"default",onClick:eG,disabled:I,children:I?"打开中...":"在 Cursor 中打开"}),(0,a.jsx)(l.$,{variant:"outline",onClick:eD,children:"返回初始化页面"})]})]}),tc.length>0?(0,a.jsxs)(o,{value:Q||tc[0],onValueChange:e=>{ee(e),"mock"===e&&e2()},className:"w-full",children:[(0,a.jsxs)(d,{className:"grid w-full",style:{gridTemplateColumns:"repeat(".concat(tc.length+1,", 1fr)")},children:[tc.map(e=>{var t;return(0,a.jsx)(m,{value:e,className:"capitalize relative",children:(0,a.jsxs)("span",{className:"flex items-center gap-2",children:[e,(null==(t=eT[e])?void 0:t.running)&&(0,a.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse",title:"运行中"})]})},e)}),(0,a.jsx)(m,{value:"mock",className:"capitalize",children:"Mock配置"})]}),tc.map(e=>{var t,s,n,r,i,o,d,m,x,h,p,g,w,C;let E=c.envs[e],P=Object.entries(E.proxyEnv),T=(null==(t=y[e])?void 0:t.selectedProxy)||"",O=(null==(s=y[e])?void 0:s.selectedOption)||"",M=E.currentProxy,z=E.proxyEnv[M]||M,L=E.proxyEnv[M]?M:"custom";return(0,a.jsxs)(u,{value:e,className:"space-y-6",children:[(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"开发服务器控制"}),(0,a.jsx)("div",{className:"flex items-center gap-4",children:(null==(n=eT[e])?void 0:n.running)?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,a.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"运行中 (PID: ",null==(r=eT[e])?void 0:r.pid,")"]}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>eq(e),children:"查看日志"}),(0,a.jsx)(l.$,{variant:"destructive",size:"sm",onClick:()=>eH(e),disabled:null==(i=eT[e])?void 0:i.loading,children:(null==(o=eT[e])?void 0:o.loading)?"处理中...":"停止"})]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("span",{className:"flex items-center gap-2 text-sm text-gray-500",children:[(0,a.jsx)("span",{className:"w-2 h-2 bg-gray-400 rounded-full"}),"未运行"]}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>eq(e),children:"查看日志"}),(0,a.jsx)(l.$,{variant:"default",size:"sm",onClick:()=>eV(e),disabled:(null==(d=eT[e])?void 0:d.loading)||!E.startCommand,children:(null==(m=eT[e])?void 0:m.loading)?"处理中...":"启动"})]})})]}),E.startCommand?(0,a.jsxs)("div",{className:"text-sm text-gray-600",children:[(0,a.jsx)("span",{className:"font-medium",children:"启动命令:"})," ",(0,a.jsx)("code",{className:"px-2 py-1 bg-gray-200 rounded",children:E.startCommand})]}):(0,a.jsx)("div",{className:"text-sm text-yellow-600",children:"⚠️ 该环境未配置启动命令"}),E.host&&(0,a.jsxs)("div",{className:"text-sm text-gray-600 mt-2",children:[(0,a.jsx)("span",{className:"font-medium",children:"访问地址:"}),(null==(x=eT[e])?void 0:x.running)?(0,a.jsx)("a",{href:E.host,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-blue-600 hover:underline",children:E.host}):(0,a.jsx)("span",{className:"ml-2",children:E.host})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,a.jsxs)("h3",{className:"text-lg font-semibold mb-4",children:[e," 环境配置"]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(S,{className:"block text-sm font-medium mb-2",children:"接口代理环境切换"}),(0,a.jsxs)(f,{value:O,onValueChange:t=>eX(e,t),children:[(0,a.jsx)(v,{className:"w-full",children:(0,a.jsx)(j,{placeholder:"选择代理环境"})}),(0,a.jsx)(b,{children:P.map(e=>{let[t,s]=e;return(0,a.jsxs)(N,{value:t,children:[t,"(",s,")"]},t)})})]})]}),z&&(0,a.jsxs)("div",{className:"p-3 bg-blue-50 rounded-md",children:[(0,a.jsxs)("p",{className:"text-sm text-blue-700",children:["当前项目接口已代理至:",L," 环境"]}),(0,a.jsxs)("p",{className:"text-sm text-blue-600",children:["代理地址为:",z]})]}),"custom"===O&&(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(S,{className:"block text-sm font-medium",children:"自定义代理地址"}),(0,a.jsx)(k,{type:"url",placeholder:"请输入自定义代理地址 (如: http://localhost:52741)",value:T,onChange:t=>eQ(e,t.target.value),className:"w-full"}),(0,a.jsx)("p",{className:"text-xs text-gray-500",children:"请输入完整的代理地址,包括协议 (http:// 或 https://)"})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)(l.$,{onClick:()=>e5(e),disabled:null==(h=y[e])?void 0:h.saving,className:"w-full sm:w-auto",children:(null==(p=y[e])?void 0:p.saving)?"保存中...":"保存配置"}),(null==(g=y[e])?void 0:g.saveMessage)&&(0,a.jsx)("span",{className:"text-sm ml-3 ".concat((null==(w=y[e])?void 0:w.saveMessage)==="保存成功"?"text-green-600":"text-red-600"),children:null==(C=y[e])?void 0:C.saveMessage})]})]})]}),(0,a.jsx)(K,{currentProjectName:c.projectName,currentEnvName:e})]})]},e)}),(0,a.jsx)(u,{value:"mock",className:"space-y-6",children:(0,a.jsxs)("div",{className:"p-6 bg-gray-50 rounded-lg",children:[(0,a.jsx)("h3",{className:"text-lg font-semibold mb-4",children:"Mock配置"}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 mb-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(S,{className:"text-sm font-medium",children:"Mock拦截"}),(0,a.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock拦截功能"})]}),(0,a.jsx)(P,{checked:C.mockingIntercept,onCheckedChange:e0})]}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(S,{className:"text-sm font-medium",children:"Mock开启"}),(0,a.jsx)("p",{className:"text-xs text-gray-500",children:"启用或禁用Mock功能"})]}),(0,a.jsx)(P,{checked:C.mockOpen,onCheckedChange:e1})]})]}),C.saveMessage&&(0,a.jsx)("div",{className:"mb-6",children:(0,a.jsx)("span",{className:"text-sm ".concat(C.saveMessage.includes("已保存")?"text-green-600":"text-red-600"),children:C.saveMessage})}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("h4",{className:"text-md font-medium",children:"Mock接口列表"}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(l.$,{onClick:()=>ej(!0),variant:"default",size:"sm",children:"新建"}),(0,a.jsx)(l.$,{onClick:e2,disabled:Z,variant:"outline",size:"sm",children:Z?"加载中...":"刷新"})]})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsxs)("div",{className:"relative flex-1 max-w-md",children:[(0,a.jsx)(k,{placeholder:"搜索接口地址...",value:eE,onChange:e=>tl(e.target.value),className:"pr-8"}),eE&&(0,a.jsx)(l.$,{variant:"ghost",size:"sm",onClick:()=>{eP(""),W(1)},className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-6 w-6 p-0 hover:bg-gray-100",children:"\xd7"})]}),eE&&(0,a.jsxs)("span",{className:"text-sm text-gray-500",children:['搜索关键词: "',eE,'"']})]}),Z?(0,a.jsx)("div",{className:"text-center py-8",children:(0,a.jsx)("p",{className:"text-gray-500",children:"加载Mock数据中..."})}):R&&R.mockFiles.length>0?(()=>{let e=[];R.mockFiles.forEach(t=>{t.methods.forEach(s=>{var a,n;let r=t.apiName.replace(/_/g,"/"),l=s.files.map(e=>e.siteName),c=(null==(a=s.setting)?void 0:a.currentSite)||l[0]||"",i=(null==(n=s.setting)?void 0:n.open)||[],o=i.includes(c);e.push({apiPath:r,method:s.method.toUpperCase(),currentSite:c,availableSites:l,apiName:t.apiName,isOpen:o,openSites:i})})});let t=eE.trim()?e.filter(e=>e.apiPath.toLowerCase().includes(eE.toLowerCase())):e,s=t.length,n=Math.ceil(s/X),r=(q-1)*X,c=r+X,i=t.slice(r,c);return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)(T,{children:[(0,a.jsx)(O,{children:(0,a.jsxs)(z,{children:[(0,a.jsx)(L,{children:"接口地址"}),(0,a.jsx)(L,{children:"请求方法"}),(0,a.jsx)(L,{children:"当前场景"}),(0,a.jsx)(L,{children:"开启mock"}),(0,a.jsx)(L,{children:"操作"})]})}),(0,a.jsx)(M,{children:i.map((e,t)=>(0,a.jsxs)(z,{children:[(0,a.jsx)(U,{className:"font-medium",children:e.apiPath}),(0,a.jsx)(U,{children:(0,a.jsx)("span",{className:"px-2 py-1 rounded text-xs font-medium ".concat("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,a.jsx)(U,{children:(0,a.jsxs)(f,{value:e.currentSite,onValueChange:t=>e4(e.apiName,e.method.toLowerCase(),t),children:[(0,a.jsx)(v,{className:"w-32",children:(0,a.jsx)(j,{})}),(0,a.jsx)(b,{children:e.availableSites.map(e=>(0,a.jsx)(N,{value:e,children:e},e))})]})}),(0,a.jsx)(U,{children:(0,a.jsx)(P,{checked:e.isOpen,onCheckedChange:t=>tr(e.apiName,e.method.toLowerCase(),e.currentSite,t)})}),(0,a.jsx)(U,{children:(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>e6(e.apiName,e.method.toLowerCase(),e.currentSite),disabled:er,children:er?"加载中...":"编辑"}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>ts(e.apiName,e.method.toLowerCase(),e.apiPath),disabled:eC,children:"新增场景"})]})})]},"".concat(e.apiName,"-").concat(e.method,"-").concat(t)))})]}),n>1&&(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{className:"text-sm text-gray-500",children:["显示 ",r+1,"-",Math.min(c,s)," 条,共 ",s," 条"]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>W(e=>Math.max(1,e-1)),disabled:1===q,children:"上一页"}),(0,a.jsxs)("span",{className:"text-sm",children:[q," / ",n]}),(0,a.jsx)(l.$,{variant:"outline",size:"sm",onClick:()=>W(e=>Math.min(n,e+1)),disabled:q===n,children:"下一页"})]})]})]})})():(0,a.jsxs)("div",{className:"text-center py-8",children:[(0,a.jsx)("p",{className:"text-gray-500",children:"暂无Mock接口数据"}),(0,a.jsx)("p",{className:"text-xs text-gray-400 mt-1",children:"请先创建Mock文件"})]})]})]})})]}):(0,a.jsx)("div",{className:"text-center text-gray-500 py-8",children:(0,a.jsx)("p",{children:"该项目没有配置环境信息"})}),(0,a.jsx)($,{open:ea||ef||ev,onOpenChange:e=>{e||(en(!1),ej(!1),eb(!1),ek(null))},children:(0,a.jsxs)(D,{className:"w-screen h-screen max-w-none max-h-none m-0 rounded-none overflow-hidden flex flex-col",children:[(0,a.jsxs)(F,{className:"flex-shrink-0 border-b pb-4",children:[(0,a.jsx)(J,{children:ef?"新建Mock文件":ev?"新增场景":"编辑Mock文件"}),(0,a.jsx)(V,{children:ef?"创建一个新的Mock接口文件":ev&&ew?(0,a.jsxs)(a.Fragment,{children:["为接口 ",ew.apiPath," [",ew.method.toUpperCase(),"] 新增场景"]}):et?(0,a.jsxs)(a.Fragment,{children:["编辑 ",et.apiName.replace(/_/g,"/")," - ",et.method.toUpperCase()," - ",et.siteName,".js"]}):null})]}),(ef||ev)&&(0,a.jsxs)("div",{className:"flex-shrink-0 border-b pb-4",children:[(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(S,{htmlFor:"apiPath",className:"text-sm font-medium",children:"接口地址"}),ev?(0,a.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:eN.apiPath}):(0,a.jsx)(k,{id:"apiPath",placeholder:"/api/user/info",value:eN.apiPath,onChange:e=>e7("apiPath",e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(S,{htmlFor:"method",className:"text-sm font-medium",children:"请求方法"}),ev?(0,a.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:eN.method}):(0,a.jsxs)(f,{value:eN.method,onValueChange:e=>e7("method",e),children:[(0,a.jsx)(v,{children:(0,a.jsx)(j,{})}),(0,a.jsxs)(b,{children:[(0,a.jsx)(N,{value:"GET",children:"GET"}),(0,a.jsx)(N,{value:"POST",children:"POST"}),(0,a.jsx)(N,{value:"PUT",children:"PUT"}),(0,a.jsx)(N,{value:"DELETE",children:"DELETE"}),(0,a.jsx)(N,{value:"PATCH",children:"PATCH"})]})]})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(S,{htmlFor:"siteName",className:"text-sm font-medium",children:"场景名称"}),ef?(0,a.jsx)("div",{className:"px-3 py-2 bg-gray-50 border border-gray-200 rounded-md text-sm text-gray-600",children:"默认场景"}):(0,a.jsx)(k,{id:"siteName",placeholder:"请输入场景名称",value:eN.siteName,onChange:e=>e7("siteName",e.target.value)})]}),(0,a.jsxs)("div",{className:"space-y-2",children:[(0,a.jsx)(S,{htmlFor:"mockOpen",className:"text-sm font-medium",children:"开启Mock"}),(0,a.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,a.jsx)(P,{id:"mockOpen",checked:eN.mockOpen,onCheckedChange:e=>e7("mockOpen",e)}),(0,a.jsx)("span",{className:"text-sm text-gray-600",children:eN.mockOpen?"开启":"关闭"})]})]})]}),ef&&eN.apiPath.trim()&&eN.siteName.trim()&&te(eN.apiPath,eN.method,eN.siteName)&&(0,a.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsxs)("span",{className:"text-red-600 text-sm",children:["⚠️ 接口 ",eN.apiPath," [",eN.method.toUpperCase(),'] 的场景 "',eN.siteName,'" 已存在']})})}),ev&&ew&&eN.siteName.trim()&&ta(ew.apiName,ew.method,eN.siteName)&&(0,a.jsx)("div",{className:"mt-4 p-3 bg-red-50 border border-red-200 rounded-md",children:(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsxs)("span",{className:"text-red-600 text-sm",children:['⚠️ 场景 "',eN.siteName,'" 已存在']})})})]}),(0,a.jsx)("div",{className:"flex-1 flex flex-col space-y-4 py-4",children:(0,a.jsxs)("div",{className:"flex-1 flex flex-col",children:[(0,a.jsx)(S,{className:"text-sm font-medium mb-2",children:"文件内容"}),(0,a.jsxs)("div",{className:"flex-1 border rounded-md overflow-hidden relative",children:[eo&&(0,a.jsx)("div",{className:"absolute inset-0 bg-gray-50 flex items-center justify-center z-10",children:(0,a.jsx)("p",{className:"text-gray-500",children:"编辑器加载中..."})}),(0,a.jsx)(H.Ay,{height:"100%",defaultLanguage:"javascript",value:ef||ev?e9(eN.method,eN.apiPath):(null==et?void 0:et.content)||"",onChange:e=>{ef||ev||es(t=>t?{...t,content:e||""}:null)},onMount:async e=>{console.log("编辑器挂载,模式:",{isCreateMode:ef,isAddSceneMode:ev,createFormData:eN}),eu(e),ed(!1),setTimeout(()=>eA(e),500)},loading:(0,a.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,a.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:ef&&!eN.apiPath.trim()||ev&&!eN.apiPath.trim()}},ef?"create":ev?"addscene":"edit")]})]})}),(0,a.jsxs)(G,{className:"flex justify-between flex-shrink-0 border-t pt-4",children:[(0,a.jsx)(l.$,{variant:"secondary",onClick:e$,disabled:!em||eo,children:"格式化代码"}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.$,{variant:"outline",onClick:()=>{ef?(ej(!1),ey({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):ev?(eb(!1),ek(null),ey({apiPath:"",method:"GET",siteName:"默认场景",mockOpen:!0})):e8()},children:"取消"}),ef?(0,a.jsx)(l.$,{onClick:tt,disabled:eC||!eN.apiPath.trim()||!eN.siteName.trim()||te(eN.apiPath,eN.method,eN.siteName),children:eC?"创建中...":"创建"}):ev?(0,a.jsx)(l.$,{onClick:tn,disabled:eC||!eN.siteName.trim()||!!ew&&ta(ew.apiName,ew.method,eN.siteName),children:eC?"创建中...":"创建"}):(0,a.jsx)(l.$,{onClick:e3,disabled:ec,children:ec?"保存中...":"保存"})]})]})]})}),(0,a.jsx)($,{open:eM,onOpenChange:e=>{e||eW()},children:(0,a.jsxs)(D,{className:"max-w-5xl h-[85vh] max-h-[85vh] flex flex-col p-0",children:[(0,a.jsxs)(F,{className:"px-6 pt-6 pb-4",children:[(0,a.jsxs)(J,{className:"flex items-center justify-between",children:[(0,a.jsxs)("span",{children:["进程日志 - ",s," - ",eL]}),(0,a.jsx)("span",{className:"flex items-center gap-2 text-sm font-normal",children:eK&&(0,a.jsxs)("span",{className:"flex items-center gap-1 text-green-600",children:[(0,a.jsx)("span",{className:"w-2 h-2 bg-green-500 rounded-full animate-pulse"}),"实时连接"]})})]}),(0,a.jsx)(V,{children:"实时显示进程输出日志"})]}),(0,a.jsx)("div",{className:"flex-1 min-h-0 bg-gray-900 mx-6 rounded-md overflow-hidden",children:(0,a.jsx)(Y,{logs:eI})}),(0,a.jsxs)(G,{className:"flex items-center justify-between px-6 pb-6 pt-4",children:[(0,a.jsxs)("div",{className:"text-sm text-gray-500",children:["共 ",eI.length," 条日志"]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(l.$,{variant:"outline",onClick:()=>{eL&&(eY(),eB(eL))},disabled:!!eK,children:"重新连接"}),(0,a.jsx)(l.$,{variant:"default",onClick:eW,children:"关闭"})]})]})]})})]})}function X(){return(0,a.jsx)(n.Suspense,{fallback:(0,a.jsx)("div",{className:"min-h-screen bg-gray-50 flex items-center justify-center",children:(0,a.jsxs)("div",{className:"text-center space-y-4",children:[(0,a.jsx)("div",{className:"animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600 mx-auto"}),(0,a.jsx)("p",{className:"text-gray-600",children:"正在加载配置页面..."})]})}),children:(0,a.jsx)(W,{})})}},7541:(e,t,s)=>{"use strict";s.d(t,{$:()=>i});var a=s(5167);s(6343);var n=s(7775),r=s(2703),l=s(6162);let c=(0,r.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function i(e){let{className:t,variant:s,size:r,asChild:i=!1,...o}=e,d=i?n.DX:"button";return(0,a.jsx)(d,{"data-slot":"button",className:(0,l.cn)(c({variant:s,size:r,className:t})),...o})}}},e=>{var t=t=>e(e.s=t);e.O(0,[167,495,619,180,358],()=>t(2190)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[23,73,123,139,172,403,404,522,540,552,568,710,752,814,863,934,974,979,986,998],{9685:()=>{}},_=>{var e=e=>_(_.s=e);_.O(0,[619,180,358],()=>e(9685)),_N_E=_.O()}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8d697b304b401681-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba015fad6dcf6784-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/569ce4b8f30dc480-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_5cfdac{font-family:Geist,Geist Fallback;font-style:normal}.__variable_5cfdac{--font-geist-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9610d9e46709d722-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/747892c23ea88013-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/93f479601ee12b01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9a8899{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_9a8899{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
|
|
2
|
+
|
|
3
|
+
/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--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-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{:host,:root{--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-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-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-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-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-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-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--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;--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{*,::backdrop,:after,:before{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}:host,html{-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]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-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;overflow:hidden}.absolute,.sr-only{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-\[50\%\]{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-span-full{grid-column:1/-1}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-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-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-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)}.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-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-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-\[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-screen{min-height:100vh}.w-2{width:calc(var(--spacing)*2)}.w-2\.5{width:calc(var(--spacing)*2.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-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-y-1\/2,.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-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-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-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}.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}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.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)))}.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.40282e+38px}.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-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.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-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)}.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-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-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\.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)}.text-center{text-align:center}.text-left{text-align:left}.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)}.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-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-800{color:var(--color-gray-800)}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.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-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-600{color:var(--color-yellow-600)}.text-yellow-800{color:var(--color-yellow-800)}.capitalize{text-transform:capitalize}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-50{opacity:.5}.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)}.shadow,.shadow-lg{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)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a)}.shadow-md,.shadow-xs{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)}.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)}.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}.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}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.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\:bg-accent:hover{background-color:var(--accent)}.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-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-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\: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-\[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-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\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.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-primary[data-state=checked]{background-color:var(--primary)}.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 (min-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\:justify-end{justify-content:flex-end}.sm\:p-6{padding:calc(var(--spacing)*6)}.sm\:text-left{text-align:left}}@media (min-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 (min-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-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)}@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\: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-primary-foreground:is(.dark *)[data-state=checked]{background-color:var(--primary-foreground)}.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-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(1turn)}}@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))}}
|