@open-mercato/core 0.6.8-develop.6998.1.d2bc46c56c → 0.6.8-develop.7001.1.03608ab252

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 (651) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/generated/entities/warranty_claim/index.js +105 -0
  3. package/dist/generated/entities/warranty_claim/index.js.map +7 -0
  4. package/dist/generated/entities/warranty_claim_event/index.js +25 -0
  5. package/dist/generated/entities/warranty_claim_event/index.js.map +7 -0
  6. package/dist/generated/entities/warranty_claim_line/index.js +77 -0
  7. package/dist/generated/entities/warranty_claim_line/index.js.map +7 -0
  8. package/dist/generated/entities/warranty_claim_registration/index.js +43 -0
  9. package/dist/generated/entities/warranty_claim_registration/index.js.map +7 -0
  10. package/dist/generated/entities/warranty_claim_sequence/index.js +17 -0
  11. package/dist/generated/entities/warranty_claim_sequence/index.js.map +7 -0
  12. package/dist/generated/entities/warranty_claim_settings/index.js +43 -0
  13. package/dist/generated/entities/warranty_claim_settings/index.js.map +7 -0
  14. package/dist/generated/entities/warranty_claim_sla_signal/index.js +25 -0
  15. package/dist/generated/entities/warranty_claim_sla_signal/index.js.map +7 -0
  16. package/dist/generated/entities/warranty_troubleshooting_guide/index.js +25 -0
  17. package/dist/generated/entities/warranty_troubleshooting_guide/index.js.map +7 -0
  18. package/dist/generated/entities/warranty_vendor_policy/index.js +31 -0
  19. package/dist/generated/entities/warranty_vendor_policy/index.js.map +7 -0
  20. package/dist/generated/entities.ids.generated.js +12 -0
  21. package/dist/generated/entities.ids.generated.js.map +2 -2
  22. package/dist/generated/entity-fields-registry.js +200 -0
  23. package/dist/generated/entity-fields-registry.js.map +2 -2
  24. package/dist/helpers/integration/api.js +3 -2
  25. package/dist/helpers/integration/api.js.map +2 -2
  26. package/dist/helpers/integration/salesFixtures.js +13 -6
  27. package/dist/helpers/integration/salesFixtures.js.map +2 -2
  28. package/dist/modules/attachments/di.js +18 -0
  29. package/dist/modules/attachments/di.js.map +2 -2
  30. package/dist/modules/attachments/fields/attachment.js +186 -26
  31. package/dist/modules/attachments/fields/attachment.js.map +2 -2
  32. package/dist/modules/attachments/lib/scoped-upload-service.js +202 -0
  33. package/dist/modules/attachments/lib/scoped-upload-service.js.map +7 -0
  34. package/dist/modules/attachments/lib/target-access-service.js +39 -0
  35. package/dist/modules/attachments/lib/target-access-service.js.map +7 -0
  36. package/dist/modules/auth/api/logout.js +37 -10
  37. package/dist/modules/auth/api/logout.js.map +2 -2
  38. package/dist/modules/auth/api/reset/confirm.js +7 -0
  39. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  40. package/dist/modules/auth/api/reset.js +7 -0
  41. package/dist/modules/auth/api/reset.js.map +2 -2
  42. package/dist/modules/auth/commands/users.js +13 -0
  43. package/dist/modules/auth/commands/users.js.map +2 -2
  44. package/dist/modules/auth/events.js +15 -0
  45. package/dist/modules/auth/events.js.map +2 -2
  46. package/dist/modules/customers/api/companies/route.js +1 -0
  47. package/dist/modules/customers/api/companies/route.js.map +2 -2
  48. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +2 -2
  49. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +2 -2
  50. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +2 -2
  51. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +2 -2
  52. package/dist/modules/customers/components/detail/assignableStaff.js +6 -69
  53. package/dist/modules/customers/components/detail/assignableStaff.js.map +2 -2
  54. package/dist/modules/customers/lib/assignableStaff.js +76 -0
  55. package/dist/modules/customers/lib/assignableStaff.js.map +7 -0
  56. package/dist/modules/data_sync/lib/batch-stream.js +56 -0
  57. package/dist/modules/data_sync/lib/batch-stream.js.map +7 -0
  58. package/dist/modules/data_sync/lib/sync-engine.js +165 -103
  59. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  60. package/dist/modules/inbox_ops/api/emails/[id]/reprocess/route.js +4 -0
  61. package/dist/modules/inbox_ops/api/emails/[id]/reprocess/route.js.map +2 -2
  62. package/dist/modules/inbox_ops/api/extract/route.js +4 -0
  63. package/dist/modules/inbox_ops/api/extract/route.js.map +2 -2
  64. package/dist/modules/inbox_ops/api/webhook/inbound.js +4 -0
  65. package/dist/modules/inbox_ops/api/webhook/inbound.js.map +2 -2
  66. package/dist/modules/sales/commands/documents.js +8 -8
  67. package/dist/modules/sales/commands/documents.js.map +2 -2
  68. package/dist/modules/warranty_claims/acl.js +75 -0
  69. package/dist/modules/warranty_claims/acl.js.map +7 -0
  70. package/dist/modules/warranty_claims/ai-agents.js +161 -0
  71. package/dist/modules/warranty_claims/ai-agents.js.map +7 -0
  72. package/dist/modules/warranty_claims/ai-tools.js +591 -0
  73. package/dist/modules/warranty_claims/ai-tools.js.map +7 -0
  74. package/dist/modules/warranty_claims/api/ai/assess/route.js +304 -0
  75. package/dist/modules/warranty_claims/api/ai/assess/route.js.map +7 -0
  76. package/dist/modules/warranty_claims/api/ai/draft-reply/route.js +127 -0
  77. package/dist/modules/warranty_claims/api/ai/draft-reply/route.js.map +7 -0
  78. package/dist/modules/warranty_claims/api/ai/suggest/route.js +177 -0
  79. package/dist/modules/warranty_claims/api/ai/suggest/route.js.map +7 -0
  80. package/dist/modules/warranty_claims/api/assign/route.js +124 -0
  81. package/dist/modules/warranty_claims/api/assign/route.js.map +7 -0
  82. package/dist/modules/warranty_claims/api/assignees/route.js +97 -0
  83. package/dist/modules/warranty_claims/api/assignees/route.js.map +7 -0
  84. package/dist/modules/warranty_claims/api/credit-memo/route.js +152 -0
  85. package/dist/modules/warranty_claims/api/credit-memo/route.js.map +7 -0
  86. package/dist/modules/warranty_claims/api/entitlement/route.js +145 -0
  87. package/dist/modules/warranty_claims/api/entitlement/route.js.map +7 -0
  88. package/dist/modules/warranty_claims/api/events/route.js +199 -0
  89. package/dist/modules/warranty_claims/api/events/route.js.map +7 -0
  90. package/dist/modules/warranty_claims/api/external/claims/route.js +446 -0
  91. package/dist/modules/warranty_claims/api/external/claims/route.js.map +7 -0
  92. package/dist/modules/warranty_claims/api/lines/route.js +258 -0
  93. package/dist/modules/warranty_claims/api/lines/route.js.map +7 -0
  94. package/dist/modules/warranty_claims/api/openapi.js +27 -0
  95. package/dist/modules/warranty_claims/api/openapi.js.map +7 -0
  96. package/dist/modules/warranty_claims/api/portal/attachments/route.js +490 -0
  97. package/dist/modules/warranty_claims/api/portal/attachments/route.js.map +7 -0
  98. package/dist/modules/warranty_claims/api/portal/claims/[id]/route.js +178 -0
  99. package/dist/modules/warranty_claims/api/portal/claims/[id]/route.js.map +7 -0
  100. package/dist/modules/warranty_claims/api/portal/claims/[id]/shared.js +101 -0
  101. package/dist/modules/warranty_claims/api/portal/claims/[id]/shared.js.map +7 -0
  102. package/dist/modules/warranty_claims/api/portal/claims/[id]/submit/route.js +78 -0
  103. package/dist/modules/warranty_claims/api/portal/claims/[id]/submit/route.js.map +7 -0
  104. package/dist/modules/warranty_claims/api/portal/claims/[id]/withdraw/route.js +81 -0
  105. package/dist/modules/warranty_claims/api/portal/claims/[id]/withdraw/route.js.map +7 -0
  106. package/dist/modules/warranty_claims/api/portal/claims/route.js +462 -0
  107. package/dist/modules/warranty_claims/api/portal/claims/route.js.map +7 -0
  108. package/dist/modules/warranty_claims/api/portal/events/route.js +228 -0
  109. package/dist/modules/warranty_claims/api/portal/events/route.js.map +7 -0
  110. package/dist/modules/warranty_claims/api/portal/options/route.js +91 -0
  111. package/dist/modules/warranty_claims/api/portal/options/route.js.map +7 -0
  112. package/dist/modules/warranty_claims/api/portal/orders/lines/route.js +172 -0
  113. package/dist/modules/warranty_claims/api/portal/orders/lines/route.js.map +7 -0
  114. package/dist/modules/warranty_claims/api/portal/orders/route.js +151 -0
  115. package/dist/modules/warranty_claims/api/portal/orders/route.js.map +7 -0
  116. package/dist/modules/warranty_claims/api/portal/troubleshooting/route.js +121 -0
  117. package/dist/modules/warranty_claims/api/portal/troubleshooting/route.js.map +7 -0
  118. package/dist/modules/warranty_claims/api/receiving/route.js +176 -0
  119. package/dist/modules/warranty_claims/api/receiving/route.js.map +7 -0
  120. package/dist/modules/warranty_claims/api/registrations/route.js +382 -0
  121. package/dist/modules/warranty_claims/api/registrations/route.js.map +7 -0
  122. package/dist/modules/warranty_claims/api/replacement-order/route.js +150 -0
  123. package/dist/modules/warranty_claims/api/replacement-order/route.js.map +7 -0
  124. package/dist/modules/warranty_claims/api/return-label/route.js +235 -0
  125. package/dist/modules/warranty_claims/api/return-label/route.js.map +7 -0
  126. package/dist/modules/warranty_claims/api/risk/route.js +101 -0
  127. package/dist/modules/warranty_claims/api/risk/route.js.map +7 -0
  128. package/dist/modules/warranty_claims/api/route.js +482 -0
  129. package/dist/modules/warranty_claims/api/route.js.map +7 -0
  130. package/dist/modules/warranty_claims/api/sales-return/route.js +151 -0
  131. package/dist/modules/warranty_claims/api/sales-return/route.js.map +7 -0
  132. package/dist/modules/warranty_claims/api/settings-general/route.js +195 -0
  133. package/dist/modules/warranty_claims/api/settings-general/route.js.map +7 -0
  134. package/dist/modules/warranty_claims/api/stats/route.js +199 -0
  135. package/dist/modules/warranty_claims/api/stats/route.js.map +7 -0
  136. package/dist/modules/warranty_claims/api/submit/route.js +120 -0
  137. package/dist/modules/warranty_claims/api/submit/route.js.map +7 -0
  138. package/dist/modules/warranty_claims/api/transition/route.js +126 -0
  139. package/dist/modules/warranty_claims/api/transition/route.js.map +7 -0
  140. package/dist/modules/warranty_claims/api/troubleshooting-guides/route.js +261 -0
  141. package/dist/modules/warranty_claims/api/troubleshooting-guides/route.js.map +7 -0
  142. package/dist/modules/warranty_claims/api/vendor-policies/route.js +311 -0
  143. package/dist/modules/warranty_claims/api/vendor-policies/route.js.map +7 -0
  144. package/dist/modules/warranty_claims/api/vendor-recovery/route.js +130 -0
  145. package/dist/modules/warranty_claims/api/vendor-recovery/route.js.map +7 -0
  146. package/dist/modules/warranty_claims/api/vendor-recovery-suggestions/route.js +153 -0
  147. package/dist/modules/warranty_claims/api/vendor-recovery-suggestions/route.js.map +7 -0
  148. package/dist/modules/warranty_claims/backend/components/AiAssessButtons.js +268 -0
  149. package/dist/modules/warranty_claims/backend/components/AiAssessButtons.js.map +7 -0
  150. package/dist/modules/warranty_claims/backend/components/ClaimStageProgress.js +54 -0
  151. package/dist/modules/warranty_claims/backend/components/ClaimStageProgress.js.map +7 -0
  152. package/dist/modules/warranty_claims/backend/components/ClaimStatusBadge.js +87 -0
  153. package/dist/modules/warranty_claims/backend/components/ClaimStatusBadge.js.map +7 -0
  154. package/dist/modules/warranty_claims/backend/components/ClaimsKpiStrip.js +120 -0
  155. package/dist/modules/warranty_claims/backend/components/ClaimsKpiStrip.js.map +7 -0
  156. package/dist/modules/warranty_claims/backend/components/EntitlementLookupBadge.js +135 -0
  157. package/dist/modules/warranty_claims/backend/components/EntitlementLookupBadge.js.map +7 -0
  158. package/dist/modules/warranty_claims/backend/components/ReceivingPanel.js +218 -0
  159. package/dist/modules/warranty_claims/backend/components/ReceivingPanel.js.map +7 -0
  160. package/dist/modules/warranty_claims/backend/components/ReturnLabelPanel.js +231 -0
  161. package/dist/modules/warranty_claims/backend/components/ReturnLabelPanel.js.map +7 -0
  162. package/dist/modules/warranty_claims/backend/components/TroubleshootingWalker.js +82 -0
  163. package/dist/modules/warranty_claims/backend/components/TroubleshootingWalker.js.map +7 -0
  164. package/dist/modules/warranty_claims/backend/components/VendorRecoverySuggestionsPanel.js +136 -0
  165. package/dist/modules/warranty_claims/backend/components/VendorRecoverySuggestionsPanel.js.map +7 -0
  166. package/dist/modules/warranty_claims/backend/components/WarrantyWorkspace.js +41 -0
  167. package/dist/modules/warranty_claims/backend/components/WarrantyWorkspace.js.map +7 -0
  168. package/dist/modules/warranty_claims/backend/components/claimReasonOptions.js +45 -0
  169. package/dist/modules/warranty_claims/backend/components/claimReasonOptions.js.map +7 -0
  170. package/dist/modules/warranty_claims/backend/components/claimSla.js +92 -0
  171. package/dist/modules/warranty_claims/backend/components/claimSla.js.map +7 -0
  172. package/dist/modules/warranty_claims/backend/components/orderLookup.js +81 -0
  173. package/dist/modules/warranty_claims/backend/components/orderLookup.js.map +7 -0
  174. package/dist/modules/warranty_claims/backend/components/productLookup.js +317 -0
  175. package/dist/modules/warranty_claims/backend/components/productLookup.js.map +7 -0
  176. package/dist/modules/warranty_claims/backend/components/useUserDisplayNames.js +61 -0
  177. package/dist/modules/warranty_claims/backend/components/useUserDisplayNames.js.map +7 -0
  178. package/dist/modules/warranty_claims/backend/page.js +1088 -0
  179. package/dist/modules/warranty_claims/backend/page.js.map +7 -0
  180. package/dist/modules/warranty_claims/backend/page.meta.js +16 -0
  181. package/dist/modules/warranty_claims/backend/page.meta.js.map +7 -0
  182. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.js +427 -0
  183. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.js.map +7 -0
  184. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.meta.js +16 -0
  185. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.meta.js.map +7 -0
  186. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/page.js +2101 -0
  187. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/page.js.map +7 -0
  188. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/page.meta.js +16 -0
  189. package/dist/modules/warranty_claims/backend/warranty_claims/[id]/page.meta.js.map +7 -0
  190. package/dist/modules/warranty_claims/backend/warranty_claims/create/page.js +1249 -0
  191. package/dist/modules/warranty_claims/backend/warranty_claims/create/page.js.map +7 -0
  192. package/dist/modules/warranty_claims/backend/warranty_claims/create/page.meta.js +16 -0
  193. package/dist/modules/warranty_claims/backend/warranty_claims/create/page.meta.js.map +7 -0
  194. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.js +110 -0
  195. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.js.map +7 -0
  196. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.meta.js +17 -0
  197. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.meta.js.map +7 -0
  198. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/create/page.js +49 -0
  199. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/create/page.js.map +7 -0
  200. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/create/page.meta.js +17 -0
  201. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/create/page.meta.js.map +7 -0
  202. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js +485 -0
  203. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.js.map +7 -0
  204. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.meta.js +19 -0
  205. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/page.meta.js.map +7 -0
  206. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/registrationForm.js +253 -0
  207. package/dist/modules/warranty_claims/backend/warranty_claims/registrations/registrationForm.js.map +7 -0
  208. package/dist/modules/warranty_claims/backend/warranty_claims/settings/page.js +1565 -0
  209. package/dist/modules/warranty_claims/backend/warranty_claims/settings/page.js.map +7 -0
  210. package/dist/modules/warranty_claims/backend/warranty_claims/settings/page.meta.js +19 -0
  211. package/dist/modules/warranty_claims/backend/warranty_claims/settings/page.meta.js.map +7 -0
  212. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/TroubleshootingTreeBuilder.js +472 -0
  213. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/TroubleshootingTreeBuilder.js.map +7 -0
  214. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.js +115 -0
  215. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.js.map +7 -0
  216. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.meta.js +19 -0
  217. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.meta.js.map +7 -0
  218. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.js +54 -0
  219. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.js.map +7 -0
  220. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.meta.js +19 -0
  221. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.meta.js.map +7 -0
  222. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js +414 -0
  223. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.js.map +7 -0
  224. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.meta.js +21 -0
  225. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.meta.js.map +7 -0
  226. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/troubleshootingGuideForm.js +171 -0
  227. package/dist/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/troubleshootingGuideForm.js.map +7 -0
  228. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.js +111 -0
  229. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.js.map +7 -0
  230. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.meta.js +19 -0
  231. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.meta.js.map +7 -0
  232. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.js +48 -0
  233. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.js.map +7 -0
  234. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.meta.js +19 -0
  235. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.meta.js.map +7 -0
  236. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js +429 -0
  237. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.js.map +7 -0
  238. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.meta.js +21 -0
  239. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.meta.js.map +7 -0
  240. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/vendorPolicyForm.js +182 -0
  241. package/dist/modules/warranty_claims/backend/warranty_claims/vendor-policies/vendorPolicyForm.js.map +7 -0
  242. package/dist/modules/warranty_claims/ce.js +48 -0
  243. package/dist/modules/warranty_claims/ce.js.map +7 -0
  244. package/dist/modules/warranty_claims/commands/claim-lines.js +911 -0
  245. package/dist/modules/warranty_claims/commands/claim-lines.js.map +7 -0
  246. package/dist/modules/warranty_claims/commands/claims.js +2577 -0
  247. package/dist/modules/warranty_claims/commands/claims.js.map +7 -0
  248. package/dist/modules/warranty_claims/commands/index.js +4 -0
  249. package/dist/modules/warranty_claims/commands/index.js.map +7 -0
  250. package/dist/modules/warranty_claims/commands/settings.js +169 -0
  251. package/dist/modules/warranty_claims/commands/settings.js.map +7 -0
  252. package/dist/modules/warranty_claims/commands/shared.js +162 -0
  253. package/dist/modules/warranty_claims/commands/shared.js.map +7 -0
  254. package/dist/modules/warranty_claims/data/constants.js +35 -0
  255. package/dist/modules/warranty_claims/data/constants.js.map +7 -0
  256. package/dist/modules/warranty_claims/data/enrichers.js +97 -0
  257. package/dist/modules/warranty_claims/data/enrichers.js.map +7 -0
  258. package/dist/modules/warranty_claims/data/entities.js +731 -0
  259. package/dist/modules/warranty_claims/data/entities.js.map +7 -0
  260. package/dist/modules/warranty_claims/data/validators.js +488 -0
  261. package/dist/modules/warranty_claims/data/validators.js.map +7 -0
  262. package/dist/modules/warranty_claims/di.js +29 -0
  263. package/dist/modules/warranty_claims/di.js.map +7 -0
  264. package/dist/modules/warranty_claims/encryption.js +28 -0
  265. package/dist/modules/warranty_claims/encryption.js.map +7 -0
  266. package/dist/modules/warranty_claims/events.js +81 -0
  267. package/dist/modules/warranty_claims/events.js.map +7 -0
  268. package/dist/modules/warranty_claims/extension-points.js +19 -0
  269. package/dist/modules/warranty_claims/extension-points.js.map +7 -0
  270. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.js +825 -0
  271. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.js.map +7 -0
  272. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.meta.js +11 -0
  273. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.meta.js.map +7 -0
  274. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.js +1139 -0
  275. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.js.map +7 -0
  276. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.meta.js +11 -0
  277. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.meta.js.map +7 -0
  278. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js +253 -0
  279. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.js.map +7 -0
  280. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.meta.js +18 -0
  281. package/dist/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.meta.js.map +7 -0
  282. package/dist/modules/warranty_claims/index.js +15 -0
  283. package/dist/modules/warranty_claims/index.js.map +7 -0
  284. package/dist/modules/warranty_claims/lib/aiAssist.js +496 -0
  285. package/dist/modules/warranty_claims/lib/aiAssist.js.map +7 -0
  286. package/dist/modules/warranty_claims/lib/apiIdsFilter.js +11 -0
  287. package/dist/modules/warranty_claims/lib/apiIdsFilter.js.map +7 -0
  288. package/dist/modules/warranty_claims/lib/assigneeNames.js +153 -0
  289. package/dist/modules/warranty_claims/lib/assigneeNames.js.map +7 -0
  290. package/dist/modules/warranty_claims/lib/attachmentVisibility.js +9 -0
  291. package/dist/modules/warranty_claims/lib/attachmentVisibility.js.map +7 -0
  292. package/dist/modules/warranty_claims/lib/bulkFeedback.js +8 -0
  293. package/dist/modules/warranty_claims/lib/bulkFeedback.js.map +7 -0
  294. package/dist/modules/warranty_claims/lib/businessHours.js +250 -0
  295. package/dist/modules/warranty_claims/lib/businessHours.js.map +7 -0
  296. package/dist/modules/warranty_claims/lib/businessHoursForm.js +146 -0
  297. package/dist/modules/warranty_claims/lib/businessHoursForm.js.map +7 -0
  298. package/dist/modules/warranty_claims/lib/claimTypeConfig.js +39 -0
  299. package/dist/modules/warranty_claims/lib/claimTypeConfig.js.map +7 -0
  300. package/dist/modules/warranty_claims/lib/decryptionSafety.js +17 -0
  301. package/dist/modules/warranty_claims/lib/decryptionSafety.js.map +7 -0
  302. package/dist/modules/warranty_claims/lib/deskFilters.js +88 -0
  303. package/dist/modules/warranty_claims/lib/deskFilters.js.map +7 -0
  304. package/dist/modules/warranty_claims/lib/dictionaries.js +157 -0
  305. package/dist/modules/warranty_claims/lib/dictionaries.js.map +7 -0
  306. package/dist/modules/warranty_claims/lib/dictionaryLabels.js +12 -0
  307. package/dist/modules/warranty_claims/lib/dictionaryLabels.js.map +7 -0
  308. package/dist/modules/warranty_claims/lib/emailIntake.js +87 -0
  309. package/dist/modules/warranty_claims/lib/emailIntake.js.map +7 -0
  310. package/dist/modules/warranty_claims/lib/escalation.js +58 -0
  311. package/dist/modules/warranty_claims/lib/escalation.js.map +7 -0
  312. package/dist/modules/warranty_claims/lib/externalIntake.js +233 -0
  313. package/dist/modules/warranty_claims/lib/externalIntake.js.map +7 -0
  314. package/dist/modules/warranty_claims/lib/grading.js +21 -0
  315. package/dist/modules/warranty_claims/lib/grading.js.map +7 -0
  316. package/dist/modules/warranty_claims/lib/listSegments.js +18 -0
  317. package/dist/modules/warranty_claims/lib/listSegments.js.map +7 -0
  318. package/dist/modules/warranty_claims/lib/orderOwnership.js +25 -0
  319. package/dist/modules/warranty_claims/lib/orderOwnership.js.map +7 -0
  320. package/dist/modules/warranty_claims/lib/portalAttachmentUpload.js +11 -0
  321. package/dist/modules/warranty_claims/lib/portalAttachmentUpload.js.map +7 -0
  322. package/dist/modules/warranty_claims/lib/portalAttachmentValidation.js +108 -0
  323. package/dist/modules/warranty_claims/lib/portalAttachmentValidation.js.map +7 -0
  324. package/dist/modules/warranty_claims/lib/portalClaimAccess.js +26 -0
  325. package/dist/modules/warranty_claims/lib/portalClaimAccess.js.map +7 -0
  326. package/dist/modules/warranty_claims/lib/quantity.js +19 -0
  327. package/dist/modules/warranty_claims/lib/quantity.js.map +7 -0
  328. package/dist/modules/warranty_claims/lib/risk.js +204 -0
  329. package/dist/modules/warranty_claims/lib/risk.js.map +7 -0
  330. package/dist/modules/warranty_claims/lib/settings.js +55 -0
  331. package/dist/modules/warranty_claims/lib/settings.js.map +7 -0
  332. package/dist/modules/warranty_claims/lib/stateMachine.js +88 -0
  333. package/dist/modules/warranty_claims/lib/stateMachine.js.map +7 -0
  334. package/dist/modules/warranty_claims/lib/timelineFilters.js +16 -0
  335. package/dist/modules/warranty_claims/lib/timelineFilters.js.map +7 -0
  336. package/dist/modules/warranty_claims/lib/triage.js +241 -0
  337. package/dist/modules/warranty_claims/lib/triage.js.map +7 -0
  338. package/dist/modules/warranty_claims/lib/troubleshooting.js +111 -0
  339. package/dist/modules/warranty_claims/lib/troubleshooting.js.map +7 -0
  340. package/dist/modules/warranty_claims/lib/tryResolve.js +11 -0
  341. package/dist/modules/warranty_claims/lib/tryResolve.js.map +7 -0
  342. package/dist/modules/warranty_claims/lib/vendorPolicyRecovery.js +101 -0
  343. package/dist/modules/warranty_claims/lib/vendorPolicyRecovery.js.map +7 -0
  344. package/dist/modules/warranty_claims/lib/warrantyPreview.js +18 -0
  345. package/dist/modules/warranty_claims/lib/warrantyPreview.js.map +7 -0
  346. package/dist/modules/warranty_claims/migrations/Migration20260703191537_warranty_claims.js +32 -0
  347. package/dist/modules/warranty_claims/migrations/Migration20260703191537_warranty_claims.js.map +7 -0
  348. package/dist/modules/warranty_claims/migrations/Migration20260704115605_warranty_claims.js +16 -0
  349. package/dist/modules/warranty_claims/migrations/Migration20260704115605_warranty_claims.js.map +7 -0
  350. package/dist/modules/warranty_claims/migrations/Migration20260704230000_warranty_claims.js +17 -0
  351. package/dist/modules/warranty_claims/migrations/Migration20260704230000_warranty_claims.js.map +7 -0
  352. package/dist/modules/warranty_claims/migrations/Migration20260705121601_warranty_claims.js +29 -0
  353. package/dist/modules/warranty_claims/migrations/Migration20260705121601_warranty_claims.js.map +7 -0
  354. package/dist/modules/warranty_claims/migrations/Migration20260709120000_warranty_claims.js +25 -0
  355. package/dist/modules/warranty_claims/migrations/Migration20260709120000_warranty_claims.js.map +7 -0
  356. package/dist/modules/warranty_claims/migrations/Migration20260710023607_warranty_claims.js +13 -0
  357. package/dist/modules/warranty_claims/migrations/Migration20260710023607_warranty_claims.js.map +7 -0
  358. package/dist/modules/warranty_claims/migrations/Migration20260716203936_warranty_claims.js +15 -0
  359. package/dist/modules/warranty_claims/migrations/Migration20260716203936_warranty_claims.js.map +7 -0
  360. package/dist/modules/warranty_claims/migrations/Migration20260717150000_warranty_claims.js +13 -0
  361. package/dist/modules/warranty_claims/migrations/Migration20260717150000_warranty_claims.js.map +7 -0
  362. package/dist/modules/warranty_claims/migrations/Migration20260719120000_warranty_claims.js +13 -0
  363. package/dist/modules/warranty_claims/migrations/Migration20260719120000_warranty_claims.js.map +7 -0
  364. package/dist/modules/warranty_claims/migrations/Migration20260813103053_warranty_claims.js +12 -0
  365. package/dist/modules/warranty_claims/migrations/Migration20260813103053_warranty_claims.js.map +7 -0
  366. package/dist/modules/warranty_claims/notifications.client.js +67 -0
  367. package/dist/modules/warranty_claims/notifications.client.js.map +7 -0
  368. package/dist/modules/warranty_claims/notifications.js +103 -0
  369. package/dist/modules/warranty_claims/notifications.js.map +7 -0
  370. package/dist/modules/warranty_claims/search.js +174 -0
  371. package/dist/modules/warranty_claims/search.js.map +7 -0
  372. package/dist/modules/warranty_claims/services/adjudicationEvaluator.js +202 -0
  373. package/dist/modules/warranty_claims/services/adjudicationEvaluator.js.map +7 -0
  374. package/dist/modules/warranty_claims/services/claimNumberGenerator.js +58 -0
  375. package/dist/modules/warranty_claims/services/claimNumberGenerator.js.map +7 -0
  376. package/dist/modules/warranty_claims/services/entitlementResolver.js +69 -0
  377. package/dist/modules/warranty_claims/services/entitlementResolver.js.map +7 -0
  378. package/dist/modules/warranty_claims/services/returnLabelProvider.js +14 -0
  379. package/dist/modules/warranty_claims/services/returnLabelProvider.js.map +7 -0
  380. package/dist/modules/warranty_claims/setup.js +121 -0
  381. package/dist/modules/warranty_claims/setup.js.map +7 -0
  382. package/dist/modules/warranty_claims/subscribers/auto-vendor-recovery.js +119 -0
  383. package/dist/modules/warranty_claims/subscribers/auto-vendor-recovery.js.map +7 -0
  384. package/dist/modules/warranty_claims/subscribers/claim-assigned-notification.js +47 -0
  385. package/dist/modules/warranty_claims/subscribers/claim-assigned-notification.js.map +7 -0
  386. package/dist/modules/warranty_claims/subscribers/claim-customer-reply-notification.js +60 -0
  387. package/dist/modules/warranty_claims/subscribers/claim-customer-reply-notification.js.map +7 -0
  388. package/dist/modules/warranty_claims/subscribers/claim-status-notification.js +83 -0
  389. package/dist/modules/warranty_claims/subscribers/claim-status-notification.js.map +7 -0
  390. package/dist/modules/warranty_claims/subscribers/claim-submitted-notification.js +46 -0
  391. package/dist/modules/warranty_claims/subscribers/claim-submitted-notification.js.map +7 -0
  392. package/dist/modules/warranty_claims/subscribers/email-to-claim.js +135 -0
  393. package/dist/modules/warranty_claims/subscribers/email-to-claim.js.map +7 -0
  394. package/dist/modules/warranty_claims/subscribers/return-shipment-tracking.js +164 -0
  395. package/dist/modules/warranty_claims/subscribers/return-shipment-tracking.js.map +7 -0
  396. package/dist/modules/warranty_claims/subscribers/vendor-recovery-reconciliation-undo.js +24 -0
  397. package/dist/modules/warranty_claims/subscribers/vendor-recovery-reconciliation-undo.js.map +7 -0
  398. package/dist/modules/warranty_claims/subscribers/vendor-recovery-reconciliation.js +26 -0
  399. package/dist/modules/warranty_claims/subscribers/vendor-recovery-reconciliation.js.map +7 -0
  400. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/config.js +15 -0
  401. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/config.js.map +7 -0
  402. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/widget.client.js +197 -0
  403. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/widget.client.js.map +7 -0
  404. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/widget.js +28 -0
  405. package/dist/modules/warranty_claims/widgets/dashboard/claims-queue/widget.js.map +7 -0
  406. package/dist/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.client.js +418 -0
  407. package/dist/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.client.js.map +7 -0
  408. package/dist/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.js +18 -0
  409. package/dist/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.js.map +7 -0
  410. package/dist/modules/warranty_claims/widgets/injection/customer-claims-tab/widget.js +17 -0
  411. package/dist/modules/warranty_claims/widgets/injection/customer-claims-tab/widget.js.map +7 -0
  412. package/dist/modules/warranty_claims/widgets/injection/customer-claims-tab.js +146 -0
  413. package/dist/modules/warranty_claims/widgets/injection/customer-claims-tab.js.map +7 -0
  414. package/dist/modules/warranty_claims/widgets/injection/order-claims-tab/widget.js +17 -0
  415. package/dist/modules/warranty_claims/widgets/injection/order-claims-tab/widget.js.map +7 -0
  416. package/dist/modules/warranty_claims/widgets/injection/order-claims-tab.js +147 -0
  417. package/dist/modules/warranty_claims/widgets/injection/order-claims-tab.js.map +7 -0
  418. package/dist/modules/warranty_claims/widgets/injection-table.js +38 -0
  419. package/dist/modules/warranty_claims/widgets/injection-table.js.map +7 -0
  420. package/dist/modules/warranty_claims/widgets/notifications/WarrantyClaimNotificationRenderer.js +223 -0
  421. package/dist/modules/warranty_claims/widgets/notifications/WarrantyClaimNotificationRenderer.js.map +7 -0
  422. package/dist/modules/warranty_claims/widgets/notifications/index.js +5 -0
  423. package/dist/modules/warranty_claims/widgets/notifications/index.js.map +7 -0
  424. package/dist/modules/warranty_claims/workers/sla-escalation-sweep.js +334 -0
  425. package/dist/modules/warranty_claims/workers/sla-escalation-sweep.js.map +7 -0
  426. package/generated/entities/warranty_claim/index.ts +51 -0
  427. package/generated/entities/warranty_claim_event/index.ts +11 -0
  428. package/generated/entities/warranty_claim_line/index.ts +37 -0
  429. package/generated/entities/warranty_claim_registration/index.ts +20 -0
  430. package/generated/entities/warranty_claim_sequence/index.ts +7 -0
  431. package/generated/entities/warranty_claim_settings/index.ts +20 -0
  432. package/generated/entities/warranty_claim_sla_signal/index.ts +11 -0
  433. package/generated/entities/warranty_troubleshooting_guide/index.ts +11 -0
  434. package/generated/entities/warranty_vendor_policy/index.ts +14 -0
  435. package/generated/entities.ids.generated.ts +12 -0
  436. package/generated/entity-fields-registry.ts +200 -0
  437. package/package.json +7 -7
  438. package/src/helpers/integration/api.ts +10 -3
  439. package/src/helpers/integration/salesFixtures.ts +17 -7
  440. package/src/modules/attachments/di.ts +30 -1
  441. package/src/modules/attachments/fields/attachment.tsx +215 -23
  442. package/src/modules/attachments/i18n/de.json +5 -0
  443. package/src/modules/attachments/i18n/en.json +5 -0
  444. package/src/modules/attachments/i18n/es.json +5 -0
  445. package/src/modules/attachments/i18n/ko.json +5 -0
  446. package/src/modules/attachments/i18n/pl.json +5 -0
  447. package/src/modules/attachments/lib/scoped-upload-service.ts +257 -0
  448. package/src/modules/attachments/lib/target-access-service.ts +57 -0
  449. package/src/modules/auth/api/logout.ts +46 -10
  450. package/src/modules/auth/api/reset/confirm.ts +7 -0
  451. package/src/modules/auth/api/reset.ts +7 -0
  452. package/src/modules/auth/commands/users.ts +22 -0
  453. package/src/modules/auth/events.ts +15 -0
  454. package/src/modules/customers/api/companies/route.ts +1 -0
  455. package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +4 -2
  456. package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +4 -2
  457. package/src/modules/customers/components/detail/assignableStaff.ts +14 -177
  458. package/src/modules/customers/lib/assignableStaff.ts +177 -0
  459. package/src/modules/data_sync/AGENTS.md +3 -0
  460. package/src/modules/data_sync/lib/batch-stream.ts +117 -0
  461. package/src/modules/data_sync/lib/sync-engine.ts +190 -115
  462. package/src/modules/inbox_ops/api/emails/[id]/reprocess/route.ts +4 -0
  463. package/src/modules/inbox_ops/api/extract/route.ts +4 -0
  464. package/src/modules/inbox_ops/api/webhook/inbound.ts +4 -0
  465. package/src/modules/sales/commands/documents.ts +16 -8
  466. package/src/modules/warranty_claims/AGENTS.md +49 -0
  467. package/src/modules/warranty_claims/acl.ts +71 -0
  468. package/src/modules/warranty_claims/ai-agents.ts +189 -0
  469. package/src/modules/warranty_claims/ai-tools.ts +711 -0
  470. package/src/modules/warranty_claims/api/ai/assess/route.ts +371 -0
  471. package/src/modules/warranty_claims/api/ai/draft-reply/route.ts +149 -0
  472. package/src/modules/warranty_claims/api/ai/suggest/route.ts +190 -0
  473. package/src/modules/warranty_claims/api/assign/route.ts +142 -0
  474. package/src/modules/warranty_claims/api/assignees/route.ts +102 -0
  475. package/src/modules/warranty_claims/api/credit-memo/route.ts +191 -0
  476. package/src/modules/warranty_claims/api/entitlement/route.ts +224 -0
  477. package/src/modules/warranty_claims/api/events/route.ts +226 -0
  478. package/src/modules/warranty_claims/api/external/claims/route.ts +528 -0
  479. package/src/modules/warranty_claims/api/lines/route.ts +275 -0
  480. package/src/modules/warranty_claims/api/openapi.ts +28 -0
  481. package/src/modules/warranty_claims/api/portal/attachments/route.ts +547 -0
  482. package/src/modules/warranty_claims/api/portal/claims/[id]/route.ts +195 -0
  483. package/src/modules/warranty_claims/api/portal/claims/[id]/shared.ts +125 -0
  484. package/src/modules/warranty_claims/api/portal/claims/[id]/submit/route.ts +82 -0
  485. package/src/modules/warranty_claims/api/portal/claims/[id]/withdraw/route.ts +87 -0
  486. package/src/modules/warranty_claims/api/portal/claims/route.ts +579 -0
  487. package/src/modules/warranty_claims/api/portal/events/route.ts +260 -0
  488. package/src/modules/warranty_claims/api/portal/options/route.ts +113 -0
  489. package/src/modules/warranty_claims/api/portal/orders/lines/route.ts +258 -0
  490. package/src/modules/warranty_claims/api/portal/orders/route.ts +206 -0
  491. package/src/modules/warranty_claims/api/portal/troubleshooting/route.ts +151 -0
  492. package/src/modules/warranty_claims/api/receiving/route.ts +215 -0
  493. package/src/modules/warranty_claims/api/registrations/route.ts +417 -0
  494. package/src/modules/warranty_claims/api/replacement-order/route.ts +188 -0
  495. package/src/modules/warranty_claims/api/return-label/route.ts +291 -0
  496. package/src/modules/warranty_claims/api/risk/route.ts +112 -0
  497. package/src/modules/warranty_claims/api/route.ts +543 -0
  498. package/src/modules/warranty_claims/api/sales-return/route.ts +183 -0
  499. package/src/modules/warranty_claims/api/settings-general/route.ts +230 -0
  500. package/src/modules/warranty_claims/api/stats/route.ts +306 -0
  501. package/src/modules/warranty_claims/api/submit/route.ts +146 -0
  502. package/src/modules/warranty_claims/api/transition/route.ts +144 -0
  503. package/src/modules/warranty_claims/api/troubleshooting-guides/route.ts +295 -0
  504. package/src/modules/warranty_claims/api/vendor-policies/route.ts +351 -0
  505. package/src/modules/warranty_claims/api/vendor-recovery/route.ts +148 -0
  506. package/src/modules/warranty_claims/api/vendor-recovery-suggestions/route.ts +167 -0
  507. package/src/modules/warranty_claims/backend/components/AiAssessButtons.tsx +389 -0
  508. package/src/modules/warranty_claims/backend/components/ClaimStageProgress.tsx +65 -0
  509. package/src/modules/warranty_claims/backend/components/ClaimStatusBadge.tsx +137 -0
  510. package/src/modules/warranty_claims/backend/components/ClaimsKpiStrip.tsx +169 -0
  511. package/src/modules/warranty_claims/backend/components/EntitlementLookupBadge.tsx +203 -0
  512. package/src/modules/warranty_claims/backend/components/ReceivingPanel.tsx +300 -0
  513. package/src/modules/warranty_claims/backend/components/ReturnLabelPanel.tsx +292 -0
  514. package/src/modules/warranty_claims/backend/components/TroubleshootingWalker.tsx +125 -0
  515. package/src/modules/warranty_claims/backend/components/VendorRecoverySuggestionsPanel.tsx +217 -0
  516. package/src/modules/warranty_claims/backend/components/WarrantyWorkspace.tsx +66 -0
  517. package/src/modules/warranty_claims/backend/components/claimReasonOptions.ts +57 -0
  518. package/src/modules/warranty_claims/backend/components/claimSla.tsx +127 -0
  519. package/src/modules/warranty_claims/backend/components/orderLookup.ts +109 -0
  520. package/src/modules/warranty_claims/backend/components/productLookup.tsx +433 -0
  521. package/src/modules/warranty_claims/backend/components/useUserDisplayNames.ts +66 -0
  522. package/src/modules/warranty_claims/backend/page.meta.ts +12 -0
  523. package/src/modules/warranty_claims/backend/page.tsx +1302 -0
  524. package/src/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.meta.ts +12 -0
  525. package/src/modules/warranty_claims/backend/warranty_claims/[id]/edit/page.tsx +531 -0
  526. package/src/modules/warranty_claims/backend/warranty_claims/[id]/page.meta.ts +12 -0
  527. package/src/modules/warranty_claims/backend/warranty_claims/[id]/page.tsx +2599 -0
  528. package/src/modules/warranty_claims/backend/warranty_claims/create/page.meta.ts +12 -0
  529. package/src/modules/warranty_claims/backend/warranty_claims/create/page.tsx +1533 -0
  530. package/src/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.meta.ts +13 -0
  531. package/src/modules/warranty_claims/backend/warranty_claims/registrations/[id]/edit/page.tsx +136 -0
  532. package/src/modules/warranty_claims/backend/warranty_claims/registrations/create/page.meta.ts +13 -0
  533. package/src/modules/warranty_claims/backend/warranty_claims/registrations/create/page.tsx +52 -0
  534. package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.meta.ts +15 -0
  535. package/src/modules/warranty_claims/backend/warranty_claims/registrations/page.tsx +555 -0
  536. package/src/modules/warranty_claims/backend/warranty_claims/registrations/registrationForm.tsx +295 -0
  537. package/src/modules/warranty_claims/backend/warranty_claims/settings/page.meta.ts +15 -0
  538. package/src/modules/warranty_claims/backend/warranty_claims/settings/page.tsx +1903 -0
  539. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/TroubleshootingTreeBuilder.tsx +550 -0
  540. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.meta.ts +15 -0
  541. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/[id]/edit/page.tsx +141 -0
  542. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.meta.ts +15 -0
  543. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/create/page.tsx +57 -0
  544. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.meta.ts +17 -0
  545. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/page.tsx +477 -0
  546. package/src/modules/warranty_claims/backend/warranty_claims/troubleshooting-guides/troubleshootingGuideForm.tsx +214 -0
  547. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.meta.ts +15 -0
  548. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/[id]/edit/page.tsx +137 -0
  549. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.meta.ts +15 -0
  550. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/create/page.tsx +51 -0
  551. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.meta.ts +17 -0
  552. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/page.tsx +506 -0
  553. package/src/modules/warranty_claims/backend/warranty_claims/vendor-policies/vendorPolicyForm.tsx +220 -0
  554. package/src/modules/warranty_claims/ce.ts +44 -0
  555. package/src/modules/warranty_claims/commands/claim-lines.ts +1082 -0
  556. package/src/modules/warranty_claims/commands/claims.ts +3364 -0
  557. package/src/modules/warranty_claims/commands/index.ts +3 -0
  558. package/src/modules/warranty_claims/commands/settings.ts +198 -0
  559. package/src/modules/warranty_claims/commands/shared.ts +212 -0
  560. package/src/modules/warranty_claims/data/constants.ts +37 -0
  561. package/src/modules/warranty_claims/data/enrichers.ts +165 -0
  562. package/src/modules/warranty_claims/data/entities.ts +663 -0
  563. package/src/modules/warranty_claims/data/validators.ts +634 -0
  564. package/src/modules/warranty_claims/di.ts +34 -0
  565. package/src/modules/warranty_claims/encryption.ts +26 -0
  566. package/src/modules/warranty_claims/events.ts +81 -0
  567. package/src/modules/warranty_claims/extension-points.ts +16 -0
  568. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.meta.ts +9 -0
  569. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/[id]/page.tsx +1037 -0
  570. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.meta.ts +9 -0
  571. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/new/page.tsx +1409 -0
  572. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.meta.ts +16 -0
  573. package/src/modules/warranty_claims/frontend/[orgSlug]/portal/claims/page.tsx +304 -0
  574. package/src/modules/warranty_claims/i18n/de.json +1270 -0
  575. package/src/modules/warranty_claims/i18n/en.json +1270 -0
  576. package/src/modules/warranty_claims/i18n/es.json +1270 -0
  577. package/src/modules/warranty_claims/i18n/ko.json +1270 -0
  578. package/src/modules/warranty_claims/i18n/pl.json +1270 -0
  579. package/src/modules/warranty_claims/index.ts +13 -0
  580. package/src/modules/warranty_claims/lib/aiAssist.ts +677 -0
  581. package/src/modules/warranty_claims/lib/apiIdsFilter.ts +12 -0
  582. package/src/modules/warranty_claims/lib/assigneeNames.ts +184 -0
  583. package/src/modules/warranty_claims/lib/attachmentVisibility.ts +5 -0
  584. package/src/modules/warranty_claims/lib/bulkFeedback.ts +6 -0
  585. package/src/modules/warranty_claims/lib/businessHours.ts +333 -0
  586. package/src/modules/warranty_claims/lib/businessHoursForm.ts +206 -0
  587. package/src/modules/warranty_claims/lib/claimTypeConfig.ts +49 -0
  588. package/src/modules/warranty_claims/lib/decryptionSafety.ts +19 -0
  589. package/src/modules/warranty_claims/lib/deskFilters.ts +131 -0
  590. package/src/modules/warranty_claims/lib/dictionaries.ts +212 -0
  591. package/src/modules/warranty_claims/lib/dictionaryLabels.ts +16 -0
  592. package/src/modules/warranty_claims/lib/emailIntake.ts +123 -0
  593. package/src/modules/warranty_claims/lib/escalation.ts +83 -0
  594. package/src/modules/warranty_claims/lib/externalIntake.ts +362 -0
  595. package/src/modules/warranty_claims/lib/grading.ts +23 -0
  596. package/src/modules/warranty_claims/lib/listSegments.ts +19 -0
  597. package/src/modules/warranty_claims/lib/orderOwnership.ts +58 -0
  598. package/src/modules/warranty_claims/lib/portalAttachmentUpload.ts +11 -0
  599. package/src/modules/warranty_claims/lib/portalAttachmentValidation.ts +115 -0
  600. package/src/modules/warranty_claims/lib/portalClaimAccess.ts +37 -0
  601. package/src/modules/warranty_claims/lib/quantity.ts +15 -0
  602. package/src/modules/warranty_claims/lib/risk.ts +371 -0
  603. package/src/modules/warranty_claims/lib/settings.ts +76 -0
  604. package/src/modules/warranty_claims/lib/stateMachine.ts +130 -0
  605. package/src/modules/warranty_claims/lib/timelineFilters.ts +22 -0
  606. package/src/modules/warranty_claims/lib/triage.ts +366 -0
  607. package/src/modules/warranty_claims/lib/troubleshooting.ts +157 -0
  608. package/src/modules/warranty_claims/lib/tryResolve.ts +7 -0
  609. package/src/modules/warranty_claims/lib/vendorPolicyRecovery.ts +182 -0
  610. package/src/modules/warranty_claims/lib/warrantyPreview.ts +20 -0
  611. package/src/modules/warranty_claims/migrations/.snapshot-open-mercato.json +3525 -0
  612. package/src/modules/warranty_claims/migrations/Migration20260703191537_warranty_claims.ts +38 -0
  613. package/src/modules/warranty_claims/migrations/Migration20260704115605_warranty_claims.ts +17 -0
  614. package/src/modules/warranty_claims/migrations/Migration20260704230000_warranty_claims.ts +17 -0
  615. package/src/modules/warranty_claims/migrations/Migration20260705121601_warranty_claims.ts +37 -0
  616. package/src/modules/warranty_claims/migrations/Migration20260709120000_warranty_claims.ts +25 -0
  617. package/src/modules/warranty_claims/migrations/Migration20260710023607_warranty_claims.ts +13 -0
  618. package/src/modules/warranty_claims/migrations/Migration20260716203936_warranty_claims.ts +15 -0
  619. package/src/modules/warranty_claims/migrations/Migration20260717150000_warranty_claims.ts +13 -0
  620. package/src/modules/warranty_claims/migrations/Migration20260719120000_warranty_claims.ts +13 -0
  621. package/src/modules/warranty_claims/migrations/Migration20260813103053_warranty_claims.ts +11 -0
  622. package/src/modules/warranty_claims/notifications.client.ts +78 -0
  623. package/src/modules/warranty_claims/notifications.ts +101 -0
  624. package/src/modules/warranty_claims/search.ts +199 -0
  625. package/src/modules/warranty_claims/services/adjudicationEvaluator.ts +344 -0
  626. package/src/modules/warranty_claims/services/claimNumberGenerator.ts +69 -0
  627. package/src/modules/warranty_claims/services/entitlementResolver.ts +102 -0
  628. package/src/modules/warranty_claims/services/returnLabelProvider.ts +30 -0
  629. package/src/modules/warranty_claims/setup.ts +154 -0
  630. package/src/modules/warranty_claims/subscribers/auto-vendor-recovery.ts +140 -0
  631. package/src/modules/warranty_claims/subscribers/claim-assigned-notification.ts +54 -0
  632. package/src/modules/warranty_claims/subscribers/claim-customer-reply-notification.ts +68 -0
  633. package/src/modules/warranty_claims/subscribers/claim-status-notification.ts +100 -0
  634. package/src/modules/warranty_claims/subscribers/claim-submitted-notification.ts +53 -0
  635. package/src/modules/warranty_claims/subscribers/email-to-claim.ts +175 -0
  636. package/src/modules/warranty_claims/subscribers/return-shipment-tracking.ts +226 -0
  637. package/src/modules/warranty_claims/subscribers/vendor-recovery-reconciliation-undo.ts +28 -0
  638. package/src/modules/warranty_claims/subscribers/vendor-recovery-reconciliation.ts +31 -0
  639. package/src/modules/warranty_claims/widgets/dashboard/claims-queue/config.ts +15 -0
  640. package/src/modules/warranty_claims/widgets/dashboard/claims-queue/widget.client.tsx +237 -0
  641. package/src/modules/warranty_claims/widgets/dashboard/claims-queue/widget.ts +27 -0
  642. package/src/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.client.tsx +527 -0
  643. package/src/modules/warranty_claims/widgets/injection/claims-ai-trigger/widget.ts +37 -0
  644. package/src/modules/warranty_claims/widgets/injection/customer-claims-tab/widget.ts +21 -0
  645. package/src/modules/warranty_claims/widgets/injection/customer-claims-tab.tsx +210 -0
  646. package/src/modules/warranty_claims/widgets/injection/order-claims-tab/widget.ts +21 -0
  647. package/src/modules/warranty_claims/widgets/injection/order-claims-tab.tsx +210 -0
  648. package/src/modules/warranty_claims/widgets/injection-table.ts +36 -0
  649. package/src/modules/warranty_claims/widgets/notifications/WarrantyClaimNotificationRenderer.tsx +253 -0
  650. package/src/modules/warranty_claims/widgets/notifications/index.ts +1 -0
  651. package/src/modules/warranty_claims/workers/sla-escalation-sweep.ts +450 -0
@@ -0,0 +1,1270 @@
1
+ {
2
+ "warranty_claims.ai.apply": "Apply",
3
+ "warranty_claims.ai.assess.attachment": "Attachment",
4
+ "warranty_claims.ai.assess.attachmentsError": "Failed to load line attachments.",
5
+ "warranty_claims.ai.assess.confidence": "Confidence: {confidence}",
6
+ "warranty_claims.ai.assess.damage": "AI: assess damage",
7
+ "warranty_claims.ai.assess.damageResult": "Damage assessment",
8
+ "warranty_claims.ai.assess.error": "AI assessment failed.",
9
+ "warranty_claims.ai.assess.flash.saved": "AI assessment saved.",
10
+ "warranty_claims.ai.assess.loadingAttachments": "Loading attachments...",
11
+ "warranty_claims.ai.assess.merchant": "Merchant: {merchant}",
12
+ "warranty_claims.ai.assess.misuseNotSuspected": "No misuse signal",
13
+ "warranty_claims.ai.assess.misuseSuspected": "Misuse suspected",
14
+ "warranty_claims.ai.assess.probableCause": "Probable cause: {cause}",
15
+ "warranty_claims.ai.assess.proof": "AI: extract proof",
16
+ "warranty_claims.ai.assess.proofResult": "Proof extraction",
17
+ "warranty_claims.ai.assess.purchaseDate": "Purchase date: {date}",
18
+ "warranty_claims.ai.assess.serialNumber": "Serial: {serial}",
19
+ "warranty_claims.ai.assess.unavailable": "AI not available.",
20
+ "warranty_claims.ai.chatPlaceholder": "Ask about this claim",
21
+ "warranty_claims.ai.chatWelcomeTitle": "Warranty claims copilot",
22
+ "warranty_claims.ai.draftError": "Failed to draft a reply.",
23
+ "warranty_claims.ai.draftReply": "Draft with AI",
24
+ "warranty_claims.ai.draftingReply": "Drafting...",
25
+ "warranty_claims.ai.empty.description": "AI triage suggestions are not available in this build.",
26
+ "warranty_claims.ai.panelTitle": "AI assist",
27
+ "warranty_claims.ai.suggestButton": "Suggest triage",
28
+ "warranty_claims.ai_assistant.agents.claims.description": "Triage claims, check entitlement, and draft replies.",
29
+ "warranty_claims.ai_assistant.agents.claims.label": "Claims Assistant",
30
+ "warranty_claims.ai_assistant.context.matchingClaims": "{count} claims in view",
31
+ "warranty_claims.ai_assistant.context.selectedClaims": "{count} claims selected",
32
+ "warranty_claims.ai_assistant.dock.subtitle": "Warranty claims",
33
+ "warranty_claims.ai_assistant.popover.heading": "AI assistants",
34
+ "warranty_claims.ai_assistant.sheet.composerPlaceholder": "Ask about claims, SLAs, entitlement...",
35
+ "warranty_claims.ai_assistant.sheet.description": "Your claims desk copilot. Ask about claims, SLAs, entitlement, and next steps.",
36
+ "warranty_claims.ai_assistant.sheet.descriptionWithSelection": "Working with {count} selected claims. Ask about their status, SLA, and next steps.",
37
+ "warranty_claims.ai_assistant.sheet.dock": "Dock to side",
38
+ "warranty_claims.ai_assistant.sheet.selectionPill": "Acting on {count} selected",
39
+ "warranty_claims.ai_assistant.sheet.title": "Claims AI assistant",
40
+ "warranty_claims.ai_assistant.sheet.welcomeDescriptionAll": "Ask me anything about your warranty claims queue:",
41
+ "warranty_claims.ai_assistant.sheet.welcomeDescriptionSelection": "Ready to explore your {count} selected claims:",
42
+ "warranty_claims.ai_assistant.sheet.welcomeTitle": "Claims Assistant",
43
+ "warranty_claims.ai_assistant.suggestions.awaitingReply": "Claims awaiting a reply",
44
+ "warranty_claims.ai_assistant.suggestions.nextActionsSelected": "Next actions for selected",
45
+ "warranty_claims.ai_assistant.suggestions.overdueClaims": "Overdue claims",
46
+ "warranty_claims.ai_assistant.suggestions.searchClaims": "Find a claim",
47
+ "warranty_claims.ai_assistant.suggestions.summarizeQueue": "Summarize the queue",
48
+ "warranty_claims.ai_assistant.suggestions.summarizeSelected": "Summarize selected claims",
49
+ "warranty_claims.ai_assistant.suggestions.triageSelected": "Suggest triage for selected",
50
+ "warranty_claims.ai_assistant.trigger.ariaLabel": "Open AI assistant for warranty claims",
51
+ "warranty_claims.ai_assistant.trigger.label": "AI",
52
+ "warranty_claims.ai_assistant.trigger.moreAgentsAriaLabel": "Choose an AI assistant",
53
+ "warranty_claims.audit.claim.create": "Create claim",
54
+ "warranty_claims.audit.claim.create_credit_memo": "Create credit memo",
55
+ "warranty_claims.audit.claim.create_replacement_order": "Create replacement order",
56
+ "warranty_claims.audit.claim.create_sales_return": "Create sales return",
57
+ "warranty_claims.audit.claim.delete": "Delete claim",
58
+ "warranty_claims.audit.claim.set_return_label": "Set return label",
59
+ "warranty_claims.audit.claim.transition": "Change claim status",
60
+ "warranty_claims.audit.claim.update": "Update claim",
61
+ "warranty_claims.audit.claim_line.create": "Add claim line",
62
+ "warranty_claims.audit.claim_line.delete": "Delete claim line",
63
+ "warranty_claims.audit.claim_line.receive": "Receive claim line",
64
+ "warranty_claims.audit.claim_line.release_quarantine": "Release line from quarantine",
65
+ "warranty_claims.audit.claim_line.set_assessment": "Record line assessment",
66
+ "warranty_claims.audit.claim_line.update": "Update claim line",
67
+ "warranty_claims.bulk.assign": "Assign selected",
68
+ "warranty_claims.bulk.assignTitle": "Assign selected claims",
69
+ "warranty_claims.bulk.cancel": "Cancel selected",
70
+ "warranty_claims.bulk.cancelTitle": "Cancel selected claims?",
71
+ "warranty_claims.bulk.firstError": "First error: {message}",
72
+ "warranty_claims.bulk.skipped": "{skipped} skipped.",
73
+ "warranty_claims.bulk.startReview": "Start review for selected",
74
+ "warranty_claims.bulk.summary": "Bulk action finished: {succeeded} succeeded, {failed} failed.",
75
+ "warranty_claims.channel.api": "API",
76
+ "warranty_claims.channel.portal": "Portal",
77
+ "warranty_claims.channel.staff": "Staff",
78
+ "warranty_claims.claim.assigned": "Warranty claim assigned",
79
+ "warranty_claims.claim.comment_added": "Warranty claim comment added",
80
+ "warranty_claims.claim.portal_status_changed": "Claim status changed (portal)",
81
+ "warranty_claims.claim.status_changed": "Warranty claim status changed",
82
+ "warranty_claims.claim.submitted": "Warranty claim submitted",
83
+ "warranty_claims.claimType.core_return": "Core return",
84
+ "warranty_claims.claimType.return": "Return",
85
+ "warranty_claims.claimType.vendor_recovery": "Vendor recovery",
86
+ "warranty_claims.claimType.warranty": "Warranty",
87
+ "warranty_claims.claimTypes.coreReturn": "Core return",
88
+ "warranty_claims.claimTypes.return": "Return",
89
+ "warranty_claims.claimTypes.vendorRecovery": "Vendor recovery",
90
+ "warranty_claims.claimTypes.warranty": "Warranty",
91
+ "warranty_claims.common.noValue": "Not set",
92
+ "warranty_claims.common.saveBlocked": "Save blocked by validation",
93
+ "warranty_claims.common.saving": "Saving...",
94
+ "warranty_claims.create.basics": "Claim basics",
95
+ "warranty_claims.create.error": "Failed to create claim.",
96
+ "warranty_claims.create.submit": "Create claim",
97
+ "warranty_claims.create.success": "Claim created.",
98
+ "warranty_claims.create.summary.automation": "Automation",
99
+ "warranty_claims.create.summary.customer": "Customer",
100
+ "warranty_claims.create.summary.description": "Review the intake context before creating the claim.",
101
+ "warranty_claims.create.summary.entitlement": "Warranty entitlement is checked from the selected product and serial.",
102
+ "warranty_claims.create.summary.lines": "Claim lines",
103
+ "warranty_claims.create.summary.linked": "Linked",
104
+ "warranty_claims.create.summary.notLinked": "Not linked",
105
+ "warranty_claims.create.summary.notSelected": "Not selected",
106
+ "warranty_claims.create.summary.selected": "Selected",
107
+ "warranty_claims.create.summary.sla": "The SLA clock starts when the claim is submitted.",
108
+ "warranty_claims.create.summary.title": "Claim summary",
109
+ "warranty_claims.create.title": "New claim",
110
+ "warranty_claims.customerTab.title": "Claims",
111
+ "warranty_claims.dashboard.widgets.claimsQueue.description": "Open warranty claims, SLA risk, and overdue counts with quick links into the claims desk.",
112
+ "warranty_claims.dashboard.widgets.claimsQueue.title": "Warranty claims queue",
113
+ "warranty_claims.detail.actions.assign": "Assign",
114
+ "warranty_claims.detail.actions.backToDetail": "Back to claim",
115
+ "warranty_claims.detail.actions.backToList": "Back to claims",
116
+ "warranty_claims.detail.actions.cancel": "Cancel claim",
117
+ "warranty_claims.detail.actions.edit": "Edit",
118
+ "warranty_claims.detail.actions.noTransitions": "No status actions available.",
119
+ "warranty_claims.detail.actions.submit": "Submit",
120
+ "warranty_claims.detail.actions.transition": "Change status",
121
+ "warranty_claims.detail.actions.transitionTo": "Move to {status}",
122
+ "warranty_claims.detail.actions.vendorRecovery": "Create vendor recovery",
123
+ "warranty_claims.detail.assignDialog.empty": "No staff members found.",
124
+ "warranty_claims.detail.assignDialog.loading": "Loading staff...",
125
+ "warranty_claims.detail.assignDialog.search": "Search staff",
126
+ "warranty_claims.detail.assignDialog.searchPlaceholder": "Search by name or email",
127
+ "warranty_claims.detail.assignDialog.staff": "Staff member",
128
+ "warranty_claims.detail.assignDialog.title": "Reassign claim",
129
+ "warranty_claims.detail.assignToMe": "Assign to me",
130
+ "warranty_claims.detail.assignee": "Assignee",
131
+ "warranty_claims.detail.attachments.customerVisible": "Visible to customer",
132
+ "warranty_claims.detail.badge.customerReplied": "Customer replied",
133
+ "warranty_claims.detail.claimNumberCopied": "Claim number copied.",
134
+ "warranty_claims.detail.confirm.cancelTitle": "Cancel claim?",
135
+ "warranty_claims.detail.confirm.rejectTitle": "Reject claim?",
136
+ "warranty_claims.detail.confirm.transitionTitle": "Change claim status?",
137
+ "warranty_claims.detail.copyClaimNumber": "Copy claim number",
138
+ "warranty_claims.detail.copyFailed": "Could not copy to the clipboard.",
139
+ "warranty_claims.detail.copyLink": "Copy link",
140
+ "warranty_claims.detail.createCreditMemo": "Create credit memo",
141
+ "warranty_claims.detail.createCreditMemoSkipped": "Some lines were skipped because they have no linked order line, have an ineligible status or disposition, have nothing received, use a different currency, or have a zero source-order quantity. ({count})",
142
+ "warranty_claims.detail.createCreditMemoSuccess": "Credit memo for {amount} {currency} created and linked to the claim.",
143
+ "warranty_claims.detail.createReplacementOrder": "Create replacement order",
144
+ "warranty_claims.detail.createReplacementOrderSkipped": "{count} line(s) were skipped — they have no linked order line, have an ineligible status or disposition, have a zero or fractional quantity, or their source order line could not be resolved.",
145
+ "warranty_claims.detail.createReplacementOrderSuccess": "Replacement order created and linked to the claim.",
146
+ "warranty_claims.detail.createSalesReturn": "Create sales return",
147
+ "warranty_claims.detail.createSalesReturnSkipped": "{count} line(s) were skipped — they have no linked order line, are not approved, or have a zero or fractional quantity.",
148
+ "warranty_claims.detail.createSalesReturnSuccess": "Sales return created and linked to the claim.",
149
+ "warranty_claims.detail.customer": "Customer",
150
+ "warranty_claims.detail.customerActor": "Customer",
151
+ "warranty_claims.detail.entitlement": "Entitlement",
152
+ "warranty_claims.detail.error.action": "Failed to update claim.",
153
+ "warranty_claims.detail.error.comment": "Failed to add comment.",
154
+ "warranty_claims.detail.error.load": "Failed to load claim.",
155
+ "warranty_claims.detail.error.loadEvents": "Failed to load claim timeline.",
156
+ "warranty_claims.detail.error.loadLines": "Failed to load claim lines.",
157
+ "warranty_claims.detail.error.loadRisk": "Failed to load claim risk signals.",
158
+ "warranty_claims.detail.error.loadUsers": "Failed to resolve user names.",
159
+ "warranty_claims.detail.flash.commentAdded": "Comment added.",
160
+ "warranty_claims.detail.flash.transitioned": "Claim updated.",
161
+ "warranty_claims.detail.lines.add": "Add line",
162
+ "warranty_claims.detail.lines.amounts": "Amounts",
163
+ "warranty_claims.detail.lines.approvedCount": "{count} lines approved",
164
+ "warranty_claims.detail.lines.column.credit": "Credit",
165
+ "warranty_claims.detail.lines.column.entitlement": "Entitlement",
166
+ "warranty_claims.detail.lines.column.number": "#",
167
+ "warranty_claims.detail.lines.column.product": "Product",
168
+ "warranty_claims.detail.lines.column.status": "Status",
169
+ "warranty_claims.detail.lines.count": "{count} lines",
170
+ "warranty_claims.detail.lines.edit": "Edit line",
171
+ "warranty_claims.detail.lines.empty.description": "Add a claim line to capture product, quantity, fault, and disposition details.",
172
+ "warranty_claims.detail.lines.empty.title": "No claim lines yet",
173
+ "warranty_claims.detail.lines.error.delete": "Failed to delete claim line.",
174
+ "warranty_claims.detail.lines.error.save": "Failed to save claim line.",
175
+ "warranty_claims.detail.lines.flash.created": "Claim line added.",
176
+ "warranty_claims.detail.lines.flash.deleted": "Claim line deleted.",
177
+ "warranty_claims.detail.lines.flash.saved": "Claim line saved.",
178
+ "warranty_claims.detail.lines.inspection": "Inspection",
179
+ "warranty_claims.detail.lines.noVendorClaims": "No vendor claims yet",
180
+ "warranty_claims.detail.lines.unnamed": "Unnamed line",
181
+ "warranty_claims.detail.linkCopied": "Link copied.",
182
+ "warranty_claims.detail.loading": "Loading claim...",
183
+ "warranty_claims.detail.opened": "Opened",
184
+ "warranty_claims.detail.owner": "Owner",
185
+ "warranty_claims.detail.priority": "Priority",
186
+ "warranty_claims.detail.reassign": "Reassign",
187
+ "warranty_claims.detail.stage.approved": "Approved",
188
+ "warranty_claims.detail.stage.decision": "Decision",
189
+ "warranty_claims.detail.stage.goodsFlow": "Goods flow",
190
+ "warranty_claims.detail.stage.goodsIn": "Goods-in",
191
+ "warranty_claims.detail.stage.intake": "Intake",
192
+ "warranty_claims.detail.stage.resolved": "Resolved",
193
+ "warranty_claims.detail.stage.review": "Review",
194
+ "warranty_claims.detail.stage.submitted": "Submitted",
195
+ "warranty_claims.detail.state": "State",
196
+ "warranty_claims.detail.systemActor": "System",
197
+ "warranty_claims.detail.tabs.ai": "AI assist",
198
+ "warranty_claims.detail.tabs.attachments": "Attachments",
199
+ "warranty_claims.detail.tabs.label": "Claim sections",
200
+ "warranty_claims.detail.tabs.lines": "Lines",
201
+ "warranty_claims.detail.tabs.timeline": "Timeline",
202
+ "warranty_claims.detail.timeline.addComment": "Add comment",
203
+ "warranty_claims.detail.timeline.commentPlaceholder": "Add an internal or customer-visible comment",
204
+ "warranty_claims.detail.timeline.empty.description": "Status changes, assignments, and comments will appear here.",
205
+ "warranty_claims.detail.timeline.empty.title": "No timeline entries yet",
206
+ "warranty_claims.detail.timeline.filter.all": "All",
207
+ "warranty_claims.detail.timeline.filter.comments": "Comments",
208
+ "warranty_claims.detail.timeline.filter.customerVisible": "Customer-visible",
209
+ "warranty_claims.detail.timeline.filter.label": "Filter timeline",
210
+ "warranty_claims.detail.timeline.filter.statusChanges": "Status changes",
211
+ "warranty_claims.detail.timeline.filterEmpty.description": "No timeline events match the selected filter.",
212
+ "warranty_claims.detail.timeline.filterEmpty.title": "No matching events",
213
+ "warranty_claims.detail.title": "Claim detail",
214
+ "warranty_claims.detail.totalApproved": "Approved amount",
215
+ "warranty_claims.detail.totalClaimed": "Claimed amount",
216
+ "warranty_claims.detail.totalRecovered": "Recovered amount",
217
+ "warranty_claims.detail.unassigned": "Unassigned",
218
+ "warranty_claims.detail.unknownUser": "Unknown user",
219
+ "warranty_claims.detail.unnumbered": "Unnumbered claim",
220
+ "warranty_claims.detail.vendorRecovery.created": "Vendor recovery claim created.",
221
+ "warranty_claims.detail.vendorRecovery.lines": "Resolved lines",
222
+ "warranty_claims.detail.viewOrder": "View order",
223
+ "warranty_claims.detail.visibility.customer": "Customer visible",
224
+ "warranty_claims.detail.visibility.internal": "Internal",
225
+ "warranty_claims.detail.visibility.label": "Comment visibility",
226
+ "warranty_claims.disposition.credit": "Credit",
227
+ "warranty_claims.disposition.deny": "Deny",
228
+ "warranty_claims.disposition.field_destroy": "Field destroy",
229
+ "warranty_claims.disposition.refund": "Refund",
230
+ "warranty_claims.disposition.repair": "Repair",
231
+ "warranty_claims.disposition.replace": "Replace",
232
+ "warranty_claims.disposition.restock": "Restock",
233
+ "warranty_claims.disposition.return_to_vendor": "Return to vendor",
234
+ "warranty_claims.disposition.scrap": "Scrap",
235
+ "warranty_claims.edit.deleted": "Claim deleted.",
236
+ "warranty_claims.edit.error.delete": "Failed to delete claim.",
237
+ "warranty_claims.edit.error.load": "Failed to load claim.",
238
+ "warranty_claims.edit.error.save": "Failed to save claim.",
239
+ "warranty_claims.edit.fulfillment.notice": "Intake details are locked after approval. Complete the goods flow and resolution details below.",
240
+ "warranty_claims.edit.fulfillment.replacement": "Replacement",
241
+ "warranty_claims.edit.fulfillment.resolution": "Resolution",
242
+ "warranty_claims.edit.fulfillment.returnCredit": "Return and credit",
243
+ "warranty_claims.edit.fulfillment.title": "Edit claim — Fulfillment",
244
+ "warranty_claims.edit.fulfillment.vendorRecovery": "Vendor recovery",
245
+ "warranty_claims.edit.fulfillmentFields": "Fulfillment fields",
246
+ "warranty_claims.edit.intakeFields": "Intake fields",
247
+ "warranty_claims.edit.loading": "Loading claim...",
248
+ "warranty_claims.edit.locked.description": "This claim status does not allow direct header edits. Use lifecycle actions or reopen the claim where allowed.",
249
+ "warranty_claims.edit.locked.title": "Claim fields are locked",
250
+ "warranty_claims.edit.success": "Claim saved.",
251
+ "warranty_claims.edit.title": "Edit claim",
252
+ "warranty_claims.eligibility.in_warranty": "In warranty",
253
+ "warranty_claims.eligibility.out_of_warranty": "Out of warranty",
254
+ "warranty_claims.eligibility.unknown": "Unknown",
255
+ "warranty_claims.entitlement.coverage.extended": "Extended",
256
+ "warranty_claims.entitlement.coverage.none": "No coverage",
257
+ "warranty_claims.entitlement.coverage.standard": "Standard",
258
+ "warranty_claims.entitlement.error.load": "Failed to resolve warranty entitlement.",
259
+ "warranty_claims.entitlement.expiresAt": "Expires {date}",
260
+ "warranty_claims.entitlement.loading": "Checking entitlement...",
261
+ "warranty_claims.entitlement.priorClaims": "{count} prior claims",
262
+ "warranty_claims.entitlement.priorClaims.more": "+{count} more",
263
+ "warranty_claims.entitlement.source.manual": "Manual",
264
+ "warranty_claims.entitlement.source.order": "Order",
265
+ "warranty_claims.entitlement.source.registration": "Registration",
266
+ "warranty_claims.entitlement.source.resolver": "Resolver",
267
+ "warranty_claims.entitlement.sourceLabel": "Source: {source}",
268
+ "warranty_claims.entitlement.status.in_warranty": "In warranty",
269
+ "warranty_claims.entitlement.status.out_of_warranty": "Out of warranty",
270
+ "warranty_claims.entitlement.status.unknown": "Unknown",
271
+ "warranty_claims.errors.aiNotConfigured": "AI drafting is not configured for this workspace",
272
+ "warranty_claims.errors.aiUnavailable": "AI drafting is temporarily unavailable",
273
+ "warranty_claims.errors.attachmentNotLinked": "The attachment is not linked to this claim.",
274
+ "warranty_claims.errors.autoApproveConfigIncomplete": "Auto-approve requires both a maximum amount and currency.",
275
+ "warranty_claims.errors.conflict": "This claim changed while you were editing it.",
276
+ "warranty_claims.errors.creditMemoAlreadyLinked": "This claim is already linked to a credit memo.",
277
+ "warranty_claims.errors.creditMemoChangedUndoAborted": "The linked credit memo has been modified since it was created, so the undo was aborted.",
278
+ "warranty_claims.errors.creditMemoInvalidStatus": "A credit memo can only be created for received, inspecting, or resolved claims.",
279
+ "warranty_claims.errors.creditMemoNoEligibleLines": "No claim lines are eligible for a credit memo.",
280
+ "warranty_claims.errors.creditMemoRequiresOrder": "This claim is not linked to an available sales order, so a credit memo cannot be created.",
281
+ "warranty_claims.errors.creditMemoSalesUnavailable": "The sales module is not available, so a credit memo cannot be created.",
282
+ "warranty_claims.errors.currencyCodeFormat": "Enter a 3-letter currency code (e.g. USD).",
283
+ "warranty_claims.errors.customerAccountNotLinked": "Customer account is not linked to a customer record",
284
+ "warranty_claims.errors.customerOrderMismatch": "Customer does not match the order",
285
+ "warranty_claims.errors.decimalNonNegative": "Value must be zero or greater.",
286
+ "warranty_claims.errors.deleteNotAllowed": "Only draft or cancelled claims can be deleted.",
287
+ "warranty_claims.errors.dispositionGradeConflict": "Restock is only allowed for grade A or B items.",
288
+ "warranty_claims.errors.dispositionTypeConflict": "This disposition is not available for this claim type.",
289
+ "warranty_claims.errors.duplicateSerial": "A registration with this serial number already exists.",
290
+ "warranty_claims.errors.fieldLocked": "This field can't be edited in the current claim status.",
291
+ "warranty_claims.errors.invalidAssignee": "The selected assignee could not be found.",
292
+ "warranty_claims.errors.invalidEmail": "Enter a valid email address.",
293
+ "warranty_claims.errors.invalidInput": "Invalid input",
294
+ "warranty_claims.errors.invalidReference": "The referenced order, order line, return, or replacement order could not be found.",
295
+ "warranty_claims.errors.invalidTransition": "That status change is not allowed.",
296
+ "warranty_claims.errors.invalidTroubleshootingSteps": "Troubleshooting steps must include a prompt and valid option branches.",
297
+ "warranty_claims.errors.lineLocked": "This line is locked in the current claim status.",
298
+ "warranty_claims.errors.load_failed": "Failed to load warranty claim data.",
299
+ "warranty_claims.errors.notFound": "Claim not found.",
300
+ "warranty_claims.errors.orderLineMismatch": "Order line does not belong to the selected order",
301
+ "warranty_claims.errors.orderNotFound": "Order not found",
302
+ "warranty_claims.errors.orderNotOwned": "Order not found.",
303
+ "warranty_claims.errors.organization_required": "Organization context is required.",
304
+ "warranty_claims.errors.qtyApprovedExceedsClaimed": "Approved quantity cannot exceed the claimed quantity.",
305
+ "warranty_claims.errors.qtyExceedsOrdered": "Claimed quantity exceeds the quantity sold on the linked order line.",
306
+ "warranty_claims.errors.qtyReceivedExceedsClaimed": "Received quantity cannot exceed the claimed quantity.",
307
+ "warranty_claims.errors.receivingStatusInvalid": "Receiving details can only be saved when the claim is received or under inspection.",
308
+ "warranty_claims.errors.recoveryRateFormat": "Enter a number with up to 2 decimal places.",
309
+ "warranty_claims.errors.recoveryRateRange": "Recovery rate must be between 0 and 100.",
310
+ "warranty_claims.errors.replacementAlreadyLinked": "This claim is already linked to a replacement order.",
311
+ "warranty_claims.errors.replacementInvalidStatus": "A replacement order can only be created for approved, awaiting-return, received, inspecting, or resolved claims.",
312
+ "warranty_claims.errors.replacementNoEligibleLines": "No claim lines are eligible for a replacement order. Lines need the replace disposition, an eligible status, a linked source order line, and a positive whole-unit quantity.",
313
+ "warranty_claims.errors.replacementOrderChangedUndoAborted": "The linked replacement order has been modified since it was created, so the undo was aborted.",
314
+ "warranty_claims.errors.replacementOrderRequiresOrder": "This claim is not linked to an available sales order, so a replacement order cannot be created.",
315
+ "warranty_claims.errors.replacementSalesUnavailable": "The sales module is not available, so a replacement order cannot be created.",
316
+ "warranty_claims.errors.returnLabelInvalidStatus": "Return labels can only be created for approved claims that are awaiting return.",
317
+ "warranty_claims.errors.returnLabelUrlInvalid": "Enter a valid http(s) URL.",
318
+ "warranty_claims.errors.salesReturnAlreadyLinked": "This claim is already linked to a sales return.",
319
+ "warranty_claims.errors.salesReturnChangedUndoAborted": "The linked sales return has been modified since it was created, so the undo was aborted.",
320
+ "warranty_claims.errors.salesReturnNoEligibleLines": "No claim lines are eligible for a sales return. Lines need an approved status, a linked order line, and a positive quantity.",
321
+ "warranty_claims.errors.salesReturnQuantityRejected": "The sales module rejected the return quantity — more units were requested than have been shipped. Ship the items or lower the approved quantity.",
322
+ "warranty_claims.errors.salesReturnRequiresOrder": "This claim is not linked to a sales order, so a sales return cannot be created.",
323
+ "warranty_claims.errors.salesReturnStatusNotEligible": "A sales return can only be created for approved claims that are awaiting, receiving, or inspecting the return.",
324
+ "warranty_claims.errors.salesUnavailable": "The sales module is not available, so a sales return cannot be created.",
325
+ "warranty_claims.errors.save_failed": "Failed to save warranty claim.",
326
+ "warranty_claims.errors.unauthorized": "Unauthorized",
327
+ "warranty_claims.errors.vendorRecoveryNeedsResolvedLines": "Vendor recovery requires resolved claim lines.",
328
+ "warranty_claims.eventKind.assignment": "Assignment",
329
+ "warranty_claims.eventKind.comment": "Comment",
330
+ "warranty_claims.eventKind.status_changed": "Status changed",
331
+ "warranty_claims.eventKind.system": "System",
332
+ "warranty_claims.faultOption.damaged-in-transit": "Damaged in transit",
333
+ "warranty_claims.faultOption.defective": "Defective",
334
+ "warranty_claims.faultOption.doa": "Dead on arrival",
335
+ "warranty_claims.faultOption.worn": "Worn",
336
+ "warranty_claims.faultOption.wrong-item": "Wrong item",
337
+ "warranty_claims.form.addFromOrder": "Add from order",
338
+ "warranty_claims.form.addFromOrder.added": "{count} line(s) added from order",
339
+ "warranty_claims.form.addFromOrder.clear": "Clear",
340
+ "warranty_claims.form.addFromOrder.confirm": "Add selected lines",
341
+ "warranty_claims.form.addFromOrder.count": "{shown} of {total} lines",
342
+ "warranty_claims.form.addFromOrder.empty": "No product lines found on this order.",
343
+ "warranty_claims.form.addFromOrder.error": "Failed to load order lines.",
344
+ "warranty_claims.form.addFromOrder.loading": "Loading order lines...",
345
+ "warranty_claims.form.addFromOrder.quantity": "Ordered {quantity}",
346
+ "warranty_claims.form.addFromOrder.search": "Filter by product or SKU",
347
+ "warranty_claims.form.addFromOrder.selectAll": "Select all",
348
+ "warranty_claims.form.addFromOrder.selectLine": "Select {name}",
349
+ "warranty_claims.form.addFromOrder.selected": "{count} selected",
350
+ "warranty_claims.form.addFromOrder.truncated": "first {limit} only",
351
+ "warranty_claims.form.advanceReplacement": "Advance replacement",
352
+ "warranty_claims.form.advanceShippedAt": "Advance shipped at",
353
+ "warranty_claims.form.assigneeUserId": "Assignee",
354
+ "warranty_claims.form.assigneeUserId.placeholder": "User ID",
355
+ "warranty_claims.form.assigneeUserId.searchPlaceholder": "Search staff",
356
+ "warranty_claims.form.assigneeUserId.unassigned": "Unassigned",
357
+ "warranty_claims.form.claimType": "Claim type",
358
+ "warranty_claims.form.conditionOnReceipt": "Condition on receipt",
359
+ "warranty_claims.form.coreChargeAmount": "Core charge amount",
360
+ "warranty_claims.form.coreCreditAmount": "Core credit amount",
361
+ "warranty_claims.form.creditAmount": "Credit amount",
362
+ "warranty_claims.form.creditMemoId": "Credit memo",
363
+ "warranty_claims.form.creditMemoId.noOrder": "Link the claim to an order first to select a credit memo.",
364
+ "warranty_claims.form.creditMemoUnavailable": "Credit memo unavailable",
365
+ "warranty_claims.form.currencyCode": "Currency",
366
+ "warranty_claims.form.customerId": "Customer",
367
+ "warranty_claims.form.customerId.placeholder": "Search customers",
368
+ "warranty_claims.form.customerName": "Customer name",
369
+ "warranty_claims.form.customerUnavailable": "Customer unavailable",
370
+ "warranty_claims.form.customerUnnamed": "Unnamed customer",
371
+ "warranty_claims.form.disposition": "Disposition",
372
+ "warranty_claims.form.entitlement": "Warranty check",
373
+ "warranty_claims.form.entitlement.inWarranty": "In warranty",
374
+ "warranty_claims.form.entitlement.outOfWarranty": "Out of warranty",
375
+ "warranty_claims.form.error.dictionaryLoad": "Failed to load dictionary entries.",
376
+ "warranty_claims.form.faultCode": "Fault code",
377
+ "warranty_claims.form.faultCode.placeholder": "Select fault code",
378
+ "warranty_claims.form.faultDescription": "Fault description",
379
+ "warranty_claims.form.header": "Claim details",
380
+ "warranty_claims.form.inspectionNotes": "Inspection notes",
381
+ "warranty_claims.form.lineHeader": "Claim line",
382
+ "warranty_claims.form.lineHeader.core_return": "Core return item",
383
+ "warranty_claims.form.lineHeader.return": "Return item",
384
+ "warranty_claims.form.lineHeader.vendor_recovery": "Supplier recovery item",
385
+ "warranty_claims.form.lineHeader.warranty": "Claim item",
386
+ "warranty_claims.form.lineNo": "Line no.",
387
+ "warranty_claims.form.lineStatus": "Line status",
388
+ "warranty_claims.form.lines.add": "Add line",
389
+ "warranty_claims.form.lines.edit": "Edit line",
390
+ "warranty_claims.form.lines.empty.description": "Add a claim line or import them from the linked order.",
391
+ "warranty_claims.form.lines.empty.noMatches": "No claim lines match your search",
392
+ "warranty_claims.form.lines.empty.title": "No claim lines yet",
393
+ "warranty_claims.form.lines.error.maxLines": "A claim can hold at most {max} lines. Remove some lines or select fewer.",
394
+ "warranty_claims.form.lines.error.qtyPositive": "Claimed quantity must be greater than zero.",
395
+ "warranty_claims.form.lines.error.required": "Add at least one claim line.",
396
+ "warranty_claims.form.lines.lineLabel": "Line {number}",
397
+ "warranty_claims.form.lines.remove": "Remove line",
398
+ "warranty_claims.form.lines.search": "Search product, SKU or serial number",
399
+ "warranty_claims.form.lines.unnamed": "Unnamed line",
400
+ "warranty_claims.form.lotNumber": "Lot number",
401
+ "warranty_claims.form.notes": "Notes",
402
+ "warranty_claims.form.orderId": "Order",
403
+ "warranty_claims.form.orderId.noAccess": "You don't have access to orders",
404
+ "warranty_claims.form.orderId.placeholder": "Search orders",
405
+ "warranty_claims.form.orderLineId": "Order line",
406
+ "warranty_claims.form.orderUnavailable": "Order unavailable",
407
+ "warranty_claims.form.priority": "Priority",
408
+ "warranty_claims.form.productId": "Product",
409
+ "warranty_claims.form.productLookup": "Catalog product",
410
+ "warranty_claims.form.productLookup.clear": "Clear product",
411
+ "warranty_claims.form.productLookup.search": "Search product",
412
+ "warranty_claims.form.productName": "Product name",
413
+ "warranty_claims.form.productUnknown": "Unknown product",
414
+ "warranty_claims.form.purchaseDate": "Purchase date",
415
+ "warranty_claims.form.qtyApproved": "Quantity approved",
416
+ "warranty_claims.form.qtyClaimed": "Quantity claimed",
417
+ "warranty_claims.form.qtyReceived": "Quantity received",
418
+ "warranty_claims.form.reasonCode": "Reason",
419
+ "warranty_claims.form.rejectionReasonCode": "Rejection reason",
420
+ "warranty_claims.form.replacementOrderId": "Replacement order",
421
+ "warranty_claims.form.resolutionSummary": "Resolution summary",
422
+ "warranty_claims.form.restockingFee": "Restocking fee",
423
+ "warranty_claims.form.returnUnavailable": "Return unavailable",
424
+ "warranty_claims.form.salesReturnId": "Sales return",
425
+ "warranty_claims.form.salesReturnId.noOrder": "Link the claim to an order first to select a return.",
426
+ "warranty_claims.form.serialNumber": "Serial number",
427
+ "warranty_claims.form.sku": "SKU",
428
+ "warranty_claims.form.sourceClaimId": "Source claim",
429
+ "warranty_claims.form.submit": "Save",
430
+ "warranty_claims.form.troubleshooting.loading": "Loading guide...",
431
+ "warranty_claims.form.troubleshooting.title": "Guided troubleshooting",
432
+ "warranty_claims.form.variantLookup": "Variant",
433
+ "warranty_claims.form.variantLookup.search": "Search variant",
434
+ "warranty_claims.form.vendorClaimLineId": "Vendor claim line",
435
+ "warranty_claims.form.vendorName": "Vendor name",
436
+ "warranty_claims.form.vendorRef": "Vendor reference",
437
+ "warranty_claims.form.warrantyExpiresAt": "Warranty expires at",
438
+ "warranty_claims.form.warrantyMonths": "Warranty months",
439
+ "warranty_claims.form.warrantyStatus": "Warranty status",
440
+ "warranty_claims.kpi.approvalRate": "Approval rate",
441
+ "warranty_claims.kpi.approvalRate.approved": "{count} claims approved",
442
+ "warranty_claims.kpi.assignedToMe": "Assigned to me",
443
+ "warranty_claims.kpi.assignedToMe.description": "Open claims",
444
+ "warranty_claims.kpi.avgResolution.resolved": "{count} claims resolved",
445
+ "warranty_claims.kpi.avgResolutionDays": "Avg resolution",
446
+ "warranty_claims.kpi.daysShort": "{count}d",
447
+ "warranty_claims.kpi.last30d": "Last 30 days",
448
+ "warranty_claims.kpi.loading": "Loading claim KPIs",
449
+ "warranty_claims.kpi.openClaims": "Open claims",
450
+ "warranty_claims.kpi.openClaims.attention": "{count} need attention",
451
+ "warranty_claims.kpi.openClaims.description": "Active queue",
452
+ "warranty_claims.kpi.overdue": "Overdue",
453
+ "warranty_claims.kpi.overdue.description": "Needs attention",
454
+ "warranty_claims.kpi.recovered": "Recovered",
455
+ "warranty_claims.kpi.recovered.description": "From vendors",
456
+ "warranty_claims.kpi.recovered.moreCurrencies": "Last 30 days — largest of {count} currencies",
457
+ "warranty_claims.kpi.slaCompliance": "SLA compliance",
458
+ "warranty_claims.kpi.slaCompliance.description": "Within target window",
459
+ "warranty_claims.kpi.slaCompliance.overdue": "{count} overdue",
460
+ "warranty_claims.lineStatus.approved": "Approved",
461
+ "warranty_claims.lineStatus.inspected": "Inspected",
462
+ "warranty_claims.lineStatus.pending": "Pending",
463
+ "warranty_claims.lineStatus.received": "Received",
464
+ "warranty_claims.lineStatus.rejected": "Rejected",
465
+ "warranty_claims.lineStatus.resolved": "Resolved",
466
+ "warranty_claims.lines.header.qtyApproved": "Qty approved",
467
+ "warranty_claims.lines.header.qtyClaimed": "Qty claimed",
468
+ "warranty_claims.lines.header.qtyReceived": "Qty received",
469
+ "warranty_claims.list.actions.assign": "Assign",
470
+ "warranty_claims.list.actions.assignToMe": "Assign to me",
471
+ "warranty_claims.list.actions.cancel": "Cancel claim",
472
+ "warranty_claims.list.actions.new": "New claim",
473
+ "warranty_claims.list.actions.open": "Open",
474
+ "warranty_claims.list.actions.openInNewTab": "Open in new tab",
475
+ "warranty_claims.list.actions.refresh": "Refresh",
476
+ "warranty_claims.list.actions.startReview": "Start review",
477
+ "warranty_claims.list.assignee.unknownUser": "Unknown user",
478
+ "warranty_claims.list.badge.customerReplied": "Customer replied",
479
+ "warranty_claims.list.column.assignee": "Assignee",
480
+ "warranty_claims.list.column.channel": "Channel",
481
+ "warranty_claims.list.column.claimNumber": "Claim no.",
482
+ "warranty_claims.list.column.claimType": "Type",
483
+ "warranty_claims.list.column.customer": "Customer",
484
+ "warranty_claims.list.column.order": "Order",
485
+ "warranty_claims.list.column.priority": "Priority",
486
+ "warranty_claims.list.column.slaDueAt": "SLA due",
487
+ "warranty_claims.list.column.status": "Status",
488
+ "warranty_claims.list.column.updatedAt": "Updated",
489
+ "warranty_claims.list.empty.description": "Claims created by staff or customers will appear here.",
490
+ "warranty_claims.list.empty.title": "No claims yet",
491
+ "warranty_claims.list.error.action": "Failed to update claim.",
492
+ "warranty_claims.list.error.load": "Failed to load warranty claims.",
493
+ "warranty_claims.list.filter.assignee": "Assignee",
494
+ "warranty_claims.list.filter.channel": "Channel",
495
+ "warranty_claims.list.filter.claimType": "Claim type",
496
+ "warranty_claims.list.filter.createdBetween": "Created between",
497
+ "warranty_claims.list.filter.customer": "Customer",
498
+ "warranty_claims.list.filter.order": "Order",
499
+ "warranty_claims.list.filter.overdueOnly": "Overdue only",
500
+ "warranty_claims.list.filter.priority": "Priority",
501
+ "warranty_claims.list.filter.slaAtRiskOnly": "SLA at risk only",
502
+ "warranty_claims.list.filter.status": "Status",
503
+ "warranty_claims.list.filter.submittedBetween": "Submitted between",
504
+ "warranty_claims.list.flash.assigned": "Claim assigned.",
505
+ "warranty_claims.list.flash.cancelled": "Claim cancelled.",
506
+ "warranty_claims.list.flash.reviewStarted": "Review started.",
507
+ "warranty_claims.list.quickFilters.approvedGoodsFlow": "Approved + goods flow",
508
+ "warranty_claims.list.quickFilters.customerReplied": "Customer replied",
509
+ "warranty_claims.list.quickFilters.inReview": "In review",
510
+ "warranty_claims.list.quickFilters.infoRequested": "Info requested",
511
+ "warranty_claims.list.quickFilters.label": "Claim queue filters",
512
+ "warranty_claims.list.quickFilters.myClaims": "My claims",
513
+ "warranty_claims.list.quickFilters.overdue": "Overdue",
514
+ "warranty_claims.list.quickFilters.slaAtRisk": "SLA at risk",
515
+ "warranty_claims.list.quickFilters.submitted": "Submitted",
516
+ "warranty_claims.list.searchPlaceholder": "Search claim no., customer, order, serial, or SKU",
517
+ "warranty_claims.list.tabs.all": "All",
518
+ "warranty_claims.list.tabs.goodsFlow": "Goods flow",
519
+ "warranty_claims.list.tabs.needsAttention": "Needs attention",
520
+ "warranty_claims.list.tabs.resolved": "Resolved",
521
+ "warranty_claims.list.title": "Warranty claims",
522
+ "warranty_claims.list.unnumbered": "Unnumbered claim",
523
+ "warranty_claims.list.viewOrder": "View order",
524
+ "warranty_claims.nav.claims": "Claims",
525
+ "warranty_claims.nav.group": "Warranty claims",
526
+ "warranty_claims.nav.settings": "Warranty settings",
527
+ "warranty_claims.notifications.assigned.body": "A warranty claim has been assigned.",
528
+ "warranty_claims.notifications.assigned.title": "Claim assigned",
529
+ "warranty_claims.notifications.customerReplied.body": "Customer replied to claim {claimNumber}.",
530
+ "warranty_claims.notifications.customerReplied.title": "Customer replied to claim",
531
+ "warranty_claims.notifications.escalated.body": "A warranty claim has reached an escalation threshold.",
532
+ "warranty_claims.notifications.escalated.title": "Claim escalated",
533
+ "warranty_claims.notifications.statusChanged.body": "A warranty claim status changed.",
534
+ "warranty_claims.notifications.statusChanged.title": "Claim status changed",
535
+ "warranty_claims.notifications.submitted.body": "A warranty claim has been submitted for review.",
536
+ "warranty_claims.notifications.submitted.title": "Claim submitted",
537
+ "warranty_claims.portal.actionNeeded": "Action needed",
538
+ "warranty_claims.portal.commentPlaceholder": "Add a comment",
539
+ "warranty_claims.portal.detail.actionConflict": "This claim changed in the meantime. It has been reloaded — please try again.",
540
+ "warranty_claims.portal.detail.actionNeededDescription": "The review team needs more information. Use the comment box below to reply.",
541
+ "warranty_claims.portal.detail.attachmentChooseReplacement": "Choose replacement file",
542
+ "warranty_claims.portal.detail.attachmentDelete": "Delete attachment",
543
+ "warranty_claims.portal.detail.attachmentDeleteConfirm": "Delete \"{name}\"? This action cannot be undone.",
544
+ "warranty_claims.portal.detail.attachmentDeleteError": "Attachment deletion failed.",
545
+ "warranty_claims.portal.detail.attachmentDeleteNamed": "Delete {name}",
546
+ "warranty_claims.portal.detail.attachmentDeleteSuccess": "Attachment deleted.",
547
+ "warranty_claims.portal.detail.attachmentError": "Attachment upload failed.",
548
+ "warranty_claims.portal.detail.attachmentReplace": "Replace",
549
+ "warranty_claims.portal.detail.attachmentReplaceError": "Attachment replacement failed.",
550
+ "warranty_claims.portal.detail.attachmentReplaceNamed": "Replace {name}",
551
+ "warranty_claims.portal.detail.attachmentReplaceSuccess": "Attachment replaced.",
552
+ "warranty_claims.portal.detail.attachmentSuccess": "Attachment uploaded.",
553
+ "warranty_claims.portal.detail.attachmentsEmpty.description": "Upload photos, receipts, or other files that help the review team assess this claim.",
554
+ "warranty_claims.portal.detail.attachmentsEmpty.title": "No attachments yet",
555
+ "warranty_claims.portal.detail.attachmentsTitle": "Attachments",
556
+ "warranty_claims.portal.detail.back": "Back to claims",
557
+ "warranty_claims.portal.detail.blocked": "Claim update blocked by validation.",
558
+ "warranty_claims.portal.detail.chooseFile": "Choose file",
559
+ "warranty_claims.portal.detail.claimNumber": "Claim number",
560
+ "warranty_claims.portal.detail.closedAt": "Closed",
561
+ "warranty_claims.portal.detail.commentError": "Comment could not be posted.",
562
+ "warranty_claims.portal.detail.commentSuccess": "Comment posted.",
563
+ "warranty_claims.portal.detail.commentTitle": "Customer comment",
564
+ "warranty_claims.portal.detail.completedStatus": "Completed",
565
+ "warranty_claims.portal.detail.createdAt": "Created",
566
+ "warranty_claims.portal.detail.currentStatus": "Current",
567
+ "warranty_claims.portal.detail.description": "Track status, messages, claim lines, and attachments for this claim.",
568
+ "warranty_claims.portal.detail.dialogCancel": "Cancel",
569
+ "warranty_claims.portal.detail.fileRequired": "Choose a file before uploading.",
570
+ "warranty_claims.portal.detail.goToComment": "Go to comment box",
571
+ "warranty_claims.portal.detail.lines": "Claim lines",
572
+ "warranty_claims.portal.detail.linesEmpty.description": "Claim lines will appear here once the claim intake is complete.",
573
+ "warranty_claims.portal.detail.linesEmpty.title": "No claim lines",
574
+ "warranty_claims.portal.detail.linesTitle": "Line summary",
575
+ "warranty_claims.portal.detail.loadError": "Claim details could not be loaded.",
576
+ "warranty_claims.portal.detail.loading": "Loading claim details...",
577
+ "warranty_claims.portal.detail.noFileSelected": "No file selected.",
578
+ "warranty_claims.portal.detail.notFoundDescription": "This claim may have been removed or belongs to a different customer account.",
579
+ "warranty_claims.portal.detail.notFoundTitle": "Claim not found",
580
+ "warranty_claims.portal.detail.notSubmitted": "This claim has not been submitted yet.",
581
+ "warranty_claims.portal.detail.openAttachment": "Open",
582
+ "warranty_claims.portal.detail.order": "Order",
583
+ "warranty_claims.portal.detail.pendingStatus": "Pending",
584
+ "warranty_claims.portal.detail.resolvedAt": "Resolved",
585
+ "warranty_claims.portal.detail.selectedFile": "Selected: {name}",
586
+ "warranty_claims.portal.detail.sendComment": "Send comment",
587
+ "warranty_claims.portal.detail.sendingComment": "Sending...",
588
+ "warranty_claims.portal.detail.status": "Status",
589
+ "warranty_claims.portal.detail.statusProgress": "Status progress",
590
+ "warranty_claims.portal.detail.submitConfirm": "Submit claim",
591
+ "warranty_claims.portal.detail.submitDialog.description": "Your claim will be sent to our support team for review. You can still add comments and photos afterwards.",
592
+ "warranty_claims.portal.detail.submitDialog.title": "Submit this claim?",
593
+ "warranty_claims.portal.detail.submitError": "The claim could not be submitted.",
594
+ "warranty_claims.portal.detail.submitSuccess": "Your claim has been submitted.",
595
+ "warranty_claims.portal.detail.submittedAt": "Submitted",
596
+ "warranty_claims.portal.detail.submitting": "Submitting...",
597
+ "warranty_claims.portal.detail.terminal.cancelled": "This claim was cancelled and no further action is expected.",
598
+ "warranty_claims.portal.detail.terminal.rejected": "This claim was rejected. Customer-visible updates remain available in the timeline.",
599
+ "warranty_claims.portal.detail.timeline": "Timeline",
600
+ "warranty_claims.portal.detail.timelineEmpty.description": "Customer-visible updates and comments will appear here.",
601
+ "warranty_claims.portal.detail.timelineEmpty.title": "No timeline entries yet",
602
+ "warranty_claims.portal.detail.timelineTitle": "Customer-visible timeline",
603
+ "warranty_claims.portal.detail.title": "Claim detail",
604
+ "warranty_claims.portal.detail.updatedAt": "Updated",
605
+ "warranty_claims.portal.detail.upload": "Upload",
606
+ "warranty_claims.portal.detail.uploading": "Uploading...",
607
+ "warranty_claims.portal.detail.withdraw": "Withdraw claim",
608
+ "warranty_claims.portal.detail.withdrawConfirm": "Withdraw claim",
609
+ "warranty_claims.portal.detail.withdrawDialog.description": "The claim will be cancelled and cannot be reopened. This cannot be undone.",
610
+ "warranty_claims.portal.detail.withdrawDialog.title": "Withdraw this claim?",
611
+ "warranty_claims.portal.detail.withdrawError": "The claim could not be withdrawn.",
612
+ "warranty_claims.portal.detail.withdrawHint": "No longer need this claim? You can withdraw it while it is a draft or awaiting review.",
613
+ "warranty_claims.portal.detail.withdrawSuccess": "Your claim has been withdrawn.",
614
+ "warranty_claims.portal.detail.withdrawing": "Withdrawing...",
615
+ "warranty_claims.portal.empty.description": "Submit a warranty or return claim and track its progress here.",
616
+ "warranty_claims.portal.empty.title": "No claims yet",
617
+ "warranty_claims.portal.entitlement.inWarranty": "In warranty",
618
+ "warranty_claims.portal.entitlement.outOfWarranty": "Out of warranty",
619
+ "warranty_claims.portal.error.loadList": "Claims could not be loaded.",
620
+ "warranty_claims.portal.event.assignment": "Assignment update",
621
+ "warranty_claims.portal.event.comment": "Comment",
622
+ "warranty_claims.portal.event.noDetails": "No additional details.",
623
+ "warranty_claims.portal.event.status_changed": "Status update",
624
+ "warranty_claims.portal.event.system": "System update",
625
+ "warranty_claims.portal.event.transition": "Status changed from {from} to {to}.",
626
+ "warranty_claims.portal.file.bytes": "{size} B",
627
+ "warranty_claims.portal.file.kilobytes": "{size} KB",
628
+ "warranty_claims.portal.file.megabytes": "{size} MB",
629
+ "warranty_claims.portal.list.column.claim": "Claim",
630
+ "warranty_claims.portal.list.column.createdAt": "Created",
631
+ "warranty_claims.portal.list.column.submittedAt": "Submitted",
632
+ "warranty_claims.portal.list.description": "Review your submitted warranty and return claims.",
633
+ "warranty_claims.portal.list.searchPlaceholder": "Search by claim number or order number",
634
+ "warranty_claims.portal.list.tabs.all": "All",
635
+ "warranty_claims.portal.list.tabs.label": "Claim status",
636
+ "warranty_claims.portal.list.tabs.open": "Open",
637
+ "warranty_claims.portal.list.tabs.resolved": "Resolved",
638
+ "warranty_claims.portal.listTitle": "My claims",
639
+ "warranty_claims.portal.nav": "Claims",
640
+ "warranty_claims.portal.new.addLine": "Add line",
641
+ "warranty_claims.portal.new.addSelectedItems": "Add selected items",
642
+ "warranty_claims.portal.new.attachmentRejected": "{name}: {reason}",
643
+ "warranty_claims.portal.new.attachmentsHelp": "Optional. Photos of the fault help us review your claim faster. Files are uploaded when you submit the claim.",
644
+ "warranty_claims.portal.new.attachmentsPartialFailure": "Your claim was created, but these files could not be uploaded: {files}. You can add them again from the claim page.",
645
+ "warranty_claims.portal.new.attachmentsTitle": "Photos and documents",
646
+ "warranty_claims.portal.new.back": "Back to claims",
647
+ "warranty_claims.portal.new.blocked": "Claim submission blocked by validation.",
648
+ "warranty_claims.portal.new.cancel": "Cancel",
649
+ "warranty_claims.portal.new.description": "Submit a warranty or return claim for review.",
650
+ "warranty_claims.portal.new.detailsDescription": "Choose a reason and add notes for the review team.",
651
+ "warranty_claims.portal.new.detailsTitle": "Claim details",
652
+ "warranty_claims.portal.new.duplicateWarning": "You already have a claim with this serial number: {claimNumbers}",
653
+ "warranty_claims.portal.new.error": "Claim could not be submitted.",
654
+ "warranty_claims.portal.new.faultCodeChoose": "Choose a fault code...",
655
+ "warranty_claims.portal.new.lineLabel": "Line {number}",
656
+ "warranty_claims.portal.new.linesDescription": "Add one or more products, serial numbers, quantities, and fault details.",
657
+ "warranty_claims.portal.new.linesTitle": "Claim lines",
658
+ "warranty_claims.portal.new.nextStep": "Next",
659
+ "warranty_claims.portal.new.noOrder": "No order",
660
+ "warranty_claims.portal.new.noOrderDescription": "Continue without linking this claim to an order.",
661
+ "warranty_claims.portal.new.orderDescription": "Add an optional order reference and the reason code for this claim.",
662
+ "warranty_claims.portal.new.orderLinesTitle": "Select products from this order",
663
+ "warranty_claims.portal.new.orderNotListed": "My order isn't listed",
664
+ "warranty_claims.portal.new.orderNotListedDescription": "Enter an order reference manually.",
665
+ "warranty_claims.portal.new.orderReference": "Order reference",
666
+ "warranty_claims.portal.new.orderReferenceHelp": "Use the order ID when available.",
667
+ "warranty_claims.portal.new.orderSearch": "Search orders",
668
+ "warranty_claims.portal.new.orderSearchPlaceholder": "Search by order number",
669
+ "warranty_claims.portal.new.orderTitle": "Order reference",
670
+ "warranty_claims.portal.new.previousStep": "Back",
671
+ "warranty_claims.portal.new.productOrSku": "Product or SKU",
672
+ "warranty_claims.portal.new.qtyToClaim": "Quantity to claim",
673
+ "warranty_claims.portal.new.reasonChoose": "Choose a reason...",
674
+ "warranty_claims.portal.new.removeAttachment": "Remove file",
675
+ "warranty_claims.portal.new.removeLine": "Remove line",
676
+ "warranty_claims.portal.new.reviewAttachments": "Attachments",
677
+ "warranty_claims.portal.new.reviewDescription": "Add notes and review the claim before submitting it.",
678
+ "warranty_claims.portal.new.reviewLines": "Lines",
679
+ "warranty_claims.portal.new.reviewNotes": "Notes",
680
+ "warranty_claims.portal.new.reviewOrder": "Order reference",
681
+ "warranty_claims.portal.new.reviewTitle": "Notes and review",
682
+ "warranty_claims.portal.new.submitHint": "Use Cmd/Ctrl+Enter to submit the claim from this form.",
683
+ "warranty_claims.portal.new.submitting": "Submitting...",
684
+ "warranty_claims.portal.new.success": "Claim submitted.",
685
+ "warranty_claims.portal.new.summaryTitle": "Review summary",
686
+ "warranty_claims.portal.new.title": "New claim",
687
+ "warranty_claims.portal.newClaim": "New claim",
688
+ "warranty_claims.portal.submit": "Submit claim",
689
+ "warranty_claims.portal.tracker.activity": "Activity",
690
+ "warranty_claims.portal.tracker.attachFiles": "Attach files",
691
+ "warranty_claims.portal.tracker.banner.approved": "Good news — your claim was approved. We will send you the next steps shortly.",
692
+ "warranty_claims.portal.tracker.banner.awaitingReturn": "Please ship your items back. If needed, we will send you a prepaid return label.",
693
+ "warranty_claims.portal.tracker.banner.draft": "This claim is a draft. Submit it when you are ready so our team can review it.",
694
+ "warranty_claims.portal.tracker.banner.goodsFlow": "We received your items and are inspecting them. You will hear from us soon.",
695
+ "warranty_claims.portal.tracker.banner.infoRequested": "We need more information from you. Please reply in the message box below.",
696
+ "warranty_claims.portal.tracker.banner.resolved": "Your claim has been resolved. Thank you for your patience.",
697
+ "warranty_claims.portal.tracker.banner.review": "We are reviewing your claim. You will hear from us soon. No action is needed right now.",
698
+ "warranty_claims.portal.tracker.draftCreated": "Created {date} — not submitted yet",
699
+ "warranty_claims.portal.tracker.event.attachmentAdded": "You added an attachment",
700
+ "warranty_claims.portal.tracker.event.teamReplied": "Our team replied",
701
+ "warranty_claims.portal.tracker.event.youReplied": "You replied",
702
+ "warranty_claims.portal.tracker.itemMeta": "{sku}, Qty {qty}",
703
+ "warranty_claims.portal.tracker.itemQty": "Qty {qty}",
704
+ "warranty_claims.portal.tracker.items": "Your items",
705
+ "warranty_claims.portal.tracker.message": "Message support",
706
+ "warranty_claims.portal.tracker.messagePlaceholder": "Write a message to our support team…",
707
+ "warranty_claims.portal.tracker.send": "Send",
708
+ "warranty_claims.portal.tracker.sending": "Sending…",
709
+ "warranty_claims.portal.tracker.step.decision.description": "You will get a replacement, repair or refund decision.",
710
+ "warranty_claims.portal.tracker.step.decision.title": "Decision",
711
+ "warranty_claims.portal.tracker.step.now": "Now",
712
+ "warranty_claims.portal.tracker.step.received.description": "We confirmed your claim and notified the store.",
713
+ "warranty_claims.portal.tracker.step.received.title": "Claim received",
714
+ "warranty_claims.portal.tracker.step.resolved.description": "Replacement shipped or refund issued.",
715
+ "warranty_claims.portal.tracker.step.resolved.title": "Resolved",
716
+ "warranty_claims.portal.tracker.step.return.description": "If needed, we will send you a prepaid return label.",
717
+ "warranty_claims.portal.tracker.step.return.title": "Ship items back",
718
+ "warranty_claims.portal.tracker.step.review.description": "Our team is checking your items and warranty coverage.",
719
+ "warranty_claims.portal.tracker.step.review.title": "In review",
720
+ "warranty_claims.portal.tracker.submittedFromOrder": "Submitted {date} from your order {order}",
721
+ "warranty_claims.portal.tracker.submittedOn": "Submitted {date}",
722
+ "warranty_claims.portal.tracker.titleFallback": "{type} claim",
723
+ "warranty_claims.portal.tracker.titleWithReason": "{reason}, {type} claim",
724
+ "warranty_claims.portal.validation.faultDescriptionRequired": "Fault description is required for every line.",
725
+ "warranty_claims.portal.validation.lineRequired": "Add at least one claim line.",
726
+ "warranty_claims.portal.validation.qtyPositive": "Quantity claimed must be greater than zero.",
727
+ "warranty_claims.portal.validation.reasonRequired": "Reason code is required.",
728
+ "warranty_claims.portal.value.no": "No",
729
+ "warranty_claims.portal.value.noSerial": "No serial number",
730
+ "warranty_claims.portal.value.notAvailable": "Not available",
731
+ "warranty_claims.portal.value.unnamedLine": "Claim line",
732
+ "warranty_claims.portal.value.yes": "Yes",
733
+ "warranty_claims.portal.wizard.attachments": "Attachments",
734
+ "warranty_claims.portal.wizard.details": "Details",
735
+ "warranty_claims.portal.wizard.fault": "Fault details",
736
+ "warranty_claims.portal.wizard.items": "Items",
737
+ "warranty_claims.portal.wizard.order": "Order",
738
+ "warranty_claims.portal.wizard.review": "Review",
739
+ "warranty_claims.portal.wizard.reviewSubmit": "Review & submit",
740
+ "warranty_claims.priority.high": "High",
741
+ "warranty_claims.priority.low": "Low",
742
+ "warranty_claims.priority.normal": "Normal",
743
+ "warranty_claims.priority.urgent": "Urgent",
744
+ "warranty_claims.reasonOption.core-exchange": "Core exchange",
745
+ "warranty_claims.reasonOption.customer-remorse": "Customer remorse",
746
+ "warranty_claims.reasonOption.vendor-recall": "Vendor recall",
747
+ "warranty_claims.reasonOption.warranty-defect": "Warranty defect",
748
+ "warranty_claims.reasonOption.wrong-order": "Wrong order",
749
+ "warranty_claims.receiving.actions.grade": "Grade / Receive",
750
+ "warranty_claims.receiving.actions.release": "Release",
751
+ "warranty_claims.receiving.description": "Capture received condition grades and quarantine status per line.",
752
+ "warranty_claims.receiving.dialog.title": "Grade received line",
753
+ "warranty_claims.receiving.error.save": "Failed to save receiving details.",
754
+ "warranty_claims.receiving.fields.conditionGrade": "Condition grade",
755
+ "warranty_claims.receiving.fields.inspectionNotes": "Inspection notes",
756
+ "warranty_claims.receiving.flash.released": "Line released from quarantine.",
757
+ "warranty_claims.receiving.flash.saved": "Receiving details saved.",
758
+ "warranty_claims.receiving.grade.A": "Grade A",
759
+ "warranty_claims.receiving.grade.B": "Grade B",
760
+ "warranty_claims.receiving.grade.C": "Grade C",
761
+ "warranty_claims.receiving.grade.D": "Grade D",
762
+ "warranty_claims.receiving.grade.none": "No grade",
763
+ "warranty_claims.receiving.quarantine.held": "Held",
764
+ "warranty_claims.receiving.quarantine.none": "Not quarantined",
765
+ "warranty_claims.receiving.quarantine.released": "Released",
766
+ "warranty_claims.receiving.readOnly": "Read only",
767
+ "warranty_claims.receiving.title": "Receiving and grading",
768
+ "warranty_claims.registrations.bulk.delete": "Delete selected",
769
+ "warranty_claims.registrations.bulk.deleteTitle": "Delete selected warranty registrations?",
770
+ "warranty_claims.registrations.confirm.deleteTitle": "Delete this warranty registration?",
771
+ "warranty_claims.registrations.coverageType.extended": "Extended",
772
+ "warranty_claims.registrations.coverageType.none": "No coverage",
773
+ "warranty_claims.registrations.coverageType.standard": "Standard",
774
+ "warranty_claims.registrations.create.error.save": "Failed to create warranty registration.",
775
+ "warranty_claims.registrations.create.success": "Warranty registration created.",
776
+ "warranty_claims.registrations.create.title": "New warranty registration",
777
+ "warranty_claims.registrations.edit.deleted": "Warranty registration deleted.",
778
+ "warranty_claims.registrations.edit.error.delete": "Failed to delete warranty registration.",
779
+ "warranty_claims.registrations.edit.error.load": "Failed to load warranty registration.",
780
+ "warranty_claims.registrations.edit.error.save": "Failed to save warranty registration.",
781
+ "warranty_claims.registrations.edit.loading": "Loading warranty registration...",
782
+ "warranty_claims.registrations.edit.notFound": "Warranty registration not found.",
783
+ "warranty_claims.registrations.edit.success": "Warranty registration saved.",
784
+ "warranty_claims.registrations.edit.title": "Edit warranty registration",
785
+ "warranty_claims.registrations.form.coverageType": "Coverage type",
786
+ "warranty_claims.registrations.form.customerId": "Customer",
787
+ "warranty_claims.registrations.form.customerId.placeholder": "Search customers",
788
+ "warranty_claims.registrations.form.group.coverage": "Coverage",
789
+ "warranty_claims.registrations.form.group.notes": "Notes",
790
+ "warranty_claims.registrations.form.group.ownership": "Ownership",
791
+ "warranty_claims.registrations.form.group.product": "Product",
792
+ "warranty_claims.registrations.form.notes": "Notes",
793
+ "warranty_claims.registrations.form.orderId": "Order",
794
+ "warranty_claims.registrations.form.orderId.placeholder": "Search orders",
795
+ "warranty_claims.registrations.form.productName": "Product name",
796
+ "warranty_claims.registrations.form.purchaseDate": "Purchase date",
797
+ "warranty_claims.registrations.form.serialNumber": "Serial number",
798
+ "warranty_claims.registrations.form.sku": "SKU",
799
+ "warranty_claims.registrations.form.source": "Source",
800
+ "warranty_claims.registrations.form.submit.create": "Create registration",
801
+ "warranty_claims.registrations.form.submit.update": "Save registration",
802
+ "warranty_claims.registrations.form.warrantyMonths": "Warranty months",
803
+ "warranty_claims.registrations.list.actions.add": "Add registration",
804
+ "warranty_claims.registrations.list.actions.delete": "Delete",
805
+ "warranty_claims.registrations.list.actions.edit": "Edit",
806
+ "warranty_claims.registrations.list.actions.new": "New registration",
807
+ "warranty_claims.registrations.list.actions.refresh": "Refresh",
808
+ "warranty_claims.registrations.list.column.coverage": "Coverage",
809
+ "warranty_claims.registrations.list.column.customer": "Customer",
810
+ "warranty_claims.registrations.list.column.product": "Product",
811
+ "warranty_claims.registrations.list.column.serial": "Serial",
812
+ "warranty_claims.registrations.list.column.source": "Source",
813
+ "warranty_claims.registrations.list.column.updated": "Updated",
814
+ "warranty_claims.registrations.list.column.warrantyExpiry": "Warranty expiry",
815
+ "warranty_claims.registrations.list.empty.description": "Create a registration to resolve warranty entitlement by serial number.",
816
+ "warranty_claims.registrations.list.empty.title": "No warranty registrations yet",
817
+ "warranty_claims.registrations.list.error.blocked": "Save blocked by validation.",
818
+ "warranty_claims.registrations.list.error.delete": "Failed to delete warranty registration.",
819
+ "warranty_claims.registrations.list.error.load": "Failed to load warranty registrations.",
820
+ "warranty_claims.registrations.list.expiry.active": "Active",
821
+ "warranty_claims.registrations.list.expiry.expired": "Expired",
822
+ "warranty_claims.registrations.list.expiry.expiringSoon": "Expiring in 30 days",
823
+ "warranty_claims.registrations.list.filter.coverageType": "Coverage",
824
+ "warranty_claims.registrations.list.filter.expiry": "Warranty expiry",
825
+ "warranty_claims.registrations.list.filter.source": "Source",
826
+ "warranty_claims.registrations.list.searchPlaceholder": "Search serial, product or customer…",
827
+ "warranty_claims.registrations.list.success.delete": "Warranty registration deleted.",
828
+ "warranty_claims.registrations.list.tabs.all": "All",
829
+ "warranty_claims.registrations.list.tabs.expiring": "Expiring in 30 days",
830
+ "warranty_claims.registrations.list.tabs.extended": "Extended",
831
+ "warranty_claims.registrations.list.tabs.none": "No coverage",
832
+ "warranty_claims.registrations.list.tabs.standard": "Standard",
833
+ "warranty_claims.registrations.list.title": "Warranty registrations",
834
+ "warranty_claims.registrations.nav.title": "Registrations",
835
+ "warranty_claims.registrations.source.manual": "Manual",
836
+ "warranty_claims.registrations.source.order": "Order",
837
+ "warranty_claims.registrations.source.thirdParty": "Third party",
838
+ "warranty_claims.rejectionOption.duplicate-claim": "Duplicate claim",
839
+ "warranty_claims.rejectionOption.no-proof-of-purchase": "No proof of purchase",
840
+ "warranty_claims.rejectionOption.not-our-product": "Not our product",
841
+ "warranty_claims.rejectionOption.out-of-warranty": "Out of warranty",
842
+ "warranty_claims.rejectionOption.physical-abuse": "Physical abuse",
843
+ "warranty_claims.returnLabel.actions.generate": "Generate return label",
844
+ "warranty_claims.returnLabel.actions.hideManual": "Hide manual entry",
845
+ "warranty_claims.returnLabel.actions.manual": "Enter manually",
846
+ "warranty_claims.returnLabel.actions.openLabel": "Open label",
847
+ "warranty_claims.returnLabel.actions.saveManual": "Save return label",
848
+ "warranty_claims.returnLabel.description": "Generate or record customer return shipping details.",
849
+ "warranty_claims.returnLabel.error.manualRequired": "Enter at least one return label detail.",
850
+ "warranty_claims.returnLabel.error.save": "Failed to save return label.",
851
+ "warranty_claims.returnLabel.fields.carrier": "Carrier",
852
+ "warranty_claims.returnLabel.fields.labelUrl": "Label",
853
+ "warranty_claims.returnLabel.fields.trackingNumber": "Tracking number",
854
+ "warranty_claims.returnLabel.flash.created": "Return label created.",
855
+ "warranty_claims.returnLabel.flash.notConfigured": "No return label provider is configured. Enter label details manually.",
856
+ "warranty_claims.returnLabel.flash.saved": "Return label details saved.",
857
+ "warranty_claims.returnLabel.status.created": "Label recorded",
858
+ "warranty_claims.returnLabel.status.missing": "No label",
859
+ "warranty_claims.returnLabel.title": "Return label",
860
+ "warranty_claims.risk.duplicateOrderClaim": "Order already has {count} other open claim(s)",
861
+ "warranty_claims.risk.duplicateSerial": "Serial {serial} appears on {count} other claim(s)",
862
+ "warranty_claims.risk.outsideReturnWindow": "Submitted {days} days after order — outside the {window}-day return window.",
863
+ "warranty_claims.risk.overQuantityClaim": "Claimed quantity across claims exceeds the quantity sold ({count} of {sold}).",
864
+ "warranty_claims.risk.repeatClaimer": "Customer filed {count} other claims in the last 90 days",
865
+ "warranty_claims.risk.valueVelocity": "Customer claimed {total} {currencyCode} in the last 90 days",
866
+ "warranty_claims.search.openClaim": "Open claim",
867
+ "warranty_claims.settings.actions.add": "Add entry",
868
+ "warranty_claims.settings.actions.delete": "Delete",
869
+ "warranty_claims.settings.actions.edit": "Edit",
870
+ "warranty_claims.settings.actions.refresh": "Refresh",
871
+ "warranty_claims.settings.confirm.delete": "Delete {value}?",
872
+ "warranty_claims.settings.dialog.cancel": "Cancel",
873
+ "warranty_claims.settings.dialog.colorClear": "Remove color",
874
+ "warranty_claims.settings.dialog.colorHelp": "Pick a highlight color for this entry.",
875
+ "warranty_claims.settings.dialog.colorLabel": "Color",
876
+ "warranty_claims.settings.dialog.createTitle": "Add dictionary entry",
877
+ "warranty_claims.settings.dialog.editTitle": "Edit dictionary entry",
878
+ "warranty_claims.settings.dialog.iconBrowse": "Browse icons and emojis",
879
+ "warranty_claims.settings.dialog.iconClear": "Remove icon",
880
+ "warranty_claims.settings.dialog.iconLabel": "Icon",
881
+ "warranty_claims.settings.dialog.iconPlaceholder": "Type an emoji or pick a suggestion.",
882
+ "warranty_claims.settings.dialog.iconSearchEmpty": "No icons match your search.",
883
+ "warranty_claims.settings.dialog.iconSearchPlaceholder": "Search icons or emojis...",
884
+ "warranty_claims.settings.dialog.iconSuggestions": "Suggestions",
885
+ "warranty_claims.settings.dialog.labelLabel": "Label",
886
+ "warranty_claims.settings.dialog.previewEmpty": "None",
887
+ "warranty_claims.settings.dialog.save": "Save",
888
+ "warranty_claims.settings.dialog.valueLabel": "Value",
889
+ "warranty_claims.settings.dictionary.claimReasons": "Claim reasons",
890
+ "warranty_claims.settings.dictionary.claimReasons.description": "Configure reasons staff and customers select during claim intake.",
891
+ "warranty_claims.settings.dictionary.faultCodes": "Fault codes",
892
+ "warranty_claims.settings.dictionary.faultCodes.description": "Configure reusable fault codes for claim lines.",
893
+ "warranty_claims.settings.dictionary.rejectionReasons": "Rejection reasons",
894
+ "warranty_claims.settings.dictionary.rejectionReasons.description": "Configure rejection reasons used when claims are denied.",
895
+ "warranty_claims.settings.error.delete": "Failed to delete dictionary entry.",
896
+ "warranty_claims.settings.error.load": "Failed to load warranty claim settings.",
897
+ "warranty_claims.settings.error.save": "Failed to save dictionary entry.",
898
+ "warranty_claims.settings.general.actions.refresh": "Refresh",
899
+ "warranty_claims.settings.general.actions.save": "Save settings",
900
+ "warranty_claims.settings.general.actions.saving": "Saving...",
901
+ "warranty_claims.settings.general.businessHours.addHoliday": "Add holiday",
902
+ "warranty_claims.settings.general.businessHours.addWindow": "Add window",
903
+ "warranty_claims.settings.general.businessHours.advancedToggle": "Advanced: edit raw JSON",
904
+ "warranty_claims.settings.general.businessHours.closed": "Closed",
905
+ "warranty_claims.settings.general.businessHours.day.fri": "Friday",
906
+ "warranty_claims.settings.general.businessHours.day.mon": "Monday",
907
+ "warranty_claims.settings.general.businessHours.day.sat": "Saturday",
908
+ "warranty_claims.settings.general.businessHours.day.sun": "Sunday",
909
+ "warranty_claims.settings.general.businessHours.day.thu": "Thursday",
910
+ "warranty_claims.settings.general.businessHours.day.tue": "Tuesday",
911
+ "warranty_claims.settings.general.businessHours.day.wed": "Wednesday",
912
+ "warranty_claims.settings.general.businessHours.endLabel": "Closes at",
913
+ "warranty_claims.settings.general.businessHours.error.holiday": "Pick a holiday date.",
914
+ "warranty_claims.settings.general.businessHours.error.rows": "Fix the highlighted business hours entries.",
915
+ "warranty_claims.settings.general.businessHours.error.window": "Enter a start time earlier than the end time.",
916
+ "warranty_claims.settings.general.businessHours.holidayDateLabel": "Holiday date",
917
+ "warranty_claims.settings.general.businessHours.holidaysHelp": "Dates skipped entirely when counting SLA business hours.",
918
+ "warranty_claims.settings.general.businessHours.holidaysLabel": "Holidays",
919
+ "warranty_claims.settings.general.businessHours.removeHoliday": "Remove holiday",
920
+ "warranty_claims.settings.general.businessHours.removeWindow": "Remove window",
921
+ "warranty_claims.settings.general.businessHours.startLabel": "Opens at",
922
+ "warranty_claims.settings.general.businessHours.timezoneHelp": "IANA timezone the weekly windows are evaluated in. Leave empty for UTC.",
923
+ "warranty_claims.settings.general.businessHours.timezoneLabel": "Timezone",
924
+ "warranty_claims.settings.general.businessHours.timezonePlaceholder": "UTC",
925
+ "warranty_claims.settings.general.description": "Configure SLA timing and light auto-approval defaults for warranty claims.",
926
+ "warranty_claims.settings.general.error.businessHoursJson": "Invalid business hours JSON",
927
+ "warranty_claims.settings.general.error.escalationTiersInvalid": "Fix the highlighted escalation tier rows.",
928
+ "warranty_claims.settings.general.error.escalationTiersJson": "Invalid escalation tiers JSON",
929
+ "warranty_claims.settings.general.error.invalid": "Review the highlighted numeric and currency limits.",
930
+ "warranty_claims.settings.general.error.load": "Failed to load general settings.",
931
+ "warranty_claims.settings.general.error.save": "Failed to save general settings.",
932
+ "warranty_claims.settings.general.escalationTiers.action.notify": "Notify",
933
+ "warranty_claims.settings.general.escalationTiers.action.reassign": "Reassign",
934
+ "warranty_claims.settings.general.escalationTiers.actionLabel": "Action",
935
+ "warranty_claims.settings.general.escalationTiers.addRow": "Add tier",
936
+ "warranty_claims.settings.general.escalationTiers.atPctLabel": "SLA elapsed (%)",
937
+ "warranty_claims.settings.general.escalationTiers.empty": "No escalation tiers configured. Claims will not auto-escalate.",
938
+ "warranty_claims.settings.general.escalationTiers.error.atPct": "Enter a whole number between 1 and 1000.",
939
+ "warranty_claims.settings.general.escalationTiers.error.toUserId": "Select a staff member to reassign to.",
940
+ "warranty_claims.settings.general.escalationTiers.removeRow": "Remove tier",
941
+ "warranty_claims.settings.general.escalationTiers.rowLabel": "Tier {number}",
942
+ "warranty_claims.settings.general.escalationTiers.toUserLabel": "Reassign to",
943
+ "warranty_claims.settings.general.escalationTiers.toUserPlaceholder": "Search staff",
944
+ "warranty_claims.settings.general.fields.adjudicationUseRules.help": "When on and the business_rules module is present, claim submission is evaluated by the rule engine; otherwise the built-in light rule is used.",
945
+ "warranty_claims.settings.general.fields.adjudicationUseRules.label": "Use business rules for adjudication",
946
+ "warranty_claims.settings.general.fields.autoApproveCurrencyCode.help": "Three-letter uppercase currency code used by the auto-approval limit.",
947
+ "warranty_claims.settings.general.fields.autoApproveCurrencyCode.label": "Auto-approve currency",
948
+ "warranty_claims.settings.general.fields.autoApproveEnabled.help": "Automatically approve eligible submitted claims when all configured limits match.",
949
+ "warranty_claims.settings.general.fields.autoApproveEnabled.label": "Enable auto-approve",
950
+ "warranty_claims.settings.general.fields.autoApproveMaxAmount.help": "Maximum claimed total allowed for auto-approval.",
951
+ "warranty_claims.settings.general.fields.autoApproveMaxAmount.label": "Auto-approve max amount",
952
+ "warranty_claims.settings.general.fields.autoApproveRequireInWarranty.help": "Only auto-approve when every line is still in warranty.",
953
+ "warranty_claims.settings.general.fields.autoApproveRequireInWarranty.label": "Require in-warranty lines",
954
+ "warranty_claims.settings.general.fields.businessHours.help": "Shape: { timezone, week: { mon:[{start,end}], ... }, holidays:[...] }. Leave empty to disable.",
955
+ "warranty_claims.settings.general.fields.businessHours.label": "Business hours JSON",
956
+ "warranty_claims.settings.general.fields.businessHoursEditor.help": "Working windows per weekday used by SLA timing. Leave every day unchecked to count wall-clock time.",
957
+ "warranty_claims.settings.general.fields.businessHoursEditor.label": "Business hours",
958
+ "warranty_claims.settings.general.fields.defaultWarrantyMonths.help": "Prefills warranty months on new claim lines and estimates portal entitlement. Leave empty to disable.",
959
+ "warranty_claims.settings.general.fields.defaultWarrantyMonths.label": "Default warranty months",
960
+ "warranty_claims.settings.general.fields.escalationTiers.help": "Shape: [{ atPct, action:'notify'|'reassign', toUserId? }]. Leave empty to disable.",
961
+ "warranty_claims.settings.general.fields.escalationTiers.label": "Escalation tiers JSON",
962
+ "warranty_claims.settings.general.fields.escalationTiersEditor.help": "Notify or reassign a claim once its SLA has elapsed past a percentage threshold. Tiers apply in ascending order. Leave empty to disable.",
963
+ "warranty_claims.settings.general.fields.escalationTiersEditor.label": "Escalation tiers",
964
+ "warranty_claims.settings.general.fields.quarantineGrades.help": "Grades that automatically hold a claim on receiving.",
965
+ "warranty_claims.settings.general.fields.quarantineGrades.label": "Quarantine grades",
966
+ "warranty_claims.settings.general.fields.returnLabelProvider.help": "Optional provider key for the return-label seam. Leave empty for manual entry only.",
967
+ "warranty_claims.settings.general.fields.returnLabelProvider.label": "Return label provider",
968
+ "warranty_claims.settings.general.fields.slaAtRiskThresholdPct.help": "Percent of the SLA window elapsed before a claim is marked at risk.",
969
+ "warranty_claims.settings.general.fields.slaAtRiskThresholdPct.label": "SLA at-risk threshold",
970
+ "warranty_claims.settings.general.fields.slaHours.help": "Target response window in hours, from 1 to 8760.",
971
+ "warranty_claims.settings.general.fields.slaHours.label": "SLA hours",
972
+ "warranty_claims.settings.general.fields.slaPauseOnInfoRequested.help": "Stop the SLA clock when a claim waits on customer information.",
973
+ "warranty_claims.settings.general.fields.slaPauseOnInfoRequested.label": "Pause SLA while info is requested",
974
+ "warranty_claims.settings.general.loading": "Loading general settings...",
975
+ "warranty_claims.settings.general.sections.adjudication": "Adjudication",
976
+ "warranty_claims.settings.general.sections.receiving": "Receiving",
977
+ "warranty_claims.settings.general.sections.returns": "Returns",
978
+ "warranty_claims.settings.general.sections.slaEscalation": "SLA escalation",
979
+ "warranty_claims.settings.general.success.save": "General settings saved.",
980
+ "warranty_claims.settings.general.title": "General",
981
+ "warranty_claims.settings.pageTitle": "Warranty claim settings",
982
+ "warranty_claims.settings.returnWindowDays.help": "Flag return and core-return claims submitted after this many days from order placement. Leave empty to disable.",
983
+ "warranty_claims.settings.returnWindowDays.label": "Return window (days)",
984
+ "warranty_claims.settings.success.delete": "Dictionary entry deleted.",
985
+ "warranty_claims.settings.success.save": "Dictionary entry saved.",
986
+ "warranty_claims.settings.table.appearance": "Appearance",
987
+ "warranty_claims.settings.table.empty": "No entries yet.",
988
+ "warranty_claims.settings.table.inherited": "Inherited",
989
+ "warranty_claims.settings.table.inheritedTooltip": "This entry comes from an inherited dictionary.",
990
+ "warranty_claims.settings.table.label": "Label",
991
+ "warranty_claims.settings.table.search": "Search entries",
992
+ "warranty_claims.settings.table.value": "Value",
993
+ "warranty_claims.settings.title": "Claim settings",
994
+ "warranty_claims.sla.atRisk": "At risk",
995
+ "warranty_claims.sla.overdue": "Overdue",
996
+ "warranty_claims.sla.paused": "Paused",
997
+ "warranty_claims.status.approved": "Approved",
998
+ "warranty_claims.status.awaiting_return": "Awaiting return",
999
+ "warranty_claims.status.cancelled": "Cancelled",
1000
+ "warranty_claims.status.closed": "Closed",
1001
+ "warranty_claims.status.draft": "Draft",
1002
+ "warranty_claims.status.in_review": "In review",
1003
+ "warranty_claims.status.info_requested": "Info requested",
1004
+ "warranty_claims.status.inspecting": "Inspecting",
1005
+ "warranty_claims.status.received": "Received",
1006
+ "warranty_claims.status.rejected": "Rejected",
1007
+ "warranty_claims.status.resolved": "Resolved",
1008
+ "warranty_claims.status.submitted": "Submitted",
1009
+ "warranty_claims.timeline.aiAssessmentRecorded": "AI assessment recorded",
1010
+ "warranty_claims.timeline.assignedTo": "Assigned to {name}",
1011
+ "warranty_claims.timeline.autoApproved": "Auto-approved",
1012
+ "warranty_claims.timeline.autoReceivedFromTracking": "Automatically marked as received — the return shipment was delivered",
1013
+ "warranty_claims.timeline.creditMemoCreated": "Credit memo created from this claim",
1014
+ "warranty_claims.timeline.creditMemoOrphaned": "Credit memo created but linking failed — manual review required",
1015
+ "warranty_claims.timeline.replacementOrderCreated": "Replacement order created from this claim",
1016
+ "warranty_claims.timeline.replacementOrderOrphaned": "Replacement order created but linking failed — manual review required",
1017
+ "warranty_claims.timeline.salesReturnCreated": "Sales return created from this claim",
1018
+ "warranty_claims.timeline.salesReturnOrphaned": "Sales return created but linking failed — manual review required",
1019
+ "warranty_claims.timeline.slaPaused": "SLA paused",
1020
+ "warranty_claims.timeline.slaResumed": "SLA resumed",
1021
+ "warranty_claims.timeline.unassigned": "Unassigned",
1022
+ "warranty_claims.timeline.undoCreditMemoCreated": "Credit memo creation undone",
1023
+ "warranty_claims.timeline.undoReplacementOrderCreated": "Replacement order creation undone",
1024
+ "warranty_claims.timeline.undoSalesReturnCreated": "Sales return creation undone",
1025
+ "warranty_claims.triage.applied": "Applied",
1026
+ "warranty_claims.triage.apply": "Apply",
1027
+ "warranty_claims.triage.empty.description": "Run a rule-based triage suggestion to review recommended priorities and dispositions.",
1028
+ "warranty_claims.triage.panelSubtitle": "Rule-based recommendation from claim data — instant, no AI model used.",
1029
+ "warranty_claims.triage.panelTitle": "Automated triage",
1030
+ "warranty_claims.triage.reason.coreAcceptancePath": "Core return lines should follow the core acceptance path before credit is finalized.",
1031
+ "warranty_claims.triage.reason.fastTrackCandidate": "All lines are in warranty and low-complexity, with no risk signals.",
1032
+ "warranty_claims.triage.reason.highRiskPriority": "High-risk signals require at least high priority.",
1033
+ "warranty_claims.triage.reason.inWarrantyInspection": "The line is in warranty but quantity warrants inspection before replacement.",
1034
+ "warranty_claims.triage.reason.inWarrantyLowQuantity": "The line is in warranty and the claimed quantity is low.",
1035
+ "warranty_claims.triage.reason.lineReviewRequired": "One or more lines require manual review before adjudication.",
1036
+ "warranty_claims.triage.reason.lowPriorityEscalation": "Claims awaiting triage should not remain low priority.",
1037
+ "warranty_claims.triage.reason.missingWarrantyData": "Purchase date or warranty term is missing.",
1038
+ "warranty_claims.triage.reason.openAtLeastHours": "The claim has been open for at least {hours} hours.",
1039
+ "warranty_claims.triage.reason.outOfWarrantyReturnRestocking": "The line is out of warranty, but a non-warranty return can be credited with a restocking fee.",
1040
+ "warranty_claims.triage.reason.outsideWarrantyWindow": "The line is outside the computed warranty window.",
1041
+ "warranty_claims.triage.reason.priorityConsistent": "Current priority is consistent with age and SLA.",
1042
+ "warranty_claims.triage.reason.riskSignalsRequireReview": "Risk signals require inspection before replacement.",
1043
+ "warranty_claims.triage.reason.riskSignalsReviewRequired": "{count} risk signal(s) require manual review.",
1044
+ "warranty_claims.triage.reason.slaDueSoon": "The claim is within {hours} hours of its SLA due time.",
1045
+ "warranty_claims.triage.reason.slaOverdue": "The claim is past its SLA due time.",
1046
+ "warranty_claims.triage.reason.unknownEligibilityInspection": "Eligibility is unknown, so inspection is recommended before disposition.",
1047
+ "warranty_claims.triage.reason.warrantyExpired": "Purchase date plus warranty term has expired.",
1048
+ "warranty_claims.triage.reason.warrantyStillValid": "Purchase date plus warranty term is still valid.",
1049
+ "warranty_claims.triage.suggestButton": "Suggest triage",
1050
+ "warranty_claims.troubleshootingGuides.builder.addAnswer": "Add answer",
1051
+ "warranty_claims.troubleshootingGuides.builder.addOutcome": "Add outcome",
1052
+ "warranty_claims.troubleshootingGuides.builder.addQuestion": "Add question",
1053
+ "warranty_claims.troubleshootingGuides.builder.answerCount": "{count} answers",
1054
+ "warranty_claims.troubleshootingGuides.builder.answerDestination": "Answer destination",
1055
+ "warranty_claims.troubleshootingGuides.builder.answerLabel": "Answer label",
1056
+ "warranty_claims.troubleshootingGuides.builder.answers": "Answers",
1057
+ "warranty_claims.troubleshootingGuides.builder.answersSoFar": "{count} answers so far",
1058
+ "warranty_claims.troubleshootingGuides.builder.completed": "Guide completed",
1059
+ "warranty_claims.troubleshootingGuides.builder.currentQuestion": "Current question",
1060
+ "warranty_claims.troubleshootingGuides.builder.description": "Connect questions to another question or a claim outcome.",
1061
+ "warranty_claims.troubleshootingGuides.builder.dryRun": "Dry run",
1062
+ "warranty_claims.troubleshootingGuides.builder.edit": "Edit",
1063
+ "warranty_claims.troubleshootingGuides.builder.editNextQuestion": "Edit next question",
1064
+ "warranty_claims.troubleshootingGuides.builder.effectReport": "Would do, dry-run effect report",
1065
+ "warranty_claims.troubleshootingGuides.builder.guideStarts": "Guide starts",
1066
+ "warranty_claims.troubleshootingGuides.builder.inspector": "Inspector",
1067
+ "warranty_claims.troubleshootingGuides.builder.newAnswer": "New answer",
1068
+ "warranty_claims.troubleshootingGuides.builder.newQuestion": "New question",
1069
+ "warranty_claims.troubleshootingGuides.builder.newResolution": "Add resolution guidance",
1070
+ "warranty_claims.troubleshootingGuides.builder.nextQuestion": "Next question",
1071
+ "warranty_claims.troubleshootingGuides.builder.noChanges": "Do not apply changes",
1072
+ "warranty_claims.troubleshootingGuides.builder.outcome": "Outcome",
1073
+ "warranty_claims.troubleshootingGuides.builder.prefillReason": "Prefill reason",
1074
+ "warranty_claims.troubleshootingGuides.builder.prefillResolution": "Prefill resolution summary",
1075
+ "warranty_claims.troubleshootingGuides.builder.prompt": "Prompt",
1076
+ "warranty_claims.troubleshootingGuides.builder.question": "Question",
1077
+ "warranty_claims.troubleshootingGuides.builder.reasonCode": "Reason code",
1078
+ "warranty_claims.troubleshootingGuides.builder.removeAnswer": "Remove answer",
1079
+ "warranty_claims.troubleshootingGuides.builder.reset": "Reset",
1080
+ "warranty_claims.troubleshootingGuides.builder.resolution": "Resolution guidance",
1081
+ "warranty_claims.troubleshootingGuides.builder.sample.ageQuestion": "Is the backpack younger than 24 months?",
1082
+ "warranty_claims.troubleshootingGuides.builder.sample.damageQuestion": "Does the buckle show physical damage?",
1083
+ "warranty_claims.troubleshootingGuides.builder.sample.damaged": "Yes, cracked or snapped",
1084
+ "warranty_claims.troubleshootingGuides.builder.sample.intact": "No, it looks intact",
1085
+ "warranty_claims.troubleshootingGuides.builder.sample.no": "No",
1086
+ "warranty_claims.troubleshootingGuides.builder.sample.paidRepair": "Offer a paid repair",
1087
+ "warranty_claims.troubleshootingGuides.builder.sample.photos": "Request additional photos",
1088
+ "warranty_claims.troubleshootingGuides.builder.sample.replaceBuckle": "Replace the buckle",
1089
+ "warranty_claims.troubleshootingGuides.builder.sample.unsure": "Not sure",
1090
+ "warranty_claims.troubleshootingGuides.builder.sample.yes": "Yes",
1091
+ "warranty_claims.troubleshootingGuides.builder.select": "Select node",
1092
+ "warranty_claims.troubleshootingGuides.builder.test": "Test",
1093
+ "warranty_claims.troubleshootingGuides.builder.testRun": "Test run",
1094
+ "warranty_claims.troubleshootingGuides.builder.title": "Visual decision tree",
1095
+ "warranty_claims.troubleshootingGuides.bulk.delete": "Delete selected",
1096
+ "warranty_claims.troubleshootingGuides.bulk.deleteTitle": "Delete selected troubleshooting guides?",
1097
+ "warranty_claims.troubleshootingGuides.claimType.any": "Any claim type",
1098
+ "warranty_claims.troubleshootingGuides.confirm.deleteTitle": "Delete this troubleshooting guide?",
1099
+ "warranty_claims.troubleshootingGuides.create.error.save": "Failed to create troubleshooting guide.",
1100
+ "warranty_claims.troubleshootingGuides.create.success": "Troubleshooting guide created.",
1101
+ "warranty_claims.troubleshootingGuides.create.title": "New troubleshooting guide",
1102
+ "warranty_claims.troubleshootingGuides.edit.deleted": "Troubleshooting guide deleted.",
1103
+ "warranty_claims.troubleshootingGuides.edit.error.delete": "Failed to delete troubleshooting guide.",
1104
+ "warranty_claims.troubleshootingGuides.edit.error.load": "Failed to load troubleshooting guide.",
1105
+ "warranty_claims.troubleshootingGuides.edit.error.save": "Failed to save troubleshooting guide.",
1106
+ "warranty_claims.troubleshootingGuides.edit.loading": "Loading troubleshooting guide...",
1107
+ "warranty_claims.troubleshootingGuides.edit.notFound": "Troubleshooting guide not found.",
1108
+ "warranty_claims.troubleshootingGuides.edit.success": "Troubleshooting guide saved.",
1109
+ "warranty_claims.troubleshootingGuides.edit.title": "Edit troubleshooting guide",
1110
+ "warranty_claims.troubleshootingGuides.form.claimType": "Claim type",
1111
+ "warranty_claims.troubleshootingGuides.form.decisionTree": "Decision tree",
1112
+ "warranty_claims.troubleshootingGuides.form.group.match": "Guide match",
1113
+ "warranty_claims.troubleshootingGuides.form.group.steps": "Decision tree",
1114
+ "warranty_claims.troubleshootingGuides.form.isActive": "Active",
1115
+ "warranty_claims.troubleshootingGuides.form.isActive.disabled": "Guide inactive",
1116
+ "warranty_claims.troubleshootingGuides.form.isActive.enabled": "Guide active",
1117
+ "warranty_claims.troubleshootingGuides.form.reasonCode": "Reason code",
1118
+ "warranty_claims.troubleshootingGuides.form.reasonCode.help": "Leave empty to match any reason.",
1119
+ "warranty_claims.troubleshootingGuides.form.stepsJson": "Steps JSON",
1120
+ "warranty_claims.troubleshootingGuides.form.stepsJson.help": "Use a prompt with options. Each option needs a label and either a next node or a resolution/reason code.",
1121
+ "warranty_claims.troubleshootingGuides.form.stepsJson.invalidJson": "Enter valid JSON for the troubleshooting steps.",
1122
+ "warranty_claims.troubleshootingGuides.form.stepsJson.invalidTree": "The steps JSON must contain a prompt and option branches with labels.",
1123
+ "warranty_claims.troubleshootingGuides.form.submit.create": "Create guide",
1124
+ "warranty_claims.troubleshootingGuides.form.submit.update": "Save guide",
1125
+ "warranty_claims.troubleshootingGuides.form.title": "Title",
1126
+ "warranty_claims.troubleshootingGuides.list.actions.delete": "Delete",
1127
+ "warranty_claims.troubleshootingGuides.list.actions.edit": "Edit",
1128
+ "warranty_claims.troubleshootingGuides.list.actions.new": "New guide",
1129
+ "warranty_claims.troubleshootingGuides.list.actions.refresh": "Refresh",
1130
+ "warranty_claims.troubleshootingGuides.list.column.active": "Status",
1131
+ "warranty_claims.troubleshootingGuides.list.column.claimType": "Claim type",
1132
+ "warranty_claims.troubleshootingGuides.list.column.reason": "Reason",
1133
+ "warranty_claims.troubleshootingGuides.list.column.steps": "Steps",
1134
+ "warranty_claims.troubleshootingGuides.list.column.title": "Title",
1135
+ "warranty_claims.troubleshootingGuides.list.column.updated": "Updated",
1136
+ "warranty_claims.troubleshootingGuides.list.empty.description": "Create a guide to offer guided decisions during claim intake and triage.",
1137
+ "warranty_claims.troubleshootingGuides.list.empty.title": "No troubleshooting guides yet",
1138
+ "warranty_claims.troubleshootingGuides.list.error.blocked": "Save blocked by validation.",
1139
+ "warranty_claims.troubleshootingGuides.list.error.delete": "Failed to delete troubleshooting guide.",
1140
+ "warranty_claims.troubleshootingGuides.list.error.load": "Failed to load troubleshooting guides.",
1141
+ "warranty_claims.troubleshootingGuides.list.filter.claimType": "Claim type",
1142
+ "warranty_claims.troubleshootingGuides.list.filter.status": "Status",
1143
+ "warranty_claims.troubleshootingGuides.list.searchPlaceholder": "Search guides…",
1144
+ "warranty_claims.troubleshootingGuides.list.success.delete": "Troubleshooting guide deleted.",
1145
+ "warranty_claims.troubleshootingGuides.list.tabs.all": "All",
1146
+ "warranty_claims.troubleshootingGuides.list.tabs.draft": "Draft",
1147
+ "warranty_claims.troubleshootingGuides.list.tabs.published": "Published",
1148
+ "warranty_claims.troubleshootingGuides.list.title": "Troubleshooting guides",
1149
+ "warranty_claims.troubleshootingGuides.list.untitled": "Untitled guide",
1150
+ "warranty_claims.troubleshootingGuides.nav.title": "Troubleshooting guides",
1151
+ "warranty_claims.troubleshootingGuides.reason.any": "Any reason",
1152
+ "warranty_claims.troubleshootingGuides.status.active": "Active",
1153
+ "warranty_claims.troubleshootingGuides.status.inactive": "Inactive",
1154
+ "warranty_claims.troubleshootingWalker.actions.restart": "Restart",
1155
+ "warranty_claims.troubleshootingWalker.empty.description": "No matching guided steps are configured for this claim.",
1156
+ "warranty_claims.troubleshootingWalker.empty.title": "No troubleshooting guide",
1157
+ "warranty_claims.troubleshootingWalker.invalidPath": "This troubleshooting path is no longer available.",
1158
+ "warranty_claims.troubleshootingWalker.result.reasonCode": "Reason code: {code}",
1159
+ "warranty_claims.vendorPolicies.bulk.delete": "Delete selected",
1160
+ "warranty_claims.vendorPolicies.bulk.deleteTitle": "Delete selected vendor policies?",
1161
+ "warranty_claims.vendorPolicies.confirm.deleteTitle": "Delete this vendor policy?",
1162
+ "warranty_claims.vendorPolicies.create.error.save": "Failed to create vendor policy.",
1163
+ "warranty_claims.vendorPolicies.create.success": "Vendor policy created.",
1164
+ "warranty_claims.vendorPolicies.create.title": "New vendor policy",
1165
+ "warranty_claims.vendorPolicies.edit.deleted": "Vendor policy deleted.",
1166
+ "warranty_claims.vendorPolicies.edit.error.delete": "Failed to delete vendor policy.",
1167
+ "warranty_claims.vendorPolicies.edit.error.load": "Failed to load vendor policy.",
1168
+ "warranty_claims.vendorPolicies.edit.error.save": "Failed to save vendor policy.",
1169
+ "warranty_claims.vendorPolicies.edit.loading": "Loading vendor policy...",
1170
+ "warranty_claims.vendorPolicies.edit.notFound": "Vendor policy not found.",
1171
+ "warranty_claims.vendorPolicies.edit.success": "Vendor policy saved.",
1172
+ "warranty_claims.vendorPolicies.edit.title": "Edit vendor policy",
1173
+ "warranty_claims.vendorPolicies.form.autoGenerateRecovery": "Auto-generate recovery",
1174
+ "warranty_claims.vendorPolicies.form.autoGenerateRecovery.disabled": "Manual suggestion only",
1175
+ "warranty_claims.vendorPolicies.form.autoGenerateRecovery.enabled": "Automatic recovery enabled",
1176
+ "warranty_claims.vendorPolicies.form.autoGenerateRecovery.help": "When enabled, resolved matching lines generate supplier recovery claims automatically.",
1177
+ "warranty_claims.vendorPolicies.form.claimableReasonCodes": "Claimable reason codes",
1178
+ "warranty_claims.vendorPolicies.form.claimableReasonCodes.help": "Separate codes with commas. Leave empty to match any reason.",
1179
+ "warranty_claims.vendorPolicies.form.claimableReasonCodes.multiHelp": "Pick claim reasons from the dictionary, or type a custom code and press Enter. Leave empty to match any reason.",
1180
+ "warranty_claims.vendorPolicies.form.claimableReasonCodes.placeholder": "Add reason code",
1181
+ "warranty_claims.vendorPolicies.form.contactEmail": "Contact email",
1182
+ "warranty_claims.vendorPolicies.form.coverageMonths": "Coverage months",
1183
+ "warranty_claims.vendorPolicies.form.group.automation": "Automation",
1184
+ "warranty_claims.vendorPolicies.form.group.coverage": "Coverage",
1185
+ "warranty_claims.vendorPolicies.form.group.identity": "Vendor",
1186
+ "warranty_claims.vendorPolicies.form.isActive": "Active",
1187
+ "warranty_claims.vendorPolicies.form.isActive.disabled": "Policy inactive",
1188
+ "warranty_claims.vendorPolicies.form.isActive.enabled": "Policy active",
1189
+ "warranty_claims.vendorPolicies.form.recoveryRatePct": "Recovery rate percent",
1190
+ "warranty_claims.vendorPolicies.form.submit.create": "Create vendor policy",
1191
+ "warranty_claims.vendorPolicies.form.submit.update": "Save vendor policy",
1192
+ "warranty_claims.vendorPolicies.form.vendorName": "Vendor name",
1193
+ "warranty_claims.vendorPolicies.form.vendorRef": "Vendor reference",
1194
+ "warranty_claims.vendorPolicies.list.actions.add": "Add policy",
1195
+ "warranty_claims.vendorPolicies.list.actions.delete": "Delete",
1196
+ "warranty_claims.vendorPolicies.list.actions.edit": "Edit",
1197
+ "warranty_claims.vendorPolicies.list.actions.new": "New vendor policy",
1198
+ "warranty_claims.vendorPolicies.list.actions.refresh": "Refresh",
1199
+ "warranty_claims.vendorPolicies.list.anyReason": "Any reason",
1200
+ "warranty_claims.vendorPolicies.list.column.active": "Status",
1201
+ "warranty_claims.vendorPolicies.list.column.auto": "Mode",
1202
+ "warranty_claims.vendorPolicies.list.column.coverageMonths": "Coverage",
1203
+ "warranty_claims.vendorPolicies.list.column.reasons": "Reasons",
1204
+ "warranty_claims.vendorPolicies.list.column.recoveryRate": "Recovery",
1205
+ "warranty_claims.vendorPolicies.list.column.updated": "Updated",
1206
+ "warranty_claims.vendorPolicies.list.column.vendor": "Vendor",
1207
+ "warranty_claims.vendorPolicies.list.column.vendorRef": "Reference",
1208
+ "warranty_claims.vendorPolicies.list.empty.description": "Create policies to suggest or automate supplier recovery for resolved claim lines.",
1209
+ "warranty_claims.vendorPolicies.list.empty.title": "No vendor policies yet",
1210
+ "warranty_claims.vendorPolicies.list.error.blocked": "Save blocked by validation.",
1211
+ "warranty_claims.vendorPolicies.list.error.delete": "Failed to delete vendor policy.",
1212
+ "warranty_claims.vendorPolicies.list.error.load": "Failed to load vendor policies.",
1213
+ "warranty_claims.vendorPolicies.list.filter.mode": "Recovery mode",
1214
+ "warranty_claims.vendorPolicies.list.filter.status": "Status",
1215
+ "warranty_claims.vendorPolicies.list.months": "{count} months",
1216
+ "warranty_claims.vendorPolicies.list.searchPlaceholder": "Search vendor or reference",
1217
+ "warranty_claims.vendorPolicies.list.success.delete": "Vendor policy deleted.",
1218
+ "warranty_claims.vendorPolicies.list.tabs.active": "Active",
1219
+ "warranty_claims.vendorPolicies.list.tabs.all": "All",
1220
+ "warranty_claims.vendorPolicies.list.tabs.automatic": "Automatic",
1221
+ "warranty_claims.vendorPolicies.list.tabs.inactive": "Inactive",
1222
+ "warranty_claims.vendorPolicies.list.tabs.manual": "Manual",
1223
+ "warranty_claims.vendorPolicies.list.title": "Vendor policies",
1224
+ "warranty_claims.vendorPolicies.list.unnamed": "Untitled policy",
1225
+ "warranty_claims.vendorPolicies.nav.title": "Vendor policies",
1226
+ "warranty_claims.vendorPolicies.status.active": "Active",
1227
+ "warranty_claims.vendorPolicies.status.auto": "Automatic",
1228
+ "warranty_claims.vendorPolicies.status.inactive": "Inactive",
1229
+ "warranty_claims.vendorPolicies.status.manual": "Manual",
1230
+ "warranty_claims.vendorRecoverySuggestions.actions.generate": "Generate supplier recovery",
1231
+ "warranty_claims.vendorRecoverySuggestions.causalFault": "Fault: {fault}",
1232
+ "warranty_claims.vendorRecoverySuggestions.count": "{count} suggested",
1233
+ "warranty_claims.vendorRecoverySuggestions.description": "Resolved warranty lines match active supplier recovery policies.",
1234
+ "warranty_claims.vendorRecoverySuggestions.error.load": "Failed to load supplier recovery suggestions.",
1235
+ "warranty_claims.vendorRecoverySuggestions.estimatedRecovery": "Estimated recovery: {amount}",
1236
+ "warranty_claims.vendorRecoverySuggestions.line": "Line {lineId}",
1237
+ "warranty_claims.vendorRecoverySuggestions.lineFallback": "Line {lineNo}",
1238
+ "warranty_claims.vendorRecoverySuggestions.loading": "Loading supplier recovery suggestions...",
1239
+ "warranty_claims.vendorRecoverySuggestions.title": "Supplier recovery suggestions",
1240
+ "warranty_claims.widgets.customerClaims.count": "{count} claims",
1241
+ "warranty_claims.widgets.customerClaims.empty.description": "Create a warranty or RMA claim for this customer when they report an issue.",
1242
+ "warranty_claims.widgets.customerClaims.empty.title": "No claims for this customer",
1243
+ "warranty_claims.widgets.customerClaims.error": "Failed to load claims.",
1244
+ "warranty_claims.widgets.customerClaims.listLabel": "Customer claims",
1245
+ "warranty_claims.widgets.customerClaims.loading": "Loading claims...",
1246
+ "warranty_claims.widgets.customerClaims.newClaim": "New claim",
1247
+ "warranty_claims.widgets.customerClaims.notUpdated": "Not updated",
1248
+ "warranty_claims.widgets.customerClaims.unknownStatus": "Unknown",
1249
+ "warranty_claims.widgets.customerClaims.unknownType": "Unknown type",
1250
+ "warranty_claims.widgets.customerClaims.unnumbered": "Unnumbered claim",
1251
+ "warranty_claims.widgets.orderClaims.count": "{count} claims",
1252
+ "warranty_claims.widgets.orderClaims.empty.description": "Create a warranty or RMA claim from this order when a customer reports an issue.",
1253
+ "warranty_claims.widgets.orderClaims.empty.title": "No claims for this order",
1254
+ "warranty_claims.widgets.orderClaims.error": "Failed to load claims.",
1255
+ "warranty_claims.widgets.orderClaims.listLabel": "Order claims",
1256
+ "warranty_claims.widgets.orderClaims.loading": "Loading claims...",
1257
+ "warranty_claims.widgets.orderClaims.newFromOrder": "New claim from order",
1258
+ "warranty_claims.widgets.orderClaims.notUpdated": "Not updated",
1259
+ "warranty_claims.widgets.orderClaims.tabLabel": "Claims",
1260
+ "warranty_claims.widgets.orderClaims.unknownStatus": "Unknown",
1261
+ "warranty_claims.widgets.orderClaims.unknownType": "Unknown type",
1262
+ "warranty_claims.widgets.orderClaims.unnumbered": "Unnumbered claim",
1263
+ "warranty_claims.widgets.queue.atRisk": "At risk",
1264
+ "warranty_claims.widgets.queue.byStatus": "Open by status",
1265
+ "warranty_claims.widgets.queue.empty": "No open claims",
1266
+ "warranty_claims.widgets.queue.error": "Failed to load warranty claims",
1267
+ "warranty_claims.widgets.queue.open": "Open",
1268
+ "warranty_claims.widgets.queue.settings.help": "Toggle the per-status rows shown under the headline counts.",
1269
+ "warranty_claims.widgets.queue.settings.showStatusBreakdown": "Show status breakdown"
1270
+ }