@objectstack/console 17.2.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 (308) hide show
  1. package/CHANGELOG.md +698 -0
  2. package/README.md +26 -10
  3. package/dist/.objectstack-injection.json +2 -2
  4. package/dist/.objectui-sha +1 -1
  5. package/dist/assets/ActionResultDialog-Bsr2GS71.js +9 -0
  6. package/dist/assets/{AiPendingActionsPage-CyG11hX9.js → AiPendingActionsPage-DB-UVcdM.js} +1 -1
  7. package/dist/assets/ApiConsolePage-Bzqo2owc.js +1 -0
  8. package/dist/assets/{AppDocsIndex-BXkNskk1.js → AppDocsIndex-KhVqdZ-P.js} +1 -1
  9. package/dist/assets/AppManagementPage-CsZ0LMQn.js +1 -0
  10. package/dist/assets/ApprovalsInboxPage-D_LOnhJ7.js +1 -0
  11. package/dist/assets/{AuditLogPage-BZZ6tzHu.js → AuditLogPage-B9eqwuzl.js} +1 -1
  12. package/dist/assets/ComponentNavView-DeokLfkW.js +1 -0
  13. package/dist/assets/CreateViewDialog-BMdQ4ZYy.js +1 -0
  14. package/dist/assets/DashboardView-DHZboRi8.js +1 -0
  15. package/dist/assets/{DeveloperHubPage-KEpKc45V.js → DeveloperHubPage-C_VYirN0.js} +1 -1
  16. package/dist/assets/DocPage-_9x-3Dbi.js +1 -0
  17. package/dist/assets/{DocShell-DMJHUgE5.js → DocShell-D4dSPfBz.js} +1 -1
  18. package/dist/assets/{DocsIndex-Bb5OtPb3.js → DocsIndex-CJVRa_hE.js} +1 -1
  19. package/dist/assets/{DocsLayout-CoIVTMH_.js → DocsLayout-C-tYgUZv.js} +1 -1
  20. package/dist/assets/{DocsSlug-BARWHmXg.js → DocsSlug-DmyGpfEy.js} +1 -1
  21. package/dist/assets/ExpressionProvider-B6z09kM6.js +1 -0
  22. package/dist/assets/FlowRunsPage-OjGJi-JU.js +1 -0
  23. package/dist/assets/{IntegrationsPage-DTXA-Nne.js → IntegrationsPage-CrDMDe62.js} +2 -2
  24. package/dist/assets/InterfaceListPage-P3y6hqTX.js +1 -0
  25. package/dist/assets/MarketplaceInstalledPage-CQek7WnV.js +1 -0
  26. package/dist/assets/MarketplacePackagePage-DL2ivKSc.js +4 -0
  27. package/dist/assets/MarketplacePage-B-6EokyB.js +1 -0
  28. package/dist/assets/MetadataInspector-IQGUoLyp.js +1 -0
  29. package/dist/assets/ObjectDataPage-Bmc3RQhM.js +1 -0
  30. package/dist/assets/PageView-DzUZqB_h.js +1 -0
  31. package/dist/assets/ProfilePage-NklCqPxc.js +1 -0
  32. package/dist/assets/PublicFormsPage-CItIvcLQ.js +1 -0
  33. package/dist/assets/RecordDetailView-XWxuegfV.js +3 -0
  34. package/dist/assets/RecordFormPage-B-yrhs7J.js +1 -0
  35. package/dist/assets/ReportDefaultInspector-D5Kro5_t.js +1 -0
  36. package/dist/assets/ReportView-COpZ8PQT.js +2 -0
  37. package/dist/assets/RuntimeDraftBar-CSVtuByp.js +1 -0
  38. package/dist/assets/SchemaForm-DIsxxOZF.js +3 -0
  39. package/dist/assets/SearchResultsPage-B2r6kgni.js +1 -0
  40. package/dist/assets/SettingsHub-DQz2HDtZ.js +1 -0
  41. package/dist/assets/SettingsView-BfOEalDW.js +1 -0
  42. package/dist/assets/SkeletonDetail-DMOa5zcl.js +1 -0
  43. package/dist/assets/SystemHubPage-DM2VRSIP.js +1 -0
  44. package/dist/assets/{abnfDiagram-N423BO3Z-DfpQlDUF.js → abnfDiagram-VCTEODGH-DaPlU6Hz.js} +1 -1
  45. package/dist/assets/app-shell-eager-leaves-wjbiJgVZ.js +1 -0
  46. package/dist/assets/{utils-CJ4UwXMF.js → appRoute-DEVGXLLH.js} +1 -1
  47. package/dist/assets/architecture-7GRP2DOG-kzM7RUjO.js +1 -0
  48. package/dist/assets/architectureDiagram-5GKGNRK7-Cq014PwG.js +36 -0
  49. package/dist/assets/blockDiagram-OSKFZWR5-vtlcoeZc.js +129 -0
  50. package/dist/assets/c4Diagram-7LVT6UL2-BrdwRG2M.js +38 -0
  51. package/dist/assets/channel-D2IgUFnY.js +1 -0
  52. package/dist/assets/{chunk-U6XO7XAA-D-dXvZaW.js → chunk-2ZTRR5NV-DXmA5XXf.js} +1 -1
  53. package/dist/assets/chunk-3NF5O7KM-CjWAf_Jo.js +168 -0
  54. package/dist/assets/{chunk-YOTPTUD7-CDtXQZ13.js → chunk-3Z5EZCMW-D3OlaP15.js} +1 -1
  55. package/dist/assets/chunk-4HAMMTFA-BtV_msXT.js +62 -0
  56. package/dist/assets/{chunk-BIQX33UG-DMScvo0C.js → chunk-5V3GS4D5-sE73jHoi.js} +1 -1
  57. package/dist/assets/{chunk-MOZMSUNE-DG70Besp.js → chunk-6AZGARVD-dsTIs5yl.js} +1 -1
  58. package/dist/assets/{chunk-5JV3BV7I-BrKM6vC-.js → chunk-6EIED4P4-BB4xaK3K.js} +1 -1
  59. package/dist/assets/{chunk-R7FJI6CG-DsJHM8am.js → chunk-6K3QC6MW-DaG1LefG.js} +1 -1
  60. package/dist/assets/{chunk-OSBZ3O6U-Dch_xyhf.js → chunk-6TQVIW2G-DL8WEcT0.js} +1 -1
  61. package/dist/assets/{chunk-JG7HCLWE-lCTbN-f1.js → chunk-747NJXEK-Bdie6H1T.js} +1 -1
  62. package/dist/assets/chunk-75Z2AOVW-DdRL9yNr.js +2 -0
  63. package/dist/assets/chunk-CLGD4ZFX-De9kMAXh.js +1 -0
  64. package/dist/assets/chunk-DU6HZSFF-DqjylQO-.js +127 -0
  65. package/dist/assets/chunk-F27PBJKO-tEB_K-iD.js +1 -0
  66. package/dist/assets/{chunk-KEIR6QF5-ydf36Hye.js → chunk-FOHPRMQF-C65HoZVt.js} +2 -2
  67. package/dist/assets/chunk-GMAD6QVW-BMzd_HHM.js +72 -0
  68. package/dist/assets/chunk-GVQU2GXP-B1p1nHC0.js +1 -0
  69. package/dist/assets/chunk-H2I77ZZE-ioXC4dHO.js +1 -0
  70. package/dist/assets/{chunk-GF5L2VYU-Dgjjn2FR.js → chunk-HLEWEB6X-zZ3ZMup3.js} +1 -1
  71. package/dist/assets/{chunk-QBLGF6JB-CzQYydMJ.js → chunk-I5DQTOEV-Cz6Y6T9y.js} +1 -1
  72. package/dist/assets/{chunk-5FCAYU7R-BuOxxvKk.js → chunk-ICYGCRZG-DdtFYQ2l.js} +1 -1
  73. package/dist/assets/{chunk-CQNSW5MT-CCth14ZS.js → chunk-IH6LHLGP-DybuHD8B.js} +1 -1
  74. package/dist/assets/{chunk-CYSBUYHQ-DIigEFGo.js → chunk-KI3K4JFJ-CB_CI00L.js} +1 -1
  75. package/dist/assets/chunk-L3NEJ4N5-DePXufTQ.js +1 -0
  76. package/dist/assets/chunk-LNGE3PJU-DWpGwHrW.js +34 -0
  77. package/dist/assets/chunk-LQGUR6SS-BUWUp_dz.js +1 -0
  78. package/dist/assets/chunk-OSK3NFVY-L7nTUJKT.js +10 -0
  79. package/dist/assets/{chunk-5TONJI2A-Bdh0MHqz.js → chunk-OUJLGHUK-TbeyE6CA.js} +1 -1
  80. package/dist/assets/chunk-P2QGCYS3-BG-i3rdI.js +1 -0
  81. package/dist/assets/{chunk-KBJHAD2P-DI4-lUt-.js → chunk-POPQ4Y6H-DLEB8EqK.js} +1 -1
  82. package/dist/assets/{chunk-4I5QYGJK-DlrWrdEa.js → chunk-PWAF6VOD-Be_prJjm.js} +1 -1
  83. package/dist/assets/{chunk-6Q2QTUOP-C2vvuHlO.js → chunk-SVP7TREG-BdJpxJji.js} +1 -1
  84. package/dist/assets/{chunk-EMLP6XTP-B4CrDa5p.js → chunk-UY3FDG6J-CDAtW6MI.js} +1 -1
  85. package/dist/assets/{chunk-5HE753X5-T_shrJhj.js → chunk-XHIXRSVI-CqmtoxrP.js} +1 -1
  86. package/dist/assets/chunk-XXDRQBXY-CEXsCcSu.js +1 -0
  87. package/dist/assets/{chunk-5RXB4S5H-JwFhdddt.js → chunk-ZLD2IHE6-BLIPZykR.js} +2 -2
  88. package/dist/assets/classDiagram-CYGNFDIV-BielDdJQ.js +1 -0
  89. package/dist/assets/classDiagram-v2-TLXNO2FR-BielDdJQ.js +1 -0
  90. package/dist/assets/componentRegistry-ByxoJqMW.js +1 -0
  91. package/dist/assets/cose-bilkent-JH36ORCC-CnLWv9XE.js +1 -0
  92. package/dist/assets/createDerive-DtfnFzGm.js +2 -0
  93. package/dist/assets/cynefin-OW5HDTMX-Dtvf1C60.js +1 -0
  94. package/dist/assets/{cynefinDiagram-MW4NZA55-B8MvpqXe.js → cynefinDiagram-5FMLGOSQ-Do1SZz4I.js} +1 -1
  95. package/dist/assets/cytoscape.esm-CGd-uY3x.js +321 -0
  96. package/dist/assets/dagre-OS7QT2EB-CqmZ9Y9O.js +4 -0
  97. package/dist/assets/dagre-PrKaheQc.js +1 -0
  98. package/dist/assets/data-adapter-1YRpH3h_.js +5 -0
  99. package/dist/assets/default-inspector-registry-CmSpNwTr.js +1 -0
  100. package/dist/assets/{diagram-7IWD3JNH-Xj62y5BF.js → diagram-S7CK7UJ4-CMpcDWop.js} +4 -4
  101. package/dist/assets/{diagram-UB23O5K3-bseKIzhv.js → diagram-UQ7AKVKN-DLK_4yej.js} +1 -1
  102. package/dist/assets/{diagram-B4RE2ZJO-mI-iOCGl.js → diagram-VSXAHHWV-MAILxw0S.js} +1 -1
  103. package/dist/assets/diagram-VX7I27RA-DGiXGVX7.js +24 -0
  104. package/dist/assets/{diagram-LBJQPF4R-BMTSoZch.js → diagram-Z3DM3KII-BywboeGI.js} +1 -1
  105. package/dist/assets/dist-B88JFSFg.js +5 -0
  106. package/dist/assets/{ebnfDiagram-BXEA7PRR-Bgo10FP1.js → ebnfDiagram-PWID7BFC-DdMLbnuP.js} +1 -1
  107. package/dist/assets/erDiagram-2YWLMYGG-O6raGx2P.js +99 -0
  108. package/dist/assets/eventmodeling-NTZA5JFV-CSwP2CpK.js +1 -0
  109. package/dist/assets/expressionUser-CASszt1z.js +1 -0
  110. package/dist/assets/flowDiagram-T62WH6J4-CkAxOnqU.js +1 -0
  111. package/dist/assets/framework-DFE_Mws9.js +36 -0
  112. package/dist/assets/{ganttDiagram-PKOTCBZU-CrmKcYGt.js → ganttDiagram-EL5Y4UJY-Dijdjc50.js} +2 -2
  113. package/dist/assets/{getIcon-1ZXs1v-a.js → getIcon-B4Pp7Q-0.js} +1 -1
  114. package/dist/assets/gitGraph-4MIJSDKK--Dc33TN5.js +1 -0
  115. package/dist/assets/gitGraphDiagram-WWUBYQGX-Cfl4OIGG.js +106 -0
  116. package/dist/assets/{highlighted-body-OFNGDK62-CnGKNo0r.js → highlighted-body-OFNGDK62-BlqGRgbU.js} +1 -1
  117. package/dist/assets/i18n-DGcOKnTh.js +9 -0
  118. package/dist/assets/i18n-locales-BBA090ve.js +31 -0
  119. package/dist/assets/index-C5Fu9Kda.css +2 -0
  120. package/dist/assets/index-ClPLLRzK.js +20 -0
  121. package/dist/assets/info-A6RAGUB7-DBa3mCQO.js +1 -0
  122. package/dist/assets/{infoDiagram-6WML65LV-BT0Q6MIs.js → infoDiagram-FKFFQAWI-oOVNWlVA.js} +1 -1
  123. package/dist/assets/infrastructure-B4zG1jNa.js +3 -0
  124. package/dist/assets/{ishikawaDiagram-WSZJBQD7-kvPjMvBP.js → ishikawaDiagram-5VMMS53U-BUfTfup1.js} +1 -1
  125. package/dist/assets/{journeyDiagram-NVQOT4AX-DhXy7wxt.js → journeyDiagram-EYS64GPL-4fyU8Ui9.js} +1 -1
  126. package/dist/assets/{kanban-definition-27J2QSJJ-CFDavpZY.js → kanban-definition-UXKFOSKX-qwquHo2y.js} +2 -2
  127. package/dist/assets/mermaid-GHXKKRXX-_UhQGe8N.js +1 -0
  128. package/dist/assets/{mermaid-parser.core-Dd2B8Ckv.js → mermaid-parser.core-DUt1FNlO.js} +1 -1
  129. package/dist/assets/mermaid.core-RfBGJVq5.js +10 -0
  130. package/dist/assets/metadata-admin-Bo-vWW2Z.js +9 -0
  131. package/dist/assets/{mindmap-definition-FAOFIHXS-ITGoV4nW.js → mindmap-definition-THT77NOG-cOVHgGB_.js} +1 -1
  132. package/dist/assets/nav-selection-Dzm_mA3C.js +1 -0
  133. package/dist/assets/packet-AYTQ26CC-CPP93DZD.js +1 -0
  134. package/dist/assets/{pegDiagram-VL7TDLO6-BoRu9yvl.js → pegDiagram-XKGWAZYB-DQikOuPL.js} +1 -1
  135. package/dist/assets/pie-WAS4IAKB-B-zzBvuc.js +1 -0
  136. package/dist/assets/{pieDiagram-7S7Q4E2Y-DVsM9krU.js → pieDiagram-E7YTZNPT-Cu9wPXiv.js} +3 -3
  137. package/dist/assets/plugin-calendar-DqlnPeWE.js +1 -0
  138. package/dist/assets/plugin-charts-hJ5C1pY-.js +7 -0
  139. package/dist/assets/plugin-chatbot-BeSLDg4N.js +122 -0
  140. package/dist/assets/plugin-dashboard-d1o52lHr.js +6 -0
  141. package/dist/assets/plugin-form-D8x_rH5w.js +1 -0
  142. package/dist/assets/plugin-gantt-B2GTMGPH.js +63 -0
  143. package/dist/assets/plugin-grid-DGXy_yQF.js +9 -0
  144. package/dist/assets/plugin-kanban-CVf6Nj3e.js +1 -0
  145. package/dist/assets/plugin-map-hkbw1bGS.js +1 -0
  146. package/dist/assets/{plugin-markdown-DNllWgPM.js → plugin-markdown-Bdb2UThR.js} +4 -4
  147. package/dist/assets/plugin-report-CelulaB7.js +59 -0
  148. package/dist/assets/plugin-timeline-DTcJ-hts.js +1 -0
  149. package/dist/assets/plugin-tree-Bk5vG9la.js +1 -0
  150. package/dist/assets/plugin-view-CKs41t7o.js +1 -0
  151. package/dist/assets/plugins-views-DZmsFOak.js +4 -0
  152. package/dist/assets/{quadrantDiagram-CIZ2JOQS-C4VzXHnp.js → quadrantDiagram-AXDQQJYC-DqTU6p89.js} +3 -3
  153. package/dist/assets/radar-RG4KPBEZ-DWmbpYEk.js +1 -0
  154. package/dist/assets/railroad-74A4TZTK-xJ7dMu2F.js +1 -0
  155. package/dist/assets/railroad-abnf-HS5TGJTU-Cw4KG_nE.js +1 -0
  156. package/dist/assets/railroad-ebnf-LZEXJU2U-C0cgrfTl.js +1 -0
  157. package/dist/assets/railroad-peg-WCYAUIDC-DOEGG9oQ.js +1 -0
  158. package/dist/assets/{railroadDiagram-AXF67PYL-DqZ3yKWv.js → railroadDiagram-O6MQD6OU-CHGgIBKb.js} +1 -1
  159. package/dist/assets/{requirementDiagram-LRYGKXZP-BeH0P3vD.js → requirementDiagram-IS5BZ75X-B20mHS5h.js} +2 -2
  160. package/dist/assets/{runtime-metadata-persistence-DTOJpVmd.js → runtime-metadata-persistence-DzS2YaNb.js} +1 -1
  161. package/dist/assets/{sankeyDiagram-W5VNT64P-Bu_tPh-A.js → sankeyDiagram-P5KCCOFB-oqGY91Cw.js} +3 -3
  162. package/dist/assets/{sequenceDiagram-SI44F4Z6-BWEuLn1a.js → sequenceDiagram-WJ2MYXX4-CVMm7Aid.js} +1 -1
  163. package/dist/assets/{src-CY2xhbXR.js → src-D7tZqf12.js} +1 -1
  164. package/dist/assets/src-DCXZnd2l.js +1 -0
  165. package/dist/assets/{src-DhAd4aY4.js → src-DEMdKbQy.js} +1 -1
  166. package/dist/assets/src-hcMLuWxG.js +17 -0
  167. package/dist/assets/stateDiagram-XQSTLZYL-3oM7IdVe.js +1 -0
  168. package/dist/assets/stateDiagram-v2-IH3M54BS-BznjPAgb.js +1 -0
  169. package/dist/assets/studioEntry-BUFsLXCL.js +1 -0
  170. package/dist/assets/submitRedirect-7ExeC4kw.js +1 -0
  171. package/dist/assets/swimlanes-V6O3JKXN-Djgbrkmh.js +1 -0
  172. package/dist/assets/swimlanesDiagram-JKAHXJPX-DHJJ3qZq.js +8 -0
  173. package/dist/assets/{timeline-definition-Z64GVDOM-BcUiJfLU.js → timeline-definition-24CTP7MA-k2lbfDvL.js} +1 -1
  174. package/dist/assets/treeView-Q6P3EWNA-BcWCBGcU.js +1 -0
  175. package/dist/assets/treemap-WGGIJYW6-DMTEJzXV.js +1 -0
  176. package/dist/assets/ui-components-CMHDBJEm.js +37 -0
  177. package/dist/assets/ui-layout-Jk_qY9Ni.js +1 -0
  178. package/dist/assets/use-book-data-CM73PGvc.js +1 -0
  179. package/dist/assets/useActionModal-D_iilsul.js +1 -0
  180. package/dist/assets/usePackageL10n-BfPqgsRL.js +1 -0
  181. package/dist/assets/useSettingsLabel-CW2sBbmj.js +1 -0
  182. package/dist/assets/utils-MjUhYVsx.js +1 -0
  183. package/dist/assets/vendor-charts-BBlPrtHS.js +67 -0
  184. package/dist/assets/vendor-i18n-CzBLXLJU.js +1 -0
  185. package/dist/assets/{vendor-markdown-C_Ip9E_I.js → vendor-markdown-BW_XFZ_b.js} +25 -25
  186. package/dist/assets/vendor-objectstack-BU0HrnMy.js +270 -0
  187. package/dist/assets/{vendor-zod-r9lyeyrU.js → vendor-zod-Bwe8XZZa.js} +3 -3
  188. package/dist/assets/{vennDiagram-T6HMQDX7-BKJsL5fS.js → vennDiagram-4TSXK5OY-zweM554s.js} +1 -1
  189. package/dist/assets/wardley-WFR3VGLG-BRyRizpT.js +1 -0
  190. package/dist/assets/{wardleyDiagram-T6FBY63Y-CZ0aMbYX.js → wardleyDiagram-VM6X3IG4-Dg9r6Ajz.js} +1 -1
  191. package/dist/assets/{xychartDiagram-ELKLHX3M-BpK2RmQ_.js → xychartDiagram-S5SC5T6Z-CraplxeN.js} +3 -3
  192. package/dist/eager-closure.json +184 -143
  193. package/dist/index.html +222 -6
  194. package/package.json +2 -2
  195. package/dist/assets/AdapterProvider-gULVLpjV.js +0 -3
  196. package/dist/assets/ApiConsolePage-DYuOp_W4.js +0 -1
  197. package/dist/assets/AppManagementPage-BvSxDdA_.js +0 -1
  198. package/dist/assets/ApprovalsInboxPage-oep3a-Ek.js +0 -1
  199. package/dist/assets/ComponentNavView-Cq4wkNUa.js +0 -1
  200. package/dist/assets/DashboardView-C23ZCS2S.js +0 -1
  201. package/dist/assets/DocPage-Y4rWCZ3E.js +0 -1
  202. package/dist/assets/ExpressionProvider-vGLngw8h.js +0 -1
  203. package/dist/assets/FlowRunsPage-BeGa9_ge.js +0 -1
  204. package/dist/assets/InterfaceListPage-BMvedZyV.js +0 -1
  205. package/dist/assets/ManagedByBadge-mKmG0hP7.js +0 -1
  206. package/dist/assets/MarketplaceAccessDenied-BBMyNu2w.js +0 -1
  207. package/dist/assets/MarketplaceInstalledPage-B4qrvb7w.js +0 -1
  208. package/dist/assets/MarketplacePackagePage-BuVfVeBj.js +0 -4
  209. package/dist/assets/MarketplacePage-Cmltk5nG.js +0 -1
  210. package/dist/assets/MetadataInspector-kVAu8vlh.js +0 -1
  211. package/dist/assets/MetadataProvider-DyFZSNqq.js +0 -1
  212. package/dist/assets/ObjectDataPage-BKHEYwXA.js +0 -1
  213. package/dist/assets/PageView-CTqS-VD9.js +0 -1
  214. package/dist/assets/ProfilePage-CBUxXn5a.js +0 -1
  215. package/dist/assets/PublicFormsPage-B8Dk8fky.js +0 -1
  216. package/dist/assets/RecordDetailView-BBNqsNy9.js +0 -11
  217. package/dist/assets/RecordFormPage-CeUmmc_n.js +0 -1
  218. package/dist/assets/ReportDefaultInspector-CRjDi2Er.js +0 -3
  219. package/dist/assets/ReportView-Cwi_Po4H.js +0 -2
  220. package/dist/assets/SearchResultsPage-Cg0oq2by.js +0 -1
  221. package/dist/assets/SettingsHub-B5_S9YgI.js +0 -1
  222. package/dist/assets/SettingsView-Csi1awf-.js +0 -1
  223. package/dist/assets/SystemHubPage-CnDri9oU.js +0 -1
  224. package/dist/assets/architecture-TIHT7OUA-B8Ln-u1a.js +0 -1
  225. package/dist/assets/architectureDiagram-T3A2C74G-Ej_4n3NG.js +0 -36
  226. package/dist/assets/blockDiagram-VBNYF7ZC-l_P_W7_Y.js +0 -132
  227. package/dist/assets/c4Diagram-5PPSVZJV-CE82HAlO.js +0 -10
  228. package/dist/assets/channel-DowAYf9b.js +0 -1
  229. package/dist/assets/chunk-2GRJ4B5K-D1if-ThW.js +0 -1
  230. package/dist/assets/chunk-3NCLNEKW-Z5ckM4mG.js +0 -1
  231. package/dist/assets/chunk-7BUUIJ7U-Bb538aSH.js +0 -1
  232. package/dist/assets/chunk-7Z6QIM7H-m6s_oalL.js +0 -10
  233. package/dist/assets/chunk-I66GZJ75-BsY3mBMx.js +0 -127
  234. package/dist/assets/chunk-J7OUQ5F2-Cl4FNR_k.js +0 -1
  235. package/dist/assets/chunk-JQJVKLGR-BApWxqMA.js +0 -156
  236. package/dist/assets/chunk-NSK5VX7P-BBTxIP6Z.js +0 -2
  237. package/dist/assets/chunk-QR6OTTB3-DJcD7xr-.js +0 -62
  238. package/dist/assets/chunk-RYQCIY6F-CnMsR_qh.js +0 -1
  239. package/dist/assets/chunk-UBXNYLIW-B7z1tp3V.js +0 -1
  240. package/dist/assets/chunk-W5SLKNZC-BnMc5i0B.js +0 -1
  241. package/dist/assets/chunk-WRU74C26-MrzCPX2E.js +0 -70
  242. package/dist/assets/chunk-XXDRQBXY-NKBlW2Dm.js +0 -1
  243. package/dist/assets/chunk-ZIRB5QZD-O39ZBUk3.js +0 -32
  244. package/dist/assets/classDiagram-JCYQIIEL-C4ADaKBz.js +0 -1
  245. package/dist/assets/classDiagram-v2-OCEON4UE-C4ADaKBz.js +0 -1
  246. package/dist/assets/cose-bilkent-JH36ORCC-XP-DnSP5.js +0 -1
  247. package/dist/assets/createDerive-B3AGnDaY.js +0 -1
  248. package/dist/assets/cynefin-VYW2F7L2-exAq6djZ.js +0 -1
  249. package/dist/assets/cytoscape.esm-B-NFISlW.js +0 -321
  250. package/dist/assets/dagre-Buvkdvvj.js +0 -1
  251. package/dist/assets/dagre-VZM6K2ZE-B5E8-xuM.js +0 -4
  252. package/dist/assets/diagram-Q27KOJAE-B98Knrnh.js +0 -24
  253. package/dist/assets/dist-Ck19TqqJ.js +0 -5
  254. package/dist/assets/erDiagram-JOGREHBK-BU4b8mUv.js +0 -85
  255. package/dist/assets/eventmodeling-45OFAUF4-DVTVIsGT.js +0 -1
  256. package/dist/assets/flowDiagram-UKHOOZJN-BDHHPApJ.js +0 -1
  257. package/dist/assets/framework-BwfIhdyz.js +0 -55
  258. package/dist/assets/gitGraph-TEB2WS4Q-DizXBl0d.js +0 -1
  259. package/dist/assets/gitGraphDiagram-DS77QQ5N-COu0mOui.js +0 -106
  260. package/dist/assets/i18n-rra-09wp.js +0 -9
  261. package/dist/assets/index-BLepsDd_.js +0 -19
  262. package/dist/assets/index-D26gl3rg.css +0 -2
  263. package/dist/assets/info-DKCQHKI2-CfAGND28.js +0 -1
  264. package/dist/assets/infrastructure-BCTDJsqi.js +0 -3
  265. package/dist/assets/map-BaFkSB1l.js +0 -1
  266. package/dist/assets/mermaid-GHXKKRXX-CR9PcY0X.js +0 -1
  267. package/dist/assets/mermaid.core-BwiBFu_S.js +0 -10
  268. package/dist/assets/metadata-admin-BE9_-F_f.js +0 -25
  269. package/dist/assets/packet-7NZHBO7P-DeymwuCa.js +0 -1
  270. package/dist/assets/pie-RZYD4A2V-C2S5u8nr.js +0 -1
  271. package/dist/assets/plugin-calendar-BfY9ZunQ.js +0 -1
  272. package/dist/assets/plugin-charts-CmWL7Og-.js +0 -7
  273. package/dist/assets/plugin-chatbot-mxoQfkdx.js +0 -120
  274. package/dist/assets/plugin-dashboard-CzbAW1Rz.js +0 -6
  275. package/dist/assets/plugin-form-ItAwTFz-.js +0 -1
  276. package/dist/assets/plugin-gantt-DF5W5xkN.js +0 -64
  277. package/dist/assets/plugin-grid-B42Photo.js +0 -9
  278. package/dist/assets/plugin-kanban-Dh3HIJIm.js +0 -1
  279. package/dist/assets/plugin-map-C1wSLqlB.js +0 -1
  280. package/dist/assets/plugin-report-yfOfZPQg.js +0 -59
  281. package/dist/assets/plugin-timeline-BpuaaqBd.js +0 -1
  282. package/dist/assets/plugin-tree-BrXE50se.js +0 -1
  283. package/dist/assets/plugin-view-Jc0rkk7A.js +0 -1
  284. package/dist/assets/plugins-views-cOiN-mPq.js +0 -4
  285. package/dist/assets/radar-I7S5WNFK-DzcfTC8k.js +0 -1
  286. package/dist/assets/railroad-3IZDKUUU-DT2-gzup.js +0 -1
  287. package/dist/assets/railroad-abnf-AHOZXSZD-BvCkhVdg.js +0 -1
  288. package/dist/assets/railroad-ebnf-EBAXGLYW-rvjxEE4k.js +0 -1
  289. package/dist/assets/railroad-peg-LSFZ7HO6-BIzZt1tD.js +0 -1
  290. package/dist/assets/skeletons-BwA1TSR2.js +0 -1
  291. package/dist/assets/src-BLbFBP_B.js +0 -1
  292. package/dist/assets/stateDiagram-OKZ733FA-Cp7aDYsZ.js +0 -1
  293. package/dist/assets/stateDiagram-v2-UEYNNEHI-DaTg8C5m.js +0 -1
  294. package/dist/assets/swimlanes-SLNWSIFB-wrx1JN6o.js +0 -1
  295. package/dist/assets/swimlanesDiagram-ULZ7WXOC-Bqz9GVuM.js +0 -8
  296. package/dist/assets/treeView-QDETBFTQ-DKZwqlNb.js +0 -1
  297. package/dist/assets/treemap-6X3UGDF4-Bqsldamv.js +0 -1
  298. package/dist/assets/ui-components-Dwq5utCl.js +0 -42
  299. package/dist/assets/ui-layout-DPFlQaQp.js +0 -1
  300. package/dist/assets/use-book-data-CZc8MJsb.js +0 -1
  301. package/dist/assets/useActionModal-DYiSBx1G.js +0 -1
  302. package/dist/assets/usePackageL10n-D91-102Q.js +0 -1
  303. package/dist/assets/useSettingsLabel-CeZ36S4g.js +0 -1
  304. package/dist/assets/vendor-charts-BEGSmcjR.js +0 -67
  305. package/dist/assets/vendor-i18n-Cpia2wlg.js +0 -1
  306. package/dist/assets/vendor-objectstack-B1R3ym-9.js +0 -264
  307. package/dist/assets/wardley-OPB4EBWU-C_U_bbc2.js +0 -1
  308. /package/dist/assets/{sizeCapture-X5ZJPWSS-B0uUizjq.js → sizeCapture-INFHLROL-B0uUizjq.js} +0 -0
@@ -0,0 +1,3 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ui-components-BL3SEdAz.css"])))=>i.map(i=>d[i]);
2
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{_ as t,b as n,r}from"./vendor-react-CsWFRkED.js";import{Mn as i}from"./vendor-objectstack-BU0HrnMy.js";import{Tt as a,n as o}from"./framework-DFE_Mws9.js";import{y as s}from"./i18n-locales-BBA090ve.js";import{Bn as c,Bt as l,Cr as u,Cs as d,Da as f,Dn as p,En as m,Er as h,Fn as g,Ht as _,In as v,It as y,Ko as b,Nn as x,On as S,Pn as C,Pt as w,Rt as T,Si as E,So as D,Sr as O,Ss as k,St as A,Tn as j,Tr as M,Tt as N,Vt as P,Xr as F,Yi as ee,Yt as I,aa as te,cc as L,fc as R,hc as z,ic as ne,il as re,jt as ie,ni as B,pc as V,ra as ae,sc as oe,vr as se,wn as H,wr as ce,wt as le,yi as ue,yr as de,zs as fe,zt as pe}from"./ui-components-CMHDBJEm.js";import{r as me}from"./vendor-ui-utils-BFw4cGI6.js";import{o as he}from"./createDerive-DtfnFzGm.js";import{g as U,h as ge,i as W,m as _e,p as ve,r as G,s as ye}from"./i18n-DGcOKnTh.js";var K=e(n(),1),q=r(),be=o(`metadataAdminFieldsReadDoor`);function xe(e){let t=be.filter(t=>t in e);if(t.length===0)return e;let n={...e};for(let e of t)delete n[e];return n}function Se(e){return Array.isArray(e)?{shape:`array`,entries:e.map((e,t)=>{let{name:n,...r}=e??{};return{name:typeof n==`string`&&n?n:`field_${t+1}`,def:xe(r)}})}:e&&typeof e==`object`?{shape:`record`,entries:Object.entries(e).map(([e,t])=>({name:e,def:xe({...t??{}})}))}:{shape:`record`,entries:[]}}function Ce(e){if(e.shape===`array`)return e.entries.map(e=>({name:e.name,...e.def}));let t={};for(let n of e.entries)t[n.name]=n.def;return t}function we(e,t){return e.entries.findIndex(e=>e.name===t)}function Te(e,t,n){let r={type:t,label:n??Ee(e)};return(t===`select`||t===`multiselect`||t===`radio`||t===`checkboxes`)&&(r.options=[]),{name:e,def:r}}function Ee(e){return e?e.split(`_`).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `):``}function De(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``).replace(/_{2,}/g,`_`);return t?/^[a-z_]/.test(t)?t:`f_${t}`:`field`}function Oe(e){let t=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+/g,``).replace(/_{2,}/g,`_`);return t?/^[a-z_]/.test(t)?t:`f_${t}`:``}function ke(e){return Array.isArray(e)?e.filter(e=>!!e&&typeof e==`object`).map(e=>({...e,key:typeof e.key==`string`?e.key:``,label:typeof e.label==`string`?e.label:``})).filter(e=>e.key):[]}function Ae(e,t){let n=/[a-z0-9]/i.test(e)?De(e):`group`;if(!t.includes(n))return n;let r=2;for(;t.includes(`${n}_${r}`);)r+=1;return`${n}_${r}`}function je(e,t){let n=t.trim()||`New section`,r=Ae(n,e.map(e=>e.key));return[...e,{key:r,label:n}]}function Me(e,t,n){let r=n.trim();return r?e.map(e=>e.key===t?{...e,label:r}:e):e}function Ne(e,t,n){return e.map(e=>{if(e.key!==t)return e;let r={...e};for(let[e,t]of Object.entries(n))t===void 0?delete r[e]:r[e]=t;return r})}function Pe(e,t){return e.filter(e=>e.key!==t)}function Fe(e,t,n){let r=e.findIndex(e=>e.key===t);if(r<0)return e;let i=r+n;return i<0||i>=e.length?e:Le(e,r,i)}function Ie(e,t){return{shape:e.shape,entries:e.entries.map(e=>e.def.group===t?{name:e.name,def:{...e.def,group:void 0}}:e)}}function Le(e,t,n){let r=e.slice(),[i]=r.splice(t,1);return r.splice(n,0,i),r}function Re(e,t,n){let r=Array.isArray(t)?t.filter(e=>typeof e?.key==`string`):[],i=new Map;for(let e of r)i.set(e.key,{key:e.key,label:String(e.label??e.key),entries:[]});let a=new Set(r.map(e=>e.key));for(let t of e.entries){let e=typeof t.def.group==`string`?t.def.group:null;e&&a.has(e)?i.get(e).entries.push(t):(i.has(null)||i.set(null,{key:null,label:`Ungrouped`,entries:[]}),i.get(null).entries.push(t))}let o=!!n?.includeEmptyDeclared;return Array.from(i.values()).filter(e=>e.entries.length>0||o&&e.key!==null)}function ze(e,t){return e===t||JSON.stringify(e??null)===JSON.stringify(t??null)}function Be(e,t){let n=new Set([...Object.keys(e),...Object.keys(t)]),r=[];for(let i of n)ze(e[i],t[i])||r.push(i);return r.sort()}function Ve(e,t){let n=Se(e),r=Se(t),i=new Map(n.entries.map(e=>[e.name,e])),a=new Set(r.entries.map(e=>e.name)),o={},s=0,c=0;for(let e of r.entries){let t=i.get(e.name);if(!t){o[e.name]={name:e.name,status:`added`,changedKeys:[]},s+=1;continue}let n=Be(t.def,e.def);n.length?(o[e.name]={name:e.name,status:`changed`,changedKeys:n},c+=1):o[e.name]={name:e.name,status:`unchanged`,changedKeys:[]}}let l=n.entries.filter(e=>!a.has(e.name));return{byName:o,removed:l,counts:{added:s,changed:c,removed:l.length}}}var He=new Set([...le,`is_empty`,`is_not_empty`,`is_null`,`is_not_null`]);function Ue(e,t){return!N(String(e??``),t)}function We(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e;return Array.isArray(t.conditions)||t.logic===`and`||t.logic===`or`}function Ge(e){if(e==null)return{ok:!0,rules:[]};let t=We(e)&&Array.isArray(e.conditions)?e.conditions:[],n=[];for(let e of t){if(We(e))return{ok:!1,reason:`nested_group`};if(typeof e!=`object`||!e)continue;let t=e;if(typeof t.field!=`string`||t.field===``)continue;let r=i(t.operator);if(!He.has(String(t.operator))&&!He.has(String(r))&&Ue(t.operator,t.value))continue;let a={field:t.field,operator:r};t.value!==void 0&&(a.value=t.value),n.push(a)}return(We(e)?e.logic:void 0)===`or`&&n.length>1?{ok:!1,reason:`or_logic`}:{ok:!0,rules:n}}var Ke={or_logic:`console.objectView.filterOrNotSavable`,nested_group:`console.objectView.filterNestedNotSavable`},qe=[`current_user`,`user`,`ctx`,`os`];function J(e,t){let n={data:e??{}};if(t)for(let e of qe)Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e]);return n.data=e??{},n}function Je(e,t){return Xe(e.visibleWhen,t)}function Ye(e,t){return e.filter(e=>Je(e,t))}function Xe(e,t){if(e==null)return!0;let n=typeof e==`string`?e:e.source;if(!n)return!0;try{return dt(n.trim(),t,n)}catch(e){return e instanceof Ze&&rt(e.path,n,t),!0}}var Ze=class extends Error{path;constructor(e){super(`unresolved predicate path: ${e}`),this.path=e,this.name=`UnresolvedPathError`}},Qe=new Set,$e=new Set,et=new Set,tt=new Set,nt=()=>!1;function rt(e,t,n){if(!nt())return;let r=`${e}::${t}`;if(Qe.has(r))return;Qe.add(r);let i=e.split(`.`)[0],a=Object.keys(n).sort().map(e=>`\`${e}\``).join(`, `);console.warn(`[metadata-admin] visibility predicate \`${t}\` references \`${e}\`, but \`${i}\` is not a name in this form's evaluation scope — the names here are ${a} (\`data\` is the current draft; the identity roots are bound only under a host \`ExpressionProvider\`). The predicate was treated as TRUE (fail-open) so the field stays visible instead of disappearing without a trace; check the spelling — draft values are addressed as \`data.<field>\` (e.g. \`data.type in [...]\`) and the signed-in user as \`current_user.<field>\`. A predicate served by an older backend is the usual cause (objectstack#6254 re-spelled the bare \`objectForm\` predicates; objectstack#6936).`)}var it=/^[A-Za-z_$][A-Za-z0-9_$]*(?:\.[A-Za-z_$][A-Za-z0-9_$]*)*$/;function at(e,t){if(!nt())return;let n=`${e}::${t}`;$e.has(n)||($e.add(n),console.warn(`[metadata-admin] visibility predicate \`${t}\` compares against \`${e}\`, which looks like a path but is being used as the literal string "${e}" — this evaluator resolves paths only on the LEFT of \`==\` / \`!=\`; the right-hand side is always a literal (supported subset: \`path == 'literal'\`). So \`data.a == data.b\` is FALSE even when both sides hold the same value, and \`data.a != data.b\` is TRUE — the verdict does not depend on the right-hand path at all. If you meant the text, quote it (\`== 'text'\`). If you meant to compare two paths, that is outside this evaluator's subset: it is an interim stand-in for \`@objectstack/formula\` until CEL lands (ROADMAP M9), and predicate expressions are validated at publish time (objectstack#7010). objectui#4049.`))}function ot(e){let t=e.slice(1,-1);if(!t.trim())return null;for(let e of ft(t,`,`)){let t=e.trim();if(t)try{let e=t.replace(/'([^']*)'/g,(e,t)=>JSON.stringify(t));JSON.parse(e)}catch{return t}}return null}function st(e,t){if(!nt())return;let n=`${e}::${t}`;if(et.has(n))return;et.add(n);let r=ot(e);console.warn(`[metadata-admin] visibility predicate \`${t}\` has an \`in\` set \`${e}\``+(r==null?`, which this evaluator could not parse — `:` containing \`${r}\`, which is not a literal this evaluator can parse — `)+"the WHOLE set was treated as EMPTY, so the predicate is FALSE for every row (not just the element that failed — one bad element discards the good literals next to it too). This evaluator only supports literal elements inside `in [...]` (supported subset: `path in ['a','b']`); it does not resolve paths there — paths resolve only on the LEFT of an operator (objectui#4049). If you meant a literal, quote it. If you meant to test membership against another field, that is outside this evaluator's subset: it is an interim stand-in for `@objectstack/formula` until CEL lands (ROADMAP M9), and predicate expressions are validated at publish time (objectstack#7010). objectui#4266.")}var ct=` in `;function lt(e){return ft(e,ct).length>1}function ut(e,t){if(!nt())return;let n=`${e}::${t}`;tt.has(n)||(tt.add(n),console.warn(`[metadata-admin] visibility predicate \`${t}\` spells a membership test \`${e}\` whose right-hand side is not a bracketed literal set. This evaluator matches \`in\` ONLY against a bracketed set of literals (supported subset: \`path in ['a','b']\`), so this text was never treated as a membership test at all — it fell through every operator branch to a BARE TRUTHY check of the whole string, and the verdict has nothing to do with the membership that was written. With a quoted left side — ADR-0068's own headline example \`'admin' in current_user.positions\` — the whole text comes back verbatim as a non-empty string, so the predicate reads TRUE for EVERY user and a gate meant for admins is open to everyone; with a path-shaped left side it reads FALSE for every row instead. There is no working spelling of this form on this surface: a path on the RIGHT of \`in\` CANNOT be written here today. Paths resolve only on the LEFT of an operator (objectui#4049) and the right of \`in\` must be a literal set spelled out in the predicate itself, so testing membership against a value the draft or the signed-in user holds is outside this evaluator's subset and cannot be expressed — not with different punctuation, not with a different spelling, not at all. This evaluator is an interim stand-in for \`@objectstack/formula\` until CEL lands (ROADMAP M9), and predicate expressions are validated at publish time (objectstack#7010). objectui#6617.`))}function dt(e,t,n){let r=ft(e,`||`);if(r.length>1)return r.some(e=>dt(e.trim(),t,n));let i=ft(e,`&&`);if(i.length>1)return i.every(e=>dt(e.trim(),t,n));if(e.startsWith(`!`))return!dt(e.slice(1).trim(),t,n);let a=e.match(/^(.+?)\s+in\s+(\[.*\])$/);if(a){let e=pt(a[1].trim(),t,n),r=mt(a[2],n);return Array.isArray(r)&&r.includes(e)}let o=e.match(/^(.+?)\s*(==|!=)\s*(.+)$/);if(o){let e=pt(o[1].trim(),t,n),r=mt(o[3].trim(),n),i=e=>e==null,a=i(e)&&i(r)?!0:e===r;return o[2]===`==`?a:!a}return lt(e)&&ut(e,n),!!pt(e,t,n)}function ft(e,t){let n=[],r=0,i=null,a=``;for(let o=0;o<e.length;o++){let s=e[o];if(i){a+=s,s===i&&e[o-1]!==`\\`&&(i=null);continue}if(s===`'`||s===`"`){i=s,a+=s;continue}if(s===`(`||s===`[`?r++:(s===`)`||s===`]`)&&r--,r===0&&e.slice(o,o+t.length)===t&&e[o+t.length]!==`=`){n.push(a),a=``,o+=t.length-1;continue}a+=s}return a&&n.push(a),n}function pt(e,t,n){if(/^['"]/.test(e)||/^-?\d/.test(e)||e===`true`||e===`false`||e===`null`)return mt(e,n);let r=e.split(`.`);if(!Object.prototype.hasOwnProperty.call(t,r[0]))throw new Ze(e);let i=t;for(let e of r){if(i==null)return;i=i[e]}return i}function mt(e,t){let n=e.trim();if(n===`true`)return!0;if(n===`false`)return!1;if(n===`null`)return null;if(/^-?\d+(\.\d+)?$/.test(n))return Number(n);if(n.startsWith(`'`)&&n.endsWith(`'`)||n.startsWith(`"`)&&n.endsWith(`"`))return n.slice(1,-1);if(n.startsWith(`[`)&&n.endsWith(`]`))try{let e=n.replace(/'([^']*)'/g,(e,t)=>JSON.stringify(t));return JSON.parse(e)}catch{return st(n,t),[]}return it.test(n)&&at(n,t),n}var ht=[{value:`default`,label:`Default`,css:`#9ca3af`},{value:`blue`,label:`Blue`,css:`#3b82f6`},{value:`teal`,label:`Teal`,css:`#14b8a6`},{value:`orange`,label:`Orange`,css:`#f97316`},{value:`purple`,label:`Purple`,css:`#a855f7`},{value:`success`,label:`Success`,css:`#22c55e`},{value:`warning`,label:`Warning`,css:`#f59e0b`},{value:`danger`,label:`Danger`,css:`#ef4444`},{value:`green`,label:`Green`,css:`#22c55e`},{value:`red`,label:`Red`,css:`#ef4444`},{value:`amber`,label:`Amber`,css:`#f59e0b`}],gt=Object.fromEntries(ht.map(e=>[e.value,e.css]));function _t(e){return e?/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(e)?e:gt[e]??`#9ca3af`:`#9ca3af`}function vt({value:e,onChange:t,disabled:n,options:r,ariaLabelledBy:i,ariaLabel:a}){let o=r?r.map(e=>({value:e.value,label:e.label??e.value,css:_t(e.value)})):ht.slice(0,8),s=e??`default`;return(0,q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,role:`radiogroup`,"aria-labelledby":i,"aria-label":a,children:o.map(e=>{let r=s===e.value;return(0,q.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r,"aria-label":e.label,title:e.label,disabled:n,onClick:()=>t(e.value),className:re(`flex h-7 w-7 items-center justify-center rounded-full border transition-all`,r?`border-transparent ring-2 ring-foreground/60 ring-offset-1 ring-offset-background`:`border-border hover:scale-110`,n&&`cursor-not-allowed opacity-50`),children:(0,q.jsx)(`span`,{className:`h-4 w-4 rounded-full`,style:{backgroundColor:e.css}})},e.value)})})}function yt(e,t){let n=he(),[r,i]=K.useState({fields:[],loading:!t&&!!e,error:null});return K.useEffect(()=>{if(t){i({fields:t,loading:!1,error:null});return}if(!e){i({fields:[],loading:!1,error:null});return}let r=!1;return i(e=>({...e,loading:!0,error:null})),n.get(`object`,e).then(e=>{if(r)return;if(!e){i({fields:[],loading:!1,error:`Object not found`});return}let t=Se(e.fields).entries.map(e=>({name:e.name,label:typeof e.def.label==`string`&&e.def.label?e.def.label:e.name,type:typeof e.def.type==`string`?e.def.type:`text`,hidden:e.def.hidden===!0}));i({fields:t,loading:!1,error:null})}).catch(e=>{r||i({fields:[],loading:!1,error:e?.message??String(e)})}),()=>{r=!0}},[n,e,t]),r}var bt=null;function xt(){return bt||=t(()=>import(`./vendor-objectstack-BU0HrnMy.js`).then(e=>e.q).then(e=>e),[],import.meta.url).catch(()=>null),bt}var St=[`record`,``],Ct=[`current_user`,`user`];async function wt(e,t={}){if(!e||!e.trim())return[];try{let n=await xt();if(!n?.validateExpression)return[];let r=n.validateExpression(t.role??`predicate`,e,{objectName:t.objectName,fields:t.fields,scope:t.scope??`flattened`}),i=[];for(let e of r?.errors??[])e?.message&&i.push({severity:`error`,message:e.message});for(let e of r?.warnings??[])e?.message&&i.push({severity:`warning`,message:e.message});if(i.every(e=>e.severity!==`error`)&&t.clause===`using`&&n.isPushdownableCel)try{let t=n.isPushdownableCel(e,{fieldRoots:St,variableRoots:Ct});t&&t.ok===!1&&t.reason!==`parse-error`&&i.push({severity:`warning`,message:`This read filter isn't a simple field comparison (${t.detail}), so the server may be unable to push it down to the query — depending on the evaluation path it can be dropped and WIDEN access. Prefer a pushdown-able predicate (field vs. value or scope variable).`})}catch{}return i}catch{return[]}}var Tt=[`number`,`text`,`boolean`,`date`,`unknown`];async function Et(e,t={}){if(!e||!e.trim())return null;try{let n=await xt();if(!n?.inferExpressionType)return null;let r=n.inferExpressionType(e,{objectName:t.objectName,fields:t.fields,scope:t.scope??`record`});return Tt.includes(r)?r:`unknown`}catch{return null}}async function Dt(e={}){let t={fields:e.fields??[],roots:e.roots??[],functions:[]};try{let n=await xt();if(!n?.introspectScope)return t;let r=n.introspectScope(e.role??`predicate`,{objectName:e.objectName,fields:e.fields,scope:e.scope??`flattened`});return{fields:r?.fields??e.fields??[],roots:e.roots??r?.roots??[],functions:r?.functions??[]}}catch{return t}}var Ot=/[A-Za-z0-9_$]/,kt=/[A-Za-z_$]/;function At(e,t){let n=t;for(;n>0&&Ot.test(e[n-1]);)n--;if(n===t)return null;let r=e.slice(n,t);return!kt.test(r[0])||n>0&&e[n-1]===`.`?null:{start:n,end:t,text:r}}function jt(e,t){let n=t;for(;n>0&&Ot.test(e[n-1]);)n--;let r=e.slice(n,t);if(r&&!kt.test(r[0])||n===0||e[n-1]!==`.`)return null;let i=n-1;for(;i>0&&Ot.test(e[i-1]);)i--;let a=e.slice(i,n-1);return!a||!kt.test(a[0])||i>0&&e[i-1]===`.`?null:{root:a,start:n,end:t,text:r}}function Mt(e){let t=new Set,n=[],r=(e,r)=>{!e||t.has(e)||(t.add(e),n.push({label:e,kind:r}))};return e.fields.forEach(e=>r(e,`field`)),e.roots.forEach(e=>r(e,`root`)),e.functions.forEach(e=>r(e,`function`)),n}function Nt(e,t,n=!1){let r=t.toLowerCase();if(!r&&!n)return[];let i=[];for(let t of e){let e=t.label.toLowerCase();if(e.startsWith(r)&&e!==r&&i.push(t),i.length>=8)break}return i}async function Pt(e,t){if(!e||!e.trim())return{status:`error`,kind:`parse`,message:`The predicate is empty.`};let n;try{n=await xt()}catch{return{status:`unavailable`}}if(!n?.ExpressionEngine?.evaluate)return{status:`unavailable`};try{let r=t.record??{},i=t.currentUser??{},a={record:r,extra:{...r,record:r,current_user:i,user:i}},o=n.ExpressionEngine.evaluate({dialect:`cel`,source:e},a);if(!o||o.ok!==!0){let e=o&&o.ok===!1?o.error:void 0;return{status:`error`,kind:e?.kind??`runtime`,message:e?.message??`Evaluation failed.`}}return o.value===!0?{status:`allow`}:o.value===!1?{status:`deny`}:{status:`value`,value:o.value}}catch(e){return{status:`error`,kind:`runtime`,message:e?.message??String(e)}}}var Ft=250,It={field:`field`,root:`scope`,function:`fn`},Lt=new Set([`record`,`previous`]),Rt=[];function zt({value:e,onChange:t,disabled:n,placeholder:r,label:i,objectName:a,fieldNames:o=Rt,clause:s,scope:l,roots:u,role:d,onLintChange:f,onInferredTypeChange:p,t:m,id:h}){let g=K.useId(),_=h??g,v=K.useRef(null),[y,b]=K.useState([]),[x,S]=K.useState(!1),[C,w]=K.useState(null),[E,D]=K.useState(null),[O,k]=K.useState(!1),[A,j]=K.useState([]),[M,N]=K.useState(0),P=K.useRef(null),F=K.useRef(null),I=o.join(`,`),te=u?u.join(`,`):``,L=K.useRef(f),R=K.useRef(p);K.useEffect(()=>{L.current=f,R.current=p}),K.useEffect(()=>{let t=!1,n=setTimeout(()=>{let n={objectName:a,fields:o,clause:s,scope:l,role:d};wt(e,n).then(e=>{t||(b(e),S(!0),L.current?.(e))}),d===`value`&&Et(e,n).then(e=>{t||(w(e),R.current?.(e))})},Ft);return()=>{t=!0,clearTimeout(n)}},[e,a,I,s,l,d]),K.useEffect(()=>{e.trim()||(b([]),S(!1),w(null),L.current?.([]),d===`value`&&R.current?.(null))},[e]),K.useEffect(()=>{let e=!1;return Dt({objectName:a,fields:o,scope:l,roots:u}).then(t=>{e||D(t)}),()=>{e=!0}},[a,I,l,te]);let z=K.useMemo(()=>E?Mt(l===`record`?{...E,fields:[]}:E):[],[E,l]),ie=K.useMemo(()=>E?E.fields.map(e=>({label:e,kind:`field`})):[],[E]);K.useEffect(()=>{if(F.current!=null&&v.current){let e=F.current;F.current=null,v.current.setSelectionRange(e,e)}},[e]);let B=K.useCallback(()=>{k(!1),j([]),P.current=null},[]),V=K.useCallback(()=>{let e=v.current;if(!e||n)return B();let t=e.value,r=e.selectionStart??t.length,i=null,a=[],o=At(t,r);if(o)i=o,a=Nt(z,o.text);else{let e=jt(t,r);e&&Lt.has(e.root)&&(i=e,a=Nt(ie,e.text,!0))}if(!i||!a.length)return B();P.current={start:i.start,end:i.end},j(a),N(0),k(!0)},[z,ie,n,B]),ae=K.useCallback(e=>{let n=P.current,r=v.current;if(!n||!r)return;let i=r.value,a=e.kind===`function`?`${e.label}(`:e.label,o=i.slice(0,n.start)+a+i.slice(n.end);F.current=n.start+a.length,B(),t(o)},[t,B]),se=K.useRef(V);K.useEffect(()=>{se.current=V},[V]),K.useEffect(()=>{v.current&&document.activeElement===v.current&&se.current()},[z,ie]);let H=e=>{!O||A.length===0||(e.key===`ArrowDown`?(e.preventDefault(),N(e=>(e+1)%A.length)):e.key===`ArrowUp`?(e.preventDefault(),N(e=>(e-1+A.length)%A.length)):e.key===`Enter`||e.key===`Tab`?(e.preventDefault(),ae(A[M])):e.key===`Escape`&&(e.preventDefault(),B()))},ce=y.filter(e=>e.severity===`error`),le=y.filter(e=>e.severity===`warning`),de=x&&!!e.trim()&&y.length===0,fe=d===`value`&&x&&!!e.trim()&&ce.length===0&&C!==null,pe=`${_}-ac`;return(0,q.jsxs)(`div`,{children:[(0,q.jsx)(c,{className:`text-[10px] uppercase text-muted-foreground`,htmlFor:_,children:i}),(0,q.jsxs)(`div`,{className:`relative`,children:[(0,q.jsx)(T,{ref:v,id:_,value:e,disabled:n,rows:2,placeholder:r,spellCheck:!1,autoComplete:`off`,role:`combobox`,"aria-expanded":O,"aria-autocomplete":`list`,"aria-controls":O?pe:void 0,"aria-invalid":ce.length>0||void 0,onChange:e=>{t(e.target.value),V()},onKeyDown:H,onClick:V,onBlur:()=>{window.setTimeout(()=>B(),120)},className:re(`font-mono text-xs`,ce.length>0&&`border-destructive focus-visible:ring-destructive/40`)}),O&&A.length>0&&(0,q.jsx)(`ul`,{id:pe,role:`listbox`,"aria-label":m(`perm.cel.suggestions`),className:`absolute z-50 mt-1 max-h-48 w-72 overflow-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md`,children:A.map((e,t)=>(0,q.jsxs)(`li`,{role:`option`,"aria-selected":t===M,onMouseDown:t=>{t.preventDefault(),ae(e)},onMouseEnter:()=>N(t),className:re(`flex cursor-pointer items-center justify-between gap-2 rounded-sm px-2 py-1 text-xs`,t===M?`bg-accent text-accent-foreground`:`hover:bg-accent/60`),children:[(0,q.jsx)(`span`,{className:`font-mono`,children:e.label}),(0,q.jsx)(`span`,{className:`text-[10px] uppercase text-muted-foreground`,children:It[e.kind]})]},`${e.kind}:${e.label}`))})]}),(ce.length>0||le.length>0)&&(0,q.jsxs)(`ul`,{className:`mt-1 space-y-1`,"aria-live":`polite`,children:[ce.map((e,t)=>(0,q.jsxs)(`li`,{className:`flex items-start gap-1.5 text-[11px] text-destructive`,children:[(0,q.jsx)(oe,{className:`mt-[1px] h-3 w-3 shrink-0`}),(0,q.jsx)(`span`,{children:e.message})]},`e${t}`)),le.map((e,t)=>(0,q.jsxs)(`li`,{className:`flex items-start gap-1.5 text-[11px] text-amber-600 dark:text-amber-500`,children:[(0,q.jsx)(ue,{className:`mt-[1px] h-3 w-3 shrink-0`}),(0,q.jsx)(`span`,{children:e.message})]},`w${t}`))]}),de&&(0,q.jsxs)(`p`,{className:`mt-1 flex items-center gap-1.5 text-[11px] text-muted-foreground`,children:[(0,q.jsx)(ne,{className:`h-3 w-3 shrink-0 text-emerald-600 dark:text-emerald-500`}),m(`perm.cel.valid`)]}),fe&&(0,q.jsxs)(`p`,{className:`mt-1 flex items-start gap-1.5 text-[11px] text-muted-foreground`,"aria-live":`polite`,children:[(0,q.jsx)(ee,{className:`mt-[1px] h-3 w-3 shrink-0`}),(0,q.jsxs)(`span`,{children:[m(`perm.cel.type`),` `,(0,q.jsx)(`span`,{className:re(`font-medium`,C!==`unknown`&&`text-foreground`),children:m(`perm.cel.type.${C}`)}),C===`unknown`&&(0,q.jsxs)(q.Fragment,{children:[` — `,m(`perm.cel.type.unknownHint`)]})]})]})]})}var Bt=[{value:`==`,label:`equals`},{value:`!=`,label:`not equals`},{value:`>`,label:`greater than`},{value:`<`,label:`less than`},{value:`>=`,label:`≥`},{value:`<=`,label:`≤`},{value:`truthy`,label:`is set / true`},{value:`falsy`,label:`is empty / false`}],Vt=[{value:`record.id`,label:`record.id`},{value:`user.id`,label:`user.id`},{value:`user.email`,label:`user.email`},{value:`user.role`,label:`user.role`},{value:`user.isAdmin`,label:`user.isAdmin`},{value:`org.id`,label:`org.id`}],Ht=e=>e.replace(/\s+/g,` `).trim(),Ut=RegExp(`^(?:${[`record`,`previous`,`parent`,`user`,`current_user`,`org`].join(`|`)})(?:\\.[A-Za-z_][A-Za-z0-9_]*)+$`);function Wt(e,t=`'`){let n=e.trim();return n===`true`||n===`false`||n===`null`||n!==``&&!Number.isNaN(Number(n))||Ut.test(n)?n:`${t}${t===`'`?n.replace(/'/g,`\\'`):n.replace(/"/g,`\\"`)}${t}`}function Gt(e){let t=e.trim(),n=/^'(.*)'$/.exec(t);if(n)return{value:n[1].replace(/\\'/g,`'`),quote:`'`};let r=/^"(.*)"$/.exec(t);return r?{value:r[1].replace(/\\"/g,`"`),quote:`"`}:{value:t}}function Kt(e,t){return e.filter(e=>e.subject).map(e=>e.op===`truthy`?e.subject:e.op===`falsy`?`!${e.subject}`:`${e.subject} ${e.op} ${Wt(e.value,e.quote)}`).join(` ${t} `)}function qt(e){let t=Ht(e);if(!t)return{rows:[],join:`&&`};let n=t.includes(`&&`),r=t.includes(`||`);if(n&&r)return null;let i=r?`||`:`&&`,a=t.split(r?`||`:`&&`).map(e=>e.trim()),o=[];for(let e of a){let t=/^([a-zA-Z_][\w.]*)\s*(==|!=|>=|<=|>|<)\s*(.+)$/.exec(e);if(t){let e=Gt(t[3]);o.push({subject:t[1],op:t[2],value:e.value,quote:e.quote});continue}let n=/^!\s*([a-zA-Z_][\w.]*)$/.exec(e);if(n){o.push({subject:n[1],op:`falsy`,value:``});continue}let r=/^([a-zA-Z_][\w.]*)$/.exec(e);if(r){o.push({subject:r[1],op:`truthy`,value:``});continue}return null}return{rows:o,join:i}}function Jt(e){let t=qt(e||``);return t&&Ht(Kt(t.rows,t.join))===Ht(e||``)?{rows:t.rows,join:t.join,raw:!1}:{rows:[],join:`&&`,raw:!!e}}function Yt({label:e,value:t,onCommit:n,objectName:r,fields:i,disabled:a,onBlockingIssuesChange:o,subjects:s}){let{fields:l}=yt(r),u=i??l,d=s?.fieldPrefix??`record.`,h=s?.includePrevious??!1,g=s?.context??Vt,_=K.useMemo(()=>{let e=u.filter(e=>!e.hidden),t=e.map(e=>({value:`${d}${e.name}`,label:`${d}${e.name}`})),n=h?[{value:`previous`,label:`previous`},...e.map(e=>({value:`previous.${e.name}`,label:`previous.${e.name}`}))]:[],r=g.map(e=>({value:e.value,label:e.label??e.value}));return[...t,...n,...r]},[u,d,h,g]),y=U(),b=K.useCallback(e=>G(e,y),[y]),x=K.useMemo(()=>u.filter(e=>!e.hidden).map(e=>e.name),[u]),C=K.useMemo(()=>Jt(t),[]),[w,T]=K.useState(C.rows),[E,O]=K.useState(C.join),[k,A]=K.useState(C.raw),M=K.useRef(t||``);K.useEffect(()=>{let e=t||``;if(e===M.current)return;M.current=e;let n=Jt(e);T(n.rows),O(n.join),A(n.raw)},[t]);let N=(e,t)=>{let r=Kt(e,t);M.current=r,n(r)},P=(e,t=E)=>{T(e),O(t),N(e,t)},[ee,I]=K.useState(0),te=K.useCallback(e=>{let t=e.filter(e=>e.severity===`error`).length;I(e=>e===t?e:t)},[]),L=k?ee:0,R=K.useRef(o);K.useEffect(()=>{R.current=o}),K.useEffect(()=>{R.current?.(L)},[L]);let z=Kt(w,E);return k?(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e?(0,q.jsx)(c,{className:`text-xs text-muted-foreground`,children:e}):(0,q.jsx)(`span`,{}),(0,q.jsxs)(`button`,{type:`button`,disabled:a,onClick:()=>{let e=Jt(t);(!t||!e.raw)&&(T(e.rows),O(e.join),A(!1))},className:`inline-flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground disabled:opacity-50`,children:[(0,q.jsx)(D,{className:`h-3 w-3`}),` Builder`]})]}),(0,q.jsx)(zt,{label:b(`engine.condition.celLabel`),value:t,onChange:e=>{M.current=e,n(e)},onLintChange:te,disabled:a,placeholder:`record.status != 'done' && user.isAdmin`,objectName:r,fieldNames:x,t:b}),t&&!qt(t)&&(0,q.jsx)(`div`,{className:`text-[10px] text-muted-foreground/70`,children:b(`engine.condition.advancedHint`)})]}):(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[e?(0,q.jsx)(c,{className:`text-xs text-muted-foreground`,children:e}):(0,q.jsx)(`span`,{}),(0,q.jsxs)(`button`,{type:`button`,disabled:a,onClick:()=>A(!0),className:`inline-flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground disabled:opacity-50`,children:[(0,q.jsx)(fe,{className:`h-3 w-3`}),` Expression`]})]}),w.length===0?(0,q.jsx)(`p`,{className:`rounded-md border border-dashed bg-muted/30 px-3 py-2 text-center text-[11px] text-muted-foreground`,children:`Always — no condition.`}):(0,q.jsx)(`div`,{className:`space-y-1.5`,children:w.map((e,t)=>(0,q.jsxs)(`div`,{className:`space-y-1 rounded-md border border-border p-1.5`,children:[t>0&&(0,q.jsx)(`div`,{className:`flex justify-center`,children:(0,q.jsxs)(H,{value:E,onValueChange:e=>P(w,e),disabled:a,children:[(0,q.jsx)(p,{className:`h-6 w-16 text-[10px]`,children:(0,q.jsx)(S,{})}),(0,q.jsxs)(j,{children:[(0,q.jsx)(m,{value:`&&`,children:`AND`}),(0,q.jsx)(m,{value:`||`,children:`OR`})]})]})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,q.jsxs)(H,{value:e.subject,onValueChange:e=>P(w.map((n,r)=>r===t?{...n,subject:e}:n)),disabled:a,children:[(0,q.jsx)(p,{className:`h-7 text-xs`,children:(0,q.jsx)(S,{placeholder:`field / context`})}),(0,q.jsxs)(j,{children:[_.map(e=>(0,q.jsx)(m,{value:e.value,children:e.label},e.value)),e.subject&&!_.some(t=>t.value===e.subject)&&(0,q.jsx)(m,{value:e.subject,children:e.subject})]})]})}),(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`icon`,className:`h-7 w-7 shrink-0`,disabled:a,"aria-label":`Remove condition`,onClick:()=>P(w.filter((e,n)=>n!==t)),children:(0,q.jsx)(B,{className:`h-3.5 w-3.5`})})]}),(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(`div`,{className:`w-28 shrink-0`,children:(0,q.jsxs)(H,{value:e.op,onValueChange:e=>P(w.map((n,r)=>r===t?{...n,op:e}:n)),disabled:a,children:[(0,q.jsx)(p,{className:`h-7 text-xs`,children:(0,q.jsx)(S,{})}),(0,q.jsx)(j,{children:Bt.map(e=>(0,q.jsx)(m,{value:e.value,children:e.label},e.value))})]})}),e.op!==`truthy`&&e.op!==`falsy`&&(0,q.jsx)(v,{className:`h-7 flex-1 text-xs`,value:e.value,placeholder:`value`,disabled:a,onChange:e=>P(w.map((n,r)=>r===t?{...n,value:e.target.value}:n))})]})]},t))}),!a&&(0,q.jsxs)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>P([...w,{subject:``,op:`truthy`,value:``}]),children:[(0,q.jsx)(f,{className:`mr-1 h-3.5 w-3.5`}),` Add condition`]}),z&&(0,q.jsx)(`div`,{className:`rounded bg-muted/40 px-2 py-1 text-[10px] font-mono text-muted-foreground break-all`,children:z})]})}function Xt(e){return typeof e==`number`&&Number.isFinite(e)}function Zt(e){let t=e.position;if(Xt(t?.x)&&Xt(t?.y))return{x:t.x,y:t.y};let n=e.ui;return Xt(n?.x)&&Xt(n?.y)?{x:n.x,y:n.y}:null}function Qt(e){return Zt(e)!==null}function $t(e){return e.some(e=>e&&`ui`in e)?e.map(e=>{if(!e||!(`ui`in e))return e;let{ui:t,...n}=e,r=Zt(e);return r?{...n,position:r}:n}):e}function en(e){if(!e||typeof e!=`object`)return null;let t=e;return!Array.isArray(t.nodes)||t.nodes.length===0?null:{nodes:t.nodes,edges:Array.isArray(t.edges)?t.edges:[]}}function tn(e){let t=e.config??{};switch(e.type){case`loop`:{let e=en(t.body);return e?[{key:`body`,label:void 0,...e}]:[]}case`parallel`:{let e=[];return(Array.isArray(t.branches)?t.branches:[]).forEach((t,n)=>{let r=en(t);if(!r)return;let i=t.name;e.push({key:`branch-${n}`,label:typeof i==`string`&&i?i:`Branch ${n+1}`,...r})}),e}case`try_catch`:{let e=[],n=en(t.try);n&&e.push({key:`try`,label:`Try`,...n});let r=en(t.catch);return r&&e.push({key:`catch`,label:`Catch`,...r}),e}default:return[]}}function nn(e,t,n=()=>66){let r=new Map,i=new Map(e.map(e=>[e.id,n(e)]));if(e.length===0)return{positions:r,heights:i,size:{width:28,height:28}};let a=new Map(e.map(e=>[e.id,e])),o=new Map(e.map((e,t)=>[e.id,t])),s=new Map,c=new Map;for(let t of e)c.set(t.id,0);for(let e of t)!a.has(e.source)||!a.has(e.target)||e.source===e.target||un(e)||(s.has(e.source)||s.set(e.source,[]),s.get(e.source).push(e.target),c.set(e.target,(c.get(e.target)??0)+1));let l=[];for(let t of e)t.type===`start`&&l.push(t.id);for(let t of e)(c.get(t.id)??0)===0&&!l.includes(t.id)&&l.push(t.id);l.length===0&&l.push(e[0].id);let u=new Map,d=[];for(let e of l)u.set(e,0),d.push(e);let f=e.length*Math.max(1,t.length)+e.length+1,p=0;for(;d.length&&p<f;){p+=1;let e=d.shift(),t=u.get(e)??0;for(let n of s.get(e)??[]){let e=t+1;(u.get(n)??-1)<e&&(u.set(n,e),d.push(n))}}let m=0;for(let e of u.values())m=Math.max(m,e);for(let t of e)u.has(t.id)||(m+=1,u.set(t.id,m));let h=new Map;for(let t of e){let e=u.get(t.id)??0;h.has(e)||h.set(e,[]),h.get(e).push(t.id)}for(let e of h.values())e.sort((e,t)=>(o.get(e)??0)-(o.get(t)??0));let g=[...h.keys()].sort((e,t)=>e-t),_=0,v;for(let e of g){v!==void 0&&(_+=(e-v-1)*122);let t=h.get(e),n=-(t.length*240+(t.length-1)*44)/2,o=66;t.forEach((e,t)=>{r.set(e,{x:n+t*284,y:_});let s=a.get(e);s&&!Qt(s)&&(o=Math.max(o,i.get(e)??66))}),_+=o+56,v=e}let y=1/0,b=1/0;for(let e of r.values())y=Math.min(y,e.x),b=Math.min(b,e.y);if(Number.isFinite(y)&&Number.isFinite(b)){let e=28-y,t=28-b;for(let[n,i]of r)r.set(n,{x:i.x+e,y:i.y+t})}for(let t of e){let e=Zt(t);e&&r.set(t.id,{x:Math.max(0,e.x),y:Math.max(0,e.y)})}let x=0,S=0;for(let[e,t]of r)x=Math.max(x,t.x+240),S=Math.max(S,t.y+(i.get(e)??66));return{positions:r,heights:i,size:{width:x+28,height:S+28}}}function rn(e,t){return nn(e,t).positions}function an(e){let t=0,n=0;for(let r of e.values())t=Math.max(t,r.x+240),n=Math.max(n,r.y+66);return{width:t+28,height:n+28}}function on(e,t=66){return{x:e.x+120,y:e.y+t}}function sn(e){return{x:e.x+120,y:e.y}}function cn(e,t){let n=Math.max(Math.abs(t.y-e.y)*.5,24),r={x:e.x,y:e.y+n},i={x:t.x,y:t.y-n};return`M ${e.x},${e.y} C ${r.x},${r.y} ${i.x},${i.y} ${t.x},${t.y}`}function ln(e,t){return{x:(e.x+t.x)/2,y:(e.y+t.y)/2}}function un(e){return e.type===`back`}function dn(e){return{x:e.x+240,y:e.y+33}}function fn(e,t){return Math.max(64,Math.abs(t.y-e.y)*.35)}function pn(e,t){let n=fn(e,t),r={x:e.x+n,y:e.y},i={x:t.x+n,y:t.y};return`M ${e.x},${e.y} C ${r.x},${r.y} ${i.x},${i.y} ${t.x},${t.y}`}function mn(e,t){let n=fn(e,t);return{x:Math.max(e.x,t.x)+n*.75,y:(e.y+t.y)/2}}function hn(e,t){return e.id||`${e.source}->${e.target}#${t}`}function gn(e){if(e){if(typeof e==`string`)return e;if(typeof e==`object`&&typeof e.source==`string`)return e.source}}function _n(e){return gn(e)??``}function vn(e){if(!(!e||typeof e!=`object`||Array.isArray(e)))return typeof e.dialect==`string`?e:void 0}function yn(e,t){if(!t)return;let n=vn(e);if(!n)return t;let r={...n,source:t};return delete r.ast,r}var Y={status:`idle`};function X(e,t){return e.status===`loaded`?e.data:t}function bn(e,t){return e.status===`loaded`?{status:`loaded`,data:t(e.data)}:e}function xn(e){return{status:`loaded`,data:e}}function Sn(e){return{status:`error`,message:e}}function Cn(e){if(e instanceof Error&&e.message)return e.message;let t=e?.message;return typeof t==`string`&&t?t:String(e)}function wn(e,t){return e.status===`loaded`?e.data:t}function Tn(e){return e.status===`loading`}function En(e){return e.status===`error`?e.message:void 0}function Dn(e){let[t,n]=K.useState(()=>e?{status:`loading`}:{status:`idle`});return K.useEffect(()=>{if(!e){n({status:`idle`});return}let t=!1;return n({status:`loading`}),(async()=>{try{let r=await e();t||n({status:`loaded`,data:r})}catch(e){t||n({status:`error`,message:Cn(e)})}})(),()=>{t=!0}},[e]),t}var On=[],kn=[],An=[],jn=[];function Z({message:e,testId:t}){let n=U();return(0,q.jsxs)(`div`,{"data-testid":t,role:`status`,className:`rounded border border-amber-200 bg-amber-50 p-2 text-xs text-amber-900`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium`,children:[(0,q.jsx)(ue,{className:`h-3.5 w-3.5 shrink-0`}),G(`engine.form.optionsLoadFailedTitle`,n)]}),(0,q.jsx)(`p`,{className:`mt-1 text-amber-800`,children:G(`engine.form.optionsLoadFailedDesc`,n)}),e?(0,q.jsx)(`p`,{"data-testid":`${t}-cause`,className:`mt-1 max-w-full break-words font-mono text-[10px] text-amber-700`,children:e}):null]})}function Mn({id:e,value:t,onChange:n,readOnly:r,context:i}){let a=U(),o=i?.objectNames??Y,s=t==null?``:String(t);if(o.status===`error`)return(0,q.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,q.jsx)(Z,{message:o.message,testId:`ref-object-load-failed`}),(0,q.jsx)(v,{id:e,value:s,disabled:r,onChange:e=>n(e.target.value||void 0)})]});if(Tn(o))return(0,q.jsx)(v,{id:e,value:s,disabled:!0,placeholder:G(`engine.form.loadingObjects`,a)});let c=X(o,On);return c.length===0?(0,q.jsx)(v,{id:e,value:s,disabled:r,onChange:e=>n(e.target.value||void 0),placeholder:G(`engine.form.noObjects`,a)}):(0,q.jsxs)(H,{value:s,onValueChange:e=>n(e||void 0),disabled:r,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:G(`engine.form.selectObject`,a)})}),(0,q.jsx)(j,{children:c.map(e=>(0,q.jsx)(m,{value:e,children:e},e))})]})}function Nn(e){let t=[],n=new Set,r=e=>{if(!e||typeof e!=`object`)return;let r=e,a=r.id;typeof a==`string`&&a&&!n.has(a)&&(n.add(a),t.push({id:a,type:typeof r.type==`string`?r.type:void 0,label:typeof r.label==`string`?r.label:void 0})),i(r.components),i(r.children);let o=r.properties;o&&typeof o==`object`&&(i(o.components),i(o.children))},i=e=>{if(Array.isArray(e))for(let t of e)r(t)};if(e&&typeof e==`object`){let t=e.regions;if(Array.isArray(t))for(let e of t)e&&typeof e==`object`&&i(e.components)}return t}function Pn({id:e,value:t,onChange:n,readOnly:r,context:i}){let a=U(),o=i?.componentIds??[],s=t==null?``:String(t);if(o.length===0)return(0,q.jsx)(v,{id:e,value:s,disabled:r,onChange:e=>n(e.target.value||void 0),placeholder:G(`engine.form.noComponents`,a)});let c=!s||o.some(e=>e.id===s);return(0,q.jsxs)(H,{value:s||Q,onValueChange:e=>n(e===Q?void 0:e),disabled:r,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:G(`engine.form.selectComponent`,a)})}),(0,q.jsxs)(j,{children:[(0,q.jsx)(m,{value:Q,children:(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:G(`engine.form.none`,a)})}),!c&&s&&(0,q.jsx)(m,{value:s,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`font-mono`,children:s}),(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:G(`engine.form.notInObject`,a)})]})}),o.map(e=>(0,q.jsx)(m,{value:e.id,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`font-mono`,children:e.id}),(e.label||e.type)&&(0,q.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.label||e.type})]})},e.id))]})]})}function Fn({id:e,value:t,onChange:n,readOnly:r,context:i,fieldSpec:a}){let o=U(),s=i?.objectNames??Y,c=a?.multiple??!1,l=K.useMemo(()=>t?Array.isArray(t)?t.map(String):String(t).split(`,`).map(e=>e.trim()).filter(Boolean):[],[t]),u=e=>{if(!r){if(!c){n(e);return}n(l.includes(e)?l.filter(t=>t!==e):[...l,e])}},d=e=>{if(r)return;let t=l.filter(t=>t!==e);n(c?t:``)};if(Tn(s))return(0,q.jsx)(v,{id:e,value:G(`engine.form.loadingObjects`,o),readOnly:!0,disabled:!0});let f=l.length>0&&(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:l.map(e=>(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1 rounded bg-secondary px-2 py-1 text-sm`,children:[(0,q.jsx)(`span`,{children:e}),!r&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>d(e),className:`text-muted-foreground hover:text-foreground`,children:`×`})]},e))});if(s.status===`error`)return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[f,(0,q.jsx)(Z,{message:s.message,testId:`object-selector-load-failed`})]});let h=X(s,On);return(0,q.jsxs)(`div`,{className:`space-y-2`,children:[f,(0,q.jsxs)(H,{value:``,onValueChange:u,disabled:r||h.length===0,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:G(c?`engine.form.addObjects`:`engine.form.selectObject`,o)})}),(0,q.jsx)(j,{children:h.map(e=>(0,q.jsxs)(m,{value:e,disabled:!c&&l.includes(e),children:[e,l.includes(e)&&` ✓`]},e))})]})]})}var In=[];async function Ln(e){let t=await fetch(`/api/v1/objects/${e}/fields`),n=null;try{n=await t.json()}catch{}if(!t.ok){let e=n?.error?.message??n?.error??n?.message;throw Error(typeof e==`string`&&e?e:`HTTP ${t.status}`)}return Array.isArray(n?.fields)?n.fields:[]}function Rn({id:e,value:t,onChange:n,readOnly:r,fieldSpec:i,formData:a}){let o=U(),s=i?.dependsOn||i?.reference||`objectName`,c=Array.isArray(s)?s[0]:s,l=a?.[c],u=Dn(K.useMemo(()=>l?()=>Ln(l):null,[l])),d=wn(u,In),f=En(u),h=i?.multiple??!1,g=K.useMemo(()=>t?Array.isArray(t)?t.map(String):String(t).split(`,`).map(e=>e.trim()).filter(Boolean):[],[t]),_=e=>{if(!r){if(!h){n(e);return}n(g.includes(e)?g.filter(t=>t!==e):[...g,e])}},y=e=>{if(r)return;let t=g.filter(t=>t!==e);n(h?t:``)};if(!l)return(0,q.jsx)(v,{id:e,value:G(`engine.form.selectObjectFirst`,o),readOnly:!0,disabled:!0});if(Tn(u))return(0,q.jsx)(v,{id:e,value:G(`engine.form.loadingFields`,o),readOnly:!0,disabled:!0});let b=g.length>0&&(0,q.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:g.map(e=>{let t=d.find(t=>t.name===e);return(0,q.jsxs)(`div`,{className:`inline-flex items-center gap-1 rounded bg-secondary px-2 py-1 text-sm`,children:[(0,q.jsx)(`span`,{children:t?.label||e}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:t?.type}),!r&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>y(e),className:`text-muted-foreground hover:text-foreground`,children:`×`})]},e)})});return f?(0,q.jsxs)(`div`,{className:`space-y-2`,children:[b,(0,q.jsx)(Z,{message:f,testId:`field-selector-load-failed`})]}):(0,q.jsxs)(`div`,{className:`space-y-2`,children:[b,(0,q.jsxs)(H,{value:``,onValueChange:_,disabled:r||d.length===0,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:G(h?`engine.form.addFields`:`engine.form.selectField`,o)})}),(0,q.jsx)(j,{children:d.map(e=>(0,q.jsx)(m,{value:e.name,disabled:!h&&g.includes(e.name),children:(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:e.label||e.name}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:e.type}),g.includes(e.name)&&` ✓`]})},e.name))})]})]})}function zn({schema:e,value:t,onChange:n,readOnly:r,context:i,ariaLabelledBy:a}){let o=U(),s=e;if(s?.anyOf||s?.oneOf){let e=(s.anyOf??s.oneOf).find(e=>e?.type===`array`&&e?.items?.type===`object`);e&&(s={...s,...e})}let c=s?.items??{},l=c.properties??{},u=new Set(Array.isArray(c.required)?c.required:[]),d=Array.isArray(t)?t:[],p=Object.keys(l);if(p.length===0)return(0,q.jsx)(`div`,{role:`group`,"aria-labelledby":a,className:`rounded border border-dashed border-amber-500/40 bg-amber-500/5 p-2 text-xs text-amber-700 dark:text-amber-300`,children:G(`engine.form.masterDetailSchemaError`,o)});function m(e,t){let r=d.slice();r[e]={...r[e]??{},...t},n(r)}function h(){n([...d,{}])}function g(e){let t=d.slice();t.splice(e,1),n(t)}return(0,q.jsxs)(`div`,{className:`space-y-2`,role:`group`,"aria-labelledby":a,children:[(0,q.jsx)(`div`,{className:`overflow-x-auto rounded border border-border/40`,children:(0,q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,q.jsx)(`thead`,{className:`bg-muted/40`,children:(0,q.jsxs)(`tr`,{children:[p.map(e=>(0,q.jsxs)(`th`,{className:`px-2 py-1.5 text-left text-xs font-medium text-muted-foreground`,children:[l[e]?.title??e,u.has(e)&&(0,q.jsx)(`span`,{className:`text-destructive ml-0.5`,children:`*`})]},e)),(0,q.jsx)(`th`,{className:`w-8`})]})}),(0,q.jsxs)(`tbody`,{children:[d.length===0&&(0,q.jsx)(`tr`,{children:(0,q.jsx)(`td`,{colSpan:p.length+1,className:`px-2 py-3 text-center text-xs text-muted-foreground`,children:G(`engine.form.noRows`,o)})}),d.map((e,t)=>(0,q.jsxs)(`tr`,{className:`border-t border-border/30`,children:[p.map(n=>(0,q.jsx)(`td`,{className:`p-1`,children:(0,q.jsx)(Bn,{schema:l[n],value:(e??{})[n],readOnly:r,context:i,onChange:e=>m(t,{[n]:e})})},n)),(0,q.jsx)(`td`,{className:`p-1 text-right`,children:(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>g(t),disabled:r,className:`h-7 w-7 p-0`,"aria-label":G(`engine.form.removeRow`,o),children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})})]},t))]})]})}),(0,q.jsxs)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:h,disabled:r,children:[(0,q.jsx)(f,{className:`h-3.5 w-3.5 mr-1`}),` `,G(`engine.form.addRow`,o)]})]})}function Bn({schema:e,value:t,readOnly:n,context:r,onChange:i}){if(e?.widget===`ref:object`)return(0,q.jsx)(Mn,{schema:e,value:t,onChange:i,readOnly:n,context:r});if(e?.widget===`ref:component`)return(0,q.jsx)(Pn,{schema:e,value:t,onChange:i,readOnly:n,context:r});let a=e?.enum;return Array.isArray(a)&&a.length>0?(0,q.jsxs)(H,{value:t==null?``:String(t),onValueChange:e=>i(e||void 0),disabled:n,children:[(0,q.jsx)(p,{className:`h-8 text-xs`,children:(0,q.jsx)(S,{placeholder:`—`})}),(0,q.jsx)(j,{children:a.map(e=>(0,q.jsx)(m,{value:String(e),children:String(e)},String(e)))})]}):e?.type===`boolean`?(0,q.jsx)(`input`,{type:`checkbox`,checked:!!t,disabled:n,onChange:e=>i(e.target.checked),className:`h-4 w-4`}):e?.type===`number`||e?.type===`integer`?(0,q.jsx)(v,{type:`number`,value:t==null?``:String(t),disabled:n,onChange:e=>{let t=e.target.valueAsNumber;i(Number.isFinite(t)?t:void 0)},className:`h-8 text-xs`}):(0,q.jsx)(v,{value:t==null?``:String(t),disabled:n,onChange:e=>i(e.target.value||void 0),className:`h-8 text-xs`})}function Vn({id:e,value:t,onChange:n,readOnly:r}){let i=U(),a=Array.isArray(t)?t:[],[o,s]=K.useState(``);function c(e){let t=e.split(/[,\n]/).map(e=>e.trim()).filter(Boolean);if(t.length===0)return;let r=[...a];for(let e of t)r.includes(e)||r.push(e);n(r),s(``)}function l(e){let t=a.slice();t.splice(e,1),n(t)}return(0,q.jsx)(`div`,{className:`rounded border border-input bg-background p-1.5`,children:(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1`,children:[a.map((e,t)=>(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded bg-muted px-1.5 py-0.5 text-xs`,children:[(0,q.jsx)(`span`,{className:`font-mono`,children:e}),!r&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e}`,onClick:()=>l(t),className:`text-muted-foreground hover:text-destructive`,children:`×`})]},t)),(0,q.jsx)(`input`,{id:e,type:`text`,value:o,disabled:r,placeholder:a.length===0?G(`engine.form.tagsPlaceholder`,i):``,onChange:e=>s(e.target.value),onKeyDown:e=>{e.key===`Enter`||e.key===`,`?(e.preventDefault(),c(o)):e.key===`Backspace`&&!o&&a.length>0&&l(a.length-1)},onBlur:()=>o&&c(o),className:`min-w-[8rem] flex-1 bg-transparent text-sm outline-none`})]})})}function Hn(e){return e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Un({value:e,onChange:t,readOnly:n,schema:r,fieldSpec:i,formData:o,ariaLabelledBy:s}){let c=a(),l=K.useMemo(()=>{if(Array.isArray(i?.options)&&i.options.length)return i.options.map(e=>({label:e.label,value:e.value,visibleWhen:e.visibleWhen}));let e=r?.items?.enum??r?.enum??[];return(Array.isArray(e)?e:[]).filter(e=>typeof e==`string`).map(e=>({label:Hn(e),value:e}))},[i,r]),u=K.useMemo(()=>Ye(l,J(o,c)),[l,o,c]),d=K.useMemo(()=>Array.isArray(e)?e.filter(e=>typeof e==`string`):[],[e]);function f(e){if(n)return;let r=new Set(d);r.has(e)?r.delete(e):r.add(e);let i=l.map(e=>e.value).filter(e=>r.has(e));t(i.length?i:void 0)}return l.length===0?(0,q.jsx)(`div`,{role:`group`,"aria-labelledby":s,children:(0,q.jsx)(Vn,{value:e,onChange:t,readOnly:n,schema:r,fieldSpec:i})}):(0,q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,role:`group`,"aria-labelledby":s,children:u.map(e=>{let t=d.includes(e.value);return(0,q.jsxs)(`button`,{type:`button`,role:`checkbox`,"aria-checked":t,disabled:n,onClick:()=>f(e.value),className:`inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs font-medium transition-colors `+(t?`border-primary bg-primary/10 text-primary`:`border-input bg-background text-muted-foreground hover:text-foreground hover:bg-muted`)+(n?` opacity-60 cursor-not-allowed`:``),children:[(0,q.jsx)(`span`,{"aria-hidden":!0,className:`flex h-3.5 w-3.5 items-center justify-center rounded-[3px] border text-[9px] leading-none `+(t?`border-primary bg-primary text-primary-foreground`:`border-muted-foreground/40`),children:t?`✓`:``}),e.label]},e.value)})})}var Q=`__none__`;function Wn({id:e,value:t,onChange:n,readOnly:r,context:i}){let a=U(),o=i?.objectFields??Y,s=t==null?``:String(t);if(o.status===`error`)return(0,q.jsx)(Z,{message:o.message,testId:`field-ref-load-failed`});if(Tn(o))return(0,q.jsx)(v,{id:e,value:G(`engine.form.loadingOptions`,a),readOnly:!0,disabled:!0});let c=X(o,kn),l=!s||c.some(e=>e.name===s);return(0,q.jsxs)(H,{value:s||Q,onValueChange:e=>n(e===Q?``:e),disabled:r,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:c.length?G(`engine.form.selectField`,a):G(`engine.form.noObjectBound`,a)})}),(0,q.jsxs)(j,{children:[(0,q.jsx)(m,{value:Q,children:(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:G(`engine.form.none`,a)})}),!l&&s&&(0,q.jsxs)(m,{value:s,children:[(0,q.jsx)(`span`,{className:`font-mono`,children:s}),(0,q.jsx)(`span`,{className:`ml-2 text-xs text-muted-foreground`,children:G(`engine.form.notInObject`,a)})]}),c.map(e=>(0,q.jsx)(m,{value:e.name,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:e.label||e.name}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:e.name})]})},e.name))]})]})}function Gn(e,t){let n=t?e.find(e=>e.name===t):void 0,r=t&&!n?e.find(e=>e.name.endsWith(`.${t}`)):void 0,i=t==="default"||t===`list`;return{exact:n,suffixMatch:r,isSpecial:i,resolves:!!n||!!r||i,showStored:!!t&&!n}}function Kn({id:e,value:t,onChange:n,readOnly:r,context:i}){let a=U(),o=i?.objectViews??Y,s=t==null?``:String(t);if(o.status===`error`)return(0,q.jsx)(Z,{message:o.message,testId:`view-ref-load-failed`});if(Tn(o))return(0,q.jsx)(v,{id:e,value:G(`engine.form.loadingOptions`,a),readOnly:!0,disabled:!0});let c=X(o,An),{suffixMatch:l,resolves:u,showStored:d}=Gn(c,s);return(0,q.jsxs)(H,{value:s||Q,onValueChange:e=>n(e===Q?void 0:e),disabled:r,children:[(0,q.jsx)(p,{id:e,children:(0,q.jsx)(S,{placeholder:c.length?G(`engine.form.selectEllipsis`,a):G(`engine.form.noObjectBound`,a)})}),(0,q.jsxs)(j,{children:[(0,q.jsx)(m,{value:Q,children:(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:G(`engine.form.none`,a)})}),d&&(0,q.jsx)(m,{value:s,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:l?.label||s}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:l?`\u2192 ${l.name}`:s}),!u&&(0,q.jsx)(`span`,{className:`ml-1 text-xs text-muted-foreground`,children:G(`engine.form.notInObject`,a)})]})}),c.map(e=>(0,q.jsx)(m,{value:e.name,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:e.label||e.name}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:e.name})]})},e.name))]})]})}function qn({value:e,onChange:t,readOnly:n,context:r,ariaLabelledBy:i}){let a=U(),o=r?.objectFields??Y,s=En(o),c=o.status===`error`?kn:X(o,kn),l=Array.isArray(e)?e.map(String):typeof e==`string`&&e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[],u=e=>c.find(t=>t.name===e)?.label||e,d=c.filter(e=>!l.includes(e.name)),f=e=>{l.includes(e)||t([...l,e])},h=e=>{let n=l.slice();n.splice(e,1),t(n)},g=(e,n)=>{let r=e+n;if(r<0||r>=l.length)return;let i=l.slice();[i[e],i[r]]=[i[r],i[e]],t(i)};return(0,q.jsxs)(`div`,{className:`space-y-2`,role:`group`,"aria-labelledby":i,children:[l.length>0&&(0,q.jsx)(`div`,{className:`space-y-1`,children:l.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1 rounded border border-input bg-background px-2 py-1 text-sm`,children:[(0,q.jsxs)(`span`,{className:`flex-1 truncate`,children:[u(e),(0,q.jsx)(`code`,{className:`ml-2 text-xs text-muted-foreground`,children:e})]}),!n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move up`,disabled:t===0,onClick:()=>g(t,-1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:`↑`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move down`,disabled:t===l.length-1,onClick:()=>g(t,1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:`↓`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e}`,onClick:()=>h(t),className:`px-1 text-muted-foreground hover:text-destructive`,children:`×`})]})]},e))}),s&&(0,q.jsx)(Z,{message:s,testId:`field-multi-load-failed`}),!n&&(0,q.jsxs)(H,{value:``,onValueChange:f,disabled:d.length===0,children:[(0,q.jsx)(p,{"aria-label":G(`engine.form.addField`,a),children:(0,q.jsx)(S,{placeholder:s?G(`engine.form.optionsLoadFailedTitle`,a):c.length?d.length?G(`engine.form.addField`,a):G(`engine.form.allFieldsAdded`,a):G(`engine.form.noObjectBound`,a)})}),(0,q.jsx)(j,{children:d.map(e=>(0,q.jsx)(m,{value:e.name,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:e.label||e.name}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:e.name})]})},e.name))})]})]})}var Jn=y,Yn=new Set(Jn),Xn=120;function Zn({id:e,value:t,onChange:n,readOnly:r}){let i=U(),a=t==null?``:String(t),[o,s]=K.useState(!1),[c,l]=K.useState(``),d=a?w(a):``,f=!a||Yn.has(d),p=w(c.trim()),m=K.useMemo(()=>p?Jn.filter(e=>e.includes(p)):Jn,[p]),h=m.slice(0,Xn),g=m.length>h.length,_=e=>{n(e||void 0),s(!1),l(``)};return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsxs)(`button`,{id:e,type:`button`,role:`combobox`,"aria-haspopup":`dialog`,"aria-expanded":o,disabled:r,onClick:()=>!r&&s(!0),className:`flex w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-left disabled:cursor-not-allowed disabled:opacity-60`,children:[(0,q.jsx)(ie,{name:f?a:void 0,className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(`span`,{className:`flex-1 truncate `+(a?`font-mono`:`text-muted-foreground`),children:a||G(`engine.form.selectEllipsis`,i)}),!f&&a&&(0,q.jsx)(`span`,{className:`shrink-0 text-xs text-muted-foreground`,children:G(`engine.form.notInObject`,i)}),(0,q.jsx)(L,{"aria-hidden":!0,className:`h-3.5 w-3.5 shrink-0 opacity-50`})]}),(0,q.jsx)(se,{open:o,onOpenChange:e=>{s(e),e||l(``)},children:(0,q.jsxs)(de,{className:`max-w-2xl`,children:[(0,q.jsx)(O,{children:(0,q.jsx)(u,{children:G(`engine.form.chooseIcon`,i)})}),(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2`,children:[(0,q.jsx)(te,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-muted-foreground`}),(0,q.jsx)(`input`,{type:`text`,autoFocus:!0,value:c,"aria-label":G(`engine.form.searchIcons`,i),placeholder:G(`engine.form.searchIcons`,i),onChange:e=>l(e.target.value),className:`w-full bg-transparent text-sm outline-none`})]}),(0,q.jsxs)(`div`,{id:e?`${e}-listbox`:void 0,role:`listbox`,className:`grid max-h-[52vh] grid-cols-6 gap-1.5 overflow-y-auto pr-1 sm:grid-cols-8`,children:[a&&(0,q.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":!1,title:G(`engine.form.none`,i),onClick:()=>_(void 0),className:`flex aspect-square flex-col items-center justify-center gap-1 rounded border border-dashed border-border p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:[(0,q.jsx)(E,{className:`h-4 w-4`}),(0,q.jsx)(`span`,{className:`w-full truncate text-center text-[9px] leading-tight`,children:`none`})]}),!f&&a&&(0,q.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":!0,title:a,onClick:()=>_(a),className:`flex aspect-square flex-col items-center justify-center gap-1 rounded bg-accent p-1 text-accent-foreground ring-1 ring-primary`,children:[(0,q.jsx)(ie,{name:void 0,className:`h-4 w-4`}),(0,q.jsx)(`span`,{className:`w-full truncate text-center text-[9px] leading-tight`,children:a})]}),h.map(e=>{let t=e===d;return(0,q.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":t,title:e,onClick:()=>_(e),className:`flex aspect-square flex-col items-center justify-center gap-1 rounded p-1 text-muted-foreground hover:bg-accent hover:text-accent-foreground `+(t?`bg-accent text-accent-foreground ring-1 ring-primary`:``),children:[(0,q.jsx)(ie,{name:e,className:`h-5 w-5`}),(0,q.jsx)(`span`,{className:`w-full truncate text-center text-[9px] leading-tight`,children:e})]},e)}),h.length===0&&(0,q.jsx)(`p`,{className:`col-span-full px-2 py-6 text-center text-sm text-muted-foreground`,children:G(`engine.form.noMatchingIcons`,i)})]}),g&&(0,q.jsx)(`p`,{className:`text-center text-xs text-muted-foreground`,children:W(`engine.form.iconsTruncated`,i,{shown:h.length,total:m.length})})]})})]})}var Qn=[{key:`none`,label:`None`},{key:`tabs`,label:`Tabs`},{key:`dropdown`,label:`Dropdown`}],$n=e=>(e||``).trim().toLowerCase().replace(/[^a-z0-9]+/g,`_`).replace(/^_+|_+$/g,``)||`tab`;function er({value:e,onChange:t,readOnly:n,context:r,ariaLabelledBy:i}){let a=e&&typeof e==`object`?e:void 0,o=a?.element??(a?`dropdown`:`none`),s=r?.objectFields??Y,c=En(s),l=s.status===`error`?kn:X(s,kn),u=e=>{if(!n){if(e===`none`){t(void 0);return}t({...a??{},element:e})}},d=Array.isArray(a?.fields)?a.fields:[],h=e=>t({...a??{},element:o===`none`?`dropdown`:o,fields:e}),g=new Set(d.map(e=>e.field)),_=l.filter(e=>!g.has(e.name)),y=e=>l.find(t=>t.name===e)?.label||e,b=o===`dropdown`||o===`toggle`,x=(Array.isArray(a?.tabs)?a.tabs:[]).map(e=>({...e,name:e?.name??e?.id??``,label:typeof e?.label==`string`?e.label:e?.name??e?.id??``,filter:Array.isArray(e?.filter)?e.filter:Array.isArray(e?.filters)?e.filters.filter(e=>Array.isArray(e)&&e.length>=2).map(e=>({field:String(e[0]),operator:String(e[1]),value:e[2]})):[],isDefault:e?.isDefault??e?.default})),C=e=>{let t={name:$n(e.label||e.name),label:e.label||e.name||`Tab`};return e.icon&&(t.icon=e.icon),t.filter=Array.isArray(e.filter)?e.filter:[],e.isDefault&&(t.isDefault=!0),t},w=e=>{let n={},r=e.map(C).map(e=>{let t=e.name;if(n[t]){let r=2;for(;n[`${e.name}_${r}`];)r++;t=`${e.name}_${r}`}return n[t]=!0,{...e,name:t}});t({...a??{},element:`tabs`,tabs:r})},T=()=>w([...x,{name:``,label:`Tab ${x.length+1}`,filter:[]}]),D=e=>w(x.filter((t,n)=>n!==e)),O=(e,t)=>{let n=[...x],r=e+t;r<0||r>=n.length||([n[e],n[r]]=[n[r],n[e]],w(n))},k=(e,t)=>w(x.map((n,r)=>r===e?{...n,...t}:n));return(0,q.jsxs)(`div`,{className:`space-y-3`,role:`group`,"aria-labelledby":i,children:[(0,q.jsx)(`div`,{className:`inline-flex rounded-md border border-input bg-background p-0.5`,role:`radiogroup`,"aria-label":`Filter element`,children:Qn.map(e=>{let t=o===e.key;return(0,q.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":t,"data-testid":`filter-mode-${e.key}`,disabled:n,onClick:()=>u(e.key),className:`px-3 py-1 text-xs font-medium rounded transition-colors `+(t?`bg-primary text-primary-foreground shadow-sm`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:e.label},e.key)})}),b&&(0,q.jsxs)(`div`,{className:`space-y-2`,"data-testid":`filter-mode-fields`,children:[d.length>0&&(0,q.jsx)(`div`,{className:`space-y-1`,children:d.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-2 rounded border border-input bg-background px-2 py-1 text-sm`,children:[(0,q.jsxs)(`span`,{className:`flex-1 truncate`,children:[y(e.field),(0,q.jsx)(`code`,{className:`ml-2 text-xs text-muted-foreground`,children:e.field})]}),(0,q.jsxs)(`label`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,q.jsx)(I,{checked:!!e.showCount,disabled:n,onCheckedChange:e=>h(d.map((n,r)=>r===t?{...n,showCount:e}:n))}),`count`]}),!n&&(0,q.jsx)(`button`,{type:`button`,"aria-label":`Remove field`,onClick:()=>h(d.filter((e,n)=>n!==t)),className:`px-1 text-muted-foreground hover:text-destructive`,children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})]},e.field))}),!n&&_.length>0&&(0,q.jsxs)(H,{onValueChange:e=>h([...d,{field:e}]),children:[(0,q.jsx)(p,{className:`h-8 text-xs`,"data-testid":`filter-mode-add-field`,children:(0,q.jsx)(S,{placeholder:`+ Add filter field…`})}),(0,q.jsx)(j,{children:_.map(e=>(0,q.jsx)(m,{value:e.name,children:e.label||e.name},e.name))})]}),c?(0,q.jsx)(Z,{message:c,testId:`filter-mode-fields-load-failed`}):l.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Bind a source object to pick filter fields.`}):null]}),o===`tabs`&&(0,q.jsxs)(`div`,{className:`space-y-2`,"data-testid":`filter-mode-tabs-editor`,children:[x.map((e,t)=>(0,q.jsxs)(`div`,{className:`rounded-md border border-input bg-background p-2 space-y-2`,"data-testid":`tab-preset-${t}`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(v,{value:e.label,placeholder:`Tab label`,disabled:n,className:`h-8 text-sm flex-1`,"data-testid":`tab-label-${t}`,onChange:e=>k(t,{label:e.target.value})}),(0,q.jsx)(`code`,{className:`text-[10px] text-muted-foreground shrink-0 max-w-[6rem] truncate`,title:e.name,children:e.name}),!n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move tab up`,disabled:t===0,onClick:()=>O(t,-1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:(0,q.jsx)(R,{className:`h-3.5 w-3.5`})}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move tab down`,disabled:t===x.length-1,onClick:()=>O(t,1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:(0,q.jsx)(z,{className:`h-3.5 w-3.5`})}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Remove tab`,onClick:()=>D(t),className:`px-1 text-muted-foreground hover:text-destructive`,children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})]})]}),(0,q.jsx)(`div`,{className:`pl-1`,"data-testid":`tab-${t}-filter`,children:(0,q.jsx)(rr,{value:e.filter,onChange:e=>k(t,{filter:e}),fields:l,loadError:c,readOnly:n})})]},t)),!n&&(0,q.jsxs)(`button`,{type:`button`,"data-testid":`filter-mode-add-tab`,onClick:T,className:`inline-flex items-center text-xs font-medium text-primary hover:underline`,children:[(0,q.jsx)(f,{className:`h-3.5 w-3.5 mr-1`}),` Add tab`]}),(0,q.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground pt-1`,children:[(0,q.jsx)(I,{checked:a?.showAllRecords!==!1,disabled:n,"data-testid":`filter-mode-show-all`,onCheckedChange:e=>t({...a??{},element:`tabs`,showAllRecords:e})}),`Show “All records” tab`]}),c?(0,q.jsx)(Z,{message:c,testId:`filter-mode-tabs-load-failed`}):l.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Bind a source object to build tab filter rules.`}):null]})]})}function tr({value:e,onChange:t,readOnly:n,context:r,ariaLabelledBy:i}){let a=U(),o=r?.objectActions??Y,s=En(o),c=o.status===`error`?jn:X(o,jn),l=Array.isArray(e)?e.map(String):typeof e==`string`&&e?e.split(`,`).map(e=>e.trim()).filter(Boolean):[],u=e=>c.find(t=>t.name===e)?.label||e,d=c.filter(e=>!l.includes(e.name)),f=e=>{l.includes(e)||t([...l,e])},h=e=>{let n=l.slice();n.splice(e,1),t(n)},g=(e,n)=>{let r=e+n;if(r<0||r>=l.length)return;let i=l.slice();[i[e],i[r]]=[i[r],i[e]],t(i)};return(0,q.jsxs)(`div`,{className:`space-y-2`,"data-testid":`action-multi`,role:`group`,"aria-labelledby":i,children:[s&&(0,q.jsx)(Z,{message:s,testId:`action-multi-load-failed`}),l.length>0&&(0,q.jsx)(`div`,{className:`space-y-1`,children:l.map((e,t)=>(0,q.jsxs)(`div`,{className:`flex items-center gap-1 rounded border border-input bg-background px-2 py-1 text-sm`,children:[(0,q.jsxs)(`span`,{className:`flex-1 truncate`,children:[u(e),(0,q.jsx)(`code`,{className:`ml-2 text-xs text-muted-foreground`,children:e})]}),!n&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move up`,disabled:t===0,onClick:()=>g(t,-1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:`↑`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Move down`,disabled:t===l.length-1,onClick:()=>g(t,1),className:`px-1 text-muted-foreground hover:text-foreground disabled:opacity-30`,children:`↓`}),(0,q.jsx)(`button`,{type:`button`,"aria-label":`Remove ${e}`,onClick:()=>h(t),className:`px-1 text-muted-foreground hover:text-destructive`,children:`×`})]})]},e))}),!n&&(0,q.jsxs)(H,{value:``,onValueChange:f,disabled:d.length===0,children:[(0,q.jsx)(p,{"data-testid":`action-multi-add`,"aria-label":`Add action button`,children:(0,q.jsx)(S,{placeholder:s?G(`engine.form.optionsLoadFailedTitle`,a):c.length?d.length?`+ Add action button…`:`All actions added`:`Bind a source object to pick actions`})}),(0,q.jsx)(j,{children:d.map(e=>(0,q.jsx)(m,{value:e.name,children:(0,q.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{children:e.label||e.name}),(0,q.jsx)(`code`,{className:`text-xs text-muted-foreground`,children:e.name})]})},e.name))})]})]})}var nr={equals:`equals`,eq:`equals`,not_equals:`notEquals`,ne:`notEquals`,neq:`notEquals`,notEquals:`notEquals`,contains:`contains`,not_contains:`notContains`,notContains:`notContains`,is_empty:`isEmpty`,isEmpty:`isEmpty`,is_not_empty:`isNotEmpty`,isNotEmpty:`isNotEmpty`,greater_than:`greaterThan`,gt:`greaterThan`,greaterThan:`greaterThan`,less_than:`lessThan`,lt:`lessThan`,lessThan:`lessThan`,greater_than_or_equal:`greaterOrEqual`,gte:`greaterOrEqual`,greaterOrEqual:`greaterOrEqual`,less_than_or_equal:`lessOrEqual`,lte:`lessOrEqual`,lessOrEqual:`lessOrEqual`,before:`before`,after:`after`,between:`between`,in:`in`,not_in:`notIn`,nin:`notIn`,notIn:`notIn`};function rr({value:e,onChange:t,fields:n,readOnly:r,id:i,loadError:a}){let{t:o}=s(),c=Array.isArray(e)?e:[],l={id:`g`,logic:`and`,conditions:c.map((e,t)=>({id:`c${t}`,operator:nr[e.operator]??e.operator??`equals`,field:e.field,value:e.value??``}))},u=n.map(e=>({value:e.name,label:e.label||e.name,type:e.type})),d=c.length?c.map(e=>`${n.find(t=>t.name===e.field)?.label||e.field}`).filter(Boolean).join(`, `):``;return(0,q.jsxs)(x,{children:[(0,q.jsx)(g,{asChild:!0,children:(0,q.jsxs)(F,{id:i,variant:`outline`,size:`sm`,disabled:r,className:`h-8 w-full justify-between text-xs font-normal`,"data-testid":`filter-builder-trigger`,children:[(0,q.jsx)(`span`,{className:`truncate text-left`,children:d||(0,q.jsx)(`span`,{className:`text-muted-foreground`,children:`+ Add filter…`})}),(0,q.jsx)(z,{className:`h-3.5 w-3.5 opacity-60 shrink-0`})]})}),(0,q.jsx)(C,{align:`start`,className:`w-[440px] max-w-[90vw] p-3`,children:a?(0,q.jsx)(Z,{message:a,testId:`filter-builder-load-failed`}):n.length===0?(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Bind a source object to add filter conditions.`}):(0,q.jsx)(A,{fields:u,value:l,onChange:e=>{let n=Ge(e);if(!n.ok){me.error(o(Ke[n.reason]));return}t(n.rules)}})})]})}function ir({id:e,value:t,onChange:n,readOnly:r,context:i}){let a=i?.objectFields??Y,o=En(a),s=a.status===`error`?kn:X(a,kn);return(0,q.jsx)(rr,{id:e,value:t,onChange:e=>n(e.length?e:void 0),fields:s,loadError:o,readOnly:r})}function ar(e,t){return Array.isArray(t?.options)&&t.options.length?t.options.map(e=>({value:e.value,label:e.label})):Array.isArray(e?.enum)?e.enum.filter(e=>typeof e==`string`).map(e=>({value:e})):[]}function or(e,t){return ar(e,t).length>0?`color-picker`:`color-input`}function sr(e,t,n){return Array.isArray(t?.options)&&t.options.length?Ye(t.options,n).map(e=>({value:e.value,label:e.label})):ar(e,t)}function cr({value:e,onChange:t,readOnly:n,schema:r,fieldSpec:i,formData:o,ariaLabelledBy:s}){let c=a(),l=s?{ariaLabelledBy:s}:{ariaLabel:i?.label??(typeof r?.title==`string`?r.title:void 0)??`Color`};return(0,q.jsx)(vt,{...l,value:e==null?void 0:String(e),onChange:e=>t(e),disabled:n,options:sr(r,i,J(o,c))})}function lr({id:e,value:t,onChange:n,readOnly:r}){let i=U(),a=t==null?``:String(t);return(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`input`,{id:e,type:`color`,value:/^#([0-9a-f]{6})$/i.test(a)?a:`#000000`,disabled:r,onChange:e=>n(e.target.value),className:`h-8 w-10 shrink-0 rounded border border-input bg-background p-0.5 disabled:opacity-60`,"aria-label":e?void 0:`Color`}),(0,q.jsx)(v,{value:a,placeholder:`#RRGGBB`,disabled:r,"aria-label":G(`engine.form.colorHex`,i),onChange:e=>n(e.target.value||void 0),className:`h-8 text-sm font-mono`})]})}function ur({value:e,onChange:t,readOnly:n,context:r,ariaLabelledBy:i}){let a=r?.objectFields??Y,o=a.status===`loaded`?a.data:void 0;return(0,q.jsx)(`div`,{role:`group`,"aria-labelledby":i,children:(0,q.jsx)(Yt,{value:_n(e),onCommit:n=>t(yn(e,n)),fields:o,disabled:n})})}var dr=`••••••••`;function fr({value:e,onChange:t,readOnly:n,schema:r,id:i}){let a=e===dr,[o,s]=K.useState(!1),[c,l]=K.useState(a||e==null?``:String(e)),u=e=>{l(e),t(e===``?a?dr:void 0:e)};return(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(v,{id:i,type:o?`text`:`password`,value:c,disabled:n,autoComplete:`off`,placeholder:a?r?.description?`•••••••• set — type to replace`:`•••••••• set — leave blank to keep`:typeof r?.description==`string`?``:`Enter a value`,onChange:e=>u(e.target.value),className:`h-8 text-sm font-mono`,"aria-label":i?void 0:`Secret value`}),(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`icon`,className:`h-8 w-8 shrink-0`,disabled:n,"aria-label":o?`Hide value`:`Reveal value`,onClick:()=>s(e=>!e),children:o?(0,q.jsx)(d,{className:`h-4 w-4`}):(0,q.jsx)(k,{className:`h-4 w-4`})}),a&&(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`sm`,className:`h-8 shrink-0 text-destructive hover:text-destructive`,disabled:n,onClick:()=>{l(``),t(null)},children:`Clear`})]})}function pr({value:e,onChange:t,readOnly:n,fieldSpec:r,formData:i,context:a,ariaLabelledBy:o}){let s=Array.isArray(r?.dependsOn)?r.dependsOn[0]:r?.dependsOn,l=s?i?.[s]:void 0,u=l==null?void 0:a?.dynamicSchemas?.[String(l)],d=u?.properties??{},f=new Set(u?.required??[]),h=e&&typeof e==`object`?e:{},g=(e,n)=>{let r={...h};n===void 0||n===``?delete r[e]:r[e]=n,t(r)};return l?!u||Object.keys(d).length===0?(0,q.jsxs)(`div`,{role:`group`,"aria-labelledby":o,className:`text-xs text-muted-foreground`,children:[`No configuration needed for "`,String(l),`".`]}):(0,q.jsx)(`div`,{className:`space-y-2 rounded-md border border-border/60 p-3`,role:`group`,"aria-labelledby":o,children:Object.entries(d).map(([e,t])=>{let r=t?.title||e,i=h[e],a=f.has(e);if(t?.type===`boolean`)return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsx)(c,{className:`text-xs`,children:r}),(0,q.jsx)(I,{"aria-label":r,checked:!!i,disabled:n,onCheckedChange:t=>g(e,t)})]},e);if(Array.isArray(t?.enum))return(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsxs)(c,{className:`text-xs`,children:[r,a?` *`:``]}),(0,q.jsxs)(H,{value:i==null?``:String(i),onValueChange:t=>g(e,t),disabled:n,children:[(0,q.jsx)(p,{className:`h-8`,"aria-label":r,children:(0,q.jsx)(S,{placeholder:`Select…`})}),(0,q.jsx)(j,{children:t.enum.map(e=>(0,q.jsx)(m,{value:String(e),children:String(e)},String(e)))})]})]},e);let o=t?.format===`password`||t?.writeOnly===!0,s=t?.type===`number`||t?.type===`integer`;return(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsxs)(c,{className:`text-xs`,children:[r,a?` *`:``]}),o?(0,q.jsx)(fr,{value:i,onChange:t=>g(e,t),readOnly:n,schema:t}):(0,q.jsx)(v,{type:s?`number`:`text`,value:i==null?``:String(i),disabled:n,"aria-label":r,onChange:t=>g(e,s?t.target.value===``?void 0:Number(t.target.value):t.target.value),className:`h-8 text-sm`}),t?.description&&(0,q.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:t.description})]},e)})}):(0,q.jsxs)(`div`,{role:`group`,"aria-labelledby":o,className:`text-xs text-muted-foreground`,children:[`Select `,s??`an option`,` to configure.`]})}var mr={"ref:object":Mn,"ref:component":Pn,"filter-mode":er,"object-selector":Fn,"field-selector":Rn,"field-ref":Wn,"field-multi":qn,"action-multi":tr,"filter-builder":ir,"view-ref":Kn,icon:Zn,"color-picker":cr,"color-input":lr,condition:ur,"master-detail":zn,"string-tags":Vn,multiselect:Un,code:yr,secret:fr,"dynamic-config":pr},hr={"ref:object":`control`,"ref:component":`control`,"filter-mode":`group`,"object-selector":`control`,"field-selector":`control`,"field-ref":`control`,"field-multi":`group`,"action-multi":`group`,"filter-builder":`control`,"view-ref":`control`,icon:`control`,"color-picker":`group`,"color-input":`control`,condition:`group`,"master-detail":`group`,"string-tags":`control`,multiselect:`group`,code:`group`,secret:`control`,"dynamic-config":`group`};function gr(e){return e?hr[e]??`control`:`control`}function _r(e,t){if(e?.language)return e.language;if(typeof t?.format==`string`){let e=t.format.toLowerCase();if(e===`sql`||e===`javascript`||e===`typescript`||e===`json`||e===`yaml`||e===`html`||e===`css`||e===`python`)return e}let n=e?.field?.toLowerCase()??``;return n.includes(`sql`)||n===`query`?`sql`:`javascript`}var vr=K.lazy(()=>t(()=>import(`./src-DEMdKbQy.js`).then(e=>({default:e.CodeEditorRenderer})),__vite__mapDeps([0]),import.meta.url));function yr({schema:e,value:t,onChange:n,readOnly:r,fieldSpec:i,ariaLabelledBy:a}){let o=_r(i,e),s=typeof t==`string`?t:t==null?``:String(t);return(0,q.jsxs)(`div`,{className:`rounded-md border border-border/50 overflow-hidden`,role:`group`,"aria-labelledby":a,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-1 bg-muted/40 border-b border-border/30 text-[10px] font-mono text-muted-foreground`,children:[(0,q.jsx)(`span`,{children:o}),r&&(0,q.jsx)(`span`,{children:`read-only`})]}),(0,q.jsx)(K.Suspense,{fallback:(0,q.jsx)(`div`,{className:`h-[280px] flex items-center justify-center text-xs text-muted-foreground`,children:`Loading editor…`}),children:(0,q.jsx)(vr,{schema:{type:`code`,language:o,theme:`vs-dark`,height:`280px`,readOnly:r},value:s,onChange:e=>n(e??``)})})]})}var br=new Set([`text`,`textarea`,`number`,`switch`,`select`,`json`]);function xr(e,t){if(!e)return e;let n=e.oneOf??e.anyOf;if(!Array.isArray(n)||n.length===0)return e;let r=typeof t==`object`&&!!t&&!Array.isArray(t),i=Array.isArray(t),a=r?new Set(Object.keys(t)):null,o=null,s=i&&t.length?t[0]:void 0,c=typeof s==`object`&&!!s&&!Array.isArray(s);for(let e of n){let n=0;if(e.type===`array`&&i){n+=5;let t=e.items?.type;(t===`object`&&c||t===`string`&&typeof s==`string`||t===`number`&&typeof s==`number`||t===`integer`&&typeof s==`number`)&&(n+=3)}if(e.type===`object`&&r&&(n+=5),e.type===`string`&&typeof t==`string`&&(n+=5),e.type===`number`&&typeof t==`number`&&(n+=5),e.type===`boolean`&&typeof t==`boolean`&&(n+=5),a&&Array.isArray(e.required))for(let t of e.required)a.has(t)&&(n+=1);(!o||n>o.score)&&(o={branch:e,score:n})}let l=o?.branch??n[0];return{...e,...l,oneOf:void 0,anyOf:void 0}}function Sr(e,t){if(!e)return{};let n=xr(e,Array.isArray(t)?t:[])?.items;return!n||typeof n!=`object`?{}:xr(n,Array.isArray(t)&&t.length?t[0]:void 0)??{}}function Cr(e,t){if(e?.widget)return e.widget;if(e?.type){let t=e.type;if(t===`text`||t===`email`||t===`url`||t===`phone`||t===`password`)return`text`;if(t===`textarea`||t===`markdown`||t===`html`||t===`richtext`)return`textarea`;if(t===`number`||t===`currency`||t===`percent`)return`number`;if(t===`date`||t===`datetime`||t===`time`)return`date-picker`;if(t===`boolean`||t===`toggle`)return`switch`;if(t===`select`||t===`radio`)return e.multiple?`multiselect`:`select`;if(t===`multiselect`||t===`checkboxes`||t===`tags`)return`string-tags`;if(t===`composite`)return`composite`;if(t===`repeater`)return`repeater`;if(t===`record`)return`record`;if(t===`lookup`||t===`master_detail`||t===`tree`)return`ref-object`;if(t===`image`||t===`file`||t===`avatar`||t===`video`||t===`audio`)return`file-upload`;if(t===`code`)return`code`;if(t===`json`||t===`location`||t===`address`)return`json`;if(t===`color`)return`color-picker`;if(t===`rating`)return`number`;if(t===`slider`)return`slider`;if(t===`signature`)return`signature`;if(t===`qrcode`)return`qrcode`;if(t===`progress`)return`number`;if(t===`formula`||t===`summary`||t===`autonumber`)return`text`;if(t===`vector`)return`json`}if(t){let e=t.type;if(e===`array`&&Array.isArray(t.items?.enum))return`multiselect`;if(e===`array`&&t.items?.type===`string`)return`string-tags`;if(e===`array`&&t.items?.type===`object`)return`master-detail`;if(e===`object`)return`object-fields`;if(e===`boolean`)return`switch`;if(e===`number`||e===`integer`)return`number`;if(Array.isArray(t.enum))return`select`;if(e===`string`){if(t.format===`date`||t.format===`date-time`)return`date-picker`;if(t.format===`email`||t.format===`uri`||t.format===`uri-reference`)return`text`;if(t.format===`multiline`)return`textarea`}}}function wr(e,t,n){if(n?.objectFields&&!Array.isArray(t?.enum)){if(t?.type===`array`&&t.items?.type===`string`&&(/Fields$/.test(e)||e===`columns`||e===`fieldOrder`))return`field-multi`;if((t?.type===`string`||Array.isArray(t?.anyOf)&&t.anyOf.some(e=>e?.type===`string`))&&(/.Field$/.test(e)||e===`field`))return`field-ref`}}function Tr(e,t){if(!Array.isArray(t?.enum)&&(t?.type===`string`||Array.isArray(t?.anyOf)&&t.anyOf.some(e=>e?.type===`string`))&&(e===`icon`||/Icon$/.test(e)))return`icon`}function Er(e,t){if((t?.type===`string`||Array.isArray(t?.enum)||Array.isArray(t?.anyOf)&&t.anyOf.some(e=>e?.type===`string`))&&(e===`color`||e===`colorVariant`||/Color$/.test(e)))return`color-picker`}function Dr(e,t,n){return e===`color-picker`||e===`color-input`?or(t,n):e}function Or({fieldSpec:e,widget:t,schema:n,value:r}){if(e?.type===`composite`)return{kind:`composite`};if(e?.type===`repeater`)return{kind:`repeater`,itemSchema:Sr(n,r)};if(e?.type===`record`)return{kind:`record`,itemSchema:n?.additionalProperties??{}};let i=xr(n,r)??n??{},a=e=>e?.type===`object`&&!!e.properties&&typeof e.properties==`object`,o=e=>{if(e?.type!==`array`||!e.items||typeof e.items!=`object`)return;let t=xr(e.items,Array.isArray(r)&&r.length?r[0]:void 0);return a(t)?t:void 0};if(t){if(mr[t])return{kind:`registered`,widget:t};if(a(i))return{kind:`nested-form`,effective:i};let e=o(i);if(e)return{kind:`object-rows`,effective:i,itemSchema:e};if(!br.has(t))return{kind:`raw-json`,hint:t}}let s=i?.type,c=Array.isArray(e?.options)&&e.options.length>0,l=Array.isArray(i?.enum)&&i.enum.length>0;if(c||l||s===`boolean`||t===`switch`||e?.type===`boolean`||e?.type===`toggle`||s===`number`||s===`integer`||s===`string`)return{kind:`scalar`,effective:i};if(s===`array`){let e=i?.items??{};if(e.type===`string`||e.type===`number`||e.type===`integer`)return{kind:`scalar`,effective:i}}if(a(i))return{kind:`nested-form`,effective:i};let u=o(i);return u?{kind:`object-rows`,effective:i,itemSchema:u}:{kind:`raw-json`}}function kr(e){switch(e.kind){case`registered`:return gr(e.widget);case`composite`:case`repeater`:case`record`:case`nested-form`:case`object-rows`:return`group`;case`raw-json`:case`scalar`:return`control`}}var Ar=new Set([`visible`,`hidden`,`disabled`,`visibleOn`,`condition`,`predicate`]);function jr(e,t){if(!Array.isArray(t?.enum)&&(t?.type===`string`||Array.isArray(t?.anyOf)&&t.anyOf.some(e=>e?.type===`string`))&&(Ar.has(e)||/When$/.test(e)))return`condition`}var Mr=/(^|_)(secret|token|api[_-]?key|access[_-]?key|client[_-]?secret|credential|private[_-]?key|passphrase)$/i;function Nr(e,t){if(t?.format===`password`||t?.writeOnly===!0||!Array.isArray(t?.enum)&&(t?.type===`string`||Array.isArray(t?.anyOf)&&t.anyOf.some(e=>e?.type===`string`))&&Mr.test(e))return`secret`}function Pr(e){return e?.visibleWhen??e?.visibleOn}function Fr({schema:e,form:t,value:n,onChange:r,issues:i=[],hiddenFields:o=[],fieldOrder:s=[],readOnly:c=!1,createMode:l=!1,widgetContext:u,idPath:d}){let f=U(),p=a(),m=K.useMemo(()=>{let e={};for(let t of i)(e[t.path]??=[]).push(ge(t.message,f));return e},[i,f]),h=e;if(!h||typeof h!=`object`){if(n&&typeof n==`object`)h=ei(n);else return(0,q.jsx)($r,{value:n,onChange:r,readOnly:c})}let g=h.properties??{},_=Array.isArray(h.required)?h.required:[],v=n??{},y=ri(Object.keys(g),s).filter(e=>!o.includes(e)).filter(e=>{let t=Pr(g[e]);return!t||Xe(t,J(v,p))}),b=n??{};function x(e,t){let n={...b,[e]:t};(t===void 0||t===``)&&delete n[e],r(n)}if(t?.sections?.length){let e=[];for(let n of t.sections)for(let t of n.fields)e.push(typeof t==`string`?t:t.field);let n=e.filter(e=>g[e]).length;if(e.length===0||n>0)return(0,q.jsx)(Wr,{form:t,props:g,idPath:d,required:_,hiddenFields:o,issuesByPath:m,value:b,readOnly:c,createMode:l,widgetContext:u,onChange:x});typeof console<`u`&&console.warn(`[SchemaForm] form layout declares no fields that exist in the schema; falling back to flat schema-driven rendering. Declared:`,e,`Available:`,Object.keys(g))}return(0,q.jsx)(`div`,{className:`space-y-4`,children:y.map(e=>(0,q.jsx)(Kr,{name:e,idPath:d,schema:g[e],value:b[e],required:_.includes(e),issues:m[e],readOnly:c,widgetContext:u,fieldSpec:g[e]?.widget?{field:e,widget:g[e].widget}:void 0,formData:b,onChange:t=>x(e,t)},e))})}var Ir=`drawer-metadata`,Lr=`drawer-embedded-item`,Rr=K.createContext(!1),zr=K.createContext(!1),Br=()=>!1;function Vr(e){let t=K.useRef(null);K.useEffect(()=>{if(!e||!Br()||typeof document>`u`)return;let n=new Set,r=[];for(let e of Array.from(document.querySelectorAll(`[id^="mdf-"]`))){let t=e.id;n.has(t)?r.includes(t)||r.push(t):n.add(t)}let i=r.join(`,`);i!==t.current&&(t.current=i,r.length!==0&&console.error(`[SchemaForm] duplicate field host id(s) in this document: ${r.join(`, `)}. Two SchemaForm instances are mounted at once — the metadata detail drawer sits on top of the page form, which stays in the DOM — and at least one of them renders unscoped top-level ids. A \`label[for]\` resolves to the FIRST match in the document, so the later form's labels name and focus the earlier form's controls (objectui#5092). Give the secondary form a distinct \`idPath\` scope segment — see DRAWER_METADATA_ID_SCOPE / DRAWER_EMBEDDED_ITEM_ID_SCOPE in SchemaForm.tsx.`))})}function Hr(e){let t=K.useContext(Rr),n=K.useContext(zr);Vr(!t);let r=e.createMode===!0||n;return(0,q.jsx)(Rr.Provider,{value:!0,children:(0,q.jsx)(zr.Provider,{value:r,children:(0,q.jsx)(Fr,{...e})})})}function Ur(e){return typeof e==`string`?{field:e}:e}function Wr({form:e,props:t,required:n,hiddenFields:r,issuesByPath:i,value:o,readOnly:s,createMode:c,widgetContext:u,idPath:d,onChange:f}){let p=U(),m=a(),g=(e.sections??[]).filter(e=>{let t=Pr(e);return!t||Xe(t,J(o,m))}),v=e.type===`tabbed`&&g.length>1,y=(e,a)=>{let l=e.fields.map(Ur).filter(e=>{if(e.hidden||r.includes(e.field))return!1;let t=Pr(e);return!(t&&!Xe(t,J(o,m)))});if(l.length===0)return null;let g=e.columns??1,_=(0,q.jsx)(`div`,{className:`grid gap-4`,style:{gridTemplateColumns:`repeat(${g}, minmax(0, 1fr))`},children:l.map(e=>{let r=t[e.field];return r?(0,q.jsx)(`div`,{style:{gridColumn:`span ${e.colSpan??1}`},children:(0,q.jsx)(Kr,{name:e.field,idPath:d,schema:{...r,...e.label?{title:e.label}:{},...e.helpText?{description:e.helpText}:{},...e.placeholder?{placeholder:e.placeholder}:{}},value:o[e.field],required:e.required??n.includes(e.field),issues:i[e.field],readOnly:s||e.readonly||e.immutable&&!c,fieldSpec:e,widgetContext:u,formData:o,onChange:t=>f(e.field,t)})},e.field):(0,q.jsx)(`div`,{className:`rounded border border-dashed border-amber-500/40 bg-amber-500/5 p-2 text-xs text-amber-700 dark:text-amber-300`,style:{gridColumn:`span ${e.colSpan??1}`},children:W(`engine.form.missingField`,p,{field:e.field})},e.field)})});return e.collapsible&&e.label?(0,q.jsxs)(ce,{defaultOpen:!e.collapsed,className:`rounded-md border border-border/40 bg-card/30`,children:[(0,q.jsxs)(h,{className:`group flex w-full items-center justify-between gap-2 p-4 text-left`,children:[(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`span`,{className:`block text-sm font-semibold text-foreground/90`,children:e.label}),e.description&&(0,q.jsx)(`span`,{className:`mt-0.5 block text-xs text-muted-foreground`,children:e.description})]}),(0,q.jsx)(z,{className:`h-4 w-4 shrink-0 text-muted-foreground transition-transform group-data-[state=closed]:-rotate-90`})]}),(0,q.jsx)(M,{className:`space-y-3 px-4 pb-4`,children:_})]},a):(0,q.jsxs)(`section`,{className:`space-y-3 rounded-md border border-border/40 bg-card/30 p-4`,children:[e.label&&(0,q.jsxs)(`header`,{children:[(0,q.jsx)(`h3`,{className:`text-sm font-semibold text-foreground/90`,children:e.label}),e.description&&(0,q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.description})]}),_]},a)};if(v){let e=g.filter(e=>e.fields.map(Ur).some(e=>{if(e.hidden||r.includes(e.field))return!1;let t=Pr(e);return!t||Xe(t,J(o,m))}));if(e.length===0)return null;let t=(e[0].label??`section-0`).toLowerCase();return(0,q.jsxs)(pe,{defaultValue:t,className:`w-full`,children:[(0,q.jsx)(P,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>(0,q.jsx)(_,{value:(e.label??`section-${t}`).toLowerCase(),children:e.label??`Section ${t+1}`},t))}),e.map((e,t)=>(0,q.jsx)(l,{value:(e.label??`section-${t}`).toLowerCase(),className:`mt-4`,children:y(e,t)},t))]})}return(0,q.jsx)(`div`,{className:`space-y-4`,children:g.map(y)})}function $(e,t){return e?`${e}.${t}`:String(t)}function Gr(e){return`mdf-${e}`}function Kr({name:e,idPath:t,schema:n,value:r,required:i,issues:a,readOnly:o,fieldSpec:s,widgetContext:l,formData:u,onChange:d}){let f=U(),p=K.useContext(zr),[m,h]=K.useState(!1),g=K.useCallback(()=>h(!0),[]),_=!p||m?a:void 0,v=K.useCallback(e=>{h(!0),d(e)},[d]),y=s?.label||_e(e,n?.title,f)||ni(e),b=s?.helpText||ve(e,n?.description,f),x=$(t,e),S=Gr(x),C=Cr(s,n);if(!s?.widget){let t=wr(e,n,l);if(t)C=t;else{let t=Nr(e,n);if(t)C=t;else{let t=Tr(e,n);if(t)C=t;else{let t=Er(e,n);if(t)C=t;else{let t=jr(e,n);t&&(C=t)}}}}}C=Dr(C,n,s);let w=kr(Or({fieldSpec:s,widget:C,schema:n,value:r}))===`group`,T=w?`${S}-label`:void 0,E=w?{id:void 0,ariaLabelledBy:T}:{id:S,ariaLabelledBy:void 0},D=w?{id:T}:{htmlFor:S},O=n?.type===`boolean`||C===`switch`,k=n?.default!==void 0,A=i&&!(O&&k),j=ni(e).toLowerCase()===y.toLowerCase();return O?(0,q.jsxs)(`div`,{className:`flex items-start justify-between gap-3 py-1.5`,onBlur:g,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(c,{...D,className:`text-sm font-medium cursor-pointer`,children:[y,A&&(0,q.jsx)(`span`,{className:`text-destructive ml-0.5`,children:`*`})]}),b&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground mt-0.5`,children:b}),_?.map((e,t)=>(0,q.jsx)(`div`,{"data-testid":`schema-form-issue`,className:`text-xs text-destructive mt-0.5`,children:e},t))]}),(0,q.jsx)(qr,{id:E.id,ariaLabelledBy:E.ariaLabelledBy,fieldName:e,idPath:x,schema:n,value:r,onChange:v,readOnly:o,widget:C,fieldSpec:s,widgetContext:l,formData:u})]}):(0,q.jsxs)(`div`,{className:`space-y-1.5`,onBlur:g,children:[(0,q.jsx)(`div`,{className:`flex items-center justify-between gap-2`,children:(0,q.jsxs)(c,{...D,className:`text-sm font-medium`,children:[y,A&&(0,q.jsx)(`span`,{className:`text-destructive ml-0.5`,children:`*`}),!j&&(0,q.jsx)(`code`,{className:`ml-2 text-[10px] font-mono text-muted-foreground/70`,title:`Machine name`,children:e})]})}),(0,q.jsx)(qr,{id:E.id,ariaLabelledBy:E.ariaLabelledBy,fieldName:e,idPath:x,schema:n,value:r,onChange:v,readOnly:o,widget:C,fieldSpec:s,widgetContext:l,formData:u}),b&&(0,q.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:b}),_?.map((e,t)=>(0,q.jsx)(`div`,{"data-testid":`schema-form-issue`,className:`text-xs text-destructive`,children:e},t))]})}function qr({id:e,ariaLabelledBy:t,fieldName:n,idPath:r,schema:i,value:o,onChange:s,readOnly:c,widget:l,fieldSpec:u,widgetContext:d,formData:f}){let h=U(),g=a(),_=Or({fieldSpec:u,widget:l,schema:i,value:o});if(_.kind===`composite`){let e=u?.fields?.length?u.fields:ii(i);return(0,q.jsx)(Xr,{value:o,fields:e,schema:i,readOnly:c,widgetContext:d,fieldSpec:u,ariaLabelledBy:t,idPath:r,onChange:s})}if(_.kind===`repeater`){let e=_.itemSchema,n=u?.fields?.length?u.fields:ii(e);return(0,q.jsx)(Zr,{value:o,fields:n,schema:{...i,items:e},readOnly:c,widgetContext:d,widget:u?.widget,ariaLabelledBy:t,idPath:r,onChange:s})}if(_.kind===`record`){let e=_.itemSchema,n=u?.fields?.length?u.fields:ii(e);return(0,q.jsx)(Qr,{value:o,fields:n,schema:i,readOnly:c,widgetContext:d,widget:u?.widget,keyField:u?.keyField,formData:f,ariaLabelledBy:t,idPath:r,onChange:s})}if(_.kind===`registered`){let n=mr[_.widget];return(0,q.jsx)(n,{id:e,ariaLabelledBy:t,schema:i,value:o,onChange:s,readOnly:c,context:d,fieldSpec:u,formData:f})}if(_.kind===`nested-form`)return(0,q.jsx)(`div`,{className:`rounded-md border border-border/40 bg-card/30 p-3`,role:`group`,"aria-labelledby":t,children:(0,q.jsx)(Hr,{schema:_.effective,value:o??{},onChange:e=>s(e),readOnly:c,widgetContext:d,idPath:r})});if(_.kind===`object-rows`)return(0,q.jsx)(Zr,{value:o,fields:ii(_.itemSchema),schema:{..._.effective,items:_.itemSchema},readOnly:c,widgetContext:d,widget:u?.widget,ariaLabelledBy:t,idPath:r,onChange:s});if(_.kind===`raw-json`)return _.hint?(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)($r,{id:e,ariaLabelledBy:t,value:o,onChange:e=>s(e),readOnly:c}),(0,q.jsx)(`div`,{className:`text-[10px] text-muted-foreground`,children:W(`engine.form.fallbackJson`,h,{widget:_.hint})})]}):(0,q.jsx)($r,{id:e,ariaLabelledBy:t,value:o,onChange:s,readOnly:c,small:!0});let y=_.effective,b=y?.type,x=u?.options,C=y?.enum??void 0;if(Array.isArray(x)&&x.length>0)return(0,q.jsxs)(H,{value:o==null?``:String(o),onValueChange:e=>s(e),disabled:c,children:[(0,q.jsx)(p,{id:e,"aria-labelledby":t,children:(0,q.jsx)(S,{placeholder:G(`engine.form.selectEllipsis`,h)})}),(0,q.jsx)(j,{children:Ye(x,J(f,g)).map(e=>(0,q.jsxs)(m,{value:e.value,children:[e.label,e.color&&(0,q.jsx)(`span`,{className:`ml-2 inline-block h-3 w-3 rounded`,style:{backgroundColor:e.color}})]},e.value))})]});if(Array.isArray(C)&&C.length>0)return(0,q.jsxs)(H,{value:o==null?``:String(o),onValueChange:e=>s(e),disabled:c,children:[(0,q.jsx)(p,{id:e,"aria-labelledby":t,children:(0,q.jsx)(S,{placeholder:G(`engine.form.selectEllipsis`,h)})}),(0,q.jsx)(j,{children:C.map(e=>(0,q.jsx)(m,{value:String(e),children:ye(n??``,String(e),h)},String(e)))})]});if(b===`boolean`||l===`switch`||u?.type===`boolean`||u?.type===`toggle`)return(0,q.jsx)(I,{id:e,"aria-labelledby":t,checked:!!o,onCheckedChange:e=>s(e),disabled:c});if(b===`number`||b===`integer`){let n=u?.min,r=u?.max;return(0,q.jsx)(v,{id:e,"aria-labelledby":t,type:`number`,value:o==null?``:String(o),min:n,max:r,onChange:e=>{let t=e.target.value;if(t===``)return s(void 0);let n=b===`integer`?parseInt(t,10):Number(t);s(Number.isFinite(n)?n:void 0)},readOnly:c})}if(b===`string`){let n=u?.maxLength;return y?.format===`multiline`||y?.contentMediaType===`text/markdown`||typeof o==`string`&&o.length>80?(0,q.jsx)(T,{id:e,"aria-labelledby":t,rows:4,value:o??``,maxLength:n,onChange:e=>s(e.target.value||void 0),readOnly:c}):(0,q.jsx)(v,{id:e,"aria-labelledby":t,value:o??``,maxLength:n,onChange:e=>s(e.target.value||void 0),readOnly:c})}if(b===`array`){let n=y?.items??{};if(n.type===`string`||n.type===`number`||n.type===`integer`)return(0,q.jsx)(v,{id:e,"aria-labelledby":t,value:(Array.isArray(o)?o:[]).map(String).join(`, `),placeholder:G(`engine.form.arrayPlaceholder`,h),onChange:e=>{let t=e.target.value.split(`,`).map(e=>e.trim()).filter(Boolean);n.type===`number`||n.type===`integer`?s(t.map(e=>Number(e)).filter(e=>Number.isFinite(e))):s(t)},readOnly:c})}return(0,q.jsx)($r,{id:e,ariaLabelledBy:t,value:o,onChange:s,readOnly:c,small:!0})}function Jr(e,t,n){if(!e)return{};let r;return r=t===`composite`?e.properties:t===`repeater`?e.items?.properties:e.additionalProperties?.properties,r?.[n]??{}}function Yr(e,t){let n=[];for(let r of t){let t=e[r.field];if(t==null||t===``||t===!1)continue;let i=r.label||r.field;t===!0?n.push(i):Array.isArray(t)?t.length&&n.push(t.map(e=>typeof e==`object`&&e?e.field??e.name??``:String(e)).filter(Boolean).join(`, `)):typeof t==`object`?n.push(i):n.push(String(t))}return n.join(` · `)}function Xr({value:e,fields:t,schema:n,readOnly:r,widgetContext:i,fieldSpec:a,ariaLabelledBy:o,idPath:s,onChange:c}){let l=e&&typeof e==`object`&&!Array.isArray(e)?e:{},u=t.map(Ur),d=u.map(e=>{let t=Jr(n,`composite`,e.field);return(0,q.jsx)(Kr,{name:e.field,idPath:s,schema:t,value:l[e.field],required:!!e.required,readOnly:r||e.readonly,fieldSpec:e,widgetContext:i,formData:l,onChange:t=>c({...l,[e.field]:t})},e.field)});if(a?.disclosure===`popover`){let e=Yr(l,u);return(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 rounded-md border border-border/50 bg-muted/20 px-3 py-1.5`,role:`group`,"aria-labelledby":o,children:[(0,q.jsx)(`span`,{className:`text-sm text-muted-foreground truncate`,title:e,children:e||(0,q.jsx)(`span`,{className:`italic opacity-70`,children:`Not configured`})}),(0,q.jsxs)(x,{children:[(0,q.jsx)(g,{asChild:!0,children:(0,q.jsx)(F,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0 shrink-0`,"aria-label":`Configure`,"data-testid":`composite-popover-${a.field}`,children:(0,q.jsx)(ae,{className:`h-4 w-4`})})}),(0,q.jsx)(C,{align:`end`,className:`w-80 space-y-3`,children:d})]})]})}return(0,q.jsx)(`div`,{className:`rounded-md border border-border/50 bg-muted/20 p-3 space-y-3`,role:`group`,"aria-labelledby":o,children:d})}function Zr({value:e,fields:t,schema:n,readOnly:r,widgetContext:i,widget:a,ariaLabelledBy:o,idPath:s,onChange:c}){let l=U(),u=Array.isArray(e)?e:[],d=t.map(Ur),[p,m]=K.useState(null),h=a===`grid`||a===`table`,g=(e,t)=>Gr($($(s,e),t)),_=e=>`${Gr($(s,e))}-col`,v=(e,t)=>{c(u.map((n,r)=>r===e?{...n,...t}:n))},y=e=>c(u.filter((t,n)=>n!==e)),b=()=>{let e={};d.forEach(t=>{e[t.field]=void 0}),c([...u,e]),m(u.length)};return h?(0,q.jsxs)(`div`,{className:`space-y-2`,role:`group`,"aria-labelledby":o,children:[(0,q.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border/50`,children:(0,q.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,q.jsx)(`thead`,{className:`bg-muted/40`,children:(0,q.jsxs)(`tr`,{children:[d.map(e=>(0,q.jsxs)(`th`,{id:_(e.field),scope:`col`,className:`px-2 py-1.5 text-left text-xs font-medium`,children:[e.label||ni(e.field),e.required&&(0,q.jsx)(`span`,{className:`text-destructive ml-0.5`,children:`*`})]},e.field)),!r&&(0,q.jsx)(`th`,{scope:`col`,className:`w-8`})]})}),(0,q.jsxs)(`tbody`,{children:[u.length===0&&(0,q.jsx)(`tr`,{children:(0,q.jsx)(`td`,{colSpan:d.length+1,className:`px-2 py-3 text-center text-xs text-muted-foreground`,children:G(`engine.repeater.empty`,l)})}),u.map((e,t)=>(0,q.jsxs)(`tr`,{className:`border-t border-border/30 align-top`,children:[d.map(a=>{let o=Jr(n,`repeater`,a.field);return(0,q.jsx)(`td`,{className:`p-1.5`,children:(0,q.jsx)(qr,{id:g(t,a.field),ariaLabelledBy:_(a.field),fieldName:a.field,idPath:$($(s,t),a.field),schema:o,value:e?.[a.field],readOnly:r||a.readonly,widget:Cr(a,o),fieldSpec:a,widgetContext:i,formData:e,onChange:e=>v(t,{[a.field]:e})})},a.field)}),!r&&(0,q.jsx)(`td`,{className:`p-1.5 text-right`,children:(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>y(t),className:`h-7 w-7 p-0`,"aria-label":G(`engine.form.remove`,l),children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})})]},t))]})]})}),!r&&(0,q.jsxs)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:b,children:[(0,q.jsx)(f,{className:`h-3.5 w-3.5 mr-1`}),` `,G(`engine.form.add`,l)]})]}):(0,q.jsxs)(`div`,{className:`space-y-2`,role:`group`,"aria-labelledby":o,children:[u.length===0&&(0,q.jsx)(`div`,{className:`rounded-md border border-dashed border-border/50 px-3 py-4 text-center text-xs text-muted-foreground`,children:G(`engine.list.empty`,l)}),u.map((e,t)=>{let a=p===t,o=d.map(t=>e?.[t.field]).find(e=>e!=null&&e!==``);return(0,q.jsxs)(`div`,{className:`rounded-md border border-border/50 bg-muted/10`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-2 py-1.5 border-b border-border/30`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>m(a?null:t),className:`flex items-center gap-1.5 text-sm font-medium text-left flex-1 min-w-0`,children:[a?(0,q.jsx)(z,{className:`h-3.5 w-3.5`}):(0,q.jsx)(V,{className:`h-3.5 w-3.5`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`#`,t+1,o==null?``:` — ${String(o)}`]})]}),!r&&(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>y(t),className:`h-7 w-7 p-0`,"aria-label":G(`engine.form.remove`,l),children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})]}),a&&(0,q.jsx)(`div`,{className:`p-3 space-y-3`,children:d.map(a=>{let o=Jr(n,`repeater`,a.field);return(0,q.jsx)(Kr,{name:a.field,idPath:$(s,t),schema:o,value:e?.[a.field],required:!!a.required,readOnly:r||a.readonly,fieldSpec:a,widgetContext:i,formData:e,onChange:e=>v(t,{[a.field]:e})},a.field)})})]},t)}),!r&&(0,q.jsxs)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:b,children:[(0,q.jsx)(f,{className:`h-3.5 w-3.5 mr-1`}),` `,G(`engine.form.addItem`,l)]})]})}function Qr({value:e,fields:t,schema:n,readOnly:r,widgetContext:i,widget:o,keyField:s,formData:c,ariaLabelledBy:l,idPath:u,onChange:d}){let p=U(),m=a(),[h,g]=K.useState(null),[_,y]=K.useState(``),[x,S]=K.useState(null),[C,w]=K.useState(null),[T,D]=K.useState(null);if(o){let a=mr[o];if(a)return(0,q.jsx)(a,{ariaLabelledBy:l,schema:n,value:e,onChange:d,readOnly:r,context:i,fieldSpec:{field:``,type:`record`,fields:t,widget:o},formData:c})}let O=s?.field??`name`,k=s?.label??ni(O),A=s?.regex?new RegExp(s.regex):null,j=s?.immutable!==!1,M=e&&typeof e==`object`&&!Array.isArray(e)?e:{},N=Object.entries(M),P=t.map(Ur).filter(e=>e.field!==O),ee=e=>d(e),I=(e,t)=>{let n={};for(let[r,i]of N)n[r]=r===e?{...i,...t}:i;ee(n)},te=e=>{let t={};for(let[n,r]of N)n!==e&&(t[n]=r);ee(t)},L=(e,t)=>{if(t===e)return;if(M[t]){S(W(`engine.form.keyExists`,p,{key:t}));return}if(A&&!A.test(t)){S(W(`engine.form.keyPattern`,p,{pattern:String(A)}));return}let n={};for(let[r,i]of N)r===e?n[t]={...i,[O]:t}:n[r]=i;S(null),ee(n)},R=()=>{let e=_.trim();if(!e){S(G(`engine.form.keyRequired`,p));return}if(M[e]){S(W(`engine.form.keyExists`,p,{key:e}));return}if(A&&!A.test(e)){S(W(`engine.form.keyPattern`,p,{pattern:String(A)}));return}let t={[O]:e};P.forEach(e=>{t[e.field]=void 0}),ee({...M,[e]:t}),y(``),S(null),g(e)},ne=(e,t)=>{if(e===t)return;let n=N.map(([e])=>e),r=n.indexOf(e),i=n.indexOf(t);if(r<0||i<0)return;n.splice(r,1),n.splice(i,0,e);let a={};for(let e of n)a[e]=M[e];ee(a)};return(0,q.jsxs)(`div`,{className:`space-y-2`,role:`group`,"aria-labelledby":l,children:[N.length===0&&(0,q.jsx)(`div`,{className:`rounded-md border border-dashed border-border/50 px-3 py-4 text-center text-xs text-muted-foreground`,children:G(`engine.list.empty`,p)}),N.map(([e,t],a)=>{let o=h===e,c=P.map(e=>t?.[e.field]).find(e=>e!=null&&e!==``);return(0,q.jsxs)(`div`,{className:`rounded-md border bg-muted/10 ${T===e&&C&&C!==e?`border-primary border-2`:`border-border/50`}`,onDragOver:t=>{!C||r||(t.preventDefault(),T!==e&&D(e))},onDragLeave:()=>{T===e&&D(null)},onDrop:t=>{!C||r||(t.preventDefault(),ne(C,e),w(null),D(null))},children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-2 py-1.5 border-b border-border/30`,children:[!r&&(0,q.jsx)(`span`,{draggable:!0,onDragStart:t=>{w(e),t.dataTransfer.effectAllowed=`move`,t.dataTransfer.setData(`text/plain`,e)},onDragEnd:()=>{w(null),D(null)},className:`cursor-grab active:cursor-grabbing text-muted-foreground hover:text-foreground`,"aria-label":G(`engine.form.dragToReorder`,p),title:G(`engine.form.dragToReorder`,p),children:(0,q.jsx)(b,{className:`h-3.5 w-3.5`})}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>g(o?null:e),className:`flex items-center gap-1.5 text-sm font-medium text-left flex-1 min-w-0`,children:[o?(0,q.jsx)(z,{className:`h-3.5 w-3.5`}):(0,q.jsx)(V,{className:`h-3.5 w-3.5`}),(0,q.jsx)(`span`,{className:`font-mono text-xs px-1.5 py-0.5 rounded bg-muted/60`,children:e}),c!=null&&(0,q.jsxs)(`span`,{className:`truncate text-muted-foreground`,children:[`— `,String(c)]})]}),!r&&(0,q.jsx)(F,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>te(e),className:`h-7 w-7 p-0`,"aria-label":G(`engine.form.remove`,p),children:(0,q.jsx)(E,{className:`h-3.5 w-3.5`})})]}),o&&(0,q.jsxs)(`div`,{className:`p-3 space-y-3`,children:[(0,q.jsx)(Kr,{name:O,idPath:$(u,a),schema:{type:`string`},value:e,required:!0,readOnly:r||j,fieldSpec:{field:O,type:`text`,label:k,helpText:s?.helpText},widgetContext:i,formData:t,onChange:t=>L(e,String(t??``).trim())}),P.map(o=>{let s=Pr(o);if(s&&!Xe(s,J(t,m)))return null;let c=Jr(n,`record`,o.field);return(0,q.jsx)(Kr,{name:o.field,idPath:$(u,a),schema:c,value:t?.[o.field],required:!!o.required,readOnly:r||o.readonly,fieldSpec:o,widgetContext:i,formData:t,onChange:t=>I(e,{[o.field]:t})},o.field)})]})]},e)}),!r&&(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(v,{value:_,onChange:e=>{y(e.target.value),x&&S(null)},placeholder:s?.placeholder??k,className:`h-8 text-xs font-mono max-w-[220px]`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),R())}}),(0,q.jsxs)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:R,children:[(0,q.jsx)(f,{className:`h-3.5 w-3.5 mr-1`}),` `,G(`engine.form.add`,p)]}),x&&(0,q.jsx)(`span`,{className:`text-xs text-destructive`,children:x})]})]})}function $r({id:e,ariaLabelledBy:t,value:n,onChange:r,readOnly:i,small:a}){let o=U(),[s,c]=K.useState(()=>ti(n)),[l,u]=K.useState(null);return K.useEffect(()=>{c(ti(n)),u(null)},[JSON.stringify(n)]),(0,q.jsxs)(`div`,{className:`space-y-1`,children:[(0,q.jsx)(T,{id:e,"aria-labelledby":t,rows:a?4:12,className:`font-mono text-xs`,value:s,readOnly:i,onChange:e=>{let t=e.target.value;if(c(t),!t.trim()){u(null),r(void 0);return}try{let e=JSON.parse(t);u(null),r(e)}catch(e){u(e?.message??G(`engine.form.invalidJson`,o))}}}),l&&(0,q.jsx)(`div`,{className:`text-xs text-destructive`,children:l})]})}function ei(e){let t={};for(let[n,r]of Object.entries(e))if(!n.startsWith(`_`)){if(r==null)t[n]={type:`string`};else if(typeof r==`string`)t[n]=r.length>80||r.includes(`
3
+ `)?{type:`string`,format:`multiline`}:{type:`string`};else if(typeof r==`number`)t[n]={type:Number.isInteger(r)?`integer`:`number`};else if(typeof r==`boolean`)t[n]={type:`boolean`};else if(Array.isArray(r)){if(r.length>0&&typeof r[0]==`string`)t[n]={type:`array`,items:{type:`string`}};else if(r.length>0&&typeof r[0]==`object`&&r[0]!==null){let e=r[0],i={};for(let t of Object.keys(e))i[t]={type:`string`};t[n]={type:`array`,items:{type:`object`,properties:i}}}else t[n]={type:`array`,items:{type:`string`}}}else t[n]=typeof r==`object`?{type:`object`,additionalProperties:!0}:{type:`string`}}return{type:`object`,properties:t,additionalProperties:!0}}function ti(e){if(e===void 0)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function ni(e){return e.replace(/[_-]+/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function ri(e,t){if(!t.length)return e;let n=new Set(e),r=t.filter(e=>n.has(e)),i=e.filter(e=>!t.includes(e));return[...r,...i]}function ii(e){let t=e?.properties??{};return Object.keys(t)}export{wt as A,Fe as B,tn as C,$t as D,sn as E,je as F,Me as G,Se as H,Ie as I,Ne as J,De as K,Ve as L,yt as M,vt as N,Yt as O,He as P,Re as R,cn as S,dn as T,ke as U,Te as V,Pe as W,Ce as Y,nn as _,Nn as a,hn as b,xn as c,_n as d,yn as f,rn as g,on as h,Zn as i,Pt as j,zt as k,bn as l,pn as m,Ir as n,Sn as o,mn as p,Oe as q,Hr as r,Cn as s,Lr as t,Dn as u,gn as v,un as w,ln as x,an as y,we as z};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,b as n,g as r,h as i,r as a}from"./vendor-react-CsWFRkED.js";import{g as o}from"./infrastructure-B4zG1jNa.js";import{J as s,S as c,q as l,sr as u}from"./framework-DFE_Mws9.js";import{y as d}from"./i18n-locales-BBA090ve.js";import{In as f,Ms as p,Oo as m,Or as h,Pr as g,Qc as _,Tc as v,aa as y,kr as b,us as x}from"./ui-components-CMHDBJEm.js";import{i as S}from"./appRoute-DEVGXLLH.js";import{n as C}from"./utils-MjUhYVsx.js";import{o as w}from"./ui-layout-Jk_qY9Ni.js";import{t as T}from"./getIcon-B4Pp7Q-0.js";var E=e(n(),1),D=a();function O(e){let t=[];for(let n of e)n.type===`group`&&n.children?t.push(...O(n.children)):t.push(n);return t}var k={object:p,dashboard:m,page:x,report:v},A={object:`bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200`,dashboard:`bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-200`,page:`bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200`,report:`bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-200`};function j(){let{t:e}=d(),{appName:n}=i(),[a,m]=r(),v=a.get(`q`)||``,[x,j]=(0,E.useState)(v),{apps:M,objects:N}=s(),P=M||[],F=(0,E.useMemo)(()=>N||[],[N]),I=S(P,n)||P[0],L=`/apps/${n}`,{user:R,activeOrganization:z}=o(),B=l(),V=(0,E.useMemo)(()=>{if(!I)return[];let e=O(I.navigation||[]),t={currentUserId:R?.id??null,currentOrgId:z?.id??null};return e.map(e=>{let{href:n}=w(e,L,t);return{id:e.id,label:e.label||e.objectName||e.dashboardName||e.pageName||e.reportName||``,href:n,type:e.type,description:e.description}}).filter(e=>e.href!==`#`)},[I,L,R?.id]),H=(0,E.useMemo)(()=>{if(!x.trim())return V;let e=x.toLowerCase();return V.filter(t=>t.label.toLowerCase().includes(e)||t.type.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[V,x]),U=e=>{j(e),m(e?{q:e}:{})},W=(0,E.useMemo)(()=>{let e={};for(let t of H)(e[t.type]||=[]).push(t);return e},[H]),G=(0,E.useMemo)(()=>I?O(I.navigation||[]).filter(e=>e.type===`object`&&typeof e.objectName==`string`).map(e=>e.objectName):[],[I]),{results:K,isSearching:q}=c({query:x,objects:F,dataSource:B,objectNames:G,enabled:!!B&&x.trim().length>=2,topPerObject:5,maxObjectsQueried:12,getDisplayName:u}),J=(0,E.useMemo)(()=>{let e=new Map;for(let t of F)typeof t?.name==`string`&&e.set(t.name,t);return e},[F]),Y=(0,E.useMemo)(()=>{let t=[],n=new Map;for(let r of K){let i=n.get(r.objectName);if(!i){let a=J.get(r.objectName);i={label:C(a?.label,e)||r.objectLabel,icon:a?.icon??r.icon,hits:[]},n.set(r.objectName,i),t.push(r.objectName)}i.hits.push(r)}return t.map(e=>({objectName:e,...n.get(e)}))},[K,J,e]),X=H.length+K.length,Z=X>0;return(0,D.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6 max-w-4xl mx-auto`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsxs)(t,{to:L,className:`flex items-center gap-1 text-sm text-muted-foreground hover:text-foreground transition-colors`,children:[(0,D.jsx)(_,{className:`h-4 w-4`}),e(`search.back`)]}),(0,D.jsx)(`h1`,{className:`text-xl font-semibold`,children:e(`search.title`)})]}),(0,D.jsxs)(`div`,{className:`relative`,children:[(0,D.jsx)(`label`,{htmlFor:`search-results-input`,className:`sr-only`,children:e(`search.placeholder`)}),(0,D.jsx)(y,{className:`absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`,"aria-hidden":`true`}),(0,D.jsx)(f,{id:`search-results-input`,value:x,onChange:e=>U(e.target.value),placeholder:e(`search.placeholder`),className:`pl-10 h-11 text-base`,autoFocus:!0})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,D.jsx)(`span`,{children:x.trim()?e(X===1?`search.resultsCount`:`search.resultsCountPlural`,{count:X,query:x}):e(`search.itemsAvailable`,{count:V.length})}),q&&(0,D.jsx)(`span`,{"aria-hidden":!0,className:`inline-block h-1.5 w-1.5 rounded-full bg-primary motion-safe:animate-pulse`})]}),!Z&&!q?(0,D.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,D.jsx)(y,{className:`h-12 w-12 text-muted-foreground/30 mb-4`}),(0,D.jsx)(`p`,{className:`text-lg font-medium text-muted-foreground`,children:e(`search.noResults`)}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground/80 mt-1`,children:e(`search.noResultsHint`)})]}):(0,D.jsxs)(`div`,{className:`space-y-6`,children:[Y.map(e=>{let n=T(e.icon);return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`h2`,{className:`text-sm font-medium text-muted-foreground mb-2 flex items-center gap-1.5`,children:[(0,D.jsx)(n,{className:`h-4 w-4`}),e.label,(0,D.jsx)(g,{variant:`secondary`,className:`ml-1 text-xs`,children:e.hits.length})]}),(0,D.jsx)(`div`,{className:`grid gap-2`,children:e.hits.map(e=>{let n=T(e.icon);return(0,D.jsx)(t,{to:`${L}/${e.objectName}/record/${e.recordId}`,className:`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:(0,D.jsx)(h,{className:`hover:bg-accent/50 transition-colors cursor-pointer`,children:(0,D.jsxs)(b,{className:`flex items-center gap-3 p-3`,children:[(0,D.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded bg-primary/10 text-primary`,children:(0,D.jsx)(n,{className:`h-4 w-4`})}),(0,D.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,D.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.display}),e.subtitle&&(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:e.subtitle})]})]})})},`${e.objectName}:${e.recordId}`)})})]},`records:${e.objectName}`)}),Object.entries(W).map(([n,r])=>{let i=k[n]||p,a=`search.type${n.charAt(0).toUpperCase()}${n.slice(1)}s`;return(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`h2`,{className:`text-sm font-medium text-muted-foreground mb-2 flex items-center gap-1.5`,children:[(0,D.jsx)(i,{className:`h-4 w-4`}),e(a),(0,D.jsx)(g,{variant:`secondary`,className:`ml-1 text-xs`,children:r.length})]}),(0,D.jsx)(`div`,{className:`grid gap-2`,children:r.map(n=>{let r=k[n.type]||p,i=`search.badge${n.type.charAt(0).toUpperCase()}${n.type.slice(1)}`;return(0,D.jsx)(t,{to:n.href,className:`rounded-lg focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,children:(0,D.jsx)(h,{className:`hover:bg-accent/50 transition-colors cursor-pointer`,children:(0,D.jsxs)(b,{className:`flex items-center gap-3 p-3`,children:[(0,D.jsx)(`div`,{className:`flex h-8 w-8 items-center justify-center rounded ${A[n.type]||``}`,children:(0,D.jsx)(r,{className:`h-4 w-4`})}),(0,D.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,D.jsx)(`p`,{className:`text-sm font-medium truncate`,children:n.label}),n.description&&(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:n.description})]}),(0,D.jsx)(g,{variant:`outline`,className:`text-xs shrink-0`,children:e(i)})]})})},n.id)})})]},n)})]})]})}export{j as SearchResultsPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{b as t,p as n,r}from"./vendor-react-CsWFRkED.js";import{y as i}from"./i18n-locales-BBA090ve.js";import{Ar as a,Mr as o,Or as s,Pr as c,gn as l,jr as u,kr as d,na as f}from"./ui-components-CMHDBJEm.js";import{c as p,i as m,n as h,t as g}from"./useSettingsLabel-CW2sBbmj.js";var _=e(t(),1),v=r();function y({m:e,onOpen:t}){let{t:n}=i(),r=g(e.namespace),l=e.icon?p(e.icon):f,m=h(e.label),_=r.title(m),y=r.description(e.description??void 0);return(0,v.jsxs)(s,{className:`cursor-pointer hover:border-primary/50 hover:shadow-sm transition-all`,onClick:t,children:[(0,v.jsxs)(u,{className:`pb-3`,children:[(0,v.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,v.jsx)(l,{className:`h-6 w-6 text-muted-foreground`}),e.beta?(0,v.jsx)(c,{variant:`secondary`,className:`text-[10px]`,children:n(`console.settingsHub.beta`)}):null]}),(0,v.jsx)(o,{className:`text-base mt-2`,children:_}),y?(0,v.jsx)(a,{className:`text-xs`,children:y}):null]}),(0,v.jsx)(d,{className:`pt-0`,children:(0,v.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:n(`console.settingsHub.settingsCount`,{n:e.specifiers.length})})})]})}function b(){let e=n(),{t}=i(),[r,a]=(0,_.useState)(null),[o,c]=(0,_.useState)(null);(0,_.useEffect)(()=>{m().then(e=>a(e.manifests??[])).catch(e=>c(e?.message??t(`console.settingsHub.loadError`)))},[t]);let u=(0,_.useMemo)(()=>{if(!r)return null;let e=new Map;for(let t of[...r].sort((e,t)=>(e.order??999)-(t.order??999))){let n=t.category??`Other`,r=e.get(n)??[];r.push(t),e.set(n,r)}return e},[r]);return(0,v.jsxs)(`div`,{className:`p-6 max-w-6xl mx-auto`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,v.jsx)(f,{className:`h-7 w-7 text-muted-foreground`}),(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:t(`console.settingsHub.title`)}),(0,v.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:t(`console.settingsHub.subtitle`)})]})]}),o?(0,v.jsx)(s,{children:(0,v.jsx)(d,{className:`py-8 text-center text-sm text-destructive`,children:o})}):null,r?r.length===0?(0,v.jsx)(s,{children:(0,v.jsx)(d,{className:`py-12 text-center text-sm text-muted-foreground`,children:t(`console.settingsHub.empty`)})}):Array.from(u??[]).map(([n,r])=>(0,v.jsxs)(`section`,{className:`mb-8`,children:[(0,v.jsx)(`h2`,{className:`text-sm font-semibold tracking-wide uppercase text-muted-foreground mb-3`,children:t(`console.settingsHub.categories.${n}`,{defaultValue:n})}),(0,v.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:r.map(t=>(0,v.jsx)(y,{m:t,onOpen:()=>e(`/system/settings/${t.namespace}`)},t.namespace))})]},n)):(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsx)(l,{className:`h-6 w-32`}),(0,v.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:Array.from({length:3}).map((e,t)=>(0,v.jsx)(l,{className:`h-32 w-full`},t))})]})]})}export{b as SettingsHub};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{b as t,h as n,p as r,r as i}from"./vendor-react-CsWFRkED.js";import{l as a}from"./framework-DFE_Mws9.js";import{y as o}from"./i18n-locales-BBA090ve.js";import{An as s,Bn as c,Br as l,Cn as u,Dn as d,Dr as f,En as p,In as m,Io as h,On as g,Or as _,Pr as v,Qc as y,Rr as b,Rt as x,Tn as S,Xr as C,Xt as w,Yt as T,_o as E,ea as D,fa as O,gn as k,jn as A,kr as j,pc as M,vo as N,wn as P,zr as F}from"./ui-components-CMHDBJEm.js";import{r as I}from"./vendor-ui-utils-BFw4cGI6.js";import{a as L,c as R,n as z,o as B,r as V,s as H,t as U}from"./useSettingsLabel-CW2sBbmj.js";var W=e(t(),1),G=i();function K({reason:e,className:t}){return(0,G.jsxs)(v,{variant:`outline`,className:`gap-1 border-amber-300 bg-amber-50 text-amber-900 ${t??``}`,title:e??`Pinned by environment variable — cannot be edited from the UI.`,children:[(0,G.jsx)(E,{className:`h-3 w-3`}),`Locked by env`]})}function q({resolved:e,labels:t}){let n=e.cascadeChain;if(!n||n.length===0)return null;let r=n.find(e=>e.effective)??n[n.length-1],i=n.find(e=>e!==r&&e.value!==null&&e.value!==void 0),a=e=>t?.sourceLabel?.(e)??e;return r.scope!=="default"&&r.scope!==`user`&&r.scope!==`tenant`?(0,G.jsxs)(v,{variant:`outline`,className:`text-blue-700 border-blue-300 text-[10px]`,children:[`Inherited from `,a(r.scope)]}):i?(0,G.jsxs)(v,{variant:`outline`,className:`text-amber-700 border-amber-300 text-[10px]`,children:[`Overrides `,a(i.scope)]}):null}function J({spec:e,resolved:t,labelText:n,labels:r}){return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(c,{className:`text-sm font-medium`,children:[n,e.required?(0,G.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`}):null]}),e.deprecated?(0,G.jsxs)(v,{variant:`outline`,className:`text-amber-700 border-amber-300`,children:[`Deprecated`,e.replacedBy?` → ${e.replacedBy}`:``]}):null,t?.locked?(0,G.jsx)(K,{reason:t.lockedReason}):null,t&&!t.locked?(0,G.jsx)(q,{resolved:t,labels:r}):null,t?.source&&t.source!=="default"&&!t.locked?(0,G.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:r?.sourceLabel?.(t.source)??t.source}):null]})}function Y({description:e}){return e?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e}):null}function X({id:e,message:t}){return(0,G.jsx)(`p`,{id:e,role:`alert`,className:`text-xs text-destructive mt-1`,children:t})}function Z({id:e,value:t,options:n,disabled:r,onChange:i,...a}){let o=`${e}-domain`;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(m,{id:e,type:`text`,list:n.length>0?o:void 0,value:t==null?``:String(t),disabled:r,onChange:e=>i(e.target.value),...a}),n.length>0?(0,G.jsx)(`datalist`,{id:o,children:n.map(e=>(0,G.jsx)(`option`,{value:e.value,children:e.label},e.value))}):null]})}function Q(e){let{spec:t,resolved:n,value:r,onChange:i,onAction:a,locked:o,saving:_,labels:v,error:y}=e,E=(0,W.useId)(),D=!!(o||_),O=z(t.label),k=t.key&&v?v.fieldLabel(t.key,O):O,j=t.key&&v?v.fieldHelp(t.key,t.description):t.description;if(t.type===`group`){let e=t.id&&v?v.groupTitle(t.id,O):O,n=t.id&&v?v.groupDescription(t.id,t.description):t.description;return(0,G.jsxs)(`div`,{className:`pt-6 pb-2`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-semibold tracking-tight text-foreground/90`,children:e}),n?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:n}):null,(0,G.jsx)(u,{className:`mt-3`})]})}if(t.type===`info_banner`){let e=t.bannerSeverity===`error`?`destructive`:`default`;return(0,G.jsxs)(b,{variant:e,className:`my-2`,children:[(0,G.jsx)(h,{className:`h-4 w-4`}),(0,G.jsx)(l,{children:O}),t.bannerText?(0,G.jsx)(F,{children:t.bannerText}):null]})}if(t.type===`child_pane`)return(0,G.jsxs)(`a`,{href:`#/settings/${t.childNamespace}`,className:`flex items-center justify-between rounded-md border border-border bg-card px-4 py-3 hover:bg-accent transition-colors`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-sm font-medium`,children:O}),t.description?(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:t.description}):null]}),(0,G.jsx)(M,{className:`h-4 w-4 text-muted-foreground`})]});if(t.type===`title_value`)return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-2`,children:[(0,G.jsx)(J,{spec:t,resolved:n,labelText:k,labels:v}),(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:String(r??`—`)})]});if(t.type===`action_button`){let e=t.icon?R(t.icon):null,n=t.id??t.key??`test`,r=v?v.actionLabel(n,O):O;return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-sm font-medium`,children:r}),t.description?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:t.description}):null]}),(0,G.jsxs)(C,{size:`sm`,variant:`secondary`,onClick:a,disabled:_,children:[e?(0,G.jsx)(e,{className:`h-4 w-4 mr-1.5`}):null,r]})]})}let N=`${E}-error`,I=e=>(0,G.jsxs)(`div`,{className:`space-y-1.5 py-2`,children:[(0,G.jsx)(J,{spec:t,resolved:n,labelText:k,labels:v}),y&&(0,W.isValidElement)(e)?(0,W.cloneElement)(e,{"aria-invalid":!0,"aria-describedby":N}):e,y?(0,G.jsx)(X,{id:N,message:y}):(0,G.jsx)(Y,{description:j})]}),L=e=>{let n=typeof e.label==`string`?e.label:e.label?.defaultValue??String(e.value);return!t.key||!v?n:v.optionLabel(t.key,String(e.value),n)};switch(t.type){case`text`:case`email`:case`url`:case`phone`:return I((0,G.jsx)(m,{id:E,type:t.type===`email`?`email`:t.type===`url`?`url`:`text`,value:r??``,minLength:t.minLength,maxLength:t.maxLength,pattern:t.pattern,disabled:D,onChange:e=>i(e.target.value)}));case`password`:return I((0,G.jsx)(m,{id:E,type:`password`,autoComplete:`new-password`,placeholder:r?`••••••••`:``,disabled:D,onChange:e=>i(e.target.value)}));case`textarea`:return I((0,G.jsx)(x,{id:E,rows:t.rows??4,value:r??``,minLength:t.minLength,maxLength:t.maxLength,disabled:D,onChange:e=>i(e.target.value)}));case`number`:return I((0,G.jsx)(m,{id:E,type:`number`,value:r,min:t.min,max:t.max,step:t.step,disabled:D,onChange:e=>i(e.target.value===``?null:Number(e.target.value))}));case`toggle`:return(0,G.jsxs)(`div`,{className:`flex items-center justify-between py-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(J,{spec:t,resolved:n,labelText:k,labels:v}),(0,G.jsx)(Y,{description:j})]}),(0,G.jsx)(T,{id:E,checked:!!r,disabled:D,onCheckedChange:e=>i(e)})]});case`select`:return t.valueDomain?I((0,G.jsx)(Z,{id:E,value:r,disabled:D,onChange:i,options:(t.options??[]).map(e=>({value:String(e.value),label:L(e)}))})):I((0,G.jsxs)(P,{value:r==null?void 0:String(r),onValueChange:e=>i(e),disabled:D,children:[(0,G.jsx)(d,{id:E,children:(0,G.jsx)(g,{placeholder:`Select…`})}),(0,G.jsx)(S,{children:t.options?.map(e=>(0,G.jsx)(p,{value:String(e.value),children:L(e)},String(e.value)))})]}));case`radio`:return I((0,G.jsx)(s,{value:r==null?void 0:String(r),onValueChange:e=>i(e),disabled:D,children:t.options?.map(e=>(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(A,{value:String(e.value),id:`${E}-${e.value}`}),(0,G.jsx)(c,{htmlFor:`${E}-${e.value}`,className:`text-sm font-normal`,children:L(e)})]},String(e.value)))}));case`multiselect`:{let e=Array.isArray(r)?r:[];return I((0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:t.options?.map(t=>{let n=String(t.value),r=e.map(String).includes(n);return(0,G.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(f,{checked:r,disabled:D,onCheckedChange:t=>{let r=new Set(e.map(String));t?r.add(n):r.delete(n),i(Array.from(r))}}),L(t)]},n)})}))}case`slider`:return I((0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(w,{value:[Number(r??t.min??0)],min:t.min??0,max:t.max??100,step:t.step??1,disabled:D,onValueChange:e=>i(e[0]),className:`flex-1`}),(0,G.jsx)(`span`,{className:`text-sm tabular-nums w-12 text-right`,children:String(r??t.min??0)})]}));case`color`:return I((0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(m,{id:E,type:`color`,value:r??`#000000`,disabled:D,onChange:e=>i(e.target.value),className:`w-16 h-9 p-1`}),(0,G.jsx)(m,{value:r??``,disabled:D,onChange:e=>i(e.target.value),className:`flex-1 font-mono text-sm`})]}));case`json`:return I((0,G.jsx)(x,{id:E,rows:t.rows??6,className:`font-mono text-xs`,value:typeof r==`string`?r:JSON.stringify(r??null,null,2),disabled:D,onChange:e=>i(e.target.value)}));default:return I((0,G.jsxs)(`div`,{className:`text-sm text-muted-foreground`,children:[`Unsupported specifier type: `,t.type]}))}}function $(e,t){if(!e)return!0;let n=e.trim().match(/^\$\{(.+)\}$/);if(!n)return!0;try{return!!Function(`data`,`with (data) { return (${n[1]}); }`)(t)}catch{return!0}}function ee(e,t){let{[t]:n,...r}=e;return r}function te(e){let t=e??{},n=e=>typeof e==`string`&&e.length>0?e:void 0,r=t.details&&typeof t.details==`object`?t.details:void 0,i=n(r?.namespace),a=n(r?.key);return{subject:a?i?`${i}.${a}`:a:void 0,prescription:n(t.message)}}function ne(){let e=n(),t=r(),{t:i}=o(),s=e.namespace??``,[c,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(!0),[f,p]=(0,W.useState)(!1),[m,h]=(0,W.useState)(null),[g,b]=(0,W.useState)({}),[x,S]=(0,W.useState)({}),[w,T]=(0,W.useState)(null),E=(0,W.useCallback)(async()=>{d(!0),h(null);try{let e=await V(s);l(e),b({}),S({}),T(null)}catch(e){h(e?.message??i(`console.settingsView.loadError`))}finally{d(!1)}},[s,i]);(0,W.useEffect)(()=>{s&&E()},[s,E]);let A=(0,W.useMemo)(()=>{let e={};if(!c)return e;for(let[t,n]of Object.entries(c.values))e[t]=n.value;return{...e,...g}},[c,g]),M=(0,W.useMemo)(()=>Object.keys(g),[g]),P=U(s);if(!s)return(0,G.jsx)(`div`,{className:`p-6 text-muted-foreground`,children:i(`console.settingsView.noNamespace`)});if(u)return(0,G.jsxs)(`div`,{className:`p-6 space-y-3 max-w-3xl`,children:[(0,G.jsx)(k,{className:`h-8 w-1/3`}),(0,G.jsx)(k,{className:`h-4 w-2/3`}),(0,G.jsx)(k,{className:`h-32 w-full`}),(0,G.jsx)(k,{className:`h-32 w-full`})]});if(m)return(0,G.jsxs)(`div`,{className:`p-6 max-w-3xl`,children:[(0,G.jsxs)(C,{variant:`ghost`,size:`sm`,onClick:()=>t(-1),children:[(0,G.jsx)(y,{className:`h-4 w-4 mr-1`}),` `,i(`console.settingsView.back`)]}),(0,G.jsx)(_,{className:`mt-3`,children:(0,G.jsx)(j,{className:`py-8 text-center text-sm text-destructive`,children:m})})]});if(!c)return null;let{manifest:F,values:K}=c,q=F.icon?R(F.icon):null,J=P.title(z(F.label)),Y=P.description(F.description),X=async()=>{if(M.length!==0){p(!0),T(null);try{let e=await H(s,g);l({...c,values:{...K,...e.values}}),b({}),S({}),I.success(i(`console.settingsView.saved`))}catch(e){let t=e?.payload?.error;if(t?.code===`SETTINGS_LOCKED`){let e=L(t);I.error(e?i(`console.settingsView.lockedByEnv`,{key:e}):i(`console.settingsView.lockedByEnvNoKey`))}else if(t?.code===`SETTINGS_CRYPTO_UNAVAILABLE`){let e=te(t);T(e),I.error(e.subject?i(`console.settingsView.cryptoRefusalToast`,{subject:e.subject}):i(`console.settingsView.cryptoRefusalToastNoSubject`))}else{let n=a(t);n?.length&&S(Object.fromEntries(n.map(e=>[e.field,e.message]))),I.error(e?.message??i(`console.settingsView.saveFailed`))}}finally{p(!1)}}},Z=async e=>{p(!0);try{let t=await B(s,e,g);t.ok?I.success(t.message??i(`console.settingsView.actionSucceeded`)):I.error(t.message??i(`console.settingsView.actionFailed`))}catch(e){I.error(e?.message??i(`console.settingsView.actionFailed`))}finally{p(!1)}};return(0,G.jsxs)(`div`,{className:`p-6 max-w-3xl mx-auto pb-32`,children:[(0,G.jsxs)(C,{variant:`ghost`,size:`sm`,onClick:()=>t(`/system/settings`),children:[(0,G.jsx)(y,{className:`h-4 w-4 mr-1`}),` `,i(`console.settingsView.backToHub`)]}),(0,G.jsxs)(`div`,{className:`mt-3 flex items-start gap-3`,children:[q?(0,G.jsx)(q,{className:`h-7 w-7 mt-0.5 text-muted-foreground`}):null,(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:J}),F.beta?(0,G.jsx)(v,{variant:`secondary`,children:i(`console.settingsHub.beta`)}):null]}),Y?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:Y}):null]})]}),F.helpText?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-4 whitespace-pre-wrap`,children:F.helpText}):null,w?(0,G.jsx)(_,{className:`mt-4 border-destructive/50 bg-destructive/5`,children:(0,G.jsx)(j,{className:`py-4`,children:(0,G.jsxs)(`div`,{role:`alert`,className:`flex items-start gap-3`,children:[(0,G.jsx)(D,{className:`h-5 w-5 mt-0.5 shrink-0 text-destructive`}),(0,G.jsxs)(`div`,{className:`flex-1 text-sm`,children:[(0,G.jsx)(`p`,{className:`font-medium text-destructive`,children:i(`console.settingsView.cryptoRefusalTitle`)}),(0,G.jsx)(`p`,{className:`mt-1`,children:w.subject?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`code`,{className:`font-mono text-xs`,children:w.subject}),` `,i(`console.settingsView.cryptoRefusalSubjectSuffix`)]}):i(`console.settingsView.cryptoRefusalNoSubject`)}),w.prescription?(0,G.jsx)(`p`,{className:`mt-2 text-muted-foreground whitespace-pre-wrap`,children:w.prescription}):null]})]})})}):null,(0,G.jsx)(`div`,{className:`mt-6 divide-y`,children:F.specifiers.filter(e=>$(e.visible,A)).map((e,t)=>{let n=e.key,r=n?K[n]:void 0,i=n?n in g?g[n]:r?.value:void 0;return(0,G.jsx)(Q,{spec:e,resolved:r,value:i,onChange:e=>{n&&(b(t=>({...t,[n]:e})),S(e=>n in e?ee(e,n):e))},onAction:e.type===`action_button`?()=>Z(e.id??n??`test`):void 0,locked:r?.locked,saving:f,labels:P,error:n?x[n]:void 0},(n??`_layout_${t}`)+t)})}),M.length>0?(0,G.jsx)(`div`,{className:`fixed bottom-0 inset-x-0 bg-background/95 backdrop-blur border-t shadow-lg z-40`,children:(0,G.jsxs)(`div`,{className:`max-w-3xl mx-auto px-6 py-3 flex items-center justify-between`,children:[(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,"data-testid":`settings-unsaved-count`,children:i(`console.settingsView.unsavedCount`,{count:M.length})}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsxs)(C,{variant:`ghost`,size:`sm`,onClick:()=>{b({}),S({}),T(null)},disabled:f,children:[(0,G.jsx)(O,{className:`h-4 w-4 mr-1`}),` `,i(`console.settingsView.discard`)]}),(0,G.jsxs)(C,{onClick:X,disabled:f,children:[f?(0,G.jsx)(N,{className:`h-4 w-4 mr-1 animate-spin`}):null,i(`console.settingsView.saveChanges`)]})]})]})}):null]})}export{ne as SettingsView};
@@ -0,0 +1 @@
1
+ import{r as e}from"./vendor-react-CsWFRkED.js";import{y as t}from"./i18n-locales-BBA090ve.js";import{Pr as n,_o as r,ea as i,el as a,fn as o,gn as s,hn as c,il as l,mn as u,pn as d,ra as f}from"./ui-components-CMHDBJEm.js";var p=e(),m={config:{icon:f,i18nKey:`config`,short:`Admin config`,title:`Administrator configuration`,body:()=>`These rows define how the platform behaves at runtime. Author them here; the runtime data they produce lives in a separate table.`,tone:`border-sky-300/60 bg-sky-50 text-sky-900 hover:bg-sky-100 dark:border-sky-500/40 dark:bg-sky-950/40 dark:text-sky-100`},"engine-owned":{icon:r,i18nKey:`system`,short:`System-managed`,title:`Managed by the platform`,body:()=>`Rows here are created automatically when actions run on the source record. The list below is a read-only monitoring surface — row-level actions (Approve, Recall, Resend, …) live on each row.`,tone:`border-slate-300/60 bg-slate-50 text-slate-900 hover:bg-slate-100 dark:border-slate-500/40 dark:bg-slate-950/40 dark:text-slate-100`},"system-data":{icon:f,i18nKey:`systemWritable`,short:`Platform schema`,title:`Platform-defined, admin-writable`,body:()=>`This object's schema is defined by the platform, but its rows are yours to create and edit here. Who may write is governed by delegated administration and record-level security, not by this badge.`,tone:`border-slate-300/60 bg-slate-50 text-slate-900 hover:bg-slate-100 dark:border-slate-500/40 dark:bg-slate-950/40 dark:text-slate-100`},"append-only":{icon:a,i18nKey:`appendOnly`,short:`Read-only · Audit log`,title:`Read-only historical record`,body:()=>`Immutable audit log. Rows cannot be created, edited, or deleted from the UI — they're written by the platform when events occur. Use Export to download for compliance review.`,tone:`border-zinc-300/60 bg-zinc-50 text-zinc-900 hover:bg-zinc-100 dark:border-zinc-500/40 dark:bg-zinc-950/40 dark:text-zinc-100`},"better-auth":{icon:i,i18nKey:`betterAuth`,short:`Identity`,title:`Managed by the identity provider`,body:e=>`This object's schema is owned by ${e}. Direct edits bypass password hashing, session validation, two-factor checks, and audit hooks. Manage these records through your authentication provider's sign-in, invitation, and security flows instead.`,tone:`border-amber-300/60 bg-amber-50 text-amber-900 hover:bg-amber-100 dark:border-amber-500/40 dark:bg-amber-950/40 dark:text-amber-100`}};function h({managedBy:e,label:r,className:i}){let{t:a}=t();if(!e||e===`platform`)return null;let s=m[e];if(!s)return null;let f=s.icon,h=r??`better-auth`,g=a(`managedByBadge.${s.i18nKey}.short`,{defaultValue:s.short}),_=a(`managedByBadge.${s.i18nKey}.title`,{defaultValue:s.title}),v=a(`managedByBadge.${s.i18nKey}.body`,{defaultValue:s.body(h),provider:h});return(0,p.jsx)(u,{delayDuration:200,children:(0,p.jsxs)(o,{children:[(0,p.jsx)(c,{asChild:!0,children:(0,p.jsxs)(n,{variant:`outline`,"data-testid":`managed-by-badge`,"data-bucket":e,className:l(`gap-1 font-normal text-[11px] leading-none py-0.5 px-1.5 cursor-help`,s.tone,i),children:[(0,p.jsx)(f,{className:`h-3 w-3`,"aria-hidden":`true`}),(0,p.jsx)(`span`,{children:g})]})}),(0,p.jsxs)(d,{side:`bottom`,align:`start`,className:`max-w-xs text-xs leading-relaxed`,children:[(0,p.jsx)(`p`,{className:`font-semibold mb-1`,children:_}),(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:v})]})]})})}function g({fields:e=8,columns:t=2}){return(0,p.jsxs)(`div`,{className:`w-full space-y-6 p-4 sm:p-6`,children:[(0,p.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,p.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,p.jsx)(s,{className:`h-8 w-8 rounded`}),(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{className:`h-6 w-48`}),(0,p.jsx)(s,{className:`h-4 w-32`})]})]}),(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(s,{className:`h-9 w-20`}),(0,p.jsx)(s,{className:`h-9 w-20`})]})]}),(0,p.jsx)(s,{className:`h-5 w-24`}),(0,p.jsx)(`div`,{className:`grid grid-cols-1 ${t===2?`md:grid-cols-2`:``} gap-4`,children:Array.from({length:e}).map((e,t)=>(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(s,{className:`h-4 w-24`}),(0,p.jsx)(s,{className:`h-9 w-full`})]},`field-${t}`))}),(0,p.jsxs)(`div`,{className:`space-y-3 pt-4 border-t`,children:[(0,p.jsx)(s,{className:`h-5 w-32`}),(0,p.jsx)(`div`,{className:`space-y-2`,children:Array.from({length:3}).map((e,t)=>(0,p.jsxs)(`div`,{className:`flex items-center gap-3 py-2`,children:[(0,p.jsx)(s,{className:`h-8 w-8 rounded-full`}),(0,p.jsxs)(`div`,{className:`flex-1 space-y-1`,children:[(0,p.jsx)(s,{className:`h-4 w-40`}),(0,p.jsx)(s,{className:`h-3 w-24`})]})]},`related-${t}`))})]})]})}export{h as n,g as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{b as t,h as n,p as r,r as i}from"./vendor-react-CsWFRkED.js";import{h as a}from"./infrastructure-B4zG1jNa.js";import{q as o}from"./framework-DFE_Mws9.js";import{Ar as s,Do as c,Fi as l,Ic as u,Mo as d,Mr as f,Ms as p,Or as m,Pc as h,Pr as g,Xi as _,di as v,jr as y,kc as b,ki as x,kr as S,na as C,oa as w,ui as T,vo as E}from"./ui-components-CMHDBJEm.js";import"./src-hcMLuWxG.js";var D=e(t(),1),O=i();function k(e){return e===null?null:e.data?.length??0}function A(){let e=r(),{appName:t}=n(),i=t?`/apps/${t}`:``,A=o(),{isAdmin:j}=a(),[M,N]=(0,D.useState)({users:null,orgs:null,positions:null,permissions:null,auditLogs:null}),[P,F]=(0,D.useState)(!0),I=(0,D.useCallback)(async()=>{if(A){F(!0);try{let[e,t,n,r,i]=await Promise.all([A.find(`sys_user`).catch(()=>null),A.find(`sys_organization`).catch(()=>null),A.find(`sys_position`).catch(()=>null),A.find(`sys_permission_set`).catch(()=>null),A.find(`sys_audit_log`).catch(()=>null)]);N({users:k(e),orgs:k(t),positions:k(n),permissions:k(r),auditLogs:k(i)})}catch{}finally{F(!1)}}},[A]);(0,D.useEffect)(()=>{I()},[I]);let L=[{title:`Applications`,description:`Manage all configured applications`,icon:c,href:`${i}/system/apps`,countLabel:``,count:null},{title:`Metadata`,description:`Browse and edit every metadata type the platform exposes`,icon:p,href:`${i}/metadata`,countLabel:``,count:null},{title:`Datasources`,description:`Connect external databases and sync their tables in as objects`,icon:h,href:`${i}/metadata/datasource`,countLabel:``,count:null}],R=[{title:`Users`,description:`Manage system users and accounts`,icon:T,href:`${i}/system/users`,countLabel:`users`,count:M.users},{title:`Organizations`,description:`Manage organizations and teams`,icon:b,href:`${i}/system/organizations`,countLabel:`organizations`,count:M.orgs},{title:`Positions`,description:`Configure positions and access levels`,icon:_,href:`${i}/system/positions`,countLabel:`positions`,count:M.positions},{title:`Permissions`,description:`Manage permission rules and assignments`,icon:d,href:`${i}/system/permissions`,countLabel:`permissions`,count:M.permissions},{title:`Audit Log`,description:`View system activity and changes`,icon:w,href:`${i}/system/audit-log`,countLabel:`entries`,count:M.auditLogs},{title:`AI Approvals`,description:`Review actions AI agents propose before they execute`,icon:u,href:`${i}/system/ai-approvals`,countLabel:``,count:null},{title:`App Marketplace`,description:`Browse and install approved apps from the ObjectStack catalog`,icon:l,href:`${i}/system/marketplace`,countLabel:``,count:null,adminOnly:!0},{title:`Settings`,description:`Configure mail, branding, feature flags, and more`,icon:C,href:`${i}/system/settings`,countLabel:``,count:null},{title:`Developer`,description:`API console, flow runs, and public form management`,icon:x,href:`${i}/developer`,countLabel:``,count:null},{title:`Profile`,description:`View and edit your account settings`,icon:v,href:`${i}/system/profile`,countLabel:``,count:null}],z=[...L,...R].filter(e=>!e.adminOnly||j);return(0,O.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,O.jsxs)(`div`,{className:`min-w-0`,children:[(0,O.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:`System Settings`}),(0,O.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Manage applications, users, positions, permissions, and system configuration`})]}),P&&(0,O.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,role:`status`,"aria-live":`polite`,children:[(0,O.jsx)(E,{className:`h-4 w-4 animate-spin`,"aria-hidden":`true`}),`Loading statistics...`]}),(0,O.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:z.map(t=>{let n=t.icon;return(0,O.jsxs)(m,{className:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:()=>e(t.href),"data-testid":`hub-card-${t.title.toLowerCase().replace(/\s+/g,`-`)}`,role:`link`,tabIndex:0,"aria-label":`${t.title}: ${t.description}`,onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),e(t.href))},children:[(0,O.jsxs)(y,{className:`flex flex-row items-center gap-3 pb-2`,children:[(0,O.jsx)(`div`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,O.jsx)(n,{className:`h-5 w-5`})}),(0,O.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,O.jsx)(f,{className:`text-base`,children:t.title}),(0,O.jsx)(s,{className:`text-xs`,children:t.description})]})]}),(0,O.jsx)(S,{className:`pt-0`,children:t.count!==null&&(0,O.jsxs)(g,{variant:`secondary`,children:[t.count,` `,t.countLabel]})})]},t.title)})})]})}export{A as SystemHubPage};
@@ -1 +1 @@
1
- import{n as e}from"./chunk-5HE753X5-T_shrJhj.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-CY2xhbXR.js";import"./chunk-I66GZJ75-BsY3mBMx.js";import"./chunk-3NCLNEKW-Z5ckM4mG.js";import{n as r,r as i,t as a}from"./chunk-6Q2QTUOP-C2vvuHlO.js";import{t as o}from"./chunk-JWPE2WC7-DVXcaiue.js";import{t as s}from"./mermaid-parser.core-Dd2B8Ckv.js";var c=e().RailroadAbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=t(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=t(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=t(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=t(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:t(e=>{a.clear(),n.debug(`[ABNF Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[ABNF Parser] Parsed rules:`,r.rules.length),h(r),n.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{g as diagram};
1
+ import{n as e}from"./chunk-XHIXRSVI-CqmtoxrP.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{t as n}from"./src-D7tZqf12.js";import"./chunk-DU6HZSFF-DqjylQO-.js";import"./chunk-CLGD4ZFX-De9kMAXh.js";import{n as r,r as i,t as a}from"./chunk-SVP7TREG-BdJpxJji.js";import{t as o}from"./chunk-JWPE2WC7-DVXcaiue.js";import{t as s}from"./mermaid-parser.core-DUt1FNlO.js";var c=e().RailroadAbnf.parser.LangiumParser,l=t(e=>{let t=e.alternatives.map(u);return t.length===1?t[0]:{type:`choice`,alternatives:t}},`transformAlternation`),u=t(e=>{let t=e.elements.map(f);return t.length===1?t[0]:{type:`sequence`,elements:t}},`transformConcatenation`),d=t(e=>{if(e.includes(`*`)){let[t,n]=e.split(`*`);return{min:t?parseInt(t,10):0,max:n?parseInt(n,10):1/0}}let t=parseInt(e,10);return{min:t,max:t}},`parseRepeat`),f=t(e=>{let t=p(e.primary);if(!e.repeat)return t;let{min:n,max:r}=d(e.repeat);return n===0&&r===1?{type:`optional`,element:t}:{type:`repetition`,element:t,min:n,max:r}},`transformElement`),p=t(e=>{switch(e.$type){case`AbnfStringLiteral`:return{type:`terminal`,value:e.value};case`AbnfNumVal`:return{type:`terminal`,value:e.value};case`AbnfRuleName`:return{type:`nonterminal`,name:e.name};case`AbnfGroup`:return l(e.element);case`AbnfOptionalGroup`:return{type:`optional`,element:l(e.element)};default:throw Error(`Unsupported ABNF primary node: ${e.$type}`)}},`transformPrimary`),m=t(e=>({name:e.name,definition:l(e.definition)}),`transformRule`),h=t(e=>{o(e,a),e.title&&a.setTitle(e.title),e.rules.map(e=>a.addRule(m(e)))},`populateDb`),g={parser:{parse:t(e=>{a.clear(),n.debug(`[ABNF Parser] Starting Langium parse`);let t=c.parse(e);if(t.lexerErrors.length>0||t.parserErrors.length>0)throw new s(t);let r=t.value;n.debug(`[ABNF Parser] Parsed rules:`,r.rules.length),h(r),n.debug(`[ABNF Parser] Parse complete`)},`parse`),parser:{yy:a}},db:a,renderer:i,styles:r};export{g as diagram};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{b as t,h as n,p as r,r as i}from"./vendor-react-CsWFRkED.js";import{h as a,y as o}from"./infrastructure-B4zG1jNa.js";import{ti as s,ur as c}from"./framework-DFE_Mws9.js";import{y as l}from"./i18n-locales-BBA090ve.js";import{Mr as u,Or as d,Pr as f,Qi as p,Si as ee,Xr as m,_o as h,gn as g,il as _,jr as v,kr as y,sc as te,ws as ne,ya as b}from"./ui-components-CMHDBJEm.js";import{r as x}from"./vendor-ui-utils-BFw4cGI6.js";var S=e(t(),1),C=i();function w(e){if(typeof e!=`object`||!e)return null;let t=e.telemetry;if(typeof t!=`object`||!t)return null;let n=t.errorReporting;if(typeof n!=`object`||!n)return null;let r=n;if(typeof r.dsn!=`string`)return null;let i=r.dsn.trim();return i===``||T(i)?null:{dsn:i,sendDefaultPii:r.sendDefaultPii===!0,...typeof r.environment==`string`&&r.environment.trim()?{environment:r.environment.trim()}:{},tracesSampleRate:E(r.tracesSampleRate,D),replaysOnErrorSampleRate:E(r.replaysOnErrorSampleRate,O)}}function T(e){try{return new URL(e).password!==``}catch{return!1}}function E(e,t){return typeof e==`number`&&Number.isFinite(e)&&e>=0&&e<=1?e:t}var D=.1,O=0,k={cloudUrl:``,singleEnvironment:!1,defaultOrgId:null,defaultEnvironmentId:null,features:{installLocal:!1,marketplace:!0,aiStudio:!0,autoPublishAiBuilds:!0,customDomain:!1,sso:!1,scim:!1},branding:{productName:`ObjectOS`,productShortName:`ObjectOS`,stage:`preview`,brandColor:`#4F46E5`,pwaThemeColor:`#4f46e5`},telemetry:{}},A=[`preview`,`beta`,`ga`];function j(e){return typeof e==`string`&&A.includes(e)}var M={...k};function re(e){M={...M,...e,features:{...M.features,...e.features??{}},branding:{...M.branding,...e.branding??{}},telemetry:e.telemetry?{...e.telemetry}:M.telemetry}}async function N(e=``){let t=(e||``).replace(/\/+$/,``);try{let e=await c(`${t}/api/v1/runtime/config`,{credentials:`include`,headers:{Accept:`application/json`}});if(!e||typeof e!=`object`)return;re({cloudUrl:typeof e.cloudUrl==`string`?e.cloudUrl.replace(/\/+$/,``):M.cloudUrl,singleEnvironment:!!e.singleEnvironment,defaultOrgId:e.defaultOrgId??M.defaultOrgId??null,defaultEnvironmentId:e.defaultEnvironmentId??M.defaultEnvironmentId??null,features:e.features?{installLocal:!!e.features.installLocal,marketplace:e.features.marketplace!==!1,aiStudio:e.features.aiStudio!==!1,autoPublishAiBuilds:e.features.autoPublishAiBuilds!==!1,customDomain:e.features.customDomain===!0,sso:e.features.sso===!0,scim:e.features.scim===!0}:M.features,telemetry:(()=>{let t=w(e);return t?{errorReporting:t}:{}})(),branding:e.branding?{productName:typeof e.branding.productName==`string`&&e.branding.productName.trim()?e.branding.productName.trim():M.branding.productName,productShortName:typeof e.branding.productShortName==`string`&&e.branding.productShortName.trim()?e.branding.productShortName.trim():M.branding.productShortName,stage:j(e.branding.stage)?e.branding.stage:M.branding.stage,logoUrl:typeof e.branding.logoUrl==`string`&&e.branding.logoUrl.trim()?e.branding.logoUrl.trim():M.branding.logoUrl,faviconUrl:typeof e.branding.faviconUrl==`string`&&e.branding.faviconUrl.trim()?e.branding.faviconUrl.trim():M.branding.faviconUrl,brandColor:typeof e.branding.brandColor==`string`&&e.branding.brandColor.trim()?e.branding.brandColor.trim():M.branding.brandColor,pwaDescription:typeof e.branding.pwaDescription==`string`&&e.branding.pwaDescription.trim()?e.branding.pwaDescription.trim():M.branding.pwaDescription,pwaThemeColor:typeof e.branding.pwaThemeColor==`string`&&e.branding.pwaThemeColor.trim()?e.branding.pwaThemeColor.trim():M.branding.pwaThemeColor}:M.branding})}catch{}}function ie(){return M}function P(){return M.branding?.productName||`ObjectOS`}function ae(){return M.branding?.productShortName||P()}function oe(){return M.branding?.stage??`preview`}function se(){return M.branding?.brandColor||`#4F46E5`}function ce(){return M.branding?.logoUrl}function le(){return M.branding?.faviconUrl}function ue(){return M.branding?.pwaDescription||`${P()} — runtime console`}function F(){return M.branding?.pwaThemeColor||se()}function I(){return M.cloudUrl??``}function L(){return M.features?.marketplace!==!1}function R(){return M.features?.aiStudio!==!1}function z(){return M.telemetry?.errorReporting??null}var B=``.replace(/\/$/,``),V=`${B}/api/v1/marketplace`;function H(e){let t=o.get();return t?{...e,Authorization:`Bearer ${t}`}:e}function U(e,t){let n=e?.error?.code??e?.code??`HTTP_${t.status}`,r=e?.error?.message??e?.error??e?.message??t.statusText;return{code:String(n),message:typeof r==`string`?r:String(n)}}async function W(e,t){let n=await fetch(`${V}${e}`,{credentials:`omit`,headers:{Accept:`application/json`,...t?.headers||{}},...t}),r=null;try{r=await n.json()}catch{}if(!n.ok){let{code:e,message:t}=U(r,n),i=Error(typeof t==`string`?t:`${e}`);throw i.code=e,i.status=n.status,i}return r?.data??r}async function de(e={}){let t=new URLSearchParams;e.q&&t.set(`q`,e.q),e.category&&t.set(`category`,e.category),e.limit!=null&&t.set(`limit`,String(e.limit)),e.offset!=null&&t.set(`offset`,String(e.offset));let n=t.toString();return W(`/packages${n?`?${n}`:``}`)}async function fe(e){return W(`/packages/${encodeURIComponent(e)}`)}async function pe(e){if(I()){let t=await fetch(`/api/v1/cloud-connection/install`,{method:`POST`,credentials:`include`,headers:H({Accept:`application/json`,"Content-Type":`application/json`}),body:JSON.stringify({package_id:e.packageId,seed_sample_data:!!e.seedSampleData})}),n=null;try{n=await t.json()}catch{}if(!t.ok||n?.success===!1){let{code:e,message:r}=U(n,t),i=Error(typeof r==`string`?r:`${e}`);throw i.code=e,i.status=t.status,i}return n?.data??n}let t=await fetch(`${B}/api/v1/actions/sys_package/install_package`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify({recordId:e.packageId,params:{environment_id:e.environmentId,seed_sample_data:!!e.seedSampleData}})}),n=null;try{n=await t.json()}catch{}let r=n?.data,i=!!r&&typeof r==`object`&&r.success===!1;if(!t.ok||i){let e=U(n,t),a=n?.code??e.code,o=i?r.error??t.statusText:e.message,s=Error(typeof o==`string`?o:`${a}`);throw s.code=a,s.status=t.status,s}return n?.data??n}async function me(){let e=I()||B,t=await fetch(`${e}/api/v1/data/sys_environment?limit=200`,{credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok){let e=Error(`HTTP_${t.status}`);throw e.status=t.status,e}let n=await t.json().catch(()=>({})),r=n?.records??n?.data??n?.items??n??[];return Array.isArray(r)?r:[]}async function he(){let e=I()||B,t=null;try{let n=await fetch(`${e}/api/v1/auth/get-session`,{credentials:`include`,headers:{Accept:`application/json`}});n.ok&&(t=(await n.json().catch(()=>({})))?.user?.id??null)}catch{}if(!t)return new Set;let n=`${e}/api/v1/data/sys_member?limit=200`,r;try{let e=await fetch(n,{credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return new Set;r=await e.json().catch(()=>({}))}catch{return new Set}let i=r?.records??r?.data??r?.items??r??[];if(!Array.isArray(i))return new Set;let a=new Set;for(let e of i){if(String(e?.user_id??e?.userId??``)!==t)continue;let n=String(e?.role??``).toLowerCase(),r=e?.organization_id??e?.organizationId;r&&(n===`owner`||n===`admin`)&&a.add(String(r))}return a}function ge(){return I()}async function _e(e,t){if(!e)return null;if(I())try{let t=await fetch(`/api/v1/cloud-connection/installation?package_id=${encodeURIComponent(e)}`,{credentials:`include`,headers:H({Accept:`application/json`})});if(!t.ok)return null;let n=await t.json().catch(()=>({})),r=n?.data??n??{};return r.installed?{installationId:String(r.installationId??``),version:String(r.version??`installed`),withSampleData:r.withSampleData===!0}:null}catch{return null}if(!t)return null;let n=B;try{let r=await fetch(`${n}/api/v1/cloud/environments/${encodeURIComponent(t)}/installations/${encodeURIComponent(e)}`,{credentials:`include`,headers:{Accept:`application/json`}});if(!r.ok)return null;let i=await r.json().catch(()=>({})),a=i?.data??i??{};return a.installed?{installationId:String(a.installationId??``),version:String(a.version??`installed`),withSampleData:a.withSampleData===!0}:null}catch{return null}}async function ve(e){if(!e)return{ok:!1,error:`installation id required`};let t=I()||B;try{let n=await fetch(`${t}/api/v1/cloud/installations/${encodeURIComponent(e)}/reseed-sample-data`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:`{}`}),r=await n.json().catch(()=>({}));return!n.ok||r?.success===!1?{ok:!1,error:U(r,n).message}:{ok:!0}}catch(e){return{ok:!1,error:e?.message||`Network error`}}}async function ye(e){if(!e)return{ok:!1,error:`installation id required`};let t=I()||B;try{let n=await fetch(`${t}/api/v1/cloud/installations/${encodeURIComponent(e)}/purge-sample-data`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:`{}`}),r=await n.json().catch(()=>({}));return!n.ok||r?.success===!1?{ok:!1,error:U(r,n).message}:{ok:!0,deleted:Number(r?.data?.deleted??0)}}catch(e){return{ok:!1,error:e?.message||`Network error`}}}async function be(){try{let e=await fetch(`${B}/api/v1/cloud-connection/org-packages`,{credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return{connected:!1,items:[]};let t=(await e.json().catch(()=>({})))?.data??{},n=Array.isArray(t.items)?t.items:[];return{connected:t.connected===!0,items:n}}catch{return{connected:!1,items:[]}}}async function xe(e){let t=await fetch(`${V}/install-local`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`,"Content-Type":`application/json`},body:JSON.stringify({packageId:e.packageId,...e.versionId?{versionId:e.versionId}:{}})}),n=null;try{n=await t.json()}catch{}if(!t.ok){let{code:e,message:r}=U(n,t),i=Error(typeof r==`string`?r:`${e}`);throw i.code=e,i.status=t.status,i}return n?.data??n}async function G(){try{let e=await fetch(`${V}/install-local`,{credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return[];let t=await e.json().catch(()=>({})),n=t?.data?.items??t?.items??[];return Array.isArray(n)?n:[]}catch{return[]}}async function K(){try{let e=await fetch(`${B}/api/v1/cloud-connection/installed`,{credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return{connected:!1,items:[]};let t=(await e.json().catch(()=>({})))?.data??{},n=(Array.isArray(t.packages)?t.packages:[]).map(e=>{let t=String(e.packageId??e.package_id??``);return{packageId:t,versionId:String(e.package_version_id??``),manifestId:t,version:String(e.version??`installed`),installedAt:String(e.installed_at??e.installedAt??``),installedBy:e.installed_by??e.installedBy??null,withSampleData:e.with_sample_data===!0||e.withSampleData===!0}});return{connected:t.connected===!0,items:n}}catch{return{connected:!1,items:[]}}}async function q(e){let t=await fetch(`${V}/install-local/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(U(e,t).message)}}async function J(e,t){let n=await fetch(`${V}/install-local/${encodeURIComponent(e)}/${t===`reseed`?`reseed-sample-data`:`purge-sample-data`}`,{method:`POST`,credentials:`include`,headers:{Accept:`application/json`}}),r=await n.json().catch(()=>({}));if(!n.ok){let e=r?.error?.message??n.statusText,t=Error(typeof e==`string`?e:`HTTP_${n.status}`);throw t.code=r?.error?.code??`HTTP_${n.status}`,t}return r?.data??r}function Se(e){return J(e,`reseed`)}function Ce(e){return J(e,`purge`)}function Y(){let e=r(),{appName:t}=n(),{t:i}=l(),a=t?`/apps/${t}`:`/`;return(0,C.jsx)(`div`,{className:`container mx-auto max-w-2xl px-6 py-16`,children:(0,C.jsx)(d,{children:(0,C.jsxs)(y,{className:`flex flex-col items-center gap-4 py-12 text-center`,children:[(0,C.jsx)(`div`,{className:`rounded-full bg-muted p-3`,children:(0,C.jsx)(h,{className:`h-6 w-6 text-muted-foreground`})}),(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`h2`,{className:`text-lg font-semibold`,children:i(`marketplace.accessDenied.title`)}),(0,C.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:i(`marketplace.accessDenied.description`)})]}),(0,C.jsx)(m,{variant:`outline`,onClick:()=>e(a),children:i(`marketplace.action.backHome`)})]})})})}var X=`${``.replace(/\/$/,``)}/api/v1/security/suggested-bindings`;function Z(e={}){let t={Accept:`application/json`,...e},n=o.get();return n?{...t,Authorization:`Bearer ${n}`}:t}async function Q(e){let t=null;try{t=await e.json()}catch{}if(!e.ok){let n=t?.error?.code??`HTTP_${e.status}`,r=t?.error?.message??t?.error??e.statusText,i=Error(typeof r==`string`?r:String(n));throw i.code=n,i.status=e.status,i}return t?.data??t}async function we(e={}){let t=new URLSearchParams;e.status&&t.set(`status`,e.status),e.packageId&&t.set(`packageId`,e.packageId);let n=t.toString(),r=await Q(await fetch(`${X}${n?`?${n}`:``}`,{credentials:`include`,headers:Z()}));return Array.isArray(r?.suggestions)?r.suggestions:[]}async function Te(e){return(await Q(await fetch(`${X}/${encodeURIComponent(e)}/confirm`,{method:`POST`,credentials:`include`,headers:Z({"Content-Type":`application/json`})})))?.suggestion}async function Ee(e){return(await Q(await fetch(`${X}/${encodeURIComponent(e)}/dismiss`,{method:`POST`,credentials:`include`,headers:Z({"Content-Type":`application/json`})})))?.suggestion}function De({packageId:e,strings:t,className:n,onResolved:r}){let[i,a]=(0,S.useState)([]),[o,s]=(0,S.useState)(null),c=(0,S.useCallback)(()=>{let t=!1;return we({status:`pending`,...e?{packageId:e}:{}}).then(e=>{t||a(e)}).catch(()=>{}),()=>{t=!0}},[e]);(0,S.useEffect)(()=>c(),[c]);let l=async(e,n)=>{s(e.id);try{let i=n===`confirm`?await Te(e.id):await Ee(e.id);a(t=>t.filter(t=>t.id!==e.id)),x.success(n===`confirm`?t.confirmedToast(e):t.dismissedToast(e)),r?.(i??e)}catch(e){x.error(e?.message??String(e))}finally{s(null)}};return i.length===0?null:(0,C.jsx)(`div`,{"data-testid":`suggested-bindings-panel`,className:_(`rounded-lg border border-amber-300/60 dark:border-amber-700/50 bg-amber-50 dark:bg-amber-950/30 px-3 py-2 space-y-2`,n),children:i.map(e=>(0,C.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,C.jsx)(p,{className:`h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,C.jsx)(`p`,{className:`flex-1 min-w-0 text-sm text-amber-900 dark:text-amber-200`,children:t.describe(e)}),(0,C.jsx)(m,{size:`sm`,disabled:o===e.id,onClick:()=>l(e,`confirm`),"data-testid":`suggested-binding-confirm-${e.permission_set_name}`,children:o===e.id?t.confirming:t.confirm}),(0,C.jsx)(m,{size:`sm`,variant:`ghost`,disabled:o===e.id,onClick:()=>l(e,`dismiss`),"data-testid":`suggested-binding-dismiss-${e.permission_set_name}`,children:t.dismiss})]},e.id))})}function $(){let e=r(),{appName:t}=n(),{isAdmin:i}=a(),{t:o,language:s}=l(),c=t?`/apps/${t}`:``,[p,h]=(0,S.useState)([]),[_,x]=(0,S.useState)(`local`),[w,T]=(0,S.useState)(!0),[E,D]=(0,S.useState)(null),[O,k]=(0,S.useState)(null),A=async()=>{T(!0);try{let e=await K();e.connected?(x(`cloud`),h(e.items)):(x(`local`),h(await G()))}finally{T(!1)}};(0,S.useEffect)(()=>{A()},[]);let j=async e=>{if(confirm(o(`marketplace.uninstall.confirm`,{manifestId:e.manifestId,version:e.version}))){D(e.manifestId),k(null);try{await q(e.manifestId),k({ok:!0,message:o(`marketplace.uninstall.successInList`,{manifestId:e.manifestId})}),await A()}catch(e){k({ok:!1,message:e?.message??String(e)})}finally{D(null)}}};return i?(0,C.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,C.jsx)(`div`,{className:`flex justify-end`,children:(0,C.jsxs)(m,{variant:`outline`,size:`sm`,onClick:()=>void A(),disabled:w,children:[(0,C.jsx)(b,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),o(`marketplace.refresh`)]})}),O&&(0,C.jsx)(`div`,{className:`rounded-md border p-3 text-sm ${O.ok?`border-green-500/30 bg-green-500/5 text-green-700 dark:text-green-400`:`border-destructive/30 bg-destructive/5 text-destructive`}`,children:(0,C.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,C.jsx)(te,{className:`h-4 w-4 mt-0.5 shrink-0`,"aria-hidden":`true`}),(0,C.jsx)(`div`,{children:O.message})]})}),w&&p.length===0?(0,C.jsx)(`div`,{className:`grid gap-3`,children:Array.from({length:3}).map((e,t)=>(0,C.jsx)(g,{className:`h-20 w-full`},t))}):p.length===0?(0,C.jsxs)(`div`,{className:`text-center py-12 text-sm text-muted-foreground border rounded-md`,children:[(0,C.jsx)(`p`,{children:o(`marketplace.installedEmpty`)}),(0,C.jsx)(m,{variant:`link`,className:`mt-2`,onClick:()=>e(`${c}/system/marketplace`),children:o(`marketplace.browseLink`)})]}):(0,C.jsx)(`div`,{className:`grid gap-3`,children:p.map(t=>(0,C.jsxs)(d,{children:[(0,C.jsxs)(v,{className:`flex flex-row items-start justify-between gap-3 pb-2`,children:[(0,C.jsxs)(`div`,{className:`min-w-0`,children:[(0,C.jsxs)(u,{className:`text-base truncate flex items-center gap-2`,children:[t.manifestId,(0,C.jsx)(f,{variant:`outline`,children:o(`marketplace.versionBadge`,{version:t.version})})]}),(0,C.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1 flex flex-wrap gap-x-3 gap-y-1`,children:[(0,C.jsx)(`span`,{children:o(`marketplace.installedAt`,{when:new Date(t.installedAt).toLocaleString(s||void 0)})}),t.installedBy&&(0,C.jsx)(`span`,{children:o(`marketplace.installedBy`,{user:t.installedBy})}),(0,C.jsxs)(`span`,{children:[o(`marketplace.installedPackageId`),` `,(0,C.jsx)(`code`,{className:`font-mono`,children:t.packageId})]})]})]}),(0,C.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,C.jsxs)(m,{variant:`ghost`,size:`sm`,onClick:()=>e(`${c}/system/marketplace/${t.packageId}`),children:[(0,C.jsx)(ne,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),o(`marketplace.action.details`)]}),_===`local`&&(0,C.jsxs)(m,{variant:`outline`,size:`sm`,onClick:()=>void j(t),disabled:E===t.manifestId,children:[(0,C.jsx)(ee,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),E===t.manifestId?o(`marketplace.action.uninstalling`):o(`marketplace.action.uninstall`)]})]})]}),_===`local`&&(0,C.jsx)(y,{className:`pt-0 text-xs text-muted-foreground`,dangerouslySetInnerHTML:{__html:o(`marketplace.cachedAs`,{path:`.objectstack/installed-packages/${t.manifestId.replace(/[^a-zA-Z0-9._-]/g,`_`)}.json`})}})]},t.manifestId))}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground border-t pt-4`,dangerouslySetInnerHTML:{__html:o(`marketplace.installedAdditiveNote`)}})]}):(0,C.jsx)(Y,{})}s.register(`marketplace:installed-list`,()=>(0,C.jsx)($,{}),{namespace:`app-shell`,label:`Installed Marketplace Packages`,category:`plugin`,inputs:[]});export{N as A,ce as C,ue as D,ae as E,L as M,F as O,le as S,P as T,Se as _,_e as a,z as b,pe as c,K as d,G as f,ye as g,Ce as h,ge as i,R as j,ie as k,me as l,be as m,De as n,fe as o,de as p,Y as r,xe as s,$ as t,he as u,ve as v,oe as w,I as x,q as y};
@@ -1 +1 @@
1
- function e(e){if(e)return e._packageId??e.name??void 0}function t(e,t){if(!(!e||t==null))return e.find(e=>e?._packageId===t)??e.find(e=>e?.name===t)}function n(e){return e?e.filter(e=>e?.active!==!1&&e?.hidden!==!0):[]}function r(r,i){let a=n(r);return e(t(a,i))||e(a[0])||(a.length===0&&i?i:`setup`)}function i(e,t){if(!t)return null;let n=u(e);return n?`/studio/${encodeURIComponent(n)}/data`:null}function a(e,t,n){if(!t)return null;let r=u(e);if(!r)return null;let i=n?.type,a=n?.name;if(!i||!a)return null;let o=`${i}:${encodeURIComponent(a)}`;return`/studio/${encodeURIComponent(r)}/interfaces?surface=${o}`}function o(e,t,n){if(!t)return null;let r=u(e);if(!r||!n)return null;let i=`object:${encodeURIComponent(n)}`;return`/studio/${encodeURIComponent(r)}/data?surface=${i}`}var s=new Set([`dashboard`,`page`,`report`]),c=new Set([...s,`system`]);function l(e,t,n){let r=n?.type,l=n?.name;return r&&l&&s.has(r)?a(e,t,{type:r,name:l}):r&&!c.has(r)?o(e,t,r):i(e,t)}function u(e){let t=e?._packageId;return typeof t!=`string`||!t||t===`sys_metadata`?null:t}function d(e,t){let n=(e??``).trim();if(!n)return null;if(/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`))return{kind:`external`,url:n};let r=n.startsWith(`/`)?n:`/${n}`;return r===`/apps`||r.startsWith(`/apps/`)?{kind:`route`,path:r}:{kind:`route`,path:`/apps/${t}${r}`}}function f(e,t){if(e!=null){if(typeof e==`string`)return e;if(t){let n=t(e.key,{defaultValue:e.defaultValue,...e.params});if(n&&n!==e.key)return n}return e.defaultValue||e.key}}export{t as a,n as i,e as n,r as o,l as r,d as s,f as t};
1
+ function e(e){if(e)return e._packageId??e.name??void 0}function t(e,t){if(!(!e||t==null))return e.find(e=>e?._packageId===t)??e.find(e=>e?.name===t)}function n(e){return e?e.filter(e=>e?.active!==!1&&e?.hidden!==!0):[]}function r(r,i){let a=n(r);return e(t(a,i))||e(a[0])||(a.length===0&&i?i:`setup`)}function i(e,t){if(!t)return null;let n=u(e);return n?`/studio/${encodeURIComponent(n)}/data`:null}function a(e,t,n){if(!t)return null;let r=u(e);if(!r)return null;let i=n?.type,a=n?.name;if(!i||!a)return null;let o=`${i}:${encodeURIComponent(a)}`;return`/studio/${encodeURIComponent(r)}/interfaces?surface=${o}`}function o(e,t,n){if(!t)return null;let r=u(e);if(!r||!n)return null;let i=`object:${encodeURIComponent(n)}`;return`/studio/${encodeURIComponent(r)}/data?surface=${i}`}var s=new Set([`dashboard`,`page`,`report`]),c=new Set([...s,`system`]);function l(e,t,n){let r=n?.type,l=n?.name;return r&&l&&s.has(r)?a(e,t,{type:r,name:l}):r&&!c.has(r)?o(e,t,r):i(e,t)}function u(e){let t=e?._packageId;return typeof t!=`string`||!t||t===`sys_metadata`?null:t}function d(e,t){let n=(e??``).trim();if(!n)return null;if(/^[a-z][a-z0-9+.-]*:/i.test(n)||n.startsWith(`//`))return{kind:`external`,url:n};let r=n.startsWith(`/`)?n:`/${n}`;return r===`/apps`||r.startsWith(`/apps/`)?{kind:`route`,path:r}:{kind:`route`,path:`/apps/${t}${r}`}}export{r as a,t as i,l as n,d as o,n as r,e as t};
@@ -0,0 +1 @@
1
+ import"./chunk-FOHPRMQF-C65HoZVt.js";import{n as e}from"./chunk-6AZGARVD-dsTIs5yl.js";export{e as createArchitectureServices};