@objectstack/console 17.5.0 → 17.6.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 +378 -0
- package/dist/.objectstack-injection.json +2 -2
- package/dist/.objectui-sha +1 -1
- package/dist/assets/{ActionResultDialog-CLdIyOW6.js → ActionResultDialog-4kHDGnT3.js} +3 -3
- package/dist/assets/{AiPendingActionsPage-OKYz66yR.js → AiPendingActionsPage-JjOddm0h.js} +1 -1
- package/dist/assets/{ApiConsolePage-CcrKovu8.js → ApiConsolePage-BgS26lbp.js} +1 -1
- package/dist/assets/AppDocsIndex-BDoH5ECM.js +1 -0
- package/dist/assets/{AppManagementPage-D_xz8cTZ.js → AppManagementPage-CCgKmNTj.js} +1 -1
- package/dist/assets/ApprovalsInboxPage-C6S1vk0X.js +1 -0
- package/dist/assets/AuditLogPage-v2dKXMuk.js +1 -0
- package/dist/assets/BookPage-DwFMcTSN.js +1 -0
- package/dist/assets/{ComponentNavView-BxsixSU9.js → ComponentNavView-B5g9c6fx.js} +1 -1
- package/dist/assets/{CreateViewDialog-xyKlpLEW.js → CreateViewDialog-D3l-tYHM.js} +1 -1
- package/dist/assets/DashboardView-BOcovpPd.js +1 -0
- package/dist/assets/DocPage-B6AkH5WI.js +1 -0
- package/dist/assets/{DocsIndex-B2zw_HAp.js → DocsIndex-DwW2QsYY.js} +1 -1
- package/dist/assets/{DocsLayout-DezZ8x7_.js → DocsLayout-D63StSgd.js} +1 -1
- package/dist/assets/DocsSlug-CP9fcabi.js +1 -0
- package/dist/assets/ExpressionProvider-CrL6jhVq.js +1 -0
- package/dist/assets/{FlowRunsPage-CvY3nJMF.js → FlowRunsPage-CxdaiUyk.js} +1 -1
- package/dist/assets/{IntegrationsPage-2leVkVDH.js → IntegrationsPage-DvG0x0Nb.js} +2 -2
- package/dist/assets/{InterfaceListPage-BdECC_i3.js → InterfaceListPage-C4wPYohR.js} +1 -1
- package/dist/assets/{MarketplaceInstalledPage-EPPHSitW.js → MarketplaceInstalledPage-B7KETQG2.js} +1 -1
- package/dist/assets/MarketplacePackagePage-CfgKDpNH.js +4 -0
- package/dist/assets/{MarketplacePage-BnQKykgv.js → MarketplacePage-DNEyU5AE.js} +1 -1
- package/dist/assets/{MetadataInspector-BWxLkr0O.js → MetadataInspector-EP0I3-Kq.js} +1 -1
- package/dist/assets/{ObjectDataPage-BIzp65Mo.js → ObjectDataPage-CykEm9MD.js} +1 -1
- package/dist/assets/PageView-C6u86tni.js +1 -0
- package/dist/assets/{ProfilePage-D2qGgxPK.js → ProfilePage-C3SjXMzi.js} +1 -1
- package/dist/assets/{PublicFormsPage-DlE6tck_.js → PublicFormsPage-D3uCTR-8.js} +1 -1
- package/dist/assets/RecordDetailView-DgR_zhP4.js +3 -0
- package/dist/assets/RecordFormPage-kiJI-ieF.js +1 -0
- package/dist/assets/ReportDefaultInspector-BIinF0EQ.js +1 -0
- package/dist/assets/{ReportView-GIdKJdOt.js → ReportView-BREO-ADE.js} +1 -1
- package/dist/assets/{RuntimeDraftBar-BbMdi3Kp.js → RuntimeDraftBar-BCWfd2yS.js} +1 -1
- package/dist/assets/SchemaForm-C4uMMZ13.js +3 -0
- package/dist/assets/SearchResultsPage-C6Hw_Lpn.js +1 -0
- package/dist/assets/{SettingsHub-BGKIj-Zq.js → SettingsHub-DP1mrzEN.js} +1 -1
- package/dist/assets/SettingsView-u7mc6pcc.js +1 -0
- package/dist/assets/{SkeletonDetail-C8fMI-Mu.js → SkeletonDetail-DIwlbHTr.js} +1 -1
- package/dist/assets/{af-BfSmLD34.js → af-DPUgkQl0.js} +1 -1
- package/dist/assets/ai-DPBykF2N.js +3 -0
- package/dist/assets/{app-shell-eager-leaves-CDVclng4.js → app-shell-eager-leaves-Cf2bM6uT.js} +1 -1
- package/dist/assets/{ar-B9ttrM75.js → ar-B-6GTIRU.js} +1 -1
- package/dist/assets/{ar-DZ-C1rn-cyl.js → ar-DZ-wEl298ti.js} +1 -1
- package/dist/assets/{ar-EG-BaDxKP_o.js → ar-EG-YBT90_S0.js} +1 -1
- package/dist/assets/{ar-MA-DbxNEcmd.js → ar-MA-3uT-EYh6.js} +1 -1
- package/dist/assets/{ar-SA-DeC5LXcX.js → ar-SA-SiQsjhhc.js} +1 -1
- package/dist/assets/{ar-TN-C9KpTFJz.js → ar-TN-CfzXjKzS.js} +1 -1
- package/dist/assets/{az-cMerDwRO.js → az-BqAfcNza.js} +1 -1
- package/dist/assets/{be-ZTSbszQh.js → be-CQgWXa9_.js} +1 -1
- package/dist/assets/{be-tarask-BXZEUrgX.js → be-tarask-BmNg0Sir.js} +1 -1
- package/dist/assets/{bg-BDogpmn5.js → bg-D3evgRuS.js} +1 -1
- package/dist/assets/{bn-Cz04uxmh.js → bn-uItkARwm.js} +1 -1
- package/dist/assets/{bs-CpFnCl-j.js → bs-DueReOpO.js} +1 -1
- package/dist/assets/{ca-CHC4M52Z.js → ca-Cr3AHktR.js} +1 -1
- package/dist/assets/{ckb-Dxw-RNm8.js → ckb-CTi5BET7.js} +1 -1
- package/dist/assets/contracts-DieHW666.js +1 -0
- package/dist/assets/{createDerive-DvA_JGNq.js → createDerive-CjN1i5vn.js} +1 -1
- package/dist/assets/{cs-DsFaJ5Z7.js → cs-43mFX9jr.js} +1 -1
- package/dist/assets/{cy-FH4JFDTs.js → cy-BBSkg3F8.js} +1 -1
- package/dist/assets/{da-D1pVjaAq.js → da-C5oA5qcs.js} +1 -1
- package/dist/assets/data-adapter-Cymvlczj.js +1 -0
- package/dist/assets/{de-AT-DUMQCisj.js → de-AT-CApxwJzu.js} +1 -1
- package/dist/assets/{de-DKrxSvnP.js → de-CPtbLlAf.js} +1 -1
- package/dist/assets/default-inspector-registry-Bs6GBn00.js +1 -0
- package/dist/assets/dist-BF-ssUpn.js +14 -0
- package/dist/assets/{el-l3-bHySV.js → el-Dto2xBQU.js} +1 -1
- package/dist/assets/en-AU-FVwCiDJO.js +1 -0
- package/dist/assets/{en-CA-DGH5NF0a.js → en-CA-DKuJPN1U.js} +1 -1
- package/dist/assets/en-GB-DQ_y5VbJ.js +1 -0
- package/dist/assets/en-IE-DaXOhsZW.js +1 -0
- package/dist/assets/en-IN-CnRZnAom.js +1 -0
- package/dist/assets/en-NZ-CBZLEToK.js +1 -0
- package/dist/assets/en-ZA-BE59v0wZ.js +1 -0
- package/dist/assets/{eo-CL6CXHZx.js → eo-BL8JXIWd.js} +1 -1
- package/dist/assets/{es-BIJ0rksI.js → es-BnoaNxsu.js} +1 -1
- package/dist/assets/{et-BGgMzjm1.js → et-tPYLNenO.js} +1 -1
- package/dist/assets/{eu-CqvAoRrX.js → eu-CUBG6bT0.js} +1 -1
- package/dist/assets/{fa-IR-DNz3oA1-.js → fa-IR-Rr2d9xSs.js} +1 -1
- package/dist/assets/{fi-DNSfKWuW.js → fi-B0NVIZsV.js} +1 -1
- package/dist/assets/{formatLong-CHb9WA3O.js → formatLong-1-gt9bpo.js} +1 -1
- package/dist/assets/{fr-DYRJCirJ.js → fr-BbhHek8e.js} +1 -1
- package/dist/assets/{fr-CA-CotiswPx.js → fr-CA-CBDvLXFg.js} +1 -1
- package/dist/assets/{fr-CH-CpiEYWpc.js → fr-CH-WPNmwPn7.js} +1 -1
- package/dist/assets/framework-DFR4HNtj.js +35 -0
- package/dist/assets/{fy-B69yM3FE.js → fy-DvOBbvEF.js} +1 -1
- package/dist/assets/{gd-BAy8AsX6.js → gd-BQPiTPX5.js} +1 -1
- package/dist/assets/getIcon-Cfwf-Egt.js +1 -0
- package/dist/assets/{gl-soLn_weL.js → gl-BJCXK8uO.js} +1 -1
- package/dist/assets/{gu-B19Yo9yC.js → gu-CctPRz3V.js} +1 -1
- package/dist/assets/{he-DYTPo33p.js → he-CVFMk6p2.js} +1 -1
- package/dist/assets/{hi-D2dIK7Oy.js → hi-Ba30-RwS.js} +1 -1
- package/dist/assets/{highlighted-body-OFNGDK62-CExufvVt.js → highlighted-body-OFNGDK62-BQ57IrBV.js} +1 -1
- package/dist/assets/{hr-BV-VOPMu.js → hr-BZUqTbZs.js} +1 -1
- package/dist/assets/{ht-C7MM4qkS.js → ht-BLe05tPx.js} +1 -1
- package/dist/assets/{hu-Rha1m2Ym.js → hu-2CQ_Mkww.js} +1 -1
- package/dist/assets/{hy-CiTNgbdV.js → hy-CclcPG4H.js} +1 -1
- package/dist/assets/i18n-BnUsCaSC.js +17 -0
- package/dist/assets/i18n-locale-ar-92O_xtDZ.js +4 -0
- package/dist/assets/i18n-locale-de-T5ic3yH9.js +4 -0
- package/dist/assets/i18n-locale-en-rxr7WJYl.js +4 -0
- package/dist/assets/i18n-locale-es-D_WOifJ_.js +4 -0
- package/dist/assets/i18n-locale-fr-3cvyjMkp.js +4 -0
- package/dist/assets/i18n-locale-ja-DXlIkB8I.js +4 -0
- package/dist/assets/i18n-locale-ko-DngRpS45.js +4 -0
- package/dist/assets/i18n-locale-pt-BkPaFCqZ.js +4 -0
- package/dist/assets/i18n-locale-ru-E5wLh-y6.js +4 -0
- package/dist/assets/i18n-locale-zh-BL4_Yand.js +4 -0
- package/dist/assets/{i18n-runtime-CTgAQF4N.js → i18n-runtime-97_bDVjP.js} +1 -1
- package/dist/assets/{id-Cijsfjt-.js → id-6JLB8s-f.js} +1 -1
- package/dist/assets/index-Cadlh4t_.css +2 -0
- package/dist/assets/index-D98sa5GF.js +20 -0
- package/dist/assets/{infrastructure-BHSync5f.js → infrastructure-Cc34lEqb.js} +2 -2
- package/dist/assets/integration-CeAF4JFT.js +1 -0
- package/dist/assets/{is-xS1WTyeC.js → is-to0CWzm1.js} +1 -1
- package/dist/assets/isSameWeek-DBXaA1Gd.js +1 -0
- package/dist/assets/{it-CH-l516ZNXj.js → it-CH-DhdfjP5Z.js} +1 -1
- package/dist/assets/{it-C2i_c9sd.js → it-ea0B8Ujp.js} +1 -1
- package/dist/assets/{ja-D9_ewLny.js → ja-B1bzkgDW.js} +1 -1
- package/dist/assets/{ja-Hira-D_6ExgHw.js → ja-Hira-CMrY5hXO.js} +1 -1
- package/dist/assets/{ka-BYHGyees.js → ka-DKSXLnXP.js} +1 -1
- package/dist/assets/{kk-CbTFtuqb.js → kk-DHwMv8Dn.js} +1 -1
- package/dist/assets/{km-Dr2gwhIn.js → km-tpLG1xNr.js} +1 -1
- package/dist/assets/{kn-CprH8JD7.js → kn-MLreVnHA.js} +1 -1
- package/dist/assets/{ko-CsFS2u5i.js → ko-CI0DBazn.js} +1 -1
- package/dist/assets/{lb-CbFKN7Ob.js → lb-CmL572Xe.js} +1 -1
- package/dist/assets/{lt-Bq0xkLp0.js → lt-DRtUOLdw.js} +1 -1
- package/dist/assets/{lv-Cj6vg6Qo.js → lv-COSHgkOP.js} +1 -1
- package/dist/assets/{match-C_jFGO9e.js → match-B-ergJQb.js} +1 -1
- package/dist/assets/{match-CiPp9BME.js → match-BQoOW8Cj.js} +1 -1
- package/dist/assets/{match-Co4ivumx.js → match-dfBS0YSQ.js} +1 -1
- package/dist/assets/mermaid-GHXKKRXX-Bb17TtNP.js +1 -0
- package/dist/assets/metadata-admin-CABUxbJl.js +9 -0
- package/dist/assets/{mk-MXFM99YL.js → mk-B0IH_YL_.js} +1 -1
- package/dist/assets/{mn-D5Q9B6Jt.js → mn-P-QdQ2n3.js} +1 -1
- package/dist/assets/{ms-CCzPRldx.js → ms-CtyEOINy.js} +1 -1
- package/dist/assets/{mt-mjJpN6xW.js → mt-DfuZ2HRm.js} +1 -1
- package/dist/assets/{nb-BIlNqdEb.js → nb-2Hp-5Tnt.js} +1 -1
- package/dist/assets/{nl-BE-FwXjQsmV.js → nl-BE-mmxbfNoR.js} +1 -1
- package/dist/assets/{nl-D2uBtIxG.js → nl-CZ_nLREz.js} +1 -1
- package/dist/assets/{nn-B0loJ7SV.js → nn-ccWhYsNa.js} +1 -1
- package/dist/assets/{oc-U7-yH1sO.js → oc-z504BFRV.js} +1 -1
- package/dist/assets/{pl-mTy0JYgi.js → pl-DeQ7ASt-.js} +1 -1
- package/dist/assets/plugin-calendar-Cn5HaZU8.js +1 -0
- package/dist/assets/plugin-charts-B6RcFWbo.js +7 -0
- package/dist/assets/plugin-chatbot-Ck47EhDX.js +122 -0
- package/dist/assets/plugin-dashboard-DjEx8e5Y.js +6 -0
- package/dist/assets/plugin-form-CLDvL0up.js +1 -0
- package/dist/assets/plugin-gantt-CrVrxVdi.js +63 -0
- package/dist/assets/plugin-grid-D2rmQEW_.js +11 -0
- package/dist/assets/plugin-kanban-BUNHFfIC.js +1 -0
- package/dist/assets/plugin-map-y-7RQQC5.js +1 -0
- package/dist/assets/{plugin-markdown-D1nTQc1T.js → plugin-markdown-BOkHcir_.js} +1 -1
- package/dist/assets/plugin-report-mT3jpna0.js +59 -0
- package/dist/assets/plugin-timeline-B1EF83D3.js +1 -0
- package/dist/assets/plugin-tree-MTHUt3_S.js +1 -0
- package/dist/assets/plugin-view-DHJI-ahf.js +1 -0
- package/dist/assets/plugins-views-CfkgqD30.js +3 -0
- package/dist/assets/{pt-BR-2KtO5Js1.js → pt-BR-D80_lPYF.js} +1 -1
- package/dist/assets/{pt-Bet5OOQf.js → pt-CJJ1RmXd.js} +1 -1
- package/dist/assets/{ro-37U6sgzi.js → ro-EuFb2TCj.js} +1 -1
- package/dist/assets/{ru-CyuAY-5E.js → ru-CMaVQScp.js} +1 -1
- package/dist/assets/{runtime-metadata-persistence-afAW-MeD.js → runtime-metadata-persistence-ClOTznqa.js} +1 -1
- package/dist/assets/{se-DeJabuC6.js → se-DsfdKLdF.js} +1 -1
- package/dist/assets/{sk-DWEpjfkR.js → sk-BNV9omI8.js} +1 -1
- package/dist/assets/{sl-4oSvNhIR.js → sl-DJS_nINU.js} +1 -1
- package/dist/assets/{sq-BjkBCaXW.js → sq-HEgjcbHe.js} +1 -1
- package/dist/assets/{sr-Dxm1DsRS.js → sr-CO0CFu4X.js} +1 -1
- package/dist/assets/{sr-Latn-Dawg6oP2.js → sr-Latn-eE1Idzey.js} +1 -1
- package/dist/assets/{src-C8NYjdVm.js → src-BU7L2v4J.js} +1 -1
- package/dist/assets/src-BUtIBFDA.js +1 -0
- package/dist/assets/src-C0eXlKtx.js +16 -0
- package/dist/assets/{studioEntry-nXQP3iL0.js → studioEntry-WeMfaSGn.js} +1 -1
- package/dist/assets/{submitRedirect-jK-cEIbP.js → submitRedirect-C2lfZSHt.js} +1 -1
- package/dist/assets/{sv-CROOGJGz.js → sv-5uTzgQT3.js} +1 -1
- package/dist/assets/{ta-BZnTmFI_.js → ta-BzgdkBZG.js} +1 -1
- package/dist/assets/{te-BN0v0x5t.js → te-Ct_pl7ZJ.js} +1 -1
- package/dist/assets/{th-CBjKhp_U.js → th-DouAlk0-.js} +1 -1
- package/dist/assets/{tr-x0Ne4N4H.js → tr-3XNBsI40.js} +1 -1
- package/dist/assets/types-zod-DXpXw10W.js +1 -0
- package/dist/assets/{ug-sgzNhsKo.js → ug-B9n24h9G.js} +1 -1
- package/dist/assets/ui-components-D6cEVg0T.js +37 -0
- package/dist/assets/ui-layout-DgVDuPEM.js +1 -0
- package/dist/assets/{uk-o_DQ5VHJ.js → uk-DCAenByf.js} +1 -1
- package/dist/assets/use-book-data-CwRldFxP.js +1 -0
- package/dist/assets/{useActionModal-CSvbHkQ7.js → useActionModal-Blp4rhOk.js} +1 -1
- package/dist/assets/useCanAuthorMetadata-BxCMgFRf.js +1 -0
- package/dist/assets/useNavSelDeepLink-67Y4qCNO.js +1 -0
- package/dist/assets/useNavTargetLabel-BOJncjIb.js +1 -0
- package/dist/assets/{useOpenRecordList-B5-qaFUx.js → useOpenRecordList-BrwJFojQ.js} +1 -1
- package/dist/assets/{usePackageL10n-CMx66am-.js → usePackageL10n-Ci9uVkRZ.js} +1 -1
- package/dist/assets/{useSettingsLabel-Kkr2q0Oo.js → useSettingsLabel-CeMnMWsh.js} +1 -1
- package/dist/assets/{uz-Cyrl-DbtkQtz_.js → uz-Cyrl-JSeHEqu-.js} +1 -1
- package/dist/assets/{uz-Be41d4jl.js → uz-DT3s9bZS.js} +1 -1
- package/dist/assets/vendor-objectstack-DFqu45yM.js +138 -0
- package/dist/assets/{vi-84mZmklk.js → vi-D2p-h6bY.js} +1 -1
- package/dist/assets/{zh-CN-DD1reegJ.js → zh-CN-DHOKqAit.js} +1 -1
- package/dist/assets/{zh-HK-B05u30WI.js → zh-HK-D4iIPY7I.js} +1 -1
- package/dist/assets/{zh-TW-Bb-WimPD.js → zh-TW-gORQ_tZh.js} +1 -1
- package/dist/chunk-membership.json +100 -90
- package/dist/eager-closure.json +110 -110
- package/dist/index.html +4 -4
- package/dist/sdui.manifest.json +520 -60
- package/package.json +1 -1
- package/dist/assets/AppDocsIndex-F4zDq2zz.js +0 -1
- package/dist/assets/ApprovalsInboxPage-DrEUmaDb.js +0 -1
- package/dist/assets/AuditLogPage-CoghqsZb.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/MarketplacePackagePage-C7NOu2Ir.js +0 -4
- package/dist/assets/PageView-CVLgCRSF.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/SchemaForm-C8X1ve4p.js +0 -3
- package/dist/assets/SearchResultsPage-Jwhqsdyo.js +0 -1
- package/dist/assets/SettingsView-D8SMKdrc.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/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/getIcon-BEVyC4y3.js +0 -1
- 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/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/vendor-objectstack-XuWC71M9.js +0 -266
- package/dist/assets/vendor-zod-CHLW1iCr.js +0 -64
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var e={impersonation:{banner:{message:`You are impersonating {{user}} — every action is recorded as them.`,startedBy:`Started by administrator {{admin}}.`,stop:`Stop impersonating`,stopping:`Stopping…`,stopFailed:`Could not stop impersonating: {{reason}}`,notRestored:`The server accepted the request but did not restore your administrator session — you are still impersonating {{user}}. Sign out and sign in again to end it.`}},capability:{group:{platform:`Platform`,org:`Organization`,other:`Other`},label:{manage_users:`Manage Users`,manage_org_users:`Manage Organization Users`,manage_metadata:`Manage Metadata`,manage_org_presentation:`Manage Organization Presentation`,manage_platform_settings:`Manage Platform Settings`,setup_access:`Setup Access`,setup_write:`Write Settings`,studio_access:`Studio Access`,manage_sharing:`Manage Sharing`}},perm:{facet:{none:`None`,more:`+{{count}} more`,objects:`{{count}} objects`,objects_one:`{{count}} object`,fields:`{{count}} field rules`,fields_one:`{{count}} field rule`,rls:`{{count}} RLS policies`,rls_one:`{{count}} RLS policy`,tabs:`{{count}} tab rules`,tabs_one:`{{count}} tab rule`,adminScope:`Delegated admin configured`,designInStudio:`Design in Studio →`,designInStudioHint:`Design in Studio`}},lookup:{recentlyUsed:`Recently used`,allResults:`All results`,loading:`Loading…`,noOptions:`No options found`,noRecords:`No records found`,createNew:`Create new`,createNamed:`Create new "{{name}}"`,showingResults:`Showing {{shown}} of {{total}} results`,showAllResults:`Show all results ({{count}})`,selectedBadge:`Selected`,browseAll:`Browse all records`,remove:`Remove {{label}}`,selectFirst:`Select {{fields}} first`,selectRecord:`Select record`,recordCount:`{{count}} records`,recordCountOne:`1 record`,pageOf:`Page {{current}} of {{total}}`,filters:`Filters`,clear:`Clear`,yes:`Yes`,filterPlaceholder:`Filter {{label}}`,prevPage:`Previous page`,nextPage:`Next page`,jumpToPage:`Jump to page`,retry:`Retry`},common:{loading:`Loading…`,save:`Save`,discard:`Discard`,cancel:`Cancel`,delete:`Delete`,edit:`Edit`,create:`Create`,filter:`Filter`,reset:`Reset`,confirm:`Confirm`,close:`Close`,back:`Back`,next:`Next`,previous:`Previous`,submit:`Submit`,refresh:`Refresh`,export:`Export`,import:`Import`,yes:`Yes`,no:`No`,ok:`OK`,actions:`Actions`,more:`More`,selectAll:`Select All`,clearAll:`Clear All`,addToFavorites:`Add to favorites`,removeFromFavorites:`Remove from favorites`,noData:`No data`,noResults:`No results found`,required:`Required`,optional:`Optional`,selectOption:`Select an option`,select:`Select…`,openChat:`Open chat`,closeChat:`Close chat`,closePanel:`Close panel`,resizeDrawer:`Resize drawer`,itemCount:`{{count}} items`,itemCountOne:`{{count}} item`,toggleSidebar:`Toggle sidebar`,package:`Package`,done:`Done`,editInStudio:`Edit in studio`,record:`Record`,retry:`Retry`,printDialogHint:`Opens your browser’s print dialog (not a PDF export)`,rowCeilingNote:`Showing the first {{shown}} of {{total}} records. Narrow the filter.`,rowCeilingNoteUnknownTotal:`Showing the first {{shown}} records. Narrow the filter.`},actions:{decisionOutput:{help:`Handed to the flow as a decision output.`,helpMultiValue:`Handed to the flow as a decision output. Comma-separate multiple values.`},resultDialog:{defaultTitle:`Save this value now`,acknowledge:`I have saved this`,copyAll:`Copy all`},notAvailableHere:`"{{action}}" is not available on the current page.`,completedSuccessfully:`Action completed successfully`,failed:`Action failed`,parallelFailed:`One or more parallel actions failed`,undo:`Undo`,undone:`Change undone`,undoneOperation:`Undo: {{description}}`,redoneOperation:`Redo: {{description}}`},validation:{required:`{{field}} is required`,minLength:`{{field}} must be at least {{min}} characters`,maxLength:`{{field}} must be at most {{max}} characters`,min:`{{field}} must be at least {{min}}`,max:`{{field}} must be at most {{max}}`,email:`Please enter a valid email address`,url:`Please enter a valid URL`,pattern:`{{field}} format is invalid`,formInvalid:`Please check the highlighted fields: {{fields}}`,formInvalidJoiner:`, `,unique:`{{field}} must be unique`,type:`{{field}} must be a valid {{type}}`},form:{noPermissionToSave:`You don't have permission to save this record.`,noPermissionToCreate:`You don't have permission to create {{object}} records. The fields are read-only.`,noPermissionToEdit:`You don't have permission to edit {{object}} records. The fields are read-only.`,submitFailed:`Could not save. Please try again.`,uploadInFlight:`Wait for the upload to finish before saving.`,clearedOnHide:`Cleared — no longer applicable given the current values: {{fields}}`,visibleWhenFaulted:`Can't submit: the visibleWhen rule of {{fields}} could not be evaluated. The rule must be fixed before this form can be submitted.`,removeItem:`Remove item`,fieldRequired:`This field is required`,invalidFormat:`Invalid format`,saveSuccess:`Saved successfully`,saveError:`Failed to save`,unsavedChanges:`You have unsaved changes. Are you sure you want to leave?`,discardTitle:`Discard changes?`,discardMessage:`You have unsaved changes. If you close this form now, your edits will be lost.`,dialogDescriptionFallback:`Complete the form fields, then submit or cancel.`,deniedDescription:`You do not have edit access to this field.`,masterDetail:{loadingColumns:`Loading columns…`,subtotal:`Subtotal`,tax:`Tax ({{rate}}%)`,total:`Total`,lineItem:`Line item`,rowTitle:`{{title}} — row {{row}}`,applyRow:`Apply`,editorDescription:`Enter the record and its line items, then save.`,noChildObject:`This collection has no child object configured: set {{property}} to the object whose rows it lists.`,schemaUnavailable:`Could not load the schema of {{object}}, so this collection has no columns to show. Check that the object exists and is readable, then reload.`,noRelationshipField:`Could not work out how {{object}} links to {{parent}}: no lookup or master_detail field on it references the parent. Set {{property}} on this collection to the field that holds the parent record.`},lineItems:{title:`Line Items`,saveRecordFirst:`Save the record first to add line items.`,notLoaded:`This record’s line items have not been loaded.`,loadFailed:`Failed to load line items`,saveFailed:`Failed to save line items`,noChildObject:`This panel has no child object configured: set {{property}} to the object whose rows it lists.`},keepEditing:`Keep editing`,discard:`Discard`,conflictTitle:`Save conflict`,conflictMessage:`This record was changed by someone else while you were editing. Overwriting will replace their changes with yours.`,conflictLatestVersion:`Their save: {{time}}`,conflictOverwrite:`Overwrite`,stepOf:`Step {{current}} of {{total}}`,createTitle:`Create {{object}}`,editTitle:`Edit {{object}}`,viewTitle:`View {{object}}`,createTargetOrg:`Creates in {{org}}`,saveRecord:`Save`,create:`Create`,update:`Update`,createSuccess:`{{object}} created successfully`,updateSuccess:`{{object}} updated successfully`,deleteSuccess:`{{object}} deleted successfully`,created:`Created`,saved:`Saved`,savedNamed:`{{title}} saved`,submitted:`Submitted`,errorLoading:`Error loading form`,navigateRefused:"The `navigateOnSuccess` destination declared for this form was refused, so the navigation did not happen.",fullscreen:{title:`Edit text`,description:`Edit the full text value, then save or cancel your changes.`,done:`Done`,toggle:`Edit {{label}} fullscreen`,textFallback:`text`}},fields:{relativeDate:{overdue:`Overdue {{count}}d`},file:{dragDropHere:`Drag & drop files here`,dropFilesHere:`Drop files here`,browseHint:`or click to browse`,browseHintCamera:`or click to browse • use the camera button below`,takePhoto:`Take photo`,takeSelfie:`Take selfie`,cameraCapture:`Camera capture`,uploading:`Uploading…`,uploadingPct:`Uploading… ({{pct}}%)`,fileFallback:`File`,upload:`Upload`,remove:`Remove {{name}}`,exceedsMaxSize:`"{{name}}" exceeds max size ({{max}} MB)`,uploadFailed:`Failed to upload "{{name}}": {{error}}`,uploadIncomplete:`Upload of "{{name}}" did not complete: no file id was returned, so nothing was saved`},image:{upload:`Upload image`,addMore:`Add more images`,uploading:`Uploading…`,imageAlt:`Image {{index}}`,crop:`Crop image {{index}}`,remove:`Remove image {{index}}`,enlarge:`Enlarge {{name}}`,preview:`Image preview`,previous:`Previous image`,next:`Next image`,counter:`{{current}} / {{total}}`},richText:{format:`Format: {{format}}`,basicEditorHint:`Rich text editor (basic)`,placeholder:`Enter text…`},options:{empty:`No options available`,selectFirst:`Select {{fields}} first`},objectRef:{loading:`Loading objects…`,placeholder:`Select an object`,search:`Search objects…`,empty:`No objects found`},recipient:{selectTypeFirst:`Select a recipient type first.`,loading:`Loading…`,search:`Search…`,empty:`No matches`,select:`Select a recipient`,selectUser:`Select a user`,selectTeam:`Select a team`,selectBusinessUnit:`Select a business unit`,selectPosition:`Select a position`,selectUnitAndSubordinates:`Select a business unit`,selectField:`Select a user field`,noUserFields:`No user fields on this object`,fieldNotUserTyped:`{{name}} — not a user field`},filterCondition:{selectObjectFirst:`Select an object first.`,noCriteria:`No criteria — this rule shares nothing`,criteriaRequired:`Add at least one condition. A rule with no criteria would share every record, so it cannot be saved.`,invalidJson:`Invalid JSON — the rule will match no records until fixed.`,jsonOnly:`This criteria can only be edited as JSON`,editAsJson:`Edit as JSON`,useVisualBuilder:`Use visual builder`},object:{invalidJson:`Invalid JSON`},location:{refusedFormat:`Not saved: enter a latitude, longitude pair (example: 30.2741, 120.1551).`,refusedRange:`Not saved: {{detail}}`,latitude:`latitude`,longitude:`longitude`,refusedResidueOne:`Not saved: {{name}} "{{text}}" is not a number. Enter plain decimals (example: 30.2741, 120.1551).`,refusedResidue:`Not saved: {{name}} "{{text}}" and {{otherName}} "{{otherText}}" are not numbers. Enter plain decimals (example: 30.2741, 120.1551).`},date:{impossibleDay:`The stored value "{{value}}" is not a real date. Pick a date to replace it.`},dateTime:{impossibleDay:`The stored value "{{value}}" is not a real date. Pick a date and time to replace it.`},number:{badInput:`Not saved: the text in this box is not a number. Enter a plain decimal (example: {{example}}).`},tags:{placeholder:`Type and press Enter to add…`},address:{street:`Street Address`,city:`City`,state:`State / Province`,postalCode:`ZIP / Postal Code`,country:`Country`},textarea:{characterCount:`Character count: {{count}} of {{max}}`,charactersRemaining:`Characters remaining: {{count}}`},grid:{addLine:`Add line`,noItems:`No items`,noItemsAddHint:`No items yet — click “{{label}}” to begin.`,optionalColumns:`Optional columns`,computed:`Computed`,openRow:`Open row`,duplicateRow:`Duplicate row`,removeRow:`Remove row`}},table:{rowsPerPage:`Rows per page`,showing:`Showing {{from}} to {{to}} of {{total}}`,noRows:`No rows to display`,sortAsc:`Sort ascending`,sortDesc:`Sort descending`,filterColumn:`Filter {{column}}`,columns:`Columns`,exportCSV:`Export CSV`,exportExcel:`Export Excel`,selectRow:`Select row`,selectAllRows:`Select all rows`,expandRow:`Expand row`,collapseRow:`Collapse row`,hideColumn:`Hide column`,freezeColumn:`Freeze column`,unfreezeColumn:`Unfreeze column`,pageInfo:`Page {{current}} of {{total}}`,totalRecords:`{{count}} total`,noResults:`No results found`,noResultsHint:`Try adjusting your filters or search query.`,cancelAll:`Cancel All`,saveAll:`Save All ({{count}})`,addRecord:`Add record`,open:`Open`,search:`Search…`,modified:`{{count}} row modified`,saveFailed:`Save failed`,selected:`{{count}} selected`,edit:`Edit`,delete:`Delete`},grid:{actions:`Actions`,edit:`Edit`,delete:`Delete`,export:`Export`,exportAs:`Export as {{format}}`,loading:`Loading grid…`,errorLoading:`Error loading grid`,pullToRefresh:`Pull to refresh`,refreshing:`Refreshing…`,openRecord:`Open record`,openMenu:`Open menu`,bulkSelected:`{{count}} selected`,bulkSelectedAllMatches:`{{count}} selected (all matches)`,bulkClear:`Clear`,bulkAllOnPage:`All {{count}} on this page are selected.`,bulkSelectAllMatching:`Select all {{count}} matching`,bulkAllMatchingSelected:`All {{count}} matching records are selected.`,rowHeight:`Row height: {{mode}}`,empty:`Empty`,yes:`Yes`,no:`No`,systemFields:`System`,grouping:{needsHeaderQuery:`This view is grouped, but its data source does not implement queryGroupHeaders, so the groups cannot be counted. Remove the grouping to show the records.`,needsWholeRows:`Grouping needs every record, but this grid was handed one page of them, so the groups cannot be counted. Hand in every record, or let the grid fetch them from a data source that implements queryGroupHeaders.`},summary:{pattern:`{{label}}: {{value}}`,count:`Count`,countEmpty:`Empty`,countFilled:`Filled`,countUnique:`Unique`,percentEmpty:`Empty`,percentFilled:`Filled`,sum:`Sum`,avg:`Avg`,min:`Min`,max:`Max`},toolbar:{densityMode:`Density`,densityCompact:`Compact`,densityComfortable:`Comfortable`,densitySpacious:`Spacious`,densityCycleHint:`{{label}} (click to cycle)`,densityCycleShortHint:`Click to cycle`},import:{title:`Import {{object}}`,stepUpload:`Upload`,stepMapping:`Mapping`,stepPreview:`Preview`,uploadDescription:`Upload a CSV or Excel file, or paste from a spreadsheet to get started.`,mappingDescription:`Map columns to object fields.`,previewDescription:`Review data before importing.`,dragDrop:`Drag & drop a CSV or Excel file here, or click to browse`,browseFiles:`Browse Files`,downloadTemplate:`Download template`,downloadTemplateHint:`Get a CSV with the right columns (required fields marked *).`,templateFileName:`{{object}}-import-template`,parsing:`Parsing…`,pasteHint:`or paste (Ctrl/⌘+V) rows copied from Excel or Google Sheets`,legacyXls:`Legacy .xls files aren't supported — please re-save as .xlsx.`,unsupportedFile:`Unsupported file type. Use CSV, TSV, or Excel (.xlsx).`,parseFailed:`Could not read this file. Please check the format and try again.`,fileNeedsHeader:`File must contain a header row and at least one data row.`,mappingTemplate:`Mapping template:`,chooseTemplate:`Choose template…`,noSavedTemplates:`No saved templates`,noneOption:`— None —`,saveCurrent:`Save current`,templateName:`Template name`,save:`Save`,deleteTemplate:`Delete template`,savedMapping:`Saved mapping:`,chooseSavedMapping:`Choose a saved mapping…`,manualMapping:`— Map columns manually —`,transform:`Transform`,savedMappingHint:`Mapping “{{name}}” applies rename + transforms + type coercion on the server. Column mapping is read-only.`,savedMappingPreviewNote:`The preview shows your source columns; on import, mapping “{{name}}” applies rename, transforms and type coercion on the server.`,csvColumn:`Column`,mapsTo:`Maps To`,typeMismatch:`Looks like {{type}}`,autoMatched:`Auto-matched`,autoMatchedSummary:`Auto-matched {{count}} column(s) — review and adjust below.`,confidence:{high:`High confidence`,medium:`Medium confidence`,low:`Low confidence`},type:{number:`Number`,boolean:`Boolean`,date:`Date`,datetime:`Date & time`,text:`Text`},status:`Status`,skipColumn:`Skip column`,skip:`— Skip —`,mapped:`Mapped`,skipped:`Skipped`,rowsWithErrors:`{{count}} row(s) with errors`,rowsCorrected:`{{count}} row(s) corrected`,clickToFix:`— click a highlighted cell to fix it inline.`,showingRows:`Showing {{shown}} of {{total}} rows`,importing:`Importing… {{progress}}%`,asyncQueued:`Queued — preparing to import…`,asyncProcessing:`Importing {{processed}} of {{total}} rows… {{progress}}%`,asyncLargeHint:`This file is large, so it will be imported in the background.`,largeSampleNotice:`Previewing the first {{shown}} of {{total}} rows.`,cancelImport:`Cancel import`,importCancelled:`Import cancelled`,resultsTruncated:`Showing the first {{count}} row results (of {{total}}).`,importComplete:`Import Complete`,imported:`{{count}} imported`,createdCount:`{{count}} created`,updatedCount:`{{count}} updated`,skippedCount:`{{count}} skipped`,moreErrors:`…and {{count}} more errors`,downloadFailed:`Download failed rows`,options:`Import options`,writeMode:`When a row matches an existing record`,writeModeOpt:{insert:`Always create new`,update:`Update existing (skip if no match)`,upsert:`Update if matched, else create`},matchFields:`Match on`,matchFieldsPlaceholder:`Choose match field(s)…`,matchFieldsHint:`Rows are matched to existing records by these field(s).`,needMatchFields:`Select at least one field to match on.`,matchOnlyField:`(match only)`,optCreateOptions:`Keep unknown option values`,optRunAutomations:`Run automations & triggers`,optTreatHistorical:`Import as historical data`,optTreatHistoricalHint:`(import completed records as-is — skip state-machine checks and keep their original timestamps & author instead of stamping now)`,optSkipBlankKey:`Skip rows with a blank match value`,optBackground:`Import in the background`,optBackgroundHint:`(runs as an undoable job)`,validate:`Validate data`,validating:`Validating…`,validateHint:`Check every row against the server before importing.`,validatePassed:`All {{ok}} rows are valid.`,validateFailed:`{{ok}} valid, {{errors}} with errors.`,errorRowPrefix:`Row {{row}}: `,referenceNotFound:`No matching record for "{{value}}"`,referenceAmbiguous:`"{{value}}" matches more than one record — use a unique value or the record id`,invalidBoolean:`"{{value}}" is not a valid true/false value`,invalidNumber:`"{{value}}" is not a valid number`,invalidDate:`"{{value}}" is not a valid date`,invalidOption:`"{{value}}" is not one of the allowed options`,requiredValue:`This field is required`,matchAmbiguous:`Matches more than one existing record — use a unique value or the record id`,history:`History`,historyBack:`Back to import`,historyDescription:`Recent imports for this object.`,historyHint:`Background import jobs, newest first.`,historyRefresh:`Refresh`,historyLoading:`Loading…`,historyEmpty:`No imports yet.`,historyUnsupported:`Import history isn’t available for this data source.`,historyColStatus:`Status`,historyColRows:`Rows`,historyColResult:`Result`,historyColTime:`When`,errorCount:`{{count}} errors`,undoImport:`Undo import`,undoing:`Undoing…`,undoConfirm:`Undo this import? Records it created will be deleted and records it updated will be restored to their previous values.`,reverted:`Undone`,jobStatus:{pending:`Pending`,running:`Running`,succeeded:`Succeeded`,failed:`Failed`,cancelled:`Cancelled`},cancel:`Cancel`,back:`Back`,next:`Next`,close:`Close`,importNRows:`Import {{count}} Rows`,importingProgress:`Importing…`,required:`Required`,invalidType:`Invalid {{type}}`,legacyReferenceBlocked:`Import blocked: {{fields}} are relation fields that need the server import route to resolve names into record IDs, and this connection doesn’t support it. Importing them as plain text would corrupt the data. Upgrade the backend/client, or unmap these columns and import them separately.`,missingRequiredHint:`Can’t continue — required field(s) not mapped: {{fields}}. Add a matching column to your file, or go back and upload one that includes it.`,legacyFallbackNotice:`Imported via a compatibility fallback: this connection doesn’t support the server import route, so values were saved as text without server-side type coercion. Upgrade the backend/client for full import support (type coercion and relation lookups).`,notAllowed:`This object is not open for import.`,requiredMark:`*`},bulk:{confirmDefault:`This will apply to {{count}} record(s).`,overLimit:`Selection ({{count}}) exceeds the action limit ({{limit}}). Reduce the selection to proceed.`,affectedRecords:`Affected records ({{count}}):`,skippedIneligible:`{{count}} selected record(s) are not eligible for this action and will be skipped.`,rowFallback:`Row {{index}}`,andMore:`… and {{count}} more`,processed:`{{count}} / {{total}} processed`,processedFailed:` · {{count}} failed`,undonePrefix:`Undone — `,succeeded:`Succeeded {{count}} / {{total}}`,resultFailed:` · Failed {{count}}`,retry:`Retry`,downloadErrorCsv:`Download error CSV`,cancel:`Cancel`,back:`Back`,next:`Next`,run:`Run`,running:`Running…`,undo:`Undo`,undoing:`Undoing…`,done:`Done`,loading:`Loading…`}},calendar:{today:`Today`,month:`Month`,week:`Week`,day:`Day`,allDay:`All Day`,newEvent:`New event`,moreEvents:`+{{count}} more`,unscheduled:`Unscheduled ({{count}})`,loading:`Loading calendar…`,loadError:`Error: {{message}}`,configRequired:`Calendar configuration required. Please specify startDateField, the calendar's one required key; the event title resolves without titleField.`,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.`,eventDetails:`Event Details`,pullToRefresh:`Pull to refresh`,refreshing:`Refreshing…`,onDate:`On {{date}}`,eventTitle:`Title`,eventTitlePlaceholder:`What's this event about?`,creating:`Creating…`,titleRequired:`Title is required`,a11y:{region:`Calendar`,grid:`Calendar grid`,goToToday:`Go to today`,previousPeriod:`Previous period`,nextPeriod:`Next period`,currentDate:`Current date: {{date}}`,dayCell:`{{date}}, {{count}} events`,dayCell_one:`{{date}}, {{count}} event`,dayCell_other:`{{date}}, {{count}} events`,resizeEventEnd:`Resize event end`,resizeEventEndHint:`Drag to change end date`,resizeStart:`Resize start`,resizeEnd:`Resize end`}},list:{loading:`Loading records…`,recordCount:`{{count}} records`,recordCountOne:`{{count}} record`,addRecord:`Add record`,tabs:`Tabs`,allRecords:`All Records`,search:`Search`,filter:`Filter`,filterRecords:`Filter Records`,sort:`Sort`,sortRecords:`Sort Records`,sortByIdSuffix:`(by ID)`,sortRelationalHint:`Columns that link to another record are not listed: they can only be sorted by the stored ID, not by the name shown in the cell. To sort by that name, denormalize it onto this object as a stored field, written when the source changes, and sort by that. Not a formula field: it is virtual, so no column is stored for it and the server refuses to sort by one.`,resetSortToDefault:`Reset to view default`,group:`Group`,groupBy:`Group By`,export:`Export`,exportAs:`Export as {{format}}`,color:`Color`,rowColor:`Row Color`,colorByField:`Color by field`,clear:`Clear`,none:`None`,hideFields:`Hide fields`,noItems:`No items found`,noItemsMessage:`There are no records to display. Try adjusting your filters or adding new data.`,firstRunTitle:`Nothing here yet`,firstRunMessage:`Create your first record to get started.`,noMatches:`No matching records`,noMatchesMessage:`No records match your current filters or search. Try adjusting or clearing them.`,loadErrorTitle:`Couldn’t load records`,loadErrorMessage:`Something went wrong while loading this data. Check your connection and try again.`,loadErrorForbiddenTitle:`You don’t have access`,loadErrorForbiddenMessage:`You don’t have permission to view these records. Contact your administrator if you think you should have access.`,loadErrorUnauthorizedTitle:`Sign in required`,loadErrorUnauthorizedMessage:`Your session has expired or you are signed out. Sign in again to view these records.`,loadErrorRejectedTitle:`This view’s query was rejected`,loadErrorRejectedMessage:`The server could not process this view’s filter or query options. Clearing the filters usually fixes it; if the view is saved this way, an administrator needs to correct it.`,loadErrorApiDisabledTitle:`This object isn’t available through the API`,loadErrorApiDisabledMessage:`This page can’t load its records because the object is not exposed through the API. That is a setting on the object itself, not a permission — an administrator has to enable API access for it before this page can work.`,retry:`Retry`,managedBy:{system:{title:`Nothing here yet`,message:`Entries appear automatically when their source action runs (e.g. Submit for Approval, Share, Invite). Trigger one of those on a source record to create a row.`},appendOnly:{title:`No events recorded`,message:`This is an immutable audit log. Rows are written by the platform when events occur — you can export the history but cannot create entries from here.`},betterAuth:{title:`No identity records`,message:`These records are created by the authentication provider — through sign-in, provisioning, and security flows — not added by hand here.`},betterAuthUser:{title:`No users yet`,message:`User accounts are provisioned by the authentication provider, not created here. Invite teammates to your organization and they appear automatically on first sign-in (SSO just-in-time provisioning). App end-users arrive when they sign up through your app.`},betterAuthTeam:{title:`No teams yet`,message:`Teams group members within an organization. Create one with “Create Team”, or they arrive through your auth provider’s organization and SSO provisioning flows.`}},showAll:`Show all`,refresh:`Refresh`,pullToRefresh:`Pull to refresh`,refreshing:`Refreshing…`,share:`Share`,print:`Print`,hideFieldsTitle:`Hide Fields`,dataLimitReached:`Showing first {{limit}} records. More data may be available.`,viewSettings:`View settings`,viewSettingsHint:`Grouping, color, density, and visible fields. Applies to everyone who uses this view.`,addGroup:`Add group field`,collapsedByDefault:`Collapsed by default`,removeGroup:`Remove`,inlineEditShort:`Edit inline`,inlineEditLabel:`Edit records inline (click a cell to edit)`,recordEditingTitle:`Record editing`},managedByBadge:{config:{short:`Admin config`,title:`Administrator configuration`,body:`These rows define how the platform behaves at runtime. Author them here; the runtime data they produce lives in a separate table.`},system:{short:`System-managed`,title:`Managed by the platform`,body:`Rows here are created automatically when actions run on the source record. The list below is a read-only monitoring surface — row-level actions (Approve, Recall, Resend, …) live on each row.`},systemWritable:{short:`Platform schema`,title:`Platform-defined, admin-writable`,body:`This object's schema is defined by the platform, but its rows are yours to create and edit here. Who may write is governed by delegated administration and record-level security, not by this badge.`},appendOnly:{short:`Read-only · Audit log`,title:`Read-only historical record`,body:`Immutable audit log. Rows cannot be created, edited, or deleted from the UI — they're written by the platform when events occur. Use Export to download for compliance review.`},betterAuth:{short:`Identity`,title:`Managed by the identity provider`,body:`This object's schema is owned by {{provider}}. Direct edits bypass password hashing, session validation, two-factor checks, and audit hooks. Manage these records through your authentication provider's sign-in, invitation, and security flows instead.`}},kanban:{addCard:`Add card`,addColumn:`Add column`,moveCard:`Move card`,deleteCard:`Delete card`,deleteColumn:`Delete column`,noCards:`No cards`,cardTitlePlaceholder:`Enter card title…`,uncategorized:`Uncategorized`,columns:`columns`,requiredFieldsTitle:`Complete required fields`,requiredFieldsDescription:`This move makes the fields below required. Fill them in to continue.`},timeline:{bucket:{overdue:`Overdue`,today:`Today`,tomorrow:`Tomorrow`,thisWeek:`This week`,nextWeek:`Next week`,later:`Later`,noDate:`No date`,unassigned:`Unassigned`},scale:{week:`Week {{n}}`,quarter:`Q{{quarter}} {{year}}`},gantt:{rowLabel:`Items`,unusableRange:{malformedDate:`Unusable gantt date range — {{path}} is {{value}}, which is not a valid date. Every gantt date has to parse: the startDate and endDate on every row item, plus any minDate / maxDate pinned on the schema.`,malformedRow:`Unusable gantt rows — {{path}} is {{value}}, which is not a row shape. A gantt draws items as a list of rows, every row as an object with a label and its own items, and every row's items as a list of bars; a null, a number, a string or a plain object in any of those places cannot be drawn.`,inverted:`Unusable gantt date range — minDate {{minDate}} is after maxDate {{maxDate}}. A pinned minDate / maxDate overrides the range computed from the rows, so this axis has no columns and no bar can be placed on it; swap the two values.`}},unsupported:{objectBoundGantt:`Unsupported variant "gantt" — an object-bound timeline renders the feed variants ({{variants}}). Gantt needs literal rows, each with its own nested items, so the gantt axis (scale) has no effect here.`},unconfigured:{noDateAxis:`Timeline date axis required — this view declares no date field, and an object-bound timeline will not invent one. Declare one of: {{fields}}. The first is the spec spelling; the rest are legacy aliases.`}},gantt:{column:{taskName:`Task Name`,start:`Start`,end:`End`},toolbar:{prevPeriod:`Previous period`,nextPeriod:`Next period`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,jumpToToday:`Jump to today`,today:`Today`,thisWeek:`This week`,thisMonth:`This month`,showTaskList:`Show task list`,hideTaskList:`Hide task list`,viewMode:`Timeline granularity`,enterFullscreen:`Enter fullscreen`,exitFullscreen:`Exit fullscreen`,criticalPath:`Highlight critical path`,autoSchedule:`Auto-schedule dependencies`,exportPng:`Export as PNG`,exportPdf:`Export PDF`,saveLayout:`Save layout`,refresh:`Refresh`,undo:`Undo`,redo:`Redo`},viewMode:{day:`Day`,week:`Week`,month:`Month`,quarter:`Quarter`,year:`Year`},row:{expand:`Expand`,collapse:`Collapse`,open:`Open details`},aria:{taskList:`Task list`,refreshing:`Refreshing…`},tooltip:{days:`d`},menu:{view:`View details`,edit:`Edit inline`,delete:`Delete`,addPredecessor:`Add predecessor…`,addSuccessor:`Add successor…`,removeDependency:`Remove dependency`,noCandidates:`No available tasks`,searchTasks:`Search tasks…`},delete:{title:`Delete this task?`,body:`"{{title}}" will be permanently removed. This action cannot be undone.`,cancel:`Cancel`,confirm:`Delete`,deleting:`Deleting…`},drawer:{fallbackTitle:`Task Details`},linkType:{fs:`Finish → Start`,ss:`Start → Start`,ff:`Finish → Finish`,sf:`Start → Finish`},linkEnd:{start:`start`,end:`end`},link:{rejected:{self:`A task cannot depend on itself.`,locked:`This row is locked and cannot take a new dependency.`,group:`A summary row cannot take a dependency — link one of its tasks instead.`,cycle:`That link would create a circular dependency.`}},conflict:{title:`Schedule conflict`,body:`This move conflicts with dependency constraints. Auto-reschedule {{count}} affected task(s)?`,confirm:`Auto-reschedule`,cancel:`Keep as is`},autoScheduleDlg:{title:`Auto-schedule`,body:`Shift {{count}} task(s) later to satisfy dependency links?`,skipped:`{{count}} locked task(s) also violate links and were skipped.`,confirm:`Apply`,cancel:`Cancel`,none:`All dependencies satisfied — nothing to reschedule.`},resource:{header:`Resource`,peak:`Peak`,over:`overloaded`,empty:`No tasks to allocate.`},quickFilter:{all:`All`,clear:`Clear filters`,empty:`No options`,resultSummary:`Showing {shown} / {total} tasks`},readOnly:`Read-only`,readOnlyHint:`Editing is disabled for this view.`,lockedHint:`No edit permission`,writeFailed:`Save failed — the change was rolled back`},view:{editViewConfig:`Edit view config`,rename:`Rename`,duplicateView:`Duplicate View`,shareView:`Share View`,setAsDefault:`Set as Default`,pinView:`Pin View`,unpinView:`Unpin View`,changeViewType:`Change View Type`,deleteView:`Delete View`,addView:`Add View`,unsavedChanges:`Unsaved changes`,saveAsView:`Save as View`,moreViews:`{{count}} more`,activeFilters:`Active filters`,activeSort:`Active sort`,manageViews:`Manage views`,manageAllViews:`Manage all views…`,manageViewsDescription:`Reorder, rename, pin, or delete every view in this object.`,searchViews:`Search views`,addNewView:`Add new view`,done:`Done`,noViewsFound:`No views match your search.`,dragToReorder:`Drag to reorder`,defaultView:`Default view`,defaultBadge:`default`,tabActionsFor:`View actions for {{name}}`,readonlyAriaLabel:`Read-only view`,readonlyTooltip:`System view — defined in code, read-only.`,malformedFilter:`This view’s filter is malformed, so no records are shown: the {{subject}} condition cannot be applied.`},detail:{back:`Back`,edit:`Edit`,editInline:`Edit`,save:`Save`,saveChanges:`Save changes`,saving:`Saving…`,editFieldsInline:`Edit fields`,editInlineHint:`Double-click to edit`,lockedByApproval:`Locked for approval`,lockedTooltip:`This record has a pending approval request; editing is locked`,writeStrippedTitle:`Saved — but some fields did not take effect`,writeStrippedReadonly:`Read-only, so it did not take effect: {{fields}}`,writeStrippedByState:`Not editable in this record's current state, so it did not take effect: {{fields}}`,writeStrippedPrimaryKey:`The record's identifier cannot be changed by a save, so it did not take effect: {{fields}}`,writeStrippedComputed:`Calculated by the server from a formula, so the value sent did not take effect: {{fields}}`,writeStrippedUnknownReason:`Not applied by the server: {{fields}}`,approvalPendingEditable:`In approval · editable`,approvalPendingTooltip:`This record has a pending approval request; this step still allows editing`,approvalProgress:`Approvals — {{got}} of {{need}}`,approvalProgressGroups:`Sign-off — {{got}} of {{need}} groups`,approvalProgressLabel:`Approval progress`,approvalsPanelTitle:`Approvals`,cancelApproval:`Recall approval`,cancelApprovalInFlight:`Recalling…`,cancelApprovalTooltip:`Recall the pending approval request to unlock this record`,cancelApprovalTooltipUnlocked:`Recall the pending approval request`,cancelApprovalFailed:`Failed to recall approval`,cancelApprovalUnavailable:`Recalling approvals is not supported on this data source`,pathLabel:`Record path`,pathStageCompleted:`{{stage}}, completed`,pathStageCurrent:`{{stage}}, current stage`,pathStageUpcoming:`{{stage}}, upcoming`,pathStageLostCurrent:`{{stage}}, closed lost, current stage`,pathStageLostUpcoming:`{{stage}}, closed lost, not reached`,pathStageWonUpcoming:`{{stage}}, goal stage, not reached`,linkCopied:`Link copied to clipboard`,commentFailed:`Your comment was not posted. Nothing was saved — please try again.`,reactionFailed:`Your reaction was not saved. Please try again.`,linkCopyFailed:`Failed to copy link`,cancel:`Cancel`,cancelEdit:`Discard changes`,sectionMoreDetails:`More details`,concurrentUpdateTitle:`This record was modified by someone else`,concurrentUpdateDescription:`Another user saved a newer version of {{field}} while you were editing. To prevent silently overwriting their change, please choose how to resolve the conflict.`,concurrentUpdateYourEdit:`Your edit`,concurrentUpdateCurrentValue:`Current value`,concurrentUpdateUpdatedBy:`Updated by {{name}}`,concurrentUpdateUpdatedAt:`Updated at {{when}}`,concurrentUpdateReload:`Reload latest`,concurrentUpdateOverwrite:`Overwrite anyway`,concurrentUpdateCancel:`Cancel`,concurrentUpdateRecordLabel:`this record`,openInNewTab:`Open in new tab`,share:`Share`,duplicate:`Duplicate`,export:`Export`,viewHistory:`View history`,delete:`Delete`,moreActions:`More actions`,addReaction:`Add reaction`,pageHeaderActions:`Page header actions`,emojiPicker:`Emoji picker`,reactionCount:`{{emoji}} {{count}} reactions`,reactionCountOne:`{{emoji}} {{count}} reaction`,recordDetail:`Record Detail`,recordDetailWithLabel:`{{label}} Detail`,openAsFullPage:`Open as full page`,recordDetailOverlay:`Record detail overlay for {{title}}.`,addToFavorites:`Add to favorites`,removeFromFavorites:`Remove from favorites`,previousRecord:`Previous record`,nextRecord:`Next record`,recordOf:`{{current}} of {{total}}`,recordNotFound:`Record not found`,recordNotFoundDescription:`The record you are looking for does not exist or may have been deleted.`,goBack:`Go back`,details:`Details`,related:`Related`,relatedRecords:`{{count}} records`,relatedRecordOne:`{{count}} record`,noRelatedRecords:`No related records found`,loading:`Loading…`,copyToClipboard:`Copy to clipboard`,copied:`Copied!`,deleteConfirmation:`Are you sure you want to delete this record?`,deleted:`Record deleted`,editRecord:`Edit record`,viewAll:`View All`,new:`New`,add:`Add`,activity:`Activity`,history:`History`,historyEmpty:`No history yet`,editRow:`Edit`,deleteRow:`Delete`,deleteRowConfirmation:`Are you sure you want to delete this record?`,deleteRowTitle:`Delete record`,actions:`Actions`,previousPage:`Previous`,nextPage:`Next`,pageOf:`Page {{current}} of {{total}}`,sortBy:`Sort by`,filterPlaceholder:`Filter…`,highlightFields:`Key Fields`,highlightsLabel:`Record highlights`,comments:`Comments`,searchComments:`Search comments…`,addCommentPlaceholder:`Add a comment… (Ctrl+Enter to submit)`,noMatchingComments:`No matching comments`,noCommentsYet:`No comments yet`,pinned:`Pinned`,pin:`Pin`,unpin:`Unpin`,justNow:`just now`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`,systemActor:`System`,unknownUser:`Unknown`,createdBy:`Created by`,updatedBy:`Updated by`,created:`Created`,updated:`Updated`,dropFilesToUpload:`Drop files here or click to upload`,attachmentCount:`{{count}} attachment`,attachmentCountPlural:`{{count}} attachments`,removeAttachment:`Remove attachment`,attachments:`Attachments`,uploadAttachment:`Upload`,loadingAttachments:`Loading attachments…`,noAttachments:`No attachments yet. Upload a file to get started.`,downloadAttachment:`Download`,deleteAttachment:`Delete attachment`,attachmentDeleteDenied:`Only the uploader or someone who can edit this record may delete this attachment.`,attachmentParentAccessDenied:`You don't have access to attach files to this record.`,attachmentDownloadDenied:`You don't have access to download this attachment.`,attachmentAuthRequired:`Please sign in to download this attachment.`,attachmentPermissionDenied:`You don't have permission to do that.`,attachmentsAccessDenied:`You don't have access to these attachments.`,attachmentsLoadFailed:`We couldn't load the attachments for this record.`,attachmentsApiUnavailable:`The attachments list is not available on this object.`,retryLoadAttachments:`Retry`,discussion:`Discussion`,showDiscussion:`Show Discussion ({{count}})`,hideDiscussion:`Hide discussion`,bold:`Bold (Ctrl+B)`,italic:`Italic (Ctrl+I)`,listFormat:`List`,inlineCode:`Inline code`,mentionSomeone:`Mention someone`,preview:`Preview`,submitComment:`Submit (Ctrl+Enter)`,sendComment:`Send`,writeComment:`Write a comment…`,subscribedTooltip:`Subscribed — click to unsubscribe`,unsubscribedTooltip:`Subscribe to notifications`,noRecords:`No records`,showEmptyRelated:`+ {{count}} empty`,showEmptyRelated_one:`+ {{count}} empty`,showEmptyRelated_other:`+ {{count}} empty`,allActivity:`All Activity`,commentsOnly:`Comments Only`,fieldChangesFilter:`Field Changes`,tasksOnly:`Tasks Only`,leaveCommentPlaceholder:`Leave a comment… (Ctrl+Enter to submit)`,noActivity:`No activity recorded`,activityAccessDenied:`You don't have permission to view activity on this record.`,commentsAccessDenied:`You don't have permission to view comments on this record.`,allFilter:`All`,createsFilter:`Creates`,deletesFilter:`Deletes`,statusChangesFilter:`Status Changes`,activityEmptyValue:`(empty)`,activityFieldChanged:`Changed {{field}} from "{{old}}" to "{{new}}"`,activityCreated:`Created this record`,activityDeleted:`Deleted this record`,activityStatusChanged:`Changed status to "{{value}}"`,activityUpdated:`Updated record`,loadMore:`Load more`,edited:`(edited)`,via:`via {{source}}`,viewSource:`View source`,replyCount:`{{count}} reply`,replyCountPlural:`{{count}} replies`,replyPlaceholder:`Reply…`,filterActivity:`Filter activity`,openDiscussion:`Open discussion panel`,closeDiscussion:`Close discussion panel`,subscribeAriaLabel:`Subscribe to notifications`,unsubscribeAriaLabel:`Unsubscribe from notifications`,clearSearch:`Clear search`,copyEmail:`Copy email`,copyPhone:`Copy phone number`,copyRecordId:`Copy record ID`,showEmptyFields:`Show {{count}} empty fields`,hideEmptyFields:`Hide empty fields`,noValue:`No value`,unresolvedReference:`Unresolved reference: {{value}} was not resolved to a user`,unresolvedLookupReference:`Unresolved reference: {{value}} was not resolved to a record on this screen`,repeaterItemCount:`{{count}} items`,repeaterItemCount_one:`{{count}} item`,repeaterItemCount_other:`{{count}} items`,fileCount:`{{count}} files`,fileCount_one:`{{count}} file`,fileCount_other:`{{count}} files`},chart:{loading:`Loading chart…`,refreshing:`Refreshing…`,nullCategory:`(None)`,scatterOneMeasure:`A scatter plots one measure. Keep exactly one series:`,unconfigured:{noCategoryAxis:`Chart category axis required — an object-bound chart will not invent one. Declare one of:`}},report:{total:`Total`,rowTotal:`Row Total`,columnTotal:`Column Total`,grandTotal:`Grand Total`,totals:`Totals`,rowsLabel:`Row`,columnsLabel:`Column`,allLabel:`(All)`,emptyLabel:`(Empty)`,loading:`Loading…`,failedToLoad:`Failed to load matrix: {{message}}`,needsAcross:"Matrix report requires at least one `groupingsAcross` field.",aggregate:{count:`Count`,countDistinct:`Distinct Count`,sum:`Sum`,avg:`Average`,min:`Min`,max:`Max`,first:`First`},editor:{panelTitle:`Edit report`}},designer:{undo:`Undo`,redo:`Redo`},dashboard:{addWidget:`Add widget`,editLayout:`Edit layout`,saveLayout:`Save layout`,resetLayout:`Reset layout`,total:`Total`,noDataSourceFor:`No data source available for`,empty:{title:`No data yet`,message:`This widget loaded successfully and its query returned no records yet.`,sourceLabel:`Source:`},loading:`Loading…`,refreshing:`Refreshing…`,refreshAll:`Refresh All`,refreshDashboard:`Refresh dashboard`,pickMeasures:`Pick measures (values) for this dataset widget.`,datasetUnsupported:`This data source does not support dataset queries.`,widgetForbiddenTitle:`You don’t have access`,widgetForbiddenMessage:`You don’t have permission to view the data behind this widget.`,details:`Details`,exportCsv:`Export CSV`,openInList:`Open in list`,config:{breadcrumb:{dashboard:`Dashboard`,configuration:`Configuration`,widget:`Widget`,chart:`Chart`,table:`Table`,pivotTable:`Pivot table`},section:{general:`General`,layout:`Layout`,data:`Data`,dataBinding:`Data Binding`,appearance:`Appearance`},field:{title:`Title`,description:`Description`,columns:`Columns`,gap:`Gap`,rowHeight:`Row height (px)`,autoRefresh:`Auto refresh`,showDescription:`Show description`,theme:`Theme`,widgetType:`Widget type`,colorVariant:`Color variant`,dataset:`Dataset`,dimensions:`Dimensions`,values:`Values`,width:`Width (columns)`,height:`Height (rows)`},placeholder:{dashboardTitle:`Dashboard title`,dashboardDescription:`Short summary shown under the title`,widgetTitle:`Widget title`,widgetDescription:`Widget description`,datasetName:`Dataset name`,selectDataset:`Select dataset…`,searchDatasets:`Search datasets…`,addDimension:`Add dimension…`,addMeasure:`Add measure…`,searchMembers:`Search…`},empty:{datasets:`No datasets found.`,dimensions:`No dimensions selected.`,measures:`No measures selected.`,nothingToAdd:`Nothing left to add.`},help:{dataset:`The semantic-layer dataset this widget binds to (ADR-0021).`,dimensions:`Group/split the values by these dataset dimensions.`,dimensionsPivot:`Group/split fields. The last dimension spreads across as columns.`,values:`Measure(s) from the dataset to display (at least one).`},action:{add:`Add`,remove:`Remove {{name}}`},refresh:{off:`Off`,every30s:`Every 30s`,every1m:`Every 1 min`,every5m:`Every 5 min`,every15m:`Every 15 min`,every30m:`Every 30 min`,every1h:`Every 1 hour`},themeOption:{light:`Light`,dark:`Dark`,auto:`Auto`},widgetType:{metric:`Metric`,bar:`Bar Chart`,horizontalBar:`Horizontal Bar`,line:`Line Chart`,pie:`Pie Chart`,donut:`Donut Chart`,area:`Area Chart`,scatter:`Scatter Plot`,funnel:`Funnel`,table:`Table`,pivot:`Pivot Table`},color:{default:`Default`,blue:`Blue`,teal:`Teal`,orange:`Orange`,purple:`Purple`,success:`Success`,warning:`Warning`,danger:`Danger`}},trend:{vsLastQuarter:`vs last quarter`,vsLastMonth:`vs last month`,vsLastWeek:`vs last week`,vsLastYear:`vs last year`,vsYesterday:`vs yesterday`,vsPreviousPeriod:`vs previous period`},filters:{label:`Dashboard filters`,dateRange:`Date range`,allTime:`All time`,custom:`Custom…`,all:`All`,reset:`Reset`,range:{today:`Today`,yesterday:`Yesterday`,this_week:`This week`,last_week:`Last week`,this_month:`This month`,last_month:`Last month`,this_quarter:`This quarter`,last_quarter:`Last quarter`,this_year:`This year`,last_year:`Last year`,last_7_days:`Last 7 days`,last_30_days:`Last 30 days`,last_90_days:`Last 90 days`}}},appDesigner:{createApp:`Create Application`,editApp:`Edit Application`,basicInfo:`Basic Info`,objects:`Objects`,navigation:`Navigation`,branding:`Branding`,appName:`App Name`,appTitle:`Title`,appDescription:`Description`,appIcon:`Icon`,template:`Template`,selectObjects:`Select Objects`,searchObjects:`Search objects…`,selectAll:`Select All`,deselectAll:`Deselect All`,navBuilder:`Navigation Builder`,addGroup:`Add Group`,addUrl:`Add URL`,addSeparator:`Add Separator`,logoUrl:`Logo URL`,primaryColor:`Primary Color`,faviconUrl:`Favicon URL`,preview:`Preview`,complete:`Complete`,snakeCaseHint:`Must be snake_case (e.g. my_app)`,modeEdit:`Edit`,modePreview:`Preview`,modeCode:`Code`,addWidget:`Add Widget`,widgetProperties:`Widget Properties`,dataSource:`Data Source`,valueField:`Value Field`,aggregate:`Aggregate`,colorVariant:`Color Variant`,addComponent:`Add Component`,componentProperties:`Component Properties`,viewType:`View Type`,fields:`Fields`,toolbar:`Toolbar`,showSearch:`Show Search`,showFilters:`Show Filters`,showSort:`Show Sort`,appearance:`Appearance`,rowHeight:`Row Height`,livePreview:`Live Preview`,stepBasicDesc:`Name, title, and icon`,stepObjectsDesc:`Select business objects`,stepNavigationDesc:`Build navigation tree`,stepBrandingDesc:`Logo, colors, and favicon`,noObjectsFound:`No objects found.`,noNavItemsHint:`No navigation items yet. Select objects in the previous step or add items manually.`,separatorLabel:`— Separator —`,newGroup:`New Group`,newLink:`New Link`,saveDraft:`Save Draft`,cancelConfirmTitle:`Discard changes?`,cancelConfirmMessage:`You have unsaved changes. Are you sure you want to cancel?`,confirmDiscard:`Discard`,keepEditing:`Keep Editing`,navNoItems:`No navigation items. Click buttons above to add items.`,navNoPreviewItems:`No items`,navLivePreview:`Live Preview`,navCollapseGroup:`Collapse group`,navExpandGroup:`Expand group`,navAddChild:`Add child`,navMoveUp:`Move up`,navMoveDown:`Move down`,navRemove:`Remove`,navObjectPage:`Object Page`,navDashboard:`Dashboard`,navPage:`Page`,navReport:`Report`,navGroup:`Group`,navUrl:`URL`,navSeparator:`Separator`,navTypeObject:`Object`,navTypeDashboard:`Dashboard`,navTypePage:`Page`,navTypeReport:`Report`,navTypeUrl:`URL`,navTypeGroup:`Group`,navTypeSeparator:`Separator`,navTypeAction:`Action`,navTypeComponent:`Component`,navTypeDoc:`Doc`,navEditIcon:`Edit icon`,navToggleVisible:`Toggle visibility`,navHidden:`Hidden`,navExportSchema:`Export JSON`,navImportSchema:`Import JSON`,navExportSuccess:`Navigation schema exported`,navImportSuccess:`Navigation schema imported`,navImportError:`Invalid navigation JSON`,navIconPlaceholder:`Icon name (e.g. Users)`,dashboardEditor:`Dashboard Editor`,noWidgets:`No widgets. Click a button above to add one.`,widgetLayoutSize:`Layout Size`,widgetWidth:`Width`,widgetHeight:`Height`,dashboardPreview:`Dashboard Preview`,noWidgetsPreview:`No widgets to preview`,pageCanvasEditor:`Page Canvas Editor`,emptyPage:`Empty page. Click a button above to add a component.`,pagePreview:`Page Preview`,noComponentsPreview:`No components to preview`,modePage:`Page`,modeDashboard:`Dashboard`,undo:`Undo`,redo:`Redo`,brandingEditor:`Branding Editor`,brandingExport:`Export JSON`,brandingImport:`Import JSON`,brandingPreview:`Preview`,brandingSampleButton:`Sample Button`,brandingSampleText:`This is how your brand theme will look.`,colorPalette:`Color Palette`,fontFamily:`Font Family`,fontDefault:`Default (System)`,modeLight:`Light`,modeDark:`Dark`,mobilePreview:`Mobile Preview`,objectManager:{title:`Object Manager`,addObject:`New Object`,searchPlaceholder:`Search objects…`,noObjects:`No objects found.`,objectName:`API Name`,objectLabel:`Label`,pluralLabel:`Plural Label`,icon:`Icon`,selectIcon:`Select icon…`,group:`Group`,noGroup:`No Group`,sortOrder:`Sort Order`,enabled:`Enabled`,relationships:`Relationships`,systemBadge:`System`,fieldCount:`{{count}} fields`,ungrouped:`Ungrouped`,deleteConfirmTitle:`Delete Object?`,deleteConfirmMessage:`This will permanently delete the object and all its fields. This action cannot be undone.`},fieldDesigner:{title:`Field Designer`,addField:`New Field`,searchPlaceholder:`Search fields…`,allTypes:`All Types`,noFields:`No fields found.`,fieldName:`API Name`,fieldLabel:`Label`,fieldType:`Type`,fieldGroup:`Group`,description:`Description`,required:`Required`,unique:`Unique`,readOnly:`Read Only`,hidden:`Hidden`,externalId:`External ID`,trackHistory:`Track History`,defaultValue:`Default Value`,placeholder:`Placeholder`,referenceTo:`Reference To`,options:`Options`,addOption:`Add Option`,validationRules:`Validation Rules`,addRule:`Add Rule`,systemBadge:`System`,ungrouped:`General`,deleteConfirmTitle:`Delete Field?`,deleteConfirmMessage:`This will permanently delete the field. Existing data in this field will be lost.`,basicSection:`Basic`,typeSpecificSection:`Type Settings`,advancedSection:`Advanced`,typeCategory:{text:`Text`,number:`Number`,date:`Date & Time`,choice:`Choice`,relation:`Relation`,advanced:`Advanced`}}},console:{studio:{backToHome:`Back to home`},saveAdvisoryTitle:`Saved — the authoring check raised {{count}} advisory finding(s)`,publishAdvisoryTitle:`Published — the authoring check raised {{count}} advisory finding(s)`,importMappingsUnavailable:`Saved import mappings for {{object}} could not be loaded`,importMappingsRefused:`The server refused this request, so this list is empty because it could not be read — not because nothing is registered. Sign in again, or ask an administrator for access.`,importMappingsUnreadable:`This list is empty because it could not be read, not because nothing is registered. Try again, and report this if it keeps happening.`,savedViewsUnavailable:`Saved views for {{object}} could not be loaded`,savedViewsRefused:`The server refused this request, so this list is empty because it could not be read — not because this object has no saved views. Sign in again, or ask an administrator for access.`,savedViewsUnreadable:`This list is empty because it could not be read, not because this object has no saved views. Try again, and report this if it keeps happening.`,title:`ObjectOS`,initializing:`Initializing application…`,search:`Search…`,breadcrumb:{dashboards:`Dashboards`,pages:`Pages`,reports:`Reports`,system:`System`,marketplace:`Marketplace`,settings:`Settings`,apps:`Apps`,profile:`Profile`,approvals:`Approvals`,aiApprovals:`AI Approvals`,auditLog:`Audit Log`},nav:{pinItem:`Pin {{name}}`,unpinItem:`Unpin {{name}}`,dragToReorder:`Drag to reorder`,favorites:`Favorites`,launcherLabel:`App launcher`,menuLabel:`App navigation`,menuEmpty:`This app has no navigation entries you can open.`},settingsHub:{title:`Settings`,subtitle:`Configure your workspace, integrations, and feature flags.`,loadError:`Failed to load settings`,empty:`No settings registered. Plugins can register settings manifests via the SettingsService.`,settingsCount:`{{n}} settings`,beta:`Beta`,categories:{Workspace:`Workspace`,Communication:`Communication`,Security:`Security`,Infrastructure:`Infrastructure`,Beta:`Beta`,Other:`Other`}},settingsView:{backToHub:`All settings`,back:`Back`,noNamespace:`No namespace selected.`,loadError:`Failed to load settings`,saved:`Settings saved`,saveFailed:`Save failed`,lockedByEnv:`Locked by environment: {{key}}`,lockedByEnvNoKey:`Locked by environment`,actionSucceeded:`Action succeeded`,actionFailed:`Action failed`,discard:`Discard`,saveChanges:`Save changes`,unsavedCount:`{{count}} unsaved changes`,unsavedCount_one:`{{count}} unsaved change`,unsavedCount_other:`{{count}} unsaved changes`,cryptoRefusalTitle:`This deployment cannot encrypt secrets`,cryptoRefusalSubjectSuffix:`is declared encrypted, so nothing was written.`,cryptoRefusalNoSubject:`The declared-encrypted value was refused, so nothing was written.`,cryptoRefusalToast:`Cannot encrypt secrets: {{subject}}`,cryptoRefusalToastNoSubject:`Cannot encrypt secrets`},loadingSteps:{connecting:`Connecting to data source`,loadingConfig:`Loading configuration`,preparingWorkspace:`Preparing workspace`},loadingHint:`Setting up a new environment can take a few moments.`,error:{connectionFailed:`Cannot connect to server`,serverUnreachable:`The server at {{url}} is unreachable.`,checkServer:`Please check your network connection or that the backend is running.`,timeout:`Connection timed out after 10 seconds.`},actions:{retry:`Retry`,retrying:`Retrying…`},serverAction:{openingTitle:`Opening…`,openingBody:`Opening… this may take a moment.`,popupBlockedTitle:`Popup blocked`,popupBlockedDescription:`Your browser blocked the new tab from opening.`,popupBlockedAction:`Open in new tab`},shortcuts:{title:`Keyboard Shortcuts`,description:`Quick reference for all available keyboard shortcuts.`,groups:{general:`General`,navigation:`Navigation`,dataViews:`Data Views`,aiChat:`AI assistant`,preferences:`Preferences`},openCommandPalette:`Open command palette`,showShortcuts:`Show keyboard shortcuts`,closeDialog:`Close dialog / panel`,toggleSidebar:`Toggle sidebar`,focusSearch:`Focus search`,createRecord:`Create new record`,refreshData:`Refresh data`,editRecord:`Edit selected record`,newChat:`New chat`,toggleChatsList:`Toggle conversations list`,toggleDarkMode:`Toggle dark mode`},commandPalette:{title:`Command palette`,placeholder:`Type a command or search…`,noResults:`No results found.`,searching:`Searching…`,records:`Records`,recentRecords:`Recently viewed`,objects:`Objects`,dashboards:`Dashboards`,pages:`Pages`,reports:`Reports`,switchApp:`Switch App`,current:`Current`,preferences:`Preferences`,lightTheme:`Light Theme`,darkTheme:`Dark Theme`,systemTheme:`System Theme`,actions:`Actions`,openFullSearch:`Open Full Search Page`,createApp:`Create New App`},ai:{pendingDrafts:{count:`{{count}} change(s) are not published yet — users cannot see them.`,publish:`Publish`,published:`All pending changes are live.`,failed:`Publish failed.`,publishedWithFindings:`Published, but the runtime probes reported problems: {{detail}}`},usage:{title:`AI usage`,meterBuild:`Build`,meterAsk:`Ask`,statusOk:`Plenty left`,statusLow:`Running low`,statusFull:`Limit reached`,resetsDaily:`Resets tonight`,resetsMonthly:`Resets next cycle`,resetsWeeklyDays:`Resets in {{count}} days`,resetsWeeklyDays_one:`Resets in {{count}} day`,resetsWeeklyDays_other:`Resets in {{count}} days`,resetsWeeklyHours:`Resets in {{count}} hours`,resetsWeeklyHours_one:`Resets in {{count}} hour`,resetsWeeklyHours_other:`Resets in {{count}} hours`,ctaUpgrade:`Upgrade to keep going`,ctaTopUp:`Add credits to continue`,ariaLabel:`AI usage: {{status}}`,breakdownTitle:`Used so far`},workspaceTitle:`AI Workspace`,workspaceSubtitle:`Ask, inspect, and resume conversations`,openChats:`Open chats`,chats:`Chats`,chatsDescription:`Browse and manage AI conversations.`,share:`Share`,shareTitle:`Share this conversation`,shareDisabledTitle:`Start chatting to enable sharing`,buildDoctor:`Build Doctor`,buildDoctorTitle:`Build Doctor — what actually landed?`,buildDoctorDisabledTitle:`Send a message first`,buildDoctorDrawer:{description:`What the agent claimed vs what is actually live. Read-only diagnostic.`,reconciling:`Reconciling…`,notAvailable:`Not available — the conversation was not found or you are not authorized.`,untitled:`(untitled)`,summary:`{{turns}} turn(s) · {{messages}} msgs · {{tokens}} tok · {{seconds}}s LLM`,allLive:`All {{count}} attempted change(s) are live — nothing evaporated.`,discrepancies:`{{count}} discrepancy(ies) — what the chat said doesn't match what's live.`,orphanedTitle:`Proposed but never applied`,orphanedHint:`A confirm card the agent proposed but no later turn applied — the change silently evaporated.`,missingTitle:`Claimed but missing`,missingHint:`A tool result said it was applied, but the artifact isn't live in sys_metadata.`,toolErrorsTitle:`Tool errors`,toolErrorsHint:`Tool calls that returned an error during the build.`,verifyTitle:`Build check (verify_build)`,yourApp:`Your app:`,noIssues:`0 issues`,issueCount:`{{count}} issue(s)`,platformNoise:`{{count}} platform sys_* finding(s) hidden`,pendingActions:`Pending actions`,timeline:`Timeline ({{count}})`},newChat:`New`,searchChats:`Search chats…`,noChatsYet:`No chats yet`,noChatsDescription:`Start a new conversation to see it here.`,noMatchingChats:`No matching chats.`,newConversation:`New conversation`,renameConversation:`Rename conversation`,deleteConversation:`Delete conversation`,saveRename:`Save rename`,cancelRename:`Cancel rename`,loadingHistory:`Loading conversation history…`,conversationReady:`Conversation ready`,preparingConversation:`Preparing a new conversation`,offlineDemoMode:`Offline demo mode — agent list unavailable`,sendFailedRateLimited:`You're sending messages too quickly. Your message is kept below — wait a moment and try again.`,sendFailedGeneric:`Couldn't send your message. It's kept below — please try again.`,askAgent:`Ask {{agent}}…`,assistant:`Assistant`,liveCanvas:`Live preview — {{app}} (draft)`,liveCanvasUnlisted:`Live app — {{app}} (unlisted until published)`,loadingAgents:`Loading agents…`,askAnything:`Ask anything…`,emptyTitle:`Start a conversation`,emptyDescription:`Ask anything — the assistant has access to your current app context.`,switchAssistant:`Switch assistant`,chooseAgent:`Choose assistant…`,empty:{build:{title:`Build with AI`,description:`Describe an app in plain language — I draft the objects, screens and sample data, then you review and publish.`},ask:{title:`Ask your data`,description:`Ask questions about your records — counts, lists, and summaries across the data you can access.`},editApp:{title:`Editing “{{app}}”`,titleGeneric:`Edit this app`,description:`What would you like to change? I’ll modify this app in place — add a field, object, view or dashboard, or adjust what’s already there.`}},clearConversation:`Clear`,sendHint:`to send`,agentActivity:`Agent activity`,toolCompleted:`Completed`,toolRunning:`Running`,toolAwaitingApproval:`Awaiting approval`,toolFailed:`Failed`,toolDetailsHidden:`Tool inputs and raw results are hidden in this view.`,copy:`Copy`,copied:`Copied`,regenerate:`Regenerate`,model:`Model`,submit:`Submit`,uploadFiles:`Upload files`,stopResponse:`Stop response`,trace:`trace`,viewTrace:`View trace`,nextSteps:`What's next`,publishDrafts:`Publish`,publishOk:`Published — objects are now live.`,seedWarn:`Published, but some sample data failed to load.`,openBuiltApp:`Open app`,designBuiltApp:`Design in Studio`,previewDraft:`Preview`,previewApp:`Preview app`,resizeSplit:`Resize chat and preview`,hideChats:`Hide chats`,showChats:`Show chats`,planTitle:`Proposed plan`,planQuestions:`Confirm before building`,planAssumptions:`Assumptions`,planApproveHint:`Reply to approve or adjust this plan.`,planApprove:`Build it`,planAdjust:`Adjust`,planApproveMessage:`Looks good — build it as proposed.`,planApproveDefaultsMessage:`Build it with your best assumptions; use sensible defaults for the open questions.`,planAnswerMessage:`For "{{question}}", go with: {{option}}.`,changesTitle:`Confirm changes`,changesConfirmed:`Confirmed`,changesConfirm:`Confirm`,changesConfirmHint:`Reply to confirm or adjust this change.`,changesApplying:`Applying…`,changesApplied:`Applied`,changesDrafted:`Saved as draft`,changesFailed:`Not applied`,discussing:`Discussing: {{target}}`,changesConfirmMessage:`Confirm — apply the change you just proposed.`,changeVerb:{createObject:`Create object`,addField:`Add field`,modifyField:`Modify field`,deleteField:`Delete field`,createMetadata:`Create`,updateMetadata:`Modify`,createSeed:`Generate sample data`,createPackage:`Create app package`},justNow:`just now`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`,agentLabels:{ask:`Ask`,build:`Build`,dataChat:`Assistant`,metadataAssistant:`Metadata Assistant`},suggestions:{dataChat:{userCount:`How many users are in the system? List their emails.`,recentRecords:`List the 5 most recently created records.`,recordCounts:`Count records for each object.`},metadataAssistant:{buildCrm:`Build a sales CRM — customers, contacts, and deals with a stage field, plus a dashboard that totals deal value by stage.`,buildApp:`Create a project tracker — projects, tasks with owners and due dates, a board grouped by status, and a calendar of due dates.`,buildFlow:`Design a support desk — tickets with priority and status fields, a board grouped by status, and links to customers.`,buildInventory:`Build an inventory app — products, stock levels, suppliers, and a view that filters the items below their reorder point.`,buildRecruiting:`Make an applicant tracker — candidates, open roles, an interview-stage field, and a board grouped by stage.`},generic:{help:`What can you help me with?`,availableObjects:`List the available data objects.`,recentActivity:`Summarize my recent activity.`},editApp:{addField:`Add a field to one of the objects.`,addObject:`Add a new object and relate it to an existing one.`,addDashboard:`Add a dashboard for the key metrics.`,addSampleData:`Fill the existing objects with realistic sample records so I can demo the app.`}},collapseToDock:`Collapse to side panel`,switchApp:`Switch app`,switchAppLabel:`Build conversations by app`,newApp:`New app`,connectionWaiting:`Waiting for server…`,connectionStalled:`Still working…`,connectionOffline:`Connection lost — reconnecting…`,designingPlan:`Designing your app…`,designingPlanHint:{data:`Mapping out the data you’ll track…`,objects:`Shaping objects and their fields…`,relations:`Connecting related records…`,lookups:`Setting up relationships and lookups…`,views:`Planning the screens and views…`,forms:`Laying out forms and lists…`,defaults:`Adding sensible defaults and validations…`,dashboard:`Sketching a dashboard to track it…`,review:`Double-checking the structure hangs together…`,finalize:`Pulling the plan together…`},planBuilding:`Building…`,planBuilt:`Built`,planDeferred:`Not yet built`,planReady:`The plan is ready. Build it now, or tell me what to adjust.`,published:`Published`,publishFailed:`Publish failed`,unavailableTitle:`AI assistant unavailable`,unavailableDescription:`This deployment doesn't have an AI assistant enabled. Everything else works as usual.`,unavailableError:`Couldn't reach the AI service. It may be temporarily offline — try again, or head back home.`,unavailableRetry:`Try again`,unavailableHome:`Back to home`,dock:{title:`Assistant`,description:`AI assistant chat`,resize:`Resize chat`,collapse:`Collapse chat`,maximize:`Open full page`,open:`Open assistant`},group:{today:`Today`,yesterday:`Yesterday`,previous7Days:`Previous 7 days`,previous30Days:`Previous 30 days`,older:`Older`}},readRate:{ratioTitle:`Unusual read volume in this environment`,ratio:`Reads are running at {{ratio}} rows for every row written. The platform flags anything above {{threshold}}. Nothing is limited or blocked; this is a report so the read pattern can be reviewed.`,noWritesTitle:`Reads with no writes at all in this environment`,noWrites:`Rows are being read while none at all are being written, so the read rate has no upper bound. This is the most severe reading. The platform flags anything above {{threshold}}. Nothing is limited or blocked; this is a report so the read pattern can be reviewed.`},storageUsage:{warningTitle:`Storage is filling up`,warning:`{{used}} MB of {{limit}} MB used. Uploads and imports pause once storage is full.`,blockedTitle:`Storage is full: uploads and imports are paused`,blocked:`{{used}} MB of {{limit}} MB used. Existing data is untouched, and reading, exporting and editing single records still work.`,upgrade:`Upgrade to continue`},errors:{somethingWentWrong:`Something went wrong`,unexpectedError:`An unexpected error occurred while rendering this view.`,tryAgain:`Try Again`,goHome:`Go Home`,errorDetails:`Error Details (dev only)`},notFound:{title:`Page not found`,description:`The URL you followed does not match any view in this app.`,back:`Go back`},theme:{toggle:`Toggle theme`,light:`Light`,dark:`Dark`,system:`System`},objectData:{badge:`Data`,description:`URL-defined data slice — not bound to any saved view.`,filteredBy:`Filtered by`,removeFilter:`Remove filter {{field}}`,saveAsView:`Save as view`,noAccessTitle:`Access denied`,noAccess:`You do not have permission to view this data.`},identityImport:{policyTitle:`Sign-in setup for imported users`,policy:{auto:`Automatic (recommended)`,invite:`Send invitations`,temporary:`Temporary passwords`,none:`No password (identity only)`},policyHint:{auto:`Reachable users get an invitation (email or SMS); anyone we can't reach gets a one-time password, shown ONCE on the result screen. Works with or without an email/SMS service.`,invite:`Every created user gets a set-your-password email (or an invitation SMS for phone-only rows). Requires a configured email/SMS service — unreachable rows fail.`,temporary:`For deployments without email/SMS: every created user gets a one-time password, shown ONCE on the result screen. First sign-in forces a change.`,none:`Users first sign in with a phone OTP, magic link, or password-reset link, then set their own password.`},passwordsNote:`Temporary passwords — shown once, never stored. Save them now; each user must change theirs at first sign-in.`,passwordsMore:`More entries omitted — use the download.`,passwordsDownload:`Download CSV`},objectView:{objectNotFound:`Object Not Found`,objectNotFoundDescription:`The object "{{objectName}}" does not exist in the current configuration.`,objectNotFoundHint:`Check your app navigation settings or select a different object from the sidebar.`,filterOrNotSavable:`This filter uses OR between conditions, which a saved view cannot store yet. It still applies to this list — remove the OR grouping to save it to the view.`,filterNestedNotSavable:`This filter uses nested condition groups, which a saved view cannot store. Flatten it to a single list of conditions to save it to the view.`,systemViewReadonly:`System view defined in code — read-only.`,cannotEditMetaView:`This view is built in and defined in code — it cannot be changed.`,viewConfigPermissionDenied:`View settings apply to everyone who uses this view, so changing them requires the Manage Metadata permission. Ask an administrator to make this change.`,cannotDeleteMetaView:`This view is built in and defined in code — it cannot be deleted.`,expandToPage:`Open as full page`,allRecords:`All Records`,new:`New`,import:`Import`,importTitle:`Import from CSV`,importedToast:`Imported {{count}} row(s).`,importedWithSkipped:`Imported {{ok}} row(s); skipped {{skipped}}.`,configureView:`Configure View`,toolbarEnabledCount:`{{count}} of {{total}} enabled`,searchFields:`Search fields…`,title:`Title`,viewType:`View type`,recordCount:`{{count}} records`,recordCountOne:`{{count}} record`,save:`Save`,discard:`Discard`,createView:`Create View`,createViewDesc:`Pick a view type, then give it a name. You can change every setting afterwards.`,cancel:`Cancel`,create:`Create`,delete:`Delete`,deleteViewTitle:`Delete view`,deleteViewConfirm:`Are you sure you want to delete the view "{{name}}"? This cannot be undone.`,bulkDeleteConfirm:`Delete {{count}} selected records? This cannot be undone.`,duplicateViewName:`A view with this name already exists.`,viewTypeGrid:`Grid`,viewTypeGridDesc:`A spreadsheet-style table of records.`,viewTypeKanban:`Kanban`,viewTypeKanbanDesc:`Cards grouped into columns by a single-select field.`,viewTypeCalendar:`Calendar`,viewTypeCalendarDesc:`Records placed on a monthly calendar by date.`,viewTypeGallery:`Gallery`,viewTypeGalleryDesc:`Large image cards driven by an attachment field.`,viewTypeTimeline:`Timeline`,viewTypeTimelineDesc:`Records along a horizontal time axis.`,viewTypeGantt:`Gantt`,viewTypeGanttDesc:`Project bars with start / end and dependencies.`,viewTypeMap:`Map`,viewTypeMapDesc:`Geographic markers from latitude / longitude fields.`,viewTypeChart:`Chart`,viewTypeChartDesc:`Aggregated bar / line / pie visualisations.`,viewTypeTree:`Tree`,viewTypeTreeDesc:`Nest self-referencing records into a hierarchy by a parent field.`,parentField:`Parent field`,parentFieldHelp:`The field pointing to the parent record (same object) that defines the hierarchy. Only self-referencing fields qualify.`,newView:`New View`,viewName:`Name`,viewNameHelp:`Machine key (snake_case). Auto-filled from the title — edit if you like.`,viewNameRequired:`Enter a key (lowercase letters, numbers, underscore). Not auto-filled for non-Latin titles.`,viewNameInvalid:`Use lowercase letters, numbers and underscores; start with a letter or underscore.`,groupByField:`Group by field`,groupByFieldHelp:`The kanban groups records into columns by this field's values.`,startDateField:`Start date field`,startDateFieldHelp:`The calendar places records on the cell matching this date.`,ganttStartDateFieldHelp:`The left edge of each Gantt bar uses this date.`,ganttEndDateFieldHelp:`The right edge of each Gantt bar uses this date.`,timelineDateFieldHelp:`Records are placed on the timeline by this date.`,titleField:`Title field`,latitudeField:`Latitude field`,latitudeFieldHelp:`Field providing the latitude coordinate (geo fields only).`,longitudeField:`Longitude field`,longitudeFieldHelp:`Field providing the longitude coordinate (geo fields only).`,imageField:`Image field`,imageFieldHelp:`The gallery cover comes from this image or attachment field.`,selectField:`Select field…`,selectOption:`Select…`,noEligibleFieldForType:`No eligible field of this type. Add one to the object first.`,viewTypeUnavailable:`This object has no field that can serve as "{{field}}".`,viewTypeUnavailableShort:`Not supported by this object.`,chartType:`Chart type`,chartTypeHelp:`Determines how the data is rendered.`,chartTypeBar:`Bar chart`,chartTypeLine:`Line chart`,chartTypePie:`Pie chart`,chartTypeArea:`Area chart`,chartTypeScatter:`Scatter chart`,xAxisField:`X-axis field`,xAxisFieldHelp:`The categorical or time dimension.`,yAxisField:`Y-axis field`,yAxisFieldHelp:`The numeric field to aggregate.`,endDateField:`End date field`,ufTabs:`Tabs`,ufAddField:`+ Add filter field…`,ufShowAllRecords:`Show "All records" tab`},localeSwitcher:{label:`Language`}},auth:{login:{title:`Sign in to your account`,description:`Enter your email and password to continue`,emailLabel:`Email`,emailPlaceholder:`name@example.com`,passwordLabel:`Password`,passwordPlaceholder:`Enter your password`,forgotPasswordText:`Forgot password?`,submitButton:`Sign In`,submittingButton:`Signing in…`,noAccountText:`Don't have an account?`,signUpText:`Sign up`,signingIn:`Signing you in…`,ssoHandoff:`Continue to {{target}}`,emailOrPhoneLabel:`Email or phone number`,emailOrPhonePlaceholder:`name@example.com or +1 555 000 0000`,phoneLabel:`Phone number`,phonePlaceholder:`+1 555 000 0000`,otpCodeLabel:`Verification code`,otpCodePlaceholder:`6-digit code`,sendOtpButton:`Get code`,resendOtpCountdownText:`Resend in {seconds}s`,usePhoneOtpText:`Sign in with verification code`,usePasswordSignInText:`Sign in with password instead`,socialButton:`Continue with {provider}`,orText:`or continue with email`,devAdminHint:{title:`Development instance`,body:`Sign in with the seeded dev admin:`,dismiss:`Dismiss`},errors:{invalidCredentials:`Invalid email or password. Please try again.`,emailNotVerified:`Please verify your email address before signing in.`,oauthCallbackFailed:`Single sign-on could not be completed — the sign-in link expired or was already used. Please try again.`}},register:{title:`Create an account`,description:`Create your account to start building.`,nameLabel:`Name`,namePlaceholder:`John Doe`,emailLabel:`Email`,emailPlaceholder:`name@example.com`,passwordLabel:`Password`,passwordPlaceholder:`Create a password (min. 8 characters)`,confirmPasswordLabel:`Confirm Password`,confirmPasswordPlaceholder:`Confirm your password`,passwordMismatchError:`Passwords do not match`,passwordTooShortError:`Password must be at least 8 characters`,submitButton:`Create Account`,submittingButton:`Creating account…`,hasAccountText:`Already have an account?`,signInText:`Sign in`,socialButton:`Sign up with {provider}`,orText:`or continue with email`,errors:{userExists:`An account with this email already exists. Try signing in instead.`,selfRegistrationClosed:`Self-registration is not open on this environment. Ask an administrator for an invitation.`,emailDomainNotAllowed:`This email's domain is not allowed to register here. Use your organization email, or ask an administrator for an invitation.`},verifyInbox:{title:`Check your inbox`,description:`We've sent a verification link to {{email}}. Click the link to activate your account.`,resend:`Resend verification email`,resending:`Sending…`,resent:`Verification email sent.`,backToSignIn:`Back to sign in`}},forgotPassword:{title:`Reset your password`,description:`Enter your email address and we'll send you a link to reset your password`,emailLabel:`Email`,emailPlaceholder:`name@example.com`,submitButton:`Send Reset Link`,submittingButton:`Sending…`,successTitle:`Check your email`,successDescription:`We've sent a password reset link to {email}. Please check your inbox.`,backToSignInText:`Back to sign in`,rememberPasswordText:`Remember your password?`,signInText:`Sign in`,phoneLabel:`Phone number`,phonePlaceholder:`+1 555 000 0000`,otpCodeLabel:`Verification code`,otpCodePlaceholder:`6-digit code`,sendOtpButton:`Get code`,resendOtpCountdownText:`Resend in {seconds}s`,newPasswordLabel:`New password`,newPasswordPlaceholder:`Enter a new password`,resetButton:`Reset Password`,usePhoneResetText:`Reset via SMS code`,useEmailResetText:`Reset via email instead`,phoneSuccessTitle:`Password reset`,phoneSuccessDescription:`Your password has been reset. You can now sign in with your new password.`},resetPassword:{title:`Set a new password`,description:`Choose a password you have not used before.`,newPassword:`New password`,confirmPassword:`Confirm password`,submit:`Update password`,submitting:`Updating…`,success:`Password updated`,failed:`Reset failed`,invalidToken:`This reset link is invalid or has expired.`,missingToken:`Reset link is missing or expired`,passwordsMismatch:`Passwords do not match`,requestNewLink:`Request a new link`},verifyEmail:{title:`Verify your email address`,description:`We sent a verification link to your email address. Please click the link to verify your account.`,sentTo:`Sent to:`,verifyingTitle:`Verifying…`,verifyingDescription:`Hang tight while we confirm your email.`,successTitle:`Email verified`,successDescription:`Your email is confirmed. You can now sign in.`,errorTitle:`Verification failed`,errorDescription:`Verification failed. Please request a new link.`,missingToken:`Verification link is missing a token.`,emailMissing:`Email address is missing`,resendButton:`Resend verification email`,resending:`Sending…`,resent:`Email sent! Check your inbox`,resentSuccess:`Verification email sent!`,resentDescription:`Please check your inbox and click the verification link.`,resendFailed:`Cannot resend verification email`,resendUnavailable:`Email delivery may not be configured for this environment. Contact support if this persists.`,signInLink:`Go to sign in`,backToSignIn:`Back to sign in`,backToLogin:`Back to login`,checkSpam:`Didn't receive the email? Check your spam folder or contact support.`,or:`Or`},setup:{welcomeTitle:`Welcome to ObjectStack`,description:`Create the first owner account to finish setting up this deployment.`,yourName:`Your name`,orgName:`Organization name`,orgNamePlaceholder:`Acme Inc.`,emailLabel:`Email`,emailPlaceholder:`name@example.com`,passwordLabel:`Password`,passwordHint:`Minimum 8 characters`,submit:`Create owner account`,submitting:`Setting up…`,failed:`Setup failed`},device:{title:`Authorize new device`,subtitle:`Approve this device to sign in as {{email}}.`,userCodeLabel:`Device code`,requesterLabel:`Connection request from`,approveWarning:`Only approve if you started this connection yourself a moment ago. Once approved, this runtime can access your organization's private packages.`,loggedInAs:`Signed in as {{email}}`,approve:`Approve device`,approving:`Approving…`,approvedTitle:`Device authorized`,approvedDescription:`You can return to the device — it should sign in shortly.`,approveSuccess:`Device authorized`,approveSuccessDescription:`You can close this window.`,approveFailed:`Approval failed`,deny:`Deny request`,denying:`Denying…`,deniedTitle:`Access denied`,deniedDescription:`The device will not be granted access.`,denyFailed:`Failed to deny request`,invalidTitle:`Invalid device link`,invalidDescription:`No device code was provided in the URL.`,disabledTitle:`Device authorization not enabled`,disabledDescription:`This deployment does not have device authorization enabled, so this device cannot be approved here.`,loading:`Loading…`,cancel:`Cancel`},shell:{tenantHostHint:`You are signing in to this workspace`},setPassword:{title:`Set a recovery password`,description:`You signed in via single sign-on. Set a local password so you can still sign in to this environment directly if SSO ever becomes unavailable.`,email:`Email`,newPassword:`New password`,confirmPassword:`Confirm password`,submit:`Set password`,submitting:`Saving…`,success:`Local password set`,failed:`Could not set password`,passwordsMismatch:`Passwords do not match`,noSession:`Your session has expired.`,backToSignIn:`Sign in again`},layout:{headline:`Build powerful business applications, faster.`,subhead:`The universal platform for enterprise data management, workflows, and analytics.`},remediation:{signOut:`Sign out instead`,password:{title:`Your password has expired`,fallbackMessage:`Please set a new password to continue.`,current:`Current password`,next:`New password`,confirm:`Confirm new password`,submit:`Change password & continue`,submitting:`Updating…`,mismatch:`New passwords do not match.`,failed:`Could not change password.`},mfa:{title:`Set up two-factor authentication`,fallbackMessage:`Your organization requires an authenticator app to continue.`,confirmPassword:`Confirm your password`,continue:`Continue`,preparing:`Preparing…`,enrollFailed:`Could not start enrollment.`,scanTitle:`Scan with your authenticator`,scanBody:`Scan this QR code with Google Authenticator, 1Password, Authy, etc., then enter the 6-digit code.`,backupTitle:`Save your backup codes`,backupBody:`Store these somewhere safe — each can be used once if you lose your device.`,codeLabel:`6-digit code`,verify:`Verify & continue`,verifying:`Verifying…`,invalidCode:`Invalid code. Try again.`}}},oauth:{consent:{title:`{{appName}} wants to access your account`,request:`{{appName}} is requesting permission{{suffix}}.`,unknownApp:`an application`,willAllow:`This app will be able to:`,scope:{openid:`Confirm your identity`,profile:`Read your basic profile (name, picture)`,email:`Read your email address`,offlineAccess:`Stay signed in (refresh access)`},deny:`Deny`,authorize:`Authorize`,submitting:`Authorizing…`,granted:`Access granted`,denied:`Access denied`,noRedirect:`No redirect URL returned by the server.`,failed:`Consent failed`,footer:`You can revoke access at any time from your account settings.`}},profile:{title:`Profile`,subtitle:`Manage your account settings`,saving:`Saving…`,avatar:{upload:`Upload`,replace:`Replace`,remove:`Remove`},info:{title:`Personal Information`,description:`Update your name and view account details`,saved:`Profile updated successfully.`,name:`Name`,email:`Email`,emailImmutable:`Email cannot be changed.`,role:`Role`,save:`Save Changes`},language:{title:`Language`,description:`The language used for notifications and messages sent to you. The interface language is chosen separately, from the globe menu.`,label:`Preferred language`,systemDefault:`Use the deployment default`,save:`Save`,saved:`Language preference updated.`,readOnly:`Your administrator manages the language for your account.`},password:{changeTitle:`Change Password`,setTitle:`Set Local Password`,changeDescription:`Update the password you use to sign in to this environment.`,setDescription:`You signed in via single sign-on. Set a local password to also sign in with email and password on this environment.`,current:`Current password`,new:`New password`,password:`Password`,confirm:`Confirm password`,tooShort:`Password must be at least 8 characters`,mismatch:`Passwords do not match`,enterCurrent:`Enter your current password`,changed:`Password changed.`,localSet:`Local password set. You can now sign in with email and password on this environment.`,changeAction:`Change password`,setAction:`Set password`}},errors:{networkError:`Network error. Please check your connection.`,serverError:`Server error. Please try again later.`,notFound:`Resource not found.`,unauthorized:`You are not authorized to perform this action.`,forbidden:`Access denied.`,timeout:`Request timed out. Please try again.`,unknown:`An unexpected error occurred.`},workspace:{label:`Workspaces`,default:`My Workspace`,switch:`Switch workspace`,createTitle:`Create a workspace`,createDescription:`A workspace is a shared space for your team to collaborate.`,createButton:`Create workspace`,nameLabel:`Workspace name`,namePlaceholder:`e.g., Acme Inc`,slugLabel:`URL slug`,slugHint:`Used in URLs. Only lowercase letters, numbers, and hyphens.`,invite:`Invite member`,members:`Members`,settings:`Workspace settings`,multiOrgDisabled:`Creating new organizations is disabled on this instance.`,createFailed:`Failed to create workspace`},help:{onThisPage:`On this page`,appDocs:`This app's docs`,allDocs:`All documentation`,keyboardShortcuts:`Keyboard shortcuts`,onlineDocs:`Online documentation`},sidebar:{settings:`Settings`,helpTooltip:`Help & Documentation`,activityFeed:`Activity feed`,notifications:`Notifications`,approvals:`Approvals`,inbox:`Inbox`,inboxAriaLabel:`Open inbox`,area:`Area`,scope:`Scope`,packageManagement:`Package management`,searchNavigation:`Search navigation…`,recent:`Recent`,favorites:`Favorites`,starred:`Starred`,removeFromFavorites:`Remove {{name}} from favorites`},topbar:{aiAssistant:`AI Assistant`,designInStudio:`Design in Studio`,openAssistant:`Open {{name}} assistant`,offline:`Offline`,usersOnline:`Users currently online`,switchView:`Switch view`,switchObject:`Switch Object`,connection:{connected:`Connected`,connecting:`Connecting…`,reconnecting:`Reconnecting…`,disconnected:`Disconnected`,error:`Connection Error`},stage:{preview:`Preview`,beta:`Beta`,tooltip:`This platform is in preview — features may change.`}},home:{title:`Home`,nav:`Home`,allApps:`All Applications`,yourApps:`Your apps`,showMoreApps:`More`,showLess:`Show less`,continueEmpty:`Items you open will show up here.`,actionCenter:{title:`Needs your attention`,empty:`You're all caught up`},greetingMorning:`Good morning`,greetingAfternoon:`Good afternoon`,greetingEvening:`Good evening`,greetingNight:`Working late`,heroTagline:`Pick up where you left off, or explore something new.`,build:{title:`Build an app`,subtitle:`Start from scratch — design objects, forms, automations and interfaces.`,noCapability:`Building apps isn't available in this workspace — it requires the “Manage Metadata” permission, which your account doesn't have.`},template:{title:`Start with a template`,subtitle:`Install a template app from the marketplace and customize it.`,marketplaceDisabled:`This runtime has no app marketplace configured, so there are no templates to install here.`},open:`Open`,loading:`Loading workspace…`,welcome:`Build your business system with AI`,welcomeDescription:`Describe your business in one sentence — AI generates the objects, screens, APIs and agent tools. Or start from scratch.`,welcomeAdminDescription:`Describe your business in one sentence — AI generates the objects, screens, APIs and agent tools. Or set things up yourself from the menu on the left.`,welcomeAdminDescriptionNoBuild:`Set up your first application from the Administration menu on the left. Once you have data, the AI assistant can help you explore it.`,welcomeAdminDescriptionNoAi:`Set up your first application from the Administration menu on the left.`,noAppsTitle:`No applications yet`,noAppsDescription:`Your workspace is being set up — apps your admin shares with you will show up here.`,buildWithAI:`Build with AI`,askAI:`Ask AI`,recoveryReminder:{message:`Set a recovery password so you can still sign in if single sign-on is ever unavailable.`,cta:`Set password`,dismiss:`Dismiss`},pendingDrafts:{message:`You have {{count}} unpublished change(s) — publish to make them live.`,cta:`Publish`,publishing:`Publishing…`,published:`Published! Your changes are live.`,publishFailed:`Publish failed`,nothing:`Nothing to publish.`,probeWarn:`Published, but verification found problems.`,seedWarn:`Published, but some sample data failed to load.`,publishedVerified:`Published & verified — {{count}} sample row(s) live.`,capabilityWarn:`Authoring check: {{count}} capability reference(s) resolve nowhere.`},createFirstApp:`Create app manually`,systemSettings:`System Settings`,browseMarketplace:`Browse App Marketplace`,quickActions:{title:`Quick Actions`,manageObjects:`Manage Objects`,manageObjectsDesc:`Configure data models`,systemSettings:`System Settings`,systemSettingsDesc:`Configure your workspace`},recentApps:{title:`Recently Accessed`,itemType:{object:`Object`,dashboard:`Dashboard`,page:`Page`,report:`Report`,record:`Record`,metadata:`Metadata`}},starredApps:{title:`Starred`},gettingStarted:{title:`Make this home yours`,description:`Star an app to pin it here for one-click access. Anything you open will show up under Recently Accessed automatically.`,cta:`Browse all applications`},appCard:{noDescription:`No description`,default:`Default`}},layout:{appSwitcher:{home:`Home`,switchApplication:`Switch Application`,appsAvailable:`{{count}} apps available`,addApp:`Add App`,editApp:`Edit App`,editNavigation:`Edit Navigation`,manageAllApps:`Manage All Apps`,systemConsole:`System Console`,noAppsConfigured:`No apps configured`},systemNav:{systemSettings:`System Settings`,applications:`Applications`,appMarketplace:`App Marketplace`,objectManager:`Object Manager`,users:`Users`,organizations:`Organizations`,roles:`Roles`,configuration:`Configuration`,administration:`Administration`,datasources:`Datasources`,documentation:`Documentation`},activityFeed:{title:`Recent Activity`,filter:`Filter`,empty:`No recent activity`,viewAll:`View all activity`,ariaLabel:`Activity feed`,typeCreate:`Create`,typeUpdate:`Update`,typeDelete:`Delete`,typeComment:`Comment`,typeSystem:`System`,relativeJustNow:`just now`,relativeSecondsAgo:`{{count}}s ago`,relativeMinutesAgo:`{{count}}m ago`,relativeHoursAgo:`{{count}}h ago`,relativeDaysAgo:`{{count}}d ago`},metadata:{label:`Metadata`,toggleTitle:`Toggle Metadata Inspector`,panelTitle:`Metadata Inspector`,jsonBadge:`JSON`,copyJson:`Copy JSON`}},search:{title:`Search`,back:`Back`,placeholder:`Search objects, dashboards, pages, reports…`,inputAriaLabel:`Search objects, dashboards, pages, reports`,resultsCount:`{{count}} result for "{{query}}"`,resultsCountPlural:`{{count}} results for "{{query}}"`,itemsAvailable:`{{count}} items available`,itemsAvailableOne:`{{count}} item available`,noResults:`No results found`,noResultsHint:`Try adjusting your search terms`,typeObjects:`Objects`,typeDashboards:`Dashboards`,typePages:`Pages`,typeReports:`Reports`,badgeObject:`object`,badgeDashboard:`dashboard`,badgePage:`page`,badgeReport:`report`},empty:{objectNotFound:`Object Not Found`,objectNotFoundDescription:`Object "{{name}}" definition missing. Check your configuration or navigate back to select a valid object.`,interfacePageSourceMissing:`This interface page references "{{name}}", which is not available.`,recordNotFound:`Record not found`,recordNotFoundDescription:`The record you are looking for does not exist or may have been deleted.`,pageNotFound:`Page Not Found`,pageNotFoundDescription:`The page "{{name}}" could not be found. It may have been removed or renamed.`,dashboardNotFound:`Dashboard Not Found`,dashboardNotFoundDescription:`The dashboard "{{name}}" could not be found. It may have been removed or renamed.`,reportNotFound:`Report Not Found`,reportNotFoundDescription:`The report "{{name}}" could not be found. It may have been removed or renamed.`,noAppsConfigured:`No Apps Configured`,noAppsConfiguredDescription:`No applications have been registered. Create your first app or visit System Settings to configure your environment.`,appNotAvailable:`App not available`,appNotAvailableDescription:`This app is not available — try again in a moment.`,appNotFound:`This app can't be opened`,appNotFoundDescription:`The server did not return this app for your account.`,appUnreachable:`Couldn't reach the server`,appUnreachableDescription:`This app could not be checked. Try again in a moment.`,appAccessDenied:`You don't have access to this app`,appAccessDeniedDescription:`This app exists, but your account is not authorized to open it. Ask an administrator to grant you access.`,appAccessDeniedHome:`Back to home`,createFirstApp:`Create Your First App`,systemSettings:`System Settings`,back:`Back`},preview:{empty:{loadFailedTitle:`Draft preview failed to load`,loadFailedDescription:`The draft overlay could not be read. Retry, or check your connection.`,notReadyTitle:`“{{app}}” isn’t in the draft yet`,notReadyDescription:`The build may still be running, or it may have failed before this app was staged. Check the conversation for the build status — this pane refreshes as drafts land.`,nothingTitle:`Nothing to preview yet`,retry:`Retry`},draftBar:{message:`Draft preview — you are seeing unpublished changes. Nothing here is live until you publish.`,messageClean:`Draft preview — no unpublished changes; everything here is already live.`,publish:`Publish`,publishing:`Publishing…`,exit:`Exit preview`,changes:`Changes`,sampleDataTitle:`Sample data appears once you publish`,sampleDataBody:`You’re previewing your app’s structure. Publish to load example records and make it live.`,publishCta:`Publish to see it live`},changes:{title:`Pending changes`,description:`What publishing will change. New items are added; updates overwrite the live version.`,loading:`Loading pending changes…`,loadFailed:`Could not load pending changes:`,empty:`Nothing pending — every draft has been published.`,kindNew:`New`,kindUpdate:`Update`,detailLoading:`Loading detail…`,detailLoadFailed:`Could not load change detail:`,detailNone:`No differences detected — the draft matches the published version.`,detailChangedKeys:`Also changed:`,confirmNote:`Publishing releases all {{count}} pending drafts of this package atomically.`,publishConfirm:`Publish all`,securityBlockTitle:`Publishing will be refused — {{count}} item(s) need a decision first`,securityBlockWhere:`Fix it on the object under Settings → Record sharing, then publish again.`},unpublishedBar:{message:`Unpublished app — fully functional, but only builders can see it. Publish to make it visible to your users.`,publish:`Publish`,publishing:`Publishing…`,published:`Published! The app is now visible to your users.`,publishFailed:`Publish failed`},history:{button:`History`,title:`Build history`,description:`Every change to this app, newest first. Revert any step to undo it — no publish confirmation needed.`,loadFailed:`Could not load history:`,loadFailedUnavailable:`Commit store temporarily unreachable — this read did not happen, so no history is shown. Retry in a moment.`,loading:`Loading history…`,empty:`No history yet for this app.`,revertLabel:`Reverted a change`,applyLabel:`Build change`,revert:`revert`,items:`{{count}} item(s)`,revertAction:`Revert`,reverted:`Reverted — the change has been undone.`,revertFailed:`Revert failed`,revertUnavailable:`Commit store temporarily unreachable — the revert may not have been applied. Reopen this history to check before retrying.`}},actionDialog:{title:`Action Parameters`,description:`Please provide the required information to continue.`,selectPlaceholder:`Select {{label}}`,requiredError:`{{label}} is required`,lookupPlaceholder:`Record id for {{label}}`,lookupHelpText:`No reference object is configured for this parameter, so the record picker is unavailable. Enter a record id, or ask an administrator to fix the action parameter.`,unresolvedParam:`This parameter cannot be shown: the field it is backed by is missing from the object metadata, so the control it needs cannot be built. Ask an administrator to fix the action definition.`,carryOverHint:`Carried over unchanged (read-only)`,cancel:`Cancel`,confirm:`Confirm`,uploading:`Uploading…`},actionConfirm:{title:`Confirm Action`,confirm:`Continue`,cancel:`Cancel`},navigationSync:{addedPage:`Navigation updated: added page "{{name}}"`,addedDashboard:`Navigation updated: added dashboard "{{name}}"`,removedPage:`Navigation updated: removed page "{{name}}"`,removedDashboard:`Navigation updated: removed dashboard "{{name}}"`,renamedPage:`Navigation updated: renamed page "{{oldName}}" → "{{newName}}"`,renamedDashboard:`Navigation updated: renamed dashboard "{{oldName}}" → "{{newName}}"`,undoLabel:`Undo`,undone:`Navigation change undone`,undoFailed:`Failed to undo navigation change`,updateFailed:`Failed to update navigation`},objectActions:{deleteSuccess:`{{label}} deleted successfully`,deleteFailed:`Failed to delete {{label}}`,noRecordId:`No record ID provided`,deleteConfirm:`Are you sure you want to delete this record?`,resetPackageSetConfirm:`This permission set ships with an installed package and cannot be removed. Deleting resets it to the shipped baseline and discards your environment customization. Continue?`,resetPackageSetSuccess:`Permission set reset to its shipped baseline`,bulkDeleteSuccess:`Deleted {{count}} {{label}} records`,bulkDeletePartial:`{{succeeded}} deleted, {{failed}} failed`},objectViewActions:{renameFailed:`Failed to rename view`,deleteFailed:`Failed to delete view`},dashboardActions:{printDialogOpening:`Opening your browser’s print dialog (not a PDF export)`,exportFailed:`Export failed: {{message}}`,forecastSoon:`Forecast view coming soon`},user:{profile:`Profile`,settings:`Settings`,logout:`Log out`,preferences:`Preferences`,theme:`Theme`,language:`Language`},organizations:{mine:`My Workspaces`,create:`Create workspace`,title:`Workspaces`,heading:`Your Workspaces`,subtitle:`Select a workspace to continue, or create a new one.`,searchPlaceholder:`Search for a workspace`,new:`New workspace`,current:`Current workspace`,manage:`Manage`,emptyTitle:`No workspaces yet`,emptyDescription:`Create your first workspace to get started.`,noMatches:`No workspaces match your search.`},organization:{roles:{owner:`Owner`,admin:`Admin`,delegatedAdmin:`Delegated Admin`,member:`Member`},errors:{notAllowedToInvite:`You are not allowed to invite users to this organization`,notAllowedToInviteWithRole:`You are not allowed to invite a user with this role`,alreadyInvited:`This user has already been invited to this organization`,organizationExists:`Organization already exists`,slugTaken:`That URL slug is already taken`,notAllowedToCreate:`You are not allowed to create a new organization`,notTheRecipient:`You are not the recipient of the invitation`,invitationNotFound:`This invitation no longer exists or has expired`,unknown:`Something went wrong. Please try again.`},backToList:`Back to organizations`,notFound:`Organization not found`,notFoundDescription:`This organization does not exist or you do not have access.`,tabs:{members:`Members`,invitations:`Invitations`,settings:`Settings`},members:{title:`Members`,inviteMember:`Invite member`,inviteRestrictedNote:`Only organization admins can invite members.`,removeMember:`Remove member`,removeConfirmTitle:`Remove member?`,removeConfirmDescription:`This will remove {{name}} from the organization. They will lose access immediately.`,removeConfirmAction:`Remove`,memberRemoved:`Member removed`,removeFailed:`Failed to remove member`,roleUpdated:`Role updated`,roleUpdateFailed:`Failed to update role`,memberActions:`Member actions`,loadFailed:`Failed to load members`},invitations:{title:`Invitations`,empty:`No invitations found.`,expiresAt:`Expires`,linkCopied:`Invitation link copied`,copyFailed:`Failed to copy link`,canceled:`Invitation canceled`,cancelFailed:`Failed to cancel invitation`,cancelTitle:`Cancel invitation?`,cancelDescription:`The invitation for {{email}} will be revoked.`,cancelAction:`Cancel invitation`,inviteTitle:`Invite a member`,inviteDescription:`They will receive an invitation to join this organization.`,emailLabel:`Email`,roleLabel:`Role`,placementLabel:`Placement (optional)`,placementDescription:`Applied when the invitation is accepted. Only units and positions you may delegate are listed.`,businessUnitLabel:`Business unit`,businessUnitPlaceholder:`No placement`,positionsLabel:`Positions`,sendInvite:`Send invite`,sentTitle:`Invitation created`,sentDescription:`Share the link below with the invitee. They will need to sign in to accept.`,linkLabel:`Accept link`,invitedAs:`{{email}} invited as {{role}}`,copyLinkLabel:`Copy invitation link`,loadFailed:`Failed to load invitations`,inviteFailed:`Failed to invite member`,status:{all:`All`,pending:`Pending`,accepted:`Accepted`,rejected:`Rejected`,canceled:`Canceled`}},settings:{generalTitle:`General`,generalDescription:`Update your organization information.`,readOnlyNote:`Only owners can change settings.`,nameLabel:`Organization name`,slugLabel:`Slug`,logoLabel:`Logo`,logoUpload:`Upload`,logoReplace:`Replace`,logoClear:`Remove`,logoUploaded:`Logo uploaded — save to apply`,logoUploadFailed:`Failed to upload logo`,save:`Save changes`,saved:`Settings saved`,saveFailed:`Failed to save settings`,leaveTitle:`Leave organization`,leaveDescription:`You will lose access to this organization.`,leaveAction:`Leave`,leaveConfirmTitle:`Leave organization?`,leaveConfirmDescription:`Are you sure you want to leave {{name}}? You will lose access immediately.`,leaveConfirmAction:`Leave`,leftOrg:`You have left the organization`,leaveFailed:`Failed to leave organization`,dangerZone:`Danger zone`,deleteTitle:`Delete organization`,deleteDescription:`Permanently delete this organization and all its data.`,deleteAction:`Delete`,deleteConfirmTitle:`Delete organization?`,deleteConfirmDescription:`This action is irreversible. All data will be permanently deleted. Type the organization slug to confirm.`,deleteConfirmSlugLabel:`Type "{{slug}}" to confirm`,deleteConfirmAction:`Delete organization`,deleted:`Organization deleted`,deleteFailed:`Failed to delete organization`},accept:{title:`You have been invited`,description:`You have been invited to join {{orgName}} as {{role}}.`,errorTitle:`Invitation unavailable`,goToOrgs:`Go to organizations`,loading:`Loading invitation…`,organization:`Organization`,role:`Role`,expiresAt:`Expires`,accept:`Accept invitation`,accepted:`Invitation accepted`,acceptFailed:`Failed to accept invitation`,decline:`Decline`,declined:`Invitation declined`,declineFailed:`Failed to decline invitation`},current:{label:`Current organization`},switcher:{label:`Switch organization`,groupLabel:`Working organization`,groupHint:`New records are created here. Views show data from all your organizations.`,manageMembers:`Manage members`}},notifications:{regionLabel:`Notifications`,empty:`No notifications`,emptyUnread:`You're all caught up`,filterUnread:`Unread`,filterAll:`All`,markAllRead:`Mark all read`,viewAll:`View all notifications`,groupCount:`{{count}} notifications`,groupUnread:`{{count}} unread`,groupMarkRead:`Mark read`,groupMarkReadTitle:`Mark all of this type read`,approvalsPending:`{{count}} pending approvals`,viewApprovals:`View approvals`,noPendingApprovals:`No pending approvals`,openApprovalsInbox:`Open Approvals Inbox`,badgeTotal:`{{total}} total`,badgeNotifications:`{{unread}} notifications`,badgeApprovals:`{{approvals}} pending approvals`,arrivalMany:`{{count}} new messages`,arrivalRepeats:`{{count}} new messages on this topic`,arrivalOpen:`View`,toastEnabled:`In-app alerts`,desktopEnabled:`Desktop notifications`,desktopBlocked:`Blocked. Allow notifications for this site in your browser settings.`,desktopUnsupported:`This browser does not support desktop notifications.`},publicForm:{submit:`Submit`,submitting:`Submitting…`,submitAnother:`Submit another response`,poweredBy:`Powered by ObjectStack`,secureNotice:`Your information is transmitted securely and only used to respond to your request.`,thankYouTitle:`Thank you!`,thankYouMessage:`Your submission has been received successfully.`,redirecting:`Redirecting in {{seconds}} seconds…`,redirectPending:`Redirecting…`,unavailableTitle:`Form unavailable`,unavailableDescription:`No public form is available at this URL. Make sure the underlying view has anonymous sharing enabled and matches this slug.`,tryDemo:`Try the demo`,retry:`Retry`,loading:`Loading form…`,requiredHint:`* Required field`,requiredFields:`Required: {{fields}}`,consentLabelDefault:`I agree to the privacy policy and consent to my data being processed for this request.`,consentLink:`Privacy policy`,consentRequired:`Please accept the privacy policy to continue.`,rateLimited:`Please take a moment to review your answers before submitting.`,redirectBlocked:`Submission accepted, but the redirect URL was blocked for security.`},connectAgent:{disabled:{title:`MCP is disabled on this deployment`,body:`The MCP surface is off (OS_MCP_SERVER_ENABLED=false), so there is nothing to connect. Ask your operator to re-enable it.`},url:{title:`This environment's MCP endpoint`,body:`Any MCP-capable AI client connects with this URL. Identity is self-serve: the deployment is its own OAuth 2.1 authorization server, so interactive clients just open a browser login — you connect as yourself, and every call runs under your own permissions and row-level security.`,downloadSkill:`Download SKILL.md`,skillHint:`The portable agent skill: teaches any skills-capable agent how to work with this environment.`},claude:{body:`Settings → Connectors → Add custom connector, then paste this URL. Sign in through the browser when prompted.`,reachability:`claude.ai (web) connects from Anthropic's servers — the deployment must be reachable over public HTTPS. Claude Desktop and local clients also reach intranet deployments.`},claudeCode:{body:`One command — the OAuth login opens automatically on first use:`,plugin:`Or install the official plugin (adds the ObjectStack skill and a guided /objectstack:connect command):`},cursor:{addButton:`Add to Cursor`,body:`Use the one-click button, or add this to .cursor/mcp.json:`},vscode:{body:`Add to .vscode/mcp.json (or via the MCP: Add Server command):`},codex:{body:`Add to ~/.codex/config.toml. If your Codex version lacks the OAuth flow, use an API key header instead (see below):`},apiKey:{title:`API keys`,badge:`headless`,body:`For CI, scripts, and agents without a browser. The key acts as you — treat it like a password. It is shown ONCE.`,namePlaceholder:`Key name (e.g. ci-agent)`,mint:`Create key`,minting:`Creating…`,showOnce:`Key "{{name}}" created — copy it now, it will not be shown again:`,done:`Done — hide it`}},excelImport:{noImportableFields:`That object has no importable fields.`,schemaReadFailed:`Could not read the object schema.`,imported:`Imported {{count}} row(s) into {{object}}.`,importFrom:`Import the real rows from`,into:`into`,opening:`Opening…`,importAction:`Import`,dismiss:`Dismiss`},cloudOnboarding:{hintCreate:`Spin up your first environment — a private workspace with its own URL, database, and plan. Building happens inside it.`,hintReady:`Your production environment is ready. Open it to build and run your apps — that all happens inside the environment.`,createEnvironment:`Create your environment`,openProduction:`Open Production`,manageEnvironments:`Manage environments`},cloudPlanStatus:{current:`Current plan`},ai:{nlQuery:{placeholder:`Ask a question about your data…`,ask:`Ask`,results:`Results`,match:`{{percent}} match`,simulatedSummary:`Results for: {{query}}`,noResults:`No matching records found`,recentQueries:`Recent Queries`},formAssist:{title:`AI Suggestions`,suggestionCount:`{{count}} suggestions`,suggestionCountOne:`{{count}} suggestion`,applyAll:`Apply All`,confidence:`{{percent}} confidence`,appliedCount:`{{count}} suggestions applied`,appliedCountOne:`{{count}} suggestion applied`},recommendations:{title:`Recommendations`,generating:`Generating recommendations…`,empty:`No recommendations available`}},aiApprovals:{title:`AI Approvals`,description:`Actions an AI agent proposed that need a human review before execution.`,tabPending:`Pending`,tabDecided:`Decided`,tabAll:`All`,statusPending:`Pending`,statusApproved:`Approved`,statusExecuted:`Executed`,statusFailed:`Failed`,statusRejected:`Rejected`,colTool:`Tool`,colAction:`Action`,colObject:`Object`,colStatus:`Status`,colProposed:`Proposed`,colDecision:`Decision`,emptyTitle:`No actions waiting`,emptyDescription:`When the AI proposes a sensitive action it will appear here for review.`,view:`View`,approve:`Approve`,reject:`Reject`,working:`Working…`,approveAndExecute:`Approve & Execute`,outcomeApprove:`Approve for {{id}}: {{message}}`,outcomeReject:`Reject for {{id}}: {{message}}`,outcomeExecuteFailed:`Action failed during execution`,drawerFallbackTitle:`Pending action`,drawerSubtitle:`Tool {{tool}} on {{object}}`,fieldProposedBy:`Proposed by`,fieldDecidedBy:`Decided by`,fieldConversation:`Conversation`,fieldToolInput:`Tool input`,fieldResult:`Result`,fieldError:`Error`,fieldRejectionReason:`Rejection reason`,rejectTitle:`Reject this action?`,rejectBody:`The reason is shown back to the AI so it can adjust its next response.`,rejectPlaceholder:`Optional reason (e.g. 'Wrong record id — please confirm with the user first.')`},aiModelStatus:{summary:`Build / Ask uses {{conversational}} ({{conversationalSource}}); structured uses {{structured}} ({{structuredSource}}).`,summaryRouting:`Routing policy: free plans → {{free}}, paid plans → {{paid}}.`,modelUnknown:`unknown`,sourceUnknown:`not reported by the adapter`,rowConversational:`Build / Ask model`,rowStructured:`Structured (blueprint / seed)`,rowReasoning:`Reasoning effort`,readFailed:`Couldn't read the effective AI model. This environment may not run an AI service, or you may lack the ai:read permission.`,readFailedWithStatus:`Couldn't read the effective AI model (HTTP {{status}}). This environment may not run an AI service, or you may lack the ai:read permission.`,overridesInEffect:`Overrides in effect: `,noOverrides:`none — running the deployed code defaults.`,adapter:`Adapter: `,sourceCodeDefault:`code default (no env override)`,sourceInherits:`same as build/ask`,sourcePinned:`pinned by {{source}}`},chatbot:{tool:{aggregate_data:`Aggregate data`,get_record:`Get record`,query_data:`Query data`,query_records:`Query records`,search_knowledge:`Search knowledge`,visualize_data:`Visualize data`,add_field:`Add field`,apply_blueprint:`Apply blueprint`,apply_edit:`Apply edit`,create_metadata:`Create metadata`,create_object:`Create object`,create_package:`Create package`,create_seed:`Create seed`,delete_field:`Delete field`,describe_metadata:`Describe metadata`,describe_object:`Describe object`,get_active_package:`Get active package`,get_authoring_rules:`Get authoring rules`,get_metadata_schema:`Get metadata schema`,get_package:`Get package`,list_metadata:`List metadata`,list_objects:`List objects`,list_packages:`List packages`,load_tools:`Load tools`,modify_field:`Modify field`,open_record:`Open record`,propose_blueprint:`Propose blueprint`,set_active_package:`Set active package`,suggest_builder:`Suggest builder`,test_flow:`Test flow`,todo_write:`Todo write`,toggle_flow:`Toggle flow`,update_metadata:`Update metadata`,validate_expression:`Validate expression`,verify_build:`Verify build`},toolState:{agentActivity:`Agent activity`,pending:`Pending`,running:`Running`,awaitingApproval:`Awaiting approval`,responded:`Responded`,completed:`Completed`,error:`Error`,denied:`Denied`,failed:`Failed`},plan:{countObjects:`{{count}} objects`,countObjects_one:`{{count}} object`,countViews:`{{count}} views`,countViews_one:`{{count}} view`,countDashboards:`{{count}} dashboards`,countDashboards_one:`{{count}} dashboard`,countSeedData:`sample data`},build:{building:`Building {{app}}…`,built:`Built {{app}}`,appFallback:`your app`,addingSampleData:`adding sample data`,group:{object:`Objects`,view:`Views`,dashboard:`Dashboards`,app:`App`,seed:`Sample data`},moreArtifacts:`+{{n}} more`}},chatbotError:{title:`Response failed`,fallbackDetail:`Something went wrong. Please try again.`,details:`Details`,hide:`Hide`,retry:`Retry`},chatbotQuota:{title:`Upgrade needed`,fallbackMessage:`You have reached your AI quota.`,buyCredits:`Buy a credit pack`,upgradePlan:`Upgrade plan`},environment:{addEnvironment:`Add environment`,setUpProduction:`Set up your production environment`,addDevelopment:`Add development environment`,entitlement:{productionLimitTitle:`You already have your production environment`,productionLimitBody:`Each organization includes exactly one production environment. Create a separate organization for another, or contact us about an Enterprise arrangement.`,planLockedTitle:`Development environments are a paid feature`,planLockedBody:`Your {{plan}} includes one production environment. Upgrade to add development environments — build in dev, then publish to production.`,limitTitle:`Development environment limit reached`,limitBody:`Capacity scales with AI seats. Add an AI seat, or archive an unused development environment to free one up.`,limitBodyWithCount:`You are using {{used}} of {{limit}} development environments. Capacity scales with AI seats — add an AI seat, or archive an unused development environment to free one up.`,freePlan:`free plan`,namedPlan:`{{plan}} plan`,upgradeCta:`Upgrade plan`,contactSalesCta:`Contact sales`}},cloudConnection:{checking:`Checking connection…`,retry:`Try again`,errors:{expired:`The request expired before it was approved. Start again.`,accessDenied:`The connection request was denied. Start again.`,bindFailed:`Binding failed.`,deviceCodeFailed:`Device code request failed.`},waiting:{popupOpened:`Approve the connection in the window that just opened — this page updates by itself.`,polling:`Waiting for approval in the cloud console…`,openApproval:`Open the approval page`,copy:`Copy`,copied:`Copied`,codePrefilled:`The code is pre-filled on the approval page.`,openItHere:`Window did not appear? Open it here`,cancel:`Cancel`},bound:{title:`Connected to ObjectStack Cloud`,runtime:`Runtime`,organization:`Organization`,approvedBy:`Approved by`,runtimeId:`Runtime ID`,environment:`Environment`,since:`Since`,privatePackages:`Your organization's private packages now appear in the Marketplace under “Your organization”.`,disconnect:`Disconnect`},unbound:{title:`Not connected`,body:`Connect this runtime to an ObjectStack control plane to browse your organization's private packages and install them here. Approval is a single click in your cloud account — no ids or credentials are typed into this page.`,connect:`Connect`}},marketplace:{title:`App Marketplace`,subtitle:`Browse approved apps published to the ObjectStack catalog. Click an app to view details and install it into one of your environments.`,searchPlaceholder:`Search apps by name or app ID…`,searchAria:`Search marketplace apps`,installed:`Installed`,installedCount:`Installed ({{count}})`,refresh:`Refresh`,all:`All`,noApprovedYet:`No apps have been approved for the marketplace yet.`,noMatchFilters:`No apps match your filters.`,noDescription:`No description provided.`,back:`Back to marketplace`,installedTitle:`Installed Apps`,installedSubtitle:`Marketplace packages currently installed into this runtime's kernel. Cached manifests live in <code>.objectstack/installed-packages/</code> and survive restarts.`,installedEmpty:`No marketplace apps installed in this runtime yet.`,browseLink:`Browse the marketplace →`,installedAdditiveNote:`<strong>Note:</strong> The kernel API is additive only — uninstall removes the on-disk manifest so the package won't load on next boot, but the running kernel keeps the app registered until you restart the runtime.`,installedAt:`Installed {{when}}`,installedBy:`by {{user}}`,installedPackageId:`package`,cachedAs:`Cached as <code>{{path}}</code>`,versionBadge:`v{{version}}`,installedBadge:`Installed v{{version}}`,load:{failed:`Failed to load marketplace`,failedHintConfigured:`This runtime reaches the marketplace through the control plane at {{url}}. Check that it is online and reachable from here.`,failedHintSameOrigin:`This runtime serves the marketplace catalog itself. Check that the runtime is online.`,packageFailed:`Failed to load package`,notFound:`Not found.`},disabled:{title:`App Marketplace is turned off`,description:`This runtime has no marketplace configured, so there is nothing to browse or install from here.`,hint:`That is the expected state when the runtime is started with <code>OS_CLOUD_URL=off</code> (or <code>none</code>, <code>local</code>, <code>disabled</code>). To turn the marketplace on, point <code>OS_CLOUD_URL</code> at a control plane and restart the runtime.`},detail:{homepage:`Homepage`,installedV:`Installed · v{{version}}`,about:`About`,noReadme:`No readme provided.`,versions:`Versions`,noApprovedVersions:`No approved versions.`,prerelease:`pre`,moreOptions:`More install options`,uninstallFromRuntime:`Uninstall from this runtime`,addSampleData:`Add sample data`,reseedAgain:`Re-seed sample data`,purgeSampleData:`Purge sample data`,purgeConfirm:`Delete all sample records seeded by this package? User-added records will NOT be touched.`,purgeSuccess:`Removed {{count}} sample record(s).`,purgeNoData:`No sample records found to purge.`,reseedQueued:`Sample data will be re-seeded on next environment access.`,reseedLocalSuccess:`Re-seeded sample data: {{inserted}} inserted, {{updated}} updated.`,reseedPartialErrors:`({{count}} record(s) failed to write)`,sampleDataKernelUnavailable:`This control plane has no environment kernel, so sample data cannot be re-seeded or purged from here. Do it from the environment's own runtime.`,updateAvailable:`Update available`},action:{install:`Install`,reinstall:`Reinstall`,working:`Working…`,installToCloud:`Install to cloud…`,installed:`Installed`,installing:`Installing…`,uninstall:`Uninstall`,uninstalling:`Uninstalling…`,details:`Details`,close:`Close`,dismiss:`Dismiss`,openOnCloud:`Open on cloud`,backHome:`Back to home`,updateTo:`Update`},install:{dialogTitle:`Install {{name}}`,dialogDescCurrent:`Install into this environment ({{host}}).`,dialogDescPicker:`Choose an environment to install this app into. You need to be signed into ObjectStack Cloud.`,environment:`Environment`,environmentPlaceholder:`Pick an environment`,includeSampleData:`Include sample data`,noEnvs:`No environments found in your active organization.`,noPermission:`You do not have permission to install apps in any environment. Only organization owners and admins can install — ask your workspace admin.`,signInFirst:`You need to sign into ObjectStack Cloud first. Click "Open on cloud" below.`,success:`Installed successfully. Open the environment to see the new app.`,localSuccess:`Installed v{{version}} to this runtime. "{{name}}" should now appear in the app switcher.`,localManifestConflict:`{{message}}
|
|
2
|
+
Tip: a local app already owns this manifest_id. Remove it from objectstack.config.ts first.`,localUnauthorized:`Sign in to this runtime first, then try again.`,localMarketplaceUnavailable:`This runtime has no OS_CLOUD_URL configured, so the marketplace catalog is unreachable.`,updateTo:`Update → v{{version}}`,installedVersion:`Installed v{{version}}`},org:{heading:`Your organization`,install:`Install`,installed:`Installed {{name}}`,installedBadge:`Installed`,installing:`Installing…`},disclosure:{containsCode:`This package contains code`,reviewed:`Reviewed & approved`,unreviewed:`Not yet reviewed`,signed:`Signed`,grantsIntro:`This package requests:`,notEnforced:`Recorded at install, and re-confirmed if a later version asks for more — but the runtime does not yet restrict the package to this list.`,services:`Platform services`,hooks:`Lifecycle hooks`,network:`Network access`,fs:`Filesystem access`,noPermissions:`Requests no special permissions.`,acknowledge:`I understand this package runs code and grants the permissions above.`,runtime:{node:`In-process · full trust`,sandbox:`Sandboxed`,worker:`Out-of-process`}},suggestedBindings:{promptEveryone:`This app suggests granting "{{set}}" to all signed-in users (the Everyone position).`,promptGuest:`This app suggests granting "{{set}}" to unauthenticated visitors (the Guest position).`,confirm:`Grant`,confirming:`Granting…`,dismiss:`Dismiss`,confirmedToast:`"{{set}}" is now granted to {{anchor}}.`,dismissedToast:`Suggestion for "{{set}}" dismissed.`},uninstall:{confirm:`Uninstall {{manifestId}} v{{version}} from this runtime?
|
|
3
|
+
|
|
4
|
+
The cached manifest will be removed. The app will remain loaded in the running kernel until the next restart.`,successInList:`Removed {{manifestId}}. Restart the runtime to fully unload it from the running kernel.`,successInDetail:`Removed cached manifest for {{manifestId}}. Restart the runtime to fully unload the app from the running kernel.`},accessDenied:{title:`App Marketplace is admin-only`,description:`You don't have permission to install apps in this environment. Ask an owner or admin of this organization for access.`},category:{crm:`CRM`,erp:`ERP`,hr:`Human Resources`,finance:`Finance`,project:`Project Management`,collaboration:`Collaboration`,analytics:`Analytics`,integration:`Integration`,automation:`Automation`,ai:`AI`,security:`Security`,"developer-tools":`Developer Tools`,"ui-theme":`UI Theme`,storage:`Storage`,other:`Other`},relativeTime:{today:`today`,daysAgo:`{{count}}d ago`,monthsAgo:`{{count}}mo ago`,yearsAgo:`{{count}}y ago`}},approvalsInbox:{recordUnresolvable:`This record cannot be opened`,loadMore:`Load more`,loadingMore:`Loading…`,loadedOf:`Loaded {{loaded}} of {{total}}`,actEscalate:`SLA escalated`,systemSlaActor:`System (SLA)`,reassignBtn:`Reassign`,reassignTitle:`Hand this approval to someone else?`,reassignBody:`Your approver slot moves to the person you pick — they are notified and can act immediately.`,reassignTo:`New approver`,reassignToPlaceholder:`Pick a user or type an email / role:<name>`,reassignSuccess:`Handed to {{to}}`,requestInfoBtn:`Request info`,requestInfoTitle:`Ask the requester for more information?`,requestInfoBody:`The request stays pending; the requester is notified and can reply on the thread.`,requestInfoPlaceholder:`What do you need from the requester?`,requestInfoSent:`Sent back to the requester for more information`,remindBtn:`Send reminder`,remindSuccess:`Reminder sent to {{count}} approver(s)`,remindThrottled:`A reminder was sent recently — try again later.`,replyPlaceholder:`Reply on this request…`,slaRemaining:`SLA {{dur}} left`,slaOverdue:`SLA overdue {{dur}}`,actReassign:`Reassigned`,reassignFromTo:`from {{from}} to {{to}}`,actRemind:`Reminder sent`,actRequestInfo:`Requested more info`,actComment:`Commented`,stepProgress:`Approval steps`,prevRequest:`Previous`,nextRequest:`Next`,positionOf:`Request {{index}} of {{total}}`,progressApprovals:`Approvals — {{got}} of {{need}}`,progressGroups:`Sign-off progress — {{got}} of {{need}} groups`,progressEligible:`{{count}} eligible approver(s)`,progressBar:`Decision progress`,declaredActions:`Actions`,attachmentChip:`Attachment`,attachmentOpenFailed:`Could not open the attachment — please try again`,approveOneTitle:`Approve "{{title}}"?`,approveOneBody:`This approves the request with your identity. To add a comment or attachment, open the request instead.`,flowOrigin:`Flow-initiated`,sortBy:`Sort`,sortRecent:`Newest first`,sortOldest:`Oldest first`,sortAmount:`Amount (high→low)`,quickPhrase1:`Approved — meets requirements.`,quickPhrase2:`Approved with conditions — please monitor execution.`,quickPhrase3:`Please add supporting material and resubmit.`,title:`Approvals Inbox`,subtitle:`Review and act on approval requests.`,refresh:`Refresh`,tabMyPending:`My Pending`,tabSubmitted:`Submitted by me`,tabAll:`All`,searchPlaceholder:`Search record, process, requester…`,clearSearch:`Clear search`,statusFilter:`Status`,allStatuses:`All statuses`,processFilter:`Process`,allProcesses:`All processes`,objectFilter:`Object`,allObjects:`All objects`,filterCount:`{{shown}} of {{total}}`,selected:`selected`,actionableCount:`({{count}} actionable)`,selectAll:`Select all`,selectRow:`Select request`,colRequest:`Request`,colRecord:`Record`,colRequester:`Requester`,colStatus:`Status`,colWaiting:`Submitted`,colActions:`Actions`,statusPending:`Pending`,statusApproved:`Approved`,statusRejected:`Rejected`,statusRecalled:`Recalled`,statusReturned:`Returned for revision`,sendBackBtn:`Send back`,sendBackTitle:`Send this request back for revision?`,sendBackBody:`This round ends and the record unlocks so the requester can fix the data. When they resubmit, a fresh approval round opens for all approvers.`,sendBackPlaceholder:`What needs to be fixed before this can be approved?`,sendBackSuccess:`Sent back for revision — the requester can now edit and resubmit`,sendBackAutoRejected:`Revision limit reached — the request was auto-rejected`,actRevise:`Sent back for revision`,actResubmit:`Resubmitted`,roundChip:`Round {{n}}`,returnedHint:`An approver sent this back to you. The record is unlocked — fix the data, then resubmit to start a new approval round.`,resubmitBtn:`Resubmit`,resubmitting:`Resubmitting…`,resubmitSuccess:`Resubmitted — a new approval round has opened`,resubmitPlaceholder:`What did you change?`,editRecordBtn:`Edit record`,abandonTitle:`Abandon this revision?`,abandonBody:`This withdraws the request instead of resubmitting it. The approval ends here.`,emptyTitle:`No requests`,emptyPending:`You're all caught up — nothing is waiting on you.`,emptyOther:`Nothing here yet.`,emptyViewAll:`Browse all requests`,noMatches:`No matches for current filters.`,keyboardHint:`Keyboard: j/k move · Enter open · x select · a approve · r reject`,drawerTitle:`Approval Request`,submittedAgo:`Submitted {{when}}`,completedAt:`Completed {{when}}`,waitingOn:`Waiting on`,approverNameSeparator:`, `,approverUnstaffed:`{{seat}} (no current holder)`,history:`Activity`,noActions:`No actions yet.`,actSubmit:`Submitted`,actApprove:`Approved`,actReject:`Rejected`,actRecall:`Recalled`,overrideActionLabel:`Override {{action}}`,overrideNotice:`You hold no approver slot on this step. Continuing uses your admin override: it finalises the step immediately, bypassing any approver who has not acted. The decision is recorded as an admin override.`,overrideNoticeWho:`You hold no approver slot on this step. Continuing uses your admin override: it finalises the step immediately and bypasses the approvers who have not acted — {{who}}. The decision is recorded as an admin override.`,viaOverrideChip:`Admin override`,viaOverrideHint:`The actor held no approver slot on this step — admitted by the admin-override path.`,rawData:`Raw data (JSON)`,copy:`Copy`,copied:`Copied`,copyFailed:`Copy failed`,overrideActor:`Act as another identity (admin)`,actor:`Actor`,auto:`Auto`,overrideHint:`e.g. role:sales_manager. Leave blank to use the auto-detected identity.`,comment:`Comment (optional)`,approve:`Approve`,approving:`Approving…`,reject:`Reject`,rejecting:`Rejecting…`,recall:`Recall`,recalling:`Recalling…`,cancel:`Cancel`,clear:`Clear`,approveN:`Approve {{count}}`,rejectN:`Reject {{count}}`,bulkApproveTitle:`Approve {{count}} requests?`,bulkApproveBody:`Each request is approved with your identity and its flow continues down the approve branch.`,bulkRejectTitle:`Reject {{count}} requests?`,bulkRejectBody:`This rejects the selected requests and notifies their submitters.`,bulkApproved:`Approved {{count}} requests`,bulkRejected:`Rejected {{count}} requests`,bulkPartial:`{{ok}} succeeded, {{fail}} failed: {{which}}`,rejectOneTitle:`Reject "{{title}}"?`,rejectOneBody:`This rejects the request and notifies the submitter.`,rejectTitle:`Reject this request?`,rejectBody:`This marks the request as rejected and notifies the submitter.`,recallTitle:`Recall this request?`,recallBody:`This withdraws your request. Approvers can no longer act on it, and the record is unlocked.`,inlineApproved:`Approved "{{title}}"`,inlineRejected:`Rejected "{{title}}"`,approvedFinal:`Approved`,approvedWaiting:`Approved — waiting on the remaining approvers`,rejectedToast:`Rejected`,recalledToast:`Request recalled`,whyDisabled:`Only the assigned approvers can act on this request. It is waiting on: {{who}}.`,whyDisabledSubmitter:`You submitted this request, so you can recall it — but only the assigned approvers can approve or reject.`,noActor:`Cannot determine the acting identity`,actionFailed:`Action failed`,loadFailed:`Failed to load request`,recallUnavailable:`Recall is not available on this deployment.`,requestGone:`This request no longer exists. Refresh the list.`,notAllowed:`You are not allowed to perform this action.`,alreadyDecided:`This request was already decided. Refresh the list.`,justNow:`just now`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`},filterBuilder:{where:`Where`,and:`AND`,or:`OR`,clearAll:`Clear all`,selectField:`Select field`,operator:`Operator`,selectValue:`Select value`,value:`Value`,addFilter:`Add filter`,removeCondition:`Remove condition`,trueLabel:`True`,falseLabel:`False`,noResults:`No results`,searchField:`Search {{label}}…`,enterId:`Enter {{label}} id`,addValue:`Type a value, press Enter`,removeValue:`Remove {{value}}`,rangeStart:`From`,rangeEnd:`To`,operators:{equals:`Equals`,not_equals:`Does not equal`,contains:`Contains`,icontains:`Contains (ignore case)`,not_contains:`Does not contain`,is_empty:`Is empty`,is_not_empty:`Is not empty`,greater_than:`Greater than`,less_than:`Less than`,greater_than_or_equal:`Greater than or equal`,less_than_or_equal:`Less than or equal`,before:`Before`,after:`After`,between:`Between`,in:`In`,not_in:`Not in`,starts_with:`Starts with`,ends_with:`Ends with`,is_null:`Is null`,is_not_null:`Is not null`,exists:`Is set`,notExists:`Is not set`}},sortBuilder:{sortBy:`Sort by`,thenBy:`Then by`,selectField:`Select field`,ascending:`A → Z`,descending:`Z → A`,addSort:`Add sort`,removeSort:`Remove sort`},collaboration:{commentCount:`{{count}} comments`,commentCountOne:`{{count}} comment`,resolvedSuffix:` · Resolved`,sortComments:`Sort comments`,sortOldest:`Oldest`,sortNewest:`Newest`,resolve:`Resolve`,reopen:`Reopen`,justNow:`just now`,minutesAgo:`{{count}}m ago`,hoursAgo:`{{count}}h ago`,daysAgo:`{{count}}d ago`,edited:`(edited)`,reactionCount:`{{count}} reactions`,reactionCountOne:`{{count}} reaction`,addThumbsUp:`Add thumbs up`,reply:`Reply`,reactThumbsUp:`React with thumbs up`,reactHeart:`React with heart`,cancelReply:`Cancel reply`,replyingTo:`Replying to {{name}}…`,replyingToComment:`Replying to comment…`,commentPlaceholder:`Add a comment… (use @ to mention)`,send:`Send`,presentUserCount:`{{count}} users present`,presentUserCountOne:`{{count}} user present`,moreUserCount:`{{count}} more users`,moreUserCountOne:`{{count}} more user`,userStatusTitle:`{{name}} ({{status}})`,statusActive:`active`,statusIdle:`idle`,statusAway:`away`},wizard:{missingRequired:`Please complete the required fields: {{fields}}`,back:`Back`,submitting:`Submitting…`,stepFallback:`Step {{n}}`,progressLabel:`Progress`,emptyStep:`No fields configured for this step`},flowRunner:{title:`Input`,submitting:`Submitting…`,saveAndContinue:`Save & Continue`,nextStep:`Saved — next step`,completed:`Flow "{{flow}}" completed`},appManagement:{title:`Applications`,subtitle:`Manage all configured applications`,newApp:`New App`,searchLabel:`Search apps`,searchPlaceholder:`Search apps…`,selectedCount:`{{n}} selected`,bulkEnable:`Enable`,bulkDisable:`Disable`,selectAll:`Select all ({{n}})`,empty:`No apps found.`,defaultBadge:`Default`,active:`Active`,inactive:`Inactive`,selectApp:`Select {{name}}`,openApp:`Open app`,openAppNamed:`Open {{name}}`,editApp:`Edit app`,editAppNamed:`Edit {{name}}`,editWithAi:`Edit with AI`,editWithAiNamed:`Edit {{name}} with AI`,enableApp:`Enable app`,disableApp:`Disable app`,enableAppNamed:`Enable {{name}}`,disableAppNamed:`Disable {{name}}`,setDefault:`Set as default`,setDefaultNamed:`Set {{name}} as default`,deleteApp:`Delete app`,deleteAppNamed:`Delete {{name}}`,confirmDelete:`Click again to confirm delete`,confirmDeleteNamed:`Confirm delete {{name}}`,toast:{noClient:`Cannot reach the metadata service`,unknownError:`unknown error`,appEnabled:`{{name}} enabled`,appDisabled:`{{name}} disabled`,toggleFailed:`Failed to toggle app status: {{reason}}`,setDefaultDone:`{{name}} set as default`,setDefaultFailed:`Failed to set default app: {{reason}}`,appDeleted:`{{name}} deleted`,deleteFailed:`Failed to delete app: {{reason}}`,bulkEnabled:`{{n}} apps enabled`,bulkDisabled:`{{n}} apps disabled`,bulkFailed:`Failed for {{n}}: {{details}}`,bulkFailureEntry:`{{name}} ({{reason}})`,bulkFailureJoiner:`; `,bulkOperationFailed:`Bulk operation failed: {{reason}}`}},packagedAutomation:{title:`Packaged automation`,subtitle:`Flows and actions shipped by installed packages. Turn one off for this deployment, or clone a flow under a new name to customize it. Editing happens in Studio.`,refresh:`Refresh`,flowsHeading:`Packaged flows`,actionsHeading:`Packaged actions`,colFlow:`Flow`,colActivation:`Activation`,colActions:`Actions`,toggleLabel:`Activation for {{label}}`,on:`On`,off:`Off`,clone:`Clone`,cloneTitle:`Clone packaged flow`,cloneBody:`The copy carries the whole definition and takes a new machine name and label. Edit the copy in Studio.`,cloneName:`New machine name`,cloneLabel:`New label`,cancel:`Cancel`,cloneConfirm:`Create clone`,cloneCreated:`Created flow "{{name}}".`,emptyTitle:`No packaged flows`,emptyBody:`No installed package ships an automation flow on this deployment. Flows you author yourself live in Studio.`,loadFailed:`Could not load packaged automation.`,toggleFailedHttp:`Could not change activation (HTTP {{status}}).`,toggleFailed:`Could not change activation.`,cloneFailedHttp:`Could not clone this flow (HTTP {{status}}).`,cloneFailed:`Could not clone this flow.`,actionsSubtitle:`Actions shipped by installed packages. Turn one off for this deployment and it stops running everywhere it is offered. Authoring your own action alongside it stays open in Studio.`,colAction:`Action`,colObject:`Object`,actionToggleLabel:`Activation for {{label}} on {{object}}`,actionsEmptyTitle:`No packaged actions`,actionsEmptyBody:`No installed package declares an action on this deployment. Actions you author yourself live in Studio.`,actionsLoadFailed:`Could not load packaged actions.`},element:{number:{noObject:`No object named: set object or dataSource.object.`}}};export{e as t};
|