@objectstack/console 17.0.0-rc.6 → 17.0.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 (1046) hide show
  1. package/CHANGELOG.md +1099 -0
  2. package/dist/.objectui-sha +1 -1
  3. package/dist/assets/AdapterProvider-BpWMSLQH.js +3 -0
  4. package/dist/assets/{AiPendingActionsPage-DHam6u4d.js → AiPendingActionsPage-DAJUEqyC.js} +1 -1
  5. package/dist/assets/ApiConsolePage-CgXbOsFC.js +1 -0
  6. package/dist/assets/{AppDocsIndex-DMgpe3sR.js → AppDocsIndex-BgaIthca.js} +1 -1
  7. package/dist/assets/AppManagementPage-BvGPskyf.js +1 -0
  8. package/dist/assets/ApprovalsInboxPage-CxmrNrwP.js +1 -0
  9. package/dist/assets/{AuditLogPage-1tKc3thU.js → AuditLogPage-JahfQFnX.js} +1 -1
  10. package/dist/assets/{ComponentNavView-DBrVQtYX.js → ComponentNavView-DjiNAGys.js} +1 -1
  11. package/dist/assets/CreateViewDialog-CUvjCA1o.js +1 -0
  12. package/dist/assets/DashboardView-Cr-Q-16_.js +1 -0
  13. package/dist/assets/{DeveloperHubPage-DiecMLNF.js → DeveloperHubPage-DVKVm5k0.js} +1 -1
  14. package/dist/assets/{DocShell-CpxhuaS6.js → DocShell-C1VQpTIJ.js} +1 -1
  15. package/dist/assets/{ExpressionProvider-DD77oeF3.js → ExpressionProvider-qmd0nVCn.js} +1 -1
  16. package/dist/assets/FlowRunsPage-DL7MhL_U.js +1 -0
  17. package/dist/assets/{IntegrationsPage-DSw3u-B4.js → IntegrationsPage-Cq4mWRFh.js} +2 -2
  18. package/dist/assets/InterfaceListPage-CfhSyYAw.js +1 -0
  19. package/dist/assets/ManagedByBadge-DgsrLolr.js +1 -0
  20. package/dist/assets/MarketplaceAccessDenied-t8A0k9OX.js +1 -0
  21. package/dist/assets/MarketplaceInstalledPage-CRe2BiM2.js +1 -0
  22. package/dist/assets/MarketplacePackagePage-XSdk80Dd.js +4 -0
  23. package/dist/assets/MarketplacePage-CZjDbg5G.js +1 -0
  24. package/dist/assets/MetadataInspector-qQ85bFun.js +1 -0
  25. package/dist/assets/MetadataProvider-CnYsadFP.js +1 -0
  26. package/dist/assets/ObjectDataPage-D9kCSxvN.js +1 -0
  27. package/dist/assets/PageView-q1XSwpVo.js +1 -0
  28. package/dist/assets/ProfilePage-DeDhni58.js +1 -0
  29. package/dist/assets/{PublicFormsPage-C7OYcRBz.js → PublicFormsPage-BX6YXY8w.js} +1 -1
  30. package/dist/assets/RecordDetailView-DrVbrbaN.js +9 -0
  31. package/dist/assets/RecordFormPage-Bs9wX-M6.js +1 -0
  32. package/dist/assets/ReportDefaultInspector-BbbhDn34.js +3 -0
  33. package/dist/assets/ReportView-D_soBKL6.js +2 -0
  34. package/dist/assets/SearchResultsPage--Beqyte8.js +1 -0
  35. package/dist/assets/SettingsHub-BozLt7dt.js +1 -0
  36. package/dist/assets/SettingsView-CC3o9IGe.js +1 -0
  37. package/dist/assets/{SystemHubPage-CFpBjBvz.js → SystemHubPage-CBdrX4bx.js} +1 -1
  38. package/dist/assets/createDerive-C1PaRnFZ.js +1 -0
  39. package/dist/assets/data-adapter-yS4exRPT.js +24 -0
  40. package/dist/assets/framework-B8ndNKrd.js +38 -0
  41. package/dist/assets/getIcon-QmYxLBSb.js +1 -0
  42. package/dist/assets/{highlighted-body-OFNGDK62-I69SE9tf.js → highlighted-body-OFNGDK62-BPV_Giyg.js} +1 -1
  43. package/dist/assets/i18n-DLOdKEiB.js +9 -0
  44. package/dist/assets/index-DaeqUnH6.js +2 -0
  45. package/dist/assets/index-gaeYmjTV.css +2 -0
  46. package/dist/assets/infrastructure-ChmEYj6c.js +3 -0
  47. package/dist/assets/mermaid-GHXKKRXX-BrwYiPsC.js +1 -0
  48. package/dist/assets/metadata-admin-DqAvOmNf.js +25 -0
  49. package/dist/assets/plugin-calendar-CQVTjox_.js +1 -0
  50. package/dist/assets/plugin-charts-CBUIhVeW.js +7 -0
  51. package/dist/assets/plugin-chatbot-DsLGdfGx.js +120 -0
  52. package/dist/assets/plugin-dashboard-fdM1jm2j.js +6 -0
  53. package/dist/assets/plugin-form-Bv0Hi0E6.js +1 -0
  54. package/dist/assets/plugin-gantt-CRJpVrrP.js +63 -0
  55. package/dist/assets/plugin-grid-gHcTrjs3.js +8 -0
  56. package/dist/assets/plugin-kanban-CNm7DssD.js +1 -0
  57. package/dist/assets/plugin-map-TrYBEx8q.js +1 -0
  58. package/dist/assets/{plugin-markdown-C3ihtjLf.js → plugin-markdown-CbQeAjXv.js} +1 -1
  59. package/dist/assets/plugin-report-Bg1oh9SG.js +59 -0
  60. package/dist/assets/plugin-timeline-B30kCAGi.js +1 -0
  61. package/dist/assets/plugin-tree-Br5XanqO.js +1 -0
  62. package/dist/assets/plugin-view-CgDs-8T5.js +1 -0
  63. package/dist/assets/plugins-views-BxwTmeut.js +4 -0
  64. package/dist/assets/runtime-metadata-persistence-DDZN-tZg.js +1 -0
  65. package/dist/assets/{skeletons-Cs1pm-UR.js → skeletons-BWrJAbfN.js} +1 -1
  66. package/dist/assets/src-BBKXMp-o.js +19 -0
  67. package/dist/assets/src-CVuJHohL.js +1 -0
  68. package/dist/assets/{src-B67JaKZf.js → src-leh_hyM1.js} +1 -1
  69. package/dist/assets/ui-components-mPgY5chB.js +42 -0
  70. package/dist/assets/ui-layout-CRcyxP_X.js +1 -0
  71. package/dist/assets/{use-book-data-BpISrpLC.js → use-book-data-B2KPEJjv.js} +1 -1
  72. package/dist/assets/useSettingsLabel-Bl5L3RqQ.js +1 -0
  73. package/dist/assets/utils-L-_x2yPF.js +1 -0
  74. package/dist/assets/vendor-objectstack-DneBps14.js +155 -0
  75. package/dist/index.html +76 -4
  76. package/package.json +1 -1
  77. package/dist/assets/AdapterProvider-C11cY4c0.js +0 -2
  78. package/dist/assets/AdapterProvider-C11cY4c0.js.br +0 -0
  79. package/dist/assets/AdapterProvider-C11cY4c0.js.gz +0 -0
  80. package/dist/assets/AiPendingActionsPage-DHam6u4d.js.br +0 -0
  81. package/dist/assets/AiPendingActionsPage-DHam6u4d.js.gz +0 -0
  82. package/dist/assets/ApiConsolePage-BquGLVsn.js +0 -1
  83. package/dist/assets/ApiConsolePage-BquGLVsn.js.br +0 -0
  84. package/dist/assets/ApiConsolePage-BquGLVsn.js.gz +0 -0
  85. package/dist/assets/AppDocsIndex-DMgpe3sR.js.br +0 -0
  86. package/dist/assets/AppDocsIndex-DMgpe3sR.js.gz +0 -0
  87. package/dist/assets/AppManagementPage-Bw_HJtnj.js +0 -1
  88. package/dist/assets/AppManagementPage-Bw_HJtnj.js.br +0 -0
  89. package/dist/assets/AppManagementPage-Bw_HJtnj.js.gz +0 -0
  90. package/dist/assets/ApprovalsInboxPage-BieJRkeU.js +0 -1
  91. package/dist/assets/ApprovalsInboxPage-BieJRkeU.js.br +0 -0
  92. package/dist/assets/ApprovalsInboxPage-BieJRkeU.js.gz +0 -0
  93. package/dist/assets/AuditLogPage-1tKc3thU.js.br +0 -0
  94. package/dist/assets/AuditLogPage-1tKc3thU.js.gz +0 -0
  95. package/dist/assets/CreateViewDialog-BS4y-EfR.js +0 -1
  96. package/dist/assets/CreateViewDialog-BS4y-EfR.js.br +0 -0
  97. package/dist/assets/CreateViewDialog-BS4y-EfR.js.gz +0 -0
  98. package/dist/assets/DashboardView-BlFMYKJK.js +0 -1
  99. package/dist/assets/DashboardView-BlFMYKJK.js.br +0 -0
  100. package/dist/assets/DashboardView-BlFMYKJK.js.gz +0 -0
  101. package/dist/assets/DeveloperHubPage-DiecMLNF.js.br +0 -0
  102. package/dist/assets/DeveloperHubPage-DiecMLNF.js.gz +0 -0
  103. package/dist/assets/FlowRunsPage-D8wMDWjk.js +0 -1
  104. package/dist/assets/FlowRunsPage-D8wMDWjk.js.br +0 -0
  105. package/dist/assets/FlowRunsPage-D8wMDWjk.js.gz +0 -0
  106. package/dist/assets/IntegrationsPage-DSw3u-B4.js.br +0 -0
  107. package/dist/assets/IntegrationsPage-DSw3u-B4.js.gz +0 -0
  108. package/dist/assets/InterfaceListPage-CbwWqklU.js +0 -1
  109. package/dist/assets/InterfaceListPage-CbwWqklU.js.br +0 -0
  110. package/dist/assets/InterfaceListPage-CbwWqklU.js.gz +0 -0
  111. package/dist/assets/ManagedByBadge-CBwMKWiF.js +0 -1
  112. package/dist/assets/ManagedByBadge-CBwMKWiF.js.br +0 -0
  113. package/dist/assets/ManagedByBadge-CBwMKWiF.js.gz +0 -0
  114. package/dist/assets/MarketplaceAccessDenied-DEBuHOU-.js +0 -1
  115. package/dist/assets/MarketplaceAccessDenied-DEBuHOU-.js.br +0 -0
  116. package/dist/assets/MarketplaceAccessDenied-DEBuHOU-.js.gz +0 -0
  117. package/dist/assets/MarketplaceInstalledPage-D1VkI0Vo.js +0 -1
  118. package/dist/assets/MarketplaceInstalledPage-D1VkI0Vo.js.br +0 -0
  119. package/dist/assets/MarketplaceInstalledPage-D1VkI0Vo.js.gz +0 -0
  120. package/dist/assets/MarketplacePackagePage-cJJmubUp.js +0 -4
  121. package/dist/assets/MarketplacePackagePage-cJJmubUp.js.br +0 -0
  122. package/dist/assets/MarketplacePackagePage-cJJmubUp.js.gz +0 -0
  123. package/dist/assets/MarketplacePage-CyMpmsqJ.js +0 -1
  124. package/dist/assets/MarketplacePage-CyMpmsqJ.js.br +0 -0
  125. package/dist/assets/MarketplacePage-CyMpmsqJ.js.gz +0 -0
  126. package/dist/assets/MetadataInspector-D3Q9UYxF.js +0 -1
  127. package/dist/assets/MetadataInspector-D3Q9UYxF.js.br +0 -0
  128. package/dist/assets/MetadataInspector-D3Q9UYxF.js.gz +0 -0
  129. package/dist/assets/MetadataProvider-PtYALdF8.js +0 -1
  130. package/dist/assets/MetadataProvider-PtYALdF8.js.br +0 -0
  131. package/dist/assets/MetadataProvider-PtYALdF8.js.gz +0 -0
  132. package/dist/assets/ObjectDataPage-D_9SyqGu.js +0 -1
  133. package/dist/assets/ObjectDataPage-D_9SyqGu.js.br +0 -0
  134. package/dist/assets/ObjectDataPage-D_9SyqGu.js.gz +0 -0
  135. package/dist/assets/PageView-DE9Jb4nC.js +0 -1
  136. package/dist/assets/PageView-DE9Jb4nC.js.br +0 -0
  137. package/dist/assets/PageView-DE9Jb4nC.js.gz +0 -0
  138. package/dist/assets/ProfilePage-D6ZIjlTU.js +0 -1
  139. package/dist/assets/ProfilePage-D6ZIjlTU.js.br +0 -0
  140. package/dist/assets/ProfilePage-D6ZIjlTU.js.gz +0 -0
  141. package/dist/assets/PublicFormsPage-C7OYcRBz.js.br +0 -0
  142. package/dist/assets/PublicFormsPage-C7OYcRBz.js.gz +0 -0
  143. package/dist/assets/RecordDetailView-RvdjtkCZ.js +0 -9
  144. package/dist/assets/RecordDetailView-RvdjtkCZ.js.br +0 -0
  145. package/dist/assets/RecordDetailView-RvdjtkCZ.js.gz +0 -0
  146. package/dist/assets/RecordFormPage-C7Fn2jkc.js +0 -1
  147. package/dist/assets/RecordFormPage-C7Fn2jkc.js.br +0 -0
  148. package/dist/assets/RecordFormPage-C7Fn2jkc.js.gz +0 -0
  149. package/dist/assets/ReportDefaultInspector-By-3nQXp.js +0 -3
  150. package/dist/assets/ReportDefaultInspector-By-3nQXp.js.br +0 -0
  151. package/dist/assets/ReportDefaultInspector-By-3nQXp.js.gz +0 -0
  152. package/dist/assets/ReportView-DynZqTgH.js +0 -2
  153. package/dist/assets/ReportView-DynZqTgH.js.br +0 -0
  154. package/dist/assets/ReportView-DynZqTgH.js.gz +0 -0
  155. package/dist/assets/SearchResultsPage-seBReYj-.js +0 -1
  156. package/dist/assets/SearchResultsPage-seBReYj-.js.br +0 -0
  157. package/dist/assets/SearchResultsPage-seBReYj-.js.gz +0 -0
  158. package/dist/assets/SettingsHub-koseplY7.js +0 -1
  159. package/dist/assets/SettingsHub-koseplY7.js.br +0 -0
  160. package/dist/assets/SettingsHub-koseplY7.js.gz +0 -0
  161. package/dist/assets/SettingsView-W2hI4Z63.js +0 -1
  162. package/dist/assets/SettingsView-W2hI4Z63.js.br +0 -0
  163. package/dist/assets/SettingsView-W2hI4Z63.js.gz +0 -0
  164. package/dist/assets/SystemHubPage-CFpBjBvz.js.br +0 -0
  165. package/dist/assets/SystemHubPage-CFpBjBvz.js.gz +0 -0
  166. package/dist/assets/abap-CLvhMVsD.js.br +0 -0
  167. package/dist/assets/abap-CLvhMVsD.js.gz +0 -0
  168. package/dist/assets/abnfDiagram-N423BO3Z-Ck9FUrgJ.js.br +0 -0
  169. package/dist/assets/abnfDiagram-N423BO3Z-Ck9FUrgJ.js.gz +0 -0
  170. package/dist/assets/actionscript-3-Cs6JJXT5.js.br +0 -0
  171. package/dist/assets/actionscript-3-Cs6JJXT5.js.gz +0 -0
  172. package/dist/assets/ada-C5qYipkI.js.br +0 -0
  173. package/dist/assets/ada-C5qYipkI.js.gz +0 -0
  174. package/dist/assets/ahk-CA9gdOdF.js.br +0 -0
  175. package/dist/assets/ahk-CA9gdOdF.js.gz +0 -0
  176. package/dist/assets/ahk2-_6rzW9BS.js.br +0 -0
  177. package/dist/assets/ahk2-_6rzW9BS.js.gz +0 -0
  178. package/dist/assets/andromeeda-vGVdxbeo.js.br +0 -0
  179. package/dist/assets/andromeeda-vGVdxbeo.js.gz +0 -0
  180. package/dist/assets/angular-html-EvDzfMaC.js.br +0 -0
  181. package/dist/assets/angular-html-EvDzfMaC.js.gz +0 -0
  182. package/dist/assets/angular-ts-D_Fppbgk.js.br +0 -0
  183. package/dist/assets/angular-ts-D_Fppbgk.js.gz +0 -0
  184. package/dist/assets/apache-U0d_L8uA.js.br +0 -0
  185. package/dist/assets/apache-U0d_L8uA.js.gz +0 -0
  186. package/dist/assets/apex-KFGFyKwG.js.br +0 -0
  187. package/dist/assets/apex-KFGFyKwG.js.gz +0 -0
  188. package/dist/assets/apl-CMMvGKpa.js.br +0 -0
  189. package/dist/assets/apl-CMMvGKpa.js.gz +0 -0
  190. package/dist/assets/applescript-CCn79oCD.js.br +0 -0
  191. package/dist/assets/applescript-CCn79oCD.js.gz +0 -0
  192. package/dist/assets/ara-4CJ0cIlV.js.br +0 -0
  193. package/dist/assets/ara-4CJ0cIlV.js.gz +0 -0
  194. package/dist/assets/architectureDiagram-T3A2C74G-DJbnVK1q.js.br +0 -0
  195. package/dist/assets/architectureDiagram-T3A2C74G-DJbnVK1q.js.gz +0 -0
  196. package/dist/assets/asciidoc-SCjQUq34.js.br +0 -0
  197. package/dist/assets/asciidoc-SCjQUq34.js.gz +0 -0
  198. package/dist/assets/asm-Cmm7eHzH.js.br +0 -0
  199. package/dist/assets/asm-Cmm7eHzH.js.gz +0 -0
  200. package/dist/assets/astro-CYXUZjx4.js.br +0 -0
  201. package/dist/assets/astro-CYXUZjx4.js.gz +0 -0
  202. package/dist/assets/aurora-x-CDeNXAV0.js.br +0 -0
  203. package/dist/assets/aurora-x-CDeNXAV0.js.gz +0 -0
  204. package/dist/assets/awk-BWXHIvNe.js.br +0 -0
  205. package/dist/assets/awk-BWXHIvNe.js.gz +0 -0
  206. package/dist/assets/ayu-dark-DluEY0Gj.js.br +0 -0
  207. package/dist/assets/ayu-dark-DluEY0Gj.js.gz +0 -0
  208. package/dist/assets/ayu-light-C3h-C4tm.js.br +0 -0
  209. package/dist/assets/ayu-light-C3h-C4tm.js.gz +0 -0
  210. package/dist/assets/ayu-mirage-Bqwy1Gya.js.br +0 -0
  211. package/dist/assets/ayu-mirage-Bqwy1Gya.js.gz +0 -0
  212. package/dist/assets/ballerina-B7ZEbQpA.js.br +0 -0
  213. package/dist/assets/ballerina-B7ZEbQpA.js.gz +0 -0
  214. package/dist/assets/bat-qdxAdBWQ.js.br +0 -0
  215. package/dist/assets/bat-qdxAdBWQ.js.gz +0 -0
  216. package/dist/assets/beancount-D-usSTwE.js.br +0 -0
  217. package/dist/assets/beancount-D-usSTwE.js.gz +0 -0
  218. package/dist/assets/berry-DKpUyyne.js.br +0 -0
  219. package/dist/assets/berry-DKpUyyne.js.gz +0 -0
  220. package/dist/assets/bibtex-Ci_nEsc7.js.br +0 -0
  221. package/dist/assets/bibtex-Ci_nEsc7.js.gz +0 -0
  222. package/dist/assets/bicep-CUHmPFLl.js.br +0 -0
  223. package/dist/assets/bicep-CUHmPFLl.js.gz +0 -0
  224. package/dist/assets/bird2-CYIUgYqB.js.br +0 -0
  225. package/dist/assets/bird2-CYIUgYqB.js.gz +0 -0
  226. package/dist/assets/blade-mfXoORbc.js.br +0 -0
  227. package/dist/assets/blade-mfXoORbc.js.gz +0 -0
  228. package/dist/assets/blockDiagram-VBNYF7ZC-Qtci47Jq.js.br +0 -0
  229. package/dist/assets/blockDiagram-VBNYF7ZC-Qtci47Jq.js.gz +0 -0
  230. package/dist/assets/bsl-_VjlB9mv.js.br +0 -0
  231. package/dist/assets/bsl-_VjlB9mv.js.gz +0 -0
  232. package/dist/assets/c-mSN2GbH4.js.br +0 -0
  233. package/dist/assets/c-mSN2GbH4.js.gz +0 -0
  234. package/dist/assets/c3-D0apG41V.js.br +0 -0
  235. package/dist/assets/c3-D0apG41V.js.gz +0 -0
  236. package/dist/assets/c4Diagram-5PPSVZJV-DC9Uk9FW.js.br +0 -0
  237. package/dist/assets/c4Diagram-5PPSVZJV-DC9Uk9FW.js.gz +0 -0
  238. package/dist/assets/cadence-CQ2zXKGN.js.br +0 -0
  239. package/dist/assets/cadence-CQ2zXKGN.js.gz +0 -0
  240. package/dist/assets/cairo-DLTphjLi.js.br +0 -0
  241. package/dist/assets/cairo-DLTphjLi.js.gz +0 -0
  242. package/dist/assets/catppuccin-frappe-C9Q5zVZY.js.br +0 -0
  243. package/dist/assets/catppuccin-frappe-C9Q5zVZY.js.gz +0 -0
  244. package/dist/assets/catppuccin-latte-CtsyrtPq.js.br +0 -0
  245. package/dist/assets/catppuccin-latte-CtsyrtPq.js.gz +0 -0
  246. package/dist/assets/catppuccin-macchiato-R8nAf1vR.js.br +0 -0
  247. package/dist/assets/catppuccin-macchiato-R8nAf1vR.js.gz +0 -0
  248. package/dist/assets/catppuccin-mocha-DjuaAJKi.js.br +0 -0
  249. package/dist/assets/catppuccin-mocha-DjuaAJKi.js.gz +0 -0
  250. package/dist/assets/chapel-BG8u2Rih.js.br +0 -0
  251. package/dist/assets/chapel-BG8u2Rih.js.gz +0 -0
  252. package/dist/assets/chunk-2GRJ4B5K-C6KsYuNR.js.br +0 -0
  253. package/dist/assets/chunk-2GRJ4B5K-C6KsYuNR.js.gz +0 -0
  254. package/dist/assets/chunk-4I5QYGJK-CPsvNPUx.js.br +0 -0
  255. package/dist/assets/chunk-4I5QYGJK-CPsvNPUx.js.gz +0 -0
  256. package/dist/assets/chunk-5JV3BV7I-BrKM6vC-.js.br +0 -0
  257. package/dist/assets/chunk-5JV3BV7I-BrKM6vC-.js.gz +0 -0
  258. package/dist/assets/chunk-5RXB4S5H-CU_v2umt.js.br +0 -0
  259. package/dist/assets/chunk-5RXB4S5H-CU_v2umt.js.gz +0 -0
  260. package/dist/assets/chunk-5TONJI2A-Bdh0MHqz.js.br +0 -0
  261. package/dist/assets/chunk-5TONJI2A-Bdh0MHqz.js.gz +0 -0
  262. package/dist/assets/chunk-6Q2QTUOP-C_q0JPmG.js.br +0 -0
  263. package/dist/assets/chunk-6Q2QTUOP-C_q0JPmG.js.gz +0 -0
  264. package/dist/assets/chunk-7BUUIJ7U-Bb538aSH.js.br +0 -0
  265. package/dist/assets/chunk-7BUUIJ7U-Bb538aSH.js.gz +0 -0
  266. package/dist/assets/chunk-7Z6QIM7H-jM3JGv9o.js.br +0 -0
  267. package/dist/assets/chunk-7Z6QIM7H-jM3JGv9o.js.gz +0 -0
  268. package/dist/assets/chunk-GF5L2VYU-Dp_0e4Vj.js.br +0 -0
  269. package/dist/assets/chunk-GF5L2VYU-Dp_0e4Vj.js.gz +0 -0
  270. package/dist/assets/chunk-I66GZJ75-CLtbCU_E.js.br +0 -0
  271. package/dist/assets/chunk-I66GZJ75-CLtbCU_E.js.gz +0 -0
  272. package/dist/assets/chunk-J7OUQ5F2-C4uAdkrD.js.br +0 -0
  273. package/dist/assets/chunk-J7OUQ5F2-C4uAdkrD.js.gz +0 -0
  274. package/dist/assets/chunk-JG7HCLWE-lCTbN-f1.js.br +0 -0
  275. package/dist/assets/chunk-JG7HCLWE-lCTbN-f1.js.gz +0 -0
  276. package/dist/assets/chunk-JQJVKLGR-BlTMFaN6.js.br +0 -0
  277. package/dist/assets/chunk-JQJVKLGR-BlTMFaN6.js.gz +0 -0
  278. package/dist/assets/chunk-KEIR6QF5-ydf36Hye.js.br +0 -0
  279. package/dist/assets/chunk-KEIR6QF5-ydf36Hye.js.gz +0 -0
  280. package/dist/assets/chunk-NSK5VX7P-B7tNpEbR.js.br +0 -0
  281. package/dist/assets/chunk-NSK5VX7P-B7tNpEbR.js.gz +0 -0
  282. package/dist/assets/chunk-QR6OTTB3-B3mQWEI2.js.br +0 -0
  283. package/dist/assets/chunk-QR6OTTB3-B3mQWEI2.js.gz +0 -0
  284. package/dist/assets/chunk-R7FJI6CG-DsJHM8am.js.br +0 -0
  285. package/dist/assets/chunk-R7FJI6CG-DsJHM8am.js.gz +0 -0
  286. package/dist/assets/chunk-RYQCIY6F-B3DAS_Q-.js.br +0 -0
  287. package/dist/assets/chunk-RYQCIY6F-B3DAS_Q-.js.gz +0 -0
  288. package/dist/assets/chunk-U6XO7XAA-D-dXvZaW.js.br +0 -0
  289. package/dist/assets/chunk-U6XO7XAA-D-dXvZaW.js.gz +0 -0
  290. package/dist/assets/chunk-W5SLKNZC-DWOVkEVc.js.br +0 -0
  291. package/dist/assets/chunk-W5SLKNZC-DWOVkEVc.js.gz +0 -0
  292. package/dist/assets/chunk-WRU74C26-DR5g8owc.js.br +0 -0
  293. package/dist/assets/chunk-WRU74C26-DR5g8owc.js.gz +0 -0
  294. package/dist/assets/chunk-ZIRB5QZD-O39ZBUk3.js.br +0 -0
  295. package/dist/assets/chunk-ZIRB5QZD-O39ZBUk3.js.gz +0 -0
  296. package/dist/assets/clarity-CtfBBspg.js.br +0 -0
  297. package/dist/assets/clarity-CtfBBspg.js.gz +0 -0
  298. package/dist/assets/clojure-DqKBuwfJ.js.br +0 -0
  299. package/dist/assets/clojure-DqKBuwfJ.js.gz +0 -0
  300. package/dist/assets/cmake-Bj61d0ZC.js.br +0 -0
  301. package/dist/assets/cmake-Bj61d0ZC.js.gz +0 -0
  302. package/dist/assets/cobol-Bhp1bana.js.br +0 -0
  303. package/dist/assets/cobol-Bhp1bana.js.gz +0 -0
  304. package/dist/assets/codeql-oeQT6MSM.js.br +0 -0
  305. package/dist/assets/codeql-oeQT6MSM.js.gz +0 -0
  306. package/dist/assets/coffee-C17FjuDx.js.br +0 -0
  307. package/dist/assets/coffee-C17FjuDx.js.gz +0 -0
  308. package/dist/assets/common-lisp-Cv5bFMCO.js.br +0 -0
  309. package/dist/assets/common-lisp-Cv5bFMCO.js.gz +0 -0
  310. package/dist/assets/coq-DuBRPxYg.js.br +0 -0
  311. package/dist/assets/coq-DuBRPxYg.js.gz +0 -0
  312. package/dist/assets/cose-bilkent-JH36ORCC-CcXrYRrs.js.br +0 -0
  313. package/dist/assets/cose-bilkent-JH36ORCC-CcXrYRrs.js.gz +0 -0
  314. package/dist/assets/cpp-svqsdV-V.js.br +0 -0
  315. package/dist/assets/cpp-svqsdV-V.js.gz +0 -0
  316. package/dist/assets/createDerive-Byjn6nRi.js +0 -1
  317. package/dist/assets/createDerive-Byjn6nRi.js.br +0 -0
  318. package/dist/assets/createDerive-Byjn6nRi.js.gz +0 -0
  319. package/dist/assets/crystal-D9vhA8G_.js.br +0 -0
  320. package/dist/assets/crystal-D9vhA8G_.js.gz +0 -0
  321. package/dist/assets/csharp-oqKa8noW.js.br +0 -0
  322. package/dist/assets/csharp-oqKa8noW.js.gz +0 -0
  323. package/dist/assets/css-DkbmQzJL.js.br +0 -0
  324. package/dist/assets/css-DkbmQzJL.js.gz +0 -0
  325. package/dist/assets/csv-Dx-8-gkx.js.br +0 -0
  326. package/dist/assets/csv-Dx-8-gkx.js.gz +0 -0
  327. package/dist/assets/cue-CE9AQfxI.js.br +0 -0
  328. package/dist/assets/cue-CE9AQfxI.js.gz +0 -0
  329. package/dist/assets/cynefinDiagram-MW4NZA55-DuPIOMPB.js.br +0 -0
  330. package/dist/assets/cynefinDiagram-MW4NZA55-DuPIOMPB.js.gz +0 -0
  331. package/dist/assets/cypher-ClKdZ_lG.js.br +0 -0
  332. package/dist/assets/cypher-ClKdZ_lG.js.gz +0 -0
  333. package/dist/assets/cytoscape.esm-B-NFISlW.js.br +0 -0
  334. package/dist/assets/cytoscape.esm-B-NFISlW.js.gz +0 -0
  335. package/dist/assets/d-qD-0Kul2.js.br +0 -0
  336. package/dist/assets/d-qD-0Kul2.js.gz +0 -0
  337. package/dist/assets/dagre-Buvkdvvj.js.br +0 -0
  338. package/dist/assets/dagre-Buvkdvvj.js.gz +0 -0
  339. package/dist/assets/dagre-VZM6K2ZE-CHbs07zF.js.br +0 -0
  340. package/dist/assets/dagre-VZM6K2ZE-CHbs07zF.js.gz +0 -0
  341. package/dist/assets/dark-plus-Cs2F2srj.js.br +0 -0
  342. package/dist/assets/dark-plus-Cs2F2srj.js.gz +0 -0
  343. package/dist/assets/dart-CnvKMtbv.js.br +0 -0
  344. package/dist/assets/dart-CnvKMtbv.js.gz +0 -0
  345. package/dist/assets/data-adapter-BJj1HN8X.js +0 -24
  346. package/dist/assets/data-adapter-BJj1HN8X.js.br +0 -0
  347. package/dist/assets/data-adapter-BJj1HN8X.js.gz +0 -0
  348. package/dist/assets/dax-BkyTk9wS.js.br +0 -0
  349. package/dist/assets/dax-BkyTk9wS.js.gz +0 -0
  350. package/dist/assets/desktop-Dlh5hvp9.js.br +0 -0
  351. package/dist/assets/desktop-Dlh5hvp9.js.gz +0 -0
  352. package/dist/assets/diagram-7IWD3JNH-sPS-Y-CP.js.br +0 -0
  353. package/dist/assets/diagram-7IWD3JNH-sPS-Y-CP.js.gz +0 -0
  354. package/dist/assets/diagram-B4RE2ZJO-C4Essr7L.js.br +0 -0
  355. package/dist/assets/diagram-B4RE2ZJO-C4Essr7L.js.gz +0 -0
  356. package/dist/assets/diagram-LBJQPF4R-CluEJ_Yg.js.br +0 -0
  357. package/dist/assets/diagram-LBJQPF4R-CluEJ_Yg.js.gz +0 -0
  358. package/dist/assets/diagram-Q27KOJAE-D4lem9jQ.js.br +0 -0
  359. package/dist/assets/diagram-Q27KOJAE-D4lem9jQ.js.gz +0 -0
  360. package/dist/assets/diagram-UB23O5K3-Bfj6mHJD.js.br +0 -0
  361. package/dist/assets/diagram-UB23O5K3-Bfj6mHJD.js.gz +0 -0
  362. package/dist/assets/diff-woXpYk--.js.br +0 -0
  363. package/dist/assets/diff-woXpYk--.js.gz +0 -0
  364. package/dist/assets/dist-B7OHp69Q.js.br +0 -0
  365. package/dist/assets/dist-B7OHp69Q.js.gz +0 -0
  366. package/dist/assets/dist-D3VfqzjO.js.br +0 -0
  367. package/dist/assets/dist-D3VfqzjO.js.gz +0 -0
  368. package/dist/assets/docker-IyjqRm3v.js.br +0 -0
  369. package/dist/assets/docker-IyjqRm3v.js.gz +0 -0
  370. package/dist/assets/dotenv-_5a1GRtc.js.br +0 -0
  371. package/dist/assets/dotenv-_5a1GRtc.js.gz +0 -0
  372. package/dist/assets/dracula-BHWKrbxM.js.br +0 -0
  373. package/dist/assets/dracula-BHWKrbxM.js.gz +0 -0
  374. package/dist/assets/dracula-soft-5eyTD99u.js.br +0 -0
  375. package/dist/assets/dracula-soft-5eyTD99u.js.gz +0 -0
  376. package/dist/assets/dream-maker-DW3nJb8Q.js.br +0 -0
  377. package/dist/assets/dream-maker-DW3nJb8Q.js.gz +0 -0
  378. package/dist/assets/drillUrlFilters-DHAQHZbx.js.br +0 -0
  379. package/dist/assets/drillUrlFilters-DHAQHZbx.js.gz +0 -0
  380. package/dist/assets/ebnfDiagram-BXEA7PRR-BKXyHLd_.js.br +0 -0
  381. package/dist/assets/ebnfDiagram-BXEA7PRR-BKXyHLd_.js.gz +0 -0
  382. package/dist/assets/edge-DVm6-hiM.js.br +0 -0
  383. package/dist/assets/edge-DVm6-hiM.js.gz +0 -0
  384. package/dist/assets/elixir-BQoS1tEv.js.br +0 -0
  385. package/dist/assets/elixir-BQoS1tEv.js.gz +0 -0
  386. package/dist/assets/elm-D_TZK0Oc.js.br +0 -0
  387. package/dist/assets/elm-D_TZK0Oc.js.gz +0 -0
  388. package/dist/assets/emacs-lisp-c_oH4hRZ.js.br +0 -0
  389. package/dist/assets/emacs-lisp-c_oH4hRZ.js.gz +0 -0
  390. package/dist/assets/erDiagram-JOGREHBK-B6_uGYAF.js.br +0 -0
  391. package/dist/assets/erDiagram-JOGREHBK-B6_uGYAF.js.gz +0 -0
  392. package/dist/assets/erb-DFs7gCnY.js.br +0 -0
  393. package/dist/assets/erb-DFs7gCnY.js.gz +0 -0
  394. package/dist/assets/erlang-Cphh6RMH.js.br +0 -0
  395. package/dist/assets/erlang-Cphh6RMH.js.gz +0 -0
  396. package/dist/assets/everforest-dark-sB-x3p7T.js.br +0 -0
  397. package/dist/assets/everforest-dark-sB-x3p7T.js.gz +0 -0
  398. package/dist/assets/everforest-light-Df2xbC6M.js.br +0 -0
  399. package/dist/assets/everforest-light-Df2xbC6M.js.gz +0 -0
  400. package/dist/assets/exceljs.min-BYqCKPdJ.js.br +0 -0
  401. package/dist/assets/exceljs.min-BYqCKPdJ.js.gz +0 -0
  402. package/dist/assets/fennel-DQxkIbk2.js.br +0 -0
  403. package/dist/assets/fennel-DQxkIbk2.js.gz +0 -0
  404. package/dist/assets/fish-BJitypiv.js.br +0 -0
  405. package/dist/assets/fish-BJitypiv.js.gz +0 -0
  406. package/dist/assets/fluent-C03EYrpw.js.br +0 -0
  407. package/dist/assets/fluent-C03EYrpw.js.gz +0 -0
  408. package/dist/assets/fortran-fixed-form-DEKoE2YW.js.br +0 -0
  409. package/dist/assets/fortran-fixed-form-DEKoE2YW.js.gz +0 -0
  410. package/dist/assets/fortran-free-form-CYNrtFtB.js.br +0 -0
  411. package/dist/assets/fortran-free-form-CYNrtFtB.js.gz +0 -0
  412. package/dist/assets/framework-DDZiA4ii.js +0 -8
  413. package/dist/assets/framework-DDZiA4ii.js.br +0 -0
  414. package/dist/assets/framework-DDZiA4ii.js.gz +0 -0
  415. package/dist/assets/fsharp-D13ZGOAj.js.br +0 -0
  416. package/dist/assets/fsharp-D13ZGOAj.js.gz +0 -0
  417. package/dist/assets/ganttDiagram-PKOTCBZU-Cip5kKH4.js.br +0 -0
  418. package/dist/assets/ganttDiagram-PKOTCBZU-Cip5kKH4.js.gz +0 -0
  419. package/dist/assets/gdresource-xMC7jr7x.js.br +0 -0
  420. package/dist/assets/gdresource-xMC7jr7x.js.gz +0 -0
  421. package/dist/assets/gdscript-DYvRD3hg.js.br +0 -0
  422. package/dist/assets/gdscript-DYvRD3hg.js.gz +0 -0
  423. package/dist/assets/gdshader-CBce3t8t.js.br +0 -0
  424. package/dist/assets/gdshader-CBce3t8t.js.gz +0 -0
  425. package/dist/assets/genie-CV2tkWYe.js.br +0 -0
  426. package/dist/assets/genie-CV2tkWYe.js.gz +0 -0
  427. package/dist/assets/getIcon-DGZbbWGj.js +0 -1
  428. package/dist/assets/gherkin-DExj1W_8.js.br +0 -0
  429. package/dist/assets/gherkin-DExj1W_8.js.gz +0 -0
  430. package/dist/assets/git-commit-BSykSTBG.js.br +0 -0
  431. package/dist/assets/git-commit-BSykSTBG.js.gz +0 -0
  432. package/dist/assets/gitGraphDiagram-DS77QQ5N-CF75OjHf.js.br +0 -0
  433. package/dist/assets/gitGraphDiagram-DS77QQ5N-CF75OjHf.js.gz +0 -0
  434. package/dist/assets/github-dark-C-LZuMrd.js.br +0 -0
  435. package/dist/assets/github-dark-C-LZuMrd.js.gz +0 -0
  436. package/dist/assets/github-dark-default-DXG-b-1a.js.br +0 -0
  437. package/dist/assets/github-dark-default-DXG-b-1a.js.gz +0 -0
  438. package/dist/assets/github-dark-dimmed-Bx1FflLF.js.br +0 -0
  439. package/dist/assets/github-dark-dimmed-Bx1FflLF.js.gz +0 -0
  440. package/dist/assets/github-dark-high-contrast-B_tTalzw.js.br +0 -0
  441. package/dist/assets/github-dark-high-contrast-B_tTalzw.js.gz +0 -0
  442. package/dist/assets/github-light-EUqPIrTm.js.br +0 -0
  443. package/dist/assets/github-light-EUqPIrTm.js.gz +0 -0
  444. package/dist/assets/github-light-default-BXViO-2h.js.br +0 -0
  445. package/dist/assets/github-light-default-BXViO-2h.js.gz +0 -0
  446. package/dist/assets/github-light-high-contrast-B68TUdTA.js.br +0 -0
  447. package/dist/assets/github-light-high-contrast-B68TUdTA.js.gz +0 -0
  448. package/dist/assets/gleam-CSRkHgEL.js.br +0 -0
  449. package/dist/assets/gleam-CSRkHgEL.js.gz +0 -0
  450. package/dist/assets/glimmer-js-Cpr0NJvA.js.br +0 -0
  451. package/dist/assets/glimmer-js-Cpr0NJvA.js.gz +0 -0
  452. package/dist/assets/glimmer-ts-CYbTSzY6.js.br +0 -0
  453. package/dist/assets/glimmer-ts-CYbTSzY6.js.gz +0 -0
  454. package/dist/assets/glsl-C3yOxx6A.js.br +0 -0
  455. package/dist/assets/glsl-C3yOxx6A.js.gz +0 -0
  456. package/dist/assets/gn-ilITqXS6.js.br +0 -0
  457. package/dist/assets/gn-ilITqXS6.js.gz +0 -0
  458. package/dist/assets/gnuplot-7GGW24-e.js.br +0 -0
  459. package/dist/assets/gnuplot-7GGW24-e.js.gz +0 -0
  460. package/dist/assets/go-rLFTqkRN.js.br +0 -0
  461. package/dist/assets/go-rLFTqkRN.js.gz +0 -0
  462. package/dist/assets/graphlib-DS17s2tU.js.br +0 -0
  463. package/dist/assets/graphlib-DS17s2tU.js.gz +0 -0
  464. package/dist/assets/graphql-DlruBr94.js.br +0 -0
  465. package/dist/assets/graphql-DlruBr94.js.gz +0 -0
  466. package/dist/assets/groovy-CacY0gHj.js.br +0 -0
  467. package/dist/assets/groovy-CacY0gHj.js.gz +0 -0
  468. package/dist/assets/gruvbox-dark-hard-C820rvS2.js.br +0 -0
  469. package/dist/assets/gruvbox-dark-hard-C820rvS2.js.gz +0 -0
  470. package/dist/assets/gruvbox-dark-medium-BPjhmG05.js.br +0 -0
  471. package/dist/assets/gruvbox-dark-medium-BPjhmG05.js.gz +0 -0
  472. package/dist/assets/gruvbox-dark-soft-MrdJrrXF.js.br +0 -0
  473. package/dist/assets/gruvbox-dark-soft-MrdJrrXF.js.gz +0 -0
  474. package/dist/assets/gruvbox-light-hard-BC_s9l72.js.br +0 -0
  475. package/dist/assets/gruvbox-light-hard-BC_s9l72.js.gz +0 -0
  476. package/dist/assets/gruvbox-light-medium-BAWPOn9u.js.br +0 -0
  477. package/dist/assets/gruvbox-light-medium-BAWPOn9u.js.gz +0 -0
  478. package/dist/assets/gruvbox-light-soft-BSMLrYjP.js.br +0 -0
  479. package/dist/assets/gruvbox-light-soft-BSMLrYjP.js.gz +0 -0
  480. package/dist/assets/hack-Cn178EEI.js.br +0 -0
  481. package/dist/assets/hack-Cn178EEI.js.gz +0 -0
  482. package/dist/assets/haml-ReV9wHjP.js.br +0 -0
  483. package/dist/assets/haml-ReV9wHjP.js.gz +0 -0
  484. package/dist/assets/handlebars-D74Ug8_P.js.br +0 -0
  485. package/dist/assets/handlebars-D74Ug8_P.js.gz +0 -0
  486. package/dist/assets/haskell-D8IpX4py.js.br +0 -0
  487. package/dist/assets/haskell-D8IpX4py.js.gz +0 -0
  488. package/dist/assets/haxe-C8oCnwJJ.js.br +0 -0
  489. package/dist/assets/haxe-C8oCnwJJ.js.gz +0 -0
  490. package/dist/assets/hcl-Dh228itO.js.br +0 -0
  491. package/dist/assets/hcl-Dh228itO.js.gz +0 -0
  492. package/dist/assets/hjson-CxZEssPk.js.br +0 -0
  493. package/dist/assets/hjson-CxZEssPk.js.gz +0 -0
  494. package/dist/assets/hlsl-Cvrh5tZx.js.br +0 -0
  495. package/dist/assets/hlsl-Cvrh5tZx.js.gz +0 -0
  496. package/dist/assets/horizon-CE9ld1lL.js.br +0 -0
  497. package/dist/assets/horizon-CE9ld1lL.js.gz +0 -0
  498. package/dist/assets/horizon-bright-DSNQnXHK.js.br +0 -0
  499. package/dist/assets/horizon-bright-DSNQnXHK.js.gz +0 -0
  500. package/dist/assets/houston-CsvMBhTu.js.br +0 -0
  501. package/dist/assets/houston-CsvMBhTu.js.gz +0 -0
  502. package/dist/assets/html-BPYeLA3q.js.br +0 -0
  503. package/dist/assets/html-BPYeLA3q.js.gz +0 -0
  504. package/dist/assets/http-Dy2ncae7.js.br +0 -0
  505. package/dist/assets/http-Dy2ncae7.js.gz +0 -0
  506. package/dist/assets/hurl-Cb5XgwOM.js.br +0 -0
  507. package/dist/assets/hurl-Cb5XgwOM.js.gz +0 -0
  508. package/dist/assets/hxml-Dcm88srW.js.br +0 -0
  509. package/dist/assets/hxml-Dcm88srW.js.gz +0 -0
  510. package/dist/assets/hy-CZbG8q4J.js.br +0 -0
  511. package/dist/assets/hy-CZbG8q4J.js.gz +0 -0
  512. package/dist/assets/i18n-Darz-xgN.js +0 -9
  513. package/dist/assets/i18n-Darz-xgN.js.br +0 -0
  514. package/dist/assets/i18n-Darz-xgN.js.gz +0 -0
  515. package/dist/assets/imba-DsUTQ-LC.js.br +0 -0
  516. package/dist/assets/imba-DsUTQ-LC.js.gz +0 -0
  517. package/dist/assets/index-0lJaiIcB.js +0 -2
  518. package/dist/assets/index-0lJaiIcB.js.br +0 -0
  519. package/dist/assets/index-0lJaiIcB.js.gz +0 -0
  520. package/dist/assets/index-VKN7CDwN.css +0 -2
  521. package/dist/assets/index-VKN7CDwN.css.br +0 -0
  522. package/dist/assets/index-VKN7CDwN.css.gz +0 -0
  523. package/dist/assets/infrastructure-DG9xHrYB.js +0 -3
  524. package/dist/assets/infrastructure-DG9xHrYB.js.br +0 -0
  525. package/dist/assets/infrastructure-DG9xHrYB.js.gz +0 -0
  526. package/dist/assets/ini-B5eOa1yu.js.br +0 -5
  527. package/dist/assets/ini-B5eOa1yu.js.gz +0 -0
  528. package/dist/assets/ishikawaDiagram-WSZJBQD7-D8FhFMwb.js.br +0 -0
  529. package/dist/assets/ishikawaDiagram-WSZJBQD7-D8FhFMwb.js.gz +0 -0
  530. package/dist/assets/java-CCLYh7Ws.js.br +0 -0
  531. package/dist/assets/java-CCLYh7Ws.js.gz +0 -0
  532. package/dist/assets/javascript-B3ZoUvGD.js.br +0 -0
  533. package/dist/assets/javascript-B3ZoUvGD.js.gz +0 -0
  534. package/dist/assets/jinja-I6vrZFw_.js.br +0 -0
  535. package/dist/assets/jinja-I6vrZFw_.js.gz +0 -0
  536. package/dist/assets/jison-C7uQeUlv.js.br +0 -0
  537. package/dist/assets/jison-C7uQeUlv.js.gz +0 -0
  538. package/dist/assets/journeyDiagram-NVQOT4AX-C1y_DqRe.js.br +0 -0
  539. package/dist/assets/journeyDiagram-NVQOT4AX-C1y_DqRe.js.gz +0 -0
  540. package/dist/assets/json-DYyUca0x.js.br +0 -0
  541. package/dist/assets/json-DYyUca0x.js.gz +0 -0
  542. package/dist/assets/json5-BR5RXkoi.js.br +0 -0
  543. package/dist/assets/json5-BR5RXkoi.js.gz +0 -0
  544. package/dist/assets/jsonc-CYpm1nAK.js.br +0 -0
  545. package/dist/assets/jsonc-CYpm1nAK.js.gz +0 -0
  546. package/dist/assets/jsonl-CmCQp5Yx.js.br +0 -0
  547. package/dist/assets/jsonl-CmCQp5Yx.js.gz +0 -0
  548. package/dist/assets/jsonnet-CJTPZ8u_.js.br +0 -0
  549. package/dist/assets/jsonnet-CJTPZ8u_.js.gz +0 -0
  550. package/dist/assets/jssm-DXw9l8Rf.js.br +0 -0
  551. package/dist/assets/jssm-DXw9l8Rf.js.gz +0 -0
  552. package/dist/assets/jsx-Cb6Vub3Y.js.br +0 -0
  553. package/dist/assets/jsx-Cb6Vub3Y.js.gz +0 -0
  554. package/dist/assets/julia-BIoAlrTe.js.br +0 -0
  555. package/dist/assets/julia-BIoAlrTe.js.gz +0 -0
  556. package/dist/assets/just-CwqxWwqp.js.br +0 -0
  557. package/dist/assets/just-CwqxWwqp.js.gz +0 -0
  558. package/dist/assets/kanagawa-dragon-Bozd7klA.js.br +0 -0
  559. package/dist/assets/kanagawa-dragon-Bozd7klA.js.gz +0 -0
  560. package/dist/assets/kanagawa-lotus-BmuOG9ZW.js.br +0 -0
  561. package/dist/assets/kanagawa-lotus-BmuOG9ZW.js.gz +0 -0
  562. package/dist/assets/kanagawa-wave-BML5mF2J.js.br +0 -0
  563. package/dist/assets/kanagawa-wave-BML5mF2J.js.gz +0 -0
  564. package/dist/assets/kanban-definition-27J2QSJJ-DIUOavva.js.br +0 -0
  565. package/dist/assets/kanban-definition-27J2QSJJ-DIUOavva.js.gz +0 -0
  566. package/dist/assets/katex-CXMH3UgJ.js.br +0 -0
  567. package/dist/assets/katex-CXMH3UgJ.js.gz +0 -0
  568. package/dist/assets/kdl-CsD5j6eV.js.br +0 -0
  569. package/dist/assets/kdl-CsD5j6eV.js.gz +0 -0
  570. package/dist/assets/kotlin-DhhofPvG.js.br +0 -0
  571. package/dist/assets/kotlin-DhhofPvG.js.gz +0 -0
  572. package/dist/assets/kusto-C7mF5XQf.js.br +0 -0
  573. package/dist/assets/kusto-C7mF5XQf.js.gz +0 -0
  574. package/dist/assets/laserwave-C_8bwKvT.js.br +0 -0
  575. package/dist/assets/laserwave-C_8bwKvT.js.gz +0 -0
  576. package/dist/assets/latex-D7YcOmGi.js.br +0 -0
  577. package/dist/assets/latex-D7YcOmGi.js.gz +0 -0
  578. package/dist/assets/lean-CewbzKMR.js.br +0 -0
  579. package/dist/assets/lean-CewbzKMR.js.gz +0 -0
  580. package/dist/assets/less-DVTAwKKz.js.br +0 -0
  581. package/dist/assets/less-DVTAwKKz.js.gz +0 -0
  582. package/dist/assets/light-plus-DVQuIRkW.js.br +0 -0
  583. package/dist/assets/light-plus-DVQuIRkW.js.gz +0 -0
  584. package/dist/assets/liquid-DZU1d9jH.js.br +0 -0
  585. package/dist/assets/liquid-DZU1d9jH.js.gz +0 -0
  586. package/dist/assets/llvm-DqHOMS-s.js.br +0 -0
  587. package/dist/assets/llvm-DqHOMS-s.js.gz +0 -0
  588. package/dist/assets/log-BNLmms1o.js.br +0 -0
  589. package/dist/assets/log-BNLmms1o.js.gz +0 -0
  590. package/dist/assets/logo-Cluzi2Zq.js.br +0 -0
  591. package/dist/assets/logo-Cluzi2Zq.js.gz +0 -0
  592. package/dist/assets/lua-tuq8Rev2.js.br +0 -0
  593. package/dist/assets/lua-tuq8Rev2.js.gz +0 -0
  594. package/dist/assets/luau-C2pBCSgt.js.br +0 -0
  595. package/dist/assets/luau-C2pBCSgt.js.gz +0 -0
  596. package/dist/assets/make-Dixweg8N.js.br +0 -0
  597. package/dist/assets/make-Dixweg8N.js.gz +0 -0
  598. package/dist/assets/map-BaFkSB1l.js.br +0 -0
  599. package/dist/assets/map-BaFkSB1l.js.gz +0 -0
  600. package/dist/assets/maplibre-gl-DPzMTNDD.js.br +0 -0
  601. package/dist/assets/maplibre-gl-DPzMTNDD.js.gz +0 -0
  602. package/dist/assets/maplibre-gl-shared.mjs.br +0 -0
  603. package/dist/assets/maplibre-gl-shared.mjs.gz +0 -0
  604. package/dist/assets/maplibre-gl-worker.mjs.br +0 -0
  605. package/dist/assets/maplibre-gl-worker.mjs.gz +0 -0
  606. package/dist/assets/markdown-BYOwaDjH.js.br +0 -0
  607. package/dist/assets/markdown-BYOwaDjH.js.gz +0 -0
  608. package/dist/assets/marko-B27e1lfg.js.br +0 -0
  609. package/dist/assets/marko-B27e1lfg.js.gz +0 -0
  610. package/dist/assets/material-theme-Bm3Qr25_.js.br +0 -0
  611. package/dist/assets/material-theme-Bm3Qr25_.js.gz +0 -0
  612. package/dist/assets/material-theme-darker-2IIEA8gg.js.br +0 -0
  613. package/dist/assets/material-theme-darker-2IIEA8gg.js.gz +0 -0
  614. package/dist/assets/material-theme-lighter-uhdI0v04.js.br +0 -0
  615. package/dist/assets/material-theme-lighter-uhdI0v04.js.gz +0 -0
  616. package/dist/assets/material-theme-ocean-CHQ94UKr.js.br +0 -0
  617. package/dist/assets/material-theme-ocean-CHQ94UKr.js.gz +0 -0
  618. package/dist/assets/material-theme-palenight-B5W6OYN7.js.br +0 -0
  619. package/dist/assets/material-theme-palenight-B5W6OYN7.js.gz +0 -0
  620. package/dist/assets/matlab-D7qyCx1q.js.br +0 -0
  621. package/dist/assets/matlab-D7qyCx1q.js.gz +0 -0
  622. package/dist/assets/mdc-4Lg-bkXO.js.br +0 -0
  623. package/dist/assets/mdc-4Lg-bkXO.js.gz +0 -0
  624. package/dist/assets/mdx-DQZ5AkYe.js.br +0 -0
  625. package/dist/assets/mdx-DQZ5AkYe.js.gz +0 -0
  626. package/dist/assets/mermaid-BxpfTIzt.js.br +0 -0
  627. package/dist/assets/mermaid-BxpfTIzt.js.gz +0 -0
  628. package/dist/assets/mermaid-GHXKKRXX-BKnA-Tt-.js +0 -1
  629. package/dist/assets/mermaid-parser.core-BbBeSajF.js.br +0 -0
  630. package/dist/assets/mermaid-parser.core-BbBeSajF.js.gz +0 -0
  631. package/dist/assets/mermaid.core-Dc9p2r4P.js.br +0 -0
  632. package/dist/assets/mermaid.core-Dc9p2r4P.js.gz +0 -0
  633. package/dist/assets/metadata-admin-CQrvfQZw.js +0 -25
  634. package/dist/assets/metadata-admin-CQrvfQZw.js.br +0 -0
  635. package/dist/assets/metadata-admin-CQrvfQZw.js.gz +0 -0
  636. package/dist/assets/min-dark-BSWPekZh.js.br +0 -0
  637. package/dist/assets/min-dark-BSWPekZh.js.gz +0 -0
  638. package/dist/assets/min-light-DDpmG2fV.js.br +0 -0
  639. package/dist/assets/min-light-DDpmG2fV.js.gz +0 -0
  640. package/dist/assets/mindmap-definition-FAOFIHXS-TIsZfgu-.js.br +0 -0
  641. package/dist/assets/mindmap-definition-FAOFIHXS-TIsZfgu-.js.gz +0 -0
  642. package/dist/assets/mipsasm-BMqwQI7S.js.br +0 -0
  643. package/dist/assets/mipsasm-BMqwQI7S.js.gz +0 -0
  644. package/dist/assets/mojo-fg40_ntQ.js.br +0 -0
  645. package/dist/assets/mojo-fg40_ntQ.js.gz +0 -0
  646. package/dist/assets/monokai-B_bV9PQ9.js.br +0 -0
  647. package/dist/assets/monokai-B_bV9PQ9.js.gz +0 -0
  648. package/dist/assets/moonbit-DgjMoLWr.js.br +0 -0
  649. package/dist/assets/moonbit-DgjMoLWr.js.gz +0 -0
  650. package/dist/assets/move-BYnGhZoM.js.br +0 -0
  651. package/dist/assets/move-BYnGhZoM.js.gz +0 -0
  652. package/dist/assets/narrat-_X_XdTYD.js.br +0 -0
  653. package/dist/assets/narrat-_X_XdTYD.js.gz +0 -0
  654. package/dist/assets/nextflow-BJtWHP5T.js.br +0 -0
  655. package/dist/assets/nextflow-BJtWHP5T.js.gz +0 -0
  656. package/dist/assets/nextflow-groovy-DJMQeKeT.js.br +0 -0
  657. package/dist/assets/nextflow-groovy-DJMQeKeT.js.gz +0 -0
  658. package/dist/assets/nginx-nAXs0UmH.js.br +0 -0
  659. package/dist/assets/nginx-nAXs0UmH.js.gz +0 -0
  660. package/dist/assets/night-owl-DhmEMT88.js.br +0 -0
  661. package/dist/assets/night-owl-DhmEMT88.js.gz +0 -0
  662. package/dist/assets/night-owl-light-eJ-hLW7d.js.br +0 -0
  663. package/dist/assets/night-owl-light-eJ-hLW7d.js.gz +0 -0
  664. package/dist/assets/nim-CCdQjvI2.js.br +0 -0
  665. package/dist/assets/nim-CCdQjvI2.js.gz +0 -0
  666. package/dist/assets/nix-IvuFDN5E.js.br +0 -0
  667. package/dist/assets/nix-IvuFDN5E.js.gz +0 -0
  668. package/dist/assets/nord-Cb4Vim4T.js.br +0 -0
  669. package/dist/assets/nord-Cb4Vim4T.js.gz +0 -0
  670. package/dist/assets/nsis-CjNLYCLg.js.br +0 -0
  671. package/dist/assets/nsis-CjNLYCLg.js.gz +0 -0
  672. package/dist/assets/nushell-DHYfO66s.js.br +0 -0
  673. package/dist/assets/nushell-DHYfO66s.js.gz +0 -0
  674. package/dist/assets/objective-c-D1A_Heim.js.br +0 -0
  675. package/dist/assets/objective-c-D1A_Heim.js.gz +0 -0
  676. package/dist/assets/objective-cpp-BsSzOQcm.js.br +0 -0
  677. package/dist/assets/objective-cpp-BsSzOQcm.js.gz +0 -0
  678. package/dist/assets/ocaml-O90oeIOV.js.br +0 -0
  679. package/dist/assets/ocaml-O90oeIOV.js.gz +0 -0
  680. package/dist/assets/odin-B1RWQWA5.js.br +0 -0
  681. package/dist/assets/odin-B1RWQWA5.js.gz +0 -0
  682. package/dist/assets/one-dark-pro-CLwyXe_n.js.br +0 -0
  683. package/dist/assets/one-dark-pro-CLwyXe_n.js.gz +0 -0
  684. package/dist/assets/one-light-D7Lr4KcI.js.br +0 -0
  685. package/dist/assets/one-light-D7Lr4KcI.js.gz +0 -0
  686. package/dist/assets/openscad-BUDT5pXO.js.br +0 -0
  687. package/dist/assets/openscad-BUDT5pXO.js.gz +0 -0
  688. package/dist/assets/org-DhkRzv3S.js.br +0 -0
  689. package/dist/assets/org-DhkRzv3S.js.gz +0 -0
  690. package/dist/assets/pascal-4ZHwLPI5.js.br +0 -0
  691. package/dist/assets/pascal-4ZHwLPI5.js.gz +0 -0
  692. package/dist/assets/pegDiagram-VL7TDLO6-BrUvPfjL.js.br +0 -0
  693. package/dist/assets/pegDiagram-VL7TDLO6-BrUvPfjL.js.gz +0 -0
  694. package/dist/assets/perl-iLGR5v3R.js.br +0 -0
  695. package/dist/assets/perl-iLGR5v3R.js.gz +0 -0
  696. package/dist/assets/php-DgsNzQlf.js.br +0 -0
  697. package/dist/assets/php-DgsNzQlf.js.gz +0 -0
  698. package/dist/assets/pieDiagram-7S7Q4E2Y-BNPIri0N.js.br +0 -0
  699. package/dist/assets/pieDiagram-7S7Q4E2Y-BNPIri0N.js.gz +0 -0
  700. package/dist/assets/pkl-ot-7Btpt.js.br +0 -0
  701. package/dist/assets/pkl-ot-7Btpt.js.gz +0 -0
  702. package/dist/assets/plastic-DQwYfKfQ.js.br +0 -0
  703. package/dist/assets/plastic-DQwYfKfQ.js.gz +0 -0
  704. package/dist/assets/plsql-DGHpHOYJ.js.br +0 -0
  705. package/dist/assets/plsql-DGHpHOYJ.js.gz +0 -0
  706. package/dist/assets/plugin-calendar-DI5hFrRH.js +0 -1
  707. package/dist/assets/plugin-calendar-DI5hFrRH.js.br +0 -0
  708. package/dist/assets/plugin-calendar-DI5hFrRH.js.gz +0 -0
  709. package/dist/assets/plugin-charts-BuotHBLk.js +0 -7
  710. package/dist/assets/plugin-charts-BuotHBLk.js.br +0 -0
  711. package/dist/assets/plugin-charts-BuotHBLk.js.gz +0 -0
  712. package/dist/assets/plugin-chatbot-BGloefT3.js +0 -120
  713. package/dist/assets/plugin-chatbot-BGloefT3.js.br +0 -0
  714. package/dist/assets/plugin-chatbot-BGloefT3.js.gz +0 -0
  715. package/dist/assets/plugin-dashboard-CaNG1Od0.js +0 -6
  716. package/dist/assets/plugin-dashboard-CaNG1Od0.js.br +0 -0
  717. package/dist/assets/plugin-dashboard-CaNG1Od0.js.gz +0 -0
  718. package/dist/assets/plugin-dashboard-DnNKJB60.css.br +0 -0
  719. package/dist/assets/plugin-dashboard-DnNKJB60.css.gz +0 -0
  720. package/dist/assets/plugin-form-BA3fYsSc.js +0 -1
  721. package/dist/assets/plugin-form-BA3fYsSc.js.br +0 -0
  722. package/dist/assets/plugin-form-BA3fYsSc.js.gz +0 -0
  723. package/dist/assets/plugin-gantt-eVbYEb51.js +0 -63
  724. package/dist/assets/plugin-gantt-eVbYEb51.js.br +0 -0
  725. package/dist/assets/plugin-gantt-eVbYEb51.js.gz +0 -0
  726. package/dist/assets/plugin-grid-B73zsrgO.js +0 -8
  727. package/dist/assets/plugin-grid-B73zsrgO.js.br +0 -0
  728. package/dist/assets/plugin-grid-B73zsrgO.js.gz +0 -0
  729. package/dist/assets/plugin-kanban-BiX4SvpU.js +0 -1
  730. package/dist/assets/plugin-kanban-BiX4SvpU.js.br +0 -0
  731. package/dist/assets/plugin-kanban-BiX4SvpU.js.gz +0 -0
  732. package/dist/assets/plugin-map-5lRITB8H.css.br +0 -0
  733. package/dist/assets/plugin-map-5lRITB8H.css.gz +0 -0
  734. package/dist/assets/plugin-map-D8odPW8M.js +0 -1
  735. package/dist/assets/plugin-map-D8odPW8M.js.br +0 -0
  736. package/dist/assets/plugin-map-D8odPW8M.js.gz +0 -0
  737. package/dist/assets/plugin-markdown-C3ihtjLf.js.br +0 -0
  738. package/dist/assets/plugin-markdown-C3ihtjLf.js.gz +0 -0
  739. package/dist/assets/plugin-report-W3tKaUTG.js +0 -59
  740. package/dist/assets/plugin-report-W3tKaUTG.js.br +0 -0
  741. package/dist/assets/plugin-report-W3tKaUTG.js.gz +0 -0
  742. package/dist/assets/plugin-timeline-DneQi3FN.js +0 -1
  743. package/dist/assets/plugin-timeline-DneQi3FN.js.br +0 -0
  744. package/dist/assets/plugin-timeline-DneQi3FN.js.gz +0 -0
  745. package/dist/assets/plugin-tree-Dg-UoQrg.js +0 -1
  746. package/dist/assets/plugin-tree-Dg-UoQrg.js.br +0 -0
  747. package/dist/assets/plugin-tree-Dg-UoQrg.js.gz +0 -0
  748. package/dist/assets/plugin-view-DMMnDypy.js +0 -1
  749. package/dist/assets/plugin-view-DMMnDypy.js.br +0 -0
  750. package/dist/assets/plugin-view-DMMnDypy.js.gz +0 -0
  751. package/dist/assets/plugins-views-GVcESCR3.js +0 -4
  752. package/dist/assets/plugins-views-GVcESCR3.js.br +0 -0
  753. package/dist/assets/plugins-views-GVcESCR3.js.gz +0 -0
  754. package/dist/assets/po-BiJDBrnU.js.br +0 -0
  755. package/dist/assets/po-BiJDBrnU.js.gz +0 -0
  756. package/dist/assets/poimandres-DRFjx7u4.js.br +0 -0
  757. package/dist/assets/poimandres-DRFjx7u4.js.gz +0 -0
  758. package/dist/assets/polar-C7UOKdEL.js.br +0 -0
  759. package/dist/assets/polar-C7UOKdEL.js.gz +0 -0
  760. package/dist/assets/postcss-BXeXVLqQ.js.br +0 -0
  761. package/dist/assets/postcss-BXeXVLqQ.js.gz +0 -0
  762. package/dist/assets/powerquery-DNMTfnFr.js.br +0 -0
  763. package/dist/assets/powerquery-DNMTfnFr.js.gz +0 -0
  764. package/dist/assets/powershell-CCSX75yM.js.br +0 -0
  765. package/dist/assets/powershell-CCSX75yM.js.gz +0 -0
  766. package/dist/assets/prisma-DMgNhnYS.js.br +0 -0
  767. package/dist/assets/prisma-DMgNhnYS.js.gz +0 -0
  768. package/dist/assets/prolog-iXnhIJG7.js.br +0 -0
  769. package/dist/assets/prolog-iXnhIJG7.js.gz +0 -0
  770. package/dist/assets/proto-DB4EqR-F.js.br +0 -0
  771. package/dist/assets/proto-DB4EqR-F.js.gz +0 -0
  772. package/dist/assets/pug-C1Xkn2-1.js.br +0 -0
  773. package/dist/assets/pug-C1Xkn2-1.js.gz +0 -0
  774. package/dist/assets/puppet-CDv2pdJW.js.br +0 -0
  775. package/dist/assets/puppet-CDv2pdJW.js.gz +0 -0
  776. package/dist/assets/purescript-9MfHhQsQ.js.br +0 -0
  777. package/dist/assets/purescript-9MfHhQsQ.js.gz +0 -0
  778. package/dist/assets/python-gzcpVVnB.js.br +0 -0
  779. package/dist/assets/python-gzcpVVnB.js.gz +0 -0
  780. package/dist/assets/qml-DaaPxMrD.js.br +0 -0
  781. package/dist/assets/qml-DaaPxMrD.js.gz +0 -0
  782. package/dist/assets/qss-Fe1Jh2GI.js.br +0 -0
  783. package/dist/assets/qss-Fe1Jh2GI.js.gz +0 -0
  784. package/dist/assets/quadrantDiagram-CIZ2JOQS-BpL1Kl6d.js.br +0 -0
  785. package/dist/assets/quadrantDiagram-CIZ2JOQS-BpL1Kl6d.js.gz +0 -0
  786. package/dist/assets/r-CrJekUTE.js.br +0 -0
  787. package/dist/assets/r-CrJekUTE.js.gz +0 -0
  788. package/dist/assets/racket-DcIDlBhZ.js.br +0 -0
  789. package/dist/assets/racket-DcIDlBhZ.js.gz +0 -0
  790. package/dist/assets/railroadDiagram-AXF67PYL-CY1JovP6.js.br +0 -0
  791. package/dist/assets/railroadDiagram-AXF67PYL-CY1JovP6.js.gz +0 -0
  792. package/dist/assets/raku-B3gFvitq.js.br +0 -0
  793. package/dist/assets/raku-B3gFvitq.js.gz +0 -0
  794. package/dist/assets/razor-DmNdBrA0.js.br +0 -0
  795. package/dist/assets/razor-DmNdBrA0.js.gz +0 -0
  796. package/dist/assets/rbs-C0MpOrj4.js.br +0 -0
  797. package/dist/assets/rbs-C0MpOrj4.js.gz +0 -0
  798. package/dist/assets/red-DX1BQOs8.js.br +0 -0
  799. package/dist/assets/red-DX1BQOs8.js.gz +0 -0
  800. package/dist/assets/reg-CRGYupPL.js.br +0 -0
  801. package/dist/assets/reg-CRGYupPL.js.gz +0 -0
  802. package/dist/assets/regexp-723CALth.js.br +0 -0
  803. package/dist/assets/regexp-723CALth.js.gz +0 -0
  804. package/dist/assets/rel-BtDbiS_P.js.br +0 -0
  805. package/dist/assets/rel-BtDbiS_P.js.gz +0 -0
  806. package/dist/assets/requirementDiagram-LRYGKXZP-TRTGy9-6.js.br +0 -0
  807. package/dist/assets/requirementDiagram-LRYGKXZP-TRTGy9-6.js.gz +0 -0
  808. package/dist/assets/riscv-Ckw8ddFX.js.br +0 -0
  809. package/dist/assets/riscv-Ckw8ddFX.js.gz +0 -0
  810. package/dist/assets/rolldown-runtime-C0FnF6B9.js.br +0 -5
  811. package/dist/assets/rolldown-runtime-C0FnF6B9.js.gz +0 -0
  812. package/dist/assets/ron-VUp2lXgN.js.br +0 -0
  813. package/dist/assets/ron-VUp2lXgN.js.gz +0 -0
  814. package/dist/assets/rose-pine-aMsaMD1D.js.br +0 -0
  815. package/dist/assets/rose-pine-aMsaMD1D.js.gz +0 -0
  816. package/dist/assets/rose-pine-dawn-8PwUyIlP.js.br +0 -0
  817. package/dist/assets/rose-pine-dawn-8PwUyIlP.js.gz +0 -0
  818. package/dist/assets/rose-pine-moon-DO-qXg-I.js.br +0 -0
  819. package/dist/assets/rose-pine-moon-DO-qXg-I.js.gz +0 -0
  820. package/dist/assets/rosmsg-CAekHB0j.js.br +0 -0
  821. package/dist/assets/rosmsg-CAekHB0j.js.gz +0 -0
  822. package/dist/assets/rough.esm-Dy-Kn_BL.js.br +0 -0
  823. package/dist/assets/rough.esm-Dy-Kn_BL.js.gz +0 -0
  824. package/dist/assets/rst-BLglG3Y_.js.br +0 -0
  825. package/dist/assets/rst-BLglG3Y_.js.gz +0 -0
  826. package/dist/assets/ruby-CacEyOQN.js.br +0 -0
  827. package/dist/assets/ruby-CacEyOQN.js.gz +0 -0
  828. package/dist/assets/runtime-metadata-persistence-D4a_EoZt.js +0 -1
  829. package/dist/assets/runtime-metadata-persistence-D4a_EoZt.js.br +0 -0
  830. package/dist/assets/runtime-metadata-persistence-D4a_EoZt.js.gz +0 -0
  831. package/dist/assets/rust-Cfkwpbl8.js.br +0 -0
  832. package/dist/assets/rust-Cfkwpbl8.js.gz +0 -0
  833. package/dist/assets/sankeyDiagram-W5VNT64P-Hj-Un0bp.js.br +0 -0
  834. package/dist/assets/sankeyDiagram-W5VNT64P-Hj-Un0bp.js.gz +0 -0
  835. package/dist/assets/sas-C_K_aNQk.js.br +0 -0
  836. package/dist/assets/sas-C_K_aNQk.js.gz +0 -0
  837. package/dist/assets/sass-DXrisJhu.js.br +0 -0
  838. package/dist/assets/sass-DXrisJhu.js.gz +0 -0
  839. package/dist/assets/scala-BiFt_7mu.js.br +0 -0
  840. package/dist/assets/scala-BiFt_7mu.js.gz +0 -0
  841. package/dist/assets/scheme-DQCgrYNe.js.br +0 -0
  842. package/dist/assets/scheme-DQCgrYNe.js.gz +0 -0
  843. package/dist/assets/scss-D2XZndG8.js.br +0 -0
  844. package/dist/assets/scss-D2XZndG8.js.gz +0 -0
  845. package/dist/assets/sdbl-bTVj8UrX.js.br +0 -0
  846. package/dist/assets/sdbl-bTVj8UrX.js.gz +0 -0
  847. package/dist/assets/sequenceDiagram-SI44F4Z6-iGYyf5AF.js.br +0 -0
  848. package/dist/assets/sequenceDiagram-SI44F4Z6-iGYyf5AF.js.gz +0 -0
  849. package/dist/assets/shaderlab-TOUzSsQk.js.br +0 -0
  850. package/dist/assets/shaderlab-TOUzSsQk.js.gz +0 -0
  851. package/dist/assets/shellscript-DoDh9O3W.js.br +0 -0
  852. package/dist/assets/shellscript-DoDh9O3W.js.gz +0 -0
  853. package/dist/assets/skeletons-Cs1pm-UR.js.br +0 -0
  854. package/dist/assets/skeletons-Cs1pm-UR.js.gz +0 -0
  855. package/dist/assets/slack-dark-DnToyrRv.js.br +0 -0
  856. package/dist/assets/slack-dark-DnToyrRv.js.gz +0 -0
  857. package/dist/assets/slack-ochin-B2OO5cIa.js.br +0 -0
  858. package/dist/assets/slack-ochin-B2OO5cIa.js.gz +0 -0
  859. package/dist/assets/smalltalk-BHpQb5nM.js.br +0 -0
  860. package/dist/assets/smalltalk-BHpQb5nM.js.gz +0 -0
  861. package/dist/assets/smithy-Dgaz7aur.js.br +0 -0
  862. package/dist/assets/smithy-Dgaz7aur.js.gz +0 -0
  863. package/dist/assets/snazzy-light-4G7pJPwS.js.br +0 -0
  864. package/dist/assets/snazzy-light-4G7pJPwS.js.gz +0 -0
  865. package/dist/assets/solarized-dark-UdsmMDCL.js.br +0 -0
  866. package/dist/assets/solarized-dark-UdsmMDCL.js.gz +0 -0
  867. package/dist/assets/solarized-light-C1IUL_tW.js.br +0 -0
  868. package/dist/assets/solarized-light-C1IUL_tW.js.gz +0 -0
  869. package/dist/assets/solidity-Bj7E1mRn.js.br +0 -0
  870. package/dist/assets/solidity-Bj7E1mRn.js.gz +0 -0
  871. package/dist/assets/soy-BDOoR3HV.js.br +0 -0
  872. package/dist/assets/soy-BDOoR3HV.js.gz +0 -0
  873. package/dist/assets/sparql-D_iOobhT.js.br +0 -0
  874. package/dist/assets/sparql-D_iOobhT.js.gz +0 -0
  875. package/dist/assets/splunk-BC2Px7Mm.js.br +0 -0
  876. package/dist/assets/splunk-BC2Px7Mm.js.gz +0 -0
  877. package/dist/assets/sql-DDaoNBOY.js.br +0 -0
  878. package/dist/assets/sql-DDaoNBOY.js.gz +0 -0
  879. package/dist/assets/src-0qbDl74X.js.br +0 -0
  880. package/dist/assets/src-0qbDl74X.js.gz +0 -0
  881. package/dist/assets/src-B67JaKZf.js.br +0 -0
  882. package/dist/assets/src-B67JaKZf.js.gz +0 -0
  883. package/dist/assets/src-BfBcf0cI.js +0 -1
  884. package/dist/assets/src-BfBcf0cI.js.br +0 -0
  885. package/dist/assets/src-BfBcf0cI.js.gz +0 -0
  886. package/dist/assets/src-DndKl5iC.js +0 -19
  887. package/dist/assets/src-DndKl5iC.js.br +0 -0
  888. package/dist/assets/src-DndKl5iC.js.gz +0 -0
  889. package/dist/assets/src-DwpgXgLE.js.br +0 -0
  890. package/dist/assets/src-DwpgXgLE.js.gz +0 -0
  891. package/dist/assets/ssh-config-BgfXC-Er.js.br +0 -0
  892. package/dist/assets/ssh-config-BgfXC-Er.js.gz +0 -0
  893. package/dist/assets/stata-BfvhQgBh.js.br +0 -0
  894. package/dist/assets/stata-BfvhQgBh.js.gz +0 -0
  895. package/dist/assets/stateDiagram-OKZ733FA-B-kn5M6g.js.br +0 -0
  896. package/dist/assets/stateDiagram-OKZ733FA-B-kn5M6g.js.gz +0 -0
  897. package/dist/assets/stylus-B6D30XZt.js.br +0 -0
  898. package/dist/assets/stylus-B6D30XZt.js.gz +0 -0
  899. package/dist/assets/surrealql-7gu956ad.js.br +0 -0
  900. package/dist/assets/surrealql-7gu956ad.js.gz +0 -0
  901. package/dist/assets/svelte-DSCVGEXc.js.br +0 -0
  902. package/dist/assets/svelte-DSCVGEXc.js.gz +0 -0
  903. package/dist/assets/swift-CyEgAFGc.js.br +0 -0
  904. package/dist/assets/swift-CyEgAFGc.js.gz +0 -0
  905. package/dist/assets/swimlanes-SLNWSIFB-sV1QkjXA.js.br +0 -0
  906. package/dist/assets/swimlanes-SLNWSIFB-sV1QkjXA.js.gz +0 -0
  907. package/dist/assets/synthwave-84-nFMaYfgc.js.br +0 -0
  908. package/dist/assets/synthwave-84-nFMaYfgc.js.gz +0 -0
  909. package/dist/assets/system-verilog-Dh5ihWbf.js.br +0 -0
  910. package/dist/assets/system-verilog-Dh5ihWbf.js.gz +0 -0
  911. package/dist/assets/systemd-BxMlprV5.js.br +0 -0
  912. package/dist/assets/systemd-BxMlprV5.js.gz +0 -0
  913. package/dist/assets/talonscript-CohzipZa.js.br +0 -0
  914. package/dist/assets/talonscript-CohzipZa.js.gz +0 -0
  915. package/dist/assets/tasl-DMoTqEGO.js.br +0 -0
  916. package/dist/assets/tasl-DMoTqEGO.js.gz +0 -0
  917. package/dist/assets/tcl-CZd0xW_V.js.br +0 -0
  918. package/dist/assets/tcl-CZd0xW_V.js.gz +0 -0
  919. package/dist/assets/templ-0sZ2htc8.js.br +0 -0
  920. package/dist/assets/templ-0sZ2htc8.js.gz +0 -0
  921. package/dist/assets/terraform-DswuEJGm.js.br +0 -0
  922. package/dist/assets/terraform-DswuEJGm.js.gz +0 -0
  923. package/dist/assets/tex-nulmLfzO.js.br +0 -0
  924. package/dist/assets/tex-nulmLfzO.js.gz +0 -0
  925. package/dist/assets/timeline-definition-Z64GVDOM-DMClsS2j.js.br +0 -0
  926. package/dist/assets/timeline-definition-Z64GVDOM-DMClsS2j.js.gz +0 -0
  927. package/dist/assets/tokyo-night-oM2G3aXe.js.br +0 -0
  928. package/dist/assets/tokyo-night-oM2G3aXe.js.gz +0 -0
  929. package/dist/assets/toml-CcmNWLt0.js.br +0 -0
  930. package/dist/assets/toml-CcmNWLt0.js.gz +0 -0
  931. package/dist/assets/ts-tags-97776d1y.js.br +0 -0
  932. package/dist/assets/ts-tags-97776d1y.js.gz +0 -0
  933. package/dist/assets/tsx-D0-aSICp.js.br +0 -0
  934. package/dist/assets/tsx-D0-aSICp.js.gz +0 -0
  935. package/dist/assets/turtle-ByJddavk.js.br +0 -0
  936. package/dist/assets/turtle-ByJddavk.js.gz +0 -0
  937. package/dist/assets/twig-C13VO0dK.js.br +0 -0
  938. package/dist/assets/twig-C13VO0dK.js.gz +0 -0
  939. package/dist/assets/typescript-ITQieXu3.js.br +0 -0
  940. package/dist/assets/typescript-ITQieXu3.js.gz +0 -0
  941. package/dist/assets/typespec-BRdr0IET.js.br +0 -0
  942. package/dist/assets/typespec-BRdr0IET.js.gz +0 -0
  943. package/dist/assets/typst-1SSu9v36.js.br +0 -0
  944. package/dist/assets/typst-1SSu9v36.js.gz +0 -0
  945. package/dist/assets/ui-components-q_9kKTqi.js +0 -72
  946. package/dist/assets/ui-components-q_9kKTqi.js.br +0 -0
  947. package/dist/assets/ui-components-q_9kKTqi.js.gz +0 -0
  948. package/dist/assets/ui-layout-nESZUqD7.js +0 -1
  949. package/dist/assets/ui-layout-nESZUqD7.js.br +0 -0
  950. package/dist/assets/ui-layout-nESZUqD7.js.gz +0 -0
  951. package/dist/assets/use-book-data-BpISrpLC.js.br +0 -0
  952. package/dist/assets/use-book-data-BpISrpLC.js.gz +0 -0
  953. package/dist/assets/usePackageL10n-9fP2GgDK.js.br +0 -0
  954. package/dist/assets/usePackageL10n-9fP2GgDK.js.gz +0 -0
  955. package/dist/assets/useSettingsLabel-QE1nXNTt.js +0 -1
  956. package/dist/assets/useSettingsLabel-QE1nXNTt.js.br +0 -0
  957. package/dist/assets/useSettingsLabel-QE1nXNTt.js.gz +0 -0
  958. package/dist/assets/utils-CFdPTF34.js +0 -1
  959. package/dist/assets/utils-CFdPTF34.js.br +0 -0
  960. package/dist/assets/utils-CFdPTF34.js.gz +0 -0
  961. package/dist/assets/v-DBj4K9d_.js.br +0 -0
  962. package/dist/assets/v-DBj4K9d_.js.gz +0 -0
  963. package/dist/assets/vala-zf12oZj6.js.br +0 -0
  964. package/dist/assets/vala-zf12oZj6.js.gz +0 -0
  965. package/dist/assets/vb-DOwzaHZ0.js.br +0 -0
  966. package/dist/assets/vb-DOwzaHZ0.js.gz +0 -0
  967. package/dist/assets/vendor-charts-DAI87uet.js.br +0 -0
  968. package/dist/assets/vendor-charts-DAI87uet.js.gz +0 -0
  969. package/dist/assets/vendor-dndkit-CQdzTF9d.js.br +0 -0
  970. package/dist/assets/vendor-dndkit-CQdzTF9d.js.gz +0 -0
  971. package/dist/assets/vendor-i18n-DeMInx63.js.br +0 -0
  972. package/dist/assets/vendor-i18n-DeMInx63.js.gz +0 -0
  973. package/dist/assets/vendor-icons-core-B25E_7o5.js.br +0 -0
  974. package/dist/assets/vendor-icons-core-B25E_7o5.js.gz +0 -0
  975. package/dist/assets/vendor-markdown-DjBjpmKk.js.br +0 -0
  976. package/dist/assets/vendor-markdown-DjBjpmKk.js.gz +0 -0
  977. package/dist/assets/vendor-objectstack-CVsc1isW.js +0 -186
  978. package/dist/assets/vendor-objectstack-CVsc1isW.js.br +0 -0
  979. package/dist/assets/vendor-objectstack-CVsc1isW.js.gz +0 -0
  980. package/dist/assets/vendor-radix-D1dussIM.js.br +0 -0
  981. package/dist/assets/vendor-radix-D1dussIM.js.gz +0 -0
  982. package/dist/assets/vendor-react-BgOXCBVK.js.br +0 -0
  983. package/dist/assets/vendor-react-BgOXCBVK.js.gz +0 -0
  984. package/dist/assets/vendor-sentry-DlmtNsBO.js.br +0 -0
  985. package/dist/assets/vendor-sentry-DlmtNsBO.js.gz +0 -0
  986. package/dist/assets/vendor-ui-utils-BGw4RtYu.js.br +0 -0
  987. package/dist/assets/vendor-ui-utils-BGw4RtYu.js.gz +0 -0
  988. package/dist/assets/vendor-zod-CBDIIwrA.js.br +0 -0
  989. package/dist/assets/vendor-zod-CBDIIwrA.js.gz +0 -0
  990. package/dist/assets/vennDiagram-T6HMQDX7-CrP23lgd.js.br +0 -0
  991. package/dist/assets/vennDiagram-T6HMQDX7-CrP23lgd.js.gz +0 -0
  992. package/dist/assets/verilog-B2gwz-sJ.js.br +0 -0
  993. package/dist/assets/verilog-B2gwz-sJ.js.gz +0 -0
  994. package/dist/assets/vesper-DdrHHSXu.js.br +0 -0
  995. package/dist/assets/vesper-DdrHHSXu.js.gz +0 -0
  996. package/dist/assets/vhdl-BroJfC0k.js.br +0 -0
  997. package/dist/assets/vhdl-BroJfC0k.js.gz +0 -0
  998. package/dist/assets/viml-DvXPmvsu.js.br +0 -0
  999. package/dist/assets/viml-DvXPmvsu.js.gz +0 -0
  1000. package/dist/assets/vitesse-black-fwtXNY1n.js.br +0 -0
  1001. package/dist/assets/vitesse-black-fwtXNY1n.js.gz +0 -0
  1002. package/dist/assets/vitesse-dark-BZCL-v6S.js.br +0 -0
  1003. package/dist/assets/vitesse-dark-BZCL-v6S.js.gz +0 -0
  1004. package/dist/assets/vitesse-light-VbXTXTou.js.br +0 -0
  1005. package/dist/assets/vitesse-light-VbXTXTou.js.gz +0 -0
  1006. package/dist/assets/vue-Bq5B5kjG.js.br +0 -0
  1007. package/dist/assets/vue-Bq5B5kjG.js.gz +0 -0
  1008. package/dist/assets/vue-html-d0F-gcUX.js.br +0 -0
  1009. package/dist/assets/vue-html-d0F-gcUX.js.gz +0 -0
  1010. package/dist/assets/vue-vine-C_jSoY9V.js.br +0 -0
  1011. package/dist/assets/vue-vine-C_jSoY9V.js.gz +0 -0
  1012. package/dist/assets/vyper-CgoNMtux.js.br +0 -0
  1013. package/dist/assets/vyper-CgoNMtux.js.gz +0 -0
  1014. package/dist/assets/wardleyDiagram-T6FBY63Y-DSw6poZ6.js.br +0 -0
  1015. package/dist/assets/wardleyDiagram-T6FBY63Y-DSw6poZ6.js.gz +0 -0
  1016. package/dist/assets/wasm-BnjxR4X6.js.br +0 -0
  1017. package/dist/assets/wasm-BnjxR4X6.js.gz +0 -0
  1018. package/dist/assets/wasm-ByWQv1Qj.js.br +0 -0
  1019. package/dist/assets/wasm-ByWQv1Qj.js.gz +0 -0
  1020. package/dist/assets/wenyan-C8pVoKbM.js.br +0 -0
  1021. package/dist/assets/wenyan-C8pVoKbM.js.gz +0 -0
  1022. package/dist/assets/wgsl-BsKzXJz4.js.br +0 -0
  1023. package/dist/assets/wgsl-BsKzXJz4.js.gz +0 -0
  1024. package/dist/assets/wikitext-ClFFjSW2.js.br +0 -0
  1025. package/dist/assets/wikitext-ClFFjSW2.js.gz +0 -0
  1026. package/dist/assets/wit-DdvCle-K.js.br +0 -0
  1027. package/dist/assets/wit-DdvCle-K.js.gz +0 -0
  1028. package/dist/assets/wolfram-DLL8P-h_.js.br +0 -0
  1029. package/dist/assets/wolfram-DLL8P-h_.js.gz +0 -0
  1030. package/dist/assets/xml-BgwO9svv.js.br +0 -0
  1031. package/dist/assets/xml-BgwO9svv.js.gz +0 -0
  1032. package/dist/assets/xsl-Ci-Eh2uW.js.br +0 -0
  1033. package/dist/assets/xsl-Ci-Eh2uW.js.gz +0 -0
  1034. package/dist/assets/xychartDiagram-ELKLHX3M-BVUFqBDL.js.br +0 -0
  1035. package/dist/assets/xychartDiagram-ELKLHX3M-BVUFqBDL.js.gz +0 -0
  1036. package/dist/assets/yaml-BnkSoqfe.js.br +0 -0
  1037. package/dist/assets/yaml-BnkSoqfe.js.gz +0 -0
  1038. package/dist/assets/zenscript-BnlCZFoB.js.br +0 -0
  1039. package/dist/assets/zenscript-BnlCZFoB.js.gz +0 -0
  1040. package/dist/assets/zig-CMLA9XwU.js.br +0 -0
  1041. package/dist/assets/zig-CMLA9XwU.js.gz +0 -0
  1042. package/dist/index.html.br +0 -0
  1043. package/dist/index.html.gz +0 -0
  1044. package/dist/stats.html +0 -4950
  1045. package/dist/vite.svg.br +0 -0
  1046. package/dist/vite.svg.gz +0 -0
@@ -1 +1 @@
1
- 92c0b1f403f7e3323d25d9643c14572b87dab2a8
1
+ 665661ab093263f39f2e660a295ea615dbcee35a
@@ -0,0 +1,3 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{b as r}from"./infrastructure-ChmEYj6c.js";import{T as i,Y as a,b as o}from"./framework-B8ndNKrd.js";import{r as s}from"./vendor-ui-utils-BGw4RtYu.js";import{t as c}from"./data-adapter-yS4exRPT.js";var l=e(n(),1),u=0,d=new Set,f=[];function p(){for(let e of d)try{e(u)}catch{}if(u===0&&f.length>0){let e=f;f=[];for(let t of e)try{t()}catch{}}}function m(){u+=1,p()}function h(){u=Math.max(0,u-1),p()}function g(){return u}function _(){return u===0}function v(e){return d.add(e),()=>{d.delete(e)}}function y(e=1e4){return u===0?Promise.resolve():new Promise(t=>{let n=!1,r=()=>{n||(n=!0,t())};f.push(r),e>0&&typeof setTimeout<`u`&&setTimeout(r,e)})}function b(e){return(async(...t)=>{m();try{return await e(...t)}finally{h()}})}function x(){if(typeof window>`u`)return;let e=window,t=e.__objectui??={};Object.defineProperty(t,"pendingRequests",{get:g,configurable:!0}),Object.defineProperty(t,"idle",{get:_,configurable:!0}),t.whenIdle=y,t.subscribe=v}async function S(e,t,n){let r;try{r=(await e.getObjectSchema(t))?.fields}catch{}return e=>n(t,e,r?.[e]?.label||e)}async function C(e,t,n,r,i){let a=new Map;for(let t of e.droppedFields){let e=a.get(t.reason)??[];for(let n of t.fields)e.includes(n)||e.push(n);a.set(t.reason,e)}if(a.size===0)return;let o=n&&e.resource?await S(n,e.resource,r):e=>e,s=[];for(let[e,n]of a){if(n.length===0)continue;let r=n.map(o).join(`, `);s.push(e===`readonly_when`?t(`detail.writeStrippedByState`,{fields:r,defaultValue:`Not editable in this record's current state, so it did not take effect: {{fields}}`}):t(`detail.writeStrippedReadonly`,{fields:r,defaultValue:`Read-only, so it did not take effect: {{fields}}`}))}s.length!==0&&i.warning(t(`detail.writeStrippedTitle`,{defaultValue:`Saved — but some fields did not take effect`}),{description:s.join(`
2
+ `)})}var w=1e4;function T(e){let t=e.where?`[${e.rule}] ${e.where}`:`[${e.rule}]`,n=e.hint?` ${e.hint}`:``;return`${t} — ${e.message}${n}`}function E(e,t,n){!e.advisories||e.advisories.length===0||n.warning(t(`console.saveAdvisoryTitle`,{count:e.advisories.length,defaultValue:`Saved — the authoring check raised {{count}} advisory finding(s)`}),{description:e.advisories.map(T).join(`
3
+ `),duration:w})}var D=t();function O({children:e,adapter:t}){let[n,u]=(0,l.useState)(t??null),{t:d}=i(),f=(0,l.useRef)(d);f.current=d;let{fieldLabel:p}=o(),m=(0,l.useRef)(p);return m.current=p,(0,l.useEffect)(()=>{if(t){u(t);return}let e=!1,n,i;x();async function a(){try{let t=new c({baseUrl:``,fetch:b(r()),autoReconnect:!0,maxReconnectAttempts:5,reconnectDelay:1e3,cache:{maxSize:50,ttl:3e5}});n=t.onWriteWarning(e=>{C(e,f.current,t,m.current,s)}),i=t.onSaveAdvisory(e=>{E(e,f.current,s)}),await t.connect(),e||u(t)}catch(t){e||console.error(`[Console] Failed to initialize:`,t)}}return a(),()=>{e=!0,n?.(),i?.()}},[t]),(0,D.jsx)(a.Provider,{value:n,children:e})}export{E as n,b as r,O as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{n as r}from"./plugin-chatbot-BGloefT3.js";var i=e(n(),1),a=t();function o(){let e={BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_SENTRY_DSN:`https://1373a588ceb9da150b11e64bf85f583d@o4510356161757184.ingest.us.sentry.io/4511439670673408`,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_SEND_DEFAULT_PII:`true`,VITE_SERVER_URL:``,VITE_USE_MOCK_SERVER:`false`},t=e.VITE_AI_BASE_URL;return t?t.replace(/\/$/,``):`${(e.VITE_SERVER_URL??``).replace(/\/$/,``)}/api/v1/ai`}function s(){let e=(0,i.useMemo)(()=>o(),[]);return(0,a.jsxs)(`div`,{className:`p-6 max-w-6xl mx-auto`,children:[(0,a.jsxs)(`div`,{className:`mb-4`,children:[(0,a.jsx)(`h1`,{className:`text-2xl font-semibold`,children:`AI Approvals`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Review actions an AI agent proposed. Approve to execute them server-side; reject to send a reason back to the model so it can revise the next turn.`})]}),(0,a.jsx)(r,{apiBase:e,variant:`card`,title:`Queue`,description:`Polled every 5 seconds. Decisions are recorded under your identity.`})]})}export{s as AiPendingActionsPage,s as default};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{n as r}from"./plugin-chatbot-DsLGdfGx.js";var i=e(n(),1),a=t();function o(){let e={BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_SENTRY_DSN:`https://1373a588ceb9da150b11e64bf85f583d@o4510356161757184.ingest.us.sentry.io/4511439670673408`,VITE_SENTRY_ENVIRONMENT:`production`,VITE_SENTRY_SEND_DEFAULT_PII:`true`,VITE_SERVER_URL:``,VITE_USE_MOCK_SERVER:`false`},t=e.VITE_AI_BASE_URL;return t?t.replace(/\/$/,``):`${(e.VITE_SERVER_URL??``).replace(/\/$/,``)}/api/v1/ai`}function s(){let e=(0,i.useMemo)(()=>o(),[]);return(0,a.jsxs)(`div`,{className:`p-6 max-w-6xl mx-auto`,children:[(0,a.jsxs)(`div`,{className:`mb-4`,children:[(0,a.jsx)(`h1`,{className:`text-2xl font-semibold`,children:`AI Approvals`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Review actions an AI agent proposed. Approve to execute them server-side; reject to send a reason back to the model so it can revise the next turn.`})]}),(0,a.jsx)(r,{apiBase:e,variant:`card`,title:`Queue`,description:`Polled every 5 seconds. Decisions are recorded under your identity.`})]})}export{s as AiPendingActionsPage,s as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{N as r,Z as i}from"./framework-B8ndNKrd.js";import{Cr as a,Ea as o,Ns as s,Oa as c,Sr as l,Vs as u,_a as d,_o as f,bi as p,dc as m,ei as h,ia as g,jr as _,mc as v,pc as y,qo as b,xr as ee}from"./ui-components-mPgY5chB.js";import"./src-BBKXMp-o.js";var x=e(n(),1),S=[`plugin`,`plugins`,`kind`,`package`];function C(e){return[{method:`POST`,path:`${e}/sign-in/email`,desc:`Sign in (email)`,group:`Auth`,bodyTemplate:{email:`user@example.com`,password:``}},{method:`POST`,path:`${e}/sign-up/email`,desc:`Sign up (email)`,group:`Auth`,bodyTemplate:{email:``,password:``,name:``}},{method:`POST`,path:`${e}/sign-out`,desc:`Sign out`,group:`Auth`},{method:`GET`,path:`${e}/get-session`,desc:`Get session`,group:`Auth`}]}var w={ai:{group:`AI`,defaultRoute:`/api/v1/ai`,endpoints:[{method:`POST`,path:`/chat`,desc:`Chat completion (JSON)`,bodyTemplate:{messages:[{role:`user`,content:``}],stream:!1}},{method:`POST`,path:`/chat/stream`,desc:`Streaming chat (SSE)`,bodyTemplate:{messages:[{role:`user`,content:``}]}},{method:`POST`,path:`/complete`,desc:`Text completion`,bodyTemplate:{prompt:``}},{method:`GET`,path:`/models`,desc:`List available models`},{method:`GET`,path:`/status`,desc:`Active LLM adapter provenance`},{method:`GET`,path:`/effective-model`,desc:`Effective model ids and where they came from`},{method:`POST`,path:`/conversations`,desc:`Create conversation`,bodyTemplate:{}},{method:`GET`,path:`/conversations`,desc:`List conversations`},{method:`GET`,path:`/conversations/:id`,desc:`Get conversation with message history`},{method:`PATCH`,path:`/conversations/:id`,desc:`Update conversation (title, metadata)`,bodyTemplate:{title:``}},{method:`DELETE`,path:`/conversations/:id`,desc:`Delete conversation`},{method:`POST`,path:`/conversations/:id/messages`,desc:`Add message to conversation`,bodyTemplate:{role:`user`,content:``}},{method:`GET`,path:`/conversations/:id/debug`,desc:`Reconcile a build conversation: agent-claimed vs live metadata`},{method:`GET`,path:`/agents`,desc:`List active agents`},{method:`POST`,path:`/agents/:agentName/chat`,desc:`Chat with a named agent (JSON)`,bodyTemplate:{messages:[{role:`user`,content:``}],stream:!1}},{method:`GET`,path:`/assistant`,desc:`Resolve the default assistant and its active skills`},{method:`GET`,path:`/assistant/skills`,desc:`List active skills for a context`},{method:`POST`,path:`/assistant/chat`,desc:`Ambient chat — auto-resolves agent and skills (JSON)`,bodyTemplate:{messages:[{role:`user`,content:``}],stream:!1}},{method:`GET`,path:`/tools`,desc:`List registered AI tools`},{method:`POST`,path:`/tools/:toolName/execute`,desc:`Execute one tool directly (playground)`,bodyTemplate:{parameters:{}}},{method:`GET`,path:`/pending-actions`,desc:`List pending actions awaiting approval`},{method:`GET`,path:`/pending-actions/:id`,desc:`Get one pending action`},{method:`POST`,path:`/pending-actions/:id/approve`,desc:`Approve a pending action and execute it`,bodyTemplate:{}},{method:`POST`,path:`/pending-actions/:id/reject`,desc:`Reject a pending action`,bodyTemplate:{reason:``}},{method:`POST`,path:`/evals/runs`,desc:`Run an eval case — ai:admin, makes paid LLM calls`,bodyTemplate:{caseId:``}},{method:`GET`,path:`/usage`,desc:`AI quota headroom per meter (console usage indicator)`}]},workflow:{group:`Workflow`,defaultRoute:`/api/v1/workflow`,endpoints:[{method:`GET`,path:`/:object/config`,desc:`Get workflow configuration`},{method:`GET`,path:`/:object/:recordId/state`,desc:`Get workflow state`},{method:`POST`,path:`/:object/:recordId/transition`,desc:`Execute workflow transition`,bodyTemplate:{targetState:``}},{method:`POST`,path:`/:object/:recordId/approve`,desc:`Approve workflow step`,bodyTemplate:{comment:``}},{method:`POST`,path:`/:object/:recordId/reject`,desc:`Reject workflow step`,bodyTemplate:{comment:``}}]},realtime:{group:`Realtime`,defaultRoute:`/api/v1/realtime`,endpoints:[{method:`POST`,path:`/connect`,desc:`Establish realtime connection`,bodyTemplate:{transport:`websocket`}},{method:`POST`,path:`/disconnect`,desc:`Close realtime connection`,bodyTemplate:{connectionId:``}},{method:`POST`,path:`/subscribe`,desc:`Subscribe to channel`,bodyTemplate:{channel:``}},{method:`POST`,path:`/unsubscribe`,desc:`Unsubscribe from channel`,bodyTemplate:{channel:``}},{method:`PUT`,path:`/presence/:channel`,desc:`Set presence state`,bodyTemplate:{status:`online`}},{method:`GET`,path:`/presence/:channel`,desc:`Get channel presence`}]},notification:{group:`Notifications`,defaultRoute:`/api/v1/notifications`,endpoints:[{method:`GET`,path:``,desc:`List notifications`},{method:`POST`,path:`/devices`,desc:`Register device for push`,bodyTemplate:{token:``,platform:`web`}},{method:`DELETE`,path:`/devices/:deviceId`,desc:`Unregister device`},{method:`GET`,path:`/preferences`,desc:`Get notification preferences`},{method:`PATCH`,path:`/preferences`,desc:`Update notification preferences`,bodyTemplate:{email:!0,push:!0}},{method:`POST`,path:`/read`,desc:`Mark notifications as read`,bodyTemplate:{ids:[]}},{method:`POST`,path:`/read/all`,desc:`Mark all as read`}]},analytics:{group:`Analytics`,defaultRoute:`/api/v1/analytics`,endpoints:[{method:`POST`,path:`/query`,desc:`Execute analytics query`,bodyTemplate:{measures:[],dimensions:[]}},{method:`GET`,path:`/meta`,desc:`Get analytics metadata`}]},automation:{group:`Automation`,defaultRoute:`/api/v1/automation`,endpoints:[{method:`POST`,path:`/trigger`,desc:`Trigger automation`,bodyTemplate:{name:``,params:{}}}]},i18n:{group:`i18n`,defaultRoute:`/api/v1/i18n`,endpoints:[{method:`GET`,path:`/locales`,desc:`Get available locales`},{method:`GET`,path:`/translations/:locale`,desc:`Get translations for locale`},{method:`GET`,path:`/labels/:object/:locale`,desc:`Get translated field labels`}]},ui:{group:`UI`,defaultRoute:`/api/v1/ui`,endpoints:[{method:`GET`,path:`/views`,desc:`List views`},{method:`GET`,path:`/views/:id`,desc:`Get view by ID`},{method:`POST`,path:`/views`,desc:`Create view`,bodyTemplate:{name:``,object:``,type:`list`}},{method:`PATCH`,path:`/views/:id`,desc:`Update view`,bodyTemplate:{name:``}},{method:`DELETE`,path:`/views/:id`,desc:`Delete view`}]},feed:{group:`Feed`,defaultRoute:`/api/v1/feed`,endpoints:[{method:`GET`,path:`/:object/:recordId`,desc:`Get feed items`},{method:`POST`,path:`/:object/:recordId`,desc:`Post feed item`,bodyTemplate:{body:``}}]},"file-storage":{group:`Storage`,defaultRoute:`/api/v1/storage`,endpoints:[{method:`POST`,path:`/upload`,desc:`Upload file (multipart/form-data)`},{method:`GET`,path:`/:fileId`,desc:`Download file`},{method:`DELETE`,path:`/:fileId`,desc:`Delete file`}]}};function T(e,t){let n=w[e];return n?n.endpoints.map(e=>({method:e.method,path:`${t}${e.path}`,desc:e.desc,group:n.group,...e.bodyTemplate?{bodyTemplate:e.bodyTemplate}:{}})):[]}function te(){let e=i(),[t,n]=(0,x.useState)([]),[a,o]=(0,x.useState)([]),[s,c]=(0,x.useState)(!0),[l,u]=(0,x.useState)(null),d=(0,x.useCallback)(async()=>{c(!0),u(null);let t=`/api/v1`,i=`${t}/discovery`,a=[{method:`GET`,path:i,desc:`API Discovery`,group:`System`},{method:`GET`,path:`${t}/meta/types`,desc:`List metadata types`,group:`Metadata`},{method:`GET`,path:`${t}/packages`,desc:`List packages`,group:`System`},{method:`GET`,path:`/api/v1/health`,desc:`Health check`,group:`System`}];try{let s=`/api/v1/auth`,c={},l={};try{let e=await fetch(i);if(e.ok){let t=await e.json(),n=t?.data??t;l=n?.routes??{},c=n?.services??{},l.auth&&(s=l.auth)}}catch{}let u=[];for(let[e,t]of Object.entries(w)){let n=c[e],i=n?r(n):!1,a=n?.route??l[e]??t.defaultRoute;i&&u.push(...T(e,a))}let d=e?.getClient?.(),f=[];try{let e=await d?.meta?.getTypes?.();e&&Array.isArray(e.types)?f=e.types:Array.isArray(e)&&(f=e)}catch{}let p=[];try{let e=f.includes(`object`)?`object`:null;if(e&&d?.meta?.getItems){let t=await d.meta.getItems(e),n=[];Array.isArray(t)?n=t:t&&Array.isArray(t.items)?n=t.items:t&&Array.isArray(t.value)&&(n=t.value),p=n.map(e=>e.name||e.id).filter(Boolean)}}catch{}let m=p.flatMap(e=>{let n=e.startsWith(`sys_`)?`Data: system tables`:`Data: ${e}`;return[{method:`GET`,path:`${t}/data/${e}`,desc:`List ${e}`,group:n},{method:`POST`,path:`${t}/data/${e}`,desc:`Create ${e}`,group:n,bodyTemplate:{name:`example`}},{method:`GET`,path:`${t}/data/${e}/:id`,desc:`Get ${e} by ID`,group:n},{method:`PATCH`,path:`${t}/data/${e}/:id`,desc:`Update ${e}`,group:n,bodyTemplate:{name:`updated`}},{method:`DELETE`,path:`${t}/data/${e}/:id`,desc:`Delete ${e}`,group:n}]}),h=f.filter(e=>!S.includes(e)).map(e=>({method:`GET`,path:`${t}/meta/${e}`,desc:`List ${e} metadata`,group:`Metadata`})),g=p.map(e=>({method:`GET`,path:`${t}/meta/object/${e}`,desc:`${e} schema`,group:`Metadata`})),_=[...a,...C(s),...u,...h,...g,...m],v=new Map;for(let e of _){let t=v.get(e.group)||[];t.push(e),v.set(e.group,t)}let y=[`System`,`Auth`,`AI`,`Workflow`,`Realtime`,`Notifications`,`Analytics`,`Automation`,`i18n`,`UI`,`Feed`,`Storage`,`Metadata`],b=Array.from(v.entries()).sort(([e],[t])=>{let n=y.indexOf(e),r=y.indexOf(t);return n!==-1&&r!==-1?n-r:n===-1?r===-1?e.localeCompare(t):1:-1}).map(([e,t])=>({key:e,label:e,endpoints:t}));n(b),o(_)}catch(e){u(e.message||`Failed to discover APIs`)}finally{c(!1)}},[e]);return(0,x.useEffect)(()=>{d()},[d]),{groups:t,allEndpoints:a,loading:s,error:l,refresh:d}}var E=t(),D={GET:`text-emerald-600 bg-emerald-50 border-emerald-200 dark:text-emerald-400 dark:bg-emerald-950/50`,POST:`text-blue-600 bg-blue-50 border-blue-200 dark:text-blue-400 dark:bg-blue-950/50`,PATCH:`text-amber-600 bg-amber-50 border-amber-200 dark:text-amber-400 dark:bg-amber-950/50`,PUT:`text-amber-600 bg-amber-50 border-amber-200 dark:text-amber-400 dark:bg-amber-950/50`,DELETE:`text-red-600 bg-red-50 border-red-200 dark:text-red-400 dark:bg-red-950/50`},ne={2:`text-emerald-600 dark:text-emerald-400`,3:`text-blue-600 dark:text-blue-400`,4:`text-amber-600 dark:text-amber-400`,5:`text-red-600 dark:text-red-400`},re=[{key:`$top`,placeholder:`10`,hint:`limit`},{key:`$skip`,placeholder:`0`,hint:`offset`},{key:`$sort`,placeholder:`name`,hint:`sort field`},{key:`$select`,placeholder:`name,email`,hint:`fields`},{key:`$count`,placeholder:`true`,hint:`total count`},{key:`$filter`,placeholder:`status eq 'active'`,hint:`OData filter`}],O=1;function k(){let e=i()?.getClient?.(),{groups:t,loading:n,refresh:r}=te(),[S,C]=(0,x.useState)(``),[w,T]=(0,x.useState)(new Set),[k,A]=(0,x.useState)(null),[ie,j]=(0,x.useState)(``),[ae,M]=(0,x.useState)(``),[N,P]=(0,x.useState)(``),[F,I]=(0,x.useState)([]),[L,R]=(0,x.useState)(!1),[z,B]=(0,x.useState)(null),[V,H]=(0,x.useState)([]),[U,oe]=(0,x.useState)(null),[W,G]=(0,x.useState)(!1),K=(0,x.useMemo)(()=>{if(!S)return t;let e=S.toLowerCase();return t.map(t=>({...t,endpoints:t.endpoints.filter(t=>t.desc.toLowerCase().includes(e)||t.path.toLowerCase().includes(e)||t.method.toLowerCase().includes(e))})).filter(e=>e.endpoints.length>0)},[t,S]),se=(0,x.useCallback)(e=>{T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ce=(0,x.useCallback)(e=>{A(e),j(e.method),M(e.path),P(e.bodyTemplate?JSON.stringify(e.bodyTemplate,null,2):``),I([]),B(null)},[]),q=ie||k?.method||`GET`,J=ae||k?.path||``,Y=(0,x.useMemo)(()=>{let e=F.filter(e=>e.enabled&&e.key.trim());if(e.length===0)return J;let t=e.map(e=>`${encodeURIComponent(e.key)}=${encodeURIComponent(e.value)}`).join(`&`);return`${J}?${t}`},[J,F]),X=(0,x.useCallback)((e=``,t=``)=>{I(n=>[...n,{id:O++,key:e,value:t,enabled:!0}])},[]),le=(0,x.useCallback)(e=>{I(t=>t.filter(t=>t.id!==e))},[]),Z=(0,x.useCallback)((e,t,n)=>{I(r=>r.map(r=>r.id===e?{...r,[t]:n}:r))},[]),ue=(0,x.useCallback)(e=>{I(t=>t.map(t=>t.id===e?{...t,enabled:!t.enabled}:t))},[]),Q=(0,x.useCallback)(async()=>{if(L||!Y)return;let t=`${e?.baseUrl??``}${Y}`;R(!0);let n=performance.now();try{let e={method:q,headers:{"Content-Type":`application/json`}};[`POST`,`PATCH`,`PUT`].includes(q)&&N.trim()&&(e.body=N);let r=await fetch(t,e),i=Math.round(performance.now()-n),a;if((r.headers.get(`content-type`)??``).includes(`json`)){let e=await r.json();a=JSON.stringify(e,null,2)}else a=await r.text();let o={status:r.status,body:a,duration:i};B(o),H(e=>[{id:Date.now(),method:q,url:Y,body:N||void 0,status:r.status,duration:i,response:a,timestamp:new Date},...e].slice(0,50))}catch(e){let t=Math.round(performance.now()-n);B({status:0,body:`Network Error: ${e.message}`,duration:t})}finally{R(!1)}},[e,Y,q,N,L]),de=(0,x.useCallback)(e=>{j(e.method);let[t,n]=e.url.split(`?`);if(M(t),P(e.body||``),n){let e=new URLSearchParams(n),t=[];e.forEach((e,n)=>{t.push({id:O++,key:n,value:e,enabled:!0})}),I(t)}else I([]);B(null),A(null)},[]),fe=(0,x.useCallback)(()=>{z?.body&&(navigator.clipboard.writeText(z.body),G(!0),setTimeout(()=>G(!1),1500))},[z]),$=e=>ne[String(e)[0]]??`text-muted-foreground`;return(0,E.jsxs)(`div`,{className:`flex flex-1 min-h-0 overflow-hidden`,children:[(0,E.jsxs)(`div`,{className:`w-72 shrink-0 border-r flex flex-col overflow-hidden`,children:[(0,E.jsxs)(`div`,{className:`p-3 border-b space-y-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(`h3`,{className:`text-sm font-semibold text-foreground flex-1`,children:`API Endpoints`}),(0,E.jsx)(`button`,{type:`button`,onClick:r,disabled:n,className:`p-1 rounded hover:bg-muted transition-colors text-muted-foreground hover:text-foreground`,title:`Refresh endpoints`,children:(0,E.jsx)(d,{className:`h-3.5 w-3.5 ${n?`animate-spin`:``}`})})]}),(0,E.jsxs)(`div`,{className:`relative`,children:[(0,E.jsx)(g,{className:`absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground`}),(0,E.jsx)(`input`,{type:`text`,value:S,onChange:e=>C(e.target.value),placeholder:`Search endpoints...`,className:`w-full rounded-md border bg-background pl-8 pr-3 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-ring`})]})]}),(0,E.jsx)(`div`,{className:`flex-1 overflow-auto p-2 space-y-1`,children:n?(0,E.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground text-sm`,children:[(0,E.jsx)(f,{className:`h-4 w-4 animate-spin mr-2`}),`Discovering APIs...`]}):K.length===0?(0,E.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-8 text-muted-foreground text-sm`,children:[(0,E.jsx)(b,{className:`h-6 w-6 opacity-30 mb-2`}),(0,E.jsx)(`span`,{children:S?`No matching endpoints`:`No endpoints found`})]}):K.map(e=>{let t=w.has(e.key)||!!S;return(0,E.jsxs)(ee,{open:t,onOpenChange:()=>se(e.key),children:[(0,E.jsx)(a,{asChild:!0,children:(0,E.jsxs)(`button`,{type:`button`,className:`w-full flex items-center gap-1.5 px-2 py-1.5 rounded-md text-xs font-medium text-muted-foreground hover:bg-muted/50 hover:text-foreground transition-colors`,children:[(0,E.jsx)(m,{className:`h-3 w-3 shrink-0 transition-transform duration-200 ${t?`rotate-90`:``}`}),(0,E.jsx)(`span`,{className:`flex-1 text-left truncate`,children:e.label}),(0,E.jsx)(`span`,{className:`shrink-0 text-[10px] tabular-nums opacity-60`,children:e.endpoints.length})]})}),(0,E.jsx)(l,{children:(0,E.jsx)(`div`,{className:`ml-3 space-y-0.5 mt-0.5`,children:e.endpoints.map((e,t)=>(0,E.jsxs)(`button`,{type:`button`,onClick:()=>ce(e),className:`w-full text-left flex items-center gap-1.5 px-2 py-1 rounded text-xs transition-colors ${k===e?`bg-accent text-accent-foreground`:`hover:bg-muted/50 text-muted-foreground hover:text-foreground`}`,children:[(0,E.jsx)(_,{variant:`outline`,className:`font-mono text-[9px] shrink-0 px-1 py-0 ${D[e.method]||``}`,children:e.method}),(0,E.jsx)(`span`,{className:`truncate`,children:e.desc})]},`${e.method}-${e.path}-${t}`))})})]},e.key)})}),(0,E.jsxs)(`div`,{className:`p-3 border-t space-y-2`,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,E.jsx)(`h4`,{className:`text-[10px] font-medium text-muted-foreground uppercase tracking-wider`,children:`Query Parameters`}),(0,E.jsxs)(`button`,{type:`button`,onClick:()=>X(),className:`inline-flex items-center gap-0.5 text-[10px] text-muted-foreground hover:text-foreground transition-colors`,children:[(0,E.jsx)(o,{className:`h-3 w-3`}),`Add`]})]}),(0,E.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:re.map(e=>(0,E.jsx)(`button`,{type:`button`,onClick:()=>X(e.key,``),className:`text-[10px] px-1.5 py-0.5 rounded border bg-muted/30 text-muted-foreground hover:text-foreground hover:bg-muted/60 transition-colors font-mono`,title:e.hint,children:e.key},e.key))}),F.length>0&&(0,E.jsx)(`div`,{className:`space-y-1`,children:F.map(e=>(0,E.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,E.jsx)(`input`,{type:`checkbox`,checked:e.enabled,onChange:()=>ue(e.id),className:`h-3 w-3 shrink-0 rounded border accent-primary`}),(0,E.jsx)(`input`,{type:`text`,value:e.key,onChange:t=>Z(e.id,`key`,t.target.value),placeholder:`key`,className:`flex-1 min-w-0 rounded border bg-background px-1.5 py-0.5 text-[10px] font-mono focus:outline-none focus:ring-1 focus:ring-ring`}),(0,E.jsx)(`input`,{type:`text`,value:e.value,onChange:t=>Z(e.id,`value`,t.target.value),placeholder:`value`,className:`flex-1 min-w-0 rounded border bg-background px-1.5 py-0.5 text-[10px] font-mono focus:outline-none focus:ring-1 focus:ring-ring`}),(0,E.jsx)(`button`,{type:`button`,onClick:()=>le(e.id),className:`shrink-0 p-0.5 rounded text-muted-foreground hover:text-destructive transition-colors`,children:(0,E.jsx)(h,{className:`h-3 w-3`})})]},e.id))})]})]}),(0,E.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0 overflow-hidden`,children:[(0,E.jsxs)(`div`,{className:`p-3 border-b space-y-1`,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(`select`,{value:q,onChange:e=>j(e.target.value),className:`rounded-md border bg-background px-2 py-1.5 font-mono text-xs font-semibold focus:outline-none focus:ring-1 focus:ring-ring ${D[q]||``}`,children:[`GET`,`POST`,`PATCH`,`PUT`,`DELETE`].map(e=>(0,E.jsx)(`option`,{value:e,children:e},e))}),(0,E.jsx)(`input`,{type:`text`,value:J,onChange:e=>M(e.target.value),className:`flex-1 rounded-md border bg-background px-3 py-1.5 font-mono text-sm focus:outline-none focus:ring-1 focus:ring-ring`,placeholder:`/api/v1/...`,onKeyDown:e=>{e.key===`Enter`&&Q()}}),(0,E.jsxs)(`button`,{type:`button`,onClick:Q,disabled:L||!Y,className:`inline-flex items-center gap-1.5 rounded-md bg-primary px-4 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors`,children:[L?(0,E.jsx)(f,{className:`h-3.5 w-3.5 animate-spin`}):(0,E.jsx)(c,{className:`h-3.5 w-3.5`}),`Send`]})]}),F.some(e=>e.enabled&&e.key.trim())&&(0,E.jsxs)(`div`,{className:`text-[10px] font-mono text-muted-foreground truncate pl-1`,children:[`→ `,Y]})]}),(0,E.jsxs)(`div`,{className:`flex-1 flex flex-col min-h-0 overflow-auto`,children:[[`POST`,`PATCH`,`PUT`].includes(q)&&(0,E.jsxs)(`div`,{className:`p-3 border-b space-y-1`,children:[(0,E.jsx)(`label`,{className:`text-xs font-medium text-muted-foreground`,children:`Request Body (JSON)`}),(0,E.jsx)(`textarea`,{value:N,onChange:e=>P(e.target.value),rows:5,className:`w-full rounded-md border bg-background px-3 py-2 font-mono text-xs focus:outline-none focus:ring-1 focus:ring-ring resize-y`,placeholder:`{ "key": "value" }`})]}),L&&(0,E.jsxs)(`div`,{className:`flex items-center justify-center py-8 text-muted-foreground text-sm`,children:[(0,E.jsx)(f,{className:`h-4 w-4 animate-spin mr-2`}),`Sending request...`]}),z&&!L&&(0,E.jsxs)(`div`,{className:`flex-1 min-h-0 flex flex-col overflow-hidden`,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 bg-muted/30 border-b`,children:[(0,E.jsxs)(`div`,{className:`flex items-center gap-3 text-sm`,children:[(0,E.jsx)(`span`,{className:`font-mono font-semibold ${$(z.status)}`,children:z.status||`ERR`}),(0,E.jsxs)(`span`,{className:`text-muted-foreground flex items-center gap-1`,children:[(0,E.jsx)(u,{className:`h-3 w-3`}),z.duration,`ms`]})]}),(0,E.jsxs)(`button`,{type:`button`,onClick:fe,className:`inline-flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors`,children:[W?(0,E.jsx)(v,{className:`h-3 w-3`}):(0,E.jsx)(s,{className:`h-3 w-3`}),W?`Copied`:`Copy`]})]}),(0,E.jsx)(`pre`,{className:`flex-1 overflow-auto p-3 text-xs font-mono bg-muted/10 whitespace-pre-wrap break-all`,children:z.body})]}),!z&&!L&&(0,E.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground text-sm`,children:(0,E.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,E.jsx)(b,{className:`h-10 w-10 mx-auto opacity-20`}),(0,E.jsxs)(`p`,{children:[`Select an endpoint or type a URL and click `,(0,E.jsx)(`strong`,{children:`Send`})]}),(0,E.jsx)(`p`,{className:`text-xs opacity-60`,children:`All registered APIs are auto-discovered from the platform`})]})}),V.length>0&&(0,E.jsxs)(`div`,{className:`border-t`,children:[(0,E.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2`,children:[(0,E.jsxs)(`h4`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wider`,children:[`History (`,V.length,`)`]}),(0,E.jsxs)(`button`,{type:`button`,onClick:()=>H([]),className:`inline-flex items-center gap-1 text-[10px] text-muted-foreground hover:text-foreground transition-colors`,children:[(0,E.jsx)(p,{className:`h-3 w-3`}),`Clear`]})]}),(0,E.jsx)(`div`,{className:`space-y-0.5 px-2 pb-2 max-h-60 overflow-auto`,children:V.map(e=>(0,E.jsxs)(`div`,{className:`rounded border`,children:[(0,E.jsxs)(`button`,{type:`button`,onClick:()=>oe(U===e.id?null:e.id),className:`w-full flex items-center gap-2 px-2 py-1.5 text-xs hover:bg-muted/30 transition-colors`,children:[U===e.id?(0,E.jsx)(y,{className:`h-3 w-3 shrink-0`}):(0,E.jsx)(m,{className:`h-3 w-3 shrink-0`}),(0,E.jsx)(_,{variant:`outline`,className:`font-mono text-[9px] shrink-0 ${D[e.method]||``}`,children:e.method}),(0,E.jsx)(`span`,{className:`font-mono truncate text-left flex-1`,children:e.url}),(0,E.jsx)(`span`,{className:`ml-auto shrink-0 font-mono ${$(e.status)}`,children:e.status}),(0,E.jsxs)(`span`,{className:`shrink-0 text-muted-foreground`,children:[e.duration,`ms`]}),(0,E.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),de(e)},className:`shrink-0 p-0.5 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors`,title:`Replay request`,children:(0,E.jsx)(c,{className:`h-2.5 w-2.5`})})]}),U===e.id&&(0,E.jsx)(`pre`,{className:`px-3 py-2 text-xs font-mono bg-muted/10 border-t overflow-auto max-h-40 whitespace-pre-wrap break-all`,children:e.response})]},e.id))})]})]})]})]})}export{k as ApiConsolePage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,m as n,r,s as i,y as a}from"./vendor-react-BgOXCBVK.js";import{fo as o,jc as s}from"./ui-components-q_9kKTqi.js";import{t as c}from"./DocShell-CpxhuaS6.js";import{a as l,c as u,n as d}from"./use-book-data-BpISrpLC.js";var f=e(a(),1),p=r();function m(){let{appName:e}=n(),{books:r,docs:a,state:m}=d(),h=(0,f.useMemo)(()=>r.filter(t=>u(t)===e),[r,e]),g=(0,f.useMemo)(()=>l(h,a),[h,a]);return m===`loading`?(0,p.jsx)(`div`,{className:`flex h-full items-center justify-center p-10 text-muted-foreground`,children:(0,p.jsx)(o,{className:`h-5 w-5 animate-spin`,"aria-label":`Loading documentation`})}):g.length===1?(0,p.jsx)(i,{to:`/apps/${e}/docs/${g[0].slug}`,replace:!0}):(0,p.jsx)(c,{children:(0,p.jsx)(`div`,{className:`mx-auto max-w-3xl p-4 sm:p-6`,children:g.length===0?(0,p.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-16 text-center text-muted-foreground`,children:[(0,p.jsx)(s,{className:`h-10 w-10`}),(0,p.jsx)(`p`,{className:`text-sm`,children:`This app does not ship any documentation yet.`}),(0,p.jsx)(t,{to:`/docs`,className:`text-sm font-medium text-primary hover:underline`,children:`Browse all documentation`})]}):(0,p.jsx)(`ul`,{className:`grid gap-3 sm:grid-cols-2`,children:g.map(n=>(0,p.jsx)(`li`,{children:(0,p.jsxs)(t,{to:`/apps/${e}/docs/${n.slug}`,className:`flex h-full items-start gap-3 rounded-md border border-border p-3 hover:bg-muted/50`,children:[(0,p.jsx)(s,{className:`mt-0.5 h-5 w-5 shrink-0 text-muted-foreground`}),(0,p.jsxs)(`div`,{className:`min-w-0`,children:[(0,p.jsx)(`div`,{className:`text-sm font-semibold`,children:n.label}),n.description?(0,p.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`,children:n.description}):n.subtitle?(0,p.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[11px] text-muted-foreground/70`,children:n.subtitle}):null,(0,p.jsxs)(`div`,{className:`mt-1 text-xs text-muted-foreground/80`,children:[n.docCount,` `,n.docCount===1?`article`:`articles`]})]})]})},n.name))})})})}export{m as default};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,m as n,r,s as i,y as a}from"./vendor-react-BgOXCBVK.js";import{Fc as o,_o as s}from"./ui-components-mPgY5chB.js";import{t as c}from"./DocShell-C1VQpTIJ.js";import{a as l,c as u,n as d}from"./use-book-data-B2KPEJjv.js";var f=e(a(),1),p=r();function m(){let{appName:e}=n(),{books:r,docs:a,state:m}=d(),h=(0,f.useMemo)(()=>r.filter(t=>u(t)===e),[r,e]),g=(0,f.useMemo)(()=>l(h,a),[h,a]);return m===`loading`?(0,p.jsx)(`div`,{className:`flex h-full items-center justify-center p-10 text-muted-foreground`,children:(0,p.jsx)(s,{className:`h-5 w-5 animate-spin`,"aria-label":`Loading documentation`})}):g.length===1?(0,p.jsx)(i,{to:`/apps/${e}/docs/${g[0].slug}`,replace:!0}):(0,p.jsx)(c,{children:(0,p.jsx)(`div`,{className:`mx-auto max-w-3xl p-4 sm:p-6`,children:g.length===0?(0,p.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-16 text-center text-muted-foreground`,children:[(0,p.jsx)(o,{className:`h-10 w-10`}),(0,p.jsx)(`p`,{className:`text-sm`,children:`This app does not ship any documentation yet.`}),(0,p.jsx)(t,{to:`/docs`,className:`text-sm font-medium text-primary hover:underline`,children:`Browse all documentation`})]}):(0,p.jsx)(`ul`,{className:`grid gap-3 sm:grid-cols-2`,children:g.map(n=>(0,p.jsx)(`li`,{children:(0,p.jsxs)(t,{to:`/apps/${e}/docs/${n.slug}`,className:`flex h-full items-start gap-3 rounded-md border border-border p-3 hover:bg-muted/50`,children:[(0,p.jsx)(o,{className:`mt-0.5 h-5 w-5 shrink-0 text-muted-foreground`}),(0,p.jsxs)(`div`,{className:`min-w-0`,children:[(0,p.jsx)(`div`,{className:`text-sm font-semibold`,children:n.label}),n.description?(0,p.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-xs text-muted-foreground`,children:n.description}):n.subtitle?(0,p.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[11px] text-muted-foreground/70`,children:n.subtitle}):null,(0,p.jsxs)(`div`,{className:`mt-1 text-xs text-muted-foreground/80`,children:[n.docCount,` `,n.docCount===1?`article`:`articles`]})]})]})},n.name))})})})}export{m as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{f as t,m as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{Q as a,T as o,Z as s}from"./framework-B8ndNKrd.js";import{Ea as c,Eo as l,Er as u,Ii as d,Na as f,Nn as p,Si as m,Ss as h,Tr as g,Wi as _,bi as v,ia as y,jr as b,qr as x,wr as S,xi as C}from"./ui-components-mPgY5chB.js";import{r as w}from"./vendor-ui-utils-BGw4RtYu.js";import"./src-BBKXMp-o.js";var T=e(i(),1);function E(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}}var D=r();function O(e,t){return(e instanceof Error?e.message:String(e??``))||t}function k(){let{t:e}=o(),r=t(),{appName:i}=n(),k=i?`/apps/${i}`:``,{apps:A,refresh:j}=a(),M=s(),N=(0,T.useCallback)(()=>M?.getClient?.()?.meta??null,[M]),P=e(`appManagement.toast.unknownError`,{defaultValue:`unknown error`}),F=(0,T.useCallback)(t=>E(t?.label,e)||t?.name||``,[e]),[I,L]=(0,T.useState)(``),[R,z]=(0,T.useState)(new Set),[B,V]=(0,T.useState)(null),[H,U]=(0,T.useState)(!1),W=(A||[]).filter(t=>{if(!I)return!0;let n=I.toLowerCase();return(t.name||``).toLowerCase().includes(n)||F(t).toLowerCase().includes(n)||(E(t.description,e)||``).toLowerCase().includes(n)}),G=(0,T.useCallback)(e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),K=(0,T.useCallback)(()=>{R.size===W.length?z(new Set):z(new Set(W.map(e=>e.name)))},[R.size,W]),q=(0,T.useCallback)(async t=>{let n=N();if(!n){w.error(e(`appManagement.toast.noClient`,{defaultValue:`Cannot reach the metadata service`}));return}U(!0);try{let r=t.active===!1;await n.saveItem(`app`,t.name,{...t,active:r}),w.success(r?e(`appManagement.toast.appEnabled`,{defaultValue:`{{name}} enabled`,name:F(t)}):e(`appManagement.toast.appDisabled`,{defaultValue:`{{name}} disabled`,name:F(t)})),await j()}catch(t){w.error(e(`appManagement.toast.toggleFailed`,{defaultValue:`Failed to toggle app status: {{reason}}`,reason:O(t,P)}))}finally{U(!1)}},[j,N,e,F,P]),J=(0,T.useCallback)(async t=>{let n=N();if(!n){w.error(e(`appManagement.toast.noClient`,{defaultValue:`Cannot reach the metadata service`}));return}U(!0);try{let r=(A||[]).filter(e=>e?.isDefault===!0&&e.name!==t.name);for(let e of r)await n.saveItem(`app`,e.name,{...e,isDefault:!1});await n.saveItem(`app`,t.name,{...t,isDefault:!0}),w.success(e(`appManagement.toast.setDefaultDone`,{defaultValue:`{{name}} set as default`,name:F(t)})),await j()}catch(t){w.error(e(`appManagement.toast.setDefaultFailed`,{defaultValue:`Failed to set default app: {{reason}}`,reason:O(t,P)}))}finally{U(!1)}},[A,j,N,e,F,P]),Y=(0,T.useCallback)(async t=>{if(B!==t.name){V(t.name);return}let n=N();if(!n){w.error(e(`appManagement.toast.noClient`,{defaultValue:`Cannot reach the metadata service`}));return}U(!0);try{await n.deleteItem(`app`,t.name),w.success(e(`appManagement.toast.appDeleted`,{defaultValue:`{{name}} deleted`,name:F(t)})),V(null),await j()}catch(t){w.error(e(`appManagement.toast.deleteFailed`,{defaultValue:`Failed to delete app: {{reason}}`,reason:O(t,P)}))}finally{U(!1)}},[B,j,N,e,F,P]),X=(0,T.useCallback)(async t=>{let n=N();if(!n){w.error(e(`appManagement.toast.noClient`,{defaultValue:`Cannot reach the metadata service`}));return}U(!0);let r=0,i=[];try{let a=new Map((A||[]).map(e=>[e?.name,e]));for(let o of R){let s=a.get(o);if(s)try{await n.saveItem(`app`,o,{...s,active:t}),r+=1}catch(t){i.push(e(`appManagement.toast.bulkFailureEntry`,{defaultValue:`{{name}} ({{reason}})`,name:F(s),reason:O(t,P)}))}}if(r>0&&(w.success(t?e(`appManagement.toast.bulkEnabled`,{defaultValue:`{{n}} apps enabled`,n:r}):e(`appManagement.toast.bulkDisabled`,{defaultValue:`{{n}} apps disabled`,n:r})),z(new Set)),i.length>0){let t=e(`appManagement.toast.bulkFailureJoiner`,{defaultValue:`; `});w.error(e(`appManagement.toast.bulkFailed`,{defaultValue:`Failed for {{n}}: {{details}}`,n:i.length,details:i.join(t)}))}await j()}catch(t){w.error(e(`appManagement.toast.bulkOperationFailed`,{defaultValue:`Bulk operation failed: {{reason}}`,reason:O(t,P)}))}finally{U(!1)}},[A,R,j,N,e,F,P]);return(0,D.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 sm:p-6`,children:[(0,D.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3`,children:[(0,D.jsxs)(`div`,{className:`min-w-0`,children:[(0,D.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:e(`appManagement.title`,{defaultValue:`Applications`})}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e(`appManagement.subtitle`,{defaultValue:`Manage all configured applications`})})]}),(0,D.jsxs)(x,{onClick:()=>r(`${k}/create-app`),"data-testid":`create-app-btn`,children:[(0,D.jsx)(c,{className:`h-4 w-4 mr-2`}),e(`appManagement.newApp`,{defaultValue:`New App`})]})]}),(0,D.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start sm:items-center gap-2`,children:[(0,D.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,D.jsx)(`label`,{htmlFor:`app-search`,className:`sr-only`,children:e(`appManagement.searchLabel`,{defaultValue:`Search apps`})}),(0,D.jsx)(y,{className:`pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`,"aria-hidden":`true`}),(0,D.jsx)(p,{id:`app-search`,placeholder:e(`appManagement.searchPlaceholder`,{defaultValue:`Search apps…`}),value:I,onChange:e=>L(e.target.value),className:`pl-8`,"data-testid":`app-search-input`})]}),R.size>0&&(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(b,{variant:`secondary`,children:e(`appManagement.selectedCount`,{defaultValue:`{{n}} selected`,n:R.size})}),(0,D.jsx)(x,{variant:`outline`,size:`sm`,onClick:()=>X(!0),disabled:H,children:e(`appManagement.bulkEnable`,{defaultValue:`Enable`})}),(0,D.jsx)(x,{variant:`outline`,size:`sm`,onClick:()=>X(!1),disabled:H,children:e(`appManagement.bulkDisable`,{defaultValue:`Disable`})})]})]}),W.length>0&&(0,D.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:[(0,D.jsx)(S,{id:`select-all-apps`,checked:R.size===W.length&&W.length>0,onCheckedChange:()=>K()}),(0,D.jsx)(`label`,{htmlFor:`select-all-apps`,className:`cursor-pointer`,children:e(`appManagement.selectAll`,{defaultValue:`Select all ({{n}})`,n:W.length})})]}),W.length===0?(0,D.jsxs)(`div`,{className:`text-center py-12 text-muted-foreground`,"data-testid":`no-apps-message`,children:[(0,D.jsx)(l,{className:`h-12 w-12 mx-auto mb-3 opacity-30`}),(0,D.jsx)(`p`,{children:e(`appManagement.empty`,{defaultValue:`No apps found.`})})]}):(0,D.jsx)(`div`,{className:`grid gap-3`,children:W.map(t=>{let n=t.active!==!1,i=t.isDefault===!0,a=B===t.name,o=F(t);return(0,D.jsx)(g,{className:n?``:`opacity-60`,"data-testid":`app-card-${t.name}`,children:(0,D.jsxs)(u,{className:`flex items-center gap-3 py-3 px-4`,children:[(0,D.jsx)(S,{id:`select-app-${t.name}`,checked:R.has(t.name),onCheckedChange:()=>G(t.name),"aria-label":e(`appManagement.selectApp`,{defaultValue:`Select {{name}}`,name:o}),className:`shrink-0`}),(0,D.jsx)(`div`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,D.jsx)(l,{className:`h-4 w-4`})}),(0,D.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(`span`,{className:`font-medium truncate`,children:o}),i&&(0,D.jsx)(b,{variant:`default`,className:`text-xs`,children:e(`appManagement.defaultBadge`,{defaultValue:`Default`})}),(0,D.jsx)(b,{variant:n?`secondary`:`outline`,className:`text-xs`,children:n?e(`appManagement.active`,{defaultValue:`Active`}):e(`appManagement.inactive`,{defaultValue:`Inactive`})})]}),t.description&&(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground truncate`,children:E(t.description,e)})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:e(`appManagement.openApp`,{defaultValue:`Open app`}),"aria-label":e(`appManagement.openAppNamed`,{defaultValue:`Open {{name}}`,name:o}),onClick:()=>r(`/apps/${t._packageId??t.name}`),children:(0,D.jsx)(h,{className:`h-4 w-4`})}),(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:e(`appManagement.editApp`,{defaultValue:`Edit app`}),"aria-label":e(`appManagement.editAppNamed`,{defaultValue:`Edit {{name}}`,name:o}),onClick:()=>r(`${k}/edit-app/${t.name}`),children:(0,D.jsx)(f,{className:`h-4 w-4`})}),t._packageId?(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:e(`appManagement.editWithAi`,{defaultValue:`Edit with AI`}),"aria-label":e(`appManagement.editWithAiNamed`,{defaultValue:`Edit {{name}} with AI`,name:o}),onClick:()=>r(`/ai/build?package=${encodeURIComponent(t._packageId)}&new=1`),children:(0,D.jsx)(_,{className:`h-4 w-4`})}):null,(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:n?e(`appManagement.disableApp`,{defaultValue:`Disable app`}):e(`appManagement.enableApp`,{defaultValue:`Enable app`}),"aria-label":n?e(`appManagement.disableAppNamed`,{defaultValue:`Disable {{name}}`,name:o}):e(`appManagement.enableAppNamed`,{defaultValue:`Enable {{name}}`,name:o}),onClick:()=>q(t),disabled:H,children:n?(0,D.jsx)(C,{className:`h-4 w-4`}):(0,D.jsx)(m,{className:`h-4 w-4`})}),(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:e(`appManagement.setDefault`,{defaultValue:`Set as default`}),"aria-label":e(`appManagement.setDefaultNamed`,{defaultValue:`Set {{name}} as default`,name:o}),onClick:()=>J(t),disabled:H||i,children:(0,D.jsx)(d,{className:`h-4 w-4 ${i?`fill-current text-yellow-500`:``}`})}),(0,D.jsx)(x,{variant:`ghost`,size:`icon`,title:a?e(`appManagement.confirmDelete`,{defaultValue:`Click again to confirm delete`}):e(`appManagement.deleteApp`,{defaultValue:`Delete app`}),"aria-label":a?e(`appManagement.confirmDeleteNamed`,{defaultValue:`Confirm delete {{name}}`,name:o}):e(`appManagement.deleteAppNamed`,{defaultValue:`Delete {{name}}`,name:o}),onClick:()=>Y(t),disabled:H,className:a?`text-destructive`:``,children:(0,D.jsx)(v,{className:`h-4 w-4`})})]})]})},t.name)})})]})}export{k as AppManagementPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{a as t,h as n,m as r,r as i,y as a}from"./vendor-react-BgOXCBVK.js";import{b as o,v as s,x as ee}from"./infrastructure-ChmEYj6c.js";import{T as te}from"./framework-B8ndNKrd.js";import{Br as ne,Bt as re,Cn as c,Er as ie,Fa as ae,Fr as oe,Gc as se,Gr as ce,Gt as le,Hi as ue,Hr as de,Ht as l,Ir as fe,It as pe,Kr as me,Ks as he,Lt as ge,Nn as _e,Ns as ve,Rr as ye,Rt as be,Sn as xe,Ss as Se,Tn as Ce,Tr as we,Ur as Te,Ut as u,Vr as Ee,Vs as De,Vt as Oe,Wr as ke,Wt as Ae,_a as je,_n as Me,ac as Ne,bn as Pe,dc as Fe,ei as Ie,el as d,fc as Le,gn as Re,hn as ze,ht as Be,ia as Ve,jr as f,li as He,mc as Ue,mt as We,nc as Ge,ni as Ke,pn as p,qr as m,qs as qe,ra as Je,vn as Ye,vt as Xe,wn as Ze,wr as Qe,xn as $e,yn as et,zr as tt,zt as nt}from"./ui-components-mPgY5chB.js";import{r as h}from"./vendor-ui-utils-BGw4RtYu.js";import"./src-BBKXMp-o.js";import{r as rt}from"./RecordDetailView-DrVbrbaN.js";var g=e(a(),1),it=`${``.replace(/\/$/,``)}/api/v1`;async function _(e,t){let n=ee.get(),r=await fetch(`${it}${e}`,{credentials:`include`,headers:{"Content-Type":`application/json`,...n?{Authorization:`Bearer ${n}`}:{},...t?.headers||{}},...t}),i=null;try{i=await r.json()}catch{}if(!r.ok){let e=i?.code??`HTTP_${r.status}`,t=i?.message??i?.error??r.statusText,n=Error(`${e}: ${t}`);throw n.code=e,n.status=r.status,n.details=i,n}return i}var v={listProcesses(e={}){let t=new URLSearchParams;e.object&&t.set(`object`,e.object),e.activeOnly&&t.set(`activeOnly`,`true`);let n=t.toString();return _(`/approvals/processes${n?`?${n}`:``}`)},listRequests(e={}){let t=new URLSearchParams;e.status&&t.set(`status`,e.status),e.object&&t.set(`object`,e.object),e.recordId&&t.set(`recordId`,e.recordId);let n=Array.isArray(e.approverId)?e.approverId.filter(Boolean).join(`,`):e.approverId;n&&t.set(`approverId`,n),e.submitterId&&t.set(`submitterId`,e.submitterId),e.q?.trim()&&t.set(`q`,e.q.trim()),e.limit!=null&&t.set(`limit`,String(e.limit)),e.offset!=null&&t.set(`offset`,String(e.offset));let r=t.toString();return _(`/approvals/requests${r?`?${r}`:``}`)},async getRequest(e){return{data:await _(`/approvals/requests/${encodeURIComponent(e)}`)}},listActions(e){return _(`/approvals/requests/${encodeURIComponent(e)}/actions`)},async approve(e,t){let n=await _(`/approvals/requests/${encodeURIComponent(e)}/approve`,{method:`POST`,body:JSON.stringify(t)});return{data:n.request,finalized:n.finalized}},async reject(e,t){let n=await _(`/approvals/requests/${encodeURIComponent(e)}/reject`,{method:`POST`,body:JSON.stringify(t)});return{data:n.request,finalized:n.finalized}},async recall(e,t){return{data:(await _(`/approvals/requests/${encodeURIComponent(e)}/recall`,{method:`POST`,body:JSON.stringify(t)})).request,finalized:!0}},async reassign(e,t){return{data:(await _(`/approvals/requests/${encodeURIComponent(e)}/reassign`,{method:`POST`,body:JSON.stringify(t)})).request}},async remind(e,t={}){let n=await _(`/approvals/requests/${encodeURIComponent(e)}/remind`,{method:`POST`,body:JSON.stringify(t)});return{data:n.request,notified:n.notified}},async requestInfo(e,t){return{data:(await _(`/approvals/requests/${encodeURIComponent(e)}/request-info`,{method:`POST`,body:JSON.stringify(t)})).request}},async sendBack(e,t){let n=await _(`/approvals/requests/${encodeURIComponent(e)}/revise`,{method:`POST`,body:JSON.stringify(t)});return{data:n.request,autoRejected:n.autoRejected===!0}},async resubmit(e,t={}){let n=await _(`/approvals/requests/${encodeURIComponent(e)}/resubmit`,{method:`POST`,body:JSON.stringify(t)});return{data:n.request,resumed:n.resumed===!0}},async comment(e,t){return{data:(await _(`/approvals/requests/${encodeURIComponent(e)}/comment`,{method:`POST`,body:JSON.stringify(t)})).request}},async submit(e){return _(`/approvals/requests`,{method:`POST`,body:JSON.stringify(e)})}};function at(e){if(!e)return[];let t=new Set;e.id&&t.add(e.id),e.email&&t.add(e.email);let n=[...e.roles||[],...typeof e.role==`string`?e.role.split(`,`):[]];for(let e of n){let n=String(e).trim();n&&t.add(`role:${n}`)}return Array.from(t)}var y=i(),ot=50,b={pending:`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-400`,approved:`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-400`,rejected:`border-red-200 bg-red-50 text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-400`,recalled:`border-border bg-muted text-muted-foreground`,returned:`border-violet-200 bg-violet-50 text-violet-700 dark:border-violet-500/30 dark:bg-violet-500/10 dark:text-violet-400`};function st({status:e,label:t}){return(0,y.jsx)(f,{variant:`outline`,className:d(`font-medium`,b[e]??``),children:t})}function ct(e){if(!e)return`—`;try{return new Date(e).toLocaleString()}catch{return e}}function x(e){return e?e.includes(`@`)?e:e.startsWith(`role:`)?`Role: ${e.slice(5)}`:e.length>14?`${e.slice(0,6)}…${e.slice(-4)}`:e:`—`}function S(e){return e&&String(e).replace(/^flow:/,``).trim().split(/[_\-\s]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)||`—`}function C(e){return e.process_label||S(e.process_name)}function lt(e){return e.step_label?e.step_label:e.current_step?S(e.current_step):null}function ut(e){return e.submitter_name||x(e.submitter_id)}function dt(e,t){return t.pending_approver_names?.[e]||x(e)}function w(e,t){let n=t.pending_approver_groups?.[e];return n&&n.length?n.join(` / `):void 0}function ft(e){let t=[],n=new Map;for(let r of e.pending_approvers||[]){let i=dt(r,e),a=w(r,e),o=a?`${i} ${a}`:i,s=n.get(o);s?(s.count+=1,r&&!s.title.split(`, `).includes(r)&&(s.title+=`, ${r}`)):(n.set(o,{label:i,group:a,count:1,title:r||i}),t.push(o))}return t.map(e=>n.get(e))}function pt(e){if(e.submitter_name)return!1;let t=(e.submitter_id||``).trim();return!t||t.startsWith(`flow:`)||t.startsWith(`system:`)}function mt(e){return e.object_label||e.object_name}function T(e){return e.submitted_at||e.created_at||void 0}function ht(e,t){let n=T(e);if(!n)return null;let r=Date.parse(n);return Number.isNaN(r)?null:(t-r)/36e5}function gt(e,t){if(e.status!==`pending`)return`text-muted-foreground`;let n=ht(e,t);return n==null?`text-muted-foreground`:n>72?`text-red-600 dark:text-red-400 font-medium`:n>24?`text-amber-600 dark:text-amber-400`:`text-muted-foreground`}function _t(e){let t=Math.max(1,Math.round(Math.abs(e)/36e5));return t<48?`${t}h`:`${Math.round(t/24)}d`}function vt(e,t){if(!e)return null;let n=Date.parse(e);return Number.isNaN(n)?null:{overdue:n<t,ms:Math.abs(t-n)}}var E=new Set([`id`,`created_at`,`updated_at`,`created_by`,`updated_by`,`organization_id`]);function D(e){let t=e.split(`_`).filter(Boolean);return t.length>1&&t[t.length-1].toLowerCase()===`id`&&t.pop(),t.map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}function O(e,t){if(typeof t==`boolean`)return t?`✓`:`—`;if(typeof t==`number`){if(t>0xe8d4a51000&&/(_at$|_date$|^date_|_time$)/.test(e))try{return new Date(t).toLocaleDateString()}catch{}return t.toLocaleString()}let n=String(t);if(/^\d{4}-\d{2}-\d{2}T\d{2}/.test(n))try{return new Date(n).toLocaleString()}catch{}return n}var yt=/^[A-Za-z0-9_-]{15,}$/;function bt(e,t,n,r=6,i){if(!e||typeof e!=`object`||Array.isArray(e))return[];let a=[];for(let[o,s]of Object.entries(e)){if(E.has(o)||i&&o===i||s==null||typeof s==`object`||String(s).trim()===``)continue;let e=t?.[o];if(!(!e&&typeof s==`string`&&yt.test(s.trim())&&!/^\d+$/.test(s.trim()))&&(a.push([n?.[o]??D(o),e??O(o,s)]),a.length>=r))break}return a}var xt=/(amount|total|price|value|cost|sum|budget|salary|fee|revenue|balance|金额|总额|价格|费用|预算|金额)/i;function St(e){let t=e.payload;if(!t||typeof t!=`object`||Array.isArray(t))return null;for(let[n,r]of Object.entries(t)){if(E.has(n)||!xt.test(n))continue;let t=typeof r==`number`?r:typeof r==`string`&&r.trim()!==``&&Number.isFinite(Number(r))?Number(r):null;if(!(t==null||!Number.isFinite(t)))return{key:n,label:e.payload_labels?.[n]??D(n),value:t,display:e.payload_display?.[n]??t.toLocaleString()}}return null}function k(){let{t:e,language:i}=te(),{user:a}=s(),{appName:ee}=r(),[it,_]=n(),b=(0,g.useMemo)(()=>at(a),[a]),S=(0,g.useCallback)((t,n,r)=>String(e(`approvalsInbox.${t}`,{defaultValue:n,...r})),[e]),[w,ht]=(0,g.useState)(()=>Date.now());(0,g.useEffect)(()=>{let e=setInterval(()=>ht(Date.now()),6e4);return()=>clearInterval(e)},[]);let E=(0,g.useCallback)(e=>{if(!e)return`—`;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=Math.round((w-t)/1e3);if(n<45)return S(`justNow`,`just now`);let r=Math.round(n/60);if(r<60)return S(`minutesAgo`,`{{count}}m ago`,{count:r});let a=Math.round(r/60);if(a<24)return S(`hoursAgo`,`{{count}}h ago`,{count:a});let o=Math.round(a/24);if(o<30)return S(`daysAgo`,`{{count}}d ago`,{count:o});try{return new Date(e).toLocaleDateString(i)}catch{return e}},[S,i,w]),D=(0,g.useCallback)(e=>{switch(e){case`pending`:return S(`statusPending`,`Pending`);case`approved`:return S(`statusApproved`,`Approved`);case`rejected`:return S(`statusRejected`,`Rejected`);case`recalled`:return S(`statusRecalled`,`Recalled`);case`returned`:return S(`statusReturned`,`Returned for revision`);default:return e}},[S]),O=(0,g.useCallback)((e,t)=>{let n=e?.code??``,r=e?.status??0;return n===`NOT_IMPLEMENTED`||r===501?S(`recallUnavailable`,`Recall is not available on this deployment.`):n===`THROTTLED`||r===429?S(`remindThrottled`,`A reminder was sent recently — try again later.`):r===404?S(`requestGone`,`This request no longer exists. Refresh the list.`):n===`FORBIDDEN`||r===403?S(`notAllowed`,`You are not allowed to perform this action.`):n===`INVALID_STATE`||r===409?S(`alreadyDecided`,`This request was already decided. Refresh the list.`):e?.message||t},[S]),yt=(0,g.useCallback)(e=>e.overdue?S(`slaOverdue`,`SLA overdue {{dur}}`,{dur:_t(e.ms)}):S(`slaRemaining`,`SLA {{dur}} left`,{dur:_t(e.ms)}),[S]),xt=(0,g.useCallback)(e=>`/apps/${ee||`setup`}/${encodeURIComponent(e.object_name)}/record/${encodeURIComponent(e.record_id)}`,[ee]),[k,Ct]=(0,g.useState)(`pending`),[A,wt]=(0,g.useState)([]),[Tt,Et]=(0,g.useState)(!1),[Dt,Ot]=(0,g.useState)(!1),[kt,j]=(0,g.useState)(null),[At,jt]=(0,g.useState)(null),[Mt,Nt]=(0,g.useState)(0),[M,Pt]=(0,g.useState)(null),[N,P]=(0,g.useState)(null),[Ft,F]=(0,g.useState)([]),[It,Lt]=(0,g.useState)(!1),Rt=(0,g.useMemo)(()=>o(),[]),zt=(0,g.useCallback)(async e=>{let t=window.open(``,`_blank`,`noopener`);try{let n=``.replace(/\/$/,``),r=await Rt(`${n}/api/v1/storage/files/${encodeURIComponent(e.id)}/url`);if(!r.ok)throw Error(`HTTP_${r.status}`);let i=await r.json().catch(()=>null),a=i?.data?.url??i?.url;if(!a)throw Error(`NO_URL`);let o=/^https?:\/\//i.test(a)?a:`${n}${a}`;t?t.location.href=o:window.open(o,`_blank`,`noopener`)}catch{t?.close(),h.error(S(`attachmentOpenFailed`,`Could not open the attachment — please try again`))}},[Rt,S]),[I,Bt]=(0,g.useState)(``),[L,Vt]=(0,g.useState)(``),[R,Ht]=(0,g.useState)(`all`),[z,Ut]=(0,g.useState)(`all`),[B,Wt]=(0,g.useState)(`all`),[Gt,Kt]=(0,g.useState)(`recent`),[V,H]=(0,g.useState)(new Set),[qt,Jt]=(0,g.useState)(!1),[U,Yt]=(0,g.useState)(null),[W,Xt]=(0,g.useState)(null),[Zt,Qt]=(0,g.useState)(null),[G,$t]=(0,g.useState)(``),[en,tn]=(0,g.useState)(!1),[nn,rn]=(0,g.useState)(-1);(0,g.useEffect)(()=>{if(k===`pending`)return;let e=window.setTimeout(()=>Vt(I),350);return()=>window.clearTimeout(e)},[I,k]);let K=(0,g.useCallback)(async()=>{Et(!0),jt(null);try{let e=[];if(k===`pending`)e=b.length?(await v.listRequests({status:`pending`,approverId:b})).data:[],Nt(e.length),j(null);else{let t={q:L||void 0,status:B===`all`?void 0:B,limit:ot,offset:0};if(k===`submitted`){let n=a?.id;if(n){let r=await v.listRequests({submitterId:n,...t});e=r.data,j(r.total??r.data.length)}else e=[],j(0)}else{let n=await v.listRequests(t);e=n.data,j(n.total??n.data.length)}b.length&&v.listRequests({status:`pending`,approverId:b}).then(e=>Nt(e.data.length)).catch(()=>{})}e.sort((e,t)=>(T(t)||``).localeCompare(T(e)||``)),wt(e)}catch(e){jt(e?.message||String(e)),wt([])}finally{Et(!1)}},[k,b,a?.id,L,B]);(0,g.useEffect)(()=>{K()},[K]);let an=(0,g.useCallback)(async()=>{if(!(k===`pending`||Dt)){Ot(!0);try{let e=await v.listRequests({submitterId:k===`submitted`?a?.id??void 0:void 0,q:L||void 0,status:B===`all`?void 0:B,limit:ot,offset:A.length});wt(t=>{let n=new Set(t.map(e=>e.id));return[...t,...e.data.filter(e=>!n.has(e.id))]}),e.total!=null&&j(e.total)}catch(e){h.error(O(e,S(`loadFailed`,`Failed to load request`)))}finally{Ot(!1)}}},[k,Dt,a?.id,L,B,A.length,O,S]),q=(0,g.useCallback)(async e=>{Pt(e),Lt(!0);try{let[t,n]=await Promise.all([v.getRequest(e),v.listActions(e)]);P(t.data),F(n.data)}catch(e){h.error(O(e,S(`loadFailed`,`Failed to load request`))),P(null),F([])}finally{Lt(!1)}},[O,S]),on=()=>{Pt(null),P(null),F([])};(0,g.useEffect)(()=>{let e=it.get(`request`);e&&(_(e=>{let t=new URLSearchParams(e);return t.delete(`request`),t},{replace:!0}),q(e))},[it]);let J=(0,g.useCallback)(()=>{b.length&&v.listRequests({status:`pending`,approverId:b}).then(e=>Nt(e.data.length)).catch(()=>{})},[b]),sn=(0,g.useCallback)(async e=>{let[t,n]=await Promise.all([v.getRequest(e),v.listActions(e)]);P(t.data),F(n.data),K()},[K]),cn=(0,g.useCallback)(async()=>{if(!N)return;let e=N.id;try{let[t,n]=await Promise.all([v.getRequest(e),v.listActions(e)]);P(t.data),F(n.data),K();let r=new Set(t.data.pending_approvers||[]),i=t.data.status===`pending`&&b.some(e=>r.has(e));if(k===`pending`&&!i){let t=Cn.current,n=t.findIndex(t=>t.id===e),r=t[n+1]??t[n-1];if(r&&r.id!==e){q(r.id);return}on()}}catch{sn(e)}},[N,b,k,K,q,on,sn]),ln=(0,g.useCallback)(async()=>{if(!(!N||!G.trim())){tn(!0);try{await v.comment(N.id,{actor_id:a?.id,comment:G.trim()}),$t(``),await sn(N.id)}catch(e){h.error(O(e,S(`actionFailed`,`Action failed`)))}finally{tn(!1)}}},[N,G,a?.id,sn,O,S]),un=(0,g.useMemo)(()=>{if(!N||N.status!==`pending`)return!1;if(N.viewer)return N.viewer.can_act||!!N.viewer.can_override;let e=new Set(N.pending_approvers||[]);return b.some(t=>e.has(t))},[N,b]),dn=(0,g.useMemo)(()=>!N||N.status!==`pending`?!1:N.viewer?N.viewer.is_submitter:N.submitter_id===a?.id,[N,a?.id]),fn=(0,g.useMemo)(()=>!N||N.status!==`returned`?!1:N.viewer?N.viewer.is_submitter:N.submitter_id===a?.id,[N,a?.id]),pn=(0,g.useMemo)(()=>{let e=new Set;for(let t of A)e.add(C(t));return Array.from(e).sort()},[A]),mn=(0,g.useMemo)(()=>{let e=new Set;for(let t of A)t.object_name&&e.add(t.object_name);return Array.from(e).sort()},[A]),Y=(0,g.useMemo)(()=>{let e=I.trim().toLowerCase(),t=A.filter(t=>R!==`all`&&C(t)!==R||z!==`all`&&t.object_name!==z||B!==`all`&&t.status!==B?!1:k!==`pending`||!e||[t.process_name,t.process_label,t.step_label,t.object_name,t.record_id,t.record_title,t.submitter_id,t.submitter_name,...t.pending_approvers||[]].filter(Boolean).join(` `).toLowerCase().includes(e));if(Gt===`recent`)return t;let n=[...t];return Gt===`amount`?n.sort((e,t)=>{let n=St(e)?.value,r=St(t)?.value;return n==null&&r==null?0:n==null?1:r==null?-1:r-n}):n.sort((e,t)=>(T(e)||``).localeCompare(T(t)||``)),n},[A,I,R,z,B,k,Gt]),X=(0,g.useMemo)(()=>M?Y.findIndex(e=>e.id===M):-1,[Y,M]);(0,g.useEffect)(()=>{if(V.size===0)return;let e=new Set(Y.map(e=>e.id)),t=!1,n=new Set;for(let r of V)e.has(r)?n.add(r):t=!0;t&&H(n)},[Y,V]),(0,g.useEffect)(()=>{nn>=Y.length&&rn(Y.length-1)},[Y.length,nn]);let hn=(0,g.useCallback)(e=>{if(e.status!==`pending`)return!1;let t=new Set(b);return(e.pending_approvers||[]).some(e=>t.has(e))},[b]),Z=(0,g.useCallback)(e=>Array.isArray(e.decision_outputs)&&e.decision_outputs.length>0,[]),gn=(0,g.useCallback)(e=>hn(e)&&!Z(e),[hn,Z]),Q=(0,g.useMemo)(()=>Y.filter(e=>V.has(e.id)&&gn(e)),[Y,V,gn]),$=Y.filter(e=>e.status===`pending`),_n=$.length>0&&$.every(e=>V.has(e.id)),vn=(0,g.useCallback)(()=>{H(e=>{if(_n)return new Set;let t=new Set(e);for(let e of $)t.add(e.id);return t})},[_n,$]),yn=(0,g.useCallback)(e=>{H(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),bn=(0,g.useCallback)(async e=>{let t=Q;if(t.length===0)return;Jt(!0);let n=0,r=[];for(let i of t){let t=new Set(i.pending_approvers||[]),o=b.find(e=>t.has(e))||a?.id||``;try{await(e===`approve`?v.approve:v.reject)(i.id,{actor_id:o}),n++}catch{r.push(i.record_title||x(i.record_id))}}if(Jt(!1),H(new Set),r.length===0)h.success(e===`approve`?S(`bulkApproved`,`Approved {{count}} requests`,{count:n}):S(`bulkRejected`,`Rejected {{count}} requests`,{count:n}));else{let e=r.slice(0,3).join(`, `);h.error(S(`bulkPartial`,`{{ok}} succeeded, {{fail}} failed: {{which}}`,{ok:n,fail:r.length,which:e+(r.length>3?`…`:``)}))}K(),J()},[Q,b,a?.id,K,J,S]),xn=(0,g.useCallback)(async()=>{let e=U;if(!e)return;let t=new Set(e.pending_approvers||[]),n=b.find(e=>t.has(e))||a?.id||``;Qt(e.id),Yt(null);try{let t=await v.approve(e.id,{actor_id:n});h.success(t.finalized?S(`inlineApproved`,`Approved "{{title}}"`,{title:e.record_title||x(e.record_id)}):S(`approvedWaiting`,`Approved — waiting on the remaining approvers`)),K(),J()}catch(e){h.error(O(e,S(`actionFailed`,`Action failed`)))}finally{Qt(null)}},[U,b,a?.id,K,J,O,S]),Sn=(0,g.useCallback)(async()=>{let e=W;if(!e)return;let t=new Set(e.pending_approvers||[]),n=b.find(e=>t.has(e))||a?.id||``;Qt(e.id),Xt(null);try{await v.reject(e.id,{actor_id:n}),h.success(S(`inlineRejected`,`Rejected "{{title}}"`,{title:e.record_title||x(e.record_id)})),K(),J()}catch(e){h.error(O(e,S(`actionFailed`,`Action failed`)))}finally{Qt(null)}},[W,b,a?.id,K,J,O,S]),Cn=(0,g.useRef)(Y);Cn.current=Y;let wn=(0,g.useRef)(nn);wn.current=nn,(0,g.useEffect)(()=>{let e=e=>{if(M||U||W)return;let t=e.target,n=t?.tagName;if(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t?.isContentEditable||document.querySelector(`[role="alertdialog"]`))return;let r=Cn.current;if(!r.length)return;let i=wn.current;e.key===`j`||e.key===`ArrowDown`?(e.preventDefault(),rn(Math.min(i+1,r.length-1))):e.key===`k`||e.key===`ArrowUp`?(e.preventDefault(),rn(Math.max(i-1,0))):e.key===`Enter`&&i>=0&&r[i]?(e.preventDefault(),q(r[i].id)):(e.key===`x`||e.key===` `)&&i>=0&&r[i]&&k===`pending`?(e.preventDefault(),yn(r[i].id)):e.key===`a`&&i>=0&&r[i]&&gn(r[i])?(e.preventDefault(),Yt(r[i])):e.key===`r`&&i>=0&&r[i]&&gn(r[i])&&(e.preventDefault(),Xt(r[i]))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[M,U,W,k,q,yn,gn]),(0,g.useEffect)(()=>{if(!M)return;let e=e=>{if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;let t=e.target,n=t?.tagName;if(n===`INPUT`||n===`TEXTAREA`||n===`SELECT`||t?.isContentEditable||document.querySelector(`[role="alertdialog"]`))return;let r=Cn.current,i=r.findIndex(e=>e.id===M);if(i<0)return;let a=e.key===`ArrowLeft`?r[i-1]:r[i+1];a&&(e.preventDefault(),q(a.id))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[M,q]);let Tn=!!I||R!==`all`||z!==`all`||B!==`all`,En=e=>{Ct(e),Wt(`all`),Ht(`all`),Ut(`all`),Bt(``),Kt(`recent`),rn(-1)};function Dn({r:e}){return(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsx)(`div`,{className:`font-medium truncate`,children:C(e)}),(0,y.jsxs)(`div`,{className:`text-xs text-muted-foreground truncate`,children:[lt(e)||`—`,(e.round??1)>1&&(0,y.jsx)(`span`,{className:`ml-1.5 text-violet-600 dark:text-violet-400`,children:S(`roundChip`,`Round {{n}}`,{n:e.round})})]})]})}function On({r:e}){let n=St(e);return(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsxs)(t,{to:xt(e),onClick:e=>e.stopPropagation(),className:`inline-flex items-center gap-1 text-sm hover:underline truncate max-w-full`,title:e.record_id,children:[(0,y.jsx)(`span`,{className:`truncate`,children:e.record_title||x(e.record_id)}),(0,y.jsx)(Se,{className:`h-3 w-3 shrink-0 text-muted-foreground`})]}),(0,y.jsxs)(`div`,{className:`text-xs text-muted-foreground truncate`,children:[mt(e),n&&(0,y.jsxs)(`span`,{className:`ml-1.5 font-medium text-foreground`,title:`${n.label}: ${n.display}`,children:[`· `,n.display]})]})]})}function kn({r:e}){if(!hn(e))return null;let t=Zt===e.id,n=Z(e),r=S(`needsDecisionInputs`,`This approval collects decision outputs — open it to decide.`);return(0,y.jsxs)(`div`,{className:`flex items-center gap-1 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity`,onClick:e=>e.stopPropagation(),title:n?r:void 0,children:[(0,y.jsx)(m,{size:`sm`,variant:`ghost`,className:`h-7 px-2 text-emerald-700 hover:text-emerald-800 hover:bg-emerald-50 dark:text-emerald-400`,disabled:t||n,onClick:()=>Yt(e),"aria-label":n?r:S(`approve`,`Approve`),children:(0,y.jsx)(Ge,{className:`h-4 w-4`})}),(0,y.jsx)(m,{size:`sm`,variant:`ghost`,className:`h-7 px-2 text-red-600 hover:text-red-700 hover:bg-red-50 dark:text-red-400`,disabled:t||n,onClick:()=>Xt(e),"aria-label":n?r:S(`reject`,`Reject`),children:(0,y.jsx)(qe,{className:`h-4 w-4`})})]})}return(0,y.jsxs)(`div`,{className:`flex flex-col gap-4 sm:gap-6 p-4 sm:p-6 max-w-6xl`,children:[(0,y.jsxs)(`header`,{className:`flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsxs)(`h1`,{className:`text-2xl font-semibold flex items-center gap-2`,children:[(0,y.jsx)(ue,{className:`h-6 w-6`}),S(`title`,`Approvals Inbox`)]}),(0,y.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:S(`subtitle`,`Review and act on approval requests.`)})]}),(0,y.jsxs)(m,{variant:`outline`,size:`sm`,onClick:K,disabled:Tt,className:`self-start sm:self-auto`,children:[(0,y.jsx)(je,{className:`h-4 w-4 mr-2 ${Tt?`animate-spin`:``}`}),S(`refresh`,`Refresh`)]})]}),At&&(0,y.jsxs)(oe,{variant:`destructive`,children:[(0,y.jsx)(Ne,{className:`h-4 w-4`}),(0,y.jsx)(fe,{children:At})]}),(0,y.jsxs)(pe,{value:k,onValueChange:En,children:[(0,y.jsxs)(be,{children:[(0,y.jsxs)(nt,{value:`pending`,children:[S(`tabMyPending`,`My Pending`),Mt>0&&(0,y.jsx)(f,{variant:`secondary`,className:`ml-2`,children:Mt})]}),(0,y.jsx)(nt,{value:`submitted`,children:S(`tabSubmitted`,`Submitted by me`)}),(0,y.jsx)(nt,{value:`all`,children:S(`tabAll`,`All`)})]}),(0,y.jsxs)(ge,{value:k,className:`mt-4 space-y-3`,children:[!Tt&&(A.length>0||k!==`pending`&&(L||B!==`all`))&&(0,y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,y.jsxs)(`div`,{className:`relative flex-1 min-w-[200px] max-w-sm`,children:[(0,y.jsx)(Ve,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,y.jsx)(_e,{value:I,onChange:e=>Bt(e.target.value),placeholder:S(`searchPlaceholder`,`Search record, process, requester…`),className:`pl-8 h-8 text-sm`}),I&&(0,y.jsx)(`button`,{type:`button`,onClick:()=>Bt(``),className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,"aria-label":S(`clearSearch`,`Clear search`),children:(0,y.jsx)(Ie,{className:`h-3.5 w-3.5`})})]}),k!==`pending`&&(0,y.jsxs)($e,{value:B,onValueChange:Wt,children:[(0,y.jsx)(Ze,{className:`h-8 w-auto min-w-[130px] text-sm`,children:(0,y.jsx)(Ce,{placeholder:S(`statusFilter`,`Status`)})}),(0,y.jsxs)(xe,{children:[(0,y.jsx)(c,{value:`all`,children:S(`allStatuses`,`All statuses`)}),(0,y.jsx)(c,{value:`pending`,children:D(`pending`)}),(0,y.jsx)(c,{value:`approved`,children:D(`approved`)}),(0,y.jsx)(c,{value:`rejected`,children:D(`rejected`)}),(0,y.jsx)(c,{value:`recalled`,children:D(`recalled`)}),(0,y.jsx)(c,{value:`returned`,children:D(`returned`)})]})]}),pn.length>1&&(0,y.jsxs)($e,{value:R,onValueChange:Ht,children:[(0,y.jsx)(Ze,{className:`h-8 w-auto min-w-[140px] text-sm`,children:(0,y.jsx)(Ce,{placeholder:S(`processFilter`,`Process`)})}),(0,y.jsxs)(xe,{children:[(0,y.jsx)(c,{value:`all`,children:S(`allProcesses`,`All processes`)}),pn.map(e=>(0,y.jsx)(c,{value:e,children:e},e))]})]}),mn.length>1&&(0,y.jsxs)($e,{value:z,onValueChange:Ut,children:[(0,y.jsx)(Ze,{className:`h-8 w-auto min-w-[140px] text-sm`,children:(0,y.jsx)(Ce,{placeholder:S(`objectFilter`,`Object`)})}),(0,y.jsxs)(xe,{children:[(0,y.jsx)(c,{value:`all`,children:S(`allObjects`,`All objects`)}),mn.map(e=>(0,y.jsx)(c,{value:e,children:e},e))]})]}),(0,y.jsxs)($e,{value:Gt,onValueChange:e=>Kt(e),children:[(0,y.jsxs)(Ze,{className:`h-8 w-auto min-w-[120px] text-sm`,children:[(0,y.jsx)(se,{className:`h-3.5 w-3.5 mr-1 text-muted-foreground`}),(0,y.jsx)(Ce,{placeholder:S(`sortBy`,`Sort`)})]}),(0,y.jsxs)(xe,{children:[(0,y.jsx)(c,{value:`recent`,children:S(`sortRecent`,`Newest first`)}),(0,y.jsx)(c,{value:`oldest`,children:S(`sortOldest`,`Oldest first`)}),(0,y.jsx)(c,{value:`amount`,children:S(`sortAmount`,`Amount (high→low)`)})]})]}),Tn&&(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:S(`filterCount`,`{{shown}} of {{total}}`,{shown:Y.length,total:A.length})})]}),k===`pending`&&V.size>0&&(0,y.jsxs)(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2 rounded-md border bg-accent/30 text-sm`,children:[(0,y.jsxs)(`span`,{children:[(0,y.jsx)(`strong`,{children:V.size}),` `,S(`selected`,`selected`),Q.length!==V.size&&(0,y.jsx)(`span`,{className:`text-muted-foreground ml-1`,children:S(`actionableCount`,`({{count}} actionable)`,{count:Q.length})})]}),(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsxs)(ye,{children:[(0,y.jsx)(me,{asChild:!0,children:(0,y.jsxs)(m,{size:`sm`,disabled:qt||Q.length===0,children:[(0,y.jsx)(Ge,{className:`h-3.5 w-3.5 mr-1`}),S(`approveN`,`Approve {{count}}`,{count:Q.length||``})]})}),(0,y.jsxs)(Ee,{children:[(0,y.jsxs)(ke,{children:[(0,y.jsx)(ce,{children:S(`bulkApproveTitle`,`Approve {{count}} requests?`,{count:Q.length})}),(0,y.jsx)(de,{children:S(`bulkApproveBody`,`Each request is approved with your identity and its flow continues down the approve branch.`)})]}),(0,y.jsxs)(Te,{children:[(0,y.jsx)(ne,{children:S(`cancel`,`Cancel`)}),(0,y.jsx)(tt,{onClick:()=>bn(`approve`),children:S(`approveN`,`Approve {{count}}`,{count:Q.length})})]})]})]}),(0,y.jsxs)(ye,{children:[(0,y.jsx)(me,{asChild:!0,children:(0,y.jsxs)(m,{size:`sm`,variant:`outline`,disabled:qt||Q.length===0,className:`border-destructive text-destructive hover:bg-destructive hover:text-destructive-foreground`,children:[(0,y.jsx)(qe,{className:`h-3.5 w-3.5 mr-1`}),S(`rejectN`,`Reject {{count}}`,{count:Q.length||``})]})}),(0,y.jsxs)(Ee,{children:[(0,y.jsxs)(ke,{children:[(0,y.jsx)(ce,{children:S(`bulkRejectTitle`,`Reject {{count}} requests?`,{count:Q.length})}),(0,y.jsx)(de,{children:S(`bulkRejectBody`,`This rejects the selected requests and notifies their submitters.`)})]}),(0,y.jsxs)(Te,{children:[(0,y.jsx)(ne,{children:S(`cancel`,`Cancel`)}),(0,y.jsx)(tt,{onClick:()=>bn(`reject`),className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:S(`rejectN`,`Reject {{count}}`,{count:Q.length})})]})]})]}),(0,y.jsx)(m,{size:`sm`,variant:`ghost`,onClick:()=>H(new Set),disabled:qt,children:S(`clear`,`Clear`)})]})]}),Tt?(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(p,{className:`h-10 w-full`}),(0,y.jsx)(p,{className:`h-10 w-full`}),(0,y.jsx)(p,{className:`h-10 w-full`})]}):A.length===0?(0,y.jsx)(`div`,{className:`flex items-center justify-center min-h-[240px] rounded-md border border-dashed`,children:(0,y.jsxs)(We,{children:[(0,y.jsx)(Xe,{children:S(`emptyTitle`,`No requests`)}),(0,y.jsx)(Be,{children:k===`pending`?S(`emptyPending`,`You're all caught up — nothing is waiting on you.`):S(`emptyOther`,`Nothing here yet.`)}),k===`pending`&&(0,y.jsx)(m,{variant:`link`,size:`sm`,className:`mt-1`,onClick:()=>En(`all`),children:S(`emptyViewAll`,`Browse all requests`)})]})}):Y.length===0?(0,y.jsx)(`div`,{className:`flex items-center justify-center min-h-[160px] rounded-md border border-dashed text-sm text-muted-foreground`,children:S(`noMatches`,`No matches for current filters.`)}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(we,{className:`hidden md:block`,children:(0,y.jsx)(ie,{className:`p-0`,children:(0,y.jsxs)(re,{children:[(0,y.jsx)(Ae,{children:(0,y.jsxs)(le,{children:[k===`pending`&&(0,y.jsx)(u,{className:`w-10`,children:(0,y.jsx)(Qe,{checked:_n,onCheckedChange:vn,"aria-label":S(`selectAll`,`Select all`),disabled:$.length===0})}),(0,y.jsx)(u,{className:`w-[22%]`,children:S(`colRequest`,`Request`)}),(0,y.jsx)(u,{className:`w-[30%]`,children:S(`colRecord`,`Record`)}),(0,y.jsx)(u,{className:`w-[16%]`,children:S(`colRequester`,`Requester`)}),(0,y.jsx)(u,{className:`w-[110px] min-w-[96px] whitespace-nowrap`,children:S(`colStatus`,`Status`)}),(0,y.jsx)(u,{className:`w-[132px]`,children:S(`colWaiting`,`Submitted`)}),(0,y.jsx)(u,{className:`w-20`,"aria-label":S(`colActions`,`Actions`)})]})}),(0,y.jsx)(Oe,{children:Y.map((e,t)=>(0,y.jsxs)(le,{className:d(`group cursor-pointer hover:bg-accent/50`,nn===t&&`ring-2 ring-inset ring-ring bg-accent/30`),onClick:()=>{rn(t),q(e.id)},children:[k===`pending`&&(0,y.jsx)(l,{className:`w-10`,onClick:e=>e.stopPropagation(),children:(0,y.jsx)(Qe,{checked:V.has(e.id),onCheckedChange:()=>yn(e.id),disabled:e.status!==`pending`,"aria-label":S(`selectRow`,`Select request`)})}),(0,y.jsx)(l,{children:(0,y.jsx)(Dn,{r:e})}),(0,y.jsx)(l,{children:(0,y.jsx)(On,{r:e})}),(0,y.jsx)(l,{children:pt(e)?(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm text-muted-foreground`,children:[(0,y.jsx)(Ke,{className:`h-3.5 w-3.5 shrink-0`}),(0,y.jsx)(`span`,{className:`truncate italic`,children:S(`flowOrigin`,`Flow-initiated`)})]}):(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm`,children:[(0,y.jsx)(He,{className:`h-3.5 w-3.5 text-muted-foreground shrink-0`}),(0,y.jsx)(`span`,{className:`truncate`,title:e.submitter_id||``,children:ut(e)})]})}),(0,y.jsx)(l,{children:(0,y.jsx)(st,{status:e.status,label:D(e.status)})}),(0,y.jsxs)(l,{className:d(`text-xs whitespace-nowrap`,gt(e,w)),title:ct(T(e)),children:[(0,y.jsx)(De,{className:`h-3 w-3 inline mr-1`}),E(T(e)),e.status===`pending`&&(()=>{let t=vt(e.sla_due_at,w);return t?(0,y.jsx)(`div`,{className:d(`mt-0.5 text-[10px] font-medium`,t.overdue?`text-red-600 dark:text-red-400`:`text-muted-foreground`),children:yt(t)}):null})()]}),(0,y.jsx)(l,{className:`w-20`,children:(0,y.jsx)(kn,{r:e})})]},e.id))})]})})}),(0,y.jsx)(`div`,{className:`md:hidden space-y-2`,children:Y.map(e=>(0,y.jsx)(we,{className:`cursor-pointer active:bg-accent/50`,onClick:()=>void q(e.id),children:(0,y.jsxs)(ie,{className:`p-3 space-y-1.5`,children:[(0,y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,y.jsx)(`div`,{className:`font-medium text-sm truncate`,children:C(e)}),(0,y.jsx)(st,{status:e.status,label:D(e.status)})]}),(0,y.jsxs)(`div`,{className:`text-sm truncate`,children:[e.record_title||x(e.record_id),(0,y.jsx)(`span`,{className:`text-muted-foreground text-xs ml-1.5`,children:mt(e)}),(()=>{let t=St(e);return t?(0,y.jsxs)(`span`,{className:`text-xs ml-1.5 font-medium`,title:t.label,children:[`· `,t.display]}):null})()]}),(0,y.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[pt(e)?(0,y.jsxs)(`span`,{className:`inline-flex items-center gap-1 truncate italic`,children:[(0,y.jsx)(Ke,{className:`h-3 w-3`}),S(`flowOrigin`,`Flow-initiated`)]}):(0,y.jsxs)(`span`,{className:`inline-flex items-center gap-1 truncate`,children:[(0,y.jsx)(He,{className:`h-3 w-3`}),ut(e)]}),(0,y.jsxs)(`span`,{className:d(`inline-flex items-center gap-1 whitespace-nowrap`,gt(e,w)),children:[(0,y.jsx)(De,{className:`h-3 w-3`}),E(T(e))]})]}),hn(e)&&(0,y.jsxs)(`div`,{className:`flex gap-2 pt-1`,onClick:e=>e.stopPropagation(),title:Z(e)?S(`needsDecisionInputs`,`This approval collects decision outputs — open it to decide.`):void 0,children:[(0,y.jsxs)(m,{size:`sm`,className:`h-7 flex-1`,disabled:Zt===e.id||Z(e),onClick:()=>Yt(e),children:[(0,y.jsx)(Ge,{className:`h-3.5 w-3.5 mr-1`}),S(`approve`,`Approve`)]}),(0,y.jsxs)(m,{size:`sm`,variant:`outline`,className:`h-7 flex-1 border-destructive text-destructive`,disabled:Zt===e.id||Z(e),onClick:()=>Xt(e),children:[(0,y.jsx)(qe,{className:`h-3.5 w-3.5 mr-1`}),S(`reject`,`Reject`)]})]})]})},e.id))}),k!==`pending`&&kt!=null&&(0,y.jsxs)(`div`,{className:`flex items-center justify-center gap-3 py-1`,children:[(0,y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:S(`loadedOf`,`Loaded {{loaded}} of {{total}}`,{loaded:A.length,total:kt})}),A.length<kt&&(0,y.jsx)(m,{size:`sm`,variant:`outline`,disabled:Dt,onClick:()=>void an(),children:Dt?S(`loadingMore`,`Loading…`):S(`loadMore`,`Load more`)})]}),(0,y.jsx)(`div`,{className:`hidden md:block text-[11px] text-muted-foreground`,children:S(`keyboardHint`,`Keyboard: j/k move · Enter open · x select · a approve · r reject`)})]})]})]}),(0,y.jsx)(ye,{open:!!U,onOpenChange:e=>!e&&Yt(null),children:(0,y.jsxs)(Ee,{children:[(0,y.jsxs)(ke,{children:[(0,y.jsx)(ce,{children:S(`approveOneTitle`,`Approve "{{title}}"?`,{title:U?U.record_title||x(U.record_id):``})}),(0,y.jsx)(de,{children:S(`approveOneBody`,`This approves the request with your identity. To add a comment or attachment, open the request instead.`)})]}),(0,y.jsxs)(Te,{children:[(0,y.jsx)(ne,{children:S(`cancel`,`Cancel`)}),(0,y.jsx)(tt,{onClick:()=>void xn(),children:S(`approve`,`Approve`)})]})]})}),(0,y.jsx)(ye,{open:!!W,onOpenChange:e=>!e&&Xt(null),children:(0,y.jsxs)(Ee,{children:[(0,y.jsxs)(ke,{children:[(0,y.jsx)(ce,{children:S(`rejectOneTitle`,`Reject "{{title}}"?`,{title:W?W.record_title||x(W.record_id):``})}),(0,y.jsx)(de,{children:S(`rejectOneBody`,`This rejects the request and notifies the submitter.`)})]}),(0,y.jsxs)(Te,{children:[(0,y.jsx)(ne,{children:S(`cancel`,`Cancel`)}),(0,y.jsx)(tt,{onClick:()=>void Sn(),className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:S(`reject`,`Reject`)})]})]})}),(0,y.jsx)(ze,{open:!!M,onOpenChange:e=>!e&&on(),children:(0,y.jsxs)(Re,{className:`w-full sm:max-w-xl overflow-y-auto`,children:[(0,y.jsxs)(Ye,{children:[(0,y.jsx)(et,{children:N?C(N):S(`drawerTitle`,`Approval Request`)}),(0,y.jsx)(Me,{children:N?lt(N)||mt(N):``})]}),N&&X>=0&&Y.length>1&&(0,y.jsxs)(`div`,{className:`flex items-center justify-between mt-2 text-xs text-muted-foreground`,children:[(0,y.jsxs)(m,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,disabled:X<=0,onClick:()=>{let e=Y[X-1];e&&q(e.id)},children:[(0,y.jsx)(Le,{className:`h-4 w-4 mr-0.5`}),S(`prevRequest`,`Previous`)]}),(0,y.jsx)(`span`,{children:S(`positionOf`,`Request {{index}} of {{total}}`,{index:X+1,total:Y.length})}),(0,y.jsxs)(m,{variant:`ghost`,size:`sm`,className:`h-7 px-2`,disabled:X>=Y.length-1,onClick:()=>{let e=Y[X+1];e&&q(e.id)},children:[S(`nextRequest`,`Next`),(0,y.jsx)(Fe,{className:`h-4 w-4 ml-0.5`})]})]}),It?(0,y.jsxs)(`div`,{className:`space-y-2 mt-6`,children:[(0,y.jsx)(p,{className:`h-6 w-3/4`}),(0,y.jsx)(p,{className:`h-6 w-1/2`}),(0,y.jsx)(p,{className:`h-20 w-full`})]}):N?(0,y.jsxs)(`div`,{className:`space-y-4 mt-6`,children:[(0,y.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 text-xs text-muted-foreground`,children:[(0,y.jsx)(st,{status:N.status,label:D(N.status)}),(N.round??1)>1&&(0,y.jsx)(f,{variant:`outline`,className:`text-[10px] border-violet-200 text-violet-700 dark:border-violet-500/30 dark:text-violet-400`,children:S(`roundChip`,`Round {{n}}`,{n:N.round})}),(0,y.jsxs)(`span`,{className:`inline-flex items-center gap-1`,title:ct(T(N)),children:[(0,y.jsx)(De,{className:`h-3 w-3`}),S(`submittedAgo`,`Submitted {{when}}`,{when:E(T(N))})]}),N.completed_at&&(0,y.jsxs)(`span`,{children:[`· `,S(`completedAt`,`Completed {{when}}`,{when:E(N.completed_at)})]}),N.status===`pending`&&(()=>{let e=vt(N.sla_due_at,w);return e?(0,y.jsx)(f,{variant:`outline`,className:d(`text-[10px]`,e.overdue?`border-red-200 bg-red-50 text-red-700 dark:border-red-500/30 dark:bg-red-500/10 dark:text-red-400`:`border-border text-muted-foreground`),children:yt(e)}):null})()]}),(()=>{let e=St(N),n=bt(N.payload,N.payload_display,N.payload_labels,6,e?.key);return(0,y.jsx)(we,{children:(0,y.jsxs)(ie,{className:`p-4 space-y-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsxs)(t,{to:xt(N),className:`text-base font-semibold hover:underline inline-flex items-center gap-1.5`,children:[(0,y.jsx)(`span`,{className:`truncate`,children:N.record_title||x(N.record_id)}),(0,y.jsx)(Se,{className:`h-3.5 w-3.5 shrink-0 text-muted-foreground`})]}),(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:mt(N)})]}),(0,y.jsx)(`div`,{className:`text-right text-xs text-muted-foreground shrink-0`,children:(0,y.jsx)(`div`,{className:`inline-flex items-center gap-1`,children:pt(N)?(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Ke,{className:`h-3 w-3`}),(0,y.jsx)(`span`,{className:`italic`,children:S(`flowOrigin`,`Flow-initiated`)})]}):(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(He,{className:`h-3 w-3`}),(0,y.jsx)(`span`,{title:N.submitter_id||``,children:ut(N)})]})})})]}),e&&(0,y.jsxs)(`div`,{className:`border-t pt-3`,children:[(0,y.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:e.label}),(0,y.jsx)(`div`,{className:`text-xl font-semibold tabular-nums`,title:e.display,children:e.display})]}),n.length>0&&(0,y.jsx)(`div`,{className:d(`grid grid-cols-2 gap-x-4 gap-y-2 text-sm`,!e&&`border-t pt-3`),children:n.map(([e,t])=>(0,y.jsxs)(`div`,{className:`min-w-0`,children:[(0,y.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:e}),(0,y.jsx)(`div`,{className:`truncate`,title:t,children:t})]},e))}),N.decision_progress&&(()=>{let e=N.decision_progress,t=(N.pending_approvers||[]).length;return(0,y.jsxs)(`div`,{className:`border-t pt-3`,children:[(0,y.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2 mb-1.5`,children:[(0,y.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:e.behavior===`per_group`?S(`progressGroups`,`Sign-off progress — {{got}} of {{need}} groups`,{got:e.got,need:e.need}):S(`progressApprovals`,`Approvals — {{got}} of {{need}}`,{got:e.got,need:e.need})}),e.behavior!==`per_group`&&N.status===`pending`&&t>0&&(0,y.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:S(`progressEligible`,`{{count}} eligible approver(s)`,{count:t})})]}),(0,y.jsx)(`div`,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":e.need,"aria-valuenow":Math.min(e.got,e.need),"aria-label":S(`progressBar`,`Decision progress`),className:`flex gap-1`,children:e.need>0&&e.need<=12?Array.from({length:e.need}).map((t,n)=>(0,y.jsx)(`div`,{className:d(`h-1.5 flex-1 rounded-full`,n<e.got?`bg-emerald-500`:`bg-muted`)},n)):(0,y.jsx)(`div`,{className:`h-1.5 flex-1 rounded-full bg-muted overflow-hidden`,children:(0,y.jsx)(`div`,{className:`h-full rounded-full bg-emerald-500`,style:{width:`${e.need>0?Math.min(100,e.got/e.need*100):0}%`}})})}),e.groups&&(0,y.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:e.groups.map(e=>(0,y.jsxs)(f,{variant:`outline`,className:d(`text-[11px] gap-1`,e.satisfied?`border-emerald-300 text-emerald-700 dark:border-emerald-700 dark:text-emerald-400`:`text-muted-foreground`),title:`${e.got}/${e.need}`,children:[e.satisfied?(0,y.jsx)(Ue,{className:`h-3 w-3`}):(0,y.jsx)(he,{className:`h-2.5 w-2.5`}),e.group,` `,e.got,`/`,e.need]},e.group))})]})})(),N.status===`pending`&&(N.pending_approvers||[]).length>0&&(0,y.jsxs)(`div`,{className:`border-t pt-3`,children:[(0,y.jsx)(`div`,{className:`text-[11px] text-muted-foreground mb-1`,children:S(`waitingOn`,`Waiting on`)}),(0,y.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:ft(N).map((e,t)=>(0,y.jsxs)(f,{variant:`outline`,className:`text-[11px]`,title:e.title,children:[e.label,e.group&&(0,y.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`· `,e.group]}),e.count>1&&(0,y.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`×`,e.count]})]},`${e.label}-${e.group??``}-${t}`))})]})]})})})(),(N.flow_steps?.length??0)>1&&(0,y.jsx)(`div`,{className:`flex items-center px-1`,"aria-label":S(`stepProgress`,`Approval steps`),children:N.flow_steps.map((e,t)=>(0,y.jsxs)(g.Fragment,{children:[t>0&&(0,y.jsx)(`div`,{className:d(`h-px flex-1 mx-2`,e.state===`done`||e.state===`current`?`bg-emerald-300 dark:bg-emerald-700`:`bg-border`)}),(0,y.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[(0,y.jsx)(`span`,{className:d(`flex items-center justify-center h-5 w-5 rounded-full text-[10px] font-semibold`,e.state===`done`&&`bg-emerald-500 text-white`,e.state===`current`&&`bg-amber-500 text-white ring-2 ring-amber-200 dark:ring-amber-500/30`,e.state===`upcoming`&&`bg-muted text-muted-foreground border`),children:e.state===`done`?(0,y.jsx)(Ue,{className:`h-3 w-3`}):t+1}),(0,y.jsx)(`span`,{className:d(`text-xs`,e.state===`current`?`font-medium`:`text-muted-foreground`),children:e.label})]})]},e.id))}),(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`h3`,{className:`text-sm font-semibold mb-3`,children:S(`history`,`Activity`)}),Ft.length===0?(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:S(`noActions`,`No actions yet.`)}):(0,y.jsx)(`ol`,{className:`relative space-y-3 pl-5 before:absolute before:left-[7px] before:top-1 before:bottom-1 before:w-px before:bg-border`,children:Ft.map(e=>{let t=e.action===`approve`?`bg-emerald-500`:e.action===`reject`?`bg-destructive`:e.action===`submit`?`bg-blue-500`:e.action===`reassign`?`bg-indigo-500`:e.action===`remind`||e.action===`request_info`?`bg-amber-500`:e.action===`comment`?`bg-slate-400`:e.action===`escalate`?`bg-red-500`:e.action===`revise`?`bg-violet-500`:e.action===`resubmit`?`bg-blue-500`:`bg-muted-foreground`,n=e.actor_id===`system:sla`?S(`systemSlaActor`,`System (SLA)`):e.actor_name??(e.actor_id&&e.actor_id===N.submitter_id?ut(N):x(e.actor_id)),r=e.action===`submit`?S(`actSubmit`,`Submitted`):e.action===`approve`?S(`actApprove`,`Approved`):e.action===`reject`?S(`actReject`,`Rejected`):e.action===`recall`?S(`actRecall`,`Recalled`):e.action===`reassign`?S(`actReassign`,`Reassigned`):e.action===`remind`?S(`actRemind`,`Reminder sent`):e.action===`request_info`?S(`actRequestInfo`,`Requested more info`):e.action===`comment`?S(`actComment`,`Commented`):e.action===`escalate`?S(`actEscalate`,`SLA escalated`):e.action===`revise`?S(`actRevise`,`Sent back for revision`):e.action===`resubmit`?S(`actResubmit`,`Resubmitted`):e.action;return(0,y.jsxs)(`li`,{className:`relative text-xs`,children:[(0,y.jsx)(`span`,{className:`absolute -left-[18px] top-1 h-3 w-3 rounded-full ring-2 ring-background ${t}`,"aria-hidden":!0}),(0,y.jsxs)(`div`,{className:`flex items-baseline gap-1.5 flex-wrap`,children:[(0,y.jsx)(`span`,{className:`font-medium`,children:r}),(0,y.jsx)(`span`,{className:`text-muted-foreground`,children:`·`}),(0,y.jsx)(`span`,{title:e.actor_id||``,children:n}),(0,y.jsx)(`span`,{className:`ml-auto text-muted-foreground text-[10px]`,title:ct(e.created_at),children:E(e.created_at)})]}),(()=>{let t=e;return e.action!==`reassign`||!t.reassign_from&&!t.reassign_to?null:(0,y.jsx)(`div`,{className:`text-muted-foreground mt-0.5`,children:S(`reassignFromTo`,`from {{from}} to {{to}}`,{from:t.reassign_from_name??x(t.reassign_from),to:t.reassign_to_name??x(t.reassign_to)})})})(),e.comment&&(0,y.jsxs)(`div`,{className:`text-muted-foreground italic mt-0.5`,children:[`"`,e.comment,`"`]}),Array.isArray(e.attachments)&&e.attachments.length>0&&(0,y.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mt-1`,children:e.attachments.map((t,n)=>(0,y.jsxs)(`button`,{type:`button`,onClick:()=>void zt(t),className:`inline-flex items-center gap-1 text-[11px] px-2 py-0.5 rounded-full border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors`,title:t.name||t.id,children:[(0,y.jsx)(ae,{className:`h-3 w-3`}),t.name||`${S(`attachmentChip`,`Attachment`)}${e.attachments.length>1?` ${n+1}`:``}`]},t.id||n))})]},e.id)})}),N.status===`pending`&&(un||dn)&&(0,y.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[(0,y.jsx)(_e,{value:G,onChange:e=>$t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&G.trim()&&(e.preventDefault(),ln())},placeholder:S(`replyPlaceholder`,`Reply on this request…`),className:`h-8 text-sm`}),(0,y.jsx)(m,{size:`sm`,variant:`outline`,className:`h-8 px-2 shrink-0`,disabled:!G.trim()||en,onClick:()=>void ln(),children:(0,y.jsx)(Je,{className:`h-3.5 w-3.5`})})]})]}),N.payload!=null&&(0,y.jsxs)(`details`,{className:`group`,children:[(0,y.jsx)(`summary`,{className:`cursor-pointer text-xs text-muted-foreground hover:text-foreground select-none`,children:S(`rawData`,`Raw data (JSON)`)}),(0,y.jsxs)(`div`,{className:`mt-2`,children:[(0,y.jsx)(`div`,{className:`flex justify-end`,children:(0,y.jsxs)(`button`,{type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(JSON.stringify(N.payload,null,2)),h.success(S(`copied`,`Copied`))}catch{h.error(S(`copyFailed`,`Copy failed`))}},className:`text-[10px] text-muted-foreground hover:text-foreground inline-flex items-center gap-1`,children:[(0,y.jsx)(ve,{className:`h-3 w-3`}),S(`copy`,`Copy`)]})}),(0,y.jsx)(`pre`,{className:`text-[11px] bg-muted/50 rounded p-2 overflow-auto max-h-48 mt-1`,children:JSON.stringify(N.payload,null,2)})]})]}),N.status===`pending`&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Pe,{}),(0,y.jsxs)(`div`,{className:`space-y-3`,children:[(0,y.jsx)(rt,{objectName:`sys_approval_request`,record:N,location:`record_section`,label:S(`declaredActions`,`Actions`),onDone:()=>{cn()}}),!un&&(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:dn?S(`whyDisabledSubmitter`,`You submitted this request, so you can recall it — but only the assigned approvers can approve or reject.`):S(`whyDisabled`,`Only the assigned approvers can act on this request. It is waiting on: {{who}}.`,{who:(N.pending_approvers||[]).map(e=>dt(e,N)).join(`, `)||`—`})})]})]}),fn&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(Pe,{}),(0,y.jsxs)(`div`,{className:`space-y-3`,children:[(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:S(`returnedHint`,`An approver sent this back to you. The record is unlocked — fix the data, then resubmit to start a new approval round.`)}),(0,y.jsxs)(`div`,{className:`flex gap-2 flex-wrap items-center`,children:[(0,y.jsx)(m,{asChild:!0,size:`sm`,variant:`outline`,children:(0,y.jsxs)(t,{to:xt(N),children:[(0,y.jsx)(Se,{className:`h-4 w-4 mr-1`}),S(`editRecordBtn`,`Edit record`)]})}),(0,y.jsx)(rt,{objectName:`sys_approval_request`,record:N,location:`record_section`,onDone:()=>{sn(N.id),K()}})]})]})]})]}):null]})})]})}export{k as ApprovalsInboxPage};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{$i as r,Bt as i,Dr as a,It as ee,Lt as te,Mr as o,Nn as s,Rt as c,Sr as l,Ur as u,Vt as d,Xr as f,_n as ne,bn as re,dn as p,dt as m,ea as h,fa as g,fn as _,gn as v,hn as ie,jr as ae,kn as y,ln as oe,mn as se,mt as b,pn as ce,tc as x,ut as S,vn as le,xn as ue,xr as C,yn as w,zt as T}from"./ui-components-q_9kKTqi.js";var E=e(n(),1),D=t(),de=`${``.replace(/\/$/,``)}/api/v1`,fe=[`create`,`update`,`delete`,`restore`,`login`,`logout`,`permission_change`,`config_change`,`export`,`import`],O={create:`default`,update:`secondary`,delete:`destructive`,restore:`outline`,login:`outline`,logout:`outline`,permission_change:`secondary`,config_change:`secondary`,export:`outline`,import:`outline`},k=50;function A(e){if(!e)return`—`;try{return new Date(e).toLocaleString()}catch{return e}}function j(e,t=24){return e?e.length>t?`${e.slice(0,t-1)}…`:e:`—`}function M(e){if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function N(){let[e,t]=(0,E.useState)([]),[n,N]=(0,E.useState)(!1),[P,F]=(0,E.useState)(null),[I,L]=(0,E.useState)(`all`),[R,z]=(0,E.useState)(``),[B,V]=(0,E.useState)(``),[H,U]=(0,E.useState)(``),[W,G]=(0,E.useState)(``),[K,q]=(0,E.useState)(0),[J,Y]=(0,E.useState)(!1),[X,Z]=(0,E.useState)(null),Q=(0,E.useCallback)(async()=>{N(!0),F(null);try{let e={};I&&I!==`all`&&(e.action=I),R.trim()&&(e.object_name=R.trim()),B.trim()&&(e.user_id=B.trim()),H&&(e.created_at={...e.created_at||{},$gte:H}),W&&(e.created_at={...e.created_at||{},$lte:`${W}T23:59:59`});let n=new URLSearchParams;Object.keys(e).length>0&&n.set(`$filter`,JSON.stringify(e)),n.set(`$orderby`,`created_at desc`),n.set(`$top`,`51`),n.set(`$skip`,String(K*k));let r=await fetch(`${de}/data/sys_audit_log?${n.toString()}`,{credentials:`include`});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`HTTP ${r.status}: ${e.slice(0,200)||r.statusText}`)}let i=await r.json(),a=Array.isArray(i)?i:Array.isArray(i?.records)?i.records:Array.isArray(i?.data)?i.data:[];Y(a.length>k),t(a.slice(0,k))}catch(e){console.warn(`[AuditLogPage] load failed:`,e),F(e?.message||`Failed to load audit log`),t([]),Y(!1)}finally{N(!1)}},[I,R,B,H,W,K]);(0,E.useEffect)(()=>{Q()},[Q]);let pe=(0,E.useCallback)(()=>{L(`all`),z(``),V(``),U(``),G(``),q(0)},[]),$=(0,E.useMemo)(()=>{let e=0;return I!==`all`&&(e+=1),R.trim()&&(e+=1),B.trim()&&(e+=1),H&&(e+=1),W&&(e+=1),e},[I,R,B,H,W]);return(0,D.jsxs)(`div`,{className:`p-6 space-y-4 max-w-screen-2xl mx-auto`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsx)(h,{className:`h-6 w-6 text-muted-foreground`}),(0,D.jsxs)(`div`,{className:`flex-1`,children:[(0,D.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:`Audit Log`}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Read-only system activity and record changes. Newest first.`})]}),(0,D.jsxs)(u,{variant:`outline`,size:`sm`,onClick:Q,disabled:n,children:[(0,D.jsx)(g,{className:`h-4 w-4 mr-1 ${n?`animate-spin`:``}`}),`Refresh`]})]}),(0,D.jsx)(C,{children:(0,D.jsxs)(l,{className:`p-4 grid grid-cols-1 md:grid-cols-5 gap-3`,children:[(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(s,{className:`text-xs`,children:`Action`}),(0,D.jsxs)(ne,{value:I,onValueChange:e=>{L(e),q(0)},children:[(0,D.jsx)(re,{className:`h-9`,children:(0,D.jsx)(ue,{})}),(0,D.jsxs)(le,{children:[(0,D.jsx)(w,{value:`all`,children:`All actions`}),fe.map(e=>(0,D.jsx)(w,{value:e,children:e},e))]})]})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(s,{className:`text-xs`,children:`Object`}),(0,D.jsx)(y,{placeholder:`e.g. account`,value:R,onChange:e=>{z(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(s,{className:`text-xs`,children:`Actor (user id)`}),(0,D.jsx)(y,{placeholder:`user id`,value:B,onChange:e=>{V(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(s,{className:`text-xs`,children:`From`}),(0,D.jsx)(y,{type:`date`,value:H,onChange:e=>{U(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(s,{className:`text-xs`,children:`To`}),(0,D.jsx)(y,{type:`date`,value:W,onChange:e=>{G(e.target.value),q(0)},className:`h-9`})]}),$>0&&(0,D.jsx)(`div`,{className:`md:col-span-5 flex justify-end`,children:(0,D.jsxs)(u,{variant:`ghost`,size:`sm`,onClick:pe,children:[(0,D.jsx)(f,{className:`h-4 w-4 mr-1`}),`Clear filters (`,$,`)`]})})]})}),P&&(0,D.jsxs)(ae,{variant:`destructive`,children:[(0,D.jsx)(x,{className:`h-4 w-4`}),(0,D.jsx)(o,{children:P})]}),(0,D.jsx)(C,{children:(0,D.jsx)(l,{className:`p-0`,children:n&&e.length===0?(0,D.jsx)(`div`,{className:`p-6 space-y-2`,children:Array.from({length:6}).map((e,t)=>(0,D.jsx)(oe,{className:`h-9 w-full`},t))}):e.length===0?(0,D.jsx)(`div`,{className:`p-12`,children:(0,D.jsxs)(S,{children:[(0,D.jsx)(r,{className:`h-8 w-8 text-muted-foreground mb-3`}),(0,D.jsx)(b,{children:`No audit entries`}),(0,D.jsx)(m,{children:$>0?`Try clearing filters or widening the date range.`:`Events will appear here once tracked objects are modified.`})]})}):(0,D.jsxs)(ee,{children:[(0,D.jsx)(i,{children:(0,D.jsxs)(d,{children:[(0,D.jsx)(T,{className:`w-[180px]`,children:`Timestamp`}),(0,D.jsx)(T,{className:`w-[130px]`,children:`Action`}),(0,D.jsx)(T,{children:`Object`}),(0,D.jsx)(T,{children:`Record`}),(0,D.jsx)(T,{children:`Actor`}),(0,D.jsx)(T,{className:`w-[130px]`,children:`IP`})]})}),(0,D.jsx)(te,{children:e.map(e=>{let t=O[e.action||``]||`outline`;return(0,D.jsxs)(d,{className:`cursor-pointer`,onClick:()=>Z(e),children:[(0,D.jsx)(c,{className:`font-mono text-xs`,children:A(e.created_at)}),(0,D.jsx)(c,{children:(0,D.jsx)(a,{variant:t,children:e.action||`—`})}),(0,D.jsx)(c,{children:e.object_name||`—`}),(0,D.jsx)(c,{className:`font-mono text-xs`,children:j(e.record_id,18)}),(0,D.jsx)(c,{className:`font-mono text-xs`,children:j(e.user_id,18)}),(0,D.jsx)(c,{className:`font-mono text-xs`,children:e.ip_address||`—`})]},e.id)})})]})})}),(e.length>0||K>0)&&(0,D.jsxs)(`div`,{className:`flex items-center justify-between text-sm text-muted-foreground`,children:[(0,D.jsxs)(`span`,{children:[`Page `,K+1,J?``:` · end`]}),(0,D.jsxs)(`div`,{className:`flex gap-2`,children:[(0,D.jsx)(u,{variant:`outline`,size:`sm`,disabled:K===0||n,onClick:()=>q(e=>Math.max(0,e-1)),children:`Previous`}),(0,D.jsx)(u,{variant:`outline`,size:`sm`,disabled:!J||n,onClick:()=>q(e=>e+1),children:`Next`})]})]}),(0,D.jsx)(p,{open:!!X,onOpenChange:e=>!e&&Z(null),children:(0,D.jsxs)(_,{side:`right`,className:`sm:max-w-2xl w-full overflow-y-auto`,children:[(0,D.jsxs)(se,{children:[(0,D.jsxs)(ie,{className:`flex items-center gap-2`,children:[(0,D.jsx)(a,{variant:X&&O[X.action||``]||`outline`,children:X?.action||`—`}),X?.object_name||`Audit Event`]}),(0,D.jsx)(ce,{children:X?.id?(0,D.jsx)(`span`,{className:`font-mono text-xs`,children:X.id}):null})]}),X&&(0,D.jsxs)(`div`,{className:`mt-6 space-y-5`,children:[(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 text-sm`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Timestamp`}),(0,D.jsx)(`div`,{className:`font-mono`,children:A(X.created_at)})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`IP Address`}),(0,D.jsx)(`div`,{className:`font-mono`,children:X.ip_address||`—`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Actor (user_id)`}),(0,D.jsx)(`div`,{className:`font-mono break-all`,children:X.user_id||`—`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Tenant`}),(0,D.jsx)(`div`,{className:`font-mono break-all`,children:X.tenant_id||`—`})]}),(0,D.jsxs)(`div`,{className:`col-span-2`,children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Target record`}),(0,D.jsxs)(`div`,{className:`font-mono text-sm break-all`,children:[X.object_name||`—`,` / `,X.record_id||`—`]})]}),X.user_agent&&(0,D.jsxs)(`div`,{className:`col-span-2`,children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`User Agent`}),(0,D.jsx)(`div`,{className:`font-mono text-xs break-all`,children:X.user_agent})]})]}),(X.old_value||X.new_value)&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(v,{}),(0,D.jsxs)(`div`,{className:`space-y-3`,children:[(0,D.jsx)(`div`,{className:`text-sm font-medium`,children:`Change payload`}),X.old_value&&(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:`Before`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-64 overflow-auto`,children:M(X.old_value)})]}),X.new_value&&(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:`After`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-64 overflow-auto`,children:M(X.new_value)})]})]})]}),X.metadata&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(v,{}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-sm font-medium mb-2`,children:`Metadata`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-48 overflow-auto`,children:M(X.metadata)})]})]})]})]})})]})}export{N as AuditLogPage};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{Bt as r,Cn as i,Er as a,Fr as ee,Gt as o,Ht as s,Ir as te,Ln as c,Nn as l,Sn as u,Tn as d,Tr as f,Ut as p,Vt as m,Wt as ne,_a as re,_n as ie,aa as h,ac as ae,bn as g,ei as _,gn as v,hn as oe,ht as se,ia as ce,jr as y,mt as le,pn as ue,qr as b,vn as x,vt as S,wn as C,xn as w,yn as T}from"./ui-components-mPgY5chB.js";var E=e(n(),1),D=t(),de=`${``.replace(/\/$/,``)}/api/v1`,fe=[`create`,`update`,`delete`,`restore`,`login`,`logout`,`permission_change`,`config_change`,`export`,`import`],O={create:`default`,update:`secondary`,delete:`destructive`,restore:`outline`,login:`outline`,logout:`outline`,permission_change:`secondary`,config_change:`secondary`,export:`outline`,import:`outline`},k=50;function A(e){if(!e)return`—`;try{return new Date(e).toLocaleString()}catch{return e}}function j(e,t=24){return e?e.length>t?`${e.slice(0,t-1)}…`:e:`—`}function M(e){if(!e)return``;try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}}function N(){let[e,t]=(0,E.useState)([]),[n,N]=(0,E.useState)(!1),[P,F]=(0,E.useState)(null),[I,L]=(0,E.useState)(`all`),[R,z]=(0,E.useState)(``),[B,V]=(0,E.useState)(``),[H,U]=(0,E.useState)(``),[W,G]=(0,E.useState)(``),[K,q]=(0,E.useState)(0),[J,Y]=(0,E.useState)(!1),[X,Z]=(0,E.useState)(null),Q=(0,E.useCallback)(async()=>{N(!0),F(null);try{let e={};I&&I!==`all`&&(e.action=I),R.trim()&&(e.object_name=R.trim()),B.trim()&&(e.user_id=B.trim()),H&&(e.created_at={...e.created_at||{},$gte:H}),W&&(e.created_at={...e.created_at||{},$lte:`${W}T23:59:59`});let n=new URLSearchParams;Object.keys(e).length>0&&n.set(`$filter`,JSON.stringify(e)),n.set(`$orderby`,`created_at desc`),n.set(`$top`,`51`),n.set(`$skip`,String(K*k));let r=await fetch(`${de}/data/sys_audit_log?${n.toString()}`,{credentials:`include`});if(!r.ok){let e=await r.text().catch(()=>``);throw Error(`HTTP ${r.status}: ${e.slice(0,200)||r.statusText}`)}let i=await r.json(),a=Array.isArray(i)?i:Array.isArray(i?.records)?i.records:Array.isArray(i?.data)?i.data:[];Y(a.length>k),t(a.slice(0,k))}catch(e){console.warn(`[AuditLogPage] load failed:`,e),F(e?.message||`Failed to load audit log`),t([]),Y(!1)}finally{N(!1)}},[I,R,B,H,W,K]);(0,E.useEffect)(()=>{Q()},[Q]);let pe=(0,E.useCallback)(()=>{L(`all`),z(``),V(``),U(``),G(``),q(0)},[]),$=(0,E.useMemo)(()=>{let e=0;return I!==`all`&&(e+=1),R.trim()&&(e+=1),B.trim()&&(e+=1),H&&(e+=1),W&&(e+=1),e},[I,R,B,H,W]);return(0,D.jsxs)(`div`,{className:`p-6 space-y-4 max-w-screen-2xl mx-auto`,children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,D.jsx)(h,{className:`h-6 w-6 text-muted-foreground`}),(0,D.jsxs)(`div`,{className:`flex-1`,children:[(0,D.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:`Audit Log`}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Read-only system activity and record changes. Newest first.`})]}),(0,D.jsxs)(b,{variant:`outline`,size:`sm`,onClick:Q,disabled:n,children:[(0,D.jsx)(re,{className:`h-4 w-4 mr-1 ${n?`animate-spin`:``}`}),`Refresh`]})]}),(0,D.jsx)(f,{children:(0,D.jsxs)(a,{className:`p-4 grid grid-cols-1 md:grid-cols-5 gap-3`,children:[(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(c,{className:`text-xs`,children:`Action`}),(0,D.jsxs)(w,{value:I,onValueChange:e=>{L(e),q(0)},children:[(0,D.jsx)(C,{className:`h-9`,children:(0,D.jsx)(d,{})}),(0,D.jsxs)(u,{children:[(0,D.jsx)(i,{value:`all`,children:`All actions`}),fe.map(e=>(0,D.jsx)(i,{value:e,children:e},e))]})]})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(c,{className:`text-xs`,children:`Object`}),(0,D.jsx)(l,{placeholder:`e.g. account`,value:R,onChange:e=>{z(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(c,{className:`text-xs`,children:`Actor (user id)`}),(0,D.jsx)(l,{placeholder:`user id`,value:B,onChange:e=>{V(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(c,{className:`text-xs`,children:`From`}),(0,D.jsx)(l,{type:`date`,value:H,onChange:e=>{U(e.target.value),q(0)},className:`h-9`})]}),(0,D.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,D.jsx)(c,{className:`text-xs`,children:`To`}),(0,D.jsx)(l,{type:`date`,value:W,onChange:e=>{G(e.target.value),q(0)},className:`h-9`})]}),$>0&&(0,D.jsx)(`div`,{className:`md:col-span-5 flex justify-end`,children:(0,D.jsxs)(b,{variant:`ghost`,size:`sm`,onClick:pe,children:[(0,D.jsx)(_,{className:`h-4 w-4 mr-1`}),`Clear filters (`,$,`)`]})})]})}),P&&(0,D.jsxs)(ee,{variant:`destructive`,children:[(0,D.jsx)(ae,{className:`h-4 w-4`}),(0,D.jsx)(te,{children:P})]}),(0,D.jsx)(f,{children:(0,D.jsx)(a,{className:`p-0`,children:n&&e.length===0?(0,D.jsx)(`div`,{className:`p-6 space-y-2`,children:Array.from({length:6}).map((e,t)=>(0,D.jsx)(ue,{className:`h-9 w-full`},t))}):e.length===0?(0,D.jsx)(`div`,{className:`p-12`,children:(0,D.jsxs)(le,{children:[(0,D.jsx)(ce,{className:`h-8 w-8 text-muted-foreground mb-3`}),(0,D.jsx)(S,{children:`No audit entries`}),(0,D.jsx)(se,{children:$>0?`Try clearing filters or widening the date range.`:`Events will appear here once tracked objects are modified.`})]})}):(0,D.jsxs)(r,{children:[(0,D.jsx)(ne,{children:(0,D.jsxs)(o,{children:[(0,D.jsx)(p,{className:`w-[180px]`,children:`Timestamp`}),(0,D.jsx)(p,{className:`w-[130px]`,children:`Action`}),(0,D.jsx)(p,{children:`Object`}),(0,D.jsx)(p,{children:`Record`}),(0,D.jsx)(p,{children:`Actor`}),(0,D.jsx)(p,{className:`w-[130px]`,children:`IP`})]})}),(0,D.jsx)(m,{children:e.map(e=>{let t=O[e.action||``]||`outline`;return(0,D.jsxs)(o,{className:`cursor-pointer`,onClick:()=>Z(e),children:[(0,D.jsx)(s,{className:`font-mono text-xs`,children:A(e.created_at)}),(0,D.jsx)(s,{children:(0,D.jsx)(y,{variant:t,children:e.action||`—`})}),(0,D.jsx)(s,{children:e.object_name||`—`}),(0,D.jsx)(s,{className:`font-mono text-xs`,children:j(e.record_id,18)}),(0,D.jsx)(s,{className:`font-mono text-xs`,children:j(e.user_id,18)}),(0,D.jsx)(s,{className:`font-mono text-xs`,children:e.ip_address||`—`})]},e.id)})})]})})}),(e.length>0||K>0)&&(0,D.jsxs)(`div`,{className:`flex items-center justify-between text-sm text-muted-foreground`,children:[(0,D.jsxs)(`span`,{children:[`Page `,K+1,J?``:` · end`]}),(0,D.jsxs)(`div`,{className:`flex gap-2`,children:[(0,D.jsx)(b,{variant:`outline`,size:`sm`,disabled:K===0||n,onClick:()=>q(e=>Math.max(0,e-1)),children:`Previous`}),(0,D.jsx)(b,{variant:`outline`,size:`sm`,disabled:!J||n,onClick:()=>q(e=>e+1),children:`Next`})]})]}),(0,D.jsx)(oe,{open:!!X,onOpenChange:e=>!e&&Z(null),children:(0,D.jsxs)(v,{side:`right`,className:`sm:max-w-2xl w-full overflow-y-auto`,children:[(0,D.jsxs)(x,{children:[(0,D.jsxs)(T,{className:`flex items-center gap-2`,children:[(0,D.jsx)(y,{variant:X&&O[X.action||``]||`outline`,children:X?.action||`—`}),X?.object_name||`Audit Event`]}),(0,D.jsx)(ie,{children:X?.id?(0,D.jsx)(`span`,{className:`font-mono text-xs`,children:X.id}):null})]}),X&&(0,D.jsxs)(`div`,{className:`mt-6 space-y-5`,children:[(0,D.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 text-sm`,children:[(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Timestamp`}),(0,D.jsx)(`div`,{className:`font-mono`,children:A(X.created_at)})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`IP Address`}),(0,D.jsx)(`div`,{className:`font-mono`,children:X.ip_address||`—`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Actor (user_id)`}),(0,D.jsx)(`div`,{className:`font-mono break-all`,children:X.user_id||`—`})]}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Tenant`}),(0,D.jsx)(`div`,{className:`font-mono break-all`,children:X.tenant_id||`—`})]}),(0,D.jsxs)(`div`,{className:`col-span-2`,children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Target record`}),(0,D.jsxs)(`div`,{className:`font-mono text-sm break-all`,children:[X.object_name||`—`,` / `,X.record_id||`—`]})]}),X.user_agent&&(0,D.jsxs)(`div`,{className:`col-span-2`,children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`User Agent`}),(0,D.jsx)(`div`,{className:`font-mono text-xs break-all`,children:X.user_agent})]})]}),(X.old_value||X.new_value)&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(g,{}),(0,D.jsxs)(`div`,{className:`space-y-3`,children:[(0,D.jsx)(`div`,{className:`text-sm font-medium`,children:`Change payload`}),X.old_value&&(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:`Before`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-64 overflow-auto`,children:M(X.old_value)})]}),X.new_value&&(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,children:`After`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-64 overflow-auto`,children:M(X.new_value)})]})]})]}),X.metadata&&(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(g,{}),(0,D.jsxs)(`div`,{children:[(0,D.jsx)(`div`,{className:`text-sm font-medium mb-2`,children:`Metadata`}),(0,D.jsx)(`pre`,{className:`rounded-md bg-muted p-3 text-xs font-mono whitespace-pre-wrap max-h-48 overflow-auto`,children:M(X.metadata)})]})]})]})]})})]})}export{N as AuditLogPage};
@@ -1 +1 @@
1
- import"./rolldown-runtime-C0FnF6B9.js";import{h as e,m as t,r as n,y as r}from"./vendor-react-BgOXCBVK.js";import{dt as i,mt as a,ut as o}from"./ui-components-q_9kKTqi.js";import{t as s}from"./componentRegistry-ByxoJqMW.js";r();var c=n();function l({extraProps:n}={}){let r=t(),[l]=e(),u=r.ns,d=r.name,f=u&&d?`${u}:${d}`:u??``,p=s(f);if(!p)return(0,c.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,c.jsxs)(o,{children:[(0,c.jsx)(a,{children:`Component not registered`}),(0,c.jsxs)(i,{children:[`No component is registered for `,(0,c.jsx)(`code`,{className:`font-mono`,children:f||`(empty)`}),`. Ensure the plugin that provides this surface is installed and has called`,(0,c.jsx)(`code`,{className:`font-mono`,children:` registerAppComponent()`}),`.`]})]})});let m={};for(let[e,t]of l.entries())m[e]=t;let h=p.component;return(0,c.jsx)(h,{...m,...n??{}})}export{l as ComponentNavView,l as default};
1
+ import"./rolldown-runtime-C0FnF6B9.js";import{h as e,m as t,r as n,y as r}from"./vendor-react-BgOXCBVK.js";import{ht as i,mt as a,vt as o}from"./ui-components-mPgY5chB.js";import{t as s}from"./componentRegistry-ByxoJqMW.js";r();var c=n();function l({extraProps:n}={}){let r=t(),[l]=e(),u=r.ns,d=r.name,f=u&&d?`${u}:${d}`:u??``,p=s(f);if(!p)return(0,c.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,c.jsxs)(a,{children:[(0,c.jsx)(o,{children:`Component not registered`}),(0,c.jsxs)(i,{children:[`No component is registered for `,(0,c.jsx)(`code`,{className:`font-mono`,children:f||`(empty)`}),`. Ensure the plugin that provides this surface is installed and has called`,(0,c.jsx)(`code`,{className:`font-mono`,children:` registerAppComponent()`}),`.`]})]})});let m={};for(let[e,t]of l.entries())m[e]=t;let h=p.component;return(0,c.jsx)(h,{...m,...n??{}})}export{l as ComponentNavView,l as default};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{T as r}from"./framework-B8ndNKrd.js";import{Eo as i,Nn as a,Ro as o,Sc as s,Ui as c,Vi as l,Vs as u,_r as ee,ac as d,br as f,do as p,el as m,gr as h,hr as g,qr as _,vr as v,wc as y,yo as b,yr as x}from"./ui-components-mPgY5chB.js";import{n as S}from"./createDerive-C1PaRnFZ.js";import{a as C,i as w,n as T,o as E,r as D,s as te,t as O}from"./plugin-view-CgDs-8T5.js";var k=e(n(),1),A=t();function j({title:e,description:t,icon:n,actions:r,accentColor:i,sticky:a=!1,className:o,"data-testid":s}){return(0,A.jsxs)(`div`,{style:{"--page-header-accent":i||`hsl(var(--primary))`},className:m(`relative shrink-0 border-b bg-background z-10`,a&&`sticky top-0 bg-background/85 backdrop-blur supports-[backdrop-filter]:bg-background/75`,o),"data-testid":s??`page-header`,children:[(0,A.jsx)(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-x-0 top-0 h-[2px] opacity-80`,style:{background:`linear-gradient(90deg, transparent, var(--page-header-accent), transparent)`}}),(0,A.jsxs)(`div`,{className:`flex justify-between items-center gap-3 py-2.5 sm:py-3 px-4 sm:px-6`,children:[(0,A.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0 flex-1`,children:[n&&(0,A.jsx)(`div`,{className:m(`shrink-0 inline-flex items-center justify-center rounded-lg`,`h-9 w-9 sm:h-10 sm:w-10`,`[&_svg]:h-[18px] [&_svg]:w-[18px] sm:[&_svg]:h-5 sm:[&_svg]:w-5`),style:{color:`var(--page-header-accent)`,background:`linear-gradient(135deg, color-mix(in srgb, var(--page-header-accent) 18%, transparent), color-mix(in srgb, var(--page-header-accent) 6%, transparent))`,boxShadow:`inset 0 0 0 1px color-mix(in srgb, var(--page-header-accent) 22%, transparent)`},children:n}),(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsx)(`h1`,{className:`text-base sm:text-lg lg:text-xl font-semibold tracking-tight text-foreground truncate leading-tight`,children:e}),t&&(0,A.jsx)(`p`,{className:`text-xs sm:text-sm text-muted-foreground truncate hidden sm:block max-w-xl mt-0.5`,children:t})]})]}),r&&(0,A.jsx)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 shrink-0`,children:r})]})]})}function M(e){return[{type:`grid`,icon:i,label:e(`console.objectView.viewTypeGrid`),description:e(`console.objectView.viewTypeGridDesc`)},{type:`kanban`,icon:l,label:e(`console.objectView.viewTypeKanban`),description:e(`console.objectView.viewTypeKanbanDesc`)},{type:`calendar`,icon:y,label:e(`console.objectView.viewTypeCalendar`),description:e(`console.objectView.viewTypeCalendarDesc`)},{type:`gallery`,icon:o,label:e(`console.objectView.viewTypeGallery`),description:e(`console.objectView.viewTypeGalleryDesc`)},{type:`timeline`,icon:u,label:e(`console.objectView.viewTypeTimeline`),description:e(`console.objectView.viewTypeTimelineDesc`)},{type:`gantt`,icon:c,label:e(`console.objectView.viewTypeGantt`),description:e(`console.objectView.viewTypeGanttDesc`)},{type:`map`,icon:p,label:e(`console.objectView.viewTypeMap`),description:e(`console.objectView.viewTypeMapDesc`)},{type:`chart`,icon:s,label:e(`console.objectView.viewTypeChart`),description:e(`console.objectView.viewTypeChartDesc`)},{type:`tree`,icon:b,label:e(`console.objectView.viewTypeTree`),description:e(`console.objectView.viewTypeTreeDesc`)}]}function N(e,t){for(let n=1;n<1e3;n++){let r=`${e} ${n}`;if(!t.has(r))return r}return e}var P={kanban:[{key:`groupByField`,i18nKey:`console.objectView.groupByField`,helpI18nKey:`console.objectView.groupByFieldHelp`,filter:e=>e.type===`select`||e.type===`boolean`,preferred:T}],calendar:[{key:`startDateField`,i18nKey:`console.objectView.startDateField`,helpI18nKey:`console.objectView.startDateFieldHelp`,filter:e=>e.type===`date`,preferred:D},{key:`titleField`,i18nKey:`console.objectView.titleField`,helpI18nKey:`console.objectView.titleFieldHelp`,filter:e=>e.type===`text`}],timeline:[{key:`startDateField`,i18nKey:`console.objectView.startDateField`,helpI18nKey:`console.objectView.timelineDateFieldHelp`,filter:e=>e.type===`date`,preferred:D},{key:`titleField`,i18nKey:`console.objectView.titleField`,helpI18nKey:`console.objectView.titleFieldHelp`,filter:e=>e.type===`text`}],gantt:[{key:`startDateField`,i18nKey:`console.objectView.startDateField`,helpI18nKey:`console.objectView.ganttStartDateFieldHelp`,filter:e=>e.type===`date`,preferred:D},{key:`endDateField`,i18nKey:`console.objectView.endDateField`,helpI18nKey:`console.objectView.ganttEndDateFieldHelp`,filter:e=>e.type===`date`,preferred:O},{key:`titleField`,i18nKey:`console.objectView.titleField`,helpI18nKey:`console.objectView.titleFieldHelp`,filter:e=>e.type===`text`}],gallery:[{key:`coverField`,i18nKey:`console.objectView.imageField`,helpI18nKey:`console.objectView.imageFieldHelp`,filter:e=>E(e)}],map:[{key:`latitudeField`,i18nKey:`console.objectView.latitudeField`,helpI18nKey:`console.objectView.latitudeFieldHelp`,filter:e=>e.type===`number`&&C(e,`latitude`)},{key:`longitudeField`,i18nKey:`console.objectView.longitudeField`,helpI18nKey:`console.objectView.longitudeFieldHelp`,filter:e=>e.type===`number`&&C(e,`longitude`)}],chart:[{key:`chartType`,i18nKey:`console.objectView.chartType`,helpI18nKey:`console.objectView.chartTypeHelp`,kind:`enum`,enumOptions:[{value:`bar`,i18nKey:`console.objectView.chartTypeBar`},{value:`line`,i18nKey:`console.objectView.chartTypeLine`},{value:`pie`,i18nKey:`console.objectView.chartTypePie`},{value:`area`,i18nKey:`console.objectView.chartTypeArea`},{value:`scatter`,i18nKey:`console.objectView.chartTypeScatter`}],defaultValue:`bar`},{key:`xAxisField`,i18nKey:`console.objectView.xAxisField`,helpI18nKey:`console.objectView.xAxisFieldHelp`,filter:e=>e.type===`select`||e.type===`boolean`||e.type===`date`||e.type===`text`,preferred:T},{key:`yAxisFields`,i18nKey:`console.objectView.yAxisField`,helpI18nKey:`console.objectView.yAxisFieldHelp`,filter:e=>e.type===`number`}],tree:[{key:`parentField`,i18nKey:`console.objectView.parentField`,helpI18nKey:`console.objectView.parentFieldHelp`,filter:e=>e.rawType===`tree`||e.rawType===`lookup`||e.rawType===`master_detail`}]};function F({open:e,onOpenChange:t,onCreate:n,existingLabels:i,availableTypes:o,objectDef:s}){let{t:c}=r(),l=(0,k.useMemo)(()=>M(c),[c]),u=(0,k.useMemo)(()=>o&&o.length>0?l.filter(e=>o.includes(e.type)):l,[l,o]),p=(i??[]).join(`\0`),y=(0,k.useMemo)(()=>new Set(i??[]),[p]),b=(0,k.useMemo)(()=>s?w(s):[],[s]),[C,T]=(0,k.useState)(u[0]?.type??`grid`),[E,D]=(0,k.useState)(``),[O,j]=(0,k.useState)(!1),[F,I]=(0,k.useState)(``),[L,R]=(0,k.useState)(!1),[ne,z]=(0,k.useState)({});(0,k.useEffect)(()=>{e&&(T(u[0]?.type??`grid`),j(!1),R(!1),z({}))},[e,u]),(0,k.useEffect)(()=>{if(!O){let e=u.find(e=>e.type===C);D(N(e?.label??`View`,y))}},[C,O,u,y]),(0,k.useEffect)(()=>{L||I(S(E))},[E,L]);let B=P[C]??[],V=e=>e.kind===`enum`?(e.enumOptions?.length??0)>0:!s||(e.filter?b.filter(e.filter):b).length>0,H=(0,k.useMemo)(()=>{let e={};return u.forEach(t=>{let n=(P[t.type]??[]).find(e=>!V(e));e[t.type]=n??null}),e},[u,b,s]),U=e=>ne[`${C}.${e}`]??``,W=(e,t)=>z(n=>({...n,[`${C}.${e}`]:t})),G=E.trim(),K=G.length>0&&y.has(G),q=B.every(e=>U(e.key).length>0),J=/^[a-z_][a-z0-9_]*$/,Y=F.trim(),X=Y.length===0,Z=Y.length>0&&!J.test(Y),Q=G.length>0&&!K&&q&&!X&&!Z;(0,k.useEffect)(()=>{B.length!==0&&B.forEach(e=>{if(U(e.key).length>0)return;if(e.kind===`enum`){e.defaultValue&&W(e.key,e.defaultValue);return}let t=e.filter?b.filter(e.filter):b;if(t.length===0)return;if(t.length===1){W(e.key,t[0].value);return}let n=te(t,e.preferred??[]);n&&W(e.key,n)})},[C,b]);let $=()=>{if(!Q)return;let e={};B.forEach(t=>{let n=U(t.key);n&&(e[t.key]=t.key===`yAxisFields`?[n]:n)});let r={type:C,label:G,name:Y};Object.keys(e).length>0&&(r[C]=e),n(r),t(!1)};return(0,A.jsx)(g,{open:e,onOpenChange:t,children:(0,A.jsxs)(h,{className:`sm:max-w-[560px]`,"data-testid":`create-view-dialog`,children:[(0,A.jsxs)(x,{children:[(0,A.jsx)(f,{children:c(`console.objectView.createView`)}),(0,A.jsx)(ee,{children:c(`console.objectView.createViewDesc`)})]}),(0,A.jsx)(`div`,{className:`grid grid-cols-4 gap-2 py-2`,"data-testid":`create-view-type-grid`,children:u.map(({type:e,label:t,description:n,icon:r})=>{let i=e===C,a=H[e],o=!!a,s=o?c(`console.objectView.viewTypeUnavailable`,{field:c(a.i18nKey)}):void 0;return(0,A.jsxs)(`button`,{type:`button`,"data-testid":`create-view-type-${e}`,"aria-pressed":i,"aria-disabled":o,disabled:o,title:s,onClick:()=>{o||T(e)},className:m(`group flex flex-col items-start gap-1 rounded-lg border bg-background p-3 text-left transition-colors`,!o&&`hover:border-primary/60 hover:bg-accent/40`,i&&!o?`border-primary ring-2 ring-primary/30 bg-accent/40`:`border-border`,o&&`opacity-50 cursor-not-allowed`),children:[(0,A.jsx)(r,{className:m(`h-5 w-5`,i&&!o?`text-primary`:`text-muted-foreground group-hover:text-foreground`)}),(0,A.jsx)(`div`,{className:`text-xs font-medium leading-tight`,children:t}),(0,A.jsx)(`div`,{className:`text-[10px] leading-tight text-muted-foreground line-clamp-2`,children:o?c(`console.objectView.viewTypeUnavailableShort`):n})]},e)})}),B.length>0&&(0,A.jsx)(`div`,{className:`space-y-3 rounded-md border border-dashed bg-muted/30 p-3`,"data-testid":`create-view-required-fields`,children:B.map(e=>{let t=U(e.key),n=e.kind===`enum`,r=n?[]:e.filter?b.filter(e.filter):b,i=!n&&b.length>0&&r.length===0;return(0,A.jsxs)(`div`,{className:`space-y-1`,children:[(0,A.jsxs)(`label`,{htmlFor:`create-view-required-${e.key}`,className:`text-xs font-medium`,children:[c(e.i18nKey),(0,A.jsx)(`span`,{className:`ml-1 text-destructive`,"aria-hidden":`true`,children:`*`})]}),(0,A.jsxs)(`select`,{id:`create-view-required-${e.key}`,"aria-required":`true`,"data-testid":`create-view-required-${e.key}`,value:t,onChange:t=>W(e.key,t.target.value),disabled:i,className:m(`h-9 w-full rounded-md border bg-background px-2 text-xs`,`border-input`),children:[(0,A.jsx)(`option`,{value:``,children:c(n?`console.objectView.selectOption`:`console.objectView.selectField`)}),n?e.enumOptions.map(e=>(0,A.jsx)(`option`,{value:e.value,children:c(e.i18nKey)},e.value)):r.map(e=>(0,A.jsx)(`option`,{value:e.value,children:e.label},e.value))]}),e.helpI18nKey&&!i&&(0,A.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,children:c(e.helpI18nKey)}),i&&(0,A.jsxs)(`p`,{className:`flex items-center gap-1 text-[11px] text-destructive`,"data-testid":`create-view-error-no-field-${e.key}`,children:[(0,A.jsx)(d,{className:`h-3 w-3`}),c(`console.objectView.noEligibleFieldForType`)]})]},e.key)})}),(0,A.jsxs)(`div`,{className:`space-y-1`,children:[(0,A.jsxs)(`label`,{htmlFor:`create-view-name-input`,className:`text-xs font-medium`,children:[c(`console.objectView.title`),(0,A.jsx)(`span`,{className:`ml-1 text-destructive`,"aria-hidden":`true`,children:`*`})]}),(0,A.jsx)(a,{id:`create-view-name-input`,"aria-required":`true`,"data-testid":`create-view-name-input`,autoFocus:!0,value:E,onChange:e=>{D(e.target.value),j(!0)},onKeyDown:e=>{e.key===`Enter`&&Q&&$()},placeholder:c(`console.objectView.newView`),className:`h-9`}),K&&(0,A.jsx)(`p`,{className:`text-[11px] text-destructive`,"data-testid":`create-view-error-duplicate`,children:c(`console.objectView.duplicateViewName`)})]}),(0,A.jsxs)(`div`,{className:`space-y-1`,children:[(0,A.jsxs)(`label`,{htmlFor:`create-view-machine-name-input`,className:`text-xs font-medium`,children:[c(`console.objectView.viewName`),(0,A.jsx)(`span`,{className:`ml-1 text-destructive`,"aria-hidden":`true`,children:`*`})]}),(0,A.jsx)(a,{id:`create-view-machine-name-input`,"aria-required":`true`,"data-testid":`create-view-machine-name-input`,value:F,onChange:e=>{I(e.target.value),R(!0)},onKeyDown:e=>{e.key===`Enter`&&Q&&$()},placeholder:`grid_1`,className:`h-9 font-mono`}),X?(0,A.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,"data-testid":`create-view-machine-name-help`,children:c(`console.objectView.viewNameRequired`)}):Z?(0,A.jsx)(`p`,{className:`text-[11px] text-destructive`,"data-testid":`create-view-error-machine-name`,children:c(`console.objectView.viewNameInvalid`)}):(0,A.jsx)(`p`,{className:`text-[11px] text-muted-foreground`,"data-testid":`create-view-machine-name-help`,children:c(`console.objectView.viewNameHelp`)})]}),(0,A.jsxs)(v,{className:`mt-2`,children:[(0,A.jsx)(_,{type:`button`,variant:`outline`,onClick:()=>t(!1),"data-testid":`create-view-cancel`,children:c(`console.objectView.cancel`)}),(0,A.jsx)(_,{type:`button`,disabled:!Q,onClick:$,"data-testid":`create-view-submit`,children:c(`console.objectView.create`)})]})]})})}export{j as n,F as t};
@@ -0,0 +1 @@
1
+ import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{m as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{Q as a,R as o,T as s,Z as c,y as l}from"./framework-B8ndNKrd.js";import{Do as u,_r as d,br as f,gr as p,hr as m,ht as h,mt as g,qr as _,vr as v,vt as y,yr as b}from"./ui-components-mPgY5chB.js";import{r as x}from"./vendor-ui-utils-BGw4RtYu.js";import"./AdapterProvider-BpWMSLQH.js";import{n as S}from"./plugin-form-Bv0Hi0E6.js";import"./MetadataProvider-CnYsadFP.js";import{r as C}from"./ExpressionProvider-qmd0nVCn.js";import{t as w}from"./utils-L-_x2yPF.js";import{t as T}from"./preferLocal-CKqyhTP9.js";import{n as E,t as D}from"./MetadataInspector-qQ85bFun.js";import{n as O}from"./skeletons-BWrJAbfN.js";import{n as k}from"./plugin-dashboard-fdM1jm2j.js";import{t as A}from"./useOpenRecordList-ovuRzPa2.js";var j=t({DashboardView:()=>P}),M=e(i(),1),N=r();function P({dataSource:e}){let t=A(),{dashboardName:r}=n(),{showDebug:i}=E(),j=c(),{t:P}=s(),{dashboardLabel:F,dashboardDescription:I}=l(),[L,R]=(0,M.useState)(!0),[z,B]=(0,M.useState)(null),V=(0,M.useCallback)(e=>{B(t=>(t&&t.resolve(e),null))},[]),H=(0,M.useCallback)(e=>new Promise(t=>{let n;if(typeof e==`string`){let t=e.match(/^(create|new|add|edit|update)_(.+)$/);if(t){let e=t[1];n={objectName:t[2],mode:e===`edit`||e===`update`?`edit`:`create`}}else n={objectName:e,mode:`create`}}else n=e;B({schema:n,resolve:t})}),[]),U=(0,M.useMemo)(()=>({export_dashboard_pdf:async()=>{x.info(P(`dashboardActions.printDialogOpening`));try{return window.print(),{success:!0}}catch(e){return x.error(P(`dashboardActions.exportFailed`,{message:e?.message||String(e)})),{success:!1,error:e?.message||String(e)}}},forecast_dashboard:async()=>(x.info(P(`dashboardActions.forecastSoon`)),{success:!0})}),[P]);(0,M.useEffect)(()=>{R(!0),queueMicrotask(()=>R(!1))},[r]);let{dashboards:W,objects:G}=a(),{app:K}=C(),q=T(W,r,K?._packageId),J=(0,M.useMemo)(()=>new Set((G||[]).map(e=>e?.name).filter(Boolean)),[G]),Y=(0,M.useMemo)(()=>{if(!q||J.size===0)return q;let e=q.widgets;if(!Array.isArray(e)||e.length===0)return q;let t=e.filter(e=>{let t=e?.requiresObject??e?.object;return!t||J.has(t)});return t.length===e.length?q:{...q,widgets:t}},[q,J]);return L?(0,N.jsx)(O,{}):q?(0,N.jsxs)(`div`,{className:`flex flex-col h-full overflow-hidden bg-background`,children:[(0,N.jsx)(`div`,{className:`flex flex-col sm:flex-row justify-between sm:items-center gap-3 sm:gap-4 p-4 sm:p-6 border-b shrink-0`,children:(0,N.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(()=>{let e=w((Y||q).title,P),t=w(q.label,P),n=F({name:q.name,label:t}),r=e||n||q.name;return(0,N.jsx)(`h1`,{className:`text-lg sm:text-xl md:text-2xl font-bold tracking-tight truncate`,children:r})})(),(()=>{let e=(Y||q).description??q.description,t=I({name:q.name,description:w(e,P)});return t?(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 line-clamp-2`,children:t}):null})()]})}),(0,N.jsxs)(`div`,{className:`flex-1 overflow-hidden flex flex-col sm:flex-row relative`,children:[(0,N.jsx)(`div`,{className:`flex-1 min-w-0 overflow-auto p-2 sm:p-4 md:p-6`,children:(0,N.jsx)(o,{value:{openRecordList:t},children:(0,N.jsx)(k,{schema:Y,dataSource:e,modalHandler:H,scriptHandlers:U,hideHeaderText:!0})})}),(0,N.jsx)(D,{open:i,sections:[{title:`Dashboard Configuration`,data:Y}]})]}),z&&z.schema?.objectName?(0,N.jsx)(S,{schema:{type:`object-form`,formType:`modal`,objectName:z.schema.objectName,mode:z.schema.mode||`create`,recordId:z.schema.recordId,title:z.schema.title,description:z.schema.description,fields:z.schema.fields,open:!0,onOpenChange:e=>{e||V({success:!1})},onSuccess:e=>{V({success:!0,reload:!0,data:e})},onCancel:()=>{V({success:!1})},showSubmit:!0,showCancel:!0},dataSource:j}):z?(0,N.jsx)(m,{open:!0,onOpenChange:e=>{e||V({success:!1})},children:(0,N.jsxs)(p,{children:[(0,N.jsxs)(b,{children:[(0,N.jsx)(f,{children:z.schema?.title||P(`actionDialog.defaultActionTitle`)}),z.schema?.description&&(0,N.jsx)(d,{children:z.schema.description})]}),(0,N.jsxs)(v,{children:[(0,N.jsx)(_,{variant:`outline`,onClick:()=>V({success:!1}),children:P(`actionDialog.cancel`)}),(0,N.jsx)(_,{onClick:()=>V({success:!0}),children:P(`actionDialog.ok`)})]})]})}):null]}):(0,N.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,N.jsxs)(g,{children:[(0,N.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,N.jsx)(u,{className:`h-6 w-6 text-muted-foreground`})}),(0,N.jsx)(y,{children:P(`empty.dashboardNotFound`)}),(0,N.jsx)(h,{children:P(`empty.dashboardNotFoundDescription`,{name:r})})]})})}export{j as t};
@@ -1 +1 @@
1
- import{f as e,m as t,r as n}from"./vendor-react-BgOXCBVK.js";import{Cr as r,Qr as i,Sa as a,Si as o,Sr as s,Tr as c,as as l,wr as u,xr as d}from"./ui-components-q_9kKTqi.js";var f=n();function p(){let n=e(),{appName:p}=t(),m=p?`/apps/${p}`:``,h=[{title:`Integrations & APIs`,description:`Your app as a REST API — base URL, endpoints, and connect samples`,icon:a,href:`${m}/developer/integrations`},{title:`API Console`,description:`Inspect and exercise REST endpoints with auto-discovered services`,icon:o,href:`${m}/developer/api-console`},{title:`Flow Runs`,description:`Trigger flows with sample inputs and inspect recent run history`,icon:i,href:`${m}/developer/flow-runs`},{title:`Public Forms`,description:`Publish, share, and embed FormViews available to anonymous users`,icon:l,href:`${m}/developer/public-forms`}];return(0,f.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,f.jsxs)(`div`,{className:`min-w-0`,children:[(0,f.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:`Developer`}),(0,f.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Tools for building, debugging, and sharing ObjectStack apps`})]}),(0,f.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:h.map(e=>{let t=e.icon;return(0,f.jsxs)(d,{className:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:()=>n(e.href),"data-testid":`hub-card-${e.title.toLowerCase().replace(/\s+/g,`-`)}`,role:`link`,tabIndex:0,"aria-label":`${e.title}: ${e.description}`,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),n(e.href))},children:[(0,f.jsxs)(u,{className:`flex flex-row items-center gap-3 pb-2`,children:[(0,f.jsx)(`div`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,f.jsx)(t,{className:`h-5 w-5`})}),(0,f.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,f.jsx)(c,{className:`text-base`,children:e.title}),(0,f.jsx)(r,{className:`text-xs`,children:e.description})]})]}),(0,f.jsx)(s,{className:`pt-0`})]},e.title)})})]})}export{p as DeveloperHubPage};
1
+ import{f as e,m as t,r as n}from"./vendor-react-BgOXCBVK.js";import{Da as r,Di as i,Dr as a,Er as o,Or as s,Tr as c,kr as l,ls as u,ni as d}from"./ui-components-mPgY5chB.js";var f=n();function p(){let n=e(),{appName:p}=t(),m=p?`/apps/${p}`:``,h=[{title:`Integrations & APIs`,description:`Your app as a REST API — base URL, endpoints, and connect samples`,icon:r,href:`${m}/developer/integrations`},{title:`API Console`,description:`Inspect and exercise REST endpoints with auto-discovered services`,icon:i,href:`${m}/developer/api-console`},{title:`Flow Runs`,description:`Trigger flows with sample inputs and inspect recent run history`,icon:d,href:`${m}/developer/flow-runs`},{title:`Public Forms`,description:`Publish, share, and embed FormViews available to anonymous users`,icon:u,href:`${m}/developer/public-forms`}];return(0,f.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,f.jsxs)(`div`,{className:`min-w-0`,children:[(0,f.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:`Developer`}),(0,f.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Tools for building, debugging, and sharing ObjectStack apps`})]}),(0,f.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:h.map(e=>{let t=e.icon;return(0,f.jsxs)(c,{className:`cursor-pointer transition-colors hover:bg-accent/50`,onClick:()=>n(e.href),"data-testid":`hub-card-${e.title.toLowerCase().replace(/\s+/g,`-`)}`,role:`link`,tabIndex:0,"aria-label":`${e.title}: ${e.description}`,onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),n(e.href))},children:[(0,f.jsxs)(s,{className:`flex flex-row items-center gap-3 pb-2`,children:[(0,f.jsx)(`div`,{className:`flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,f.jsx)(t,{className:`h-5 w-5`})}),(0,f.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,f.jsx)(l,{className:`text-base`,children:e.title}),(0,f.jsx)(a,{className:`text-xs`,children:e.description})]})]}),(0,f.jsx)(o,{className:`pt-0`})]},e.title)})})]})}export{p as DeveloperHubPage};
@@ -1 +1 @@
1
- import{a as e,r as t}from"./vendor-react-BgOXCBVK.js";import{jc as n}from"./ui-components-q_9kKTqi.js";var r=t();function i({breadcrumb:t,children:i}){return(0,r.jsxs)(`div`,{className:`min-h-full`,children:[(0,r.jsx)(`header`,{className:`sticky top-0 z-10 border-b border-border bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/60`,children:(0,r.jsxs)(`div`,{className:`mx-auto flex max-w-3xl items-center gap-2 px-4 py-3 sm:px-6`,children:[(0,r.jsxs)(e,{to:`/docs`,className:`flex items-center gap-2 text-sm font-semibold hover:opacity-80`,children:[(0,r.jsx)(n,{className:`h-4 w-4 text-muted-foreground`}),(0,r.jsx)(`span`,{children:`Documentation`})]}),t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`span`,{className:`text-muted-foreground/60`,"aria-hidden":!0,children:`/`}),(0,r.jsx)(`span`,{className:`truncate text-sm text-muted-foreground`,children:t})]}):null]})}),i]})}export{i as t};
1
+ import{a as e,r as t}from"./vendor-react-BgOXCBVK.js";import{Fc as n}from"./ui-components-mPgY5chB.js";var r=t();function i({breadcrumb:t,children:i}){return(0,r.jsxs)(`div`,{className:`min-h-full`,children:[(0,r.jsx)(`header`,{className:`sticky top-0 z-10 border-b border-border bg-background/80 backdrop-blur supports-[backdrop-filter]:bg-background/60`,children:(0,r.jsxs)(`div`,{className:`mx-auto flex max-w-3xl items-center gap-2 px-4 py-3 sm:px-6`,children:[(0,r.jsxs)(e,{to:`/docs`,className:`flex items-center gap-2 text-sm font-semibold hover:opacity-80`,children:[(0,r.jsx)(n,{className:`h-4 w-4 text-muted-foreground`}),(0,r.jsx)(`span`,{children:`Documentation`})]}),t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`span`,{className:`text-muted-foreground/60`,"aria-hidden":!0,children:`/`}),(0,r.jsx)(`span`,{className:`truncate text-sm text-muted-foreground`,children:t})]}):null]})}),i]})}export{i as t};
@@ -1 +1 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{Bn as r,lt as i}from"./framework-DDZiA4ii.js";var a=e(n(),1),o=t(),s=(0,a.createContext)(null);function c({children:e,user:t={},app:n={},data:c={},features:l={}}){let u=(0,a.useMemo)(()=>({user:t,app:n,data:c,features:l,evaluator:new r({current_user:t,user:t,ctx:{user:t},os:{user:t},app:n,data:c,features:l})}),[t,n,c,l]),d=(0,a.useMemo)(()=>({current_user:t,user:t,ctx:{user:t},os:{user:t},app:n,data:c,features:l}),[t,n,c,l]);return(0,o.jsx)(s.Provider,{value:u,children:(0,o.jsx)(i,{scope:d,children:e})})}function l(){let e=(0,a.useContext)(s);if(!e){let e={user:{},app:{},data:{},features:{}},t={current_user:{},ctx:{user:{}},os:{user:{}},...e};return{...e,evaluator:new r(t)}}return e}function u(e,t){if(e==null||e===!0||e===`true`)return!0;if(e===!1||e===`false`)return!1;try{return t.evaluateCondition(e)}catch{return!0}}export{u as n,l as r,c as t};
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{sr as r,wt as i}from"./framework-B8ndNKrd.js";var a=e(n(),1),o=t(),s=(0,a.createContext)(null);function c({children:e,user:t={},app:n={},data:c={},features:l={}}){let u=(0,a.useMemo)(()=>({user:t,app:n,data:c,features:l,evaluator:new r({current_user:t,user:t,ctx:{user:t},os:{user:t},app:n,data:c,features:l})}),[t,n,c,l]),d=(0,a.useMemo)(()=>({current_user:t,user:t,ctx:{user:t},os:{user:t},app:n,data:c,features:l}),[t,n,c,l]);return(0,o.jsx)(s.Provider,{value:u,children:(0,o.jsx)(i,{scope:d,children:e})})}function l(){let e=(0,a.useContext)(s);if(!e){let e={user:{},app:{},data:{},features:{}},t={current_user:{},ctx:{user:{}},os:{user:{}},...e};return{...e,evaluator:new r(t)}}return e}function u(e,t){if(e==null||e===!0||e===`true`)return!0;if(e===!1||e===`false`)return!1;try{return t.evaluateCondition(e)}catch{return!0}}export{u as n,l as r,c as t};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{r as t,y as n}from"./vendor-react-BgOXCBVK.js";import{b as r}from"./infrastructure-ChmEYj6c.js";import{Q as i,Z as a}from"./framework-B8ndNKrd.js";import{Bt as o,Dr as s,En as c,Er as l,Ft as u,Gt as d,Ht as f,Kt as p,Ln as m,Nn as h,Oa as g,Or as _,Tr as v,Ut as y,Vs as b,Vt as x,Wt as S,_a as C,_n as w,_o as T,ac as E,gn as D,hn as O,jr as k,kr as A,nc as j,ni as M,pn as N,qr as P,qs as F,vn as I,yn as L}from"./ui-components-mPgY5chB.js";import"./src-BBKXMp-o.js";import{O as R}from"./RecordDetailView-DrVbrbaN.js";var z=e(n(),1),B=t();function V({status:e}){let t={success:{icon:j,cls:`text-emerald-600 border-emerald-300`},completed:{icon:j,cls:`text-emerald-600 border-emerald-300`},failed:{icon:F,cls:`text-red-600 border-red-300`},error:{icon:F,cls:`text-red-600 border-red-300`},running:{icon:T,cls:`text-blue-600 border-blue-300 animate-pulse`},pending:{icon:b,cls:`text-amber-600 border-amber-300`},paused:{icon:b,cls:`text-amber-600 border-amber-300`},skipped:{icon:E,cls:`text-muted-foreground`}}[e]??{icon:E,cls:`text-muted-foreground`},n=t.icon;return(0,B.jsxs)(k,{variant:`outline`,className:`text-[10px] font-mono inline-flex items-center gap-1 ${t.cls}`,children:[(0,B.jsx)(n,{className:`h-3 w-3`}),e]})}function H(e){if(!e)return`—`;try{return new Date(e).toLocaleString()}catch{return e}}function U(e,t){switch(t){case`number`:{if(e===``)return;let t=Number(e);return Number.isNaN(t)?e:t}case`boolean`:return e===`true`;case`object`:case`list`:case`array`:if(e.trim()===``)return;try{return JSON.parse(e)}catch{return e}default:return e}}function W({data:e}){return(0,B.jsx)(`pre`,{className:`rounded border bg-muted/30 p-2 text-xs font-mono overflow-auto whitespace-pre-wrap break-all max-h-96`,children:JSON.stringify(e,null,2)})}function G(){let e=a()?.getClient?.(),[t,n]=(0,z.useState)([]),[r,i]=(0,z.useState)(!0),[o,c]=(0,z.useState)(null),[u,d]=(0,z.useState)(``),[f,p]=(0,z.useState)(0),m=(0,z.useCallback)(async()=>{if(!e?.meta?.getItems){c(`meta.getItems is not available on this client`),i(!1);return}i(!0),c(null);try{let t=await e.meta.getItems(`flow`),r=(Array.isArray(t)?t:Array.isArray(t?.items)?t.items:Array.isArray(t?.value)?t.value:[]).map(e=>({name:e?.spec?.name??e?.name,label:e?.spec?.label,spec:e?.spec??e,updatedAt:e?.updatedAt??e?.updated_at})).filter(e=>e.name);n(r),!u&&r.length>0&&d(r[0].name)}catch(e){c(e?.message??String(e))}finally{i(!1)}},[e,u]);(0,z.useEffect)(()=>{m()},[m]);let h=(0,z.useMemo)(()=>t.find(e=>e.name===u)??null,[t,u]);return(0,B.jsxs)(`div`,{className:`flex flex-col gap-4 p-4 sm:p-6`,children:[(0,B.jsxs)(`div`,{className:`min-w-0`,children:[(0,B.jsxs)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight flex items-center gap-2`,children:[(0,B.jsx)(M,{className:`h-5 w-5`}),`Flow Runs`]}),(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Pick a flow, trigger a test run with sample inputs, and inspect recent run history`})]}),(0,B.jsxs)(v,{children:[(0,B.jsx)(_,{className:`pb-3`,children:(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(A,{className:`text-base`,children:`Flow`}),(0,B.jsx)(s,{children:`Select a flow definition to test`})]}),(0,B.jsxs)(P,{variant:`outline`,size:`sm`,onClick:m,disabled:r,children:[(0,B.jsx)(C,{className:`h-3.5 w-3.5 mr-2 ${r?`animate-spin`:``}`}),`Refresh`]})]})}),(0,B.jsxs)(l,{children:[r&&(0,B.jsx)(N,{className:`h-9 w-72`}),o&&(0,B.jsx)(`p`,{className:`text-sm text-red-500 font-mono break-all`,children:o}),!r&&!o&&t.length===0&&(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No flow definitions found.`}),!r&&!o&&t.length>0&&(0,B.jsx)(`select`,{value:u,onChange:e=>d(e.target.value),className:`flex h-9 w-full max-w-md rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm focus:outline-none focus:ring-1 focus:ring-ring`,children:t.map(e=>(0,B.jsx)(`option`,{value:e.name,children:e.label?`${e.label} (${e.name})`:e.name},e.name))})]})]}),h&&(0,B.jsxs)(`div`,{className:`grid gap-4 lg:grid-cols-2`,children:[(0,B.jsx)(K,{client:e,flow:h.spec,onExecuted:()=>p(e=>e+1)}),(0,B.jsx)(q,{client:e,flowName:h.name,refreshKey:f})]})]})}function K({client:e,flow:t,onExecuted:n}){let o=(0,z.useMemo)(()=>(t?.variables??[]).filter(e=>e?.isInput),[t]),c=a(),{objects:d}=i(),f=(0,z.useMemo)(()=>r(),[]),[y,x]=(0,z.useState)({}),[S,C]=(0,z.useState)(!1),[w,E]=(0,z.useState)(null),[D,O]=(0,z.useState)(null),[M,N]=(0,z.useState)(null);(0,z.useEffect)(()=>{x({}),E(null),O(null),N(null)},[t?.name]);let I=(e,t)=>x(n=>({...n,[e]:t}));return(0,B.jsxs)(v,{children:[(0,B.jsxs)(_,{className:`pb-3`,children:[(0,B.jsx)(A,{className:`text-base`,children:`Test Run`}),(0,B.jsx)(s,{children:`Provide input values and invoke the flow`})]}),(0,B.jsxs)(l,{className:`space-y-3`,children:[o.length===0&&(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This flow declares no input variables. Click Run to invoke with no parameters.`}),o.map(e=>(0,B.jsxs)(`div`,{className:`grid gap-1.5`,children:[(0,B.jsxs)(m,{htmlFor:`var-${e.name}`,className:`flex items-center gap-2`,children:[(0,B.jsx)(`span`,{className:`font-mono text-xs`,children:e.name}),(0,B.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono`,children:e.type})]}),e.type===`boolean`?(0,B.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,B.jsx)(p,{id:`var-${e.name}`,checked:y[e.name]===`true`,onCheckedChange:t=>I(e.name,t?`true`:`false`)}),(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:y[e.name]===`true`?`true`:`false`})]}):e.type===`object`||e.type===`list`||e.type===`array`?(0,B.jsx)(u,{id:`var-${e.name}`,placeholder:`JSON ${e.type}`,value:y[e.name]??``,onChange:t=>I(e.name,t.target.value),className:`font-mono text-xs min-h-[80px]`}):(0,B.jsx)(h,{id:`var-${e.name}`,type:e.type===`number`?`number`:`text`,value:y[e.name]??``,onChange:t=>I(e.name,t.target.value)})]},e.name)),(0,B.jsx)(`div`,{className:`pt-1`,children:(0,B.jsxs)(P,{onClick:async()=>{if(!e?.automation?.execute){O(`automation.execute is not available on this client`);return}C(!0),O(null),E(null),N(null);try{let r={};for(let e of o){let t=y[e.name];t!==void 0&&(r[e.name]=U(t,e.type))}let i=await e.automation.execute(t.name,{params:r});E(i),i?.status===`paused`&&i?.screen&&i?.runId&&N({flowName:t.name,runId:i.runId,screen:i.screen}),n?.()}catch(e){O(e?.message??String(e))}finally{C(!1)}},disabled:S,size:`sm`,children:[S?(0,B.jsx)(T,{className:`h-3.5 w-3.5 mr-2 animate-spin`}):(0,B.jsx)(g,{className:`h-3.5 w-3.5 mr-2`}),S?`Running…`:`Run Flow`]})}),(w||D)&&(0,B.jsxs)(`div`,{className:`pt-2 border-t mt-2 space-y-2`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[D||w?.success===!1?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(F,{className:`h-4 w-4 text-red-500`}),` Failed`]}):w?.status===`paused`?(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(b,{className:`h-4 w-4 text-amber-500`}),` Waiting for input`]}):(0,B.jsxs)(B.Fragment,{children:[(0,B.jsx)(j,{className:`h-4 w-4 text-emerald-500`}),` Result`]}),typeof w?.durationMs==`number`&&(0,B.jsxs)(k,{variant:`secondary`,className:`text-[10px] font-mono`,children:[w.durationMs,` ms`]})]}),D&&(0,B.jsx)(`p`,{className:`text-sm text-red-500 font-mono break-all`,children:D}),w?.status===`paused`&&w?.screen&&w?.runId&&!M&&(0,B.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,B.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`This run is paused at screen `,(0,B.jsx)(`span`,{className:`font-mono`,children:w.screen.nodeId}),`.`]}),(0,B.jsx)(P,{size:`sm`,variant:`outline`,onClick:()=>N({flowName:t.name,runId:w.runId,screen:w.screen}),children:`Continue run`})]}),w&&(0,B.jsx)(W,{data:w})]})]}),(0,B.jsx)(R,{state:M,authFetch:f,baseUrl:``,dataSource:c,objects:d,onClose:()=>{N(null),n?.()},onComplete:()=>{N(null),n?.()}})]})}function q({client:e,flowName:t,refreshKey:n}){let[r,i]=(0,z.useState)([]),[a,u]=(0,z.useState)(!0),[p,m]=(0,z.useState)(null),[h,g]=(0,z.useState)(null),[b,E]=(0,z.useState)(null),[j,M]=(0,z.useState)(!1),[F,R]=(0,z.useState)(null),U=(0,z.useCallback)(async()=>{if(!e?.automation?.listRuns){m(`automation.listRuns is not available on this client`),u(!1);return}u(!0),m(null);try{let n=await e.automation.listRuns(t,{limit:20}),r=Array.isArray(n)?n:n?.items??n?.runs??[];i(r)}catch(e){m(e?.message??String(e))}finally{u(!1)}},[e,t]);(0,z.useEffect)(()=>{U()},[U,n]);let G=async n=>{g(n),E(null),R(null),M(!0);try{let r=await e.automation.getRun(t,n);E(r?.run??r)}catch(e){R(e?.message??String(e))}finally{M(!1)}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(v,{children:[(0,B.jsx)(_,{className:`pb-3`,children:(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsxs)(`div`,{children:[(0,B.jsx)(A,{className:`text-base`,children:`Recent Runs`}),(0,B.jsx)(s,{className:`font-mono text-xs`,children:t})]}),(0,B.jsxs)(P,{variant:`outline`,size:`sm`,onClick:U,disabled:a,children:[a?(0,B.jsx)(T,{className:`h-3.5 w-3.5 mr-2 animate-spin`}):(0,B.jsx)(C,{className:`h-3.5 w-3.5 mr-2`}),`Refresh`]})]})}),(0,B.jsxs)(l,{children:[a&&(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(N,{className:`h-8 w-full`}),(0,B.jsx)(N,{className:`h-8 w-full`}),(0,B.jsx)(N,{className:`h-8 w-full`})]}),!a&&p&&(0,B.jsx)(`p`,{className:`text-sm text-red-500 font-mono break-all`,children:p}),!a&&!p&&r.length===0&&(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground py-6 text-center`,children:`No runs yet. Use the Test Run panel to invoke this flow.`}),!a&&!p&&r.length>0&&(0,B.jsxs)(o,{children:[(0,B.jsx)(S,{children:(0,B.jsxs)(d,{children:[(0,B.jsx)(y,{children:`Run`}),(0,B.jsx)(y,{children:`Status`}),(0,B.jsx)(y,{children:`Started`}),(0,B.jsx)(y,{className:`text-right`,children:`Duration`})]})}),(0,B.jsx)(x,{children:r.map(e=>(0,B.jsxs)(d,{className:`cursor-pointer`,onClick:()=>G(e.id),children:[(0,B.jsxs)(f,{className:`font-mono text-xs`,children:[e.id.slice(0,12),`…`]}),(0,B.jsx)(f,{children:(0,B.jsx)(V,{status:e.status})}),(0,B.jsx)(f,{className:`text-xs text-muted-foreground`,children:H(e.startedAt)}),(0,B.jsx)(f,{className:`text-right font-mono text-xs`,children:typeof e.durationMs==`number`?`${e.durationMs} ms`:`—`})]},e.id))})]})]})]}),(0,B.jsx)(O,{open:!!h,onOpenChange:e=>{e||(g(null),E(null))},children:(0,B.jsxs)(D,{side:`right`,className:`w-full sm:max-w-2xl p-0 flex flex-col`,children:[(0,B.jsxs)(I,{className:`p-4 border-b`,children:[(0,B.jsxs)(L,{className:`font-mono text-sm break-all`,children:[`Run `,h]}),(0,B.jsx)(w,{children:b&&(0,B.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[(0,B.jsx)(V,{status:b.status}),typeof b.durationMs==`number`&&(0,B.jsxs)(k,{variant:`secondary`,className:`text-[10px] font-mono`,children:[b.durationMs,` ms`]}),(0,B.jsx)(`span`,{className:`text-xs`,children:H(b.startedAt)})]})})]}),(0,B.jsxs)(c,{className:`flex-1 p-4`,children:[j&&(0,B.jsxs)(`div`,{className:`space-y-2`,children:[(0,B.jsx)(N,{className:`h-16 w-full`}),(0,B.jsx)(N,{className:`h-16 w-full`}),(0,B.jsx)(N,{className:`h-16 w-full`})]}),F&&(0,B.jsx)(`p`,{className:`text-sm text-red-500 font-mono break-all`,children:F}),!j&&b&&(0,B.jsx)(`div`,{className:`space-y-3`,children:Array.isArray(b.steps)&&b.steps.length>0?b.steps.map((e,t)=>(0,B.jsxs)(`div`,{className:`rounded-md border p-3 space-y-2`,children:[(0,B.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,B.jsxs)(`span`,{className:`text-muted-foreground font-mono text-xs`,children:[`#`,t+1]}),(0,B.jsx)(`span`,{className:`font-mono text-sm font-medium`,children:e.nodeLabel||e.nodeId}),e.nodeType&&(0,B.jsx)(k,{variant:`outline`,className:`text-[10px] font-mono`,children:e.nodeType}),(0,B.jsx)(V,{status:e.status}),typeof e.durationMs==`number`&&(0,B.jsxs)(k,{variant:`secondary`,className:`text-[10px] font-mono ml-auto`,children:[e.durationMs,` ms`]})]}),e.input!==void 0&&(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground mb-1`,children:`Input`}),(0,B.jsx)(W,{data:e.input})]}),e.output!==void 0&&(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground mb-1`,children:`Output`}),(0,B.jsx)(W,{data:e.output})]}),e.error&&(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[10px] uppercase text-red-500 mb-1`,children:`Error`}),(0,B.jsx)(W,{data:e.error})]})]},`${e.nodeId}-${t}`)):(0,B.jsxs)(`div`,{children:[(0,B.jsx)(`div`,{className:`text-[10px] uppercase text-muted-foreground mb-1`,children:`Run`}),(0,B.jsx)(W,{data:b})]})})]})]})})]})}export{G as FlowRunsPage};
@@ -1,4 +1,4 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{f as t,m as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{Cr as a,Dr as o,Ds as s,Ji as c,Mr as l,Nr as u,Oo as d,Sa as f,Si as p,Sr as m,Ss as h,Tr as g,Ur as _,dr as v,fr as y,gr as b,hr as x,jr as S,kc as C,kn as w,ks as T,mr as E,pr as D,uc as O,wr as k,xr as A}from"./ui-components-q_9kKTqi.js";var j=e(i(),1),M=`objectstack`,N=`Query and modify data in an ObjectStack app over MCP — discover objects, read and filter records, and create/update/delete under your own permissions and row-level security. Use when the user wants to inspect or change data in their ObjectStack environment.`,P=`<YOUR_ENV_MCP_URL>`;function F(e={}){let t=e.mcpUrl?.trim()||P,n=e.envName?.trim();return`---
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{f as t,m as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{$i as a,Da as o,Di as s,Dr as c,Er as l,Es as u,Fr as d,Ir as f,Lr as p,Mo as m,Nc as h,Nn as g,Ns as _,Or as v,Tr as y,_r as b,br as x,gr as S,hr as C,jr as w,js as T,kr as E,mc as D,qr as O,vr as k,yr as A}from"./ui-components-mPgY5chB.js";var j=e(i(),1),M=`objectstack`,N=`Query and modify data in an ObjectStack app over MCP — discover objects, read and filter records, and create/update/delete under your own permissions and row-level security. Use when the user wants to inspect or change data in their ObjectStack environment.`,P=`<YOUR_ENV_MCP_URL>`;function F(e={}){let t=e.mcpUrl?.trim()||P,n=e.envName?.trim();return`---
2
2
  name: ${M}
3
3
  description: ${N}
4
4
  ---
@@ -79,4 +79,4 @@ create/update payload.
79
79
  3. \`query_records\` to read / verify current state.
80
80
  4. \`create_record\` / \`update_record\` / \`delete_record\` to make changes,
81
81
  confirming destructive steps with the user.
82
- `}var I=r();function L(){let[e,t]=(0,j.useState)(!1);return[e,e=>{navigator.clipboard?.writeText(e),t(!0),setTimeout(()=>t(!1),1500)}]}function R({value:e,label:t}){let[n,r]=L();return(0,I.jsxs)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:()=>r(e),"aria-label":`Copy ${t??`value`}`,children:[n?(0,I.jsx)(O,{className:`size-3.5`}):(0,I.jsx)(T,{className:`size-3.5`}),n?`Copied`:`Copy`]})}function z(){let e=typeof window<`u`?window.location.origin:``,[t,n]=(0,j.useState)(null),[r,i]=(0,j.useState)(null),[o,s]=(0,j.useState)(`Agent key`),[f,p]=(0,j.useState)(!1),[M,N]=(0,j.useState)(null),[P,z]=(0,j.useState)(null),[B,V]=(0,j.useState)(!1),[H,U]=L();(0,j.useEffect)(()=>{let t=!1;return(async()=>{try{let r=await(await fetch(`/api/v1/discovery`,{credentials:`include`})).json().catch(()=>({})),a=r?.data?.routes?.mcp??r?.routes?.mcp;if(t)return;a?(n(a.startsWith(`http`)?a:`${e}${a}`),i(!0)):i(!1)}catch{t||i(!1)}})(),()=>{t=!0}},[e]);let W=async()=>{p(!0),N(null);try{let e=await fetch(`/api/v1/keys`,{method:`POST`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify({name:o.trim()||`Agent key`})}),t=await e.json().catch(()=>({})),n=t?.data;if(!e.ok||!n?.key)throw Error(t?.error?.message||`Request failed (${e.status})`);z(n),V(!0)}catch(e){N(e?.message??`Failed to generate key`)}finally{p(!1)}},G=()=>{let e=F({mcpUrl:t??void 0}),n=new Blob([e],{type:`text/markdown;charset=utf-8`}),r=document.createElement(`a`);r.href=URL.createObjectURL(n),r.download=`SKILL.md`,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(r.href),1e3)},K=t??`${e}/api/v1/mcp`;return(0,I.jsxs)(A,{children:[(0,I.jsxs)(k,{className:`pb-2`,children:[(0,I.jsxs)(g,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(C,{className:`size-4`}),` Connect an AI agent (MCP)`]}),(0,I.jsx)(a,{className:`text-xs`,children:`Every app in this environment is an agent-ready toolset. Connect Claude, Cursor, Codex or any MCP client — one connection covers all your apps (new ones appear automatically).`})]}),(0,I.jsxs)(m,{className:`flex flex-col gap-4`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:`MCP endpoint`}),r===!1?(0,I.jsxs)(S,{children:[(0,I.jsx)(c,{className:`size-4`}),(0,I.jsx)(u,{children:`MCP is not enabled for this environment`}),(0,I.jsxs)(l,{className:`text-xs`,children:[`Connecting agents is opt-in. An admin can enable it by setting`,` `,(0,I.jsx)(`code`,{className:`font-mono`,children:`OS_MCP_SERVER_ENABLED=true`}),`. You can still generate a key and download the skill below.`]})]}):(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`code`,{className:`flex-1 truncate rounded bg-muted px-2 py-1.5 font-mono text-xs`,children:K}),(0,I.jsx)(R,{value:K,label:`MCP URL`})]})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-xs font-medium text-muted-foreground`,children:[(0,I.jsx)(d,{className:`size-3.5`}),` API key`]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(w,{value:o,onChange:e=>s(e.target.value),placeholder:`Key name (e.g. Claude desktop)`,className:`h-8 max-w-xs text-sm`}),(0,I.jsx)(_,{type:`button`,size:`sm`,onClick:W,disabled:f,children:f?`Generating…`:`Generate key`})]}),(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`The key acts as you (your permissions + row-level security). Shown once — copy it immediately. Revoke anytime from the API Keys list.`}),M&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:M})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:`Agent skill (portable)`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(_,{type:`button`,variant:`outline`,size:`sm`,className:`gap-1.5`,onClick:G,children:[(0,I.jsx)(h,{className:`size-4`}),` Download SKILL.md`]}),(0,I.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Works with any skills-capable agent (Claude, Codex, Gemini, Cursor…).`})]})]}),(0,I.jsxs)(`div`,{className:`rounded-lg border bg-muted/30 p-3 text-xs leading-relaxed`,children:[(0,I.jsx)(`div`,{className:`mb-1 font-medium`,children:`Connect in 3 steps`}),(0,I.jsxs)(`ol`,{className:`list-decimal space-y-0.5 pl-4 text-muted-foreground`,children:[(0,I.jsx)(`li`,{children:`Add a remote MCP server pointing at the endpoint above.`}),(0,I.jsxs)(`li`,{children:[`Set the header `,(0,I.jsx)(`code`,{className:`font-mono`,children:`x-api-key: <your key>`}),` (a session Bearer is `,(0,I.jsx)(`em`,{children:`not`}),` an API key).`]}),(0,I.jsxs)(`li`,{children:[`Drop in `,(0,I.jsx)(`code`,{className:`font-mono`,children:`SKILL.md`}),` so the agent knows how to drive your data.`]})]})]})]}),(0,I.jsx)(v,{open:B,onOpenChange:V,children:(0,I.jsxs)(y,{children:[(0,I.jsxs)(x,{children:[(0,I.jsxs)(b,{className:`flex items-center gap-2`,children:[(0,I.jsx)(d,{className:`size-4`}),` Your new API key`]}),(0,I.jsxs)(D,{children:[`Copy this now — for your security it will `,(0,I.jsx)(`strong`,{children:`not be shown again`}),`.`]})]}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`code`,{className:`flex-1 break-all rounded bg-muted px-2 py-2 font-mono text-xs`,children:P?.key}),(0,I.jsxs)(_,{type:`button`,variant:`secondary`,size:`sm`,className:`gap-1.5`,onClick:()=>P&&U(P.key),children:[H?(0,I.jsx)(O,{className:`size-3.5`}):(0,I.jsx)(T,{className:`size-3.5`}),H?`Copied`:`Copy`]})]}),(0,I.jsxs)(S,{children:[(0,I.jsx)(c,{className:`size-4`}),(0,I.jsxs)(l,{className:`text-xs`,children:[`Send it as `,(0,I.jsx)(`code`,{className:`font-mono`,children:`x-api-key`}),`. It carries your permissions — store it like a password and revoke it if leaked.`]})]})]}),(0,I.jsx)(E,{children:(0,I.jsx)(_,{type:`button`,onClick:()=>V(!1),children:`Done`})})]})})]})}var B={GET:`bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`,POST:`bg-blue-500/10 text-blue-700 dark:text-blue-400`,PATCH:`bg-amber-500/10 text-amber-700 dark:text-amber-400`,DELETE:`bg-red-500/10 text-red-700 dark:text-red-400`};function V({value:e,label:t}){let[n,r]=(0,j.useState)(!1);return(0,I.jsxs)(_,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:()=>{navigator.clipboard?.writeText(e),r(!0),setTimeout(()=>r(!1),1500)},"aria-label":`Copy ${t??`value`}`,children:[n?(0,I.jsx)(O,{className:`size-3.5`}):(0,I.jsx)(T,{className:`size-3.5`}),n?`Copied`:`Copy`]})}function H(){let e=t(),{appName:r}=n(),i=r?`/apps/${r}`:``,c=typeof window<`u`?window.location.origin:``,[l,u]=(0,j.useState)([]),[h,v]=(0,j.useState)(!0),[y,b]=(0,j.useState)(null);(0,j.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch(`/api/v1/meta/object`,{credentials:`include`});if(!t.ok)throw Error(`meta/object ${t.status}`);let n=await t.json(),r=n?.data??n?.items??n??[],i=(Array.isArray(r)?r:[]).map(e=>({name:String(e.name??``),label:e.label||void 0})).filter(e=>e.name&&!e.name.startsWith(`sys_`));e||u(i)}catch(t){e||b(t?.message??`failed to load objects`)}finally{e||v(!1)}})(),()=>{e=!0}},[]);let x=l[0]?.name??`your_object`,S=(0,j.useMemo)(()=>`# List ${x} records\ncurl "${c}/api/v1/data/${x}?$top=10" \\\n -H "x-api-key: <YOUR_API_KEY>"`,[c,x]),C=e=>[{method:`GET`,path:`/api/v1/data/${e}`,desc:`List / query`},{method:`POST`,path:`/api/v1/data/${e}`,desc:`Create`},{method:`GET`,path:`/api/v1/data/${e}/:id`,desc:`Read one`},{method:`PATCH`,path:`/api/v1/data/${e}/:id`,desc:`Update`},{method:`DELETE`,path:`/api/v1/data/${e}/:id`,desc:`Delete`}];return(0,I.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight flex items-center gap-2`,children:[(0,I.jsx)(f,{className:`size-5 text-primary`}),` Integrations & APIs`]}),(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Every object you build is instantly a REST API. Drive your app from code or an agent.`})]}),(0,I.jsxs)(A,{children:[(0,I.jsxs)(k,{className:`pb-2`,children:[(0,I.jsx)(g,{className:`text-base`,children:`Base URL`}),(0,I.jsx)(a,{className:`text-xs`,children:`This environment's API root.`})]}),(0,I.jsxs)(m,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(`code`,{className:`flex-1 truncate rounded bg-muted px-2 py-1.5 font-mono text-xs`,children:[c,`/api/v1`]}),(0,I.jsx)(V,{value:`${c}/api/v1`,label:`base URL`})]})]}),(0,I.jsx)(z,{}),(0,I.jsxs)(A,{children:[(0,I.jsxs)(k,{className:`pb-2 flex flex-row items-center justify-between`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(g,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(s,{className:`size-4`}),` REST endpoints`]}),(0,I.jsx)(a,{className:`text-xs`,children:`Auto-generated CRUD for every published object (OData query params on list).`})]}),(0,I.jsxs)(_,{type:`button`,variant:`outline`,size:`sm`,className:`gap-1.5`,onClick:()=>e(`${i}/developer/api-console`),children:[(0,I.jsx)(p,{className:`size-4`}),` Open API Console`]})]}),(0,I.jsxs)(m,{className:`flex flex-col gap-4`,children:[h&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading objects…`}),y&&(0,I.jsxs)(`p`,{className:`text-sm text-destructive`,children:[`Couldn't load objects: `,y]}),!h&&!y&&l.length===0&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No business objects yet — build one with the AI assistant, publish it, and it appears here as an API.`}),l.map(e=>(0,I.jsxs)(`div`,{className:`rounded-lg border`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 border-b px-3 py-2`,children:[(0,I.jsx)(`span`,{className:`font-medium text-sm`,children:e.label||e.name}),(0,I.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground`,children:e.name})]}),(0,I.jsx)(`div`,{className:`divide-y`,children:C(e.name).map(e=>(0,I.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-1.5`,children:[(0,I.jsx)(o,{className:`w-16 justify-center font-mono text-[10px] ${B[e.method]??``}`,children:e.method}),(0,I.jsx)(`code`,{className:`flex-1 truncate font-mono text-xs`,children:e.path}),(0,I.jsx)(`span`,{className:`hidden shrink-0 text-xs text-muted-foreground sm:inline`,children:e.desc})]},e.method+e.path))})]},e.name))]})]}),(0,I.jsxs)(A,{children:[(0,I.jsx)(k,{className:`pb-2`,children:(0,I.jsxs)(g,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(d,{className:`size-4`}),` Authentication`]})}),(0,I.jsxs)(m,{className:`flex flex-col gap-2 text-sm text-muted-foreground`,children:[(0,I.jsxs)(`p`,{children:[`In the console you're already authenticated — use `,(0,I.jsx)(`strong`,{children:`Open API Console`}),` above to call these endpoints now.`]}),(0,I.jsxs)(`p`,{children:[`For external programs and AI agents, generate a `,(0,I.jsx)(`strong`,{children:`self-serve API key`}),` in the `,(0,I.jsx)(`strong`,{children:`Connect an AI agent`}),` section above. Send it as the`,` `,(0,I.jsx)(`code`,{className:`font-mono text-xs`,children:`x-api-key`}),` header; it runs under your permissions and row-level security, and is revocable.`]})]})]}),(0,I.jsxs)(A,{children:[(0,I.jsxs)(k,{className:`pb-2 flex flex-row items-center justify-between`,children:[(0,I.jsx)(g,{className:`text-base`,children:`Sample (cURL)`}),(0,I.jsx)(V,{value:S,label:`cURL sample`})]}),(0,I.jsx)(m,{children:(0,I.jsx)(`pre`,{className:`overflow-x-auto rounded bg-muted p-3 font-mono text-xs leading-relaxed`,children:S})})]})]})}export{H as IntegrationsPage};
82
+ `}var I=r();function L(){let[e,t]=(0,j.useState)(!1);return[e,e=>{navigator.clipboard?.writeText(e),t(!0),setTimeout(()=>t(!1),1500)}]}function R({value:e,label:t}){let[n,r]=L();return(0,I.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:()=>r(e),"aria-label":`Copy ${t??`value`}`,children:[n?(0,I.jsx)(D,{className:`size-3.5`}):(0,I.jsx)(_,{className:`size-3.5`}),n?`Copied`:`Copy`]})}function z(){let e=typeof window<`u`?window.location.origin:``,[t,n]=(0,j.useState)(null),[r,i]=(0,j.useState)(null),[o,s]=(0,j.useState)(`Agent key`),[w,T]=(0,j.useState)(!1),[M,N]=(0,j.useState)(null),[P,z]=(0,j.useState)(null),[B,V]=(0,j.useState)(!1),[H,U]=L();(0,j.useEffect)(()=>{let t=!1;return(async()=>{try{let r=await(await fetch(`/api/v1/discovery`,{credentials:`include`})).json().catch(()=>({})),a=r?.data?.routes?.mcp??r?.routes?.mcp;if(t)return;a?(n(a.startsWith(`http`)?a:`${e}${a}`),i(!0)):i(!1)}catch{t||i(!1)}})(),()=>{t=!0}},[e]);let W=async()=>{T(!0),N(null);try{let e=await fetch(`/api/v1/keys`,{method:`POST`,credentials:`include`,headers:{"content-type":`application/json`},body:JSON.stringify({name:o.trim()||`Agent key`})}),t=await e.json().catch(()=>({})),n=t?.data;if(!e.ok||!n?.key)throw Error(t?.error?.message||`Request failed (${e.status})`);z(n),V(!0)}catch(e){N(e?.message??`Failed to generate key`)}finally{T(!1)}},G=()=>{let e=F({mcpUrl:t??void 0}),n=new Blob([e],{type:`text/markdown;charset=utf-8`}),r=document.createElement(`a`);r.href=URL.createObjectURL(n),r.download=`SKILL.md`,document.body.appendChild(r),r.click(),r.remove(),setTimeout(()=>URL.revokeObjectURL(r.href),1e3)},K=t??`${e}/api/v1/mcp`;return(0,I.jsxs)(y,{children:[(0,I.jsxs)(v,{className:`pb-2`,children:[(0,I.jsxs)(E,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(h,{className:`size-4`}),` Connect an AI agent (MCP)`]}),(0,I.jsx)(c,{className:`text-xs`,children:`Every app in this environment is an agent-ready toolset. Connect Claude, Cursor, Codex or any MCP client — one connection covers all your apps (new ones appear automatically).`})]}),(0,I.jsxs)(l,{className:`flex flex-col gap-4`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:`MCP endpoint`}),r===!1?(0,I.jsxs)(d,{children:[(0,I.jsx)(a,{className:`size-4`}),(0,I.jsx)(p,{children:`MCP is not enabled for this environment`}),(0,I.jsxs)(f,{className:`text-xs`,children:[`Connecting agents is opt-in. An admin can enable it by setting`,` `,(0,I.jsx)(`code`,{className:`font-mono`,children:`OS_MCP_SERVER_ENABLED=true`}),`. You can still generate a key and download the skill below.`]})]}):(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`code`,{className:`flex-1 truncate rounded bg-muted px-2 py-1.5 font-mono text-xs`,children:K}),(0,I.jsx)(R,{value:K,label:`MCP URL`})]})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-xs font-medium text-muted-foreground`,children:[(0,I.jsx)(m,{className:`size-3.5`}),` API key`]}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(g,{value:o,onChange:e=>s(e.target.value),placeholder:`Key name (e.g. Claude desktop)`,className:`h-8 max-w-xs text-sm`}),(0,I.jsx)(O,{type:`button`,size:`sm`,onClick:W,disabled:w,children:w?`Generating…`:`Generate key`})]}),(0,I.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`The key acts as you (your permissions + row-level security). Shown once — copy it immediately. Revoke anytime from the API Keys list.`}),M&&(0,I.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:M})]}),(0,I.jsxs)(`div`,{children:[(0,I.jsx)(`div`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:`Agent skill (portable)`}),(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(O,{type:`button`,variant:`outline`,size:`sm`,className:`gap-1.5`,onClick:G,children:[(0,I.jsx)(u,{className:`size-4`}),` Download SKILL.md`]}),(0,I.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Works with any skills-capable agent (Claude, Codex, Gemini, Cursor…).`})]})]}),(0,I.jsxs)(`div`,{className:`rounded-lg border bg-muted/30 p-3 text-xs leading-relaxed`,children:[(0,I.jsx)(`div`,{className:`mb-1 font-medium`,children:`Connect in 3 steps`}),(0,I.jsxs)(`ol`,{className:`list-decimal space-y-0.5 pl-4 text-muted-foreground`,children:[(0,I.jsx)(`li`,{children:`Add a remote MCP server pointing at the endpoint above.`}),(0,I.jsxs)(`li`,{children:[`Set the header `,(0,I.jsx)(`code`,{className:`font-mono`,children:`x-api-key: <your key>`}),` (a session Bearer is `,(0,I.jsx)(`em`,{children:`not`}),` an API key).`]}),(0,I.jsxs)(`li`,{children:[`Drop in `,(0,I.jsx)(`code`,{className:`font-mono`,children:`SKILL.md`}),` so the agent knows how to drive your data.`]})]})]})]}),(0,I.jsx)(C,{open:B,onOpenChange:V,children:(0,I.jsxs)(S,{children:[(0,I.jsxs)(A,{children:[(0,I.jsxs)(x,{className:`flex items-center gap-2`,children:[(0,I.jsx)(m,{className:`size-4`}),` Your new API key`]}),(0,I.jsxs)(b,{children:[`Copy this now — for your security it will `,(0,I.jsx)(`strong`,{children:`not be shown again`}),`.`]})]}),(0,I.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,I.jsx)(`code`,{className:`flex-1 break-all rounded bg-muted px-2 py-2 font-mono text-xs`,children:P?.key}),(0,I.jsxs)(O,{type:`button`,variant:`secondary`,size:`sm`,className:`gap-1.5`,onClick:()=>P&&U(P.key),children:[H?(0,I.jsx)(D,{className:`size-3.5`}):(0,I.jsx)(_,{className:`size-3.5`}),H?`Copied`:`Copy`]})]}),(0,I.jsxs)(d,{children:[(0,I.jsx)(a,{className:`size-4`}),(0,I.jsxs)(f,{className:`text-xs`,children:[`Send it as `,(0,I.jsx)(`code`,{className:`font-mono`,children:`x-api-key`}),`. It carries your permissions — store it like a password and revoke it if leaked.`]})]})]}),(0,I.jsx)(k,{children:(0,I.jsx)(O,{type:`button`,onClick:()=>V(!1),children:`Done`})})]})})]})}var B={GET:`bg-emerald-500/10 text-emerald-700 dark:text-emerald-400`,POST:`bg-blue-500/10 text-blue-700 dark:text-blue-400`,PATCH:`bg-amber-500/10 text-amber-700 dark:text-amber-400`,DELETE:`bg-red-500/10 text-red-700 dark:text-red-400`};function V({value:e,label:t}){let[n,r]=(0,j.useState)(!1);return(0,I.jsxs)(O,{type:`button`,variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 px-2 text-xs`,onClick:()=>{navigator.clipboard?.writeText(e),r(!0),setTimeout(()=>r(!1),1500)},"aria-label":`Copy ${t??`value`}`,children:[n?(0,I.jsx)(D,{className:`size-3.5`}):(0,I.jsx)(_,{className:`size-3.5`}),n?`Copied`:`Copy`]})}function H(){let e=t(),{appName:r}=n(),i=r?`/apps/${r}`:``,a=typeof window<`u`?window.location.origin:``,[u,d]=(0,j.useState)([]),[f,p]=(0,j.useState)(!0),[h,g]=(0,j.useState)(null);(0,j.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await fetch(`/api/v1/meta/object`,{credentials:`include`});if(!t.ok)throw Error(`meta/object ${t.status}`);let n=await t.json(),r=n?.data??n?.items??n??[],i=(Array.isArray(r)?r:[]).map(e=>({name:String(e.name??``),label:e.label||void 0})).filter(e=>e.name&&!e.name.startsWith(`sys_`));e||d(i)}catch(t){e||g(t?.message??`failed to load objects`)}finally{e||p(!1)}})(),()=>{e=!0}},[]);let _=u[0]?.name??`your_object`,b=(0,j.useMemo)(()=>`# List ${_} records\ncurl "${a}/api/v1/data/${_}?$top=10" \\\n -H "x-api-key: <YOUR_API_KEY>"`,[a,_]),x=e=>[{method:`GET`,path:`/api/v1/data/${e}`,desc:`List / query`},{method:`POST`,path:`/api/v1/data/${e}`,desc:`Create`},{method:`GET`,path:`/api/v1/data/${e}/:id`,desc:`Read one`},{method:`PATCH`,path:`/api/v1/data/${e}/:id`,desc:`Update`},{method:`DELETE`,path:`/api/v1/data/${e}/:id`,desc:`Delete`}];return(0,I.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6`,children:[(0,I.jsxs)(`div`,{className:`min-w-0`,children:[(0,I.jsxs)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight flex items-center gap-2`,children:[(0,I.jsx)(o,{className:`size-5 text-primary`}),` Integrations & APIs`]}),(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:`Every object you build is instantly a REST API. Drive your app from code or an agent.`})]}),(0,I.jsxs)(y,{children:[(0,I.jsxs)(v,{className:`pb-2`,children:[(0,I.jsx)(E,{className:`text-base`,children:`Base URL`}),(0,I.jsx)(c,{className:`text-xs`,children:`This environment's API root.`})]}),(0,I.jsxs)(l,{className:`flex items-center gap-2`,children:[(0,I.jsxs)(`code`,{className:`flex-1 truncate rounded bg-muted px-2 py-1.5 font-mono text-xs`,children:[a,`/api/v1`]}),(0,I.jsx)(V,{value:`${a}/api/v1`,label:`base URL`})]})]}),(0,I.jsx)(z,{}),(0,I.jsxs)(y,{children:[(0,I.jsxs)(v,{className:`pb-2 flex flex-row items-center justify-between`,children:[(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(E,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(T,{className:`size-4`}),` REST endpoints`]}),(0,I.jsx)(c,{className:`text-xs`,children:`Auto-generated CRUD for every published object (OData query params on list).`})]}),(0,I.jsxs)(O,{type:`button`,variant:`outline`,size:`sm`,className:`gap-1.5`,onClick:()=>e(`${i}/developer/api-console`),children:[(0,I.jsx)(s,{className:`size-4`}),` Open API Console`]})]}),(0,I.jsxs)(l,{className:`flex flex-col gap-4`,children:[f&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading objects…`}),h&&(0,I.jsxs)(`p`,{className:`text-sm text-destructive`,children:[`Couldn't load objects: `,h]}),!f&&!h&&u.length===0&&(0,I.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No business objects yet — build one with the AI assistant, publish it, and it appears here as an API.`}),u.map(e=>(0,I.jsxs)(`div`,{className:`rounded-lg border`,children:[(0,I.jsxs)(`div`,{className:`flex items-center gap-2 border-b px-3 py-2`,children:[(0,I.jsx)(`span`,{className:`font-medium text-sm`,children:e.label||e.name}),(0,I.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground`,children:e.name})]}),(0,I.jsx)(`div`,{className:`divide-y`,children:x(e.name).map(e=>(0,I.jsxs)(`div`,{className:`flex items-center gap-3 px-3 py-1.5`,children:[(0,I.jsx)(w,{className:`w-16 justify-center font-mono text-[10px] ${B[e.method]??``}`,children:e.method}),(0,I.jsx)(`code`,{className:`flex-1 truncate font-mono text-xs`,children:e.path}),(0,I.jsx)(`span`,{className:`hidden shrink-0 text-xs text-muted-foreground sm:inline`,children:e.desc})]},e.method+e.path))})]},e.name))]})]}),(0,I.jsxs)(y,{children:[(0,I.jsx)(v,{className:`pb-2`,children:(0,I.jsxs)(E,{className:`text-base flex items-center gap-2`,children:[(0,I.jsx)(m,{className:`size-4`}),` Authentication`]})}),(0,I.jsxs)(l,{className:`flex flex-col gap-2 text-sm text-muted-foreground`,children:[(0,I.jsxs)(`p`,{children:[`In the console you're already authenticated — use `,(0,I.jsx)(`strong`,{children:`Open API Console`}),` above to call these endpoints now.`]}),(0,I.jsxs)(`p`,{children:[`For external programs and AI agents, generate a `,(0,I.jsx)(`strong`,{children:`self-serve API key`}),` in the `,(0,I.jsx)(`strong`,{children:`Connect an AI agent`}),` section above. Send it as the`,` `,(0,I.jsx)(`code`,{className:`font-mono text-xs`,children:`x-api-key`}),` header; it runs under your permissions and row-level security, and is revocable.`]})]})]}),(0,I.jsxs)(y,{children:[(0,I.jsxs)(v,{className:`pb-2 flex flex-row items-center justify-between`,children:[(0,I.jsx)(E,{className:`text-base`,children:`Sample (cURL)`}),(0,I.jsx)(V,{value:b,label:`cURL sample`})]}),(0,I.jsx)(l,{children:(0,I.jsx)(`pre`,{className:`overflow-x-auto rounded bg-muted p-3 font-mono text-xs leading-relaxed`,children:b})})]})]})}export{H as IntegrationsPage};
@@ -0,0 +1 @@
1
+ import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{f as t,h as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{v as a}from"./infrastructure-ChmEYj6c.js";import{Jn as o,Q as s,T as c,Z as l,mt as u,yt as d}from"./framework-B8ndNKrd.js";import{dt as f,ht as p,js as m,mt as h,vt as g}from"./ui-components-mPgY5chB.js";import"./MetadataProvider-CnYsadFP.js";import{t as _}from"./RecordDetailView-DrVbrbaN.js";import{d as ee}from"./plugins-views-BxwTmeut.js";var v=e(i(),1),y=[`single`,`group`,`isolated`];function b(){let{getAuthConfig:e}=a(),[t,n]=(0,v.useState)(void 0);return(0,v.useEffect)(()=>{let t=!1;return e?.().then(e=>{if(t)return;let r=e?.features?.tenancyPosture;r&&y.includes(r)&&n(r)}).catch(()=>{}),()=>{t=!0}},[e]),t}var x=`uf_`;function S(e){let t={};return e.forEach((e,n)=>{if(n.startsWith(x)&&e!==``){let r=n.slice(3);t[r]=e.split(`,`).map(e=>{try{return decodeURIComponent(e)}catch{return e}})}}),Object.keys(t).length>0?t:void 0}function C(e,t){let n=new URLSearchParams(e);for(let[e,r]of Object.entries(t)){let t=x+e;r&&r.length>0?n.set(t,r.map(e=>encodeURIComponent(String(e))).join(`,`)):n.delete(t)}return n}var w=r();function T(e){return Array.isArray(e?.columns)&&e.columns.length>0}function E(e,t){let n=e?.listViews||e?.list_views||{},r=(t?[n[`${e?.name}.${t}`],n[t],...t==="default"||t===`list`?[e?.list]:[]]:[e?.list,...Object.values(n)]).filter(Boolean);return r.find(T)??r[0]}function D(e,t){let n=n=>t?.orgAttribution&&e?.fields?.organization_id&&!n.includes(`organization_id`)?[...n,`organization_id`]:n,r=e?.highlightFields;if(Array.isArray(r)&&r.length>0)return n(r.filter(t=>e.fields?.[t]));let i=e?.fields;return i&&typeof i==`object`?n(Object.entries(i).filter(([e,t])=>t&&!t.hidden&&!o(e,t)).map(([e])=>e).slice(0,6)):[]}function O(e,t){let n=e?.fields;if(!(!n||typeof n!=`object`))return Object.entries(n).find(([e,n])=>n&&!n.hidden&&!o(e,n)&&t(e,n))?.[0]}var k=new Set([`select`,`multiselect`,`radio`,`enum`,`boolean`]),A=new Set([`date`,`datetime`,`time`]),j=new Set([`image`,`file`,`attachment`,`avatar`,`photo`]);function M(e){let t=O(e,(e,t)=>k.has(t.type))??O(e,e=>/status|stage|state|priority|category|kind/i.test(e));return t?{groupByField:t}:void 0}function N(e){return O(e,(e,t)=>A.has(t.type))??O(e,e=>/date|due|start|end|deadline|schedule/i.test(e))}function P(e){let t=N(e);return t?{startDateField:t}:void 0}function F(e){let t=O(e,(e,t)=>j.has(t.type));return t?{coverField:t}:void 0}var I=new Set([`location`,`geo`,`geolocation`,`geopoint`,`point`]);function L(e){let t=O(e,(e,t)=>A.has(t.type)&&/start|begin|kickoff/i.test(e))??O(e,(e,t)=>A.has(t.type));if(!t)return;let n=O(e,(e,n)=>A.has(n.type)&&e!==t&&/end|due|finish|deadline|close/i.test(e))??O(e,(e,n)=>A.has(n.type)&&e!==t);if(!n)return;let r=O(e,(e,t)=>(t.type===`number`||t.type===`percent`)&&/progress|percent|complete/i.test(e));return{startDateField:t,endDateField:n,...r?{progressField:r}:{}}}function R(e){let t=O(e,(e,t)=>I.has(t.type))??O(e,e=>/location|address|geo|coords?|place|venue/i.test(e));return t?{locationField:t}:void 0}function z({page:e,className:r,onConfigChange:i,reserveEditAffordance:a}){let{t:o}=c(),{objects:y}=s(),x=l(),O=t(),[k,A]=n(),j=b()===`group`,[N]=v.useState(()=>S(new URLSearchParams(window.location.search))),I=v.useCallback(e=>{A(t=>C(t,e),{replace:!0})},[A]),z=e?.interfaceConfig||{},B=v.useMemo(()=>(y||[]).find(e=>e.name===z.source),[y,z.source]),V=v.useMemo(()=>E(B,z.sourceView),[B,z.sourceView]),H=z.recordAction===`page`||z.recordAction===`modal`||z.recordAction===`none`?z.recordAction:`drawer`,U=v.useCallback(e=>`/apps/${window.location.pathname.split(`/`)[2]||``}/${z.source}/record/${encodeURIComponent(String(e))}`,[z.source]),W=u({navigation:{mode:H===`none`?`none`:H},objectName:z.source,onNavigate:e=>O(U(e))}),G=k.get(`recordId`),te=v.useCallback((e,t)=>{if(H===`none`)return;let n=e?.id??e?._id;if(t&&(t.metaKey||t.ctrlKey||t.button===1)&&n!=null){window.open(U(n),`_blank`);return}if((H===`drawer`||H===`modal`)&&n!=null){A(e=>{let t=new URLSearchParams(e);return t.set(`recordId`,String(n)),t});return}W.handleClick(e,t)},[H,U,W,A]),ne=v.useCallback(()=>{A(e=>{let t=new URLSearchParams(e);return t.delete(`recordId`),t})},[A]);v.useEffect(()=>{G&&!W.isOpen?W.open({id:G}):!G&&W.isOpen&&W.close()},[G]);let K=B?.name,q=!!V&&!T(V),J=V?.name??(z.sourceView?`${z.source}.${z.sourceView}`:void 0),[Y,X]=v.useState(null);v.useEffect(()=>{let e=!1;if(X(null),!(!K||!z.source||!q||!J))return(async()=>{try{let t=x,n=null;if(typeof t?.listViewOverrides==`function`)try{n=(await t.listViewOverrides(z.source))?.[J]??null}catch{}!T(n)&&typeof t?.getView==`function`&&(n=await t.getView(z.source,J)),!e&&n&&typeof n==`object`&&X(n)}catch{}})(),()=>{e=!0}},[K,z.source,z.sourceView,q,J,x]);let Z=v.useMemo(()=>Y?{...V,...Y}:V,[V,Y]),re=JSON.stringify(Z??null),Q=v.useMemo(()=>{if(!B)return;let e=Z||{},t=z.appearance??e.appearance,n=t?.allowedVisualizations||[],r=new Set(n),i=z.userActions||{},a=e.kanban??(r.has(`kanban`)?M(B):void 0),o=e.calendar??(r.has(`calendar`)?P(B):void 0),s=e.timeline??(r.has(`timeline`)?P(B):void 0),c=e.gallery??(r.has(`gallery`)?F(B):void 0),l=e.gantt??(r.has(`gantt`)?L(B):void 0),u=e.options?.map??(r.has(`map`)?R(B):void 0),d=[...Array.isArray(e.filter)?e.filter:[],...Array.isArray(z.filterBy)?z.filterBy:[]],f=T(z)?z.columns:T(e)?e.columns:D(B,{orgAttribution:j}),p=Array.isArray(z.sort)&&z.sort.length?z.sort:e.sort;return{type:`list-view`,objectName:B.name,viewType:n[0]??e.type??`grid`,columns:f,...d.length?{filter:d}:{},...p?.length?{sort:p}:{},grouping:e.grouping,rowColor:e.rowColor,pagination:e.pagination,searchableFields:e.searchableFields,emptyState:e.emptyState,kanban:a,calendar:o,gallery:c,timeline:s,gantt:l,...u||e.options?{options:{...e.options??{},...u?{map:u}:{}}}:{},userFilters:z.userFilters??e.userFilters,appearance:t,showViewSwitcher:n.length>1,showRecordCount:z.showRecordCount,addRecord:z.addRecord,userActions:{search:i.search!==!1,sort:i.sort!==!1,filter:i.filter===!0,rowHeight:i.rowHeight===!0,group:i.group===!0,hideFields:i.hideFields===!0,rowColor:i.rowColor===!0},allowExport:!1,inlineEdit:i.editInline===!0}},[K,re,z,j]);if(!B||!Q)return(0,w.jsx)(`div`,{className:`h-full flex items-center justify-center p-8`,children:(0,w.jsxs)(h,{children:[(0,w.jsx)(`div`,{className:`mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted`,children:(0,w.jsx)(m,{className:`h-6 w-6 text-muted-foreground`})}),(0,w.jsx)(g,{children:o(`empty.objectNotFound`,{defaultValue:`Object Not Found`})}),(0,w.jsx)(p,{children:o(`empty.interfacePageSourceMissing`,{defaultValue:`This interface page references "{{name}}", which is not available.`,name:z.source||`?`})})]})});let $=Array.isArray(z.buttons)&&z.buttons.length?z.buttons.map(e=>(B.actions||[]).find(t=>t?.name===e)).filter(Boolean).map(e=>({...e,locations:[`list_toolbar`]})):[];return(0,w.jsxs)(`div`,{className:r??`h-full flex flex-col`,"data-testid":`interface-list-page`,children:[(0,w.jsxs)(`div`,{className:`pl-4 pt-4 pb-2 shrink-0 flex items-start justify-between gap-3 ${a?`pr-12`:`pr-4`}`,children:[(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`h1`,{className:`text-lg font-semibold leading-tight`,children:typeof e.label==`string`?e.label:e.name}),typeof e.description==`string`&&e.description&&(0,w.jsx)(`p`,{className:`text-sm text-muted-foreground mt-0.5`,children:e.description})]}),$.length>0&&(0,w.jsx)(`div`,{className:`shrink-0`,"data-testid":`interface-page-buttons`,children:(0,w.jsx)(d,{schema:{type:`action:bar`,location:`list_toolbar`,actions:$,size:`sm`,variant:`outline`}})})]}),(0,w.jsx)(`div`,{className:`flex-1 min-h-0 overflow-auto`,children:(0,w.jsx)(ee,{schema:Q,dataSource:x,userFilterSelections:N,onUserFilterSelectionsChange:I,onSortChange:i?e=>i({sort:e}):void 0,onColumnStateChange:i?e=>{e?.order?.length&&i({columns:e.order})}:void 0,onRowClick:H===`none`?void 0:te})}),W.isOverlay&&(0,w.jsx)(f,{...W,setIsOpen:e=>{e||ne()},title:typeof e.label==`string`?e.label:z.source||`Record`,children:e=>(0,w.jsx)(_,{objectNameOverride:z.source,recordIdOverride:String(e?.id??e?._id??G??``),embedded:!0,dataSource:x,objects:y,onEdit:()=>{}})})]})}export{M as a,b as c,F as i,P as n,C as o,D as r,S as s,z as t};
@@ -0,0 +1 @@
1
+ import{r as e}from"./vendor-react-BgOXCBVK.js";import{T as t}from"./framework-B8ndNKrd.js";import{$i as n,Xc as r,dn as i,el as a,fn as o,go as s,jr as c,ln as l,na as u,un as d}from"./ui-components-mPgY5chB.js";var f=e(),p={config:{icon:u,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:s,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:u,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:r,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:n,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 m({managedBy:e,label:n,className:r}){let{t:s}=t();if(!e||e===`platform`)return null;let u=p[e];if(!u)return null;let m=u.icon,h=n??`better-auth`,g=s(`managedByBadge.${u.i18nKey}.short`,{defaultValue:u.short}),_=s(`managedByBadge.${u.i18nKey}.title`,{defaultValue:u.title}),v=s(`managedByBadge.${u.i18nKey}.body`,{defaultValue:u.body(h),provider:h});return(0,f.jsx)(i,{delayDuration:200,children:(0,f.jsxs)(l,{children:[(0,f.jsx)(o,{asChild:!0,children:(0,f.jsxs)(c,{variant:`outline`,"data-testid":`managed-by-badge`,"data-bucket":e,className:a(`gap-1 font-normal text-[11px] leading-none py-0.5 px-1.5 cursor-help`,u.tone,r),children:[(0,f.jsx)(m,{className:`h-3 w-3`,"aria-hidden":`true`}),(0,f.jsx)(`span`,{children:g})]})}),(0,f.jsxs)(d,{side:`bottom`,align:`start`,className:`max-w-xs text-xs leading-relaxed`,children:[(0,f.jsx)(`p`,{className:`font-semibold mb-1`,children:_}),(0,f.jsx)(`p`,{className:`text-muted-foreground`,children:v})]})]})})}export{m as t};
@@ -0,0 +1 @@
1
+ import{f as e,m as t,r as n}from"./vendor-react-BgOXCBVK.js";import{x as r}from"./infrastructure-ChmEYj6c.js";import{T as i}from"./framework-B8ndNKrd.js";import{Er as a,Tr as o,go as s,qr as c}from"./ui-components-mPgY5chB.js";var l={cloudUrl:``,singleEnvironment:!1,defaultOrgId:null,defaultEnvironmentId:null,features:{installLocal:!1,marketplace:!0,aiStudio:!0,autoPublishAiBuilds:!0,customDomain:!1,sso:!1},branding:{productName:`ObjectOS`,productShortName:`ObjectOS`,stage:`preview`,brandColor:`#4F46E5`,pwaThemeColor:`#4f46e5`}},u=[`preview`,`beta`,`ga`];function d(e){return typeof e==`string`&&u.includes(e)}var f={...l};function p(e){f={...f,...e,features:{...f.features,...e.features??{}},branding:{...f.branding,...e.branding??{}}}}async function m(e=``){let t=(e||``).replace(/\/+$/,``);try{let e=await fetch(`${t}/api/v1/runtime/config`,{credentials:`include`,headers:{Accept:`application/json`}});if(!e.ok)return;let n=await e.json();if(!n||typeof n!=`object`)return;p({cloudUrl:typeof n.cloudUrl==`string`?n.cloudUrl.replace(/\/+$/,``):f.cloudUrl,singleEnvironment:!!n.singleEnvironment,defaultOrgId:n.defaultOrgId??f.defaultOrgId??null,defaultEnvironmentId:n.defaultEnvironmentId??f.defaultEnvironmentId??null,features:n.features?{installLocal:!!n.features.installLocal,marketplace:n.features.marketplace!==!1,aiStudio:n.features.aiStudio!==!1,autoPublishAiBuilds:n.features.autoPublishAiBuilds!==!1,customDomain:n.features.customDomain===!0,sso:n.features.sso===!0}:f.features,branding:n.branding?{productName:typeof n.branding.productName==`string`&&n.branding.productName.trim()?n.branding.productName.trim():f.branding.productName,productShortName:typeof n.branding.productShortName==`string`&&n.branding.productShortName.trim()?n.branding.productShortName.trim():f.branding.productShortName,stage:d(n.branding.stage)?n.branding.stage:f.branding.stage,logoUrl:typeof n.branding.logoUrl==`string`&&n.branding.logoUrl.trim()?n.branding.logoUrl.trim():f.branding.logoUrl,faviconUrl:typeof n.branding.faviconUrl==`string`&&n.branding.faviconUrl.trim()?n.branding.faviconUrl.trim():f.branding.faviconUrl,brandColor:typeof n.branding.brandColor==`string`&&n.branding.brandColor.trim()?n.branding.brandColor.trim():f.branding.brandColor,pwaDescription:typeof n.branding.pwaDescription==`string`&&n.branding.pwaDescription.trim()?n.branding.pwaDescription.trim():f.branding.pwaDescription,pwaThemeColor:typeof n.branding.pwaThemeColor==`string`&&n.branding.pwaThemeColor.trim()?n.branding.pwaThemeColor.trim():f.branding.pwaThemeColor}:f.branding})}catch{}}function h(){return f}function g(){return f.branding?.productName||`ObjectOS`}function _(){return f.branding?.productShortName||g()}function v(){return f.branding?.stage??`preview`}function y(){return f.branding?.brandColor||`#4F46E5`}function b(){return f.branding?.logoUrl}function x(){return f.branding?.faviconUrl}function S(){return f.branding?.pwaDescription||`${g()} — runtime console`}function C(){return f.branding?.pwaThemeColor||y()}function w(){return f.cloudUrl??``}var T=``.replace(/\/$/,``),E=`${T}/api/v1/marketplace`;function D(e){let t=r.get();return t?{...e,Authorization:`Bearer ${t}`}:e}function O(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 k(e,t){let n=await fetch(`${E}${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}=O(r,n),i=Error(typeof t==`string`?t:`${e}`);throw i.code=e,i.status=n.status,i}return r?.data??r}async function A(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 k(`/packages${n?`?${n}`:``}`)}async function j(e){return k(`/packages/${encodeURIComponent(e)}`)}async function M(e){if(w()){let t=await fetch(`/api/v1/cloud-connection/install`,{method:`POST`,credentials:`include`,headers:D({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}=O(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(`${T}/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=O(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 N(){let e=w()||T,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 P(){let e=w()||T,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 F(e){return`${w()||`https://cloud.objectos.app`}/apps/cloud-control/sys_package/${encodeURIComponent(e)}`}function I(){return`${w()||`https://cloud.objectos.app`}/apps/cloud-control/sys_environment`}async function L(e,t){if(!e)return null;if(w())try{let t=await fetch(`/api/v1/cloud-connection/installation?package_id=${encodeURIComponent(e)}`,{credentials:`include`,headers:D({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=T;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 R(e){if(!e)return{ok:!1,error:`installation id required`};let t=w()||T;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:O(r,n).message}:{ok:!0}}catch(e){return{ok:!1,error:e?.message||`Network error`}}}async function z(e){if(!e)return{ok:!1,error:`installation id required`};let t=w()||T;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:O(r,n).message}:{ok:!0,deleted:Number(r?.data?.deleted??0)}}catch(e){return{ok:!1,error:e?.message||`Network error`}}}async function B(){try{let e=await fetch(`${T}/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 V(e){let t=await fetch(`${E}/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}=O(n,t),i=Error(typeof r==`string`?r:`${e}`);throw i.code=e,i.status=t.status,i}return n?.data??n}async function H(){try{let e=await fetch(`${E}/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 U(){try{let e=await fetch(`${T}/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 W(e){let t=await fetch(`${E}/install-local/${encodeURIComponent(e)}`,{method:`DELETE`,credentials:`include`,headers:{Accept:`application/json`}});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(O(e,t).message)}}async function G(e,t){let n=await fetch(`${E}/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 K(e){return G(e,`reseed`)}function q(e){return G(e,`purge`)}var J=n();function Y(){let n=e(),{appName:r}=t(),{t:l}=i(),u=r?`/apps/${r}`:`/`;return(0,J.jsx)(`div`,{className:`container mx-auto max-w-2xl px-6 py-16`,children:(0,J.jsx)(o,{children:(0,J.jsxs)(a,{className:`flex flex-col items-center gap-4 py-12 text-center`,children:[(0,J.jsx)(`div`,{className:`rounded-full bg-muted p-3`,children:(0,J.jsx)(s,{className:`h-6 w-6 text-muted-foreground`})}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h2`,{className:`text-lg font-semibold`,children:l(`marketplace.accessDenied.title`)}),(0,J.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:l(`marketplace.accessDenied.description`)})]}),(0,J.jsx)(c,{variant:`outline`,onClick:()=>n(u),children:l(`marketplace.action.backHome`)})]})})})}export{g as C,h as D,C as E,m as O,v as S,S as T,R as _,j as a,x as b,N as c,H as d,A as f,K as g,z as h,L as i,P as l,q as m,F as n,V as o,B as p,I as r,M as s,Y as t,U as u,W as v,_ as w,b as x,w as y};
@@ -0,0 +1 @@
1
+ import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{f as n,m as r,r as i,y as a}from"./vendor-react-BgOXCBVK.js";import{_ as o}from"./infrastructure-ChmEYj6c.js";import{Ar as s,T as c}from"./framework-B8ndNKrd.js";import{Er as l,Jc as u,Ni as d,Or as f,Ss as p,Tr as m,ac as h,bi as g,jr as _,kr as v,pn as y,qr as b,va as x}from"./ui-components-mPgY5chB.js";import{d as S,t as C,u as w,v as T}from"./MarketplaceAccessDenied-t8A0k9OX.js";var E=e(a(),1),D=i();function O(){let e=n(),{appName:t}=r(),i=o(),{t:a,language:s}=c(),u=t?`/apps/${t}`:``,[d,O]=(0,E.useState)([]),[k,A]=(0,E.useState)(`local`),[j,M]=(0,E.useState)(!0),[N,P]=(0,E.useState)(null),[F,I]=(0,E.useState)(null),L=async()=>{M(!0);try{let e=await w();e.connected?(A(`cloud`),O(e.items)):(A(`local`),O(await S()))}finally{M(!1)}};(0,E.useEffect)(()=>{L()},[]);let R=async e=>{if(confirm(a(`marketplace.uninstall.confirm`,{manifestId:e.manifestId,version:e.version}))){P(e.manifestId),I(null);try{await T(e.manifestId),I({ok:!0,message:a(`marketplace.uninstall.successInList`,{manifestId:e.manifestId})}),await L()}catch(e){I({ok:!1,message:e?.message??String(e)})}finally{P(null)}}};return i?(0,D.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,D.jsx)(`div`,{className:`flex justify-end`,children:(0,D.jsxs)(b,{variant:`outline`,size:`sm`,onClick:()=>void L(),disabled:j,children:[(0,D.jsx)(x,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),a(`marketplace.refresh`)]})}),F&&(0,D.jsx)(`div`,{className:`rounded-md border p-3 text-sm ${F.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,D.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,D.jsx)(h,{className:`h-4 w-4 mt-0.5 shrink-0`,"aria-hidden":`true`}),(0,D.jsx)(`div`,{children:F.message})]})}),j&&d.length===0?(0,D.jsx)(`div`,{className:`grid gap-3`,children:Array.from({length:3}).map((e,t)=>(0,D.jsx)(y,{className:`h-20 w-full`},t))}):d.length===0?(0,D.jsxs)(`div`,{className:`text-center py-12 text-sm text-muted-foreground border rounded-md`,children:[(0,D.jsx)(`p`,{children:a(`marketplace.installedEmpty`)}),(0,D.jsx)(b,{variant:`link`,className:`mt-2`,onClick:()=>e(`${u}/system/marketplace`),children:a(`marketplace.browseLink`)})]}):(0,D.jsx)(`div`,{className:`grid gap-3`,children:d.map(t=>(0,D.jsxs)(m,{children:[(0,D.jsxs)(f,{className:`flex flex-row items-start justify-between gap-3 pb-2`,children:[(0,D.jsxs)(`div`,{className:`min-w-0`,children:[(0,D.jsxs)(v,{className:`text-base truncate flex items-center gap-2`,children:[t.manifestId,(0,D.jsx)(_,{variant:`outline`,children:a(`marketplace.versionBadge`,{version:t.version})})]}),(0,D.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1 flex flex-wrap gap-x-3 gap-y-1`,children:[(0,D.jsx)(`span`,{children:a(`marketplace.installedAt`,{when:new Date(t.installedAt).toLocaleString(s||void 0)})}),t.installedBy&&(0,D.jsx)(`span`,{children:a(`marketplace.installedBy`,{user:t.installedBy})}),(0,D.jsxs)(`span`,{children:[a(`marketplace.installedPackageId`),` `,(0,D.jsx)(`code`,{className:`font-mono`,children:t.packageId})]})]})]}),(0,D.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,D.jsxs)(b,{variant:`ghost`,size:`sm`,onClick:()=>e(`${u}/system/marketplace/${t.packageId}`),children:[(0,D.jsx)(p,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),a(`marketplace.action.details`)]}),k===`local`&&(0,D.jsxs)(b,{variant:`outline`,size:`sm`,onClick:()=>void R(t),disabled:N===t.manifestId,children:[(0,D.jsx)(g,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),N===t.manifestId?a(`marketplace.action.uninstalling`):a(`marketplace.action.uninstall`)]})]})]}),k===`local`&&(0,D.jsx)(l,{className:`pt-0 text-xs text-muted-foreground`,dangerouslySetInnerHTML:{__html:a(`marketplace.cachedAs`,{path:`.objectstack/installed-packages/${t.manifestId.replace(/[^a-zA-Z0-9._-]/g,`_`)}.json`})}})]},t.manifestId))}),(0,D.jsx)(`p`,{className:`text-xs text-muted-foreground border-t pt-4`,dangerouslySetInnerHTML:{__html:a(`marketplace.installedAdditiveNote`)}})]}):(0,D.jsx)(C,{})}s.register(`marketplace:installed-list`,()=>(0,D.jsx)(O,{}),{namespace:`app-shell`,label:`Installed Marketplace Packages`,category:`plugin`,inputs:[]});var k=t({MarketplaceInstalledPage:()=>A});function A(){let e=n(),{appName:t}=r(),{t:i}=c(),a=t?`/apps/${t}`:``;return(0,D.jsxs)(`div`,{className:`flex flex-col gap-6 p-4 sm:p-6 max-w-5xl`,children:[(0,D.jsxs)(b,{variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>e(`${a}/system/marketplace`),children:[(0,D.jsx)(u,{className:`h-4 w-4 mr-1.5`,"aria-hidden":`true`}),i(`marketplace.back`)]}),(0,D.jsxs)(`div`,{children:[(0,D.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,D.jsx)(d,{className:`h-6 w-6 text-primary`,"aria-hidden":`true`}),(0,D.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold tracking-tight`,children:i(`marketplace.installedTitle`)})]}),(0,D.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,dangerouslySetInnerHTML:{__html:i(`marketplace.installedSubtitle`)}})]}),(0,D.jsx)(O,{})]})}export{k as t};