@hotmeshio/long-tail 0.22.1 → 0.22.2

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 (291) hide show
  1. package/build/api/escalations/accumulate.js +38 -19
  2. package/build/api/escalations/resolve-batch.js +18 -11
  3. package/build/api/roles.js +4 -0
  4. package/build/api/scan-codes/badge-policy.d.ts +10 -0
  5. package/build/api/scan-codes/badge-policy.js +72 -0
  6. package/build/api/scan-codes/choice.js +16 -10
  7. package/build/api/scan-codes/context.d.ts +45 -1
  8. package/build/api/scan-codes/context.js +51 -3
  9. package/build/api/scan-codes/execute.js +73 -35
  10. package/build/api/scan-codes/grant.d.ts +27 -0
  11. package/build/api/scan-codes/grant.js +67 -0
  12. package/build/api/scan-codes/hold.d.ts +10 -0
  13. package/build/api/scan-codes/hold.js +98 -0
  14. package/build/api/scan-codes/identity.d.ts +5 -2
  15. package/build/api/scan-codes/identity.js +26 -8
  16. package/build/api/scan-codes/subject.d.ts +15 -0
  17. package/build/api/scan-codes/subject.js +68 -0
  18. package/build/api/scan-codes/verb-accumulate.d.ts +24 -0
  19. package/build/api/scan-codes/verb-accumulate.js +147 -0
  20. package/build/api/scan-codes/verb-fill.d.ts +6 -0
  21. package/build/api/scan-codes/verb-fill.js +152 -0
  22. package/build/api/scan-codes/verbs-subject.d.ts +14 -0
  23. package/build/api/scan-codes/verbs-subject.js +270 -0
  24. package/build/api/scan-codes/verbs.d.ts +1 -21
  25. package/build/api/scan-codes/verbs.js +26 -115
  26. package/build/index.d.ts +1 -0
  27. package/build/index.js +8 -2
  28. package/build/lib/db/schemas/037_scan_gtin_and_subject_grants.sql +27 -0
  29. package/build/routes/escalations/acting.d.ts +5 -0
  30. package/build/routes/escalations/acting.js +8 -1
  31. package/build/routes/scan-codes.js +3 -0
  32. package/build/services/iam/acting-identity.d.ts +29 -4
  33. package/build/services/iam/acting-identity.js +60 -17
  34. package/build/services/iam/ephemeral.d.ts +21 -0
  35. package/build/services/iam/ephemeral.js +32 -1
  36. package/build/services/iam/sql.d.ts +10 -0
  37. package/build/services/iam/sql.js +32 -3
  38. package/build/services/role/badge-grant.d.ts +5 -0
  39. package/build/services/role/badge-grant.js +36 -0
  40. package/build/services/role/seed.js +5 -0
  41. package/build/services/role/types.d.ts +14 -0
  42. package/build/services/role/types.js +5 -0
  43. package/build/services/scan-code/index.d.ts +3 -2
  44. package/build/services/scan-code/index.js +7 -1
  45. package/build/services/scan-code/parse.d.ts +23 -20
  46. package/build/services/scan-code/parse.js +45 -90
  47. package/build/services/scan-code/read.js +1 -0
  48. package/build/services/scan-code/sql.d.ts +3 -3
  49. package/build/services/scan-code/sql.js +11 -8
  50. package/build/services/scan-code/validate-subject.d.ts +7 -0
  51. package/build/services/scan-code/validate-subject.js +158 -0
  52. package/build/services/scan-code/validate.d.ts +7 -0
  53. package/build/services/scan-code/validate.js +94 -18
  54. package/build/services/scan-code/write.d.ts +1 -0
  55. package/build/services/scan-code/write.js +9 -3
  56. package/build/shared/form-validation/field-validator.js +4 -0
  57. package/build/shared/form-validation/index.d.ts +1 -0
  58. package/build/shared/form-validation/index.js +1 -0
  59. package/build/shared/form-validation/x-lt-scan.d.ts +52 -0
  60. package/build/shared/form-validation/x-lt-scan.js +166 -0
  61. package/build/shared/scan-code/gtin.d.ts +5 -0
  62. package/build/shared/scan-code/gtin.js +25 -0
  63. package/build/shared/scan-code/index.d.ts +2 -0
  64. package/build/shared/scan-code/index.js +10 -0
  65. package/build/shared/scan-code/parse.d.ts +46 -0
  66. package/build/shared/scan-code/parse.js +133 -0
  67. package/build/system/mcp-servers/admin/scan-codes.js +10 -4
  68. package/build/system/mcp-servers/admin/schemas.d.ts +754 -23
  69. package/build/system/mcp-servers/admin/schemas.js +57 -4
  70. package/build/system/mcp-servers/human-queue-schemas.d.ts +6 -6
  71. package/build/tsconfig.tsbuildinfo +1 -1
  72. package/build/types/escalation.d.ts +2 -0
  73. package/build/types/escalation.js +3 -1
  74. package/build/types/index.d.ts +2 -2
  75. package/build/types/index.js +8 -1
  76. package/build/types/scan-code/constants.d.ts +182 -0
  77. package/build/types/{scan-code.js → scan-code/constants.js} +72 -11
  78. package/build/types/scan-code/index.d.ts +3 -0
  79. package/build/types/scan-code/index.js +17 -0
  80. package/build/types/scan-code/response.d.ts +140 -0
  81. package/build/types/scan-code/response.js +2 -0
  82. package/build/types/scan-code/rule.d.ts +199 -0
  83. package/build/types/scan-code/rule.js +2 -0
  84. package/build/types/startup.d.ts +3 -1
  85. package/dashboard/dist/assets/{AdminDashboard-BbWve-Ax.js → AdminDashboard-DBW12qQt.js} +2 -2
  86. package/dashboard/dist/assets/{AdminDashboard-BbWve-Ax.js.map → AdminDashboard-DBW12qQt.js.map} +1 -1
  87. package/dashboard/dist/assets/{AgentConfigPage-M-9eTKhP.js → AgentConfigPage-CmHv8U9M.js} +2 -2
  88. package/dashboard/dist/assets/{AgentConfigPage-M-9eTKhP.js.map → AgentConfigPage-CmHv8U9M.js.map} +1 -1
  89. package/dashboard/dist/assets/{AgentDetailPage-CsakSlx5.js → AgentDetailPage-D1scIbz-.js} +3 -3
  90. package/dashboard/dist/assets/{AgentDetailPage-CsakSlx5.js.map → AgentDetailPage-D1scIbz-.js.map} +1 -1
  91. package/dashboard/dist/assets/{AgentsPage-Cj_cRTT1.js → AgentsPage-BA_ai9HJ.js} +2 -2
  92. package/dashboard/dist/assets/{AgentsPage-Cj_cRTT1.js.map → AgentsPage-BA_ai9HJ.js.map} +1 -1
  93. package/dashboard/dist/assets/{AvailableEscalationsPage-BXJmMBM1.js → AvailableEscalationsPage-C2_5aEFW.js} +2 -2
  94. package/dashboard/dist/assets/{AvailableEscalationsPage-BXJmMBM1.js.map → AvailableEscalationsPage-C2_5aEFW.js.map} +1 -1
  95. package/dashboard/dist/assets/{BotPicker-CGB16rYU.js → BotPicker-BZo4Kp4a.js} +2 -2
  96. package/dashboard/dist/assets/{BotPicker-CGB16rYU.js.map → BotPicker-BZo4Kp4a.js.map} +1 -1
  97. package/dashboard/dist/assets/{BulkAssignModal-MjxcU7N1.js → BulkAssignModal-BFhyxY2T.js} +2 -2
  98. package/dashboard/dist/assets/{BulkAssignModal-MjxcU7N1.js.map → BulkAssignModal-BFhyxY2T.js.map} +1 -1
  99. package/dashboard/dist/assets/CapabilitiesPage-CvOX6vAc.js +2 -0
  100. package/dashboard/dist/assets/{CapabilitiesPage-BxadotXn.js.map → CapabilitiesPage-CvOX6vAc.js.map} +1 -1
  101. package/dashboard/dist/assets/{CollapsibleSection-BBNpP-6h.js → CollapsibleSection-GCJsV9Oq.js} +2 -2
  102. package/dashboard/dist/assets/{CollapsibleSection-BBNpP-6h.js.map → CollapsibleSection-GCJsV9Oq.js.map} +1 -1
  103. package/dashboard/dist/assets/{ConfirmDeleteModal-D_kAbT_D.js → ConfirmDeleteModal-CAgYLcef.js} +2 -2
  104. package/dashboard/dist/assets/{ConfirmDeleteModal-D_kAbT_D.js.map → ConfirmDeleteModal-CAgYLcef.js.map} +1 -1
  105. package/dashboard/dist/assets/CountdownTimer-Dik2z0M_.js +2 -0
  106. package/dashboard/dist/assets/{CountdownTimer-CI_JOAvk.js.map → CountdownTimer-Dik2z0M_.js.map} +1 -1
  107. package/dashboard/dist/assets/{CredentialsPage-C9OA1Q2J.js → CredentialsPage-twd2xCOW.js} +2 -2
  108. package/dashboard/dist/assets/{CredentialsPage-C9OA1Q2J.js.map → CredentialsPage-twd2xCOW.js.map} +1 -1
  109. package/dashboard/dist/assets/{CronLabel-sxLLBf2I.js → CronLabel-DdnIuudX.js} +2 -2
  110. package/dashboard/dist/assets/{CronLabel-sxLLBf2I.js.map → CronLabel-DdnIuudX.js.map} +1 -1
  111. package/dashboard/dist/assets/{ElapsedCell-jH9m8Dgl.js → ElapsedCell-DCctVv5R.js} +2 -2
  112. package/dashboard/dist/assets/{ElapsedCell-jH9m8Dgl.js.map → ElapsedCell-DCctVv5R.js.map} +1 -1
  113. package/dashboard/dist/assets/{EntityTimelinePanel-Dl3Nr2kk.js → EntityTimelinePanel-CMnskyWv.js} +2 -2
  114. package/dashboard/dist/assets/{EntityTimelinePanel-Dl3Nr2kk.js.map → EntityTimelinePanel-CMnskyWv.js.map} +1 -1
  115. package/dashboard/dist/assets/{EscalationListSchemaPage-DAK6It5J.js → EscalationListSchemaPage-VfCn6WDb.js} +3 -3
  116. package/dashboard/dist/assets/{EscalationListSchemaPage-DAK6It5J.js.map → EscalationListSchemaPage-VfCn6WDb.js.map} +1 -1
  117. package/dashboard/dist/assets/{EscalationListView-CAHbdxKR.js → EscalationListView-CGQZxcC-.js} +2 -2
  118. package/dashboard/dist/assets/{EscalationListView-CAHbdxKR.js.map → EscalationListView-CGQZxcC-.js.map} +1 -1
  119. package/dashboard/dist/assets/{EscalationSchemaPage-DotfAMCL.js → EscalationSchemaPage-BX0tx-PM.js} +3 -3
  120. package/dashboard/dist/assets/{EscalationSchemaPage-DotfAMCL.js.map → EscalationSchemaPage-BX0tx-PM.js.map} +1 -1
  121. package/dashboard/dist/assets/{EscalationTimeline-DqmFydnU.js → EscalationTimeline-DKoSM56J.js} +2 -2
  122. package/dashboard/dist/assets/{EscalationTimeline-DqmFydnU.js.map → EscalationTimeline-DKoSM56J.js.map} +1 -1
  123. package/dashboard/dist/assets/{EscalationTitleSelect-BpRquguO.js → EscalationTitleSelect-DWGLBOmS.js} +2 -2
  124. package/dashboard/dist/assets/{EscalationTitleSelect-BpRquguO.js.map → EscalationTitleSelect-DWGLBOmS.js.map} +1 -1
  125. package/dashboard/dist/assets/{EscalationsOverview-DtGOqnP4.js → EscalationsOverview-C2XoguaA.js} +2 -2
  126. package/dashboard/dist/assets/{EscalationsOverview-DtGOqnP4.js.map → EscalationsOverview-C2XoguaA.js.map} +1 -1
  127. package/dashboard/dist/assets/{EventTable-DSHqKyX2.js → EventTable-CBUWq7--.js} +2 -2
  128. package/dashboard/dist/assets/{EventTable-DSHqKyX2.js.map → EventTable-CBUWq7--.js.map} +1 -1
  129. package/dashboard/dist/assets/{FilterBar-Dxd0wNSW.js → FilterBar-8IdbleZ9.js} +2 -2
  130. package/dashboard/dist/assets/{FilterBar-Dxd0wNSW.js.map → FilterBar-8IdbleZ9.js.map} +1 -1
  131. package/dashboard/dist/assets/GrantScopeField-BzWGzBfA.js +2 -0
  132. package/dashboard/dist/assets/GrantScopeField-BzWGzBfA.js.map +1 -0
  133. package/dashboard/dist/assets/{GraphInvokePage-ChqqGkro.js → GraphInvokePage-CUvoPzsW.js} +2 -2
  134. package/dashboard/dist/assets/{GraphInvokePage-ChqqGkro.js.map → GraphInvokePage-CUvoPzsW.js.map} +1 -1
  135. package/dashboard/dist/assets/{HomePage-ByKesG8w.js → HomePage-BP7v9GLJ.js} +2 -2
  136. package/dashboard/dist/assets/{HomePage-ByKesG8w.js.map → HomePage-BP7v9GLJ.js.map} +1 -1
  137. package/dashboard/dist/assets/{ListToolbar-Ddz_S2av.js → ListToolbar-Cnacuwoy.js} +2 -2
  138. package/dashboard/dist/assets/{ListToolbar-Ddz_S2av.js.map → ListToolbar-Cnacuwoy.js.map} +1 -1
  139. package/dashboard/dist/assets/{McpOverview-CVe13tEv.js → McpOverview-C2JoNoDA.js} +2 -2
  140. package/dashboard/dist/assets/{McpOverview-CVe13tEv.js.map → McpOverview-C2JoNoDA.js.map} +1 -1
  141. package/dashboard/dist/assets/{McpQueryDetailPage-BQYF2Mjq.js → McpQueryDetailPage-C_nih0w-.js} +2 -2
  142. package/dashboard/dist/assets/{McpQueryDetailPage-BQYF2Mjq.js.map → McpQueryDetailPage-C_nih0w-.js.map} +1 -1
  143. package/dashboard/dist/assets/{McpQueryPage-DZi5lm7s.js → McpQueryPage-U_wNXow2.js} +2 -2
  144. package/dashboard/dist/assets/{McpQueryPage-DZi5lm7s.js.map → McpQueryPage-U_wNXow2.js.map} +1 -1
  145. package/dashboard/dist/assets/{McpRunDetailPage-DreARTE1.js → McpRunDetailPage-DtKoJq6J.js} +2 -2
  146. package/dashboard/dist/assets/{McpRunDetailPage-DreARTE1.js.map → McpRunDetailPage-DtKoJq6J.js.map} +1 -1
  147. package/dashboard/dist/assets/{McpRunsPage-DmO0YVhT.js → McpRunsPage-CnYtfGhf.js} +2 -2
  148. package/dashboard/dist/assets/{McpRunsPage-DmO0YVhT.js.map → McpRunsPage-CnYtfGhf.js.map} +1 -1
  149. package/dashboard/dist/assets/{OperationsPage-DpjCO85T.js → OperationsPage-C7hupIer.js} +2 -2
  150. package/dashboard/dist/assets/{OperationsPage-DpjCO85T.js.map → OperationsPage-C7hupIer.js.map} +1 -1
  151. package/dashboard/dist/assets/{OperatorDashboard-Vv_MEBkv.js → OperatorDashboard-fVuLn2D5.js} +2 -2
  152. package/dashboard/dist/assets/{OperatorDashboard-Vv_MEBkv.js.map → OperatorDashboard-fVuLn2D5.js.map} +1 -1
  153. package/dashboard/dist/assets/{PersonaDetailPage-CW-2uBHY.js → PersonaDetailPage-C-4o8lPw.js} +2 -2
  154. package/dashboard/dist/assets/{PersonaDetailPage-CW-2uBHY.js.map → PersonaDetailPage-C-4o8lPw.js.map} +1 -1
  155. package/dashboard/dist/assets/{PersonasPage-CO6yYQdm.js → PersonasPage-BL1FwLmv.js} +2 -2
  156. package/dashboard/dist/assets/{PersonasPage-CO6yYQdm.js.map → PersonasPage-BL1FwLmv.js.map} +1 -1
  157. package/dashboard/dist/assets/{PortalPage-DcNqhBlg.js → PortalPage-tJG5sgb1.js} +2 -2
  158. package/dashboard/dist/assets/{PortalPage-DcNqhBlg.js.map → PortalPage-tJG5sgb1.js.map} +1 -1
  159. package/dashboard/dist/assets/{ProcessDetailPage-BuipGZcC.js → ProcessDetailPage-Dz_jY4Yt.js} +2 -2
  160. package/dashboard/dist/assets/{ProcessDetailPage-BuipGZcC.js.map → ProcessDetailPage-Dz_jY4Yt.js.map} +1 -1
  161. package/dashboard/dist/assets/{ProcessesListPage-D9DYntvl.js → ProcessesListPage-Cbn9cter.js} +2 -2
  162. package/dashboard/dist/assets/{ProcessesListPage-D9DYntvl.js.map → ProcessesListPage-Cbn9cter.js.map} +1 -1
  163. package/dashboard/dist/assets/ResolverForm-Bk8iXQ6-.js +8 -0
  164. package/dashboard/dist/assets/ResolverForm-Bk8iXQ6-.js.map +1 -0
  165. package/dashboard/dist/assets/RoleDetailPage-owPi6gI9.js +8 -0
  166. package/dashboard/dist/assets/RoleDetailPage-owPi6gI9.js.map +1 -0
  167. package/dashboard/dist/assets/{RolesPage-0QJOBSzF.js → RolesPage-NwmMvZFa.js} +2 -2
  168. package/dashboard/dist/assets/{RolesPage-0QJOBSzF.js.map → RolesPage-NwmMvZFa.js.map} +1 -1
  169. package/dashboard/dist/assets/{RunAsSelector-Dh4lyyRo.js → RunAsSelector-tgEooTyU.js} +2 -2
  170. package/dashboard/dist/assets/{RunAsSelector-Dh4lyyRo.js.map → RunAsSelector-tgEooTyU.js.map} +1 -1
  171. package/dashboard/dist/assets/ScanCodesPage-CUv_8ic6.js +2 -0
  172. package/dashboard/dist/assets/ScanCodesPage-CUv_8ic6.js.map +1 -0
  173. package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js +2 -0
  174. package/dashboard/dist/assets/ScanSchemeDetailPage-YHqbu7oK.js.map +1 -0
  175. package/dashboard/dist/assets/ScanStationPage-B275l6r_.js +2 -0
  176. package/dashboard/dist/assets/ScanStationPage-B275l6r_.js.map +1 -0
  177. package/dashboard/dist/assets/{StickyPagination-BSUyf5ja.js → StickyPagination-CsTI_gvJ.js} +2 -2
  178. package/dashboard/dist/assets/{StickyPagination-BSUyf5ja.js.map → StickyPagination-CsTI_gvJ.js.map} +1 -1
  179. package/dashboard/dist/assets/{StreamMessageDetail--tp7l2Sd.js → StreamMessageDetail-auRlvjTh.js} +2 -2
  180. package/dashboard/dist/assets/{StreamMessageDetail--tp7l2Sd.js.map → StreamMessageDetail-auRlvjTh.js.map} +1 -1
  181. package/dashboard/dist/assets/{SwimlaneTimeline-CxBZ2THh.js → SwimlaneTimeline-BLoVHYAd.js} +2 -2
  182. package/dashboard/dist/assets/{SwimlaneTimeline-CxBZ2THh.js.map → SwimlaneTimeline-BLoVHYAd.js.map} +1 -1
  183. package/dashboard/dist/assets/{TaskDetailPage-BJ1QrmPH.js → TaskDetailPage-BPsZ1bK_.js} +2 -2
  184. package/dashboard/dist/assets/{TaskDetailPage-BJ1QrmPH.js.map → TaskDetailPage-BPsZ1bK_.js.map} +1 -1
  185. package/dashboard/dist/assets/{TasksListPage-5BydGWmt.js → TasksListPage-BNGM74yT.js} +2 -2
  186. package/dashboard/dist/assets/{TasksListPage-5BydGWmt.js.map → TasksListPage-BNGM74yT.js.map} +1 -1
  187. package/dashboard/dist/assets/{TimeAgo-CCnz84Y4.js → TimeAgo-BnAHXGK7.js} +2 -2
  188. package/dashboard/dist/assets/{TimeAgo-CCnz84Y4.js.map → TimeAgo-BnAHXGK7.js.map} +1 -1
  189. package/dashboard/dist/assets/{TimestampCell-D0ru7Lya.js → TimestampCell-J4yae6mc.js} +2 -2
  190. package/dashboard/dist/assets/{TimestampCell-D0ru7Lya.js.map → TimestampCell-J4yae6mc.js.map} +1 -1
  191. package/dashboard/dist/assets/{ToolTestPanel-3Kpofmen.js → ToolTestPanel-BdzzgXDu.js} +2 -2
  192. package/dashboard/dist/assets/{ToolTestPanel-3Kpofmen.js.map → ToolTestPanel-BdzzgXDu.js.map} +1 -1
  193. package/dashboard/dist/assets/{TopicDetailPage-BaBXD_AK.js → TopicDetailPage-DJKg8lb7.js} +2 -2
  194. package/dashboard/dist/assets/{TopicDetailPage-BaBXD_AK.js.map → TopicDetailPage-DJKg8lb7.js.map} +1 -1
  195. package/dashboard/dist/assets/{TopicsPage-Cnm1AAjh.js → TopicsPage-DQV0WxG6.js} +2 -2
  196. package/dashboard/dist/assets/{TopicsPage-Cnm1AAjh.js.map → TopicsPage-DQV0WxG6.js.map} +1 -1
  197. package/dashboard/dist/assets/{UserName-CXsdPiMZ.js → UserName-Ct09nGh5.js} +2 -2
  198. package/dashboard/dist/assets/{UserName-CXsdPiMZ.js.map → UserName-Ct09nGh5.js.map} +1 -1
  199. package/dashboard/dist/assets/{WorkflowExecutionPage-zx3AUJFd.js → WorkflowExecutionPage-B5WJOsee.js} +2 -2
  200. package/dashboard/dist/assets/{WorkflowExecutionPage-zx3AUJFd.js.map → WorkflowExecutionPage-B5WJOsee.js.map} +1 -1
  201. package/dashboard/dist/assets/{WorkflowsDashboard-DfAGK1l7.js → WorkflowsDashboard-Hc87TRgD.js} +2 -2
  202. package/dashboard/dist/assets/{WorkflowsDashboard-DfAGK1l7.js.map → WorkflowsDashboard-Hc87TRgD.js.map} +1 -1
  203. package/dashboard/dist/assets/{WorkflowsOverview-QIYvoa13.js → WorkflowsOverview-CJQbyOj-.js} +2 -2
  204. package/dashboard/dist/assets/{WorkflowsOverview-QIYvoa13.js.map → WorkflowsOverview-CJQbyOj-.js.map} +1 -1
  205. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DGgO3hyB.js → YamlWorkflowDetailPage-BMeED677.js} +8 -8
  206. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DGgO3hyB.js.map → YamlWorkflowDetailPage-BMeED677.js.map} +1 -1
  207. package/dashboard/dist/assets/{YamlWorkflowsPage-CEsHm0B9.js → YamlWorkflowsPage-BMMg0Id6.js} +2 -2
  208. package/dashboard/dist/assets/{YamlWorkflowsPage-CEsHm0B9.js.map → YamlWorkflowsPage-BMMg0Id6.js.map} +1 -1
  209. package/dashboard/dist/assets/{agents-v_HH3Rji.js → agents-CdFkgFvg.js} +2 -2
  210. package/dashboard/dist/assets/{agents-v_HH3Rji.js.map → agents-CdFkgFvg.js.map} +1 -1
  211. package/dashboard/dist/assets/{bots-bwvWYrXz.js → bots-Mj3LHWWg.js} +2 -2
  212. package/dashboard/dist/assets/{bots-bwvWYrXz.js.map → bots-Mj3LHWWg.js.map} +1 -1
  213. package/dashboard/dist/assets/{capabilities-D4vaw_nQ.js → capabilities-Dw1ObK2-.js} +2 -2
  214. package/dashboard/dist/assets/{capabilities-D4vaw_nQ.js.map → capabilities-Dw1ObK2-.js.map} +1 -1
  215. package/dashboard/dist/assets/{controlplane-CiiZ6LJF.js → controlplane-DcNE1APv.js} +2 -2
  216. package/dashboard/dist/assets/{controlplane-CiiZ6LJF.js.map → controlplane-DcNE1APv.js.map} +1 -1
  217. package/dashboard/dist/assets/{escalation-columns-Dv-MB3eC.js → escalation-columns-D364Trpy.js} +2 -2
  218. package/dashboard/dist/assets/{escalation-columns-Dv-MB3eC.js.map → escalation-columns-D364Trpy.js.map} +1 -1
  219. package/dashboard/dist/assets/{index-IJmtbuLh.js → index-B3veJ698.js} +2 -2
  220. package/dashboard/dist/assets/{index-IJmtbuLh.js.map → index-B3veJ698.js.map} +1 -1
  221. package/dashboard/dist/assets/index-BQeHJHYN.js +67 -0
  222. package/dashboard/dist/assets/index-BQeHJHYN.js.map +1 -0
  223. package/dashboard/dist/assets/{index-D2VKBMng.js → index-BRGTmoYY.js} +2 -2
  224. package/dashboard/dist/assets/{index-D2VKBMng.js.map → index-BRGTmoYY.js.map} +1 -1
  225. package/dashboard/dist/assets/{index-C4Lce2ET.js → index-Bd6-KmBE.js} +3 -3
  226. package/dashboard/dist/assets/{index-C4Lce2ET.js.map → index-Bd6-KmBE.js.map} +1 -1
  227. package/dashboard/dist/assets/{index-CcuvGdvf.js → index-BiVce3n0.js} +2 -2
  228. package/dashboard/dist/assets/{index-CcuvGdvf.js.map → index-BiVce3n0.js.map} +1 -1
  229. package/dashboard/dist/assets/{index-D6pBLZFu.js → index-BmNAVd4s.js} +2 -2
  230. package/dashboard/dist/assets/{index-D6pBLZFu.js.map → index-BmNAVd4s.js.map} +1 -1
  231. package/dashboard/dist/assets/{index-CjenRVX_.js → index-Bq5XNEzD.js} +2 -2
  232. package/dashboard/dist/assets/{index-CjenRVX_.js.map → index-Bq5XNEzD.js.map} +1 -1
  233. package/dashboard/dist/assets/{index-CzjUgFt_.js → index-DPStdq4T.js} +2 -2
  234. package/dashboard/dist/assets/{index-CzjUgFt_.js.map → index-DPStdq4T.js.map} +1 -1
  235. package/dashboard/dist/assets/index-DcppjzP5.css +1 -0
  236. package/dashboard/dist/assets/{index-C3WutFpT.js → index-DkcI4V_H.js} +2 -2
  237. package/dashboard/dist/assets/{index-C3WutFpT.js.map → index-DkcI4V_H.js.map} +1 -1
  238. package/dashboard/dist/assets/{index-2tzsxFat.js → index-Dyotfa_k.js} +2 -2
  239. package/dashboard/dist/assets/{index-2tzsxFat.js.map → index-Dyotfa_k.js.map} +1 -1
  240. package/dashboard/dist/assets/{index-C_ISDOWJ.js → index-MDD4JYtu.js} +2 -2
  241. package/dashboard/dist/assets/{index-C_ISDOWJ.js.map → index-MDD4JYtu.js.map} +1 -1
  242. package/dashboard/dist/assets/index-WSm8bgE7.js +3 -0
  243. package/dashboard/dist/assets/index-WSm8bgE7.js.map +1 -0
  244. package/dashboard/dist/assets/{index-BLB77tc8.js → index-eDm6cz0F.js} +2 -2
  245. package/dashboard/dist/assets/{index-BLB77tc8.js.map → index-eDm6cz0F.js.map} +1 -1
  246. package/dashboard/dist/assets/{knowledge-D1YP2NzS.js → knowledge-Bafewjxk.js} +2 -2
  247. package/dashboard/dist/assets/{knowledge-D1YP2NzS.js.map → knowledge-Bafewjxk.js.map} +1 -1
  248. package/dashboard/dist/assets/{mcp-query-D5jUdZwN.js → mcp-query-BzTtIG90.js} +2 -2
  249. package/dashboard/dist/assets/{mcp-query-D5jUdZwN.js.map → mcp-query-BzTtIG90.js.map} +1 -1
  250. package/dashboard/dist/assets/{mcp-Bb5psC61.js → mcp-vLIutbnc.js} +2 -2
  251. package/dashboard/dist/assets/{mcp-Bb5psC61.js.map → mcp-vLIutbnc.js.map} +1 -1
  252. package/dashboard/dist/assets/{personas-CDndbkp4.js → personas-WD40EDS_.js} +2 -2
  253. package/dashboard/dist/assets/{personas-CDndbkp4.js.map → personas-WD40EDS_.js.map} +1 -1
  254. package/dashboard/dist/assets/{pipelines-Dq3kNhKu.js → pipelines-DFwULWs3.js} +2 -2
  255. package/dashboard/dist/assets/{pipelines-Dq3kNhKu.js.map → pipelines-DFwULWs3.js.map} +1 -1
  256. package/dashboard/dist/assets/{tasks-BlpDsWCy.js → tasks-La_-WAUn.js} +2 -2
  257. package/dashboard/dist/assets/{tasks-BlpDsWCy.js.map → tasks-La_-WAUn.js.map} +1 -1
  258. package/dashboard/dist/assets/{topics-C0YaR9fu.js → topics-CzYMlvqm.js} +2 -2
  259. package/dashboard/dist/assets/{topics-C0YaR9fu.js.map → topics-CzYMlvqm.js.map} +1 -1
  260. package/dashboard/dist/assets/{useDebouncedValue-B-KC5ba3.js → useDebouncedValue-C0FQyANW.js} +2 -2
  261. package/dashboard/dist/assets/{useDebouncedValue-B-KC5ba3.js.map → useDebouncedValue-C0FQyANW.js.map} +1 -1
  262. package/dashboard/dist/assets/{useNamespace-Dkr5g2Ac.js → useNamespace-WW_XjAb3.js} +2 -2
  263. package/dashboard/dist/assets/{useNamespace-Dkr5g2Ac.js.map → useNamespace-WW_XjAb3.js.map} +1 -1
  264. package/dashboard/dist/assets/{useYamlActivityEvents-BANBOshA.js → useYamlActivityEvents-B3YxPeFt.js} +2 -2
  265. package/dashboard/dist/assets/{useYamlActivityEvents-BANBOshA.js.map → useYamlActivityEvents-B3YxPeFt.js.map} +1 -1
  266. package/dashboard/dist/assets/{yaml-workflows-BLYoJfmB.js → yaml-workflows-COHOjdhF.js} +2 -2
  267. package/dashboard/dist/assets/{yaml-workflows-BLYoJfmB.js.map → yaml-workflows-COHOjdhF.js.map} +1 -1
  268. package/dashboard/dist/index.html +2 -2
  269. package/docs/dashboard.md +1 -1
  270. package/docs/hitl/x-lt-scan.md +51 -0
  271. package/docs/hitl-guide.md +2 -0
  272. package/docs/scan-codes.md +221 -21
  273. package/package.json +1 -1
  274. package/build/types/scan-code.d.ts +0 -317
  275. package/dashboard/dist/assets/CapabilitiesPage-BxadotXn.js +0 -2
  276. package/dashboard/dist/assets/CountdownTimer-CI_JOAvk.js +0 -2
  277. package/dashboard/dist/assets/ResolverForm-BVG8X0sS.js +0 -8
  278. package/dashboard/dist/assets/ResolverForm-BVG8X0sS.js.map +0 -1
  279. package/dashboard/dist/assets/RoleDetailPage-KCXDqoJz.js +0 -8
  280. package/dashboard/dist/assets/RoleDetailPage-KCXDqoJz.js.map +0 -1
  281. package/dashboard/dist/assets/ScanCodesPage-CUhCz-Yr.js +0 -2
  282. package/dashboard/dist/assets/ScanCodesPage-CUhCz-Yr.js.map +0 -1
  283. package/dashboard/dist/assets/ScanSchemeDetailPage-qzXKNqJK.js +0 -2
  284. package/dashboard/dist/assets/ScanSchemeDetailPage-qzXKNqJK.js.map +0 -1
  285. package/dashboard/dist/assets/ScanStationPage-D8e8cG3t.js +0 -2
  286. package/dashboard/dist/assets/ScanStationPage-D8e8cG3t.js.map +0 -1
  287. package/dashboard/dist/assets/index-CT-FN6CW.js +0 -3
  288. package/dashboard/dist/assets/index-CT-FN6CW.js.map +0 -1
  289. package/dashboard/dist/assets/index-Dh8MJl3L.css +0 -1
  290. package/dashboard/dist/assets/index-N71QQ3J5.js +0 -67
  291. package/dashboard/dist/assets/index-N71QQ3J5.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ import{j as n,a as g}from"./vendor-query-DvWWuNIB.js";import{ai as it,aj as Qt,ab as Zt,aR as Ee,aS as te,aA as ut,aT as Ie,Z as Ce,aw as Oe,aU as Te,aV as _e,m as Re,p as Le,U as Se,aW as Me,aX as Fe,z as $e,aY as Pe,aZ as De,aM as We,a_ as Ue,a$ as Je,b0 as qe,S as Ge,b1 as He,b2 as Ve,az as Be,K as Xe,A as Ye,b as ze,b3 as Ke,a as Qe,b4 as Ze,b5 as tn,b6 as en,af as nn,am as rn,b7 as sn,b8 as on,b9 as an,ba as ln,bb as cn,bc as dn,bd as un,be as xn,a2 as pn,M as fn,bf as mn,bg as gn,k as yn,bh as bn,bi as hn,a1 as jn,aL as Nn,bj as vn,bk as kn,bl as wn,G as An,bm as En,bn as In,bo as Cn,bp as On,bq as Tn,br as _n,q as Rn,a6 as Ln,bs as Sn,ax as Mn,bt as Fn,bu as $n,bv as Pn,bw as Dn,bx as Wn,aq as Un,by as Jn,f as qn,aC as Gn,bz as Hn,bA as Vn,bB as Bn,an as ee,_ as Xn,W as Yn,bC as zn,a5 as ne}from"./vendor-icons-CeVtUKyP.js";import{m as re,g as pt,H as Kn,e as Qn,a as H,r as ft,s as Zn,b as tr,c as se}from"./EscalationListView-CGQZxcC-.js";import{ah as K,ap as er,a_ as mt,$ as nr,a9 as rr,s as sr,a$ as ir,J as or,b0 as ar,O as lr,b1 as cr,av as dr,b2 as ur,aY as xr,i as pr,M as ie,ay as fr,az as mr,aA as gr}from"./index-BQeHJHYN.js";import{L as ot}from"./vendor-react-_9U4mKFr.js";import{S as yr}from"./StatusBadge-DHVwxre2.js";import{E as br}from"./constants-CeBBTzf5.js";import{V as hr}from"./WorkflowPill-Dg7BDTyM.js";const jr={SCHEMA_VALIDATION:"schema_validation"};function Nr(t){return typeof t=="object"&&t!==null&&t.code===jr.SCHEMA_VALIDATION&&Array.isArray(t.violations)}function Tt(t,e={}){const s=re(e,t),r={_form_schema:t};for(const[i,o]of Object.entries(t.properties??{})){const a=o.type==="object"?{}:"";r[i]=s[i]??o.default??a}return JSON.stringify(r,null,2)}function U(t,e){const s=e==null?void 0:e.title;if(typeof s=="string"&&s.trim().length>0)return s.trim();const r=t.split(/[_-]+/).filter(Boolean);return r.length<=1?t:r.map(i=>vr(i)?i:i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function vr(t){return t.length>1&&t===t.toUpperCase()&&/[A-Z]/.test(t)}function oe({errors:t,schema:e}){const s=r=>{const i=document.querySelector(`[data-field-key="${r}"]`);i&&(i.scrollIntoView({behavior:"smooth",block:"center"}),i.focus({preventScroll:!0}))};return t.length===0?n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No errors to display."}):n.jsxs("div",{className:"space-y-1",role:"alert","aria-live":"polite",children:[n.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-wider text-status-error mb-4",children:[t.length," ",t.length===1?"issue":"issues"," to resolve"]}),n.jsx("div",{className:"space-y-1.5",children:t.map(({field:r,message:i})=>{var o;return n.jsxs("button",{onClick:()=>s(r),className:"w-full text-left flex items-start gap-3 px-3 py-2.5 rounded hover:bg-status-error/5 transition-colors group",children:[n.jsx(it,{className:"w-3.5 h-3.5 mt-0.5 shrink-0 text-status-error/60 group-hover:text-status-error transition-colors"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-2xs font-semibold text-text-primary leading-snug",children:U(r,(o=e==null?void 0:e.properties)==null?void 0:o[r])}),n.jsx("p",{className:"text-2xs text-text-tertiary group-hover:text-text-secondary transition-colors leading-snug mt-0.5",children:i})]})]},r)})}),n.jsx("p",{className:"text-2xs text-text-quaternary mt-4 px-3",children:"Click an issue to scroll to and focus the field."})]})}const kr=/\{\{\s*([^{}]+?)\s*\}\}/g;function nt(t){return typeof t=="string"&&/\{\{[^{}]+\}\}/.test(t)}function Y(t,e){if(!e)return;const s=t.indexOf("."),r=e[s===-1?t:t.slice(0,s)];if(s===-1)return r;if(!(r===null||typeof r!="object"))return pt(r,t.slice(s+1))}function gt(t,e){let s=!1;const r=t.replace(kr,(i,o)=>{const a=Y(o,e);return typeof a=="string"&&a.trim().length>0?a:typeof a=="number"&&Number.isFinite(a)?String(a):(s=!0,"")});return s?null:r}const wr="x-lt-scan",Ar="x-lt-scan-submit",_t="x-lt-order",Er="Expected {{expected}}";function at(t){const e=t==null?void 0:t[wr];if(!e||typeof e!="object"||Array.isArray(e))return null;const s=e,r=Array.isArray(s.schemes)?s.schemes.filter(o=>Number.isInteger(o)):[];if(r.length===0)return null;const i=Array.isArray(s.expect)?s.expect.filter(o=>typeof o=="string"):void 0;return{schemes:r,value:s.value==="code"?"code":"target",...i!=null&&i.length?{expect:i}:{},expectError:typeof s["expect-error"]=="string"?s["expect-error"]:Er,multiplicity:s.multiplicity==="count"?"count":"once"}}function Ir(t,e){if(t===e)return!0;const s=/^[0-9]{8,14}$/;return s.test(t)&&s.test(e)&&t.padStart(14,"0")===e.padStart(14,"0")}function Cr(t,e){if(!t.expect)return null;const s=[];for(const r of t.expect){const i=Y(r,e),o=Array.isArray(i)?i:[i];for(const a of o)typeof a=="string"&&a?s.push(a):typeof a=="number"&&s.push(String(a))}return s}function Or(t,e){return t.expectError.replace(/\{\{\s*expected\s*\}\}/g,[...new Set(e)].join(", ")||"nothing")}function ae(t,e,s){const r=at(e);if(!r)return;const i=Cr(r,s);if(i===null)return;const o=Array.isArray(t)?t:t==null||t===""?[]:[t],a=r.multiplicity==="count"?[...i]:[...new Set(i)];for(const l of o){const c=a.findIndex(u=>Ir(String(l),u));if(c===-1)return Or(r,i);a.splice(c,1)}}function pi(t,e,s,r){const i=at(s);if(!i)return{ok:!1,error:"This field takes no scans"};const o=i.value==="code"?e.code:e.target,a=s.type==="array",l=a?[...Array.isArray(t)?t:[],o]:o,c=ae(l,s,r);if(c)return{ok:!1,error:c};const u=s.maxItems;return a&&typeof u=="number"&&l.length>u?{ok:!1,error:`At most ${u}`}:{ok:!0,value:l}}function Tr(t,e){if(e.type==="array"){const s=e.maxItems;return typeof s!="number"||!Array.isArray(t)||t.length<s}return t==null||t===""}function fi(t,e,s,r){const i=(t==null?void 0:t.properties)??{},o=Array.isArray(t==null?void 0:t[_t])?t[_t]:[],l=[...o.filter(c=>c in i),...Object.keys(i).filter(c=>!o.includes(c))].filter(c=>{var u;return(u=at(i[c]))==null?void 0:u.schemes.includes(s)});return l.length===0?null:r&&l.includes(r)?r:l.find(c=>Tr(e[c],i[c]))??l[0]}function mi(t){return(t==null?void 0:t[Ar])===!0}function gi(t,e){const s=(t==null?void 0:t.properties)??{},r=new Set((t==null?void 0:t.required)??[]),i=Object.keys(s).filter(o=>at(s[o])&&r.has(o));return i.length===0?!1:i.every(o=>{const a=e[o];if(Array.isArray(a)){const l=s[o].minItems;return a.length>=(typeof l=="number"?l:1)}return a!=null&&a!==""})}const le="x-lt-options";function Rt(t){return typeof t=="string"||typeof t=="boolean"||typeof t=="number"&&Number.isFinite(t)}function _r(t){return Array.isArray(t)&&t.length>0&&!t.some(e=>typeof e=="string")}function Lt(t){if(Rt(t))return{value:t,label:String(t)};if(t&&typeof t=="object"&&!Array.isArray(t)){const e=t,s=e.value!==void 0?e.value:e.id;if(Rt(s)&&typeof e.label=="string"&&e.label.length>0)return{value:s,label:e.label}}return null}function yt(t,e){if(!t)return;const s=t.enum;if(Array.isArray(s)&&s.length>0)return s.map(a=>({value:a,label:String(a)}));const r=t[le];if(_r(r)){const a=r.map(Lt).filter(l=>l!==null);return a.length>0?a:void 0}const i=(typeof r=="string"?[r]:Array.isArray(r)?r:[]).filter(a=>typeof a=="string"&&a.length>0);if(i.length===0)return;const o=i.some(nt)?[]:void 0;for(const a of i){let l=a;if(nt(a)){const d=gt(a,e);if(d===null)continue;l=d}const c=Y(l,e);if(!Array.isArray(c))continue;const u=c.map(Lt).filter(d=>d!==null);if(u.length>0)return u}return o}function bt(t,e){const s=(typeof t=="string"?[t]:Array.isArray(t)?t:[]).filter(r=>typeof r=="string"&&r.length>0);if(s.length===0||!e)return[];for(const r of s){let i=r;if(nt(r)){const a=gt(r,e);if(a===null)continue;i=a}const o=Y(i,e);if(Array.isArray(o)&&o.length>0)return o}return[]}const Rr="x-lt-default-checked";function Lr(t,e,s){if((t==null?void 0:t["x-lt-widget"])!=="checklist"||t[Rr]!==!0||e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0)return null;const r=bt(t["x-lt-source"],s);return r.length===0?null:Object.fromEntries(r.map(i=>[i.id,!0]))}function Sr(t,e,s){if((e==null?void 0:e["x-lt-widget"])!=="checklist"||e["x-lt-require-all"]!==!0)return;const i=bt(e["x-lt-source"],s).filter(l=>l.required!==!1);if(i.length===0)return;const o=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},a=i.filter(l=>!o[l.id]).length;if(a!==0)return`${a} of ${i.length} checks incomplete`}const St="Invalid JSON";function rt(t){return(t==null?void 0:t["x-lt-widget"])==="json"}function ce(t){return rt(t)||(t==null?void 0:t[le])!==void 0}function Mt(t,e){return`${t} ${e}${t===1?"":"s"}`}function ht(t,e){const s=e==null?void 0:e.type;if(typeof s=="string"&&!(t==null||t===""))switch(s){case"string":return typeof t=="string"?void 0:"Expected text";case"number":return typeof t=="number"&&Number.isFinite(t)?void 0:"Expected a number";case"integer":return typeof t=="number"&&Number.isInteger(t)?void 0:"Expected a whole number";case"boolean":return typeof t=="boolean"?void 0:"Expected true or false";case"array":return Array.isArray(t)?void 0:rt(e)&&typeof t=="string"?St:"Expected a list";case"object":return typeof t=="object"&&!Array.isArray(t)?void 0:rt(e)&&typeof t=="string"?St:"Expected an object";default:return}}function jt(t,e,s){if(!e)return;const r=yt(e,s);if(r!==void 0&&t!==void 0&&t!==null&&t!==""&&!Array.isArray(t)){if(r.length===0)return"No valid options for this selection";if(!r.some(o=>o.value===t))return`Must be one of: ${r.map(o=>String(o.value)).join(", ")}`}const i=ae(t,e,s);if(i)return i;if(Array.isArray(t))return ce(e)?Mr(t,e,r,s):void 0;if(t!==null&&typeof t=="object")return Fr(t,e,s);if(typeof t=="string"){const o=t.trim();if(o==="")return;const a=G(e.minLength,e["x-lt-min-length"],s);if(a!==void 0&&o.length<a)return`Minimum ${a} character${a===1?"":"s"}`;const l=G(e.maxLength,e["x-lt-max-length"],s);if(l!==void 0&&o.length>l)return`Maximum ${l} characters (${o.length} entered)`;const c=e.pattern;if(c)try{if(!new RegExp(c).test(o))return e["x-lt-pattern-error"]??"Invalid format"}catch{}const u=e.format;if(u==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return"Enter a valid email address";if(u==="uri"&&!/^https?:\/\/.+/.test(o))return"Enter a valid URL"}if(typeof t=="number"){const o=G(e.minimum,e["x-lt-minimum"],s),a=G(e.exclusiveMinimum,void 0,s),l=G(e.maximum,e["x-lt-maximum"],s),c=G(e.exclusiveMaximum,void 0,s);if(o!==void 0&&t<o)return`Minimum value is ${o}`;if(a!==void 0&&t<=a)return`Must be greater than ${a}`;if(l!==void 0&&t>l)return`Maximum value is ${l}`;if(c!==void 0&&t>=c)return`Must be less than ${c}`}}function Mr(t,e,s,r){if(t.length===0)return;if(s!==void 0){if(s.length===0)return"No valid options for this selection";if(t.some(l=>!s.some(c=>c.value===l)))return`Must be one of: ${s.map(l=>String(l.value)).join(", ")}`}const i=G(e.minItems,void 0,r);if(i!==void 0&&t.length<i)return`At least ${Mt(i,"item")}`;const o=G(e.maxItems,void 0,r);if(o!==void 0&&t.length>o)return`At most ${Mt(o,"item")}`;const a=e.items;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(let c=0;c<t.length;c++){const u=ht(t[c],l)??jt(t[c],l,r);if(u)return`Item ${c+1}: ${u}`}}}function Fr(t,e,s){const r=Object.entries(t);if(r.length===0)return;const i=e.propertyNames,o=Array.isArray(i==null?void 0:i.enum)?i.enum.map(String):void 0;if(o){const l=r.find(([c])=>!o.includes(c));if(l)return`Unknown key "${l[0]}". Allowed: ${o.join(", ")}`}const a=e.additionalProperties;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(const[c,u]of r){const d=ht(u,l)??jt(u,l,s);if(d)return`"${c}": ${d}`}}}function G(t,e,s){if(typeof t=="number")return t;if(typeof e=="string"&&s){const r=e.indexOf(".");if(r!==-1){const i=e.slice(0,r),o=e.slice(r+1),a=s[i];if(a&&typeof a=="object"){const l=o.split(".");let c=a;for(const u of l)if(c=c[u],c===void 0)break;if(typeof c=="number")return c;if(typeof c=="string"){const u=Number(c);if(!Number.isNaN(u))return u}}}}}function de(t,e,s,r,i){if(!r)return;if(s){if(t==null||typeof t=="boolean"&&!t&&yt(e,i)===void 0||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0&&ce(e))return"Required";if(typeof t=="object"&&!Array.isArray(t)&&t!==null){const l=Object.values(t);if(l.length===0||!rt(e)&&l.every(c=>!c))return"Required"}}const o=ht(t,e);if(o)return o;const a=Sr(t,e,i);return a||jt(t,e,i)}function Ft(t){return t!=null&&t!==""&&t!==!1&&t!==0}function $r(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function $t(t,e){const s=t.indexOf("."),r=s===-1?t:t.slice(0,s);if(!Kn.includes(r))return{known:!1,value:void 0};const i=e[r];if(s===-1)return{known:!0,value:i};try{return{known:!0,value:pt(i,t.slice(s+1))}}catch{return{known:!0,value:void 0}}}function z(t,e){if(Array.isArray(t))return t.every(c=>z(c,e));if(typeof t!="string"||t.length===0||!e)return!0;const s=t.startsWith("!"),r=s?t.slice(1):t,i=r.indexOf("!="),o=r.indexOf("=");if(i!==-1||o!==-1&&o!==i+1){const c=i!==-1&&(o===-1||i<o),u=c?i:o,d=r.slice(0,u).trim(),x=r.slice(u+(c?2:1)).trim(),{known:p,value:m}=$t(d,e);if(!p)return!0;const y=$r(m)===x,f=c?!y:y;return s?!f:f}const{known:a,value:l}=$t(r,e);return a?s?!Ft(l):Ft(l):!0}function Pr(t,e){return(t==null?void 0:t["x-lt-hide-if-empty"])!==!0?!1:e==null||e===""||e===!1||e===0}const Dr="x-lt-require-any";function Wr(t){const e=t==null?void 0:t[Dr];return Array.isArray(e)?e.filter(s=>Array.isArray(s)).map(s=>s.filter(r=>typeof r=="string"&&r.length>0)).filter(s=>s.length>0):[]}function Ur(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}const Jr="x-lt-require-sum";function qr(t){const e=t==null?void 0:t[Jr];if(!Array.isArray(e))return[];const s=[];for(const r of e){if(!r||typeof r!="object"||Array.isArray(r))continue;const{fields:i,minimum:o}=r;if(!Array.isArray(i))continue;const a=i.filter(l=>typeof l=="string"&&l.length>0);a.length!==0&&(o!==void 0&&typeof o!="number"||s.push({fields:a,minimum:typeof o=="number"?o:1}))}return s}function Gr(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"&&t.trim()!==""){const e=Number(t);if(!Number.isNaN(e))return e}return 0}function ue(t,e,s){if(!t)return[];const r=t.properties??{},i=new Set(t.required??[]),o={...s??{},resolver:e,input:e},a=[];for(const[l,c]of Object.entries(r)){if(!z(c["x-lt-showIf"],o))continue;const u=de(e[l],c,i.has(l),!0,o);u&&a.push({field:l,message:u})}for(const l of Wr(t)){const c=l.filter(d=>r[d]&&z(r[d]["x-lt-showIf"],o));if(c.length===0||c.some(d=>Ur(e[d])))continue;const u=c.map(d=>r[d].title??d);a.push({field:c[0],message:`Enter a value for at least one of: ${u.join(", ")}`})}for(const l of qr(t)){const c=l.fields.filter(x=>r[x]&&z(r[x]["x-lt-showIf"],o));if(c.length===0||c.reduce((x,p)=>x+Gr(e[p]),0)>=l.minimum)continue;const d=c.map(x=>r[x].title??x);a.push({field:c[0],message:`Combined value of ${d.join(", ")} must be at least ${l.minimum}`})}return a}function Hr(t,e,s){if(!t)return[];const r=re(e,t);return ue(t,r,s)}function Pt(t,e){let s;try{s=JSON.parse(t)}catch{return{payload:null,errors:[],parseError:"Invalid JSON"}}const r=s._form_schema;if(r){const a=ue(r,s,e);if(a.length>0)return{payload:null,errors:a,parseError:null}}const{_form_schema:i,...o}=s;return{payload:Qn(o,r),errors:[],parseError:null}}const Vr=2600;function Br({hint:t,onLockedClick:e,children:s}){const[r,i]=g.useState(null);g.useEffect(()=>{if(!r)return;const a=setTimeout(()=>i(null),Vr);return()=>clearTimeout(a)},[r]);const o=a=>{if(e==null||e(),t){const l=Math.min(Math.max(a.clientX,96),window.innerWidth-96);i(c=>({x:l,y:a.clientY,n:((c==null?void 0:c.n)??0)+1}))}};return n.jsxs("div",{className:"pb-8 max-w-form",onClick:o,"data-testid":"locked-form-frame",children:[s,t&&r&&n.jsxs("div",{role:"status",className:"fixed z-[60] pointer-events-none flex items-center gap-2 px-3 py-1.5 rounded-md bg-surface-raised border border-surface-border shadow-lg text-xs font-medium text-text-primary whitespace-nowrap animate-[click-hint_2.6s_ease-in-out_both]",style:{left:r.x,top:r.y-12},onAnimationEnd:()=>i(null),"data-testid":"locked-form-hint",children:[n.jsx(Qt,{className:"w-3.5 h-3.5 text-accent shrink-0",strokeWidth:1.5}),t]},r.n)]})}function _({children:t,isRequired:e,htmlFor:s}){return n.jsxs("label",{htmlFor:s,className:"block text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t,e&&n.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})}function $({id:t,children:e}){return n.jsx("p",{id:t,className:"text-2xs text-text-tertiary mt-0.5 leading-snug",children:e})}function D({error:t,id:e}){return t?n.jsx("p",{id:e,role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:t}):null}function X(t){return t?"input text-sm w-full mt-1 border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"input text-sm w-full mt-1"}function Xr(t){return t?"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full"}function Yr({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=g.useRef(null),a=(r==null?void 0:r.accept)??void 0,l=U(t,r),c=r==null?void 0:r.description,u=g.useCallback(x=>{var y;const p=(y=x.target.files)==null?void 0:y[0];if(!p)return;const m=new FileReader;m.onload=()=>{typeof m.result=="string"&&s(m.result)},m.readAsDataURL(p)},[s]),d=e.startsWith("data:");return n.jsxs("div",{children:[n.jsx(_,{isRequired:i,children:l}),c&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:c}),n.jsxs("div",{className:"mt-1",children:[n.jsx("input",{ref:o,type:"file",accept:a,onChange:u,className:"hidden"}),n.jsx("button",{type:"button",onClick:()=>{var x;return(x=o.current)==null?void 0:x.click()},className:"btn-secondary text-xs px-3 py-1.5",children:d?"Replace file":"Choose file"}),d&&n.jsx("span",{className:"ml-2 text-xs text-status-success",children:"File attached"})]})]})}function zr({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=U(t,r),a=r==null?void 0:r.description,l=(r==null?void 0:r["x-lt-language"])??"",c=g.useCallback(u=>{if(u.key==="Tab"){u.preventDefault();const d=u.currentTarget,x=d.selectionStart,p=d.selectionEnd,m=e.substring(0,x)+" "+e.substring(p);s(m),requestAnimationFrame(()=>{d.selectionStart=d.selectionEnd=x+2})}},[e,s]);return n.jsxs("div",{children:[n.jsxs(_,{isRequired:i,children:[o,l&&n.jsx("span",{className:"ml-2 text-text-tertiary/60 normal-case font-normal",children:l})]}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:u=>s(u.target.value),onKeyDown:c,className:"input w-full mt-1 font-mono text-xs leading-relaxed",rows:10,spellCheck:!1})]})}function Kr({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=g.useRef(null),[a,l]=g.useState(!1),c=U(t,r),u=r==null?void 0:r.description;g.useEffect(()=>{const f=o.current;if(!f)return;const b=f.getContext("2d");if(b&&(b.lineWidth=2,b.lineCap="round",b.strokeStyle="#1E1535",e&&e.startsWith("data:"))){const j=new Image;j.onload=()=>b.drawImage(j,0,0),j.src=e}},[]);const d=g.useCallback(f=>{const b=o.current,j=b.getBoundingClientRect(),E=j.width>0?b.width/j.width:1,h=j.height>0?b.height/j.height:1;return"touches"in f?{x:(f.touches[0].clientX-j.left)*E,y:(f.touches[0].clientY-j.top)*h}:{x:(f.clientX-j.left)*E,y:(f.clientY-j.top)*h}},[]),x=g.useCallback(f=>{var E;l(!0);const b=(E=o.current)==null?void 0:E.getContext("2d");if(!b)return;const j=d(f);b.beginPath(),b.moveTo(j.x,j.y)},[d]),p=g.useCallback(f=>{var E;if(!a)return;const b=(E=o.current)==null?void 0:E.getContext("2d");if(!b)return;const j=d(f);b.lineTo(j.x,j.y),b.stroke()},[a,d]),m=g.useCallback(()=>{l(!1);const f=o.current;f&&s(f.toDataURL("image/png"))},[s]),y=g.useCallback(()=>{const f=o.current;if(!f)return;const b=f.getContext("2d");b&&(b.clearRect(0,0,f.width,f.height),s(""))},[s]);return n.jsxs("div",{children:[n.jsx(_,{isRequired:i,children:c}),u&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:u}),n.jsx("div",{className:"mt-1 max-w-[25rem] border border-surface-border rounded-md overflow-hidden bg-white",children:n.jsx("canvas",{ref:o,width:400,height:150,className:"w-full cursor-crosshair touch-none",onMouseDown:x,onMouseMove:p,onMouseUp:m,onMouseLeave:m,onTouchStart:x,onTouchMove:p,onTouchEnd:m})}),n.jsx("button",{type:"button",onClick:y,className:"mt-1 text-2xs text-text-tertiary hover:text-accent transition-colors",children:"Clear"})]})}function Qr({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=U(t,r),a=r==null?void 0:r.description;return n.jsxs("div",{children:[n.jsx(_,{isRequired:i,children:o}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:l=>s(l.target.value),className:"input w-full mt-1 text-sm leading-relaxed",rows:8,placeholder:"Supports plain text. Markdown formatting is preserved."})]})}function Zr({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const[o,a]=g.useState("write"),l=U(t,r),c=r==null?void 0:r.description;return(r==null?void 0:r.readOnly)===!0?n.jsx(K,{content:e,className:"my-1"}):n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(_,{isRequired:i,children:l}),n.jsx("div",{className:"flex items-center gap-0.5",children:["write","preview"].map(d=>n.jsx("button",{type:"button",onClick:()=>a(d),className:`px-2 py-0.5 text-2xs rounded transition-colors ${o===d?"bg-accent/10 text-accent font-semibold":"text-text-quaternary hover:text-text-secondary"}`,children:d==="write"?"Write":"Preview"},d))})]}),c&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:c}),o==="write"?n.jsx("textarea",{value:e,onChange:d=>s(d.target.value),className:"input w-full mt-1 text-sm font-mono leading-relaxed",rows:10,placeholder:"Write markdown — headings, lists, tables, code blocks, and links all render."}):n.jsx("div",{className:"mt-1 px-3 py-2 border border-surface-border rounded min-h-[120px]",children:e.trim()?n.jsx(K,{content:e}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"Nothing to preview."})})]})}const ts=28;function es({fieldKey:t,value:e,onChange:s,schema:r,escalationContext:i,isRequired:o,submitAttempted:a,error:l}){const c=(r==null?void 0:r["x-lt-require-all"])===!0,u=bt(r==null?void 0:r["x-lt-source"],i);let d={};try{e&&(d=JSON.parse(e))}catch{}const x=(()=>{const h=Lr(r,d,i);return h?JSON.stringify(h):null})();g.useEffect(()=>{x&&s(x)},[x]);const p=h=>s(JSON.stringify({...d,[h]:!d[h]})),m=U(t,r),y=r==null?void 0:r.description;if(u.length===0)return n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No checklist items. None of the field's x-lt-source paths resolved on this escalation."}),l&&n.jsx("p",{className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]});const f=r==null?void 0:r["x-lt-variant"],b=f==="chips"||f==="rows"?f:c||u.some(h=>h.label.length>ts)?"rows":"chips",j=u.filter(h=>d[h.id]).length,E=(u.find(h=>!d[h.id]&&h.required!==!1)??u[0]).id;return n.jsxs("div",{role:"group","aria-label":m,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,children:[n.jsx(_,{isRequired:o,children:m}),y&&n.jsx($,{children:y}),b==="chips"?n.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:u.map(h=>{const N=d[h.id]??!1,v=!N&&!!a&&j===0&&(h.required||o);return n.jsxs("label",{className:`inline-flex items-center gap-1.5 cursor-pointer select-none px-3.5 py-2 text-sm border transition-colors rounded-[var(--lt-radius-field)] ${N?"bg-accent border-accent text-text-inverse":v?"bg-surface-field border-status-error/60 text-status-error":"bg-surface-field border-surface-field-border text-text-secondary hover:border-accent hover:text-text-primary"}`,children:[n.jsx("input",{type:"checkbox",checked:N,onChange:()=>p(h.id),className:"sr-only","data-testid":`checklist-item-${h.id}`,...h.id===E?{"data-field-key":t}:{}}),N&&n.jsx(Zt,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),h.label]},h.id)})}):n.jsx("div",{className:"space-y-2.5 mt-2",children:u.map(h=>{const N=d[h.id]??!1,v=!N&&!!a&&(c?h.required!==!1:j===0&&(h.required||o));return n.jsxs("label",{className:`flex items-start gap-3 cursor-pointer group select-none rounded px-2 py-1 -mx-2 transition-colors ${v?"bg-status-error/5":"hover:bg-surface-hover"}`,children:[n.jsx("input",{type:"checkbox",checked:N,onChange:()=>p(h.id),className:`mt-0.5 w-3.5 h-3.5 shrink-0 rounded ${v?"accent-status-error":"accent-accent"}`,"data-testid":`checklist-item-${h.id}`,...h.id===E?{"data-field-key":t}:{}}),n.jsxs("span",{className:`text-sm leading-snug transition-colors ${v?"text-status-error":"text-text-secondary group-hover:text-text-primary"}`,children:[h.label,h.required&&n.jsx("span",{className:`ml-0.5 text-2xs ${v?"text-status-error":"text-text-quaternary"}`,children:"*"})]})]},h.id)})}),n.jsx("p",{className:"text-2xs text-text-quaternary mt-3 tabular-nums",children:b==="chips"?n.jsxs(n.Fragment,{children:[j," selected",o&&j===0&&!!a&&n.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(check at least one)"})]}):n.jsxs(n.Fragment,{children:[j," / ",u.length," confirmed",c?n.jsxs("span",{className:"ml-1 text-text-quaternary/60",children:["(all required",u.some(h=>h.required===!1)?" except optional":"",")"]}):o&&j===0&&!!a&&n.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(at least one required)"})]})}),l&&n.jsx("p",{role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]})}const ns=/\.(png|jpe?g|gif|webp|avif|bmp|svg)(\?.*)?$/i;function rs(t){var r,i,o,a;const e=t.trim();if(!e)return{kind:"none"};const s=(i=(r=/^data:([^;,]+)[;,]/.exec(e))==null?void 0:r[1])==null?void 0:i.toLowerCase();if(s)return s.startsWith("image/")?{kind:"image",src:e}:{kind:"file",href:e,label:s==="application/pdf"?"PDF":s,isData:!0};if(/^https?:\/\//i.test(e)){if(ns.test(e))return{kind:"image",src:e};const l=(a=(o=/\.([a-z0-9]{2,5})(\?.*)?$/i.exec(e))==null?void 0:o[1])==null?void 0:a.toUpperCase();return{kind:"file",href:e,label:l??"attachment",isData:!1}}return{kind:"none"}}function Dt({fieldKey:t,value:e,schema:s}){const[r,i]=g.useState(!1),o=rs(e??""),a=t.replace(/[_-]/g," "),l=s==null?void 0:s.description,c=n.jsxs(n.Fragment,{children:[n.jsx("label",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:a}),l&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:l})]});return o.kind==="none"?n.jsxs("div",{children:[c,n.jsx("p",{className:"text-xs text-text-quaternary italic mt-1",children:"No attachment"})]}):o.kind==="image"?n.jsxs("div",{children:[c,n.jsxs("div",{className:"mt-1",children:[n.jsx("button",{type:"button",onClick:()=>i(!0),className:"block rounded-[0.125em] border border-surface-border overflow-hidden hover:border-accent transition-colors",title:"View full size",children:n.jsx("img",{src:o.src,alt:t.replace(/[_-]/g," "),className:"max-h-48 max-w-full object-contain","data-testid":`attachment-image-${t}`})}),r&&n.jsx("div",{className:"fixed inset-0 z-[100] bg-text-primary/60 backdrop-blur-sm flex items-center justify-center p-8 cursor-zoom-out",onClick:()=>i(!1),role:"dialog","aria-modal":"true","aria-label":`${a} — full size`,children:n.jsx("img",{src:o.src,alt:a,className:"max-h-[90vh] max-w-[90vw] object-contain"})})]})]}):n.jsxs("div",{children:[c,n.jsx("div",{className:"mt-1",children:n.jsxs("a",{href:o.href,...o.isData?{download:`${t}.${o.label==="PDF"?"pdf":"bin"}`}:{target:"_blank",rel:"noopener noreferrer"},className:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`attachment-link-${t}`,children:[n.jsx(Ee,{className:"w-3.5 h-3.5",strokeWidth:1.5}),o.isData?`Download ${o.label}`:`Open ${o.label}`,o.isData?n.jsx(te,{className:"w-3 h-3",strokeWidth:1.5}):n.jsx(ut,{className:"w-3 h-3",strokeWidth:1.5})]})})]})}function ss({fieldKey:t,schema:e,escalationContext:s}){const r=(e==null?void 0:e["x-lt-href"])??"",i=r&&s?H(r,s):r,o=(e==null?void 0:e.title)??(e==null?void 0:e.description)??"Open",a=e==null?void 0:e.description,l=i.startsWith("/"),c=!i.trim();return n.jsxs("div",{"data-field-key":t,children:[n.jsx(_,{children:o}),a&&n.jsx($,{children:a}),n.jsx("div",{className:"mt-1",children:c?n.jsx("span",{className:"text-xs text-text-quaternary italic",children:"No link configured"}):l?n.jsxs(ot,{to:i,className:"inline-flex items-center gap-1 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`link-widget-${t}`,children:[o,n.jsx(ut,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]}):n.jsxs("a",{href:i,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`link-widget-${t}`,children:[o,n.jsx(ut,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]})})]})}function xe({to:t,className:e=""}){return n.jsxs(ot,{to:t,title:"View details",tabIndex:-1,className:`inline-flex items-center justify-center w-6 h-6 shrink-0 rounded border border-surface-border text-accent/70 hover:text-accent hover:border-accent/60 hover:bg-accent/5 transition-colors ${e}`,children:[n.jsx(Ie,{className:"w-3.5 h-3.5",strokeWidth:2}),n.jsx("span",{className:"sr-only",children:"View details"})]})}const Wt="—";function is(t,e){if(!t||!e)return"";const s=t.indexOf(".");if(s===-1)return"";const r=t.slice(0,s),i=t.slice(s+1);try{const o=pt(e[r],i);return typeof o=="string"?o:""}catch{return""}}function os(t,e){if(!t||t===Wt)return Wt;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:mt(t)}return t}function as({fieldKey:t,schema:e,escalationContext:s}){const r=e==null?void 0:e["x-lt-source"],i=(e==null?void 0:e["x-lt-fields"])??[],o=(e==null?void 0:e.title)??"Linked escalation",a=e==null?void 0:e.description,l=is(r,s),{data:c,isLoading:u,isError:d}=er(l);return n.jsxs("div",{"data-field-key":t,children:[n.jsx(_,{children:o}),a&&n.jsx($,{children:a}),n.jsx("div",{className:"mt-1",children:!l||d?n.jsx("p",{className:"text-xs text-text-quaternary italic","data-testid":`escalation-widget-empty-${t}`,children:"No linked record"}):u?n.jsx(cs,{}):c?n.jsx(ls,{esc:c,fields:i,fieldKey:t}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"No linked record"})})]})}function ls({esc:t,fields:e,fieldKey:s}){if(!t)return null;const r=ft(t);return n.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2","data-testid":`escalation-widget-card-${s}`,children:[n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t.type,t.subtype&&t.subtype!==t.type?` · ${t.subtype}`:""]}),n.jsx(yr,{status:t.status})]}),t.description&&n.jsx("p",{className:"text-xs text-text-primary leading-snug",children:t.description}),e.length>0&&n.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-0.5",children:e.map(i=>{const o=H(i.value,r),a=os(o,i.format);return n.jsxs("div",{className:"contents",children:[n.jsx("dt",{className:"text-2xs text-text-tertiary whitespace-nowrap",children:i.label}),n.jsx("dd",{className:"text-2xs text-text-primary",children:a})]},i.label)})}),n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[n.jsxs("span",{className:"text-2xs text-text-quaternary",children:[t.role," · ",mt(t.created_at)]}),n.jsx(xe,{to:`/escalations/detail/${t.id}`})]})]})}function cs(){return n.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2 animate-pulse",children:[n.jsx("div",{className:"h-3 w-32 bg-surface-sunken rounded"}),n.jsx("div",{className:"h-3 w-48 bg-surface-sunken rounded"}),n.jsx("div",{className:"h-3 w-24 bg-surface-sunken rounded"})]})}function ds(t,e){if(!t)return{};const s={};for(const[r,i]of Object.entries(t))s[r]=typeof i=="string"?H(i,e):i;return s}function us(t,e,s){const r=ds(t.facets,e),i={role:t.role,status:t.status??"pending",facets:r,limit:t.limit,enabled:!!(t.role||Object.keys(r).length)};return t.assigned==="me"?{...i,assigned_to:s,available:!1,enabled:i.enabled&&!!s}:t.assigned==="any"?i:{...i,available:t.available??!0}}const xs=[{label:"Description",value:"{{escalation.description}}"},{label:"Role",value:"{{escalation.role}}"},{label:"Age",value:"{{escalation.created_at}}",format:"age"}],Ut="—";function ps(t,e){if(!t||t===Ut)return Ut;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:mt(t)}return t}function xt(t,e){return typeof t=="string"?H(t,e):Array.isArray(t)?t.map(s=>xt(s,e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([s,r])=>[s,xt(r,e)])):t}function fs({fieldKey:t,schema:e,escalationContext:s}){const r=(e==null?void 0:e["x-lt-query"])??{},i=(e==null?void 0:e["x-lt-columns"])??xs,o=(e==null?void 0:e["x-lt-actions"])??[],a=(e==null?void 0:e.title)??"Related items",l=e==null?void 0:e.description,c=s??{},{user:u}=nr(),d=us(r,c,u==null?void 0:u.userId),{data:x,isLoading:p}=rr({role:d.role,status:d.status,facets:d.facets,assigned_to:d.assigned_to,available:d.available,limit:d.limit??5,enabled:d.enabled,include:Zn({columns:i,actions:o})?"envelope":void 0}),m=(x==null?void 0:x.escalations)??[],y=sr(),[f,b]=g.useState({}),[j,E]=g.useState(null),h=async(N,v)=>{const k=ft(N);if(!(v.confirm&&!window.confirm(H(v.confirm,k)))){E(N.id),b(C=>({...C,[N.id]:""}));try{await y.mutateAsync({id:N.id,resolverPayload:xt(v.resolverPayload,k)})}catch(C){b(M=>({...M,[N.id]:C.message}))}finally{E(null)}}};return n.jsxs("div",{"data-field-key":t,children:[n.jsx(_,{children:a}),l&&n.jsx($,{children:l}),n.jsx("div",{className:"mt-1","data-testid":`escalation-list-widget-${t}`,children:p?n.jsx(gs,{columns:i.length}):n.jsx(ms,{escalations:m,columns:i,fieldKey:t,actions:o,onAction:h,pendingRow:j,rowErrors:f})})]})}function ms({escalations:t,columns:e,fieldKey:s,actions:r,onAction:i,pendingRow:o,rowErrors:a}){return t.length===0?n.jsx("p",{className:"text-xs text-text-quaternary italic py-1","data-testid":`escalation-list-empty-${s}`,children:"No items found"}):n.jsxs("table",{className:"w-full text-xs border-collapse","data-testid":`escalation-list-table-${s}`,children:[n.jsx("thead",{children:n.jsxs("tr",{className:"border-b border-surface-border",children:[e.map(l=>n.jsx("th",{className:"text-left text-2xs font-semibold uppercase tracking-wider text-text-tertiary pb-1 pr-3 last:pr-0",children:l.label},l.label)),r.length>0&&n.jsx("th",{className:"w-px"}),n.jsx("th",{className:"w-8"})]})}),n.jsx("tbody",{children:t.map(l=>{const c=ft(l),u=a[l.id];return n.jsxs("tr",{className:"border-b border-surface-border/50 last:border-0 hover:bg-surface-sunken/50 transition-colors",children:[e.map(d=>{const x=H(d.value,c),p=ps(x,d.format);return n.jsx("td",{className:"py-1 pr-3 last:pr-0 text-text-primary align-top",children:p},d.label)}),r.length>0&&n.jsxs("td",{className:"py-1 pr-2 align-top whitespace-nowrap",children:[r.map(d=>n.jsx("button",{type:"button",onClick:()=>i(l,d),disabled:o===l.id,className:"px-2 py-0.5 text-2xs font-medium text-accent border border-accent/40 rounded hover:bg-accent/10 disabled:opacity-40 disabled:cursor-default transition-colors ml-1 first:ml-0","data-testid":`escalation-list-action-${l.id}`,children:d.label},d.label)),u&&n.jsx("p",{className:"text-2xs text-status-error mt-0.5 whitespace-normal max-w-[16rem]","data-testid":`escalation-list-action-error-${l.id}`,children:u})]}),n.jsx("td",{className:"py-1 pl-2 align-top",children:n.jsx(xe,{to:`/escalations/detail/${l.id}`})})]},l.id)})})]})}function gs({columns:t}){return n.jsx("div",{className:"space-y-1.5 animate-pulse",children:[0,1,2].map(e=>n.jsx("div",{className:"flex gap-4",children:Array.from({length:t},(s,r)=>n.jsx("div",{className:"h-3 bg-surface-sunken rounded flex-1"},r))},e))})}function pe(t,e){return{metadata:t??{},...e?{lookup:e}:{}}}const ys="x-lt-invoke",Q={LINK:"link",BUTTON:"button"},bs=/^\{\{\s*([^{}]+?)\s*\}\}$/;function tt(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function hs(t){return t===Q.LINK||t===Q.BUTTON}function js(t){const e=t==null?void 0:t[ys];if(!tt(e))return null;const s=e.workflow;if(typeof s!="string"||s.trim().length===0)return null;const r=e.confirm;return{workflow:s.trim(),data:tt(e.data)?e.data:{},metadata:tt(e.metadata)?e.metadata:{},modal:e.modal===!0,confirm:typeof r=="string"&&r.trim().length>0?r:null,variant:hs(e.variant)?e.variant:Q.LINK,icon:e.icon!==!1}}function st(t,e){if(typeof t=="string"){const s=bs.exec(t);if(s){const r=Y(s[1],e??void 0);return r===null?void 0:r}return nt(t)?gt(t,e??void 0)??void 0:t}if(Array.isArray(t))return t.map(s=>st(s,e)).filter(s=>s!==void 0);if(tt(t)){const s={};for(const[r,i]of Object.entries(t)){const o=st(i,e);o!==void 0&&(s[r]=o)}return s}return t}function Ns(t,e){return{data:st(t.data,e),metadata:st(t.metadata,e)}}const Nt={ACTIVITY:"Activity",ALERT:"AlertTriangle",ARCHIVE:"Archive",AWARD:"Award",BARCODE:"Barcode",BELL:"Bell",BOT:"Bot",BOX:"Box",BOXES:"Boxes",BUILDING:"Building2",CALENDAR:"Calendar",CAMERA:"Camera",CHECKLIST:"ListChecks",CLIPBOARD:"ClipboardList",CLIPBOARD_CHECK:"ClipboardCheck",CLOCK:"Clock",COG:"Cog",CPU:"Cpu",DATABASE:"Database",DOWNLOAD:"Download",DROPLETS:"Droplets",FACTORY:"Factory",FAN:"Fan",FILE:"FileText",FLAG:"Flag",FLAME:"Flame",GAUGE:"Gauge",HAMMER:"Hammer",HEART:"Heart",IMAGE:"Image",KEY:"Key",LAYERS:"Layers",LEAF:"Leaf",LIFEBUOY:"LifeBuoy",LOCK:"Lock",MAIL:"Mail",MAP:"Map",MEGAPHONE:"Megaphone",MESSAGE:"MessageSquare",PACKAGE:"Package",PALETTE:"Palette",PEN:"PenTool",PILL:"Pill",POWER:"Power",PRINTER:"Printer",RECEIPT:"Receipt",RECYCLE:"Recycle",REFRESH:"RefreshCw",ROCKET:"Rocket",ROUTE:"Route",RULER:"Ruler",SCALE:"Scale",SCAN:"ScanBarcode",SCISSORS:"Scissors",SEARCH:"Search",SEND:"Send",SERVER:"Server",SHIELD:"ShieldCheck",SHOPPING_CART:"ShoppingCart",SNOWFLAKE:"Snowflake",SPARKLES:"Sparkles",STAR:"Star",STORE:"Store",SUN:"Sun",TAG:"Tag",TEST_TUBE:"TestTube",THERMOMETER:"Thermometer",TRASH:"Trash2",TRUCK:"Truck",UPLOAD:"Upload",USER:"User",USERS:"Users",WAND:"Wand2",WAREHOUSE:"Warehouse",WIFI:"Wifi",WRENCH:"Wrench",ZAP:"Zap"},vs=new Set(Object.values(Nt));function ks(t){return typeof t=="string"&&vs.has(t)}const ws={Activity:Xn,AlertTriangle:ee,Archive:Bn,Award:Vn,Barcode:Hn,Bell:Gn,Bot:qn,Box:Jn,Boxes:Un,Building2:Wn,Calendar:Dn,Camera:Pn,ClipboardCheck:$n,ClipboardList:Fn,Clock:Mn,Cog:Sn,Cpu:Ln,Database:Rn,Download:te,Droplets:_n,Factory:Tn,Fan:On,FileText:Cn,Flag:In,Flame:En,Gauge:An,Hammer:wn,Heart:kn,Image:vn,Key:Nn,Layers:jn,Leaf:hn,LifeBuoy:bn,ListChecks:yn,Lock:Qt,Mail:gn,Map:mn,Megaphone:fn,MessageSquare:pn,Package:xn,Palette:un,PenTool:dn,Pill:cn,Power:ln,Printer:an,Receipt:on,Recycle:sn,RefreshCw:rn,Rocket:nn,Route:en,Ruler:tn,Scale:Ze,ScanBarcode:Qe,Scissors:Ke,Search:ze,Send:Ye,Server:Xe,ShieldCheck:Be,ShoppingCart:Ve,Snowflake:He,Sparkles:Ge,Star:qe,Store:Je,Sun:Ue,Tag:We,TestTube:De,Thermometer:Pe,Trash2:$e,Truck:Fe,Upload:Me,User:Se,Users:Le,Wand2:Re,Warehouse:_e,Wifi:Te,Wrench:Oe,Zap:Ce},Jt=Object.values(Nt),As=Object.fromEntries(Object.entries(Nt).map(([t,e])=>[e,t]));function Es(t){return ks(t)?ws[t]:null}function yi(t){const e=t.trim().toLowerCase().replace(/[\s_-]+/g,"");return e?Jt.filter(s=>s.toLowerCase().includes(e)||As[s].toLowerCase().replace(/_/g,"").includes(e)):[...Jt]}function vt({icon:t,tier:e,className:s,strokeWidth:r=1.5}){const i=Es(t)??hr[e]??Yn;return n.jsx(i,{className:s,strokeWidth:r,"aria-hidden":!0})}const S={RUNNING:"running",COMPLETED:"completed",FAILED:"failed"};function qt(t,e){return`lt.events.system.workflow.${t}.${e}`}function kt(t){const[e,s]=g.useState(S.RUNNING),[r,i]=g.useState(void 0);return g.useEffect(()=>{s(S.RUNNING),i(void 0)},[t]),ir(t?[qt(t,"completed"),qt(t,"failed")]:[],o=>{o.workflowId===t&&(s(o.type.endsWith(".failed")?S.FAILED:S.COMPLETED),i(o.data))}),{outcome:e,payload:r}}const Is={[S.RUNNING]:"Working…",[S.COMPLETED]:"Completed",[S.FAILED]:"Failed"};function fe({outcome:t,className:e=""}){const s=t===S.FAILED?"text-status-error":t===S.COMPLETED?"text-status-success":"text-text-secondary";return n.jsxs("p",{className:`flex items-center gap-1.5 text-xs ${s} ${e}`,role:"status","data-testid":"run-outcome",children:[Is[t],t===S.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0})]})}function me({payload:t}){return!t||Object.keys(t).length===0?null:n.jsx("div",{className:"max-h-72 overflow-y-auto px-3 py-2 bg-surface-sunken","data-testid":"run-outline",children:n.jsx(ar,{data:t})})}function Cs({workflowId:t,outcome:e,executionPath:s}){const r=e===S.FAILED?"text-status-error":"text-status-success",i=e===S.RUNNING?"Started":e===S.COMPLETED?"Completed":"Failed";return n.jsxs("p",{className:"flex items-center gap-1.5 text-xs min-w-0",role:"status","data-testid":"started-run",children:[n.jsx("span",{className:r,children:i}),e===S.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0}),n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx("span",{className:"font-mono text-text-secondary truncate",children:t}),s&&n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx(ot,{to:s,className:"text-accent hover:underline shrink-0",children:"View workflow →"})]})]})}function Os({payload:t}){return!t||Object.keys(t).length===0?null:n.jsx("div",{className:"mt-3 h-48 overflow-y-auto rounded-md border border-surface-border bg-surface-raised px-3 py-2","data-testid":"started-run-result",children:n.jsx(or,{data:t,label:"Result"})})}const Ts="/workflows/executions",P={PAGE:"page",MODAL:"modal"};function ge(t,e){const{realIsBuilder:s}=lr(),r=cr(),[i,o]=g.useState(null),[a,l]=g.useState([]),[c,u]=g.useState(null),d=g.useCallback(()=>{o(null),l([]),u(null),r.reset()},[r]);return{submit:g.useCallback(async(p,m)=>{o(null),l([]),u(null);const y={...m};e.certified&&(y.certified=!0);try{const f=await r.mutateAsync({workflowType:t.workflow_type,data:p,metadata:y,...e.overrideBot?{execute_as:e.overrideBot}:{}});u(f.workflowId)}catch(f){f instanceof dr&&Nr(f.body)?(l(f.body.violations),o(f.body.error)):o(f instanceof Error?f.message:"Invocation failed")}},[r,e.certified,e.overrideBot,t.workflow_type]),reset:d,pending:r.isPending,error:i,violations:a,startedId:c,executionPath:c&&s?`${Ts}/${encodeURIComponent(c)}`:null}}function wt(){const{connected:t}=ur();return t?null:n.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning","data-testid":"events-warning",children:[n.jsx(zn,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),"Live events are off, so the result will not appear here.",n.jsx("button",{type:"button",onClick:()=>window.location.reload(),className:"text-accent hover:underline",children:"Reconnect events"})]})}const _s={[P.PAGE]:"sticky bottom-0 z-10 bg-surface border-t border-surface-border/40 pt-3 pb-16 -mb-16",[P.MODAL]:"border-t border-surface-border/40 pt-3"};function ye({onSubmit:t,onSubmitAgain:e,pending:s,error:r,issueCount:i=0,onShowIssues:o,startedId:a,executionPath:l,host:c=P.PAGE}){const u=c===P.PAGE,d=kt(u?a??"":""),x=u&&a!==null;return n.jsxs("div",{className:_s[c],children:[n.jsxs("div",{className:"flex items-center justify-between gap-6 min-h-9",children:[n.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-1",children:[n.jsx(wt,{}),i>0&&o?n.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1.5 text-xs text-status-error hover:underline","data-testid":"invoke-issues",children:[n.jsx(it,{className:"w-3.5 h-3.5",strokeWidth:1.5}),i," ",i===1?"issue":"issues"," to resolve"]}):r?n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:r}):null,x&&n.jsx(Cs,{workflowId:a,outcome:d.outcome,executionPath:l})]}),n.jsx("div",{className:"shrink-0",children:x?n.jsx("button",{type:"button",onClick:e,className:"text-xs text-accent hover:underline","data-testid":"invoke-again",children:"Submit again"}):n.jsx("button",{type:"button",onClick:t,disabled:s,className:"btn-primary px-8 py-2","data-testid":"invoke-start",children:s?"Submitting…":"Submit"})})]}),x&&d.outcome!==S.RUNNING&&n.jsx(Os,{payload:d.payload})]})}const Z="invoke-help",Rs=380,W={INSTRUCTIONS:"instructions",ISSUES:"issues"};function Ls({view:t,onViewChange:e,onClose:s,helpMarkdown:r,errors:i,schema:o}){const a=[];r&&a.push({id:W.INSTRUCTIONS,icon:ne,label:"Instructions",content:n.jsx(K,{content:r})}),a.push({id:W.ISSUES,icon:it,label:"Issues",content:n.jsx(oe,{errors:i,schema:o})});const l=a.some(c=>c.id===t)?t:a[0].id;return n.jsx(pr,{views:a,activeId:l,onViewChange:c=>e(c),onClose:s,stickyClassName:"h-full min-h-0",labelInline:!0})}function Ss({schema:t,context:e,errors:s,enabled:r=!0}){const i=xr(),o=r?i==null?void 0:i.setPanel:void 0,a=r?i==null?void 0:i.closePanel:void 0,l=(i==null?void 0:i.ownerKey)??null,c=(i==null?void 0:i.open)??!1,[u,d]=g.useState(null),x=g.useMemo(()=>tr(t,e),[t,e]),p=g.useCallback(()=>{d(null),a==null||a(Z)},[a]);g.useEffect(()=>{!o||!u||o(n.jsx(Ls,{view:u,onViewChange:d,onClose:p,helpMarkdown:x,errors:s,schema:t}),{key:Z,width:Rs})},[o,u,x,s,t,p]),g.useEffect(()=>{u&&c&&l&&l!==Z&&d(null)},[u,c,l]);const m=g.useRef(a);return m.current=a,g.useEffect(()=>()=>{var y;(y=m.current)==null||y.call(m,Z)},[]),{helpMarkdown:x,hasInstructions:!!x,open:u!==null,showInstructions:()=>d(W.INSTRUCTIONS),showIssues:()=>d(W.ISSUES),close:p}}function Ms({selected:t,schema:e,metadata:s,lookup:r,submission:i,lead:o,prefill:a,host:l=P.PAGE}){const c=l===P.MODAL,[u,d]=g.useState(()=>Tt(e,a)),[x,p]=g.useState(!1),[m,y]=g.useState([]),[f,b]=g.useState(null),[j,E]=g.useState(null);g.useEffect(()=>{d(Tt(e,a)),p(!1),y([]),b(null),E(null),i.reset()},[t.workflow_type]);const h=g.useMemo(()=>({...pe(s,r),resolver:null}),[s,r]),N=g.useMemo(()=>{try{const T=JSON.parse(u);return{...h,resolver:T,input:T}}catch{return h}},[u,h]);g.useEffect(()=>{x&&y(Pt(u,h).errors)},[u,x,h]);const v=m.length>0?m:i.violations,k=Ss({schema:e,context:N,errors:v,enabled:!c}),C=c?()=>E(W.ISSUES):k.showIssues,M=c?()=>E(T=>T===W.INSTRUCTIONS?null:W.INSTRUCTIONS):k.showInstructions;g.useEffect(()=>{i.violations.length>0&&C()},[i.violations]);const A=()=>{p(!0);const T=Pt(u,h);if(T.parseError){b(T.parseError);return}if(b(null),T.errors.length>0){y(T.errors),C();return}y([]),i.submit(T.payload,s)},R=c&&j===W.ISSUES&&v.length>0,O=c&&j===W.INSTRUCTIONS&&k.helpMarkdown;return n.jsxs("div",{"data-testid":"rich-invoke-form",children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[o,O&&n.jsx("div",{className:"px-4 py-3 bg-surface-hover","data-testid":"invoke-inline-help",children:n.jsx(K,{content:k.helpMarkdown})}),n.jsx(si,{value:u,onChange:d,submitAttempted:x,escalationContext:h,onOpenHelp:k.hasInstructions?M:void 0}),R&&n.jsx("div",{"data-testid":"invoke-inline-issues",children:n.jsx(oe,{errors:v,schema:e})})]}),n.jsx(ye,{onSubmitAgain:i.reset,onSubmit:A,pending:i.pending,error:f??i.error,issueCount:v.length,onShowIssues:C,startedId:i.startedId,executionPath:i.executionPath,host:l})]})}const Gt=`{
2
+ "data": {},
3
+ "metadata": {}
4
+ }`;function Fs(t){return typeof t=="boolean"?"boolean":typeof t=="number"?"number":Array.isArray(t)?"array":t!==null&&typeof t=="object"?"object":"string"}function Ht(t){if(!t)return[];const e=t.data;return!e||typeof e!="object"?[]:Object.entries(e).map(([s,r])=>({key:s,type:Fs(r),defaultValue:r}))}function ct(t){return{...t}}function Vt(t,e){return JSON.stringify({data:t,metadata:e},null,2)}function $s({selectedConfig:t,isJsonMode:e,hasFormView:s,jsonInput:r,formFields:i,dataFields:o,onJsonChange:a,onToggleMode:l,onUpdateFormField:c,onSetFormFields:u}){return n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{className:"block text-xs text-text-secondary",children:"Envelope"}),n.jsxs("div",{className:"flex items-center gap-3",children:[s&&n.jsx("button",{type:"button",onClick:l,className:"text-2xs text-accent hover:underline",children:e?"Form view":"JSON view"}),t.envelope_schema?n.jsx("span",{className:"text-2xs text-accent",children:"Pre-filled from workflow config"}):n.jsx("span",{className:"text-2xs text-status-warning",children:"No template"})]})]}),!t.envelope_schema&&n.jsx("div",{className:"bg-surface-sunken border border-surface-border rounded px-4 py-3 mb-3",children:n.jsxs("p",{className:"text-xs text-text-secondary leading-relaxed",children:["This workflow has no input template. Edit the JSON directly below, or ",n.jsx(ot,{to:"/workflows/registry/new",className:"text-status-success hover:underline",children:"register it"})," in the Workflow Registry with an envelope schema for pre-filled fields and form-based input."]})}),e||!s?n.jsx("textarea",{value:r,onChange:d=>a(d.target.value),className:"input-json",rows:12,spellCheck:!1}):n.jsx("div",{className:"space-y-3",children:o.map(({key:d,type:x})=>{var f,b;const p=i[d],m=typeof p=="string"?p:JSON.stringify(p??(x==="array"?[]:{}),null,2),y=Math.min(20,Math.max(4,((b=(f=m==null?void 0:m.split)==null?void 0:f.call(m,`
5
+ `))==null?void 0:b.length)??4));return n.jsxs("div",{children:[n.jsxs("label",{className:"block text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[d,n.jsx("span",{className:"ml-2 font-normal normal-case",children:x})]}),x==="boolean"?n.jsxs("select",{value:String(p??!1),onChange:j=>c(d,j.target.value,x),className:"select text-xs w-full",children:[n.jsx("option",{value:"true",children:"true"}),n.jsx("option",{value:"false",children:"false"})]}):x==="object"||x==="array"?n.jsx("textarea",{value:m,onChange:j=>{try{c(d,JSON.parse(j.target.value),x)}catch{u({...i,[d]:j.target.value})}},className:"input-json w-full",rows:y,spellCheck:!1}):n.jsx("input",{type:x==="number"?"number":"text",value:String(p??""),onChange:j=>c(d,j.target.value,x),className:"input text-xs w-full"})]},d)})}),n.jsxs("p",{className:"text-2xs text-text-tertiary mt-1.5",children:["The envelope wraps your workflow input. ",n.jsx("code",{className:"text-accent/80",children:"data"})," holds workflow-specific fields; ",n.jsx("code",{className:"text-accent/80",children:"metadata"})," is optional context."]})]})}const Bt="lt:invoke:prefill";function Ps({selected:t,metadata:e,submission:s,lead:r,prefill:i,host:o=P.PAGE}){const[a,l]=g.useState(Gt),[c,u]=g.useState(""),[d,x]=g.useState({}),[p,m]=g.useState(!1),y=g.useMemo(()=>{const N=t.envelope_schema??null;if(!i||Object.keys(i).length===0)return N;const v=N==null?void 0:N.data,k={...v&&typeof v=="object"?v:{},...i};return{...N??{},data:k}},[t.envelope_schema,i]),f=g.useMemo(()=>Ht(y),[y]),b=f.length>0;g.useEffect(()=>{u(""),s.reset();const N=o===P.PAGE?sessionStorage.getItem(Bt):null;if(N){sessionStorage.removeItem(Bt),l(N);try{const k=JSON.parse(N),C=(k==null?void 0:k.data)??k;C&&typeof C=="object"&&x(ct(C))}catch{}m(!0);return}l(y?JSON.stringify(y,null,2):Gt);const v=y==null?void 0:y.data;x(v&&typeof v=="object"?ct(v):{}),m(!Ht(y).length)},[t.workflow_type]);const j=()=>{if(p)try{const N=JSON.parse(a);N.data&&typeof N.data=="object"&&x(ct(N.data))}catch{}else l(Vt(d,e));m(!p)},E=(N,v,k)=>{let C=v;k==="number"?C=v===""?0:Number(v):k==="boolean"&&(C=v==="true"||v===!0);const M={...d,[N]:C};x(M),l(Vt(M,e))},h=()=>{u("");let N;try{N=JSON.parse(a)}catch{u("Invalid JSON");return}const{data:v,metadata:k}=N;if(!v||typeof v!="object"){u('Envelope must include a "data" object');return}s.submit(v,k??{})};return n.jsxs("div",{children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[r,n.jsx($s,{selectedConfig:t,isJsonMode:p,hasFormView:b,jsonInput:a,formFields:d,dataFields:f,onJsonChange:N=>{l(N),u("")},onToggleMode:j,onUpdateFormField:E,onSetFormFields:x})]}),n.jsx(ye,{onSubmitAgain:s.reset,onSubmit:h,pending:s.pending,error:c||s.error,startedId:s.startedId,executionPath:s.executionPath,host:o})]})}function Ds({workflow:t,workflowId:e,onDone:s,onRetry:r}){var c;const i=kt(e),o=i.outcome===S.FAILED,a=i.outcome===S.RUNNING,l=o&&typeof((c=i.payload)==null?void 0:c.error)=="string"?i.payload.error:null;return n.jsxs("div",{className:"flex flex-col gap-4","data-testid":"run-receipt","data-outcome":i.outcome,children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(vt,{icon:t.icon,tier:t.tier,className:"w-6 h-6 shrink-0 text-accent"}),n.jsx(fe,{outcome:i.outcome,className:"text-sm"})]}),a&&n.jsx(wt,{}),l&&n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:l}),!a&&n.jsx(me,{payload:l?void 0:i.payload}),n.jsxs("div",{className:"flex justify-end gap-2 pt-2 border-t border-surface-border/40",children:[o&&n.jsx("button",{type:"button",onClick:r,className:"btn-secondary text-xs","data-testid":"run-retry",children:"Try again"}),n.jsx("button",{type:"button",onClick:s,className:"btn-primary text-xs px-6","data-testid":"run-done",children:a||o?"Close":"Done"})]})]})}function be(t,e){var r;const s=(r=t.envelope_schema)==null?void 0:r.metadata;return{...s&&typeof s=="object"?s:{},...e}}function Ws({workflow:t,prefill:e,onClose:s}){const r=g.useMemo(()=>be(t,e.metadata),[t,e.metadata]),i=Array.isArray(t.input_lookups)&&t.input_lookups.length>0,{data:o}=fr(t.workflow_type,i),a=g.useMemo(()=>o?mr(o.lookups):void 0,[o]),l=(o==null?void 0:o.lookups.filter(x=>x.missing))??[],c=ge(t,{certified:t.certified,overrideBot:""}),u=t.description?n.jsx(K,{content:t.description,className:"text-xs text-text-secondary leading-relaxed"}):void 0,d=c.startedId!==null;return n.jsxs("div",{"data-testid":"invoke-modal",children:[d&&n.jsx(Ds,{workflow:t,workflowId:c.startedId,onDone:s,onRetry:c.reset}),n.jsxs("div",{hidden:d,children:[l.length>0&&n.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning mb-4","data-testid":"lookup-missing",children:[n.jsx(ee,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),l.map(x=>`${x.domain}/${x.key} v${x.version}`).join(", ")," ",l.length===1?"is":"are"," not available; the fields that read ",l.length===1?"it":"them"," fall back to plain inputs."]}),t.input_schema?n.jsx(Ms,{selected:t,schema:t.input_schema,metadata:r,lookup:a,submission:c,lead:u,prefill:e.data,host:P.MODAL}):n.jsx(Ps,{selected:t,metadata:r,submission:c,lead:u,prefill:e.data,host:P.MODAL})]})]})}function Us({open:t,onClose:e,workflow:s,prefill:r}){const i=n.jsxs("span",{className:"flex items-center gap-2 min-w-0",children:[n.jsx(vt,{icon:s.icon,tier:s.tier,className:"w-4 h-4 shrink-0 text-accent"}),n.jsx("span",{className:"truncate",title:s.workflow_type,children:se(s.workflow_type)})]});return n.jsx(ie,{open:t,onClose:e,title:i,maxWidth:"max-w-2xl",closeOnBackdrop:!1,children:n.jsx(Ws,{workflow:s,prefill:r,onClose:e})})}const Js={[Q.LINK]:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors",[Q.BUTTON]:"btn-secondary inline-flex items-center gap-1.5 text-xs px-3 py-1.5"};function qs({fieldKey:t,schema:e,escalationContext:s}){var u;const r=g.useMemo(()=>js(e),[e]),{data:i,isPending:o}=gr(),a=i==null?void 0:i.find(d=>d.workflow_type===(r==null?void 0:r.workflow)),l=(u=s==null?void 0:s.escalation)==null?void 0:u.status,c=l!==void 0&&l!==br.PENDING;return!r||c?null:o?n.jsx("div",{className:"h-4 w-32 rounded bg-surface-hover animate-pulse","data-testid":`invoke-widget-${t}-loading`}):a?n.jsx(Gs,{fieldKey:t,schema:e,config:r,workflow:a,escalationContext:s}):null}function Gs({fieldKey:t,schema:e,config:s,workflow:r,escalationContext:i}){var R;const o=i,a=g.useMemo(()=>Ns(s,o),[s,o]),l=g.useMemo(()=>be(r,a.metadata),[r,a.metadata]),c=ge(r,{certified:r.certified,overrideBot:""}),u=kt(c.startedId??""),[d,x]=g.useState([]),[p,m]=g.useState(!1),[y,f]=g.useState(!1),b=(e==null?void 0:e.title)??se(r.workflow_type),j=e==null?void 0:e.description,E=s.icon?n.jsx(vt,{icon:r.icon,tier:r.tier,className:"w-3.5 h-3.5 shrink-0"}):null,h=()=>{m(!1),c.submit(a.data,l)},N=()=>{if(s.modal){f(!0);return}if(x([]),r.input_schema){const O=Hr(r.input_schema,a.data,pe(l));if(O.length>0){x(O);return}}s.confirm?m(!0):h()},v=()=>{x([]),c.reset(),f(!0)},k=d.length>0?d:c.violations,C=c.startedId!==null,M=C&&u.outcome===S.RUNNING,A=C&&u.outcome===S.FAILED&&typeof((R=u.payload)==null?void 0:R.error)=="string"?u.payload.error:null;return n.jsxs("div",{"data-field-key":t,"data-testid":`invoke-widget-${t}`,children:[n.jsx(_,{children:b}),j&&n.jsx($,{children:j}),n.jsxs("div",{className:"mt-1 flex flex-col gap-1.5",children:[C&&n.jsxs(n.Fragment,{children:[n.jsx(fe,{outcome:u.outcome}),M&&n.jsx(wt,{}),A&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:A}),!M&&n.jsx(me,{payload:A?void 0:u.payload})]}),!M&&n.jsxs("button",{type:"button",onClick:N,disabled:c.pending,className:`self-start ${Js[s.variant]}`,"data-testid":`invoke-control-${t}`,children:[E,c.pending?"Starting…":b]}),k.length>0&&n.jsxs("div",{className:"text-2xs",role:"alert","data-testid":`invoke-issues-${t}`,children:[n.jsx("ul",{className:"space-y-0.5 text-status-error",children:k.map(O=>n.jsxs("li",{className:"flex items-start gap-1.5",children:[n.jsx(it,{className:"w-3 h-3 mt-px shrink-0",strokeWidth:1.5}),n.jsxs("span",{children:[n.jsx("span",{className:"font-semibold",children:O.field})," · ",O.message]})]},O.field))}),n.jsx("button",{type:"button",onClick:v,className:"mt-1 text-accent hover:underline","data-testid":`invoke-open-form-${t}`,children:"Open form"})]}),k.length===0&&c.error&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:c.error})]}),s.confirm&&n.jsxs(ie,{open:p,onClose:()=>m(!1),title:b,children:[n.jsx("p",{className:"text-sm text-text-secondary mb-5",children:H(s.confirm,i??{})}),n.jsxs("div",{className:"flex justify-end gap-2",children:[n.jsx("button",{type:"button",onClick:()=>m(!1),className:"btn-secondary text-xs",children:"Cancel"}),n.jsx("button",{type:"button",onClick:h,className:"btn-primary text-xs","data-testid":`invoke-confirm-${t}`,children:b})]})]}),n.jsx(Us,{open:y,onClose:()=>f(!1),workflow:r,prefill:a})]})}const et={"file-upload":Yr,"code-editor":zr,signature:Kr,"rich-text":Qr,markdown:Zr,checklist:es,attachment:Dt,image:Dt,link:ss,escalation:as,"escalation-list":fs,invoke:qs},he="textarea",je="json";function Hs(t){return t in et||t===he||t===je}function Xt(t,e=""){if(!t||typeof t!="object"||Array.isArray(t))return[];const s=t,r=[],i=s["x-lt-widget"];typeof i=="string"&&e&&!Hs(i)&&r.push({path:e,widget:i});const o=s.properties;if(o&&typeof o=="object"&&!Array.isArray(o))for(const[a,l]of Object.entries(o))r.push(...Xt(l,e?`${e}.${a}`:a));return s.items&&r.push(...Xt(s.items,e)),r}const Vs=new Set(["string","number","integer","boolean","array","object"]);function Bs(t,e){const s=t==null?void 0:t.type;if(typeof s=="string"&&Vs.has(s))return s;if(e==null)return"null";if(Array.isArray(e))return"array";const r=typeof e;return r==="number"||r==="boolean"||r==="string"?r:"object"}const dt="dictionary",Xs=new Set(["markdown","attachment","image"]);function Ne(t,e){if(!e)return;const s=t==null?void 0:t["x-lt-section-options"],r=s==null?void 0:s[e];return r&&typeof r=="object"?r:void 0}function Ys(t,e,s){var l,c;const r=(l=t==null?void 0:t.properties)==null?void 0:l[s];if((r==null?void 0:r.readOnly)!==!0)return!1;const i=r==null?void 0:r["x-lt-widget"];if(typeof i=="string"&&Xs.has(i))return!1;const o=r==null?void 0:r["x-lt-display"];if(typeof o=="string")return o===dt;const a=(c=Ne(t,e))==null?void 0:c.display;return typeof a=="string"?a===dt:(t==null?void 0:t["x-lt-display"])===dt}function zs(t,e,s,r){var o;const i=[];for(const a of t){const[l]=a,c=i[i.length-1];if(Ys(e,s,l)){(c==null?void 0:c.kind)==="dictionary"?c.entries.push(a):i.push({kind:"dictionary",entries:[a]});continue}const u=(o=e==null?void 0:e.properties)==null?void 0:o[l],d=u==null?void 0:u["x-lt-column-group"];if(r==="two-column"&&typeof d=="string"&&d.trim()){(c==null?void 0:c.kind)==="column-group"&&c.name===d?c.entries.push(a):i.push({kind:"column-group",name:d,entries:[a]});continue}i.push({kind:"field",entry:a})}return i}function Ks({value:t,options:e,nullable:s,fieldKey:r,label:i,helperText:o,isRequired:a,error:l,onBlur:c,ids:u,ariaProps:d,onChange:x}){const p=t==null||t===""?"":String(t),m=e.some(y=>String(y.value)===p);return n.jsxs("div",{children:[n.jsx(_,{isRequired:a,htmlFor:u.field,children:i}),o&&n.jsx($,{id:u.help,children:o}),n.jsxs("select",{value:m?p:"",disabled:e.length===0,onChange:y=>{const f=e.find(b=>String(b.value)===y.target.value);x(f?f.value:null),c==null||c()},onBlur:c,"data-field-key":r,className:Xr(!!l),...d,children:[(!m||s)&&n.jsx("option",{value:"",disabled:!s,children:"Choose…"}),e.map(y=>n.jsx("option",{value:String(y.value),children:y.label},String(y.value)))]}),n.jsx(D,{error:l,id:u.error})]})}function Qs({value:t,options:e,fieldKey:s,label:r,helperText:i,isRequired:o,error:a,onBlur:l,ids:c,ariaProps:u,onChange:d}){const x=new Set(Array.isArray(t)?t:[]),p=m=>{const y=new Set(x);y.has(m)?y.delete(m):y.add(m),d(e.filter(f=>y.has(f.value)).map(f=>f.value)),l==null||l()};return n.jsxs("div",{role:"group","aria-label":r,"aria-required":o||void 0,"aria-invalid":a?!0:void 0,"aria-describedby":u["aria-describedby"],children:[n.jsx(_,{isRequired:o,children:r}),i&&n.jsx($,{id:c.help,children:i}),e.length===0?n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No options yet"}):n.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:e.map((m,y)=>{const f=x.has(m.value);return n.jsxs("label",{className:`inline-flex items-center gap-1.5 cursor-pointer select-none px-3.5 py-2 text-sm border transition-colors rounded-[var(--lt-radius-field)] ${f?"bg-accent border-accent text-text-inverse":a?"bg-surface-field border-status-error/60 text-status-error":"bg-surface-field border-surface-field-border text-text-secondary hover:border-accent hover:text-text-primary"}`,children:[n.jsx("input",{type:"checkbox",checked:f,onChange:()=>p(m.value),className:"sr-only","data-testid":`multi-select-${s}-${String(m.value)}`,...y===0?{"data-field-key":s,id:c.field}:{}}),f&&n.jsx(Zt,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),m.label]},String(m.value))})}),n.jsx(D,{error:a,id:c.error})]})}function Yt(t){return typeof t=="string"?t:t==null?"":JSON.stringify(t,null,2)}function zt(t){try{return{ok:!0,value:JSON.parse(t)}}catch{return{ok:!1}}}function Zs({value:t,fieldKey:e,label:s,helperText:r,isRequired:i,error:o,onBlur:a,ids:l,ariaProps:c,onChange:u}){const[d,x]=g.useState(()=>Yt(t));g.useEffect(()=>{if(typeof t=="string"){t!==d&&x(t);return}const m=zt(d);!(m.ok&&JSON.stringify(m.value)===JSON.stringify(t??null))&&!(d.trim()===""&&t===null)&&x(Yt(t))},[t]);const p=d.split(`
6
+ `).length;return n.jsxs("div",{children:[n.jsx(_,{isRequired:i,htmlFor:l.field,children:s}),r&&n.jsx($,{id:l.help,children:r}),n.jsx("textarea",{value:d,onChange:m=>{const y=m.target.value;if(x(y),y.trim()===""){u(null);return}const f=zt(y);u(f.ok?f.value:y)},onBlur:a,spellCheck:!1,"data-field-key":e,rows:Math.min(14,Math.max(4,p)),className:`${X(!!o)} font-mono text-xs leading-relaxed`,...c}),n.jsx(D,{error:o,id:l.error})]})}const Kt={date:"date","date-time":"datetime-local",email:"email",uri:"url"},ti={date:"max-w-48","date-time":"max-w-64"};function ve({fieldKey:t,value:e,onChange:s,onBlur:r,schema:i,isRequired:o,isReadOnly:a,error:l,escalationContext:c,submitAttempted:u}){var M;const d=(M=i==null?void 0:i.properties)==null?void 0:M[t],x=U(t,d),p=d==null?void 0:d["x-lt-widget"],m=Bs(d,e),y=`lt-field-${t}`,f={field:y,help:`${y}-help`,error:`${y}-error`},b=typeof(d==null?void 0:d.description)=="string"&&d.description.length>0?d.description:void 0,j={id:y,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,"aria-describedby":l?f.error:b?f.help:void 0},E={fieldKey:t,label:x,helperText:b,isRequired:o,error:l,onBlur:r,ids:f,ariaProps:j,onChange:s},h=p==="markdown"&&typeof e=="string",N=(p==="attachment"||p==="image")&&typeof e=="string",v=!!(p&&p in et);if(a&&!h&&!N&&!v){const A=e===null?"null":typeof e=="object"?JSON.stringify(e,null,2):String(e);return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,children:x}),n.jsx("p",{className:"text-sm text-text-secondary mt-0.5 whitespace-pre-wrap",children:A})]})}if(p===je&&(m==="array"||m==="object"))return n.jsx(Zs,{...E,value:e});if(p&&p in et){const A=et[p],R=o||(d==null?void 0:d["x-lt-require-all"])===!0,O={fieldKey:t,schema:d,escalationContext:c,isRequired:R,submitAttempted:u,error:l};if((d==null?void 0:d.type)==="object"){const T=typeof e=="string"?e:typeof e=="object"&&e!==null&&!Array.isArray(e)?JSON.stringify(e):"";return n.jsx(A,{...O,value:T,onChange:J=>{try{s(JSON.parse(J))}catch{s(J)}}})}if(typeof e=="string")return n.jsx(A,{...O,value:e,onChange:T=>s(T)});if(typeof e=="object"&&e!==null&&!Array.isArray(e))return n.jsx(A,{...O,value:JSON.stringify(e),onChange:T=>{try{s(JSON.parse(T))}catch{s(T)}}})}const k=yt(d,c);if(m==="array"){if(k!==void 0&&(d==null?void 0:d["x-lt-options"])!==void 0)return n.jsx(Qs,{...E,value:e,options:k})}else if(k!==void 0&&m!=="object")return n.jsx(Ks,{...E,value:e,options:k,nullable:(d==null?void 0:d["x-lt-nullable"])===!0});switch(m){case"boolean":return n.jsxs("div",{children:[n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:e===!0,onChange:A=>{s(A.target.checked),r==null||r()},className:"w-3.5 h-3.5 rounded accent-accent","data-field-key":t,...j}),n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[x,o&&n.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})]}),b&&n.jsx($,{id:f.help,children:b}),n.jsx(D,{error:l,id:f.error})]});case"number":case"integer":return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,htmlFor:y,children:x}),b&&n.jsx($,{id:f.help,children:b}),n.jsx("input",{type:"number",value:typeof e=="number"||typeof e=="string"?e:"",onChange:A=>s(parseFloat(A.target.value)||0),onBlur:r,step:"any","data-field-key":t,className:`${X(!!l)} max-w-48`,...j}),n.jsx(D,{error:l,id:f.error})]});case"string":return C(typeof e=="string"?e:e==null?"":String(e));case"array":return Array.isArray(e)?n.jsxs("div",{children:[n.jsx(_,{isRequired:o,children:x}),n.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1",children:e.map((A,R)=>n.jsx("span",{className:"px-2 py-0.5 text-2xs font-mono bg-surface-sunken rounded text-text-secondary",children:String(A)},R))})]}):C(e==null?"":String(e));case"object":{if(typeof e!="object"||e===null||Array.isArray(e))return C(e==null?"":String(e));const A=Object.entries(e);return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,children:x}),n.jsx("div",{className:"ml-4 mt-2 pl-4 border-l border-accent-faint space-y-3",children:A.map(([R,O])=>n.jsx(ve,{fieldKey:R,value:O,onChange:T=>s({...e,[R]:T})},R))})]})}default:return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,children:x}),n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"null"})]})}function C(A){const R=d==null?void 0:d.format;if(R==="password")return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,htmlFor:y,children:x}),b&&n.jsx($,{id:f.help,children:b}),n.jsx("input",{type:"password",value:A,onChange:O=>s(O.target.value),onBlur:r,"data-field-key":t,className:X(!!l),autoComplete:"off",...j}),n.jsx(D,{error:l,id:f.error})]});if(R&&R in Kt)return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,htmlFor:y,children:x}),b&&n.jsx($,{id:f.help,children:b}),n.jsx("input",{type:Kt[R],value:A,onChange:O=>s(O.target.value),onBlur:r,"data-field-key":t,className:`${X(!!l)} ${ti[R]??""}`,...j}),n.jsx(D,{error:l,id:f.error})]});if(R==="textarea"||p===he||A.includes(`
7
+ `)||A.length>80){const O=d==null?void 0:d.maxLength,T=d==null?void 0:d["x-lt-max-length"],J=T?Number(Y(T,c)):NaN,V=O??(Number.isFinite(J)?J:void 0),B=V!==void 0&&A.length>V;return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,htmlFor:y,children:x}),b&&n.jsx($,{id:f.help,children:b}),n.jsx("textarea",{value:A,onChange:lt=>{s(lt.target.value),r==null||r()},onBlur:r,"data-field-key":t,className:`${X(!!l)} leading-relaxed`,rows:Math.min(6,Math.max(3,Math.ceil(A.length/60))),...j}),V!==void 0&&n.jsxs("p",{className:`text-2xs mt-0.5 text-right tabular-nums ${B?"text-status-error font-medium":"text-text-quaternary"}`,children:[A.length," / ",V]}),n.jsx(D,{error:l,id:f.error})]})}return n.jsxs("div",{children:[n.jsx(_,{isRequired:o,htmlFor:y,children:x}),b&&n.jsx($,{id:f.help,children:b}),n.jsx("input",{type:"text",value:A,onChange:O=>s(O.target.value),onBlur:r,"data-field-key":t,className:X(!!l),...j}),n.jsx(D,{error:l,id:f.error})]})}}function ei({items:t,columns:e=1}){if(t.length===0)return null;const s=e>=2&&t.length>1?"grid-cols-1 @dict-inline:grid-cols-[max-content_1fr] @dict-pairs:grid-cols-[max-content_1fr_max-content_1fr]":"grid-cols-1 @dict-inline:grid-cols-[max-content_1fr]";return n.jsx("div",{className:"@container",children:n.jsx("dl",{className:`grid ${s} items-baseline gap-x-6 @dict-pairs:gap-x-8 gap-y-1.5`,children:t.map(({key:r,label:i,value:o})=>n.jsxs(g.Fragment,{children:[n.jsx("dt",{className:"text-2xs font-semibold uppercase tracking-wide text-text-secondary mt-2 first:mt-0 @dict-inline:mt-0",children:i}),n.jsx("dd",{className:"text-sm text-text-primary break-words whitespace-pre-wrap min-w-0","data-field-key":r,children:ni(o)})]},r))})})}function ni(t){return t==null||t===""?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="object"?JSON.stringify(t):String(t)}function ri({name:t,entries:e,formSchema:s,layout:r,renderField:i}){const o=zs(e,s,t,r),a=Ne(s,t),l=(a==null?void 0:a.columns)??(r==="two-column"?2:1),c=d=>d.map(([x,p])=>{var m;return{key:x,label:U(x,(m=s==null?void 0:s.properties)==null?void 0:m[x]),value:p}}),u=()=>o.map((d,x)=>d.kind==="dictionary"?n.jsx("div",{className:r==="two-column"?"col-span-full":"",children:n.jsx(ei,{items:c(d.entries),columns:l})},`dict-${x}`):d.kind==="column-group"?n.jsx("div",{className:"@container",children:n.jsx("div",{className:"grid grid-cols-1 @grp-cols:grid-cols-2 gap-x-4 gap-y-5",children:d.entries.map(p=>i(p))})},`group-${d.name}-${x}`):i(d.entry));return n.jsxs("div",{className:t?"border border-surface-border bg-surface-sunken rounded-[var(--lt-radius-section)] p-4 animate-[section-enter_0.25s_ease-out]":"",children:[t&&n.jsx("p",{className:"mb-4 text-[1.40625rem] font-semibold tracking-wider text-heading [font-variant-caps:small-caps]",children:t}),r==="two-column"?n.jsx("div",{className:"@container",children:n.jsx("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-col-gap gap-y-5",children:u()})}):n.jsx("div",{className:"space-y-5",children:u()})]})}function si({value:t,onChange:e,disabled:s,submitAttempted:r,escalationContext:i,onOpenHelp:o,onDisabledClick:a,disabledHint:l}){var Et,It;const[c,u]=g.useState({}),[d,x]=g.useState({}),[p,m]=g.useState(null),[y,f]=g.useState(!1),[b,j]=g.useState(new Set);g.useEffect(()=>{try{const w=JSON.parse(t);if(typeof w=="object"&&w!==null&&!Array.isArray(w)){const L={},I={};for(const[F,q]of Object.entries(w))F.startsWith("_")||F.startsWith("$")?I[F]=q:L[F]=q;u(L),x(I),m(I._form_schema&&typeof I._form_schema=="object"?I._form_schema:null),f(!1)}}catch{f(!0)}},[t]);const E=g.useCallback(w=>{u(w),e(JSON.stringify({...w,...d},null,2))},[d,e]),h=g.useCallback((w,L)=>{E({...c,[w]:L})},[c,E]),N=g.useCallback(w=>{j(L=>{if(L.has(w))return L;const I=new Set(L);return I.add(w),I})},[]);if(y)return n.jsx("p",{className:"text-xs text-status-error",children:"Unable to parse resolver data as form. Use the JSON editor below."});const v=Object.entries(c);if(v.length===0)return n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No resolver fields defined."});const k=p==null?void 0:p["x-lt-order"],C=k?[...v].sort((w,L)=>{const I=k.indexOf(w[0]),F=k.indexOf(L[0]);return(I===-1?1/0:I)-(F===-1?1/0:F)}):v,M={...i??{},resolver:c,input:c},A=C.filter(([w,L])=>{var F;const I=(F=p==null?void 0:p.properties)==null?void 0:F[w];return z(I==null?void 0:I["x-lt-showIf"],M)?!Pr(I,L):!1}),R=new Set((p==null?void 0:p.required)??[]),O=p==null?void 0:p["x-lt-layout"],T=p==null?void 0:p.title,J=p==null?void 0:p.description,V=typeof(p==null?void 0:p["x-lt-help"])=="string"||typeof(p==null?void 0:p["x-lt-context"])=="string",B=[];for(const w of A){const[L]=w,I=(Et=p==null?void 0:p.properties)==null?void 0:Et[L],F=((It=I==null?void 0:I["x-lt-section"])==null?void 0:It.trim())||null,q=B[B.length-1];!q||q.name!==F?B.push({name:F,entries:[w]}):q.entries.push(w)}const lt=([w,L])=>{var Ot;const I=(Ot=p==null?void 0:p.properties)==null?void 0:Ot[w],F=(I==null?void 0:I.readOnly)===!0,q=(I==null?void 0:I["x-lt-span"])??1,Ct=R.has(w),ke=b.has(w)||!!r,we=de(L,I,Ct,ke,M);return n.jsx("div",{className:`animate-[field-enter_0.2s_ease-out] ${O==="two-column"&&q>=2?"col-span-full":""}`,children:n.jsx(ve,{fieldKey:w,value:L,onChange:Ae=>h(w,Ae),onBlur:()=>N(w),schema:p,isRequired:Ct,isReadOnly:F,error:we,escalationContext:M,submitAttempted:!!r})},w)},At=n.jsxs("div",{className:s?"pointer-events-none":void 0,inert:s||void 0,"aria-disabled":s||void 0,children:[T&&n.jsxs("div",{className:"mb-1 flex items-center gap-1.5",children:[n.jsx("h3",{className:"heading-3",children:T}),V&&o&&n.jsx("button",{type:"button",onClick:o,title:"Open instructions","aria-label":"Open instructions",className:"p-1 rounded-md text-text-tertiary hover:text-accent hover:bg-surface-hover transition-colors",children:n.jsx(ne,{className:"w-4 h-4",strokeWidth:1.5})})]}),J&&n.jsx("p",{className:"text-sm text-text-secondary leading-relaxed mb-6",children:J}),n.jsx("div",{className:"space-y-8",children:B.map((w,L)=>n.jsx(ri,{name:w.name,entries:w.entries,formSchema:p,layout:O,renderField:lt},w.name??`__s${L}`))})]});return s?n.jsx(Br,{hint:l,onLockedClick:a,children:At}):n.jsx("div",{className:"pb-8 max-w-form",children:At})}export{oe as E,Ps as L,si as R,vt as W,pi as a,Pt as b,Tt as c,U as d,Ms as e,pe as f,yi as g,Es as h,Nr as i,Xt as j,fi as p,us as r,gi as s,ge as u,ue as v,mi as w};
8
+ //# sourceMappingURL=ResolverForm-Bk8iXQ6-.js.map