turtlecode 0.3.26 → 0.3.27
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/assets/assets/{_basePickBy-DRtwLXA1.js → _basePickBy-Dseor5mu.js} +1 -1
- package/assets/assets/{_baseUniq-BHwt5rYB.js → _baseUniq-Bh4-EzYg.js} +1 -1
- package/assets/assets/{arc-703VkapN.js → arc-DDkUJ-vf.js} +1 -1
- package/assets/assets/{architectureDiagram-2XIMDMQ5-CObMcrTw.js → architectureDiagram-2XIMDMQ5-Cu_GwT11.js} +1 -1
- package/assets/assets/{auth-callback-CsdLcoFy.js → auth-callback-DM_zJivD.js} +1 -1
- package/assets/assets/{blockDiagram-WCTKOSBZ-DnMHcn1Q.js → blockDiagram-WCTKOSBZ-Ds4_MC0T.js} +1 -1
- package/assets/assets/{c4Diagram-IC4MRINW-D3AcE34_.js → c4Diagram-IC4MRINW-C1os6NTb.js} +1 -1
- package/assets/assets/channel-BAzJXAXH.js +1 -0
- package/assets/assets/{chunk-4BX2VUAB-C2qzI0O4.js → chunk-4BX2VUAB-CzOSrGqV.js} +1 -1
- package/assets/assets/{chunk-55IACEB6-D-1nWAoQ.js → chunk-55IACEB6-B1ttgmiW.js} +1 -1
- package/assets/assets/{chunk-FMBD7UC4-CMssrhkO.js → chunk-FMBD7UC4-B499Kca1.js} +1 -1
- package/assets/assets/{chunk-JSJVCQXG-zTAdatO4.js → chunk-JSJVCQXG-DrDqUScK.js} +1 -1
- package/assets/assets/{chunk-KX2RTZJC-D2iD22zX.js → chunk-KX2RTZJC-DoPKMzaO.js} +1 -1
- package/assets/assets/{chunk-NQ4KR5QH-9oNozb5s.js → chunk-NQ4KR5QH-BjJ1jZNF.js} +1 -1
- package/assets/assets/{chunk-QZHKN3VN-DvUEPOTC.js → chunk-QZHKN3VN-gDsChDdu.js} +1 -1
- package/assets/assets/{chunk-WL4C6EOR-Wh9y8TId.js → chunk-WL4C6EOR-C5oC_TBi.js} +1 -1
- package/assets/assets/classDiagram-VBA2DB6C-zr3CTQn1.js +1 -0
- package/assets/assets/classDiagram-v2-RAHNMMFH-zr3CTQn1.js +1 -0
- package/assets/assets/clone-CPL09VTv.js +1 -0
- package/assets/assets/{cose-bilkent-S5V4N54A-D9mCVMc8.js → cose-bilkent-S5V4N54A-ik_5VCSt.js} +1 -1
- package/assets/assets/{cssMode-CmvvTrej.js → cssMode-mb36Grza.js} +1 -1
- package/assets/assets/{dagre-KLK3FWXG-BPgqvJaS.js → dagre-KLK3FWXG-8P1fIO85.js} +1 -1
- package/assets/assets/design-panel-6tFmW_B_.js +1 -0
- package/assets/assets/design-panel-D2wi9Dg-.css +1 -0
- package/assets/assets/{diagram-E7M64L7V-C_ZIX-Xv.js → diagram-E7M64L7V-BLOJFu6-.js} +1 -1
- package/assets/assets/{diagram-IFDJBPK2-BN5GipZ0.js → diagram-IFDJBPK2-OV42IA4f.js} +1 -1
- package/assets/assets/{diagram-P4PSJMXO-CxTi_B96.js → diagram-P4PSJMXO-CaMvBW1Z.js} +1 -1
- package/assets/assets/{dialog-clone-project-B1_PrPJM.js → dialog-clone-project-w2gsbuNI.js} +1 -1
- package/assets/assets/{dialog-connect-provider-Cj4eonFs.js → dialog-connect-provider-DdYA-iVa.js} +2 -2
- package/assets/assets/{dialog-create-project-D7nhbRJT.js → dialog-create-project-Dw9WU914.js} +1 -1
- package/assets/assets/{dialog-edit-project-CqdgozNA.js → dialog-edit-project-5fEpR5ot.js} +1 -1
- package/assets/assets/dialog-fork-SsSEd7Gd.js +1 -0
- package/assets/assets/{dialog-manage-models-BRoXOlAb.js → dialog-manage-models-BGCaMX3K.js} +1 -1
- package/assets/assets/{dialog-select-directory-UI063Sn3.js → dialog-select-directory-BmhGo7hs.js} +3 -3
- package/assets/assets/dialog-select-file-BAlD1Ycx.js +1 -0
- package/assets/assets/{dialog-select-mcp-B2qrDpZJ.js → dialog-select-mcp-zSO7yt3A.js} +1 -1
- package/assets/assets/dialog-select-model-unpaid-CzFXK3Wy.js +2 -0
- package/assets/assets/{dialog-select-provider-CPzhHCE0.js → dialog-select-provider-B1pJlMg-.js} +1 -1
- package/assets/assets/{dialog-select-server-S25UIVNU.js → dialog-select-server-COPMeCxW.js} +1 -1
- package/assets/assets/dialog-settings-CXlKXQA5.js +1 -0
- package/assets/assets/{erDiagram-INFDFZHY-zDzvyTJC.js → erDiagram-INFDFZHY-DmuZ1S1z.js} +1 -1
- package/assets/assets/{flowDiagram-PKNHOUZH-BT5lef3c.js → flowDiagram-PKNHOUZH-DKoU7L24.js} +1 -1
- package/assets/assets/{freemarker2-B_agDxL9.js → freemarker2-DLqz4_VA.js} +1 -1
- package/assets/assets/{ganttDiagram-A5KZAMGK-C3gLXPPH.js → ganttDiagram-A5KZAMGK-DbIBL0_R.js} +3 -3
- package/assets/assets/{ghostty-web-CTQlHMh7.js → ghostty-web-DFI9ftn5.js} +1 -1
- package/assets/assets/{gitGraphDiagram-K3NZZRJ6-Cj8ImX2I.js → gitGraphDiagram-K3NZZRJ6-CQqTl59q.js} +1 -1
- package/assets/assets/{graph-C0gMaluZ.js → graph-CrTunjeA.js} +1 -1
- package/assets/assets/{handlebars-Ucfp6mQq.js → handlebars-BDL8K3Y_.js} +1 -1
- package/assets/assets/{home-CjCyqVsb.js → home-D7OQgy6F.js} +1 -1
- package/assets/assets/{html-CQRzQlxt.js → html-8dPmOEoE.js} +1 -1
- package/assets/assets/{htmlMode-C6bXUIxs.js → htmlMode-Bhhem-U-.js} +1 -1
- package/assets/assets/{index-DNqzOxQM.js → index-Cl9Gy4vs.js} +525 -525
- package/assets/assets/{index-DFs_ngob.css → index-b2zsFxHN.css} +1 -1
- package/assets/assets/{infoDiagram-LFFYTUFH-C9qP-enQ.js → infoDiagram-LFFYTUFH-BiTkmEo0.js} +1 -1
- package/assets/assets/{ishikawaDiagram-PHBUUO56-Cjovburu.js → ishikawaDiagram-PHBUUO56-DFiA_QyF.js} +1 -1
- package/assets/assets/{javascript-j93ymrV_.js → javascript-DqYKby0P.js} +1 -1
- package/assets/assets/{journeyDiagram-4ABVD52K-CrVd-mIS.js → journeyDiagram-4ABVD52K-Dvm95U5p.js} +1 -1
- package/assets/assets/{jsonMode-DhYPC_Dw.js → jsonMode-DNVxNWJA.js} +1 -1
- package/assets/assets/{kanban-definition-K7BYSVSG-D3vax9LP.js → kanban-definition-K7BYSVSG-Bg07LtOy.js} +1 -1
- package/assets/assets/{layout-BkR0MXN2.js → layout-BO4GaxHC.js} +1 -1
- package/assets/assets/{liquid-Cv6_-LR_.js → liquid-Bi6CZ4qd.js} +1 -1
- package/assets/assets/{list-ee-VXnAh.js → list-CbLd2QpP.js} +1 -1
- package/assets/assets/{mdx-2mj8UhYN.js → mdx-DB3BLyJY.js} +1 -1
- package/assets/assets/{mermaid.core-A5qPJp89.js → mermaid.core-DekouHcR.js} +5 -5
- package/assets/assets/{mindmap-definition-YRQLILUH-DbHKqgt9.js → mindmap-definition-YRQLILUH-CPS4QuqT.js} +1 -1
- package/assets/assets/{model-viewer-ShLx2vST.js → model-viewer-OosROonL.js} +1 -1
- package/assets/assets/{pieDiagram-SKSYHLDU-CxXVoqmk.js → pieDiagram-SKSYHLDU-zz3NxaCg.js} +1 -1
- package/assets/assets/{python-DKFJGIak.js → python-dfHvjKmx.js} +1 -1
- package/assets/assets/{quadrantDiagram-337W2JSQ-DiMOi3tY.js → quadrantDiagram-337W2JSQ-Brh_f_kd.js} +1 -1
- package/assets/assets/{razor-CZah6fcj.js → razor-DF4OOi_x.js} +1 -1
- package/assets/assets/{requirementDiagram-Z7DCOOCP-DsTtcYr2.js → requirementDiagram-Z7DCOOCP-kQXvpU2f.js} +1 -1
- package/assets/assets/{sankeyDiagram-WA2Y5GQK-AnsZMvNw.js → sankeyDiagram-WA2Y5GQK-7a0tOx42.js} +1 -1
- package/assets/assets/select-yT_m8Opa.js +1 -0
- package/assets/assets/{sequenceDiagram-2WXFIKYE-BzSTAatC.js → sequenceDiagram-2WXFIKYE-CfqOEUPe.js} +1 -1
- package/assets/assets/{server-row-m8CRVHgX.js → server-row-gThwY27P.js} +1 -1
- package/assets/assets/session-C1WGvWnQ.js +47 -0
- package/assets/assets/session-DUC9Epge.css +1 -0
- package/assets/assets/{stateDiagram-RAJIS63D-CvJMC4hk.js → stateDiagram-RAJIS63D-C2rvyf8y.js} +1 -1
- package/assets/assets/stateDiagram-v2-FVOUBMTO-Bygu4WaE.js +1 -0
- package/assets/assets/status-popover-body-nrXdjhgo.js +2 -0
- package/assets/assets/{switch-DetrEpsF.js → switch-DnfWoh_i.js} +1 -1
- package/assets/assets/{tag-y9dl2dWD.js → tag-CzzNjHnn.js} +1 -1
- package/assets/assets/{timeline-definition-YZTLITO2-Cy0Hq0kG.js → timeline-definition-YZTLITO2-gBwlsZuH.js} +1 -1
- package/assets/assets/{treemap-KZPCXAKY-BbdOpBUG.js → treemap-KZPCXAKY-CkeXn87D.js} +1 -1
- package/assets/assets/{trellis-badge-demo-BlvzkIiY.js → trellis-badge-demo-B_CUPFto.js} +1 -1
- package/assets/assets/{tsMode-MzPZXMAV.js → tsMode-BScrNcq4.js} +1 -1
- package/assets/assets/{typescript-CDbDQl2h.js → typescript-BVCwsEpW.js} +1 -1
- package/assets/assets/{vennDiagram-LZ73GAT5-BJmalk25.js → vennDiagram-LZ73GAT5-DggLRdTn.js} +1 -1
- package/assets/assets/{xlsx-editor-C9bjtFG2.js → xlsx-editor-slR-Oj8_.js} +1 -1
- package/assets/assets/{xml-CKlebqQw.js → xml-B3C8PLq5.js} +1 -1
- package/assets/assets/{xychartDiagram-JWTSCODW-Ck3Uy__Y.js → xychartDiagram-JWTSCODW-DGguDmaO.js} +1 -1
- package/assets/assets/{yaml-fEl6zfTt.js → yaml-7L4M4RJ2.js} +1 -1
- package/assets/index.html +2 -2
- package/package.json +13 -13
- package/assets/assets/channel-BJNb-x5G.js +0 -1
- package/assets/assets/classDiagram-VBA2DB6C-CBQLSjUy.js +0 -1
- package/assets/assets/classDiagram-v2-RAHNMMFH-CBQLSjUy.js +0 -1
- package/assets/assets/clone-XxsBxEOa.js +0 -1
- package/assets/assets/connection-popover-CIBeFtIY.js +0 -1
- package/assets/assets/context-popover-DtmOjL4X.js +0 -1
- package/assets/assets/dialog-fork-BeMaSR4N.js +0 -1
- package/assets/assets/dialog-select-file-DfY7AN91.js +0 -1
- package/assets/assets/dialog-select-model-unpaid-By8CfCF9.js +0 -2
- package/assets/assets/dialog-settings-Doa3-467.js +0 -1
- package/assets/assets/select-CmLNgPBv.js +0 -1
- package/assets/assets/session-BBXKye8M.js +0 -46
- package/assets/assets/session-BqnQGct0.css +0 -1
- package/assets/assets/stateDiagram-v2-FVOUBMTO-CsYqNbJd.js +0 -1
- package/assets/assets/status-popover-body-D1kGt0wd.js +0 -2
- package/assets/assets/tabs-6_4pkHSU.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as ft,h as j,m as r,l as a,n as G,B as ce,q as E,G as Mt,t as b,bP as Vt,v as Qe,p as Dt,bQ as Jt,bR as qt,i as ae,O as fe,$ as Q,bS as Bt,S as m,aI as De,j as _e,F as ge,bT as dt,bU as zn,s as me,bV as Kt,a6 as Wt,bW as Pn,z as ut,P as he,a7 as En,bX as An,bY as gt,b0 as jn,Q as Ke,bZ as Ht,b_ as Yt,b$ as pt,c0 as bt,c1 as mt,c2 as Qt,J as R,c3 as Ot,c4 as Dn,c5 as Bn,c6 as On,c7 as Un,c8 as Xt,c9 as Zt,ca as Rn,b8 as en,o as vt,Y as Nn,cb as Gn}from"./index-Cl9Gy4vs.js";import{R as Mn,I as Vn}from"./session-C1WGvWnQ.js";import"./select-yT_m8Opa.js";import"./list-CbLd2QpP.js";import"./tag-CzzNjHnn.js";import"./transform-BwXaE9hv.js";var Jn=b('<form class="flex flex-col gap-4 p-6 pt-0"><textarea autofocus rows=4 placeholder="A cute turtle riding a snowboard down a snowy slope..."class="w-full bg-surface-raised-base border border-border-weaker-base rounded-md px-3 py-2 text-13-regular resize-none focus:ring-1 focus:ring-primary-base"></textarea><div class="flex items-end justify-between gap-4"><div class="flex min-w-0 flex-col gap-1.5"><label class="text-12-medium text-text-weak">Provider</label><p class="text-11-regular text-text-weaker"></p></div><div class="flex shrink-0 gap-2">'),qn=b('<div class="text-12-regular text-text-destructive">');const We=[{id:"auto",label:"Auto",hint:"Prefer Gemini when configured; falls back to OpenAI if Gemini fails"},{id:"gemini",label:"Gemini",hint:"gemini-2.5-flash-image"},{id:"openai",label:"OpenAI",hint:"gpt-image-2 — needs OPENAI_API_KEY in project .env"}];function Kn(e){const t=ft(),[l,o]=j(""),[n,k]=j("auto"),[z,h]=j(!1),[S,F]=j();async function y(u){u.preventDefault();const T=l().trim();if(!(!T||z())){h(!0),F(void 0);try{await e.onGenerate({prompt:T,provider:n()}),t.close()}catch(I){F(I instanceof Error?I.message:Vt(I,"Image generation failed"))}finally{h(!1)}}}return r(Mt,{title:"Generate image asset",description:"Describe the image you want. It will be saved to .trellis/media.",class:"w-full max-w-[480px] mx-auto",get children(){var u=Jn(),T=u.firstChild,I=T.nextSibling,x=I.firstChild,L=x.firstChild,B=L.nextSibling,A=x.nextSibling;return u.addEventListener("submit",y),T.$$input=w=>{o(w.currentTarget.value),F(void 0)},a(u,(()=>{var w=G(()=>!!S());return()=>w()?(()=>{var J=qn();return a(J,S),J})():null})(),I),a(x,r(Mn,{options:We,get current(){return We.find(w=>w.id===n())??We[0]},value:w=>w.id,label:w=>w.label,onSelect:w=>{w&&k(w.id),F(void 0)},size:"small",fill:!0,class:"w-full max-w-[20rem]"}),B),a(B,()=>We.find(w=>w.id===n())?.hint),a(A,r(ce,{type:"button",variant:"ghost",size:"large",onClick:()=>t.close(),children:"Cancel"}),null),a(A,r(ce,{type:"submit",variant:"primary",size:"large",get disabled(){return z()||!l().trim()},get children(){return z()?"Generating...":"Generate"}}),null),E(()=>T.value=l()),u}})}Qe(["input"]);var Wn=b('<form class="flex flex-col gap-4 p-6 pt-0"><textarea rows=3 placeholder="Optional description for agents and CMS editors..."class="w-full bg-surface-raised-base border border-border-weaker-base rounded-md px-3 py-2 text-13-regular resize-none focus:ring-1 focus:ring-primary-base"></textarea><div class="flex justify-end gap-2">');function Hn(e){const t=ft(),[l,o]=j(""),[n,k]=j(""),[z,h]=j(""),[S,F]=j(!1),[y,u]=j();async function T(I){I.preventDefault();const x=l().trim();if(!(!x||S())){F(!0),u(void 0);try{await e.onCreate({url:x,title:n().trim()||void 0,description:z().trim()||void 0}),t.close()}catch(L){u(L instanceof Error?L.message:String(L))}finally{F(!1)}}}return r(Mt,{title:"Add link asset",description:"Save a reusable bookmark as a Trellis Asset. No file is stored locally.",class:"w-full max-w-[480px] mx-auto",get children(){var I=Wn(),x=I.firstChild,L=x.nextSibling;return I.addEventListener("submit",T),a(I,r(Dt,{autofocus:!0,type:"url",label:"URL",placeholder:"https://example.com/docs",get value(){return l()},onChange:B=>{o(B),u(void 0)},get error(){return y()},get validationState(){return y()?"invalid":void 0}}),x),a(I,r(Dt,{type:"text",label:"Title",placeholder:"Optional display title",get value(){return n()},onChange:k}),x),x.$$input=B=>h(B.currentTarget.value),a(L,r(ce,{type:"button",variant:"ghost",size:"large",onClick:()=>t.close(),children:"Cancel"}),null),a(L,r(ce,{type:"submit",variant:"primary",size:"large",get disabled(){return S()||!l().trim()},get children(){return S()?"Saving...":"Add link"}}),null),E(()=>x.value=z()),I}})}Qe(["input"]);const Yn={size:"1024x1024",output_format:"png"};function Qn(e,t){return`${e.replace(/\/+$/,"")}/file/media/generate?directory=${encodeURIComponent(t)}`}function Xn(e){return{prompt:e.prompt,provider:e.provider,...Yn}}function Zn(e,t,l){return{url:Qn(e,t),body:Xn(l)}}function ht(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}function er(e){const t=Jt(e);if(!t)return null;const l=t.library==="lucide"?t.key:`${t.library}-${t.key}`;return`icon:${ht(l)}`}function tr(e,t){const l=Jt(e);if(!l)return null;const o=er(e);if(!o)return null;const n=l.library==="lucide"?`lucide:${l.key}`:qt(l.library,l.key);return[{e:o,a:"type",v:"Icon"},{e:o,a:"key",v:l.key},{e:o,a:"library",v:l.library},{e:o,a:"catalogRef",v:n},{e:o,a:"createdAt",v:new Date().toISOString()}]}function tn(e){return`font:${ht(e)}`}function Ut(e){const t=tn(e.family),l=[{e:t,a:"type",v:"Font"},{e:t,a:"family",v:e.family},{e:t,a:"variants",v:JSON.stringify(e.variants??["regular"])},{e:t,a:"createdAt",v:new Date().toISOString()}];return e.category&&l.push({e:t,a:"category",v:e.category}),e.catalogRef&&l.push({e:t,a:"catalogRef",v:e.catalogRef}),e.tags?.length&&l.push({e:t,a:"tags",v:e.tags.join(", ")}),l}function nr(e){return`palette:${ht(e)}`}function rr(e){const t=nr(e.name),l=[{e:t,a:"type",v:"ColorPalette"},{e:t,a:"name",v:e.name},{e:t,a:"swatches",v:JSON.stringify(e.swatches)},{e:t,a:"createdAt",v:new Date().toISOString()}];return e.description&&l.push({e:t,a:"description",v:e.description}),e.tags?.length&&l.push({e:t,a:"tags",v:e.tags.join(", ")}),l}const Ye=[{family:"Inter",category:"sans-serif",variants:["regular","500","600","700"]},{family:"Roboto",category:"sans-serif",variants:["regular","500","700"]},{family:"Open Sans",category:"sans-serif",variants:["regular","600","700"]},{family:"Montserrat",category:"sans-serif",variants:["regular","600","700"]},{family:"Poppins",category:"sans-serif",variants:["regular","600","700"]},{family:"Lora",category:"serif",variants:["regular","600","700"]},{family:"JetBrains Mono",category:"monospace",variants:["regular","500","700"]},{family:"Fira Code",category:"monospace",variants:["regular","500","700"]}],ar={primary:"#18181b",secondary:"#52525b",accent:"#2563eb",surface:"#fafafa",background:"#ffffff",border:"#e4e4e7",success:"#16a34a",warning:"#f59e0b",danger:"#dc2626"};function se(e,t){if(typeof e!="string"||!e.trim())return t;try{return JSON.parse(e)}catch{return t}}function p(e,t,l){return e.find(o=>o.e===t&&o.a===l)?.v}const ve="project-brand:config";function ir(e,t){const l=String(p(e,t,"name")??t),o=se(p(e,t,"swatches"),{});if(Object.keys(o).length)return{id:t,name:l,swatches:o}}function lr(e,t){const l=String(p(e,t,"family")??"");if(l)return{id:t,family:l}}function sr(e,t,l){const o=String(p(e,l,"key")??"");if(o)return{id:l,key:o,library:String(p(e,l,"library")??"lucide")}}function or(e,t,l){const o=e.id,n=se(p(t,o,"paletteIds"),e.palettes.map(y=>y.id)),k=se(p(t,o,"fontIds"),e.fonts.map(y=>y.id)),z=se(p(t,o,"enabledIconIds"),e.icons.map(y=>y.id)),h=n.map(y=>ir(t,y)).filter(y=>!!y),S=k.map(y=>lr(t,y)).filter(y=>!!y),F=(z.length?z:l.filter(y=>y.type==="Icon").map(y=>y.id)).map(y=>sr(t,l,y)).filter(y=>!!y);return{...e,name:String(p(t,o,"name")??e.name),description:typeof p(t,o,"description")=="string"?String(p(t,o,"description")):e.description,logoPath:typeof p(t,o,"logoPath")=="string"?String(p(t,o,"logoPath")):e.logoPath,primaryPaletteId:typeof p(t,o,"primaryPaletteId")=="string"?String(p(t,o,"primaryPaletteId")):e.primaryPaletteId,headingFontId:typeof p(t,o,"headingFontId")=="string"?String(p(t,o,"headingFontId")):e.headingFontId,bodyFontId:typeof p(t,o,"bodyFontId")=="string"?String(p(t,o,"bodyFontId")):e.bodyFontId,monoFontId:typeof p(t,o,"monoFontId")=="string"?String(p(t,o,"monoFontId")):e.monoFontId,iconLibrary:String(p(t,o,"iconLibrary")??e.iconLibrary),semantics:se(p(t,o,"semantics"),e.semantics),palettes:h.length?h:e.palettes,fonts:S.length?S:e.fonts,icons:F.length?F:e.icons}}function Rt(e,t){const l=se(p(e,ve,"resolvedSnapshot"),null);if(l?.name){const u=typeof p(e,ve,"activeBrandId")=="string"?String(p(e,ve,"activeBrandId")):l.activeBrandId,T=p(e,ve,"activeBrandVersion"),I=typeof T=="number"?T:l.activeBrandVersion;return or({...l,activeBrandId:u,activeBrandVersion:I},e,t)}const n=String(p(e,ve,"localBrandId")??"")||t.find(u=>u.type==="Brand")?.id||t.find(u=>u.id.startsWith("brand:"))?.id||"";if(!n)return null;const k=se(p(e,n,"paletteIds"),[]),z=se(p(e,n,"fontIds"),[]),h=se(p(e,n,"enabledIconIds"),[]),S=k.map(u=>{const T=String(p(e,u,"name")??u),I=se(p(e,u,"swatches"),{});return{id:u,name:T,swatches:I}}).filter(u=>Object.keys(u.swatches).length>0),F=z.map(u=>({id:u,family:String(p(e,u,"family")??u)})).filter(u=>u.family),y=(h.length?h:t.filter(u=>u.type==="Icon").map(u=>u.id)).map(u=>({id:u,key:String(p(e,u,"key")??u),library:String(p(e,u,"library")??"lucide")})).filter(u=>u.key);return{id:n,name:String(p(e,n,"name")??"Brand"),description:typeof p(e,n,"description")=="string"?String(p(e,n,"description")):void 0,logoPath:typeof p(e,n,"logoPath")=="string"?String(p(e,n,"logoPath")):void 0,primaryPaletteId:typeof p(e,n,"primaryPaletteId")=="string"?String(p(e,n,"primaryPaletteId")):void 0,headingFontId:typeof p(e,n,"headingFontId")=="string"?String(p(e,n,"headingFontId")):void 0,bodyFontId:typeof p(e,n,"bodyFontId")=="string"?String(p(e,n,"bodyFontId")):void 0,monoFontId:typeof p(e,n,"monoFontId")=="string"?String(p(e,n,"monoFontId")):void 0,iconLibrary:String(p(e,n,"iconLibrary")??"lucide"),semantics:se(p(e,n,"semantics"),void 0),palettes:S,fonts:F,icons:y}}function cr(e){const t={...e,resolvedAt:new Date().toISOString()};return[{e:ve,a:"type",v:"ProjectBrandConfig"},{e:ve,a:"localBrandId",v:e.id},{e:ve,a:"resolvedSnapshot",v:JSON.stringify(t)},{e:ve,a:"createdAt",v:new Date().toISOString()}]}const je=new Map,lt=new Map;function nn(e,t=32){try{const l=new URL(e).hostname;return l?`https://www.google.com/s2/favicons?domain=${encodeURIComponent(l)}&sz=${t}`:void 0}catch{return}}function dr(e){return je.get(e)}function Nt(e){const t=je.get(e.url);je.set(e.url,{...t,...e})}async function rn(e,t,l,o){const n=je.get(o);if(n)return n;const k=lt.get(o);if(k)return k;const z=(async()=>{try{const h=new URLSearchParams({url:o,directory:l}),S=await e(`${t}/file/media/link/preview?${h}`);if(!S.ok)return;const F=await S.json();return je.set(o,F),F}catch{return}finally{lt.delete(o)}})();return lt.set(o,z),z}async function Gt(e,t,l,o){const n=[...new Set(o.filter(Boolean))];await Promise.allSettled(n.map(k=>rn(e,t,l,k)))}var ur=b("<div class=brand-type-specimen><div class=brand-type-specimen-label></div><div class=brand-type-specimen-sample>"),gr=b("<button type=button class=brand-palette-bar><span class=brand-palette-bar-label><span class=brand-palette-bar-hex></span><span class=brand-palette-bar-role>"),fr=b("<input type=color class=sr-only>"),pr=b('<div class=brand-voice-editor><label class=brand-field-label for=brand-voice-description>Brand voice</label><textarea id=brand-voice-description class=brand-voice-textarea rows=4 placeholder="Describe how this brand sounds in copy…"></textarea><label class=brand-field-label for=brand-voice-adjectives>Adjectives</label><div class=brand-tag-field><input id=brand-voice-adjectives type=text class=brand-tag-input>'),br=b("<span class=brand-voice-tag><button type=button class=brand-voice-tag-remove>"),mr=b("<img alt class=brand-logo-image>"),vr=b("<span class=brand-bento-cell-hint>Saving…"),hr=b('<p class="brand-bento-muted brand-icon-empty">No icons enabled yet. Add icons from the Icons section.'),yr=b('<div class=brand-bento><header class="brand-bento-cell brand-bento-hero"><div class=brand-bento-hero-copy><p class=brand-bento-eyebrow>Brand guide</p><input type=text class="brand-bento-title brand-bento-title-input"aria-label="Brand name"></div></header><div class="brand-bento-pair brand-bento-pair--logo-voice"><section class="brand-bento-cell brand-bento-logo"aria-label="Brand logo"><div class=brand-bento-cell-head><span class=brand-bento-cell-title>Logo mark</span><span class=brand-bento-cell-hint>SVG or PNG</span></div><button type=button class=brand-logo-drop title="Upload brand logo"><span class=brand-logo-overlay></span></button><input type=file accept=image/svg+xml,image/png,image/jpeg,image/webp,image/avif class=sr-only></section><section class="brand-bento-cell brand-bento-voice"><div class=brand-bento-cell-head><span class=brand-bento-cell-title>Voice & semantics</span></div></section></div><div class="brand-bento-pair brand-bento-pair--type-icons"><section class="brand-bento-cell brand-bento-type"><div class="brand-bento-cell-head brand-bento-cell-head--stacked"><span class=brand-bento-cell-title>Typography</span><label class=brand-font-select-wrap><span class=sr-only>Font family</span><select class=brand-font-select></select></label></div><div class=brand-type-stack></div></section><section class="brand-bento-cell brand-bento-icons"><div class=brand-bento-cell-head><span class=brand-bento-cell-title>Icon system</span><span class="brand-bento-cell-hint capitalize"> · <!> enabled</span></div><div class=brand-icon-grid>'),wr=b("<div class=brand-logo-placeholder><span>Drop or click to upload"),xr=b("<option>"),$r=b("<div class=brand-icon-cell><span class=brand-icon-name>"),kr=b('<section class="brand-bento-cell brand-bento-palette"><div class=brand-bento-cell-head><span class=brand-bento-cell-title>Colors</span></div><div class=brand-palette-strip>');const _r=e=>e.replace(/^#/,"").toUpperCase(),Sr=e=>{const t=e.replace(/^#/,"");if(!/^[0-9a-f]{3}([0-9a-f]{3})?$/i.test(t))return"#f8fafc";const l=t.length===3?[...t].map(h=>h+h).join(""):t,o=parseInt(l.slice(0,2),16)/255,n=parseInt(l.slice(2,4),16)/255,k=parseInt(l.slice(4,6),16)/255;return .2126*o+.7152*n+.0722*k>.55?"#0a0a0a":"#f8fafc"},Cr=e=>{const t=e.trim().replace(/^#/,"");return/^[0-9a-f]{3}$/i.test(t)?`#${[...t].map(l=>l+l).join("")}`.toLowerCase():/^[0-9a-f]{6}$/i.test(t)?`#${t}`.toLowerCase():e},Ir=e=>{const t=Cr(e);return/^#[0-9a-f]{6}$/i.test(t)?t:"#000000"},Lr=e=>{const t=new Set,l=[],o=n=>{const k=n.trim().toLowerCase();!k||t.has(k)||(t.add(k),l.push(n.trim()))};for(const n of e?.adjectives??[])o(n);for(const n of e?.tone??[])o(n);for(const n of e?.mood??[])o(n);for(const n of e?.values??[])o(n);return l};function Fr(e){return e.library==="lucide"?e.key:qt(e.library,e.key)}function He(e){return(()=>{var t=ur(),l=t.firstChild,o=l.nextSibling;return a(l,()=>e.label),a(o,()=>e.sample),E(n=>{var k=!!e.large,z=`"${e.family}", system-ui, sans-serif`;return k!==n.e&&o.classList.toggle("brand-type-specimen-sample--lg",n.e=k),z!==n.t&&me(o,"font-family",n.t=z),n},{e:void 0,t:void 0}),t})()}function Tr(e){let t;const l=()=>{e.disabled||t?.click()},o=n=>{e.onSave(e.role,n.currentTarget.value)};return[(()=>{var n=gr(),k=n.firstChild,z=k.firstChild,h=z.nextSibling;return n.$$click=l,a(z,()=>_r(e.color)),a(h,()=>e.role),E(S=>{var F=e.color,y=Sr(e.color),u=e.disabled,T=`Edit ${e.role} color`;return F!==S.e&&me(n,"background-color",S.e=F),y!==S.t&&me(n,"color",S.t=y),u!==S.a&&(n.disabled=S.a=u),T!==S.o&&Q(n,"title",S.o=T),S},{e:void 0,t:void 0,a:void 0,o:void 0}),n})(),(()=>{var n=fr();return n.addEventListener("change",o),_e(k=>{t=k},n),E(()=>n.disabled=e.disabled),E(()=>n.value=Ir(e.color)),n})()]}function zr(e){const[t,l]=j(""),[o,n]=j([]),[k,z]=j("");fe(()=>{const u=e.semantics;l(u?.voice??""),n(Lr(u)),z("")});const h=async(u,T)=>{const I=e.semantics;await e.onSave({...I,voice:u.trim()||void 0,adjectives:T.length?T:void 0})},S=u=>{const T=u.split(/[,;]+/).map(L=>L.trim()).filter(Boolean);if(!T.length)return;const I=new Set(o().map(L=>L.toLowerCase())),x=[...o()];for(const L of T){const B=L.toLowerCase();I.has(B)||(I.add(B),x.push(L))}n(x),z(""),h(t(),x)},F=u=>{const T=o().filter((I,x)=>x!==u);n(T),h(t(),T)},y=u=>{if(u.key==="Enter"||u.key===","){u.preventDefault(),S(k());return}u.key==="Backspace"&&!k()&&o().length&&F(o().length-1)};return(()=>{var u=pr(),T=u.firstChild,I=T.nextSibling,x=I.nextSibling,L=x.nextSibling,B=L.firstChild;return I.addEventListener("blur",()=>void h(t(),o())),I.$$input=A=>l(A.currentTarget.value),L.$$click=()=>document.getElementById("brand-voice-adjectives")?.focus(),a(L,r(ge,{get each(){return o()},children:(A,w)=>(()=>{var J=br(),O=J.firstChild;return a(J,A,O),O.$$click=M=>{M.stopPropagation(),F(w())},Q(O,"aria-label",`Remove ${A}`),a(O,r(zn,{class:"size-3"})),E(()=>O.disabled=e.saving),J})()}),B),B.addEventListener("blur",()=>{k().trim()&&S(k())}),B.$$keydown=y,B.$$input=A=>z(A.currentTarget.value),E(A=>{var w=e.saving,J=!!e.saving,O=o().length?"Add another…":"Type and press Enter…",M=e.saving;return w!==A.e&&(I.disabled=A.e=w),J!==A.t&&L.classList.toggle("brand-tag-field--disabled",A.t=J),O!==A.a&&Q(B,"placeholder",A.a=O),M!==A.o&&(B.disabled=A.o=M),A},{e:void 0,t:void 0,a:void 0,o:void 0}),E(()=>I.value=t()),E(()=>B.value=k()),u})()}function Pr(e){const t=ae(()=>{const x=e.snapshot;return x.palettes.find(L=>L.id===x.primaryPaletteId)??x.palettes[0]}),l=ae(()=>e.snapshot.icons.slice(0,12)),o=()=>e.snapshot.fonts.find(x=>x.id===e.snapshot.headingFontId)?.family??"Inter",n=()=>e.snapshot.fonts.find(x=>x.id===e.snapshot.bodyFontId)?.family??"Inter",k=()=>e.snapshot.fonts.find(x=>x.id===e.snapshot.monoFontId)?.family??"JetBrains Mono",z=ae(()=>{const x=new Set,L=[],B=A=>{const w=A.trim();!w||x.has(w)||(x.add(w),L.push(w))};for(const A of e.snapshot.fonts)B(A.family);for(const A of Ye)B(A.family);return L}),[h,S]=j(e.snapshot.name);fe(()=>{S(e.snapshot.name)});let F;const y=()=>F?.click(),u=x=>{const L=x.currentTarget.files?.[0];L&&e.onUploadLogo(L),x.currentTarget.value=""},T=()=>{const x=h().trim();!x||x===e.snapshot.name||e.onSaveName(x)},I=()=>e.savingBrand||e.savingSemantics;return(()=>{var x=yr(),L=x.firstChild,B=L.firstChild,A=B.firstChild,w=A.nextSibling,J=L.nextSibling,O=J.firstChild,M=O.firstChild,pe=M.nextSibling,de=pe.firstChild,Be=pe.nextSibling,Se=O.nextSibling,Ce=Se.firstChild;Ce.firstChild;var Oe=J.nextSibling,Ue=Oe.firstChild,Ie=Ue.firstChild,Xe=Ie.firstChild,Re=Xe.nextSibling,Ze=Re.firstChild,oe=Ze.nextSibling,ie=Ie.nextSibling,q=Ue.nextSibling,we=q.firstChild,Le=we.firstChild,xe=Le.nextSibling,Fe=xe.firstChild,Te=Fe.nextSibling;Te.nextSibling;var le=we.nextSibling;return w.$$keydown=P=>{P.key==="Enter"&&P.currentTarget.blur()},w.addEventListener("blur",T),w.$$input=P=>S(P.currentTarget.value),pe.$$click=y,a(pe,r(m,{get when(){return e.logoUrl},get fallback(){return(()=>{var P=wr(),W=P.firstChild;return a(P,r(Bt,{class:"size-8 opacity-60"}),W),P})()},get children(){var P=mr();return E(()=>Q(P,"src",e.logoUrl)),P}}),de),a(de,r(m,{get when(){return e.uploadingLogo},get fallback(){return r(Bt,{class:"size-5"})},get children(){return r(De,{})}})),Be.addEventListener("change",u),_e(P=>{F=P},Be),a(Ce,r(m,{get when(){return e.savingSemantics},get children(){return vr()}}),null),a(Se,r(zr,{get semantics(){return e.snapshot.semantics},get saving(){return e.savingSemantics},get onSave(){return e.onSaveSemantics}}),null),oe.addEventListener("change",P=>void e.onSaveFontFamily(P.currentTarget.value)),a(oe,r(ge,{get each(){return z()},children:P=>(()=>{var W=xr();return W.value=P,a(W,P),W})()})),a(ie,r(He,{label:"Display",get family(){return o()},sample:"Aa",large:!0}),null),a(ie,r(He,{label:"Heading",get family(){return o()},sample:"The quick brown fox"}),null),a(ie,r(He,{label:"Body",get family(){return n()},sample:"Design systems stay coherent when type scales match intent."}),null),a(ie,r(He,{label:"Mono",get family(){return k()},sample:'const brand = "on-brand"'}),null),a(xe,()=>e.snapshot.iconLibrary,Fe),a(xe,()=>e.snapshot.icons.length,Te),a(le,r(ge,{get each(){return l()},children:P=>(()=>{var W=$r(),be=W.firstChild;return a(W,r(dt,{type:"Icon",get icon(){return Fr(P)},size:22,class:"text-text-strong"}),be),a(be,()=>P.key),E(()=>Q(W,"title",P.key)),W})()}),null),a(le,r(m,{get when(){return l().length===0},get children(){return hr()}}),null),a(x,r(m,{get when(){return t()},children:P=>(()=>{var W=kr(),be=W.firstChild,ye=be.nextSibling;return a(ye,r(ge,{get each(){return Object.entries(P().swatches)},children:([$e,Ne])=>r(Tr,{role:$e,color:Ne,get disabled(){return I()},onSave:(Ge,Me)=>e.onSaveSwatch(P().id,Ge,Me)})})),E(()=>Q(W,"aria-label",`Color palette ${P().name}`)),W})()}),null),E(P=>{var W=I(),be=e.uploadingLogo,ye=I();return W!==P.e&&(w.disabled=P.e=W),be!==P.t&&(pe.disabled=P.t=be),ye!==P.a&&(oe.disabled=P.a=ye),P},{e:void 0,t:void 0,a:void 0}),E(()=>w.value=h()),E(()=>oe.value=o()),x})()}Qe(["click","input","keydown"]);const Er=new Set(["design","trellis_store_mutate","cms"]);function Ar(e){if(e.type!=="message.part.updated")return!1;const t=e.properties?.part;return!t||t.type!=="tool"||t.state.status!=="completed"?!1:Er.has(t.tool)}var jr=b('<div class="size-full flex items-center justify-center">'),Dr=b('<div class="flex flex-col items-center gap-2 text-text-weaker px-3 text-center"><span class="text-10-medium uppercase tracking-wider break-all">'),Br=b("<img loading=lazy>",!0,!1,!1),Or=b("<div class=link-asset-preview-loading>"),Ur=b("<div class=link-asset-preview>"),Rr=b('<div class=link-asset-preview-fallback><span class="text-10-medium uppercase tracking-wider break-all px-2 text-center">'),Nr=b("<img alt class=link-asset-preview-favicon loading=lazy>",!0,!1,!1),Gr=b("<img alt class=link-asset-preview-image loading=lazy>",!0,!1,!1),Mr=b('<div class="flex items-center gap-1.5 min-w-0"><span class="text-12-medium text-text-base truncate">'),Vr=b('<img alt class="size-3.5 rounded-sm shrink-0 bg-background-base object-contain"loading=lazy>',!0,!1,!1),Jr=b("<div class=design-loading-state><span>"),qr=b('<div class="flex flex-col items-center gap-2 text-text-weaker group-hover:scale-110 transition-transform duration-300 px-2 text-center"><span class="text-10-medium uppercase tracking-wider break-all px-1">'),Kr=b('<div class=relative><input type=text class="h-7 pl-8 pr-3 bg-surface-raised-base border-none rounded-md text-12-regular w-48 focus:ring-1 focus:ring-primary-base transition-all">'),Wr=b("<div class=design-loading-strip><span>"),Hr=b("<div class=asset-grid>"),Yr=b("<div class=icon-grid>"),Qr=b('<div class="flex flex-col gap-2 p-6">'),Xr=b('<div class="flex justify-center px-6 pb-8">'),Zr=b('<div class=design-panel><input type=file class=hidden><div class=design-sidebar><div class="h-10 flex items-center px-3 border-b border-border-weaker-base shrink-0"><span class="text-xs font-medium text-text-weak opacity-80 uppercase tracking-wider"></span></div><div class="design-sidebar-items flex-1 overflow-y-auto p-2 flex flex-col gap-0.5"></div></div><div class=design-content><div class=design-header><div class="flex items-center gap-4"><h2 class="text-12-medium text-text-strong uppercase tracking-wide"></h2></div><div class="flex items-center gap-2"></div></div><div class="flex-1 overflow-y-auto"><div class="section-content-enter mx-auto w-full">'),ea=b('<button class="stagger-item design-section-btn"><span class=design-section-label><span class=truncate></span></span><span class=design-section-count>'),ta=b('<div class="py-20 flex flex-col items-center justify-center gap-4 animate-in fade-in zoom-in-95 duration-300"><div class="size-16 rounded-full bg-surface-raised-base flex items-center justify-center text-text-weaker"></div><div class=text-center><div class="text-16-medium text-text-base mb-1">No <!> yet</div><div class="text-14-regular text-text-weaker max-w-[320px]">'),na=b('<div class="text-10-regular text-text-weaker flex items-center justify-between"><span></span><span>'),ra=b('<div class="stagger-item asset-card group"><div class=asset-preview></div><div class=asset-info>'),aa=b('<div class="text-12-medium text-text-base truncate mb-0.5">'),ia=b("<div class=mb-0.5>"),la=b('<div class="text-10-regular text-text-weaker truncate mb-1">'),sa=b('<div class="stagger-item icon-grid-card group"><div class=icon-grid-preview></div><div class="icon-grid-label truncate"></div><div class="icon-grid-meta truncate">'),oa=b("<span class=text-text-weaker> · "),ca=b('<div class="flex items-center gap-1 mt-1">'),da=b('<div class="stagger-item flex items-center justify-between p-3 bg-surface-raised-base rounded-lg border border-border-weaker-base hover:border-border-base transition-all group"><div class="flex items-center gap-3 min-w-0"><div class="size-8 rounded bg-background-base flex items-center justify-center text-text-weak border border-border-weaker-base shrink-0"></div><div class=min-w-0><div class="text-13-medium text-text-base truncate"></div><div class="text-11-regular text-text-weaker truncate">'),ua=b('<span class="size-3 rounded-full border border-border-weaker-base">'),ga=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">URL</label><a target=_blank rel=noreferrer class="text-13-regular text-primary-base break-all hover:underline">'),fa=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Palette</label><div class="flex flex-wrap gap-1.5">'),pa=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Tone</label><div class="text-12-regular text-text-base break-words">'),ba=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Tags</label><div class="text-12-regular text-text-base break-words">'),ma=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Audio Type</label><div class="text-12-regular text-text-base capitalize">'),va=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">BPM</label><div class="text-12-regular text-text-base">'),ha=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Key</label><div class="text-12-regular text-text-base">'),ya=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Genre</label><div class="text-12-regular text-text-base break-words">'),wa=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Mood</label><div class="text-12-regular text-text-base break-words">'),xa=b('<div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Transcript</label><textarea rows=8 readonly class="w-full bg-surface-raised-base border border-border-weaker-base rounded px-2 py-1.5 text-12-regular resize-none">'),$a=b('<div class=detail-sidebar><div class="h-12 flex items-center justify-between px-4 border-b border-border-weaker-base shrink-0"><span class="text-13-semibold text-text-base">Asset Details</span></div><div class="flex-1 overflow-y-auto p-4 flex flex-col gap-6"><div class="aspect-square rounded-lg bg-background-base border border-border-weaker-base flex items-center justify-center overflow-hidden shrink-0"></div><div class="flex flex-col gap-4"><div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block"></label><div class="text-13-regular text-text-base break-all"></div></div><div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Title</label><input type=text placeholder="Add a title..."class="w-full bg-surface-raised-base border border-border-weaker-base rounded px-2 py-1.5 text-13-regular"></div><div><label class="text-11-medium text-text-weaker uppercase mb-1.5 block">Alt Text</label><textarea rows=2 placeholder="Describe for accessibility..."class="w-full bg-surface-raised-base border border-border-weaker-base rounded px-2 py-1.5 text-13-regular resize-none"></textarea></div><div><div class="flex items-center justify-between mb-1.5"><label class="text-11-medium text-text-weaker uppercase">Description</label></div><textarea rows=4 placeholder="Semantic description for agents and CMS..."class="w-full bg-surface-raised-base border border-border-weaker-base rounded px-2 py-1.5 text-12-regular resize-none"></textarea></div><div class="grid grid-cols-2 gap-4 pt-2 border-t border-border-weaker-base"><div><label class="text-11-medium text-text-weaker uppercase mb-1 block">Size</label><div class="text-12-regular text-text-base"></div></div><div><label class="text-11-medium text-text-weaker uppercase mb-1 block">Type</label><div class="text-12-regular text-text-base uppercase"></div></div></div></div></div><div class="p-4 border-t border-border-weaker-base flex flex-col gap-2">'),ka=b('<audio controls class="w-full px-4">'),_a=b('<div class="flex flex-col items-center gap-2 text-text-weaker p-4"><span class="text-12-medium uppercase tracking-wider">'),Sa=b('<div class="flex items-center gap-1.5 border border-border-weaker-base bg-surface-raised-base rounded px-1.5 py-1 min-w-0"><span class="text-11-regular text-text-base font-mono truncate">'),Ca=b('<span class="size-4 shrink-0 rounded-sm border border-border-weaker-base">');const Ia=new Set(["assets","videos","documents","models","audio","links","sprites"]),La=["Brand","Icon","ColorPalette","Font","DesignComponent","DesignToken"],st=500,Ee=120;function yt(e,t){if(!e||typeof IntersectionObserver>"u"){t();return}const l=new IntersectionObserver(o=>{o.some(n=>n.isIntersecting)&&(l.disconnect(),t())},{rootMargin:"320px 0px"});return l.observe(e),()=>l.disconnect()}const ee=e=>Ia.has(e),Ae=e=>e==="brand"||e==="icons"||e==="colors"||e==="type",ot=(e,t)=>e==="assets"?t.category==="image":e==="videos"?t.category==="video":e==="documents"?t.category==="document":e==="models"?t.category==="model3d"||t.category==="texture":e==="links"?t.category==="link":e==="sprites"?t.category==="spritesheet"||t.path.includes(".trellis/media/sprites/")||t.path.includes(".trellis/sprites/"):t.category==="audio",Fa=e=>e==="assets"?"image/*":e==="videos"?"video/*":e==="documents"?".pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,application/pdf":e==="models"?".glb,.gltf,.obj,.fbx,.usdz,.stl,.ply,.dae,.blend,.usd,.abc,.hdr,.exr,.ktx,.ktx2,.dds,.tga,.psd":e==="sprites"?"image/png,image/webp,image/gif":"audio/*",ct=e=>e==="image"||e==="video"||e==="audio"||e==="document",Ta=e=>{const t=e.toLowerCase();return["png","jpg","jpeg","gif","webp","svg","ico","bmp","avif"].includes(t)?"image":["glb","gltf","obj","fbx","usdz","stl","ply","dae","blend","usd","abc"].includes(t)?"model3d":["hdr","exr","ktx","ktx2","dds","tga","psd"].includes(t)?"texture":["mp4","m4v","mov","webm","ogv","avi","mkv"].includes(t)?"video":["mp3","wav","ogg","flac","aac","m4a","opus"].includes(t)?"audio":["pdf","doc","docx","xls","xlsx","ppt","pptx"].includes(t)?"document":"other"};function an(e){const t=Wt();let l;const[o,n]=j(!1),[k]=ut(()=>o()?e.path:void 0,async h=>{const S=en(t.url,h,t.directory),F=await t.fetch(S);if(!F.ok)throw new Error(`Failed to load image (${F.status})`);return URL.createObjectURL(await F.blob())});vt(()=>{const h=yt(l,()=>n(!0));h&&he(h)}),fe(()=>{const h=k();he(()=>{h&&URL.revokeObjectURL(h)})});const z=()=>{if(!(k.loading||k.error))return k()};return(()=>{var h=jr(),S=l;return typeof S=="function"?_e(S,h):l=h,a(h,r(m,{get when(){return z()},get fallback(){return(()=>{var F=Dr(),y=F.firstChild;return a(F,r(m,{get when(){return G(()=>!!o())()&&k.loading},get fallback(){return r(Gn,{class:"size-8"})},get children(){return r(De,{class:"size-5"})}}),y),a(y,()=>e.name),F})()},children:F=>(()=>{var y=Br();return E(u=>{var T=F(),I=e.name,x=e.class;return T!==u.e&&Q(y,"src",u.e=T),I!==u.t&&Q(y,"alt",u.t=I),x!==u.a&&Nn(y,u.a=x),u},{e:void 0,t:void 0,a:void 0}),y})()})),h})()}function ln(e){let t;const l=(()=>{const w=dr(e.url);if(w)return w;if(e.previewImage||e.previewFavicon)return{url:e.url,image:e.previewImage,favicon:e.previewFavicon}})(),[o,n]=j(l),[k,z]=j(!o()?.image&&!e.previewImage),[h,S]=j(!!(o()?.image??e.previewImage)),[F,y]=j(!1),[u,T]=j(!1);let I=!1;vt(()=>{const w=yt(t,()=>T(!0));w&&he(w)}),fe(()=>{!u()||I||(I=!0,e.load(e.url).then(w=>{w&&n(w),z(!1);const J=w?.image??e.previewImage;S(!!J),y(!J)}))});const x=()=>o()?.image??e.previewImage,L=()=>o()?.favicon??e.previewFavicon??nn(e.url,64),B=()=>!!x()&&!F(),A=()=>k()||B()&&h();return(()=>{var w=Ur(),J=t;return typeof J=="function"?_e(J,w):t=w,a(w,r(m,{get when(){return G(()=>!!B())()?x():void 0},keyed:!0,get fallback(){return(()=>{var O=Rr(),M=O.firstChild;return a(O,r(m,{get when(){return L()},get fallback(){return r(Xt,{class:"size-8"})},children:pe=>(()=>{var de=Nr();return E(()=>Q(de,"src",pe())),de})()}),M),a(M,()=>e.title),O})()},children:O=>(()=>{var M=Gr();return M.addEventListener("error",()=>{S(!1),y(!0)}),M.addEventListener("load",()=>{S(!1),y(!1)}),Q(M,"src",O),M})()}),null),a(w,r(m,{get when(){return A()},get children(){var O=Or();return a(O,r(De,{class:"size-5 text-text-weaker"})),O}}),null),w})()}function za(e){let t;const[l,o]=j(nn(e.url,32)),[n,k]=j(!1);let z=!1;return vt(()=>{const h=yt(t,()=>k(!0));h&&he(h)}),fe(()=>{!n()||z||(z=!0,e.load(e.url).then(h=>{h?.favicon&&o(h.favicon)}))}),(()=>{var h=Mr(),S=h.firstChild,F=t;return typeof F=="function"?_e(F,h):t=h,a(h,r(m,{get when(){return l()},children:y=>(()=>{var u=Vr();return u.addEventListener("error",T=>{T.currentTarget.style.display="none"}),E(()=>Q(u,"src",y())),u})()}),S),a(S,()=>e.title),E(()=>Q(S,"title",e.title)),h})()}function Pa(e){return(()=>{var t=Jr(),l=t.firstChild;return a(t,r(De,{class:"size-5 text-text-weaker"}),l),a(l,()=>e.label),t})()}function Ea(e){return r(m,{get when(){return G(()=>e.asset.category==="link")()&&e.asset.url},get fallback(){return r(m,{get when(){return e.asset.category==="image"},get fallback(){return(()=>{var t=qr(),l=t.firstChild;return a(t,r(m,{get when(){return e.asset.category==="video"},get fallback(){return r(m,{get when(){return e.asset.category==="audio"},get fallback(){return r(m,{get when(){return e.asset.category==="model3d"||e.asset.category==="texture"},get fallback(){return r(m,{get when(){return e.asset.category==="document"},get fallback(){return r(Qt,{class:"size-8"})},get children(){return r(mt,{class:"size-8"})}})},get children(){return r(pt,{class:"size-8"})}})},get children(){return r(Zt,{class:"size-8"})}})},get children(){return r(bt,{class:"size-8"})}}),l),a(l,()=>e.asset.ext),t})()},get children(){return r(an,{get path(){return e.asset.path},get name(){return e.asset.name},class:"size-full object-contain group-hover:scale-110 transition-transform duration-500 ease-out"})}})},children:t=>r(ln,{get url(){return t()},get title(){return e.asset.title?.trim()||e.asset.name},get previewImage(){return e.asset.previewImage},get previewFavicon(){return e.asset.previewFavicon},get load(){return e.load}})})}const Aa=e=>{if(typeof window>"u")return e==="assets"?"assets":"brand";const l=new URLSearchParams(window.location.search).get("section");return e==="assets"?l&&ee(l)?l:"assets":l&&!ee(l)?l:"brand"},ja=[{id:"brand",label:"Brand",icon:Dn,description:"Project identity, tone, and linked design defaults.",panel:"design"},{id:"icons",label:"Icons",icon:Bn,description:"Project-enabled icon set for UI and CMS.",panel:"design"},{id:"colors",label:"Colors",icon:gt,description:"Color palettes and semantic roles.",panel:"design"},{id:"type",label:"Type",icon:Ht,description:"Project fonts and typographic choices.",panel:"design"},{id:"tokens",label:"Tokens",icon:Yt,description:"Design tokens like spacing, radius, and motion.",panel:"design"},{id:"components",label:"Components",icon:On,description:"Reusable UI components and elements.",panel:"design"},{id:"assets",label:"Images",icon:Un,description:"Images and visual media files.",panel:"assets"},{id:"videos",label:"Videos",icon:bt,description:"Video clips and motion media.",panel:"assets"},{id:"documents",label:"Documents",icon:mt,description:"PDFs, docs, spreadsheets, and presentations.",panel:"assets"},{id:"links",label:"Links",icon:Xt,description:"Reusable bookmarks and external references.",panel:"assets"},{id:"audio",label:"Audio",icon:Zt,description:"Sound effects, music, and voice clips.",panel:"assets"},{id:"models",label:"3D models",icon:pt,description:"3D models, meshes, and texture maps.",panel:"assets"},{id:"sprites",label:"Sprite sheets",icon:Rn,description:"2D pixel art atlases and sprite sheets (graph projections coming).",panel:"assets"}];function sn(e){const t=Wt(),l=ft(),o=Pn(),[n,k]=j(Aa(e.panel)),z=()=>ja.filter(i=>i.panel===e.panel),[h,S]=j(""),[F,y]=j([]),[u,T]=j(!1),I=async()=>{try{const i=await t.fetch(`${t.url}/file/media/list?directory=${encodeURIComponent(t.directory)}`);return i.ok?await i.json():[]}catch{return[]}},[x,{refetch:L}]=ut(()=>e.panel==="assets"?`${t.url}:${t.directory}`:void 0,I,{initialValue:[]}),B=async()=>{if(e.panel!=="design")return{entities:[],facts:[]};const i=[];try{for(const c of La)for(let g=0;;g+=st){const f=await t.fetch(Ot(t.url,t.directory,`/store/entities?type=${encodeURIComponent(c)}&limit=${st}&offset=${g}`));if(!f.ok)break;const $=await f.json();if(i.push(...$),$.length<st)break}const s=[];for(let c=0;c<i.length;c+=12){const g=i.slice(c,c+12),f=await Promise.all(g.map(async $=>{try{const X=await t.fetch(Ot(t.url,t.directory,`/store/entity/${encodeURIComponent($.id)}`));return X.ok?await X.json():void 0}catch{return}}));for(const $ of f)$&&s.push(...$.facts)}return{entities:i,facts:s}}catch{return{entities:i,facts:[]}}},[A,{refetch:w}]=ut(()=>e.panel==="design"?`${t.url}:${t.directory}`:void 0,B,{initialValue:{entities:[],facts:[]}});fe(()=>{const i=s=>{const c=s.detail;if(!c)return;if(c.section){const $=c.section;if(ee($)&&e.panel!=="assets"||!ee($)&&e.panel!=="design")return;k($)}const g=J(),f=c.path?g.find($=>$.path===c.path):c.entity?g.find($=>$.path.includes(c.entity.split(":").pop()??"")||$.url?.includes(c.entity.split(":").pop()??"")):void 0;f&&M(f)};window.addEventListener("design-navigate",i),he(()=>window.removeEventListener("design-navigate",i))}),fe(()=>{if(e.panel!=="design")return;const i=t.event.listen(s=>{if(Ar(s.details)){w();return}if(s.details.type!=="file.watcher.updated")return;const c=s.details.properties,g=c.file?.replace(/^\/+/,"");g&&(g.includes(".trellis/brand")&&(c.event==="add"||c.event==="change"||c.event==="unlink")&&w(),!(!g.includes(".trellis/media")&&!g.includes(".trellis/assets"))&&(c.event==="add"||c.event==="change"||c.event==="unlink")&&L())});he(i)});const J=ae(()=>{const i=x()??[];return[...F().filter(c=>!i.some(g=>g.path===c.path)),...i]}),[O,M]=j(null),[pe,de]=j(!1),[Be,Se]=j(!1),[Ce,Oe]=j(!1),[Ue,Ie]=j(!1),[Xe,Re]=j(!1),[Ze,oe]=j(!1),ie=()=>A()?.entities??[],q=()=>A()?.facts??[],we=ae(()=>ie().filter(i=>i.type==="DesignComponent")),Le=ae(()=>ie().filter(i=>i.type==="DesignToken")),xe=ae(()=>ie().filter(i=>i.type==="Icon")),Fe=ae(()=>ie().filter(i=>i.type==="ColorPalette")),Te=ae(()=>ie().filter(i=>i.type==="Font")),le=ae(()=>Rt(q(),ie())),P=ae(()=>{const i=J();return{brand:le()?1:0,icons:xe().length,colors:Fe().length,type:Te().length,assets:i.filter(s=>s.category==="image").length,videos:i.filter(s=>s.category==="video").length,documents:i.filter(s=>s.category==="document").length,links:i.filter(s=>s.category==="link").length,models:i.filter(s=>s.category==="model3d"||s.category==="texture").length,audio:i.filter(s=>s.category==="audio").length,components:we().length,tokens:Le().length,sprites:i.filter(s=>ot("sprites",s)).length}}),W=()=>{const i=h().toLowerCase();if(n()==="brand")return[];if(ee(n())){const s=J().filter(c=>ot(n(),c));return i?s.filter(c=>c.name.toLowerCase().includes(i)||c.path.toLowerCase().includes(i)||c.url?.toLowerCase().includes(i)||c.title?.toLowerCase().includes(i)||c.description?.toLowerCase().includes(i)||c.tone?.toLowerCase().includes(i)||c.tags?.some(g=>g.toLowerCase().includes(i))):s}if(n()==="icons"){const s=xe();return i?s.filter(c=>{const g=String(p(q(),c.id,"key")??""),f=String(p(q(),c.id,"library")??"");return`${g} ${f} ${c.id}`.toLowerCase().includes(i)}):s}if(n()==="colors"){const s=Fe();return i?s.filter(c=>`${String(p(q(),c.id,"name")??"")} ${c.id}`.toLowerCase().includes(i)):s}if(n()==="type"){const s=Te();return i?s.filter(c=>`${String(p(q(),c.id,"family")??"")} ${c.id}`.toLowerCase().includes(i)):s}if(n()==="components"){const s=we();return i?s.filter(c=>q().find(f=>f.e===c.id&&f.a==="label")?.v?.toLowerCase().includes(i)):s}if(n()==="tokens"){const s=Le();return i?s.filter(c=>q().find(f=>f.e===c.id&&f.a==="label")?.v?.toLowerCase().includes(i)):s}return[]},[be,ye]=j(Ee);fe(En(()=>`${n()}:${h()}`,()=>ye(Ee)));const $e=ae(()=>W().slice(0,be())),Ne=ae(()=>Math.max(0,W().length-$e().length)),Ge=()=>ee(n())?x.loading:e.panel==="design"&&A.loading,Me=()=>Ge()&&W().length===0&&!(n()==="brand"&&le()),wt=()=>ee(n())?"Loading assets...":"Loading design inventory...",xt=i=>{if(!i)return"0 B";const s=1024,c=["B","KB","MB","GB"],g=Math.floor(Math.log(i)/Math.log(s));return parseFloat((i/Math.pow(s,g)).toFixed(1))+" "+c[g]},$t=i=>en(t.url,i,t.directory),et=i=>rn(s=>t.fetch(s),t.url,t.directory,i);fe(()=>{const i=J().filter(f=>f.category==="link"&&!!f.url);if(!i.length)return;const s=i.slice(0,Ee);for(const f of s)(f.previewImage||f.previewFavicon)&&Nt({url:f.url,image:f.previewImage,favicon:f.previewFavicon,title:f.title});const c=()=>Gt(f=>t.fetch(f),t.url,t.directory,s.map(f=>f.url));if(typeof window<"u"&&"requestIdleCallback"in window){const f=window.requestIdleCallback(()=>void c(),{timeout:2500});he(()=>window.cancelIdleCallback(f));return}const g=setTimeout(()=>void c(),250);he(()=>clearTimeout(g))});const Ve=i=>i.title?.trim()||i.name,on=i=>i.description?.trim()||i.alt?.trim()||i.tone?.trim(),cn=i=>/^#(?:[0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(i.trim())?i.trim():void 0,kt=(i,s)=>{y(g=>g.map(f=>f.path===i?{...f,...s}:f));const c=O();c?.path===i&&M({...c,...s})},tt=async(i,s=!1)=>{const c=await t.fetch(`${t.url}/file/media/describe`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:i.path,force:s})});if(!c.ok)return;const g=await c.json();!g.description&&!g.tone&&!g.tags?.length&&!g.palette?.length&&!g.transcript&&!g.audioAnalysis||(kt(i.path,g),await L())},ke=async()=>{const i=Rt(q(),ie());if(!i){R({variant:"error",title:"No brand to refresh"});return}const s=await o.assert(cr(i));s&&await w(),R(s?{title:"Brand snapshot refreshed"}:{variant:"error",title:"Failed to refresh brand"})},dn=async i=>{const s=le();if(!s)return;if(!i.type.startsWith("image/")){R({variant:"error",title:"Logo must be an image file"});return}const g=`logo.${i.name.match(/\.(svg|png|jpe?g|webp|avif)$/i)?.[1]?.toLowerCase()??(i.type.includes("svg")?"svg":"png")}`;Ie(!0);try{const f=new FormData;f.append("file",i,g),f.append("path",".trellis/brand"),f.append("name",g);const $=await t.fetch(`${t.url}/file/upload?directory=${encodeURIComponent(t.directory)}`,{method:"POST",body:f});if(!$.ok){const Y=await $.json().catch(()=>({}));throw new Error(Y.error??"Upload failed")}const X=await $.json();if(!await o.assert([{e:s.id,a:"logoPath",v:X.path}]))throw new Error("Failed to save logo on brand");await ke(),R({title:"Brand logo updated"})}catch(f){R({variant:"error",title:"Logo upload failed",description:f instanceof Error?f.message:String(f)})}finally{Ie(!1)}},un=async i=>{const s=le();if(s){Re(!0);try{if(!await o.assert([{e:s.id,a:"semantics",v:JSON.stringify(i)}])){R({variant:"error",title:"Failed to update brand voice"});return}await ke()}finally{Re(!1)}}},gn=async i=>{const s=le();if(!(!s||!i.trim())){oe(!0);try{if(!await o.assert([{e:s.id,a:"name",v:i.trim()}])){R({variant:"error",title:"Failed to update brand name"});return}await ke()}finally{oe(!1)}}},fn=async(i,s,c)=>{const g=le();if(!g)return;const f=g.palettes.find($=>$.id===i);if(f){oe(!0);try{const $={...f.swatches,[s]:c};if(!await o.assert([{e:i,a:"swatches",v:JSON.stringify($)}])){R({variant:"error",title:"Failed to update color"});return}await ke()}finally{oe(!1)}}},pn=async i=>{const s=le();if(!s||!i.trim())return;const c=i.trim(),g=tn(c),f=Ye.find($=>$.family===c);oe(!0);try{const $=[];if(!s.fonts.some(Y=>Y.id===g)){const Y=Ut({family:c,category:f?.category,variants:f?[...f.variants]:["regular"]});Y&&$.push(...Y)}const X=[...new Set([...s.fonts.map(Y=>Y.id),g])];if($.push({e:s.id,a:"fontIds",v:JSON.stringify(X)},{e:s.id,a:"headingFontId",v:g},{e:s.id,a:"bodyFontId",v:g}),!await o.assert($)){R({variant:"error",title:"Failed to update typography"});return}await ke()}finally{oe(!1)}},_t=async()=>{if(n()==="brand")return;if(n()==="icons"){T(!0);return}if(n()==="type"){const f=window.prompt(`Font family (${Ye.map(Y=>Y.family).join(", ")}, …):`,"Inter");if(!f?.trim())return;const $=Ye.find(Y=>Y.family.toLowerCase()===f.trim().toLowerCase()),X=Ut({family:f.trim(),category:$?.category,variants:$?[...$.variants]:["regular"],catalogRef:$?`google-fonts:${$.family}`:void 0}),re=await o.assert(X);re&&await w(),R(re?{title:"Font added"}:{variant:"error",title:"Failed to add font"});return}if(n()==="colors"){const f=window.prompt("Palette name:","Custom");if(!f?.trim())return;const $=rr({name:f.trim(),swatches:{...ar},tags:["custom"]}),X=await o.assert($);X&&await w(),R(X?{title:"Palette added"}:{variant:"error",title:"Failed to add palette"});return}if(n()==="links"){xn();return}if(ee(n())){ze?.click();return}const i=window.prompt(`Enter ${n().slice(0,-1)} name:`);if(!i)return;const s=`design:${n()}:${Date.now()}`,c=n()==="components"?"DesignComponent":"DesignToken";await o.assert([{e:s,a:"type",v:c},{e:s,a:"label",v:i},{e:s,a:"createdAt",v:new Date().toISOString()}])?(await w(),R({title:`${n().slice(0,-1)} added`})):R({variant:"error",title:"Failed to add item"})},St=async i=>{if(!confirm("Delete this item?"))return;const s=q().filter(g=>g.e===i);await o.retract(s)&&(await w(),R({title:"Item deleted"}))},bn=async i=>{if(ct(i.category)){Se(!0);try{if(await tt(i,!0),O()?.path===i.path){const c=J().find(g=>g.path===i.path);c&&M(c)}R({title:"Semantic metadata generated"})}catch{R({variant:"error",title:"Metadata analysis failed",description:"Check GEMINI_API_KEY or try Regenerate in the asset panel."})}finally{Se(!1)}}},mn=async i=>{const s=i.target;if(!s.files?.length)return;const c=s.files[0],g=new FormData;g.append("file",c),g.append("path",".trellis/media");try{const f=await t.fetch(`${t.url}/file/upload?directory=${encodeURIComponent(t.directory)}`,{method:"POST",body:g});if(f.ok){const $=await f.json(),X=$.path.split(".").pop()?.toLowerCase()??"bin",re={path:$.path,name:$.path.split("/").pop()??c.name,ext:X,category:Ta(X),size:$.size};y(Y=>[re,...Y]),M(re),R({title:"Asset uploaded",description:ct(re.category)?"Analyzing with Gemini…":void 0}),await L(),ct(re.category)&&await bn(re)}else{const $=await f.json();R({variant:"error",title:"Upload failed",description:$.error})}}catch(f){R({variant:"error",title:"Upload failed",description:String(f)})}finally{s.value=""}},nt=async i=>{const s=O();if(s){de(!0);try{(await t.fetch(`${t.url}/file/media/update`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:s.path,...i})})).ok?(R({title:"Metadata updated"}),kt(s.path,i),await L()):R({variant:"error",title:"Update failed"})}catch(c){R({variant:"error",title:"Update failed",description:String(c)})}finally{de(!1)}}},vn=async()=>{const i=O();if(i){de(!0);try{await tt(i,!0),R({title:"Metadata generated"})}catch{R({variant:"error",title:"Generation failed"})}finally{de(!1)}}},hn=async i=>{Oe(!0);try{const{url:s,body:c}=Zn(t.url,t.directory,i),g=await t.fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)});if(!g.ok){const $=await g.json().catch(()=>null);throw new Error(Vt($,`Image generation failed (${g.status})`))}const f=await g.json();y($=>[f,...$]),k("assets"),M(f),R({title:"Image asset generated",description:f.name}),await L()}finally{Oe(!1)}},yn=()=>{l.show(()=>r(Kn,{onGenerate:hn}))},wn=async i=>{const s=await t.fetch(`${t.url}/file/media/link`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!s.ok){const g=await s.json().catch(()=>({error:"Failed to add link"}));throw new Error(g.error??"Failed to add link")}const c=await s.json();y(g=>[c,...g]),k("links"),M(c),R({title:"Link asset added",description:c.url}),c.url&&(Nt({url:c.url,image:c.previewImage,favicon:c.previewFavicon,title:c.title}),Gt(g=>t.fetch(g),t.url,t.directory,[c.url])),await L(),tt(c).catch(()=>{})},xn=()=>{l.show(()=>r(Hn,{onCreate:wn}))};let ze;return fe(()=>{const i=n();!ee(i)||!ze||(ze.accept=Fa(i))}),(()=>{var i=Zr(),s=i.firstChild,c=s.nextSibling,g=c.firstChild,f=g.firstChild,$=g.nextSibling,X=c.nextSibling,re=X.firstChild,Y=re.firstChild,$n=Y.firstChild,Je=Y.nextSibling,Ct=re.nextSibling,qe=Ct.firstChild;s.addEventListener("change",mn);var It=ze;return typeof It=="function"?_e(It,s):ze=s,a(f,()=>e.panel==="assets"?"Assets":"Design"),a($,r(ge,{get each(){return z()},children:(d,v)=>(()=>{var V=ea(),N=V.firstChild,ne=N.firstChild,U=N.nextSibling;return V.$$click=()=>{k(d.id),M(null)},a(N,r(d.icon,{class:"size-4 opacity-70 shrink-0"}),ne),a(ne,()=>d.label),a(U,()=>P()[d.id]),E(C=>{var D=`${v()*50}ms`,te=n()===d.id;return D!==C.e&&me(V,"animation-delay",C.e=D),te!==C.t&&V.classList.toggle("active",C.t=te),C},{e:void 0,t:void 0}),V})()})),a($n,()=>z().find(d=>d.id===n())?.label),a(Y,r(m,{get when(){return ee(n())||Ae(n())&&n()!=="brand"},get children(){var d=Kr(),v=d.firstChild;return a(d,r(An,{class:"absolute left-2 top-1/2 -translate-y-1/2 size-3.5 text-text-weaker"}),v),v.$$input=V=>S(V.currentTarget.value),E(()=>Q(v,"placeholder",Ae(n())?"Search design inventory...":"Search assets...")),E(()=>v.value=h()),d}}),null),a(Je,r(m,{get when(){return ee(n())},get children(){return r(ce,{size:"small",variant:"secondary",onClick:()=>L(),children:"Refresh"})}}),null),a(Je,r(m,{get when(){return n()==="assets"},get children(){return r(ce,{size:"small",variant:"secondary",onClick:yn,get disabled(){return Ce()},get children(){return[r(gt,{class:"size-3.5 mr-1.5"}),G(()=>Ce()?"Generating...":"Generate")]}})}}),null),a(Je,r(m,{get when(){return n()==="brand"},get children(){return r(ce,{size:"small",variant:"secondary",onClick:()=>void ke(),children:"Refresh snapshot"})}}),null),a(Je,r(m,{get when(){return n()!=="brand"},get children(){return r(ce,{size:"small",variant:"primary",onClick:_t,get children(){return[r(jn,{class:"size-3.5 mr-1.5"}),"Add"," ",G(()=>G(()=>!!ee(n()))()?"Asset":G(()=>n()==="type")()?"Font":G(()=>n()==="colors")()?"Palette":G(()=>n()==="icons")()?"Icon":n().slice(0,-1))]}})}}),null),a(Ct,r(m,{get when(){return G(()=>!!Ge())()&&!Me()},get children(){var d=Wr(),v=d.firstChild;return a(d,r(De,{class:"size-3.5 text-text-weaker"}),v),a(v,wt),d}}),qe),a(qe,r(m,{get when(){return G(()=>n()==="brand")()&&le()||ee(n())&&W().length>0||Ae(n())&&n()!=="brand"&&W().length>0||n()==="components"&&we().length>0||n()==="tokens"&&Le().length>0},get fallback(){return r(m,{get when(){return!Me()},get fallback(){return r(Pa,{get label(){return wt()}})},get children(){var d=ta(),v=d.firstChild,V=v.nextSibling,N=V.firstChild,ne=N.firstChild,U=ne.nextSibling;U.nextSibling;var C=N.nextSibling;return a(v,()=>{const D=z().find(te=>te.id===n())?.icon;return r(D,{class:"size-8"})}),a(N,n,U),a(C,()=>n()==="brand"&&"Seed defaults or open a project with Trellis initialized to create a project brand.",null),a(C,()=>n()==="icons"&&"Enable icons from the Lucide or custom catalog for this project.",null),a(C,()=>n()==="colors"&&"Create palettes with semantic roles like primary, surface, and accent.",null),a(C,()=>n()==="type"&&"Add fonts from the curated catalog to build your project type system.",null),a(C,()=>n()==="assets"&&"Images and visual media in .trellis/media will appear here.",null),a(C,()=>n()==="videos"&&"Upload MP4, MOV, WebM, and other video files for your project.",null),a(C,()=>n()==="documents"&&"Upload PDFs, Word docs, spreadsheets, and presentations.",null),a(C,()=>n()==="links"&&"Save bookmarks and external URLs as reusable Trellis assets.",null),a(C,()=>n()==="models"&&"Upload GLB, GLTF, OBJ, HDR, and other 3D or texture files.",null),a(C,()=>n()==="audio"&&"Upload MP3, WAV, and other audio files for your project.",null),a(C,()=>n()==="sprites"&&"Upload atlas PNGs to .trellis/media/sprites. Graph-backed regions and animations are defined in specs/sprite-atlas-graph.md.",null),a(C,()=>n()==="components"&&"Components defined in your project will appear here.",null),a(C,()=>n()==="tokens"&&"Centralize your styling with theme-aware tokens.",null),a(d,r(m,{get when(){return G(()=>!!(ee(n())||Ae(n())&&n()!=="brand"||n()==="components"||n()==="tokens"))()&&n()!=="brand"},get children(){return r(ce,{variant:"secondary",class:"mt-2",onClick:_t,get children(){return["Add your first"," ",G(()=>G(()=>!!ee(n()))()?"asset":G(()=>n()==="type")()?"font":G(()=>n()==="colors")()?"palette":G(()=>n()==="icons")()?"icon":n().slice(0,-1))]}})}}),null),d}})},get children(){return[r(m,{get when(){return G(()=>n()==="brand")()&&le()},children:d=>r(Pr,{get snapshot(){return d()},get logoUrl(){return G(()=>!!d().logoPath)()?$t(d().logoPath):void 0},get uploadingLogo(){return Ue()},get savingSemantics(){return Xe()},get savingBrand(){return Ze()},onUploadLogo:dn,onSaveSemantics:un,onSaveName:gn,onSaveSwatch:fn,onSaveFontFamily:pn})}),r(m,{get when(){return ee(n())},get children(){var d=Hr();return a(d,r(ge,{get each(){return $e()},children:(v,V)=>(()=>{var N=ra(),ne=N.firstChild,U=ne.nextSibling;return N.$$click=()=>M(v),a(ne,r(Ea,{asset:v,load:et})),a(U,r(m,{get when(){return G(()=>v.category==="link")()&&v.url},get fallback(){return(()=>{var C=aa();return a(C,()=>Ve(v)),E(()=>Q(C,"title",Ve(v))),C})()},children:C=>(()=>{var D=ia();return a(D,r(za,{get url(){return C()},get title(){return Ve(v)},load:et})),D})()}),null),a(U,r(m,{get when(){return on(v)},children:C=>(()=>{var D=la();return a(D,C),E(()=>Q(D,"title",C())),D})()}),null),a(U,r(m,{get when(){return v.category!=="link"},get children(){var C=na(),D=C.firstChild,te=D.nextSibling;return a(D,()=>v.ext.toUpperCase()),a(te,()=>xt(v.size)),C}}),null),E(C=>{var D=`${V()*30}ms`,te=O()?.path===v.path;return D!==C.e&&me(N,"animation-delay",C.e=D),te!==C.t&&N.classList.toggle("selected",C.t=te),C},{e:void 0,t:void 0}),N})()})),d}}),r(m,{get when(){return n()==="icons"},get children(){var d=Yr();return a(d,r(ge,{get each(){return $e()},children:(v,V)=>(()=>{var N=sa(),ne=N.firstChild,U=ne.nextSibling,C=U.nextSibling;return a(ne,r(dt,{type:"Icon",get icon(){return String(p(q(),v.id,"catalogRef")??p(q(),v.id,"key")??"thing")},size:28})),a(U,()=>String(p(q(),v.id,"key")??v.id)),a(C,()=>String(p(q(),v.id,"library")??"lucide")),a(N,r(Ke,{icon:"trash",variant:"ghost",class:"icon-grid-delete opacity-0 group-hover:opacity-100",onClick:()=>void St(v.id),"aria-label":"Delete icon"}),null),E(D=>{var te=`${V()*25}ms`,Z=String(p(q(),v.id,"key")??v.id);return te!==D.e&&me(N,"animation-delay",D.e=te),Z!==D.t&&Q(U,"title",D.t=Z),D},{e:void 0,t:void 0}),N})()})),d}}),r(m,{get when(){return G(()=>!!(Ae(n())&&n()!=="brand"))()&&n()!=="icons"||n()==="components"||n()==="tokens"},get children(){var d=Qr();return a(d,r(ge,{get each(){return $e()},children:(v,V)=>(()=>{var N=da(),ne=N.firstChild,U=ne.firstChild,C=U.nextSibling,D=C.firstChild,te=D.nextSibling;return a(U,r(m,{get when(){return n()==="icons"},get fallback(){return r(m,{get when(){return n()==="colors"},get fallback(){return r(m,{get when(){return n()==="type"},get fallback(){return r(Yt,{class:"size-4"})},get children(){return r(Ht,{class:"size-4"})}})},get children(){return r(gt,{class:"size-4"})}})},get children(){return r(dt,{type:"Icon",get icon(){return String(p(q(),v.id,"catalogRef")??p(q(),v.id,"key")??"thing")},size:16})}})),a(D,r(m,{get when(){return n()==="icons"},get fallback(){return r(m,{get when(){return n()==="colors"},get fallback(){return r(m,{get when(){return n()==="type"},get fallback(){return q().find(Z=>Z.e===v.id&&Z.a==="label")?.v},get children(){return String(p(q(),v.id,"family")??v.id)}})},get children(){return String(p(q(),v.id,"name")??v.id)}})},get children(){return[G(()=>String(p(q(),v.id,"key")??v.id)),(()=>{var Z=oa();return Z.firstChild,a(Z,()=>String(p(q(),v.id,"library")??"lucide"),null),Z})()]}})),a(te,()=>v.id),a(C,r(m,{get when(){return n()==="colors"},get children(){var Z=ca();return a(Z,r(ge,{get each(){return Object.values(se(p(q(),v.id,"swatches"),{})).slice(0,6)},children:rt=>(()=>{var Pe=ua();return me(Pe,"background-color",rt),Pe})()})),Z}}),null),a(N,r(Ke,{icon:"trash-2",variant:"ghost",size:"small",class:"opacity-0 group-hover:opacity-100 transition-opacity text-text-destructive",onClick:()=>St(v.id)}),null),E(Z=>me(N,"animation-delay",`${V()*20}ms`)),N})()})),d}}),r(m,{get when(){return Ne()>0},get children(){var d=Xr();return a(d,r(ce,{variant:"secondary",onClick:()=>ye(v=>v+Ee),get children(){return["Show ",G(()=>Math.min(Ee,Ne()))," more"]}})),d}})]}})),a(i,r(m,{get when(){return O()},children:d=>r(m,{get when(){return G(()=>!!ee(n()))()&&ot(n(),d())},get children(){var v=$a(),V=v.firstChild;V.firstChild;var N=V.nextSibling,ne=N.firstChild,U=ne.nextSibling,C=U.firstChild,D=C.firstChild,te=D.nextSibling,Z=C.nextSibling,rt=Z.firstChild,Pe=rt.nextSibling,Lt=Z.nextSibling,kn=Lt.firstChild,Ft=kn.nextSibling,Tt=Lt.nextSibling,at=Tt.firstChild;at.firstChild;var zt=at.nextSibling,ue=Tt.nextSibling,Pt=ue.firstChild,_n=Pt.firstChild,Sn=_n.nextSibling,Cn=Pt.nextSibling,In=Cn.firstChild,Ln=In.nextSibling,Fn=N.nextSibling;return a(V,r(Ke,{icon:"plus",variant:"ghost",size:"small",class:"rotate-45",onClick:()=>M(null)}),null),a(ne,r(m,{get when(){return d().category==="image"},get fallback(){return r(m,{get when(){return d().category==="audio"},get fallback(){return r(m,{get when(){return d().category==="link"},get fallback(){return(()=>{var _=_a(),K=_.firstChild;return a(_,r(m,{get when(){return d().category==="model3d"||d().category==="texture"},get fallback(){return r(m,{get when(){return d().category==="video"},get fallback(){return r(m,{get when(){return d().category==="document"},get fallback(){return r(Qt,{class:"size-12"})},get children(){return r(mt,{class:"size-12"})}})},get children(){return r(bt,{class:"size-12"})}})},get children(){return r(pt,{class:"size-12"})}}),K),a(K,()=>d().ext),_})()},get children(){return r(m,{get when(){return d().url},keyed:!0,children:_=>r(ln,{url:_,get title(){return Ve(d())},get previewImage(){return d().previewImage},get previewFavicon(){return d().previewFavicon},load:et})})}})},get children(){var _=ka();return E(()=>Q(_,"src",$t(d().path))),_}})},get children(){return r(an,{get path(){return d().path},get name(){return d().name},class:"size-full object-contain"})}})),a(D,()=>d().category==="link"?"Asset ID":"File Name"),a(te,()=>d().name),a(U,r(m,{get when(){return d().url},get children(){var _=ga(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().url),E(()=>Q(H,"href",d().url)),_}}),Z),Pe.addEventListener("blur",_=>nt({title:_.currentTarget.value})),Ft.addEventListener("blur",_=>nt({alt:_.currentTarget.value})),a(at,r(Ke,{icon:"palette",variant:"ghost",size:"small",onClick:vn,get disabled(){return pe()||Be()}}),null),zt.addEventListener("blur",_=>nt({description:_.currentTarget.value})),a(U,r(m,{get when(){return d().palette?.length},get children(){var _=fa(),K=_.firstChild,H=K.nextSibling;return a(H,r(ge,{get each(){return d().palette},children:Et=>(()=>{var it=Sa(),At=it.firstChild;return a(it,r(m,{get when(){return cn(Et)},children:Tn=>(()=>{var jt=Ca();return E(Da=>me(jt,"background-color",Tn())),jt})()}),At),a(At,Et),it})()})),_}}),ue),a(U,r(m,{get when(){return d().tone},get children(){var _=pa(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().tone),_}}),ue),a(U,r(m,{get when(){return d().tags?.length},get children(){var _=ba(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().tags?.join(", ")),_}}),ue),a(U,r(m,{get when(){return G(()=>d().category==="audio")()&&(d().audioContentType||d().kind)},get children(){var _=ma(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().audioContentType||d().kind),_}}),ue),a(U,r(m,{get when(){return d().audioAnalysis?.bpm},get children(){var _=va(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().audioAnalysis?.bpm),_}}),ue),a(U,r(m,{get when(){return d().audioAnalysis?.key},get children(){var _=ha(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().audioAnalysis?.key),_}}),ue),a(U,r(m,{get when(){return d().audioAnalysis?.genre?.length},get children(){var _=ya(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().audioAnalysis?.genre?.join(", ")),_}}),ue),a(U,r(m,{get when(){return d().audioAnalysis?.mood?.length},get children(){var _=wa(),K=_.firstChild,H=K.nextSibling;return a(H,()=>d().audioAnalysis?.mood?.join(", ")),_}}),ue),a(U,r(m,{get when(){return d().transcript},get children(){var _=xa(),K=_.firstChild,H=K.nextSibling;return E(()=>H.value=d().transcript||""),_}}),ue),a(Sn,()=>xt(d().size)),a(Ln,()=>d().ext),a(Fn,r(ce,{variant:"secondary",class:"w-full text-text-destructive hover:bg-red-500/10",onClick:async()=>{confirm("Delete this asset?")&&(await t.fetch(`${t.url}/file/delete?directory=${encodeURIComponent(t.directory)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:d().path})}),M(null),y(_=>_.filter(K=>K.path!==d().path)),await L())},children:"Delete Asset"})),E(()=>Pe.value=d().title||""),E(()=>Ft.value=d().alt||""),E(()=>zt.value=d().description||""),v}})}),null),a(i,r(Vn,{get open(){return u()},value:"",color:"#818cf8",type:"Icon",onClose:()=>T(!1),onSelect:async d=>{T(!1);const v=tr(d);if(!v)return;const V=await o.assert(v);V&&await w(),R(V?{title:"Icon added"}:{variant:"error",title:"Failed to add icon"})}}),null),E(d=>{var v=n()!=="brand",V=n()==="brand";return v!==d.e&&qe.classList.toggle("max-w-5xl",d.e=v),V!==d.t&&qe.classList.toggle("max-w-[72rem]",d.t=V),d},{e:void 0,t:void 0}),i})()}function Ma(){return r(Kt,{get children(){return r(sn,{panel:"assets"})}})}function Va(){return r(Kt,{get children(){return r(sn,{panel:"design"})}})}Qe(["input","click"]);export{Ma as AssetsPanel,Va as DesignPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.brand-bento{--brand-bento-gap: .875rem;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--brand-bento-gap);padding:1.25rem 1.5rem 2rem;max-width:72rem;margin:0 auto}.brand-bento-cell{border-radius:1rem;border:1px solid color-mix(in oklab,var(--border-weaker-base) 85%,transparent);background:var(--surface-raised-base);padding:1rem 1.125rem;overflow:hidden}.brand-bento-pair{grid-column:1 / -1;display:grid;gap:var(--brand-bento-gap);align-items:stretch}.brand-bento-pair--logo-voice{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.brand-bento-pair--type-icons{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.brand-bento-pair>.brand-bento-cell{display:flex;flex-direction:column;min-height:100%;margin:0}.brand-bento-hero{grid-column:1 / -1;padding:1.25rem 1.5rem;min-height:auto}.brand-bento-eyebrow{margin:0 0 .35rem;font-size:.625rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-weaker)}.brand-bento-title-input{display:block;width:100%;max-width:28rem;margin:0;padding:.125rem 0;border:none;border-radius:.375rem;background:transparent;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--text-strong);outline:none}.brand-bento-title-input:hover:not(:disabled){background:color-mix(in oklab,var(--background-base) 40%,transparent)}.brand-bento-title-input:focus{background:color-mix(in oklab,var(--background-base) 55%,transparent);box-shadow:0 0 0 1px var(--border-weaker-base)}.brand-bento-title-input:disabled{opacity:.7;cursor:wait}.brand-bento-logo,.brand-bento-voice{min-height:14rem}.brand-bento-pair--type-icons{align-items:stretch}.brand-bento-type,.brand-bento-icons{min-height:18rem}.brand-bento-palette{grid-column:1 / -1;padding-bottom:1rem}.brand-bento-palette .brand-palette-strip{min-height:10rem}.brand-bento-icons .brand-icon-grid{flex:1;min-height:0;align-content:start;grid-template-columns:repeat(4,minmax(0,1fr))}.brand-bento-cell-head{display:flex;align-items:center;gap:.375rem;margin-bottom:.75rem;flex-shrink:0}.brand-bento-cell-head--stacked{flex-wrap:wrap;justify-content:space-between;row-gap:.5rem}.brand-bento-cell-title{font-size:.625rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-weaker)}.brand-bento-cell-hint{margin-left:auto;font-size:.625rem;color:var(--text-weaker);opacity:.85}.brand-bento-muted{margin:0;font-size:.75rem;line-height:1.45;color:var(--text-weaker)}.brand-field-label{display:block;margin:0 0 .375rem;font-size:.625rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-weaker)}.brand-field-label:not(:first-child){margin-top:.875rem}.brand-logo-drop{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:.75rem;border:1px dashed color-mix(in oklab,var(--border-base) 70%,transparent);background:color-mix(in oklab,var(--background-base) 65%,transparent);cursor:pointer;transition:border-color .2s ease,background .2s ease;overflow:hidden}.brand-logo-drop:hover:not(:disabled){border-color:var(--border-base);background:color-mix(in oklab,var(--background-base) 80%,transparent)}.brand-logo-drop:disabled{cursor:wait;opacity:.85}.brand-logo-image{max-width:85%;max-height:8.5rem;object-fit:contain}.brand-logo-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;font-size:.75rem;color:var(--text-weaker);text-align:center}.brand-logo-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:color-mix(in oklab,var(--background-base) 55%,transparent);color:var(--text-strong);opacity:0;transition:opacity .2s ease}.brand-logo-drop:hover .brand-logo-overlay,.brand-logo-drop:focus-visible .brand-logo-overlay{opacity:1}.brand-voice-editor{display:flex;flex-direction:column;flex:1;min-height:0}.brand-voice-textarea{width:100%;min-height:5.5rem;padding:.625rem .75rem;border-radius:.5rem;border:1px solid var(--border-weaker-base);background:var(--background-base);font-size:.8125rem;line-height:1.5;color:var(--text-base);resize:vertical}.brand-voice-textarea:focus{outline:none;border-color:var(--border-base);box-shadow:0 0 0 1px var(--border-base)}.brand-tag-field{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;min-height:2.25rem;padding:.375rem .5rem;border-radius:.5rem;border:1px solid var(--border-weaker-base);background:var(--background-base);cursor:text}.brand-tag-field--disabled{opacity:.7;pointer-events:none}.brand-voice-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .375rem .125rem .5rem;border-radius:9999px;font-size:.6875rem;border:1px solid var(--border-weaker-base);background:var(--surface-raised-base);color:var(--text-base)}.brand-voice-tag-remove{display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:var(--text-weaker);cursor:pointer;border-radius:9999px}.brand-voice-tag-remove:hover{color:var(--text-strong)}.brand-tag-input{flex:1 1 6rem;min-width:5rem;border:none;background:transparent;font-size:.8125rem;color:var(--text-base);outline:none}.brand-tag-input::placeholder{color:var(--text-weaker)}.brand-palette-strip{display:flex;flex:1;min-height:0;gap:.375rem;align-items:stretch}.brand-palette-bar{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 .25rem .875rem;border-radius:.625rem;border:1px solid color-mix(in oklab,var(--border-base) 20%,transparent);cursor:pointer;text-align:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.brand-palette-bar:hover:not(:disabled){transform:translateY(-2px);border-color:color-mix(in oklab,var(--border-base) 45%,transparent);box-shadow:0 6px 16px color-mix(in oklab,#000 25%,transparent)}.brand-palette-bar:focus-visible{outline:2px solid var(--border-base);outline-offset:2px}.brand-palette-bar:disabled{opacity:.65;cursor:wait}.brand-palette-bar-label{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100%;min-width:0}.brand-palette-bar-hex{font-size:clamp(.625rem,1.1vw,.8125rem);font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums;line-height:1.1;word-break:break-all}.brand-palette-bar-role{font-size:clamp(.5rem,.9vw,.625rem);font-weight:500;text-transform:capitalize;opacity:.92;line-height:1.2}.brand-font-select-wrap{margin-left:auto}.brand-font-select{min-width:8rem;padding:.25rem 1.75rem .25rem .5rem;border-radius:.375rem;border:1px solid var(--border-weaker-base);background:var(--background-base);font-size:.75rem;color:var(--text-base);cursor:pointer}.brand-font-select:focus{outline:none;border-color:var(--border-base);box-shadow:0 0 0 1px var(--border-base)}.brand-font-select:disabled{opacity:.65;cursor:wait}.brand-type-stack{display:flex;flex-direction:column;justify-content:space-between;gap:.75rem;flex:1;min-height:0}.brand-type-specimen-label{font-size:.5625rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-weaker);margin-bottom:.25rem}.brand-type-specimen-sample{font-size:.875rem;line-height:1.35;color:var(--text-strong);word-break:break-word}.brand-type-specimen-sample--lg{font-size:2rem;line-height:1;letter-spacing:-.04em}.brand-icon-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem}.brand-icon-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;padding:.75rem .5rem;border-radius:.625rem;border:1px solid var(--border-weaker-base);background:color-mix(in oklab,var(--background-base) 55%,transparent)}.brand-icon-name{font-size:.5625rem;color:var(--text-weaker);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-icon-empty{grid-column:1 / -1;padding:1rem;text-align:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1023px){.brand-bento{grid-template-columns:repeat(6,minmax(0,1fr));padding:1rem}.brand-bento-pair--logo-voice,.brand-bento-pair--type-icons{grid-template-columns:1fr}.brand-bento-logo,.brand-bento-voice,.brand-bento-type,.brand-bento-icons,.brand-bento-palette{min-height:auto}.brand-bento-icons .brand-icon-grid,.brand-icon-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:639px){.brand-icon-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){.brand-logo-drop,.brand-logo-overlay,.brand-palette-bar{transition:none}}.detail-sidebar{animation:slideInRight .3s cubic-bezier(.22,1,.36,1)}@keyframes freshHighlight{0%{background-color:#10b98140}60%{background-color:#10b98126}to{background-color:#10b9810d}}@keyframes fadeOut{0%,70%{opacity:1}to{opacity:0}}.animate-fresh-highlight{animation:freshHighlight 6s ease-out forwards}.animate-fade-out{animation:fadeOut 6s ease-out forwards}@keyframes cellAddHighlight{0%{background-color:#22c55e59}60%{background-color:#22c55e33}to{background-color:#22c55e0d}}@keyframes cellUpdateHighlight{0%{background-color:#eab30859}60%{background-color:#eab30833}to{background-color:#eab3080d}}@keyframes cellDeleteHighlight{0%{background-color:#ef444459}60%{background-color:#ef444433}to{background-color:#ef44440d}}.animate-cell-add{animation:cellAddHighlight 3s ease-out forwards}.animate-cell-update{animation:cellUpdateHighlight 3s ease-out forwards}.animate-cell-delete{animation:cellDeleteHighlight 3s ease-out forwards}.hover-card{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.hover-card:hover{transform:translateY(-4px) scale(1.02);border-color:var(--border-base);box-shadow:0 10px 20px -5px #0003;z-index:10}@media(prefers-reduced-motion:reduce){.stagger-item,.section-content-enter,.detail-sidebar,.animate-fresh-highlight,.animate-fade-out,.animate-cell-add,.animate-cell-update,.animate-cell-delete{animation:none!important;transition:none!important;transform:none!important}.animate-fresh-highlight{background-color:#10b9811a!important}.animate-fade-out{opacity:1!important}.animate-cell-add{background-color:#22c55e1a!important}.animate-cell-update{background-color:#eab3081a!important}.animate-cell-delete{background-color:#ef44441a!important}.hover-card{transition:none!important}.hover-card:hover{transform:none!important}}.design-panel{display:flex;height:100%;width:100%;overflow:hidden;background-color:transparent}.design-sidebar{width:13rem;flex-shrink:0;border-right:1px solid var(--border-weaker-base);display:flex;flex-direction:column;background-color:transparent}.design-section-btn{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.375rem .625rem;border-radius:.375rem;font-size:.8125rem;transition:all .15s ease;text-align:left;width:100%;color:var(--text-weak)}.design-section-label{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.design-section-count{flex-shrink:0;padding:.0625rem .375rem;border-radius:9999px;font-size:.625rem;font-variant-numeric:tabular-nums;background-color:var(--surface-raised-base);color:var(--text-weaker)}.design-section-btn.active .design-section-count{background-color:color-mix(in oklab,var(--text-strong) 12%,transparent);color:var(--text-weak)}.design-section-btn:hover{background-color:var(--surface-raised-base);color:var(--text-base)}.design-section-btn.active{background-color:var(--surface-raised-base);color:var(--text-strong);font-weight:500}.design-content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.design-header{height:2.5rem;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border-weaker-base);flex-shrink:0;background-color:transparent}.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.5rem;padding:1.5rem}.design-loading-strip{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:.5rem;height:2rem;padding:0 1rem;border-bottom:1px solid var(--border-weaker-base);background:color-mix(in oklab,var(--background-base) 92%,transparent);color:var(--text-weaker);font-size:.75rem}.design-loading-state{min-height:18rem;display:flex;align-items:center;justify-content:center;gap:.625rem;color:var(--text-weaker);font-size:.8125rem}.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.75rem;padding:1.5rem}.icon-grid-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.875rem .625rem .75rem;border-radius:.75rem;border:1px solid var(--border-weaker-base);background-color:var(--surface-raised-base);transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.icon-grid-card:hover{border-color:var(--border-base);transform:translateY(-2px);box-shadow:0 8px 16px -8px #00000040}.icon-grid-preview{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:.5rem;background-color:var(--background-base);border:1px solid var(--border-weaker-base);color:var(--text-base)}.icon-grid-label{width:100%;text-align:center;font-size:.8125rem;font-weight:500;color:var(--text-base)}.icon-grid-meta{width:100%;text-align:center;font-size:.6875rem;color:var(--text-weaker)}.icon-grid-delete{position:absolute;top:.375rem;right:.375rem;transition:opacity .15s ease}.asset-card{position:relative;display:flex;flex-direction:column;background-color:var(--surface-raised-base);border-radius:.75rem;border:1px solid var(--border-weaker-base);overflow:hidden;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1)}.asset-card:hover{transform:translateY(-4px) scale(1.02);border-color:var(--border-base);box-shadow:0 10px 20px -5px #0003;z-index:10}.asset-card.selected{ring:2px solid var(--primary-base);border-color:transparent}.asset-preview{aspect-ratio:1;width:100%;background-color:var(--background-base);display:flex;align-items:center;justify-content:center;overflow:hidden}.link-asset-preview{position:relative;width:100%;height:100%;background:linear-gradient(180deg,color-mix(in oklab,var(--surface-raised-base) 80%,transparent),var(--background-base))}.link-asset-preview-image{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s ease}.group:hover .link-asset-preview-image{transform:scale(1.03)}.link-asset-preview-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:100%;height:100%;padding:.75rem;color:var(--text-weaker)}.link-asset-preview-favicon{width:2.5rem;height:2.5rem;border-radius:.375rem;object-fit:contain;background-color:var(--background-base)}.link-asset-preview-loading{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;background-color:color-mix(in oklab,var(--background-base) 72%,transparent)}.asset-info{padding:.75rem}.detail-sidebar{width:20rem;flex-shrink:0;border-left:1px solid var(--border-weaker-base);background-color:var(--surface-base);display:flex;flex-direction:column;animation:slideInRight .3s cubic-bezier(.22,1,.36,1)}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.section-content-enter{animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stagger-item{animation:fadeInStagger .4s cubic-bezier(.22,1,.36,1) both}@keyframes fadeInStagger{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.stagger-item,.section-content-enter,.detail-sidebar,.link-asset-preview-image{animation:none!important;transition:none!important;transform:none!important}}@media(max-width:1023px){.design-panel{flex-direction:column}.design-sidebar{width:100%;border-right:0;border-bottom:1px solid var(--border-weaker-base)}.design-sidebar-items{flex-direction:row;overflow-x:auto;overflow-y:hidden}.design-section-btn{width:auto;flex:0 0 auto;font-size:.6875rem;padding:.375rem .5rem}.design-header{height:auto;min-height:2.5rem;align-items:flex-start;gap:.5rem;flex-wrap:wrap;padding:.5rem}.design-header input{width:min(12rem,calc(100vw - 4rem))}.asset-grid,.icon-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.5rem;padding:.75rem}.detail-sidebar{width:100%;max-height:45%;border-left:0;border-top:1px solid var(--border-weaker-base)}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as w,E as ee,G as te,I as de,d as he,l as J,aV as P,b as pe,a as ue,p as fe,q as me,g as ge,s as ye,F as Se,aW as ve,y as xe}from"./mermaid.core-A5qPJp89.js";import{s as be}from"./chunk-KX2RTZJC-D2iD22zX.js";import{p as we}from"./chunk-4BX2VUAB-C2qzI0O4.js";import{p as Ce}from"./treemap-KZPCXAKY-BbdOpBUG.js";import{s as Y}from"./transform-BwXaE9hv.js";import{b as H}from"./defaultLocale-DX6XiGOO.js";import{o as Z}from"./ordinal-Cboi1Yqb.js";import"./index-DNqzOxQM.js";import"./_baseUniq-BHwt5rYB.js";import"./_basePickBy-DRtwLXA1.js";import"./clone-XxsBxEOa.js";import"./init-Gi6I4Gst.js";function Te(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function Le(){return this.eachAfter(Te)}function $e(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Ae(e,a){for(var n=this,l=[n],o,i,d=-1;n=l.pop();)if(e.call(a,n,++d,this),o=n.children)for(i=o.length-1;i>=0;--i)l.push(o[i]);return this}function Fe(e,a){for(var n=this,l=[n],o=[],i,d,h,m=-1;n=l.pop();)if(o.push(n),i=n.children)for(d=0,h=i.length;d<h;++d)l.push(i[d]);for(;n=o.pop();)e.call(a,n,++m,this);return this}function ke(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ne(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,o=l&&l.length;--o>=0;)n+=l[o].value;a.value=n})}function Me(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function _e(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var o=l.length;e!==n;)l.splice(o,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),o=null;for(e=n.pop(),a=l.pop();e===a;)o=e,e=n.pop(),a=l.pop();return o}function Ve(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function De(){return Array.from(this)}function Pe(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Be(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ee(){var e=this,a,n=[e],l,o,i;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(o=0,i=l.length;o<i;++o)n.push(l[o]);while(n.length)}function K(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=We);for(var n=new j(e),l,o=[n],i,d,h,m;l=o.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)o.push(i=d[h]=new j(d[h])),i.parent=l,i.depth=l.depth+1;return n.eachBefore(Oe)}function Re(){return K(this).eachBefore(He)}function We(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function He(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Oe(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=K.prototype={constructor:j,count:Le,each:$e,eachAfter:Fe,eachBefore:Ae,find:ke,sum:Ne,sort:Me,path:_e,ancestors:Ve,descendants:De,leaves:Pe,links:Be,copy:Re,[Symbol.iterator]:Ee};function Ge(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function qe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Xe(e,a,n,l,o){for(var i=e.children,d,h=-1,m=i.length,c=e.value&&(l-a)/e.value;++h<m;)d=i[h],d.y0=n,d.y1=o,d.x0=a,d.x1=a+=d.value*c}function Ye(e,a,n,l,o){for(var i=e.children,d,h=-1,m=i.length,c=e.value&&(o-n)/e.value;++h<m;)d=i[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var je=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,o,i){for(var d=[],h=a.children,m,c,p=0,b=0,r=h.length,x,S,v=a.value,u,g,N,k,V,E,M;p<r;){x=o-n,S=i-l;do u=h[b++].value;while(!u&&b<r);for(g=N=u,E=Math.max(S/x,x/S)/(v*e),M=u*u*E,V=Math.max(N/M,M/g);b<r;++b){if(u+=c=h[b].value,c<g&&(g=c),c>N&&(N=c),M=u*u*E,k=Math.max(N/M,M/g),k>V){u-=c;break}V=k}d.push(m={value:u,dice:x<S,children:h.slice(p,b)}),m.dice?Xe(m,n,l,o,v?l+=S*u/v:i):Ye(m,n,l,v?n+=x*u/v:o,i),v-=u,p=b}return d}const Ze=(function e(a){function n(l,o,i,d,h){Ue(a,l,o,i,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(je);function Je(){var e=Ze,a=!1,n=1,l=1,o=[0],i=O,d=O,h=O,m=O,c=O;function p(r){return r.x0=r.y0=0,r.x1=n,r.y1=l,r.eachBefore(b),o=[0],a&&r.eachBefore(qe),r}function b(r){var x=o[r.depth],S=r.x0+x,v=r.y0+x,u=r.x1-x,g=r.y1-x;u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),r.x0=S,r.y0=v,r.x1=u,r.y1=g,r.children&&(x=o[r.depth+1]=i(r)/2,S+=c(r)-x,v+=d(r)-x,u-=h(r)-x,g-=m(r)-x,u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),e(r,S,v,u,g))}return p.round=function(r){return arguments.length?(a=!!r,p):a},p.size=function(r){return arguments.length?(n=+r[0],l=+r[1],p):[n,l]},p.tile=function(r){return arguments.length?(e=Ge(r),p):e},p.padding=function(r){return arguments.length?p.paddingInner(r).paddingOuter(r):p.paddingInner()},p.paddingInner=function(r){return arguments.length?(i=typeof r=="function"?r:G(+r),p):i},p.paddingOuter=function(r){return arguments.length?p.paddingTop(r).paddingRight(r).paddingBottom(r).paddingLeft(r):p.paddingTop()},p.paddingTop=function(r){return arguments.length?(d=typeof r=="function"?r:G(+r),p):d},p.paddingRight=function(r){return arguments.length?(h=typeof r=="function"?r:G(+r),p):h},p.paddingBottom=function(r){return arguments.length?(m=typeof r=="function"?r:G(+r),p):m},p.paddingLeft=function(r){return arguments.length?(c=typeof r=="function"?r:G(+r),p):c},p}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=pe,this.getAccTitle=ue,this.setDiagramTitle=fe,this.getDiagramTitle=me,this.getAccDescription=ge,this.setAccDescription=ye}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=Se,a=te();return ee({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(o=>{ve(o)&&(n?.textStyles?n.textStyles.push(o):n.textStyles=[o]),n?.styles?n.styles.push(o):n.styles=[o]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){xe(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const o={name:l.name,children:l.type==="Leaf"?void 0:[]};for(o.classSelector=l?.classSelector,l?.cssCompiledStyles&&(o.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(o.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(o);else{const i=n[n.length-1].node;i.children?i.children.push(o):i.children=[o]}l.type!=="Leaf"&&n.push({node:o,level:l.level})}),a}w(ne,"buildHierarchy");var Ke=w((e,a)=>{we(e,a);const n=[];for(const i of e.TreemapRows??[])i.$type==="ClassDefStatement"&&a.addClass(i.className??"",i.styleText??"");for(const i of e.TreemapRows??[]){const d=i.item;if(!d)continue;const h=i.indent?parseInt(i.indent):0,m=Qe(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],p=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:p};n.push(b)}const l=ne(n),o=w((i,d)=>{for(const h of i)a.addNode(h,d),h.children&&h.children.length>0&&o(h.children,d+1)},"addNodesRecursively");o(l,0)},"populate"),Qe=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ce("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Ke(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},et=10,B=10,q=25,tt=w((e,a,n,l)=>{const o=l.db,i=o.getConfig(),d=i.padding??et,h=o.getDiagramTitle(),m=o.getRoot(),{themeVariables:c}=te();if(!m)return;const p=h?30:0,b=de(a),r=i.nodeWidth?i.nodeWidth*B:960,x=i.nodeHeight?i.nodeHeight*B:500,S=r,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),he(b,v,S,i.useMaxWidth);let u;try{const t=i.valueFormat||",";if(t==="$0,0")u=w(s=>"$"+H(",")(s),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const s=/\.\d+/.exec(t),f=s?s[0]:"";u=w(C=>"$"+H(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const s=t.substring(1);u=w(f=>"$"+H(s||"")(f),"valueFormat")}else u=H(t)}catch(t){J.error("Error creating format function:",t),u=H(",")}const g=Z().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=Z().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),k=Z().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),E=K(m).sum(t=>t.value??0).sort((t,s)=>(s.value??0)-(t.value??0)),Q=Je().size([r,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(E),re=Q.descendants().filter(t=>t.children&&t.children.length>0),R=V.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,s)=>`clip-section-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,s)=>`treemapSection section${s}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const s=P({cssCompiledStyles:t.data.cssCompiledStyles});return s.nodeStyles+";"+s.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const s="dominant-baseline: middle; font-size: 12px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const s=Y(this),f=t.data.name;s.text(f);const C=t.x1-t.x0,L=6;let $;i.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=s.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){s.text("..."),y.getComputedTextLength()>A&&s.text("");break}if(s.text(T+"..."),y.getComputedTextLength()<=A)break}}}),i.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const s="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")});const se=Q.leaves(),X=V.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,s)=>`treemapNode treemapLeafGroup leaf${s}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,s)=>`clip-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const s="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+k(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,s)=>`url(#clip-${a}-${s})`).text(t=>t.data.name).each(function(t){const s=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=s.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){s.style("display","none");return}let y=parseInt(s.style("font-size"),10);const _=8,F=28,T=.6,z=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,s.style("font-size",`${y}px`);let I=Math.max(z,Math.min(F,Math.round(y*T))),U=y+W+I;for(;U>A&&y>_&&(y--,I=Math.max(z,Math.min(F,Math.round(y*T))),!(I<z&&y===_));)s.style("font-size",`${y}px`),U=y+W+I;s.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&s.style("display","none")}),i.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",s=>(s.x1-s.x0)/2).attr("y",function(s){return(s.y1-s.y0)/2}).attr("style",s=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+k(s.data.name)+";",C=P({cssCompiledStyles:s.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(s,f)=>`url(#clip-${a}-${f})`).text(s=>s.value?u(s.value):"").each(function(s){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const z=(s.y1-s.y0)/2+$/2+_;f.attr("y",z);const W=s.x1-s.x0,oe=s.y1-s.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||z+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=i.diagramPadding??8;be(b,ie,"flowchart",i?.useMaxWidth||!1)},"draw"),at=w(function(e,a){return a.db.getClasses()},"getClasses"),nt={draw:tt,getClasses:at},lt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},rt=w(({treemap:e}={})=>{const a=ee(lt,e);return`
|
|
1
|
+
import{_ as w,E as ee,G as te,I as de,d as he,l as J,aV as P,b as pe,a as ue,p as fe,q as me,g as ge,s as ye,F as Se,aW as ve,y as xe}from"./mermaid.core-DekouHcR.js";import{s as be}from"./chunk-KX2RTZJC-DoPKMzaO.js";import{p as we}from"./chunk-4BX2VUAB-CzOSrGqV.js";import{p as Ce}from"./treemap-KZPCXAKY-CkeXn87D.js";import{s as Y}from"./transform-BwXaE9hv.js";import{b as H}from"./defaultLocale-DX6XiGOO.js";import{o as Z}from"./ordinal-Cboi1Yqb.js";import"./index-Cl9Gy4vs.js";import"./_baseUniq-Bh4-EzYg.js";import"./_basePickBy-Dseor5mu.js";import"./clone-CPL09VTv.js";import"./init-Gi6I4Gst.js";function Te(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function Le(){return this.eachAfter(Te)}function $e(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function Ae(e,a){for(var n=this,l=[n],o,i,d=-1;n=l.pop();)if(e.call(a,n,++d,this),o=n.children)for(i=o.length-1;i>=0;--i)l.push(o[i]);return this}function Fe(e,a){for(var n=this,l=[n],o=[],i,d,h,m=-1;n=l.pop();)if(o.push(n),i=n.children)for(d=0,h=i.length;d<h;++d)l.push(i[d]);for(;n=o.pop();)e.call(a,n,++m,this);return this}function ke(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Ne(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,o=l&&l.length;--o>=0;)n+=l[o].value;a.value=n})}function Me(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function _e(e){for(var a=this,n=ze(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var o=l.length;e!==n;)l.splice(o,0,e),e=e.parent;return l}function ze(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),o=null;for(e=n.pop(),a=l.pop();e===a;)o=e,e=n.pop(),a=l.pop();return o}function Ve(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function De(){return Array.from(this)}function Pe(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Be(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ee(){var e=this,a,n=[e],l,o,i;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(o=0,i=l.length;o<i;++o)n.push(l[o]);while(n.length)}function K(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ie)):a===void 0&&(a=We);for(var n=new j(e),l,o=[n],i,d,h,m;l=o.pop();)if((d=a(l.data))&&(m=(d=Array.from(d)).length))for(l.children=d,h=m-1;h>=0;--h)o.push(i=d[h]=new j(d[h])),i.parent=l,i.depth=l.depth+1;return n.eachBefore(Oe)}function Re(){return K(this).eachBefore(He)}function We(e){return e.children}function Ie(e){return Array.isArray(e)?e[1]:null}function He(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Oe(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function j(e){this.data=e,this.depth=this.height=0,this.parent=null}j.prototype=K.prototype={constructor:j,count:Le,each:$e,eachAfter:Fe,eachBefore:Ae,find:ke,sum:Ne,sort:Me,path:_e,ancestors:Ve,descendants:De,leaves:Pe,links:Be,copy:Re,[Symbol.iterator]:Ee};function Ge(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function qe(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Xe(e,a,n,l,o){for(var i=e.children,d,h=-1,m=i.length,c=e.value&&(l-a)/e.value;++h<m;)d=i[h],d.y0=n,d.y1=o,d.x0=a,d.x1=a+=d.value*c}function Ye(e,a,n,l,o){for(var i=e.children,d,h=-1,m=i.length,c=e.value&&(o-n)/e.value;++h<m;)d=i[h],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}var je=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,o,i){for(var d=[],h=a.children,m,c,p=0,b=0,r=h.length,x,S,v=a.value,u,g,N,k,V,E,M;p<r;){x=o-n,S=i-l;do u=h[b++].value;while(!u&&b<r);for(g=N=u,E=Math.max(S/x,x/S)/(v*e),M=u*u*E,V=Math.max(N/M,M/g);b<r;++b){if(u+=c=h[b].value,c<g&&(g=c),c>N&&(N=c),M=u*u*E,k=Math.max(N/M,M/g),k>V){u-=c;break}V=k}d.push(m={value:u,dice:x<S,children:h.slice(p,b)}),m.dice?Xe(m,n,l,o,v?l+=S*u/v:i):Ye(m,n,l,v?n+=x*u/v:o,i),v-=u,p=b}return d}const Ze=(function e(a){function n(l,o,i,d,h){Ue(a,l,o,i,d,h)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(je);function Je(){var e=Ze,a=!1,n=1,l=1,o=[0],i=O,d=O,h=O,m=O,c=O;function p(r){return r.x0=r.y0=0,r.x1=n,r.y1=l,r.eachBefore(b),o=[0],a&&r.eachBefore(qe),r}function b(r){var x=o[r.depth],S=r.x0+x,v=r.y0+x,u=r.x1-x,g=r.y1-x;u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),r.x0=S,r.y0=v,r.x1=u,r.y1=g,r.children&&(x=o[r.depth+1]=i(r)/2,S+=c(r)-x,v+=d(r)-x,u-=h(r)-x,g-=m(r)-x,u<S&&(S=u=(S+u)/2),g<v&&(v=g=(v+g)/2),e(r,S,v,u,g))}return p.round=function(r){return arguments.length?(a=!!r,p):a},p.size=function(r){return arguments.length?(n=+r[0],l=+r[1],p):[n,l]},p.tile=function(r){return arguments.length?(e=Ge(r),p):e},p.padding=function(r){return arguments.length?p.paddingInner(r).paddingOuter(r):p.paddingInner()},p.paddingInner=function(r){return arguments.length?(i=typeof r=="function"?r:G(+r),p):i},p.paddingOuter=function(r){return arguments.length?p.paddingTop(r).paddingRight(r).paddingBottom(r).paddingLeft(r):p.paddingTop()},p.paddingTop=function(r){return arguments.length?(d=typeof r=="function"?r:G(+r),p):d},p.paddingRight=function(r){return arguments.length?(h=typeof r=="function"?r:G(+r),p):h},p.paddingBottom=function(r){return arguments.length?(m=typeof r=="function"?r:G(+r),p):m},p.paddingLeft=function(r){return arguments.length?(c=typeof r=="function"?r:G(+r),p):c},p}var ae=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=pe,this.getAccTitle=ue,this.setDiagramTitle=fe,this.getDiagramTitle=me,this.getAccDescription=ge,this.setAccDescription=ye}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=Se,a=te();return ee({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(o=>{ve(o)&&(n?.textStyles?n.textStyles.push(o):n.textStyles=[o]),n?.styles?n.styles.push(o):n.styles=[o]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){xe(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function ne(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const o={name:l.name,children:l.type==="Leaf"?void 0:[]};for(o.classSelector=l?.classSelector,l?.cssCompiledStyles&&(o.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(o.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(o);else{const i=n[n.length-1].node;i.children?i.children.push(o):i.children=[o]}l.type!=="Leaf"&&n.push({node:o,level:l.level})}),a}w(ne,"buildHierarchy");var Ke=w((e,a)=>{we(e,a);const n=[];for(const i of e.TreemapRows??[])i.$type==="ClassDefStatement"&&a.addClass(i.className??"",i.styleText??"");for(const i of e.TreemapRows??[]){const d=i.item;if(!d)continue;const h=i.indent?parseInt(i.indent):0,m=Qe(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],p=c.length>0?c:void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:p};n.push(b)}const l=ne(n),o=w((i,d)=>{for(const h of i)a.addNode(h,d),h.children&&h.children.length>0&&o(h.children,d+1)},"addNodesRecursively");o(l,0)},"populate"),Qe=w(e=>e.name?String(e.name):"","getItemName"),le={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ce("treemap",e);J.debug("Treemap AST:",n);const l=le.parser?.yy;if(!(l instanceof ae))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Ke(n,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},et=10,B=10,q=25,tt=w((e,a,n,l)=>{const o=l.db,i=o.getConfig(),d=i.padding??et,h=o.getDiagramTitle(),m=o.getRoot(),{themeVariables:c}=te();if(!m)return;const p=h?30:0,b=de(a),r=i.nodeWidth?i.nodeWidth*B:960,x=i.nodeHeight?i.nodeHeight*B:500,S=r,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),he(b,v,S,i.useMaxWidth);let u;try{const t=i.valueFormat||",";if(t==="$0,0")u=w(s=>"$"+H(",")(s),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const s=/\.\d+/.exec(t),f=s?s[0]:"";u=w(C=>"$"+H(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const s=t.substring(1);u=w(f=>"$"+H(s||"")(f),"valueFormat")}else u=H(t)}catch(t){J.error("Error creating format function:",t),u=H(",")}const g=Z().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=Z().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),k=Z().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),E=K(m).sum(t=>t.value??0).sort((t,s)=>(s.value??0)-(t.value??0)),Q=Je().size([r,x]).paddingTop(t=>t.children&&t.children.length>0?q+B:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?B:0).paddingRight(t=>t.children&&t.children.length>0?B:0).paddingBottom(t=>t.children&&t.children.length>0?B:0).round(!0)(E),re=Q.descendants().filter(t=>t.children&&t.children.length>0),R=V.selectAll(".treemapSection").data(re).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,s)=>`clip-section-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,s)=>`treemapSection section${s}`).attr("fill",t=>g(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const s=P({cssCompiledStyles:t.data.cssCompiledStyles});return s.nodeStyles+";"+s.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const s="dominant-baseline: middle; font-size: 12px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const s=Y(this),f=t.data.name;s.text(f);const C=t.x1-t.x0,L=6;let $;i.showValues!==!1&&t.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=s.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){s.text("..."),y.getComputedTextLength()>A&&s.text("");break}if(s.text(T+"..."),y.getComputedTextLength()<=A)break}}}),i.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const s="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+k(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")});const se=Q.leaves(),X=V.selectAll(".treemapLeafGroup").data(se).enter().append("g").attr("class",(t,s)=>`treemapNode treemapLeafGroup leaf${s}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);X.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("style",t=>P({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?g(t.parent.data.name):g(t.data.name)).attr("stroke-width",3),X.append("clipPath").attr("id",(t,s)=>`clip-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),X.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const s="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+k(t.data.name)+";",f=P({cssCompiledStyles:t.data.cssCompiledStyles});return s+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,s)=>`url(#clip-${a}-${s})`).text(t=>t.data.name).each(function(t){const s=Y(this),f=t.x1-t.x0,C=t.y1-t.y0,L=s.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){s.style("display","none");return}let y=parseInt(s.style("font-size"),10);const _=8,F=28,T=.6,z=6,W=2;for(;L.getComputedTextLength()>D&&y>_;)y--,s.style("font-size",`${y}px`);let I=Math.max(z,Math.min(F,Math.round(y*T))),U=y+W+I;for(;U>A&&y>_&&(y--,I=Math.max(z,Math.min(F,Math.round(y*T))),!(I<z&&y===_));)s.style("font-size",`${y}px`),U=y+W+I;s.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&s.style("display","none")}),i.showValues!==!1&&X.append("text").attr("class","treemapValue").attr("x",s=>(s.x1-s.x0)/2).attr("y",function(s){return(s.y1-s.y0)/2}).attr("style",s=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+k(s.data.name)+";",C=P({cssCompiledStyles:s.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(s,f)=>`url(#clip-${a}-${f})`).text(s=>s.value?u(s.value):"").each(function(s){const f=Y(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=Y(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const z=(s.y1-s.y0)/2+$/2+_;f.attr("y",z);const W=s.x1-s.x0,oe=s.y1-s.y0-4,ce=W-8;f.node().getComputedTextLength()>ce||z+F>oe||F<y?f.style("display","none"):f.style("display",null)});const ie=i.diagramPadding??8;be(b,ie,"flowchart",i?.useMaxWidth||!1)},"draw"),at=w(function(e,a){return a.db.getClasses()},"getClasses"),nt={draw:tt,getClasses:at},lt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},rt=w(({treemap:e}={})=>{const a=ee(lt,e);return`
|
|
2
2
|
.treemapNode.section {
|
|
3
3
|
stroke: ${a.sectionStrokeColor};
|
|
4
4
|
stroke-width: ${a.sectionStrokeWidth};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as k,g as I,q as R,p as E,a as F,b as _,_ as l,I as D,y as G,E as f,F as z,G as C,l as P,$ as W,d as B}from"./mermaid.core-
|
|
1
|
+
import{s as k,g as I,q as R,p as E,a as F,b as _,_ as l,I as D,y as G,E as f,F as z,G as C,l as P,$ as W,d as B}from"./mermaid.core-DekouHcR.js";import{p as V}from"./chunk-4BX2VUAB-CzOSrGqV.js";import{p as H}from"./treemap-KZPCXAKY-CkeXn87D.js";import"./index-Cl9Gy4vs.js";import"./transform-BwXaE9hv.js";import"./_baseUniq-Bh4-EzYg.js";import"./_basePickBy-Dseor5mu.js";import"./clone-CPL09VTv.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},m=structuredClone(w),j=z.radar,q=l(()=>f({...j,...C().radar}),"getConfig"),b=l(()=>m.axes,"getAxes"),N=l(()=>m.curves,"getCurves"),U=l(()=>m.options,"getOptions"),X=l(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Y=l(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:Z(t.entries)}))},"setCurves"),Z=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=l(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});m.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),K=l(()=>{G(),m=structuredClone(w)},"clear"),$={getAxes:b,getCurves:N,getOptions:U,setAxes:X,setCurves:Y,setOptions:J,getConfig:q,clear:K,setAccTitle:_,getAccTitle:F,setDiagramTitle:E,getDiagramTitle:R,getAccDescription:I,setAccDescription:k},Q=l(a=>{V(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await H("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),u=D(t),p=at(u,c),g=n.max??Math.max(...i.map(y=>Math.max(...y.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(p,o,v,n.ticks,n.graticule),st(p,o,v,c),M(p,o,i,h,g,n.graticule,c),T(p,i,n.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,u)=>{const p=2*u*Math.PI/o-Math.PI/2,g=n*Math.cos(p),h=n*Math.sin(p);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,u)=>{if(d.entries.length!==n)return;const p=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,y=A(g,r,s,c),S=y*Math.cos(v),O=y*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(p,i.curveTension)).attr("class",`radarCurve-${u}`):o==="polygon"&&a.append("polygon").attr("points",p.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${u}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},u={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${u.x},${u.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
|
|
2
2
|
.radarCurve-${r} {
|
|
3
3
|
color: ${s};
|
|
4
4
|
fill: ${s};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as b,E as m,I as $,d as B,l as u,b as C,a as S,p as D,q as T,g as E,s as F,F as P,G as z,y as A}from"./mermaid.core-
|
|
1
|
+
import{_ as b,E as m,I as $,d as B,l as u,b as C,a as S,p as D,q as T,g as E,s as F,F as P,G as z,y as A}from"./mermaid.core-DekouHcR.js";import{p as W}from"./chunk-4BX2VUAB-CzOSrGqV.js";import{p as _}from"./treemap-KZPCXAKY-CkeXn87D.js";import"./index-Cl9Gy4vs.js";import"./transform-BwXaE9hv.js";import"./_baseUniq-Bh4-EzYg.js";import"./_basePickBy-Dseor5mu.js";import"./clone-CPL09VTv.js";var N=P.packet,w=class{constructor(){this.packet=[],this.setAccTitle=C,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=T,this.getAccDescription=E,this.setAccDescription=F}static{b(this,"PacketDB")}getConfig(){const t=m({...N,...z().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},I=1e4,L=b((t,e)=>{W(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,u.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<I;){const[p,s]=M({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),M=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");u.debug(e),L(e,r)},"parse")},Y=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=$(e);f.attr("viewBox",`0 0 ${k} ${g}`),B(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())G(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),G=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),O={draw:Y},j={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},q=b(({packet:t}={})=>{const e=m(j,t);return`
|
|
2
2
|
.packetByte {
|
|
3
3
|
font-size: ${e.byteFontSize};
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as x,y as v,f as $,H as w,m as i,l,I as _,p as k,n as m,B as f,G as C,t as y}from"./index-
|
|
1
|
+
import{c as x,y as v,f as $,H as w,m as i,l,I as _,p as k,n as m,B as f,G as C,t as y}from"./index-Cl9Gy4vs.js";var D=y('<form class="flex flex-col gap-4 p-6 pt-0"><div class="flex items-center gap-2 text-12-regular text-text-weak"><span></span></div><div class="flex justify-end gap-2">'),S=y('<p class="text-12-regular text-red-500">');function z(b){const u=x(),g=v(),r=$(),[t,a]=w({url:"",busy:!1,error:""});async function p(){const e=t.url.trim();if(!(!e||t.busy)){a("busy",!0),a("error","");try{const n=await g.fetch(`${g.url}/global/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})}),s=await n.json();if(!n.ok){a("error",s.error||r.t("dialog.clone.error"));return}b.onSelect(s.path),u.close()}catch{a("error",r.t("dialog.clone.error"))}finally{a("busy",!1)}}}function h(e){e.preventDefault(),p()}return i(C,{get title(){return r.t("dialog.clone.title")},class:"w-full max-w-[440px] mx-auto",get children(){var e=D(),n=e.firstChild,s=n.firstChild,c=n.nextSibling;return e.addEventListener("submit",h),l(n,i(_,{name:"branch",size:"small",class:"shrink-0 text-icon-weak"}),s),l(s,()=>r.t("dialog.clone.description")),l(e,i(k,{autofocus:!0,type:"url",placeholder:"https://github.com/owner/repo",get value(){return t.url},onChange:o=>a("url",o),onKeyDown:o=>{o.key==="Enter"&&(o.preventDefault(),p())}}),c),l(e,(()=>{var o=m(()=>!!t.error);return()=>o()&&(()=>{var d=S();return l(d,()=>t.error),d})()})(),c),l(c,i(f,{type:"button",variant:"ghost",size:"large",onClick:()=>u.close(),get children(){return r.t("common.cancel")}}),null),l(c,i(f,{type:"submit",variant:"primary",size:"large",get disabled(){return!t.url.trim()||t.busy},get children(){return m(()=>!!t.busy)()?r.t("common.loading"):r.t("dialog.clone.action")}}),null),e}})}export{z as DialogCloneProject};
|
package/assets/assets/{dialog-connect-provider-Cj4eonFs.js → dialog-connect-provider-DdYA-iVa.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialog-select-provider-
|
|
2
|
-
import{v as re,b as ve,ag as he,aE as fe,a1 as me,l as i,t as x,c as ge,u as xe,y as ye,f as be,ab as _e,P as we,i as _,z as $e,H as M,O as ke,m as r,aF as L,aG as f,n as Y,aH as Z,I as Se,q as Ce,Q as Ie,G as De,p as O,B as G,o as ze,aI as Pe,J as Ee,_ as Ke}from"./index-DNqzOxQM.js";import{L as ee}from"./list-ee-VXnAh.js";import{P as Le}from"./tag-y9dl2dWD.js";var Te=x("<a>");function R(h){const T=ve(),[b,S]=he(h,["href","children","class"]);return(()=>{var n=Te();return n.$$click=j=>{b.href&&(j.preventDefault(),T.openLink(b.href))},fe(n,me({get href(){return b.href},get class(){return`text-text-strong underline ${b.class??""}`}},S),!1,!0),i(n,()=>b.children),n})()}re(["click"]);var Fe=x('<div class="w-full flex flex-col gap-1.5"><div class="text-14-regular text-text-base"></div><div>'),Me=x('<form class="flex flex-col items-start gap-4">'),Oe=x('<div class="w-full flex items-center gap-x-2"><div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center"><div class="w-2.5 h-0.5 ml-0 bg-icon-strong-base hidden"data-slot=list-item-extra-icon></div></div><span></span><span class="text-14-regular text-text-weak">'),te=x('<div class="text-14-regular text-text-base">'),je=x("<div>"),Ae=x('<div class="w-full flex items-center gap-x-2"><div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center"><div class="w-2.5 h-0.5 ml-0 bg-icon-strong-base hidden"data-slot=list-item-extra-icon></div></div><span>'),Ve=x('<div class="flex flex-col gap-4"><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base">'),qe=x('<div class="flex flex-col gap-6"><form class="flex flex-col items-start gap-4">'),Be=x('<div class="flex flex-col gap-6"><div class="text-14-regular text-text-base"></div><form class="flex flex-col items-start gap-4">'),Ze=x('<div class="flex flex-col gap-6"><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base flex items-center gap-4"><span>'),H=x('<div class="text-14-regular text-text-base"><div class="flex items-center gap-x-2"><span>'),Ge=x('<div class="flex flex-col gap-6 px-2.5 pb-3"><div class="px-2.5 flex gap-4 items-center"><div class="text-16-medium text-text-strong"></div></div><div class="px-2.5 pb-10 flex flex-col gap-6"><div tabindex=0>');function Re(h){const T=ge(),b=xe(),S=ye(),n=be(),j=_e(),J=()=>{Ke(()=>import("./dialog-select-provider-CPzhHCE0.js").then(e=>e.d),__vite__mapDeps([0,1,2,3,4])).then(e=>{T.show(()=>r(e.DialogSelectProvider,{}))})},C={value:!0},w={current:void 0};we(()=>{C.value=!1,w.current!==void 0&&(clearTimeout(w.current),w.current=void 0)});const $=_(()=>j.all().find(e=>e.id===h.provider)??b.data.provider.all.find(e=>e.id===h.provider)),A=_(()=>[{type:"api",label:n.t("provider.connect.method.apiKey")}]),[Q]=$e(()=>h.provider,async()=>{const e=b.data.provider_auth[h.provider];if(e)return e;const t=await S.client.provider.auth();return C.value?(b.set("provider_auth",t.data??{}),t.data?.[h.provider]??A()):A()},{initialValue:void 0}),N=_(()=>Q.loading&&!b.data.provider_auth[h.provider]),D=_(()=>Q.latest??b.data.provider_auth[h.provider]??A()),[d,ne]=M({methodIndex:void 0,authorization:void 0,state:"pending",error:void 0});function k(e){ne(Pe(t=>{if(e.type==="method.select"){t.methodIndex=e.index,t.authorization=void 0,t.state=void 0,t.error=void 0;return}if(e.type==="method.reset"){t.methodIndex=void 0,t.authorization=void 0,t.state=void 0,t.error=void 0;return}if(e.type==="auth.prompt"){t.state="prompt",t.error=void 0;return}if(e.type==="auth.pending"){t.state="pending",t.error=void 0;return}if(e.type==="auth.complete"){t.state="complete",t.authorization=e.authorization,t.error=void 0;return}t.state="error",t.error=e.error}))}const z=_(()=>d.methodIndex!==void 0?D().at(d.methodIndex):void 0),oe=e=>e?e.type==="api"?n.t("provider.connect.method.apiKey"):e.label??"":"";function F(e,t){if(e&&typeof e=="object"&&"data"in e){const o=e.data;if(typeof o?.message=="string"&&o.message)return o.message}if(e&&typeof e=="object"&&"error"in e){const o=F(e.error,"");if(o)return o}if(e&&typeof e=="object"&&"message"in e){const o=e.message;if(typeof o=="string"&&o)return o}return e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t}async function V(e,t){w.current!==void 0&&(clearTimeout(w.current),w.current=void 0);const o=D()[e];if(k({type:"method.select",index:e}),o.type==="oauth"){if(o.prompts?.length&&!t){k({type:"auth.prompt"});return}k({type:"auth.pending"});const c=Date.now();await S.client.provider.oauth.authorize({providerID:h.provider,method:e,inputs:t},{throwOnError:!0}).then(a=>{if(!C.value)return;const u=1e3-(Date.now()-c);if(u>0){w.current!==void 0&&clearTimeout(w.current),w.current=setTimeout(()=>{w.current=void 0,C.value&&k({type:"auth.complete",authorization:a.data})},u);return}k({type:"auth.complete",authorization:a.data})}).catch(a=>{C.value&&k({type:"auth.error",error:F(a,n.t("common.requestFailed"))})})}}function ie(){const[e,t]=M({value:{},index:0}),o=_(()=>{const l=z();return l?.type!=="oauth"?[]:l.prompts??[]}),c=(l,p)=>{if(!l.when)return!0;const g=p[l.when.key];return g===void 0?!1:l.when.op==="eq"?g===l.when.value:g!==l.when.value},a=_(()=>{const l=o(),p=l.findIndex((g,K)=>K>=e.index&&c(g,e.value));if(p!==-1)return{index:p,prompt:l[p]}}),s=_(()=>{const l=a();return!l||l.prompt.type!=="text"?!1:(e.value[l.prompt.key]??"").trim().length>0});async function u(l,p){if(d.methodIndex===void 0)return;const g=o().findIndex((K,y)=>y>l&&c(K,p));if(g!==-1){t("index",g);return}await V(d.methodIndex,p)}async function v(l){l.preventDefault();const p=a();!p||p.prompt.type!=="text"||s()&&await u(p.index,e.value)}const m=()=>a(),P=_(()=>{const l=m()?.prompt;if(!(!l||l.type!=="text"))return l}),E=_(()=>{const l=m()?.prompt;if(!(!l||l.type!=="select"))return l});return(()=>{var l=Me();return l.addEventListener("submit",v),i(l,r(L,{get children(){return[r(f,{get when(){return m()?.prompt.type==="text"},get children(){return[r(O,{type:"text",get label(){return P()?.message??""},get placeholder(){return P()?.placeholder},get value(){return Y(()=>!!P())()?e.value[P().key]??"":""},onChange:p=>{const g=P();g&&t("value",g.key,p)}}),r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get disabled(){return!s()},get children(){return n.t("common.continue")}})]}}),r(f,{get when(){return m()?.prompt.type==="select"},get children(){var p=Fe(),g=p.firstChild,K=g.nextSibling;return i(g,()=>E()?.message),i(K,r(ee,{get items(){return E()?.options??[]},key:y=>y.value,get current(){return E()?.options.find(y=>y.value===e.value[E().key])},onSelect:y=>{if(!y)return;const I=E();if(!I)return;const B={...e.value,[I.key]:y.value};t("value",I.key,y.value),u(m().index,B)},children:y=>(()=>{var I=Oe(),B=I.firstChild,X=B.nextSibling,pe=X.nextSibling;return i(X,()=>y.label),i(pe,()=>y.hint),I})()})),p}})]}})),l})()}let U;function ae(e){e.key==="Enter"&&e.target instanceof HTMLInputElement||e.key!=="Escape"&&U?.onKeyDown(e)}let W=!1;ke(()=>{W||N()||D().length===1&&(W=!0,V(0))});async function q(){await S.client.global.dispose(),T.close(),Ee({variant:"success",icon:"circle-check",title:n.t("provider.connect.toast.connected.title",{provider:$().name}),description:n.t("provider.connect.toast.connected.description",{provider:$().name})})}function le(){if(D().length===1){J();return}if(d.authorization){k({type:"method.reset"});return}if(d.methodIndex!==void 0){k({type:"method.reset"});return}J()}function se(){return[(()=>{var e=te();return i(e,()=>n.t("provider.connect.selectMethod",{provider:$().name})),e})(),(()=>{var e=je();return i(e,r(ee,{ref:t=>{U=t},items:D,key:t=>t?.label,onSelect:async(t,o)=>{t&&V(o)},children:t=>(()=>{var o=Ae(),c=o.firstChild,a=c.nextSibling;return i(a,()=>oe(t)),o})()})),e})()]}function ce(){const[e,t]=M({value:"",error:void 0});async function o(c){c.preventDefault();const a=c.currentTarget,u=new FormData(a).get("apiKey");if(!u?.trim()){t("error",n.t("provider.connect.apiKey.required"));return}t("error",void 0),await S.client.auth.set({providerID:h.provider,auth:{type:"api",key:u}}),await q()}return(()=>{var c=qe(),a=c.firstChild;return i(c,r(L,{get children(){return[r(f,{get when(){return $().id==="opencode"},get children(){var s=Ve(),u=s.firstChild,v=u.nextSibling,m=v.nextSibling;return i(u,()=>n.t("provider.connect.opencodeZen.line1")),i(v,()=>n.t("provider.connect.opencodeZen.line2")),i(m,()=>n.t("provider.connect.opencodeZen.visit.prefix"),null),i(m,r(R,{href:"https://opencode.ai/zen",tabIndex:-1,get children(){return n.t("provider.connect.opencodeZen.visit.link")}}),null),i(m,()=>n.t("provider.connect.opencodeZen.visit.suffix"),null),s}}),r(f,{when:!0,get children(){var s=te();return i(s,()=>n.t("provider.connect.apiKey.description",{provider:$().name})),s}})]}}),a),a.addEventListener("submit",o),i(a,r(O,{autofocus:!0,type:"text",get label(){return n.t("provider.connect.apiKey.label",{provider:$().name})},get placeholder(){return n.t("provider.connect.apiKey.placeholder")},name:"apiKey",get value(){return e.value},onChange:s=>t("value",s),get validationState(){return e.error?"invalid":void 0},get error(){return e.error}}),null),i(a,r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get children(){return n.t("common.continue")}}),null),c})()}function ue(){const[e,t]=M({value:"",error:void 0});async function o(c){c.preventDefault();const a=c.currentTarget,u=new FormData(a).get("code");if(!u?.trim()){t("error",n.t("provider.connect.oauth.code.required"));return}t("error",void 0);const v=await S.client.provider.oauth.callback({providerID:h.provider,method:d.methodIndex,code:u}).then(m=>m.error?{ok:!1,error:m.error}:{ok:!0}).catch(m=>({ok:!1,error:m}));if(v.ok){await q();return}t("error",F(v.error,n.t("provider.connect.oauth.code.invalid")))}return(()=>{var c=Be(),a=c.firstChild,s=a.nextSibling;return i(a,()=>n.t("provider.connect.oauth.code.visit.prefix"),null),i(a,r(R,{get href(){return d.authorization.url},get children(){return n.t("provider.connect.oauth.code.visit.link")}}),null),i(a,()=>n.t("provider.connect.oauth.code.visit.suffix",{provider:$().name}),null),s.addEventListener("submit",o),i(s,r(O,{autofocus:!0,type:"text",get label(){return n.t("provider.connect.oauth.code.label",{method:z()?.label??""})},get placeholder(){return n.t("provider.connect.oauth.code.placeholder")},name:"code",get value(){return e.value},onChange:u=>t("value",u),get validationState(){return e.error?"invalid":void 0},get error(){return e.error}}),null),i(s,r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get children(){return n.t("common.continue")}}),null),c})()}function de(){const e=_(()=>{const t=d.authorization?.instructions;return t?.includes(":")?t.split(":")[1]?.trim():t});return ze(()=>{(async()=>{const t=await S.client.provider.oauth.callback({providerID:h.provider,method:d.methodIndex}).then(o=>o.error?{ok:!1,error:o.error}:{ok:!0}).catch(o=>({ok:!1,error:o}));if(C.value){if(!t.ok){const o=F(t.error,n.t("common.requestFailed"));k({type:"auth.error",error:o});return}await q()}})()}),(()=>{var t=Ze(),o=t.firstChild,c=o.nextSibling,a=c.firstChild;return i(o,()=>n.t("provider.connect.oauth.auto.visit.prefix"),null),i(o,r(R,{get href(){return d.authorization.url},get children(){return n.t("provider.connect.oauth.auto.visit.link")}}),null),i(o,()=>n.t("provider.connect.oauth.auto.visit.suffix",{provider:$().name}),null),i(t,r(O,{get label(){return n.t("provider.connect.oauth.auto.confirmationCode")},class:"font-mono",get value(){return e()},readOnly:!0,copyable:!0}),c),i(c,r(Z,{}),a),i(a,()=>n.t("provider.connect.status.waiting")),t})()}return r(De,{get title(){return r(Ie,{tabIndex:-1,icon:"arrow-left",variant:"ghost",onClick:le,get"aria-label"(){return n.t("common.goBack")}})},get children(){var e=Ge(),t=e.firstChild,o=t.firstChild,c=t.nextSibling,a=c.firstChild;return i(t,r(Le,{get id(){return h.provider},class:"size-5 shrink-0 icon-strong-base"}),o),i(o,r(L,{get children(){return[r(f,{get when(){return Y(()=>h.provider==="anthropic")()&&z()?.label?.toLowerCase().includes("max")},get children(){return n.t("provider.connect.title.anthropicProMax")}}),r(f,{when:!0,get children(){return n.t("provider.connect.title",{provider:$().name})}})]}})),a.$$keydown=ae,i(a,r(L,{get children(){return[r(f,{get when(){return N()},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Z,{}),v),i(v,()=>n.t("provider.connect.status.inProgress")),s}}),r(f,{get when(){return d.methodIndex===void 0},get children(){return r(se,{})}}),r(f,{get when(){return d.state==="pending"},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Z,{}),v),i(v,()=>n.t("provider.connect.status.inProgress")),s}}),r(f,{get when(){return d.state==="prompt"},get children(){return r(ie,{})}}),r(f,{get when(){return d.state==="error"},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Se,{name:"circle-ban-sign",class:"text-icon-critical-base"}),v),i(v,()=>n.t("provider.connect.status.failed",{error:d.error??""})),s}}),r(f,{get when(){return z()?.type==="api"},get children(){return r(ce,{})}}),r(f,{get when(){return z()?.type==="oauth"},get children(){return r(L,{get children(){return[r(f,{get when(){return d.authorization?.method==="code"},get children(){return r(ue,{})}}),r(f,{get when(){return d.authorization?.method==="auto"},get children(){return r(de,{})}})]}})}})]}})),Ce(()=>a.autofocus=d.methodIndex===void 0?!0:void 0),e}})}re(["keydown"]);const Ne=Object.freeze(Object.defineProperty({__proto__:null,DialogConnectProvider:Re},Symbol.toStringTag,{value:"Module"}));export{Re as D,R as L,Ne as d};
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dialog-select-provider-B1pJlMg-.js","assets/index-Cl9Gy4vs.js","assets/index-b2zsFxHN.css","assets/list-CbLd2QpP.js","assets/tag-CzzNjHnn.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{v as re,b as ve,ah as he,aF as fe,a1 as me,l as i,t as x,c as ge,u as xe,y as ye,f as be,ac as _e,P as we,i as _,z as $e,H as M,O as ke,m as r,aG as L,aH as f,n as Y,aI as Z,I as Se,q as Ce,Q as Ie,G as De,p as O,B as G,o as ze,aJ as Pe,J as Ee,_ as Ke}from"./index-Cl9Gy4vs.js";import{L as ee}from"./list-CbLd2QpP.js";import{P as Le}from"./tag-CzzNjHnn.js";var Te=x("<a>");function R(h){const T=ve(),[b,S]=he(h,["href","children","class"]);return(()=>{var n=Te();return n.$$click=j=>{b.href&&(j.preventDefault(),T.openLink(b.href))},fe(n,me({get href(){return b.href},get class(){return`text-text-strong underline ${b.class??""}`}},S),!1,!0),i(n,()=>b.children),n})()}re(["click"]);var Fe=x('<div class="w-full flex flex-col gap-1.5"><div class="text-14-regular text-text-base"></div><div>'),Me=x('<form class="flex flex-col items-start gap-4">'),Oe=x('<div class="w-full flex items-center gap-x-2"><div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center"><div class="w-2.5 h-0.5 ml-0 bg-icon-strong-base hidden"data-slot=list-item-extra-icon></div></div><span></span><span class="text-14-regular text-text-weak">'),te=x('<div class="text-14-regular text-text-base">'),je=x("<div>"),Ae=x('<div class="w-full flex items-center gap-x-2"><div class="w-4 h-2 rounded-[1px] bg-input-base shadow-xs-border-base flex items-center justify-center"><div class="w-2.5 h-0.5 ml-0 bg-icon-strong-base hidden"data-slot=list-item-extra-icon></div></div><span>'),Ve=x('<div class="flex flex-col gap-4"><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base">'),qe=x('<div class="flex flex-col gap-6"><form class="flex flex-col items-start gap-4">'),Be=x('<div class="flex flex-col gap-6"><div class="text-14-regular text-text-base"></div><form class="flex flex-col items-start gap-4">'),Ze=x('<div class="flex flex-col gap-6"><div class="text-14-regular text-text-base"></div><div class="text-14-regular text-text-base flex items-center gap-4"><span>'),H=x('<div class="text-14-regular text-text-base"><div class="flex items-center gap-x-2"><span>'),Ge=x('<div class="flex flex-col gap-6 px-2.5 pb-3"><div class="px-2.5 flex gap-4 items-center"><div class="text-16-medium text-text-strong"></div></div><div class="px-2.5 pb-10 flex flex-col gap-6"><div tabindex=0>');function Re(h){const T=ge(),b=xe(),S=ye(),n=be(),j=_e(),J=()=>{Ke(()=>import("./dialog-select-provider-B1pJlMg-.js").then(e=>e.d),__vite__mapDeps([0,1,2,3,4])).then(e=>{T.show(()=>r(e.DialogSelectProvider,{}))})},C={value:!0},w={current:void 0};we(()=>{C.value=!1,w.current!==void 0&&(clearTimeout(w.current),w.current=void 0)});const $=_(()=>j.all().find(e=>e.id===h.provider)??b.data.provider.all.find(e=>e.id===h.provider)),A=_(()=>[{type:"api",label:n.t("provider.connect.method.apiKey")}]),[Q]=$e(()=>h.provider,async()=>{const e=b.data.provider_auth[h.provider];if(e)return e;const t=await S.client.provider.auth();return C.value?(b.set("provider_auth",t.data??{}),t.data?.[h.provider]??A()):A()},{initialValue:void 0}),N=_(()=>Q.loading&&!b.data.provider_auth[h.provider]),D=_(()=>Q.latest??b.data.provider_auth[h.provider]??A()),[d,ne]=M({methodIndex:void 0,authorization:void 0,state:"pending",error:void 0});function k(e){ne(Pe(t=>{if(e.type==="method.select"){t.methodIndex=e.index,t.authorization=void 0,t.state=void 0,t.error=void 0;return}if(e.type==="method.reset"){t.methodIndex=void 0,t.authorization=void 0,t.state=void 0,t.error=void 0;return}if(e.type==="auth.prompt"){t.state="prompt",t.error=void 0;return}if(e.type==="auth.pending"){t.state="pending",t.error=void 0;return}if(e.type==="auth.complete"){t.state="complete",t.authorization=e.authorization,t.error=void 0;return}t.state="error",t.error=e.error}))}const z=_(()=>d.methodIndex!==void 0?D().at(d.methodIndex):void 0),oe=e=>e?e.type==="api"?n.t("provider.connect.method.apiKey"):e.label??"":"";function F(e,t){if(e&&typeof e=="object"&&"data"in e){const o=e.data;if(typeof o?.message=="string"&&o.message)return o.message}if(e&&typeof e=="object"&&"error"in e){const o=F(e.error,"");if(o)return o}if(e&&typeof e=="object"&&"message"in e){const o=e.message;if(typeof o=="string"&&o)return o}return e instanceof Error&&e.message?e.message:typeof e=="string"&&e?e:t}async function V(e,t){w.current!==void 0&&(clearTimeout(w.current),w.current=void 0);const o=D()[e];if(k({type:"method.select",index:e}),o.type==="oauth"){if(o.prompts?.length&&!t){k({type:"auth.prompt"});return}k({type:"auth.pending"});const c=Date.now();await S.client.provider.oauth.authorize({providerID:h.provider,method:e,inputs:t},{throwOnError:!0}).then(a=>{if(!C.value)return;const u=1e3-(Date.now()-c);if(u>0){w.current!==void 0&&clearTimeout(w.current),w.current=setTimeout(()=>{w.current=void 0,C.value&&k({type:"auth.complete",authorization:a.data})},u);return}k({type:"auth.complete",authorization:a.data})}).catch(a=>{C.value&&k({type:"auth.error",error:F(a,n.t("common.requestFailed"))})})}}function ie(){const[e,t]=M({value:{},index:0}),o=_(()=>{const l=z();return l?.type!=="oauth"?[]:l.prompts??[]}),c=(l,p)=>{if(!l.when)return!0;const g=p[l.when.key];return g===void 0?!1:l.when.op==="eq"?g===l.when.value:g!==l.when.value},a=_(()=>{const l=o(),p=l.findIndex((g,K)=>K>=e.index&&c(g,e.value));if(p!==-1)return{index:p,prompt:l[p]}}),s=_(()=>{const l=a();return!l||l.prompt.type!=="text"?!1:(e.value[l.prompt.key]??"").trim().length>0});async function u(l,p){if(d.methodIndex===void 0)return;const g=o().findIndex((K,y)=>y>l&&c(K,p));if(g!==-1){t("index",g);return}await V(d.methodIndex,p)}async function v(l){l.preventDefault();const p=a();!p||p.prompt.type!=="text"||s()&&await u(p.index,e.value)}const m=()=>a(),P=_(()=>{const l=m()?.prompt;if(!(!l||l.type!=="text"))return l}),E=_(()=>{const l=m()?.prompt;if(!(!l||l.type!=="select"))return l});return(()=>{var l=Me();return l.addEventListener("submit",v),i(l,r(L,{get children(){return[r(f,{get when(){return m()?.prompt.type==="text"},get children(){return[r(O,{type:"text",get label(){return P()?.message??""},get placeholder(){return P()?.placeholder},get value(){return Y(()=>!!P())()?e.value[P().key]??"":""},onChange:p=>{const g=P();g&&t("value",g.key,p)}}),r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get disabled(){return!s()},get children(){return n.t("common.continue")}})]}}),r(f,{get when(){return m()?.prompt.type==="select"},get children(){var p=Fe(),g=p.firstChild,K=g.nextSibling;return i(g,()=>E()?.message),i(K,r(ee,{get items(){return E()?.options??[]},key:y=>y.value,get current(){return E()?.options.find(y=>y.value===e.value[E().key])},onSelect:y=>{if(!y)return;const I=E();if(!I)return;const B={...e.value,[I.key]:y.value};t("value",I.key,y.value),u(m().index,B)},children:y=>(()=>{var I=Oe(),B=I.firstChild,X=B.nextSibling,pe=X.nextSibling;return i(X,()=>y.label),i(pe,()=>y.hint),I})()})),p}})]}})),l})()}let U;function ae(e){e.key==="Enter"&&e.target instanceof HTMLInputElement||e.key!=="Escape"&&U?.onKeyDown(e)}let W=!1;ke(()=>{W||N()||D().length===1&&(W=!0,V(0))});async function q(){await S.client.global.dispose(),T.close(),Ee({variant:"success",icon:"circle-check",title:n.t("provider.connect.toast.connected.title",{provider:$().name}),description:n.t("provider.connect.toast.connected.description",{provider:$().name})})}function le(){if(D().length===1){J();return}if(d.authorization){k({type:"method.reset"});return}if(d.methodIndex!==void 0){k({type:"method.reset"});return}J()}function se(){return[(()=>{var e=te();return i(e,()=>n.t("provider.connect.selectMethod",{provider:$().name})),e})(),(()=>{var e=je();return i(e,r(ee,{ref:t=>{U=t},items:D,key:t=>t?.label,onSelect:async(t,o)=>{t&&V(o)},children:t=>(()=>{var o=Ae(),c=o.firstChild,a=c.nextSibling;return i(a,()=>oe(t)),o})()})),e})()]}function ce(){const[e,t]=M({value:"",error:void 0});async function o(c){c.preventDefault();const a=c.currentTarget,u=new FormData(a).get("apiKey");if(!u?.trim()){t("error",n.t("provider.connect.apiKey.required"));return}t("error",void 0),await S.client.auth.set({providerID:h.provider,auth:{type:"api",key:u}}),await q()}return(()=>{var c=qe(),a=c.firstChild;return i(c,r(L,{get children(){return[r(f,{get when(){return $().id==="opencode"},get children(){var s=Ve(),u=s.firstChild,v=u.nextSibling,m=v.nextSibling;return i(u,()=>n.t("provider.connect.opencodeZen.line1")),i(v,()=>n.t("provider.connect.opencodeZen.line2")),i(m,()=>n.t("provider.connect.opencodeZen.visit.prefix"),null),i(m,r(R,{href:"https://opencode.ai/zen",tabIndex:-1,get children(){return n.t("provider.connect.opencodeZen.visit.link")}}),null),i(m,()=>n.t("provider.connect.opencodeZen.visit.suffix"),null),s}}),r(f,{when:!0,get children(){var s=te();return i(s,()=>n.t("provider.connect.apiKey.description",{provider:$().name})),s}})]}}),a),a.addEventListener("submit",o),i(a,r(O,{autofocus:!0,type:"text",get label(){return n.t("provider.connect.apiKey.label",{provider:$().name})},get placeholder(){return n.t("provider.connect.apiKey.placeholder")},name:"apiKey",get value(){return e.value},onChange:s=>t("value",s),get validationState(){return e.error?"invalid":void 0},get error(){return e.error}}),null),i(a,r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get children(){return n.t("common.continue")}}),null),c})()}function ue(){const[e,t]=M({value:"",error:void 0});async function o(c){c.preventDefault();const a=c.currentTarget,u=new FormData(a).get("code");if(!u?.trim()){t("error",n.t("provider.connect.oauth.code.required"));return}t("error",void 0);const v=await S.client.provider.oauth.callback({providerID:h.provider,method:d.methodIndex,code:u}).then(m=>m.error?{ok:!1,error:m.error}:{ok:!0}).catch(m=>({ok:!1,error:m}));if(v.ok){await q();return}t("error",F(v.error,n.t("provider.connect.oauth.code.invalid")))}return(()=>{var c=Be(),a=c.firstChild,s=a.nextSibling;return i(a,()=>n.t("provider.connect.oauth.code.visit.prefix"),null),i(a,r(R,{get href(){return d.authorization.url},get children(){return n.t("provider.connect.oauth.code.visit.link")}}),null),i(a,()=>n.t("provider.connect.oauth.code.visit.suffix",{provider:$().name}),null),s.addEventListener("submit",o),i(s,r(O,{autofocus:!0,type:"text",get label(){return n.t("provider.connect.oauth.code.label",{method:z()?.label??""})},get placeholder(){return n.t("provider.connect.oauth.code.placeholder")},name:"code",get value(){return e.value},onChange:u=>t("value",u),get validationState(){return e.error?"invalid":void 0},get error(){return e.error}}),null),i(s,r(G,{class:"w-auto",type:"submit",size:"large",variant:"primary",get children(){return n.t("common.continue")}}),null),c})()}function de(){const e=_(()=>{const t=d.authorization?.instructions;return t?.includes(":")?t.split(":")[1]?.trim():t});return ze(()=>{(async()=>{const t=await S.client.provider.oauth.callback({providerID:h.provider,method:d.methodIndex}).then(o=>o.error?{ok:!1,error:o.error}:{ok:!0}).catch(o=>({ok:!1,error:o}));if(C.value){if(!t.ok){const o=F(t.error,n.t("common.requestFailed"));k({type:"auth.error",error:o});return}await q()}})()}),(()=>{var t=Ze(),o=t.firstChild,c=o.nextSibling,a=c.firstChild;return i(o,()=>n.t("provider.connect.oauth.auto.visit.prefix"),null),i(o,r(R,{get href(){return d.authorization.url},get children(){return n.t("provider.connect.oauth.auto.visit.link")}}),null),i(o,()=>n.t("provider.connect.oauth.auto.visit.suffix",{provider:$().name}),null),i(t,r(O,{get label(){return n.t("provider.connect.oauth.auto.confirmationCode")},class:"font-mono",get value(){return e()},readOnly:!0,copyable:!0}),c),i(c,r(Z,{}),a),i(a,()=>n.t("provider.connect.status.waiting")),t})()}return r(De,{get title(){return r(Ie,{tabIndex:-1,icon:"arrow-left",variant:"ghost",onClick:le,get"aria-label"(){return n.t("common.goBack")}})},get children(){var e=Ge(),t=e.firstChild,o=t.firstChild,c=t.nextSibling,a=c.firstChild;return i(t,r(Le,{get id(){return h.provider},class:"size-5 shrink-0 icon-strong-base"}),o),i(o,r(L,{get children(){return[r(f,{get when(){return Y(()=>h.provider==="anthropic")()&&z()?.label?.toLowerCase().includes("max")},get children(){return n.t("provider.connect.title.anthropicProMax")}}),r(f,{when:!0,get children(){return n.t("provider.connect.title",{provider:$().name})}})]}})),a.$$keydown=ae,i(a,r(L,{get children(){return[r(f,{get when(){return N()},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Z,{}),v),i(v,()=>n.t("provider.connect.status.inProgress")),s}}),r(f,{get when(){return d.methodIndex===void 0},get children(){return r(se,{})}}),r(f,{get when(){return d.state==="pending"},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Z,{}),v),i(v,()=>n.t("provider.connect.status.inProgress")),s}}),r(f,{get when(){return d.state==="prompt"},get children(){return r(ie,{})}}),r(f,{get when(){return d.state==="error"},get children(){var s=H(),u=s.firstChild,v=u.firstChild;return i(u,r(Se,{name:"circle-ban-sign",class:"text-icon-critical-base"}),v),i(v,()=>n.t("provider.connect.status.failed",{error:d.error??""})),s}}),r(f,{get when(){return z()?.type==="api"},get children(){return r(ce,{})}}),r(f,{get when(){return z()?.type==="oauth"},get children(){return r(L,{get children(){return[r(f,{get when(){return d.authorization?.method==="code"},get children(){return r(ue,{})}}),r(f,{get when(){return d.authorization?.method==="auto"},get children(){return r(de,{})}})]}})}})]}})),Ce(()=>a.autofocus=d.methodIndex===void 0?!0:void 0),e}})}re(["keydown"]);const Ne=Object.freeze(Object.defineProperty({__proto__:null,DialogConnectProvider:Re},Symbol.toStringTag,{value:"Module"}));export{Re as D,R as L,Ne as d};
|
package/assets/assets/{dialog-create-project-D7nhbRJT.js → dialog-create-project-Dw9WU914.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as _,y as D,u as j,f as z,H as B,h as $,m as t,l as n,I as k,B as p,p as T,S as H,G as E,t as G,J as O}from"./index-
|
|
1
|
+
import{c as _,y as D,u as j,f as z,H as B,h as $,m as t,l as n,I as k,B as p,p as T,S as H,G as E,t as G,J as O}from"./index-Cl9Gy4vs.js";var J=G('<form class="flex flex-col gap-4 p-6 pt-0"><div class="flex items-center gap-2 text-12-regular text-text-weak"><span class=truncate>/</span></div><div class="flex flex-col gap-2"><div class="flex items-center gap-2 text-12-regular text-text-weaker"><div class="flex-1 h-px bg-border-base"></div><span>or create blank</span><div class="flex-1 h-px bg-border-base"></div></div></div><div class="flex justify-end gap-2">'),K=G('<div class="flex flex-col gap-4 p-6 pt-0"><div class="flex items-center gap-2 text-12-regular text-text-weak"><span class=truncate>/</span></div><div class="flex justify-end gap-2">');function N(c){const h=_(),u=D(),C=j(),s=z(),m=()=>C.data.path.home||"",f=()=>m()+"/.turtlecode",[o,g]=B({name:"",busy:!1}),[w,d]=$(!1);function y(){d(!0)}async function r(){const e=o.name.trim();if(!e||o.busy)return;const a=`${f()}/${e}`;g("busy",!0);try{await u.fetch(`${u.url}/global/mkdir`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:a})}).then(l=>{if(!l.ok)throw new Error(`mkdir failed: ${l.status}`);return l.json()}),c.onSelect(c.multiple?[a]:a),h.close()}catch{O({variant:"error",title:s.t("dialog.directory.create.error")})}finally{g("busy",!1)}}function i(e){e.preventDefault(),r()}return t(E,{get title(){return s.t("dialog.directory.create")},class:"w-full max-w-[400px] mx-auto min-h-fit!",get children(){return[(()=>{var e=J(),a=e.firstChild,l=a.firstChild,x=l.firstChild,b=a.nextSibling,P=b.firstChild,S=b.nextSibling;return e.addEventListener("submit",i),n(a,t(k,{name:"folder-add-left",size:"small",class:"shrink-0 text-icon-weak"}),l),n(l,f,x),n(b,t(p,{type:"button",variant:"secondary",size:"large",class:"w-full",onClick:y,get children(){return[t(k,{name:"github",size:"small",class:"mr-2"}),"Clone from GitHub"]}}),P),n(b,t(T,{autofocus:!0,type:"text",get placeholder(){return s.t("dialog.directory.create.placeholder")},get value(){return o.name},onChange:v=>g("name",v),onKeyDown:v=>{v.key==="Enter"&&(v.preventDefault(),r())}}),null),n(S,t(p,{type:"button",variant:"ghost",size:"large",onClick:()=>h.close(),get children(){return s.t("common.cancel")}}),null),n(S,t(p,{type:"submit",variant:"primary",size:"large",get disabled(){return!o.name.trim()||o.busy},get children(){return s.t("dialog.directory.create.action")}}),null),e})(),t(H,{get when(){return w()},get children(){return t(I,{onSelect:e=>{d(!1),c.onSelect(e)},onClose:()=>d(!1)})}})]}})}function I(c){const h=_(),[u,C]=$(""),[s,m]=$(!1),f=z(),o=D(),g=j(),w=()=>g.data.path.home||"",d=()=>w()+"/.turtlecode";async function y(){const r=u().trim();if(!r||s())return;const i=r.split("/").pop()?.replace(/\.git$/,"")||"repo",e=`${d()}/${i}`;m(!0);try{await o.fetch(`${o.url}/global/clone`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:r,target:e})}).then(a=>{if(!a.ok)throw new Error(`clone failed: ${a.status}`);return a.json()}),c.onSelect(e),h.close()}catch{O({variant:"error",title:f.t("dialog.directory.create.error")})}finally{m(!1)}}return t(E,{title:"Clone from GitHub",class:"w-full max-w-[400px] mx-auto min-h-fit!",get children(){var r=K(),i=r.firstChild,e=i.firstChild,a=e.firstChild,l=i.nextSibling;return n(i,t(k,{name:"folder-add-left",size:"small",class:"shrink-0 text-icon-weak"}),e),n(e,d,a),n(r,t(T,{autofocus:!0,type:"text",placeholder:"https://github.com/user/repo",get value(){return u()},onChange:C,onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),y())}}),l),n(l,t(p,{type:"button",variant:"ghost",size:"large",get onClick(){return c.onClose},get children(){return f.t("common.cancel")}}),null),n(l,t(p,{type:"button",variant:"primary",size:"large",get disabled(){return!u().trim()||s()},onClick:y,children:"Clone"}),null),r}})}export{N as DialogCreateProject};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as te,y as re,u as ae,f as oe,i as A,E as ie,H as ne,L as le,m as l,l as o,p as F,S as I,q as L,$ as j,a0 as P,a1 as R,a2 as G,I as K,j as se,F as ce,V as M,B as T,n as de,G as ue,t as p,v as ve}from"./index-
|
|
1
|
+
import{c as te,y as re,u as ae,f as oe,i as A,E as ie,H as ne,L as le,m as l,l as o,p as F,S as I,q as L,$ as j,a0 as P,a1 as R,a2 as G,I as K,j as se,F as ce,V as M,B as T,n as de,G as ue,t as p,v as ve}from"./index-Cl9Gy4vs.js";var ge=p('<img class="size-full object-cover">'),fe=p('<div class="flex flex-col gap-2"><label class="text-12-medium text-text-weak"></label><div class="flex gap-1.5">'),me=p('<form class="flex flex-col gap-6 p-6 pt-0"><div class="flex flex-col gap-4"><div class="flex flex-col gap-2"><label class="text-12-medium text-text-weak"></label><div class="flex gap-3 items-start"><div class=relative><div class="relative size-16 rounded-md transition-colors cursor-pointer"></div><div class="absolute inset-0 size-16 bg-surface-raised-stronger-non-alpha/90 rounded-[6px] z-10 pointer-events-none flex items-center justify-center transition-opacity"></div><div class="absolute inset-0 size-16 bg-surface-raised-stronger-non-alpha/90 rounded-[6px] z-10 pointer-events-none flex items-center justify-center transition-opacity"></div></div><input id=icon-upload type=file accept=image/* class=hidden><div class="flex flex-col gap-1.5 text-12-regular text-text-weak self-center"><span></span><span></span></div></div></div></div><div class="flex justify-end gap-2">'),pe=p('<div class="size-full flex items-center justify-center">'),be=p("<button type=button>");const xe=["pink","mint","orange","purple","cyan","lime"];function je(s){const y=te(),B=re(),_=ae(),i=oe(),w=A(()=>ie(s.project.worktree)),k=A(()=>s.project.name||w()),[e,c]=ne({name:k(),color:s.project.icon?.color||"pink",iconUrl:s.project.icon?.override||"",startup:s.project.commands?.start??"",dragOver:!1,iconHover:!1});let U;function z(r){if(!r.type.startsWith("image/"))return;const a=new FileReader;a.onload=g=>{c("iconUrl",g.target?.result),c("iconHover",!1)},a.readAsDataURL(r)}function N(r){r.preventDefault(),c("dragOver",!1);const a=r.dataTransfer?.files[0];a&&z(a)}function V(r){r.preventDefault(),c("dragOver",!0)}function q(){c("dragOver",!1)}function W(r){const g=r.target.files?.[0];g&&z(g)}function Y(){c("iconUrl","")}const b=le(()=>({mutationFn:async()=>{const r=e.name.trim()===w()?"":e.name.trim(),a=e.startup.trim();if(s.project.id&&s.project.id!=="global"){await B.client.project.update({projectID:s.project.id,directory:s.project.worktree,name:r,icon:{color:e.color,override:e.iconUrl},commands:{start:a}}),_.project.icon(s.project.worktree,e.iconUrl||void 0),y.close();return}_.project.meta(s.project.worktree,{name:r,icon:{color:e.color,override:e.iconUrl||void 0},commands:{start:a||void 0}}),y.close()}}));function J(r){r.preventDefault(),!b.isPending&&b.mutate()}return l(ue,{get title(){return i.t("dialog.project.edit.title")},class:"w-full max-w-[480px] mx-auto",get children(){var r=me(),a=r.firstChild,g=a.firstChild,C=g.firstChild,Q=C.nextSibling,x=Q.firstChild,f=x.firstChild,h=f.nextSibling,$=h.nextSibling,S=x.nextSibling,X=S.nextSibling,D=X.firstChild,Z=D.nextSibling,E=a.nextSibling;return r.addEventListener("submit",J),o(a,l(F,{autofocus:!0,type:"text",get label(){return i.t("dialog.project.edit.name")},get placeholder(){return w()},get value(){return e.name},onChange:t=>c("name",t)}),g),o(C,()=>i.t("dialog.project.edit.icon")),x.addEventListener("mouseleave",()=>c("iconHover",!1)),x.addEventListener("mouseenter",()=>c("iconHover",!0)),f.$$click=()=>{e.iconUrl&&e.iconHover?Y():U?.click()},f.addEventListener("dragleave",q),f.addEventListener("dragover",V),f.addEventListener("drop",N),o(f,l(I,{get when(){return e.iconUrl},get fallback(){return(()=>{var t=pe();return o(t,l(P,R({get fallback(){return e.name||k()}},()=>G(e.color),{class:"size-full text-[32px]"}))),t})()},get children(){var t=ge();return L(d=>{var m=e.iconUrl,n=i.t("dialog.project.edit.icon.alt");return m!==d.e&&j(t,"src",d.e=m),n!==d.t&&j(t,"alt",d.t=n),d},{e:void 0,t:void 0}),t}})),o(h,l(K,{name:"cloud-upload",size:"large",class:"text-icon-on-interactive-base drop-shadow-sm"})),o($,l(K,{name:"trash",size:"large",class:"text-icon-on-interactive-base drop-shadow-sm"})),S.addEventListener("change",W),se(t=>{U=t},S),o(D,()=>i.t("dialog.project.edit.icon.hint")),o(Z,()=>i.t("dialog.project.edit.icon.recommended")),o(a,l(I,{get when(){return!e.iconUrl},get children(){var t=fe(),d=t.firstChild,m=d.nextSibling;return o(d,()=>i.t("dialog.project.edit.color")),o(m,l(ce,{each:xe,children:n=>(()=>{var v=be();return v.$$click=()=>c("color",n),o(v,l(P,R({get fallback(){return e.name||k()}},()=>G(n),{class:"size-full rounded"}))),L(u=>{var H=i.t("dialog.project.edit.color.select",{color:n}),O=e.color===n,ee={"flex items-center justify-center size-10 p-0.5 rounded-lg overflow-hidden transition-colors cursor-default":!0,"bg-transparent border-2 border-icon-strong-base hover:bg-surface-base-hover":e.color===n,"bg-transparent border border-transparent hover:bg-surface-base-hover hover:border-border-weak-base":e.color!==n};return H!==u.e&&j(v,"aria-label",u.e=H),O!==u.t&&j(v,"aria-pressed",u.t=O),u.a=M(v,ee,u.a),u},{e:void 0,t:void 0,a:void 0}),v})()})),t}}),null),o(a,l(F,{multiline:!0,get label(){return i.t("dialog.project.edit.worktree.startup")},get description(){return i.t("dialog.project.edit.worktree.startup.description")},get placeholder(){return i.t("dialog.project.edit.worktree.startup.placeholder")},get value(){return e.startup},onChange:t=>c("startup",t),spellcheck:!1,class:"max-h-14 w-full overflow-y-auto font-mono text-xs"}),null),o(E,l(T,{type:"button",variant:"ghost",size:"large",onClick:()=>y.close(),get children(){return i.t("common.cancel")}}),null),o(E,l(T,{type:"submit",variant:"primary",size:"large",get disabled(){return b.isPending},get children(){return de(()=>!!b.isPending)()?i.t("common.saving"):i.t("common.save")}}),null),L(t=>{var d={"border-text-interactive-base bg-surface-info-base/20":e.dragOver,"border-border-base hover:border-border-strong":!e.dragOver,"overflow-hidden":!!e.iconUrl},m=!!(e.iconHover&&!e.iconUrl),n=!(e.iconHover&&!e.iconUrl),v=!!(e.iconHover&&e.iconUrl),u=!(e.iconHover&&e.iconUrl);return t.e=M(f,d,t.e),m!==t.t&&h.classList.toggle("opacity-100",t.t=m),n!==t.a&&h.classList.toggle("opacity-0",t.a=n),v!==t.o&&$.classList.toggle("opacity-100",t.o=v),u!==t.i&&$.classList.toggle("opacity-0",t.i=u),t},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),r}})}ve(["click"]);export{je as DialogEditProject};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a8 as v,d as D,a5 as S,a6 as k,a9 as _,c as $,f as w,i as P,m as d,l as u,G as F,r as L,J as p,t as I}from"./index-Cl9Gy4vs.js";import{L as T}from"./list-CbLd2QpP.js";import{e as b}from"./session-C1WGvWnQ.js";import"./select-yT_m8Opa.js";import"./tag-CzzNjHnn.js";import"./transform-BwXaE9hv.js";var q=I('<div class="w-full flex items-center gap-2"><span class="truncate flex-1 min-w-0 text-left font-normal"></span><span class="text-text-weak shrink-0 font-normal">');function C(i){return i.toLocaleTimeString(void 0,{timeStyle:"short"})}const j=()=>{const i=v(),g=D(),c=S(),l=k(),f=_(),h=$(),r=w(),x=P(()=>{const t=i.id;if(!t)return[];const a=c.data.message[t]??[],o=[];for(const s of a){if(s.role!=="user")continue;const e=(c.data.part[s.id]??[]).find(n=>n.type==="text"&&!n.synthetic&&!n.ignored);e&&o.push({id:s.id,text:e.text.replace(/\n/g," ").slice(0,200),time:C(new Date(s.time.created))})}return o.reverse()}),y=t=>{if(!t)return;const a=i.id;if(!a)return;const o=c.data.part[t.id]??[],s=b(o,{directory:l.directory,attachmentName:r.t("common.attachment")}),m=L(l.directory);l.client.session.fork({sessionID:a,messageID:t.id}).then(e=>{if(!e.data){p({title:r.t("common.requestFailed")});return}h.close(),f.set(s,void 0,{dir:m,id:e.data.id}),g(`/${m}/session/${e.data.id}`)}).catch(e=>{const n=e instanceof Error?e.message:String(e);p({title:r.t("common.requestFailed"),description:n})})};return d(F,{get title(){return r.t("command.session.fork")},get children(){return d(T,{class:"flex-1 min-h-0 [&_[data-slot=list-scroll]]:flex-1 [&_[data-slot=list-scroll]]:min-h-0",get search(){return{placeholder:r.t("common.search.placeholder"),autofocus:!0}},get emptyMessage(){return r.t("dialog.fork.empty")},key:t=>t.id,items:x,filterKeys:["text"],onSelect:y,children:t=>(()=>{var a=q(),o=a.firstChild,s=o.nextSibling;return u(o,()=>t.text),u(s,()=>t.time),a})()})}})};export{j as DialogFork};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{ab as b,f as y,c as D,m as o,l as n,Z as I,B as k,G as $,t as g,ad as C,v as P}from"./index-Cl9Gy4vs.js";import{L}from"./list-CbLd2QpP.js";import{S as c}from"./switch-DnfWoh_i.js";import{D as _}from"./dialog-select-provider-B1pJlMg-.js";import"./tag-CzzNjHnn.js";import"./dialog-connect-provider-DdYA-iVa.js";var B=g("<span>"),S=g('<div class="w-full flex items-center justify-between gap-x-3"><span></span><div>');const G=()=>{const t=b(),d=y(),u=D(),v=()=>{u.show(()=>o(_,{}))},s=e=>C.indexOf(e),m=e=>t.model.list().filter(r=>r.provider.id===e),h=e=>m(e).every(r=>t.model.visible({modelID:r.id,providerID:r.provider.id})),f=(e,r)=>{m(e).forEach(i=>{t.model.setVisibility({modelID:i.id,providerID:i.provider.id},r)})};return o($,{get title(){return d.t("dialog.model.manage")},get description(){return d.t("dialog.model.manage.description")},get action(){return o(k,{class:"h-7 -my-1 text-14-medium",icon:"plus-small",tabIndex:-1,onClick:v,get children(){return d.t("command.provider.connect")}})},get children(){return o(L,{get search(){return{placeholder:d.t("dialog.model.search.placeholder"),autofocus:!0}},get emptyMessage(){return d.t("dialog.model.empty")},key:e=>`${e?.provider?.id}:${e?.id}`,get items(){return t.model.list()},filterKeys:["provider.name","name","id"],sortBy:(e,r)=>e.name.localeCompare(r.name),groupBy:e=>e.provider.id,groupHeader:e=>{const r=e.items[0].provider;return[(()=>{var i=B();return n(i,()=>r.name),i})(),o(I,{placement:"top",get value(){return d.t("dialog.model.manage.provider.toggle",{provider:r.name})},get children(){return o(c,{class:"-mr-1",get checked(){return h(r.id)},onChange:i=>f(r.id,i),hideLabel:!0,get children(){return r.name}})}})]},sortGroupsBy:(e,r)=>{const i=s(e.items[0].provider.id),l=s(r.items[0].provider.id),a=i>=0,p=l>=0;return a&&!p?-1:!a&&p?1:i-l},onSelect:e=>{if(!e)return;const r={modelID:e.id,providerID:e.provider.id};t.model.setVisibility(r,!t.model.visible(r))},children:e=>(()=>{var r=S(),i=r.firstChild,l=i.nextSibling;return n(i,()=>e.name),l.$$click=a=>a.stopPropagation(),n(l,o(c,{get checked(){return!!t.model.visible({modelID:e.id,providerID:e.provider.id})},onChange:a=>{t.model.setVisibility({modelID:e.id,providerID:e.provider.id},a)}})),r})()})}})};P(["click"]);export{G as DialogManageModels};
|