@objectstack/console 17.5.0 → 17.7.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/CHANGELOG.md +806 -0
- package/dist/.objectstack-injection.json +2 -2
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{ActionResultDialog-CLdIyOW6.js → ActionResultDialog-ChYnuROr.js} +3 -3
- package/dist/assets/{AiPendingActionsPage-OKYz66yR.js → AiPendingActionsPage-Dh3-i4BB.js} +1 -1
- package/dist/assets/{ApiConsolePage-CcrKovu8.js → ApiConsolePage-CKYEqlMs.js} +1 -1
- package/dist/assets/AppDocsIndex-B5Tky2xg.js +1 -0
- package/dist/assets/{AppManagementPage-D_xz8cTZ.js → AppManagementPage-ZwyvnHpM.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-DD4fe0Em.js +1 -0
- package/dist/assets/{AuditLogPage-CoghqsZb.js → AuditLogPage-Sed6iMqP.js} +1 -1
- package/dist/assets/BookPage-DYjUsQIc.js +1 -0
- package/dist/assets/{ComponentNavView-BxsixSU9.js → ComponentNavView-DrlxM4SY.js} +1 -1
- package/dist/assets/CreateViewDialog-Cp72x_O7.js +1 -0
- package/dist/assets/DashboardView-juicRxcP.js +1 -0
- package/dist/assets/DocPage-CxJaQ-pC.js +1 -0
- package/dist/assets/{DocsIndex-B2zw_HAp.js → DocsIndex-LALVtIVR.js} +1 -1
- package/dist/assets/{DocsLayout-DezZ8x7_.js → DocsLayout-BAwlJQQf.js} +1 -1
- package/dist/assets/DocsSlug-CkF1E-Zs.js +1 -0
- package/dist/assets/ExpressionProvider-Dr0e99r1.js +1 -0
- package/dist/assets/FlowRunsPage-R3W3t2s4.js +1 -0
- package/dist/assets/{IntegrationsPage-2leVkVDH.js → IntegrationsPage-DIuFLEbF.js} +2 -2
- package/dist/assets/InterfaceListPage-BfoCldGu.js +1 -0
- package/dist/assets/{MarketplaceInstalledPage-EPPHSitW.js → MarketplaceInstalledPage-DyjhcUNB.js} +1 -1
- package/dist/assets/MarketplacePackagePage-BbO27Pgs.js +4 -0
- package/dist/assets/{MarketplacePage-BnQKykgv.js → MarketplacePage-DO2_b64U.js} +1 -1
- package/dist/assets/{MetadataInspector-BWxLkr0O.js → MetadataInspector-BQyu9pOE.js} +1 -1
- package/dist/assets/ObjectDataPage-DIY-yefK.js +1 -0
- package/dist/assets/PageView-C-qWu3Jw.js +1 -0
- package/dist/assets/ProfilePage-Qp8DL8CF.js +1 -0
- package/dist/assets/{PublicFormsPage-DlE6tck_.js → PublicFormsPage-D3AT2EH9.js} +1 -1
- package/dist/assets/RecordDetailView-B3XBEgk2.js +3 -0
- package/dist/assets/RecordFormPage-CcoZfUJ3.js +1 -0
- package/dist/assets/ReportDefaultInspector-DVcWM6sh.js +1 -0
- package/dist/assets/ReportView-pJCFptzp.js +2 -0
- package/dist/assets/RuntimeDraftBar-DObTyFu2.js +1 -0
- package/dist/assets/SchemaForm-BWSWYMLE.js +3 -0
- package/dist/assets/SearchResultsPage-ChVIzFob.js +1 -0
- package/dist/assets/{SettingsHub-BGKIj-Zq.js → SettingsHub-CPP9FDe8.js} +1 -1
- package/dist/assets/SettingsView-CrHAROu9.js +1 -0
- package/dist/assets/{SkeletonDetail-C8fMI-Mu.js → SkeletonDetail-CP-35B8x.js} +1 -1
- package/dist/assets/{af-BfSmLD34.js → af-Bhbso4Pg.js} +1 -1
- package/dist/assets/ai-BAPiCsNk.js +3 -0
- package/dist/assets/app-shell-eager-leaves-D9tgfJOe.js +1 -0
- package/dist/assets/{ar-B9ttrM75.js → ar-DG8TAFtm.js} +1 -1
- package/dist/assets/{ar-DZ-C1rn-cyl.js → ar-DZ-BtSien-d.js} +1 -1
- package/dist/assets/{ar-EG-BaDxKP_o.js → ar-EG-DpXC0zoY.js} +1 -1
- package/dist/assets/{ar-MA-DbxNEcmd.js → ar-MA-D1qVJLyE.js} +1 -1
- package/dist/assets/{ar-SA-DeC5LXcX.js → ar-SA-BIYKNgv8.js} +1 -1
- package/dist/assets/{ar-TN-C9KpTFJz.js → ar-TN-mUR5Mq3s.js} +1 -1
- package/dist/assets/{az-cMerDwRO.js → az-B7IqwHGK.js} +1 -1
- package/dist/assets/{be-ZTSbszQh.js → be-CnZyPaSX.js} +1 -1
- package/dist/assets/{be-tarask-BXZEUrgX.js → be-tarask--uMMCC7l.js} +1 -1
- package/dist/assets/{bg-BDogpmn5.js → bg-CZwuirtY.js} +1 -1
- package/dist/assets/{bn-Cz04uxmh.js → bn-BbOX0r-z.js} +1 -1
- package/dist/assets/{bs-CpFnCl-j.js → bs-B5W75cYR.js} +1 -1
- package/dist/assets/{ca-CHC4M52Z.js → ca-Be69LdIM.js} +1 -1
- package/dist/assets/{ckb-Dxw-RNm8.js → ckb-B-nKM1Vn.js} +1 -1
- package/dist/assets/contracts-DieHW666.js +1 -0
- package/dist/assets/{createDerive-DvA_JGNq.js → createDerive-CynsXU-B.js} +1 -1
- package/dist/assets/{cs-DsFaJ5Z7.js → cs-qHngxH7l.js} +1 -1
- package/dist/assets/{cy-FH4JFDTs.js → cy-DscO2Pgf.js} +1 -1
- package/dist/assets/{da-D1pVjaAq.js → da-vibkaLMF.js} +1 -1
- package/dist/assets/data-adapter-BDsrq0TX.js +2 -0
- package/dist/assets/{de-AT-DUMQCisj.js → de-AT--JneEuBw.js} +1 -1
- package/dist/assets/{de-DKrxSvnP.js → de-BCT78XYW.js} +1 -1
- package/dist/assets/default-inspector-registry-Dktr6x_q.js +1 -0
- package/dist/assets/dist-yh3dYtHt.js +14 -0
- package/dist/assets/drillUrlFilters-N0RngQg6.js +1 -0
- package/dist/assets/{el-l3-bHySV.js → el-Cl0y9T2b.js} +1 -1
- package/dist/assets/en-AU-By42tTB7.js +1 -0
- package/dist/assets/{en-CA-DGH5NF0a.js → en-CA-BqEEoj-Y.js} +1 -1
- package/dist/assets/en-GB-Cx8B9nkB.js +1 -0
- package/dist/assets/en-IE-CX9nv6uO.js +1 -0
- package/dist/assets/en-IN-ByGSBHa4.js +1 -0
- package/dist/assets/en-NZ-BPMwa2ZN.js +1 -0
- package/dist/assets/en-ZA-lj_N4R6c.js +1 -0
- package/dist/assets/{eo-CL6CXHZx.js → eo-oOXROuhF.js} +1 -1
- package/dist/assets/{es-BIJ0rksI.js → es-EudscwjH.js} +1 -1
- package/dist/assets/{et-BGgMzjm1.js → et-CB-5LLh6.js} +1 -1
- package/dist/assets/{eu-CqvAoRrX.js → eu-B4-hcseX.js} +1 -1
- package/dist/assets/{fa-IR-DNz3oA1-.js → fa-IR-CogavcMJ.js} +1 -1
- package/dist/assets/{fi-DNSfKWuW.js → fi-CIBE0mYa.js} +1 -1
- package/dist/assets/{formatLong-CHb9WA3O.js → formatLong-qqgm7lV1.js} +1 -1
- package/dist/assets/{fr-CA-CotiswPx.js → fr-CA-BugXMutW.js} +1 -1
- package/dist/assets/{fr-DYRJCirJ.js → fr-CDReXYWW.js} +1 -1
- package/dist/assets/{fr-CH-CpiEYWpc.js → fr-CH-fiTiB6X1.js} +1 -1
- package/dist/assets/framework-CAuH4h0L.js +35 -0
- package/dist/assets/{fy-B69yM3FE.js → fy-t_GzIAg_.js} +1 -1
- package/dist/assets/{gd-BAy8AsX6.js → gd-CSncIxtN.js} +1 -1
- package/dist/assets/{getIcon-BEVyC4y3.js → getIcon-BDkBRQFw.js} +1 -1
- package/dist/assets/{gl-soLn_weL.js → gl-_138Mj2S.js} +1 -1
- package/dist/assets/{gu-B19Yo9yC.js → gu-COfH-YUT.js} +1 -1
- package/dist/assets/{he-DYTPo33p.js → he-BXL4lOKY.js} +1 -1
- package/dist/assets/{hi-D2dIK7Oy.js → hi-kXuYI0TJ.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-CExufvVt.js → highlighted-body-OFNGDK62-CK7x7Gzm.js} +1 -1
- package/dist/assets/{hr-BV-VOPMu.js → hr-DAOsQWzI.js} +1 -1
- package/dist/assets/{ht-C7MM4qkS.js → ht-Ch8SKz8p.js} +1 -1
- package/dist/assets/{hu-Rha1m2Ym.js → hu-q6W_rWPT.js} +1 -1
- package/dist/assets/{hy-CiTNgbdV.js → hy-0M8OmwnM.js} +1 -1
- package/dist/assets/i18n-DTfZonAM.js +17 -0
- package/dist/assets/i18n-locale-ar-O6rs-Cir.js +4 -0
- package/dist/assets/i18n-locale-de-CMc1jk4a.js +4 -0
- package/dist/assets/i18n-locale-en-CbRQO81h.js +4 -0
- package/dist/assets/i18n-locale-es-t47nyoCX.js +4 -0
- package/dist/assets/i18n-locale-fr-E425EqJM.js +4 -0
- package/dist/assets/i18n-locale-ja-y_fk77fz.js +4 -0
- package/dist/assets/i18n-locale-ko-CdnY2uCg.js +4 -0
- package/dist/assets/i18n-locale-pt-BaUOXS6y.js +4 -0
- package/dist/assets/i18n-locale-ru-pFlhX9wg.js +4 -0
- package/dist/assets/i18n-locale-zh-Dkj4ROTN.js +4 -0
- package/dist/assets/i18n-runtime-CdWyaiOD.js +1 -0
- package/dist/assets/{id-Cijsfjt-.js → id-BM_H1_jv.js} +1 -1
- package/dist/assets/index-ocmkyCt6.js +19 -0
- package/dist/assets/index-v2Ijn9Gr.css +2 -0
- package/dist/assets/{infrastructure-BHSync5f.js → infrastructure-CSnL6ntj.js} +2 -2
- package/dist/assets/integration-7NqwVHuJ.js +1 -0
- package/dist/assets/{is-xS1WTyeC.js → is-B_7jXZfS.js} +1 -1
- package/dist/assets/isSameWeek-D90tBsli.js +1 -0
- package/dist/assets/{it-C2i_c9sd.js → it-CBM0J9cD.js} +1 -1
- package/dist/assets/{it-CH-l516ZNXj.js → it-CH-BQltCNsR.js} +1 -1
- package/dist/assets/{ja-D9_ewLny.js → ja-DBjnsx21.js} +1 -1
- package/dist/assets/{ja-Hira-D_6ExgHw.js → ja-Hira-BZfSmj1i.js} +1 -1
- package/dist/assets/{ka-BYHGyees.js → ka-HwpuKgUY.js} +1 -1
- package/dist/assets/{kk-CbTFtuqb.js → kk-DLKA9paj.js} +1 -1
- package/dist/assets/{km-Dr2gwhIn.js → km-BU5kermq.js} +1 -1
- package/dist/assets/{kn-CprH8JD7.js → kn-BNFqbCoi.js} +1 -1
- package/dist/assets/{ko-CsFS2u5i.js → ko-D8n4uMqQ.js} +1 -1
- package/dist/assets/{lb-CbFKN7Ob.js → lb-B1empQ7m.js} +1 -1
- package/dist/assets/{lt-Bq0xkLp0.js → lt-gMukpK3G.js} +1 -1
- package/dist/assets/{lv-Cj6vg6Qo.js → lv-D2O5AnsZ.js} +1 -1
- package/dist/assets/{match-CiPp9BME.js → match-BTF6WqJh.js} +1 -1
- package/dist/assets/{match-C_jFGO9e.js → match-Cyum2eeW.js} +1 -1
- package/dist/assets/{match-Co4ivumx.js → match-ScHH8kYk.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-D4H6EVJQ.js +1 -0
- package/dist/assets/metadata-admin-CEhVmXFv.js +9 -0
- package/dist/assets/{mk-MXFM99YL.js → mk-D-Zl0xVN.js} +1 -1
- package/dist/assets/{mn-D5Q9B6Jt.js → mn-jJbTslgD.js} +1 -1
- package/dist/assets/{ms-CCzPRldx.js → ms-CUuJHLA4.js} +1 -1
- package/dist/assets/{mt-mjJpN6xW.js → mt-yIcbfxKY.js} +1 -1
- package/dist/assets/{nb-BIlNqdEb.js → nb-D9WNypoj.js} +1 -1
- package/dist/assets/{nl-BE-FwXjQsmV.js → nl-BE-B1vKiw2h.js} +1 -1
- package/dist/assets/{nl-D2uBtIxG.js → nl-DC7b5e90.js} +1 -1
- package/dist/assets/{nn-B0loJ7SV.js → nn-uP4yJ9s0.js} +1 -1
- package/dist/assets/{oc-U7-yH1sO.js → oc-DHTqadJI.js} +1 -1
- package/dist/assets/{pl-mTy0JYgi.js → pl-Bxnnizf5.js} +1 -1
- package/dist/assets/plugin-calendar-b7C35ANT.js +1 -0
- package/dist/assets/plugin-charts-b-yVtmdI.js +7 -0
- package/dist/assets/plugin-chatbot-D1KW_oIO.js +122 -0
- package/dist/assets/plugin-dashboard-DTkPoPEb.js +6 -0
- package/dist/assets/plugin-form-UIRm-FpQ.js +1 -0
- package/dist/assets/plugin-gantt-9dtc8zzX.js +63 -0
- package/dist/assets/plugin-grid-Cp4RKtMJ.js +10 -0
- package/dist/assets/plugin-kanban-B2JOPZIJ.js +1 -0
- package/dist/assets/plugin-map-CBJcVJYk.js +1 -0
- package/dist/assets/{plugin-markdown-D1nTQc1T.js → plugin-markdown-CNlDzqP-.js} +1 -1
- package/dist/assets/plugin-report-IZzgQb-Q.js +59 -0
- package/dist/assets/plugin-timeline-DsmtjcJ3.js +1 -0
- package/dist/assets/plugin-tree-DTRPBdhe.js +1 -0
- package/dist/assets/plugin-view-D9ixsNDG.js +1 -0
- package/dist/assets/plugins-views-CnvkdSJK.js +3 -0
- package/dist/assets/{pt-BR-2KtO5Js1.js → pt-BR-D416seHT.js} +1 -1
- package/dist/assets/{pt-Bet5OOQf.js → pt-DwHBy9_c.js} +1 -1
- package/dist/assets/{ro-37U6sgzi.js → ro-DDf1X3Np.js} +1 -1
- package/dist/assets/{ru-CyuAY-5E.js → ru-8eM3mcgK.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-afAW-MeD.js → runtime-metadata-persistence-DX29lQ62.js} +1 -1
- package/dist/assets/{se-DeJabuC6.js → se-D4JvQeRX.js} +1 -1
- package/dist/assets/{sk-DWEpjfkR.js → sk-DvpgttGI.js} +1 -1
- package/dist/assets/{sl-4oSvNhIR.js → sl-B3gCZ-_a.js} +1 -1
- package/dist/assets/{sq-BjkBCaXW.js → sq-CVaTmL0V.js} +1 -1
- package/dist/assets/{sr-Dxm1DsRS.js → sr-CnH5Ffyz.js} +1 -1
- package/dist/assets/{sr-Latn-Dawg6oP2.js → sr-Latn-Dw9w61q6.js} +1 -1
- package/dist/assets/src-BUry7633.js +2 -0
- package/dist/assets/{src-C8NYjdVm.js → src-DMDT5a27.js} +1 -1
- package/dist/assets/src-ZxH3AOCu.js +16 -0
- package/dist/assets/{studioEntry-nXQP3iL0.js → studioEntry-DAqcBFtr.js} +1 -1
- package/dist/assets/{submitRedirect-jK-cEIbP.js → submitRedirect-iy0oOi7I.js} +1 -1
- package/dist/assets/{sv-CROOGJGz.js → sv-CU7wdxyK.js} +1 -1
- package/dist/assets/{ta-BZnTmFI_.js → ta-DPH6q0HR.js} +1 -1
- package/dist/assets/{te-BN0v0x5t.js → te-BSaThkGV.js} +1 -1
- package/dist/assets/{th-CBjKhp_U.js → th-NXP8_Qb8.js} +1 -1
- package/dist/assets/{tr-x0Ne4N4H.js → tr-DDXoH663.js} +1 -1
- package/dist/assets/types-zod-ChJ30y25.js +1 -0
- package/dist/assets/{ug-sgzNhsKo.js → ug-Guus6pPe.js} +1 -1
- package/dist/assets/ui-components-D8wcRNrt.js +37 -0
- package/dist/assets/ui-layout-BYO3rRIl.js +1 -0
- package/dist/assets/{uk-o_DQ5VHJ.js → uk-uiy4vsp8.js} +1 -1
- package/dist/assets/use-book-data-DFTswcKm.js +1 -0
- package/dist/assets/{useActionModal-CSvbHkQ7.js → useActionModal-h52Z5Pkl.js} +1 -1
- package/dist/assets/useCanAuthorMetadata-TDrVrYGB.js +1 -0
- package/dist/assets/useDatasetCatalog-BOd0Ybr1.js +1 -0
- package/dist/assets/useNavSelDeepLink-67Y4qCNO.js +1 -0
- package/dist/assets/useNavTargetLabel-D8lRdb6O.js +1 -0
- package/dist/assets/useOpenRecordList-C7oqUD3F.js +1 -0
- package/dist/assets/{usePackageL10n-CMx66am-.js → usePackageL10n-Jl2XiF2F.js} +1 -1
- package/dist/assets/{useSettingsLabel-Kkr2q0Oo.js → useSettingsLabel-CSpBDTdy.js} +1 -1
- package/dist/assets/{uz-Cyrl-DbtkQtz_.js → uz-Cyrl-Cmb5bvbf.js} +1 -1
- package/dist/assets/{uz-Be41d4jl.js → uz-DJWxoTz4.js} +1 -1
- package/dist/assets/vendor-objectstack-C4eD5dbT.js +139 -0
- package/dist/assets/{vi-84mZmklk.js → vi-Bb3QoIJC.js} +1 -1
- package/dist/assets/{zh-CN-DD1reegJ.js → zh-CN-C-Hts1ZR.js} +1 -1
- package/dist/assets/{zh-HK-B05u30WI.js → zh-HK-CtBAZ_ZS.js} +1 -1
- package/dist/assets/{zh-TW-Bb-WimPD.js → zh-TW-B7DDahD-.js} +1 -1
- package/dist/chunk-membership.json +116 -104
- package/dist/eager-closure.json +126 -120
- package/dist/index.html +4 -4
- package/dist/sdui.manifest.json +998 -115
- package/package.json +1 -1
- package/dist/assets/AppDocsIndex-F4zDq2zz.js +0 -1
- package/dist/assets/ApprovalsInboxPage-DrEUmaDb.js +0 -1
- package/dist/assets/CreateViewDialog-xyKlpLEW.js +0 -1
- package/dist/assets/DashboardView-CGC-_Om8.js +0 -1
- package/dist/assets/DocPage-CIZE5kdj.js +0 -1
- package/dist/assets/DocsSlug-DXdFdwlS.js +0 -1
- package/dist/assets/ExpressionProvider-DZfMwyMs.js +0 -1
- package/dist/assets/FlowRunsPage-CvY3nJMF.js +0 -1
- package/dist/assets/InterfaceListPage-BdECC_i3.js +0 -1
- package/dist/assets/MarketplacePackagePage-C7NOu2Ir.js +0 -4
- package/dist/assets/ObjectDataPage-BIzp65Mo.js +0 -1
- package/dist/assets/PageView-CVLgCRSF.js +0 -1
- package/dist/assets/ProfilePage-D2qGgxPK.js +0 -1
- package/dist/assets/RecordDetailView-DQKydU7X.js +0 -3
- package/dist/assets/RecordFormPage-BTjwxJIA.js +0 -1
- package/dist/assets/ReportDefaultInspector-DdsQAkd7.js +0 -1
- package/dist/assets/ReportView-GIdKJdOt.js +0 -2
- package/dist/assets/RuntimeDraftBar-BbMdi3Kp.js +0 -1
- package/dist/assets/SchemaForm-C8X1ve4p.js +0 -3
- package/dist/assets/SearchResultsPage-Jwhqsdyo.js +0 -1
- package/dist/assets/SettingsView-D8SMKdrc.js +0 -1
- package/dist/assets/app-shell-eager-leaves-CDVclng4.js +0 -1
- package/dist/assets/appRoute-DbnWDEa1.js +0 -1
- package/dist/assets/data-adapter-DMbe6Njk.js +0 -1
- package/dist/assets/default-inspector-registry-CpL3fFhl.js +0 -1
- package/dist/assets/dist-BXrEV1ag.js +0 -13
- package/dist/assets/drillUrlFilters-hi-2d3DW.js +0 -1
- package/dist/assets/en-AU-C6x7mDhH.js +0 -1
- package/dist/assets/en-GB-0-nho2eK.js +0 -1
- package/dist/assets/en-IE-2fC3BkfV.js +0 -1
- package/dist/assets/en-IN-C1QcFhxn.js +0 -1
- package/dist/assets/en-NZ-C80ptZT7.js +0 -1
- package/dist/assets/en-ZA-ByZDrjeb.js +0 -1
- package/dist/assets/framework-DcWkeiND.js +0 -35
- package/dist/assets/i18n-CEKxYdmD.js +0 -9
- package/dist/assets/i18n-locale-ar-DN7sl3GF.js +0 -4
- package/dist/assets/i18n-locale-de-C40JErvb.js +0 -4
- package/dist/assets/i18n-locale-en-CITPDIHy.js +0 -4
- package/dist/assets/i18n-locale-es-C8DdWN6c.js +0 -4
- package/dist/assets/i18n-locale-fr-COIdEZZl.js +0 -4
- package/dist/assets/i18n-locale-ja-DYF_rU_s.js +0 -4
- package/dist/assets/i18n-locale-ko-B-ODYAtX.js +0 -4
- package/dist/assets/i18n-locale-pt-CK1SyBIm.js +0 -4
- package/dist/assets/i18n-locale-ru-jLzvShMO.js +0 -4
- package/dist/assets/i18n-locale-zh-Bf9Gbbvl.js +0 -4
- package/dist/assets/i18n-runtime-CTgAQF4N.js +0 -1
- package/dist/assets/index-CLyvpiGc.css +0 -2
- package/dist/assets/index-CfnfGw5W.js +0 -20
- package/dist/assets/isSameWeek-DWYeNyh8.js +0 -1
- package/dist/assets/mermaid-GHXKKRXX-DVLc_uym.js +0 -1
- package/dist/assets/metadata-admin-CybaOCdO.js +0 -9
- package/dist/assets/nav-selection-Dzm_mA3C.js +0 -1
- package/dist/assets/plugin-calendar-CKRBcML7.js +0 -1
- package/dist/assets/plugin-charts-DGTJxXCB.js +0 -7
- package/dist/assets/plugin-chatbot-DwtwNA-y.js +0 -122
- package/dist/assets/plugin-dashboard-C1AYKmGX.js +0 -6
- package/dist/assets/plugin-form-CV8ZY04-.js +0 -1
- package/dist/assets/plugin-gantt-BRIb2_8G.js +0 -63
- package/dist/assets/plugin-grid-C9h7mRVv.js +0 -11
- package/dist/assets/plugin-kanban-BcJ0Dhys.js +0 -1
- package/dist/assets/plugin-map-D24ZUOUj.js +0 -1
- package/dist/assets/plugin-report-BfGintAq.js +0 -59
- package/dist/assets/plugin-timeline-CbBRq_qt.js +0 -1
- package/dist/assets/plugin-tree-BNX2A5J5.js +0 -1
- package/dist/assets/plugin-view-DzWQWYyH.js +0 -1
- package/dist/assets/plugins-views-DraK4xz0.js +0 -3
- package/dist/assets/src-B8lv0plz.js +0 -18
- package/dist/assets/src-DoDvT77T.js +0 -1
- package/dist/assets/types-zod-Y2RwUUeJ.js +0 -1
- package/dist/assets/ui-components-BTB1NkUW.js +0 -37
- package/dist/assets/ui-layout-bZfafwJa.js +0 -1
- package/dist/assets/use-book-data-C3eyZJSG.js +0 -1
- package/dist/assets/useOpenRecordList-B5-qaFUx.js +0 -1
- package/dist/assets/vendor-objectstack-XuWC71M9.js +0 -266
- package/dist/assets/vendor-zod-CHLW1iCr.js +0 -64
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$r as e,ei as t}from"./ui-components-BTB1NkUW.js";function n(n,r,i){let[a,o]=e(i?.in,n,r);return+t(a,i)==+t(o,i)}export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{c as e}from"./plugin-chatbot-DwtwNA-y.js";export{e as Mermaid};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,d as n,h as r,m as i,p as a,r as o,t as s,u as c,v as l}from"./vendor-react-BggL7APJ.js";import{a as u}from"./infrastructure-BHSync5f.js";import{$t as d,An as f,Ar as p,Bt as m,Ct as h,Dn as g,Fn as _,In as v,Ln as y,Mn as b,Mr as x,Nn as S,Nr as C,Ot as w,Pr as ee,Qt as T,Rn as te,Tt as E,Vt as D,Xt as O,Zt as k,bi as A,jn as j,jr as ne,kn as M,kr as re,kt as ie,ni as N,on as ae,qn as P,vi as F,wt as I,zn as oe,zt as se}from"./ui-components-BTB1NkUW.js";import{Gr as ce,Jr as L,Wr as le}from"./framework-DcWkeiND.js";import{t as ue}from"./i18n-runtime-CTgAQF4N.js";import{a as de}from"./data-adapter-DMbe6Njk.js";import{r as fe}from"./vendor-ui-utils-DIUdEYii.js";import{t as pe}from"./vendor-icon-arrow-left-DmGEbpkA.js";import{t as R}from"./vendor-icon-arrow-right-RqsZZ458.js";import{t as me}from"./vendor-icon-box-YdZpEqfe.js";import{t as he}from"./vendor-icon-boxes-D-Ov3dJw.js";import{t as ge}from"./vendor-icon-chart-column-DicJIApF.js";import{t as _e}from"./vendor-icon-chevron-right-DbnKwHYQ.js";import{t as ve}from"./vendor-icon-circle-check-Bq3OcFQN.js";import{t as ye}from"./vendor-icon-clock-CTLnah0r.js";import{t as be}from"./vendor-icon-database-C8JGjSkn.js";import{t as xe}from"./vendor-icon-external-link-SBKz5x6R.js";import{t as Se}from"./vendor-icon-eye-C3HaEGOo.js";import{t as Ce}from"./vendor-icon-file-code-corner-CdiQRG_f.js";import{t as we}from"./vendor-icon-file-text-7BKAVNof.js";import{t as Te}from"./vendor-icon-git-compare-arrows-BAqrva2j.js";import{t as Ee}from"./vendor-icon-layers-DXBEefR1.js";import{t as De}from"./vendor-icon-layout-dashboard-wba2hvZp.js";import{t as Oe}from"./vendor-icon-link-2-EAo0juhN.js";import{t as z}from"./vendor-icon-loader-circle-D3PsuVaD.js";import{t as ke}from"./vendor-icon-lock-B_psRnly.js";import{t as Ae}from"./vendor-icon-maximize-2-C215UtMO.js";import{t as je}from"./vendor-icon-minimize-2-CTEy4oVG.js";import{t as Me}from"./vendor-icon-mouse-pointer-2-BK7MBFPs.js";import{t as Ne}from"./vendor-icon-package-B6zAlWd3.js";import{t as Pe}from"./vendor-icon-panel-right-close-B1IgPiA5.js";import{t as Fe}from"./vendor-icon-panel-right-open-DRcsA0VE.js";import{t as Ie}from"./vendor-icon-pencil-CMubUBjW.js";import{t as Le}from"./vendor-icon-plus-BlfcDDsa.js";import{t as Re}from"./vendor-icon-refresh-cw-BGjSPEfJ.js";import{t as ze}from"./vendor-icon-rotate-ccw-clock-DyTX5-aX.js";import{t as Be}from"./vendor-icon-rotate-ccw-lr5YKsxC.js";import{t as Ve}from"./vendor-icon-save-CuavGNuU.js";import{t as He}from"./vendor-icon-search-B2Uqtp_W.js";import{t as Ue}from"./vendor-icon-send-BlZYLCTK.js";import{t as We}from"./vendor-icon-settings-CYQ7xc_F.js";import{t as Ge}from"./vendor-icon-shield-alert-CJYtPI9w.js";import{t as Ke}from"./vendor-icon-shield-check-CdDzbial.js";import{t as qe}from"./vendor-icon-shield-x-C3Af1iLQ.js";import{t as Je}from"./vendor-icon-sliders-horizontal-BsnKXU0c.js";import{t as Ye}from"./vendor-icon-sparkles-RGpJ39Rc.js";import{t as Xe}from"./vendor-icon-table-2-DMQ6UahM.js";import{t as Ze}from"./vendor-icon-trash-BLsWkwB9.js";import{t as B}from"./vendor-icon-triangle-alert-D5n0T3q_.js";import{t as Qe}from"./vendor-icon-undo-2-C9MbW2Vb.js";import{t as $e}from"./vendor-icon-workflow-B9ASq0nN.js";import{t as et}from"./vendor-icon-x-CcLtgRNL.js";import{t as tt}from"./vendor-icon-zap-off-GiimEOkZ.js";import{t as nt}from"./vendor-icon-zap-3ulAPCbu.js";import{a as rt,i as it,o as at,r as ot,s as st,t as ct}from"./createDerive-DvA_JGNq.js";import{o as lt}from"./assistantBus-DoNtw1Tf.js";import{r as V,s as ut,t as H}from"./ActionResultDialog-CLdIyOW6.js";import"./src-B8lv0plz.js";import{C as dt,E as ft,b as pt,o as mt,r as ht,s as gt,t as _t,u as vt,w as yt,x as bt,y as xt}from"./default-inspector-registry-CpL3fFhl.js";import{t as St}from"./getIcon-BEVyC4y3.js";import{a as Ct,n as wt,o as Tt,r as Et}from"./nav-selection-Dzm_mA3C.js";import{F as Dt,N as Ot,d as kt,f as At,j as jt,l as Mt,n as Nt,q as Pt,r as Ft,s as It,t as Lt}from"./SchemaForm-C8X1ve4p.js";import{g as Rt,h as zt,i as U,l as Bt,o as W,r as G,u as Vt}from"./i18n-CEKxYdmD.js";var K=e(l(),1),q=s();function Ht({appSlug:e}={}){let t=n(),r=at(),{entries:i}=st(r),[a,o]=K.useState(!1),[s,c]=K.useState(``),[l,u]=K.useState(null),[d,f]=K.useState(!1),[m,g]=K.useState(0),_=Rt();K.useEffect(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.shiftKey&&e.key.toLowerCase()===`m`&&(e.preventDefault(),o(e=>!e))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),K.useEffect(()=>{if(!a||l!=null||d||i.length===0)return;f(!0);let e=!1;return(async()=>{try{let t=[];await Promise.all(i.map(async e=>{try{let n=await r.list(e.type);for(let r of n??[]){let n=(r&&typeof r==`object`&&`item`in r?r.item:r)??{},i=n?.name;i&&t.push({kind:`item`,type:e.type,name:String(i),label:n?.label,description:n?.description,lock:typeof n?._lock==`string`?n._lock:void 0,lockReason:typeof n?._lockReason==`string`?n._lockReason:void 0})}}catch{}})),e||u(t)}finally{e||f(!1)}})(),()=>{e=!0}},[a,l,d,i,r]);let v=K.useMemo(()=>{let e=s.trim().toLowerCase();if(!e)return i.slice(0,20).map(e=>({kind:`type`,entry:e}));let t=i.filter(t=>t.type.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||Vt(t.type,_,t.label).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)).slice(0,8).map(e=>({kind:`type`,entry:e})),n=(l??[]).filter(t=>t.name.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||t.type.toLowerCase().includes(e)).slice(0,40);return[...t,...n]},[s,i,l]);K.useEffect(()=>{g(0)},[s,a]);function y(n){o(!1);let r=e?`/apps/${e}`:`..`;n.kind===`type`?t(`${r}/metadata/${encodeURIComponent(n.entry.type)}`):t(`${r}/metadata/${encodeURIComponent(n.type)}/${encodeURIComponent(n.name)}`)}function b(e){e.key===`ArrowDown`?(e.preventDefault(),g(e=>Math.min(e+1,v.length-1))):e.key===`ArrowUp`?(e.preventDefault(),g(e=>Math.max(e-1,0))):e.key===`Enter`&&v[m]&&(e.preventDefault(),y(v[m]))}return(0,q.jsx)(re,{open:a,onOpenChange:o,children:(0,q.jsxs)(p,{className:`max-w-2xl p-0 overflow-hidden`,children:[(0,q.jsx)(C,{className:`sr-only`,children:(0,q.jsx)(ee,{children:G(`engine.quickfind.title`,_)})}),(0,q.jsxs)(`div`,{className:`border-b px-3 py-2 flex items-center gap-2`,children:[(0,q.jsx)(He,{className:`h-4 w-4 text-muted-foreground`}),(0,q.jsx)(P,{autoFocus:!0,placeholder:G(`engine.quickfind.placeholder`,_),value:s,onChange:e=>c(e.target.value),onKeyDown:b,className:`border-0 shadow-none focus-visible:ring-0 px-0`}),(0,q.jsx)(h,{children:`esc`})]}),(0,q.jsxs)(`div`,{className:`max-h-[440px] overflow-auto`,children:[d&&(0,q.jsxs)(`div`,{className:`px-3 py-4 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,q.jsx)(z,{className:`h-3.5 w-3.5 animate-spin`}),G(`engine.quickfind.indexing`,_),` `,i.length,`…`]}),!d&&v.length===0&&(0,q.jsx)(`div`,{className:`px-3 py-6 text-xs text-muted-foreground text-center`,children:G(`engine.quickfind.noMatches`,_)}),(0,q.jsx)(`ul`,{role:`listbox`,children:v.map((e,t)=>(0,q.jsx)(`li`,{children:(0,q.jsxs)(`button`,{type:`button`,onClick:()=>y(e),onMouseEnter:()=>g(t),className:`w-full text-left px-3 py-2 flex items-center gap-3 hover:bg-accent `+(t===m?`bg-accent`:``),children:[(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] font-mono shrink-0`,children:e.kind===`type`?`type`:e.type}),(0,q.jsx)(`div`,{className:`min-w-0 flex-1`,children:e.kind===`type`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`text-sm font-medium truncate`,children:Vt(e.entry.type,_,e.entry.label)}),e.entry.description&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.entry.description})]}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`div`,{className:`text-sm font-mono truncate flex items-center gap-1.5`,children:[e.lock&&e.lock!==`none`&&(0,q.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400 shrink-0`,title:e.lockReason??`_lock=${e.lock}`,"aria-label":`locked`,children:(0,q.jsx)(ke,{className:`h-3 w-3`})}),e.name,e.label&&(0,q.jsx)(`span`,{className:`text-muted-foreground font-sans ml-2`,children:e.label})]}),e.description&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.description})]})})]})},e.kind===`type`?`t:${e.entry.type}`:`i:${e.type}:${e.name}`))})]}),(0,q.jsxs)(`div`,{className:`border-t px-3 py-1.5 flex items-center gap-3 text-[10px] text-muted-foreground`,children:[(0,q.jsxs)(`span`,{children:[(0,q.jsx)(h,{children:`↑`}),` `,(0,q.jsx)(h,{children:`↓`}),` navigate`]}),(0,q.jsxs)(`span`,{children:[(0,q.jsx)(h,{children:`↵`}),` open`]}),(0,q.jsxs)(`span`,{className:`ml-auto`,children:[(0,q.jsx)(h,{children:`⌘`}),(0,q.jsx)(h,{children:`⇧`}),(0,q.jsx)(h,{children:`M`}),` toggle`]})]})]})})}var Ut=new Set([`system`,`cloud`]);function Wt(e){let t=(e??[]).map(e=>{let t=e&&typeof e==`object`&&`item`in e?e.item:e,n=t?.manifest??t??{};return{id:n.id,scope:n.scope,name:n.name||n.id}}).filter(e=>e.id&&!Ut.has(e.scope));return t.sort((e,t)=>e.name.localeCompare(t.name)),t.map(e=>({id:e.id,name:e.name}))}var Gt={data:be,ui:Ee,automation:$e,ai:Ye,system:We,platform:We,identity:Ke,security:Ke},Kt=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],qt=new Set([`field`,`package`]);function Jt(){let e=at(),{loading:t,error:n,entries:r}=st(e),a=Rt(),[s,c]=K.useState(``),[l,u]=K.useState(`all`),[d,f]=K.useState(!1),[p,m]=i(),[g,_]=K.useState(null);K.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;_(Wt(n))}catch{t||_([])}})(),()=>{t=!0}},[e]);let v=p.get(`package`),y=K.useMemo(()=>g?v&&g.some(e=>e.id===v)?v:g[0]?.id??null:null,[g,v]);K.useEffect(()=>{if(!g||g.length===0||v&&g.some(e=>e.id===v))return;let e=new URLSearchParams(p);e.set(`package`,g[0].id),m(e,{replace:!0})},[g,v]);let{byType:b,warnByType:x,summary:S,countsByType:C,lockedByType:ee,packagesByType:T,loading:te}=rt(e,`warning`,y??void 0),D=K.useMemo(()=>r.filter(e=>qt.has(e.type)||!y?!1:(T[e.type]??[]).includes(y)),[r,y,T]),O=K.useMemo(()=>{let e={all:D.length};for(let t of D){let n=t.domain??`other`;e[n]=(e[n]??0)+1}return e},[D]),k=D.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate).length,A=D.filter(e=>{if(d&&!(e.allowOrgOverride||e.allowRuntimeCreate)||l!==`all`&&(e.domain??`other`)!==l)return!1;if(s){let t=s.toLowerCase();if(!(e.type.toLowerCase().includes(t)||(e.label??``).toLowerCase().includes(t)||Vt(e.type,a,e.label).toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)))return!1}return!0}),j=K.useMemo(()=>{let e={};for(let t of A)(e[t.domain??`other`]??=[]).push(t);return Object.entries(e).sort(([e],[t])=>{let n=Kt.indexOf(e),r=Kt.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)})},[A]);return t||g===null||y&&te?(0,q.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:G(`engine.directory.loading`,a)}):n?(0,q.jsxs)(`div`,{className:`p-6 text-sm text-destructive`,children:[G(`engine.directory.loadFailed`,a),`: `,n]}):(0,q.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,q.jsx)(`h1`,{className:`text-xl font-semibold`,children:G(`engine.directory.title`,a)}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 max-w-3xl`,dangerouslySetInnerHTML:{__html:U(`engine.directory.description`,a,{count:`<strong class="text-foreground">${D.length}</strong>`,writable:k})}}),(0,q.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 flex-wrap`,children:[(0,q.jsxs)(`div`,{className:`relative flex-1 min-w-[240px] max-w-lg`,children:[(0,q.jsx)(He,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,q.jsx)(P,{className:`pl-8`,placeholder:G(`engine.directory.search`,a),value:s,onChange:e=>c(e.target.value)})]}),(0,q.jsxs)(F,{variant:d?`default`:`outline`,size:`sm`,onClick:()=>f(e=>!e),children:[G(`engine.directory.writableOnly`,a),` (`,k,`)`]}),S.total>0&&(0,q.jsx)(F,{asChild:!0,variant:`outline`,size:`sm`,className:`border-destructive/40 text-destructive hover:bg-destructive/10 hover:text-destructive`,children:(0,q.jsxs)(o,{to:`./_diagnostics`,children:[(0,q.jsx)(B,{className:`h-3.5 w-3.5 mr-1`}),U(`engine.directory.diagnosticsLink`,a,{count:S.total})]})}),(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground flex items-center gap-1.5`,children:[G(`engine.directory.quickFind`,a),` `,(0,q.jsx)(h,{children:`⌘`}),(0,q.jsx)(h,{children:`⇧`}),(0,q.jsx)(h,{children:`M`})]})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-3 flex-wrap`,children:[(0,q.jsx)(Yt,{domain:`all`,label:G(`engine.directory.all`,a),active:l===`all`,count:O.all??0,onClick:()=>u(`all`)}),Kt.filter(e=>O[e]).map(e=>(0,q.jsx)(Yt,{domain:e,label:Bt(e,a),active:l===e,count:O[e]??0,onClick:()=>u(e)},e))]})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[g.length===0&&(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:`No project packages installed`}),(0,q.jsx)(E,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),g.length>0&&A.length===0&&(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:G(`engine.directory.noMatches`,a)}),(0,q.jsx)(E,{children:G(`engine.directory.noMatchesHint`,a)})]}),j.map(([e,t])=>{let n=Gt[e]??me;return(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5`,children:[(0,q.jsx)(n,{className:`h-3.5 w-3.5`}),Bt(e,a),` (`,t.length,`)`]}),(0,q.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t.map(e=>{let t=C[e.type]??0;return(0,q.jsx)(Xt,{entry:e,locale:a,invalidCount:b[e.type]??0,warnCount:x[e.type]??0,lockedCount:ee[e.type]??0,itemCount:t,packageFilter:y??void 0},e.type)})})]},e)})]}),(0,q.jsx)(Ht,{})]})}function Yt({domain:e,label:t,active:n,count:r,onClick:i}){return(0,q.jsxs)(`button`,{type:`button`,onClick:i,className:`px-2.5 py-1 rounded-full text-xs border transition-colors `+(n?`bg-primary text-primary-foreground border-primary`:`bg-background hover:bg-accent border-border text-muted-foreground`),children:[t??e,` `,(0,q.jsxs)(`span`,{className:`opacity-70 ml-0.5`,children:[`(`,r,`)`]})]})}function Xt({entry:e,locale:t,invalidCount:n=0,warnCount:r=0,itemCount:i=0,lockedCount:a=0,packageFilter:s}){let c=Vt(e.type,t,e.label),l=s?`./${encodeURIComponent(e.type)}?package=${encodeURIComponent(s)}`:`./${encodeURIComponent(e.type)}`;return(0,q.jsxs)(o,{to:l,className:`block p-4 border rounded-lg hover:bg-accent transition-colors `+(n>0?`border-destructive/40 hover:border-destructive`:`hover:border-primary`),children:[(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`font-medium truncate flex items-center gap-1.5`,children:[n>0&&(0,q.jsx)(`span`,{title:U(`engine.directory.invalidTooltip`,t??`en`,{count:n}),"aria-label":U(`engine.directory.invalidTooltip`,t??`en`,{count:n}),children:(0,q.jsx)(B,{className:`h-3.5 w-3.5 text-destructive shrink-0`})}),c]}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground font-mono`,children:e.type})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,q.jsx)(N,{variant:`secondary`,className:`text-[10px] tabular-nums`,title:U(`engine.directory.itemCountTooltip`,t??`en`,{count:i}),children:i}),n>0&&(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,title:U(`engine.directory.invalidTooltip`,t??`en`,{count:n}),children:n}),r>0&&(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06]`,title:U(`engine.directory.warnTooltip`,t??`en`,{count:r}),children:r}),a>0&&(0,q.jsxs)(N,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06] inline-flex items-center gap-0.5 px-1.5`,title:`${a} locked item${a===1?``:`s`} — see ADR-0010`,"aria-label":`${a} locked items`,children:[(0,q.jsx)(ke,{className:`h-2.5 w-2.5`}),a]}),e.allowOrgOverride?(0,q.jsx)(N,{className:`text-[10px] `+(e.overrideSource===`env`?`bg-amber-100 text-amber-800 hover:bg-amber-100`:`bg-emerald-100 text-emerald-800 hover:bg-emerald-100`),title:e.overrideSource===`env`?`Writable via OBJECTSTACK_METADATA_WRITABLE env var`:`Writable per ADR-0005 overlay opt-in`,children:G(`engine.badge.writable`,t)}):e.allowRuntimeCreate?(0,q.jsx)(N,{className:`text-[10px] bg-sky-100 text-sky-800 hover:bg-sky-100`,title:`Code-shipped items are locked; new items can be created at runtime`,children:G(`engine.badge.createOnly`,t)}):(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] text-muted-foreground`,children:G(`engine.badge.readOnly`,t)})]})]}),e.description&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground mt-2 line-clamp-2`,children:e.description})]})}var Zt={primary:`default`,secondary:`secondary`,danger:`destructive`,ghost:`ghost`,link:`link`};function Qt(e,t,n){return e.indexOf("${")===-1?e:e.replace(/\$\{(param|ctx)\.([\w.]+)\}/g,(e,r,i)=>{let a=r===`param`?n:t,o=i.split(`.`).reduce((e,t)=>e?.[t],a);return o==null?``:encodeURIComponent(String(o))})}function $t({entry:e,location:t,recordId:n,onAfter:r}){let[i,a]=K.useState(null),[o,s]=K.useState({open:!1,params:[]}),[c,l]=K.useState({open:!1}),d=K.useMemo(()=>u(),[]),f=K.useMemo(()=>(e?.actions??[]).filter(e=>L(e,t)),[e?.actions,t]);if(f.length===0)return null;let p=(e,t)=>new Promise(n=>{s({open:!0,params:e,title:t,resolve:n})}),m=async e=>{let t=e.label??e.name;if(e.type!==`api`){fe.error(`Action “${t}”: type "${e.type??`script`}" is not supported here yet.`);return}if(e.confirmText&&!window.confirm(e.confirmText))return;let i;if(Array.isArray(e.params)&&e.params.length>0){let n=await p(e.params,t);if(n==null)return;i=n}else i=e.params??{};let o={recordId:n,origin:window.location.origin},s=Qt(e.target??``,o,i);if(!s){fe.error(`Action “${t}” has no target.`);return}let c=``.replace(/\/+$/,``),u=/^https?:\/\//i.test(s)?s:`${c}${s}`,f=(e.method||`POST`).toUpperCase();a(e.name);try{let n={method:f,headers:{"Content-Type":`application/json`},credentials:`include`};f!==`GET`&&f!==`DELETE`&&(n.body=JSON.stringify(i));let a=await d(u,n),o=null;try{o=await a.json()}catch{}let s=o&&typeof o.success==`boolean`&&`data`in o?o.data:o;if(!a.ok||o&&o.success===!1){let n=o?.error,r=(typeof n==`object`&&n?n.message:void 0)||(typeof n==`string`?n:void 0)||o?.message||`HTTP ${a.status} ${a.statusText}`.trim();fe.error(`${e.errorMessage?`${e.errorMessage}: `:``}${t}: ${r}`);return}if(e.resultDialog)l({open:!0,spec:e.resultDialog,data:s??{}});else{let n=e.successMessage||(typeof s?.message==`string`?s.message:`${t} ✓`);fe.success(n)}e.refreshAfter&&r?.()}catch(e){fe.error(`${t}: ${e?.message??String(e)}`)}finally{a(null)}};return(0,q.jsxs)(q.Fragment,{children:[f.map(e=>{let t=e.icon?St(e.icon):null,n=i===e.name;return(0,q.jsxs)(F,{size:`sm`,variant:Zt[e.variant??`secondary`]??`secondary`,disabled:n,onClick:()=>m(e),title:e.label??e.name,children:[n?(0,q.jsx)(z,{className:`h-4 w-4 mr-1 animate-spin`}):t?(0,q.jsx)(t,{className:`h-4 w-4 mr-1`}):null,e.label??e.name]},e.name)}),(0,q.jsx)(V,{state:o,onOpenChange:e=>{e||s(e=>({...e,open:!1}))}}),(0,q.jsx)(H,{state:c,onAcknowledge:()=>l({open:!1})})]})}function en(e,t){if(t===`overlay`||t===`runtime`)return`runtime`;if(t===`code`||t===`artifact`)return`artifact`;let n=e._packageId;return!n||n===`sys_metadata`?`runtime`:`artifact`}function tn({type:e}){let n=a(),r=e??n.type??``;if(r===`package`){let e=n.appName??`studio`;return(0,q.jsx)(t,{to:`/apps/${e}/component/developer/packages`,replace:!0})}let i=dt(r);if(i?.ListPage){let e=i.ListPage;return(0,q.jsx)(e,{type:r})}return(0,q.jsx)(nn,{type:r,appName:n.appName})}function nn({type:e,appName:t}){let r=n(),a=at(),{entries:s}=st(a),c=s.find(t=>t.type===e),l=ft(e,c),[u,d]=K.useState([]),[f,p]=K.useState(!0),[m,h]=K.useState(null),[g,b]=K.useState(``),[x,S]=K.useState(`all`),[C,ee]=i(),[T,D]=K.useState(0),[O,k]=K.useState(null);K.useEffect(()=>{let e=!1;return(async()=>{try{let t=await a.list(`package`);if(e)return;k(Wt(t))}catch{e||k([])}})(),()=>{e=!0}},[a]);let[A,j]=K.useState(null);K.useEffect(()=>{let e=!1;if(!t){j(null);return}return(async()=>{try{let n=await a.list(`app`);if(e)return;let r=(n??[]).map(e=>e&&typeof e==`object`&&`item`in e?e.item:e).find(e=>e?.name===t||e?._packageId===t);j(r?._packageId??null)}catch{e||j(null)}})(),()=>{e=!0}},[a,t]);let ne=C.get(`package`),M=K.useMemo(()=>{if(!O)return null;if(ne&&O.some(e=>e.id===ne))return ne;if(O.length===0)return null;if(A&&O.some(e=>e.id===A))return A;let e=new Map;for(let t of u){let n=t.item?._packageId;n&&n!==`sys_metadata`&&e.set(n,(e.get(n)??0)+1)}let t=null,n=0;for(let r of O){let i=e.get(r.id)??0;i>n&&(t=r.id,n=i)}return t??O[0]?.id??null},[O,ne,u,A]);K.useEffect(()=>{if(!O||O.length===0||ne&&O.some(e=>e.id===ne)||!(A&&O.some(e=>e.id===A))&&u.length===0||!M)return;let e=new URLSearchParams(C);e.set(`package`,M),ee(e,{replace:!0})},[O,ne,u,M,A]);let re=M?`?package=${encodeURIComponent(M)}`:``,[ie,ae]=K.useState(!1),se=K.useCallback(()=>{let e=O??[];if(O!==null&&e.length===0){ae(!0);return}if(e.length>0&&!M){r(`./new?package=${encodeURIComponent(e[0].id)}`);return}r(`./new${re}`)},[O,M,re,r]);K.useEffect(()=>{let t=!1;return p(!0),h(null),(async()=>{try{let n=await a.list(e);if(t)return;let r=(n??[]).map(e=>{let t=(e&&typeof e==`object`&&`item`in e?e.item:e)??{},n=t?._diagnostics??e?._diagnostics??void 0;return{raw:e,item:t,source:en(t,e?.source),diagnostics:n}});d(r),p(!1)}catch(e){t||(h(e?.message??String(e)),p(!1))}})(),()=>{t=!0}},[a,e,T]);let ce=l.searchableFields??[`name`,`label`,`description`],L=K.useMemo(()=>u.filter(e=>l.listFilter&&!l.listFilter(e.item)||!M?!1:e.item?._packageId===M),[u,M,l]),le=L.filter(e=>!(!it(e.item,g,ce)||x!==`all`&&e.source!==x)),ue=K.useMemo(()=>{let e={all:L.length,artifact:0,runtime:0};for(let t of L)e[t.source]++;return e},[L]),de=K.useMemo(()=>L.filter(e=>e.diagnostics&&e.diagnostics.valid===!1).length,[L]),fe=K.useMemo(()=>L.filter(e=>e.diagnostics&&e.diagnostics.valid!==!1&&(e.diagnostics.warnings?.length??0)>0).length,[L]),pe=l.listColumns??rn(l.primaryKey??`name`),R=Rt(),me=Vt(e,R,c?.label??e),he=e=>{let t=`engine.list.col.${e.key}`,n=G(t,R);return n===t?e.label:n};return(0,q.jsx)(bt,{entry:c??{type:e,label:e},stats:[{label:G(`engine.list.items`,R),value:L.length},{label:G(`engine.list.filtered`,R),value:le.length},...de>0?[{label:G(`engine.list.invalid`,R),value:(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-destructive`,children:[(0,q.jsx)(B,{className:`w-3.5 h-3.5`}),de]})}]:[],...fe>0?[{label:G(`engine.list.warnings`,R),value:(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-amber-600 dark:text-amber-400`,children:[(0,q.jsx)(B,{className:`w-3.5 h-3.5`}),fe]})}]:[]],actions:(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)($t,{entry:c,location:`list_toolbar`,onAfter:()=>D(e=>e+1)}),(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>D(e=>e+1),title:G(`engine.list.refresh`,R),children:(0,q.jsx)(Re,{className:`h-4 w-4`})}),(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,q.jsxs)(F,{size:`sm`,variant:l.createFields?`default`:`outline`,onClick:se,title:l.createFields?U(`engine.list.createHint`,R,{type:me}):void 0,children:[(0,q.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.list.create`,R)]})]}),children:(0,q.jsxs)(`div`,{className:`p-6 space-y-4`,children:[(0,q.jsx)(vt,{open:ie,onOpenChange:ae,onCreated:e=>r(`./new?package=${encodeURIComponent(e)}`)}),(0,q.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,q.jsxs)(`div`,{className:`relative flex-1 min-w-[200px] max-w-md`,children:[(0,q.jsx)(He,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,q.jsx)(P,{className:`pl-8`,placeholder:G(`engine.list.search`,R),value:g,onChange:e=>b(e.target.value)})]}),(0,q.jsxs)(_,{value:x,onValueChange:S,children:[(0,q.jsx)(te,{className:`w-[180px]`,children:(0,q.jsx)(oe,{})}),(0,q.jsxs)(v,{children:[(0,q.jsxs)(y,{value:`all`,children:[G(`engine.list.allSources`,R),` (`,ue.all,`)`]}),(0,q.jsxs)(y,{value:`artifact`,children:[G(`engine.list.source.artifact`,R),` (`,ue.artifact,`)`]}),(0,q.jsxs)(y,{value:`runtime`,children:[G(`engine.list.source.runtime`,R),` (`,ue.runtime,`)`]})]})]})]}),(f||O===null)&&(0,q.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[G(`engine.edit.loading`,R),` `,e,`…`]}),m&&(0,q.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:m}),!f&&!m&&O!==null&&O.length===0&&(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:`No project packages installed`}),(0,q.jsx)(E,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),!f&&!m&&O!==null&&O.length>0&&le.length===0&&(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:L.length===0?U(`engine.list.emptyType`,R,{type:me}):U(`engine.list.emptyQuery`,R,{query:g})}),(0,q.jsx)(E,{children:l.emptyStateHint??(c?.allowOrgOverride||c?.allowRuntimeCreate?U(`engine.list.createHint`,R,{type:me}):G(`engine.list.readOnlyHint`,R))}),L.length===0&&(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,q.jsx)(`div`,{className:`mt-4`,children:(0,q.jsxs)(F,{onClick:se,children:[(0,q.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.list.create`,R)]})})]}),!f&&le.length>0&&(0,q.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,q.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,q.jsxs)(`tr`,{children:[pe.map(e=>(0,q.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,style:e.width?{width:e.width}:void 0,children:he(e)},e.key)),(0,q.jsx)(`th`,{className:`px-3 py-2 text-right font-medium w-[80px]`,children:G(`engine.list.col.source`,R)})]})}),(0,q.jsx)(`tbody`,{className:`divide-y`,children:le.map((e,t)=>{let n=l.primaryKey??`name`,r=String(e.item[n]??`(unnamed-${t})`),i=e.item._packageId,a=i&&i!==`sys_metadata`?`?package=${encodeURIComponent(i)}`:re,s=e.diagnostics?.valid===!1,c=e.diagnostics?.errors??[],u=e.diagnostics?.warnings??[],d=!s&&u.length>0,f=s?c.slice(0,3).map(e=>`${e.path||`(root)`}: ${e.message}`).join(`
|
|
2
|
-
`)+(c.length>3?`\n+${c.length-3} more`:``):d?u.slice(0,3).map(e=>`${e.path||`(root)`}: ${e.message}`).join(`
|
|
3
|
-
`)+(u.length>3?`\n+${u.length-3} more`:``):``;return(0,q.jsxs)(`tr`,{className:`hover:bg-accent/50 `+(s?`bg-destructive/[0.04]`:d?`bg-amber-500/[0.05]`:``),children:[pe.map((t,n)=>{let i=e.item[t.key],l=t.render?t.render(i,e.item):J(i);return(0,q.jsx)(`td`,{className:`px-3 py-2 align-top`,children:n===0?(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[s&&(0,q.jsx)(`span`,{className:`inline-flex`,"aria-label":G(`engine.list.invalidTitle`,R),title:`${U(`engine.list.invalidCount`,R,{count:c.length})}\n${f}`,children:(0,q.jsx)(B,{className:`w-3.5 h-3.5 text-destructive shrink-0`})}),d&&(0,q.jsx)(`span`,{className:`inline-flex`,"aria-label":G(`engine.list.warnTitle`,R),title:`${U(`engine.list.warnCount`,R,{count:u.length})}\n${f}`,children:(0,q.jsx)(B,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 shrink-0`})}),(0,q.jsx)(o,{to:`./${encodeURIComponent(r)}${a}`,className:`text-primary hover:underline font-mono`,children:l})]}):l},t.key)}),(0,q.jsxs)(`td`,{className:`px-3 py-2 text-right align-top`,children:[e.item._lock&&e.item._lock!==`none`&&(0,q.jsx)(`span`,{className:`inline-flex items-center mr-1 text-amber-600 dark:text-amber-400`,title:e.item._lockReason??`_lock=${String(e.item._lock)}`,children:(0,q.jsx)(ke,{className:`h-3 w-3`})}),(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] `+(e.source===`artifact`?`border-sky-500/50 text-sky-700 dark:text-sky-300`:`border-emerald-500/50 text-emerald-700 dark:text-emerald-300`),title:e.source===`artifact`?`${G(`engine.list.source.artifactDesc`,R)}${e.item._packageId?` (${e.item._packageId})`:``}`:G(`engine.list.source.runtimeDesc`,R),children:G(`engine.list.source.${e.source}`,R)})]})]},r+t)})})]})})]})})}function rn(e){return[{key:e,label:e,width:`30%`},{key:`label`,label:`Label`,width:`30%`},{key:`description`,label:`Description`}]}function J(e){if(e==null||e===``)return(0,q.jsx)(ie,{});if(typeof e==`boolean`)return e?`✓`:`✗`;if(typeof e==`object`)try{return(0,q.jsx)(`code`,{className:`font-mono text-xs`,children:JSON.stringify(e).slice(0,60)})}catch{return String(e)}return String(e)}var Y={unchanged:{badge:`bg-muted text-muted-foreground border border-border`,row:``},modified:{badge:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,row:`bg-amber-50/50 dark:bg-amber-950/20`},added:{badge:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,row:`bg-emerald-50/50 dark:bg-emerald-950/20`},removed:{badge:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`,row:`bg-rose-50/50 dark:bg-rose-950/20`}};function an(e,t){let n=on(e)?e:{},r=on(t)?t:{},i=new Set([...Object.keys(n),...Object.keys(r)]),a=[];for(let e of i){let t=e in n,i=e in r,o=n[e],s=r[e],c;c=t&&!i?`removed`:!t&&i?`added`:sn(o)===sn(s)?`unchanged`:`modified`,a.push({key:e,status:c,codeValue:o,effectiveValue:s})}let o={modified:0,added:1,removed:2,unchanged:3};return a.sort((e,t)=>o[e.status]===o[t.status]?e.key.localeCompare(t.key):o[e.status]-o[t.status]),a}function on(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function sn(e){try{return JSON.stringify(e,(e,t)=>on(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}catch{return String(e)}}function cn(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function ln(e,t){if(e==null)return 0;let n=0;for(let r of an(e,t))r.status!==`unchanged`&&(n+=1);return n}function un({layered:e,loading:t,locale:n}){if(t)return(0,q.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:G(`engine.edit.loading`,n)});if(!e)return(0,q.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:G(`engine.layers.diff.noBaseline`,n)});let r=e.overlay!=null;return(0,q.jsxs)(O,{defaultValue:`diff`,className:`w-full`,children:[(0,q.jsxs)(T,{className:`grid grid-cols-4 w-fit`,children:[(0,q.jsx)(d,{value:`diff`,children:G(`engine.layers.diff`,n)}),(0,q.jsxs)(d,{value:`code`,children:[G(`engine.layers.code`,n),(0,q.jsx)(N,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:W(`layer`,`artifact`,n)})]}),(0,q.jsxs)(d,{value:`overlay`,children:[G(`engine.layers.overlay`,n),r?(0,q.jsx)(N,{className:`ml-1.5 text-[10px] bg-emerald-600 text-emerald-50`,children:W(`layer`,e.overlayScope??`set`,n)}):(0,q.jsx)(N,{variant:`outline`,className:`ml-1.5 text-[10px] text-muted-foreground`,children:W(`layer`,`none`,n)})]}),(0,q.jsxs)(d,{value:`effective`,children:[G(`engine.layers.effective`,n),(0,q.jsx)(N,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:W(`layer`,`merged`,n)})]})]}),(0,q.jsx)(k,{value:`diff`,className:`mt-3`,children:(0,q.jsx)(dn,{code:e.code,effective:e.effective,locale:n})}),(0,q.jsx)(k,{value:`code`,className:`mt-3`,children:(0,q.jsx)(pn,{payload:e.code,emptyHint:G(`engine.layers.diff.noBaseline`,n)})}),(0,q.jsx)(k,{value:`overlay`,className:`mt-3`,children:(0,q.jsx)(pn,{payload:e.overlay,emptyHint:G(`engine.layers.diff.noChanges`,n)})}),(0,q.jsx)(k,{value:`effective`,className:`mt-3`,children:(0,q.jsx)(pn,{payload:e.effective,emptyHint:`No effective value resolved.`})})]})}function dn({code:e,effective:t,locale:n}){let[r,i]=K.useState(!1),a=K.useMemo(()=>e==null?[]:an(e,t),[e,t]),o=K.useMemo(()=>a.reduce((e,t)=>(e[t.status]+=1,e),{unchanged:0,modified:0,added:0,removed:0}),[a]);if(e==null)return(0,q.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:G(`engine.layers.diff.noBaseline`,n)});let s=r?a:a.filter(e=>e.status!==`unchanged`),c=o.modified>0||o.added>0||o.removed>0;return(0,q.jsxs)(`div`,{className:`space-y-3`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 flex-wrap`,children:[(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:U(`engine.layers.diff.summary`,n,{modified:o.modified,added:o.added,removed:o.removed})}),(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground cursor-pointer select-none`,children:[(0,q.jsx)(ae,{checked:r,onCheckedChange:i,"aria-label":G(`engine.layers.diff.showUnchanged`,n)}),G(`engine.layers.diff.showUnchanged`,n),(0,q.jsx)(N,{variant:`outline`,className:`ml-1 text-[10px]`,children:o.unchanged})]})]}),!c&&!r?(0,q.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:G(`engine.layers.diff.noChanges`,n)}):(0,q.jsxs)(`div`,{className:`rounded border overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] bg-muted/50 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,q.jsx)(`div`,{className:`px-3 py-2`,children:G(`engine.layers.diff.field`,n)}),(0,q.jsx)(`div`,{className:`px-3 py-2`,children:G(`engine.layers.diff.code`,n)}),(0,q.jsx)(`div`,{className:`px-3 py-2`,children:G(`engine.layers.diff.effective`,n)}),(0,q.jsx)(`div`,{className:`px-3 py-2`,children:G(`engine.layers.diff.status`,n)})]}),(0,q.jsx)(`div`,{className:`divide-y`,children:s.map(e=>{let t=Y[e.status];return(0,q.jsxs)(`div`,{className:A(`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] text-xs`,t.row),children:[(0,q.jsx)(`div`,{className:`px-3 py-2 font-mono text-foreground truncate`,title:e.key,children:e.key}),(0,q.jsx)(fn,{value:e.codeValue,muted:e.status===`added`}),(0,q.jsx)(fn,{value:e.effectiveValue,muted:e.status===`removed`}),(0,q.jsx)(`div`,{className:`px-3 py-2`,children:(0,q.jsx)(`span`,{className:A(`inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium`,t.badge),children:G(`engine.layers.diff.${e.status}`,n)})})]},e.key)})})]})]})}function fn({value:e,muted:t}){let n=cn(e);return(0,q.jsx)(`div`,{className:A(`px-3 py-2 font-mono break-all`,t||e===void 0?`text-muted-foreground italic`:`text-foreground`),title:n.length>200?n:void 0,children:n.length>200?`${n.slice(0,200)}…`:n})}function pn({payload:e,emptyHint:t}){if(e==null)return(0,q.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:t});let n;try{n=JSON.stringify(e,null,2)}catch{n=String(e)}return(0,q.jsx)(`pre`,{className:`rounded border bg-muted/30 p-3 text-xs font-mono overflow-auto max-h-[420px]`,children:n})}var mn={modified:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,added:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,removed:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`},hn={modified:`bg-amber-50/50 dark:bg-amber-950/20`,added:`bg-emerald-50/50 dark:bg-emerald-950/20`,removed:`bg-rose-50/50 dark:bg-rose-950/20`};function gn(e,t){return G(e===`added`?`designer.canvas.diffAdded`:e===`removed`?`designer.canvas.diffRemoved`:`designer.canvas.diffChanged`,t)}function _n(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e.length>200?`${e.slice(0,200)}…`:e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{let t=JSON.stringify(e);return t.length>200?`${t.slice(0,200)}…`:t}catch{return String(e)}}function vn(e,t){let n=0;for(let r of an(e,t))r.status!==`unchanged`&&(n+=1);return n}function yn({published:e,draft:t,locale:n,className:r}){let i=K.useMemo(()=>an(e,t).filter(e=>e.status!==`unchanged`),[e,t]);return i.length===0?(0,q.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground ${r??``}`,children:G(`designer.draftReview.empty`,n)}):(0,q.jsx)(`div`,{className:`flex flex-col gap-1.5 ${r??``}`,"data-testid":`draft-review-panel`,children:i.map(e=>{let t=e.status;return(0,q.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2 rounded-md px-2.5 py-1.5 text-xs ${hn[t]}`,children:[(0,q.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded px-1.5 py-px text-[10px] font-medium uppercase tracking-wide ${mn[t]}`,children:gn(t,n)}),(0,q.jsx)(`code`,{className:`font-mono font-medium text-foreground`,children:e.key}),t===`added`?(0,q.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:_n(e.effectiveValue)}):t===`removed`?(0,q.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:_n(e.codeValue)}):(0,q.jsxs)(`span`,{className:`inline-flex items-baseline gap-1.5 text-muted-foreground`,children:[(0,q.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:_n(e.codeValue)}),(0,q.jsx)(`span`,{"aria-hidden":`true`,children:`→`}),(0,q.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:_n(e.effectiveValue)})]})]},e.key)})})}var bn={action:`record`,hook:`record`,validation:`record`,flow:`flattened`,permission:`flattened`,sharing_rule:`flattened`,page:`none`,__object_field:`none`,__object_index:`none`,__object_validation:`none`,analytics_cube:`none`,api:`none`,app:`none`,agent:`none`,book:`none`,connector:`none`,dashboard:`none`,datasource:`none`,email_template:`none`,field:`none`,index:`none`,job:`none`,mapping:`none`,object:`none`,position:`none`,report:`none`,skill:`none`,tool:`none`,translation:`none`,view:`none`,webhook:`none`};function xn(e){return bn[e]??`none`}var Sn={action:`client`,hook:`server`,validation:`server`};function Cn(e){return Sn[e]}function wn(e){return Cn(e)===`server`?Ot:void 0}function Tn(e){return Cn(e)===`client`?jt:void 0}function En({type:e,name:t,parentItem:r,onOpen:i}){let a=at(),o=n(),s=K.useMemo(()=>yt(e),[e]),[c,l]=K.useState([]),[u,d]=K.useState(``),[f,p]=K.useState({});if(K.useEffect(()=>{if(s.length===0){l([]);return}let e=!1,n=[...s].sort((e,t)=>(e.anchor.order??999)-(t.anchor.order??999)).map(e=>{if(e.anchor.source===`embedded`){let t=e.anchor.extract&&r?e.anchor.extract(r):[];return{childType:e.type,anchor:e.anchor,loading:!1,error:null,items:t.map(Dn)}}return{childType:e.type,anchor:e.anchor,loading:!0,error:null,items:[]}});return l(n),Promise.all(n.map(async n=>{if(n.anchor.source===`embedded`)return n;try{let r=await a.list(n.childType);if(e)return n;let i=n.anchor.match??(()=>!1),o=r.filter(e=>i(e,t)).map(e=>Dn(e));return{...n,loading:!1,items:o}}catch(t){return e?n:{...n,loading:!1,error:t instanceof Error?t.message:String(t)}}})).then(t=>{e||l(t)}),()=>{e=!0}},[a,e,t,s,r]),s.length===0)return(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:`No related metadata`}),(0,q.jsxs)(E,{children:[`No metadata types are configured to anchor at `,(0,q.jsx)(`code`,{children:e}),`. You can register one via`,` `,(0,q.jsx)(`code`,{className:`font-mono`,children:`registerMetadataResource`}),`.`]})]});let m=c.reduce((e,t)=>e+t.items.length,0),h=c.some(e=>e.loading),g=u.trim().toLowerCase();return(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,q.jsx)(He,{className:`absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,q.jsx)(P,{placeholder:`Search related…`,value:u,onChange:e=>d(e.target.value),className:`pl-8 h-8 text-sm`})]}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:h?`Scanning…`:`${m} item${m===1?``:`s`}`})]}),c.map(n=>{let r=g?n.items.filter(e=>e.name.toLowerCase().includes(g)||(e.label??``).toLowerCase().includes(g)):n.items,a=f[n.childType]??!1;return!(!g||r.length>0)&&!n.loading?null:(0,q.jsxs)(`div`,{className:`border rounded-lg overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`w-full flex items-center gap-2 px-3 py-2 bg-muted/40`,children:[(0,q.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 flex-1 text-left hover:opacity-80`,onClick:()=>p(e=>({...e,[n.childType]:!a})),children:[(0,q.jsx)(_e,{className:A(`h-4 w-4 text-muted-foreground transition-transform`,!a&&`rotate-90`)}),(0,q.jsx)(`div`,{className:`text-sm font-medium`,children:n.anchor.groupLabel??n.childType}),(0,q.jsx)(N,{variant:`outline`,className:`text-[10px]`,children:n.loading?`…`:r.length})]}),(0,q.jsx)(F,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,onClick:()=>{if(n.anchor.source===`embedded`){if(typeof window<`u`){let e=new URL(window.location.href);e.searchParams.set(`tab`,`form`),e.searchParams.delete(`open`),window.location.assign(e.toString())}return}o(`../../${encodeURIComponent(n.childType)}/_new?anchor=${encodeURIComponent(`${e}:${t}`)}`)},title:n.anchor.source===`embedded`?`Edit in Form tab`:`New ${n.childType}`,children:(0,q.jsx)(Le,{className:`h-3.5 w-3.5`})})]}),!a&&(0,q.jsxs)(`div`,{children:[n.loading&&(0,q.jsxs)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,q.jsx)(z,{className:`h-3.5 w-3.5 animate-spin`}),`Loading `,n.childType,`…`]}),!n.loading&&n.error&&(0,q.jsxs)(`div`,{className:`px-3 py-3 text-xs text-destructive`,children:[`Failed: `,n.error]}),!n.loading&&!n.error&&r.length===0&&(0,q.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground`,children:g?`No matches.`:`Nothing here yet.`}),!n.loading&&!n.error&&r.length>0&&(0,q.jsxs)(`table`,{className:`w-full text-sm border-t`,children:[(0,q.jsx)(`thead`,{children:(0,q.jsxs)(`tr`,{className:`bg-muted/30 text-[10px] uppercase tracking-wider text-muted-foreground`,children:[(0,q.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5 w-[45%]`,children:`Name`}),(0,q.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5`,children:`Label`}),(0,q.jsx)(`th`,{className:`w-8`})]})}),(0,q.jsx)(`tbody`,{className:`divide-y`,children:r.map((r,a)=>(0,q.jsxs)(`tr`,{role:`button`,tabIndex:0,onClick:()=>i(n.anchor.source===`embedded`?{kind:`embedded`,parentType:e,parentName:t,groupLabel:n.anchor.groupLabel??n.childType,itemName:r.name,raw:r.raw,editAs:n.anchor.editAs,embeddedPath:n.anchor.embeddedPath}:{kind:`metadata`,type:n.childType,name:r.name}),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.currentTarget.click()},className:`hover:bg-accent/50 cursor-pointer`,children:[(0,q.jsx)(`td`,{className:`px-3 py-1.5 font-mono text-xs truncate max-w-0`,children:r.name}),(0,q.jsx)(`td`,{className:`px-3 py-1.5 text-xs text-muted-foreground truncate max-w-0`,children:r.label&&r.label!==r.name?r.label:``}),(0,q.jsx)(`td`,{className:`px-3 py-1.5 text-right`,children:(0,q.jsx)(xe,{className:`h-3.5 w-3.5 text-muted-foreground inline`})})]},`${r.name}-${a}`))})]})]})]},n.childType)})]})}function Dn(e){return{name:On(e,[`name`,`id`,`key`])??`(unnamed)`,label:On(e,[`label`,`title`,`displayName`]),description:On(e,[`description`,`summary`]),raw:e}}function On(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function kn({parentType:e,parentName:t,embeddedPath:n,itemName:r,editAs:i,initialRaw:a,onSaved:o}){let s=Rt(),c=at(),{entries:l}=st(c),u=i?l.find(e=>e.type===i):void 0,d=!u?.schema&&i?jn[i]:void 0,f=u?.schema??d?.schema,p=u?.form??d?.form,m=i?gt(i):void 0,[h,g]=K.useState(a),[_,v]=K.useState(!1),[y,b]=K.useState(null),[x,S]=K.useState([]),[C,w]=K.useState(null);K.useEffect(()=>{g(a),b(null),S([]),w(null)},[a,r,e,t]);let ee=u!=null&&!u.allowOrgOverride&&!u.allowRuntimeCreate;async function T(){if(!n){b(G(`engine.embedded.saveNoPath`,s));return}v(!0),b(null),S([]);try{let i=await c.layered(e,t),a=An(i.effective??i.code??{},n,r,h);await c.save(e,t,a),w(Date.now()),o?.(h)}catch(e){if(e?.status===422||ce(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],i=(Array.isArray(t)?t:[]).map(e=>{let t=Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),i=`${n}.${r}.`;return{path:t.startsWith(i)?t.slice(i.length):t,message:zt(String(e.message??`Invalid`),s)}});S(i),b(i.length===1?G(`engine.validation.failedOne`,s):U(`engine.validation.failed`,s,{count:i.length}))}else b(e?.message??String(e))}finally{v(!1)}}return f?(0,q.jsxs)(`div`,{className:`p-4 space-y-4`,children:[y&&(0,q.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:y}),C!=null&&!y&&(0,q.jsx)(`div`,{className:`text-sm text-emerald-700 border border-emerald-300 bg-emerald-50 rounded p-2`,children:G(`engine.embedded.saved`,s)}),ee&&(0,q.jsx)(`div`,{className:`text-xs text-amber-800 border border-amber-300 bg-amber-50 rounded p-2`,children:G(`engine.embedded.readOnlyParent`,s)}),m&&(0,q.jsx)(m,{type:i,name:r,draft:h,locale:s,editing:!1}),(0,q.jsx)(Ft,{schema:f,idPath:Lt,form:p,value:h,onChange:g,issues:x}),(0,q.jsx)(`div`,{className:`flex justify-end gap-2 pt-2 border-t`,children:(0,q.jsxs)(F,{onClick:T,disabled:_||!n,children:[_?(0,q.jsx)(z,{className:`h-4 w-4 mr-1 animate-spin`}):(0,q.jsx)(Ve,{className:`h-4 w-4 mr-1`}),U(`engine.embedded.saveIntoParent`,s,{parentType:e})]})}),!n&&(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground border rounded p-3`,children:[(0,q.jsx)(`div`,{className:`font-medium`,children:G(`engine.embedded.readOnly`,s)}),(0,q.jsx)(`div`,{children:G(`engine.embedded.noPathHint`,s)})]})]}):(0,q.jsxs)(`div`,{className:`p-4 space-y-3`,children:[(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:U(`engine.embedded.noSchema`,s,{type:i??`this item`,target:`${e}/${t}.${n}.${r}`})}),(0,q.jsx)(`textarea`,{className:`w-full h-[60vh] font-mono text-xs border rounded p-3 bg-muted/30`,value:JSON.stringify(h,null,2),onChange:e=>{try{g(JSON.parse(e.target.value)),b(null)}catch(e){b(`${G(`engine.form.invalidJson`,s)}: ${e.message}`)}}}),y&&(0,q.jsxs)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-2 bg-destructive/5`,children:[(0,q.jsx)(B,{className:`h-4 w-4 inline mr-1`}),` `,y]}),(0,q.jsx)(`div`,{className:`flex justify-end`,children:(0,q.jsxs)(F,{onClick:T,disabled:_||!n,children:[_?(0,q.jsx)(z,{className:`h-4 w-4 mr-1 animate-spin`}):(0,q.jsx)(Ve,{className:`h-4 w-4 mr-1`}),U(`engine.embedded.saveIntoParent`,s,{parentType:`parent`})]})})]})}function An(e,t,n,r){let i=t.split(`.`),a=structuredClone(e),o=a;for(let e=0;e<i.length-1;e++)o[i[e]]??(o[i[e]]={}),o=o[i[e]];let s=i[i.length-1],c=o[s];if(Array.isArray(c)){let e=c.findIndex(e=>e&&typeof e==`object`&&e.name===n);e>=0?c[e]=r:c.push(r)}else if(c&&typeof c==`object`){let{name:e,...t}=r;c[n]=t}else{let{name:e,...t}=r;o[s]={[n]:t}}return a}var jn={index:{schema:{type:`object`,required:[`fields`],properties:{name:{type:`string`,title:`Name`,description:`Index name (auto-generated from the columns if not provided).`},fields:{type:`array`,title:`Fields`,description:`Fields included in the index, in order.`,items:{type:`string`}},unique:{title:`Unique`,description:`Whether the index enforces uniqueness, and at which scope. 'global' materializes over exactly the listed fields — one holder across the whole installation. 'organization' has the driver prepend the NULL-safe organization key part at registration — one holder per organization. Leave empty for a non-unique index.`,anyOf:[{type:`string`,enum:[`global`,`organization`]},{type:`boolean`}]}}}}};function Mn({target:e,onClose:t,parentContext:r}){let i=n(),a=e?.kind===`metadata`,o=e?.kind===`embedded`,s=a?e.type:o?e.groupLabel:``,c=a?e.name:o?e.itemName:``;return(0,q.jsx)(M,{open:e!==null,onOpenChange:e=>{e||t()},children:(0,q.jsxs)(f,{side:`right`,className:A(`w-[92vw] sm:max-w-[1100px] p-0 flex flex-col gap-0`),children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b space-y-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(N,{variant:`outline`,className:`font-mono text-[10px]`,children:s}),(0,q.jsx)(S,{className:`font-mono text-base truncate`,children:c}),(0,q.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:a&&(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:()=>{i(`../../${encodeURIComponent(e.type)}/${encodeURIComponent(e.name)}`),t()},title:`Open in full page`,children:[(0,q.jsx)(xe,{className:`h-3.5 w-3.5 mr-1`}),`Open full page`]})})]}),r&&(0,q.jsxs)(j,{className:`text-xs`,children:[o?`Embedded in `:`Related to `,(0,q.jsxs)(`span`,{className:`font-mono`,children:[r.type,`/`,r.name]})]})]}),(0,q.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-auto`,children:[a&&(0,q.jsx)(Rr,{type:e.type,name:e.name,embedded:!0},`${e.type}/${e.name}`),o&&(0,q.jsx)(kn,{parentType:e.parentType,parentName:e.parentName,embeddedPath:e.embeddedPath,itemName:e.itemName,editAs:e.editAs,initialRaw:e.raw},`${e.parentType}/${e.parentName}/${e.embeddedPath}/${e.itemName}`)]})]})})}function Nn(e,t){if(!e)return``;let n=new Date(e);return Number.isNaN(n.getTime())?e:n.toLocaleString(t)}function Pn(e,t){let n={allowed:{label:`allowed`,cls:`bg-emerald-50 text-emerald-700 border-emerald-200`,Icon:Ke},denied:{label:`denied`,cls:`bg-rose-50 text-rose-700 border-rose-200`,Icon:qe},forced:{label:`forced`,cls:`bg-amber-50 text-amber-700 border-amber-200`,Icon:Ge}},r=n[e]??n.allowed;return(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide ${r.cls}`,children:[(0,q.jsx)(r.Icon,{className:`h-3 w-3`}),W(`outcome`,r.label,t)]})}function Fn({type:e,name:t,client:n,locale:r=`en-US`}){let i=ue(),[a,o]=K.useState({status:`idle`}),[s,c]=K.useState(!1),l=K.useCallback(async()=>{c(!0),o(e=>e.status===`loaded`?e:{status:`loading`});try{let r=await n.audit(e,t,{limit:100});o({status:`loaded`,data:r.events??[]})}catch(e){o({status:`error`,message:Mt(e)})}finally{c(!1)}},[n,e,t]);return K.useEffect(()=>{l()},[l]),(0,q.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between border-b px-1 pb-2`,children:[a.status===`loaded`?(0,q.jsxs)(`div`,{className:`text-xs text-muted-foreground`,"data-testid":`audit-count`,children:[a.data.length,` `,G(`engine.edit.auditCount`,r)]}):(0,q.jsx)(`div`,{}),(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:()=>void l(),disabled:s,className:`h-7 gap-1 text-xs`,title:G(`engine.edit.refresh`,r),children:[s?(0,q.jsx)(z,{className:`h-3 w-3 animate-spin`}):(0,q.jsx)(Re,{className:`h-3 w-3`}),G(`engine.edit.refresh`,r)]})]}),a.status===`error`&&(0,q.jsx)(`div`,{"data-testid":`audit-error`,className:`m-2 rounded border border-rose-200 bg-rose-50 p-2 text-xs text-rose-700`,children:a.message}),(0,q.jsx)(`div`,{className:`flex-1 overflow-auto`,children:a.status===`idle`||a.status===`loading`?(0,q.jsxs)(`div`,{className:`flex h-32 items-center justify-center text-xs text-muted-foreground`,children:[(0,q.jsx)(z,{className:`mr-2 h-3 w-3 animate-spin`}),G(`engine.edit.loading`,r)]}):a.status===`error`?(0,q.jsxs)(I,{className:`py-10`,"data-testid":`audit-error-state`,children:[(0,q.jsx)(w,{children:G(`engine.edit.auditErrorTitle`,r)}),(0,q.jsx)(E,{children:G(`engine.edit.auditErrorDescription`,r)})]}):a.data.length===0?(0,q.jsxs)(I,{className:`py-10`,"data-testid":`audit-empty`,children:[(0,q.jsx)(w,{children:G(`engine.edit.auditEmptyTitle`,r)}),(0,q.jsx)(E,{children:G(`engine.edit.auditEmptyDescription`,r)})]}):(0,q.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,q.jsx)(`thead`,{className:`sticky top-0 bg-muted/40 text-left text-[10px] uppercase tracking-wide text-muted-foreground`,children:(0,q.jsxs)(`tr`,{children:[(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColTime`,r)}),(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColActor`,r)}),(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColOperation`,r)}),(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColOutcome`,r)}),(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColLock`,r)}),(0,q.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:G(`engine.edit.auditColNote`,r)})]})}),(0,q.jsx)(`tbody`,{children:a.data.map(e=>(0,q.jsxs)(`tr`,{className:`border-t border-border/50 align-top hover:bg-muted/20`,children:[(0,q.jsx)(`td`,{className:`whitespace-nowrap px-2 py-1.5 font-mono text-[11px]`,children:Nn(e.occurredAt,i)}),(0,q.jsx)(`td`,{className:`px-2 py-1.5`,children:e.actor}),(0,q.jsx)(`td`,{className:`px-2 py-1.5`,children:(0,q.jsx)(N,{variant:`outline`,className:`text-[10px]`,children:W(`op`,e.operation,r)})}),(0,q.jsx)(`td`,{className:`px-2 py-1.5`,children:Pn(e.outcome,r)}),(0,q.jsx)(`td`,{className:`px-2 py-1.5`,children:e.lockState&&e.lockState!==`none`?(0,q.jsxs)(`span`,{className:`font-mono text-[11px]`,children:[W(`lock`,e.lockState,r),e.lockOverridden?` *`:``]}):(0,q.jsx)(ie,{})}),(0,q.jsx)(`td`,{className:`max-w-[28ch] truncate px-2 py-1.5 text-muted-foreground`,title:e.note??e.code,children:e.note??e.code})]},String(e.id)))})]})})]})}function In(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t||!n;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}function p(e){r=e,i=``,a=0,o=16,d=0}function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&X(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46){if(r++,r<e.length&&X(e.charCodeAt(r)))for(r++;r<e.length&&X(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r)}let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101)){if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&X(e.charCodeAt(r))){for(r++;r<e.length&&X(e.charCodeAt(r));)r++;n=r}else d=3}return e.substring(t,n)}function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
|
|
4
|
-
`;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4,!0);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31){if(Rn(a)){t+=e.substring(i,r),d=2;break}d=6}r++}return t}function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(Ln(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(Ln(t));return o=15}if(Rn(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=`
|
|
5
|
-
`),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r<n&&!Rn(e.charCodeAt(r));)r++;return i=e.substring(c,r),o=12}if(e.charCodeAt(r+1)===42){r+=2;let t=n-1,a=!1;for(;r<t;){let t=e.charCodeAt(r);if(t===42&&e.charCodeAt(r+1)===47){r+=2,a=!0;break}r++,Rn(t)&&(t===13&&e.charCodeAt(r)===10&&r++,s++,l=r)}return a||(r++,d=1),i=e.substring(c,r),o=13}return i+=String.fromCharCode(t),r++,o=16;case 45:if(i+=String.fromCharCode(t),r++,r===n||!X(e.charCodeAt(r)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=m(),o=11;default:for(;r<n&&_(t);)r++,t=e.charCodeAt(r);if(a!==r){switch(i=e.substring(a,r),i){case`true`:return o=8;case`false`:return o=9;case`null`:return o=7}return o=16}return i+=String.fromCharCode(t),r++,o=16}}function _(e){if(Ln(e)||Rn(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function v(){let e;do e=g();while(e>=12&&e<=15);return e}return{setPosition:p,getPosition:()=>r,scan:t?v:g,getToken:()=>o,getTokenValue:()=>i,getTokenOffset:()=>a,getTokenLength:()=>r-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-u,getTokenError:()=>d}}function Ln(e){return e===32||e===9}function Rn(e){return e===10||e===13}function X(e){return e>=48&&e<=57}var zn;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(zn||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t));var Bn=200;Array(Bn).fill(0).map((e,t)=>`
|
|
6
|
-
`+` `.repeat(t)),Array(Bn).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(Bn).fill(0).map((e,t)=>`\r
|
|
7
|
-
`+` `.repeat(t)),Array(Bn).fill(0).map((e,t)=>`
|
|
8
|
-
`+` `.repeat(t)),Array(Bn).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(Bn).fill(0).map((e,t)=>`\r
|
|
9
|
-
`+` `.repeat(t));var Vn;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Vn||={});function Hn(e,t=[],n=Vn.DEFAULT){let r={type:`array`,offset:-1,length:-1,children:[],parent:void 0};function i(e){r.type===`property`&&(r.length=e-r.offset,r=r.parent)}function a(e){return r.children.push(e),e}Q(e,{onObjectBegin:e=>{r=a({type:`object`,offset:e,length:-1,parent:r,children:[]})},onObjectProperty:(e,t,n)=>{r=a({type:`property`,offset:t,length:-1,parent:r,children:[]}),r.children.push({type:`string`,value:e,offset:t,length:n,parent:r})},onObjectEnd:(e,t)=>{i(e+t),r.length=e+t-r.offset,r=r.parent,i(e+t)},onArrayBegin:(e,t)=>{r=a({type:`array`,offset:e,length:-1,parent:r,children:[]})},onArrayEnd:(e,t)=>{r.length=e+t-r.offset,r=r.parent,i(e+t)},onLiteralValue:(e,t,n)=>{a({type:Un(e),offset:t,length:n,parent:r,value:e}),i(t+n)},onSeparator:(e,t,n)=>{r.type===`property`&&(e===`:`?r.colonOffset=t:e===`,`&&i(t))},onError:(e,n,r)=>{t.push({error:e,offset:n,length:r})}},n);let o=r.children[0];return o&&delete o.parent,o}function Z(e,t){if(!e)return;let n=e;for(let e of t)if(typeof e==`string`){if(n.type!==`object`||!Array.isArray(n.children))return;let t=!1;for(let r of n.children)if(Array.isArray(r.children)&&r.children[0].value===e&&r.children.length===2){n=r.children[1],t=!0;break}if(!t)return}else{let t=e;if(n.type!==`array`||t<0||!Array.isArray(n.children)||t>=n.children.length)return;n=n.children[t]}return n}function Q(e,t,n=Vn.DEFAULT){let r=In(e,!1),i=[],a=0;function o(e){return e?()=>a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function s(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice()):()=>!0}function l(e){return e?()=>{a>0?a++:e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice())===!1&&(a=1)}:()=>!0}function u(e){return e?()=>{a>0&&a--,a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter())}:()=>!0}let d=l(t.onObjectBegin),f=c(t.onObjectProperty),p=u(t.onObjectEnd),m=l(t.onArrayBegin),h=u(t.onArrayEnd),g=c(t.onLiteralValue),_=s(t.onSeparator),v=o(t.onComment),y=s(t.onError),b=n&&n.disallowComments,x=n&&n.allowTrailingComma;function S(){for(;;){let e=r.scan();switch(r.getTokenError()){case 4:C(14);break;case 5:C(15);break;case 3:C(13);break;case 1:b||C(11);break;case 2:C(12);break;case 6:C(16)}switch(e){case 12:case 13:b?C(10):v();break;case 16:C(1);break;case 15:case 14:break;default:return e}}}function C(e,t=[],n=[]){if(y(e),t.length+n.length>0){let e=r.getToken();for(;e!==17;){if(t.indexOf(e)!==-1){S();break}if(n.indexOf(e)!==-1)break;e=S()}}}function w(e){let t=r.getTokenValue();return e?g(t):(f(t),i.push(t)),S(),!0}function ee(){switch(r.getToken()){case 11:let e=r.getTokenValue(),t=Number(e);isNaN(t)&&(C(2),t=0),g(t);break;case 7:g(null);break;case 8:g(!0);break;case 9:g(!1);break;default:return!1}return S(),!0}function T(){return r.getToken()===10?(w(!1),r.getToken()===6?(_(`:`),S(),D()||C(4,[],[2,5])):C(5,[],[2,5]),i.pop(),!0):(C(3,[],[2,5]),!1)}function te(){d(),S();let e=!1;for(;r.getToken()!==2&&r.getToken()!==17;){if(r.getToken()===5){if(e||C(4,[],[]),_(`,`),S(),r.getToken()===2&&x)break}else e&&C(6,[],[]);T()||C(4,[],[2,5]),e=!0}return p(),r.getToken()===2?S():C(7,[2],[]),!0}function E(){m(),S();let e=!0,t=!1;for(;r.getToken()!==4&&r.getToken()!==17;){if(r.getToken()===5){if(t||C(4,[],[]),_(`,`),S(),r.getToken()===4&&x)break}else t&&C(6,[],[]);e?(i.push(0),e=!1):i[i.length-1]++,D()||C(4,[],[4,5]),t=!0}return h(),e||i.pop(),r.getToken()===4?S():C(8,[4],[]),!0}function D(){switch(r.getToken()){case 3:return E();case 1:return te();case 10:return w(!0);default:return ee()}}return S(),r.getToken()===17?n.allowEmptyContent?!0:(C(4,[],[]),!1):D()?(r.getToken()!==17&&C(9,[],[]),!0):(C(4,[],[]),!1)}function Un(e){switch(typeof e){case`boolean`:return`boolean`;case`number`:return`number`;case`string`:return`string`;case`object`:return e?Array.isArray(e)?`array`:`object`:`null`;default:return`null`}}var Wn;(function(e){e[e.None=0]=`None`,e[e.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=4]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=6]=`InvalidCharacter`})(Wn||={});var Gn;(function(e){e[e.OpenBraceToken=1]=`OpenBraceToken`,e[e.CloseBraceToken=2]=`CloseBraceToken`,e[e.OpenBracketToken=3]=`OpenBracketToken`,e[e.CloseBracketToken=4]=`CloseBracketToken`,e[e.CommaToken=5]=`CommaToken`,e[e.ColonToken=6]=`ColonToken`,e[e.NullKeyword=7]=`NullKeyword`,e[e.TrueKeyword=8]=`TrueKeyword`,e[e.FalseKeyword=9]=`FalseKeyword`,e[e.StringLiteral=10]=`StringLiteral`,e[e.NumericLiteral=11]=`NumericLiteral`,e[e.LineCommentTrivia=12]=`LineCommentTrivia`,e[e.BlockCommentTrivia=13]=`BlockCommentTrivia`,e[e.LineBreakTrivia=14]=`LineBreakTrivia`,e[e.Trivia=15]=`Trivia`,e[e.Unknown=16]=`Unknown`,e[e.EOF=17]=`EOF`})(Gn||={});var Kn=Hn,$=Z,qn;(function(e){e[e.InvalidSymbol=1]=`InvalidSymbol`,e[e.InvalidNumberFormat=2]=`InvalidNumberFormat`,e[e.PropertyNameExpected=3]=`PropertyNameExpected`,e[e.ValueExpected=4]=`ValueExpected`,e[e.ColonExpected=5]=`ColonExpected`,e[e.CommaExpected=6]=`CommaExpected`,e[e.CloseBraceExpected=7]=`CloseBraceExpected`,e[e.CloseBracketExpected=8]=`CloseBracketExpected`,e[e.EndOfFileExpected=9]=`EndOfFileExpected`,e[e.InvalidCommentToken=10]=`InvalidCommentToken`,e[e.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=14]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=16]=`InvalidCharacter`})(qn||={});var Jn=K.lazy(async()=>({default:(await r(()=>import(`./dist-Dc_9i5rZ.js`).then(e=>e.n),[],import.meta.url)).Editor}));function Yn(e){try{return JSON.stringify(e??{},null,2)}catch{return`{}`}}function Xn(e){return e?e.split(`.`).map(e=>{let t=Number(e);return Number.isInteger(t)&&String(t)===e?t:e}):[]}function Zn({value:e,onChange:t,readOnly:n,issues:r,height:i=`60vh`,fallbackDelayMs:a=4e3}){let o=Rt(),[s,c]=K.useState(()=>Yn(e)),[l,u]=K.useState(null),d=K.useRef(s),f=K.useRef(null),p=K.useRef(null),[m,h]=mt(a),[_,v]=K.useState(()=>typeof document>`u`?`light`:document.documentElement.classList.contains(`dark`)?`vs-dark`:`light`);K.useEffect(()=>{if(typeof document>`u`)return;let e=document.documentElement,t=new MutationObserver(()=>v(e.classList.contains(`dark`)?`vs-dark`:`light`));return t.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()},[]);let y=K.useCallback(()=>{let e=f.current,t=p.current;if(!e||!t)return;let n=e.getModel();if(!n)return;if(!r||r.length===0){t.editor.setModelMarkers(n,`objectui-diagnostics`,[]);return}let i;try{i=Kn(s)}catch{i=void 0}let a=r.map(e=>{let r=Xn(e.path),a=1,o=1,s=1,c=2,l=i?$(i,r):void 0;if(l){let e=n.getPositionAt(l.offset),t=n.getPositionAt(l.offset+l.length);a=e.lineNumber,o=e.column,s=t.lineNumber,c=t.column}return{severity:e.severity===`warning`?t.MarkerSeverity.Warning:t.MarkerSeverity.Error,message:e.path?`${e.path}: ${e.message}`:e.message,startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,source:`metadata`}});t.editor.setModelMarkers(n,`objectui-diagnostics`,a)},[r,s]);K.useEffect(()=>{y()},[y]),K.useEffect(()=>{let t=Yn(e);t!==d.current&&(c(t),d.current=t,u(null))},[e]);let b=e=>{let n=e??``;c(n);try{let e=JSON.parse(n);e&&typeof e==`object`&&!Array.isArray(e)?(u(null),d.current=n,t(e)):u(G(`engine.form.rootJsonObject`,o))}catch(e){u(e?.message??G(`engine.form.invalidJson`,o))}};return(0,q.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,q.jsx)(`div`,{ref:h,"data-testid":`source-editor`,className:`border rounded overflow-hidden bg-background`,style:{height:typeof i==`number`?`${i}px`:i},children:m?(0,q.jsx)(`textarea`,{value:s,onChange:e=>b(e.target.value),readOnly:n,spellCheck:!1,"aria-label":`JSON source`,className:`w-full h-full resize-none bg-background p-3 font-mono text-xs leading-relaxed outline-none`}):(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(g,{className:`w-full h-full`}),children:(0,q.jsx)(Jn,{value:s,language:`json`,theme:_,onChange:b,onMount:(e,t)=>{f.current=e,p.current=t,setTimeout(y,0)},options:{readOnly:n,minimap:{enabled:!1},fontSize:12,lineNumbers:`on`,scrollBeyondLastLine:!1,automaticLayout:!0,folding:!0,wordWrap:`on`,tabSize:2,renderLineHighlight:`line`,scrollbar:{verticalScrollbarSize:10,horizontalScrollbarSize:10}}})})}),l&&(0,q.jsxs)(`div`,{className:`text-xs text-destructive flex items-start gap-1.5`,children:[(0,q.jsx)(`span`,{"aria-hidden":!0,children:`⚠`}),(0,q.jsx)(`span`,{children:l})]})]})}function Qn(e){return!!e&&typeof e==`object`&&`viewKind`in e}function $n(e,t){return{safeParse:n=>(Qn(n)?e:t).safeParse(n)}}var er={wireItem:0,container:1};function tr(e){return Qn(e)?er.wireItem:er.container}var nr={ofStrings:0,ofObjects:1};function rr(e){return e.some(e=>e.code===`invalid_type`&&(e.path??[]).length===0)}function ir(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}function ar(e,t){if(e.length!==2||!Array.isArray(t)||t.length===0||e.some(rr))return null;let n=t[0];return typeof n==`string`?nr.ofStrings:typeof n==`object`&&n&&!Array.isArray(n)?nr.ofObjects:null}function or(e){let t=null;for(let n=0;n<e.length;n++)if(!rr(e[n])){if(t!==null)return null;t=n}return t}function sr(e,t){let n=ar(e,t);return n===null?or(e):n}function cr(e,t,n){if(e.code!==`invalid_union`)return null;let r=e.errors;if(!Array.isArray(r))return null;let i=t.length===0?tr(n):sr(r,ir(n,t));if(i===null)return null;let a=r[i];return!Array.isArray(a)||a.length===0?null:a}function lr(e,t,n){return e.flatMap(e=>{let r=[...t,...e.path??[]],i=cr(e,r,n);return i?lr(i,r,n):[{...e,path:r}]})}var ur=new Set([`sharing_rule`]),dr={object:async()=>(await r(async()=>{let{ObjectSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>(e.rn(),e.Qt));return{ObjectSchema:e}},[],import.meta.url)).ObjectSchema,hook:async()=>(await r(async()=>{let{HookSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>(e.rn(),e.Qt));return{HookSchema:e}},[],import.meta.url)).HookSchema,mapping:async()=>(await r(async()=>{let{MappingSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>(e.rn(),e.Qt));return{MappingSchema:e}},[],import.meta.url)).MappingSchema,analytics_cube:async()=>(await r(async()=>{let{CubeSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>(e.rn(),e.Qt));return{CubeSchema:e}},[],import.meta.url)).CubeSchema,view:async e=>{let{ViewItemSchema:t,ViewSchema:n,ViewMetadataSchema:i}=await r(async()=>{let{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}},[],import.meta.url);return e===`edit`?i:$n(t,n)},page:async()=>(await r(async()=>{let{PageSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{PageSchema:e}},[],import.meta.url)).PageSchema,app:async()=>(await r(async()=>{let{AppSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{AppSchema:e}},[],import.meta.url)).AppSchema,dashboard:async()=>(await r(async()=>{let{DashboardSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{DashboardSchema:e}},[],import.meta.url)).DashboardSchema,report:async()=>(await r(async()=>{let{ReportSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{ReportSchema:e}},[],import.meta.url)).ReportSchema,action:async()=>(await r(async()=>{let{ActionSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.Pr);return{ActionSchema:e}},[],import.meta.url)).ActionSchema,flow:async()=>(await r(async()=>{let{FlowSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.C);return{FlowSchema:e}},[],import.meta.url)).FlowSchema,webhook:async()=>(await r(async()=>{let{WebhookSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.C);return{WebhookSchema:e}},[],import.meta.url)).WebhookSchema,agent:async()=>(await r(async()=>{let{AgentSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.n);return{AgentSchema:e}},[],import.meta.url)).AgentSchema,tool:async()=>(await r(async()=>{let{ToolSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.n);return{ToolSchema:e}},[],import.meta.url)).ToolSchema,skill:async()=>(await r(async()=>{let{SkillSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.n);return{SkillSchema:e}},[],import.meta.url)).SkillSchema,email_template:async()=>(await r(async()=>{let{EmailTemplateDefinitionSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.X);return{EmailTemplateDefinitionSchema:e}},[],import.meta.url)).EmailTemplateDefinitionSchema,job:async()=>(await r(async()=>{let{JobSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.X);return{JobSchema:e}},[],import.meta.url)).JobSchema,translation:async()=>(await r(async()=>{let{TranslationItemSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.X);return{TranslationItemSchema:e}},[],import.meta.url)).TranslationItemSchema,permission:async()=>(await r(async()=>{let{PermissionSetSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.B);return{PermissionSetSchema:e}},[],import.meta.url)).PermissionSetSchema,sharing_rule:async()=>(await r(async()=>{let{SharingRuleSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.B);return{SharingRuleSchema:e}},[],import.meta.url)).SharingRuleSchema,position:async()=>(await r(async()=>{let{PositionSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.c);return{PositionSchema:e}},[],import.meta.url)).PositionSchema,api:async()=>(await r(async()=>{let{ApiEndpointSchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>(e.St(),e.xt));return{ApiEndpointSchema:e}},[],import.meta.url)).ApiEndpointSchema,connector:async()=>(await r(async()=>{let{DeclarativeConnectorEntrySchema:e}=await import(`./vendor-objectstack-XuWC71M9.js`).then(e=>e.t);return{DeclarativeConnectorEntrySchema:e}},[],import.meta.url)).DeclarativeConnectorEntrySchema},fr=[`visibleWhen`,`readonlyWhen`,`requiredWhen`];function pr(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.source==`string`){let t=e.dialect;if(t===void 0||t===`cel`)return e.source}return null}async function mr(e){let t=e,n=Pt(t?.fields);if(n.entries.length===0)return[];let r=typeof t?.name==`string`?t.name:void 0,i=n.entries.map(e=>e.name),a=[];for(let e=0;e<n.entries.length;e++){let t=n.entries[e],o=n.shape===`array`?String(e):t.name;for(let e of fr){let n=pr(t.def[e]);if(n==null||!n.trim())continue;let s=await Dt(n,{objectName:r,fields:i,scope:`record`,slot:e});for(let t of s)t.severity===`error`&&a.push({path:`fields.${o}.${e}`,message:t.message})}if(t.def.type===`formula`){let e=pr(t.def.expression);if(e==null||!e.trim())continue;let n=await Dt(e,{objectName:r,fields:i.filter(e=>e!==t.name),scope:`record`,role:`value`});for(let e of n)e.severity===`error`&&a.push({path:`fields.${o}.expression`,message:e.message})}}return a}var hr=[`condition`,`when`],gr=[`then`,`otherwise`],_r=8;async function vr(e){let t=e,n=t?.validations;if(!Array.isArray(n))return[];let r=typeof t?.name==`string`?t.name:void 0,i=Pt(t?.fields).entries.map(e=>e.name),a=[],o=async(e,t,n)=>{if(!e||typeof e!=`object`||Array.isArray(e)||n>_r)return;let s=e;for(let e of hr){let n=pr(s[e]);if(n==null||!n.trim())continue;let o=await Dt(n,{objectName:r,fields:i,scope:`record`});for(let n of o)n.severity===`error`&&a.push({path:`${t}.${e}`,message:n.message})}for(let e of gr)await o(s[e],`${t}.${e}`,n+1)};for(let e=0;e<n.length;e++)await o(n[e],`validations.${e}`,0);return a}var yr=`formula`;function br(e){return`Field \`${e}\` carries the retired \`${yr}\` key. To migrate: select the field in the object designer and make one edit in its Formula (CEL) editor — that commits the value to \`expression\`, clears the retired key, and the object saves again.`}function xr(e,t){return e.map(e=>{if(e.code!==`unrecognized_keys`)return e;let n=e.path??[];if(n.length!==2||n[0]!==`fields`||typeof n[1]!=`string`||!e.keys?.includes(yr))return e;let r=ir(t,n);return!r||r.type!==`formula`?e:{...e,message:`${e.message} ${br(n[1])}`}})}var Sr=new Map;async function Cr(e,t){let n=`${t}:${e}`;if(Sr.has(n))return Sr.get(n)??null;let r=dr[e];if(!r||t===`edit`&&ur.has(e))return Sr.set(n,null),null;try{let e=await r(t),i=e&&typeof e.safeParse==`function`?e:null;return Sr.set(n,i),i}catch{return Sr.set(n,null),null}}function wr(e,t=`create`){return e in dr&&!(t===`edit`&&ur.has(e))}async function Tr(e,t,n,r){let i=await Cr(e,r?.mode??`create`);if(!i)return{ok:!0,issues:[]};let a=e===`object`?[...await mr(t),...await vr(t)]:[],o=i.safeParse(t);if(o.success)return a.length>0?{ok:!1,issues:a}:{ok:!0,issues:[]};let s=o.error?.issues??[],c=Array.isArray(n?.required)?new Set(n.required.map(e=>String(e))):void 0;if(c&&t&&typeof t==`object`&&!Array.isArray(t)){let e=t;s=s.filter(t=>{let n=t.path??[];if(n.length!==1)return!0;let r=String(n[0]);return e[r]!==void 0&&e[r]!==null||!!c.has(r)})}return s.length===0&&a.length===0?{ok:!0,issues:[]}:{ok:!1,issues:[...(e===`view`?lr(s,[],t):e===`object`?xr(s,t):s).map(e=>({path:(e.path??[]).map(e=>String(e)).join(`.`),message:e.message})),...a]}}function Er(e,t,n){let r=t.split(`.`);if(r.length<=1)return e;let i=[e],a=Or(n)?.[r[0]];for(let e=1;e<r.length;e++){let t=r[e];if(/^\d+$/.test(t)){let e=Number(t),n=Array.isArray(a)?a[e]:void 0;i.push(Dr(n)??`#${e+1}`),a=n}else i.push(t),a=Or(a)?.[t]}return i.join(` → `)}function Dr(e){let t=Or(e);if(t)for(let e of[`id`,`name`,`key`,`title`,`label`]){let n=t[e];if(typeof n==`string`&&n.trim())return n;let r=Or(n);if(r){let e=r.defaultValue??r.key;if(typeof e==`string`&&e.trim())return e}}}function Or(e){return e&&typeof e==`object`?e:void 0}function kr(e){let t=e.split(`.`).filter(Boolean);return t.length<=1?``:t.slice(0,-1).join(`.`)}function Ar(e,t){let n=e;if(t!==``)for(let e of t.split(`.`)){if(Array.isArray(n)&&/^\d+$/.test(e))n=n[Number(e)];else if(n&&typeof n==`object`)n=n[e];else return;if(n===void 0)return}if(n!==void 0)try{return JSON.stringify(n)??void 0}catch{return}}function jr(e,t,n){return e.createBuildBody?e.createBuildBody(t):{...n??e.createDefaults??{},...t}}var Mr={"no-overlay":`engine.edit.lockNoOverlay`,"no-delete":`engine.edit.lockNoDelete`,full:`engine.edit.lockFull`};function Nr(e,t){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(Mr,e)?G(Mr[e],t):U(`engine.edit.lockUnknown`,t,{state:String(e)})}var Pr=new Set([`object`,`report`,`dataset`]),Fr={object:[`fields`,`fieldGroups`]};function Ir(){try{let e=new URLSearchParams(window.location.search).get(`package`);return e&&e!==`all`?e:void 0}catch{return}}function Lr(e){return e.loadFailed?!1:e.hasDiag||e.hasClientValidator}function Rr({type:e,name:t,createMode:n=!1,embedded:r=!1}){let i=a(),o=e??i.type??``,s=t??i.name??``,c=dt(o);if(c?.EditPage&&!n){let e=c.EditPage;return(0,q.jsx)(e,{type:o,name:s})}if(c?.CreatePage&&n){let e=c.CreatePage;return(0,q.jsx)(e,{type:o})}return(0,q.jsx)(zr,{type:o,name:s,createMode:n,embedded:r})}function zr({type:e,name:t,createMode:r,embedded:a}){let o=n(),[s,c]=i(),l=s.get(`package`)??void 0,u=at(),{entries:d}=st(u),h=d.find(t=>t.type===e),g=ft(e,h),_=(r&&g.createSchema?g.createSchema:h?.schema)??g.defaultSchema,v=Rt(),y=r?`create`:`edit`,[w,T]=K.useState(null),te=g.identityField??`name`,[E,O]=K.useState(()=>r?{...g.createDefaults??{},[te]:``}:{}),[k,A]=K.useState({status:`idle`}),[ie,ae]=K.useState(!r),[P,I]=K.useState(!1),[oe,L]=K.useState(null),[ue,fe]=K.useState(!1),[pe,R]=K.useState([]),[me,ge]=K.useState(!1),_e=K.useCallback(e=>{O(t=>{let n=typeof e==`function`?e(t):e,r=new Set,i=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of i)Object.is(t?.[e],n?.[e])||r.add(e);return r.size>0&&(ge(!0),R(e=>e.filter(e=>{let t=(e.path??``).split(`.`)[0];return!r.has(t)}))),n})},[]),[ve,ye]=K.useState(null),[be,xe]=K.useState(null),we=K.useCallback(e=>{_e(t=>({...t,...e}))},[_e]),{markTouched:De}=ot({rules:g.createDerive,draft:E,onPatch:we,enabled:!!r}),Ne=K.useMemo(()=>{if(!r)return;if(g.createFields&&g.createFields.length>0)return g.createFields;let e=_?.properties??void 0,t=_?.required??void 0;return ct(e,t)},[r,g.createFields,_]),Le=K.useMemo(()=>{let t=Fr[e]??[];if(!r||!Ne)return t.length===0?g.hiddenFields:Array.from(new Set([...g.hiddenFields??[],...t]));let n=_?.properties??{},i=new Set(Ne),a=Object.keys(n).filter(e=>!i.has(e));if(g.hiddenFields)for(let e of g.hiddenFields)a.includes(e)||a.push(e);for(let e of t)a.includes(e)||a.push(e);return a},[r,Ne,_,g.hiddenFields,e]),Re=K.useMemo(()=>r&&Ne?Ne:g.fieldOrder,[r,Ne,g.fieldOrder]),He=K.useCallback(e=>{if(r){let t=E,n=typeof e==`function`?e(t):e,r=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of r)Object.is(t?.[e],n?.[e])||De(e)}_e(e)},[r,E,_e,De]);K.useEffect(()=>{if(!wr(e,y))return;let t=!1,n=window.setTimeout(()=>{Tr(e,E,h?.schema,{mode:y}).then(e=>{t||R(e.issues)})},200);return()=>{t=!0,window.clearTimeout(n)}},[e,E,h?.schema,y]);let We=K.useMemo(()=>r&&!me?[]:pe,[r,me,pe]),Ge=K.useMemo(()=>{let t=w?._diagnostics,n=wr(e,y)?We.map(e=>({path:e.path,message:zt(e.message,v)})):(t?.errors??[]).map(e=>({path:e.path,message:zt(e.message,v)})),r=(t?.warnings??[]).map(e=>({path:e.path,message:zt(e.message,v)}));return[...n.map(e=>({path:e.path||void 0,message:e.message,severity:`error`})),...r.map(e=>({path:e.path||void 0,message:e.message,severity:`warning`}))]},[w,We,e,v,y]),[qe,Ye]=K.useState(!1),[Xe,$e]=K.useState(!1),[rt,it]=K.useState(0),[V,ut]=K.useState(!!r),[H,dt]=K.useState(null);K.useEffect(()=>{dt(null)},[e,t]);let[pt,mt]=K.useState({key:``,count:0}),vt=H?`${e}:${t}:${H.kind}:${H.id}`:`${e}:${t}:default`,St=pt.key===vt?pt.count:0,[Dt,Ot]=K.useState(null),jt=K.useCallback(e=>{try{return g.fromDraft?g.fromDraft(e):e}catch{return e}},[g]),Mt=K.useMemo(()=>{if(!Dt)return 0;let e=jt(E);return Dt.held.filter(t=>Ar(e,t.slicePath)===t.fingerprint).length},[Dt,E,jt]);K.useEffect(()=>{Ot(null)},[e,t]),K.useEffect(()=>{V||dt(null)},[V]);let Lt=Tt(s.get(`sel`)),Bt=K.useRef(null);K.useEffect(()=>{if(e!==`app`||!Lt||Bt.current===`${t}:${Lt}`||!E||Object.keys(E).length===0)return;let n=wt(E,Lt);n&&(Bt.current=`${t}:${Lt}`,ut(!0),dt({kind:`nav`,id:n.selectionId,label:n.label}))},[e,t,Lt,E]),K.useEffect(()=>{if(e!==`app`)return;let t=H?.kind===`nav`?Ct(E,H.id):null;c(e=>{let n=new URLSearchParams(e);return t?n.set(`sel`,Et(t)):n.delete(`sel`),n},{replace:!0})},[e,H]);let W=K.useRef(null),[Vt,Ht]=K.useState(null),[Ut,Wt]=K.useState(()=>{if(typeof window>`u`)return!0;try{let e=window.localStorage.getItem(`metadata-admin:autosave`);return e===null||e===`1`}catch{return!0}});K.useEffect(()=>{try{window.localStorage.setItem(`metadata-admin:autosave`,Ut?`1`:`0`)}catch{}},[Ut]);let Gt=K.useRef(null),Kt=At(K.useCallback(async()=>(await u.list(`object`)).map(e=>e?.name).filter(e=>!!e).sort(),[u])),qt=E?.interfaceConfig?.source||E?.data?.object||E?.object||E?.objectName,Jt=At(K.useMemo(()=>qt?async()=>{let e=await u.get(`object`,qt),t=e?.fields,n=Array.isArray(t)?t.map(e=>({name:e?.name,label:e?.label,type:e?.type})):t&&typeof t==`object`?Object.entries(t).map(([e,t])=>({name:e,label:t?.label,type:t?.type})):[],r=e?.actions,i=Array.isArray(r)?r.map(e=>({name:e?.name,label:e?.label,locations:e?.locations})).filter(e=>!!e.name):[];return{fields:n.filter(e=>!!e.name),actions:i}}:null,[u,qt])),Yt=At(K.useMemo(()=>qt?async()=>{let e=(await u.list(`view`)||[]).filter(e=>(e?.objectName??e?.object??e?.object_name)===qt),t=new Set;return e.map(e=>({name:e?.name,label:e?.label||void 0})).filter(e=>!!e.name&&!t.has(e.name)&&t.add(e.name))}:null,[u,qt])),Xt=K.useMemo(()=>e===`page`?It(E):[],[e,E]),Zt=K.useMemo(()=>({conditionScope:xn(e),conditionSubjects:wn(e),conditionRoots:Tn(e),objectNames:Kt,objectFields:kt(Jt,e=>e.fields),objectActions:kt(Jt,e=>e.actions),objectViews:Yt,componentIds:Xt}),[e,Kt,Jt,Yt,Xt]);K.useEffect(()=>{if(r){ae(!1);return}let n=!1;return ae(!0),L(null),fe(!1),(async()=>{try{let r=l?{packageId:l}:{},[i,a]=await Promise.all([u.layered(e,t,r),u.getDraft(e,t,r).catch(()=>null)]);if(n)return;T(i);let o=i?._diagnostics;o&&o.valid===!1&&Array.isArray(o.errors)?R(o.errors.map(e=>({path:e.path||``,message:e.message}))):R([]);let s=de(a),c=i.effective??i.code??{},d=s??c,f=g.toDraft?g.toDraft(d):d;O(f),W.current=f,Ye(!!s),ae(!1)}catch(r){n||(fe(!0),L(U(`engine.edit.loadFailed`,v,{type:e,name:t??``,message:r?.message??String(r)})),ae(!1))}})(),()=>{n=!0}},[u,e,t,l,r,rt,v]);async function Qt(){if(k.status!==`loading`&&k.status!==`loaded`){A({status:`loading`});try{let n=await u.references(e,t);A({status:`loaded`,items:n})}catch(e){A({status:`error`,message:String(e?.message??e)})}}}let[en,tn]=K.useState(null),nn=K.useMemo(()=>!r&&!a&&yt(e).length>0,[e,r,a]),rn=K.useRef(null),[J,Y]=K.useState(null),an=s.get(`review`),on=K.useRef(!1);K.useEffect(()=>{if(!(an!==`1`||r)){if(!on.current){on.current=!0,it(e=>e+1);return}if(!ie){qe&&Y(`review`);let e=new URLSearchParams(s);e.delete(`review`),c(e,{replace:!0}),on.current=!1}}},[an,r,ie,qe]);let[sn,cn]=K.useState(`properties`);K.useEffect(()=>{if(J===`references`&&Qt(),typeof window<`u`&&!a){let e=new URL(window.location.href);J?e.searchParams.set(`tab`,J):e.searchParams.delete(`tab`),window.history.replaceState({},``,e.toString())}},[J,a]);let dn=`metadata-edit:inspector-collapsed`,fn=`metadata-edit:inspector-size`,[pn,mn]=K.useState(()=>typeof window>`u`?!1:window.localStorage.getItem(dn)===`1`),hn=K.useRef(38);K.useEffect(()=>{if(typeof window>`u`)return;let e=Number(window.localStorage.getItem(fn));Number.isFinite(e)&&e>=22&&e<=80&&(hn.current=e)},[]);let gn=K.useRef(null),_n=K.useCallback(()=>{mn(e=>{let t=!e;return typeof window<`u`&&window.localStorage.setItem(dn,t?`1`:`0`),t})},[]);K.useEffect(()=>{let e=gn.current;if(e){if(pn)e.resize?.(`0%`);else{let t=hn.current||38;e.resize?.(`${t}%`)}}},[pn]);let[bn,Sn]=K.useState(!1),[Cn,Dn]=K.useState(!1);K.useEffect(()=>{if(typeof document>`u`||!Cn)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[Cn]),K.useEffect(()=>{if(typeof window>`u`||!Cn)return;function e(e){e.key===`Escape`&&(e.preventDefault(),Dn(!1))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Cn]);let On=!r&&w?.code!=null&&w.code?._packageId!==`sys_metadata`&&w?.provenance!==`org`,kn=w?.resettable,An=!r&&(kn??On),jn=K.useRef(null);K.useEffect(()=>{jn.current=null},[e,t]),K.useEffect(()=>{if(r||a||ie)return;let n=`${e}/${t??``}`;jn.current!==n&>(e)&&(On?h?.allowOrgOverride:h?.allowOrgOverride||h?.allowRuntimeCreate)&&(jn.current=n,ut(!0))},[e,t,r,a,ie,h,On]),K.useEffect(()=>{if(typeof window>`u`||a)return;function e(e){if(!(e.metaKey||e.ctrlKey)||e.shiftKey||e.altKey||e.key!==`\\`)return;let t=e.target;(!t||t.tagName!==`TEXTAREA`&&!t.isContentEditable)&&(e.preventDefault(),_n())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a,_n]),K.useEffect(()=>{if(typeof window>`u`||a)return;let e=new URLSearchParams(window.location.search),t=e.get(`tab`);(t===`layers`||t===`references`||t===`related`||t===`audit`)&&Y(t),rn.current=t;let n=e.get(`open`);if(n&&n.includes(`:`)){let[e,t]=n.split(`:`,2);e&&t&&tn({kind:`metadata`,type:e,name:t})}},[]),K.useEffect(()=>{if(typeof window>`u`||a)return;let e=new URL(window.location.href);en?.kind===`metadata`?e.searchParams.set(`open`,`${en.type}:${en.name}`):e.searchParams.delete(`open`),window.history.replaceState({},``,e.toString())},[en,a]);function Nn(e){let t=e.split(`.`)[0];return t?Er((()=>{let e=r&&g.createSchema?void 0:h?.form,n=Array.isArray(e?.sections)?e.sections:[];for(let e of n){let n=Array.isArray(e?.fields)?e.fields:[];for(let e of n)if(typeof e==`string`){if(e===t)return e}else if(e?.field===t)return String(e.label??t)}let i=_?.properties??{};return String(i[t]?.title??t)})(),e,E):e}async function Pn(n){I(!0),L(null),R([]);try{let i=h?.createSeed,a=r?jr(g,E,i):g.fromDraft?g.fromDraft(E):E;if(r&&g.createSeed)try{let e=await g.createSeed(E,{client:u});e&&typeof e==`object`&&(a={...a,...e})}catch{}let c=String(a[te]??E[te]??t),d=r?{...a,[te]:c}:a;if(!c){L(G(`engine.validation.nameRequired`,v)),I(!1);return}let f=Ir();await u.save(e,c,d,{force:n,mode:`draft`,...f?{packageId:f}:{}});let p=l?{packageId:l}:{},[m,_]=await Promise.all([u.layered(e,c,p),u.getDraft(e,c,p).catch(()=>null)]);T(m);let y=de(_);Ye(!!y);let b=m.effective??d,x=y??b,S=g.toDraft?g.toDraft(x):x;O(S),W.current=S,Ht(new Date),Gt.current=JSON.stringify(S),ye(null),xe(null),Ot(null);let C=!r&&!!gt(e);if(!r&&!C&&ut(!1),r){let e=s.toString();o(`../${encodeURIComponent(c)}${e?`?${e}`:``}`,{relative:`path`})}}catch(e){if(e?.status===409&&le(e,`DESTRUCTIVE_CHANGE`)){let t=e?.body?.issues??[];ye(Array.isArray(t)?t:[]),xe(E)}else if(le(e,`WRITABLE_PACKAGE_REQUIRED`))L(G(`engine.package.writableRequired`,v));else if(e?.status===422||ce(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],n=(Array.isArray(t)?t:[]).map(e=>({path:Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),message:zt(String(e.message??`Invalid`),v)})),r=String(e?.body?.error??e?.message??``);if(n.length===0&&r){let e=r.match(/failed spec validation:\s*(.+?):\s*(.+)$/);n=e?[{path:e[1].trim(),message:zt(e[2].trim(),v)}]:[{path:``,message:zt(r,v)}]}R(n);let i=jt(E),a=[],o=new Set;for(let e of n){let t=kr(e.path);if(o.has(t))continue;let n=Ar(i,t);n!==void 0&&(o.add(t),a.push({slicePath:t,fingerprint:n,label:Nn(e.path)}))}Ot({held:a,summary:a.map(e=>e.label).join(`, `)}),n.length===1&&!n[0].path?L(n[0].message):n.length===1?L(`${Nn(n[0].path)}: ${n[0].message}`):L(U(`engine.validation.failed`,v,{count:n.length}))}else L(e?.message??String(e))}finally{I(!1)}}async function In(){if(confirm(U(An?`engine.edit.resetConfirm`:`engine.edit.deleteConfirm`,v,{type:e,name:t??``}))){I(!0),L(null);try{if(await u.reset(e,t),An){let n=await u.layered(e,t);T(n);let r=n.effective??n.code??{};O(r),W.current=r,gt(e)?jn.current=null:ut(!1)}else o(`../`,{relative:`path`})}catch(e){L(e?.message??String(e))}finally{I(!1)}}}async function Ln(){$e(!0),L(null);try{let n=Ir();await u.publish(e,t,{...n?{packageId:n}:{}});let[r,i]=await Promise.all([u.layered(e,t),u.getDraft(e,t).catch(()=>null)]);T(r);let a=de(i);Ye(!!a);let o=r.effective??E,s=a??o,c=g.toDraft?g.toDraft(s):s;O(c),W.current=c}catch(e){L(e?.message??String(e))}finally{$e(!1)}}async function Rn(){if(confirm(U(`engine.edit.discardDraftConfirm`,v,{type:e,name:t??``}))){I(!0),L(null);try{await u.reset(e,t,{state:`draft`});let n=await u.layered(e,t);T(n);let r=n.effective??n.code??{};O(r),W.current=r,Ye(!1)}catch(e){L(e?.message??String(e))}finally{I(!1)}}}let X=K.useMemo(()=>{if(r)return Object.keys(E).length>0;let e=W.current;if(!e)return!1;try{return JSON.stringify(E)!==JSON.stringify(e)}catch{return!1}},[E,r]),zn=w?.editable!==!1,Bn=w?.deletable!==!1,Vn=w?.lockReason,Hn=w?.lock&&w.lock!==`none`,Z=(r?!!(h?.allowOrgOverride||h?.allowRuntimeCreate):On?!!h?.allowOrgOverride:!!(h?.allowOrgOverride||h?.allowRuntimeCreate))&&(r||zn),Q=!Z&&!r,Un=K.useRef(Pn);K.useEffect(()=>{Un.current=Pn}),K.useEffect(()=>{if(!Ut||r||Q||!V||!X||P||St>0||Mt>0)return;let e;try{e=JSON.stringify(E)}catch{return}if(e===Gt.current)return;let t=window.setTimeout(()=>{Gt.current=e,Un.current(!1)},1500);return()=>window.clearTimeout(t)},[E,X,V,P,r,Q,Ut,St,Mt]),K.useEffect(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`){if(!Z||Q||!V&&!r)return;e.preventDefault(),!P&&(r||X)&&St===0&&Mt===0&&Un.current(!1)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Z,Q,V,r,P,X,St,Mt]),K.useEffect(()=>{if(!X)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[X]),K.useEffect(()=>{if(!X)return;let e=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target?.closest?.(`a[href]`);if(t&&!(t.target&&t.target!==`_self`)&&!t.hasAttribute(`download`)){try{let e=new URL(t.href,window.location.href);if(e.origin!==window.location.origin||e.pathname===window.location.pathname)return}catch{return}confirm(G(`engine.edit.unsavedLeaveConfirm`,v))||(e.preventDefault(),e.stopPropagation())}};return document.addEventListener(`click`,e,!0),()=>document.removeEventListener(`click`,e,!0)},[X,v]);let Wn=K.useMemo(()=>{if(a)return null;let n=String(E.name??t??``);if(!n)return null;let r={type:e,name:n,label:typeof E.label==`string`?E.label:void 0};return e===`object`&&(r.fields=Pt(E.fields).entries.slice(0,60).map(e=>({name:e.name,type:typeof e.def.type==`string`?e.def.type:void 0,label:typeof e.def.label==`string`?e.def.label:void 0,required:!!e.def.required||void 0}))),r},[a,e,t,E]);if(lt(Wn),ie)return(0,q.jsx)(bt,{entry:h,itemName:t,children:(0,q.jsxs)(`div`,{className:`p-6 text-sm text-muted-foreground flex items-center gap-2`,children:[(0,q.jsx)(z,{className:`h-4 w-4 animate-spin`}),` Loading `,e,`/`,t,`…`]})});let Gn=Q&&On&&!!h?.allowRuntimeCreate,Kn=Pr.has(e),$=!a&&(!r||Kn)?gt(e):void 0,qn=a?Nt:void 0,Jn=ht(e),Yn=_t(e);function Xn(){W.current&&O(W.current),R([]),L(null),Ot(null),ut(!1)}let Qn=Q||!V&&!r,$n=(0,q.jsxs)(q.Fragment,{children:[!r&&(0,q.jsx)($t,{entry:h,location:`record_header`,recordId:t,onAfter:()=>it(e=>e+1)}),(!r||nn)&&(0,q.jsxs)(`div`,{className:`flex items-center rounded-md border bg-background p-0.5`,children:[!r&&(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`layers`),title:G(`engine.edit.layers`,v),className:`h-7 w-7 p-0 relative`,children:[(0,q.jsx)(Ee,{className:`h-3.5 w-3.5`}),w?.overlay&&(()=>{let e=ln(w.code,w.effective);return e>0?(0,q.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-emerald-600 text-emerald-50 text-[9px] leading-[14px] text-center font-medium`,title:G(`engine.layers.diff`,v),children:e}):null})()]}),!r&&qe&&(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`review`),title:G(`designer.draftReview.title`,v),className:`h-7 w-7 p-0 relative`,"data-testid":`resource-review-trigger`,children:[(0,q.jsx)(Te,{className:`h-3.5 w-3.5`}),(()=>{let e=vn(w?.effective??null,E);return e>0?(0,q.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-amber-500 text-amber-50 text-[9px] leading-[14px] text-center font-medium`,title:U(`designer.draftReview.badge`,v,{n:e}),children:e}):null})()]}),!r&&(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`references`),title:G(`engine.edit.references`,v),className:`h-7 w-7 p-0 relative`,children:[(0,q.jsx)(Oe,{className:`h-3.5 w-3.5`}),k.status===`loaded`&&k.items.length>0&&(0,q.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-muted text-foreground text-[9px] leading-[14px] text-center font-medium border`,children:k.items.length})]}),nn&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`related`),title:G(`engine.edit.related`,v),className:`h-7 w-7 p-0`,children:(0,q.jsx)(he,{className:`h-3.5 w-3.5`})}),!r&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`history`),title:G(`engine.edit.history`,v),className:`h-7 w-7 p-0`,children:(0,q.jsx)(ze,{className:`h-3.5 w-3.5`})}),!r&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>Y(`audit`),title:G(`engine.edit.auditTab`,v),className:`h-7 w-7 p-0`,children:(0,q.jsx)(Ke,{className:`h-3.5 w-3.5`})})]}),!r&&Z&&w?.overlay&&Bn&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:In,disabled:P,"data-testid":`reset-or-delete-button`,title:G(An?`engine.edit.reset`:`engine.edit.delete`,v),className:`h-7 w-7 p-0 text-muted-foreground hover:text-destructive`,children:An?(0,q.jsx)(Be,{className:`h-3.5 w-3.5`,"data-testid":`reset-icon`}):(0,q.jsx)(Ze,{className:`h-3.5 w-3.5`,"data-testid":`delete-icon`})}),Z&&!r&&!V&&!$&&(0,q.jsxs)(F,{size:`sm`,onClick:()=>ut(!0),className:`h-7`,children:[(0,q.jsx)(Ie,{className:`h-3.5 w-3.5 mr-1`}),G(`engine.edit.edit`,v)]}),Z&&(V||r)&&(0,q.jsx)(Vr,{saving:P,isDirty:X,autoSaveEnabled:Ut,lastSavedAt:Vt,createMode:!!r,locale:v}),Z&&(V||r)&&!r&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>Wt(e=>!e),className:`h-7 w-7 p-0 text-muted-foreground`,title:G(Ut?`engine.edit.autoSaveOn`:`engine.edit.autoSaveOff`,v),children:Ut?(0,q.jsx)(nt,{className:`h-3.5 w-3.5 text-emerald-600`}):(0,q.jsx)(tt,{className:`h-3.5 w-3.5`})}),Z&&!r&&V&&!$&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:Xn,disabled:P,className:`h-7 w-7 p-0`,title:G(`engine.cancel`,v),children:(0,q.jsx)(et,{className:`h-3.5 w-3.5`})}),Z&&(V||r)&&(0,q.jsxs)(F,{size:`sm`,onClick:()=>Pn(!1),disabled:P||!r&&!X||St>0||Mt>0,className:`h-7 w-7 p-0 relative`,title:P?G(`engine.edit.saving`,v):St>0?G(`perm.inspector.saveBlocked`,v):Mt>0?U(`engine.validation.serverRefused`,v,{issue:Dt?.summary??``}):!r&&!X?G(`engine.edit.noChanges`,v):`${G(`engine.edit.save`,v)} (⌘S)`,children:[P?(0,q.jsx)(z,{className:`h-3.5 w-3.5 animate-spin`}):(0,q.jsx)(Ve,{className:`h-3.5 w-3.5`}),X&&!P&&(0,q.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-0.5 -right-0.5 inline-block h-2 w-2 rounded-full bg-amber-300 ring-2 ring-background`})]}),Z&&!r&&qe&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:Rn,disabled:P||Xe,className:`h-7 w-7 p-0 text-muted-foreground`,title:G(`engine.edit.discardDraft`,v),children:(0,q.jsx)(Qe,{className:`h-3.5 w-3.5`})}),Z&&!r&&qe&&(0,q.jsx)(F,{size:`sm`,onClick:Ln,disabled:P||Xe||X,className:`h-7 px-2 relative bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,title:G(X?`engine.edit.publishBlockedDirty`:`engine.edit.publish`,v),children:Xe?(0,q.jsx)(z,{className:`h-3.5 w-3.5 animate-spin`}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(Ue,{className:`h-3.5 w-3.5 mr-1`}),(0,q.jsx)(`span`,{className:`text-xs`,children:G(`engine.edit.publish`,v)})]})})]});return(0,q.jsxs)(bt,{entry:h??{type:e,label:e},itemName:r?`(new)`:t,subtitle:r?G(`engine.edit.createNew`,v):void 0,actions:$?null:$n,children:[(0,q.jsxs)(`div`,{className:$?`flex h-full min-h-0 flex-col`:`p-6 space-y-6 max-w-7xl`,children:[(oe||Q||qe||Hn)&&(0,q.jsxs)(`div`,{className:$?`px-6 pt-4 space-y-3`:`space-y-3`,children:[oe&&(0,q.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:oe}),Hn&&(0,q.jsxs)(`div`,{className:`text-xs text-amber-900 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-2.5`,children:[(0,q.jsx)(ke,{className:`h-3.5 w-3.5 mt-0.5 shrink-0 opacity-80`}),(0,q.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,q.jsx)(`div`,{className:`font-medium`,"data-testid":`lock-banner-title`,children:Nr(w?.lock,v)}),Vn&&(0,q.jsx)(`div`,{className:`mt-0.5 opacity-90`,children:Vn}),w?.lockDocsUrl&&(0,q.jsxs)(`a`,{href:w.lockDocsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`mt-1 inline-flex items-center gap-1 text-amber-800 underline hover:text-amber-900 dark:text-amber-200 dark:hover:text-amber-100`,children:[v===`zh-CN`?`查看文档`:`View docs`,` →`]}),w?.packageId&&(0,q.jsx)(`div`,{className:`mt-0.5 text-amber-700 dark:text-amber-300/80`,children:(0,q.jsxs)(`code`,{className:`font-mono`,children:[w.packageId,w.packageVersion?`@${w.packageVersion}`:``]})})]}),Gn&&(0,q.jsx)(F,{size:`sm`,variant:`outline`,className:`shrink-0 h-7 bg-background/60`,onClick:()=>o(`../new`,{relative:`path`}),children:G(`engine.list.create`,v)})]}),qe&&!r&&(0,q.jsxs)(`div`,{className:`text-xs text-emerald-900 border border-emerald-300 bg-emerald-50 rounded p-3 dark:text-emerald-200 dark:border-emerald-700/50 dark:bg-emerald-950/30 flex items-center gap-3`,children:[(0,q.jsx)(Ue,{className:`h-3.5 w-3.5 shrink-0`}),(0,q.jsx)(`span`,{className:`flex-1`,children:G(`engine.edit.draftPending`,v)}),Z&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(F,{size:`sm`,variant:`ghost`,onClick:Rn,disabled:P||Xe,className:`h-7`,children:G(`engine.edit.discardDraft`,v)}),(0,q.jsx)(F,{size:`sm`,onClick:Ln,disabled:P||Xe||X,className:`h-7 bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,children:Xe?(0,q.jsx)(z,{className:`h-3.5 w-3.5 animate-spin`}):G(`engine.edit.publish`,v)})]})]}),Q&&!Hn&&(0,q.jsxs)(`div`,{"data-testid":`readonly-banner`,className:`text-xs text-amber-800 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-3`,children:[(0,q.jsx)(`div`,{className:`flex-1`,children:Gn?G(`engine.edit.artifactLockedBanner`,v).split(/(\{type\})/).map((t,n)=>t===`{type}`?(0,q.jsx)(`code`,{className:`font-mono`,children:e},n):(0,q.jsx)(K.Fragment,{children:t},n)):G(`engine.edit.readOnlyTypeBanner`,v).split(/(\{flag\}|\{type\}|\{override\})/).map((t,n)=>t===`{flag}`?(0,q.jsx)(`code`,{className:`font-mono`,children:`OBJECTSTACK_METADATA_WRITABLE`},n):t===`{type}`?(0,q.jsx)(`code`,{className:`font-mono`,children:e},n):t===`{override}`?(0,q.jsx)(`code`,{className:`font-mono`,children:`allowOrgOverride`},n):(0,q.jsx)(K.Fragment,{children:t},n))}),Gn&&(0,q.jsx)(F,{size:`sm`,variant:`outline`,className:`shrink-0`,onClick:()=>o(`../new`,{relative:`path`}),children:G(`engine.list.create`,v)})]})]}),(0,q.jsx)(`div`,{className:$?`flex w-full flex-1 min-h-0 flex-col`:`w-full`,children:(0,q.jsxs)(`div`,{className:$?`mt-2 flex-1 min-h-0 flex flex-col px-6 pb-4`:`mt-4 space-y-3`,children:[!$&&Qn&&!Q&&Z&&!r&&(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-muted-foreground border rounded p-2.5 bg-muted/30`,children:[(0,q.jsx)(`span`,{children:G(`engine.edit.readOnlyBanner`,v).split(/\{edit\}/).map((e,t,n)=>(0,q.jsxs)(K.Fragment,{children:[e,t<n.length-1&&(0,q.jsx)(`strong`,{children:G(`engine.edit.edit`,v)})]},t))}),(0,q.jsxs)(F,{size:`sm`,variant:`outline`,onClick:()=>ut(!0),children:[(0,q.jsx)(Ie,{className:`h-3.5 w-3.5 mr-1`}),G(`engine.edit.edit`,v)]})]}),(()=>{let t=w?._diagnostics,n=wr(e,y)?pe.map(e=>({path:e.path,message:zt(e.message,v)})):(t?.errors??[]).map(e=>({...e,message:zt(e.message,v)})),i=wr(e,y)?n.length===0:t?.valid!==!1;if(r&&!me||!Lr({loadFailed:ue,hasDiag:!!t,hasClientValidator:wr(e,y)}))return null;let a=n,o=t?.warnings??[],s=!i&&a.length>0,c=o.length>0;if(!s&&!c)return null;let l=(e,t)=>{let n=t.slice(0,3),r=Math.max(0,t.length-n.length),i=e===`error`?`border-destructive/40 bg-destructive/[0.06] text-destructive`:`border-amber-500/40 bg-amber-500/[0.08] text-amber-800 dark:text-amber-200`,a=e===`error`?`engine.edit.diagnostics.title`:`engine.edit.diagnostics.warnTitle`;return(0,q.jsxs)(`div`,{"data-testid":e===`error`?`metadata-validation-banner`:void 0,className:`flex items-start gap-2 text-xs border rounded p-2.5 ${i}`,children:[(0,q.jsx)(B,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`div`,{className:`font-medium`,children:U(a,v,{count:t.length})}),(0,q.jsxs)(`ul`,{className:`mt-1 space-y-0.5 font-mono text-[11px]`,children:[n.map((e,t)=>(0,q.jsxs)(`li`,{className:`truncate`,children:[(0,q.jsx)(`span`,{className:`opacity-70`,children:e.path?Nn(e.path):`(root)`}),`: `,e.message]},t)),r>0&&(0,q.jsx)(`li`,{className:`opacity-70`,children:U(`engine.edit.diagnostics.more`,v,{count:r})})]})]})]},e)};return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[s&&l(`error`,a),c&&l(`warning`,o)]})})(),$?(0,q.jsx)(`div`,{className:Cn?`fixed inset-0 z-50 bg-background flex flex-col p-3`:`relative flex-1 min-h-0 flex`,children:(0,q.jsxs)(D,{orientation:`horizontal`,className:`flex-1 min-h-0 rounded-md border bg-background overflow-hidden`,id:`metadata-edit-${e}`,children:[(0,q.jsx)(m,{defaultSize:62,minSize:30,children:(0,q.jsxs)(`div`,{className:`relative h-full flex flex-col`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b bg-background/95 backdrop-blur px-3 py-2 sticky top-0 z-10`,children:[(0,q.jsx)(`div`,{className:`flex items-center gap-1`,children:Z&&(0,q.jsxs)(`div`,{role:`tablist`,"aria-label":G(`engine.edit.designer`,v),className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":!bn,onClick:()=>Sn(!1),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(bn?`text-muted-foreground hover:text-foreground`:`bg-background shadow-sm text-foreground`),title:G(`engine.edit.designMode`,v),children:[(0,q.jsx)(Me,{className:`h-3.5 w-3.5`}),G(`engine.edit.designMode`,v)]}),(0,q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":bn,onClick:()=>Sn(!0),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(bn?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:G(`engine.edit.previewMode`,v),children:[(0,q.jsx)(Se,{className:`h-3.5 w-3.5`}),G(`engine.edit.previewMode`,v)]})]})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[$n,(0,q.jsx)(`span`,{className:`mx-1 h-5 w-px bg-border`,"aria-hidden":!0}),$&&(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:_n,className:`h-7 w-7 p-0`,title:G(pn?`engine.edit.showInspector`:`engine.edit.hideInspector`,v)+` (⌘\\)`,children:pn?(0,q.jsx)(Fe,{className:`h-3.5 w-3.5`}):(0,q.jsx)(Pe,{className:`h-3.5 w-3.5`})}),(0,q.jsx)(F,{variant:`ghost`,size:`sm`,onClick:()=>Dn(e=>!e),className:`h-7 w-7 p-0`,title:G(Cn?`engine.edit.exitFullscreen`:`engine.edit.fullscreen`,v),children:Cn?(0,q.jsx)(je,{className:`h-3.5 w-3.5`}):(0,q.jsx)(Ae,{className:`h-3.5 w-3.5`})})]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4 bg-[radial-gradient(circle_at_1px_1px,theme(colors.border)_1px,transparent_0)] [background-size:16px_16px] bg-muted/30`,children:(0,q.jsx)($,{type:e,name:t,draft:E,baseline:r?void 0:w?.effective??void 0,editing:V&&!bn,selection:bn?null:H,onSelectionChange:dt,locale:v,diagnostics:Ge,onPatch:e=>_e(t=>({...t,...e}))})})]})}),(0,q.jsx)(se,{withHandle:!0,className:pn?`hidden`:`w-1.5 bg-border/40 hover:bg-primary/40 active:bg-primary/60 transition-colors`}),(0,q.jsx)(m,{panelRef:gn,defaultSize:hn.current,minSize:22,collapsible:!0,collapsedSize:0,onResize:e=>{let t=e.asPercentage,n=t<=.5;n||(hn.current=t,typeof window<`u`&&window.localStorage.setItem(fn,String(Math.round(t)))),mn(e=>e===n?e:(typeof window<`u`&&window.localStorage.setItem(dn,n?`1`:`0`),n))},children:(0,q.jsxs)(`div`,{className:`h-full overflow-auto`,children:[(0,q.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-2 border-b bg-background/95 backdrop-blur px-3 py-2`,children:[(0,q.jsxs)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":sn===`properties`,onClick:()=>cn(`properties`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(sn===`properties`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:G(`engine.edit.inspector.properties`,v),children:[(0,q.jsx)(Je,{className:`h-3.5 w-3.5`}),G(`engine.edit.inspector.properties`,v)]}),(0,q.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":sn===`source`,onClick:()=>cn(`source`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(sn===`source`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:G(`engine.edit.inspector.source`,v),children:[(0,q.jsx)(Ce,{className:`h-3.5 w-3.5`}),G(`engine.edit.inspector.source`,v)]})]}),X&&(0,q.jsxs)(N,{variant:`outline`,className:`text-[10px] border-amber-400/60 text-amber-600 dark:text-amber-300`,children:[(0,q.jsx)(`span`,{className:`mr-1 inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),G(`engine.edit.unsaved`,v)]})]}),(0,q.jsx)(`div`,{className:`p-4`,children:sn===`source`?(0,q.jsx)(Zn,{value:E,onChange:_e,readOnly:Qn,issues:We.map(e=>({path:e.path??``,message:e.message}))}):H&&Jn?(0,q.jsx)(Jn,{type:e,name:t,draft:E,selection:H,onPatch:e=>_e(t=>({...t,...e})),onClearSelection:()=>dt(null),onSelectionChange:dt,onBlockingIssuesChange:e=>mt({key:vt,count:e}),readOnly:Qn,locale:v}):!H&&Yn?(0,q.jsx)(Yn,{type:e,name:t,draft:E,onPatch:e=>_e(t=>({...t,...e})),onSelectionChange:dt,onBlockingIssuesChange:e=>mt({key:vt,count:e}),readOnly:Qn,locale:v,serverSchema:h?.schema}):(0,q.jsx)(Ft,{schema:_,idPath:qn,form:r&&g.createSchema?void 0:h?.form,value:E,onChange:He,issues:We,hiddenFields:Le,fieldOrder:Re,readOnly:Qn,createMode:r,widgetContext:Zt})})]})})]})}):(0,q.jsx)(Ft,{schema:_,idPath:qn,form:r&&g.createSchema?void 0:h?.form,value:E,onChange:He,issues:We,hiddenFields:Le,fieldOrder:Re,readOnly:Qn,createMode:r,widgetContext:Zt})]})})]}),(0,q.jsx)(M,{open:J===`layers`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsx)(S,{className:`text-base`,children:G(`engine.edit.layers`,v)}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,q.jsx)(un,{layered:w,locale:v})})]})}),(0,q.jsx)(M,{open:J===`review`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsx)(S,{className:`text-base`,children:G(`designer.draftReview.title`,v)}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t,` · `,G(`designer.canvas.reviewVsPublished`,v)]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,q.jsx)(yn,{published:w?.effective??null,draft:E,locale:v})})]})}),(0,q.jsx)(M,{open:J===`references`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsxs)(S,{className:`text-base`,children:[G(`engine.edit.references`,v),k.status===`loaded`&&(0,q.jsx)(N,{variant:`outline`,className:`ml-2 text-[10px]`,"data-testid":`refs-count-badge`,children:k.items.length})]}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,q.jsx)(Br,{state:k,locale:v,onRetry:()=>void Qt()})})]})}),nn&&(0,q.jsx)(M,{open:J===`related`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsx)(S,{className:`text-base`,children:G(`engine.edit.related`,v)}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,q.jsx)(En,{type:e,name:t,parentItem:E,onOpen:e=>tn(e)})})]})}),!r&&(0,q.jsx)(M,{open:J===`history`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsx)(S,{className:`text-base`,children:G(`engine.edit.history`,v)}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,q.jsx)(xt,{type:e,name:t,client:u,locale:v,onRollback:()=>it(e=>e+1),rollbackLabel:G(`engine.edit.rollback`,v),rollbackConfirm:e=>G(`engine.edit.rollbackConfirm`,v).replace(`{version}`,String(e))})})]})}),!r&&(0,q.jsx)(M,{open:J===`audit`,onOpenChange:e=>!e&&Y(null),children:(0,q.jsxs)(f,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,q.jsxs)(b,{className:`px-4 py-3 border-b`,children:[(0,q.jsx)(S,{className:`text-base`,children:G(`engine.edit.auditTab`,v)}),(0,q.jsxs)(j,{className:`text-xs`,children:[e,` / `,t]})]}),(0,q.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden p-3`,children:(0,q.jsx)(Fn,{type:e,name:t,client:u,locale:v})})]})}),(0,q.jsx)(Mn,{target:en,onClose:()=>tn(null),parentContext:{type:e,name:t}}),(0,q.jsx)(re,{open:ve!=null,onOpenChange:e=>{e||(ye(null),xe(null))},children:(0,q.jsxs)(p,{children:[(0,q.jsxs)(C,{children:[(0,q.jsxs)(ee,{className:`flex items-center gap-2`,children:[(0,q.jsx)(B,{className:`h-5 w-5 text-amber-600`}),G(`engine.edit.destructiveTitle`,v)]}),(0,q.jsx)(ne,{children:G(`engine.edit.destructiveDesc`,v)})]}),(0,q.jsx)(`div`,{className:`max-h-[300px] overflow-auto space-y-2 my-2`,children:ve?.map((e,t)=>(0,q.jsxs)(`div`,{className:`rounded border bg-amber-50 border-amber-200 p-2 text-xs`,children:[(0,q.jsx)(`div`,{className:`font-mono text-amber-900`,children:e.kind??`change`}),e.path&&(0,q.jsx)(`div`,{className:`text-amber-800 font-mono mt-0.5`,children:e.path}),(0,q.jsx)(`div`,{className:`text-amber-900 mt-1`,children:e.message})]},t))}),(0,q.jsxs)(x,{children:[(0,q.jsx)(F,{variant:`ghost`,onClick:()=>ye(null),children:G(`engine.cancel`,v)}),(0,q.jsx)(F,{variant:`destructive`,onClick:()=>Pn(!0),disabled:P,children:G(P?`engine.edit.forcing`:`engine.edit.forceSave`,v)})]})]})})]})}function Br({state:e,locale:t,onRetry:n}){if(e.status===`error`)return(0,q.jsxs)(I,{"data-testid":`refs-error`,children:[(0,q.jsxs)(w,{className:`flex items-center justify-center gap-2`,children:[(0,q.jsx)(B,{className:`h-4 w-4 text-amber-600`}),G(`engine.edit.refsErrorTitle`,t)]}),(0,q.jsx)(E,{children:G(`engine.edit.refsErrorDesc`,t)}),e.message?(0,q.jsx)(`p`,{"data-testid":`refs-error-cause`,className:`mt-2 max-w-full break-words font-mono text-xs text-muted-foreground`,children:e.message}):null,(0,q.jsx)(F,{variant:`outline`,size:`sm`,className:`mt-3`,"data-testid":`refs-retry`,onClick:n,children:G(`engine.edit.refsRetry`,t)})]});if(e.status!==`loaded`)return(0,q.jsxs)(`div`,{"data-testid":`refs-scanning`,className:`text-sm text-muted-foreground flex items-center gap-2`,children:[(0,q.jsx)(z,{className:`h-4 w-4 animate-spin`}),` `,G(`engine.edit.refsScanning`,t)]});let r=e.items;return r.length===0?(0,q.jsxs)(I,{"data-testid":`refs-empty`,children:[(0,q.jsx)(w,{children:G(`engine.edit.refsEmptyTitle`,t)}),(0,q.jsx)(E,{children:G(`engine.edit.refsEmptyDesc`,t)})]}):(0,q.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,q.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,q.jsxs)(`tr`,{children:[(0,q.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From type`}),(0,q.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From name`}),(0,q.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`Path`})]})}),(0,q.jsx)(`tbody`,{className:`divide-y`,children:r.map((e,t)=>(0,q.jsxs)(`tr`,{className:`hover:bg-accent/50`,children:[(0,q.jsx)(`td`,{className:`px-3 py-2`,children:(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] font-mono`,children:e.fromType})}),(0,q.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs`,children:e.fromName}),(0,q.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs text-muted-foreground`,children:e.path})]},t))})]})})}function Vr({saving:e,isDirty:t,autoSaveEnabled:n,lastSavedAt:r,createMode:i,locale:a}){let[,o]=K.useReducer(e=>e+1,0);if(K.useEffect(()=>{if(!r)return;let e=window.setInterval(o,3e4);return()=>window.clearInterval(e)},[r]),e)return(0,q.jsxs)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:[(0,q.jsx)(z,{className:`h-3 w-3 animate-spin`}),G(`engine.edit.saving`,a)]});if(t)return i?null:(0,q.jsxs)(`span`,{className:`text-xs text-amber-600 dark:text-amber-300 hidden md:inline-flex items-center gap-1`,children:[(0,q.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),G(n?`engine.edit.autoSavingShortly`:`engine.edit.unsaved`,a)]});if(r){let e=String(r.getHours()).padStart(2,`0`),t=String(r.getMinutes()).padStart(2,`0`);return(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:U(`engine.edit.savedAt`,a,{time:`${e}:${t}`})})}return null}function Hr({type:e}){let t=c(),[n]=i(),r=e??n.get(`type`)??``;if(!r)return(0,q.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:`Missing metadata type`}),(0,q.jsxs)(E,{children:[`This page expects a `,(0,q.jsx)(`code`,{className:`font-mono`,children:`?type=`}),` query param (e.g. `,(0,q.jsx)(`code`,{className:`font-mono`,children:`?type=view`}),`) or a nav-metadata `,(0,q.jsxs)(`code`,{className:`font-mono`,children:[`params: `,`{ type: 'view' }`]}),`.`]})]})});let a=Ur(t.pathname),o=a.split(`/`).filter(Boolean);return o.length===0?(0,q.jsx)(tn,{type:r}):o[0]===`new`&&o.length===1?(0,q.jsx)(Rr,{type:r,name:``,createMode:!0},`${r}:__new__`):o.length===2&&o[1]===`history`?(0,q.jsx)(pt,{type:r,name:decodeURIComponent(o[0])}):o.length===1?(0,q.jsx)(Rr,{type:r,name:decodeURIComponent(o[0])},`${r}:${o[0]}`):(0,q.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:`Unknown sub-path`}),(0,q.jsxs)(E,{children:[`The path `,(0,q.jsx)(`code`,{className:`font-mono`,children:a}),` isn't recognized. Valid forms are `,(0,q.jsx)(`code`,{className:`font-mono`,children:`/`}),` (list),`,` `,(0,q.jsx)(`code`,{className:`font-mono`,children:`/new`}),` (create),`,` `,(0,q.jsx)(`code`,{className:`font-mono`,children:`/:name`}),` (edit),`,` `,(0,q.jsx)(`code`,{className:`font-mono`,children:`/:name/history`}),`.`]})]})})}function Ur(e){let t=e.indexOf(`/metadata/resource`);return t===-1?``:e.slice(t+18)}function Wr(){let e=at(),t=Rt(),[n,r]=K.useState(`error`),{loading:i,error:a,summary:s,reload:c}=rt(e,n),{entries:l}=st(e),u=K.useMemo(()=>{let e={};for(let n of l)e[n.type]=Vt(n.type,t,n.label);return e},[l,t]),d=K.useMemo(()=>{let e={};for(let t of s.entries)(e[t.type]??=[]).push(t);return Object.entries(e).sort(([,e],[,t])=>t.length-e.length)},[s]);return(0,q.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,q.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,q.jsx)(`nav`,{className:`text-xs text-muted-foreground mb-2`,children:(0,q.jsxs)(o,{to:`..`,className:`hover:text-foreground inline-flex items-center gap-1`,children:[(0,q.jsx)(pe,{className:`h-3 w-3`}),G(`engine.diagnostics.back`,t)]})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,q.jsxs)(`h1`,{className:`text-xl font-semibold flex items-center gap-2`,children:[(0,q.jsx)(B,{className:`h-5 w-5 text-destructive`}),G(`engine.diagnostics.title`,t)]}),(0,q.jsx)(N,{variant:`outline`,className:`text-[11px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:U(`engine.diagnostics.summary`,t,{count:s.total,items:s.scannedItems,types:s.scannedTypes})}),(0,q.jsx)(`div`,{className:`flex-1`}),(0,q.jsx)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5 text-xs`,children:[`error`,`warning`].map(e=>(0,q.jsx)(`button`,{role:`tab`,type:`button`,"aria-selected":n===e,onClick:()=>r(e),className:`px-2.5 py-1 rounded transition-colors `+(n===e?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),children:G(`engine.diagnostics.severity.${e}`,t)},e))}),(0,q.jsxs)(F,{variant:`ghost`,size:`sm`,onClick:c,children:[(0,q.jsx)(Re,{className:`h-3.5 w-3.5 mr-1`}),G(`engine.diagnostics.refresh`,t)]})]}),(0,q.jsx)(`p`,{className:`text-sm text-muted-foreground mt-2 max-w-3xl`,children:G(`engine.diagnostics.description`,t)})]}),(0,q.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[i&&(0,q.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:G(`engine.diagnostics.loading`,t)}),!i&&a&&(0,q.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/[0.06]`,children:U(`engine.diagnostics.loadFailed`,t,{error:a})}),!i&&!a&&d.length===0&&(0,q.jsxs)(I,{children:[(0,q.jsx)(w,{children:G(`engine.diagnostics.cleanTitle`,t)}),(0,q.jsx)(E,{children:U(`engine.diagnostics.cleanHint`,t,{items:s.scannedItems,types:s.scannedTypes})})]}),d.map(([e,r])=>(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-2`,children:[(0,q.jsx)(o,{to:`../${encodeURIComponent(e)}`,className:`hover:text-foreground hover:underline`,children:u[e]??e}),(0,q.jsx)(`span`,{className:`font-mono normal-case tracking-normal text-[10px] opacity-70`,children:e}),(0,q.jsx)(N,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:r.length})]}),(0,q.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,q.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,q.jsxs)(`tr`,{children:[(0,q.jsx)(`th`,{className:`px-3 py-2 text-left font-medium w-[28%]`,children:G(`engine.diagnostics.col.name`,t)}),(0,q.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:G(`engine.diagnostics.col.issues`,t)})]})}),(0,q.jsx)(`tbody`,{className:`divide-y`,children:r.map(r=>{let i=r.diagnostics.errors??[],a=r.diagnostics.warnings??[],s=(n===`warning`&&i.length===0?a:i).slice(0,3),c=Math.max(0,(i.length||a.length)-s.length);return(0,q.jsxs)(`tr`,{className:`hover:bg-accent/50 align-top`,children:[(0,q.jsxs)(`td`,{className:`px-3 py-2 align-top`,children:[(0,q.jsx)(o,{to:`../${encodeURIComponent(e)}/${encodeURIComponent(r.name)}`,className:`text-primary hover:underline font-mono`,children:r.name}),i.length>0&&(0,q.jsx)(N,{variant:`outline`,className:`ml-2 text-[10px] border-destructive/40 text-destructive`,children:U(`engine.diagnostics.errorN`,t,{count:i.length})}),a.length>0&&(0,q.jsx)(N,{variant:`outline`,className:`ml-2 text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300`,children:U(`engine.diagnostics.warnN`,t,{count:a.length})})]}),(0,q.jsx)(`td`,{className:`px-3 py-2 align-top`,children:(0,q.jsxs)(`ul`,{className:`space-y-0.5 font-mono text-[11px]`,children:[s.map((e,t)=>(0,q.jsxs)(`li`,{className:`truncate`,children:[(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:e.path||`(root)`}),(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`: `}),e.message]},t)),c>0&&(0,q.jsx)(`li`,{className:`text-muted-foreground`,children:U(`engine.diagnostics.more`,t,{count:c})})]})})]},r.name)})})]})})]},e))]})]})}var Gr=new Set([`field`,`package`]),Kr={data:be,ui:Ee,automation:$e,ai:Ye,system:We,platform:We,identity:Ke,security:Ke},qr={data:{from:`from-sky-500`,to:`to-blue-600`,ring:`hover:ring-sky-400/40`,text:`text-sky-600 dark:text-sky-400`},ui:{from:`from-violet-500`,to:`to-fuchsia-600`,ring:`hover:ring-violet-400/40`,text:`text-violet-600 dark:text-violet-400`},automation:{from:`from-amber-500`,to:`to-orange-600`,ring:`hover:ring-amber-400/40`,text:`text-amber-600 dark:text-amber-400`},ai:{from:`from-pink-500`,to:`to-rose-600`,ring:`hover:ring-pink-400/40`,text:`text-pink-600 dark:text-pink-400`},identity:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},security:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},system:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},platform:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},other:{from:`from-slate-400`,to:`to-slate-600`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`}},Jr=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],Yr=[`object`,`view`,`page`,`dashboard`,`report`,`flow`,`action`,`agent`],Xr={object:Xe,dashboard:De,page:we,report:ge,record:me,metadata:Ee};function Zr(){let e=new Date().getHours();return e<12?`engine.home.greetingMorning`:e<18?`engine.home.greetingAfternoon`:`engine.home.greetingEvening`}function Qr(e,t){let n=new Date(e).getTime();if(Number.isNaN(n))return``;let r=Math.floor((Date.now()-n)/6e4),i=new Intl.RelativeTimeFormat(t,{numeric:`auto`});if(r<1)return i.format(0,`minute`);if(r<60)return i.format(-r,`minute`);let a=Math.floor(r/60);if(a<24)return i.format(-a,`hour`);let o=Math.floor(a/24);return o<7?i.format(-o,`day`):i.format(-Math.floor(o/7),`week`)}function $r(){let e=at(),{loading:t,entries:n}=st(e),{recentItems:r}=ut(),a=Rt(),s=ue(),[c,l]=i(),[u,d]=K.useState(null);K.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;d(Wt(n))}catch{t||d([])}})(),()=>{t=!0}},[e]);let f=c.get(`package`),p=K.useMemo(()=>u?f&&u.some(e=>e.id===f)?f:u[0]?.id??null:null,[u,f]);K.useEffect(()=>{if(!u||u.length===0||f&&u.some(e=>e.id===f))return;let e=new URLSearchParams(c);e.set(`package`,u[0].id),l(e,{replace:!0})},[u,f]);let m=p?`?package=${encodeURIComponent(p)}`:``,h=`metadata${m}`,g=`component/developer/packages${m}`,{summary:_,countsByType:v,packagesByType:y,loading:b}=rt(e,`warning`,p??void 0),x=K.useMemo(()=>n.filter(e=>Gr.has(e.type)||!p?!1:(y[e.type]??[]).includes(p)),[p,n,y]),S=K.useMemo(()=>x.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate),[x]),C=K.useMemo(()=>{let e={};for(let t of x)(e[t.domain??`other`]??=[]).push(t);for(let t of Object.values(e))t.sort((e,t)=>(v[t.type]??0)-(v[e.type]??0));return Object.entries(e).sort(([e],[t])=>(Jr.indexOf(e)===-1?99:Jr.indexOf(e))-(Jr.indexOf(t)===-1?99:Jr.indexOf(t)))},[x,v]),w=K.useMemo(()=>{let e=new Map(S.map(e=>[e.type,e]));return Yr.map(t=>e.get(t)).filter(Boolean)},[S]),ee=_.total,T=!t&&!b&&ee===0;return t||u===null||p&&b?(0,q.jsx)(`div`,{className:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`,children:G(`engine.home.loading`,a)}):(0,q.jsxs)(`div`,{className:`h-full overflow-auto bg-gradient-to-b from-muted/40 to-background`,children:[(0,q.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-6 py-6 space-y-6`,children:[(0,q.jsxs)(`section`,{className:`relative overflow-hidden rounded-3xl bg-gradient-to-br from-indigo-600 via-violet-600 to-fuchsia-600 px-7 py-8 text-white shadow-xl shadow-violet-500/20`,children:[(0,q.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-20 h-64 w-64 rounded-full bg-white/15 blur-3xl`}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute -bottom-24 left-1/3 h-56 w-56 rounded-full bg-fuchsia-300/20 blur-3xl`}),(0,q.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-[0.12]`,style:{backgroundImage:`radial-gradient(currentColor 1px, transparent 1px)`,backgroundSize:`18px 18px`}}),(0,q.jsxs)(`div`,{className:`relative flex flex-col gap-6 lg:flex-row lg:items-end lg:justify-between`,children:[(0,q.jsxs)(`div`,{className:`max-w-xl`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-white/80`,children:[(0,q.jsx)(Ye,{className:`h-4 w-4`}),G(Zr(),a)]}),(0,q.jsx)(`h1`,{className:`mt-2 text-3xl font-bold tracking-tight sm:text-4xl`,children:`Studio`}),(0,q.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-white/85 sm:text-base`,children:G(`engine.home.subtitle`,a)}),(0,q.jsxs)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2.5`,children:[(0,q.jsx)(F,{asChild:!0,size:`sm`,variant:`ghost`,className:`bg-white/10 text-white shadow-sm ring-1 ring-white/25 hover:bg-white/20 hover:text-white`,children:(0,q.jsxs)(o,{to:h,children:[(0,q.jsx)(Ee,{className:`mr-1.5 h-4 w-4`}),G(`engine.home.browseAll`,a)]})}),(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full bg-white/15 px-3 py-1.5 text-xs font-medium text-white/90 backdrop-blur-sm`,children:[(0,q.jsx)(He,{className:`h-3.5 w-3.5`}),G(`engine.directory.quickFind`,a),` ⌘⇧M`]})]})]}),(0,q.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,q.jsx)(ei,{value:x.length,label:G(`engine.home.statTypes`,a)}),(0,q.jsx)(ei,{value:S.length,label:G(`engine.home.statWritable`,a)}),(0,q.jsx)(ei,{value:u.length,label:G(`engine.home.statPackages`,a)})]})]})]}),(0,q.jsxs)(`section`,{className:`grid grid-cols-2 gap-4 lg:grid-cols-4`,children:[(0,q.jsx)(ti,{icon:Ee,from:`from-indigo-500`,to:`to-violet-600`,value:x.length,label:G(`engine.home.statTypes`,a),to_link:h}),(0,q.jsx)(ti,{icon:ve,from:`from-sky-500`,to:`to-blue-600`,value:S.length,label:G(`engine.home.statWritable`,a),to_link:h}),(0,q.jsx)(ti,{icon:Ne,from:`from-emerald-500`,to:`to-teal-600`,value:u.length,label:G(`engine.home.statPackages`,a),to_link:g}),(0,q.jsxs)(o,{to:T?h:`metadata/_diagnostics${m}`,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border p-4 transition-all hover:-translate-y-0.5 hover:shadow-lg `+(T?`border-emerald-200 bg-emerald-50/60 dark:border-emerald-900/50 dark:bg-emerald-950/30`:`border-amber-300 bg-amber-50/70 dark:border-amber-900/50 dark:bg-amber-950/30`),children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br text-white shadow-sm `+(T?`from-emerald-500 to-teal-600`:`from-amber-500 to-orange-600`),children:T?(0,q.jsx)(ve,{className:`h-5 w-5`}):(0,q.jsx)(B,{className:`h-5 w-5`})}),(0,q.jsx)(R,{className:`h-4 w-4 text-muted-foreground transition-transform group-hover:translate-x-0.5`})]}),(0,q.jsxs)(`div`,{className:`mt-3`,children:[(0,q.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:T?G(`engine.home.allHealthy`,a):ee}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:G(T?`engine.home.allHealthyHint`:`engine.home.statIssues`,a)})]})]})]}),w.length>0&&(0,q.jsxs)(`section`,{children:[(0,q.jsx)(ni,{icon:Le,title:G(`engine.home.quickActions`,a),hint:G(`engine.home.quickActionsHint`,a)}),(0,q.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2.5`,children:w.map(e=>(0,q.jsx)(F,{asChild:!0,variant:`outline`,size:`sm`,className:`group rounded-full border-transparent bg-muted hover:bg-primary/10 hover:text-primary`,children:(0,q.jsxs)(o,{to:`metadata/${encodeURIComponent(e.type)}/new${m}`,children:[(0,q.jsx)(Le,{className:`mr-1 h-3.5 w-3.5 text-primary transition-transform group-hover:rotate-90`}),U(`engine.home.newItem`,a,{label:Vt(e.type,a,e.label)})]})},e.type))})]}),(0,q.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-3`,children:[(0,q.jsxs)(`section`,{className:`lg:col-span-2`,children:[(0,q.jsx)(ni,{icon:Ee,title:G(`engine.home.explore`,a),hint:G(`engine.home.exploreHint`,a)}),(0,q.jsx)(`div`,{className:`mt-3 grid gap-4 sm:grid-cols-2`,children:C.map(([e,t])=>(0,q.jsx)(ri,{domain:e,group:t,countsByType:v,locale:a,packageSuffix:m},e))})]}),(0,q.jsxs)(`section`,{children:[(0,q.jsx)(ni,{icon:ye,title:G(`engine.home.recent`,a)}),(0,q.jsx)(`div`,{className:`mt-3 rounded-2xl border bg-card p-2`,children:r.length===0?(0,q.jsx)(`div`,{className:`px-3 py-8 text-center text-xs text-muted-foreground`,children:G(`engine.home.recentEmpty`,a)}):(0,q.jsx)(`ul`,{className:`space-y-0.5`,children:r.slice(0,8).map(e=>{let t=Xr[e.type]??me;return(0,q.jsx)(`li`,{children:(0,q.jsxs)(o,{to:e.href,className:`group flex items-center gap-3 rounded-xl px-3 py-2 transition-colors hover:bg-accent`,children:[(0,q.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground transition-colors group-hover:bg-primary/10 group-hover:text-primary`,children:(0,q.jsx)(t,{className:`h-4 w-4`})}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.label}),(0,q.jsx)(`span`,{className:`block text-[11px] text-muted-foreground`,children:Qr(e.visitedAt,s)})]}),(0,q.jsx)(R,{className:`h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100`})]})},e.id)})})})]})]})]}),(0,q.jsx)(Ht,{})]})}function ei({value:e,label:t}){return(0,q.jsxs)(`div`,{className:`rounded-2xl bg-white/15 px-4 py-3 text-center backdrop-blur-sm ring-1 ring-white/20`,children:[(0,q.jsx)(`div`,{className:`text-2xl font-bold tabular-nums leading-none`,children:e}),(0,q.jsx)(`div`,{className:`mt-1 text-[11px] font-medium text-white/80`,children:t})]})}function ti({icon:e,from:t,to:n,value:r,label:i,to_link:a}){return(0,q.jsxs)(o,{to:a,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border bg-card p-4 transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-lg`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,q.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${t} ${n} text-white shadow-sm`,children:(0,q.jsx)(e,{className:`h-5 w-5`})}),(0,q.jsx)(R,{className:`h-4 w-4 text-muted-foreground opacity-0 transition-all group-hover:translate-x-0.5 group-hover:opacity-100`})]}),(0,q.jsxs)(`div`,{className:`mt-3`,children:[(0,q.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:r}),(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i})]})]})}function ni({icon:e,title:t,hint:n}){return(0,q.jsxs)(`div`,{className:`flex items-baseline gap-2.5`,children:[(0,q.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,q.jsx)(e,{className:`h-4 w-4 text-muted-foreground`}),t]}),n&&(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]})}function ri({domain:e,group:t,countsByType:n,locale:r,packageSuffix:i}){let a=Kr[e]??me,s=qr[e]??qr.other,c=t.slice(0,6),l=t.length-c.length;return(0,q.jsxs)(`div`,{className:`group rounded-2xl border bg-card p-4 ring-1 ring-transparent transition-all hover:-translate-y-0.5 hover:shadow-lg ${s.ring}`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,q.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-br ${s.from} ${s.to} text-white shadow-sm`,children:(0,q.jsx)(a,{className:`h-[18px] w-[18px]`})}),(0,q.jsxs)(`div`,{className:`min-w-0`,children:[(0,q.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:Bt(e,r)}),(0,q.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[t.length,` `,G(`engine.home.typesLower`,r)]})]})]}),(0,q.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:[c.map(e=>(0,q.jsxs)(o,{to:`metadata/${encodeURIComponent(e.type)}${i}`,className:`inline-flex items-center gap-1.5 rounded-lg border bg-background px-2 py-1 text-xs transition-colors hover:border-primary/50 hover:bg-accent`,children:[(0,q.jsx)(`span`,{className:`truncate max-w-[10rem]`,children:Vt(e.type,r,e.label)}),(0,q.jsx)(`span`,{className:`tabular-nums text-[10px] text-muted-foreground`,children:n[e.type]??0})]},e.type)),l>0&&(0,q.jsxs)(o,{to:`metadata${i}`,className:`inline-flex items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium ${s.text} hover:underline`,children:[`+`,l]})]})]})}export{Wr as MetadataDiagnosticsPage,Jt as MetadataDirectoryPage,Rr as MetadataResourceEditPage,pt as MetadataResourceHistoryPage,tn as MetadataResourceListPage,Hr as MetadataResourceRouter,$r as StudioHomePage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=[`nav`,`navigation`,`tabs`,`items`,`menu`];function t(e){if(!e||!e.startsWith(`nav:`))return null;let t=e.slice(4);return t.length>0?t:null}function n(e){return`nav:${e}`}var r=`surface`;function i(e){return`${e.type}:${e.name}`}function a(e){if(!e)return null;let t=e.indexOf(`:`);if(t<=0)return null;let n=e.slice(0,t),r=e.slice(t+1);return n&&r?{type:n,name:r}:null}function o(t,n){let r=(e,t)=>{for(let i=0;i<e.length;i++){let a=e[i];if(!a||typeof a!=`object`)continue;let o=`${t}[${i}]`;if(a.id===n){let e=a.label??a.title??a.name;return{selectionId:o,label:typeof e==`string`?e:void 0}}if(Array.isArray(a.children)){let e=r(a.children,`${o}.children`);if(e)return e}}return null};for(let n of e){let e=t[n];if(!Array.isArray(e))continue;let i=r(e,n);if(i)return i}return null}function s(e,t){let n=t.split(`.`),r;for(let t=0;t<n.length;t++){let i=/^([a-zA-Z_]\w*)\[(\d+)\]$/.exec(n[t]);if(!i)return null;let a=i[1],o=Number(i[2]),s=t===0?e[a]:r?.[a];if(!Array.isArray(s)||(r=s[o],!r||typeof r!=`object`))return null}return typeof r?.id==`string`&&r.id?r.id:null}export{s as a,i,o as n,t as o,n as r,a as s,r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n,v as r}from"./vendor-react-BggL7APJ.js";import{$ as i,Ar as a,Fn as o,Gn as s,In as c,Kn as l,Ln as u,Mr as d,Nr as f,On as p,Pr as m,Rn as h,Wn as g,Wr as _,Zn as v,bi as y,bt as b,jr as x,kr as S,qn as C,vi as w,vt as T,xt as E,yt as D,zn as O}from"./ui-components-BTB1NkUW.js";import{Ai as ee,At as k,Dr as A,Pr as te,Rt as ne,Ui as j,Wi as re,_n as M,ct as ie,dn as N,ft as ae,g as oe,i as se,ir as ce,ki as le,l as P,n as ue,o as de,rn as fe,s as pe,ut as me,v as he,vn as F,wi as ge,zt as _e}from"./framework-DcWkeiND.js";import{g as ve,h as ye,t as be,w as xe}from"./i18n-runtime-CTgAQF4N.js";import{r as Se}from"./vendor-ui-utils-DIUdEYii.js";import{t as I}from"./vendor-icon-calendar-BsoUBIef.js";import{t as Ce}from"./vendor-icon-chevron-left-KnDcuFH1.js";import{t as we}from"./vendor-icon-chevron-right-DbnKwHYQ.js";import{t as L}from"./vendor-icon-plus-BlfcDDsa.js";import{_ as Te,c as Ee,o as De}from"./plugin-grid-C9h7mRVv.js";var R=e(r(),1),z=n(),Oe=`bg-blue-100 text-blue-900 border border-blue-200`,ke=new Date,Ae=[`bg-blue-100 text-blue-900 border border-blue-200`,`bg-emerald-100 text-emerald-900 border border-emerald-200`,`bg-amber-100 text-amber-900 border border-amber-200`,`bg-rose-100 text-rose-900 border border-rose-200`,`bg-violet-100 text-violet-900 border border-violet-200`,`bg-cyan-100 text-cyan-900 border border-cyan-200`,`bg-orange-100 text-orange-900 border border-orange-200`,`bg-fuchsia-100 text-fuchsia-900 border border-fuchsia-200`],je=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,Me=/(^|\s)(bg|text|from|to|via)-/;function Ne(e){if(!e)return{className:Oe};if(je.test(e))return{className:`text-white`,inlineColor:e};if(Me.test(e))return{className:e};let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return{className:Ae[Math.abs(t)%Ae.length]}}var B=ye({"calendar.today":`Today`,"calendar.month":`Month`,"calendar.week":`Week`,"calendar.day":`Day`,"calendar.newEvent":`New event`,"calendar.moreEvents":`+{{count}} more`,"calendar.allDay":`All Day`,"calendar.a11y.region":`Calendar`,"calendar.a11y.grid":`Calendar grid`,"calendar.a11y.goToToday":`Go to today`,"calendar.a11y.previousPeriod":`Previous period`,"calendar.a11y.nextPeriod":`Next period`,"calendar.a11y.currentDate":`Current date: {{date}}`,"calendar.a11y.dayCell":`{{date}}, {{count}} events`,"calendar.a11y.resizeEventEnd":`Resize event end`,"calendar.a11y.resizeEventEndHint":`Drag to change end date`,"calendar.a11y.resizeStart":`Resize start`,"calendar.a11y.resizeEnd":`Resize end`},`calendar.today`);function Pe({events:e=[],view:t=`month`,currentDate:n=ke,locale:r=`default`,onEventClick:i,onDateClick:a,onViewChange:d,onNavigate:f,onAddClick:p,onEventDrop:m,onTimeRangeSelect:v,slotMinutes:b=30,className:x}){let[S,C]=R.useState(t),[T,E]=R.useState(n),{t:D}=B(),ee=be(),k=r==="default"?ee:r;R.useEffect(()=>{E(n)},[n]),R.useEffect(()=>{C(t)},[t]);let A=R.useRef(d);A.current=d,R.useEffect(()=>{let e=window.matchMedia(`(max-width: 639px)`),t=e=>{e.matches&&(C(`day`),A.current?.(`day`))};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let te=()=>{let e=new Date(T);S===`month`?e.setMonth(e.getMonth()-1):S===`week`?e.setDate(e.getDate()-7):e.setDate(e.getDate()-1),E(e),f?.(e)},ne=()=>{let e=new Date(T);S===`month`?e.setMonth(e.getMonth()+1):S===`week`?e.setDate(e.getDate()+7):e.setDate(e.getDate()+1),E(e),f?.(e)},j=()=>{let e=new Date;E(e),f?.(e)},re=e=>{C(e),d?.(e)},M=()=>{if(S===`month`)return T.toLocaleDateString(k,{month:`long`,year:`numeric`});if(S===`week`){let e=V(T),t=new Date(e);return t.setDate(t.getDate()+6),`${e.toLocaleDateString(k,{month:`short`,day:`numeric`})} - ${t.toLocaleDateString(k,{month:`short`,day:`numeric`,year:`numeric`})}`}return T.toLocaleDateString(k,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})},ie=R.useRef(0);return(0,z.jsxs)(`div`,{role:`region`,"aria-label":D(`calendar.a11y.region`),className:y(`flex flex-col h-full bg-background min-w-0 overflow-hidden`,x),children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 p-2 sm:p-4 border-b min-w-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-center bg-muted/50 rounded-lg p-1 gap-1`,children:[(0,z.jsx)(w,{variant:`ghost`,size:`sm`,onClick:j,className:`h-8`,"aria-label":D(`calendar.a11y.goToToday`),children:D(`calendar.today`)}),(0,z.jsx)(`div`,{className:`h-4 w-px bg-border mx-1`}),(0,z.jsx)(w,{variant:`ghost`,size:`icon`,"aria-label":D(`calendar.a11y.previousPeriod`),onClick:te,className:`h-8 w-8`,children:(0,z.jsx)(Ce,{className:`h-4 w-4`})}),(0,z.jsx)(w,{variant:`ghost`,size:`icon`,"aria-label":D(`calendar.a11y.nextPeriod`),onClick:ne,className:`h-8 w-8`,children:(0,z.jsx)(we,{className:`h-4 w-4`})})]}),(0,z.jsxs)(g,{children:[(0,z.jsx)(l,{asChild:!0,children:(0,z.jsxs)(w,{variant:`ghost`,"aria-label":D(`calendar.a11y.currentDate`,{date:M()}),className:y(`text-base sm:text-xl font-semibold h-auto px-2 sm:px-3 py-1 hover:bg-muted/50 transition-colors`,`flex items-center gap-2`),children:[(0,z.jsx)(I,{className:`h-5 w-5 text-muted-foreground`}),(0,z.jsx)(`span`,{children:M()})]})}),(0,z.jsx)(s,{className:`w-auto p-0`,align:`start`,children:(0,z.jsx)(_,{localeTag:k,mode:`single`,defaultMonth:Number.isNaN(T.getTime())?void 0:T,selected:T,onSelect:e=>{e&&(E(e),f?.(e))},autoFocus:!0,startMonth:new Date(2e3,0),endMonth:new Date(2050,11)})})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsxs)(o,{value:S,onValueChange:re,children:[(0,z.jsx)(h,{className:`w-32 bg-background`,children:(0,z.jsx)(O,{})}),(0,z.jsxs)(c,{children:[(0,z.jsx)(u,{value:`day`,children:D(`calendar.day`)}),(0,z.jsx)(u,{value:`week`,children:D(`calendar.week`)}),(0,z.jsx)(u,{value:`month`,children:D(`calendar.month`)})]})]}),p&&(0,z.jsxs)(w,{onClick:p,size:`sm`,className:`gap-1`,children:[(0,z.jsx)(L,{className:`h-4 w-4`}),D(`calendar.newEvent`)]})]})]}),(0,z.jsxs)(`div`,{className:`flex-1 overflow-auto`,onTouchStart:e=>{ie.current=e.touches[0].clientX},onTouchEnd:e=>{let t=ie.current-e.changedTouches[0].clientX;if(Math.abs(t)>50){let e=new Date(T);S===`day`?e.setDate(e.getDate()+(t>0?1:-1)):S===`week`?e.setDate(e.getDate()+(t>0?7:-7)):e.setMonth(e.getMonth()+(t>0?1:-1)),E(e),f?.(e)}},children:[S===`month`&&(0,z.jsx)(Le,{date:T,events:e,locale:k,onEventClick:i,onDateClick:a,onEventDrop:m}),S===`week`&&(0,z.jsx)(ze,{mode:`week`,date:T,events:e,locale:k,slotMinutes:b,onEventClick:i,onEventDrop:m,onTimeRangeSelect:v}),S===`day`&&(0,z.jsx)(ze,{mode:`day`,date:T,events:e,locale:k,slotMinutes:b,onEventClick:i,onEventDrop:m,onTimeRangeSelect:v})]})]})}function V(e){let t=new Date(e),n=t.getDay(),r=t.getDate()-n;return t.setDate(r),t}function Fe(e){let t=e.getFullYear(),n=e.getMonth(),r=new Date(t,n,1),i=new Date(t,n+1,0),a=r.getDay(),o=[];for(let e=a-1;e>=0;e--){let t=new Date(r.getTime());t.setDate(t.getDate()-(e+1)),o.push(t)}for(let e=1;e<=i.getDate();e++)o.push(new Date(t,n,e));let s=42-o.length;for(let e=1;e<=s;e++){let t=new Date(i.getTime());t.setDate(t.getDate()+e),o.push(t)}return o}function Ie(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function Le({date:e,events:t,locale:n=`default`,onEventClick:r,onDateClick:i,onEventDrop:a}){let o=R.useMemo(()=>Fe(e),[e.getFullYear(),e.getMonth()]),s=R.useMemo(()=>new Date,[]),{t:c}=B(),l=R.useMemo(()=>{let e=new Date(2024,0,7);return Array.from({length:7},(t,r)=>{let i=new Date(e);return i.setDate(i.getDate()+r),i.toLocaleDateString(n,{weekday:`short`})})},[n]),[u,d]=R.useState(null),[f,p]=R.useState(null),m=R.useMemo(()=>{let e=new Map;for(let n of t){let t=new Date(n.start),r=n.end?new Date(n.end):new Date(t);t.setHours(0,0,0,0),r.setHours(0,0,0,0);let i=new Date(t);for(;i<=r;){let a=`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`,o=i.getTime()===t.getTime(),s=i.getTime()===r.getTime(),c=o||s||i.getDay()===0,l=e.get(a),u={event:n,isTitleDay:c,isSpanStart:o,isSpanEnd:s};l?l.push(u):e.set(a,[u]),i.setDate(i.getDate()+1)}}return e},[t]),h=(e,t,n=`move`,r)=>{d(t.id),e.dataTransfer.effectAllowed=`move`;let i={id:t.id,mode:n,...r?{sourceDay:`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`}:{}};e.dataTransfer.setData(`text/plain`,JSON.stringify(i)),n===`resize-end`&&e.stopPropagation()},g=()=>{d(null),p(null)},_=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,p(t)},v=e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},b=(e,n)=>{if(e.preventDefault(),p(null),d(null),!a)return;let r=e.dataTransfer.getData(`text/plain`),i;try{i=JSON.parse(r)}catch{i={id:r,mode:`move`}}let o=t.find(e=>String(e.id)===String(i.id));if(!o)return;let s=new Date(n);if(s.setHours(0,0,0,0),i.mode===`resize-end`){let e=o.end?new Date(o.end):new Date(o.start),t=new Date(e);if(t.setHours(0,0,0,0),s.getTime()===t.getTime())return;let n=new Date(o.start);if(n.setHours(0,0,0,0),s.getTime()<n.getTime())return;let r=new Date(s);r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0),a(o,new Date(o.start),r);return}let c=new Date(o.start),l;if(i.sourceDay){let[e,t,n]=i.sourceDay.split(`-`).map(e=>parseInt(e,10));l=new Date(e,t,n)}else l=new Date(c);l.setHours(0,0,0,0);let u=s.getTime()-l.getTime();if(u===0)return;let f=new Date(c.getTime()+u),m;o.end&&(m=new Date(new Date(o.end).getTime()+u)),a(o,f,m)};return(0,z.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,z.jsx)(`div`,{role:`row`,className:`grid grid-cols-7 border-b`,children:l.map(e=>(0,z.jsx)(`div`,{role:`columnheader`,className:`p-2 text-center text-sm font-medium text-muted-foreground border-r last:border-r-0`,children:e},e))}),(0,z.jsx)(`div`,{role:`grid`,"aria-label":c(`calendar.a11y.grid`),className:`grid grid-cols-7 flex-1 auto-rows-fr`,children:o.map((t,o)=>{let l=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,d=m.get(l)||[],p=t.getMonth()===e.getMonth(),x=Ie(t,s),S=t.toLocaleDateString(n,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`});return(0,z.jsxs)(`div`,{role:`gridcell`,"aria-label":d.length>0?c(`calendar.a11y.dayCell`,{date:S,count:d.length}):S,className:y(`border-b border-r last:border-r-0 p-2 min-h-[100px] cursor-pointer hover:bg-accent/50`,!p&&`bg-muted/50 text-muted-foreground opacity-50`,f===o&&`ring-2 ring-primary`),onClick:()=>i?.(t),onDragOver:e=>_(e,o),onDragLeave:v,onDrop:e=>b(e,t),children:[(0,z.jsx)(`div`,{className:y(`text-sm font-medium mb-2`,x&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6`),...x?{"aria-current":`date`}:{},children:t.getDate()}),(0,z.jsxs)(`div`,{className:`space-y-0.5`,children:[d.slice(0,4).map(({event:e,isTitleDay:n,isSpanStart:i,isSpanEnd:o},s)=>{let l=!n,{className:d,inlineColor:f}=Ne(e.color),p=!!a&&o;return(0,z.jsxs)(`div`,{role:`button`,title:e.title,"aria-label":e.title,draggable:!!a,onDragStart:n=>h(n,e,`move`,t),onDragEnd:g,className:y(`relative text-xs hover:opacity-80 truncate`,a?`cursor-move`:`cursor-pointer`,l?`h-1.5`:`px-2 py-0.5`,i?`rounded-l`:`rounded-l-none`,o?`rounded-r`:`rounded-r-none`,!o&&`-mr-2`,d,u===e.id&&`opacity-50`),style:f?{backgroundColor:f}:void 0,onClick:t=>{t.stopPropagation(),r?.(e)},children:[l?``:e.title,p&&(0,z.jsx)(`span`,{role:`separator`,"aria-label":c(`calendar.a11y.resizeEventEnd`),title:c(`calendar.a11y.resizeEventEndHint`),draggable:!0,onDragStart:n=>h(n,e,`resize-end`,t),onDragEnd:g,onClick:e=>e.stopPropagation(),className:`absolute inset-y-0 right-0 w-2 cursor-ew-resize bg-black/25 hover:bg-black/50 rounded-r`})]},`${e.id}-${s}`)}),d.length>4&&(0,z.jsx)(`div`,{className:`text-xs text-muted-foreground px-2`,children:c(`calendar.moreEvents`,{count:d.length-4})})]})]},o)})})]})}var H=48;function U(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Re(e){return e.getHours()*60+e.getMinutes()}function W(e){return`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`}function ze({mode:e,date:t,events:n,locale:r=`default`,slotMinutes:i=30,onEventClick:a,onEventDrop:o,onTimeRangeSelect:s}){let{t:c}=B(),l=H*i/60,u=1152,d=R.useMemo(()=>{if(e===`day`)return[U(t)];let n=V(t);return Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),U(r)})},[e,t.getFullYear(),t.getMonth(),t.getDate()]),f=R.useMemo(()=>new Date,[]),p=R.useCallback(e=>{if(e.allDay)return!0;let t=new Date(e.start),n=e.end?new Date(e.end):new Date(t),r=t.getHours()===0&&t.getMinutes()===0&&t.getSeconds()===0,i=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0,a=n.getTime()-t.getTime();return!!(r&&i||a>=864e5)},[]),{allDayEvents:m,timedEvents:h}=R.useMemo(()=>{let e=[],t=[];for(let r of n)p(r)?e.push(r):t.push(r);return{allDayEvents:e,timedEvents:t}},[n,p]),g=R.useMemo(()=>{let e=new Map;for(let t of d)e.set(W(t),[]);for(let t of m){let n=U(new Date(t.start)),r=t.end?new Date(t.end):new Date(t.start),i=U(r);r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getTime()>n.getTime()&&(i=new Date(i),i.setDate(i.getDate()-1));for(let r of d){let a=U(r);a<n||a>i||e.get(W(r)).push({event:t,isStart:a.getTime()===n.getTime(),isEnd:a.getTime()===i.getTime()})}}return e},[d,m]),_=R.useMemo(()=>{let e=new Map;for(let t of d)e.set(W(t),[]);for(let t of h){let n=new Date(t.start),r=t.end?new Date(t.end):new Date(n.getTime()+36e5);for(let i of d){let a=U(i),o=new Date(a);if(o.setDate(o.getDate()+1),r<=a||n>=o)continue;let s=n<a?a:n,c=r>o?o:r,l=Re(s),u=c.getTime()===o.getTime()?1440:Re(c);e.get(W(i)).push({event:t,startMin:l,endMin:Math.max(u,l+15),isStart:s.getTime()===n.getTime(),isEnd:c.getTime()===r.getTime()})}}return e},[d,h]),v=R.useMemo(()=>{let e=new Map;for(let[t,n]of _){let r=[...n].sort((e,t)=>e.startMin-t.startMin||e.endMin-t.endMin),i=[],a=[],o=[];for(let e of r){let t=0;for(;i[t]&&i[t].endMin>e.startMin;)t++;i[t]={endMin:e.endMin},a.push({entry:e,col:t})}for(let e=0;e<a.length;e++){let t=a[e],n=t.col;for(let r=0;r<a.length;r++){if(r===e)continue;let i=a[r];i.entry.startMin<t.entry.endMin&&i.entry.endMin>t.entry.startMin&&i.col>n&&(n=i.col)}o.push({...t.entry,col:t.col,cols:n+1})}e.set(t,o)}return e},[_]),b=R.useRef(null),x=R.useRef([]),[S,C]=R.useState(null),w=R.useRef(null);w.current=S;let T=R.useRef(!1),E=R.useCallback((e,t)=>{let n=x.current[t];if(!n)return 0;let r=(e-n.getBoundingClientRect().top+n.scrollTop)/H*60,a=Math.round(r/i)*i;return Math.max(0,Math.min(1440,a))},[i]),D=R.useCallback(e=>{for(let t=0;t<x.current.length;t++){let n=x.current[t];if(!n)continue;let r=n.getBoundingClientRect();if(e>=r.left&&e<=r.right)return t}return-1},[]);R.useEffect(()=>{if(!S)return;let e=e=>{let t=S.kind===`select`||S.kind===`move`?D(e.clientX):S.dayIndex,n=t<0?S.dayIndex??0:t,r=E(e.clientY,n);C(e=>e&&(e.kind===`select`?{...e,dayIndex:n>=0?n:e.dayIndex,headMinutes:r}:e.kind===`move`?{...e,dayIndex:n,minutes:r}:{...e,minutes:r}))},t=e=>{let t=w.current;if(!t){C(null);return}try{if(t.kind===`select`&&s){let e=Math.min(t.anchorMinutes,t.headMinutes),n=Math.max(t.anchorMinutes,t.headMinutes),r=e,a=n===e?Math.min(1440,e+i):n,o=d[t.dayIndex]??d[0],c=new Date(o);c.setHours(0,Math.round(r),0,0);let l=new Date(o);l.setHours(0,Math.round(a),0,0),T.current=!0,s(c,l)}else if(t.kind===`move`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=t.dayIndex<0?0:t.dayIndex,r=t.minutes-t.grabMinuteOffset,a=Math.max(0,Math.min(1440-t.durationMin,Math.round(r/i)*i)),s=d[n]??d[0],c=new Date(s);c.setHours(0,a,0,0);let l=new Date(c.getTime()+t.durationMin*60*1e3);T.current=!0,o(e,c,l)}}else if(t.kind===`resize-top`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.min(t.anchorEndMin-i,Math.max(0,t.minutes)),a=new Date(n);a.setHours(0,r,0,0);let s=new Date(n);s.setHours(0,t.anchorEndMin,0,0),T.current=!0,o(e,a,s)}}else if(t.kind===`resize-bottom`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.max(t.anchorStartMin+i,Math.min(1440,t.minutes)),a=new Date(n);a.setHours(0,t.anchorStartMin,0,0);let s=new Date(n);s.setHours(0,r,0,0),T.current=!0,o(e,a,s)}}}finally{C(null),setTimeout(()=>{T.current=!1},50)}};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[S,d,n,i,o,s,D,E]);let O=R.useMemo(()=>d.map(e=>({weekday:e.toLocaleDateString(r,{weekday:`short`}),day:e.getDate(),month:e.toLocaleDateString(r,{month:`short`}),isToday:Ie(e,f)})),[d,r,f]),ee=R.useMemo(()=>Array.from({length:24},(e,t)=>new Date(2024,0,1,t,0).toLocaleTimeString(r,{hour:`numeric`})),[r]),k=(e,t,n,r)=>{if(!o||e.button!==0)return;e.stopPropagation(),e.preventDefault();let i=E(e.clientY,n);C(r===`body`?{kind:`move`,eventId:t.event.id,grabMinuteOffset:Math.max(0,i-t.startMin),durationMin:t.endMin-t.startMin,dayIndex:n,minutes:i}:r===`top`?{kind:`resize-top`,eventId:t.event.id,anchorEndMin:t.endMin,dayIndex:n,minutes:i}:{kind:`resize-bottom`,eventId:t.event.id,anchorStartMin:t.startMin,dayIndex:n,minutes:i})},A=(e,t)=>{if(!s||e.button!==0)return;e.preventDefault();let n=E(e.clientY,t);C({kind:`select`,dayIndex:t,anchorMinutes:n,headMinutes:n})},te=e=>{if(!S)return null;if(S.kind===`select`&&S.dayIndex===e){let t=Math.min(S.anchorMinutes,S.headMinutes),n=Math.max(S.anchorMinutes,S.headMinutes),i=t/60*H,a=Math.max(l,(n-t)/60*H);return(0,z.jsx)(`div`,{className:`absolute left-1 right-1 rounded bg-primary/30 border border-primary pointer-events-none z-10`,style:{top:i,height:a},"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],t,n,r)})})}if(S.kind===`move`&&S.dayIndex===e){let t=S.minutes-S.grabMinuteOffset,n=Math.max(0,Math.min(1440-S.durationMin,Math.round(t/i)*i)),a=n/60*H,o=S.durationMin/60*H;return(0,z.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],n,n+S.durationMin,r)})})}if((S.kind===`resize-top`||S.kind===`resize-bottom`)&&S.dayIndex===e){let t,n;S.kind===`resize-top`?(t=Math.min(S.anchorEndMin-i,Math.max(0,S.minutes)),n=S.anchorEndMin):(t=S.anchorStartMin,n=Math.max(S.anchorStartMin+i,Math.min(1440,S.minutes)));let a=t/60*H,o=(n-t)/60*H;return(0,z.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,z.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:G(d[e],t,n,r)})})}return null};return(0,z.jsxs)(`div`,{className:`flex flex-col h-full`,ref:b,children:[(0,z.jsxs)(`div`,{className:`flex border-b sticky top-0 bg-background z-20`,children:[(0,z.jsx)(`div`,{className:`w-14 shrink-0 border-r`,"aria-hidden":!0}),O.map((e,t)=>(0,z.jsxs)(`div`,{role:`columnheader`,className:y(`flex-1 p-2 text-center text-sm border-r last:border-r-0`,e.isToday&&`bg-primary/5`),children:[(0,z.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.weekday}),(0,z.jsx)(`div`,{className:y(`font-medium`,e.isToday&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6 mx-auto`),children:e.day})]},t))]}),m.length>0&&(0,z.jsxs)(`div`,{className:`flex border-b bg-muted/20 max-h-[140px] overflow-y-auto`,children:[(0,z.jsx)(`div`,{className:`w-14 shrink-0 border-r flex items-start justify-end pr-1 pt-1 text-[10px] text-muted-foreground sticky left-0 bg-muted/20`,children:c(`calendar.allDay`)}),d.map(e=>{let t=W(e),n=g.get(t)??[];return(0,z.jsx)(`div`,{className:`flex-1 border-r last:border-r-0 min-h-[28px] p-0.5 space-y-0.5`,children:n.map(({event:e,isStart:t,isEnd:n},r)=>{let{className:i,inlineColor:o}=Ne(e.color);return(0,z.jsx)(`div`,{role:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a?.(e)},className:y(`text-[11px] px-2 py-0.5 truncate cursor-pointer hover:opacity-80`,t?`rounded-l`:`rounded-l-none -ml-0.5`,n?`rounded-r`:`rounded-r-none -mr-0.5`,i),style:o?{backgroundColor:o}:void 0,children:t?e.title:`\xA0`},`${e.id}-${r}`)})},t)})]}),(0,z.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,z.jsxs)(`div`,{className:`flex`,style:{height:u},children:[(0,z.jsx)(`div`,{className:`w-14 shrink-0 border-r relative`,children:ee.map((e,t)=>(0,z.jsx)(`div`,{className:`absolute right-1 text-[10px] text-muted-foreground -translate-y-1/2`,style:{top:t*H},children:t===0?``:e},t))}),d.map((e,t)=>{let n=W(e),s=v.get(n)??[];return(0,z.jsxs)(`div`,{ref:e=>{x.current[t]=e},className:`flex-1 border-r last:border-r-0 relative select-none`,style:{height:u},onPointerDown:e=>A(e,t),"aria-label":e.toLocaleDateString(r,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}),children:[Array.from({length:24},(e,t)=>(0,z.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-muted/60 pointer-events-none`,style:{top:t*H}},t)),i<60&&Array.from({length:Math.floor(1440/i)},(e,t)=>{let n=t*i;return n%60==0?null:(0,z.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-muted/30 pointer-events-none`,style:{top:n/60*H}},t)}),s.map(n=>{let i=n.startMin/60*H,s=Math.max(l,(n.endMin-n.startMin)/60*H),u=100/n.cols,d=n.col*u,{className:f,inlineColor:p}=Ne(n.event.color),m=S&&S.eventId===n.event.id;return(0,z.jsxs)(`div`,{role:`button`,tabIndex:0,title:n.event.title,"aria-label":n.event.title,onPointerDown:e=>k(e,n,t,`body`),onClick:e=>{if(T.current){e.stopPropagation();return}e.stopPropagation(),a?.(n.event)},className:y(`absolute rounded text-xs px-2 py-1 overflow-hidden shadow-sm`,o?`cursor-move`:`cursor-pointer`,f,m&&`opacity-40`),style:{top:i,height:s,left:`calc(${d}% + 2px)`,width:`calc(${u}% - 4px)`,...p?{backgroundColor:p}:{}},children:[(0,z.jsx)(`div`,{className:`font-medium truncate`,children:n.event.title}),(0,z.jsx)(`div`,{className:`text-[10px] opacity-80 truncate`,children:G(e,n.startMin,n.endMin,r)}),o&&n.isStart&&(0,z.jsx)(`div`,{onPointerDown:e=>k(e,n,t,`top`),className:`absolute top-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":c(`calendar.a11y.resizeStart`)}),o&&n.isEnd&&(0,z.jsx)(`div`,{onPointerDown:e=>k(e,n,t,`bottom`),className:`absolute bottom-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":c(`calendar.a11y.resizeEnd`)})]},`${n.event.id}-${n.startMin}`)}),te(t)]},n)})]})})]})}function G(e,t,n,r){let i=new Date(e);i.setHours(0,Math.round(t),0,0);let a=new Date(e);a.setHours(0,Math.round(n),0,0);let o=e=>e.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`});return`${o(i)} – ${o(a)}`}function Be(e){return e.calendar?e.calendar:e.startDateField?{startDateField:e.startDateField,endDateField:e.endDateField,titleField:e.titleField,colorField:e.colorField,allDayField:e.allDayField}:null}function Ve(e,t,n){return(typeof t==`string`?t===`date`:typeof n==`string`&&M(n))?N(e):e.toISOString()}var K=({schema:e,dataSource:t,className:n,data:r,loading:o,onEventClick:s,onRowClick:c,onDateClick:l,onNavigate:u,onViewChange:h,onEventDrop:g,locale:_})=>{let O=ve(),{t:k}=xe(),j=be(),re=_!==void 0&&_!=="default"?_:j,M=Array.isArray(r),[N,P]=(0,R.useState)(M?r:[]),[ye,I]=(0,R.useState)(M?o??!1:!0),[Ce,L]=(0,R.useState)(null),[Oe,ke]=(0,R.useState)(null),[Ae,je]=(0,R.useState)(new Date),[Me,Ne]=(0,R.useState)(!1),B=p(),V=e.defaultView,[Fe,Ie]=(0,R.useState)(()=>{let e=V===`day`||!V;return typeof window<`u`&&window.innerWidth<768&&e?`month`:V||`month`});(0,R.useEffect)(()=>{B&&Fe===`day`&&(V===`day`||!V)&&Ie(`month`)},[B]);let[Le,H]=(0,R.useState)(0);(0,R.useEffect)(()=>{if(!M&&t?.onMutation&&e.objectName)return t.onMutation(t=>{t.resource===e.objectName&&H(e=>e+1)})},[t,e.objectName,M]);let U=(0,R.useCallback)(async()=>{H(e=>e+1)},[]),{ref:Re,isRefreshing:W,pullDistance:ze}=Te({onRefresh:U,enabled:!!t&&!!e.objectName}),G=(0,R.useMemo)(()=>ne({objectName:e.objectName,data:e.data,staticData:e.staticData},`array`),[e.data,e.staticData,e.objectName]),K=(0,R.useMemo)(()=>Be(e),[e.calendar,e.startDateField,e.endDateField,e.titleField,e.colorField,e.allDayField]),He=G?.provider===`value`,q=G?.provider,Ue=G?.provider===`value`?G.items:void 0,J=_e(e,G),{ready:We,def:Y}=he(J??``,He?void 0:t),Ge=i();(0,R.useEffect)(()=>{M&&(P(r),ke(null),L(null))},[r,M]),(0,R.useEffect)(()=>{M&&o!==void 0&&I(o)},[o,M]);let Ke=oe(!M&&q===`object`&&J||void 0),qe=ae(),Je=me(e.filter,qe);(0,R.useEffect)(()=>{if(M||q===`object`&&!We)return;let n=!0;return(async()=>{try{if(!n)return;if(I(!0),He&&q===`value`){let t=await new ce({items:Ue??[]}).find(``,{$filter:Je,$orderby:A(e.sort),...ee()}),r=le(t);n&&(P(r.rows),ke(r),L(null),I(!1));return}if(!t||typeof t.find!=`function`)throw Error(`DataSource required for object/api providers`);if(q===`object`){let r=J,i=ge(Y?.fields),a=Ge?.isLoaded?i.filter(e=>Ge.checkField(r,e,`read`)):i,o=await t.find(r,{$filter:Je,$orderby:A(e.sort),...ee(),...a.length>0?{$expand:a}:{}}),s=le(o);n&&(P(s.rows),ke(s),L(null))}else q===`api`&&(console.warn(`API provider not yet implemented for ObjectCalendar`),n&&(P([]),L(null)));n&&I(!1)}catch(e){console.error(`[ObjectCalendar] Error fetching data:`,e),n&&(L(e),I(!1))}})(),()=>{n=!1}},[M,q,J,Ue,t,He,Je,e.sort,Le,We,Y,Ge,Ke]);let{events:Ye,unscheduledRecords:Xe}=(0,R.useMemo)(()=>{if(!K||!N.length)return{events:[],unscheduledRecords:[]};let{startDateField:e,endDateField:t,titleField:n,colorField:r,allDayField:i}=K,a=fe(Y?.fields?.[r??``]),o=e=>{if(n){let t=e[n],r=typeof t==`string`?t.trim():t;if(r)return String(r)}return te(Y,e)},s=[],c=[];return N.forEach((n,l)=>{let u=n[e],d=t?n[t]:null,f=o(n),p=r?n[r]:void 0,m=a(p)??p,h=n.id||n._id||`event-${l}`;if(!u){c.push({id:h,title:f});return}let g=F(u);isNaN(g.getTime())||s.push({id:h,title:f,start:g,end:d?F(d):void 0,color:m,allDay:i?!!n[i]:!d,data:n})}),{events:s,unscheduledRecords:c}},[N,K,Y]);(0,R.useCallback)(()=>{l?.(new Date)},[l]);let X=e.navigation??{mode:`drawer`},Ze=X.mode===`drawer`||X.mode===`modal`||X.mode===`split`||X.mode===`popover`,Z=ie({navigation:X,objectName:J??e.objectName,onRowClick:Ze?void 0:c}),{anchorRef:Qe,anchorCaptureProps:$e}=E(),et=(0,R.useCallback)(async(n,r,i)=>{if(!K)return;let{startDateField:a,endDateField:o}=K,s=n?.id??n?._id;if(!s||!e.objectName||!t?.update)return;let c=Y?.fields,l={[a]:Ve(r,c?.[a]?.type,n?.[a])};o&&i&&(l[o]=Ve(i,c?.[o]?.type,n?.[o]));let u=N;P(e=>e.map(e=>(e?.id??e?._id)===s?{...e,...l}:e));try{await t.update(e.objectName,s,l)}catch(e){P(u),console.error(`[ObjectCalendar] Failed to persist drag-and-drop reschedule:`,e),Se.error(se(e)??(pe(e)?O(`errors.unauthorized`,`You are not authorized to perform this action.`):de(e)??O(`table.saveFailed`,`Save failed`)))}},[K,e.objectName,t,N,O,Y]),[Q,$]=(0,R.useState)(null),tt=O(`calendar.titleRequired`,`Title is required`),nt=(0,R.useCallback)(n=>{K&&e.objectName&&t?.create&&$({start:n,title:``,submitting:!1})},[K,e.objectName,t]),rt=(0,R.useCallback)((n,r)=>{K&&e.objectName&&t?.create&&$({start:n,end:r,title:``,submitting:!1})},[K,e.objectName,t]),it=(0,R.useCallback)(async()=>{if(!Q||!K)return;let n=Q.title.trim();if(!n){$(e=>e&&{...e,error:tt});return}if(!e.objectName||!t?.create)return;$(e=>e&&{...e,submitting:!0,error:void 0});let{startDateField:r,endDateField:i,titleField:a}=K,o=Y?.fields,s={[a||`name`]:n,[r]:Ve(Q.start,o?.[r]?.type,void 0)};i&&(s[i]=Ve(Q.end??Q.start,o?.[i]?.type,void 0));let c=Y?.fields;if(c&&typeof c==`object`){let e=Array.isArray(c)?c.map(e=>[e.name??e.apiName,e]):Object.entries(c);for(let[t,n]of e){if(!t||t in s||!n?.required)continue;if(n.defaultValue!==void 0&&n.defaultValue!==null){s[t]=n.defaultValue;continue}let e=n.type;if(e===`select`||e===`picklist`||e===`status`){let e=(n.options||n.choices||[])[0];e!==void 0&&(s[t]=typeof e==`object`?e.value??e.id:e)}else e===`boolean`||e===`checkbox`?s[t]=!1:(e===`number`||e===`integer`||e===`decimal`||e===`currency`||e===`percent`)&&(s[t]=0)}}try{let n=await t.create(e.objectName,s),r=(n&&(n.record||n.data||n))??null;r&&(r.id!==void 0||r._id!==void 0)&&P(e=>[...e,r]),$(null)}catch(e){let t=e?.message||String(e);$(e=>e&&{...e,submitting:!1,error:t}),console.error(`[ObjectCalendar] Quick-create failed:`,e)}},[Q,K,e.objectName,t,Y,tt]);if(ye)return(0,z.jsx)(`div`,{className:n,children:(0,z.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,z.jsx)(`div`,{className:`text-muted-foreground`,children:O(`calendar.loading`,`Loading calendar…`)})})});if(Ce)return(0,z.jsx)(`div`,{className:n,children:(0,z.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,z.jsx)(`div`,{className:`text-destructive`,children:k(`calendar.loadError`,{message:Ce.message,defaultValue:`Error: {{message}}`})})})});if(!K)return(0,z.jsx)(`div`,{className:n,children:(0,z.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,z.jsxs)(`div`,{className:`text-muted-foreground max-w-md text-center space-y-2`,children:[(0,z.jsx)(`p`,{children:O(`calendar.configRequired`,`Calendar configuration required. Please specify startDateField, the calendar's one required key; the event title resolves without titleField.`)}),(0,z.jsx)(`p`,{className:`text-sm`,children:O(`calendar.configRequiredHint`,`It belongs on the view's calendar block. An interface page has no calendar slot of its own: point its sourceView at a view that declares one.`)})]})})});let at=n=>{if(!Z.isOverlay||!Z.isOpen||!Z.selectedRecord)return null;let r=_e(e,G),i=Z.selectedRecord,a=i.id??i._id;if(!r||a==null)return null;let o=O(`calendar.eventDetails`,`Event Details`),s=K?.titleField?String(i[K.titleField]??o):o;return(0,z.jsx)(T,{...Z,title:s,mainContent:n,popoverAnchorRef:Qe,storageKey:b(r),legacyStorageKey:D(r),width:Z.width??`min(960px, 60vw)`,children:()=>(0,z.jsx)(`div`,{className:`px-6 pt-6 pb-6`,children:(0,z.jsx)(Ee,{record:i,objectName:r,recordId:a,dataSource:t,objectSchema:Y,onClose:Z.close,fullPageHref:De(r,a)??void 0,onFieldSave:async(e,n)=>{t?.update&&(await t.update(r,String(a),{[e]:n}),P(t=>t.map(t=>String(t.id??t._id)===String(a)?{...t,[e]:n}:t)))},onDelete:async()=>{t?.delete&&(await t.delete(r,String(a)),P(e=>e.filter(e=>String(e.id??e._id)!==String(a))))}})})})},ot=(0,z.jsxs)(`div`,{ref:Re,className:n,...$e,children:[ze>0&&(0,z.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:ze},children:W?O(`calendar.refreshing`,`Refreshing…`):O(`calendar.pullToRefresh`,`Pull to refresh`)}),(0,z.jsx)(`div`,{className:`bg-background h-[calc(100vh-120px)] sm:h-[calc(100vh-160px)] md:h-[calc(100vh-200px)] min-h-[400px] sm:min-h-[600px]`,children:(0,z.jsx)(Pe,{events:Ye,currentDate:Ae,view:Fe,locale:_,onEventClick:e=>{Z.handleClick(e.data),Ze||s?.(e.data)},onDateClick:e=>{l?l(e):nt(e)},onNavigate:e=>{je(e),u?.(e)},onViewChange:e=>{Ie(e),h?.(e)},onAddClick:void 0,onEventDrop:(e,t,n)=>{g?g(e.data,t,n):et(e.data,t,n)},onTimeRangeSelect:rt})}),Oe&&(0,z.jsx)(ue,{result:Oe}),Xe.length>0&&(0,z.jsxs)(`div`,{className:`mt-2 border-t pt-2`,"data-calendar-unscheduled":``,children:[(0,z.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground`,"aria-expanded":Me,onClick:()=>Ne(e=>!e),children:[(0,z.jsx)(we,{"aria-hidden":`true`,className:y(`h-4 w-4 transition-transform`,Me&&`rotate-90`)}),k(`calendar.unscheduled`,{count:Xe.length,defaultValue:`Unscheduled ({{count}})`})]}),Me&&(0,z.jsx)(`ul`,{className:`mt-1 space-y-1 pl-6`,"data-calendar-unscheduled-list":``,children:Xe.map(e=>(0,z.jsx)(`li`,{className:`truncate text-sm`,children:e.title},e.id))})]}),(0,z.jsx)(S,{open:!!Q,onOpenChange:e=>{e||$(null)},children:(0,z.jsxs)(a,{className:`sm:max-w-md`,children:[(0,z.jsxs)(f,{children:[(0,z.jsx)(m,{children:O(`calendar.newEvent`,`New event`)}),(0,z.jsx)(x,{children:Q&&(()=>{let e=Q.end&&Q.end.getTime()!==Q.start.getTime(),t=Q.start.toLocaleDateString(re,{year:`numeric`,month:`long`,day:`numeric`});if(e){let e=e=>e.toLocaleTimeString(re,{hour:`numeric`,minute:`2-digit`});return(0,z.jsxs)(z.Fragment,{children:[t,` · `,e(Q.start),` – `,e(Q.end)]})}return(0,z.jsx)(z.Fragment,{children:k(`calendar.onDate`,{date:t,defaultValue:`On {{date}}`})})})()})]}),(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsx)(v,{htmlFor:`quick-create-title`,children:O(`calendar.eventTitle`,`Title`)}),(0,z.jsx)(C,{id:`quick-create-title`,autoFocus:!0,value:Q?.title??``,onChange:e=>$(t=>t&&{...t,title:e.target.value,error:void 0}),onKeyDown:e=>{e.key===`Enter`&&!Q?.submitting&&(e.preventDefault(),it())},placeholder:O(`calendar.eventTitlePlaceholder`,`What's this event about?`),disabled:Q?.submitting}),Q?.error&&(0,z.jsx)(`p`,{className:`text-sm text-destructive`,children:Q.error})]}),(0,z.jsxs)(d,{children:[(0,z.jsx)(w,{variant:`outline`,onClick:()=>$(null),disabled:Q?.submitting,children:O(`common.cancel`,`Cancel`)}),(0,z.jsx)(w,{onClick:()=>void it(),disabled:Q?.submitting||!Q?.title.trim(),children:Q?.submitting?O(`calendar.creating`,`Creating…`):O(`common.create`,`Create`)})]})]})})]});if(Z.isOverlay&&Z.mode===`split`&&Z.isOpen&&Z.selectedRecord){let e=at(ot);if(e)return(0,z.jsx)(z.Fragment,{children:e})}return(0,z.jsxs)(z.Fragment,{children:[ot,at()]})},He=[`onEventClick`,`onDateClick`,`onViewChange`,`onNavigate`,`onAddClick`,`onEventDrop`,`onTimeRangeSelect`];function q(e){let t={};for(let n of He){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}var Ue=[`month`,`week`,`day`];function J(e){return Ue.includes(e)?e:void 0}function We(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function Y(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function Ge(e){if(e instanceof Date)return e;if(typeof e!=`string`)return;let t=F(e);return Number.isNaN(t.getTime())?void 0:t}function Ke(e){return e===!0}j.register(`calendar-view`,({schema:e,className:t,onAction:n,events:r,currentDate:i,view:a,allowCreate:o,...s})=>{let c=R.useMemo(()=>!e.data||!Array.isArray(e.data)?[]:e.data.map((t,n)=>{let r=e.titleField||`title`,i=e.startDateField||`start`,a=e.endDateField||`end`,o=e.colorField||`color`,s=e.allDayField||`allDay`;return{id:t.id||t._id||n,title:t[r]||`Untitled Event`,start:F(t[i]),end:t[a]?F(t[a]):void 0,allDay:t[s],color:t[o],data:t}}),[e.data,e.titleField,e.startDateField,e.endDateField,e.colorField,e.allDayField]),l=R.useMemo(()=>Ge(i),[i]),u=J(a),d=Ke(o),f=q(s),p=We(s.locale),m=Y(s.slotMinutes),h=typeof n==`function`?n:void 0,g=e=>{h?.({type:`event-click`,payload:e})},_=()=>{h?.({type:`create`,payload:{}})};return(0,z.jsx)(Pe,{className:t,events:c,currentDate:l,view:u,locale:p,slotMinutes:m,...f,onEventClick:f.onEventClick??g,onAddClick:f.onAddClick??(d?_:void 0)})},{namespace:`plugin-calendar`,label:`Calendar View`,inputs:[{name:`data`,type:`array`,description:`Array of record objects to display as events`},{name:`titleField`,type:`string`,description:`Field name to use for event title`},{name:`startDateField`,type:`string`,description:`Field name for event start date`},{name:`endDateField`,type:`string`,description:`Field name for event end date (optional)`},{name:`allDayField`,type:`string`,description:`Field name for all-day flag`},{name:`colorField`,type:`string`,description:`Field name for event color`},{name:`view`,type:`enum`,enum:[`month`,`week`,`day`],description:`Calendar view mode (month, week, or day)`},{name:`currentDate`,type:`string`,description:`ISO date string for initial calendar date`},{name:`allowCreate`,type:`boolean`,description:`Allow creating events by clicking on dates`},{name:`className`,type:`string`}],defaultProps:{view:`month`,titleField:`title`,startDateField:`start`,endDateField:`end`,allDayField:`allDay`,colorField:`color`,allowCreate:!1,data:[{id:1,title:`Team Meeting`,start:new Date(new Date().setHours(10,0,0,0)).toISOString(),end:new Date(new Date().setHours(11,0,0,0)).toISOString(),color:`#3b82f6`,allDay:!1},{id:2,title:`Project Deadline`,start:new Date(new Date().setDate(new Date().getDate()+3)).toISOString(),color:`#ef4444`,allDay:!0},{id:3,title:`Conference`,start:new Date(new Date().setDate(new Date().getDate()+7)).toISOString(),end:new Date(new Date().setDate(new Date().getDate()+9)).toISOString(),color:`#10b981`,allDay:!0}],className:`h-[600px] border rounded-lg`}});var qe=t({CalendarView:()=>Pe,ObjectCalendar:()=>K,ObjectCalendarRenderer:()=>$e}),Je={filter:!0,sort:!0},Ye=[`onEventClick`,`onRowClick`,`onDateClick`,`onEdit`,`onDelete`,`onNavigate`,`onViewChange`,`onEventDrop`];function Xe(e){let t={};for(let n of Ye){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}function X(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function Ze(e){return Array.isArray(e)?e:void 0}function Z(e){return typeof e==`boolean`?e:void 0}function Qe(e){return e&&typeof e.find==`function`?e:void 0}var $e=re(({schema:e,className:t,...n})=>{let{dataSource:r}=k()||{},i=r??void 0,a=Xe(n),o=X(n.locale),s=Ze(n.data),c=Z(n.loading),l=Qe(n.dataSource);return(0,z.jsx)(P,{schema:e,mapping:Je,dataSource:i,testId:`object-calendar`,errorTitle:`This calendar’s data source could not be resolved`,children:e=>(0,z.jsx)(K,{schema:e,dataSource:l??i,className:t,data:s,loading:c,locale:o,...a})})}),et=[{name:`objectName`,type:`string`,description:"ObjectQL object name. The record source is one of `data`, `staticData` and `objectName`; the `object-calendar` schema refuses a block that declares none of them."},{name:`calendar`,type:`object`,description:`startDateField, endDateField, titleField, colorField`},{name:`filter`,type:`array`,description:"Filter criteria in JSON-rules form, narrowing the records the calendar fetches. Lowered to `$filter` on the query."},{name:`sort`,type:`array`,description:"Sort order in `[{ field, order }]` form, ordering the records the calendar fetches. Lowered to `$orderby` on the query."},{name:`defaultView`,type:`enum`,enum:[`month`,`week`,`day`],description:"The grid the calendar opens on. A narrow viewport downgrades `day` to `month`; the author’s choice is otherwise honoured on first render."},{name:`locale`,type:`string`,description:"BCP-47 tag used to format the dates and times this calendar renders. A tag `Intl` refuses is dropped — the same answer as an absent key — rather than passed through to throw out of render."},{name:`data`,type:`array`,description:"Pre-fetched records drawn as-is, IN PLACE OF the calendar’s own query — `objectName`, `filter` and `sort` are then unused and `staticData` is never reached. Each member is a RECORD, read for the fields the `calendar` config names plus its `id`; a member with no value in the start field is counted in the unscheduled area rather than dropped."},{name:`staticData`,type:`array`,description:"Inline records, read SECOND on the record-source ladder: an authored `data` wins and this key is then never reached, while `objectName` is read AFTER it, so a calendar carrying both draws these rows and issues no query. Members are records read exactly as `data`’s are."},{name:`loading`,type:`boolean`,description:"External loading state, honoured ONLY alongside an array `data`: it then replaces the calendar with its loading placeholder. On a calendar fed by `staticData` or by `objectName` it is dropped, because that calendar owns its own loading state."}];j.register(`object-calendar`,$e,{namespace:`plugin-calendar`,label:`Object Calendar`,category:`view`,inputs:[...et]}),j.register(`calendar`,$e,{namespace:`view`,label:`Calendar View`,category:`view`,inputs:[...et]});export{qe as t};
|