@objectstack/console 17.0.0 → 17.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/CHANGELOG.md +452 -0
  2. package/dist/.objectstack-injection.json +13 -0
  3. package/dist/.objectui-sha +1 -1
  4. package/dist/assets/AdapterProvider-gULVLpjV.js +3 -0
  5. package/dist/assets/AiPendingActionsPage-CyG11hX9.js +1 -0
  6. package/dist/assets/ApiConsolePage-DYuOp_W4.js +1 -0
  7. package/dist/assets/AppDocsIndex-BXkNskk1.js +1 -0
  8. package/dist/assets/AppManagementPage-BvSxDdA_.js +1 -0
  9. package/dist/assets/ApprovalsInboxPage-oep3a-Ek.js +1 -0
  10. package/dist/assets/AuditLogPage-BZZ6tzHu.js +1 -0
  11. package/dist/assets/ComponentNavView-Cq4wkNUa.js +1 -0
  12. package/dist/assets/DashboardView-C23ZCS2S.js +1 -0
  13. package/dist/assets/{DeveloperHubPage-DVKVm5k0.js → DeveloperHubPage-KEpKc45V.js} +1 -1
  14. package/dist/assets/DocPage-Y4rWCZ3E.js +1 -0
  15. package/dist/assets/{DocShell-C1VQpTIJ.js → DocShell-DMJHUgE5.js} +1 -1
  16. package/dist/assets/DocsIndex-Bb5OtPb3.js +1 -0
  17. package/dist/assets/DocsLayout-CoIVTMH_.js +1 -0
  18. package/dist/assets/DocsSlug-BARWHmXg.js +1 -0
  19. package/dist/assets/{ExpressionProvider-qmd0nVCn.js → ExpressionProvider-vGLngw8h.js} +1 -1
  20. package/dist/assets/FlowRunsPage-BeGa9_ge.js +1 -0
  21. package/dist/assets/{IntegrationsPage-Cq4mWRFh.js → IntegrationsPage-DTXA-Nne.js} +2 -2
  22. package/dist/assets/InterfaceListPage-BMvedZyV.js +1 -0
  23. package/dist/assets/{ManagedByBadge-DgsrLolr.js → ManagedByBadge-mKmG0hP7.js} +1 -1
  24. package/dist/assets/MarketplaceAccessDenied-BBMyNu2w.js +1 -0
  25. package/dist/assets/{MarketplaceInstalledPage-CRe2BiM2.js → MarketplaceInstalledPage-B4qrvb7w.js} +1 -1
  26. package/dist/assets/MarketplacePackagePage-BuVfVeBj.js +4 -0
  27. package/dist/assets/MarketplacePage-Cmltk5nG.js +1 -0
  28. package/dist/assets/{MetadataInspector-qQ85bFun.js → MetadataInspector-kVAu8vlh.js} +1 -1
  29. package/dist/assets/MetadataProvider-DyFZSNqq.js +1 -0
  30. package/dist/assets/{MonacoImpl-DStuouLX.js → MonacoImpl-Cu_-ISwm.js} +1 -1
  31. package/dist/assets/ObjectDataPage-BKHEYwXA.js +1 -0
  32. package/dist/assets/PageView-CTqS-VD9.js +1 -0
  33. package/dist/assets/ProfilePage-CBUxXn5a.js +1 -0
  34. package/dist/assets/PublicFormsPage-B8Dk8fky.js +1 -0
  35. package/dist/assets/RecordDetailView-BBNqsNy9.js +11 -0
  36. package/dist/assets/RecordFormPage-CeUmmc_n.js +1 -0
  37. package/dist/assets/ReportDefaultInspector-CRjDi2Er.js +3 -0
  38. package/dist/assets/ReportView-Cwi_Po4H.js +2 -0
  39. package/dist/assets/SearchResultsPage-Cg0oq2by.js +1 -0
  40. package/dist/assets/SettingsHub-B5_S9YgI.js +1 -0
  41. package/dist/assets/SettingsView-Csi1awf-.js +1 -0
  42. package/dist/assets/SystemHubPage-CnDri9oU.js +1 -0
  43. package/dist/assets/{abnfDiagram-N423BO3Z-Ck9FUrgJ.js → abnfDiagram-N423BO3Z-DfpQlDUF.js} +1 -1
  44. package/dist/assets/{architectureDiagram-T3A2C74G-DJbnVK1q.js → architectureDiagram-T3A2C74G-Ej_4n3NG.js} +1 -1
  45. package/dist/assets/{assistantBus-DNogw1P-.js → assistantBus-DNH-fDWN.js} +1 -1
  46. package/dist/assets/{blockDiagram-VBNYF7ZC-Qtci47Jq.js → blockDiagram-VBNYF7ZC-l_P_W7_Y.js} +1 -1
  47. package/dist/assets/{c4Diagram-5PPSVZJV-DC9Uk9FW.js → c4Diagram-5PPSVZJV-CE82HAlO.js} +1 -1
  48. package/dist/assets/channel-DowAYf9b.js +1 -0
  49. package/dist/assets/{chunk-2GRJ4B5K-C6KsYuNR.js → chunk-2GRJ4B5K-D1if-ThW.js} +1 -1
  50. package/dist/assets/chunk-3NCLNEKW-Z5ckM4mG.js +1 -0
  51. package/dist/assets/{chunk-4I5QYGJK-CPsvNPUx.js → chunk-4I5QYGJK-DlrWrdEa.js} +1 -1
  52. package/dist/assets/{chunk-5RXB4S5H-CU_v2umt.js → chunk-5RXB4S5H-JwFhdddt.js} +1 -1
  53. package/dist/assets/{chunk-6Q2QTUOP-C_q0JPmG.js → chunk-6Q2QTUOP-C2vvuHlO.js} +1 -1
  54. package/dist/assets/{chunk-7Z6QIM7H-jM3JGv9o.js → chunk-7Z6QIM7H-m6s_oalL.js} +1 -1
  55. package/dist/assets/{chunk-GF5L2VYU-Dp_0e4Vj.js → chunk-GF5L2VYU-Dgjjn2FR.js} +1 -1
  56. package/dist/assets/{chunk-I66GZJ75-CLtbCU_E.js → chunk-I66GZJ75-BsY3mBMx.js} +1 -1
  57. package/dist/assets/{chunk-J7OUQ5F2-C4uAdkrD.js → chunk-J7OUQ5F2-Cl4FNR_k.js} +1 -1
  58. package/dist/assets/{chunk-JQJVKLGR-BlTMFaN6.js → chunk-JQJVKLGR-BApWxqMA.js} +1 -1
  59. package/dist/assets/{chunk-KBJHAD2P-BJzwVqKy.js → chunk-KBJHAD2P-DI4-lUt-.js} +1 -1
  60. package/dist/assets/{chunk-NSK5VX7P-B7tNpEbR.js → chunk-NSK5VX7P-BBTxIP6Z.js} +1 -1
  61. package/dist/assets/{chunk-QR6OTTB3-B3mQWEI2.js → chunk-QR6OTTB3-DJcD7xr-.js} +1 -1
  62. package/dist/assets/{chunk-RYQCIY6F-B3DAS_Q-.js → chunk-RYQCIY6F-CnMsR_qh.js} +1 -1
  63. package/dist/assets/{chunk-UBXNYLIW-Cqb7MpFH.js → chunk-UBXNYLIW-B7z1tp3V.js} +1 -1
  64. package/dist/assets/{chunk-W5SLKNZC-DWOVkEVc.js → chunk-W5SLKNZC-BnMc5i0B.js} +1 -1
  65. package/dist/assets/{chunk-WRU74C26-DR5g8owc.js → chunk-WRU74C26-MrzCPX2E.js} +1 -1
  66. package/dist/assets/chunk-XXDRQBXY-NKBlW2Dm.js +1 -0
  67. package/dist/assets/classDiagram-JCYQIIEL-C4ADaKBz.js +1 -0
  68. package/dist/assets/classDiagram-v2-OCEON4UE-C4ADaKBz.js +1 -0
  69. package/dist/assets/{cose-bilkent-JH36ORCC-CcXrYRrs.js → cose-bilkent-JH36ORCC-XP-DnSP5.js} +1 -1
  70. package/dist/assets/{createDerive-C1PaRnFZ.js → createDerive-B3AGnDaY.js} +1 -1
  71. package/dist/assets/{cynefinDiagram-MW4NZA55-DuPIOMPB.js → cynefinDiagram-MW4NZA55-B8MvpqXe.js} +1 -1
  72. package/dist/assets/{dagre-VZM6K2ZE-CHbs07zF.js → dagre-VZM6K2ZE-B5E8-xuM.js} +1 -1
  73. package/dist/assets/{diagram-7IWD3JNH-sPS-Y-CP.js → diagram-7IWD3JNH-Xj62y5BF.js} +1 -1
  74. package/dist/assets/{diagram-B4RE2ZJO-C4Essr7L.js → diagram-B4RE2ZJO-mI-iOCGl.js} +1 -1
  75. package/dist/assets/{diagram-LBJQPF4R-CluEJ_Yg.js → diagram-LBJQPF4R-BMTSoZch.js} +1 -1
  76. package/dist/assets/{diagram-Q27KOJAE-D4lem9jQ.js → diagram-Q27KOJAE-B98Knrnh.js} +1 -1
  77. package/dist/assets/{diagram-UB23O5K3-Bfj6mHJD.js → diagram-UB23O5K3-bseKIzhv.js} +1 -1
  78. package/dist/assets/{dist-D3VfqzjO.js → dist-BK-OswHQ.js} +1 -1
  79. package/dist/assets/dist-Ck19TqqJ.js +5 -0
  80. package/dist/assets/{ebnfDiagram-BXEA7PRR-BKXyHLd_.js → ebnfDiagram-BXEA7PRR-Bgo10FP1.js} +1 -1
  81. package/dist/assets/{erDiagram-JOGREHBK-B6_uGYAF.js → erDiagram-JOGREHBK-BU4b8mUv.js} +1 -1
  82. package/dist/assets/flowDiagram-UKHOOZJN-BDHHPApJ.js +1 -0
  83. package/dist/assets/framework-BwfIhdyz.js +55 -0
  84. package/dist/assets/{ganttDiagram-PKOTCBZU-Cip5kKH4.js → ganttDiagram-PKOTCBZU-CrmKcYGt.js} +1 -1
  85. package/dist/assets/{getIcon-QmYxLBSb.js → getIcon-1ZXs1v-a.js} +1 -1
  86. package/dist/assets/{gitGraphDiagram-DS77QQ5N-CF75OjHf.js → gitGraphDiagram-DS77QQ5N-COu0mOui.js} +1 -1
  87. package/dist/assets/{highlighted-body-OFNGDK62-BPV_Giyg.js → highlighted-body-OFNGDK62-CnGKNo0r.js} +1 -1
  88. package/dist/assets/i18n-rra-09wp.js +9 -0
  89. package/dist/assets/index-BLepsDd_.js +19 -0
  90. package/dist/assets/index-D26gl3rg.css +2 -0
  91. package/dist/assets/{infoDiagram-6WML65LV-IbyJxsv4.js → infoDiagram-6WML65LV-BT0Q6MIs.js} +1 -1
  92. package/dist/assets/infrastructure-BCTDJsqi.js +3 -0
  93. package/dist/assets/{ishikawaDiagram-WSZJBQD7-D8FhFMwb.js → ishikawaDiagram-WSZJBQD7-kvPjMvBP.js} +1 -1
  94. package/dist/assets/{journeyDiagram-NVQOT4AX-C1y_DqRe.js → journeyDiagram-NVQOT4AX-DhXy7wxt.js} +1 -1
  95. package/dist/assets/{kanban-definition-27J2QSJJ-DIUOavva.js → kanban-definition-27J2QSJJ-CFDavpZY.js} +1 -1
  96. package/dist/assets/maplibre-gl-CrDadnl3.js +801 -0
  97. package/dist/assets/maplibre-gl-shared.mjs +2 -2
  98. package/dist/assets/maplibre-gl-worker.mjs +2 -2
  99. package/dist/assets/mermaid-GHXKKRXX-CR9PcY0X.js +1 -0
  100. package/dist/assets/{mermaid-parser.core-BbBeSajF.js → mermaid-parser.core-Dd2B8Ckv.js} +1 -1
  101. package/dist/assets/{mermaid.core-Dc9p2r4P.js → mermaid.core-BwiBFu_S.js} +2 -2
  102. package/dist/assets/metadata-admin-BE9_-F_f.js +25 -0
  103. package/dist/assets/{mindmap-definition-FAOFIHXS-TIsZfgu-.js → mindmap-definition-FAOFIHXS-ITGoV4nW.js} +1 -1
  104. package/dist/assets/{pegDiagram-VL7TDLO6-BrUvPfjL.js → pegDiagram-VL7TDLO6-BoRu9yvl.js} +1 -1
  105. package/dist/assets/{pieDiagram-7S7Q4E2Y-BNPIri0N.js → pieDiagram-7S7Q4E2Y-DVsM9krU.js} +1 -1
  106. package/dist/assets/plugin-calendar-BfY9ZunQ.js +1 -0
  107. package/dist/assets/plugin-charts-CmWL7Og-.js +7 -0
  108. package/dist/assets/plugin-chatbot-mxoQfkdx.js +120 -0
  109. package/dist/assets/plugin-dashboard-CzbAW1Rz.js +6 -0
  110. package/dist/assets/plugin-form-ItAwTFz-.js +1 -0
  111. package/dist/assets/plugin-gantt-DF5W5xkN.js +64 -0
  112. package/dist/assets/plugin-grid-B42Photo.js +9 -0
  113. package/dist/assets/plugin-kanban-Dh3HIJIm.js +1 -0
  114. package/dist/assets/plugin-map-C1wSLqlB.js +1 -0
  115. package/dist/assets/plugin-map-DSnsEFKn.css +1 -0
  116. package/dist/assets/{plugin-markdown-CbQeAjXv.js → plugin-markdown-DNllWgPM.js} +1 -1
  117. package/dist/assets/plugin-report-yfOfZPQg.js +59 -0
  118. package/dist/assets/plugin-timeline-BpuaaqBd.js +1 -0
  119. package/dist/assets/plugin-tree-BrXE50se.js +1 -0
  120. package/dist/assets/plugin-view-Jc0rkk7A.js +1 -0
  121. package/dist/assets/plugins-views-cOiN-mPq.js +4 -0
  122. package/dist/assets/{quadrantDiagram-CIZ2JOQS-BpL1Kl6d.js → quadrantDiagram-CIZ2JOQS-C4VzXHnp.js} +1 -1
  123. package/dist/assets/{railroadDiagram-AXF67PYL-CY1JovP6.js → railroadDiagram-AXF67PYL-DqZ3yKWv.js} +1 -1
  124. package/dist/assets/{requirementDiagram-LRYGKXZP-TRTGy9-6.js → requirementDiagram-LRYGKXZP-BeH0P3vD.js} +1 -1
  125. package/dist/assets/{runtime-metadata-persistence-DDZN-tZg.js → runtime-metadata-persistence-DTOJpVmd.js} +1 -1
  126. package/dist/assets/{sankeyDiagram-W5VNT64P-Hj-Un0bp.js → sankeyDiagram-W5VNT64P-Bu_tPh-A.js} +1 -1
  127. package/dist/assets/{sequenceDiagram-SI44F4Z6-iGYyf5AF.js → sequenceDiagram-SI44F4Z6-BWEuLn1a.js} +1 -1
  128. package/dist/assets/{skeletons-BWrJAbfN.js → skeletons-BwA1TSR2.js} +1 -1
  129. package/dist/assets/src-BLbFBP_B.js +1 -0
  130. package/dist/assets/{src-DwpgXgLE.js → src-CY2xhbXR.js} +1 -1
  131. package/dist/assets/{src-0qbDl74X.js → src-CvicUdp3.js} +1 -1
  132. package/dist/assets/src-DhAd4aY4.js +2 -0
  133. package/dist/assets/{stateDiagram-OKZ733FA-B-kn5M6g.js → stateDiagram-OKZ733FA-Cp7aDYsZ.js} +1 -1
  134. package/dist/assets/stateDiagram-v2-UEYNNEHI-DaTg8C5m.js +1 -0
  135. package/dist/assets/{swimlanes-SLNWSIFB-sV1QkjXA.js → swimlanes-SLNWSIFB-wrx1JN6o.js} +1 -1
  136. package/dist/assets/swimlanesDiagram-ULZ7WXOC-Bqz9GVuM.js +8 -0
  137. package/dist/assets/{timeline-definition-Z64GVDOM-DMClsS2j.js → timeline-definition-Z64GVDOM-BcUiJfLU.js} +1 -1
  138. package/dist/assets/ui-components-Dwq5utCl.js +42 -0
  139. package/dist/assets/ui-layout-DPFlQaQp.js +1 -0
  140. package/dist/assets/use-book-data-CZc8MJsb.js +1 -0
  141. package/dist/assets/useActionModal-DYiSBx1G.js +1 -0
  142. package/dist/assets/useOpenRecordList-DOZu_JZX.js +1 -0
  143. package/dist/assets/usePackageL10n-D91-102Q.js +1 -0
  144. package/dist/assets/{useSettingsLabel-Bl5L3RqQ.js → useSettingsLabel-CeZ36S4g.js} +1 -1
  145. package/dist/assets/{utils-L-_x2yPF.js → utils-CJ4UwXMF.js} +1 -1
  146. package/dist/assets/{vendor-charts-DAI87uet.js → vendor-charts-BEGSmcjR.js} +3 -3
  147. package/dist/assets/{vendor-dndkit-CQdzTF9d.js → vendor-dndkit-CkJ59XFL.js} +1 -1
  148. package/dist/assets/{vendor-i18n-DeMInx63.js → vendor-i18n-Cpia2wlg.js} +1 -1
  149. package/dist/assets/{vendor-icons-core-B25E_7o5.js → vendor-icons-core-Bi9GWsvI.js} +1 -1
  150. package/dist/assets/{vendor-markdown-DjBjpmKk.js → vendor-markdown-C_Ip9E_I.js} +2 -2
  151. package/dist/assets/vendor-objectstack-B1R3ym-9.js +264 -0
  152. package/dist/assets/{vendor-radix-D1dussIM.js → vendor-radix-DFmVRiEf.js} +1 -1
  153. package/dist/assets/{vendor-react-BgOXCBVK.js → vendor-react-CsWFRkED.js} +1 -1
  154. package/dist/assets/vendor-sentry-B2ojA7qm.js +501 -0
  155. package/dist/assets/vendor-ui-utils-BFw4cGI6.js +1 -0
  156. package/dist/assets/vendor-zod-r9lyeyrU.js +64 -0
  157. package/dist/assets/{vennDiagram-T6HMQDX7-CrP23lgd.js → vennDiagram-T6HMQDX7-BKJsL5fS.js} +1 -1
  158. package/dist/assets/{wardleyDiagram-T6FBY63Y-DSw6poZ6.js → wardleyDiagram-T6FBY63Y-CZ0aMbYX.js} +1 -1
  159. package/dist/assets/{xychartDiagram-ELKLHX3M-BVUFqBDL.js → xychartDiagram-ELKLHX3M-BpK2RmQ_.js} +1 -1
  160. package/dist/eager-closure.json +277 -0
  161. package/dist/index.html +56 -16
  162. package/package.json +1 -1
  163. package/dist/assets/AdapterProvider-BpWMSLQH.js +0 -3
  164. package/dist/assets/AiPendingActionsPage-DAJUEqyC.js +0 -1
  165. package/dist/assets/ApiConsolePage-CgXbOsFC.js +0 -1
  166. package/dist/assets/AppDocsIndex-BgaIthca.js +0 -1
  167. package/dist/assets/AppManagementPage-BvGPskyf.js +0 -1
  168. package/dist/assets/ApprovalsInboxPage-CxmrNrwP.js +0 -1
  169. package/dist/assets/AuditLogPage-JahfQFnX.js +0 -1
  170. package/dist/assets/ComponentNavView-DjiNAGys.js +0 -1
  171. package/dist/assets/CreateViewDialog-CUvjCA1o.js +0 -1
  172. package/dist/assets/DashboardView-Cr-Q-16_.js +0 -1
  173. package/dist/assets/FlowRunsPage-DL7MhL_U.js +0 -1
  174. package/dist/assets/InterfaceListPage-CfhSyYAw.js +0 -1
  175. package/dist/assets/MarketplaceAccessDenied-t8A0k9OX.js +0 -1
  176. package/dist/assets/MarketplacePackagePage-XSdk80Dd.js +0 -4
  177. package/dist/assets/MarketplacePage-CZjDbg5G.js +0 -1
  178. package/dist/assets/MetadataProvider-CnYsadFP.js +0 -1
  179. package/dist/assets/ObjectDataPage-D9kCSxvN.js +0 -1
  180. package/dist/assets/PageView-q1XSwpVo.js +0 -1
  181. package/dist/assets/ProfilePage-DeDhni58.js +0 -1
  182. package/dist/assets/PublicFormsPage-BX6YXY8w.js +0 -1
  183. package/dist/assets/RecordDetailView-DrVbrbaN.js +0 -9
  184. package/dist/assets/RecordFormPage-Bs9wX-M6.js +0 -1
  185. package/dist/assets/ReportDefaultInspector-BbbhDn34.js +0 -3
  186. package/dist/assets/ReportView-D_soBKL6.js +0 -2
  187. package/dist/assets/SearchResultsPage--Beqyte8.js +0 -1
  188. package/dist/assets/SettingsHub-BozLt7dt.js +0 -1
  189. package/dist/assets/SettingsView-CC3o9IGe.js +0 -1
  190. package/dist/assets/SystemHubPage-CBdrX4bx.js +0 -1
  191. package/dist/assets/channel-dlPH8oK4.js +0 -1
  192. package/dist/assets/chunk-3NCLNEKW-CHvXlKAW.js +0 -1
  193. package/dist/assets/chunk-XXDRQBXY-BLRqgrvV.js +0 -1
  194. package/dist/assets/classDiagram-JCYQIIEL-ghx-FrtR.js +0 -1
  195. package/dist/assets/classDiagram-v2-OCEON4UE-ghx-FrtR.js +0 -1
  196. package/dist/assets/componentRegistry-ByxoJqMW.js +0 -1
  197. package/dist/assets/data-adapter-yS4exRPT.js +0 -24
  198. package/dist/assets/flowDiagram-UKHOOZJN-6YBsanbO.js +0 -1
  199. package/dist/assets/framework-B8ndNKrd.js +0 -38
  200. package/dist/assets/i18n-DLOdKEiB.js +0 -9
  201. package/dist/assets/index-DaeqUnH6.js +0 -2
  202. package/dist/assets/index-gaeYmjTV.css +0 -2
  203. package/dist/assets/infrastructure-ChmEYj6c.js +0 -3
  204. package/dist/assets/maplibre-gl-DPzMTNDD.js +0 -801
  205. package/dist/assets/mermaid-GHXKKRXX-BrwYiPsC.js +0 -1
  206. package/dist/assets/metadata-admin-DqAvOmNf.js +0 -25
  207. package/dist/assets/plugin-calendar-CQVTjox_.js +0 -1
  208. package/dist/assets/plugin-charts-CBUIhVeW.js +0 -7
  209. package/dist/assets/plugin-chatbot-DsLGdfGx.js +0 -120
  210. package/dist/assets/plugin-dashboard-fdM1jm2j.js +0 -6
  211. package/dist/assets/plugin-form-Bv0Hi0E6.js +0 -1
  212. package/dist/assets/plugin-gantt-CRJpVrrP.js +0 -63
  213. package/dist/assets/plugin-grid-gHcTrjs3.js +0 -8
  214. package/dist/assets/plugin-kanban-CNm7DssD.js +0 -1
  215. package/dist/assets/plugin-map-5lRITB8H.css +0 -1
  216. package/dist/assets/plugin-map-TrYBEx8q.js +0 -1
  217. package/dist/assets/plugin-report-Bg1oh9SG.js +0 -59
  218. package/dist/assets/plugin-timeline-B30kCAGi.js +0 -1
  219. package/dist/assets/plugin-tree-Br5XanqO.js +0 -1
  220. package/dist/assets/plugin-view-CgDs-8T5.js +0 -1
  221. package/dist/assets/plugins-views-BxwTmeut.js +0 -4
  222. package/dist/assets/src-BBKXMp-o.js +0 -19
  223. package/dist/assets/src-CVuJHohL.js +0 -1
  224. package/dist/assets/src-leh_hyM1.js +0 -2
  225. package/dist/assets/stateDiagram-v2-UEYNNEHI-CHYANMPw.js +0 -1
  226. package/dist/assets/swimlanesDiagram-ULZ7WXOC-CBFvMN71.js +0 -8
  227. package/dist/assets/ui-components-mPgY5chB.js +0 -42
  228. package/dist/assets/ui-layout-CRcyxP_X.js +0 -1
  229. package/dist/assets/use-book-data-B2KPEJjv.js +0 -1
  230. package/dist/assets/useOpenRecordList-ovuRzPa2.js +0 -1
  231. package/dist/assets/usePackageL10n-9fP2GgDK.js +0 -1
  232. package/dist/assets/vendor-objectstack-DneBps14.js +0 -155
  233. package/dist/assets/vendor-sentry-DlmtNsBO.js +0 -501
  234. package/dist/assets/vendor-ui-utils-BGw4RtYu.js +0 -1
  235. package/dist/assets/vendor-zod-CBDIIwrA.js +0 -65
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{r as n,y as r}from"./vendor-react-BgOXCBVK.js";import{Ar as i,Mt as a,_r as o,br as s,hr as c,i as l,mt as u,o as d,r as f}from"./framework-B8ndNKrd.js";import{An as p,Ar as m,Cn as h,Ea as g,Ln as _,Mn as v,Nn as y,Sn as b,Tn as x,_r as S,br as C,dc as w,el as T,fc as E,gr as D,hr as O,jn as k,mn as A,ol as j,qr as M,sl as ee,vr as te,wc as ne,wn as N,xn as re,yr as ie}from"./ui-components-mPgY5chB.js";import{r as ae}from"./vendor-ui-utils-BGw4RtYu.js";import{s as oe}from"./plugin-grid-gHcTrjs3.js";import{o as se,s as ce}from"./plugins-views-BxwTmeut.js";var P=e(r(),1),F=n(),le=`bg-blue-100 text-blue-900 border border-blue-200`,ue=new Date,I=[`bg-blue-100 text-blue-900 border border-blue-200`,`bg-emerald-100 text-emerald-900 border border-emerald-200`,`bg-amber-100 text-amber-900 border border-amber-200`,`bg-rose-100 text-rose-900 border border-rose-200`,`bg-violet-100 text-violet-900 border border-violet-200`,`bg-cyan-100 text-cyan-900 border border-cyan-200`,`bg-orange-100 text-orange-900 border border-orange-200`,`bg-fuchsia-100 text-fuchsia-900 border border-fuchsia-200`],L=/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i,R=/(^|\s)(bg|text|from|to|via)-/;function z(e){if(!e)return{className:le};if(L.test(e))return{className:`text-white`,inlineColor:e};if(R.test(e))return{className:e};let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return{className:I[Math.abs(t)%I.length]}}var B=j({"calendar.today":`Today`,"calendar.month":`Month`,"calendar.week":`Week`,"calendar.day":`Day`,"calendar.newEvent":`New event`,"calendar.moreEvents":`+{{count}} more`,"calendar.allDay":`all-day`},`calendar.today`);function V({events:e=[],view:t=`month`,currentDate:n=ue,locale:r=`default`,onEventClick:i,onDateClick:a,onViewChange:o,onNavigate:s,onAddClick:c,onEventDrop:l,onTimeRangeSelect:u,slotMinutes:d=30,className:f}){let[_,y]=P.useState(t),[S,C]=P.useState(n),{t:D,language:O}=B(),A=r==="default"?O:r;P.useEffect(()=>{C(n)},[n]),P.useEffect(()=>{y(t)},[t]);let j=P.useRef(o);j.current=o,P.useEffect(()=>{let e=window.matchMedia(`(max-width: 639px)`),t=e=>{e.matches&&(y(`day`),j.current?.(`day`))};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let ee=()=>{let e=new Date(S);_===`month`?e.setMonth(e.getMonth()-1):_===`week`?e.setDate(e.getDate()-7):e.setDate(e.getDate()-1),C(e),s?.(e)},te=()=>{let e=new Date(S);_===`month`?e.setMonth(e.getMonth()+1):_===`week`?e.setDate(e.getDate()+7):e.setDate(e.getDate()+1),C(e),s?.(e)},ie=()=>{let e=new Date;C(e),s?.(e)},ae=e=>{y(e),o?.(e)},oe=()=>{if(_===`month`)return S.toLocaleDateString(A,{month:`long`,year:`numeric`});if(_===`week`){let e=H(S),t=new Date(e);return t.setDate(t.getDate()+6),`${e.toLocaleDateString(A,{month:`short`,day:`numeric`})} - ${t.toLocaleDateString(A,{month:`short`,day:`numeric`,year:`numeric`})}`}return S.toLocaleDateString(A,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})},se=P.useRef(0);return(0,F.jsxs)(`div`,{role:`region`,"aria-label":`Calendar`,className:T(`flex flex-col h-full bg-background min-w-0 overflow-hidden`,f),children:[(0,F.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2 p-2 sm:p-4 border-b min-w-0`,children:[(0,F.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,F.jsxs)(`div`,{className:`flex items-center bg-muted/50 rounded-lg p-1 gap-1`,children:[(0,F.jsx)(M,{variant:`ghost`,size:`sm`,onClick:ie,className:`h-8`,"aria-label":`Go to today`,children:D(`calendar.today`)}),(0,F.jsx)(`div`,{className:`h-4 w-px bg-border mx-1`}),(0,F.jsx)(M,{variant:`ghost`,size:`icon`,"aria-label":`Previous period`,onClick:ee,className:`h-8 w-8`,children:(0,F.jsx)(E,{className:`h-4 w-4`})}),(0,F.jsx)(M,{variant:`ghost`,size:`icon`,"aria-label":`Next period`,onClick:te,className:`h-8 w-8`,children:(0,F.jsx)(w,{className:`h-4 w-4`})})]}),(0,F.jsxs)(p,{children:[(0,F.jsx)(v,{asChild:!0,children:(0,F.jsxs)(M,{variant:`ghost`,"aria-label":`Current date: ${oe()}`,className:T(`text-base sm:text-xl font-semibold h-auto px-2 sm:px-3 py-1 hover:bg-muted/50 transition-colors`,`flex items-center gap-2`),children:[(0,F.jsx)(ne,{className:`h-5 w-5 text-muted-foreground`}),(0,F.jsx)(`span`,{children:oe()})]})}),(0,F.jsx)(k,{className:`w-auto p-0`,align:`start`,children:(0,F.jsx)(m,{mode:`single`,selected:S,onSelect:e=>{e&&(C(e),s?.(e))},autoFocus:!0,startMonth:new Date(2e3,0),endMonth:new Date(2050,11)})})]})]}),(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(re,{value:_,onValueChange:ae,children:[(0,F.jsx)(N,{className:`w-32 bg-background`,children:(0,F.jsx)(x,{})}),(0,F.jsxs)(b,{children:[(0,F.jsx)(h,{value:`day`,children:D(`calendar.day`)}),(0,F.jsx)(h,{value:`week`,children:D(`calendar.week`)}),(0,F.jsx)(h,{value:`month`,children:D(`calendar.month`)})]})]}),c&&(0,F.jsxs)(M,{onClick:c,size:`sm`,className:`gap-1`,children:[(0,F.jsx)(g,{className:`h-4 w-4`}),D(`calendar.newEvent`)]})]})]}),(0,F.jsxs)(`div`,{className:`flex-1 overflow-auto`,onTouchStart:e=>{se.current=e.touches[0].clientX},onTouchEnd:e=>{let t=se.current-e.changedTouches[0].clientX;if(Math.abs(t)>50){let e=new Date(S);_===`day`?e.setDate(e.getDate()+(t>0?1:-1)):_===`week`?e.setDate(e.getDate()+(t>0?7:-7)):e.setMonth(e.getMonth()+(t>0?1:-1)),C(e),s?.(e)}},children:[_===`month`&&(0,F.jsx)(fe,{date:S,events:e,locale:A,onEventClick:i,onDateClick:a,onEventDrop:l}),_===`week`&&(0,F.jsx)(J,{mode:`week`,date:S,events:e,locale:A,slotMinutes:d,onEventClick:i,onEventDrop:l,onTimeRangeSelect:u}),_===`day`&&(0,F.jsx)(J,{mode:`day`,date:S,events:e,locale:A,slotMinutes:d,onEventClick:i,onEventDrop:l,onTimeRangeSelect:u})]})]})}function H(e){let t=new Date(e),n=t.getDay(),r=t.getDate()-n;return t.setDate(r),t}function de(e){let t=e.getFullYear(),n=e.getMonth(),r=new Date(t,n,1),i=new Date(t,n+1,0),a=r.getDay(),o=[];for(let e=a-1;e>=0;e--){let t=new Date(r.getTime());t.setDate(t.getDate()-(e+1)),o.push(t)}for(let e=1;e<=i.getDate();e++)o.push(new Date(t,n,e));let s=42-o.length;for(let e=1;e<=s;e++){let t=new Date(i.getTime());t.setDate(t.getDate()+e),o.push(t)}return o}function U(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function fe({date:e,events:t,locale:n=`default`,onEventClick:r,onDateClick:i,onEventDrop:a}){let o=P.useMemo(()=>de(e),[e.getFullYear(),e.getMonth()]),s=P.useMemo(()=>new Date,[]),{t:c}=B(),l=P.useMemo(()=>{let e=new Date(2024,0,7);return Array.from({length:7},(t,r)=>{let i=new Date(e);return i.setDate(i.getDate()+r),i.toLocaleDateString(n,{weekday:`short`})})},[n]),[u,d]=P.useState(null),[f,p]=P.useState(null),m=P.useMemo(()=>{let e=new Map;for(let n of t){let t=new Date(n.start),r=n.end?new Date(n.end):new Date(t);t.setHours(0,0,0,0),r.setHours(0,0,0,0);let i=new Date(t);for(;i<=r;){let a=`${i.getFullYear()}-${i.getMonth()}-${i.getDate()}`,o=i.getTime()===t.getTime(),s=i.getTime()===r.getTime(),c=o||s||i.getDay()===0,l=e.get(a),u={event:n,isTitleDay:c,isSpanStart:o,isSpanEnd:s};l?l.push(u):e.set(a,[u]),i.setDate(i.getDate()+1)}}return e},[t]),h=(e,t,n=`move`,r)=>{d(t.id),e.dataTransfer.effectAllowed=`move`;let i={id:t.id,mode:n,...r?{sourceDay:`${r.getFullYear()}-${r.getMonth()}-${r.getDate()}`}:{}};e.dataTransfer.setData(`text/plain`,JSON.stringify(i)),n===`resize-end`&&e.stopPropagation()},g=()=>{d(null),p(null)},_=(e,t)=>{e.preventDefault(),e.dataTransfer.dropEffect=`move`,p(t)},v=e=>{e.currentTarget.contains(e.relatedTarget)||p(null)},y=(e,n)=>{if(e.preventDefault(),p(null),d(null),!a)return;let r=e.dataTransfer.getData(`text/plain`),i;try{i=JSON.parse(r)}catch{i={id:r,mode:`move`}}let o=t.find(e=>String(e.id)===String(i.id));if(!o)return;let s=new Date(n);if(s.setHours(0,0,0,0),i.mode===`resize-end`){let e=o.end?new Date(o.end):new Date(o.start),t=new Date(e);if(t.setHours(0,0,0,0),s.getTime()===t.getTime())return;let n=new Date(o.start);if(n.setHours(0,0,0,0),s.getTime()<n.getTime())return;let r=new Date(s);r.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0),a(o,new Date(o.start),r);return}let c=new Date(o.start),l;if(i.sourceDay){let[e,t,n]=i.sourceDay.split(`-`).map(e=>parseInt(e,10));l=new Date(e,t,n)}else l=new Date(c);l.setHours(0,0,0,0);let u=s.getTime()-l.getTime();if(u===0)return;let f=new Date(c.getTime()+u),m;o.end&&(m=new Date(new Date(o.end).getTime()+u)),a(o,f,m)};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,F.jsx)(`div`,{role:`row`,className:`grid grid-cols-7 border-b`,children:l.map(e=>(0,F.jsx)(`div`,{role:`columnheader`,className:`p-2 text-center text-sm font-medium text-muted-foreground border-r last:border-r-0`,children:e},e))}),(0,F.jsx)(`div`,{role:`grid`,"aria-label":`Calendar grid`,className:`grid grid-cols-7 flex-1 auto-rows-fr`,children:o.map((t,n)=>{let o=`${t.getFullYear()}-${t.getMonth()}-${t.getDate()}`,l=m.get(o)||[],d=t.getMonth()===e.getMonth(),p=U(t,s);return(0,F.jsxs)(`div`,{role:`gridcell`,"aria-label":`${t.toLocaleDateString(`default`,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`})}${l.length>0?`, ${l.length} event${l.length>1?`s`:``}`:``}`,className:T(`border-b border-r last:border-r-0 p-2 min-h-[100px] cursor-pointer hover:bg-accent/50`,!d&&`bg-muted/50 text-muted-foreground opacity-50`,f===n&&`ring-2 ring-primary`),onClick:()=>i?.(t),onDragOver:e=>_(e,n),onDragLeave:v,onDrop:e=>y(e,t),children:[(0,F.jsx)(`div`,{className:T(`text-sm font-medium mb-2`,p&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6`),...p?{"aria-current":`date`}:{},children:t.getDate()}),(0,F.jsxs)(`div`,{className:`space-y-0.5`,children:[l.slice(0,4).map(({event:e,isTitleDay:n,isSpanStart:i,isSpanEnd:o},s)=>{let c=!n,{className:l,inlineColor:d}=z(e.color),f=!!a&&o;return(0,F.jsxs)(`div`,{role:`button`,title:e.title,"aria-label":e.title,draggable:!!a,onDragStart:n=>h(n,e,`move`,t),onDragEnd:g,className:T(`relative text-xs hover:opacity-80 truncate`,a?`cursor-move`:`cursor-pointer`,c?`h-1.5`:`px-2 py-0.5`,i?`rounded-l`:`rounded-l-none`,o?`rounded-r`:`rounded-r-none`,!o&&`-mr-2`,l,u===e.id&&`opacity-50`),style:d?{backgroundColor:d}:void 0,onClick:t=>{t.stopPropagation(),r?.(e)},children:[c?``:e.title,f&&(0,F.jsx)(`span`,{role:`separator`,"aria-label":`Resize event end`,title:`Drag to change end date`,draggable:!0,onDragStart:n=>h(n,e,`resize-end`,t),onDragEnd:g,onClick:e=>e.stopPropagation(),className:`absolute inset-y-0 right-0 w-2 cursor-ew-resize bg-black/25 hover:bg-black/50 rounded-r`})]},`${e.id}-${s}`)}),l.length>4&&(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground px-2`,children:c(`calendar.moreEvents`,{count:l.length-4})})]})]},n)})})]})}var W=48;function G(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function K(e){return e.getHours()*60+e.getMinutes()}function q(e){return`${e.getFullYear()}-${e.getMonth()}-${e.getDate()}`}function J({mode:e,date:t,events:n,locale:r=`default`,slotMinutes:i=30,onEventClick:a,onEventDrop:o,onTimeRangeSelect:s}){let{t:c}=B(),l=W*i/60,u=1152,d=P.useMemo(()=>{if(e===`day`)return[G(t)];let n=H(t);return Array.from({length:7},(e,t)=>{let r=new Date(n);return r.setDate(n.getDate()+t),G(r)})},[e,t.getFullYear(),t.getMonth(),t.getDate()]),f=P.useMemo(()=>new Date,[]),p=P.useCallback(e=>{if(e.allDay)return!0;let t=new Date(e.start),n=e.end?new Date(e.end):new Date(t),r=t.getHours()===0&&t.getMinutes()===0&&t.getSeconds()===0,i=n.getHours()===0&&n.getMinutes()===0&&n.getSeconds()===0,a=n.getTime()-t.getTime();return!!(r&&i||a>=864e5)},[]),{allDayEvents:m,timedEvents:h}=P.useMemo(()=>{let e=[],t=[];for(let r of n)p(r)?e.push(r):t.push(r);return{allDayEvents:e,timedEvents:t}},[n,p]),g=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(q(t),[]);for(let t of m){let n=G(new Date(t.start)),r=t.end?new Date(t.end):new Date(t.start),i=G(r);r.getHours()===0&&r.getMinutes()===0&&r.getSeconds()===0&&r.getTime()>n.getTime()&&(i=new Date(i),i.setDate(i.getDate()-1));for(let r of d){let a=G(r);a<n||a>i||e.get(q(r)).push({event:t,isStart:a.getTime()===n.getTime(),isEnd:a.getTime()===i.getTime()})}}return e},[d,m]),_=P.useMemo(()=>{let e=new Map;for(let t of d)e.set(q(t),[]);for(let t of h){let n=new Date(t.start),r=t.end?new Date(t.end):new Date(n.getTime()+36e5);for(let i of d){let a=G(i),o=new Date(a);if(o.setDate(o.getDate()+1),r<=a||n>=o)continue;let s=n<a?a:n,c=r>o?o:r,l=K(s),u=c.getTime()===o.getTime()?1440:K(c);e.get(q(i)).push({event:t,startMin:l,endMin:Math.max(u,l+15),isStart:s.getTime()===n.getTime(),isEnd:c.getTime()===r.getTime()})}}return e},[d,h]),v=P.useMemo(()=>{let e=new Map;for(let[t,n]of _){let r=[...n].sort((e,t)=>e.startMin-t.startMin||e.endMin-t.endMin),i=[],a=[],o=[];for(let e of r){let t=0;for(;i[t]&&i[t].endMin>e.startMin;)t++;i[t]={endMin:e.endMin},a.push({entry:e,col:t})}for(let e=0;e<a.length;e++){let t=a[e],n=t.col;for(let r=0;r<a.length;r++){if(r===e)continue;let i=a[r];i.entry.startMin<t.entry.endMin&&i.entry.endMin>t.entry.startMin&&i.col>n&&(n=i.col)}o.push({...t.entry,col:t.col,cols:n+1})}e.set(t,o)}return e},[_]),y=P.useRef(null),b=P.useRef([]),[x,S]=P.useState(null),C=P.useRef(null);C.current=x;let w=P.useRef(!1),E=P.useCallback((e,t)=>{let n=b.current[t];if(!n)return 0;let r=(e-n.getBoundingClientRect().top+n.scrollTop)/W*60,a=Math.round(r/i)*i;return Math.max(0,Math.min(1440,a))},[i]),D=P.useCallback(e=>{for(let t=0;t<b.current.length;t++){let n=b.current[t];if(!n)continue;let r=n.getBoundingClientRect();if(e>=r.left&&e<=r.right)return t}return-1},[]);P.useEffect(()=>{if(!x)return;let e=e=>{let t=x.kind===`select`||x.kind===`move`?D(e.clientX):x.dayIndex,n=t<0?x.dayIndex??0:t,r=E(e.clientY,n);S(e=>e&&(e.kind===`select`?{...e,dayIndex:n>=0?n:e.dayIndex,headMinutes:r}:e.kind===`move`?{...e,dayIndex:n,minutes:r}:{...e,minutes:r}))},t=e=>{let t=C.current;if(!t){S(null);return}try{if(t.kind===`select`&&s){let e=Math.min(t.anchorMinutes,t.headMinutes),n=Math.max(t.anchorMinutes,t.headMinutes),r=e,a=n===e?Math.min(1440,e+i):n,o=d[t.dayIndex]??d[0],c=new Date(o);c.setHours(0,Math.round(r),0,0);let l=new Date(o);l.setHours(0,Math.round(a),0,0),w.current=!0,s(c,l)}else if(t.kind===`move`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=t.dayIndex<0?0:t.dayIndex,r=t.minutes-t.grabMinuteOffset,a=Math.max(0,Math.min(1440-t.durationMin,Math.round(r/i)*i)),s=d[n]??d[0],c=new Date(s);c.setHours(0,a,0,0);let l=new Date(c.getTime()+t.durationMin*60*1e3);w.current=!0,o(e,c,l)}}else if(t.kind===`resize-top`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.min(t.anchorEndMin-i,Math.max(0,t.minutes)),a=new Date(n);a.setHours(0,r,0,0);let s=new Date(n);s.setHours(0,t.anchorEndMin,0,0),w.current=!0,o(e,a,s)}}else if(t.kind===`resize-bottom`&&o){let e=n.find(e=>String(e.id)===String(t.eventId));if(e){let n=d[t.dayIndex]??d[0],r=Math.max(t.anchorStartMin+i,Math.min(1440,t.minutes)),a=new Date(n);a.setHours(0,t.anchorStartMin,0,0);let s=new Date(n);s.setHours(0,r,0,0),w.current=!0,o(e,a,s)}}}finally{S(null),setTimeout(()=>{w.current=!1},50)}};return window.addEventListener(`pointermove`,e),window.addEventListener(`pointerup`,t),()=>{window.removeEventListener(`pointermove`,e),window.removeEventListener(`pointerup`,t)}},[x,d,n,i,o,s,D,E]);let O=P.useMemo(()=>d.map(e=>({weekday:e.toLocaleDateString(r,{weekday:`short`}),day:e.getDate(),month:e.toLocaleDateString(r,{month:`short`}),isToday:U(e,f)})),[d,r,f]),k=P.useMemo(()=>Array.from({length:24},(e,t)=>new Date(2024,0,1,t,0).toLocaleTimeString(r,{hour:`numeric`})),[r]),A=(e,t,n,r)=>{if(!o||e.button!==0)return;e.stopPropagation(),e.preventDefault();let i=E(e.clientY,n);S(r===`body`?{kind:`move`,eventId:t.event.id,grabMinuteOffset:Math.max(0,i-t.startMin),durationMin:t.endMin-t.startMin,dayIndex:n,minutes:i}:r===`top`?{kind:`resize-top`,eventId:t.event.id,anchorEndMin:t.endMin,dayIndex:n,minutes:i}:{kind:`resize-bottom`,eventId:t.event.id,anchorStartMin:t.startMin,dayIndex:n,minutes:i})},j=(e,t)=>{if(!s||e.button!==0)return;e.preventDefault();let n=E(e.clientY,t);S({kind:`select`,dayIndex:t,anchorMinutes:n,headMinutes:n})},M=e=>{if(!x)return null;if(x.kind===`select`&&x.dayIndex===e){let t=Math.min(x.anchorMinutes,x.headMinutes),n=Math.max(x.anchorMinutes,x.headMinutes),i=t/60*W,a=Math.max(l,(n-t)/60*W);return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded bg-primary/30 border border-primary pointer-events-none z-10`,style:{top:i,height:a},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:Y(d[e],t,n,r)})})}if(x.kind===`move`&&x.dayIndex===e){let t=x.minutes-x.grabMinuteOffset,n=Math.max(0,Math.min(1440-x.durationMin,Math.round(t/i)*i)),a=n/60*W,o=x.durationMin/60*W;return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:Y(d[e],n,n+x.durationMin,r)})})}if((x.kind===`resize-top`||x.kind===`resize-bottom`)&&x.dayIndex===e){let t,n;x.kind===`resize-top`?(t=Math.min(x.anchorEndMin-i,Math.max(0,x.minutes)),n=x.anchorEndMin):(t=x.anchorStartMin,n=Math.max(x.anchorStartMin+i,Math.min(1440,x.minutes)));let a=t/60*W,o=(n-t)/60*W;return(0,F.jsx)(`div`,{className:`absolute left-1 right-1 rounded border-2 border-dashed border-primary bg-primary/10 pointer-events-none z-10`,style:{top:a,height:o},"aria-hidden":!0,children:(0,F.jsx)(`div`,{className:`px-2 py-0.5 text-xs font-medium text-primary`,children:Y(d[e],t,n,r)})})}return null};return(0,F.jsxs)(`div`,{className:`flex flex-col h-full`,ref:y,children:[(0,F.jsxs)(`div`,{className:`flex border-b sticky top-0 bg-background z-20`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r`,"aria-hidden":!0}),O.map((e,t)=>(0,F.jsxs)(`div`,{role:`columnheader`,className:T(`flex-1 p-2 text-center text-sm border-r last:border-r-0`,e.isToday&&`bg-primary/5`),children:[(0,F.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:e.weekday}),(0,F.jsx)(`div`,{className:T(`font-medium`,e.isToday&&`inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground h-6 w-6 mx-auto`),children:e.day})]},t))]}),m.length>0&&(0,F.jsxs)(`div`,{className:`flex border-b bg-muted/20 max-h-[140px] overflow-y-auto`,children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r flex items-start justify-end pr-1 pt-1 text-[10px] text-muted-foreground sticky left-0 bg-muted/20`,children:c(`calendar.allDay`)===`calendar.allDay`?`all-day`:c(`calendar.allDay`)}),d.map(e=>{let t=q(e),n=g.get(t)??[];return(0,F.jsx)(`div`,{className:`flex-1 border-r last:border-r-0 min-h-[28px] p-0.5 space-y-0.5`,children:n.map(({event:e,isStart:t,isEnd:n},r)=>{let{className:i,inlineColor:o}=z(e.color);return(0,F.jsx)(`div`,{role:`button`,title:e.title,onClick:t=>{t.stopPropagation(),a?.(e)},className:T(`text-[11px] px-2 py-0.5 truncate cursor-pointer hover:opacity-80`,t?`rounded-l`:`rounded-l-none -ml-0.5`,n?`rounded-r`:`rounded-r-none -mr-0.5`,i),style:o?{backgroundColor:o}:void 0,children:t?e.title:`\xA0`},`${e.id}-${r}`)})},t)})]}),(0,F.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,F.jsxs)(`div`,{className:`flex`,style:{height:u},children:[(0,F.jsx)(`div`,{className:`w-14 shrink-0 border-r relative`,children:k.map((e,t)=>(0,F.jsx)(`div`,{className:`absolute right-1 text-[10px] text-muted-foreground -translate-y-1/2`,style:{top:t*W},children:t===0?``:e},t))}),d.map((e,t)=>{let n=q(e),s=v.get(n)??[];return(0,F.jsxs)(`div`,{ref:e=>{b.current[t]=e},className:`flex-1 border-r last:border-r-0 relative select-none`,style:{height:u},onPointerDown:e=>j(e,t),"aria-label":e.toLocaleDateString(r,{weekday:`long`,month:`long`,day:`numeric`,year:`numeric`}),children:[Array.from({length:24},(e,t)=>(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-muted/60 pointer-events-none`,style:{top:t*W}},t)),i<60&&Array.from({length:Math.floor(1440/i)},(e,t)=>{let n=t*i;return n%60==0?null:(0,F.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-muted/30 pointer-events-none`,style:{top:n/60*W}},t)}),s.map(n=>{let i=n.startMin/60*W,s=Math.max(l,(n.endMin-n.startMin)/60*W),c=100/n.cols,u=n.col*c,{className:d,inlineColor:f}=z(n.event.color),p=x&&x.eventId===n.event.id;return(0,F.jsxs)(`div`,{role:`button`,tabIndex:0,title:n.event.title,"aria-label":n.event.title,onPointerDown:e=>A(e,n,t,`body`),onClick:e=>{if(w.current){e.stopPropagation();return}e.stopPropagation(),a?.(n.event)},className:T(`absolute rounded text-xs px-2 py-1 overflow-hidden shadow-sm`,o?`cursor-move`:`cursor-pointer`,d,p&&`opacity-40`),style:{top:i,height:s,left:`calc(${u}% + 2px)`,width:`calc(${c}% - 4px)`,...f?{backgroundColor:f}:{}},children:[(0,F.jsx)(`div`,{className:`font-medium truncate`,children:n.event.title}),(0,F.jsx)(`div`,{className:`text-[10px] opacity-80 truncate`,children:Y(e,n.startMin,n.endMin,r)}),o&&n.isStart&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`top`),className:`absolute top-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize start`}),o&&n.isEnd&&(0,F.jsx)(`div`,{onPointerDown:e=>A(e,n,t,`bottom`),className:`absolute bottom-0 left-0 right-0 h-1.5 cursor-ns-resize`,"aria-label":`Resize end`})]},`${n.event.id}-${n.startMin}`)}),M(t)]},n)})]})})]})}function Y(e,t,n,r){let i=new Date(e);i.setHours(0,Math.round(t),0,0);let a=new Date(e);a.setHours(0,Math.round(n),0,0);let o=e=>e.toLocaleTimeString(r,{hour:`numeric`,minute:`2-digit`});return`${o(i)} – ${o(a)}`}function pe(e){return`data`in e&&e.data?e.data:`staticData`in e&&e.staticData?{provider:`value`,items:e.staticData}:e.objectName?{provider:`object`,object:e.objectName}:null}function me(e){if(e){if(typeof e==`string`){let t=e.split(` `),n=t[0],r=t[1]?.toLowerCase()===`desc`?`desc`:`asc`;return{[n]:r}}if(Array.isArray(e))return e.reduce((e,t)=>(t.field&&t.order&&(e[t.field]=t.order),e),{})}}function he(e){return`filter`in e&&e.filter&&typeof e.filter==`object`&&`calendar`in e.filter?e.filter.calendar:e.calendar?e.calendar:e.startDateField||e.dateField?{startDateField:e.startDateField||e.dateField,endDateField:e.endDateField||e.endField,titleField:e.titleField,colorField:e.colorField,allDayField:e.allDayField}:null}var X=({schema:e,dataSource:t,className:n,data:r,loading:i,onEventClick:a,onRowClick:d,onDateClick:p,onNavigate:m,onViewChange:h,onEventDrop:g,locale:v})=>{let b=ee(),x=Array.isArray(r),[w,T]=(0,P.useState)(x?r:[]),[E,k]=(0,P.useState)(x?i??!1:!0),[j,ne]=(0,P.useState)(null),[N,re]=(0,P.useState)(null),[le,ue]=(0,P.useState)(new Date),I=A(),L=e.defaultView,[R,z]=(0,P.useState)(()=>{let e=L===`day`||!L;return typeof window<`u`&&window.innerWidth<768&&e?`month`:L||`month`});(0,P.useEffect)(()=>{I&&R===`day`&&(L===`day`||!L)&&z(`month`)},[I]);let[B,H]=(0,P.useState)(0);(0,P.useEffect)(()=>{if(!x&&!(!t?.onMutation||!e.objectName))return t.onMutation(t=>{t.resource===e.objectName&&H(e=>e+1)})},[t,e.objectName,x]);let de=(0,P.useCallback)(async()=>{H(e=>e+1)},[]),{ref:U,isRefreshing:fe,pullDistance:W}=oe({onRefresh:de,enabled:!!t&&!!e.objectName}),G=(0,P.useMemo)(()=>pe(e),[e.data,e.staticData,e.objectName]),K=(0,P.useMemo)(()=>he(e),[e.filter,e.calendar,e.dateField,e.endField,e.titleField,e.colorField]),q=G?.provider===`value`,J=(0,P.useRef)(null);J.current=N,(0,P.useEffect)(()=>{x&&T(r)},[r,x]),(0,P.useEffect)(()=>{x&&i!==void 0&&k(i)},[i,x]),(0,P.useEffect)(()=>{if(x)return;let n=!0;return(async()=>{try{if(!n)return;if(k(!0),q&&G?.provider===`value`){n&&(T(G.items),k(!1));return}if(!t||typeof t.find!=`function`)throw Error(`DataSource required for object/api providers`);if(G?.provider===`object`){let r=G.object,i=o(J.current?.fields),a=await t.find(r,{$filter:e.filter,$orderby:me(e.sort),...i.length>0?{$expand:i}:{}}),c=s(a);n&&T(c)}else G?.provider===`api`&&(console.warn(`API provider not yet implemented for ObjectCalendar`),n&&T([]));n&&k(!1)}catch(e){console.error(`[ObjectCalendar] Error fetching data:`,e),n&&(ne(e),k(!1))}})(),()=>{n=!1}},[x,G,t,q,e.filter,e.sort,B]),(0,P.useEffect)(()=>{!q&&t&&(async()=>{try{if(!t)return;let n=G?.provider===`object`?G.object:e.objectName;if(!n)return;let r=await t.getObjectSchema(n);re(r)}catch(e){console.error(`Failed to fetch object schema:`,e)}})()},[e.objectName,t,q,G]);let Y=(0,P.useMemo)(()=>{if(!K||!w.length)return[];let{startDateField:e,endDateField:t,titleField:n,colorField:r}=K,i=e=>{if(n){let t=e[n],r=typeof t==`string`?t.trim():t;if(r)return String(r)}return c(N,e)};return w.map((n,a)=>{let o=n[e],s=t?n[t]:null,c=i(n),l=r?n[r]:void 0;return{id:n.id||n._id||`event-${a}`,title:c,start:o?new Date(o):new Date,end:s?new Date(s):void 0,color:l,allDay:!s,data:n}}).filter(e=>!isNaN(e.start.getTime()))},[w,K,N]);(0,P.useCallback)(()=>{p?.(new Date)},[p]);let X=e.navigation??{mode:`drawer`,width:`min(960px, 60vw)`},ge=X.mode===`drawer`||X.mode===`modal`||X.mode===`split`||X.mode===`popover`,Z=u({navigation:X,objectName:e.objectName,onRowClick:ge?void 0:d}),_e=(0,P.useCallback)(async(n,r,i)=>{if(!K)return;let{startDateField:a,endDateField:o}=K,s=n?.id??n?._id;if(!s||!e.objectName||!t?.update)return;let c={[a]:r.toISOString()};o&&i&&(c[o]=i.toISOString());let u=w;T(e=>e.map(e=>(e?.id??e?._id)===s?{...e,...c}:e));try{await t.update(e.objectName,s,c)}catch(e){T(u),console.error(`[ObjectCalendar] Failed to persist drag-and-drop reschedule:`,e),ae.error(l(e)?b(`errors.unauthorized`,`You are not authorized to perform this action.`):f(e)??b(`table.saveFailed`,`Save failed`))}},[K,e.objectName,t,w,b]),[Q,$]=(0,P.useState)(null),ve=(0,P.useCallback)(n=>{!K||!e.objectName||!t?.create||$({start:n,title:``,submitting:!1})},[K,e.objectName,t]),ye=(0,P.useCallback)((n,r)=>{!K||!e.objectName||!t?.create||$({start:n,end:r,title:``,submitting:!1})},[K,e.objectName,t]),be=(0,P.useCallback)(async()=>{if(!Q||!K)return;let n=Q.title.trim();if(!n){$(e=>e&&{...e,error:`Title is required`});return}if(!e.objectName||!t?.create)return;$(e=>e&&{...e,submitting:!0,error:void 0});let{startDateField:r,endDateField:i,titleField:a}=K,o={[a||`name`]:n,[r]:Q.start.toISOString()};i&&(o[i]=(Q.end??Q.start).toISOString());let s=N?.fields;if(s&&typeof s==`object`){let e=Array.isArray(s)?s.map(e=>[e.name??e.apiName,e]):Object.entries(s);for(let[t,n]of e){if(!t||t in o||!n?.required)continue;if(n.defaultValue!==void 0&&n.defaultValue!==null){o[t]=n.defaultValue;continue}let e=n.type;if(e===`select`||e===`picklist`||e===`status`){let e=(n.options||n.choices||[])[0];e!==void 0&&(o[t]=typeof e==`object`?e.value??e.id:e)}else e===`boolean`||e===`checkbox`?o[t]=!1:(e===`number`||e===`integer`||e===`decimal`||e===`currency`||e===`percent`)&&(o[t]=0)}}try{let n=await t.create(e.objectName,o),r=(n&&(n.record||n.data||n))??null;r&&(r.id!==void 0||r._id!==void 0)&&T(e=>[...e,r]),$(null)}catch(e){let t=e?.message||String(e);$(e=>e&&{...e,submitting:!1,error:t}),console.error(`[ObjectCalendar] Quick-create failed:`,e)}},[Q,K,e.objectName,t,N]);return E?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Loading calendar...`})})}):j?(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsxs)(`div`,{className:`text-destructive`,children:[`Error: `,j.message]})})}):K?(0,F.jsxs)(`div`,{ref:U,className:n,children:[W>0&&(0,F.jsx)(`div`,{className:`flex items-center justify-center text-xs text-muted-foreground`,style:{height:W},children:fe?`Refreshing…`:`Pull to refresh`}),(0,F.jsx)(`div`,{className:`bg-background h-[calc(100vh-120px)] sm:h-[calc(100vh-160px)] md:h-[calc(100vh-200px)] min-h-[400px] sm:min-h-[600px]`,children:(0,F.jsx)(V,{events:Y,currentDate:le,view:R,locale:v,onEventClick:e=>{Z.handleClick(e.data),ge||a?.(e.data)},onDateClick:e=>{p?p(e):ve(e)},onNavigate:e=>{ue(e),m?.(e)},onViewChange:e=>{z(e),h?.(e)},onAddClick:void 0,onEventDrop:(e,t,n)=>{g?g(e.data,t,n):_e(e.data,t,n)},onTimeRangeSelect:ye})}),(0,F.jsx)(O,{open:!!Q,onOpenChange:e=>{e||$(null)},children:(0,F.jsxs)(D,{className:`sm:max-w-md`,children:[(0,F.jsxs)(ie,{children:[(0,F.jsx)(C,{children:`New event`}),(0,F.jsx)(S,{children:Q&&(()=>{let e=Q.end&&Q.end.getTime()!==Q.start.getTime(),t=Q.start.toLocaleDateString(v,{year:`numeric`,month:`long`,day:`numeric`});if(e){let e=e=>e.toLocaleTimeString(v,{hour:`numeric`,minute:`2-digit`});return(0,F.jsxs)(F.Fragment,{children:[t,` · `,e(Q.start),` – `,e(Q.end)]})}return(0,F.jsxs)(F.Fragment,{children:[`On `,t]})})()})]}),(0,F.jsxs)(`div`,{className:`space-y-2`,children:[(0,F.jsx)(_,{htmlFor:`quick-create-title`,children:`Title`}),(0,F.jsx)(y,{id:`quick-create-title`,autoFocus:!0,value:Q?.title??``,onChange:e=>$(t=>t&&{...t,title:e.target.value,error:void 0}),onKeyDown:e=>{e.key===`Enter`&&!Q?.submitting&&(e.preventDefault(),be())},placeholder:`What's this event about?`,disabled:Q?.submitting}),Q?.error&&(0,F.jsx)(`p`,{className:`text-sm text-destructive`,children:Q.error})]}),(0,F.jsxs)(te,{children:[(0,F.jsx)(M,{variant:`outline`,onClick:()=>$(null),disabled:Q?.submitting,children:`Cancel`}),(0,F.jsx)(M,{onClick:()=>void be(),disabled:Q?.submitting||!Q?.title.trim(),children:Q?.submitting?`Creating…`:`Create`})]})]})}),Z.isOverlay&&Z.isOpen&&Z.selectedRecord&&(()=>{let n=G?.provider===`object`?G.object:e.objectName,r=Z.selectedRecord,i=r.id??r._id;if(!n||i==null)return null;let a=K?.titleField?String(r[K.titleField]??`Event Details`):`Event Details`;return(0,F.jsx)(se,{open:!0,onClose:Z.close,title:a,record:r,objectName:n,recordId:i,dataSource:t,objectSchema:N,width:Z.width??`min(960px, 60vw)`,fullPageHref:ce(n,i)??void 0,onFieldSave:async(e,r)=>{t?.update&&(await t.update(n,String(i),{[e]:r}),T(t=>t.map(t=>String(t.id??t._id)===String(i)?{...t,[e]:r}:t)))},onDelete:async()=>{t?.delete&&(await t.delete(n,String(i)),T(e=>e.filter(e=>String(e.id??e._id)!==String(i))))}})})()]}):(0,F.jsx)(`div`,{className:n,children:(0,F.jsx)(`div`,{className:`flex items-center justify-center h-96`,children:(0,F.jsx)(`div`,{className:`text-muted-foreground`,children:`Calendar configuration required. Please specify startDateField and titleField.`})})})},ge=[`onEventClick`,`onDateClick`,`onViewChange`,`onNavigate`,`onAddClick`,`onEventDrop`,`onTimeRangeSelect`];function Z(e){let t={};for(let n of ge){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}var _e=[`month`,`week`,`day`];function Q(e){return _e.includes(e)?e:void 0}function $(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function ve(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:void 0}function ye(e){if(e instanceof Date)return e;if(typeof e!=`string`)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function be(e){return e===!0}i.register(`calendar-view`,({schema:e,className:t,onAction:n,events:r,currentDate:i,view:a,allowCreate:o,...s})=>{let c=P.useMemo(()=>!e.data||!Array.isArray(e.data)?[]:e.data.map((t,n)=>{let r=e.titleField||`title`,i=e.startDateField||`start`,a=e.endDateField||`end`,o=e.colorField||`color`,s=e.allDayField||`allDay`;return{id:t.id||t._id||n,title:t[r]||`Untitled Event`,start:new Date(t[i]),end:t[a]?new Date(t[a]):void 0,allDay:t[s],color:t[o],data:t}}),[e.data,e.titleField,e.startDateField,e.endDateField,e.colorField,e.allDayField]),l=P.useMemo(()=>ye(i),[i]),u=Q(a),d=be(o),f=Z(s),p=$(s.locale),m=ve(s.slotMinutes),h=typeof n==`function`?n:void 0,g=e=>{h?.({type:`event-click`,payload:e})},_=()=>{h?.({type:`create`,payload:{}})};return(0,F.jsx)(V,{className:t,events:c,currentDate:l,view:u,locale:p,slotMinutes:m,...f,onEventClick:f.onEventClick??g,onAddClick:f.onAddClick??(d?_:void 0)})},{namespace:`plugin-calendar`,label:`Calendar View`,inputs:[{name:`data`,type:`array`,label:`Data`,description:`Array of record objects to display as events`},{name:`titleField`,type:`string`,label:`Title Field`,defaultValue:`title`,description:`Field name to use for event title`},{name:`startDateField`,type:`string`,label:`Start Date Field`,defaultValue:`start`,description:`Field name for event start date`},{name:`endDateField`,type:`string`,label:`End Date Field`,defaultValue:`end`,description:`Field name for event end date (optional)`},{name:`allDayField`,type:`string`,label:`All Day Field`,defaultValue:`allDay`,description:`Field name for all-day flag`},{name:`colorField`,type:`string`,label:`Color Field`,defaultValue:`color`,description:`Field name for event color`},{name:`view`,type:`enum`,enum:[`month`,`week`,`day`],defaultValue:`month`,label:`View Mode`,description:`Calendar view mode (month, week, or day)`},{name:`currentDate`,type:`string`,label:`Current Date`,description:`ISO date string for initial calendar date`},{name:`allowCreate`,type:`boolean`,label:`Allow Create`,defaultValue:!1,description:`Allow creating events by clicking on dates`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{view:`month`,titleField:`title`,startDateField:`start`,endDateField:`end`,allDayField:`allDay`,colorField:`color`,allowCreate:!1,data:[{id:1,title:`Team Meeting`,start:new Date(new Date().setHours(10,0,0,0)).toISOString(),end:new Date(new Date().setHours(11,0,0,0)).toISOString(),color:`#3b82f6`,allDay:!1},{id:2,title:`Project Deadline`,start:new Date(new Date().setDate(new Date().getDate()+3)).toISOString(),color:`#ef4444`,allDay:!0},{id:3,title:`Conference`,start:new Date(new Date().setDate(new Date().getDate()+7)).toISOString(),end:new Date(new Date().setDate(new Date().getDate()+9)).toISOString(),color:`#10b981`,allDay:!0}],className:`h-[600px] border rounded-lg`}});var xe=t({CalendarView:()=>V,ObjectCalendar:()=>X,ObjectCalendarRenderer:()=>ke}),Se={filter:!0,sort:!0},Ce=[`onEventClick`,`onRowClick`,`onDateClick`,`onEdit`,`onDelete`,`onNavigate`,`onViewChange`,`onEventDrop`];function we(e){let t={};for(let n of Ce){let r=e[n];typeof r==`function`&&(t[n]=r)}return t}function Te(e){if(typeof e==`string`){try{Intl.getCanonicalLocales(e)}catch{return}return e}}function Ee(e){return Array.isArray(e)?e:void 0}function De(e){return typeof e==`boolean`?e:void 0}function Oe(e){return e&&typeof e.find==`function`?e:void 0}var ke=({schema:e,className:t,...n})=>{let{dataSource:r}=a()||{},i=we(n),o=Te(n.locale),s=Ee(n.data),c=De(n.loading),l=Oe(n.dataSource);return(0,F.jsx)(d,{schema:e,mapping:Se,dataSource:r,testId:`object-calendar`,errorTitle:`This calendar’s data source could not be resolved`,children:e=>(0,F.jsx)(X,{schema:e,dataSource:l??r,className:t,data:s,loading:c,locale:o,...i})})};i.register(`object-calendar`,ke,{namespace:`plugin-calendar`,label:`Object Calendar`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]}),i.register(`calendar`,ke,{namespace:`view`,label:`Calendar View`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`calendar`,type:`object`,label:`Calendar Config`,description:`startDateField, endDateField, titleField, colorField`}]});export{xe as t};
@@ -1,7 +0,0 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{g as n,r,y as i}from"./vendor-react-BgOXCBVK.js";import{Ar as a,_n as o,_t as s,b as c,br as l,cn as u,en as d,gn as f,hn as p,in as ee,jt as m,kt as te,ln as ne,nn as re,o as h,on as ie,rn as ae,sn as oe,tn as g,un as se,vn as _,yn as v,yt as y,z as b}from"./framework-B8ndNKrd.js";import{A as x,B as ce,D as le,E as S,F as ue,G as de,H as fe,K as pe,L as me,M as C,N as w,O as he,P as ge,R as _e,T as ve,U as ye,V as be,W as xe,_ as Se,_t as Ce,b as we,g as Te,gt as T,h as Ee,j as De,k as E,m as D,p as O,q as k,v as Oe,y as ke,z as Ae}from"./vendor-charts-DAI87uet.js";import{Wc as je,ac as Me,br as Ne,gn as Pe,gr as Fe,hn as Ie,hr as Le,ot as Re,pn as A,qr as ze,sl as Be,st as Ve,vn as He,yn as j,yr as Ue}from"./ui-components-mPgY5chB.js";var M=e(i(),1),N=r(),P=(...e)=>e.filter(Boolean).join(` `),F={light:``,dark:`.dark`},I=M.createContext(null);function L(){let e=M.useContext(I);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}function R({id:e,className:t,children:n,config:r,disableSettleRemount:i,style:a,...o}){let s=M.useId(),c=`chart-${e||s.replace(/:/g,``)}`,l=M.useRef(null),[u,d]=M.useState(0);M.useEffect(()=>{if(i)return;let e=l.current;if(e==null||typeof ResizeObserver>`u`)return;let t=!1,n,r=new ResizeObserver(e=>{if(t)return;let i=e[0]?.contentRect;i==null||i.width<=0||i.height<=0||(n!=null&&clearTimeout(n),n=setTimeout(()=>{t=!0,r.disconnect(),d(e=>e+1)},80))});return r.observe(e),()=>{t=!0,n!=null&&clearTimeout(n),r.disconnect()}},[i]);let f=a?.height!=null||a?.minHeight!=null,p=a?.width!=null||a?.minWidth!=null,ee={...f?{}:{minHeight:280},...p?{}:{minWidth:0},...a};return(0,N.jsx)(I.Provider,{value:{config:r},children:(0,N.jsxs)(`div`,{ref:l,"data-slot":`chart`,"data-chart":c,className:P(`block w-full h-[350px] text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground`,t),style:ee,...o,children:[(0,N.jsx)(We,{id:c,config:r}),(0,N.jsx)(Ce,{width:`100%`,height:`100%`,children:n},u)]})})}var We=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,N.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(F).map(([t,r])=>`
2
- ${r} [data-chart=${e}] {
3
- ${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
4
- `)}
5
- }
6
- `).join(`
7
- `)}}):null},z=k;function B({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f}){let{config:p}=L(),ee=M.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=`${f||e?.dataKey||e?.name||`value`}`,r=U(p,e,n),a=!f&&typeof o==`string`?p[o]?.label||o:r?.label;return s?(0,N.jsx)(`div`,{className:P(`font-medium`,c),children:s(a,t)}):a?(0,N.jsx)(`div`,{className:P(`font-medium`,c),children:a}):null},[o,s,t,i,c,p,f]);if(!e||!t?.length)return null;let m=t.length===1&&r!==`dot`;return(0,N.jsxs)(`div`,{className:P(`border-border/50 bg-background grid min-w-[8rem] items-start gap-1.5 rounded-lg border px-2.5 py-1.5 text-xs shadow-xl`,n),children:[m?null:ee,(0,N.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=`${d||e.name||e.dataKey||`value`}`,i=U(p,e,n),o=u||e.payload.fill||e.color;return(0,N.jsx)(`div`,{className:P(`[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5`,r===`dot`?`items-center`:``),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,N.jsxs)(N.Fragment,{children:[i?.icon?(0,N.jsx)(i.icon,{}):!a&&(0,N.jsx)(`div`,{className:P(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,r===`dot`?`h-2.5 w-2.5`:``,r===`line`?`w-1`:``,r===`dashed`?`w-0 border-[1.5px] border-dashed bg-transparent`:``,m&&r===`dashed`?`my-0.5`:``),style:{"--color-bg":o,"--color-border":o}}),(0,N.jsxs)(`div`,{className:P(`flex flex-1 justify-between leading-none`,m?`items-end`:`items-center`),children:[(0,N.jsxs)(`div`,{className:`grid gap-1.5`,children:[m?ee:null,(0,N.jsx)(`span`,{className:`text-muted-foreground`,children:i?.label||e.name})]}),e.value&&(0,N.jsx)(`span`,{className:`text-foreground font-mono font-medium tabular-nums`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})}var V=T;function H({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i}){let{config:a}=L();return n?.length?(0,N.jsx)(`div`,{className:P(`flex items-center justify-center gap-4`,r===`top`?`pb-3`:`pt-3`,e),children:n.filter(e=>e.type!==`none`).map(e=>{let n=`${i||e.dataKey||`value`}`,r=U(a,e,n);return(0,N.jsxs)(`div`,{className:P(`[&>svg]:text-muted-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3`),children:[r?.icon&&!t?(0,N.jsx)(r.icon,{}):(0,N.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),r?.label]},e.value)})}):null}function U(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return r&&n in r&&typeof r[n]==`string`?i=r[n]:n in t&&typeof t[n]==`string`&&(i=t[n]),i in e?e[i]:e[n]}function W(e){return e?.[0]?.dataKey||`value`}function Ge(e,t,n){if(!e)return null;let r=e.payload??e,i=r?.[t];if(i==null)return null;let a=W(n);return{category:String(i),series:a,value:typeof r?.[a]==`number`?r[a]:void 0}}function Ke(e,t){if(!e)return null;let n=e.name??e.payload?.name??e.root?.name;if(n==null)return null;let r=e.value??e.size??e.payload?.size;return{category:String(n),series:W(t),value:typeof r==`number`?r:void 0}}function qe(e,t){if(!e)return null;let n=e.payload??e,r=n?.name;return r==null||n?.depth===0?null:{category:String(r),series:W(t),value:typeof n?.value==`number`?n.value:void 0}}var Je=new Set([`bar`,`column`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`funnel`,`radar`,`scatter`,`treemap`,`sankey`,`combo`]),Ye=new Set([`gauge`,`solid-gauge`,`metric`,`kpi`,`bullet`]),Xe=new Set([`table`,`pivot`]),G=new Set([...Je,...Ye,...Xe]),K=e=>!!e&&typeof e==`object`&&!Array.isArray(e),q=e=>typeof e==`string`&&e?e:void 0,J=e=>typeof e==`number`&&Number.isFinite(e)?e:void 0;function Y(e){let t=q(e);if(t)return t;if(K(e))return Object.values(e).find(e=>typeof e==`string`&&e)}function Ze(e){if(!K(e))return;let t={},n=q(e.field);n&&(t.field=n);let r=q(e.format);r&&(t.format=r);let i=J(e.min);i!==void 0&&(t.min=i);let a=J(e.max);a!==void 0&&(t.max=a);let o=J(e.stepSize);o!==void 0&&o>0&&(t.stepSize=o),typeof e.showGridLines==`boolean`&&(t.showGridLines=e.showGridLines),typeof e.logarithmic==`boolean`&&(t.logarithmic=e.logarithmic);let s=q(e.position);(s===`left`||s===`right`||s===`top`||s===`bottom`)&&(t.position=s);let c=Y(e.title);return c&&(t.title=c),t}function Qe(e){if(!K(e)){let t=q(e);return t?{dataKey:t}:void 0}let t=q(e.dataKey)??q(e.name);if(!t)return;let n={dataKey:t},r=Y(e.label);r&&(n.label=r);let i=q(e.chartType)??q(e.type);(i===`bar`||i===`line`||i===`area`)&&(n.chartType=i);let a=q(e.variant);(a===`comparison`||a===`current`||a===`primary`)&&(n.variant=a);let o=J(e.opacity);o!==void 0&&(n.opacity=o);let s=q(e.dashArray);s&&(n.dashArray=s);let c=q(e.stack);c&&(n.stack=c);let l=q(e.yAxis);(l===`left`||l===`right`)&&(n.yAxis=l);let u=q(e.color);return u&&(n.color=u),n}function X(e){if(!K(e))return{};let t={},n=q(e.type),r=q(e.chartType)??q(e.specType)??(n&&G.has(n)?n:void 0);r&&Je.has(r)&&(t.chartType=r);let i=e.xAxis,a=Ze(i);a&&(a.format||a.title||a.showGridLines!==void 0)&&(t.xAxis=a);let o=q(e.xAxisKey)??a?.field??q(i);o&&(t.xAxisKey=o);let s=(Array.isArray(e.yAxis)?e.yAxis:e.yAxis===void 0?[]:[e.yAxis]).map(e=>Ze(e)??(q(e)?{field:q(e)}:void 0)).filter(e=>!!e);s.length&&(t.yAxes=s);let c=(Array.isArray(e.series)?e.series:Array.isArray(e.categories)?e.categories:void 0)?.map(Qe).filter(e=>!!e);if(!c?.length){let e=s.filter(e=>e.field).map((e,t)=>({dataKey:e.field,...e.title?{label:e.title}:{},...t>0||e.position===`right`?{yAxis:`right`}:{}}));e.length&&(c=e)}c?.length&&(t.series=c),typeof e.showLegend==`boolean`&&(t.showLegend=e.showLegend),typeof e.showDataLabels==`boolean`&&(t.showDataLabels=e.showDataLabels);let l=Y(e.title);l&&(t.title=l);let u=Y(e.subtitle);u&&(t.subtitle=u);let d=Y(e.description);d&&(t.description=d);let f=J(e.height);return f!==void 0&&f>0&&(t.height=f),Array.isArray(e.annotations)&&e.annotations.length&&(t.annotations=e.annotations.filter(K)),K(e.interaction)&&(t.interaction=e.interaction),t}function $e(e){if(e===`bar`||e===`column`)return`bar`;if(e===`line`)return`line`;if(e===`area`)return`area`}function et(e,t){if(e===`combo`)return`combo`;let n=$e(e);if(!n||!t||t.length<2)return e;let r=t.map(e=>e.chartType??n);return new Set(r).size>1?`combo`:e}function tt(e){if(!e)return;let t=e.includes(`%`),n=/^([$£€¥₹])/.exec(e),r=e.includes(`,`),i=/\.(0+)/.exec(e)?.[1].length??0,a={$:`USD`,"£":`GBP`,"€":`EUR`,"¥":`CNY`,"₹":`INR`};if(!t&&!n&&!r&&i===0)return;let o={minimumFractionDigits:i,maximumFractionDigits:i,useGrouping:r};return t?o.style=`percent`:n&&(o.style=`currency`,o.currency=a[n[1]]??`USD`),e=>{let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return e==null?``:String(e);try{return new Intl.NumberFormat(void 0,o).format(t)}catch{return String(t)}}}var nt=200;function rt(e,t){let n=e?.stepSize;if(!n||n<=0)return;let r=t.filter(e=>Number.isFinite(e)),i=r.length?Math.min(...r):void 0,a=r.length?Math.max(...r):void 0,o=e.min??Math.min(0,i??0),s=e.max??a;if(s===void 0||!Number.isFinite(o)||!Number.isFinite(s)||s<o)return;let c=Math.floor(o/n)*n,l=e.max===void 0?Math.ceil(s/n)*n:e.max,u=Math.floor((l-c)/n+1e-9)+1;if(u<1||u>nt)return;let d=[];for(let e=0;e<u;e++)d.push(Number((c+e*n).toPrecision(12)));return e.max!==void 0&&d[d.length-1]<e.max&&d.push(e.max),d}function it(e){if(!e)return;let{min:t,max:n}=e;if(t!==void 0||n!==void 0)return[t??`auto`,n??`auto`]}var at=t({default:()=>pt}),ot=`hsl(var(--primary))`,st={slate:`#64748b`,gray:`#6b7280`,zinc:`#71717a`,neutral:`#737373`,stone:`#78716c`,red:`#ef4444`,orange:`#f97316`,amber:`#f59e0b`,yellow:`#eab308`,lime:`#84cc16`,green:`#22c55e`,emerald:`#10b981`,teal:`#14b8a6`,cyan:`#06b6d4`,sky:`#0ea5e9`,blue:`#3b82f6`,indigo:`#6366f1`,violet:`#8b5cf6`,purple:`#a855f7`,fuchsia:`#d946ef`,pink:`#ec4899`,rose:`#f43f5e`},Z=e=>st[e]||e,ct=(e,t)=>e?.variant===`comparison`?{strokeOpacity:typeof e.opacity==`number`?e.opacity:t===`line`||t===`scatter`?.5:.6,fillOpacity:typeof e.opacity==`number`?e.opacity:t===`bar`?.4:t===`area`?.2:.5,strokeDasharray:e.dashArray??(t===`line`||t===`area`?`4 4`:void 0)}:null,lt=new Set([`bar`,`horizontal-bar`,`line`,`area`,`pie`,`donut`,`radar`,`funnel`,`combo`]);function ut(e){let{x:t,y:n,width:r,height:i,name:a,fill:o}=e;return r<=0||i<=0?null:(0,N.jsxs)(`g`,{children:[(0,N.jsx)(`rect`,{x:t,y:n,width:r,height:i,fill:o,stroke:`hsl(var(--background))`,strokeWidth:2}),r>48&&i>18?(0,N.jsx)(`text`,{x:t+6,y:n+18,fill:`#fff`,fontSize:12,className:`pointer-events-none`,children:a}):null]})}function dt({title:e,subtitle:t,children:n}){return!e&&!t?(0,N.jsx)(N.Fragment,{children:n}):(0,N.jsxs)(`div`,{className:`flex h-full w-full flex-col`,children:[(0,N.jsxs)(`div`,{className:`mb-2 shrink-0`,children:[e?(0,N.jsx)(`div`,{className:`text-sm font-medium leading-tight text-foreground`,children:e}):null,t?(0,N.jsx)(`div`,{className:`text-xs leading-tight text-muted-foreground`,children:t}):null]}),(0,N.jsx)(`div`,{className:`min-h-0 flex-1`,children:n})]})}function ft({chartType:e=`bar`,data:t=[],config:n={},xAxisKey:r=`name`,series:i=[],className:a=``,colors:o,categoryColors:s,categoryOrder:c,onChartClick:l,isAnimationActive:u,xAxis:f,yAxes:p,showLegend:ee,showDataLabels:m,title:te,subtitle:ne,description:re,height:h,annotations:ie,interaction:ae}){let oe=e===`column`?`bar`:e,g=et(oe,i),se=$e(oe),_=Array.isArray(t)?t:[],v=u===!1?{isAnimationActive:!1}:{},y={...u===!1?{disableSettleRemount:!0}:{},...h?{style:{height:h}}:{},...re?{role:`img`,"aria-label":re}:{}},[b,Ce]=M.useState(!1),T=M.useCallback(e=>{if(!l||!e)return;let t=Array.isArray(e.activePayload)?e.activePayload[0]:void 0;l({category:e.activeLabel==null?void 0:String(e.activeLabel),series:t?.dataKey?String(t.dataKey):void 0,value:typeof t?.value==`number`?t.value:void 0})},[l]),je=M.useCallback(e=>{if(!l||!e)return;let t=e.payload?.[r],n=i[0]?.dataKey||`value`;l({category:t==null?void 0:String(t),series:n,value:typeof e.payload?.[n]==`number`?e.payload[n]:void 0})},[l,r,i]),Me=l?{onClick:T,style:{cursor:`pointer`}}:{},Ne=l?{onClick:je,style:{cursor:`pointer`}}:{},Pe=M.useCallback((e,t,n)=>s&&s[e==null?``:String(e)]||n[t%n.length],[s]),Fe=M.useCallback(e=>{if(!l)return;let t=Ge(e,r,i);t&&l(t)},[l,r,i]),Ie=M.useCallback(e=>{if(!l)return;let t=Ke(e,i);t&&l(t)},[l,i]),Le=M.useCallback(e=>{if(!l)return;let t=qe(e,i);t&&l(t)},[l,i]),Re=l?{onClick:Fe,cursor:`pointer`}:{},A=l?{onClick:Ie,style:{cursor:`pointer`}}:{},ze=l?{onClick:Le,style:{cursor:`pointer`}}:{};M.useEffect(()=>{let e=()=>Ce(window.innerWidth<640);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let Be={bar:S,"horizontal-bar":S,line:le,area:Te,pie:ve,donut:ve,radar:Oe,scatter:Se,funnel:O,combo:Ee,treemap:S,sankey:S}[g]||S,Ve=M.useCallback(e=>{if(e==null||e===``)return``;let t=n?.[String(e)]?.label;if(t!=null)return String(t);let i=typeof e==`string`?e:String(e);if(/^\d{4}-\d{2}-\d{2}/.test(i)){let e=new Date(i);if(!Number.isNaN(e.getTime())){let t=(_.length>1?Math.abs(new Date(String(_[_.length-1][r]??``)).getTime()-new Date(String(_[0][r]??``)).getTime()):0)/864e5;try{return t<=62?e.toLocaleDateString(void 0,{month:`short`,day:`numeric`}):e.toLocaleDateString(void 0,{month:`short`,year:`numeric`})}catch{return e.toISOString().slice(0,10)}}}return b&&i.length>8?i.slice(0,8)+`…`:i},[_,r,b,n]),He=M.useMemo(()=>_.some(e=>String(e[r]||``).length>5),[_,r]),j=()=>Array.isArray(o)&&o.length>0?o:[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`],Ue=M.useCallback(e=>{if(e==null||e===``)return``;let t=typeof e==`number`?e:Number(e);if(!Number.isFinite(t))return String(e);try{return new Intl.NumberFormat(void 0,{notation:`compact`,maximumFractionDigits:1}).format(t)}catch{return String(t)}},[]),P=p?.[0],F=p&&p.length>1?p[1]:P?.position===`right`?P:void 0,I=!!p&&p.length>1,L=M.useMemo(()=>tt(f?.format)??Ve,[f?.format,Ve]),We=M.useMemo(()=>tt(P?.format)??Ue,[P?.format,Ue]),U=M.useMemo(()=>tt(F?.format)??Ue,[F?.format,Ue]),W=M.useCallback(e=>{let t=i.filter(t=>I?(t.yAxis===`right`?`right`:`left`)===e:e===`left`).map(e=>e.dataKey),n=[];for(let e of _)for(let r of t){let t=Number(e?.[r]);Number.isFinite(t)&&n.push(t)}return n},[_,i,I]),G=M.useCallback((e,t=`left`)=>{if(!e)return{};let n=it(e),r=rt(e,W(t));return{...r?{ticks:r}:{},...n?{domain:n}:{},...n?{allowDataOverflow:!0}:{},...e.logarithmic?{scale:`log`,domain:n??[1,`auto`]}:{},...e.title?{label:{value:e.title,angle:-90,position:`insideLeft`}}:{}}},[W]),K=P?.showGridLines!==!1,q={vertical:f?.showGridLines===!0,horizontal:K},J=ee!==!1,Y=M.useMemo(()=>{if(!Array.isArray(ie)||ie.length===0)return null;let e={solid:void 0,dashed:`4 4`,dotted:`1 4`};return ie.map((t,n)=>{let r=t?.axis===`x`,i=Z(String(t?.color||`hsl(var(--muted-foreground))`)),a=e[String(t?.style??`dashed`)],o=typeof t?.label==`string`?t.label:void 0,s=o?{label:{value:o,position:`insideTopRight`,fill:i,fontSize:11}}:{};if(t?.type===`region`){let e=r?{x1:t.value,x2:t.endValue}:{y1:t.value,y2:t.endValue};return(0,N.jsx)(me,{...e,...I&&!r?{yAxisId:`left`}:{},fill:i,fillOpacity:.12,stroke:i,strokeOpacity:.35,...s},`ann-${n}`)}return(0,N.jsx)(_e,{...r?{x:t?.value}:{y:t?.value},...I&&!r?{yAxisId:`left`}:{},stroke:i,strokeDasharray:a,...s},`ann-${n}`)})},[ie,I]),Ze=ae?.tooltips!==!1,Qe=ae?.brush===!0?(0,N.jsx)(Ae,{dataKey:r,height:24,travellerWidth:8,stroke:`hsl(var(--muted-foreground))`}):null,X=e=>m?(0,N.jsx)(de,{position:`top`,className:`fill-foreground`,fontSize:11,...e?{formatter:e}:{}}):null,nt=M.useMemo(()=>({tickLine:!1,tickMargin:10,axisLine:!1,interval:`preserveStartEnd`,minTickGap:b?32:48,tickFormatter:L,...f?.title?{label:{value:f.title,position:`insideBottom`,offset:-4}}:{},...!b&&He&&{angle:-35,textAnchor:`end`,height:60}}),[b,He,L,f?.title]);if(g&&Ye.has(g)){let e=i[0]?.dataKey||`value`,t=_[0]?.[e],r=typeof t==`number`?t:Number(t),o=i[0]?.label??n?.[e]?.label??e;return(0,N.jsx)(`div`,{className:a,"data-testid":`advanced-chart-single-value`,children:(0,N.jsxs)(`div`,{className:`flex flex-col gap-1 py-4`,children:[(0,N.jsx)(`span`,{className:`text-3xl font-semibold tabular-nums`,children:Number.isFinite(r)?new Intl.NumberFormat().format(r):String(t??`—`)}),(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:String(o)})]})})}if(g&&Xe.has(g))return(0,N.jsxs)(`div`,{className:`rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${a??``}`,"data-testid":`advanced-chart-tabular-notice`,role:`note`,children:[`Chart type “`,g,`” is tabular — render it with the data-table / pivot components; a chart block draws series charts.`]});if(g&&!Je.has(g))return(0,N.jsxs)(`div`,{className:`rounded-md border border-dashed bg-muted/20 px-3 py-2 text-xs text-muted-foreground ${a??``}`,"data-testid":`advanced-chart-unknown-type`,role:`note`,children:[`Chart type “`,g,`” is not a spec chart type — nothing was drawn.`]});if(g===`pie`||g===`donut`){let e=g===`donut`?`52%`:0,t=j(),o={...n};return _.forEach((e,n)=>{let i=e?.[r];if(i==null||i===``)return;let a=String(i);o[a]||(o[a]={label:a,color:Pe(i,n,t)})}),(0,N.jsx)(R,{config:o,className:a,...y,children:(0,N.jsxs)(ve,{children:[(0,N.jsx)(z,{cursor:!1,content:(0,N.jsx)(B,{hideLabel:!0})}),(0,N.jsx)(be,{data:_,dataKey:i[0]?.dataKey||`value`,nameKey:r||`name`,innerRadius:e,strokeWidth:5,paddingAngle:2,outerRadius:`85%`,...v,...Ne,children:_.map((e,n)=>{let i=Pe(e?.[r],n,t);return(0,N.jsx)(pe,{fill:Z(i)},`cell-${n}`)})}),J?(0,N.jsx)(V,{verticalAlign:`bottom`,wrapperStyle:{fontSize:b?`11px`:`12px`,paddingTop:`8px`},content:(0,N.jsx)(H,{nameKey:r,className:`flex-wrap`})}):null]})})}if(g===`funnel`){let e=i[0]?.dataKey||`value`,t=j(),o=l?t=>{t&&l({category:t?.payload?.[r]??t?.[r],value:t?.payload?.[e]??t?.[e]})}:void 0,s=o?{onClick:o,style:{cursor:`pointer`}}:{},u=d(c),f=u?[..._].sort((e,t)=>(u.get(String(e?.[r]??``))??2**53-1)-(u.get(String(t?.[r]??``))??2**53-1)):[..._].sort((t,n)=>{let r=Number(t?.[e]??0);return Number(n?.[e]??0)-r});return(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsxs)(O,{children:[(0,N.jsx)(z,{content:(0,N.jsx)(B,{})}),(0,N.jsxs)(D,{dataKey:e,data:f,nameKey:r,...v,...s,children:[(0,N.jsx)(de,{position:`right`,fill:`hsl(var(--foreground))`,stroke:`none`,dataKey:r}),f.map((e,n)=>(0,N.jsx)(pe,{fill:Z(t[n%t.length])},`funnel-cell-${n}`))]})]})})}if(g===`treemap`){let e=i[0]?.dataKey||`value`,t=j(),o=_.map((n,i)=>({name:String(n?.[r]??``),size:Number(n?.[e])||0,fill:Z(t[i%t.length])}));return(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsx)(we,{data:o,dataKey:`size`,nameKey:`name`,...v,content:(0,N.jsx)(ut,{}),...A,children:(0,N.jsx)(k,{})})})}if(g===`sankey`){let e=i[0]?.dataKey||`value`,t=i[0]?.label||e,o=_.filter(t=>(Number(t?.[e])||0)>0),s=[{name:t},...o.map(e=>({name:String(e?.[r]??``)}))],c=o.map((t,n)=>({source:0,target:n+1,value:Number(t?.[e])||0}));return c.length===0?(0,N.jsx)(`div`,{className:a}):(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsx)(ke,{data:{nodes:s,links:c},nodePadding:24,link:{stroke:`hsl(var(--muted-foreground))`,strokeOpacity:.25},node:{fill:`hsl(var(--chart-1))`},...ze,children:(0,N.jsx)(k,{})})})}if(g===`radar`)return(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsxs)(Oe,{data:_,children:[(0,N.jsx)(xe,{}),(0,N.jsx)(fe,{dataKey:r}),(0,N.jsx)(ye,{}),(0,N.jsx)(z,{content:(0,N.jsx)(B,{})}),(0,N.jsx)(V,{content:(0,N.jsx)(H,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map(e=>{let t=Z(n[e.dataKey]?.color||ot);return(0,N.jsx)(ce,{dataKey:e.dataKey,stroke:t,fill:t,fillOpacity:.6,...v},e.dataKey)})]})});if(g===`scatter`)return(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsxs)(Se,{children:[(0,N.jsx)(ue,{vertical:!1}),(0,N.jsx)(x,{type:`number`,dataKey:r,name:String(n[r]?.label||r),tickLine:!1,axisLine:!1,minTickGap:b?32:48}),(0,N.jsx)(E,{type:`number`,dataKey:i[0]?.dataKey||`value`,name:String(n[i[0]?.dataKey]?.label||i[0]?.dataKey),tickLine:!1,axisLine:!1,tickFormatter:Ue,width:48}),(0,N.jsx)(he,{type:`number`,range:[60,400]}),(0,N.jsx)(z,{content:(0,N.jsx)(B,{})}),(0,N.jsx)(V,{content:(0,N.jsx)(H,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}),i.map((e,t)=>{let r=j(),i=Z(n[e.dataKey]?.color||r[t%r.length]),a=ct(e,`scatter`);return(0,N.jsx)(De,{name:n[e.dataKey]?.label||e.dataKey,data:_,fill:i,fillOpacity:a?.fillOpacity,...v,...Re},e.dataKey)})]})});if(g===`combo`)return(0,N.jsx)(dt,{title:te,subtitle:ne,children:(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsxs)(Ee,{data:_,children:[(0,N.jsx)(ue,{...q}),(0,N.jsx)(x,{dataKey:r,...nt}),(0,N.jsx)(E,{yAxisId:`left`,tickLine:!1,axisLine:!1,tickFormatter:We,width:48,...G(P)}),(0,N.jsx)(E,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:U,width:48,...G(F,`right`)}),Ze?(0,N.jsx)(z,{content:(0,N.jsx)(B,{})}):null,J?(0,N.jsx)(V,{content:(0,N.jsx)(H,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,Y,Qe,i.map((e,t)=>{let r=Z(n[e.dataKey]?.color||ot),i=e.chartType||se||(t===0?`bar`:`line`),a=e.yAxis===`right`||e.yAxis===`left`?e.yAxis:se||i===`bar`?`left`:`right`,o=ct(e,i),s=e.stack?{stackId:String(e.stack)}:{},c=tt((a===`right`?F:P)?.format);return i===`line`?(0,N.jsx)(ge,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,stroke:r,strokeWidth:2,dot:!1,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray,...v,children:X(c)},e.dataKey):i===`area`?(0,N.jsx)(w,{yAxisId:a,type:`monotone`,dataKey:e.dataKey,fill:r,stroke:r,fillOpacity:o?.fillOpacity??.4,strokeOpacity:o?.strokeOpacity,strokeDasharray:o?.strokeDasharray,...s,...v,children:X(c)},e.dataKey):(0,N.jsx)(C,{yAxisId:a,dataKey:e.dataKey,fill:r,radius:4,fillOpacity:o?.fillOpacity,...s,...v,children:X(c)},e.dataKey)})]})})});let at=g===`horizontal-bar`,st=j(),lt=s?Object.values(s).map(e=>Z(String(e))):[],ft=Array.from(new Set([...st,...lt,...i.map((e,t)=>Z(n[e.dataKey]?.color||st[t%st.length]||ot))])),Q=e=>`g`+e.replace(/[^a-zA-Z0-9]/g,``);return(0,N.jsx)(dt,{title:te,subtitle:ne,children:(0,N.jsx)(R,{config:n,className:a,...y,children:(0,N.jsxs)(Be,{data:_,layout:at?`vertical`:`horizontal`,...Me,children:[(0,N.jsx)(`defs`,{children:ft.map(e=>(0,N.jsxs)(M.Fragment,{children:[(0,N.jsxs)(`linearGradient`,{id:`bg-${Q(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,N.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.95}),(0,N.jsx)(`stop`,{offset:`100%`,style:{stopColor:e},stopOpacity:.5})]}),(0,N.jsxs)(`linearGradient`,{id:`ag-${Q(e)}`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,N.jsx)(`stop`,{offset:`0%`,style:{stopColor:e},stopOpacity:.5}),(0,N.jsx)(`stop`,{offset:`95%`,style:{stopColor:e},stopOpacity:.05})]})]},Q(e)))}),(0,N.jsx)(ue,{...q}),at?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(x,{type:`number`,tickLine:!1,axisLine:!1,tickFormatter:We,...G(P)}),(0,N.jsx)(E,{type:`category`,dataKey:r,tickLine:!1,axisLine:!1,width:Math.min(140,Math.max(60,Math.max(..._.map(e=>String(e[r]??``).length))*7)),tickFormatter:L})]}):(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(x,{dataKey:r,...nt}),(0,N.jsx)(E,{...I?{yAxisId:`left`}:{},tickLine:!1,axisLine:!1,tickFormatter:We,width:48,...G(P)}),I?(0,N.jsx)(E,{yAxisId:`right`,orientation:`right`,tickLine:!1,axisLine:!1,tickFormatter:U,width:48,...G(F,`right`)}):null]}),Ze?(0,N.jsx)(z,{content:(0,N.jsx)(B,{})}):null,J?(0,N.jsx)(V,{content:(0,N.jsx)(H,{}),...b&&{verticalAlign:`bottom`,wrapperStyle:{fontSize:`11px`,paddingTop:`8px`}}}):null,Y,Qe,i.map((e,t)=>{let a=j(),o=e.variant===`comparison`,s=o?i.slice(0,t).find(e=>e.variant!==`comparison`)||i[0]:e,c=o?i.indexOf(s):t,l=Z(n[s.dataKey]?.color||a[c%a.length]||ot),u=I?{yAxisId:e.yAxis===`right`?`right`:`left`}:{},d=e.stack?{stackId:String(e.stack)}:{},f=tt((e.yAxis===`right`?F:P)?.format);if(g===`bar`||g===`horizontal-bar`){let t=i.filter(e=>e.variant!==`comparison`).length===1&&!o&&i.length===1&&_.length>1,n=ct(e,`bar`);return(0,N.jsxs)(C,{dataKey:e.dataKey,fill:`url(#bg-${Q(l)})`,radius:4,fillOpacity:n?.fillOpacity,...d,...u,...v,children:[t&&_.map((e,t)=>(0,N.jsx)(pe,{fill:`url(#bg-${Q(Z(Pe(e?.[r],t,a)))})`},`cell-${t}`)),X(f)]},e.dataKey)}if(g===`line`){let t=ct(e,`line`);return(0,N.jsx)(ge,{type:`monotone`,dataKey:e.dataKey,stroke:l,strokeWidth:2,dot:!1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray,...u,...v,children:X(f)},e.dataKey)}if(g===`area`){let t=ct(e,`area`);return(0,N.jsx)(w,{type:`monotone`,dataKey:e.dataKey,fill:`url(#ag-${Q(l)})`,stroke:l,strokeWidth:2,fillOpacity:t?.fillOpacity??1,strokeOpacity:t?.strokeOpacity,strokeDasharray:t?.strokeDasharray,...d,...u,...v,children:X(f)},e.dataKey)}return null})]})})})}function Q(e){let t=e.chartType===`column`?`bar`:e.chartType??`bar`,n=Array.isArray(e.data)?e.data:[],r=e.xAxisKey??`name`;return lt.has(t)&&n.length>0&&!n.some(e=>typeof e==`object`&&!!e&&r in e)}function pt(e){let t=Q(e),n=e.xAxisKey??`name`,r=M.useMemo(()=>Object.keys((Array.isArray(e.data)?e.data[0]:void 0)??{}),[e.data]);return M.useEffect(()=>{t&&console.warn(`[chart] no row has the category key "${n}" — rendering an explanatory placeholder instead of an empty axis. Row keys: ${JSON.stringify(r)}. A dataset query must PROJECT the dimension it groups by (framework#4033).`)},[t,n,r]),t?(0,N.jsx)(`div`,{className:`flex h-full min-h-[120px] w-full items-center justify-center p-4 text-center text-sm text-muted-foreground ${e.className??``}`,role:`status`,"data-chart-error":`missing-category-key`,children:(0,N.jsxs)(`span`,{children:[`This chart cannot plot its category axis: no row has a`,` `,(0,N.jsx)(`code`,{className:`font-mono`,children:n}),` field.`]})}):(0,N.jsx)(ft,{...e})}var mt=t({default:()=>_t});function ht(e,t=14){return e.length>t?`${e.slice(0,t-1)}…`:e}function gt({x:e,y:t,payload:n}){let r=String(n?.value??``),i=ht(r);return(0,N.jsx)(`g`,{transform:`translate(${e},${t})`,children:(0,N.jsxs)(`text`,{dy:10,textAnchor:`end`,transform:`rotate(-32)`,fill:`hsl(var(--muted-foreground))`,fontSize:11,fontFamily:`monospace`,children:[r!==i&&(0,N.jsx)(`title`,{children:r}),i]})})}function _t({data:e=[],dataKey:t=`value`,xAxisKey:n=`name`,height:r=400,className:i=``,color:a=`hsl(var(--primary))`}){let o=e.map(e=>String(e?.[n]??``)),s=o.length>4||o.some(e=>e.length>8);return(0,N.jsx)(`div`,{className:`p-2 sm:p-3 md:p-4 rounded-xl border border-border bg-card/40 backdrop-blur-sm shadow-lg shadow-background/5 ${i}`,children:(0,N.jsx)(Ce,{width:`100%`,height:r,children:(0,N.jsxs)(S,{data:e,margin:{top:10,right:10,left:10,bottom:s?24:5},children:[(0,N.jsxs)(`defs`,{children:[(0,N.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,N.jsx)(`stop`,{offset:`0%`,stopColor:a,stopOpacity:1}),(0,N.jsx)(`stop`,{offset:`90%`,stopColor:a,stopOpacity:.6}),(0,N.jsx)(`stop`,{offset:`100%`,stopColor:a,stopOpacity:.3})]}),(0,N.jsxs)(`filter`,{id:`glow`,height:`130%`,children:[(0,N.jsx)(`feGaussianBlur`,{in:`SourceAlpha`,stdDeviation:`3`,result:`blur`}),(0,N.jsx)(`feOffset`,{in:`blur`,dx:`0`,dy:`0`,result:`offsetBlur`}),(0,N.jsx)(`feFlood`,{floodColor:a,floodOpacity:`0.5`,result:`offsetColor`}),(0,N.jsx)(`feComposite`,{in:`offsetColor`,in2:`offsetBlur`,operator:`in`,result:`offsetBlur`}),(0,N.jsxs)(`feMerge`,{children:[(0,N.jsx)(`feMergeNode`,{in:`offsetBlur`}),(0,N.jsx)(`feMergeNode`,{in:`SourceGraphic`})]})]})]}),(0,N.jsx)(ue,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,N.jsx)(x,{dataKey:n,tick:s?(0,N.jsx)(gt,{}):{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:{stroke:`hsl(var(--border))`},interval:0,height:s?56:void 0,dy:s?void 0:10}),(0,N.jsx)(E,{tick:{fill:`hsl(var(--muted-foreground))`,fontSize:12,fontFamily:`monospace`},tickLine:!1,axisLine:!1}),(0,N.jsx)(k,{cursor:{fill:`hsl(var(--muted))`,opacity:.2},contentStyle:{backgroundColor:`hsl(var(--popover))`,borderColor:`hsl(var(--border))`,color:`hsl(var(--popover-foreground))`,borderRadius:`8px`,fontFamily:`monospace`,boxShadow:`0 4px 6px -1px rgb(0 0 0 / 0.1)`},itemStyle:{color:`hsl(var(--primary))`}}),(0,N.jsx)(T,{wrapperStyle:{paddingTop:`20px`,fontFamily:`monospace`}}),(0,N.jsx)(C,{dataKey:t,fill:`url(#barGradient)`,radius:[4,4,0,0],filter:`url(#glow)`,animationDuration:1500})]})})})}var vt=M.lazy(()=>n(()=>Promise.resolve().then(()=>mt),void 0,import.meta.url)),yt=M.lazy(()=>n(()=>Promise.resolve().then(()=>at),void 0,import.meta.url)),bt=({schema:e})=>(0,N.jsx)(M.Suspense,{fallback:(0,N.jsx)(A,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,N.jsx)(vt,{data:e.data,dataKey:e.dataKey,xAxisKey:e.xAxisKey,height:e.height,className:e.className,color:e.color})}),$=({schema:e,onChartClick:t})=>{let n=M.useMemo(()=>{let t=X(e),n=Array.isArray(e.series)?e.series:void 0,r=(n?.length&&n.every(e=>!!e&&typeof e==`object`&&`dataKey`in e)?n:t.series)??n,i=e.xAxisKey??t.xAxisKey,a=e.config;if(i||(e.index?i=e.index:e.category&&(i=e.category)),r||(e.categories?r=e.categories.map(e=>({dataKey:e})):e.value&&(r=[{dataKey:e.value}])),!a&&r){let t=e.colors||[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`],n={};r.forEach((e,r)=>{n[e.dataKey]={label:e.label||e.dataKey,color:e.color||t[r%t.length]}}),a=n}return{chartType:e.chartType??t.chartType,data:Array.isArray(e.data)?e.data:[],config:a,xAxisKey:i,series:r,className:e.className,spec:t}},[e]);return(0,N.jsx)(M.Suspense,{fallback:(0,N.jsx)(A,{className:`w-full h-48 sm:h-64 md:h-80 lg:h-[400px]`}),children:(0,N.jsx)(yt,{chartType:n.chartType,data:n.data,config:n.config,xAxisKey:n.xAxisKey,series:n.series,className:n.className,colors:Array.isArray(e.colors)?e.colors:void 0,categoryColors:e.categoryColors,categoryOrder:e.categoryOrder,isAnimationActive:e.isAnimationActive,onChartClick:t,xAxis:n.spec.xAxis,yAxes:n.spec.yAxes,showLegend:n.spec.showLegend,showDataLabels:n.spec.showDataLabels,title:n.spec.title,subtitle:n.spec.subtitle,description:n.spec.description,height:n.spec.height??e.height,annotations:n.spec.annotations,interaction:n.spec.interaction})})};function xt(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function St(e){return e.field||e.function||`count`}var Ct=`__comparison`;function wt(e,t){let{field:n,function:r,groupBy:i}=t,a=St(t),o={};for(let t of e){let e=String(t[i]??`Unknown`);o[e]||(o[e]=[]),o[e].push(t)}return Object.entries(o).map(([e,t])=>{let o=n?t.map(e=>Number(e[n])||0):[],s;switch(r){case`count`:s=t.length;break;case`avg`:s=o.length>0?o.reduce((e,t)=>e+t,0)/o.length:0;break;case`min`:s=o.length>0?Math.min(...o):0;break;case`max`:s=o.length>0?Math.max(...o):0;break;default:s=o.reduce((e,t)=>e+t,0)}return{[i]:e,[a]:s}})}async function Tt(e,t,n,r,i){if(!e.length||!t)return e;let a=i||((e,t)=>t),o=`__raw_${t}`,s=n?.fields?.[t];if(!s){let n=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let r=e[t],i=String(r??``),s=n.test(i)?i:xt(i);return{...e,[t]:a(i,s),[o]:r}})}let c=s.type;if(c===`select`||c===`picklist`||c===`dropdown`){let n=s.options||[];if(n.length===0)return e.map(e=>{let n=e[t],r=String(n??``),i=xt(r);return{...e,[t]:a(r,i),[o]:n}});let r={};for(let e of n)typeof e==`string`?r[e]=e:e&&typeof e==`object`&&(r[String(e.value)]=e.label||String(e.value));return e.map(e=>{let n=e[t],i=String(n??``),s=r[i]||xt(i);return{...e,[t]:a(i,s),[o]:n}})}if(c===`lookup`||c===`master_detail`){let n=s.reference_to||s.reference;if(!n||!r||typeof r.find!=`function`)return e.map(e=>({...e,[o]:e[t]}));let i=[...new Set(e.map(e=>e[t]).filter(e=>e!=null))];if(i.length===0)return e.map(e=>({...e,[o]:e[t]}));let a=s.id_field||`id`;try{let c=await r.find(n,{$filter:{[a]:{$in:i}},$top:i.length}),u=l(c),d=s.reference_field||s.display_field||`name`,f={};for(let e of u){let t=String(e[a]??e.id??e._id??``),n=e[d]||e.name||e.label||e.title||t;t&&(f[t]=String(n))}return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:f[r]||r,[o]:n}})}catch(n){return console.warn(`[ObjectChart] Failed to resolve lookup labels:`,n),e.map(e=>({...e,[o]:e[t]}))}}if(c===`date`||c===`datetime`||c===`date_time`||c===`timestamp`||c===`time`)return e.map(e=>({...e,[o]:e[t]}));let u=/^\d{4}-\d{2}-\d{2}/;return e.map(e=>{let n=e[t],r=String(n??``);return{...e,[t]:u.test(r)?r:xt(r),[o]:n}})}var Et=e=>{let{schema:t}=e,n=e.onSegmentClick,r=(0,M.useContext)(te),i=e.dataSource||r?.dataSource,a=r?.apiFetch,d=m(t.bind),{fieldOptionLabel:h}=c(),x=(0,M.useRef)(h);(0,M.useEffect)(()=>{x.current=h},[h]);let[ce,le]=(0,M.useState)([]),[S,ue]=(0,M.useState)(null),[de,fe]=(0,M.useState)(()=>!(Array.isArray(t.data)&&t.data.length>0)&&(!!t.objectName||!!t.dataset)),[pe,me]=(0,M.useState)(null),[C,w]=(0,M.useState)(null),[he,ge]=(0,M.useState)(null),{openRecordList:_e}=b(),ve=Be(),ye=(0,M.useMemo)(()=>t.aggregate?JSON.stringify(t.aggregate):``,[t.aggregate]),be=(0,M.useMemo)(()=>t.filter?JSON.stringify(t.filter):``,[t.filter]),xe=(0,M.useMemo)(()=>t.compareTo?JSON.stringify(t.compareTo):``,[t.compareTo]),Se=(0,M.useMemo)(()=>t.dataset?JSON.stringify({d:t.dataset,dim:t.dimensions??[],val:t.values??[]}):``,[t.dataset,t.dimensions,t.values]),Ce=e=>e!==`pie`&&e!==`donut`&&e!==`funnel`;(0,M.useEffect)(()=>{let e=!1;return(async()=>{try{let n=a??fetch,r={headers:{accept:`application/json`},credentials:`include`},i=t.objectName,o,s=null,c=t.aggregate?.groupBy;if(i)o=c&&typeof c==`object`&&!Array.isArray(c)?c.field:typeof c==`string`?c:t.xAxisKey;else if(t.dataset){let e=Array.isArray(t.dimensions)&&t.dimensions.length?t.dimensions[0]:void 0,a=await(await n(`/api/v1/meta/dataset/${encodeURIComponent(t.dataset)}`,r)).json().catch(()=>null);s=a?.item??a?.data??a,i=s?.object,o=((s?.dimensions||[]).find(t=>t?.name===e)??(s?.dimensions||[])[0])?.field??e}if(!i||!o){e||ge(null);return}let l=async e=>{let t=await(await n(`/api/v1/meta/object/${encodeURIComponent(e)}`,r)).json().catch(()=>null);return t?.item??t?.data??t},u={};if(t.dataset&&Array.isArray(t.dimensions))for(let e of t.dimensions)u[e]=(s?.dimensions||[]).find(t=>t?.name===e)?.field??e;let d=await ie(l,i,[o,...Object.values(u)]);e||ge({metaByPath:d,colorPath:o,fieldByDim:t.dataset&&Array.isArray(t.dimensions)?u:null})}catch{e||ge(null)}})(),()=>{e=!0}},[t.objectName,t.dataset,Se,ye,t.xAxisKey,a]);let{fieldOptionColors:we,dimensionLabels:Te}=(0,M.useMemo)(()=>{if(!he)return{fieldOptionColors:null,dimensionLabels:null};let{metaByPath:e,colorPath:t,fieldByDim:n}=he,r=oe(e[t]?.options,ee(e[t],h)),i=ae(e,n?Object.entries(n).map(([e,t])=>({dim:e,path:t})):null,h);return{fieldOptionColors:re(r),dimensionLabels:i}},[he,h]),T=(0,M.useCallback)(async(e,n)=>{if(t.aggregate&&typeof e.aggregate==`function`){let r=t.aggregate.groupBy;if(r&&typeof r==`object`&&!Array.isArray(r)){let i=t.aggregate.field,a=t.aggregate.function,o={function:a,alias:St(t.aggregate)};a!==`count`&&i&&(o.field=i);let s=await e.aggregate(t.objectName,{groupBy:[r],aggregations:[o],where:n});return Array.isArray(s)?s:[]}let i=await e.aggregate(t.objectName,{field:t.aggregate.field,function:t.aggregate.function,groupBy:r,filter:n});return Array.isArray(i)?i:[]}if(typeof e.find==`function`){let r=await e.find(t.objectName,{$filter:n}),i=l(r);return t.aggregate&&i.length>0&&(i=wt(i,t.aggregate)),i}return[]},[t.objectName,ye]),Ee=s(),De=(0,M.useCallback)(async(e,n)=>{if(!e||!t.objectName&&!t.dataset){n.current&&fe(!1);return}n.current&&(fe(!0),me(null));try{if(t.dataset&&typeof e.queryDataset==`function`){let r=f(t.filter,Ee),i=await e.queryDataset(t.dataset,{dimensions:Array.isArray(t.dimensions)?t.dimensions:[],measures:Array.isArray(t.values)?t.values:[],...r?{runtimeFilter:r}:{}});n.current&&(le(Array.isArray(i?.rows)?i.rows:[]),ue(Array.isArray(i?.fields)?i.fields:null));return}let r=f(t.filter,Ee),i=t.compareTo,a=!!i&&Ce(t.chartType),o=a?p(se(t.filter,i),Ee):null,[s,c]=await Promise.all([T(e,r),o?T(e,o):Promise.resolve([])]),l=s,u=t.aggregate?.groupBy,d=u&&typeof u==`object`&&!Array.isArray(u)?u.alias||u.field:u||t.xAxisKey;if(a&&c.length>0&&t.aggregate){let e=t.aggregate.field,n=t.aggregate.function,r=St(t.aggregate),i=t=>{if(t==null)return null;if(e){let r=`${e}_${n}`;if(r in t)return Number(t[r]);if(n===`count`&&`${e}_count`in t)return Number(t[`${e}_count`])}return r in t?Number(t[r]):`value`in t?Number(t.value):`count`in t?Number(t.count):null},a=`${r}${Ct}`,o=d;if(o&&l.some(e=>e[o]!=null)&&c.some(e=>e[o]!=null)){let e=new Map;for(let t of c){let n=String(t[o]??``);e.set(n,i(t))}l=l.map(t=>{let n=String(t[o]??``),r=e.get(n);return r==null?t:{...t,[a]:r}});let t=new Set(l.map(e=>String(e[o]??``)));for(let e of c){let n=String(e[o]??``);t.has(n)||l.push({[o]:n,[a]:i(e)})}}else{let e=Math.max(l.length,c.length),t=[];for(let n=0;n<e;n++){let e=l[n]||{},r=c[n];t.push(r?{...e,[a]:i(r)}:e)}l=t}}if(d&&typeof e.getObjectSchema==`function`)try{let n=await e.getObjectSchema(t.objectName);l=await Tt(l,d,n,e,(e,n)=>x.current(t.objectName,d,e,n))}catch{}n.current&&le(l)}catch(e){console.error(`[ObjectChart] Fetch error:`,e),n.current&&me(e instanceof Error?e.message:`Failed to load chart data`)}finally{n.current&&fe(!1)}},[t.objectName,Se,ye,be,xe,t.xAxisKey,t.chartType,T,Ee]);(0,M.useEffect)(()=>{let e={current:!0};return(t.objectName||t.dataset)&&!d&&!t.data?De(i,e):e.current&&fe(!1),()=>{e.current=!1}},[t.objectName,Se,i,d,t.data,be,ye,xe,De]);let E=d||t.data||ce,D=Array.isArray(E)?E:[],O=t.drillDown,k=t.aggregate?.groupBy||t.xAxisKey,Oe=(0,M.useMemo)(()=>{if(!k)return new Map;let e=new Map,t=`__raw_${k}`;for(let n of D){let r=n?.[k];if(r==null)continue;let i=t in(n||{})?n[t]:r;e.set(String(r),i)}return e},[D,k]),ke=(0,M.useMemo)(()=>{if(C)return{...t.filter||{},...o(O,C,{groupByField:k})}},[C,O,k,be]),Ae=!n&&!!C&&!!t.objectName&&O?.target===`navigate`&&!!_e;(0,M.useEffect)(()=>{Ae&&(_e(t.objectName,ke),w(null))},[Ae]);let A=t.compareTo,P=t.aggregate?St(t.aggregate):void 0,F=P?`${P}${Ct}`:void 0,I=!!A&&Ce(t.chartType)&&!!F&&D.some(e=>e[F]!=null),L=(0,M.useMemo)(()=>{let e=Array.isArray(t.series)?t.series:null;if(!I)return e;let n=e||[{dataKey:P}],r={vsLastWeek:`Previous week`,vsLastMonth:`Previous month`,vsLastQuarter:`Previous quarter`,vsLastYear:`Previous year`,vsYesterday:`Yesterday`,vsPreviousPeriod:`Previous period`}[ne(A,t.filter)]||`Previous period`;return[...n.map(e=>({...e,variant:e.variant||`current`})),{dataKey:F,label:r,variant:`comparison`}]},[I,t.series,P,F,t.filter,A]),R=t.dataset?g(u(D,Te),t.dimensions,t.values,S,{nullCategoryLabel:ve(`chart.nullCategory`,`(None)`)}):null,We=R?{...t,data:R.data,xAxisKey:R.xAxisKey,series:R.series}:{...t,data:D,...L?{series:L}:{}},z=t.colors&&!Array.isArray(t.colors)&&typeof t.colors==`object`?t.colors:null,B=Array.isArray(t.colors)?t.colors:void 0,V=we||z?{...we||{},...z||{}}:void 0,H={...We,colors:B,...V?{categoryColors:V}:{}};if(de&&D.length===0)return(0,N.jsxs)(`div`,{className:`p-2 `+(t.className||``),"data-testid":`chart-loading`,role:`status`,"aria-busy":`true`,"aria-live":`polite`,children:[(0,N.jsx)(`span`,{className:`sr-only`,children:`Loading chart data…`}),(0,N.jsx)(Ve,{className:`h-full`})]});if(pe)return(0,N.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2 p-4 `+(t.className||``),"data-testid":`chart-error`,role:`alert`,children:[(0,N.jsx)(Me,{className:`h-6 w-6 text-destructive opacity-60`}),(0,N.jsx)(`p`,{className:`text-xs text-destructive font-medium`,children:`Failed to load chart data`}),(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground max-w-xs text-center`,children:pe})]});if(!i&&t.objectName&&D.length===0)return(0,N.jsxs)(`div`,{className:`flex items-center justify-center text-muted-foreground text-sm p-4 `+(t.className||``),"data-testid":`chart-no-datasource`,children:[`No data source available for “`,t.objectName,`”`]});let U=_(O)?e=>{let t=e.category,n=t!=null&&Oe.has(String(t))?Oe.get(String(t)):t;w({...e,category:n,categoryLabel:t,scope:`cell`})}:void 0,W=n??U,Ge=!n&&C&&t.objectName&&!Ae?(()=>{let e=ke??{},n=v(O,C,t.title||`Details`),r=O?.target??`drawer`,a={type:`object-data-table`,objectName:t.objectName,filter:e,pagination:!0,pageSize:O?.maxRows,columns:O?.columns?.map(e=>({accessorKey:e,header:e})),drillDown:{enabled:!0,mode:`record`,target:`dialog`}},o=(0,N.jsx)(`div`,{className:`overflow-auto`,"data-testid":`chart-drill-body`,children:(0,N.jsx)(y,{schema:a,dataSource:i})}),s=_e&&t.objectName?(0,N.jsxs)(ze,{type:`button`,variant:`ghost`,size:`sm`,"data-testid":`drill-open-in-list`,onClick:()=>{_e(t.objectName,e),w(null)},children:[ve(`dashboard.openInList`,`Open in list`),(0,N.jsx)(je,{className:`ml-1 h-3.5 w-3.5`})]}):null;return r===`dialog`?(0,N.jsx)(Le,{open:!0,onOpenChange:e=>!e&&w(null),children:(0,N.jsxs)(Fe,{className:`max-w-4xl`,children:[(0,N.jsxs)(Ue,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,N.jsx)(Ne,{children:n}),s]}),o]})}):(0,N.jsx)(Ie,{open:!0,onOpenChange:e=>!e&&w(null),children:(0,N.jsxs)(Pe,{side:`right`,className:`w-full sm:max-w-2xl md:max-w-3xl lg:max-w-4xl flex flex-col`,children:[(0,N.jsxs)(He,{className:`flex-row items-center justify-between gap-4 pr-8`,children:[(0,N.jsx)(j,{children:n}),s]}),(0,N.jsx)(`div`,{className:`flex-1 overflow-hidden mt-2`,children:o})]})})})():null;return(0,N.jsxs)(`div`,{className:`relative`,children:[(0,N.jsx)(Re,{active:de&&D.length>0}),(0,N.jsx)($,{...e,schema:H,onChartClick:W}),Ge]})},Dt={filter:!0},Ot=e=>(0,N.jsx)(h,{schema:e.schema,mapping:Dt,dataSource:e.dataSource,testId:`object-chart`,errorTitle:`This chart’s data source could not be resolved`,children:t=>(0,N.jsx)(Et,{...e,schema:t})});a.register(`object-chart`,Ot,{namespace:`plugin-charts`,label:`Object Chart`,category:`view`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Optional static data`},{name:`filter`,type:`array`,label:`Filter`},{name:`aggregate`,type:`object`,label:`Aggregate`,description:`Aggregation config: { field, function, groupBy }`},{name:`drillDown`,type:`object`,label:`Drill-down`,description:`Segment drill config: { enabled?, filter?, title?, target?: 'drawer' | 'dialog', columns?, maxRows? }. Present = on; {} is enough. Clicking a segment opens the underlying records filtered by the clicked category.`}]});var kt=t({ChartBarRenderer:()=>bt,ChartRenderer:()=>$,ObjectChart:()=>Et,ObjectChartBlock:()=>Ot,chartComponents:()=>At,normalizeChartSchema:()=>X}),At={"bar-chart":bt,chart:$};a.register(`bar-chart`,bt,{namespace:`plugin-charts`,label:`Bar Chart`,category:`plugin`,inputs:[{name:`data`,type:`array`,label:`Data`,required:!0},{name:`dataKey`,type:`string`,label:`Data Key`,defaultValue:`value`},{name:`xAxisKey`,type:`string`,label:`X-Axis Key`,defaultValue:`name`},{name:`height`,type:`number`,label:`Height`,defaultValue:400},{name:`color`,type:`color`,label:`Color`,defaultValue:`#8884d8`}],defaultProps:{data:[{name:`Jan`,value:400},{name:`Feb`,value:300},{name:`Mar`,value:600},{name:`Apr`,value:800},{name:`May`,value:500}],dataKey:`value`,xAxisKey:`name`,height:400,color:`#8884d8`}}),a.register(`chart`,Ot,{namespace:`view`,category:`view`,label:`Chart`,skipFallback:!0,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`type`,type:`string`,label:`Chart Type`},{name:`categoryField`,type:`string`,label:`Category Field`},{name:`valueField`,type:`string`,label:`Value Field`}]}),a.register(`chart`,$,{namespace:`plugin-charts`,label:`Chart`,category:`plugin`,inputs:[{name:`chartType`,type:`enum`,label:`Chart Type`,enum:[{label:`Bar`,value:`bar`},{label:`Line`,value:`line`},{label:`Area`,value:`area`},{label:`Pie`,value:`pie`},{label:`Donut`,value:`donut`},{label:`Radar`,value:`radar`},{label:`Scatter`,value:`scatter`}],defaultValue:`bar`},{name:`data`,type:`code`,label:`Data (JSON)`,required:!0},{name:`config`,type:`code`,label:`Config (JSON)`},{name:`xAxisKey`,type:`string`,label:`X Axis Key`,defaultValue:`name`},{name:`series`,type:`code`,label:`Series (JSON Array)`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{chartType:`bar`,data:[{name:`Jan`,sales:400,revenue:240},{name:`Feb`,sales:300,revenue:139},{name:`Mar`,sales:600,revenue:380},{name:`Apr`,sales:800,revenue:430},{name:`May`,sales:500,revenue:220}],config:{sales:{label:`Sales`,color:`#8884d8`},revenue:{label:`Revenue`,color:`#82ca9d`}},xAxisKey:`name`,series:[{dataKey:`sales`},{dataKey:`revenue`}]}}),a.register(`chart:bar`,$,{namespace:`plugin-charts`,label:`Bar Chart (Alias)`,category:`plugin`,defaultProps:{chartType:`bar`}}),a.register(`pie-chart`,$,{namespace:`plugin-charts`,label:`Pie Chart`,category:`plugin`,defaultProps:{chartType:`pie`}}),a.register(`donut-chart`,$,{namespace:`plugin-charts`,label:`Donut Chart`,category:`plugin`,defaultProps:{chartType:`donut`}}),a.register(`radar-chart`,$,{namespace:`plugin-charts`,label:`Radar Chart`,category:`plugin`,defaultProps:{chartType:`radar`}}),a.register(`scatter-chart`,$,{namespace:`plugin-charts`,label:`Scatter Chart`,category:`plugin`,defaultProps:{chartType:`scatter`}});export{kt as t};