@jonathanleelx/meddle 0.5.0-beta.9 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONFIG_STRUCTURE.md +9 -2
- package/README.md +18 -0
- package/bin/commands/mock/add.js +59 -21
- package/bin/commands/mock/delete.js +16 -24
- package/bin/commands/mock/index.js +59 -25
- package/bin/commands/mock/list.js +35 -18
- package/bin/commands/mock/toggle.js +17 -27
- package/bin/commands/mock/update.js +39 -30
- package/bin/commands/route/active.js +20 -3
- package/bin/commands/route/add.js +113 -94
- package/bin/commands/route/create.js +8 -1
- package/bin/commands/route/delete.js +87 -53
- package/bin/commands/route/index.js +74 -26
- package/bin/commands/route/list.js +2 -2
- package/bin/commands/route/preview.js +2 -2
- package/bin/commands/route/show.js +12 -3
- package/bin/commands/route/update.js +135 -92
- package/bin/commands/status.js +27 -11
- package/bin/commands/update.js +4 -0
- package/bin/doctor.js +8 -4
- package/bin/index.js +11 -7
- package/bin/lib/api-client.js +14 -2
- package/bin/lib/file-access.js +234 -35
- package/bin/lib/meddle-home.js +14 -1
- package/bin/lib/output.js +30 -4
- package/bin/lib/proxy-detect.js +99 -20
- package/bin/lib/proxy-or-file.js +93 -0
- package/bin/lib/route-write-args.js +150 -0
- package/bin/lib/rule-file-edit.js +263 -0
- package/bin/lib/ruleset-readonly.js +61 -0
- package/bin/lib/update-check.js +67 -6
- package/dist/cert.d.ts +2 -0
- package/dist/cert.d.ts.map +1 -1
- package/dist/cert.js +53 -1
- package/dist/cert.js.map +1 -1
- package/dist/core/browser.d.ts +10 -1
- package/dist/core/browser.d.ts.map +1 -1
- package/dist/core/browser.js +252 -36
- package/dist/core/browser.js.map +1 -1
- package/dist/core/config-diagnostics.d.ts.map +1 -1
- package/dist/core/config-diagnostics.js +6 -1
- package/dist/core/config-diagnostics.js.map +1 -1
- package/dist/core/custom-plugin-loader.d.ts.map +1 -1
- package/dist/core/custom-plugin-loader.js +2 -0
- package/dist/core/custom-plugin-loader.js.map +1 -1
- package/dist/core/mock-handler.d.ts +63 -0
- package/dist/core/mock-handler.d.ts.map +1 -1
- package/dist/core/mock-handler.js +641 -29
- package/dist/core/mock-handler.js.map +1 -1
- package/dist/core/mock-utils.d.ts +58 -0
- package/dist/core/mock-utils.d.ts.map +1 -0
- package/dist/core/mock-utils.js +167 -0
- package/dist/core/mock-utils.js.map +1 -0
- package/dist/core/plugin-bootstrap-runner.d.ts +1 -0
- package/dist/core/plugin-bootstrap-runner.d.ts.map +1 -1
- package/dist/core/plugin-bootstrap-runner.js +37 -1
- package/dist/core/plugin-bootstrap-runner.js.map +1 -1
- package/dist/core/plugin-source.d.ts +24 -0
- package/dist/core/plugin-source.d.ts.map +1 -0
- package/dist/core/plugin-source.js +47 -0
- package/dist/core/plugin-source.js.map +1 -0
- package/dist/core/proxy-record.d.ts +14 -0
- package/dist/core/proxy-record.d.ts.map +1 -1
- package/dist/core/proxy-record.js +39 -0
- package/dist/core/proxy-record.js.map +1 -1
- package/dist/core/rule-file-edit.d.ts +81 -0
- package/dist/core/rule-file-edit.d.ts.map +1 -0
- package/dist/core/rule-file-edit.js +243 -0
- package/dist/core/rule-file-edit.js.map +1 -0
- package/dist/core/static-server.d.ts.map +1 -1
- package/dist/core/static-server.js +15 -13
- package/dist/core/static-server.js.map +1 -1
- package/dist/core/types.d.ts +15 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/plugins/builtin/mock-plugin.d.ts.map +1 -1
- package/dist/plugins/builtin/mock-plugin.js +6 -5
- package/dist/plugins/builtin/mock-plugin.js.map +1 -1
- package/dist/server/agent/tools.d.ts.map +1 -1
- package/dist/server/agent/tools.js +24 -18
- package/dist/server/agent/tools.js.map +1 -1
- package/dist/server/app-info.d.ts +33 -0
- package/dist/server/app-info.d.ts.map +1 -0
- package/dist/server/app-info.js +116 -0
- package/dist/server/app-info.js.map +1 -0
- package/dist/server/config.d.ts +1 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +114 -16
- package/dist/server/config.js.map +1 -1
- package/dist/server/health.d.ts.map +1 -1
- package/dist/server/health.js +8 -0
- package/dist/server/health.js.map +1 -1
- package/dist/server/index.d.ts +16 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +10 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/json-parse-error.d.ts +7 -0
- package/dist/server/json-parse-error.d.ts.map +1 -0
- package/dist/server/json-parse-error.js +28 -0
- package/dist/server/json-parse-error.js.map +1 -0
- package/dist/server/mocks.d.ts +26 -0
- package/dist/server/mocks.d.ts.map +1 -1
- package/dist/server/mocks.js +110 -13
- package/dist/server/mocks.js.map +1 -1
- package/dist/server/plugins.d.ts.map +1 -1
- package/dist/server/plugins.js +56 -11
- package/dist/server/plugins.js.map +1 -1
- package/dist/server/rule-files.d.ts +36 -0
- package/dist/server/rule-files.d.ts.map +1 -1
- package/dist/server/rule-files.js +388 -107
- package/dist/server/rule-files.js.map +1 -1
- package/dist/server/ruleset-lock.d.ts +62 -0
- package/dist/server/ruleset-lock.d.ts.map +1 -0
- package/dist/server/ruleset-lock.js +234 -0
- package/dist/server/ruleset-lock.js.map +1 -0
- package/index.js +128 -16
- package/mcp-server.js +108 -93
- package/package.json +1 -1
- package/plugins/builtin/mock-plugin.ts +9 -5
- package/web/dist/assets/alert-B514Frte.js +1 -0
- package/web/dist/assets/arrow-right-BNum_060.js +1 -0
- package/web/dist/assets/{body-diff-view-B-4XWmL6.js → body-diff-view-SfLCLzs9.js} +2 -2
- package/web/dist/assets/button-BFNlGZ5p.js +1 -0
- package/web/dist/assets/check-BkfHQ6re.js +1 -0
- package/web/dist/assets/checkbox-CQyFsZzS.js +1 -0
- package/web/dist/assets/chevron-down-DHwUtL4O.js +1 -0
- package/web/dist/assets/{circle-alert-Q8cZk9Rv.js → circle-alert-zMagrFuI.js} +1 -1
- package/web/dist/assets/{circle-x-C9USji_R.js → circle-x-BEkinhez.js} +1 -1
- package/web/dist/assets/code-DD-AYxxu.js +1 -0
- package/web/dist/assets/{copy-BYjq1hdN.js → copy-BRnscYy1.js} +1 -1
- package/web/dist/assets/detail-panel-DZRKJG2W.js +4 -0
- package/web/dist/assets/dist-BQN0rzUS.js +1 -0
- package/web/dist/assets/{dist-CEd_wnRC.js → dist-C-E2R2jk.js} +1 -1
- package/web/dist/assets/{dist-C6eaYCUo.js → dist-CFZ4xMSF.js} +1 -1
- package/web/dist/assets/{dist-DWmDaXVN.js → dist-CRmX_NvH.js} +1 -1
- package/web/dist/assets/{dist-C8RHq5At.js → dist-DLQKRjuW.js} +1 -1
- package/web/dist/assets/{dist-Blyulj4_.js → dist-LiAcI8CK.js} +1 -1
- package/web/dist/assets/{dist-Ce4ujolc.js → dist-fzPL-8F9.js} +1 -1
- package/web/dist/assets/{dist-DoE7uybN.js → dist-wv9ebJK_.js} +1 -1
- package/web/dist/assets/editor-pane-actions-_ckwcCII.js +1 -0
- package/web/dist/assets/{es2015-DG46NGN7.js → es2015-DPJTBYa9.js} +1 -1
- package/web/dist/assets/global-panel-shell-Iir-c_pQ.js +6 -0
- package/web/dist/assets/health-panel-Dmf-EhJz.js +1 -0
- package/web/dist/assets/index-C4dIj1nT.js +21 -0
- package/web/dist/assets/index-CdYMl1M7.css +2 -0
- package/web/dist/assets/{mobile-proxy-panel-tU0NyJ3P.js → mobile-proxy-panel-CFcwa11A.js} +6 -6
- package/web/dist/assets/mock-config-CGl50MIr.js +1 -0
- package/web/dist/assets/mock-editor-panel-xcCk23oH.js +20 -0
- package/web/dist/assets/mocks-file-missing-note-CW_ONVLA.js +1 -0
- package/web/dist/assets/monaco-editor-BkP7envQ.js +11 -0
- package/web/dist/assets/pane-bar-5j9Nf7W_.js +1 -0
- package/web/dist/assets/pane-split-C0OSe365.js +1 -0
- package/web/dist/assets/panel-heading-izT5q0ZN.js +1 -0
- package/web/dist/assets/{pencil-line-Cqe41E4h.js → pencil-line-CEZ7D-de.js} +1 -1
- package/web/dist/assets/plugin-code-editor-DKE9dFEE.js +2 -0
- package/web/dist/assets/plugin-config-Cg09TsuV.js +2 -0
- package/web/dist/assets/plugin-generator-CT1f1tu0.js +2 -0
- package/web/dist/assets/plugin-test-dialog-BbLIMnkJ.js +7 -0
- package/web/dist/assets/plus-ixZQRprm.js +1 -0
- package/web/dist/assets/{refresh-cw-CG3HaiQT.js → refresh-cw-BfLoHqg5.js} +1 -1
- package/web/dist/assets/rotate-ccw-CRguJya4.js +1 -0
- package/web/dist/assets/route-preview-CKO7nF4W.js +1 -0
- package/web/dist/assets/{rule-ai-assistant-panel-DMh0F9dr.js → rule-ai-assistant-panel-CtfUqdYG.js} +2 -2
- package/web/dist/assets/rule-config-Cb4ejIXI.js +15 -0
- package/web/dist/assets/rule-overview-panel-xtHTS27O.js +1 -0
- package/web/dist/assets/{server-Cpj4KNwN.js → server-eYXq3PbE.js} +1 -1
- package/web/dist/assets/settings-panel-CpQuE6nr.js +1 -0
- package/web/dist/assets/{shield-check-OqUmVLQt.js → shield-check-hQXjdfZ7.js} +1 -1
- package/web/dist/assets/smartphone-D4Q7cQfm.js +1 -0
- package/web/dist/assets/switch-94vgsMHm.js +1 -0
- package/web/dist/assets/{syntax-highlight-Dk0-ewLI.js → syntax-highlight-BFgN_C0Y.js} +1 -1
- package/web/dist/assets/{table-2-BR5e3z8m.js → table-2-DvGHhMm4.js} +1 -1
- package/web/dist/assets/table-DaXD6jJv.js +1 -0
- package/web/dist/assets/textarea-9wB8Hsz-.js +1 -0
- package/web/dist/assets/toast-9yeTf7d9.js +1 -0
- package/web/dist/assets/use-mocks-file-status-BUIUJ4oQ.js +1 -0
- package/web/dist/assets/{wand-sparkles-CJ7fSnom.js → wand-sparkles-Bmt4dDOf.js} +1 -1
- package/web/dist/assets/{wifi-CCLKyySQ.js → wifi-Cjj_Br1u.js} +1 -1
- package/web/dist/assets/{zap-DR-xiUMe.js → zap-BuOtogAv.js} +1 -1
- package/web/dist/index.html +16 -10
- package/web/dist/assets/alert-DCvlZAiv.js +0 -1
- package/web/dist/assets/arrow-right-B4Mrlj2-.js +0 -1
- package/web/dist/assets/button-BTToMaBW.js +0 -1
- package/web/dist/assets/checkbox-D1Z9DtjF.js +0 -1
- package/web/dist/assets/chevron-down-CPngAx4M.js +0 -1
- package/web/dist/assets/chevron-right-V1DGIDbL.js +0 -1
- package/web/dist/assets/code-5_eJ_XpJ.js +0 -1
- package/web/dist/assets/code-fixer-D48sCDtp.js +0 -20
- package/web/dist/assets/detail-panel-BSFz9CUw.js +0 -4
- package/web/dist/assets/file-system-access-_og-Tg9o.js +0 -1
- package/web/dist/assets/global-panel-shell-5cJneeis.js +0 -6
- package/web/dist/assets/health-panel-BS3L2e5d.js +0 -1
- package/web/dist/assets/index-CvTR1IVi.js +0 -18
- package/web/dist/assets/index-bfV7sxx5.css +0 -2
- package/web/dist/assets/mock-config-CULJP6Vt.js +0 -1
- package/web/dist/assets/mock-editor-panel-9wlDaySA.js +0 -1
- package/web/dist/assets/monaco-editor-BttaUoOz.js +0 -11
- package/web/dist/assets/plugin-code-editor-BAIBp4lg.js +0 -2
- package/web/dist/assets/plugin-config-ButUV2SZ.js +0 -1
- package/web/dist/assets/plugin-generator-uceUPSCv.js +0 -2
- package/web/dist/assets/plugin-test-dialog-BrJ4HfRX.js +0 -7
- package/web/dist/assets/plus-tVxSydJ8.js +0 -1
- package/web/dist/assets/rotate-ccw-CAYM6Vv0.js +0 -1
- package/web/dist/assets/route-preview-C4cGrS1-.js +0 -1
- package/web/dist/assets/rule-config-BTTGNwMs.js +0 -15
- package/web/dist/assets/rule-overview-panel-SFR2OloL.js +0 -1
- package/web/dist/assets/select-aBXQ0zNa.js +0 -1
- package/web/dist/assets/settings-panel-BMReDG8b.js +0 -1
- package/web/dist/assets/smartphone-DKeDuJTU.js +0 -1
- package/web/dist/assets/switch-Bes_YiJu.js +0 -1
- package/web/dist/assets/table-nW7uQVcl.js +0 -1
- package/web/dist/assets/textarea-BSI0rnW6.js +0 -1
- /package/web/dist/assets/{babel-DCr4VA1c.js → babel-bwZm0qi3.js} +0 -0
- /package/web/dist/assets/{clipboard-VhPXNN5m.js → clipboard-Bt1qY01V.js} +0 -0
- /package/web/dist/assets/{estree-qO_m2Qaw.js → estree-MatbZDwq.js} +0 -0
- /package/web/dist/assets/{html-VDGahtyk.js → html-CCrsbFYX.js} +0 -0
- /package/web/dist/assets/{postcss-BUm8EKMw.js → postcss-BxN7Gr8n.js} +0 -0
- /package/web/dist/assets/{standalone-Bj8SSd8Q.js → standalone-DsnFnsqM.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,d as t,p as n,t as r}from"./button-BFNlGZ5p.js";import"./dist-CFZ4xMSF.js";import{t as i}from"./refresh-cw-BfLoHqg5.js";import{t as a}from"./table-2-DvGHhMm4.js";import{$ as o,B as s,H as c,Q as l,R as u,U as d,V as f,W as p,Z as m,ct as h,et as g,ht as _,tt as v,u as y,wt as ee,yt as te,z as b}from"./index-C4dIj1nT.js";import{a as x,i as S,n as C,o as w,r as T,t as E}from"./table-DaXD6jJv.js";var D=n(t(),1),O=e(),k=`border-l-2 border-l-transparent`,A=`text-muted-foreground opacity-75`;function j(e){return e.length>0?e.map(e=>`!${e}`).join(` `):`—`}function M({rules:e,activeFileName:t,onLocateRule:n,onSelectFile:M}){let[N,ne]=(0,D.useState)(null),[P,F]=(0,D.useState)(!0),[I,L]=(0,D.useState)(null),[R,z]=(0,D.useState)(`merged`),[B,V]=(0,D.useState)(``),H=(0,D.useDeferredValue)(B),U=(0,D.useCallback)(async()=>{F(!0),L(null);try{let e=await fetch(`/api/rule-files/overview`);if(!e.ok)throw Error(`加载失败(${e.status})`);ne(await e.json())}catch(e){L(e instanceof Error?e.message:`加载失败`)}finally{F(!1)}},[]);(0,D.useEffect)(()=>{U()},[U]);let W=(0,D.useMemo)(()=>N?.perFileRules.find(e=>e.name===t)??null,[N,t]),G=(0,D.useMemo)(()=>{if(!W||W.error)return!1;let t=W.rules.map(e=>({rule:e.rawRule,target:e.rawTarget,enabled:e.enabled,exclusions:e.exclusions}));return y(e)!==y(t)},[W,e]),K=(0,D.useMemo)(()=>{let e=new Map;for(let t of N?.conflicts??[])e.set(t.pattern,t);return e},[N]),q=(0,D.useCallback)(e=>{let t=H.trim().toLowerCase();return t?e.some(e=>e&&e.toLowerCase().includes(t)):!0},[H]),J=(0,D.useMemo)(()=>(N?.mergedRules??[]).map(e=>({winner:e,shadowed:K.get(e.pattern)?.shadowed??[]})).filter(({winner:e,shadowed:t})=>q([e.rawRule,e.rawTarget,e.file])||t.some(e=>q([e.rawRule,e.rawTarget,e.file]))),[N,K,q]),Y=N?.mergedRules.length??0,X=N?.conflicts.reduce((e,t)=>e+t.shadowed.length,0)??0,Z=(0,D.useMemo)(()=>(N?.perFileRules??[]).map(e=>({...e,matched:e.rules.filter(t=>q([t.rawRule,t.rawTarget,e.name]))})).filter(e=>e.error!=null||q([e.name])||e.matched.length>0),[N,q]),re=N?.perFileRules.reduce((e,t)=>e+t.rules.length,0)??0,ie=Z.reduce((e,t)=>e+t.matched.length,0),Q=(0,D.useCallback)((e,t,r)=>{n(e,t,r)},[n]),ae=(0,D.useCallback)((e,t)=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),M(t))},[M]),oe=()=>{if(P)return(0,O.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-2 p-2`,children:[(0,O.jsx)(v,{className:`h-8 w-full`}),(0,O.jsx)(v,{className:`h-8 w-full`}),(0,O.jsx)(v,{className:`h-8 w-3/4`})]});if(I)return(0,O.jsxs)(b,{className:`min-h-0 flex-1`,children:[(0,O.jsxs)(c,{children:[(0,O.jsx)(d,{variant:`icon`,children:(0,O.jsx)(h,{})}),(0,O.jsx)(p,{children:`加载失败`}),(0,O.jsx)(f,{children:I})]}),(0,O.jsx)(s,{children:(0,O.jsxs)(r,{variant:`outline`,onClick:()=>void U(),children:[(0,O.jsx)(i,{"data-icon":`inline-start`}),`重试`]})})]});let e=(N?.files.length??0)>0,t=N?.perFileRules.some(e=>e.rules.length>0||e.error!=null)??!1,n=H.trim().length>0;return e?t?R===`merged`&&!n&&(N?.mergedRules.length??0)===0?(0,O.jsx)(b,{className:`min-h-0 flex-1`,children:(0,O.jsxs)(c,{children:[(0,O.jsx)(d,{variant:`icon`,children:(0,O.jsx)(te,{})}),(0,O.jsx)(p,{children:`没有生效中的规则`}),(0,O.jsx)(f,{children:`规则全部被禁用,或没有启用任何规则文件;切换到「按文件」查看全部规则`})]})}):n&&R===`merged`&&J.length===0||n&&R===`files`&&Z.every(e=>e.matched.length===0&&e.error==null)?$():R===`merged`?se():ce():(0,O.jsx)(b,{className:`min-h-0 flex-1`,children:(0,O.jsxs)(c,{children:[(0,O.jsx)(d,{variant:`icon`,children:(0,O.jsx)(ee,{})}),(0,O.jsx)(p,{children:`所有规则文件都是空的`}),(0,O.jsx)(f,{children:`还没有任何路由规则,先去路由规则页添加一条吧`})]})}):(0,O.jsx)(b,{className:`min-h-0 flex-1`,children:(0,O.jsxs)(c,{children:[(0,O.jsx)(d,{variant:`icon`,children:(0,O.jsx)(a,{})}),(0,O.jsx)(p,{children:`还没有规则文件`}),(0,O.jsx)(f,{children:`在路由规则页点击「+」创建第一个规则文件`})]})})},$=()=>(0,O.jsxs)(b,{className:`min-h-0 flex-1`,children:[(0,O.jsxs)(c,{children:[(0,O.jsx)(d,{variant:`icon`,children:(0,O.jsx)(_,{})}),(0,O.jsx)(p,{children:`无匹配结果`}),(0,O.jsxs)(f,{children:[`没有找到符合「`,H.trim(),`」的规则`]})]}),(0,O.jsx)(s,{children:(0,O.jsx)(r,{variant:`outline`,onClick:()=>V(``),children:`清空筛选`})})]}),se=()=>(0,O.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border`,children:[(0,O.jsx)(`div`,{className:`meddle-thin-scroll shrink-0 overflow-x-auto bg-card`,children:(0,O.jsxs)(E,{className:`table-fixed`,children:[(0,O.jsxs)(`colgroup`,{children:[(0,O.jsx)(`col`,{style:{width:`6rem`}}),(0,O.jsx)(`col`,{}),(0,O.jsx)(`col`,{style:{width:`8rem`}}),(0,O.jsx)(`col`,{})]}),(0,O.jsx)(x,{children:(0,O.jsxs)(w,{children:[(0,O.jsx)(S,{children:`来源`}),(0,O.jsx)(S,{children:`规则`}),(0,O.jsx)(S,{className:`hidden md:table-cell`,children:`排除`}),(0,O.jsx)(S,{children:`目标`})]})})]})}),(0,O.jsx)(u,{className:`min-h-0 flex-1`,children:(0,O.jsxs)(E,{className:`table-fixed`,children:[(0,O.jsxs)(`colgroup`,{children:[(0,O.jsx)(`col`,{style:{width:`6rem`}}),(0,O.jsx)(`col`,{}),(0,O.jsx)(`col`,{style:{width:`8rem`}}),(0,O.jsx)(`col`,{})]}),(0,O.jsx)(C,{children:J.map(({winner:e,shadowed:t})=>(0,O.jsxs)(D.Fragment,{children:[(0,O.jsxs)(w,{className:`${k} cursor-pointer`,onClick:()=>Q(e.file,e.rawRule,e.rawTarget),title:`点击定位到该规则`,children:[(0,O.jsx)(T,{className:`truncate text-xs text-muted-foreground`,children:e.file}),(0,O.jsxs)(T,{className:`break-all font-mono text-xs`,children:[e.rawRule,t.length>0&&(0,O.jsx)(o,{variant:`default`,className:`ml-2 px-1 py-0 text-[10px]`,title:`同名规则最终生效的定义`,children:`生效`})]}),(0,O.jsx)(T,{className:`hidden break-all font-mono text-xs text-muted-foreground md:table-cell`,children:j(e.exclusions)}),(0,O.jsx)(T,{className:`break-all font-mono text-xs`,children:e.rawTarget})]}),t.map((t,n)=>(0,O.jsxs)(w,{className:`${k} cursor-pointer ${A}`,onClick:()=>Q(t.file,t.rawRule,t.rawTarget),title:`点击定位到该规则`,children:[(0,O.jsx)(T,{className:`truncate text-xs`,children:t.file}),(0,O.jsx)(T,{className:`break-all font-mono text-xs`,children:(0,O.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-1.5`,children:[t.rawRule,(0,O.jsx)(o,{variant:`destructive`,className:`px-1 py-0 text-[10px]`,title:`已被 ${e.file} 中的同名规则覆盖,实际不生效`,children:`已被覆盖`})]})}),(0,O.jsx)(T,{className:`hidden break-all font-mono text-xs md:table-cell`,children:`—`}),(0,O.jsx)(T,{className:`break-all font-mono text-xs`,children:t.rawTarget})]},`merged-shadowed-${n}`))]},`merged-group-${e.pattern}`))})]})})]}),ce=()=>(0,O.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border`,children:[(0,O.jsx)(`div`,{className:`meddle-thin-scroll shrink-0 overflow-x-auto bg-card`,children:(0,O.jsxs)(E,{className:`table-fixed`,children:[(0,O.jsxs)(`colgroup`,{children:[(0,O.jsx)(`col`,{style:{width:`3.5rem`}}),(0,O.jsx)(`col`,{}),(0,O.jsx)(`col`,{style:{width:`8rem`}}),(0,O.jsx)(`col`,{})]}),(0,O.jsx)(x,{children:(0,O.jsxs)(w,{children:[(0,O.jsx)(S,{children:`状态`}),(0,O.jsx)(S,{children:`规则`}),(0,O.jsx)(S,{className:`hidden md:table-cell`,children:`排除`}),(0,O.jsx)(S,{children:`目标`})]})})]})}),(0,O.jsx)(u,{className:`min-h-0 flex-1`,children:(0,O.jsxs)(E,{className:`table-fixed`,children:[(0,O.jsxs)(`colgroup`,{children:[(0,O.jsx)(`col`,{style:{width:`3.5rem`}}),(0,O.jsx)(`col`,{}),(0,O.jsx)(`col`,{style:{width:`8rem`}}),(0,O.jsx)(`col`,{})]}),(0,O.jsx)(C,{children:Z.map(e=>(0,O.jsxs)(D.Fragment,{children:[(0,O.jsx)(w,{className:`hover:bg-accent/60`,children:(0,O.jsx)(T,{colSpan:4,className:`cursor-pointer bg-muted/50 p-2 align-middle`,role:`button`,tabIndex:0,onClick:()=>M(e.name),onKeyDown:t=>ae(t,e.name),title:`点击切换到该规则文件`,children:(0,O.jsxs)(`span`,{className:`flex flex-wrap items-center gap-2 font-medium`,children:[e.name,(0,O.jsx)(o,{variant:e.enabled?`default`:`secondary`,className:`px-1 py-0 text-[10px]`,children:e.enabled?`启用`:`禁用`}),(0,O.jsx)(o,{variant:`secondary`,className:`px-1 py-0 text-[10px]`,children:e.rules.length})]})})}),e.error&&(0,O.jsx)(w,{className:`text-destructive`,children:(0,O.jsx)(T,{colSpan:4,className:`p-2 text-xs`,children:(0,O.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,O.jsx)(h,{className:`h-3.5 w-3.5 shrink-0`}),`读取失败:`,e.error]})})}),e.matched.map((t,n)=>(0,O.jsxs)(w,{className:`cursor-pointer ${t.enabled?``:`opacity-60`}`,onClick:()=>Q(e.name,t.rawRule,t.rawTarget),title:`点击定位到该规则`,children:[(0,O.jsx)(T,{children:(0,O.jsx)(o,{variant:t.enabled?`default`:`secondary`,className:`px-1 py-0 text-[10px]`,children:t.enabled?`启用`:`禁用`})}),(0,O.jsx)(T,{className:`break-all font-mono text-xs`,children:t.rawRule}),(0,O.jsx)(T,{className:`hidden break-all font-mono text-xs text-muted-foreground md:table-cell`,children:j(t.exclusions)}),(0,O.jsx)(T,{className:`break-all font-mono text-xs ${t.enabled?``:`line-through`}`,children:t.rawTarget})]},`file-rule-${n}`))]},`file-group-${e.name}`))})]})})]}),le=R===`merged`?Y+X:re,ue=R===`merged`?J.reduce((e,t)=>e+1+t.shadowed.length,0):ie;return(0,O.jsxs)(`div`,{className:`app-panel-content flex h-full flex-col gap-3`,children:[(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,O.jsxs)(m,{type:`single`,value:R,onValueChange:e=>{e&&z(e)},variant:`outline`,size:`sm`,className:`bg-background`,"aria-label":`总览视图`,children:[(0,O.jsx)(l,{value:`merged`,children:`生效规则`}),(0,O.jsx)(l,{value:`files`,children:`按文件`})]}),(0,O.jsxs)(`div`,{className:`relative min-w-40 flex-1`,children:[(0,O.jsx)(_,{className:`pointer-events-none absolute top-1/2 left-2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,O.jsx)(g,{value:B,onChange:e=>V(e.target.value),placeholder:`搜索规则 / 目标 / 文件名`,className:`h-8 pl-8`,"aria-label":`搜索规则`})]}),(0,O.jsx)(r,{type:`button`,variant:`ghost`,size:`icon-sm`,onClick:()=>void U(),disabled:P,"aria-label":`刷新总览`,title:`刷新`,children:(0,O.jsx)(i,{})})]}),G&&(0,O.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-amber-200 bg-amber-50 px-3 py-2 text-xs text-amber-800`,children:[(0,O.jsx)(h,{className:`h-3.5 w-3.5 shrink-0`}),(0,O.jsxs)(`span`,{children:[`「`,t,`」有未保存修改,此处展示的是代理当前使用的`,(0,O.jsx)(`b`,{children:`已保存内容`})]})]}),!P&&!I&&(N?.files.length??0)>0&&(0,O.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 text-xs text-muted-foreground`,children:[(0,O.jsxs)(`span`,{children:[ue,` / `,le,` 条`,R===`merged`&&H.trim()===``&&X>0?`,其中 ${X} 条被同名规则覆盖`:``]}),R===`merged`&&(0,O.jsx)(`span`,{children:`按代理实际生效顺序排列(后定义覆盖先定义)`}),R===`files`&&(0,O.jsx)(`span`,{children:`点击文件名切换到该文件`})]}),oe()]})}export{M as RuleOverviewPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`clock`,[[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}],[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),n=e(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]);export{t as n,n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,d as t,p as n,t as r,u as i}from"./button-BFNlGZ5p.js";import"./dist-CFZ4xMSF.js";import{t as ee}from"./check-BkfHQ6re.js";import{t as a}from"./circle-alert-zMagrFuI.js";import{t as o}from"./circle-x-BEkinhez.js";import{t as s}from"./plus-ixZQRprm.js";import{t as te}from"./refresh-cw-BfLoHqg5.js";import{t as ne}from"./rotate-ccw-CRguJya4.js";import{t as re}from"./smartphone-D4Q7cQfm.js";import{c as ie}from"./dist-BQN0rzUS.js";import"./es2015-DPJTBYa9.js";import{t as ae}from"./switch-94vgsMHm.js";import{a as c,c as oe,l as se,n as ce,o as le,r as l,s as ue,t as de}from"./ai-config-store-C8D_PUGV.js";import{n as u}from"./toast-9yeTf7d9.js";import{a as fe,i as pe,n as me,o as he,r as ge}from"./use-mocks-file-status-BUIUJ4oQ.js";import{$ as _e,C as ve,D as d,E as ye,G as be,J as f,K as xe,M as p,N as Se,Ot as m,P as h,Q as g,S as Ce,St as we,T as Te,X as Ee,Y as De,Z as _,_ as Oe,dt as ke,et as v,f as Ae,g as je,gt as Me,h as y,j as Ne,jt as b,m as x,mt as Pe,p as Fe,pt as Ie,q as Le,v as Re,w as ze,x as S,xt as Be}from"./index-C4dIj1nT.js";import{n as Ve,r as He,t as Ue}from"./alert-B514Frte.js";import{n as We}from"./pane-bar-5j9Nf7W_.js";import{i as Ge,o as Ke,r as qe,t as Je}from"./mocks-file-missing-note-CW_ONVLA.js";var Ye=i(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Xe=i(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ze=i(`stethoscope`,[[`path`,{d:`M11 2v2`,key:`1539x4`}],[`path`,{d:`M5 2v2`,key:`1yf1q8`}],[`path`,{d:`M5 3H4a2 2 0 0 0-2 2v4a6 6 0 0 0 12 0V5a2 2 0 0 0-2-2h-1`,key:`rb5t3r`}],[`path`,{d:`M8 15a6 6 0 0 0 12 0v-3`,key:`x18d4x`}],[`circle`,{cx:`20`,cy:`10`,r:`2`,key:`ts1r5v`}]]),C=n(t(),1),w={version:null,routeRulesDir:null,routeRulesDirDisplay:null};function T(e){return typeof e==`string`&&e.trim()||null}function Qe(e){if(!e||typeof e!=`object`||Array.isArray(e))return{...w};let t=e;return{version:T(t.version),routeRulesDir:T(t.routeRulesDir),routeRulesDirDisplay:T(t.routeRulesDirDisplay)}}async function $e(){try{let e=await fetch(`/api/version`);return e.ok?Qe(await e.json()):{...w}}catch{return{...w}}}var E=e(),et=[{value:`75`,label:`75%`,scale:.75},{value:`90`,label:`90%`,scale:.9},{value:`100`,label:`100%`,scale:1},{value:`110`,label:`110%`,scale:1.1},{value:`125`,label:`125%`,scale:1.25},{value:`150`,label:`150%`,scale:1.5}],tt=[{value:`auto`,label:`自动`,color:`linear-gradient(135deg, oklch(0.623 0.214 259.815), oklch(0.606 0.25 292.717))`},{value:`neutral`,label:`中性`,color:`oklch(0.556 0 0)`},{value:`blue`,label:`蓝色`,color:`oklch(0.623 0.214 259.815)`},{value:`violet`,label:`紫色`,color:`oklch(0.606 0.25 292.717)`},{value:`green`,label:`绿色`,color:`oklch(0.627 0.194 149.214)`},{value:`orange`,label:`橙色`,color:`oklch(0.646 0.222 41.116)`},{value:`rose`,label:`玫红`,color:`oklch(0.645 0.246 16.439)`}],D=`app-panel-content mt-0`,O=`app-field-group`,k=`app-section`,nt=`$MEDDLE_HOME/route-rules/`,A=e=>{if(!e)return`100`;let t={small:`90`,medium:`100`,large:`110`};return e in t?t[e]:et.some(t=>t.value===e)?e:`100`};function j({open:e=!1,onOpenChange:t,embedded:n=!1}){let{theme:i,accentColor:w,setTheme:T,setAccentColor:Qe,setZoom:j}=Ae(),[M,rt]=(0,C.useState)(`preferences`),[N,P]=(0,C.useState)(()=>l()),[F,it]=(0,C.useState)(!1),[I,L]=(0,C.useState)(!1),[R,z]=(0,C.useState)(null),[at,B]=(0,C.useState)(``),[V,H]=(0,C.useState)(null),[U,W]=(0,C.useState)(``),{status:G,refresh:K}=he(),[ot,st]=(0,C.useState)([]),[q,J]=(0,C.useState)({}),[Y,ct]=(0,C.useState)(``),[X,lt]=(0,C.useState)(``),[Z,ut]=(0,C.useState)(null),[dt,ft]=(0,C.useState)(!1),[pt,mt]=(0,C.useState)(null),[ht,gt]=(0,C.useState)(null);(0,C.useEffect)(()=>{let e=!1;return $e().then(t=>{if(e)return;mt(t.version);let n=t.routeRulesDirDisplay||t.routeRulesDir;n&>({display:n,path:t.routeRulesDir})}),()=>{e=!0}},[]);let _t=ht?.display??nt,[Q,vt]=(0,C.useState)(()=>A(Fe().fontSize)),[yt,bt]=(0,C.useState)(!1);(0,C.useEffect)(()=>{x().then(e=>{let t=A(e.fontSize);vt(t),j(parseInt(t,10)/100),bt(!0)}).catch(()=>{bt(!0)})},[j]),(0,C.useEffect)(()=>{if(!yt)return;let e=A(Q);j(parseInt(e,10)/100),y({fontSize:e}).catch(console.error)},[j,yt,Q]),(0,C.useEffect)(()=>{(e||n)&&(x().then(e=>{P(e.aiConfig),W(e.mocksFilePath||``),J(e.clientAliases||{})}).catch(()=>{P(l())}),z(null),B(``),fetch(`/api/rule-files`).then(e=>e.json()).then(e=>{Array.isArray(e)&&st(e)}).catch(()=>{}))},[e,n]);let xt=e=>{let t=c(e);P({...N,provider:e,baseUrl:t.baseUrl,model:t.model})},$=async()=>{L(!0);try{await y({aiConfig:N}),oe(N),z(`success`),B(`AI 配置保存成功`),u.success(`AI 配置保存成功`)}catch(e){let t=e instanceof Error?e.message:`保存失败`;z(`error`),B(t),u.error(t)}finally{L(!1)}},St=()=>{ue(),P(l()),z(null),B(``)},Ct=async()=>{if(!le(N)){z(`error`),B(`请填写完整的配置信息`);return}L(!0),z(null),B(`测试中…`);try{let e=N.baseUrl,t={"Content-Type":`application/json`},n;N.provider===`anthropic`?(t[`x-api-key`]=N.apiKey,t[`anthropic-version`]=`2023-06-01`,n={model:N.model,max_tokens:100,system:`You are a helpful assistant.`,messages:[{role:`user`,content:`Say "test successful"`}],temperature:.3}):(t.Authorization=`Bearer ${N.apiKey}`,n={model:N.model,messages:[{role:`system`,content:`You are a helpful assistant.`},{role:`user`,content:`Say "test successful"`}],temperature:.3,max_tokens:100});let r=await fetch(e,{method:`POST`,headers:t,body:JSON.stringify(n)});if(!r.ok){let e=await r.text();throw Error(`API错误 (${r.status}): ${e}`)}let i=await r.json();if(N.provider===`anthropic`){if(!i.content?.[0]?.text)throw Error(`API响应格式不正确`)}else if(!i.choices?.[0]?.message?.content)throw Error(`API响应格式不正确`);z(`success`),B(`连接测试成功! API配置正常`)}catch(e){z(`error`),B(e instanceof Error?e.message:`测试失败`)}finally{L(!1)}},wt=(0,C.useCallback)(async()=>{try{let e=await fetch(`/api/refresh-config`,{method:`POST`});if(e.ok){let t=await e.json();K(),z(`success`),B(t.message||`配置已刷新`),setTimeout(()=>{z(null),B(``)},2e3)}else{let t=await e.json();z(`error`),B(t.error||`刷新配置失败`),setTimeout(()=>{z(null),B(``)},2e3)}}catch(e){console.error(`刷新配置失败:`,e),z(`error`),B(`刷新配置失败`),setTimeout(()=>{z(null),B(``)},2e3)}},[K]),Tt=(0,C.useCallback)(async()=>{ft(!0),ut(null);try{let e=await fetch(`/api/config-doctor`);e.ok?ut(await e.json()):(z(`error`),B(`诊断失败`),setTimeout(()=>{z(null),B(``)},2e3))}catch(e){console.error(`诊断失败:`,e),z(`error`),B(`诊断失败`),setTimeout(()=>{z(null),B(``)},2e3)}finally{ft(!1)}},[]),Et=()=>{let e=Y.trim(),t=X.trim();!e||!t||(J(n=>({...n,[e]:t})),ct(``),lt(``))},Dt=async()=>{L(!0);try{await y({clientAliases:q}),z(`success`),B(`客户端名称已保存,新请求立即生效`),u.success(`客户端名称保存成功`)}catch(e){let t=e instanceof Error?e.message:`保存失败`;z(`error`),B(t),u.error(t)}finally{L(!1)}},Ot=async()=>{L(!0);try{await y({mocksFilePath:U}),K(),z(`success`),B(`Mock 文件路径已更新,已切换到新文件`),u.success(`Mock 文件路径保存成功`),setTimeout(()=>{z(null),B(``)},3e3)}catch(e){let t=e instanceof Error?e.message:`保存失败`;z(`error`),B(t),u.error(t)}finally{L(!1)}};je({active:(e||n)&&M!==`preferences`,enabled:!I,priority:Oe.panel,onSave:()=>{if(M===`config`)return Ot();if(M===`clients`)return Dt();if(M===`ai`)return $()}});let kt=(0,E.jsxs)(E.Fragment,{children:[!n&&(0,E.jsxs)(Te,{className:`px-6 pt-6 pb-4`,children:[(0,E.jsxs)(ye,{className:`flex items-center gap-2`,children:[(0,E.jsx)(Pe,{className:`h-5 w-5`}),`系统设置`]}),(0,E.jsx)(ze,{children:`管理系统偏好、配置和 AI 功能`})]}),(0,E.jsxs)(Ne,{value:M,onValueChange:e=>rt(e),orientation:`vertical`,className:`min-h-0 flex-1 gap-0`,children:[(0,E.jsxs)(Se,{"aria-label":`设置分类`,className:`h-full w-14 shrink-0 self-stretch justify-start gap-1 rounded-none border-r bg-muted/25 p-2 group-data-[orientation=vertical]/tabs:!h-full sm:w-44 sm:p-3`,children:[(0,E.jsxs)(h,{value:`preferences`,className:`h-9 w-full flex-none justify-start px-2.5 sm:px-3`,children:[(0,E.jsx)(Pe,{}),(0,E.jsx)(`span`,{className:`hidden sm:inline`,children:`偏好设置`})]}),(0,E.jsxs)(h,{value:`config`,className:`h-9 w-full flex-none justify-start px-2.5 sm:px-3`,children:[(0,E.jsx)(m,{}),(0,E.jsx)(`span`,{className:`hidden sm:inline`,children:`配置文件`})]}),(0,E.jsxs)(h,{value:`clients`,className:`h-9 w-full flex-none justify-start px-2.5 sm:px-3`,children:[(0,E.jsx)(re,{}),(0,E.jsx)(`span`,{className:`hidden sm:inline`,children:`客户端`})]}),(0,E.jsxs)(h,{value:`ai`,className:`h-9 w-full flex-none justify-start px-2.5 sm:px-3`,children:[(0,E.jsx)(Ie,{}),(0,E.jsx)(`span`,{className:`hidden sm:inline`,children:`AI 配置`})]})]}),(0,E.jsxs)(p,{value:`preferences`,className:D,children:[(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{className:`text-sm`,children:`主题`}),(0,E.jsxs)(be,{value:i,onValueChange:e=>T(e),children:[(0,E.jsx)(De,{children:(0,E.jsx)(Ee,{placeholder:`选择主题`})}),(0,E.jsx)(xe,{children:(0,E.jsxs)(Le,{children:[(0,E.jsx)(f,{value:`system`,children:(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(we,{className:`size-4`}),`跟随系统`]})}),(0,E.jsx)(f,{value:`light`,children:(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(ke,{className:`size-4`}),`浅色模式`]})}),(0,E.jsx)(f,{value:`dark`,children:(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(Be,{className:`size-4`}),`深色模式`]})})]})})]})]}),(0,E.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,E.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,E.jsx)(d,{className:`text-sm`,children:`强调色`}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`统一按钮、状态、选中项和焦点样式。自动模式会根据明暗主题选择合适的颜色。`})]}),(0,E.jsx)(_,{type:`single`,value:w,onValueChange:e=>{e&&Qe(e)},variant:`outline`,spacing:1,className:`flex-wrap justify-start`,"aria-label":`强调色`,children:tt.map(e=>(0,E.jsxs)(g,{value:e.value,"aria-label":e.label,children:[e.value===`auto`?(0,E.jsx)(Ie,{"data-icon":`inline-start`}):(0,E.jsx)(`span`,{className:`size-3 rounded-full border border-foreground/10`,style:{background:e.color}}),e.label]},e.value))})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{className:`text-sm`,children:`缩放比例`}),(0,E.jsxs)(be,{value:Q,onValueChange:vt,children:[(0,E.jsx)(De,{children:(0,E.jsx)(Ee,{placeholder:`选择缩放比例`})}),(0,E.jsx)(xe,{children:(0,E.jsx)(Le,{children:et.map(e=>(0,E.jsx)(f,{value:e.value,children:e.label},e.value))})})]})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(`h3`,{className:`text-sm font-medium`,children:`关于`}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Meddle - HTTP 调试代理工具`}),(0,E.jsxs)(`p`,{className:`text-xs text-muted-foreground`,"data-testid":`settings-app-version`,children:[`版本: `,pt??`—`]})]})]}),(0,E.jsxs)(p,{value:`config`,className:D,children:[(0,E.jsxs)(`div`,{className:k,children:[(0,E.jsx)(d,{className:`text-sm font-medium`,children:`路由规则文件`}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-muted rounded-md`,children:[(0,E.jsx)(m,{className:`h-4 w-4 text-muted-foreground shrink-0`}),(0,E.jsx)(`span`,{"data-testid":`settings-route-rules-dir`,className:`text-xs font-mono flex-1 wrap-anywhere`,title:ht?.path??void 0,children:(0,E.jsx)(Je,{path:_t})})]}),ot.length>0?(0,E.jsx)(`div`,{className:`space-y-2`,children:ot.map(e=>(0,E.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border px-3 py-2.5 text-sm`,children:[(0,E.jsx)(_e,{variant:e.enabled?`default`:`secondary`,className:`text-[10px]`,children:e.enabled?`已启用`:`未启用`}),(0,E.jsxs)(`span`,{className:`flex-1 truncate text-xs`,children:[e.name,`.txt`]}),(0,E.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[e.ruleCount,` 条规则`]})]},e.name))}):(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`暂无规则文件`}),(0,E.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`规则文件存放于 `,_t,` 目录,纯文本格式。在"路由规则"页面管理。`]})]})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:k,children:[(0,E.jsx)(d,{className:`text-sm font-medium`,children:`Mock 规则文件`}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(`span`,{"data-testid":`settings-mocks-file-current-label`,className:`text-xs text-muted-foreground`,children:`当前使用`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-muted rounded-md`,children:[(0,E.jsx)(m,{className:`h-4 w-4 text-muted-foreground shrink-0`}),(0,E.jsx)(`span`,{"data-testid":`settings-mocks-file-resolved`,className:`text-xs font-mono flex-1 wrap-anywhere`,title:G?.path,children:G?.path?(0,E.jsx)(Je,{path:G.path}):U||`默认: ~/.meddle/mocks.json`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`mocksPath`,className:`text-xs text-muted-foreground`,children:`自定义 Mock 规则文件路径(留空使用默认)`}),(0,E.jsxs)(`div`,{className:`flex gap-2`,children:[(0,E.jsx)(v,{id:`mocksPath`,value:U,onChange:e=>W(e.target.value),placeholder:`如: /path/to/my-mocks.json`,className:`flex-1 h-8 text-sm font-mono`}),(0,E.jsx)(We,{onClick:Ot,saving:I,label:`应用`,savingLabel:`应用中…`,"data-testid":`settings-mocks-file-apply`,className:`h-8`})]}),G?.legacyMocksPath?(0,E.jsx)(Ge,{oldPath:G.legacyMocksPath.oldPath,newPath:G.legacyMocksPath.newPath,visible:pe(U),onUseOldPath:()=>W(G.legacyMocksPath.oldPath)}):null,(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`必须是 JSON 格式的 Mock 规则文件。支持 ~ 表示用户主目录;相对路径相对于 Meddle 配置目录。`}),ge(G)?(0,E.jsx)(qe,{testId:`settings-mocks-file-invalid`,location:me(G.parseError)}):fe(G)&&!G.legacyMocksPath?(0,E.jsx)(Ke,{testId:`settings-mocks-file-missing`}):null]})]})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(`h3`,{className:`text-sm font-medium`,children:`操作`}),(0,E.jsxs)(`div`,{className:`flex gap-2`,children:[(0,E.jsxs)(r,{variant:`outline`,size:`sm`,onClick:wt,children:[(0,E.jsx)(te,{className:`h-4 w-4 mr-1`}),`重新加载配置`]}),(0,E.jsxs)(r,{variant:`outline`,size:`sm`,onClick:Tt,disabled:dt,children:[(0,E.jsx)(Ze,{className:`h-4 w-4 mr-1`}),dt?`诊断中…`:`诊断配置`]})]}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`点击重新加载可应用修改后的配置文件,点击诊断配置可检查配置有效性`})]}),Z&&(0,E.jsxs)(`div`,{className:k,children:[(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{children:[(0,E.jsxs)(`h3`,{className:`mb-4 flex items-center gap-2 text-sm font-medium`,children:[(0,E.jsx)(Ze,{className:`h-4 w-4`}),`诊断结果`]}),(0,E.jsxs)(`div`,{className:`mb-3 p-3 rounded-md border ${Z.status===`ok`?`bg-green-50 dark:bg-green-950/20 border-green-200 dark:border-green-900`:Z.status===`warning`?`bg-yellow-50 dark:bg-yellow-950/20 border-yellow-200 dark:border-yellow-900`:`bg-red-50 dark:bg-red-950/20 border-red-200 dark:border-red-900`}`,children:[Z.status===`ok`&&(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(b,{className:`h-5 w-5 text-green-600 dark:text-green-400`}),(0,E.jsx)(`span`,{className:`text-sm font-medium text-green-700 dark:text-green-300`,children:`所有检查通过!配置正常。`})]}),Z.status===`warning`&&(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(a,{className:`h-5 w-5 text-yellow-600 dark:text-yellow-400`}),(0,E.jsxs)(`span`,{className:`text-sm font-medium text-yellow-700 dark:text-yellow-300`,children:[`发现 `,Z.warnings.length,` 个警告`]})]}),Z.status===`error`&&(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(o,{className:`h-5 w-5 text-red-600 dark:text-red-400`}),(0,E.jsxs)(`span`,{className:`text-sm font-medium text-red-700 dark:text-red-300`,children:[`发现 `,Z.errors.length,` 个错误`]})]})]}),(0,E.jsx)(`div`,{className:O,children:Z.checks.map((e,t)=>(0,E.jsx)(`div`,{className:`p-2 rounded border bg-card`,children:(0,E.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,E.jsx)(b,{className:`h-4 w-4 text-green-600 dark:text-green-400 mt-0.5 shrink-0`}),(0,E.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,E.jsx)(`div`,{className:`text-sm font-medium`,children:e.name}),(0,E.jsx)(`div`,{className:`text-xs text-muted-foreground font-mono truncate`,children:e.path}),e.details&&(0,E.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[e.details.totalFiles!==void 0&&`${e.details.enabledFiles}/${e.details.totalFiles} 个文件已启用`,e.details.totalRules!==void 0&&` · ${e.details.totalRules} 条规则`,e.details.rules!==void 0&&`${e.details.rules} 条规则`,e.details.total!==void 0&&`${e.details.total} 条规则 (${e.details.enabled} 已启用)`,e.details.size!==void 0&&` · ${e.details.size} bytes`]})]})]})},t))}),Z.warnings&&Z.warnings.length>0&&(0,E.jsxs)(`div`,{className:`mt-3 space-y-1`,children:[(0,E.jsx)(`div`,{className:`text-xs font-medium text-yellow-700 dark:text-yellow-300`,children:`警告:`}),Z.warnings.map((e,t)=>(0,E.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-yellow-600 dark:text-yellow-400`,children:[(0,E.jsx)(a,{className:`h-3 w-3 mt-0.5 shrink-0`}),(0,E.jsx)(`span`,{children:e})]},t))]}),Z.errors&&Z.errors.length>0&&(0,E.jsxs)(`div`,{className:`mt-3 space-y-1`,children:[(0,E.jsx)(`div`,{className:`text-xs font-medium text-red-700 dark:text-red-300`,children:`错误:`}),Z.errors.map((e,t)=>(0,E.jsxs)(`div`,{className:`flex items-start gap-2 text-xs text-red-600 dark:text-red-400`,children:[(0,E.jsx)(o,{className:`h-3 w-3 mt-0.5 shrink-0`}),(0,E.jsx)(`span`,{children:e})]},t))]})]})]})]}),(0,E.jsxs)(p,{value:`clients`,className:D,children:[(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsxs)(`h3`,{className:`text-sm font-medium flex items-center gap-2`,children:[(0,E.jsx)(re,{className:`h-4 w-4`}),`远程客户端名称`]}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`将日志中的客户端 IP 映射为设备名称。保存后新请求立即生效,无需重启代理。`})]}),(0,E.jsx)(`div`,{className:O,children:Object.entries(q).length===0?(0,E.jsx)(`div`,{className:`rounded-md border border-dashed p-4 text-center text-xs text-muted-foreground`,children:`尚未配置设备名称`}):Object.entries(q).map(([e,t])=>(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(v,{value:e,readOnly:!0,className:`h-8 flex-1 font-mono text-xs bg-muted/40`,"aria-label":`客户端 IP ${e}`}),(0,E.jsx)(v,{value:t,onChange:t=>{let n=t.target.value;J(t=>({...t,[e]:n}))},className:`h-8 flex-1 text-sm`,"aria-label":`${e} 的设备名称`}),(0,E.jsx)(r,{variant:`ghost`,size:`icon-sm`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>{J(t=>{let n={...t};return delete n[e],n})},title:`删除设备名称`,"aria-label":`删除设备名称`,children:(0,E.jsx)(ie,{className:`h-4 w-4`})})]},e))}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{className:`text-sm`,children:`添加设备`}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(v,{value:Y,onChange:e=>ct(e.target.value),placeholder:`客户端 IP,例如 10.13.232.187`,className:`h-8 flex-1 font-mono text-xs`}),(0,E.jsx)(v,{value:X,onChange:e=>lt(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Et()},placeholder:`设备名称,例如 iPhone`,className:`h-8 flex-1 text-sm`}),(0,E.jsxs)(r,{variant:`outline`,size:`sm`,className:`h-8`,onClick:Et,disabled:!Y.trim()||!X.trim(),children:[(0,E.jsx)(s,{className:`h-4 w-4 mr-1`}),`添加`]})]})]}),(0,E.jsxs)(Re,{onClick:Dt,disabled:I,children:[(0,E.jsx)(Me,{"data-icon":`inline-start`,className:`h-4 w-4`}),I?`保存中…`:`保存客户端名称`]})]}),(0,E.jsxs)(p,{value:`ai`,className:D,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(d,{className:`text-sm`,children:`启用 AI 功能`}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`启用智能代码修复功能`})]}),(0,E.jsx)(ae,{checked:N.enabled,onCheckedChange:e=>P({...N,enabled:e}),"aria-label":`启用 AI 功能`})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:k,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,E.jsx)(d,{className:`text-sm`,children:`AI 模型配置`}),(0,E.jsxs)(r,{variant:`outline`,size:`sm`,onClick:()=>{H({name:``,provider:`openai`,apiKey:``,baseUrl:`https://api.openai.com/v1/chat/completions`,model:`gpt-4o-mini`})},children:[(0,E.jsx)(s,{className:`h-4 w-4 mr-1`}),`添加模型`]})]}),(0,E.jsx)(`div`,{className:O,children:N.models&&N.models.length>0?N.models.map(e=>(0,E.jsx)(`div`,{className:`p-3 rounded-md border ${N.activeModelId===e.id?`border-primary bg-primary/5`:`border-border`}`,children:(0,E.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,E.jsxs)(`div`,{className:`flex-1`,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(`span`,{className:`font-medium text-sm`,children:e.name}),N.activeModelId===e.id&&(0,E.jsx)(_e,{variant:`default`,className:`text-xs`,children:`当前使用`})]}),(0,E.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[e.provider===`openai`?`OpenAI`:`Anthropic`,` - `,e.model]})]}),(0,E.jsxs)(`div`,{className:`flex gap-1`,children:[N.activeModelId!==e.id&&(0,E.jsxs)(r,{variant:`ghost`,size:`xs`,onClick:()=>P(se(N,e.id)),children:[(0,E.jsx)(ee,{className:`h-3 w-3 mr-1`}),`使用`]}),(0,E.jsx)(r,{variant:`ghost`,size:`icon-sm`,onClick:()=>P(ce(N,e.id)),className:`text-destructive`,"aria-label":`删除模型`,children:(0,E.jsx)(ie,{className:`h-3 w-3`})})]})]})},e.id)):(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground italic py-4 text-center`,children:`暂无模型配置,点击"添加模型"创建`})}),V&&(0,E.jsxs)(`div`,{className:`space-y-5 rounded-md border border-primary bg-primary/5 p-4`,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,E.jsx)(d,{className:`text-sm font-medium`,children:`新增模型`}),(0,E.jsx)(r,{variant:`ghost`,size:`icon-xs`,onClick:()=>H(null),"aria-label":`关闭新增模型表单`,children:(0,E.jsx)(o,{className:`h-4 w-4`})})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`newModelName`,className:`text-xs`,children:`模型名称`}),(0,E.jsx)(v,{id:`newModelName`,value:V.name||``,onChange:e=>H({...V,name:e.target.value}),placeholder:`如:GPT-4o Mini`,className:`h-8 text-sm`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{className:`text-xs`,children:`服务商`}),(0,E.jsxs)(_,{type:`single`,value:V.provider,onValueChange:e=>{if(e===`openai`){let e=c(`openai`);H({...V,provider:`openai`,baseUrl:e.baseUrl,model:e.model})}else if(e===`anthropic`){let e=c(`anthropic`);H({...V,provider:`anthropic`,baseUrl:e.baseUrl,model:e.model})}},variant:`outline`,size:`sm`,spacing:0,children:[(0,E.jsx)(g,{value:`openai`,children:`OpenAI`}),(0,E.jsx)(g,{value:`anthropic`,children:`Anthropic`})]})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`newModelApiKey`,className:`text-xs`,children:`API Key`}),(0,E.jsx)(v,{id:`newModelApiKey`,type:F?`text`:`password`,value:V.apiKey||``,onChange:e=>H({...V,apiKey:e.target.value}),placeholder:`输入 API Key`,className:`h-8 text-sm`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`newModelModel`,className:`text-xs`,children:`模型`}),(0,E.jsx)(v,{id:`newModelModel`,value:V.model||``,onChange:e=>H({...V,model:e.target.value}),placeholder:`模型名称`,className:`h-8 text-sm`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`newModelBaseUrl`,className:`text-xs`,children:`API 端点`}),(0,E.jsx)(v,{id:`newModelBaseUrl`,value:V.baseUrl||``,onChange:e=>H({...V,baseUrl:e.target.value}),placeholder:`API 端点`,className:`h-8 text-sm`})]}),(0,E.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,E.jsx)(r,{variant:`outline`,size:`xs`,onClick:()=>H(null),children:`取消`}),(0,E.jsxs)(r,{size:`xs`,onClick:()=>{V.name&&V.apiKey&&V.model&&V.baseUrl&&(P(de(N,V)),H(null))},disabled:!V.name||!V.apiKey||!V.model||!V.baseUrl,children:[(0,E.jsx)(s,{className:`h-3 w-3 mr-1`}),`添加`]})]})]})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,E.jsx)(d,{className:`text-sm`,children:`传统配置(向后兼容)`}),(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`如果未配置多模型,将使用此配置`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{className:`text-xs`,children:`AI 服务商`}),(0,E.jsxs)(_,{type:`single`,value:N.provider,onValueChange:e=>{(e===`openai`||e===`anthropic`)&&xt(e)},variant:`outline`,size:`sm`,spacing:0,children:[(0,E.jsx)(g,{value:`openai`,children:`OpenAI`}),(0,E.jsx)(g,{value:`anthropic`,children:`Anthropic`})]})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`apiKey`,className:`text-xs`,children:`API Key`}),(0,E.jsxs)(`div`,{className:`flex gap-2`,children:[(0,E.jsx)(v,{id:`apiKey`,type:F?`text`:`password`,value:N.apiKey,onChange:e=>P({...N,apiKey:e.target.value}),placeholder:`输入 API Key`,className:`flex-1 h-8 text-sm`}),(0,E.jsx)(r,{variant:`outline`,size:`icon-sm`,onClick:()=>it(!F),"aria-label":F?`隐藏 API Key`:`显示 API Key`,children:F?(0,E.jsx)(Ye,{className:`h-4 w-4`}):(0,E.jsx)(Xe,{className:`h-4 w-4`})})]})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`model`,className:`text-xs`,children:`模型`}),(0,E.jsx)(v,{id:`model`,value:N.model,onChange:e=>P({...N,model:e.target.value}),placeholder:`模型名称`,className:`h-8 text-sm`})]}),(0,E.jsxs)(`div`,{className:O,children:[(0,E.jsx)(d,{htmlFor:`baseUrl`,className:`text-xs`,children:`API 端点`}),(0,E.jsx)(v,{id:`baseUrl`,value:N.baseUrl,onChange:e=>P({...N,baseUrl:e.target.value}),placeholder:N.provider===`openai`?`https://api.openai.com/v1/chat/completions`:`https://api.anthropic.com/v1/messages`,className:`h-8 text-sm`})]}),at&&(0,E.jsxs)(Ue,{variant:R===`error`?`destructive`:`default`,children:[R===`success`?(0,E.jsx)(b,{}):R===`error`?(0,E.jsx)(o,{}):(0,E.jsx)(a,{}),(0,E.jsx)(He,{children:R===`success`?`操作成功`:R===`error`?`操作失败`:`处理中`}),(0,E.jsx)(Ve,{children:at})]}),(0,E.jsx)(S,{}),(0,E.jsxs)(`div`,{className:`flex justify-between`,children:[(0,E.jsxs)(r,{variant:`outline`,size:`sm`,onClick:St,children:[(0,E.jsx)(ne,{className:`h-4 w-4 mr-1`}),`重置`]}),(0,E.jsxs)(`div`,{className:`flex gap-2`,children:[(0,E.jsx)(r,{variant:`outline`,size:`sm`,onClick:Ct,disabled:!le(N)||I,children:`测试连接`}),(0,E.jsxs)(Re,{size:`sm`,onClick:$,disabled:I,children:[(0,E.jsx)(Me,{"data-icon":`inline-start`,className:`h-4 w-4`}),I?`保存中…`:`保存`]})]})]})]})]})]});return n?(0,E.jsx)(`div`,{"data-testid":`settings-fullwidth`,className:`app-workspace-content flex h-full min-h-0 w-full flex-col overflow-hidden p-0`,children:(0,E.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden rounded-md border bg-card`,children:kt})}):(0,E.jsx)(Ce,{open:e,onOpenChange:t,children:(0,E.jsx)(ve,{className:`p-0 flex flex-col`,resizable:!0,defaultWidth:600,storageKey:`settings-panel`,children:kt})})}export{j as SettingsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,d as t,l as n,o as r,p as i}from"./button-BFNlGZ5p.js";import{a,o,r as s,t as c}from"./dist-CFZ4xMSF.js";import{n as l,t as u}from"./dist-fzPL-8F9.js";var d=i(t(),1),f=e(),p=`Switch`,[m,h]=a(p),[g,_]=m(p),v=d.forwardRef((e,t)=>{let{__scopeSwitch:n,name:i,checked:a,defaultChecked:l,required:u,disabled:m,value:h=`on`,onCheckedChange:_,form:v,...y}=e,[b,x]=d.useState(null),w=r(t,e=>x(e)),T=d.useRef(!1),E=b?v||!!b.closest(`form`):!0,[D,O]=c({prop:a,defaultProp:l??!1,onChange:_,caller:p});return(0,f.jsxs)(g,{scope:n,checked:D,disabled:m,children:[(0,f.jsx)(o.button,{type:`button`,role:`switch`,"aria-checked":D,"aria-required":u,"data-state":C(D),"data-disabled":m?``:void 0,disabled:m,value:h,...y,ref:w,onClick:s(e.onClick,e=>{O(e=>!e),E&&(T.current=e.isPropagationStopped(),T.current||e.stopPropagation())})}),E&&(0,f.jsx)(S,{control:b,bubbles:!T.current,name:i,value:h,checked:D,required:u,disabled:m,form:v,style:{transform:`translateX(-100%)`}})]})});v.displayName=p;var y=`SwitchThumb`,b=d.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=_(y,n);return(0,f.jsx)(o.span,{"data-state":C(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});b.displayName=y;var x=`SwitchBubbleInput`,S=d.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:i=!0,...a},o)=>{let s=d.useRef(null),c=r(s,o),p=l(n),m=u(t);return d.useEffect(()=>{let e=s.current;if(!e)return;let t=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(t,`checked`).set;if(p!==n&&r){let t=new Event(`click`,{bubbles:i});r.call(e,n),e.dispatchEvent(t)}},[p,n,i]),(0,f.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:c,style:{...a.style,...m,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});S.displayName=x;function C(e){return e?`checked`:`unchecked`}var w=v,T=b;function E({className:e,...t}){return(0,f.jsx)(w,{"data-slot":`switch`,className:n(`peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-5 w-9 shrink-0 items-center rounded-full border-2 border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,f.jsx)(T,{"data-slot":`switch-thumb`,className:n(`bg-background pointer-events-none block size-4 rounded-full ring-0 shadow-lg transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0`)})})}export{E as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{c as e}from"./button-BFNlGZ5p.js";var t=e(),n=2097152,r=1e4,i=5e4,a=3e4,o=3e4;function s(e){return!(!e||e.length>n||e.split(`
|
|
2
2
|
`).length>r)}function c(e){let t=e.trim();if(!t)return`text`;if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.parse(t),`json`}catch{}return/^<!DOCTYPE\s+html/i.test(t)||t.startsWith(`<html`)||t.startsWith(`<!DOCTYPE`)||/^<(!DOCTYPE|html|head|body|div|span|p|a|img|ul|ol|li|table|tr|td|th|form|input|button|h[1-6]|nav|header|footer|section|article|main|aside)\b/i.test(t)||/<[a-z][\w-]*(\s+[^>]*)?>\s*[\s\S]*<\/[a-z][\w-]*>/i.test(t)||/<[a-z][\w-]*(\s+[^>]*)?\/?>/i.test(t)&&!t.includes(`{`)?`html`:/^[.#]?[a-z][\w-]*\s*\{/i.test(t)||/^@(media|keyframes|import|font-face|charset|supports|page|namespace)/i.test(t)||/[a-z-]+\s*:\s*[^;]+;/i.test(t)&&t.includes(`{`)?`css`:t.startsWith(`"use strict"`)||t.startsWith(`'use strict'`)||/^(import|export)\s+/m.test(t)||/^(function\s+\w+|const\s+\w+\s*=\s*\(|let\s+\w+\s*=\s*\(|var\s+\w+\s*=\s*\()/m.test(t)||/=>\s*\{?/.test(t)||/(^|\s)(class|function|const|let|var|if|else|for|while|return|try|catch|finally|throw|new|async|await)\s+/i.test(t)?`javascript`:`text`}function l(e){let n=[],r=/("(?:[^"\\]|\\.)+")\s*:|("(?:[^"\\]|\\.)+")|(-?\d+\.?\d*(?:[eE][+-]?\d+)?)|true|false|null|[{}[\]:,]/g,a=0,o,s=0;for(;(o=r.exec(e))!==null&&s++<i;){o.index>a&&n.push(e.slice(a,o.index));let r=o[0];o[1]?(n.push((0,t.jsx)(`span`,{className:`text-purple-600 dark:text-purple-400`,children:o[1]},o.index)),n.push(`:`)):o[2]?n.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:o[2]},o.index)):o[3]?n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:o[3]},o.index)):r===`true`||r===`false`?n.push((0,t.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:r},o.index)):r===`null`?n.push((0,t.jsx)(`span`,{className:`text-red-400`,children:r},o.index)):n.push((0,t.jsx)(`span`,{className:`text-muted-foreground`,children:r},o.index)),a=o.index+o[0].length}return a<e.length&&n.push(e.slice(a)),n}function u(e){let n=[],r=/<!--[\s\S]{0,500}?-->|<\/?([a-z][\w-]*)\b([^>]{0,500})>/gi,i,o=0,s=0;for(;(i=r.exec(e))!==null&&s++<a;){if(i.index>o){let r=e.slice(o,i.index);r&&n.push((0,t.jsx)(`span`,{className:`text-foreground`,children:r},`text-${o}`))}let r=i[0];if(r.startsWith(`<!--`))n.push((0,t.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400 italic`,children:r},i.index));else{let e=i[1],a=i[2];if(r.startsWith(`</`))n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:r},i.index));else{if(n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:`<`},i.index)),n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400 font-semibold`,children:e},`tag-${i.index}`)),a){let e=d(a,i.index);n.push(...e)}n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:`>`},`close-${i.index}`))}}o=i.index+r.length}if(o<e.length){let r=e.slice(o);r&&n.push((0,t.jsx)(`span`,{className:`text-foreground`,children:r},`text-${o}`))}return n}function d(e,n){let r=[],i=/([a-z-]+)(?:=(?:"([^"]*)"|'([^']*)'|([^\s>]+)))?/gi,a,o=0;for(;(a=i.exec(e))!==null;){a.index>o&&r.push(e.slice(o,a.index));let i=a[1],s=a[2]||a[3]||a[4];r.push((0,t.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:i},`attr-name-${n}-${a.index}`)),s!==void 0&&(r.push(`=`),a[2]===void 0?a[3]===void 0?r.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:a[4]},`attr-val-${n}-${a.index}`)):r.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:`'${a[3]}'`},`attr-val-${n}-${a.index}`)):r.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:`"${a[2]}"`},`attr-val-${n}-${a.index}`))),o=a.index+a[0].length}return o<e.length&&r.push(e.slice(o)),r}function f(e){let n=[];return e.split(`
|
|
3
3
|
`).slice(0,r).forEach((e,r)=>{if(r>0&&n.push(`
|
|
4
4
|
`),e.trim().startsWith(`/*`)){n.push((0,t.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400 italic`,children:e},`comment-${r}`));return}if(!e.includes(`:`)||e.includes(`{`)){let i=e.split(`{`);i.length>1?(n.push((0,t.jsx)(`span`,{className:`text-purple-600 dark:text-purple-400 font-semibold`,children:i[0]},`selector-${r}`)),n.push((0,t.jsx)(`span`,{className:`text-foreground`,children:` {`},`brace-${r}`)),i[1]&&n.push(i[1])):n.push((0,t.jsx)(`span`,{className:`text-purple-600 dark:text-purple-400 font-semibold`,children:e},`selector-${r}`))}else if(e.includes(`:`)){let i=e.indexOf(`:`),a=e.slice(0,i),o=e.slice(i+1);n.push((0,t.jsx)(`span`,{className:`text-blue-600 dark:text-blue-400`,children:a},`prop-${r}`)),n.push((0,t.jsx)(`span`,{className:`text-foreground`,children:`:`},`colon-${r}`));let s=p(o,r);n.push(...s)}else n.push(e)}),n}function p(e,n){let r=[],i=/(#[0-9a-fA-F]{3,8})|(\d+(?:\.\d+)?(?:px|em|rem|%|vh|vw|deg|s|ms)?)|([a-z-]+)/gi,a=0,o;for(;(o=i.exec(e))!==null;)o.index>a&&r.push(e.slice(a,o.index)),o[1]?r.push((0,t.jsx)(`span`,{className:`text-pink-600 dark:text-pink-400`,children:o[1]},`color-${n}-${o.index}`)):o[2]?r.push((0,t.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:o[2]},`num-${n}-${o.index}`)):o[3]&&r.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:o[3]},`keyword-${n}-${o.index}`)),a=o.index+o[0].length;return a<e.length&&r.push(e.slice(a)),r}function m(e){let n=[],r=/(["'`])(?:[^"'`\\]|\\.){0,200}?\1|\/\/[^\n]{0,200}|\/\*[\s\S]{0,500}?\*\/|\b(function|const|let|var|if|else|for|while|return|class|import|export|from|default|async|await|try|catch|finally|throw|new|this|super|extends|static|get|set|typeof|instanceof|in|of|void|delete|yield|switch|case|break|continue|do)\b|(\d+\.?\d*(?:[eE][+-]?\d+)?)/gm,i=0,a,s=0;for(;(a=r.exec(e))!==null&&s++<o;){a.index>i&&n.push(e.slice(i,a.index));let r=a[0];r.startsWith(`"`)||r.startsWith(`'`)||r.startsWith("`")?n.push((0,t.jsx)(`span`,{className:`text-emerald-600 dark:text-emerald-400`,children:r},a.index)):r.startsWith(`//`)||r.startsWith(`/*`)?n.push((0,t.jsx)(`span`,{className:`text-gray-500 dark:text-gray-400 italic`,children:r},a.index)):a[2]?n.push((0,t.jsx)(`span`,{className:`text-purple-600 dark:text-purple-400 font-semibold`,children:a[2]},a.index)):a[3]?n.push((0,t.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:a[3]},a.index)):n.push(r),i=a.index+r.length}return i<e.length&&n.push(e.slice(i)),n}function h(e,t){if(!s(e))return[e];let n=t||c(e);try{let t=performance.now(),r;switch(n){case`json`:r=l(e);break;case`html`:r=u(e);break;case`css`:r=f(e);break;case`javascript`:r=m(e);break;default:return[e]}let i=performance.now()-t;return i>100&&console.warn(`Syntax highlighting took ${i.toFixed(2)}ms for ${e.length} chars`),r}catch(t){return console.error(`Syntax highlighting error:`,t),[e]}}function g(e){try{return JSON.parse(e),!0}catch{return!1}}function _(e){let t=e.trim();if(!t)return{valid:!0};try{if(!t.includes(`<`))return{valid:!1,error:`内容不像是有效的HTML`};let e=new Set([`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`link`,`meta`,`param`,`source`,`track`,`wbr`]),n=[],r=/<!--[\s\S]*?-->|<!DOCTYPE[^>]*>|<\/?([a-z][\w-]*)\b[^>]*?>/gi,i;for(;(i=r.exec(t))!==null;){let t=i[0],r=i[1]?.toLowerCase();if(!(!r||t.startsWith(`<!--`)||/^<!doctype/i.test(t))){if(t.startsWith(`</`)){if(n.length===0)return{valid:!1,error:`HTML语法错误:未找到标签 <${r}> 的开始标签`};let e=n.pop();if(e!==r)return{valid:!1,error:`HTML语法错误:标签不匹配,期望 </${e}>,实际 </${r}>`};continue}t.endsWith(`/>`)||e.has(r)||n.push(r)}}return n.length>0?{valid:!1,error:`HTML语法错误:标签 <${n[n.length-1]}> 未闭合`}:{valid:!0}}catch(e){return{valid:!1,error:`HTML解析错误:${e instanceof Error?e.message:`未知错误`}`}}}function v(e){let t=e.trim();if(!t)return{valid:!0};try{let e=0,n=!1,r=``;for(let i=0;i<t.length;i++){let a=t[i],o=i>0?t[i-1]:``;if((a===`"`||a===`'`)&&o!==`\\`&&(n?a===r&&(n=!1):(n=!0,r=a)),!n){if(a===`{`)e++;else if(a===`}`&&(e--,e<0))return{valid:!1,error:`CSS语法错误:多余的闭合大括号 }`}}}return e===0?n?{valid:!1,error:`CSS语法错误:未闭合的字符串`}:{valid:!0}:{valid:!1,error:e>0?`CSS语法错误:缺少闭合大括号 }`:`CSS语法错误:多余的闭合大括号 }`}}catch(e){return{valid:!1,error:`CSS解析错误:${e instanceof Error?e.message:`未知错误`}`}}}function y(e){let t=e.trim();if(!t)return{valid:!0};try{let e=[],n=!1,r=``,i=!1,a=!1,o=!1;for(let s=0;s<t.length;s++){let c=t[s],l=s>0?t[s-1]:``,u=s+1<t.length?t[s+1]:``;if(!n&&!i&&!a&&c===`/`&&u===`*`){o=!0,s++;continue}if(o){c===`*`&&u===`/`&&(o=!1,s++);continue}if(!n&&!i&&!o&&c===`/`&&u===`/`){a=!0;continue}if(a){c===`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`table-2`,[[`path`,{d:`M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18`,key:`gugj83`}]]);export{t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,d as t,l as n,p as r}from"./button-BFNlGZ5p.js";r(t(),1);var i=e();function a({className:e,...t}){return(0,i.jsx)(`div`,{"data-slot":`table-container`,className:`meddle-thin-scroll relative w-full overflow-x-auto`,children:(0,i.jsx)(`table`,{"data-slot":`table`,className:n(`w-full caption-bottom text-sm`,e),...t})})}function o({className:e,...t}){return(0,i.jsx)(`thead`,{"data-slot":`table-header`,className:n(`[&_tr]:border-b`,e),...t})}function s({className:e,...t}){return(0,i.jsx)(`tbody`,{"data-slot":`table-body`,className:n(`[&_tr:last-child]:border-0`,e),...t})}function c({className:e,...t}){return(0,i.jsx)(`tr`,{"data-slot":`table-row`,className:n(`hover:bg-accent/60 hover:text-accent-foreground data-[state=selected]:bg-accent data-[state=selected]:text-accent-foreground border-b transition-colors`,e),...t})}function l({className:e,...t}){return(0,i.jsx)(`th`,{"data-slot":`table-head`,className:n(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...t})}function u({className:e,...t}){return(0,i.jsx)(`td`,{"data-slot":`table-cell`,className:n(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,e),...t})}export{o as a,l as i,s as n,c as o,u as r,a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as e,d as t,l as n,p as r}from"./button-BFNlGZ5p.js";r(t(),1);var i=e();function a({className:e,...t}){return(0,i.jsx)(`textarea`,{"data-slot":`textarea`,className:n(`placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input w-full min-w-0 rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,`min-h-[80px]`,e),...t})}export{a as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e,p as t}from"./button-BFNlGZ5p.js";import{c as n}from"./dist-CFZ4xMSF.js";var r=t(e(),1),i=t(n(),1);function a(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var o=e=>{switch(e){case`success`:return l;case`info`:return d;case`warning`:return u;case`error`:return f;default:return null}},s=Array(12).fill(0),c=({visible:e,className:t})=>r.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},r.createElement(`div`,{className:`sonner-spinner`},s.map((e,t)=>r.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),l=r.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},r.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`})),u=r.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},r.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`})),d=r.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},r.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`})),f=r.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},r.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`})),p=r.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`},r.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),r.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),ee=()=>{let[e,t]=r.useState(document.hidden);return r.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},m=1,h=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:m++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let i=Promise.resolve(e instanceof Function?e():e),a=n!==void 0,o,s=i.then(async e=>{if(o=[`resolve`,e],r.isValidElement(e))a=!1,this.create({id:n,type:`default`,message:e});else if(_(e)&&!e.ok){a=!1;let i=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,o=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,s=typeof i==`object`&&!r.isValidElement(i)?i:{message:i};this.create({id:n,type:`error`,description:o,...s})}else if(e instanceof Error){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!r.isValidElement(i)?i:{message:i};this.create({id:n,type:`error`,description:o,...s})}else if(t.success!==void 0){a=!1;let i=typeof t.success==`function`?await t.success(e):t.success,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!r.isValidElement(i)?i:{message:i};this.create({id:n,type:`success`,description:o,...s})}}).catch(async e=>{if(o=[`reject`,e],t.error!==void 0){a=!1;let i=typeof t.error==`function`?await t.error(e):t.error,o=typeof t.description==`function`?await t.description(e):t.description,s=typeof i==`object`&&!r.isValidElement(i)?i:{message:i};this.create({id:n,type:`error`,description:o,...s})}}).finally(()=>{a&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),c=()=>new Promise((e,t)=>s.then(()=>o[0]===`reject`?t(o[1]):e(o[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:c}:Object.assign(n,{unwrap:c})},this.custom=(e,t)=>{let n=t?.id||m++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},g=(e,t)=>{let n=t?.id||m++;return h.addToast({title:e,...t,id:n}),n},_=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,v=g,y=Object.assign(v,{success:h.success,info:h.info,warning:h.warning,error:h.error,custom:h.custom,message:h.message,promise:h.promise,dismiss:h.dismiss,loading:h.loading},{getHistory:()=>h.toasts,getToasts:()=>h.getActiveToasts()});a(`[data-sonner-toaster][dir=ltr],html[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%)}[data-sonner-toaster][dir=rtl],html[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%)}[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:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[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);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[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 rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [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)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [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;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [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);background:var(--normal-bg);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-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[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}[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}[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,0)) translateX(var(--swipe-amount-x,0));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{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{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{from{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-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--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-sonner-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-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-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, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--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-sonner-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-sonner-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]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[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]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[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]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[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]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[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:first-child{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)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{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%)}`);function b(e){return e.label!==void 0}var te=3,x=`24px`,S=`16px`,C=4e3,w=356,T=14,E=45,D=200;function O(...e){return e.filter(Boolean).join(` `)}function k(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var ne=e=>{let{invert:t,toast:n,unstyled:i,interacting:a,setHeights:s,visibleToasts:l,heights:u,index:d,toasts:f,expanded:m,removeToast:h,defaultRichColors:g,closeButton:_,style:v,cancelButtonStyle:y,actionButtonStyle:te,className:x=``,descriptionClassName:S=``,duration:w,position:T,gap:ne,expandByDefault:A,classNames:j,icons:M,closeButtonAriaLabel:N=`Close toast`}=e,[P,F]=r.useState(null),[I,re]=r.useState(null),[L,R]=r.useState(!1),[z,B]=r.useState(!1),[V,H]=r.useState(!1),[ie,ae]=r.useState(!1),[oe,se]=r.useState(!1),[ce,U]=r.useState(0),[le,ue]=r.useState(0),W=r.useRef(n.duration||w||C),de=r.useRef(null),G=r.useRef(null),fe=d===0,pe=d+1<=l,K=n.type,q=n.dismissible!==!1,me=n.className||``,he=n.descriptionClassName||``,J=r.useMemo(()=>u.findIndex(e=>e.toastId===n.id)||0,[u,n.id]),ge=r.useMemo(()=>n.closeButton??_,[n.closeButton,_]),_e=r.useMemo(()=>n.duration||w||C,[n.duration,w]),Y=r.useRef(0),X=r.useRef(0),ve=r.useRef(0),Z=r.useRef(null),[ye,be]=T.split(`-`),xe=r.useMemo(()=>u.reduce((e,t,n)=>n>=J?e:e+t.height,0),[u,J]),Se=ee(),Ce=n.invert||t,Q=K===`loading`;X.current=r.useMemo(()=>J*ne+xe,[J,xe]),r.useEffect(()=>{W.current=_e},[_e]),r.useEffect(()=>{R(!0)},[]),r.useEffect(()=>{let e=G.current;if(e){let t=e.getBoundingClientRect().height;return ue(t),s(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>s(e=>e.filter(e=>e.toastId!==n.id))}},[s,n.id]),r.useLayoutEffect(()=>{if(!L)return;let e=G.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,ue(r),s(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[L,n.title,n.description,s,n.id,n.jsx,n.action,n.cancel]);let $=r.useCallback(()=>{B(!0),U(X.current),s(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{h(n)},D)},[n,h,s,X]);r.useEffect(()=>{if(n.promise&&K===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return m||a||Se?(()=>{if(ve.current<Y.current){let e=new Date().getTime()-Y.current;W.current-=e}ve.current=new Date().getTime()})():W.current!==1/0&&(Y.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),$()},W.current)),()=>clearTimeout(e)},[m,a,n,K,Se,$]),r.useEffect(()=>{n.delete&&($(),n.onDismiss==null||n.onDismiss.call(n,n))},[$,n.delete]);function we(){return M?.loading?r.createElement(`div`,{className:O(j?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":K===`loading`},M.loading):r.createElement(c,{className:O(j?.loader,n?.classNames?.loader),visible:K===`loading`})}let Te=n.icon||M?.[K]||o(K);return r.createElement(`li`,{tabIndex:0,ref:G,className:O(x,me,j?.toast,n?.classNames?.toast,j?.default,j?.[K],n?.classNames?.[K]),"data-sonner-toast":``,"data-rich-colors":n.richColors??g,"data-styled":!(n.jsx||n.unstyled||i),"data-mounted":L,"data-promise":!!n.promise,"data-swiped":oe,"data-removed":z,"data-visible":pe,"data-y-position":ye,"data-x-position":be,"data-index":d,"data-front":fe,"data-swiping":V,"data-dismissible":q,"data-type":K,"data-invert":Ce,"data-swipe-out":ie,"data-swipe-direction":I,"data-expanded":!!(m||A&&L),"data-testid":n.testId,style:{"--index":d,"--toasts-before":d,"--z-index":f.length-d,"--offset":`${z?ce:X.current}px`,"--initial-height":A?`auto`:`${le}px`,...v,...n.style},onDragEnd:()=>{H(!1),F(null),Z.current=null},onPointerDown:e=>{e.button!==2&&(Q||!q||(de.current=new Date,U(X.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(H(!0),Z.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(ie||!q)return;Z.current=null;let e=Number(G.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(G.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-de.current?.getTime(),i=P===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=E||a>.11){U(X.current),n.onDismiss==null||n.onDismiss.call(n,n),re(P===`x`?e>0?`right`:`left`:t>0?`down`:`up`),$(),ae(!0);return}else{var o,s;(o=G.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=G.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}se(!1),H(!1),F(null)},onPointerMove:t=>{var n,r;if(!Z.current||!q||window.getSelection()?.toString().length>0)return;let i=t.clientY-Z.current.y,a=t.clientX-Z.current.x,o=e.swipeDirections??k(T);!P&&(Math.abs(a)>1||Math.abs(i)>1)&&F(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(P===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(P===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&se(!0),(n=G.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=G.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},ge&&!n.jsx&&K!==`loading`?r.createElement(`button`,{"aria-label":N,"data-disabled":Q,"data-close-button":!0,onClick:Q||!q?()=>{}:()=>{$(),n.onDismiss==null||n.onDismiss.call(n,n)},className:O(j?.closeButton,n?.classNames?.closeButton)},M?.close??p):null,(K||n.icon||n.promise)&&n.icon!==null&&(M?.[K]!==null||n.icon)?r.createElement(`div`,{"data-icon":``,className:O(j?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||we():null,n.type===`loading`?null:Te):null,r.createElement(`div`,{"data-content":``,className:O(j?.content,n?.classNames?.content)},r.createElement(`div`,{"data-title":``,className:O(j?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?r.createElement(`div`,{"data-description":``,className:O(S,he,j?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),r.isValidElement(n.cancel)?n.cancel:n.cancel&&b(n.cancel)?r.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||y,onClick:e=>{b(n.cancel)&&q&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),$())},className:O(j?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,r.isValidElement(n.action)?n.action:n.action&&b(n.action)?r.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||te,onClick:e=>{b(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&$())},className:O(j?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function A(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function j(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?S:x;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var M=r.forwardRef(function(e,t){let{id:n,invert:a,position:o=`bottom-right`,hotkey:s=[`altKey`,`KeyT`],expand:c,closeButton:l,className:u,offset:d,mobileOffset:f,theme:p=`light`,richColors:ee,duration:m,style:g,visibleToasts:_=te,toastOptions:v,dir:y=A(),gap:b=T,icons:x,containerAriaLabel:S=`Notifications`}=e,[C,E]=r.useState([]),D=r.useMemo(()=>n?C.filter(e=>e.toasterId===n):C.filter(e=>!e.toasterId),[C,n]),O=r.useMemo(()=>Array.from(new Set([o].concat(D.filter(e=>e.position).map(e=>e.position)))),[D,o]),[k,M]=r.useState([]),[N,P]=r.useState(!1),[F,I]=r.useState(!1),[re,L]=r.useState(p===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:p),R=r.useRef(null),z=s.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),B=r.useRef(null),V=r.useRef(!1),H=r.useCallback(e=>{E(t=>(t.find(t=>t.id===e.id)?.delete||h.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return r.useEffect(()=>h.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{E(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{i.flushSync(()=>{E(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[C]),r.useEffect(()=>{if(p!==`system`){L(p);return}if(p===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?L(`dark`):L(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{L(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{L(e?`dark`:`light`)}catch(e){console.error(e)}})}},[p]),r.useEffect(()=>{C.length<=1&&P(!1)},[C]),r.useEffect(()=>{let e=e=>{if(s.every(t=>e[t]||e.code===t)){var t;P(!0),(t=R.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===R.current||R.current?.contains(document.activeElement))&&P(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[s]),r.useEffect(()=>{if(R.current)return()=>{B.current&&(B.current.focus({preventScroll:!0}),B.current=null,V.current=!1)}},[R.current]),r.createElement(`section`,{ref:t,"aria-label":`${S} ${z}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},O.map((t,n)=>{let[i,o]=t.split(`-`);return D.length?r.createElement(`ol`,{key:t,dir:y===`auto`?A():y,tabIndex:-1,ref:R,className:u,"data-sonner-toaster":!0,"data-sonner-theme":re,"data-y-position":i,"data-x-position":o,style:{"--front-toast-height":`${k[0]?.height||0}px`,"--width":`${w}px`,"--gap":`${b}px`,...g,...j(d,f)},onBlur:e=>{V.current&&!e.currentTarget.contains(e.relatedTarget)&&(V.current=!1,B.current&&=(B.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||V.current||(V.current=!0,B.current=e.relatedTarget)},onMouseEnter:()=>P(!0),onMouseMove:()=>P(!0),onMouseLeave:()=>{F||P(!1)},onDragEnd:()=>P(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||I(!0)},onPointerUp:()=>I(!1)},D.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>r.createElement(ne,{key:n.id,icons:x,index:i,toast:n,defaultRichColors:ee,duration:v?.duration??m,className:v?.className,descriptionClassName:v?.descriptionClassName,invert:a,visibleToasts:_,closeButton:v?.closeButton??l,interacting:F,position:t,style:v?.style,unstyled:v?.unstyled,classNames:v?.classNames,cancelButtonStyle:v?.cancelButtonStyle,actionButtonStyle:v?.actionButtonStyle,closeButtonAriaLabel:v?.closeButtonAriaLabel,removeToast:H,toasts:D.filter(e=>e.position==n.position),heights:k.filter(e=>e.position==n.position),setHeights:M,expandByDefault:c,gap:b,expanded:N,swipeDirections:e.swipeDirections}))):null}))}),N=3e3;function P(e){return{...e,duration:N}}var F={success(e,t){return y.success(e,P(t))},info(e,t){return y.info(e,P(t))},warning(e,t){return y.warning(e,P(t))},error(e,t){return y.error(e,P(t))},dismiss:y.dismiss};export{F as n,M as r,N as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as e,p as t}from"./button-BFNlGZ5p.js";var n=t(e(),1);function r(e){return!!e&&e.valid===!1&&!!e.parseError}function i(e){return e.line==null?e.message:`第 ${e.line} 行第 ${e.column} 列:${e.message}`}function a(e){return!!e&&e.custom&&!e.exists}var o=`mocksUpdated`,s=`mocksFileStatusChanged`;function c(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let{path:t,exists:n,custom:r,valid:i,parseError:a,legacyMocksPath:o}=e;if(typeof t!=`string`||typeof n!=`boolean`)return null;let s=null;if(i===!1&&a&&typeof a==`object`){let e=a;s={line:typeof e.line==`number`?e.line:null,column:typeof e.column==`number`?e.column:null,message:typeof e.message==`string`?e.message:``}}let c=null;if(o&&typeof o==`object`){let e=o;typeof e.oldPath==`string`&&typeof e.newPath==`string`&&(c={configured:typeof e.configured==`string`?e.configured:``,oldPath:e.oldPath,newPath:e.newPath})}return{path:t,exists:n,custom:r===!0,valid:!s,parseError:s,legacyMocksPath:c}}function l(e){let[t,r]=(0,n.useState)(null),i=(0,n.useCallback)(async()=>{try{let e=await fetch(`/api/mocks-file`,{cache:`no-store`});if(!e.ok)return;r(c(await e.json()))}catch{}},[]);return(0,n.useEffect)(()=>{i()},[i,e]),(0,n.useEffect)(()=>{let e=()=>{i()};return window.addEventListener(o,e),window.addEventListener(s,e),()=>{window.removeEventListener(o,e),window.removeEventListener(s,e)}},[i]),{status:t,refresh:i}}function u(e){let t=e.trim();return!(!t||t.startsWith(`/`)||t.startsWith(`\\`)||/^[A-Za-z]:[\\/]/.test(t)||t===`~`||t.startsWith(`~/`)||t.startsWith(`~\\`))}export{a,u as i,i as n,l as o,r,s as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`wand-sparkles`,[[`path`,{d:`m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72`,key:`ul74o6`}],[`path`,{d:`m14 7 3 3`,key:`1r5n42`}],[`path`,{d:`M5 6v4`,key:`ilb8ba`}],[`path`,{d:`M19 14v4`,key:`blhpug`}],[`path`,{d:`M10 2v2`,key:`7u0qdc`}],[`path`,{d:`M7 8H3`,key:`zfb6yr`}],[`path`,{d:`M21 16h-4`,key:`1cnmox`}],[`path`,{d:`M11 3H9`,key:`1obp7u`}]]);export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`wifi`,[[`path`,{d:`M12 20h.01`,key:`zekei9`}],[`path`,{d:`M2 8.82a15 15 0 0 1 20 0`,key:`dnpr2z`}],[`path`,{d:`M5 12.859a10 10 0 0 1 14 0`,key:`1x1e6c`}],[`path`,{d:`M8.5 16.429a5 5 0 0 1 7 0`,key:`1bycff`}]]);export{t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{u as e}from"./button-BFNlGZ5p.js";var t=e(`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`}]]);export{t};
|
package/web/dist/index.html
CHANGED
|
@@ -5,18 +5,24 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>web</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/assets/button-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-C4dIj1nT.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/assets/button-BFNlGZ5p.js">
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-CFZ4xMSF.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-C-E2R2jk.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-fzPL-8F9.js">
|
|
13
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-BQN0rzUS.js">
|
|
10
14
|
<link rel="modulepreload" crossorigin href="/assets/dist-Bsv9ad5F.js">
|
|
11
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
12
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
13
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
14
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/dist-
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-LiAcI8CK.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/es2015-DPJTBYa9.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-CRmX_NvH.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-DLQKRjuW.js">
|
|
19
|
+
<link rel="modulepreload" crossorigin href="/assets/dist-wv9ebJK_.js">
|
|
20
|
+
<link rel="modulepreload" crossorigin href="/assets/check-BkfHQ6re.js">
|
|
21
|
+
<link rel="modulepreload" crossorigin href="/assets/chevron-down-DHwUtL4O.js">
|
|
22
|
+
<link rel="modulepreload" crossorigin href="/assets/toast-9yeTf7d9.js">
|
|
23
|
+
<link rel="modulepreload" crossorigin href="/assets/use-mocks-file-status-BUIUJ4oQ.js">
|
|
18
24
|
<link rel="modulepreload" crossorigin href="/assets/ai-config-store-C8D_PUGV.js">
|
|
19
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
25
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CdYMl1M7.css">
|
|
20
26
|
</head>
|
|
21
27
|
<body>
|
|
22
28
|
<div id="root"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,f as n,n as r,u as i}from"./button-BTToMaBW.js";n(i(),1);var a=e(),o=t(`relative w-full rounded-lg border px-4 py-3 text-sm grid gap-1`,{variants:{variant:{default:`bg-background text-foreground`,destructive:`border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive`}},defaultVariants:{variant:`default`}});function s({className:e,variant:t,...n}){return(0,a.jsx)(`div`,{role:`alert`,className:r(o({variant:t}),e),...n})}function c({className:e,...t}){return(0,a.jsx)(`h5`,{className:r(`mb-1 font-medium leading-none tracking-tight`,e),...t})}function l({className:e,...t}){return(0,a.jsx)(`div`,{className:r(`text-sm [&_p]:leading-relaxed`,e),...t})}export{l as n,c as r,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./button-BTToMaBW.js";var t=e(`arrow-right`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,a)=>(a=n==null?{}:e(i(n)),s(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),l=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ee(e,t){return E(e.type,t,e.props)}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var k=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function j(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(k,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=ee(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(k,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+A(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+A(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(j(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function te(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var P=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ne={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ne,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:te}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,P)}catch(e){P(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.4`})),u=o(((e,t)=>{t.exports=l()})),d=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),f=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),p=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),m=e=>{let t=p(e);return t.charAt(0).toUpperCase()+t.slice(1)},h={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},g=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},_=c(u()),v=(0,_.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>(0,_.createElement)(`svg`,{ref:c,...h,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:d(`lucide`,i),...!a&&!g(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,_.createElement)(e,t)),...Array.isArray(a)?a:[a]])),y=(e,t)=>{let n=(0,_.forwardRef)(({className:n,...r},i)=>(0,_.createElement)(v,{ref:i,iconNode:t,className:d(`lucide-${f(m(e))}`,`lucide-${e}`,n),...r}));return n.displayName=m(e),n};function b(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=b(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function x(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=b(e))&&(r&&(r+=` `),r+=t);return r}var S=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,C=x,w=(e,t)=>n=>{if(t?.variants==null)return C(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=S(t)||S(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return C(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};function T(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function E(...e){return t=>{let n=!1,r=e.map(e=>{let r=T(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():T(e[t],null)}}}}function ee(...e){return _.useCallback(E(...e),e)}var D=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),O=o(((e,t)=>{t.exports=D()})),k=O();function A(e){let t=M(e),n=_.forwardRef((e,n)=>{let{children:r,...i}=e,a=_.Children.toArray(r),o=a.find(te);if(o){let e=o.props.children,r=a.map(t=>t===o?_.Children.count(e)>1?_.Children.only(null):_.isValidElement(e)?e.props.children:null:t);return(0,k.jsx)(t,{...i,ref:n,children:_.isValidElement(e)?_.cloneElement(e,void 0,r):null})}return(0,k.jsx)(t,{...i,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}var j=A(`Slot`);function M(e){let t=_.forwardRef((e,t)=>{let{children:n,...r}=e;if(_.isValidElement(n)){let e=ne(n),i=P(r,n.props);return n.type!==_.Fragment&&(i.ref=t?E(t,e):e),_.cloneElement(n,i)}return _.Children.count(n)>1?_.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var N=Symbol(`radix.slottable`);function te(e){return _.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===N}function P(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function ne(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var F=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},I=(e,t)=>({classGroupId:e,validator:t}),L=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),R=`-`,re=[],z=`arbitrary..`,ie=e=>{let t=ae(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return V(e);let n=e.split(R);return B(n,n[0]===``&&n.length>1?1:0,t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?F(i,t):t:i||re}return n[e]||re}}},B=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=B(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(R):e.slice(t).join(R),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},V=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?z+r:void 0})(),ae=e=>{let{theme:t,classGroups:n}=e;return H(n,t)},H=(e,t)=>{let n=L();for(let r in e){let i=e[r];oe(i,n,r,t)}return n},oe=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];se(i,t,n,r)}},se=(e,t,n,r)=>{if(typeof e==`string`){ce(e,t,n);return}if(typeof e==`function`){le(e,t,n,r);return}ue(e,t,n,r)},ce=(e,t,n)=>{let r=e===``?t:de(t,e);r.classGroupId=n},le=(e,t,n,r)=>{if(fe(e)){oe(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(I(n,e))},ue=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];oe(o,de(t,a),n,r)}},de=(e,t)=>{let n=e,r=t.split(R),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=L(),n.nextPart.set(t,i)),n=i}return n},fe=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,pe=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},me=`!`,he=`:`,ge=[],_e=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),ve=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===he){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(me)?(c=s.slice(0,-1),l=!0):s.startsWith(me)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return _e(t,l,c,u)};if(t){let e=t+he,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):_e(ge,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},ye=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},be=e=>({cache:pe(e.cacheSize),parseClassName:ve(e),sortModifiers:ye(e),...ie(e)}),xe=/\s+/,Se=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a}=t,o=[],s=e.trim().split(xe),c=``;for(let e=s.length-1;e>=0;--e){let t=s[e],{isExternal:l,modifiers:u,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:p}=n(t);if(l){c=t+(c.length>0?` `+c:c);continue}let m=!!p,h=r(m?f.substring(0,p):f);if(!h){if(!m){c=t+(c.length>0?` `+c:c);continue}if(h=r(f),!h){c=t+(c.length>0?` `+c:c);continue}m=!1}let g=u.length===0?``:u.length===1?u[0]:a(u).join(`:`),_=d?g+me:g,v=_+h;if(o.indexOf(v)>-1)continue;o.push(v);let y=i(h,m);for(let e=0;e<y.length;++e){let t=y[e];o.push(_+t)}c=t+(c.length>0?` `+c:c)}return c},Ce=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=we(n))&&(i&&(i+=` `),i+=r);return i},we=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=we(e[r]))&&(n&&(n+=` `),n+=t);return n},Te=(e,...t)=>{let n,r,i,a,o=o=>(n=be(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=Se(e,n);return i(e,a),a};return a=o,(...e)=>a(Ce(...e))},Ee=[],U=e=>{let t=t=>t[e]||Ee;return t.isThemeGetter=!0,t},De=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Oe=/^\((?:(\w[\w-]*):)?(.+)\)$/i,ke=/^\d+\/\d+$/,Ae=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,je=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Me=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Ne=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Pe=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,W=e=>ke.test(e),G=e=>!!e&&!Number.isNaN(Number(e)),K=e=>!!e&&Number.isInteger(Number(e)),Fe=e=>e.endsWith(`%`)&&G(e.slice(0,-1)),q=e=>Ae.test(e),Ie=()=>!0,Le=e=>je.test(e)&&!Me.test(e),Re=()=>!1,ze=e=>Ne.test(e),Be=e=>Pe.test(e),Ve=e=>!J(e)&&!X(e),He=e=>Q(e,et,Re),J=e=>De.test(e),Y=e=>Q(e,tt,Le),Ue=e=>Q(e,nt,G),We=e=>Q(e,Qe,Re),Ge=e=>Q(e,$e,Be),Ke=e=>Q(e,it,ze),X=e=>Oe.test(e),Z=e=>$(e,tt),qe=e=>$(e,rt),Je=e=>$(e,Qe),Ye=e=>$(e,et),Xe=e=>$(e,$e),Ze=e=>$(e,it,!0),Q=(e,t,n)=>{let r=De.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},$=(e,t,n=!1)=>{let r=Oe.exec(e);return r?r[1]?t(r[1]):n:!1},Qe=e=>e===`position`||e===`percentage`,$e=e=>e===`image`||e===`url`,et=e=>e===`length`||e===`size`||e===`bg-size`,tt=e=>e===`length`,nt=e=>e===`number`,rt=e=>e===`family-name`,it=e=>e===`shadow`,at=Te(()=>{let e=U(`color`),t=U(`font`),n=U(`text`),r=U(`font-weight`),i=U(`tracking`),a=U(`leading`),o=U(`breakpoint`),s=U(`container`),c=U(`spacing`),l=U(`radius`),u=U(`shadow`),d=U(`inset-shadow`),f=U(`text-shadow`),p=U(`drop-shadow`),m=U(`blur`),h=U(`perspective`),g=U(`aspect`),_=U(`ease`),v=U(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),X,J],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[X,J,c],T=()=>[W,`full`,`auto`,...w()],E=()=>[K,`none`,`subgrid`,X,J],ee=()=>[`auto`,{span:[`full`,K,X,J]},K,X,J],D=()=>[K,`auto`,X,J],O=()=>[`auto`,`min`,`max`,`fr`,X,J],k=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],A=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],j=()=>[`auto`,...w()],M=()=>[W,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],N=()=>[e,X,J],te=()=>[...b(),Je,We,{position:[X,J]}],P=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],ne=()=>[`auto`,`cover`,`contain`,Ye,He,{size:[X,J]}],F=()=>[Fe,Z,Y],I=()=>[``,`none`,`full`,l,X,J],L=()=>[``,G,Z,Y],R=()=>[`solid`,`dashed`,`dotted`,`double`],re=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],z=()=>[G,Fe,Je,We],ie=()=>[``,`none`,m,X,J],B=()=>[`none`,G,X,J],V=()=>[`none`,G,X,J],ae=()=>[G,X,J],H=()=>[W,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[q],breakpoint:[q],color:[Ie],container:[q],"drop-shadow":[q],ease:[`in`,`out`,`in-out`],font:[Ve],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[q],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[q],shadow:[q],spacing:[`px`,G],text:[q],"text-shadow":[q],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,W,J,X,g]}],container:[`container`],columns:[{columns:[G,J,X,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{start:T()}],end:[{end:T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[K,`auto`,X,J]}],basis:[{basis:[W,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[G,W,`auto`,`initial`,`none`,J]}],grow:[{grow:[``,G,X,J]}],shrink:[{shrink:[``,G,X,J]}],order:[{order:[K,`first`,`last`,`none`,X,J]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:ee()}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:ee()}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":O()}],"auto-rows":[{"auto-rows":O()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...k(),`normal`]}],"justify-items":[{"justify-items":[...A(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...A()]}],"align-content":[{content:[`normal`,...k()]}],"align-items":[{items:[...A(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...A(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":k()}],"place-items":[{"place-items":[...A(),`baseline`]}],"place-self":[{"place-self":[`auto`,...A()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:M()}],w:[{w:[s,`screen`,...M()]}],"min-w":[{"min-w":[s,`screen`,`none`,...M()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...M()]}],h:[{h:[`screen`,`lh`,...M()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...M()]}],"max-h":[{"max-h":[`screen`,`lh`,...M()]}],"font-size":[{text:[`base`,n,Z,Y]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,X,Ue]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,Fe,J]}],"font-family":[{font:[qe,J,t]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,X,J]}],"line-clamp":[{"line-clamp":[G,`none`,X,Ue]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,X,J]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,X,J]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:N()}],"text-color":[{text:N()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...R(),`wavy`]}],"text-decoration-thickness":[{decoration:[G,`from-font`,`auto`,X,Y]}],"text-decoration-color":[{decoration:N()}],"underline-offset":[{"underline-offset":[G,`auto`,X,J]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,X,J]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,X,J]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:te()}],"bg-repeat":[{bg:P()}],"bg-size":[{bg:ne()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},K,X,J],radial:[``,X,J],conic:[K,X,J]},Xe,Ge]}],"bg-color":[{bg:N()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:N()}],"gradient-via":[{via:N()}],"gradient-to":[{to:N()}],rounded:[{rounded:I()}],"rounded-s":[{"rounded-s":I()}],"rounded-e":[{"rounded-e":I()}],"rounded-t":[{"rounded-t":I()}],"rounded-r":[{"rounded-r":I()}],"rounded-b":[{"rounded-b":I()}],"rounded-l":[{"rounded-l":I()}],"rounded-ss":[{"rounded-ss":I()}],"rounded-se":[{"rounded-se":I()}],"rounded-ee":[{"rounded-ee":I()}],"rounded-es":[{"rounded-es":I()}],"rounded-tl":[{"rounded-tl":I()}],"rounded-tr":[{"rounded-tr":I()}],"rounded-br":[{"rounded-br":I()}],"rounded-bl":[{"rounded-bl":I()}],"border-w":[{border:L()}],"border-w-x":[{"border-x":L()}],"border-w-y":[{"border-y":L()}],"border-w-s":[{"border-s":L()}],"border-w-e":[{"border-e":L()}],"border-w-t":[{"border-t":L()}],"border-w-r":[{"border-r":L()}],"border-w-b":[{"border-b":L()}],"border-w-l":[{"border-l":L()}],"divide-x":[{"divide-x":L()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":L()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...R(),`hidden`,`none`]}],"divide-style":[{divide:[...R(),`hidden`,`none`]}],"border-color":[{border:N()}],"border-color-x":[{"border-x":N()}],"border-color-y":[{"border-y":N()}],"border-color-s":[{"border-s":N()}],"border-color-e":[{"border-e":N()}],"border-color-t":[{"border-t":N()}],"border-color-r":[{"border-r":N()}],"border-color-b":[{"border-b":N()}],"border-color-l":[{"border-l":N()}],"divide-color":[{divide:N()}],"outline-style":[{outline:[...R(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[G,X,J]}],"outline-w":[{outline:[``,G,Z,Y]}],"outline-color":[{outline:N()}],shadow:[{shadow:[``,`none`,u,Ze,Ke]}],"shadow-color":[{shadow:N()}],"inset-shadow":[{"inset-shadow":[`none`,d,Ze,Ke]}],"inset-shadow-color":[{"inset-shadow":N()}],"ring-w":[{ring:L()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:N()}],"ring-offset-w":[{"ring-offset":[G,Y]}],"ring-offset-color":[{"ring-offset":N()}],"inset-ring-w":[{"inset-ring":L()}],"inset-ring-color":[{"inset-ring":N()}],"text-shadow":[{"text-shadow":[`none`,f,Ze,Ke]}],"text-shadow-color":[{"text-shadow":N()}],opacity:[{opacity:[G,X,J]}],"mix-blend":[{"mix-blend":[...re(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":re()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[G]}],"mask-image-linear-from-pos":[{"mask-linear-from":z()}],"mask-image-linear-to-pos":[{"mask-linear-to":z()}],"mask-image-linear-from-color":[{"mask-linear-from":N()}],"mask-image-linear-to-color":[{"mask-linear-to":N()}],"mask-image-t-from-pos":[{"mask-t-from":z()}],"mask-image-t-to-pos":[{"mask-t-to":z()}],"mask-image-t-from-color":[{"mask-t-from":N()}],"mask-image-t-to-color":[{"mask-t-to":N()}],"mask-image-r-from-pos":[{"mask-r-from":z()}],"mask-image-r-to-pos":[{"mask-r-to":z()}],"mask-image-r-from-color":[{"mask-r-from":N()}],"mask-image-r-to-color":[{"mask-r-to":N()}],"mask-image-b-from-pos":[{"mask-b-from":z()}],"mask-image-b-to-pos":[{"mask-b-to":z()}],"mask-image-b-from-color":[{"mask-b-from":N()}],"mask-image-b-to-color":[{"mask-b-to":N()}],"mask-image-l-from-pos":[{"mask-l-from":z()}],"mask-image-l-to-pos":[{"mask-l-to":z()}],"mask-image-l-from-color":[{"mask-l-from":N()}],"mask-image-l-to-color":[{"mask-l-to":N()}],"mask-image-x-from-pos":[{"mask-x-from":z()}],"mask-image-x-to-pos":[{"mask-x-to":z()}],"mask-image-x-from-color":[{"mask-x-from":N()}],"mask-image-x-to-color":[{"mask-x-to":N()}],"mask-image-y-from-pos":[{"mask-y-from":z()}],"mask-image-y-to-pos":[{"mask-y-to":z()}],"mask-image-y-from-color":[{"mask-y-from":N()}],"mask-image-y-to-color":[{"mask-y-to":N()}],"mask-image-radial":[{"mask-radial":[X,J]}],"mask-image-radial-from-pos":[{"mask-radial-from":z()}],"mask-image-radial-to-pos":[{"mask-radial-to":z()}],"mask-image-radial-from-color":[{"mask-radial-from":N()}],"mask-image-radial-to-color":[{"mask-radial-to":N()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[G]}],"mask-image-conic-from-pos":[{"mask-conic-from":z()}],"mask-image-conic-to-pos":[{"mask-conic-to":z()}],"mask-image-conic-from-color":[{"mask-conic-from":N()}],"mask-image-conic-to-color":[{"mask-conic-to":N()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:te()}],"mask-repeat":[{mask:P()}],"mask-size":[{mask:ne()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,X,J]}],filter:[{filter:[``,`none`,X,J]}],blur:[{blur:ie()}],brightness:[{brightness:[G,X,J]}],contrast:[{contrast:[G,X,J]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,Ze,Ke]}],"drop-shadow-color":[{"drop-shadow":N()}],grayscale:[{grayscale:[``,G,X,J]}],"hue-rotate":[{"hue-rotate":[G,X,J]}],invert:[{invert:[``,G,X,J]}],saturate:[{saturate:[G,X,J]}],sepia:[{sepia:[``,G,X,J]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,X,J]}],"backdrop-blur":[{"backdrop-blur":ie()}],"backdrop-brightness":[{"backdrop-brightness":[G,X,J]}],"backdrop-contrast":[{"backdrop-contrast":[G,X,J]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,G,X,J]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[G,X,J]}],"backdrop-invert":[{"backdrop-invert":[``,G,X,J]}],"backdrop-opacity":[{"backdrop-opacity":[G,X,J]}],"backdrop-saturate":[{"backdrop-saturate":[G,X,J]}],"backdrop-sepia":[{"backdrop-sepia":[``,G,X,J]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,X,J]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[G,`initial`,X,J]}],ease:[{ease:[`linear`,`initial`,_,X,J]}],delay:[{delay:[G,X,J]}],animate:[{animate:[`none`,v,X,J]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,X,J]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:B()}],"rotate-x":[{"rotate-x":B()}],"rotate-y":[{"rotate-y":B()}],"rotate-z":[{"rotate-z":B()}],scale:[{scale:V()}],"scale-x":[{"scale-x":V()}],"scale-y":[{"scale-y":V()}],"scale-z":[{"scale-z":V()}],"scale-3d":[`scale-3d`],skew:[{skew:ae()}],"skew-x":[{"skew-x":ae()}],"skew-y":[{"skew-y":ae()}],transform:[{transform:[X,J,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:H()}],"translate-x":[{"translate-x":H()}],"translate-y":[{"translate-y":H()}],"translate-z":[{"translate-z":H()}],"translate-none":[`translate-none`],accent:[{accent:N()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:N()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,X,J]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,X,J]}],fill:[{fill:[`none`,...N()]}],"stroke-w":[{stroke:[G,Z,Y,Ue]}],stroke:[{stroke:[`none`,...N()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function ot(...e){return at(x(e))}var st=w(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,{variants:{variant:{default:`bg-foreground text-background hover:bg-primary hover:text-primary-foreground`,selected:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input`,secondary:`bg-secondary text-secondary-foreground hover:bg-accent hover:text-accent-foreground`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-foreground underline-offset-4 hover:text-primary hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,xs:`h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-xs":`size-6 rounded-md [&_svg:not([class*='size-'])]:size-3`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});function ct({className:e,variant:t=`default`,size:n=`default`,asChild:r=!1,...i}){return(0,k.jsx)(r?j:`button`,{"data-slot":`button`,"data-variant":t,"data-size":n,className:ot(st({variant:t,size:n,className:e})),...i})}export{O as a,w as c,o as d,c as f,A as i,y as l,ot as n,E as o,j as r,ee as s,ct as t,u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,f as t,l as n,n as r,s as i,u as a}from"./button-BTToMaBW.js";import{a as o,o as s,r as c,t as l}from"./dist-C6eaYCUo.js";import{t as u}from"./dist-DWmDaXVN.js";import{n as d,t as f}from"./dist-Ce4ujolc.js";import{vt as p}from"./index-CvTR1IVi.js";var m=n(`grip-vertical`,[[`circle`,{cx:`9`,cy:`12`,r:`1`,key:`1vctgf`}],[`circle`,{cx:`9`,cy:`5`,r:`1`,key:`hp0tcf`}],[`circle`,{cx:`9`,cy:`19`,r:`1`,key:`fkjjf6`}],[`circle`,{cx:`15`,cy:`12`,r:`1`,key:`1tmaij`}],[`circle`,{cx:`15`,cy:`5`,r:`1`,key:`19l28e`}],[`circle`,{cx:`15`,cy:`19`,r:`1`,key:`f4zoj3`}]]),h=t(a(),1),g=e(),_=`Checkbox`,[v,y]=o(_),[b,x]=v(_);function S(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:u,value:d=`on`,internal_do_not_use_render:f}=e,[p,m]=l({prop:n,defaultProp:i??!1,onChange:c,caller:_}),[v,y]=h.useState(null),[x,S]=h.useState(null),C=h.useRef(!1),w=v?!!o||!!v.closest(`form`):!0,T={checked:p,disabled:a,setChecked:m,control:v,setControl:y,name:s,form:o,value:d,hasConsumerStoppedPropagationRef:C,required:u,defaultChecked:j(i)?!1:i,isFormControl:w,bubbleInput:x,setBubbleInput:S};return(0,g.jsx)(b,{scope:t,...T,children:A(f)?f(T):r})}var C=`CheckboxTrigger`,w=h.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{let{control:o,value:l,disabled:u,checked:d,required:f,setControl:p,setChecked:m,hasConsumerStoppedPropagationRef:_,isFormControl:v,bubbleInput:y}=x(C,e),b=i(a,p),S=h.useRef(d);return h.useEffect(()=>{let e=o?.form;if(e){let t=()=>m(S.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[o,m]),(0,g.jsx)(s.button,{type:`button`,role:`checkbox`,"aria-checked":j(d)?`mixed`:d,"aria-required":f,"data-state":M(d),"data-disabled":u?``:void 0,disabled:u,value:l,...r,ref:b,onKeyDown:c(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:c(n,e=>{m(e=>j(e)?!0:!e),y&&v&&(_.current=e.isPropagationStopped(),_.current||e.stopPropagation())})})});w.displayName=C;var T=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,g.jsx)(S,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(w,{...d,ref:t,__scopeCheckbox:n}),e&&(0,g.jsx)(k,{__scopeCheckbox:n})]})})});T.displayName=_;var E=`CheckboxIndicator`,D=h.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=x(E,n);return(0,g.jsx)(u,{present:r||j(a.checked)||a.checked===!0,children:(0,g.jsx)(s.span,{"data-state":M(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});D.displayName=E;var O=`CheckboxBubbleInput`,k=h.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:r,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:c,required:l,disabled:u,name:p,value:m,form:_,bubbleInput:v,setBubbleInput:y}=x(O,e),b=i(n,y),S=d(o),C=f(r);h.useEffect(()=>{let e=v;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!a.current;if(S!==o&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=j(o),n.call(e,j(o)?!1:o),e.dispatchEvent(t)}},[v,S,o,a]);let w=h.useRef(j(o)?!1:o);return(0,g.jsx)(s.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:c??w.current,required:l,disabled:u,name:p,value:m,form:_,...t,tabIndex:-1,ref:b,style:{...t.style,...C,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});k.displayName=O;function A(e){return typeof e==`function`}function j(e){return e===`indeterminate`}function M(e){return j(e)?`indeterminate`:e?`checked`:`unchecked`}function N({className:e,...t}){return(0,g.jsx)(T,{"data-slot":`checkbox`,className:r(`peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,g.jsx)(D,{"data-slot":`checkbox-indicator`,className:`grid place-content-center text-current transition-none`,children:(0,g.jsx)(p,{className:`size-3.5`})})})}export{m as n,N as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./button-BTToMaBW.js";var t=e(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./button-BTToMaBW.js";var t=e(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]);export{t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./button-BTToMaBW.js";var t=e(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]);export{t};
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{i as e,o as t,r as n}from"./ai-config-store-C8D_PUGV.js";import{St as r}from"./index-CvTR1IVi.js";import{i}from"./syntax-highlight-Dk0-ewLI.js";function a(e){let t=e.trim();if(t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`))try{return JSON.parse(t),`json`}catch{}return t.startsWith(`<!DOCTYPE`)||t.startsWith(`<html`)||/<[a-z][\s\S]*>/i.test(t)?`html`:/[a-z-]+\s*\{[\s\S]*\}/i.test(t)||/@(media|keyframes|import|font-face)/i.test(t)?`css`:/(function|const|let|var|class|import|export|=>)/i.test(t)?`javascript`:`unknown`}function o(e){let t=0,n=e.replace(/><>/g,`>
|
|
2
|
-
<`).split(`
|
|
3
|
-
`),r=[];for(let e of n){let n=e.trim();n&&(n.startsWith(`</`)&&(t=Math.max(0,t-1)),r.push(` `.repeat(t)+n),n.startsWith(`<`)&&!n.startsWith(`</`)&&!n.startsWith(`<?`)&&!n.endsWith(`/>`)&&(/<(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\b/i.test(n)||t++))}return r.join(`
|
|
4
|
-
`)}function s(e){return e.replace(/\s*{\s*/g,` {
|
|
5
|
-
`).replace(/\s*}\s*/g,`
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
`).replace(/\s*;\s*/g,`;
|
|
9
|
-
`).trim()}function c(e){let t=0,n=[],r=0;for(;r<e.length;){let i=e[r],a=e[r+1];if(i===`/`&&a===`/`){let i=e.indexOf(`
|
|
10
|
-
`,r);if(i===-1)break;n.push(` `.repeat(t)+e.slice(r,i).trim()),r=i+1;continue}if(i===`/`&&a===`*`){let i=e.indexOf(`*/`,r);if(i===-1)break;let a=e.slice(r,i+2);n.push(` `.repeat(t)+a),r=i+2;continue}if(i===`"`||i===`'`||i==="`"){let a=i,o=a;for(r++;r<e.length;)if(e[r]===`\\`&&r+1<e.length)o+=e[r]+e[r+1],r+=2;else if(e[r]===a){o+=a,r++;break}else o+=e[r],r++;n.push(` `.repeat(t)+o);continue}if(i===`{`){n.push(` `.repeat(t)+`{`),t++,r++;continue}if(i===`}`){t=Math.max(0,t-1),n.push(` `.repeat(t)+`}`),r++;continue}let o=``;for(;r<e.length&&e[r]!==`
|
|
11
|
-
`&&!`{}`.includes(e[r]);)o+=e[r],r++;o.trim()&&n.push(` `.repeat(t)+o.trim()),e[r]===`
|
|
12
|
-
`&&r++}return n.join(`
|
|
13
|
-
`)}async function l(e,t){try{let n=r(()=>import(`./standalone-Bj8SSd8Q.js`),[]),i=t===`css`?[r(()=>import(`./postcss-BUm8EKMw.js`),[])]:t===`html`?[r(()=>import(`./html-VDGahtyk.js`),[]),r(()=>import(`./babel-DCr4VA1c.js`),[]),r(()=>import(`./estree-qO_m2Qaw.js`),[]),r(()=>import(`./postcss-BUm8EKMw.js`),[])]:[r(()=>import(`./babel-DCr4VA1c.js`),[]),r(()=>import(`./estree-qO_m2Qaw.js`),[])],[a,...o]=await Promise.all([n,...i]);return(await a.format(e,{parser:t===`json`?`json-stringify`:t,plugins:o.map(e=>e.default),printWidth:80,tabWidth:2,useTabs:!1,semi:!0,singleQuote:!0,trailingComma:`es5`,bracketSpacing:!0,arrowParens:`always`})).trim()}catch(n){if(t===`json`)try{let t=JSON.parse(e);return JSON.stringify(t,null,2)}catch{throw Error(`JSON格式错误,无法解析`)}else if(t===`html`)return o(e);else if(t===`css`)return s(e);else if(t===`babel`)return c(e);let r=n instanceof Error?n.message:`未知错误`;throw Error(`格式化失败: ${r}`)}}async function u(e){let t=a(e);try{let n,r;switch(t){case`json`:n=await l(e,`json`),r=`JSON`;break;case`html`:n=await l(e,`html`),r=`HTML`;break;case`css`:n=await l(e,`css`),r=`CSS`;break;case`javascript`:n=await l(e,`babel`),r=`JavaScript`;break;default:n=e,r=`Unknown`}return{formatted:n,type:r}}catch(e){throw Error(`格式化失败: ${e instanceof Error?e.message:`未知错误`}`)}}function d(e,t){let n=e;switch(t){case`json`:n=f(n),n=p(n);break;case`javascript`:n=m(n),n=h(n);break;case`html`:n=g(n);break;case`css`:n=_(n);break}return n}function f(e){let t=e.replace(/'/g,`"`);return t=t.replace(/([{,]\s*)([a-zA-Z_$][a-zA-Z0-9_$]*)\s*:/g,`$1"$2":`),t}function p(e){return e.replace(/,(\s*[}\]])/g,`$1`)}function m(e){let t={"{":`}`,"[":`]`,"(":`)`},n=[],r=!1,i=``;for(let a=0;a<e.length;a++){let o=e[a],s=a>0?e[a-1]:``;if((o===`"`||o===`'`||o==="`")&&s!==`\\`&&(r?o===i&&(r=!1):(r=!0,i=o)),!r){if(o in t)n.push(o);else if(Object.values(t).includes(o)){let e=Object.keys(t).find(e=>t[e]===o);n.length>0&&n[n.length-1]===e&&n.pop()}}}let a=e;for(;n.length>0;){let e=t[n.pop()];a+=e}return a}function h(e){let t=e,n={'"':0,"'":0,"`":0};for(let t of e)(t===`"`||t===`'`||t==="`")&&n[t]++;return n[`"`]%2!=0&&(t+=`"`),n[`'`]%2!=0&&(t+=`'`),n["`"]%2!=0&&(t+="`"),t}function g(e){let t=[],n=[`br`,`hr`,`img`,`input`,`link`,`meta`,`area`,`base`,`col`,`embed`,`param`,`source`,`track`,`wbr`],r=/<\/?([a-z][\w-]*)\b[^>]*>/gi,i;for(;(i=r.exec(e))!==null;){let e=i[0],r=i[1].toLowerCase(),a=e.endsWith(`/>`)||n.includes(r);e.startsWith(`</`)?t.length>0&&t[t.length-1]===r&&t.pop():a||t.push(r)}let a=e;for(;t.length>0;){let e=t.pop();a+=`</${e}>`}return a}function _(e){let t=0,n=!1,r=``;for(let i=0;i<e.length;i++){let a=e[i],o=i>0?e[i-1]:``;(a===`"`||a===`'`)&&o!==`\\`&&(n?a===r&&(n=!1):(n=!0,r=a)),n||(a===`{`?t++:a===`}`&&t--)}let i=e;for(;t>0;)i+=`
|
|
14
|
-
}`,t--;return i}async function v(r,a=!1){if(!r.trim())return{fixed:r,method:`none`,success:!0};let o=i(r);if(!a&&o.valid)return{fixed:r,method:`none`,success:!0};let s=o.type?.toLowerCase();(!s||s===`text`)&&(s=y(r)),(!s||s===`text`)&&(s=`json`);let c=s,l=n();if(t(l))try{let t=e(l),n=await C(r,c,t?{provider:t.provider,apiKey:t.apiKey,baseUrl:t.baseUrl,model:t.model}:{provider:l.provider,apiKey:l.apiKey,baseUrl:l.baseUrl,model:l.model}),a=i(n);return a.valid?{fixed:n,method:`ai`,success:!0}:{fixed:n,method:`ai`,success:a.valid}}catch(e){console.warn(`AI修复失败:`,e)}let u=d(r,c);return{fixed:u,method:`rules`,success:i(u).valid}}function y(e){let t=e.trim();return t.startsWith(`{`)&&t.endsWith(`}`)||t.startsWith(`[`)&&t.endsWith(`]`)?`json`:t.startsWith(`<`)&&t.includes(`>`)?`html`:t.includes(`{`)&&t.includes(`}`)&&t.includes(`:`)?`css`:`text`}async function b(e,t,n){let r=`You are a code fixing assistant. Fix syntax errors in ${t.toUpperCase()} code. Return only the fixed code without explanations or markdown formatting.`,i=`Please fix the syntax errors in the following ${t.toUpperCase()} code. Return ONLY the fixed code without any explanations:
|
|
15
|
-
|
|
16
|
-
${e}`,a=await fetch(n.baseUrl,{method:`POST`,headers:{"Content-Type":`application/json`,Authorization:`Bearer ${n.apiKey}`},body:JSON.stringify({model:n.model,messages:[{role:`system`,content:r},{role:`user`,content:i}],temperature:.3,max_tokens:2e3})});if(!a.ok){let e=await a.text();throw Error(`OpenAI API错误 (${a.status}): ${e}`)}let o=(await a.json()).choices?.[0]?.message?.content?.trim();if(!o)throw Error(`OpenAI返回了空结果`);return S(o)}async function x(e,t,n){let r=`You are a code fixing assistant. Fix syntax errors in ${t.toUpperCase()} code. Return only the fixed code without explanations or markdown formatting.`,i=`Please fix the syntax errors in the following ${t.toUpperCase()} code. Return ONLY the fixed code without any explanations:
|
|
17
|
-
|
|
18
|
-
${e}`,a=await fetch(n.baseUrl,{method:`POST`,headers:{"Content-Type":`application/json`,"x-api-key":n.apiKey,"anthropic-version":`2023-06-01`},body:JSON.stringify({model:n.model,max_tokens:2e3,system:r,messages:[{role:`user`,content:i}],temperature:.3})});if(!a.ok){let e=await a.text();throw Error(`Anthropic API错误 (${a.status}): ${e}`)}let o=(await a.json()).content?.[0]?.text?.trim();if(!o)throw Error(`Anthropic返回了空结果`);return S(o)}function S(e){let t=e.replace(/^```[a-z]*\n?/i,``).replace(/\n?```$/i,``).trim(),n=t.split(`
|
|
19
|
-
`);return n.length>0&&!n[0].trim().match(/^[{<[a-z@]/i)&&(n.shift(),t=n.join(`
|
|
20
|
-
`).trim()),t}async function C(e,t,n){return n.provider===`anthropic`?x(e,t,n):b(e,t,n)}export{u as n,v as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{a as e,f as t,l as n,t as r,u as i}from"./button-BTToMaBW.js";import"./dist-C6eaYCUo.js";import{t as a}from"./arrow-right-B4Mrlj2-.js";import{t as o}from"./chevron-down-CPngAx4M.js";import{t as s}from"./chevron-right-V1DGIDbL.js";import{t as c}from"./circle-x-C9USji_R.js";import{n as l,t as u}from"./server-Cpj4KNwN.js";import{t as d}from"./copy-BYjq1hdN.js";import{t as f}from"./shield-check-OqUmVLQt.js";import{t as ee}from"./wand-sparkles-CJ7fSnom.js";import"./es2015-DG46NGN7.js";import{B as p,H as m,S as h,U as g,V as _,W as v,bt as y,ct as b,g as x,h as S,m as C,st as w,tt as te,u as T,v as ne,vt as E,x as D,xt as O,y as k}from"./index-CvTR1IVi.js";import{n as A,t as j}from"./body-diff-view-B-4XWmL6.js";import{n as M,t as re}from"./syntax-highlight-Dk0-ewLI.js";import{t as ie}from"./clipboard-VhPXNN5m.js";var ae=n(`corner-down-right`,[[`path`,{d:`m15 10 5 5-5 5`,key:`qqa56n`}],[`path`,{d:`M4 4v7a4 4 0 0 0 4 4h12`,key:`z08zvw`}]]),N=n(`flag`,[[`path`,{d:`M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528`,key:`1jaruq`}]]),P=n(`route`,[[`circle`,{cx:`6`,cy:`19`,r:`3`,key:`1kj8tv`}],[`path`,{d:`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,key:`1d8sl`}],[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}]]),F=t(i(),1);function I(e){return Object.entries(e||{}).map(([e,t])=>`${e}: ${t}`).join(`
|
|
2
|
-
`)}var L=e(),R=2e3;function z({text:e,label:t}){let[n,i]=(0,F.useState)(!1),a=(0,F.useRef)(null);async function o(){try{await ie(e),i(!0),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>i(!1),R),T.success(`已复制${t}`)}catch{T.error(`复制${t}失败,请手动选择复制`)}}return(0,L.jsxs)(r,{variant:`ghost`,size:`xs`,className:`text-[11px] text-muted-foreground hover:text-foreground`,"aria-label":n?`复制${t}成功`:`复制${t}`,onClick:()=>void o(),children:[n?(0,L.jsx)(E,{className:`h-3 w-3 mr-1 text-green-600`}):(0,L.jsx)(d,{className:`h-3 w-3 mr-1`}),n?`已复制`:`复制`]})}function B({body:e}){let[t,n]=(0,F.useState)(`source`),r=(0,F.useMemo)(()=>re(e||``)===`json`,[e]),i=(0,F.useMemo)(()=>{if(!r)return e;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}},[e,r]),a=(0,F.useMemo)(()=>M(t===`formatted`?i:e,r?`json`:void 0),[e,i,t,r]);return e?(0,L.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between`,children:[r?(0,L.jsx)(_,{value:t,onValueChange:e=>n(e),className:`w-fit`,children:(0,L.jsxs)(g,{className:`h-6 px-1`,children:[(0,L.jsx)(v,{value:`source`,className:`h-6 px-2 text-[11px]`,children:`源数据`}),(0,L.jsx)(v,{value:`formatted`,className:`h-6 px-2 text-[11px]`,children:`格式化`})]})}):(0,L.jsx)(`span`,{}),(0,L.jsx)(z,{text:e,label:`Body`})]}),(0,L.jsx)(`div`,{className:`font-mono text-xs bg-muted/30 rounded p-2 overflow-x-auto`,children:(0,L.jsx)(`pre`,{className:`whitespace-pre`,children:a})})]}):(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground py-2`,children:`无内容`})}function V({headers:e}){let t=Object.entries(e||{});return t.length===0?(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground py-2`,children:`无头部信息`}):(0,L.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,L.jsx)(`div`,{className:`flex justify-end`,children:(0,L.jsx)(z,{text:I(e),label:`Headers`})}),(0,L.jsx)(`div`,{className:`font-mono text-xs space-y-0.5`,children:t.map(([e,t])=>(0,L.jsxs)(`div`,{className:`flex gap-2 py-0.5 hover:bg-muted/50 px-1 rounded`,children:[(0,L.jsxs)(`span`,{className:`text-purple-600 shrink-0 font-semibold`,children:[e,`:`]}),(0,L.jsx)(`span`,{className:`text-foreground/80 break-all`,children:t})]},e))})]})}function H(e){return e>=200&&e<300?`bg-green-100 text-green-800`:e>=300&&e<400?`bg-blue-100 text-blue-800`:e>=400&&e<500?`bg-amber-100 text-amber-800`:e>=500?`bg-red-100 text-red-800`:``}function U(e){switch(e){case`ok`:return`bg-green-100 text-green-800 border-green-200`;case`error`:return`bg-red-100 text-red-800 border-red-200`;case`skipped`:return`bg-amber-100 text-amber-800 border-amber-200`;case`short-circuited`:return`bg-blue-100 text-blue-800 border-blue-200`;default:return``}}function W(e){switch(e){case`ok`:return`通过`;case`error`:return`异常`;case`skipped`:return`跳过`;case`short-circuited`:return`已短路返回`;default:return e}}function G(e){switch(e){case`builtin`:return`内置`;case`custom`:return`自定义`;case`system`:return`系统`;default:return e}}function K(e){return e.replace(/^builtin\./,``).replace(/^custom\./,``)}function q(e,t){return`${t}-${e.hook}-${e.name}`}function J(e){return e===`onBeforeResponse`||e===`onAfterResponse`?`response`:`request`}function oe(e,t){return Array.from(new Set([...Object.keys(e),...Object.keys(t)])).sort().map(n=>({key:n,before:e[n]??``,after:t[n]??``})).filter(e=>e.before!==e.after)}function Y({lines:e,className:t}){return e.length===0?(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`无变更`}):(0,L.jsx)(`div`,{className:`rounded-lg border bg-muted/20 p-2 text-xs font-mono space-y-1 ${t||``}`,children:e.map((e,t)=>(0,L.jsxs)(`div`,{className:`whitespace-pre-wrap break-all px-2 py-1 rounded ${e.type===`added`?`bg-green-500/10 text-green-700 dark:text-green-300`:`bg-red-500/10 text-red-700 dark:text-red-300`}`,children:[(0,L.jsx)(`span`,{className:`mr-1`,children:e.type===`added`?`+ `:`- `}),e.text]},`${e.type}-${t}-${e.text}`))})}function X(e,t,n){let r=[];return t!==void 0&&t!==``&&r.push({type:`removed`,text:`${e} ${t}`}),n!==void 0&&n!==``&&r.push({type:`added`,text:`${e} ${n}`}),r}function se(e,t){let n=[];return e!==void 0&&e!==``&&n.push({type:`removed`,text:e}),t!==void 0&&t!==``&&n.push({type:`added`,text:t}),n}function ce(e){let t=e.replace(/\r\n/g,`
|
|
3
|
-
`).split(`
|
|
4
|
-
`);return t[t.length-1]===``&&t.pop(),t.length>0?t:[``]}function Z(e){if(!e)return!1;if(/^\(binary(?:,\s*\d+\s+bytes)?\)$/i.test(e.trim()))return!0;let t=0;for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);r===9||r===10||r===13||(r<32||r===65533)&&(t+=1)}return t>0&&t/Math.max(e.length,1)>.15}function Q({before:e,after:t}){let[n,i]=(0,F.useState)(!1),a=(0,F.useMemo)(()=>oe(e,t),[e,t]),c=(0,F.useMemo)(()=>a.flatMap(e=>X(e.key,e.before,e.after)),[a]);return c.length===0?(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`无变更`}):(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(Y,{lines:c}),(0,L.jsxs)(r,{variant:`ghost`,size:`xs`,onClick:()=>i(e=>!e),children:[n?(0,L.jsx)(o,{className:`h-3.5 w-3.5 mr-1`}):(0,L.jsx)(s,{className:`h-3.5 w-3.5 mr-1`}),n?`收起完整头部`:`展开完整头部`]}),n&&(0,L.jsxs)(`div`,{className:`grid gap-2 md:grid-cols-2`,children:[(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2 text-xs font-mono`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-1`,children:`变更前`}),(0,L.jsx)(V,{headers:e})]}),(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2 text-xs font-mono`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-1`,children:`变更后`}),(0,L.jsx)(V,{headers:t})]})]})]})}function le({before:e,after:t}){let[n,i]=(0,F.useState)(!1),a=(0,F.useMemo)(()=>A(e||``,t||``).filter(e=>e.added||e.removed),[e,t]),c=(0,F.useMemo)(()=>Z(e||``)||Z(t||``),[e,t]),l=(0,F.useMemo)(()=>c?se(e||``,t||``):a.flatMap(e=>ce(e.value).map(t=>({type:e.added?`added`:`removed`,text:t}))),[e,t,a,c]);return l.length===0?(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`无变更`}):(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,L.jsx)(z,{text:e,label:`变更前 Body`}),(0,L.jsx)(z,{text:t,label:`变更后 Body`})]}),(0,L.jsx)(Y,{lines:l,className:`max-h-40 overflow-auto`}),!c&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(r,{variant:`ghost`,size:`xs`,onClick:()=>i(e=>!e),children:[n?(0,L.jsx)(o,{className:`h-3.5 w-3.5 mr-1`}):(0,L.jsx)(s,{className:`h-3.5 w-3.5 mr-1`}),n?`收起完整 Diff`:`展开完整 Diff`]}),n&&(0,L.jsx)(j,{original:e,modified:t,mode:`inline`,maxHeight:`220px`})]})]})}function ue({stage:e}){let t=e.changes;return t?(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(t.targetBefore||t.targetAfter)&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-2`,children:`Request URL Diff`}),(0,L.jsx)(Y,{lines:X(`Request URL`,t.targetBefore,t.targetAfter||t.target)})]}),(t.requestHeadersBefore||t.requestHeadersAfter)&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-2`,children:`Request Header Diff`}),(0,L.jsx)(Q,{before:t.requestHeadersBefore||{},after:t.requestHeadersAfter||{}})]}),(t.responseStatusCodeBefore!==void 0||t.responseStatusCodeAfter!==void 0)&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-2`,children:`Response Status Diff`}),(0,L.jsx)(Y,{lines:X(`Response Status`,t.responseStatusCodeBefore,t.responseStatusCodeAfter??t.responseStatusCode)})]}),(t.responseHeadersBefore||t.responseHeadersAfter)&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-2`,children:`Response Header Diff`}),(0,L.jsx)(Q,{before:t.responseHeadersBefore||{},after:t.responseHeadersAfter||{}})]}),(t.responseBodyBefore!==void 0||t.responseBodyAfter!==void 0)&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-2`,children:`Response Body Diff`}),(0,L.jsx)(le,{before:t.responseBodyBefore||``,after:t.responseBodyAfter||t.responseBody||``})]})]}):null}function de({stage:e,index:t,isLast:n,accentClass:i}){let[a,c]=(0,F.useState)(e.status!==`skipped`);return(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsxs)(`div`,{className:`rounded-xl border bg-background/90 p-3 space-y-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,L.jsxs)(`div`,{className:`space-y-1 min-w-0`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,L.jsx)(r,{variant:`ghost`,size:`icon-xs`,onClick:()=>c(e=>!e),title:a?`收起`:`展开`,"aria-label":a?`收起`:`展开`,children:a?(0,L.jsx)(o,{className:`h-3.5 w-3.5`}):(0,L.jsx)(s,{className:`h-3.5 w-3.5`})}),(0,L.jsxs)(`span`,{className:`font-medium text-sm`,children:[t+1,`. `,K(e.name)]}),(0,L.jsx)(p,{variant:`outline`,className:`text-xs font-normal`,children:e.hook}),(0,L.jsx)(p,{variant:`outline`,className:`text-xs font-normal`,children:G(e.type)})]}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.status===`short-circuited`?`这一阶段直接生成了响应,请求不会继续往后转发。`:e.status===`error`?`这一阶段执行失败,影响了后续处理流程。`:`这一阶段执行完成,请求继续进入下一步。`})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,L.jsx)(p,{className:`text-xs border ${U(e.status)}`,children:W(e.status)}),(0,L.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[e.duration,`ms`]})]})]}),a&&(0,L.jsxs)(L.Fragment,{children:[e.target&&(0,L.jsxs)(`div`,{className:`rounded-lg bg-muted/50 p-2`,children:[(0,L.jsx)(`div`,{className:`text-[11px] uppercase tracking-wide text-muted-foreground mb-1`,children:`当前 Target`}),(0,L.jsx)(`div`,{className:`font-mono text-xs break-all`,children:e.target})]}),(0,L.jsx)(ue,{stage:e}),e.error&&(0,L.jsxs)(`div`,{className:`rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-700`,children:[`Error: `,e.error]})]})]}),!n&&(0,L.jsx)(`div`,{className:`flex justify-center py-1`,children:(0,L.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,L.jsx)(`div`,{className:`h-2.5 w-2.5 rounded-full ${i} animate-pulse`}),(0,L.jsx)(y,{className:`h-4 w-4 ${i} animate-bounce`})]})})]})}function $({title:e,description:t,stages:n,icon:r,roleLabel:i,roleIcon:a,accentClass:o}){return(0,L.jsxs)(`div`,{className:`rounded-xl border bg-card p-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`div`,{className:`flex items-center gap-2 mb-2`,children:(0,L.jsxs)(p,{variant:`outline`,className:`text-[11px] font-normal`,children:[(0,L.jsx)(`span`,{className:`mr-1`,children:a}),i]})}),(0,L.jsxs)(`h4`,{className:`text-sm font-semibold flex items-center gap-2`,children:[(0,L.jsx)(`span`,{className:o,children:r}),e]}),(0,L.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:t})]}),(0,L.jsxs)(p,{variant:`outline`,className:`text-xs`,children:[n.length,` 个阶段`]})]}),n.length===0?(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:`无阶段信息`}):(0,L.jsx)(`div`,{className:`space-y-3`,children:n.map(({stage:e,index:t},r)=>(0,L.jsx)(de,{stage:e,index:t,isLast:r===n.length-1,accentClass:o},q(e,t)))})]})}function fe(e){let t=[...e.stages].reverse().find(e=>e.status===`short-circuited`);if(t)return{label:`提前返回响应`,description:`在 ${K(t.name)} 阶段直接生成响应`,icon:(0,L.jsx)(ae,{className:`h-4 w-4 text-blue-500`})};let n=[...e.stages].reverse().find(e=>e.status===`error`);return n?{label:`处理过程中出现异常`,description:`${K(n.name)} 执行失败`,icon:(0,L.jsx)(c,{className:`h-4 w-4 text-red-500`})}:{label:`进入正常代理流程`,description:`请求经过检查后继续转发到目标服务`,icon:(0,L.jsx)(a,{className:`h-4 w-4 text-emerald-500`})}}function pe({inspection:e}){let t=fe(e),n=e.stages.map((e,t)=>({stage:e,index:t})),r=n.filter(({stage:e})=>J(e.hook)===`request`),i=n.filter(({stage:e})=>J(e.hook)===`response`);return(0,L.jsxs)(`div`,{className:`space-y-4 pt-3`,children:[(0,L.jsxs)(`div`,{className:`rounded-xl border bg-gradient-to-br from-muted/20 via-background to-muted/10 p-4 space-y-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-4 text-sm`,children:[(0,L.jsx)(p,{variant:`outline`,className:`font-mono`,children:e.method}),(0,L.jsx)(`span`,{className:`font-mono text-muted-foreground truncate flex-1`,children:e.url}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1 text-muted-foreground`,children:[(0,L.jsx)(l,{className:`h-3.5 w-3.5`}),(0,L.jsxs)(`span`,{className:`text-xs`,children:[e.totalDuration,`ms`]})]})]}),(0,L.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,L.jsxs)(`div`,{className:`rounded-lg border bg-background/80 p-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground mb-1`,children:[(0,L.jsx)(P,{className:`h-3.5 w-3.5`}),`请求入口`]}),(0,L.jsx)(`div`,{className:`text-sm font-medium`,children:`请求进入代理`}),(0,L.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`从浏览器或客户端发起,进入 Meddle 的处理流水线`})]}),(0,L.jsxs)(`div`,{className:`rounded-lg border bg-background/80 p-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground mb-1`,children:[(0,L.jsx)(f,{className:`h-3.5 w-3.5`}),`处理阶段`]}),(0,L.jsxs)(`div`,{className:`text-sm font-medium`,children:[e.stages.length,` 个阶段`]}),(0,L.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:`按实际执行顺序记录插件和系统模块对请求的处理`})]}),(0,L.jsxs)(`div`,{className:`rounded-lg border bg-background/80 p-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground mb-1`,children:[t.icon,`最终结果`]}),(0,L.jsx)(`div`,{className:`text-sm font-medium`,children:t.label}),(0,L.jsx)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:t.description})]})]})]}),e.stages.length===0?(0,L.jsx)(`p`,{className:`text-sm text-muted-foreground py-4 text-center`,children:`无处理阶段信息(插件模式可能未开启)`}):(0,L.jsxs)(`div`,{className:`space-y-4`,children:[(0,L.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,L.jsx)(N,{className:`h-3.5 w-3.5`}),(0,L.jsx)(`span`,{children:`默认仅展示改动内容;跳过阶段默认折叠,可单独展开查看更多。`})]}),(0,L.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,L.jsx)($,{title:`请求阶段`,description:`客户端请求进入代理后,按顺序执行请求侧处理阶段`,stages:r,icon:(0,L.jsx)(P,{className:`h-4 w-4 text-blue-500`}),roleLabel:`客户端`,roleIcon:(0,L.jsx)(w,{className:`h-3 w-3 text-blue-500`}),accentClass:`text-blue-500`}),(0,L.jsx)($,{title:`响应阶段`,description:`服务器响应返回代理后,按顺序执行响应侧处理阶段`,stages:i,icon:(0,L.jsx)(O,{className:`h-4 w-4 text-emerald-500`}),roleLabel:`服务器`,roleIcon:(0,L.jsx)(u,{className:`h-3 w-3 text-emerald-500`}),accentClass:`text-emerald-500`})]}),(0,L.jsxs)(`div`,{className:`flex items-center justify-center gap-2 text-xs text-muted-foreground`,children:[(0,L.jsx)(`span`,{children:`请求进入`}),(0,L.jsx)(a,{className:`h-4 w-4 animate-pulse text-blue-500`}),(0,L.jsx)(`span`,{children:`请求阶段`}),(0,L.jsx)(a,{className:`h-4 w-4 animate-pulse text-violet-500`}),(0,L.jsx)(`span`,{children:`响应阶段`}),(0,L.jsx)(a,{className:`h-4 w-4 animate-pulse text-emerald-500`}),(0,L.jsx)(`span`,{children:`最终返回`})]})]})]})}function me({open:e=!1,onClose:t,embedded:n=!1,detail:i,loading:a,error:o,selectedRecord:s,onCreateMock:c,onReplay:l}){let[u,d]=(0,F.useState)(!1),f=()=>{i&&s&&c&&c({source:s.source,responseBody:i.responseBody,statusCode:i.statusCode,responseHeaders:i.responseHeaders})},[y,w]=(0,F.useState)(null),T=(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(ne,{className:`px-4 pt-4 pb-2`,children:(0,L.jsxs)(k,{className:`flex items-center gap-2 text-base`,children:[`请求详情`,i&&(0,L.jsxs)(p,{className:`${H(i.statusCode)} border-0`,children:[i.statusCode,` `,i.statusMessage]}),s?.clientType&&(0,L.jsxs)(p,{variant:`outline`,className:`max-w-48 text-[10px] font-mono`,title:[s.clientName,s.clientIp].filter(Boolean).join(` · `),children:[s.clientName||(s.clientType===`local`?`本机`:s.clientType===`plugin`?`插件测试`:`远程设备`),s.clientIp?` · ${s.clientIp}`:``]}),s?.applicationName&&(0,L.jsxs)(p,{variant:`outline`,className:`max-w-56 gap-1.5 text-[10px]`,title:[s.applicationIdentitySource===`local-process`?`识别方式: 本机进程`:s.applicationIdentitySource===`user-agent`?`识别方式: User-Agent 推断`:s.applicationIdentitySource===`client-reported`?`识别方式: 客户端上报`:void 0,s.applicationIdentityConfidence?`可信度: ${s.applicationIdentityConfidence===`high`?`高`:s.applicationIdentityConfidence===`medium`?`中`:`低`}`:void 0,s.applicationProcess,s.applicationPid?`PID ${s.applicationPid}`:void 0,s.applicationBundleId,s.applicationPath].filter(Boolean).join(` · `),children:[(0,L.jsx)(D,{record:s,compact:!0}),(0,L.jsx)(`span`,{className:`truncate`,children:s.applicationName}),s.applicationIdentitySource===`user-agent`&&(0,L.jsx)(`span`,{className:`shrink-0 text-[9px] text-muted-foreground`,children:`推断`})]}),(0,L.jsxs)(`div`,{className:`flex items-center gap-1.5 ml-auto`,children:[i&&l&&s?.id!=null&&(0,L.jsxs)(r,{variant:`outline`,size:`xs`,onClick:async()=>{if(s?.id!=null&&l){d(!0),w(null);try{await l(s.id)}catch(e){w(e.message||`重放失败`)}finally{d(!1)}}},disabled:u,title:`使用相同的请求参数重新发送请求`,children:[(0,L.jsx)(te,{className:`h-3.5 w-3.5 mr-1 ${u?`animate-spin`:``}`}),u?`重放中...`:`重放`]}),i&&c&&!s?.mock&&(0,L.jsxs)(r,{variant:`outline`,size:`xs`,onClick:f,children:[(0,L.jsx)(ee,{className:`h-3.5 w-3.5 mr-1`}),`创建 Mock`]})]})]})}),(0,L.jsx)(C,{}),y&&(0,L.jsx)(`div`,{className:`mx-4 mt-2 px-3 py-2 rounded-md bg-red-50 border border-red-200 text-red-700 text-xs`,children:y}),o&&!a&&!i&&(0,L.jsx)(`div`,{className:`mx-4 mt-2 px-3 py-2 rounded-md bg-amber-50 border border-amber-200 text-amber-800 text-xs`,children:o}),a?(0,L.jsx)(`div`,{className:`flex-1 flex items-center justify-center`,children:(0,L.jsx)(b,{className:`h-6 w-6 animate-spin text-muted-foreground`})}):i?(0,L.jsxs)(_,{defaultValue:`request`,className:`flex-1 flex flex-col min-h-0`,children:[(0,L.jsxs)(g,{className:`mx-4 mt-2 w-fit`,children:[(0,L.jsx)(v,{value:`request`,children:`请求`}),(0,L.jsx)(v,{value:`response`,children:`响应`}),(0,L.jsxs)(v,{value:`inspect`,children:[(0,L.jsx)(O,{className:`h-3.5 w-3.5 mr-1`}),`Inspect`]})]}),(0,L.jsx)(m,{value:`request`,className:`flex-1 min-h-0 mt-0`,children:(0,L.jsx)(h,{className:`h-full px-4 pb-4`,children:(0,L.jsxs)(`div`,{className:`space-y-3 pt-3`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h4`,{className:`text-xs font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider`,children:`Request Headers`}),(0,L.jsx)(V,{headers:i.requestHeaders})]}),(0,L.jsx)(C,{}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h4`,{className:`text-xs font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider`,children:`Request Body`}),(0,L.jsx)(B,{body:i.requestBody})]})]})})}),(0,L.jsx)(m,{value:`response`,className:`flex-1 min-h-0 mt-0`,children:(0,L.jsx)(h,{className:`h-full px-4 pb-4`,children:(0,L.jsxs)(`div`,{className:`space-y-3 pt-3`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h4`,{className:`text-xs font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider`,children:`Response Headers`}),(0,L.jsx)(V,{headers:i.responseHeaders})]}),(0,L.jsx)(C,{}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h4`,{className:`text-xs font-semibold text-muted-foreground mb-1.5 uppercase tracking-wider`,children:`Response Body`}),(0,L.jsx)(B,{body:i.responseBody})]})]})})}),(0,L.jsx)(m,{value:`inspect`,className:`flex-1 min-h-0 mt-0`,children:(0,L.jsx)(h,{className:`h-full px-4 pb-4`,children:i.inspection?(0,L.jsx)(pe,{inspection:i.inspection}):(0,L.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-full py-12 text-muted-foreground`,children:[(0,L.jsx)(O,{className:`h-12 w-12 mb-4 opacity-50`}),(0,L.jsx)(`p`,{className:`text-sm`,children:`无 Inspect 信息`}),(0,L.jsx)(`p`,{className:`text-xs mt-1`,children:`需要开启插件模式(on/shadow)才能查看请求生命周期`})]})})})]}):(0,L.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground text-sm px-6 text-center`,children:s?(0,L.jsxs)(`div`,{className:`space-y-2`,children:[(0,L.jsx)(`div`,{children:`详情数据暂不可用`}),(0,L.jsxs)(`div`,{className:`text-xs font-mono break-all`,children:[s.method,` `,s.source]})]}):(0,L.jsx)(`div`,{children:`无法加载详情`})})]});return n?(0,L.jsx)(`div`,{className:`flex h-full min-h-0 flex-col`,children:T}):(0,L.jsx)(S,{open:e,onOpenChange:e=>!e&&t?.(),children:(0,L.jsx)(x,{className:`p-0 flex flex-col`,resizable:!0,defaultWidth:640,storageKey:`detail-panel`,children:T})})}export{me as DetailPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e){return`showOpenFilePicker`in e}export{e as t};
|