@objectstack/console 16.1.0 → 17.0.0-rc.1

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 (220) hide show
  1. package/CHANGELOG.md +1096 -0
  2. package/README.md +8 -3
  3. package/dist/.objectui-sha +1 -1
  4. package/dist/assets/AdapterProvider-DCL4oNgv.js +2 -0
  5. package/dist/assets/{AiPendingActionsPage-C-QNNI9k.js → AiPendingActionsPage-BvvDIWEC.js} +1 -1
  6. package/dist/assets/ApiConsolePage-Dvr5-g2X.js +1 -0
  7. package/dist/assets/{AppDocsIndex-B4Vi3Lmx.js → AppDocsIndex-Ohwtpos8.js} +1 -1
  8. package/dist/assets/{AppManagementPage-l7bxl-aE.js → AppManagementPage-DhsvWTeZ.js} +1 -1
  9. package/dist/assets/ApprovalsInboxPage-BfaGtcxV.js +1 -0
  10. package/dist/assets/AuditLogPage-D_09WrLX.js +1 -0
  11. package/dist/assets/ComponentNavView-C6J3w2IE.js +1 -0
  12. package/dist/assets/CreateViewDialog-R7kwDoaF.js +1 -0
  13. package/dist/assets/DashboardView-B-5HkqOl.js +1 -0
  14. package/dist/assets/{DeveloperHubPage-CnVzl2hV.js → DeveloperHubPage-p9oQnZuU.js} +1 -1
  15. package/dist/assets/{DocShell-D83T8iWF.js → DocShell-B8d7-ARz.js} +1 -1
  16. package/dist/assets/ExpressionProvider-BLhGrCBw.js +1 -0
  17. package/dist/assets/FlowRunsPage-DzZmtrDe.js +1 -0
  18. package/dist/assets/{IntegrationsPage-DI3vZb2A.js → IntegrationsPage-DzBKAEgn.js} +2 -2
  19. package/dist/assets/InterfaceListPage-C_M0U8ns.js +1 -0
  20. package/dist/assets/{ManagedByBadge-D8aPzQJc.js → ManagedByBadge-DWtOXcFq.js} +1 -1
  21. package/dist/assets/MarketplaceAccessDenied-C4Yrv4Q7.js +1 -0
  22. package/dist/assets/{MarketplaceInstalledPage-BdLyXA35.js → MarketplaceInstalledPage-B6cbDzf8.js} +1 -1
  23. package/dist/assets/MarketplacePackagePage-D0dT7D3x.js +4 -0
  24. package/dist/assets/MarketplacePage-CtvxvBmw.js +1 -0
  25. package/dist/assets/{MetadataInspector-CcRGESLn.js → MetadataInspector-9pMeoWpd.js} +1 -1
  26. package/dist/assets/{MetadataProvider-CjWp0ChY.js → MetadataProvider-Y0oNNDXh.js} +1 -1
  27. package/dist/assets/{MonacoImpl-_--K1JSa.js → MonacoImpl-DkEpEa5A.js} +1 -1
  28. package/dist/assets/ObjectDataPage-B8pGSNRJ.js +1 -0
  29. package/dist/assets/PageView-BBJl1RzL.js +1 -0
  30. package/dist/assets/ProfilePage-BL4aVTUO.js +1 -0
  31. package/dist/assets/{PublicFormsPage-BVEV96-N.js → PublicFormsPage-C-BWDI8O.js} +1 -1
  32. package/dist/assets/RecordDetailView-BYYpDJSj.js +9 -0
  33. package/dist/assets/RecordFormPage-SLtEal-m.js +1 -0
  34. package/dist/assets/ReportDefaultInspector-B3KEMC9M.js +3 -0
  35. package/dist/assets/ReportView-B3kMHgHe.js +2 -0
  36. package/dist/assets/{SearchResultsPage-CjSZ416m.js → SearchResultsPage-0eeyyaj-.js} +1 -1
  37. package/dist/assets/SettingsHub-BVhaidAC.js +1 -0
  38. package/dist/assets/SettingsView-D2klvVKS.js +1 -0
  39. package/dist/assets/{SystemHubPage-C5Widsf0.js → SystemHubPage-CHcrvd-n.js} +1 -1
  40. package/dist/assets/{abnfDiagram-VRR7QNED-BM2gIA2H.js → abnfDiagram-VRR7QNED-D2Rn6aHa.js} +1 -1
  41. package/dist/assets/{architectureDiagram-ZJ3FMSHR-wyeItulr.js → architectureDiagram-ZJ3FMSHR-DX6q2vGN.js} +1 -1
  42. package/dist/assets/{assistantBus-CbDb2Mju.js → assistantBus-BqJT7SGk.js} +1 -1
  43. package/dist/assets/blockDiagram-677ZJIJ3-T2IDNrvJ.js +132 -0
  44. package/dist/assets/{c4Diagram-LMCZKHZV-CZhtNS_4.js → c4Diagram-LMCZKHZV-B98pIIbx.js} +1 -1
  45. package/dist/assets/channel-BovwC1_7.js +1 -0
  46. package/dist/assets/{chunk-32BRIVSS-CjQ2uFsO.js → chunk-32BRIVSS-CYNomNWc.js} +1 -1
  47. package/dist/assets/{chunk-52WLFC77-BBx3j8yk.js → chunk-52WLFC77-DtGIB0uV.js} +2 -2
  48. package/dist/assets/{chunk-C7G6YPKG-CrZlt4pv.js → chunk-C7G6YPKG-yJXKQ2Sz.js} +1 -1
  49. package/dist/assets/{chunk-EX3LRPZG-x9nXH4xc.js → chunk-EX3LRPZG-BtAjfq6C.js} +1 -1
  50. package/dist/assets/{chunk-FWX5IMBZ-cqzp-iMz.js → chunk-FWX5IMBZ-C4k19ShS.js} +1 -1
  51. package/dist/assets/{chunk-HOUHSVGY-Bfkm0El3.js → chunk-HOUHSVGY-BuKclK6G.js} +1 -1
  52. package/dist/assets/chunk-ICXQ74PX-OP102czk.js +2 -0
  53. package/dist/assets/{chunk-MOJQB5TN-K_QM_tTs.js → chunk-MOJQB5TN-CToOzrGu.js} +1 -1
  54. package/dist/assets/{chunk-OGEWGWER-CSkoB3Mi.js → chunk-OGEWGWER-9rMC3Zdz.js} +1 -1
  55. package/dist/assets/{chunk-PUDLZKDR-BUt9iFAU.js → chunk-PUDLZKDR-Bte-Y5BM.js} +1 -1
  56. package/dist/assets/{chunk-Q4XR5HBZ-B99LraLe.js → chunk-Q4XR5HBZ-B1-bRF4T.js} +1 -1
  57. package/dist/assets/{chunk-RYQCIY6F-CdJb5y8u.js → chunk-RYQCIY6F-DX0uHAt-.js} +1 -1
  58. package/dist/assets/{chunk-V7JOEXUC-CzVnJgzj.js → chunk-V7JOEXUC-3Qai_qvf.js} +1 -1
  59. package/dist/assets/chunk-VAUOI2AC-B2LdZG5j.js +1 -0
  60. package/dist/assets/{chunk-VR4S4FIN-B2IyRlJ4.js → chunk-VR4S4FIN-C8tYB3zk.js} +1 -1
  61. package/dist/assets/{chunk-WYO6CB5R-C0_XZtpj.js → chunk-WYO6CB5R-chyhiVml.js} +1 -1
  62. package/dist/assets/chunk-XXDRQBXY-mZd7tFTQ.js +1 -0
  63. package/dist/assets/{chunk-ZGVPDNZ5-Bq7O6ELQ.js → chunk-ZGVPDNZ5-BHJQa9Yh.js} +1 -1
  64. package/dist/assets/classDiagram-OUVF2IWQ-opUQX7yT.js +1 -0
  65. package/dist/assets/classDiagram-v2-EOCWNBFH-opUQX7yT.js +1 -0
  66. package/dist/assets/{cose-bilkent-JH36ORCC-DqKYLwMN.js → cose-bilkent-JH36ORCC-wNn6_7gi.js} +1 -1
  67. package/dist/assets/{createDerive-DGOUbVlZ.js → createDerive-DDuw-xzg.js} +1 -1
  68. package/dist/assets/{cynefinDiagram-TSTJHNR4-CFApUIdk.js → cynefinDiagram-TSTJHNR4-BpiN-sI9.js} +1 -1
  69. package/dist/assets/{dagre-VKFMJZFB-D4HlgjaA.js → dagre-VKFMJZFB-D4jpVOw8.js} +1 -1
  70. package/dist/assets/data-adapter-DJl5PvjF.js +17 -0
  71. package/dist/assets/{diagram-FQU43EPY-BcnxfyH-.js → diagram-FQU43EPY-DnGyLgYE.js} +1 -1
  72. package/dist/assets/{diagram-G47NLZAW-CJxJUVu9.js → diagram-G47NLZAW-BSDChPeN.js} +1 -1
  73. package/dist/assets/{diagram-NH7WQ7WH-DmBVlyYR.js → diagram-NH7WQ7WH-Jir-M8yF.js} +1 -1
  74. package/dist/assets/{diagram-OA4YK3LP-CkaF9SQg.js → diagram-OA4YK3LP-DG1np1W1.js} +1 -1
  75. package/dist/assets/{diagram-WEI45ONY-8cpfjoG3.js → diagram-WEI45ONY-DRm_SlrH.js} +1 -1
  76. package/dist/assets/{dist-B4b49_J4.js → dist-Bq1W1ETM.js} +1 -1
  77. package/dist/assets/{ebnfDiagram-CCIWWBDH-kX04JbNj.js → ebnfDiagram-CCIWWBDH-twfLoKY3.js} +1 -1
  78. package/dist/assets/{erDiagram-Q63AITRT-GjnOtXoL.js → erDiagram-Q63AITRT-CABXVpgy.js} +1 -1
  79. package/dist/assets/flowDiagram-23GEKE2U-DxGbSmxA.js +1 -0
  80. package/dist/assets/framework-xOBpLspS.js +8 -0
  81. package/dist/assets/{ganttDiagram-NO4QXBWP-7HpPOGwX.js → ganttDiagram-NO4QXBWP-DRXGi_1T.js} +2 -2
  82. package/dist/assets/getIcon-yTDDbwhX.js +1 -0
  83. package/dist/assets/{gitGraphDiagram-IHSO6WYX-BgBKFUwZ.js → gitGraphDiagram-IHSO6WYX-BtlNUS9M.js} +1 -1
  84. package/dist/assets/{highlighted-body-OFNGDK62-CDb4f2Sa.js → highlighted-body-OFNGDK62-BNY8_Ou8.js} +1 -1
  85. package/dist/assets/i18n-CWXRbuYk.js +9 -0
  86. package/dist/assets/index-ByFHLPS0.js +2 -0
  87. package/dist/assets/index-QgmPkr95.css +2 -0
  88. package/dist/assets/{infoDiagram-FWYZ7A6U-CTsG_9Mj.js → infoDiagram-FWYZ7A6U-CrCNJ5GX.js} +1 -1
  89. package/dist/assets/infrastructure-EMqAhl6J.js +3 -0
  90. package/dist/assets/{ishikawaDiagram-FXEZZL3T-DgMu6-jd.js → ishikawaDiagram-FXEZZL3T-aBCt2dnS.js} +1 -1
  91. package/dist/assets/{journeyDiagram-5HDEW3XC-CKI4PBJp.js → journeyDiagram-5HDEW3XC-CQrIuFhF.js} +1 -1
  92. package/dist/assets/{kanban-definition-HUTT4EX6-ChvGKWDx.js → kanban-definition-HUTT4EX6-Bm4snCw1.js} +1 -1
  93. package/dist/assets/maplibre-gl-Bee-HVIi.js +801 -0
  94. package/dist/assets/mermaid-GHXKKRXX-BN2PjcSK.js +1 -0
  95. package/dist/assets/{mermaid-parser.core-B2-C9kB8.js → mermaid-parser.core-BPoagdtX.js} +1 -1
  96. package/dist/assets/mermaid.core-C5ZaZqXX.js +10 -0
  97. package/dist/assets/metadata-admin-lW4yChcf.js +25 -0
  98. package/dist/assets/{mindmap-definition-LN4V7U3C-BSAiSefe.js → mindmap-definition-LN4V7U3C-CzSOJVqY.js} +1 -1
  99. package/dist/assets/{pegDiagram-2B236MQR-BUG9TR1Z.js → pegDiagram-2B236MQR-DPkw74l3.js} +1 -1
  100. package/dist/assets/{pieDiagram-ENE6RG2P-CqKv9PBi.js → pieDiagram-ENE6RG2P-Bnny8SeQ.js} +3 -3
  101. package/dist/assets/plugin-calendar-Dikj_A8Y.js +1 -0
  102. package/dist/assets/plugin-charts-_11K-vFF.js +7 -0
  103. package/dist/assets/plugin-chatbot-D5bVXJ_O.js +120 -0
  104. package/dist/assets/plugin-dashboard-QnlQx94Y.js +6 -0
  105. package/dist/assets/plugin-form-C8ibDrVW.js +1 -0
  106. package/dist/assets/plugin-gantt-ION4WU11.js +63 -0
  107. package/dist/assets/plugin-grid-BbCjdxhg.js +8 -0
  108. package/dist/assets/plugin-kanban-DMXe4mrr.js +1 -0
  109. package/dist/assets/{plugin-map-CsMXqW6n.css → plugin-map-CZaqx61F.css} +1 -1
  110. package/dist/assets/plugin-map-ZzwBPooc.js +1 -0
  111. package/dist/assets/{plugin-markdown-By5yxTCK.js → plugin-markdown-DWlAZYfS.js} +1 -1
  112. package/dist/assets/plugin-report-4ufmhN37.js +59 -0
  113. package/dist/assets/plugin-timeline-CxuwO6Sj.js +1 -0
  114. package/dist/assets/plugin-tree-CqFsNYBt.js +1 -0
  115. package/dist/assets/plugin-view-BtrrVg8d.js +1 -0
  116. package/dist/assets/plugins-views-DuVwtJw-.js +4 -0
  117. package/dist/assets/{quadrantDiagram-ABIIQ3AL-DyfgU6pe.js → quadrantDiagram-ABIIQ3AL-DUB4EjfP.js} +1 -1
  118. package/dist/assets/{railroadDiagram-RFXS5EU6-DOOVaoMM.js → railroadDiagram-RFXS5EU6-DSfLwOL9.js} +1 -1
  119. package/dist/assets/{requirementDiagram-TGXJPOKE-B0370dfa.js → requirementDiagram-TGXJPOKE-BUoxthLY.js} +1 -1
  120. package/dist/assets/{runtime-metadata-persistence-CEZY_PIp.js → runtime-metadata-persistence-D0qPKjRP.js} +1 -1
  121. package/dist/assets/{sankeyDiagram-HTMAVEWB-BAioZail.js → sankeyDiagram-HTMAVEWB-CkjIusFl.js} +2 -2
  122. package/dist/assets/{sequenceDiagram-DBY2YBRQ-B20vuf87.js → sequenceDiagram-DBY2YBRQ-DlUPbsBe.js} +1 -1
  123. package/dist/assets/{skeletons-D0Z3uPzj.js → skeletons-DBVC-R2R.js} +1 -1
  124. package/dist/assets/{src-YtGn_UVR.js → src-CEjEbVE_.js} +1 -1
  125. package/dist/assets/src-CLs1ObAx.js +19 -0
  126. package/dist/assets/{src-Cglm_8jd.js → src-CQ-hf48v.js} +2 -2
  127. package/dist/assets/src-Cz3xMnYk.js +1 -0
  128. package/dist/assets/{src-CKPhOIOh.js → src-DMTCYJgx.js} +1 -1
  129. package/dist/assets/{stateDiagram-2N3HPSRC-BScu2B9X.js → stateDiagram-2N3HPSRC-vPDzyRlO.js} +1 -1
  130. package/dist/assets/stateDiagram-v2-6OUMAXLB-USH3Z7UN.js +1 -0
  131. package/dist/assets/{swimlanes-5IMT3BWC-VepjEXMA.js → swimlanes-5IMT3BWC-mtpJqEnb.js} +1 -1
  132. package/dist/assets/swimlanesDiagram-G3AALYLV-CJNfyMoX.js +8 -0
  133. package/dist/assets/{timeline-definition-FHXFAJF6-CvpwpY5P.js → timeline-definition-FHXFAJF6-vFc3MiyA.js} +1 -1
  134. package/dist/assets/ui-components-C5rSjsFE.js +72 -0
  135. package/dist/assets/ui-layout-D13CmhwI.js +1 -0
  136. package/dist/assets/{use-book-data-CV2dCLgr.js → use-book-data-BJgo-RvZ.js} +1 -1
  137. package/dist/assets/{useOpenRecordList-BfKYZKMn.js → useOpenRecordList-DJ-uAshJ.js} +1 -1
  138. package/dist/assets/{usePackageL10n-DfeTyD2w.js → usePackageL10n-DM6mlODA.js} +1 -1
  139. package/dist/assets/useSettingsLabel-BJ1_MAmi.js +1 -0
  140. package/dist/assets/vendor-charts-BbCFozUm.js +67 -0
  141. package/dist/assets/{vendor-dndkit-DoG7p74h.js → vendor-dndkit-CJ2SkGrK.js} +1 -1
  142. package/dist/assets/{vendor-i18n-D2ce6sLS.js → vendor-i18n-ign3ofvT.js} +1 -1
  143. package/dist/assets/{vendor-icons-core-CO5pY7RP.js → vendor-icons-core-BuLgNLyS.js} +1 -1
  144. package/dist/assets/{vendor-markdown-DlkSIxwM.js → vendor-markdown-BgvCNR3X.js} +3 -3
  145. package/dist/assets/vendor-objectstack-ChpQDQzo.js +160 -0
  146. package/dist/assets/vendor-radix-DdNkQmkB.js +46 -0
  147. package/dist/assets/{vendor-react-BKSb6vFP.js → vendor-react-20ydC9aZ.js} +2 -2
  148. package/dist/assets/vendor-sentry-BwxF-feC.js +501 -0
  149. package/dist/assets/{vendor-ui-utils-D-WJ115h.js → vendor-ui-utils-CDPjN0GN.js} +1 -1
  150. package/dist/assets/{vennDiagram-L72KCM5P-DlCQcm_6.js → vennDiagram-L72KCM5P-NYy-CpuJ.js} +1 -1
  151. package/dist/assets/{wardleyDiagram-EHGQE667-mesER_Po.js → wardleyDiagram-EHGQE667-CB-LOOnu.js} +1 -1
  152. package/dist/assets/{xychartDiagram-FW5EYKEG-cODEcpNB.js → xychartDiagram-FW5EYKEG-C04Hz7Q2.js} +2 -2
  153. package/dist/index.html +6 -6
  154. package/package.json +3 -2
  155. package/dist/assets/AdapterProvider-CqW7TSvk.js +0 -1
  156. package/dist/assets/ApiConsolePage-DSvjQt5N.js +0 -1
  157. package/dist/assets/ApprovalsInboxPage-BV4PlaEv.js +0 -1
  158. package/dist/assets/AuditLogPage-ChJYd7GY.js +0 -1
  159. package/dist/assets/ComponentNavView-C4OkKu2y.js +0 -1
  160. package/dist/assets/CreateViewDialog-DwpQ8KvO.js +0 -1
  161. package/dist/assets/DashboardView-CuDS84Jp.js +0 -1
  162. package/dist/assets/ExpressionProvider-CyltvbX0.js +0 -1
  163. package/dist/assets/FlowRunsPage-BE8HeEGL.js +0 -1
  164. package/dist/assets/InterfaceListPage-BL7sW-SC.js +0 -1
  165. package/dist/assets/MarketplaceAccessDenied-B00hPOtj.js +0 -1
  166. package/dist/assets/MarketplacePackagePage-By15SZoJ.js +0 -4
  167. package/dist/assets/MarketplacePage-BKxIWeT_.js +0 -1
  168. package/dist/assets/ObjectDataPage-DiQJROyN.js +0 -1
  169. package/dist/assets/PageView-CJY74CxE.js +0 -1
  170. package/dist/assets/ProfilePage-CjxWQMQA.js +0 -1
  171. package/dist/assets/RecordDetailView-DpRJpP6t.js +0 -9
  172. package/dist/assets/RecordFormPage-BMs8Sa4p.js +0 -1
  173. package/dist/assets/ReportDefaultInspector-BpXXGsGu.js +0 -3
  174. package/dist/assets/ReportView-C0fP1MLd.js +0 -2
  175. package/dist/assets/SettingsHub-DhWm94wF.js +0 -1
  176. package/dist/assets/SettingsView-Dd0B_UlN.js +0 -1
  177. package/dist/assets/blockDiagram-677ZJIJ3-BybRqe6u.js +0 -132
  178. package/dist/assets/channel-BAx__6e1.js +0 -1
  179. package/dist/assets/chunk-ICXQ74PX-WsDRuBhL.js +0 -2
  180. package/dist/assets/chunk-VAUOI2AC-HYDQgaka.js +0 -1
  181. package/dist/assets/chunk-XXDRQBXY-CtU5D9C8.js +0 -1
  182. package/dist/assets/classDiagram-OUVF2IWQ-DiVkGMIZ.js +0 -1
  183. package/dist/assets/classDiagram-v2-EOCWNBFH-DiVkGMIZ.js +0 -1
  184. package/dist/assets/data-adapter-Dz0aiaG6.js +0 -9
  185. package/dist/assets/flowDiagram-23GEKE2U-CpcHvuan.js +0 -1
  186. package/dist/assets/framework-BqSgd3ir.js +0 -8
  187. package/dist/assets/getIcon-BZn0biL3.js +0 -1
  188. package/dist/assets/i18n-SjY5NweX.js +0 -9
  189. package/dist/assets/index-CgfL2xiq.js +0 -2
  190. package/dist/assets/index-De6xiiED.css +0 -2
  191. package/dist/assets/infrastructure-C6pQBkbt.js +0 -3
  192. package/dist/assets/maplibre-gl-R0DO2NBr.js +0 -748
  193. package/dist/assets/mermaid-GHXKKRXX-CWn_Hnds.js +0 -1
  194. package/dist/assets/mermaid.core-CskcjgHM.js +0 -10
  195. package/dist/assets/metadata-admin-BRw86sJ-.js +0 -25
  196. package/dist/assets/plugin-calendar-C4ZXapZt.js +0 -1
  197. package/dist/assets/plugin-charts-D5Lb0q0u.js +0 -7
  198. package/dist/assets/plugin-chatbot-dJq9DS4J.js +0 -120
  199. package/dist/assets/plugin-dashboard-Cr7jkjy7.js +0 -6
  200. package/dist/assets/plugin-form-D4kHsl47.js +0 -1
  201. package/dist/assets/plugin-gantt-8LuVErg3.js +0 -63
  202. package/dist/assets/plugin-grid-CDpGckvD.js +0 -8
  203. package/dist/assets/plugin-kanban-Xwny03DA.js +0 -1
  204. package/dist/assets/plugin-map-CVC4XDJz.js +0 -1
  205. package/dist/assets/plugin-report-DwvPiTGE.js +0 -59
  206. package/dist/assets/plugin-timeline-D2Sep4-I.js +0 -1
  207. package/dist/assets/plugin-tree-Doah8whm.js +0 -1
  208. package/dist/assets/plugin-view-DZXBuUS9.js +0 -1
  209. package/dist/assets/plugins-views-BGSw-KmQ.js +0 -4
  210. package/dist/assets/src-DPHY2JFl.js +0 -1
  211. package/dist/assets/src-RHOMTPFk.js +0 -19
  212. package/dist/assets/stateDiagram-v2-6OUMAXLB-9fyTUlZR.js +0 -1
  213. package/dist/assets/swimlanesDiagram-G3AALYLV-i6IYZT2a.js +0 -8
  214. package/dist/assets/types-BR_9hYa5.js +0 -1
  215. package/dist/assets/ui-components-Ci5ufF7g.js +0 -72
  216. package/dist/assets/ui-layout-D_8Fal4s.js +0 -1
  217. package/dist/assets/vendor-charts-HLBqza5P.js +0 -67
  218. package/dist/assets/vendor-objectstack-CjHQG7Oa.js +0 -114
  219. package/dist/assets/vendor-radix-B1fu-dZi.js +0 -46
  220. package/dist/assets/vendor-sentry-BFtl-K03.js +0 -501
@@ -0,0 +1,4 @@
1
+ import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{a as n,m as r,r as i,y as a}from"./vendor-react-20ydC9aZ.js";import{n as o,t as s}from"./infrastructure-EMqAhl6J.js";import{v as c,x as l}from"./vendor-objectstack-ChpQDQzo.js";import{A as u,C as d,Cn as f,Dn as p,En as m,F as h,In as g,Ln as _,Nn as v,O as y,On as b,Pn as x,Sn as S,T as C,Tn as w,X as T,cn as E,et as D,f as O,fn as ee,ft as k,gt as te,h as A,ht as j,jn as M,k as N,kn as P,ot as F,s as I,st as ne,un as L,ut as re,vt as ie,w as ae,wn as R,y as oe}from"./framework-xOBpLspS.js";import{$ as se,$c as ce,$i as le,$o as z,Aa as ue,Ac as B,Ai as de,Ar as fe,At as V,B as H,Bc as U,Br as W,C as pe,Ca as me,Cn as he,Cr as ge,D as _e,Di as ve,Do as ye,Dr as be,E as xe,Er as Se,Es as G,F as Ce,Fi as K,Fr as we,Gs as Te,I as q,Ia as Ee,Ii as J,Io as De,Ir as Oe,Ji as ke,Kc as Ae,Ki as je,Kr as Me,L as Ne,Lr as Pe,Mc as Fe,Mi as Ie,Mr as Le,Mt as Re,N as ze,Ni as Be,Nr as Y,O as Ve,Oa as He,Oo as Ue,Or as We,P as Ge,Pc as Ke,Pr as qe,Ps as Je,Q as Ye,Qc as Xe,Qi as Ze,R as Qe,Rc as $e,Ro as et,Sn as tt,St as nt,Ta as rt,Ti as it,Tn as at,To as ot,Tr as st,Ui as ct,V as lt,Vc as ut,Vr as dt,Wi as ft,Wr as pt,Xa as mt,Yc as ht,Zc as gt,_c as _t,_n as vt,_o as yt,_r as bt,ac as xt,ai as St,an as Ct,ba as wt,br as Tt,ci as Et,cn as Dt,co as Ot,d as kt,di as At,dn as jt,ea as Mt,el as Nt,fs as Pt,g as Ft,ga as It,gn as Lt,gt as Rt,h as zt,hc as Bt,hn as Vt,hr as Ht,hs as Ut,ht as Wt,ic as Gt,il as Kt,in as qt,it as Jt,jc as Yt,jr as Xt,jt as Zt,kc as Qt,ko as $t,kr as en,ks as tn,kt as nn,lo as rn,mn as an,mr as on,ms as sn,mt as cn,n as ln,nn as un,ns as dn,nt as fn,oc as pn,on as mn,oo as hn,pa as gn,pn as _n,pr as vn,ps as yn,qc as X,qi as bn,rn as xn,ro as Sn,sc as Cn,sn as wn,so as Tn,ta as En,tl as Dn,tn as On,to as kn,un as An,vr as jn,w as Mn,wn as Nn,wr as Pn,xa as Fn,xr as In,ys as Ln,z as Rn,zc as zn,zr as Z}from"./ui-components-C5rSjsFE.js";import{s as Bn}from"./plugin-grid-BbCjdxhg.js";var Q=e(a(),1),$=i(),Vn={grid:(0,$.jsx)(et,{className:`h-4 w-4`}),kanban:(0,$.jsx)(yt,{className:`h-4 w-4`}),gallery:(0,$.jsx)(Ue,{className:`h-4 w-4`}),calendar:(0,$.jsx)(_t,{className:`h-4 w-4`}),timeline:(0,$.jsx)(Ae,{className:`h-4 w-4`}),gantt:(0,$.jsx)(Be,{className:`h-4 w-4`}),map:(0,$.jsx)(kn,{className:`h-4 w-4`}),chart:(0,$.jsx)(Bt,{className:`h-4 w-4`}),tree:(0,$.jsx)(rn,{className:`h-4 w-4`})},Hn={grid:`Grid`,kanban:`Kanban`,gallery:`Gallery`,calendar:`Calendar`,timeline:`Timeline`,gantt:`Gantt`,map:`Map`,chart:`Chart`,tree:`Tree`},Un=({currentView:e,availableViews:t=[`grid`,`kanban`],onViewChange:n,className:r,animated:i=!0})=>{let[a,o]=Q.useState(!1),s=Q.useCallback(t=>{o(!1),t!==e&&(i&&typeof document<`u`&&`startViewTransition`in document?document.startViewTransition(()=>n(t)):n(t))},[i,e,n]);return t.length>=2&&t.length<=4?(0,$.jsx)(`div`,{role:`tablist`,"data-testid":`view-switcher-segmented`,className:X(`inline-flex items-center gap-0.5 rounded-lg bg-muted p-0.5 oui-view-switcher`,r),children:t.map(t=>{let n=t===e;return(0,$.jsxs)(`button`,{type:`button`,role:`tab`,"aria-selected":n,"aria-label":Hn[t],title:Hn[t],"data-state":n?`on`:`off`,onClick:()=>s(t),className:X(`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-[7px] text-xs font-medium transition-all duration-150`,n?`bg-background text-foreground shadow-sm`:`text-muted-foreground hover:text-foreground`),children:[Vn[t],(0,$.jsx)(`span`,{className:`hidden sm:inline-block`,children:Hn[t]})]},t)})}):(0,$.jsxs)(tt,{open:a,onOpenChange:o,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(`button`,{type:`button`,"data-testid":`view-switcher-dropdown`,"aria-label":Hn[e],className:X(`inline-flex items-center gap-1.5 h-7 px-2 rounded-md text-xs font-medium transition-colors oui-view-switcher`,a?`text-foreground bg-muted`:`text-muted-foreground hover:text-foreground`,r),children:[Vn[e],(0,$.jsx)(`span`,{className:`hidden sm:inline-block`,children:Hn[e]}),(0,$.jsx)(pn,{className:`h-3 w-3 opacity-60`})]})}),(0,$.jsx)(he,{align:`end`,className:`w-44 p-1`,children:t.map(t=>(0,$.jsxs)(`button`,{type:`button`,onClick:()=>s(t),"data-state":t===e?`on`:`off`,className:X(`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-xs transition-colors hover:bg-muted`,t===e?`text-foreground font-medium`:`text-muted-foreground`),children:[Vn[t],(0,$.jsx)(`span`,{className:`flex-1 text-left`,children:Hn[t]}),t===e&&(0,$.jsx)(Cn,{className:`h-3.5 w-3.5`})]},t))})]})};function Wn({title:e,badge:t,onClear:n,clearLabel:r,defaultOpen:i=!0,children:a}){let[o,s]=Q.useState(i);return(0,$.jsxs)(`div`,{className:`border-b last:border-b-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2`,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:()=>s(e=>!e),className:`flex items-center gap-1.5 text-xs font-medium text-foreground/80 hover:text-foreground`,children:[(0,$.jsx)(pn,{className:X(`h-3.5 w-3.5 transition-transform`,!o&&`-rotate-90`)}),e,typeof t==`number`&&t>0&&(0,$.jsx)(`span`,{className:`ml-1 inline-flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary/10 px-1 text-[10px] text-primary tabular-nums`,children:t})]}),n&&(0,$.jsx)(`button`,{type:`button`,onClick:n,className:`text-[11px] text-muted-foreground hover:text-foreground`,children:r})]}),o&&(0,$.jsx)(`div`,{className:`px-3 pb-3`,children:a})]})}function Gn(e){let{t,allFields:n,showGroup:r,groupingConfig:i,setGroupingConfig:a,showColor:o,rowColorConfig:s,setRowColorConfig:c,showDensity:l,density:u,showHideFields:d,hiddenFields:f,updateHiddenFields:p,showInlineEdit:m,inlineEdit:h,setInlineEdit:g}=e,[_,v]=Q.useState(!1),y=[!!i?.fields?.length,!!s?.field,u&&u.mode!==`compact`,(f?.size??0)>0,!!h].filter(Boolean).length,b=u?.mode===`compact`?Ze:u?.mode===`comfortable`?le:Mt,x=t(`list.viewSettings`,{defaultValue:`View settings`});return(0,$.jsxs)(tt,{open:_,onOpenChange:v,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,"aria-label":x,title:x,className:X(`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,y>0&&`text-foreground font-medium`),"data-testid":`view-settings-trigger`,children:[(0,$.jsx)(je,{className:`h-3.5 w-3.5 sm:mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:x}),y>0&&(0,$.jsx)(`span`,{className:`ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums`,children:y})]})}),(0,$.jsxs)(he,{align:`end`,className:`w-80 p-0`,"data-testid":`view-settings-content`,children:[(0,$.jsxs)(`div`,{className:`px-3 py-2 border-b`,children:[(0,$.jsx)(`div`,{className:`text-sm font-semibold`,children:x}),(0,$.jsx)(`div`,{className:`text-[11px] text-muted-foreground`,children:t(`list.viewSettingsHint`,{defaultValue:`Grouping, color, density, and visible fields.`})})]}),r&&a&&(0,$.jsx)(Wn,{title:t(`list.group`,{defaultValue:`Group`}),badge:i?.fields?.length||0,onClear:i?()=>a(void 0):void 0,clearLabel:t(`list.clear`,{defaultValue:`Clear`}),children:(0,$.jsx)(fn,{value:i,fieldOptions:n.map(e=>({value:e.name,label:e.label||e.name})),maxLevels:3,labels:{addGroup:t(`list.addGroup`,`Add group field`),collapseTitle:t(`list.collapsedByDefault`,`Collapsed by default`),removeTitle:t(`list.removeGroup`,`Remove`)},onChange:e=>a(e)})}),o&&c&&(0,$.jsxs)(Wn,{title:t(`list.color`,{defaultValue:`Row color`}),onClear:s?()=>c(void 0):void 0,clearLabel:t(`list.clear`,{defaultValue:`Clear`}),defaultOpen:!!s,children:[(0,$.jsx)(`label`,{className:`block text-[11px] text-muted-foreground mb-1`,children:t(`list.colorByField`,{defaultValue:`Color by field`})}),(0,$.jsxs)(`select`,{className:`w-full h-8 rounded border border-input bg-background px-2 text-xs`,value:s?.field||``,onChange:e=>{let t=e.target.value;c(t?{field:t,colors:s?.colors||{}}:void 0)},"data-testid":`color-field-select`,children:[(0,$.jsx)(`option`,{value:``,children:t(`list.none`,{defaultValue:`None`})}),n.map(e=>(0,$.jsx)(`option`,{value:e.name,children:e.label||e.name},e.name))]})]}),l&&u&&(0,$.jsx)(Wn,{title:t(`grid.toolbar.densityMode`,{defaultValue:`Density`}),defaultOpen:u.mode!==`compact`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,className:`h-7 gap-1.5`,onClick:u.cycle,"data-testid":`view-settings-density-cycle`,children:[(0,$.jsx)(b,{className:`h-3.5 w-3.5`}),(0,$.jsx)(`span`,{className:`text-xs`,children:u.mode===`compact`?t(`grid.toolbar.densityCompact`,{defaultValue:`Compact`}):u.mode===`comfortable`?t(`grid.toolbar.densityComfortable`,{defaultValue:`Comfortable`}):t(`grid.toolbar.densitySpacious`,{defaultValue:`Spacious`})})]}),(0,$.jsx)(`span`,{className:`text-[11px] text-muted-foreground`,children:t(`grid.toolbar.densityCycleShortHint`,{defaultValue:`Click to cycle`})})]})}),m&&g&&(0,$.jsx)(Wn,{title:t(`list.recordEditingTitle`,{defaultValue:`Record editing`}),defaultOpen:!!h,children:(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs py-1 px-1 rounded hover:bg-muted cursor-pointer`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!!h,onChange:()=>g(!h),className:`rounded border-input`,"data-testid":`view-settings-inline-edit`}),(0,$.jsx)(`span`,{children:t(`list.inlineEditLabel`,{defaultValue:`Edit records inline (click a cell to edit)`})})]})}),d&&f&&p&&(0,$.jsx)(Wn,{title:t(`list.hideFieldsTitle`,{defaultValue:`Hide fields`}),badge:f.size,onClear:f.size>0?()=>p(new Set):void 0,clearLabel:t(`list.showAll`,{defaultValue:`Show all`}),defaultOpen:f.size>0,children:(0,$.jsx)(`div`,{className:`max-h-48 overflow-y-auto space-y-0.5`,children:n.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs py-1 px-1 rounded hover:bg-muted cursor-pointer`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!f.has(e.name),onChange:()=>{let t=new Set(f);t.has(e.name)?t.delete(e.name):t.add(e.name),p(t)},className:`rounded border-input`}),(0,$.jsx)(`span`,{className:`truncate`,children:e.label||e.name})]},e.name))})})]})]})}function Kn(){let{t:e}=Kt(),t=e(`common.more`);return!t||t===`common.more`?`More`:t}var qn=new Set([`lookup`,`master_detail`,`user`,`owner`]),Jn={select:`single-choice`,"multi-select":`multi-choice`,boolean:`multi-choice`,"date-range":`range`,text:`text`};function Yn(e){switch(e){case void 0:case`equals`:case`eq`:return`=`;case`not_equals`:case`ne`:case`neq`:return`!=`;case`greater_than_or_equal`:case`gte`:return`>=`;case`less_than_or_equal`:case`lte`:return`<=`;case`greater_than`:case`gt`:case`after`:return`>`;case`less_than`:case`lt`:case`before`:return`<`;case`not_contains`:return`notcontains`;case`starts_with`:return`startswith`;case`not_in`:case`nin`:return`not in`;default:return e}}function Xn(e){return(e||[]).filter(e=>e&&(e.id||e.name)).map(e=>({id:e.id??e.name,label:typeof e.label==`string`?e.label:e.label?.toString?.()??e.id??e.name,filters:Array.isArray(e.filters)?e.filters:Array.isArray(e.filter)?e.filter.filter(e=>e&&typeof e.field==`string`).map(e=>[e.field,Yn(e.operator),e.value]):[],default:e.default??e.isDefault}))}function Zn({config:e,objectDef:t,data:n=[],onFilterChange:r,maxVisible:i,className:a,initialSelections:o,onSelectionsChange:s}){switch(e.element){case`dropdown`:return(0,$.jsx)($n,{fields:e.fields||[],objectDef:t,data:n,onFilterChange:r,maxVisible:i,className:a,initialSelections:o,onSelectionsChange:s});case`tabs`:return(0,$.jsx)(er,{tabs:Xn(e.tabs||[]),showAllRecords:e.showAllRecords!==!1,allowAddTab:e.allowAddTab,onFilterChange:r,className:a,initialTab:typeof o?._tab?.[0]==`string`?o._tab[0]:void 0,onSelectionsChange:s});case`toggle`:return(0,$.jsx)(tr,{fields:e.fields||[],onFilterChange:r,className:a});default:return null}}function Qn(e,t,n,r){return e.map(e=>{let i=e.options?[...e.options]:[],a=e.type,o,s,c,l;if(t?.fields){let n=Array.isArray(t.fields)?t.fields.find(t=>t.name===e.field):t.fields[e.field];n&&(a||=n.type,l=n.label,o=n.reference_to??n.reference,s=n.display_field??n.reference_field,c=n.id_field,i.length===0&&n.options&&(i=Array.isArray(n.options)?n.options.map(e=>({label:e.label??String(e.value??e),value:e.value??e,color:e.color})):Object.entries(n.options).map(([e,t])=>({label:t?.label||e,value:e,color:t?.color}))))}i.length===0&&a===`boolean`&&(i=[{label:`True`,value:!0},{label:`False`,value:!1}]),e.showCount&&n.length>0&&(i=i.map(t=>({...t,count:n.filter(n=>n[e.field]===t.value).length})));let u=e.label??l;if(r?.objectName){i=r.translateOptions(r.objectName,e.field,i);let t=e.label||l,n=r.fieldLabel(r.objectName,e.field,t||e.field);u=n===e.field&&t?t:n}return{...e,label:u,type:a,options:i,referenceTo:o,displayField:s,idField:c}})}function $n({fields:e,objectDef:t,data:n,onFilterChange:r,maxVisible:i,className:a,initialSelections:o,onSelectionsChange:s}){let{fieldLabel:c,translateOptions:l}=Nt(),u=Kn(),d=t?.name,f=Q.useMemo(()=>new Map(e.map(e=>[e.field,Jn[e.type??``]])),[e]),[p,m]=Q.useState(()=>{let t={};return e.forEach(e=>{e.defaultValues&&e.defaultValues.length>0&&(t[e.field]=e.defaultValues);let n=o?.[e.field];n&&n.length>0&&(t[e.field]=n),f.get(e.field)===`single-choice`&&(t[e.field]?.length??0)>1&&(t[e.field]=t[e.field].slice(0,1))}),t}),h=Q.useRef({}),g=Q.useMemo(()=>Qn(e,t,n,{objectName:d,fieldLabel:c,translateOptions:l}).map(e=>{if(!e.showCount)return e;if((p[e.field]||[]).length===0)return h.current[e.field]=new Map(e.options.map(e=>[String(e.value),e.count??0])),e;let t=h.current[e.field];return t?{...e,options:e.options.map(e=>({...e,count:t.get(String(e.value))??e.count}))}:e}),[e,t,n,d,c,l,p]),_=Q.useCallback(e=>{r(Object.entries(e).flatMap(([e,t])=>{if(t.length===0)return[];switch(f.get(e)){case`range`:{let[n,r]=t,i=[];return n!==void 0&&n!==``&&i.push([e,`>=`,n]),r!==void 0&&r!==``&&i.push([e,`<=`,r]),i}case`text`:{let n=String(t[0]??``).trim();return n?[[e,`contains`,n]]:[]}default:return[[e,`in`,t]]}}))},[r,f]),v=(e,t)=>{let n={...p,[e]:t};m(n),_(n),s?.(n)};Q.useEffect(()=>{let e=p,t={},n=!1;for(let[r,i]of Object.entries(e)){let e=g.find(e=>e.field===r),a=i.map(t=>{if(!e||typeof t!=`string`)return t;let n=e.options.find(e=>String(e.value)===t);return n&&n.value!==t?n.value:e.type===`boolean`&&(t===`true`||t===`false`)?t===`true`:t});t[r]=a,a.some((e,t)=>e!==i[t])&&(n=!0)}n&&(m(t),e=t),Object.values(e).some(e=>e.length>0)&&_(e)},[]);let y=i!==void 0&&i<g.length?g.slice(0,i):g,b=i!==void 0&&i<g.length?g.slice(i):[],x=e=>{let t=p[e.field]||[],n=f.get(e.field),r=t.filter(e=>e!==``&&e!=null).length,i=r>0,a=n===`single-choice`,o=qn.has(e.type||``)&&e.options.length===0&&(e.referenceTo||e.type===`user`||e.type===`owner`),s=o?`w-72`:`w-56`;return(0,$.jsxs)(tt,{children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(`button`,{"data-testid":`filter-badge-${e.field}`,className:X(`inline-flex items-center gap-1 h-7 px-2 text-xs transition-colors shrink-0 rounded-md`,i?`text-foreground font-medium`:`text-muted-foreground hover:text-foreground`),children:[(0,$.jsx)(`span`,{className:`truncate max-w-[100px]`,children:e.label||e.field}),i&&(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground/80 tabular-nums`,children:r}),i?(0,$.jsx)(Me,{className:`h-3 w-3 opacity-60 hover:opacity-100`,"data-testid":`filter-clear-${e.field}`,onClick:t=>{t.stopPropagation(),v(e.field,[])}}):(0,$.jsx)(pn,{className:`h-3 w-3 opacity-60`})]})}),(0,$.jsx)(he,{align:`start`,className:X(s,`p-2`),children:o?(0,$.jsx)(`div`,{"data-testid":`filter-lookup-${e.field}`,children:(0,$.jsx)(Rt,{field:{value:e.field,label:e.label||e.field,type:e.type,referenceTo:e.referenceTo,displayField:e.displayField,idField:e.idField},value:t,multiple:!0,onChange:t=>{let n=Array.isArray(t)?t:t==null||t===``?[]:[t];v(e.field,n)}})}):n===`range`?(0,$.jsx)(`div`,{className:`space-y-2 p-1`,"data-testid":`filter-range-${e.field}`,children:[0,1].map(n=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`w-8 shrink-0`,children:n===0?`From`:`To`}),(0,$.jsx)(`input`,{type:`date`,"data-testid":`filter-range-${e.field}-${n===0?`from`:`to`}`,value:String(t[n]??``),onChange:r=>{let i=[String(t[0]??``),String(t[1]??``)];i[n]=r.target.value,v(e.field,i[0]===``&&i[1]===``?[]:i)},className:`h-7 flex-1 rounded border border-input bg-background px-2 text-xs text-foreground`})]},n))}):n===`text`?(0,$.jsx)(`input`,{type:`search`,"data-testid":`filter-text-${e.field}`,defaultValue:String(t[0]??``),placeholder:e.label||e.field,onBlur:t=>{let n=t.target.value.trim();v(e.field,n?[n]:[])},onKeyDown:t=>{if(t.key===`Enter`){let n=t.target.value.trim();v(e.field,n?[n]:[])}},className:`h-8 w-full rounded border border-input bg-background px-2 text-xs text-foreground`}):(0,$.jsx)(`div`,{className:`max-h-60 overflow-y-auto space-y-0.5`,"data-testid":`filter-options-${e.field}`,children:e.options.length===0?(0,$.jsx)(`div`,{className:`px-2 py-3 text-center text-xs text-muted-foreground`,children:`No options`}):e.options.map(n=>(0,$.jsxs)(`label`,{className:X(`flex items-center gap-2 text-sm py-1.5 px-2 rounded cursor-pointer`,t.includes(n.value)?`bg-primary/5 text-primary`:`hover:bg-muted`),children:[(0,$.jsx)(`input`,{type:a?`radio`:`checkbox`,name:a?`user-filter-${e.field}`:void 0,checked:t.includes(n.value),onChange:()=>{let r=a?[n.value]:t.includes(n.value)?t.filter(e=>e!==n.value):[...t,n.value];v(e.field,r)},className:a?`border-input`:`rounded border-input`}),n.color&&(0,$.jsx)(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:n.color}}),(0,$.jsx)(`span`,{className:`truncate flex-1`,children:n.label}),n.count!==void 0&&(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:n.count})]},String(n.value)))})})]},e.field)};return(0,$.jsx)(`div`,{className:X(`flex items-center gap-0.5 overflow-x-auto`,a),"data-testid":`user-filters-dropdown`,children:g.length===0?(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,"data-testid":`user-filters-empty`,children:`No filter fields`}):(0,$.jsxs)($.Fragment,{children:[y.map(x),b.length>0&&(0,$.jsxs)(tt,{children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(`button`,{"data-testid":`user-filters-more`,className:`inline-flex items-center gap-1 h-7 px-2 text-xs text-muted-foreground hover:text-foreground transition-colors shrink-0 rounded-md`,children:[(0,$.jsx)(`span`,{children:u}),(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground/80 tabular-nums`,children:b.length}),(0,$.jsx)(pn,{className:`h-3 w-3 opacity-60`})]})}),(0,$.jsx)(he,{align:`start`,className:`w-64 p-2`,"data-testid":`user-filters-more-content`,children:(0,$.jsx)(`div`,{className:`space-y-1`,children:b.map(x)})})]})]})})}function er({tabs:e,showAllRecords:t,allowAddTab:n,onFilterChange:r,className:i,initialTab:a,onSelectionsChange:o}){let[s,c]=Q.useState(()=>a&&(a===`__all__`||e.some(e=>e.id===a))?a:e.find(e=>e.default)?.id||(t?`__all__`:e[0]?.id||``)),l=Q.useCallback(t=>{c(t),r(t===`__all__`?[]:e.find(e=>e.id===t)?.filters||[]),o?.({_tab:[t]})},[e,r,o]),u=Q.useMemo(()=>{let n=[...e];return t&&n.push({id:`__all__`,label:`All records`,filters:[]}),n},[e,t]);return Q.useEffect(()=>{if(s&&s!==`__all__`){let t=e.find(e=>e.id===s);t&&r(t.filters||[])}},[]),(0,$.jsxs)(`div`,{className:X(`flex items-center gap-0.5 overflow-x-auto`,i),"data-testid":`user-filters-tabs`,children:[u.map(e=>{let t=e.id??e.name??``;return(0,$.jsx)(`button`,{"data-testid":`filter-tab-${t}`,onClick:()=>l(t),className:X(`inline-flex items-center h-7 px-3 text-xs font-medium rounded-md transition-colors shrink-0`,s===t?`bg-primary text-primary-foreground`:`text-muted-foreground hover:text-foreground hover:bg-muted`),children:e.label},t)}),n&&(0,$.jsx)(`button`,{className:`inline-flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted shrink-0`,"data-testid":`filter-tab-add`,title:`Add filter tab`,children:(0,$.jsx)(It,{className:`h-3.5 w-3.5`})})]})}function tr({fields:e,onFilterChange:t,className:n}){let[r,i]=Q.useState(()=>{let t=new Set;return e.forEach(e=>{e.defaultValues&&e.defaultValues.length>0&&t.add(e.field)}),t}),a=Q.useCallback(n=>{t(Array.from(n).map(t=>{let n=e.find(e=>e.field===t);return n?.defaultValues?[t,`in`,n.defaultValues]:[t,`!=`,null]}))},[e,t]),o=e=>{i(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),a(n),n})};return Q.useEffect(()=>{r.size>0&&a(r)},[]),(0,$.jsx)(`div`,{className:X(`flex items-center gap-1 overflow-x-auto`,n),"data-testid":`user-filters-toggle`,children:e.map(e=>(0,$.jsx)(Z,{variant:r.has(e.field)?`default`:`outline`,size:`sm`,className:`h-7 px-3 text-xs shrink-0`,"data-testid":`filter-toggle-${e.field}`,onClick:()=>o(e.field),children:e.label||e.field},e.field))})}function nr(e){switch(e.toLowerCase().replace(/[_\s]/g,``)){case`equals`:case`eq`:return`=`;case`notequals`:case`ne`:case`neq`:return`!=`;case`contains`:return`contains`;case`notcontains`:return`notcontains`;case`startswith`:return`startswith`;case`endswith`:return`endswith`;case`greaterthan`:case`gt`:return`>`;case`greaterorequal`:case`greaterthanorequal`:case`gte`:return`>=`;case`lessthan`:case`lt`:return`<`;case`lessorequal`:case`lessthanorequal`:case`lte`:return`<=`;case`in`:return`in`;case`notin`:case`nin`:return`nin`;case`before`:return`<`;case`after`:return`>`;case`between`:return`between`;case`isnull`:return`isnull`;case`isnotnull`:return`isnotnull`;default:return e}}var rr=new Set([`nin`,`not_in`,`notIn`,`notin`,`not in`]);function ir(e){if(!Array.isArray(e)||e.length<3)return e;let[t,n,r]=e;return typeof t==`string`&&(t===`and`||t===`or`)?[t,...e.slice(1).map(e=>Array.isArray(e)?ir(e):e)]:n===`in`&&Array.isArray(r)?r.length===0?[]:r.length===1?[t,`=`,r[0]]:[`or`,...r.map(e=>[t,`=`,e])]:rr.has(n)&&Array.isArray(r)?r.length===0?[]:r.length===1?[t,`!=`,r[0]]:[`and`,...r.map(e=>[t,`!=`,e])]:e}function ar(e){let t=typeof e==`string`?[e]:Array.isArray(e)?e:[],n=[];for(let e of t)if(typeof e==`string`){let t=e.trim().split(/\s+/);if(!t[0])continue;n.push({id:crypto.randomUUID(),field:t[0],order:t[1]?.toLowerCase()===`desc`?`desc`:`asc`})}else e&&typeof e==`object`&&typeof e.field==`string`&&n.push({id:crypto.randomUUID(),field:e.field,order:e.order||`asc`});return n}function or(e){return e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function sr(e){switch(e){case`bottom`:return{top:!1,bottom:!0};case`both`:return{top:!0,bottom:!0};default:return{top:!0,bottom:!1}}}function cr(e){return!Array.isArray(e)||e.length===0?[]:e.map(e=>Array.isArray(e)?ir(e):e).filter(e=>Array.isArray(e)&&e.length>0)}function lr(e,t,n){let r=ur(t);return g(e,r.length>0?r:void 0,...cr(n))}function ur(e){if(!e||!e.conditions||e.conditions.length===0)return[];let t=cr(e.conditions.filter(e=>{if(e.operator===`isEmpty`||e.operator===`isNotEmpty`)return!0;let t=e.value;return!(t==null||t===``||Array.isArray(t)&&t.length===0)}).map(e=>e.operator===`isEmpty`?[e.field,`=`,null]:e.operator===`isNotEmpty`?[e.field,`!=`,null]:[e.field,nr(e.operator),e.value]));return t.length===0?[]:t.length===1?t[0]:[e.logic,...t]}function dr(e){let t=e,n=[t?.httpStatus,t?.status,t?.statusCode].find(e=>typeof e==`number`);if(n===void 0){let e=/HTTP (\d{3})\b/.exec(String(t?.message??``));e&&(n=Number(e[1]))}let r=typeof t?.code==`string`?t.code.toUpperCase():``;return n===403||r===`PERMISSION_DENIED`||r===`FORBIDDEN`?`forbidden`:n===401||r===`UNAUTHORIZED`||r===`UNAUTHENTICATED`?`unauthorized`:n===400||fr.has(r)?`rejected`:`network`}var fr=new Set([`INVALID_FILTER`,`UNSUPPORTED_QUERY_PARAM`,`INVALID_QUERY`]),pr=Dn({"list.recordCount":`{{count}} records`,"list.recordCountOne":`{{count}} record`,"list.noItems":`No items found`,"list.noItemsMessage":`There are no records to display. Try adjusting your filters or adding new data.`,"list.firstRunTitle":`Nothing here yet`,"list.firstRunMessage":`Create your first record to get started.`,"list.noMatches":`No matching records`,"list.noMatchesMessage":`No records match your current filters or search. Try adjusting or clearing them.`,"list.loading":`Loading records…`,"list.loadErrorTitle":`Couldn’t load records`,"list.loadErrorMessage":`Something went wrong while loading this data. Check your connection and try again.`,"list.loadErrorForbiddenTitle":`You don’t have access`,"list.loadErrorForbiddenMessage":`You don’t have permission to view these records. Contact your administrator if you think you should have access.`,"list.loadErrorUnauthorizedTitle":`Sign in required`,"list.loadErrorUnauthorizedMessage":`Your session has expired or you are signed out. Sign in again to view these records.`,"list.loadErrorRejectedTitle":`This view’s query was rejected`,"list.loadErrorRejectedMessage":`The server could not process this view’s filter or query options. Clearing the filters usually fixes it; if the view is saved this way, an administrator needs to correct it.`,"list.retry":`Retry`,"list.search":`Search`,"list.filter":`Filter`,"list.filterRecords":`Filter Records`,"list.sort":`Sort`,"list.sortRecords":`Sort Records`,"list.sortByIdSuffix":`(by ID)`,"list.sortRelationalHint":`Columns that link to another record are not listed: they can only be sorted by the stored ID, not by the name shown in the cell. To sort by that name, add a formula field holding it.`,"list.group":`Group`,"list.groupBy":`Group By`,"list.export":`Export`,"list.exportAs":`Export as {{format}}`,"list.color":`Color`,"list.rowColor":`Row Color`,"list.colorByField":`Color by field`,"list.clear":`Clear`,"list.none":`None`,"list.hideFields":`Hide fields`,"list.showAll":`Show all`,"list.pullToRefresh":`Pull to refresh`,"list.refresh":`Refresh`,"list.refreshing":`Refreshing…`,"list.dataLimitReached":`Showing first {{limit}} records. More data may be available.`,"list.addRecord":`Add record`,"list.tabs":`Tabs`,"list.allRecords":`All Records`,"list.share":`Share`,"list.print":`Print`,"list.hideFieldsTitle":`Hide Fields`,"table.rowsPerPage":`Rows per page`,"grid.toolbar.densityMode":`Density`,"grid.toolbar.densityCompact":`Compact`,"grid.toolbar.densityComfortable":`Comfortable`,"grid.toolbar.densitySpacious":`Spacious`,"grid.toolbar.densityCycleHint":`{{label}} (click to cycle)`,"grid.toolbar.densityCycleShortHint":`Click to cycle`,"list.viewSettings":`View settings`,"list.viewSettingsHint":`Grouping, color, density, and visible fields.`},`list.recordCount`);function mr(){let{fieldLabel:e,actionLabel:t,objectLabel:n}=ce();return{fieldLabel:e,actionLabel:t,objectLabel:n}}var hr=Q.forwardRef(({schema:e,className:t,onViewChange:n,onFilterChange:r,onSortChange:i,onSearchChange:a,onHiddenFieldsChange:s,onInlineEditChange:c,onColumnStateChange:l,onRowClick:u,showViewSwitcher:d,userFilterSelections:f,onUserFilterSelectionsChange:h,initialFilters:g,initialSearchTerm:_,...y},b)=>{let x=d??e?.showViewSwitcher??!1,{t:S}=pr(),{fieldLabel:C,actionLabel:w,objectLabel:E}=mr(),{translateOptions:O}=Nt(),k=Q.useMemo(()=>j(e),[e]),M=Q.useCallback((e,t)=>k.objectName?C(k.objectName,e,t):t,[k.objectName,C]),N=Q.useCallback(e=>{let t=or(e);return k.objectName&&typeof w==`function`?w(k.objectName,e,t):t},[k.objectName,w]),F=Q.useMemo(()=>{let e=k.userActions,t=k.addRecord?.enabled===!0&&e?.addRecordForm!==!1,n=sr(k.addRecord?.position);return{showSearch:e?.search!==!1,showSort:e?.sort!==!1,showFilters:e?.filter!==!1,showRefresh:e?.refresh!==!1,showDensity:e?.rowHeight!==!1,showGroup:e?.group!==!1,showHideFields:e?.hideFields===!0,showColor:e?.rowColor===!0,compactToolbar:k.compactToolbar===!0,showAddRecord:t,showAddRecordTop:t&&n.top,showAddRecordBottom:t&&n.bottom}},[k.userActions,k.compactToolbar,k.addRecord]),[I,ne]=Q.useState(k.viewType),[L,re]=Q.useState(()=>_??``),[ae,R]=Q.useState(!1),[oe,ce]=Q.useState(!1),[z,ue]=Q.useState(()=>ar(k.sort)),B=Q.useMemo(()=>JSON.stringify(k.sort||[]),[k.sort]);Q.useEffect(()=>{ue(ar(k.sort))},[B]);let[de,fe]=Q.useState(!1),[V,H]=Q.useState(()=>g&&Array.isArray(g.conditions)?g:{id:`root`,logic:`and`,conditions:[]}),U=y.dataSource,[W,pe]=Q.useState([]),[ge,_e]=Q.useState(null),[ve,be]=Q.useState(`network`),[xe,Se]=Q.useState(()=>!(Array.isArray(k.data)||k.data&&typeof k.data==`object`&&k.data.provider===`value`&&Array.isArray(k.data.items)||k.viewType===`gantt`&&k.data&&typeof k.data==`object`&&!Array.isArray(k.data)&&k.data.provider===`api`)),[G,Ce]=Q.useState(null),[K,we]=Q.useState(!1),[Te,q]=Q.useState(0),[Oe,Ae]=Q.useState(!1);Q.useImperativeHandle(b,()=>({refresh:()=>q(e=>e+1)}),[]),Q.useEffect(()=>{if(!(!U?.onMutation||!k.objectName))return U.onMutation(e=>{e.resource===k.objectName&&q(e=>e+1)})},[U,k.objectName]);let[je,Ne]=Q.useState(void 0),Pe=je??k.pagination?.pageSize??100,[Fe,Le]=Q.useState(1),[Re,ze]=Q.useState(null),Be=Q.useMemo(()=>{if(k.grouping?.fields?.length)return k.grouping;let e=typeof k.groupBy==`string`?k.groupBy.trim():``,t=typeof k.groupBy2==`string`?k.groupBy2.trim():``,n=[];return e&&n.push({field:e,order:`asc`,collapsed:!1}),t&&t!==e&&n.push({field:t,order:`asc`,collapsed:!1}),n.length>0?{fields:n}:void 0},[k.grouping,k.groupBy,k.groupBy2]),[Y,Ve]=Q.useState(Be),[He,Ue]=Q.useState(!1),We=Q.useRef(Be);Q.useEffect(()=>{We.current!==Be&&(We.current=Be,Ve(Be))},[Be]);let[Ge,Ke]=Q.useState(k.rowColor),[qe,Je]=Q.useState(!1),[Xe,Qe]=Q.useState([]),et=Q.useRef(0),[nt,rt]=Q.useState([]),it=Q.useMemo(()=>{let e=k.userFilters;if(!e)return;if(e.element===`tabs`||e.fields&&e.fields.length>0||!G?.fields)return e;let t=new Set([`select`,`multi-select`,`boolean`]),n=[],r=Array.isArray(G.fields)?G.fields.map(e=>[e.name,e]):Object.entries(G.fields);for(let[e,i]of r)(t.has(i.type)||i.options&&!i.type)&&n.push({field:e,label:M(e,i.label||e),type:i.type===`boolean`?`boolean`:i.type===`multi-select`?`multi-select`:`select`});return n.length===0?e:{...e,fields:n}},[k.userFilters,G,M]),[ot,st]=Q.useState(()=>new Set(k.hiddenFields||[])),lt=Q.useMemo(()=>JSON.stringify(k.hiddenFields||[]),[k.hiddenFields]);Q.useEffect(()=>{st(new Set(k.hiddenFields||[]))},[lt]);let ut=Q.useCallback(e=>{st(e),s?.(Array.from(e))},[s]),[pt,mt]=Q.useState(!1),[ht,gt]=Q.useState(()=>!!k.inlineEdit);Q.useEffect(()=>{gt(!!k.inlineEdit)},[k.inlineEdit]);let _t=Q.useCallback(e=>{gt(e),c?.(e)},[c]),[vt,yt]=Q.useState(!1),[bt,xt]=Q.useState(!1),[St,Ct]=Q.useState(null),{getObjectApiOperations:wt}=o(),Tt=k.objectName?wt(k.objectName):void 0,Dt=k.allowExport!==!1&&k.operations?.export!==!1&&(!Tt||Tt.includes(`export`)),Ot=Q.useMemo(()=>{let e=k.bulkActions;return!e||e.length===0||v(G,Tt).delete?e:e.filter(e=>String(e).toLowerCase()!==`delete`)},[k.bulkActions,G,Tt]),kt=Q.useMemo(()=>{if(k.exportOptions)return Array.isArray(k.exportOptions)?{formats:k.exportOptions}:k.exportOptions},[k.exportOptions]),jt=Q.useMemo(()=>{let e=kt?.formats||[`csv`,`json`],t=typeof U?.exportDownload==`function`&&k.objectName&&kt?.streaming!==!1?[`csv`,`xlsx`,`json`]:[`csv`,`json`];return e.filter(e=>t.includes(e))},[kt,U,k.objectName]);Q.useEffect(()=>{let e=kt?.formats;if(!e)return;let t=e.filter(e=>!jt.includes(e));t.length>0&&console.warn(`[ObjectUI] ListView export: unsupported format(s) hidden from the menu: ${t.join(`, `)}`)},[kt,jt]);let Pt=A(Q.useMemo(()=>k.rowHeight?te(k.rowHeight):`compact`,[k.rowHeight]),{onChange:k.onDensityChange}),Ft=Q.useMemo(()=>`objectui:gallery:density:${k.objectName??`default`}`,[k.objectName]),[Lt,Rt]=Q.useState(()=>{if(typeof window>`u`)return k.gallery?.cardSize??`medium`;try{let e=window.localStorage.getItem(Ft);if(e===`small`||e===`medium`||e===`large`)return e}catch{}return k.gallery?.cardSize??`medium`}),zt=Q.useCallback(()=>{Rt(e=>{let t=e===`large`?`medium`:e===`medium`?`small`:`large`;try{window.localStorage.setItem(Ft,t)}catch{}return t})},[Ft]),{ref:Bt,isRefreshing:Vt,pullDistance:Ht}=Bn({onRefresh:Q.useCallback(async()=>{q(e=>e+1)},[]),enabled:!!U&&!!k.objectName}),Ut=Q.useMemo(()=>k.id?`listview-${k.objectName}-${k.id}-view`:`listview-${k.objectName}-view`,[k.objectName,k.id]);Q.useEffect(()=>{let e=!0;return we(!1),Ce(null),(async()=>{if(!U||!k.objectName){we(!0);return}if(typeof U.getObjectSchema!=`function`){we(!0);return}try{let t=await U.getObjectSchema(k.objectName);e&&Ce(t)}catch(e){console.warn(`Failed to fetch object schema for ListView:`,e)}finally{e&&we(!0)}})(),()=>{e=!1}},[k.objectName,U]);let Gt=Q.useMemo(()=>{let e=Array.isArray(k.columns)?k.columns.map(e=>P(e)).filter(e=>typeof e==`string`&&e.length>0):[],t=new Set(e),n=e=>{if(!e)return;let n=[e.groupByField,e.groupField,e.groupBy,e.summarizeField,e.titleField,e.cardTitle,e.startDateField,e.endDateField,e.dateField,e.endField,e.colorField,e.allDayField,e.coverField,e.imageField,e.swimlaneField,e.valueField,...Array.isArray(e.columns)?e.columns:[],...Array.isArray(e.cardFields)?e.cardFields:[],...Array.isArray(e.visibleFields)?e.visibleFields:[],...Array.isArray(e.metaFields)?e.metaFields:[]];for(let e of n)typeof e==`string`&&e&&t.add(e)};n(k.kanban),n(k.options?.kanban),n(k.calendar),n(k.options?.calendar),n(k.gallery),n(k.options?.gallery),n(k.timeline),n(k.options?.timeline),n(k.gantt),n(k.options?.gantt);let r=t.size>0?Array.from(t):void 0;return p(G?.fields,r)},[G?.fields,k.columns,k.kanban,k.calendar,k.gallery,k.timeline,k.gantt,k.options]),Kt=o(),qt=I===`gantt`&&!!k.data&&typeof k.data==`object`&&!Array.isArray(k.data)&&k.data.provider===`api`;Q.useEffect(()=>{let e=!0,t=++et.current;if(k.data&&typeof k.data==`object`&&!Array.isArray(k.data)){let e=k.data;if(e.provider===`value`&&Array.isArray(e.items)){let t=e.items;if(L){let e=L.toLowerCase();t=t.filter(t=>Object.values(t).some(t=>t!=null&&String(t).toLowerCase().includes(e)))}pe(t),Se(!1),Ae(!1);return}}if(Array.isArray(k.data)){let e=k.data;if(L){let t=L.toLowerCase();e=e.filter(e=>Object.values(e).some(e=>e!=null&&String(e).toLowerCase().includes(t)))}pe(e),Se(!1),Ae(!1);return}if(qt){Se(!1),Ae(!1);return}return K?((async()=>{if(!U||!k.objectName){Se(!1);return}Se(!0),_e(null);try{let n=lr(k.filter,V,nt),r=z.length>0?z.filter(e=>e.field).map(e=>({field:e.field,order:e.order})):void 0,i=(()=>{let e=Array.isArray(k.columns)?k.columns.map(e=>P(e)).filter(e=>typeof e==`string`&&e.length>0):[],t=Kt?.isLoaded&&k.objectName?e.filter(e=>Kt.checkField(k.objectName,e,`read`)):e;if(t.length===0)return;let n=new Set([`id`]);for(let e of t)n.add(e);for(let e of Gt)n.add(e);let r=(()=>{let e=G?.fields;if(!e)return null;let t=Array.isArray(e)?e.map(e=>e?.name).filter(e=>typeof e==`string`):Object.keys(e),n=new Set(t);return n.add(`id`),n.add(`created_at`),n.add(`updated_at`),n})(),i=e=>{typeof e!=`string`||!e||(!r||r.has(e))&&n.add(e)},a=e=>{if(!e)return;let t=[e.groupByField,e.groupField,e.groupBy,e.summarizeField,e.titleField,e.cardTitle,e.startDateField,e.endDateField,e.dateField,e.endField,e.colorField,e.allDayField,e.coverField,e.imageField,e.swimlaneField,e.valueField,...Array.isArray(e.columns)?e.columns:[],...Array.isArray(e.cardFields)?e.cardFields:[],...Array.isArray(e.visibleFields)?e.visibleFields:[],...Array.isArray(e.metaFields)?e.metaFields:[]];for(let e of t)i(e)};a(k.kanban),a(k.options?.kanban),a(k.calendar),a(k.options?.calendar),a(k.gallery),a(k.options?.gallery),a(k.timeline),a(k.options?.timeline);{let e=k.timeline??k.options?.timeline;e&&!Array.isArray(e.metaFields)&&(i(`status`),i(`priority`))}return a(k.gantt),a(k.options?.gantt),Array.from(n)})(),a=n!==void 0,o=I===`grid`&&!Y?.fields?.length,s=o?(Fe-1)*Pe:0,c=await U.find(k.objectName,{...a?{$filter:n}:{},$orderby:r,$top:Pe,...s>0?{$skip:s}:{},...i?{$select:i}:{},...Gt.length>0?{$expand:Gt}:{},...L?{$search:L,...k.searchableFields&&k.searchableFields.length>0?{$searchFields:k.searchableFields}:{}}:{}});if(!e||t!==et.current)return;let l=[];Array.isArray(c)?l=c:c&&typeof c==`object`&&(Array.isArray(c.data)?l=c.data:Array.isArray(c.records)?l=c.records:Array.isArray(c.value)&&(l=c.value)),pe(l);let u=c&&typeof c==`object`?c.total??c.count:void 0,d=typeof u==`number`?u:null;ze(o?d:null),Ae(!(o&&d!=null)&&l.length>=Pe)}catch(e){t===et.current&&(console.error(`ListView data fetch error:`,e),pe([]),_e(e?.message?String(e.message):String(e??`Unknown error`)),be(dr(e)))}finally{e&&t===et.current&&Se(!1)}})(),()=>{e=!1}):void 0},[k.objectName,k.data,U,k.filter,Pe,z,V,nt,Te,L,k.searchableFields,Gt,K,k.refreshTrigger,Kt,Fe,I,Y,qt]);let Yt=JSON.stringify([k.objectName,k.filter,Pe,z,V,nt,L,I,Y]),Xt=Q.useRef(Yt);Q.useEffect(()=>{Xt.current!==Yt&&(Xt.current=Yt,Le(1))},[Yt]);let Zt=Q.useMemo(()=>{let e=[`grid`];(k.kanban?.groupByField||k.kanban?.groupField||k.options?.kanban?.groupField)&&e.push(`kanban`),(k.gallery?.coverField||k.gallery?.imageField||k.options?.gallery?.imageField)&&e.push(`gallery`),(k.calendar?.startDateField||k.options?.calendar?.startDateField)&&e.push(`calendar`),(k.timeline?.startDateField||k.options?.timeline?.startDateField||k.options?.timeline?.dateField||k.options?.calendar?.startDateField)&&e.push(`timeline`),(k.gantt?.startDateField||k.options?.gantt?.startDateField)&&e.push(`gantt`),(k.options?.map?.locationField||k.options?.map?.latitudeField&&k.options?.map?.longitudeField)&&e.push(`map`),(k.tree?.parentField||k.options?.tree?.parentField||k.viewType===`tree`)&&e.push(`tree`),k.viewType&&!e.includes(k.viewType)&&[`grid`,`kanban`,`calendar`,`timeline`,`gantt`,`map`,`gallery`,`chart`,`tree`].includes(k.viewType)&&e.push(k.viewType);let t=k.appearance?.allowedVisualizations;if(Array.isArray(t)&&t.length>0){let n=t.filter(t=>e.includes(t));return n.length>0?n:[`grid`]}return e},[k.options,k.viewType,k.kanban,k.calendar,k.gantt,k.gallery,k.timeline,k.tree,k.appearance?.allowedVisualizations]);Q.useEffect(()=>{k.viewType&&ne(k.viewType)},[k.viewType]);let Qt=Q.useCallback(e=>{ne(e);try{localStorage.setItem(Ut,e)}catch(e){console.warn(`Failed to save view preference to localStorage:`,e)}n?.(e)},[Ut,n]),$t=Q.useCallback(e=>{re(e),a?.(e)},[a]),en=T({navigation:k.navigation,objectName:k.objectName,onNavigate:k.onNavigate,onRowClick:u}),tn=Q.useMemo(()=>{let e=Array.isArray(k.columns)?k.columns:[];if(Kt?.isLoaded&&k.objectName&&(e=e.filter(e=>{let t=P(e);return!t||Kt.checkField(k.objectName,t,`read`)})),ot.size>0&&(e=e.filter(e=>{let t=P(e);return t!=null&&!ot.has(t)})),k.fieldOrder&&k.fieldOrder.length>0){let t=new Map(k.fieldOrder.map((e,t)=>[e,t]));e=[...e].sort((e,n)=>(t.get(P(e))??1/0)-(t.get(P(n))??1/0))}return e},[k.columns,k.objectName,ot,k.fieldOrder,Kt]),nn=Q.useMemo(()=>{let e=Pt.mode===`compact`?`compact`:Pt.mode===`spacious`?`tall`:`medium`,t={objectName:k.objectName,fields:tn,filter:k.filter,sort:z,className:`h-full w-full`,showSearch:!1,onRowClick:en.handleClick,rowHeight:e,hideRowHeightToggle:!0,...k.striped==null?{}:{striped:k.striped},...k.bordered==null?{}:{bordered:k.bordered},...l?{onColumnStateChange:l}:{},...k.columnState?{columnState:k.columnState}:{}};switch(I){default:case`grid`:return{type:`object-grid`,...t,columns:tn,...k.conditionalFormatting?{conditionalFormatting:k.conditionalFormatting}:{},editable:ht,...k.wrapHeaders==null?{}:{wrapHeaders:k.wrapHeaders},...k.virtualScroll==null?{}:{virtualScroll:k.virtualScroll},...k.resizable==null?{}:{resizable:k.resizable},...k.selection?{selection:k.selection}:{},...k.pagination?{pagination:k.pagination}:{},...Y?{grouping:Y}:{},...Ge?{rowColor:Ge}:{},...k.rowActions?{rowActions:k.rowActions}:{},...k.rowActionDefs?{rowActionDefs:k.rowActionDefs}:{},...k.bulkActions?{batchActions:k.bulkActions}:{},...k.bulkActionDefs?{bulkActionDefs:k.bulkActionDefs}:{},...k.options?.grid||{}};case`kanban`:{let{columns:e,groupByField:n,groupField:r,cardFields:i,titleField:a,...o}={...k.options?.kanban||{},...k.kanban||{}},s=n||r||ee(G)||void 0;return{type:`object-kanban`,...t,groupBy:s,groupField:s,...a?{titleField:a}:{},cardFields:i||e||tn||[],...Y?{grouping:Y}:{},...o}}case`calendar`:return{type:`object-calendar`,...t,startDateField:k.calendar?.startDateField||k.options?.calendar?.startDateField||`start_date`,endDateField:k.calendar?.endDateField||k.options?.calendar?.endDateField||`end_date`,...k.calendar?.titleField||k.options?.calendar?.titleField?{titleField:k.calendar?.titleField||k.options?.calendar?.titleField}:{},...k.calendar?.defaultView?{defaultView:k.calendar.defaultView}:{},...k.options?.calendar||{},...k.calendar||{}};case`gallery`:{let e={...k.options?.gallery||{},...k.gallery||{},cardSize:Lt};return{type:`object-gallery`,...t,gallery:Object.keys(e).length>0?e:void 0,imageField:k.gallery?.coverField||k.gallery?.imageField||k.options?.gallery?.imageField,titleField:k.gallery?.titleField||k.options?.gallery?.titleField||`name`,...Y?{grouping:Y}:{}}}case`timeline`:{let e={...k.options?.timeline||{},...k.timeline||{}};return{type:`object-timeline`,...t,timeline:Object.keys(e).length>0?e:void 0,startDateField:k.timeline?.startDateField||k.options?.timeline?.startDateField||k.options?.timeline?.dateField||`created_at`,titleField:k.timeline?.titleField||k.options?.timeline?.titleField||`name`,...k.timeline?.endDateField?{endDateField:k.timeline.endDateField}:{},...k.timeline?.groupByField?{groupByField:k.timeline.groupByField}:{},...k.timeline?.colorField?{colorField:k.timeline.colorField}:{},...k.timeline?.scale?{scale:k.timeline.scale}:{}}}case`gantt`:return{type:`object-gantt`,...t,...k.data?{data:k.data}:{},startDateField:k.gantt?.startDateField||k.options?.gantt?.startDateField||`start_date`,endDateField:k.gantt?.endDateField||k.options?.gantt?.endDateField||`end_date`,progressField:k.gantt?.progressField||k.options?.gantt?.progressField||`progress`,dependenciesField:k.gantt?.dependenciesField||k.options?.gantt?.dependenciesField||`dependencies`,...k.gantt?.titleField?{titleField:k.gantt.titleField}:{},...k.options?.gantt||{},...k.gantt||{}};case`map`:return{type:`object-map`,...t,locationField:k.options?.map?.locationField||`location`,...k.options?.map||{}};case`tree`:{let e=k.tree||k.options?.tree||{};return{type:`object-tree`,...t,parentField:e.parentField,labelField:e.labelField||e.titleField||`name`,fields:e.fields||tn,defaultExpandedDepth:e.defaultExpandedDepth,...e}}case`chart`:{let e=k.chart||k.options?.chart||{};if(e.dataset){let t=Array.isArray(e.dimensions)?e.dimensions:[],n=Array.isArray(e.values)?e.values:[];return{type:`object-chart`,dataset:e.dataset,dimensions:t,values:n,chartType:e.chartType||`bar`,xAxisKey:t[0],series:n.map(e=>({dataKey:e,label:e})),className:`h-[400px] w-full`}}let t=Array.isArray(e.yAxisFields)&&e.yAxisFields[0]||e.valueField||`value`,n=e.xAxisField||e.categoryField||`name`;return{type:`object-chart`,objectName:k.objectName,chartType:e.chartType||`bar`,filter:k.filter,aggregate:{field:t,function:e.aggregation||`count`,groupBy:n},xAxisKey:n,series:[{dataKey:t,label:t}],className:`h-[400px] w-full`}}}},[I,k,z,tn,Y,Ge,en.handleClick,Pt.mode,Lt,ht,G]),rn=V.conditions&&V.conditions.length>0,an=Q.useMemo(()=>{let e,t=(e,t)=>{if(!t)return;let n=Array.isArray(t)?t.map(e=>({value:e?.value??e,label:e?.label??String(e?.value??e),...e&&typeof e==`object`?e:{}})):Object.entries(t).map(([e,t])=>({value:e,label:t?.label||e,...t}));return k.objectName?O(k.objectName,e,n):n};if(e=G?.fields?Object.entries(G.fields).map(([e,n])=>({value:e,label:M(e,n.label||e),type:n.type||`text`,options:t(e,n.options),referenceTo:n.reference_to||n.reference,displayField:n.display_field||n.reference_field,idField:n.id_field})):(Array.isArray(k.columns)?k.columns:[]).flatMap(e=>{if(typeof e==`string`)return[{value:e,label:e,type:`text`}];let n=P(e);return n?[{value:n,label:M(n,e.label||n),type:e.type||`text`,options:t(n,e.options),referenceTo:e.reference_to||e.reference,displayField:e.display_field||e.reference_field,idField:e.id_field}]:[]}),k.filterableFields&&k.filterableFields.length>0){let t=new Set(k.filterableFields);e=e.filter(e=>t.has(e.value))}return e},[G,k.columns,k.filterableFields,k.objectName,M,O]),{sortFields:on,sortHasRelationalField:ln}=Q.useMemo(()=>{let e=new Set(z.map(e=>e.field).filter(Boolean)),t=!1,n=[];for(let r of an){if(!m.has(r.type)){n.push({value:r.value,label:r.label});continue}if(e.has(r.value)){n.push({value:r.value,label:`${r.label} ${S(`list.sortByIdSuffix`)}`});continue}t=!0}return{sortFields:n,sortHasRelationalField:t}},[an,z,S]),un=Q.useCallback(e=>{let t=e.map(e=>({id:crypto.randomUUID(),field:e.field,order:e.order}));ue(t),Le(1),i?.(t)},[i]),dn=Q.useCallback(e=>{if(!Dt)return;let t=kt,n=t?.maxRecords||0,r=t?.includeHeaders!==!1,i=G?.label&&G?.name&&typeof E==`function`?E(G):G?.label,a=e=>ie(e,{prefix:t?.fileNamePrefix,label:i,objectName:k.objectName,viewLabel:k.label||k.title});if((e===`csv`||e===`xlsx`||e===`json`)&&typeof U?.exportDownload==`function`&&k.objectName&&t?.streaming!==!1){let t=tn.map(e=>P(e)).filter(Boolean),i=lr(k.filter,V,nt),o=z.length>0?z.filter(e=>e.field).map(e=>({field:e.field,direction:e.order})):void 0;Ct(null),xt(!0),(async()=>{try{let s=await U.exportDownload(k.objectName,{format:e,fields:t.length?t:void 0,filter:i,...L?{search:L,...k.searchableFields&&k.searchableFields.length>0?{searchFields:k.searchableFields}:{}}:{},sort:o,includeHeaders:r,limit:n>0?n:void 0}),c=URL.createObjectURL(s),l=document.createElement(`a`);l.href=c,l.download=a(e),l.rel=`noopener`,document.body.appendChild(l),l.click(),l.remove(),URL.revokeObjectURL(c),yt(!1)}catch(e){console.error(`ListView export failed:`,e),Ct(e instanceof Error?e.message:String(e))}finally{xt(!1)}})();return}let o=n>0?W.slice(0,n):W;if(e===`csv`){let e=tn.map(e=>P(e)).filter(Boolean),t=[];r&&t.push(e.join(`,`)),o.forEach(n=>{t.push(e.map(e=>{let t=n[e],r;return r=t==null?``:Array.isArray(t)?t.map(e=>typeof e==`object`&&e?JSON.stringify(e):String(e??``)).join(`; `):typeof t==`object`?JSON.stringify(t):String(t),r.includes(`,`)||r.includes(`"`)||r.includes(`
2
+ `)||r.includes(`\r`)?`"${r.replace(/"/g,`""`)}"`:r}).join(`,`))});let n=new Blob([t.join(`
3
+ `)],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(n),s=document.createElement(`a`);s.href=i,s.download=a(`csv`),s.click(),URL.revokeObjectURL(i)}else if(e===`json`){let e=new Blob([JSON.stringify(o,null,2)],{type:`application/json`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=a(`json`),n.click(),URL.revokeObjectURL(t)}yt(!1)},[W,tn,kt,k.objectName,k.filter,k.searchableFields,Dt,U,V,nt,z,L,G,E]),pn=Q.useMemo(()=>(Array.isArray(k.columns)?k.columns:[]).flatMap(e=>{if(typeof e==`string`)return[{name:e,label:M(e,e)}];let t=P(e);return t?[{name:t,label:M(t,e.label||t)}]:[]}),[k.columns,M]);return(0,$.jsxs)(`div`,{ref:Bt,className:X(`flex flex-col h-full bg-background relative min-w-0 overflow-hidden`,t),...k.aria?.ariaLabel?{"aria-label":k.aria.ariaLabel}:{},...k.aria?.ariaDescribedBy?{"aria-describedby":k.aria.ariaDescribedBy}:{},...k.aria?.live?{"aria-live":k.aria.live}:{},role:k.aria?.role??`region`,"aria-busy":xe||void 0,"data-state":xe?`loading`:`idle`,children:[Ht>0&&(0,$.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:Ht},children:S(Vt?`list.refreshing`:`list.pullToRefresh`)}),k.description&&k.appearance?.showDescription!==!1&&(0,$.jsx)(`div`,{className:`px-4 pt-1.5 text-xs text-muted-foreground bg-background`,"data-testid":`view-description`,children:typeof k.description==`string`?k.description:``}),(0,$.jsxs)(`div`,{className:`border-b px-2 sm:px-4 py-1.5 flex items-center justify-between gap-1 sm:gap-2 bg-background`,children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2 overflow-x-auto min-w-0`,children:it&&(0,$.jsx)(`div`,{className:`shrink-0 min-w-0 overflow-x-auto`,"data-testid":`user-filters`,children:(0,$.jsx)(Zn,{config:it,objectDef:G,data:W,onFilterChange:rt,maxVisible:3,initialSelections:f,onSelectionsChange:h})})}),(0,$.jsxs)(`div`,{className:`flex items-center gap-0 shrink-0 rounded-lg border border-border bg-muted/40 p-0.5 shadow-sm`,children:[x&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(Un,{currentView:I,availableViews:Zt,onViewChange:Qt}),(0,$.jsx)(`div`,{className:`h-4 w-px bg-border/60 mx-0.5`})]}),I===`grid`&&c&&!F.compactToolbar&&(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:()=>_t(!ht),className:X(`hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,ht&&`text-primary`),title:S(`list.inlineEditLabel`,{defaultValue:`Edit records inline (click a cell to edit)`}),"data-testid":`toolbar-inline-edit-toggle`,children:[(0,$.jsx)(me,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.inlineEditShort`,{defaultValue:`Edit inline`})})]}),F.showHideFields&&!F.compactToolbar&&(0,$.jsxs)(tt,{open:pt,onOpenChange:mt,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,ot.size>0&&`text-primary`),children:[(0,$.jsx)(sn,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.hideFields`)}),ot.size>0&&(0,$.jsx)(`span`,{className:`ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums`,children:ot.size})]})}),(0,$.jsx)(he,{align:`start`,className:`w-64 p-3`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-2`,children:[(0,$.jsx)(`h4`,{className:`font-medium text-sm`,children:S(`list.hideFieldsTitle`)}),ot.size>0&&(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:()=>ut(new Set),children:S(`list.showAll`)})]}),(0,$.jsx)(`div`,{className:`max-h-60 overflow-y-auto space-y-1`,children:pn.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-sm py-1 px-1 rounded hover:bg-muted cursor-pointer`,children:[(0,$.jsx)(`input`,{type:`checkbox`,checked:!ot.has(e.name),onChange:()=>{let t=new Set(ot);t.has(e.name)?t.delete(e.name):t.add(e.name),ut(t)},className:`rounded border-input`}),(0,$.jsx)(`span`,{className:`truncate`,children:e.label})]},e.name))})]})})]}),F.showHideFields&&!F.compactToolbar&&(F.showFilters||F.showSort||F.showGroup)&&(0,$.jsx)(`div`,{className:`hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0`}),F.showFilters&&(0,$.jsxs)(tt,{open:de,onOpenChange:fe,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,rn&&`text-foreground font-medium`),children:[(0,$.jsx)(J,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.filter`)}),rn&&(0,$.jsx)(`span`,{className:`ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums`,children:V.conditions?.length||0})]})}),(0,$.jsx)(he,{align:`start`,className:`w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4`,children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsx)(`div`,{className:`flex items-center justify-between border-b pb-2`,children:(0,$.jsx)(`h4`,{className:`font-medium text-sm`,children:S(`list.filterRecords`)})}),(0,$.jsx)(Wt,{fields:an,value:V,onChange:e=>{H(e),r&&r(e)}})]})})]}),F.showGroup&&!F.compactToolbar&&(0,$.jsxs)(tt,{open:He,onOpenChange:Ue,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,Y&&`text-foreground font-medium`),children:[(0,$.jsx)(De,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.group`)}),Y&&Y.fields?.length>0&&(0,$.jsx)(`span`,{className:`ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums`,children:Y.fields.length})]})}),(0,$.jsx)(he,{align:`start`,className:`w-72 p-3`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-2`,children:[(0,$.jsx)(`h4`,{className:`font-medium text-sm`,children:S(`list.groupBy`)}),Y&&(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:()=>Ve(void 0),"data-testid":`clear-grouping`,children:S(`list.clear`)})]}),(0,$.jsx)(`div`,{"data-testid":`group-field-list`,children:(0,$.jsx)(fn,{value:Y,fieldOptions:pn.map(e=>({value:e.name,label:e.label||e.name})),maxLevels:3,labels:{addGroup:S(`list.addGroup`,{defaultValue:`Add group field`}),collapseTitle:S(`list.collapsedByDefault`,{defaultValue:`Collapsed by default`}),removeTitle:S(`list.removeGroup`,{defaultValue:`Remove`})},onChange:e=>Ve(e)})})]})})]}),F.showSort&&(0,$.jsxs)(tt,{open:oe,onOpenChange:ce,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,z.length>0&&`text-foreground font-medium`),children:[(0,$.jsx)($e,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.sort`)}),z.length>0&&(0,$.jsx)(`span`,{className:`ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums`,children:z.length})]})}),(0,$.jsx)(he,{align:`start`,className:`w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4`,children:(0,$.jsxs)(`div`,{className:`space-y-4`,children:[(0,$.jsx)(`div`,{className:`flex items-center justify-between border-b pb-2`,children:(0,$.jsx)(`h4`,{className:`font-medium text-sm`,children:S(`list.sortRecords`)})}),(0,$.jsx)(cn,{fields:on,value:z,onChange:e=>{ue(e),i&&i(e)}}),ln&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,"data-testid":`sort-relational-hint`,children:S(`list.sortRelationalHint`)})]})})]}),!F.compactToolbar&&(F.showFilters||F.showSort||F.showGroup)&&(F.showColor||F.showDensity)&&(0,$.jsx)(`div`,{className:`hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0`}),F.showColor&&!F.compactToolbar&&(0,$.jsxs)(tt,{open:qe,onOpenChange:Je,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,Ge&&`text-foreground font-medium`),children:[(0,$.jsx)(Ee,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.color`)})]})}),(0,$.jsx)(he,{align:`start`,className:`w-64 p-3`,children:(0,$.jsxs)(`div`,{className:`space-y-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between border-b pb-2`,children:[(0,$.jsx)(`h4`,{className:`font-medium text-sm`,children:S(`list.rowColor`)}),Ge&&(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,className:`h-6 px-2 text-xs`,onClick:()=>Ke(void 0),"data-testid":`clear-row-color`,children:S(`list.clear`)})]}),(0,$.jsxs)(`div`,{className:`space-y-2`,"data-testid":`color-field-list`,children:[(0,$.jsx)(`label`,{className:`text-xs text-muted-foreground`,children:S(`list.colorByField`)}),(0,$.jsxs)(`select`,{className:`w-full h-8 rounded border border-input bg-background px-2 text-xs`,value:Ge?.field||``,onChange:e=>{let t=e.target.value;Ke(t?{field:t,colors:Ge?.colors||{}}:void 0)},"data-testid":`color-field-select`,children:[(0,$.jsx)(`option`,{value:``,children:S(`list.none`)}),pn.map(e=>(0,$.jsx)(`option`,{value:e.name,children:e.label},e.name))]})]})]})})]}),F.showDensity&&!F.compactToolbar&&I!==`gallery`&&(()=>{let e=Pt.mode===`compact`?Ze:Pt.mode===`comfortable`?le:Mt,t=Pt.mode===`compact`?S(`grid.toolbar.densityCompact`,{defaultValue:`Compact`}):Pt.mode===`comfortable`?S(`grid.toolbar.densityComfortable`,{defaultValue:`Comfortable`}):S(`grid.toolbar.densitySpacious`,{defaultValue:`Spacious`}),n=`${S(`grid.toolbar.densityMode`,{defaultValue:`Density`})}: ${t}`,r=S(`grid.toolbar.densityCycleHint`,{defaultValue:`{{label}} (click to cycle)`,label:n});return(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,"aria-label":n,className:X(`hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150`,Pt.mode!==`compact`&&`text-foreground font-medium`),onClick:Pt.cycle,title:r,children:(0,$.jsx)(e,{className:`h-3.5 w-3.5`})})})(),F.showDensity&&!F.compactToolbar&&I===`gallery`&&(()=>{let e=Lt===`small`?Ze:Lt===`medium`?le:Mt,t=Lt===`small`?S(`grid.toolbar.densityCompact`,{defaultValue:`Compact`}):Lt===`medium`?S(`grid.toolbar.densityComfortable`,{defaultValue:`Comfortable`}):S(`grid.toolbar.densitySpacious`,{defaultValue:`Spacious`}),n=`${S(`grid.toolbar.densityMode`,{defaultValue:`Density`})}: ${t}`,r=S(`grid.toolbar.densityCycleHint`,{defaultValue:`{{label}} (click to cycle)`,label:n});return(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,"aria-label":n,className:X(`hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150`,Lt!==`small`&&`text-foreground font-medium`),onClick:zt,title:r,children:(0,$.jsx)(e,{className:`h-3.5 w-3.5`})})})(),F.compactToolbar&&(F.showGroup||F.showColor||F.showDensity||F.showHideFields)&&(0,$.jsx)(Gn,{t:S,allFields:pn,showGroup:F.showGroup,groupingConfig:Y,setGroupingConfig:Ve,showColor:F.showColor,rowColorConfig:Ge,setRowColorConfig:Ke,showDensity:F.showDensity,density:Pt,showHideFields:F.showHideFields,hiddenFields:ot,updateHiddenFields:ut,showInlineEdit:I===`grid`,inlineEdit:ht,setInlineEdit:_t}),(F.showColor||F.showDensity||F.compactToolbar)&&kt&&Dt&&jt.length>0&&(0,$.jsx)(`div`,{className:`h-5 w-px bg-border/50 mx-1 shrink-0`}),F.showRefresh&&(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,className:`h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150`,onClick:()=>q(e=>e+1),disabled:xe,title:S(`list.refresh`),"aria-label":S(`list.refresh`),"data-testid":`refresh-button`,children:(0,$.jsx)(En,{className:X(`h-3.5 w-3.5`,xe&&`animate-spin`)})}),kt&&Dt&&jt.length>0&&(0,$.jsxs)(tt,{open:vt,onOpenChange:yt,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,children:[(0,$.jsx)(Ln,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.export`)})]})}),(0,$.jsx)(he,{align:`start`,className:`w-48 p-2`,children:(0,$.jsxs)(`div`,{className:`space-y-1`,children:[jt.map(e=>(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`w-full justify-start h-8 text-xs`,disabled:bt,onClick:()=>dn(e),children:[bt?(0,$.jsx)(Tn,{className:`h-3.5 w-3.5 mr-2 animate-spin`}):(0,$.jsx)(Ln,{className:`h-3.5 w-3.5 mr-2`}),S(`list.exportAs`,{format:e.toUpperCase()})]},e)),St&&(0,$.jsx)(`div`,{className:`px-2 py-1 text-xs`,style:{color:`var(--destructive, #ef4444)`},role:`alert`,children:St})]})})]}),k.sharing?.type&&(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,title:`Sharing: ${k.sharing.type}`,"data-testid":`share-button`,children:[(0,$.jsx)(ft,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.share`)})]}),k.allowPrinting&&(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,onClick:()=>window.print(),"data-testid":`print-button`,children:[(0,$.jsx)(gn,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.print`)})]}),(()=>{let e=k.allowPrinting||!!k.sharing?.type||kt&&Dt&&jt.length>0;return F.showSearch&&e?(0,$.jsx)(`div`,{className:`h-5 w-px bg-border/50 mx-1 shrink-0`}):null})(),F.showSearch&&(0,$.jsxs)(tt,{open:ae,onOpenChange:R,children:[(0,$.jsx)(Nn,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:X(`hidden sm:inline-flex h-7 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,L?`px-2 text-foreground font-medium`:`w-7 p-0`),"data-testid":`search-icon-button`,title:L?`${S(`list.search`)}: ${L}`:S(`list.search`),children:[(0,$.jsx)(ke,{className:`h-3.5 w-3.5`}),L&&(0,$.jsx)(`span`,{className:`ml-1.5 max-w-[8rem] truncate text-[11px]`,"data-testid":`search-active-keyword`,children:L})]})}),(0,$.jsx)(he,{align:`end`,className:`w-[calc(100vw-2rem)] sm:w-64 p-2`,"data-testid":`search-popover`,children:(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(ke,{className:`absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,$.jsx)(at,{placeholder:S(`list.search`)+`...`,value:L,onChange:e=>$t(e.target.value),className:`pl-7 h-8 text-xs`,autoFocus:!0}),L&&(0,$.jsx)(Z,{variant:`ghost`,size:`sm`,className:`absolute right-0.5 top-1/2 -translate-y-1/2 h-5 w-5 p-0 hover:bg-muted-foreground/20`,onClick:()=>$t(``),children:(0,$.jsx)(Me,{className:`h-3 w-3`})})]})})]}),F.showAddRecordTop&&(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,"data-testid":`add-record-button`,onClick:()=>y.onAddRecord?.(),children:[(0,$.jsx)(It,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.addRecord`)})]})]})]}),(0,$.jsxs)(`div`,{className:`flex-1 min-h-0 bg-background relative overflow-hidden animate-in fade-in-0 duration-200`,children:[(0,$.jsx)(se,{active:xe&&W.length>0}),ge&&W.length===0?(0,$.jsx)(Ye,{"data-testid":`list-error-state`,"data-error-kind":ve,className:`h-full min-h-[200px] p-8 gap-1 [&>h3]:text-lg [&>h3]:font-medium [&>h3]:text-foreground [&>p]:max-w-md`,icon:ve===`network`?(0,$.jsx)(Et,{className:`h-12 w-12 text-destructive/60`}):(0,$.jsx)(ct,{className:`h-12 w-12 text-destructive/60`}),iconWrapperClassName:`mb-3`,title:S(ve===`forbidden`?`list.loadErrorForbiddenTitle`:ve===`unauthorized`?`list.loadErrorUnauthorizedTitle`:ve===`rejected`?`list.loadErrorRejectedTitle`:`list.loadErrorTitle`),description:S(ve===`forbidden`?`list.loadErrorForbiddenMessage`:ve===`unauthorized`?`list.loadErrorUnauthorizedMessage`:ve===`rejected`?`list.loadErrorRejectedMessage`:`list.loadErrorMessage`),action:(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,"data-testid":`list-error-retry`,onClick:()=>q(e=>e+1),children:[(0,$.jsx)(En,{className:`h-4 w-4 mr-1.5`}),S(`list.retry`)]})}):xe&&W.length===0?(0,$.jsxs)(`div`,{className:`flex flex-col h-full min-h-[200px] p-4 gap-2`,"data-testid":`list-loading`,role:`status`,"aria-live":`polite`,"aria-busy":`true`,children:[(0,$.jsx)(`span`,{className:`sr-only`,children:S(`list.loading`)}),[0,1,2,3,4,5].map(e=>(0,$.jsx)(`div`,{className:`h-9 rounded bg-muted/60 animate-pulse`,style:{opacity:Math.max(.25,1-e*.12)}},e))]}):!xe&&W.length===0&&I===`grid`?(()=>{let e=k.emptyState?.icon,t=e?dt[e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]??ye:ye,n=!!(L&&L.trim())||Array.isArray(nt)&&nt.length>0||Array.isArray(V?.conditions)&&V.conditions.length>0,r=(typeof k.emptyState?.title==`string`?k.emptyState.title:void 0)??S(n?`list.noMatches`:`list.firstRunTitle`),i=(typeof k.emptyState?.message==`string`?k.emptyState.message:void 0)??S(n?`list.noMatchesMessage`:`list.firstRunMessage`);return(0,$.jsx)(Ye,{"data-testid":`empty-state`,className:`h-full min-h-[200px] p-8 gap-1 [&>h3]:text-lg [&>h3]:font-medium [&>h3]:text-foreground [&>p]:max-w-md`,icon:(0,$.jsx)(t,{className:`h-12 w-12 text-muted-foreground/50`}),iconWrapperClassName:`mb-3`,title:r,description:i,action:F.showAddRecord?(0,$.jsxs)(Z,{variant:`default`,size:`sm`,"data-testid":`empty-state-add-record`,onClick:()=>y.onAddRecord?.(),children:[(0,$.jsx)(It,{className:`h-4 w-4 mr-1.5`}),S(`list.addRecord`)]}):void 0})})():(0,$.jsx)(D,{schema:nn,...y,...qt?{}:{data:W},loading:xe,onRowSelect:Qe,...I===`grid`&&!Y?.fields?.length&&Re!=null?{manualPagination:!0,rowCount:Re,page:Fe,pageSize:Pe,onPageChange:e=>Le(e),onPageSizeChange:e=>{Ne(e),Le(1)},sort:z,onSortChange:un}:{}})]},I),F.showAddRecordBottom&&(0,$.jsx)(`div`,{className:`border-t px-2 sm:px-4 py-1 bg-background shrink-0`,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150`,"data-testid":`add-record-button`,onClick:()=>y.onAddRecord?.(),children:[(0,$.jsx)(It,{className:`h-3.5 w-3.5 mr-1.5`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:S(`list.addRecord`)})]})}),Ot&&Ot.length>0&&Xe.length>0&&I!==`grid`&&(0,$.jsxs)(`div`,{className:`border-t border-primary/30 px-4 py-2 flex items-center gap-2 text-xs bg-primary/10 text-foreground shrink-0 shadow-sm`,role:`region`,"aria-label":`Bulk actions`,"data-testid":`bulk-actions-bar`,children:[(0,$.jsx)(Ie,{className:`h-3.5 w-3.5 text-primary shrink-0`}),(0,$.jsxs)(`span`,{className:`font-medium`,children:[Xe.length,` `,Xe.length===1?`item`:`items`,` selected`]}),(0,$.jsx)(`div`,{className:`flex items-center gap-1.5 ml-3`,children:Ot.map(e=>{let t=String(e).toLowerCase(),n=t.includes(`delete`)||t.includes(`remove`)||t.includes(`destroy`),r=n?At:null;return(0,$.jsxs)(Z,{variant:n?`destructive`:`outline`,size:`sm`,className:`h-7 px-2.5 text-xs gap-1.5`,onClick:()=>y.onBulkAction?.(e,Xe),"data-testid":`bulk-action-${e}`,children:[r&&(0,$.jsx)(r,{className:`h-3 w-3`}),N(e)]},e)})}),(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`h-7 px-2 text-xs ml-auto gap-1`,onClick:()=>Qe([]),children:[(0,$.jsx)(Me,{className:`h-3 w-3`}),`Clear`]})]}),!xe&&W.length>0&&k.showRecordCount!==!1&&(0,$.jsxs)(`div`,{className:`border-t px-4 py-2 flex items-center gap-3 text-xs text-muted-foreground bg-background shrink-0`,"data-testid":`record-count-bar`,children:[(0,$.jsx)(`span`,{className:`font-medium text-foreground/80`,children:(()=>{let e=Re??W.length;return S(e===1?`list.recordCountOne`:`list.recordCount`,{count:e})})()}),Oe&&(0,$.jsx)(`span`,{className:`text-amber-600`,"data-testid":`data-limit-warning`,children:S(`list.dataLimitReached`,{limit:Pe})}),I!==`grid`&&k.pagination?.pageSizeOptions&&k.pagination.pageSizeOptions.length>0&&(0,$.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[(0,$.jsx)(`span`,{children:S(`table.rowsPerPage`,{defaultValue:`Rows per page`})}),(0,$.jsx)(`select`,{"data-testid":`page-size-selector`,className:`h-7 w-[72px] px-2 py-1 text-xs rounded-md border border-input bg-background`,value:String(Pe),onChange:e=>{let t=Number(e.target.value);Ne(t),y.onPageSizeChange&&y.onPageSizeChange(t)},children:k.pagination.pageSizeOptions.map(e=>(0,$.jsx)(`option`,{value:String(e),children:e},e))})]})]}),en.isOverlay&&(0,$.jsx)(Jt,{...en,title:k.label?`${k.label} Detail`:k.objectName?`${k.objectName.charAt(0).toUpperCase()+k.objectName.slice(1)} Detail`:`Record Detail`,children:e=>(0,$.jsx)(`div`,{className:`space-y-3`,children:Object.entries(e).map(([e,t])=>(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:e.replace(/_/g,` `)}),(0,$.jsx)(`span`,{className:`text-sm`,children:String(t??`—`)})]},e))})})]})});hr.displayName=`ListView`;var gr={small:`grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6`,medium:`grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`,large:`grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3`},_r={small:`aspect-square`,medium:`aspect-[4/3]`,large:`aspect-[16/10]`},vr=new Set([`number`,`currency`,`percent`,`integer`,`decimal`]),yr=[{bg:`from-indigo-500/15 via-indigo-500/5 to-purple-500/10`,ring:`ring-indigo-500/15`,text:`text-indigo-600/70 dark:text-indigo-300/70`},{bg:`from-sky-500/15 via-sky-500/5 to-cyan-500/10`,ring:`ring-sky-500/15`,text:`text-sky-600/70 dark:text-sky-300/70`},{bg:`from-emerald-500/15 via-emerald-500/5 to-teal-500/10`,ring:`ring-emerald-500/15`,text:`text-emerald-600/70 dark:text-emerald-300/70`},{bg:`from-amber-500/15 via-amber-500/5 to-orange-500/10`,ring:`ring-amber-500/15`,text:`text-amber-600/70 dark:text-amber-300/70`},{bg:`from-rose-500/15 via-rose-500/5 to-pink-500/10`,ring:`ring-rose-500/15`,text:`text-rose-600/70 dark:text-rose-300/70`},{bg:`from-violet-500/15 via-violet-500/5 to-fuchsia-500/10`,ring:`ring-violet-500/15`,text:`text-violet-600/70 dark:text-violet-300/70`}];function br(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n);return yr[Math.abs(t)%yr.length]}var xr=({imageUrl:e,title:t,coverFit:n,aspectClass:r,placeholder:i,hidden:a})=>{let[o,s]=(0,Q.useState)(!1),c=!!e&&!o;return(0,$.jsx)(`div`,{className:X(`w-full overflow-hidden relative`,r),hidden:a,children:c?n===`contain`?(0,$.jsx)(`div`,{className:X(`flex h-full w-full items-center justify-center bg-gradient-to-br`,i.bg),children:(0,$.jsx)(`img`,{src:e,alt:t,loading:`lazy`,onError:()=>s(!0),className:`h-1/2 w-1/2 max-h-24 max-w-24 object-contain transition-transform duration-300 ease-out group-hover:scale-[1.08]`})}):(0,$.jsx)(`img`,{src:e,alt:t,loading:`lazy`,onError:()=>s(!0),className:`h-full w-full object-cover transition-transform duration-300 ease-out group-hover:scale-[1.04]`}):(0,$.jsx)(`div`,{className:X(`flex h-full w-full items-center justify-center bg-gradient-to-br ring-1 ring-inset`,i.bg,i.ring),children:(0,$.jsx)(`span`,{className:X(`text-5xl font-semibold tracking-tight opacity-90`,i.text),children:t[0]?.toUpperCase()})})})},Sr=({imageUrl:e,title:t,placeholder:n})=>{let[r,i]=(0,Q.useState)(!1),a=!!e&&!r;return(0,$.jsx)(`div`,{className:X(`flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br ring-1 ring-inset`,n.bg,n.ring),children:a?(0,$.jsx)(`img`,{src:e,alt:t,loading:`lazy`,onError:()=>i(!0),className:`h-6 w-6 object-contain transition-transform duration-300 ease-out group-hover:scale-110`}):(0,$.jsx)(`span`,{className:X(`text-base font-semibold`,n.text),children:t[0]?.toUpperCase()})})};_.register(`object-gallery`,e=>{let{schema:t}=e,n=(0,Q.useContext)(re),r=e.dataSource||n?.dataSource,i=k(t.bind),[a,o]=(0,Q.useState)([]),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(null),d=T({navigation:t.navigation,objectName:t.objectName,onRowClick:e.onRowClick??e.onCardClick}),f=t.gallery,m=f?.coverField??t.imageField??`image`,h=f?.coverFit??`cover`,g=f?.cardSize??`medium`,_=f?.titleField??t.titleField,v=f?.visibleFields,{fieldLabel:y,fieldOptionLabel:b}=Nt(),x=(0,Q.useCallback)(e=>{let n=l?.fields?.[e],r={name:e};if(n){n.type&&(r.type=n.type),n.label&&(r.label=n.label),n.options&&(r.options=n.options),n.currency&&(r.currency=n.currency),n.precision!==void 0&&(r.precision=n.precision),n.format&&(r.format=n.format);let e=n.reference_to||n.reference;e&&(r.reference_to=e),n.reference_field&&(r.reference_field=n.reference_field)}if(t.objectName){let n=String(r.label??e);r.label=y(t.objectName,e,n)}return t.objectName&&Array.isArray(r.options)&&(r.options=r.options.map(n=>{let r=String(n?.value??n),i=String(n?.label??r);return{...n,value:r,label:b(t.objectName,e,r,i)}})),r},[l,t.objectName,y,b]);(0,Q.useEffect)(()=>{let e=!0;return(async()=>{if(!(!r||typeof r.getObjectSchema!=`function`||!t.objectName))try{let n=await r.getObjectSchema(t.objectName);e&&u(n)}catch(e){console.warn(`Failed to fetch object def for ObjectGallery`,e)}})(),()=>{e=!1}},[t.objectName,r]),(0,Q.useEffect)(()=>{let n=!0;if(e.data&&Array.isArray(e.data)){o(e.data);return}return t.objectName&&!i&&!t.data&&!e.data&&(async()=>{if(!(!r||typeof r.find!=`function`||!t.objectName)){n&&c(!0);try{let e=p(l?.fields),i=await r.find(t.objectName,{$filter:t.filter,...e.length>0?{$expand:e}:{}}),a=[];if(Array.isArray(i))a=i;else if(i&&typeof i==`object`){let e=i;Array.isArray(e.records)?a=e.records:Array.isArray(e.data)&&(a=e.data)}n&&o(a)}catch(e){console.error(`[ObjectGallery] Fetch error:`,e)}finally{n&&c(!1)}}})(),()=>{n=!1}},[t.objectName,r,i,t.data,t.filter,e.data,l]);let S=e.data||i||t.data||a||[],C=(0,Q.useMemo)(()=>S.some(e=>typeof e[m]==`string`&&!!e[m]),[S,m]),E=t.grouping?.fields,D=!!(E&&E.length>0),[O,ee]=(0,Q.useState)({}),te=(0,Q.useMemo)(()=>E?E.some(e=>e.collapsed):!1,[E]),A=(0,Q.useCallback)(e=>{ee(t=>({...t,[e]:t[e]===void 0?!te:!t[e]}))},[te]),j=(0,Q.useMemo)(()=>{if(!D||!E)return[];let e=new Map,t=[];for(let n of S){let r=E.map(e=>String(n[e.field]??``)).join(` / `);if(!e.has(r)){let i=E.map(e=>{let t=n[e.field];return t!=null&&t!==``?String(t):`(empty)`}).join(` / `);e.set(r,{label:i,items:[]}),t.push(r)}e.get(r).items.push(n)}let n=E[0]?.order??`asc`;return t.sort((e,t)=>{let r=e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`});return n===`desc`?-r:r}),t.map(t=>{let n=e.get(t),r=t in O?O[t]:te;return{key:t,label:n.label,items:n.items,collapsed:r}})},[S,E,D,O,te]);if(s&&!S.length)return(0,$.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:`Loading Gallery...`});if(!S.length)return(0,$.jsx)(`div`,{className:`p-4 text-sm text-muted-foreground`,children:`No items to display`});let M=e=>!v||v.length===0?null:(0,$.jsx)(`div`,{className:`mt-1.5 space-y-1`,children:v.map(t=>{let n=e[t];if(n==null||n===``)return null;let r=x(t),i=Ft(r)||r.type||`text`,a=kt(i),o=r?.label&&String(r.label).trim()?String(r.label):void 0,s=o!=null&&vr.has(i);return(0,$.jsxs)(`div`,{className:X(`text-xs text-muted-foreground truncate [&_*]:!text-xs`,s&&`flex items-baseline gap-1.5`),onClick:e=>{e.target.closest(`a,button`)&&e.stopPropagation()},children:[s&&(0,$.jsx)(`span`,{className:`shrink-0 text-muted-foreground/70 tabular-nums`,children:o}),(0,$.jsx)(a,{value:n,field:r})]},t)})}),N=(n,r)=>{let i=n.id??n._id??r,a=(_!=null&&n[_]!=null&&n[_]!==``?String(n[_]):void 0)??w(l,n),o=n[m],s=br(String(i)+`|`+a),c=X(`group relative overflow-hidden border-border/60 bg-card`,`transition-all duration-200 ease-out`,`hover:shadow-lg hover:border-border hover:-translate-y-0.5`,(e.onCardClick||e.onRowClick||t.navigation)&&`cursor-pointer`);return C&&h===`contain`?(0,$.jsxs)(bt,{role:`listitem`,className:c,onClick:e=>d.handleClick(n,e),children:[(0,$.jsx)(`div`,{"aria-hidden":!0,className:X(`absolute inset-x-0 top-0 h-[3px] bg-gradient-to-r`,s.bg)}),(0,$.jsx)(jn,{className:`p-4`,children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(Sr,{imageUrl:o,title:a,placeholder:s}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(`h3`,{className:`font-semibold tracking-tight truncate text-sm leading-tight text-foreground`,title:a,children:a}),M(n)]})]})})]},i):(0,$.jsxs)(bt,{role:`listitem`,className:c,onClick:e=>d.handleClick(n,e),children:[!C&&(0,$.jsx)(`div`,{"aria-hidden":!0,className:X(`absolute inset-x-0 top-0 h-[3px] bg-gradient-to-r`,s.bg)}),(0,$.jsx)(xr,{imageUrl:o,title:a,coverFit:h,aspectClass:_r[g],placeholder:s,hidden:!C}),(0,$.jsxs)(jn,{className:X(`p-3`,C&&`border-t border-border/60`),children:[(0,$.jsx)(`h3`,{className:`font-semibold tracking-tight truncate text-sm leading-tight text-foreground`,title:a,children:a}),M(n)]})]},i)},P=e=>(0,$.jsx)(`div`,{className:X(`grid gap-4 p-4 auto-rows-min content-start`,gr[g],t.className),role:`list`,children:e.map((e,t)=>N(e,t))});return(0,$.jsxs)($.Fragment,{children:[D?(0,$.jsx)(`div`,{className:`space-y-2`,children:j.map(e=>(0,$.jsxs)(`div`,{className:`border rounded-md`,children:[(0,$.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 px-3 py-2 text-sm font-medium text-left bg-muted/50 hover:bg-muted transition-colors`,onClick:()=>A(e.key),children:[e.collapsed?(0,$.jsx)(Gt,{className:`h-4 w-4 shrink-0`}):(0,$.jsx)(pn,{className:`h-4 w-4 shrink-0`}),(0,$.jsx)(`span`,{children:e.label}),(0,$.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground`,children:e.items.length})]}),!e.collapsed&&P(e.items)]},e.key))}):P(S),d.isOverlay&&(0,$.jsx)(Jt,{...d,title:`Gallery Item`,children:e=>(0,$.jsx)(`div`,{className:`space-y-3`,children:Object.entries(e).map(([e,t])=>(0,$.jsxs)(`div`,{className:`flex flex-col`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:e.replace(/_/g,` `)}),(0,$.jsx)(`span`,{className:`text-sm`,children:String(t??`—`)})]},e))})})]})},{namespace:`plugin-list`,label:`Gallery View`,category:`view`}),_.register(`list-view`,hr,{namespace:`plugin-list`,label:`List View`,category:`Views`,icon:`LayoutList`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`viewType`,type:`enum`,label:`Default View`,enum:[{label:`Grid`,value:`grid`},{label:`Kanban`,value:`kanban`},{label:`Gallery`,value:`gallery`},{label:`Calendar`,value:`calendar`},{label:`Timeline`,value:`timeline`},{label:`Gantt`,value:`gantt`},{label:`Map`,value:`map`}],defaultValue:`grid`},{name:`columns`,type:`array`,label:`Columns`},{name:`filter`,type:`array`,label:`Filter`},{name:`sort`,type:`array`,label:`Sort`},{name:`options`,type:`object`,label:`View Options`}],defaultProps:{objectName:``,viewType:`grid`,columns:[],filter:[],sort:[],options:{}}}),_.register(`list`,hr,{namespace:`view`,skipFallback:!0,category:`view`,label:`List`,icon:`LayoutList`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`viewType`,type:`enum`,label:`Default View`,enum:[{label:`Grid`,value:`grid`},{label:`Kanban`,value:`kanban`},{label:`Gallery`,value:`gallery`},{label:`Calendar`,value:`calendar`},{label:`Timeline`,value:`timeline`},{label:`Gantt`,value:`gantt`},{label:`Map`,value:`map`}],defaultValue:`grid`},{name:`columns`,type:`array`,label:`Columns`},{name:`filter`,type:`array`,label:`Filter`},{name:`sort`,type:`array`,label:`Sort`},{name:`options`,type:`object`,label:`View Options`}]});var Cr=new Set([`textarea`,`markdown`,`html`,`grid`,`rich-text`,`field:textarea`,`field:markdown`,`field:html`,`field:grid`,`field:rich-text`]);function wr(e){return Cr.has(e)}function Tr(e,t){let n;return n=e<=3?1:e<=8?2:e<=15?3:4,t!==void 0&&t<640?Math.min(n,1):n}function Er(e,t){return t<=1?e:e.map(e=>e.span===void 0&&e.type&&wr(e.type)?{...e,span:t}:e)}function Dr(e,t,n){if(t!==void 0)return{fields:Er(e,t),columns:t};let r=Tr(e.length,n);return{fields:Er(e,r),columns:r}}var Or=Dn({"detail.back":`Back`,"detail.edit":`Edit`,"detail.editInline":`Edit`,"detail.save":`Save`,"detail.saveChanges":`Save changes`,"detail.editFieldsInline":`Edit fields inline`,"detail.editInlineHint":`Double-click to edit`,"detail.cancel":`Cancel`,"detail.cancelEdit":`Discard changes`,"detail.openInNewTab":`Open in new tab`,"detail.share":`Share`,"detail.duplicate":`Duplicate`,"detail.export":`Export`,"detail.viewHistory":`View history`,"detail.delete":`Delete`,"detail.moreActions":`More actions`,"detail.addToFavorites":`Add to favorites`,"detail.removeFromFavorites":`Remove from favorites`,"detail.previousRecord":`Previous record`,"detail.nextRecord":`Next record`,"detail.recordOf":`{{current}} of {{total}}`,"detail.recordNotFound":`Record not found`,"detail.recordNotFoundDescription":`The record you are looking for does not exist or may have been deleted.`,"detail.goBack":`Go back`,"detail.details":`Details`,"detail.related":`Related`,"detail.relatedRecords":`{{count}} records`,"detail.relatedRecordOne":`{{count}} record`,"detail.noRelatedRecords":`No related records found`,"detail.loading":`Loading...`,"detail.copyToClipboard":`Copy to clipboard`,"detail.copied":`Copied!`,"detail.deleteConfirmation":`Are you sure you want to delete this record?`,"detail.editRecord":`Edit record`,"detail.viewAll":`View All`,"detail.new":`New`,"detail.emptyValue":`—`,"detail.noValue":`No value`,"detail.activity":`Activity`,"detail.copyRecordId":`Copy record ID`,"detail.showEmptyFields":`Show {{count}} empty fields`,"detail.hideEmptyFields":`Hide empty fields`,"detail.editRow":`Edit`,"detail.deleteRow":`Delete`,"detail.deleteRowConfirmation":`Are you sure you want to delete this record?`,"detail.actions":`Actions`,"detail.previousPage":`Previous`,"detail.nextPage":`Next`,"detail.pageOf":`Page {{current}} of {{total}}`,"detail.sortBy":`Sort by`,"detail.filterPlaceholder":`Filter...`,"detail.highlightFields":`Key Fields`,"detail.comments":`Comments`,"detail.searchComments":`Search comments…`,"detail.addCommentPlaceholder":`Add a comment… (Ctrl+Enter to submit)`,"detail.noMatchingComments":`No matching comments`,"detail.noCommentsYet":`No comments yet`,"detail.pinned":`Pinned`,"detail.pin":`Pin`,"detail.unpin":`Unpin`,"detail.justNow":`just now`,"detail.minutesAgo":`{{count}}m ago`,"detail.hoursAgo":`{{count}}h ago`,"detail.daysAgo":`{{count}}d ago`,"detail.createdBy":`Created by`,"detail.updatedBy":`Updated by`,"detail.created":`Created`,"detail.updated":`Updated`,"detail.dropFilesToUpload":`Drop files here or click to upload`,"detail.attachmentCount":`{{count}} attachment`,"detail.attachmentCountPlural":`{{count}} attachments`,"detail.removeAttachment":`Remove attachment`,"detail.unifiedDiff":`Unified diff`,"detail.sideBySideDiff":`Side-by-side diff`,"detail.noChanges":`No changes`,"detail.previousVersion":`Previous`,"detail.currentVersion":`Current`,"detail.discussion":`Discussion`,"detail.showDiscussion":`Show Discussion ({{count}})`,"detail.hideDiscussion":`Hide discussion`,"detail.bold":`Bold (Ctrl+B)`,"detail.italic":`Italic (Ctrl+I)`,"detail.listFormat":`List`,"detail.inlineCode":`Inline code`,"detail.mentionSomeone":`Mention someone`,"detail.preview":`Preview`,"detail.submitComment":`Submit (Ctrl+Enter)`,"detail.sendComment":`Send`,"detail.writeComment":`Write a comment…`,"detail.subscribedTooltip":`Subscribed — click to unsubscribe`,"detail.unsubscribedTooltip":`Subscribe to notifications`,"detail.firstRecord":`First record (Home)`,"detail.previousRecordKey":`Previous record (←)`,"detail.nextRecordKey":`Next record (→)`,"detail.lastRecord":`Last record (End)`,"detail.noRecords":`No records`,"detail.showEmptyRelated_one":`+ {{count}} empty`,"detail.showEmptyRelated_other":`+ {{count}} empty`,"detail.searchWhileNavigating":`Search while navigating`,"detail.searchRecords":`Search records…`,"detail.allActivity":`All Activity`,"detail.commentsOnly":`Comments Only`,"detail.fieldChangesFilter":`Field Changes`,"detail.tasksOnly":`Tasks Only`,"detail.leaveCommentPlaceholder":`Leave a comment… (Ctrl+Enter to submit)`,"detail.noActivity":`No activity recorded`,"detail.loadMore":`Load more`,"detail.edited":`(edited)`,"detail.via":`via {{source}}`,"detail.viewSource":`View source`,"detail.replyCount":`{{count}} reply`,"detail.replyCountPlural":`{{count}} replies`,"detail.replyPlaceholder":`Reply…`,"detail.filterActivity":`Filter activity`,"detail.openDiscussion":`Open discussion panel`,"detail.closeDiscussion":`Close discussion panel`,"detail.subscribeAriaLabel":`Subscribe to notifications`,"detail.unsubscribeAriaLabel":`Unsubscribe from notifications`,"detail.clearSearch":`Clear search`,"detail.concurrentUpdateTitle":`This record was modified by someone else`,"detail.concurrentUpdateDescription":`Another user saved a newer version of {{field}} while you were editing. To prevent silently overwriting their change, please choose how to resolve the conflict.`,"detail.concurrentUpdateYourEdit":`Your edit`,"detail.concurrentUpdateCurrentValue":`Current value`,"detail.concurrentUpdateUpdatedBy":`Updated by {{name}}`,"detail.concurrentUpdateUpdatedAt":`Updated at {{when}}`,"detail.concurrentUpdateReload":`Reload latest`,"detail.concurrentUpdateOverwrite":`Overwrite anyway`,"detail.concurrentUpdateCancel":`Cancel`,"detail.lockedByApproval":`Locked for approval`,"detail.lockedTooltip":`This record has a pending approval request; editing is locked`,"detail.approvalPendingEditable":`In approval · editable`,"detail.approvalPendingTooltip":`This record has a pending approval request; this step still allows editing`,"detail.cancelApproval":`Recall approval`,"detail.cancelApprovalInFlight":`Recalling…`,"detail.cancelApprovalTooltip":`Recall the pending approval request to unlock this record`,"detail.cancelApprovalTooltipUnlocked":`Recall the pending approval request`,"detail.cancelApprovalFailed":`Failed to recall approval`,"detail.cancelApprovalUnavailable":`Recalling approvals is not supported on this data source`},`detail.back`);function kr(e){if(typeof e==`string`){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{return t}}return e??null}function Ar(e){let t=kr(e);return t==null||t===``?0:Array.isArray(t)?t.length:typeof t==`object`?Object.keys(t).length:1}function jr({value:e,field:t}){let{t:i}=Or(),a=N(),{appName:o}=r(),s=t?.name||``,c=a?.data?.name,l=o&&c?`/apps/${o}/metadata/permission/${encodeURIComponent(String(c))}`:null,u=Ar(e),d=u===0;return(0,$.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-x-2 gap-y-1 text-sm`,children:[(()=>{if(d)return(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:i(`perm.facet.none`,{defaultValue:`None`})});if(s===`system_permissions`){let t=Ce(e),n=t.slice(0,6),r=t.length-n.length;return(0,$.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-1`,children:[n.map(e=>(0,$.jsx)(ge,{variant:`outline`,children:e},e)),r>0&&(0,$.jsx)(`span`,{className:`text-muted-foreground text-xs`,children:i(`perm.facet.more`,{count:r,defaultValue:`+${r} more`})})]})}return(0,$.jsx)(`span`,{className:`text-foreground`,children:(()=>{switch(s){case`object_permissions`:return i(`perm.facet.objects`,{count:u,defaultValue:`${u} object${u===1?``:`s`}`});case`field_permissions`:return i(`perm.facet.fields`,{count:u,defaultValue:`${u} field rule${u===1?``:`s`}`});case`row_level_security`:return i(`perm.facet.rls`,{count:u,defaultValue:`${u} RLS polic${u===1?`y`:`ies`}`});case`tab_permissions`:return i(`perm.facet.tabs`,{count:u,defaultValue:`${u} tab rule${u===1?``:`s`}`});case`admin_scope`:return i(`perm.facet.adminScope`,{defaultValue:`Delegated admin configured`});default:return String(u)}})()})})(),l?(0,$.jsx)(n,{to:l,className:`text-primary hover:underline whitespace-nowrap`,children:i(`perm.facet.designInStudio`,{defaultValue:`Design in Studio →`})}):(0,$.jsx)(`span`,{className:`text-muted-foreground/60 whitespace-nowrap`,children:i(`perm.facet.designInStudioHint`,{defaultValue:`Design in Studio`})})]})}var Mr=new Set([`id`,`_id`,`__v`,`created`,`created_at`,`createdAt`,`created_by`,`modified`,`modified_by`,`updated_at`,`updatedAt`,`updated_by`,`deleted_at`,`is_deleted`,`deleted`,`instance_state`]),Nr=new Set([`formula`,`summary`,`rollup`,`auto_number`]),Pr=({field:e,value:t,onChange:n,dataSource:r,autoFocus:i})=>{let a=e.type,o=e.widget;if(o===`permission-facet-link`)return(0,$.jsx)(jr,{value:t,field:e});if(o===`capability-multiselect`)return(0,$.jsx)(Ge,{value:t,onChange:e=>n(e),field:e,dataSource:r});let s=a===`multiselect`||!!e.multiple;if((a===`select`||a===`multiselect`)&&Array.isArray(e.options)&&e.options.length>0)return s?(0,$.jsx)(Rn,{field:{...e,multiple:!0},value:Array.isArray(t)?t:t==null||t===``?[]:[t],onChange:e=>n(e)}):(0,$.jsx)(Rn,{field:e,value:t==null?``:String(t),onChange:e=>n(e)});if(a===`boolean`)return(0,$.jsx)(H,{field:e,value:!!t,onChange:e=>n(e)});if(a===`image`)return(0,$.jsx)(_e,{field:e,value:t,onChange:e=>n(e)});if(a===`avatar`)return(0,$.jsx)(Mn,{field:e,value:t,onChange:e=>n(e)});if(a===`signature`)return(0,$.jsx)(pe,{field:e,value:t,onChange:e=>n(e)});if(a===`file`||a===`video`||a===`audio`)return(0,$.jsx)(Ve,{field:e,value:t,onChange:e=>n(e)});let c=a===`user`||a===`owner`,l=a===`lookup`||a===`master_detail`||a===`tree`||!!e.reference_to&&!Nr.has(a);if(c||l)return(0,$.jsx)(c?xe:q,{field:e,value:t,onChange:e=>n(e),dataSource:r});if(a===`number`)return(0,$.jsx)(lt,{field:e,value:t,onChange:e=>n(e),autoFocus:i});if(a===`currency`)return(0,$.jsx)(Qe,{field:e,value:t,onChange:e=>n(e),autoFocus:i});if(a===`percent`)return(0,$.jsx)(ze,{field:e,value:t,onChange:e=>n(e),autoFocus:i});let u=a===`date`||a===`datetime`;return(0,$.jsx)(`input`,{type:u?`date`:`text`,autoFocus:i,className:`w-full px-2 py-1.5 text-sm border rounded-md bg-background focus:outline-none focus:ring-2 focus:ring-ring`,value:t==null?``:u?(()=>{let e=String(t);if(/^\d{4}-\d{2}-\d{2}/.test(e))return e.slice(0,10);let n=new Date(e);return isNaN(n.getTime())?``:n.toLocaleDateString(`en-CA`)})():String(typeof t==`object`?ln(t)??``:t),onChange:e=>{let t=e.target.value;n(u&&t?new Date(t+`T00:00:00`).toISOString():t)}})},Fr=`options.currency.currencyConfig.precision.scale.min.max.step.format.widget.dueLike.multiple.reference_field.display_field.displayField.description_field.descriptionField.id_field.allow_create.allowCreate.lookup_columns.lookupColumns.lookup_page_size.lookupPageSize.lookup_filters.lookupFilters.picker.subtitle.avatar_field.avatarField.depends_on.dependsOn`.split(`.`);function Ir(e,t){let n={...e};if(!t)return n;!n.type&&t.type&&(n.type=t.type);for(let e of Fr){let r=t[e];r!==void 0&&n[e]===void 0&&(n[e]=r)}let r=t.reference_to||t.reference;return r&&n.reference_to===void 0&&(n.reference_to=r),n}var Lr=({name:e})=>/^[a-z0-9][a-z0-9-]*$/i.test(e)?(0,$.jsx)(nt,{name:e,className:`h-4 w-4 shrink-0 text-muted-foreground`,"aria-hidden":!0}):(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:e});function Rr(e,t){return!e||e<=1||t<=1?``:t===2?e>=2?`md:col-span-2`:``:t===3?e===2?`md:col-span-2`:e>=3?`md:col-span-2 lg:col-span-3`:``:e===2?`md:col-span-2`:e===3?`md:col-span-2 lg:col-span-3`:e>=4?`md:col-span-2 lg:col-span-3 xl:col-span-4`:``}var zr=({section:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o,onEnterInlineEdit:s,autoFocusField:c,dataSource:l,virtualScroll:u})=>{let[d,f]=Q.useState(e.defaultCollapsed??!1),[p,m]=Q.useState(null),[h,g]=Q.useState(void 0),[_,v]=Q.useState(!1),{t:y}=Or(),{fieldLabel:b,translateOptions:x}=Nt(),S=Q.useCallback((e,t)=>{let n=t==null?``:String(t);navigator.clipboard.writeText(n).then(()=>{m(e),setTimeout(()=>m(null),2e3)})},[]),C=Q.useCallback(e=>{let n=t?.[e.name]??e.value;return n==null||n===``},[t]),w=Q.useMemo(()=>e.fields.filter(C).length,[e.fields,C]),T=mn(),E=T?3:4,O=T?.2:.25,ee=e.fields.length-w,k=!e.hideEmpty&&!a&&e.fields.length>=E&&w/e.fields.length>=O&&ee>0,te=!_&&(e.hideEmpty||k)?e.fields.filter(e=>!C(e)):e.fields,{fields:A,columns:j}=Dr(te,e.columns),M=Math.min(j,Math.max(1,te.length)),N=e=>{let n=t?.[e.name]??e.value;if(e.render)return(0,$.jsx)(D,{schema:e.render,data:{...t,value:n}});let u=Rr(e.span,M),d=r?.fields?.[e.name],f=Ir(e,d);i&&Array.isArray(f.options)&&f.options.length>0&&(f.options=x(i,e.name,f.options));let m=f.type||e.type,h=Nr.has(m),g=e.readonly===!0||d?.readonly===!0,_=Mr.has(e.name),v=!g&&!h&&!_,C=v&&!!s,w=(()=>{if((f.widget||e.widget)===`permission-facet-link`)return(0,$.jsx)(jr,{value:n,field:f});if(n==null||n===``)return(0,$.jsx)(`span`,{className:`text-muted-foreground/60 text-sm select-none`,"aria-label":y(`detail.noValue`,{defaultValue:`No value`}),title:y(`detail.noValue`,{defaultValue:`No value`}),children:`—`});let t=Ft(f)||e.type;if(t){let e=kt(t);if(e)return(0,$.jsx)(e,{value:n,field:f})}return String(n)})(),E=n!=null&&n!==``,O=E&&!C,ee=p===e.name,k=b(i||``,e.name,e.label||e.name);return T&&!(a&&v)?(0,$.jsxs)(`div`,{className:X(`flex items-baseline justify-between gap-4 py-2.5 min-h-[44px] group`,E&&`cursor-pointer active:bg-muted/40 transition-colors`),onClick:E?()=>S(e.name,n):void 0,onKeyDown:E?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),S(e.name,n))}:void 0,role:E?`button`:void 0,tabIndex:E?0:void 0,children:[(0,$.jsx)(`span`,{className:`text-[15px] text-muted-foreground shrink-0`,children:k}),(0,$.jsx)(`span`,{className:`text-[15px] text-foreground text-right break-words min-w-0 leading-snug`,children:w})]},e.name):(0,$.jsxs)(`div`,{className:X(`space-y-1.5 group min-w-0`,u),children:[(0,$.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:b(i||``,e.name,e.label||e.name)}),a&&v?(0,$.jsx)(`div`,{className:`min-h-[44px] sm:min-h-0`,children:(0,$.jsx)(Pr,{field:f,value:n,onChange:t=>o?.(e.name,t),dataSource:l,autoFocus:c===e.name})}):(0,$.jsxs)(`div`,{className:X(`flex items-start justify-between gap-2 min-h-[44px] sm:min-h-0 rounded-md`,O&&`cursor-pointer active:bg-muted/60 transition-colors`,C&&`cursor-pointer hover:bg-muted/40 transition-colors -mx-1.5 px-1.5`),onClick:O?()=>S(e.name,n):void 0,onDoubleClick:C?()=>s?.(e.name):void 0,onKeyDown:O?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),S(e.name,n))}:void 0,role:O?`button`:void 0,tabIndex:O?0:void 0,title:C?y(`detail.editInlineHint`):void 0,children:[(0,$.jsx)(`div`,{className:`text-sm flex-1 min-w-0 break-words py-1`,children:w}),C?(0,$.jsx)(xn,{children:(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0`,"aria-label":y(`detail.editInlineHint`),onClick:t=>{t.stopPropagation(),s?.(e.name)},children:(0,$.jsx)(me,{className:`h-3 w-3`})})}),(0,$.jsx)(un,{children:y(`detail.editInlineHint`)})]})}):E?(0,$.jsx)(xn,{children:(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0`,onClick:t=>{t.stopPropagation(),S(e.name,n)},children:ee?(0,$.jsx)(Cn,{className:`h-3 w-3 text-green-600`}):(0,$.jsx)(G,{className:`h-3 w-3`})})}),(0,$.jsx)(un,{children:y(ee?`detail.copied`:`detail.copyToClipboard`)})]})}):null]})]},e.name)},P=u?.enabled===!0,F=u?.batchSize??20;if(Q.useEffect(()=>{if(!P){g(void 0);return}if(A.length<=F){g(void 0);return}g(F);let e=setTimeout(()=>g(void 0),100);return()=>clearTimeout(e)},[P,A.length,F]),te.length===0&&w===e.fields.length)return null;let I=h===void 0?A:A.slice(0,h),ne=w>0&&(e.hideEmpty||k),L=(0,$.jsxs)($.Fragment,{children:[T?(0,$.jsx)(`div`,{className:`flex flex-col divide-y divide-border/60`,children:I.map(N)}):(0,$.jsx)(`div`,{className:X(`grid gap-3 sm:gap-4`,M===1?`grid-cols-1`:M===2?`grid-cols-1 md:grid-cols-2`:M===3?`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`:`grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`),children:I.map(N)}),ne&&(0,$.jsx)(`div`,{className:`mt-3 -ml-2`,children:(0,$.jsxs)(Z,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>v(e=>!e),className:`h-7 px-2 text-xs text-muted-foreground hover:text-foreground`,children:[_?(0,$.jsx)(sn,{className:`h-3.5 w-3.5 mr-1.5`}):(0,$.jsx)(yn,{className:`h-3.5 w-3.5 mr-1.5`}),_?y(`detail.hideEmptyFields`,{defaultValue:`Hide empty fields`}):y(`detail.showEmptyFields`,{count:w,defaultValue:`Show ${w} empty field${w===1?``:`s`}`})]})})]});return!e.title&&!e.collapsible&&e.showBorder===!1?(0,$.jsx)(`div`,{className:X(n),children:L}):e.collapsible?(0,$.jsx)(vn,{open:!d,onOpenChange:e=>f(!e),className:n,children:(0,$.jsxs)(bt,{children:[(0,$.jsx)(Ht,{asChild:!0,children:(0,$.jsxs)(Tt,{className:X(`py-3 px-4 sm:py-4 sm:px-6 cursor-pointer hover:bg-muted/50 transition-colors`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,$.jsxs)(In,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,$.jsx)(Lr,{name:e.icon}),(0,$.jsx)(`span`,{children:e.title})]}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:d?(0,$.jsx)(Gt,{className:`h-4 w-4 text-muted-foreground`}):(0,$.jsx)(pn,{className:`h-4 w-4 text-muted-foreground`})})]}),e.description&&!d&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]})}),(0,$.jsx)(on,{children:(0,$.jsx)(jn,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:L})})]})}):(0,$.jsxs)(bt,{className:X(e.showBorder===!1?`border-none shadow-none`:``,n),children:[e.title&&(0,$.jsxs)(Tt,{className:X(`py-3 px-4 sm:py-4 sm:px-6`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,$.jsx)(In,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,$.jsx)(Lr,{name:e.icon}),(0,$.jsx)(`span`,{children:e.title})]})}),e.description&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]}),(0,$.jsx)(jn,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:L})]})},Br=({tabs:e,data:t,className:n})=>{let[r,i]=Q.useState(e[0]?.key),a=e.filter(e=>typeof e.visible==`boolean`?e.visible:(e.visible,!0));return(0,$.jsxs)(nn,{value:r,onValueChange:i,className:n,children:[(0,$.jsx)(Zt,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:a.map(e=>(0,$.jsx)(Re,{value:e.key,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,$.jsx)(`span`,{children:e.icon}),(0,$.jsx)(`span`,{children:e.label}),e.badge&&(0,$.jsx)(ge,{variant:`secondary`,className:`ml-1`,children:e.badge})]})},e.key))}),a.map(e=>(0,$.jsx)(V,{value:e.key,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,$.jsx)(Q.Suspense,{fallback:null,children:Array.isArray(e.content)?(0,$.jsx)(`div`,{className:`space-y-4`,children:e.content.map((e,n)=>(0,$.jsx)(D,{schema:e,data:t},n))}):(0,$.jsx)(D,{schema:e.content,data:t})})},e.key))]})};function Vr(e){return e&&dt[e.split(/[-_\s]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]||ye}function Hr(e){if(!e)return[];if(typeof e==`string`){let t=e.trim();return t?t.startsWith(`-`)?[{field:t.slice(1),order:`desc`}]:[{field:t,order:`asc`}]:[]}return e.filter(e=>!!e?.field)}var Ur=({action:e,onToolbarAction:t})=>{let n=e.visible,r=ne(F(n));if(n&&!r)return null;let i=e.icon?Vr(e.icon):null;return(0,$.jsxs)(Z,{variant:e.variant===`primary`?`default`:`outline`,size:`sm`,onClick:n=>{n.stopPropagation(),t(e)},className:`gap-1 h-9 sm:h-7 text-xs shadow-none`,"data-testid":`related-toolbar-action-${e.name}`,children:[i&&(0,$.jsx)(i,{className:`h-3.5 w-3.5`}),e.label||e.name]})},Wr=({title:e,type:t,api:n,data:r,schema:i,columns:a,className:s,dataSource:c,objectName:l,onNew:u,onViewAll:d,onRowEdit:p,onRowDelete:m,onRowClick:h,rowActions:g,onRowAction:_,toolbarActions:v,onToolbarAction:y,add:C,maxColumns:w=6,pageSize:T,defaultSort:E,sortable:O=!1,filterable:ee=!1,collapsible:k=!1,defaultCollapsed:te=!1,referenceField:A,parentId:j,icon:M})=>{let N=r!==void 0,F=r??[],[I,ne]=Q.useState(F),[L,re]=Q.useState(()=>!!n&&!N),[ie,ae]=Q.useState(0),[R,oe]=Q.useState(null),[se,ce]=Q.useState(`asc`),[le,z]=Q.useState(``),[ue,B]=Q.useState(null),[de,V]=Q.useState(!1),[H,U]=Q.useState(null),[W,pe]=Q.useState(te),[me,he]=Q.useState(!1),[_e,ve]=Q.useState(!1),[ye,be]=Q.useState(null),[xe,Se]=Q.useState(0),[G,Ce]=Q.useState({}),{t:K}=Or(),{fieldLabel:Te}=Nt(),q=T&&T>0?T:0,Ee=ee&&le!==``,J=!N&&!!n&&q>0&&!!c&&typeof c.find==`function`&&!Ee,De=J?ie:0,ke=J?R:null,Ae=J?se:`asc`,je=JSON.stringify(E??null),Me=Q.useMemo(()=>Hr(E),[je]);Q.useEffect(()=>{N&&ne(r??[])},[r,N]),Q.useEffect(()=>{n&&c?.getObjectSchema&&c.getObjectSchema(n).then(U).catch(e=>{console.warn(`[RelatedList] Failed to fetch schema for ${n}:`,e)})},[n,c]),Q.useEffect(()=>{let e=!1;if(n&&!N){if(!(A&&j!=null&&j!==``)){n&&(j==null||j===``)&&!A&&console.warn(`[RelatedList] "${n}" has no referenceField/parentId — refusing to fetch all rows. Pass relationshipField + parentId to scope the query.`),ne([]),B(null),V(!1),re(!1);return}re(!0);let t={[A]:j};if(c&&typeof c.find==`function`){let r={$filter:t};if(J){r.$top=q,r.$skip=De*q;let e=ke?[{field:ke,order:Ae}]:Me;e.length>0&&(r.$orderby=e)}c.find(n,r).then(t=>{if(e)return;let n=Array.isArray(t),r=n?t:Array.isArray(t?.data)?t.data:[];if(ne(r),J){let e=!n&&typeof t?.total==`number`?t.total:null;B(e),V(!n&&typeof t?.hasMore==`boolean`?t.hasMore:r.length===q)}else B(null),V(!1);re(!1)}).catch(t=>{console.error(`Failed to fetch related data:`,t),e||re(!1)})}else{let t=new URLSearchParams({[`filter[${A}]`]:String(j)}).toString();fetch(`${n}?${t}`).then(e=>e.json()).then(t=>{if(e)return;let n=Array.isArray(t)?t:t?.data||[];ne(n),B(null),V(!1)}).catch(e=>{console.error(`Failed to fetch related data:`,e)}).finally(()=>{e||re(!1)})}}return()=>{e=!0}},[n,N,c,A,j,xe,J,q,De,ke,Ae,Me]),Q.useEffect(()=>{!J||L||ie>0&&I.length===0&&ae(e=>Math.max(0,e-1))},[J,L,I,ie]),Q.useEffect(()=>{ae(0)},[n,A,j]),Q.useEffect(()=>{if(!n||N)return;let e=e=>{let t=e.detail||{};t.objectName&&t.objectName!==n||Se(e=>e+1)};return window.addEventListener(`objectui:related-changed`,e),()=>window.removeEventListener(`objectui:related-changed`,e)},[n,N]),Q.useEffect(()=>{if(!c?.find||!H?.fields||!I.length)return;let e=H.fields,t=[];for(let[n,r]of Object.entries(e)){if(!r||r.type!==`lookup`&&r.type!==`master_detail`)continue;let e=r.reference_to||r.reference;if(!e)continue;let i=new Set;for(let e of I){let t=e?.[n];t!=null&&(typeof t==`string`&&t?i.add(t):typeof t==`number`&&i.add(String(t)))}let a=G[n]||{},o=Array.from(i).filter(e=>!(e in a));o.length>0&&t.push({fieldName:n,target:e,ids:o})}if(t.length===0)return;let n=!1;return Promise.all(t.map(({fieldName:e,target:t,ids:n})=>c.find(t,{$filter:{id:{$in:n}},$top:n.length}).then(t=>{let n=Array.isArray(t)?t:t?.data||[],r={};for(let e of n){let t=e?.id||e?._id;t&&(r[String(t)]=e?.full_name||e?.fullname||e?.display_name||e?.name||e?.subject||e?.title||e?.label||e?.code||e?.email||String(t))}return{fieldName:e,map:r}}).catch(t=>(console.warn(`[RelatedList] Failed to resolve lookups for ${e}:`,t),{fieldName:e,map:{}})))).then(e=>{n||Ce(t=>{let n={...t};for(let{fieldName:t,map:r}of e)n[t]={...n[t]||{},...r};return n})}),()=>{n=!0}},[c,H,I]);let Fe=Q.useMemo(()=>{if(J||!le)return I;let e=le.toLowerCase();return I.filter(t=>Object.values(t).some(t=>t!=null&&String(t).toLowerCase().includes(e)))},[I,le,J]),Ie=Q.useMemo(()=>{if(J||!R)return Fe;let e=G[R],t=Fe.map(t=>({row:t,key:f(t[R],{labels:e})}));return t.sort((e,t)=>{let n=S(e.key,t.key);return se===`asc`?n:-n}),t.map(e=>e.row)},[Fe,R,se,J,G]),Re=q&&!J?Ie.slice(ie*q,(ie+1)*q):Ie,ze=q?J?ue==null?ie+(de?2:1):Math.max(1,Math.ceil(ue/q)):Math.max(1,Math.ceil(Ie.length/q)):1,Be=J?ue==null?de:(ie+1)*q<ue:ie<ze-1,Ve=q>0&&(J?ie>0||Be:Ie.length>q);Q.useEffect(()=>{ae(0)},[le,R,se]);let He=Q.useCallback(e=>{ae(0),R===e?ce(e=>e===`asc`?`desc`:`asc`):(oe(e),ce(`asc`))},[R]),Ue=Q.useMemo(()=>R?[{field:R,order:se}]:Me,[R,se,Me]),We=Q.useCallback(e=>{let t=e[0];t&&(ae(0),oe(t.field),ce(t.order))},[]),[Ge,Ke]=Q.useState(null),Je=Q.useCallback(e=>{Ke(e)},[]),Ye=Q.useCallback(async()=>{if(Ge)try{await m?.(Ge),Se(e=>e+1)}catch(e){console.error(`[RelatedList] remove failed`,e)}Ke(null)},[Ge,m]),Xe=Q.useCallback(async e=>{if(!C||!c||!n||A==null||j==null)return;let t=C.picker.valueField||`id`;ve(!0),be(null);try{for(let r of e||[]){let e=r?.[t]??r?.id;e!=null&&(C.linkField?await c.create?.(n,{[A]:j,[C.linkField]:e}):await c.update?.(C.picker.object,String(e),{[A]:j}))}Se(e=>e+1)}catch(e){let t=e?.body?.error??e?.error??e?.message??String(e);be(typeof t==`string`?t:`Failed to add`)}finally{ve(!1),he(!1)}},[C,c,n,A,j]),Ze=o(),Qe=Q.useMemo(()=>{let e=l||n||``,t=t=>!Ze?.isLoaded||!e?t:t.filter(t=>{let n=t?.accessorKey||P(t);return!n||Ze.checkField(e,String(n),`read`)}),r=e=>A?e.filter(e=>(e?.accessorKey||P(e))!==A):e,i=e=>e==null||typeof e==`string`&&e.trim()===``||Array.isArray(e)&&e.length===0,o=e=>I.length?e.filter(e=>{let t=e?.accessorKey||P(e);return!t||I.some(e=>!i(e?.[t]))}):e,s=(e,t)=>{if(!t?.type)return;let n=kt(Ft({type:t.type,format:t.format})||t.type);if(!n)return;let r=t.type===`lookup`||t.type===`master_detail`?G[e]:void 0,i=r&&Object.keys(r).length>0?Object.entries(r).map(([e,t])=>({value:e,label:t})):void 0,a={name:e,label:t.label||e,type:t.type,...(i||t.options)&&{options:i||t.options},...t.currency&&{currency:t.currency},...t.precision!==void 0&&{precision:t.precision},...t.scale!==void 0&&{scale:t.scale},...t.format&&{format:t.format},...(t.reference_to||t.reference)&&{reference_to:t.reference_to||t.reference},...t.reference_field&&{reference_field:t.reference_field}};return e=>e==null?Q.createElement(`span`,{className:`text-muted-foreground/50 text-xs italic`},`—`):Q.createElement(n,{value:e,field:a})},c=t=>{if(typeof t!=`string`){let e=t?.accessorKey||P(t);if(t&&!t.cell&&!t.render&&e){let n=H?.fields?.[e],r=n?s(String(e),n):void 0;if(r)return{...t,cell:r}}return t}let n=H?.fields?.[t],r={accessorKey:t,header:n?.label||Te(e,t,n)||t,fieldDef:n,fieldType:n?.type},i=n?s(t,n):void 0;return i&&(r.cell=i),r};if(a&&a.length>0)return o(t(r(a.map(c))));if(!H?.fields)return[];let u=Array.isArray(H.highlightFields)?H.highlightFields.filter(e=>typeof e==`string`&&e.length>0):[];if(u.length>0){let e=o(t(r(u.map(c))));if(e.length>0)return e.slice(0,Math.max(1,w))}let d=e,f=new Set([`rich_text`,`html`,`json`]),p=[`name`,`full_name`,`fullname`,`title`,`subject`,`label`,`code`,`number`],m=Object.entries(H.fields).filter(([e,t])=>!(e.startsWith(`_`)||e===`id`||e===A||t?.hidden||t?.type&&f.has(t.type)||Ze?.isLoaded&&d&&!Ze.checkField(d,e,`read`))),h=new Set([`created_at`,`updated_at`,`created_by`,`updated_by`,`owner_id`,`organization_id`]);return m.sort(([e,t],[n,r])=>{let i=h.has(e);if(i!==h.has(n))return i?1:-1;let a=p.indexOf(e),o=p.indexOf(n),s=a>=0?a:100,c=o>=0?o:100;if(s!==c)return s-c;let l=t?.type===`select`||e.includes(`status`);return l===(r?.type===`select`||n.includes(`status`))?0:l?-1:1}),o(m.map(([e,t])=>{let n={accessorKey:e,header:Te(d,e,t.label||e)};if(t.type){let r=s(e,t);r&&(n.cell=r)}return n})).slice(0,Math.max(1,w))},[a,H,l,n,Te,A,I,w,G,Ze]),et=Q.useMemo(()=>J?Qe.map(e=>{let t=e.accessorKey||P(e);return t&&b(H?.fields?.[t])?{...e,sortable:!1}:e}):Qe,[Qe,J,H]),tt=!i&&(t===`grid`||t===`table`),nt=Array.isArray(g)&&g.length>0,rt=!!p||!!m||nt,it=mn(),ot=Q.useMemo(()=>{if(i)return i;if(it&&(t===`grid`||t===`table`)){let e=Qe[0]?.accessorKey||P(Qe[0]),t=Qe.slice(1,4).map(e=>e.accessorKey||P(e)).filter(Boolean);return{type:`object-gallery`,data:Re,objectName:n,gallery:{titleField:e||`name`,visibleFields:t,cardSize:`medium`},onRowClick:h}}let e=x(H?.userActions?.edit),r=x(H?.userActions?.delete);switch(t){case`grid`:case`table`:return{type:`data-table`,data:Re,columns:et,pagination:!1,pageSize:q||10,searchable:!1,exportable:!1,manualSorting:!0,sort:Ue,onSortChange:We,rowActions:rt,onRowEdit:p,onRowDelete:m?Je:void 0,rowEditPredicates:e,rowDeletePredicates:r,onRowClick:h,rowActionDefs:nt?g:void 0,onRowActionDef:nt?_:void 0};case`list`:return{type:`data-list`,data:Re};default:return{type:`div`,children:`No view configured`}}},[t,Re,et,Qe,i,q,rt,nt,g,_,p,m,Je,h,it,n,H,Ue,We]),st=k?`cursor-pointer select-none`:void 0,ct=k?()=>pe(e=>!e):void 0,lt=Vr(M),ut=J&&ue!=null?ue:I.length,dt=!L&&I.length===0&&(!J||ie===0),ft=ee;return(0,$.jsxs)(bt,{className:X(`shadow-none border-border/60 bg-transparent`,dt&&`bg-muted/10`,s),children:[(0,$.jsx)(Tt,{className:X(`py-3 px-4 sm:py-3 min-h-12 sm:min-h-0`,st),onClick:ct,children:(0,$.jsxs)(In,{className:`flex items-center justify-between gap-2 text-sm font-semibold`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[k&&(W?(0,$.jsx)(Gt,{className:`h-3.5 w-3.5 text-muted-foreground shrink-0`}):(0,$.jsx)(pn,{className:`h-3.5 w-3.5 text-muted-foreground shrink-0`})),(0,$.jsx)(lt,{className:`h-4 w-4 text-muted-foreground shrink-0`,"aria-hidden":!0}),(0,$.jsx)(`span`,{className:X(`truncate`,dt&&`text-muted-foreground font-medium`),children:e}),(0,$.jsx)(ge,{variant:`secondary`,className:X(`text-xs font-normal h-5 px-1.5`,ut===0&&`bg-muted text-muted-foreground`),"aria-label":`${ut} records`,children:ut}),dt&&(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground/70 italic ml-1 truncate`,children:K(`detail.noRelatedRecords`)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[y&&(v??[]).map(e=>(0,$.jsx)(Ur,{action:e,onToolbarAction:y},e.name)),C&&(0,$.jsxs)(Z,{variant:dt?`ghost`:`outline`,size:`sm`,disabled:_e,onClick:e=>{e.stopPropagation(),be(null),he(!0)},className:`gap-1 h-9 sm:h-7 text-xs shadow-none`,children:[(0,$.jsx)(It,{className:`h-3.5 w-3.5`}),C.label||K(`detail.add`,{defaultValue:`Add`})]}),u&&(0,$.jsxs)(Z,{variant:dt?`ghost`:`outline`,size:`sm`,onClick:e=>{e.stopPropagation(),u()},className:`gap-1 h-9 sm:h-7 text-xs shadow-none`,children:[(0,$.jsx)(It,{className:`h-3.5 w-3.5`}),K(`detail.new`)]})]})]})}),!W&&!dt&&(0,$.jsxs)(jn,{className:X(`pt-0 pb-4 px-4`),children:[ft&&(0,$.jsx)(`div`,{className:`mb-3`,children:(0,$.jsx)(at,{placeholder:K(`detail.filterPlaceholder`),value:le,onChange:e=>z(e.target.value),className:`h-8 text-sm`})}),O&&!tt&&Qe&&Qe.length>0&&I.length>0&&(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-3`,children:Qe.map(e=>{let t=e.accessorKey||P(e);if(!t||J&&b(H?.fields?.[t]))return null;let n=e.header||e.label||t,r=R===t;return(0,$.jsxs)(Z,{variant:r?`secondary`:`ghost`,size:`sm`,className:`gap-1 h-7 text-xs`,onClick:()=>He(t),children:[(0,$.jsx)($e,{className:`h-3 w-3`}),n,r&&(se===`asc`?` ↑`:` ↓`)]},t)})}),L&&I.length===0?(0,$.jsx)(`div`,{className:`flex items-center justify-center py-6 text-muted-foreground text-sm`,children:K(`detail.loading`)}):(0,$.jsx)(`div`,{className:X(L&&`opacity-60 pointer-events-none transition-opacity`),children:(0,$.jsx)(D,{schema:ot})}),Ve&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between mt-3 pt-3 border-t`,children:[(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:ie===0,onClick:()=>ae(e=>Math.max(0,e-1)),children:[(0,$.jsx)(xt,{className:`h-3 w-3`}),K(`detail.previousPage`)]}),(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:K(`detail.pageOf`,{current:ie+1,total:ze})}),(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:!Be,onClick:()=>ae(e=>Be?e+1:e),children:[K(`detail.nextPage`),(0,$.jsx)(Gt,{className:`h-3 w-3`})]})]}),d&&!dt&&Ve&&(0,$.jsx)(`div`,{className:`mt-3 pt-3 border-t flex justify-center`,children:(0,$.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),d()},className:`text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 transition-colors`,children:[K(`detail.viewAll`),(0,$.jsx)(Ut,{className:`h-3 w-3`})]})})]}),(0,$.jsx)(fe,{open:Ge!==null,onOpenChange:e=>{e||Ke(null)},children:(0,$.jsxs)(Y,{children:[(0,$.jsxs)(Oe,{children:[(0,$.jsx)(Pe,{children:K(`detail.deleteRowTitle`,{defaultValue:`Delete record`})}),(0,$.jsx)(qe,{children:K(`detail.deleteRowConfirmation`)})]}),(0,$.jsxs)(we,{children:[(0,$.jsx)(Le,{children:K(`detail.cancel`,{defaultValue:`Cancel`})}),(0,$.jsx)(Xt,{onClick:Ye,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:K(`detail.delete`,{defaultValue:`Delete`})})]})]})}),ye&&(0,$.jsx)(`div`,{className:`mx-4 mb-3 rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive`,role:`alert`,children:ye}),C&&c&&(0,$.jsx)(Ne,{open:me,onOpenChange:e=>he(e),multiple:!0,dataSource:c,objectName:C.picker.object,title:C.label||K(`detail.add`,{defaultValue:`Add`}),onSelect:()=>{},onSelectRecords:e=>{Xe(e)}})]})},Gr=({group:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o,onEnterInlineEdit:s,autoFocusField:c,dataSource:l})=>{let u=e.collapsible??!0,[d,f]=Q.useState(e.defaultCollapsed??!1),p=(0,$.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:e.sections.map((e,n)=>(0,$.jsx)(zr,{section:e,data:t,objectSchema:r,objectName:i,isEditing:a,onFieldChange:o,onEnterInlineEdit:s,autoFocusField:c,dataSource:l},n))});return u?(0,$.jsxs)(vn,{open:!d,onOpenChange:e=>f(!e),className:n,children:[(0,$.jsx)(Ht,{asChild:!0,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b cursor-pointer hover:bg-muted/50 transition-colors rounded-t-md px-2 py-1.5`,children:[d?(0,$.jsx)(Gt,{className:`h-4 w-4 text-muted-foreground shrink-0`}):(0,$.jsx)(pn,{className:`h-4 w-4 text-muted-foreground shrink-0`}),e.icon&&(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,$.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]})}),e.description&&!d&&(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.description}),(0,$.jsx)(on,{children:(0,$.jsx)(`div`,{className:`mt-3`,children:p})})]}):(0,$.jsxs)(`div`,{className:X(`space-y-3`,n),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b`,children:[e.icon&&(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,$.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]}),e.description&&(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description}),p]})},Kr=({fields:e,data:t,className:n,objectName:r,objectSchema:i,dataSource:a})=>{let{fieldLabel:o}=Nt(),{t:s}=Or(),c=C(),l=c?.editing??!1,u=c?.canEdit??!1;if(!e.length||!t)return null;let d=l?e:e.filter(e=>{let n=t?.[e.name];return n!=null&&n!==``});return d.length===0?null:(0,$.jsx)(xn,{children:(0,$.jsx)(`section`,{className:X(`@container border-b border-border/60 pb-4`,n),"aria-label":`Record highlights`,children:(0,$.jsx)(`div`,{className:X(`flex flex-wrap gap-y-4`),children:d.map(e=>{let n=t[e.name],d=i?.fields?.[e.name],f=e.type||d?.type,p=Ir({name:e.name,label:e.label,type:f||`text`},d),m=c?.draft?.[e.name],h=m===void 0?n:m,g=Nr.has(f),_=e.readonly===!0||d?.readonly===!0,v=Mr.has(e.name),y=u&&!g&&!_&&!v,b=l&&y,x=kt(Ft(p)||f||`text`),S=f===`number`||f===`integer`||f===`currency`||f===`percent`||f===`decimal`,C=f===`email`||f===`url`||f===`textarea`||f===`reference`||f===`lookup`||f===`master_detail`,w=f===`boolean`,T=h==null||h===``;return(0,$.jsxs)(`div`,{className:X(`group flex flex-col gap-1 min-w-[7rem] px-5 border-l border-border/60 first:border-l-0 first:pl-0`,C||b?`basis-[16rem] max-w-[24rem]`:`basis-[9rem] max-w-[16rem]`),children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:o(r||``,e.name,e.label)}),b?(0,$.jsx)(Pr,{field:p,value:h,onChange:t=>c.setField(e.name,t),dataSource:a,autoFocus:c.autoFocusField===e.name}):(0,$.jsxs)(`div`,{className:X(`flex items-start justify-between gap-1`,y&&`cursor-pointer rounded-md -mx-1.5 px-1.5 hover:bg-muted/40 transition-colors`),onDoubleClick:y?()=>c.enter(e.name):void 0,title:y?s(`detail.editInlineHint`):void 0,children:[(0,$.jsx)(`div`,{className:`min-w-0 flex-1`,children:w?h?(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 self-start rounded-full bg-emerald-500/10 px-2 py-0.5 text-xs font-medium text-emerald-600 ring-1 ring-inset ring-emerald-500/30 dark:text-emerald-400`,children:[(0,$.jsx)(Cn,{className:`h-3 w-3`,"aria-hidden":!0}),`Yes`]}):(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1 self-start rounded-full bg-amber-500/10 px-2 py-0.5 text-xs font-medium text-amber-700 ring-1 ring-inset ring-amber-500/30 dark:text-amber-400`,children:[(0,$.jsx)(Me,{className:`h-3 w-3`,"aria-hidden":!0}),`No`]}):T?(0,$.jsx)(`span`,{className:`block text-sm text-muted-foreground/60 select-none`,"aria-label":s(`detail.noValue`,{defaultValue:`No value`}),children:`—`}):(0,$.jsx)(`span`,{title:(Array.isArray(p.options)?p.options.find(e=>e?.value===h)?.label:void 0)??(typeof h==`string`||typeof h==`number`?String(h):void 0),className:X(`block min-w-0 truncate text-sm font-semibold`,S&&`tabular-nums tracking-tight`),children:(0,$.jsx)(x,{value:h,field:p})})}),y&&(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,"aria-label":s(`detail.editInlineHint`),onClick:t=>{t.stopPropagation(),c.enter(e.name)},children:(0,$.jsx)(me,{className:`h-3 w-3`})})}),(0,$.jsx)(un,{children:s(`detail.editInlineHint`)})]})]})]},e.name)})})})})};function qr(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}var Jr=({comments:e,onAddComment:t,onTogglePin:n,searchable:r=!1,className:i})=>{let{t:a}=Or(),[o,s]=Q.useState(``),[c,l]=Q.useState(!1),[u,d]=Q.useState(``),f=Q.useCallback(async()=>{let e=o.trim();if(!(!e||!t)){l(!0);try{await t(e),s(``)}finally{l(!1)}}},[o,t]),p=Q.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]),m=Q.useMemo(()=>[...u.trim()?e.filter(e=>{let t=u.trim().toLowerCase();return e.text.toLowerCase().includes(t)||e.author.toLowerCase().includes(t)}):e].sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:0),[e,u]);return(0,$.jsxs)(bt,{className:X(``,i),children:[(0,$.jsx)(Tt,{children:(0,$.jsxs)(In,{className:`flex items-center gap-2 text-base`,children:[(0,$.jsx)(mt,{className:`h-4 w-4`}),a(`detail.comments`),(0,$.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,e.length,`)`]})]})}),(0,$.jsxs)(jn,{className:`space-y-4`,children:[r&&(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`relative flex-1`,children:[(0,$.jsx)(ke,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,$.jsx)(`input`,{className:`w-full rounded-md border border-input bg-background pl-8 pr-8 py-1.5 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.searchComments`),value:u,onChange:e=>d(e.target.value),"aria-label":a(`detail.searchComments`)}),u&&(0,$.jsx)(`button`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>d(``),"aria-label":a(`detail.clearSearch`),type:`button`,children:(0,$.jsx)(Me,{className:`h-3.5 w-3.5`})})]})}),t&&(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(`textarea`,{className:`flex-1 min-h-[60px] rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none`,placeholder:a(`detail.addCommentPlaceholder`),value:o,onChange:e=>s(e.target.value),onKeyDown:p,disabled:c}),(0,$.jsx)(Z,{size:`icon`,variant:`default`,onClick:f,disabled:!o.trim()||c,className:`shrink-0 self-end`,children:(0,$.jsx)(bn,{className:`h-4 w-4`})})]}),m.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:u.trim()?a(`detail.noMatchingComments`):a(`detail.noCommentsYet`)}):(0,$.jsx)(`div`,{className:`space-y-3`,children:m.map(e=>(0,$.jsxs)(`div`,{className:X(`flex gap-3`,e.pinned&&`bg-muted/40 rounded-md p-2 -mx-2`),children:[(0,$.jsx)(`div`,{className:`shrink-0`,children:e.avatarUrl?(0,$.jsx)(`img`,{src:e.avatarUrl,alt:e.author,className:`h-8 w-8 rounded-full object-cover`}):(0,$.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground`,children:e.author.charAt(0).toUpperCase()})}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.author}),(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:qr(e.createdAt)}),e.pinned&&(0,$.jsxs)(`span`,{className:`text-xs text-amber-600 flex items-center gap-0.5`,children:[(0,$.jsx)(wt,{className:`h-3 w-3`}),a(`detail.pinned`)]})]}),(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words`,children:e.text}),n&&(0,$.jsxs)(`button`,{type:`button`,className:`mt-1 text-xs text-muted-foreground hover:text-foreground flex items-center gap-1`,onClick:()=>n(e.id),"aria-label":e.pinned?a(`detail.unpin`):a(`detail.pin`),children:[(0,$.jsx)(wt,{className:`h-3 w-3`}),e.pinned?a(`detail.unpin`):a(`detail.pin`)]})]})]},e.id))})]})]})},Yr={field_change:de,create:Te,delete:At,comment:mt,status_change:U},Xr={field_change:`bg-blue-100 text-blue-600`,create:`bg-green-100 text-green-600`,delete:`bg-red-100 text-red-600`,comment:`bg-purple-100 text-purple-600`,status_change:`bg-amber-100 text-amber-600`};function Zr(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}function Qr(e){return e.description?e.description:e.type===`field_change`&&e.field?`Changed ${e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `)} from "${e.oldValue==null?`(empty)`:String(e.oldValue)}" to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:e.type===`create`?`Created this record`:e.type===`delete`?`Deleted this record`:e.type===`status_change`&&e.field?`Changed status to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:`Updated record`}var $r={all:`All`,field_change:`Field Changes`,create:`Creates`,delete:`Deletes`,comment:`Comments`,status_change:`Status Changes`},ei=({activities:e,filterable:t=!1,defaultFilter:n=`all`,className:r})=>{let[i,a]=Q.useState(n),o=Q.useMemo(()=>i===`all`?e:e.filter(e=>e.type===i),[e,i]);return(0,$.jsxs)(bt,{className:X(``,r),children:[(0,$.jsx)(Tt,{children:(0,$.jsxs)(In,{className:`flex items-center gap-2 text-base`,children:[(0,$.jsx)(Ae,{className:`h-4 w-4`}),`Activity`,(0,$.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,o.length,`)`]})]})}),(0,$.jsxs)(jn,{children:[t&&(0,$.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-4`,role:`group`,"aria-label":`Activity type filter`,children:Object.keys($r).map(e=>(0,$.jsxs)(`button`,{type:`button`,className:X(`inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors`,i===e?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-muted/80`),onClick:()=>a(e),"aria-pressed":i===e,children:[e!==`all`&&Q.createElement(Yr[e]||de,{className:`h-3 w-3`}),$r[e]]},e))}),o.length===0?(0,$.jsx)(Ye,{title:`No activity recorded`,className:`py-6`}):(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,$.jsx)(`div`,{className:`space-y-4`,children:o.map(e=>{let t=Yr[e.type]||de;return(0,$.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,$.jsx)(`div`,{className:X(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,Xr[e.type]||`bg-gray-100 text-gray-600`),children:(0,$.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,$.jsxs)(`p`,{className:`text-sm`,children:[(0,$.jsx)(`span`,{className:`font-medium`,children:e.user}),` `,(0,$.jsx)(`span`,{className:`text-muted-foreground`,children:Qr(e)})]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:Zr(e.timestamp)})]})]},e.id)})})]})]})]})},ti={create:`default`,update:`secondary`,delete:`destructive`,restore:`outline`,login:`outline`,logout:`outline`,permission_change:`secondary`,config_change:`secondary`,export:`outline`,import:`outline`};function ni(e){if(!e)return``;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString()}var ri=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4.34524,`week`],[12,`month`],[1/0,`year`]];function ii(e,t){if(!e)return``;let n=e instanceof Date?e:new Date(e);if(Number.isNaN(n.getTime()))return String(e);let r=(n.getTime()-Date.now())/1e3;for(let[n,i]of ri){if(Math.abs(r)<n)try{return new Intl.RelativeTimeFormat(t,{numeric:`auto`}).format(Math.round(r),i)}catch{return ni(e)}r/=n}return ni(e)}function ai(e){if(!e)return`?`;let t=e.trim().split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?`?`:t.map(e=>e.charAt(0).toUpperCase()).join(``)}function oi(e){if(e==null||e===``)return`—`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function si({entries:e,loading:t,emptyText:n,unknownUserText:r,className:i,locale:a}){return t?(0,$.jsx)(`div`,{className:X(`space-y-3`,i),children:Array.from({length:4}).map((e,t)=>(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(Ct,{className:`h-8 w-8 rounded-full`}),(0,$.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,$.jsx)(Ct,{className:`h-4 w-1/3`}),(0,$.jsx)(Ct,{className:`h-3 w-1/2`})]})]},t))}):!e||e.length===0?(0,$.jsx)(`div`,{className:X(`flex items-center justify-center rounded-md border border-dashed py-10 text-sm text-muted-foreground`,i),children:n??`No history yet`}):(0,$.jsx)(xn,{delayDuration:150,children:(0,$.jsx)(`ol`,{className:X(`space-y-4`,i),children:e.map((e,t)=>{let n=(e.action??``).toLowerCase(),i=ti[n]??`outline`,o=typeof e.user_name==`string`&&e.user_name.trim()||r||`Unknown user`,s=ni(e.created_at),c=ii(e.created_at,a),l=typeof e.user_avatar==`string`?e.user_avatar:void 0;return(0,$.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,$.jsxs)(Pn,{className:`h-8 w-8 mt-0.5 shrink-0`,children:[l?(0,$.jsx)(Se,{src:l,alt:o}):null,(0,$.jsx)(st,{className:`text-[10px] font-medium`,children:ai(e.user_name)})]}),(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:o}),e.action&&(0,$.jsx)(ge,{variant:i,className:`text-[10px] uppercase tracking-wide`,children:e.action}),s&&(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,"aria-label":s,children:c||s})}),(0,$.jsx)(un,{children:s})]})]}),e.summary&&(0,$.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.summary}),e.changes&&e.changes.length>0&&(n===`create`?(0,$.jsxs)(`details`,{className:`mt-1 group`,children:[(0,$.jsxs)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 select-none`,children:[(0,$.jsx)(`span`,{className:`transition-transform group-open:rotate-90`,children:`▸`}),(0,$.jsx)(`span`,{children:e.changes.length===1?`1 field populated`:`${e.changes.length} fields populated`})]}),(0,$.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground pl-4`,children:e.changes.map(e=>(0,$.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,$.jsx)(`span`,{className:`text-foreground`,children:oi(e.to)})]},e.field))})]}):(0,$.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground`,children:e.changes.map(e=>(0,$.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,$.jsx)(`span`,{className:`line-through opacity-70`,children:oi(e.from)}),` → `,(0,$.jsx)(`span`,{className:`text-foreground`,children:oi(e.to)})]},e.field))}))]})]},e.id??t)})})})}var ci=E;function li(e){if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return isNaN(t.getTime())?null:t}return null}function ui(e,t){let n=Date.now()-e.getTime(),r=Math.max(0,Math.floor(n/1e3));if(r<60)return t(`detail.justNow`);let i=Math.floor(r/60);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);return a<24?t(`detail.hoursAgo`,{count:a}):t(`detail.daysAgo`,{count:Math.floor(a/24)})}function di(e){try{return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(e)}catch{return e.toISOString()}}var fi=({value:e,objectSchema:t,fieldName:n})=>{if(e==null||e===``)return null;let r=t?.fields?.[n],i=r?.reference_to||r?.reference||`sys_user`,a={name:n,type:r?.type||`lookup`,reference_to:i,...r?.reference_field&&{reference_field:r.reference_field}},o=Ft(a)||a.type;if(o){let t=kt(o);if(t)return(0,$.jsx)(`span`,{className:`inline-flex items-center [&_a]:text-inherit [&_a]:hover:underline`,children:Q.createElement(t,{value:e,field:a})})}return(0,$.jsx)(`span`,{children:String(e)})},pi=({label:e,user:t,date:n,objectSchema:r,userField:i,t:a})=>{if(!t&&!n)return null;let o=n?(0,$.jsx)(xn,{delayDuration:200,children:(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(`time`,{dateTime:n.toISOString(),className:`cursor-default underline decoration-dotted decoration-muted-foreground/40 underline-offset-2`,children:ui(n,a)})}),(0,$.jsx)(un,{side:`top`,children:di(n)})]})}):null;return(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{className:`text-muted-foreground/70`,children:e}),t?(0,$.jsx)(fi,{value:t,objectSchema:r,fieldName:i}):null,t&&o?(0,$.jsx)(`span`,{className:`text-muted-foreground/40`,children:`·`}):null,o]})},mi=({data:e,objectSchema:t,objectName:n,className:r})=>{let{t:i}=Or();if(!e)return null;let a=li(e[ci.createdAt]),o=li(e[ci.updatedAt]),s=e[ci.createdBy],c=e[ci.updatedBy],l=!!(a||s),u=a&&o&&Math.abs(o.getTime()-a.getTime())<2e3,d=!!(o||c)&&!(u&&(s!=null&&c!=null&&String(s)===String(c)||!c));return!l&&!d?null:(0,$.jsxs)(`div`,{className:X(`mt-6 pt-3 border-t border-border/40`,`flex flex-wrap items-center gap-x-4 gap-y-1`,`text-xs text-muted-foreground`,r),"data-testid":`record-meta-footer`,children:[l&&(0,$.jsx)(pi,{label:i(s?`detail.createdBy`:`detail.created`),user:s,date:a,objectSchema:t,userField:ci.createdBy,t:i}),d&&(0,$.jsx)(pi,{label:i(c?`detail.updatedBy`:`detail.updated`),user:c,date:o,objectSchema:t,userField:ci.updatedBy,t:i})]})},hi=new Map;function gi(e,t,n=`update`,r=!0){let i=e&&t?`${e}:${t}:${n}`:``,[a,o]=Q.useState(()=>i&&hi.has(i)?hi.get(i):!0),s=Q.useContext(re)?.apiFetch;return Q.useEffect(()=>{if(!r||!i){o(!0);return}if(hi.has(i)){o(hi.get(i));return}let a=!1;return(async()=>{try{let r=await(s??fetch)(`/api/v1/security/explain`,{method:`POST`,headers:{"Content-Type":`application/json`},credentials:`include`,body:JSON.stringify({object:e,operation:n,recordId:t})});if(!r.ok)return;let c=(await r.json())?.record?.visible;if(typeof c!=`boolean`)return;hi.set(i,c),a||o(c)}catch{}})(),()=>{a=!0}},[i,e,t,n,r,s]),a}var _i=5,vi={};function yi(e,t,n,r){if(e&&typeof e==`object`){if(t.primaryField){let n=e[t.primaryField];if(n!=null&&n!==``)return String(n)}let r=R(n?.titleFormat,e);if(r)return r}if(e&&typeof e==`object`){let t=e.id??e._id,r=w(n,e,{deriveFromRecordKeys:!1});if(!(r===`Untitled`||t!=null&&r===`Record #${t}`))return r}if(t.title)return t.title;if(e&&typeof e==`object`){let t=e.id??e._id,r=w(n,e);if(!(r===`Untitled`||t!=null&&r===`Record #${t}`))return r}if(e&&typeof e==`object`){let t=e.id??e._id;if(t!=null&&String(t).trim()!==``)return`Record #${t}`}return r}var bi=({schema:e,dataSource:t,className:n,onEdit:r,onDelete:i,onBack:a,inlineEdit:s=!1,discussionSlot:c,rightRail:l,objectLabel:u,onDataLoaded:d,isFavorite:f,onToggleFavorite:m})=>{let[h,g]=Q.useState(e.data),[_,v]=Q.useState(!e.data&&!!(e.api&&e.resourceId||t&&e.objectName&&e.resourceId)),[y,b]=Q.useState(!1),x=f??y,S=C(),w=S?.editing??!1,T=S?.draft??vi,E=S?.autoFocusField??null,[O,ee]=Q.useState(null),[k,te]=Q.useState(null),[A,j]=Q.useState(!1),[M,N]=Q.useState(0),P=I(e.objectName||void 0,e.resourceId==null?void 0:String(e.resourceId)),[F,ne]=Q.useState(!1),{t:L}=Or(),{currency:re}=gt(),{fieldOptionLabel:ie}=Nt(),ae=mn(),R=o(),oe=Q.useMemo(()=>{if(!R?.isLoaded||!e.objectName)return e;let t=t=>R.checkField(e.objectName,t,`read`),n=e=>e&&e.filter(e=>{let n=typeof e==`string`?e:e?.name;return!n||t(n)});return{...e,fields:n(e.fields),sections:e.sections?.map(e=>({...e,fields:n(e.fields)})),summaryFields:n(e.summaryFields)}},[e,R]),se=Q.useMemo(()=>!R?.isLoaded||!e.objectName||R.can(e.objectName,`update`),[R,e.objectName]),ce=Q.useMemo(()=>!R?.isLoaded||!e.objectName||R.can(e.objectName,`delete`),[R,e.objectName]),le=e.resourceId==null?void 0:String(e.resourceId),z=gi(e.objectName,le,`update`,se),ue=gi(e.objectName,le,`delete`,ce),B=Q.useMemo(()=>({...oe,showEdit:oe.showEdit&&se&&z,showDelete:oe.showDelete&&ce&&ue}),[oe,se,z,ce,ue]);Q.useEffect(()=>{h&&d&&d(h)},[h,d]);let fe=Q.useMemo(()=>{if(B.summaryFields&&B.summaryFields.length>0)return[];let e=[...B.sections?.flatMap(e=>e.fields)||[],...B.fields||[]],t={};for(let n of e)t[n.name]||(t[n.name]=n);if(k?.fields)for(let[e,n]of Object.entries(k.fields))t[e]={...t[e]||{},...n,name:e};let n=e=>h?.[e]!==void 0&&h?.[e]!==null&&h?.[e]!==``,r=[],i=[`status`,`stage`,`state`,`phase`].find(e=>t[e]&&n(e))||Object.keys(t).find(e=>t[e]?.type===`select`&&n(e));i&&r.push(i);let a=Object.keys(t).find(e=>(t[e]?.type===`currency`||/amount|revenue|value|total|price/i.test(e))&&n(e));a&&!r.includes(a)&&r.push(a);let o=Object.keys(t).find(e=>(t[e]?.type===`date`||t[e]?.type===`datetime`)&&/close|due|start|end|expected/i.test(e)&&n(e));return o&&!r.includes(o)&&r.push(o),r},[B.summaryFields,B.sections,B.fields,k,h]),H=B.summaryFields&&B.summaryFields.length>0?B.summaryFields:fe,U=Q.useCallback(()=>{B.resourceId&&navigator.clipboard.writeText(String(B.resourceId)).then(()=>{j(!0),setTimeout(()=>j(!1),1500)})},[B.resourceId]);Q.useEffect(()=>{let e=!0;if(B.data)return g(B.data),v(!1),t?.getObjectSchema&&B.objectName&&t.getObjectSchema(B.objectName).then(t=>{e&&te(t)}).catch(()=>{}),()=>{e=!1};if(t&&B.objectName&&B.resourceId){v(!0),te(null),g(null);let n=B.objectName,r=B.resourceId,i=`${n}-`,a=[...B.sections?.flatMap(e=>e.fields)||[],...B.fields||[]];(t.getObjectSchema?t.getObjectSchema(n).catch(()=>null):Promise.resolve(null)).then(o=>{if(!e)return;te(o);let s=p(o?.fields,a),c=s.length>0?{$expand:s}:void 0,l=c?t.findOne(n,r,c):t.findOne(n,r),u=()=>{let a=String(r),o=a.startsWith(i)?a.slice(i.length):`${i}${a}`;return(c?t.findOne(n,o,c):t.findOne(n,o)).then(t=>{e&&(g(t),v(!1))}).catch(()=>{e&&(g(null),v(!1))})};return l.catch(()=>null).then(t=>{if(e){if(t){g(t),v(!1);return}return u()}})}).catch(t=>{e&&(console.error(`Failed to fetch detail data:`,t),v(!1))})}else B.api&&B.resourceId&&(v(!0),fetch(`${B.api}/${B.resourceId}`).then(e=>e.json()).then(t=>{e&&g(t?.data||t)}).catch(e=>{console.error(`Failed to fetch detail data:`,e)}).finally(()=>{e&&v(!1)}));return()=>{e=!1}},[B.api,B.resourceId,B.objectName,t,B.sections,B.fields,M,P]);let W=Q.useCallback(()=>{if(a)a();else if(B.onNavigate){let e=B.backUrl||(B.objectName?`/${B.objectName}`:`/`);B.onNavigate(e,{replace:!0})}else B.backUrl?window.location.href=B.backUrl:window.history.back()},[a,B]),pe=Q.useCallback(()=>{r?r():B.onNavigate&&B.editUrl?B.onNavigate(B.editUrl):B.onNavigate&&B.objectName&&B.resourceId?B.onNavigate(`/${B.objectName}/${B.resourceId}/edit`):B.editUrl&&(window.location.href=B.editUrl)},[r,B]),me=Q.useCallback(async()=>{if(!t?.cancelPendingApproval||!B.objectName||!B.resourceId){ee(L(`detail.cancelApprovalUnavailable`));return}ne(!0),ee(null);try{if(await t.cancelPendingApproval(String(B.objectName),String(B.resourceId)),t.findOne)try{let e=await t.findOne(String(B.objectName),String(B.resourceId));e&&g(e)}catch{}N(e=>e+1);try{window.dispatchEvent(new CustomEvent(`objectui:record-changed`,{detail:{objectName:String(B.objectName),recordId:String(B.resourceId),reason:`approval-recalled`}}))}catch{}}catch(e){let t=(e?.message||e?.error||String(e??`Cancel failed`)).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``);ee(`${L(`detail.cancelApprovalFailed`)}: ${t}`)}finally{ne(!1)}},[t,B.objectName,B.resourceId,L]),he=Q.useCallback(()=>{let e=B.deleteConfirmation||L(`detail.deleteConfirmation`);window.confirm(e)&&(i?.(),B.onNavigate&&B.objectName&&B.onNavigate(`/${B.objectName}`,{replace:!0}))},[i,B]),_e=Q.useCallback(()=>{navigator.share&&B.objectName&&B.resourceId?navigator.share({title:B.title||L(`detail.details`),text:`${B.objectName} #${B.resourceId}`,url:window.location.href}).catch(e=>console.log(`Share failed:`,e)):navigator.clipboard.writeText(window.location.href).then(()=>{console.log(`Link copied to clipboard`)})},[B]),ye=Q.useCallback(()=>{let e=!x;m&&m(e),f===void 0&&b(e)},[x,f,m]),be=S?.setField,xe=S&&S.canEdit?S.enter:void 0;Q.useEffect(()=>{if(!B.recordNavigation)return;let e=B.recordNavigation,t=t=>{let n=t.target?.tagName;n===`INPUT`||n===`TEXTAREA`||t.target?.isContentEditable||(t.key===`ArrowLeft`&&e.currentIndex>0?(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex-1])):t.key===`ArrowRight`&&e.currentIndex<e.recordIds.length-1&&(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex+1])))};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[B.recordNavigation]);let Se=Q.useMemo(()=>B.related??[],[B.related]),Ce=Q.useMemo(()=>{let e=[];return e.push({name:`sys_share`,label:L(`detail.share`),icon:`share-2`,type:`script`,onClick:_e}),B.showEdit&&e.push({name:`sys_edit_mobile`,label:L(`detail.edit`),icon:`edit`,type:`script`,className:`sm:hidden`,onClick:pe}),B.showDelete&&e.push({name:`sys_delete`,label:L(`detail.delete`),icon:`trash-2`,type:`script`,variant:`destructive`,tags:[`separator-before`],onClick:he}),e},[L,B.showEdit,B.showDelete,_e,pe,he]),K=Q.useMemo(()=>{let e=B.actions??[];if(Ce.length===0)return e;let t=!1,n=e.map(e=>{let n=e;if(n&&typeof n==`object`&&n.type===`action:bar`&&(!n.location||n.location===`record_header`)){t=!0;let e=Array.isArray(n.systemActions)?n.systemActions:[];return{...n,systemActions:[...e,...Ce]}}return e});return t||n.push({type:`action:bar`,location:`record_header`,systemActions:Ce}),n},[B.actions,Ce]);return _||B.loading?(0,$.jsxs)(`div`,{className:X(`space-y-4`,n),children:[(0,$.jsx)(Ct,{className:`h-10 w-full`}),(0,$.jsx)(Ct,{className:`h-64 w-full`}),(0,$.jsx)(Ct,{className:`h-48 w-full`})]}):!h&&!B.data?(0,$.jsxs)(`div`,{className:X(`flex flex-col items-center justify-center py-16 text-center`,n),children:[(0,$.jsx)(`p`,{className:`text-lg font-semibold`,children:L(`detail.recordNotFound`)}),(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:L(`detail.recordNotFoundDescription`)}),(B.showBack??!0)&&(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:W,className:`mt-4 gap-2`,children:[(0,$.jsx)(ut,{className:`h-4 w-4`}),L(`detail.goBack`)]})]}):(0,$.jsx)(xn,{children:(0,$.jsxs)(`div`,{className:X(`space-y-6`,n),children:[B.showHeader!==!1&&(0,$.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start justify-between gap-3 sm:gap-4 pb-4 border-b`,children:[(0,$.jsxs)(`div`,{className:`flex items-start gap-2 sm:gap-3 flex-1 min-w-0`,children:[(B.showBack??!0)&&(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,onClick:W,className:`shrink-0 mt-1`,children:(0,$.jsx)(ut,{className:`h-4 w-4`})})}),(0,$.jsx)(un,{children:L(`detail.back`)})]}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,$.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold truncate`,children:yi(h,B,k,L(`detail.details`))}),H.map(e=>{let t=h?.[e];if(t==null||t===``)return null;let n=(B.sections||[]).flatMap(e=>e.fields).concat(B.fields||[]).find(t=>t.name===e),r=k?.fields?.[e],i=n?.type||r?.type,a=String(t),o=null;try{if(i===`currency`){let e=Number(t);if(!Number.isNaN(e)){let t=ht({...r,...n},re);a=t?new Intl.NumberFormat(void 0,{style:`currency`,currency:t,maximumFractionDigits:0}).format(e):new Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)}}else if(i===`date`||i===`datetime`){let e=new Date(t);Number.isNaN(e.getTime())||(a=i===`datetime`?e.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):e.toLocaleDateString(void 0,{dateStyle:`medium`}))}else if(i===`percent`){let e=Number(t);if(!Number.isNaN(e)){a=`${e}%`;let t=e<=1?e*100:e;o=Math.max(0,Math.min(100,t))}}else if(i===`select`||i===`status`||i===`multiselect`){let i=n?.options||r?.options,o=String(t);if(Array.isArray(i)){let e=i.find(e=>String(e?.value??e)===String(t));e?.label&&(o=e.label)}else if(i&&typeof i==`object`){let e=i[String(t)];e?.label&&(o=e.label)}a=B.objectName?ie(B.objectName,e,String(t),o):o}}catch{}return o===null?(0,$.jsx)(ge,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15`,"aria-label":`${e}: ${a}`,children:a},e):(0,$.jsxs)(ge,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15 gap-1.5 pl-2 pr-2`,"aria-label":`${e}: ${a}`,children:[(0,$.jsx)(`span`,{className:`relative inline-block h-1.5 w-12 rounded-full bg-primary/20 overflow-hidden`,"aria-hidden":!0,children:(0,$.jsx)(`span`,{className:`absolute inset-y-0 left-0 rounded-full bg-primary`,style:{width:`${o}%`}})}),a]},e)}),(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:ye,"aria-label":L(x?`detail.removeFromFavorites`:`detail.addToFavorites`),children:x?(0,$.jsx)(ve,{className:`h-4 w-4 fill-yellow-400 text-yellow-400`}):(0,$.jsx)(ve,{className:`h-4 w-4 text-muted-foreground`})})}),(0,$.jsx)(un,{children:L(x?`detail.removeFromFavorites`:`detail.addToFavorites`)})]})]}),B.objectName&&(0,$.jsxs)(`p`,{className:`text-sm text-muted-foreground mt-1 flex items-center gap-1`,children:[(0,$.jsx)(`span`,{className:`font-medium`,children:u||B.objectName}),B.resourceId&&(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground/60 hover:text-foreground`,onClick:U,"aria-label":L(`detail.copyRecordId`,{defaultValue:`Copy record ID`}),children:A?(0,$.jsx)(Cn,{className:`h-3 w-3 text-green-600`}):(0,$.jsx)(G,{className:`h-3 w-3`})})}),(0,$.jsx)(un,{children:A?L(`detail.copied`,{defaultValue:`Copied`}):L(`detail.copyRecordId`,{defaultValue:`Copy record ID`})})]})]})]})]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 shrink-0 w-full sm:w-auto`,children:[B.recordNavigation&&(0,$.jsxs)(`div`,{className:`flex items-center gap-1 mr-2`,children:[(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:B.recordNavigation.currentIndex<=0,onClick:()=>{let e=B.recordNavigation;e.currentIndex>0&&e.onNavigate(e.recordIds[e.currentIndex-1])},children:(0,$.jsx)(xt,{className:`h-4 w-4`})})}),(0,$.jsx)(un,{children:L(`detail.previousRecord`)})]}),(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap px-1`,children:L(`detail.recordOf`,{current:B.recordNavigation.currentIndex+1,total:B.recordNavigation.recordIds.length})}),(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsx)(Z,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:B.recordNavigation.currentIndex>=B.recordNavigation.recordIds.length-1,onClick:()=>{let e=B.recordNavigation;e.currentIndex<e.recordIds.length-1&&e.onNavigate(e.recordIds[e.currentIndex+1])},children:(0,$.jsx)(Gt,{className:`h-4 w-4`})})}),(0,$.jsx)(un,{children:L(`detail.nextRecord`)})]})]}),B.showEdit&&(0,$.jsxs)(On,{children:[(0,$.jsx)(qt,{asChild:!0,children:(0,$.jsxs)(Z,{variant:`default`,onClick:pe,className:`gap-2 hidden sm:inline-flex`,children:[(0,$.jsx)(de,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{className:`hidden sm:inline`,children:L(`detail.edit`)})]})}),(0,$.jsx)(un,{children:L(`detail.editRecord`)})]}),K.map((e,t)=>(0,$.jsx)(D,{schema:e,data:h},`header-action-${t}`))]})]}),B.header&&(0,$.jsx)(`div`,{children:(0,$.jsx)(D,{schema:B.header,data:h})}),B.highlightFields&&B.highlightFields.length>0&&(0,$.jsx)(Kr,{fields:B.highlightFields,data:h,objectName:B.objectName,objectSchema:k}),s&&B.showHeader===!1&&(()=>{let e=h?.approval_status,n=e===`pending`||e===`in_approval`,r=S?.approvalPending??!1,i=r&&!(S?.locked??!1)?!1:(S?.locked??!1)||n,a=i||r||n;return!a&&!O?null:(0,$.jsxs)(`div`,{className:`flex flex-col items-end gap-1`,children:[a&&(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,$.jsxs)(`span`,{role:`status`,className:i?`inline-flex items-center gap-1 rounded-md border border-amber-300 bg-amber-50 px-2 py-1 text-xs text-amber-800`:`inline-flex items-center gap-1 rounded-md border border-sky-300 bg-sky-50 px-2 py-1 text-xs text-sky-800`,title:i?S?.lockedReason??L(`detail.lockedTooltip`):L(`detail.approvalPendingTooltip`),children:[i?(0,$.jsx)(hn,{className:`h-3 w-3`}):(0,$.jsx)(Je,{className:`h-3 w-3`}),(0,$.jsx)(`span`,{children:L(i?`detail.lockedByApproval`:`detail.approvalPendingEditable`)})]}),t?.cancelPendingApproval&&(0,$.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:me,disabled:F,className:i?`gap-2 border-amber-300 text-amber-800 hover:bg-amber-50`:`gap-2 border-sky-300 text-sky-800 hover:bg-sky-50`,title:L(i?`detail.cancelApprovalTooltip`:`detail.cancelApprovalTooltipUnlocked`),children:[(0,$.jsx)(Me,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:L(F?`detail.cancelApprovalInFlight`:`detail.cancelApproval`)})]})]}),O&&(0,$.jsx)(`div`,{role:`alert`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/20 rounded-md px-2 py-1 max-w-md text-right`,children:O})]})})(),B.autoTabs&&!B.tabs?.length?(()=>{let e=Se.length>0,n=!!B.activities&&B.activities.length>0,r=!!c,i=!!B.history,a=[`details`,...e?[`related`]:[],...n?[`activity`]:[],...r?[`discussion`]:[],...i?[`history`]:[]],o=B.defaultTab,l=o&&a.includes(o)?o:`details`,u=B.onTabChange,d=(0,$.jsxs)(`div`,{className:`space-y-3 sm:space-y-4`,children:[B.sectionGroups&&B.sectionGroups.length>0&&B.sectionGroups.map((e,n)=>(0,$.jsx)(Gr,{group:e,data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t},n)),B.sections&&B.sections.length>0&&B.sections.map((e,n)=>(0,$.jsx)(zr,{section:e,data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t},n)),B.fields&&B.fields.length>0&&!B.sections?.length&&(0,$.jsx)(zr,{section:{fields:B.fields,columns:B.columns},data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t}),B.comments&&(0,$.jsx)(Jr,{comments:B.comments,onAddComment:B.onAddComment})]});return!e&&!n&&!r&&!i?(0,$.jsx)(`div`,{className:`mt-2`,children:d}):(0,$.jsxs)(nn,{defaultValue:l,onValueChange:u,className:`w-full`,children:[(0,$.jsxs)(Zt,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:[(0,$.jsx)(Re,{value:`details`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:L(`detail.details`)}),e&&(0,$.jsx)(Re,{value:`related`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[L(`detail.related`),(0,$.jsx)(ge,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:Se.length})]})}),n&&(0,$.jsx)(Re,{value:`activity`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[L(`detail.activity`),(0,$.jsx)(ge,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:B.activities.length})]})}),r&&(0,$.jsx)(Re,{value:`discussion`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:L(`detail.discussion`,{defaultValue:`Discussion`})}),i&&(0,$.jsx)(Re,{value:`history`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,$.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[L(`detail.history`,{defaultValue:`History`}),!B.history.loading&&B.history.entries.length>0&&(0,$.jsx)(ge,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:B.history.entries.length})]})})]}),(0,$.jsx)(V,{value:`details`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:d}),e&&(0,$.jsx)(V,{value:`related`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,$.jsx)(`div`,{className:`space-y-3`,children:Se.map((e,n)=>(0,$.jsx)(Wr,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:ae&&n>0,pageSize:_i},n))})}),n&&(0,$.jsx)(V,{value:`activity`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,$.jsx)(ei,{activities:B.activities})}),r&&(0,$.jsx)(V,{value:`discussion`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:c}),i&&(0,$.jsx)(V,{value:`history`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,$.jsx)(si,{entries:B.history.entries,loading:B.history.loading,emptyText:B.history.emptyText??L(`detail.historyEmpty`,{defaultValue:`No history yet`})})})]})})():(0,$.jsxs)($.Fragment,{children:[B.sectionGroups&&B.sectionGroups.length>0&&(0,$.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:B.sectionGroups.map((e,n)=>(0,$.jsx)(Gr,{group:e,data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t},n))}),B.sections&&B.sections.length>0&&(0,$.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:B.sections.map((e,n)=>(0,$.jsx)(zr,{section:e,data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t},n))}),B.fields&&B.fields.length>0&&!B.sections?.length&&(0,$.jsx)(zr,{section:{fields:B.fields,columns:B.columns},data:{...h,...T},objectSchema:k,objectName:B.objectName,isEditing:w,onFieldChange:be,onEnterInlineEdit:s?xe:void 0,autoFocusField:E,dataSource:t}),B.tabs&&B.tabs.length>0&&(0,$.jsx)(Br,{tabs:B.tabs,data:h}),Se.length>0&&(0,$.jsxs)(`div`,{className:`space-y-3`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-semibold`,children:L(`detail.related`)}),Se.map((e,n)=>(0,$.jsx)(Wr,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:ae&&n>0,pageSize:_i},n))]}),B.comments&&(0,$.jsx)(Jr,{comments:B.comments,onAddComment:B.onAddComment}),B.activities&&B.activities.length>0&&(0,$.jsx)(ei,{activities:B.activities})]}),(0,$.jsx)(mi,{data:{...h,...T},objectSchema:k,objectName:B.objectName}),B.footer&&(0,$.jsx)(`div`,{children:(0,$.jsx)(D,{schema:B.footer,data:h})})]})})},xi=e=>P(e)??null,Si=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Ci=({schema:e={},className:t,...n})=>{let r=N(),{designer:i}=Si(n),a=r?.objectName||``,c=o(),{readableFields:l}=s(a),{sectionLabel:u}=Nt(),{language:d}=Kt(),f=y();if(!r)return(0,$.jsx)(`div`,{className:t,"data-record-details-placeholder":!0,...i,children:(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:details — bind a record to preview`})});let p=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(p.length>0&&a&&!p.every(e=>c.can(a,e)))return(0,$.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view details.`})});let m=e.layout===`inline`||e.layout===`compact`?`horizontal`:`vertical`,h=e.enforceFieldSecurity===!0,g=Array.isArray(e.redactFields)?e.redactFields:[],_=e=>{if(!e||!h&&g.length===0)return e;let t=e.map(xi).filter(e=>!!e),n=new Set((h&&a?l(t):t).filter(e=>!g.includes(e)));return e.filter(e=>{let t=xi(e);return!t||n.has(t)})},v=e=>typeof e==`string`?{name:e}:e&&typeof e==`object`&&!e.name&&e.field?{...e,name:e.field}:e,b=e=>Array.isArray(e)?e.map(v):e,x=new Set((Array.isArray(e.hideFields)?e.hideFields:[]).map(e=>typeof e==`string`?e:xi(e)).filter(e=>!!e));for(let e of f)x.add(e);let S=r.objectSchema,C=r.data??{},w=[S?.primaryField,`name`,`full_name`,`title`,`subject`,`display_name`,`label`].filter(e=>typeof e==`string`&&e.length>0);for(let e of w)if(C[e]!==void 0&&C[e]!==null&&C[e]!==``){x.add(e);break}let T=e=>!e||x.size===0?e:e.filter(e=>{let t=xi(e);return!t||!x.has(t)}),E=T(b(_(e.fields))),D=Array.isArray(e.sections)?e.sections.map(e=>{let t=e.title??e.label,n=t==null?void 0:Xe(t,d),r=e.name&&a?u(a,e.name,n??e.name):n;return{...e,title:r,showBorder:e.showBorder??!!r,hideEmpty:e.hideEmpty??!0,fields:T(b(_(e.fields)))}}):e.sections,O=M(S,c?.getObjectApiOperations?.(a)),ee=(e.inlineEdit??!0)&&O,k={type:`detail-view`,objectName:r.objectName,resourceId:r.recordId,data:r.data,layout:m,columns:e.columns,sections:D,fields:E,showBack:!1,showHeader:e.showHeader??!1,inlineEdit:ee};return(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(bi,{schema:k,dataSource:r.dataSource,inlineEdit:ee})})},wi=e=>P(e)||(e&&typeof e==`object`?e.key:null)||null,Ti=e=>e?.id??e?._id??null,Ei=5,Di=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Oi=({schema:e={},className:t,...n})=>{let r=N(),{designer:i}=Di(n),a=Nt(),{language:c}=Kt(),l=e.objectName,u=l&&a.objectLabel?a.objectLabel({name:l,label:zt(l)}):l?zt(l):``,d=Xe(e.title,c)||u||`Related`,f=o(),{readableFields:p}=s(l||``),m=e.relationshipValueField||`id`,h=m===`id`?r?.recordId??null:r?.data?.[m]??null,g=oe(),_=Q.useMemo(()=>g?.resolve({objectName:l,relationshipField:e.relationshipField,parentId:h})??null,[g,l,e.relationshipField,h]);if(!l)return(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:related_list — missing objectName`})});if(f.isLoaded&&!f.can(l,`read`))return null;let v=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(v.length>0&&!v.every(e=>f.can(l,e)))return(0,$.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view related list.`})});let y=e.enforceFieldSecurity===!0,b=Array.isArray(e.redactFields)?e.redactFields:[],x=Array.isArray(e.columns)?e.columns:[],S=x;if(y||b.length>0){let e=x.map(wi).filter(e=>!!e),t=new Set((y?p(e):e).filter(e=>!b.includes(e)));S=x.filter(e=>{let n=wi(e);return!n||t.has(n)})}return(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(Wr,{title:d,type:`table`,api:l,objectName:l,referenceField:e.relationshipField,parentId:h,columns:S,pageSize:typeof e.limit==`number`&&e.limit>0?e.limit:Ei,defaultSort:e.sort,dataSource:r?.dataSource,add:e.add?{...e.add,label:Xe(e.add.label,c)||void 0}:void 0,rowActions:_?.rowActions,onRowAction:_?.onRowAction,toolbarActions:_?.toolbarActions,onToolbarAction:_?.onToolbarAction,onNew:_?.onCreate,onRowClick:_?.onView?e=>{let t=Ti(e);t!=null&&_.onView(t,e)}:void 0,onRowEdit:_?.onEdit?e=>{let t=Ti(e);t!=null&&_.onEdit(t,e)}:void 0,onRowDelete:_?.onDelete?e=>{let t=Ti(e);if(t!=null)return _.onDelete(t,e)}:e.add&&r?.dataSource?async e=>{let t=e?.id??e?._id;t!=null&&await r.dataSource.delete?.(l,String(t))}:void 0})})},ki=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Ai=({schema:e={},className:t,...n})=>{let r=N(),{designer:i}=ki(n),a=r?.objectName||``,c=o(),{readableFields:l}=s(a),d=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[],f=!(d.length>0&&a)||d.every(e=>c.can(a,e)),p=(Array.isArray(e.fields)?e.fields:[]).map(e=>typeof e==`string`?{name:e}:{name:e?.name,label:e?.label,icon:e?.icon,type:e?.type}).filter(e=>typeof e.name==`string`&&e.name.length>0),m=e.enforceFieldSecurity===!0,h=Array.isArray(e.redactFields)?e.redactFields:[],g=m&&a?new Set(l(p.map(e=>e.name))):null,_=p.filter(e=>!(h.includes(e.name)||g&&!g.has(e.name)));return u(Q.useId(),f?_.map(e=>e.name):[]),f?(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(Kr,{fields:_,data:r?.data,objectName:r?.objectName,objectSchema:r?.objectSchema,dataSource:r?.dataSource})}):(0,$.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view highlights.`})})},ji=({change:e,className:t})=>{let n=e.fieldLabel??e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `),r=e.oldDisplayValue??(e.oldValue==null?`(empty)`:String(e.oldValue)),i=e.newDisplayValue??(e.newValue==null?`(empty)`:String(e.newValue));return(0,$.jsxs)(`div`,{className:X(`flex items-center gap-1.5 text-sm flex-wrap`,t),children:[(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:n}),(0,$.jsx)(`span`,{className:`text-muted-foreground line-through`,children:r}),(0,$.jsx)(zn,{className:`h-3 w-3 text-muted-foreground shrink-0`}),(0,$.jsx)(`span`,{className:`text-foreground`,children:i})]})},Mi=[`👍`,`❤️`,`🎉`,`😂`,`😮`,`😢`],Ni=({reactions:e,onToggleReaction:t,emojiOptions:n=Mi,className:r})=>{let[i,a]=Q.useState(!1),o=Q.useCallback(e=>{t?.(e),a(!1)},[t]);return(0,$.jsxs)(`div`,{className:X(`flex items-center gap-1 flex-wrap`,r),children:[e.map(e=>(0,$.jsxs)(`button`,{type:`button`,className:X(`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs border transition-colors`,e.reacted?`bg-primary/10 border-primary/30 text-primary`:`bg-muted border-border text-muted-foreground hover:bg-muted/80`),onClick:()=>o(e.emoji),disabled:!t,"aria-label":`${e.emoji} ${e.count} reaction${e.count===1?``:`s`}`,children:[(0,$.jsx)(`span`,{children:e.emoji}),(0,$.jsx)(`span`,{children:e.count})]},e.emoji)),t&&(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>a(!i),"aria-label":`Add reaction`,children:(0,$.jsx)(K,{className:`h-3.5 w-3.5`})}),i&&(0,$.jsx)(`div`,{className:`absolute bottom-full mb-1 left-0 bg-popover border rounded-md shadow-md z-50 p-1.5 flex gap-1`,role:`listbox`,"aria-label":`Emoji picker`,children:n.map(t=>(0,$.jsx)(`button`,{type:`button`,className:`hover:bg-accent rounded p-1 text-base transition-colors`,onClick:()=>o(t),role:`option`,"aria-selected":e.some(e=>e.emoji===t&&e.reacted),children:t},t))})]})]})};function Pi(e,t){try{let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4);if(i<1)return t(`detail.justNow`);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);if(a<24)return t(`detail.hoursAgo`,{count:a});let o=Math.floor(a/24);return o<7?t(`detail.daysAgo`,{count:o}):n.toLocaleDateString()}catch{return e}}var Fi=({parentItem:e,replies:t,onAddReply:n,showReplyInput:r=!0,className:i})=>{let{t:a}=Or(),[o,s]=Q.useState(!1),[c,l]=Q.useState(``),[u,d]=Q.useState(!1),f=Q.useCallback(async()=>{let t=c.trim();if(!(!t||!n)){d(!0);try{await n(e.id,t),l(``)}finally{d(!1)}}},[c,n,e.id]),p=Q.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]);return t.length===0&&!r?null:(0,$.jsxs)(`div`,{className:X(`ml-10 mt-1`,i),children:[t.length>0&&(0,$.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors mb-1`,onClick:()=>s(!o),"aria-expanded":o,children:[o?(0,$.jsx)(pn,{className:`h-3 w-3`}):(0,$.jsx)(Gt,{className:`h-3 w-3`}),(0,$.jsx)(mt,{className:`h-3 w-3`}),(0,$.jsx)(`span`,{children:t.length===1?a(`detail.replyCount`,{count:t.length}):a(`detail.replyCountPlural`,{count:t.length})})]}),o&&(0,$.jsx)(`div`,{className:`space-y-2 border-l-2 border-border pl-3`,children:t.map(e=>(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[(0,$.jsx)(`div`,{className:`shrink-0`,children:e.actorAvatarUrl?(0,$.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-6 w-6 rounded-full object-cover`}):(0,$.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium text-muted-foreground`,children:e.actor.charAt(0).toUpperCase()})}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium`,children:e.actor}),(0,$.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:Pi(e.createdAt,a)})]}),(0,$.jsx)(`p`,{className:`text-xs whitespace-pre-wrap break-words`,children:e.body})]})]},e.id))}),r&&n&&(0,$.jsxs)(`div`,{className:`flex gap-1.5 mt-1.5`,children:[(0,$.jsx)(`input`,{className:`flex-1 rounded-md border border-input bg-background px-2 py-1 text-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.replyPlaceholder`),value:c,onChange:e=>l(e.target.value),onKeyDown:p,disabled:u}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:f,disabled:!c.trim()||u,"aria-label":`Send reply`,children:(0,$.jsx)(bn,{className:`h-3 w-3`})})]})]})},Ii=({subscription:e,onToggle:t,className:n})=>{let{t:r}=Or(),[i,a]=Q.useState(!1),o=Q.useCallback(async()=>{if(t){a(!0);try{await t(!e.subscribed)}finally{a(!1)}}},[t,e.subscribed]);return(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:X(`h-8 w-8`,n),onClick:o,disabled:i||!t,"aria-label":e.subscribed?r(`detail.unsubscribeAriaLabel`):r(`detail.subscribeAriaLabel`),title:e.subscribed?r(`detail.subscribedTooltip`):r(`detail.unsubscribedTooltip`),children:e.subscribed?(0,$.jsx)(B,{className:`h-4 w-4 text-primary`}):(0,$.jsx)(Yt,{className:`h-4 w-4 text-muted-foreground`})})};function Li(e){let t=e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/```([\s\S]*?)```/g,`<pre class="bg-muted rounded p-2 text-xs font-mono my-1 overflow-x-auto">$1</pre>`).replace(/`([^`]+)`/g,`<code class="bg-muted rounded px-1 py-0.5 text-xs font-mono">$1</code>`).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`).replace(/\*(.+?)\*/g,`<em>$1</em>`).replace(/@(\w+)/g,`<span class="text-primary font-medium">@$1</span>`).replace(/^- (.+)$/gm,`<li class="ml-4 list-disc">$1</li>`).replace(/\n/g,`<br/>`);return t=t.replace(/(<li[^>]*>.*?<\/li>(?:<br\/>)?)+/g,e=>`<ul class="my-1">${e.replace(/<br\/>/g,``)}</ul>`),t}var Ri=({value:e,onChange:t,onSubmit:n,mentionSuggestions:r=[],placeholder:i,className:a,disabled:o=!1,extraSlot:s,canSubmitEmpty:c=!1})=>{let{t:l}=Or(),[u,d]=Q.useState(!1),[f,p]=Q.useState(!1),[m,h]=Q.useState(``),[g,_]=Q.useState(0),v=Q.useRef(null),y=Q.useMemo(()=>{if(!m)return r;let e=m.toLowerCase();return r.filter(t=>t.label.toLowerCase().includes(e))},[m,r]),b=Q.useCallback((n,r=``)=>{let i=v.current;if(!i)return;let a=i.selectionStart,o=i.selectionEnd,s=e.slice(a,o);t(e.slice(0,a)+n+s+r+e.slice(o)),requestAnimationFrame(()=>{i.focus();let e=a+n.length+s.length;i.setSelectionRange(e,e)})},[e,t]),x=Q.useCallback(()=>b(`**`,`**`),[b]),S=Q.useCallback(()=>b(`*`,`*`),[b]),C=Q.useCallback(()=>b(`
4
+ - `,``),[b]),w=Q.useCallback(()=>b("`","`"),[b]),T=Q.useCallback(()=>{b(`@`,``),p(!0),h(``),_(0)},[b]),E=Q.useCallback(n=>{let r=v.current;if(!r)return;let i=r.selectionStart,a=e.slice(0,i).lastIndexOf(`@`);a!==-1&&t(e.slice(0,a)+`@${n.label} `+e.slice(i)),p(!1),h(``),requestAnimationFrame(()=>r.focus())},[e,t]),D=Q.useCallback(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart,i=n.slice(0,r),a=i.lastIndexOf(`@`);if(a!==-1){let e=i.slice(a+1),t=a>0?i[a-1]:` `;if(/\s/.test(t)&&!/\s/.test(e)){p(!0),h(e),_(0);return}}p(!1)},[t]),O=Q.useCallback(e=>{if(f&&y.length>0){if(e.key===`ArrowDown`){e.preventDefault(),_(e=>e<y.length-1?e+1:0);return}if(e.key===`ArrowUp`){e.preventDefault(),_(e=>e>0?e-1:y.length-1);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault(),E(y[g]);return}if(e.key===`Escape`){p(!1);return}}e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),n?.())},[f,y,g,E,n]);return(0,$.jsxs)(`div`,{className:X(`border rounded-md`,a),children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 py-1.5 border-b bg-muted/30`,children:[(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:x,disabled:o||u,title:l(`detail.bold`),children:(0,$.jsx)(Qt,{className:`h-3.5 w-3.5`})}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:S,disabled:o||u,title:l(`detail.italic`),children:(0,$.jsx)(ot,{className:`h-3.5 w-3.5`})}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:C,disabled:o||u,title:l(`detail.listFormat`),children:(0,$.jsx)(Ot,{className:`h-3.5 w-3.5`})}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:w,disabled:o||u,title:l(`detail.inlineCode`),children:(0,$.jsx)(tn,{className:`h-3.5 w-3.5`})}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:T,disabled:o||u,title:l(`detail.mentionSomeone`),children:(0,$.jsx)(Ke,{className:`h-3.5 w-3.5`})}),(0,$.jsx)(`div`,{className:`flex-1`}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>d(!u),title:l(u?`detail.edit`:`detail.preview`),children:u?(0,$.jsx)(de,{className:`h-3.5 w-3.5`}):(0,$.jsx)(yn,{className:`h-3.5 w-3.5`})}),n&&(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:n,disabled:o||!c&&!e.trim(),title:l(`detail.submitComment`),children:(0,$.jsx)(bn,{className:`h-3.5 w-3.5`})})]}),(0,$.jsx)(`div`,{className:`relative`,children:u?(0,$.jsx)(`div`,{className:`min-h-[80px] px-3 py-2 text-sm prose prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:Li(e)}}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`textarea`,{ref:v,className:`w-full min-h-[80px] px-3 py-2 text-sm bg-transparent resize-none focus:outline-none placeholder:text-muted-foreground`,placeholder:i??l(`detail.writeComment`),value:e,onChange:D,onKeyDown:O,disabled:o}),f&&y.length>0&&(0,$.jsx)(`div`,{className:`absolute left-2 bottom-full mb-1 w-56 bg-popover border rounded-md shadow-md z-50 max-h-40 overflow-y-auto`,children:y.map((e,t)=>(0,$.jsxs)(`button`,{type:`button`,className:X(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===g&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),E(e)},children:[e.avatarUrl?(0,$.jsx)(`img`,{src:e.avatarUrl,alt:e.label,className:`h-5 w-5 rounded-full object-cover`}):(0,$.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.label.charAt(0).toUpperCase()}),(0,$.jsx)(`span`,{children:e.label})]},e.id))})]})}),s&&(0,$.jsx)(`div`,{className:`border-t px-2 py-2 bg-muted/20`,children:s})]})};function zi(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Bi(e){return e.startsWith(`image/`)}function Vi(e){return Bi(e)?$t:e.includes(`pdf`)||e.includes(`document`)||e.includes(`text`)?dn:e.includes(`zip`)||e.includes(`archive`)||e.includes(`compressed`)?Pt:z}var Hi=({attachments:e,onUpload:t,onRemove:n,className:r,readOnly:i=!1})=>{let{t:a}=Or(),[o,s]=Q.useState(!1),c=Q.useRef(null),l=Q.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!0)},[]),u=Q.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1)},[]),d=Q.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1),t&&e.dataTransfer.files.length>0&&t(e.dataTransfer.files)},[t]),f=Q.useCallback(e=>{t&&e.target.files&&e.target.files.length>0&&(t(e.target.files),e.target.value=``)},[t]);return(0,$.jsxs)(`div`,{className:X(`space-y-2`,r),children:[t&&!i&&(0,$.jsxs)(`div`,{className:X(`border-2 border-dashed rounded-md px-4 py-3 text-center transition-colors cursor-pointer`,o?`border-primary bg-primary/5`:`border-muted-foreground/25 hover:border-muted-foreground/40`),onDragOver:l,onDragLeave:u,onDrop:d,onClick:()=>c.current?.click(),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c.current?.click())},children:[(0,$.jsx)(St,{className:`h-5 w-5 mx-auto text-muted-foreground mb-1`}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`detail.dropFilesToUpload`)}),(0,$.jsx)(`input`,{ref:c,type:`file`,multiple:!0,className:`hidden`,onChange:f})]}),e.length>0&&(0,$.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,$.jsx)(rt,{className:`h-3 w-3`}),(0,$.jsx)(`span`,{children:e.length===1?a(`detail.attachmentCount`,{count:e.length}):a(`detail.attachmentCountPlural`,{count:e.length})})]}),(0,$.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>{let t=Bi(e.type),r=Vi(e.type);return(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border px-2.5 py-2 bg-muted/30 group`,children:[t&&(e.thumbnailUrl||e.url)?(0,$.jsx)(`img`,{src:e.thumbnailUrl||e.url,alt:e.name,className:`h-10 w-10 rounded object-cover shrink-0`}):(0,$.jsx)(`div`,{className:`h-10 w-10 rounded bg-muted flex items-center justify-center shrink-0`,children:(0,$.jsx)(r,{className:`h-5 w-5 text-muted-foreground`})}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,$.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.name}),(0,$.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:zi(e.size)})]}),n&&!i&&(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>n(e.id),title:a(`detail.removeAttachment`),children:(0,$.jsx)(Me,{className:`h-3.5 w-3.5`})})]},e.id)})})]})]})},Ui={comment:mt,field_change:de,task:Ie,event:_t,system:pt,email:Sn,call:Fn,note:it,file:dn,sharing:ft,record_create:Te,record_delete:At,approval:Fe},Wi={comment:`bg-purple-100 text-purple-600`,field_change:`bg-blue-100 text-blue-600`,task:`bg-green-100 text-green-600`,event:`bg-amber-100 text-amber-600`,system:`bg-gray-100 text-gray-600`,email:`bg-indigo-100 text-indigo-600`,call:`bg-teal-100 text-teal-600`,note:`bg-yellow-100 text-yellow-700`,file:`bg-slate-100 text-slate-600`,sharing:`bg-sky-100 text-sky-600`,record_create:`bg-emerald-100 text-emerald-600`,record_delete:`bg-red-100 text-red-600`,approval:`bg-violet-100 text-violet-600`};function Gi(e){return[{value:`all`,label:e(`detail.allActivity`)},{value:`comments_only`,label:e(`detail.commentsOnly`)},{value:`changes_only`,label:e(`detail.fieldChangesFilter`)},{value:`tasks_only`,label:e(`detail.tasksOnly`)}]}function Ki(e,t){try{let n=new Date(e),r=new Date().getTime()-n.getTime(),i=Math.floor(r/6e4);if(i<1)return t(`detail.justNow`);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);if(a<24)return t(`detail.hoursAgo`,{count:a});let o=Math.floor(a/24);return o<7?t(`detail.daysAgo`,{count:o}):n.toLocaleDateString()}catch{return e}}function qi(e,t){switch(t){case`comments_only`:return e.filter(e=>e.type===`comment`);case`changes_only`:return e.filter(e=>e.type===`field_change`);case`tasks_only`:return e.filter(e=>e.type===`task`);default:return e}}var Ji=({items:e,config:t,filterMode:n,onFilterChange:r,hasMore:i=!1,onLoadMore:a,loading:o=!1,onAddComment:s,onAddReply:c,onToggleReaction:l,subscription:u,onToggleSubscription:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,titleLabel:h,emptyLabel:g,className:_})=>{let{t:v}=Or(),[y,b]=Q.useState(`all`),[x,S]=Q.useState(``),[C,w]=Q.useState(!1),[T,E]=Q.useState(!1),[D,O]=Q.useState([]),[ee,k]=Q.useState(!1),te=n??y,A=t?.showFilterToggle!==!1,j=t?.showCommentInput!==!1&&!!s,M=t?.enableReactions??!1,N=t?.enableThreading??!1,P=t?.showSubscriptionToggle??!1,F=Q.useMemo(()=>qi(e,te),[e,te]),I=Q.useMemo(()=>N?F.filter(e=>!e.parentId):F,[F,N]),ne=Q.useMemo(()=>{if(!N)return new Map;let e=new Map;for(let t of F)if(t.parentId){let n=e.get(t.parentId)??[];n.push(t),e.set(t.parentId,n)}return e},[F,N]),L=Q.useCallback(e=>{r?r(e):b(e)},[r]),re=Q.useCallback(async()=>{let e=x.trim();if(s&&!(!e&&D.length===0)){w(!0);try{await s(e,D.length>0?D:void 0),S(``),O([])}finally{w(!1)}}},[x,D,s]),ie=Q.useCallback(async e=>{if(!(!m||e.length===0)){k(!0);try{let t=await m(e);Array.isArray(t)&&t.length>0&&O(e=>[...e,...t])}finally{k(!1)}}},[m]),ae=Q.useCallback(e=>{O(t=>t.filter(t=>t.id!==e))},[]),R=Q.useCallback(async()=>{if(a){E(!0);try{await a()}finally{E(!1)}}},[a]);return(0,$.jsxs)(`section`,{className:X(`border-t border-border/60 pt-5`,_),"aria-label":`Discussion`,children:[(0,$.jsx)(`header`,{className:`mb-4`,children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold leading-none tracking-tight`,children:[(0,$.jsx)(Ae,{className:`h-4 w-4`}),h??v(`detail.activity`),(0,$.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,F.length,`)`]})]}),(0,$.jsx)(`div`,{className:`flex items-center gap-1`,children:P&&u&&(0,$.jsx)(Ii,{subscription:u,onToggle:d})})]})}),(0,$.jsxs)(`div`,{className:`space-y-4`,children:[A&&(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(_n,{value:te,onValueChange:e=>L(e),children:[(0,$.jsx)(Lt,{"aria-label":v(`detail.filterActivity`),className:`h-8 w-auto min-w-[140px] py-1 text-sm`,children:(0,$.jsx)(vt,{})}),(0,$.jsx)(an,{children:Gi(v).map(e=>(0,$.jsx)(Vt,{value:e.value,children:e.label},e.value))})]})}),j&&(0,$.jsx)(Ri,{value:x,onChange:S,onSubmit:re,mentionSuggestions:p,placeholder:v(`detail.leaveCommentPlaceholder`),disabled:C,canSubmitEmpty:D.length>0,extraSlot:m?(0,$.jsx)(Hi,{attachments:D,onUpload:ie,onRemove:ae,readOnly:C||ee}):D.length>0?(0,$.jsx)(Hi,{attachments:D,onRemove:ae,readOnly:C}):void 0}),F.length===0?f?null:(0,$.jsx)(Ye,{title:g??v(`detail.noActivity`),className:`py-6`}):(0,$.jsxs)(`div`,{className:`relative`,children:[(0,$.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,$.jsx)(`div`,{className:`space-y-4`,children:I.map(e=>{let t=Ui[e.type]||pt,n=Wi[e.type]||`bg-gray-100 text-gray-600`,r=ne.get(e.id)??[];return(0,$.jsxs)(`div`,{children:[(0,$.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,$.jsx)(`div`,{className:X(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,n),children:e.actorAvatarUrl?(0,$.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-8 w-8 rounded-full object-cover`}):(0,$.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,$.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,$.jsx)(`span`,{className:`text-sm font-medium`,children:e.actor}),e.source&&(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:v(`detail.via`,{source:e.source})}),(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:Ki(e.createdAt,v)}),e.edited&&(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:v(`detail.edited`)}),e.pinned&&(0,$.jsxs)(`span`,{className:`text-xs text-amber-600`,children:[`📌 `,v(`detail.pinned`)]})]}),e.body&&(0,$.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words text-muted-foreground`,children:e.body}),e.sourceObject&&e.sourceId!=null&&(0,$.jsxs)(`a`,{href:`/objects/${e.sourceObject}/${e.sourceId}`,className:`mt-1 inline-flex items-center gap-1 text-xs text-primary hover:underline`,"data-testid":`activity-source-link`,children:[v(`detail.viewSource`),(0,$.jsx)(`span`,{"aria-hidden":!0,children:`→`})]}),e.type===`field_change`&&e.fieldChanges&&(0,$.jsx)(`div`,{className:`space-y-1 mt-1`,children:e.fieldChanges.map((e,t)=>(0,$.jsx)(ji,{change:e},t))}),M&&e.reactions&&e.reactions.length>0&&(0,$.jsx)(`div`,{className:`mt-1.5`,children:(0,$.jsx)(Ni,{reactions:e.reactions,onToggleReaction:l?t=>l(e.id,t):void 0})}),M&&(!e.reactions||e.reactions.length===0)&&l&&(0,$.jsx)(`div`,{className:`mt-1.5`,children:(0,$.jsx)(Ni,{reactions:[],onToggleReaction:t=>l(e.id,t)})})]})]}),N&&(e.replyCount??0)>0&&(0,$.jsx)(Fi,{parentItem:e,replies:r,onAddReply:c,showReplyInput:!!c})]},e.id)})})]}),i&&(0,$.jsx)(`div`,{className:`text-center pt-2`,children:(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:R,disabled:T,"aria-label":v(`detail.loadMore`),children:[T?(0,$.jsx)(Tn,{className:`h-4 w-4 animate-spin mr-1`}):(0,$.jsx)(pn,{className:`h-4 w-4 mr-1`}),v(`detail.loadMore`)]})})]})]})},Yi=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},Xi=({schema:e={},className:t,...n})=>{N();let{designer:r}=Yi(n);return(0,$.jsx)(`div`,{className:t,...r,children:(0,$.jsx)(Ji,{items:[],config:e})})},Zi=({config:e,items:t,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,className:h})=>{let g=e?.position??`right`,_=e?.width??`360px`,v=e?.collapsible??!0,y=f&&t.length===0||(e?.defaultCollapsed??!1),{t:b}=Or(),[x,S]=Q.useState(y);return g===`right`||g===`left`?x&&v?(0,$.jsx)(`div`,{className:X(`flex items-start pt-4`,g===`right`?`border-l`:`border-r`,h),children:(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-8 w-8 mx-1`,onClick:()=>S(!1),"aria-label":b(`detail.openDiscussion`),children:(0,$.jsx)(He,{className:`h-4 w-4`})})}):(0,$.jsxs)(`div`,{className:X(`flex flex-col overflow-hidden`,g===`right`?`border-l`:`border-r`,h),style:{width:_,minWidth:_},children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(mt,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{className:`text-sm font-medium`,children:b(`detail.discussion`)})]}),v&&(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.closeDiscussion`),children:(0,$.jsx)(Me,{className:`h-3.5 w-3.5`})})]}),(0,$.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,$.jsx)(Ji,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`),className:`border-0 shadow-none`})})]}):(0,$.jsx)(`div`,{className:X(``,h),children:v&&x?(0,$.jsxs)(Z,{variant:`ghost`,className:`w-full justify-start gap-2 text-muted-foreground`,onClick:()=>S(!1),"aria-label":b(`detail.showDiscussion`,{count:t.length}),children:[(0,$.jsx)(mt,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:b(`detail.showDiscussion`,{count:t.length})})]}):(0,$.jsxs)(`div`,{children:[v&&(0,$.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,$.jsx)(mt,{className:`h-4 w-4`}),b(`detail.discussion`)]}),(0,$.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.hideDiscussion`),children:(0,$.jsx)(ue,{className:`h-3.5 w-3.5`})})]}),(0,$.jsx)(Ji,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`)})]})})},Qi=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},$i=({schema:e={},className:t,...n})=>{N();let r=d(),{designer:i}=Qi(n),a={position:`bottom`,collapsible:!1,feed:{enableReactions:!0,enableThreading:!0,showCommentInput:!0},...e};return(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(Zi,{items:r?.items||[],config:a,onAddComment:r?.onAddComment,onAddReply:r?.onAddReply,onToggleReaction:r?.onToggleReaction,mentionSuggestions:r?.mentionSuggestions,onUploadAttachments:r?.onUploadAttachments})})},ea=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},ta=({schema:e={},className:t,...n})=>{let r=N(),{translateOptions:i}=Nt(),{designer:a}=ea(n),o=Array.isArray(e.stages)?e.stages:[],s=e.statusField,c=Q.useMemo(()=>{if(o.length===0||!s||!r?.objectName)return o;let e=i(r.objectName,s,o);return Array.isArray(e)&&e.length===o.length?o.map((t,n)=>({...t,label:e[n]?.label??t.label})):o},[o,s,r?.objectName,i]),l=s&&r?.data?r.data[s]:void 0,u=/(^|[_-\s])(closed_)?(lost|failed?|cancell?ed|失败|流失|丢单|败)([_-\s]|$)/i,d=/(^|[_-\s])(closed_)?(won|success|成交|赢|完成)([_-\s]|$)/i,f=c.map(e=>{if(e.terminal)return e.terminal;let t=`${String(e.value??``)} ${String(e.label??``)}`;if(u.test(t))return`lost`;if(d.test(t))return`won`}),p=f.findIndex(e=>e===`lost`),m=p===-1?c:c.slice(0,p),h=p===-1?[]:c.slice(p),g=p===-1?f:f.slice(0,p),_=c.findIndex(e=>e.value===l);_<0&&(_=-1);let v=p!==-1&&_>=p;if(c.length===0)return(0,$.jsx)(`div`,{className:t,...a,children:(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:path — no stages configured`})});let y=m.length-1;return(0,$.jsxs)(`div`,{className:X(`w-full`,t),...a,children:[(0,$.jsxs)(`div`,{className:`hidden sm:flex w-full items-stretch gap-2`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:[(0,$.jsx)(`div`,{className:`flex flex-1 items-stretch gap-1.5`,children:m.map((e,t)=>{let n=!v&&_>=0&&t<_,r=!v&&t===_,i=g[t]===`won`&&t===y;return(0,$.jsx)(`div`,{role:`listitem`,"aria-current":r?`step`:void 0,className:X(`relative flex-1 min-w-0 px-4 py-2 text-xs font-medium text-center rounded-xl`,r&&`bg-primary text-primary-foreground shadow-sm`,n&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200`,!r&&!n&&i&&`bg-emerald-500/10 text-emerald-700/85 dark:text-emerald-300/85`,!r&&!n&&!i&&`bg-muted text-muted-foreground`),children:(0,$.jsxs)(`span`,{className:`inline-flex items-center justify-center gap-1.5 truncate`,children:[n&&(0,$.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),i&&!r&&(0,$.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`🏆`}),e.label]})},`${e.value}-${t}`)})}),h.length>0&&(0,$.jsx)(`div`,{className:`flex items-stretch gap-1 pl-2 border-l border-border/40`,"aria-label":`Alternative terminal stages`,children:h.map((e,t)=>{let n=p+t===_;return(0,$.jsx)(`div`,{role:`listitem`,"aria-current":n?`step`:void 0,className:X(`shrink-0 px-3 py-2 text-xs font-medium rounded-md border whitespace-nowrap`,n&&`bg-destructive text-destructive-foreground border-destructive shadow-sm ring-1 ring-destructive/40`,!n&&`bg-destructive/5 text-destructive/85 border-destructive/20`),children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,$.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),e.label]})},`${e.value}-lost-${t}`)})})]}),(0,$.jsx)(`div`,{className:`flex sm:hidden w-full items-stretch gap-1 overflow-x-auto pb-1 -mx-1 px-1 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:c.map((e,t)=>{let n=f[t]===`lost`,r=!n&&!v&&_>=0&&t<_,i=t===_;return(0,$.jsx)(`div`,{role:`listitem`,"aria-current":i?`step`:void 0,className:X(`shrink-0 px-3 py-1.5 rounded-full text-xs font-medium border whitespace-nowrap`,n&&i&&`bg-destructive text-destructive-foreground border-destructive shadow-sm`,n&&!i&&`bg-destructive/5 text-destructive/85 border-destructive/20`,!n&&i&&`bg-primary text-primary-foreground border-primary shadow-sm ring-1 ring-primary/40`,!n&&r&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200 border-emerald-500/30`,!n&&!i&&!r&&`bg-background text-foreground/85 border-border/60`),children:(0,$.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[n&&(0,$.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),!n&&r&&(0,$.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),e.label]})},`${e.value}-${t}-m`)})})]})},na=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},ra=({schema:e={},className:t,...n})=>{let r=N(),{designer:i}=na(n),a=o(),{language:s}=Kt(),c=Nt(),l=Array.isArray(e.actions)?e.actions:Array.isArray(e.properties?.actions)?e.properties.actions:[],u=Array.isArray(e.actionNames)?e.actionNames:Array.isArray(e.properties?.actionNames)?e.properties.actionNames:[],d=r?.objectName||``,f=u.length>0?u:Array.isArray(l)&&l.every(e=>typeof e==`string`)?l:[],p=f.length>0&&!!d,{item:m}=h(`object`,p?d:null),g=p?(()=>{let e=Array.isArray(m?.actions)?m.actions:[],t=new Map(e.map(e=>[e.name,e]));return f.map(e=>t.get(e)).filter(e=>!!e)})():Array.isArray(l)?l:[],_=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[],v=e.location||`record_header`,{getActionsForLocation:y,executeAction:b}=O({actions:g,context:{record:r?.data,recordId:r?.recordId,objectName:r?.objectName}});if(_.length>0&&d&&!_.every(e=>a.can(d,e)))return(0,$.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view quick actions.`})});let x=g.length>0?y(v):[];if(x.length===0)return(0,$.jsx)(`div`,{className:t,...i,children:(0,$.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:quick_actions — no actions configured`})});let S=e.align||`end`,C=S===`start`?`justify-start`:S===`center`?`justify-center`:`justify-end`;return(0,$.jsx)(`div`,{className:X(`flex flex-wrap items-center gap-2`,v===`record_header`&&!e.inline&&`-mt-12 sm:-mt-14 mb-2 relative z-10`,C,t),role:`toolbar`,"aria-label":e.aria?.label||`Quick actions`,...i,children:x.map((t,n)=>(0,$.jsx)(ia,{action:t,record:r?.data,variant:t.variant||e.variant||`default`,size:t.size||e.size||`sm`,label:(()=>{let e=Xe(t.label,s)||t.name||`Action ${n+1}`;return t.name?c.actionLabel(d||void 0,t.name,e):e})(),onRun:async()=>{typeof t.onClick==`function`?await t.onClick():t.name&&await b(t.name)}},t.name||`qa-${n}`))})};function ia({action:e,record:t,variant:n,size:r,label:i,onRun:a}){let[o,s]=Q.useState(!1),c=Q.useMemo(()=>({record:t||{}}),[t]),l=ne(F(e.disabled),c);return(0,$.jsxs)(Z,{variant:n,size:r,disabled:e.disabled!=null&&l||o,onClick:async()=>{s(!0);try{await a()}finally{s(!1)}},children:[o&&(0,$.jsx)(Tn,{className:`mr-2 h-4 w-4 animate-spin`}),i]})}var aa=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},oa=new Set([`created`,`updated`,`assigned`,`shared`,`deleted`]),sa=({schema:e={},className:t,...n})=>{let{designer:r}=aa(n),i=N(),a=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:void 0,o=e.loading??e.properties?.loading,s=e.emptyText??e.properties?.emptyText,c=e.unknownUserText??e.properties?.unknownUserText,l=Number(e.limit??e.properties?.limit??50)||50,u=i?.objectName,d=i?.data?.id??i?.data?._id??i?.recordId,f=i?.dataSource,p=a===void 0&&!!f?.find&&!!u&&d!=null,[m,h]=Q.useState(null),[g,_]=Q.useState(!1);Q.useEffect(()=>{if(!p)return;let e=!1;return _(!0),Promise.resolve(f.find(`sys_activity`,{$filter:{object_name:u,record_id:d},$orderby:{timestamp:`desc`},$top:Math.max(1,l)})).then(t=>{if(e)return;let n=(t?.data??t?.records??[]).filter(e=>oa.has(e?.type)).map(e=>{let t=e.timestamp;return(!t||t===`NOW()`||Number.isNaN(Date.parse(t)))&&(t=e.created_at),{id:e.id,created_at:t,action:e.type,user_name:e.actor_name??null,user_avatar:e.actor_avatar_url??null,summary:e.summary??null}});h(n)}).catch(()=>{e||h([])}).finally(()=>{e||_(!1)}),()=>{e=!0}},[p,f,u,d,l]);let v=a??m??[],y=o??(p&&m===null?g||!0:!1);return(0,$.jsx)(`div`,{className:t,...r,children:(0,$.jsx)(si,{entries:v,loading:y,emptyText:s,unknownUserText:c})})},ca=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},la=e=>e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim(),ua=(e,t)=>t&&e?.[t]!=null&&e[t]!==``?String(e[t]):e?.name||e?.title||e?.subject||e?.label||e?.email||e?.username||e?.code||e?.slug||e?.provider_id||e?.user_agent||e?.ip_address||e?.id||`—`,da=({schema:e={},className:t,...i})=>{let a=N(),o=Nt(),{t:s}=Or(),{designer:c}=ca(i),l=r().appName,u=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],d=a?.recordId,f=a?.dataSource,[p,m]=Q.useState({}),h=Q.useRef(null),[g,_]=Q.useState(!1),v=Q.useRef(!0);Q.useEffect(()=>(v.current=!0,()=>{v.current=!1}),[]);let y=Q.useRef(``);Q.useEffect(()=>{if(g)return;let e=h.current;if(!e||typeof IntersectionObserver>`u`){_(!0);return}let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&_(!0)},{rootMargin:`200px`});return t.observe(e),()=>t.disconnect()},[g]);let b=JSON.stringify(u.map(e=>`${e.objectName}:${e.relationshipField}:${e.limit??3}`));Q.useEffect(()=>{if(!g||!f?.find||!d||u.length===0)return;let e=`${d}::${b}`;if(y.current===e)return;y.current=e,m(e=>{let t={...e};for(let n of u)t[n.objectName]={loading:!0,total:0,items:e[n.objectName]?.items||[]};return t});let t=async e=>{let t=e.objectName;try{let n=await f.find(e.objectName,{$filter:{[e.relationshipField]:d},$top:e.limit??3,$count:!0});if(!v.current)return;let r=Array.isArray(n)?n:n?.data||[],i=typeof n?.total==`number`?n.total:typeof n?.count==`number`?n.count:r.length;m(e=>({...e,[t]:{loading:!1,total:i,items:r}}))}catch(e){if(!v.current)return;m(n=>({...n,[t]:{loading:!1,total:0,items:[],error:String(e?.message||e)}}))}},n=[...u],r=async()=>{for(;v.current;){let e=n.shift();if(!e)return;await t(e)}},i=Array.from({length:Math.min(3,n.length)},()=>r());Promise.all(i)},[g,f,d,b]);let[x,S]=Q.useState(!1);if(u.length===0)return null;let C=e.hideEmpty!==!1,w=new Set(u.filter(e=>{let t=p[e.objectName];return C&&t&&!t.loading&&!t.error&&t.total===0}).map(e=>e.objectName)),T=u.filter(e=>x||!w.has(e.objectName)),E=u.filter(e=>w.has(e.objectName)).map(e=>e.title||(o?.objectLabel?o.objectLabel({name:e.objectName,label:la(e.objectName)}):la(e.objectName)));return(0,$.jsxs)(`div`,{ref:h,className:X(`flex flex-col gap-3`,e.className,t),...c,children:[T.map(e=>{let t=e.objectName,r=p[t]||{loading:!0,total:0,items:[]};return(0,$.jsxs)(bt,{className:`overflow-hidden`,children:[(0,$.jsxs)(Tt,{className:`flex flex-row items-center justify-between gap-2 py-3 px-4 space-y-0 border-b`,children:[(0,$.jsx)(In,{className:`text-sm font-semibold tracking-tight truncate`,children:e.title||(o?.objectLabel?o.objectLabel({name:e.objectName,label:la(e.objectName)}):la(e.objectName))}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[!r.loading&&(0,$.jsx)(ge,{variant:`secondary`,className:`tabular-nums`,children:r.total}),l&&d&&(0,$.jsx)(n,{to:`/apps/${l}/${e.objectName}?filter%5B${e.relationshipField}%5D=${encodeURIComponent(String(d))}`,className:`text-[11px] font-medium text-muted-foreground hover:text-foreground transition-colors`,title:s(`detail.viewAll`,{defaultValue:`View all`}),children:s(`detail.viewAll`,{defaultValue:`View all`})})]})]}),(0,$.jsx)(jn,{className:`p-0`,children:r.loading?(0,$.jsxs)(`div`,{className:`space-y-1.5 p-3`,children:[(0,$.jsx)(Ct,{className:`h-3.5 w-4/5`}),(0,$.jsx)(Ct,{className:`h-3.5 w-3/5`}),(0,$.jsx)(Ct,{className:`h-3.5 w-2/3`})]}):r.items.length===0?(0,$.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:s(`detail.noRecords`)}):(0,$.jsx)(`ul`,{className:`divide-y`,children:r.items.map(t=>{let r=t.id||t._id,i=ua(t,e.displayField),a=r?`../${e.objectName}/record/${encodeURIComponent(String(r))}`:void 0;return(0,$.jsx)(`li`,{className:`px-4 py-2`,children:a?(0,$.jsxs)(n,{to:a,className:`group flex items-center justify-between gap-2 text-xs hover:text-foreground text-muted-foreground transition-colors`,children:[(0,$.jsx)(`span`,{className:`truncate`,children:i}),(0,$.jsx)(Gt,{className:`h-3 w-3 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`})]}):(0,$.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:i})},String(r||i))})})})]},t)}),!x&&E.length>0&&(0,$.jsxs)(`button`,{type:`button`,onClick:()=>S(!0),className:`self-start inline-flex items-center gap-1.5 text-[11px] text-muted-foreground hover:text-foreground transition-colors px-2.5 py-1 rounded-md border border-dashed border-border/60 hover:border-border bg-background`,title:E.join(` · `),children:[(0,$.jsx)(`span`,{children:s(`detail.showEmptyRelated`,{defaultValue:`+ {{count}} empty`,count:E.length})}),(0,$.jsxs)(`span`,{className:`truncate max-w-[180px] text-muted-foreground/70`,children:[`(`,E.join(` · `),`)`]})]})]})},fa={info:{wrap:`border-blue-300/60 bg-blue-50 text-blue-900 dark:border-blue-700/40 dark:bg-blue-950/30 dark:text-blue-100 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-300`,icon:`Info`},warning:{wrap:`border-amber-300/60 bg-amber-50 text-amber-900 dark:border-amber-700/40 dark:bg-amber-950/30 dark:text-amber-100 [&>svg]:text-amber-600 dark:[&>svg]:text-amber-300`,icon:`AlertTriangle`},error:{wrap:`border-destructive/60 bg-destructive/10 text-destructive dark:bg-destructive/20 [&>svg]:text-destructive`,icon:`AlertCircle`},success:{wrap:`border-emerald-300/60 bg-emerald-50 text-emerald-900 dark:border-emerald-700/40 dark:bg-emerald-950/30 dark:text-emerald-100 [&>svg]:text-emerald-600 dark:[&>svg]:text-emerald-300`,icon:`CheckCircle2`}};function pa(e){let t=e?.properties??{};return{...e,...t}}var ma=({schema:e={},className:t})=>{let n=pa(e),r=N(),i=r?.data,a=r?.objectName||``,o=r?.recordId??i?.id,{language:s}=Kt(),c=Xe(n.title,s),l=Xe(n.body,s),u=Xe(n.action?.label,s),d=[`info`,`warning`,`error`,`success`].includes(n.severity)?n.severity:`info`,f=fa[d],p=n.icon||f.icon,m=F(n.visible),g=ne(m,{record:i}),_=Q.useMemo(()=>{if(!n.dismissible)return null;let e=n.dismissKey||Xe(n.title,`en`)||d;return`os.record-alert:${a}:${o??`_`}:${e}`},[n.dismissible,n.dismissKey,n.title,d,a,o]),[v,y]=Q.useState(()=>{if(!_||typeof window>`u`)return!1;try{return window.localStorage.getItem(_)===`1`}catch{return!1}}),b=n.action?.actionName,{item:x}=h(`object`,b&&a?a:null),S=Q.useMemo(()=>{if(!(!b||!x?.actions))return x.actions.find(e=>e.name===b)},[b,x]),{executeAction:C}=O({actions:Q.useMemo(()=>S?[S]:[],[S]),context:{record:i,recordId:o,objectName:a}});return v||!i||Object.keys(i).length===0||m!==void 0&&!g?null:(0,$.jsxs)(be,{className:X(`relative pr-12`,f.wrap,t),role:d===`error`?`alert`:`status`,"aria-live":d===`error`?`assertive`:`polite`,children:[(0,$.jsx)(nt,{name:p,className:`h-4 w-4`,"aria-hidden":`true`}),c?(0,$.jsx)(en,{children:c}):null,l||S?(0,$.jsxs)(We,{children:[l?(0,$.jsx)(`p`,{className:`mb-2 last:mb-0`,children:l}):null,S?(0,$.jsx)(Z,{size:`sm`,variant:n.action?.variant||(d===`error`?`destructive`:`default`),onClick:()=>{S?.name&&C(S.name)},children:u||S.label||S.name}):null]}):null,n.dismissible?(0,$.jsx)(`button`,{type:`button`,onClick:()=>{if(y(!0),_)try{window.localStorage.setItem(_,`1`)}catch{}},"aria-label":`Dismiss`,className:`absolute right-3 top-3 inline-flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground/80 hover:bg-foreground/5 hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring`,children:(0,$.jsx)(nt,{name:`X`,className:`h-4 w-4`,"aria-hidden":`true`})}):null]})},ha=e=>{if(e==null)return`—`;if(typeof e==`string`)return e.length>0?e:`""`;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},ga=e=>{if(typeof e!=`string`||e.length===0)return null;let t=/\d{4}-\d{2}-\d{2}[ T]/.test(e)?e.replace(` `,`T`):e,n=new Date(t);if(Number.isNaN(n.getTime()))return null;try{return n.toLocaleString()}catch{return n.toISOString()}},_a=({open:e,conflict:t,onReload:n,onOverwrite:r,onCancel:i,busy:a=!1})=>{let{t:o}=Or(),s=t?.label||t?.field||``,c=t?ha(t.pendingValue):``,l=t?ha(t.currentValue):``,u=t?.currentRecord??{},d=(()=>{let e=[u.updated_by_name,u.updated_by_label];for(let t of e)if(typeof t==`string`&&t.length>0)return t;let t=u.updated_by;return typeof t!=`string`||t.length===0||t.length>=16&&!/\s/.test(t)&&/^[A-Za-z0-9_-]+$/.test(t)?null:t})(),f=ga(u.updated_at??t?.currentVersion),[p,m]=o(`detail.concurrentUpdateDescription`,{field:`{{field}}`}).split(`{{field}}`);return(0,$.jsx)(fe,{open:e,onOpenChange:e=>{!e&&!a&&i()},children:(0,$.jsxs)(Y,{className:`max-w-lg`,children:[(0,$.jsx)(Oe,{children:(0,$.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,$.jsx)(`span`,{className:`inline-flex h-9 w-9 flex-none items-center justify-center rounded-full bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300`,"aria-hidden":`true`,children:(0,$.jsx)(Et,{className:`h-5 w-5`})}),(0,$.jsxs)(`div`,{className:`flex-1`,children:[(0,$.jsx)(Pe,{children:o(`detail.concurrentUpdateTitle`)}),(0,$.jsxs)(qe,{className:`mt-1`,children:[p,(0,$.jsx)(`strong`,{className:`font-semibold`,children:s}),m]})]})]})}),(0,$.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,$.jsxs)(`div`,{className:`rounded-md border border-amber-200/70 bg-amber-50/60 p-3 dark:border-amber-500/30 dark:bg-amber-500/10`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-amber-800 dark:text-amber-300`,children:o(`detail.concurrentUpdateYourEdit`)}),(0,$.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:c})]}),(0,$.jsxs)(`div`,{className:`rounded-md border border-sky-200/70 bg-sky-50/60 p-3 dark:border-sky-500/30 dark:bg-sky-500/10`,children:[(0,$.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,$.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-sky-800 dark:text-sky-300`,children:o(`detail.concurrentUpdateCurrentValue`)}),(d||f)&&(0,$.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[d&&(0,$.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedBy`,{name:d})}),d&&f&&(0,$.jsx)(`span`,{children:` · `}),f&&(0,$.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedAt`,{when:f})})]})]}),(0,$.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:l})]})]}),(0,$.jsxs)(we,{className:`gap-2 sm:gap-2`,children:[(0,$.jsx)(`button`,{type:`button`,disabled:a,onClick:i,className:X(W({variant:`ghost`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateCancel`)}),(0,$.jsx)(`button`,{type:`button`,disabled:a,onClick:r,className:X(W({variant:`outline`}),`mt-2 sm:mt-0 text-destructive border-destructive/40 hover:bg-destructive/10 hover:text-destructive`),children:o(`detail.concurrentUpdateOverwrite`)}),(0,$.jsx)(`button`,{type:`button`,disabled:a,onClick:n,autoFocus:!0,className:X(W({variant:`default`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateReload`)})]})]})})};function va(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`CONCURRENT_UPDATE`||t.name===`ConcurrentUpdateError`}function ya(e){let t=e?.message||e?.error||String(e??`Save failed`);return String(t).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``)}async function ba(e,t,n,r,i){if(typeof e?.update==`function`)await e.update(t,n,r,i);else if(typeof e?.updateOne==`function`)await e.updateOne(t,n,r,i);else if(typeof e?.patch==`function`)await e.patch(t,n,r,i);else throw Error(`[InlineEditSaveBar] DataSource exposes no update/updateOne/patch method; cannot persist inline edit`)}var xa=({dataSource:e,objectName:t,recordId:n,data:r,refresh:i,fieldLabelFor:a,onFieldSave:o,locked:s=!1,lockedHint:c,className:l})=>{let{t:u}=Or(),d=C(),[f,p]=Q.useState(null),[m,h]=Q.useState(!1),g=!!e&&!!t&&n!=null,_=Q.useCallback((e,t)=>{let n=Object.keys(e),r=t?.currentRecord??null;if(n.length===1){let i=n[0];return{field:i,label:a?.(i),pendingValue:e[i],currentValue:r?r[i]:void 0,currentVersion:t?.currentVersion,currentRecord:r}}let i=r?Object.fromEntries(n.map(e=>[e,r[e]])):void 0;return{field:n.join(`, `),label:u(`detail.concurrentUpdateRecordLabel`,{defaultValue:`this record`}),pendingValue:e,currentValue:i,currentVersion:t?.currentVersion,currentRecord:r}},[a,u]),v=Q.useCallback(async()=>{if(!d)return;let a=d.draft,s=Object.entries(a);if(s.length===0){d.reset();return}d.setSaving(!0),d.setError(null);try{if(o)for(let[e,t]of s)await o(e,t);else if(g){let o=typeof r?.updated_at==`string`?r.updated_at:void 0;await ba(e,t,n,a,o?{ifMatch:o}:void 0),await i?.()}d.reset()}catch(e){va(e)&&g?p(_(a,e)):d.setError(ya(e))}finally{d.setSaving(!1)}},[d,o,g,r,e,t,n,i,_]),y=Q.useCallback(()=>{p(null),h(!1)},[]),b=Q.useCallback(async()=>{h(!0);try{await i?.()}finally{d?.reset(),y()}},[i,d,y]),x=Q.useCallback(async()=>{if(!f||!g){y();return}h(!0);try{await ba(e,t,n,d?.draft??{},f.currentVersion?{ifMatch:f.currentVersion}:void 0),await i?.(),d?.reset()}catch(e){d?.setError(ya(e))}finally{y()}},[f,g,d,e,t,n,i,y]),S=!!d?.editing,w=!!d?.saving,T=d?.cancel,E=!!f;return Q.useEffect(()=>{if(!S)return;let e=e=>{if(e.key===`Enter`&&(e.metaKey||e.ctrlKey)){if(w||s||E)return;e.preventDefault(),v();return}if(e.key===`Escape`){if(e.defaultPrevented||w||E||document.querySelector(`[data-radix-popper-content-wrapper], [role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]`))return;e.preventDefault(),T?.()}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[S,w,s,E,v,T]),!d||!d.editing?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:X(`sticky bottom-0 z-30 mt-4 flex flex-wrap items-center justify-end gap-2 rounded-md border bg-background/95 px-3 py-2 shadow-sm backdrop-blur supports-[backdrop-filter]:bg-background/80`,l),role:`region`,"aria-label":u(`detail.editFieldsInline`),children:[d.error&&(0,$.jsx)(`div`,{role:`alert`,className:`mr-auto max-w-md rounded-md border border-destructive/20 bg-destructive/10 px-2 py-1 text-xs text-destructive`,children:d.error}),(0,$.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:d.cancel,disabled:d.saving,className:`gap-2`,children:[(0,$.jsx)(Me,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:u(`detail.cancel`)})]}),(0,$.jsxs)(Z,{variant:`default`,size:`sm`,onClick:v,disabled:d.saving||s,className:`gap-2`,title:s?c:void 0,children:[d.saving?(0,$.jsx)(Tn,{className:`h-4 w-4 animate-spin`}):(0,$.jsx)(Cn,{className:`h-4 w-4`}),(0,$.jsx)(`span`,{children:d.saving?u(`detail.saving`):u(`detail.save`)})]})]}),(0,$.jsx)(_a,{open:!!f,conflict:f,busy:m,onCancel:y,onReload:b,onOverwrite:x})]})},Sa=new Set(L),Ca=480,wa=95;function Ta({open:e,onClose:t,title:n,record:r,objectName:i,recordId:a,dataSource:o,objectSchema:s,width:c=`min(960px, 60vw)`,columns:l=2,systemFields:u=Sa,onFieldSave:d,onDelete:f,resizable:p=!0,fullPageHref:m}){let{t:h}=Or(),g=`objectui.drawerWidth.${i}`,[_,v]=Q.useState(()=>{if(typeof window>`u`||!p)return null;try{let e=window.localStorage.getItem(g);if(e){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=Ca)return t}}catch{}return null}),y=Q.useMemo(()=>p&&_!=null?`${_}px`:typeof c==`number`?`${c}px`:c,[p,_,c]),b=y?{width:y,maxWidth:y}:void 0,x=Q.useRef(null),S=Q.useCallback(e=>{if(!p)return;e.preventDefault();let t=_??(typeof window<`u`?Math.min(window.innerWidth*.6,960):720);x.current={startX:e.clientX,startWidth:t};let n=e=>{let t=x.current;if(!t)return;let n=t.startX-e.clientX,r=typeof window<`u`?window.innerWidth*wa/100:1600,i=Math.min(r,Math.max(Ca,t.startWidth+n));v(Math.round(i))},r=()=>{x.current,x.current=null,window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r),window.removeEventListener(`pointercancel`,r);try{v(e=>(e!=null&&window.localStorage.setItem(g,String(e)),e))}catch{}};window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),window.addEventListener(`pointercancel`,r)},[p,_,g]),C=s?.fields??{},w=(Object.keys(C).length?Object.keys(C):Object.keys(r)).filter(e=>!u.has(e)&&!e.startsWith(`__`)).filter(e=>e in r).filter(e=>!C[e]?.hidden).map(e=>{let t=C[e]||{},n=t.type===`lookup`||t.type===`master_detail`||t.type===`reference`;return{name:e,label:t.label,type:t.type,readonly:!!t.readonly||n,options:t.options,currency:t.currency,precision:t.precision,scale:t.scale,format:t.format,reference_to:t.reference_to??t.reference??t.referenceTo??t.target,reference_field:t.reference_field??t.referenceField,required:t.required,validation:t.validation,placeholder:t.placeholder,description:t.description}});return(0,$.jsx)(wn,{open:e,onOpenChange:e=>{e||t()},children:(0,$.jsxs)(Dt,{side:`right`,className:`w-full overflow-y-auto p-0 sm:!max-w-none`,style:b,onOpenAutoFocus:e=>e.preventDefault(),children:[p&&(0,$.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onPointerDown:S,className:`hidden sm:block absolute left-0 top-0 h-full w-1.5 cursor-col-resize select-none bg-transparent hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`}),(0,$.jsx)(An,{className:`sr-only`,children:(0,$.jsx)(jt,{children:n})}),(0,$.jsx)(`div`,{className:`px-6 pt-6 pb-6`,children:(0,$.jsxs)(ae,{canEdit:!!d,children:[(0,$.jsx)(bi,{dataSource:o,inlineEdit:!!d,schema:{type:`detail-view`,objectName:i,resourceId:String(a),data:r,showDelete:!!f,columns:l,fields:w,actions:m?[{type:`action:bar`,location:`record_header`,systemActions:[{name:`sys_open_new_tab`,label:h(`detail.openInNewTab`),icon:`external-link`,type:`script`,onClick:()=>window.open(m,`_blank`,`noopener`)}]}]:void 0},onDelete:f?async()=>{try{await f(),t()}catch(e){console.error(`[RecordDetailDrawer] delete failed:`,e)}}:void 0}),(0,$.jsx)(xa,{onFieldSave:d?async(e,t)=>{try{await d(e,t)}catch(e){throw console.error(`[RecordDetailDrawer] inline field save failed:`,e),e}}:void 0})]})})]})})}function Ea(e,t){if(typeof window>`u`)return null;let n=window.location.pathname,r=`/${e}`,i=n.indexOf(r);return`${i>=0?n.slice(0,i):n.replace(/\/$/,``)}/${e}/record/${encodeURIComponent(String(t))}`}function Da(e,t){if(!e||!t.length)return[];let n=[...t].sort((e,t)=>t.label.length-e.label.length),r=e,i=new Set;for(let e of n){if(!e.label)continue;let t=e.label.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),n=RegExp(`@${t}(?![\\p{L}\\p{N}_])`,`gu`);n.test(r)&&(i.add(e.id),r=r.replace(n,e=>` `.repeat(e.length)))}return[...i]}function Oa(e){return e==null?[]:Array.isArray(e)?e.filter(e=>e!=null):[e]}function ka(e,t){if(!e||!t)return null;let n=e.fields?.[t]?.options;return!Array.isArray(n)||n.length===0?null:n.map(e=>({value:e.value,label:e.label}))}function Aa(e){if(!e)return null;let t=e.fields||{};for(let n of[e.primaryField,e.nameField,e.displayNameField])if(typeof n==`string`&&n.length>0&&n in t)return n;for(let e of[`name`,`full_name`,`title`,`subject`,`display_name`])if(e in t)return e;return null}function ja(e,t,n=4){if(!e)return[];let r=Array.isArray(e.highlightFields)&&e.highlightFields.length>0?e.highlightFields:null;if(r){let t=Aa(e);return r.filter(e=>typeof e==`string`&&e.length>0&&e!==t).slice(0,n)}let i=new Set([`id`,`_id`,`created_at`,`updated_at`,`deleted_at`,`created_by`,`updated_by`,`deleted_by`,`organization_id`,`workspace_id`,`tenant_id`,`org_id`]);t&&i.add(t),e.primaryField&&i.add(e.primaryField),e.nameField&&i.add(e.nameField),e.displayNameField&&i.add(e.displayNameField);for(let t of[`name`,`full_name`,`title`,`subject`,`display_name`])t in(e.fields||{})&&i.add(t);let a=[`owner`,`owner_id`,`amount`,`rating`,`source`,`priority`,`industry`,`phone`,`email`,`close_date`,`due_date`,`start_date`,`expected_close_date`,`account`,`account_id`,`contact`,`contact_id`],o=new Set([`currency`,`number`,`integer`,`decimal`,`percent`,`date`,`datetime`,`time`,`reference`,`lookup`,`user`,`owner`,`select`,`enum`,`multiselect`,`status`,`email`,`phone`,`url`,`text`,`string`]),s=[],c=e.fields||{};for(let e of a)if(e in c&&!i.has(e)&&s.push(e),s.length>=n)return s;for(let e of Object.keys(c)){if(s.includes(e)||i.has(e))continue;let t=c[e]?.type;if(!(t&&!o.has(t))&&(s.push(e),s.length>=n))break}return s}function Ma(e,t={}){return{type:`page:header`,recordChrome:t.recordChrome!==!1,...Array.isArray(t.actions)&&t.actions.length>0?{actions:t.actions}:{}}}function Na(e,t={}){let n=t.statusField??ee(e),r=t.stages??(n?ka(e,n):null),i=t.highlightFields??ja(e,n),a=[];return!t.hideHighlights&&i.length>0&&a.push({type:`record:highlights`,fields:i}),!t.hidePath&&n&&r&&r.length>0&&a.push({type:`record:path`,statusField:n,stages:r}),a}function Pa(e){if(!e)return null;let t=c(e);if(!t)return null;let n=e.fields||{},r=e=>{let t=n[e]||{};return{name:e,label:t.label||e,type:t.type||`text`,...t.options?{options:t.options}:{},...t.reference_to||t.reference?{reference_to:t.reference_to||t.reference}:{},...t.reference_field?{reference_field:t.reference_field}:{},...t.currency?{currency:t.currency}:{},...t.currencyConfig?{currencyConfig:t.currencyConfig}:{}}},i=Tr(t.reduce((e,t)=>e+t.fields.length,0));return t.map(e=>({...e.key===void 0?{}:{name:e.key,title:e.label??e.key},...e.icon?{icon:e.icon}:{},...e.description?{description:e.description}:{},...e.collapse===`none`?{}:{collapsible:!0},...e.collapse===`collapsed`?{defaultCollapsed:!0}:{},columns:i,fields:e.fields.map(r)}))}function Fa(e,t){return Array.isArray(t)&&t.length>0?t:Pa(e)??void 0}function Ia(e,t,n){return{type:`record:details`,sections:Fa(e,t),...n&&n.length>0?{hideFields:n}:{}}}function La(e,t={}){let n=t.statusField??ee(e),r=t.highlightFields??ja(e,n),i=[{label:`Details`,value:`details`,children:[Ia(e,t.sections,r)]}];if(!t.hideRelatedTab&&Array.isArray(t.related)&&t.related.length>0){let e=e=>({type:`record:related_list`,title:e.title,objectName:e.objectName,relationshipField:e.relationshipField,...e.columns?{columns:e.columns}:{},...e.limit?{limit:e.limit}:{},...e.icon?{icon:e.icon}:{}}),n=t=>({label:t.title||t.objectName,value:`related:${t.objectName}`,...t.icon?{icon:t.icon}:{},children:[e(t)]});if(t.relatedLayout===`tabs`)for(let e of t.related)i.push(n(e));else if(t.relatedLayout===`stack`)i.push({label:`Related`,value:`related`,children:t.related.map(e)});else{let r=t.related.filter(e=>e.isPrimary),a=t.related.filter(e=>!e.isPrimary);for(let e of r)i.push(n(e));a.length>0&&i.push({label:`Related`,value:`related`,children:a.map(e)})}}return e?.enable?.files===!0&&!t.hideAttachments&&i.push({label:`Attachments`,value:`attachments`,children:[za()]}),t.showActivity&&i.push({label:`Activity`,value:`activity`,children:[{type:`record:activity`}]}),t.history&&i.push({label:`History`,value:`history`,children:[{type:`record:history`,entries:t.history.entries,loading:t.history.loading,emptyText:t.history.emptyText,unknownUserText:t.history.unknownUserText}]}),{type:`page:tabs`,items:i}}function Ra(){return{type:`record:discussion`}}function za(){return{type:`record:attachments`}}function Ba(e,t={}){let n=t.slots||{},r=[];`header`in n&&n.header!==void 0?r.push(...Oa(n.header)):r.push(Ma(e,{recordChrome:t.recordChrome,actions:t.headerActions})),`actions`in n&&n.actions!==void 0&&r.push(...Oa(n.actions)),`alerts`in n&&n.alerts!==void 0&&r.push(...Oa(n.alerts)),`highlights`in n&&n.highlights!==void 0?r.push(...Oa(n.highlights)):r.push(...Na(e,{highlightFields:t.highlightFields,statusField:t.statusField,stages:t.stages,hideHighlights:t.hideHighlights,hidePath:t.hidePath}));let i=t.showReferenceRail===!0&&!t.hideReferenceRail&&Array.isArray(t.related)&&t.related.length>=2,a=t.hideRelatedTab??i;if(`tabs`in n&&n.tabs!==void 0)r.push(...Oa(n.tabs));else if(`details`in n&&n.details!==void 0){let i=Oa(n.details),o=La(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a,relatedLayout:t.relatedLayout,hideAttachments:t.hideAttachments});Array.isArray(o.items)&&o.items.length>0&&(o.items[0]={...o.items[0],children:i}),r.push(o)}else r.push(La(e,{sections:t.sections,related:t.related,showActivity:t.showActivity,history:t.history,highlightFields:t.highlightFields,statusField:t.statusField,hideRelatedTab:a,relatedLayout:t.relatedLayout,hideAttachments:t.hideAttachments}));`discussion`in n&&n.discussion!==void 0?r.push(...Oa(n.discussion)):t.hideDiscussion||r.push(Ra());let o=[{name:`main`,width:`full`,components:r}],s=Oa(n.rightRail);if(i||s.length>0){let e=[];i&&e.push({type:`record:reference_rail`,entries:t.related.map(e=>({objectName:e.objectName,relationshipField:e.relationshipField,title:e.title,icon:e.icon,displayField:e.displayField,limit:3}))}),s.length>0&&e.push(...s),o.push({name:`aside`,width:`small`,className:`hidden xl:flex flex-col gap-4`,components:e})}return{type:`record`,pageType:`record`,object:e?.name,template:`full-width`,regions:o}}var Va=t({DetailSection:()=>zr,DetailView:()=>bi,RecordActivityRenderer:()=>Xi,RecordAlertRenderer:()=>ma,RecordChatterRenderer:()=>$i,RecordDetailsRenderer:()=>Ci,RecordHighlightsRenderer:()=>Ai,RecordHistoryRenderer:()=>sa,RecordPathRenderer:()=>ta,RecordQuickActionsRenderer:()=>ra,RecordReferenceRailRenderer:()=>da,RecordRelatedListRenderer:()=>Oi,RelatedList:()=>Wr,buildDefaultPageSchema:()=>Ba});_.register(`detail-view`,bi,{namespace:`plugin-detail`,label:`Detail View`,category:`Views`,icon:`FileText`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`objectName`,type:`string`,label:`Object Name`},{name:`resourceId`,type:`string`,label:`Resource ID`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`object`,label:`Data`},{name:`layout`,type:`enum`,label:`Layout Mode`,enum:[`vertical`,`horizontal`,`grid`]},{name:`columns`,type:`number`,label:`Grid Columns`},{name:`sections`,type:`array`,label:`Sections`},{name:`fields`,type:`array`,label:`Fields`},{name:`tabs`,type:`array`,label:`Tabs`},{name:`related`,type:`array`,label:`Related Lists`},{name:`actions`,type:`array`,label:`Actions`},{name:`showBack`,type:`boolean`,label:`Show Back Button`,defaultValue:!0},{name:`backUrl`,type:`string`,label:`Back URL`},{name:`showEdit`,type:`boolean`,label:`Show Edit Button`,defaultValue:!1},{name:`editUrl`,type:`string`,label:`Edit URL`},{name:`showDelete`,type:`boolean`,label:`Show Delete Button`,defaultValue:!1},{name:`deleteConfirmation`,type:`string`,label:`Delete Confirmation Message`},{name:`loading`,type:`boolean`,label:`Show Loading State`},{name:`header`,type:`object`,label:`Custom Header`},{name:`footer`,type:`object`,label:`Custom Footer`}],defaultProps:{title:`Detail View`,showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}}),_.register(`detail-section`,zr,{namespace:`plugin-detail`,label:`Detail Section`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`fields`,type:`array`,label:`Fields`,required:!0},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Default Collapsed`,defaultValue:!1},{name:`columns`,type:`number`,label:`Columns`,defaultValue:2},{name:`showBorder`,type:`boolean`,label:`Show Border`,defaultValue:!0},{name:`headerColor`,type:`string`,label:`Header Color`}]}),_.register(`related-list`,Wr,{namespace:`plugin-detail`,label:`Related List`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`type`,type:`enum`,label:`Type`,enum:[{label:`List`,value:`list`},{label:`Grid`,value:`grid`},{label:`Table`,value:`table`}],defaultValue:`table`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`array`,label:`Data`},{name:`columns`,type:`array`,label:`Columns`}]}),_.register(`detail`,bi,{namespace:`view`,category:`view`,label:`Detail`,icon:`FileText`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`recordId`,type:`string`,label:`Record ID`},{name:`fields`,type:`array`,label:`Fields`}]}),_.register(`details`,Ci,{namespace:`record`,skipFallback:!0,category:`record`,label:`Record Details`,icon:`FileText`,inputs:[{name:`columns`,type:`enum`,label:`Columns`,enum:[`1`,`2`,`3`,`4`],defaultValue:`2`,description:`Number of columns for field layout (1-4)`},{name:`layout`,type:`enum`,label:`Layout`,enum:[`auto`,`custom`],defaultValue:`auto`,description:`auto uses the object highlightFields; custom uses explicit sections`},{name:`sections`,type:`array`,label:`Sections`,description:`Section IDs to show (required when layout is "custom")`},{name:`fields`,type:`array`,label:`Fields`,description:`Explicit field list (overrides highlightFields)`}]}),_.register(`related_list`,Oi,{namespace:`record`,skipFallback:!0,category:`record`,label:`Related List`,icon:`List`,inputs:[{name:`objectName`,type:`string`,label:`Related Object`,required:!0,description:`Related object name (e.g. "task")`},{name:`relationshipField`,type:`string`,label:`Relationship Field`,required:!0,description:`Field on the related object pointing back to this record`},{name:`columns`,type:`array`,label:`Columns`,required:!0,description:`Fields to display in the related list`},{name:`sort`,type:`array`,label:`Sort`},{name:`limit`,type:`number`,label:`Limit`,defaultValue:5,description:`Records to display initially`},{name:`filter`,type:`array`,label:`Filter`,description:`Additional filter criteria`},{name:`title`,type:`string`,label:`Title`},{name:`showViewAll`,type:`boolean`,label:`Show "View All"`,defaultValue:!0},{name:`actions`,type:`array`,label:`Actions`,description:`Action IDs available for related records`}]}),_.register(`highlights`,Ai,{namespace:`record`,skipFallback:!0,category:`record`,label:`Highlights Panel`,icon:`Star`,inputs:[{name:`fields`,type:`array`,label:`Fields`,required:!0,description:`Key fields to highlight (1-7), bare names or {name,label?,icon?,type?}`},{name:`layout`,type:`enum`,label:`Layout`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,description:`Layout orientation for highlight fields`}]}),_.register(`activity`,Xi,{namespace:`record`,skipFallback:!0,category:`record`,label:`Activity Timeline`,icon:`Activity`,inputs:[{name:`types`,type:`array`,label:`Activity Types`,description:`Activity types to display (e.g. task, event, call, comment)`},{name:`filterMode`,type:`string`,label:`Filter Mode`,description:`How the type filter combines with the feed query`},{name:`showFilterToggle`,type:`boolean`,label:`Show Filter Toggle`,description:`Expose the activity-type filter UI`},{name:`limit`,type:`number`,label:`Limit`,description:`Maximum activities to display`},{name:`showCompleted`,type:`boolean`,label:`Show Completed`,description:`Include completed/resolved activities`},{name:`unifiedTimeline`,type:`boolean`,label:`Unified Timeline`,description:`Merge all activity types into one timeline`},{name:`showCommentInput`,type:`boolean`,label:`Show Comment Input`},{name:`enableMentions`,type:`boolean`,label:`Enable @mentions`},{name:`enableReactions`,type:`boolean`,label:`Enable Reactions`},{name:`enableThreading`,type:`boolean`,label:`Enable Threaded Replies`},{name:`showSubscriptionToggle`,type:`boolean`,label:`Show Subscribe Toggle`}]});var Ha=[{name:`position`,type:`enum`,label:`Position`,enum:[`bottom`,`right`,`left`],defaultValue:`bottom`,description:`Where the panel docks relative to the record body`},{name:`width`,type:`string`,label:`Width`,description:`Panel width as a CSS value (side positions only)`},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Start Collapsed`},{name:`feed`,type:`object`,label:`Feed Options`,description:`Activity-feed config nested inside the panel — same shape as record:activity`}];_.register(`chatter`,$i,{namespace:`record`,skipFallback:!0,category:`record`,label:`Chatter Feed`,icon:`MessageSquare`,inputs:Ha}),_.register(`discussion`,$i,{namespace:`record`,skipFallback:!0,category:`record`,label:`Discussion`,icon:`MessageSquare`,inputs:Ha}),_.register(`path`,ta,{namespace:`record`,skipFallback:!0,category:`record`,label:`Path / Stepper`,icon:`GitBranch`,inputs:[{name:`statusField`,type:`string`,label:`Status Field`,required:!0,description:`Field representing the current status/stage`},{name:`stages`,type:`array`,label:`Stages`,description:`Explicit stage definitions [{ value, label }] (else derived from field metadata)`}]}),_.register(`quick_actions`,ra,{namespace:`record`,skipFallback:!0,category:`record`,label:`Quick Actions`,icon:`Zap`,inputs:[{name:`actionNames`,type:`array`,label:`Actions`,description:`Action names to expose, in order (else every action declared for the object at this location)`},{name:`requiredPermissions`,type:`array`,label:`Required Permissions`,description:`Hide the whole bar unless the user holds these permissions`},{name:`location`,type:`enum`,label:`Location`,enum:[...l],defaultValue:`record_header`,description:`Which declared action location this bar renders`},{name:`align`,type:`enum`,label:`Align`,enum:[`start`,`center`,`end`],defaultValue:`end`},{name:`inline`,type:`boolean`,label:`Inline`,description:`Render in the flow instead of folding into the record header`},{name:`variant`,type:`string`,label:`Button Variant`,defaultValue:`default`,description:`Passed to the Button primitive; a per-action variant overrides it`},{name:`size`,type:`string`,label:`Button Size`,defaultValue:`sm`,description:`Passed to the Button primitive; a per-action size overrides it`}]}),_.register(`history`,sa,{namespace:`record`,skipFallback:!0,category:`record`,label:`History Timeline`,icon:`Clock`,inputs:[{name:`limit`,type:`number`,label:`Limit`,defaultValue:50,description:`Maximum history entries to display`},{name:`emptyText`,type:`string`,label:`Empty Text`,description:`Copy shown when the record has no history`},{name:`unknownUserText`,type:`string`,label:`Unknown User Text`,description:`Copy substituted when an entry has no resolvable actor`}]}),_.register(`reference_rail`,da,{namespace:`record`,skipFallback:!0,category:`record`,label:`Reference Rail`,icon:`PanelRight`,inputs:[{name:`hideEmpty`,type:`boolean`,label:`Hide When Empty`,defaultValue:!0,description:`Drop the rail entirely when no entries resolve`}]}),_.register(`alert`,ma,{namespace:`record`,skipFallback:!0,category:`record`,label:`Alert Banner`,icon:`AlertTriangle`,inputs:[{name:`severity`,type:`enum`,label:`Severity`,enum:[`info`,`warning`,`error`,`success`],defaultValue:`info`},{name:`title`,type:`string`,label:`Title`,description:`Accepts an inline translation map ({ en, "zh-CN", … })`},{name:`body`,type:`string`,label:`Body`,description:`Accepts an inline translation map ({ en, "zh-CN", … })`},{name:`visible`,type:`string`,label:`Visible When`,description:`Expression gating the banner against the current record`},{name:`icon`,type:`string`,label:`Icon`,description:`Lucide icon name; defaults to the severity icon`},{name:`action`,type:`object`,label:`Call to Action`,description:`{ actionName, label?, variant? } — the action the banner offers`},{name:`dismissible`,type:`boolean`,label:`Dismissible`},{name:`dismissKey`,type:`string`,label:`Dismiss Key`,description:`Stable key the dismissal is remembered under`}]}),_.register(`permission-facet-link`,jr,{namespace:`field`,skipFallback:!0});export{Da as a,xa as c,hr as d,Aa as i,Zi as l,Ba as n,Ta as o,Pa as r,Ea as s,Va as t,gi as u};