@anvia/studio 1.3.13 → 1.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/assets/{ArrowClockwise.es-DwsUsBcf.js → ArrowClockwise.es-DZEjRq0J.js} +2 -2
- package/dist/ui/assets/ArrowClockwise.es-DZEjRq0J.js.map +1 -0
- package/dist/ui/assets/{Check.es-DSgPB1Pv.js → Check.es-TFx4xBI5.js} +2 -2
- package/dist/ui/assets/Check.es-TFx4xBI5.js.map +1 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js +42 -0
- package/dist/ui/assets/Combination-CFi_6UzA.js.map +1 -0
- package/dist/ui/assets/{Copy.es-C6Vd2mhd.js → Copy.es-BUkmbhxT.js} +2 -2
- package/dist/ui/assets/Copy.es-BUkmbhxT.js.map +1 -0
- package/dist/ui/assets/{MagnifyingGlass.es-DP3xtOg0.js → MagnifyingGlass.es-DVzl9EQ2.js} +2 -2
- package/dist/ui/assets/MagnifyingGlass.es-DVzl9EQ2.js.map +1 -0
- package/dist/ui/assets/{Wrench.es-BEBc8KqB.js → Wrench.es-Uf2XraWM.js} +2 -2
- package/dist/ui/assets/Wrench.es-Uf2XraWM.js.map +1 -0
- package/dist/ui/assets/{agents-page-BeBY9su3.js → agents-page-BLy19QA8.js} +2 -2
- package/dist/ui/assets/agents-page-BLy19QA8.js.map +1 -0
- package/dist/ui/assets/{badge-MfEDrFTO.js → badge-D6eyQQ0T.js} +2 -2
- package/dist/ui/assets/badge-D6eyQQ0T.js.map +1 -0
- package/dist/ui/assets/button-4bdMllZ8.js +2 -0
- package/dist/ui/assets/button-4bdMllZ8.js.map +1 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js +2 -0
- package/dist/ui/assets/dialog-D1odZMnQ.js.map +1 -0
- package/dist/ui/assets/dist-C6Ez28oH.js +2 -0
- package/dist/ui/assets/dist-C6Ez28oH.js.map +1 -0
- package/dist/ui/assets/dist-gzPjmjmv.js +2 -0
- package/dist/ui/assets/dist-gzPjmjmv.js.map +1 -0
- package/dist/ui/assets/dist-uvOGC5z0.js +2 -0
- package/dist/ui/assets/dist-uvOGC5z0.js.map +1 -0
- package/dist/ui/assets/{graphs-page-2rKZQJAl.js → graphs-page-CDMb6H6o.js} +2 -2
- package/dist/ui/assets/graphs-page-CDMb6H6o.js.map +1 -0
- package/dist/ui/assets/{icon-BivhXy0Y.js → icon-B3s_bapw.js} +2 -2
- package/dist/ui/assets/icon-B3s_bapw.js.map +1 -0
- package/dist/ui/assets/index-BpwQ_xqH.js +67 -0
- package/dist/ui/assets/index-BpwQ_xqH.js.map +1 -0
- package/dist/ui/assets/index-DVwgJz2a.css +2 -0
- package/dist/ui/assets/{input-C35vs5wD.js → input-DjRTBLA6.js} +2 -2
- package/dist/ui/assets/input-DjRTBLA6.js.map +1 -0
- package/dist/ui/assets/knowledge-model-B6kRb7zc.js.map +1 -1
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js +2 -0
- package/dist/ui/assets/knowledge-page-BpSbnDxl.js.map +1 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js +2 -0
- package/dist/ui/assets/mcps-page-CAdyljvT.js.map +1 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js +4 -0
- package/dist/ui/assets/memory-page-MhRppZ8j.js.map +1 -0
- package/dist/ui/assets/{pipelines-page-BeE6_VuK.js → pipelines-page-ClFgb3LL.js} +2 -2
- package/dist/ui/assets/pipelines-page-ClFgb3LL.js.map +1 -0
- package/dist/ui/assets/renderers-C1LvbME4.js +94 -0
- package/dist/ui/assets/renderers-C1LvbME4.js.map +1 -0
- package/dist/ui/assets/{request-CpxtfF0E.js → request-C9FAR59q.js} +2 -2
- package/dist/ui/assets/request-C9FAR59q.js.map +1 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js +6 -0
- package/dist/ui/assets/rfb-CtGtw_KV.js.map +1 -0
- package/dist/ui/assets/{sandboxes-page-GPkBA_26.js → sandboxes-page-B1j_lSIA.js} +2 -2
- package/dist/ui/assets/sandboxes-page-B1j_lSIA.js.map +1 -0
- package/dist/ui/assets/select-DwjXlQvi.js +2 -0
- package/dist/ui/assets/select-DwjXlQvi.js.map +1 -0
- package/dist/ui/assets/{sessions-page-CDvKPoVi.js → sessions-page-Bym9fk3t.js} +2 -2
- package/dist/ui/assets/sessions-page-Bym9fk3t.js.map +1 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js +2 -0
- package/dist/ui/assets/status-page-WZ4bloEs.js.map +1 -0
- package/dist/ui/assets/{studio-DeO7ueA2.js → studio-ZpV3GAsn.js} +2 -2
- package/dist/ui/assets/studio-ZpV3GAsn.js.map +1 -0
- package/dist/ui/assets/style-B23wzg_0.js +8 -0
- package/dist/ui/assets/style-B23wzg_0.js.map +1 -0
- package/dist/ui/assets/{team-playground-C-nJy3BC.js → team-playground-BWPiCcRS.js} +2 -2
- package/dist/ui/assets/{team-playground-C-nJy3BC.js.map → team-playground-BWPiCcRS.js.map} +1 -1
- package/dist/ui/assets/{textarea-BqjRR-2a.js → textarea-D_t9rW9X.js} +2 -2
- package/dist/ui/assets/textarea-D_t9rW9X.js.map +1 -0
- package/dist/ui/assets/{tool-runner-D3CdDSUU.js → tool-runner-BVvlqFJh.js} +2 -2
- package/dist/ui/assets/tool-runner-BVvlqFJh.js.map +1 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js +2 -0
- package/dist/ui/assets/tools-page-BTQvpS16.js.map +1 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js +4 -0
- package/dist/ui/assets/trace-browser-DiYLVmUu.js.map +1 -0
- package/dist/ui/assets/{transcript-item-D9M-VsnP.js → transcript-item-Wai6fv5d.js} +2 -2
- package/dist/ui/assets/transcript-item-Wai6fv5d.js.map +1 -0
- package/dist/ui/assets/{with-selector-CfGDDu3e.js → with-selector-DI0K_VfM.js} +2 -2
- package/dist/ui/assets/with-selector-DI0K_VfM.js.map +1 -0
- package/dist/ui/index.html +17 -17
- package/package.json +22 -22
- package/dist/ui/assets/ArrowClockwise.es-DwsUsBcf.js.map +0 -1
- package/dist/ui/assets/Check.es-DSgPB1Pv.js.map +0 -1
- package/dist/ui/assets/Combination-BkVfYDnw.js +0 -42
- package/dist/ui/assets/Combination-BkVfYDnw.js.map +0 -1
- package/dist/ui/assets/Copy.es-C6Vd2mhd.js.map +0 -1
- package/dist/ui/assets/MagnifyingGlass.es-DP3xtOg0.js.map +0 -1
- package/dist/ui/assets/Wrench.es-BEBc8KqB.js.map +0 -1
- package/dist/ui/assets/agents-page-BeBY9su3.js.map +0 -1
- package/dist/ui/assets/badge-MfEDrFTO.js.map +0 -1
- package/dist/ui/assets/button-jjWFI6nO.js +0 -2
- package/dist/ui/assets/button-jjWFI6nO.js.map +0 -1
- package/dist/ui/assets/dialog-7KiF6M8r.js +0 -2
- package/dist/ui/assets/dialog-7KiF6M8r.js.map +0 -1
- package/dist/ui/assets/dist-Che9Yn41.js +0 -2
- package/dist/ui/assets/dist-Che9Yn41.js.map +0 -1
- package/dist/ui/assets/dist-Du1CgPgL.js +0 -2
- package/dist/ui/assets/dist-Du1CgPgL.js.map +0 -1
- package/dist/ui/assets/dist-xrWIzsxw.js +0 -2
- package/dist/ui/assets/dist-xrWIzsxw.js.map +0 -1
- package/dist/ui/assets/graphs-page-2rKZQJAl.js.map +0 -1
- package/dist/ui/assets/icon-BivhXy0Y.js.map +0 -1
- package/dist/ui/assets/index-BDFcpxF9.css +0 -2
- package/dist/ui/assets/index-DQo99AOj.js +0 -67
- package/dist/ui/assets/index-DQo99AOj.js.map +0 -1
- package/dist/ui/assets/input-C35vs5wD.js.map +0 -1
- package/dist/ui/assets/knowledge-page-CguNnujL.js +0 -2
- package/dist/ui/assets/knowledge-page-CguNnujL.js.map +0 -1
- package/dist/ui/assets/mcps-page-BZVfflk-.js +0 -2
- package/dist/ui/assets/mcps-page-BZVfflk-.js.map +0 -1
- package/dist/ui/assets/memory-page-DyK3UTyb.js +0 -4
- package/dist/ui/assets/memory-page-DyK3UTyb.js.map +0 -1
- package/dist/ui/assets/pipelines-page-BeE6_VuK.js.map +0 -1
- package/dist/ui/assets/renderers-BakHuLSK.js +0 -96
- package/dist/ui/assets/renderers-BakHuLSK.js.map +0 -1
- package/dist/ui/assets/request-CpxtfF0E.js.map +0 -1
- package/dist/ui/assets/rfb-NV_fh9Db.js +0 -6
- package/dist/ui/assets/rfb-NV_fh9Db.js.map +0 -1
- package/dist/ui/assets/sandboxes-page-GPkBA_26.js.map +0 -1
- package/dist/ui/assets/select-Bt5d0Z3n.js +0 -2
- package/dist/ui/assets/select-Bt5d0Z3n.js.map +0 -1
- package/dist/ui/assets/sessions-page-CDvKPoVi.js.map +0 -1
- package/dist/ui/assets/status-page-DvH1oCw1.js +0 -2
- package/dist/ui/assets/status-page-DvH1oCw1.js.map +0 -1
- package/dist/ui/assets/studio-DeO7ueA2.js.map +0 -1
- package/dist/ui/assets/style-C_1A5pxg.js +0 -8
- package/dist/ui/assets/style-C_1A5pxg.js.map +0 -1
- package/dist/ui/assets/textarea-BqjRR-2a.js.map +0 -1
- package/dist/ui/assets/tool-runner-D3CdDSUU.js.map +0 -1
- package/dist/ui/assets/tools-page-C0lqOcri.js +0 -2
- package/dist/ui/assets/tools-page-C0lqOcri.js.map +0 -1
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js +0 -4
- package/dist/ui/assets/trace-browser-B4cu-jFZ.js.map +0 -1
- package/dist/ui/assets/transcript-item-D9M-VsnP.js.map +0 -1
- package/dist/ui/assets/with-selector-CfGDDu3e.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,s as r}from"./dist-xrWIzsxw.js";import{c as i,t as a}from"./button-jjWFI6nO.js";import{i as ee,t as o}from"./request-CpxtfF0E.js";import{t as s}from"./ArrowClockwise.es-DwsUsBcf.js";import{n as c,t as l}from"./icon-BivhXy0Y.js";import{a as u,i as d,o as f,r as p,s as m,t as h}from"./studio-DeO7ueA2.js";var g=r(e(),1),_=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M228,144v64a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V144a12,12,0,0,1,24,0v52H204V144a12,12,0,0,1,24,0Zm-108.49,8.49a12,12,0,0,0,17,0l40-40a12,12,0,0,0-17-17L140,115V32a12,12,0,0,0-24,0v83L96.49,95.51a12,12,0,0,0-17,17Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216,48V208H40V48A16,16,0,0,1,56,32H200A16,16,0,0,1,216,48Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,168,96H136V32a8,8,0,0,0-16,0V96H88a8,8,0,0,0-5.66,13.66Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0Zm-98.24,4.24a6,6,0,0,0,8.48,0l40-40a6,6,0,0,0-8.48-8.48L134,129.51V32a6,6,0,0,0-12,0v97.51L92.24,99.76a6,6,0,0,0-8.48,8.48Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M220,144v64a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V144a4,4,0,0,1,8,0v60H212V144a4,4,0,0,1,8,0Zm-94.83,2.83a4,4,0,0,0,5.66,0l40-40a4,4,0,1,0-5.66-5.66L132,134.34V32a4,4,0,0,0-8,0V134.34L90.83,101.17a4,4,0,0,0-5.66,5.66Z`}))]]),v=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M208,88H152V32Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM152,88V44l44,44Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Z`}))]]),y=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z`}))]]),b=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M72.5,150.63,100.79,128,72.5,105.37a12,12,0,1,1,15-18.74l40,32a12,12,0,0,1,0,18.74l-40,32a12,12,0,0,1-15-18.74ZM144,172h32a12,12,0,0,0,0-24H144a12,12,0,0,0,0,24ZM236,56V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56Zm-24,4H44V196H212Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,56V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-91,94.25-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32a8,8,0,0,1,0,12.5ZM176,168H136a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M126,128a6,6,0,0,1-2.25,4.69l-40,32a6,6,0,0,1-7.5-9.38L110.4,128,76.25,100.69a6,6,0,1,1,7.5-9.38l40,32A6,6,0,0,1,126,128Zm50,26H136a6,6,0,0,0,0,12h40a6,6,0,0,0,0-12Zm54-98V200a14,14,0,0,1-14,14H40a14,14,0,0,1-14-14V56A14,14,0,0,1,40,42H216A14,14,0,0,1,230,56Zm-12,0a2,2,0,0,0-2-2H40a2,2,0,0,0-2,2V200a2,2,0,0,0,2,2H216a2,2,0,0,0,2-2Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M122.5,124.88a4,4,0,0,1,0,6.24l-40,32a4,4,0,0,1-5-6.24L113.6,128,77.5,99.12a4,4,0,0,1,5-6.24ZM176,156H136a4,4,0,0,0,0,8h40a4,4,0,0,0,0-8ZM228,56V200a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V56A12,12,0,0,1,40,44H216A12,12,0,0,1,228,56Zm-8,0a4,4,0,0,0-4-4H40a4,4,0,0,0-4,4V200a4,4,0,0,0,4,4H216a4,4,0,0,0,4-4Z`}))]]),x=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:_}));x.displayName=`DownloadSimpleIcon`;var S=x,C=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:v}));C.displayName=`FileIcon`;var w=C,T=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:y}));T.displayName=`FolderOpenIcon`;var E=T,D=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:b}));D.displayName=`TerminalWindowIcon`;var O=D,k=n(),A=1048576,j=new Set(`css.csv.env.gitignore.graphql.html.ini.java.js.json.jsx.log.md.mdx.mjs.py.rb.rs.sh.sql.svg.toml.ts.tsx.txt.xml.yaml.yml`.split(`.`)),M=new Map([[`gif`,`image/gif`],[`jpeg`,`image/jpeg`],[`jpg`,`image/jpeg`],[`png`,`image/png`],[`webp`,`image/webp`]]);function N(e){let[t,n]=(0,g.useState)([]),[r,c]=(0,g.useState)(`idle`),[f,m]=(0,g.useState)(0),[_,v]=(0,g.useState)(`.`),[y,b]=(0,g.useState)([]),[x,S]=(0,g.useState)(`idle`),[C,w]=(0,g.useState)(),[T,E]=(0,g.useState)([]),[D,O]=(0,g.useState)([]),[N,P]=(0,g.useState)(`idle`),[I,R]=(0,g.useState)(``),[z,B]=(0,g.useState)(),[V,W]=(0,g.useState)(``),G=(0,g.useRef)(void 0),K=e.initialSandboxRef??t[0]?.ref??``,q=t.find(e=>e.ref===K),J=q?.ref,Y=q?.capabilities.files??!1,X=q?.capabilities.ports??!1,Z=q?.capabilities.processes??!1,Q=(0,g.useCallback)(t=>{let n=i(t);W(n),e.onError(n)},[e.onError]);(0,g.useEffect)(()=>{if(!e.enabled){n([]);return}let t=new AbortController;return c(`loading`),W(``),o(`/sandboxes`,`Sandboxes`,t.signal,f===0?`default`:`reload`).then(e=>n(e.sandboxes)).catch(e=>{t.signal.aborted||Q(e)}).finally(()=>{t.signal.aborted||c(`idle`)}),()=>t.abort()},[e.enabled,f,Q]),(0,g.useEffect)(()=>{e.initialSandboxRef===void 0&&t[0]!==void 0&&e.onSelectSandbox(t[0].ref)},[e.initialSandboxRef,e.onSelectSandbox,t]),(0,g.useEffect)(()=>(v(`.`),b([]),w(void 0),E([]),O([]),R(``),B(void 0),()=>G.current?.abort()),[K]),(0,g.useEffect)(()=>{if(J===void 0||!Y){b([]),S(`idle`);return}let e=new AbortController;S(`loading`);let t=new URLSearchParams({path:_});return o(`/sandboxes/${encodeURIComponent(J)}/files?${t}`,`Sandbox files`,e.signal,f===0?`default`:`reload`).then(e=>b(e.entries)).catch(t=>{e.signal.aborted||(b([]),Q(t))}).finally(()=>{e.signal.aborted||S(`idle`)}),()=>e.abort()},[_,f,Q,J,Y]),(0,g.useEffect)(()=>{if(J===void 0)return;let e=new AbortController;P(`loading`);let t=`/sandboxes/${encodeURIComponent(J)}`,n=[];return X?n.push(o(`${t}/ports`,`Sandbox ports`,e.signal,f===0?`default`:`reload`).then(e=>E(e.ports))):E([]),Z?n.push(o(`${t}/processes`,`Sandbox processes`,e.signal,f===0?`default`:`reload`).then(e=>{O(e.processes),R(t=>e.processes.some(e=>e.id===t)?t:``)})):(O([]),R(``)),Promise.all(n).catch(t=>{e.signal.aborted||Q(t)}).finally(()=>{e.signal.aborted||P(`idle`)}),()=>e.abort()},[f,Q,J,X,Z]),(0,g.useEffect)(()=>{if(J===void 0||I.length===0){B(void 0);return}let e=new AbortController,t=`/sandboxes/${encodeURIComponent(J)}/processes`;return o(`${t}/${encodeURIComponent(I)}/logs`,`Process logs`,e.signal,f===0?`default`:`reload`).then(B).catch(t=>{e.signal.aborted||Q(t)}),()=>e.abort()},[f,Q,I,J]),(0,g.useEffect)(()=>()=>{C?.kind===`image`&&URL.revokeObjectURL(C.url)},[C]);let $=(0,g.useCallback)(()=>{G.current?.abort(),G.current=void 0,w(void 0)},[]),ie=(0,g.useCallback)(async e=>{if(G.current?.abort(),G.current=void 0,J===void 0)return;if((e.size??0)>A){w({kind:`large`,file:e});return}let t=U(e.path),n=M.get(t);if(!j.has(t)&&n===void 0){w({kind:`binary`,file:e});return}w({kind:`loading`,file:e}),W(``);let r=new AbortController;G.current=r;try{let t=await fetch(H(J,e.path),{signal:r.signal});if(!t.ok)throw Error(await ee(t,`Sandbox file`));let i=await t.arrayBuffer();if(i.byteLength>A){w({kind:`large`,file:e});return}if(n!==void 0){let t=URL.createObjectURL(new Blob([i],{type:n}));w({kind:`image`,file:e,url:t});return}try{let t=new TextDecoder(`utf-8`,{fatal:!0}).decode(i);w({kind:`text`,file:e,text:t})}catch{w({kind:`binary`,file:e})}}catch(t){if(r.signal.aborted)return;Q(t),w({kind:`binary`,file:e})}finally{G.current===r&&(G.current=void 0)}},[Q,J]);return e.enabled?(0,k.jsxs)(u,{className:`grid-rows-[auto_minmax(0,1fr)]`,"aria-label":`Sandboxes`,children:[(0,k.jsx)(d,{title:`Sandboxes`,description:`Read-only sandbox inspectors explicitly registered by the application.`,action:(0,k.jsxs)(a,{disabled:r===`loading`,size:`sm`,type:`button`,variant:`secondary`,onClick:()=>m(e=>e+1),children:[(0,k.jsx)(l,{icon:s,"aria-hidden":`true`}),`Refresh`]})}),(0,k.jsx)(p,{className:`grid grid-rows-[minmax(0,1fr)] overflow-hidden`,children:t.length===0?(0,k.jsx)(h,{className:`h-full`,title:r===`loading`?`Loading sandboxes`:`No live sandboxes detected`,text:r===`loading`?`Reading live sandbox workspaces.`:`Register live sandbox inspectors in the Studio options.`}):(0,k.jsxs)(`div`,{className:`grid min-h-0 min-w-0 grid-cols-[250px_minmax(300px,0.8fr)_minmax(400px,1.2fr)] gap-3 overflow-hidden`,children:[(0,k.jsx)(te,{sandboxes:t,selectedRef:K,onSelect:e.onSelectSandbox}),Y?(0,k.jsx)(ne,{currentPath:_,files:y,loading:x===`loading`,onOpenDirectory:e=>{$(),v(e)},onOpenFile:e=>void ie(e),onSelectPath:e=>{$(),v(e)}}):(0,k.jsx)(h,{title:`Files unavailable`,text:`This registration did not expose file inspection.`}),(0,k.jsx)(`div`,{className:`grid min-h-0 gap-3 overflow-y-auto pr-1`,children:q===void 0?(0,k.jsx)(h,{title:`Sandbox unavailable`,text:`The requested live sandbox is not registered by this Studio runtime.`}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(re,{sandbox:q,error:V}),(0,k.jsx)(F,{preview:C,sandboxRef:q.ref}),(0,k.jsx)(L,{loading:N===`loading`,logs:z,ports:T,processes:D,selectedProcessId:I,supportsPorts:q.capabilities.ports,supportsProcesses:q.capabilities.processes,onSelectProcess:R})]})})]})})]}):(0,k.jsxs)(u,{className:`grid-rows-[auto_minmax(0,1fr)]`,"aria-label":`Sandboxes`,children:[(0,k.jsx)(d,{title:`Sandboxes`,description:`Read-only sandbox inspectors explicitly registered by the application.`}),(0,k.jsx)(p,{className:`overflow-auto`,children:(0,k.jsx)(h,{title:`No sandbox workspaces`,text:`Register a sandbox inspector in the Studio options to inspect it here.`})})]})}function te(e){return(0,k.jsxs)(m,{className:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`border-b border-hair px-4 py-3`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Workspaces`}),(0,k.jsxs)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:[e.sandboxes.length,` live `,e.sandboxes.length===1?`session`:`sessions`]})]}),(0,k.jsx)(`div`,{className:`min-h-0 overflow-y-auto p-2`,children:e.sandboxes.map(n=>(0,k.jsxs)(a,{className:t(`mb-1 grid h-auto min-h-16 w-full justify-stretch gap-1 rounded-lg px-3 py-2.5 text-left`,n.ref===e.selectedRef&&`border-border bg-accent text-foreground`),type:`button`,variant:`ghost`,onClick:()=>e.onSelect(n.ref),children:[(0,k.jsxs)(`span`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,k.jsx)(`strong`,{className:`truncate text-sm font-semibold text-foreground`,children:n.id}),(0,k.jsx)(f,{className:`shrink-0 px-1.5 py-0.5 text-[10px]`,children:n.provider})]}),(0,k.jsx)(`span`,{className:`truncate font-mono text-[11px] font-normal text-muted-foreground`,children:n.workdir})]},n.ref))})]})}function ne(e){let t=(0,g.useMemo)(()=>V(e.currentPath),[e.currentPath]);return(0,k.jsxs)(m,{className:`grid min-h-0 grid-rows-[auto_auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`border-b border-hair px-4 py-3`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Files`}),(0,k.jsx)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:`One level at a time`})]}),(0,k.jsx)(`div`,{className:`flex min-h-10 items-center gap-1 overflow-x-auto border-b border-hair px-3 py-1.5`,children:t.map((t,n)=>(0,k.jsxs)(`span`,{className:`flex items-center gap-1`,children:[n>0?(0,k.jsx)(`span`,{className:`text-dim`,children:`/`}):null,(0,k.jsx)(a,{className:`h-7 min-h-7 px-2 font-mono text-xs`,size:`sm`,type:`button`,variant:`ghost`,onClick:()=>e.onSelectPath(t.path),children:t.label})]},t.path))}),(0,k.jsxs)(`div`,{className:`min-h-0 overflow-y-auto p-2`,children:[e.loading?(0,k.jsx)(h,{size:`compact`,title:`Loading workspace`,text:`Reading files from the selected sandbox.`}):null,!e.loading&&e.files.length===0?(0,k.jsx)(h,{size:`compact`,title:`Empty directory`,text:`This directory does not contain any files.`}):null,e.files.map(t=>(0,k.jsxs)(a,{className:`mb-0.5 grid h-10 min-h-10 w-full grid-cols-[18px_minmax(0,1fr)_auto] justify-stretch gap-2 rounded-md px-2.5 text-left text-xs font-medium`,type:`button`,variant:`ghost`,onClick:()=>t.type===`directory`?e.onOpenDirectory(t.path):e.onOpenFile(t),children:[(0,k.jsx)(l,{className:`text-muted-foreground`,icon:t.type===`directory`?E:w,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate text-foreground`,children:W(t.path)}),(0,k.jsx)(`span`,{className:`font-mono text-[10px] font-normal text-muted-foreground`,children:t.type===`file`?G(t.size):t.type})]},t.path))]})]})}function re(e){return(0,k.jsxs)(m,{className:`p-4`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Active sandbox`}),(0,k.jsx)(`h2`,{className:`m-0 mt-1 truncate text-lg font-semibold text-foreground`,children:e.sandbox.id}),(0,k.jsx)(`p`,{className:`m-0 mt-1 truncate font-mono text-xs text-muted-foreground`,children:e.sandbox.workdir})]}),(0,k.jsx)(f,{children:e.sandbox.provider})]}),(0,k.jsxs)(`div`,{className:`mt-4 grid grid-cols-3 gap-3 text-xs`,children:[(0,k.jsx)(P,{label:`Agents`,values:e.sandbox.agentIds}),(0,k.jsx)(P,{label:`Sandbox tools`,values:e.sandbox.toolNames}),(0,k.jsx)(P,{label:`Views`,values:e.sandbox.views.map(e=>`${e.label} (${e.protocol})`)})]}),e.error.length>0?(0,k.jsx)(`p`,{className:`m-0 mt-3 rounded-lg border border-status-danger-ink bg-status-danger-fill px-3 py-2 text-xs leading-5 text-destructive`,children:e.error}):null]})}function P(e){return(0,k.jsxs)(`div`,{className:`rounded-lg border border-hair bg-background p-3`,children:[(0,k.jsx)(`span`,{className:`font-semibold uppercase tracking-[0.12em] text-muted-foreground`,children:e.label}),(0,k.jsx)(`p`,{className:`m-0 mt-1 break-words font-mono leading-5 text-foreground`,children:e.values.join(`, `)||`-`})]})}function F(e){let t=e.preview?.file;return(0,k.jsxs)(m,{className:`grid min-h-64 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`flex min-h-12 items-center justify-between gap-3 border-b border-hair px-4 py-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Preview`}),(0,k.jsx)(`p`,{className:`m-0 mt-0.5 truncate font-mono text-[11px] text-muted-foreground`,children:t?.path??`Select a file`})]}),t===void 0?null:(0,k.jsx)(a,{asChild:!0,size:`sm`,variant:`secondary`,children:(0,k.jsxs)(`a`,{href:H(e.sandboxRef,t.path,!0),children:[(0,k.jsx)(l,{icon:S,"aria-hidden":`true`}),`Download`]})})]}),(0,k.jsxs)(`div`,{className:`grid min-h-0 place-items-center overflow-auto`,children:[e.preview===void 0?(0,k.jsx)(h,{className:`h-full rounded-none`,size:`compact`,title:`No file selected`,text:`Choose a regular file to inspect its contents.`}):null,e.preview?.kind===`loading`?(0,k.jsx)(h,{className:`h-full rounded-none`,size:`compact`,title:`Loading preview`,text:`Reading the selected file.`}):null,e.preview?.kind===`text`?(0,k.jsx)(`pre`,{className:`m-0 h-full min-h-48 w-full overflow-auto whitespace-pre-wrap break-words rounded-lg border border-hair bg-card p-4 font-mono text-xs leading-5 text-foreground`,children:e.preview.text}):null,e.preview?.kind===`image`?(0,k.jsx)(`img`,{className:`max-h-96 max-w-full rounded-lg border border-hair object-contain`,src:e.preview.url,alt:W(e.preview.file.path)}):null,e.preview?.kind===`binary`?(0,k.jsx)(I,{text:`This file type is download-only and will not be rendered in Studio.`}):null,e.preview?.kind===`large`?(0,k.jsx)(I,{text:`This file is larger than the 1 MiB inline preview limit.`}):null]})]})}function I(e){return(0,k.jsxs)(`div`,{className:`grid max-w-sm justify-items-center gap-2 text-center`,children:[(0,k.jsx)(l,{className:`h-6 w-6 text-muted-foreground`,icon:w,"aria-hidden":`true`}),(0,k.jsx)(`p`,{className:`m-0 text-xs leading-5 text-muted-foreground`,children:e.text})]})}function L(e){return(0,k.jsxs)(m,{className:`p-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Runtime`}),(0,k.jsx)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:`Published ports and managed processes`})]}),e.loading?(0,k.jsx)(f,{children:`Refreshing`}):null]}),(0,k.jsxs)(`div`,{className:`mt-4 grid gap-4`,children:[(0,k.jsx)(R,{title:`Ports`,children:e.supportsPorts?e.ports.length===0?(0,k.jsx)(z,{text:`No ports are published.`}):(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.ports.map(e=>(0,k.jsxs)(`div`,{className:`grid grid-cols-[90px_minmax(0,1fr)] gap-3 rounded-md border border-hair px-3 py-2 font-mono text-xs`,children:[(0,k.jsxs)(`span`,{className:`text-foreground`,children:[e.containerPort,`/`,e.protocol]}),(0,k.jsxs)(`span`,{className:`truncate text-muted-foreground`,children:[e.host,`:`,e.hostPort]})]},`${e.containerPort}:${e.hostPort}`))}):(0,k.jsx)(z,{text:`Published ports are not supported by this sandbox.`})}),(0,k.jsx)(R,{title:`Processes`,children:e.supportsProcesses?e.processes.length===0?(0,k.jsx)(z,{text:`No managed processes are recorded.`}):(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.processes.map(n=>(0,k.jsxs)(a,{className:t(`grid h-auto min-h-11 w-full grid-cols-[minmax(0,1fr)_auto] justify-stretch gap-3 rounded-md px-3 py-2 text-left`,n.id===e.selectedProcessId&&`border-border bg-accent text-foreground`),type:`button`,variant:`ghost`,onClick:()=>e.onSelectProcess(n.id),children:[(0,k.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(l,{className:`text-muted-foreground`,icon:O,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate font-mono text-xs text-foreground`,children:[n.command,...n.args].join(` `)})]}),(0,k.jsx)(f,{className:`px-1.5 py-0.5 text-[10px]`,children:n.status})]},n.id))}):(0,k.jsx)(z,{text:`Managed processes are not supported by this sandbox.`})}),e.selectedProcessId.length>0?(0,k.jsx)(R,{title:`Process logs`,children:e.logs===void 0?(0,k.jsx)(z,{text:`Loading the latest bounded output.`}):(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(B,{label:`stdout`,text:e.logs.stdout,truncated:e.logs.stdoutTruncated}),(0,k.jsx)(B,{label:`stderr`,text:e.logs.stderr,truncated:e.logs.stderrTruncated})]})}):null]})]})}function R(e){return(0,k.jsxs)(`section`,{className:`grid gap-2`,children:[(0,k.jsx)(`h3`,{className:`m-0 text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.title}),e.children]})}function z(e){return(0,k.jsx)(`p`,{className:`m-0 rounded-md border border-dashed border-hair px-3 py-2 text-xs leading-5 text-muted-foreground`,children:e.text})}function B(e){return(0,k.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-hair bg-background`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b border-hair px-3 py-1.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,k.jsx)(`span`,{children:e.label}),e.truncated?(0,k.jsx)(`span`,{children:`truncated`}):null]}),(0,k.jsx)(`pre`,{className:`m-0 max-h-48 overflow-auto whitespace-pre-wrap break-words p-3 font-mono text-[11px] leading-5 text-foreground`,children:e.text||`No output`})]})}function V(e){let t=e===`.`?[]:e.split(`/`).filter(Boolean),n=[{label:`/`,path:`.`}];for(let e=0;e<t.length;e+=1)n.push({label:t[e]??``,path:t.slice(0,e+1).join(`/`)});return n}function H(e,t,n=!1){let r=new URLSearchParams({path:t});return n&&r.set(`download`,`1`),`/sandboxes/${encodeURIComponent(e)}/files/content?${r}`}function U(e){let t=W(e).toLowerCase(),n=t.lastIndexOf(`.`);return n<0?t:t.slice(n+1)}function W(e){return e.split(`/`).at(-1)??e}function G(e){return e===void 0?`-`:e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KiB`:`${(e/1048576).toFixed(1)} MiB`}export{N as SandboxesPage};
|
|
2
|
-
//# sourceMappingURL=sandboxes-page-
|
|
1
|
+
import{i as e,n as t,r as n,s as r}from"./dist-gzPjmjmv.js";import{l as i,t as a}from"./button-4bdMllZ8.js";import{i as ee,t as o}from"./request-C9FAR59q.js";import{t as s}from"./ArrowClockwise.es-DZEjRq0J.js";import{n as c,t as l}from"./icon-B3s_bapw.js";import{a as u,i as d,o as f,r as p,s as m,t as h}from"./studio-ZpV3GAsn.js";var g=r(e(),1),_=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M228,144v64a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V144a12,12,0,0,1,24,0v52H204V144a12,12,0,0,1,24,0Zm-108.49,8.49a12,12,0,0,0,17,0l40-40a12,12,0,0,0-17-17L140,115V32a12,12,0,0,0-24,0v83L96.49,95.51a12,12,0,0,0-17,17Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216,48V208H40V48A16,16,0,0,1,56,32H200A16,16,0,0,1,216,48Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,168,96H136V32a8,8,0,0,0-16,0V96H88a8,8,0,0,0-5.66,13.66Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0Zm-98.24,4.24a6,6,0,0,0,8.48,0l40-40a6,6,0,0,0-8.48-8.48L134,129.51V32a6,6,0,0,0-12,0v97.51L92.24,99.76a6,6,0,0,0-8.48,8.48Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M220,144v64a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V144a4,4,0,0,1,8,0v60H212V144a4,4,0,0,1,8,0Zm-94.83,2.83a4,4,0,0,0,5.66,0l40-40a4,4,0,1,0-5.66-5.66L132,134.34V32a4,4,0,0,0-8,0V134.34L90.83,101.17a4,4,0,0,0-5.66,5.66Z`}))]]),v=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M208,88H152V32Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM152,88V44l44,44Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Z`}))]]),y=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z`}))]]),b=new Map([[`bold`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M72.5,150.63,100.79,128,72.5,105.37a12,12,0,1,1,15-18.74l40,32a12,12,0,0,1,0,18.74l-40,32a12,12,0,0,1-15-18.74ZM144,172h32a12,12,0,0,0,0-24H144a12,12,0,0,0,0,24ZM236,56V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56Zm-24,4H44V196H212Z`}))],[`duotone`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M224,56V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z`,opacity:`0.2`}),g.createElement(`path`,{d:`M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z`}))],[`fill`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-91,94.25-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32a8,8,0,0,1,0,12.5ZM176,168H136a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Z`}))],[`light`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M126,128a6,6,0,0,1-2.25,4.69l-40,32a6,6,0,0,1-7.5-9.38L110.4,128,76.25,100.69a6,6,0,1,1,7.5-9.38l40,32A6,6,0,0,1,126,128Zm50,26H136a6,6,0,0,0,0,12h40a6,6,0,0,0,0-12Zm54-98V200a14,14,0,0,1-14,14H40a14,14,0,0,1-14-14V56A14,14,0,0,1,40,42H216A14,14,0,0,1,230,56Zm-12,0a2,2,0,0,0-2-2H40a2,2,0,0,0-2,2V200a2,2,0,0,0,2,2H216a2,2,0,0,0,2-2Z`}))],[`regular`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z`}))],[`thin`,g.createElement(g.Fragment,null,g.createElement(`path`,{d:`M122.5,124.88a4,4,0,0,1,0,6.24l-40,32a4,4,0,0,1-5-6.24L113.6,128,77.5,99.12a4,4,0,0,1,5-6.24ZM176,156H136a4,4,0,0,0,0,8h40a4,4,0,0,0,0-8ZM228,56V200a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V56A12,12,0,0,1,40,44H216A12,12,0,0,1,228,56Zm-8,0a4,4,0,0,0-4-4H40a4,4,0,0,0-4,4V200a4,4,0,0,0,4,4H216a4,4,0,0,0,4-4Z`}))]]),x=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:_}));x.displayName=`DownloadSimpleIcon`;var S=x,C=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:v}));C.displayName=`FileIcon`;var w=C,T=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:y}));T.displayName=`FolderOpenIcon`;var E=T,D=g.forwardRef((e,t)=>g.createElement(c,{ref:t,...e,weights:b}));D.displayName=`TerminalWindowIcon`;var O=D,k=n(),A=1048576,j=new Set(`css.csv.env.gitignore.graphql.html.ini.java.js.json.jsx.log.md.mdx.mjs.py.rb.rs.sh.sql.svg.toml.ts.tsx.txt.xml.yaml.yml`.split(`.`)),M=new Map([[`gif`,`image/gif`],[`jpeg`,`image/jpeg`],[`jpg`,`image/jpeg`],[`png`,`image/png`],[`webp`,`image/webp`]]);function N(e){let[t,n]=(0,g.useState)([]),[r,c]=(0,g.useState)(`idle`),[f,m]=(0,g.useState)(0),[_,v]=(0,g.useState)(`.`),[y,b]=(0,g.useState)([]),[x,S]=(0,g.useState)(`idle`),[C,w]=(0,g.useState)(),[T,E]=(0,g.useState)([]),[D,O]=(0,g.useState)([]),[N,P]=(0,g.useState)(`idle`),[I,R]=(0,g.useState)(``),[z,B]=(0,g.useState)(),[V,W]=(0,g.useState)(``),G=(0,g.useRef)(void 0),K=e.initialSandboxRef??t[0]?.ref??``,q=t.find(e=>e.ref===K),J=q?.ref,Y=q?.capabilities.files??!1,X=q?.capabilities.ports??!1,Z=q?.capabilities.processes??!1,Q=(0,g.useCallback)(t=>{let n=i(t);W(n),e.onError(n)},[e.onError]);(0,g.useEffect)(()=>{if(!e.enabled){n([]);return}let t=new AbortController;return c(`loading`),W(``),o(`/sandboxes`,`Sandboxes`,t.signal,f===0?`default`:`reload`).then(e=>n(e.sandboxes)).catch(e=>{t.signal.aborted||Q(e)}).finally(()=>{t.signal.aborted||c(`idle`)}),()=>t.abort()},[e.enabled,f,Q]),(0,g.useEffect)(()=>{e.initialSandboxRef===void 0&&t[0]!==void 0&&e.onSelectSandbox(t[0].ref)},[e.initialSandboxRef,e.onSelectSandbox,t]),(0,g.useEffect)(()=>(v(`.`),b([]),w(void 0),E([]),O([]),R(``),B(void 0),()=>G.current?.abort()),[K]),(0,g.useEffect)(()=>{if(J===void 0||!Y){b([]),S(`idle`);return}let e=new AbortController;S(`loading`);let t=new URLSearchParams({path:_});return o(`/sandboxes/${encodeURIComponent(J)}/files?${t}`,`Sandbox files`,e.signal,f===0?`default`:`reload`).then(e=>b(e.entries)).catch(t=>{e.signal.aborted||(b([]),Q(t))}).finally(()=>{e.signal.aborted||S(`idle`)}),()=>e.abort()},[_,f,Q,J,Y]),(0,g.useEffect)(()=>{if(J===void 0)return;let e=new AbortController;P(`loading`);let t=`/sandboxes/${encodeURIComponent(J)}`,n=[];return X?n.push(o(`${t}/ports`,`Sandbox ports`,e.signal,f===0?`default`:`reload`).then(e=>E(e.ports))):E([]),Z?n.push(o(`${t}/processes`,`Sandbox processes`,e.signal,f===0?`default`:`reload`).then(e=>{O(e.processes),R(t=>e.processes.some(e=>e.id===t)?t:``)})):(O([]),R(``)),Promise.all(n).catch(t=>{e.signal.aborted||Q(t)}).finally(()=>{e.signal.aborted||P(`idle`)}),()=>e.abort()},[f,Q,J,X,Z]),(0,g.useEffect)(()=>{if(J===void 0||I.length===0){B(void 0);return}let e=new AbortController,t=`/sandboxes/${encodeURIComponent(J)}/processes`;return o(`${t}/${encodeURIComponent(I)}/logs`,`Process logs`,e.signal,f===0?`default`:`reload`).then(B).catch(t=>{e.signal.aborted||Q(t)}),()=>e.abort()},[f,Q,I,J]),(0,g.useEffect)(()=>()=>{C?.kind===`image`&&URL.revokeObjectURL(C.url)},[C]);let $=(0,g.useCallback)(()=>{G.current?.abort(),G.current=void 0,w(void 0)},[]),ie=(0,g.useCallback)(async e=>{if(G.current?.abort(),G.current=void 0,J===void 0)return;if((e.size??0)>A){w({kind:`large`,file:e});return}let t=U(e.path),n=M.get(t);if(!j.has(t)&&n===void 0){w({kind:`binary`,file:e});return}w({kind:`loading`,file:e}),W(``);let r=new AbortController;G.current=r;try{let t=await fetch(H(J,e.path),{signal:r.signal});if(!t.ok)throw Error(await ee(t,`Sandbox file`));let i=await t.arrayBuffer();if(i.byteLength>A){w({kind:`large`,file:e});return}if(n!==void 0){let t=URL.createObjectURL(new Blob([i],{type:n}));w({kind:`image`,file:e,url:t});return}try{let t=new TextDecoder(`utf-8`,{fatal:!0}).decode(i);w({kind:`text`,file:e,text:t})}catch{w({kind:`binary`,file:e})}}catch(t){if(r.signal.aborted)return;Q(t),w({kind:`binary`,file:e})}finally{G.current===r&&(G.current=void 0)}},[Q,J]);return e.enabled?(0,k.jsxs)(u,{className:`grid-rows-[auto_minmax(0,1fr)]`,"aria-label":`Sandboxes`,children:[(0,k.jsx)(d,{title:`Sandboxes`,description:`Read-only sandbox inspectors explicitly registered by the application.`,action:(0,k.jsxs)(a,{disabled:r===`loading`,size:`sm`,type:`button`,variant:`secondary`,onClick:()=>m(e=>e+1),children:[(0,k.jsx)(l,{icon:s,"aria-hidden":`true`}),`Refresh`]})}),(0,k.jsx)(p,{className:`grid grid-rows-[minmax(0,1fr)] overflow-hidden`,children:t.length===0?(0,k.jsx)(h,{className:`h-full`,title:r===`loading`?`Loading sandboxes`:`No live sandboxes detected`,text:r===`loading`?`Reading live sandbox workspaces.`:`Register live sandbox inspectors in the Studio options.`}):(0,k.jsxs)(`div`,{className:`grid min-h-0 min-w-0 grid-cols-[250px_minmax(300px,0.8fr)_minmax(400px,1.2fr)] gap-3 overflow-hidden`,children:[(0,k.jsx)(te,{sandboxes:t,selectedRef:K,onSelect:e.onSelectSandbox}),Y?(0,k.jsx)(ne,{currentPath:_,files:y,loading:x===`loading`,onOpenDirectory:e=>{$(),v(e)},onOpenFile:e=>void ie(e),onSelectPath:e=>{$(),v(e)}}):(0,k.jsx)(h,{title:`Files unavailable`,text:`This registration did not expose file inspection.`}),(0,k.jsx)(`div`,{className:`grid min-h-0 gap-3 overflow-y-auto pr-1`,children:q===void 0?(0,k.jsx)(h,{title:`Sandbox unavailable`,text:`The requested live sandbox is not registered by this Studio runtime.`}):(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(re,{sandbox:q,error:V}),(0,k.jsx)(F,{preview:C,sandboxRef:q.ref}),(0,k.jsx)(L,{loading:N===`loading`,logs:z,ports:T,processes:D,selectedProcessId:I,supportsPorts:q.capabilities.ports,supportsProcesses:q.capabilities.processes,onSelectProcess:R})]})})]})})]}):(0,k.jsxs)(u,{className:`grid-rows-[auto_minmax(0,1fr)]`,"aria-label":`Sandboxes`,children:[(0,k.jsx)(d,{title:`Sandboxes`,description:`Read-only sandbox inspectors explicitly registered by the application.`}),(0,k.jsx)(p,{className:`overflow-auto`,children:(0,k.jsx)(h,{title:`No sandbox workspaces`,text:`Register a sandbox inspector in the Studio options to inspect it here.`})})]})}function te(e){return(0,k.jsxs)(m,{className:`grid min-h-0 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`border-b border-hair px-4 py-3`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Workspaces`}),(0,k.jsxs)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:[e.sandboxes.length,` live `,e.sandboxes.length===1?`session`:`sessions`]})]}),(0,k.jsx)(`div`,{className:`min-h-0 overflow-y-auto p-2`,children:e.sandboxes.map(n=>(0,k.jsxs)(a,{className:t(`mb-1 grid h-auto min-h-16 w-full justify-stretch gap-1 rounded-lg px-3 py-2.5 text-left`,n.ref===e.selectedRef&&`border-border bg-accent text-foreground`),type:`button`,variant:`ghost`,onClick:()=>e.onSelect(n.ref),children:[(0,k.jsxs)(`span`,{className:`flex min-w-0 items-center justify-between gap-2`,children:[(0,k.jsx)(`strong`,{className:`truncate text-sm font-semibold text-foreground`,children:n.id}),(0,k.jsx)(f,{className:`shrink-0 px-1.5 py-0.5 text-[10px]`,children:n.provider})]}),(0,k.jsx)(`span`,{className:`truncate font-mono text-[11px] font-normal text-muted-foreground`,children:n.workdir})]},n.ref))})]})}function ne(e){let t=(0,g.useMemo)(()=>V(e.currentPath),[e.currentPath]);return(0,k.jsxs)(m,{className:`grid min-h-0 grid-rows-[auto_auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`border-b border-hair px-4 py-3`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Files`}),(0,k.jsx)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:`One level at a time`})]}),(0,k.jsx)(`div`,{className:`flex min-h-10 items-center gap-1 overflow-x-auto border-b border-hair px-3 py-1.5`,children:t.map((t,n)=>(0,k.jsxs)(`span`,{className:`flex items-center gap-1`,children:[n>0?(0,k.jsx)(`span`,{className:`text-dim`,children:`/`}):null,(0,k.jsx)(a,{className:`h-7 min-h-7 px-2 font-mono text-xs`,size:`sm`,type:`button`,variant:`ghost`,onClick:()=>e.onSelectPath(t.path),children:t.label})]},t.path))}),(0,k.jsxs)(`div`,{className:`min-h-0 overflow-y-auto p-2`,children:[e.loading?(0,k.jsx)(h,{size:`compact`,title:`Loading workspace`,text:`Reading files from the selected sandbox.`}):null,!e.loading&&e.files.length===0?(0,k.jsx)(h,{size:`compact`,title:`Empty directory`,text:`This directory does not contain any files.`}):null,e.files.map(t=>(0,k.jsxs)(a,{className:`mb-0.5 grid h-10 min-h-10 w-full grid-cols-[18px_minmax(0,1fr)_auto] justify-stretch gap-2 rounded-md px-2.5 text-left text-xs font-medium`,type:`button`,variant:`ghost`,onClick:()=>t.type===`directory`?e.onOpenDirectory(t.path):e.onOpenFile(t),children:[(0,k.jsx)(l,{className:`text-muted-foreground`,icon:t.type===`directory`?E:w,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate text-foreground`,children:W(t.path)}),(0,k.jsx)(`span`,{className:`font-mono text-[10px] font-normal text-muted-foreground`,children:t.type===`file`?G(t.size):t.type})]},t.path))]})]})}function re(e){return(0,k.jsxs)(m,{className:`p-4`,children:[(0,k.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Active sandbox`}),(0,k.jsx)(`h2`,{className:`m-0 mt-1 truncate text-lg font-semibold text-foreground`,children:e.sandbox.id}),(0,k.jsx)(`p`,{className:`m-0 mt-1 truncate font-mono text-xs text-muted-foreground`,children:e.sandbox.workdir})]}),(0,k.jsx)(f,{children:e.sandbox.provider})]}),(0,k.jsxs)(`div`,{className:`mt-4 grid grid-cols-3 gap-3 text-xs`,children:[(0,k.jsx)(P,{label:`Agents`,values:e.sandbox.agentIds}),(0,k.jsx)(P,{label:`Sandbox tools`,values:e.sandbox.toolNames}),(0,k.jsx)(P,{label:`Views`,values:e.sandbox.views.map(e=>`${e.label} (${e.protocol})`)})]}),e.error.length>0?(0,k.jsx)(`p`,{className:`m-0 mt-3 rounded-lg border border-status-danger-ink bg-status-danger-fill px-3 py-2 text-xs leading-5 text-destructive`,children:e.error}):null]})}function P(e){return(0,k.jsxs)(`div`,{className:`rounded-lg border border-hair bg-background p-3`,children:[(0,k.jsx)(`span`,{className:`font-semibold uppercase tracking-[0.12em] text-muted-foreground`,children:e.label}),(0,k.jsx)(`p`,{className:`m-0 mt-1 break-words font-mono leading-5 text-foreground`,children:e.values.join(`, `)||`-`})]})}function F(e){let t=e.preview?.file;return(0,k.jsxs)(m,{className:`grid min-h-64 grid-rows-[auto_minmax(0,1fr)]`,children:[(0,k.jsxs)(`div`,{className:`flex min-h-12 items-center justify-between gap-3 border-b border-hair px-4 py-2`,children:[(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Preview`}),(0,k.jsx)(`p`,{className:`m-0 mt-0.5 truncate font-mono text-[11px] text-muted-foreground`,children:t?.path??`Select a file`})]}),t===void 0?null:(0,k.jsx)(a,{asChild:!0,size:`sm`,variant:`secondary`,children:(0,k.jsxs)(`a`,{href:H(e.sandboxRef,t.path,!0),children:[(0,k.jsx)(l,{icon:S,"aria-hidden":`true`}),`Download`]})})]}),(0,k.jsxs)(`div`,{className:`grid min-h-0 place-items-center overflow-auto`,children:[e.preview===void 0?(0,k.jsx)(h,{className:`h-full rounded-none`,size:`compact`,title:`No file selected`,text:`Choose a regular file to inspect its contents.`}):null,e.preview?.kind===`loading`?(0,k.jsx)(h,{className:`h-full rounded-none`,size:`compact`,title:`Loading preview`,text:`Reading the selected file.`}):null,e.preview?.kind===`text`?(0,k.jsx)(`pre`,{className:`m-0 h-full min-h-48 w-full overflow-auto whitespace-pre-wrap break-words rounded-lg border border-hair bg-card p-4 font-mono text-xs leading-5 text-foreground`,children:e.preview.text}):null,e.preview?.kind===`image`?(0,k.jsx)(`img`,{className:`max-h-96 max-w-full rounded-lg border border-hair object-contain`,src:e.preview.url,alt:W(e.preview.file.path)}):null,e.preview?.kind===`binary`?(0,k.jsx)(I,{text:`This file type is download-only and will not be rendered in Studio.`}):null,e.preview?.kind===`large`?(0,k.jsx)(I,{text:`This file is larger than the 1 MiB inline preview limit.`}):null]})]})}function I(e){return(0,k.jsxs)(`div`,{className:`grid max-w-sm justify-items-center gap-2 text-center`,children:[(0,k.jsx)(l,{className:`h-6 w-6 text-muted-foreground`,icon:w,"aria-hidden":`true`}),(0,k.jsx)(`p`,{className:`m-0 text-xs leading-5 text-muted-foreground`,children:e.text})]})}function L(e){return(0,k.jsxs)(m,{className:`p-4`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground`,children:`Runtime`}),(0,k.jsx)(`p`,{className:`m-0 mt-1 text-xs text-muted-foreground`,children:`Published ports and managed processes`})]}),e.loading?(0,k.jsx)(f,{children:`Refreshing`}):null]}),(0,k.jsxs)(`div`,{className:`mt-4 grid gap-4`,children:[(0,k.jsx)(R,{title:`Ports`,children:e.supportsPorts?e.ports.length===0?(0,k.jsx)(z,{text:`No ports are published.`}):(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.ports.map(e=>(0,k.jsxs)(`div`,{className:`grid grid-cols-[90px_minmax(0,1fr)] gap-3 rounded-md border border-hair px-3 py-2 font-mono text-xs`,children:[(0,k.jsxs)(`span`,{className:`text-foreground`,children:[e.containerPort,`/`,e.protocol]}),(0,k.jsxs)(`span`,{className:`truncate text-muted-foreground`,children:[e.host,`:`,e.hostPort]})]},`${e.containerPort}:${e.hostPort}`))}):(0,k.jsx)(z,{text:`Published ports are not supported by this sandbox.`})}),(0,k.jsx)(R,{title:`Processes`,children:e.supportsProcesses?e.processes.length===0?(0,k.jsx)(z,{text:`No managed processes are recorded.`}):(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.processes.map(n=>(0,k.jsxs)(a,{className:t(`grid h-auto min-h-11 w-full grid-cols-[minmax(0,1fr)_auto] justify-stretch gap-3 rounded-md px-3 py-2 text-left`,n.id===e.selectedProcessId&&`border-border bg-accent text-foreground`),type:`button`,variant:`ghost`,onClick:()=>e.onSelectProcess(n.id),children:[(0,k.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(l,{className:`text-muted-foreground`,icon:O,"aria-hidden":`true`}),(0,k.jsx)(`span`,{className:`truncate font-mono text-xs text-foreground`,children:[n.command,...n.args].join(` `)})]}),(0,k.jsx)(f,{className:`px-1.5 py-0.5 text-[10px]`,children:n.status})]},n.id))}):(0,k.jsx)(z,{text:`Managed processes are not supported by this sandbox.`})}),e.selectedProcessId.length>0?(0,k.jsx)(R,{title:`Process logs`,children:e.logs===void 0?(0,k.jsx)(z,{text:`Loading the latest bounded output.`}):(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(B,{label:`stdout`,text:e.logs.stdout,truncated:e.logs.stdoutTruncated}),(0,k.jsx)(B,{label:`stderr`,text:e.logs.stderr,truncated:e.logs.stderrTruncated})]})}):null]})]})}function R(e){return(0,k.jsxs)(`section`,{className:`grid gap-2`,children:[(0,k.jsx)(`h3`,{className:`m-0 text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:e.title}),e.children]})}function z(e){return(0,k.jsx)(`p`,{className:`m-0 rounded-md border border-dashed border-hair px-3 py-2 text-xs leading-5 text-muted-foreground`,children:e.text})}function B(e){return(0,k.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-hair bg-background`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b border-hair px-3 py-1.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground`,children:[(0,k.jsx)(`span`,{children:e.label}),e.truncated?(0,k.jsx)(`span`,{children:`truncated`}):null]}),(0,k.jsx)(`pre`,{className:`m-0 max-h-48 overflow-auto whitespace-pre-wrap break-words p-3 font-mono text-[11px] leading-5 text-foreground`,children:e.text||`No output`})]})}function V(e){let t=e===`.`?[]:e.split(`/`).filter(Boolean),n=[{label:`/`,path:`.`}];for(let e=0;e<t.length;e+=1)n.push({label:t[e]??``,path:t.slice(0,e+1).join(`/`)});return n}function H(e,t,n=!1){let r=new URLSearchParams({path:t});return n&&r.set(`download`,`1`),`/sandboxes/${encodeURIComponent(e)}/files/content?${r}`}function U(e){let t=W(e).toLowerCase(),n=t.lastIndexOf(`.`);return n<0?t:t.slice(n+1)}function W(e){return e.split(`/`).at(-1)??e}function G(e){return e===void 0?`-`:e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(1)} KiB`:`${(e/1048576).toFixed(1)} MiB`}export{N as SandboxesPage};
|
|
2
|
+
//# sourceMappingURL=sandboxes-page-B1j_lSIA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sandboxes-page-B1j_lSIA.js","names":["e","e","e","e","r","t","a","i","e","t","a","a","i","useState","useRef","useCallback","ArrowClockwise","_Fragment","useMemo","FolderOpen","File","DownloadSimple","TerminalWindow","require_react","cn","require_jsx_runtime","__toESM","errorMessage","Button","responseErrorMessage","requestJson","m$1","p","StudioIcon","StudioPageShell","StudioPageHeader","StudioStatusBadge","StudioPageContent","StudioSurface","StudioEmptyState","import_react","e$5","a","e$4","e$3","e$2","m","l","o","r","s","e$1","n","e","c","import_jsx_runtime","maxInlinePreviewBytes","textExtensions","imageTypes","SandboxesPage","sandboxes","setSandboxes","summaryLoadState","setSummaryLoadState","refreshSequence","setRefreshSequence","currentPath","setCurrentPath","files","setFiles","fileLoadState","setFileLoadState","preview","setPreview","ports","setPorts","processes","setProcesses","runtimeLoadState","setRuntimeLoadState","selectedProcessId","setSelectedProcessId","processLogs","setProcessLogs","localError","setLocalError","previewRequest","selectedRef","props","selectedSandbox","sandbox","selectedSandboxRef","supportsFiles","supportsPorts","supportsProcesses","reportError","message","error","controller","summary","params","response","base","requests","process","current","clearPreview","openFile","file","extension","fileExtension","imageType","fileContentUrl","bytes","url","text","SandboxRail","FileBrowser","filePath","SandboxOverview","FilePreviewPanel","RuntimePanel","breadcrumbs","sandboxBreadcrumbs","index","breadcrumb","basename","formatBytes","MetadataList","view","PreviewNotice","RuntimeSection","RuntimeEmpty","port","LogBlock","segments","download","sandboxRef","name","dot","size"],"sources":["../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/DownloadSimple.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/File.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/FolderOpen.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/defs/TerminalWindow.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/DownloadSimple.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/File.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/FolderOpen.es.js","../../../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@phosphor-icons/react/dist/csr/TerminalWindow.es.js","../../../src/ui/app/modules/sandboxes/sandboxes-page.tsx"],"sourcesContent":["import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M228,144v64a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V144a12,12,0,0,1,24,0v52H204V144a12,12,0,0,1,24,0Zm-108.49,8.49a12,12,0,0,0,17,0l40-40a12,12,0,0,0-17-17L140,115V32a12,12,0,0,0-24,0v83L96.49,95.51a12,12,0,0,0-17,17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M216,48V208H40V48A16,16,0,0,1,56,32H200A16,16,0,0,1,216,48Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,168,96H136V32a8,8,0,0,0-16,0V96H88a8,8,0,0,0-5.66,13.66Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0Zm-98.24,4.24a6,6,0,0,0,8.48,0l40-40a6,6,0,0,0-8.48-8.48L134,129.51V32a6,6,0,0,0-12,0v97.51L92.24,99.76a6,6,0,0,0-8.48,8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0Zm-101.66,5.66a8,8,0,0,0,11.32,0l40-40a8,8,0,0,0-11.32-11.32L136,124.69V32a8,8,0,0,0-16,0v92.69L93.66,98.34a8,8,0,0,0-11.32,11.32Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M220,144v64a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V144a4,4,0,0,1,8,0v60H212V144a4,4,0,0,1,8,0Zm-94.83,2.83a4,4,0,0,0,5.66,0l40-40a4,4,0,1,0-5.66-5.66L132,134.34V32a4,4,0,0,0-8,0V134.34L90.83,101.17a4,4,0,0,0-5.66,5.66Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M216.49,79.52l-56-56A12,12,0,0,0,152,20H56A20,20,0,0,0,36,40V216a20,20,0,0,0,20,20H200a20,20,0,0,0,20-20V88A12,12,0,0,0,216.49,79.52ZM160,57l23,23H160ZM60,212V44h76V92a12,12,0,0,0,12,12h48V212Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M208,88H152V32Z\", opacity: \"0.2\" }), /* @__PURE__ */ e.createElement(\"path\", { d: \"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM152,88V44l44,44Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M212.24,83.76l-56-56A6,6,0,0,0,152,26H56A14,14,0,0,0,42,40V216a14,14,0,0,0,14,14H200a14,14,0,0,0,14-14V88A6,6,0,0,0,212.24,83.76ZM158,46.48,193.52,82H158ZM200,218H56a2,2,0,0,1-2-2V40a2,2,0,0,1,2-2h90V88a6,6,0,0,0,6,6h50V216A2,2,0,0,1,200,218Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M213.66,82.34l-56-56A8,8,0,0,0,152,24H56A16,16,0,0,0,40,40V216a16,16,0,0,0,16,16H200a16,16,0,0,0,16-16V88A8,8,0,0,0,213.66,82.34ZM160,51.31,188.69,80H160ZM200,216H56V40h88V88a8,8,0,0,0,8,8h48V216Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M210.83,85.17l-56-56A4,4,0,0,0,152,28H56A12,12,0,0,0,44,40V216a12,12,0,0,0,12,12H200a12,12,0,0,0,12-12V88A4,4,0,0,0,210.83,85.17ZM156,41.65,198.34,84H156ZM200,220H56a4,4,0,0,1-4-4V40a4,4,0,0,1,4-4h92V88a4,4,0,0,0,4,4h52V216A4,4,0,0,1,200,220Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M248.23,112.31A20,20,0,0,0,232,104H220V88a20,20,0,0,0-20-20H132L105.34,48a20.12,20.12,0,0,0-12-4H40A20,20,0,0,0,20,64V208a12,12,0,0,0,12,12H211.1a12,12,0,0,0,11.33-8l28.49-81.47.06-.17A20,20,0,0,0,248.23,112.31ZM92,68l28.8,21.6A12,12,0,0,0,128,92h68v12H69.77a20,20,0,0,0-18.94,13.58L44,137.15V68ZM202.59,196H48.89l23.72-68H226.37Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M208,88v24H69.77a8,8,0,0,0-7.59,5.47L32,208V64a8,8,0,0,1,8-8H93.33a8,8,0,0,1,4.8,1.6L128,80h72A8,8,0,0,1,208,88Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M243.36,111.81A14,14,0,0,0,232,106H214V88a14,14,0,0,0-14-14H130L101.74,52.8a14.06,14.06,0,0,0-8.4-2.8H40A14,14,0,0,0,26,64V208a6,6,0,0,0,6,6H211.1a6,6,0,0,0,5.69-4.1l28.49-85.47A14,14,0,0,0,243.36,111.81ZM40,62H93.34a2,2,0,0,1,1.2.4L124.4,84.8A6,6,0,0,0,128,86h72a2,2,0,0,1,2,2v18H69.77a14,14,0,0,0-13.28,9.57L38,171V64A2,2,0,0,1,40,62Zm193.9,58.63L206.78,202H40.33l27.54-82.63a2,2,0,0,1,1.9-1.37H232a2,2,0,0,1,1.9,2.63Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M245,110.64A16,16,0,0,0,232,104H216V88a16,16,0,0,0-16-16H130.67L102.94,51.2a16.14,16.14,0,0,0-9.6-3.2H40A16,16,0,0,0,24,64V208h0a8,8,0,0,0,8,8H211.1a8,8,0,0,0,7.59-5.47l28.49-85.47A16.05,16.05,0,0,0,245,110.64ZM93.34,64,123.2,86.4A8,8,0,0,0,128,88h72v16H69.77a16,16,0,0,0-15.18,10.94L40,158.7V64Zm112,136H43.1l26.67-80H232Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M241.72,113a11.88,11.88,0,0,0-9.73-5H212V88a12,12,0,0,0-12-12H129.33l-28.8-21.6a12.05,12.05,0,0,0-7.2-2.4H40A12,12,0,0,0,28,64V208a4,4,0,0,0,4,4H211.09a4,4,0,0,0,3.79-2.74l28.49-85.47A11.86,11.86,0,0,0,241.72,113ZM40,60H93.33a4,4,0,0,1,2.4.8L125.6,83.2a4,4,0,0,0,2.4.8h72a4,4,0,0,1,4,4v20H69.76a12,12,0,0,0-11.38,8.21L36,183.35V64A4,4,0,0,1,40,60Zm195.78,61.26L208.2,204H37.55L66,118.74A4,4,0,0,1,69.76,116H232a4,4,0,0,1,3.79,5.26Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M72.5,150.63,100.79,128,72.5,105.37a12,12,0,1,1,15-18.74l40,32a12,12,0,0,1,0,18.74l-40,32a12,12,0,0,1-15-18.74ZM144,172h32a12,12,0,0,0,0-24H144a12,12,0,0,0,0,24ZM236,56V200a20,20,0,0,1-20,20H40a20,20,0,0,1-20-20V56A20,20,0,0,1,40,36H216A20,20,0,0,1,236,56Zm-24,4H44V196H212Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\n \"path\",\n {\n d: \"M224,56V200a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V56a8,8,0,0,1,8-8H216A8,8,0,0,1,224,56Z\",\n opacity: \"0.2\"\n }\n ), /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40Zm-91,94.25-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32a8,8,0,0,1,0,12.5ZM176,168H136a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M126,128a6,6,0,0,1-2.25,4.69l-40,32a6,6,0,0,1-7.5-9.38L110.4,128,76.25,100.69a6,6,0,1,1,7.5-9.38l40,32A6,6,0,0,1,126,128Zm50,26H136a6,6,0,0,0,0,12h40a6,6,0,0,0,0-12Zm54-98V200a14,14,0,0,1-14,14H40a14,14,0,0,1-14-14V56A14,14,0,0,1,40,42H216A14,14,0,0,1,230,56Zm-12,0a2,2,0,0,0-2-2H40a2,2,0,0,0-2,2V200a2,2,0,0,0,2,2H216a2,2,0,0,0,2-2Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-3,6.25l-40,32a8,8,0,1,1-10-12.5L107.19,128,75,102.25a8,8,0,1,1,10-12.5l40,32A8,8,0,0,1,128,128Zm48,24H136a8,8,0,0,0,0,16h40a8,8,0,0,0,0-16Zm56-96V200a16,16,0,0,1-16,16H40a16,16,0,0,1-16-16V56A16,16,0,0,1,40,40H216A16,16,0,0,1,232,56ZM216,200V56H40V200H216Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M122.5,124.88a4,4,0,0,1,0,6.24l-40,32a4,4,0,0,1-5-6.24L113.6,128,77.5,99.12a4,4,0,0,1,5-6.24ZM176,156H136a4,4,0,0,0,0,8h40a4,4,0,0,0,0-8ZM228,56V200a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V56A12,12,0,0,1,40,44H216A12,12,0,0,1,228,56Zm-8,0a4,4,0,0,0-4-4H40a4,4,0,0,0-4,4V200a4,4,0,0,0,4,4H216a4,4,0,0,0,4-4Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as o from \"react\";\nimport r from \"../lib/IconBase.es.js\";\nimport t from \"../defs/DownloadSimple.es.js\";\nconst e = o.forwardRef((a, m) => /* @__PURE__ */ o.createElement(r, { ref: m, ...a, weights: t }));\ne.displayName = \"DownloadSimpleIcon\";\nconst l = e;\nexport {\n l as DownloadSimple,\n e as DownloadSimpleIcon\n};\n","import * as e from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport i from \"../defs/File.es.js\";\nconst o = e.forwardRef((r, t) => /* @__PURE__ */ e.createElement(a, { ref: t, ...r, weights: i }));\no.displayName = \"FileIcon\";\nconst s = o;\nexport {\n s as File,\n o as FileIcon\n};\n","import * as o from \"react\";\nimport t from \"../lib/IconBase.es.js\";\nimport a from \"../defs/FolderOpen.es.js\";\nconst e = o.forwardRef((r, n) => /* @__PURE__ */ o.createElement(t, { ref: n, ...r, weights: a }));\ne.displayName = \"FolderOpenIcon\";\nconst m = e;\nexport {\n e as FolderNotchOpenIcon,\n m as FolderOpen,\n e as FolderOpenIcon\n};\n","import * as o from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport i from \"../defs/TerminalWindow.es.js\";\nconst e = o.forwardRef((r, n) => /* @__PURE__ */ o.createElement(a, { ref: n, ...r, weights: i }));\ne.displayName = \"TerminalWindowIcon\";\nconst c = e;\nexport {\n c as TerminalWindow,\n e as TerminalWindowIcon\n};\n","import {\n ArrowClockwise,\n DownloadSimple,\n File,\n FolderOpen,\n TerminalWindow,\n} from \"@phosphor-icons/react\";\nimport { type ReactNode, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type {\n StudioSandboxesSummary,\n StudioSandboxFileEntry,\n StudioSandboxFilesResponse,\n StudioSandboxPort,\n StudioSandboxPortsResponse,\n StudioSandboxProcess,\n StudioSandboxProcessesResponse,\n StudioSandboxProcessLogsResponse,\n StudioSandboxSummary,\n} from \"../../../../types\";\nimport { responseErrorMessage } from \"../../app-errors\";\nimport { Button } from \"../../components/ui/button\";\nimport { StudioIcon } from \"../../components/ui/icon\";\nimport {\n StudioEmptyState,\n StudioPageContent,\n StudioPageHeader,\n StudioPageShell,\n StudioStatusBadge,\n StudioSurface,\n} from \"../../components/ui/studio\";\nimport { cn } from \"../../lib/utils\";\nimport { errorMessage } from \"../shared/format\";\nimport { requestJson } from \"../shared/request\";\n\nconst maxInlinePreviewBytes = 1024 * 1024;\nconst textExtensions = new Set([\n \"css\",\n \"csv\",\n \"env\",\n \"gitignore\",\n \"graphql\",\n \"html\",\n \"ini\",\n \"java\",\n \"js\",\n \"json\",\n \"jsx\",\n \"log\",\n \"md\",\n \"mdx\",\n \"mjs\",\n \"py\",\n \"rb\",\n \"rs\",\n \"sh\",\n \"sql\",\n \"svg\",\n \"toml\",\n \"ts\",\n \"tsx\",\n \"txt\",\n \"xml\",\n \"yaml\",\n \"yml\",\n]);\nconst imageTypes = new Map([\n [\"gif\", \"image/gif\"],\n [\"jpeg\", \"image/jpeg\"],\n [\"jpg\", \"image/jpeg\"],\n [\"png\", \"image/png\"],\n [\"webp\", \"image/webp\"],\n]);\n\ntype LoadState = \"idle\" | \"loading\";\ntype FilePreview =\n | { kind: \"binary\" | \"large\"; file: StudioSandboxFileEntry }\n | { kind: \"image\"; file: StudioSandboxFileEntry; url: string }\n | { kind: \"loading\"; file: StudioSandboxFileEntry }\n | { kind: \"text\"; file: StudioSandboxFileEntry; text: string };\n\nexport function SandboxesPage(props: {\n enabled: boolean;\n initialSandboxRef?: string;\n onError: (message: string) => void;\n onSelectSandbox: (sandboxRef: string) => void;\n}) {\n const [sandboxes, setSandboxes] = useState<StudioSandboxSummary[]>([]);\n const [summaryLoadState, setSummaryLoadState] = useState<LoadState>(\"idle\");\n const [refreshSequence, setRefreshSequence] = useState(0);\n const [currentPath, setCurrentPath] = useState(\".\");\n const [files, setFiles] = useState<StudioSandboxFileEntry[]>([]);\n const [fileLoadState, setFileLoadState] = useState<LoadState>(\"idle\");\n const [preview, setPreview] = useState<FilePreview | undefined>();\n const [ports, setPorts] = useState<StudioSandboxPort[]>([]);\n const [processes, setProcesses] = useState<StudioSandboxProcess[]>([]);\n const [runtimeLoadState, setRuntimeLoadState] = useState<LoadState>(\"idle\");\n const [selectedProcessId, setSelectedProcessId] = useState(\"\");\n const [processLogs, setProcessLogs] = useState<StudioSandboxProcessLogsResponse | undefined>();\n const [localError, setLocalError] = useState(\"\");\n const previewRequest = useRef<AbortController | undefined>(undefined);\n\n const selectedRef = props.initialSandboxRef ?? sandboxes[0]?.ref ?? \"\";\n const selectedSandbox = sandboxes.find((sandbox) => sandbox.ref === selectedRef);\n const selectedSandboxRef = selectedSandbox?.ref;\n const supportsFiles = selectedSandbox?.capabilities.files ?? false;\n const supportsPorts = selectedSandbox?.capabilities.ports ?? false;\n const supportsProcesses = selectedSandbox?.capabilities.processes ?? false;\n\n const reportError = useCallback(\n (error: unknown) => {\n const message = errorMessage(error);\n setLocalError(message);\n props.onError(message);\n },\n [props.onError],\n );\n\n useEffect(() => {\n if (!props.enabled) {\n setSandboxes([]);\n return;\n }\n const controller = new AbortController();\n setSummaryLoadState(\"loading\");\n setLocalError(\"\");\n void requestJson<StudioSandboxesSummary>(\n \"/sandboxes\",\n \"Sandboxes\",\n controller.signal,\n refreshSequence === 0 ? \"default\" : \"reload\",\n )\n .then((summary) => setSandboxes(summary.sandboxes))\n .catch((error: unknown) => {\n if (!controller.signal.aborted) reportError(error);\n })\n .finally(() => {\n if (!controller.signal.aborted) setSummaryLoadState(\"idle\");\n });\n return () => controller.abort();\n }, [props.enabled, refreshSequence, reportError]);\n\n useEffect(() => {\n if (props.initialSandboxRef === undefined && sandboxes[0] !== undefined) {\n props.onSelectSandbox(sandboxes[0].ref);\n }\n }, [props.initialSandboxRef, props.onSelectSandbox, sandboxes]);\n\n useEffect(() => {\n setCurrentPath(\".\");\n setFiles([]);\n setPreview(undefined);\n setPorts([]);\n setProcesses([]);\n setSelectedProcessId(\"\");\n setProcessLogs(undefined);\n return () => previewRequest.current?.abort();\n }, [selectedRef]);\n\n useEffect(() => {\n if (selectedSandboxRef === undefined || !supportsFiles) {\n setFiles([]);\n setFileLoadState(\"idle\");\n return;\n }\n const controller = new AbortController();\n setFileLoadState(\"loading\");\n const params = new URLSearchParams({ path: currentPath });\n void requestJson<StudioSandboxFilesResponse>(\n `/sandboxes/${encodeURIComponent(selectedSandboxRef)}/files?${params}`,\n \"Sandbox files\",\n controller.signal,\n refreshSequence === 0 ? \"default\" : \"reload\",\n )\n .then((response) => setFiles(response.entries))\n .catch((error: unknown) => {\n if (!controller.signal.aborted) {\n setFiles([]);\n reportError(error);\n }\n })\n .finally(() => {\n if (!controller.signal.aborted) setFileLoadState(\"idle\");\n });\n return () => controller.abort();\n }, [currentPath, refreshSequence, reportError, selectedSandboxRef, supportsFiles]);\n\n useEffect(() => {\n if (selectedSandboxRef === undefined) {\n return;\n }\n const controller = new AbortController();\n setRuntimeLoadState(\"loading\");\n const base = `/sandboxes/${encodeURIComponent(selectedSandboxRef)}`;\n const requests: Promise<void>[] = [];\n if (supportsPorts) {\n requests.push(\n requestJson<StudioSandboxPortsResponse>(\n `${base}/ports`,\n \"Sandbox ports\",\n controller.signal,\n refreshSequence === 0 ? \"default\" : \"reload\",\n ).then((response) => setPorts(response.ports)),\n );\n } else {\n setPorts([]);\n }\n if (supportsProcesses) {\n requests.push(\n requestJson<StudioSandboxProcessesResponse>(\n `${base}/processes`,\n \"Sandbox processes\",\n controller.signal,\n refreshSequence === 0 ? \"default\" : \"reload\",\n ).then((response) => {\n setProcesses(response.processes);\n setSelectedProcessId((current) =>\n response.processes.some((process) => process.id === current) ? current : \"\",\n );\n }),\n );\n } else {\n setProcesses([]);\n setSelectedProcessId(\"\");\n }\n void Promise.all(requests)\n .catch((error: unknown) => {\n if (!controller.signal.aborted) reportError(error);\n })\n .finally(() => {\n if (!controller.signal.aborted) setRuntimeLoadState(\"idle\");\n });\n return () => controller.abort();\n }, [refreshSequence, reportError, selectedSandboxRef, supportsPorts, supportsProcesses]);\n\n useEffect(() => {\n if (selectedSandboxRef === undefined || selectedProcessId.length === 0) {\n setProcessLogs(undefined);\n return;\n }\n const controller = new AbortController();\n const base = `/sandboxes/${encodeURIComponent(selectedSandboxRef)}/processes`;\n void requestJson<StudioSandboxProcessLogsResponse>(\n `${base}/${encodeURIComponent(selectedProcessId)}/logs`,\n \"Process logs\",\n controller.signal,\n refreshSequence === 0 ? \"default\" : \"reload\",\n )\n .then(setProcessLogs)\n .catch((error: unknown) => {\n if (!controller.signal.aborted) reportError(error);\n });\n return () => controller.abort();\n }, [refreshSequence, reportError, selectedProcessId, selectedSandboxRef]);\n\n useEffect(\n () => () => {\n if (preview?.kind === \"image\") URL.revokeObjectURL(preview.url);\n },\n [preview],\n );\n\n const clearPreview = useCallback(() => {\n previewRequest.current?.abort();\n previewRequest.current = undefined;\n setPreview(undefined);\n }, []);\n\n const openFile = useCallback(\n async (file: StudioSandboxFileEntry) => {\n previewRequest.current?.abort();\n previewRequest.current = undefined;\n if (selectedSandboxRef === undefined) {\n return;\n }\n if ((file.size ?? 0) > maxInlinePreviewBytes) {\n setPreview({ kind: \"large\", file });\n return;\n }\n const extension = fileExtension(file.path);\n const imageType = imageTypes.get(extension);\n if (!textExtensions.has(extension) && imageType === undefined) {\n setPreview({ kind: \"binary\", file });\n return;\n }\n\n setPreview({ kind: \"loading\", file });\n setLocalError(\"\");\n const controller = new AbortController();\n previewRequest.current = controller;\n try {\n const response = await fetch(fileContentUrl(selectedSandboxRef, file.path), {\n signal: controller.signal,\n });\n if (!response.ok) {\n throw new Error(await responseErrorMessage(response, \"Sandbox file\"));\n }\n const bytes = await response.arrayBuffer();\n if (bytes.byteLength > maxInlinePreviewBytes) {\n setPreview({ kind: \"large\", file });\n return;\n }\n if (imageType !== undefined) {\n const url = URL.createObjectURL(new Blob([bytes], { type: imageType }));\n setPreview({ kind: \"image\", file, url });\n return;\n }\n try {\n const text = new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes);\n setPreview({ kind: \"text\", file, text });\n } catch {\n setPreview({ kind: \"binary\", file });\n }\n } catch (error) {\n if (controller.signal.aborted) return;\n reportError(error);\n setPreview({ kind: \"binary\", file });\n } finally {\n if (previewRequest.current === controller) previewRequest.current = undefined;\n }\n },\n [reportError, selectedSandboxRef],\n );\n\n if (!props.enabled) {\n return (\n <StudioPageShell className=\"grid-rows-[auto_minmax(0,1fr)]\" aria-label=\"Sandboxes\">\n <StudioPageHeader\n title=\"Sandboxes\"\n description=\"Read-only sandbox inspectors explicitly registered by the application.\"\n />\n <StudioPageContent className=\"overflow-auto\">\n <StudioEmptyState\n title=\"No sandbox workspaces\"\n text=\"Register a sandbox inspector in the Studio options to inspect it here.\"\n />\n </StudioPageContent>\n </StudioPageShell>\n );\n }\n\n return (\n <StudioPageShell className=\"grid-rows-[auto_minmax(0,1fr)]\" aria-label=\"Sandboxes\">\n <StudioPageHeader\n title=\"Sandboxes\"\n description=\"Read-only sandbox inspectors explicitly registered by the application.\"\n action={\n <Button\n disabled={summaryLoadState === \"loading\"}\n size=\"sm\"\n type=\"button\"\n variant=\"secondary\"\n onClick={() => setRefreshSequence((current) => current + 1)}\n >\n <StudioIcon icon={ArrowClockwise} aria-hidden=\"true\" />\n Refresh\n </Button>\n }\n />\n\n <StudioPageContent className=\"grid grid-rows-[minmax(0,1fr)] overflow-hidden\">\n {sandboxes.length === 0 ? (\n <StudioEmptyState\n className=\"h-full\"\n title={\n summaryLoadState === \"loading\" ? \"Loading sandboxes\" : \"No live sandboxes detected\"\n }\n text={\n summaryLoadState === \"loading\"\n ? \"Reading live sandbox workspaces.\"\n : \"Register live sandbox inspectors in the Studio options.\"\n }\n />\n ) : (\n <div className=\"grid min-h-0 min-w-0 grid-cols-[250px_minmax(300px,0.8fr)_minmax(400px,1.2fr)] gap-3 overflow-hidden\">\n <SandboxRail\n sandboxes={sandboxes}\n selectedRef={selectedRef}\n onSelect={props.onSelectSandbox}\n />\n {supportsFiles ? (\n <FileBrowser\n currentPath={currentPath}\n files={files}\n loading={fileLoadState === \"loading\"}\n onOpenDirectory={(filePath) => {\n clearPreview();\n setCurrentPath(filePath);\n }}\n onOpenFile={(file) => void openFile(file)}\n onSelectPath={(filePath) => {\n clearPreview();\n setCurrentPath(filePath);\n }}\n />\n ) : (\n <StudioEmptyState\n title=\"Files unavailable\"\n text=\"This registration did not expose file inspection.\"\n />\n )}\n <div className=\"grid min-h-0 gap-3 overflow-y-auto pr-1\">\n {selectedSandbox === undefined ? (\n <StudioEmptyState\n title=\"Sandbox unavailable\"\n text=\"The requested live sandbox is not registered by this Studio runtime.\"\n />\n ) : (\n <>\n <SandboxOverview sandbox={selectedSandbox} error={localError} />\n <FilePreviewPanel preview={preview} sandboxRef={selectedSandbox.ref} />\n <RuntimePanel\n loading={runtimeLoadState === \"loading\"}\n logs={processLogs}\n ports={ports}\n processes={processes}\n selectedProcessId={selectedProcessId}\n supportsPorts={selectedSandbox.capabilities.ports}\n supportsProcesses={selectedSandbox.capabilities.processes}\n onSelectProcess={setSelectedProcessId}\n />\n </>\n )}\n </div>\n </div>\n )}\n </StudioPageContent>\n </StudioPageShell>\n );\n}\n\nfunction SandboxRail(props: {\n sandboxes: StudioSandboxSummary[];\n selectedRef: string;\n onSelect: (sandboxRef: string) => void;\n}) {\n return (\n <StudioSurface className=\"grid min-h-0 grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"border-b border-hair px-4 py-3\">\n <span className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n Workspaces\n </span>\n <p className=\"m-0 mt-1 text-xs text-muted-foreground\">\n {props.sandboxes.length} live {props.sandboxes.length === 1 ? \"session\" : \"sessions\"}\n </p>\n </div>\n <div className=\"min-h-0 overflow-y-auto p-2\">\n {props.sandboxes.map((sandbox) => (\n <Button\n className={cn(\n \"mb-1 grid h-auto min-h-16 w-full justify-stretch gap-1 rounded-lg px-3 py-2.5 text-left\",\n sandbox.ref === props.selectedRef && \"border-border bg-accent text-foreground\",\n )}\n key={sandbox.ref}\n type=\"button\"\n variant=\"ghost\"\n onClick={() => props.onSelect(sandbox.ref)}\n >\n <span className=\"flex min-w-0 items-center justify-between gap-2\">\n <strong className=\"truncate text-sm font-semibold text-foreground\">\n {sandbox.id}\n </strong>\n <StudioStatusBadge className=\"shrink-0 px-1.5 py-0.5 text-[10px]\">\n {sandbox.provider}\n </StudioStatusBadge>\n </span>\n <span className=\"truncate font-mono text-[11px] font-normal text-muted-foreground\">\n {sandbox.workdir}\n </span>\n </Button>\n ))}\n </div>\n </StudioSurface>\n );\n}\n\nfunction FileBrowser(props: {\n currentPath: string;\n files: StudioSandboxFileEntry[];\n loading: boolean;\n onOpenDirectory: (path: string) => void;\n onOpenFile: (file: StudioSandboxFileEntry) => void;\n onSelectPath: (path: string) => void;\n}) {\n const breadcrumbs = useMemo(() => sandboxBreadcrumbs(props.currentPath), [props.currentPath]);\n return (\n <StudioSurface className=\"grid min-h-0 grid-rows-[auto_auto_minmax(0,1fr)]\">\n <div className=\"border-b border-hair px-4 py-3\">\n <span className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n Files\n </span>\n <p className=\"m-0 mt-1 text-xs text-muted-foreground\">One level at a time</p>\n </div>\n <div className=\"flex min-h-10 items-center gap-1 overflow-x-auto border-b border-hair px-3 py-1.5\">\n {breadcrumbs.map((breadcrumb, index) => (\n <span className=\"flex items-center gap-1\" key={breadcrumb.path}>\n {index > 0 ? <span className=\"text-dim\">/</span> : null}\n <Button\n className=\"h-7 min-h-7 px-2 font-mono text-xs\"\n size=\"sm\"\n type=\"button\"\n variant=\"ghost\"\n onClick={() => props.onSelectPath(breadcrumb.path)}\n >\n {breadcrumb.label}\n </Button>\n </span>\n ))}\n </div>\n <div className=\"min-h-0 overflow-y-auto p-2\">\n {props.loading ? (\n <StudioEmptyState\n size=\"compact\"\n title=\"Loading workspace\"\n text=\"Reading files from the selected sandbox.\"\n />\n ) : null}\n {!props.loading && props.files.length === 0 ? (\n <StudioEmptyState\n size=\"compact\"\n title=\"Empty directory\"\n text=\"This directory does not contain any files.\"\n />\n ) : null}\n {props.files.map((file) => (\n <Button\n className=\"mb-0.5 grid h-10 min-h-10 w-full grid-cols-[18px_minmax(0,1fr)_auto] justify-stretch gap-2 rounded-md px-2.5 text-left text-xs font-medium\"\n key={file.path}\n type=\"button\"\n variant=\"ghost\"\n onClick={() =>\n file.type === \"directory\" ? props.onOpenDirectory(file.path) : props.onOpenFile(file)\n }\n >\n <StudioIcon\n className=\"text-muted-foreground\"\n icon={file.type === \"directory\" ? FolderOpen : File}\n aria-hidden=\"true\"\n />\n <span className=\"truncate text-foreground\">{basename(file.path)}</span>\n <span className=\"font-mono text-[10px] font-normal text-muted-foreground\">\n {file.type === \"file\" ? formatBytes(file.size) : file.type}\n </span>\n </Button>\n ))}\n </div>\n </StudioSurface>\n );\n}\n\nfunction SandboxOverview(props: { sandbox: StudioSandboxSummary; error: string }) {\n return (\n <StudioSurface className=\"p-4\">\n <div className=\"flex flex-wrap items-start justify-between gap-3\">\n <div className=\"min-w-0\">\n <span className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n Active sandbox\n </span>\n <h2 className=\"m-0 mt-1 truncate text-lg font-semibold text-foreground\">\n {props.sandbox.id}\n </h2>\n <p className=\"m-0 mt-1 truncate font-mono text-xs text-muted-foreground\">\n {props.sandbox.workdir}\n </p>\n </div>\n <StudioStatusBadge>{props.sandbox.provider}</StudioStatusBadge>\n </div>\n <div className=\"mt-4 grid grid-cols-3 gap-3 text-xs\">\n <MetadataList label=\"Agents\" values={props.sandbox.agentIds} />\n <MetadataList label=\"Sandbox tools\" values={props.sandbox.toolNames} />\n <MetadataList\n label=\"Views\"\n values={props.sandbox.views.map((view) => `${view.label} (${view.protocol})`)}\n />\n </div>\n {props.error.length > 0 ? (\n <p className=\"m-0 mt-3 rounded-lg border border-status-danger-ink bg-status-danger-fill px-3 py-2 text-xs leading-5 text-destructive\">\n {props.error}\n </p>\n ) : null}\n </StudioSurface>\n );\n}\n\nfunction MetadataList(props: { label: string; values: string[] }) {\n return (\n <div className=\"rounded-lg border border-hair bg-background p-3\">\n <span className=\"font-semibold uppercase tracking-[0.12em] text-muted-foreground\">\n {props.label}\n </span>\n <p className=\"m-0 mt-1 break-words font-mono leading-5 text-foreground\">\n {props.values.join(\", \") || \"-\"}\n </p>\n </div>\n );\n}\n\nfunction FilePreviewPanel(props: { preview: FilePreview | undefined; sandboxRef: string }) {\n const file = props.preview?.file;\n return (\n <StudioSurface className=\"grid min-h-64 grid-rows-[auto_minmax(0,1fr)]\">\n <div className=\"flex min-h-12 items-center justify-between gap-3 border-b border-hair px-4 py-2\">\n <div className=\"min-w-0\">\n <span className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n Preview\n </span>\n <p className=\"m-0 mt-0.5 truncate font-mono text-[11px] text-muted-foreground\">\n {file?.path ?? \"Select a file\"}\n </p>\n </div>\n {file !== undefined ? (\n <Button asChild size=\"sm\" variant=\"secondary\">\n <a href={fileContentUrl(props.sandboxRef, file.path, true)}>\n <StudioIcon icon={DownloadSimple} aria-hidden=\"true\" />\n Download\n </a>\n </Button>\n ) : null}\n </div>\n <div className=\"grid min-h-0 place-items-center overflow-auto\">\n {props.preview === undefined ? (\n <StudioEmptyState\n className=\"h-full rounded-none\"\n size=\"compact\"\n title=\"No file selected\"\n text=\"Choose a regular file to inspect its contents.\"\n />\n ) : null}\n {props.preview?.kind === \"loading\" ? (\n <StudioEmptyState\n className=\"h-full rounded-none\"\n size=\"compact\"\n title=\"Loading preview\"\n text=\"Reading the selected file.\"\n />\n ) : null}\n {props.preview?.kind === \"text\" ? (\n <pre className=\"m-0 h-full min-h-48 w-full overflow-auto whitespace-pre-wrap break-words rounded-lg border border-hair bg-card p-4 font-mono text-xs leading-5 text-foreground\">\n {props.preview.text}\n </pre>\n ) : null}\n {props.preview?.kind === \"image\" ? (\n <img\n className=\"max-h-96 max-w-full rounded-lg border border-hair object-contain\"\n src={props.preview.url}\n alt={basename(props.preview.file.path)}\n />\n ) : null}\n {props.preview?.kind === \"binary\" ? (\n <PreviewNotice text=\"This file type is download-only and will not be rendered in Studio.\" />\n ) : null}\n {props.preview?.kind === \"large\" ? (\n <PreviewNotice text=\"This file is larger than the 1 MiB inline preview limit.\" />\n ) : null}\n </div>\n </StudioSurface>\n );\n}\n\nfunction PreviewNotice(props: { text: string }) {\n return (\n <div className=\"grid max-w-sm justify-items-center gap-2 text-center\">\n <StudioIcon className=\"h-6 w-6 text-muted-foreground\" icon={File} aria-hidden=\"true\" />\n <p className=\"m-0 text-xs leading-5 text-muted-foreground\">{props.text}</p>\n </div>\n );\n}\n\nfunction RuntimePanel(props: {\n loading: boolean;\n logs: StudioSandboxProcessLogsResponse | undefined;\n ports: StudioSandboxPort[];\n processes: StudioSandboxProcess[];\n selectedProcessId: string;\n supportsPorts: boolean;\n supportsProcesses: boolean;\n onSelectProcess: (processId: string) => void;\n}) {\n return (\n <StudioSurface className=\"p-4\">\n <div className=\"flex items-center justify-between gap-3\">\n <div>\n <span className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n Runtime\n </span>\n <p className=\"m-0 mt-1 text-xs text-muted-foreground\">\n Published ports and managed processes\n </p>\n </div>\n {props.loading ? <StudioStatusBadge>Refreshing</StudioStatusBadge> : null}\n </div>\n\n <div className=\"mt-4 grid gap-4\">\n <RuntimeSection title=\"Ports\">\n {!props.supportsPorts ? (\n <RuntimeEmpty text=\"Published ports are not supported by this sandbox.\" />\n ) : props.ports.length === 0 ? (\n <RuntimeEmpty text=\"No ports are published.\" />\n ) : (\n <div className=\"grid gap-1\">\n {props.ports.map((port) => (\n <div\n className=\"grid grid-cols-[90px_minmax(0,1fr)] gap-3 rounded-md border border-hair px-3 py-2 font-mono text-xs\"\n key={`${port.containerPort}:${port.hostPort}`}\n >\n <span className=\"text-foreground\">\n {port.containerPort}/{port.protocol}\n </span>\n <span className=\"truncate text-muted-foreground\">\n {port.host}:{port.hostPort}\n </span>\n </div>\n ))}\n </div>\n )}\n </RuntimeSection>\n\n <RuntimeSection title=\"Processes\">\n {!props.supportsProcesses ? (\n <RuntimeEmpty text=\"Managed processes are not supported by this sandbox.\" />\n ) : props.processes.length === 0 ? (\n <RuntimeEmpty text=\"No managed processes are recorded.\" />\n ) : (\n <div className=\"grid gap-1\">\n {props.processes.map((process) => (\n <Button\n className={cn(\n \"grid h-auto min-h-11 w-full grid-cols-[minmax(0,1fr)_auto] justify-stretch gap-3 rounded-md px-3 py-2 text-left\",\n process.id === props.selectedProcessId &&\n \"border-border bg-accent text-foreground\",\n )}\n key={process.id}\n type=\"button\"\n variant=\"ghost\"\n onClick={() => props.onSelectProcess(process.id)}\n >\n <span className=\"flex min-w-0 items-center gap-2\">\n <StudioIcon\n className=\"text-muted-foreground\"\n icon={TerminalWindow}\n aria-hidden=\"true\"\n />\n <span className=\"truncate font-mono text-xs text-foreground\">\n {[process.command, ...process.args].join(\" \")}\n </span>\n </span>\n <StudioStatusBadge className=\"px-1.5 py-0.5 text-[10px]\">\n {process.status}\n </StudioStatusBadge>\n </Button>\n ))}\n </div>\n )}\n </RuntimeSection>\n\n {props.selectedProcessId.length > 0 ? (\n <RuntimeSection title=\"Process logs\">\n {props.logs === undefined ? (\n <RuntimeEmpty text=\"Loading the latest bounded output.\" />\n ) : (\n <div className=\"grid gap-2\">\n <LogBlock\n label=\"stdout\"\n text={props.logs.stdout}\n truncated={props.logs.stdoutTruncated}\n />\n <LogBlock\n label=\"stderr\"\n text={props.logs.stderr}\n truncated={props.logs.stderrTruncated}\n />\n </div>\n )}\n </RuntimeSection>\n ) : null}\n </div>\n </StudioSurface>\n );\n}\n\nfunction RuntimeSection(props: { title: string; children: ReactNode }) {\n return (\n <section className=\"grid gap-2\">\n <h3 className=\"m-0 text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground\">\n {props.title}\n </h3>\n {props.children}\n </section>\n );\n}\n\nfunction RuntimeEmpty(props: { text: string }) {\n return (\n <p className=\"m-0 rounded-md border border-dashed border-hair px-3 py-2 text-xs leading-5 text-muted-foreground\">\n {props.text}\n </p>\n );\n}\n\nfunction LogBlock(props: { label: string; text: string; truncated: boolean }) {\n return (\n <div className=\"overflow-hidden rounded-md border border-hair bg-background\">\n <div className=\"flex items-center justify-between border-b border-hair px-3 py-1.5 text-[10px] font-semibold uppercase tracking-[0.14em] text-muted-foreground\">\n <span>{props.label}</span>\n {props.truncated ? <span>truncated</span> : null}\n </div>\n <pre className=\"m-0 max-h-48 overflow-auto whitespace-pre-wrap break-words p-3 font-mono text-[11px] leading-5 text-foreground\">\n {props.text || \"No output\"}\n </pre>\n </div>\n );\n}\n\nfunction sandboxBreadcrumbs(filePath: string): Array<{ label: string; path: string }> {\n const segments = filePath === \".\" ? [] : filePath.split(\"/\").filter(Boolean);\n const breadcrumbs = [{ label: \"/\", path: \".\" }];\n for (let index = 0; index < segments.length; index += 1) {\n breadcrumbs.push({\n label: segments[index] ?? \"\",\n path: segments.slice(0, index + 1).join(\"/\"),\n });\n }\n return breadcrumbs;\n}\n\nfunction fileContentUrl(sandboxRef: string, filePath: string, download = false): string {\n const params = new URLSearchParams({ path: filePath });\n if (download) params.set(\"download\", \"1\");\n return `/sandboxes/${encodeURIComponent(sandboxRef)}/files/content?${params}`;\n}\n\nfunction fileExtension(filePath: string): string {\n const name = basename(filePath).toLowerCase();\n const dot = name.lastIndexOf(\".\");\n return dot < 0 ? name : name.slice(dot + 1);\n}\n\nfunction basename(filePath: string): string {\n return filePath.split(\"/\").at(-1) ?? filePath;\n}\n\nfunction formatBytes(size: number | undefined): string {\n if (size === undefined) return \"-\";\n if (size < 1024) return `${size} B`;\n if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KiB`;\n return `${(size / (1024 * 1024)).toFixed(1)} MiB`;\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,n as t,r as n,s as r}from"./dist-gzPjmjmv.js";import{a as i,c as a,n as o,o as s,r as c,s as l,t as u}from"./dist-uvOGC5z0.js";import{a as d,r as f}from"./button-4bdMllZ8.js";import{n as p,t as m}from"./Check.es-TFx4xBI5.js";import{t as h}from"./icon-B3s_bapw.js";import{n as g,t as _}from"./dist-C6Ez28oH.js";import{a as v,i as y,l as b,n as x,o as S,r as C,t as w,u as T}from"./Combination-CFi_6UzA.js";var E=r(a(),1),D=r(e(),1),O=n(),k=Object.defineProperty,A=(e,t)=>k(e,`name`,{value:t,configurable:!0});function j(e){let t=e+`CollectionProvider`,[n,r]=s(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=A(e=>{let{scope:t,children:n}=e,r=D.useRef(null),a=D.useRef(new Map).current;return(0,O.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let c=e+`CollectionSlot`,l=f(c),u=D.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=a(c,n),o=d(t,i.collectionRef);return(0,O.jsx)(l,{ref:o,children:r})});u.displayName=c;let p=e+`CollectionItemSlot`,m=`data-radix-collection-item`,h=f(p),g=D.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=D.useRef(null),s=d(t,o),c=a(p,n);return D.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,O.jsx)(h,{[m]:``,ref:s,children:r})});g.displayName=p;function _(t){let n=a(e+`CollectionConsumer`,t);return D.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${m}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return A(_,`useCollection`),[{Provider:o,Slot:u,ItemSlot:g},_,r]}A(j,`createCollection`);var M=new WeakMap,N=class e extends Map{static{A(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],M.set(this,!0)}set(e,t){return M.get(this)&&!this.has(e)&&this.#e.push(e),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=r?this.size:this.size+1,a=ee(e),o=a>=0?Math.min(a,i-1):Math.max(i+a,0);if(r?this.#e.indexOf(t)===o:o===this.size)return this.set(t,n),this;let s=this.#e.filter(e=>e!==t);s.splice(o,0,t);let c=s.map(e=>[e,e===t?n:this.get(e)]);this.clear();for(let[e,t]of c)this.set(e,t);return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);if(r===-1)return this;let i=this.#e.indexOf(t),a=i!==-1&&i<r?r-1:r;return this.insert(a,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);if(r===-1)return this;let i=this.#e.indexOf(t),a=i!==-1&&i<=r?r:r+1;return this.insert(a,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=P(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=P(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return P(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=e.length>1;if(!r&&this.size===0)throw TypeError(`Reduce of empty OrderedDict with no initial value`);let i=0,a=n;for(let e of this)a=i===0&&!r?e:Reflect.apply(t,this,[a,e,i,this]),i++;return a}reduceRight(...e){let[t,n]=e,r=e.length>1;if(!r&&this.size===0)throw TypeError(`Reduce of empty OrderedDict with no initial value`);let i=n;for(let e=this.size-1;e>=0;e--){let n=this.entryAt(e);i=e===this.size-1&&!r?n:Reflect.apply(t,this,[i,n,e,this])}return i}sort(e){if(typeof e!=`function`)throw TypeError(`OrderedDict.sort requires a compare function`);let t=[...this.entries()].sort(e);this.clear();for(let[e,n]of t)this.set(e,n);return this}toSorted(t){if(typeof t!=`function`)throw TypeError(`OrderedDict.toSorted requires a compare function`);let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e;for(let e of this.#e.slice(t,n))r.set(e,this.get(e));return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function P(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=F(e,t);return n===-1?void 0:e[n]}A(P,`at`);function F(e,t){let n=e.length,r=ee(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}A(F,`toSafeIndex`);function ee(e){return e!==e||e===0?0:Math.trunc(e)}A(ee,`toSafeInteger`);function I(e){let t=e+`CollectionProvider`,[n,r]=s(t),[a,o]=n(t);a.displayName=e+`CollectionStableContextProvider`;let[c,l]=n(t);c.displayName=e+`CollectionStatefulContextProvider`;let u=A(({state:e,...t})=>e?(0,O.jsx)(m,{...t,state:e}):(0,O.jsx)(p,{...t}),`CollectionProvider`);u.displayName=t;let p=A(e=>{let t=x();return(0,O.jsx)(m,{...e,state:t})},`CollectionInit`);p.displayName=e+`CollectionInit`;let m=A(e=>{let{scope:t,children:n,state:r}=e,i=D.useRef(null),[o,s]=D.useState(null),l=d(i,s),[u,f]=r,p=D.useRef(new N),m=D.useCallback(()=>{let e=p.current;return R(e)||e.sort(z),e},[]);return D.useEffect(()=>{if(!o)return;let e=ne(()=>{f(e=>{let t=e.toSorted(z);return t.some(([t],n)=>e.keyAt(n)!==t)?t:e})});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o,f]),(0,O.jsx)(a,{scope:t,collectionElementRef:l,collectionElementRefObject:i,getCollection:m,setCollection:f,registryRef:p,children:(0,O.jsx)(c,{scope:t,collectionElement:o,collection:u,children:n})})},`CollectionProviderImpl`);m.displayName=e+`CollectionProviderImpl`;let h=e+`CollectionSlot`,g=f(h),_=D.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=o(h,n),a=d(t,i.collectionElementRef);return(0,O.jsx)(g,{ref:a,children:r})});_.displayName=h;let v=e+`CollectionItemSlot`,y=f(v),b=D.forwardRef((e,t)=>{let{scope:n,children:r,...a}=e,s=D.useRef(null),{setCollection:c,registryRef:l}=o(v,n),u=D.useRef(a);L(u.current,a)||(u.current=a);let f=u.current,p=D.useCallback(e=>{let t=l.current;e?t.set(e,{...u.current,element:e}):s.current&&t.delete(s.current)},[l]),m=d(t,p,s);i(()=>{let e=s.current,t=l.current;e&&t.has(e)&&t.set(e,{...f,element:e})},[f,l]);let h=D.useRef(null);return D.useEffect(()=>{let e=s.current,t=h.current;((t?.element??null)!==e||e&&t?.itemData!==f)&&(h.current=e?{element:e,itemData:f}:null,c(n=>{let r=new N(n);return t&&t.element!==e&&r.delete(t.element),e&&r.set(e,{...f,element:e}),r.sort(z)}))}),D.useEffect(()=>()=>{let e=h.current;h.current=null,e&&c(t=>{if(!t.has(e.element))return t;let n=new N(t);return n.delete(e.element),n})},[c]),(0,O.jsx)(y,{"data-radix-collection-item":``,ref:m,children:r})});b.displayName=v;function x(){return D.useState(new N)}A(x,`useInitCollection`);function S(t){let{collection:n}=l(e+`CollectionConsumer`,t);return n}A(S,`useCollection`);function C(t){let{getCollection:n}=o(e+`CollectionConsumer`,t);return n}return A(C,`useGetCollection`),[{Provider:u,Slot:_,ItemSlot:b},{createCollectionScope:r,useCollection:S,useGetCollection:C,useInitCollection:x}]}A(I,`createCollection`);function L(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}A(L,`shallowEqual`);function te(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}A(te,`isElementPreceding`);function R(e){let t;for(let n of e.keys()){if(t){let e=t.compareDocumentPosition(n);if(!(e&Node.DOCUMENT_POSITION_DISCONNECTED)&&e&Node.DOCUMENT_POSITION_PRECEDING)return!1}t=n}return!0}A(R,`isInDocumentOrder`);function z(e,t){return!e[1].element||!t[1].element?0:te(e[1].element,t[1].element)?-1:1}A(z,`sortByDocumentPosition`);function ne(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}A(ne,`getChildListObserver`);var re=[`top`,`right`,`bottom`,`left`],B=Math.min,V=Math.max,H=Math.round,ie=Math.floor,U=e=>({x:e,y:e}),ae={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function oe(e,t,n){return V(e,B(t,n))}function W(e,t){return typeof e==`function`?e(t):e}function G(e){return e.split(`-`)[0]}function se(e){return e.split(`-`)[1]}function ce(e){return e===`x`?`y`:`x`}function le(e){return e===`y`?`height`:`width`}function K(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function ue(e){return ce(K(e))}function de(e,t,n){n===void 0&&(n=!1);let r=se(e),i=ue(e),a=le(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=be(o)),[o,be(o)]}function fe(e){let t=be(e);return[pe(e),t,pe(t)]}function pe(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var me=[`left`,`right`],he=[`right`,`left`],ge=[`top`,`bottom`],_e=[`bottom`,`top`];function ve(e,t,n){switch(e){case`top`:case`bottom`:return n?t?he:me:t?me:he;case`left`:case`right`:return t?ge:_e;default:return[]}}function ye(e,t,n,r){let i=se(e),a=ve(G(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(pe)))),a}function be(e){let t=G(e);return ae[t]+e.slice(t.length)}function xe(e){return{top:0,right:0,bottom:0,left:0,...e}}function Se(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:xe(e)}function Ce(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function we(e,t,n){let{reference:r,floating:i}=e,a=K(t),o=ue(t),s=le(o),c=G(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(se(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1)}return p}async function Te(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=W(t,e),p=Se(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ce(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ce(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Ee=50,De=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Te},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=we(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Ee&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=we(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Oe=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=W(e,t)||{};if(l==null)return{};let d=Se(u),f={x:n,y:r},p=ue(i),m=le(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=B(d[_],T),D=B(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=oe(O,A,k),M=!c.arrow&&se(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,N=M?A<O?A-O:A-k:0;return{[p]:f[p]+N,data:{[p]:j,centerOffset:A-j-N,...M&&{alignmentOffset:N}},reset:M}}}),ke=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=W(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=G(r),_=K(o),v=G(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[be(o)]:fe(o)),x=p!==`none`;!d&&x&&b.push(...ye(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=de(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(u!==`alignment`||_===K(t)||T.every(e=>K(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=K(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ae(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function je(e){return re.some(t=>e[t]>=0)}var Me=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=W(e,t);switch(i){case`referenceHidden`:{let e=Ae(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:je(e)}}}case`escaped`:{let e=Ae(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:je(e)}}}default:return{}}}}},Ne=new Set([`left`,`top`]);async function Pe(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=G(n),s=se(n),c=K(n)===`y`,l=Ne.has(o)?-1:1,u=a&&c?-1:1,d=W(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Fe=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Pe(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Ie=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=W(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=K(G(i)),p=ce(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=oe(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=oe(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Le=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=W(e,t),u={x:n,y:r},d=K(i),f=ce(d),p=u[f],m=u[d],h=W(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=Ne.has(G(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},Re=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=W(e,t),u=await o.detectOverflow(t,l),d=G(i),f=se(i),p=K(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=B(h-u[g],v),x=B(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=V(u.left,0),t=V(u.right,0),n=V(u.top,0),r=V(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:V(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:V(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function ze(){return typeof window<`u`}function Be(e){return Ve(e)?(e.nodeName||``).toLowerCase():`#document`}function q(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function J(e){return((Ve(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function Ve(e){return ze()?e instanceof Node||e instanceof q(e).Node:!1}function Y(e){return ze()?e instanceof Element||e instanceof q(e).Element:!1}function X(e){return ze()?e instanceof HTMLElement||e instanceof q(e).HTMLElement:!1}function He(e){return!ze()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof q(e).ShadowRoot}function Ue(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=Z(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function We(e){return/^(table|td|th)$/.test(Be(e))}function Ge(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var Ke=/transform|translate|scale|rotate|perspective|filter/,qe=/paint|layout|strict|content/,Je=e=>!!e&&e!==`none`,Ye;function Xe(e){let t=Y(e)?Z(e):e;return Je(t.transform)||Je(t.translate)||Je(t.scale)||Je(t.rotate)||Je(t.perspective)||!Qe()&&(Je(t.backdropFilter)||Je(t.filter))||Ke.test(t.willChange||``)||qe.test(t.contain||``)}function Ze(e){let t=tt(e);for(;X(t)&&!$e(t);){if(Xe(t))return t;if(Ge(t))return null;t=tt(t)}return null}function Qe(){return Ye??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),Ye}function $e(e){return/^(html|body|#document)$/.test(Be(e))}function Z(e){return q(e).getComputedStyle(e)}function et(e){return Y(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function tt(e){if(Be(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||He(e)&&e.host||J(e);return He(t)?t.host:t}function nt(e){let t=tt(e);return $e(t)?e.ownerDocument?e.ownerDocument.body:e.body:X(t)&&Ue(t)?t:nt(t)}function rt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=nt(e),i=r===e.ownerDocument?.body,a=q(r);if(i){let e=it(a);return t.concat(a,a.visualViewport||[],Ue(r)?r:[],e&&n?rt(e):[])}return t.concat(r,rt(r,[],n))}function it(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function at(e){let t=Z(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=X(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=H(n)!==a||H(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ot(e){return Y(e)?e:e.contextElement}function st(e){let t=ot(e);if(!X(t))return U(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=at(t),o=(a?H(n.width):n.width)/r,s=(a?H(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var ct=U(0);function lt(e){let t=q(e);return!Qe()||!t.visualViewport?ct:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ut(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==q(e)?!1:t}function dt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ot(e),o=U(1);t&&(r?Y(r)&&(o=st(r)):o=st(e));let s=ut(a,n,r)?lt(a):U(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=q(a),t=r&&Y(r)?q(r):r,n=e,i=it(n);for(;i&&r&&t!==n;){let e=st(i),t=i.getBoundingClientRect(),r=Z(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=q(i),i=it(n)}}return Ce({width:u,height:d,x:c,y:l})}function ft(e,t){let n=et(e).scrollLeft;return t?t.left+n:dt(J(e)).left+n}function pt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-ft(e,n),y:n.top+t.scrollTop}}function mt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=J(r),s=t?Ge(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=U(1),u=U(0),d=X(r);if((d||!d&&!a)&&((Be(r)!==`body`||Ue(o))&&(c=et(r)),d)){let e=dt(r);l=st(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?pt(o,c):U(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function ht(e){return Array.from(e.getClientRects())}function gt(e){let t=J(e),n=et(e),r=e.ownerDocument.body,i=V(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=V(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+ft(e),s=-n.scrollTop;return Z(r).direction===`rtl`&&(o+=V(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var _t=25;function vt(e,t){let n=q(e),r=J(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=Qe();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=ft(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=_t&&(a-=o)}else l<=_t&&(a+=l);return{width:a,height:o,x:s,y:c}}function yt(e,t){let n=dt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=X(e)?st(e):U(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function bt(e,t,n){let r;if(t===`viewport`)r=vt(e,n);else if(t===`document`)r=gt(J(e));else if(Y(t))r=yt(t,n);else{let n=lt(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ce(r)}function xt(e,t){let n=tt(e);return n===t||!Y(n)||$e(n)?!1:Z(n).position===`fixed`||xt(n,t)}function St(e,t){let n=t.get(e);if(n)return n;let r=rt(e,[],!1).filter(e=>Y(e)&&Be(e)!==`body`),i=null,a=Z(e).position===`fixed`,o=a?tt(e):e;for(;Y(o)&&!$e(o);){let t=Z(o),n=Xe(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||Ue(o)&&!n&&xt(e,o))?r=r.filter(e=>e!==o):i=t,o=tt(o)}return t.set(e,r),r}function Ct(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?Ge(t)?[]:St(t,this._c):[].concat(n),r],o=bt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=bt(t,a[e],i);s=V(n.top,s),c=B(n.right,c),l=B(n.bottom,l),u=V(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function wt(e){let{width:t,height:n}=at(e);return{width:t,height:n}}function Tt(e,t,n){let r=X(t),i=J(t),a=n===`fixed`,o=dt(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=U(0);function l(){c.x=ft(i)}if(r||!r&&!a){if((Be(t)!==`body`||Ue(i))&&(s=et(t)),r){let e=dt(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l()}a&&!r&&i&&l();let u=i&&!r&&!a?pt(i,s):U(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function Et(e){return Z(e).position===`static`}function Dt(e,t){if(!X(e)||Z(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return J(e)===n&&(n=n.ownerDocument.body),n}function Ot(e,t){let n=q(e);if(Ge(e))return n;if(!X(e)){let t=tt(e);for(;t&&!$e(t);){if(Y(t)&&!Et(t))return t;t=tt(t)}return n}let r=Dt(e,t);for(;r&&We(r)&&Et(r);)r=Dt(r,t);return r&&$e(r)&&Et(r)&&!Xe(r)?n:r||Ze(e)||n}var kt=async function(e){let t=this.getOffsetParent||Ot,n=this.getDimensions,r=await n(e.floating);return{reference:Tt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function At(e){return Z(e).direction===`rtl`}var jt={convertOffsetParentRelativeRectToViewportRelativeRect:mt,getDocumentElement:J,getClippingRect:Ct,getOffsetParent:Ot,getElementRects:kt,getClientRects:ht,getDimensions:wt,getScale:st,isElement:Y,isRTL:At};function Mt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Nt(e,t){let n=null,r,i=J(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=ie(d),h=ie(i.clientWidth-(u+f)),g=ie(i.clientHeight-(d+p)),_=ie(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:V(0,B(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Mt(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function Pt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=ot(e),u=i||a?[...l?rt(l):[],...t?rt(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Nt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?dt(e):null;c&&g();function g(){let t=dt(e);h&&!Mt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Ft=Fe,It=Ie,Lt=ke,Rt=Re,zt=Me,Bt=Oe,Vt=Le,Ht=(e,t,n)=>{let r=new Map,i={platform:jt,...n},a={...i.platform,_c:r};return De(e,t,{...i,platform:a})},Ut=typeof document<`u`?D.useLayoutEffect:function(){};function Wt(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Wt(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Wt(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function Gt(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Kt(e,t){let n=Gt(e);return Math.round(t*n)/n}function qt(e){let t=D.useRef(e);return Ut(()=>{t.current=e}),t}function Jt(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=D.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=D.useState(r);Wt(f,r)||p(r);let[m,h]=D.useState(null),[g,_]=D.useState(null),v=D.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=D.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=D.useRef(null),C=D.useRef(null),w=D.useRef(u),T=c!=null,O=qt(c),k=qt(i),A=qt(l),j=D.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};k.current&&(e.platform=k.current),Ht(S.current,C.current,e).then(e=>{let t={...e,isPositioned:A.current!==!1};M.current&&!Wt(w.current,t)&&(w.current=t,E.flushSync(()=>{d(t)}))})},[f,t,n,k,A]);Ut(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let M=D.useRef(!1);Ut(()=>(M.current=!0,()=>{M.current=!1}),[]),Ut(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(O.current)return O.current(b,x,j);j()}},[b,x,j,O,T]);let N=D.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),P=D.useMemo(()=>({reference:b,floating:x}),[b,x]),F=D.useMemo(()=>{let e={position:n,left:0,top:0};if(!P.floating)return e;let t=Kt(P.floating,u.x),r=Kt(P.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...Gt(P.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,P.floating,u.x,u.y]);return D.useMemo(()=>({...u,update:j,refs:N,elements:P,floatingStyles:F}),[u,j,N,P,F])}var Yt=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Bt({element:r.current,padding:i}).fn(n):r?Bt({element:r,padding:i}).fn(n):{}}}},Xt=(e,t)=>{let n=Ft(e);return{name:n.name,fn:n.fn,options:[e,t]}},Zt=(e,t)=>{let n=It(e);return{name:n.name,fn:n.fn,options:[e,t]}},Qt=(e,t)=>({fn:Vt(e).fn,options:[e,t]}),$t=(e,t)=>{let n=Lt(e);return{name:n.name,fn:n.fn,options:[e,t]}},en=(e,t)=>{let n=Rt(e);return{name:n.name,fn:n.fn,options:[e,t]}},tn=(e,t)=>{let n=zt(e);return{name:n.name,fn:n.fn,options:[e,t]}},nn=(e,t)=>{let n=Yt(e);return{name:n.name,fn:n.fn,options:[e,t]}},rn=Object.defineProperty,an=(e,t)=>rn(e,`name`,{value:t,configurable:!0});function on(e){let[t,n]=D.useState(void 0);return i(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=0,r=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;let i=r[0];window.cancelAnimationFrame(t),t=window.requestAnimationFrame(()=>{let t,r;if(`borderBoxSize`in i){let e=i.borderBoxSize,n=Array.isArray(e)?e[0]:e;t=n.inlineSize,r=n.blockSize}else t=e.offsetWidth,r=e.offsetHeight;n({width:t,height:r})})});return r.observe(e,{box:`border-box`}),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}n(void 0)},[e]),t}an(on,`useSize`);var sn=Object.defineProperty,cn=(e,t)=>sn(e,`name`,{value:t,configurable:!0}),ln={Partial:`partial`,Always:`always`},un={Optimized:`optimized`,Always:`always`},dn=`Popper`,[fn,pn]=s(dn),[mn,hn]=fn(dn),gn=cn(e=>{let{__scopePopper:t,children:n}=e,[r,i]=D.useState(null),[a,o]=D.useState(void 0);return(0,O.jsx)(mn,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),_n=`PopperAnchor`,vn=D.forwardRef(cn(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=hn(_n,n),o=D.useRef(null),s=a.onAnchorChange,l=D.useCallback(e=>{o.current=e,e&&s(e)},[s]),u=d(t,l),f=D.useRef(null);D.useEffect(()=>{if(!r)return;let e=f.current;f.current=r.current,e!==f.current&&s(f.current)});let p=a.placementState&&Tn(a.placementState),m=p?.[0],h=p?.[1];return r?null:(0,O.jsx)(c.div,{"data-radix-popper-side":m,"data-radix-popper-align":h,...i,ref:u})},`PopperAnchor`)),yn=`PopperContent`,[bn,xn]=fn(yn),Sn=D.forwardRef(cn(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:a=0,align:s=`center`,alignOffset:l=0,arrowPadding:u=0,avoidCollisions:f=!0,collisionBoundary:p=[],collisionPadding:m=0,sticky:h=ln.Partial,hideWhenDetached:g=!1,updatePositionStrategy:_=un.Optimized,onPlaced:v,...y}=e,b=hn(yn,n),[x,S]=D.useState(null),C=d(t,S),[w,T]=D.useState(null),E=on(w),k=E?.width??0,A=E?.height??0,j=r+(s===`center`?``:`-`+s),M=typeof m==`number`?m:{top:0,right:0,bottom:0,left:0,...m},N=Array.isArray(p)?p:[p],P=N.length>0,F={padding:M,boundary:N.filter(Cn),altBoundary:P},{refs:ee,floatingStyles:I,placement:L,isPositioned:te,middlewareData:R}=Jt({strategy:`fixed`,placement:j,whileElementsMounted:cn((...e)=>Pt(...e,{animationFrame:_===un.Always}),`whileElementsMounted`),elements:{reference:b.anchor},middleware:[Xt({mainAxis:a+A,alignmentAxis:l}),f&&Zt({mainAxis:!0,crossAxis:!1,...h===ln.Partial?{limiter:Qt()}:{},...F}),f&&$t({...F}),en({...F,apply:cn(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),w&&nn({element:w,padding:u}),wn({arrowWidth:k,arrowHeight:A}),g&&tn(P?{strategy:`referenceHidden`,...F}:{strategy:`referenceHidden`,padding:F.padding,altBoundary:F.altBoundary})]}),z=b.setPlacementState;i(()=>(z(L),()=>{z(void 0)}),[L,z]);let[ne,re]=Tn(L),B=o(v);i(()=>{te&&B?.()},[te,B]);let V=R.arrow?.x,H=R.arrow?.y,ie=R.arrow?.centerOffset!==0,[U,ae]=D.useState();return i(()=>{x&&ae(window.getComputedStyle(x).zIndex)},[x]),(0,O.jsx)(`div`,{ref:ee.setFloating,"data-radix-popper-content-wrapper":``,style:{...I,transform:te?I.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:U,"--radix-popper-transform-origin":[R.transformOrigin?.x,R.transformOrigin?.y].join(` `),...R.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,O.jsx)(bn,{scope:n,placedSide:ne,placedAlign:re,onArrowChange:T,arrowX:V,arrowY:H,shouldHideArrow:ie,children:(0,O.jsx)(c.div,{"data-side":ne,"data-align":re,...y,ref:C,style:{...y.style,animation:te?y.style?.animation:`none`}})})})},`PopperContent`));function Cn(e){return e!==null}cn(Cn,`isNotNull`);var wn=cn(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=Tn(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function Tn(e){let[t,n=`center`]=e.split(`-`);return[t,n]}cn(Tn,`getSideAndAlignFromPlacement`);var En=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),Dn=Object.defineProperty,Q=(e,t)=>Dn(e,`name`,{value:t,configurable:!0}),On={ItemAligned:`item-aligned`,Popper:`popper`},kn={LTR:`ltr`,RTL:`rtl`},An=[` `,`Enter`,`ArrowUp`,`ArrowDown`],jn=[` `,`Enter`],Mn=`Select`,[Nn,Pn,Fn]=j(Mn),[In,Ln]=s(Mn,[Fn,pn]),Rn=pn(),[zn,Bn]=In(Mn),[Vn,Hn]=In(Mn);function Un(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=Rn(t),[y,b]=D.useState(null),[x,S]=D.useState(null),[w,T]=D.useState(!1),E=_(l),[k,A]=C({prop:r,defaultProp:i??!1,onChange:a,caller:Mn}),[j,M]=C({prop:o,defaultProp:s,onChange:c,caller:Mn}),N=D.useRef(null),P=D.useRef(!1),[F,ee]=D.useState(null),I=Q(e=>{ee({value:e,hasConsumerStoppedPropagation:P.current}),M(e)},`handleUserSelect`),L=D.useRef(j);D.useEffect(()=>{let e=m?y?.ownerDocument.getElementById(m):y?.form;if(e instanceof HTMLFormElement){let t=Q(()=>M(L.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,y,M]);let te=!y||!!m||!!y.closest(`form`),[R,z]=D.useState(new Set),ne=v(),re=Array.from(R).map(e=>e.props.value).join(`;`),B=D.useCallback(e=>{z(t=>new Set(t).add(e))},[]),V=D.useCallback(e=>{z(t=>{let n=new Set(t);return n.delete(e),n})},[]),H={required:p,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:ne,value:j,onValueChange:M,hasConsumerStoppedPropagationRef:P,userSelection:F,onUserSelect:I,open:k,onOpenChange:A,dir:E,triggerPointerDownPosRef:N,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:R,nativeSelectKey:re,isFormControl:te};return(0,O.jsx)(gn,{...g,children:(0,O.jsx)(zn,{scope:t,...H,children:(0,O.jsx)(Nn.Provider,{scope:t,children:(0,O.jsx)(Vn,{scope:t,onNativeOptionAdd:B,onNativeOptionRemove:V,children:wr(h)?h(H):n})})})})}Q(Un,`SelectProvider`);var Wn=Q(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,O.jsx)(Un,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,O.jsxs)(O.Fragment,{children:[n,e?(0,O.jsx)(Cr,{__scopeSelect:t}):null]})})},`Select`),Gn=`SelectTrigger`,Kn=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=Rn(n),o=Bn(Gn,n),s=o.disabled||r,u=d(t,o.onTriggerChange),f=Pn(n),p=D.useRef(`touch`),[m,h,g]=Er(e=>{let t=f().filter(e=>!e.disabled),n=Dr(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onUserSelect(n.value)}),_=Q(e=>{s||(o.onOpenChange(!0),g()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,O.jsx)(vn,{asChild:!0,...a,children:(0,O.jsx)(c.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Tr(o.value)?``:void 0,...i,ref:u,onClick:l(i.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:l(i.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:l(i.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&(o.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),h(e.key)),!(t&&e.key===` `)&&An.includes(e.key)&&(_(),e.preventDefault())})})})},`SelectTrigger`)),qn=`SelectValue`,Jn=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,className:r,style:a,children:o,placeholder:s=``,...l}=e,u=Bn(qn,n),{onValueNodeHasChildrenChange:f}=u,p=o!==void 0,m=d(t,u.onValueNodeChange);i(()=>{f(p)},[f,p]);let h=Tr(u.value);return(0,O.jsx)(c.span,{...l,asChild:!h&&l.asChild,ref:m,style:{pointerEvents:`none`},children:(0,O.jsx)(D.Fragment,{children:h?s:o},h?`placeholder`:`value`)})},`SelectValue`)),Yn=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,O.jsx)(c.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Xn,Zn]=In(`SelectPortal`,{forceMount:void 0}),Qn=Q(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,O.jsx)(Xn,{scope:e.__scopeSelect,forceMount:n,children:(0,O.jsx)(y,{asChild:!0,...r})})},`SelectPortal`),$n=`SelectContent`,er=D.forwardRef(Q(function(e,t){let n=Zn($n,e.__scopeSelect),{forceMount:r=n.forceMount,...a}=e,o=Bn($n,e.__scopeSelect),[s,c]=D.useState();return i(()=>{c(new DocumentFragment)},[]),(0,O.jsx)(u,{present:r||o.open,children:({present:e})=>e?(0,O.jsx)(ar,{...a,ref:t}):(0,O.jsx)(tr,{...a,fragment:s})})},`SelectContent`)),tr=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?E.createPortal((0,O.jsx)(nr,{scope:n,children:(0,O.jsx)(Nn.Slot,{scope:n,children:(0,O.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),$=10,[nr,rr]=In($n),ir=f(`SelectContent.RemoveScroll`),ar=D.forwardRef(Q(function(e,t){let{__scopeSelect:n}=e,{position:r=On.ItemAligned,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:v,...y}=e,C=Bn($n,n),[E,k]=D.useState(null),[A,j]=D.useState(null),M=d(t,k),[N,P]=D.useState(null),[F,ee]=D.useState(null),I=Pn(n),[L,te]=D.useState(!1),R=D.useRef(!1),z=D.useRef(!1),ne=D.useRef(!1);D.useEffect(()=>{if(E)return x(E)},[E]),b();let re=D.useCallback(e=>{let[t,...n]=I().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&A&&(A.scrollTop=0),n===r&&A&&(A.scrollTop=A.scrollHeight),n?.focus(),document.activeElement!==i))return},[I,A]),B=D.useCallback(()=>re([N,E]),[re,N,E]);D.useEffect(()=>{L&&B()},[L,B]);let{onOpenChange:V,triggerPointerDownPosRef:H}=C;D.useEffect(()=>{if(E){let e={x:0,y:0},t=Q(t=>{e={x:Math.abs(Math.round(t.pageX)-(H.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(H.current?.y??0))}},`handlePointerMove`),n=Q(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||V(!1),document.removeEventListener(`pointermove`,t),H.current=null},`handlePointerUp`);return H.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,V,H]),D.useEffect(()=>{let e=Q(()=>V(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[V]);let[ie,U]=Er(e=>{let t=I().filter(e=>!e.disabled),n=Dr(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ae=D.useCallback((e,t,n)=>{let r=!z.current;r&&(z.current=!0);let i=!R.current&&!n;C.value!==void 0&&C.value===t||i?(P(e),i&&(R.current=!0)):r&&P(e)},[C.value]),oe=D.useCallback(()=>E?.focus(),[E]),W=D.useCallback((e,t,n)=>{if(!e)return;let r=!ne.current;r&&(ne.current=!0);let i=!R.current&&!n;(C.value!==void 0&&C.value===t||i||r)&&ee(e)},[C.value]),G=r===On.Popper?sr:or,se=G===sr?{side:s,sideOffset:c,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,O.jsx)(nr,{scope:n,content:E,viewport:A,onViewportChange:j,itemRefCallback:ae,selectedItem:N,onItemLeave:oe,itemTextRefCallback:W,focusSelectedItem:B,selectedItemText:F,position:r,isPositioned:L,searchRef:ie,children:(0,O.jsx)(w,{as:ir,allowPinchZoom:!0,children:(0,O.jsx)(S,{asChild:!0,trapped:C.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:l(i,e=>{C.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,O.jsx)(T,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>C.onOpenChange(!1),children:(0,O.jsx)(G,{role:`listbox`,id:C.contentId,"data-state":C.open?`open`:`closed`,dir:C.dir,onContextMenu:e=>e.preventDefault(),...y,...se,onPlaced:()=>te(!0),ref:M,style:{display:`flex`,flexDirection:`column`,outline:`none`,...y.style},onKeyDown:l(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&U(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=I().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>re(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),or=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,onPlaced:r,...a}=e,o=Bn($n,n),s=rr($n,n),[l,u]=D.useState(null),[f,p]=D.useState(null),m=d(t,p),h=Pn(n),_=D.useRef(!1),v=D.useRef(!0),{viewport:y,selectedItem:b,selectedItemText:x,focusSelectedItem:S}=s,C=D.useCallback(()=>{if(o.trigger&&o.valueNode&&l&&f&&y&&b&&x){let e=o.trigger.getBoundingClientRect(),t=f.getBoundingClientRect(),n=o.valueNode.getBoundingClientRect(),i=x.getBoundingClientRect();if(o.dir!==kn.RTL){let r=i.left-t.left,a=n.left-r,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-$,d=g(a,[$,Math.max($,u-c)]);l.style.minWidth=s+`px`,l.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-$,d=g(a,[$,Math.max($,u-c)]);l.style.minWidth=s+`px`,l.style.right=d+`px`}let a=h(),s=window.innerHeight-$*2,c=y.scrollHeight,u=window.getComputedStyle(f),d=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),v=parseInt(u.paddingBottom,10),S=d+p+c+v+m,C=Math.min(b.offsetHeight*5,S),w=window.getComputedStyle(y),T=parseInt(w.paddingTop,10),E=parseInt(w.paddingBottom,10),D=e.top+e.height/2-$,O=s-D,k=b.offsetHeight/2,A=b.offsetTop+k,j=d+p+A,M=S-j;if(j<=D){let e=a.length>0&&b===a[a.length-1].ref.current;l.style.bottom=`0px`;let t=f.clientHeight-y.offsetTop-y.offsetHeight,n=j+Math.max(O,k+(e?E:0)+t+m);l.style.height=n+`px`}else{let e=a.length>0&&b===a[0].ref.current;l.style.top=`0px`;let t=Math.max(D,d+y.offsetTop+(e?T:0)+k)+M;l.style.height=t+`px`,y.scrollTop=j-D+y.offsetTop}l.style.margin=`${$}px 0`,l.style.minHeight=C+`px`,l.style.maxHeight=s+`px`,r?.(),requestAnimationFrame(()=>_.current=!0)}},[h,o.trigger,o.valueNode,l,f,y,b,x,o.dir,r]);i(()=>C(),[C]);let[w,T]=D.useState();i(()=>{f&&T(window.getComputedStyle(f).zIndex)},[f]);let E=D.useCallback(e=>{e&&v.current===!0&&(C(),S?.(),v.current=!1)},[C,S]);return(0,O.jsx)(cr,{scope:n,contentWrapper:l,shouldExpandOnScrollRef:_,onScrollButtonChange:E,children:(0,O.jsx)(`div`,{ref:u,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:w},children:(0,O.jsx)(c.div,{...a,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})},`SelectItemAlignedPosition`)),sr=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=$,...a}=e,o=Rn(n);return(0,O.jsx)(Sn,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[cr,lr]=In($n,{}),ur=`SelectViewport`,dr=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=rr(ur,n),o=lr(ur,n),s=d(t,a.onViewportChange),u=D.useRef(0);return(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,O.jsx)(Nn.Slot,{scope:n,children:(0,O.jsx)(c.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:l(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(u.current-t.scrollTop);if(e>0){let r=window.innerHeight-$*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}u.current=t.scrollTop})})})]})},`SelectViewport`)),[fr,pr]=In(`SelectGroup`),mr=`SelectItem`,[hr,gr]=In(mr),_r=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...s}=e,u=Bn(mr,n),f=rr(mr,n),p=u.value===r,[m,h]=D.useState(a??``),[g,_]=D.useState(!1),y=o(e=>f.itemRefCallback?.(e,r,i)),b=d(t,y),x=v(),S=D.useRef(`touch`);function C(e){u.hasConsumerStoppedPropagationRef.current=e.isPropagationStopped(),u.onUserSelect(r),u.onOpenChange(!1)}return Q(C,`handleSelect`),(0,O.jsx)(hr,{scope:n,value:r,disabled:i,textId:x,isSelected:p,onItemTextChange:D.useCallback(e=>{h(t=>t||(e?.textContent??``).trim())},[]),children:(0,O.jsx)(Nn.ItemSlot,{scope:n,value:r,disabled:i,textValue:m,children:(0,O.jsx)(c.div,{role:`option`,"aria-labelledby":x,"data-highlighted":g?``:void 0,"aria-selected":p&&g,"data-state":p?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...s,ref:b,onFocus:l(s.onFocus,()=>_(!0)),onBlur:l(s.onBlur,()=>_(!1)),onClick:l(s.onClick,e=>{i||S.current!==`mouse`&&C(e)}),onPointerUp:l(s.onPointerUp,e=>{i||S.current===`mouse`&&C(e)}),onPointerDown:l(s.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:l(s.onPointerMove,e=>{S.current=e.pointerType,i?f.onItemLeave?.():S.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:l(s.onPointerLeave,e=>{e.currentTarget===document.activeElement&&f.onItemLeave?.()}),onKeyDown:l(s.onKeyDown,e=>{i||e.target!==e.currentTarget||(f.searchRef?.current===``||e.key!==` `)&&(jn.includes(e.key)&&C(e),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),vr=`SelectItemText`,yr=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,className:r,style:a,...s}=e,l=Bn(vr,n),u=rr(vr,n),f=gr(vr,n),p=Hn(vr,n),[m,h]=D.useState(null),g=o(e=>u.itemTextRefCallback?.(e,f.value,f.disabled)),_=d(t,h,f.onItemTextChange,g),v=m?.textContent,y=D.useMemo(()=>(0,O.jsx)(`option`,{value:f.value,disabled:f.disabled,children:v},f.value),[f.disabled,f.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=p;return i(()=>(b(y),()=>x(y)),[b,x,y]),(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(c.span,{id:f.textId,...s,ref:_}),f.isSelected&&l.valueNode&&!l.valueNodeHasChildren&&!Tr(l.value)?E.createPortal(s.children,l.valueNode):null]})},`SelectItemText`)),br=`SelectItemIndicator`,xr=D.forwardRef(Q(function(e,t){let{__scopeSelect:n,...r}=e;return gr(br,n).isSelected?(0,O.jsx)(c.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Sr=`SelectBubbleInput`,Cr=D.forwardRef(Q(function({__scopeSelect:e,...t},n){let r=Bn(Sr,e),{value:i,onValueChange:a,required:o,disabled:s,name:l,autoComplete:u,form:f,userSelection:p}=r,{nativeOptions:m,nativeSelectKey:h}=r,g=D.useRef(null),_=d(n,g),v=i??``,y=D.useRef(v),b=D.useRef(p),x=D.useRef(!1),S=Array.from(m).some(e=>(e.props.value??``)===``);return D.useEffect(()=>{let e=g.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set,r=p!==null&&p!==b.current;b.current=p;let i=y.current!==v;y.current=v;let a=r&&i;if(r&&!i&&p.value!==v&&!p.hasConsumerStoppedPropagation&&n){x.current=!0;try{n.call(e,p.value),e.dispatchEvent(new Event(`change`,{bubbles:!0}))}finally{x.current=!1,n.call(e,v)}return}let o=a&&!p.hasConsumerStoppedPropagation;if(i&&n){let t=new Event(`change`,{bubbles:o});n.call(e,v),e.dispatchEvent(t)}},[v,p]),(0,O.jsxs)(c.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:l,autoComplete:u,disabled:s,form:f,onChange:e=>{x.current||a(e.target.value)},...t,style:{...En,...t.style},ref:_,defaultValue:v,children:[Tr(i)&&!S?(0,O.jsx)(`option`,{value:``}):null,Array.from(m)]},h)},`SelectBubbleInput`));function wr(e){return typeof e==`function`}Q(wr,`isFunction`);function Tr(e){return e===``||e===void 0}Q(Tr,`shouldShowPlaceholder`);function Er(e){let t=o(e),n=D.useRef(``),r=D.useRef(0),i=D.useCallback(e=>{let i=n.current+e;t(i);function a(e){n.current=e,window.clearTimeout(r.current),e!==``&&(r.current=window.setTimeout(()=>a(``),1e3))}Q(a,`updateSearch`),a(i)},[t]),a=D.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return D.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}Q(Er,`useTypeaheadSearch`);function Dr(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Or(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}Q(Dr,`findNextItem`);function Or(e,t){return e.map((n,r)=>e[(t+r)%e.length])}Q(Or,`wrapArray`);var kr=Wn,Ar=Jn;function jr({className:e,children:n,...r}){return(0,O.jsxs)(Kn,{className:t(`flex h-8 w-full items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-1 pr-2 pl-2.5 text-sm text-foreground outline-none transition-colors select-none hover:border-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 dark:bg-transparent`,e),...r,children:[n,(0,O.jsx)(Yn,{asChild:!0,children:(0,O.jsx)(h,{icon:p,className:`h-4 w-4 opacity-60`})})]})}function Mr({className:e,children:n,position:r=`popper`,...i}){return(0,O.jsx)(Qn,{children:(0,O.jsx)(er,{position:r,className:t(`z-50 max-h-80 min-w-36 overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-[var(--sb-popover-ring)]`,e),...i,children:(0,O.jsx)(dr,{className:`p-1`,children:n})})})}function Nr({className:e,children:n,...r}){return(0,O.jsxs)(_r,{className:t(`relative flex min-h-8 cursor-default select-none items-center rounded-md py-1 pr-8 pl-1.5 text-base outline-none data-[disabled]:pointer-events-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:opacity-50`,e),...r,children:[(0,O.jsx)(`span`,{className:`absolute right-2 flex size-4 items-center justify-center`,children:(0,O.jsx)(xr,{children:(0,O.jsx)(h,{icon:m,className:`h-4 w-4`})})}),(0,O.jsx)(yr,{children:n})]})}export{Ar as a,jr as i,Mr as n,Nr as r,kr as t};
|
|
2
|
+
//# sourceMappingURL=select-DwjXlQvi.js.map
|