decocms 3.68.0 → 3.69.0
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/client/assets/{AlertCircle-DhaQx9Mx.js → AlertCircle-Dnqz3IxM.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-CfMwsozc.js → ArrowUpRight-B2NXgTf2.js} +1 -1
- package/dist/client/assets/{CheckCircle-DTbDatzD.js → CheckCircle-D9OslXZP.js} +1 -1
- package/dist/client/assets/{ChevronDown-6sFYQ_lK.js → ChevronDown-BldydMJ0.js} +1 -1
- package/dist/client/assets/{ChevronLeft-8zvGG53e.js → ChevronLeft-CXmppBJO.js} +1 -1
- package/dist/client/assets/{ChevronRight-BdMquS3m.js → ChevronRight-BsknZQE_.js} +1 -1
- package/dist/client/assets/{ChevronUp-BNOOOsT2.js → ChevronUp-CjDXfs3K.js} +1 -1
- package/dist/client/assets/{DotsVertical-DQ-WKmA2.js → DotsVertical-Ci1mVPsb.js} +1 -1
- package/dist/client/assets/{Eye-B4uYcIta.js → Eye-DifA9NHq.js} +1 -1
- package/dist/client/assets/{FilterLines-DCvNnP3i.js → FilterLines-CV07u96M.js} +1 -1
- package/dist/client/assets/{Globe01-C7fVaUrg.js → Globe01-CMUrlGmF.js} +1 -1
- package/dist/client/assets/{Globe04-Bwx3UG2x.js → Globe04-BplUDurZ.js} +1 -1
- package/dist/client/assets/{HardDrive-BOa3mtdo.js → HardDrive-B6V7BYZB.js} +1 -1
- package/dist/client/assets/{Key01-B-9ep-9Z.js → Key01-DGn_JEBu.js} +1 -1
- package/dist/client/assets/{LayoutLeft-XZqot3mq.js → LayoutLeft-BI32Ru47.js} +1 -1
- package/dist/client/assets/{LinkExternal01-iioOg4ap.js → LinkExternal01-DwIqUvLe.js} +1 -1
- package/dist/client/assets/{Monitor01-DL3Tirrd.js → Monitor01-C-tOv611.js} +1 -1
- package/dist/client/assets/{Palette-pv0gmxnS.js → Palette-pjBymHRy.js} +1 -1
- package/dist/client/assets/{Play-DXtyMrcP.js → Play-BEuZCxsN.js} +1 -1
- package/dist/client/assets/{Plus-J1K3Rh3s.js → Plus-DHJbi1i9.js} +1 -1
- package/dist/client/assets/{SearchMd-CjaRzuTt.js → SearchMd-yvCGxslh.js} +1 -1
- package/dist/client/assets/{Settings02-By0Jzp86.js → Settings02-BcW_Yd93.js} +1 -1
- package/dist/client/assets/{Shield01-M8Hvv7sS.js → Shield01-DXFrycnj.js} +1 -1
- package/dist/client/assets/{Star01-_Kd09vMY.js → Star01-DxJIcjLz.js} +1 -1
- package/dist/client/assets/{Stars01-DyLJc1qm.js → Stars01-Dr_rOBxK.js} +1 -1
- package/dist/client/assets/{Stars02-CDIgaXAV.js → Stars02-CB3UMWzf.js} +1 -1
- package/dist/client/assets/{Sun-TGwF56wV.js → Sun-CTchQz03.js} +1 -1
- package/dist/client/assets/{SwitchHorizontal01-X5LMtCou.js → SwitchHorizontal01-Ca_h3hG5.js} +1 -1
- package/dist/client/assets/{Tool01-Dw4_QC3_.js → Tool01-B4m3Gnpd.js} +1 -1
- package/dist/client/assets/{Trash01-Cib_Sg7t.js → Trash01-BDNQcRq9.js} +1 -1
- package/dist/client/assets/{Upload01-CJqoFPBG.js → Upload01-CuyZwIAy.js} +1 -1
- package/dist/client/assets/{User01-BywBiT-b.js → User01-kj3Bxvgl.js} +1 -1
- package/dist/client/assets/{Users01-CDCapXFR.js → Users01-DM4FmEoT.js} +1 -1
- package/dist/client/assets/{Users03-4g5nbjFJ.js → Users03-CJ4lkyfr.js} +1 -1
- package/dist/client/assets/{X-BL2gdXEj.js → X-Botvp-t_.js} +1 -1
- package/dist/client/assets/{XCircle-CCiKaJ__.js → XCircle-CpovmLEO.js} +1 -1
- package/dist/client/assets/{XClose-BtRDneKm.js → XClose-CnYr1LOo.js} +1 -1
- package/dist/client/assets/{Zap-B8ZLhQFM.js → Zap-8NdOr1pq.js} +1 -1
- package/dist/client/assets/{ZapSquare-J9sfjhfh.js → ZapSquare-ChOMpHGM.js} +1 -1
- package/dist/client/assets/{ZoomOut-DCv2Tq6d.js → ZoomOut-DYeUJTmS.js} +1 -1
- package/dist/client/assets/{access-gate-DFiTys6s.js → access-gate-lRgnLhCg.js} +1 -1
- package/dist/client/assets/{add-section-modal-ClOPZlnc.js → add-section-modal-CZwFVJh7.js} +1 -1
- package/dist/client/assets/{agent-icon-Cf9b4Ru9.js → agent-icon-B1KjkGhC.js} +1 -1
- package/dist/client/assets/{agents-list-C5u1JJrt.js → agents-list-BeGasDr4.js} +1 -1
- package/dist/client/assets/{ai-providers-5s3h35FZ.js → ai-providers-DhEaZvB4.js} +1 -1
- package/dist/client/assets/{alert-DGGvXsmf.js → alert-DVl9GMhN.js} +1 -1
- package/dist/client/assets/{alert-dialog-C20YoJ0a.js → alert-dialog-DvJDYQsM.js} +1 -1
- package/dist/client/assets/app-editor-Dd12zl9_.js +1 -0
- package/dist/client/assets/{auth-RitCYkp6.js → auth-DA6X7KBB.js} +1 -1
- package/dist/client/assets/{auth-catchall-DwJMWiTa.js → auth-catchall-BljhiRu2.js} +1 -1
- package/dist/client/assets/{auth-split-layout-BUqeR5HU.js → auth-split-layout-DeC-35_z.js} +1 -1
- package/dist/client/assets/{automation-list-row-BGAGsR0l.js → automation-list-row-BIiojY8I.js} +1 -1
- package/dist/client/assets/{automation-runs-Dzg3ROYw.js → automation-runs-CHVaaxN6.js} +1 -1
- package/dist/client/assets/{automations-CxAwu4Kg.js → automations-BZ212IOj.js} +1 -1
- package/dist/client/assets/{avatar-Nw1x5eGz.js → avatar-D7wKrjgH.js} +1 -1
- package/dist/client/assets/{badge-CuCfPx-y.js → badge-Rj4w6Y9D.js} +1 -1
- package/dist/client/assets/{block-document-ZFzIRxrN.js → block-document-Dr1GbIJR.js} +1 -1
- package/dist/client/assets/{brand-context-DzyWDcCk.js → brand-context-BHLNO4fC.js} +1 -1
- package/dist/client/assets/{buckets-XQexDwjp.js → buckets-C3GJftau.js} +1 -1
- package/dist/client/assets/{calendar-CKrH5d_Q.js → calendar-BETEvsL1.js} +1 -1
- package/dist/client/assets/{capability-load-error-gogxAwFW.js → capability-load-error-Caduk_d2.js} +1 -1
- package/dist/client/assets/{card-yVmBUFAg.js → card-BtNxdFil.js} +1 -1
- package/dist/client/assets/category-editor-D8faJ1-Q.js +1 -0
- package/dist/client/assets/{chat-context-WtXAdZJ4.js → chat-context-B_U1gcun.js} +1 -1
- package/dist/client/assets/{checkbox-BMArZ_ix.js → checkbox-CzoSEbjC.js} +1 -1
- package/dist/client/assets/{cli-auth-success-Cm2MX1PH.js → cli-auth-success-BaHruqex.js} +1 -1
- package/dist/client/assets/{collection-detail-CdcHUbmk.js → collection-detail-Dlkc-Hxo.js} +1 -1
- package/dist/client/assets/{collection-display-button-Deigak_t.js → collection-display-button-4X_RKgcc.js} +1 -1
- package/dist/client/assets/{collection-search-CDaYX9FR.js → collection-search-BSHmVsv0.js} +1 -1
- package/dist/client/assets/{collection-tabs-dRuAELuw.js → collection-tabs-CghGabs6.js} +1 -1
- package/dist/client/assets/{command-P8Wd0xDH.js → command-CYqVDIDi.js} +1 -1
- package/dist/client/assets/{connect-desktop-dialog-p3tqZ2_6.js → connect-desktop-dialog-Cq5se3ri.js} +1 -1
- package/dist/client/assets/{connection-card-CCMuozOG.js → connection-card-CzT4sqi7.js} +1 -1
- package/dist/client/assets/{connection-detail-JjdH17H6.js → connection-detail-BCjmmJh1.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-BU4nsydd.js → connection-form-helpers-CuaSwKDp.js} +1 -1
- package/dist/client/assets/{connections-xjFDA3iN.js → connections-BEh7d4ax.js} +1 -1
- package/dist/client/assets/{context-menu-XATcg7cH.js → context-menu-CtPFsuQw.js} +1 -1
- package/dist/client/assets/{decopilot-CJM86E2F.js → decopilot-Bw9nv9Fa.js} +1 -1
- package/dist/client/assets/{decopilot-sse-pool-BVuJ_7ML.js → decopilot-sse-pool-DdZSTixQ.js} +1 -1
- package/dist/client/assets/{dialog-jhtlYWQH.js → dialog-BMBVdX8K.js} +1 -1
- package/dist/client/assets/{domain-settings-D18yHtBo.js → domain-settings-GHKCO0j2.js} +1 -1
- package/dist/client/assets/{drawer-Ca9qnNLt.js → drawer-TLQRWcN-.js} +1 -1
- package/dist/client/assets/{dropdown-menu-B4AhYSKY.js → dropdown-menu-gXn3xVef.js} +1 -1
- package/dist/client/assets/{empty-state-Cz0bAkoo.js → empty-state-SvMp_sYN.js} +1 -1
- package/dist/client/assets/{extract-connection-data-CObOyXJ4.js → extract-connection-data-BsbTS0uC.js} +1 -1
- package/dist/client/assets/{file-explorer-D0NTDf_o.js → file-explorer-C5eBRtME.js} +1 -1
- package/dist/client/assets/{file-type-icon-CzNWenEv.js → file-type-icon-DURyeK9L.js} +1 -1
- package/dist/client/assets/{files-DMaBuySQ.js → files-B43hGcq-.js} +1 -1
- package/dist/client/assets/{form-rLORGBZw.js → form-CdGhzS_x.js} +1 -1
- package/dist/client/assets/{general-BvPRQvS3.js → general-D01YsmbR.js} +1 -1
- package/dist/client/assets/{github-repo-picker-Cu20X1Oj.js → github-repo-picker-Db3xiFzy.js} +1 -1
- package/dist/client/assets/{hooks-D14HehpA.js → hooks-DlDryoZW.js} +1 -1
- package/dist/client/assets/{image-field-LMawai9Y.js → image-field-ZYWbFFqt.js} +1 -1
- package/dist/client/assets/{import-from-deco-dialog-BCZEU51-.js → import-from-deco-dialog-wt_cQutp.js} +1 -1
- package/dist/client/assets/{index-DVtTwolW.js → index-B66xjk-i.js} +1 -1
- package/dist/client/assets/{index-kcIuDE6u.js → index-BW5f_EaT.js} +22 -22
- package/dist/client/assets/{index-Bx5YRZw3.js → index-C35Pm7iN.js} +1 -1
- package/dist/client/assets/{index-C3gL9St4.js → index-COlSsy5J.js} +3 -3
- package/dist/client/assets/{index-CQ_hnxd_.js → index-C_H1H79r.js} +1 -1
- package/dist/client/assets/{index-Bf1YdrMc.js → index-CkC7ek4r.js} +1 -1
- package/dist/client/assets/{index-CK3Q6Lxn.js → index-CvuV8zWk.js} +1 -1
- package/dist/client/assets/{index-C2-nEDLj.js → index-D0cczQd_.js} +1 -1
- package/dist/client/assets/{index-DqifP8kh.js → index-D4WUCfu0.js} +1 -1
- package/dist/client/assets/{index-B9_waAhV.js → index-DEanDL8Y.js} +1 -1
- package/dist/client/assets/{index-Df7da_i0.js → index-DWvgpCdb.js} +1 -1
- package/dist/client/assets/{index-CBOm8PQT.js → index-H-_VOpOu.js} +1 -1
- package/dist/client/assets/{index-CaOvTlCR.js → index-dlN4JEF9.js} +1 -1
- package/dist/client/assets/{index-redirect-DD0m-QdY.js → index-redirect-CDQ9iDF3.js} +1 -1
- package/dist/client/assets/{index-i_JkZB27.js → index-swPX_OFH.js} +1 -1
- package/dist/client/assets/{input-BvSXiwAq.js → input-CuVtlRv5.js} +1 -1
- package/dist/client/assets/{integration-icon-BcoSEnuB.js → integration-icon-RqT66_6U.js} +1 -1
- package/dist/client/assets/{label-vllYe6cM.js → label-BCRIEPd0.js} +1 -1
- package/dist/client/assets/{login-DAeVvDXf.js → login-ByPZpD-o.js} +1 -1
- package/dist/client/assets/{mcp-oauth-BswvczAL.js → mcp-oauth-kSTvScdZ.js} +1 -1
- package/dist/client/assets/{members-CqwytKDG.js → members-AD1fVrNE.js} +1 -1
- package/dist/client/assets/{monaco-editor-DFjHxwB9.js → monaco-editor-DNLiFjHn.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-DzD-p2bQ.js → monitoring-stats-row-Bsctnbru.js} +1 -1
- package/dist/client/assets/{oauth-callback-tznqb9vz.js → oauth-callback-B6I9yHDk.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-BrGqlBMJ.js → oauth-callback-ai-provider-D0iCPw3h.js} +1 -1
- package/dist/client/assets/{onboarding-BjK9ZeXA.js → onboarding-1ssRVacT.js} +1 -1
- package/dist/client/assets/{org-install-C_FZDV9k.js → org-install-r5xxUZ8-.js} +1 -1
- package/dist/client/assets/{org-layout-CsJuQ6Ei.js → org-layout-i53vnou1.js} +1 -1
- package/dist/client/assets/{page-seo-form-BFfGH2mD.js → page-seo-form-BRpnzyUP.js} +1 -1
- package/dist/client/assets/page-seo-sheet-C8gLGTPM.js +1 -0
- package/dist/client/assets/{popover-sSylEgHu.js → popover-rRtv1RUJ.js} +1 -1
- package/dist/client/assets/{post-editor-BWay_CVr.js → post-editor-B3yACnM8.js} +1 -1
- package/dist/client/assets/{preview-dialog-CRHdztnc.js → preview-dialog-HeEAXFdp.js} +1 -1
- package/dist/client/assets/{primitives-DDnm_QnL.js → primitives-DOHAd4Be.js} +1 -1
- package/dist/client/assets/{profile-CHd6ohYJ.js → profile-DxKVe_bi.js} +1 -1
- package/dist/client/assets/project-app-view-C1SP7U91.js +1 -0
- package/dist/client/assets/record-editor-CmQTYxNi.js +1 -0
- package/dist/client/assets/registry-BLAsKSMe.js +2 -0
- package/dist/client/assets/{registry-layout-BwUiqOJ3.js → registry-layout-Cqo7HGa-.js} +1 -1
- package/dist/client/assets/{require-capability-CHNIB1jg.js → require-capability-GPOwZTVN.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DHjwTgi9.js → required-auth-layout-D9YU16Eu.js} +1 -1
- package/dist/client/assets/{reset-password-D0a0hqfd.js → reset-password-BvvmcRor.js} +1 -1
- package/dist/client/assets/{roles-CRte-FI6.js → roles-BG01ewdV.js} +1 -1
- package/dist/client/assets/save-referenced-block-qVgXMpcz.js +1 -0
- package/dist/client/assets/{save-status-N1v_enLx.js → save-status-2WDTqRnj.js} +1 -1
- package/dist/client/assets/schema-form-hXy8-pLC.js +1 -0
- package/dist/client/assets/{scroll-area-Dbsv4e6O.js → scroll-area-DOnfhZQE.js} +1 -1
- package/dist/client/assets/{search-input-ChrXBjj7.js → search-input-Dh2xeHiv.js} +1 -1
- package/dist/client/assets/{secrets-CzfeR8W_.js → secrets-x-a9-QDY.js} +1 -1
- package/dist/client/assets/{sections-editor-D2GO3ILI.js → sections-editor-DpVqLaiP.js} +3 -3
- package/dist/client/assets/{select-gQvIO328.js → select-Dqs7Z4yG.js} +1 -1
- package/dist/client/assets/{select-model-Dzwuphcu.js → select-model-bXVR8jvT.js} +1 -1
- package/dist/client/assets/{seo-editor-CwC2Qeg7.js → seo-editor-d5x7SvAU.js} +1 -1
- package/dist/client/assets/{settings-layout-A5O0niXa.js → settings-layout-CpPje1Xl.js} +1 -1
- package/dist/client/assets/{settings-section-0NTS3MkI.js → settings-section-BqnJtUWr.js} +1 -1
- package/dist/client/assets/{sheet-BBNc6H-H.js → sheet-Cn8FwYbD.js} +1 -1
- package/dist/client/assets/{shell-controls-Cc7-zEXH.js → shell-controls-nCD3gP3E.js} +1 -1
- package/dist/client/assets/{shell-layout-CrbOIA4d.js → shell-layout-Cx--9PV8.js} +1 -1
- package/dist/client/assets/{shell-route-loading-DJR-qsy8.js → shell-route-loading-Brmd2_HQ.js} +1 -1
- package/dist/client/assets/{sidebar-B5eoEEUh.js → sidebar-D1LCPjC8.js} +1 -1
- package/dist/client/assets/{skeleton-DOQx-oqC.js → skeleton-Bo_6Cq99.js} +1 -1
- package/dist/client/assets/{sortable.esm-XdYFSg_0.js → sortable.esm-yJWb24sN.js} +1 -1
- package/dist/client/assets/{sso-kYzS5Tqs.js → sso-DhhZEU-d.js} +1 -1
- package/dist/client/assets/{store-hoHB6kbc.js → store-COjaCE4s.js} +1 -1
- package/dist/client/assets/store-registry-nvoM6APm.js +2 -0
- package/dist/client/assets/{studio-tools-B1vmC7k4.js → studio-tools-CyTucPcW.js} +1 -1
- package/dist/client/assets/{switch-BH90tU73.js → switch-CorAlxCf.js} +1 -1
- package/dist/client/assets/{table-Borl2aRc.js → table-Gv4tJy7V.js} +1 -1
- package/dist/client/assets/{tabs-CznF-MMq.js → tabs-DAvIQWby.js} +1 -1
- package/dist/client/assets/{task-status-W8pectFm.js → task-status-BfeF--n0.js} +1 -1
- package/dist/client/assets/{textarea-BVXgXW3B.js → textarea-DsT2vsGj.js} +1 -1
- package/dist/client/assets/{toggle-group-Cn5J5q3D.js → toggle-group-WKZVvwQm.js} +1 -1
- package/dist/client/assets/{toolbar-6hNYKLLh.js → toolbar-BfY48AQu.js} +1 -1
- package/dist/client/assets/{tooltip-D9KNvVvr.js → tooltip-D5U362dF.js} +1 -1
- package/dist/client/assets/{types-C7TUAV0n.js → types-C-QYkfD4.js} +1 -1
- package/dist/client/assets/{use-ai-providers-CYtt5EvS.js → use-ai-providers-CLZQ64DO.js} +1 -1
- package/dist/client/assets/{use-automations-DB885IUH.js → use-automations-DNKM1hXI.js} +1 -1
- package/dist/client/assets/{use-capability-BgNNCaLI.js → use-capability-XIhIuFk7.js} +1 -1
- package/dist/client/assets/{use-clock-tick-BHE1f1YU.js → use-clock-tick-DkwKhG1v.js} +1 -1
- package/dist/client/assets/{use-collections-H8HuKWEE.js → use-collections-D4JsVK-B.js} +1 -1
- package/dist/client/assets/{use-connection-Cg1b4Um2.js → use-connection-C7Z8M26w.js} +1 -1
- package/dist/client/assets/{use-copy-BGWnHO-M.js → use-copy-CqTP6NE5.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BTbe0O5T.js → use-create-virtual-mcp-fk0U59RA.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-DIcW3_zI.js → use-debounced-autosave-B8dr6XMC.js} +1 -1
- package/dist/client/assets/{use-deco-credits-D3w33USN.js → use-deco-credits-Cm6qycwc.js} +1 -1
- package/dist/client/assets/{use-delete-connection-CMXNBeGz.js → use-delete-connection-DTrOkfly.js} +1 -1
- package/dist/client/assets/{use-file-configs-BBtTR4ju.js → use-file-configs-DKTLvOxt.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-Cj-XExfy.js → use-infinite-scroll-SjuQvrxH.js} +1 -1
- package/dist/client/assets/{use-join-requests-Dl6EohPu.js → use-join-requests-DmU4yvI-.js} +1 -1
- package/dist/client/assets/{use-mcp-client-DYJrfczK.js → use-mcp-client-CK2bE_Wl.js} +9 -9
- package/dist/client/assets/{use-mcp-prompts-CSCDL01T.js → use-mcp-prompts--L5Py2oF.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-D3AAnhTZ.js → use-mcp-tools-B7wduqbV.js} +1 -1
- package/dist/client/assets/{use-members-DJNn_Bxw.js → use-members-CYuArAru.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-BlcN6V5v.js → use-navigate-to-agent-C2rXzvAb.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-wIGZzMQc.js → use-org-auth-client-BYQp-Udb.js} +1 -1
- package/dist/client/assets/{use-org-sso-CwWfX4uS.js → use-org-sso-Dh5HCYSJ.js} +1 -1
- package/dist/client/assets/{use-organization-roles-BXV_PsbS.js → use-organization-roles-BR95hkZY.js} +1 -1
- package/dist/client/assets/{use-organization-settings-DouM9EgM.js → use-organization-settings-CiSDOMOC.js} +1 -1
- package/dist/client/assets/{use-registry-connections-QEmucmhH.js → use-registry-connections-rHz6zGP7.js} +1 -1
- package/dist/client/assets/{use-secrets-DVqtKaXp.js → use-secrets-DLuniCTL.js} +1 -1
- package/dist/client/assets/{use-status-sounds-Dl6bvWf3.js → use-status-sounds-BmR3uEUx.js} +1 -1
- package/dist/client/assets/{use-view-mode-BCnWJZTf.js → use-view-mode-CCFkxJ0W.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-oKPxaCky.js → use-virtual-mcp-DPWDEWCb.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-BS_m7Y7W.js +1 -0
- package/dist/client/assets/{useRouterState-ysmOvmXv.js → useRouterState-q7ojL5Do.js} +1 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CHHT-uCm.js +1 -0
- package/dist/client/assets/{view-mode-toggle-CHlCGyzP.js → view-mode-toggle-CeXLSv0R.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +525 -521
- package/dist/server/migrate.js +113 -109
- package/dist/server/server.js +368 -368
- package/package.json +1 -1
- package/dist/client/assets/app-editor-B87jVOIH.js +0 -1
- package/dist/client/assets/category-editor-BEoXjeUW.js +0 -1
- package/dist/client/assets/page-seo-sheet-CitEZrcC.js +0 -1
- package/dist/client/assets/project-app-view-CXwN5Mnc.js +0 -1
- package/dist/client/assets/record-editor-D-0BBq6H.js +0 -1
- package/dist/client/assets/registry-BCkAgbHk.js +0 -2
- package/dist/client/assets/save-referenced-block-BwxGXLv8.js +0 -1
- package/dist/client/assets/schema-form-mwEmbM5O.js +0 -1
- package/dist/client/assets/store-registry-MgWAZcLM.js +0 -2
- package/dist/client/assets/useInfiniteQuery-YHehADCx.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-xMSumVHF.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as C,p as be,a as _e,K as Pe,j as t,a1 as Ue,r as $,B as Y,L as $e,c as he,l as De,n as q}from"./index-C3gL9St4.js";import{a as W}from"./Tool01-Dw4_QC3_.js";import{s as ze}from"./Trash01-Cib_Sg7t.js";import{i as je}from"./Upload01-CJqoFPBG.js";import{I as Fe}from"./input-BvSXiwAq.js";import{L as Te}from"./label-vllYe6cM.js";import{i as Le}from"./AlertCircle-DhaQx9Mx.js";import{i as Ne}from"./ChevronUp-BNOOOsT2.js";import{a as Ee}from"./Eye-B4uYcIta.js";import{a as Oe}from"./DotsVertical-DQ-WKmA2.js";import{N as Ae}from"./agent-icon-Cf9b4Ru9.js";import{n as Re}from"./LinkExternal01-iioOg4ap.js";import{d as Be,a as Ge,b as Me,D as Ve,c as Ke}from"./dialog-jhtlYWQH.js";import{c as pe,a as Je,D as Qe,b as qe}from"./dropdown-menu-B4AhYSKY.js";import{S as Ye}from"./skeleton-DOQx-oqC.js";import{T as We,a as He,b as Xe,c as Ze}from"./tabs-CznF-MMq.js";import{u as et,c as tt}from"./use-file-configs-BBtTR4ju.js";import{u as st}from"./useInfiniteQuery-YHehADCx.js";import{u as nt}from"./studio-tools-B1vmC7k4.js";function it(s){if(typeof s=="string")return s;if(!s||typeof s!="object")return"";const e=s;if(Array.isArray(e.variants)){const n=e.variants,l=n.find(r=>r.rule?.__resolveType?.includes("always"));if(typeof l?.value=="string")return l.value;const i=n.find(r=>typeof r.value=="string");if(i)return i.value}return typeof e.src=="string"?e.src:typeof e.url=="string"?e.url:typeof e.value=="string"?e.value:""}function lt(s){const e=C.c(10),{org:n}=be(),l=nt();let i;e[0]!==n.id||e[1]!==s.configId?(i=Pe.filePickerObjects(n.id,s.configId),e[0]=n.id,e[1]=s.configId,e[2]=i):i=e[2];const r=s.enabled!==!1&&!!s.configId;let o;e[3]!==s.configId||e[4]!==l?(o=async a=>{const{pageParam:g}=a;return await l.call("FILE_OBJECTS_LIST",{configId:s.configId,cursor:g??void 0})},e[3]=s.configId,e[4]=l,e[5]=o):o=e[5];let f;return e[6]!==i||e[7]!==r||e[8]!==o?(f={queryKey:i,enabled:r,staleTime:3e4,initialPageParam:null,queryFn:o,getNextPageParam:rt},e[6]=i,e[7]=r,e[8]=o,e[9]=f):f=e[9],st(f)}function rt(s){return s.nextCursor??void 0}function Ce(){const s=C.c(2),{org:e}=be();let n;return s[0]!==e?(n={mutationFn:async l=>{const i=l.file.type||"application/octet-stream",r=await fetch(`/api/${encodeURIComponent(e.slug)}/file-configs/${encodeURIComponent(l.configId)}/upload?filename=${encodeURIComponent(l.file.name)}`,{method:"POST",headers:{"Content-Type":i},body:l.file});if(!r.ok){const o=await r.text().catch(ot);let f=`${r.status} ${r.statusText}`;try{const a=JSON.parse(o);a.message&&(f=a.message)}catch{o&&(f=o.slice(0,200))}throw new Error(`Upload failed: ${f}`)}return await r.json()}},s[0]=e,s[1]=n):n=s[1],_e(n)}function ot(){return""}const ye="file-picker:last-config-id";function at(s){const e=C.c(19),n=s.mode==="image"?"Pick an image":"Pick a file";let l;e[0]!==n?(l=t.jsx(Ge,{children:n}),e[0]=n,e[1]=l):l=e[1];let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Me,{children:"Upload a new file or pick one previously uploaded to a configured bucket."}),e[2]=i):i=e[2];let r;e[3]!==l?(r=t.jsxs(Ve,{children:[l,i]}),e[3]=l,e[4]=r):r=e[4];let o;e[5]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsx(Ye,{className:"h-64 w-full"}),e[5]=o):o=e[5];let f;e[6]!==s?(f=x=>{s.onSelect(x),s.onOpenChange(!1)},e[6]=s,e[7]=f):f=e[7];let a;e[8]!==s.lockedConfigId||e[9]!==s.mode||e[10]!==f?(a=t.jsx(Ue,{fallback:ct,children:t.jsx($.Suspense,{fallback:o,children:t.jsx(ft,{mode:s.mode,lockedConfigId:s.lockedConfigId,onSelect:f})})}),e[8]=s.lockedConfigId,e[9]=s.mode,e[10]=f,e[11]=a):a=e[11];let g;e[12]!==r||e[13]!==a?(g=t.jsxs(Ke,{className:"sm:max-w-3xl max-h-[85vh] overflow-hidden flex flex-col",children:[r,a]}),e[12]=r,e[13]=a,e[14]=g):g=e[14];let u;return e[15]!==s.onOpenChange||e[16]!==s.open||e[17]!==g?(u=t.jsx(Be,{open:s.open,onOpenChange:s.onOpenChange,children:g}),e[15]=s.onOpenChange,e[16]=s.open,e[17]=g,e[18]=u):u=e[18],u}function ct(s){const{error:e}=s;return t.jsx(dt,{error:e??new Error("Failed to load buckets")})}function dt(s){const e=C.c(3),{error:n}=s;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=t.jsx(Le,{size:16}),e[0]=l):l=e[0];let i;return e[1]!==n.message?(i=t.jsxs("div",{className:"p-4 rounded-md bg-destructive/10 text-destructive flex items-center gap-2",children:[l,t.jsx("span",{className:"text-sm font-medium",children:n.message})]}),e[1]=n.message,e[2]=i):i=e[2],i}function ft(s){const e=C.c(32),{mode:n,lockedConfigId:l,onSelect:i}=s,r=et();if(r.length===0){let d;return e[0]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(gt,{}),e[0]=d):d=e[0],d}if(l){let d;if(e[1]!==r||e[2]!==l){let c;e[4]!==l?(c=h=>h.id===l,e[4]=l,e[5]=c):c=e[5],d=r.find(c),e[1]=r,e[2]=l,e[3]=d}else d=e[3];const m=d;if(m){let c;return e[6]!==m||e[7]!==n||e[8]!==i?(c=t.jsx(xe,{config:m,mode:n,onSelect:i}),e[6]=m,e[7]=n,e[8]=i,e[9]=c):c=e[9],c}}if(r.length===1){const d=r[0];let m;return e[10]!==d||e[11]!==n||e[12]!==i?(m=t.jsx(xe,{config:d,mode:n,onSelect:i}),e[10]=d,e[11]=n,e[12]=i,e[13]=m):m=e[13],m}let o;e[14]===Symbol.for("react.memo_cache_sentinel")?(o=typeof window<"u"?window.localStorage.getItem(ye):null,e[14]=o):o=e[14];const f=o;let a;e[15]!==r?(a=r.find(d=>d.id===f)?.id??r[0].id,e[15]=r,e[16]=a):a=e[16];const g=a;let u;e[17]!==r?(u=r.map(ut),e[17]=r,e[18]=u):u=e[18];let x;e[19]!==u?(x=t.jsx(He,{className:"self-start",children:u}),e[19]=u,e[20]=x):x=e[20];let p;if(e[21]!==r||e[22]!==n||e[23]!==i){let d;e[25]!==n||e[26]!==i?(d=m=>t.jsx(Xe,{value:m.id,className:"min-h-0 flex-1 overflow-hidden",children:t.jsx(xe,{config:m,mode:n,onSelect:i})},m.id),e[25]=n,e[26]=i,e[27]=d):d=e[27],p=r.map(d),e[21]=r,e[22]=n,e[23]=i,e[24]=p}else p=e[24];let j;return e[28]!==g||e[29]!==x||e[30]!==p?(j=t.jsxs(Ze,{defaultValue:g,onValueChange:mt,className:"min-h-0 flex-1 flex flex-col",children:[x,p]}),e[28]=g,e[29]=x,e[30]=p,e[31]=j):j=e[31],j}function ut(s){return t.jsx(We,{value:s.id,children:s.name},s.id)}function mt(s){typeof window<"u"&&window.localStorage.setItem(ye,s)}function gt(){const s=C.c(4),{org:e}=be();let n,l;s[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx("div",{className:"size-12 rounded-full bg-muted flex items-center justify-center",children:t.jsx(je,{size:20,className:"text-muted-foreground"})}),l=t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-sm",children:"No bucket configured"}),t.jsx("p",{className:"text-xs text-muted-foreground mt-1 max-w-sm",children:"Add an S3-compatible bucket in Settings before you can upload files."})]}),s[0]=n,s[1]=l):(n=s[0],l=s[1]);let i;return s[2]!==e.slug?(i=t.jsxs("div",{className:"rounded-xl border border-dashed border-border/60 p-10 flex flex-col items-center justify-center text-center gap-3",children:[n,l,t.jsx(Y,{asChild:!0,size:"sm",className:"mt-2",children:t.jsx($e,{to:"/$org/settings/files",params:{org:e.slug},children:"Configure a bucket"})})]}),s[2]=e.slug,s[3]=i):i=s[3],i}function xe({config:s,mode:e,onSelect:n}){const l=lt({configId:s.id}),i=Ce(),[r,o]=$.useState(!1),f=$.useRef(null),a=e==="image"?"image/*":void 0;async function g(c){if(!c)return;const h=Array.from(c);if(h.length===0)return;let w=null;const b=[];for(const N of h)try{const y=await i.mutateAsync({configId:s.id,file:N});w??=y.publicUrl}catch(y){b.push(`${N.name} (${y instanceof Error?y.message:"upload failed"})`)}await l.refetch(),b.length>0&&q.error(b.length===h.length?`Upload failed: ${b.join("; ")}`:`Some files failed: ${b.join("; ")}`),w&&n(w)}function u(c){c.preventDefault(),o(!0)}function x(){o(!1)}function p(c){c.preventDefault(),o(!1),g(c.dataTransfer.files)}const d=(l.data?.pages??[]).flatMap(c=>c.items),m=d.filter(c=>e==="image"?Ie(c.key):!0);return t.jsxs("div",{className:"flex flex-col gap-3 min-h-0 h-full",children:[t.jsxs("button",{type:"button",onClick:()=>f.current?.click(),onDragOver:u,onDragLeave:x,onDrop:p,className:he("rounded-xl border border-dashed border-border/60 p-6 flex flex-col items-center justify-center gap-2 text-center transition-colors",r&&"border-primary bg-primary/5",i.isPending&&"opacity-60 pointer-events-none"),children:[t.jsx(je,{size:18,className:"text-muted-foreground"}),t.jsx("p",{className:"text-sm font-medium",children:i.isPending?"Uploading…":"Drop files here or click to upload"}),t.jsxs("p",{className:"text-xs text-muted-foreground",children:["Up to 100 MB."," ",e==="image"?"Images only (PNG, JPEG, WebP, GIF, SVG, AVIF).":"Common image, video, audio, and document types."]}),t.jsx("input",{ref:f,type:"file",accept:a,multiple:!0,className:"hidden",onChange:c=>{const h=Array.from(c.target.files??[]);c.target.value="",g(h)}})]}),l.isFetching&&!l.isFetchingNextPage?t.jsx("div",{className:"flex justify-end",children:t.jsx("span",{className:"text-xs text-muted-foreground",children:"Loading…"})}):null,t.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto pr-1",children:[m.length===0?e==="image"&&d.length>0?t.jsx(xt,{}):t.jsx(pt,{}):e==="image"?t.jsx(bt,{items:m,onSelect:n}):t.jsx(jt,{items:m,onSelect:n}),l.hasNextPage&&t.jsx("div",{className:"flex justify-center py-4",children:t.jsx(Y,{type:"button",variant:"outline",size:"sm",disabled:l.isFetchingNextPage,onClick:()=>l.fetchNextPage(),children:l.isFetchingNextPage?t.jsxs(t.Fragment,{children:[t.jsx(De,{size:14,className:"animate-spin"}),"Loading…"]}):"Load more"})})]})]})}function pt(){const s=C.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsxs("div",{className:"flex h-full min-h-40 flex-col items-center justify-center gap-2 py-8 text-center",children:[t.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-muted",children:t.jsx(W,{size:18,className:"text-muted-foreground"})}),t.jsx("p",{className:"text-sm font-medium",children:"No files in this bucket yet"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Drop a file above to get started."})]}),s[0]=e):e=s[0],e}function xt(){const s=C.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsxs("div",{className:"flex h-full min-h-40 flex-col items-center justify-center gap-2 py-8 text-center",children:[t.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-muted",children:t.jsx(W,{size:18,className:"text-muted-foreground"})}),t.jsx("p",{className:"text-sm font-medium",children:"No images in this bucket yet"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"The bucket has other files, but none match common image formats."})]}),s[0]=e):e=s[0],e}function Ie(s){return/\.(png|jpe?g|gif|webp|svg|avif|bmp)$/i.test(s)}function ht(s){const e=s.lastIndexOf(".");return e<0||e===s.length-1?"file":s.slice(e+1).toLowerCase()}function bt(s){const e=C.c(7),{items:n,onSelect:l}=s;let i;if(e[0]!==n||e[1]!==l){let o;e[3]!==l?(o=f=>t.jsx(Se,{item:f,variant:"image",onSelect:l},f.key),e[3]=l,e[4]=o):o=e[4],i=n.map(o),e[0]=n,e[1]=l,e[2]=i}else i=e[2];let r;return e[5]!==i?(r=t.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:i}),e[5]=i,e[6]=r):r=e[6],r}function jt(s){const e=C.c(7),{items:n,onSelect:l}=s;let i;if(e[0]!==n||e[1]!==l){let o;e[3]!==l?(o=f=>t.jsx("li",{children:t.jsx(Se,{item:f,variant:"row",onSelect:l})},f.key),e[3]=l,e[4]=o):o=e[4],i=n.map(o),e[0]=n,e[1]=l,e[2]=i}else i=e[2];let r;return e[5]!==i?(r=t.jsx("ul",{className:"divide-y divide-border/60 rounded-lg border border-border/60",children:i}),e[5]=i,e[6]=r):r=e[6],r}function Se(s){const e=C.c(58),{item:n,variant:l,onSelect:i}=s;let r;e[0]!==n.key?(r=ht(n.key),e[0]=n.key,e[1]=r):r=e[1];const o=r;if(l==="image"){let b;e[2]!==n.publicUrl||e[3]!==i?(b=()=>i(n.publicUrl),e[2]=n.publicUrl,e[3]=i,e[4]=b):b=e[4];let N;e[5]!==n.key||e[6]!==n.publicUrl?(N=t.jsx("img",{src:n.publicUrl,alt:n.key,loading:"lazy",className:"h-full w-full object-cover",onError:yt}),e[5]=n.key,e[6]=n.publicUrl,e[7]=N):N=e[7];let y;e[8]!==n.key||e[9]!==b||e[10]!==N?(y=t.jsx("button",{type:"button",onClick:b,className:"block h-full w-full transition hover:ring-2 hover:ring-primary",title:n.key,children:N}),e[8]=n.key,e[9]=b,e[10]=N,e[11]=y):y=e[11];let P;e[12]!==o?(P=t.jsx("span",{className:"pointer-events-none absolute left-1.5 top-1.5 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium uppercase text-foreground opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100",children:o}),e[12]=o,e[13]=P):P=e[13];let S;e[14]!==n||e[15]!==i?(S=t.jsx("div",{className:"absolute right-1.5 top-1.5 opacity-0 transition-opacity group-hover:opacity-100",children:t.jsx(ke,{item:n,onSelect:i})}),e[14]=n,e[15]=i,e[16]=S):S=e[16];let I;e[17]!==n.key?(I=we(n.key),e[17]=n.key,e[18]=I):I=e[18];let _;e[19]!==I?(_=t.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2 opacity-0 transition-opacity group-hover:opacity-100",children:t.jsx("p",{className:"truncate text-xs text-white",children:I})}),e[19]=I,e[20]=_):_=e[20];let k;return e[21]!==y||e[22]!==P||e[23]!==S||e[24]!==_?(k=t.jsxs("div",{className:"group relative aspect-square overflow-hidden rounded-lg border border-border/60 bg-muted",children:[y,P,S,_]}),e[21]=y,e[22]=P,e[23]=S,e[24]=_,e[25]=k):k=e[25],k}let f;e[26]!==n.publicUrl||e[27]!==i?(f=()=>i(n.publicUrl),e[26]=n.publicUrl,e[27]=i,e[28]=f):f=e[28];let a;e[29]!==n.key?(a=t.jsx("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-muted",children:Ie(n.key)?t.jsx(W,{size:16,className:"text-muted-foreground"}):t.jsx(Ae,{size:16,className:"text-muted-foreground"})}),e[29]=n.key,e[30]=a):a=e[30];let g;e[31]!==n.key?(g=we(n.key),e[31]=n.key,e[32]=g):g=e[32];let u;e[33]!==g?(u=t.jsx("p",{className:"truncate text-sm font-medium",children:g}),e[33]=g,e[34]=u):u=e[34];let x;e[35]!==n.key?(x=t.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:n.key}),e[35]=n.key,e[36]=x):x=e[36];let p;e[37]!==u||e[38]!==x?(p=t.jsxs("div",{className:"min-w-0 flex-1",children:[u,x]}),e[37]=u,e[38]=x,e[39]=p):p=e[39];let j;e[40]!==o?(j=t.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase text-muted-foreground",children:o}),e[40]=o,e[41]=j):j=e[41];let d;e[42]!==n.size?(d=wt(n.size),e[42]=n.size,e[43]=d):d=e[43];let m;e[44]!==d?(m=t.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:d}),e[44]=d,e[45]=m):m=e[45];let c;e[46]!==m||e[47]!==f||e[48]!==a||e[49]!==p||e[50]!==j?(c=t.jsxs("button",{type:"button",onClick:f,className:"flex min-w-0 flex-1 items-center gap-3 text-left",children:[a,p,j,m]}),e[46]=m,e[47]=f,e[48]=a,e[49]=p,e[50]=j,e[51]=c):c=e[51];let h;e[52]!==n||e[53]!==i?(h=t.jsx(ke,{item:n,onSelect:i}),e[52]=n,e[53]=i,e[54]=h):h=e[54];let w;return e[55]!==c||e[56]!==h?(w=t.jsxs("div",{className:"group flex items-center gap-3 px-3 py-2 transition hover:bg-muted/50",children:[c,h]}),e[55]=c,e[56]=h,e[57]=w):w=e[57],w}function yt(s){s.target.style.display="none"}function ke(s){const e=C.c(22),{item:n,onSelect:l}=s,[i,r]=$.useState(!1);let o;e[0]!==n.publicUrl?(o=async function(b){b.preventDefault(),b.stopPropagation();try{await navigator.clipboard.writeText(n.publicUrl),r(!0),window.setTimeout(()=>r(!1),1500)}catch{q.error("Failed to copy URL")}},e[0]=n.publicUrl,e[1]=o):o=e[1];const f=o;let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx(Je,{asChild:!0,children:t.jsx(Y,{type:"button",variant:"ghost",size:"icon",className:"size-7 rounded-md bg-background/80 backdrop-blur-sm",onClick:kt,"aria-label":"Asset actions",children:t.jsx(Oe,{size:14})})}),e[2]=a):a=e[2];let g;e[3]!==n.publicUrl||e[4]!==l?(g=()=>l(n.publicUrl),e[3]=n.publicUrl,e[4]=l,e[5]=g):g=e[5];let u;e[6]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx(Ne,{size:14}),e[6]=u):u=e[6];let x;e[7]!==g?(x=t.jsxs(pe,{onClick:g,children:[u,"Use this"]}),e[7]=g,e[8]=x):x=e[8];let p;e[9]!==i?(p=i?t.jsx(Ne,{size:14}):t.jsx(Ee,{size:14}),e[9]=i,e[10]=p):p=e[10];const j=i?"Copied":"Copy URL";let d;e[11]!==f||e[12]!==p||e[13]!==j?(d=t.jsxs(pe,{onClick:f,children:[p,j]}),e[11]=f,e[12]=p,e[13]=j,e[14]=d):d=e[14];let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsx(Re,{size:14}),e[15]=m):m=e[15];let c;e[16]!==n.publicUrl?(c=t.jsx(pe,{asChild:!0,children:t.jsxs("a",{href:n.publicUrl,target:"_blank",rel:"noreferrer",onClick:vt,children:[m,"Open in new tab"]})}),e[16]=n.publicUrl,e[17]=c):c=e[17];let h;return e[18]!==c||e[19]!==x||e[20]!==d?(h=t.jsxs(Qe,{children:[a,t.jsxs(qe,{align:"end",onClick:Nt,children:[x,d,c]})]}),e[18]=c,e[19]=x,e[20]=d,e[21]=h):h=e[21],h}function vt(s){return s.stopPropagation()}function Nt(s){return s.stopPropagation()}function kt(s){return s.stopPropagation()}function we(s){const e=s.split("/");return e[e.length-1]??s}function wt(s){return s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`}function Ct(s,e){if(!e)return null;const n=e.toLowerCase();return s.find(l=>{const i=l.bucket.toLowerCase();return l.siteSlug?.toLowerCase()===n||i===n||i===`deco-assets-${n}`})??null}function It(s){try{const e=new URL(s).pathname;return decodeURIComponent(e.split("/").pop()??s)}catch{return s.split("/").pop()??s}}function St(s){const e=s.lastIndexOf(".");return e<0||e===s.length-1?"":s.slice(e+1).toLowerCase()}const _t=new Set(["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/avif"]);function Yt(s){const e=C.c(86),{schema:n,value:l,onChange:i,path:r,label:o,sandbox:f}=s,a=it(l),[g,u]=$.useState(!1),[x,p]=$.useState(!1),[j,d]=$.useState(!1),[m,c]=$.useState(!1),h=a?It(a):"",w=h?St(h):"",b=tt(),N=Ce();let y;e[0]!==b.data?.configs?(y=b.data?.configs??[],e[0]=b.data?.configs,e[1]=y):y=e[1];const P=f?.siteSlug;let S;e[2]!==y||e[3]!==P?(S=Ct(y,P),e[2]=y,e[3]=P,e[4]=S):S=e[4];const I=S;let _;e[5]!==i||e[6]!==c||e[7]!==d?(_=function(v){d(!1),c(!1),i(v)},e[5]=i,e[6]=c,e[7]=d,e[8]=_):_=e[8];const k=_;let H;e[9]!==b.data?.configs||e[10]!==I?(H=function(){if(I)return I.id;const v=b.data?.configs??[];if(v.length===1)return v[0].id;if(v.length===0)return null;const D=typeof window<"u"?window.localStorage.getItem(ye):null;return v.some(ie=>ie.id===D)?D:null},e[9]=b.data?.configs,e[10]=I,e[11]=H):H=e[11];const le=H;let X;e[12]!==le||e[13]!==u||e[14]!==k||e[15]!==N?(X=async function(v){if(!v)return;const D=Array.from(v).filter(Pt);if(D.length===0){q.error("Only image files are accepted here.");return}const ie=le();if(!ie){u(!0);return}try{const ge=await N.mutateAsync({configId:ie,file:D[0]});k(ge.publicUrl),D.length>1&&q.info(`Uploaded ${D[0].name}; extra files were ignored (single-select field).`)}catch(ge){const ve=ge;q.error(ve instanceof Error?ve.message:"Upload failed")}},e[12]=le,e[13]=u,e[14]=k,e[15]=N,e[16]=X):X=e[16];const re=X;let Z;e[17]!==p?(Z=function(v){v.preventDefault(),v.dataTransfer.types.includes("Files")&&p(!0)},e[17]=p,e[18]=Z):Z=e[18];const oe=Z;let ee;e[19]!==p?(ee=function(v){v.currentTarget===v.target&&p(!1)},e[19]=p,e[20]=ee):ee=e[20];const ae=ee;let te;e[21]!==re||e[22]!==p?(te=function(v){v.preventDefault(),p(!1),re(v.dataTransfer.files)},e[21]=re,e[22]=p,e[23]=te):te=e[23];const ce=te;let z;e[24]!==o||e[25]!==r?(z=t.jsx(Te,{htmlFor:r,className:"text-muted-foreground",children:o}),e[24]=o,e[25]=r,e[26]=z):z=e[26];let F;e[27]!==n.description?(F=n.description&&t.jsx("p",{className:"text-xs leading-normal text-muted-foreground",children:n.description}),e[27]=n.description,e[28]=F):F=e[28];let T;e[29]!==z||e[30]!==F?(T=t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[z,F]}),e[29]=z,e[30]=F,e[31]=T):T=e[31];const de=x&&"border-primary ring-2 ring-primary/30",fe=N.isPending&&"pointer-events-none opacity-60";let L;e[32]!==de||e[33]!==fe?(L=he("group relative w-full overflow-hidden rounded-xl border border-border/60 bg-muted/30 transition",de,fe),e[32]=de,e[33]=fe,e[34]=L):L=e[34];let E;e[35]!==w||e[36]!==h||e[37]!==m||e[38]!==j||e[39]!==o||e[40]!==c||e[41]!==d||e[42]!==u||e[43]!==a||e[44]!==N.isPending?(E=a?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"relative h-40 w-full bg-[image:linear-gradient(45deg,rgba(0,0,0,0.04)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.04)_75%),linear-gradient(45deg,rgba(0,0,0,0.04)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.04)_75%)] bg-[position:0_0,8px_8px] [background-size:16px_16px]",children:[!m&&t.jsx("img",{src:a,alt:o,className:he("h-full w-full object-contain transition-opacity",!j&&"opacity-0"),onLoad:()=>d(!0),onError:()=>c(!0)},a),m&&t.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-1 text-muted-foreground",children:[t.jsx(W,{size:20}),t.jsx("p",{className:"text-xs",children:"Preview unavailable"})]}),!j&&!m&&t.jsx("div",{className:"absolute inset-0 animate-pulse bg-muted/60"})]}),t.jsxs("div",{className:"flex items-center gap-2 border-t border-border/60 bg-background/50 px-3 py-2",children:[t.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium",children:h}),w&&t.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase text-muted-foreground",children:w})]})]}):t.jsxs("button",{type:"button",onClick:()=>u(!0),className:"flex h-40 w-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground hover:bg-muted/60 hover:text-foreground",children:[t.jsx(W,{size:20}),t.jsx("span",{className:"text-sm font-medium",children:N.isPending?"Uploading…":"Drop an image or click to browse"}),t.jsx("span",{className:"text-xs text-muted-foreground",children:"PNG, JPEG, WebP, GIF, SVG, AVIF — up to 100 MB"})]}),e[35]=w,e[36]=h,e[37]=m,e[38]=j,e[39]=o,e[40]=c,e[41]=d,e[42]=u,e[43]=a,e[44]=N.isPending,e[45]=E):E=e[45];let O;e[46]!==x?(O=x&&t.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center bg-primary/10 backdrop-blur-[1px]",children:t.jsx("span",{className:"rounded-md bg-background px-3 py-1.5 text-xs font-medium shadow",children:"Drop to upload"})}),e[46]=x,e[47]=O):O=e[47];let A;e[48]!==ae||e[49]!==oe||e[50]!==ce||e[51]!==L||e[52]!==E||e[53]!==O?(A=t.jsxs("div",{onDragOver:oe,onDragLeave:ae,onDrop:ce,className:L,children:[E,O]}),e[48]=ae,e[49]=oe,e[50]=ce,e[51]=L,e[52]=E,e[53]=O,e[54]=A):A=e[54];let R;e[55]!==k?(R=U=>k(U.target.value),e[55]=k,e[56]=R):R=e[56];let B;e[57]!==r||e[58]!==a||e[59]!==R?(B=t.jsx(Fe,{id:r,type:"url",value:a,onChange:R,placeholder:"https://...",className:"h-9 min-w-0 flex-1"}),e[57]=r,e[58]=a,e[59]=R,e[60]=B):B=e[60];let G;e[61]!==u?(G=()=>u(!0),e[61]=u,e[62]=G):G=e[62];let se;e[63]===Symbol.for("react.memo_cache_sentinel")?(se=t.jsx(je,{size:14}),e[63]=se):se=e[63];const ue=a?"Replace":"Browse";let M;e[64]!==G||e[65]!==ue?(M=t.jsxs(Y,{type:"button",variant:"outline",size:"sm",onClick:G,className:"h-9 shrink-0",children:[se,ue]}),e[64]=G,e[65]=ue,e[66]=M):M=e[66];let V;e[67]!==k||e[68]!==a?(V=a&&t.jsx(Y,{type:"button",variant:"ghost",size:"sm",onClick:()=>k(""),className:"h-9 shrink-0","aria-label":"Remove image",children:t.jsx(ze,{size:14})}),e[67]=k,e[68]=a,e[69]=V):V=e[69];let K;e[70]!==B||e[71]!==M||e[72]!==V?(K=t.jsxs("div",{className:"flex w-full min-w-0 items-center gap-2",children:[B,M,V]}),e[70]=B,e[71]=M,e[72]=V,e[73]=K):K=e[73];let J;e[74]!==k?(J=U=>k(U),e[74]=k,e[75]=J):J=e[75];const me=I?.id??null;let Q;e[76]!==g||e[77]!==u||e[78]!==J||e[79]!==me?(Q=t.jsx(at,{open:g,onOpenChange:u,mode:"image",onSelect:J,lockedConfigId:me}),e[76]=g,e[77]=u,e[78]=J,e[79]=me,e[80]=Q):Q=e[80];let ne;return e[81]!==T||e[82]!==A||e[83]!==K||e[84]!==Q?(ne=t.jsxs("div",{className:"grid w-full min-w-0 grid-cols-[minmax(0,1fr)] gap-2",children:[T,A,K,Q]}),e[81]=T,e[82]=A,e[83]=K,e[84]=Q,e[85]=ne):ne=e[85],ne}function Pt(s){return _t.has(s.type||"")}export{at as F,Yt as I,ye as L,it as e,Ct as m,Ce as u};
|
|
1
|
+
import{e as C,p as be,a as _e,K as Pe,j as t,a1 as Ue,r as $,B as Y,L as $e,c as he,l as De,n as q}from"./index-COlSsy5J.js";import{a as W}from"./Tool01-B4m3Gnpd.js";import{s as ze}from"./Trash01-BDNQcRq9.js";import{i as je}from"./Upload01-CuyZwIAy.js";import{I as Fe}from"./input-CuVtlRv5.js";import{L as Te}from"./label-BCRIEPd0.js";import{i as Le}from"./AlertCircle-Dnqz3IxM.js";import{i as Ne}from"./ChevronUp-CjDXfs3K.js";import{a as Ee}from"./Eye-DifA9NHq.js";import{a as Oe}from"./DotsVertical-Ci1mVPsb.js";import{N as Ae}from"./agent-icon-B1KjkGhC.js";import{n as Re}from"./LinkExternal01-DwIqUvLe.js";import{d as Be,a as Ge,b as Me,D as Ve,c as Ke}from"./dialog-BMBVdX8K.js";import{c as pe,a as Je,D as Qe,b as qe}from"./dropdown-menu-gXn3xVef.js";import{S as Ye}from"./skeleton-Bo_6Cq99.js";import{T as We,a as He,b as Xe,c as Ze}from"./tabs-DAvIQWby.js";import{u as et,c as tt}from"./use-file-configs-DKTLvOxt.js";import{u as st}from"./useInfiniteQuery-BS_m7Y7W.js";import{u as nt}from"./studio-tools-CyTucPcW.js";function it(s){if(typeof s=="string")return s;if(!s||typeof s!="object")return"";const e=s;if(Array.isArray(e.variants)){const n=e.variants,l=n.find(r=>r.rule?.__resolveType?.includes("always"));if(typeof l?.value=="string")return l.value;const i=n.find(r=>typeof r.value=="string");if(i)return i.value}return typeof e.src=="string"?e.src:typeof e.url=="string"?e.url:typeof e.value=="string"?e.value:""}function lt(s){const e=C.c(10),{org:n}=be(),l=nt();let i;e[0]!==n.id||e[1]!==s.configId?(i=Pe.filePickerObjects(n.id,s.configId),e[0]=n.id,e[1]=s.configId,e[2]=i):i=e[2];const r=s.enabled!==!1&&!!s.configId;let o;e[3]!==s.configId||e[4]!==l?(o=async a=>{const{pageParam:g}=a;return await l.call("FILE_OBJECTS_LIST",{configId:s.configId,cursor:g??void 0})},e[3]=s.configId,e[4]=l,e[5]=o):o=e[5];let f;return e[6]!==i||e[7]!==r||e[8]!==o?(f={queryKey:i,enabled:r,staleTime:3e4,initialPageParam:null,queryFn:o,getNextPageParam:rt},e[6]=i,e[7]=r,e[8]=o,e[9]=f):f=e[9],st(f)}function rt(s){return s.nextCursor??void 0}function Ce(){const s=C.c(2),{org:e}=be();let n;return s[0]!==e?(n={mutationFn:async l=>{const i=l.file.type||"application/octet-stream",r=await fetch(`/api/${encodeURIComponent(e.slug)}/file-configs/${encodeURIComponent(l.configId)}/upload?filename=${encodeURIComponent(l.file.name)}`,{method:"POST",headers:{"Content-Type":i},body:l.file});if(!r.ok){const o=await r.text().catch(ot);let f=`${r.status} ${r.statusText}`;try{const a=JSON.parse(o);a.message&&(f=a.message)}catch{o&&(f=o.slice(0,200))}throw new Error(`Upload failed: ${f}`)}return await r.json()}},s[0]=e,s[1]=n):n=s[1],_e(n)}function ot(){return""}const ye="file-picker:last-config-id";function at(s){const e=C.c(19),n=s.mode==="image"?"Pick an image":"Pick a file";let l;e[0]!==n?(l=t.jsx(Ge,{children:n}),e[0]=n,e[1]=l):l=e[1];let i;e[2]===Symbol.for("react.memo_cache_sentinel")?(i=t.jsx(Me,{children:"Upload a new file or pick one previously uploaded to a configured bucket."}),e[2]=i):i=e[2];let r;e[3]!==l?(r=t.jsxs(Ve,{children:[l,i]}),e[3]=l,e[4]=r):r=e[4];let o;e[5]===Symbol.for("react.memo_cache_sentinel")?(o=t.jsx(Ye,{className:"h-64 w-full"}),e[5]=o):o=e[5];let f;e[6]!==s?(f=x=>{s.onSelect(x),s.onOpenChange(!1)},e[6]=s,e[7]=f):f=e[7];let a;e[8]!==s.lockedConfigId||e[9]!==s.mode||e[10]!==f?(a=t.jsx(Ue,{fallback:ct,children:t.jsx($.Suspense,{fallback:o,children:t.jsx(ft,{mode:s.mode,lockedConfigId:s.lockedConfigId,onSelect:f})})}),e[8]=s.lockedConfigId,e[9]=s.mode,e[10]=f,e[11]=a):a=e[11];let g;e[12]!==r||e[13]!==a?(g=t.jsxs(Ke,{className:"sm:max-w-3xl max-h-[85vh] overflow-hidden flex flex-col",children:[r,a]}),e[12]=r,e[13]=a,e[14]=g):g=e[14];let u;return e[15]!==s.onOpenChange||e[16]!==s.open||e[17]!==g?(u=t.jsx(Be,{open:s.open,onOpenChange:s.onOpenChange,children:g}),e[15]=s.onOpenChange,e[16]=s.open,e[17]=g,e[18]=u):u=e[18],u}function ct(s){const{error:e}=s;return t.jsx(dt,{error:e??new Error("Failed to load buckets")})}function dt(s){const e=C.c(3),{error:n}=s;let l;e[0]===Symbol.for("react.memo_cache_sentinel")?(l=t.jsx(Le,{size:16}),e[0]=l):l=e[0];let i;return e[1]!==n.message?(i=t.jsxs("div",{className:"p-4 rounded-md bg-destructive/10 text-destructive flex items-center gap-2",children:[l,t.jsx("span",{className:"text-sm font-medium",children:n.message})]}),e[1]=n.message,e[2]=i):i=e[2],i}function ft(s){const e=C.c(32),{mode:n,lockedConfigId:l,onSelect:i}=s,r=et();if(r.length===0){let d;return e[0]===Symbol.for("react.memo_cache_sentinel")?(d=t.jsx(gt,{}),e[0]=d):d=e[0],d}if(l){let d;if(e[1]!==r||e[2]!==l){let c;e[4]!==l?(c=h=>h.id===l,e[4]=l,e[5]=c):c=e[5],d=r.find(c),e[1]=r,e[2]=l,e[3]=d}else d=e[3];const m=d;if(m){let c;return e[6]!==m||e[7]!==n||e[8]!==i?(c=t.jsx(xe,{config:m,mode:n,onSelect:i}),e[6]=m,e[7]=n,e[8]=i,e[9]=c):c=e[9],c}}if(r.length===1){const d=r[0];let m;return e[10]!==d||e[11]!==n||e[12]!==i?(m=t.jsx(xe,{config:d,mode:n,onSelect:i}),e[10]=d,e[11]=n,e[12]=i,e[13]=m):m=e[13],m}let o;e[14]===Symbol.for("react.memo_cache_sentinel")?(o=typeof window<"u"?window.localStorage.getItem(ye):null,e[14]=o):o=e[14];const f=o;let a;e[15]!==r?(a=r.find(d=>d.id===f)?.id??r[0].id,e[15]=r,e[16]=a):a=e[16];const g=a;let u;e[17]!==r?(u=r.map(ut),e[17]=r,e[18]=u):u=e[18];let x;e[19]!==u?(x=t.jsx(He,{className:"self-start",children:u}),e[19]=u,e[20]=x):x=e[20];let p;if(e[21]!==r||e[22]!==n||e[23]!==i){let d;e[25]!==n||e[26]!==i?(d=m=>t.jsx(Xe,{value:m.id,className:"min-h-0 flex-1 overflow-hidden",children:t.jsx(xe,{config:m,mode:n,onSelect:i})},m.id),e[25]=n,e[26]=i,e[27]=d):d=e[27],p=r.map(d),e[21]=r,e[22]=n,e[23]=i,e[24]=p}else p=e[24];let j;return e[28]!==g||e[29]!==x||e[30]!==p?(j=t.jsxs(Ze,{defaultValue:g,onValueChange:mt,className:"min-h-0 flex-1 flex flex-col",children:[x,p]}),e[28]=g,e[29]=x,e[30]=p,e[31]=j):j=e[31],j}function ut(s){return t.jsx(We,{value:s.id,children:s.name},s.id)}function mt(s){typeof window<"u"&&window.localStorage.setItem(ye,s)}function gt(){const s=C.c(4),{org:e}=be();let n,l;s[0]===Symbol.for("react.memo_cache_sentinel")?(n=t.jsx("div",{className:"size-12 rounded-full bg-muted flex items-center justify-center",children:t.jsx(je,{size:20,className:"text-muted-foreground"})}),l=t.jsxs("div",{children:[t.jsx("p",{className:"font-medium text-sm",children:"No bucket configured"}),t.jsx("p",{className:"text-xs text-muted-foreground mt-1 max-w-sm",children:"Add an S3-compatible bucket in Settings before you can upload files."})]}),s[0]=n,s[1]=l):(n=s[0],l=s[1]);let i;return s[2]!==e.slug?(i=t.jsxs("div",{className:"rounded-xl border border-dashed border-border/60 p-10 flex flex-col items-center justify-center text-center gap-3",children:[n,l,t.jsx(Y,{asChild:!0,size:"sm",className:"mt-2",children:t.jsx($e,{to:"/$org/settings/files",params:{org:e.slug},children:"Configure a bucket"})})]}),s[2]=e.slug,s[3]=i):i=s[3],i}function xe({config:s,mode:e,onSelect:n}){const l=lt({configId:s.id}),i=Ce(),[r,o]=$.useState(!1),f=$.useRef(null),a=e==="image"?"image/*":void 0;async function g(c){if(!c)return;const h=Array.from(c);if(h.length===0)return;let w=null;const b=[];for(const N of h)try{const y=await i.mutateAsync({configId:s.id,file:N});w??=y.publicUrl}catch(y){b.push(`${N.name} (${y instanceof Error?y.message:"upload failed"})`)}await l.refetch(),b.length>0&&q.error(b.length===h.length?`Upload failed: ${b.join("; ")}`:`Some files failed: ${b.join("; ")}`),w&&n(w)}function u(c){c.preventDefault(),o(!0)}function x(){o(!1)}function p(c){c.preventDefault(),o(!1),g(c.dataTransfer.files)}const d=(l.data?.pages??[]).flatMap(c=>c.items),m=d.filter(c=>e==="image"?Ie(c.key):!0);return t.jsxs("div",{className:"flex flex-col gap-3 min-h-0 h-full",children:[t.jsxs("button",{type:"button",onClick:()=>f.current?.click(),onDragOver:u,onDragLeave:x,onDrop:p,className:he("rounded-xl border border-dashed border-border/60 p-6 flex flex-col items-center justify-center gap-2 text-center transition-colors",r&&"border-primary bg-primary/5",i.isPending&&"opacity-60 pointer-events-none"),children:[t.jsx(je,{size:18,className:"text-muted-foreground"}),t.jsx("p",{className:"text-sm font-medium",children:i.isPending?"Uploading…":"Drop files here or click to upload"}),t.jsxs("p",{className:"text-xs text-muted-foreground",children:["Up to 100 MB."," ",e==="image"?"Images only (PNG, JPEG, WebP, GIF, SVG, AVIF).":"Common image, video, audio, and document types."]}),t.jsx("input",{ref:f,type:"file",accept:a,multiple:!0,className:"hidden",onChange:c=>{const h=Array.from(c.target.files??[]);c.target.value="",g(h)}})]}),l.isFetching&&!l.isFetchingNextPage?t.jsx("div",{className:"flex justify-end",children:t.jsx("span",{className:"text-xs text-muted-foreground",children:"Loading…"})}):null,t.jsxs("div",{className:"min-h-0 flex-1 overflow-y-auto pr-1",children:[m.length===0?e==="image"&&d.length>0?t.jsx(xt,{}):t.jsx(pt,{}):e==="image"?t.jsx(bt,{items:m,onSelect:n}):t.jsx(jt,{items:m,onSelect:n}),l.hasNextPage&&t.jsx("div",{className:"flex justify-center py-4",children:t.jsx(Y,{type:"button",variant:"outline",size:"sm",disabled:l.isFetchingNextPage,onClick:()=>l.fetchNextPage(),children:l.isFetchingNextPage?t.jsxs(t.Fragment,{children:[t.jsx(De,{size:14,className:"animate-spin"}),"Loading…"]}):"Load more"})})]})]})}function pt(){const s=C.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsxs("div",{className:"flex h-full min-h-40 flex-col items-center justify-center gap-2 py-8 text-center",children:[t.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-muted",children:t.jsx(W,{size:18,className:"text-muted-foreground"})}),t.jsx("p",{className:"text-sm font-medium",children:"No files in this bucket yet"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"Drop a file above to get started."})]}),s[0]=e):e=s[0],e}function xt(){const s=C.c(1);let e;return s[0]===Symbol.for("react.memo_cache_sentinel")?(e=t.jsxs("div",{className:"flex h-full min-h-40 flex-col items-center justify-center gap-2 py-8 text-center",children:[t.jsx("div",{className:"flex size-10 items-center justify-center rounded-full bg-muted",children:t.jsx(W,{size:18,className:"text-muted-foreground"})}),t.jsx("p",{className:"text-sm font-medium",children:"No images in this bucket yet"}),t.jsx("p",{className:"text-xs text-muted-foreground",children:"The bucket has other files, but none match common image formats."})]}),s[0]=e):e=s[0],e}function Ie(s){return/\.(png|jpe?g|gif|webp|svg|avif|bmp)$/i.test(s)}function ht(s){const e=s.lastIndexOf(".");return e<0||e===s.length-1?"file":s.slice(e+1).toLowerCase()}function bt(s){const e=C.c(7),{items:n,onSelect:l}=s;let i;if(e[0]!==n||e[1]!==l){let o;e[3]!==l?(o=f=>t.jsx(Se,{item:f,variant:"image",onSelect:l},f.key),e[3]=l,e[4]=o):o=e[4],i=n.map(o),e[0]=n,e[1]=l,e[2]=i}else i=e[2];let r;return e[5]!==i?(r=t.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3",children:i}),e[5]=i,e[6]=r):r=e[6],r}function jt(s){const e=C.c(7),{items:n,onSelect:l}=s;let i;if(e[0]!==n||e[1]!==l){let o;e[3]!==l?(o=f=>t.jsx("li",{children:t.jsx(Se,{item:f,variant:"row",onSelect:l})},f.key),e[3]=l,e[4]=o):o=e[4],i=n.map(o),e[0]=n,e[1]=l,e[2]=i}else i=e[2];let r;return e[5]!==i?(r=t.jsx("ul",{className:"divide-y divide-border/60 rounded-lg border border-border/60",children:i}),e[5]=i,e[6]=r):r=e[6],r}function Se(s){const e=C.c(58),{item:n,variant:l,onSelect:i}=s;let r;e[0]!==n.key?(r=ht(n.key),e[0]=n.key,e[1]=r):r=e[1];const o=r;if(l==="image"){let b;e[2]!==n.publicUrl||e[3]!==i?(b=()=>i(n.publicUrl),e[2]=n.publicUrl,e[3]=i,e[4]=b):b=e[4];let N;e[5]!==n.key||e[6]!==n.publicUrl?(N=t.jsx("img",{src:n.publicUrl,alt:n.key,loading:"lazy",className:"h-full w-full object-cover",onError:yt}),e[5]=n.key,e[6]=n.publicUrl,e[7]=N):N=e[7];let y;e[8]!==n.key||e[9]!==b||e[10]!==N?(y=t.jsx("button",{type:"button",onClick:b,className:"block h-full w-full transition hover:ring-2 hover:ring-primary",title:n.key,children:N}),e[8]=n.key,e[9]=b,e[10]=N,e[11]=y):y=e[11];let P;e[12]!==o?(P=t.jsx("span",{className:"pointer-events-none absolute left-1.5 top-1.5 rounded bg-background/80 px-1.5 py-0.5 text-[10px] font-medium uppercase text-foreground opacity-0 backdrop-blur-sm transition-opacity group-hover:opacity-100",children:o}),e[12]=o,e[13]=P):P=e[13];let S;e[14]!==n||e[15]!==i?(S=t.jsx("div",{className:"absolute right-1.5 top-1.5 opacity-0 transition-opacity group-hover:opacity-100",children:t.jsx(ke,{item:n,onSelect:i})}),e[14]=n,e[15]=i,e[16]=S):S=e[16];let I;e[17]!==n.key?(I=we(n.key),e[17]=n.key,e[18]=I):I=e[18];let _;e[19]!==I?(_=t.jsx("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/70 to-transparent p-2 opacity-0 transition-opacity group-hover:opacity-100",children:t.jsx("p",{className:"truncate text-xs text-white",children:I})}),e[19]=I,e[20]=_):_=e[20];let k;return e[21]!==y||e[22]!==P||e[23]!==S||e[24]!==_?(k=t.jsxs("div",{className:"group relative aspect-square overflow-hidden rounded-lg border border-border/60 bg-muted",children:[y,P,S,_]}),e[21]=y,e[22]=P,e[23]=S,e[24]=_,e[25]=k):k=e[25],k}let f;e[26]!==n.publicUrl||e[27]!==i?(f=()=>i(n.publicUrl),e[26]=n.publicUrl,e[27]=i,e[28]=f):f=e[28];let a;e[29]!==n.key?(a=t.jsx("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-muted",children:Ie(n.key)?t.jsx(W,{size:16,className:"text-muted-foreground"}):t.jsx(Ae,{size:16,className:"text-muted-foreground"})}),e[29]=n.key,e[30]=a):a=e[30];let g;e[31]!==n.key?(g=we(n.key),e[31]=n.key,e[32]=g):g=e[32];let u;e[33]!==g?(u=t.jsx("p",{className:"truncate text-sm font-medium",children:g}),e[33]=g,e[34]=u):u=e[34];let x;e[35]!==n.key?(x=t.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:n.key}),e[35]=n.key,e[36]=x):x=e[36];let p;e[37]!==u||e[38]!==x?(p=t.jsxs("div",{className:"min-w-0 flex-1",children:[u,x]}),e[37]=u,e[38]=x,e[39]=p):p=e[39];let j;e[40]!==o?(j=t.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase text-muted-foreground",children:o}),e[40]=o,e[41]=j):j=e[41];let d;e[42]!==n.size?(d=wt(n.size),e[42]=n.size,e[43]=d):d=e[43];let m;e[44]!==d?(m=t.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:d}),e[44]=d,e[45]=m):m=e[45];let c;e[46]!==m||e[47]!==f||e[48]!==a||e[49]!==p||e[50]!==j?(c=t.jsxs("button",{type:"button",onClick:f,className:"flex min-w-0 flex-1 items-center gap-3 text-left",children:[a,p,j,m]}),e[46]=m,e[47]=f,e[48]=a,e[49]=p,e[50]=j,e[51]=c):c=e[51];let h;e[52]!==n||e[53]!==i?(h=t.jsx(ke,{item:n,onSelect:i}),e[52]=n,e[53]=i,e[54]=h):h=e[54];let w;return e[55]!==c||e[56]!==h?(w=t.jsxs("div",{className:"group flex items-center gap-3 px-3 py-2 transition hover:bg-muted/50",children:[c,h]}),e[55]=c,e[56]=h,e[57]=w):w=e[57],w}function yt(s){s.target.style.display="none"}function ke(s){const e=C.c(22),{item:n,onSelect:l}=s,[i,r]=$.useState(!1);let o;e[0]!==n.publicUrl?(o=async function(b){b.preventDefault(),b.stopPropagation();try{await navigator.clipboard.writeText(n.publicUrl),r(!0),window.setTimeout(()=>r(!1),1500)}catch{q.error("Failed to copy URL")}},e[0]=n.publicUrl,e[1]=o):o=e[1];const f=o;let a;e[2]===Symbol.for("react.memo_cache_sentinel")?(a=t.jsx(Je,{asChild:!0,children:t.jsx(Y,{type:"button",variant:"ghost",size:"icon",className:"size-7 rounded-md bg-background/80 backdrop-blur-sm",onClick:kt,"aria-label":"Asset actions",children:t.jsx(Oe,{size:14})})}),e[2]=a):a=e[2];let g;e[3]!==n.publicUrl||e[4]!==l?(g=()=>l(n.publicUrl),e[3]=n.publicUrl,e[4]=l,e[5]=g):g=e[5];let u;e[6]===Symbol.for("react.memo_cache_sentinel")?(u=t.jsx(Ne,{size:14}),e[6]=u):u=e[6];let x;e[7]!==g?(x=t.jsxs(pe,{onClick:g,children:[u,"Use this"]}),e[7]=g,e[8]=x):x=e[8];let p;e[9]!==i?(p=i?t.jsx(Ne,{size:14}):t.jsx(Ee,{size:14}),e[9]=i,e[10]=p):p=e[10];const j=i?"Copied":"Copy URL";let d;e[11]!==f||e[12]!==p||e[13]!==j?(d=t.jsxs(pe,{onClick:f,children:[p,j]}),e[11]=f,e[12]=p,e[13]=j,e[14]=d):d=e[14];let m;e[15]===Symbol.for("react.memo_cache_sentinel")?(m=t.jsx(Re,{size:14}),e[15]=m):m=e[15];let c;e[16]!==n.publicUrl?(c=t.jsx(pe,{asChild:!0,children:t.jsxs("a",{href:n.publicUrl,target:"_blank",rel:"noreferrer",onClick:vt,children:[m,"Open in new tab"]})}),e[16]=n.publicUrl,e[17]=c):c=e[17];let h;return e[18]!==c||e[19]!==x||e[20]!==d?(h=t.jsxs(Qe,{children:[a,t.jsxs(qe,{align:"end",onClick:Nt,children:[x,d,c]})]}),e[18]=c,e[19]=x,e[20]=d,e[21]=h):h=e[21],h}function vt(s){return s.stopPropagation()}function Nt(s){return s.stopPropagation()}function kt(s){return s.stopPropagation()}function we(s){const e=s.split("/");return e[e.length-1]??s}function wt(s){return s<1024?`${s} B`:s<1024*1024?`${(s/1024).toFixed(1)} KB`:`${(s/(1024*1024)).toFixed(1)} MB`}function Ct(s,e){if(!e)return null;const n=e.toLowerCase();return s.find(l=>{const i=l.bucket.toLowerCase();return l.siteSlug?.toLowerCase()===n||i===n||i===`deco-assets-${n}`})??null}function It(s){try{const e=new URL(s).pathname;return decodeURIComponent(e.split("/").pop()??s)}catch{return s.split("/").pop()??s}}function St(s){const e=s.lastIndexOf(".");return e<0||e===s.length-1?"":s.slice(e+1).toLowerCase()}const _t=new Set(["image/png","image/jpeg","image/gif","image/webp","image/svg+xml","image/avif"]);function Yt(s){const e=C.c(86),{schema:n,value:l,onChange:i,path:r,label:o,sandbox:f}=s,a=it(l),[g,u]=$.useState(!1),[x,p]=$.useState(!1),[j,d]=$.useState(!1),[m,c]=$.useState(!1),h=a?It(a):"",w=h?St(h):"",b=tt(),N=Ce();let y;e[0]!==b.data?.configs?(y=b.data?.configs??[],e[0]=b.data?.configs,e[1]=y):y=e[1];const P=f?.siteSlug;let S;e[2]!==y||e[3]!==P?(S=Ct(y,P),e[2]=y,e[3]=P,e[4]=S):S=e[4];const I=S;let _;e[5]!==i||e[6]!==c||e[7]!==d?(_=function(v){d(!1),c(!1),i(v)},e[5]=i,e[6]=c,e[7]=d,e[8]=_):_=e[8];const k=_;let H;e[9]!==b.data?.configs||e[10]!==I?(H=function(){if(I)return I.id;const v=b.data?.configs??[];if(v.length===1)return v[0].id;if(v.length===0)return null;const D=typeof window<"u"?window.localStorage.getItem(ye):null;return v.some(ie=>ie.id===D)?D:null},e[9]=b.data?.configs,e[10]=I,e[11]=H):H=e[11];const le=H;let X;e[12]!==le||e[13]!==u||e[14]!==k||e[15]!==N?(X=async function(v){if(!v)return;const D=Array.from(v).filter(Pt);if(D.length===0){q.error("Only image files are accepted here.");return}const ie=le();if(!ie){u(!0);return}try{const ge=await N.mutateAsync({configId:ie,file:D[0]});k(ge.publicUrl),D.length>1&&q.info(`Uploaded ${D[0].name}; extra files were ignored (single-select field).`)}catch(ge){const ve=ge;q.error(ve instanceof Error?ve.message:"Upload failed")}},e[12]=le,e[13]=u,e[14]=k,e[15]=N,e[16]=X):X=e[16];const re=X;let Z;e[17]!==p?(Z=function(v){v.preventDefault(),v.dataTransfer.types.includes("Files")&&p(!0)},e[17]=p,e[18]=Z):Z=e[18];const oe=Z;let ee;e[19]!==p?(ee=function(v){v.currentTarget===v.target&&p(!1)},e[19]=p,e[20]=ee):ee=e[20];const ae=ee;let te;e[21]!==re||e[22]!==p?(te=function(v){v.preventDefault(),p(!1),re(v.dataTransfer.files)},e[21]=re,e[22]=p,e[23]=te):te=e[23];const ce=te;let z;e[24]!==o||e[25]!==r?(z=t.jsx(Te,{htmlFor:r,className:"text-muted-foreground",children:o}),e[24]=o,e[25]=r,e[26]=z):z=e[26];let F;e[27]!==n.description?(F=n.description&&t.jsx("p",{className:"text-xs leading-normal text-muted-foreground",children:n.description}),e[27]=n.description,e[28]=F):F=e[28];let T;e[29]!==z||e[30]!==F?(T=t.jsxs("div",{className:"min-w-0 space-y-0.5",children:[z,F]}),e[29]=z,e[30]=F,e[31]=T):T=e[31];const de=x&&"border-primary ring-2 ring-primary/30",fe=N.isPending&&"pointer-events-none opacity-60";let L;e[32]!==de||e[33]!==fe?(L=he("group relative w-full overflow-hidden rounded-xl border border-border/60 bg-muted/30 transition",de,fe),e[32]=de,e[33]=fe,e[34]=L):L=e[34];let E;e[35]!==w||e[36]!==h||e[37]!==m||e[38]!==j||e[39]!==o||e[40]!==c||e[41]!==d||e[42]!==u||e[43]!==a||e[44]!==N.isPending?(E=a?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"relative h-40 w-full bg-[image:linear-gradient(45deg,rgba(0,0,0,0.04)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.04)_75%),linear-gradient(45deg,rgba(0,0,0,0.04)_25%,transparent_25%,transparent_75%,rgba(0,0,0,0.04)_75%)] bg-[position:0_0,8px_8px] [background-size:16px_16px]",children:[!m&&t.jsx("img",{src:a,alt:o,className:he("h-full w-full object-contain transition-opacity",!j&&"opacity-0"),onLoad:()=>d(!0),onError:()=>c(!0)},a),m&&t.jsxs("div",{className:"flex h-full w-full flex-col items-center justify-center gap-1 text-muted-foreground",children:[t.jsx(W,{size:20}),t.jsx("p",{className:"text-xs",children:"Preview unavailable"})]}),!j&&!m&&t.jsx("div",{className:"absolute inset-0 animate-pulse bg-muted/60"})]}),t.jsxs("div",{className:"flex items-center gap-2 border-t border-border/60 bg-background/50 px-3 py-2",children:[t.jsx("span",{className:"min-w-0 flex-1 truncate text-xs font-medium",children:h}),w&&t.jsx("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium uppercase text-muted-foreground",children:w})]})]}):t.jsxs("button",{type:"button",onClick:()=>u(!0),className:"flex h-40 w-full flex-col items-center justify-center gap-2 text-sm text-muted-foreground hover:bg-muted/60 hover:text-foreground",children:[t.jsx(W,{size:20}),t.jsx("span",{className:"text-sm font-medium",children:N.isPending?"Uploading…":"Drop an image or click to browse"}),t.jsx("span",{className:"text-xs text-muted-foreground",children:"PNG, JPEG, WebP, GIF, SVG, AVIF — up to 100 MB"})]}),e[35]=w,e[36]=h,e[37]=m,e[38]=j,e[39]=o,e[40]=c,e[41]=d,e[42]=u,e[43]=a,e[44]=N.isPending,e[45]=E):E=e[45];let O;e[46]!==x?(O=x&&t.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center bg-primary/10 backdrop-blur-[1px]",children:t.jsx("span",{className:"rounded-md bg-background px-3 py-1.5 text-xs font-medium shadow",children:"Drop to upload"})}),e[46]=x,e[47]=O):O=e[47];let A;e[48]!==ae||e[49]!==oe||e[50]!==ce||e[51]!==L||e[52]!==E||e[53]!==O?(A=t.jsxs("div",{onDragOver:oe,onDragLeave:ae,onDrop:ce,className:L,children:[E,O]}),e[48]=ae,e[49]=oe,e[50]=ce,e[51]=L,e[52]=E,e[53]=O,e[54]=A):A=e[54];let R;e[55]!==k?(R=U=>k(U.target.value),e[55]=k,e[56]=R):R=e[56];let B;e[57]!==r||e[58]!==a||e[59]!==R?(B=t.jsx(Fe,{id:r,type:"url",value:a,onChange:R,placeholder:"https://...",className:"h-9 min-w-0 flex-1"}),e[57]=r,e[58]=a,e[59]=R,e[60]=B):B=e[60];let G;e[61]!==u?(G=()=>u(!0),e[61]=u,e[62]=G):G=e[62];let se;e[63]===Symbol.for("react.memo_cache_sentinel")?(se=t.jsx(je,{size:14}),e[63]=se):se=e[63];const ue=a?"Replace":"Browse";let M;e[64]!==G||e[65]!==ue?(M=t.jsxs(Y,{type:"button",variant:"outline",size:"sm",onClick:G,className:"h-9 shrink-0",children:[se,ue]}),e[64]=G,e[65]=ue,e[66]=M):M=e[66];let V;e[67]!==k||e[68]!==a?(V=a&&t.jsx(Y,{type:"button",variant:"ghost",size:"sm",onClick:()=>k(""),className:"h-9 shrink-0","aria-label":"Remove image",children:t.jsx(ze,{size:14})}),e[67]=k,e[68]=a,e[69]=V):V=e[69];let K;e[70]!==B||e[71]!==M||e[72]!==V?(K=t.jsxs("div",{className:"flex w-full min-w-0 items-center gap-2",children:[B,M,V]}),e[70]=B,e[71]=M,e[72]=V,e[73]=K):K=e[73];let J;e[74]!==k?(J=U=>k(U),e[74]=k,e[75]=J):J=e[75];const me=I?.id??null;let Q;e[76]!==g||e[77]!==u||e[78]!==J||e[79]!==me?(Q=t.jsx(at,{open:g,onOpenChange:u,mode:"image",onSelect:J,lockedConfigId:me}),e[76]=g,e[77]=u,e[78]=J,e[79]=me,e[80]=Q):Q=e[80];let ne;return e[81]!==T||e[82]!==A||e[83]!==K||e[84]!==Q?(ne=t.jsxs("div",{className:"grid w-full min-w-0 grid-cols-[minmax(0,1fr)] gap-2",children:[T,A,K,Q]}),e[81]=T,e[82]=A,e[83]=K,e[84]=Q,e[85]=ne):ne=e[85],ne}function Pt(s){return _t.has(s.type||"")}export{at as F,Yt as I,ye as L,it as e,Ct as m,Ce as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{e as oe,p as se,F as ie,b as re,r as A,m as ae,K as R,a as le,t as k,n as K,j as t,B as F,c as ce}from"./index-
|
|
1
|
+
import{e as oe,p as se,F as ie,b as re,r as A,m as ae,K as R,a as le,t as k,n as K,j as t,B as F,c as ce}from"./index-COlSsy5J.js";import{b as de}from"./use-virtual-mcp-DPWDEWCb.js";import{m as Z}from"./use-navigate-to-agent-C2rXzvAb.js";import{u as ue}from"./use-connection-C7Z8M26w.js";import{u as Y,S as me}from"./use-mcp-client-CK2bE_Wl.js";import{g as pe,u as he,f as ge,b as fe,p as Ce,a as xe}from"./github-repo-picker-Db3xiFzy.js";import{d as be,c as we,D as ye,a as je,e as Ie}from"./dialog-BMBVdX8K.js";import{i as Se}from"./Settings02-BcW_Yd93.js";import{C as ve}from"./collection-search-BSHmVsv0.js";const Ee=`<svg width="74" height="84" viewBox="0 0 74 84" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<path d="M63.4462 15.3005C63.1414 15.2764 57.2333 15.1845 57.2333 15.1845C57.2333 15.1845 52.2906 10.3849 51.8019 9.89426C51.6127 9.71981 51.3729 9.60981 51.1172 9.58008V83.0253L73.2664 77.5175C73.2664 77.5175 64.2277 16.3953 64.1696 15.9772C64.1417 15.7997 64.055 15.6366 63.9235 15.5139C63.7919 15.3913 63.6255 15.3162 63.4462 15.3005Z" fill="#171717"/>
|
|
3
3
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M32.748 0.00356357C34.8334 -0.0568526 36.5759 0.651298 37.9307 2.10122C38.0276 2.20613 38.1209 2.31463 38.2109 2.42544L38.2354 2.42349C38.4434 2.40657 38.6494 2.38638 38.8574 2.38638H38.8672C41.9831 2.3913 44.5571 4.16796 46.3184 7.527C46.8023 8.4621 47.2004 9.43976 47.5068 10.4469L49.9883 9.67837C50.3609 9.56961 51.315 9.42163 51.8037 9.90981L51.9922 82.3883L51.1162 83.0387L0 74.1979C0.0195597 74.0466 6.09952 27.0238 6.3291 25.3629C6.63636 23.1661 6.70922 23.0933 9.03906 22.361L16.957 19.9079C17.4531 16.377 19.1884 11.8165 21.4746 8.18423C24.7237 3.02487 28.7273 0.119714 32.748 0.00356357ZM38.8408 26.7077C38.8133 26.694 36.5926 25.6009 32.2842 25.8747C21.032 26.5853 15.9341 34.4515 16.4229 42.2213C17.0059 51.4485 26.2283 51.1199 26.584 56.734C26.6686 58.0922 25.8271 60.0114 23.4658 60.1588C19.8562 60.3883 15.3438 56.9831 15.3438 56.9831L13.6191 64.3249C13.6191 64.3249 18.1021 69.1296 26.2432 68.6149C33.027 68.1895 37.7351 62.759 37.2344 54.8249C36.5981 44.7397 25.2729 43.7966 25.002 39.4948C24.9512 38.7038 25.0055 35.556 29.9932 35.2418C33.3786 35.0279 36.2354 36.3195 36.2666 36.3336L38.8408 26.7077ZM32.8262 2.6813C26.6181 2.86014 21.2028 12.5587 19.8213 19.0211L26.8311 16.8512C27.6101 12.7476 29.5648 8.48928 32.1221 5.74868C33.0162 4.76667 34.0719 3.94401 35.2432 3.31704H35.2451C34.5654 2.87005 33.7695 2.66203 32.8262 2.6813ZM36.9775 5.46548C35.7921 5.95366 34.7952 6.80972 34.0791 7.57583C32.1608 9.63716 30.5951 12.7807 29.7725 15.9391L38.3057 13.2956C38.3322 11.0721 38.0904 7.7854 36.9775 5.46548ZM39.7568 5.14907C40.7052 7.59721 40.9505 10.4321 40.9795 12.4694L44.9473 11.2389C44.3133 9.17981 42.8075 5.72907 39.7568 5.14907Z" fill="#393939"/>
|
|
4
4
|
</svg>`,Ne=`data:image/svg+xml,${encodeURIComponent(Ee)}`,Ve={title:"New Website",description:"Website cloned from a public template",url:"https://github.com/decocms/webapp-template",owner:"decocms",name:"webapp-template"},Ue={title:"Shopify Headless Store",description:"Shopify Headless Store cloned from a public template",url:"https://github.com/Shopify/hydrogen-demo-store",owner:"Shopify",name:"hydrogen-demo-store",icon:Ne};function ze(){const n=oe.c(6),s=de(),i=Z();let o;n[0]!==s.create||n[1]!==i?(o=async d=>{const c=await s.create.mutateAsync({title:d.title,description:d.description,icon:d.icon??null,status:"active",pinned:!1,connections:[],metadata:{githubRepo:{url:d.url,owner:d.owner,name:d.name},instructions:null,ui:{pinnedViews:null,layout:{defaultMainView:{type:"preview"},chatDefaultOpen:!0}}}});return c.id&&i(c.id),c},n[0]=s.create,n[1]=i,n[2]=o):o=n[2];const u=o;let m;return n[3]!==s.create.isPending||n[4]!==u?(m={createFromTemplate:u,isCreating:s.create.isPending},n[3]=s.create.isPending,n[4]=u,n[5]=m):m=n[5],m}const Le="deco-sites";function Te(n){if(!n||typeof n!="object")return null;const s=n.github;if(!s||typeof s!="object")return null;const i=s.owner,o=s.repo;return typeof i!="string"||typeof o!="string"||i.length===0||o.length===0?null:{owner:i,repo:o}}function _e(n,s){const i=s?Te(s):null,o=i?.owner??Le,u=i?.repo??n;return{owner:o,name:u,url:`https://github.com/${o}/${u}`}}function Ge(n){return n.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}async function Oe(n){const s=await fetch(`/api/${n}/deco-sites`);if(!s.ok){const i=await s.json().catch(()=>({}));throw new Error(i.error??`Failed to load sites (${s.status})`)}return s.json()}function Be({open:n,onOpenChange:s,onBack:i}){const{org:o}=se(),u=Z(),m=ie(),{data:d}=re.useSession(),[c,$]=A.useState(null),[q,V]=A.useState(null),[y,N]=A.useState(""),h=Y({connectionId:me,orgId:o.id,orgSlug:o.slug}),Q=ue({slug:"mcp-github"}),f=pe(Q),r=he({enabled:n&&f.length===0}),C=f.length===1?f[0]??null:q,j=f.length>1&&!C,W=Y({connectionId:C?.id??"",orgId:o.id,orgSlug:o.slug}),x=n&&f.length===0&&(r.status==="installing"||r.status==="authenticating"||r.status==="idle"),{data:J,isLoading:I,error:X}=ae({queryKey:R.decoSites(d?.user?.email),queryFn:()=>Oe(o.slug),enabled:n&&!!d?.user?.email,staleTime:6e4,retry:!1}),S=J?.sites??[],L=e=>{e||($(null),V(null),N("")),s(e)},T=S.filter(e=>e.name.toLowerCase().includes(y.toLowerCase())||(e.domains?.[0]?.domain?.toLowerCase().includes(y.toLowerCase())??!1)),ee=!c||T.some(e=>e.name===c),v=le({mutationFn:async e=>{if(!C)throw new Error("GitHub is not connected. Complete GitHub setup and try again.");k("deco_site_import_started",{site_name:e});const{installations:p,appSlug:g}=await ge(l=>h.callTool(l),C.id),b=S.find(l=>l.name===e);if(!b)throw new Error("Selected site is no longer available");const a=_e(e,b.metadata),_=fe(p,a.owner);if(!_){const l=g?`https://github.com/apps/${g}/installations/new`:"https://github.com/settings/installations";throw new Error(`Install the GitHub App on the "${a.owner}" organization to import this site. ${l}`)}let G=null,O=null,D=null;const te=async()=>{D&&await h.callTool({name:"COLLECTION_VIRTUAL_MCP_DELETE",arguments:{id:D}}).catch(()=>{}),O&&await h.callTool({name:"COLLECTION_CONNECTIONS_DELETE",arguments:{id:O,force:!0}}).catch(()=>{}),G&&await h.callTool({name:"COLLECTION_CONNECTIONS_DELETE",arguments:{id:G,force:!0}}).catch(()=>{})};try{const l=await fetch(`/api/${o.slug}/deco-sites/connection`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({siteName:e})}),M=await l.json().catch(()=>({}));if(!l.ok)throw new Error(M.error??`Failed to create connection (${l.status})`);const w=M.connId;if(!w)throw new Error("Server did not return a connection ID");G=w;const{childConnectionId:H}=await Ce({orgSlug:o.slug,sourceConnection:C,installationId:_.installationId,owner:a.owner,repo:a.name,githubCallTool:P=>W.callTool(P),selfCallTool:P=>h.callTool(P)});O=H;const U=M.icon??null,z=Ge(e),ne=e.toLowerCase(),B=await h.callTool({name:"COLLECTION_VIRTUAL_MCP_CREATE",arguments:{data:{title:e,description:"Imported from deco.cx",pinned:!1,icon:U??null,subtype:"project",metadata:{instructions:null,enabled_plugins:[],siteSlug:ne,githubRepo:{owner:a.owner,name:a.name,url:a.url,installationId:_.installationId,connectionId:H},ui:{banner:null,bannerColor:"#22C55E",icon:U,themeColor:"#22C55E",slug:z,pinnedViews:[{connectionId:w,toolName:"fetch_assets",label:"Assets",icon:null},{connectionId:w,toolName:"get_monitor_data",label:"Monitor",icon:null}],layout:{defaultMainView:{type:"preview"},chatDefaultOpen:!0}}},connections:[{connection_id:w},{connection_id:H}]}}}),E=B.structuredContent??B;if(!E.item?.id)throw new Error("Failed to create the imported agent");return D=E.item.id,{slug:z,virtualMcpId:E.item.id,connId:w,item:E.item}}catch(l){throw await te(),l}},onSuccess:({slug:e,virtualMcpId:p,item:g})=>{k("deco_site_import_succeeded",{site_name:g.title,virtual_mcp_id:p,slug:e}),m.setQueryData(R.collectionItem(h,o.id,"","VIRTUAL_MCP",p),{item:g}),m.invalidateQueries({predicate:b=>{const a=b.queryKey;return a[1]===o.id&&a[3]==="collection"&&a[4]==="VIRTUAL_MCP"}}),m.invalidateQueries({queryKey:R.projects(o.id)}),K.success(`Imported ${e} from deco.cx`),L(!1),localStorage.setItem("mesh:sidebar-open",JSON.stringify(!1)),u(p)},onError:e=>{k("deco_site_import_failed",{error:e instanceof Error?e.message:"Unknown error"}),K.error("Import failed: "+(e instanceof Error?e.message:"Unknown error"))}});return t.jsx(be,{open:n,onOpenChange:L,children:t.jsxs(we,{className:"sm:max-w-[900px] p-0 gap-0 overflow-hidden",children:[t.jsx(ye,{className:"sr-only",children:t.jsx(je,{children:"Import from deco.cx"})}),t.jsxs("div",{className:"flex items-center h-12 border-b border-border px-4 gap-3",children:[i&&t.jsx("button",{type:"button",onClick:i,className:"flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors","aria-label":"Go back",children:t.jsx(Se,{size:18})}),t.jsx("span",{className:"text-sm font-medium text-foreground",children:"Import from deco.cx"})]}),t.jsx("div",{children:t.jsx(ve,{value:y,onChange:N,placeholder:"Search sites...",onKeyDown:e=>{e.key==="Escape"&&N("")}})}),t.jsxs("div",{className:"pb-0 min-h-[300px]",children:[r.status==="error"&&t.jsxs("div",{className:"flex flex-col items-center justify-center gap-3 h-48 px-8 text-center",children:[t.jsx("p",{className:"text-sm text-destructive",children:r.error??"Failed to connect GitHub"}),t.jsx(F,{variant:"outline",size:"sm",onClick:r.retry,children:"Retry GitHub setup"})]}),x&&r.status!=="error"&&t.jsx("div",{className:"flex items-center justify-center h-48 text-sm text-muted-foreground",children:"Setting up GitHub connection..."}),j&&!x&&r.status!=="error"&&t.jsxs("div",{className:"flex flex-col py-2",children:[t.jsx("div",{className:"px-8 py-2",children:t.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"Select a GitHub connection"})}),f.map(e=>t.jsxs("button",{type:"button",onClick:()=>V(e),className:"flex items-center gap-3 px-8 py-3 hover:bg-accent transition-colors text-left",children:[e.icon?t.jsx("img",{src:e.icon,alt:e.title,className:"size-7 rounded-full shrink-0"}):t.jsx("div",{className:"size-7 rounded-full bg-muted flex items-center justify-center shrink-0",children:t.jsx(xe,{className:"size-3.5 text-muted-foreground"})}),t.jsx("span",{className:"text-sm font-medium",children:e.title})]},e.id))]}),I&&!x&&r.status!=="error"&&t.jsx("div",{className:"flex items-center justify-center h-48 text-sm text-muted-foreground",children:"Loading sites..."}),!I&&!x&&!j&&r.status!=="error"&&!X&&S.length===0&&t.jsx("div",{className:"flex items-center justify-center h-48 text-sm text-muted-foreground",children:"No sites found for this account."}),!I&&!x&&!j&&r.status!=="error"&&S.length>0&&t.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4 max-h-[420px] overflow-y-auto py-4 px-8 [scrollbar-gutter:stable]",children:[T.length===0&&t.jsxs("p",{className:"col-span-3 text-sm text-muted-foreground text-center py-8",children:["No sites match “",y,"”"]}),T.map(e=>{const p=e.domains?.find(b=>b.production)?.domain??e.domains?.[0]?.domain,g=c===e.name;return t.jsxs("button",{type:"button",onClick:()=>$(e.name),className:ce("flex flex-col rounded-xl border overflow-hidden text-left transition-all cursor-pointer",g?"border-primary ring-1 ring-primary":"border-border hover:border-muted-foreground/40"),children:[t.jsx("div",{className:"w-full aspect-video bg-muted overflow-hidden",children:e.thumb_url?t.jsx("img",{src:e.thumb_url,alt:e.name,className:"w-full h-full object-cover",loading:"lazy"}):t.jsx("div",{className:"w-full h-full bg-muted"})}),t.jsxs("div",{className:"px-4 py-3",children:[t.jsx("p",{className:"text-sm font-medium text-foreground truncate",children:e.name}),p&&t.jsx("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:p})]})]},e.name)})]})]}),t.jsxs(Ie,{className:"px-8 py-5 border-t border-border",children:[t.jsx(F,{variant:"outline",onClick:()=>L(!1),disabled:v.isPending,children:"Cancel"}),t.jsx(F,{disabled:!c||!ee||v.isPending||I||x||j||!C||r.status==="error",onClick:()=>c&&v.mutate(c),children:v.isPending?"Importing...":"Import"})]})]})})}export{Ue as H,Be as I,Ne as S,Ve as W,ze as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as _,p as L,K as q,a5 as $,a6 as V,ac as z,j as n,r as R,ah as W,_ as Y,b8 as Q,P as x,V as C,b6 as X,M as I,b7 as j,U as J,T as k,bH as Z,bG as ee}from"./index-
|
|
1
|
+
import{e as _,p as L,K as q,a5 as $,a6 as V,ac as z,j as n,r as R,ah as W,_ as Y,b8 as Q,P as x,V as C,b6 as X,M as I,b7 as j,U as J,T as k,bH as Z,bG as ee}from"./index-COlSsy5J.js";import{i as oe}from"./mcp-oauth-kSTvScdZ.js";import{B as P}from"./badge-Rj4w6Y9D.js";import{b as w,T as E,a as S,c as te}from"./tooltip-D5U362dF.js";import{g as re}from"./types-C-QYkfD4.js";import{s as ae}from"./Eye-DifA9NHq.js";import{s as se}from"./Star01-DxJIcjLz.js";import{aa as ne}from"./agent-icon-B1KjkGhC.js";function ke(d){const e=_.c(11),{connectionId:t}=d,{org:a}=L();let o,r,s;e[0]!==t||e[1]!==a.slug?(o=new URL(`/api/${a.slug}/mcp/${t}`,window.location.origin),s=$,r=q.isMCPAuthenticated(o.href,null),e[0]=t,e[1]=a.slug,e[2]=o,e[3]=r,e[4]=s):(o=e[2],r=e[3],s=e[4]);let i;e[5]!==o||e[6]!==a.id?(i=()=>oe({url:o.href,token:null,orgId:a.id}),e[5]=o,e[6]=a.id,e[7]=i):i=e[7];let c;e[8]!==r||e[9]!==i?(c={queryKey:r,queryFn:i},e[8]=r,e[9]=i,e[10]=c):c=e[10];const{data:l}=s(c);return l}const ie=[{key:"readOnlyHint",label:"Read-only",Icon:ae,variant:"secondary"},{key:"destructiveHint",label:"Destructive",Icon:V,variant:"destructive"},{key:"idempotentHint",label:"Idempotent",Icon:z,variant:"secondary"},{key:"openWorldHint",label:"Open-world",Icon:se,variant:"outline"}];function Pe(d){const e=_.c(18),{annotations:t,_meta:a}=d;let o;e[0]!==a?(o=re(a),e[0]=a,e[1]=o):o=e[1];const r=!!o;let s,i,c,l,p;if(e[2]!==t||e[3]!==r){p=Symbol.for("react.early_return_sentinel");e:{const f=t?ie.filter(m=>t[m.key]===!0):[];if(f.length===0&&!r){p=null;break e}s=te,i="flex gap-1 flex-nowrap",e[9]!==r?(c=r&&n.jsxs(w,{children:[n.jsx(E,{asChild:!0,children:n.jsx(P,{asChild:!0,variant:"secondary",className:"size-6 p-1",children:n.jsx(ne,{})})}),n.jsx(S,{children:"Interactive"})]}),e[9]=r,e[10]=c):c=e[10],l=f.map(ce)}e[2]=t,e[3]=r,e[4]=s,e[5]=i,e[6]=c,e[7]=l,e[8]=p}else s=e[4],i=e[5],c=e[6],l=e[7],p=e[8];if(p!==Symbol.for("react.early_return_sentinel"))return p;let u;e[11]!==i||e[12]!==c||e[13]!==l?(u=n.jsxs("div",{className:i,children:[c,l]}),e[11]=i,e[12]=c,e[13]=l,e[14]=u):u=e[14];let v;return e[15]!==s||e[16]!==u?(v=n.jsx(s,{children:u}),e[15]=s,e[16]=u,e[17]=v):v=e[17],v}function ce(d){const{label:e,Icon:t,variant:a}=d;return n.jsxs(w,{children:[n.jsx(E,{asChild:!0,children:n.jsx(P,{asChild:!0,variant:a,className:"size-6 p-1",children:n.jsx(t,{})})}),n.jsx(S,{children:e})]},e)}var g="Radio",[de,A]=k(g),[le,ue]=de(g),N=R.forwardRef((d,e)=>{const{__scopeRadio:t,name:a,checked:o=!1,required:r,disabled:s,value:i="on",onCheck:c,form:l,...p}=d,[u,v]=R.useState(null),f=C(e,y=>v(y)),m=R.useRef(!1),h=u?l||!!u.closest("form"):!0;return n.jsxs(le,{scope:t,checked:o,disabled:s,children:[n.jsx(x.button,{type:"button",role:"radio","aria-checked":o,"data-state":M(o),"data-disabled":s?"":void 0,disabled:s,value:i,...p,ref:f,onClick:I(d.onClick,y=>{o||c?.(),h&&(m.current=y.isPropagationStopped(),m.current||y.stopPropagation())})}),h&&n.jsx(D,{control:u,bubbles:!m.current,name:a,value:i,checked:o,required:r,disabled:s,form:l,style:{transform:"translateX(-100%)"}})]})});N.displayName=g;var G="RadioIndicator",T=R.forwardRef((d,e)=>{const{__scopeRadio:t,forceMount:a,...o}=d,r=ue(G,t);return n.jsx(J,{present:a||r.checked,children:n.jsx(x.span,{"data-state":M(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:e})})});T.displayName=G;var pe="RadioBubbleInput",D=R.forwardRef(({__scopeRadio:d,control:e,checked:t,bubbles:a=!0,...o},r)=>{const s=R.useRef(null),i=C(s,r),c=Z(t),l=ee(e);return R.useEffect(()=>{const p=s.current;if(!p)return;const u=window.HTMLInputElement.prototype,f=Object.getOwnPropertyDescriptor(u,"checked").set;if(c!==t&&f){const m=new Event("click",{bubbles:a});f.call(p,t),p.dispatchEvent(m)}},[c,t,a]),n.jsx(x.input,{type:"radio","aria-hidden":!0,defaultChecked:t,...o,tabIndex:-1,ref:i,style:{...o.style,...l,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});D.displayName=pe;function M(d){return d?"checked":"unchecked"}var fe=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],b="RadioGroup",[ve]=k(b,[j,A]),O=j(),U=A(),[me,Re]=ve(b),B=R.forwardRef((d,e)=>{const{__scopeRadioGroup:t,name:a,defaultValue:o,value:r,required:s=!1,disabled:i=!1,orientation:c,dir:l,loop:p=!0,onValueChange:u,...v}=d,f=O(t),m=W(l),[h,y]=Y({prop:r,defaultProp:o??null,onChange:u,caller:b});return n.jsx(me,{scope:t,name:a,required:s,disabled:i,value:h,onValueChange:y,children:n.jsx(Q,{asChild:!0,...f,orientation:c,dir:m,loop:p,children:n.jsx(x.div,{role:"radiogroup","aria-required":s,"aria-orientation":c,"data-disabled":i?"":void 0,dir:m,...v,ref:e})})})});B.displayName=b;var F="RadioGroupItem",H=R.forwardRef((d,e)=>{const{__scopeRadioGroup:t,disabled:a,...o}=d,r=Re(F,t),s=r.disabled||a,i=O(t),c=U(t),l=R.useRef(null),p=C(e,l),u=r.value===o.value,v=R.useRef(!1);return R.useEffect(()=>{const f=h=>{fe.includes(h.key)&&(v.current=!0)},m=()=>v.current=!1;return document.addEventListener("keydown",f),document.addEventListener("keyup",m),()=>{document.removeEventListener("keydown",f),document.removeEventListener("keyup",m)}},[]),n.jsx(X,{asChild:!0,...i,focusable:!s,active:u,children:n.jsx(N,{disabled:s,required:r.required,checked:u,...c,...o,name:r.name,ref:p,onCheck:()=>r.onValueChange(o.value),onKeyDown:I(f=>{f.key==="Enter"&&f.preventDefault()}),onFocus:I(o.onFocus,()=>{v.current&&l.current?.click()})})})});H.displayName=F;var he="RadioGroupIndicator",K=R.forwardRef((d,e)=>{const{__scopeRadioGroup:t,...a}=d,o=U(t);return n.jsx(T,{...o,...a,ref:e})});K.displayName=he;var we=B,Ee=H,Se=K;export{Ee as I,we as R,Pe as T,Se as a,ke as u};
|