@open-mercato/core 0.6.7-develop.6863.1.61001cf9a8 → 0.6.7

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 (1458) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/AGENTS.md +3 -3
  3. package/agentic/standalone-guide.md +0 -13
  4. package/dist/bootstrap.js +1 -16
  5. package/dist/bootstrap.js.map +2 -2
  6. package/dist/generated/entities/customer_deal_person_link/index.js +0 -2
  7. package/dist/generated/entities/customer_deal_person_link/index.js.map +2 -2
  8. package/dist/generated/entities/customer_user_invitation/index.js +0 -2
  9. package/dist/generated/entities/customer_user_invitation/index.js.map +2 -2
  10. package/dist/generated/entities/gateway_payment_operation/index.js +0 -2
  11. package/dist/generated/entities/gateway_payment_operation/index.js.map +2 -2
  12. package/dist/generated/entities/gateway_transaction/index.js +0 -2
  13. package/dist/generated/entities/gateway_transaction/index.js.map +2 -2
  14. package/dist/generated/entities/organization/index.js +0 -2
  15. package/dist/generated/entities/organization/index.js.map +2 -2
  16. package/dist/generated/entities/resources_resource/index.js +0 -2
  17. package/dist/generated/entities/resources_resource/index.js.map +2 -2
  18. package/dist/generated/entities.ids.generated.js +1 -3
  19. package/dist/generated/entities.ids.generated.js.map +2 -2
  20. package/dist/generated/entity-fields-registry.js +0 -23
  21. package/dist/generated/entity-fields-registry.js.map +2 -2
  22. package/dist/helpers/integration/salesFixtures.js +2 -31
  23. package/dist/helpers/integration/salesFixtures.js.map +2 -2
  24. package/dist/helpers/integration/salesUi.js +0 -5
  25. package/dist/helpers/integration/salesUi.js.map +2 -2
  26. package/dist/modules/api_keys/backend/api-keys/page.js +1 -2
  27. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  28. package/dist/modules/attachments/api/route.js +10 -120
  29. package/dist/modules/attachments/api/route.js.map +2 -2
  30. package/dist/modules/attachments/data/entities.js +1 -67
  31. package/dist/modules/attachments/data/entities.js.map +2 -2
  32. package/dist/modules/attachments/di.js +1 -7
  33. package/dist/modules/attachments/di.js.map +2 -2
  34. package/dist/modules/attachments/fields/attachment.js +1 -1
  35. package/dist/modules/attachments/fields/attachment.js.map +2 -2
  36. package/dist/modules/attachments/lib/drivers/index.js.map +1 -1
  37. package/dist/modules/attachments/lib/drivers/localDriver.js +6 -19
  38. package/dist/modules/attachments/lib/drivers/localDriver.js.map +2 -2
  39. package/dist/modules/attachments/lib/upload-limits.js +0 -33
  40. package/dist/modules/attachments/lib/upload-limits.js.map +2 -2
  41. package/dist/modules/audit_logs/api/audit-logs/access/route.js +1 -5
  42. package/dist/modules/audit_logs/api/audit-logs/access/route.js.map +2 -2
  43. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js +1 -5
  44. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js.map +2 -2
  45. package/dist/modules/audit_logs/api/audit-logs/actions/route.js +1 -5
  46. package/dist/modules/audit_logs/api/audit-logs/actions/route.js.map +2 -2
  47. package/dist/modules/audit_logs/components/AccessLogsTable.js +1 -2
  48. package/dist/modules/audit_logs/components/AccessLogsTable.js.map +2 -2
  49. package/dist/modules/audit_logs/components/AuditLogsActions.js +1 -2
  50. package/dist/modules/audit_logs/components/AuditLogsActions.js.map +2 -2
  51. package/dist/modules/auth/api/admin/nav.js +4 -17
  52. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  53. package/dist/modules/auth/api/profile/route.js +2 -8
  54. package/dist/modules/auth/api/profile/route.js.map +2 -2
  55. package/dist/modules/auth/api/users/route.js +19 -8
  56. package/dist/modules/auth/api/users/route.js.map +2 -2
  57. package/dist/modules/auth/backend/auth/profile/page.js.map +2 -2
  58. package/dist/modules/auth/backend/profile/change-password/page.js.map +2 -2
  59. package/dist/modules/auth/backend/roles/page.js +1 -2
  60. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  61. package/dist/modules/auth/backend/settings/page.js +9 -14
  62. package/dist/modules/auth/backend/settings/page.js.map +2 -2
  63. package/dist/modules/auth/backend/users/page.js +1 -2
  64. package/dist/modules/auth/backend/users/page.js.map +2 -2
  65. package/dist/modules/auth/cli.js +1 -1
  66. package/dist/modules/auth/cli.js.map +2 -2
  67. package/dist/modules/auth/components/UserConsentsPanel.js +9 -9
  68. package/dist/modules/auth/components/UserConsentsPanel.js.map +2 -2
  69. package/dist/modules/auth/frontend/login.js +5 -6
  70. package/dist/modules/auth/frontend/login.js.map +2 -2
  71. package/dist/modules/auth/frontend/reset.js +2 -2
  72. package/dist/modules/auth/frontend/reset.js.map +2 -2
  73. package/dist/modules/auth/lib/backendChrome.js +29 -45
  74. package/dist/modules/auth/lib/backendChrome.js.map +2 -2
  75. package/dist/modules/auth/lib/setup-app.js +2 -17
  76. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  77. package/dist/modules/auth/lib/tenantAccess.js +0 -7
  78. package/dist/modules/auth/lib/tenantAccess.js.map +2 -2
  79. package/dist/modules/auth/services/rbacService.js +44 -29
  80. package/dist/modules/auth/services/rbacService.js.map +2 -2
  81. package/dist/modules/business_rules/api/rules/route.js +4 -71
  82. package/dist/modules/business_rules/api/rules/route.js.map +2 -2
  83. package/dist/modules/business_rules/backend/rules/page.js +1 -2
  84. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  85. package/dist/modules/business_rules/components/ActionBuilder.js +4 -47
  86. package/dist/modules/business_rules/components/ActionBuilder.js.map +3 -3
  87. package/dist/modules/business_rules/components/ActionRow.js +16 -106
  88. package/dist/modules/business_rules/components/ActionRow.js.map +2 -2
  89. package/dist/modules/business_rules/components/ConditionRow.js +4 -8
  90. package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
  91. package/dist/modules/business_rules/components/utils/actionValidation.js +0 -6
  92. package/dist/modules/business_rules/components/utils/actionValidation.js.map +2 -2
  93. package/dist/modules/business_rules/lib/action-executor.js +0 -148
  94. package/dist/modules/business_rules/lib/action-executor.js.map +2 -2
  95. package/dist/modules/business_rules/lib/rule-engine.js +1 -5
  96. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  97. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +5 -6
  98. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  99. package/dist/modules/catalog/backend/catalog/products/create/page.js +6 -7
  100. package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
  101. package/dist/modules/catalog/components/PriceKindSettings.js +3 -3
  102. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  103. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +1 -2
  104. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  105. package/dist/modules/catalog/components/products/ProductCategorizeSection.js +3 -3
  106. package/dist/modules/catalog/components/products/ProductCategorizeSection.js.map +2 -2
  107. package/dist/modules/catalog/components/products/ProductMediaManager.js +1 -1
  108. package/dist/modules/catalog/components/products/ProductMediaManager.js.map +2 -2
  109. package/dist/modules/catalog/components/products/ProductsDataTable.js +2 -3
  110. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  111. package/dist/modules/catalog/components/products/VariantBuilder.js +5 -5
  112. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  113. package/dist/modules/catalog/events.js +0 -1
  114. package/dist/modules/catalog/events.js.map +2 -2
  115. package/dist/modules/catalog/widgets/injection/product-seo/widget.js +1 -1
  116. package/dist/modules/catalog/widgets/injection/product-seo/widget.js.map +2 -2
  117. package/dist/modules/communication_channels/api/post/test-seed/route.js +2 -52
  118. package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
  119. package/dist/modules/communication_channels/api/post/webhook/[provider]/route.js +1 -11
  120. package/dist/modules/communication_channels/api/post/webhook/[provider]/route.js.map +2 -2
  121. package/dist/modules/communication_channels/api/post/webhooks/gmail/route.js +6 -11
  122. package/dist/modules/communication_channels/api/post/webhooks/gmail/route.js.map +2 -2
  123. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +1 -2
  124. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
  125. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js +3 -4
  126. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js.map +2 -2
  127. package/dist/modules/communication_channels/data/enrichers.js +4 -4
  128. package/dist/modules/communication_channels/data/enrichers.js.map +2 -2
  129. package/dist/modules/communication_channels/lib/access-control.js +2 -2
  130. package/dist/modules/communication_channels/lib/access-control.js.map +2 -2
  131. package/dist/modules/configs/backend/config/system-status/page.js +1 -2
  132. package/dist/modules/configs/backend/config/system-status/page.js.map +2 -2
  133. package/dist/modules/configs/lib/upgrade-actions.js +0 -12
  134. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  135. package/dist/modules/currencies/backend/currencies/page.js +1 -2
  136. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  137. package/dist/modules/currencies/backend/exchange-rates/page.js +1 -2
  138. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  139. package/dist/modules/currencies/di.js +0 -4
  140. package/dist/modules/currencies/di.js.map +2 -2
  141. package/dist/modules/customer_accounts/api/admin/users/[id].js +1 -10
  142. package/dist/modules/customer_accounts/api/admin/users/[id].js.map +2 -2
  143. package/dist/modules/customer_accounts/api/admin/users-invite.js +4 -63
  144. package/dist/modules/customer_accounts/api/admin/users-invite.js.map +2 -2
  145. package/dist/modules/customer_accounts/api/invitations/accept.js +2 -1
  146. package/dist/modules/customer_accounts/api/invitations/accept.js.map +2 -2
  147. package/dist/modules/customer_accounts/api/login.js +2 -4
  148. package/dist/modules/customer_accounts/api/login.js.map +2 -2
  149. package/dist/modules/customer_accounts/api/magic-link/verify.js +2 -4
  150. package/dist/modules/customer_accounts/api/magic-link/verify.js.map +2 -2
  151. package/dist/modules/customer_accounts/api/portal/feature-check.js +4 -5
  152. package/dist/modules/customer_accounts/api/portal/feature-check.js.map +2 -2
  153. package/dist/modules/customer_accounts/api/portal/nav.js +4 -6
  154. package/dist/modules/customer_accounts/api/portal/nav.js.map +2 -2
  155. package/dist/modules/customer_accounts/api/portal/profile.js +1 -5
  156. package/dist/modules/customer_accounts/api/portal/profile.js.map +2 -2
  157. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js +3 -3
  158. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js.map +2 -2
  159. package/dist/modules/customer_accounts/api/portal/users-invite.js +2 -22
  160. package/dist/modules/customer_accounts/api/portal/users-invite.js.map +2 -2
  161. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -2
  162. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
  163. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +1 -2
  164. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  165. package/dist/modules/customer_accounts/data/entities.js +0 -3
  166. package/dist/modules/customer_accounts/data/entities.js.map +2 -2
  167. package/dist/modules/customer_accounts/data/validators.js +0 -1
  168. package/dist/modules/customer_accounts/data/validators.js.map +2 -2
  169. package/dist/modules/customer_accounts/lib/customerAuth.js +2 -7
  170. package/dist/modules/customer_accounts/lib/customerAuth.js.map +2 -2
  171. package/dist/modules/customer_accounts/lib/customerAuthServer.js +1 -2
  172. package/dist/modules/customer_accounts/lib/customerAuthServer.js.map +2 -2
  173. package/dist/modules/customer_accounts/lib/customerEntityOwnership.js +3 -29
  174. package/dist/modules/customer_accounts/lib/customerEntityOwnership.js.map +2 -2
  175. package/dist/modules/customer_accounts/lib/customerUrl.js +10 -19
  176. package/dist/modules/customer_accounts/lib/customerUrl.js.map +2 -2
  177. package/dist/modules/customer_accounts/services/customerInvitationService.js +2 -32
  178. package/dist/modules/customer_accounts/services/customerInvitationService.js.map +2 -2
  179. package/dist/modules/customer_accounts/services/customerRbacService.js +3 -12
  180. package/dist/modules/customer_accounts/services/customerRbacService.js.map +2 -2
  181. package/dist/modules/customer_accounts/setup.js +0 -6
  182. package/dist/modules/customer_accounts/setup.js.map +2 -2
  183. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js +7 -47
  184. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js.map +2 -2
  185. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +2 -2
  186. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +2 -2
  187. package/dist/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.js +1 -1
  188. package/dist/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.js.map +2 -2
  189. package/dist/modules/customer_accounts/widgets/injection-table.js +1 -1
  190. package/dist/modules/customer_accounts/widgets/injection-table.js.map +2 -2
  191. package/dist/modules/customers/analytics.js +1 -4
  192. package/dist/modules/customers/analytics.js.map +2 -2
  193. package/dist/modules/customers/api/companies/[id]/route.js +4 -3
  194. package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
  195. package/dist/modules/customers/api/deals/[id]/people/route.js +2 -4
  196. package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
  197. package/dist/modules/customers/api/deals/[id]/route.js +3 -7
  198. package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
  199. package/dist/modules/customers/api/deals/aggregate/route.js +4 -5
  200. package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
  201. package/dist/modules/customers/api/deals/summary/route.js +119 -14
  202. package/dist/modules/customers/api/deals/summary/route.js.map +2 -2
  203. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +2 -3
  204. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
  205. package/dist/modules/customers/api/utils.js +18 -12
  206. package/dist/modules/customers/api/utils.js.map +2 -2
  207. package/dist/modules/customers/backend/customers/companies/[id]/page.js +1 -2
  208. package/dist/modules/customers/backend/customers/companies/[id]/page.js.map +2 -2
  209. package/dist/modules/customers/backend/customers/companies/page.js +1 -2
  210. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  211. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +5 -16
  212. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +2 -2
  213. package/dist/modules/customers/backend/customers/deals/[id]/page.js +11 -18
  214. package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
  215. package/dist/modules/customers/backend/customers/deals/page.js +1 -2
  216. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  217. package/dist/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.js +3 -17
  218. package/dist/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.js.map +2 -2
  219. package/dist/modules/customers/backend/customers/deals/pipeline/page.js +1 -7
  220. package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +2 -2
  221. package/dist/modules/customers/backend/customers/people/[id]/page.js +1 -2
  222. package/dist/modules/customers/backend/customers/people/[id]/page.js.map +2 -2
  223. package/dist/modules/customers/backend/customers/people/page.js +1 -2
  224. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  225. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +10 -26
  226. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +2 -2
  227. package/dist/modules/customers/cli.js +11 -28
  228. package/dist/modules/customers/cli.js.map +2 -2
  229. package/dist/modules/customers/commands/deals.js +10 -48
  230. package/dist/modules/customers/commands/deals.js.map +2 -2
  231. package/dist/modules/customers/commands/people.js +0 -2
  232. package/dist/modules/customers/commands/people.js.map +2 -2
  233. package/dist/modules/customers/components/CustomerTodosTable.js +1 -2
  234. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  235. package/dist/modules/customers/components/detail/ActiveDealCard.js +1 -2
  236. package/dist/modules/customers/components/detail/ActiveDealCard.js.map +2 -2
  237. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js +3 -2
  238. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js.map +2 -2
  239. package/dist/modules/customers/components/detail/CompanyDetailTabs.js +6 -26
  240. package/dist/modules/customers/components/detail/CompanyDetailTabs.js.map +2 -2
  241. package/dist/modules/customers/components/detail/CompanyKpiBar.js +5 -6
  242. package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
  243. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js +1 -1
  244. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js.map +1 -1
  245. package/dist/modules/customers/components/detail/DealDetailTabs.js +8 -30
  246. package/dist/modules/customers/components/detail/DealDetailTabs.js.map +2 -2
  247. package/dist/modules/customers/components/detail/DealForm.js +1 -2
  248. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  249. package/dist/modules/customers/components/detail/DealsSection.js +1 -1
  250. package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
  251. package/dist/modules/customers/components/detail/PersonDetailTabs.js +8 -30
  252. package/dist/modules/customers/components/detail/PersonDetailTabs.js.map +2 -2
  253. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js +216 -231
  254. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js.map +2 -2
  255. package/dist/modules/customers/components/detail/dashboard/helpers.js +3 -4
  256. package/dist/modules/customers/components/detail/dashboard/helpers.js.map +2 -2
  257. package/dist/modules/customers/components/formConfig.js +10 -14
  258. package/dist/modules/customers/components/formConfig.js.map +2 -2
  259. package/dist/modules/customers/data/entities.js +0 -8
  260. package/dist/modules/customers/data/entities.js.map +2 -2
  261. package/dist/modules/customers/data/validators.js +2 -5
  262. package/dist/modules/customers/data/validators.js.map +2 -2
  263. package/dist/modules/customers/lib/calendar/format.js +4 -8
  264. package/dist/modules/customers/lib/calendar/format.js.map +2 -2
  265. package/dist/modules/customers/lib/visibilityFilter.js +4 -6
  266. package/dist/modules/customers/lib/visibilityFilter.js.map +2 -2
  267. package/dist/modules/customers/search.js +29 -50
  268. package/dist/modules/customers/search.js.map +2 -2
  269. package/dist/modules/dashboards/api/layout/[itemId]/route.js +3 -6
  270. package/dist/modules/dashboards/api/layout/[itemId]/route.js.map +2 -2
  271. package/dist/modules/dashboards/api/layout/route.js +9 -22
  272. package/dist/modules/dashboards/api/layout/route.js.map +2 -2
  273. package/dist/modules/dashboards/api/roles/widgets/route.js +3 -9
  274. package/dist/modules/dashboards/api/roles/widgets/route.js.map +2 -2
  275. package/dist/modules/dashboards/api/users/widgets/route.js +3 -9
  276. package/dist/modules/dashboards/api/users/widgets/route.js.map +2 -2
  277. package/dist/modules/dashboards/api/widgets/catalog.js +3 -6
  278. package/dist/modules/dashboards/api/widgets/catalog.js.map +2 -2
  279. package/dist/modules/dashboards/api/widgets/data/batch/route.js +3 -12
  280. package/dist/modules/dashboards/api/widgets/data/batch/route.js.map +2 -2
  281. package/dist/modules/dashboards/api/widgets/data/route.js +3 -28
  282. package/dist/modules/dashboards/api/widgets/data/route.js.map +2 -2
  283. package/dist/modules/dashboards/api/widgets/data/schema.js +18 -28
  284. package/dist/modules/dashboards/api/widgets/data/schema.js.map +2 -2
  285. package/dist/modules/dashboards/lib/access.js +3 -5
  286. package/dist/modules/dashboards/lib/access.js.map +2 -2
  287. package/dist/modules/dashboards/lib/aggregations.js +46 -113
  288. package/dist/modules/dashboards/lib/aggregations.js.map +2 -2
  289. package/dist/modules/dashboards/lib/formatters.js +11 -84
  290. package/dist/modules/dashboards/lib/formatters.js.map +2 -2
  291. package/dist/modules/dashboards/services/widgetDataService.js +14 -316
  292. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  293. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js +3 -9
  294. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js.map +2 -2
  295. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/config.js +2 -52
  296. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/config.js.map +2 -2
  297. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.js +30 -52
  298. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.js.map +2 -2
  299. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js +2 -2
  300. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js.map +2 -2
  301. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js +3 -9
  302. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js.map +2 -2
  303. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js +3 -8
  304. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js.map +2 -2
  305. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js +18 -26
  306. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js.map +2 -2
  307. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js +14 -22
  308. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js.map +2 -2
  309. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js +4 -10
  310. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js.map +2 -2
  311. package/dist/modules/data_sync/api/mappings/[id]/route.js +9 -22
  312. package/dist/modules/data_sync/api/mappings/[id]/route.js.map +2 -2
  313. package/dist/modules/data_sync/api/mappings/route.js +4 -13
  314. package/dist/modules/data_sync/api/mappings/route.js.map +2 -2
  315. package/dist/modules/data_sync/api/options.js +2 -7
  316. package/dist/modules/data_sync/api/options.js.map +2 -2
  317. package/dist/modules/data_sync/api/run.js +2 -7
  318. package/dist/modules/data_sync/api/run.js.map +2 -2
  319. package/dist/modules/data_sync/api/runs/[id]/cancel.js +3 -8
  320. package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +2 -2
  321. package/dist/modules/data_sync/api/runs/[id]/retry.js +2 -7
  322. package/dist/modules/data_sync/api/runs/[id]/retry.js.map +2 -2
  323. package/dist/modules/data_sync/api/runs/[id]/route.js +3 -8
  324. package/dist/modules/data_sync/api/runs/[id]/route.js.map +2 -2
  325. package/dist/modules/data_sync/api/runs.js +2 -7
  326. package/dist/modules/data_sync/api/runs.js.map +2 -2
  327. package/dist/modules/data_sync/api/schedules/[id]/route.js +6 -19
  328. package/dist/modules/data_sync/api/schedules/[id]/route.js.map +2 -2
  329. package/dist/modules/data_sync/api/schedules/route.js +4 -13
  330. package/dist/modules/data_sync/api/schedules/route.js.map +2 -2
  331. package/dist/modules/data_sync/api/validate.js +4 -9
  332. package/dist/modules/data_sync/api/validate.js.map +2 -2
  333. package/dist/modules/data_sync/backend/data-sync/page.js +1 -2
  334. package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
  335. package/dist/modules/data_sync/lib/queue.js +1 -16
  336. package/dist/modules/data_sync/lib/queue.js.map +2 -2
  337. package/dist/modules/data_sync/lib/start-run.js +1 -2
  338. package/dist/modules/data_sync/lib/start-run.js.map +2 -2
  339. package/dist/modules/data_sync/lib/sync-engine.js +2 -35
  340. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  341. package/dist/modules/data_sync/lib/sync-run-service.js +2 -70
  342. package/dist/modules/data_sync/lib/sync-run-service.js.map +2 -2
  343. package/dist/modules/data_sync/workers/sync-export.js +2 -9
  344. package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
  345. package/dist/modules/data_sync/workers/sync-import.js +2 -9
  346. package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
  347. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js +12 -34
  348. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js.map +2 -2
  349. package/dist/modules/dictionaries/api/openapi.js +2 -15
  350. package/dist/modules/dictionaries/api/openapi.js.map +2 -2
  351. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +1 -1
  352. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
  353. package/dist/modules/dictionaries/components/hooks/useDictionaryEntries.js +29 -30
  354. package/dist/modules/dictionaries/components/hooks/useDictionaryEntries.js.map +2 -2
  355. package/dist/modules/dictionaries/data/validators.js +0 -7
  356. package/dist/modules/dictionaries/data/validators.js.map +2 -2
  357. package/dist/modules/dictionaries/lib/clientEntries.js +3 -4
  358. package/dist/modules/dictionaries/lib/clientEntries.js.map +2 -2
  359. package/dist/modules/directory/api/organization-branding/route.js +3 -10
  360. package/dist/modules/directory/api/organization-branding/route.js.map +2 -2
  361. package/dist/modules/directory/api/organization-switcher/route.js +20 -84
  362. package/dist/modules/directory/api/organization-switcher/route.js.map +2 -2
  363. package/dist/modules/directory/api/organizations/route.js +0 -7
  364. package/dist/modules/directory/api/organizations/route.js.map +3 -3
  365. package/dist/modules/directory/api/tenants/route.js +2 -8
  366. package/dist/modules/directory/api/tenants/route.js.map +2 -2
  367. package/dist/modules/directory/backend/directory/branding/page.js +8 -31
  368. package/dist/modules/directory/backend/directory/branding/page.js.map +2 -2
  369. package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js +16 -7
  370. package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js.map +2 -2
  371. package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
  372. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  373. package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
  374. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  375. package/dist/modules/directory/commands/organizations.js +1 -8
  376. package/dist/modules/directory/commands/organizations.js.map +2 -2
  377. package/dist/modules/directory/commands/tenants.js +0 -6
  378. package/dist/modules/directory/commands/tenants.js.map +2 -2
  379. package/dist/modules/directory/data/entities.js +0 -4
  380. package/dist/modules/directory/data/entities.js.map +2 -2
  381. package/dist/modules/directory/data/validators.js +0 -2
  382. package/dist/modules/directory/data/validators.js.map +2 -2
  383. package/dist/modules/directory/subscribers/invalidateOrgScopeCache.js +1 -5
  384. package/dist/modules/directory/subscribers/invalidateOrgScopeCache.js.map +2 -2
  385. package/dist/modules/directory/utils/organizationScope.js +3 -11
  386. package/dist/modules/directory/utils/organizationScope.js.map +2 -2
  387. package/dist/modules/entities/api/definitions.js +3 -53
  388. package/dist/modules/entities/api/definitions.js.map +2 -2
  389. package/dist/modules/entities/api/entities.js +2 -21
  390. package/dist/modules/entities/api/entities.js.map +2 -2
  391. package/dist/modules/entities/api/entity-settings.js +9 -59
  392. package/dist/modules/entities/api/entity-settings.js.map +2 -2
  393. package/dist/modules/entities/api/records.js +24 -3
  394. package/dist/modules/entities/api/records.js.map +2 -2
  395. package/dist/modules/entities/api/relations/options.js +16 -11
  396. package/dist/modules/entities/api/relations/options.js.map +2 -2
  397. package/dist/modules/entities/api/sidebar-entities.js +12 -34
  398. package/dist/modules/entities/api/sidebar-entities.js.map +2 -2
  399. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +4 -23
  400. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  401. package/dist/modules/entities/backend/entities/user/create/page.js +7 -16
  402. package/dist/modules/entities/backend/entities/user/create/page.js.map +2 -2
  403. package/dist/modules/entities/cli.js +19 -193
  404. package/dist/modules/entities/cli.js.map +2 -2
  405. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -2
  406. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  407. package/dist/modules/entities/components/UserEntitiesTable.js +1 -2
  408. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  409. package/dist/modules/entities/lib/entityAcl.js +9 -87
  410. package/dist/modules/entities/lib/entityAcl.js.map +3 -3
  411. package/dist/modules/feature_toggles/components/FeatureGuard.js +2 -3
  412. package/dist/modules/feature_toggles/components/FeatureGuard.js.map +2 -2
  413. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.js +2 -5
  414. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.js.map +2 -2
  415. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagJson.js +2 -5
  416. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagJson.js.map +2 -2
  417. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagNumber.js +2 -5
  418. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagNumber.js.map +2 -2
  419. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagString.js +2 -5
  420. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagString.js.map +2 -2
  421. package/dist/modules/inbox_ops/ai-tools.js +2 -5
  422. package/dist/modules/inbox_ops/ai-tools.js.map +2 -2
  423. package/dist/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.js +1 -14
  424. package/dist/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.js.map +2 -2
  425. package/dist/modules/inbox_ops/api/proposals/route.js +1 -16
  426. package/dist/modules/inbox_ops/api/proposals/route.js.map +2 -2
  427. package/dist/modules/inbox_ops/api/webhook/inbound.js +10 -14
  428. package/dist/modules/inbox_ops/api/webhook/inbound.js.map +2 -2
  429. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +6 -6
  430. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  431. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +20 -25
  432. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
  433. package/dist/modules/inbox_ops/search.js +4 -15
  434. package/dist/modules/inbox_ops/search.js.map +2 -2
  435. package/dist/modules/integrations/api/[id]/credentials/route.js +5 -11
  436. package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
  437. package/dist/modules/integrations/api/[id]/health/route.js +3 -6
  438. package/dist/modules/integrations/api/[id]/health/route.js.map +2 -2
  439. package/dist/modules/integrations/api/[id]/route.js +3 -6
  440. package/dist/modules/integrations/api/[id]/route.js.map +2 -2
  441. package/dist/modules/integrations/api/[id]/state/route.js +3 -6
  442. package/dist/modules/integrations/api/[id]/state/route.js.map +2 -2
  443. package/dist/modules/integrations/api/[id]/version/route.js +3 -6
  444. package/dist/modules/integrations/api/[id]/version/route.js.map +2 -2
  445. package/dist/modules/integrations/api/logs/route.js +3 -6
  446. package/dist/modules/integrations/api/logs/route.js.map +2 -2
  447. package/dist/modules/integrations/api/route.js +3 -6
  448. package/dist/modules/integrations/api/route.js.map +2 -2
  449. package/dist/modules/integrations/api/umes-read.js +2 -2
  450. package/dist/modules/integrations/api/umes-read.js.map +2 -2
  451. package/dist/modules/integrations/backend/integrations/[id]/page.js +4 -2
  452. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  453. package/dist/modules/integrations/lib/organization-scope.js +9 -2
  454. package/dist/modules/integrations/lib/organization-scope.js.map +2 -2
  455. package/dist/modules/integrations/widgets/injection/external-ids/widget.client.js +5 -0
  456. package/dist/modules/integrations/widgets/injection/external-ids/widget.client.js.map +2 -2
  457. package/dist/modules/messages/api/[id]/route.js +0 -15
  458. package/dist/modules/messages/api/[id]/route.js.map +2 -2
  459. package/dist/modules/messages/api/route.js +8 -77
  460. package/dist/modules/messages/api/route.js.map +2 -2
  461. package/dist/modules/messages/components/ComposeMessagePageClient.js +1 -2
  462. package/dist/modules/messages/components/ComposeMessagePageClient.js.map +2 -2
  463. package/dist/modules/messages/components/MessageDetailPageClient.js +2 -3
  464. package/dist/modules/messages/components/MessageDetailPageClient.js.map +2 -2
  465. package/dist/modules/messages/components/MessagesInboxPageClient.js +1 -2
  466. package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
  467. package/dist/modules/messages/components/message-detail/panels/dialogs.js +1 -1
  468. package/dist/modules/messages/components/message-detail/panels/dialogs.js.map +1 -1
  469. package/dist/modules/messages/lib/routeHelpers.js +3 -1
  470. package/dist/modules/messages/lib/routeHelpers.js.map +2 -2
  471. package/dist/modules/messages/lib/searchLookup.js +16 -8
  472. package/dist/modules/messages/lib/searchLookup.js.map +2 -2
  473. package/dist/modules/messages/search.js +5 -10
  474. package/dist/modules/messages/search.js.map +2 -2
  475. package/dist/modules/notifications/api/route.js +4 -83
  476. package/dist/modules/notifications/api/route.js.map +2 -2
  477. package/dist/modules/notifications/api/unread-count/route.js +6 -25
  478. package/dist/modules/notifications/api/unread-count/route.js.map +2 -2
  479. package/dist/modules/notifications/di.js +1 -1
  480. package/dist/modules/notifications/di.js.map +2 -2
  481. package/dist/modules/notifications/events.js +2 -4
  482. package/dist/modules/notifications/events.js.map +2 -2
  483. package/dist/modules/notifications/lib/notificationRecipients.js +7 -6
  484. package/dist/modules/notifications/lib/notificationRecipients.js.map +2 -2
  485. package/dist/modules/notifications/lib/notificationService.js +4 -48
  486. package/dist/modules/notifications/lib/notificationService.js.map +2 -2
  487. package/dist/modules/notifications/lib/routeHelpers.js +2 -16
  488. package/dist/modules/notifications/lib/routeHelpers.js.map +2 -2
  489. package/dist/modules/payment_gateways/api/capture/route.js +1 -1
  490. package/dist/modules/payment_gateways/api/capture/route.js.map +2 -2
  491. package/dist/modules/payment_gateways/api/sessions/route.js +3 -6
  492. package/dist/modules/payment_gateways/api/sessions/route.js.map +2 -2
  493. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +1 -11
  494. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
  495. package/dist/modules/payment_gateways/backend/payment-gateways/page.js +2 -3
  496. package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
  497. package/dist/modules/payment_gateways/data/entities.js +0 -11
  498. package/dist/modules/payment_gateways/data/entities.js.map +2 -2
  499. package/dist/modules/payment_gateways/di.js +1 -17
  500. package/dist/modules/payment_gateways/di.js.map +2 -2
  501. package/dist/modules/payment_gateways/lib/gateway-service.js +14 -93
  502. package/dist/modules/payment_gateways/lib/gateway-service.js.map +2 -2
  503. package/dist/modules/payment_gateways/lib/payment-operation-idempotency.js +0 -1
  504. package/dist/modules/payment_gateways/lib/payment-operation-idempotency.js.map +2 -2
  505. package/dist/modules/payment_gateways/lib/session-idempotency.js +0 -33
  506. package/dist/modules/payment_gateways/lib/session-idempotency.js.map +2 -2
  507. package/dist/modules/payment_gateways/setup.js +0 -47
  508. package/dist/modules/payment_gateways/setup.js.map +2 -2
  509. package/dist/modules/planner/components/AvailabilityRulesEditor.js +4 -4
  510. package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
  511. package/dist/modules/planner/components/unavailabilityReasons.js +3 -3
  512. package/dist/modules/planner/components/unavailabilityReasons.js.map +2 -2
  513. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +3 -3
  514. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +2 -2
  515. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +3 -3
  516. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +2 -2
  517. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js +3 -3
  518. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js.map +2 -2
  519. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js +3 -3
  520. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js.map +2 -2
  521. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js +3 -3
  522. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js.map +2 -2
  523. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +3 -3
  524. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +2 -2
  525. package/dist/modules/progress/lib/progressService.js +0 -2
  526. package/dist/modules/progress/lib/progressService.js.map +2 -2
  527. package/dist/modules/progress/lib/progressServiceImpl.js +104 -322
  528. package/dist/modules/progress/lib/progressServiceImpl.js.map +2 -2
  529. package/dist/modules/query_index/api/openapi.js +1 -13
  530. package/dist/modules/query_index/api/openapi.js.map +2 -2
  531. package/dist/modules/query_index/api/reindex.js +0 -10
  532. package/dist/modules/query_index/api/reindex.js.map +2 -2
  533. package/dist/modules/query_index/api/status.js +105 -165
  534. package/dist/modules/query_index/api/status.js.map +2 -2
  535. package/dist/modules/query_index/cli.js +1 -125
  536. package/dist/modules/query_index/cli.js.map +2 -2
  537. package/dist/modules/query_index/components/QueryIndexesTable.js +42 -130
  538. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  539. package/dist/modules/query_index/data/entities.js +1 -2
  540. package/dist/modules/query_index/data/entities.js.map +2 -2
  541. package/dist/modules/query_index/di.js +0 -3
  542. package/dist/modules/query_index/di.js.map +2 -2
  543. package/dist/modules/query_index/lib/batch.js +4 -11
  544. package/dist/modules/query_index/lib/batch.js.map +2 -2
  545. package/dist/modules/query_index/lib/coverage.js +9 -21
  546. package/dist/modules/query_index/lib/coverage.js.map +2 -2
  547. package/dist/modules/query_index/lib/document.js +5 -12
  548. package/dist/modules/query_index/lib/document.js.map +2 -2
  549. package/dist/modules/query_index/lib/engine.js +48 -105
  550. package/dist/modules/query_index/lib/engine.js.map +2 -2
  551. package/dist/modules/query_index/lib/indexer.js +19 -95
  552. package/dist/modules/query_index/lib/indexer.js.map +2 -2
  553. package/dist/modules/query_index/lib/reindexer.js +37 -43
  554. package/dist/modules/query_index/lib/reindexer.js.map +2 -2
  555. package/dist/modules/query_index/lib/search-tokens.js +15 -34
  556. package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
  557. package/dist/modules/query_index/lib/subscriber-scope.js +3 -2
  558. package/dist/modules/query_index/lib/subscriber-scope.js.map +2 -2
  559. package/dist/modules/query_index/subscribers/coverage_refresh.js +0 -4
  560. package/dist/modules/query_index/subscribers/coverage_refresh.js.map +2 -2
  561. package/dist/modules/query_index/subscribers/delete_one.js +1 -53
  562. package/dist/modules/query_index/subscribers/delete_one.js.map +3 -3
  563. package/dist/modules/query_index/subscribers/upsert_one.js +0 -60
  564. package/dist/modules/query_index/subscribers/upsert_one.js.map +3 -3
  565. package/dist/modules/resources/api/resources.js +0 -2
  566. package/dist/modules/resources/api/resources.js.map +2 -2
  567. package/dist/modules/resources/backend/resources/resource-types/page.js +1 -2
  568. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  569. package/dist/modules/resources/backend/resources/resources/[id]/page.js +2 -3
  570. package/dist/modules/resources/backend/resources/resources/[id]/page.js.map +2 -2
  571. package/dist/modules/resources/backend/resources/resources/page.js +1 -2
  572. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  573. package/dist/modules/resources/commands/resources.js +0 -9
  574. package/dist/modules/resources/commands/resources.js.map +2 -2
  575. package/dist/modules/resources/components/detail/dictionaries.js +3 -3
  576. package/dist/modules/resources/components/detail/dictionaries.js.map +2 -2
  577. package/dist/modules/resources/data/entities.js +0 -3
  578. package/dist/modules/resources/data/entities.js.map +2 -2
  579. package/dist/modules/resources/data/validators.js +2 -6
  580. package/dist/modules/resources/data/validators.js.map +2 -2
  581. package/dist/modules/resources/lib/seeds.js +9 -16
  582. package/dist/modules/resources/lib/seeds.js.map +2 -2
  583. package/dist/modules/sales/analytics.js +3 -7
  584. package/dist/modules/sales/analytics.js.map +2 -2
  585. package/dist/modules/sales/api/document-history/route.js +1 -2
  586. package/dist/modules/sales/api/document-history/route.js.map +2 -2
  587. package/dist/modules/sales/api/documents/factory.js +3 -14
  588. package/dist/modules/sales/api/documents/factory.js.map +2 -2
  589. package/dist/modules/sales/backend/sales/documents/[id]/page.js +3 -11
  590. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  591. package/dist/modules/sales/backend/sales/documents/create/page.js +14 -11
  592. package/dist/modules/sales/backend/sales/documents/create/page.js.map +2 -2
  593. package/dist/modules/sales/commands/documents.js +23 -184
  594. package/dist/modules/sales/commands/documents.js.map +2 -2
  595. package/dist/modules/sales/components/documents/ItemsSection.js +10 -20
  596. package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
  597. package/dist/modules/sales/components/documents/LineItemDialog.js +5 -12
  598. package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
  599. package/dist/modules/sales/components/documents/SalesDocumentForm.js +2 -48
  600. package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
  601. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +1 -4
  602. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  603. package/dist/modules/sales/components/useSalesChannelsEnabled.js +35 -2
  604. package/dist/modules/sales/components/useSalesChannelsEnabled.js.map +2 -2
  605. package/dist/modules/sales/data/validators.js +5 -32
  606. package/dist/modules/sales/data/validators.js.map +2 -2
  607. package/dist/modules/sales/di.js +0 -7
  608. package/dist/modules/sales/di.js.map +2 -2
  609. package/dist/modules/sales/events.js +0 -1
  610. package/dist/modules/sales/events.js.map +2 -2
  611. package/dist/modules/sales/lib/historyHelpers.js +1 -69
  612. package/dist/modules/sales/lib/historyHelpers.js.map +2 -2
  613. package/dist/modules/sales/widgets/injection/document-history/widget.client.js +2 -51
  614. package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
  615. package/dist/modules/sales/workflows.js +7 -10
  616. package/dist/modules/sales/workflows.js.map +2 -2
  617. package/dist/modules/shipping_carriers/api/webhook/[provider]/route.js +1 -11
  618. package/dist/modules/shipping_carriers/api/webhook/[provider]/route.js.map +2 -2
  619. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js +1 -1
  620. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js.map +1 -1
  621. package/dist/modules/staff/api/interceptors.js +3 -5
  622. package/dist/modules/staff/api/interceptors.js.map +2 -2
  623. package/dist/modules/staff/api/leave-requests.js +42 -45
  624. package/dist/modules/staff/api/leave-requests.js.map +2 -2
  625. package/dist/modules/staff/components/detail/dictionaries.js +3 -3
  626. package/dist/modules/staff/components/detail/dictionaries.js.map +2 -2
  627. package/dist/modules/sync_excel/api/upload/route.js +2 -15
  628. package/dist/modules/sync_excel/api/upload/route.js.map +2 -2
  629. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js +1 -1
  630. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js.map +1 -1
  631. package/dist/modules/wms/components/backend/WmsConfigurationPage.js +4 -5
  632. package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +2 -2
  633. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +3 -4
  634. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
  635. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +2 -3
  636. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  637. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +2 -3
  638. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  639. package/dist/modules/wms/components/backend/WmsLotsListPage.js +1 -2
  640. package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
  641. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +2 -3
  642. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  643. package/dist/modules/workflows/backend/definitions/page.js +2 -3
  644. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  645. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +3 -6
  646. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  647. package/dist/modules/workflows/backend/instances/page.js +9 -10
  648. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  649. package/dist/modules/workflows/backend/tasks/page.js +7 -8
  650. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  651. package/dist/modules/workflows/components/ActivitiesEditor.js +13 -69
  652. package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
  653. package/dist/modules/workflows/components/BusinessRulesSelector.js +1 -1
  654. package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
  655. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +2 -2
  656. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
  657. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +2 -1
  658. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
  659. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +2 -1
  660. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
  661. package/dist/modules/workflows/components/StepsEditor.js +2 -2
  662. package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
  663. package/dist/modules/workflows/components/TransitionsEditor.js +165 -207
  664. package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
  665. package/dist/modules/workflows/components/WorkflowLegend.js +1 -1
  666. package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
  667. package/dist/modules/workflows/components/WorkflowSelector.js +1 -1
  668. package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
  669. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +1 -1
  670. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  671. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +1 -1
  672. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
  673. package/dist/modules/workflows/components/fields/MappingArrayEditor.js +1 -1
  674. package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
  675. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +1 -1
  676. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  677. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js +4 -4
  678. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js.map +2 -2
  679. package/dist/modules/workflows/data/validators.js +1 -34
  680. package/dist/modules/workflows/data/validators.js.map +3 -3
  681. package/dist/modules/workflows/events.js +0 -1
  682. package/dist/modules/workflows/events.js.map +2 -2
  683. package/dist/modules/workflows/lib/activity-executor.js +14 -59
  684. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  685. package/dist/modules/workflows/lib/format-validation-error.js +1 -46
  686. package/dist/modules/workflows/lib/format-validation-error.js.map +2 -2
  687. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +10 -21
  688. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +2 -2
  689. package/generated/entities/customer_deal_person_link/index.ts +0 -1
  690. package/generated/entities/customer_user_invitation/index.ts +0 -1
  691. package/generated/entities/gateway_payment_operation/index.ts +0 -1
  692. package/generated/entities/gateway_transaction/index.ts +0 -1
  693. package/generated/entities/organization/index.ts +0 -1
  694. package/generated/entities/resources_resource/index.ts +0 -1
  695. package/generated/entities.ids.generated.ts +1 -3
  696. package/generated/entity-fields-registry.ts +0 -23
  697. package/package.json +18 -19
  698. package/src/bootstrap.ts +2 -17
  699. package/src/helpers/integration/salesFixtures.ts +2 -34
  700. package/src/helpers/integration/salesUi.ts +0 -8
  701. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -2
  702. package/src/modules/attachments/api/route.ts +9 -130
  703. package/src/modules/attachments/data/entities.ts +0 -59
  704. package/src/modules/attachments/di.ts +1 -9
  705. package/src/modules/attachments/fields/attachment.tsx +1 -1
  706. package/src/modules/attachments/i18n/de.json +0 -15
  707. package/src/modules/attachments/i18n/en.json +0 -15
  708. package/src/modules/attachments/i18n/es.json +0 -15
  709. package/src/modules/attachments/i18n/pl.json +0 -15
  710. package/src/modules/attachments/lib/drivers/index.ts +1 -1
  711. package/src/modules/attachments/lib/drivers/localDriver.ts +8 -23
  712. package/src/modules/attachments/lib/drivers/types.ts +0 -5
  713. package/src/modules/attachments/lib/upload-limits.ts +0 -35
  714. package/src/modules/attachments/migrations/.snapshot-open-mercato.json +120 -648
  715. package/src/modules/audit_logs/api/audit-logs/access/route.ts +0 -5
  716. package/src/modules/audit_logs/api/audit-logs/actions/export/route.ts +0 -5
  717. package/src/modules/audit_logs/api/audit-logs/actions/route.ts +0 -5
  718. package/src/modules/audit_logs/components/AccessLogsTable.tsx +1 -2
  719. package/src/modules/audit_logs/components/AuditLogsActions.tsx +1 -2
  720. package/src/modules/auth/AGENTS.md +8 -12
  721. package/src/modules/auth/api/admin/nav.ts +4 -28
  722. package/src/modules/auth/api/profile/route.ts +2 -8
  723. package/src/modules/auth/api/users/route.ts +28 -8
  724. package/src/modules/auth/backend/auth/profile/page.tsx +0 -1
  725. package/src/modules/auth/backend/profile/change-password/page.tsx +0 -1
  726. package/src/modules/auth/backend/roles/page.tsx +1 -2
  727. package/src/modules/auth/backend/settings/page.tsx +8 -17
  728. package/src/modules/auth/backend/users/page.tsx +1 -2
  729. package/src/modules/auth/cli.ts +1 -1
  730. package/src/modules/auth/components/UserConsentsPanel.tsx +9 -9
  731. package/src/modules/auth/frontend/login.tsx +4 -5
  732. package/src/modules/auth/frontend/reset.tsx +2 -2
  733. package/src/modules/auth/i18n/de.json +0 -1
  734. package/src/modules/auth/i18n/en.json +0 -1
  735. package/src/modules/auth/i18n/es.json +0 -1
  736. package/src/modules/auth/i18n/pl.json +0 -1
  737. package/src/modules/auth/lib/backendChrome.tsx +33 -71
  738. package/src/modules/auth/lib/setup-app.ts +2 -21
  739. package/src/modules/auth/lib/tenantAccess.ts +0 -8
  740. package/src/modules/auth/services/rbacService.ts +46 -41
  741. package/src/modules/business_rules/api/rules/route.ts +4 -92
  742. package/src/modules/business_rules/backend/rules/page.tsx +1 -2
  743. package/src/modules/business_rules/components/ActionBuilder.tsx +5 -54
  744. package/src/modules/business_rules/components/ActionRow.tsx +18 -156
  745. package/src/modules/business_rules/components/ConditionRow.tsx +6 -9
  746. package/src/modules/business_rules/components/utils/actionValidation.ts +0 -6
  747. package/src/modules/business_rules/i18n/de.json +0 -12
  748. package/src/modules/business_rules/i18n/en.json +0 -12
  749. package/src/modules/business_rules/i18n/es.json +0 -12
  750. package/src/modules/business_rules/i18n/pl.json +0 -12
  751. package/src/modules/business_rules/lib/action-executor.ts +0 -198
  752. package/src/modules/business_rules/lib/rule-engine.ts +0 -4
  753. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +5 -6
  754. package/src/modules/catalog/backend/catalog/products/create/page.tsx +6 -7
  755. package/src/modules/catalog/components/PriceKindSettings.tsx +3 -3
  756. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +1 -2
  757. package/src/modules/catalog/components/products/ProductCategorizeSection.tsx +3 -3
  758. package/src/modules/catalog/components/products/ProductMediaManager.tsx +1 -1
  759. package/src/modules/catalog/components/products/ProductsDataTable.tsx +2 -3
  760. package/src/modules/catalog/components/products/VariantBuilder.tsx +5 -5
  761. package/src/modules/catalog/events.ts +0 -1
  762. package/src/modules/catalog/i18n/de.json +0 -18
  763. package/src/modules/catalog/i18n/en.json +0 -18
  764. package/src/modules/catalog/i18n/es.json +0 -18
  765. package/src/modules/catalog/i18n/pl.json +0 -18
  766. package/src/modules/catalog/widgets/injection/product-seo/widget.ts +1 -1
  767. package/src/modules/communication_channels/api/post/test-seed/route.ts +2 -69
  768. package/src/modules/communication_channels/api/post/webhook/[provider]/route.ts +1 -11
  769. package/src/modules/communication_channels/api/post/webhooks/gmail/route.ts +11 -17
  770. package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +1 -2
  771. package/src/modules/communication_channels/backend/profile/communication-channels/page.tsx +3 -4
  772. package/src/modules/communication_channels/data/enrichers.ts +26 -6
  773. package/src/modules/communication_channels/lib/access-control.ts +3 -3
  774. package/src/modules/configs/backend/config/system-status/page.tsx +1 -2
  775. package/src/modules/configs/lib/upgrade-actions.ts +0 -14
  776. package/src/modules/currencies/backend/currencies/page.tsx +1 -2
  777. package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -2
  778. package/src/modules/currencies/di.ts +1 -4
  779. package/src/modules/currencies/i18n/de.json +0 -1
  780. package/src/modules/currencies/i18n/en.json +0 -1
  781. package/src/modules/currencies/i18n/es.json +0 -1
  782. package/src/modules/currencies/i18n/pl.json +0 -1
  783. package/src/modules/customer_accounts/AGENTS.md +3 -3
  784. package/src/modules/customer_accounts/api/admin/users/[id].ts +1 -16
  785. package/src/modules/customer_accounts/api/admin/users-invite.ts +3 -81
  786. package/src/modules/customer_accounts/api/invitations/accept.ts +2 -1
  787. package/src/modules/customer_accounts/api/login.ts +2 -4
  788. package/src/modules/customer_accounts/api/magic-link/verify.ts +2 -4
  789. package/src/modules/customer_accounts/api/portal/feature-check.ts +7 -5
  790. package/src/modules/customer_accounts/api/portal/nav.ts +3 -5
  791. package/src/modules/customer_accounts/api/portal/profile.ts +1 -5
  792. package/src/modules/customer_accounts/api/portal/sessions-refresh.ts +3 -3
  793. package/src/modules/customer_accounts/api/portal/users-invite.ts +1 -25
  794. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -2
  795. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +1 -2
  796. package/src/modules/customer_accounts/data/entities.ts +0 -3
  797. package/src/modules/customer_accounts/data/validators.ts +0 -1
  798. package/src/modules/customer_accounts/i18n/de.json +0 -6
  799. package/src/modules/customer_accounts/i18n/en.json +0 -6
  800. package/src/modules/customer_accounts/i18n/es.json +0 -6
  801. package/src/modules/customer_accounts/i18n/pl.json +0 -6
  802. package/src/modules/customer_accounts/lib/customerAuth.ts +2 -8
  803. package/src/modules/customer_accounts/lib/customerAuthServer.ts +0 -1
  804. package/src/modules/customer_accounts/lib/customerEntityOwnership.ts +2 -68
  805. package/src/modules/customer_accounts/lib/customerUrl.ts +11 -27
  806. package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +0 -16
  807. package/src/modules/customer_accounts/services/customerInvitationService.ts +3 -56
  808. package/src/modules/customer_accounts/services/customerRbacService.ts +3 -16
  809. package/src/modules/customer_accounts/setup.ts +0 -7
  810. package/src/modules/customer_accounts/subscribers/autoLinkCrm.ts +8 -75
  811. package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +2 -2
  812. package/src/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.tsx +3 -1
  813. package/src/modules/customer_accounts/widgets/injection-table.ts +1 -4
  814. package/src/modules/customers/analytics.ts +0 -3
  815. package/src/modules/customers/api/companies/[id]/route.ts +4 -3
  816. package/src/modules/customers/api/deals/[id]/people/route.ts +0 -3
  817. package/src/modules/customers/api/deals/[id]/route.ts +2 -10
  818. package/src/modules/customers/api/deals/aggregate/route.ts +4 -5
  819. package/src/modules/customers/api/deals/summary/route.ts +162 -15
  820. package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +2 -3
  821. package/src/modules/customers/api/utils.ts +31 -12
  822. package/src/modules/customers/backend/customers/companies/[id]/page.tsx +1 -2
  823. package/src/modules/customers/backend/customers/companies/page.tsx +1 -2
  824. package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +5 -17
  825. package/src/modules/customers/backend/customers/deals/[id]/hooks/types.ts +0 -1
  826. package/src/modules/customers/backend/customers/deals/[id]/page.tsx +12 -19
  827. package/src/modules/customers/backend/customers/deals/page.tsx +1 -2
  828. package/src/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.tsx +3 -35
  829. package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +1 -10
  830. package/src/modules/customers/backend/customers/people/[id]/page.tsx +1 -2
  831. package/src/modules/customers/backend/customers/people/page.tsx +1 -2
  832. package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +10 -29
  833. package/src/modules/customers/cli.ts +11 -28
  834. package/src/modules/customers/commands/deals.ts +9 -50
  835. package/src/modules/customers/commands/people.ts +0 -3
  836. package/src/modules/customers/components/CustomerTodosTable.tsx +1 -2
  837. package/src/modules/customers/components/detail/ActiveDealCard.tsx +1 -2
  838. package/src/modules/customers/components/detail/ActivitiesDayStrip.tsx +3 -2
  839. package/src/modules/customers/components/detail/CompanyDetailTabs.tsx +7 -30
  840. package/src/modules/customers/components/detail/CompanyKpiBar.tsx +5 -6
  841. package/src/modules/customers/components/detail/ConfirmDealLostDialog.tsx +1 -1
  842. package/src/modules/customers/components/detail/DealDetailTabs.tsx +9 -34
  843. package/src/modules/customers/components/detail/DealForm.tsx +1 -5
  844. package/src/modules/customers/components/detail/DealsSection.tsx +1 -1
  845. package/src/modules/customers/components/detail/PersonDetailTabs.tsx +9 -34
  846. package/src/modules/customers/components/detail/ScheduleActivityDialog.tsx +13 -28
  847. package/src/modules/customers/components/detail/dashboard/helpers.ts +3 -4
  848. package/src/modules/customers/components/formConfig.tsx +8 -12
  849. package/src/modules/customers/data/entities.ts +1 -9
  850. package/src/modules/customers/data/validators.ts +1 -6
  851. package/src/modules/customers/i18n/de.json +0 -72
  852. package/src/modules/customers/i18n/en.json +0 -72
  853. package/src/modules/customers/i18n/es.json +0 -72
  854. package/src/modules/customers/i18n/pl.json +0 -72
  855. package/src/modules/customers/lib/calendar/format.ts +4 -10
  856. package/src/modules/customers/lib/visibilityFilter.ts +5 -7
  857. package/src/modules/customers/migrations/.snapshot-open-mercato.json +1 -27
  858. package/src/modules/customers/search.ts +27 -59
  859. package/src/modules/dashboards/api/layout/[itemId]/route.ts +3 -6
  860. package/src/modules/dashboards/api/layout/route.ts +9 -22
  861. package/src/modules/dashboards/api/roles/widgets/route.ts +3 -9
  862. package/src/modules/dashboards/api/users/widgets/route.ts +3 -9
  863. package/src/modules/dashboards/api/widgets/catalog.ts +3 -6
  864. package/src/modules/dashboards/api/widgets/data/batch/route.ts +1 -12
  865. package/src/modules/dashboards/api/widgets/data/route.ts +1 -29
  866. package/src/modules/dashboards/api/widgets/data/schema.ts +19 -49
  867. package/src/modules/dashboards/i18n/de.json +0 -5
  868. package/src/modules/dashboards/i18n/en.json +0 -5
  869. package/src/modules/dashboards/i18n/es.json +0 -5
  870. package/src/modules/dashboards/i18n/pl.json +0 -5
  871. package/src/modules/dashboards/lib/access.ts +3 -5
  872. package/src/modules/dashboards/lib/aggregations.ts +48 -198
  873. package/src/modules/dashboards/lib/formatters.ts +12 -137
  874. package/src/modules/dashboards/services/widgetDataService.ts +12 -453
  875. package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.tsx +3 -9
  876. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/config.ts +0 -86
  877. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.tsx +21 -42
  878. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.ts +2 -2
  879. package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.tsx +3 -9
  880. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.tsx +2 -7
  881. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.tsx +15 -25
  882. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.client.tsx +11 -21
  883. package/src/modules/dashboards/widgets/dashboard/top-products/widget.client.tsx +3 -9
  884. package/src/modules/data_sync/AGENTS.md +0 -1
  885. package/src/modules/data_sync/api/mappings/[id]/route.ts +9 -22
  886. package/src/modules/data_sync/api/mappings/route.ts +4 -13
  887. package/src/modules/data_sync/api/options.ts +2 -7
  888. package/src/modules/data_sync/api/run.ts +2 -7
  889. package/src/modules/data_sync/api/runs/[id]/cancel.ts +3 -8
  890. package/src/modules/data_sync/api/runs/[id]/retry.ts +2 -7
  891. package/src/modules/data_sync/api/runs/[id]/route.ts +3 -8
  892. package/src/modules/data_sync/api/runs.ts +2 -7
  893. package/src/modules/data_sync/api/schedules/[id]/route.ts +6 -19
  894. package/src/modules/data_sync/api/schedules/route.ts +4 -13
  895. package/src/modules/data_sync/api/validate.ts +4 -9
  896. package/src/modules/data_sync/backend/data-sync/page.tsx +1 -2
  897. package/src/modules/data_sync/lib/adapter.ts +0 -18
  898. package/src/modules/data_sync/lib/queue.ts +1 -19
  899. package/src/modules/data_sync/lib/start-run.ts +1 -2
  900. package/src/modules/data_sync/lib/sync-engine.ts +0 -46
  901. package/src/modules/data_sync/lib/sync-run-service.ts +1 -82
  902. package/src/modules/data_sync/workers/sync-export.ts +1 -8
  903. package/src/modules/data_sync/workers/sync-import.ts +1 -8
  904. package/src/modules/dictionaries/api/[dictionaryId]/entries/route.ts +11 -39
  905. package/src/modules/dictionaries/api/openapi.ts +0 -19
  906. package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +1 -1
  907. package/src/modules/dictionaries/components/hooks/useDictionaryEntries.ts +36 -35
  908. package/src/modules/dictionaries/data/validators.ts +0 -14
  909. package/src/modules/dictionaries/lib/clientEntries.ts +3 -4
  910. package/src/modules/directory/api/organization-branding/route.ts +1 -12
  911. package/src/modules/directory/api/organization-switcher/route.ts +26 -97
  912. package/src/modules/directory/api/organizations/route.ts +0 -7
  913. package/src/modules/directory/api/tenants/route.ts +1 -9
  914. package/src/modules/directory/backend/directory/branding/page.tsx +9 -34
  915. package/src/modules/directory/backend/directory/organizations/[id]/edit/page.tsx +14 -10
  916. package/src/modules/directory/backend/directory/organizations/page.tsx +1 -2
  917. package/src/modules/directory/backend/directory/tenants/page.tsx +1 -2
  918. package/src/modules/directory/commands/organizations.ts +1 -9
  919. package/src/modules/directory/commands/tenants.ts +0 -6
  920. package/src/modules/directory/data/entities.ts +0 -3
  921. package/src/modules/directory/data/validators.ts +0 -2
  922. package/src/modules/directory/i18n/de.json +1 -4
  923. package/src/modules/directory/i18n/en.json +1 -4
  924. package/src/modules/directory/i18n/es.json +1 -4
  925. package/src/modules/directory/i18n/pl.json +1 -4
  926. package/src/modules/directory/migrations/.snapshot-open-mercato.json +1 -18
  927. package/src/modules/directory/subscribers/invalidateOrgScopeCache.ts +1 -4
  928. package/src/modules/directory/utils/organizationScope.ts +3 -9
  929. package/src/modules/entities/api/definitions.ts +3 -55
  930. package/src/modules/entities/api/entities.ts +2 -30
  931. package/src/modules/entities/api/entity-settings.ts +22 -66
  932. package/src/modules/entities/api/records.ts +27 -3
  933. package/src/modules/entities/api/relations/options.ts +25 -11
  934. package/src/modules/entities/api/sidebar-entities.ts +14 -43
  935. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +75 -96
  936. package/src/modules/entities/backend/entities/user/create/page.tsx +7 -16
  937. package/src/modules/entities/cli.ts +21 -238
  938. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -2
  939. package/src/modules/entities/components/UserEntitiesTable.tsx +1 -2
  940. package/src/modules/entities/i18n/de.json +0 -9
  941. package/src/modules/entities/i18n/en.json +0 -9
  942. package/src/modules/entities/i18n/es.json +0 -9
  943. package/src/modules/entities/i18n/pl.json +0 -9
  944. package/src/modules/entities/lib/entityAcl.ts +11 -98
  945. package/src/modules/feature_toggles/components/FeatureGuard.tsx +2 -9
  946. package/src/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.ts +1 -13
  947. package/src/modules/feature_toggles/components/hooks/useFeatureFlagJson.ts +3 -12
  948. package/src/modules/feature_toggles/components/hooks/useFeatureFlagNumber.ts +1 -10
  949. package/src/modules/feature_toggles/components/hooks/useFeatureFlagString.ts +1 -10
  950. package/src/modules/inbox_ops/ai-tools.ts +3 -5
  951. package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.ts +1 -17
  952. package/src/modules/inbox_ops/api/proposals/route.ts +1 -20
  953. package/src/modules/inbox_ops/api/webhook/inbound.ts +12 -14
  954. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +6 -6
  955. package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +19 -24
  956. package/src/modules/inbox_ops/components/proposals/types.ts +0 -1
  957. package/src/modules/inbox_ops/i18n/de.json +0 -3
  958. package/src/modules/inbox_ops/i18n/en.json +0 -3
  959. package/src/modules/inbox_ops/i18n/es.json +0 -3
  960. package/src/modules/inbox_ops/i18n/pl.json +0 -3
  961. package/src/modules/inbox_ops/search.ts +4 -20
  962. package/src/modules/integrations/api/[id]/credentials/route.ts +5 -11
  963. package/src/modules/integrations/api/[id]/health/route.ts +3 -6
  964. package/src/modules/integrations/api/[id]/route.ts +3 -6
  965. package/src/modules/integrations/api/[id]/state/route.ts +3 -6
  966. package/src/modules/integrations/api/[id]/version/route.ts +3 -6
  967. package/src/modules/integrations/api/logs/route.ts +3 -6
  968. package/src/modules/integrations/api/route.ts +3 -6
  969. package/src/modules/integrations/api/umes-read.ts +2 -2
  970. package/src/modules/integrations/backend/integrations/[id]/page.tsx +2 -2
  971. package/src/modules/integrations/lib/organization-scope.ts +25 -5
  972. package/src/modules/integrations/widgets/injection/external-ids/widget.client.tsx +5 -0
  973. package/src/modules/messages/api/[id]/route.ts +0 -21
  974. package/src/modules/messages/api/route.ts +9 -109
  975. package/src/modules/messages/components/ComposeMessagePageClient.tsx +1 -2
  976. package/src/modules/messages/components/MessageDetailPageClient.tsx +2 -3
  977. package/src/modules/messages/components/MessagesInboxPageClient.tsx +1 -2
  978. package/src/modules/messages/components/message-detail/panels/dialogs.tsx +1 -1
  979. package/src/modules/messages/i18n/de.json +0 -2
  980. package/src/modules/messages/i18n/en.json +0 -2
  981. package/src/modules/messages/i18n/es.json +0 -2
  982. package/src/modules/messages/i18n/pl.json +0 -2
  983. package/src/modules/messages/lib/routeHelpers.ts +6 -4
  984. package/src/modules/messages/lib/searchLookup.ts +34 -11
  985. package/src/modules/messages/search.ts +5 -11
  986. package/src/modules/notifications/api/route.ts +3 -123
  987. package/src/modules/notifications/api/unread-count/route.ts +5 -42
  988. package/src/modules/notifications/di.ts +1 -1
  989. package/src/modules/notifications/events.ts +0 -2
  990. package/src/modules/notifications/lib/notificationRecipients.ts +8 -6
  991. package/src/modules/notifications/lib/notificationService.ts +1 -63
  992. package/src/modules/notifications/lib/routeHelpers.ts +2 -19
  993. package/src/modules/payment_gateways/api/capture/route.ts +1 -1
  994. package/src/modules/payment_gateways/api/sessions/route.ts +3 -6
  995. package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +1 -13
  996. package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +2 -3
  997. package/src/modules/payment_gateways/data/entities.ts +2 -13
  998. package/src/modules/payment_gateways/di.ts +2 -28
  999. package/src/modules/payment_gateways/i18n/de.json +1 -8
  1000. package/src/modules/payment_gateways/i18n/en.json +1 -8
  1001. package/src/modules/payment_gateways/i18n/es.json +1 -8
  1002. package/src/modules/payment_gateways/i18n/pl.json +1 -8
  1003. package/src/modules/payment_gateways/lib/gateway-service.ts +18 -114
  1004. package/src/modules/payment_gateways/lib/payment-operation-idempotency.ts +0 -1
  1005. package/src/modules/payment_gateways/lib/session-idempotency.ts +0 -36
  1006. package/src/modules/payment_gateways/migrations/.snapshot-open-mercato.json +1 -44
  1007. package/src/modules/payment_gateways/setup.ts +0 -62
  1008. package/src/modules/planner/components/AvailabilityRulesEditor.tsx +4 -4
  1009. package/src/modules/planner/components/unavailabilityReasons.ts +3 -3
  1010. package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +3 -3
  1011. package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +3 -3
  1012. package/src/modules/portal/frontend/[orgSlug]/portal/page.tsx +3 -3
  1013. package/src/modules/portal/frontend/[orgSlug]/portal/profile/page.tsx +3 -3
  1014. package/src/modules/portal/frontend/[orgSlug]/portal/reset-password/page.tsx +4 -4
  1015. package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +3 -3
  1016. package/src/modules/portal/i18n/de.json +0 -18
  1017. package/src/modules/portal/i18n/en.json +0 -18
  1018. package/src/modules/portal/i18n/es.json +0 -18
  1019. package/src/modules/portal/i18n/pl.json +0 -18
  1020. package/src/modules/progress/AGENTS.md +1 -11
  1021. package/src/modules/progress/lib/progressService.ts +0 -1
  1022. package/src/modules/progress/lib/progressServiceImpl.ts +117 -385
  1023. package/src/modules/query_index/api/openapi.ts +0 -12
  1024. package/src/modules/query_index/api/reindex.ts +0 -15
  1025. package/src/modules/query_index/api/status.ts +136 -238
  1026. package/src/modules/query_index/cli.ts +1 -180
  1027. package/src/modules/query_index/components/QueryIndexesTable.tsx +47 -194
  1028. package/src/modules/query_index/data/entities.ts +0 -7
  1029. package/src/modules/query_index/di.ts +0 -6
  1030. package/src/modules/query_index/i18n/de.json +3 -5
  1031. package/src/modules/query_index/i18n/en.json +3 -5
  1032. package/src/modules/query_index/i18n/es.json +3 -5
  1033. package/src/modules/query_index/i18n/pl.json +3 -5
  1034. package/src/modules/query_index/lib/batch.ts +4 -11
  1035. package/src/modules/query_index/lib/coverage.ts +14 -47
  1036. package/src/modules/query_index/lib/document.ts +4 -35
  1037. package/src/modules/query_index/lib/engine.ts +59 -136
  1038. package/src/modules/query_index/lib/indexer.ts +21 -130
  1039. package/src/modules/query_index/lib/reindexer.ts +40 -62
  1040. package/src/modules/query_index/lib/search-tokens.ts +16 -48
  1041. package/src/modules/query_index/lib/subscriber-scope.ts +7 -2
  1042. package/src/modules/query_index/migrations/.snapshot-open-mercato.json +0 -12
  1043. package/src/modules/query_index/subscribers/coverage_refresh.ts +0 -4
  1044. package/src/modules/query_index/subscribers/delete_one.ts +1 -65
  1045. package/src/modules/query_index/subscribers/upsert_one.ts +1 -68
  1046. package/src/modules/resources/api/resources.ts +0 -2
  1047. package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -2
  1048. package/src/modules/resources/backend/resources/resources/[id]/page.tsx +3 -9
  1049. package/src/modules/resources/backend/resources/resources/page.tsx +1 -2
  1050. package/src/modules/resources/commands/resources.ts +0 -10
  1051. package/src/modules/resources/components/detail/dictionaries.ts +3 -3
  1052. package/src/modules/resources/data/entities.ts +0 -3
  1053. package/src/modules/resources/data/validators.ts +0 -5
  1054. package/src/modules/resources/lib/seeds.ts +9 -16
  1055. package/src/modules/resources/migrations/.snapshot-open-mercato.json +1 -17
  1056. package/src/modules/sales/analytics.ts +0 -4
  1057. package/src/modules/sales/api/document-history/route.ts +0 -1
  1058. package/src/modules/sales/api/documents/factory.ts +3 -28
  1059. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +3 -11
  1060. package/src/modules/sales/backend/sales/documents/create/page.tsx +4 -2
  1061. package/src/modules/sales/commands/documents.ts +31 -298
  1062. package/src/modules/sales/components/documents/ItemsSection.tsx +11 -21
  1063. package/src/modules/sales/components/documents/LineItemDialog.tsx +5 -13
  1064. package/src/modules/sales/components/documents/SalesDocumentForm.tsx +6 -48
  1065. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +1 -6
  1066. package/src/modules/sales/components/useSalesChannelsEnabled.ts +48 -2
  1067. package/src/modules/sales/data/validators.ts +6 -59
  1068. package/src/modules/sales/di.ts +0 -9
  1069. package/src/modules/sales/events.ts +0 -1
  1070. package/src/modules/sales/i18n/de.json +0 -22
  1071. package/src/modules/sales/i18n/en.json +0 -22
  1072. package/src/modules/sales/i18n/es.json +0 -22
  1073. package/src/modules/sales/i18n/pl.json +0 -22
  1074. package/src/modules/sales/lib/historyHelpers.ts +1 -88
  1075. package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +3 -64
  1076. package/src/modules/sales/workflows.ts +7 -10
  1077. package/src/modules/shipping_carriers/api/webhook/[provider]/route.ts +1 -11
  1078. package/src/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.tsx +1 -1
  1079. package/src/modules/staff/api/interceptors.ts +4 -6
  1080. package/src/modules/staff/api/leave-requests.ts +47 -54
  1081. package/src/modules/staff/components/detail/dictionaries.ts +3 -3
  1082. package/src/modules/sync_excel/api/upload/route.ts +2 -15
  1083. package/src/modules/wms/components/backend/ReleaseReservationDialog.tsx +1 -1
  1084. package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +4 -5
  1085. package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +3 -4
  1086. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +2 -3
  1087. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +2 -3
  1088. package/src/modules/wms/components/backend/WmsLotsListPage.tsx +1 -2
  1089. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +2 -3
  1090. package/src/modules/wms/i18n/de.json +0 -2
  1091. package/src/modules/wms/i18n/en.json +0 -2
  1092. package/src/modules/wms/i18n/es.json +0 -2
  1093. package/src/modules/wms/i18n/pl.json +0 -2
  1094. package/src/modules/workflows/backend/definitions/page.tsx +2 -3
  1095. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +4 -13
  1096. package/src/modules/workflows/backend/instances/page.tsx +9 -10
  1097. package/src/modules/workflows/backend/tasks/page.tsx +7 -8
  1098. package/src/modules/workflows/components/ActivitiesEditor.tsx +14 -98
  1099. package/src/modules/workflows/components/BusinessRulesSelector.tsx +1 -1
  1100. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +2 -2
  1101. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +2 -1
  1102. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +2 -1
  1103. package/src/modules/workflows/components/StepsEditor.tsx +2 -2
  1104. package/src/modules/workflows/components/TransitionsEditor.tsx +20 -78
  1105. package/src/modules/workflows/components/WorkflowLegend.tsx +1 -1
  1106. package/src/modules/workflows/components/WorkflowSelector.tsx +1 -1
  1107. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +1 -1
  1108. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +1 -1
  1109. package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +1 -1
  1110. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +1 -1
  1111. package/src/modules/workflows/components/fields/WorkflowSelectorField.tsx +4 -4
  1112. package/src/modules/workflows/data/validators.ts +1 -52
  1113. package/src/modules/workflows/events.ts +0 -1
  1114. package/src/modules/workflows/i18n/de.json +0 -3
  1115. package/src/modules/workflows/i18n/en.json +0 -3
  1116. package/src/modules/workflows/i18n/es.json +0 -3
  1117. package/src/modules/workflows/i18n/pl.json +0 -3
  1118. package/src/modules/workflows/lib/activity-executor.ts +20 -99
  1119. package/src/modules/workflows/lib/format-validation-error.ts +0 -60
  1120. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +11 -27
  1121. package/dist/generated/entities/attachment_quota_reservation/index.js +0 -33
  1122. package/dist/generated/entities/attachment_quota_reservation/index.js.map +0 -7
  1123. package/dist/modules/api_keys/extension-points.js +0 -16
  1124. package/dist/modules/api_keys/extension-points.js.map +0 -7
  1125. package/dist/modules/attachments/lib/quota-recovery-queue.js +0 -9
  1126. package/dist/modules/attachments/lib/quota-recovery-queue.js.map +0 -7
  1127. package/dist/modules/attachments/lib/quota-service.js +0 -224
  1128. package/dist/modules/attachments/lib/quota-service.js.map +0 -7
  1129. package/dist/modules/attachments/migrations/Migration20260709234741_attachments.js +0 -13
  1130. package/dist/modules/attachments/migrations/Migration20260709234741_attachments.js.map +0 -7
  1131. package/dist/modules/attachments/workers/quota-recovery.js +0 -45
  1132. package/dist/modules/attachments/workers/quota-recovery.js.map +0 -7
  1133. package/dist/modules/audit_logs/api/audit-logs/readScope.js +0 -12
  1134. package/dist/modules/audit_logs/api/audit-logs/readScope.js.map +0 -7
  1135. package/dist/modules/audit_logs/extension-points.js +0 -14
  1136. package/dist/modules/audit_logs/extension-points.js.map +0 -7
  1137. package/dist/modules/auth/extension-points.js +0 -21
  1138. package/dist/modules/auth/extension-points.js.map +0 -7
  1139. package/dist/modules/business_rules/api/openmercato-call-options/route.js +0 -85
  1140. package/dist/modules/business_rules/api/openmercato-call-options/route.js.map +0 -7
  1141. package/dist/modules/business_rules/events.js +0 -13
  1142. package/dist/modules/business_rules/events.js.map +0 -7
  1143. package/dist/modules/business_rules/extension-points.js +0 -13
  1144. package/dist/modules/business_rules/extension-points.js.map +0 -7
  1145. package/dist/modules/business_rules/lib/openmercato-call-options-types.js +0 -5
  1146. package/dist/modules/business_rules/lib/openmercato-call-options-types.js.map +0 -7
  1147. package/dist/modules/business_rules/lib/openmercato-call-options.js +0 -231
  1148. package/dist/modules/business_rules/lib/openmercato-call-options.js.map +0 -7
  1149. package/dist/modules/catalog/extension-points.js +0 -27
  1150. package/dist/modules/catalog/extension-points.js.map +0 -7
  1151. package/dist/modules/communication_channels/extension-points.js +0 -20
  1152. package/dist/modules/communication_channels/extension-points.js.map +0 -7
  1153. package/dist/modules/configs/extension-points.js +0 -18
  1154. package/dist/modules/configs/extension-points.js.map +0 -7
  1155. package/dist/modules/currencies/extension-points.js +0 -14
  1156. package/dist/modules/currencies/extension-points.js.map +0 -7
  1157. package/dist/modules/currencies/services/baseCurrencyService.js +0 -42
  1158. package/dist/modules/currencies/services/baseCurrencyService.js.map +0 -7
  1159. package/dist/modules/customer_accounts/emails/CustomerInvitationEmail.js +0 -26
  1160. package/dist/modules/customer_accounts/emails/CustomerInvitationEmail.js.map +0 -7
  1161. package/dist/modules/customer_accounts/extension-points.js +0 -14
  1162. package/dist/modules/customer_accounts/extension-points.js.map +0 -7
  1163. package/dist/modules/customer_accounts/lib/invitationEmail.js +0 -35
  1164. package/dist/modules/customer_accounts/lib/invitationEmail.js.map +0 -7
  1165. package/dist/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.js +0 -13
  1166. package/dist/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.js.map +0 -7
  1167. package/dist/modules/customers/extension-points.js +0 -42
  1168. package/dist/modules/customers/extension-points.js.map +0 -7
  1169. package/dist/modules/customers/lib/dealStatus.js +0 -38
  1170. package/dist/modules/customers/lib/dealStatus.js.map +0 -7
  1171. package/dist/modules/customers/lib/dealsSummaryQueries.js +0 -144
  1172. package/dist/modules/customers/lib/dealsSummaryQueries.js.map +0 -7
  1173. package/dist/modules/customers/lib/optionalBaseCurrency.js +0 -19
  1174. package/dist/modules/customers/lib/optionalBaseCurrency.js.map +0 -7
  1175. package/dist/modules/customers/migrations/Migration20260723210000_customers.js +0 -15
  1176. package/dist/modules/customers/migrations/Migration20260723210000_customers.js.map +0 -7
  1177. package/dist/modules/dashboards/components/UnlabelledAmountNotice.js +0 -33
  1178. package/dist/modules/dashboards/components/UnlabelledAmountNotice.js.map +0 -7
  1179. package/dist/modules/dashboards/lib/exactDecimal.js +0 -69
  1180. package/dist/modules/dashboards/lib/exactDecimal.js.map +0 -7
  1181. package/dist/modules/dashboards/lib/optionalBaseCurrency.js +0 -11
  1182. package/dist/modules/dashboards/lib/optionalBaseCurrency.js.map +0 -7
  1183. package/dist/modules/dashboards/subscribers/invalidateWidgetDataCache.js +0 -26
  1184. package/dist/modules/dashboards/subscribers/invalidateWidgetDataCache.js.map +0 -7
  1185. package/dist/modules/data_sync/extension-points.js +0 -13
  1186. package/dist/modules/data_sync/extension-points.js.map +0 -7
  1187. package/dist/modules/data_sync/lib/queue-policy.js +0 -15
  1188. package/dist/modules/data_sync/lib/queue-policy.js.map +0 -7
  1189. package/dist/modules/design_system/acl.js +0 -9
  1190. package/dist/modules/design_system/acl.js.map +0 -7
  1191. package/dist/modules/design_system/backend/design-system/page.js +0 -11
  1192. package/dist/modules/design_system/backend/design-system/page.js.map +0 -7
  1193. package/dist/modules/design_system/backend/design-system/page.meta.js +0 -15
  1194. package/dist/modules/design_system/backend/design-system/page.meta.js.map +0 -7
  1195. package/dist/modules/design_system/gallery/components/CodeSnippet.js +0 -52
  1196. package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +0 -7
  1197. package/dist/modules/design_system/gallery/components/EntryCard.js +0 -63
  1198. package/dist/modules/design_system/gallery/components/EntryCard.js.map +0 -7
  1199. package/dist/modules/design_system/gallery/components/GalleryShell.js +0 -163
  1200. package/dist/modules/design_system/gallery/components/GalleryShell.js.map +0 -7
  1201. package/dist/modules/design_system/gallery/components/VariantPreview.js +0 -9
  1202. package/dist/modules/design_system/gallery/components/VariantPreview.js.map +0 -7
  1203. package/dist/modules/design_system/gallery/entries/banners.js +0 -186
  1204. package/dist/modules/design_system/gallery/entries/banners.js.map +0 -7
  1205. package/dist/modules/design_system/gallery/entries/buttons.js +0 -361
  1206. package/dist/modules/design_system/gallery/entries/buttons.js.map +0 -7
  1207. package/dist/modules/design_system/gallery/entries/charts.js +0 -457
  1208. package/dist/modules/design_system/gallery/entries/charts.js.map +0 -7
  1209. package/dist/modules/design_system/gallery/entries/dates.js +0 -306
  1210. package/dist/modules/design_system/gallery/entries/dates.js.map +0 -7
  1211. package/dist/modules/design_system/gallery/entries/detail.js +0 -358
  1212. package/dist/modules/design_system/gallery/entries/detail.js.map +0 -7
  1213. package/dist/modules/design_system/gallery/entries/display.js +0 -785
  1214. package/dist/modules/design_system/gallery/entries/display.js.map +0 -7
  1215. package/dist/modules/design_system/gallery/entries/feedback.js +0 -658
  1216. package/dist/modules/design_system/gallery/entries/feedback.js.map +0 -7
  1217. package/dist/modules/design_system/gallery/entries/filters.js +0 -505
  1218. package/dist/modules/design_system/gallery/entries/filters.js.map +0 -7
  1219. package/dist/modules/design_system/gallery/entries/foundations.js +0 -453
  1220. package/dist/modules/design_system/gallery/entries/foundations.js.map +0 -7
  1221. package/dist/modules/design_system/gallery/entries/icons.js +0 -140
  1222. package/dist/modules/design_system/gallery/entries/icons.js.map +0 -7
  1223. package/dist/modules/design_system/gallery/entries/inputs.js +0 -1217
  1224. package/dist/modules/design_system/gallery/entries/inputs.js.map +0 -7
  1225. package/dist/modules/design_system/gallery/entries/messages.js +0 -334
  1226. package/dist/modules/design_system/gallery/entries/messages.js.map +0 -7
  1227. package/dist/modules/design_system/gallery/entries/navigation.js +0 -475
  1228. package/dist/modules/design_system/gallery/entries/navigation.js.map +0 -7
  1229. package/dist/modules/design_system/gallery/entries/notifications.js +0 -257
  1230. package/dist/modules/design_system/gallery/entries/notifications.js.map +0 -7
  1231. package/dist/modules/design_system/gallery/entries/overlays.js +0 -576
  1232. package/dist/modules/design_system/gallery/entries/overlays.js.map +0 -7
  1233. package/dist/modules/design_system/gallery/entries/scaffolding.js +0 -378
  1234. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +0 -7
  1235. package/dist/modules/design_system/gallery/entries/schedule.js +0 -297
  1236. package/dist/modules/design_system/gallery/entries/schedule.js.map +0 -7
  1237. package/dist/modules/design_system/gallery/registry.js +0 -139
  1238. package/dist/modules/design_system/gallery/registry.js.map +0 -7
  1239. package/dist/modules/design_system/gallery/types.js +0 -1
  1240. package/dist/modules/design_system/gallery/types.js.map +0 -7
  1241. package/dist/modules/design_system/index.js +0 -9
  1242. package/dist/modules/design_system/index.js.map +0 -7
  1243. package/dist/modules/design_system/setup.js +0 -14
  1244. package/dist/modules/design_system/setup.js.map +0 -7
  1245. package/dist/modules/dictionaries/lib/fetchAllEntries.js +0 -43
  1246. package/dist/modules/dictionaries/lib/fetchAllEntries.js.map +0 -7
  1247. package/dist/modules/directory/extension-points.js +0 -14
  1248. package/dist/modules/directory/extension-points.js.map +0 -7
  1249. package/dist/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.js +0 -13
  1250. package/dist/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.js.map +0 -7
  1251. package/dist/modules/entities/backend/config/settings/page.js +0 -10
  1252. package/dist/modules/entities/backend/config/settings/page.js.map +0 -7
  1253. package/dist/modules/entities/backend/config/settings/page.meta.js +0 -36
  1254. package/dist/modules/entities/backend/config/settings/page.meta.js.map +0 -7
  1255. package/dist/modules/entities/components/EntitySettingsManager.js +0 -136
  1256. package/dist/modules/entities/components/EntitySettingsManager.js.map +0 -7
  1257. package/dist/modules/entities/components/RecordListRelationCell.js +0 -63
  1258. package/dist/modules/entities/components/RecordListRelationCell.js.map +0 -7
  1259. package/dist/modules/entities/components/recordListRelationDisplays.js +0 -80
  1260. package/dist/modules/entities/components/recordListRelationDisplays.js.map +0 -7
  1261. package/dist/modules/entities/extension-points.js +0 -21
  1262. package/dist/modules/entities/extension-points.js.map +0 -7
  1263. package/dist/modules/feature_toggles/components/hooks/staleTime.js +0 -5
  1264. package/dist/modules/feature_toggles/components/hooks/staleTime.js.map +0 -7
  1265. package/dist/modules/inbox_ops/subscribers/search-reindex-proposal-created.js +0 -32
  1266. package/dist/modules/inbox_ops/subscribers/search-reindex-proposal-created.js.map +0 -7
  1267. package/dist/modules/integrations/extension-points.js +0 -30
  1268. package/dist/modules/integrations/extension-points.js.map +0 -7
  1269. package/dist/modules/integrations/widgets/injection/external-ids/widget.js +0 -14
  1270. package/dist/modules/integrations/widgets/injection/external-ids/widget.js.map +0 -7
  1271. package/dist/modules/messages/extension-points.js +0 -16
  1272. package/dist/modules/messages/extension-points.js.map +0 -7
  1273. package/dist/modules/messages/lib/participantScope.js +0 -15
  1274. package/dist/modules/messages/lib/participantScope.js.map +0 -7
  1275. package/dist/modules/notifications/lib/notificationScope.js +0 -26
  1276. package/dist/modules/notifications/lib/notificationScope.js.map +0 -7
  1277. package/dist/modules/payment_gateways/extension-points.js +0 -19
  1278. package/dist/modules/payment_gateways/extension-points.js.map +0 -7
  1279. package/dist/modules/payment_gateways/lib/capture-ledger.js +0 -183
  1280. package/dist/modules/payment_gateways/lib/capture-ledger.js.map +0 -7
  1281. package/dist/modules/payment_gateways/lib/order-amount-reconciliation.js +0 -58
  1282. package/dist/modules/payment_gateways/lib/order-amount-reconciliation.js.map +0 -7
  1283. package/dist/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.js +0 -16
  1284. package/dist/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.js.map +0 -7
  1285. package/dist/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.js +0 -18
  1286. package/dist/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.js.map +0 -7
  1287. package/dist/modules/payment_gateways/workers/session-initialization-prune.js +0 -50
  1288. package/dist/modules/payment_gateways/workers/session-initialization-prune.js.map +0 -7
  1289. package/dist/modules/portal/extension-points.js +0 -32
  1290. package/dist/modules/portal/extension-points.js.map +0 -7
  1291. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.js +0 -134
  1292. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.js.map +0 -7
  1293. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.js +0 -11
  1294. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.js.map +0 -7
  1295. package/dist/modules/portal/lib/navigation.js +0 -7
  1296. package/dist/modules/portal/lib/navigation.js.map +0 -7
  1297. package/dist/modules/query_index/events.js +0 -20
  1298. package/dist/modules/query_index/events.js.map +0 -7
  1299. package/dist/modules/query_index/extension-points.js +0 -13
  1300. package/dist/modules/query_index/extension-points.js.map +0 -7
  1301. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js +0 -17
  1302. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js.map +0 -7
  1303. package/dist/modules/resources/extension-points.js +0 -14
  1304. package/dist/modules/resources/extension-points.js.map +0 -7
  1305. package/dist/modules/resources/migrations/Migration20260608231000.js +0 -13
  1306. package/dist/modules/resources/migrations/Migration20260608231000.js.map +0 -7
  1307. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +0 -167
  1308. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +0 -7
  1309. package/dist/modules/sales/extension-points.js +0 -36
  1310. package/dist/modules/sales/extension-points.js.map +0 -7
  1311. package/dist/modules/sales/services/paymentOrderTotalResolver.js +0 -52
  1312. package/dist/modules/sales/services/paymentOrderTotalResolver.js.map +0 -7
  1313. package/dist/modules/wms/extension-points.js +0 -26
  1314. package/dist/modules/wms/extension-points.js.map +0 -7
  1315. package/dist/modules/workflows/extension-points.js +0 -15
  1316. package/dist/modules/workflows/extension-points.js.map +0 -7
  1317. package/dist/modules/workflows/widgets/injection/order-approval/context-keys.js +0 -10
  1318. package/dist/modules/workflows/widgets/injection/order-approval/context-keys.js.map +0 -7
  1319. package/generated/entities/attachment_quota_reservation/index.ts +0 -15
  1320. package/src/modules/api_keys/extension-points.ts +0 -13
  1321. package/src/modules/api_keys/i18n/ko.json +0 -42
  1322. package/src/modules/attachments/i18n/ko.json +0 -175
  1323. package/src/modules/attachments/lib/quota-recovery-queue.ts +0 -16
  1324. package/src/modules/attachments/lib/quota-service.ts +0 -442
  1325. package/src/modules/attachments/migrations/Migration20260709234741_attachments.ts +0 -12
  1326. package/src/modules/attachments/workers/quota-recovery.ts +0 -68
  1327. package/src/modules/audit_logs/api/audit-logs/readScope.ts +0 -28
  1328. package/src/modules/audit_logs/extension-points.ts +0 -11
  1329. package/src/modules/audit_logs/i18n/ko.json +0 -66
  1330. package/src/modules/auth/extension-points.ts +0 -18
  1331. package/src/modules/auth/i18n/ko.json +0 -255
  1332. package/src/modules/business_rules/api/openmercato-call-options/route.ts +0 -94
  1333. package/src/modules/business_rules/events.ts +0 -10
  1334. package/src/modules/business_rules/extension-points.ts +0 -10
  1335. package/src/modules/business_rules/i18n/ko.json +0 -396
  1336. package/src/modules/business_rules/lib/openmercato-call-options-types.ts +0 -31
  1337. package/src/modules/business_rules/lib/openmercato-call-options.ts +0 -297
  1338. package/src/modules/catalog/extension-points.ts +0 -24
  1339. package/src/modules/catalog/i18n/ko.json +0 -723
  1340. package/src/modules/communication_channels/extension-points.ts +0 -17
  1341. package/src/modules/communication_channels/i18n/ko.json +0 -138
  1342. package/src/modules/configs/extension-points.ts +0 -15
  1343. package/src/modules/configs/i18n/ko.json +0 -197
  1344. package/src/modules/currencies/extension-points.ts +0 -11
  1345. package/src/modules/currencies/i18n/ko.json +0 -160
  1346. package/src/modules/currencies/services/baseCurrencyService.ts +0 -59
  1347. package/src/modules/customer_accounts/emails/CustomerInvitationEmail.tsx +0 -45
  1348. package/src/modules/customer_accounts/extension-points.ts +0 -11
  1349. package/src/modules/customer_accounts/i18n/ko.json +0 -354
  1350. package/src/modules/customer_accounts/lib/invitationEmail.ts +0 -42
  1351. package/src/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.ts +0 -13
  1352. package/src/modules/customers/extension-points.ts +0 -40
  1353. package/src/modules/customers/i18n/ko.json +0 -2855
  1354. package/src/modules/customers/lib/dealStatus.ts +0 -48
  1355. package/src/modules/customers/lib/dealsSummaryQueries.ts +0 -211
  1356. package/src/modules/customers/lib/optionalBaseCurrency.ts +0 -34
  1357. package/src/modules/customers/migrations/Migration20260723210000_customers.ts +0 -15
  1358. package/src/modules/dashboards/components/UnlabelledAmountNotice.tsx +0 -43
  1359. package/src/modules/dashboards/i18n/ko.json +0 -118
  1360. package/src/modules/dashboards/lib/exactDecimal.ts +0 -96
  1361. package/src/modules/dashboards/lib/optionalBaseCurrency.ts +0 -22
  1362. package/src/modules/dashboards/subscribers/invalidateWidgetDataCache.ts +0 -32
  1363. package/src/modules/data_sync/extension-points.ts +0 -10
  1364. package/src/modules/data_sync/i18n/ko.json +0 -125
  1365. package/src/modules/data_sync/lib/queue-policy.ts +0 -30
  1366. package/src/modules/design_system/AGENTS.md +0 -34
  1367. package/src/modules/design_system/acl.ts +0 -5
  1368. package/src/modules/design_system/backend/design-system/page.meta.ts +0 -11
  1369. package/src/modules/design_system/backend/design-system/page.tsx +0 -14
  1370. package/src/modules/design_system/gallery/components/CodeSnippet.tsx +0 -55
  1371. package/src/modules/design_system/gallery/components/EntryCard.tsx +0 -95
  1372. package/src/modules/design_system/gallery/components/GalleryShell.tsx +0 -206
  1373. package/src/modules/design_system/gallery/components/VariantPreview.tsx +0 -15
  1374. package/src/modules/design_system/gallery/entries/banners.tsx +0 -226
  1375. package/src/modules/design_system/gallery/entries/buttons.tsx +0 -422
  1376. package/src/modules/design_system/gallery/entries/charts.tsx +0 -518
  1377. package/src/modules/design_system/gallery/entries/dates.tsx +0 -325
  1378. package/src/modules/design_system/gallery/entries/detail.tsx +0 -403
  1379. package/src/modules/design_system/gallery/entries/display.tsx +0 -893
  1380. package/src/modules/design_system/gallery/entries/feedback.tsx +0 -746
  1381. package/src/modules/design_system/gallery/entries/filters.tsx +0 -570
  1382. package/src/modules/design_system/gallery/entries/foundations.tsx +0 -529
  1383. package/src/modules/design_system/gallery/entries/icons.tsx +0 -168
  1384. package/src/modules/design_system/gallery/entries/inputs.tsx +0 -1516
  1385. package/src/modules/design_system/gallery/entries/messages.tsx +0 -339
  1386. package/src/modules/design_system/gallery/entries/navigation.tsx +0 -573
  1387. package/src/modules/design_system/gallery/entries/notifications.tsx +0 -285
  1388. package/src/modules/design_system/gallery/entries/overlays.tsx +0 -677
  1389. package/src/modules/design_system/gallery/entries/scaffolding.tsx +0 -430
  1390. package/src/modules/design_system/gallery/entries/schedule.tsx +0 -307
  1391. package/src/modules/design_system/gallery/registry.ts +0 -152
  1392. package/src/modules/design_system/gallery/types.ts +0 -32
  1393. package/src/modules/design_system/i18n/.hardcoded-allowlist.json +0 -71
  1394. package/src/modules/design_system/i18n/de.json +0 -58
  1395. package/src/modules/design_system/i18n/en.json +0 -58
  1396. package/src/modules/design_system/i18n/es.json +0 -58
  1397. package/src/modules/design_system/i18n/ko.json +0 -58
  1398. package/src/modules/design_system/i18n/pl.json +0 -58
  1399. package/src/modules/design_system/index.ts +0 -7
  1400. package/src/modules/design_system/setup.ts +0 -12
  1401. package/src/modules/dictionaries/i18n/ko.json +0 -130
  1402. package/src/modules/dictionaries/lib/fetchAllEntries.ts +0 -72
  1403. package/src/modules/directory/extension-points.ts +0 -11
  1404. package/src/modules/directory/i18n/ko.json +0 -105
  1405. package/src/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.ts +0 -13
  1406. package/src/modules/entities/backend/config/settings/page.meta.ts +0 -34
  1407. package/src/modules/entities/backend/config/settings/page.tsx +0 -12
  1408. package/src/modules/entities/components/EntitySettingsManager.tsx +0 -160
  1409. package/src/modules/entities/components/RecordListRelationCell.tsx +0 -90
  1410. package/src/modules/entities/components/recordListRelationDisplays.ts +0 -109
  1411. package/src/modules/entities/extension-points.ts +0 -18
  1412. package/src/modules/entities/i18n/ko.json +0 -260
  1413. package/src/modules/feature_toggles/components/hooks/staleTime.ts +0 -5
  1414. package/src/modules/feature_toggles/i18n/ko.json +0 -96
  1415. package/src/modules/inbox_ops/i18n/ko.json +0 -196
  1416. package/src/modules/inbox_ops/subscribers/search-reindex-proposal-created.ts +0 -39
  1417. package/src/modules/integrations/extension-points.ts +0 -27
  1418. package/src/modules/integrations/i18n/ko.json +0 -129
  1419. package/src/modules/integrations/widgets/injection/external-ids/widget.ts +0 -13
  1420. package/src/modules/messages/extension-points.ts +0 -13
  1421. package/src/modules/messages/i18n/ko.json +0 -263
  1422. package/src/modules/messages/lib/participantScope.ts +0 -64
  1423. package/src/modules/notifications/i18n/ko.json +0 -55
  1424. package/src/modules/notifications/lib/notificationScope.ts +0 -40
  1425. package/src/modules/payment_gateways/extension-points.ts +0 -16
  1426. package/src/modules/payment_gateways/i18n/ko.json +0 -87
  1427. package/src/modules/payment_gateways/lib/capture-ledger.ts +0 -260
  1428. package/src/modules/payment_gateways/lib/order-amount-reconciliation.ts +0 -93
  1429. package/src/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.ts +0 -21
  1430. package/src/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.ts +0 -17
  1431. package/src/modules/payment_gateways/workers/session-initialization-prune.ts +0 -63
  1432. package/src/modules/planner/i18n/ko.json +0 -565
  1433. package/src/modules/portal/extension-points.ts +0 -30
  1434. package/src/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.ts +0 -9
  1435. package/src/modules/portal/frontend/[orgSlug]/portal/invite/page.tsx +0 -164
  1436. package/src/modules/portal/i18n/ko.json +0 -143
  1437. package/src/modules/portal/lib/navigation.ts +0 -3
  1438. package/src/modules/progress/i18n/ko.json +0 -20
  1439. package/src/modules/query_index/events.ts +0 -17
  1440. package/src/modules/query_index/extension-points.ts +0 -10
  1441. package/src/modules/query_index/i18n/ko.json +0 -69
  1442. package/src/modules/query_index/migrations/Migration20260731105052_query_index.ts +0 -35
  1443. package/src/modules/resources/extension-points.ts +0 -11
  1444. package/src/modules/resources/i18n/ko.json +0 -770
  1445. package/src/modules/resources/migrations/Migration20260608231000.ts +0 -13
  1446. package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +0 -198
  1447. package/src/modules/sales/extension-points.ts +0 -33
  1448. package/src/modules/sales/i18n/ko.json +0 -1442
  1449. package/src/modules/sales/services/paymentOrderTotalResolver.ts +0 -67
  1450. package/src/modules/shipping_carriers/i18n/ko.json +0 -85
  1451. package/src/modules/staff/i18n/ko.json +0 -1162
  1452. package/src/modules/sync_excel/i18n/ko.json +0 -107
  1453. package/src/modules/translations/i18n/ko.json +0 -45
  1454. package/src/modules/wms/extension-points.ts +0 -23
  1455. package/src/modules/wms/i18n/ko.json +0 -1053
  1456. package/src/modules/workflows/extension-points.ts +0 -12
  1457. package/src/modules/workflows/i18n/ko.json +0 -1204
  1458. package/src/modules/workflows/widgets/injection/order-approval/context-keys.ts +0 -18
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
- import { extensionPoints } from "@open-mercato/core/modules/customers/extension-points";
5
4
  import Link from "next/link";
6
5
  import { Building2, UserSearch, Users } from "lucide-react";
7
6
  import { EmptyState } from "@open-mercato/ui/primitives/empty-state";
@@ -62,6 +61,11 @@ function DealDetailPage({ params }) {
62
61
  closeSchedule
63
62
  } = useScheduleDialog();
64
63
  const formWrapperRef = React.useRef(null);
64
+ const initialTab = React.useMemo(() => resolveLegacyTab(searchParams?.get("tab")), [searchParams]);
65
+ const [activeTab, setActiveTab] = React.useState(initialTab);
66
+ React.useEffect(() => {
67
+ setActiveTab(initialTab);
68
+ }, [initialTab]);
65
69
  const currentDealId = data?.deal.id ?? id;
66
70
  const { injectionContext, runMutationWithContext } = useDealMutationContext({
67
71
  currentDealId,
@@ -86,15 +90,6 @@ function DealDetailPage({ params }) {
86
90
  data,
87
91
  setData
88
92
  });
89
- const injectedTabIds = React.useMemo(() => injectedTabs.map((tab) => tab.id), [injectedTabs]);
90
- const initialTab = React.useMemo(
91
- () => resolveLegacyTab(searchParams?.get("tab"), injectedTabIds),
92
- [injectedTabIds, searchParams]
93
- );
94
- const [activeTab, setActiveTab] = React.useState(initialTab);
95
- React.useEffect(() => {
96
- setActiveTab(initialTab);
97
- }, [initialTab]);
98
93
  const { searchPeoplePage, fetchPeopleByIds, searchCompaniesPage, fetchCompaniesByIds } = useDealAssociationLookups({
99
94
  excludeLinkedDealId: data?.deal.id ?? null
100
95
  });
@@ -113,8 +108,7 @@ function DealDetailPage({ params }) {
113
108
  () => data ? [...data.people, ...data.companies].map((entry) => ({
114
109
  id: entry.id,
115
110
  label: entry.subtitle ? `${entry.label} \xB7 ${entry.subtitle}` : entry.label,
116
- kind: entry.kind,
117
- isPrimary: entry.isPrimary === true
111
+ kind: entry.kind
118
112
  })) : [],
119
113
  [data]
120
114
  );
@@ -123,8 +117,7 @@ function DealDetailPage({ params }) {
123
117
  setSelectedActivityEntityId((current) => {
124
118
  if (activityEntities.length === 1) return activityEntities[0].id;
125
119
  if (current && activityEntities.some((entry) => entry.id === current)) return current;
126
- const primary = activityEntities.find((entry) => entry.isPrimary);
127
- return (primary ?? activityEntities[0])?.id ?? null;
120
+ return null;
128
121
  });
129
122
  }, [activityEntities]);
130
123
  const selectedActivityEntity = React.useMemo(
@@ -318,7 +311,7 @@ function DealDetailPage({ params }) {
318
311
  showAssociationsGroup: false,
319
312
  showVersionHistory: false,
320
313
  showCancelAction: false,
321
- injectionSpotId: extensionPoints.hosts.dealForm.spotId,
314
+ injectionSpotId: "crud-form:customers.deal",
322
315
  optimisticLockUpdatedAt: data.deal.updatedAt,
323
316
  onDirtyChange: setIsDirty,
324
317
  initialPipelineOptions: formPipelineOptions,
@@ -525,7 +518,7 @@ function DealDetailPage({ params }) {
525
518
  })() });
526
519
  return /* @__PURE__ */ jsx(Page, { children: /* @__PURE__ */ jsxs(PageBody, { children: [
527
520
  /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
528
- /* @__PURE__ */ jsx(InjectionSpot, { spotId: extensionPoints.hosts.dealHeader.spotId, context: injectionContext, data }),
521
+ /* @__PURE__ */ jsx(InjectionSpot, { spotId: "detail:customers.deal:header", context: injectionContext, data }),
529
522
  /* @__PURE__ */ jsx(
530
523
  DealDetailHeader,
531
524
  {
@@ -544,7 +537,7 @@ function DealDetailPage({ params }) {
544
537
  isSaving
545
538
  }
546
539
  ),
547
- /* @__PURE__ */ jsx(InjectionSpot, { spotId: extensionPoints.hosts.dealStatusBadges.spotId, context: injectionContext, data, onDataChange: setData }),
540
+ /* @__PURE__ */ jsx(InjectionSpot, { spotId: "detail:customers.deal:status-badges", context: injectionContext, data }),
548
541
  /* @__PURE__ */ jsx(
549
542
  PipelineStepper,
550
543
  {
@@ -587,7 +580,7 @@ function DealDetailPage({ params }) {
587
580
  )
588
581
  }
589
582
  ),
590
- /* @__PURE__ */ jsx(InjectionSpot, { spotId: extensionPoints.hosts.dealFooter.spotId, context: injectionContext, data })
583
+ /* @__PURE__ */ jsx(InjectionSpot, { spotId: "detail:customers.deal:footer", context: injectionContext, data })
591
584
  ] }),
592
585
  ConfirmDialogElement,
593
586
  selectedActivityEntity ? /* @__PURE__ */ jsx(
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../src/modules/customers/backend/customers/deals/%5Bid%5D/page.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { extensionPoints } from '@open-mercato/core/modules/customers/extension-points'\nimport Link from 'next/link'\nimport { Building2, UserSearch, Users } from 'lucide-react'\nimport { EmptyState } from '@open-mercato/ui/primitives/empty-state'\nimport { useRouter, useSearchParams, usePathname } from 'next/navigation'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { AttachmentsSection, ErrorMessage, LoadingMessage, NotesSection, RecordNotFoundState } from '@open-mercato/ui/backend/detail'\nimport { InjectionSpot } from '@open-mercato/ui/backend/injection/InjectionSpot'\nimport { buildRecordInjectionContext, useSetCurrentRecordInjectionContext } from '@open-mercato/ui/backend/injection/recordContext'\nimport { useConfirmDialog } from '@open-mercato/ui/backend/confirm-dialog'\nimport { CollapsibleZoneLayout } from '@open-mercato/ui/backend/crud/CollapsibleZoneLayout'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { createTranslatorWithFallback } from '@open-mercato/shared/lib/i18n/translate'\nimport { E } from '#generated/entities.ids.generated'\n\nimport { ActivitiesSection } from '../../../../components/detail/ActivitiesSection'\nimport { ChangelogTab } from '../../../../components/detail/ChangelogTab'\nimport { DealClosureActionBar } from '../../../../components/detail/DealClosureActionBar'\nimport { DealDetailHeader } from '../../../../components/detail/DealDetailHeader'\nimport { DealDetailTabs, resolveLegacyTab, type DealTabId } from '../../../../components/detail/DealDetailTabs'\nimport { DealForm, useDealAssociationLookups } from '../../../../components/detail/DealForm'\nimport { DealLinkedEntitiesTab } from '../../../../components/detail/DealLinkedEntitiesTab'\nimport { ConfirmDealLostDialog } from '../../../../components/detail/ConfirmDealLostDialog'\nimport { DealLostSummaryDialog } from '../../../../components/detail/DealLostSummaryDialog'\nimport { DealWonPopup } from '../../../../components/detail/DealWonPopup'\nimport { InlineActivityComposer } from '../../../../components/detail/InlineActivityComposer'\nimport { PipelineStepper } from '../../../../components/detail/PipelineStepper'\nimport { PlannedActivitiesSection } from '../../../../components/detail/PlannedActivitiesSection'\nimport { ScheduleActivityDialog, type ScheduleActivityEditData } from '../../../../components/detail/ScheduleActivityDialog'\nimport { createCustomerNotesAdapter } from '../../../../components/detail/notesAdapter'\nimport type { InteractionSummary } from '../../../../components/detail/types'\nimport { readMarkdownPreferenceCookie, writeMarkdownPreferenceCookie } from '../../../../lib/markdownPreference'\nimport { ICON_SUGGESTIONS } from '../../../../lib/dictionaries'\nimport { renderDictionaryColor, renderDictionaryIcon } from '@open-mercato/core/modules/dictionaries/components/dictionaryAppearance'\n\nimport { formatCurrency, startOfNextQuarter } from './hooks/formatters'\nimport type { DealDetailPayload } from './hooks/types'\nimport { useDealActivities } from './hooks/useDealActivities'\nimport { useDealAssociations } from './hooks/useDealAssociations'\nimport { useDealClosure } from './hooks/useDealClosure'\nimport { useDealData } from './hooks/useDealData'\nimport { useDealFormHandlers } from './hooks/useDealFormHandlers'\nimport { useDealInjectedTabs } from './hooks/useDealInjectedTabs'\nimport { useDealMutationContext } from './hooks/useDealMutationContext'\nimport { useDealPipeline } from './hooks/useDealPipeline'\nimport { useScheduleDialog } from './hooks/useScheduleDialog'\n\nexport default function DealDetailPage({ params }: { params?: { id?: string } }) {\n const id = params?.id ?? ''\n const t = useT()\n const router = useRouter()\n const searchParams = useSearchParams()\n const pathname = usePathname()\n const { confirm, ConfirmDialogElement } = useConfirmDialog()\n const detailTranslator = React.useMemo(() => createTranslatorWithFallback(t), [t])\n\n const { data, setData, isLoading, error, isNotFound, loadData } = useDealData(id)\n const [isDirty, setIsDirty] = React.useState(false)\n const {\n scheduleDialogOpen,\n scheduleEditData,\n openSchedule,\n openEdit: openScheduleEdit,\n closeSchedule,\n } = useScheduleDialog()\n const formWrapperRef = React.useRef<HTMLDivElement>(null)\n\n const currentDealId = data?.deal.id ?? id\n const { injectionContext, runMutationWithContext } = useDealMutationContext({\n currentDealId,\n fallbackId: id,\n data,\n })\n\n // Publish page-load record context with explicit `updatedAt`/`data` to the\n // AppShell-owned `backend:record:current` mount. The deal path is already in the\n // widget's allowlist (presence works) but supplied no version/record payload \u2014\n // this gives the merge dialog its action-log base and field-diff source.\n useSetCurrentRecordInjectionContext(\n buildRecordInjectionContext({\n resourceKind: 'customers.deal',\n resourceId: data?.deal.id ?? null,\n updatedAt: data?.deal.updatedAt ?? null,\n data: data as Record<string, unknown> | null,\n path: pathname,\n }),\n )\n\n const notesAdapter = React.useMemo(\n () => createCustomerNotesAdapter(detailTranslator, { runMutation: runMutationWithContext }),\n [detailTranslator, runMutationWithContext],\n )\n\n const { injectedTabs, injectedTabMap } = useDealInjectedTabs({\n injectionContext,\n data,\n setData,\n })\n\n const injectedTabIds = React.useMemo(() => injectedTabs.map((tab) => tab.id), [injectedTabs])\n const initialTab = React.useMemo(\n () => resolveLegacyTab(searchParams?.get('tab'), injectedTabIds),\n [injectedTabIds, searchParams],\n )\n const [activeTab, setActiveTab] = React.useState<DealTabId>(initialTab)\n\n React.useEffect(() => {\n setActiveTab(initialTab)\n }, [initialTab])\n\n const { searchPeoplePage, fetchPeopleByIds, searchCompaniesPage, fetchCompaniesByIds } = useDealAssociationLookups({\n excludeLinkedDealId: data?.deal.id ?? null,\n })\n\n const {\n plannedActivities,\n activityRefreshKey,\n loadPlannedActivities,\n handleActivityCreated,\n handleMarkDone,\n handleCancelActivity,\n } = useDealActivities({ dealId: id, runMutationWithContext })\n\n React.useEffect(() => {\n void Promise.all([loadData({ cache: true }), loadPlannedActivities({ cache: true })])\n }, [loadData, loadPlannedActivities])\n\n const activityEntities = React.useMemo(\n () => (data\n ? [...data.people, ...data.companies].map((entry) => ({\n id: entry.id,\n label: entry.subtitle ? `${entry.label} \u00B7 ${entry.subtitle}` : entry.label,\n kind: entry.kind,\n isPrimary: entry.isPrimary === true,\n }))\n : []),\n [data],\n )\n const [selectedActivityEntityId, setSelectedActivityEntityId] = React.useState<string | null>(null)\n\n React.useEffect(() => {\n setSelectedActivityEntityId((current) => {\n if (activityEntities.length === 1) return activityEntities[0].id\n if (current && activityEntities.some((entry) => entry.id === current)) return current\n const primary = activityEntities.find((entry) => entry.isPrimary)\n return (primary ?? activityEntities[0])?.id ?? null\n })\n }, [activityEntities])\n\n const selectedActivityEntity = React.useMemo(\n () => activityEntities.find((entry) => entry.id === selectedActivityEntityId) ?? null,\n [activityEntities, selectedActivityEntityId],\n )\n\n const dealOptions = React.useMemo(\n () => data ? [{ id: data.deal.id, label: data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal') }] : [],\n [data, t],\n )\n\n const entityOptions = React.useMemo(\n () => activityEntities.map(({ id, label }) => ({ id, label })),\n [activityEntities],\n )\n\n const confirmDiscardIfDirty = React.useCallback(async () => {\n if (!isDirty) return true\n return confirm({\n title: t('customers.deals.detail.unsavedTitle', 'Discard unsaved changes?'),\n description: t(\n 'customers.deals.detail.unsavedDescription',\n 'You have unsaved edits in this deal. Save them first or continue to discard them.',\n ),\n confirmText: t('customers.deals.detail.unsavedConfirm', 'Discard changes'),\n cancelText: t('customers.deals.detail.unsavedCancel', 'Keep editing'),\n variant: 'destructive',\n })\n }, [confirm, isDirty, t])\n\n const {\n peopleEditorIds,\n companiesEditorIds,\n peopleSaving,\n companiesSaving,\n handlePeopleAssociationsChange,\n handleCompaniesAssociationsChange,\n loadLinkedPeoplePage,\n loadLinkedCompaniesPage,\n } = useDealAssociations({\n currentDealId,\n data,\n setData,\n runMutationWithContext,\n onRefresh: () => { void loadData() },\n })\n\n const { isStageSaving, handleStageChange } = useDealPipeline({\n currentDealId,\n data,\n runMutationWithContext,\n confirmDiscardIfDirty,\n onStageChanged: loadData,\n })\n\n const {\n lostDialogOpen,\n wonPopupOpen,\n lostPopupOpen,\n wonStats,\n lostStats,\n openLostDialog,\n closeLostDialog,\n closeWonPopup,\n closeLostPopup,\n handleWon,\n handleLostConfirm,\n } = useDealClosure({\n currentDealId,\n dealUpdatedAt: data?.deal.updatedAt ?? null,\n runMutationWithContext,\n confirmDiscardIfDirty,\n onClosed: loadData,\n })\n\n const handleTabChange = React.useCallback(async (tab: DealTabId) => {\n if (!(await confirmDiscardIfDirty())) return\n setActiveTab(tab)\n const nextParams = new URLSearchParams(searchParams?.toString() ?? '')\n nextParams.set('tab', tab)\n router.replace(`/backend/customers/deals/${encodeURIComponent(id)}?${nextParams.toString()}`, { scroll: false })\n }, [confirmDiscardIfDirty, id, router, searchParams])\n\n const { isSaving, handleFormSubmit, handleDelete, handleHeaderSave } = useDealFormHandlers({\n data,\n currentDealId,\n loadData,\n runMutationWithContext,\n formWrapperRef,\n confirm,\n })\n\n const handleEditActivity = React.useCallback((activity: InteractionSummary) => {\n if (activity.entityId && activityEntities.some((entry) => entry.id === activity.entityId)) {\n setSelectedActivityEntityId(activity.entityId)\n }\n // Forward `customValues` so per-type chip state (callPhoneNumber,\n // callDirection, taskPriority) round-trips on edit (#1808 phone persistence).\n // Forward `occurredAt` so historical activity edits prefill from the\n // original moment instead of \"today\" (#1807 prefill).\n const rawActivity = activity as unknown as Record<string, unknown>\n openScheduleEdit({\n id: activity.id,\n updatedAt: typeof rawActivity.updatedAt === 'string' ? rawActivity.updatedAt as string : typeof rawActivity.updated_at === 'string' ? rawActivity.updated_at as string : null,\n interactionType: activity.interactionType,\n title: activity.title ?? null,\n body: activity.body ?? null,\n scheduledAt: activity.scheduledAt ?? null,\n occurredAt: activity.occurredAt ?? null,\n durationMinutes: activity.duration ?? null,\n location: activity.location ?? null,\n allDay: activity.allDay ?? null,\n recurrenceRule: activity.recurrenceRule ?? null,\n recurrenceEnd: activity.recurrenceEnd ?? null,\n participants: activity.participants ?? null,\n reminderMinutes: activity.reminderMinutes ?? null,\n visibility: activity.visibility ?? null,\n linkedEntities: activity.linkedEntities ?? null,\n guestPermissions: activity.guestPermissions ?? null,\n ...(rawActivity.customValues && typeof rawActivity.customValues === 'object'\n ? { customValues: rawActivity.customValues as Record<string, unknown> }\n : {}),\n ...(typeof rawActivity.phoneNumber === 'string'\n ? { phoneNumber: rawActivity.phoneNumber as string }\n : {}),\n } as ScheduleActivityEditData & { customValues?: Record<string, unknown> | null; phoneNumber?: string | null })\n }, [activityEntities, openScheduleEdit])\n\n const handleViewDashboard = React.useCallback(() => {\n closeWonPopup()\n router.push('/backend')\n }, [closeWonPopup, router])\n\n const handleBackToPipeline = React.useCallback(() => {\n closeWonPopup()\n closeLostPopup()\n router.push('/backend/customers/deals/pipeline')\n }, [closeLostPopup, closeWonPopup, router])\n\n const handleScheduleLostFollowUp = React.useCallback(() => {\n if (!data || !selectedActivityEntity) return\n const nextQuarterDate = startOfNextQuarter(new Date())\n closeLostPopup()\n openScheduleEdit({\n id: '',\n interactionType: 'task',\n title: data.deal.title\n ? t('customers.deals.detail.lost.followUpTitle', 'Revisit {{title}}', { title: data.deal.title })\n : t('customers.deals.detail.lost.followUpFallbackTitle', 'Revisit closed deal'),\n body: data.deal.lossNotes ?? null,\n scheduledAt: nextQuarterDate.toISOString(),\n durationMinutes: 30,\n location: null,\n allDay: false,\n recurrenceRule: null,\n recurrenceEnd: null,\n participants: null,\n reminderMinutes: 1440,\n visibility: 'team',\n linkedEntities: [\n {\n id: data.deal.id,\n type: 'deal',\n label: data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal'),\n },\n ],\n })\n }, [closeLostPopup, data, openScheduleEdit, selectedActivityEntity, t])\n\n const currentPipelineName = data\n ? data.pipelineName ?? wonStats?.pipelineName ?? lostStats?.pipelineName ?? null\n : wonStats?.pipelineName ?? lostStats?.pipelineName ?? null\n const formPipelineOptions = React.useMemo(\n () => data?.deal.pipelineId\n ? [{\n id: data.deal.pipelineId,\n name: currentPipelineName ?? t('customers.deals.detail.pipeline.defaultName', 'Current pipeline'),\n isDefault: false,\n }]\n : [],\n [currentPipelineName, data?.deal.pipelineId, t],\n )\n\n if (isLoading) {\n return (\n <Page>\n <PageBody>\n <LoadingMessage label={t('customers.deals.detail.loading', 'Loading deal\u2026')} />\n </PageBody>\n </Page>\n )\n }\n\n if (isNotFound) {\n return (\n <Page>\n <PageBody>\n <RecordNotFoundState\n label={t('customers.deals.detail.error.notFound', 'Deal not found.')}\n backHref=\"/backend/customers/deals\"\n backLabel={t('customers.deals.detail.actions.backToList', 'Back to deals')}\n />\n </PageBody>\n </Page>\n )\n }\n\n if (error || !data) {\n return (\n <Page>\n <PageBody>\n <ErrorMessage\n label={error ?? t('customers.deals.detail.error.load', 'Failed to load deal.')}\n action={\n <Button asChild variant=\"outline\" size=\"sm\">\n <Link href=\"/backend/customers/deals\">\n {t('customers.deals.detail.actions.backToList', 'Back to deals')}\n </Link>\n </Button>\n }\n />\n </PageBody>\n </Page>\n )\n }\n\n const amountLabel = formatCurrency(data.deal.valueAmount, data.deal.valueCurrency)\n const dealName = data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')\n\n const zone1Content = (\n <div ref={formWrapperRef}>\n <DealForm\n mode=\"edit\"\n embedded\n trackDirtyWhenEmbedded\n hideFooterActions\n singleColumnGroups\n showAssociationsGroup={false}\n showVersionHistory={false}\n showCancelAction={false}\n injectionSpotId={extensionPoints.hosts.dealForm.spotId}\n optimisticLockUpdatedAt={data.deal.updatedAt}\n onDirtyChange={setIsDirty}\n initialPipelineOptions={formPipelineOptions}\n initialPipelineStageOptions={data.pipelineStages}\n collapsibleGroups={{ pageType: 'deal-detail-v3', chevronPosition: 'right' }}\n sortableGroups={{ pageType: 'deal-detail-v3' }}\n initialValues={{\n ...data.deal,\n valueAmount:\n typeof data.deal.valueAmount === 'string' && data.deal.valueAmount.trim().length\n ? Number(data.deal.valueAmount)\n : null,\n personIds: data.linkedPersonIds,\n companyIds: data.linkedCompanyIds,\n customFields: data.customFields,\n ...Object.fromEntries(Object.entries(data.customFields ?? {}).map(([key, value]) => [`cf_${key}`, value])),\n }}\n onSubmit={handleFormSubmit}\n onCancel={() => { void loadData() }}\n onDelete={handleDelete}\n />\n </div>\n )\n\n const zone2Content = (\n <div className=\"rounded-[10px] border border-border bg-card px-5 py-5\">\n {(() => {\n const injected = injectedTabMap.get(activeTab)\n if (injected) return injected()\n\n if (activeTab === 'activities') {\n const activityEntitySelection = activityEntities.length > 1 ? (\n <div className=\"rounded-[10px] border border-border bg-muted/20 px-5 py-5\">\n <label htmlFor=\"deal-activity-entity\" className=\"text-sm font-semibold text-foreground\">\n {t('customers.deals.detail.activities.selectEntityLabel', 'Choose customer record')}\n </label>\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {t(\n 'customers.deals.detail.activities.selectEntityDescription',\n 'Pick the person or company that should own new deal activities and follow-ups.',\n )}\n </div>\n <select\n id=\"deal-activity-entity\"\n aria-label={t('customers.deals.detail.activities.selectEntityLabel', 'Choose customer record')}\n className=\"mt-4 h-9 w-full rounded border border-muted-foreground/40 bg-background px-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n value={selectedActivityEntityId ?? ''}\n onChange={(event) => setSelectedActivityEntityId(event.target.value || null)}\n >\n <option value=\"\">\n {t('customers.deals.detail.activities.selectEntityPlaceholder', 'Select a person or company')}\n </option>\n {activityEntities.map((entry) => (\n <option key={entry.id} value={entry.id}>\n {entry.label}\n </option>\n ))}\n </select>\n </div>\n ) : null\n\n return (\n <div className=\"space-y-4\">\n {activityEntities.length > 1 ? activityEntitySelection : null}\n {activityEntities.length === 0 ? (\n <div className=\"rounded-[10px] border border-border bg-muted/20 px-5 py-5\">\n <div className=\"text-sm font-semibold text-foreground\">\n {t('customers.deals.detail.activities.linkEntityTitle', 'Link a person or company first')}\n </div>\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {t('customers.deals.detail.activities.linkEntityDescription', 'Activities on a deal still need a customer record for timeline ownership.')}\n </div>\n <div className=\"mt-4 flex gap-2\">\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => handleTabChange('people')}>\n {t('customers.deals.detail.tabs.people', 'People')}\n </Button>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => handleTabChange('companies')}>\n {t('customers.deals.detail.tabs.companies', 'Companies')}\n </Button>\n </div>\n </div>\n ) : selectedActivityEntity ? (\n <InlineActivityComposer\n entityType={selectedActivityEntity.kind}\n entityId={selectedActivityEntity.id}\n dealId={data.deal.id}\n onActivityCreated={() => { void handleActivityCreated() }}\n runGuardedMutation={runMutationWithContext}\n onScheduleRequested={openSchedule}\n />\n ) : (\n <EmptyState\n size=\"sm\"\n icon={<UserSearch className=\"h-8 w-8\" aria-hidden=\"true\" />}\n title={t('customers.deals.detail.activities.selectEntityRequiredTitle', 'Choose a person or company to continue')}\n description={t(\n 'customers.deals.detail.activities.selectEntityRequiredDescription',\n 'Select the customer record that should receive new deal activities before logging or scheduling anything.',\n )}\n />\n )}\n <PlannedActivitiesSection\n activities={plannedActivities}\n onComplete={(interactionId) => { void handleMarkDone(interactionId) }}\n onSchedule={selectedActivityEntity ? openSchedule : undefined}\n onEdit={handleEditActivity}\n onCancel={(interactionId) => { void handleCancelActivity(interactionId) }}\n />\n {selectedActivityEntity ? (\n <ActivitiesSection\n entityId={selectedActivityEntity.id}\n entityName={selectedActivityEntity.label}\n dealId={data.deal.id}\n dealOptions={dealOptions}\n entityOptions={entityOptions}\n defaultEntityId={selectedActivityEntity.id}\n addActionLabel={t('customers.deals.detail.activitiesAdd', 'Log activity')}\n emptyState={{\n title: t('customers.deals.detail.activitiesEmptyTitle', 'No activities yet'),\n actionLabel: t('customers.deals.detail.activitiesEmptyAction', 'Log activity'),\n }}\n runGuardedMutation={runMutationWithContext}\n onDataRefresh={() => { void handleActivityCreated() }}\n refreshKey={activityRefreshKey}\n onEditActivity={handleEditActivity}\n />\n ) : null}\n </div>\n )\n }\n\n if (activeTab === 'people') {\n return (\n <DealLinkedEntitiesTab\n entityLabel={t('customers.deals.detail.tabs.peopleSingular', 'Person')}\n entityLabelPlural={t('customers.deals.detail.tabs.people', 'People')}\n manageLabel={t('customers.deals.detail.peopleEditorTitle', 'Manage linked people')}\n searchPlaceholder={t('customers.deals.detail.peopleSearch', 'Search linked people\u2026')}\n linkedItems={data.people}\n linkedCount={data.counts.people}\n selectedIds={peopleEditorIds}\n disabled={peopleSaving || isSaving}\n savePending={peopleSaving}\n hrefBuilder={(personId) => `/backend/customers/people-v2/${encodeURIComponent(personId)}`}\n onSaveSelection={(next) => handlePeopleAssociationsChange(next)}\n loadLinkedPage={loadLinkedPeoplePage}\n searchEntities={searchPeoplePage}\n fetchEntitiesByIds={fetchPeopleByIds}\n icon={<Users className=\"size-4\" />}\n />\n )\n }\n\n if (activeTab === 'companies') {\n return (\n <DealLinkedEntitiesTab\n entityLabel={t('customers.deals.detail.tabs.companySingular', 'Company')}\n entityLabelPlural={t('customers.deals.detail.tabs.companies', 'Companies')}\n manageLabel={t('customers.deals.detail.companiesEditorTitle', 'Manage linked companies')}\n searchPlaceholder={t('customers.deals.detail.companiesSearch', 'Search linked companies\u2026')}\n linkedItems={data.companies}\n linkedCount={data.counts.companies}\n selectedIds={companiesEditorIds}\n disabled={companiesSaving || isSaving}\n savePending={companiesSaving}\n hrefBuilder={(companyId) => `/backend/customers/companies-v2/${encodeURIComponent(companyId)}`}\n onSaveSelection={(next) => handleCompaniesAssociationsChange(next)}\n loadLinkedPage={loadLinkedCompaniesPage}\n searchEntities={searchCompaniesPage}\n fetchEntitiesByIds={fetchCompaniesByIds}\n icon={<Building2 className=\"size-4\" />}\n />\n )\n }\n\n if (activeTab === 'notes') {\n return (\n <NotesSection\n entityId={null}\n dealId={data.deal.id}\n dealOptions={dealOptions}\n entityOptions={entityOptions}\n emptyLabel={t('customers.deals.detail.notesEmpty', 'No notes yet.')}\n viewerUserId={data.viewer?.userId ?? null}\n viewerName={data.viewer?.name ?? null}\n viewerEmail={data.viewer?.email ?? null}\n addActionLabel={t('customers.deals.detail.notesAdd', 'Add note')}\n emptyState={{\n title: t('customers.deals.detail.notesEmptyTitle', 'Keep everyone in the loop'),\n actionLabel: t('customers.deals.detail.notesEmptyAction', 'Add a note'),\n }}\n translator={detailTranslator}\n dataAdapter={notesAdapter}\n renderIcon={renderDictionaryIcon}\n renderColor={renderDictionaryColor}\n iconSuggestions={ICON_SUGGESTIONS}\n readMarkdownPreference={readMarkdownPreferenceCookie}\n writeMarkdownPreference={writeMarkdownPreferenceCookie}\n />\n )\n }\n\n if (activeTab === 'files') {\n return (\n <AttachmentsSection\n entityId={E.customers.customer_deal}\n recordId={data.deal.id}\n title={t('customers.deals.detail.tabs.files', 'Files')}\n description={t('customers.deals.detail.files.subtitle', 'Upload and manage files linked to this deal.')}\n />\n )\n }\n\n if (activeTab === 'changelog') {\n return <ChangelogTab entityId={data.deal.id} entityType=\"deal\" />\n }\n\n return null\n })()}\n </div>\n )\n\n return (\n <Page>\n <PageBody>\n <div className=\"space-y-6\">\n <InjectionSpot spotId={extensionPoints.hosts.dealHeader.spotId} context={injectionContext} data={data} />\n\n <DealDetailHeader\n deal={data.deal}\n owner={data.owner}\n people={data.people}\n companies={data.companies}\n pipelineName={currentPipelineName}\n stageOptions={data.pipelineStages}\n currentStageId={data.deal.pipelineStageId}\n onStageChange={handleStageChange}\n isStageSaving={isStageSaving}\n onSave={handleHeaderSave}\n onDelete={handleDelete}\n isDirty={isDirty}\n isSaving={isSaving}\n />\n\n <InjectionSpot spotId={extensionPoints.hosts.dealStatusBadges.spotId} context={injectionContext} data={data} onDataChange={setData} />\n\n <PipelineStepper\n stages={data.pipelineStages}\n transitions={data.stageTransitions}\n currentStageId={data.deal.pipelineStageId}\n pipelineName={currentPipelineName}\n closureOutcome={data.deal.closureOutcome}\n footer={data.deal.closureOutcome ? null : (\n <DealClosureActionBar\n embedded\n closureOutcome={data.deal.closureOutcome}\n onWon={() => { void handleWon() }}\n onLost={openLostDialog}\n />\n )}\n />\n\n <DealDetailTabs\n activeTab={activeTab}\n onTabChange={handleTabChange}\n injectedTabs={injectedTabs.map((tab) => ({ id: tab.id, label: tab.label }))}\n peopleCount={data.counts.people}\n companiesCount={data.counts.companies}\n >\n <CollapsibleZoneLayout\n pageType=\"deal-detail-v3\"\n entityName={dealName}\n isDirty={isDirty}\n zone1DefaultWidth=\"540px\"\n zone1={zone1Content}\n zone2={zone2Content}\n />\n </DealDetailTabs>\n\n <InjectionSpot spotId={extensionPoints.hosts.dealFooter.spotId} context={injectionContext} data={data} />\n </div>\n\n {ConfirmDialogElement}\n\n {selectedActivityEntity ? (\n <ScheduleActivityDialog\n open={scheduleDialogOpen}\n onClose={closeSchedule}\n entityId={selectedActivityEntity.id}\n dealId={data.deal.id}\n entityType={selectedActivityEntity.kind}\n entityName={selectedActivityEntity.label}\n companyName={selectedActivityEntity.kind === 'company' ? selectedActivityEntity.label : data.companies[0]?.label ?? null}\n onActivityCreated={() => { void handleActivityCreated() }}\n editData={scheduleEditData}\n />\n ) : null}\n\n <ConfirmDealLostDialog\n open={lostDialogOpen}\n onClose={closeLostDialog}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n dealValue={amountLabel}\n companyName={data.companies[0]?.label ?? null}\n onConfirm={handleLostConfirm}\n />\n\n <DealWonPopup\n open={wonPopupOpen}\n onClose={closeWonPopup}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n stats={wonStats}\n onViewDashboard={handleViewDashboard}\n onBackToPipeline={handleBackToPipeline}\n />\n\n <DealLostSummaryDialog\n open={lostPopupOpen}\n onClose={closeLostPopup}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n lossNotes={data.deal.lossNotes}\n stats={lostStats}\n onBackToPipeline={handleBackToPipeline}\n onScheduleFollowUp={selectedActivityEntity ? handleScheduleLostFollowUp : undefined}\n />\n </PageBody>\n </Page>\n )\n}\n"],
5
- "mappings": ";AAmVU,cAgGI,YAhGJ;AAjVV,YAAY,WAAW;AACvB,SAAS,uBAAuB;AAChC,OAAO,UAAU;AACjB,SAAS,WAAW,YAAY,aAAa;AAC7C,SAAS,kBAAkB;AAC3B,SAAS,WAAW,iBAAiB,mBAAmB;AACxD,SAAS,MAAM,gBAAgB;AAC/B,SAAS,cAAc;AACvB,SAAS,oBAAoB,cAAc,gBAAgB,cAAc,2BAA2B;AACpG,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B,2CAA2C;AACjF,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AACtC,SAAS,YAAY;AACrB,SAAS,oCAAoC;AAC7C,SAAS,SAAS;AAElB,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,gBAAgB,wBAAwC;AACjE,SAAS,UAAU,iCAAiC;AACpD,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC,SAAS,gCAAgC;AACzC,SAAS,8BAA6D;AACtE,SAAS,kCAAkC;AAE3C,SAAS,8BAA8B,qCAAqC;AAC5E,SAAS,wBAAwB;AACjC,SAAS,uBAAuB,4BAA4B;AAE5D,SAAS,gBAAgB,0BAA0B;AAEnD,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAEnB,SAAR,eAAgC,EAAE,OAAO,GAAiC;AAC/E,QAAM,KAAK,QAAQ,MAAM;AACzB,QAAM,IAAI,KAAK;AACf,QAAM,SAAS,UAAU;AACzB,QAAM,eAAe,gBAAgB;AACrC,QAAM,WAAW,YAAY;AAC7B,QAAM,EAAE,SAAS,qBAAqB,IAAI,iBAAiB;AAC3D,QAAM,mBAAmB,MAAM,QAAQ,MAAM,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjF,QAAM,EAAE,MAAM,SAAS,WAAW,OAAO,YAAY,SAAS,IAAI,YAAY,EAAE;AAChF,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAS,KAAK;AAClD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EACF,IAAI,kBAAkB;AACtB,QAAM,iBAAiB,MAAM,OAAuB,IAAI;AAExD,QAAM,gBAAgB,MAAM,KAAK,MAAM;AACvC,QAAM,EAAE,kBAAkB,uBAAuB,IAAI,uBAAuB;AAAA,IAC1E;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AAMD;AAAA,IACE,4BAA4B;AAAA,MAC1B,cAAc;AAAA,MACd,YAAY,MAAM,KAAK,MAAM;AAAA,MAC7B,WAAW,MAAM,KAAK,aAAa;AAAA,MACnC;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,MAAM;AAAA,IACzB,MAAM,2BAA2B,kBAAkB,EAAE,aAAa,uBAAuB,CAAC;AAAA,IAC1F,CAAC,kBAAkB,sBAAsB;AAAA,EAC3C;AAEA,QAAM,EAAE,cAAc,eAAe,IAAI,oBAAoB;AAAA,IAC3D;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,iBAAiB,MAAM,QAAQ,MAAM,aAAa,IAAI,CAAC,QAAQ,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC;AAC5F,QAAM,aAAa,MAAM;AAAA,IACvB,MAAM,iBAAiB,cAAc,IAAI,KAAK,GAAG,cAAc;AAAA,IAC/D,CAAC,gBAAgB,YAAY;AAAA,EAC/B;AACA,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAoB,UAAU;AAEtE,QAAM,UAAU,MAAM;AACpB,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,EAAE,kBAAkB,kBAAkB,qBAAqB,oBAAoB,IAAI,0BAA0B;AAAA,IACjH,qBAAqB,MAAM,KAAK,MAAM;AAAA,EACxC,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,kBAAkB,EAAE,QAAQ,IAAI,uBAAuB,CAAC;AAE5D,QAAM,UAAU,MAAM;AACpB,SAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,GAAG,sBAAsB,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,EACtF,GAAG,CAAC,UAAU,qBAAqB,CAAC;AAEpC,QAAM,mBAAmB,MAAM;AAAA,IAC7B,MAAO,OACH,CAAC,GAAG,KAAK,QAAQ,GAAG,KAAK,SAAS,EAAE,IAAI,CAAC,WAAW;AAAA,MAClD,IAAI,MAAM;AAAA,MACV,OAAO,MAAM,WAAW,GAAG,MAAM,KAAK,SAAM,MAAM,QAAQ,KAAK,MAAM;AAAA,MACrE,MAAM,MAAM;AAAA,MACZ,WAAW,MAAM,cAAc;AAAA,IACjC,EAAE,IACF,CAAC;AAAA,IACL,CAAC,IAAI;AAAA,EACP;AACA,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,MAAM,SAAwB,IAAI;AAElG,QAAM,UAAU,MAAM;AACpB,gCAA4B,CAAC,YAAY;AACvC,UAAI,iBAAiB,WAAW,EAAG,QAAO,iBAAiB,CAAC,EAAE;AAC9D,UAAI,WAAW,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,OAAO,EAAG,QAAO;AAC9E,YAAM,UAAU,iBAAiB,KAAK,CAAC,UAAU,MAAM,SAAS;AAChE,cAAQ,WAAW,iBAAiB,CAAC,IAAI,MAAM;AAAA,IACjD,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,yBAAyB,MAAM;AAAA,IACnC,MAAM,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,wBAAwB,KAAK;AAAA,IACjF,CAAC,kBAAkB,wBAAwB;AAAA,EAC7C;AAEA,QAAM,cAAc,MAAM;AAAA,IACxB,MAAM,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe,EAAE,CAAC,IAAI,CAAC;AAAA,IACxH,CAAC,MAAM,CAAC;AAAA,EACV;AAEA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,MAAM,iBAAiB,IAAI,CAAC,EAAE,IAAAA,KAAI,MAAM,OAAO,EAAE,IAAAA,KAAI,MAAM,EAAE;AAAA,IAC7D,CAAC,gBAAgB;AAAA,EACnB;AAEA,QAAM,wBAAwB,MAAM,YAAY,YAAY;AAC1D,QAAI,CAAC,QAAS,QAAO;AACrB,WAAO,QAAQ;AAAA,MACb,OAAO,EAAE,uCAAuC,0BAA0B;AAAA,MAC1E,aAAa;AAAA,QACX;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAa,EAAE,yCAAyC,iBAAiB;AAAA,MACzE,YAAY,EAAE,wCAAwC,cAAc;AAAA,MACpE,SAAS;AAAA,IACX,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,SAAS,CAAC,CAAC;AAExB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,MAAM;AAAE,WAAK,SAAS;AAAA,IAAE;AAAA,EACrC,CAAC;AAED,QAAM,EAAE,eAAe,kBAAkB,IAAI,gBAAgB;AAAA,IAC3D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,eAAe;AAAA,IACjB;AAAA,IACA,eAAe,MAAM,KAAK,aAAa;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ,CAAC;AAED,QAAM,kBAAkB,MAAM,YAAY,OAAO,QAAmB;AAClE,QAAI,CAAE,MAAM,sBAAsB,EAAI;AACtC,iBAAa,GAAG;AAChB,UAAM,aAAa,IAAI,gBAAgB,cAAc,SAAS,KAAK,EAAE;AACrE,eAAW,IAAI,OAAO,GAAG;AACzB,WAAO,QAAQ,4BAA4B,mBAAmB,EAAE,CAAC,IAAI,WAAW,SAAS,CAAC,IAAI,EAAE,QAAQ,MAAM,CAAC;AAAA,EACjH,GAAG,CAAC,uBAAuB,IAAI,QAAQ,YAAY,CAAC;AAEpD,QAAM,EAAE,UAAU,kBAAkB,cAAc,iBAAiB,IAAI,oBAAoB;AAAA,IACzF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,qBAAqB,MAAM,YAAY,CAAC,aAAiC;AAC7E,QAAI,SAAS,YAAY,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,SAAS,QAAQ,GAAG;AACzF,kCAA4B,SAAS,QAAQ;AAAA,IAC/C;AAKA,UAAM,cAAc;AACpB,qBAAiB;AAAA,MACf,IAAI,SAAS;AAAA,MACb,WAAW,OAAO,YAAY,cAAc,WAAW,YAAY,YAAsB,OAAO,YAAY,eAAe,WAAW,YAAY,aAAuB;AAAA,MACzK,iBAAiB,SAAS;AAAA,MAC1B,OAAO,SAAS,SAAS;AAAA,MACzB,MAAM,SAAS,QAAQ;AAAA,MACvB,aAAa,SAAS,eAAe;AAAA,MACrC,YAAY,SAAS,cAAc;AAAA,MACnC,iBAAiB,SAAS,YAAY;AAAA,MACtC,UAAU,SAAS,YAAY;AAAA,MAC/B,QAAQ,SAAS,UAAU;AAAA,MAC3B,gBAAgB,SAAS,kBAAkB;AAAA,MAC3C,eAAe,SAAS,iBAAiB;AAAA,MACzC,cAAc,SAAS,gBAAgB;AAAA,MACvC,iBAAiB,SAAS,mBAAmB;AAAA,MAC7C,YAAY,SAAS,cAAc;AAAA,MACnC,gBAAgB,SAAS,kBAAkB;AAAA,MAC3C,kBAAkB,SAAS,oBAAoB;AAAA,MAC/C,GAAI,YAAY,gBAAgB,OAAO,YAAY,iBAAiB,WAChE,EAAE,cAAc,YAAY,aAAwC,IACpE,CAAC;AAAA,MACL,GAAI,OAAO,YAAY,gBAAgB,WACnC,EAAE,aAAa,YAAY,YAAsB,IACjD,CAAC;AAAA,IACP,CAA8G;AAAA,EAChH,GAAG,CAAC,kBAAkB,gBAAgB,CAAC;AAEvC,QAAM,sBAAsB,MAAM,YAAY,MAAM;AAClD,kBAAc;AACd,WAAO,KAAK,UAAU;AAAA,EACxB,GAAG,CAAC,eAAe,MAAM,CAAC;AAE1B,QAAM,uBAAuB,MAAM,YAAY,MAAM;AACnD,kBAAc;AACd,mBAAe;AACf,WAAO,KAAK,mCAAmC;AAAA,EACjD,GAAG,CAAC,gBAAgB,eAAe,MAAM,CAAC;AAE1C,QAAM,6BAA6B,MAAM,YAAY,MAAM;AACzD,QAAI,CAAC,QAAQ,CAAC,uBAAwB;AACtC,UAAM,kBAAkB,mBAAmB,oBAAI,KAAK,CAAC;AACrD,mBAAe;AACf,qBAAiB;AAAA,MACf,IAAI;AAAA,MACJ,iBAAiB;AAAA,MACjB,OAAO,KAAK,KAAK,QACb,EAAE,6CAA6C,qBAAqB,EAAE,OAAO,KAAK,KAAK,MAAM,CAAC,IAC9F,EAAE,qDAAqD,qBAAqB;AAAA,MAChF,MAAM,KAAK,KAAK,aAAa;AAAA,MAC7B,aAAa,gBAAgB,YAAY;AAAA,MACzC,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,gBAAgB;AAAA,QACd;AAAA,UACE,IAAI,KAAK,KAAK;AAAA,UACd,MAAM;AAAA,UACN,OAAO,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAChF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,MAAM,kBAAkB,wBAAwB,CAAC,CAAC;AAEtE,QAAM,sBAAsB,OACxB,KAAK,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,OAC1E,UAAU,gBAAgB,WAAW,gBAAgB;AACzD,QAAM,sBAAsB,MAAM;AAAA,IAChC,MAAM,MAAM,KAAK,aACb,CAAC;AAAA,MACC,IAAI,KAAK,KAAK;AAAA,MACd,MAAM,uBAAuB,EAAE,+CAA+C,kBAAkB;AAAA,MAChG,WAAW;AAAA,IACb,CAAC,IACD,CAAC;AAAA,IACL,CAAC,qBAAqB,MAAM,KAAK,YAAY,CAAC;AAAA,EAChD;AAEA,MAAI,WAAW;AACb,WACE,oBAAC,QACC,8BAAC,YACC,8BAAC,kBAAe,OAAO,EAAE,kCAAkC,oBAAe,GAAG,GAC/E,GACF;AAAA,EAEJ;AAEA,MAAI,YAAY;AACd,WACE,oBAAC,QACC,8BAAC,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,EAAE,yCAAyC,iBAAiB;AAAA,QACnE,UAAS;AAAA,QACT,WAAW,EAAE,6CAA6C,eAAe;AAAA;AAAA,IAC3E,GACF,GACF;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,MAAM;AAClB,WACE,oBAAC,QACC,8BAAC,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,SAAS,EAAE,qCAAqC,sBAAsB;AAAA,QAC7E,QACE,oBAAC,UAAO,SAAO,MAAC,SAAQ,WAAU,MAAK,MACrC,8BAAC,QAAK,MAAK,4BACR,YAAE,6CAA6C,eAAe,GACjE,GACF;AAAA;AAAA,IAEJ,GACF,GACF;AAAA,EAEJ;AAEA,QAAM,cAAc,eAAe,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa;AACjF,QAAM,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAExF,QAAM,eACJ,oBAAC,SAAI,KAAK,gBACR;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAQ;AAAA,MACR,wBAAsB;AAAA,MACtB,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,iBAAiB,gBAAgB,MAAM,SAAS;AAAA,MAChD,yBAAyB,KAAK,KAAK;AAAA,MACnC,eAAe;AAAA,MACf,wBAAwB;AAAA,MACxB,6BAA6B,KAAK;AAAA,MAClC,mBAAmB,EAAE,UAAU,kBAAkB,iBAAiB,QAAQ;AAAA,MAC1E,gBAAgB,EAAE,UAAU,iBAAiB;AAAA,MAC7C,eAAe;AAAA,QACb,GAAG,KAAK;AAAA,QACR,aACE,OAAO,KAAK,KAAK,gBAAgB,YAAY,KAAK,KAAK,YAAY,KAAK,EAAE,SACtE,OAAO,KAAK,KAAK,WAAW,IAC5B;AAAA,QACN,WAAW,KAAK;AAAA,QAChB,YAAY,KAAK;AAAA,QACjB,cAAc,KAAK;AAAA,QACnB,GAAG,OAAO,YAAY,OAAO,QAAQ,KAAK,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC;AAAA,MAC3G;AAAA,MACA,UAAU;AAAA,MACV,UAAU,MAAM;AAAE,aAAK,SAAS;AAAA,MAAE;AAAA,MAClC,UAAU;AAAA;AAAA,EACZ,GACF;AAGF,QAAM,eACJ,oBAAC,SAAI,WAAU,yDACX,iBAAM;AACN,UAAM,WAAW,eAAe,IAAI,SAAS;AAC7C,QAAI,SAAU,QAAO,SAAS;AAE9B,QAAI,cAAc,cAAc;AAC9B,YAAM,0BAA0B,iBAAiB,SAAS,IACxD,qBAAC,SAAI,WAAU,6DACb;AAAA,4BAAC,WAAM,SAAQ,wBAAuB,WAAU,yCAC7C,YAAE,uDAAuD,wBAAwB,GACpF;AAAA,QACA,oBAAC,SAAI,WAAU,sCACZ;AAAA,UACC;AAAA,UACA;AAAA,QACF,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,cAAY,EAAE,uDAAuD,wBAAwB;AAAA,YAC7F,WAAU;AAAA,YACV,OAAO,4BAA4B;AAAA,YACnC,UAAU,CAAC,UAAU,4BAA4B,MAAM,OAAO,SAAS,IAAI;AAAA,YAE3E;AAAA,kCAAC,YAAO,OAAM,IACX,YAAE,6DAA6D,4BAA4B,GAC9F;AAAA,cACC,iBAAiB,IAAI,CAAC,UACrB,oBAAC,YAAsB,OAAO,MAAM,IACjC,gBAAM,SADI,MAAM,EAEnB,CACD;AAAA;AAAA;AAAA,QACH;AAAA,SACF,IACE;AAEJ,aACE,qBAAC,SAAI,WAAU,aACZ;AAAA,yBAAiB,SAAS,IAAI,0BAA0B;AAAA,QACxD,iBAAiB,WAAW,IAC3B,qBAAC,SAAI,WAAU,6DACb;AAAA,8BAAC,SAAI,WAAU,yCACZ,YAAE,qDAAqD,gCAAgC,GAC1F;AAAA,UACA,oBAAC,SAAI,WAAU,sCACZ,YAAE,2DAA2D,2EAA2E,GAC3I;AAAA,UACA,qBAAC,SAAI,WAAU,mBACb;AAAA,gCAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,gBAAgB,QAAQ,GACtF,YAAE,sCAAsC,QAAQ,GACnD;AAAA,YACA,oBAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,gBAAgB,WAAW,GACzF,YAAE,yCAAyC,WAAW,GACzD;AAAA,aACF;AAAA,WACF,IACE,yBACF;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,uBAAuB;AAAA,YACnC,UAAU,uBAAuB;AAAA,YACjC,QAAQ,KAAK,KAAK;AAAA,YAClB,mBAAmB,MAAM;AAAE,mBAAK,sBAAsB;AAAA,YAAE;AAAA,YACxD,oBAAoB;AAAA,YACpB,qBAAqB;AAAA;AAAA,QACvB,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAM,oBAAC,cAAW,WAAU,WAAU,eAAY,QAAO;AAAA,YACzD,OAAO,EAAE,+DAA+D,wCAAwC;AAAA,YAChH,aAAa;AAAA,cACX;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACC,YAAY;AAAA,YACZ,YAAY,CAAC,kBAAkB;AAAE,mBAAK,eAAe,aAAa;AAAA,YAAE;AAAA,YACpE,YAAY,yBAAyB,eAAe;AAAA,YACpD,QAAQ;AAAA,YACR,UAAU,CAAC,kBAAkB;AAAE,mBAAK,qBAAqB,aAAa;AAAA,YAAE;AAAA;AAAA,QAC1E;AAAA,QACC,yBACC;AAAA,UAAC;AAAA;AAAA,YACC,UAAU,uBAAuB;AAAA,YACjC,YAAY,uBAAuB;AAAA,YACnC,QAAQ,KAAK,KAAK;AAAA,YAClB;AAAA,YACA;AAAA,YACA,iBAAiB,uBAAuB;AAAA,YACxC,gBAAgB,EAAE,wCAAwC,cAAc;AAAA,YACxE,YAAY;AAAA,cACV,OAAO,EAAE,+CAA+C,mBAAmB;AAAA,cAC3E,aAAa,EAAE,gDAAgD,cAAc;AAAA,YAC/E;AAAA,YACA,oBAAoB;AAAA,YACpB,eAAe,MAAM;AAAE,mBAAK,sBAAsB;AAAA,YAAE;AAAA,YACpD,YAAY;AAAA,YACZ,gBAAgB;AAAA;AAAA,QAClB,IACE;AAAA,SACN;AAAA,IAEJ;AAEA,QAAI,cAAc,UAAU;AAC1B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,EAAE,8CAA8C,QAAQ;AAAA,UACrE,mBAAmB,EAAE,sCAAsC,QAAQ;AAAA,UACnE,aAAa,EAAE,4CAA4C,sBAAsB;AAAA,UACjF,mBAAmB,EAAE,uCAAuC,4BAAuB;AAAA,UACnF,aAAa,KAAK;AAAA,UAClB,aAAa,KAAK,OAAO;AAAA,UACzB,aAAa;AAAA,UACb,UAAU,gBAAgB;AAAA,UAC1B,aAAa;AAAA,UACb,aAAa,CAAC,aAAa,gCAAgC,mBAAmB,QAAQ,CAAC;AAAA,UACvF,iBAAiB,CAAC,SAAS,+BAA+B,IAAI;AAAA,UAC9D,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,MAAM,oBAAC,SAAM,WAAU,UAAS;AAAA;AAAA,MAClC;AAAA,IAEJ;AAEA,QAAI,cAAc,aAAa;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,EAAE,+CAA+C,SAAS;AAAA,UACvE,mBAAmB,EAAE,yCAAyC,WAAW;AAAA,UACzE,aAAa,EAAE,+CAA+C,yBAAyB;AAAA,UACvF,mBAAmB,EAAE,0CAA0C,+BAA0B;AAAA,UACzF,aAAa,KAAK;AAAA,UAClB,aAAa,KAAK,OAAO;AAAA,UACzB,aAAa;AAAA,UACb,UAAU,mBAAmB;AAAA,UAC7B,aAAa;AAAA,UACb,aAAa,CAAC,cAAc,mCAAmC,mBAAmB,SAAS,CAAC;AAAA,UAC5F,iBAAiB,CAAC,SAAS,kCAAkC,IAAI;AAAA,UACjE,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,MAAM,oBAAC,aAAU,WAAU,UAAS;AAAA;AAAA,MACtC;AAAA,IAEJ;AAEA,QAAI,cAAc,SAAS;AACzB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQ,KAAK,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,YAAY,EAAE,qCAAqC,eAAe;AAAA,UAClE,cAAc,KAAK,QAAQ,UAAU;AAAA,UACrC,YAAY,KAAK,QAAQ,QAAQ;AAAA,UACjC,aAAa,KAAK,QAAQ,SAAS;AAAA,UACnC,gBAAgB,EAAE,mCAAmC,UAAU;AAAA,UAC/D,YAAY;AAAA,YACV,OAAO,EAAE,0CAA0C,2BAA2B;AAAA,YAC9E,aAAa,EAAE,2CAA2C,YAAY;AAAA,UACxE;AAAA,UACA,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,iBAAiB;AAAA,UACjB,wBAAwB;AAAA,UACxB,yBAAyB;AAAA;AAAA,MAC3B;AAAA,IAEJ;AAEA,QAAI,cAAc,SAAS;AACzB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,EAAE,UAAU;AAAA,UACtB,UAAU,KAAK,KAAK;AAAA,UACpB,OAAO,EAAE,qCAAqC,OAAO;AAAA,UACrD,aAAa,EAAE,yCAAyC,8CAA8C;AAAA;AAAA,MACxG;AAAA,IAEJ;AAEA,QAAI,cAAc,aAAa;AAC7B,aAAO,oBAAC,gBAAa,UAAU,KAAK,KAAK,IAAI,YAAW,QAAO;AAAA,IACjE;AAEA,WAAO;AAAA,EACT,GAAG,GACL;AAGF,SACE,oBAAC,QACC,+BAAC,YACC;AAAA,yBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,iBAAc,QAAQ,gBAAgB,MAAM,WAAW,QAAQ,SAAS,kBAAkB,MAAY;AAAA,MAEvG;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,KAAK;AAAA,UACX,OAAO,KAAK;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,WAAW,KAAK;AAAA,UAChB,cAAc;AAAA,UACd,cAAc,KAAK;AAAA,UACnB,gBAAgB,KAAK,KAAK;AAAA,UAC1B,eAAe;AAAA,UACf;AAAA,UACA,QAAQ;AAAA,UACR,UAAU;AAAA,UACV;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MAEA,oBAAC,iBAAc,QAAQ,gBAAgB,MAAM,iBAAiB,QAAQ,SAAS,kBAAkB,MAAY,cAAc,SAAS;AAAA,MAEpI;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ,KAAK;AAAA,UACb,aAAa,KAAK;AAAA,UAClB,gBAAgB,KAAK,KAAK;AAAA,UAC1B,cAAc;AAAA,UACd,gBAAgB,KAAK,KAAK;AAAA,UAC1B,QAAQ,KAAK,KAAK,iBAAiB,OACjC;AAAA,YAAC;AAAA;AAAA,cACC,UAAQ;AAAA,cACR,gBAAgB,KAAK,KAAK;AAAA,cAC1B,OAAO,MAAM;AAAE,qBAAK,UAAU;AAAA,cAAE;AAAA,cAChC,QAAQ;AAAA;AAAA,UACV;AAAA;AAAA,MAEJ;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,aAAa;AAAA,UACb,cAAc,aAAa,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE;AAAA,UAC1E,aAAa,KAAK,OAAO;AAAA,UACzB,gBAAgB,KAAK,OAAO;AAAA,UAE5B;AAAA,YAAC;AAAA;AAAA,cACC,UAAS;AAAA,cACT,YAAY;AAAA,cACZ;AAAA,cACA,mBAAkB;AAAA,cAClB,OAAO;AAAA,cACP,OAAO;AAAA;AAAA,UACT;AAAA;AAAA,MACF;AAAA,MAEA,oBAAC,iBAAc,QAAQ,gBAAgB,MAAM,WAAW,QAAQ,SAAS,kBAAkB,MAAY;AAAA,OACzG;AAAA,IAEC;AAAA,IAEA,yBACC;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU,uBAAuB;AAAA,QACjC,QAAQ,KAAK,KAAK;AAAA,QAClB,YAAY,uBAAuB;AAAA,QACnC,YAAY,uBAAuB;AAAA,QACnC,aAAa,uBAAuB,SAAS,YAAY,uBAAuB,QAAQ,KAAK,UAAU,CAAC,GAAG,SAAS;AAAA,QACpH,mBAAmB,MAAM;AAAE,eAAK,sBAAsB;AAAA,QAAE;AAAA,QACxD,UAAU;AAAA;AAAA,IACZ,IACE;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,WAAW;AAAA,QACX,aAAa,KAAK,UAAU,CAAC,GAAG,SAAS;AAAA,QACzC,WAAW;AAAA;AAAA,IACb;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA;AAAA,IACpB;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,WAAW,KAAK,KAAK;AAAA,QACrB,OAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,oBAAoB,yBAAyB,6BAA6B;AAAA;AAAA,IAC5E;AAAA,KACF,GACF;AAEJ;",
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport Link from 'next/link'\nimport { Building2, UserSearch, Users } from 'lucide-react'\nimport { EmptyState } from '@open-mercato/ui/primitives/empty-state'\nimport { useRouter, useSearchParams, usePathname } from 'next/navigation'\nimport { Page, PageBody } from '@open-mercato/ui/backend/Page'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { AttachmentsSection, ErrorMessage, LoadingMessage, NotesSection, RecordNotFoundState } from '@open-mercato/ui/backend/detail'\nimport { InjectionSpot } from '@open-mercato/ui/backend/injection/InjectionSpot'\nimport { buildRecordInjectionContext, useSetCurrentRecordInjectionContext } from '@open-mercato/ui/backend/injection/recordContext'\nimport { useConfirmDialog } from '@open-mercato/ui/backend/confirm-dialog'\nimport { CollapsibleZoneLayout } from '@open-mercato/ui/backend/crud/CollapsibleZoneLayout'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { createTranslatorWithFallback } from '@open-mercato/shared/lib/i18n/translate'\nimport { E } from '#generated/entities.ids.generated'\n\nimport { ActivitiesSection } from '../../../../components/detail/ActivitiesSection'\nimport { ChangelogTab } from '../../../../components/detail/ChangelogTab'\nimport { DealClosureActionBar } from '../../../../components/detail/DealClosureActionBar'\nimport { DealDetailHeader } from '../../../../components/detail/DealDetailHeader'\nimport { DealDetailTabs, resolveLegacyTab, type DealTabId } from '../../../../components/detail/DealDetailTabs'\nimport { DealForm, useDealAssociationLookups } from '../../../../components/detail/DealForm'\nimport { DealLinkedEntitiesTab } from '../../../../components/detail/DealLinkedEntitiesTab'\nimport { ConfirmDealLostDialog } from '../../../../components/detail/ConfirmDealLostDialog'\nimport { DealLostSummaryDialog } from '../../../../components/detail/DealLostSummaryDialog'\nimport { DealWonPopup } from '../../../../components/detail/DealWonPopup'\nimport { InlineActivityComposer } from '../../../../components/detail/InlineActivityComposer'\nimport { PipelineStepper } from '../../../../components/detail/PipelineStepper'\nimport { PlannedActivitiesSection } from '../../../../components/detail/PlannedActivitiesSection'\nimport { ScheduleActivityDialog, type ScheduleActivityEditData } from '../../../../components/detail/ScheduleActivityDialog'\nimport { createCustomerNotesAdapter } from '../../../../components/detail/notesAdapter'\nimport type { InteractionSummary } from '../../../../components/detail/types'\nimport { readMarkdownPreferenceCookie, writeMarkdownPreferenceCookie } from '../../../../lib/markdownPreference'\nimport { ICON_SUGGESTIONS } from '../../../../lib/dictionaries'\nimport { renderDictionaryColor, renderDictionaryIcon } from '@open-mercato/core/modules/dictionaries/components/dictionaryAppearance'\n\nimport { formatCurrency, startOfNextQuarter } from './hooks/formatters'\nimport type { DealDetailPayload } from './hooks/types'\nimport { useDealActivities } from './hooks/useDealActivities'\nimport { useDealAssociations } from './hooks/useDealAssociations'\nimport { useDealClosure } from './hooks/useDealClosure'\nimport { useDealData } from './hooks/useDealData'\nimport { useDealFormHandlers } from './hooks/useDealFormHandlers'\nimport { useDealInjectedTabs } from './hooks/useDealInjectedTabs'\nimport { useDealMutationContext } from './hooks/useDealMutationContext'\nimport { useDealPipeline } from './hooks/useDealPipeline'\nimport { useScheduleDialog } from './hooks/useScheduleDialog'\n\nexport default function DealDetailPage({ params }: { params?: { id?: string } }) {\n const id = params?.id ?? ''\n const t = useT()\n const router = useRouter()\n const searchParams = useSearchParams()\n const pathname = usePathname()\n const { confirm, ConfirmDialogElement } = useConfirmDialog()\n const detailTranslator = React.useMemo(() => createTranslatorWithFallback(t), [t])\n\n const { data, setData, isLoading, error, isNotFound, loadData } = useDealData(id)\n const [isDirty, setIsDirty] = React.useState(false)\n const {\n scheduleDialogOpen,\n scheduleEditData,\n openSchedule,\n openEdit: openScheduleEdit,\n closeSchedule,\n } = useScheduleDialog()\n const formWrapperRef = React.useRef<HTMLDivElement>(null)\n\n const initialTab = React.useMemo(() => resolveLegacyTab(searchParams?.get('tab')), [searchParams])\n const [activeTab, setActiveTab] = React.useState<DealTabId>(initialTab)\n\n React.useEffect(() => {\n setActiveTab(initialTab)\n }, [initialTab])\n\n const currentDealId = data?.deal.id ?? id\n const { injectionContext, runMutationWithContext } = useDealMutationContext({\n currentDealId,\n fallbackId: id,\n data,\n })\n\n // Publish page-load record context with explicit `updatedAt`/`data` to the\n // AppShell-owned `backend:record:current` mount. The deal path is already in the\n // widget's allowlist (presence works) but supplied no version/record payload \u2014\n // this gives the merge dialog its action-log base and field-diff source.\n useSetCurrentRecordInjectionContext(\n buildRecordInjectionContext({\n resourceKind: 'customers.deal',\n resourceId: data?.deal.id ?? null,\n updatedAt: data?.deal.updatedAt ?? null,\n data: data as Record<string, unknown> | null,\n path: pathname,\n }),\n )\n\n const notesAdapter = React.useMemo(\n () => createCustomerNotesAdapter(detailTranslator, { runMutation: runMutationWithContext }),\n [detailTranslator, runMutationWithContext],\n )\n\n const { injectedTabs, injectedTabMap } = useDealInjectedTabs({\n injectionContext,\n data,\n setData,\n })\n\n const { searchPeoplePage, fetchPeopleByIds, searchCompaniesPage, fetchCompaniesByIds } = useDealAssociationLookups({\n excludeLinkedDealId: data?.deal.id ?? null,\n })\n\n const {\n plannedActivities,\n activityRefreshKey,\n loadPlannedActivities,\n handleActivityCreated,\n handleMarkDone,\n handleCancelActivity,\n } = useDealActivities({ dealId: id, runMutationWithContext })\n\n React.useEffect(() => {\n void Promise.all([loadData({ cache: true }), loadPlannedActivities({ cache: true })])\n }, [loadData, loadPlannedActivities])\n\n const activityEntities = React.useMemo(\n () => (data\n ? [...data.people, ...data.companies].map((entry) => ({\n id: entry.id,\n label: entry.subtitle ? `${entry.label} \u00B7 ${entry.subtitle}` : entry.label,\n kind: entry.kind,\n }))\n : []),\n [data],\n )\n const [selectedActivityEntityId, setSelectedActivityEntityId] = React.useState<string | null>(null)\n\n React.useEffect(() => {\n setSelectedActivityEntityId((current) => {\n if (activityEntities.length === 1) return activityEntities[0].id\n if (current && activityEntities.some((entry) => entry.id === current)) return current\n return null\n })\n }, [activityEntities])\n\n const selectedActivityEntity = React.useMemo(\n () => activityEntities.find((entry) => entry.id === selectedActivityEntityId) ?? null,\n [activityEntities, selectedActivityEntityId],\n )\n\n const dealOptions = React.useMemo(\n () => data ? [{ id: data.deal.id, label: data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal') }] : [],\n [data, t],\n )\n\n const entityOptions = React.useMemo(\n () => activityEntities.map(({ id, label }) => ({ id, label })),\n [activityEntities],\n )\n\n const confirmDiscardIfDirty = React.useCallback(async () => {\n if (!isDirty) return true\n return confirm({\n title: t('customers.deals.detail.unsavedTitle', 'Discard unsaved changes?'),\n description: t(\n 'customers.deals.detail.unsavedDescription',\n 'You have unsaved edits in this deal. Save them first or continue to discard them.',\n ),\n confirmText: t('customers.deals.detail.unsavedConfirm', 'Discard changes'),\n cancelText: t('customers.deals.detail.unsavedCancel', 'Keep editing'),\n variant: 'destructive',\n })\n }, [confirm, isDirty, t])\n\n const {\n peopleEditorIds,\n companiesEditorIds,\n peopleSaving,\n companiesSaving,\n handlePeopleAssociationsChange,\n handleCompaniesAssociationsChange,\n loadLinkedPeoplePage,\n loadLinkedCompaniesPage,\n } = useDealAssociations({\n currentDealId,\n data,\n setData,\n runMutationWithContext,\n onRefresh: () => { void loadData() },\n })\n\n const { isStageSaving, handleStageChange } = useDealPipeline({\n currentDealId,\n data,\n runMutationWithContext,\n confirmDiscardIfDirty,\n onStageChanged: loadData,\n })\n\n const {\n lostDialogOpen,\n wonPopupOpen,\n lostPopupOpen,\n wonStats,\n lostStats,\n openLostDialog,\n closeLostDialog,\n closeWonPopup,\n closeLostPopup,\n handleWon,\n handleLostConfirm,\n } = useDealClosure({\n currentDealId,\n dealUpdatedAt: data?.deal.updatedAt ?? null,\n runMutationWithContext,\n confirmDiscardIfDirty,\n onClosed: loadData,\n })\n\n const handleTabChange = React.useCallback(async (tab: DealTabId) => {\n if (!(await confirmDiscardIfDirty())) return\n setActiveTab(tab)\n const nextParams = new URLSearchParams(searchParams?.toString() ?? '')\n nextParams.set('tab', tab)\n router.replace(`/backend/customers/deals/${encodeURIComponent(id)}?${nextParams.toString()}`, { scroll: false })\n }, [confirmDiscardIfDirty, id, router, searchParams])\n\n const { isSaving, handleFormSubmit, handleDelete, handleHeaderSave } = useDealFormHandlers({\n data,\n currentDealId,\n loadData,\n runMutationWithContext,\n formWrapperRef,\n confirm,\n })\n\n const handleEditActivity = React.useCallback((activity: InteractionSummary) => {\n if (activity.entityId && activityEntities.some((entry) => entry.id === activity.entityId)) {\n setSelectedActivityEntityId(activity.entityId)\n }\n // Forward `customValues` so per-type chip state (callPhoneNumber,\n // callDirection, taskPriority) round-trips on edit (#1808 phone persistence).\n // Forward `occurredAt` so historical activity edits prefill from the\n // original moment instead of \"today\" (#1807 prefill).\n const rawActivity = activity as unknown as Record<string, unknown>\n openScheduleEdit({\n id: activity.id,\n updatedAt: typeof rawActivity.updatedAt === 'string' ? rawActivity.updatedAt as string : typeof rawActivity.updated_at === 'string' ? rawActivity.updated_at as string : null,\n interactionType: activity.interactionType,\n title: activity.title ?? null,\n body: activity.body ?? null,\n scheduledAt: activity.scheduledAt ?? null,\n occurredAt: activity.occurredAt ?? null,\n durationMinutes: activity.duration ?? null,\n location: activity.location ?? null,\n allDay: activity.allDay ?? null,\n recurrenceRule: activity.recurrenceRule ?? null,\n recurrenceEnd: activity.recurrenceEnd ?? null,\n participants: activity.participants ?? null,\n reminderMinutes: activity.reminderMinutes ?? null,\n visibility: activity.visibility ?? null,\n linkedEntities: activity.linkedEntities ?? null,\n guestPermissions: activity.guestPermissions ?? null,\n ...(rawActivity.customValues && typeof rawActivity.customValues === 'object'\n ? { customValues: rawActivity.customValues as Record<string, unknown> }\n : {}),\n ...(typeof rawActivity.phoneNumber === 'string'\n ? { phoneNumber: rawActivity.phoneNumber as string }\n : {}),\n } as ScheduleActivityEditData & { customValues?: Record<string, unknown> | null; phoneNumber?: string | null })\n }, [activityEntities, openScheduleEdit])\n\n const handleViewDashboard = React.useCallback(() => {\n closeWonPopup()\n router.push('/backend')\n }, [closeWonPopup, router])\n\n const handleBackToPipeline = React.useCallback(() => {\n closeWonPopup()\n closeLostPopup()\n router.push('/backend/customers/deals/pipeline')\n }, [closeLostPopup, closeWonPopup, router])\n\n const handleScheduleLostFollowUp = React.useCallback(() => {\n if (!data || !selectedActivityEntity) return\n const nextQuarterDate = startOfNextQuarter(new Date())\n closeLostPopup()\n openScheduleEdit({\n id: '',\n interactionType: 'task',\n title: data.deal.title\n ? t('customers.deals.detail.lost.followUpTitle', 'Revisit {{title}}', { title: data.deal.title })\n : t('customers.deals.detail.lost.followUpFallbackTitle', 'Revisit closed deal'),\n body: data.deal.lossNotes ?? null,\n scheduledAt: nextQuarterDate.toISOString(),\n durationMinutes: 30,\n location: null,\n allDay: false,\n recurrenceRule: null,\n recurrenceEnd: null,\n participants: null,\n reminderMinutes: 1440,\n visibility: 'team',\n linkedEntities: [\n {\n id: data.deal.id,\n type: 'deal',\n label: data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal'),\n },\n ],\n })\n }, [closeLostPopup, data, openScheduleEdit, selectedActivityEntity, t])\n\n const currentPipelineName = data\n ? data.pipelineName ?? wonStats?.pipelineName ?? lostStats?.pipelineName ?? null\n : wonStats?.pipelineName ?? lostStats?.pipelineName ?? null\n const formPipelineOptions = React.useMemo(\n () => data?.deal.pipelineId\n ? [{\n id: data.deal.pipelineId,\n name: currentPipelineName ?? t('customers.deals.detail.pipeline.defaultName', 'Current pipeline'),\n isDefault: false,\n }]\n : [],\n [currentPipelineName, data?.deal.pipelineId, t],\n )\n\n if (isLoading) {\n return (\n <Page>\n <PageBody>\n <LoadingMessage label={t('customers.deals.detail.loading', 'Loading deal\u2026')} />\n </PageBody>\n </Page>\n )\n }\n\n if (isNotFound) {\n return (\n <Page>\n <PageBody>\n <RecordNotFoundState\n label={t('customers.deals.detail.error.notFound', 'Deal not found.')}\n backHref=\"/backend/customers/deals\"\n backLabel={t('customers.deals.detail.actions.backToList', 'Back to deals')}\n />\n </PageBody>\n </Page>\n )\n }\n\n if (error || !data) {\n return (\n <Page>\n <PageBody>\n <ErrorMessage\n label={error ?? t('customers.deals.detail.error.load', 'Failed to load deal.')}\n action={\n <Button asChild variant=\"outline\" size=\"sm\">\n <Link href=\"/backend/customers/deals\">\n {t('customers.deals.detail.actions.backToList', 'Back to deals')}\n </Link>\n </Button>\n }\n />\n </PageBody>\n </Page>\n )\n }\n\n const amountLabel = formatCurrency(data.deal.valueAmount, data.deal.valueCurrency)\n const dealName = data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')\n\n const zone1Content = (\n <div ref={formWrapperRef}>\n <DealForm\n mode=\"edit\"\n embedded\n trackDirtyWhenEmbedded\n hideFooterActions\n singleColumnGroups\n showAssociationsGroup={false}\n showVersionHistory={false}\n showCancelAction={false}\n injectionSpotId=\"crud-form:customers.deal\"\n optimisticLockUpdatedAt={data.deal.updatedAt}\n onDirtyChange={setIsDirty}\n initialPipelineOptions={formPipelineOptions}\n initialPipelineStageOptions={data.pipelineStages}\n collapsibleGroups={{ pageType: 'deal-detail-v3', chevronPosition: 'right' }}\n sortableGroups={{ pageType: 'deal-detail-v3' }}\n initialValues={{\n ...data.deal,\n valueAmount:\n typeof data.deal.valueAmount === 'string' && data.deal.valueAmount.trim().length\n ? Number(data.deal.valueAmount)\n : null,\n personIds: data.linkedPersonIds,\n companyIds: data.linkedCompanyIds,\n customFields: data.customFields,\n ...Object.fromEntries(Object.entries(data.customFields ?? {}).map(([key, value]) => [`cf_${key}`, value])),\n }}\n onSubmit={handleFormSubmit}\n onCancel={() => { void loadData() }}\n onDelete={handleDelete}\n />\n </div>\n )\n\n const zone2Content = (\n <div className=\"rounded-[10px] border border-border bg-card px-5 py-5\">\n {(() => {\n const injected = injectedTabMap.get(activeTab)\n if (injected) return injected()\n\n if (activeTab === 'activities') {\n const activityEntitySelection = activityEntities.length > 1 ? (\n <div className=\"rounded-[10px] border border-border bg-muted/20 px-5 py-5\">\n <label htmlFor=\"deal-activity-entity\" className=\"text-sm font-semibold text-foreground\">\n {t('customers.deals.detail.activities.selectEntityLabel', 'Choose customer record')}\n </label>\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {t(\n 'customers.deals.detail.activities.selectEntityDescription',\n 'Pick the person or company that should own new deal activities and follow-ups.',\n )}\n </div>\n <select\n id=\"deal-activity-entity\"\n aria-label={t('customers.deals.detail.activities.selectEntityLabel', 'Choose customer record')}\n className=\"mt-4 h-9 w-full rounded border border-muted-foreground/40 bg-background px-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\"\n value={selectedActivityEntityId ?? ''}\n onChange={(event) => setSelectedActivityEntityId(event.target.value || null)}\n >\n <option value=\"\">\n {t('customers.deals.detail.activities.selectEntityPlaceholder', 'Select a person or company')}\n </option>\n {activityEntities.map((entry) => (\n <option key={entry.id} value={entry.id}>\n {entry.label}\n </option>\n ))}\n </select>\n </div>\n ) : null\n\n return (\n <div className=\"space-y-4\">\n {activityEntities.length > 1 ? activityEntitySelection : null}\n {activityEntities.length === 0 ? (\n <div className=\"rounded-[10px] border border-border bg-muted/20 px-5 py-5\">\n <div className=\"text-sm font-semibold text-foreground\">\n {t('customers.deals.detail.activities.linkEntityTitle', 'Link a person or company first')}\n </div>\n <div className=\"mt-1 text-sm text-muted-foreground\">\n {t('customers.deals.detail.activities.linkEntityDescription', 'Activities on a deal still need a customer record for timeline ownership.')}\n </div>\n <div className=\"mt-4 flex gap-2\">\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => handleTabChange('people')}>\n {t('customers.deals.detail.tabs.people', 'People')}\n </Button>\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => handleTabChange('companies')}>\n {t('customers.deals.detail.tabs.companies', 'Companies')}\n </Button>\n </div>\n </div>\n ) : selectedActivityEntity ? (\n <InlineActivityComposer\n entityType={selectedActivityEntity.kind}\n entityId={selectedActivityEntity.id}\n dealId={data.deal.id}\n onActivityCreated={() => { void handleActivityCreated() }}\n runGuardedMutation={runMutationWithContext}\n onScheduleRequested={openSchedule}\n />\n ) : (\n <EmptyState\n size=\"sm\"\n icon={<UserSearch className=\"h-8 w-8\" aria-hidden=\"true\" />}\n title={t('customers.deals.detail.activities.selectEntityRequiredTitle', 'Choose a person or company to continue')}\n description={t(\n 'customers.deals.detail.activities.selectEntityRequiredDescription',\n 'Select the customer record that should receive new deal activities before logging or scheduling anything.',\n )}\n />\n )}\n <PlannedActivitiesSection\n activities={plannedActivities}\n onComplete={(interactionId) => { void handleMarkDone(interactionId) }}\n onSchedule={selectedActivityEntity ? openSchedule : undefined}\n onEdit={handleEditActivity}\n onCancel={(interactionId) => { void handleCancelActivity(interactionId) }}\n />\n {selectedActivityEntity ? (\n <ActivitiesSection\n entityId={selectedActivityEntity.id}\n entityName={selectedActivityEntity.label}\n dealId={data.deal.id}\n dealOptions={dealOptions}\n entityOptions={entityOptions}\n defaultEntityId={selectedActivityEntity.id}\n addActionLabel={t('customers.deals.detail.activitiesAdd', 'Log activity')}\n emptyState={{\n title: t('customers.deals.detail.activitiesEmptyTitle', 'No activities yet'),\n actionLabel: t('customers.deals.detail.activitiesEmptyAction', 'Log activity'),\n }}\n runGuardedMutation={runMutationWithContext}\n onDataRefresh={() => { void handleActivityCreated() }}\n refreshKey={activityRefreshKey}\n onEditActivity={handleEditActivity}\n />\n ) : null}\n </div>\n )\n }\n\n if (activeTab === 'people') {\n return (\n <DealLinkedEntitiesTab\n entityLabel={t('customers.deals.detail.tabs.peopleSingular', 'Person')}\n entityLabelPlural={t('customers.deals.detail.tabs.people', 'People')}\n manageLabel={t('customers.deals.detail.peopleEditorTitle', 'Manage linked people')}\n searchPlaceholder={t('customers.deals.detail.peopleSearch', 'Search linked people\u2026')}\n linkedItems={data.people}\n linkedCount={data.counts.people}\n selectedIds={peopleEditorIds}\n disabled={peopleSaving || isSaving}\n savePending={peopleSaving}\n hrefBuilder={(personId) => `/backend/customers/people-v2/${encodeURIComponent(personId)}`}\n onSaveSelection={(next) => handlePeopleAssociationsChange(next)}\n loadLinkedPage={loadLinkedPeoplePage}\n searchEntities={searchPeoplePage}\n fetchEntitiesByIds={fetchPeopleByIds}\n icon={<Users className=\"size-4\" />}\n />\n )\n }\n\n if (activeTab === 'companies') {\n return (\n <DealLinkedEntitiesTab\n entityLabel={t('customers.deals.detail.tabs.companySingular', 'Company')}\n entityLabelPlural={t('customers.deals.detail.tabs.companies', 'Companies')}\n manageLabel={t('customers.deals.detail.companiesEditorTitle', 'Manage linked companies')}\n searchPlaceholder={t('customers.deals.detail.companiesSearch', 'Search linked companies\u2026')}\n linkedItems={data.companies}\n linkedCount={data.counts.companies}\n selectedIds={companiesEditorIds}\n disabled={companiesSaving || isSaving}\n savePending={companiesSaving}\n hrefBuilder={(companyId) => `/backend/customers/companies-v2/${encodeURIComponent(companyId)}`}\n onSaveSelection={(next) => handleCompaniesAssociationsChange(next)}\n loadLinkedPage={loadLinkedCompaniesPage}\n searchEntities={searchCompaniesPage}\n fetchEntitiesByIds={fetchCompaniesByIds}\n icon={<Building2 className=\"size-4\" />}\n />\n )\n }\n\n if (activeTab === 'notes') {\n return (\n <NotesSection\n entityId={null}\n dealId={data.deal.id}\n dealOptions={dealOptions}\n entityOptions={entityOptions}\n emptyLabel={t('customers.deals.detail.notesEmpty', 'No notes yet.')}\n viewerUserId={data.viewer?.userId ?? null}\n viewerName={data.viewer?.name ?? null}\n viewerEmail={data.viewer?.email ?? null}\n addActionLabel={t('customers.deals.detail.notesAdd', 'Add note')}\n emptyState={{\n title: t('customers.deals.detail.notesEmptyTitle', 'Keep everyone in the loop'),\n actionLabel: t('customers.deals.detail.notesEmptyAction', 'Add a note'),\n }}\n translator={detailTranslator}\n dataAdapter={notesAdapter}\n renderIcon={renderDictionaryIcon}\n renderColor={renderDictionaryColor}\n iconSuggestions={ICON_SUGGESTIONS}\n readMarkdownPreference={readMarkdownPreferenceCookie}\n writeMarkdownPreference={writeMarkdownPreferenceCookie}\n />\n )\n }\n\n if (activeTab === 'files') {\n return (\n <AttachmentsSection\n entityId={E.customers.customer_deal}\n recordId={data.deal.id}\n title={t('customers.deals.detail.tabs.files', 'Files')}\n description={t('customers.deals.detail.files.subtitle', 'Upload and manage files linked to this deal.')}\n />\n )\n }\n\n if (activeTab === 'changelog') {\n return <ChangelogTab entityId={data.deal.id} entityType=\"deal\" />\n }\n\n return null\n })()}\n </div>\n )\n\n return (\n <Page>\n <PageBody>\n <div className=\"space-y-6\">\n <InjectionSpot spotId=\"detail:customers.deal:header\" context={injectionContext} data={data} />\n\n <DealDetailHeader\n deal={data.deal}\n owner={data.owner}\n people={data.people}\n companies={data.companies}\n pipelineName={currentPipelineName}\n stageOptions={data.pipelineStages}\n currentStageId={data.deal.pipelineStageId}\n onStageChange={handleStageChange}\n isStageSaving={isStageSaving}\n onSave={handleHeaderSave}\n onDelete={handleDelete}\n isDirty={isDirty}\n isSaving={isSaving}\n />\n\n <InjectionSpot spotId=\"detail:customers.deal:status-badges\" context={injectionContext} data={data} />\n\n <PipelineStepper\n stages={data.pipelineStages}\n transitions={data.stageTransitions}\n currentStageId={data.deal.pipelineStageId}\n pipelineName={currentPipelineName}\n closureOutcome={data.deal.closureOutcome}\n footer={data.deal.closureOutcome ? null : (\n <DealClosureActionBar\n embedded\n closureOutcome={data.deal.closureOutcome}\n onWon={() => { void handleWon() }}\n onLost={openLostDialog}\n />\n )}\n />\n\n <DealDetailTabs\n activeTab={activeTab}\n onTabChange={handleTabChange}\n injectedTabs={injectedTabs.map((tab) => ({ id: tab.id, label: tab.label }))}\n peopleCount={data.counts.people}\n companiesCount={data.counts.companies}\n >\n <CollapsibleZoneLayout\n pageType=\"deal-detail-v3\"\n entityName={dealName}\n isDirty={isDirty}\n zone1DefaultWidth=\"540px\"\n zone1={zone1Content}\n zone2={zone2Content}\n />\n </DealDetailTabs>\n\n <InjectionSpot spotId=\"detail:customers.deal:footer\" context={injectionContext} data={data} />\n </div>\n\n {ConfirmDialogElement}\n\n {selectedActivityEntity ? (\n <ScheduleActivityDialog\n open={scheduleDialogOpen}\n onClose={closeSchedule}\n entityId={selectedActivityEntity.id}\n dealId={data.deal.id}\n entityType={selectedActivityEntity.kind}\n entityName={selectedActivityEntity.label}\n companyName={selectedActivityEntity.kind === 'company' ? selectedActivityEntity.label : data.companies[0]?.label ?? null}\n onActivityCreated={() => { void handleActivityCreated() }}\n editData={scheduleEditData}\n />\n ) : null}\n\n <ConfirmDealLostDialog\n open={lostDialogOpen}\n onClose={closeLostDialog}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n dealValue={amountLabel}\n companyName={data.companies[0]?.label ?? null}\n onConfirm={handleLostConfirm}\n />\n\n <DealWonPopup\n open={wonPopupOpen}\n onClose={closeWonPopup}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n stats={wonStats}\n onViewDashboard={handleViewDashboard}\n onBackToPipeline={handleBackToPipeline}\n />\n\n <DealLostSummaryDialog\n open={lostPopupOpen}\n onClose={closeLostPopup}\n dealTitle={data.deal.title || t('customers.deals.detail.untitled', 'Untitled deal')}\n lossNotes={data.deal.lossNotes}\n stats={lostStats}\n onBackToPipeline={handleBackToPipeline}\n onScheduleFollowUp={selectedActivityEntity ? handleScheduleLostFollowUp : undefined}\n />\n </PageBody>\n </Page>\n )\n}\n"],
5
+ "mappings": ";AA4UU,cAgGI,YAhGJ;AA1UV,YAAY,WAAW;AACvB,OAAO,UAAU;AACjB,SAAS,WAAW,YAAY,aAAa;AAC7C,SAAS,kBAAkB;AAC3B,SAAS,WAAW,iBAAiB,mBAAmB;AACxD,SAAS,MAAM,gBAAgB;AAC/B,SAAS,cAAc;AACvB,SAAS,oBAAoB,cAAc,gBAAgB,cAAc,2BAA2B;AACpG,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B,2CAA2C;AACjF,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AACtC,SAAS,YAAY;AACrB,SAAS,oCAAoC;AAC7C,SAAS,SAAS;AAElB,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,gBAAgB,wBAAwC;AACjE,SAAS,UAAU,iCAAiC;AACpD,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,6BAA6B;AACtC,SAAS,oBAAoB;AAC7B,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC,SAAS,gCAAgC;AACzC,SAAS,8BAA6D;AACtE,SAAS,kCAAkC;AAE3C,SAAS,8BAA8B,qCAAqC;AAC5E,SAAS,wBAAwB;AACjC,SAAS,uBAAuB,4BAA4B;AAE5D,SAAS,gBAAgB,0BAA0B;AAEnD,SAAS,yBAAyB;AAClC,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAEnB,SAAR,eAAgC,EAAE,OAAO,GAAiC;AAC/E,QAAM,KAAK,QAAQ,MAAM;AACzB,QAAM,IAAI,KAAK;AACf,QAAM,SAAS,UAAU;AACzB,QAAM,eAAe,gBAAgB;AACrC,QAAM,WAAW,YAAY;AAC7B,QAAM,EAAE,SAAS,qBAAqB,IAAI,iBAAiB;AAC3D,QAAM,mBAAmB,MAAM,QAAQ,MAAM,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC;AAEjF,QAAM,EAAE,MAAM,SAAS,WAAW,OAAO,YAAY,SAAS,IAAI,YAAY,EAAE;AAChF,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAS,KAAK;AAClD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,EACF,IAAI,kBAAkB;AACtB,QAAM,iBAAiB,MAAM,OAAuB,IAAI;AAExD,QAAM,aAAa,MAAM,QAAQ,MAAM,iBAAiB,cAAc,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;AACjG,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAoB,UAAU;AAEtE,QAAM,UAAU,MAAM;AACpB,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,UAAU,CAAC;AAEf,QAAM,gBAAgB,MAAM,KAAK,MAAM;AACvC,QAAM,EAAE,kBAAkB,uBAAuB,IAAI,uBAAuB;AAAA,IAC1E;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACF,CAAC;AAMD;AAAA,IACE,4BAA4B;AAAA,MAC1B,cAAc;AAAA,MACd,YAAY,MAAM,KAAK,MAAM;AAAA,MAC7B,WAAW,MAAM,KAAK,aAAa;AAAA,MACnC;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAAA,EACH;AAEA,QAAM,eAAe,MAAM;AAAA,IACzB,MAAM,2BAA2B,kBAAkB,EAAE,aAAa,uBAAuB,CAAC;AAAA,IAC1F,CAAC,kBAAkB,sBAAsB;AAAA,EAC3C;AAEA,QAAM,EAAE,cAAc,eAAe,IAAI,oBAAoB;AAAA,IAC3D;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,EAAE,kBAAkB,kBAAkB,qBAAqB,oBAAoB,IAAI,0BAA0B;AAAA,IACjH,qBAAqB,MAAM,KAAK,MAAM;AAAA,EACxC,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,kBAAkB,EAAE,QAAQ,IAAI,uBAAuB,CAAC;AAE5D,QAAM,UAAU,MAAM;AACpB,SAAK,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,KAAK,CAAC,GAAG,sBAAsB,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,EACtF,GAAG,CAAC,UAAU,qBAAqB,CAAC;AAEpC,QAAM,mBAAmB,MAAM;AAAA,IAC7B,MAAO,OACH,CAAC,GAAG,KAAK,QAAQ,GAAG,KAAK,SAAS,EAAE,IAAI,CAAC,WAAW;AAAA,MAClD,IAAI,MAAM;AAAA,MACV,OAAO,MAAM,WAAW,GAAG,MAAM,KAAK,SAAM,MAAM,QAAQ,KAAK,MAAM;AAAA,MACrE,MAAM,MAAM;AAAA,IACd,EAAE,IACF,CAAC;AAAA,IACL,CAAC,IAAI;AAAA,EACP;AACA,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,MAAM,SAAwB,IAAI;AAElG,QAAM,UAAU,MAAM;AACpB,gCAA4B,CAAC,YAAY;AACvC,UAAI,iBAAiB,WAAW,EAAG,QAAO,iBAAiB,CAAC,EAAE;AAC9D,UAAI,WAAW,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,OAAO,EAAG,QAAO;AAC9E,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,yBAAyB,MAAM;AAAA,IACnC,MAAM,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,wBAAwB,KAAK;AAAA,IACjF,CAAC,kBAAkB,wBAAwB;AAAA,EAC7C;AAEA,QAAM,cAAc,MAAM;AAAA,IACxB,MAAM,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe,EAAE,CAAC,IAAI,CAAC;AAAA,IACxH,CAAC,MAAM,CAAC;AAAA,EACV;AAEA,QAAM,gBAAgB,MAAM;AAAA,IAC1B,MAAM,iBAAiB,IAAI,CAAC,EAAE,IAAAA,KAAI,MAAM,OAAO,EAAE,IAAAA,KAAI,MAAM,EAAE;AAAA,IAC7D,CAAC,gBAAgB;AAAA,EACnB;AAEA,QAAM,wBAAwB,MAAM,YAAY,YAAY;AAC1D,QAAI,CAAC,QAAS,QAAO;AACrB,WAAO,QAAQ;AAAA,MACb,OAAO,EAAE,uCAAuC,0BAA0B;AAAA,MAC1E,aAAa;AAAA,QACX;AAAA,QACA;AAAA,MACF;AAAA,MACA,aAAa,EAAE,yCAAyC,iBAAiB;AAAA,MACzE,YAAY,EAAE,wCAAwC,cAAc;AAAA,MACpE,SAAS;AAAA,IACX,CAAC;AAAA,EACH,GAAG,CAAC,SAAS,SAAS,CAAC,CAAC;AAExB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,oBAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,MAAM;AAAE,WAAK,SAAS;AAAA,IAAE;AAAA,EACrC,CAAC;AAED,QAAM,EAAE,eAAe,kBAAkB,IAAI,gBAAgB;AAAA,IAC3D;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,eAAe;AAAA,IACjB;AAAA,IACA,eAAe,MAAM,KAAK,aAAa;AAAA,IACvC;AAAA,IACA;AAAA,IACA,UAAU;AAAA,EACZ,CAAC;AAED,QAAM,kBAAkB,MAAM,YAAY,OAAO,QAAmB;AAClE,QAAI,CAAE,MAAM,sBAAsB,EAAI;AACtC,iBAAa,GAAG;AAChB,UAAM,aAAa,IAAI,gBAAgB,cAAc,SAAS,KAAK,EAAE;AACrE,eAAW,IAAI,OAAO,GAAG;AACzB,WAAO,QAAQ,4BAA4B,mBAAmB,EAAE,CAAC,IAAI,WAAW,SAAS,CAAC,IAAI,EAAE,QAAQ,MAAM,CAAC;AAAA,EACjH,GAAG,CAAC,uBAAuB,IAAI,QAAQ,YAAY,CAAC;AAEpD,QAAM,EAAE,UAAU,kBAAkB,cAAc,iBAAiB,IAAI,oBAAoB;AAAA,IACzF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,QAAM,qBAAqB,MAAM,YAAY,CAAC,aAAiC;AAC7E,QAAI,SAAS,YAAY,iBAAiB,KAAK,CAAC,UAAU,MAAM,OAAO,SAAS,QAAQ,GAAG;AACzF,kCAA4B,SAAS,QAAQ;AAAA,IAC/C;AAKA,UAAM,cAAc;AACpB,qBAAiB;AAAA,MACf,IAAI,SAAS;AAAA,MACb,WAAW,OAAO,YAAY,cAAc,WAAW,YAAY,YAAsB,OAAO,YAAY,eAAe,WAAW,YAAY,aAAuB;AAAA,MACzK,iBAAiB,SAAS;AAAA,MAC1B,OAAO,SAAS,SAAS;AAAA,MACzB,MAAM,SAAS,QAAQ;AAAA,MACvB,aAAa,SAAS,eAAe;AAAA,MACrC,YAAY,SAAS,cAAc;AAAA,MACnC,iBAAiB,SAAS,YAAY;AAAA,MACtC,UAAU,SAAS,YAAY;AAAA,MAC/B,QAAQ,SAAS,UAAU;AAAA,MAC3B,gBAAgB,SAAS,kBAAkB;AAAA,MAC3C,eAAe,SAAS,iBAAiB;AAAA,MACzC,cAAc,SAAS,gBAAgB;AAAA,MACvC,iBAAiB,SAAS,mBAAmB;AAAA,MAC7C,YAAY,SAAS,cAAc;AAAA,MACnC,gBAAgB,SAAS,kBAAkB;AAAA,MAC3C,kBAAkB,SAAS,oBAAoB;AAAA,MAC/C,GAAI,YAAY,gBAAgB,OAAO,YAAY,iBAAiB,WAChE,EAAE,cAAc,YAAY,aAAwC,IACpE,CAAC;AAAA,MACL,GAAI,OAAO,YAAY,gBAAgB,WACnC,EAAE,aAAa,YAAY,YAAsB,IACjD,CAAC;AAAA,IACP,CAA8G;AAAA,EAChH,GAAG,CAAC,kBAAkB,gBAAgB,CAAC;AAEvC,QAAM,sBAAsB,MAAM,YAAY,MAAM;AAClD,kBAAc;AACd,WAAO,KAAK,UAAU;AAAA,EACxB,GAAG,CAAC,eAAe,MAAM,CAAC;AAE1B,QAAM,uBAAuB,MAAM,YAAY,MAAM;AACnD,kBAAc;AACd,mBAAe;AACf,WAAO,KAAK,mCAAmC;AAAA,EACjD,GAAG,CAAC,gBAAgB,eAAe,MAAM,CAAC;AAE1C,QAAM,6BAA6B,MAAM,YAAY,MAAM;AACzD,QAAI,CAAC,QAAQ,CAAC,uBAAwB;AACtC,UAAM,kBAAkB,mBAAmB,oBAAI,KAAK,CAAC;AACrD,mBAAe;AACf,qBAAiB;AAAA,MACf,IAAI;AAAA,MACJ,iBAAiB;AAAA,MACjB,OAAO,KAAK,KAAK,QACb,EAAE,6CAA6C,qBAAqB,EAAE,OAAO,KAAK,KAAK,MAAM,CAAC,IAC9F,EAAE,qDAAqD,qBAAqB;AAAA,MAChF,MAAM,KAAK,KAAK,aAAa;AAAA,MAC7B,aAAa,gBAAgB,YAAY;AAAA,MACzC,iBAAiB;AAAA,MACjB,UAAU;AAAA,MACV,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,eAAe;AAAA,MACf,cAAc;AAAA,MACd,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,gBAAgB;AAAA,QACd;AAAA,UACE,IAAI,KAAK,KAAK;AAAA,UACd,MAAM;AAAA,UACN,OAAO,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAChF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,MAAM,kBAAkB,wBAAwB,CAAC,CAAC;AAEtE,QAAM,sBAAsB,OACxB,KAAK,gBAAgB,UAAU,gBAAgB,WAAW,gBAAgB,OAC1E,UAAU,gBAAgB,WAAW,gBAAgB;AACzD,QAAM,sBAAsB,MAAM;AAAA,IAChC,MAAM,MAAM,KAAK,aACb,CAAC;AAAA,MACC,IAAI,KAAK,KAAK;AAAA,MACd,MAAM,uBAAuB,EAAE,+CAA+C,kBAAkB;AAAA,MAChG,WAAW;AAAA,IACb,CAAC,IACD,CAAC;AAAA,IACL,CAAC,qBAAqB,MAAM,KAAK,YAAY,CAAC;AAAA,EAChD;AAEA,MAAI,WAAW;AACb,WACE,oBAAC,QACC,8BAAC,YACC,8BAAC,kBAAe,OAAO,EAAE,kCAAkC,oBAAe,GAAG,GAC/E,GACF;AAAA,EAEJ;AAEA,MAAI,YAAY;AACd,WACE,oBAAC,QACC,8BAAC,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,EAAE,yCAAyC,iBAAiB;AAAA,QACnE,UAAS;AAAA,QACT,WAAW,EAAE,6CAA6C,eAAe;AAAA;AAAA,IAC3E,GACF,GACF;AAAA,EAEJ;AAEA,MAAI,SAAS,CAAC,MAAM;AAClB,WACE,oBAAC,QACC,8BAAC,YACC;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,SAAS,EAAE,qCAAqC,sBAAsB;AAAA,QAC7E,QACE,oBAAC,UAAO,SAAO,MAAC,SAAQ,WAAU,MAAK,MACrC,8BAAC,QAAK,MAAK,4BACR,YAAE,6CAA6C,eAAe,GACjE,GACF;AAAA;AAAA,IAEJ,GACF,GACF;AAAA,EAEJ;AAEA,QAAM,cAAc,eAAe,KAAK,KAAK,aAAa,KAAK,KAAK,aAAa;AACjF,QAAM,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAExF,QAAM,eACJ,oBAAC,SAAI,KAAK,gBACR;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,UAAQ;AAAA,MACR,wBAAsB;AAAA,MACtB,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,iBAAgB;AAAA,MAChB,yBAAyB,KAAK,KAAK;AAAA,MACnC,eAAe;AAAA,MACf,wBAAwB;AAAA,MACxB,6BAA6B,KAAK;AAAA,MAClC,mBAAmB,EAAE,UAAU,kBAAkB,iBAAiB,QAAQ;AAAA,MAC1E,gBAAgB,EAAE,UAAU,iBAAiB;AAAA,MAC7C,eAAe;AAAA,QACb,GAAG,KAAK;AAAA,QACR,aACE,OAAO,KAAK,KAAK,gBAAgB,YAAY,KAAK,KAAK,YAAY,KAAK,EAAE,SACtE,OAAO,KAAK,KAAK,WAAW,IAC5B;AAAA,QACN,WAAW,KAAK;AAAA,QAChB,YAAY,KAAK;AAAA,QACjB,cAAc,KAAK;AAAA,QACnB,GAAG,OAAO,YAAY,OAAO,QAAQ,KAAK,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC;AAAA,MAC3G;AAAA,MACA,UAAU;AAAA,MACV,UAAU,MAAM;AAAE,aAAK,SAAS;AAAA,MAAE;AAAA,MAClC,UAAU;AAAA;AAAA,EACZ,GACF;AAGF,QAAM,eACJ,oBAAC,SAAI,WAAU,yDACX,iBAAM;AACN,UAAM,WAAW,eAAe,IAAI,SAAS;AAC7C,QAAI,SAAU,QAAO,SAAS;AAE9B,QAAI,cAAc,cAAc;AAC9B,YAAM,0BAA0B,iBAAiB,SAAS,IACxD,qBAAC,SAAI,WAAU,6DACb;AAAA,4BAAC,WAAM,SAAQ,wBAAuB,WAAU,yCAC7C,YAAE,uDAAuD,wBAAwB,GACpF;AAAA,QACA,oBAAC,SAAI,WAAU,sCACZ;AAAA,UACC;AAAA,UACA;AAAA,QACF,GACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAG;AAAA,YACH,cAAY,EAAE,uDAAuD,wBAAwB;AAAA,YAC7F,WAAU;AAAA,YACV,OAAO,4BAA4B;AAAA,YACnC,UAAU,CAAC,UAAU,4BAA4B,MAAM,OAAO,SAAS,IAAI;AAAA,YAE3E;AAAA,kCAAC,YAAO,OAAM,IACX,YAAE,6DAA6D,4BAA4B,GAC9F;AAAA,cACC,iBAAiB,IAAI,CAAC,UACrB,oBAAC,YAAsB,OAAO,MAAM,IACjC,gBAAM,SADI,MAAM,EAEnB,CACD;AAAA;AAAA;AAAA,QACH;AAAA,SACF,IACE;AAEJ,aACE,qBAAC,SAAI,WAAU,aACZ;AAAA,yBAAiB,SAAS,IAAI,0BAA0B;AAAA,QACxD,iBAAiB,WAAW,IAC3B,qBAAC,SAAI,WAAU,6DACb;AAAA,8BAAC,SAAI,WAAU,yCACZ,YAAE,qDAAqD,gCAAgC,GAC1F;AAAA,UACA,oBAAC,SAAI,WAAU,sCACZ,YAAE,2DAA2D,2EAA2E,GAC3I;AAAA,UACA,qBAAC,SAAI,WAAU,mBACb;AAAA,gCAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,gBAAgB,QAAQ,GACtF,YAAE,sCAAsC,QAAQ,GACnD;AAAA,YACA,oBAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,gBAAgB,WAAW,GACzF,YAAE,yCAAyC,WAAW,GACzD;AAAA,aACF;AAAA,WACF,IACE,yBACF;AAAA,UAAC;AAAA;AAAA,YACC,YAAY,uBAAuB;AAAA,YACnC,UAAU,uBAAuB;AAAA,YACjC,QAAQ,KAAK,KAAK;AAAA,YAClB,mBAAmB,MAAM;AAAE,mBAAK,sBAAsB;AAAA,YAAE;AAAA,YACxD,oBAAoB;AAAA,YACpB,qBAAqB;AAAA;AAAA,QACvB,IAEA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAM,oBAAC,cAAW,WAAU,WAAU,eAAY,QAAO;AAAA,YACzD,OAAO,EAAE,+DAA+D,wCAAwC;AAAA,YAChH,aAAa;AAAA,cACX;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QAEF;AAAA,UAAC;AAAA;AAAA,YACC,YAAY;AAAA,YACZ,YAAY,CAAC,kBAAkB;AAAE,mBAAK,eAAe,aAAa;AAAA,YAAE;AAAA,YACpE,YAAY,yBAAyB,eAAe;AAAA,YACpD,QAAQ;AAAA,YACR,UAAU,CAAC,kBAAkB;AAAE,mBAAK,qBAAqB,aAAa;AAAA,YAAE;AAAA;AAAA,QAC1E;AAAA,QACC,yBACC;AAAA,UAAC;AAAA;AAAA,YACC,UAAU,uBAAuB;AAAA,YACjC,YAAY,uBAAuB;AAAA,YACnC,QAAQ,KAAK,KAAK;AAAA,YAClB;AAAA,YACA;AAAA,YACA,iBAAiB,uBAAuB;AAAA,YACxC,gBAAgB,EAAE,wCAAwC,cAAc;AAAA,YACxE,YAAY;AAAA,cACV,OAAO,EAAE,+CAA+C,mBAAmB;AAAA,cAC3E,aAAa,EAAE,gDAAgD,cAAc;AAAA,YAC/E;AAAA,YACA,oBAAoB;AAAA,YACpB,eAAe,MAAM;AAAE,mBAAK,sBAAsB;AAAA,YAAE;AAAA,YACpD,YAAY;AAAA,YACZ,gBAAgB;AAAA;AAAA,QAClB,IACE;AAAA,SACN;AAAA,IAEJ;AAEA,QAAI,cAAc,UAAU;AAC1B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,EAAE,8CAA8C,QAAQ;AAAA,UACrE,mBAAmB,EAAE,sCAAsC,QAAQ;AAAA,UACnE,aAAa,EAAE,4CAA4C,sBAAsB;AAAA,UACjF,mBAAmB,EAAE,uCAAuC,4BAAuB;AAAA,UACnF,aAAa,KAAK;AAAA,UAClB,aAAa,KAAK,OAAO;AAAA,UACzB,aAAa;AAAA,UACb,UAAU,gBAAgB;AAAA,UAC1B,aAAa;AAAA,UACb,aAAa,CAAC,aAAa,gCAAgC,mBAAmB,QAAQ,CAAC;AAAA,UACvF,iBAAiB,CAAC,SAAS,+BAA+B,IAAI;AAAA,UAC9D,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,MAAM,oBAAC,SAAM,WAAU,UAAS;AAAA;AAAA,MAClC;AAAA,IAEJ;AAEA,QAAI,cAAc,aAAa;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,aAAa,EAAE,+CAA+C,SAAS;AAAA,UACvE,mBAAmB,EAAE,yCAAyC,WAAW;AAAA,UACzE,aAAa,EAAE,+CAA+C,yBAAyB;AAAA,UACvF,mBAAmB,EAAE,0CAA0C,+BAA0B;AAAA,UACzF,aAAa,KAAK;AAAA,UAClB,aAAa,KAAK,OAAO;AAAA,UACzB,aAAa;AAAA,UACb,UAAU,mBAAmB;AAAA,UAC7B,aAAa;AAAA,UACb,aAAa,CAAC,cAAc,mCAAmC,mBAAmB,SAAS,CAAC;AAAA,UAC5F,iBAAiB,CAAC,SAAS,kCAAkC,IAAI;AAAA,UACjE,gBAAgB;AAAA,UAChB,gBAAgB;AAAA,UAChB,oBAAoB;AAAA,UACpB,MAAM,oBAAC,aAAU,WAAU,UAAS;AAAA;AAAA,MACtC;AAAA,IAEJ;AAEA,QAAI,cAAc,SAAS;AACzB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQ,KAAK,KAAK;AAAA,UAClB;AAAA,UACA;AAAA,UACA,YAAY,EAAE,qCAAqC,eAAe;AAAA,UAClE,cAAc,KAAK,QAAQ,UAAU;AAAA,UACrC,YAAY,KAAK,QAAQ,QAAQ;AAAA,UACjC,aAAa,KAAK,QAAQ,SAAS;AAAA,UACnC,gBAAgB,EAAE,mCAAmC,UAAU;AAAA,UAC/D,YAAY;AAAA,YACV,OAAO,EAAE,0CAA0C,2BAA2B;AAAA,YAC9E,aAAa,EAAE,2CAA2C,YAAY;AAAA,UACxE;AAAA,UACA,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,YAAY;AAAA,UACZ,aAAa;AAAA,UACb,iBAAiB;AAAA,UACjB,wBAAwB;AAAA,UACxB,yBAAyB;AAAA;AAAA,MAC3B;AAAA,IAEJ;AAEA,QAAI,cAAc,SAAS;AACzB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,UAAU,EAAE,UAAU;AAAA,UACtB,UAAU,KAAK,KAAK;AAAA,UACpB,OAAO,EAAE,qCAAqC,OAAO;AAAA,UACrD,aAAa,EAAE,yCAAyC,8CAA8C;AAAA;AAAA,MACxG;AAAA,IAEJ;AAEA,QAAI,cAAc,aAAa;AAC7B,aAAO,oBAAC,gBAAa,UAAU,KAAK,KAAK,IAAI,YAAW,QAAO;AAAA,IACjE;AAEA,WAAO;AAAA,EACT,GAAG,GACL;AAGF,SACE,oBAAC,QACC,+BAAC,YACC;AAAA,yBAAC,SAAI,WAAU,aACb;AAAA,0BAAC,iBAAc,QAAO,gCAA+B,SAAS,kBAAkB,MAAY;AAAA,MAE5F;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,KAAK;AAAA,UACX,OAAO,KAAK;AAAA,UACZ,QAAQ,KAAK;AAAA,UACb,WAAW,KAAK;AAAA,UAChB,cAAc;AAAA,UACd,cAAc,KAAK;AAAA,UACnB,gBAAgB,KAAK,KAAK;AAAA,UAC1B,eAAe;AAAA,UACf;AAAA,UACA,QAAQ;AAAA,UACR,UAAU;AAAA,UACV;AAAA,UACA;AAAA;AAAA,MACF;AAAA,MAEA,oBAAC,iBAAc,QAAO,uCAAsC,SAAS,kBAAkB,MAAY;AAAA,MAEnG;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ,KAAK;AAAA,UACb,aAAa,KAAK;AAAA,UAClB,gBAAgB,KAAK,KAAK;AAAA,UAC1B,cAAc;AAAA,UACd,gBAAgB,KAAK,KAAK;AAAA,UAC1B,QAAQ,KAAK,KAAK,iBAAiB,OACjC;AAAA,YAAC;AAAA;AAAA,cACC,UAAQ;AAAA,cACR,gBAAgB,KAAK,KAAK;AAAA,cAC1B,OAAO,MAAM;AAAE,qBAAK,UAAU;AAAA,cAAE;AAAA,cAChC,QAAQ;AAAA;AAAA,UACV;AAAA;AAAA,MAEJ;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,aAAa;AAAA,UACb,cAAc,aAAa,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE;AAAA,UAC1E,aAAa,KAAK,OAAO;AAAA,UACzB,gBAAgB,KAAK,OAAO;AAAA,UAE5B;AAAA,YAAC;AAAA;AAAA,cACC,UAAS;AAAA,cACT,YAAY;AAAA,cACZ;AAAA,cACA,mBAAkB;AAAA,cAClB,OAAO;AAAA,cACP,OAAO;AAAA;AAAA,UACT;AAAA;AAAA,MACF;AAAA,MAEA,oBAAC,iBAAc,QAAO,gCAA+B,SAAS,kBAAkB,MAAY;AAAA,OAC9F;AAAA,IAEC;AAAA,IAEA,yBACC;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU,uBAAuB;AAAA,QACjC,QAAQ,KAAK,KAAK;AAAA,QAClB,YAAY,uBAAuB;AAAA,QACnC,YAAY,uBAAuB;AAAA,QACnC,aAAa,uBAAuB,SAAS,YAAY,uBAAuB,QAAQ,KAAK,UAAU,CAAC,GAAG,SAAS;AAAA,QACpH,mBAAmB,MAAM;AAAE,eAAK,sBAAsB;AAAA,QAAE;AAAA,QACxD,UAAU;AAAA;AAAA,IACZ,IACE;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,WAAW;AAAA,QACX,aAAa,KAAK,UAAU,CAAC,GAAG,SAAS;AAAA,QACzC,WAAW;AAAA;AAAA,IACb;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,OAAO;AAAA,QACP,iBAAiB;AAAA,QACjB,kBAAkB;AAAA;AAAA,IACpB;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW,KAAK,KAAK,SAAS,EAAE,mCAAmC,eAAe;AAAA,QAClF,WAAW,KAAK,KAAK;AAAA,QACrB,OAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,oBAAoB,yBAAyB,6BAA6B;AAAA;AAAA,IAC5E;AAAA,KACF,GACF;AAEJ;",
6
6
  "names": ["id"]
7
7
  }
@@ -1,7 +1,6 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
- import { extensionPoints } from "@open-mercato/core/modules/customers/extension-points";
5
4
  import Link from "next/link";
6
5
  import { usePathname, useRouter, useSearchParams } from "next/navigation";
7
6
  import { useQueryClient } from "@tanstack/react-query";
@@ -973,7 +972,7 @@ function CustomersDealsPage() {
973
972
  },
974
973
  exporter: exportConfig,
975
974
  entityId: E.customers.customer_deal,
976
- perspective: { tableId: extensionPoints.hosts.dealsTable.tableId },
975
+ perspective: { tableId: "customers.deals.list" },
977
976
  advancedFilter: {
978
977
  auto: true,
979
978
  value: filterPanel.tree,