@objectstack/console 17.3.0 → 17.4.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.
Files changed (188) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/.objectui-sha +1 -1
  3. package/dist/assets/{ActionResultDialog-CQwenjVA.js → ActionResultDialog-Bsr2GS71.js} +1 -1
  4. package/dist/assets/{AiPendingActionsPage-7gZ8zlOy.js → AiPendingActionsPage-DB-UVcdM.js} +1 -1
  5. package/dist/assets/{ApiConsolePage-DUF0ysH7.js → ApiConsolePage-Bzqo2owc.js} +1 -1
  6. package/dist/assets/{AppDocsIndex-CP_AVG4X.js → AppDocsIndex-KhVqdZ-P.js} +1 -1
  7. package/dist/assets/{AppManagementPage-BJktnoa5.js → AppManagementPage-CsZ0LMQn.js} +1 -1
  8. package/dist/assets/{ApprovalsInboxPage-DlnxY-uy.js → ApprovalsInboxPage-D_LOnhJ7.js} +1 -1
  9. package/dist/assets/{AuditLogPage-DIJPRjji.js → AuditLogPage-B9eqwuzl.js} +1 -1
  10. package/dist/assets/{ComponentNavView-C84QByT7.js → ComponentNavView-DeokLfkW.js} +1 -1
  11. package/dist/assets/{CreateViewDialog-Zbd9Cagm.js → CreateViewDialog-BMdQ4ZYy.js} +1 -1
  12. package/dist/assets/{DashboardView-UyKHklBx.js → DashboardView-DHZboRi8.js} +1 -1
  13. package/dist/assets/{DeveloperHubPage-BRyNdrCJ.js → DeveloperHubPage-C_VYirN0.js} +1 -1
  14. package/dist/assets/{DocPage-Bx8ZXCYt.js → DocPage-_9x-3Dbi.js} +1 -1
  15. package/dist/assets/{DocShell-Ipy_IDvh.js → DocShell-D4dSPfBz.js} +1 -1
  16. package/dist/assets/{DocsIndex-CmY-7OQR.js → DocsIndex-CJVRa_hE.js} +1 -1
  17. package/dist/assets/{DocsLayout-BNsSvaz2.js → DocsLayout-C-tYgUZv.js} +1 -1
  18. package/dist/assets/{DocsSlug-Cb_NMM1k.js → DocsSlug-DmyGpfEy.js} +1 -1
  19. package/dist/assets/{ExpressionProvider-DqGWVuxV.js → ExpressionProvider-B6z09kM6.js} +1 -1
  20. package/dist/assets/{FlowRunsPage-B6ustUgi.js → FlowRunsPage-OjGJi-JU.js} +1 -1
  21. package/dist/assets/{IntegrationsPage-chOxmiyU.js → IntegrationsPage-CrDMDe62.js} +1 -1
  22. package/dist/assets/{InterfaceListPage-DVETnQm5.js → InterfaceListPage-P3y6hqTX.js} +1 -1
  23. package/dist/assets/{MarketplaceInstalledPage-DA5pjhAz.js → MarketplaceInstalledPage-CQek7WnV.js} +1 -1
  24. package/dist/assets/{MarketplacePackagePage-dCIVHBFi.js → MarketplacePackagePage-DL2ivKSc.js} +1 -1
  25. package/dist/assets/{MarketplacePage-wJb6g1p7.js → MarketplacePage-B-6EokyB.js} +1 -1
  26. package/dist/assets/{MetadataInspector-Cu-n1FYz.js → MetadataInspector-IQGUoLyp.js} +1 -1
  27. package/dist/assets/{ObjectDataPage-CP-YSZYQ.js → ObjectDataPage-Bmc3RQhM.js} +1 -1
  28. package/dist/assets/{PageView-B1_ibRuM.js → PageView-DzUZqB_h.js} +1 -1
  29. package/dist/assets/{ProfilePage-DEr5iZVB.js → ProfilePage-NklCqPxc.js} +1 -1
  30. package/dist/assets/{PublicFormsPage-CBcKQbNl.js → PublicFormsPage-CItIvcLQ.js} +1 -1
  31. package/dist/assets/RecordDetailView-XWxuegfV.js +3 -0
  32. package/dist/assets/{RecordFormPage-CGQlYWDk.js → RecordFormPage-B-yrhs7J.js} +1 -1
  33. package/dist/assets/{ReportDefaultInspector-R_p6YStL.js → ReportDefaultInspector-D5Kro5_t.js} +1 -1
  34. package/dist/assets/{ReportView-BTMrtcGH.js → ReportView-COpZ8PQT.js} +1 -1
  35. package/dist/assets/{RuntimeDraftBar-agGU39FL.js → RuntimeDraftBar-CSVtuByp.js} +1 -1
  36. package/dist/assets/{SchemaForm-DJbupOno.js → SchemaForm-DIsxxOZF.js} +1 -1
  37. package/dist/assets/{SearchResultsPage-CHhZUc6L.js → SearchResultsPage-B2r6kgni.js} +1 -1
  38. package/dist/assets/{SettingsHub-BGLR_gS7.js → SettingsHub-DQz2HDtZ.js} +1 -1
  39. package/dist/assets/{SettingsView-Bq-7Zkzs.js → SettingsView-BfOEalDW.js} +1 -1
  40. package/dist/assets/{SkeletonDetail-B4-UKxai.js → SkeletonDetail-DMOa5zcl.js} +1 -1
  41. package/dist/assets/{SystemHubPage-CVZVag1e.js → SystemHubPage-DM2VRSIP.js} +1 -1
  42. package/dist/assets/{abnfDiagram-VCTEODGH-DUS5D5dU.js → abnfDiagram-VCTEODGH-DaPlU6Hz.js} +1 -1
  43. package/dist/assets/{app-shell-eager-leaves-BB0oaPx6.js → app-shell-eager-leaves-wjbiJgVZ.js} +1 -1
  44. package/dist/assets/architectureDiagram-5GKGNRK7-Cq014PwG.js +36 -0
  45. package/dist/assets/{blockDiagram-OSKFZWR5-Bz2hnVmp.js → blockDiagram-OSKFZWR5-vtlcoeZc.js} +1 -1
  46. package/dist/assets/{c4Diagram-7LVT6UL2-DU3u1Y6c.js → c4Diagram-7LVT6UL2-BrdwRG2M.js} +1 -1
  47. package/dist/assets/channel-D2IgUFnY.js +1 -0
  48. package/dist/assets/{chunk-3NF5O7KM-B8Q7HUio.js → chunk-3NF5O7KM-CjWAf_Jo.js} +1 -1
  49. package/dist/assets/{chunk-4HAMMTFA-BPKwX4iB.js → chunk-4HAMMTFA-BtV_msXT.js} +1 -1
  50. package/dist/assets/chunk-75Z2AOVW-DdRL9yNr.js +2 -0
  51. package/dist/assets/chunk-CLGD4ZFX-De9kMAXh.js +1 -0
  52. package/dist/assets/{chunk-DU6HZSFF-BkY4hAzc.js → chunk-DU6HZSFF-DqjylQO-.js} +1 -1
  53. package/dist/assets/chunk-F27PBJKO-tEB_K-iD.js +1 -0
  54. package/dist/assets/{chunk-GMAD6QVW-DZo_NykZ.js → chunk-GMAD6QVW-BMzd_HHM.js} +1 -1
  55. package/dist/assets/{chunk-GVQU2GXP-9ELY9S6X.js → chunk-GVQU2GXP-B1p1nHC0.js} +1 -1
  56. package/dist/assets/{chunk-H2I77ZZE-vCr_buP7.js → chunk-H2I77ZZE-ioXC4dHO.js} +1 -1
  57. package/dist/assets/{chunk-HLEWEB6X-iPkY2ESt.js → chunk-HLEWEB6X-zZ3ZMup3.js} +1 -1
  58. package/dist/assets/chunk-L3NEJ4N5-DePXufTQ.js +1 -0
  59. package/dist/assets/{chunk-LQGUR6SS-iVI0GACK.js → chunk-LQGUR6SS-BUWUp_dz.js} +1 -1
  60. package/dist/assets/{chunk-OSK3NFVY-DcRwXCQD.js → chunk-OSK3NFVY-L7nTUJKT.js} +2 -2
  61. package/dist/assets/{chunk-P2QGCYS3-nx2-dM5t.js → chunk-P2QGCYS3-BG-i3rdI.js} +1 -1
  62. package/dist/assets/{chunk-POPQ4Y6H-BxLOacOG.js → chunk-POPQ4Y6H-DLEB8EqK.js} +1 -1
  63. package/dist/assets/{chunk-PWAF6VOD-2mst9kZu.js → chunk-PWAF6VOD-Be_prJjm.js} +1 -1
  64. package/dist/assets/{chunk-SVP7TREG-C3BMpr4x.js → chunk-SVP7TREG-BdJpxJji.js} +1 -1
  65. package/dist/assets/chunk-XXDRQBXY-CEXsCcSu.js +1 -0
  66. package/dist/assets/{chunk-ZLD2IHE6-ZFqtFJbj.js → chunk-ZLD2IHE6-BLIPZykR.js} +1 -1
  67. package/dist/assets/classDiagram-CYGNFDIV-BielDdJQ.js +1 -0
  68. package/dist/assets/classDiagram-v2-TLXNO2FR-BielDdJQ.js +1 -0
  69. package/dist/assets/cose-bilkent-JH36ORCC-CnLWv9XE.js +1 -0
  70. package/dist/assets/{createDerive-Best2JCj.js → createDerive-DtfnFzGm.js} +1 -1
  71. package/dist/assets/{cynefinDiagram-5FMLGOSQ-Lnly8IJd.js → cynefinDiagram-5FMLGOSQ-Do1SZz4I.js} +1 -1
  72. package/dist/assets/{dagre-OS7QT2EB-CdXLxmTK.js → dagre-OS7QT2EB-CqmZ9Y9O.js} +1 -1
  73. package/dist/assets/data-adapter-1YRpH3h_.js +5 -0
  74. package/dist/assets/{default-inspector-registry-DeEG98bO.js → default-inspector-registry-CmSpNwTr.js} +1 -1
  75. package/dist/assets/{diagram-S7CK7UJ4-DE8I3gxQ.js → diagram-S7CK7UJ4-CMpcDWop.js} +1 -1
  76. package/dist/assets/{diagram-UQ7AKVKN-D2xQpbEq.js → diagram-UQ7AKVKN-DLK_4yej.js} +1 -1
  77. package/dist/assets/{diagram-VSXAHHWV-DnttDSlO.js → diagram-VSXAHHWV-MAILxw0S.js} +1 -1
  78. package/dist/assets/diagram-VX7I27RA-DGiXGVX7.js +24 -0
  79. package/dist/assets/{diagram-Z3DM3KII-BgB9f0Nv.js → diagram-Z3DM3KII-BywboeGI.js} +1 -1
  80. package/dist/assets/dist-B88JFSFg.js +5 -0
  81. package/dist/assets/{ebnfDiagram-PWID7BFC-32WvKbS2.js → ebnfDiagram-PWID7BFC-DdMLbnuP.js} +1 -1
  82. package/dist/assets/{erDiagram-2YWLMYGG-Dwf8uAdl.js → erDiagram-2YWLMYGG-O6raGx2P.js} +1 -1
  83. package/dist/assets/flowDiagram-T62WH6J4-CkAxOnqU.js +1 -0
  84. package/dist/assets/framework-DFE_Mws9.js +36 -0
  85. package/dist/assets/{ganttDiagram-EL5Y4UJY-DqYIE0Cu.js → ganttDiagram-EL5Y4UJY-Dijdjc50.js} +2 -2
  86. package/dist/assets/{getIcon-CgyYxSEC.js → getIcon-B4Pp7Q-0.js} +1 -1
  87. package/dist/assets/gitGraphDiagram-WWUBYQGX-Cfl4OIGG.js +106 -0
  88. package/dist/assets/{highlighted-body-OFNGDK62-BxO9mjPI.js → highlighted-body-OFNGDK62-BlqGRgbU.js} +1 -1
  89. package/dist/assets/{i18n-Cfqor-xb.js → i18n-DGcOKnTh.js} +1 -1
  90. package/dist/assets/{i18n-locales-Bz4c8KXc.js → i18n-locales-BBA090ve.js} +10 -10
  91. package/dist/assets/index-C5Fu9Kda.css +2 -0
  92. package/dist/assets/index-ClPLLRzK.js +20 -0
  93. package/dist/assets/{infoDiagram-FKFFQAWI-Cr1-5_Am.js → infoDiagram-FKFFQAWI-oOVNWlVA.js} +1 -1
  94. package/dist/assets/{infrastructure-CIpDEFyQ.js → infrastructure-B4zG1jNa.js} +2 -2
  95. package/dist/assets/{ishikawaDiagram-5VMMS53U-Bsjx7BsE.js → ishikawaDiagram-5VMMS53U-BUfTfup1.js} +1 -1
  96. package/dist/assets/{journeyDiagram-EYS64GPL-1scn5Z5c.js → journeyDiagram-EYS64GPL-4fyU8Ui9.js} +2 -2
  97. package/dist/assets/{kanban-definition-UXKFOSKX-DjLQAv5U.js → kanban-definition-UXKFOSKX-qwquHo2y.js} +1 -1
  98. package/dist/assets/mermaid-GHXKKRXX-_UhQGe8N.js +1 -0
  99. package/dist/assets/{mermaid.core-pW40dd4u.js → mermaid.core-RfBGJVq5.js} +2 -2
  100. package/dist/assets/{metadata-admin-pawEBYI9.js → metadata-admin-Bo-vWW2Z.js} +3 -3
  101. package/dist/assets/{mindmap-definition-THT77NOG-CUcYMB9H.js → mindmap-definition-THT77NOG-cOVHgGB_.js} +1 -1
  102. package/dist/assets/{pegDiagram-XKGWAZYB-CT1r3sRa.js → pegDiagram-XKGWAZYB-DQikOuPL.js} +1 -1
  103. package/dist/assets/{pieDiagram-E7YTZNPT-CSi-V1LQ.js → pieDiagram-E7YTZNPT-Cu9wPXiv.js} +2 -2
  104. package/dist/assets/plugin-calendar-DqlnPeWE.js +1 -0
  105. package/dist/assets/plugin-charts-hJ5C1pY-.js +7 -0
  106. package/dist/assets/{plugin-chatbot-BGnkLzFS.js → plugin-chatbot-BeSLDg4N.js} +5 -5
  107. package/dist/assets/plugin-dashboard-d1o52lHr.js +6 -0
  108. package/dist/assets/{plugin-form-_fjHxKTV.js → plugin-form-D8x_rH5w.js} +1 -1
  109. package/dist/assets/plugin-gantt-B2GTMGPH.js +63 -0
  110. package/dist/assets/plugin-grid-DGXy_yQF.js +9 -0
  111. package/dist/assets/{plugin-kanban-DA0eW6yj.js → plugin-kanban-CVf6Nj3e.js} +1 -1
  112. package/dist/assets/plugin-map-hkbw1bGS.js +1 -0
  113. package/dist/assets/{plugin-markdown-B7zwZHmn.js → plugin-markdown-Bdb2UThR.js} +4 -4
  114. package/dist/assets/plugin-report-CelulaB7.js +59 -0
  115. package/dist/assets/{plugin-timeline-B6rsNNAK.js → plugin-timeline-DTcJ-hts.js} +1 -1
  116. package/dist/assets/plugin-tree-Bk5vG9la.js +1 -0
  117. package/dist/assets/{plugin-view-5qxxRyZZ.js → plugin-view-CKs41t7o.js} +1 -1
  118. package/dist/assets/plugins-views-DZmsFOak.js +4 -0
  119. package/dist/assets/{quadrantDiagram-AXDQQJYC-DUJ_94hm.js → quadrantDiagram-AXDQQJYC-DqTU6p89.js} +3 -3
  120. package/dist/assets/{railroadDiagram-O6MQD6OU-CEyfAhzM.js → railroadDiagram-O6MQD6OU-CHGgIBKb.js} +1 -1
  121. package/dist/assets/{requirementDiagram-IS5BZ75X-CAK7hvBg.js → requirementDiagram-IS5BZ75X-B20mHS5h.js} +1 -1
  122. package/dist/assets/{runtime-metadata-persistence-DYPxFzHI.js → runtime-metadata-persistence-DzS2YaNb.js} +1 -1
  123. package/dist/assets/{sankeyDiagram-P5KCCOFB-DgYJh7uz.js → sankeyDiagram-P5KCCOFB-oqGY91Cw.js} +3 -3
  124. package/dist/assets/{sequenceDiagram-WJ2MYXX4-DsQerPtC.js → sequenceDiagram-WJ2MYXX4-CVMm7Aid.js} +1 -1
  125. package/dist/assets/{src-CVJP2nIc.js → src-D7tZqf12.js} +1 -1
  126. package/dist/assets/{src-_DxAIBqo.js → src-DCXZnd2l.js} +1 -1
  127. package/dist/assets/{src-S6pzKItc.js → src-DEMdKbQy.js} +1 -1
  128. package/dist/assets/src-hcMLuWxG.js +17 -0
  129. package/dist/assets/stateDiagram-XQSTLZYL-3oM7IdVe.js +1 -0
  130. package/dist/assets/stateDiagram-v2-IH3M54BS-BznjPAgb.js +1 -0
  131. package/dist/assets/studioEntry-BUFsLXCL.js +1 -0
  132. package/dist/assets/{submitRedirect-UXd9NsjL.js → submitRedirect-7ExeC4kw.js} +1 -1
  133. package/dist/assets/{swimlanes-V6O3JKXN-BiKyiEJr.js → swimlanes-V6O3JKXN-Djgbrkmh.js} +1 -1
  134. package/dist/assets/swimlanesDiagram-JKAHXJPX-DHJJ3qZq.js +8 -0
  135. package/dist/assets/{timeline-definition-24CTP7MA-CW5rY3PX.js → timeline-definition-24CTP7MA-k2lbfDvL.js} +2 -2
  136. package/dist/assets/ui-components-CMHDBJEm.js +37 -0
  137. package/dist/assets/{ui-layout-UUTFXV6S.js → ui-layout-Jk_qY9Ni.js} +1 -1
  138. package/dist/assets/{use-book-data-qUZAxIs0.js → use-book-data-CM73PGvc.js} +1 -1
  139. package/dist/assets/{useActionModal-CkM-zGdy.js → useActionModal-D_iilsul.js} +1 -1
  140. package/dist/assets/{usePackageL10n-F9isJ9pn.js → usePackageL10n-BfPqgsRL.js} +1 -1
  141. package/dist/assets/{useSettingsLabel-CSZBfUiw.js → useSettingsLabel-CW2sBbmj.js} +1 -1
  142. package/dist/assets/vendor-charts-BBlPrtHS.js +67 -0
  143. package/dist/assets/{vendor-i18n-C1AQDWux.js → vendor-i18n-CzBLXLJU.js} +1 -1
  144. package/dist/assets/vendor-objectstack-BU0HrnMy.js +270 -0
  145. package/dist/assets/{vendor-zod-r9lyeyrU.js → vendor-zod-Bwe8XZZa.js} +3 -3
  146. package/dist/assets/{vennDiagram-4TSXK5OY-C79cMc25.js → vennDiagram-4TSXK5OY-zweM554s.js} +1 -1
  147. package/dist/assets/{wardleyDiagram-VM6X3IG4-BAO0_jUk.js → wardleyDiagram-VM6X3IG4-Dg9r6Ajz.js} +1 -1
  148. package/dist/assets/{xychartDiagram-S5SC5T6Z-BIRd7YRo.js → xychartDiagram-S5SC5T6Z-CraplxeN.js} +2 -2
  149. package/dist/eager-closure.json +87 -87
  150. package/dist/index.html +4 -4
  151. package/package.json +1 -1
  152. package/dist/assets/RecordDetailView-A8bbPnkK.js +0 -3
  153. package/dist/assets/architectureDiagram-5GKGNRK7-mGW8P1lC.js +0 -36
  154. package/dist/assets/channel-FD4s9EIH.js +0 -1
  155. package/dist/assets/chunk-75Z2AOVW-CkSdnmiC.js +0 -2
  156. package/dist/assets/chunk-CLGD4ZFX-BTkDISwp.js +0 -1
  157. package/dist/assets/chunk-F27PBJKO-DUKg0YWV.js +0 -1
  158. package/dist/assets/chunk-L3NEJ4N5-Bzz35TZJ.js +0 -1
  159. package/dist/assets/chunk-XXDRQBXY-iNC8aYmk.js +0 -1
  160. package/dist/assets/classDiagram-CYGNFDIV-D5Pd2TCl.js +0 -1
  161. package/dist/assets/classDiagram-v2-TLXNO2FR-D5Pd2TCl.js +0 -1
  162. package/dist/assets/cose-bilkent-JH36ORCC-CPQv9aQH.js +0 -1
  163. package/dist/assets/data-adapter-DL25qpAe.js +0 -5
  164. package/dist/assets/diagram-VX7I27RA-BSEwkn7K.js +0 -24
  165. package/dist/assets/dist-BpPy7hlB.js +0 -5
  166. package/dist/assets/flowDiagram-T62WH6J4-CqVSNJ8T.js +0 -1
  167. package/dist/assets/framework-BfSv4Kb0.js +0 -36
  168. package/dist/assets/gitGraphDiagram-WWUBYQGX-D1dYmoGu.js +0 -106
  169. package/dist/assets/index-BU-FzlQ6.js +0 -20
  170. package/dist/assets/index-_VyGO4ms.css +0 -2
  171. package/dist/assets/mermaid-GHXKKRXX-NzEcDxBh.js +0 -1
  172. package/dist/assets/plugin-calendar-BwiiCIjv.js +0 -1
  173. package/dist/assets/plugin-charts-CDGkx7z5.js +0 -7
  174. package/dist/assets/plugin-dashboard-Bj4ldCX6.js +0 -6
  175. package/dist/assets/plugin-gantt-zR8DkpEg.js +0 -63
  176. package/dist/assets/plugin-grid-kkbz4uec.js +0 -9
  177. package/dist/assets/plugin-map-DukneTNg.js +0 -1
  178. package/dist/assets/plugin-report-DaPtlsJr.js +0 -59
  179. package/dist/assets/plugin-tree-DauauLFc.js +0 -1
  180. package/dist/assets/plugins-views-iYcMmImr.js +0 -4
  181. package/dist/assets/src-JX1BkhmR.js +0 -17
  182. package/dist/assets/stateDiagram-XQSTLZYL-BJndPKik.js +0 -1
  183. package/dist/assets/stateDiagram-v2-IH3M54BS-Bi94bTLl.js +0 -1
  184. package/dist/assets/studioEntry-C6G8U-LG.js +0 -1
  185. package/dist/assets/swimlanesDiagram-JKAHXJPX-DKIR852g.js +0 -8
  186. package/dist/assets/ui-components-D2lrjG-t.js +0 -43
  187. package/dist/assets/vendor-charts-CY9WhhzX.js +0 -67
  188. package/dist/assets/vendor-objectstack-BeKUVjuj.js +0 -270
@@ -1,9 +1,9 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t,a as n,b as r,f as i,g as a,h as o,p as s,r as c,s as l}from"./vendor-react-CsWFRkED.js";import{c as u}from"./infrastructure-CIpDEFyQ.js";import{d,u as f}from"./data-adapter-DL25qpAe.js";import{hr as p}from"./framework-BfSv4Kb0.js";import{$i as m,At as h,Ba as g,Bt as _,Cr as v,Da as y,Dn as b,En as x,Fc as S,Ht as C,In as w,Ja as ee,Ki as T,Ms as E,Ni as D,On as O,Oo as te,Ot as ne,Pa as re,Pc as ie,Pr as k,Qc as A,Si as ae,Sn as oe,Sr as se,Ss as ce,Tc as j,Tn as le,To as M,Us as ue,Va as de,Vt as N,Xc as fe,Xo as pe,Xr as P,Yt as F,Zi as me,_i as he,_o as ge,aa as I,ao as _e,bn as ve,br as ye,do as be,ea as xe,ei as Se,eo as Ce,fa as we,gn as Te,ht as L,ia as Ee,ic as De,ii as Oe,il as ke,ko as Ae,kt as je,mt as R,na as Me,ni as Ne,pa as Pe,pc as Fe,pt as z,qi as Ie,sa as Le,ti as Re,us as ze,va as Be,vn as Ve,vo as B,vr as He,vs as Ue,vt as V,wn as We,ws as Ge,xn as Ke,xr as qe,yi as H,yn as Je,yr as Ye,zt as Xe}from"./ui-components-D2lrjG-t.js";import{r as Ze}from"./vendor-ui-utils-BFw4cGI6.js";import{a as Qe,i as $e,o as et,r as tt,s as nt,t as rt}from"./createDerive-Best2JCj.js";import{o as it}from"./assistantBus-DNH-fDWN.js";import{r as at,s as ot,t as U}from"./ActionResultDialog-CQwenjVA.js";import"./src-JX1BkhmR.js";import{t as st}from"./getIcon-CgyYxSEC.js";import{a as ct,n as lt,o as ut,r as dt}from"./nav-selection-Dzm_mA3C.js";import{A as W,H as ft,a as pt,l as mt,n as ht,r as gt,s as _t,t as vt,u as yt}from"./SchemaForm-DJbupOno.js";import{g as bt,h as xt,i as G,l as St,o as Ct,r as K,u as q}from"./i18n-Cfqor-xb.js";import{C as wt,E as Tt,b as Et,o as Dt,r as Ot,s as kt,t as At,u as jt,w as Mt,x as Nt,y as Pt}from"./default-inspector-registry-DeEG98bO.js";var J=e(r(),1),Y=c();function Ft({appSlug:e}={}){let t=s(),n=et(),{entries:r}=nt(n),[i,a]=J.useState(!1),[o,c]=J.useState(``),[l,u]=J.useState(null),[d,f]=J.useState(!1),[p,m]=J.useState(0),h=bt();J.useEffect(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.shiftKey&&e.key.toLowerCase()===`m`&&(e.preventDefault(),a(e=>!e))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),J.useEffect(()=>{if(!i||l!=null||d||r.length===0)return;f(!0);let e=!1;return(async()=>{try{let t=[];await Promise.all(r.map(async e=>{try{let r=await n.list(e.type);for(let n of r??[]){let r=(n&&typeof n==`object`&&`item`in n?n.item:n)??{},i=r?.name;i&&t.push({kind:`item`,type:e.type,name:String(i),label:r?.label,description:r?.description,lock:typeof r?._lock==`string`?r._lock:void 0,lockReason:typeof r?._lockReason==`string`?r._lockReason:void 0})}}catch{}})),e||u(t)}finally{e||f(!1)}})(),()=>{e=!0}},[i,l,d,r,n]);let g=J.useMemo(()=>{let e=o.trim().toLowerCase();if(!e)return r.slice(0,20).map(e=>({kind:`type`,entry:e}));let t=r.filter(t=>t.type.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||q(t.type,h,t.label).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)).slice(0,8).map(e=>({kind:`type`,entry:e})),n=(l??[]).filter(t=>t.name.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||t.type.toLowerCase().includes(e)).slice(0,40);return[...t,...n]},[o,r,l]);J.useEffect(()=>{m(0)},[o,i]);function _(n){a(!1);let r=e?`/apps/${e}`:`..`;n.kind===`type`?t(`${r}/metadata/${encodeURIComponent(n.entry.type)}`):t(`${r}/metadata/${encodeURIComponent(n.type)}/${encodeURIComponent(n.name)}`)}function y(e){e.key===`ArrowDown`?(e.preventDefault(),m(e=>Math.min(e+1,g.length-1))):e.key===`ArrowUp`?(e.preventDefault(),m(e=>Math.max(e-1,0))):e.key===`Enter`&&g[p]&&(e.preventDefault(),_(g[p]))}return(0,Y.jsx)(He,{open:i,onOpenChange:a,children:(0,Y.jsxs)(Ye,{className:`max-w-2xl p-0 overflow-hidden`,children:[(0,Y.jsx)(se,{className:`sr-only`,children:(0,Y.jsx)(v,{children:K(`engine.quickfind.title`,h)})}),(0,Y.jsxs)(`div`,{className:`border-b px-3 py-2 flex items-center gap-2`,children:[(0,Y.jsx)(I,{className:`h-4 w-4 text-muted-foreground`}),(0,Y.jsx)(w,{autoFocus:!0,placeholder:K(`engine.quickfind.placeholder`,h),value:o,onChange:e=>c(e.target.value),onKeyDown:y,className:`border-0 shadow-none focus-visible:ring-0 px-0`}),(0,Y.jsx)(z,{children:`esc`})]}),(0,Y.jsxs)(`div`,{className:`max-h-[440px] overflow-auto`,children:[d&&(0,Y.jsxs)(`div`,{className:`px-3 py-4 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}),K(`engine.quickfind.indexing`,h),` `,r.length,`…`]}),!d&&g.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-6 text-xs text-muted-foreground text-center`,children:K(`engine.quickfind.noMatches`,h)}),(0,Y.jsx)(`ul`,{role:`listbox`,children:g.map((e,t)=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>_(e),onMouseEnter:()=>m(t),className:`w-full text-left px-3 py-2 flex items-center gap-3 hover:bg-accent `+(t===p?`bg-accent`:``),children:[(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono shrink-0`,children:e.kind===`type`?`type`:e.type}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:e.kind===`type`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium truncate`,children:q(e.entry.type,h,e.entry.label)}),e.entry.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.entry.description})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`text-sm font-mono truncate flex items-center gap-1.5`,children:[e.lock&&e.lock!==`none`&&(0,Y.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400 shrink-0`,title:e.lockReason??`_lock=${e.lock}`,"aria-label":`locked`,children:(0,Y.jsx)(ge,{className:`h-3 w-3`})}),e.name,e.label&&(0,Y.jsx)(`span`,{className:`text-muted-foreground font-sans ml-2`,children:e.label})]}),e.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.description})]})})]})},e.kind===`type`?`t:${e.entry.type}`:`i:${e.type}:${e.name}`))})]}),(0,Y.jsxs)(`div`,{className:`border-t px-3 py-1.5 flex items-center gap-3 text-[10px] text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(z,{children:`↑`}),` `,(0,Y.jsx)(z,{children:`↓`}),` navigate`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(z,{children:`↵`}),` open`]}),(0,Y.jsxs)(`span`,{className:`ml-auto`,children:[(0,Y.jsx)(z,{children:`⌘`}),(0,Y.jsx)(z,{children:`⇧`}),(0,Y.jsx)(z,{children:`M`}),` toggle`]})]})]})})}var It=new Set([`system`,`cloud`]);function Lt(e){let t=(e??[]).map(e=>{let t=e&&typeof e==`object`&&`item`in e?e.item:e,n=t?.manifest??t??{};return{id:n.id,scope:n.scope,name:n.name||n.id}}).filter(e=>e.id&&!It.has(e.scope));return t.sort((e,t)=>e.name.localeCompare(t.name)),t.map(e=>({id:e.id,name:e.name}))}var Rt={data:E,ui:Ae,automation:Oe,ai:T,system:Me,platform:Me,identity:m,security:m},zt=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],Bt=new Set([`field`,`package`]);function Vt(){let e=et(),{loading:t,error:r,entries:i}=nt(e),o=bt(),[s,c]=J.useState(``),[l,u]=J.useState(`all`),[d,f]=J.useState(!1),[p,m]=a(),[h,g]=J.useState(null);J.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;g(Lt(n))}catch{t||g([])}})(),()=>{t=!0}},[e]);let _=p.get(`package`),v=J.useMemo(()=>h?_&&h.some(e=>e.id===_)?_:h[0]?.id??null:null,[h,_]);J.useEffect(()=>{if(!h||h.length===0||_&&h.some(e=>e.id===_))return;let e=new URLSearchParams(p);e.set(`package`,h[0].id),m(e,{replace:!0})},[h,_]);let{byType:y,warnByType:b,summary:x,countsByType:C,lockedByType:ee,packagesByType:T,loading:E}=Qe(e,`warning`,v??void 0),D=J.useMemo(()=>i.filter(e=>Bt.has(e.type)||!v?!1:(T[e.type]??[]).includes(v)),[i,v,T]),O=J.useMemo(()=>{let e={all:D.length};for(let t of D){let n=t.domain??`other`;e[n]=(e[n]??0)+1}return e},[D]),te=D.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate).length,ne=D.filter(e=>{if(d&&!(e.allowOrgOverride||e.allowRuntimeCreate)||l!==`all`&&(e.domain??`other`)!==l)return!1;if(s){let t=s.toLowerCase();if(!(e.type.toLowerCase().includes(t)||(e.label??``).toLowerCase().includes(t)||q(e.type,o,e.label).toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)))return!1}return!0}),re=J.useMemo(()=>{let e={};for(let t of ne)(e[t.domain??`other`]??=[]).push(t);return Object.entries(e).sort(([e],[t])=>{let n=zt.indexOf(e),r=zt.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)})},[ne]);return t||h===null||v&&E?(0,Y.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:K(`engine.directory.loading`,o)}):r?(0,Y.jsxs)(`div`,{className:`p-6 text-sm text-destructive`,children:[K(`engine.directory.loadFailed`,o),`: `,r]}):(0,Y.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,Y.jsx)(`h1`,{className:`text-xl font-semibold`,children:K(`engine.directory.title`,o)}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 max-w-3xl`,dangerouslySetInnerHTML:{__html:G(`engine.directory.description`,o,{count:`<strong class="text-foreground">${D.length}</strong>`,writable:te})}}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 flex-wrap`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 min-w-[240px] max-w-lg`,children:[(0,Y.jsx)(I,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Y.jsx)(w,{className:`pl-8`,placeholder:K(`engine.directory.search`,o),value:s,onChange:e=>c(e.target.value)})]}),(0,Y.jsxs)(P,{variant:d?`default`:`outline`,size:`sm`,onClick:()=>f(e=>!e),children:[K(`engine.directory.writableOnly`,o),` (`,te,`)`]}),x.total>0&&(0,Y.jsx)(P,{asChild:!0,variant:`outline`,size:`sm`,className:`border-destructive/40 text-destructive hover:bg-destructive/10 hover:text-destructive`,children:(0,Y.jsxs)(n,{to:`./_diagnostics`,children:[(0,Y.jsx)(H,{className:`h-3.5 w-3.5 mr-1`}),G(`engine.directory.diagnosticsLink`,o,{count:x.total})]})}),(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground flex items-center gap-1.5`,children:[K(`engine.directory.quickFind`,o),` `,(0,Y.jsx)(z,{children:`⌘`}),(0,Y.jsx)(z,{children:`⇧`}),(0,Y.jsx)(z,{children:`M`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-3 flex-wrap`,children:[(0,Y.jsx)(Ht,{domain:`all`,label:K(`engine.directory.all`,o),active:l===`all`,count:O.all??0,onClick:()=>u(`all`)}),zt.filter(e=>O[e]).map(e=>(0,Y.jsx)(Ht,{domain:e,label:St(e,o),active:l===e,count:O[e]??0,onClick:()=>u(e)},e))]})]}),(0,Y.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[h.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No project packages installed`}),(0,Y.jsx)(L,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),h.length>0&&ne.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:K(`engine.directory.noMatches`,o)}),(0,Y.jsx)(L,{children:K(`engine.directory.noMatchesHint`,o)})]}),re.map(([e,t])=>{let n=Rt[e]??S;return(0,Y.jsxs)(`section`,{className:`space-y-2`,children:[(0,Y.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5`,children:[(0,Y.jsx)(n,{className:`h-3.5 w-3.5`}),St(e,o),` (`,t.length,`)`]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t.map(e=>{let t=C[e.type]??0;return(0,Y.jsx)(Ut,{entry:e,locale:o,invalidCount:y[e.type]??0,warnCount:b[e.type]??0,lockedCount:ee[e.type]??0,itemCount:t,packageFilter:v??void 0},e.type)})})]},e)})]}),(0,Y.jsx)(Ft,{})]})}function Ht({domain:e,label:t,active:n,count:r,onClick:i}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:i,className:`px-2.5 py-1 rounded-full text-xs border transition-colors `+(n?`bg-primary text-primary-foreground border-primary`:`bg-background hover:bg-accent border-border text-muted-foreground`),children:[t??e,` `,(0,Y.jsxs)(`span`,{className:`opacity-70 ml-0.5`,children:[`(`,r,`)`]})]})}function Ut({entry:e,locale:t,invalidCount:r=0,warnCount:i=0,itemCount:a=0,lockedCount:o=0,packageFilter:s}){let c=q(e.type,t,e.label),l=s?`./${encodeURIComponent(e.type)}?package=${encodeURIComponent(s)}`:`./${encodeURIComponent(e.type)}`;return(0,Y.jsxs)(n,{to:l,className:`block p-4 border rounded-lg hover:bg-accent transition-colors `+(r>0?`border-destructive/40 hover:border-destructive`:`hover:border-primary`),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`font-medium truncate flex items-center gap-1.5`,children:[r>0&&(0,Y.jsx)(`span`,{title:G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),"aria-label":G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),children:(0,Y.jsx)(H,{className:`h-3.5 w-3.5 text-destructive shrink-0`})}),c]}),(0,Y.jsx)(`code`,{className:`text-xs text-muted-foreground font-mono`,children:e.type})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,Y.jsx)(k,{variant:`secondary`,className:`text-[10px] tabular-nums`,title:G(`engine.directory.itemCountTooltip`,t??`en`,{count:a}),children:a}),r>0&&(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,title:G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),children:r}),i>0&&(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06]`,title:G(`engine.directory.warnTooltip`,t??`en`,{count:i}),children:i}),o>0&&(0,Y.jsxs)(k,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06] inline-flex items-center gap-0.5 px-1.5`,title:`${o} locked item${o===1?``:`s`} — see ADR-0010`,"aria-label":`${o} locked items`,children:[(0,Y.jsx)(ge,{className:`h-2.5 w-2.5`}),o]}),e.allowOrgOverride?(0,Y.jsx)(k,{className:`text-[10px] `+(e.overrideSource===`env`?`bg-amber-100 text-amber-800 hover:bg-amber-100`:`bg-emerald-100 text-emerald-800 hover:bg-emerald-100`),title:e.overrideSource===`env`?`Writable via OBJECTSTACK_METADATA_WRITABLE env var`:`Writable per ADR-0005 overlay opt-in`,children:K(`engine.badge.writable`,t)}):e.allowRuntimeCreate?(0,Y.jsx)(k,{className:`text-[10px] bg-sky-100 text-sky-800 hover:bg-sky-100`,title:`Code-shipped items are locked; new items can be created at runtime`,children:K(`engine.badge.createOnly`,t)}):(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] text-muted-foreground`,children:K(`engine.badge.readOnly`,t)})]})]}),e.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground mt-2 line-clamp-2`,children:e.description})]})}var Wt={primary:`default`,secondary:`secondary`,danger:`destructive`,ghost:`ghost`,link:`link`};function Gt(e,t,n){return e.indexOf("${")===-1?e:e.replace(/\$\{(param|ctx)\.([\w.]+)\}/g,(e,r,i)=>{let a=r===`param`?n:t,o=i.split(`.`).reduce((e,t)=>e?.[t],a);return o==null?``:encodeURIComponent(String(o))})}function Kt({entry:e,location:t,recordId:n,onAfter:r}){let[i,a]=J.useState(null),[o,s]=J.useState({open:!1,params:[]}),[c,l]=J.useState({open:!1}),d=J.useMemo(()=>u(),[]),f=J.useMemo(()=>(e?.actions??[]).filter(e=>p(e,t)),[e?.actions,t]);if(f.length===0)return null;let m=(e,t)=>new Promise(n=>{s({open:!0,params:e,title:t,resolve:n})}),h=async e=>{let t=e.label??e.name;if(e.type!==`api`){Ze.error(`Action “${t}”: type "${e.type??`script`}" is not supported here yet.`);return}if(e.confirmText&&!window.confirm(e.confirmText))return;let i;if(Array.isArray(e.params)&&e.params.length>0){let n=await m(e.params,t);if(n==null)return;i=n}else i=e.params??{};let o={recordId:n,origin:window.location.origin},s=Gt(e.target??``,o,i);if(!s){Ze.error(`Action “${t}” has no target.`);return}let c=``.replace(/\/+$/,``),u=/^https?:\/\//i.test(s)?s:`${c}${s}`,f=(e.method||`POST`).toUpperCase();a(e.name);try{let n={method:f,headers:{"Content-Type":`application/json`},credentials:`include`};f!==`GET`&&f!==`DELETE`&&(n.body=JSON.stringify(i));let a=await d(u,n),o=null;try{o=await a.json()}catch{}let s=o&&typeof o.success==`boolean`&&`data`in o?o.data:o;if(!a.ok||o&&o.success===!1){let n=o?.error,r=(typeof n==`object`&&n?n.message:void 0)||(typeof n==`string`?n:void 0)||o?.message||`HTTP ${a.status} ${a.statusText}`.trim();Ze.error(`${e.errorMessage?`${e.errorMessage}: `:``}${t}: ${r}`);return}if(e.resultDialog)l({open:!0,spec:e.resultDialog,data:s??{}});else{let n=e.successMessage||(typeof s?.message==`string`?s.message:`${t} ✓`);Ze.success(n)}e.refreshAfter&&r?.()}catch(e){Ze.error(`${t}: ${e?.message??String(e)}`)}finally{a(null)}};return(0,Y.jsxs)(Y.Fragment,{children:[f.map(e=>{let t=e.icon?st(e.icon):null,n=i===e.name;return(0,Y.jsxs)(P,{size:`sm`,variant:Wt[e.variant??`secondary`]??`secondary`,disabled:n,onClick:()=>h(e),title:e.label??e.name,children:[n?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):t?(0,Y.jsx)(t,{className:`h-4 w-4 mr-1`}):null,e.label??e.name]},e.name)}),(0,Y.jsx)(at,{state:o,onOpenChange:e=>{e||s(e=>({...e,open:!1}))}}),(0,Y.jsx)(U,{state:c,onAcknowledge:()=>l({open:!1})})]})}function qt(e,t){if(t===`overlay`||t===`runtime`)return`runtime`;if(t===`code`||t===`artifact`)return`artifact`;let n=e._packageId;return!n||n===`sys_metadata`?`runtime`:`artifact`}function Jt({type:e}){let t=o(),n=e??t.type??``;if(n===`package`){let e=t.appName??`studio`;return(0,Y.jsx)(l,{to:`/apps/${e}/component/developer/packages`,replace:!0})}let r=wt(n);if(r?.ListPage){let e=r.ListPage;return(0,Y.jsx)(e,{type:n})}return(0,Y.jsx)(Yt,{type:n,appName:t.appName})}function Yt({type:e,appName:t}){let r=s(),i=et(),{entries:o}=nt(i),c=o.find(t=>t.type===e),l=Tt(e,c),[u,d]=J.useState([]),[f,p]=J.useState(!0),[m,h]=J.useState(null),[g,_]=J.useState(``),[v,S]=J.useState(`all`),[C,ee]=a(),[T,E]=J.useState(0),[D,te]=J.useState(null);J.useEffect(()=>{let e=!1;return(async()=>{try{let t=await i.list(`package`);if(e)return;te(Lt(t))}catch{e||te([])}})(),()=>{e=!0}},[i]);let[ne,re]=J.useState(null);J.useEffect(()=>{let e=!1;if(!t){re(null);return}return(async()=>{try{let n=await i.list(`app`);if(e)return;let r=(n??[]).map(e=>e&&typeof e==`object`&&`item`in e?e.item:e).find(e=>e?.name===t||e?._packageId===t);re(r?._packageId??null)}catch{e||re(null)}})(),()=>{e=!0}},[i,t]);let ie=C.get(`package`),A=J.useMemo(()=>{if(!D)return null;if(ie&&D.some(e=>e.id===ie))return ie;if(D.length===0)return null;if(ne&&D.some(e=>e.id===ne))return ne;let e=new Map;for(let t of u){let n=t.item?._packageId;n&&n!==`sys_metadata`&&e.set(n,(e.get(n)??0)+1)}let t=null,n=0;for(let r of D){let i=e.get(r.id)??0;i>n&&(t=r.id,n=i)}return t??D[0]?.id??null},[D,ie,u,ne]);J.useEffect(()=>{if(!D||D.length===0||ie&&D.some(e=>e.id===ie)||!(ne&&D.some(e=>e.id===ne))&&u.length===0||!A)return;let e=new URLSearchParams(C);e.set(`package`,A),ee(e,{replace:!0})},[D,ie,u,A,ne]);let ae=A?`?package=${encodeURIComponent(A)}`:``,[oe,se]=J.useState(!1),ce=J.useCallback(()=>{let e=D??[];if(D!==null&&e.length===0){se(!0);return}if(e.length>0&&!A){r(`./new?package=${encodeURIComponent(e[0].id)}`);return}r(`./new${ae}`)},[D,A,ae,r]);J.useEffect(()=>{let t=!1;return p(!0),h(null),(async()=>{try{let n=await i.list(e);if(t)return;let r=(n??[]).map(e=>{let t=(e&&typeof e==`object`&&`item`in e?e.item:e)??{},n=t?._diagnostics??e?._diagnostics??void 0;return{raw:e,item:t,source:qt(t,e?.source),diagnostics:n}});d(r),p(!1)}catch(e){t||(h(e?.message??String(e)),p(!1))}})(),()=>{t=!0}},[i,e,T]);let j=l.searchableFields??[`name`,`label`,`description`],M=J.useMemo(()=>u.filter(e=>l.listFilter&&!l.listFilter(e.item)||!A?!1:e.item?._packageId===A),[u,A,l]),ue=M.filter(e=>!(!$e(e.item,g,j)||v!==`all`&&e.source!==v)),de=J.useMemo(()=>{let e={all:M.length,artifact:0,runtime:0};for(let t of M)e[t.source]++;return e},[M]),N=J.useMemo(()=>M.filter(e=>e.diagnostics&&e.diagnostics.valid===!1).length,[M]),fe=J.useMemo(()=>M.filter(e=>e.diagnostics&&e.diagnostics.valid!==!1&&(e.diagnostics.warnings?.length??0)>0).length,[M]),pe=l.listColumns??Xt(l.primaryKey??`name`),F=bt(),me=q(e,F,c?.label??e),he=e=>{let t=`engine.list.col.${e.key}`,n=K(t,F);return n===t?e.label:n};return(0,Y.jsx)(Nt,{entry:c??{type:e,label:e},stats:[{label:K(`engine.list.items`,F),value:M.length},{label:K(`engine.list.filtered`,F),value:ue.length},...N>0?[{label:K(`engine.list.invalid`,F),value:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-destructive`,children:[(0,Y.jsx)(H,{className:`w-3.5 h-3.5`}),N]})}]:[],...fe>0?[{label:K(`engine.list.warnings`,F),value:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-amber-600 dark:text-amber-400`,children:[(0,Y.jsx)(H,{className:`w-3.5 h-3.5`}),fe]})}]:[]],actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Kt,{entry:c,location:`list_toolbar`,onAfter:()=>E(e=>e+1)}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>E(e=>e+1),title:K(`engine.list.refresh`,F),children:(0,Y.jsx)(Be,{className:`h-4 w-4`})}),(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,Y.jsxs)(P,{size:`sm`,variant:l.createFields?`default`:`outline`,onClick:ce,title:l.createFields?G(`engine.list.createHint`,F,{type:me}):void 0,children:[(0,Y.jsx)(y,{className:`h-4 w-4 mr-1`}),K(`engine.list.create`,F)]})]}),children:(0,Y.jsxs)(`div`,{className:`p-6 space-y-4`,children:[(0,Y.jsx)(jt,{open:oe,onOpenChange:se,onCreated:e=>r(`./new?package=${encodeURIComponent(e)}`)}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 min-w-[200px] max-w-md`,children:[(0,Y.jsx)(I,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Y.jsx)(w,{className:`pl-8`,placeholder:K(`engine.list.search`,F),value:g,onChange:e=>_(e.target.value)})]}),(0,Y.jsxs)(We,{value:v,onValueChange:S,children:[(0,Y.jsx)(b,{className:`w-[180px]`,children:(0,Y.jsx)(O,{})}),(0,Y.jsxs)(le,{children:[(0,Y.jsxs)(x,{value:`all`,children:[K(`engine.list.allSources`,F),` (`,de.all,`)`]}),(0,Y.jsxs)(x,{value:`artifact`,children:[K(`engine.list.source.artifact`,F),` (`,de.artifact,`)`]}),(0,Y.jsxs)(x,{value:`runtime`,children:[K(`engine.list.source.runtime`,F),` (`,de.runtime,`)`]})]})]})]}),(f||D===null)&&(0,Y.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[K(`engine.edit.loading`,F),` `,e,`…`]}),m&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:m}),!f&&!m&&D!==null&&D.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No project packages installed`}),(0,Y.jsx)(L,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),!f&&!m&&D!==null&&D.length>0&&ue.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:M.length===0?G(`engine.list.emptyType`,F,{type:me}):G(`engine.list.emptyQuery`,F,{query:g})}),(0,Y.jsx)(L,{children:l.emptyStateHint??(c?.allowOrgOverride||c?.allowRuntimeCreate?G(`engine.list.createHint`,F,{type:me}):K(`engine.list.readOnlyHint`,F))}),M.length===0&&(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsxs)(P,{onClick:ce,children:[(0,Y.jsx)(y,{className:`h-4 w-4 mr-1`}),K(`engine.list.create`,F)]})})]}),!f&&ue.length>0&&(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[pe.map(e=>(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,style:e.width?{width:e.width}:void 0,children:he(e)},e.key)),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-right font-medium w-[80px]`,children:K(`engine.list.col.source`,F)})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:ue.map((e,t)=>{let r=l.primaryKey??`name`,i=String(e.item[r]??`(unnamed-${t})`),a=e.item._packageId,o=a&&a!==`sys_metadata`?`?package=${encodeURIComponent(a)}`:ae,s=e.diagnostics?.valid===!1,c=e.diagnostics?.errors??[],u=e.diagnostics?.warnings??[],d=!s&&u.length>0,f=s?c.slice(0,3).map(e=>`${e.path||`(root)`}: ${e.message}`).join(`
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t,a as n,b as r,f as i,g as a,h as o,p as s,r as c,s as l}from"./vendor-react-CsWFRkED.js";import{c as u}from"./infrastructure-B4zG1jNa.js";import{d,u as f}from"./data-adapter-1YRpH3h_.js";import{vr as p}from"./framework-DFE_Mws9.js";import{$i as m,At as h,Ba as g,Bt as _,Cr as v,Da as y,Dn as b,En as x,Fc as S,Ht as C,In as w,Ja as ee,Ki as T,Ms as E,Ni as D,On as O,Oo as te,Ot as ne,Pa as re,Pc as ie,Pr as k,Qc as A,Si as ae,Sn as oe,Sr as se,Ss as ce,Tc as j,Tn as le,To as M,Us as ue,Va as de,Vt as N,Xc as fe,Xo as pe,Xr as P,Yt as F,Zi as me,_i as he,_o as ge,aa as I,ao as _e,bn as ve,br as ye,do as be,ea as xe,ei as Se,eo as Ce,fa as we,gn as Te,ht as L,ia as Ee,ic as De,ii as Oe,il as ke,ko as Ae,kt as je,mt as R,na as Me,ni as Ne,pa as Pe,pc as Fe,pt as z,qi as Ie,sa as Le,ti as Re,us as ze,va as Be,vn as Ve,vo as B,vr as He,vs as Ue,vt as V,wn as We,ws as Ge,xn as Ke,xr as qe,yi as H,yn as Je,yr as Ye,zt as Xe}from"./ui-components-CMHDBJEm.js";import{r as Ze}from"./vendor-ui-utils-BFw4cGI6.js";import{a as Qe,i as $e,o as et,r as tt,s as nt,t as rt}from"./createDerive-DtfnFzGm.js";import{o as it}from"./assistantBus-DNH-fDWN.js";import{r as at,s as ot,t as U}from"./ActionResultDialog-Bsr2GS71.js";import"./src-hcMLuWxG.js";import{t as st}from"./getIcon-B4Pp7Q-0.js";import{a as ct,n as lt,o as ut,r as dt}from"./nav-selection-Dzm_mA3C.js";import{A as W,H as ft,a as pt,l as mt,n as ht,r as gt,s as _t,t as vt,u as yt}from"./SchemaForm-DIsxxOZF.js";import{g as bt,h as xt,i as G,l as St,o as Ct,r as K,u as q}from"./i18n-DGcOKnTh.js";import{C as wt,E as Tt,b as Et,o as Dt,r as Ot,s as kt,t as At,u as jt,w as Mt,x as Nt,y as Pt}from"./default-inspector-registry-CmSpNwTr.js";var J=e(r(),1),Y=c();function Ft({appSlug:e}={}){let t=s(),n=et(),{entries:r}=nt(n),[i,a]=J.useState(!1),[o,c]=J.useState(``),[l,u]=J.useState(null),[d,f]=J.useState(!1),[p,m]=J.useState(0),h=bt();J.useEffect(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.shiftKey&&e.key.toLowerCase()===`m`&&(e.preventDefault(),a(e=>!e))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),J.useEffect(()=>{if(!i||l!=null||d||r.length===0)return;f(!0);let e=!1;return(async()=>{try{let t=[];await Promise.all(r.map(async e=>{try{let r=await n.list(e.type);for(let n of r??[]){let r=(n&&typeof n==`object`&&`item`in n?n.item:n)??{},i=r?.name;i&&t.push({kind:`item`,type:e.type,name:String(i),label:r?.label,description:r?.description,lock:typeof r?._lock==`string`?r._lock:void 0,lockReason:typeof r?._lockReason==`string`?r._lockReason:void 0})}}catch{}})),e||u(t)}finally{e||f(!1)}})(),()=>{e=!0}},[i,l,d,r,n]);let g=J.useMemo(()=>{let e=o.trim().toLowerCase();if(!e)return r.slice(0,20).map(e=>({kind:`type`,entry:e}));let t=r.filter(t=>t.type.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||q(t.type,h,t.label).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)).slice(0,8).map(e=>({kind:`type`,entry:e})),n=(l??[]).filter(t=>t.name.toLowerCase().includes(e)||(t.label??``).toLowerCase().includes(e)||(t.description??``).toLowerCase().includes(e)||t.type.toLowerCase().includes(e)).slice(0,40);return[...t,...n]},[o,r,l]);J.useEffect(()=>{m(0)},[o,i]);function _(n){a(!1);let r=e?`/apps/${e}`:`..`;n.kind===`type`?t(`${r}/metadata/${encodeURIComponent(n.entry.type)}`):t(`${r}/metadata/${encodeURIComponent(n.type)}/${encodeURIComponent(n.name)}`)}function y(e){e.key===`ArrowDown`?(e.preventDefault(),m(e=>Math.min(e+1,g.length-1))):e.key===`ArrowUp`?(e.preventDefault(),m(e=>Math.max(e-1,0))):e.key===`Enter`&&g[p]&&(e.preventDefault(),_(g[p]))}return(0,Y.jsx)(He,{open:i,onOpenChange:a,children:(0,Y.jsxs)(Ye,{className:`max-w-2xl p-0 overflow-hidden`,children:[(0,Y.jsx)(se,{className:`sr-only`,children:(0,Y.jsx)(v,{children:K(`engine.quickfind.title`,h)})}),(0,Y.jsxs)(`div`,{className:`border-b px-3 py-2 flex items-center gap-2`,children:[(0,Y.jsx)(I,{className:`h-4 w-4 text-muted-foreground`}),(0,Y.jsx)(w,{autoFocus:!0,placeholder:K(`engine.quickfind.placeholder`,h),value:o,onChange:e=>c(e.target.value),onKeyDown:y,className:`border-0 shadow-none focus-visible:ring-0 px-0`}),(0,Y.jsx)(z,{children:`esc`})]}),(0,Y.jsxs)(`div`,{className:`max-h-[440px] overflow-auto`,children:[d&&(0,Y.jsxs)(`div`,{className:`px-3 py-4 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}),K(`engine.quickfind.indexing`,h),` `,r.length,`…`]}),!d&&g.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-6 text-xs text-muted-foreground text-center`,children:K(`engine.quickfind.noMatches`,h)}),(0,Y.jsx)(`ul`,{role:`listbox`,children:g.map((e,t)=>(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>_(e),onMouseEnter:()=>m(t),className:`w-full text-left px-3 py-2 flex items-center gap-3 hover:bg-accent `+(t===p?`bg-accent`:``),children:[(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono shrink-0`,children:e.kind===`type`?`type`:e.type}),(0,Y.jsx)(`div`,{className:`min-w-0 flex-1`,children:e.kind===`type`?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(`div`,{className:`text-sm font-medium truncate`,children:q(e.entry.type,h,e.entry.label)}),e.entry.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.entry.description})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(`div`,{className:`text-sm font-mono truncate flex items-center gap-1.5`,children:[e.lock&&e.lock!==`none`&&(0,Y.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400 shrink-0`,title:e.lockReason??`_lock=${e.lock}`,"aria-label":`locked`,children:(0,Y.jsx)(ge,{className:`h-3 w-3`})}),e.name,e.label&&(0,Y.jsx)(`span`,{className:`text-muted-foreground font-sans ml-2`,children:e.label})]}),e.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground truncate`,children:e.description})]})})]})},e.kind===`type`?`t:${e.entry.type}`:`i:${e.type}:${e.name}`))})]}),(0,Y.jsxs)(`div`,{className:`border-t px-3 py-1.5 flex items-center gap-3 text-[10px] text-muted-foreground`,children:[(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(z,{children:`↑`}),` `,(0,Y.jsx)(z,{children:`↓`}),` navigate`]}),(0,Y.jsxs)(`span`,{children:[(0,Y.jsx)(z,{children:`↵`}),` open`]}),(0,Y.jsxs)(`span`,{className:`ml-auto`,children:[(0,Y.jsx)(z,{children:`⌘`}),(0,Y.jsx)(z,{children:`⇧`}),(0,Y.jsx)(z,{children:`M`}),` toggle`]})]})]})})}var It=new Set([`system`,`cloud`]);function Lt(e){let t=(e??[]).map(e=>{let t=e&&typeof e==`object`&&`item`in e?e.item:e,n=t?.manifest??t??{};return{id:n.id,scope:n.scope,name:n.name||n.id}}).filter(e=>e.id&&!It.has(e.scope));return t.sort((e,t)=>e.name.localeCompare(t.name)),t.map(e=>({id:e.id,name:e.name}))}var Rt={data:E,ui:Ae,automation:Oe,ai:T,system:Me,platform:Me,identity:m,security:m},zt=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],Bt=new Set([`field`,`package`]);function Vt(){let e=et(),{loading:t,error:r,entries:i}=nt(e),o=bt(),[s,c]=J.useState(``),[l,u]=J.useState(`all`),[d,f]=J.useState(!1),[p,m]=a(),[h,g]=J.useState(null);J.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;g(Lt(n))}catch{t||g([])}})(),()=>{t=!0}},[e]);let _=p.get(`package`),v=J.useMemo(()=>h?_&&h.some(e=>e.id===_)?_:h[0]?.id??null:null,[h,_]);J.useEffect(()=>{if(!h||h.length===0||_&&h.some(e=>e.id===_))return;let e=new URLSearchParams(p);e.set(`package`,h[0].id),m(e,{replace:!0})},[h,_]);let{byType:y,warnByType:b,summary:x,countsByType:C,lockedByType:ee,packagesByType:T,loading:E}=Qe(e,`warning`,v??void 0),D=J.useMemo(()=>i.filter(e=>Bt.has(e.type)||!v?!1:(T[e.type]??[]).includes(v)),[i,v,T]),O=J.useMemo(()=>{let e={all:D.length};for(let t of D){let n=t.domain??`other`;e[n]=(e[n]??0)+1}return e},[D]),te=D.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate).length,ne=D.filter(e=>{if(d&&!(e.allowOrgOverride||e.allowRuntimeCreate)||l!==`all`&&(e.domain??`other`)!==l)return!1;if(s){let t=s.toLowerCase();if(!(e.type.toLowerCase().includes(t)||(e.label??``).toLowerCase().includes(t)||q(e.type,o,e.label).toLowerCase().includes(t)||(e.description??``).toLowerCase().includes(t)))return!1}return!0}),re=J.useMemo(()=>{let e={};for(let t of ne)(e[t.domain??`other`]??=[]).push(t);return Object.entries(e).sort(([e],[t])=>{let n=zt.indexOf(e),r=zt.indexOf(t);return(n===-1?99:n)-(r===-1?99:r)})},[ne]);return t||h===null||v&&E?(0,Y.jsx)(`div`,{className:`p-6 text-sm text-muted-foreground`,children:K(`engine.directory.loading`,o)}):r?(0,Y.jsxs)(`div`,{className:`p-6 text-sm text-destructive`,children:[K(`engine.directory.loadFailed`,o),`: `,r]}):(0,Y.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,Y.jsx)(`h1`,{className:`text-xl font-semibold`,children:K(`engine.directory.title`,o)}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 max-w-3xl`,dangerouslySetInnerHTML:{__html:G(`engine.directory.description`,o,{count:`<strong class="text-foreground">${D.length}</strong>`,writable:te})}}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 mt-4 flex-wrap`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 min-w-[240px] max-w-lg`,children:[(0,Y.jsx)(I,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Y.jsx)(w,{className:`pl-8`,placeholder:K(`engine.directory.search`,o),value:s,onChange:e=>c(e.target.value)})]}),(0,Y.jsxs)(P,{variant:d?`default`:`outline`,size:`sm`,onClick:()=>f(e=>!e),children:[K(`engine.directory.writableOnly`,o),` (`,te,`)`]}),x.total>0&&(0,Y.jsx)(P,{asChild:!0,variant:`outline`,size:`sm`,className:`border-destructive/40 text-destructive hover:bg-destructive/10 hover:text-destructive`,children:(0,Y.jsxs)(n,{to:`./_diagnostics`,children:[(0,Y.jsx)(H,{className:`h-3.5 w-3.5 mr-1`}),G(`engine.directory.diagnosticsLink`,o,{count:x.total})]})}),(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground flex items-center gap-1.5`,children:[K(`engine.directory.quickFind`,o),` `,(0,Y.jsx)(z,{children:`⌘`}),(0,Y.jsx)(z,{children:`⇧`}),(0,Y.jsx)(z,{children:`M`})]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 mt-3 flex-wrap`,children:[(0,Y.jsx)(Ht,{domain:`all`,label:K(`engine.directory.all`,o),active:l===`all`,count:O.all??0,onClick:()=>u(`all`)}),zt.filter(e=>O[e]).map(e=>(0,Y.jsx)(Ht,{domain:e,label:St(e,o),active:l===e,count:O[e]??0,onClick:()=>u(e)},e))]})]}),(0,Y.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[h.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No project packages installed`}),(0,Y.jsx)(L,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),h.length>0&&ne.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:K(`engine.directory.noMatches`,o)}),(0,Y.jsx)(L,{children:K(`engine.directory.noMatchesHint`,o)})]}),re.map(([e,t])=>{let n=Rt[e]??S;return(0,Y.jsxs)(`section`,{className:`space-y-2`,children:[(0,Y.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-1.5`,children:[(0,Y.jsx)(n,{className:`h-3.5 w-3.5`}),St(e,o),` (`,t.length,`)`]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:t.map(e=>{let t=C[e.type]??0;return(0,Y.jsx)(Ut,{entry:e,locale:o,invalidCount:y[e.type]??0,warnCount:b[e.type]??0,lockedCount:ee[e.type]??0,itemCount:t,packageFilter:v??void 0},e.type)})})]},e)})]}),(0,Y.jsx)(Ft,{})]})}function Ht({domain:e,label:t,active:n,count:r,onClick:i}){return(0,Y.jsxs)(`button`,{type:`button`,onClick:i,className:`px-2.5 py-1 rounded-full text-xs border transition-colors `+(n?`bg-primary text-primary-foreground border-primary`:`bg-background hover:bg-accent border-border text-muted-foreground`),children:[t??e,` `,(0,Y.jsxs)(`span`,{className:`opacity-70 ml-0.5`,children:[`(`,r,`)`]})]})}function Ut({entry:e,locale:t,invalidCount:r=0,warnCount:i=0,itemCount:a=0,lockedCount:o=0,packageFilter:s}){let c=q(e.type,t,e.label),l=s?`./${encodeURIComponent(e.type)}?package=${encodeURIComponent(s)}`:`./${encodeURIComponent(e.type)}`;return(0,Y.jsxs)(n,{to:l,className:`block p-4 border rounded-lg hover:bg-accent transition-colors `+(r>0?`border-destructive/40 hover:border-destructive`:`hover:border-primary`),children:[(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsxs)(`div`,{className:`font-medium truncate flex items-center gap-1.5`,children:[r>0&&(0,Y.jsx)(`span`,{title:G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),"aria-label":G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),children:(0,Y.jsx)(H,{className:`h-3.5 w-3.5 text-destructive shrink-0`})}),c]}),(0,Y.jsx)(`code`,{className:`text-xs text-muted-foreground font-mono`,children:e.type})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,Y.jsx)(k,{variant:`secondary`,className:`text-[10px] tabular-nums`,title:G(`engine.directory.itemCountTooltip`,t??`en`,{count:a}),children:a}),r>0&&(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,title:G(`engine.directory.invalidTooltip`,t??`en`,{count:r}),children:r}),i>0&&(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06]`,title:G(`engine.directory.warnTooltip`,t??`en`,{count:i}),children:i}),o>0&&(0,Y.jsxs)(k,{variant:`outline`,className:`text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300 bg-amber-500/[0.06] inline-flex items-center gap-0.5 px-1.5`,title:`${o} locked item${o===1?``:`s`} — see ADR-0010`,"aria-label":`${o} locked items`,children:[(0,Y.jsx)(ge,{className:`h-2.5 w-2.5`}),o]}),e.allowOrgOverride?(0,Y.jsx)(k,{className:`text-[10px] `+(e.overrideSource===`env`?`bg-amber-100 text-amber-800 hover:bg-amber-100`:`bg-emerald-100 text-emerald-800 hover:bg-emerald-100`),title:e.overrideSource===`env`?`Writable via OBJECTSTACK_METADATA_WRITABLE env var`:`Writable per ADR-0005 overlay opt-in`,children:K(`engine.badge.writable`,t)}):e.allowRuntimeCreate?(0,Y.jsx)(k,{className:`text-[10px] bg-sky-100 text-sky-800 hover:bg-sky-100`,title:`Code-shipped items are locked; new items can be created at runtime`,children:K(`engine.badge.createOnly`,t)}):(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] text-muted-foreground`,children:K(`engine.badge.readOnly`,t)})]})]}),e.description&&(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground mt-2 line-clamp-2`,children:e.description})]})}var Wt={primary:`default`,secondary:`secondary`,danger:`destructive`,ghost:`ghost`,link:`link`};function Gt(e,t,n){return e.indexOf("${")===-1?e:e.replace(/\$\{(param|ctx)\.([\w.]+)\}/g,(e,r,i)=>{let a=r===`param`?n:t,o=i.split(`.`).reduce((e,t)=>e?.[t],a);return o==null?``:encodeURIComponent(String(o))})}function Kt({entry:e,location:t,recordId:n,onAfter:r}){let[i,a]=J.useState(null),[o,s]=J.useState({open:!1,params:[]}),[c,l]=J.useState({open:!1}),d=J.useMemo(()=>u(),[]),f=J.useMemo(()=>(e?.actions??[]).filter(e=>p(e,t)),[e?.actions,t]);if(f.length===0)return null;let m=(e,t)=>new Promise(n=>{s({open:!0,params:e,title:t,resolve:n})}),h=async e=>{let t=e.label??e.name;if(e.type!==`api`){Ze.error(`Action “${t}”: type "${e.type??`script`}" is not supported here yet.`);return}if(e.confirmText&&!window.confirm(e.confirmText))return;let i;if(Array.isArray(e.params)&&e.params.length>0){let n=await m(e.params,t);if(n==null)return;i=n}else i=e.params??{};let o={recordId:n,origin:window.location.origin},s=Gt(e.target??``,o,i);if(!s){Ze.error(`Action “${t}” has no target.`);return}let c=``.replace(/\/+$/,``),u=/^https?:\/\//i.test(s)?s:`${c}${s}`,f=(e.method||`POST`).toUpperCase();a(e.name);try{let n={method:f,headers:{"Content-Type":`application/json`},credentials:`include`};f!==`GET`&&f!==`DELETE`&&(n.body=JSON.stringify(i));let a=await d(u,n),o=null;try{o=await a.json()}catch{}let s=o&&typeof o.success==`boolean`&&`data`in o?o.data:o;if(!a.ok||o&&o.success===!1){let n=o?.error,r=(typeof n==`object`&&n?n.message:void 0)||(typeof n==`string`?n:void 0)||o?.message||`HTTP ${a.status} ${a.statusText}`.trim();Ze.error(`${e.errorMessage?`${e.errorMessage}: `:``}${t}: ${r}`);return}if(e.resultDialog)l({open:!0,spec:e.resultDialog,data:s??{}});else{let n=e.successMessage||(typeof s?.message==`string`?s.message:`${t} ✓`);Ze.success(n)}e.refreshAfter&&r?.()}catch(e){Ze.error(`${t}: ${e?.message??String(e)}`)}finally{a(null)}};return(0,Y.jsxs)(Y.Fragment,{children:[f.map(e=>{let t=e.icon?st(e.icon):null,n=i===e.name;return(0,Y.jsxs)(P,{size:`sm`,variant:Wt[e.variant??`secondary`]??`secondary`,disabled:n,onClick:()=>h(e),title:e.label??e.name,children:[n?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):t?(0,Y.jsx)(t,{className:`h-4 w-4 mr-1`}):null,e.label??e.name]},e.name)}),(0,Y.jsx)(at,{state:o,onOpenChange:e=>{e||s(e=>({...e,open:!1}))}}),(0,Y.jsx)(U,{state:c,onAcknowledge:()=>l({open:!1})})]})}function qt(e,t){if(t===`overlay`||t===`runtime`)return`runtime`;if(t===`code`||t===`artifact`)return`artifact`;let n=e._packageId;return!n||n===`sys_metadata`?`runtime`:`artifact`}function Jt({type:e}){let t=o(),n=e??t.type??``;if(n===`package`){let e=t.appName??`studio`;return(0,Y.jsx)(l,{to:`/apps/${e}/component/developer/packages`,replace:!0})}let r=wt(n);if(r?.ListPage){let e=r.ListPage;return(0,Y.jsx)(e,{type:n})}return(0,Y.jsx)(Yt,{type:n,appName:t.appName})}function Yt({type:e,appName:t}){let r=s(),i=et(),{entries:o}=nt(i),c=o.find(t=>t.type===e),l=Tt(e,c),[u,d]=J.useState([]),[f,p]=J.useState(!0),[m,h]=J.useState(null),[g,_]=J.useState(``),[v,S]=J.useState(`all`),[C,ee]=a(),[T,E]=J.useState(0),[D,te]=J.useState(null);J.useEffect(()=>{let e=!1;return(async()=>{try{let t=await i.list(`package`);if(e)return;te(Lt(t))}catch{e||te([])}})(),()=>{e=!0}},[i]);let[ne,re]=J.useState(null);J.useEffect(()=>{let e=!1;if(!t){re(null);return}return(async()=>{try{let n=await i.list(`app`);if(e)return;let r=(n??[]).map(e=>e&&typeof e==`object`&&`item`in e?e.item:e).find(e=>e?.name===t||e?._packageId===t);re(r?._packageId??null)}catch{e||re(null)}})(),()=>{e=!0}},[i,t]);let ie=C.get(`package`),A=J.useMemo(()=>{if(!D)return null;if(ie&&D.some(e=>e.id===ie))return ie;if(D.length===0)return null;if(ne&&D.some(e=>e.id===ne))return ne;let e=new Map;for(let t of u){let n=t.item?._packageId;n&&n!==`sys_metadata`&&e.set(n,(e.get(n)??0)+1)}let t=null,n=0;for(let r of D){let i=e.get(r.id)??0;i>n&&(t=r.id,n=i)}return t??D[0]?.id??null},[D,ie,u,ne]);J.useEffect(()=>{if(!D||D.length===0||ie&&D.some(e=>e.id===ie)||!(ne&&D.some(e=>e.id===ne))&&u.length===0||!A)return;let e=new URLSearchParams(C);e.set(`package`,A),ee(e,{replace:!0})},[D,ie,u,A,ne]);let ae=A?`?package=${encodeURIComponent(A)}`:``,[oe,se]=J.useState(!1),ce=J.useCallback(()=>{let e=D??[];if(D!==null&&e.length===0){se(!0);return}if(e.length>0&&!A){r(`./new?package=${encodeURIComponent(e[0].id)}`);return}r(`./new${ae}`)},[D,A,ae,r]);J.useEffect(()=>{let t=!1;return p(!0),h(null),(async()=>{try{let n=await i.list(e);if(t)return;let r=(n??[]).map(e=>{let t=(e&&typeof e==`object`&&`item`in e?e.item:e)??{},n=t?._diagnostics??e?._diagnostics??void 0;return{raw:e,item:t,source:qt(t,e?.source),diagnostics:n}});d(r),p(!1)}catch(e){t||(h(e?.message??String(e)),p(!1))}})(),()=>{t=!0}},[i,e,T]);let j=l.searchableFields??[`name`,`label`,`description`],M=J.useMemo(()=>u.filter(e=>l.listFilter&&!l.listFilter(e.item)||!A?!1:e.item?._packageId===A),[u,A,l]),ue=M.filter(e=>!(!$e(e.item,g,j)||v!==`all`&&e.source!==v)),de=J.useMemo(()=>{let e={all:M.length,artifact:0,runtime:0};for(let t of M)e[t.source]++;return e},[M]),N=J.useMemo(()=>M.filter(e=>e.diagnostics&&e.diagnostics.valid===!1).length,[M]),fe=J.useMemo(()=>M.filter(e=>e.diagnostics&&e.diagnostics.valid!==!1&&(e.diagnostics.warnings?.length??0)>0).length,[M]),pe=l.listColumns??Xt(l.primaryKey??`name`),F=bt(),me=q(e,F,c?.label??e),he=e=>{let t=`engine.list.col.${e.key}`,n=K(t,F);return n===t?e.label:n};return(0,Y.jsx)(Nt,{entry:c??{type:e,label:e},stats:[{label:K(`engine.list.items`,F),value:M.length},{label:K(`engine.list.filtered`,F),value:ue.length},...N>0?[{label:K(`engine.list.invalid`,F),value:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-destructive`,children:[(0,Y.jsx)(H,{className:`w-3.5 h-3.5`}),N]})}]:[],...fe>0?[{label:K(`engine.list.warnings`,F),value:(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-amber-600 dark:text-amber-400`,children:[(0,Y.jsx)(H,{className:`w-3.5 h-3.5`}),fe]})}]:[]],actions:(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Kt,{entry:c,location:`list_toolbar`,onAfter:()=>E(e=>e+1)}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>E(e=>e+1),title:K(`engine.list.refresh`,F),children:(0,Y.jsx)(Be,{className:`h-4 w-4`})}),(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,Y.jsxs)(P,{size:`sm`,variant:l.createFields?`default`:`outline`,onClick:ce,title:l.createFields?G(`engine.list.createHint`,F,{type:me}):void 0,children:[(0,Y.jsx)(y,{className:`h-4 w-4 mr-1`}),K(`engine.list.create`,F)]})]}),children:(0,Y.jsxs)(`div`,{className:`p-6 space-y-4`,children:[(0,Y.jsx)(jt,{open:oe,onOpenChange:se,onCreated:e=>r(`./new?package=${encodeURIComponent(e)}`)}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 min-w-[200px] max-w-md`,children:[(0,Y.jsx)(I,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,Y.jsx)(w,{className:`pl-8`,placeholder:K(`engine.list.search`,F),value:g,onChange:e=>_(e.target.value)})]}),(0,Y.jsxs)(We,{value:v,onValueChange:S,children:[(0,Y.jsx)(b,{className:`w-[180px]`,children:(0,Y.jsx)(O,{})}),(0,Y.jsxs)(le,{children:[(0,Y.jsxs)(x,{value:`all`,children:[K(`engine.list.allSources`,F),` (`,de.all,`)`]}),(0,Y.jsxs)(x,{value:`artifact`,children:[K(`engine.list.source.artifact`,F),` (`,de.artifact,`)`]}),(0,Y.jsxs)(x,{value:`runtime`,children:[K(`engine.list.source.runtime`,F),` (`,de.runtime,`)`]})]})]})]}),(f||D===null)&&(0,Y.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[K(`engine.edit.loading`,F),` `,e,`…`]}),m&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:m}),!f&&!m&&D!==null&&D.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No project packages installed`}),(0,Y.jsx)(L,{children:`Studio only shows metadata that belongs to a project software package. Install or create a project package to manage its metadata here.`})]}),!f&&!m&&D!==null&&D.length>0&&ue.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:M.length===0?G(`engine.list.emptyType`,F,{type:me}):G(`engine.list.emptyQuery`,F,{query:g})}),(0,Y.jsx)(L,{children:l.emptyStateHint??(c?.allowOrgOverride||c?.allowRuntimeCreate?G(`engine.list.createHint`,F,{type:me}):K(`engine.list.readOnlyHint`,F))}),M.length===0&&(c?.allowOrgOverride||c?.allowRuntimeCreate)&&(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsxs)(P,{onClick:ce,children:[(0,Y.jsx)(y,{className:`h-4 w-4 mr-1`}),K(`engine.list.create`,F)]})})]}),!f&&ue.length>0&&(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[pe.map(e=>(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,style:e.width?{width:e.width}:void 0,children:he(e)},e.key)),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-right font-medium w-[80px]`,children:K(`engine.list.col.source`,F)})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:ue.map((e,t)=>{let r=l.primaryKey??`name`,i=String(e.item[r]??`(unnamed-${t})`),a=e.item._packageId,o=a&&a!==`sys_metadata`?`?package=${encodeURIComponent(a)}`:ae,s=e.diagnostics?.valid===!1,c=e.diagnostics?.errors??[],u=e.diagnostics?.warnings??[],d=!s&&u.length>0,f=s?c.slice(0,3).map(e=>`${e.path||`(root)`}: ${e.message}`).join(`
2
2
  `)+(c.length>3?`\n+${c.length-3} more`:``):d?u.slice(0,3).map(e=>`${e.path||`(root)`}: ${e.message}`).join(`
3
- `)+(u.length>3?`\n+${u.length-3} more`:``):``;return(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50 `+(s?`bg-destructive/[0.04]`:d?`bg-amber-500/[0.05]`:``),children:[pe.map((t,r)=>{let a=e.item[t.key],l=t.render?t.render(a,e.item):Zt(a);return(0,Y.jsx)(`td`,{className:`px-3 py-2 align-top`,children:r===0?(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[s&&(0,Y.jsx)(`span`,{className:`inline-flex`,"aria-label":K(`engine.list.invalidTitle`,F),title:`${G(`engine.list.invalidCount`,F,{count:c.length})}\n${f}`,children:(0,Y.jsx)(H,{className:`w-3.5 h-3.5 text-destructive shrink-0`})}),d&&(0,Y.jsx)(`span`,{className:`inline-flex`,"aria-label":K(`engine.list.warnTitle`,F),title:`${G(`engine.list.warnCount`,F,{count:u.length})}\n${f}`,children:(0,Y.jsx)(H,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 shrink-0`})}),(0,Y.jsx)(n,{to:`./${encodeURIComponent(i)}${o}`,className:`text-primary hover:underline font-mono`,children:l})]}):l},t.key)}),(0,Y.jsxs)(`td`,{className:`px-3 py-2 text-right align-top`,children:[e.item._lock&&e.item._lock!==`none`&&(0,Y.jsx)(`span`,{className:`inline-flex items-center mr-1 text-amber-600 dark:text-amber-400`,title:e.item._lockReason??`_lock=${String(e.item._lock)}`,children:(0,Y.jsx)(ge,{className:`h-3 w-3`})}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] `+(e.source===`artifact`?`border-sky-500/50 text-sky-700 dark:text-sky-300`:`border-emerald-500/50 text-emerald-700 dark:text-emerald-300`),title:e.source===`artifact`?`${K(`engine.list.source.artifactDesc`,F)}${e.item._packageId?` (${e.item._packageId})`:``}`:K(`engine.list.source.runtimeDesc`,F),children:K(`engine.list.source.${e.source}`,F)})]})]},i+t)})})]})})]})})}function Xt(e){return[{key:e,label:e,width:`30%`},{key:`label`,label:`Label`,width:`30%`},{key:`description`,label:`Description`}]}function Zt(e){if(e==null||e===``)return(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(typeof e==`boolean`)return e?`✓`:`✗`;if(typeof e==`object`)try{return(0,Y.jsx)(`code`,{className:`font-mono text-xs`,children:JSON.stringify(e).slice(0,60)})}catch{return String(e)}return String(e)}var X={unchanged:{badge:`bg-muted text-muted-foreground border border-border`,row:``},modified:{badge:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,row:`bg-amber-50/50 dark:bg-amber-950/20`},added:{badge:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,row:`bg-emerald-50/50 dark:bg-emerald-950/20`},removed:{badge:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`,row:`bg-rose-50/50 dark:bg-rose-950/20`}};function Qt(e,t){let n=$t(e)?e:{},r=$t(t)?t:{},i=new Set([...Object.keys(n),...Object.keys(r)]),a=[];for(let e of i){let t=e in n,i=e in r,o=n[e],s=r[e],c;c=t&&!i?`removed`:!t&&i?`added`:en(o)===en(s)?`unchanged`:`modified`,a.push({key:e,status:c,codeValue:o,effectiveValue:s})}let o={modified:0,added:1,removed:2,unchanged:3};return a.sort((e,t)=>o[e.status]===o[t.status]?e.key.localeCompare(t.key):o[e.status]-o[t.status]),a}function $t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function en(e){try{return JSON.stringify(e,(e,t)=>$t(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}catch{return String(e)}}function tn(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function nn(e,t){if(e==null)return 0;let n=0;for(let r of Qt(e,t))r.status!==`unchanged`&&(n+=1);return n}function rn({layered:e,loading:t,locale:n}){if(t)return(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:K(`engine.edit.loading`,n)});if(!e)return(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:K(`engine.layers.diff.noBaseline`,n)});let r=e.overlay!=null;return(0,Y.jsxs)(Xe,{defaultValue:`diff`,className:`w-full`,children:[(0,Y.jsxs)(N,{className:`grid grid-cols-4 w-fit`,children:[(0,Y.jsx)(C,{value:`diff`,children:K(`engine.layers.diff`,n)}),(0,Y.jsxs)(C,{value:`code`,children:[K(`engine.layers.code`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:Ct(`layer`,`artifact`,n)})]}),(0,Y.jsxs)(C,{value:`overlay`,children:[K(`engine.layers.overlay`,n),r?(0,Y.jsx)(k,{className:`ml-1.5 text-[10px] bg-emerald-600 text-emerald-50`,children:Ct(`layer`,e.overlayScope??`set`,n)}):(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px] text-muted-foreground`,children:Ct(`layer`,`none`,n)})]}),(0,Y.jsxs)(C,{value:`effective`,children:[K(`engine.layers.effective`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:Ct(`layer`,`merged`,n)})]})]}),(0,Y.jsx)(_,{value:`diff`,className:`mt-3`,children:(0,Y.jsx)(an,{code:e.code,effective:e.effective,locale:n})}),(0,Y.jsx)(_,{value:`code`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.code,emptyHint:K(`engine.layers.diff.noBaseline`,n)})}),(0,Y.jsx)(_,{value:`overlay`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.overlay,emptyHint:K(`engine.layers.diff.noChanges`,n)})}),(0,Y.jsx)(_,{value:`effective`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.effective,emptyHint:`No effective value resolved.`})})]})}function an({code:e,effective:t,locale:n}){let[r,i]=J.useState(!1),a=J.useMemo(()=>e==null?[]:Qt(e,t),[e,t]),o=J.useMemo(()=>a.reduce((e,t)=>(e[t.status]+=1,e),{unchanged:0,modified:0,added:0,removed:0}),[a]);if(e==null)return(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:K(`engine.layers.diff.noBaseline`,n)});let s=r?a:a.filter(e=>e.status!==`unchanged`),c=o.modified>0||o.added>0||o.removed>0;return(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 flex-wrap`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:G(`engine.layers.diff.summary`,n,{modified:o.modified,added:o.added,removed:o.removed})}),(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground cursor-pointer select-none`,children:[(0,Y.jsx)(F,{checked:r,onCheckedChange:i,"aria-label":K(`engine.layers.diff.showUnchanged`,n)}),K(`engine.layers.diff.showUnchanged`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1 text-[10px]`,children:o.unchanged})]})]}),!c&&!r?(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:K(`engine.layers.diff.noChanges`,n)}):(0,Y.jsxs)(`div`,{className:`rounded border overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] bg-muted/50 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.field`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.code`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.effective`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.status`,n)})]}),(0,Y.jsx)(`div`,{className:`divide-y`,children:s.map(e=>{let t=X[e.status];return(0,Y.jsxs)(`div`,{className:ke(`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] text-xs`,t.row),children:[(0,Y.jsx)(`div`,{className:`px-3 py-2 font-mono text-foreground truncate`,title:e.key,children:e.key}),(0,Y.jsx)(on,{value:e.codeValue,muted:e.status===`added`}),(0,Y.jsx)(on,{value:e.effectiveValue,muted:e.status===`removed`}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:(0,Y.jsx)(`span`,{className:ke(`inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium`,t.badge),children:K(`engine.layers.diff.${e.status}`,n)})})]},e.key)})})]})]})}function on({value:e,muted:t}){let n=tn(e);return(0,Y.jsx)(`div`,{className:ke(`px-3 py-2 font-mono break-all`,t||e===void 0?`text-muted-foreground italic`:`text-foreground`),title:n.length>200?n:void 0,children:n.length>200?`${n.slice(0,200)}…`:n})}function sn({payload:e,emptyHint:t}){if(e==null)return(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:t});let n;try{n=JSON.stringify(e,null,2)}catch{n=String(e)}return(0,Y.jsx)(`pre`,{className:`rounded border bg-muted/30 p-3 text-xs font-mono overflow-auto max-h-[420px]`,children:n})}var cn={modified:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,added:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,removed:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`},ln={modified:`bg-amber-50/50 dark:bg-amber-950/20`,added:`bg-emerald-50/50 dark:bg-emerald-950/20`,removed:`bg-rose-50/50 dark:bg-rose-950/20`};function un(e,t){return K(e===`added`?`designer.canvas.diffAdded`:e===`removed`?`designer.canvas.diffRemoved`:`designer.canvas.diffChanged`,t)}function dn(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e.length>200?`${e.slice(0,200)}…`:e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{let t=JSON.stringify(e);return t.length>200?`${t.slice(0,200)}…`:t}catch{return String(e)}}function fn(e,t){let n=0;for(let r of Qt(e,t))r.status!==`unchanged`&&(n+=1);return n}function pn({published:e,draft:t,locale:n,className:r}){let i=J.useMemo(()=>Qt(e,t).filter(e=>e.status!==`unchanged`),[e,t]);return i.length===0?(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground ${r??``}`,children:K(`designer.draftReview.empty`,n)}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-1.5 ${r??``}`,"data-testid":`draft-review-panel`,children:i.map(e=>{let t=e.status;return(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2 rounded-md px-2.5 py-1.5 text-xs ${ln[t]}`,children:[(0,Y.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded px-1.5 py-px text-[10px] font-medium uppercase tracking-wide ${cn[t]}`,children:un(t,n)}),(0,Y.jsx)(`code`,{className:`font-mono font-medium text-foreground`,children:e.key}),t===`added`?(0,Y.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:dn(e.effectiveValue)}):t===`removed`?(0,Y.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:dn(e.codeValue)}):(0,Y.jsxs)(`span`,{className:`inline-flex items-baseline gap-1.5 text-muted-foreground`,children:[(0,Y.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:dn(e.codeValue)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`→`}),(0,Y.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:dn(e.effectiveValue)})]})]},e.key)})})}function mn({type:e,name:t,parentItem:n,onOpen:r}){let i=et(),a=s(),o=J.useMemo(()=>Mt(e),[e]),[c,l]=J.useState([]),[u,d]=J.useState(``),[f,p]=J.useState({});if(J.useEffect(()=>{if(o.length===0){l([]);return}let e=!1,r=[...o].sort((e,t)=>(e.anchor.order??999)-(t.anchor.order??999)).map(e=>{if(e.anchor.source===`embedded`){let t=e.anchor.extract&&n?e.anchor.extract(n):[];return{childType:e.type,anchor:e.anchor,loading:!1,error:null,items:t.map(hn)}}return{childType:e.type,anchor:e.anchor,loading:!0,error:null,items:[]}});return l(r),Promise.all(r.map(async n=>{if(n.anchor.source===`embedded`)return n;try{let r=await i.list(n.childType);if(e)return n;let a=n.anchor.match??(()=>!1),o=r.filter(e=>a(e,t)).map(e=>hn(e));return{...n,loading:!1,items:o}}catch(t){return e?n:{...n,loading:!1,error:t instanceof Error?t.message:String(t)}}})).then(t=>{e||l(t)}),()=>{e=!0}},[i,e,t,o,n]),o.length===0)return(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No related metadata`}),(0,Y.jsxs)(L,{children:[`No metadata types are configured to anchor at `,(0,Y.jsx)(`code`,{children:e}),`. You can register one via`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`registerMetadataResource`}),`.`]})]});let m=c.reduce((e,t)=>e+t.items.length,0),h=c.some(e=>e.loading),g=u.trim().toLowerCase();return(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,Y.jsx)(I,{className:`absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,Y.jsx)(w,{placeholder:`Search related…`,value:u,onChange:e=>d(e.target.value),className:`pl-8 h-8 text-sm`})]}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:h?`Scanning…`:`${m} item${m===1?``:`s`}`})]}),c.map(n=>{let i=g?n.items.filter(e=>e.name.toLowerCase().includes(g)||(e.label??``).toLowerCase().includes(g)):n.items,o=f[n.childType]??!1;return!(!g||i.length>0)&&!n.loading?null:(0,Y.jsxs)(`div`,{className:`border rounded-lg overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`w-full flex items-center gap-2 px-3 py-2 bg-muted/40`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 flex-1 text-left hover:opacity-80`,onClick:()=>p(e=>({...e,[n.childType]:!o})),children:[(0,Y.jsx)(Fe,{className:ke(`h-4 w-4 text-muted-foreground transition-transform`,!o&&`rotate-90`)}),(0,Y.jsx)(`div`,{className:`text-sm font-medium`,children:n.anchor.groupLabel??n.childType}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px]`,children:n.loading?`…`:i.length})]}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,onClick:()=>{if(n.anchor.source===`embedded`){if(typeof window<`u`){let e=new URL(window.location.href);e.searchParams.set(`tab`,`form`),e.searchParams.delete(`open`),window.location.assign(e.toString())}return}a(`../../${encodeURIComponent(n.childType)}/_new?anchor=${encodeURIComponent(`${e}:${t}`)}`)},title:n.anchor.source===`embedded`?`Edit in Form tab`:`New ${n.childType}`,children:(0,Y.jsx)(y,{className:`h-3.5 w-3.5`})})]}),!o&&(0,Y.jsxs)(`div`,{children:[n.loading&&(0,Y.jsxs)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}),`Loading `,n.childType,`…`]}),!n.loading&&n.error&&(0,Y.jsxs)(`div`,{className:`px-3 py-3 text-xs text-destructive`,children:[`Failed: `,n.error]}),!n.loading&&!n.error&&i.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground`,children:g?`No matches.`:`Nothing here yet.`}),!n.loading&&!n.error&&i.length>0&&(0,Y.jsxs)(`table`,{className:`w-full text-sm border-t`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{className:`bg-muted/30 text-[10px] uppercase tracking-wider text-muted-foreground`,children:[(0,Y.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5 w-[45%]`,children:`Name`}),(0,Y.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5`,children:`Label`}),(0,Y.jsx)(`th`,{className:`w-8`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:i.map((i,a)=>(0,Y.jsxs)(`tr`,{role:`button`,tabIndex:0,onClick:()=>r(n.anchor.source===`embedded`?{kind:`embedded`,parentType:e,parentName:t,groupLabel:n.anchor.groupLabel??n.childType,itemName:i.name,raw:i.raw,editAs:n.anchor.editAs,embeddedPath:n.anchor.embeddedPath}:{kind:`metadata`,type:n.childType,name:i.name}),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.currentTarget.click()},className:`hover:bg-accent/50 cursor-pointer`,children:[(0,Y.jsx)(`td`,{className:`px-3 py-1.5 font-mono text-xs truncate max-w-0`,children:i.name}),(0,Y.jsx)(`td`,{className:`px-3 py-1.5 text-xs text-muted-foreground truncate max-w-0`,children:i.label&&i.label!==i.name?i.label:``}),(0,Y.jsx)(`td`,{className:`px-3 py-1.5 text-right`,children:(0,Y.jsx)(Ge,{className:`h-3.5 w-3.5 text-muted-foreground inline`})})]},`${i.name}-${a}`))})]})]})]},n.childType)})]})}function hn(e){return{name:gn(e,[`name`,`id`,`key`])??`(unnamed)`,label:gn(e,[`label`,`title`,`displayName`]),description:gn(e,[`description`,`summary`]),raw:e}}function gn(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function _n({parentType:e,parentName:t,embeddedPath:n,itemName:r,editAs:i,initialRaw:a,onSaved:o}){let s=bt(),c=et(),{entries:l}=nt(c),u=i?l.find(e=>e.type===i):void 0,f=!u?.schema&&i?yn[i]:void 0,p=u?.schema??f?.schema,m=u?.form??f?.form,h=i?kt(i):void 0,[g,_]=J.useState(a),[v,y]=J.useState(!1),[b,x]=J.useState(null),[S,C]=J.useState([]),[w,ee]=J.useState(null);J.useEffect(()=>{_(a),x(null),C([]),ee(null)},[a,r,e,t]);let T=u!=null&&!u.allowOrgOverride&&!u.allowRuntimeCreate;async function E(){if(!n){x(K(`engine.embedded.saveNoPath`,s));return}y(!0),x(null),C([]);try{let i=await c.layered(e,t),a=vn(i.effective??i.code??{},n,r,g);await c.save(e,t,a),ee(Date.now()),o?.(g)}catch(e){if(e?.status===422||d(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],i=(Array.isArray(t)?t:[]).map(e=>{let t=Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),i=`${n}.${r}.`;return{path:t.startsWith(i)?t.slice(i.length):t,message:xt(String(e.message??`Invalid`),s)}});C(i),x(i.length===1?K(`engine.validation.failedOne`,s):G(`engine.validation.failed`,s,{count:i.length}))}else x(e?.message??String(e))}finally{y(!1)}}return p?(0,Y.jsxs)(`div`,{className:`p-4 space-y-4`,children:[b&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:b}),w!=null&&!b&&(0,Y.jsx)(`div`,{className:`text-sm text-emerald-700 border border-emerald-300 bg-emerald-50 rounded p-2`,children:K(`engine.embedded.saved`,s)}),T&&(0,Y.jsx)(`div`,{className:`text-xs text-amber-800 border border-amber-300 bg-amber-50 rounded p-2`,children:K(`engine.embedded.readOnlyParent`,s)}),h&&(0,Y.jsx)(h,{type:i,name:r,draft:g,locale:s,editing:!1}),(0,Y.jsx)(gt,{schema:p,idPath:vt,form:m,value:g,onChange:_,issues:S}),(0,Y.jsx)(`div`,{className:`flex justify-end gap-2 pt-2 border-t`,children:(0,Y.jsxs)(P,{onClick:E,disabled:v||!n,children:[v?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):(0,Y.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.embedded.saveIntoParent`,s,{parentType:e})]})}),!n&&(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground border rounded p-3`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,children:K(`engine.embedded.readOnly`,s)}),(0,Y.jsx)(`div`,{children:K(`engine.embedded.noPathHint`,s)})]})]}):(0,Y.jsxs)(`div`,{className:`p-4 space-y-3`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:G(`engine.embedded.noSchema`,s,{type:i??`this item`,target:`${e}/${t}.${n}.${r}`})}),(0,Y.jsx)(`textarea`,{className:`w-full h-[60vh] font-mono text-xs border rounded p-3 bg-muted/30`,value:JSON.stringify(g,null,2),onChange:e=>{try{_(JSON.parse(e.target.value)),x(null)}catch(e){x(`${K(`engine.form.invalidJson`,s)}: ${e.message}`)}}}),b&&(0,Y.jsxs)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-2 bg-destructive/5`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 inline mr-1`}),` `,b]}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsxs)(P,{onClick:E,disabled:v||!n,children:[v?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):(0,Y.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.embedded.saveIntoParent`,s,{parentType:`parent`})]})})]})}function vn(e,t,n,r){let i=t.split(`.`),a=structuredClone(e),o=a;for(let e=0;e<i.length-1;e++)o[i[e]]??(o[i[e]]={}),o=o[i[e]];let s=i[i.length-1],c=o[s];if(Array.isArray(c)){let e=c.findIndex(e=>e&&typeof e==`object`&&e.name===n);e>=0?c[e]=r:c.push(r)}else if(c&&typeof c==`object`){let{name:e,...t}=r;c[n]=t}else{let{name:e,...t}=r;o[s]={[n]:t}}return a}var yn={index:{schema:{type:`object`,required:[`fields`],properties:{name:{type:`string`,title:`Name`,description:`Index name (auto-generated from the columns if not provided).`},fields:{type:`array`,title:`Fields`,description:`Fields included in the index, in order.`,items:{type:`string`}},unique:{title:`Unique`,description:`Whether the index enforces uniqueness, and at which scope. 'global' materializes over exactly the listed fields — one holder across the whole installation. 'organization' has the driver prepend the NULL-safe organization key part at registration — one holder per organization. Leave empty for a non-unique index.`,anyOf:[{type:`string`,enum:[`global`,`organization`]},{type:`boolean`}]}}}}};function bn({target:e,onClose:t,parentContext:n}){let r=s(),i=e?.kind===`metadata`,a=e?.kind===`embedded`,o=i?e.type:a?e.groupLabel:``,c=i?e.name:a?e.itemName:``;return(0,Y.jsx)(Ve,{open:e!==null,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(Je,{side:`right`,className:ke(`w-[92vw] sm:max-w-[1100px] p-0 flex flex-col gap-0`),children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(k,{variant:`outline`,className:`font-mono text-[10px]`,children:o}),(0,Y.jsx)(oe,{className:`font-mono text-base truncate`,children:c}),(0,Y.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:i&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>{r(`../../${encodeURIComponent(e.type)}/${encodeURIComponent(e.name)}`),t()},title:`Open in full page`,children:[(0,Y.jsx)(Ge,{className:`h-3.5 w-3.5 mr-1`}),`Open full page`]})})]}),n&&(0,Y.jsxs)(ve,{className:`text-xs`,children:[a?`Embedded in `:`Related to `,(0,Y.jsxs)(`span`,{className:`font-mono`,children:[n.type,`/`,n.name]})]})]}),(0,Y.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-auto`,children:[i&&(0,Y.jsx)(Tr,{type:e.type,name:e.name,embedded:!0},`${e.type}/${e.name}`),a&&(0,Y.jsx)(_n,{parentType:e.parentType,parentName:e.parentName,embeddedPath:e.embeddedPath,itemName:e.itemName,editAs:e.editAs,initialRaw:e.raw},`${e.parentType}/${e.parentName}/${e.embeddedPath}/${e.itemName}`)]})]})})}function xn(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Sn(e,t){let n={allowed:{label:`allowed`,cls:`bg-emerald-50 text-emerald-700 border-emerald-200`,Icon:m},denied:{label:`denied`,cls:`bg-rose-50 text-rose-700 border-rose-200`,Icon:me},forced:{label:`forced`,cls:`bg-amber-50 text-amber-700 border-amber-200`,Icon:xe}},r=n[e]??n.allowed;return(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide ${r.cls}`,children:[(0,Y.jsx)(r.Icon,{className:`h-3 w-3`}),Ct(`outcome`,r.label,t)]})}function Cn({type:e,name:t,client:n,locale:r=`en-US`}){let[i,a]=J.useState({status:`idle`}),[o,s]=J.useState(!1),c=J.useCallback(async()=>{s(!0),a(e=>e.status===`loaded`?e:{status:`loading`});try{let r=await n.audit(e,t,{limit:100});a({status:`loaded`,data:r.events??[]})}catch(e){a({status:`error`,message:_t(e)})}finally{s(!1)}},[n,e,t]);return J.useEffect(()=>{c()},[c]),(0,Y.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b px-1 pb-2`,children:[i.status===`loaded`?(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground`,"data-testid":`audit-count`,children:[i.data.length,` `,K(`engine.edit.auditCount`,r)]}):(0,Y.jsx)(`div`,{}),(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>void c(),disabled:o,className:`h-7 gap-1 text-xs`,title:K(`engine.edit.refresh`,r),children:[o?(0,Y.jsx)(B,{className:`h-3 w-3 animate-spin`}):(0,Y.jsx)(Be,{className:`h-3 w-3`}),K(`engine.edit.refresh`,r)]})]}),i.status===`error`&&(0,Y.jsx)(`div`,{"data-testid":`audit-error`,className:`m-2 rounded border border-rose-200 bg-rose-50 p-2 text-xs text-rose-700`,children:i.message}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-auto`,children:i.status===`idle`||i.status===`loading`?(0,Y.jsxs)(`div`,{className:`flex h-32 items-center justify-center text-xs text-muted-foreground`,children:[(0,Y.jsx)(B,{className:`mr-2 h-3 w-3 animate-spin`}),K(`engine.edit.loading`,r)]}):i.status===`error`?(0,Y.jsxs)(R,{className:`py-10`,"data-testid":`audit-error-state`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.auditErrorTitle`,r)}),(0,Y.jsx)(L,{children:K(`engine.edit.auditErrorDescription`,r)})]}):i.data.length===0?(0,Y.jsxs)(R,{className:`py-10`,"data-testid":`audit-empty`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.auditEmptyTitle`,r)}),(0,Y.jsx)(L,{children:K(`engine.edit.auditEmptyDescription`,r)})]}):(0,Y.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,Y.jsx)(`thead`,{className:`sticky top-0 bg-muted/40 text-left text-[10px] uppercase tracking-wide text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColTime`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColActor`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColOperation`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColOutcome`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColLock`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColNote`,r)})]})}),(0,Y.jsx)(`tbody`,{children:i.data.map(e=>(0,Y.jsxs)(`tr`,{className:`border-t border-border/50 align-top hover:bg-muted/20`,children:[(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-2 py-1.5 font-mono text-[11px]`,children:xn(e.occurredAt)}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:e.actor}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px]`,children:Ct(`op`,e.operation,r)})}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:Sn(e.outcome,r)}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:e.lockState&&e.lockState!==`none`?(0,Y.jsxs)(`span`,{className:`font-mono text-[11px]`,children:[Ct(`lock`,e.lockState,r),e.lockOverridden?` *`:``]}):(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})}),(0,Y.jsx)(`td`,{className:`max-w-[28ch] truncate px-2 py-1.5 text-muted-foreground`,title:e.note??e.code,children:e.note??e.code})]},String(e.id)))})]})})]})}function wn(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t||!n;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}function p(e){r=e,i=``,a=0,o=16,d=0}function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46){if(r++,r<e.length&&Dn(e.charCodeAt(r)))for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r)}let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101)){if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&Dn(e.charCodeAt(r))){for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;n=r}else d=3}return e.substring(t,n)}function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
3
+ `)+(u.length>3?`\n+${u.length-3} more`:``):``;return(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50 `+(s?`bg-destructive/[0.04]`:d?`bg-amber-500/[0.05]`:``),children:[pe.map((t,r)=>{let a=e.item[t.key],l=t.render?t.render(a,e.item):Zt(a);return(0,Y.jsx)(`td`,{className:`px-3 py-2 align-top`,children:r===0?(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[s&&(0,Y.jsx)(`span`,{className:`inline-flex`,"aria-label":K(`engine.list.invalidTitle`,F),title:`${G(`engine.list.invalidCount`,F,{count:c.length})}\n${f}`,children:(0,Y.jsx)(H,{className:`w-3.5 h-3.5 text-destructive shrink-0`})}),d&&(0,Y.jsx)(`span`,{className:`inline-flex`,"aria-label":K(`engine.list.warnTitle`,F),title:`${G(`engine.list.warnCount`,F,{count:u.length})}\n${f}`,children:(0,Y.jsx)(H,{className:`w-3.5 h-3.5 text-amber-600 dark:text-amber-400 shrink-0`})}),(0,Y.jsx)(n,{to:`./${encodeURIComponent(i)}${o}`,className:`text-primary hover:underline font-mono`,children:l})]}):l},t.key)}),(0,Y.jsxs)(`td`,{className:`px-3 py-2 text-right align-top`,children:[e.item._lock&&e.item._lock!==`none`&&(0,Y.jsx)(`span`,{className:`inline-flex items-center mr-1 text-amber-600 dark:text-amber-400`,title:e.item._lockReason??`_lock=${String(e.item._lock)}`,children:(0,Y.jsx)(ge,{className:`h-3 w-3`})}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] `+(e.source===`artifact`?`border-sky-500/50 text-sky-700 dark:text-sky-300`:`border-emerald-500/50 text-emerald-700 dark:text-emerald-300`),title:e.source===`artifact`?`${K(`engine.list.source.artifactDesc`,F)}${e.item._packageId?` (${e.item._packageId})`:``}`:K(`engine.list.source.runtimeDesc`,F),children:K(`engine.list.source.${e.source}`,F)})]})]},i+t)})})]})})]})})}function Xt(e){return[{key:e,label:e,width:`30%`},{key:`label`,label:`Label`,width:`30%`},{key:`description`,label:`Description`}]}function Zt(e){if(e==null||e===``)return(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(typeof e==`boolean`)return e?`✓`:`✗`;if(typeof e==`object`)try{return(0,Y.jsx)(`code`,{className:`font-mono text-xs`,children:JSON.stringify(e).slice(0,60)})}catch{return String(e)}return String(e)}var X={unchanged:{badge:`bg-muted text-muted-foreground border border-border`,row:``},modified:{badge:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,row:`bg-amber-50/50 dark:bg-amber-950/20`},added:{badge:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,row:`bg-emerald-50/50 dark:bg-emerald-950/20`},removed:{badge:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`,row:`bg-rose-50/50 dark:bg-rose-950/20`}};function Qt(e,t){let n=$t(e)?e:{},r=$t(t)?t:{},i=new Set([...Object.keys(n),...Object.keys(r)]),a=[];for(let e of i){let t=e in n,i=e in r,o=n[e],s=r[e],c;c=t&&!i?`removed`:!t&&i?`added`:en(o)===en(s)?`unchanged`:`modified`,a.push({key:e,status:c,codeValue:o,effectiveValue:s})}let o={modified:0,added:1,removed:2,unchanged:3};return a.sort((e,t)=>o[e.status]===o[t.status]?e.key.localeCompare(t.key):o[e.status]-o[t.status]),a}function $t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function en(e){try{return JSON.stringify(e,(e,t)=>$t(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}catch{return String(e)}}function tn(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function nn(e,t){if(e==null)return 0;let n=0;for(let r of Qt(e,t))r.status!==`unchanged`&&(n+=1);return n}function rn({layered:e,loading:t,locale:n}){if(t)return(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:K(`engine.edit.loading`,n)});if(!e)return(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:K(`engine.layers.diff.noBaseline`,n)});let r=e.overlay!=null;return(0,Y.jsxs)(Xe,{defaultValue:`diff`,className:`w-full`,children:[(0,Y.jsxs)(N,{className:`grid grid-cols-4 w-fit`,children:[(0,Y.jsx)(C,{value:`diff`,children:K(`engine.layers.diff`,n)}),(0,Y.jsxs)(C,{value:`code`,children:[K(`engine.layers.code`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:Ct(`layer`,`artifact`,n)})]}),(0,Y.jsxs)(C,{value:`overlay`,children:[K(`engine.layers.overlay`,n),r?(0,Y.jsx)(k,{className:`ml-1.5 text-[10px] bg-emerald-600 text-emerald-50`,children:Ct(`layer`,e.overlayScope??`set`,n)}):(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px] text-muted-foreground`,children:Ct(`layer`,`none`,n)})]}),(0,Y.jsxs)(C,{value:`effective`,children:[K(`engine.layers.effective`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1.5 text-[10px]`,children:Ct(`layer`,`merged`,n)})]})]}),(0,Y.jsx)(_,{value:`diff`,className:`mt-3`,children:(0,Y.jsx)(an,{code:e.code,effective:e.effective,locale:n})}),(0,Y.jsx)(_,{value:`code`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.code,emptyHint:K(`engine.layers.diff.noBaseline`,n)})}),(0,Y.jsx)(_,{value:`overlay`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.overlay,emptyHint:K(`engine.layers.diff.noChanges`,n)})}),(0,Y.jsx)(_,{value:`effective`,className:`mt-3`,children:(0,Y.jsx)(sn,{payload:e.effective,emptyHint:`No effective value resolved.`})})]})}function an({code:e,effective:t,locale:n}){let[r,i]=J.useState(!1),a=J.useMemo(()=>e==null?[]:Qt(e,t),[e,t]),o=J.useMemo(()=>a.reduce((e,t)=>(e[t.status]+=1,e),{unchanged:0,modified:0,added:0,removed:0}),[a]);if(e==null)return(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:K(`engine.layers.diff.noBaseline`,n)});let s=r?a:a.filter(e=>e.status!==`unchanged`),c=o.modified>0||o.added>0||o.removed>0;return(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 flex-wrap`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:G(`engine.layers.diff.summary`,n,{modified:o.modified,added:o.added,removed:o.removed})}),(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground cursor-pointer select-none`,children:[(0,Y.jsx)(F,{checked:r,onCheckedChange:i,"aria-label":K(`engine.layers.diff.showUnchanged`,n)}),K(`engine.layers.diff.showUnchanged`,n),(0,Y.jsx)(k,{variant:`outline`,className:`ml-1 text-[10px]`,children:o.unchanged})]})]}),!c&&!r?(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:K(`engine.layers.diff.noChanges`,n)}):(0,Y.jsxs)(`div`,{className:`rounded border overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] bg-muted/50 text-[11px] font-medium uppercase tracking-wide text-muted-foreground`,children:[(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.field`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.code`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.effective`,n)}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:K(`engine.layers.diff.status`,n)})]}),(0,Y.jsx)(`div`,{className:`divide-y`,children:s.map(e=>{let t=X[e.status];return(0,Y.jsxs)(`div`,{className:ke(`grid grid-cols-[minmax(140px,1fr)_minmax(160px,1.4fr)_minmax(160px,1.4fr)_auto] text-xs`,t.row),children:[(0,Y.jsx)(`div`,{className:`px-3 py-2 font-mono text-foreground truncate`,title:e.key,children:e.key}),(0,Y.jsx)(on,{value:e.codeValue,muted:e.status===`added`}),(0,Y.jsx)(on,{value:e.effectiveValue,muted:e.status===`removed`}),(0,Y.jsx)(`div`,{className:`px-3 py-2`,children:(0,Y.jsx)(`span`,{className:ke(`inline-flex items-center rounded px-1.5 py-0.5 text-[10px] font-medium`,t.badge),children:K(`engine.layers.diff.${e.status}`,n)})})]},e.key)})})]})]})}function on({value:e,muted:t}){let n=tn(e);return(0,Y.jsx)(`div`,{className:ke(`px-3 py-2 font-mono break-all`,t||e===void 0?`text-muted-foreground italic`:`text-foreground`),title:n.length>200?n:void 0,children:n.length>200?`${n.slice(0,200)}…`:n})}function sn({payload:e,emptyHint:t}){if(e==null)return(0,Y.jsx)(`div`,{className:`rounded border bg-muted/30 p-4 text-xs text-muted-foreground`,children:t});let n;try{n=JSON.stringify(e,null,2)}catch{n=String(e)}return(0,Y.jsx)(`pre`,{className:`rounded border bg-muted/30 p-3 text-xs font-mono overflow-auto max-h-[420px]`,children:n})}var cn={modified:`bg-amber-100 text-amber-900 border border-amber-300 dark:bg-amber-950/60 dark:text-amber-200 dark:border-amber-800`,added:`bg-emerald-100 text-emerald-900 border border-emerald-300 dark:bg-emerald-950/60 dark:text-emerald-200 dark:border-emerald-800`,removed:`bg-rose-100 text-rose-900 border border-rose-300 dark:bg-rose-950/60 dark:text-rose-200 dark:border-rose-800`},ln={modified:`bg-amber-50/50 dark:bg-amber-950/20`,added:`bg-emerald-50/50 dark:bg-emerald-950/20`,removed:`bg-rose-50/50 dark:bg-rose-950/20`};function un(e,t){return K(e===`added`?`designer.canvas.diffAdded`:e===`removed`?`designer.canvas.diffRemoved`:`designer.canvas.diffChanged`,t)}function dn(e){if(e===void 0)return`—`;if(e===null)return`null`;if(typeof e==`string`)return e.length>200?`${e.slice(0,200)}…`:e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{let t=JSON.stringify(e);return t.length>200?`${t.slice(0,200)}…`:t}catch{return String(e)}}function fn(e,t){let n=0;for(let r of Qt(e,t))r.status!==`unchanged`&&(n+=1);return n}function pn({published:e,draft:t,locale:n,className:r}){let i=J.useMemo(()=>Qt(e,t).filter(e=>e.status!==`unchanged`),[e,t]);return i.length===0?(0,Y.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground ${r??``}`,children:K(`designer.draftReview.empty`,n)}):(0,Y.jsx)(`div`,{className:`flex flex-col gap-1.5 ${r??``}`,"data-testid":`draft-review-panel`,children:i.map(e=>{let t=e.status;return(0,Y.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2 rounded-md px-2.5 py-1.5 text-xs ${ln[t]}`,children:[(0,Y.jsx)(`span`,{className:`inline-flex shrink-0 items-center rounded px-1.5 py-px text-[10px] font-medium uppercase tracking-wide ${cn[t]}`,children:un(t,n)}),(0,Y.jsx)(`code`,{className:`font-mono font-medium text-foreground`,children:e.key}),t===`added`?(0,Y.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:dn(e.effectiveValue)}):t===`removed`?(0,Y.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:dn(e.codeValue)}):(0,Y.jsxs)(`span`,{className:`inline-flex items-baseline gap-1.5 text-muted-foreground`,children:[(0,Y.jsx)(`del`,{className:`text-rose-700 dark:text-rose-400`,children:dn(e.codeValue)}),(0,Y.jsx)(`span`,{"aria-hidden":`true`,children:`→`}),(0,Y.jsx)(`ins`,{className:`text-emerald-700 no-underline dark:text-emerald-400`,children:dn(e.effectiveValue)})]})]},e.key)})})}function mn({type:e,name:t,parentItem:n,onOpen:r}){let i=et(),a=s(),o=J.useMemo(()=>Mt(e),[e]),[c,l]=J.useState([]),[u,d]=J.useState(``),[f,p]=J.useState({});if(J.useEffect(()=>{if(o.length===0){l([]);return}let e=!1,r=[...o].sort((e,t)=>(e.anchor.order??999)-(t.anchor.order??999)).map(e=>{if(e.anchor.source===`embedded`){let t=e.anchor.extract&&n?e.anchor.extract(n):[];return{childType:e.type,anchor:e.anchor,loading:!1,error:null,items:t.map(hn)}}return{childType:e.type,anchor:e.anchor,loading:!0,error:null,items:[]}});return l(r),Promise.all(r.map(async n=>{if(n.anchor.source===`embedded`)return n;try{let r=await i.list(n.childType);if(e)return n;let a=n.anchor.match??(()=>!1),o=r.filter(e=>a(e,t)).map(e=>hn(e));return{...n,loading:!1,items:o}}catch(t){return e?n:{...n,loading:!1,error:t instanceof Error?t.message:String(t)}}})).then(t=>{e||l(t)}),()=>{e=!0}},[i,e,t,o,n]),o.length===0)return(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`No related metadata`}),(0,Y.jsxs)(L,{children:[`No metadata types are configured to anchor at `,(0,Y.jsx)(`code`,{children:e}),`. You can register one via`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`registerMetadataResource`}),`.`]})]});let m=c.reduce((e,t)=>e+t.items.length,0),h=c.some(e=>e.loading),g=u.trim().toLowerCase();return(0,Y.jsxs)(`div`,{className:`space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,Y.jsx)(I,{className:`absolute left-2 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,Y.jsx)(w,{placeholder:`Search related…`,value:u,onChange:e=>d(e.target.value),className:`pl-8 h-8 text-sm`})]}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:h?`Scanning…`:`${m} item${m===1?``:`s`}`})]}),c.map(n=>{let i=g?n.items.filter(e=>e.name.toLowerCase().includes(g)||(e.label??``).toLowerCase().includes(g)):n.items,o=f[n.childType]??!1;return!(!g||i.length>0)&&!n.loading?null:(0,Y.jsxs)(`div`,{className:`border rounded-lg overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`w-full flex items-center gap-2 px-3 py-2 bg-muted/40`,children:[(0,Y.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 flex-1 text-left hover:opacity-80`,onClick:()=>p(e=>({...e,[n.childType]:!o})),children:[(0,Y.jsx)(Fe,{className:ke(`h-4 w-4 text-muted-foreground transition-transform`,!o&&`rotate-90`)}),(0,Y.jsx)(`div`,{className:`text-sm font-medium`,children:n.anchor.groupLabel??n.childType}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px]`,children:n.loading?`…`:i.length})]}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,onClick:()=>{if(n.anchor.source===`embedded`){if(typeof window<`u`){let e=new URL(window.location.href);e.searchParams.set(`tab`,`form`),e.searchParams.delete(`open`),window.location.assign(e.toString())}return}a(`../../${encodeURIComponent(n.childType)}/_new?anchor=${encodeURIComponent(`${e}:${t}`)}`)},title:n.anchor.source===`embedded`?`Edit in Form tab`:`New ${n.childType}`,children:(0,Y.jsx)(y,{className:`h-3.5 w-3.5`})})]}),!o&&(0,Y.jsxs)(`div`,{children:[n.loading&&(0,Y.jsxs)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}),`Loading `,n.childType,`…`]}),!n.loading&&n.error&&(0,Y.jsxs)(`div`,{className:`px-3 py-3 text-xs text-destructive`,children:[`Failed: `,n.error]}),!n.loading&&!n.error&&i.length===0&&(0,Y.jsx)(`div`,{className:`px-3 py-3 text-xs text-muted-foreground`,children:g?`No matches.`:`Nothing here yet.`}),!n.loading&&!n.error&&i.length>0&&(0,Y.jsxs)(`table`,{className:`w-full text-sm border-t`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{className:`bg-muted/30 text-[10px] uppercase tracking-wider text-muted-foreground`,children:[(0,Y.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5 w-[45%]`,children:`Name`}),(0,Y.jsx)(`th`,{className:`text-left font-medium px-3 py-1.5`,children:`Label`}),(0,Y.jsx)(`th`,{className:`w-8`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:i.map((i,a)=>(0,Y.jsxs)(`tr`,{role:`button`,tabIndex:0,onClick:()=>r(n.anchor.source===`embedded`?{kind:`embedded`,parentType:e,parentName:t,groupLabel:n.anchor.groupLabel??n.childType,itemName:i.name,raw:i.raw,editAs:n.anchor.editAs,embeddedPath:n.anchor.embeddedPath}:{kind:`metadata`,type:n.childType,name:i.name}),onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&e.currentTarget.click()},className:`hover:bg-accent/50 cursor-pointer`,children:[(0,Y.jsx)(`td`,{className:`px-3 py-1.5 font-mono text-xs truncate max-w-0`,children:i.name}),(0,Y.jsx)(`td`,{className:`px-3 py-1.5 text-xs text-muted-foreground truncate max-w-0`,children:i.label&&i.label!==i.name?i.label:``}),(0,Y.jsx)(`td`,{className:`px-3 py-1.5 text-right`,children:(0,Y.jsx)(Ge,{className:`h-3.5 w-3.5 text-muted-foreground inline`})})]},`${i.name}-${a}`))})]})]})]},n.childType)})]})}function hn(e){return{name:gn(e,[`name`,`id`,`key`])??`(unnamed)`,label:gn(e,[`label`,`title`,`displayName`]),description:gn(e,[`description`,`summary`]),raw:e}}function gn(e,t){for(let n of t){let t=e[n];if(typeof t==`string`&&t.length>0)return t}}function _n({parentType:e,parentName:t,embeddedPath:n,itemName:r,editAs:i,initialRaw:a,onSaved:o}){let s=bt(),c=et(),{entries:l}=nt(c),u=i?l.find(e=>e.type===i):void 0,f=!u?.schema&&i?yn[i]:void 0,p=u?.schema??f?.schema,m=u?.form??f?.form,h=i?kt(i):void 0,[g,_]=J.useState(a),[v,y]=J.useState(!1),[b,x]=J.useState(null),[S,C]=J.useState([]),[w,ee]=J.useState(null);J.useEffect(()=>{_(a),x(null),C([]),ee(null)},[a,r,e,t]);let T=u!=null&&!u.allowOrgOverride&&!u.allowRuntimeCreate;async function E(){if(!n){x(K(`engine.embedded.saveNoPath`,s));return}y(!0),x(null),C([]);try{let i=await c.layered(e,t),a=vn(i.effective??i.code??{},n,r,g);await c.save(e,t,a),ee(Date.now()),o?.(g)}catch(e){if(e?.status===422||d(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],i=(Array.isArray(t)?t:[]).map(e=>{let t=Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),i=`${n}.${r}.`;return{path:t.startsWith(i)?t.slice(i.length):t,message:xt(String(e.message??`Invalid`),s)}});C(i),x(i.length===1?K(`engine.validation.failedOne`,s):G(`engine.validation.failed`,s,{count:i.length}))}else x(e?.message??String(e))}finally{y(!1)}}return p?(0,Y.jsxs)(`div`,{className:`p-4 space-y-4`,children:[b&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:b}),w!=null&&!b&&(0,Y.jsx)(`div`,{className:`text-sm text-emerald-700 border border-emerald-300 bg-emerald-50 rounded p-2`,children:K(`engine.embedded.saved`,s)}),T&&(0,Y.jsx)(`div`,{className:`text-xs text-amber-800 border border-amber-300 bg-amber-50 rounded p-2`,children:K(`engine.embedded.readOnlyParent`,s)}),h&&(0,Y.jsx)(h,{type:i,name:r,draft:g,locale:s,editing:!1}),(0,Y.jsx)(gt,{schema:p,idPath:vt,form:m,value:g,onChange:_,issues:S}),(0,Y.jsx)(`div`,{className:`flex justify-end gap-2 pt-2 border-t`,children:(0,Y.jsxs)(P,{onClick:E,disabled:v||!n,children:[v?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):(0,Y.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.embedded.saveIntoParent`,s,{parentType:e})]})}),!n&&(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground border rounded p-3`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,children:K(`engine.embedded.readOnly`,s)}),(0,Y.jsx)(`div`,{children:K(`engine.embedded.noPathHint`,s)})]})]}):(0,Y.jsxs)(`div`,{className:`p-4 space-y-3`,children:[(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:G(`engine.embedded.noSchema`,s,{type:i??`this item`,target:`${e}/${t}.${n}.${r}`})}),(0,Y.jsx)(`textarea`,{className:`w-full h-[60vh] font-mono text-xs border rounded p-3 bg-muted/30`,value:JSON.stringify(g,null,2),onChange:e=>{try{_(JSON.parse(e.target.value)),x(null)}catch(e){x(`${K(`engine.form.invalidJson`,s)}: ${e.message}`)}}}),b&&(0,Y.jsxs)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-2 bg-destructive/5`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 inline mr-1`}),` `,b]}),(0,Y.jsx)(`div`,{className:`flex justify-end`,children:(0,Y.jsxs)(P,{onClick:E,disabled:v||!n,children:[v?(0,Y.jsx)(B,{className:`h-4 w-4 mr-1 animate-spin`}):(0,Y.jsx)(Le,{className:`h-4 w-4 mr-1`}),G(`engine.embedded.saveIntoParent`,s,{parentType:`parent`})]})})]})}function vn(e,t,n,r){let i=t.split(`.`),a=structuredClone(e),o=a;for(let e=0;e<i.length-1;e++)o[i[e]]??(o[i[e]]={}),o=o[i[e]];let s=i[i.length-1],c=o[s];if(Array.isArray(c)){let e=c.findIndex(e=>e&&typeof e==`object`&&e.name===n);e>=0?c[e]=r:c.push(r)}else if(c&&typeof c==`object`){let{name:e,...t}=r;c[n]=t}else{let{name:e,...t}=r;o[s]={[n]:t}}return a}var yn={index:{schema:{type:`object`,required:[`fields`],properties:{name:{type:`string`,title:`Name`,description:`Index name (auto-generated from the columns if not provided).`},fields:{type:`array`,title:`Fields`,description:`Fields included in the index, in order.`,items:{type:`string`}},unique:{title:`Unique`,description:`Whether the index enforces uniqueness, and at which scope. 'global' materializes over exactly the listed fields — one holder across the whole installation. 'organization' has the driver prepend the NULL-safe organization key part at registration — one holder per organization. Leave empty for a non-unique index.`,anyOf:[{type:`string`,enum:[`global`,`organization`]},{type:`boolean`}]}}}}};function bn({target:e,onClose:t,parentContext:n}){let r=s(),i=e?.kind===`metadata`,a=e?.kind===`embedded`,o=i?e.type:a?e.groupLabel:``,c=i?e.name:a?e.itemName:``;return(0,Y.jsx)(Ve,{open:e!==null,onOpenChange:e=>{e||t()},children:(0,Y.jsxs)(Je,{side:`right`,className:ke(`w-[92vw] sm:max-w-[1100px] p-0 flex flex-col gap-0`),children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(k,{variant:`outline`,className:`font-mono text-[10px]`,children:o}),(0,Y.jsx)(oe,{className:`font-mono text-base truncate`,children:c}),(0,Y.jsx)(`div`,{className:`ml-auto flex items-center gap-1`,children:i&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>{r(`../../${encodeURIComponent(e.type)}/${encodeURIComponent(e.name)}`),t()},title:`Open in full page`,children:[(0,Y.jsx)(Ge,{className:`h-3.5 w-3.5 mr-1`}),`Open full page`]})})]}),n&&(0,Y.jsxs)(ve,{className:`text-xs`,children:[a?`Embedded in `:`Related to `,(0,Y.jsxs)(`span`,{className:`font-mono`,children:[n.type,`/`,n.name]})]})]}),(0,Y.jsxs)(`div`,{className:`flex-1 min-h-0 overflow-auto`,children:[i&&(0,Y.jsx)(Sr,{type:e.type,name:e.name,embedded:!0},`${e.type}/${e.name}`),a&&(0,Y.jsx)(_n,{parentType:e.parentType,parentName:e.parentName,embeddedPath:e.embeddedPath,itemName:e.itemName,editAs:e.editAs,initialRaw:e.raw},`${e.parentType}/${e.parentName}/${e.embeddedPath}/${e.itemName}`)]})]})})}function xn(e){if(!e)return``;let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleString()}function Sn(e,t){let n={allowed:{label:`allowed`,cls:`bg-emerald-50 text-emerald-700 border-emerald-200`,Icon:m},denied:{label:`denied`,cls:`bg-rose-50 text-rose-700 border-rose-200`,Icon:me},forced:{label:`forced`,cls:`bg-amber-50 text-amber-700 border-amber-200`,Icon:xe}},r=n[e]??n.allowed;return(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide ${r.cls}`,children:[(0,Y.jsx)(r.Icon,{className:`h-3 w-3`}),Ct(`outcome`,r.label,t)]})}function Cn({type:e,name:t,client:n,locale:r=`en-US`}){let[i,a]=J.useState({status:`idle`}),[o,s]=J.useState(!1),c=J.useCallback(async()=>{s(!0),a(e=>e.status===`loaded`?e:{status:`loading`});try{let r=await n.audit(e,t,{limit:100});a({status:`loaded`,data:r.events??[]})}catch(e){a({status:`error`,message:_t(e)})}finally{s(!1)}},[n,e,t]);return J.useEffect(()=>{c()},[c]),(0,Y.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b px-1 pb-2`,children:[i.status===`loaded`?(0,Y.jsxs)(`div`,{className:`text-xs text-muted-foreground`,"data-testid":`audit-count`,children:[i.data.length,` `,K(`engine.edit.auditCount`,r)]}):(0,Y.jsx)(`div`,{}),(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>void c(),disabled:o,className:`h-7 gap-1 text-xs`,title:K(`engine.edit.refresh`,r),children:[o?(0,Y.jsx)(B,{className:`h-3 w-3 animate-spin`}):(0,Y.jsx)(Be,{className:`h-3 w-3`}),K(`engine.edit.refresh`,r)]})]}),i.status===`error`&&(0,Y.jsx)(`div`,{"data-testid":`audit-error`,className:`m-2 rounded border border-rose-200 bg-rose-50 p-2 text-xs text-rose-700`,children:i.message}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-auto`,children:i.status===`idle`||i.status===`loading`?(0,Y.jsxs)(`div`,{className:`flex h-32 items-center justify-center text-xs text-muted-foreground`,children:[(0,Y.jsx)(B,{className:`mr-2 h-3 w-3 animate-spin`}),K(`engine.edit.loading`,r)]}):i.status===`error`?(0,Y.jsxs)(R,{className:`py-10`,"data-testid":`audit-error-state`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.auditErrorTitle`,r)}),(0,Y.jsx)(L,{children:K(`engine.edit.auditErrorDescription`,r)})]}):i.data.length===0?(0,Y.jsxs)(R,{className:`py-10`,"data-testid":`audit-empty`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.auditEmptyTitle`,r)}),(0,Y.jsx)(L,{children:K(`engine.edit.auditEmptyDescription`,r)})]}):(0,Y.jsxs)(`table`,{className:`w-full text-xs`,children:[(0,Y.jsx)(`thead`,{className:`sticky top-0 bg-muted/40 text-left text-[10px] uppercase tracking-wide text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColTime`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColActor`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColOperation`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColOutcome`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColLock`,r)}),(0,Y.jsx)(`th`,{className:`px-2 py-1.5 font-medium`,children:K(`engine.edit.auditColNote`,r)})]})}),(0,Y.jsx)(`tbody`,{children:i.data.map(e=>(0,Y.jsxs)(`tr`,{className:`border-t border-border/50 align-top hover:bg-muted/20`,children:[(0,Y.jsx)(`td`,{className:`whitespace-nowrap px-2 py-1.5 font-mono text-[11px]`,children:xn(e.occurredAt)}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:e.actor}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px]`,children:Ct(`op`,e.operation,r)})}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:Sn(e.outcome,r)}),(0,Y.jsx)(`td`,{className:`px-2 py-1.5`,children:e.lockState&&e.lockState!==`none`?(0,Y.jsxs)(`span`,{className:`font-mono text-[11px]`,children:[Ct(`lock`,e.lockState,r),e.lockOverridden?` *`:``]}):(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})}),(0,Y.jsx)(`td`,{className:`max-w-[28ch] truncate px-2 py-1.5 text-muted-foreground`,title:e.note??e.code,children:e.note??e.code})]},String(e.id)))})]})})]})}function wn(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i<t||!n;){let t=e.charCodeAt(r);if(t>=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i<t&&(a=-1),a}function p(e){r=e,i=``,a=0,o=16,d=0}function m(){let t=r;if(e.charCodeAt(r)===48)r++;else for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;if(r<e.length&&e.charCodeAt(r)===46){if(r++,r<e.length&&Dn(e.charCodeAt(r)))for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;else return d=3,e.substring(t,r)}let n=r;if(r<e.length&&(e.charCodeAt(r)===69||e.charCodeAt(r)===101)){if(r++,(r<e.length&&e.charCodeAt(r)===43||e.charCodeAt(r)===45)&&r++,r<e.length&&Dn(e.charCodeAt(r))){for(r++;r<e.length&&Dn(e.charCodeAt(r));)r++;n=r}else d=3}return e.substring(t,n)}function h(){let t=``,i=r;for(;;){if(r>=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=`
4
4
  `;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4,!0);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31){if(En(a)){t+=e.substring(i,r),d=2;break}d=6}r++}return t}function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(Tn(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(Tn(t));return o=15}if(En(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=`
5
5
  `),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r<n&&!En(e.charCodeAt(r));)r++;return i=e.substring(c,r),o=12}if(e.charCodeAt(r+1)===42){r+=2;let t=n-1,a=!1;for(;r<t;){let t=e.charCodeAt(r);if(t===42&&e.charCodeAt(r+1)===47){r+=2,a=!0;break}r++,En(t)&&(t===13&&e.charCodeAt(r)===10&&r++,s++,l=r)}return a||(r++,d=1),i=e.substring(c,r),o=13}return i+=String.fromCharCode(t),r++,o=16;case 45:if(i+=String.fromCharCode(t),r++,r===n||!Dn(e.charCodeAt(r)))return o=16;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return i+=m(),o=11;default:for(;r<n&&_(t);)r++,t=e.charCodeAt(r);if(a!==r){switch(i=e.substring(a,r),i){case`true`:return o=8;case`false`:return o=9;case`null`:return o=7}return o=16}return i+=String.fromCharCode(t),r++,o=16}}function _(e){if(Tn(e)||En(e))return!1;switch(e){case 125:case 93:case 123:case 91:case 34:case 58:case 44:case 47:return!1}return!0}function v(){let e;do e=g();while(e>=12&&e<=15);return e}return{setPosition:p,getPosition:()=>r,scan:t?v:g,getToken:()=>o,getTokenValue:()=>i,getTokenOffset:()=>a,getTokenLength:()=>r-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-u,getTokenError:()=>d}}function Tn(e){return e===32||e===9}function En(e){return e===10||e===13}function Dn(e){return e>=48&&e<=57}var On;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(On||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t));var kn=200;Array(kn).fill(0).map((e,t)=>`
6
6
  `+` `.repeat(t)),Array(kn).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(kn).fill(0).map((e,t)=>`\r
7
7
  `+` `.repeat(t)),Array(kn).fill(0).map((e,t)=>`
8
8
  `+` `.repeat(t)),Array(kn).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(kn).fill(0).map((e,t)=>`\r
9
- `+` `.repeat(t));var Z;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Z||={});function An(e,t=[],n=Z.DEFAULT){let r={type:`array`,offset:-1,length:-1,children:[],parent:void 0};function i(e){r.type===`property`&&(r.length=e-r.offset,r=r.parent)}function a(e){return r.children.push(e),e}Mn(e,{onObjectBegin:e=>{r=a({type:`object`,offset:e,length:-1,parent:r,children:[]})},onObjectProperty:(e,t,n)=>{r=a({type:`property`,offset:t,length:-1,parent:r,children:[]}),r.children.push({type:`string`,value:e,offset:t,length:n,parent:r})},onObjectEnd:(e,t)=>{i(e+t),r.length=e+t-r.offset,r=r.parent,i(e+t)},onArrayBegin:(e,t)=>{r=a({type:`array`,offset:e,length:-1,parent:r,children:[]})},onArrayEnd:(e,t)=>{r.length=e+t-r.offset,r=r.parent,i(e+t)},onLiteralValue:(e,t,n)=>{a({type:Nn(e),offset:t,length:n,parent:r,value:e}),i(t+n)},onSeparator:(e,t,n)=>{r.type===`property`&&(e===`:`?r.colonOffset=t:e===`,`&&i(t))},onError:(e,n,r)=>{t.push({error:e,offset:n,length:r})}},n);let o=r.children[0];return o&&delete o.parent,o}function jn(e,t){if(!e)return;let n=e;for(let e of t)if(typeof e==`string`){if(n.type!==`object`||!Array.isArray(n.children))return;let t=!1;for(let r of n.children)if(Array.isArray(r.children)&&r.children[0].value===e&&r.children.length===2){n=r.children[1],t=!0;break}if(!t)return}else{let t=e;if(n.type!==`array`||t<0||!Array.isArray(n.children)||t>=n.children.length)return;n=n.children[t]}return n}function Mn(e,t,n=Z.DEFAULT){let r=wn(e,!1),i=[],a=0;function o(e){return e?()=>a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function s(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice()):()=>!0}function l(e){return e?()=>{a>0?a++:e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice())===!1&&(a=1)}:()=>!0}function u(e){return e?()=>{a>0&&a--,a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter())}:()=>!0}let d=l(t.onObjectBegin),f=c(t.onObjectProperty),p=u(t.onObjectEnd),m=l(t.onArrayBegin),h=u(t.onArrayEnd),g=c(t.onLiteralValue),_=s(t.onSeparator),v=o(t.onComment),y=s(t.onError),b=n&&n.disallowComments,x=n&&n.allowTrailingComma;function S(){for(;;){let e=r.scan();switch(r.getTokenError()){case 4:C(14);break;case 5:C(15);break;case 3:C(13);break;case 1:b||C(11);break;case 2:C(12);break;case 6:C(16)}switch(e){case 12:case 13:b?C(10):v();break;case 16:C(1);break;case 15:case 14:break;default:return e}}}function C(e,t=[],n=[]){if(y(e),t.length+n.length>0){let e=r.getToken();for(;e!==17;){if(t.indexOf(e)!==-1){S();break}if(n.indexOf(e)!==-1)break;e=S()}}}function w(e){let t=r.getTokenValue();return e?g(t):(f(t),i.push(t)),S(),!0}function ee(){switch(r.getToken()){case 11:let e=r.getTokenValue(),t=Number(e);isNaN(t)&&(C(2),t=0),g(t);break;case 7:g(null);break;case 8:g(!0);break;case 9:g(!1);break;default:return!1}return S(),!0}function T(){return r.getToken()===10?(w(!1),r.getToken()===6?(_(`:`),S(),O()||C(4,[],[2,5])):C(5,[],[2,5]),i.pop(),!0):(C(3,[],[2,5]),!1)}function E(){d(),S();let e=!1;for(;r.getToken()!==2&&r.getToken()!==17;){if(r.getToken()===5){if(e||C(4,[],[]),_(`,`),S(),r.getToken()===2&&x)break}else e&&C(6,[],[]);T()||C(4,[],[2,5]),e=!0}return p(),r.getToken()===2?S():C(7,[2],[]),!0}function D(){m(),S();let e=!0,t=!1;for(;r.getToken()!==4&&r.getToken()!==17;){if(r.getToken()===5){if(t||C(4,[],[]),_(`,`),S(),r.getToken()===4&&x)break}else t&&C(6,[],[]);e?(i.push(0),e=!1):i[i.length-1]++,O()||C(4,[],[4,5]),t=!0}return h(),e||i.pop(),r.getToken()===4?S():C(8,[4],[]),!0}function O(){switch(r.getToken()){case 3:return D();case 1:return E();case 10:return w(!0);default:return ee()}}return S(),r.getToken()===17?n.allowEmptyContent?!0:(C(4,[],[]),!1):O()?(r.getToken()!==17&&C(9,[],[]),!0):(C(4,[],[]),!1)}function Nn(e){switch(typeof e){case`boolean`:return`boolean`;case`number`:return`number`;case`string`:return`string`;case`object`:return e?Array.isArray(e)?`array`:`object`:`null`;default:return`null`}}var Q;(function(e){e[e.None=0]=`None`,e[e.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=4]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=6]=`InvalidCharacter`})(Q||={});var Pn;(function(e){e[e.OpenBraceToken=1]=`OpenBraceToken`,e[e.CloseBraceToken=2]=`CloseBraceToken`,e[e.OpenBracketToken=3]=`OpenBracketToken`,e[e.CloseBracketToken=4]=`CloseBracketToken`,e[e.CommaToken=5]=`CommaToken`,e[e.ColonToken=6]=`ColonToken`,e[e.NullKeyword=7]=`NullKeyword`,e[e.TrueKeyword=8]=`TrueKeyword`,e[e.FalseKeyword=9]=`FalseKeyword`,e[e.StringLiteral=10]=`StringLiteral`,e[e.NumericLiteral=11]=`NumericLiteral`,e[e.LineCommentTrivia=12]=`LineCommentTrivia`,e[e.BlockCommentTrivia=13]=`BlockCommentTrivia`,e[e.LineBreakTrivia=14]=`LineBreakTrivia`,e[e.Trivia=15]=`Trivia`,e[e.Unknown=16]=`Unknown`,e[e.EOF=17]=`EOF`})(Pn||={});var Fn=An,In=jn,Ln;(function(e){e[e.InvalidSymbol=1]=`InvalidSymbol`,e[e.InvalidNumberFormat=2]=`InvalidNumberFormat`,e[e.PropertyNameExpected=3]=`PropertyNameExpected`,e[e.ValueExpected=4]=`ValueExpected`,e[e.ColonExpected=5]=`ColonExpected`,e[e.CommaExpected=6]=`CommaExpected`,e[e.CloseBraceExpected=7]=`CloseBraceExpected`,e[e.CloseBracketExpected=8]=`CloseBracketExpected`,e[e.EndOfFileExpected=9]=`EndOfFileExpected`,e[e.InvalidCommentToken=10]=`InvalidCommentToken`,e[e.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=14]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=16]=`InvalidCharacter`})(Ln||={});var Rn=J.lazy(async()=>({default:(await t(()=>import(`./dist-BK-OswHQ.js`).then(e=>e.n),[],import.meta.url)).Editor}));function $(e){try{return JSON.stringify(e??{},null,2)}catch{return`{}`}}function zn(e){return e?e.split(`.`).map(e=>{let t=Number(e);return Number.isInteger(t)&&String(t)===e?t:e}):[]}function Bn({value:e,onChange:t,readOnly:n,issues:r,height:i=`60vh`,fallbackDelayMs:a=4e3}){let o=bt(),[s,c]=J.useState(()=>$(e)),[l,u]=J.useState(null),d=J.useRef(s),f=J.useRef(null),p=J.useRef(null),[m,h]=Dt(a),[g,_]=J.useState(()=>typeof document>`u`?`light`:document.documentElement.classList.contains(`dark`)?`vs-dark`:`light`);J.useEffect(()=>{if(typeof document>`u`)return;let e=document.documentElement,t=new MutationObserver(()=>_(e.classList.contains(`dark`)?`vs-dark`:`light`));return t.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()},[]);let v=J.useCallback(()=>{let e=f.current,t=p.current;if(!e||!t)return;let n=e.getModel();if(!n)return;if(!r||r.length===0){t.editor.setModelMarkers(n,`objectui-diagnostics`,[]);return}let i;try{i=Fn(s)}catch{i=void 0}let a=r.map(e=>{let r=zn(e.path),a=1,o=1,s=1,c=2,l=i?In(i,r):void 0;if(l){let e=n.getPositionAt(l.offset),t=n.getPositionAt(l.offset+l.length);a=e.lineNumber,o=e.column,s=t.lineNumber,c=t.column}return{severity:e.severity===`warning`?t.MarkerSeverity.Warning:t.MarkerSeverity.Error,message:e.path?`${e.path}: ${e.message}`:e.message,startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,source:`metadata`}});t.editor.setModelMarkers(n,`objectui-diagnostics`,a)},[r,s]);J.useEffect(()=>{v()},[v]),J.useEffect(()=>{let t=$(e);t!==d.current&&(c(t),d.current=t,u(null))},[e]);let y=e=>{let n=e??``;c(n);try{let e=JSON.parse(n);e&&typeof e==`object`&&!Array.isArray(e)?(u(null),d.current=n,t(e)):u(K(`engine.form.rootJsonObject`,o))}catch(e){u(e?.message??K(`engine.form.invalidJson`,o))}};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`div`,{ref:h,"data-testid":`source-editor`,className:`border rounded overflow-hidden bg-background`,style:{height:typeof i==`number`?`${i}px`:i},children:m?(0,Y.jsx)(`textarea`,{value:s,onChange:e=>y(e.target.value),readOnly:n,spellCheck:!1,"aria-label":`JSON source`,className:`w-full h-full resize-none bg-background p-3 font-mono text-xs leading-relaxed outline-none`}):(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(Te,{className:`w-full h-full`}),children:(0,Y.jsx)(Rn,{value:s,language:`json`,theme:g,onChange:y,onMount:(e,t)=>{f.current=e,p.current=t,setTimeout(v,0)},options:{readOnly:n,minimap:{enabled:!1},fontSize:12,lineNumbers:`on`,scrollBeyondLastLine:!1,automaticLayout:!0,folding:!0,wordWrap:`on`,tabSize:2,renderLineHighlight:`line`,scrollbar:{verticalScrollbarSize:10,horizontalScrollbarSize:10}}})})}),l&&(0,Y.jsxs)(`div`,{className:`text-xs text-destructive flex items-start gap-1.5`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`⚠`}),(0,Y.jsx)(`span`,{children:l})]})]})}function Vn(e){return!!e&&typeof e==`object`&&`viewKind`in e}function Hn(e,t){return{safeParse:n=>(Vn(n)?e:t).safeParse(n)}}var Un={wireItem:0,container:1};function Wn(e){return Vn(e)?Un.wireItem:Un.container}var Gn={ofStrings:0,ofObjects:1};function Kn(e){return e.some(e=>e.code===`invalid_type`&&(e.path??[]).length===0)}function qn(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Jn(e,t){if(e.length!==2||!Array.isArray(t)||t.length===0||e.some(Kn))return null;let n=t[0];return typeof n==`string`?Gn.ofStrings:typeof n==`object`&&n&&!Array.isArray(n)?Gn.ofObjects:null}function Yn(e){let t=null;for(let n=0;n<e.length;n++)if(!Kn(e[n])){if(t!==null)return null;t=n}return t}function Xn(e,t){let n=Jn(e,t);return n===null?Yn(e):n}function Zn(e,t,n){if(e.code!==`invalid_union`)return null;let r=e.errors;if(!Array.isArray(r))return null;let i=t.length===0?Wn(n):Xn(r,qn(n,t));if(i===null)return null;let a=r[i];return!Array.isArray(a)||a.length===0?null:a}function Qn(e,t,n){return e.flatMap(e=>{let r=[...t,...e.path??[]],i=Zn(e,r,n);return i?Qn(i,r,n):[{...e,path:r}]})}var $n=new Set([`sharing_rule`]),er={object:async()=>(await t(async()=>{let{ObjectSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>(e.Ot(),e.Ct));return{ObjectSchema:e}},[],import.meta.url)).ObjectSchema,hook:async()=>(await t(async()=>{let{HookSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>(e.Ot(),e.Ct));return{HookSchema:e}},[],import.meta.url)).HookSchema,mapping:async()=>(await t(async()=>{let{MappingSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>(e.Ot(),e.Ct));return{MappingSchema:e}},[],import.meta.url)).MappingSchema,analytics_cube:async()=>(await t(async()=>{let{CubeSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>(e.Ot(),e.Ct));return{CubeSchema:e}},[],import.meta.url)).CubeSchema,view:async e=>{let{ViewItemSchema:n,ViewSchema:r,ViewMetadataSchema:i}=await t(async()=>{let{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}},[],import.meta.url);return e===`edit`?i:Hn(n,r)},page:async()=>(await t(async()=>{let{PageSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{PageSchema:e}},[],import.meta.url)).PageSchema,app:async()=>(await t(async()=>{let{AppSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{AppSchema:e}},[],import.meta.url)).AppSchema,dashboard:async()=>(await t(async()=>{let{DashboardSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{DashboardSchema:e}},[],import.meta.url)).DashboardSchema,report:async()=>(await t(async()=>{let{ReportSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{ReportSchema:e}},[],import.meta.url)).ReportSchema,action:async()=>(await t(async()=>{let{ActionSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.Fn);return{ActionSchema:e}},[],import.meta.url)).ActionSchema,flow:async()=>(await t(async()=>{let{FlowSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.T);return{FlowSchema:e}},[],import.meta.url)).FlowSchema,webhook:async()=>(await t(async()=>{let{WebhookSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.T);return{WebhookSchema:e}},[],import.meta.url)).WebhookSchema,agent:async()=>(await t(async()=>{let{AgentSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.n);return{AgentSchema:e}},[],import.meta.url)).AgentSchema,tool:async()=>(await t(async()=>{let{ToolSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.n);return{ToolSchema:e}},[],import.meta.url)).ToolSchema,skill:async()=>(await t(async()=>{let{SkillSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.n);return{SkillSchema:e}},[],import.meta.url)).SkillSchema,email_template:async()=>(await t(async()=>{let{EmailTemplateDefinitionSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.m);return{EmailTemplateDefinitionSchema:e}},[],import.meta.url)).EmailTemplateDefinitionSchema,job:async()=>(await t(async()=>{let{JobSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.m);return{JobSchema:e}},[],import.meta.url)).JobSchema,translation:async()=>(await t(async()=>{let{TranslationItemSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.m);return{TranslationItemSchema:e}},[],import.meta.url)).TranslationItemSchema,permission:async()=>(await t(async()=>{let{PermissionSetSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.H);return{PermissionSetSchema:e}},[],import.meta.url)).PermissionSetSchema,sharing_rule:async()=>(await t(async()=>{let{SharingRuleSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.H);return{SharingRuleSchema:e}},[],import.meta.url)).SharingRuleSchema,position:async()=>(await t(async()=>{let{PositionSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.o);return{PositionSchema:e}},[],import.meta.url)).PositionSchema,api:async()=>(await t(async()=>{let{ApiEndpointSchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>(e.rt(),e.nt));return{ApiEndpointSchema:e}},[],import.meta.url)).ApiEndpointSchema,connector:async()=>(await t(async()=>{let{DeclarativeConnectorEntrySchema:e}=await import(`./vendor-objectstack-BeKUVjuj.js`).then(e=>e.t);return{DeclarativeConnectorEntrySchema:e}},[],import.meta.url)).DeclarativeConnectorEntrySchema},tr=new Set([`approval`,`connector_action`]),nr=/^nodes\.(\d+)\.type$/;function rr(e,t){let n=e?.nodes;if(!Array.isArray(n))return;let r=n[t];return typeof r?.type==`string`?r.type:void 0}var ir=[`visibleWhen`,`readonlyWhen`,`requiredWhen`];function ar(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.source==`string`){let t=e.dialect;if(t===void 0||t===`cel`)return e.source}return null}async function or(e){let t=e,n=ft(t?.fields);if(n.entries.length===0)return[];let r=typeof t?.name==`string`?t.name:void 0,i=n.entries.map(e=>e.name),a=[];for(let e=0;e<n.entries.length;e++){let t=n.entries[e],o=n.shape===`array`?String(e):t.name;for(let e of ir){let n=ar(t.def[e]);if(n==null||!n.trim())continue;let s=await W(n,{objectName:r,fields:i,scope:`record`});for(let t of s)t.severity===`error`&&a.push({path:`fields.${o}.${e}`,message:t.message})}if(t.def.type===`formula`){let e=ar(t.def.expression);if(e==null||!e.trim())continue;let n=await W(e,{objectName:r,fields:i.filter(e=>e!==t.name),scope:`record`,role:`value`});for(let e of n)e.severity===`error`&&a.push({path:`fields.${o}.expression`,message:e.message})}}return a}var sr=`formula`;function cr(e){return`Field \`${e}\` carries the retired \`${sr}\` key. To migrate: select the field in the object designer and make one edit in its Formula (CEL) editor — that commits the value to \`expression\`, clears the retired key, and the object saves again.`}function lr(e,t){return e.map(e=>{if(e.code!==`unrecognized_keys`)return e;let n=e.path??[];if(n.length!==2||n[0]!==`fields`||typeof n[1]!=`string`||!e.keys?.includes(sr))return e;let r=qn(t,n);return!r||r.type!==`formula`?e:{...e,message:`${e.message} ${cr(n[1])}`}})}var ur=new Map;async function dr(e,t){let n=`${t}:${e}`;if(ur.has(n))return ur.get(n)??null;let r=er[e];if(!r||t===`edit`&&$n.has(e))return ur.set(n,null),null;try{let e=await r(t),i=e&&typeof e.safeParse==`function`?e:null;return ur.set(n,i),i}catch{return ur.set(n,null),null}}function fr(e,t=`create`){return e in er&&!(t===`edit`&&$n.has(e))}async function pr(e,t,n,r){let i=await dr(e,r?.mode??`create`);if(!i)return{ok:!0,issues:[]};let a=e===`object`?await or(t):[],o=i.safeParse(t);if(o.success)return a.length>0?{ok:!1,issues:a}:{ok:!0,issues:[]};let s=o.error?.issues??[],c=Array.isArray(n?.required)?new Set(n.required.map(e=>String(e))):void 0;if(c&&t&&typeof t==`object`&&!Array.isArray(t)){let e=t;s=s.filter(t=>{let n=t.path??[];if(n.length!==1)return!0;let r=String(n[0]);return!((e[r]===void 0||e[r]===null)&&!c.has(r))})}return e===`flow`&&(s=s.filter(e=>{let n=(e.path??[]).map(e=>String(e)).join(`.`),r=nr.exec(n);if(!r)return!0;let i=rr(t,Number(r[1]));return!(i&&tr.has(i))})),s.length===0&&a.length===0?{ok:!0,issues:[]}:{ok:!1,issues:[...(e===`view`?Qn(s,[],t):e===`object`?lr(s,t):s).map(e=>({path:(e.path??[]).map(e=>String(e)).join(`.`),message:e.message})),...a]}}function mr(e,t,n){let r=t.split(`.`);if(r.length<=1)return e;let i=[e],a=gr(n)?.[r[0]];for(let e=1;e<r.length;e++){let t=r[e];if(/^\d+$/.test(t)){let e=Number(t),n=Array.isArray(a)?a[e]:void 0;i.push(hr(n)??`#${e+1}`),a=n}else i.push(t),a=gr(a)?.[t]}return i.join(` → `)}function hr(e){let t=gr(e);if(t)for(let e of[`id`,`name`,`key`,`title`,`label`]){let n=t[e];if(typeof n==`string`&&n.trim())return n;let r=gr(n);if(r){let e=r.defaultValue??r.key;if(typeof e==`string`&&e.trim())return e}}}function gr(e){return e&&typeof e==`object`?e:void 0}function _r(e,t,n){return e.createBuildBody?e.createBuildBody(t):{...n??e.createDefaults??{},...t}}var vr={"no-overlay":`engine.edit.lockNoOverlay`,"no-delete":`engine.edit.lockNoDelete`,full:`engine.edit.lockFull`};function yr(e,t){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(vr,e)?K(vr[e],t):G(`engine.edit.lockUnknown`,t,{state:String(e)})}var br=new Set([`object`,`report`,`dataset`]),xr={object:[`fields`,`fieldGroups`]};function Sr(e){if(!e||typeof e!=`object`)return null;let t=e;if(!(`item`in t))return null;let n=t.item;return!n||typeof n!=`object`?null:Object.keys(n).length>0?n:null}function Cr(){try{let e=new URLSearchParams(window.location.search).get(`package`);return e&&e!==`all`?e:void 0}catch{return}}function wr(e){return e.loadFailed?!1:e.hasDiag||e.hasClientValidator}function Tr({type:e,name:t,createMode:n=!1,embedded:r=!1}){let i=o(),a=e??i.type??``,s=t??i.name??``,c=wt(a);if(c?.EditPage&&!n){let e=c.EditPage;return(0,Y.jsx)(e,{type:a,name:s})}if(c?.CreatePage&&n){let e=c.CreatePage;return(0,Y.jsx)(e,{type:a})}return(0,Y.jsx)(Er,{type:a,name:s,createMode:n,embedded:r})}function Er({type:e,name:t,createMode:n,embedded:r}){let i=s(),[o,c]=a(),l=o.get(`package`)??void 0,u=et(),{entries:p}=nt(u),_=p.find(t=>t.type===e),y=Tt(e,_),b=(n&&y.createSchema?y.createSchema:_?.schema)??y.defaultSchema,x=bt(),S=n?`create`:`edit`,[C,w]=J.useState(null),ee=y.identityField??`name`,[T,E]=J.useState(()=>n?{...y.createDefaults??{},[ee]:``}:{}),[D,O]=J.useState({status:`idle`}),[te,A]=J.useState(!n),[j,le]=J.useState(!1),[ue,N]=J.useState(null),[fe,F]=J.useState(!1),[me,I]=J.useState([]),[xe,Te]=J.useState(!1),L=J.useCallback(e=>{E(t=>{let n=typeof e==`function`?e(t):e,r=new Set,i=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of i)Object.is(t?.[e],n?.[e])||r.add(e);return r.size>0&&(Te(!0),I(e=>e.filter(e=>{let t=(e.path??``).split(`.`)[0];return!r.has(t)}))),n})},[]),[De,Oe]=J.useState(null),[ke,R]=J.useState(null),Me=J.useCallback(e=>{L(t=>({...t,...e}))},[L]),{markTouched:Fe}=tt({rules:y.createDerive,draft:T,onPatch:Me,enabled:!!n}),z=J.useMemo(()=>{if(!n)return;if(y.createFields&&y.createFields.length>0)return y.createFields;let e=b?.properties??void 0,t=b?.required??void 0;return rt(e,t)},[n,y.createFields,b]),ze=J.useMemo(()=>{let t=xr[e]??[];if(!n||!z)return t.length===0?y.hiddenFields:Array.from(new Set([...y.hiddenFields??[],...t]));let r=b?.properties??{},i=new Set(z),a=Object.keys(r).filter(e=>!i.has(e));if(y.hiddenFields)for(let e of y.hiddenFields)a.includes(e)||a.push(e);for(let e of t)a.includes(e)||a.push(e);return a},[n,z,b,y.hiddenFields,e]),Be=J.useMemo(()=>n&&z?z:y.fieldOrder,[n,z,y.fieldOrder]),V=J.useCallback(e=>{if(n){let t=T,n=typeof e==`function`?e(t):e,r=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of r)Object.is(t?.[e],n?.[e])||Fe(e)}L(e)},[n,T,L,Fe]);J.useEffect(()=>{if(!fr(e,S))return;let t=!1,n=window.setTimeout(()=>{pr(e,T,_?.schema,{mode:S}).then(e=>{t||I(e.issues)})},200);return()=>{t=!0,window.clearTimeout(n)}},[e,T,_?.schema,S]);let We=J.useMemo(()=>n&&!xe?[]:me,[n,xe,me]),Ge=J.useMemo(()=>{let t=C?._diagnostics,n=fr(e,S)?We.map(e=>({path:e.path,message:xt(e.message,x)})):(t?.errors??[]).map(e=>({path:e.path,message:xt(e.message,x)})),r=(t?.warnings??[]).map(e=>({path:e.path,message:xt(e.message,x)}));return[...n.map(e=>({path:e.path||void 0,message:e.message,severity:`error`})),...r.map(e=>({path:e.path||void 0,message:e.message,severity:`warning`}))]},[C,We,e,x,S]),[Xe,Ze]=J.useState(!1),[Qe,$e]=J.useState(!1),[at,ot]=J.useState(0),[U,st]=J.useState(!!n),[W,_t]=J.useState(null);J.useEffect(()=>{_t(null)},[e,t]);let[vt,St]=J.useState({key:``,count:0}),Ct=W?`${e}:${t}:${W.kind}:${W.id}`:`${e}:${t}:default`,q=vt.key===Ct?vt.count:0;J.useEffect(()=>{U||_t(null)},[U]);let wt=ut(o.get(`sel`)),Et=J.useRef(null);J.useEffect(()=>{if(e!==`app`||!wt||Et.current===`${t}:${wt}`||!T||Object.keys(T).length===0)return;let n=lt(T,wt);n&&(Et.current=`${t}:${wt}`,st(!0),_t({kind:`nav`,id:n.selectionId,label:n.label}))},[e,t,wt,T]),J.useEffect(()=>{if(e!==`app`)return;let t=W?.kind===`nav`?ct(T,W.id):null;c(e=>{let n=new URLSearchParams(e);return t?n.set(`sel`,dt(t)):n.delete(`sel`),n},{replace:!0})},[e,W]);let Dt=J.useRef(null),[jt,Ft]=J.useState(null),[It,Lt]=J.useState(()=>{if(typeof window>`u`)return!0;try{let e=window.localStorage.getItem(`metadata-admin:autosave`);return e===null||e===`1`}catch{return!0}});J.useEffect(()=>{try{window.localStorage.setItem(`metadata-admin:autosave`,It?`1`:`0`)}catch{}},[It]);let Rt=J.useRef(null),zt=yt(J.useCallback(async()=>(await u.list(`object`)).map(e=>e?.name).filter(e=>!!e).sort(),[u])),Bt=T?.interfaceConfig?.source||T?.data?.object||T?.object||T?.objectName,Vt=yt(J.useMemo(()=>Bt?async()=>{let e=await u.get(`object`,Bt),t=e?.fields,n=Array.isArray(t)?t.map(e=>({name:e?.name,label:e?.label,type:e?.type})):t&&typeof t==`object`?Object.entries(t).map(([e,t])=>({name:e,label:t?.label,type:t?.type})):[],r=e?.actions,i=Array.isArray(r)?r.map(e=>({name:e?.name,label:e?.label,locations:e?.locations})).filter(e=>!!e.name):[];return{fields:n.filter(e=>!!e.name),actions:i}}:null,[u,Bt])),Ht=yt(J.useMemo(()=>Bt?async()=>{let e=(await u.list(`view`)||[]).filter(e=>(e?.objectName??e?.object??e?.object_name)===Bt),t=new Set;return e.map(e=>({name:e?.name,label:e?.label||void 0})).filter(e=>!!e.name&&!t.has(e.name)&&t.add(e.name))}:null,[u,Bt])),Ut=J.useMemo(()=>e===`page`?pt(T):[],[e,T]),Wt=J.useMemo(()=>({objectNames:zt,objectFields:mt(Vt,e=>e.fields),objectActions:mt(Vt,e=>e.actions),objectViews:Ht,componentIds:Ut}),[zt,Vt,Ht,Ut]);J.useEffect(()=>{if(n){A(!1);return}let r=!1;return A(!0),N(null),F(!1),(async()=>{try{let n=l?{packageId:l}:{},[i,a]=await Promise.all([u.layered(e,t,n),u.getDraft(e,t,n).catch(()=>null)]);if(r)return;w(i);let o=i?._diagnostics;o&&o.valid===!1&&Array.isArray(o.errors)?I(o.errors.map(e=>({path:e.path||``,message:e.message}))):I([]);let s=Sr(a),c=i.effective??i.code??{},d=s?{...c,...s}:c,f=y.toDraft?y.toDraft(d):d;E(f),Dt.current=f,Ze(!!s),A(!1)}catch(n){r||(F(!0),N(G(`engine.edit.loadFailed`,x,{type:e,name:t??``,message:n?.message??String(n)})),A(!1))}})(),()=>{r=!0}},[u,e,t,l,n,at,x]);async function Gt(){if(D.status!==`loading`&&D.status!==`loaded`){O({status:`loading`});try{let n=await u.references(e,t);O({status:`loaded`,items:n})}catch(e){O({status:`error`,message:String(e?.message??e)})}}}let[qt,Jt]=J.useState(null),Yt=J.useMemo(()=>!n&&!r&&Mt(e).length>0,[e,n,r]),Xt=J.useRef(null),[Zt,X]=J.useState(null),Qt=o.get(`review`),$t=J.useRef(!1);J.useEffect(()=>{if(!(Qt!==`1`||n)){if(!$t.current){$t.current=!0,ot(e=>e+1);return}if(!te){Xe&&X(`review`);let e=new URLSearchParams(o);e.delete(`review`),c(e,{replace:!0}),$t.current=!1}}},[Qt,n,te,Xe]);let[en,tn]=J.useState(`properties`);J.useEffect(()=>{if(Zt===`references`&&Gt(),typeof window<`u`&&!r){let e=new URL(window.location.href);Zt?e.searchParams.set(`tab`,Zt):e.searchParams.delete(`tab`),window.history.replaceState({},``,e.toString())}},[Zt,r]);let an=`metadata-edit:inspector-collapsed`,on=`metadata-edit:inspector-size`,[sn,cn]=J.useState(()=>typeof window>`u`?!1:window.localStorage.getItem(an)===`1`),ln=J.useRef(38);J.useEffect(()=>{if(typeof window>`u`)return;let e=Number(window.localStorage.getItem(on));Number.isFinite(e)&&e>=22&&e<=80&&(ln.current=e)},[]);let un=J.useRef(null),dn=J.useCallback(()=>{cn(e=>{let t=!e;return typeof window<`u`&&window.localStorage.setItem(an,t?`1`:`0`),t})},[]);J.useEffect(()=>{let e=un.current;if(e){if(sn)e.resize?.(`0%`);else{let t=ln.current||38;e.resize?.(`${t}%`)}}},[sn]);let[hn,gn]=J.useState(!1),[_n,vn]=J.useState(!1);J.useEffect(()=>{if(typeof document>`u`||!_n)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[_n]),J.useEffect(()=>{if(typeof window>`u`||!_n)return;function e(e){e.key===`Escape`&&(e.preventDefault(),vn(!1))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_n]);let yn=!n&&C?.code!=null&&C.code?._packageId!==`sys_metadata`&&C?.provenance!==`org`,xn=C?.resettable,Sn=!n&&(xn??yn),wn=J.useRef(null);J.useEffect(()=>{wn.current=null},[e,t]),J.useEffect(()=>{if(n||r||te)return;let i=`${e}/${t??``}`;wn.current!==i&&kt(e)&&(yn?_?.allowOrgOverride:_?.allowOrgOverride||_?.allowRuntimeCreate)&&(wn.current=i,st(!0))},[e,t,n,r,te,_,yn]),J.useEffect(()=>{if(typeof window>`u`||r)return;function e(e){if(!(e.metaKey||e.ctrlKey)||e.shiftKey||e.altKey||e.key!==`\\`)return;let t=e.target;t&&(t.tagName===`TEXTAREA`||t.isContentEditable)||(e.preventDefault(),dn())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,dn]),J.useEffect(()=>{if(typeof window>`u`||r)return;let e=new URLSearchParams(window.location.search),t=e.get(`tab`);(t===`layers`||t===`references`||t===`related`||t===`audit`)&&X(t),Xt.current=t;let n=e.get(`open`);if(n&&n.includes(`:`)){let[e,t]=n.split(`:`,2);e&&t&&Jt({kind:`metadata`,type:e,name:t})}},[]),J.useEffect(()=>{if(typeof window>`u`||r)return;let e=new URL(window.location.href);qt?.kind===`metadata`?e.searchParams.set(`open`,`${qt.type}:${qt.name}`):e.searchParams.delete(`open`),window.history.replaceState({},``,e.toString())},[qt,r]);function Tn(e){let t=e.split(`.`)[0];return t?mr((()=>{let e=n&&y.createSchema?void 0:_?.form,r=Array.isArray(e?.sections)?e.sections:[];for(let e of r){let n=Array.isArray(e?.fields)?e.fields:[];for(let e of n)if(typeof e==`string`){if(e===t)return e}else if(e?.field===t)return String(e.label??t)}let i=b?.properties??{};return String(i[t]?.title??t)})(),e,T):e}async function En(r){le(!0),N(null),I([]);try{let a=_?.createSeed,s=n?_r(y,T,a):y.fromDraft?y.fromDraft(T):T;if(n&&y.createSeed)try{let e=await y.createSeed(T,{client:u});e&&typeof e==`object`&&(s={...s,...e})}catch{}let c=String(s[ee]??T[ee]??t),d=n?{...s,[ee]:c}:s;if(!c){N(K(`engine.validation.nameRequired`,x)),le(!1);return}let f=Cr();await u.save(e,c,d,{force:r,mode:`draft`,...f?{packageId:f}:{}});let p=l?{packageId:l}:{},[m,h]=await Promise.all([u.layered(e,c,p),u.getDraft(e,c,p).catch(()=>null)]);w(m);let g=Sr(h);Ze(!!g);let v=m.effective??d,b=g?{...v,...g}:v,S=y.toDraft?y.toDraft(b):b;E(S),Dt.current=S,Ft(new Date),Rt.current=JSON.stringify(S),Oe(null),R(null);let C=!n&&!!kt(e);if(!n&&!C&&st(!1),n){let e=o.toString();i(`../${encodeURIComponent(c)}${e?`?${e}`:``}`,{relative:`path`})}}catch(e){if(e?.status===409&&f(e,`DESTRUCTIVE_CHANGE`)){let t=e?.body?.issues??[];Oe(Array.isArray(t)?t:[]),R(T)}else if(f(e,`WRITABLE_PACKAGE_REQUIRED`))N(K(`engine.package.writableRequired`,x));else if(e?.status===422||d(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],n=(Array.isArray(t)?t:[]).map(e=>({path:Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),message:xt(String(e.message??`Invalid`),x)})),r=String(e?.body?.error??e?.message??``);if(n.length===0&&r){let e=r.match(/failed spec validation:\s*(.+?):\s*(.+)$/);n=e?[{path:e[1].trim(),message:xt(e[2].trim(),x)}]:[{path:``,message:xt(r,x)}]}I(n),n.length===1&&!n[0].path?N(n[0].message):n.length===1?N(`${Tn(n[0].path)}: ${n[0].message}`):N(G(`engine.validation.failed`,x,{count:n.length}))}else N(e?.message??String(e))}finally{le(!1)}}async function Dn(){if(confirm(G(Sn?`engine.edit.resetConfirm`:`engine.edit.deleteConfirm`,x,{type:e,name:t??``}))){le(!0),N(null);try{if(await u.reset(e,t),Sn){let n=await u.layered(e,t);w(n);let r=n.effective??n.code??{};E(r),Dt.current=r,kt(e)?wn.current=null:st(!1)}else i(`../`,{relative:`path`})}catch(e){N(e?.message??String(e))}finally{le(!1)}}}async function On(){$e(!0),N(null);try{let n=Cr();await u.publish(e,t,{...n?{packageId:n}:{}});let[r,i]=await Promise.all([u.layered(e,t),u.getDraft(e,t).catch(()=>null)]);w(r);let a=Sr(i);Ze(!!a);let o=r.effective??T,s=a?{...o,...a}:o;E(s),Dt.current=s}catch(e){N(e?.message??String(e))}finally{$e(!1)}}async function kn(){if(confirm(G(`engine.edit.discardDraftConfirm`,x,{type:e,name:t??``}))){le(!0),N(null);try{await u.reset(e,t,{state:`draft`});let n=await u.layered(e,t);w(n);let r=n.effective??n.code??{};E(r),Dt.current=r,Ze(!1)}catch(e){N(e?.message??String(e))}finally{le(!1)}}}let Z=J.useMemo(()=>{if(n)return Object.keys(T).length>0;let e=Dt.current;if(!e)return!1;try{return JSON.stringify(T)!==JSON.stringify(e)}catch{return!1}},[T,n]),An=C?.editable!==!1,jn=C?.deletable!==!1,Mn=C?.lockReason,Nn=C?.lock&&C.lock!==`none`,Q=(n?!!(_?.allowOrgOverride||_?.allowRuntimeCreate):yn?!!_?.allowOrgOverride:!!(_?.allowOrgOverride||_?.allowRuntimeCreate))&&(n||An),Pn=!Q&&!n,Fn=J.useRef(En);J.useEffect(()=>{Fn.current=En}),J.useEffect(()=>{if(!It||n||Pn||!U||!Z||j||q>0)return;let e;try{e=JSON.stringify(T)}catch{return}if(e===Rt.current)return;let t=window.setTimeout(()=>{Rt.current=e,Fn.current(!1)},1500);return()=>window.clearTimeout(t)},[T,Z,U,j,n,Pn,It,q]),J.useEffect(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`){if(!Q||Pn||!U&&!n)return;e.preventDefault(),!j&&(n||Z)&&q===0&&Fn.current(!1)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Q,Pn,U,n,j,Z,q]),J.useEffect(()=>{if(!Z)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[Z]),J.useEffect(()=>{if(!Z)return;let e=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target?.closest?.(`a[href]`);if(t&&!(t.target&&t.target!==`_self`)&&!t.hasAttribute(`download`)){try{let e=new URL(t.href,window.location.href);if(e.origin!==window.location.origin||e.pathname===window.location.pathname)return}catch{return}confirm(K(`engine.edit.unsavedLeaveConfirm`,x))||(e.preventDefault(),e.stopPropagation())}};return document.addEventListener(`click`,e,!0),()=>document.removeEventListener(`click`,e,!0)},[Z,x]);let In=J.useMemo(()=>{if(r)return null;let n=String(T.name??t??``);if(!n)return null;let i={type:e,name:n,label:typeof T.label==`string`?T.label:void 0};return e===`object`&&(i.fields=ft(T.fields).entries.slice(0,60).map(e=>({name:e.name,type:typeof e.def.type==`string`?e.def.type:void 0,label:typeof e.def.label==`string`?e.def.label:void 0,required:!!e.def.required||void 0}))),i},[r,e,t,T]);if(it(In),te)return(0,Y.jsx)(Nt,{entry:_,itemName:t,children:(0,Y.jsxs)(`div`,{className:`p-6 text-sm text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-4 w-4 animate-spin`}),` Loading `,e,`/`,t,`…`]})});let Ln=Pn&&yn&&!!_?.allowRuntimeCreate,Rn=br.has(e),$=!r&&(!n||Rn)?kt(e):void 0,zn=r?ht:void 0,Vn=Ot(e),Hn=At(e);function Un(){Dt.current&&E(Dt.current),I([]),N(null),st(!1)}let Wn=Pn||!U&&!n,Gn=(0,Y.jsxs)(Y.Fragment,{children:[!n&&(0,Y.jsx)(Kt,{entry:_,location:`record_header`,recordId:t,onAfter:()=>ot(e=>e+1)}),(!n||Yt)&&(0,Y.jsxs)(`div`,{className:`flex items-center rounded-md border bg-background p-0.5`,children:[!n&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`layers`),title:K(`engine.edit.layers`,x),className:`h-7 w-7 p-0 relative`,children:[(0,Y.jsx)(Ae,{className:`h-3.5 w-3.5`}),C?.overlay&&(()=>{let e=nn(C.code,C.effective);return e>0?(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-emerald-600 text-emerald-50 text-[9px] leading-[14px] text-center font-medium`,title:K(`engine.layers.diff`,x),children:e}):null})()]}),!n&&Xe&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`review`),title:K(`designer.draftReview.title`,x),className:`h-7 w-7 p-0 relative`,"data-testid":`resource-review-trigger`,children:[(0,Y.jsx)(pe,{className:`h-3.5 w-3.5`}),(()=>{let e=fn(C?.effective??null,T);return e>0?(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-amber-500 text-amber-50 text-[9px] leading-[14px] text-center font-medium`,title:G(`designer.draftReview.badge`,x,{n:e}),children:e}):null})()]}),!n&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`references`),title:K(`engine.edit.references`,x),className:`h-7 w-7 p-0 relative`,children:[(0,Y.jsx)(M,{className:`h-3.5 w-3.5`}),D.status===`loaded`&&D.items.length>0&&(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-muted text-foreground text-[9px] leading-[14px] text-center font-medium border`,children:D.items.length})]}),Yt&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`related`),title:K(`engine.edit.related`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(ie,{className:`h-3.5 w-3.5`})}),!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`history`),title:K(`engine.edit.history`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(Pe,{className:`h-3.5 w-3.5`})}),!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`audit`),title:K(`engine.edit.auditTab`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(m,{className:`h-3.5 w-3.5`})})]}),!n&&Q&&C?.overlay&&jn&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:Dn,disabled:j,"data-testid":`reset-or-delete-button`,title:K(Sn?`engine.edit.reset`:`engine.edit.delete`,x),className:`h-7 w-7 p-0 text-muted-foreground hover:text-destructive`,children:Sn?(0,Y.jsx)(we,{className:`h-3.5 w-3.5`,"data-testid":`reset-icon`}):(0,Y.jsx)(ae,{className:`h-3.5 w-3.5`,"data-testid":`delete-icon`})}),Q&&!n&&!U&&!$&&(0,Y.jsxs)(P,{size:`sm`,onClick:()=>st(!0),className:`h-7`,children:[(0,Y.jsx)(re,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.edit.edit`,x)]}),Q&&(U||n)&&(0,Y.jsx)(Or,{saving:j,isDirty:Z,autoSaveEnabled:It,lastSavedAt:jt,createMode:!!n,locale:x}),Q&&(U||n)&&!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>Lt(e=>!e),className:`h-7 w-7 p-0 text-muted-foreground`,title:K(It?`engine.edit.autoSaveOn`:`engine.edit.autoSaveOff`,x),children:It?(0,Y.jsx)(Se,{className:`h-3.5 w-3.5 text-emerald-600`}):(0,Y.jsx)(Re,{className:`h-3.5 w-3.5`})}),Q&&!n&&U&&!$&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:Un,disabled:j,className:`h-7 w-7 p-0`,title:K(`engine.cancel`,x),children:(0,Y.jsx)(Ne,{className:`h-3.5 w-3.5`})}),Q&&(U||n)&&(0,Y.jsxs)(P,{size:`sm`,onClick:()=>En(!1),disabled:j||!n&&!Z||q>0,className:`h-7 w-7 p-0 relative`,title:j?K(`engine.edit.saving`,x):q>0?K(`perm.cel.saveBlocked`,x):!n&&!Z?K(`engine.edit.noChanges`,x):`${K(`engine.edit.save`,x)} (⌘S)`,children:[j?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):(0,Y.jsx)(Le,{className:`h-3.5 w-3.5`}),Z&&!j&&(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-0.5 -right-0.5 inline-block h-2 w-2 rounded-full bg-amber-300 ring-2 ring-background`})]}),Q&&!n&&Xe&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:kn,disabled:j||Qe,className:`h-7 w-7 p-0 text-muted-foreground`,title:K(`engine.edit.discardDraft`,x),children:(0,Y.jsx)(he,{className:`h-3.5 w-3.5`})}),Q&&!n&&Xe&&(0,Y.jsx)(P,{size:`sm`,onClick:On,disabled:j||Qe||Z,className:`h-7 px-2 relative bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,title:K(Z?`engine.edit.publishBlockedDirty`:`engine.edit.publish`,x),children:Qe?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ee,{className:`h-3.5 w-3.5 mr-1`}),(0,Y.jsx)(`span`,{className:`text-xs`,children:K(`engine.edit.publish`,x)})]})})]});return(0,Y.jsxs)(Nt,{entry:_??{type:e,label:e},itemName:n?`(new)`:t,subtitle:n?K(`engine.edit.createNew`,x):void 0,actions:$?null:Gn,children:[(0,Y.jsxs)(`div`,{className:$?`flex h-full min-h-0 flex-col`:`p-6 space-y-6 max-w-7xl`,children:[(ue||Pn||Xe||Nn)&&(0,Y.jsxs)(`div`,{className:$?`px-6 pt-4 space-y-3`:`space-y-3`,children:[ue&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:ue}),Nn&&(0,Y.jsxs)(`div`,{className:`text-xs text-amber-900 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-2.5`,children:[(0,Y.jsx)(ge,{className:`h-3.5 w-3.5 mt-0.5 shrink-0 opacity-80`}),(0,Y.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,"data-testid":`lock-banner-title`,children:yr(C?.lock,x)}),Mn&&(0,Y.jsx)(`div`,{className:`mt-0.5 opacity-90`,children:Mn}),C?.lockDocsUrl&&(0,Y.jsxs)(`a`,{href:C.lockDocsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`mt-1 inline-flex items-center gap-1 text-amber-800 underline hover:text-amber-900 dark:text-amber-200 dark:hover:text-amber-100`,children:[x===`zh-CN`?`查看文档`:`View docs`,` →`]}),C?.packageId&&(0,Y.jsx)(`div`,{className:`mt-0.5 text-amber-700 dark:text-amber-300/80`,children:(0,Y.jsxs)(`code`,{className:`font-mono`,children:[C.packageId,C.packageVersion?`@${C.packageVersion}`:``]})})]}),Ln&&(0,Y.jsx)(P,{size:`sm`,variant:`outline`,className:`shrink-0 h-7 bg-background/60`,onClick:()=>i(`../new`,{relative:`path`}),children:K(`engine.list.create`,x)})]}),Xe&&!n&&(0,Y.jsxs)(`div`,{className:`text-xs text-emerald-900 border border-emerald-300 bg-emerald-50 rounded p-3 dark:text-emerald-200 dark:border-emerald-700/50 dark:bg-emerald-950/30 flex items-center gap-3`,children:[(0,Y.jsx)(Ee,{className:`h-3.5 w-3.5 shrink-0`}),(0,Y.jsx)(`span`,{className:`flex-1`,children:K(`engine.edit.draftPending`,x)}),Q&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(P,{size:`sm`,variant:`ghost`,onClick:kn,disabled:j||Qe,className:`h-7`,children:K(`engine.edit.discardDraft`,x)}),(0,Y.jsx)(P,{size:`sm`,onClick:On,disabled:j||Qe||Z,className:`h-7 bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,children:Qe?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):K(`engine.edit.publish`,x)})]})]}),Pn&&!Nn&&(0,Y.jsxs)(`div`,{"data-testid":`readonly-banner`,className:`text-xs text-amber-800 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex-1`,children:Ln?K(`engine.edit.artifactLockedBanner`,x).split(/(\{type\})/).map((t,n)=>t===`{type}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:e},n):(0,Y.jsx)(J.Fragment,{children:t},n)):K(`engine.edit.readOnlyTypeBanner`,x).split(/(\{flag\}|\{type\}|\{override\})/).map((t,n)=>t===`{flag}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:`OBJECTSTACK_METADATA_WRITABLE`},n):t===`{type}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:e},n):t===`{override}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:`allowOrgOverride`},n):(0,Y.jsx)(J.Fragment,{children:t},n))}),Ln&&(0,Y.jsx)(P,{size:`sm`,variant:`outline`,className:`shrink-0`,onClick:()=>i(`../new`,{relative:`path`}),children:K(`engine.list.create`,x)})]})]}),(0,Y.jsx)(`div`,{className:$?`flex w-full flex-1 min-h-0 flex-col`:`w-full`,children:(0,Y.jsxs)(`div`,{className:$?`mt-2 flex-1 min-h-0 flex flex-col px-6 pb-4`:`mt-4 space-y-3`,children:[!$&&Wn&&!Pn&&Q&&!n&&(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-muted-foreground border rounded p-2.5 bg-muted/30`,children:[(0,Y.jsx)(`span`,{children:K(`engine.edit.readOnlyBanner`,x).split(/\{edit\}/).map((e,t,n)=>(0,Y.jsxs)(J.Fragment,{children:[e,t<n.length-1&&(0,Y.jsx)(`strong`,{children:K(`engine.edit.edit`,x)})]},t))}),(0,Y.jsxs)(P,{size:`sm`,variant:`outline`,onClick:()=>st(!0),children:[(0,Y.jsx)(re,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.edit.edit`,x)]})]}),(()=>{let t=C?._diagnostics,r=fr(e,S)?me.map(e=>({path:e.path,message:xt(e.message,x)})):(t?.errors??[]).map(e=>({...e,message:xt(e.message,x)})),i=fr(e,S)?r.length===0:t?.valid!==!1;if(n&&!xe||!wr({loadFailed:fe,hasDiag:!!t,hasClientValidator:fr(e,S)}))return null;let a=r,o=t?.warnings??[],s=!i&&a.length>0,c=o.length>0;if(!s&&!c)return null;let l=(e,t)=>{let n=t.slice(0,3),r=Math.max(0,t.length-n.length),i=e===`error`?`border-destructive/40 bg-destructive/[0.06] text-destructive`:`border-amber-500/40 bg-amber-500/[0.08] text-amber-800 dark:text-amber-200`,a=e===`error`?`engine.edit.diagnostics.title`:`engine.edit.diagnostics.warnTitle`;return(0,Y.jsxs)(`div`,{"data-testid":e===`error`?`metadata-validation-banner`:void 0,className:`flex items-start gap-2 text-xs border rounded p-2.5 ${i}`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,children:G(a,x,{count:t.length})}),(0,Y.jsxs)(`ul`,{className:`mt-1 space-y-0.5 font-mono text-[11px]`,children:[n.map((e,t)=>(0,Y.jsxs)(`li`,{className:`truncate`,children:[(0,Y.jsx)(`span`,{className:`opacity-70`,children:e.path?Tn(e.path):`(root)`}),`: `,e.message]},t)),r>0&&(0,Y.jsx)(`li`,{className:`opacity-70`,children:G(`engine.edit.diagnostics.more`,x,{count:r})})]})]})]},e)};return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[s&&l(`error`,a),c&&l(`warning`,o)]})})(),$?(0,Y.jsx)(`div`,{className:_n?`fixed inset-0 z-50 bg-background flex flex-col p-3`:`relative flex-1 min-h-0 flex`,children:(0,Y.jsxs)(h,{orientation:`horizontal`,className:`flex-1 min-h-0 rounded-md border bg-background overflow-hidden`,id:`metadata-edit-${e}`,children:[(0,Y.jsx)(je,{defaultSize:62,minSize:30,children:(0,Y.jsxs)(`div`,{className:`relative h-full flex flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b bg-background/95 backdrop-blur px-3 py-2 sticky top-0 z-10`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,children:Q&&(0,Y.jsxs)(`div`,{role:`tablist`,"aria-label":K(`engine.edit.designer`,x),className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":!hn,onClick:()=>gn(!1),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(hn?`text-muted-foreground hover:text-foreground`:`bg-background shadow-sm text-foreground`),title:K(`engine.edit.designMode`,x),children:[(0,Y.jsx)(Ce,{className:`h-3.5 w-3.5`}),K(`engine.edit.designMode`,x)]}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":hn,onClick:()=>gn(!0),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(hn?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.previewMode`,x),children:[(0,Y.jsx)(ce,{className:`h-3.5 w-3.5`}),K(`engine.edit.previewMode`,x)]})]})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[Gn,(0,Y.jsx)(`span`,{className:`mx-1 h-5 w-px bg-border`,"aria-hidden":!0}),$&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:dn,className:`h-7 w-7 p-0`,title:K(sn?`engine.edit.showInspector`:`engine.edit.hideInspector`,x)+` (⌘\\)`,children:sn?(0,Y.jsx)(g,{className:`h-3.5 w-3.5`}):(0,Y.jsx)(de,{className:`h-3.5 w-3.5`})}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>vn(e=>!e),className:`h-7 w-7 p-0`,title:K(_n?`engine.edit.exitFullscreen`:`engine.edit.fullscreen`,x),children:_n?(0,Y.jsx)(_e,{className:`h-3.5 w-3.5`}):(0,Y.jsx)(be,{className:`h-3.5 w-3.5`})})]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4 bg-[radial-gradient(circle_at_1px_1px,theme(colors.border)_1px,transparent_0)] [background-size:16px_16px] bg-muted/30`,children:(0,Y.jsx)($,{type:e,name:t,draft:T,baseline:n?void 0:C?.effective??void 0,editing:U&&!hn,selection:hn?null:W,onSelectionChange:_t,locale:x,diagnostics:Ge,onPatch:e=>L(t=>({...t,...e}))})})]})}),(0,Y.jsx)(ne,{withHandle:!0,className:sn?`hidden`:`w-1.5 bg-border/40 hover:bg-primary/40 active:bg-primary/60 transition-colors`}),(0,Y.jsx)(je,{panelRef:un,defaultSize:ln.current,minSize:22,collapsible:!0,collapsedSize:0,onResize:e=>{let t=e.asPercentage,n=t<=.5;n||(ln.current=t,typeof window<`u`&&window.localStorage.setItem(on,String(Math.round(t)))),cn(e=>e===n?e:(typeof window<`u`&&window.localStorage.setItem(an,n?`1`:`0`),n))},children:(0,Y.jsxs)(`div`,{className:`h-full overflow-auto`,children:[(0,Y.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-2 border-b bg-background/95 backdrop-blur px-3 py-2`,children:[(0,Y.jsxs)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":en===`properties`,onClick:()=>tn(`properties`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(en===`properties`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.inspector.properties`,x),children:[(0,Y.jsx)(Ie,{className:`h-3.5 w-3.5`}),K(`engine.edit.inspector.properties`,x)]}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":en===`source`,onClick:()=>tn(`source`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(en===`source`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.inspector.source`,x),children:[(0,Y.jsx)(Ue,{className:`h-3.5 w-3.5`}),K(`engine.edit.inspector.source`,x)]})]}),Z&&(0,Y.jsxs)(k,{variant:`outline`,className:`text-[10px] border-amber-400/60 text-amber-600 dark:text-amber-300`,children:[(0,Y.jsx)(`span`,{className:`mr-1 inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),K(`engine.edit.unsaved`,x)]})]}),(0,Y.jsx)(`div`,{className:`p-4`,children:en===`source`?(0,Y.jsx)(Bn,{value:T,onChange:L,readOnly:Wn,issues:We.map(e=>({path:e.path??``,message:e.message}))}):W&&Vn?(0,Y.jsx)(Vn,{type:e,name:t,draft:T,selection:W,onPatch:e=>L(t=>({...t,...e})),onClearSelection:()=>_t(null),onSelectionChange:_t,onBlockingIssuesChange:e=>St({key:Ct,count:e}),readOnly:Wn,locale:x}):!W&&Hn?(0,Y.jsx)(Hn,{type:e,name:t,draft:T,onPatch:e=>L(t=>({...t,...e})),onSelectionChange:_t,onBlockingIssuesChange:e=>St({key:Ct,count:e}),readOnly:Wn,locale:x,serverSchema:_?.schema}):(0,Y.jsx)(gt,{schema:b,idPath:zn,form:n&&y.createSchema?void 0:_?.form,value:T,onChange:V,issues:We,hiddenFields:ze,fieldOrder:Be,readOnly:Wn,createMode:n,widgetContext:Wt})})]})})]})}):(0,Y.jsx)(gt,{schema:b,idPath:zn,form:n&&y.createSchema?void 0:_?.form,value:T,onChange:V,issues:We,hiddenFields:ze,fieldOrder:Be,readOnly:Wn,createMode:n,widgetContext:Wt})]})})]}),(0,Y.jsx)(Ve,{open:Zt===`layers`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.layers`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(rn,{layered:C,locale:x})})]})}),(0,Y.jsx)(Ve,{open:Zt===`review`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`designer.draftReview.title`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t,` · `,K(`designer.canvas.reviewVsPublished`,x)]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(pn,{published:C?.effective??null,draft:T,locale:x})})]})}),(0,Y.jsx)(Ve,{open:Zt===`references`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsxs)(oe,{className:`text-base`,children:[K(`engine.edit.references`,x),D.status===`loaded`&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px]`,"data-testid":`refs-count-badge`,children:D.items.length})]}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(Dr,{state:D,locale:x,onRetry:()=>void Gt()})})]})}),Yt&&(0,Y.jsx)(Ve,{open:Zt===`related`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.related`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(mn,{type:e,name:t,parentItem:T,onOpen:e=>Jt(e)})})]})}),!n&&(0,Y.jsx)(Ve,{open:Zt===`history`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.history`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(Pt,{type:e,name:t,client:u,locale:x,onRollback:()=>ot(e=>e+1),rollbackLabel:K(`engine.edit.rollback`,x),rollbackConfirm:e=>K(`engine.edit.rollbackConfirm`,x).replace(`{version}`,String(e))})})]})}),!n&&(0,Y.jsx)(Ve,{open:Zt===`audit`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.auditTab`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden p-3`,children:(0,Y.jsx)(Cn,{type:e,name:t,client:u,locale:x})})]})}),(0,Y.jsx)(bn,{target:qt,onClose:()=>Jt(null),parentContext:{type:e,name:t}}),(0,Y.jsx)(He,{open:De!=null,onOpenChange:e=>{e||(Oe(null),R(null))},children:(0,Y.jsxs)(Ye,{children:[(0,Y.jsxs)(se,{children:[(0,Y.jsxs)(v,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-5 w-5 text-amber-600`}),K(`engine.edit.destructiveTitle`,x)]}),(0,Y.jsx)(ye,{children:K(`engine.edit.destructiveDesc`,x)})]}),(0,Y.jsx)(`div`,{className:`max-h-[300px] overflow-auto space-y-2 my-2`,children:De?.map((e,t)=>(0,Y.jsxs)(`div`,{className:`rounded border bg-amber-50 border-amber-200 p-2 text-xs`,children:[(0,Y.jsx)(`div`,{className:`font-mono text-amber-900`,children:e.kind??`change`}),e.path&&(0,Y.jsx)(`div`,{className:`text-amber-800 font-mono mt-0.5`,children:e.path}),(0,Y.jsx)(`div`,{className:`text-amber-900 mt-1`,children:e.message})]},t))}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(P,{variant:`ghost`,onClick:()=>Oe(null),children:K(`engine.cancel`,x)}),(0,Y.jsx)(P,{variant:`destructive`,onClick:()=>En(!0),disabled:j,children:K(j?`engine.edit.forcing`:`engine.edit.forceSave`,x)})]})]})})]})}function Dr({state:e,locale:t,onRetry:n}){if(e.status===`error`)return(0,Y.jsxs)(R,{"data-testid":`refs-error`,children:[(0,Y.jsxs)(V,{className:`flex items-center justify-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 text-amber-600`}),K(`engine.edit.refsErrorTitle`,t)]}),(0,Y.jsx)(L,{children:K(`engine.edit.refsErrorDesc`,t)}),e.message?(0,Y.jsx)(`p`,{"data-testid":`refs-error-cause`,className:`mt-2 max-w-full break-words font-mono text-xs text-muted-foreground`,children:e.message}):null,(0,Y.jsx)(P,{variant:`outline`,size:`sm`,className:`mt-3`,"data-testid":`refs-retry`,onClick:n,children:K(`engine.edit.refsRetry`,t)})]});if(e.status!==`loaded`)return(0,Y.jsxs)(`div`,{"data-testid":`refs-scanning`,className:`text-sm text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-4 w-4 animate-spin`}),` `,K(`engine.edit.refsScanning`,t)]});let r=e.items;return r.length===0?(0,Y.jsxs)(R,{"data-testid":`refs-empty`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.refsEmptyTitle`,t)}),(0,Y.jsx)(L,{children:K(`engine.edit.refsEmptyDesc`,t)})]}):(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From type`}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From name`}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`Path`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:r.map((e,t)=>(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50`,children:[(0,Y.jsx)(`td`,{className:`px-3 py-2`,children:(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono`,children:e.fromType})}),(0,Y.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs`,children:e.fromName}),(0,Y.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs text-muted-foreground`,children:e.path})]},t))})]})})}function Or({saving:e,isDirty:t,autoSaveEnabled:n,lastSavedAt:r,createMode:i,locale:a}){let[,o]=J.useReducer(e=>e+1,0);if(J.useEffect(()=>{if(!r)return;let e=window.setInterval(o,3e4);return()=>window.clearInterval(e)},[r]),e)return(0,Y.jsxs)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:[(0,Y.jsx)(B,{className:`h-3 w-3 animate-spin`}),K(`engine.edit.saving`,a)]});if(t)return i?null:(0,Y.jsxs)(`span`,{className:`text-xs text-amber-600 dark:text-amber-300 hidden md:inline-flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),K(n?`engine.edit.autoSavingShortly`:`engine.edit.unsaved`,a)]});if(r){let e=String(r.getHours()).padStart(2,`0`),t=String(r.getMinutes()).padStart(2,`0`);return(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:G(`engine.edit.savedAt`,a,{time:`${e}:${t}`})})}return null}function kr({type:e}){let t=i(),[n]=a(),r=e??n.get(`type`)??``;if(!r)return(0,Y.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`Missing metadata type`}),(0,Y.jsxs)(L,{children:[`This page expects a `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`?type=`}),` query param (e.g. `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`?type=view`}),`) or a nav-metadata `,(0,Y.jsxs)(`code`,{className:`font-mono`,children:[`params: `,`{ type: 'view' }`]}),`.`]})]})});let o=Ar(t.pathname),s=o.split(`/`).filter(Boolean);return s.length===0?(0,Y.jsx)(Jt,{type:r}):s[0]===`new`&&s.length===1?(0,Y.jsx)(Tr,{type:r,name:``,createMode:!0},`${r}:__new__`):s.length===2&&s[1]===`history`?(0,Y.jsx)(Et,{type:r,name:decodeURIComponent(s[0])}):s.length===1?(0,Y.jsx)(Tr,{type:r,name:decodeURIComponent(s[0])},`${r}:${s[0]}`):(0,Y.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`Unknown sub-path`}),(0,Y.jsxs)(L,{children:[`The path `,(0,Y.jsx)(`code`,{className:`font-mono`,children:o}),` isn't recognized. Valid forms are `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/`}),` (list),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/new`}),` (create),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/:name`}),` (edit),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/:name/history`}),`.`]})]})})}function Ar(e){let t=e.indexOf(`/metadata/resource`);return t===-1?``:e.slice(t+18)}function jr(){let e=et(),t=bt(),[r,i]=J.useState(`error`),{loading:a,error:o,summary:s,reload:c}=Qe(e,r),{entries:l}=nt(e),u=J.useMemo(()=>{let e={};for(let n of l)e[n.type]=q(n.type,t,n.label);return e},[l,t]),d=J.useMemo(()=>{let e={};for(let t of s.entries)(e[t.type]??=[]).push(t);return Object.entries(e).sort(([,e],[,t])=>t.length-e.length)},[s]);return(0,Y.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,Y.jsx)(`nav`,{className:`text-xs text-muted-foreground mb-2`,children:(0,Y.jsxs)(n,{to:`..`,className:`hover:text-foreground inline-flex items-center gap-1`,children:[(0,Y.jsx)(A,{className:`h-3 w-3`}),K(`engine.diagnostics.back`,t)]})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,Y.jsxs)(`h1`,{className:`text-xl font-semibold flex items-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-5 w-5 text-destructive`}),K(`engine.diagnostics.title`,t)]}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[11px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:G(`engine.diagnostics.summary`,t,{count:s.total,items:s.scannedItems,types:s.scannedTypes})}),(0,Y.jsx)(`div`,{className:`flex-1`}),(0,Y.jsx)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5 text-xs`,children:[`error`,`warning`].map(e=>(0,Y.jsx)(`button`,{role:`tab`,type:`button`,"aria-selected":r===e,onClick:()=>i(e),className:`px-2.5 py-1 rounded transition-colors `+(r===e?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),children:K(`engine.diagnostics.severity.${e}`,t)},e))}),(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:c,children:[(0,Y.jsx)(Be,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.diagnostics.refresh`,t)]})]}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground mt-2 max-w-3xl`,children:K(`engine.diagnostics.description`,t)})]}),(0,Y.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[a&&(0,Y.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:K(`engine.diagnostics.loading`,t)}),!a&&o&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/[0.06]`,children:G(`engine.diagnostics.loadFailed`,t,{error:o})}),!a&&!o&&d.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:K(`engine.diagnostics.cleanTitle`,t)}),(0,Y.jsx)(L,{children:G(`engine.diagnostics.cleanHint`,t,{items:s.scannedItems,types:s.scannedTypes})})]}),d.map(([e,i])=>(0,Y.jsxs)(`section`,{className:`space-y-2`,children:[(0,Y.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(n,{to:`../${encodeURIComponent(e)}`,className:`hover:text-foreground hover:underline`,children:u[e]??e}),(0,Y.jsx)(`span`,{className:`font-mono normal-case tracking-normal text-[10px] opacity-70`,children:e}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:i.length})]}),(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium w-[28%]`,children:K(`engine.diagnostics.col.name`,t)}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:K(`engine.diagnostics.col.issues`,t)})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:i.map(i=>{let a=i.diagnostics.errors??[],o=i.diagnostics.warnings??[],s=(r===`warning`&&a.length===0?o:a).slice(0,3),c=Math.max(0,(a.length||o.length)-s.length);return(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50 align-top`,children:[(0,Y.jsxs)(`td`,{className:`px-3 py-2 align-top`,children:[(0,Y.jsx)(n,{to:`../${encodeURIComponent(e)}/${encodeURIComponent(i.name)}`,className:`text-primary hover:underline font-mono`,children:i.name}),a.length>0&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px] border-destructive/40 text-destructive`,children:G(`engine.diagnostics.errorN`,t,{count:a.length})}),o.length>0&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300`,children:G(`engine.diagnostics.warnN`,t,{count:o.length})})]}),(0,Y.jsx)(`td`,{className:`px-3 py-2 align-top`,children:(0,Y.jsxs)(`ul`,{className:`space-y-0.5 font-mono text-[11px]`,children:[s.map((e,t)=>(0,Y.jsxs)(`li`,{className:`truncate`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:e.path||`(root)`}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`: `}),e.message]},t)),c>0&&(0,Y.jsx)(`li`,{className:`text-muted-foreground`,children:G(`engine.diagnostics.more`,t,{count:c})})]})})]},i.name)})})]})})]},e))]})]})}var Mr=new Set([`field`,`package`]),Nr={data:E,ui:Ae,automation:Oe,ai:T,system:Me,platform:Me,identity:m,security:m},Pr={data:{from:`from-sky-500`,to:`to-blue-600`,ring:`hover:ring-sky-400/40`,text:`text-sky-600 dark:text-sky-400`},ui:{from:`from-violet-500`,to:`to-fuchsia-600`,ring:`hover:ring-violet-400/40`,text:`text-violet-600 dark:text-violet-400`},automation:{from:`from-amber-500`,to:`to-orange-600`,ring:`hover:ring-amber-400/40`,text:`text-amber-600 dark:text-amber-400`},ai:{from:`from-pink-500`,to:`to-rose-600`,ring:`hover:ring-pink-400/40`,text:`text-pink-600 dark:text-pink-400`},identity:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},security:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},system:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},platform:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},other:{from:`from-slate-400`,to:`to-slate-600`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`}},Fr=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],Ir=[`object`,`view`,`page`,`dashboard`,`report`,`flow`,`action`,`agent`],Lr={object:D,dashboard:te,page:ze,report:j,record:S,metadata:Ae};function Rr(){let e=new Date().getHours();return e<12?`engine.home.greetingMorning`:e<18?`engine.home.greetingAfternoon`:`engine.home.greetingEvening`}function zr(e,t){let n=new Date(e).getTime();if(Number.isNaN(n))return``;let r=Math.floor((Date.now()-n)/6e4),i=new Intl.RelativeTimeFormat(t,{numeric:`auto`});if(r<1)return i.format(0,`minute`);if(r<60)return i.format(-r,`minute`);let a=Math.floor(r/60);if(a<24)return i.format(-a,`hour`);let o=Math.floor(a/24);return o<7?i.format(-o,`day`):i.format(-Math.floor(o/7),`week`)}function Br(){let e=et(),{loading:t,entries:r}=nt(e),{recentItems:i}=ot(),o=bt(),[s,c]=a(),[l,u]=J.useState(null);J.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;u(Lt(n))}catch{t||u([])}})(),()=>{t=!0}},[e]);let d=s.get(`package`),f=J.useMemo(()=>l?d&&l.some(e=>e.id===d)?d:l[0]?.id??null:null,[l,d]);J.useEffect(()=>{if(!l||l.length===0||d&&l.some(e=>e.id===d))return;let e=new URLSearchParams(s);e.set(`package`,l[0].id),c(e,{replace:!0})},[l,d]);let p=f?`?package=${encodeURIComponent(f)}`:``,m=`metadata${p}`,h=`component/developer/packages${p}`,{summary:g,countsByType:_,packagesByType:v,loading:b}=Qe(e,`warning`,f??void 0),x=J.useMemo(()=>r.filter(e=>Mr.has(e.type)||!f?!1:(v[e.type]??[]).includes(f)),[f,r,v]),C=J.useMemo(()=>x.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate),[x]),w=J.useMemo(()=>{let e={};for(let t of x)(e[t.domain??`other`]??=[]).push(t);for(let t of Object.values(e))t.sort((e,t)=>(_[t.type]??0)-(_[e.type]??0));return Object.entries(e).sort(([e],[t])=>(Fr.indexOf(e)===-1?99:Fr.indexOf(e))-(Fr.indexOf(t)===-1?99:Fr.indexOf(t)))},[x,_]),E=J.useMemo(()=>{let e=new Map(C.map(e=>[e.type,e]));return Ir.map(t=>e.get(t)).filter(Boolean)},[C]),D=g.total,O=!t&&!b&&D===0;return t||l===null||f&&b?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`,children:K(`engine.home.loading`,o)}):(0,Y.jsxs)(`div`,{className:`h-full overflow-auto bg-gradient-to-b from-muted/40 to-background`,children:[(0,Y.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-6 py-6 space-y-6`,children:[(0,Y.jsxs)(`section`,{className:`relative overflow-hidden rounded-3xl bg-gradient-to-br from-indigo-600 via-violet-600 to-fuchsia-600 px-7 py-8 text-white shadow-xl shadow-violet-500/20`,children:[(0,Y.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-20 h-64 w-64 rounded-full bg-white/15 blur-3xl`}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute -bottom-24 left-1/3 h-56 w-56 rounded-full bg-fuchsia-300/20 blur-3xl`}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-[0.12]`,style:{backgroundImage:`radial-gradient(currentColor 1px, transparent 1px)`,backgroundSize:`18px 18px`}}),(0,Y.jsxs)(`div`,{className:`relative flex flex-col gap-6 lg:flex-row lg:items-end lg:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`max-w-xl`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-white/80`,children:[(0,Y.jsx)(T,{className:`h-4 w-4`}),K(Rr(),o)]}),(0,Y.jsx)(`h1`,{className:`mt-2 text-3xl font-bold tracking-tight sm:text-4xl`,children:`Studio`}),(0,Y.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-white/85 sm:text-base`,children:K(`engine.home.subtitle`,o)}),(0,Y.jsxs)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2.5`,children:[(0,Y.jsx)(P,{asChild:!0,size:`sm`,variant:`ghost`,className:`bg-white/10 text-white shadow-sm ring-1 ring-white/25 hover:bg-white/20 hover:text-white`,children:(0,Y.jsxs)(n,{to:m,children:[(0,Y.jsx)(Ae,{className:`mr-1.5 h-4 w-4`}),K(`engine.home.browseAll`,o)]})}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full bg-white/15 px-3 py-1.5 text-xs font-medium text-white/90 backdrop-blur-sm`,children:[(0,Y.jsx)(I,{className:`h-3.5 w-3.5`}),K(`engine.directory.quickFind`,o),` ⌘⇧M`]})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,Y.jsx)(Vr,{value:x.length,label:K(`engine.home.statTypes`,o)}),(0,Y.jsx)(Vr,{value:C.length,label:K(`engine.home.statWritable`,o)}),(0,Y.jsx)(Vr,{value:l.length,label:K(`engine.home.statPackages`,o)})]})]})]}),(0,Y.jsxs)(`section`,{className:`grid grid-cols-2 gap-4 lg:grid-cols-4`,children:[(0,Y.jsx)(Hr,{icon:Ae,from:`from-indigo-500`,to:`to-violet-600`,value:x.length,label:K(`engine.home.statTypes`,o),to_link:m}),(0,Y.jsx)(Hr,{icon:De,from:`from-sky-500`,to:`to-blue-600`,value:C.length,label:K(`engine.home.statWritable`,o),to_link:m}),(0,Y.jsx)(Hr,{icon:ee,from:`from-emerald-500`,to:`to-teal-600`,value:l.length,label:K(`engine.home.statPackages`,o),to_link:h}),(0,Y.jsxs)(n,{to:O?m:`metadata/_diagnostics${p}`,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border p-4 transition-all hover:-translate-y-0.5 hover:shadow-lg `+(O?`border-emerald-200 bg-emerald-50/60 dark:border-emerald-900/50 dark:bg-emerald-950/30`:`border-amber-300 bg-amber-50/70 dark:border-amber-900/50 dark:bg-amber-950/30`),children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br text-white shadow-sm `+(O?`from-emerald-500 to-teal-600`:`from-amber-500 to-orange-600`),children:O?(0,Y.jsx)(De,{className:`h-5 w-5`}):(0,Y.jsx)(H,{className:`h-5 w-5`})}),(0,Y.jsx)(fe,{className:`h-4 w-4 text-muted-foreground transition-transform group-hover:translate-x-0.5`})]}),(0,Y.jsxs)(`div`,{className:`mt-3`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:O?K(`engine.home.allHealthy`,o):D}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:K(O?`engine.home.allHealthyHint`:`engine.home.statIssues`,o)})]})]})]}),E.length>0&&(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(Ur,{icon:y,title:K(`engine.home.quickActions`,o),hint:K(`engine.home.quickActionsHint`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2.5`,children:E.map(e=>(0,Y.jsx)(P,{asChild:!0,variant:`outline`,size:`sm`,className:`group rounded-full border-transparent bg-muted hover:bg-primary/10 hover:text-primary`,children:(0,Y.jsxs)(n,{to:`metadata/${encodeURIComponent(e.type)}/new${p}`,children:[(0,Y.jsx)(y,{className:`mr-1 h-3.5 w-3.5 text-primary transition-transform group-hover:rotate-90`}),G(`engine.home.newItem`,o,{label:q(e.type,o,e.label)})]})},e.type))})]}),(0,Y.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-3`,children:[(0,Y.jsxs)(`section`,{className:`lg:col-span-2`,children:[(0,Y.jsx)(Ur,{icon:Ae,title:K(`engine.home.explore`,o),hint:K(`engine.home.exploreHint`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 grid gap-4 sm:grid-cols-2`,children:w.map(([e,t])=>(0,Y.jsx)(Wr,{domain:e,group:t,countsByType:_,locale:o,packageSuffix:p},e))})]}),(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(Ur,{icon:ue,title:K(`engine.home.recent`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 rounded-2xl border bg-card p-2`,children:i.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-8 text-center text-xs text-muted-foreground`,children:K(`engine.home.recentEmpty`,o)}):(0,Y.jsx)(`ul`,{className:`space-y-0.5`,children:i.slice(0,8).map(e=>{let t=Lr[e.type]??S;return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(n,{to:e.href,className:`group flex items-center gap-3 rounded-xl px-3 py-2 transition-colors hover:bg-accent`,children:[(0,Y.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground transition-colors group-hover:bg-primary/10 group-hover:text-primary`,children:(0,Y.jsx)(t,{className:`h-4 w-4`})}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.label}),(0,Y.jsx)(`span`,{className:`block text-[11px] text-muted-foreground`,children:zr(e.visitedAt,o)})]}),(0,Y.jsx)(fe,{className:`h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100`})]})},e.id)})})})]})]})]}),(0,Y.jsx)(Ft,{})]})}function Vr({value:e,label:t}){return(0,Y.jsxs)(`div`,{className:`rounded-2xl bg-white/15 px-4 py-3 text-center backdrop-blur-sm ring-1 ring-white/20`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums leading-none`,children:e}),(0,Y.jsx)(`div`,{className:`mt-1 text-[11px] font-medium text-white/80`,children:t})]})}function Hr({icon:e,from:t,to:r,value:i,label:a,to_link:o}){return(0,Y.jsxs)(n,{to:o,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border bg-card p-4 transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-lg`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${t} ${r} text-white shadow-sm`,children:(0,Y.jsx)(e,{className:`h-5 w-5`})}),(0,Y.jsx)(fe,{className:`h-4 w-4 text-muted-foreground opacity-0 transition-all group-hover:translate-x-0.5 group-hover:opacity-100`})]}),(0,Y.jsxs)(`div`,{className:`mt-3`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:i}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:a})]})]})}function Ur({icon:e,title:t,hint:n}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline gap-2.5`,children:[(0,Y.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,Y.jsx)(e,{className:`h-4 w-4 text-muted-foreground`}),t]}),n&&(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]})}function Wr({domain:e,group:t,countsByType:r,locale:i,packageSuffix:a}){let o=Nr[e]??S,s=Pr[e]??Pr.other,c=t.slice(0,6),l=t.length-c.length;return(0,Y.jsxs)(`div`,{className:`group rounded-2xl border bg-card p-4 ring-1 ring-transparent transition-all hover:-translate-y-0.5 hover:shadow-lg ${s.ring}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-br ${s.from} ${s.to} text-white shadow-sm`,children:(0,Y.jsx)(o,{className:`h-[18px] w-[18px]`})}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:St(e,i)}),(0,Y.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[t.length,` `,K(`engine.home.typesLower`,i)]})]})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:[c.map(e=>(0,Y.jsxs)(n,{to:`metadata/${encodeURIComponent(e.type)}${a}`,className:`inline-flex items-center gap-1.5 rounded-lg border bg-background px-2 py-1 text-xs transition-colors hover:border-primary/50 hover:bg-accent`,children:[(0,Y.jsx)(`span`,{className:`truncate max-w-[10rem]`,children:q(e.type,i,e.label)}),(0,Y.jsx)(`span`,{className:`tabular-nums text-[10px] text-muted-foreground`,children:r[e.type]??0})]},e.type)),l>0&&(0,Y.jsxs)(n,{to:`metadata${a}`,className:`inline-flex items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium ${s.text} hover:underline`,children:[`+`,l]})]})]})}export{jr as MetadataDiagnosticsPage,Vt as MetadataDirectoryPage,Tr as MetadataResourceEditPage,Et as MetadataResourceHistoryPage,Jt as MetadataResourceListPage,kr as MetadataResourceRouter,Br as StudioHomePage};
9
+ `+` `.repeat(t));var Z;(function(e){e.DEFAULT={allowTrailingComma:!1}})(Z||={});function An(e,t=[],n=Z.DEFAULT){let r={type:`array`,offset:-1,length:-1,children:[],parent:void 0};function i(e){r.type===`property`&&(r.length=e-r.offset,r=r.parent)}function a(e){return r.children.push(e),e}Mn(e,{onObjectBegin:e=>{r=a({type:`object`,offset:e,length:-1,parent:r,children:[]})},onObjectProperty:(e,t,n)=>{r=a({type:`property`,offset:t,length:-1,parent:r,children:[]}),r.children.push({type:`string`,value:e,offset:t,length:n,parent:r})},onObjectEnd:(e,t)=>{i(e+t),r.length=e+t-r.offset,r=r.parent,i(e+t)},onArrayBegin:(e,t)=>{r=a({type:`array`,offset:e,length:-1,parent:r,children:[]})},onArrayEnd:(e,t)=>{r.length=e+t-r.offset,r=r.parent,i(e+t)},onLiteralValue:(e,t,n)=>{a({type:Nn(e),offset:t,length:n,parent:r,value:e}),i(t+n)},onSeparator:(e,t,n)=>{r.type===`property`&&(e===`:`?r.colonOffset=t:e===`,`&&i(t))},onError:(e,n,r)=>{t.push({error:e,offset:n,length:r})}},n);let o=r.children[0];return o&&delete o.parent,o}function jn(e,t){if(!e)return;let n=e;for(let e of t)if(typeof e==`string`){if(n.type!==`object`||!Array.isArray(n.children))return;let t=!1;for(let r of n.children)if(Array.isArray(r.children)&&r.children[0].value===e&&r.children.length===2){n=r.children[1],t=!0;break}if(!t)return}else{let t=e;if(n.type!==`array`||t<0||!Array.isArray(n.children)||t>=n.children.length)return;n=n.children[t]}return n}function Mn(e,t,n=Z.DEFAULT){let r=wn(e,!1),i=[],a=0;function o(e){return e?()=>a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function s(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>a===0&&e(t,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice()):()=>!0}function l(e){return e?()=>{a>0?a++:e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter(),()=>i.slice())===!1&&(a=1)}:()=>!0}function u(e){return e?()=>{a>0&&a--,a===0&&e(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter())}:()=>!0}let d=l(t.onObjectBegin),f=c(t.onObjectProperty),p=u(t.onObjectEnd),m=l(t.onArrayBegin),h=u(t.onArrayEnd),g=c(t.onLiteralValue),_=s(t.onSeparator),v=o(t.onComment),y=s(t.onError),b=n&&n.disallowComments,x=n&&n.allowTrailingComma;function S(){for(;;){let e=r.scan();switch(r.getTokenError()){case 4:C(14);break;case 5:C(15);break;case 3:C(13);break;case 1:b||C(11);break;case 2:C(12);break;case 6:C(16)}switch(e){case 12:case 13:b?C(10):v();break;case 16:C(1);break;case 15:case 14:break;default:return e}}}function C(e,t=[],n=[]){if(y(e),t.length+n.length>0){let e=r.getToken();for(;e!==17;){if(t.indexOf(e)!==-1){S();break}if(n.indexOf(e)!==-1)break;e=S()}}}function w(e){let t=r.getTokenValue();return e?g(t):(f(t),i.push(t)),S(),!0}function ee(){switch(r.getToken()){case 11:let e=r.getTokenValue(),t=Number(e);isNaN(t)&&(C(2),t=0),g(t);break;case 7:g(null);break;case 8:g(!0);break;case 9:g(!1);break;default:return!1}return S(),!0}function T(){return r.getToken()===10?(w(!1),r.getToken()===6?(_(`:`),S(),O()||C(4,[],[2,5])):C(5,[],[2,5]),i.pop(),!0):(C(3,[],[2,5]),!1)}function E(){d(),S();let e=!1;for(;r.getToken()!==2&&r.getToken()!==17;){if(r.getToken()===5){if(e||C(4,[],[]),_(`,`),S(),r.getToken()===2&&x)break}else e&&C(6,[],[]);T()||C(4,[],[2,5]),e=!0}return p(),r.getToken()===2?S():C(7,[2],[]),!0}function D(){m(),S();let e=!0,t=!1;for(;r.getToken()!==4&&r.getToken()!==17;){if(r.getToken()===5){if(t||C(4,[],[]),_(`,`),S(),r.getToken()===4&&x)break}else t&&C(6,[],[]);e?(i.push(0),e=!1):i[i.length-1]++,O()||C(4,[],[4,5]),t=!0}return h(),e||i.pop(),r.getToken()===4?S():C(8,[4],[]),!0}function O(){switch(r.getToken()){case 3:return D();case 1:return E();case 10:return w(!0);default:return ee()}}return S(),r.getToken()===17?n.allowEmptyContent?!0:(C(4,[],[]),!1):O()?(r.getToken()!==17&&C(9,[],[]),!0):(C(4,[],[]),!1)}function Nn(e){switch(typeof e){case`boolean`:return`boolean`;case`number`:return`number`;case`string`:return`string`;case`object`:return e?Array.isArray(e)?`array`:`object`:`null`;default:return`null`}}var Q;(function(e){e[e.None=0]=`None`,e[e.UnexpectedEndOfComment=1]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=2]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=3]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=4]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=5]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=6]=`InvalidCharacter`})(Q||={});var Pn;(function(e){e[e.OpenBraceToken=1]=`OpenBraceToken`,e[e.CloseBraceToken=2]=`CloseBraceToken`,e[e.OpenBracketToken=3]=`OpenBracketToken`,e[e.CloseBracketToken=4]=`CloseBracketToken`,e[e.CommaToken=5]=`CommaToken`,e[e.ColonToken=6]=`ColonToken`,e[e.NullKeyword=7]=`NullKeyword`,e[e.TrueKeyword=8]=`TrueKeyword`,e[e.FalseKeyword=9]=`FalseKeyword`,e[e.StringLiteral=10]=`StringLiteral`,e[e.NumericLiteral=11]=`NumericLiteral`,e[e.LineCommentTrivia=12]=`LineCommentTrivia`,e[e.BlockCommentTrivia=13]=`BlockCommentTrivia`,e[e.LineBreakTrivia=14]=`LineBreakTrivia`,e[e.Trivia=15]=`Trivia`,e[e.Unknown=16]=`Unknown`,e[e.EOF=17]=`EOF`})(Pn||={});var Fn=An,In=jn,Ln;(function(e){e[e.InvalidSymbol=1]=`InvalidSymbol`,e[e.InvalidNumberFormat=2]=`InvalidNumberFormat`,e[e.PropertyNameExpected=3]=`PropertyNameExpected`,e[e.ValueExpected=4]=`ValueExpected`,e[e.ColonExpected=5]=`ColonExpected`,e[e.CommaExpected=6]=`CommaExpected`,e[e.CloseBraceExpected=7]=`CloseBraceExpected`,e[e.CloseBracketExpected=8]=`CloseBracketExpected`,e[e.EndOfFileExpected=9]=`EndOfFileExpected`,e[e.InvalidCommentToken=10]=`InvalidCommentToken`,e[e.UnexpectedEndOfComment=11]=`UnexpectedEndOfComment`,e[e.UnexpectedEndOfString=12]=`UnexpectedEndOfString`,e[e.UnexpectedEndOfNumber=13]=`UnexpectedEndOfNumber`,e[e.InvalidUnicode=14]=`InvalidUnicode`,e[e.InvalidEscapeCharacter=15]=`InvalidEscapeCharacter`,e[e.InvalidCharacter=16]=`InvalidCharacter`})(Ln||={});var Rn=J.lazy(async()=>({default:(await t(()=>import(`./dist-BK-OswHQ.js`).then(e=>e.n),[],import.meta.url)).Editor}));function $(e){try{return JSON.stringify(e??{},null,2)}catch{return`{}`}}function zn(e){return e?e.split(`.`).map(e=>{let t=Number(e);return Number.isInteger(t)&&String(t)===e?t:e}):[]}function Bn({value:e,onChange:t,readOnly:n,issues:r,height:i=`60vh`,fallbackDelayMs:a=4e3}){let o=bt(),[s,c]=J.useState(()=>$(e)),[l,u]=J.useState(null),d=J.useRef(s),f=J.useRef(null),p=J.useRef(null),[m,h]=Dt(a),[g,_]=J.useState(()=>typeof document>`u`?`light`:document.documentElement.classList.contains(`dark`)?`vs-dark`:`light`);J.useEffect(()=>{if(typeof document>`u`)return;let e=document.documentElement,t=new MutationObserver(()=>_(e.classList.contains(`dark`)?`vs-dark`:`light`));return t.observe(e,{attributes:!0,attributeFilter:[`class`]}),()=>t.disconnect()},[]);let v=J.useCallback(()=>{let e=f.current,t=p.current;if(!e||!t)return;let n=e.getModel();if(!n)return;if(!r||r.length===0){t.editor.setModelMarkers(n,`objectui-diagnostics`,[]);return}let i;try{i=Fn(s)}catch{i=void 0}let a=r.map(e=>{let r=zn(e.path),a=1,o=1,s=1,c=2,l=i?In(i,r):void 0;if(l){let e=n.getPositionAt(l.offset),t=n.getPositionAt(l.offset+l.length);a=e.lineNumber,o=e.column,s=t.lineNumber,c=t.column}return{severity:e.severity===`warning`?t.MarkerSeverity.Warning:t.MarkerSeverity.Error,message:e.path?`${e.path}: ${e.message}`:e.message,startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,source:`metadata`}});t.editor.setModelMarkers(n,`objectui-diagnostics`,a)},[r,s]);J.useEffect(()=>{v()},[v]),J.useEffect(()=>{let t=$(e);t!==d.current&&(c(t),d.current=t,u(null))},[e]);let y=e=>{let n=e??``;c(n);try{let e=JSON.parse(n);e&&typeof e==`object`&&!Array.isArray(e)?(u(null),d.current=n,t(e)):u(K(`engine.form.rootJsonObject`,o))}catch(e){u(e?.message??K(`engine.form.invalidJson`,o))}};return(0,Y.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,Y.jsx)(`div`,{ref:h,"data-testid":`source-editor`,className:`border rounded overflow-hidden bg-background`,style:{height:typeof i==`number`?`${i}px`:i},children:m?(0,Y.jsx)(`textarea`,{value:s,onChange:e=>y(e.target.value),readOnly:n,spellCheck:!1,"aria-label":`JSON source`,className:`w-full h-full resize-none bg-background p-3 font-mono text-xs leading-relaxed outline-none`}):(0,Y.jsx)(J.Suspense,{fallback:(0,Y.jsx)(Te,{className:`w-full h-full`}),children:(0,Y.jsx)(Rn,{value:s,language:`json`,theme:g,onChange:y,onMount:(e,t)=>{f.current=e,p.current=t,setTimeout(v,0)},options:{readOnly:n,minimap:{enabled:!1},fontSize:12,lineNumbers:`on`,scrollBeyondLastLine:!1,automaticLayout:!0,folding:!0,wordWrap:`on`,tabSize:2,renderLineHighlight:`line`,scrollbar:{verticalScrollbarSize:10,horizontalScrollbarSize:10}}})})}),l&&(0,Y.jsxs)(`div`,{className:`text-xs text-destructive flex items-start gap-1.5`,children:[(0,Y.jsx)(`span`,{"aria-hidden":!0,children:`⚠`}),(0,Y.jsx)(`span`,{children:l})]})]})}function Vn(e){return!!e&&typeof e==`object`&&`viewKind`in e}function Hn(e,t){return{safeParse:n=>(Vn(n)?e:t).safeParse(n)}}var Un={wireItem:0,container:1};function Wn(e){return Vn(e)?Un.wireItem:Un.container}var Gn={ofStrings:0,ofObjects:1};function Kn(e){return e.some(e=>e.code===`invalid_type`&&(e.path??[]).length===0)}function qn(e,t){let n=e;for(let e of t){if(typeof n!=`object`||!n)return;n=n[e]}return n}function Jn(e,t){if(e.length!==2||!Array.isArray(t)||t.length===0||e.some(Kn))return null;let n=t[0];return typeof n==`string`?Gn.ofStrings:typeof n==`object`&&n&&!Array.isArray(n)?Gn.ofObjects:null}function Yn(e){let t=null;for(let n=0;n<e.length;n++)if(!Kn(e[n])){if(t!==null)return null;t=n}return t}function Xn(e,t){let n=Jn(e,t);return n===null?Yn(e):n}function Zn(e,t,n){if(e.code!==`invalid_union`)return null;let r=e.errors;if(!Array.isArray(r))return null;let i=t.length===0?Wn(n):Xn(r,qn(n,t));if(i===null)return null;let a=r[i];return!Array.isArray(a)||a.length===0?null:a}function Qn(e,t,n){return e.flatMap(e=>{let r=[...t,...e.path??[]],i=Zn(e,r,n);return i?Qn(i,r,n):[{...e,path:r}]})}var $n=new Set([`sharing_rule`]),er={object:async()=>(await t(async()=>{let{ObjectSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>(e.Ot(),e.Ct));return{ObjectSchema:e}},[],import.meta.url)).ObjectSchema,hook:async()=>(await t(async()=>{let{HookSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>(e.Ot(),e.Ct));return{HookSchema:e}},[],import.meta.url)).HookSchema,mapping:async()=>(await t(async()=>{let{MappingSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>(e.Ot(),e.Ct));return{MappingSchema:e}},[],import.meta.url)).MappingSchema,analytics_cube:async()=>(await t(async()=>{let{CubeSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>(e.Ot(),e.Ct));return{CubeSchema:e}},[],import.meta.url)).CubeSchema,view:async e=>{let{ViewItemSchema:n,ViewSchema:r,ViewMetadataSchema:i}=await t(async()=>{let{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{ViewItemSchema:e,ViewSchema:t,ViewMetadataSchema:n}},[],import.meta.url);return e===`edit`?i:Hn(n,r)},page:async()=>(await t(async()=>{let{PageSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{PageSchema:e}},[],import.meta.url)).PageSchema,app:async()=>(await t(async()=>{let{AppSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{AppSchema:e}},[],import.meta.url)).AppSchema,dashboard:async()=>(await t(async()=>{let{DashboardSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{DashboardSchema:e}},[],import.meta.url)).DashboardSchema,report:async()=>(await t(async()=>{let{ReportSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{ReportSchema:e}},[],import.meta.url)).ReportSchema,action:async()=>(await t(async()=>{let{ActionSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.In);return{ActionSchema:e}},[],import.meta.url)).ActionSchema,flow:async()=>(await t(async()=>{let{FlowSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.T);return{FlowSchema:e}},[],import.meta.url)).FlowSchema,webhook:async()=>(await t(async()=>{let{WebhookSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.T);return{WebhookSchema:e}},[],import.meta.url)).WebhookSchema,agent:async()=>(await t(async()=>{let{AgentSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.n);return{AgentSchema:e}},[],import.meta.url)).AgentSchema,tool:async()=>(await t(async()=>{let{ToolSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.n);return{ToolSchema:e}},[],import.meta.url)).ToolSchema,skill:async()=>(await t(async()=>{let{SkillSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.n);return{SkillSchema:e}},[],import.meta.url)).SkillSchema,email_template:async()=>(await t(async()=>{let{EmailTemplateDefinitionSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.m);return{EmailTemplateDefinitionSchema:e}},[],import.meta.url)).EmailTemplateDefinitionSchema,job:async()=>(await t(async()=>{let{JobSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.m);return{JobSchema:e}},[],import.meta.url)).JobSchema,translation:async()=>(await t(async()=>{let{TranslationItemSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.m);return{TranslationItemSchema:e}},[],import.meta.url)).TranslationItemSchema,permission:async()=>(await t(async()=>{let{PermissionSetSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.H);return{PermissionSetSchema:e}},[],import.meta.url)).PermissionSetSchema,sharing_rule:async()=>(await t(async()=>{let{SharingRuleSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.H);return{SharingRuleSchema:e}},[],import.meta.url)).SharingRuleSchema,position:async()=>(await t(async()=>{let{PositionSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.o);return{PositionSchema:e}},[],import.meta.url)).PositionSchema,api:async()=>(await t(async()=>{let{ApiEndpointSchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>(e.rt(),e.nt));return{ApiEndpointSchema:e}},[],import.meta.url)).ApiEndpointSchema,connector:async()=>(await t(async()=>{let{DeclarativeConnectorEntrySchema:e}=await import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.t);return{DeclarativeConnectorEntrySchema:e}},[],import.meta.url)).DeclarativeConnectorEntrySchema},tr=[`visibleWhen`,`readonlyWhen`,`requiredWhen`];function nr(e){if(typeof e==`string`)return e;if(e&&typeof e==`object`&&typeof e.source==`string`){let t=e.dialect;if(t===void 0||t===`cel`)return e.source}return null}async function rr(e){let t=e,n=ft(t?.fields);if(n.entries.length===0)return[];let r=typeof t?.name==`string`?t.name:void 0,i=n.entries.map(e=>e.name),a=[];for(let e=0;e<n.entries.length;e++){let t=n.entries[e],o=n.shape===`array`?String(e):t.name;for(let e of tr){let n=nr(t.def[e]);if(n==null||!n.trim())continue;let s=await W(n,{objectName:r,fields:i,scope:`record`});for(let t of s)t.severity===`error`&&a.push({path:`fields.${o}.${e}`,message:t.message})}if(t.def.type===`formula`){let e=nr(t.def.expression);if(e==null||!e.trim())continue;let n=await W(e,{objectName:r,fields:i.filter(e=>e!==t.name),scope:`record`,role:`value`});for(let e of n)e.severity===`error`&&a.push({path:`fields.${o}.expression`,message:e.message})}}return a}var ir=`formula`;function ar(e){return`Field \`${e}\` carries the retired \`${ir}\` key. To migrate: select the field in the object designer and make one edit in its Formula (CEL) editor — that commits the value to \`expression\`, clears the retired key, and the object saves again.`}function or(e,t){return e.map(e=>{if(e.code!==`unrecognized_keys`)return e;let n=e.path??[];if(n.length!==2||n[0]!==`fields`||typeof n[1]!=`string`||!e.keys?.includes(ir))return e;let r=qn(t,n);return!r||r.type!==`formula`?e:{...e,message:`${e.message} ${ar(n[1])}`}})}var sr=new Map;async function cr(e,t){let n=`${t}:${e}`;if(sr.has(n))return sr.get(n)??null;let r=er[e];if(!r||t===`edit`&&$n.has(e))return sr.set(n,null),null;try{let e=await r(t),i=e&&typeof e.safeParse==`function`?e:null;return sr.set(n,i),i}catch{return sr.set(n,null),null}}function lr(e,t=`create`){return e in er&&!(t===`edit`&&$n.has(e))}async function ur(e,t,n,r){let i=await cr(e,r?.mode??`create`);if(!i)return{ok:!0,issues:[]};let a=e===`object`?await rr(t):[],o=i.safeParse(t);if(o.success)return a.length>0?{ok:!1,issues:a}:{ok:!0,issues:[]};let s=o.error?.issues??[],c=Array.isArray(n?.required)?new Set(n.required.map(e=>String(e))):void 0;if(c&&t&&typeof t==`object`&&!Array.isArray(t)){let e=t;s=s.filter(t=>{let n=t.path??[];if(n.length!==1)return!0;let r=String(n[0]);return!((e[r]===void 0||e[r]===null)&&!c.has(r))})}return s.length===0&&a.length===0?{ok:!0,issues:[]}:{ok:!1,issues:[...(e===`view`?Qn(s,[],t):e===`object`?or(s,t):s).map(e=>({path:(e.path??[]).map(e=>String(e)).join(`.`),message:e.message})),...a]}}function dr(e,t,n){let r=t.split(`.`);if(r.length<=1)return e;let i=[e],a=pr(n)?.[r[0]];for(let e=1;e<r.length;e++){let t=r[e];if(/^\d+$/.test(t)){let e=Number(t),n=Array.isArray(a)?a[e]:void 0;i.push(fr(n)??`#${e+1}`),a=n}else i.push(t),a=pr(a)?.[t]}return i.join(` → `)}function fr(e){let t=pr(e);if(t)for(let e of[`id`,`name`,`key`,`title`,`label`]){let n=t[e];if(typeof n==`string`&&n.trim())return n;let r=pr(n);if(r){let e=r.defaultValue??r.key;if(typeof e==`string`&&e.trim())return e}}}function pr(e){return e&&typeof e==`object`?e:void 0}function mr(e,t,n){return e.createBuildBody?e.createBuildBody(t):{...n??e.createDefaults??{},...t}}var hr={"no-overlay":`engine.edit.lockNoOverlay`,"no-delete":`engine.edit.lockNoDelete`,full:`engine.edit.lockFull`};function gr(e,t){return typeof e==`string`&&Object.prototype.hasOwnProperty.call(hr,e)?K(hr[e],t):G(`engine.edit.lockUnknown`,t,{state:String(e)})}var _r=new Set([`object`,`report`,`dataset`]),vr={object:[`fields`,`fieldGroups`]};function yr(e){if(!e||typeof e!=`object`)return null;let t=e;if(!(`item`in t))return null;let n=t.item;return!n||typeof n!=`object`?null:Object.keys(n).length>0?n:null}function br(){try{let e=new URLSearchParams(window.location.search).get(`package`);return e&&e!==`all`?e:void 0}catch{return}}function xr(e){return e.loadFailed?!1:e.hasDiag||e.hasClientValidator}function Sr({type:e,name:t,createMode:n=!1,embedded:r=!1}){let i=o(),a=e??i.type??``,s=t??i.name??``,c=wt(a);if(c?.EditPage&&!n){let e=c.EditPage;return(0,Y.jsx)(e,{type:a,name:s})}if(c?.CreatePage&&n){let e=c.CreatePage;return(0,Y.jsx)(e,{type:a})}return(0,Y.jsx)(Cr,{type:a,name:s,createMode:n,embedded:r})}function Cr({type:e,name:t,createMode:n,embedded:r}){let i=s(),[o,c]=a(),l=o.get(`package`)??void 0,u=et(),{entries:p}=nt(u),_=p.find(t=>t.type===e),y=Tt(e,_),b=(n&&y.createSchema?y.createSchema:_?.schema)??y.defaultSchema,x=bt(),S=n?`create`:`edit`,[C,w]=J.useState(null),ee=y.identityField??`name`,[T,E]=J.useState(()=>n?{...y.createDefaults??{},[ee]:``}:{}),[D,O]=J.useState({status:`idle`}),[te,A]=J.useState(!n),[j,le]=J.useState(!1),[ue,N]=J.useState(null),[fe,F]=J.useState(!1),[me,I]=J.useState([]),[xe,Te]=J.useState(!1),L=J.useCallback(e=>{E(t=>{let n=typeof e==`function`?e(t):e,r=new Set,i=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of i)Object.is(t?.[e],n?.[e])||r.add(e);return r.size>0&&(Te(!0),I(e=>e.filter(e=>{let t=(e.path??``).split(`.`)[0];return!r.has(t)}))),n})},[]),[De,Oe]=J.useState(null),[ke,R]=J.useState(null),Me=J.useCallback(e=>{L(t=>({...t,...e}))},[L]),{markTouched:Fe}=tt({rules:y.createDerive,draft:T,onPatch:Me,enabled:!!n}),z=J.useMemo(()=>{if(!n)return;if(y.createFields&&y.createFields.length>0)return y.createFields;let e=b?.properties??void 0,t=b?.required??void 0;return rt(e,t)},[n,y.createFields,b]),ze=J.useMemo(()=>{let t=vr[e]??[];if(!n||!z)return t.length===0?y.hiddenFields:Array.from(new Set([...y.hiddenFields??[],...t]));let r=b?.properties??{},i=new Set(z),a=Object.keys(r).filter(e=>!i.has(e));if(y.hiddenFields)for(let e of y.hiddenFields)a.includes(e)||a.push(e);for(let e of t)a.includes(e)||a.push(e);return a},[n,z,b,y.hiddenFields,e]),Be=J.useMemo(()=>n&&z?z:y.fieldOrder,[n,z,y.fieldOrder]),V=J.useCallback(e=>{if(n){let t=T,n=typeof e==`function`?e(t):e,r=new Set([...Object.keys(t??{}),...Object.keys(n??{})]);for(let e of r)Object.is(t?.[e],n?.[e])||Fe(e)}L(e)},[n,T,L,Fe]);J.useEffect(()=>{if(!lr(e,S))return;let t=!1,n=window.setTimeout(()=>{ur(e,T,_?.schema,{mode:S}).then(e=>{t||I(e.issues)})},200);return()=>{t=!0,window.clearTimeout(n)}},[e,T,_?.schema,S]);let We=J.useMemo(()=>n&&!xe?[]:me,[n,xe,me]),Ge=J.useMemo(()=>{let t=C?._diagnostics,n=lr(e,S)?We.map(e=>({path:e.path,message:xt(e.message,x)})):(t?.errors??[]).map(e=>({path:e.path,message:xt(e.message,x)})),r=(t?.warnings??[]).map(e=>({path:e.path,message:xt(e.message,x)}));return[...n.map(e=>({path:e.path||void 0,message:e.message,severity:`error`})),...r.map(e=>({path:e.path||void 0,message:e.message,severity:`warning`}))]},[C,We,e,x,S]),[Xe,Ze]=J.useState(!1),[Qe,$e]=J.useState(!1),[at,ot]=J.useState(0),[U,st]=J.useState(!!n),[W,_t]=J.useState(null);J.useEffect(()=>{_t(null)},[e,t]);let[vt,St]=J.useState({key:``,count:0}),Ct=W?`${e}:${t}:${W.kind}:${W.id}`:`${e}:${t}:default`,q=vt.key===Ct?vt.count:0;J.useEffect(()=>{U||_t(null)},[U]);let wt=ut(o.get(`sel`)),Et=J.useRef(null);J.useEffect(()=>{if(e!==`app`||!wt||Et.current===`${t}:${wt}`||!T||Object.keys(T).length===0)return;let n=lt(T,wt);n&&(Et.current=`${t}:${wt}`,st(!0),_t({kind:`nav`,id:n.selectionId,label:n.label}))},[e,t,wt,T]),J.useEffect(()=>{if(e!==`app`)return;let t=W?.kind===`nav`?ct(T,W.id):null;c(e=>{let n=new URLSearchParams(e);return t?n.set(`sel`,dt(t)):n.delete(`sel`),n},{replace:!0})},[e,W]);let Dt=J.useRef(null),[jt,Ft]=J.useState(null),[It,Lt]=J.useState(()=>{if(typeof window>`u`)return!0;try{let e=window.localStorage.getItem(`metadata-admin:autosave`);return e===null||e===`1`}catch{return!0}});J.useEffect(()=>{try{window.localStorage.setItem(`metadata-admin:autosave`,It?`1`:`0`)}catch{}},[It]);let Rt=J.useRef(null),zt=yt(J.useCallback(async()=>(await u.list(`object`)).map(e=>e?.name).filter(e=>!!e).sort(),[u])),Bt=T?.interfaceConfig?.source||T?.data?.object||T?.object||T?.objectName,Vt=yt(J.useMemo(()=>Bt?async()=>{let e=await u.get(`object`,Bt),t=e?.fields,n=Array.isArray(t)?t.map(e=>({name:e?.name,label:e?.label,type:e?.type})):t&&typeof t==`object`?Object.entries(t).map(([e,t])=>({name:e,label:t?.label,type:t?.type})):[],r=e?.actions,i=Array.isArray(r)?r.map(e=>({name:e?.name,label:e?.label,locations:e?.locations})).filter(e=>!!e.name):[];return{fields:n.filter(e=>!!e.name),actions:i}}:null,[u,Bt])),Ht=yt(J.useMemo(()=>Bt?async()=>{let e=(await u.list(`view`)||[]).filter(e=>(e?.objectName??e?.object??e?.object_name)===Bt),t=new Set;return e.map(e=>({name:e?.name,label:e?.label||void 0})).filter(e=>!!e.name&&!t.has(e.name)&&t.add(e.name))}:null,[u,Bt])),Ut=J.useMemo(()=>e===`page`?pt(T):[],[e,T]),Wt=J.useMemo(()=>({objectNames:zt,objectFields:mt(Vt,e=>e.fields),objectActions:mt(Vt,e=>e.actions),objectViews:Ht,componentIds:Ut}),[zt,Vt,Ht,Ut]);J.useEffect(()=>{if(n){A(!1);return}let r=!1;return A(!0),N(null),F(!1),(async()=>{try{let n=l?{packageId:l}:{},[i,a]=await Promise.all([u.layered(e,t,n),u.getDraft(e,t,n).catch(()=>null)]);if(r)return;w(i);let o=i?._diagnostics;o&&o.valid===!1&&Array.isArray(o.errors)?I(o.errors.map(e=>({path:e.path||``,message:e.message}))):I([]);let s=yr(a),c=i.effective??i.code??{},d=s?{...c,...s}:c,f=y.toDraft?y.toDraft(d):d;E(f),Dt.current=f,Ze(!!s),A(!1)}catch(n){r||(F(!0),N(G(`engine.edit.loadFailed`,x,{type:e,name:t??``,message:n?.message??String(n)})),A(!1))}})(),()=>{r=!0}},[u,e,t,l,n,at,x]);async function Gt(){if(D.status!==`loading`&&D.status!==`loaded`){O({status:`loading`});try{let n=await u.references(e,t);O({status:`loaded`,items:n})}catch(e){O({status:`error`,message:String(e?.message??e)})}}}let[qt,Jt]=J.useState(null),Yt=J.useMemo(()=>!n&&!r&&Mt(e).length>0,[e,n,r]),Xt=J.useRef(null),[Zt,X]=J.useState(null),Qt=o.get(`review`),$t=J.useRef(!1);J.useEffect(()=>{if(!(Qt!==`1`||n)){if(!$t.current){$t.current=!0,ot(e=>e+1);return}if(!te){Xe&&X(`review`);let e=new URLSearchParams(o);e.delete(`review`),c(e,{replace:!0}),$t.current=!1}}},[Qt,n,te,Xe]);let[en,tn]=J.useState(`properties`);J.useEffect(()=>{if(Zt===`references`&&Gt(),typeof window<`u`&&!r){let e=new URL(window.location.href);Zt?e.searchParams.set(`tab`,Zt):e.searchParams.delete(`tab`),window.history.replaceState({},``,e.toString())}},[Zt,r]);let an=`metadata-edit:inspector-collapsed`,on=`metadata-edit:inspector-size`,[sn,cn]=J.useState(()=>typeof window>`u`?!1:window.localStorage.getItem(an)===`1`),ln=J.useRef(38);J.useEffect(()=>{if(typeof window>`u`)return;let e=Number(window.localStorage.getItem(on));Number.isFinite(e)&&e>=22&&e<=80&&(ln.current=e)},[]);let un=J.useRef(null),dn=J.useCallback(()=>{cn(e=>{let t=!e;return typeof window<`u`&&window.localStorage.setItem(an,t?`1`:`0`),t})},[]);J.useEffect(()=>{let e=un.current;if(e){if(sn)e.resize?.(`0%`);else{let t=ln.current||38;e.resize?.(`${t}%`)}}},[sn]);let[hn,gn]=J.useState(!1),[_n,vn]=J.useState(!1);J.useEffect(()=>{if(typeof document>`u`||!_n)return;let e=document.body.style.overflow;return document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=e}},[_n]),J.useEffect(()=>{if(typeof window>`u`||!_n)return;function e(e){e.key===`Escape`&&(e.preventDefault(),vn(!1))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[_n]);let yn=!n&&C?.code!=null&&C.code?._packageId!==`sys_metadata`&&C?.provenance!==`org`,xn=C?.resettable,Sn=!n&&(xn??yn),wn=J.useRef(null);J.useEffect(()=>{wn.current=null},[e,t]),J.useEffect(()=>{if(n||r||te)return;let i=`${e}/${t??``}`;wn.current!==i&&kt(e)&&(yn?_?.allowOrgOverride:_?.allowOrgOverride||_?.allowRuntimeCreate)&&(wn.current=i,st(!0))},[e,t,n,r,te,_,yn]),J.useEffect(()=>{if(typeof window>`u`||r)return;function e(e){if(!(e.metaKey||e.ctrlKey)||e.shiftKey||e.altKey||e.key!==`\\`)return;let t=e.target;t&&(t.tagName===`TEXTAREA`||t.isContentEditable)||(e.preventDefault(),dn())}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[r,dn]),J.useEffect(()=>{if(typeof window>`u`||r)return;let e=new URLSearchParams(window.location.search),t=e.get(`tab`);(t===`layers`||t===`references`||t===`related`||t===`audit`)&&X(t),Xt.current=t;let n=e.get(`open`);if(n&&n.includes(`:`)){let[e,t]=n.split(`:`,2);e&&t&&Jt({kind:`metadata`,type:e,name:t})}},[]),J.useEffect(()=>{if(typeof window>`u`||r)return;let e=new URL(window.location.href);qt?.kind===`metadata`?e.searchParams.set(`open`,`${qt.type}:${qt.name}`):e.searchParams.delete(`open`),window.history.replaceState({},``,e.toString())},[qt,r]);function Tn(e){let t=e.split(`.`)[0];return t?dr((()=>{let e=n&&y.createSchema?void 0:_?.form,r=Array.isArray(e?.sections)?e.sections:[];for(let e of r){let n=Array.isArray(e?.fields)?e.fields:[];for(let e of n)if(typeof e==`string`){if(e===t)return e}else if(e?.field===t)return String(e.label??t)}let i=b?.properties??{};return String(i[t]?.title??t)})(),e,T):e}async function En(r){le(!0),N(null),I([]);try{let a=_?.createSeed,s=n?mr(y,T,a):y.fromDraft?y.fromDraft(T):T;if(n&&y.createSeed)try{let e=await y.createSeed(T,{client:u});e&&typeof e==`object`&&(s={...s,...e})}catch{}let c=String(s[ee]??T[ee]??t),d=n?{...s,[ee]:c}:s;if(!c){N(K(`engine.validation.nameRequired`,x)),le(!1);return}let f=br();await u.save(e,c,d,{force:r,mode:`draft`,...f?{packageId:f}:{}});let p=l?{packageId:l}:{},[m,h]=await Promise.all([u.layered(e,c,p),u.getDraft(e,c,p).catch(()=>null)]);w(m);let g=yr(h);Ze(!!g);let v=m.effective??d,b=g?{...v,...g}:v,S=y.toDraft?y.toDraft(b):b;E(S),Dt.current=S,Ft(new Date),Rt.current=JSON.stringify(S),Oe(null),R(null);let C=!n&&!!kt(e);if(!n&&!C&&st(!1),n){let e=o.toString();i(`../${encodeURIComponent(c)}${e?`?${e}`:``}`,{relative:`path`})}}catch(e){if(e?.status===409&&f(e,`DESTRUCTIVE_CHANGE`)){let t=e?.body?.issues??[];Oe(Array.isArray(t)?t:[]),R(T)}else if(f(e,`WRITABLE_PACKAGE_REQUIRED`))N(K(`engine.package.writableRequired`,x));else if(e?.status===422||d(e,[`INVALID_METADATA`,`INVALID_PAYLOAD`])){let t=e?.body?.issues??[],n=(Array.isArray(t)?t:[]).map(e=>({path:Array.isArray(e.path)?e.path.join(`.`):String(e.path??``),message:xt(String(e.message??`Invalid`),x)})),r=String(e?.body?.error??e?.message??``);if(n.length===0&&r){let e=r.match(/failed spec validation:\s*(.+?):\s*(.+)$/);n=e?[{path:e[1].trim(),message:xt(e[2].trim(),x)}]:[{path:``,message:xt(r,x)}]}I(n),n.length===1&&!n[0].path?N(n[0].message):n.length===1?N(`${Tn(n[0].path)}: ${n[0].message}`):N(G(`engine.validation.failed`,x,{count:n.length}))}else N(e?.message??String(e))}finally{le(!1)}}async function Dn(){if(confirm(G(Sn?`engine.edit.resetConfirm`:`engine.edit.deleteConfirm`,x,{type:e,name:t??``}))){le(!0),N(null);try{if(await u.reset(e,t),Sn){let n=await u.layered(e,t);w(n);let r=n.effective??n.code??{};E(r),Dt.current=r,kt(e)?wn.current=null:st(!1)}else i(`../`,{relative:`path`})}catch(e){N(e?.message??String(e))}finally{le(!1)}}}async function On(){$e(!0),N(null);try{let n=br();await u.publish(e,t,{...n?{packageId:n}:{}});let[r,i]=await Promise.all([u.layered(e,t),u.getDraft(e,t).catch(()=>null)]);w(r);let a=yr(i);Ze(!!a);let o=r.effective??T,s=a?{...o,...a}:o;E(s),Dt.current=s}catch(e){N(e?.message??String(e))}finally{$e(!1)}}async function kn(){if(confirm(G(`engine.edit.discardDraftConfirm`,x,{type:e,name:t??``}))){le(!0),N(null);try{await u.reset(e,t,{state:`draft`});let n=await u.layered(e,t);w(n);let r=n.effective??n.code??{};E(r),Dt.current=r,Ze(!1)}catch(e){N(e?.message??String(e))}finally{le(!1)}}}let Z=J.useMemo(()=>{if(n)return Object.keys(T).length>0;let e=Dt.current;if(!e)return!1;try{return JSON.stringify(T)!==JSON.stringify(e)}catch{return!1}},[T,n]),An=C?.editable!==!1,jn=C?.deletable!==!1,Mn=C?.lockReason,Nn=C?.lock&&C.lock!==`none`,Q=(n?!!(_?.allowOrgOverride||_?.allowRuntimeCreate):yn?!!_?.allowOrgOverride:!!(_?.allowOrgOverride||_?.allowRuntimeCreate))&&(n||An),Pn=!Q&&!n,Fn=J.useRef(En);J.useEffect(()=>{Fn.current=En}),J.useEffect(()=>{if(!It||n||Pn||!U||!Z||j||q>0)return;let e;try{e=JSON.stringify(T)}catch{return}if(e===Rt.current)return;let t=window.setTimeout(()=>{Rt.current=e,Fn.current(!1)},1500);return()=>window.clearTimeout(t)},[T,Z,U,j,n,Pn,It,q]),J.useEffect(()=>{let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`s`){if(!Q||Pn||!U&&!n)return;e.preventDefault(),!j&&(n||Z)&&q===0&&Fn.current(!1)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[Q,Pn,U,n,j,Z,q]),J.useEffect(()=>{if(!Z)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[Z]),J.useEffect(()=>{if(!Z)return;let e=e=>{if(e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;let t=e.target?.closest?.(`a[href]`);if(t&&!(t.target&&t.target!==`_self`)&&!t.hasAttribute(`download`)){try{let e=new URL(t.href,window.location.href);if(e.origin!==window.location.origin||e.pathname===window.location.pathname)return}catch{return}confirm(K(`engine.edit.unsavedLeaveConfirm`,x))||(e.preventDefault(),e.stopPropagation())}};return document.addEventListener(`click`,e,!0),()=>document.removeEventListener(`click`,e,!0)},[Z,x]);let In=J.useMemo(()=>{if(r)return null;let n=String(T.name??t??``);if(!n)return null;let i={type:e,name:n,label:typeof T.label==`string`?T.label:void 0};return e===`object`&&(i.fields=ft(T.fields).entries.slice(0,60).map(e=>({name:e.name,type:typeof e.def.type==`string`?e.def.type:void 0,label:typeof e.def.label==`string`?e.def.label:void 0,required:!!e.def.required||void 0}))),i},[r,e,t,T]);if(it(In),te)return(0,Y.jsx)(Nt,{entry:_,itemName:t,children:(0,Y.jsxs)(`div`,{className:`p-6 text-sm text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-4 w-4 animate-spin`}),` Loading `,e,`/`,t,`…`]})});let Ln=Pn&&yn&&!!_?.allowRuntimeCreate,Rn=_r.has(e),$=!r&&(!n||Rn)?kt(e):void 0,zn=r?ht:void 0,Vn=Ot(e),Hn=At(e);function Un(){Dt.current&&E(Dt.current),I([]),N(null),st(!1)}let Wn=Pn||!U&&!n,Gn=(0,Y.jsxs)(Y.Fragment,{children:[!n&&(0,Y.jsx)(Kt,{entry:_,location:`record_header`,recordId:t,onAfter:()=>ot(e=>e+1)}),(!n||Yt)&&(0,Y.jsxs)(`div`,{className:`flex items-center rounded-md border bg-background p-0.5`,children:[!n&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`layers`),title:K(`engine.edit.layers`,x),className:`h-7 w-7 p-0 relative`,children:[(0,Y.jsx)(Ae,{className:`h-3.5 w-3.5`}),C?.overlay&&(()=>{let e=nn(C.code,C.effective);return e>0?(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-emerald-600 text-emerald-50 text-[9px] leading-[14px] text-center font-medium`,title:K(`engine.layers.diff`,x),children:e}):null})()]}),!n&&Xe&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`review`),title:K(`designer.draftReview.title`,x),className:`h-7 w-7 p-0 relative`,"data-testid":`resource-review-trigger`,children:[(0,Y.jsx)(pe,{className:`h-3.5 w-3.5`}),(()=>{let e=fn(C?.effective??null,T);return e>0?(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-amber-500 text-amber-50 text-[9px] leading-[14px] text-center font-medium`,title:G(`designer.draftReview.badge`,x,{n:e}),children:e}):null})()]}),!n&&(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`references`),title:K(`engine.edit.references`,x),className:`h-7 w-7 p-0 relative`,children:[(0,Y.jsx)(M,{className:`h-3.5 w-3.5`}),D.status===`loaded`&&D.items.length>0&&(0,Y.jsx)(`span`,{className:`absolute -top-1 -right-1 min-w-[14px] h-[14px] px-1 rounded-full bg-muted text-foreground text-[9px] leading-[14px] text-center font-medium border`,children:D.items.length})]}),Yt&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`related`),title:K(`engine.edit.related`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(ie,{className:`h-3.5 w-3.5`})}),!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`history`),title:K(`engine.edit.history`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(Pe,{className:`h-3.5 w-3.5`})}),!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>X(`audit`),title:K(`engine.edit.auditTab`,x),className:`h-7 w-7 p-0`,children:(0,Y.jsx)(m,{className:`h-3.5 w-3.5`})})]}),!n&&Q&&C?.overlay&&jn&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:Dn,disabled:j,"data-testid":`reset-or-delete-button`,title:K(Sn?`engine.edit.reset`:`engine.edit.delete`,x),className:`h-7 w-7 p-0 text-muted-foreground hover:text-destructive`,children:Sn?(0,Y.jsx)(we,{className:`h-3.5 w-3.5`,"data-testid":`reset-icon`}):(0,Y.jsx)(ae,{className:`h-3.5 w-3.5`,"data-testid":`delete-icon`})}),Q&&!n&&!U&&!$&&(0,Y.jsxs)(P,{size:`sm`,onClick:()=>st(!0),className:`h-7`,children:[(0,Y.jsx)(re,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.edit.edit`,x)]}),Q&&(U||n)&&(0,Y.jsx)(Tr,{saving:j,isDirty:Z,autoSaveEnabled:It,lastSavedAt:jt,createMode:!!n,locale:x}),Q&&(U||n)&&!n&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>Lt(e=>!e),className:`h-7 w-7 p-0 text-muted-foreground`,title:K(It?`engine.edit.autoSaveOn`:`engine.edit.autoSaveOff`,x),children:It?(0,Y.jsx)(Se,{className:`h-3.5 w-3.5 text-emerald-600`}):(0,Y.jsx)(Re,{className:`h-3.5 w-3.5`})}),Q&&!n&&U&&!$&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:Un,disabled:j,className:`h-7 w-7 p-0`,title:K(`engine.cancel`,x),children:(0,Y.jsx)(Ne,{className:`h-3.5 w-3.5`})}),Q&&(U||n)&&(0,Y.jsxs)(P,{size:`sm`,onClick:()=>En(!1),disabled:j||!n&&!Z||q>0,className:`h-7 w-7 p-0 relative`,title:j?K(`engine.edit.saving`,x):q>0?K(`perm.cel.saveBlocked`,x):!n&&!Z?K(`engine.edit.noChanges`,x):`${K(`engine.edit.save`,x)} (⌘S)`,children:[j?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):(0,Y.jsx)(Le,{className:`h-3.5 w-3.5`}),Z&&!j&&(0,Y.jsx)(`span`,{"aria-hidden":!0,className:`absolute -top-0.5 -right-0.5 inline-block h-2 w-2 rounded-full bg-amber-300 ring-2 ring-background`})]}),Q&&!n&&Xe&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:kn,disabled:j||Qe,className:`h-7 w-7 p-0 text-muted-foreground`,title:K(`engine.edit.discardDraft`,x),children:(0,Y.jsx)(he,{className:`h-3.5 w-3.5`})}),Q&&!n&&Xe&&(0,Y.jsx)(P,{size:`sm`,onClick:On,disabled:j||Qe||Z,className:`h-7 px-2 relative bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,title:K(Z?`engine.edit.publishBlockedDirty`:`engine.edit.publish`,x),children:Qe?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(Ee,{className:`h-3.5 w-3.5 mr-1`}),(0,Y.jsx)(`span`,{className:`text-xs`,children:K(`engine.edit.publish`,x)})]})})]});return(0,Y.jsxs)(Nt,{entry:_??{type:e,label:e},itemName:n?`(new)`:t,subtitle:n?K(`engine.edit.createNew`,x):void 0,actions:$?null:Gn,children:[(0,Y.jsxs)(`div`,{className:$?`flex h-full min-h-0 flex-col`:`p-6 space-y-6 max-w-7xl`,children:[(ue||Pn||Xe||Nn)&&(0,Y.jsxs)(`div`,{className:$?`px-6 pt-4 space-y-3`:`space-y-3`,children:[ue&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/5`,children:ue}),Nn&&(0,Y.jsxs)(`div`,{className:`text-xs text-amber-900 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-2.5`,children:[(0,Y.jsx)(ge,{className:`h-3.5 w-3.5 mt-0.5 shrink-0 opacity-80`}),(0,Y.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,"data-testid":`lock-banner-title`,children:gr(C?.lock,x)}),Mn&&(0,Y.jsx)(`div`,{className:`mt-0.5 opacity-90`,children:Mn}),C?.lockDocsUrl&&(0,Y.jsxs)(`a`,{href:C.lockDocsUrl,target:`_blank`,rel:`noopener noreferrer`,className:`mt-1 inline-flex items-center gap-1 text-amber-800 underline hover:text-amber-900 dark:text-amber-200 dark:hover:text-amber-100`,children:[x===`zh-CN`?`查看文档`:`View docs`,` →`]}),C?.packageId&&(0,Y.jsx)(`div`,{className:`mt-0.5 text-amber-700 dark:text-amber-300/80`,children:(0,Y.jsxs)(`code`,{className:`font-mono`,children:[C.packageId,C.packageVersion?`@${C.packageVersion}`:``]})})]}),Ln&&(0,Y.jsx)(P,{size:`sm`,variant:`outline`,className:`shrink-0 h-7 bg-background/60`,onClick:()=>i(`../new`,{relative:`path`}),children:K(`engine.list.create`,x)})]}),Xe&&!n&&(0,Y.jsxs)(`div`,{className:`text-xs text-emerald-900 border border-emerald-300 bg-emerald-50 rounded p-3 dark:text-emerald-200 dark:border-emerald-700/50 dark:bg-emerald-950/30 flex items-center gap-3`,children:[(0,Y.jsx)(Ee,{className:`h-3.5 w-3.5 shrink-0`}),(0,Y.jsx)(`span`,{className:`flex-1`,children:K(`engine.edit.draftPending`,x)}),Q&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(P,{size:`sm`,variant:`ghost`,onClick:kn,disabled:j||Qe,className:`h-7`,children:K(`engine.edit.discardDraft`,x)}),(0,Y.jsx)(P,{size:`sm`,onClick:On,disabled:j||Qe||Z,className:`h-7 bg-emerald-600 hover:bg-emerald-700 text-emerald-50`,children:Qe?(0,Y.jsx)(B,{className:`h-3.5 w-3.5 animate-spin`}):K(`engine.edit.publish`,x)})]})]}),Pn&&!Nn&&(0,Y.jsxs)(`div`,{"data-testid":`readonly-banner`,className:`text-xs text-amber-800 border border-amber-300/70 bg-amber-50/70 rounded-md px-3 py-2.5 dark:text-amber-200 dark:border-amber-700/40 dark:bg-amber-950/20 flex items-start gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex-1`,children:Ln?K(`engine.edit.artifactLockedBanner`,x).split(/(\{type\})/).map((t,n)=>t===`{type}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:e},n):(0,Y.jsx)(J.Fragment,{children:t},n)):K(`engine.edit.readOnlyTypeBanner`,x).split(/(\{flag\}|\{type\}|\{override\})/).map((t,n)=>t===`{flag}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:`OBJECTSTACK_METADATA_WRITABLE`},n):t===`{type}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:e},n):t===`{override}`?(0,Y.jsx)(`code`,{className:`font-mono`,children:`allowOrgOverride`},n):(0,Y.jsx)(J.Fragment,{children:t},n))}),Ln&&(0,Y.jsx)(P,{size:`sm`,variant:`outline`,className:`shrink-0`,onClick:()=>i(`../new`,{relative:`path`}),children:K(`engine.list.create`,x)})]})]}),(0,Y.jsx)(`div`,{className:$?`flex w-full flex-1 min-h-0 flex-col`:`w-full`,children:(0,Y.jsxs)(`div`,{className:$?`mt-2 flex-1 min-h-0 flex flex-col px-6 pb-4`:`mt-4 space-y-3`,children:[!$&&Wn&&!Pn&&Q&&!n&&(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3 text-xs text-muted-foreground border rounded p-2.5 bg-muted/30`,children:[(0,Y.jsx)(`span`,{children:K(`engine.edit.readOnlyBanner`,x).split(/\{edit\}/).map((e,t,n)=>(0,Y.jsxs)(J.Fragment,{children:[e,t<n.length-1&&(0,Y.jsx)(`strong`,{children:K(`engine.edit.edit`,x)})]},t))}),(0,Y.jsxs)(P,{size:`sm`,variant:`outline`,onClick:()=>st(!0),children:[(0,Y.jsx)(re,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.edit.edit`,x)]})]}),(()=>{let t=C?._diagnostics,r=lr(e,S)?me.map(e=>({path:e.path,message:xt(e.message,x)})):(t?.errors??[]).map(e=>({...e,message:xt(e.message,x)})),i=lr(e,S)?r.length===0:t?.valid!==!1;if(n&&!xe||!xr({loadFailed:fe,hasDiag:!!t,hasClientValidator:lr(e,S)}))return null;let a=r,o=t?.warnings??[],s=!i&&a.length>0,c=o.length>0;if(!s&&!c)return null;let l=(e,t)=>{let n=t.slice(0,3),r=Math.max(0,t.length-n.length),i=e===`error`?`border-destructive/40 bg-destructive/[0.06] text-destructive`:`border-amber-500/40 bg-amber-500/[0.08] text-amber-800 dark:text-amber-200`,a=e===`error`?`engine.edit.diagnostics.title`:`engine.edit.diagnostics.warnTitle`;return(0,Y.jsxs)(`div`,{"data-testid":e===`error`?`metadata-validation-banner`:void 0,className:`flex items-start gap-2 text-xs border rounded p-2.5 ${i}`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 mt-0.5 shrink-0`}),(0,Y.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`div`,{className:`font-medium`,children:G(a,x,{count:t.length})}),(0,Y.jsxs)(`ul`,{className:`mt-1 space-y-0.5 font-mono text-[11px]`,children:[n.map((e,t)=>(0,Y.jsxs)(`li`,{className:`truncate`,children:[(0,Y.jsx)(`span`,{className:`opacity-70`,children:e.path?Tn(e.path):`(root)`}),`: `,e.message]},t)),r>0&&(0,Y.jsx)(`li`,{className:`opacity-70`,children:G(`engine.edit.diagnostics.more`,x,{count:r})})]})]})]},e)};return(0,Y.jsxs)(`div`,{className:`space-y-2`,children:[s&&l(`error`,a),c&&l(`warning`,o)]})})(),$?(0,Y.jsx)(`div`,{className:_n?`fixed inset-0 z-50 bg-background flex flex-col p-3`:`relative flex-1 min-h-0 flex`,children:(0,Y.jsxs)(h,{orientation:`horizontal`,className:`flex-1 min-h-0 rounded-md border bg-background overflow-hidden`,id:`metadata-edit-${e}`,children:[(0,Y.jsx)(je,{defaultSize:62,minSize:30,children:(0,Y.jsxs)(`div`,{className:`relative h-full flex flex-col`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b bg-background/95 backdrop-blur px-3 py-2 sticky top-0 z-10`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,children:Q&&(0,Y.jsxs)(`div`,{role:`tablist`,"aria-label":K(`engine.edit.designer`,x),className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":!hn,onClick:()=>gn(!1),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(hn?`text-muted-foreground hover:text-foreground`:`bg-background shadow-sm text-foreground`),title:K(`engine.edit.designMode`,x),children:[(0,Y.jsx)(Ce,{className:`h-3.5 w-3.5`}),K(`engine.edit.designMode`,x)]}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":hn,onClick:()=>gn(!0),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(hn?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.previewMode`,x),children:[(0,Y.jsx)(ce,{className:`h-3.5 w-3.5`}),K(`engine.edit.previewMode`,x)]})]})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[Gn,(0,Y.jsx)(`span`,{className:`mx-1 h-5 w-px bg-border`,"aria-hidden":!0}),$&&(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:dn,className:`h-7 w-7 p-0`,title:K(sn?`engine.edit.showInspector`:`engine.edit.hideInspector`,x)+` (⌘\\)`,children:sn?(0,Y.jsx)(g,{className:`h-3.5 w-3.5`}):(0,Y.jsx)(de,{className:`h-3.5 w-3.5`})}),(0,Y.jsx)(P,{variant:`ghost`,size:`sm`,onClick:()=>vn(e=>!e),className:`h-7 w-7 p-0`,title:K(_n?`engine.edit.exitFullscreen`:`engine.edit.fullscreen`,x),children:_n?(0,Y.jsx)(_e,{className:`h-3.5 w-3.5`}):(0,Y.jsx)(be,{className:`h-3.5 w-3.5`})})]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4 bg-[radial-gradient(circle_at_1px_1px,theme(colors.border)_1px,transparent_0)] [background-size:16px_16px] bg-muted/30`,children:(0,Y.jsx)($,{type:e,name:t,draft:T,baseline:n?void 0:C?.effective??void 0,editing:U&&!hn,selection:hn?null:W,onSelectionChange:_t,locale:x,diagnostics:Ge,onPatch:e=>L(t=>({...t,...e}))})})]})}),(0,Y.jsx)(ne,{withHandle:!0,className:sn?`hidden`:`w-1.5 bg-border/40 hover:bg-primary/40 active:bg-primary/60 transition-colors`}),(0,Y.jsx)(je,{panelRef:un,defaultSize:ln.current,minSize:22,collapsible:!0,collapsedSize:0,onResize:e=>{let t=e.asPercentage,n=t<=.5;n||(ln.current=t,typeof window<`u`&&window.localStorage.setItem(on,String(Math.round(t)))),cn(e=>e===n?e:(typeof window<`u`&&window.localStorage.setItem(an,n?`1`:`0`),n))},children:(0,Y.jsxs)(`div`,{className:`h-full overflow-auto`,children:[(0,Y.jsxs)(`div`,{className:`sticky top-0 z-10 flex items-center gap-2 border-b bg-background/95 backdrop-blur px-3 py-2`,children:[(0,Y.jsxs)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5`,children:[(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":en===`properties`,onClick:()=>tn(`properties`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(en===`properties`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.inspector.properties`,x),children:[(0,Y.jsx)(Ie,{className:`h-3.5 w-3.5`}),K(`engine.edit.inspector.properties`,x)]}),(0,Y.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":en===`source`,onClick:()=>tn(`source`),className:`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors `+(en===`source`?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),title:K(`engine.edit.inspector.source`,x),children:[(0,Y.jsx)(Ue,{className:`h-3.5 w-3.5`}),K(`engine.edit.inspector.source`,x)]})]}),Z&&(0,Y.jsxs)(k,{variant:`outline`,className:`text-[10px] border-amber-400/60 text-amber-600 dark:text-amber-300`,children:[(0,Y.jsx)(`span`,{className:`mr-1 inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),K(`engine.edit.unsaved`,x)]})]}),(0,Y.jsx)(`div`,{className:`p-4`,children:en===`source`?(0,Y.jsx)(Bn,{value:T,onChange:L,readOnly:Wn,issues:We.map(e=>({path:e.path??``,message:e.message}))}):W&&Vn?(0,Y.jsx)(Vn,{type:e,name:t,draft:T,selection:W,onPatch:e=>L(t=>({...t,...e})),onClearSelection:()=>_t(null),onSelectionChange:_t,onBlockingIssuesChange:e=>St({key:Ct,count:e}),readOnly:Wn,locale:x}):!W&&Hn?(0,Y.jsx)(Hn,{type:e,name:t,draft:T,onPatch:e=>L(t=>({...t,...e})),onSelectionChange:_t,onBlockingIssuesChange:e=>St({key:Ct,count:e}),readOnly:Wn,locale:x,serverSchema:_?.schema}):(0,Y.jsx)(gt,{schema:b,idPath:zn,form:n&&y.createSchema?void 0:_?.form,value:T,onChange:V,issues:We,hiddenFields:ze,fieldOrder:Be,readOnly:Wn,createMode:n,widgetContext:Wt})})]})})]})}):(0,Y.jsx)(gt,{schema:b,idPath:zn,form:n&&y.createSchema?void 0:_?.form,value:T,onChange:V,issues:We,hiddenFields:ze,fieldOrder:Be,readOnly:Wn,createMode:n,widgetContext:Wt})]})})]}),(0,Y.jsx)(Ve,{open:Zt===`layers`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.layers`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(rn,{layered:C,locale:x})})]})}),(0,Y.jsx)(Ve,{open:Zt===`review`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`designer.draftReview.title`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t,` · `,K(`designer.canvas.reviewVsPublished`,x)]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(pn,{published:C?.effective??null,draft:T,locale:x})})]})}),(0,Y.jsx)(Ve,{open:Zt===`references`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsxs)(oe,{className:`text-base`,children:[K(`engine.edit.references`,x),D.status===`loaded`&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px]`,"data-testid":`refs-count-badge`,children:D.items.length})]}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(wr,{state:D,locale:x,onRetry:()=>void Gt()})})]})}),Yt&&(0,Y.jsx)(Ve,{open:Zt===`related`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.related`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(mn,{type:e,name:t,parentItem:T,onOpen:e=>Jt(e)})})]})}),!n&&(0,Y.jsx)(Ve,{open:Zt===`history`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[720px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.history`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto p-4`,children:(0,Y.jsx)(Pt,{type:e,name:t,client:u,locale:x,onRollback:()=>ot(e=>e+1),rollbackLabel:K(`engine.edit.rollback`,x),rollbackConfirm:e=>K(`engine.edit.rollbackConfirm`,x).replace(`{version}`,String(e))})})]})}),!n&&(0,Y.jsx)(Ve,{open:Zt===`audit`,onOpenChange:e=>!e&&X(null),children:(0,Y.jsxs)(Je,{side:`right`,className:`w-[92vw] sm:max-w-[860px] p-0 flex flex-col gap-0`,children:[(0,Y.jsxs)(Ke,{className:`px-4 py-3 border-b`,children:[(0,Y.jsx)(oe,{className:`text-base`,children:K(`engine.edit.auditTab`,x)}),(0,Y.jsxs)(ve,{className:`text-xs`,children:[e,` / `,t]})]}),(0,Y.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden p-3`,children:(0,Y.jsx)(Cn,{type:e,name:t,client:u,locale:x})})]})}),(0,Y.jsx)(bn,{target:qt,onClose:()=>Jt(null),parentContext:{type:e,name:t}}),(0,Y.jsx)(He,{open:De!=null,onOpenChange:e=>{e||(Oe(null),R(null))},children:(0,Y.jsxs)(Ye,{children:[(0,Y.jsxs)(se,{children:[(0,Y.jsxs)(v,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-5 w-5 text-amber-600`}),K(`engine.edit.destructiveTitle`,x)]}),(0,Y.jsx)(ye,{children:K(`engine.edit.destructiveDesc`,x)})]}),(0,Y.jsx)(`div`,{className:`max-h-[300px] overflow-auto space-y-2 my-2`,children:De?.map((e,t)=>(0,Y.jsxs)(`div`,{className:`rounded border bg-amber-50 border-amber-200 p-2 text-xs`,children:[(0,Y.jsx)(`div`,{className:`font-mono text-amber-900`,children:e.kind??`change`}),e.path&&(0,Y.jsx)(`div`,{className:`text-amber-800 font-mono mt-0.5`,children:e.path}),(0,Y.jsx)(`div`,{className:`text-amber-900 mt-1`,children:e.message})]},t))}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(P,{variant:`ghost`,onClick:()=>Oe(null),children:K(`engine.cancel`,x)}),(0,Y.jsx)(P,{variant:`destructive`,onClick:()=>En(!0),disabled:j,children:K(j?`engine.edit.forcing`:`engine.edit.forceSave`,x)})]})]})})]})}function wr({state:e,locale:t,onRetry:n}){if(e.status===`error`)return(0,Y.jsxs)(R,{"data-testid":`refs-error`,children:[(0,Y.jsxs)(V,{className:`flex items-center justify-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-4 w-4 text-amber-600`}),K(`engine.edit.refsErrorTitle`,t)]}),(0,Y.jsx)(L,{children:K(`engine.edit.refsErrorDesc`,t)}),e.message?(0,Y.jsx)(`p`,{"data-testid":`refs-error-cause`,className:`mt-2 max-w-full break-words font-mono text-xs text-muted-foreground`,children:e.message}):null,(0,Y.jsx)(P,{variant:`outline`,size:`sm`,className:`mt-3`,"data-testid":`refs-retry`,onClick:n,children:K(`engine.edit.refsRetry`,t)})]});if(e.status!==`loaded`)return(0,Y.jsxs)(`div`,{"data-testid":`refs-scanning`,className:`text-sm text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(B,{className:`h-4 w-4 animate-spin`}),` `,K(`engine.edit.refsScanning`,t)]});let r=e.items;return r.length===0?(0,Y.jsxs)(R,{"data-testid":`refs-empty`,children:[(0,Y.jsx)(V,{children:K(`engine.edit.refsEmptyTitle`,t)}),(0,Y.jsx)(L,{children:K(`engine.edit.refsEmptyDesc`,t)})]}):(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From type`}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`From name`}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left`,children:`Path`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:r.map((e,t)=>(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50`,children:[(0,Y.jsx)(`td`,{className:`px-3 py-2`,children:(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono`,children:e.fromType})}),(0,Y.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs`,children:e.fromName}),(0,Y.jsx)(`td`,{className:`px-3 py-2 font-mono text-xs text-muted-foreground`,children:e.path})]},t))})]})})}function Tr({saving:e,isDirty:t,autoSaveEnabled:n,lastSavedAt:r,createMode:i,locale:a}){let[,o]=J.useReducer(e=>e+1,0);if(J.useEffect(()=>{if(!r)return;let e=window.setInterval(o,3e4);return()=>window.clearInterval(e)},[r]),e)return(0,Y.jsxs)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:[(0,Y.jsx)(B,{className:`h-3 w-3 animate-spin`}),K(`engine.edit.saving`,a)]});if(t)return i?null:(0,Y.jsxs)(`span`,{className:`text-xs text-amber-600 dark:text-amber-300 hidden md:inline-flex items-center gap-1`,children:[(0,Y.jsx)(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full bg-amber-400`}),K(n?`engine.edit.autoSavingShortly`:`engine.edit.unsaved`,a)]});if(r){let e=String(r.getHours()).padStart(2,`0`),t=String(r.getMinutes()).padStart(2,`0`);return(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground hidden md:inline-flex items-center gap-1`,children:G(`engine.edit.savedAt`,a,{time:`${e}:${t}`})})}return null}function Er({type:e}){let t=i(),[n]=a(),r=e??n.get(`type`)??``;if(!r)return(0,Y.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`Missing metadata type`}),(0,Y.jsxs)(L,{children:[`This page expects a `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`?type=`}),` query param (e.g. `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`?type=view`}),`) or a nav-metadata `,(0,Y.jsxs)(`code`,{className:`font-mono`,children:[`params: `,`{ type: 'view' }`]}),`.`]})]})});let o=Dr(t.pathname),s=o.split(`/`).filter(Boolean);return s.length===0?(0,Y.jsx)(Jt,{type:r}):s[0]===`new`&&s.length===1?(0,Y.jsx)(Sr,{type:r,name:``,createMode:!0},`${r}:__new__`):s.length===2&&s[1]===`history`?(0,Y.jsx)(Et,{type:r,name:decodeURIComponent(s[0])}):s.length===1?(0,Y.jsx)(Sr,{type:r,name:decodeURIComponent(s[0])},`${r}:${s[0]}`):(0,Y.jsx)(`div`,{className:`p-8 h-full flex items-center justify-center`,children:(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:`Unknown sub-path`}),(0,Y.jsxs)(L,{children:[`The path `,(0,Y.jsx)(`code`,{className:`font-mono`,children:o}),` isn't recognized. Valid forms are `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/`}),` (list),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/new`}),` (create),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/:name`}),` (edit),`,` `,(0,Y.jsx)(`code`,{className:`font-mono`,children:`/:name/history`}),`.`]})]})})}function Dr(e){let t=e.indexOf(`/metadata/resource`);return t===-1?``:e.slice(t+18)}function Or(){let e=et(),t=bt(),[r,i]=J.useState(`error`),{loading:a,error:o,summary:s,reload:c}=Qe(e,r),{entries:l}=nt(e),u=J.useMemo(()=>{let e={};for(let n of l)e[n.type]=q(n.type,t,n.label);return e},[l,t]),d=J.useMemo(()=>{let e={};for(let t of s.entries)(e[t.type]??=[]).push(t);return Object.entries(e).sort(([,e],[,t])=>t.length-e.length)},[s]);return(0,Y.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`px-6 pt-5 pb-4 border-b bg-background`,children:[(0,Y.jsx)(`nav`,{className:`text-xs text-muted-foreground mb-2`,children:(0,Y.jsxs)(n,{to:`..`,className:`hover:text-foreground inline-flex items-center gap-1`,children:[(0,Y.jsx)(A,{className:`h-3 w-3`}),K(`engine.diagnostics.back`,t)]})}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,Y.jsxs)(`h1`,{className:`text-xl font-semibold flex items-center gap-2`,children:[(0,Y.jsx)(H,{className:`h-5 w-5 text-destructive`}),K(`engine.diagnostics.title`,t)]}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[11px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:G(`engine.diagnostics.summary`,t,{count:s.total,items:s.scannedItems,types:s.scannedTypes})}),(0,Y.jsx)(`div`,{className:`flex-1`}),(0,Y.jsx)(`div`,{role:`tablist`,className:`inline-flex items-center rounded-md border bg-muted/40 p-0.5 text-xs`,children:[`error`,`warning`].map(e=>(0,Y.jsx)(`button`,{role:`tab`,type:`button`,"aria-selected":r===e,onClick:()=>i(e),className:`px-2.5 py-1 rounded transition-colors `+(r===e?`bg-background shadow-sm text-foreground`:`text-muted-foreground hover:text-foreground`),children:K(`engine.diagnostics.severity.${e}`,t)},e))}),(0,Y.jsxs)(P,{variant:`ghost`,size:`sm`,onClick:c,children:[(0,Y.jsx)(Be,{className:`h-3.5 w-3.5 mr-1`}),K(`engine.diagnostics.refresh`,t)]})]}),(0,Y.jsx)(`p`,{className:`text-sm text-muted-foreground mt-2 max-w-3xl`,children:K(`engine.diagnostics.description`,t)})]}),(0,Y.jsxs)(`div`,{className:`flex-1 overflow-auto p-6 space-y-6`,children:[a&&(0,Y.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:K(`engine.diagnostics.loading`,t)}),!a&&o&&(0,Y.jsx)(`div`,{className:`text-sm text-destructive border border-destructive/30 rounded p-3 bg-destructive/[0.06]`,children:G(`engine.diagnostics.loadFailed`,t,{error:o})}),!a&&!o&&d.length===0&&(0,Y.jsxs)(R,{children:[(0,Y.jsx)(V,{children:K(`engine.diagnostics.cleanTitle`,t)}),(0,Y.jsx)(L,{children:G(`engine.diagnostics.cleanHint`,t,{items:s.scannedItems,types:s.scannedTypes})})]}),d.map(([e,i])=>(0,Y.jsxs)(`section`,{className:`space-y-2`,children:[(0,Y.jsxs)(`h2`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground flex items-center gap-2`,children:[(0,Y.jsx)(n,{to:`../${encodeURIComponent(e)}`,className:`hover:text-foreground hover:underline`,children:u[e]??e}),(0,Y.jsx)(`span`,{className:`font-mono normal-case tracking-normal text-[10px] opacity-70`,children:e}),(0,Y.jsx)(k,{variant:`outline`,className:`text-[10px] border-destructive/40 text-destructive bg-destructive/[0.06]`,children:i.length})]}),(0,Y.jsx)(`div`,{className:`border rounded-lg overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,Y.jsx)(`thead`,{className:`bg-muted/40 text-xs uppercase tracking-wider text-muted-foreground`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium w-[28%]`,children:K(`engine.diagnostics.col.name`,t)}),(0,Y.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:K(`engine.diagnostics.col.issues`,t)})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y`,children:i.map(i=>{let a=i.diagnostics.errors??[],o=i.diagnostics.warnings??[],s=(r===`warning`&&a.length===0?o:a).slice(0,3),c=Math.max(0,(a.length||o.length)-s.length);return(0,Y.jsxs)(`tr`,{className:`hover:bg-accent/50 align-top`,children:[(0,Y.jsxs)(`td`,{className:`px-3 py-2 align-top`,children:[(0,Y.jsx)(n,{to:`../${encodeURIComponent(e)}/${encodeURIComponent(i.name)}`,className:`text-primary hover:underline font-mono`,children:i.name}),a.length>0&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px] border-destructive/40 text-destructive`,children:G(`engine.diagnostics.errorN`,t,{count:a.length})}),o.length>0&&(0,Y.jsx)(k,{variant:`outline`,className:`ml-2 text-[10px] border-amber-500/40 text-amber-700 dark:text-amber-300`,children:G(`engine.diagnostics.warnN`,t,{count:o.length})})]}),(0,Y.jsx)(`td`,{className:`px-3 py-2 align-top`,children:(0,Y.jsxs)(`ul`,{className:`space-y-0.5 font-mono text-[11px]`,children:[s.map((e,t)=>(0,Y.jsxs)(`li`,{className:`truncate`,children:[(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:e.path||`(root)`}),(0,Y.jsx)(`span`,{className:`text-muted-foreground`,children:`: `}),e.message]},t)),c>0&&(0,Y.jsx)(`li`,{className:`text-muted-foreground`,children:G(`engine.diagnostics.more`,t,{count:c})})]})})]},i.name)})})]})})]},e))]})]})}var kr=new Set([`field`,`package`]),Ar={data:E,ui:Ae,automation:Oe,ai:T,system:Me,platform:Me,identity:m,security:m},jr={data:{from:`from-sky-500`,to:`to-blue-600`,ring:`hover:ring-sky-400/40`,text:`text-sky-600 dark:text-sky-400`},ui:{from:`from-violet-500`,to:`to-fuchsia-600`,ring:`hover:ring-violet-400/40`,text:`text-violet-600 dark:text-violet-400`},automation:{from:`from-amber-500`,to:`to-orange-600`,ring:`hover:ring-amber-400/40`,text:`text-amber-600 dark:text-amber-400`},ai:{from:`from-pink-500`,to:`to-rose-600`,ring:`hover:ring-pink-400/40`,text:`text-pink-600 dark:text-pink-400`},identity:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},security:{from:`from-emerald-500`,to:`to-teal-600`,ring:`hover:ring-emerald-400/40`,text:`text-emerald-600 dark:text-emerald-400`},system:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},platform:{from:`from-slate-500`,to:`to-slate-700`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`},other:{from:`from-slate-400`,to:`to-slate-600`,ring:`hover:ring-slate-400/40`,text:`text-slate-600 dark:text-slate-300`}},Mr=[`data`,`ui`,`automation`,`ai`,`identity`,`security`,`system`,`platform`,`other`],Nr=[`object`,`view`,`page`,`dashboard`,`report`,`flow`,`action`,`agent`],Pr={object:D,dashboard:te,page:ze,report:j,record:S,metadata:Ae};function Fr(){let e=new Date().getHours();return e<12?`engine.home.greetingMorning`:e<18?`engine.home.greetingAfternoon`:`engine.home.greetingEvening`}function Ir(e,t){let n=new Date(e).getTime();if(Number.isNaN(n))return``;let r=Math.floor((Date.now()-n)/6e4),i=new Intl.RelativeTimeFormat(t,{numeric:`auto`});if(r<1)return i.format(0,`minute`);if(r<60)return i.format(-r,`minute`);let a=Math.floor(r/60);if(a<24)return i.format(-a,`hour`);let o=Math.floor(a/24);return o<7?i.format(-o,`day`):i.format(-Math.floor(o/7),`week`)}function Lr(){let e=et(),{loading:t,entries:r}=nt(e),{recentItems:i}=ot(),o=bt(),[s,c]=a(),[l,u]=J.useState(null);J.useEffect(()=>{let t=!1;return(async()=>{try{let n=await e.list(`package`);if(t)return;u(Lt(n))}catch{t||u([])}})(),()=>{t=!0}},[e]);let d=s.get(`package`),f=J.useMemo(()=>l?d&&l.some(e=>e.id===d)?d:l[0]?.id??null:null,[l,d]);J.useEffect(()=>{if(!l||l.length===0||d&&l.some(e=>e.id===d))return;let e=new URLSearchParams(s);e.set(`package`,l[0].id),c(e,{replace:!0})},[l,d]);let p=f?`?package=${encodeURIComponent(f)}`:``,m=`metadata${p}`,h=`component/developer/packages${p}`,{summary:g,countsByType:_,packagesByType:v,loading:b}=Qe(e,`warning`,f??void 0),x=J.useMemo(()=>r.filter(e=>kr.has(e.type)||!f?!1:(v[e.type]??[]).includes(f)),[f,r,v]),C=J.useMemo(()=>x.filter(e=>e.allowOrgOverride||e.allowRuntimeCreate),[x]),w=J.useMemo(()=>{let e={};for(let t of x)(e[t.domain??`other`]??=[]).push(t);for(let t of Object.values(e))t.sort((e,t)=>(_[t.type]??0)-(_[e.type]??0));return Object.entries(e).sort(([e],[t])=>(Mr.indexOf(e)===-1?99:Mr.indexOf(e))-(Mr.indexOf(t)===-1?99:Mr.indexOf(t)))},[x,_]),E=J.useMemo(()=>{let e=new Map(C.map(e=>[e.type,e]));return Nr.map(t=>e.get(t)).filter(Boolean)},[C]),D=g.total,O=!t&&!b&&D===0;return t||l===null||f&&b?(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center p-8 text-sm text-muted-foreground`,children:K(`engine.home.loading`,o)}):(0,Y.jsxs)(`div`,{className:`h-full overflow-auto bg-gradient-to-b from-muted/40 to-background`,children:[(0,Y.jsxs)(`div`,{className:`mx-auto w-full max-w-6xl px-6 py-6 space-y-6`,children:[(0,Y.jsxs)(`section`,{className:`relative overflow-hidden rounded-3xl bg-gradient-to-br from-indigo-600 via-violet-600 to-fuchsia-600 px-7 py-8 text-white shadow-xl shadow-violet-500/20`,children:[(0,Y.jsx)(`div`,{className:`pointer-events-none absolute -right-16 -top-20 h-64 w-64 rounded-full bg-white/15 blur-3xl`}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute -bottom-24 left-1/3 h-56 w-56 rounded-full bg-fuchsia-300/20 blur-3xl`}),(0,Y.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-[0.12]`,style:{backgroundImage:`radial-gradient(currentColor 1px, transparent 1px)`,backgroundSize:`18px 18px`}}),(0,Y.jsxs)(`div`,{className:`relative flex flex-col gap-6 lg:flex-row lg:items-end lg:justify-between`,children:[(0,Y.jsxs)(`div`,{className:`max-w-xl`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-white/80`,children:[(0,Y.jsx)(T,{className:`h-4 w-4`}),K(Fr(),o)]}),(0,Y.jsx)(`h1`,{className:`mt-2 text-3xl font-bold tracking-tight sm:text-4xl`,children:`Studio`}),(0,Y.jsx)(`p`,{className:`mt-2 text-sm leading-relaxed text-white/85 sm:text-base`,children:K(`engine.home.subtitle`,o)}),(0,Y.jsxs)(`div`,{className:`mt-5 flex flex-wrap items-center gap-2.5`,children:[(0,Y.jsx)(P,{asChild:!0,size:`sm`,variant:`ghost`,className:`bg-white/10 text-white shadow-sm ring-1 ring-white/25 hover:bg-white/20 hover:text-white`,children:(0,Y.jsxs)(n,{to:m,children:[(0,Y.jsx)(Ae,{className:`mr-1.5 h-4 w-4`}),K(`engine.home.browseAll`,o)]})}),(0,Y.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 rounded-full bg-white/15 px-3 py-1.5 text-xs font-medium text-white/90 backdrop-blur-sm`,children:[(0,Y.jsx)(I,{className:`h-3.5 w-3.5`}),K(`engine.directory.quickFind`,o),` ⌘⇧M`]})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,Y.jsx)(Rr,{value:x.length,label:K(`engine.home.statTypes`,o)}),(0,Y.jsx)(Rr,{value:C.length,label:K(`engine.home.statWritable`,o)}),(0,Y.jsx)(Rr,{value:l.length,label:K(`engine.home.statPackages`,o)})]})]})]}),(0,Y.jsxs)(`section`,{className:`grid grid-cols-2 gap-4 lg:grid-cols-4`,children:[(0,Y.jsx)(zr,{icon:Ae,from:`from-indigo-500`,to:`to-violet-600`,value:x.length,label:K(`engine.home.statTypes`,o),to_link:m}),(0,Y.jsx)(zr,{icon:De,from:`from-sky-500`,to:`to-blue-600`,value:C.length,label:K(`engine.home.statWritable`,o),to_link:m}),(0,Y.jsx)(zr,{icon:ee,from:`from-emerald-500`,to:`to-teal-600`,value:l.length,label:K(`engine.home.statPackages`,o),to_link:h}),(0,Y.jsxs)(n,{to:O?m:`metadata/_diagnostics${p}`,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border p-4 transition-all hover:-translate-y-0.5 hover:shadow-lg `+(O?`border-emerald-200 bg-emerald-50/60 dark:border-emerald-900/50 dark:bg-emerald-950/30`:`border-amber-300 bg-amber-50/70 dark:border-amber-900/50 dark:bg-amber-950/30`),children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br text-white shadow-sm `+(O?`from-emerald-500 to-teal-600`:`from-amber-500 to-orange-600`),children:O?(0,Y.jsx)(De,{className:`h-5 w-5`}):(0,Y.jsx)(H,{className:`h-5 w-5`})}),(0,Y.jsx)(fe,{className:`h-4 w-4 text-muted-foreground transition-transform group-hover:translate-x-0.5`})]}),(0,Y.jsxs)(`div`,{className:`mt-3`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:O?K(`engine.home.allHealthy`,o):D}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:K(O?`engine.home.allHealthyHint`:`engine.home.statIssues`,o)})]})]})]}),E.length>0&&(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(Br,{icon:y,title:K(`engine.home.quickActions`,o),hint:K(`engine.home.quickActionsHint`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 flex flex-wrap gap-2.5`,children:E.map(e=>(0,Y.jsx)(P,{asChild:!0,variant:`outline`,size:`sm`,className:`group rounded-full border-transparent bg-muted hover:bg-primary/10 hover:text-primary`,children:(0,Y.jsxs)(n,{to:`metadata/${encodeURIComponent(e.type)}/new${p}`,children:[(0,Y.jsx)(y,{className:`mr-1 h-3.5 w-3.5 text-primary transition-transform group-hover:rotate-90`}),G(`engine.home.newItem`,o,{label:q(e.type,o,e.label)})]})},e.type))})]}),(0,Y.jsxs)(`div`,{className:`grid gap-6 lg:grid-cols-3`,children:[(0,Y.jsxs)(`section`,{className:`lg:col-span-2`,children:[(0,Y.jsx)(Br,{icon:Ae,title:K(`engine.home.explore`,o),hint:K(`engine.home.exploreHint`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 grid gap-4 sm:grid-cols-2`,children:w.map(([e,t])=>(0,Y.jsx)(Vr,{domain:e,group:t,countsByType:_,locale:o,packageSuffix:p},e))})]}),(0,Y.jsxs)(`section`,{children:[(0,Y.jsx)(Br,{icon:ue,title:K(`engine.home.recent`,o)}),(0,Y.jsx)(`div`,{className:`mt-3 rounded-2xl border bg-card p-2`,children:i.length===0?(0,Y.jsx)(`div`,{className:`px-3 py-8 text-center text-xs text-muted-foreground`,children:K(`engine.home.recentEmpty`,o)}):(0,Y.jsx)(`ul`,{className:`space-y-0.5`,children:i.slice(0,8).map(e=>{let t=Pr[e.type]??S;return(0,Y.jsx)(`li`,{children:(0,Y.jsxs)(n,{to:e.href,className:`group flex items-center gap-3 rounded-xl px-3 py-2 transition-colors hover:bg-accent`,children:[(0,Y.jsx)(`span`,{className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-muted text-muted-foreground transition-colors group-hover:bg-primary/10 group-hover:text-primary`,children:(0,Y.jsx)(t,{className:`h-4 w-4`})}),(0,Y.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Y.jsx)(`span`,{className:`block truncate text-sm font-medium`,children:e.label}),(0,Y.jsx)(`span`,{className:`block text-[11px] text-muted-foreground`,children:Ir(e.visitedAt,o)})]}),(0,Y.jsx)(fe,{className:`h-3.5 w-3.5 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100`})]})},e.id)})})})]})]})]}),(0,Y.jsx)(Ft,{})]})}function Rr({value:e,label:t}){return(0,Y.jsxs)(`div`,{className:`rounded-2xl bg-white/15 px-4 py-3 text-center backdrop-blur-sm ring-1 ring-white/20`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums leading-none`,children:e}),(0,Y.jsx)(`div`,{className:`mt-1 text-[11px] font-medium text-white/80`,children:t})]})}function zr({icon:e,from:t,to:r,value:i,label:a,to_link:o}){return(0,Y.jsxs)(n,{to:o,className:`group relative flex flex-col justify-between overflow-hidden rounded-2xl border bg-card p-4 transition-all hover:-translate-y-0.5 hover:border-primary/40 hover:shadow-lg`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl bg-gradient-to-br ${t} ${r} text-white shadow-sm`,children:(0,Y.jsx)(e,{className:`h-5 w-5`})}),(0,Y.jsx)(fe,{className:`h-4 w-4 text-muted-foreground opacity-0 transition-all group-hover:translate-x-0.5 group-hover:opacity-100`})]}),(0,Y.jsxs)(`div`,{className:`mt-3`,children:[(0,Y.jsx)(`div`,{className:`text-2xl font-bold tabular-nums`,children:i}),(0,Y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:a})]})]})}function Br({icon:e,title:t,hint:n}){return(0,Y.jsxs)(`div`,{className:`flex items-baseline gap-2.5`,children:[(0,Y.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold`,children:[(0,Y.jsx)(e,{className:`h-4 w-4 text-muted-foreground`}),t]}),n&&(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n})]})}function Vr({domain:e,group:t,countsByType:r,locale:i,packageSuffix:a}){let o=Ar[e]??S,s=jr[e]??jr.other,c=t.slice(0,6),l=t.length-c.length;return(0,Y.jsxs)(`div`,{className:`group rounded-2xl border bg-card p-4 ring-1 ring-transparent transition-all hover:-translate-y-0.5 hover:shadow-lg ${s.ring}`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,Y.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-xl bg-gradient-to-br ${s.from} ${s.to} text-white shadow-sm`,children:(0,Y.jsx)(o,{className:`h-[18px] w-[18px]`})}),(0,Y.jsxs)(`div`,{className:`min-w-0`,children:[(0,Y.jsx)(`div`,{className:`truncate text-sm font-semibold`,children:St(e,i)}),(0,Y.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[t.length,` `,K(`engine.home.typesLower`,i)]})]})]}),(0,Y.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-1.5`,children:[c.map(e=>(0,Y.jsxs)(n,{to:`metadata/${encodeURIComponent(e.type)}${a}`,className:`inline-flex items-center gap-1.5 rounded-lg border bg-background px-2 py-1 text-xs transition-colors hover:border-primary/50 hover:bg-accent`,children:[(0,Y.jsx)(`span`,{className:`truncate max-w-[10rem]`,children:q(e.type,i,e.label)}),(0,Y.jsx)(`span`,{className:`tabular-nums text-[10px] text-muted-foreground`,children:r[e.type]??0})]},e.type)),l>0&&(0,Y.jsxs)(n,{to:`metadata${a}`,className:`inline-flex items-center gap-1 rounded-lg px-2 py-1 text-xs font-medium ${s.text} hover:underline`,children:[`+`,l]})]})]})}export{Or as MetadataDiagnosticsPage,Vt as MetadataDirectoryPage,Sr as MetadataResourceEditPage,Et as MetadataResourceHistoryPage,Jt as MetadataResourceListPage,Er as MetadataResourceRouter,Lr as StudioHomePage};