nextclaw 0.4.15 → 0.4.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -21,6 +21,7 @@ import {
21
21
  MessageBus,
22
22
  AgentLoop,
23
23
  LiteLLMProvider,
24
+ LLMProvider,
24
25
  ProviderManager,
25
26
  ChannelManager,
26
27
  SessionManager,
@@ -847,6 +848,21 @@ function unsetAtConfigPath(root, pathSegments) {
847
848
  delete record[last];
848
849
  return true;
849
850
  }
851
+ var MissingProvider = class extends LLMProvider {
852
+ constructor(defaultModel) {
853
+ super(null, null);
854
+ this.defaultModel = defaultModel;
855
+ }
856
+ setDefaultModel(model) {
857
+ this.defaultModel = model;
858
+ }
859
+ async chat() {
860
+ throw new Error("No API key configured yet. Configure provider credentials in UI and retry.");
861
+ }
862
+ getDefaultModel() {
863
+ return this.defaultModel;
864
+ }
865
+ };
850
866
  var ConfigReloader = class {
851
867
  constructor(options) {
852
868
  this.options = options;
@@ -863,6 +879,9 @@ var ConfigReloader = class {
863
879
  getChannels() {
864
880
  return this.channels;
865
881
  }
882
+ setApplyAgentRuntimeConfig(callback) {
883
+ this.options.applyAgentRuntimeConfig = callback;
884
+ }
866
885
  async applyReloadPlan(nextConfig) {
867
886
  const changedPaths = diffConfigPaths(this.currentConfig, nextConfig);
868
887
  if (!changedPaths.length) {
@@ -872,9 +891,15 @@ var ConfigReloader = class {
872
891
  const plan = buildReloadPlan(changedPaths);
873
892
  if (plan.restartChannels) {
874
893
  await this.reloadChannels(nextConfig);
894
+ console.log("Config reload: channels restarted.");
875
895
  }
876
896
  if (plan.reloadProviders) {
877
897
  await this.reloadProvider(nextConfig);
898
+ console.log("Config reload: provider settings applied.");
899
+ }
900
+ if (plan.reloadAgent) {
901
+ this.options.applyAgentRuntimeConfig?.(nextConfig);
902
+ console.log("Config reload: agent defaults applied.");
878
903
  }
879
904
  if (plan.restartRequired.length > 0) {
880
905
  this.options.onRestartRequired(plan.restartRequired);
@@ -1986,7 +2011,7 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
1986
2011
  this.logPluginDiagnostics(pluginRegistry);
1987
2012
  const bus = new MessageBus();
1988
2013
  const provider = options.allowMissingProvider === true ? this.makeProvider(config2, { allowMissing: true }) : this.makeProvider(config2);
1989
- const providerManager = provider ? new ProviderManager(provider) : null;
2014
+ const providerManager = new ProviderManager(provider ?? this.makeMissingProvider(config2));
1990
2015
  const sessionManager = new SessionManager(workspace);
1991
2016
  const cronStorePath = join3(getDataDir2(), "cron", "jobs.json");
1992
2017
  const cron2 = new CronService(cronStorePath);
@@ -1994,11 +2019,7 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
1994
2019
  const uiConfig = resolveUiConfig(config2, options.uiOverrides);
1995
2020
  const uiStaticDir = options.uiStaticDir === void 0 ? resolveUiStaticDir() : options.uiStaticDir;
1996
2021
  if (!provider) {
1997
- this.startUiIfEnabled(uiConfig, uiStaticDir);
1998
- console.log("Warning: No API key configured. UI server only.");
1999
- await new Promise(() => {
2000
- });
2001
- return;
2022
+ console.warn("Warning: No API key configured. The gateway is running, but agent replies are disabled until provider config is set.");
2002
2023
  }
2003
2024
  const channels2 = new ChannelManager(config2, bus, sessionManager, extensionRegistry.channels);
2004
2025
  const reloader = new ConfigReloader({
@@ -2007,7 +2028,7 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2007
2028
  bus,
2008
2029
  sessionManager,
2009
2030
  providerManager,
2010
- makeProvider: (nextConfig) => this.makeProvider(nextConfig, { allowMissing: true }),
2031
+ makeProvider: (nextConfig) => this.makeProvider(nextConfig, { allowMissing: true }) ?? this.makeMissingProvider(nextConfig),
2011
2032
  loadConfig,
2012
2033
  getExtensionChannels: () => extensionRegistry.channels,
2013
2034
  onRestartRequired: (paths) => {
@@ -2023,7 +2044,7 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2023
2044
  });
2024
2045
  const agent = new AgentLoop({
2025
2046
  bus,
2026
- providerManager: providerManager ?? new ProviderManager(provider),
2047
+ providerManager,
2027
2048
  workspace,
2028
2049
  model: config2.agents.defaults.model,
2029
2050
  maxIterations: config2.agents.defaults.maxToolIterations,
@@ -2043,6 +2064,7 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2043
2064
  accountId
2044
2065
  })
2045
2066
  });
2067
+ reloader.setApplyAgentRuntimeConfig((nextConfig) => agent.applyRuntimeConfig(nextConfig));
2046
2068
  const pluginChannelBindings = getPluginChannelBindings(pluginRegistry);
2047
2069
  setPluginRuntimeBridge({
2048
2070
  loadConfig: () => this.toPluginConfigView(loadConfig(), pluginChannelBindings),
@@ -2232,6 +2254,28 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2232
2254
  console.log(`\u2713 ${APP_NAME} is already running (PID ${existing.pid})`);
2233
2255
  console.log(`UI: ${existing.uiUrl}`);
2234
2256
  console.log(`API: ${existing.apiUrl}`);
2257
+ const parsedUi = (() => {
2258
+ try {
2259
+ const parsed = new URL(existing.uiUrl);
2260
+ const port = Number(parsed.port || 80);
2261
+ return {
2262
+ host: existing.uiHost ?? parsed.hostname,
2263
+ port: Number.isFinite(port) ? port : existing.uiPort ?? 18791
2264
+ };
2265
+ } catch {
2266
+ return {
2267
+ host: existing.uiHost ?? "127.0.0.1",
2268
+ port: existing.uiPort ?? 18791
2269
+ };
2270
+ }
2271
+ })();
2272
+ await this.printPublicUiUrls(parsedUi.host, parsedUi.port);
2273
+ if (parsedUi.host !== uiConfig.host || parsedUi.port !== uiConfig.port) {
2274
+ console.log(
2275
+ `Note: requested UI bind (${uiConfig.host}:${uiConfig.port}) differs from running service (${parsedUi.host}:${parsedUi.port}).`
2276
+ );
2277
+ console.log(`Run: ${APP_NAME} restart${uiConfig.host === "0.0.0.0" ? " --public" : ""}`);
2278
+ }
2235
2279
  console.log(`Logs: ${existing.logPath}`);
2236
2280
  console.log(`Stop: ${APP_NAME} stop`);
2237
2281
  return;
@@ -2268,6 +2312,8 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2268
2312
  startedAt: (/* @__PURE__ */ new Date()).toISOString(),
2269
2313
  uiUrl,
2270
2314
  apiUrl,
2315
+ uiHost: uiConfig.host,
2316
+ uiPort: uiConfig.port,
2271
2317
  logPath
2272
2318
  };
2273
2319
  writeServiceState(state);
@@ -2324,6 +2370,9 @@ ${this.logo} ${APP_NAME} is ready! (${source})`);
2324
2370
  const normalized = answer.trim().toLowerCase();
2325
2371
  return normalized === "y" || normalized === "yes";
2326
2372
  }
2373
+ makeMissingProvider(config2) {
2374
+ return new MissingProvider(config2.agents.defaults.model);
2375
+ }
2327
2376
  makeProvider(config2, options) {
2328
2377
  const provider = getProvider(config2);
2329
2378
  const model = config2.agents.defaults.model;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextclaw",
3
- "version": "0.4.15",
3
+ "version": "0.4.16",
4
4
  "description": "Lightweight personal AI assistant with CLI, multi-provider routing, and channel integrations.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "chokidar": "^3.6.0",
40
40
  "commander": "^12.1.0",
41
- "@nextclaw/core": "^0.4.10",
41
+ "@nextclaw/core": "^0.4.14",
42
42
  "@nextclaw/server": "^0.3.5",
43
43
  "@nextclaw/openclaw-compat": "^0.1.2"
44
44
  },
@@ -182,8 +182,8 @@ Error generating stack: `+u.message+`
182
182
  *
183
183
  * This source code is licensed under the ISC license.
184
184
  * See the LICENSE file in the root directory of this source tree.
185
- */const Xv=De("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Zv=[{id:"model",label:"Models",icon:Fv},{id:"providers",label:"Providers",icon:bh},{id:"channels",label:"Channels",icon:oc}];function Jv(){const{activeTab:r,setActiveTab:o}=Yr();return h.jsxs("aside",{className:"w-[240px] bg-transparent flex flex-col h-full py-6 px-4",children:[h.jsx("div",{className:"px-3 mb-8",children:h.jsxs("div",{className:"flex items-center gap-2 group cursor-pointer",children:[h.jsx("div",{className:"h-7 w-7 rounded-lg overflow-hidden flex items-center justify-center transition-transform duration-fast group-hover:scale-110",children:h.jsx("img",{src:"/logo.svg",alt:"NextClaw Logo",className:"h-full w-full object-contain"})}),h.jsx("h1",{className:"text-lg font-bold text-gray-900 tracking-tight",children:"nextclaw"})]})}),h.jsx("nav",{className:"flex-1",children:h.jsx("ul",{className:"space-y-1",children:Zv.map(i=>{const l=i.icon,c=r===i.id;return h.jsx("li",{children:h.jsxs("button",{onClick:()=>o(i.id),className:Ee("group w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-all duration-fast",c?"bg-primary-100 text-primary-700":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"),children:[h.jsx(l,{className:Ee("h-4 w-4 transition-transform duration-fast group-hover:scale-110",c?"text-primary":"text-gray-500")}),h.jsx("span",{className:"flex-1 text-left",children:i.label})]})},i.id)})})})]})}function e0({children:r}){return h.jsxs("div",{className:"h-screen flex bg-[hsl(40,20%,98%)] p-2",children:[h.jsx(Jv,{}),h.jsx("div",{className:"flex-1 flex flex-col min-w-0 bg-white rounded-[2rem] shadow-sm overflow-hidden border border-[hsl(40,10%,94%)]",children:h.jsx("main",{className:"flex-1 overflow-auto custom-scrollbar p-8",children:h.jsx("div",{className:"max-w-6xl mx-auto animate-fade-in h-full",children:r})})})]})}const yp=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,vp=fh,t0=(r,o)=>i=>{var l;if((o==null?void 0:o.variants)==null)return vp(r,i==null?void 0:i.class,i==null?void 0:i.className);const{variants:c,defaultVariants:d}=o,m=Object.keys(c).map(g=>{const E=i==null?void 0:i[g],P=d==null?void 0:d[g];if(E===null)return null;const T=yp(E)||yp(P);return c[g][T]}),p=i&&Object.entries(i).reduce((g,E)=>{let[P,T]=E;return T===void 0||(g[P]=T),g},{}),x=o==null||(l=o.compoundVariants)===null||l===void 0?void 0:l.reduce((g,E)=>{let{class:P,className:T,...v}=E;return Object.entries(v).every(I=>{let[b,R]=I;return Array.isArray(R)?R.includes({...d,...p}[b]):{...d,...p}[b]===R})?[...g,P,T]:g},[]);return vp(r,m,x,i==null?void 0:i.class,i==null?void 0:i.className)},n0=t0("inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-secondary hover:text-secondary-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-gray-200",ghost:"hover:bg-secondary hover:text-secondary-foreground",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-secondary text-secondary-foreground hover:bg-gray-200","primary-outline":"border-2 border-primary text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-10 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-12 rounded-xl px-6 text-base",xl:"h-14 rounded-xl px-8 text-base",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),xn=k.forwardRef(({className:r,variant:o,size:i,...l},c)=>h.jsx("button",{className:Ee(n0({variant:o,size:i,className:r})),ref:c,...l}));xn.displayName="Button";const Vu=k.forwardRef(({className:r,hover:o=!0,...i},l)=>h.jsx("div",{ref:l,className:Ee("rounded-xl border border-gray-200 bg-white text-card-foreground shadow-card transition-all duration-base",o&&"hover:shadow-card-hover hover:border-gray-300",r),...i}));Vu.displayName="Card";const r0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("flex flex-col space-y-2 p-6",r),...o}));r0.displayName="CardHeader";const o0=k.forwardRef(({className:r,...o},i)=>h.jsx("h3",{ref:i,className:Ee("text-lg font-semibold leading-tight tracking-tight text-gray-900",r),...o}));o0.displayName="CardTitle";const s0=k.forwardRef(({className:r,...o},i)=>h.jsx("p",{ref:i,className:Ee("text-sm text-gray-500 leading-relaxed",r),...o}));s0.displayName="CardDescription";const i0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("p-6 pt-0",r),...o}));i0.displayName="CardContent";const a0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("flex items-center justify-between p-6 pt-0",r),...o}));a0.displayName="CardFooter";const Sn=k.forwardRef(({className:r,type:o,...i},l)=>h.jsx("input",{type:o,className:Ee("flex h-10 w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-400 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",r),ref:l,...i}));Sn.displayName="Input";const wn=k.forwardRef(({className:r,...o},i)=>h.jsx("label",{ref:i,className:Ee("text-sm font-medium leading-none text-gray-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",r),...o}));wn.displayName="Label";function Ot({className:r,...o}){return h.jsx("div",{className:Ee("animate-pulse rounded-md bg-slate-200",r),...o})}const l0="http://127.0.0.1:18791",xa=(()=>{var r;return typeof window<"u"&&((r=window.location)!=null&&r.origin)?window.location.origin:l0})();async function vu(r,o={}){const i=`${xa}${r}`,l=await fetch(i,{headers:{"Content-Type":"application/json",...o.headers},...o}),c=await l.text();let d=null;if(c)try{d=JSON.parse(c)}catch{}if(!d){const m=c?c.slice(0,200):"";return{ok:!1,error:{code:"INVALID_RESPONSE",message:`Non-JSON response (${l.status} ${l.statusText})${m?`: ${m}`:""}`}}}return l.ok,d}const Xr={get:r=>vu(r,{method:"GET"}),put:(r,o)=>vu(r,{method:"PUT",body:JSON.stringify(o)}),post:(r,o)=>vu(r,{method:"POST",body:JSON.stringify(o)})};async function u0(){const r=await Xr.get("/api/config");if(!r.ok)throw new Error(r.error.message);return r.data}async function c0(){const r=await Xr.get("/api/config/meta");if(!r.ok)throw new Error(r.error.message);return r.data}async function d0(){const r=await Xr.get("/api/config/schema");if(!r.ok)throw new Error(r.error.message);return r.data}async function f0(r){const o=await Xr.put("/api/config/model",r);if(!o.ok)throw new Error(o.error.message);return o.data}async function p0(r,o){const i=await Xr.put(`/api/config/providers/${r}`,o);if(!i.ok)throw new Error(i.error.message);return i.data}async function h0(r,o){const i=await Xr.put(`/api/config/channels/${r}`,o);if(!i.ok)throw new Error(i.error.message);return i.data}async function m0(){const r=await Xr.post("/api/channels/feishu/probe",{});if(!r.ok)throw new Error(r.error.message);return r.data}var Ch=Jp();const Eh=Xp(Ch);var g0=r=>{switch(r){case"success":return w0;case"info":return S0;case"warning":return x0;case"error":return b0;default:return null}},y0=Array(12).fill(0),v0=({visible:r,className:o})=>K.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},K.createElement("div",{className:"sonner-spinner"},y0.map((i,l)=>K.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${l}`})))),w0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),x0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),S0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),b0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),k0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},K.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),C0=()=>{let[r,o]=K.useState(document.hidden);return K.useEffect(()=>{let i=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",i),()=>window.removeEventListener("visibilitychange",i)},[]),r},Qu=1,E0=class{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{let o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;let{message:i,...l}=r,c=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:Qu++,d=this.toasts.find(p=>p.id===c),m=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(c)&&this.dismissedToasts.delete(c),d?this.toasts=this.toasts.map(p=>p.id===c?(this.publish({...p,...r,id:c,title:i}),{...p,...r,id:c,dismissible:m,title:i}):p):this.addToast({title:i,...l,dismissible:m,id:c}),c},this.dismiss=r=>(this.dismissedToasts.add(r),r||this.toasts.forEach(o=>{this.subscribers.forEach(i=>i({id:o.id,dismiss:!0}))}),this.subscribers.forEach(o=>o({id:r,dismiss:!0})),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let i;o.loading!==void 0&&(i=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));let l=r instanceof Promise?r:r(),c=i!==void 0,d,m=l.then(async x=>{if(d=["resolve",x],K.isValidElement(x))c=!1,this.create({id:i,type:"default",message:x});else if(P0(x)&&!x.ok){c=!1;let g=typeof o.error=="function"?await o.error(`HTTP error! status: ${x.status}`):o.error,E=typeof o.description=="function"?await o.description(`HTTP error! status: ${x.status}`):o.description;this.create({id:i,type:"error",message:g,description:E})}else if(o.success!==void 0){c=!1;let g=typeof o.success=="function"?await o.success(x):o.success,E=typeof o.description=="function"?await o.description(x):o.description;this.create({id:i,type:"success",message:g,description:E})}}).catch(async x=>{if(d=["reject",x],o.error!==void 0){c=!1;let g=typeof o.error=="function"?await o.error(x):o.error,E=typeof o.description=="function"?await o.description(x):o.description;this.create({id:i,type:"error",message:g,description:E})}}).finally(()=>{var x;c&&(this.dismiss(i),i=void 0),(x=o.finally)==null||x.call(o)}),p=()=>new Promise((x,g)=>m.then(()=>d[0]==="reject"?g(d[1]):x(d[1])).catch(g));return typeof i!="string"&&typeof i!="number"?{unwrap:p}:Object.assign(i,{unwrap:p})},this.custom=(r,o)=>{let i=(o==null?void 0:o.id)||Qu++;return this.create({jsx:r(i),id:i,...o}),i},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Pt=new E0,N0=(r,o)=>{let i=(o==null?void 0:o.id)||Qu++;return Pt.addToast({title:r,...o,id:i}),i},P0=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",j0=N0,R0=()=>Pt.toasts,M0=()=>Pt.getActiveToasts(),Sr=Object.assign(j0,{success:Pt.success,info:Pt.info,warning:Pt.warning,error:Pt.error,custom:Pt.custom,message:Pt.message,promise:Pt.promise,dismiss:Pt.dismiss,loading:Pt.loading},{getHistory:R0,getToasts:M0});function T0(r,{insertAt:o}={}){if(typeof document>"u")return;let i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",o==="top"&&i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.styleSheet?l.styleSheet.cssText=r:l.appendChild(document.createTextNode(r))}T0(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
186
- `);function fa(r){return r.label!==void 0}var O0=3,_0="32px",z0="16px",wp=4e3,I0=356,A0=14,L0=20,D0=200;function Zt(...r){return r.filter(Boolean).join(" ")}function F0(r){let[o,i]=r.split("-"),l=[];return o&&l.push(o),i&&l.push(i),l}var U0=r=>{var o,i,l,c,d,m,p,x,g,E,P;let{invert:T,toast:v,unstyled:I,interacting:b,setHeights:R,visibleToasts:D,heights:F,index:B,toasts:_,expanded:G,removeToast:ee,defaultRichColors:$,closeButton:X,style:he,cancelButtonStyle:ye,actionButtonStyle:Pe,className:ae="",descriptionClassName:Fe="",duration:Te,position:Be,gap:Oe,loadingIcon:xe,expandByDefault:H,classNames:W,icons:Q,closeButtonAriaLabel:N="Close toast",pauseWhenPageIsHidden:z}=r,[te,oe]=K.useState(null),[de,ve]=K.useState(null),[ce,be]=K.useState(!1),[je,Ze]=K.useState(!1),[nn,Jr]=K.useState(!1),[br,Go]=K.useState(!1),[qs,qo]=K.useState(!1),[Yo,eo]=K.useState(0),[Xo,Fn]=K.useState(0),_t=K.useRef(v.duration||Te||wp),to=K.useRef(null),rn=K.useRef(null),Ys=B===0,Xs=B+1<=D,dt=v.type,on=v.dismissible!==!1,no=v.className||"",Zs=v.descriptionClassName||"",sn=K.useMemo(()=>F.findIndex(pe=>pe.toastId===v.id)||0,[F,v.id]),kr=K.useMemo(()=>{var pe;return(pe=v.closeButton)!=null?pe:X},[v.closeButton,X]),Js=K.useMemo(()=>v.duration||Te||wp,[v.duration,Te]),ro=K.useRef(0),bn=K.useRef(0),ei=K.useRef(0),an=K.useRef(null),[Zo,Jo]=Be.split("-"),oo=K.useMemo(()=>F.reduce((pe,Ne,_e)=>_e>=sn?pe:pe+Ne.height,0),[F,sn]),so=C0(),Un=v.invert||T,ln=dt==="loading";bn.current=K.useMemo(()=>sn*Oe+oo,[sn,oo]),K.useEffect(()=>{_t.current=Js},[Js]),K.useEffect(()=>{be(!0)},[]),K.useEffect(()=>{let pe=rn.current;if(pe){let Ne=pe.getBoundingClientRect().height;return Fn(Ne),R(_e=>[{toastId:v.id,height:Ne,position:v.position},..._e]),()=>R(_e=>_e.filter(ft=>ft.toastId!==v.id))}},[R,v.id]),K.useLayoutEffect(()=>{if(!ce)return;let pe=rn.current,Ne=pe.style.height;pe.style.height="auto";let _e=pe.getBoundingClientRect().height;pe.style.height=Ne,Fn(_e),R(ft=>ft.find(yt=>yt.toastId===v.id)?ft.map(yt=>yt.toastId===v.id?{...yt,height:_e}:yt):[{toastId:v.id,height:_e,position:v.position},...ft])},[ce,v.title,v.description,R,v.id]);let Vt=K.useCallback(()=>{Ze(!0),eo(bn.current),R(pe=>pe.filter(Ne=>Ne.toastId!==v.id)),setTimeout(()=>{ee(v)},D0)},[v,ee,R,bn]);K.useEffect(()=>{if(v.promise&&dt==="loading"||v.duration===1/0||v.type==="loading")return;let pe;return G||b||z&&so?(()=>{if(ei.current<ro.current){let Ne=new Date().getTime()-ro.current;_t.current=_t.current-Ne}ei.current=new Date().getTime()})():_t.current!==1/0&&(ro.current=new Date().getTime(),pe=setTimeout(()=>{var Ne;(Ne=v.onAutoClose)==null||Ne.call(v,v),Vt()},_t.current)),()=>clearTimeout(pe)},[G,b,v,dt,z,so,Vt]),K.useEffect(()=>{v.delete&&Vt()},[Vt,v.delete]);function ti(){var pe,Ne,_e;return Q!=null&&Q.loading?K.createElement("div",{className:Zt(W==null?void 0:W.loader,(pe=v==null?void 0:v.classNames)==null?void 0:pe.loader,"sonner-loader"),"data-visible":dt==="loading"},Q.loading):xe?K.createElement("div",{className:Zt(W==null?void 0:W.loader,(Ne=v==null?void 0:v.classNames)==null?void 0:Ne.loader,"sonner-loader"),"data-visible":dt==="loading"},xe):K.createElement(v0,{className:Zt(W==null?void 0:W.loader,(_e=v==null?void 0:v.classNames)==null?void 0:_e.loader),visible:dt==="loading"})}return K.createElement("li",{tabIndex:0,ref:rn,className:Zt(ae,no,W==null?void 0:W.toast,(o=v==null?void 0:v.classNames)==null?void 0:o.toast,W==null?void 0:W.default,W==null?void 0:W[dt],(i=v==null?void 0:v.classNames)==null?void 0:i[dt]),"data-sonner-toast":"","data-rich-colors":(l=v.richColors)!=null?l:$,"data-styled":!(v.jsx||v.unstyled||I),"data-mounted":ce,"data-promise":!!v.promise,"data-swiped":qs,"data-removed":je,"data-visible":Xs,"data-y-position":Zo,"data-x-position":Jo,"data-index":B,"data-front":Ys,"data-swiping":nn,"data-dismissible":on,"data-type":dt,"data-invert":Un,"data-swipe-out":br,"data-swipe-direction":de,"data-expanded":!!(G||H&&ce),style:{"--index":B,"--toasts-before":B,"--z-index":_.length-B,"--offset":`${je?Yo:bn.current}px`,"--initial-height":H?"auto":`${Xo}px`,...he,...v.style},onDragEnd:()=>{Jr(!1),oe(null),an.current=null},onPointerDown:pe=>{ln||!on||(to.current=new Date,eo(bn.current),pe.target.setPointerCapture(pe.pointerId),pe.target.tagName!=="BUTTON"&&(Jr(!0),an.current={x:pe.clientX,y:pe.clientY}))},onPointerUp:()=>{var pe,Ne,_e,ft;if(br||!on)return;an.current=null;let yt=Number(((pe=rn.current)==null?void 0:pe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),vt=Number(((Ne=rn.current)==null?void 0:Ne.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Qt=new Date().getTime()-((_e=to.current)==null?void 0:_e.getTime()),rt=te==="x"?yt:vt,un=Math.abs(rt)/Qt;if(Math.abs(rt)>=L0||un>.11){eo(bn.current),(ft=v.onDismiss)==null||ft.call(v,v),ve(te==="x"?yt>0?"right":"left":vt>0?"down":"up"),Vt(),Go(!0),qo(!1);return}Jr(!1),oe(null)},onPointerMove:pe=>{var Ne,_e,ft,yt;if(!an.current||!on||((Ne=window.getSelection())==null?void 0:Ne.toString().length)>0)return;let vt=pe.clientY-an.current.y,Qt=pe.clientX-an.current.x,rt=(_e=r.swipeDirections)!=null?_e:F0(Be);!te&&(Math.abs(Qt)>1||Math.abs(vt)>1)&&oe(Math.abs(Qt)>Math.abs(vt)?"x":"y");let un={x:0,y:0};te==="y"?(rt.includes("top")||rt.includes("bottom"))&&(rt.includes("top")&&vt<0||rt.includes("bottom")&&vt>0)&&(un.y=vt):te==="x"&&(rt.includes("left")||rt.includes("right"))&&(rt.includes("left")&&Qt<0||rt.includes("right")&&Qt>0)&&(un.x=Qt),(Math.abs(un.x)>0||Math.abs(un.y)>0)&&qo(!0),(ft=rn.current)==null||ft.style.setProperty("--swipe-amount-x",`${un.x}px`),(yt=rn.current)==null||yt.style.setProperty("--swipe-amount-y",`${un.y}px`)}},kr&&!v.jsx?K.createElement("button",{"aria-label":N,"data-disabled":ln,"data-close-button":!0,onClick:ln||!on?()=>{}:()=>{var pe;Vt(),(pe=v.onDismiss)==null||pe.call(v,v)},className:Zt(W==null?void 0:W.closeButton,(c=v==null?void 0:v.classNames)==null?void 0:c.closeButton)},(d=Q==null?void 0:Q.close)!=null?d:k0):null,v.jsx||k.isValidElement(v.title)?v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title:K.createElement(K.Fragment,null,dt||v.icon||v.promise?K.createElement("div",{"data-icon":"",className:Zt(W==null?void 0:W.icon,(m=v==null?void 0:v.classNames)==null?void 0:m.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||ti():null,v.type!=="loading"?v.icon||(Q==null?void 0:Q[dt])||g0(dt):null):null,K.createElement("div",{"data-content":"",className:Zt(W==null?void 0:W.content,(p=v==null?void 0:v.classNames)==null?void 0:p.content)},K.createElement("div",{"data-title":"",className:Zt(W==null?void 0:W.title,(x=v==null?void 0:v.classNames)==null?void 0:x.title)},typeof v.title=="function"?v.title():v.title),v.description?K.createElement("div",{"data-description":"",className:Zt(Fe,Zs,W==null?void 0:W.description,(g=v==null?void 0:v.classNames)==null?void 0:g.description)},typeof v.description=="function"?v.description():v.description):null),k.isValidElement(v.cancel)?v.cancel:v.cancel&&fa(v.cancel)?K.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||ye,onClick:pe=>{var Ne,_e;fa(v.cancel)&&on&&((_e=(Ne=v.cancel).onClick)==null||_e.call(Ne,pe),Vt())},className:Zt(W==null?void 0:W.cancelButton,(E=v==null?void 0:v.classNames)==null?void 0:E.cancelButton)},v.cancel.label):null,k.isValidElement(v.action)?v.action:v.action&&fa(v.action)?K.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||Pe,onClick:pe=>{var Ne,_e;fa(v.action)&&((_e=(Ne=v.action).onClick)==null||_e.call(Ne,pe),!pe.defaultPrevented&&Vt())},className:Zt(W==null?void 0:W.actionButton,(P=v==null?void 0:v.classNames)==null?void 0:P.actionButton)},v.action.label):null))};function xp(){if(typeof window>"u"||typeof document>"u")return"ltr";let r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function B0(r,o){let i={};return[r,o].forEach((l,c)=>{let d=c===1,m=d?"--mobile-offset":"--offset",p=d?z0:_0;function x(g){["top","right","bottom","left"].forEach(E=>{i[`${m}-${E}`]=typeof g=="number"?`${g}px`:g})}typeof l=="number"||typeof l=="string"?x(l):typeof l=="object"?["top","right","bottom","left"].forEach(g=>{l[g]===void 0?i[`${m}-${g}`]=p:i[`${m}-${g}`]=typeof l[g]=="number"?`${l[g]}px`:l[g]}):x(p)}),i}var W0=k.forwardRef(function(r,o){let{invert:i,position:l="bottom-right",hotkey:c=["altKey","KeyT"],expand:d,closeButton:m,className:p,offset:x,mobileOffset:g,theme:E="light",richColors:P,duration:T,style:v,visibleToasts:I=O0,toastOptions:b,dir:R=xp(),gap:D=A0,loadingIcon:F,icons:B,containerAriaLabel:_="Notifications",pauseWhenPageIsHidden:G}=r,[ee,$]=K.useState([]),X=K.useMemo(()=>Array.from(new Set([l].concat(ee.filter(z=>z.position).map(z=>z.position)))),[ee,l]),[he,ye]=K.useState([]),[Pe,ae]=K.useState(!1),[Fe,Te]=K.useState(!1),[Be,Oe]=K.useState(E!=="system"?E:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),xe=K.useRef(null),H=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),W=K.useRef(null),Q=K.useRef(!1),N=K.useCallback(z=>{$(te=>{var oe;return(oe=te.find(de=>de.id===z.id))!=null&&oe.delete||Pt.dismiss(z.id),te.filter(({id:de})=>de!==z.id)})},[]);return K.useEffect(()=>Pt.subscribe(z=>{if(z.dismiss){$(te=>te.map(oe=>oe.id===z.id?{...oe,delete:!0}:oe));return}setTimeout(()=>{Eh.flushSync(()=>{$(te=>{let oe=te.findIndex(de=>de.id===z.id);return oe!==-1?[...te.slice(0,oe),{...te[oe],...z},...te.slice(oe+1)]:[z,...te]})})})}),[]),K.useEffect(()=>{if(E!=="system"){Oe(E);return}if(E==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Oe("dark"):Oe("light")),typeof window>"u")return;let z=window.matchMedia("(prefers-color-scheme: dark)");try{z.addEventListener("change",({matches:te})=>{Oe(te?"dark":"light")})}catch{z.addListener(({matches:oe})=>{try{Oe(oe?"dark":"light")}catch(de){console.error(de)}})}},[E]),K.useEffect(()=>{ee.length<=1&&ae(!1)},[ee]),K.useEffect(()=>{let z=te=>{var oe,de;c.every(ve=>te[ve]||te.code===ve)&&(ae(!0),(oe=xe.current)==null||oe.focus()),te.code==="Escape"&&(document.activeElement===xe.current||(de=xe.current)!=null&&de.contains(document.activeElement))&&ae(!1)};return document.addEventListener("keydown",z),()=>document.removeEventListener("keydown",z)},[c]),K.useEffect(()=>{if(xe.current)return()=>{W.current&&(W.current.focus({preventScroll:!0}),W.current=null,Q.current=!1)}},[xe.current]),K.createElement("section",{ref:o,"aria-label":`${_} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},X.map((z,te)=>{var oe;let[de,ve]=z.split("-");return ee.length?K.createElement("ol",{key:z,dir:R==="auto"?xp():R,tabIndex:-1,ref:xe,className:p,"data-sonner-toaster":!0,"data-theme":Be,"data-y-position":de,"data-lifted":Pe&&ee.length>1&&!d,"data-x-position":ve,style:{"--front-toast-height":`${((oe=he[0])==null?void 0:oe.height)||0}px`,"--width":`${I0}px`,"--gap":`${D}px`,...v,...B0(x,g)},onBlur:ce=>{Q.current&&!ce.currentTarget.contains(ce.relatedTarget)&&(Q.current=!1,W.current&&(W.current.focus({preventScroll:!0}),W.current=null))},onFocus:ce=>{ce.target instanceof HTMLElement&&ce.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,W.current=ce.relatedTarget)},onMouseEnter:()=>ae(!0),onMouseMove:()=>ae(!0),onMouseLeave:()=>{Fe||ae(!1)},onDragEnd:()=>ae(!1),onPointerDown:ce=>{ce.target instanceof HTMLElement&&ce.target.dataset.dismissible==="false"||Te(!0)},onPointerUp:()=>Te(!1)},ee.filter(ce=>!ce.position&&te===0||ce.position===z).map((ce,be)=>{var je,Ze;return K.createElement(U0,{key:ce.id,icons:B,index:be,toast:ce,defaultRichColors:P,duration:(je=b==null?void 0:b.duration)!=null?je:T,className:b==null?void 0:b.className,descriptionClassName:b==null?void 0:b.descriptionClassName,invert:i,visibleToasts:I,closeButton:(Ze=b==null?void 0:b.closeButton)!=null?Ze:m,interacting:Fe,position:z,style:b==null?void 0:b.style,unstyled:b==null?void 0:b.unstyled,classNames:b==null?void 0:b.classNames,cancelButtonStyle:b==null?void 0:b.cancelButtonStyle,actionButtonStyle:b==null?void 0:b.actionButtonStyle,removeToast:N,toasts:ee.filter(nn=>nn.position==ce.position),heights:he.filter(nn=>nn.position==ce.position),setHeights:ye,expandByDefault:d,gap:D,loadingIcon:F,expanded:Pe,pauseWhenPageIsHidden:G,swipeDirections:r.swipeDirections})})):null}))});const Sp={model:{zh:"模型",en:"Model"},providers:{zh:"提供商",en:"Providers"},channels:{zh:"渠道",en:"Channels"},enabled:{zh:"启用",en:"Enabled"},disabled:{zh:"禁用",en:"Disabled"},save:{zh:"保存",en:"Save"},cancel:{zh:"取消",en:"Cancel"},delete:{zh:"删除",en:"Delete"},add:{zh:"添加",en:"Add"},edit:{zh:"编辑",en:"Edit"},loading:{zh:"加载中...",en:"Loading..."},success:{zh:"成功",en:"Success"},error:{zh:"错误",en:"Error"},modelName:{zh:"模型",en:"Model"},workspace:{zh:"工作空间",en:"Workspace"},maxTokens:{zh:"最大 Token 数",en:"Max Tokens"},temperature:{zh:"温度",en:"Temperature"},maxToolIterations:{zh:"最大工具迭代次数",en:"Max Tool Iterations"},apiKey:{zh:"API 密钥",en:"API Key"},apiBase:{zh:"API Base",en:"API Base"},extraHeaders:{zh:"额外请求头",en:"Extra Headers"},wireApi:{zh:"请求接口",en:"Wire API"},wireApiAuto:{zh:"自动(优先 Chat,必要时 Responses)",en:"Auto (Chat with fallback)"},wireApiChat:{zh:"Chat Completions",en:"Chat Completions"},wireApiResponses:{zh:"Responses",en:"Responses"},apiKeySet:{zh:"已设置",en:"Set"},apiKeyNotSet:{zh:"未设置",en:"Not Set"},showKey:{zh:"显示密钥",en:"Show Key"},hideKey:{zh:"隐藏密钥",en:"Hide Key"},allowFrom:{zh:"允许来源",en:"Allow From"},token:{zh:"Token",en:"Token"},botToken:{zh:"Bot Token",en:"Bot Token"},appToken:{zh:"App Token",en:"App Token"},appId:{zh:"App ID",en:"App ID"},appSecret:{zh:"App Secret",en:"App Secret"},markdownSupport:{zh:"Markdown 支持",en:"Markdown Support"},clientId:{zh:"Client ID",en:"Client ID"},clientSecret:{zh:"Client Secret",en:"Client Secret"},encryptKey:{zh:"加密密钥",en:"Encrypt Key"},verificationToken:{zh:"验证令牌",en:"Verification Token"},bridgeUrl:{zh:"桥接 URL",en:"Bridge URL"},gatewayUrl:{zh:"网关 URL",en:"Gateway URL"},proxy:{zh:"代理",en:"Proxy"},intents:{zh:"Intents",en:"Intents"},mode:{zh:"模式",en:"Mode"},webhookPath:{zh:"Webhook 路径",en:"Webhook Path"},groupPolicy:{zh:"群组策略",en:"Group Policy"},consentGranted:{zh:"同意条款",en:"Consent Granted"},imapHost:{zh:"IMAP 服务器",en:"IMAP Host"},imapPort:{zh:"IMAP 端口",en:"IMAP Port"},imapUsername:{zh:"IMAP 用户名",en:"IMAP Username"},imapPassword:{zh:"IMAP 密码",en:"IMAP Password"},imapMailbox:{zh:"IMAP 邮箱",en:"IMAP Mailbox"},imapUseSsl:{zh:"IMAP 使用 SSL",en:"IMAP Use SSL"},smtpHost:{zh:"SMTP 服务器",en:"SMTP Host"},smtpPort:{zh:"SMTP 端口",en:"SMTP Port"},smtpUsername:{zh:"SMTP 用户名",en:"SMTP Username"},smtpPassword:{zh:"SMTP 密码",en:"SMTP Password"},smtpUseTls:{zh:"SMTP 使用 TLS",en:"SMTP Use TLS"},smtpUseSsl:{zh:"SMTP 使用 SSL",en:"SMTP Use SSL"},fromAddress:{zh:"发件地址",en:"From Address"},autoReplyEnabled:{zh:"自动回复已启用",en:"Auto Reply Enabled"},pollIntervalSeconds:{zh:"轮询间隔(秒)",en:"Poll Interval (s)"},markSeen:{zh:"标记为已读",en:"Mark Seen"},maxBodyChars:{zh:"最大正文字符数",en:"Max Body Chars"},subjectPrefix:{zh:"主题前缀",en:"Subject Prefix"},baseUrl:{zh:"Base URL",en:"Base URL"},socketUrl:{zh:"Socket URL",en:"Socket URL"},socketPath:{zh:"Socket 路径",en:"Socket Path"},socketDisableMsgpack:{zh:"禁用 Msgpack",en:"Disable Msgpack"},socketReconnectDelayMs:{zh:"重连延迟(ms)",en:"Reconnect Delay (ms)"},socketMaxReconnectDelayMs:{zh:"最大重连延迟(ms)",en:"Max Reconnect Delay (ms)"},socketConnectTimeoutMs:{zh:"连接超时(ms)",en:"Connect Timeout (ms)"},refreshIntervalMs:{zh:"刷新间隔(ms)",en:"Refresh Interval (ms)"},watchTimeoutMs:{zh:"监视超时(ms)",en:"Watch Timeout (ms)"},watchLimit:{zh:"监视限制",en:"Watch Limit"},retryDelayMs:{zh:"重试延迟(ms)",en:"Retry Delay (ms)"},maxRetryAttempts:{zh:"最大重试次数",en:"Max Retry Attempts"},clawToken:{zh:"Claw Token",en:"Claw Token"},agentUserId:{zh:"代理用户ID",en:"Agent User ID"},sessions:{zh:"会话",en:"Sessions"},panels:{zh:"面板",en:"Panels"},mentionRequireInGroups:{zh:"群组中需要@",en:"Require Mention in Groups"},groups:{zh:"群组",en:"Groups"},replyDelayMode:{zh:"回复延迟模式",en:"Reply Delay Mode"},replyDelayMs:{zh:"回复延迟(ms)",en:"Reply Delay (ms)"},secret:{zh:"密钥",en:"Secret"},saveVerifyConnect:{zh:"保存并验证 / 连接",en:"Save & Verify / Connect"},connected:{zh:"已连接",en:"Connected"},disconnected:{zh:"未连接",en:"Disconnected"},connecting:{zh:"连接中...",en:"Connecting..."},feishuConnecting:{zh:"验证 / 连接中...",en:"Verifying / connecting..."},configSaved:{zh:"配置已保存",en:"Configuration saved"},configSavedApplied:{zh:"配置已保存并已应用",en:"Configuration saved and applied"},configSaveFailed:{zh:"保存配置失败",en:"Failed to save configuration"},configReloaded:{zh:"配置已重载",en:"Configuration reloaded"},configReloadFailed:{zh:"重载配置失败",en:"Failed to reload configuration"},feishuVerifySuccess:{zh:"验证成功,请到飞书开放平台完成事件订阅与发布后再开始使用。",en:"Verified. Please finish Feishu event subscription and app publishing before using."},feishuVerifyFailed:{zh:"验证失败",en:"Verification failed"},enterTag:{zh:"输入后按回车...",en:"Type and press Enter..."},headerName:{zh:"Header 名称",en:"Header Name"},headerValue:{zh:"Header 值",en:"Header Value"}};function Y(r,o="en"){var i,l;return((i=Sp[r])==null?void 0:i[o])||((l=Sp[r])==null?void 0:l.en)||r}function Ks(){return ec({queryKey:["config"],queryFn:u0,staleTime:3e4,refetchOnWindowFocus:!0})}function sc(){return ec({queryKey:["config-meta"],queryFn:c0,staleTime:1/0})}function Gs(){return ec({queryKey:["config-schema"],queryFn:d0,staleTime:1/0})}function V0(){const r=Hs();return tc({mutationFn:f0,onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSaved"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function Q0(){const r=Hs();return tc({mutationFn:({provider:o,data:i})=>p0(o,i),onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSaved"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function $0(){const r=Hs();return tc({mutationFn:({channel:o,data:i})=>h0(o,i),onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSavedApplied"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function H0(r){return Array.isArray(r)?r.filter(o=>typeof o=="string").join("."):r}function Wt(r,o){if(!o)return;const i=H0(r),l=o[i];if(l)return l;const c=i.split(".");for(const[d,m]of Object.entries(o)){if(!d.includes("*"))continue;const p=d.split(".");if(p.length!==c.length)continue;let x=!0;for(let g=0;g<c.length;g+=1)if(p[g]!=="*"&&p[g]!==c[g]){x=!1;break}if(x)return m}}function bp(){const{data:r,isLoading:o}=Ks(),{data:i}=Gs(),l=V0(),[c,d]=k.useState(""),[m,p]=k.useState(""),[x,g]=k.useState(8192),[E,P]=k.useState(.7),T=i==null?void 0:i.uiHints,v=Wt("agents.defaults.model",T),I=Wt("agents.defaults.workspace",T),b=Wt("agents.defaults.maxTokens",T),R=Wt("agents.defaults.temperature",T);k.useEffect(()=>{var F;(F=r==null?void 0:r.agents)!=null&&F.defaults&&(d(r.agents.defaults.model||""),p(r.agents.defaults.workspace||""),g(r.agents.defaults.maxTokens||8192),P(r.agents.defaults.temperature||.7))},[r]);const D=F=>{F.preventDefault(),l.mutate({model:c})};return o?h.jsxs("div",{className:"max-w-2xl space-y-6",children:[h.jsxs("div",{className:"space-y-2",children:[h.jsx(Ot,{className:"h-8 w-32"}),h.jsx(Ot,{className:"h-4 w-48"})]}),h.jsxs(Vu,{className:"rounded-2xl border-gray-200 p-6",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[h.jsx(Ot,{className:"h-12 w-12 rounded-xl"}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(Ot,{className:"h-5 w-24"}),h.jsx(Ot,{className:"h-3 w-32"})]})]}),h.jsx(Ot,{className:"h-4 w-20 mb-2"}),h.jsx(Ot,{className:"h-10 w-full rounded-xl"})]}),h.jsxs(Vu,{className:"rounded-2xl border-gray-200 p-6",children:[h.jsx(Ot,{className:"h-5 w-24 mb-2"}),h.jsx(Ot,{className:"h-3 w-40 mb-6"}),h.jsxs("div",{className:"space-y-6",children:[h.jsxs("div",{children:[h.jsx(Ot,{className:"h-4 w-28 mb-3"}),h.jsx(Ot,{className:"h-2 w-full rounded-full"})]}),h.jsxs("div",{children:[h.jsx(Ot,{className:"h-4 w-32 mb-3"}),h.jsx(Ot,{className:"h-2 w-full rounded-full"})]})]})]})]}):h.jsxs("div",{className:"max-w-4xl animate-fade-in pb-20",children:[h.jsxs("div",{className:"mb-10",children:[h.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Model Configuration"}),h.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Configure default AI model and behavior parameters"})]}),h.jsxs("form",{onSubmit:D,className:"space-y-8",children:[h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[h.jsxs("div",{className:"p-8 rounded-2xl bg-gray-50 border border-gray-200",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(bh,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Default Model"})]}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(wn,{htmlFor:"model",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(v==null?void 0:v.label)??"Model Name"}),h.jsx(Sn,{id:"model",value:c,onChange:F=>d(F.target.value),placeholder:(v==null?void 0:v.placeholder)??"minimax/MiniMax-M2.1",className:"h-12 px-4 rounded-xl"}),h.jsx("p",{className:"text-xs text-gray-400",children:(v==null?void 0:v.help)??"Examples: minimax/MiniMax-M2.1 · anthropic/claude-opus-4-5"})]})]}),h.jsxs("div",{className:"p-8 rounded-2xl bg-gray-50 border border-gray-200",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(Vv,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Workspace"})]}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(wn,{htmlFor:"workspace",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(I==null?void 0:I.label)??"Default Path"}),h.jsx(Sn,{id:"workspace",value:m,onChange:F=>p(F.target.value),placeholder:(I==null?void 0:I.placeholder)??"/path/to/workspace",className:"h-12 px-4 rounded-xl"})]})]})]}),h.jsxs("div",{className:"p-8 rounded-2xl bg-white border border-gray-200 shadow-card",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-10",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(Gv,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Generation Parameters"})]}),h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-12",children:[h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{className:"flex justify-between items-center mb-2",children:[h.jsx(wn,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(b==null?void 0:b.label)??"Max Tokens"}),h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:x.toLocaleString()})]}),h.jsx("input",{type:"range",min:"1000",max:"32000",step:"1000",value:x,onChange:F=>g(parseInt(F.target.value)),className:"w-full h-1 bg-gray-200 rounded-full appearance-none cursor-pointer accent-primary"})]}),h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{className:"flex justify-between items-center mb-2",children:[h.jsx(wn,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(R==null?void 0:R.label)??"Temperature"}),h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:E})]}),h.jsx("input",{type:"range",min:"0",max:"2",step:"0.1",value:E,onChange:F=>P(parseFloat(F.target.value)),className:"w-full h-1 bg-gray-200 rounded-full appearance-none cursor-pointer accent-primary"})]})]})]}),h.jsx("div",{className:"flex justify-end pt-4",children:h.jsx(xn,{type:"submit",disabled:l.isPending,size:"lg",children:l.isPending?h.jsx(Qv,{className:"h-5 w-5 animate-spin"}):"Save Changes"})})]})]})}function xr(r,o,{checkForDefaultPrevented:i=!0}={}){return function(c){if(r==null||r(c),i===!1||!c.defaultPrevented)return o==null?void 0:o(c)}}function kp(r,o){if(typeof r=="function")return r(o);r!=null&&(r.current=o)}function Nh(...r){return o=>{let i=!1;const l=r.map(c=>{const d=kp(c,o);return!i&&typeof d=="function"&&(i=!0),d});if(i)return()=>{for(let c=0;c<l.length;c++){const d=l[c];typeof d=="function"?d():kp(r[c],null)}}}}function Zr(...r){return k.useCallback(Nh(...r),r)}function K0(r,o){const i=k.createContext(o),l=d=>{const{children:m,...p}=d,x=k.useMemo(()=>p,Object.values(p));return h.jsx(i.Provider,{value:x,children:m})};l.displayName=r+"Provider";function c(d){const m=k.useContext(i);if(m)return m;if(o!==void 0)return o;throw new Error(`\`${d}\` must be used within \`${r}\``)}return[l,c]}function G0(r,o=[]){let i=[];function l(d,m){const p=k.createContext(m),x=i.length;i=[...i,m];const g=P=>{var D;const{scope:T,children:v,...I}=P,b=((D=T==null?void 0:T[r])==null?void 0:D[x])||p,R=k.useMemo(()=>I,Object.values(I));return h.jsx(b.Provider,{value:R,children:v})};g.displayName=d+"Provider";function E(P,T){var b;const v=((b=T==null?void 0:T[r])==null?void 0:b[x])||p,I=k.useContext(v);if(I)return I;if(m!==void 0)return m;throw new Error(`\`${P}\` must be used within \`${d}\``)}return[g,E]}const c=()=>{const d=i.map(m=>k.createContext(m));return function(p){const x=(p==null?void 0:p[r])||d;return k.useMemo(()=>({[`__scope${r}`]:{...p,[r]:x}}),[p,x])}};return c.scopeName=r,[l,q0(c,...o)]}function q0(...r){const o=r[0];if(r.length===1)return o;const i=()=>{const l=r.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(d){const m=l.reduce((p,{useScope:x,scopeName:g})=>{const P=x(d)[`__scope${g}`];return{...p,...P}},{});return k.useMemo(()=>({[`__scope${o.scopeName}`]:m}),[m])}};return i.scopeName=o.scopeName,i}var Fs=globalThis!=null&&globalThis.document?k.useLayoutEffect:()=>{},Y0=Zp[" useId ".trim().toString()]||(()=>{}),X0=0;function wu(r){const[o,i]=k.useState(Y0());return Fs(()=>{i(l=>l??String(X0++))},[r]),r||(o?`radix-${o}`:"")}var Z0=Zp[" useInsertionEffect ".trim().toString()]||Fs;function J0({prop:r,defaultProp:o,onChange:i=()=>{},caller:l}){const[c,d,m]=e1({defaultProp:o,onChange:i}),p=r!==void 0,x=p?r:c;{const E=k.useRef(r!==void 0);k.useEffect(()=>{const P=E.current;P!==p&&console.warn(`${l} is changing from ${P?"controlled":"uncontrolled"} to ${p?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),E.current=p},[p,l])}const g=k.useCallback(E=>{var P;if(p){const T=t1(E)?E(r):E;T!==r&&((P=m.current)==null||P.call(m,T))}else d(E)},[p,r,d,m]);return[x,g]}function e1({defaultProp:r,onChange:o}){const[i,l]=k.useState(r),c=k.useRef(i),d=k.useRef(o);return Z0(()=>{d.current=o},[o]),k.useEffect(()=>{var m;c.current!==i&&((m=d.current)==null||m.call(d,i),c.current=i)},[i,c]),[i,l,d]}function t1(r){return typeof r=="function"}function Ph(r){const o=n1(r),i=k.forwardRef((l,c)=>{const{children:d,...m}=l,p=k.Children.toArray(d),x=p.find(o1);if(x){const g=x.props.children,E=p.map(P=>P===x?k.Children.count(g)>1?k.Children.only(null):k.isValidElement(g)?g.props.children:null:P);return h.jsx(o,{...m,ref:c,children:k.isValidElement(g)?k.cloneElement(g,void 0,E):null})}return h.jsx(o,{...m,ref:c,children:d})});return i.displayName=`${r}.Slot`,i}function n1(r){const o=k.forwardRef((i,l)=>{const{children:c,...d}=i;if(k.isValidElement(c)){const m=i1(c),p=s1(d,c.props);return c.type!==k.Fragment&&(p.ref=l?Nh(l,m):m),k.cloneElement(c,p)}return k.Children.count(c)>1?k.Children.only(null):null});return o.displayName=`${r}.SlotClone`,o}var r1=Symbol("radix.slottable");function o1(r){return k.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===r1}function s1(r,o){const i={...o};for(const l in o){const c=r[l],d=o[l];/^on[A-Z]/.test(l)?c&&d?i[l]=(...p)=>{const x=d(...p);return c(...p),x}:c&&(i[l]=c):l==="style"?i[l]={...c,...d}:l==="className"&&(i[l]=[c,d].filter(Boolean).join(" "))}return{...r,...i}}function i1(r){var l,c;let o=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,i=o&&"isReactWarning"in o&&o.isReactWarning;return i?r.ref:(o=(c=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:c.get,i=o&&"isReactWarning"in o&&o.isReactWarning,i?r.props.ref:r.props.ref||r.ref)}var a1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Dn=a1.reduce((r,o)=>{const i=Ph(`Primitive.${o}`),l=k.forwardRef((c,d)=>{const{asChild:m,...p}=c,x=m?i:o;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),h.jsx(x,{...p,ref:d})});return l.displayName=`Primitive.${o}`,{...r,[o]:l}},{});function l1(r,o){r&&Ch.flushSync(()=>r.dispatchEvent(o))}function Us(r){const o=k.useRef(r);return k.useEffect(()=>{o.current=r}),k.useMemo(()=>(...i)=>{var l;return(l=o.current)==null?void 0:l.call(o,...i)},[])}function u1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r);k.useEffect(()=>{const l=c=>{c.key==="Escape"&&i(c)};return o.addEventListener("keydown",l,{capture:!0}),()=>o.removeEventListener("keydown",l,{capture:!0})},[i,o])}var c1="DismissableLayer",$u="dismissableLayer.update",d1="dismissableLayer.pointerDownOutside",f1="dismissableLayer.focusOutside",Cp,jh=k.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Rh=k.forwardRef((r,o)=>{const{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:m,onDismiss:p,...x}=r,g=k.useContext(jh),[E,P]=k.useState(null),T=(E==null?void 0:E.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=k.useState({}),I=Zr(o,$=>P($)),b=Array.from(g.layers),[R]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),D=b.indexOf(R),F=E?b.indexOf(E):-1,B=g.layersWithOutsidePointerEventsDisabled.size>0,_=F>=D,G=m1($=>{const X=$.target,he=[...g.branches].some(ye=>ye.contains(X));!_||he||(c==null||c($),m==null||m($),$.defaultPrevented||p==null||p())},T),ee=g1($=>{const X=$.target;[...g.branches].some(ye=>ye.contains(X))||(d==null||d($),m==null||m($),$.defaultPrevented||p==null||p())},T);return u1($=>{F===g.layers.size-1&&(l==null||l($),!$.defaultPrevented&&p&&($.preventDefault(),p()))},T),k.useEffect(()=>{if(E)return i&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(Cp=T.body.style.pointerEvents,T.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(E)),g.layers.add(E),Ep(),()=>{i&&g.layersWithOutsidePointerEventsDisabled.size===1&&(T.body.style.pointerEvents=Cp)}},[E,T,i,g]),k.useEffect(()=>()=>{E&&(g.layers.delete(E),g.layersWithOutsidePointerEventsDisabled.delete(E),Ep())},[E,g]),k.useEffect(()=>{const $=()=>v({});return document.addEventListener($u,$),()=>document.removeEventListener($u,$)},[]),h.jsx(Dn.div,{...x,ref:I,style:{pointerEvents:B?_?"auto":"none":void 0,...r.style},onFocusCapture:xr(r.onFocusCapture,ee.onFocusCapture),onBlurCapture:xr(r.onBlurCapture,ee.onBlurCapture),onPointerDownCapture:xr(r.onPointerDownCapture,G.onPointerDownCapture)})});Rh.displayName=c1;var p1="DismissableLayerBranch",h1=k.forwardRef((r,o)=>{const i=k.useContext(jh),l=k.useRef(null),c=Zr(o,l);return k.useEffect(()=>{const d=l.current;if(d)return i.branches.add(d),()=>{i.branches.delete(d)}},[i.branches]),h.jsx(Dn.div,{...r,ref:c})});h1.displayName=p1;function m1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r),l=k.useRef(!1),c=k.useRef(()=>{});return k.useEffect(()=>{const d=p=>{if(p.target&&!l.current){let x=function(){Mh(d1,i,g,{discrete:!0})};const g={originalEvent:p};p.pointerType==="touch"?(o.removeEventListener("click",c.current),c.current=x,o.addEventListener("click",c.current,{once:!0})):x()}else o.removeEventListener("click",c.current);l.current=!1},m=window.setTimeout(()=>{o.addEventListener("pointerdown",d)},0);return()=>{window.clearTimeout(m),o.removeEventListener("pointerdown",d),o.removeEventListener("click",c.current)}},[o,i]),{onPointerDownCapture:()=>l.current=!0}}function g1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r),l=k.useRef(!1);return k.useEffect(()=>{const c=d=>{d.target&&!l.current&&Mh(f1,i,{originalEvent:d},{discrete:!1})};return o.addEventListener("focusin",c),()=>o.removeEventListener("focusin",c)},[o,i]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Ep(){const r=new CustomEvent($u);document.dispatchEvent(r)}function Mh(r,o,i,{discrete:l}){const c=i.originalEvent.target,d=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:i});o&&c.addEventListener(r,o,{once:!0}),l?l1(c,d):c.dispatchEvent(d)}var xu="focusScope.autoFocusOnMount",Su="focusScope.autoFocusOnUnmount",Np={bubbles:!1,cancelable:!0},y1="FocusScope",Th=k.forwardRef((r,o)=>{const{loop:i=!1,trapped:l=!1,onMountAutoFocus:c,onUnmountAutoFocus:d,...m}=r,[p,x]=k.useState(null),g=Us(c),E=Us(d),P=k.useRef(null),T=Zr(o,b=>x(b)),v=k.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;k.useEffect(()=>{if(l){let b=function(B){if(v.paused||!p)return;const _=B.target;p.contains(_)?P.current=_:ur(P.current,{select:!0})},R=function(B){if(v.paused||!p)return;const _=B.relatedTarget;_!==null&&(p.contains(_)||ur(P.current,{select:!0}))},D=function(B){if(document.activeElement===document.body)for(const G of B)G.removedNodes.length>0&&ur(p)};document.addEventListener("focusin",b),document.addEventListener("focusout",R);const F=new MutationObserver(D);return p&&F.observe(p,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",R),F.disconnect()}}},[l,p,v.paused]),k.useEffect(()=>{if(p){jp.add(v);const b=document.activeElement;if(!p.contains(b)){const D=new CustomEvent(xu,Np);p.addEventListener(xu,g),p.dispatchEvent(D),D.defaultPrevented||(v1(k1(Oh(p)),{select:!0}),document.activeElement===b&&ur(p))}return()=>{p.removeEventListener(xu,g),setTimeout(()=>{const D=new CustomEvent(Su,Np);p.addEventListener(Su,E),p.dispatchEvent(D),D.defaultPrevented||ur(b??document.body,{select:!0}),p.removeEventListener(Su,E),jp.remove(v)},0)}}},[p,g,E,v]);const I=k.useCallback(b=>{if(!i&&!l||v.paused)return;const R=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,D=document.activeElement;if(R&&D){const F=b.currentTarget,[B,_]=w1(F);B&&_?!b.shiftKey&&D===_?(b.preventDefault(),i&&ur(B,{select:!0})):b.shiftKey&&D===B&&(b.preventDefault(),i&&ur(_,{select:!0})):D===F&&b.preventDefault()}},[i,l,v.paused]);return h.jsx(Dn.div,{tabIndex:-1,...m,ref:T,onKeyDown:I})});Th.displayName=y1;function v1(r,{select:o=!1}={}){const i=document.activeElement;for(const l of r)if(ur(l,{select:o}),document.activeElement!==i)return}function w1(r){const o=Oh(r),i=Pp(o,r),l=Pp(o.reverse(),r);return[i,l]}function Oh(r){const o=[],i=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const c=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||c?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)o.push(i.currentNode);return o}function Pp(r,o){for(const i of r)if(!x1(i,{upTo:o}))return i}function x1(r,{upTo:o}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(o!==void 0&&r===o)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function S1(r){return r instanceof HTMLInputElement&&"select"in r}function ur(r,{select:o=!1}={}){if(r&&r.focus){const i=document.activeElement;r.focus({preventScroll:!0}),r!==i&&S1(r)&&o&&r.select()}}var jp=b1();function b1(){let r=[];return{add(o){const i=r[0];o!==i&&(i==null||i.pause()),r=Rp(r,o),r.unshift(o)},remove(o){var i;r=Rp(r,o),(i=r[0])==null||i.resume()}}}function Rp(r,o){const i=[...r],l=i.indexOf(o);return l!==-1&&i.splice(l,1),i}function k1(r){return r.filter(o=>o.tagName!=="A")}var C1="Portal",_h=k.forwardRef((r,o)=>{var p;const{container:i,...l}=r,[c,d]=k.useState(!1);Fs(()=>d(!0),[]);const m=i||c&&((p=globalThis==null?void 0:globalThis.document)==null?void 0:p.body);return m?Eh.createPortal(h.jsx(Dn.div,{...l,ref:o}),m):null});_h.displayName=C1;function E1(r,o){return k.useReducer((i,l)=>o[i][l]??i,r)}var Pa=r=>{const{present:o,children:i}=r,l=N1(o),c=typeof i=="function"?i({present:l.isPresent}):k.Children.only(i),d=Zr(l.ref,P1(c));return typeof i=="function"||l.isPresent?k.cloneElement(c,{ref:d}):null};Pa.displayName="Presence";function N1(r){const[o,i]=k.useState(),l=k.useRef(null),c=k.useRef(r),d=k.useRef("none"),m=r?"mounted":"unmounted",[p,x]=E1(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return k.useEffect(()=>{const g=pa(l.current);d.current=p==="mounted"?g:"none"},[p]),Fs(()=>{const g=l.current,E=c.current;if(E!==r){const T=d.current,v=pa(g);r?x("MOUNT"):v==="none"||(g==null?void 0:g.display)==="none"?x("UNMOUNT"):x(E&&T!==v?"ANIMATION_OUT":"UNMOUNT"),c.current=r}},[r,x]),Fs(()=>{if(o){let g;const E=o.ownerDocument.defaultView??window,P=v=>{const b=pa(l.current).includes(CSS.escape(v.animationName));if(v.target===o&&b&&(x("ANIMATION_END"),!c.current)){const R=o.style.animationFillMode;o.style.animationFillMode="forwards",g=E.setTimeout(()=>{o.style.animationFillMode==="forwards"&&(o.style.animationFillMode=R)})}},T=v=>{v.target===o&&(d.current=pa(l.current))};return o.addEventListener("animationstart",T),o.addEventListener("animationcancel",P),o.addEventListener("animationend",P),()=>{E.clearTimeout(g),o.removeEventListener("animationstart",T),o.removeEventListener("animationcancel",P),o.removeEventListener("animationend",P)}}else x("ANIMATION_END")},[o,x]),{isPresent:["mounted","unmountSuspended"].includes(p),ref:k.useCallback(g=>{l.current=g?getComputedStyle(g):null,i(g)},[])}}function pa(r){return(r==null?void 0:r.animationName)||"none"}function P1(r){var l,c;let o=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,i=o&&"isReactWarning"in o&&o.isReactWarning;return i?r.ref:(o=(c=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:c.get,i=o&&"isReactWarning"in o&&o.isReactWarning,i?r.props.ref:r.props.ref||r.ref)}var bu=0;function j1(){k.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??Mp()),document.body.insertAdjacentElement("beforeend",r[1]??Mp()),bu++,()=>{bu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),bu--}},[])}function Mp(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var vn=function(){return vn=Object.assign||function(o){for(var i,l=1,c=arguments.length;l<c;l++){i=arguments[l];for(var d in i)Object.prototype.hasOwnProperty.call(i,d)&&(o[d]=i[d])}return o},vn.apply(this,arguments)};function zh(r,o){var i={};for(var l in r)Object.prototype.hasOwnProperty.call(r,l)&&o.indexOf(l)<0&&(i[l]=r[l]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,l=Object.getOwnPropertySymbols(r);c<l.length;c++)o.indexOf(l[c])<0&&Object.prototype.propertyIsEnumerable.call(r,l[c])&&(i[l[c]]=r[l[c]]);return i}function R1(r,o,i){if(i||arguments.length===2)for(var l=0,c=o.length,d;l<c;l++)(d||!(l in o))&&(d||(d=Array.prototype.slice.call(o,0,l)),d[l]=o[l]);return r.concat(d||Array.prototype.slice.call(o))}var Sa="right-scroll-bar-position",ba="width-before-scroll-bar",M1="with-scroll-bars-hidden",T1="--removed-body-scroll-bar-size";function ku(r,o){return typeof r=="function"?r(o):r&&(r.current=o),r}function O1(r,o){var i=k.useState(function(){return{value:r,callback:o,facade:{get current(){return i.value},set current(l){var c=i.value;c!==l&&(i.value=l,i.callback(l,c))}}}})[0];return i.callback=o,i.facade}var _1=typeof window<"u"?k.useLayoutEffect:k.useEffect,Tp=new WeakMap;function z1(r,o){var i=O1(null,function(l){return r.forEach(function(c){return ku(c,l)})});return _1(function(){var l=Tp.get(i);if(l){var c=new Set(l),d=new Set(r),m=i.current;c.forEach(function(p){d.has(p)||ku(p,null)}),d.forEach(function(p){c.has(p)||ku(p,m)})}Tp.set(i,r)},[r]),i}function I1(r){return r}function A1(r,o){o===void 0&&(o=I1);var i=[],l=!1,c={read:function(){if(l)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return i.length?i[i.length-1]:r},useMedium:function(d){var m=o(d,l);return i.push(m),function(){i=i.filter(function(p){return p!==m})}},assignSyncMedium:function(d){for(l=!0;i.length;){var m=i;i=[],m.forEach(d)}i={push:function(p){return d(p)},filter:function(){return i}}},assignMedium:function(d){l=!0;var m=[];if(i.length){var p=i;i=[],p.forEach(d),m=i}var x=function(){var E=m;m=[],E.forEach(d)},g=function(){return Promise.resolve().then(x)};g(),i={push:function(E){m.push(E),g()},filter:function(E){return m=m.filter(E),i}}}};return c}function L1(r){r===void 0&&(r={});var o=A1(null);return o.options=vn({async:!0,ssr:!1},r),o}var Ih=function(r){var o=r.sideCar,i=zh(r,["sideCar"]);if(!o)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var l=o.read();if(!l)throw new Error("Sidecar medium not found");return k.createElement(l,vn({},i))};Ih.isSideCarExport=!0;function D1(r,o){return r.useMedium(o),Ih}var Ah=L1(),Cu=function(){},ja=k.forwardRef(function(r,o){var i=k.useRef(null),l=k.useState({onScrollCapture:Cu,onWheelCapture:Cu,onTouchMoveCapture:Cu}),c=l[0],d=l[1],m=r.forwardProps,p=r.children,x=r.className,g=r.removeScrollBar,E=r.enabled,P=r.shards,T=r.sideCar,v=r.noRelative,I=r.noIsolation,b=r.inert,R=r.allowPinchZoom,D=r.as,F=D===void 0?"div":D,B=r.gapMode,_=zh(r,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),G=T,ee=z1([i,o]),$=vn(vn({},_),c);return k.createElement(k.Fragment,null,E&&k.createElement(G,{sideCar:Ah,removeScrollBar:g,shards:P,noRelative:v,noIsolation:I,inert:b,setCallbacks:d,allowPinchZoom:!!R,lockRef:i,gapMode:B}),m?k.cloneElement(k.Children.only(p),vn(vn({},$),{ref:ee})):k.createElement(F,vn({},$,{className:x,ref:ee}),p))});ja.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ja.classNames={fullWidth:ba,zeroRight:Sa};var F1=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function U1(){if(!document)return null;var r=document.createElement("style");r.type="text/css";var o=F1();return o&&r.setAttribute("nonce",o),r}function B1(r,o){r.styleSheet?r.styleSheet.cssText=o:r.appendChild(document.createTextNode(o))}function W1(r){var o=document.head||document.getElementsByTagName("head")[0];o.appendChild(r)}var V1=function(){var r=0,o=null;return{add:function(i){r==0&&(o=U1())&&(B1(o,i),W1(o)),r++},remove:function(){r--,!r&&o&&(o.parentNode&&o.parentNode.removeChild(o),o=null)}}},Q1=function(){var r=V1();return function(o,i){k.useEffect(function(){return r.add(o),function(){r.remove()}},[o&&i])}},Lh=function(){var r=Q1(),o=function(i){var l=i.styles,c=i.dynamic;return r(l,c),null};return o},$1={left:0,top:0,right:0,gap:0},Eu=function(r){return parseInt(r||"",10)||0},H1=function(r){var o=window.getComputedStyle(document.body),i=o[r==="padding"?"paddingLeft":"marginLeft"],l=o[r==="padding"?"paddingTop":"marginTop"],c=o[r==="padding"?"paddingRight":"marginRight"];return[Eu(i),Eu(l),Eu(c)]},K1=function(r){if(r===void 0&&(r="margin"),typeof window>"u")return $1;var o=H1(r),i=document.documentElement.clientWidth,l=window.innerWidth;return{left:o[0],top:o[1],right:o[2],gap:Math.max(0,l-i+o[2]-o[0])}},G1=Lh(),_o="data-scroll-locked",q1=function(r,o,i,l){var c=r.left,d=r.top,m=r.right,p=r.gap;return i===void 0&&(i="margin"),`
185
+ */const Xv=De("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Zv=[{id:"model",label:"Models",icon:Fv},{id:"providers",label:"Providers",icon:bh},{id:"channels",label:"Channels",icon:oc}];function Jv(){const{activeTab:r,setActiveTab:o}=Yr();return h.jsxs("aside",{className:"w-[240px] bg-transparent flex flex-col h-full py-6 px-4",children:[h.jsx("div",{className:"px-3 mb-8",children:h.jsxs("div",{className:"flex items-center gap-2.5 group cursor-pointer",children:[h.jsx("div",{className:"h-7 w-7 rounded-lg overflow-hidden flex items-center justify-center transition-transform duration-fast group-hover:scale-110",children:h.jsx("img",{src:"/logo.svg",alt:"NextClaw",className:"h-full w-full object-contain"})}),h.jsx("span",{className:"text-[15px] font-bold bg-gradient-to-r from-primary to-indigo-500 bg-clip-text text-transparent tracking-[-0.02em]",children:"NextClaw"})]})}),h.jsx("nav",{className:"flex-1",children:h.jsx("ul",{className:"space-y-1",children:Zv.map(i=>{const l=i.icon,c=r===i.id;return h.jsx("li",{children:h.jsxs("button",{onClick:()=>o(i.id),className:Ee("group w-full flex items-center gap-3 px-3 py-2 rounded-lg text-sm font-medium transition-all duration-fast",c?"bg-primary-100 text-primary-700":"text-gray-600 hover:bg-gray-100 hover:text-gray-900"),children:[h.jsx(l,{className:Ee("h-4 w-4 transition-transform duration-fast group-hover:scale-110",c?"text-primary":"text-gray-500")}),h.jsx("span",{className:"flex-1 text-left",children:i.label})]})},i.id)})})})]})}function e0({children:r}){return h.jsxs("div",{className:"h-screen flex bg-[hsl(40,20%,98%)] p-2",children:[h.jsx(Jv,{}),h.jsx("div",{className:"flex-1 flex flex-col min-w-0 bg-white rounded-[2rem] shadow-sm overflow-hidden border border-[hsl(40,10%,94%)]",children:h.jsx("main",{className:"flex-1 overflow-auto custom-scrollbar p-8",children:h.jsx("div",{className:"max-w-6xl mx-auto animate-fade-in h-full",children:r})})})]})}const yp=r=>typeof r=="boolean"?`${r}`:r===0?"0":r,vp=fh,t0=(r,o)=>i=>{var l;if((o==null?void 0:o.variants)==null)return vp(r,i==null?void 0:i.class,i==null?void 0:i.className);const{variants:c,defaultVariants:d}=o,m=Object.keys(c).map(g=>{const E=i==null?void 0:i[g],P=d==null?void 0:d[g];if(E===null)return null;const T=yp(E)||yp(P);return c[g][T]}),p=i&&Object.entries(i).reduce((g,E)=>{let[P,T]=E;return T===void 0||(g[P]=T),g},{}),x=o==null||(l=o.compoundVariants)===null||l===void 0?void 0:l.reduce((g,E)=>{let{class:P,className:T,...v}=E;return Object.entries(v).every(I=>{let[b,R]=I;return Array.isArray(R)?R.includes({...d,...p}[b]):{...d,...p}[b]===R})?[...g,P,T]:g},[]);return vp(r,m,x,i==null?void 0:i.class,i==null?void 0:i.className)},n0=t0("inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-all duration-fast focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-secondary hover:text-secondary-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-gray-200",ghost:"hover:bg-secondary hover:text-secondary-foreground",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground hover:bg-primary-600 active:bg-primary-700 shadow-sm",subtle:"bg-secondary text-secondary-foreground hover:bg-gray-200","primary-outline":"border-2 border-primary text-primary hover:bg-primary hover:text-primary-foreground"},size:{default:"h-10 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-12 rounded-xl px-6 text-base",xl:"h-14 rounded-xl px-8 text-base",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),xn=k.forwardRef(({className:r,variant:o,size:i,...l},c)=>h.jsx("button",{className:Ee(n0({variant:o,size:i,className:r})),ref:c,...l}));xn.displayName="Button";const Vu=k.forwardRef(({className:r,hover:o=!0,...i},l)=>h.jsx("div",{ref:l,className:Ee("rounded-xl border border-gray-200 bg-white text-card-foreground shadow-card transition-all duration-base",o&&"hover:shadow-card-hover hover:border-gray-300",r),...i}));Vu.displayName="Card";const r0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("flex flex-col space-y-2 p-6",r),...o}));r0.displayName="CardHeader";const o0=k.forwardRef(({className:r,...o},i)=>h.jsx("h3",{ref:i,className:Ee("text-lg font-semibold leading-tight tracking-tight text-gray-900",r),...o}));o0.displayName="CardTitle";const s0=k.forwardRef(({className:r,...o},i)=>h.jsx("p",{ref:i,className:Ee("text-sm text-gray-500 leading-relaxed",r),...o}));s0.displayName="CardDescription";const i0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("p-6 pt-0",r),...o}));i0.displayName="CardContent";const a0=k.forwardRef(({className:r,...o},i)=>h.jsx("div",{ref:i,className:Ee("flex items-center justify-between p-6 pt-0",r),...o}));a0.displayName="CardFooter";const Sn=k.forwardRef(({className:r,type:o,...i},l)=>h.jsx("input",{type:o,className:Ee("flex h-10 w-full rounded-lg border border-gray-200 bg-white px-3 py-2 text-sm file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-gray-400 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",r),ref:l,...i}));Sn.displayName="Input";const wn=k.forwardRef(({className:r,...o},i)=>h.jsx("label",{ref:i,className:Ee("text-sm font-medium leading-none text-gray-700 peer-disabled:cursor-not-allowed peer-disabled:opacity-70",r),...o}));wn.displayName="Label";function Ot({className:r,...o}){return h.jsx("div",{className:Ee("animate-pulse rounded-md bg-slate-200",r),...o})}const l0="http://127.0.0.1:18791",xa=(()=>{var r;return typeof window<"u"&&((r=window.location)!=null&&r.origin)?window.location.origin:l0})();async function vu(r,o={}){const i=`${xa}${r}`,l=await fetch(i,{headers:{"Content-Type":"application/json",...o.headers},...o}),c=await l.text();let d=null;if(c)try{d=JSON.parse(c)}catch{}if(!d){const m=c?c.slice(0,200):"";return{ok:!1,error:{code:"INVALID_RESPONSE",message:`Non-JSON response (${l.status} ${l.statusText})${m?`: ${m}`:""}`}}}return l.ok,d}const Xr={get:r=>vu(r,{method:"GET"}),put:(r,o)=>vu(r,{method:"PUT",body:JSON.stringify(o)}),post:(r,o)=>vu(r,{method:"POST",body:JSON.stringify(o)})};async function u0(){const r=await Xr.get("/api/config");if(!r.ok)throw new Error(r.error.message);return r.data}async function c0(){const r=await Xr.get("/api/config/meta");if(!r.ok)throw new Error(r.error.message);return r.data}async function d0(){const r=await Xr.get("/api/config/schema");if(!r.ok)throw new Error(r.error.message);return r.data}async function f0(r){const o=await Xr.put("/api/config/model",r);if(!o.ok)throw new Error(o.error.message);return o.data}async function p0(r,o){const i=await Xr.put(`/api/config/providers/${r}`,o);if(!i.ok)throw new Error(i.error.message);return i.data}async function h0(r,o){const i=await Xr.put(`/api/config/channels/${r}`,o);if(!i.ok)throw new Error(i.error.message);return i.data}async function m0(){const r=await Xr.post("/api/channels/feishu/probe",{});if(!r.ok)throw new Error(r.error.message);return r.data}var Ch=Jp();const Eh=Xp(Ch);var g0=r=>{switch(r){case"success":return w0;case"info":return S0;case"warning":return x0;case"error":return b0;default:return null}},y0=Array(12).fill(0),v0=({visible:r,className:o})=>K.createElement("div",{className:["sonner-loading-wrapper",o].filter(Boolean).join(" "),"data-visible":r},K.createElement("div",{className:"sonner-spinner"},y0.map((i,l)=>K.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${l}`})))),w0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),x0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),S0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),b0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},K.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),k0=K.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},K.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),K.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),C0=()=>{let[r,o]=K.useState(document.hidden);return K.useEffect(()=>{let i=()=>{o(document.hidden)};return document.addEventListener("visibilitychange",i),()=>window.removeEventListener("visibilitychange",i)},[]),r},Qu=1,E0=class{constructor(){this.subscribe=r=>(this.subscribers.push(r),()=>{let o=this.subscribers.indexOf(r);this.subscribers.splice(o,1)}),this.publish=r=>{this.subscribers.forEach(o=>o(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r]},this.create=r=>{var o;let{message:i,...l}=r,c=typeof(r==null?void 0:r.id)=="number"||((o=r.id)==null?void 0:o.length)>0?r.id:Qu++,d=this.toasts.find(p=>p.id===c),m=r.dismissible===void 0?!0:r.dismissible;return this.dismissedToasts.has(c)&&this.dismissedToasts.delete(c),d?this.toasts=this.toasts.map(p=>p.id===c?(this.publish({...p,...r,id:c,title:i}),{...p,...r,id:c,dismissible:m,title:i}):p):this.addToast({title:i,...l,dismissible:m,id:c}),c},this.dismiss=r=>(this.dismissedToasts.add(r),r||this.toasts.forEach(o=>{this.subscribers.forEach(i=>i({id:o.id,dismiss:!0}))}),this.subscribers.forEach(o=>o({id:r,dismiss:!0})),r),this.message=(r,o)=>this.create({...o,message:r}),this.error=(r,o)=>this.create({...o,message:r,type:"error"}),this.success=(r,o)=>this.create({...o,type:"success",message:r}),this.info=(r,o)=>this.create({...o,type:"info",message:r}),this.warning=(r,o)=>this.create({...o,type:"warning",message:r}),this.loading=(r,o)=>this.create({...o,type:"loading",message:r}),this.promise=(r,o)=>{if(!o)return;let i;o.loading!==void 0&&(i=this.create({...o,promise:r,type:"loading",message:o.loading,description:typeof o.description!="function"?o.description:void 0}));let l=r instanceof Promise?r:r(),c=i!==void 0,d,m=l.then(async x=>{if(d=["resolve",x],K.isValidElement(x))c=!1,this.create({id:i,type:"default",message:x});else if(P0(x)&&!x.ok){c=!1;let g=typeof o.error=="function"?await o.error(`HTTP error! status: ${x.status}`):o.error,E=typeof o.description=="function"?await o.description(`HTTP error! status: ${x.status}`):o.description;this.create({id:i,type:"error",message:g,description:E})}else if(o.success!==void 0){c=!1;let g=typeof o.success=="function"?await o.success(x):o.success,E=typeof o.description=="function"?await o.description(x):o.description;this.create({id:i,type:"success",message:g,description:E})}}).catch(async x=>{if(d=["reject",x],o.error!==void 0){c=!1;let g=typeof o.error=="function"?await o.error(x):o.error,E=typeof o.description=="function"?await o.description(x):o.description;this.create({id:i,type:"error",message:g,description:E})}}).finally(()=>{var x;c&&(this.dismiss(i),i=void 0),(x=o.finally)==null||x.call(o)}),p=()=>new Promise((x,g)=>m.then(()=>d[0]==="reject"?g(d[1]):x(d[1])).catch(g));return typeof i!="string"&&typeof i!="number"?{unwrap:p}:Object.assign(i,{unwrap:p})},this.custom=(r,o)=>{let i=(o==null?void 0:o.id)||Qu++;return this.create({jsx:r(i),id:i,...o}),i},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Pt=new E0,N0=(r,o)=>{let i=(o==null?void 0:o.id)||Qu++;return Pt.addToast({title:r,...o,id:i}),i},P0=r=>r&&typeof r=="object"&&"ok"in r&&typeof r.ok=="boolean"&&"status"in r&&typeof r.status=="number",j0=N0,R0=()=>Pt.toasts,M0=()=>Pt.getActiveToasts(),Sr=Object.assign(j0,{success:Pt.success,info:Pt.info,warning:Pt.warning,error:Pt.error,custom:Pt.custom,message:Pt.message,promise:Pt.promise,dismiss:Pt.dismiss,loading:Pt.loading},{getHistory:R0,getToasts:M0});function T0(r,{insertAt:o}={}){if(typeof document>"u")return;let i=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",o==="top"&&i.firstChild?i.insertBefore(l,i.firstChild):i.appendChild(l),l.styleSheet?l.styleSheet.cssText=r:l.appendChild(document.createTextNode(r))}T0(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
186
+ `);function fa(r){return r.label!==void 0}var O0=3,_0="32px",z0="16px",wp=4e3,I0=356,A0=14,L0=20,D0=200;function Zt(...r){return r.filter(Boolean).join(" ")}function F0(r){let[o,i]=r.split("-"),l=[];return o&&l.push(o),i&&l.push(i),l}var U0=r=>{var o,i,l,c,d,m,p,x,g,E,P;let{invert:T,toast:v,unstyled:I,interacting:b,setHeights:R,visibleToasts:D,heights:F,index:B,toasts:_,expanded:G,removeToast:ee,defaultRichColors:$,closeButton:X,style:he,cancelButtonStyle:ye,actionButtonStyle:Pe,className:ae="",descriptionClassName:Fe="",duration:Te,position:Be,gap:Oe,loadingIcon:xe,expandByDefault:H,classNames:W,icons:Q,closeButtonAriaLabel:N="Close toast",pauseWhenPageIsHidden:z}=r,[te,oe]=K.useState(null),[de,ve]=K.useState(null),[ce,be]=K.useState(!1),[je,Ze]=K.useState(!1),[nn,Jr]=K.useState(!1),[br,Go]=K.useState(!1),[qs,qo]=K.useState(!1),[Yo,eo]=K.useState(0),[Xo,Fn]=K.useState(0),_t=K.useRef(v.duration||Te||wp),to=K.useRef(null),rn=K.useRef(null),Ys=B===0,Xs=B+1<=D,dt=v.type,on=v.dismissible!==!1,no=v.className||"",Zs=v.descriptionClassName||"",sn=K.useMemo(()=>F.findIndex(pe=>pe.toastId===v.id)||0,[F,v.id]),kr=K.useMemo(()=>{var pe;return(pe=v.closeButton)!=null?pe:X},[v.closeButton,X]),Js=K.useMemo(()=>v.duration||Te||wp,[v.duration,Te]),ro=K.useRef(0),bn=K.useRef(0),ei=K.useRef(0),an=K.useRef(null),[Zo,Jo]=Be.split("-"),oo=K.useMemo(()=>F.reduce((pe,Ne,_e)=>_e>=sn?pe:pe+Ne.height,0),[F,sn]),so=C0(),Un=v.invert||T,ln=dt==="loading";bn.current=K.useMemo(()=>sn*Oe+oo,[sn,oo]),K.useEffect(()=>{_t.current=Js},[Js]),K.useEffect(()=>{be(!0)},[]),K.useEffect(()=>{let pe=rn.current;if(pe){let Ne=pe.getBoundingClientRect().height;return Fn(Ne),R(_e=>[{toastId:v.id,height:Ne,position:v.position},..._e]),()=>R(_e=>_e.filter(ft=>ft.toastId!==v.id))}},[R,v.id]),K.useLayoutEffect(()=>{if(!ce)return;let pe=rn.current,Ne=pe.style.height;pe.style.height="auto";let _e=pe.getBoundingClientRect().height;pe.style.height=Ne,Fn(_e),R(ft=>ft.find(yt=>yt.toastId===v.id)?ft.map(yt=>yt.toastId===v.id?{...yt,height:_e}:yt):[{toastId:v.id,height:_e,position:v.position},...ft])},[ce,v.title,v.description,R,v.id]);let Vt=K.useCallback(()=>{Ze(!0),eo(bn.current),R(pe=>pe.filter(Ne=>Ne.toastId!==v.id)),setTimeout(()=>{ee(v)},D0)},[v,ee,R,bn]);K.useEffect(()=>{if(v.promise&&dt==="loading"||v.duration===1/0||v.type==="loading")return;let pe;return G||b||z&&so?(()=>{if(ei.current<ro.current){let Ne=new Date().getTime()-ro.current;_t.current=_t.current-Ne}ei.current=new Date().getTime()})():_t.current!==1/0&&(ro.current=new Date().getTime(),pe=setTimeout(()=>{var Ne;(Ne=v.onAutoClose)==null||Ne.call(v,v),Vt()},_t.current)),()=>clearTimeout(pe)},[G,b,v,dt,z,so,Vt]),K.useEffect(()=>{v.delete&&Vt()},[Vt,v.delete]);function ti(){var pe,Ne,_e;return Q!=null&&Q.loading?K.createElement("div",{className:Zt(W==null?void 0:W.loader,(pe=v==null?void 0:v.classNames)==null?void 0:pe.loader,"sonner-loader"),"data-visible":dt==="loading"},Q.loading):xe?K.createElement("div",{className:Zt(W==null?void 0:W.loader,(Ne=v==null?void 0:v.classNames)==null?void 0:Ne.loader,"sonner-loader"),"data-visible":dt==="loading"},xe):K.createElement(v0,{className:Zt(W==null?void 0:W.loader,(_e=v==null?void 0:v.classNames)==null?void 0:_e.loader),visible:dt==="loading"})}return K.createElement("li",{tabIndex:0,ref:rn,className:Zt(ae,no,W==null?void 0:W.toast,(o=v==null?void 0:v.classNames)==null?void 0:o.toast,W==null?void 0:W.default,W==null?void 0:W[dt],(i=v==null?void 0:v.classNames)==null?void 0:i[dt]),"data-sonner-toast":"","data-rich-colors":(l=v.richColors)!=null?l:$,"data-styled":!(v.jsx||v.unstyled||I),"data-mounted":ce,"data-promise":!!v.promise,"data-swiped":qs,"data-removed":je,"data-visible":Xs,"data-y-position":Zo,"data-x-position":Jo,"data-index":B,"data-front":Ys,"data-swiping":nn,"data-dismissible":on,"data-type":dt,"data-invert":Un,"data-swipe-out":br,"data-swipe-direction":de,"data-expanded":!!(G||H&&ce),style:{"--index":B,"--toasts-before":B,"--z-index":_.length-B,"--offset":`${je?Yo:bn.current}px`,"--initial-height":H?"auto":`${Xo}px`,...he,...v.style},onDragEnd:()=>{Jr(!1),oe(null),an.current=null},onPointerDown:pe=>{ln||!on||(to.current=new Date,eo(bn.current),pe.target.setPointerCapture(pe.pointerId),pe.target.tagName!=="BUTTON"&&(Jr(!0),an.current={x:pe.clientX,y:pe.clientY}))},onPointerUp:()=>{var pe,Ne,_e,ft;if(br||!on)return;an.current=null;let yt=Number(((pe=rn.current)==null?void 0:pe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),vt=Number(((Ne=rn.current)==null?void 0:Ne.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Qt=new Date().getTime()-((_e=to.current)==null?void 0:_e.getTime()),rt=te==="x"?yt:vt,un=Math.abs(rt)/Qt;if(Math.abs(rt)>=L0||un>.11){eo(bn.current),(ft=v.onDismiss)==null||ft.call(v,v),ve(te==="x"?yt>0?"right":"left":vt>0?"down":"up"),Vt(),Go(!0),qo(!1);return}Jr(!1),oe(null)},onPointerMove:pe=>{var Ne,_e,ft,yt;if(!an.current||!on||((Ne=window.getSelection())==null?void 0:Ne.toString().length)>0)return;let vt=pe.clientY-an.current.y,Qt=pe.clientX-an.current.x,rt=(_e=r.swipeDirections)!=null?_e:F0(Be);!te&&(Math.abs(Qt)>1||Math.abs(vt)>1)&&oe(Math.abs(Qt)>Math.abs(vt)?"x":"y");let un={x:0,y:0};te==="y"?(rt.includes("top")||rt.includes("bottom"))&&(rt.includes("top")&&vt<0||rt.includes("bottom")&&vt>0)&&(un.y=vt):te==="x"&&(rt.includes("left")||rt.includes("right"))&&(rt.includes("left")&&Qt<0||rt.includes("right")&&Qt>0)&&(un.x=Qt),(Math.abs(un.x)>0||Math.abs(un.y)>0)&&qo(!0),(ft=rn.current)==null||ft.style.setProperty("--swipe-amount-x",`${un.x}px`),(yt=rn.current)==null||yt.style.setProperty("--swipe-amount-y",`${un.y}px`)}},kr&&!v.jsx?K.createElement("button",{"aria-label":N,"data-disabled":ln,"data-close-button":!0,onClick:ln||!on?()=>{}:()=>{var pe;Vt(),(pe=v.onDismiss)==null||pe.call(v,v)},className:Zt(W==null?void 0:W.closeButton,(c=v==null?void 0:v.classNames)==null?void 0:c.closeButton)},(d=Q==null?void 0:Q.close)!=null?d:k0):null,v.jsx||k.isValidElement(v.title)?v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title:K.createElement(K.Fragment,null,dt||v.icon||v.promise?K.createElement("div",{"data-icon":"",className:Zt(W==null?void 0:W.icon,(m=v==null?void 0:v.classNames)==null?void 0:m.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||ti():null,v.type!=="loading"?v.icon||(Q==null?void 0:Q[dt])||g0(dt):null):null,K.createElement("div",{"data-content":"",className:Zt(W==null?void 0:W.content,(p=v==null?void 0:v.classNames)==null?void 0:p.content)},K.createElement("div",{"data-title":"",className:Zt(W==null?void 0:W.title,(x=v==null?void 0:v.classNames)==null?void 0:x.title)},typeof v.title=="function"?v.title():v.title),v.description?K.createElement("div",{"data-description":"",className:Zt(Fe,Zs,W==null?void 0:W.description,(g=v==null?void 0:v.classNames)==null?void 0:g.description)},typeof v.description=="function"?v.description():v.description):null),k.isValidElement(v.cancel)?v.cancel:v.cancel&&fa(v.cancel)?K.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||ye,onClick:pe=>{var Ne,_e;fa(v.cancel)&&on&&((_e=(Ne=v.cancel).onClick)==null||_e.call(Ne,pe),Vt())},className:Zt(W==null?void 0:W.cancelButton,(E=v==null?void 0:v.classNames)==null?void 0:E.cancelButton)},v.cancel.label):null,k.isValidElement(v.action)?v.action:v.action&&fa(v.action)?K.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||Pe,onClick:pe=>{var Ne,_e;fa(v.action)&&((_e=(Ne=v.action).onClick)==null||_e.call(Ne,pe),!pe.defaultPrevented&&Vt())},className:Zt(W==null?void 0:W.actionButton,(P=v==null?void 0:v.classNames)==null?void 0:P.actionButton)},v.action.label):null))};function xp(){if(typeof window>"u"||typeof document>"u")return"ltr";let r=document.documentElement.getAttribute("dir");return r==="auto"||!r?window.getComputedStyle(document.documentElement).direction:r}function B0(r,o){let i={};return[r,o].forEach((l,c)=>{let d=c===1,m=d?"--mobile-offset":"--offset",p=d?z0:_0;function x(g){["top","right","bottom","left"].forEach(E=>{i[`${m}-${E}`]=typeof g=="number"?`${g}px`:g})}typeof l=="number"||typeof l=="string"?x(l):typeof l=="object"?["top","right","bottom","left"].forEach(g=>{l[g]===void 0?i[`${m}-${g}`]=p:i[`${m}-${g}`]=typeof l[g]=="number"?`${l[g]}px`:l[g]}):x(p)}),i}var W0=k.forwardRef(function(r,o){let{invert:i,position:l="bottom-right",hotkey:c=["altKey","KeyT"],expand:d,closeButton:m,className:p,offset:x,mobileOffset:g,theme:E="light",richColors:P,duration:T,style:v,visibleToasts:I=O0,toastOptions:b,dir:R=xp(),gap:D=A0,loadingIcon:F,icons:B,containerAriaLabel:_="Notifications",pauseWhenPageIsHidden:G}=r,[ee,$]=K.useState([]),X=K.useMemo(()=>Array.from(new Set([l].concat(ee.filter(z=>z.position).map(z=>z.position)))),[ee,l]),[he,ye]=K.useState([]),[Pe,ae]=K.useState(!1),[Fe,Te]=K.useState(!1),[Be,Oe]=K.useState(E!=="system"?E:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),xe=K.useRef(null),H=c.join("+").replace(/Key/g,"").replace(/Digit/g,""),W=K.useRef(null),Q=K.useRef(!1),N=K.useCallback(z=>{$(te=>{var oe;return(oe=te.find(de=>de.id===z.id))!=null&&oe.delete||Pt.dismiss(z.id),te.filter(({id:de})=>de!==z.id)})},[]);return K.useEffect(()=>Pt.subscribe(z=>{if(z.dismiss){$(te=>te.map(oe=>oe.id===z.id?{...oe,delete:!0}:oe));return}setTimeout(()=>{Eh.flushSync(()=>{$(te=>{let oe=te.findIndex(de=>de.id===z.id);return oe!==-1?[...te.slice(0,oe),{...te[oe],...z},...te.slice(oe+1)]:[z,...te]})})})}),[]),K.useEffect(()=>{if(E!=="system"){Oe(E);return}if(E==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Oe("dark"):Oe("light")),typeof window>"u")return;let z=window.matchMedia("(prefers-color-scheme: dark)");try{z.addEventListener("change",({matches:te})=>{Oe(te?"dark":"light")})}catch{z.addListener(({matches:oe})=>{try{Oe(oe?"dark":"light")}catch(de){console.error(de)}})}},[E]),K.useEffect(()=>{ee.length<=1&&ae(!1)},[ee]),K.useEffect(()=>{let z=te=>{var oe,de;c.every(ve=>te[ve]||te.code===ve)&&(ae(!0),(oe=xe.current)==null||oe.focus()),te.code==="Escape"&&(document.activeElement===xe.current||(de=xe.current)!=null&&de.contains(document.activeElement))&&ae(!1)};return document.addEventListener("keydown",z),()=>document.removeEventListener("keydown",z)},[c]),K.useEffect(()=>{if(xe.current)return()=>{W.current&&(W.current.focus({preventScroll:!0}),W.current=null,Q.current=!1)}},[xe.current]),K.createElement("section",{ref:o,"aria-label":`${_} ${H}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},X.map((z,te)=>{var oe;let[de,ve]=z.split("-");return ee.length?K.createElement("ol",{key:z,dir:R==="auto"?xp():R,tabIndex:-1,ref:xe,className:p,"data-sonner-toaster":!0,"data-theme":Be,"data-y-position":de,"data-lifted":Pe&&ee.length>1&&!d,"data-x-position":ve,style:{"--front-toast-height":`${((oe=he[0])==null?void 0:oe.height)||0}px`,"--width":`${I0}px`,"--gap":`${D}px`,...v,...B0(x,g)},onBlur:ce=>{Q.current&&!ce.currentTarget.contains(ce.relatedTarget)&&(Q.current=!1,W.current&&(W.current.focus({preventScroll:!0}),W.current=null))},onFocus:ce=>{ce.target instanceof HTMLElement&&ce.target.dataset.dismissible==="false"||Q.current||(Q.current=!0,W.current=ce.relatedTarget)},onMouseEnter:()=>ae(!0),onMouseMove:()=>ae(!0),onMouseLeave:()=>{Fe||ae(!1)},onDragEnd:()=>ae(!1),onPointerDown:ce=>{ce.target instanceof HTMLElement&&ce.target.dataset.dismissible==="false"||Te(!0)},onPointerUp:()=>Te(!1)},ee.filter(ce=>!ce.position&&te===0||ce.position===z).map((ce,be)=>{var je,Ze;return K.createElement(U0,{key:ce.id,icons:B,index:be,toast:ce,defaultRichColors:P,duration:(je=b==null?void 0:b.duration)!=null?je:T,className:b==null?void 0:b.className,descriptionClassName:b==null?void 0:b.descriptionClassName,invert:i,visibleToasts:I,closeButton:(Ze=b==null?void 0:b.closeButton)!=null?Ze:m,interacting:Fe,position:z,style:b==null?void 0:b.style,unstyled:b==null?void 0:b.unstyled,classNames:b==null?void 0:b.classNames,cancelButtonStyle:b==null?void 0:b.cancelButtonStyle,actionButtonStyle:b==null?void 0:b.actionButtonStyle,removeToast:N,toasts:ee.filter(nn=>nn.position==ce.position),heights:he.filter(nn=>nn.position==ce.position),setHeights:ye,expandByDefault:d,gap:D,loadingIcon:F,expanded:Pe,pauseWhenPageIsHidden:G,swipeDirections:r.swipeDirections})})):null}))});const Sp={model:{zh:"模型",en:"Model"},providers:{zh:"提供商",en:"Providers"},channels:{zh:"渠道",en:"Channels"},enabled:{zh:"启用",en:"Enabled"},disabled:{zh:"禁用",en:"Disabled"},save:{zh:"保存",en:"Save"},cancel:{zh:"取消",en:"Cancel"},delete:{zh:"删除",en:"Delete"},add:{zh:"添加",en:"Add"},edit:{zh:"编辑",en:"Edit"},loading:{zh:"加载中...",en:"Loading..."},success:{zh:"成功",en:"Success"},error:{zh:"错误",en:"Error"},modelName:{zh:"模型",en:"Model"},workspace:{zh:"工作空间",en:"Workspace"},maxTokens:{zh:"最大 Token 数",en:"Max Tokens"},temperature:{zh:"温度",en:"Temperature"},maxToolIterations:{zh:"最大工具迭代次数",en:"Max Tool Iterations"},apiKey:{zh:"API 密钥",en:"API Key"},apiBase:{zh:"API Base",en:"API Base"},extraHeaders:{zh:"额外请求头",en:"Extra Headers"},wireApi:{zh:"请求接口",en:"Wire API"},wireApiAuto:{zh:"自动(优先 Chat,必要时 Responses)",en:"Auto (Chat with fallback)"},wireApiChat:{zh:"Chat Completions",en:"Chat Completions"},wireApiResponses:{zh:"Responses",en:"Responses"},apiKeySet:{zh:"已设置",en:"Set"},apiKeyNotSet:{zh:"未设置",en:"Not Set"},showKey:{zh:"显示密钥",en:"Show Key"},hideKey:{zh:"隐藏密钥",en:"Hide Key"},allowFrom:{zh:"允许来源",en:"Allow From"},token:{zh:"Token",en:"Token"},botToken:{zh:"Bot Token",en:"Bot Token"},appToken:{zh:"App Token",en:"App Token"},appId:{zh:"App ID",en:"App ID"},appSecret:{zh:"App Secret",en:"App Secret"},markdownSupport:{zh:"Markdown 支持",en:"Markdown Support"},clientId:{zh:"Client ID",en:"Client ID"},clientSecret:{zh:"Client Secret",en:"Client Secret"},encryptKey:{zh:"加密密钥",en:"Encrypt Key"},verificationToken:{zh:"验证令牌",en:"Verification Token"},bridgeUrl:{zh:"桥接 URL",en:"Bridge URL"},gatewayUrl:{zh:"网关 URL",en:"Gateway URL"},proxy:{zh:"代理",en:"Proxy"},intents:{zh:"Intents",en:"Intents"},mode:{zh:"模式",en:"Mode"},webhookPath:{zh:"Webhook 路径",en:"Webhook Path"},groupPolicy:{zh:"群组策略",en:"Group Policy"},consentGranted:{zh:"同意条款",en:"Consent Granted"},imapHost:{zh:"IMAP 服务器",en:"IMAP Host"},imapPort:{zh:"IMAP 端口",en:"IMAP Port"},imapUsername:{zh:"IMAP 用户名",en:"IMAP Username"},imapPassword:{zh:"IMAP 密码",en:"IMAP Password"},imapMailbox:{zh:"IMAP 邮箱",en:"IMAP Mailbox"},imapUseSsl:{zh:"IMAP 使用 SSL",en:"IMAP Use SSL"},smtpHost:{zh:"SMTP 服务器",en:"SMTP Host"},smtpPort:{zh:"SMTP 端口",en:"SMTP Port"},smtpUsername:{zh:"SMTP 用户名",en:"SMTP Username"},smtpPassword:{zh:"SMTP 密码",en:"SMTP Password"},smtpUseTls:{zh:"SMTP 使用 TLS",en:"SMTP Use TLS"},smtpUseSsl:{zh:"SMTP 使用 SSL",en:"SMTP Use SSL"},fromAddress:{zh:"发件地址",en:"From Address"},autoReplyEnabled:{zh:"自动回复已启用",en:"Auto Reply Enabled"},pollIntervalSeconds:{zh:"轮询间隔(秒)",en:"Poll Interval (s)"},markSeen:{zh:"标记为已读",en:"Mark Seen"},maxBodyChars:{zh:"最大正文字符数",en:"Max Body Chars"},subjectPrefix:{zh:"主题前缀",en:"Subject Prefix"},baseUrl:{zh:"Base URL",en:"Base URL"},socketUrl:{zh:"Socket URL",en:"Socket URL"},socketPath:{zh:"Socket 路径",en:"Socket Path"},socketDisableMsgpack:{zh:"禁用 Msgpack",en:"Disable Msgpack"},socketReconnectDelayMs:{zh:"重连延迟(ms)",en:"Reconnect Delay (ms)"},socketMaxReconnectDelayMs:{zh:"最大重连延迟(ms)",en:"Max Reconnect Delay (ms)"},socketConnectTimeoutMs:{zh:"连接超时(ms)",en:"Connect Timeout (ms)"},refreshIntervalMs:{zh:"刷新间隔(ms)",en:"Refresh Interval (ms)"},watchTimeoutMs:{zh:"监视超时(ms)",en:"Watch Timeout (ms)"},watchLimit:{zh:"监视限制",en:"Watch Limit"},retryDelayMs:{zh:"重试延迟(ms)",en:"Retry Delay (ms)"},maxRetryAttempts:{zh:"最大重试次数",en:"Max Retry Attempts"},clawToken:{zh:"Claw Token",en:"Claw Token"},agentUserId:{zh:"代理用户ID",en:"Agent User ID"},sessions:{zh:"会话",en:"Sessions"},panels:{zh:"面板",en:"Panels"},mentionRequireInGroups:{zh:"群组中需要@",en:"Require Mention in Groups"},groups:{zh:"群组",en:"Groups"},replyDelayMode:{zh:"回复延迟模式",en:"Reply Delay Mode"},replyDelayMs:{zh:"回复延迟(ms)",en:"Reply Delay (ms)"},secret:{zh:"密钥",en:"Secret"},saveVerifyConnect:{zh:"保存并验证 / 连接",en:"Save & Verify / Connect"},connected:{zh:"已连接",en:"Connected"},disconnected:{zh:"未连接",en:"Disconnected"},connecting:{zh:"连接中...",en:"Connecting..."},feishuConnecting:{zh:"验证 / 连接中...",en:"Verifying / connecting..."},configSaved:{zh:"配置已保存",en:"Configuration saved"},configSavedApplied:{zh:"配置已保存并已应用",en:"Configuration saved and applied"},configSaveFailed:{zh:"保存配置失败",en:"Failed to save configuration"},configReloaded:{zh:"配置已重载",en:"Configuration reloaded"},configReloadFailed:{zh:"重载配置失败",en:"Failed to reload configuration"},feishuVerifySuccess:{zh:"验证成功,请到飞书开放平台完成事件订阅与发布后再开始使用。",en:"Verified. Please finish Feishu event subscription and app publishing before using."},feishuVerifyFailed:{zh:"验证失败",en:"Verification failed"},enterTag:{zh:"输入后按回车...",en:"Type and press Enter..."},headerName:{zh:"Header 名称",en:"Header Name"},headerValue:{zh:"Header 值",en:"Header Value"}};function Y(r,o="en"){var i,l;return((i=Sp[r])==null?void 0:i[o])||((l=Sp[r])==null?void 0:l.en)||r}function Ks(){return ec({queryKey:["config"],queryFn:u0,staleTime:3e4,refetchOnWindowFocus:!0})}function sc(){return ec({queryKey:["config-meta"],queryFn:c0,staleTime:1/0})}function Gs(){return ec({queryKey:["config-schema"],queryFn:d0,staleTime:1/0})}function V0(){const r=Hs();return tc({mutationFn:f0,onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSaved"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function Q0(){const r=Hs();return tc({mutationFn:({provider:o,data:i})=>p0(o,i),onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSaved"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function $0(){const r=Hs();return tc({mutationFn:({channel:o,data:i})=>h0(o,i),onSuccess:()=>{r.invalidateQueries({queryKey:["config"]}),Sr.success(Y("configSavedApplied"))},onError:o=>{Sr.error(Y("configSaveFailed")+": "+o.message)}})}function H0(r){return Array.isArray(r)?r.filter(o=>typeof o=="string").join("."):r}function Wt(r,o){if(!o)return;const i=H0(r),l=o[i];if(l)return l;const c=i.split(".");for(const[d,m]of Object.entries(o)){if(!d.includes("*"))continue;const p=d.split(".");if(p.length!==c.length)continue;let x=!0;for(let g=0;g<c.length;g+=1)if(p[g]!=="*"&&p[g]!==c[g]){x=!1;break}if(x)return m}}function bp(){const{data:r,isLoading:o}=Ks(),{data:i}=Gs(),l=V0(),[c,d]=k.useState(""),[m,p]=k.useState(""),[x,g]=k.useState(8192),[E,P]=k.useState(.7),T=i==null?void 0:i.uiHints,v=Wt("agents.defaults.model",T),I=Wt("agents.defaults.workspace",T),b=Wt("agents.defaults.maxTokens",T),R=Wt("agents.defaults.temperature",T);k.useEffect(()=>{var F;(F=r==null?void 0:r.agents)!=null&&F.defaults&&(d(r.agents.defaults.model||""),p(r.agents.defaults.workspace||""),g(r.agents.defaults.maxTokens||8192),P(r.agents.defaults.temperature||.7))},[r]);const D=F=>{F.preventDefault(),l.mutate({model:c})};return o?h.jsxs("div",{className:"max-w-2xl space-y-6",children:[h.jsxs("div",{className:"space-y-2",children:[h.jsx(Ot,{className:"h-8 w-32"}),h.jsx(Ot,{className:"h-4 w-48"})]}),h.jsxs(Vu,{className:"rounded-2xl border-gray-200 p-6",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[h.jsx(Ot,{className:"h-12 w-12 rounded-xl"}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(Ot,{className:"h-5 w-24"}),h.jsx(Ot,{className:"h-3 w-32"})]})]}),h.jsx(Ot,{className:"h-4 w-20 mb-2"}),h.jsx(Ot,{className:"h-10 w-full rounded-xl"})]}),h.jsxs(Vu,{className:"rounded-2xl border-gray-200 p-6",children:[h.jsx(Ot,{className:"h-5 w-24 mb-2"}),h.jsx(Ot,{className:"h-3 w-40 mb-6"}),h.jsxs("div",{className:"space-y-6",children:[h.jsxs("div",{children:[h.jsx(Ot,{className:"h-4 w-28 mb-3"}),h.jsx(Ot,{className:"h-2 w-full rounded-full"})]}),h.jsxs("div",{children:[h.jsx(Ot,{className:"h-4 w-32 mb-3"}),h.jsx(Ot,{className:"h-2 w-full rounded-full"})]})]})]})]}):h.jsxs("div",{className:"max-w-4xl animate-fade-in pb-20",children:[h.jsxs("div",{className:"mb-10",children:[h.jsx("h2",{className:"text-2xl font-bold text-gray-900",children:"Model Configuration"}),h.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Configure default AI model and behavior parameters"})]}),h.jsxs("form",{onSubmit:D,className:"space-y-8",children:[h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[h.jsxs("div",{className:"p-8 rounded-2xl bg-gray-50 border border-gray-200",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(bh,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Default Model"})]}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(wn,{htmlFor:"model",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(v==null?void 0:v.label)??"Model Name"}),h.jsx(Sn,{id:"model",value:c,onChange:F=>d(F.target.value),placeholder:(v==null?void 0:v.placeholder)??"minimax/MiniMax-M2.1",className:"h-12 px-4 rounded-xl"}),h.jsx("p",{className:"text-xs text-gray-400",children:(v==null?void 0:v.help)??"Examples: minimax/MiniMax-M2.5 · minimax/MiniMax-M2.1 · openrouter/anthropic/claude-3.5-sonnet · openrouter/openai/gpt-4o-mini"})]})]}),h.jsxs("div",{className:"p-8 rounded-2xl bg-gray-50 border border-gray-200",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-8",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(Vv,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Workspace"})]}),h.jsxs("div",{className:"space-y-2",children:[h.jsx(wn,{htmlFor:"workspace",className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(I==null?void 0:I.label)??"Default Path"}),h.jsx(Sn,{id:"workspace",value:m,onChange:F=>p(F.target.value),placeholder:(I==null?void 0:I.placeholder)??"/path/to/workspace",className:"h-12 px-4 rounded-xl"})]})]})]}),h.jsxs("div",{className:"p-8 rounded-2xl bg-white border border-gray-200 shadow-card",children:[h.jsxs("div",{className:"flex items-center gap-4 mb-10",children:[h.jsx("div",{className:"h-10 w-10 rounded-xl bg-primary flex items-center justify-center text-white",children:h.jsx(Gv,{className:"h-5 w-5"})}),h.jsx("h3",{className:"text-lg font-bold text-gray-900",children:"Generation Parameters"})]}),h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-12",children:[h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{className:"flex justify-between items-center mb-2",children:[h.jsx(wn,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(b==null?void 0:b.label)??"Max Tokens"}),h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:x.toLocaleString()})]}),h.jsx("input",{type:"range",min:"1000",max:"32000",step:"1000",value:x,onChange:F=>g(parseInt(F.target.value)),className:"w-full h-1 bg-gray-200 rounded-full appearance-none cursor-pointer accent-primary"})]}),h.jsxs("div",{className:"space-y-4",children:[h.jsxs("div",{className:"flex justify-between items-center mb-2",children:[h.jsx(wn,{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:(R==null?void 0:R.label)??"Temperature"}),h.jsx("span",{className:"text-sm font-semibold text-gray-900",children:E})]}),h.jsx("input",{type:"range",min:"0",max:"2",step:"0.1",value:E,onChange:F=>P(parseFloat(F.target.value)),className:"w-full h-1 bg-gray-200 rounded-full appearance-none cursor-pointer accent-primary"})]})]})]}),h.jsx("div",{className:"flex justify-end pt-4",children:h.jsx(xn,{type:"submit",disabled:l.isPending,size:"lg",children:l.isPending?h.jsx(Qv,{className:"h-5 w-5 animate-spin"}):"Save Changes"})})]})]})}function xr(r,o,{checkForDefaultPrevented:i=!0}={}){return function(c){if(r==null||r(c),i===!1||!c.defaultPrevented)return o==null?void 0:o(c)}}function kp(r,o){if(typeof r=="function")return r(o);r!=null&&(r.current=o)}function Nh(...r){return o=>{let i=!1;const l=r.map(c=>{const d=kp(c,o);return!i&&typeof d=="function"&&(i=!0),d});if(i)return()=>{for(let c=0;c<l.length;c++){const d=l[c];typeof d=="function"?d():kp(r[c],null)}}}}function Zr(...r){return k.useCallback(Nh(...r),r)}function K0(r,o){const i=k.createContext(o),l=d=>{const{children:m,...p}=d,x=k.useMemo(()=>p,Object.values(p));return h.jsx(i.Provider,{value:x,children:m})};l.displayName=r+"Provider";function c(d){const m=k.useContext(i);if(m)return m;if(o!==void 0)return o;throw new Error(`\`${d}\` must be used within \`${r}\``)}return[l,c]}function G0(r,o=[]){let i=[];function l(d,m){const p=k.createContext(m),x=i.length;i=[...i,m];const g=P=>{var D;const{scope:T,children:v,...I}=P,b=((D=T==null?void 0:T[r])==null?void 0:D[x])||p,R=k.useMemo(()=>I,Object.values(I));return h.jsx(b.Provider,{value:R,children:v})};g.displayName=d+"Provider";function E(P,T){var b;const v=((b=T==null?void 0:T[r])==null?void 0:b[x])||p,I=k.useContext(v);if(I)return I;if(m!==void 0)return m;throw new Error(`\`${P}\` must be used within \`${d}\``)}return[g,E]}const c=()=>{const d=i.map(m=>k.createContext(m));return function(p){const x=(p==null?void 0:p[r])||d;return k.useMemo(()=>({[`__scope${r}`]:{...p,[r]:x}}),[p,x])}};return c.scopeName=r,[l,q0(c,...o)]}function q0(...r){const o=r[0];if(r.length===1)return o;const i=()=>{const l=r.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(d){const m=l.reduce((p,{useScope:x,scopeName:g})=>{const P=x(d)[`__scope${g}`];return{...p,...P}},{});return k.useMemo(()=>({[`__scope${o.scopeName}`]:m}),[m])}};return i.scopeName=o.scopeName,i}var Fs=globalThis!=null&&globalThis.document?k.useLayoutEffect:()=>{},Y0=Zp[" useId ".trim().toString()]||(()=>{}),X0=0;function wu(r){const[o,i]=k.useState(Y0());return Fs(()=>{i(l=>l??String(X0++))},[r]),r||(o?`radix-${o}`:"")}var Z0=Zp[" useInsertionEffect ".trim().toString()]||Fs;function J0({prop:r,defaultProp:o,onChange:i=()=>{},caller:l}){const[c,d,m]=e1({defaultProp:o,onChange:i}),p=r!==void 0,x=p?r:c;{const E=k.useRef(r!==void 0);k.useEffect(()=>{const P=E.current;P!==p&&console.warn(`${l} is changing from ${P?"controlled":"uncontrolled"} to ${p?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),E.current=p},[p,l])}const g=k.useCallback(E=>{var P;if(p){const T=t1(E)?E(r):E;T!==r&&((P=m.current)==null||P.call(m,T))}else d(E)},[p,r,d,m]);return[x,g]}function e1({defaultProp:r,onChange:o}){const[i,l]=k.useState(r),c=k.useRef(i),d=k.useRef(o);return Z0(()=>{d.current=o},[o]),k.useEffect(()=>{var m;c.current!==i&&((m=d.current)==null||m.call(d,i),c.current=i)},[i,c]),[i,l,d]}function t1(r){return typeof r=="function"}function Ph(r){const o=n1(r),i=k.forwardRef((l,c)=>{const{children:d,...m}=l,p=k.Children.toArray(d),x=p.find(o1);if(x){const g=x.props.children,E=p.map(P=>P===x?k.Children.count(g)>1?k.Children.only(null):k.isValidElement(g)?g.props.children:null:P);return h.jsx(o,{...m,ref:c,children:k.isValidElement(g)?k.cloneElement(g,void 0,E):null})}return h.jsx(o,{...m,ref:c,children:d})});return i.displayName=`${r}.Slot`,i}function n1(r){const o=k.forwardRef((i,l)=>{const{children:c,...d}=i;if(k.isValidElement(c)){const m=i1(c),p=s1(d,c.props);return c.type!==k.Fragment&&(p.ref=l?Nh(l,m):m),k.cloneElement(c,p)}return k.Children.count(c)>1?k.Children.only(null):null});return o.displayName=`${r}.SlotClone`,o}var r1=Symbol("radix.slottable");function o1(r){return k.isValidElement(r)&&typeof r.type=="function"&&"__radixId"in r.type&&r.type.__radixId===r1}function s1(r,o){const i={...o};for(const l in o){const c=r[l],d=o[l];/^on[A-Z]/.test(l)?c&&d?i[l]=(...p)=>{const x=d(...p);return c(...p),x}:c&&(i[l]=c):l==="style"?i[l]={...c,...d}:l==="className"&&(i[l]=[c,d].filter(Boolean).join(" "))}return{...r,...i}}function i1(r){var l,c;let o=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,i=o&&"isReactWarning"in o&&o.isReactWarning;return i?r.ref:(o=(c=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:c.get,i=o&&"isReactWarning"in o&&o.isReactWarning,i?r.props.ref:r.props.ref||r.ref)}var a1=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Dn=a1.reduce((r,o)=>{const i=Ph(`Primitive.${o}`),l=k.forwardRef((c,d)=>{const{asChild:m,...p}=c,x=m?i:o;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),h.jsx(x,{...p,ref:d})});return l.displayName=`Primitive.${o}`,{...r,[o]:l}},{});function l1(r,o){r&&Ch.flushSync(()=>r.dispatchEvent(o))}function Us(r){const o=k.useRef(r);return k.useEffect(()=>{o.current=r}),k.useMemo(()=>(...i)=>{var l;return(l=o.current)==null?void 0:l.call(o,...i)},[])}function u1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r);k.useEffect(()=>{const l=c=>{c.key==="Escape"&&i(c)};return o.addEventListener("keydown",l,{capture:!0}),()=>o.removeEventListener("keydown",l,{capture:!0})},[i,o])}var c1="DismissableLayer",$u="dismissableLayer.update",d1="dismissableLayer.pointerDownOutside",f1="dismissableLayer.focusOutside",Cp,jh=k.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Rh=k.forwardRef((r,o)=>{const{disableOutsidePointerEvents:i=!1,onEscapeKeyDown:l,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:m,onDismiss:p,...x}=r,g=k.useContext(jh),[E,P]=k.useState(null),T=(E==null?void 0:E.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,v]=k.useState({}),I=Zr(o,$=>P($)),b=Array.from(g.layers),[R]=[...g.layersWithOutsidePointerEventsDisabled].slice(-1),D=b.indexOf(R),F=E?b.indexOf(E):-1,B=g.layersWithOutsidePointerEventsDisabled.size>0,_=F>=D,G=m1($=>{const X=$.target,he=[...g.branches].some(ye=>ye.contains(X));!_||he||(c==null||c($),m==null||m($),$.defaultPrevented||p==null||p())},T),ee=g1($=>{const X=$.target;[...g.branches].some(ye=>ye.contains(X))||(d==null||d($),m==null||m($),$.defaultPrevented||p==null||p())},T);return u1($=>{F===g.layers.size-1&&(l==null||l($),!$.defaultPrevented&&p&&($.preventDefault(),p()))},T),k.useEffect(()=>{if(E)return i&&(g.layersWithOutsidePointerEventsDisabled.size===0&&(Cp=T.body.style.pointerEvents,T.body.style.pointerEvents="none"),g.layersWithOutsidePointerEventsDisabled.add(E)),g.layers.add(E),Ep(),()=>{i&&g.layersWithOutsidePointerEventsDisabled.size===1&&(T.body.style.pointerEvents=Cp)}},[E,T,i,g]),k.useEffect(()=>()=>{E&&(g.layers.delete(E),g.layersWithOutsidePointerEventsDisabled.delete(E),Ep())},[E,g]),k.useEffect(()=>{const $=()=>v({});return document.addEventListener($u,$),()=>document.removeEventListener($u,$)},[]),h.jsx(Dn.div,{...x,ref:I,style:{pointerEvents:B?_?"auto":"none":void 0,...r.style},onFocusCapture:xr(r.onFocusCapture,ee.onFocusCapture),onBlurCapture:xr(r.onBlurCapture,ee.onBlurCapture),onPointerDownCapture:xr(r.onPointerDownCapture,G.onPointerDownCapture)})});Rh.displayName=c1;var p1="DismissableLayerBranch",h1=k.forwardRef((r,o)=>{const i=k.useContext(jh),l=k.useRef(null),c=Zr(o,l);return k.useEffect(()=>{const d=l.current;if(d)return i.branches.add(d),()=>{i.branches.delete(d)}},[i.branches]),h.jsx(Dn.div,{...r,ref:c})});h1.displayName=p1;function m1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r),l=k.useRef(!1),c=k.useRef(()=>{});return k.useEffect(()=>{const d=p=>{if(p.target&&!l.current){let x=function(){Mh(d1,i,g,{discrete:!0})};const g={originalEvent:p};p.pointerType==="touch"?(o.removeEventListener("click",c.current),c.current=x,o.addEventListener("click",c.current,{once:!0})):x()}else o.removeEventListener("click",c.current);l.current=!1},m=window.setTimeout(()=>{o.addEventListener("pointerdown",d)},0);return()=>{window.clearTimeout(m),o.removeEventListener("pointerdown",d),o.removeEventListener("click",c.current)}},[o,i]),{onPointerDownCapture:()=>l.current=!0}}function g1(r,o=globalThis==null?void 0:globalThis.document){const i=Us(r),l=k.useRef(!1);return k.useEffect(()=>{const c=d=>{d.target&&!l.current&&Mh(f1,i,{originalEvent:d},{discrete:!1})};return o.addEventListener("focusin",c),()=>o.removeEventListener("focusin",c)},[o,i]),{onFocusCapture:()=>l.current=!0,onBlurCapture:()=>l.current=!1}}function Ep(){const r=new CustomEvent($u);document.dispatchEvent(r)}function Mh(r,o,i,{discrete:l}){const c=i.originalEvent.target,d=new CustomEvent(r,{bubbles:!1,cancelable:!0,detail:i});o&&c.addEventListener(r,o,{once:!0}),l?l1(c,d):c.dispatchEvent(d)}var xu="focusScope.autoFocusOnMount",Su="focusScope.autoFocusOnUnmount",Np={bubbles:!1,cancelable:!0},y1="FocusScope",Th=k.forwardRef((r,o)=>{const{loop:i=!1,trapped:l=!1,onMountAutoFocus:c,onUnmountAutoFocus:d,...m}=r,[p,x]=k.useState(null),g=Us(c),E=Us(d),P=k.useRef(null),T=Zr(o,b=>x(b)),v=k.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;k.useEffect(()=>{if(l){let b=function(B){if(v.paused||!p)return;const _=B.target;p.contains(_)?P.current=_:ur(P.current,{select:!0})},R=function(B){if(v.paused||!p)return;const _=B.relatedTarget;_!==null&&(p.contains(_)||ur(P.current,{select:!0}))},D=function(B){if(document.activeElement===document.body)for(const G of B)G.removedNodes.length>0&&ur(p)};document.addEventListener("focusin",b),document.addEventListener("focusout",R);const F=new MutationObserver(D);return p&&F.observe(p,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",R),F.disconnect()}}},[l,p,v.paused]),k.useEffect(()=>{if(p){jp.add(v);const b=document.activeElement;if(!p.contains(b)){const D=new CustomEvent(xu,Np);p.addEventListener(xu,g),p.dispatchEvent(D),D.defaultPrevented||(v1(k1(Oh(p)),{select:!0}),document.activeElement===b&&ur(p))}return()=>{p.removeEventListener(xu,g),setTimeout(()=>{const D=new CustomEvent(Su,Np);p.addEventListener(Su,E),p.dispatchEvent(D),D.defaultPrevented||ur(b??document.body,{select:!0}),p.removeEventListener(Su,E),jp.remove(v)},0)}}},[p,g,E,v]);const I=k.useCallback(b=>{if(!i&&!l||v.paused)return;const R=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,D=document.activeElement;if(R&&D){const F=b.currentTarget,[B,_]=w1(F);B&&_?!b.shiftKey&&D===_?(b.preventDefault(),i&&ur(B,{select:!0})):b.shiftKey&&D===B&&(b.preventDefault(),i&&ur(_,{select:!0})):D===F&&b.preventDefault()}},[i,l,v.paused]);return h.jsx(Dn.div,{tabIndex:-1,...m,ref:T,onKeyDown:I})});Th.displayName=y1;function v1(r,{select:o=!1}={}){const i=document.activeElement;for(const l of r)if(ur(l,{select:o}),document.activeElement!==i)return}function w1(r){const o=Oh(r),i=Pp(o,r),l=Pp(o.reverse(),r);return[i,l]}function Oh(r){const o=[],i=document.createTreeWalker(r,NodeFilter.SHOW_ELEMENT,{acceptNode:l=>{const c=l.tagName==="INPUT"&&l.type==="hidden";return l.disabled||l.hidden||c?NodeFilter.FILTER_SKIP:l.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;i.nextNode();)o.push(i.currentNode);return o}function Pp(r,o){for(const i of r)if(!x1(i,{upTo:o}))return i}function x1(r,{upTo:o}){if(getComputedStyle(r).visibility==="hidden")return!0;for(;r;){if(o!==void 0&&r===o)return!1;if(getComputedStyle(r).display==="none")return!0;r=r.parentElement}return!1}function S1(r){return r instanceof HTMLInputElement&&"select"in r}function ur(r,{select:o=!1}={}){if(r&&r.focus){const i=document.activeElement;r.focus({preventScroll:!0}),r!==i&&S1(r)&&o&&r.select()}}var jp=b1();function b1(){let r=[];return{add(o){const i=r[0];o!==i&&(i==null||i.pause()),r=Rp(r,o),r.unshift(o)},remove(o){var i;r=Rp(r,o),(i=r[0])==null||i.resume()}}}function Rp(r,o){const i=[...r],l=i.indexOf(o);return l!==-1&&i.splice(l,1),i}function k1(r){return r.filter(o=>o.tagName!=="A")}var C1="Portal",_h=k.forwardRef((r,o)=>{var p;const{container:i,...l}=r,[c,d]=k.useState(!1);Fs(()=>d(!0),[]);const m=i||c&&((p=globalThis==null?void 0:globalThis.document)==null?void 0:p.body);return m?Eh.createPortal(h.jsx(Dn.div,{...l,ref:o}),m):null});_h.displayName=C1;function E1(r,o){return k.useReducer((i,l)=>o[i][l]??i,r)}var Pa=r=>{const{present:o,children:i}=r,l=N1(o),c=typeof i=="function"?i({present:l.isPresent}):k.Children.only(i),d=Zr(l.ref,P1(c));return typeof i=="function"||l.isPresent?k.cloneElement(c,{ref:d}):null};Pa.displayName="Presence";function N1(r){const[o,i]=k.useState(),l=k.useRef(null),c=k.useRef(r),d=k.useRef("none"),m=r?"mounted":"unmounted",[p,x]=E1(m,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return k.useEffect(()=>{const g=pa(l.current);d.current=p==="mounted"?g:"none"},[p]),Fs(()=>{const g=l.current,E=c.current;if(E!==r){const T=d.current,v=pa(g);r?x("MOUNT"):v==="none"||(g==null?void 0:g.display)==="none"?x("UNMOUNT"):x(E&&T!==v?"ANIMATION_OUT":"UNMOUNT"),c.current=r}},[r,x]),Fs(()=>{if(o){let g;const E=o.ownerDocument.defaultView??window,P=v=>{const b=pa(l.current).includes(CSS.escape(v.animationName));if(v.target===o&&b&&(x("ANIMATION_END"),!c.current)){const R=o.style.animationFillMode;o.style.animationFillMode="forwards",g=E.setTimeout(()=>{o.style.animationFillMode==="forwards"&&(o.style.animationFillMode=R)})}},T=v=>{v.target===o&&(d.current=pa(l.current))};return o.addEventListener("animationstart",T),o.addEventListener("animationcancel",P),o.addEventListener("animationend",P),()=>{E.clearTimeout(g),o.removeEventListener("animationstart",T),o.removeEventListener("animationcancel",P),o.removeEventListener("animationend",P)}}else x("ANIMATION_END")},[o,x]),{isPresent:["mounted","unmountSuspended"].includes(p),ref:k.useCallback(g=>{l.current=g?getComputedStyle(g):null,i(g)},[])}}function pa(r){return(r==null?void 0:r.animationName)||"none"}function P1(r){var l,c;let o=(l=Object.getOwnPropertyDescriptor(r.props,"ref"))==null?void 0:l.get,i=o&&"isReactWarning"in o&&o.isReactWarning;return i?r.ref:(o=(c=Object.getOwnPropertyDescriptor(r,"ref"))==null?void 0:c.get,i=o&&"isReactWarning"in o&&o.isReactWarning,i?r.props.ref:r.props.ref||r.ref)}var bu=0;function j1(){k.useEffect(()=>{const r=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",r[0]??Mp()),document.body.insertAdjacentElement("beforeend",r[1]??Mp()),bu++,()=>{bu===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(o=>o.remove()),bu--}},[])}function Mp(){const r=document.createElement("span");return r.setAttribute("data-radix-focus-guard",""),r.tabIndex=0,r.style.outline="none",r.style.opacity="0",r.style.position="fixed",r.style.pointerEvents="none",r}var vn=function(){return vn=Object.assign||function(o){for(var i,l=1,c=arguments.length;l<c;l++){i=arguments[l];for(var d in i)Object.prototype.hasOwnProperty.call(i,d)&&(o[d]=i[d])}return o},vn.apply(this,arguments)};function zh(r,o){var i={};for(var l in r)Object.prototype.hasOwnProperty.call(r,l)&&o.indexOf(l)<0&&(i[l]=r[l]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var c=0,l=Object.getOwnPropertySymbols(r);c<l.length;c++)o.indexOf(l[c])<0&&Object.prototype.propertyIsEnumerable.call(r,l[c])&&(i[l[c]]=r[l[c]]);return i}function R1(r,o,i){if(i||arguments.length===2)for(var l=0,c=o.length,d;l<c;l++)(d||!(l in o))&&(d||(d=Array.prototype.slice.call(o,0,l)),d[l]=o[l]);return r.concat(d||Array.prototype.slice.call(o))}var Sa="right-scroll-bar-position",ba="width-before-scroll-bar",M1="with-scroll-bars-hidden",T1="--removed-body-scroll-bar-size";function ku(r,o){return typeof r=="function"?r(o):r&&(r.current=o),r}function O1(r,o){var i=k.useState(function(){return{value:r,callback:o,facade:{get current(){return i.value},set current(l){var c=i.value;c!==l&&(i.value=l,i.callback(l,c))}}}})[0];return i.callback=o,i.facade}var _1=typeof window<"u"?k.useLayoutEffect:k.useEffect,Tp=new WeakMap;function z1(r,o){var i=O1(null,function(l){return r.forEach(function(c){return ku(c,l)})});return _1(function(){var l=Tp.get(i);if(l){var c=new Set(l),d=new Set(r),m=i.current;c.forEach(function(p){d.has(p)||ku(p,null)}),d.forEach(function(p){c.has(p)||ku(p,m)})}Tp.set(i,r)},[r]),i}function I1(r){return r}function A1(r,o){o===void 0&&(o=I1);var i=[],l=!1,c={read:function(){if(l)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return i.length?i[i.length-1]:r},useMedium:function(d){var m=o(d,l);return i.push(m),function(){i=i.filter(function(p){return p!==m})}},assignSyncMedium:function(d){for(l=!0;i.length;){var m=i;i=[],m.forEach(d)}i={push:function(p){return d(p)},filter:function(){return i}}},assignMedium:function(d){l=!0;var m=[];if(i.length){var p=i;i=[],p.forEach(d),m=i}var x=function(){var E=m;m=[],E.forEach(d)},g=function(){return Promise.resolve().then(x)};g(),i={push:function(E){m.push(E),g()},filter:function(E){return m=m.filter(E),i}}}};return c}function L1(r){r===void 0&&(r={});var o=A1(null);return o.options=vn({async:!0,ssr:!1},r),o}var Ih=function(r){var o=r.sideCar,i=zh(r,["sideCar"]);if(!o)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var l=o.read();if(!l)throw new Error("Sidecar medium not found");return k.createElement(l,vn({},i))};Ih.isSideCarExport=!0;function D1(r,o){return r.useMedium(o),Ih}var Ah=L1(),Cu=function(){},ja=k.forwardRef(function(r,o){var i=k.useRef(null),l=k.useState({onScrollCapture:Cu,onWheelCapture:Cu,onTouchMoveCapture:Cu}),c=l[0],d=l[1],m=r.forwardProps,p=r.children,x=r.className,g=r.removeScrollBar,E=r.enabled,P=r.shards,T=r.sideCar,v=r.noRelative,I=r.noIsolation,b=r.inert,R=r.allowPinchZoom,D=r.as,F=D===void 0?"div":D,B=r.gapMode,_=zh(r,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),G=T,ee=z1([i,o]),$=vn(vn({},_),c);return k.createElement(k.Fragment,null,E&&k.createElement(G,{sideCar:Ah,removeScrollBar:g,shards:P,noRelative:v,noIsolation:I,inert:b,setCallbacks:d,allowPinchZoom:!!R,lockRef:i,gapMode:B}),m?k.cloneElement(k.Children.only(p),vn(vn({},$),{ref:ee})):k.createElement(F,vn({},$,{className:x,ref:ee}),p))});ja.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ja.classNames={fullWidth:ba,zeroRight:Sa};var F1=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function U1(){if(!document)return null;var r=document.createElement("style");r.type="text/css";var o=F1();return o&&r.setAttribute("nonce",o),r}function B1(r,o){r.styleSheet?r.styleSheet.cssText=o:r.appendChild(document.createTextNode(o))}function W1(r){var o=document.head||document.getElementsByTagName("head")[0];o.appendChild(r)}var V1=function(){var r=0,o=null;return{add:function(i){r==0&&(o=U1())&&(B1(o,i),W1(o)),r++},remove:function(){r--,!r&&o&&(o.parentNode&&o.parentNode.removeChild(o),o=null)}}},Q1=function(){var r=V1();return function(o,i){k.useEffect(function(){return r.add(o),function(){r.remove()}},[o&&i])}},Lh=function(){var r=Q1(),o=function(i){var l=i.styles,c=i.dynamic;return r(l,c),null};return o},$1={left:0,top:0,right:0,gap:0},Eu=function(r){return parseInt(r||"",10)||0},H1=function(r){var o=window.getComputedStyle(document.body),i=o[r==="padding"?"paddingLeft":"marginLeft"],l=o[r==="padding"?"paddingTop":"marginTop"],c=o[r==="padding"?"paddingRight":"marginRight"];return[Eu(i),Eu(l),Eu(c)]},K1=function(r){if(r===void 0&&(r="margin"),typeof window>"u")return $1;var o=H1(r),i=document.documentElement.clientWidth,l=window.innerWidth;return{left:o[0],top:o[1],right:o[2],gap:Math.max(0,l-i+o[2]-o[0])}},G1=Lh(),_o="data-scroll-locked",q1=function(r,o,i,l){var c=r.left,d=r.top,m=r.right,p=r.gap;return i===void 0&&(i="margin"),`
187
187
  .`.concat(M1,` {
188
188
  overflow: hidden `).concat(l,`;
189
189
  padding-right: `).concat(p,"px ").concat(l,`;
@@ -0,0 +1 @@
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--gray-200))}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: 217 100% 97%;--brand-100: 217 100% 94%;--brand-200: 217 95% 87%;--brand-300: 217 90% 77%;--brand-400: 217 85% 65%;--brand-500: 217 80% 55%;--brand-600: 217 75% 48%;--brand-700: 217 70% 40%;--brand-800: 217 65% 33%;--brand-900: 217 60% 25%;--gray-50: 210 20% 98%;--gray-100: 220 14% 96%;--gray-200: 220 13% 91%;--gray-300: 216 12% 84%;--gray-400: 218 11% 65%;--gray-500: 220 9% 46%;--gray-600: 215 14% 34%;--gray-700: 217 19% 27%;--gray-800: 215 28% 17%;--gray-900: 221 39% 11%;--background-secondary: 220 14% 96%;--background-tertiary: 220 13% 91%;--foreground-secondary: 215 28% 17%;--foreground-tertiary: 220 9% 46%;--foreground-muted: 218 11% 65%;--primary-hover: 217 75% 48%;--primary-active: 217 70% 40%;--secondary-hover: 220 13% 91%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--card-border: 220 13% 91%;--border-hover: 216 12% 84%;--border-active: 217 80% 55%;--input: 0 0% 100%;--input-border: 220 13% 91%;--input-focus: 217 80% 55%;--ring-offset: 0 0% 100%;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .05), 0 1px 2px -1px rgb(0 0 0 / .05);--shadow-card-hover: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .05);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--background: 210 20% 98%;--foreground: 221 39% 11%;--card: 0 0% 100%;--card-foreground: 221 39% 11%;--popover: 0 0% 100%;--popover-foreground: 221 39% 11%;--primary: 217 80% 55%;--primary-foreground: 0 0% 100%;--secondary: 220 14% 96%;--secondary-foreground: 215 28% 17%;--muted: 220 14% 96%;--muted-foreground: 220 9% 46%;--accent: 217 100% 97%;--accent-foreground: 217 70% 40%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 217 80% 55%;--radius: .75rem;--milk-50: 210 20% 98%;--milk-100: 220 14% 96%;--milk-200: 220 13% 91%;--milk-300: 216 12% 84%;--milk-400: 218 11% 65%;--milk-500: 220 9% 46%;--milk-600: 215 14% 34%;--milk-700: 217 19% 27%;--milk-800: 215 28% 17%;--milk-900: 221 39% 11%}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[180px\]{height:180px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[85vh\]{max-height:85vh}.min-h-\[42px\]{min-height:42px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[240px\]{width:240px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[200px\]{max-width:200px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-\[hsl\(40\,10\%\,94\%\)\]{--tw-border-opacity: 1;border-color:hsl(40 10% 94% / var(--tw-border-opacity, 1))}.border-gray-200{border-color:hsl(var(--gray-200))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.bg-\[hsl\(40\,20\%\,98\%\)\]{--tw-bg-opacity: 1;background-color:hsl(40 20% 98% / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-400{background-color:hsl(var(--gray-400))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-100{background-color:hsl(var(--brand-100))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-400{--tw-gradient-from: #c084fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-400{--tw-gradient-from: #fb7185 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-gray-500{--tw-gradient-to: hsl(var(--gray-500)) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to: hsl(var(--brand-600)) var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to: rgb(255 255 255 / .1) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[-0\.02em\]{letter-spacing:-.02em}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-700{color:hsl(var(--gray-700))}.text-primary{color:hsl(var(--primary))}.text-primary-700{color:hsl(var(--brand-700))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-card{--tw-shadow: var(--shadow-card);--tw-shadow-colored: var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow-color: hsl(var(--card));--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in{--tw-enter-opacity: 0}.slide-in-from-left-2{--tw-enter-translate-x: -.5rem}.duration-300{animation-duration:.3s}.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.shadow-card{box-shadow:var(--shadow-card)}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.shadow-card{box-shadow:0 1px 3px #0000000d,0 1px 2px -1px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.8}}.animate-fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in{animation:slideIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse-soft{animation:pulse-soft 3s ease-in-out infinite}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{color:hsl(var(--gray-400))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-300:hover{background-color:hsl(var(--gray-300))}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-secondary-foreground:hover{color:hsl(var(--secondary-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow: var(--shadow-card-hover);--tw-shadow-colored: var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-600:hover{color:hsl(var(--gray-600))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -4px #0000000d}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color: #fff}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{border-color:hsl(var(--gray-300))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}@media(min-width:640px){.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[550px\]{max-width:550px}.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\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@@ -1,14 +1,17 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="zh-CN">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <link rel="icon" type="image/svg+xml" href="/logo.svg" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>nextclaw - 系统配置</title>
8
- <script type="module" crossorigin src="/assets/index-6CtetzUk.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-lYHLxG9H.css">
10
- </head>
11
- <body>
12
- <div id="root"></div>
13
- </body>
14
- </html>
3
+
4
+ <head>
5
+ <meta charset="UTF-8" />
6
+ <link rel="icon" type="image/svg+xml" href="/logo.svg" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
+ <title>NextClaw - 系统配置</title>
9
+ <script type="module" crossorigin src="/assets/index-DI6zQUcL.js"></script>
10
+ <link rel="stylesheet" crossorigin href="/assets/index-DahcMyga.css">
11
+ </head>
12
+
13
+ <body>
14
+ <div id="root"></div>
15
+ </body>
16
+
17
+ </html>
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:hsl(var(--gray-200))}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:hsl(var(--gray-400))}input::placeholder,textarea::placeholder{opacity:1;color:hsl(var(--gray-400))}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--brand-50: 217 100% 97%;--brand-100: 217 100% 94%;--brand-200: 217 95% 87%;--brand-300: 217 90% 77%;--brand-400: 217 85% 65%;--brand-500: 217 80% 55%;--brand-600: 217 75% 48%;--brand-700: 217 70% 40%;--brand-800: 217 65% 33%;--brand-900: 217 60% 25%;--gray-50: 210 20% 98%;--gray-100: 220 14% 96%;--gray-200: 220 13% 91%;--gray-300: 216 12% 84%;--gray-400: 218 11% 65%;--gray-500: 220 9% 46%;--gray-600: 215 14% 34%;--gray-700: 217 19% 27%;--gray-800: 215 28% 17%;--gray-900: 221 39% 11%;--background-secondary: 220 14% 96%;--background-tertiary: 220 13% 91%;--foreground-secondary: 215 28% 17%;--foreground-tertiary: 220 9% 46%;--foreground-muted: 218 11% 65%;--primary-hover: 217 75% 48%;--primary-active: 217 70% 40%;--secondary-hover: 220 13% 91%;--success: 142 76% 36%;--success-foreground: 0 0% 100%;--warning: 38 92% 50%;--warning-foreground: 0 0% 100%;--card-border: 220 13% 91%;--border-hover: 216 12% 84%;--border-active: 217 80% 55%;--input: 0 0% 100%;--input-border: 220 13% 91%;--input-focus: 217 80% 55%;--ring-offset: 0 0% 100%;--space-0: 0px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-card: 0 1px 3px 0 rgb(0 0 0 / .05), 0 1px 2px -1px rgb(0 0 0 / .05);--shadow-card-hover: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .05);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--background: 210 20% 98%;--foreground: 221 39% 11%;--card: 0 0% 100%;--card-foreground: 221 39% 11%;--popover: 0 0% 100%;--popover-foreground: 221 39% 11%;--primary: 217 80% 55%;--primary-foreground: 0 0% 100%;--secondary: 220 14% 96%;--secondary-foreground: 215 28% 17%;--muted: 220 14% 96%;--muted-foreground: 220 9% 46%;--accent: 217 100% 97%;--accent-foreground: 217 70% 40%;--destructive: 0 84% 60%;--destructive-foreground: 0 0% 98%;--border: 220 13% 91%;--input: 220 13% 91%;--ring: 217 80% 55%;--radius: .75rem;--milk-50: 210 20% 98%;--milk-100: 220 14% 96%;--milk-200: 220 13% 91%;--milk-300: 216 12% 84%;--milk-400: 218 11% 65%;--milk-500: 220 9% 46%;--milk-600: 215 14% 34%;--milk-700: 217 19% 27%;--milk-800: 215 28% 17%;--milk-900: 221 39% 11%}*{border-color:hsl(var(--border))}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);overflow:hidden}*{scrollbar-width:thin;scrollbar-color:hsl(var(--gray-300)) transparent}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-0{bottom:0}.left-0{left:0}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1\.5{right:.375rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[180px\]{height:180px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[85vh\]{max-height:85vh}.min-h-\[42px\]{min-height:42px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[160px\]{width:160px}.w-\[240px\]{width:240px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[100px\]{min-width:100px}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[200px\]{max-width:200px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-12{gap:3rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:calc(var(--radius) + 8px)}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-\[hsl\(40\,10\%\,94\%\)\]{--tw-border-opacity: 1;border-color:hsl(40 10% 94% / var(--tw-border-opacity, 1))}.border-gray-200{border-color:hsl(var(--gray-200))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-transparent{border-color:transparent}.bg-\[hsl\(40\,20\%\,98\%\)\]{--tw-bg-opacity: 1;background-color:hsl(40 20% 98% / var(--tw-bg-opacity, 1))}.bg-amber-400{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-black\/40{background-color:#0006}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-gray-200{background-color:hsl(var(--gray-200))}.bg-gray-400{background-color:hsl(var(--gray-400))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary-100{background-color:hsl(var(--brand-100))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/80{background-color:#fffc}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.from-primary{--tw-gradient-from: hsl(var(--primary)) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-400{--tw-gradient-from: #c084fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(192 132 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-400{--tw-gradient-from: #fb7185 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-gray-500{--tw-gradient-to: hsl(var(--gray-500)) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-primary-600{--tw-gradient-to: hsl(var(--brand-600)) var(--tw-gradient-to-position)}.to-white\/10{--tw-gradient-to: rgb(255 255 255 / .1) var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-20{padding-bottom:5rem}.pb-4{padding-bottom:1rem}.pr-2{padding-right:.5rem}.pr-20{padding-right:5rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-gray-400{color:hsl(var(--gray-400))}.text-gray-700{color:hsl(var(--gray-700))}.text-primary{color:hsl(var(--primary))}.text-primary-700{color:hsl(var(--brand-700))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:hsl(var(--primary))}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-card{--tw-shadow: var(--shadow-card);--tw-shadow-colored: var(--shadow-card);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-card{--tw-shadow-color: hsl(var(--card));--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-white{--tw-ring-offset-color: #fff}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-base{transition-duration:.2s}.duration-fast{transition-duration:.15s}.duration-slow{transition-duration:.3s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in{--tw-enter-opacity: 0}.slide-in-from-left-2{--tw-enter-translate-x: -.5rem}.duration-300{animation-duration:.3s}.duration-base{animation-duration:.2s}.duration-fast{animation-duration:.15s}.duration-slow{animation-duration:.3s}.bg-gray-50{background-color:hsl(var(--gray-50))}.bg-gray-100{background-color:hsl(var(--gray-100))}.text-gray-500{color:hsl(var(--gray-500))}.text-gray-600{color:hsl(var(--gray-600))}.text-gray-900{color:hsl(var(--gray-900))}.shadow-card{box-shadow:var(--shadow-card)}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:hsl(var(--gray-300));border-radius:6px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:hsl(var(--gray-400))}.shadow-card{box-shadow:0 1px 3px #0000000d,0 1px 2px -1px #0000000d}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.8}}.animate-fade-in{animation:fadeIn .4s cubic-bezier(.16,1,.3,1) forwards}.animate-slide-in{animation:slideIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-scale-in{animation:scaleIn .35s cubic-bezier(.16,1,.3,1) forwards}.animate-pulse-soft{animation:pulse-soft 3s ease-in-out infinite}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-gray-400::-moz-placeholder{color:hsl(var(--gray-400))}.placeholder\:text-gray-400::placeholder{color:hsl(var(--gray-400))}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-300:hover{border-color:hsl(var(--gray-300))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-200:hover{background-color:hsl(var(--gray-200))}.hover\:bg-gray-300:hover{background-color:hsl(var(--gray-300))}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary-600:hover{background-color:hsl(var(--brand-600))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:text-gray-700:hover{color:hsl(var(--gray-700))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-secondary-foreground:hover{color:hsl(var(--secondary-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-card-hover:hover{--tw-shadow: var(--shadow-card-hover);--tw-shadow-colored: var(--shadow-card-hover);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:bg-gray-100:hover{background-color:hsl(var(--gray-100))}.hover\:text-gray-600:hover{color:hsl(var(--gray-600))}.hover\:text-gray-900:hover{color:hsl(var(--gray-900))}.hover\:shadow-card-hover:hover{box-shadow:var(--shadow-card-hover);box-shadow:0 10px 15px -3px #00000014,0 4px 6px -4px #0000000d}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color: hsl(var(--primary))}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-white:focus-visible{--tw-ring-offset-color: #fff}.active\:bg-primary-700:active{background-color:hsl(var(--brand-700))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{border-color:hsl(var(--gray-300))}.group:hover .group-hover\:text-primary{color:hsl(var(--primary))}.group:hover .group-hover\:opacity-100{opacity:1}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}@media(min-width:640px){.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-\[550px\]{max-width:550px}.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\:gap-3{gap:.75rem}.sm\:text-left{text-align:left}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}