aitu-app 0.6.13 → 0.6.14
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/README.md +3 -3
- package/assets/{ChatMessagesArea-Btxhq7Z2.js → ChatMessagesArea-BQ33OSbv.js} +4 -4
- package/assets/DialogTaskList-D8vkITTk.js +1 -0
- package/assets/KnowledgeBaseContent-iIzzEUb9.js +143 -0
- package/assets/{ToolboxDrawer-CFAgOmIa.js → ToolboxDrawer-BUixzCAh.js} +14 -14
- package/assets/{ai-analyze-CXbDwr-F.js → ai-analyze-BSLl2uAK.js} +1 -1
- package/assets/ai-image-generation-DvTfL5Pf.js +1 -0
- package/assets/ai-video-generation-mgvQmDxU.js +5 -0
- package/assets/{arc-BVpYfX8u.js → arc-7VZa8sld.js} +1 -1
- package/assets/{arc-Vb6QIvRI.js → arc-CPYfXPW2.js} +1 -1
- package/assets/{batch-image-generation-rvn9zCP-.js → batch-image-generation-C7g9dTtb.js} +5 -5
- package/assets/{blockDiagram-38ab4fdb-CbbmIvT5.js → blockDiagram-38ab4fdb-9wKjan3w.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CbUExfWH.js → blockDiagram-38ab4fdb-BfYiey8T.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-Db1GHdmL.js → c4Diagram-3d4e48cf-Cl1CeBZ9.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-Dw_8bcgE.js → c4Diagram-3d4e48cf-CvDzfWGg.js} +1 -1
- package/assets/channel-Dq0dBTpp.js +1 -0
- package/assets/channel-QRfYJ0c8.js +1 -0
- package/assets/{classDiagram-70f12bd4-CXXAHxeU.js → classDiagram-70f12bd4-7hx7i_r9.js} +1 -1
- package/assets/{classDiagram-70f12bd4-_p3Dnvx6.js → classDiagram-70f12bd4-C4dqbFYb.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-B-9myg44.js → classDiagram-v2-f2320105-BE6EhyIR.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-ChK1LfBX.js → classDiagram-v2-f2320105-BKvCao98.js} +1 -1
- package/assets/{clipper-CJLNPhZM.js → clipper-DMBYubGg.js} +1 -1
- package/assets/clone-8iorvsVH.js +1 -0
- package/assets/clone-CcaoZaCt.js +1 -0
- package/assets/{createText-2e5e7dd3-BCbwgqBS.js → createText-2e5e7dd3-B5bm44t-.js} +1 -1
- package/assets/{createText-2e5e7dd3-BGRSuPih.js → createText-2e5e7dd3-ClED10Yd.js} +1 -1
- package/assets/{edges-e0da2a9e-BoQQRKl3.js → edges-e0da2a9e-CxYbDWHf.js} +1 -1
- package/assets/{edges-e0da2a9e-1EAOsAGW.js → edges-e0da2a9e-D83AKoY_.js} +1 -1
- package/assets/{erDiagram-9861fffd-DrPXJadW.js → erDiagram-9861fffd-By6KGQIp.js} +1 -1
- package/assets/{erDiagram-9861fffd-DIqIVsjO.js → erDiagram-9861fffd-DklWxrea.js} +1 -1
- package/assets/{flowDb-956e92f1-DKdojl1Z.js → flowDb-956e92f1-B5waKznT.js} +1 -1
- package/assets/{flowDb-956e92f1-_yAXk9b2.js → flowDb-956e92f1-zlQFiVfE.js} +1 -1
- package/assets/{flowDiagram-66a62f08-Cn3BWcxJ.js → flowDiagram-66a62f08-Be1TW-l_.js} +1 -1
- package/assets/{flowDiagram-66a62f08-BSNSE1vH.js → flowDiagram-66a62f08-DN-7_2yD.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-Brfi4xIj.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-CPIzTRuX.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-CkhkUOMa.js → flowchart-elk-definition-4a651766-N0AfQRnQ.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-CtRYHypS.js → flowchart-elk-definition-4a651766-r-PtKbtF.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-C-olbHti.js → ganttDiagram-c361ad54-Bht9glx_.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-DWZxEumf.js → ganttDiagram-c361ad54-C2_MLBXD.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-DFI0WJ7k.js → gitGraphDiagram-72cf32ee-2be20W2P.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-Dz3X9B4S.js → gitGraphDiagram-72cf32ee-DbRkmH2_.js} +1 -1
- package/assets/{graph-BbAdRpyG.js → graph-B8wbK8JG.js} +1 -1
- package/assets/{graph-CG3zmXkL.js → graph-Cz6eZWdE.js} +1 -1
- package/assets/{grid-image-CahEQ7p7.js → grid-image-BjBUsyzw.js} +1 -1
- package/assets/{has-Cq7YuzG9.js → has-xmSj69Ai.js} +1 -1
- package/assets/{hasIn-4hPyOh4r.js → hasIn-BEuiXUL_.js} +1 -1
- package/assets/{index-3862675e-D_PJ0qZE.js → index-3862675e-B-TzDFUV.js} +1 -1
- package/assets/{index-3862675e-Cy2LJr-t.js → index-3862675e-DUv0NNEX.js} +1 -1
- package/assets/{index-pt9oZHeu.js → index-BFKE1SDS.js} +1 -1
- package/assets/{index-WyqXHNHN.js → index-BGhQ9HiC.js} +10 -10
- package/assets/{index-C1tgh8XV.js → index-BJPn-Z4H.js} +1 -1
- package/assets/{index-CqEazMaK.js → index-BJt4za3u.js} +1 -1
- package/assets/{index-D9rMZcAy.js → index-BYIrI0Fv.js} +52 -49
- package/assets/index-Bf4QGnyR.css +9 -0
- package/assets/{index-DHrV9sCt.js → index-Bi-3shgC.js} +1 -1
- package/assets/{index-BiCrE7Ci.js → index-Biha89Ph.js} +1 -1
- package/assets/{index-BDnSt0a8.js → index-C7Vp0sfc.js} +1 -1
- package/assets/{index-DtNyBFxZ.js → index-CM5A34wJ.js} +1 -1
- package/assets/{index-XoOCAjmC.js → index-CMqABmj9.js} +1 -1
- package/assets/{index-BOZ3fCzl.js → index-CURBM_KW.js} +1 -1
- package/assets/{index-B4IEsL3l.js → index-CZI4rQ66.js} +1 -1
- package/assets/{index-CYf1zrx4.js → index-Cg0P1L1n.js} +1 -1
- package/assets/{index-B9uNbnfa.js → index-Cg4DzaGJ.js} +1 -1
- package/assets/{index-BZIcMnMw.js → index-Cr7eFaRi.js} +1 -1
- package/assets/{index-7WzIC7_D.js → index-CvvgEQLL.js} +557 -519
- package/assets/index-Cz1tSwF3.css +1 -0
- package/assets/{index-Cx19IgV-.js → index-D35EPyAQ.js} +5 -5
- package/assets/{index-Dv8yvI8G.js → index-D55hpwi0.js} +1 -1
- package/assets/{index-CciPE8zM.js → index-D8hBvwzc.js} +1 -1
- package/assets/{index-BkRTZMZM.js → index-DCPnuU9X.js} +1 -1
- package/assets/{index-Bad6y32x.js → index-DFKy--AY.js} +1 -1
- package/assets/{index-Bco0OAak.js → index-DGrNJ_p2.js} +1 -1
- package/assets/{index-DUgUd4bR.js → index-DZUnWUAx.js} +1 -1
- package/assets/{index-BU3nDlFy.js → index-DergpCoU.js} +1 -1
- package/assets/{index-DBCwQvu4.js → index-Dgpls_LJ.js} +1 -1
- package/assets/{index-jHCkpoWQ.js → index-Dh9OAfqP.js} +1 -1
- package/assets/{index-Dqi7TZna.js → index-DoC8-4hw.js} +2 -2
- package/assets/{index-BQS_8NU3.js → index-DoNZZrMr.js} +1 -1
- package/assets/{index-Bfs6Q-lQ.js → index-Dwd3fQIs.js} +1 -1
- package/assets/{index-BE7n-LiY.js → index-H9okbyq7.js} +1 -1
- package/assets/{index-BOHFUhjZ.js → index-iNzLrLfW.js} +1 -1
- package/assets/index-pQpy2-r1.js +1 -0
- package/assets/{index-ICFaM7Tx.js → index-ukQeGfpm.js} +1 -1
- package/assets/{infoDiagram-f8f76790-D8T-erO4.js → infoDiagram-f8f76790-Ds4mXkkB.js} +1 -1
- package/assets/{infoDiagram-f8f76790-C0TYyx3w.js → infoDiagram-f8f76790-Xs3wpNj_.js} +1 -1
- package/assets/{inspiration-board-CiL8hKbX.js → inspiration-board-aPQmVaUX.js} +1 -1
- package/assets/{isEmpty-BoFRUVaJ.js → isEmpty-BQn8FtDD.js} +1 -1
- package/assets/{journeyDiagram-49397b02-CkmFUv6i.js → journeyDiagram-49397b02-CMj7sdKi.js} +1 -1
- package/assets/{journeyDiagram-49397b02-BHw2LUDu.js → journeyDiagram-49397b02-DAcDgbqb.js} +1 -1
- package/assets/{layers-CaY2-pH6.js → layers-D6Y5pCwe.js} +1 -1
- package/assets/{layout-CSua1dGC.js → layout-DFY48Wfc.js} +1 -1
- package/assets/{layout-D_agYVJ_.js → layout-xjQVmyNt.js} +1 -1
- package/assets/{line-CN9rNlXr.js → line-CS-j1kBY.js} +1 -1
- package/assets/{line-CxGDlzoc.js → line-CnJU8oQA.js} +1 -1
- package/assets/{linear-DKP7SWoM.js → linear-8yUIDV7f.js} +1 -1
- package/assets/{linear-CvStv2Ny.js → linear-BNtDceQW.js} +1 -1
- package/assets/{mermaid.core-DawxQi4y.js → mermaid.core-Bse-qmGl.js} +5 -5
- package/assets/{mindmap-definition-fc14e90a-BWrsnm3I.js → mindmap-definition-fc14e90a-B5pHBBH0.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-Dmo2lz3K.js → mindmap-definition-fc14e90a-BZEj0_V2.js} +1 -1
- package/assets/{photo-wall-splitter-B_WR4Rl2.js → photo-wall-splitter-DNhSfZ1J.js} +1 -1
- package/assets/pick-Bz9u-Vgl.js +1 -0
- package/assets/{pieDiagram-8a3498a8-DhrponMk.js → pieDiagram-8a3498a8-BX6EY38S.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-CmbWJAb7.js → pieDiagram-8a3498a8-C2SKAWPu.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-CgIF-y-_.js → quadrantDiagram-120e2f19-C_pOTOg2.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-DOKwrvFF.js → quadrantDiagram-120e2f19-_4F-o39n.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-BqbqHjdU.js → requirementDiagram-deff3bca-CZBh345Y.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-CIXltTSE.js → requirementDiagram-deff3bca-DUvc5b49.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-DcPermhl.js → sankeyDiagram-04a897e0-DgwQWZaB.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-DGiABLdx.js → sankeyDiagram-04a897e0-HlGDp0fm.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-piXYTUjh.js → sequenceDiagram-704730f1-CZleNxPQ.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-BUXJ6XVH.js → sequenceDiagram-704730f1-HXnccUr4.js} +1 -1
- package/assets/{settings-dialog-A3AH7O45.css → settings-dialog-Bf8ExAlc.css} +1 -1
- package/assets/settings-dialog-FIIbAUlz.js +11 -0
- package/assets/{shard-sync-service-BCo2qKEA.js → shard-sync-service-BmLCs0-9.js} +1 -1
- package/assets/{stateDiagram-587899a1-Dnd2X4K4.js → stateDiagram-587899a1-BgbU_RYJ.js} +1 -1
- package/assets/{stateDiagram-587899a1-Cdfs3rRO.js → stateDiagram-587899a1-wcO67Z9P.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-DtC5XSWV.js → stateDiagram-v2-d93cdb3a-CyibEwON.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-lOfkWHnS.js → stateDiagram-v2-d93cdb3a-D6v0mGya.js} +1 -1
- package/assets/{styles-6aaf32cf-B_EWv7Bz.js → styles-6aaf32cf-CuwtY8aD.js} +1 -1
- package/assets/{styles-6aaf32cf-BTv8Dnxa.js → styles-6aaf32cf-DPVcUAPG.js} +1 -1
- package/assets/{styles-9a916d00-C4vTAlbK.js → styles-9a916d00-5sadXKIs.js} +1 -1
- package/assets/{styles-9a916d00-BNkP2BU4.js → styles-9a916d00-BlcdlroT.js} +1 -1
- package/assets/{styles-c10674c1-BcxLBYaC.js → styles-c10674c1-DMY3sr0M.js} +1 -1
- package/assets/{styles-c10674c1-Dp5J5JrP.js → styles-c10674c1-fyvfh0rz.js} +2 -2
- package/assets/{svgDrawCommon-08f97a94-CalbTy9V.js → svgDrawCommon-08f97a94-D99zFeK3.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-5_vuhhyn.js → svgDrawCommon-08f97a94-DCKNxHs0.js} +1 -1
- package/assets/{timeline-definition-85554ec2-DBiJ4h6g.js → timeline-definition-85554ec2-B-Hua8_V.js} +1 -1
- package/assets/{timeline-definition-85554ec2-ByBsrbAq.js → timeline-definition-85554ec2-BJFySUyi.js} +1 -1
- package/assets/{ttd-dialog-C9noZsTQ.js → ttd-dialog-D_LEovv1.js} +4 -4
- package/assets/{upload-DP5n1PVz.js → upload-DPuHWdr4.js} +1 -1
- package/assets/{video-recovery-service-DY01FcHI.js → video-recovery-service-BUo0pCsG.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-CJ1NxG0K.js → xychartDiagram-e933f94c-Cf5Uc503.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-CEXcS3Lw.js → xychartDiagram-e933f94c-Cu1l8Kcq.js} +1 -1
- package/changelog.json +42 -0
- package/package.json +1 -1
- package/precache-manifest.json +279 -279
- package/sw.js +4 -4
- package/version.json +29 -3
- package/assets/DialogTaskList-0I91BD1p.js +0 -1
- package/assets/KnowledgeBaseContent-CSEr1paK.js +0 -153
- package/assets/ai-image-generation-CvUX_vnh.js +0 -1
- package/assets/ai-video-generation-BgDcotXE.js +0 -5
- package/assets/channel-ChluHQU5.js +0 -1
- package/assets/channel-DQ0ggWsj.js +0 -1
- package/assets/clone-BscGHP5K.js +0 -1
- package/assets/clone-CTdvgy2F.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-BmoA7Lrr.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-Du5Aycbt.js +0 -1
- package/assets/index-C_Ed2LrM.js +0 -1
- package/assets/index-V8UiJyjb.css +0 -1
- package/assets/index-qP_w2VHW.css +0 -9
- package/assets/pick-C1hcXSqm.js +0 -1
- package/assets/settings-dialog-D1OnKj0y.js +0 -11
package/assets/pick-C1hcXSqm.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{bA as o,bw as v,bx as x,bz as c,bB as g,bv as m,bC as b}from"./index-7WzIC7_D.js";import{a as _}from"./hasIn-4hPyOh4r.js";function I(n,r,f,a){if(!o(n))return n;r=v(r,n);for(var s=-1,e=r.length,u=e-1,i=n;i!=null&&++s<e;){var t=x(r[s]),l=f;if(t==="__proto__"||t==="constructor"||t==="prototype")return n;if(s!=u){var d=i[t];l=void 0,l===void 0&&(l=o(d)?d:c(r[s+1])?[]:{})}g(i,t,l),i=i[t]}return n}function P(n,r,f){for(var a=-1,s=r.length,e={};++a<s;){var u=r[a],i=m(n,u);f(i,u)&&I(e,v(u,n),i)}return e}function z(n,r){return P(n,r,function(f,a){return _(n,a)})}var p=b(function(n,r){return n==null?{}:z(n,r)});export{I as b,p};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{bT as ms,r as u,I as Hs,_ as Ys,aQ as e,bU as Qs,bV as Js,bW as _s,bX as us,bY as hs,bZ as vs,b_ as be,b$ as qs,c0 as Xs,c1 as ps,c2 as et,a$ as st,c3 as k,c4 as H,c5 as tt,c6 as we,c7 as ve,c8 as q,v as pe,x as X,C as ee,F as se,b8 as je,c9 as it,ca as ue,bd as L,cb as qe,cc as Xe,cd as es,aR as at,ce as Ne,cf as Ae,cg as xe,ch as F,ci as ae,aW as ne,cj as nt,ck as lt,cl as dt}from"./index-7WzIC7_D.js";import{cm as $t,cn as Bt}from"./index-7WzIC7_D.js";/**
|
|
2
|
-
* @license lucide-react v0.562.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const ot=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],rt=ms("loader-circle",ot);/**
|
|
7
|
-
* @license lucide-react v0.562.0 - ISC
|
|
8
|
-
*
|
|
9
|
-
* This source code is licensed under the ISC license.
|
|
10
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const ct=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],gt=ms("triangle-alert",ct);function ss(t,a){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(t);a&&(g=g.filter(function(x){return Object.getOwnPropertyDescriptor(t,x).enumerable})),i.push.apply(i,g)}return i}function ts(t){for(var a=1;a<arguments.length;a++){var i=arguments[a]!=null?arguments[a]:{};a%2?ss(Object(i),!0).forEach(function(g){Ys(t,g,i[g])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):ss(Object(i)).forEach(function(g){Object.defineProperty(t,g,Object.getOwnPropertyDescriptor(i,g))})}return t}var mt={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21ZM23 12C23 18.0751 18.0751 23 12 23C5.92487 23 0.999999 18.0751 1 12C1 5.92487 5.92487 0.999999 12 1C18.0751 1 23 5.92487 23 12ZM11 17.5L11 10H13L13 17.5L11 17.5ZM13 8.5H10.9961L10.9961 6.49609H13L13 8.5Z"}}]},xs=u.forwardRef(function(t,a){return u.createElement(Hs,ts(ts({},t),{},{id:"info-circle",ref:a,icon:mt}))});xs.displayName="InfoCircleIcon";const is={all:"全部",image:"图片",video:"视频",text:"文本"},_t={image:"图片",video:"视频",text:"文本"},ut={image:"图",video:"视",text:"文"},as=["text","image","video"];function ht(t,a){const i=a.trim().toLowerCase();return i?[t.id,t.label,t.shortLabel,t.shortCode,t.description,t.sourceProfileName,be(t.vendor)].filter(Boolean).some(g=>g==null?void 0:g.toLowerCase().includes(i)):!0}function vt(t){return[...t].sort((a,i)=>{const g=(a.shortLabel||a.label||a.id).toLowerCase(),x=(i.shortLabel||i.label||i.id).toLowerCase();return g.localeCompare(x,"zh-Hans-CN")})}function ns(t,a){const i=new Map;for(const x of t){const O=i.get(x.vendor)||{vendor:x.vendor,models:[],counts:{image:0,video:0,text:0},selectedCount:0};O.models.push(x),O.counts[x.type]+=1,a.has(x.id)&&(O.selectedCount+=1),i.set(x.vendor,O)}const g=new Map(ps.map((x,O)=>[x,O]));return Array.from(i.values()).sort((x,O)=>{const R=g.get(x.vendor)??Number.MAX_SAFE_INTEGER,W=g.get(O.vendor)??Number.MAX_SAFE_INTEGER;return R!==W?R-W:O.models.length-x.models.length})}function pt(t){return["image","video","text"].filter(a=>t.counts[a]>0).map(a=>({type:a,models:vt(t.models.filter(i=>i.type===a))})).sort((a,i)=>i.models.length!==a.models.length?i.models.length-a.models.length:as.indexOf(a.type)-as.indexOf(i.type))}const xt=({open:t,container:a,models:i,selectedModelIds:g,onClose:x,onConfirm:O})=>{const[R,W]=u.useState(""),[V,Z]=u.useState("all"),[z,B]=u.useState(g),[S,K]=u.useState({});u.useEffect(()=>{var I,U;if(!t)return;W(""),Z("all"),B(g);const o=new Set(g),b=ns(i,o),j=((I=b.find($=>$.selectedCount>0))==null?void 0:I.vendor)||((U=b[0])==null?void 0:U.vendor)||null,P={};b.forEach($=>{P[$.vendor]=$.vendor===j}),K(P)},[i,t,g]);const E=u.useMemo(()=>({all:i.length,image:i.filter(o=>o.type==="image").length,video:i.filter(o=>o.type==="video").length,text:i.filter(o=>o.type==="text").length}),[i]),D=u.useMemo(()=>{const o=R.trim(),b=V==="all"?i:i.filter(j=>j.type===V);return o?b.filter(j=>ht(j,o)):b},[V,i,R]),A=u.useMemo(()=>new Set(z),[z]),T=u.useMemo(()=>ns(D,A),[A,D]),he=z.length,te=u.useMemo(()=>({image:i.filter(o=>o.type==="image"&&A.has(o.id)).length,video:i.filter(o=>o.type==="video"&&A.has(o.id)).length,text:i.filter(o=>o.type==="text"&&A.has(o.id)).length}),[i,A]),Y=D.length>0&&D.every(o=>A.has(o.id));u.useEffect(()=>{T.length===0||T.some(j=>S[j.vendor])||!Object.values(S).some(Boolean)||K(T.reduce((j,P,I)=>(j[P.vendor]=I===0,j),{}))},[S,T]);const le=o=>{B(b=>b.includes(o)?b.filter(j=>j!==o):[...b,o])},Q=()=>{const o=D.map(j=>j.id),b=o.every(j=>A.has(j));B(j=>b?j.filter(P=>!o.includes(P)):Array.from(new Set([...j,...o])))},de=o=>{K(b=>{const j=!b[o],P={};return T.forEach(I=>{P[I.vendor]=I.vendor===o?j:!1}),P})};return e.jsx(Qs,{open:t,onOpenChange:o=>!o&&x(),children:e.jsxs(Js,{className:"model-discovery-dialog",container:a,"data-testid":"model-discovery-dialog",children:[e.jsxs("div",{className:"model-discovery-dialog__header",children:[e.jsxs("div",{className:"model-discovery-dialog__headline",children:[e.jsx("h3",{className:"model-discovery-dialog__title",children:"获取模型"}),e.jsxs("div",{className:"model-discovery-dialog__header-stats",children:[e.jsxs("span",{className:"model-discovery-dialog__header-pill",children:["已发现 ",i.length]}),e.jsxs("span",{className:"model-discovery-dialog__header-pill",children:["品牌 ",T.length]}),e.jsxs("span",{className:"model-discovery-dialog__header-pill model-discovery-dialog__header-pill--accent",children:["已选 ",he]})]})]}),e.jsx("button",{type:"button",className:"model-discovery-dialog__close",onClick:x,"aria-label":"关闭",children:e.jsx(_s,{size:18})})]}),e.jsxs("div",{className:"model-discovery-dialog__toolbar",children:[e.jsxs("label",{className:"model-discovery-dialog__search",children:[e.jsx(us,{size:16}),e.jsx("input",{type:"text",value:R,onChange:o=>W(o.target.value),placeholder:"搜索模型名称、ID 或品牌"})]}),e.jsxs("div",{className:"model-discovery-dialog__toolbar-actions",children:[e.jsx("button",{type:"button",className:"model-discovery-dialog__ghost-button",onClick:Q,disabled:D.length===0,children:Y?"取消当前结果":"添加当前结果"}),e.jsx("button",{type:"button",className:"model-discovery-dialog__ghost-button model-discovery-dialog__ghost-button--muted",onClick:()=>B([]),disabled:z.length===0,children:"清空已选"})]})]}),e.jsx("div",{className:"model-discovery-dialog__type-tabs",children:Object.keys(is).map(o=>{const b=V===o;return e.jsxs("button",{type:"button",className:`model-discovery-dialog__type-tab ${b?"model-discovery-dialog__type-tab--active":""}`,onClick:()=>Z(o),children:[e.jsx("span",{children:is[o]}),e.jsx("span",{className:"model-discovery-dialog__type-tab-count",children:E[o]})]},o)})}),e.jsx("div",{className:"model-discovery-dialog__body",children:T.length===0?e.jsx("div",{className:"model-discovery-dialog__empty",children:R.trim()?"没有匹配的模型":"暂无模型"}):e.jsx("div",{className:"model-discovery-dialog__group-list",children:T.map(o=>{const b=hs(o.vendor),j=pt(o),P=!!S[o.vendor];return e.jsxs("section",{className:`model-discovery-dialog__vendor-group ${P?"model-discovery-dialog__vendor-group--expanded":""}`,style:{"--vendor-accent":b.accent,"--vendor-surface":b.surface,"--vendor-border":b.border},children:[e.jsxs("button",{type:"button",className:"model-discovery-dialog__vendor-header",onClick:()=>de(o.vendor),children:[e.jsxs("div",{className:"model-discovery-dialog__vendor-main",children:[e.jsx("span",{className:"model-discovery-dialog__vendor-logo-shell",children:e.jsx(vs,{vendor:o.vendor,size:22})}),e.jsxs("div",{className:"model-discovery-dialog__vendor-copy",children:[e.jsx("span",{className:"model-discovery-dialog__vendor-name",children:be(o.vendor)}),e.jsx("div",{className:"model-discovery-dialog__vendor-meta",children:j.map(({type:I,models:U})=>e.jsxs("span",{className:"model-discovery-dialog__vendor-meta-pill",children:[ut[I]," ",U.length]},`${o.vendor}-${I}`))})]})]}),e.jsx("span",{className:"model-discovery-dialog__vendor-spacer"}),e.jsxs("div",{className:"model-discovery-dialog__vendor-side",children:[o.selectedCount>0?e.jsxs("span",{className:"model-discovery-dialog__vendor-selected",children:["已选 ",o.selectedCount]}):null,e.jsx("span",{className:"model-discovery-dialog__vendor-count",children:o.models.length}),e.jsx("span",{className:`model-discovery-dialog__vendor-chevron ${P?"model-discovery-dialog__vendor-chevron--expanded":""}`,children:e.jsx(qs,{size:16})})]})]}),P?e.jsx("div",{className:"model-discovery-dialog__vendor-body",children:j.map(({type:I,models:U})=>e.jsxs("div",{className:"model-discovery-dialog__type-section",children:[e.jsxs("div",{className:"model-discovery-dialog__type-section-header",children:[e.jsx("span",{className:"model-discovery-dialog__type-section-title",children:_t[I]}),e.jsx("span",{className:"model-discovery-dialog__type-section-count",children:U.length})]}),e.jsx("div",{className:"model-discovery-dialog__model-stack",children:U.map($=>{const G=A.has($.id);return e.jsxs("label",{className:`model-discovery-dialog__item ${G?"model-discovery-dialog__item--checked":""}`,children:[e.jsx("input",{type:"checkbox",className:"model-discovery-dialog__checkbox",checked:G,onChange:()=>le($.id)}),e.jsx("span",{className:"model-discovery-dialog__checkmark",children:G?e.jsx(Xs,{size:12}):null}),e.jsx("div",{className:"model-discovery-dialog__item-body",children:e.jsx("div",{className:`model-discovery-dialog__item-id ${G?"model-discovery-dialog__item-id--checked":""}`,children:$.id})})]},$.id)})})]},`${o.vendor}-${I}`))}):null]},o.vendor)})})}),e.jsxs("div",{className:"model-discovery-dialog__footer",children:[e.jsxs("span",{className:"model-discovery-dialog__selection-count",children:["已选 ",he," 个 · 图 ",te.image," / 视"," ",te.video," / 文 ",te.text]}),e.jsxs("div",{className:"model-discovery-dialog__actions",children:[e.jsx("button",{type:"button",className:"model-discovery-dialog__button model-discovery-dialog__button--secondary",onClick:x,children:"取消"}),e.jsx("button",{type:"button",className:"model-discovery-dialog__button model-discovery-dialog__button--primary",onClick:()=>O(z),children:"添加模型"})]})]})]})})},jt=[{value:"providers",label:"供应商"},{value:"presets",label:"模型预设"},{value:"canvas",label:"画布显示"}],Nt=["openai-compatible","gemini-compatible","custom"],ft=["bearer","header","query","custom"],bt={image:"图片",video:"视频",text:"文本"},yt={image:"图片模型",video:"视频模型",text:"文本模型"},Mt=["text","image","video"],Oe={"openai-compatible":{label:"OpenAI 兼容"},"gemini-compatible":{label:"Gemini 兼容"},custom:{label:"自定义接入"}},St={bearer:{label:"Bearer Token"},header:{label:"自定义 Header"},query:{label:"Query 参数"},custom:{label:"手动拼装"}},ls=["amber","sky","mint","rose","violet"];function ds(t){return t.reduce((a,i)=>(a[i.type]+=1,a),{image:0,video:0,text:0})}function Ct(t,a){const i=a.trim().toLowerCase();return i?[t.id,t.label,t.shortLabel,t.shortCode,t.description,t.sourceProfileName,be(t.vendor)].filter(Boolean).some(g=>g==null?void 0:g.toLowerCase().includes(i)):!0}function os(t){return t?["image","video","text"].filter(a=>!!F(t[a])).length:0}function Et(t,a){const i=a.find(g=>g.id===t.id);return i?kt(i,t)?"saved":"dirty":"new"}function fe(t){return JSON.stringify(t)}function Pt(t){return typeof t.iconUrl!="string"?null:t.iconUrl.trim()||null}function It(t){var g;const a=t.trim();if(!a)return"供";const i=a.match(/[A-Za-z0-9]+/g);return i!=null&&i[0]?i[0][0].toUpperCase():((g=Array.from(a)[0])==null?void 0:g.toUpperCase())||"供"}function wt(t){const a=Array.from(`${t.id}-${t.providerType}-${t.name}`).reduce((i,g,x)=>i+g.charCodeAt(0)*(x+1),0);return ls[a%ls.length]}function ie(t){return JSON.parse(JSON.stringify(t))}function js(t){return`${t}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function At(t){return{id:js("profile"),name:`供应商 ${t}`,iconUrl:"",providerType:"openai-compatible",baseUrl:"",apiKey:"",authType:De(),enabled:!0,capabilities:{supportsModelsEndpoint:!0,supportsText:!0,supportsImage:!0,supportsVideo:!0,supportsTools:!0}}}function De(t){return"bearer"}function rs(t){return t===k||t===lt}const cs=({profile:t,size:a="regular"})=>{const i=Pt(t),[g,x]=u.useState(i);u.useEffect(()=>{x(i)},[i]);const O=wt(t),R=It(t.name);return e.jsx("span",{className:`settings-dialog__provider-avatar settings-dialog__provider-avatar--${O} ${a==="large"?"settings-dialog__provider-avatar--large":""}`,"aria-hidden":"true",children:g?e.jsx("img",{src:g,alt:`${t.name} 图标`,className:"settings-dialog__provider-avatar-image",loading:"lazy",onError:()=>x(null)}):e.jsx("span",{className:"settings-dialog__provider-avatar-text",children:R})})};function Ot(t,a){return{id:js("preset"),name:"新预设",text:ae(ne(t,a.text||null)),image:ae(ne(t,a.image||null)),video:ae(ne(t,a.video||null))}}function Dt(t,a,i){const g=t[a],x=i.defaultModelRef!==void 0?i.defaultModelRef:ne(i.profileId!==void 0?i.profileId:xe(g),i.defaultModelId!==void 0?i.defaultModelId:F(g));return{...t,[a]:ae(x)}}function Rt(t,a){const i={...t};return["image","video","text"].forEach(g=>{xe(i[g])===a&&(i[g]=ae(null))}),i}function kt(t,a){return JSON.stringify(t)===JSON.stringify(a)}function gs(t,a){return JSON.stringify({profileId:t,modelId:a})}function Tt(t){if(!t)return null;try{const a=JSON.parse(t);return ne(a.profileId||null,a.modelId||null)}catch{return null}}const Vt=({container:t})=>{const{appState:a,setAppState:i}=et(),{isMobile:g,viewportWidth:x,viewportHeight:O}=st(),[R,W]=u.useState("providers"),[V,Z]=u.useState(k),[z,B]=u.useState(H),[S,K]=u.useState([]),[E,D]=u.useState([]),[A,T]=u.useState(H),[he,te]=u.useState([]),[Y,le]=u.useState(""),[Q,de]=u.useState(""),[o,b]=u.useState(""),[j,P]=u.useState(!0),[I,U]=u.useState(""),[$,G]=u.useState(!1),[Ns,ye]=u.useState(""),[Re,ke]=u.useState(!1),[fs,oe]=u.useState("catalog"),[bs,re]=u.useState("catalog"),_=S.find(s=>s.id===V)||S[0]||null,w=E.find(s=>s.id===z)||E[0]||null,C=tt((_==null?void 0:_.id)||k),ys=u.useDeferredValue(I),Te=we(k,"image"),Le=we(k,"video"),Ve=we(k,"text"),Ms=S.filter(s=>s.enabled),f=g||x<=980,Me=!!_&&!!_.apiKey.trim(),Ss=fe({profiles:S,presets:E,activePresetId:A,imageModelName:Y,videoModelName:Q,textModelName:o,showWorkZoneCard:j}),ze=a.openSettings&&Ss!==Ns,Cs=s=>{W(s),f&&(s==="providers"&&oe("catalog"),s==="presets"&&re("catalog"))},Es=s=>{Z(s),f&&oe("detail")},Ps=s=>{B(s),f&&re("detail")},Is=()=>{try{return localStorage.getItem(je.WORKZONE_CARD_VISIBLE)!=="false"}catch{return!0}},Se=()=>{const s=ie(ve.get()),n=ie(q.get()),r=q.getActivePresetId()||H,d=pe.get(),l=Is();te(s),ye(fe({profiles:s,presets:n,activePresetId:r,imageModelName:d.imageModelName||X(),videoModelName:d.videoModelName||ee(),textModelName:d.textModelName||se(),showWorkZoneCard:l}))};u.useEffect(()=>{if(!a.openSettings)return;const s=ie(ve.get()),n=ie(q.get()),r=q.getActivePresetId()||H,d=pe.get();let l=!0;K(s),D(n),te(s),T(r),Z(c=>{var h;return s.some(M=>M.id===c)?c:((h=s[0])==null?void 0:h.id)||k}),B(c=>{var h;return n.some(M=>M.id===c)?c:((h=n[0])==null?void 0:h.id)||H}),le(d.imageModelName||X()),de(d.videoModelName||ee()),b(d.textModelName||se());try{l=localStorage.getItem(je.WORKZONE_CARD_VISIBLE)!=="false"}catch{l=!0}P(l),W("providers"),oe("catalog"),re("catalog"),U(""),G(!1),ye(fe({profiles:s,presets:n,activePresetId:r,imageModelName:d.imageModelName||X(),videoModelName:d.videoModelName||ee(),textModelName:d.textModelName||se(),showWorkZoneCard:l}))},[a.openSettings]),u.useEffect(()=>{if(!V&&S[0]){Z(S[0].id);return}V&&S.length>0&&!S.some(s=>s.id===V)&&Z(S[0].id)},[S,V]),u.useEffect(()=>{if(!z&&E[0]){B(E[0].id);return}z&&E.length>0&&!E.some(s=>s.id===z)&&B(E[0].id)},[E,z]),u.useEffect(()=>{U("")},[V,R]);const ce=(s,n)=>{K(r=>r.map(d=>d.id===s?n(d):d))},ws=(s,n)=>{D(r=>r.map(d=>d.id===s?n(d):d))},Ue=async(s,n)=>{var r,d;try{const l=pe.get(),c=((r=s.find(p=>p.id===n))==null?void 0:r.id)||((d=s[0])==null?void 0:d.id)||H,h=s.find(p=>p.id===c)||s[0]||null,M=F(h==null?void 0:h.image)||l.imageModelName||X(),v=F(h==null?void 0:h.video)||l.videoModelName||ee(),N=F(h==null?void 0:h.text)||l.textModelName||l.chatModel||se();return await q.update(ie(s)),await q.setActivePresetId(c),await pe.update({imageModelName:M,videoModelName:v,textModelName:N,chatModel:N}),D(s),T(c),le(M),de(v),b(N),Se(),!0}catch(l){return console.error("Failed to persist preset configuration:",l),L.error("预设保存失败,请重试"),!1}},As=async(s,n)=>{if(K(r=>r.map(d=>d.id===s?{...d,enabled:n}:d)),!!he.some(r=>r.id===s))try{await ve.update(ie(ve.get()).map(r=>r.id===s?{...r,enabled:n}:r)),Se()}catch(r){console.error("Failed to persist provider enabled state:",r),K(d=>d.map(l=>l.id===s?{...l,enabled:!n}:l)),L.error("供应商状态保存失败,请重试")}},Os=async s=>{P(s);try{localStorage.setItem(je.WORKZONE_CARD_VISIBLE,String(s)),window.dispatchEvent(new CustomEvent("workzone-visibility-changed")),Se()}catch(n){console.error("Failed to persist canvas visibility state:",n),P(!s),L.error("画布显示配置保存失败,请重试")}},$e=()=>{const s=At(S.length+1);K(n=>[...n,s]),Z(s.id),W("providers"),f&&oe("detail")},Ds=s=>{var r;if(rs(s))return;const n=S.filter(d=>d.id!==s);K(n),D(d=>d.map(l=>Rt(l,s))),V===s&&Z(((r=n[0])==null?void 0:r.id)||k),f&&oe("catalog")},Be=()=>{var r;const s=((r=Ms[0])==null?void 0:r.id)||null,n=Ot(s,{image:Y||X(),video:Q||ee(),text:o||se()});D(d=>[...d,n]),B(n.id),W("presets"),f&&re("detail")},Rs=s=>{var r,d;if(E.length<=1)return;const n=E.filter(l=>l.id!==s);D(n),A===s&&T(((r=n[0])==null?void 0:r.id)||H),z===s&&B(((d=n[0])==null?void 0:d.id)||H),f&&re("catalog")},ks=(s,n)=>{if(!w)return;const r=Tt(n),d=E.map(l=>l.id===w.id?Dt(l,s,{defaultModelRef:r}):l);D(d),Ue(d,A)},Ts=async()=>{if(!_){L.warning("请先选择供应商配置");return}if(ze){const r=L.loading("正在保存当前配置...",0),d=await Fe(!1);if(L.close(r),!d)return}const s=_.apiKey.trim(),n=Ae(_.baseUrl.trim()||Ne);if(!s){L.warning("请先填写 API Key");return}try{await ue.discover(_.id,n,s),G(!0)}catch(r){const d=r instanceof Error?r.message:"模型同步失败";ue.setError(_.id,d),L.error({content:d,duration:3600})}},Ls=s=>{var r,d,l;if(!_)return;const n=ue.applySelection(_.id,s);if(_.id===k){const c=n.filter(m=>m.type==="image"),h=n.filter(m=>m.type==="video"),M=n.filter(m=>m.type==="text"),v=C.discoveredModels.filter(m=>m.type==="image").map(m=>m.id),N=C.discoveredModels.filter(m=>m.type==="video").map(m=>m.id),p=C.discoveredModels.filter(m=>m.type==="text").map(m=>m.id);!c.some(m=>m.id===Y)&&v.includes(Y)&&le(((r=c[0])==null?void 0:r.id)||X()),!h.some(m=>m.id===Q)&&N.includes(Q)&&de(((d=h[0])==null?void 0:d.id)||ee()),!M.some(m=>m.id===o)&&p.includes(o)&&b(((l=M[0])==null?void 0:l.id)||se())}L.success(n.length>0?`已为 ${_.name} 添加 ${n.length} 个模型`:`已清空 ${_.name} 的已添加模型`),G(!1)},Ke=()=>{i(s=>({...s,openSettings:!1}))},Fe=async(s=!1)=>{var n,r,d,l,c;if(Re)return!1;ke(!0);try{const h=S.map(y=>{var _e;const me=y.baseUrl.trim()?Ae(y.baseUrl):"";return{...y,name:y.name.trim()||"未命名供应商",iconUrl:((_e=y.iconUrl)==null?void 0:_e.trim())||void 0,baseUrl:me,apiKey:y.apiKey.trim()}}),M=new Set(h.map(y=>y.id)),v=E.map(y=>{const me={...y,name:y.name.trim()||"未命名预设",image:{...y.image},video:{...y.video},text:{...y.text}};return["image","video","text"].forEach(_e=>{const Qe=me[_e],Ie=xe(Qe),Je=F(Qe);if(Ie&&!M.has(Ie)){me[_e]=ae(ne(null,Je));return}me[_e]=ae(ne(Ie,Je))}),me}),N=((n=v.find(y=>y.id===A))==null?void 0:n.id)||((r=v[0])==null?void 0:r.id)||H,p=v.find(y=>y.id===N)||v[0]||null,m=h.find(y=>y.id===k)||h[0],J=Ae((m==null?void 0:m.baseUrl)||Ne),ge=Y.trim()||((d=Te[0])==null?void 0:d.id)||X(),Ee=Q.trim()||((l=Le[0])==null?void 0:l.id)||ee(),Pe=o.trim()||((c=Ve[0])==null?void 0:c.id)||se(),Ws=F(p==null?void 0:p.image)||ge,Zs=F(p==null?void 0:p.video)||Ee,Gs=F(p==null?void 0:p.text)||Pe;h.forEach(y=>{ue.invalidateIfConfigChanged(y.id,y.baseUrl||Ne,y.apiKey||"")}),await pe.update({apiKey:(m==null?void 0:m.apiKey)||"",baseUrl:J,imageModelName:Ws,videoModelName:Zs,textModelName:Gs}),await ve.update(h),await nt.update(ue.getCatalogs().filter(y=>M.has(y.profileId))),await q.update(v),await q.setActivePresetId(N);try{localStorage.setItem(je.WORKZONE_CARD_VISIBLE,String(j)),window.dispatchEvent(new CustomEvent("workzone-visibility-changed"))}catch{}return K(h),te(ie(h)),D(v),T(N),le(ge),de(Ee),b(Pe),ye(fe({profiles:h,presets:v,activePresetId:N,imageModelName:ge,videoModelName:Ee,textModelName:Pe,showWorkZoneCard:j})),s&&Ke(),!0}catch(h){return console.error("Failed to persist settings drafts:",h),L.error("设置保存失败,请稍后重试"),!1}finally{ke(!1)}},Vs=()=>{if(!ze){Ke();return}(async()=>{const s=L.loading("正在保存设置...",0),n=await Fe(!0);L.close(s),n||L.warning("设置尚未保存,请检查后重试")})()},zs=()=>{$||Re||Vs()},We=()=>e.jsxs("div",{className:"settings-dialog__sidebar-shell settings-dialog__sidebar-shell--catalog",children:[e.jsxs("div",{className:"settings-dialog__sidebar-summary",children:[e.jsxs("div",{className:"settings-dialog__sidebar-summary-row",children:[e.jsx("span",{className:"settings-dialog__sidebar-summary-title",children:"供应商目录"}),f?e.jsx("button",{type:"button",className:"settings-dialog__sidebar-summary-action",onClick:$e,children:"新增供应商"}):null]}),f?e.jsx("span",{className:"settings-dialog__sidebar-summary-text",children:"先从列表里选择供应商,再进入对应的配置页面。"}):null]}),e.jsx("div",{className:"settings-dialog__sidebar-list",children:S.map(s=>{const n=s.id===(_==null?void 0:_.id);return e.jsxs("div",{className:`settings-dialog__provider-row ${n?"settings-dialog__provider-row--active":""} ${s.enabled?"":"settings-dialog__provider-row--disabled"}`,children:[e.jsxs("button",{type:"button",className:"settings-dialog__provider-select",onClick:()=>Es(s.id),"aria-pressed":n,children:[e.jsxs("span",{className:"settings-dialog__provider-select-main",children:[e.jsx(cs,{profile:s}),e.jsxs("span",{className:"settings-dialog__provider-copy",children:[e.jsxs("span",{className:"settings-dialog__provider-name-row",children:[e.jsx("span",{className:"settings-dialog__provider-name",children:s.name}),s.id===k?e.jsx("span",{className:"settings-dialog__provider-tag",children:"默认"}):null]}),f?e.jsxs("span",{className:"settings-dialog__provider-meta",children:[e.jsx("span",{children:Oe[s.providerType].label}),e.jsx("span",{children:s.enabled?"启用":"停用"})]}):null]})]}),f?e.jsx(es,{size:16,className:"settings-dialog__provider-arrow","aria-hidden":"true"}):null]}),e.jsxs("div",{className:"settings-dialog__provider-switch",children:[e.jsx("span",{className:"settings-dialog__provider-switch-copy",children:s.enabled?"启用":"停用"}),e.jsx(qe,{size:"small",value:s.enabled,disabled:s.id===k,onChange:r=>void As(s.id,r)})]})]},s.id)})}),f?null:e.jsxs("button",{type:"button",className:"settings-dialog__sidebar-add",onClick:$e,children:[e.jsx("span",{className:"settings-dialog__sidebar-add-icon",children:"+"}),e.jsx("span",{children:"新增供应商"})]})]}),Ze=()=>e.jsxs("div",{className:"settings-dialog__sidebar-shell",children:[e.jsxs("div",{className:"settings-dialog__sidebar-summary",children:[e.jsxs("div",{className:"settings-dialog__sidebar-summary-row",children:[e.jsx("span",{className:"settings-dialog__sidebar-summary-title",children:"默认模型"}),f?e.jsx("button",{type:"button",className:"settings-dialog__sidebar-summary-action",onClick:Be,children:"新增预设"}):null]}),f?e.jsx("span",{className:"settings-dialog__sidebar-summary-text",children:"先选中一个预设,再进入详情页调整默认路由。"}):null]}),e.jsx("div",{className:"settings-dialog__sidebar-list",children:E.map(s=>{const n=s.id===(w==null?void 0:w.id),r=s.id===A,d=os(s);return e.jsxs("button",{type:"button",className:`settings-dialog__sidebar-item ${n?"settings-dialog__sidebar-item--active":""}`,onClick:()=>Ps(s.id),children:[e.jsxs("div",{className:"settings-dialog__sidebar-item-head",children:[e.jsxs("div",{className:"settings-dialog__sidebar-item-top",children:[e.jsx("span",{children:s.name}),r?e.jsx("span",{className:"settings-dialog__sidebar-badge settings-dialog__sidebar-badge--accent",children:"当前"}):null]}),f?e.jsx(es,{size:16,className:"settings-dialog__sidebar-item-arrow","aria-hidden":"true"}):null]}),e.jsxs("div",{className:"settings-dialog__sidebar-item-meta",children:[e.jsxs("span",{children:[d,"/3 已配置"]}),f?e.jsx("span",{children:r?"正在生效":"点击查看详情"}):null]})]},s.id)})}),f?null:e.jsxs("button",{type:"button",className:"settings-dialog__sidebar-add",onClick:Be,children:[e.jsx("span",{className:"settings-dialog__sidebar-add-icon",children:"+"}),e.jsx("span",{children:"新增预设"})]})]}),Ge=(s,n)=>e.jsx("div",{className:"settings-dialog__workspace settings-dialog__workspace--single",children:e.jsx("div",{className:"settings-dialog__content-panel settings-dialog__content-panel--compact",children:e.jsx("div",{className:"settings-dialog__mobile-stage",children:n},s)})}),He=(s=!1)=>{if(!_)return e.jsx("div",{className:"settings-dialog__empty-panel",children:"请选择一个供应商。"});const n=ds(C.models),r=Et(_,he),d=n.image+n.video+n.text;return e.jsxs("div",{className:`settings-dialog__content-panel settings-dialog__content-panel--providers ${s?"settings-dialog__content-panel--detail":""}`,children:[s?e.jsxs("div",{className:"settings-dialog__compact-stage-header",children:[e.jsxs("button",{type:"button",className:"settings-dialog__compact-back",onClick:()=>oe("catalog"),children:[e.jsx(Xe,{size:16}),e.jsx("span",{children:"返回供应商目录"})]}),e.jsxs("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsx("span",{className:"settings-dialog__compact-stage-eyebrow",children:"供应商配置"}),e.jsx("p",{className:"settings-dialog__compact-stage-text",children:"进入详情后再编辑接口信息、密钥和模型同步配置。"})]})]}):null,e.jsx("div",{className:"settings-dialog__section settings-dialog__section--compact",children:e.jsxs("div",{className:"settings-dialog__panel-header",children:[e.jsxs("div",{className:"settings-dialog__profile-hero",children:[e.jsx(cs,{profile:_,size:"large"}),e.jsxs("div",{children:[e.jsx("h3",{className:"settings-dialog__section-title",children:_.name}),e.jsxs("div",{className:"settings-dialog__inline-meta",children:[e.jsx("span",{children:Oe[_.providerType].label}),e.jsx("span",{children:_.enabled?"启用":"停用"}),e.jsxs("span",{children:[d," 个模型"]}),e.jsx("span",{children:r==="saved"?"已保存":"未保存"})]})]})]}),rs(_.id)?null:e.jsx("button",{type:"button",className:"settings-dialog__danger-button",onClick:()=>Ds(_.id),children:"删除"})]})}),e.jsxs("div",{className:"settings-dialog__section",children:[e.jsx("div",{className:"settings-dialog__section-header",children:e.jsx("div",{children:e.jsx("h3",{className:"settings-dialog__section-title",children:"基础配置"})})}),e.jsxs("div",{className:"settings-dialog__grid",children:[e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"名称"}),e.jsx("input",{type:"text",className:"settings-dialog__input",value:_.name,onChange:l=>ce(_.id,c=>({...c,name:l.target.value}))})]}),e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"接口类型"}),e.jsx("select",{className:"settings-dialog__select",value:_.providerType,onChange:l=>ce(_.id,c=>{const h=l.target.value,M=De(c.providerType),v=De();return{...c,providerType:h,authType:c.authType===M?v:c.authType}}),children:Nt.map(l=>e.jsx("option",{value:l,children:Oe[l].label},l))})]}),e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"图标 URL"}),e.jsx("input",{type:"url",className:"settings-dialog__input",value:_.iconUrl||"",onChange:l=>ce(_.id,c=>({...c,iconUrl:l.target.value})),placeholder:"可选,留空时自动生成默认图标"}),e.jsx("span",{className:"settings-dialog__field-hint",children:"支持填写远程图片地址;未填写时将根据供应商名称生成默认图标。"})]}),e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsxs("div",{className:"settings-dialog__label-with-tooltip settings-dialog__label-with-tooltip--left",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"API Key"}),e.jsx(at,{content:e.jsxs("div",{children:["您可以从以下地址获取 API Key:",e.jsx("br",{}),e.jsx("a",{href:"https://api.tu-zi.com/token",target:"_blank",rel:"noopener noreferrer",style:{color:"#F39C12",textDecoration:"none"},children:"api.tu-zi.com/token"})]}),placement:"top",theme:"light",showArrow:!1,children:e.jsx(xs,{className:"settings-dialog__tooltip-icon"})})]}),e.jsx("input",{type:"password",className:"settings-dialog__input",value:_.apiKey,onChange:l=>ce(_.id,c=>({...c,apiKey:l.target.value})),autoComplete:"off"})]}),e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"API 地址"}),e.jsx("input",{type:"text",className:"settings-dialog__input",value:_.baseUrl,onChange:l=>ce(_.id,c=>({...c,baseUrl:l.target.value})),placeholder:Ne})]}),e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"鉴权方式"}),e.jsx("select",{className:"settings-dialog__select",value:_.authType,onChange:l=>ce(_.id,c=>({...c,authType:l.target.value})),children:ft.map(l=>e.jsx("option",{value:l,children:St[l].label},l))})]})]})]}),_.id===k?e.jsx("div",{className:"settings-dialog__section settings-dialog__section--compact",children:e.jsxs("div",{className:"settings-dialog__compat-card",children:[e.jsx("div",{className:"settings-dialog__compat-title",children:"兼容默认模型"}),e.jsxs("div",{className:"settings-dialog__compat-meta",children:[e.jsxs("span",{children:["图片:",Y||X()]}),e.jsxs("span",{children:["视频:",Q||ee()]}),e.jsxs("span",{children:["文本:",o||se()]})]})]})}):null,Us()]},s?`provider-detail-${_.id}`:void 0)},Us=()=>{const s=new Map(ps.map((N,p)=>[N,p])),n=ys.trim(),r=ds(C.models),d=C.models.filter(N=>Ct(N,n)),l=Mt.map(N=>({type:N,models:d.filter(p=>p.type===N).sort((p,m)=>{const J=s.get(p.vendor)??Number.MAX_SAFE_INTEGER,ge=s.get(m.vendor)??Number.MAX_SAFE_INTEGER;return J!==ge?J-ge:p.id.localeCompare(m.id,"zh-Hans-CN")})})).filter(N=>N.models.length>0),c=Me||C.models.length>0,h=C.models.length>0&&d.length===0&&!!n,M=C.status==="error"&&C.models.length===0,v=!Me&&C.models.length===0;return e.jsxs("div",{className:"settings-dialog__section",children:[e.jsx("div",{className:"settings-dialog__section-header",children:e.jsxs("div",{children:[e.jsx("h3",{className:"settings-dialog__section-title",children:"模型"}),e.jsxs("div",{className:"settings-dialog__inline-meta",children:[e.jsxs("span",{children:["已添加 ",C.models.length," 个"]}),e.jsxs("span",{children:["图 ",r.image]}),e.jsxs("span",{children:["视 ",r.video]}),e.jsxs("span",{children:["文 ",r.text]})]})]})}),c?e.jsxs("div",{className:"settings-dialog__model-toolbar",children:[e.jsxs("label",{className:`settings-dialog__model-search ${C.models.length===0?"settings-dialog__model-search--disabled":""}`,children:[e.jsx(us,{size:15}),e.jsx("input",{type:"text",value:I,onChange:N=>U(N.target.value),placeholder:C.models.length>0?"搜索模型 ID、名称或品牌":"获取模型后可搜索",disabled:C.models.length===0}),I?e.jsx("button",{type:"button",className:"settings-dialog__model-search-clear",onClick:()=>U(""),"aria-label":"清空搜索",children:e.jsx(_s,{size:14})}):null]}),e.jsx("button",{type:"button",className:"settings-dialog__button settings-dialog__button--fetch",onClick:Ts,disabled:!Me||C.status==="loading",children:C.status==="loading"?e.jsxs(e.Fragment,{children:[e.jsx(rt,{size:15,className:"settings-dialog__button-spinner"}),"同步中"]}):"获取模型"})]}):null,l.length>0?e.jsx("div",{className:"settings-dialog__model-type-groups",children:l.map(({type:N,models:p})=>e.jsxs("div",{className:"settings-dialog__model-type-group",children:[e.jsxs("div",{className:"settings-dialog__model-type-header",children:[e.jsx("span",{className:"settings-dialog__model-type-title",children:yt[N]}),e.jsx("span",{className:"settings-dialog__model-type-count",children:p.length})]}),e.jsx("div",{className:"settings-dialog__model-type-list",children:p.map(m=>{const J=hs(m.vendor);return e.jsxs("div",{className:"settings-dialog__model-type-item",style:{"--model-brand-accent":J.accent,"--model-brand-surface":J.surface,"--model-brand-border":J.border},children:[e.jsx("span",{className:"settings-dialog__model-type-item-logo",children:e.jsx(vs,{vendor:m.vendor,size:16})}),e.jsxs("div",{className:"settings-dialog__model-type-item-copy",children:[e.jsx("span",{className:"settings-dialog__model-type-item-id",children:m.id}),e.jsx("span",{className:"settings-dialog__model-type-item-vendor",children:be(m.vendor)})]})]},m.id)})})]},N))}):h?e.jsx("div",{className:"settings-dialog__model-empty",children:"没有匹配的模型,试试搜索品牌名或更完整的模型 ID。"}):M?e.jsxs("div",{className:"settings-dialog__model-empty settings-dialog__model-empty--error",children:[e.jsx(gt,{size:16}),e.jsx("span",{children:C.error||"模型获取失败,请稍后重试"})]}):v?e.jsx("div",{className:"settings-dialog__model-empty",children:"填写 API Key 后即可获取模型,获取完成后可在这里检索和浏览。"}):e.jsx("div",{className:"settings-dialog__model-empty",children:"还没有已添加的模型"})]})},$s=(s,n,r)=>{const d=xe(r),l=F(r);return S.filter(c=>c.id===d||c.enabled&&c.capabilities[n]).map(c=>{const M=(c.id===k?s==="image"?Te:s==="video"?Le:Ve:ue.getState(c.id).models.filter(v=>v.type===s)).filter((v,N,p)=>p.findIndex(m=>m.id===v.id)===N);return c.id===d&&l&&!M.some(v=>v.id===l)&&M.unshift({id:l,label:l,shortLabel:l,type:s,vendor:dt.OTHER}),{profile:c,models:M}}).filter(c=>c.models.length>0)},Ce=(s,n,r)=>{var M;const d=$s(s,r,n),l=xe(n),c=F(n),h=((M=S.find(v=>v.id===l))==null?void 0:M.name)||"未配置";return e.jsxs("div",{className:`settings-dialog__route-card settings-dialog__route-card--${s}`,children:[e.jsx("div",{className:"settings-dialog__route-card-top",children:e.jsx("div",{className:"settings-dialog__route-card-title",children:bt[s]})}),e.jsxs("div",{className:"settings-dialog__stack",children:[e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"默认模型"}),e.jsxs("select",{className:"settings-dialog__select",value:l&&c?gs(l,c):"",onChange:v=>ks(s,v.target.value),children:[e.jsx("option",{value:"",children:"未配置"}),d.map(({profile:v,models:N})=>e.jsx("optgroup",{label:`${v.name}${v.enabled?"":"(已停用)"}`,children:N.map(p=>e.jsx("option",{value:gs(v.id,p.id),children:p.shortLabel||p.label},`${v.id}-${p.id}`))},v.id))]})]}),e.jsxs("div",{className:"settings-dialog__route-meta",children:[e.jsx("span",{children:h}),e.jsx("span",{children:c||"未选择模型"}),d.length===0?e.jsx("span",{children:"暂无可选模型"}):null]})]})]})},Ye=(s=!1)=>{if(!w)return e.jsx("div",{className:"settings-dialog__empty-panel",children:"请选择一个默认模型预设。"});const n=os(w),r=w.id===A;return e.jsxs("div",{className:`settings-dialog__content-panel ${s?"settings-dialog__content-panel--detail":""}`,children:[s?e.jsxs("div",{className:"settings-dialog__compact-stage-header",children:[e.jsxs("button",{type:"button",className:"settings-dialog__compact-back",onClick:()=>re("catalog"),children:[e.jsx(Xe,{size:16}),e.jsx("span",{children:"返回模型预设"})]}),e.jsxs("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsx("span",{className:"settings-dialog__compact-stage-eyebrow",children:"模型预设"}),e.jsx("p",{className:"settings-dialog__compact-stage-text",children:"在这里设置图片、视频和文本模型的默认路由。"})]})]}):null,e.jsxs("div",{className:"settings-dialog__section",children:[e.jsxs("div",{className:"settings-dialog__panel-header",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"settings-dialog__section-title",children:w.name}),e.jsxs("div",{className:"settings-dialog__inline-meta",children:[e.jsx("span",{children:r?"当前预设":"未激活"}),e.jsxs("span",{children:[n,"/3 已配置"]})]})]}),e.jsxs("div",{className:"settings-dialog__inline-row",children:[e.jsx("button",{type:"button",className:"settings-dialog__ghost-button",onClick:()=>{Ue(E,w.id)},children:"设为当前预设"}),e.jsx("button",{type:"button",className:"settings-dialog__danger-button",onClick:()=>Rs(w.id),disabled:E.length<=1,children:"删除预设"})]})]}),e.jsx("div",{className:"settings-dialog__grid",children:e.jsxs("div",{className:"settings-dialog__field settings-dialog__field--column settings-dialog__field--full",children:[e.jsx("label",{className:"settings-dialog__label settings-dialog__label--stacked",children:"预设名称"}),e.jsx("input",{type:"text",className:"settings-dialog__input",value:w.name,onChange:d=>ws(w.id,l=>({...l,name:d.target.value}))})]})})]}),e.jsxs("div",{className:"settings-dialog__routes",children:[Ce("image",w.image,"supportsImage"),Ce("video",w.video,"supportsVideo"),Ce("text",w.text,"supportsText")]})]},s?`preset-detail-${w.id}`:void 0)},Bs=()=>e.jsx("div",{className:"settings-dialog__workspace settings-dialog__workspace--single",children:e.jsxs("div",{className:"settings-dialog__content-panel settings-dialog__content-panel--canvas",children:[f?e.jsx("div",{className:"settings-dialog__compact-stage-header",children:e.jsxs("div",{className:"settings-dialog__compact-stage-copy",children:[e.jsx("span",{className:"settings-dialog__compact-stage-eyebrow",children:"画布显示"}),e.jsx("p",{className:"settings-dialog__compact-stage-text",children:"手机上会以更集中的卡片形式展示,方便快速切换画布相关开关。"})]})}):null,e.jsxs("div",{className:"settings-dialog__section settings-dialog__section--canvas-card",children:[e.jsx("div",{className:"settings-dialog__section-header",children:e.jsx("div",{children:e.jsx("h3",{className:"settings-dialog__section-title",children:"画布显示配置"})})}),e.jsxs("div",{className:"settings-dialog__preference settings-dialog__preference--panel",children:[e.jsxs("div",{className:"settings-dialog__toggle-copy",children:[e.jsx("span",{className:"settings-dialog__toggle-title",children:"任务进度卡片"}),e.jsx("span",{className:"settings-dialog__toggle-desc",children:"在画布中显示任务进度卡片,便于追踪当前生成状态。"})]}),e.jsx(qe,{size:"small",value:j,onChange:s=>void Os(s)})]})]})]})}),Ks=()=>e.jsx("aside",{className:"settings-dialog__nav",children:e.jsx("div",{className:"settings-dialog__nav-shell",children:e.jsx("div",{className:"settings-dialog__nav-list",children:jt.map(s=>e.jsx("button",{type:"button",className:`settings-dialog__nav-item ${R===s.value?"settings-dialog__nav-item--active":""}`,onClick:()=>Cs(s.value),children:e.jsx("span",{className:"settings-dialog__nav-item-title",children:s.label})},s.value))})})}),Fs=()=>R==="canvas"?Bs():R==="presets"?f?bs==="catalog"?Ge("presets-catalog",Ze()):Ye(!0):e.jsxs("div",{className:"settings-dialog__workspace",children:[e.jsx("aside",{className:"settings-dialog__sidebar",children:Ze()}),Ye()]}):f?fs==="catalog"?Ge("providers-catalog",We()):He(!0):e.jsxs("div",{className:"settings-dialog__workspace",children:[e.jsx("aside",{className:"settings-dialog__sidebar",children:We()}),He()]});return e.jsxs(e.Fragment,{children:[e.jsx(it,{visible:a.openSettings,title:"设置",onClose:zs,width:f?"100%":"88%",height:f?"100%":"88%",minWidth:f?Math.max(320,Math.min(x-16,640)):1080,minHeight:f?Math.max(520,Math.min(O-16,820)):680,x:"center",y:"center",maximizable:!0,minimizable:!1,resizable:!f,movable:!f,modal:!1,className:"winbox-ai-generation winbox-tool-window winbox-settings-window",container:t,background:"#ffffff",autoMaximize:f,children:e.jsx("div",{className:"settings-dialog","data-testid":"settings-dialog",children:e.jsxs("div",{className:"settings-dialog__layout",children:[Ks(),e.jsx("div",{className:"settings-dialog__main",children:Fs()})]})})}),e.jsx(xt,{open:$,container:t,models:C.discoveredModels,selectedModelIds:C.selectedModelIds,onClose:()=>G(!1),onConfirm:Ls})]})};export{$t as IMAGE_MODEL_GROUPED_OPTIONS,Vt as SettingsDialog,Bt as VIDEO_MODEL_OPTIONS};
|