@puddle-code/cli 0.2.4 → 0.2.7
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/CHANGELOG.md +4 -14
- package/README.md +33 -23
- package/dist/host-control.mjs +7 -4
- package/dist/index.js +508 -315
- package/dist/install-cli.sh +167 -0
- package/dist/install.sh +7 -10
- package/dist/public/assets/{App-C2IQg_6K.js → App-BkCGcO4p.js} +2 -2
- package/dist/public/assets/{Dashboard-DUFOyL1_.js → Dashboard-BOK1fw_Q.js} +1 -1
- package/dist/public/assets/{EditorTabClose-C3wpMhYL.js → EditorTabClose-CzMQj4jF.js} +1 -1
- package/dist/public/assets/{FindWidget-Dt1gfA70.js → FindWidget-6LifDkeS.js} +1 -1
- package/dist/public/assets/{LazyTerminal-B9HzmRBx.js → LazyTerminal-Beep0VuJ.js} +2 -2
- package/dist/public/assets/{ModelRefcount-CxzQ3w05.js → ModelRefcount-F2Tf2V5f.js} +1 -1
- package/dist/public/assets/{NewProjectDialog-Cq_1po_h.js → NewProjectDialog-CoI17sqS.js} +1 -1
- package/dist/public/assets/{PaneEditorBody-zS2BI5Fn.js → PaneEditorBody-57BHgi2R.js} +4 -4
- package/dist/public/assets/{PdfViewer-ckjWE_TR.js → PdfViewer-T-uYvXEd.js} +2 -2
- package/dist/public/assets/SettingsDialog-CkBdXZyv.js +8 -0
- package/dist/public/assets/{Terminal-BqbjwcMi.js → Terminal-CJMmk0kO.js} +1 -1
- package/dist/public/assets/{Workspace-BVDgHkML.js → Workspace-0P5NTRzC.js} +6 -6
- package/dist/public/assets/{abnfDiagram-VCTEODGH-JZdwYDGF.js → abnfDiagram-VCTEODGH-Dl2GTGCZ.js} +1 -1
- package/dist/public/assets/architecture-7GRP2DOG-UXEF_VQt.js +1 -0
- package/dist/public/assets/{architectureDiagram-5GKGNRK7-CYoRlLvs.js → architectureDiagram-5GKGNRK7-TLkiib9Z.js} +1 -1
- package/dist/public/assets/{blockDiagram-I7D4REHJ-DjPQ4-5b.js → blockDiagram-I7D4REHJ-CFdDK-5H.js} +1 -1
- package/dist/public/assets/{buffer-store-GUPJI8Wy.js → buffer-store-Pex0dRS2.js} +2 -2
- package/dist/public/assets/{button-CKes3Qwq.js → button-IwQVXqQs.js} +1 -1
- package/dist/public/assets/{c4Diagram-7LVT6UL2-BvwPGpk0.js → c4Diagram-7LVT6UL2-9M5y_7Rr.js} +1 -1
- package/dist/public/assets/channel-D3NmDqec.js +1 -0
- package/dist/public/assets/{chunk-2E4U76K2-DcsuTdxj.js → chunk-2E4U76K2-BEq-rPTx.js} +1 -1
- package/dist/public/assets/{chunk-4HAMMTFA-BGEaVxkg.js → chunk-4HAMMTFA-DSsufXZj.js} +1 -1
- package/dist/public/assets/{chunk-75Z2AOVW-BOvbyaVc.js → chunk-75Z2AOVW-CUihRphW.js} +1 -1
- package/dist/public/assets/{chunk-CLGD4ZFX-8fG7spZS.js → chunk-CLGD4ZFX-8FntHoH6.js} +1 -1
- package/dist/public/assets/{chunk-DU6HZSFF-C94gDWXH.js → chunk-DU6HZSFF-BhI6mdvA.js} +1 -1
- package/dist/public/assets/{chunk-F27PBJKO-CZD-A2b3.js → chunk-F27PBJKO-CflkfzDR.js} +1 -1
- package/dist/public/assets/{chunk-GMAD6QVW-C7KK3kiY.js → chunk-GMAD6QVW-C6sQnCBM.js} +1 -1
- package/dist/public/assets/{chunk-GVQU2GXP-CDFKc0sW.js → chunk-GVQU2GXP-BTEA9yBL.js} +1 -1
- package/dist/public/assets/{chunk-IMKFNOWR-BWQiE1Cp.js → chunk-IMKFNOWR-BTN8pZaT.js} +1 -1
- package/dist/public/assets/{chunk-L3NEJ4N5-DqP3WOXV.js → chunk-L3NEJ4N5-CPMRHY2b.js} +1 -1
- package/dist/public/assets/{chunk-OSK3NFVY-BlmYDJRN.js → chunk-OSK3NFVY-D62Fb29m.js} +1 -1
- package/dist/public/assets/{chunk-P2QGCYS3-v7eQ-UQT.js → chunk-P2QGCYS3-B_AAuki5.js} +1 -1
- package/dist/public/assets/{chunk-POPQ4Y6H-D_gxItFL.js → chunk-POPQ4Y6H-C-wGGj3u.js} +1 -1
- package/dist/public/assets/{chunk-PWAF6VOD-Ds90M0Eb.js → chunk-PWAF6VOD-DElrnMgG.js} +1 -1
- package/dist/public/assets/{chunk-SHT3W25Y-B8oepiFw.js → chunk-SHT3W25Y-D4tV8JU2.js} +1 -1
- package/dist/public/assets/{chunk-SVP7TREG-DjFxplBp.js → chunk-SVP7TREG-CFj2bSX9.js} +1 -1
- package/dist/public/assets/{chunk-TICWLB2K-GEeYOgw4.js → chunk-TICWLB2K-B-5yvDQM.js} +1 -1
- package/dist/public/assets/{chunk-TLUHSLCS-CEnN9wOB.js → chunk-TLUHSLCS-CpBFfaGS.js} +2 -2
- package/dist/public/assets/classDiagram-ZZMXUADV-8X6mwi75.js +1 -0
- package/dist/public/assets/classDiagram-v2-VYDZK3BY-8X6mwi75.js +1 -0
- package/dist/public/assets/{context-menu-CmSSwq3B.js → context-menu-Bh2z-xpu.js} +1 -1
- package/dist/public/assets/{cssMode-BEaREsxj.js → cssMode-iZ32bnYe.js} +1 -1
- package/dist/public/assets/{cynefin-OW5HDTMX-C_sl2wZ-.js → cynefin-OW5HDTMX-D5BzXyX_.js} +1 -1
- package/dist/public/assets/{cynefinDiagram-5FMLGOSQ-CPpFUPl3.js → cynefinDiagram-5FMLGOSQ-CdbgNH0t.js} +1 -1
- package/dist/public/assets/{dagre-GXQ25YYZ-BryapOat.js → dagre-GXQ25YYZ-B7zDDwyp.js} +1 -1
- package/dist/public/assets/{diagram-S7CK7UJ4-dIdCar-k.js → diagram-S7CK7UJ4-WMtT-mtt.js} +1 -1
- package/dist/public/assets/{diagram-UQ7AKVKN-EcAWwfjf.js → diagram-UQ7AKVKN-DtvvWbC3.js} +1 -1
- package/dist/public/assets/{diagram-VSXAHHWV-Dpl4gvkd.js → diagram-VSXAHHWV-DBLLhbuk.js} +1 -1
- package/dist/public/assets/{diagram-VX7I27RA-CJtemv3e.js → diagram-VX7I27RA-6sDOwqqU.js} +1 -1
- package/dist/public/assets/{diagram-Z3DM3KII-CPSnQEgD.js → diagram-Z3DM3KII-giEr0RfN.js} +1 -1
- package/dist/public/assets/{dialog-Dam8WdmS.js → dialog-ClHoWaGa.js} +1 -1
- package/dist/public/assets/{disclosure-Ex-68BU4.js → disclosure-Ch2qCUT3.js} +1 -1
- package/dist/public/assets/{dist-ByY6lqkl.js → dist-C1IA4PaM.js} +1 -1
- package/dist/public/assets/{dist-CxMnSex-.js → dist-ujnACQRA.js} +1 -1
- package/dist/public/assets/{ebnfDiagram-PWID7BFC-uXsUC0ll.js → ebnfDiagram-PWID7BFC-CDfLo0uv.js} +1 -1
- package/dist/public/assets/{erDiagram-RLTQ6QDP-D5vJ6ZLT.js → erDiagram-RLTQ6QDP-z5xLMSlR.js} +1 -1
- package/dist/public/assets/eventmodeling-NTZA5JFV-CzmQ0jM3.js +1 -0
- package/dist/public/assets/flowDiagram-HODETNUW-_tJIQrw7.js +1 -0
- package/dist/public/assets/{ganttDiagram-EL5Y4UJY-C6yTyvpx.js → ganttDiagram-EL5Y4UJY-C2poetEB.js} +1 -1
- package/dist/public/assets/{gitGraph-4MIJSDKK-C7nVbcZ1.js → gitGraph-4MIJSDKK-D40KkO3l.js} +1 -1
- package/dist/public/assets/{gitGraphDiagram-WWUBYQGX-DByBzF_5.js → gitGraphDiagram-WWUBYQGX-B4839p8c.js} +1 -1
- package/dist/public/assets/{hotkeys-MSGaeY2m.js → hotkeys-CY98l7MF.js} +1 -1
- package/dist/public/assets/{htmlMode-DirKEo5j.js → htmlMode-XXBiFVzW.js} +1 -1
- package/dist/public/assets/{index-C1a3rCk2.js → index-D0Lm0Z_9.js} +2 -2
- package/dist/public/assets/index-uKreLbru.css +2 -0
- package/dist/public/assets/{info-A6RAGUB7-BCEGc_J2.js → info-A6RAGUB7-R6D6gcdH.js} +1 -1
- package/dist/public/assets/{infoDiagram-27XIBGKW-DDVeVGK9.js → infoDiagram-27XIBGKW-CQMe7eLM.js} +1 -1
- package/dist/public/assets/{input-i-kiT55N.js → input-BUZTRTzW.js} +1 -1
- package/dist/public/assets/{ishikawaDiagram-5VMMS53U-CTZvKcdI.js → ishikawaDiagram-5VMMS53U-hWJnyGf_.js} +1 -1
- package/dist/public/assets/{journeyDiagram-3NMN7TZE-CwFCP_8e.js → journeyDiagram-3NMN7TZE-DRy7w8VL.js} +1 -1
- package/dist/public/assets/{jsonMode-BLMO7T1W.js → jsonMode-B4KgbobV.js} +1 -1
- package/dist/public/assets/{kanban-definition-UXKFOSKX-BCdCN6ov.js → kanban-definition-UXKFOSKX-Dvv0eWiD.js} +1 -1
- package/dist/public/assets/{line-e7ifLbsv.js → line-K2RkIT6o.js} +1 -1
- package/dist/public/assets/{media-refresh-store-d6Ihz_Yj.js → media-refresh-store-OAgBTFYO.js} +1 -1
- package/dist/public/assets/{mermaid-parser.core-DfmtQ5si.js → mermaid-parser.core-B36v6vc8.js} +3 -3
- package/dist/public/assets/{mermaid.core-B0Ceo892.js → mermaid.core-kqdkh9ua.js} +3 -3
- package/dist/public/assets/{mindmap-definition-YA3MSWOX-BKWZ0hGZ.js → mindmap-definition-YA3MSWOX-CykDXfif.js} +1 -1
- package/dist/public/assets/{notification-permission-DThcB8rO.js → notification-permission-B9hBLJAo.js} +1 -1
- package/dist/public/assets/{packet-AYTQ26CC-C_WSBR7W.js → packet-AYTQ26CC-BDu33u4C.js} +1 -1
- package/dist/public/assets/{pdf-CW6jyF4i.js → pdf-BTD1hhPr.js} +1 -1
- package/dist/public/assets/{pegDiagram-XKGWAZYB-CQw-vxyv.js → pegDiagram-XKGWAZYB-DWdbGFng.js} +1 -1
- package/dist/public/assets/{pie-WAS4IAKB-CyAolSkk.js → pie-WAS4IAKB-CeKUt-Xf.js} +1 -1
- package/dist/public/assets/{pieDiagram-E7YTZNPT-fEikc7gQ.js → pieDiagram-E7YTZNPT-D94ZuRp2.js} +1 -1
- package/dist/public/assets/{project-abbrev-0K47Phcy.js → project-abbrev-E6FngLNw.js} +1 -1
- package/dist/public/assets/protocol-support-C3qZDXsO.js +1 -0
- package/dist/public/assets/{quadrantDiagram-AXDQQJYC-BLZF9CN6.js → quadrantDiagram-AXDQQJYC-DXkTGcPo.js} +1 -1
- package/dist/public/assets/{radar-RG4KPBEZ-DZj09Z3T.js → radar-RG4KPBEZ-C1wtnYrQ.js} +1 -1
- package/dist/public/assets/{railroad-74A4TZTK-DrrM4RhH.js → railroad-74A4TZTK-Dx_D-zM9.js} +1 -1
- package/dist/public/assets/railroad-abnf-HS5TGJTU-CBfnoAOv.js +1 -0
- package/dist/public/assets/railroad-ebnf-LZEXJU2U-0kuF9A11.js +1 -0
- package/dist/public/assets/railroad-peg-WCYAUIDC-DCe0oM6p.js +1 -0
- package/dist/public/assets/{railroadDiagram-O6MQD6OU-BjnjeLPo.js → railroadDiagram-O6MQD6OU-DVuwN3bC.js} +1 -1
- package/dist/public/assets/{requirementDiagram-BXWQKSXE-CJnHoVjp.js → requirementDiagram-BXWQKSXE-nX3JtB1N.js} +1 -1
- package/dist/public/assets/{sankeyDiagram-P5KCCOFB-BFBAycgU.js → sankeyDiagram-P5KCCOFB-DvErANKF.js} +1 -1
- package/dist/public/assets/{sequenceDiagram-WJ2MYXX4-IgIUmdp2.js → sequenceDiagram-WJ2MYXX4-BruH0Mma.js} +1 -1
- package/dist/public/assets/{stateDiagram-D77RDMKH-C8ragRoI.js → stateDiagram-D77RDMKH-BMiYrZ8Y.js} +1 -1
- package/dist/public/assets/stateDiagram-v2-MP3YSRHH-CF86bnO8.js +1 -0
- package/dist/public/assets/{swimlanes-42K2YHIH-mm0BJE0h.js → swimlanes-42K2YHIH-CK3jGfyc.js} +1 -1
- package/dist/public/assets/swimlanesDiagram-VR7AAH4N-COC62XcR.js +8 -0
- package/dist/public/assets/{switch-TfZl8YQu.js → switch-BrFrNOcn.js} +1 -1
- package/dist/public/assets/{timeline-definition-24CTP7MA-CLtACXsf.js → timeline-definition-24CTP7MA-DHf_pf2_.js} +1 -1
- package/dist/public/assets/{treeView-Q6P3EWNA-B_s8YnCD.js → treeView-Q6P3EWNA-C5uB7_Kg.js} +1 -1
- package/dist/public/assets/{treemap-WGGIJYW6-CiyeynoG.js → treemap-WGGIJYW6-BGzjaDxJ.js} +1 -1
- package/dist/public/assets/{tsMode-BJ9DHdAB.js → tsMode-C39Hmal5.js} +1 -1
- package/dist/public/assets/{use-ui-state-2bNBLDPU.js → use-ui-state-D5kpevK-.js} +1 -1
- package/dist/public/assets/{vennDiagram-4TSXK5OY-C9rcT-1u.js → vennDiagram-4TSXK5OY-9mb8KINT.js} +1 -1
- package/dist/public/assets/{wardley-WFR3VGLG-D_hqUvOM.js → wardley-WFR3VGLG-DW5VvBTA.js} +1 -1
- package/dist/public/assets/{wardleyDiagram-VM6X3IG4-Dfn7mGAc.js → wardleyDiagram-VM6X3IG4-DCM5g6RC.js} +1 -1
- package/dist/public/assets/{ws-CDXqi1pN.js → ws-BZ4-LssP.js} +1 -1
- package/dist/public/assets/{xychartDiagram-S5SC5T6Z-vwVJPUe2.js → xychartDiagram-S5SC5T6Z-Bks8gKZc.js} +1 -1
- package/dist/public/index.html +2 -2
- package/package.json +1 -1
- package/dist/public/assets/SettingsDialog-Cb2fdV1D.js +0 -8
- package/dist/public/assets/architecture-7GRP2DOG-RMEcXYv9.js +0 -1
- package/dist/public/assets/channel-BheYsxDc.js +0 -1
- package/dist/public/assets/classDiagram-ZZMXUADV-CDDLBiV5.js +0 -1
- package/dist/public/assets/classDiagram-v2-VYDZK3BY-CDDLBiV5.js +0 -1
- package/dist/public/assets/eventmodeling-NTZA5JFV-WlMCgowE.js +0 -1
- package/dist/public/assets/flowDiagram-HODETNUW-DJ99l88N.js +0 -1
- package/dist/public/assets/index-Ctw2P0rY.css +0 -2
- package/dist/public/assets/protocol-support-C1NCVjbV.js +0 -1
- package/dist/public/assets/railroad-abnf-HS5TGJTU-lXe6u3FO.js +0 -1
- package/dist/public/assets/railroad-ebnf-LZEXJU2U-C7R4jvUV.js +0 -1
- package/dist/public/assets/railroad-peg-WCYAUIDC-B24HGcGJ.js +0 -1
- package/dist/public/assets/stateDiagram-v2-MP3YSRHH-AU0bFC0Z.js +0 -1
- package/dist/public/assets/swimlanesDiagram-VR7AAH4N-cBVuNXB5.js +0 -8
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./rolldown-runtime-QTnfLwEv.js";import{t as n}from"./react-CZI7_Jkm.js";import{$ as r,A as i,C as a,J as o,Q as s,X as c,Y as l,Z as u,_ as d,c as f,g as p,h as m,j as h,k as g,m as _,n as v,p as y,r as b,w as x}from"./index-C1a3rCk2.js";import{i as S,n as C,r as w}from"./dist-CxMnSex-.js";import{A as T,E as ee,G as te,H as ne,I as re,Q as E,St as ie,T as ae,Tt as oe,W as se,Y as ce,Z as le,a as ue,at as D,ct as de,et as fe,f as pe,g as me,i as he,j as ge,mt as _e,n as ve,ot as ye,pt as be,q as xe,rt as Se,t as Ce,tt as O,v as k,z as we}from"./hotkeys-MSGaeY2m.js";import{a as Te,i as A,n as j,o as M,r as N,t as P}from"./dialog-Dam8WdmS.js";import{t as F}from"./button-CKes3Qwq.js";import{a as I,c as Ee,l as L,o as De,r as Oe,s as ke,u as R}from"./LazyTerminal-B9HzmRBx.js";import{a as Ae,c as je,d as Me,i as Ne,l as Pe,o as Fe,r as Ie,t as z,u as Le}from"./switch-TfZl8YQu.js";import{n as B}from"./x-CZCUod6A.js";import{t as V}from"./createLucideIcon-DyMAgLa3.js";import{a as Re,c as ze,d as Be,f as Ve,g as He,i as Ue,l as We,m as Ge,n as Ke,o as qe,p as Je,r as Ye,s as Xe,t as Ze,u as Qe,v as $e}from"./notification-permission-DThcB8rO.js";import{a as H,i as U,n as et,o as W,r as G,s as tt,t as nt}from"./disclosure-Ex-68BU4.js";import{t as rt}from"./use-debounced-value-C86N-mOK.js";var it=V(`bell`,[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}]]),at=V(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]),ot=V(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),st=V(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),ct=V(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),lt=V(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ut=V(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),dt=V(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),ft=V(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),K=e(n(),1),q=v();function J({id:e,value:t,min:n,max:r,step:i,className:a,onCommit:o}){let[s,c]=(0,K.useState)(String(t));return(0,K.useEffect)(()=>c(String(t)),[t]),(0,q.jsx)(L,{id:e,type:`number`,min:n,max:r,step:i,className:a,value:s,onChange:e=>c(e.target.value),onBlur:()=>{let e=Number(s);if(s.trim()===``||!Number.isFinite(e)){c(String(t));return}let i=Math.min(r??e,Math.max(n??e,e));c(String(i)),i!==t&&o(i)},onKeyDown:e=>{e.key===`Enter`&&e.target.blur()}})}function Y({label:e,description:t,descriptionClassName:n,htmlFor:r,children:i,className:a}){return(0,q.jsxs)(`div`,{className:B(`flex items-center gap-4 py-2.5`,a),children:[(0,q.jsxs)(`label`,{htmlFor:r,className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,q.jsx)(`span`,{className:`text-sm text-fg`,children:e}),t&&(0,q.jsx)(`span`,{className:B(`text-xs text-fg-muted`,n),children:t})]}),(0,q.jsx)(`div`,{className:`flex shrink-0 items-center gap-2`,children:i})]})}function X({children:e,note:t}){return(0,q.jsxs)(`div`,{className:`mb-2 flex flex-col gap-0.5`,children:[(0,q.jsx)(`h2`,{className:`text-base font-semibold text-fg`,children:e}),t&&(0,q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:t})]})}function pt(){let e=p(),[t,n]=(0,K.useState)(f());return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Appearance`}),(0,q.jsx)(Y,{label:`Theme`,children:(0,q.jsxs)(G,{value:t,onValueChange:e=>{n(e),b(e)},children:[(0,q.jsx)(W,{className:`w-32`,children:(0,q.jsx)(tt,{})}),(0,q.jsxs)(U,{children:[(0,q.jsx)(H,{value:`dark`,children:`Dark`}),(0,q.jsx)(H,{value:`light`,children:`Light`}),(0,q.jsx)(H,{value:`system`,children:`System`})]})]})}),(0,q.jsx)(Y,{label:`Cursor style`,children:(0,q.jsxs)(G,{value:e.cursorPackage,onValueChange:e=>m({cursorPackage:e}),children:[(0,q.jsx)(W,{className:`w-36`,children:(0,q.jsx)(tt,{})}),(0,q.jsx)(U,{children:d.map(e=>(0,q.jsx)(H,{value:e.id,children:e.label},e.id))})]})}),(0,q.jsx)(Y,{label:`UI font size`,htmlFor:`ui-font-size`,children:(0,q.jsx)(J,{id:`ui-font-size`,min:12,max:24,step:.5,className:`w-20 tabular-nums`,value:e.uiFontSize,onCommit:e=>m({uiFontSize:e})})}),(0,q.jsx)(Y,{label:`Terminal font size`,htmlFor:`terminal-font-size`,children:(0,q.jsx)(J,{id:`terminal-font-size`,min:9,max:24,className:`w-20 tabular-nums`,value:e.terminalFontSize,onCommit:e=>m({terminalFontSize:e})})}),(0,q.jsx)(Y,{label:`Editor font size`,htmlFor:`editor-font-size`,children:(0,q.jsx)(J,{id:`editor-font-size`,min:9,max:32,step:.5,className:`w-20 tabular-nums`,value:e.editorFontSize,onCommit:e=>m({editorFontSize:e})})}),(0,q.jsx)(Y,{label:`Density`,children:(0,q.jsxs)(G,{value:e.density,onValueChange:e=>m({density:e}),children:[(0,q.jsx)(W,{className:`w-36`,children:(0,q.jsx)(tt,{})}),(0,q.jsxs)(U,{children:[(0,q.jsx)(H,{value:`compact`,children:`Compact`}),(0,q.jsx)(H,{value:`comfortable`,children:`Comfortable`})]})]})}),(0,q.jsx)(Y,{label:`Project-based layout`,description:`Editor layouts are separated across projects.`,htmlFor:`project-based-layout`,children:(0,q.jsx)(z,{id:`project-based-layout`,checked:e.projectBasedLayout,onCheckedChange:e=>m({projectBasedLayout:e})})}),(0,q.jsx)(Y,{label:`All projects in the session list`,description:`Right sidebar displays sessions from all projects.`,htmlFor:`show-all-project-sessions`,children:(0,q.jsx)(z,{id:`show-all-project-sessions`,checked:e.showAllProjectSessions,onCheckedChange:e=>m({showAllProjectSessions:e})})})]})}function mt({profile:e}){let t=fe(),[n,r]=(0,K.useState)(!1),i=n=>{t.mutate({id:e.id,icon:n},{onError:e=>I(e)}),r(!1)},a=n=>t.mutate({id:e.id,icon_colour:n},{onError:e=>I(e)});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Y,{label:`Icon`,children:(0,q.jsxs)(We,{open:n,onOpenChange:r,children:[(0,q.jsx)(Be,{asChild:!0,children:(0,q.jsxs)(`button`,{type:`button`,className:`flex size-9 items-center justify-center rounded-md text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,q.jsx)(Ve,{icon:e.icon,colour:e.icon_colour,className:`size-5`}),(0,q.jsx)(`span`,{className:`sr-only`,children:`Choose an icon`})]})}),(0,q.jsx)(Qe,{align:`end`,className:`w-72`,children:(0,q.jsxs)(`div`,{className:`grid grid-cols-8 gap-1`,children:[(0,q.jsx)(`button`,{type:`button`,title:`Default`,onClick:()=>i(null),className:B(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,!e.icon&&`bg-elevated text-fg`),children:(0,q.jsx)(Ve,{icon:null,colour:null,className:`size-4`})}),Ge.map(({name:t,Icon:n})=>(0,q.jsx)(`button`,{type:`button`,title:t,onClick:()=>i(t),className:B(`flex h-8 items-center justify-center rounded-md text-fg-secondary transition-colors hover:bg-elevated hover:text-fg`,e.icon===t&&`bg-elevated text-fg`),children:(0,q.jsx)(n,{className:`size-4`})},t))]})})]})}),(0,q.jsx)(Y,{label:`Icon colour`,children:(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[(0,q.jsxs)(`button`,{type:`button`,title:`Default`,onClick:()=>a(null),className:B(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,!e.icon_colour&&`bg-elevated`),children:[(0,q.jsx)(`span`,{className:`size-3.5 rounded-full bg-fg-muted`}),(0,q.jsx)(`span`,{className:`sr-only`,children:`Default colour`})]}),s.map(t=>(0,q.jsxs)(`button`,{type:`button`,title:t,onClick:()=>a(t),className:B(`flex size-7 items-center justify-center rounded-md transition-colors hover:bg-elevated`,e.icon_colour===t&&`bg-elevated`),children:[(0,q.jsx)(`span`,{className:B(`size-3.5 rounded-full bg-current`,Je(t))}),(0,q.jsx)(`span`,{className:`sr-only`,children:t})]},t))]})})]})}var ht=`__none__`;function gt(){let e=k(),t=ye().data?.find(t=>t.id===e),n=ae(e??void 0),r=D(e??void 0),i=fe(),a=O(e??``),o=ne(),[s,c]=(0,K.useState)(``),[l,u]=(0,K.useState)(``),[d,f]=(0,K.useState)(!1),[p,m]=(0,K.useState)(``);if((0,K.useEffect)(()=>{t&&(c(t.name),u(t.branch_prefix))},[t]),!t)return null;let h=r.data?.default_account_id;return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Profile`}),(0,q.jsxs)(Y,{label:`Name`,description:`Letters, digits, dot, underscore and hyphen.`,htmlFor:`profile-name`,children:[(0,q.jsx)(L,{id:`profile-name`,value:s,onChange:e=>c(e.target.value),className:`w-44`}),(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:s===t.name||s.trim()===``||i.isPending,onClick:()=>i.mutate({id:t.id,name:s},{onError:e=>I(e)}),children:`Save`})]}),(0,q.jsxs)(Y,{label:`Branch prefix`,description:`Session branches become <prefix><slug(title)>.`,htmlFor:`branch-prefix`,children:[(0,q.jsx)(L,{id:`branch-prefix`,value:l,onChange:e=>u(e.target.value),placeholder:`no prefix`,className:`w-44`}),(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:l===t.branch_prefix||i.isPending,onClick:()=>i.mutate({id:t.id,branch_prefix:l},{onError:e=>I(e)}),children:`Save`})]}),(0,q.jsx)(mt,{profile:t}),(0,q.jsx)(Y,{label:`Default account`,description:`Preselected in the new-session modal.`,children:(0,q.jsxs)(G,{value:typeof h==`number`?String(h):ht,onValueChange:e=>a.mutate({default_account_id:e===ht?null:Number(e)},{onError:e=>I(e)}),children:[(0,q.jsx)(W,{className:`w-56`,children:(0,q.jsx)(tt,{})}),(0,q.jsxs)(U,{children:[(0,q.jsx)(H,{value:ht,children:`First available`}),n.data?.map(e=>(0,q.jsx)(H,{value:String(e.id),children:(0,q.jsxs)(`span`,{children:[e.agent_type,`/`,e.label]})},e.id))]})]})}),(0,q.jsx)(Y,{label:`Delete profile`,description:`Non-archived sessions block deletion.`,className:`mt-4`,children:(0,q.jsx)(F,{variant:`danger`,size:`sm`,onClick:()=>f(!0),children:`Delete…`})}),(0,q.jsx)(P,{open:d,onOpenChange:e=>{e||(f(!1),m(``))},children:(0,q.jsxs)(j,{children:[(0,q.jsxs)(Te,{children:[(0,q.jsxs)(M,{children:[`Delete profile `,(0,q.jsx)(`span`,{className:`text-fg`,children:t.name}),`?`]}),(0,q.jsx)(N,{children:`Everything this profile owns goes with it: projects, workspace layouts, accounts and their credential directories, and archived session history. Branches, repositories, and terminal logs on disk are untouched. This cannot be undone.`})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsxs)(Ee,{htmlFor:`delete-confirm-name`,children:[`Type `,(0,q.jsx)(`span`,{className:`text-fg`,children:t.name}),` to confirm`]}),(0,q.jsx)(L,{id:`delete-confirm-name`,value:p,onChange:e=>m(e.target.value),autoFocus:!0})]}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,onClick:()=>{f(!1),m(``)},children:`Cancel`}),(0,q.jsx)(F,{variant:`danger`,disabled:p!==t.name||o.isPending,onClick:()=>o.mutate(t.id,{onSuccess:()=>{Ne(),me.set(null)},onError:e=>{f(!1),m(``),I(e)}}),children:`Delete profile`})]})]})})]})}function _t({agent:e,profileId:t,onClose:n,onCreated:r}){let i=ge(),[a,o]=(0,K.useState)(``),[s,c]=(0,K.useState)(``),l=se(rt(s,150)),u=s.trim(),d=u===``||u.startsWith(`/`)||u.startsWith(`~`),f=a.trim()!==``&&d,p=()=>{!f||i.isPending||i.mutate({profile_id:t,agent_type:e.id,label:a.trim(),...u===``?{}:{import_dir:u}},{onSuccess:e=>{n(),r(e,u!==``)},onError:e=>I(e)})};return(0,q.jsx)(P,{open:!0,onOpenChange:e=>!e&&n(),children:(0,q.jsxs)(j,{children:[(0,q.jsxs)(Te,{children:[(0,q.jsxs)(M,{children:[`Add a `,e.display_name,` account`]}),(0,q.jsxs)(N,{children:[`Accounts are isolated config dirs under this profile. Naming one is enough — Puddle creates it and takes you straight to `,e.display_name,`’s login. To reuse an account you already have on this machine, give its config directory: it is copied in and the original is never touched.`]})]}),(0,q.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:e=>{e.preventDefault(),p()},children:[(0,q.jsx)(L,{autoFocus:!0,placeholder:`label, e.g. personal`,value:a,onChange:e=>o(e.target.value)}),(0,q.jsx)(Oe,{value:s,onValueChange:c,placeholder:`(optional) existing config dir, e.g. ~/.claude`,hints:(l.data?.entries??[]).map(e=>({value:e.path,label:e.name}))})]}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,onClick:n,children:`Cancel`}),(0,q.jsxs)(F,{disabled:!f||i.isPending,onClick:p,children:[(0,q.jsx)(Me,{}),`Add account`]})]})]})})}function vt({account:e,gateOpen:t,installed:n}){let r=ce(),i=le(),a=we(),[o,s]=(0,K.useState)(null),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(e.label),f=(0,K.useRef)(null);return(0,K.useEffect)(()=>d(e.label),[e.label]),(0,q.jsxs)(`div`,{className:`flex items-center gap-3 rounded-md bg-surface px-3 py-2`,children:[(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`input`,{ref:f,value:u,onChange:e=>d(e.target.value),onBlur:()=>{let t=u.trim();if(t!==e.label){if(t===``){d(e.label);return}i.mutate({id:e.id,label:t},{onError:t=>{I(t),d(e.label)}})}},onKeyDown:t=>{t.key===`Enter`?t.currentTarget.blur():t.key===`Escape`&&(d(e.label),t.currentTarget.blur())},"aria-label":`Account name`,className:`-mx-1 block w-full min-w-0 truncate rounded-sm bg-transparent px-1 py-0.5 text-sm text-fg transition-colors hover:bg-elevated focus:bg-elevated focus:outline-none`}),(0,q.jsxs)(`button`,{type:`button`,title:`Rename account`,onClick:()=>{f.current?.focus(),f.current?.select()},className:`shrink-0 rounded-sm p-0.5 text-fg-muted transition-colors hover:bg-elevated hover:text-fg`,children:[(0,q.jsx)(De,{className:`size-3`}),(0,q.jsx)(`span`,{className:`sr-only`,children:`Rename account`})]})]}),(0,q.jsx)(`span`,{className:`text-2xs ${e.logged_in?`text-success`:`text-warning`}`,children:e.logged_in?`logged in`:`not logged in`})]}),t&&(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-fg-secondary`,children:[`skip prompts`,(0,q.jsx)(z,{checked:e.skip_permissions_default,onCheckedChange:t=>i.mutate({id:e.id,skip_permissions_default:t},{onError:e=>I(e)})})]}),(0,q.jsxs)(F,{size:`sm`,variant:`secondary`,disabled:r.isPending||!n,onClick:()=>r.mutate(e.id,{onSuccess:e=>s({stream:e.stream,hint:e.hint}),onError:e=>I(e)}),children:[(0,q.jsx)($e,{}),e.logged_in?`Re-login`:`Login`]}),(0,q.jsxs)(F,{size:`icon`,variant:`ghost`,className:`size-7 text-fg-muted hover:text-danger`,onClick:()=>l(!0),children:[(0,q.jsx)(Pe,{}),(0,q.jsx)(`span`,{className:`sr-only`,children:`Delete account`})]}),o&&(0,q.jsx)(ze,{stream:o.stream,hint:o.hint,label:`${e.agent_type}/${e.label}`,onClose:()=>s(null)}),(0,q.jsx)(P,{open:c,onOpenChange:l,children:(0,q.jsxs)(j,{children:[(0,q.jsxs)(Te,{children:[(0,q.jsxs)(M,{children:[`Delete `,(0,q.jsx)(`span`,{className:`text-fg`,children:e.label}),`?`]}),(0,q.jsx)(N,{children:`Removes the account, its archived session history, and its credential directory — this logs the account out. Non-archived sessions block deletion.`})]}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,onClick:()=>l(!1),children:`Cancel`}),(0,q.jsx)(F,{variant:`danger`,disabled:a.isPending,onClick:()=>a.mutate(e.id,{onSuccess:()=>l(!1),onError:e=>{l(!1),I(e)}}),children:`Delete account`})]})]})})]})}function yt(){let e=k(),t=ee(),n=ae(e??void 0),r=D(e??void 0),i=ce(),[a,o]=(0,K.useState)(null),[s,c]=(0,K.useState)(null),l=r.data?.allowSkipPermissions===!0;return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Accounts`}),t.data?.map(e=>{let t=n.data?.filter(t=>t.agent_type===e.id)??[],r=e.available!==!1;return(0,q.jsxs)(`div`,{className:`mb-5`,children:[(0,q.jsx)(Y,{label:e.display_name,description:r?`Accounts are initialised in config dirs owned by this profile.`:`No ${e.binary??e.id} on the daemon’s PATH. Install it or add its directory to the agent search path in Sessions.`,className:`py-1`,children:(0,q.jsx)(`span`,{className:`text-2xs text-fg-muted`,children:e.id})}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[t.map(t=>(0,q.jsx)(vt,{account:t,gateOpen:l&&e.capabilities.skip_permissions,installed:r},t.id)),(0,q.jsx)(`div`,{className:`flex`,children:(0,q.jsxs)(F,{type:`button`,size:`sm`,variant:`secondary`,disabled:!r,onClick:()=>c(e),children:[(0,q.jsx)(Me,{}),`Add account`]})})]})]},e.id)}),a&&(0,q.jsx)(ze,{stream:a.stream,label:a.label,hint:a.hint,onClose:()=>o(null)}),s!==null&&e!==null&&(0,q.jsx)(_t,{agent:s,profileId:e,onClose:()=>c(null),onCreated:(e,t)=>{if(t){e.logged_in||C.info(`Imported without credentials — press Login to authenticate.`);return}i.mutate(e.id,{onSuccess:t=>o({stream:t.stream,label:`${e.agent_type}/${e.label}`,hint:t.hint}),onError:e=>I(e)})}})]})}function bt(){let e=T(),t=E(),[n,r]=(0,K.useState)(``);return(0,K.useEffect)(()=>{e.data&&r(e.data.agentPath)},[e.data]),(0,q.jsx)(Y,{label:`Agent search path (host-wide)`,description:`Colon-separated dirs the daemon prepends to PATH; helps find agent CLIs like claude (e.g. ~/.local/bin).`,htmlFor:`agent-path`,children:(0,q.jsx)(L,{id:`agent-path`,type:`text`,className:`w-64 text-2xs`,value:n,onChange:e=>r(e.target.value),onBlur:()=>{e.data&&n!==e.data.agentPath&&t.mutate({agentPath:n})}})})}function xt({kind:e,heading:t,settings:n,onSave:r,pending:i}){let a=et(e,n),o=n.sessionDefaults??{},[s,c]=(0,K.useState)(a.baseBranch),l=t=>r({...o,[e]:{...o[e],...t}});return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`p`,{className:`mb-1 mt-4 text-xs font-medium uppercase tracking-wide text-fg-gold`,children:t}),(0,q.jsx)(Y,{label:`Base branch`,description:`Blank = the repository's default base branch.`,htmlFor:`${e}-default-base`,children:(0,q.jsx)(L,{id:`${e}-default-base`,type:`text`,placeholder:`repository default`,className:`w-48`,value:s,onChange:e=>c(e.target.value),onBlur:()=>{s.trim()!==a.baseBranch&&l({baseBranch:s.trim()})}})}),(0,q.jsx)(Y,{label:`Separate branch`,description:`Start on a fresh branch off the base, in its own directory.`,htmlFor:`${e}-default-branch`,children:(0,q.jsx)(z,{id:`${e}-default-branch`,checked:a.separateBranch,disabled:i,onCheckedChange:e=>l({separateBranch:e})})}),(0,q.jsx)(Y,{label:`Separate directory`,description:a.separateBranch?`Always on while a separate branch is used.`:`Start on working copy of the selected branch instead of sharing one directory.`,htmlFor:`${e}-default-dir`,children:(0,q.jsx)(z,{id:`${e}-default-dir`,checked:a.separateWorktree,disabled:i||a.separateBranch,onCheckedChange:e=>l({separateWorktree:e})})})]})}function St(){return(0,q.jsx)(Y,{label:`Terminal scrollback`,htmlFor:`scrollback`,children:(0,q.jsx)(J,{id:`scrollback`,min:500,max:1e5,step:500,className:`w-28 tabular-nums`,value:p().terminalScrollback,onCommit:e=>m({terminalScrollback:e})})})}function Ct({id:e,label:t,description:n,initial:r,defaultText:i,onSave:a,pending:o}){let[s,c]=(0,K.useState)(r);return(0,q.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,q.jsxs)(`label`,{htmlFor:e,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[t,(0,q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:n})]}),(0,q.jsx)(R,{id:e,value:s,onChange:e=>c(e.target.value),rows:6,className:`font-mono`}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:s===r||o,onClick:()=>a(s),children:`Save`}),(0,q.jsx)(F,{size:`sm`,variant:`ghost`,disabled:s===i||o,onClick:()=>{c(i),a(i)},children:`Reset to default`})]})]})}var wt={id:`4f3c2b1a-7e6d-5c4b-3a2f-1e0d9c8b7a6f`,title:null,agent_title:`Refactor the auth flow`,osc_title:`claude`,branch:`alice/refactor-auth`,worktree_path:`/home/alice/code/app--refactor-auth`,status:`waiting_input`,agent_type:`claude-code`};function Tt({initial:e,onSave:t,pending:n}){let[i,a]=(0,K.useState)(e),o=i.length>0?i:u;return(0,q.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,q.jsxs)(`label`,{htmlFor:`tab-title-template`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Template`,(0,q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Compose the label from the parts below. Empty falls back to the default.`})]}),(0,q.jsx)(L,{id:`tab-title-template`,value:i,onChange:e=>a(e.target.value),className:`font-mono`,placeholder:u}),(0,q.jsxs)(`p`,{className:`text-xs text-fg-muted`,children:[`Preview`,` `,(0,q.jsx)(`span`,{className:`ml-1 font-sans text-fg`,children:Ie(wt,o)})]}),(0,q.jsx)(`dl`,{className:`mt-1 flex flex-col gap-0.5 text-xs`,children:r.map(([e,t])=>(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(`dt`,{className:`w-24 shrink-0 font-mono text-fg-secondary`,children:`\${${e}}`}),(0,q.jsx)(`dd`,{className:`text-fg-muted`,children:t})]},e))}),(0,q.jsxs)(`div`,{className:`flex gap-2`,children:[(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:i===e||n,onClick:()=>t(i),children:`Save`}),(0,q.jsx)(F,{size:`sm`,variant:`ghost`,disabled:i==="${name}"||n,onClick:()=>{a(u),t(u)},children:`Reset to default`})]})]})}function Et(){let e=k(),t=ye().data?.find(t=>t.id===e),n=D(e??void 0),r=O(e??``),[i,a]=(0,K.useState)(!1),[s,u]=(0,K.useState)(``),d=n.data?.allowSkipPermissions===!0,f=e=>r.mutate({allowSkipPermissions:e},{onSuccess:()=>{a(!1),u(``)},onError:e=>I(e)}),p=e=>t=>r.mutate({[e]:t},{onError:e=>I(e)});return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Sessions`}),(0,q.jsx)(Y,{label:`Skip permission prompts`,htmlFor:`gate`,children:(0,q.jsx)(z,{id:`gate`,checked:d,onCheckedChange:e=>{e?a(!0):f(!1)}})}),(0,q.jsx)(Y,{label:`Capture exported env variables`,description:n.data?.captureSessionEnv===!1?`No variables are captured or injected; already-captured variabless are kept for when this is re-enabled.`:`Variables exported in a session persist and are re-injected upon terminal and agent restarts.`,htmlFor:`capture-env`,children:(0,q.jsx)(z,{id:`capture-env`,checked:n.data?.captureSessionEnv!==!1,disabled:r.isPending,onCheckedChange:e=>r.mutate({captureSessionEnv:e},{onError:e=>I(e)})})}),(0,q.jsx)(bt,{}),(0,q.jsx)(St,{}),(0,q.jsxs)(`div`,{className:`mt-5`,children:[(0,q.jsx)(X,{children:`New session defaults`}),n.data&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(xt,{kind:`agent`,heading:`New agents`,settings:n.data,onSave:e=>r.mutate({sessionDefaults:e},{onError:e=>I(e)}),pending:r.isPending},`${e}:agent-seed`),(0,q.jsx)(xt,{kind:`terminal`,heading:`New terminals`,settings:n.data,onSave:e=>r.mutate({sessionDefaults:e},{onError:e=>I(e)}),pending:r.isPending},`${e}:terminal-seed`)]})]}),(0,q.jsxs)(`div`,{className:`mt-5`,children:[(0,q.jsx)(X,{note:`Sent to agent as opening message when a session (re)starts. You can make this empty.`,children:`Launch text`}),n.data&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ct,{id:`onboarding-template`,label:`New worktree`,description:`Use {{rules}} where the repo's onboarding notes should appear.`,initial:n.data.onboardingTemplate??l,defaultText:l,onSave:p(`onboardingTemplate`),pending:r.isPending},`${e}:onboarding`),(0,q.jsx)(Ct,{id:`concurrent-template`,label:`Existing / shared worktree`,description:`For a session joining a worktree other agents may already be working in.`,initial:n.data.concurrentTemplate??o,defaultText:o,onSave:p(`concurrentTemplate`),pending:r.isPending},`${e}:concurrent`),(0,q.jsx)(Ct,{id:`restart-template`,label:`Resume after restart`,description:`Sent when a session resumes after a daemon restart or machine reboot.`,initial:n.data.restartTemplate??c,defaultText:c,onSave:p(`restartTemplate`),pending:r.isPending},`${e}:restart`)]})]}),(0,q.jsxs)(`div`,{className:`mt-5`,children:[(0,q.jsx)(X,{children:`Tab title`}),n.data&&(0,q.jsx)(Tt,{initial:n.data.tabTitleTemplate||"${name}",onSave:p(`tabTitleTemplate`),pending:r.isPending},`${e}:tab-title`)]}),(0,q.jsx)(P,{open:i,onOpenChange:e=>{e||(a(!1),u(``))},children:(0,q.jsxs)(j,{children:[(0,q.jsxs)(Te,{children:[(0,q.jsxs)(M,{className:`flex items-center gap-2`,children:[(0,q.jsx)(lt,{className:`size-5 text-danger`}),`Run agents without permission prompts?`]}),(0,q.jsx)(N,{asChild:!0,children:(0,q.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,q.jsx)(`p`,{children:`A prompt-free agent acts unattended, with your credentials, inside its worktree — and nothing technically stops a shell command from reaching outside it. It can:`}),(0,q.jsxs)(`ul`,{className:`list-disc pl-5 text-fg-secondary`,children:[(0,q.jsx)(`li`,{children:`run any shell command without asking first,`}),(0,q.jsx)(`li`,{children:`modify, delete, or exfiltrate files your user can reach,`}),(0,q.jsx)(`li`,{children:`install dependencies and execute the network requests they make,`}),(0,q.jsx)(`li`,{children:`push branches or call remote APIs with the credentials it finds.`})]}),(0,q.jsx)(`p`,{children:`Only open this gate if every account you opt in runs work you would trust a colleague to run unsupervised on this machine.`}),(0,q.jsx)(`p`,{className:`text-fg-muted`,children:`Opening it also records the agent’s own bypass-permissions acceptance for this profile’s accounts, so the skip actually takes effect.`})]})})]}),(0,q.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,q.jsxs)(Ee,{htmlFor:`confirm-name`,children:[`Type `,(0,q.jsx)(`span`,{className:`text-fg`,children:t?.name}),` to confirm`]}),(0,q.jsx)(L,{id:`confirm-name`,value:s,onChange:e=>u(e.target.value),autoFocus:!0})]}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,onClick:()=>{a(!1),u(``)},children:`Cancel`}),(0,q.jsx)(F,{variant:`danger`,disabled:s!==t?.name||r.isPending,onClick:()=>f(!0),children:`Open the gate`})]})]})})]})}var Dt={desktop:!0,sound:!1,muted_projects:[]};function Ot(){let[e,t]=(0,K.useState)(Ze);return(0,K.useEffect)(()=>{let e=()=>t(Ze());return window.addEventListener(`focus`,e),()=>window.removeEventListener(`focus`,e)},[]),[e,()=>t(Ze())]}function kt({permission:e,onRequest:t}){return e===`granted`?null:(0,q.jsxs)(`p`,{className:`pb-2 text-xs text-warning`,children:[e==="default"&&(0,q.jsxs)(q.Fragment,{children:[`The browser has not been asked for permission yet, so nothing will show —`,` `,(0,q.jsx)(`button`,{type:`button`,onClick:t,className:`underline underline-offset-2 transition-colors hover:text-fg`,children:`request it now`}),`.`]}),e===`denied`&&`Blocked by the browser — allow notifications for this site in its site settings, then return here.`,e===`unsupported`&&`This browser cannot show desktop notifications.`]})}function At(){let e=k(),t=D(e??void 0),n=O(e??``),r=de(e??void 0),[i,a]=Ot(),o={...Dt,...t.data?.notifications??{}},s=e=>n.mutate({notifications:e},{onError:e=>I(e)}),c=()=>{typeof Notification>`u`||Notification.requestPermission().then(a)};return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Notifications`}),(0,q.jsx)(Y,{label:`Desktop notification on waiting`,htmlFor:`notify-desktop`,children:(0,q.jsx)(z,{id:`notify-desktop`,checked:o.desktop,onCheckedChange:e=>{e&&c(),s({...o,desktop:e})}})}),o.desktop&&(0,q.jsx)(kt,{permission:i,onRequest:c}),(0,q.jsx)(Y,{label:`Sound`,htmlFor:`notify-sound`,children:(0,q.jsx)(z,{id:`notify-sound`,checked:o.sound,onCheckedChange:e=>s({...o,sound:e})})}),(0,q.jsx)(Y,{label:`Muted projects`,description:`No notifications from these projects.`,children:(0,q.jsxs)(`span`,{className:`text-2xs text-fg-muted tabular-nums`,children:[o.muted_projects.length,` muted`]})}),(0,q.jsx)(`div`,{className:`flex flex-col gap-1`,children:r.data?.map(e=>(0,q.jsxs)(`label`,{className:`flex items-center gap-2 rounded-md px-2 py-1 text-sm text-fg-secondary hover:bg-elevated`,children:[(0,q.jsx)(z,{checked:o.muted_projects.includes(e.id),onCheckedChange:t=>s({...o,muted_projects:t?[...o.muted_projects,e.id]:o.muted_projects.filter(t=>t!==e.id)})}),e.name]},e.id))})]})}function jt(){let e=p();return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Editor`}),(0,q.jsx)(Y,{label:`Tab size`,description:`Spaces per indent level.`,htmlFor:`tab-size`,children:(0,q.jsx)(J,{id:`tab-size`,min:1,max:8,className:`w-20 tabular-nums`,value:e.editorTabSize,onCommit:e=>m({editorTabSize:e})})}),(0,q.jsx)(Y,{label:`Word wrap`,htmlFor:`word-wrap`,children:(0,q.jsx)(z,{id:`word-wrap`,checked:e.editorWordWrap,onCheckedChange:e=>m({editorWordWrap:e})})}),(0,q.jsx)(Y,{label:`SSH host for editor links`,description:`Used for vscode:// and cursor:// remote links until the CLI supplies it automatically.`,htmlFor:`editor-link-host`,children:(0,q.jsx)(L,{id:`editor-link-host`,type:`text`,placeholder:y.get()??`user@host`,className:`w-48`,value:e.editorLinkSshHost,onChange:e=>m({editorLinkSshHost:e.target.value})})})]})}function Mt({value:e,isDefault:t,onRecord:n,onReset:r}){let[i,a]=(0,K.useState)(!1);return(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>a(!0),onBlur:()=>a(!1),onKeyDown:e=>{if(!i)return;if(e.preventDefault(),e.stopPropagation(),e.key===`Escape`){a(!1);return}let t=he(e.nativeEvent);t&&(n(t),a(!1))},className:B(`min-w-24 rounded-md px-2 py-1 text-center font-mono text-xs transition-colors`,i?`bg-action text-action-ink`:`bg-elevated text-fg hover:bg-border/70`),children:i?`Press keys…`:ue(e)}),!t&&(0,q.jsxs)(`button`,{type:`button`,title:`Reset to default`,onClick:r,className:`rounded-md p-1 text-fg-gold transition-colors hover:bg-elevated hover:text-fg`,children:[(0,q.jsx)(st,{className:`size-3.5`}),(0,q.jsx)(`span`,{className:`sr-only`,children:`Reset to default`})]})]})}function Nt(){let e=k(),t=D(e??void 0),n=O(e??``),r=t.data?.hotkeys??{},i=(e,t)=>r[e]||t,a=new Map;for(let e of Ce){let t=i(e.id,pe(e));a.set(t,(a.get(t)??0)+1)}let o=(e,t)=>n.mutate({hotkeys:{...r,[e]:t}},{onError:e=>I(e)}),s=e=>{let t={...r};delete t[e],n.mutate({hotkeys:t},{onError:e=>I(e)})};return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Hotkeys`}),(0,q.jsx)(`p`,{className:`mb-4 text-xs text-fg-muted`,children:`Per-profile keyboard shortcuts. Filetree navigation and terminal line-edits are fixed.`}),(0,q.jsx)(Y,{label:`App shortcuts in terminals`,description:t.data?.terminalAppShortcuts===!1?`A focused terminal receives these keys instead.`:`The shortcuts below work while a terminal is focused.`,htmlFor:`terminal-app-shortcuts`,className:`mb-4`,children:(0,q.jsx)(z,{id:`terminal-app-shortcuts`,checked:t.data?.terminalAppShortcuts!==!1,disabled:n.isPending,onCheckedChange:e=>n.mutate({terminalAppShortcuts:e},{onError:e=>I(e)})})}),ve.map(e=>{let t=Ce.filter(t=>t.group===e);return t.length===0?null:(0,q.jsxs)(`div`,{className:`mb-5`,children:[(0,q.jsx)(`div`,{className:`mb-1 text-2xs font-medium uppercase tracking-wide text-fg-gold`,children:e}),t.map(e=>{let t=i(e.id,pe(e)),n=(a.get(t)??0)>1?`Conflicts with another shortcut.`:void 0;return(0,q.jsx)(Y,{label:e.label,description:n,descriptionClassName:n?`text-interrupted`:void 0,children:(0,q.jsx)(Mt,{value:t,isDefault:!r[e.id],onRecord:t=>o(e.id,t),onReset:()=>s(e.id)})},e.id)})]},e)})]})}var Pt=e=>[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);function Ft(e,t){let[n,r]=(0,K.useState)(null),[o,s]=(0,K.useState)(!0),[c,l]=(0,K.useState)(``),u=(0,K.useRef)(0),d=(0,K.useRef)(null);(0,K.useEffect)(()=>()=>{u.current+=1},[]),(0,K.useEffect)(()=>{if(n)return;let e=!0;return d.current=null,s(!0),(async()=>{try{let t=Pt(crypto.getRandomValues(new Uint8Array(32))),n=Pt(new Uint8Array(await crypto.subtle.digest(`SHA-256`,new TextEncoder().encode(t))));e&&(d.current={code:t,challenge:n})}catch(t){e&&l(t instanceof Error?t.message:`Could not prepare sign-in.`)}finally{e&&s(!1)}})(),()=>{e=!1,d.current=null}},[n]);let f=(0,K.useRef)(t);return(0,K.useEffect)(()=>{f.current=t},[t]),(0,K.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>{u.current+=1,r(null),l(`Sign-in expired. Try again.`)},Math.max(0,n.request.expires-Date.now()));return()=>clearTimeout(e)},[n]),(0,K.useEffect)(()=>{if(!n||e)return;let t=u.current,i=!1,a,o=async()=>{try{if(n.request.expires<=Date.now())throw Error(`Sign-in expired. Try again.`);let{ready:e}=x.parse(await S(`POST`,`/cockpit/remote/registration`,{service:n.request.service,code:n.code}));if(i||t!==u.current)return;if(n.request.expires<=Date.now())throw Error(`Sign-in expired. Try again.`);e?(r(null),await f.current({t:`enable`,registration:{service:n.request.service,app:n.request.app,code:n.code}})):a=setTimeout(()=>void o(),2e3)}catch(e){if(i||t!==u.current)return;r(null),l(e instanceof Error?e.message:`Sign-in failed. Try again.`)}};return a=setTimeout(()=>void o(),2e3),()=>{i=!0,clearTimeout(a)}},[n,e]),{attempt:n,preparing:o,error:c,begin:(t,n,o)=>{if(!(e||!d.current)){l(``);try{let{code:e,challenge:s}=d.current,c=a.safeParse({service:t.trim(),app:n.trim(),label:o.trim(),challenge:s,expires:Date.now()+i.invitationMs});if(!c.success)throw Error(`Enter a host name and exact HTTPS application and relay origins.`);let l=c.data,f=`${l.app}/#register=${encodeURIComponent(JSON.stringify(l))}`;u.current+=1,d.current=null,r({request:l,code:e,url:f}),window.open(f,`_blank`,`noopener,noreferrer`)}catch(e){l(e instanceof Error?e.message:`Could not start sign-in.`)}}},cancel:()=>{u.current+=1,d.current=null,s(!0),r(null)}}}function It({service:e=`https://charles.waddlelabs.ai`,app:t=`https://puddle.waddlelabs.ai`,hostName:n,busy:r,disabled:i,enable:a,cancel:o}){let[s,c]=(0,K.useState)(e),[l,u]=(0,K.useState)(t),[d,f]=(0,K.useState)(n),p=Ft(i,a),m=i||p.preparing||!!p.attempt;return(0,q.jsxs)(`form`,{className:`mt-4 space-y-4`,onSubmit:e=>{e.preventDefault(),m||p.begin(s,l,d)},children:[(0,q.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[`Application origin`,(0,q.jsx)(L,{type:`url`,required:!0,value:l,onChange:e=>u(e.target.value),placeholder:`https://app.example.com`,autoComplete:`off`,disabled:m})]}),(0,q.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[`Relay origin`,(0,q.jsx)(L,{type:`url`,required:!0,value:s,onChange:e=>c(e.target.value),placeholder:`https://relay.example.com`,autoComplete:`off`,disabled:m})]}),(0,q.jsxs)(`label`,{className:`grid gap-1.5 text-sm`,children:[`Host name`,(0,q.jsx)(L,{required:!0,maxLength:80,value:d,onChange:e=>f(e.target.value),disabled:m})]}),o&&(0,q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Saving a new registration revokes existing browser approvals and invitations.`}),p.error&&(0,q.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:p.error}),p.attempt?(0,q.jsxs)(`div`,{className:`space-y-3 text-sm`,children:[(0,q.jsxs)(`p`,{role:`status`,children:[`Confirm this host in your browser. Match request`,` `,(0,q.jsx)(`strong`,{className:`font-mono`,children:p.attempt.request.challenge.slice(0,8).toUpperCase()}),`. Sign-in expires in five minutes.`]}),(0,q.jsx)(`a`,{href:p.attempt.url,target:`_blank`,rel:`noreferrer`,className:`text-accent hover:opacity-80`,children:`Continue in browser ↗`}),(0,q.jsx)(F,{type:`button`,variant:`ghost`,onClick:p.cancel,children:`Cancel sign-in`})]}):(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,q.jsx)(F,{type:`submit`,disabled:m||!d.trim()||!s||!l,children:r?`Enabling…`:p.preparing?`Preparing sign-in…`:`Sign in and enable`}),o&&(0,q.jsx)(F,{type:`button`,variant:`ghost`,disabled:m,onClick:o,children:`Cancel`})]})]})}var Lt=t(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),Z=t((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),Rt=t((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),zt=t(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),Bt=t(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),Vt=t((e=>{var t=Z().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),Ht=t((e=>{var t=Z().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),Ut=t((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),Wt=t((e=>{var t=Rt(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),Gt=t((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),Kt=t((e=>{var t=Gt();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),qt=t(((e,t)=>{var n=Kt();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),Jt=t((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),Yt=t((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
|
|
2
|
-
]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^[0-9]+$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),Q=t((e=>{var t=Jt(),n=Yt();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),Xt=t((e=>{var t=Z(),n=Wt(),r=Rt(),i=Q(),a=Jt(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function l(e,t){return i.getCharCountIndicator(e,t)+4}function u(e,t){let n=0;return e.forEach(function(e){let r=l(e.mode,t);n+=r+e.getBitsLength()}),n}function d(t,n){for(let r=1;r<=40;r++)if(u(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-l(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return d(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),Zt=t((e=>{var t=Z(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),Qt=t(((e,t)=>{var n=Q();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),$t=t(((e,t)=>{var n=Q(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),en=t(((e,t)=>{var n=Q();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),tn=t(((e,t)=>{var n=Q(),r=Z();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
|
|
3
|
-
Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),nn=t(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),rn=t((e=>{var t=Q(),n=Qt(),r=$t(),i=en(),a=tn(),o=Yt(),s=Z(),c=nn();function l(e){return unescape(encodeURIComponent(e)).length}function u(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function d(e){let n=u(o.NUMERIC,t.NUMERIC,e),r=u(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=u(o.BYTE,t.BYTE,e),a=u(o.KANJI,t.KANJI,e)):(i=u(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function f(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function p(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function m(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:l(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:l(i.data)}])}}return n}function h(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=f(r[o].lastCount+l.length,l.mode)-f(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=f(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function g(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
|
|
4
|
-
Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(g(t,null)):t.data&&e.push(g(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=h(m(d(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(p(a))},e.rawSplit=function(t){return e.fromArray(d(t,s.isKanjiModeEnabled()))}})),an=t((e=>{var t=Z(),n=Rt(),r=zt(),i=Bt(),a=Vt(),o=Ht(),s=Ut(),c=Wt(),l=qt(),u=Xt(),d=Zt(),f=Q(),p=rn();function m(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function h(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function g(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function _(e,t){let n=e.size,r=u.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function v(e,t,n){let r=e.size,i=d.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function y(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function b(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),f.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return x(a,e,n)}function x(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,u=Math.floor(i/o),d=Math.floor(a/o),f=d+1,p=u-d,m=new l(p),h=0,g=Array(o),_=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?d:f;g[e]=y.slice(h,h+t),_[e]=m.encode(g[e]),h+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<g[C].length&&(b[x++]=g[C][S]);for(S=0;S<p;S++)for(C=0;C<o;C++)b[x++]=_[C][S];return b}function S(e,n,r,a){let o;if(Array.isArray(e))o=p.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=p.rawSplit(e);t=u.getBestVersionForData(n,r)}o=p.fromString(e,t||40)}else throw Error(`Invalid data`);let c=u.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
|
|
5
|
-
The chosen QR Code version cannot contain this amount of data.
|
|
6
|
-
Minimum version required to store current data is: `+c+`.
|
|
7
|
-
`);let l=b(n,r,o),d=new i(t.getSymbolSize(n));return m(d,n),h(d),g(d,n),v(d,r,0),n>=7&&_(d,n),y(d,l),isNaN(a)&&(a=s.getBestMask(d,v.bind(null,d,r))),s.applyMask(a,d),v(d,r,a),{modules:d,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=u.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),S(e,a,i,o)}})),on=t((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),sn=t((e=>{var t=on();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),cn=t((e=>{var t=on();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
|
|
8
|
-
`;return typeof a==`function`&&a(null,p),p}})),ln=e(t((e=>{var t=Lt(),n=an(),r=sn(),i=cn();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})}))(),1);function un({value:e,label:t}){let n=(0,K.useMemo)(()=>{try{let{modules:t}=ln.create(e),n=[];for(let e=0;e<t.size;e+=1)for(let r=0;r<t.size;r+=1)t.get(e,r)&&n.push(`M${r+4} ${e+4}h1v1h-1z`);return{size:t.size+8,path:n.join(``)}}catch{return null}},[e]);return n?(0,q.jsx)(`svg`,{role:`img`,"aria-label":t,"data-theme":`light`,className:`block h-auto max-w-full rounded-lg bg-paper text-fg`,xmlns:`http://www.w3.org/2000/svg`,width:280,height:280,viewBox:`0 0 ${n.size} ${n.size}`,shapeRendering:`crispEdges`,children:(0,q.jsx)(`path`,{fill:`currentColor`,d:n.path})}):(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`QR code unavailable. Use the pairing link.`})}function dn({url:e,expires:t,dismiss:n}){let[r,i]=(0,K.useState)(``);return(0,K.useEffect)(()=>{let e=setTimeout(n,Math.max(0,t-Date.now()));return()=>clearTimeout(e)},[t,n]),(0,q.jsxs)(`section`,{className:`mt-5 space-y-3`,"aria-label":`Pairing invitation`,children:[(0,q.jsxs)(`p`,{className:`text-sm text-fg-secondary`,children:[`Scan or open this link on the new browser, then approve its exact identity below. Expires`,` `,new Date(t).toLocaleTimeString(),`.`]}),(0,q.jsx)(un,{value:e,label:`Pairing invitation QR code`}),(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,q.jsx)(F,{variant:`secondary`,onClick:()=>{navigator.clipboard.writeText(e).then(()=>i(`Pairing link copied.`)).catch(()=>i(`Could not copy. Open the pairing link or scan the QR code.`))},children:`Copy pairing link`}),(0,q.jsx)(`a`,{href:e,target:`_blank`,rel:`noreferrer`,className:`px-2 text-sm text-fg hover:opacity-80`,children:`Open pairing link ↗`}),(0,q.jsx)(F,{variant:`ghost`,onClick:n,children:`Hide invitation`})]}),r&&(0,q.jsx)(`p`,{className:`text-xs text-fg-muted`,role:`status`,children:r})]})}function fn({devices:e,now:t,currentDevice:n,...r}){let i=e.filter(e=>e.status!==`revoked`).sort((e,t)=>Number(t.status===`pending`)-Number(e.status===`pending`));return(0,q.jsxs)(`div`,{className:`grid gap-2`,children:[i.length===0&&(0,q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`No browsers yet. Create a pairing invitation to add one.`}),i.map(e=>(0,q.jsx)(pn,{device:e,now:t,current:e.id===n,...r},e.id))]})}function pn({device:e,now:t,current:n,busy:r,approve:a,revoke:o}){let s=e.status===`pending`,c=e.status===`approved`?Math.min(e.expires,e.lastUsed+i.idleMs):e.expires,l=c<=t,u=l?`Expired`:s?`Awaiting approval`:`Approved`,d=(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`truncate text-sm text-fg`,title:e.label,children:e.label}),(0,q.jsxs)(`p`,{className:B(`text-2xs`,l?`text-fg-muted`:s?`text-warning`:`text-success`),children:[u,n&&(0,q.jsx)(`span`,{className:`text-fg-muted`,children:` · this browser`})]})]}),f=(0,q.jsxs)(`div`,{className:`mt-2 space-y-1 text-2xs text-fg-muted`,children:[(0,q.jsx)(`code`,{className:`block break-all text-fg-secondary`,children:e.peer}),(0,q.jsxs)(`p`,{children:[l?`Expired`:`Expires`,` `,new Date(c).toLocaleString()]})]});return(0,q.jsxs)(`article`,{"aria-label":e.label,className:`min-w-0 rounded-md bg-surface px-3 py-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[s?d:(0,q.jsx)(nt,{className:`min-w-0 flex-1`,summary:d,summaryClassName:`flex-row-reverse gap-2 [&>svg]:m-2`,children:f}),s&&!l&&(0,q.jsxs)(F,{variant:`secondary`,size:`sm`,disabled:r,onClick:()=>a(e.id),"aria-label":`Approve ${e.label}`,children:[(0,q.jsx)(ut,{}),` Approve`]}),(0,q.jsx)(F,{variant:`ghost`,size:`icon`,className:`shrink-0 text-fg-muted`,disabled:r,"aria-label":`Revoke ${e.label}`,title:`Revoke browser`,onClick:()=>o(e.id),children:(0,q.jsx)(Pe,{})})]}),s&&f]})}function mn({devices:e,now:t,busy:n,act:r}){return(0,q.jsx)(nt,{className:`mt-6 text-sm`,summary:`Connected browsers`,summaryClassName:`py-2`,children:(0,q.jsxs)(`section`,{className:`space-y-3 pt-2`,"aria-label":`Browsers`,children:[(0,q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Approval grants terminal control of this host. Compare the identity with the browser requesting access.`}),(0,q.jsx)(fn,{devices:e,now:t,busy:n,approve:e=>void r({t:`approve`,id:e}),revoke:e=>void r({t:`revoke`,id:e})}),(0,q.jsx)(`p`,{className:`text-xs text-fg-muted`,children:`Revocation detaches viewers; agents continue running. Browsers expire after 30 days of inactivity or 90 days overall.`})]})})}function hn({open:e,busy:t,error:n,onOpenChange:r,onConfirm:i}){return(0,q.jsx)(P,{open:e,onOpenChange:e=>!t&&r(e),children:(0,q.jsxs)(j,{children:[(0,q.jsx)(M,{children:`Delete this host’s remote registration?`}),(0,q.jsx)(N,{children:`Disable remote access, remove the saved registration from this host and revoke every browser approval and invitation. Agents keep running. Connecting again requires a new registration code and fresh browser approvals.`}),(0,q.jsx)(`p`,{className:`text-sm text-fg-secondary`,children:`This also removes the host from the remote host list. If the service is unavailable, removal finishes when it reconnects.`}),n&&(0,q.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:n}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,disabled:t,onClick:()=>r(!1),children:`Cancel`}),(0,q.jsx)(F,{variant:`danger`,disabled:t,onClick:i,children:t?`Deleting…`:`Delete registration`})]})]})})}function gn(){let e=oe(),t=xe(),[n,r]=(0,K.useState)(!1),[i,a]=(0,K.useState)(``),[o,s]=(0,K.useState)(``),[c,l]=(0,K.useState)(!1),[u,d]=(0,K.useState)(!1),[f,p]=(0,K.useState)(!1),[m,_]=(0,K.useState)(null),v=(0,K.useCallback)(()=>_(null),[]),y=ie({queryKey:[`cockpit-remote`],queryFn:async()=>g.parse(await S(`GET`,`/cockpit/remote`)),refetchInterval:!n&&5e3,refetchOnWindowFocus:!n,refetchOnReconnect:!n,retry:!1,gcTime:0}),b=async t=>{if(n)return!1;r(!0),s(``),a(``);try{if(e.isFetching({queryKey:[`cockpit-remote`],exact:!0})){let e=await y.refetch({cancelRefetch:!1});if(e.isError)throw e.error}let n=h.parse(await S(`POST`,`/cockpit/remote`,t));return t.t===`pair`&&n.url&&n.invitation?_({url:n.url,expires:n.invitation.expires}):(a({enable:`Remote access enabled.`,approve:`Browser approved.`,revoke:`Browser revoked.`,disable:`Remote access disabled. Agents continue running.`,delete_registration:`Registration deleted from this host. Agents continue running.`,reset:`Host identity rotated and all browsers revoked. Enable access and pair again.`,status:`Status refreshed.`,devices:`Browsers refreshed.`,pair:`Invitation created.`}[t.t]),(t.t===`disable`||t.t===`reset`||t.t===`enable`||t.t===`delete_registration`)&&v()),(t.t===`enable`||t.t===`delete_registration`)&&l(!1),d(!1),p(!1),await y.refetch(),!0}catch(e){return s(e instanceof Error?e.message:`Host operation failed. Refresh status before retrying.`),await y.refetch(),!1}finally{r(!1)}},x=y.data,C=y.error instanceof w&&y.error.status===404,T=n||y.isError;return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{note:`Applies to ${t.data?.displayName||t.data?.hostname||`the host open in this window`}, across all profiles`,children:`Remote access`}),(0,q.jsxs)(`div`,{className:`mt-5 flex items-center justify-between gap-3`,children:[(0,q.jsx)(`span`,{role:`status`,className:`text-sm font-medium`,children:y.isError?`Status unavailable`:x?x.availability===`ready`?x.configured?x.enabled?x.connected?`Connected to relay`:`Enabled · relay disconnected`:`Disabled`:`Not configured`:`Daemon upgrade required`:`Checking remote access…`}),(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,disabled:n,onClick:()=>void y.refetch({cancelRefetch:!1}),children:[(0,q.jsx)(Le,{}),`Refresh status`]})]}),y.isError&&(0,q.jsx)(`p`,{role:`alert`,className:`mt-3 text-sm text-danger`,children:C?`This cockpit does not provide remote controls. Update Puddle and reopen this window.`:y.error.message}),o&&!f&&(0,q.jsx)(`p`,{role:`alert`,className:`mt-3 text-sm text-danger`,children:o}),i&&(0,q.jsx)(`p`,{role:`status`,className:`mt-3 text-sm text-fg-secondary`,children:i}),x?.availability!==void 0&&x.availability!==`ready`&&(0,q.jsx)(`p`,{className:`mt-3 text-sm text-fg-secondary`,children:`Update the daemon on this host, then refresh status to set up mobile access.`}),x?.availability===`ready`&&(0,q.jsxs)(q.Fragment,{children:[!x.enabled&&x.supervisor&&(!x.configured||c)?(0,q.jsx)(It,{service:x.service,app:x.app,hostName:t.data?.displayName||t.data?.hostname||`My host`,busy:n,disabled:T,enable:b,cancel:x.configured?()=>l(!1):void 0},x.host??`new`):x.configured?(0,q.jsxs)(`dl`,{className:`mt-4 space-y-2 text-xs text-fg-secondary`,children:[(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`dt`,{className:`text-fg-muted`,children:`Application`}),(0,q.jsx)(`dd`,{className:`break-all`,children:(0,q.jsxs)(`a`,{href:x.app,target:`_blank`,rel:`noreferrer`,className:`hover:text-fg`,children:[x.app,` ↗`]})})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`dt`,{className:`text-fg-muted`,children:`Relay`}),(0,q.jsx)(`dd`,{className:`break-all`,children:x.service})]}),x.peer&&(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`dt`,{className:`text-fg-muted`,children:`Host identity`}),(0,q.jsx)(`dd`,{className:`break-all font-mono`,children:x.peer})]})]}):null,!x.enabled&&!x.supervisor&&(0,q.jsx)(`p`,{className:`mt-4 text-sm text-fg-secondary`,children:`This host needs persistent systemd or launchd supervision before access can be enabled here. For another supervisor, configure both the daemon and connector using the remote CLI commands.`}),x.configured&&(0,q.jsxs)(`div`,{className:`mt-4 flex flex-wrap gap-2`,role:`group`,"aria-label":`Registration actions`,children:[!x.enabled&&x.supervisor&&!c&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(F,{disabled:T,onClick:()=>void b({t:`enable`}),children:`Enable remote access`}),(0,q.jsx)(F,{variant:`ghost`,disabled:T,onClick:()=>l(!0),children:`Change registration`})]}),x.enabled&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(F,{disabled:T,onClick:()=>void b({t:`pair`}),children:`Pair a browser`}),(0,q.jsx)(F,{variant:`ghost`,disabled:T,onClick:()=>void b({t:`disable`}),children:`Disable remote access`})]}),x.canDeleteRegistration&&(0,q.jsx)(F,{variant:`ghost`,disabled:T,onClick:()=>{s(``),p(!0)},children:`Delete registration`})]}),m&&x.enabled&&(0,q.jsx)(dn,{...m,dismiss:v}),x.configured&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(mn,{devices:x.devices,now:y.dataUpdatedAt,busy:T,act:b}),(0,q.jsxs)(nt,{className:`mt-6 text-sm`,summary:`Host identity recovery`,summaryClassName:`py-2`,children:[(0,q.jsx)(`p`,{className:`my-3 text-xs text-fg-muted`,children:`Rotate a lost or compromised host identity. All browser approvals and invitations will be revoked.`}),(0,q.jsx)(F,{variant:`ghost`,disabled:T,onClick:()=>d(!0),children:`Reset host identity…`})]})]})]}),(0,q.jsx)(P,{open:u,onOpenChange:e=>!n&&d(e),children:(0,q.jsxs)(j,{children:[(0,q.jsx)(M,{children:`Reset this host’s remote identity?`}),(0,q.jsx)(N,{children:`Disable remote access, rotate the host identity and revoke every paired browser and invitation. Agents keep running. Enable access and pair each browser again afterwards.`}),(0,q.jsxs)(A,{children:[(0,q.jsx)(F,{variant:`ghost`,disabled:n,onClick:()=>d(!1),children:`Cancel`}),(0,q.jsx)(F,{variant:`danger`,disabled:n,onClick:()=>void b({t:`reset`}),children:`Reset host identity`})]})]})}),(0,q.jsx)(hn,{open:f,busy:n,error:o,onOpenChange:p,onConfirm:()=>void b({t:`delete_registration`})})]})}var _n=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,$=65,vn=Object.fromEntries([..._n].map((e,t)=>[e,t])),yn=`H`,bn=(()=>{let e=new Uint32Array(256);for(let t=0;t<256;t+=1){let n=t;for(let e=0;e<8;e+=1)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n>>>0}return e})();function xn(e){let t=4294967295;for(let n of e)t=bn[(t^n)&255]^t>>>8;return((t^4294967295)>>>0).toString(16).padStart(8,`0`)}function Sn(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t)}function Cn(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e+=1)n[e]=t.charCodeAt(e);return n}async function wn(e){let t=new Blob([new TextEncoder().encode(e)]).stream().pipeThrough(new CompressionStream(`gzip`));return new Uint8Array(await new Response(t).arrayBuffer())}async function Tn(e){let t=new Blob([e]).stream().pipeThrough(new DecompressionStream(`gzip`));return new Response(t).text()}function En(e,t){let n=(t%$+$)%$,r=``;for(let t of e){let e=vn[t];r+=e===void 0?t:_n[(e+n)%$]}return r}async function Dn(e){let t=await wn(JSON.stringify(e));return En(Sn(t)+xn(t),1+Math.floor(Math.random()*($-1)))}async function On(e){let t=e.trim(),n=t[0];if(!n||vn[n]===void 0)throw Error(`Not a settings export.`);let r=En(t,-((vn[n]-vn[yn]+$)%$));if(r.length<9||r[0]!==yn)throw Error(`Not a settings export.`);let i=r.slice(0,-8),a=r.slice(-8),o=Cn(i);if(xn(o)!==a)throw Error(`Settings export is corrupt (checksum mismatch).`);return JSON.parse(await Tn(o))}var kn=`puddle.sync-selection`;function An(){try{let e=JSON.parse(localStorage.getItem(kn)??`null`);if(Array.isArray(e))return e.filter(e=>typeof e==`string`)}catch{}return Re.map(e=>e.id)}function jn({selected:e,onToggle:t}){return(0,q.jsx)(`div`,{className:`flex flex-col gap-2 pl-1`,children:Re.map(n=>(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[(0,q.jsx)(z,{checked:e.includes(n.id),onCheckedChange:e=>t(n.id,e)}),n.label]},n.id))})}function Mn(){let e=k(),t=D(e??void 0),n=ye().data?.find(t=>t.id===e),r=_e(e??void 0,void 0),i=O(e??``),a=fe(),o=re(),s=Ye(),c=Ue(),[l,u]=(0,K.useState)(``),[d,p]=(0,K.useState)(``),[h,g]=(0,K.useState)(!1),[v,y]=(0,K.useState)(An),x=n&&s.data?Ke(s.data.file,n.name):void 0,S=x?.enabled===!0,w=S&&x?x.groups:v,T=()=>({client:_(),theme:f(),profileSettings:t.data??{},profile:n??{},scratchpad:r.data??[]}),ee={setClient:e=>m(e),setTheme:e=>{typeof e==`string`&&b(e)},patchProfileSettings:e=>i.mutate(e,{onError:e=>I(e)}),patchProfileColumns:t=>{e&&a.mutate({id:e,...t},{onError:e=>I(e)})},createScratchpad:t=>{if(e)for(let n of t)o.mutate({profile_id:e,scope:`profile`,title:n.title??void 0,body:n.body,tags:n.tags,agent_type:n.agent_type??void 0})}},te=(e,t)=>{n&&c.mutate({profile:n.name,entry:{enabled:e.enabled??S,groups:t,doc:Xe(t,T()),updatedAt:new Date().toISOString()}},{onError:e=>I(e)})},ne=(e,t)=>{let n=t?[...w,e]:w.filter(t=>t!==e);y(n),localStorage.setItem(kn,JSON.stringify(n)),S&&te({},n)},E=async()=>{g(!0);try{let e=qe(await On(l.trim()),ee,{profileSettings:t.data??{},scratchpad:r.data??[]});e.length===0?C.error(`Nothing recognised to import.`):(C.success(`Imported ${e.join(`, `)}.`),u(``))}catch(e){C.error(e.message)}finally{g(!1)}},ie=async()=>{g(!0);try{let e=await Dn(Xe(w,T()));p(e),await navigator.clipboard?.writeText(e),C.success(`Copied to clipboard`)}finally{g(!1)}};return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Sync`}),(0,q.jsx)(`p`,{className:`mb-5 text-xs text-fg-muted`,children:`Carry your settings between machines. Accounts, repositories, and anything host-specific are never included. Applies to this profile.`}),(0,q.jsxs)(`div`,{className:`mb-6`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Sync locally`}),s.data?.available===!1?(0,q.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:`Not available in this cockpit — start the UI with the Puddle CLI to sync across windows.`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`p`,{className:`mb-2 mt-1 text-xs text-fg-muted`,children:[`Sync selected groups through this machine’s`,` `,(0,q.jsx)(`span`,{className:`text-fg-secondary`,children:`~/.puddle`}),`, so every Puddle window stays in step for profiles named`,` `,(0,q.jsx)(`span`,{className:`text-fg-secondary`,children:n?.name??`…`}),`.`]}),(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-sm text-fg`,children:[(0,q.jsx)(z,{checked:S,disabled:!n||s.isLoading||c.isPending,onCheckedChange:e=>te({enabled:e},w)}),`Sync locally`]})]})]}),(0,q.jsx)(nt,{className:`mb-6`,summary:`Choose what to sync`,summaryClassName:`text-xs`,children:(0,q.jsx)(`div`,{className:`mt-2`,children:(0,q.jsx)(jn,{selected:w,onToggle:ne})})}),(0,q.jsxs)(`div`,{className:`mb-6`,children:[(0,q.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Export`}),(0,q.jsx)(`p`,{className:`mb-2 mt-1 text-xs text-fg-muted`,children:`Builds a Puddle magic string that encodes settings from the checklist above.`}),(0,q.jsx)(F,{size:`sm`,disabled:h,onClick:()=>void ie(),children:`Export & copy`}),d&&(0,q.jsx)(R,{readOnly:!0,value:d,rows:3,spellCheck:!1,onFocus:e=>e.currentTarget.select(),className:`mt-2 resize-y font-mono text-xs`})]}),(0,q.jsxs)(`div`,{children:[(0,q.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:`Import`}),(0,q.jsx)(`p`,{className:`mb-2 text-xs text-fg-muted`,children:`Paste a Puddle magic string to import its settings.`}),(0,q.jsx)(R,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>e.stopPropagation(),placeholder:`Paste a settings export…`,rows:3,spellCheck:!1,className:`resize-y font-mono text-xs`}),(0,q.jsx)(`div`,{className:`mt-2`,children:(0,q.jsx)(F,{size:`sm`,disabled:!l.trim()||h,onClick:()=>void E(),children:`Import`})})]})]})}function Nn(){return(0,q.jsxs)(`div`,{className:`space-y-8`,children:[(0,q.jsx)(gn,{}),(0,q.jsx)(Mn,{})]})}function Pn({repo:e}){let t=Se(),n=te(),[r,i]=(0,K.useState)(e.default_base_branch),[a,o]=(0,K.useState)(e.onboarding_notes??``),s=e=>I(e);return(0,q.jsxs)(`div`,{className:`mb-4 rounded-lg bg-surface p-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-fg`,children:e.path}),(0,q.jsx)(`span`,{className:`shrink-0 text-2xs text-fg-muted tabular-nums`,children:e.last_fetched_at?`fetched ${new Date(e.last_fetched_at).toLocaleString()}`:`never fetched`}),(0,q.jsxs)(F,{size:`sm`,variant:`ghost`,disabled:n.isPending,onClick:()=>n.mutate(e.id,{onSuccess:()=>C.success(`Fetched.`),onError:s}),children:[(0,q.jsx)(Le,{}),`Fetch now`]})]}),(0,q.jsxs)(Y,{label:`Default base branch`,htmlFor:`base-${e.id}`,className:`py-1.5`,children:[(0,q.jsx)(L,{id:`base-${e.id}`,value:r,onChange:e=>i(e.target.value),className:`w-40`}),(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:r===e.default_base_branch||t.isPending,onClick:()=>t.mutate({id:e.id,default_base_branch:r},{onError:s}),children:`Save`})]}),(0,q.jsx)(Y,{label:`Periodic fetch`,description:`Fetched on open and on the daemon's interval while sessions are active.`,htmlFor:`fetch-${e.id}`,className:`py-1.5`,children:(0,q.jsx)(z,{id:`fetch-${e.id}`,checked:e.fetch_enabled,onCheckedChange:n=>t.mutate({id:e.id,fetch_enabled:n},{onError:s})})}),(0,q.jsxs)(`div`,{className:`mt-1.5 flex flex-col gap-1.5`,children:[(0,q.jsxs)(`label`,{htmlFor:`notes-${e.id}`,className:`flex flex-col gap-0.5 text-sm text-fg`,children:[`Onboarding notes`,(0,q.jsx)(`span`,{className:`text-xs text-fg-muted`,children:`Standing setup rules, injected into every fresh worktree. Agents update them via .puddle/onboarding-notes.md.`})]}),(0,q.jsx)(R,{id:`notes-${e.id}`,value:a,onChange:e=>o(e.target.value),rows:4}),(0,q.jsx)(`div`,{children:(0,q.jsx)(F,{size:`sm`,variant:`secondary`,disabled:a===(e.onboarding_notes??``)||t.isPending,onClick:()=>t.mutate({id:e.id,onboarding_notes:a},{onError:s}),children:`Save notes`})})]}),e.orphan_worktrees.length>0&&(0,q.jsxs)(`div`,{className:`mt-3 rounded-md bg-elevated p-2`,children:[(0,q.jsx)(`p`,{className:`text-xs text-fg-secondary`,children:`Orphan worktrees — directories no session claims. Puddle never deletes these automatically; remove them by hand if unwanted.`}),(0,q.jsx)(`ul`,{className:`mt-1 flex flex-col gap-0.5`,children:e.orphan_worktrees.map(e=>(0,q.jsx)(`li`,{className:`truncate text-2xs text-fg-muted`,children:e},e))})]})]})}function Fn(){let e=be();return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{children:`Projects`}),e.data?.length===0&&(0,q.jsx)(`p`,{className:`text-sm text-fg-muted`,children:`No projects yet — create one from the dashboard, pointing at a repository.`}),e.data?.map(e=>(0,q.jsx)(Pn,{repo:e},e.id))]})}function In({label:e,description:t,field:n,config:r,min:i,step:a=1}){let o=E();return(0,q.jsx)(Y,{label:e,description:t,htmlFor:`host-${n}`,children:(0,q.jsx)(L,{id:`host-${n}`,type:`number`,min:i,step:a,className:`w-32 tabular-nums`,defaultValue:r[n],onBlur:e=>{if(e.target.value.trim()===``){e.target.value=String(r[n]);return}let t=Number(e.target.value);Number.isFinite(t)&&t!==r[n]&&o.mutate({[n]:t},{onError:e=>I(e)})}})})}function Ln(){let e=T(),t=E(),n=xe();return e.data?(0,q.jsxs)(`div`,{children:[(0,q.jsx)(X,{note:`Affects all profiles on this host`,children:`Host`}),(0,q.jsx)(Y,{label:`Display name`,description:`Shown in place of the hostname across the UI. Leave blank for the hostname.`,htmlFor:`host-displayName`,children:(0,q.jsx)(L,{id:`host-displayName`,type:`text`,maxLength:64,className:`w-48`,placeholder:n.data?.hostname,defaultValue:e.data.displayName,onBlur:n=>{let r=n.target.value.trim();r!==e.data.displayName&&t.mutate({displayName:r},{onError:e=>I(e)})}})}),(0,q.jsx)(In,{label:`Fetch interval (minutes)`,description:`Periodic git fetch for repos with active sessions.`,field:`fetchIntervalMinutes`,config:e.data,min:1}),(0,q.jsx)(In,{label:`Log size cap (bytes)`,description:`Per-terminal on-disk log cap.`,field:`logMaxBytes`,config:e.data,min:65536,step:1048576}),(0,q.jsx)(In,{label:`Replay size (bytes)`,description:`Log tail sent to a terminal on attach.`,field:`replayBytes`,config:e.data,min:1024,step:65536}),(0,q.jsx)(In,{label:`UI-state retention (days)`,description:`Stale workspace snapshots are swept at boot.`,field:`uiStateRetentionDays`,config:e.data,min:1}),(0,q.jsx)(Y,{label:`Auto-resume`,description:`Resume interrupted sessions automatically after a daemon restart.`,htmlFor:`host-autoResume`,children:(0,q.jsx)(z,{id:`host-autoResume`,checked:e.data.autoResume,onCheckedChange:e=>t.mutate({autoResume:e},{onError:e=>I(e)})})})]}):null}var Rn=[{id:`appearance`,label:`Appearance`,icon:He,render:()=>(0,q.jsx)(pt,{})},{id:`profile`,label:`Profile`,icon:je,render:()=>(0,q.jsx)(gt,{})},{id:`accounts`,label:`Accounts`,icon:ft,render:()=>(0,q.jsx)(yt,{})},{id:`sessions`,label:`Sessions`,icon:dt,render:()=>(0,q.jsx)(Et,{})},{id:`editor`,label:`Editor`,icon:at,render:()=>(0,q.jsx)(jt,{})},{id:`hotkeys`,label:`Hotkeys`,icon:ot,render:()=>(0,q.jsx)(Nt,{})},{id:`notifications`,label:`Notifications`,icon:it,render:()=>(0,q.jsx)(At,{})},{id:`projects`,label:`Projects`,icon:ke,render:()=>(0,q.jsx)(Fn,{})},{id:`host`,label:`Host`,icon:ct,render:()=>(0,q.jsx)(Ln,{})},{id:`remote-sync`,label:`Remote & Sync`,icon:Le,render:()=>(0,q.jsx)(Nn,{})}],zn={terminal:`sessions`,repositories:`projects`,remote:`remote-sync`,sync:`remote-sync`};function Bn(){let e=Fe(),t=e===null?null:zn[e]??e,n=Rn.find(e=>e.id===t)??Rn[0];return(0,q.jsx)(P,{open:e!==null,onOpenChange:e=>!e&&Ne(),children:(0,q.jsxs)(j,{wide:!0,className:`grid h-[34rem] grid-cols-[14rem_1fr] gap-0 overflow-hidden p-0`,children:[(0,q.jsx)(M,{className:`sr-only`,children:`Settings`}),(0,q.jsxs)(`nav`,{className:`flex flex-col gap-1 bg-surface p-2.5 pr-6`,children:[(0,q.jsx)(`span`,{className:`px-2.5 py-2 text-2xs font-medium uppercase tracking-wide text-fg-muted`,children:`Settings`}),Rn.map(({id:e,label:t,icon:r})=>(0,q.jsxs)(`button`,{onClick:()=>Ae(e),className:B(`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-left text-sm transition-colors`,e===n.id?`bg-elevated text-fg`:`text-fg-secondary hover:bg-elevated hover:text-fg`),children:[(0,q.jsx)(r,{className:`size-4 shrink-0`}),t]},e))]}),(0,q.jsx)(`div`,{className:`overflow-y-auto p-5`,children:n.render()})]})})}export{Bn as SettingsDialog};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FOHPRMQF-CdD2_EOh.js";import{M as e}from"./mermaid-parser.core-DfmtQ5si.js";export{e as createArchitectureServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as e,it as t}from"./chunk-DU6HZSFF-C94gDWXH.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-_wZywoZs.js";import"./chunk-DU6HZSFF-C94gDWXH.js";import"./chunk-75Z2AOVW-BOvbyaVc.js";import"./chunk-PWAF6VOD-Ds90M0Eb.js";import"./chunk-GMAD6QVW-C7KK3kiY.js";import"./chunk-P2QGCYS3-v7eQ-UQT.js";import"./chunk-4HAMMTFA-BGEaVxkg.js";import"./chunk-GVQU2GXP-CDFKc0sW.js";import"./chunk-OSK3NFVY-BlmYDJRN.js";import"./chunk-F27PBJKO-CZD-A2b3.js";import"./chunk-XXDRQBXY-BuE3VzE_.js";import"./chunk-POPQ4Y6H-D_gxItFL.js";import"./chunk-L3NEJ4N5-DqP3WOXV.js";import"./chunk-TLUHSLCS-CEnN9wOB.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-GEeYOgw4.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-_wZywoZs.js";import"./chunk-DU6HZSFF-C94gDWXH.js";import"./chunk-75Z2AOVW-BOvbyaVc.js";import"./chunk-PWAF6VOD-Ds90M0Eb.js";import"./chunk-GMAD6QVW-C7KK3kiY.js";import"./chunk-P2QGCYS3-v7eQ-UQT.js";import"./chunk-4HAMMTFA-BGEaVxkg.js";import"./chunk-GVQU2GXP-CDFKc0sW.js";import"./chunk-OSK3NFVY-BlmYDJRN.js";import"./chunk-F27PBJKO-CZD-A2b3.js";import"./chunk-XXDRQBXY-BuE3VzE_.js";import"./chunk-POPQ4Y6H-D_gxItFL.js";import"./chunk-L3NEJ4N5-DqP3WOXV.js";import"./chunk-TLUHSLCS-CEnN9wOB.js";import{i as t,n,r,t as i}from"./chunk-TICWLB2K-GEeYOgw4.js";var a={parser:n,get db(){return new i},renderer:r,styles:t,init:e(e=>{e.class||={},e.class.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FOHPRMQF-CdD2_EOh.js";import{O as e}from"./mermaid-parser.core-DfmtQ5si.js";export{e as createEventModelingServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./src-_wZywoZs.js";import"./chunk-DU6HZSFF-C94gDWXH.js";import"./chunk-75Z2AOVW-BOvbyaVc.js";import"./chunk-PWAF6VOD-Ds90M0Eb.js";import"./chunk-GMAD6QVW-C7KK3kiY.js";import"./chunk-P2QGCYS3-v7eQ-UQT.js";import"./chunk-4HAMMTFA-BGEaVxkg.js";import"./chunk-GVQU2GXP-CDFKc0sW.js";import"./chunk-OSK3NFVY-BlmYDJRN.js";import"./chunk-F27PBJKO-CZD-A2b3.js";import"./chunk-XXDRQBXY-BuE3VzE_.js";import"./chunk-POPQ4Y6H-D_gxItFL.js";import"./chunk-L3NEJ4N5-DqP3WOXV.js";import"./chunk-TLUHSLCS-CEnN9wOB.js";import"./chunk-LNGE3PJU-DNNNwF8Y.js";import{n as e}from"./chunk-SHT3W25Y-B8oepiFw.js";export{e as diagram};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@font-face{font-family:Ubuntu Sans;src:url(/assets/UbuntuSans-variable-D2Z3tJLW.woff2)format("woff2");font-weight:100 800;font-stretch:75% 100%;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Sans;src:url(/assets/UbuntuSans-Italic-variable-RySnp6Km.woff2)format("woff2");font-weight:100 800;font-stretch:75% 100%;font-style:italic;font-display:swap}@font-face{font-family:Ubuntu Sans Mono;src:url(/assets/UbuntuSansMono-variable-DaQTOezC.woff2)format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Ubuntu Sans Mono;src:url(/assets/UbuntuSansMono-Italic-variable-DSY888gS.woff2)format("woff2");font-weight:400 700;font-style:italic;font-display:swap}:root{--altitude-blue:#7dadff;--krypton-green:#8be8b3;--quiet-khaki:#ddb28c;--storm-navy:#001c3d;--burnt-wood:#5a2f22;--navy-950:#000a14;--navy-900:#00132b;--navy-800:#001c3d;--navy-700:#0a2b52;--navy-600:#163c6b;--blue-200:#a7c7ff;--blue-300:#7dadff;--blue-500:#4a86e8;--blue-600:#2e6bd6;--green-200:#aff0cb;--green-300:#8be8b3;--green-500:#2fbf85;--green-600:#1fa26b;--green-700:#157a50;--neutral-0:#fff;--neutral-50:#f7f7f7;--neutral-100:#efefef;--neutral-200:#e5e5e5;--neutral-500:#6b6b6b;--khaki-50:#fbf5ec;--khaki-100:#f7ebda;--khaki-200:#ead9c0;--khaki-300:#ddb28c;--khaki-600:#a9743d;--amber-200:#f6c892;--amber-300:#f0b36e;--amber-600:#c08a4b;--ember-100:#f8b7a3;--ember-200:#f2957c;--ember-400:#d96a4e;--ember-500:#c2472e;--ember-600:#8c4a34;--ember-700:#5a2f22;--mist-100:#eaf1fb;--mist-300:#b9c9e0;--mist-500:#7e93b3;--bark-500:#8a7663;--cyan-200:#a5e4e8;--cyan-300:#7fd6dc;--cyan-500:#2fa6ae;--cyan-600:#1f8b92;--violet-200:#d0c2f7;--violet-300:#b9a3f2;--violet-500:#8b71db;--violet-600:#6d4fc4}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:var(--navy-950);--bg-surface:var(--navy-900);--bg-elevated:var(--navy-800);--border:var(--navy-600);--text-primary:var(--mist-100);--text-secondary:var(--mist-300);--text-muted:var(--mist-500);--text-gold:var(--khaki-300);--accent:var(--blue-300);--accent-hover:var(--blue-200);--focus-ring:var(--blue-300);--action:var(--mist-100);--action-hover:var(--mist-300);--action-ink:var(--navy-800);--danger:var(--ember-200);--success:var(--green-300);--warning:var(--amber-300);--status-running:var(--amber-300);--status-waiting:var(--green-300);--status-interrupted:var(--ember-200);--status-idle:var(--mist-500);--status-terminal:var(--blue-300);--selection:#7dadff4d;--diff-added:#8be8b32e;--diff-removed:#f2957c2e;--paper:var(--neutral-0);--ansi-black:var(--navy-700);--ansi-red:var(--ember-200);--ansi-green:var(--green-300);--ansi-yellow:var(--amber-300);--ansi-blue:var(--blue-300);--ansi-magenta:var(--violet-300);--ansi-cyan:var(--cyan-300);--ansi-white:var(--mist-300);--ansi-bright-black:var(--mist-500);--ansi-bright-red:var(--ember-100);--ansi-bright-green:var(--green-200);--ansi-bright-yellow:var(--amber-200);--ansi-bright-blue:var(--blue-200);--ansi-bright-magenta:var(--violet-200);--ansi-bright-cyan:var(--cyan-200);--ansi-bright-white:var(--mist-100)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:var(--neutral-0);--bg-surface:var(--neutral-50);--bg-elevated:var(--neutral-100);--border:var(--neutral-200);--text-primary:var(--navy-800);--text-secondary:var(--navy-600);--text-muted:var(--neutral-500);--text-gold:var(--bark-500);--accent:var(--blue-600);--accent-hover:var(--blue-500);--focus-ring:var(--blue-600);--action:var(--navy-800);--action-hover:var(--navy-700);--action-ink:var(--neutral-0);--danger:var(--ember-500);--success:var(--green-700);--warning:var(--khaki-600);--status-running:var(--khaki-600);--status-waiting:var(--green-700);--status-interrupted:var(--ember-500);--status-idle:var(--neutral-500);--status-terminal:var(--blue-600);--selection:#2e6bd638;--diff-added:#1fa26b24;--diff-removed:#c2472e24;--paper:var(--neutral-0);--ansi-black:var(--navy-800);--ansi-red:var(--ember-500);--ansi-green:var(--green-600);--ansi-yellow:var(--khaki-600);--ansi-blue:var(--blue-600);--ansi-magenta:var(--violet-600);--ansi-cyan:var(--cyan-600);--ansi-white:var(--neutral-200);--ansi-bright-black:var(--bark-500);--ansi-bright-red:var(--ember-400);--ansi-bright-green:var(--green-500);--ansi-bright-yellow:var(--amber-600);--ansi-bright-blue:var(--blue-500);--ansi-bright-magenta:var(--violet-500);--ansi-bright-cyan:var(--cyan-500);--ansi-bright-white:var(--neutral-0)}.monaco-editor .puddle-dirty-added,.monaco-editor .puddle-dirty-modified{box-sizing:border-box;border-left:3px solid var(--success);cursor:pointer;margin-left:4px;width:3px!important}.monaco-editor .puddle-dirty-modified{border-left-color:var(--accent)}.monaco-editor .puddle-dirty-deleted-before,.monaco-editor .puddle-dirty-deleted-after{cursor:pointer;position:relative;width:8px!important}.monaco-editor .puddle-dirty-deleted-before:before,.monaco-editor .puddle-dirty-deleted-after:after{content:"";background:var(--danger);clip-path:polygon(0 0,100% 50%,0 100%);width:6px;height:6px;position:absolute;left:2px}.monaco-editor .puddle-dirty-deleted-before:before{top:-3px}.monaco-editor .puddle-dirty-deleted-after:after{bottom:-3px}.puddle-hidden-diff-controller{pointer-events:none;opacity:0;width:1px;height:1px;position:fixed;top:-2px;left:-2px;overflow:hidden}.puddle-dirty-peek,.puddle-dirty-peek-margin{background:var(--bg-base);overflow:hidden}.puddle-dirty-peek-header{height:28px;color:var(--text-secondary);background:var(--bg-elevated);font-family:var(--font-sans);align-items:center;gap:12px;padding:0 10px;font-size:12px;display:flex}.puddle-dirty-peek-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.puddle-dirty-peek-close{color:var(--text-muted);cursor:pointer;font:inherit;background:0 0;border:0;flex:none;margin-left:auto;padding:0 4px;font-size:20px;line-height:1;transition:color .12s}.puddle-dirty-peek-close:hover{color:var(--text-primary)}.puddle-dirty-peek-editor{height:calc(100% - 28px)}@media (pointer:fine){:root[data-cursor-package=rangefinder] *,:root[data-cursor-package=drafting] *,:root[data-cursor-package=invert] *{cursor:none!important}}:root[data-cursor-package=system] .monaco-editor,:root[data-cursor-package=system] .monaco-editor *{cursor:text!important}.custom-cursor{z-index:2147483647;pointer-events:none;opacity:0;will-change:transform;position:fixed;top:0;left:0}.rangefinder-cursor{-webkit-backdrop-filter:blur(1px)brightness(1.05)saturate(1.15);backdrop-filter:blur(1px)brightness(1.05)saturate(1.15);border-radius:50%;width:27px;height:27px;transition:opacity .15s,width .15s,height .15s;overflow:hidden}.rangefinder-cursor-facets{width:40.5px;max-width:none;height:40.5px;transition:width .15s,height .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.rangefinder-cursor-facet-light{fill:var(--paper);fill-opacity:.32}.rangefinder-cursor-facet-dark{fill:var(--text-primary);fill-opacity:.07}:where(:root[data-theme=dark]) .rangefinder-cursor-facet-light{fill-opacity:.07}:where(:root[data-theme=dark]) .rangefinder-cursor-facet-dark{fill:var(--bg-base)}.rangefinder-cursor.is-interactive{width:11.7px;height:11.7px}.rangefinder-cursor.is-interactive .rangefinder-cursor-facets{width:17.55px;height:17.55px}.rangefinder-cursor.is-text{width:2px;height:var(--custom-cursor-caret-height,22px);background:var(--text-primary);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:1px}.rangefinder-cursor.is-text .rangefinder-cursor-facets{display:none}.drafting-cursor{width:24px;height:24px;color:var(--text-primary);filter:drop-shadow(0 0 1px var(--bg-base));transition:opacity .12s,width .12s,height .12s,color .12s}.drafting-cursor-tick{background:currentColor;transition:width .12s,height .12s,opacity .12s;display:block;position:absolute}.drafting-cursor-tick[data-side=top],.drafting-cursor-tick[data-side=bottom]{width:1px;height:6px;left:calc(50% - .5px)}.drafting-cursor-tick[data-side=top]{top:0}.drafting-cursor-tick[data-side=bottom]{bottom:0}.drafting-cursor-tick[data-side=left],.drafting-cursor-tick[data-side=right]{width:6px;height:1px;top:calc(50% - .5px)}.drafting-cursor-tick[data-side=left]{left:0}.drafting-cursor-tick[data-side=right]{right:0}.drafting-cursor.is-interactive{width:14px;height:14px;color:var(--accent)}.drafting-cursor.is-interactive .drafting-cursor-tick[data-side=top],.drafting-cursor.is-interactive .drafting-cursor-tick[data-side=bottom]{height:4px}.drafting-cursor.is-interactive .drafting-cursor-tick[data-side=left],.drafting-cursor.is-interactive .drafting-cursor-tick[data-side=right]{width:4px}.drafting-cursor.is-text{width:2px;height:var(--custom-cursor-caret-height,22px);color:var(--text-primary);background:currentColor;border-radius:1px}.drafting-cursor.is-text .drafting-cursor-tick{opacity:0}.invert-cursor{box-sizing:border-box;border:1.5px solid var(--paper);mix-blend-mode:difference;border-radius:50%;width:14px;height:14px;transition:opacity .1s,width .1s,height .1s,border-width .1s,border-radius .1s,background-color .1s}.invert-cursor.is-interactive{background:var(--paper);border-width:0;width:8px;height:8px}.invert-cursor.is-text{width:2px;height:var(--custom-cursor-caret-height,22px);background:var(--paper);border-width:0;border-radius:1px}@layer theme{:root,:host{--font-sans:"Ubuntu Sans", system-ui, sans-serif;--font-mono:"Ubuntu Sans Mono", ui-monospace, "SF Mono", monospace;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-base:.875rem;--text-base--line-height:1.375rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:"Ubuntu Sans", system-ui, sans-serif;--default-mono-font-family:"Ubuntu Sans Mono", ui-monospace, "SF Mono", monospace;--color-ground:var(--bg-base);--color-elevated:var(--bg-elevated);--text-2xs:.6875rem}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}.puddle-terminal .xterm-screen{touch-action:pinch-zoom}html{font-size:var(--ui-font-size,17.6px)}body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--text-base--line-height);-webkit-font-smoothing:antialiased}::selection{background-color:var(--selection)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}input:focus-visible,textarea:focus-visible{outline:none}button:not(:disabled),[role=button]:not([aria-disabled=true]),a,label[for],summary,select{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed}.tabular-nums,code,kbd{font-variant-numeric:tabular-nums}}@layer components{.status-glyph{color:var(--status-idle);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.status-glyph[data-status=running],.status-glyph[data-status=starting]{color:var(--status-running)}.status-glyph[data-kind=terminal][data-status=running],.status-glyph[data-kind=terminal][data-status=starting]{color:var(--status-terminal)}.status-glyph[data-status=waiting_input]{color:var(--status-waiting)}.status-glyph[data-status=interrupted]{color:var(--status-interrupted)}.status-glyph[data-stale]{opacity:.45}.workbench-hover .hover-contents{white-space:nowrap!important}.workbench-hover-container{pointer-events:none}.no-scrollbar{scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}.md-preview{overflow-wrap:break-word;line-height:1.6}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{color:var(--text-primary);margin:1.5em 0 .5em;font-weight:600;line-height:1.3}.md-preview h1{font-size:1.6em}.md-preview h2{font-size:1.3em}.md-preview h3{font-size:1.15em}.md-preview h1:first-child,.md-preview h2:first-child{margin-top:0}.md-preview p,.md-preview ul,.md-preview ol,.md-preview table,.md-preview pre,.md-preview blockquote{margin:.6em 0}.md-preview ul,.md-preview ol{padding-left:1.5em}.md-preview ul{list-style:outside}.md-preview ol{list-style:decimal}.md-preview li{margin:.2em 0}.md-preview a{color:var(--accent)}.md-preview a:hover{color:var(--accent-hover);text-decoration:underline}.md-preview mark{background:var(--selection);color:inherit;border-radius:2px;padding:.05em .15em}.md-preview code{background:var(--bg-elevated);font-family:var(--font-mono);border-radius:4px;padding:.1em .35em;font-size:.92em}.md-preview pre{background:var(--bg-elevated);border-radius:6px;padding:.75em 1em;overflow-x:auto}.md-preview pre code{background:0 0;padding:0}.md-preview blockquote{border-left:2px solid var(--border);color:var(--text-secondary);padding-left:1em}.md-preview hr{border:0;border-top:1px solid var(--border);margin:1.5em 0}.md-preview table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.md-preview th,.md-preview td{border-bottom:1px solid var(--border);text-align:left;padding:.3em .9em .3em 0}.md-preview th{color:var(--text-secondary);font-weight:600}.md-preview img{max-width:100%}.md-preview input[type=checkbox]{margin-right:.4em}.md-preview .footnote-ref{font-size:.75em;line-height:0}.md-preview .footnote-ref a,.md-preview .footnote-backref{text-decoration:none}.md-preview .footnotes{color:var(--text-secondary);margin-top:2em;font-size:.88em}.md-preview .footnotes-list{padding-left:1.75em}.md-preview .markdown-alert{--markdown-alert-colour:var(--accent);border-left:3px solid var(--markdown-alert-colour);margin:1em 0;padding:.1em 0 .1em 1em}.md-preview .markdown-alert-tip{--markdown-alert-colour:var(--success)}.md-preview .markdown-alert-important{--markdown-alert-colour:var(--ansi-magenta)}.md-preview .markdown-alert-warning{--markdown-alert-colour:var(--warning)}.md-preview .markdown-alert-caution{--markdown-alert-colour:var(--danger)}.md-preview .markdown-alert-title{color:var(--markdown-alert-colour);align-items:center;gap:.45em;margin:0 0 .25em;font-weight:600;display:flex}.md-preview .markdown-alert-title svg{fill:currentColor;flex:none}.md-preview .markdown-alert>:last-child{margin-bottom:0}.md-preview .mermaid-diagram{text-align:center;max-width:100%;margin:1.25em 0;overflow-x:auto}.md-preview .mermaid-diagram>pre{text-align:left}.md-preview .mermaid-diagram>svg{max-width:100%;height:auto;margin:0 auto;display:block}.md-preview .mermaid-error{color:var(--danger);text-align:left}.math-display{display:block}.md-preview .math-display{margin:.9em 0;overflow:auto hidden}.md-preview .katex{color:var(--text-primary)}.md-preview .katex-error{font-family:var(--font-mono);font-size:.92em}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-1{top:calc(var(--spacing) * -1)}.-top-12{top:calc(var(--spacing) * -12)}.top-0{top:0}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-3\.5{top:calc(var(--spacing) * 3.5)}.top-\[calc\(var\(--phone-top\,0px\)\+var\(--phone-height\,100dvh\)\/2\)\]{top:calc(var(--phone-top,0px) + var(--phone-height,100dvh) / 2)}.top-full{top:100%}.right-0{right:0}.right-1{right:var(--spacing)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-3\.5{right:calc(var(--spacing) * 3.5)}.right-9{right:calc(var(--spacing) * 9)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-9{left:calc(var(--spacing) * 9)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.\!container{width:100%!important}@media (width>=40rem){.\!container{max-width:40rem!important}}@media (width>=48rem){.\!container{max-width:48rem!important}}@media (width>=64rem){.\!container{max-width:64rem!important}}@media (width>=80rem){.\!container{max-width:80rem!important}}@media (width>=96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:var(--spacing)}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.-my-1{margin-block:calc(var(--spacing) * -1)}.my-0\.5{margin-block:calc(var(--spacing) * .5)}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.my-3{margin-block:calc(var(--spacing) * 3)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-16{margin-top:calc(var(--spacing) * 16)}.-mr-11{margin-right:calc(var(--spacing) * -11)}.-mr-20{margin-right:calc(var(--spacing) * -20)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-24{width:calc(var(--spacing) * 24);height:calc(var(--spacing) * 24)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-1\/2{height:50%}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-72{height:calc(var(--spacing) * 72)}.h-\[9px\]{height:9px}.h-\[34rem\]{height:34rem}.h-\[85vh\]{height:85vh}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[60vh\]{max-height:60vh}.max-h-\[65vh\]{max-height:65vh}.max-h-\[calc\(var\(--phone-height\,100dvh\)-2rem\)\]{max-height:calc(var(--phone-height,100dvh) - 2rem)}.max-h-\[min\(24rem\,var\(--radix-dropdown-menu-content-available-height\)\)\]{max-height:min(24rem, var(--radix-dropdown-menu-content-available-height))}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-6{min-height:calc(var(--spacing) * 6)}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-10{min-height:calc(var(--spacing) * 10)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-40{min-height:calc(var(--spacing) * 40)}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1\/2{width:50%}.w-3{width:calc(var(--spacing) * 3)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-\[26rem\]{width:26rem}.w-\[28rem\]{width:28rem}.w-\[34rem\]{width:34rem}.w-\[calc\(100\%-2rem\)\]{width:calc(100% - 2rem)}.w-\[min\(20rem\,calc\(100\%-4\.5rem\)\)\]{width:min(20rem,100% - 4.5rem)}.w-\[min\(20rem\,calc\(100vw-1rem\)\)\]{width:min(20rem,100vw - 1rem)}.w-\[min\(30rem\,42\%\)\]{width:min(30rem,42%)}.w-\[min\(34rem\,calc\(100\%-0\.5rem\)\)\]{width:min(34rem,100% - .5rem)}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-52{max-width:calc(var(--spacing) * 52)}.max-w-\[36rem\]{max-width:36rem}.max-w-\[calc\(100vw-1rem\)\]{max-width:calc(100vw - 1rem)}.max-w-\[calc\(100vw-4rem\)\]{max-width:calc(100vw - 4rem)}.max-w-\[var\(--radix-select-content-available-width\)\]{max-width:var(--radix-select-content-available-width)}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:0}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-16{min-width:calc(var(--spacing) * 16)}.min-w-24{min-width:calc(var(--spacing) * 24)}.min-w-36{min-width:calc(var(--spacing) * 36)}.min-w-64{min-width:calc(var(--spacing) * 64)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-\[0_1_auto\]{flex:0 auto}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.cursor-row-resize{cursor:row-resize}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[14rem_1fr\]{grid-template-columns:14rem 1fr}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-y-none{overscroll-behavior-y:none}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-tr-md{border-top-right-radius:var(--radius-md)}.rounded-b-md{border-bottom-right-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.bg-accent,.bg-accent\/20{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.bg-action{background-color:var(--action)}.bg-border,.bg-border\/50{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.bg-border\/50{background-color:color-mix(in oklab, var(--border) 50%, transparent)}}.bg-current{background-color:currentColor}.bg-danger{background-color:var(--danger)}.bg-elevated{background-color:var(--bg-elevated)}.bg-fg-muted{background-color:var(--text-muted)}.bg-ground,.bg-ground\/60{background-color:var(--bg-base)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/60{background-color:color-mix(in oklab, var(--bg-base) 60%, transparent)}}.bg-ground\/70{background-color:var(--bg-base)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/70{background-color:color-mix(in oklab, var(--bg-base) 70%, transparent)}}.bg-idle{background-color:var(--status-idle)}.bg-interrupted{background-color:var(--status-interrupted)}.bg-paper{background-color:var(--paper)}.bg-running{background-color:var(--status-running)}.bg-selection{background-color:var(--selection)}.bg-success{background-color:var(--success)}.bg-surface,.bg-surface\/40{background-color:var(--bg-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--bg-surface) 40%, transparent)}}.bg-surface\/90{background-color:var(--bg-surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/90{background-color:color-mix(in oklab, var(--bg-surface) 90%, transparent)}}.bg-transparent{background-color:#0000}.bg-waiting{background-color:var(--status-waiting)}.bg-warning{background-color:var(--warning)}.fill-current{fill:currentColor}.object-contain{object-fit:contain}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-0\.5{padding-right:calc(var(--spacing) * .5)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-11{padding-right:calc(var(--spacing) * 11)}.pr-16{padding-right:calc(var(--spacing) * 16)}.pr-20{padding-right:calc(var(--spacing) * 20)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pb-24{padding-bottom:calc(var(--spacing) * 24)}.pl-1{padding-left:var(--spacing)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-\[88px\]{padding-left:88px}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:Ubuntu Sans Mono,ui-monospace,SF Mono,monospace}.font-sans{font-family:Ubuntu Sans,system-ui,sans-serif}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,2rem)}.text-2xs{font-size:.6875rem;line-height:var(--tw-leading,1rem)}.text-base{font-size:.875rem;line-height:var(--tw-leading,1.375rem)}.text-lg{font-size:1rem;line-height:var(--tw-leading,1.5rem)}.text-sm{font-size:.8125rem;line-height:var(--tw-leading,1.25rem)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1.125rem)}.text-\[8px\]{font-size:8px}.text-\[11px\]{font-size:11px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--accent)}.text-action-ink{color:var(--action-ink)}.text-danger{color:var(--danger)}.text-fg{color:var(--text-primary)}.text-fg-gold{color:var(--text-gold)}.text-fg-muted,.text-fg-muted\/40{color:var(--text-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--text-muted) 40%, transparent)}}.text-fg-secondary{color:var(--text-secondary)}.text-ground{color:var(--bg-base)}.text-icon-amber{color:var(--ansi-yellow)}.text-icon-blue{color:var(--ansi-blue)}.text-icon-cyan{color:var(--ansi-cyan)}.text-icon-green{color:var(--ansi-green)}.text-icon-red{color:var(--ansi-red)}.text-icon-violet{color:var(--ansi-magenta)}.text-interrupted{color:var(--status-interrupted)}.text-running{color:var(--status-running)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[padding\]{transition-property:padding;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[-webkit-app-region\:drag\]{-webkit-app-region:drag}.\[-webkit-app-region\:no-drag\]{-webkit-app-region:no-drag}.group-focus-within\:flex:is(:where(.group):focus-within *){display:flex}@media (hover:hover){.group-hover\:pointer-events-auto:is(:where(.group):hover *){pointer-events:auto}.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\:hidden:is(:where(.group):hover *){display:none}.group-hover\:inline-flex:is(:where(.group):hover *){display:inline-flex}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group):hover *){transform:translateX(var(--tail))}.group-hover\:bg-\[linear-gradient\(to_right\,transparent\,var\(--color-elevated\)_1\.25rem\)\]:is(:where(.group):hover *){background-image:linear-gradient(to right,transparent,var(--color-elevated) 1.25rem)}.group-hover\:bg-\[linear-gradient\(to_right\,transparent\,var\(--color-ground\)_1\.25rem\)\]:is(:where(.group):hover *){background-image:linear-gradient(to right,transparent,var(--color-ground) 1.25rem)}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--accent)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/nav\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group\/nav):hover *),.group-hover\/repository\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group\/repository):hover *),.group-hover\/treerow\:\[transform\:translateX\(var\(--tail\)\)\]:is(:where(.group\/treerow):hover *){transform:translateX(var(--tail))}}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.placeholder\:text-fg-muted::placeholder{color:var(--text-muted)}.empty\:hidden:empty{display:none}.focus-within\:pointer-events-auto:focus-within{pointer-events:auto}.focus-within\:opacity-100:focus-within{opacity:1}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-action-hover:hover{background-color:var(--action-hover)}.hover\:bg-border:hover,.hover\:bg-border\/70:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-border\/70:hover{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}.hover\:bg-border\/80:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-border\/80:hover{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.hover\:bg-elevated:hover{background-color:var(--bg-elevated)}.hover\:bg-ground:hover{background-color:var(--bg-base)}.hover\:bg-surface:hover{background-color:var(--bg-surface)}.hover\:text-danger:hover{color:var(--danger)}.hover\:text-fg:hover{color:var(--text-primary)}.hover\:text-fg-secondary:hover{color:var(--text-secondary)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}}.focus\:bg-border\/80:focus{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-border\/80:focus{background-color:color-mix(in oklab, var(--border) 80%, transparent)}}.focus\:bg-elevated:focus{background-color:var(--bg-elevated)}.focus\:bg-ground:focus{background-color:var(--bg-base)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-focus:focus{--tw-ring-color:var(--focus-ring)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:bg-elevated:focus-visible{background-color:var(--bg-elevated)}.focus-visible\:text-fg:focus-visible{color:var(--text-primary)}.active\:bg-border:active,.active\:bg-border\/70:active{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.active\:bg-border\/70:active{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}.active\:opacity-80:active{opacity:.8}.active\:opacity-85:active{opacity:.85}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:cursor-wait:disabled{cursor:wait}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\[data-state\=open\]\]\:flex:has([data-state=open]){display:flex}.has-\[\[data-state\=open\]\]\:inline-flex:has([data-state=open]){display:inline-flex}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[highlighted\]\:bg-action[data-highlighted]{background-color:var(--action)}.data-\[highlighted\]\:text-action-ink[data-highlighted]{color:var(--action-ink)}.data-\[resizing\]\:bg-accent[data-resizing]{background-color:var(--accent)}.data-\[selected\=true\]\:bg-action[data-selected=true]{background-color:var(--action)}.data-\[selected\=true\]\:text-action-ink[data-selected=true]{color:var(--action-ink)}.data-\[state\=active\]\:bg-elevated[data-state=active]{background-color:var(--bg-elevated)}.data-\[state\=active\]\:text-fg[data-state=active]{color:var(--text-primary)}.data-\[state\=checked\]\:translate-x-\[1\.125rem\][data-state=checked]{--tw-translate-x:1.125rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:bg-action[data-state=checked],.data-\[state\=open\]\:bg-action[data-state=open]{background-color:var(--action)}.data-\[state\=open\]\:text-action-ink[data-state=open]{color:var(--action-ink)}.data-\[state\=unchecked\]\:translate-x-0\.5[data-state=unchecked]{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=unchecked\]\:bg-border[data-state=unchecked]{background-color:var(--border)}@media (hover:hover){.data-\[state\=unchecked\]\:hover\:bg-border\/70[data-state=unchecked]:hover{background-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.data-\[state\=unchecked\]\:hover\:bg-border\/70[data-state=unchecked]:hover{background-color:color-mix(in oklab, var(--border) 70%, transparent)}}}@media (width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (pointer:coarse){.pointer-coarse\:flex{display:flex}.pointer-coarse\:inline-flex{display:inline-flex}}.compact\:size-3:where([data-density=compact],[data-density=compact] *){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.compact\:h-5:where([data-density=compact],[data-density=compact] *){height:calc(var(--spacing) * 5)}.compact\:h-7:where([data-density=compact],[data-density=compact] *){height:calc(var(--spacing) * 7)}.compact\:w-7:where([data-density=compact],[data-density=compact] *){width:calc(var(--spacing) * 7)}.compact\:gap-0:where([data-density=compact],[data-density=compact] *){gap:0}.compact\:gap-0\.5:where([data-density=compact],[data-density=compact] *){gap:calc(var(--spacing) * .5)}.compact\:gap-1\.5:where([data-density=compact],[data-density=compact] *){gap:calc(var(--spacing) * 1.5)}.compact\:p-1:where([data-density=compact],[data-density=compact] *){padding:var(--spacing)}.compact\:px-1\.5:where([data-density=compact],[data-density=compact] *){padding-inline:calc(var(--spacing) * 1.5)}.compact\:py-1:where([data-density=compact],[data-density=compact] *){padding-block:var(--spacing)}.compact\:pt-1\.5:where([data-density=compact],[data-density=compact] *){padding-top:calc(var(--spacing) * 1.5)}.compact\:pb-0\.5:where([data-density=compact],[data-density=compact] *){padding-bottom:calc(var(--spacing) * .5)}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-inline:calc(var(--spacing) * 2)}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-block:calc(var(--spacing) * 1.5)}.\[\&_\[cmdk-group-heading\]\]\:text-2xs [cmdk-group-heading]{font-size:.6875rem;line-height:var(--tw-leading,1rem)}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[cmdk-group-heading\]\]\:tracking-wide [cmdk-group-heading]{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[\&_\[cmdk-group-heading\]\]\:text-fg-muted [cmdk-group-heading]{color:var(--text-muted)}.\[\&_\[cmdk-group-heading\]\]\:uppercase [cmdk-group-heading]{text-transform:uppercase}.\[\&_svg\]\:size-3\.5 svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:text-fg-muted svg{color:var(--text-muted)}.data-\[selected\=true\]\:\[\&_svg\]\:text-action-ink[data-selected=true] svg{color:var(--action-ink)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\>\*\]\:pointer-events-auto>*{pointer-events:auto}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\]\:truncate>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:m-2>svg{margin:calc(var(--spacing) * 2)}.\[\&\[open\]\>summary\>svg\]\:rotate-90[open]>summary>svg{rotate:90deg}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e,t,n){return!e||e.major>t||e.major===t&&e.minor>=n}function t(t){return e(t,17,1)}function n(t){return e(t,17,3)}var r=t=>e(t,10,3),i=t=>e(t,12,3),a=t=>e(t,12,4),o=t=>e(t,15,3),s=t=>t!==void 0&&e(t,16,3),c=t=>e(t,16,4),l=t=>e(t,14,1);export{l as a,o as c,s as i,r as l,n,a as o,t as r,c as s,i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FOHPRMQF-CdD2_EOh.js";import{m as e}from"./mermaid-parser.core-DfmtQ5si.js";export{e as createRailroadAbnfServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FOHPRMQF-CdD2_EOh.js";import{f as e}from"./mermaid-parser.core-DfmtQ5si.js";export{e as createRailroadEbnfServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-FOHPRMQF-CdD2_EOh.js";import{u as e}from"./mermaid-parser.core-DfmtQ5si.js";export{e as createRailroadPegServices};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-_wZywoZs.js";import"./chunk-DU6HZSFF-C94gDWXH.js";import"./chunk-75Z2AOVW-BOvbyaVc.js";import"./chunk-PWAF6VOD-Ds90M0Eb.js";import"./chunk-GMAD6QVW-C7KK3kiY.js";import"./chunk-P2QGCYS3-v7eQ-UQT.js";import"./chunk-4HAMMTFA-BGEaVxkg.js";import"./chunk-GVQU2GXP-CDFKc0sW.js";import"./chunk-OSK3NFVY-BlmYDJRN.js";import"./chunk-F27PBJKO-CZD-A2b3.js";import"./chunk-XXDRQBXY-BuE3VzE_.js";import"./chunk-POPQ4Y6H-D_gxItFL.js";import"./chunk-L3NEJ4N5-DqP3WOXV.js";import"./chunk-TLUHSLCS-CEnN9wOB.js";import{i as t,n,r,t as i}from"./chunk-IMKFNOWR-BWQiE1Cp.js";var a={parser:n,get db(){return new i(2)},renderer:r,styles:t,init:e(e=>{e.state||={},e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},`init`)};export{a as diagram};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import"./src-_wZywoZs.js";import"./chunk-DU6HZSFF-C94gDWXH.js";import"./chunk-75Z2AOVW-BOvbyaVc.js";import"./chunk-PWAF6VOD-Ds90M0Eb.js";import"./chunk-GMAD6QVW-C7KK3kiY.js";import"./chunk-P2QGCYS3-v7eQ-UQT.js";import"./chunk-4HAMMTFA-BGEaVxkg.js";import"./chunk-GVQU2GXP-CDFKc0sW.js";import"./chunk-OSK3NFVY-BlmYDJRN.js";import"./chunk-F27PBJKO-CZD-A2b3.js";import"./chunk-XXDRQBXY-BuE3VzE_.js";import"./chunk-POPQ4Y6H-D_gxItFL.js";import"./chunk-L3NEJ4N5-DqP3WOXV.js";import"./chunk-TLUHSLCS-CEnN9wOB.js";import"./chunk-LNGE3PJU-DNNNwF8Y.js";import{r as t,t as n}from"./chunk-SHT3W25Y-B8oepiFw.js";var r=n({defaultLayout:`swimlane`,styles:e(e=>`${t(e)}
|
|
2
|
-
.swimlane.cluster rect {
|
|
3
|
-
stroke: ${e.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,`getStyles`)});export{r as diagram};
|