@hotmeshio/long-tail 0.19.1 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/README.md +4 -4
  2. package/build/api/escalations/accumulate.d.ts +96 -0
  3. package/build/api/escalations/accumulate.js +516 -0
  4. package/build/api/escalations/index.d.ts +1 -0
  5. package/build/api/escalations/index.js +10 -1
  6. package/build/api/roles.d.ts +4 -5
  7. package/build/api/roles.js +53 -4
  8. package/build/api/scan-codes/execute.js +2 -0
  9. package/build/api/scan-codes/verbs.d.ts +15 -0
  10. package/build/api/scan-codes/verbs.js +65 -0
  11. package/build/api/workflows/config.d.ts +3 -0
  12. package/build/api/workflows/config.js +15 -0
  13. package/build/api/workflows/index.d.ts +1 -0
  14. package/build/api/workflows/index.js +3 -1
  15. package/build/api/workflows/input-lookups.d.ts +16 -0
  16. package/build/api/workflows/input-lookups.js +69 -0
  17. package/build/api/workflows/input-validation.d.ts +4 -3
  18. package/build/api/workflows/input-validation.js +7 -4
  19. package/build/api/workflows/invocable.js +1 -0
  20. package/build/api/workflows/invocation.js +1 -1
  21. package/build/index.js +60 -0
  22. package/build/lib/db/schemas/035_workflow_input_lookups.sql +9 -0
  23. package/build/lib/db/schemas/036_role_portals.sql +12 -0
  24. package/build/routes/escalations/accumulate.d.ts +7 -0
  25. package/build/routes/escalations/accumulate.js +150 -0
  26. package/build/routes/escalations/index.js +5 -0
  27. package/build/routes/workflows/config.js +10 -0
  28. package/build/sdk/index.d.ts +25 -0
  29. package/build/sdk/index.js +8 -0
  30. package/build/services/config/cache.js +1 -0
  31. package/build/services/config/read.js +2 -0
  32. package/build/services/config/sql.d.ts +2 -2
  33. package/build/services/config/sql.js +6 -5
  34. package/build/services/config/write.js +10 -1
  35. package/build/services/escalation/accumulate.d.ts +81 -0
  36. package/build/services/escalation/accumulate.js +154 -0
  37. package/build/services/escalation/index.d.ts +1 -0
  38. package/build/services/escalation/index.js +1 -0
  39. package/build/services/knowledge/index.d.ts +1 -0
  40. package/build/services/knowledge/index.js +1 -0
  41. package/build/services/knowledge/lookup-refs.d.ts +7 -0
  42. package/build/services/knowledge/lookup-refs.js +26 -0
  43. package/build/services/mcp/db-server/schemas.d.ts +2 -2
  44. package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
  45. package/build/services/orchestrator/condition.d.ts +40 -3
  46. package/build/services/orchestrator/condition.js +42 -2
  47. package/build/services/role/index.js +1 -0
  48. package/build/services/role/seed.js +6 -1
  49. package/build/services/role/sql.d.ts +6 -3
  50. package/build/services/role/sql.js +7 -2
  51. package/build/services/role/types.d.ts +38 -10
  52. package/build/services/role/types.js +10 -1
  53. package/build/services/scan-code/validate.js +16 -0
  54. package/build/shared/form-validation/display-only-widgets.d.ts +16 -0
  55. package/build/shared/form-validation/display-only-widgets.js +25 -0
  56. package/build/shared/form-validation/field-validator.d.ts +1 -0
  57. package/build/shared/form-validation/field-validator.js +94 -6
  58. package/build/shared/form-validation/index.d.ts +2 -0
  59. package/build/shared/form-validation/index.js +2 -0
  60. package/build/shared/form-validation/invoke-context.d.ts +4 -3
  61. package/build/shared/form-validation/invoke-context.js +5 -4
  62. package/build/shared/form-validation/x-lt-bind.d.ts +2 -14
  63. package/build/shared/form-validation/x-lt-bind.js +12 -8
  64. package/build/shared/form-validation/x-lt-invoke.d.ts +38 -0
  65. package/build/shared/form-validation/x-lt-invoke.js +103 -0
  66. package/build/shared/form-validation/x-lt-options.d.ts +3 -3
  67. package/build/shared/form-validation/x-lt-options.js +19 -5
  68. package/build/shared/form-validation/x-lt-show-if.d.ts +5 -0
  69. package/build/shared/form-validation/x-lt-show-if.js +10 -0
  70. package/build/start/workers.js +10 -0
  71. package/build/system/mcp-servers/admin/escalations.js +39 -0
  72. package/build/system/mcp-servers/admin/schemas.d.ts +256 -33
  73. package/build/system/mcp-servers/admin/schemas.js +55 -3
  74. package/build/system/mcp-servers/admin/users.js +1 -0
  75. package/build/system/mcp-servers/admin/workflow-config.js +54 -9
  76. package/build/system/mcp-servers/admin/workflows.js +9 -7
  77. package/build/system/mcp-servers/db-query/schemas.d.ts +2 -2
  78. package/build/system/mcp-servers/docs.js +4 -0
  79. package/build/system/mcp-servers/human-queue-schemas.d.ts +85 -0
  80. package/build/system/mcp-servers/human-queue-schemas.js +19 -1
  81. package/build/system/mcp-servers/human-queue.d.ts +2 -0
  82. package/build/system/mcp-servers/human-queue.js +77 -0
  83. package/build/system/seed/tool-manifests-admin.d.ts +1509 -227
  84. package/build/system/seed/tool-manifests-admin.js +8 -4
  85. package/build/system/seed/tool-manifests-escalation.d.ts +174 -0
  86. package/build/system/seed/tool-manifests-escalation.js +56 -0
  87. package/build/tsconfig.tsbuildinfo +1 -1
  88. package/build/types/config.d.ts +4 -0
  89. package/build/types/escalation.d.ts +52 -0
  90. package/build/types/escalation.js +29 -1
  91. package/build/types/index.d.ts +2 -2
  92. package/build/types/index.js +3 -1
  93. package/build/types/scan-code.d.ts +24 -0
  94. package/build/types/scan-code.js +9 -0
  95. package/build/types/startup.d.ts +26 -0
  96. package/dashboard/dist/assets/{AdminDashboard-Drs-9TRM.js → AdminDashboard-uarpHB88.js} +2 -2
  97. package/dashboard/dist/assets/{AdminDashboard-Drs-9TRM.js.map → AdminDashboard-uarpHB88.js.map} +1 -1
  98. package/dashboard/dist/assets/{AgentConfigPage-BDPDZ7-v.js → AgentConfigPage-BcUaDD5E.js} +6 -6
  99. package/dashboard/dist/assets/{AgentConfigPage-BDPDZ7-v.js.map → AgentConfigPage-BcUaDD5E.js.map} +1 -1
  100. package/dashboard/dist/assets/{AgentDetailPage-CGBulM4_.js → AgentDetailPage-BaZBhK6i.js} +3 -3
  101. package/dashboard/dist/assets/{AgentDetailPage-CGBulM4_.js.map → AgentDetailPage-BaZBhK6i.js.map} +1 -1
  102. package/dashboard/dist/assets/AgentsPage-CuVFSDc4.js +2 -0
  103. package/dashboard/dist/assets/{AgentsPage-D77JeViQ.js.map → AgentsPage-CuVFSDc4.js.map} +1 -1
  104. package/dashboard/dist/assets/AvailableEscalationsPage-iO5NyyIK.js +2 -0
  105. package/dashboard/dist/assets/AvailableEscalationsPage-iO5NyyIK.js.map +1 -0
  106. package/dashboard/dist/assets/{BotPicker-CC5vI_Sv.js → BotPicker-CClMby6B.js} +2 -2
  107. package/dashboard/dist/assets/{BotPicker-CC5vI_Sv.js.map → BotPicker-CClMby6B.js.map} +1 -1
  108. package/dashboard/dist/assets/BulkAssignModal-BL8FRgkN.js +2 -0
  109. package/dashboard/dist/assets/{BulkAssignModal-BXiJnlqt.js.map → BulkAssignModal-BL8FRgkN.js.map} +1 -1
  110. package/dashboard/dist/assets/CapabilitiesPage-D53ogPor.js +2 -0
  111. package/dashboard/dist/assets/{CapabilitiesPage-D9TC2iKy.js.map → CapabilitiesPage-D53ogPor.js.map} +1 -1
  112. package/dashboard/dist/assets/{CollapsibleSection-D10lGw_u.js → CollapsibleSection-ow8jpbtD.js} +2 -2
  113. package/dashboard/dist/assets/{CollapsibleSection-D10lGw_u.js.map → CollapsibleSection-ow8jpbtD.js.map} +1 -1
  114. package/dashboard/dist/assets/{ConfirmDeleteModal-BJdLN6No.js → ConfirmDeleteModal-CeEDt9iJ.js} +2 -2
  115. package/dashboard/dist/assets/{ConfirmDeleteModal-BJdLN6No.js.map → ConfirmDeleteModal-CeEDt9iJ.js.map} +1 -1
  116. package/dashboard/dist/assets/{CountdownTimer-D9B-BjQ7.js → CountdownTimer-CSqyZMCG.js} +2 -2
  117. package/dashboard/dist/assets/{CountdownTimer-D9B-BjQ7.js.map → CountdownTimer-CSqyZMCG.js.map} +1 -1
  118. package/dashboard/dist/assets/{CredentialsPage-hniUAFBK.js → CredentialsPage-Dx7SxA23.js} +2 -2
  119. package/dashboard/dist/assets/{CredentialsPage-hniUAFBK.js.map → CredentialsPage-Dx7SxA23.js.map} +1 -1
  120. package/dashboard/dist/assets/{CronLabel-v9DCD2FX.js → CronLabel-LYPxpvNN.js} +2 -2
  121. package/dashboard/dist/assets/{CronLabel-v9DCD2FX.js.map → CronLabel-LYPxpvNN.js.map} +1 -1
  122. package/dashboard/dist/assets/DataTable-spX1dFyb.js +2 -0
  123. package/dashboard/dist/assets/DataTable-spX1dFyb.js.map +1 -0
  124. package/dashboard/dist/assets/{DropZone-XlcY8hEH.js → DropZone-f1o-GLM8.js} +2 -2
  125. package/dashboard/dist/assets/{DropZone-XlcY8hEH.js.map → DropZone-f1o-GLM8.js.map} +1 -1
  126. package/dashboard/dist/assets/{ElapsedCell-_xvVTK8N.js → ElapsedCell-BZJTSm9N.js} +2 -2
  127. package/dashboard/dist/assets/{ElapsedCell-_xvVTK8N.js.map → ElapsedCell-BZJTSm9N.js.map} +1 -1
  128. package/dashboard/dist/assets/EntityTimelinePanel-0wIIW2en.js +2 -0
  129. package/dashboard/dist/assets/{EntityTimelinePanel-1lT3jkCM.js.map → EntityTimelinePanel-0wIIW2en.js.map} +1 -1
  130. package/dashboard/dist/assets/{EscalationListSchemaPage-BeQUTUEO.js → EscalationListSchemaPage-CoYvtMzj.js} +3 -3
  131. package/dashboard/dist/assets/{EscalationListSchemaPage-BeQUTUEO.js.map → EscalationListSchemaPage-CoYvtMzj.js.map} +1 -1
  132. package/dashboard/dist/assets/EscalationListView-DWFHPufv.js +2 -0
  133. package/dashboard/dist/assets/EscalationListView-DWFHPufv.js.map +1 -0
  134. package/dashboard/dist/assets/{EscalationSchemaPage-D4VlEwyS.js → EscalationSchemaPage-C9Xu_A25.js} +3 -3
  135. package/dashboard/dist/assets/{EscalationSchemaPage-D4VlEwyS.js.map → EscalationSchemaPage-C9Xu_A25.js.map} +1 -1
  136. package/dashboard/dist/assets/EscalationTimeline-D8W2LNNk.js +2 -0
  137. package/dashboard/dist/assets/EscalationTimeline-D8W2LNNk.js.map +1 -0
  138. package/dashboard/dist/assets/EscalationTitleSelect-DLK8NWMp.js +2 -0
  139. package/dashboard/dist/assets/EscalationTitleSelect-DLK8NWMp.js.map +1 -0
  140. package/dashboard/dist/assets/{EscalationsOverview-Bx6Zrzm-.js → EscalationsOverview-CW57FaP9.js} +2 -2
  141. package/dashboard/dist/assets/{EscalationsOverview-Bx6Zrzm-.js.map → EscalationsOverview-CW57FaP9.js.map} +1 -1
  142. package/dashboard/dist/assets/{EventTable-KEC3YWBf.js → EventTable-D1ctWhKf.js} +2 -2
  143. package/dashboard/dist/assets/{EventTable-KEC3YWBf.js.map → EventTable-D1ctWhKf.js.map} +1 -1
  144. package/dashboard/dist/assets/{FilterBar-xwN_b5fj.js → FilterBar-C-iur-Nj.js} +2 -2
  145. package/dashboard/dist/assets/{FilterBar-xwN_b5fj.js.map → FilterBar-C-iur-Nj.js.map} +1 -1
  146. package/dashboard/dist/assets/GraphInvokePage-CcA_44M4.js +2 -0
  147. package/dashboard/dist/assets/{GraphInvokePage-DV7Y0fe2.js.map → GraphInvokePage-CcA_44M4.js.map} +1 -1
  148. package/dashboard/dist/assets/HomePage-Dc085ghJ.js +2 -0
  149. package/dashboard/dist/assets/{HomePage-G785SWcW.js.map → HomePage-Dc085ghJ.js.map} +1 -1
  150. package/dashboard/dist/assets/ListToolbar-h_ziBt4O.js +2 -0
  151. package/dashboard/dist/assets/{ListToolbar-zPVYPg3W.js.map → ListToolbar-h_ziBt4O.js.map} +1 -1
  152. package/dashboard/dist/assets/{McpOverview-CMGUq8hx.js → McpOverview-qXXhbNWV.js} +2 -2
  153. package/dashboard/dist/assets/{McpOverview-CMGUq8hx.js.map → McpOverview-qXXhbNWV.js.map} +1 -1
  154. package/dashboard/dist/assets/{McpQueryDetailPage-CdhLhaKn.js → McpQueryDetailPage-SEzSbZrd.js} +2 -2
  155. package/dashboard/dist/assets/{McpQueryDetailPage-CdhLhaKn.js.map → McpQueryDetailPage-SEzSbZrd.js.map} +1 -1
  156. package/dashboard/dist/assets/McpQueryPage-Cy0V0kv9.js +2 -0
  157. package/dashboard/dist/assets/{McpQueryPage-CNSNMagY.js.map → McpQueryPage-Cy0V0kv9.js.map} +1 -1
  158. package/dashboard/dist/assets/{McpRunDetailPage-DBm8hUaW.js → McpRunDetailPage-DjJO5vSb.js} +2 -2
  159. package/dashboard/dist/assets/{McpRunDetailPage-DBm8hUaW.js.map → McpRunDetailPage-DjJO5vSb.js.map} +1 -1
  160. package/dashboard/dist/assets/McpRunsPage-BfjiJ8mM.js +2 -0
  161. package/dashboard/dist/assets/{McpRunsPage-B6rb5QBf.js.map → McpRunsPage-BfjiJ8mM.js.map} +1 -1
  162. package/dashboard/dist/assets/{NamespacePill-Bb3revqD.js → NamespacePill-DADRJOUl.js} +2 -2
  163. package/dashboard/dist/assets/{NamespacePill-Bb3revqD.js.map → NamespacePill-DADRJOUl.js.map} +1 -1
  164. package/dashboard/dist/assets/OperationsPage-dJcER0T_.js +3 -0
  165. package/dashboard/dist/assets/OperationsPage-dJcER0T_.js.map +1 -0
  166. package/dashboard/dist/assets/OperatorDashboard-zCkW4eqk.js +2 -0
  167. package/dashboard/dist/assets/{OperatorDashboard-DBOscDnf.js.map → OperatorDashboard-zCkW4eqk.js.map} +1 -1
  168. package/dashboard/dist/assets/{PageHeader-Di5Sz3an.js → PageHeader-Csq434-v.js} +2 -2
  169. package/dashboard/dist/assets/{PageHeader-Di5Sz3an.js.map → PageHeader-Csq434-v.js.map} +1 -1
  170. package/dashboard/dist/assets/{PageHeaderWithStats-DutKJ-h2.js → PageHeaderWithStats-CSnk1p5A.js} +2 -2
  171. package/dashboard/dist/assets/{PageHeaderWithStats-DutKJ-h2.js.map → PageHeaderWithStats-CSnk1p5A.js.map} +1 -1
  172. package/dashboard/dist/assets/{PersonaDetailPage-BGRdGpeR.js → PersonaDetailPage-Cx6L3Jvu.js} +2 -2
  173. package/dashboard/dist/assets/{PersonaDetailPage-BGRdGpeR.js.map → PersonaDetailPage-Cx6L3Jvu.js.map} +1 -1
  174. package/dashboard/dist/assets/{PersonasPage-DRzOZcVa.js → PersonasPage-DOgGUlJl.js} +2 -2
  175. package/dashboard/dist/assets/{PersonasPage-DRzOZcVa.js.map → PersonasPage-DOgGUlJl.js.map} +1 -1
  176. package/dashboard/dist/assets/PortalPage-BKuL1BeJ.js +2 -0
  177. package/dashboard/dist/assets/PortalPage-BKuL1BeJ.js.map +1 -0
  178. package/dashboard/dist/assets/{ProcessDetailPage-BLGjZXpM.js → ProcessDetailPage-BFcFSDUv.js} +2 -2
  179. package/dashboard/dist/assets/{ProcessDetailPage-BLGjZXpM.js.map → ProcessDetailPage-BFcFSDUv.js.map} +1 -1
  180. package/dashboard/dist/assets/ProcessesListPage-BaHV2cXp.js +2 -0
  181. package/dashboard/dist/assets/{ProcessesListPage-5NnysKFC.js.map → ProcessesListPage-BaHV2cXp.js.map} +1 -1
  182. package/dashboard/dist/assets/ResolverForm-Bgc0Zrya.js +7 -0
  183. package/dashboard/dist/assets/ResolverForm-Bgc0Zrya.js.map +1 -0
  184. package/dashboard/dist/assets/RoleDetailPage-BPY6i3CU.js +8 -0
  185. package/dashboard/dist/assets/RoleDetailPage-BPY6i3CU.js.map +1 -0
  186. package/dashboard/dist/assets/{RolePill-DhnVPK4q.js → RolePill-BafrASDX.js} +2 -2
  187. package/dashboard/dist/assets/{RolePill-DhnVPK4q.js.map → RolePill-BafrASDX.js.map} +1 -1
  188. package/dashboard/dist/assets/{RolesPage-BmW1LzkU.js → RolesPage-DSqqKPbv.js} +2 -2
  189. package/dashboard/dist/assets/{RolesPage-BmW1LzkU.js.map → RolesPage-DSqqKPbv.js.map} +1 -1
  190. package/dashboard/dist/assets/RunAsSelector-B29iWwel.js +2 -0
  191. package/dashboard/dist/assets/{RunAsSelector-BwZTJ4Yj.js.map → RunAsSelector-B29iWwel.js.map} +1 -1
  192. package/dashboard/dist/assets/ScanCodesPage-S8aAJfnC.js +2 -0
  193. package/dashboard/dist/assets/{ScanCodesPage-FiYIYB-m.js.map → ScanCodesPage-S8aAJfnC.js.map} +1 -1
  194. package/dashboard/dist/assets/{ScanSchemeDetailPage-BiAqtD-a.js → ScanSchemeDetailPage-CUBRAtmJ.js} +2 -2
  195. package/dashboard/dist/assets/{ScanSchemeDetailPage-BiAqtD-a.js.map → ScanSchemeDetailPage-CUBRAtmJ.js.map} +1 -1
  196. package/dashboard/dist/assets/ScanStationPage-R9t1-CeQ.js +2 -0
  197. package/dashboard/dist/assets/{ScanStationPage-8CdOtbCD.js.map → ScanStationPage-R9t1-CeQ.js.map} +1 -1
  198. package/dashboard/dist/assets/{ScopeBadge-CXUg0FHo.js → ScopeBadge-b6MIBiYD.js} +2 -2
  199. package/dashboard/dist/assets/{ScopeBadge-CXUg0FHo.js.map → ScopeBadge-b6MIBiYD.js.map} +1 -1
  200. package/dashboard/dist/assets/{StickyPagination-DRuqKhZt.js → StickyPagination-CkW_A507.js} +2 -2
  201. package/dashboard/dist/assets/{StickyPagination-DRuqKhZt.js.map → StickyPagination-CkW_A507.js.map} +1 -1
  202. package/dashboard/dist/assets/{StreamMessageDetail-JwlbRiMn.js → StreamMessageDetail-yzWX0wac.js} +2 -2
  203. package/dashboard/dist/assets/{StreamMessageDetail-JwlbRiMn.js.map → StreamMessageDetail-yzWX0wac.js.map} +1 -1
  204. package/dashboard/dist/assets/{SwimlaneTimeline-hu3c4bCJ.js → SwimlaneTimeline-Cf4DXFxj.js} +2 -2
  205. package/dashboard/dist/assets/{SwimlaneTimeline-hu3c4bCJ.js.map → SwimlaneTimeline-Cf4DXFxj.js.map} +1 -1
  206. package/dashboard/dist/assets/{TagInput-BZ8vb2oW.js → TagInput-ZrIIrEUP.js} +2 -2
  207. package/dashboard/dist/assets/{TagInput-BZ8vb2oW.js.map → TagInput-ZrIIrEUP.js.map} +1 -1
  208. package/dashboard/dist/assets/{TaskDetailPage-NqVZF3jW.js → TaskDetailPage-DCDcEps9.js} +2 -2
  209. package/dashboard/dist/assets/{TaskDetailPage-NqVZF3jW.js.map → TaskDetailPage-DCDcEps9.js.map} +1 -1
  210. package/dashboard/dist/assets/{TaskQueuePill-Bxir8WRl.js → TaskQueuePill-DkQ1uc6y.js} +2 -2
  211. package/dashboard/dist/assets/{TaskQueuePill-Bxir8WRl.js.map → TaskQueuePill-DkQ1uc6y.js.map} +1 -1
  212. package/dashboard/dist/assets/TasksListPage-BBATgpf7.js +2 -0
  213. package/dashboard/dist/assets/{TasksListPage-BQNaSzCn.js.map → TasksListPage-BBATgpf7.js.map} +1 -1
  214. package/dashboard/dist/assets/{TimeAgo-Cv35DOiI.js → TimeAgo-CSNVEjch.js} +2 -2
  215. package/dashboard/dist/assets/{TimeAgo-Cv35DOiI.js.map → TimeAgo-CSNVEjch.js.map} +1 -1
  216. package/dashboard/dist/assets/{TimestampCell-DHUXey9s.js → TimestampCell-Du1nBrPn.js} +2 -2
  217. package/dashboard/dist/assets/{TimestampCell-DHUXey9s.js.map → TimestampCell-Du1nBrPn.js.map} +1 -1
  218. package/dashboard/dist/assets/{ToolPill-FkgTXIhq.js → ToolPill-Baxm02L6.js} +2 -2
  219. package/dashboard/dist/assets/{ToolPill-FkgTXIhq.js.map → ToolPill-Baxm02L6.js.map} +1 -1
  220. package/dashboard/dist/assets/ToolTestPanel-CF-h_5Rg.js +2 -0
  221. package/dashboard/dist/assets/{ToolTestPanel-DvuLFWqQ.js.map → ToolTestPanel-CF-h_5Rg.js.map} +1 -1
  222. package/dashboard/dist/assets/{TopicDetailPage-TXX3QNSo.js → TopicDetailPage-Dr1UmWcp.js} +3 -3
  223. package/dashboard/dist/assets/{TopicDetailPage-TXX3QNSo.js.map → TopicDetailPage-Dr1UmWcp.js.map} +1 -1
  224. package/dashboard/dist/assets/TopicsPage-CUUo-Ylf.js +2 -0
  225. package/dashboard/dist/assets/{TopicsPage-h-oyTeEJ.js.map → TopicsPage-CUUo-Ylf.js.map} +1 -1
  226. package/dashboard/dist/assets/{UserName-BceRCeDF.js → UserName-kBh1dc39.js} +2 -2
  227. package/dashboard/dist/assets/{UserName-BceRCeDF.js.map → UserName-kBh1dc39.js.map} +1 -1
  228. package/dashboard/dist/assets/{WorkflowExecutionPage-CmHGcaN9.js → WorkflowExecutionPage-CCRSbnDx.js} +2 -2
  229. package/dashboard/dist/assets/{WorkflowExecutionPage-CmHGcaN9.js.map → WorkflowExecutionPage-CCRSbnDx.js.map} +1 -1
  230. package/dashboard/dist/assets/{WorkflowPill--AYMW7u_.js → WorkflowPill-ZepbO_ny.js} +2 -2
  231. package/dashboard/dist/assets/{WorkflowPill--AYMW7u_.js.map → WorkflowPill-ZepbO_ny.js.map} +1 -1
  232. package/dashboard/dist/assets/WorkflowsDashboard-BNQVvyek.js +2 -0
  233. package/dashboard/dist/assets/{WorkflowsDashboard-B0r2lQXk.js.map → WorkflowsDashboard-BNQVvyek.js.map} +1 -1
  234. package/dashboard/dist/assets/{WorkflowsOverview-BTMc2PJ_.js → WorkflowsOverview-DswubNJN.js} +2 -2
  235. package/dashboard/dist/assets/{WorkflowsOverview-BTMc2PJ_.js.map → WorkflowsOverview-DswubNJN.js.map} +1 -1
  236. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DUiCVnZp.js → YamlWorkflowDetailPage-Cw9Dlmup.js} +11 -11
  237. package/dashboard/dist/assets/{YamlWorkflowDetailPage-DUiCVnZp.js.map → YamlWorkflowDetailPage-Cw9Dlmup.js.map} +1 -1
  238. package/dashboard/dist/assets/{YamlWorkflowsPage-BAuXfwi0.js → YamlWorkflowsPage-DB8xnIXy.js} +2 -2
  239. package/dashboard/dist/assets/{YamlWorkflowsPage-BAuXfwi0.js.map → YamlWorkflowsPage-DB8xnIXy.js.map} +1 -1
  240. package/dashboard/dist/assets/{agents-BvmLCk4h.js → agents-BwEnf6N9.js} +2 -2
  241. package/dashboard/dist/assets/{agents-BvmLCk4h.js.map → agents-BwEnf6N9.js.map} +1 -1
  242. package/dashboard/dist/assets/{bots-f_tyhl4I.js → bots-CCmJTT2u.js} +2 -2
  243. package/dashboard/dist/assets/{bots-f_tyhl4I.js.map → bots-CCmJTT2u.js.map} +1 -1
  244. package/dashboard/dist/assets/{capabilities-DNo5bqLx.js → capabilities-BZHgp_nh.js} +2 -2
  245. package/dashboard/dist/assets/{capabilities-DNo5bqLx.js.map → capabilities-BZHgp_nh.js.map} +1 -1
  246. package/dashboard/dist/assets/{constants-BHkpVaqx.js → constants-CeBBTzf5.js} +2 -2
  247. package/dashboard/dist/assets/{constants-BHkpVaqx.js.map → constants-CeBBTzf5.js.map} +1 -1
  248. package/dashboard/dist/assets/{controlplane-Dyyj2Irb.js → controlplane-CyfwUlFA.js} +2 -2
  249. package/dashboard/dist/assets/{controlplane-Dyyj2Irb.js.map → controlplane-CyfwUlFA.js.map} +1 -1
  250. package/dashboard/dist/assets/escalation-columns-BJPTNmLW.js +2 -0
  251. package/dashboard/dist/assets/escalation-columns-BJPTNmLW.js.map +1 -0
  252. package/dashboard/dist/assets/index-3gbd5neL.js +67 -0
  253. package/dashboard/dist/assets/index-3gbd5neL.js.map +1 -0
  254. package/dashboard/dist/assets/index-BAAVTyZ-.js +2 -0
  255. package/dashboard/dist/assets/{index-DL83W7Gu.js.map → index-BAAVTyZ-.js.map} +1 -1
  256. package/dashboard/dist/assets/{index-CsKiRyhy.js → index-BC6Jenlo.js} +2 -2
  257. package/dashboard/dist/assets/{index-CsKiRyhy.js.map → index-BC6Jenlo.js.map} +1 -1
  258. package/dashboard/dist/assets/index-C7KHqOTQ.js +2 -0
  259. package/dashboard/dist/assets/{index-D7ESqn22.js.map → index-C7KHqOTQ.js.map} +1 -1
  260. package/dashboard/dist/assets/index-CDrqqbSR.js +3 -0
  261. package/dashboard/dist/assets/index-CDrqqbSR.js.map +1 -0
  262. package/dashboard/dist/assets/index-CVwzCZ43.js +2 -0
  263. package/dashboard/dist/assets/{index-DvxxrFBo.js.map → index-CVwzCZ43.js.map} +1 -1
  264. package/dashboard/dist/assets/index-CaGF6TCC.js +2 -0
  265. package/dashboard/dist/assets/index-CaGF6TCC.js.map +1 -0
  266. package/dashboard/dist/assets/index-ClVbfe4z.js +13 -0
  267. package/dashboard/dist/assets/index-ClVbfe4z.js.map +1 -0
  268. package/dashboard/dist/assets/{index-DWse7ERF.js → index-CuVkSmj5.js} +2 -2
  269. package/dashboard/dist/assets/{index-DWse7ERF.js.map → index-CuVkSmj5.js.map} +1 -1
  270. package/dashboard/dist/assets/{index-PcyGjmBm.js → index-DAuX_PlL.js} +2 -2
  271. package/dashboard/dist/assets/{index-PcyGjmBm.js.map → index-DAuX_PlL.js.map} +1 -1
  272. package/dashboard/dist/assets/{index-e2X-s0EQ.js → index-DBWS5QL8.js} +2 -2
  273. package/dashboard/dist/assets/{index-e2X-s0EQ.js.map → index-DBWS5QL8.js.map} +1 -1
  274. package/dashboard/dist/assets/index-DIWCI6HC.js +2 -0
  275. package/dashboard/dist/assets/{index-BNZknxFY.js.map → index-DIWCI6HC.js.map} +1 -1
  276. package/dashboard/dist/assets/{index-C-Xr2V3F.js → index-DZ8X_Gp4.js} +2 -2
  277. package/dashboard/dist/assets/{index-C-Xr2V3F.js.map → index-DZ8X_Gp4.js.map} +1 -1
  278. package/dashboard/dist/assets/index-Dh8MJl3L.css +1 -0
  279. package/dashboard/dist/assets/{knowledge-Coo6CKzo.js → knowledge-CqyLhUMg.js} +2 -2
  280. package/dashboard/dist/assets/{knowledge-Coo6CKzo.js.map → knowledge-CqyLhUMg.js.map} +1 -1
  281. package/dashboard/dist/assets/{mcp-Cz5eFnP_.js → mcp-Cvu6bFYH.js} +2 -2
  282. package/dashboard/dist/assets/{mcp-Cz5eFnP_.js.map → mcp-Cvu6bFYH.js.map} +1 -1
  283. package/dashboard/dist/assets/{mcp-query-BtnuO4LF.js → mcp-query-qC6A3e9l.js} +2 -2
  284. package/dashboard/dist/assets/{mcp-query-BtnuO4LF.js.map → mcp-query-qC6A3e9l.js.map} +1 -1
  285. package/dashboard/dist/assets/metadata-display-COo3mMCr.js +2 -0
  286. package/dashboard/dist/assets/metadata-display-COo3mMCr.js.map +1 -0
  287. package/dashboard/dist/assets/{personas-C2-LgpHQ.js → personas-BKN_lJuV.js} +2 -2
  288. package/dashboard/dist/assets/{personas-C2-LgpHQ.js.map → personas-BKN_lJuV.js.map} +1 -1
  289. package/dashboard/dist/assets/{pipelines-TuXQvUA-.js → pipelines-BldIfv85.js} +2 -2
  290. package/dashboard/dist/assets/{pipelines-TuXQvUA-.js.map → pipelines-BldIfv85.js.map} +1 -1
  291. package/dashboard/dist/assets/{tasks-OUzpu__z.js → tasks-B-Uay8uL.js} +2 -2
  292. package/dashboard/dist/assets/{tasks-OUzpu__z.js.map → tasks-B-Uay8uL.js.map} +1 -1
  293. package/dashboard/dist/assets/{topics-B8bdrBaW.js → topics-438EQogt.js} +2 -2
  294. package/dashboard/dist/assets/{topics-B8bdrBaW.js.map → topics-438EQogt.js.map} +1 -1
  295. package/dashboard/dist/assets/useContainerWidth-DSLp1gEm.js +2 -0
  296. package/dashboard/dist/assets/useContainerWidth-DSLp1gEm.js.map +1 -0
  297. package/dashboard/dist/assets/{useDebouncedValue-Cp5ZOtVE.js → useDebouncedValue-Cw8hYZ8y.js} +2 -2
  298. package/dashboard/dist/assets/{useDebouncedValue-Cp5ZOtVE.js.map → useDebouncedValue-Cw8hYZ8y.js.map} +1 -1
  299. package/dashboard/dist/assets/{useNamespace-DtQe3wZ5.js → useNamespace-D1218GQ8.js} +2 -2
  300. package/dashboard/dist/assets/{useNamespace-DtQe3wZ5.js.map → useNamespace-D1218GQ8.js.map} +1 -1
  301. package/dashboard/dist/assets/{useYamlActivityEvents-CS22c15X.js → useYamlActivityEvents-BAQf_y_U.js} +2 -2
  302. package/dashboard/dist/assets/{useYamlActivityEvents-CS22c15X.js.map → useYamlActivityEvents-BAQf_y_U.js.map} +1 -1
  303. package/dashboard/dist/assets/{vendor-icons-DeBdvyKJ.js → vendor-icons-B7OcUM6b.js} +2 -2
  304. package/dashboard/dist/assets/{vendor-icons-DeBdvyKJ.js.map → vendor-icons-B7OcUM6b.js.map} +1 -1
  305. package/dashboard/dist/assets/{yaml-workflows-HQIki3hI.js → yaml-workflows-CN01gEB0.js} +2 -2
  306. package/dashboard/dist/assets/{yaml-workflows-HQIki3hI.js.map → yaml-workflows-CN01gEB0.js.map} +1 -1
  307. package/dashboard/dist/index.html +3 -3
  308. package/docs/accumulator.md +113 -0
  309. package/docs/api/http/escalations.md +89 -0
  310. package/docs/api/http/roles.md +1 -0
  311. package/docs/api/http/workflows.md +28 -1
  312. package/docs/api/mcp/admin.md +40 -4
  313. package/docs/api/sdk/escalations.md +91 -0
  314. package/docs/api/sdk/roles.md +2 -0
  315. package/docs/architecture.md +1 -1
  316. package/docs/code-owned-configuration.md +3 -2
  317. package/docs/dashboard.md +11 -5
  318. package/docs/hitl/design.md +1 -1
  319. package/docs/hitl/escalation.md +37 -1
  320. package/docs/hitl/form.md +12 -7
  321. package/docs/hitl/invoke-form.md +10 -3
  322. package/docs/hitl/lookups.md +21 -0
  323. package/docs/hitl/pinned-views.md +4 -0
  324. package/docs/hitl/portal.md +97 -0
  325. package/docs/hitl/resolution.md +41 -0
  326. package/docs/hitl/x-lt-embed.md +1 -1
  327. package/docs/hitl/x-lt-invoke.md +95 -0
  328. package/docs/hitl/x-lt-list-schema.md +3 -1
  329. package/docs/hitl/x-lt-validation.md +50 -3
  330. package/docs/hitl/x-lt-widget.md +22 -0
  331. package/docs/hitl-guide.md +12 -2
  332. package/docs/scan-codes.md +15 -2
  333. package/docs/sdk.md +1 -1
  334. package/docs/workflows.md +2 -2
  335. package/package.json +4 -2
  336. package/dashboard/dist/assets/AgentsPage-D77JeViQ.js +0 -2
  337. package/dashboard/dist/assets/AvailableEscalationsPage-CqM_MOMy.js +0 -2
  338. package/dashboard/dist/assets/AvailableEscalationsPage-CqM_MOMy.js.map +0 -1
  339. package/dashboard/dist/assets/BulkAssignModal-BXiJnlqt.js +0 -2
  340. package/dashboard/dist/assets/CapabilitiesPage-D9TC2iKy.js +0 -2
  341. package/dashboard/dist/assets/DataTable-7C7riavf.js +0 -2
  342. package/dashboard/dist/assets/DataTable-7C7riavf.js.map +0 -1
  343. package/dashboard/dist/assets/EntityTimelinePanel-1lT3jkCM.js +0 -2
  344. package/dashboard/dist/assets/EscalationListView-uuZRMSLB.js +0 -2
  345. package/dashboard/dist/assets/EscalationListView-uuZRMSLB.js.map +0 -1
  346. package/dashboard/dist/assets/GraphInvokePage-DV7Y0fe2.js +0 -2
  347. package/dashboard/dist/assets/HomePage-G785SWcW.js +0 -2
  348. package/dashboard/dist/assets/ListToolbar-zPVYPg3W.js +0 -2
  349. package/dashboard/dist/assets/McpQueryPage-CNSNMagY.js +0 -2
  350. package/dashboard/dist/assets/McpRunsPage-B6rb5QBf.js +0 -2
  351. package/dashboard/dist/assets/OperationsPage-Dxk1fAMg.js +0 -3
  352. package/dashboard/dist/assets/OperationsPage-Dxk1fAMg.js.map +0 -1
  353. package/dashboard/dist/assets/OperatorDashboard-DBOscDnf.js +0 -2
  354. package/dashboard/dist/assets/ProcessesListPage-5NnysKFC.js +0 -2
  355. package/dashboard/dist/assets/ResolverForm-Dy0yirtP.js +0 -2
  356. package/dashboard/dist/assets/ResolverForm-Dy0yirtP.js.map +0 -1
  357. package/dashboard/dist/assets/RoleDetailPage-C_LIoe1j.js +0 -8
  358. package/dashboard/dist/assets/RoleDetailPage-C_LIoe1j.js.map +0 -1
  359. package/dashboard/dist/assets/RunAsSelector-BwZTJ4Yj.js +0 -2
  360. package/dashboard/dist/assets/ScanCodesPage-FiYIYB-m.js +0 -2
  361. package/dashboard/dist/assets/ScanStationPage-8CdOtbCD.js +0 -2
  362. package/dashboard/dist/assets/TasksListPage-BQNaSzCn.js +0 -2
  363. package/dashboard/dist/assets/ToolTestPanel-DvuLFWqQ.js +0 -2
  364. package/dashboard/dist/assets/TopicsPage-h-oyTeEJ.js +0 -2
  365. package/dashboard/dist/assets/WorkflowsDashboard-B0r2lQXk.js +0 -2
  366. package/dashboard/dist/assets/escalation-columns-DIigeTOK.js +0 -2
  367. package/dashboard/dist/assets/escalation-columns-DIigeTOK.js.map +0 -1
  368. package/dashboard/dist/assets/index-BMlQYOE1.js +0 -67
  369. package/dashboard/dist/assets/index-BMlQYOE1.js.map +0 -1
  370. package/dashboard/dist/assets/index-BNZknxFY.js +0 -2
  371. package/dashboard/dist/assets/index-Bpvfr4OW.css +0 -1
  372. package/dashboard/dist/assets/index-CegPUKpc.js +0 -3
  373. package/dashboard/dist/assets/index-CegPUKpc.js.map +0 -1
  374. package/dashboard/dist/assets/index-D7ESqn22.js +0 -2
  375. package/dashboard/dist/assets/index-DL83W7Gu.js +0 -2
  376. package/dashboard/dist/assets/index-DPLssnMW.js +0 -6
  377. package/dashboard/dist/assets/index-DPLssnMW.js.map +0 -1
  378. package/dashboard/dist/assets/index-DoETPlJP.js +0 -11
  379. package/dashboard/dist/assets/index-DoETPlJP.js.map +0 -1
  380. package/dashboard/dist/assets/index-DvxxrFBo.js +0 -2
  381. package/dashboard/dist/assets/metadata-display--TzK0REC.js +0 -2
  382. package/dashboard/dist/assets/metadata-display--TzK0REC.js.map +0 -1
  383. package/dashboard/dist/assets/resolver-payload-C1dXB3n6.js +0 -2
  384. package/dashboard/dist/assets/resolver-payload-C1dXB3n6.js.map +0 -1
  385. package/dashboard/dist/assets/seed-form-json-DvPsISxD.js +0 -2
  386. package/dashboard/dist/assets/seed-form-json-DvPsISxD.js.map +0 -1
  387. package/docs/compilation.md +0 -152
  388. package/docs/compiler.md +0 -311
  389. package/docs/contributing.md +0 -56
  390. package/docs/design-principles.md +0 -244
  391. package/docs/schema-exchange.md +0 -173
  392. package/docs/self-test.md +0 -106
  393. package/docs/story.md +0 -184
@@ -1,2 +0,0 @@
1
- import{a as i,j as e}from"./vendor-query-DvWWuNIB.js";import{P as ye}from"./PageHeaderWithStats-DutKJ-h2.js";import{F as we,b as ke}from"./FilterBar-xwN_b5fj.js";import{u as Ne}from"./useFilterParams-DBRw1Hcv.js";import{u as ve}from"./useNamespace-DtQe3wZ5.js";import{a as ee,u as Ce,b as $e,c as Se,d as _e}from"./controlplane-Dyyj2Irb.js";import{M as Te,C as W,k as Ee,J as Re}from"./index-BMlQYOE1.js";import{a8 as K,bM as U,j as Me,bN as Z,G as J,e as te,I as Pe,Y as Ae,ar as Le,R as We,a2 as Qe,bO as Fe,u as Oe,Z as Be,ao as ze}from"./vendor-icons-DeBdvyKJ.js";import{C as I}from"./CollapsibleSection-D10lGw_u.js";import{T as Ie}from"./TaskQueuePill-Bxir8WRl.js";import{D as Je}from"./DataTable-7C7riavf.js";import{R as De,a as Y}from"./RowActions-Bdd7z4eB.js";import{f as Ue}from"./vendor-react-_9U4mKFr.js";import"./EmptyState-DgC_6njU.js";const Ve=[{label:"15m",value:"15m"},{label:"30m",value:"30m"},{label:"1h",value:"1h"},{label:"1d",value:"1d"},{label:"7d",value:"7d"}],se={pong:"text-status-success",ping:"text-accent",throttle:"text-status-warning",job:"text-purple-400",work:"text-text-secondary",activate:"text-status-error",cron:"text-text-tertiary",user:"text-text-secondary"},He={pong:"roll call",ping:"ping",throttle:"throttle",job:"job",work:"work",activate:"activate",cron:"cron",user:"user"},qe=250;function M(t){return!!t.worker_topic}function P(t){return typeof t.throttle=="number"&&t.throttle!==0}function V(t){return t===void 0||t===0?"Normal":t===-1?"Paused":t>=864e5?`${(t/864e5).toFixed(0)}d`:t>=36e5?`${(t/36e5).toFixed(1)}h`:t>=6e4?`${(t/6e4).toFixed(1)}m`:t>=1e3?`${(t/1e3).toFixed(1)}s`:`${t}ms`}function Ge(t){if(!t)return null;const s=t.match(/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})\.(\d+)$/);if(s){const[,r,n,o,u,l,m,d]=s;return new Date(`${r}-${n}-${o}T${u}:${l}:${m}.${d}Z`)}const a=new Date(t);return isNaN(a.getTime())?null:a}function Ke(t){const s=Ge(t);if(!s)return"--";const a=Date.now()-s.getTime();if(a<0||isNaN(a))return"--";const r=Math.floor(a/1e3);if(r<60)return`${r}s`;const n=Math.floor(r/60);if(n<60)return`${n}m`;const o=Math.floor(n/60);return o<24?`${o}h ${n%60}m`:`${Math.floor(o/24)}d ${o%24}h`}function ne(t){return t.replace(/^hmsh:[^:]+:x:/,"")||"(engine)"}function F(t){const s=t.match(/^([^:]+)::(.+?)-[A-Za-z0-9_]{10,}$/);return s?s[2]:t.length>20?t.slice(0,20)+"...":t}function Ze(t){const s=t.match(/^([^:]+)::/);return(s==null?void 0:s[1])||""}const re=[{key:"pong",label:"Roll Call",description:"Node health check responses"},{key:"ping",label:"Ping",description:"Health check broadcasts"},{key:"throttle",label:"Throttle",description:"Throttle commands"},{key:"job",label:"Job",description:"Job lifecycle events"},{key:"work",label:"Work",description:"Worker dispatch events"},{key:"activate",label:"Activate",description:"Worker activation"},{key:"cron",label:"Cron",description:"Cron schedule triggers"},{key:"user",label:"User",description:"User-defined messages"}];function B(t){return`${t.engine_id}-${t.worker_topic||"engine"}`}function Ye(t){const s=new Map;for(const a of t){if(!a.worker_topic)continue;const r=a.worker_topic;s.has(r)||s.set(r,[]),s.get(r).push(a)}return s}function T(t){let s=0,a=0,r=0;for(const n of t)if(n.counts)for(const[o,u]of Object.entries(n.counts))s+=u,o==="200"?a+=u:o==="500"&&(r+=u);return{total:s,success:a,errors:r}}function Xe(t){let s=0;for(const a of t)typeof a.stream_depth=="number"&&(s+=a.stream_depth);return s}function et(t){if(t.length===0)return"healthy";if(t.every(r=>r.throttle===-1))return"paused";const{errors:a}=T(t);return a>0||t.some(P)?"degraded":"healthy"}function tt({activeAppId:t,allProfiles:s,profiles:a}){const r=ee(),[n,o]=i.useState(new Set),[u,l]=i.useState(!1),[m,d]=i.useState([]);i.useEffect(()=>{o(new Set)},[t]);const k=i.useCallback(h=>{o(C=>{const f=new Set(C),$=B(h);return f.has($)?f.delete($):f.add($),f})},[]),b=i.useCallback(()=>{n.size===a.length?o(new Set):o(new Set(a.map(B)))},[a,n.size]),j=i.useMemo(()=>{const h=a.filter(N=>n.has(B(N)));if(h.length===0)return[];if(h.length===s.length)return[{label:"Entire Mesh"}];const C=h.filter(N=>!M(N)),f=h.filter(M),$=[];for(const N of C)$.push({label:`Engine ${N.engine_id}`,guid:N.engine_id,scope:"engines"});const A=new Map;for(const N of f){const R=N.worker_topic;A.has(R)||A.set(R,[]),A.get(R).push(N)}for(const[N,R]of A){const O=s.filter(L=>L.worker_topic===N);if(R.length===O.length)$.push({label:N,topic:N});else for(const L of R)$.push({label:`${N} ${L.engine_id}`,guid:L.engine_id})}return $},[a,s,n]);return{selectedIds:n,setSelectedIds:o,toggleCheckbox:k,toggleAll:b,throttleModalOpen:u,throttleTargets:m,selectedThrottleTargets:j,throttleMutation:r,handleBulkThrottle:h=>{const C=m.length>0?m:j;for(const f of C)r.mutate({appId:t,throttle:h,...f.topic?{topic:f.topic}:{},...f.guid?{guid:f.guid}:{},...f.scope?{scope:f.scope}:{}});l(!1),d([])},handleRowClick:(h,C)=>{const f=M(h)?`${h.worker_topic} ${h.engine_id}`:`Engine ${h.engine_id}`;d([{label:f,guid:h.engine_id,scope:C||(M(h)?"workers":"engines")}]),l(!0)},handleBulkThrottleOpen:()=>{d(j),l(!0)},handleResumeThrottle:(h,C)=>{const f=C||(M(h)?"workers":"engines");r.mutate({appId:t,throttle:0,guid:h.engine_id,scope:f})},handleResumeQueue:h=>{r.mutate({appId:t,throttle:0,topic:h})},handleQueueThrottle:h=>{d([{label:h,topic:h}]),l(!0)},closeThrottleModal:()=>{l(!1),d([])}}}const st=[{label:"Resume",ms:0},{label:"0.5s",ms:500},{label:"1s",ms:1e3},{label:"5s",ms:5e3},{label:"30s",ms:3e4},{label:"Pause",ms:-1}];function nt({target:t}){const s=t.label==="Entire Mesh",a=t.label==="All Engines"||t.label.startsWith("Engine "),r=s?"bg-status-error/10 text-status-error":a?"bg-status-active/10 text-status-active":"bg-accent/[0.06] text-text-secondary",n=t.scope==="engines"?"engine only":t.scope==="workers"?"worker only":t.guid?"guid":t.topic?"topic":"mesh";return e.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-2xs font-medium rounded-lg ${r}`,children:[t.label,e.jsx("span",{className:"text-2xs opacity-50",children:n})]})}function rt({open:t,onClose:s,targets:a,onApply:r,isPending:n}){const[o,u]=i.useState("");return e.jsx(Te,{open:t,onClose:s,title:"Adjust Throttle",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-2",children:"Targets"}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:a.map((l,m)=>e.jsx(nt,{target:l},l.guid||l.topic||m))})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-2",children:"Presets"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:st.map(l=>e.jsx("button",{onClick:()=>r(l.ms),disabled:n,className:`px-3 py-1.5 text-xs rounded transition-colors ${l.ms===-1?"bg-status-error/10 text-status-error hover:bg-status-error/20":l.ms===0?"bg-status-success/10 text-status-success hover:bg-status-success/20":"bg-surface-sunken text-text-secondary hover:bg-surface-hover"} disabled:opacity-50`,children:l.label},l.label))})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-2",children:"Custom delay (seconds)"}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("input",{type:"number",step:"0.1",min:"0",value:o,onChange:l=>u(l.target.value),placeholder:"e.g. 2.5",className:"input text-xs py-1.5 px-3 w-28"}),e.jsx("button",{onClick:()=>{const l=parseFloat(o);isNaN(l)||l<0||r(Math.round(l*1e3))},disabled:n,className:"btn-primary text-xs py-1.5 px-4 disabled:opacity-50",children:"Apply"})]})]})]})})}function at(){const{data:t}=Ce(),s=ee(),[a,r]=i.useState(null),[n,o]=i.useState(!1),u=(t==null?void 0:t.apps)??[],l=i.useCallback(async(d,k="all")=>{if(u.length===0)return;o(!0);const b=await Promise.allSettled(u.map(v=>s.mutateAsync({appId:v.appId,throttle:d,...k!=="all"?{scope:k}:{}}))),j=b.filter(v=>v.status==="rejected").length;j>0&&console.error(`Emergency throttle: ${j}/${b.length} apps failed`),o(!1),r(null)},[u,s]),m=d=>d==="engines"?"engines":d==="workers"?"workers":"everything";return a?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("span",{className:"text-xs text-status-error",children:["Pause ",m(a.scope),"?"]}),e.jsx("button",{onClick:()=>l(a.ms,a.scope),disabled:n,className:"px-2.5 py-1 text-xs rounded-md bg-status-error text-text-inverse hover:bg-status-error/90 transition-colors disabled:opacity-50",children:n?e.jsx(K,{className:"w-3.5 h-3.5 animate-spin"}):"Confirm"}),e.jsx("button",{onClick:()=>r(null),disabled:n,className:"px-2.5 py-1 text-xs text-text-tertiary hover:text-text-primary transition-colors disabled:opacity-50",children:"Cancel"})]}):e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>r({ms:-1,scope:"all"}),disabled:n,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md text-status-error/80 hover:text-status-error hover:bg-status-error/10 transition-colors disabled:opacity-50",title:"Pause all engines and workers",children:[e.jsx(U,{className:"w-3.5 h-3.5"}),"Pause All"]}),e.jsxs("button",{onClick:()=>l(0),disabled:n,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md text-status-success/80 hover:text-status-success hover:bg-status-success/10 transition-colors disabled:opacity-50",title:"Resume all engines and workers",children:[n?e.jsx(K,{className:"w-3.5 h-3.5 animate-spin"}):e.jsx(Me,{className:"w-3.5 h-3.5"}),"Resume All"]})]})}function ot({byStream:t,onNodeFilter:s}){const[a,r]=i.useState(!1);if(i.useEffect(()=>{r(!1);const d=requestAnimationFrame(()=>r(!0));return()=>cancelAnimationFrame(d)},[t]),t.length===0)return e.jsx("p",{className:"text-xs text-text-tertiary py-4 text-center",children:"No activity in this period"});const n=t.filter(d=>d.stream_type==="engine"),o=t.filter(d=>d.stream_type==="worker"),u=Math.max(...t.map(d=>d.count)),l=d=>{const k=u>0?d.count/u*100:0,b=d.stream_type==="engine",j=b?"(all engines)":ne(d.stream_name),v=b?"bg-status-active/70":"bg-accent/60",y=b?"text-status-active":"text-text-tertiary";return e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:`text-2xs font-mono ${y} w-36 truncate text-right shrink-0`,title:d.stream_name,children:j}),e.jsx("div",{className:"flex-1 h-4 bg-surface-sunken rounded overflow-hidden",children:e.jsx("div",{className:`h-full ${v} rounded transition-all duration-500 ease-out`,style:{width:a?`${k}%`:"0%"}})}),e.jsx("span",{className:"text-2xs font-mono tabular-nums text-text-secondary w-12 text-right shrink-0",children:d.count.toLocaleString()})]},`${d.stream_type}-${d.stream_name}`)},m="text-2xs uppercase tracking-widest font-semibold mb-1 cursor-pointer hover:underline";return e.jsxs("div",{className:"space-y-1.5",children:[n.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:`${m} text-status-active/70 hover:text-status-active`,onClick:()=>s==null?void 0:s("engines"),children:"Engine Stream"}),n.map(l),o.length>0&&e.jsx("div",{className:"h-2"})]}),o.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("p",{className:`${m} text-accent/70 hover:text-accent`,onClick:()=>s==null?void 0:s("workers"),children:"Worker Streams"}),o.map(l)]})]})}function lt({queue:t,workers:s,expanded:a,onToggle:r,onWorkerClick:n,onResumeThrottle:o,onQueueThrottle:u,onResumeQueue:l,byStream:m,activeDuration:d}){const k=i.useMemo(()=>{const c=m.find(g=>g.stream_type==="worker"&&ne(g.stream_name)===t);return(c==null?void 0:c.count)??0},[m,t]),b=i.useMemo(()=>et(s),[s]),j=i.useMemo(()=>Xe(s),[s]),{errors:v}=i.useMemo(()=>T(s),[s]),y=b==="paused"?"bg-status-error":b==="degraded"?"bg-status-warning":"bg-status-success",x=i.useMemo(()=>[...s].sort((c,g)=>T([g]).total-T([c]).total),[s]),w=i.useMemo(()=>[{key:"engine_id",label:"Router",render:c=>{var h;const g=c.engine_id.replace(/^[^:]+::/,"").replace(/-[A-Za-z0-9_]{10,}$/,"")||c.engine_id,E=((h=c.engine_id.match(/^([^:]+)::/))==null?void 0:h[1])||"";return e.jsxs("div",{className:"flex items-center gap-2",title:c.engine_id,children:[e.jsx("span",{className:"text-xs text-text-secondary truncate max-w-[180px]",children:g}),E&&e.jsx("span",{className:"text-2xs text-text-tertiary/50",children:E})]})}},{key:"processed",label:"Processed",render:c=>{const g=T([c]);return e.jsx("span",{className:"text-xs font-mono tabular-nums text-text-tertiary",children:g.total>0?g.total.toLocaleString():"--"})},className:"w-24"},{key:"throttle",label:"Throttle",render:c=>{const g=c.throttle;return g===-1?e.jsx("span",{className:"text-xs text-status-error font-medium",children:"Paused"}):g&&g>0?e.jsx("span",{className:"text-xs text-status-warning font-medium",children:V(g)}):e.jsx("span",{className:"text-xs text-text-tertiary",children:"0"})},className:"w-24"},{key:"actions",label:"",render:c=>e.jsxs(De,{children:[P(c)&&e.jsx(Y,{icon:Z,title:"Resume (remove throttle)",onClick:()=>o(c),colorClass:"text-text-tertiary hover:text-status-success"}),e.jsx(Y,{icon:J,title:"Adjust throttle",onClick:()=>n(c)})]}),className:"w-16"}],[n,o]);return e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>r(t),className:"group/row relative flex items-center gap-3 w-full py-2 hover:bg-surface-hover transition-colors text-left rounded",children:[e.jsx("span",{className:`w-2.5 h-2.5 rounded-full dot-ring shrink-0 ${y}`,title:b}),e.jsx(te,{className:`w-3.5 h-3.5 text-text-tertiary/50 transition-transform duration-200 ${a?"rotate-90":""}`,strokeWidth:2}),e.jsx(Ie,{queue:t,size:"sm"}),e.jsx("span",{className:"flex-1"}),v>0&&e.jsxs("span",{className:"text-2xs text-status-error font-medium mr-2",children:[v," errors"]}),j>0&&e.jsxs("span",{className:"flex items-center gap-1 text-2xs text-status-warning w-20",children:[e.jsx(Pe,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"font-mono tabular-nums",children:j.toLocaleString()})]}),e.jsxs("span",{className:`flex items-center gap-1 text-xs w-24 ${s.some(P)?"text-status-warning":"text-text-tertiary"}`,children:[e.jsx(Ae,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),e.jsx("span",{className:"font-mono tabular-nums",children:s.length}),e.jsx("span",{children:"workers"})]}),e.jsx("span",{className:"flex items-center gap-1 text-xs font-mono text-text-tertiary w-28 justify-end mr-16",children:k>0?e.jsxs(e.Fragment,{children:[e.jsx(Le,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),k.toLocaleString()," in ",d]}):e.jsx("span",{className:"text-text-tertiary/40",children:"—"})}),e.jsxs("span",{className:"absolute right-3 top-1/2 -translate-y-1/2 opacity-0 group-hover/row:opacity-100 transition-opacity flex items-center gap-2",children:[s.some(P)&&e.jsx(Z,{className:"w-4 h-4 text-text-tertiary hover:text-status-success",strokeWidth:1.5,onClick:c=>{c.stopPropagation(),l(t)}}),e.jsx(J,{className:"w-4 h-4 text-text-tertiary hover:text-accent",strokeWidth:1.5,onClick:c=>{c.stopPropagation(),u(t)}})]})]}),e.jsx(W,{open:a,children:e.jsx("div",{className:"ml-6",children:e.jsx(Je,{columns:w,data:x,keyFn:B,onRowClick:n,emptyMessage:"No workers",inline:!0})})})]})}let it=0;function ct(t){const s=t.data||{},a=s.topic?String(s.topic):"",r=s.guid?String(s.guid).slice(0,8):"";switch(t.type){case"pong":return a?`Worker ${r}... on "${a}" responded`:`Engine ${r}... responded`;case"ping":return"Roll call broadcast";case"throttle":{const n=s.throttle,o=a?`queue "${a}"`:r?`node ${r}...`:"all nodes";return`${V(n)} applied to ${o}`}case"job":return`Job ${r?r+"...":""} ${s.status||"updated"}`;case"work":return`Dispatched to "${a||"worker"}" ${r?"("+r+"...)":""}`;case"activate":return`Worker "${a||"unknown"}" activated`;case"cron":return`Cron triggered ${a?'"'+a+'"':""}`;default:return a||r||t.type}}function ut(t){const s=[];let a=0;for(;a<t.length;){const r=t[a];if(r.type==="pong"){let n=a+1;for(;n<t.length&&t[n].type==="pong";)n++;const o=t.slice(a,n);if(o.length>=3)s.push({kind:"group",type:"pong",count:o.length,firstTimestamp:o[o.length-1].timestamp,lastTimestamp:o[0].timestamp,events:o});else for(const u of o)s.push({kind:"single",event:u});a=n}else s.push({kind:"single",event:r}),a++}return s}function ae({event:t}){const[s,a]=i.useState(!1);return e.jsxs("div",{className:"border-b border-surface-border/50 last:border-b-0",children:[e.jsxs("button",{onClick:()=>a(!s),className:"flex items-center gap-2 py-1.5 w-full text-left hover:bg-surface-hover/50 transition-colors",children:[e.jsx("span",{className:"text-2xs font-mono text-text-tertiary whitespace-nowrap tabular-nums shrink-0",children:new Date(t.timestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),e.jsx("span",{className:`text-2xs font-medium px-1 py-0.5 rounded ${se[t.type]||"text-text-tertiary"} bg-surface-sunken whitespace-nowrap shrink-0`,children:He[t.type]||t.type}),e.jsx("span",{className:"text-2xs text-text-secondary flex-1 min-w-0 truncate",children:ct(t)}),e.jsx("svg",{className:`w-2.5 h-2.5 text-text-tertiary shrink-0 transition-transform duration-150 ${s?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}),e.jsx(W,{open:s,children:e.jsx("div",{className:"pb-2",children:e.jsx(Re,{data:t.data})})})]})}function dt({group:t}){const[s,a]=i.useState(!1),r=t.events.filter(o=>{var u;return!((u=o.data)!=null&&u.topic)}).length,n=t.count-r;return e.jsxs("div",{className:"border-b border-surface-border/50 last:border-b-0",children:[e.jsxs("button",{onClick:()=>a(!s),className:"flex items-center gap-2 py-1.5 w-full text-left hover:bg-surface-hover/50 transition-colors",children:[e.jsx("span",{className:"text-2xs font-mono text-text-tertiary whitespace-nowrap tabular-nums shrink-0",children:new Date(t.lastTimestamp).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit"})}),e.jsx("span",{className:`text-2xs font-medium px-1 py-0.5 rounded ${se.pong} bg-surface-sunken whitespace-nowrap shrink-0`,children:"roll call"}),e.jsxs("span",{className:"text-2xs text-text-secondary flex-1 min-w-0 truncate",children:[t.count," nodes responded",r>0&&n>0?` (${r} engine${r!==1?"s":""}, ${n} worker${n!==1?"s":""})`:r>0?` (${r} engine${r!==1?"s":""})`:` (${n} worker${n!==1?"s":""})`]}),e.jsx("svg",{className:`w-2.5 h-2.5 text-text-tertiary shrink-0 transition-transform duration-150 ${s?"rotate-180":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})]}),e.jsx(W,{open:s,children:e.jsx("div",{className:"ml-4",children:t.events.map(o=>e.jsx(ae,{event:o},o.id))})})]})}function xt({channels:t,onToggle:s,customFilter:a,onCustomFilterChange:r}){return e.jsxs("div",{className:"space-y-3 pb-3 border-b border-surface-border mb-3",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:"Channels"}),e.jsx("p",{className:"text-2xs text-text-tertiary",children:"Unchecked channels are dropped before buffering"})]}),e.jsx("div",{className:"grid grid-cols-2 gap-1",children:re.map(n=>e.jsxs("label",{className:"flex items-center gap-2 cursor-pointer py-0.5",children:[e.jsx("input",{type:"checkbox",checked:t.has(n.key),onChange:()=>s(n.key),className:"w-3 h-3 rounded border-border accent-accent"}),e.jsx("span",{className:"text-2xs text-text-secondary",title:n.description,children:n.label})]},n.key))}),e.jsxs("div",{children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Text Filter"}),e.jsx("input",{type:"text",value:a,onChange:n=>r(n.target.value),placeholder:"pong",className:"input text-2xs font-mono py-1 px-2 w-full"}),e.jsxs("p",{className:"text-2xs text-text-tertiary mt-1",children:["Filter by event type, e.g. ",e.jsx("span",{className:"font-mono",children:"pong"}),", ",e.jsx("span",{className:"font-mono",children:"throttle"}),", or any text in the event data."]})]})]})}function ht({bridgeActive:t}){const[s,a]=i.useState(!1),[r,n]=i.useState(!1),[o,u]=i.useState([]),[l,m]=i.useState(()=>new Set(re.map(x=>x.key))),[d,k]=i.useState(""),b=i.useRef(l);i.useEffect(()=>{b.current=l},[l]);const j=i.useRef(d);i.useEffect(()=>{j.current=d},[d]);const v=x=>{m(w=>{const c=new Set(w);return c.has(x)?c.delete(x):c.add(x),c})};Ee("lt.events.mesh.>",i.useCallback(x=>{var g;const w=((g=x.type)==null?void 0:g.replace("mesh.",""))||"unknown";if(!b.current.has(w))return;const c=j.current;c&&!`${w} ${JSON.stringify(x.data||x)}`.toLowerCase().includes(c.toLowerCase())||u(E=>[{id:++it,type:w,timestamp:x.timestamp||new Date().toISOString(),data:x.data||x},...E].slice(0,qe))},[]));const y=()=>u([]);return e.jsxs("div",{className:"border-l border-surface-border pl-6 pt-4 min-h-[300px] sticky top-14 self-start max-h-[calc(100vh-8rem)] flex flex-col",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:"Event Stream"}),e.jsx(We,{className:`w-3 h-3 ${t?"text-status-success animate-pulse":"text-text-tertiary"}`}),e.jsx("span",{className:"text-2xs text-text-tertiary",children:t?"Live":"..."}),e.jsxs("span",{className:"ml-auto flex items-center gap-1",children:[e.jsx("button",{onClick:()=>{a(x=>!x),n(!1)},className:`p-1 rounded transition-colors ${s?"text-accent bg-accent/10":"text-text-tertiary hover:text-text-primary"}`,title:"Configure channels",children:e.jsx(Qe,{className:"w-3.5 h-3.5"})}),e.jsx("button",{onClick:()=>{n(x=>!x),a(!1)},className:`p-1 rounded transition-colors ${r?"text-accent bg-accent/10":"text-text-tertiary hover:text-text-primary"}`,title:"View raw JSON",children:e.jsx(Fe,{className:"w-3.5 h-3.5"})}),o.length>0&&e.jsx("button",{onClick:y,className:"p-1 rounded text-text-tertiary hover:text-text-primary transition-colors",title:"Clear events",children:e.jsx(Oe,{className:"w-3.5 h-3.5"})})]})]}),e.jsx(W,{open:s,children:e.jsx(xt,{channels:l,onToggle:v,customFilter:d,onCustomFilterChange:k})}),e.jsx(W,{open:r,children:e.jsx("div",{className:"pb-3 border-b border-surface-border mb-3",children:e.jsx("pre",{className:"text-2xs font-mono text-text-tertiary bg-surface-sunken rounded-lg p-3 max-h-[50vh] overflow-auto whitespace-pre-wrap",children:JSON.stringify(o.slice(0,50),null,2)})})}),o.length>0&&e.jsxs("p",{className:"text-2xs text-text-tertiary mb-2",children:[o.length," events"]}),e.jsx("div",{className:"flex-1 overflow-y-auto",children:o.length===0?e.jsx("p",{className:"text-xs text-text-tertiary py-6 text-center",children:t?"Waiting for events...":"Subscribing..."}):ut(o).map((x,w)=>x.kind==="group"?e.jsx(dt,{group:x},`grp-${w}`):e.jsx(ae,{event:x.event},x.event.id))})]})}function mt(t){const s=[],a=[],r=[];for(const n of t)P(n)?r.push(n):n.is_scout||T([n]).total>0?s.push(n):a.push(n);return s.sort((n,o)=>n.is_scout&&!o.is_scout?-1:!n.is_scout&&o.is_scout?1:T([o]).total-T([n]).total),a.sort((n,o)=>F(n.engine_id).localeCompare(F(o.engine_id))),r.sort((n,o)=>F(n.engine_id).localeCompare(F(o.engine_id))),{active:s,idle:a,paused:r}}function D({engine:t,isFirst:s,onThrottle:a}){const r=F(t.engine_id),n=Ze(t.engine_id),o=T([t]),u=t.stream_depth??0,l=P(t);return e.jsxs("div",{className:"group/row flex items-center gap-3 py-2 hover:bg-surface-hover/50 transition-colors rounded px-1",children:[l?e.jsx(U,{className:"w-3.5 h-3.5 text-status-warning shrink-0",strokeWidth:1.5}):e.jsx(Be,{className:`w-3.5 h-3.5 shrink-0 ${o.total>0||t.is_scout?"text-status-success":"text-text-tertiary/30"}`,strokeWidth:1.5}),e.jsx("span",{className:`${s?"text-base font-medium":"text-xs"} text-text-primary truncate max-w-[180px]`,title:t.engine_id,children:r}),n&&e.jsx("span",{className:"text-2xs text-text-tertiary/50",children:n}),t.is_scout&&e.jsx("span",{className:"text-2xs text-status-warning uppercase tracking-widest",children:"scout"}),e.jsx("span",{className:"flex-1"}),l&&e.jsx("span",{className:"text-2xs text-status-warning",children:t.throttle===-1?"Paused":V(t.throttle)}),o.total>0&&e.jsx("span",{className:"text-2xs font-mono tabular-nums text-text-tertiary w-16 text-right",children:o.total.toLocaleString()}),u>0&&e.jsxs("span",{className:`text-2xs font-mono tabular-nums w-14 text-right ${u>100?"text-status-warning":"text-text-tertiary/50"}`,children:[u.toLocaleString()," q"]}),e.jsx("span",{className:"text-2xs font-mono text-text-tertiary/40 w-12 text-right",children:Ke(t.inited)}),e.jsx("span",{className:"opacity-0 group-hover/row:opacity-100 transition-opacity",children:e.jsx("button",{onClick:m=>{m.stopPropagation(),a(t)},className:"text-text-tertiary hover:text-accent transition-colors",title:l?"Resume / adjust throttle":"Pause / throttle",children:e.jsx(J,{className:"w-3.5 h-3.5",strokeWidth:1.5})})})]})}function X({label:t,engines:s,onThrottle:a}){const[r,n]=i.useState(!1);return s.length===0?null:e.jsxs("div",{className:"mt-1",children:[e.jsxs("button",{onClick:()=>n(!r),className:"flex items-center gap-1.5 text-2xs text-text-tertiary hover:text-text-secondary transition-colors py-1",children:[e.jsx(te,{className:`w-3 h-3 transition-transform duration-200 ${r?"rotate-90":""}`,strokeWidth:2}),s.length," ",t]}),e.jsx(W,{open:r,children:e.jsx("div",{className:"ml-1",children:s.map(o=>e.jsx(D,{engine:o,onThrottle:a},o.engine_id))})})]})}function pt({engines:t,onThrottle:s,isLoading:a}){const{active:r,idle:n,paused:o}=i.useMemo(()=>mt(t),[t]);return a?e.jsx("p",{className:"text-xs text-text-tertiary",children:"Discovering engines..."}):t.length===0?e.jsx("p",{className:"text-xs text-text-tertiary",children:"No engines found."}):r.length===0&&n.length===0?e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-3 py-2",children:[e.jsx(U,{className:"w-4 h-4 text-status-error shrink-0",strokeWidth:1.5}),e.jsxs("span",{className:"text-base text-status-error font-medium",children:["All ",t.length," engines paused"]})]}),e.jsx("p",{className:"text-2xs text-text-tertiary ml-7",children:"Messages are accumulating. Resume at least one engine to restore processing."}),e.jsx("div",{className:"ml-1 mt-2",children:o.map(u=>e.jsx(D,{engine:u,onThrottle:s},u.engine_id))})]}):e.jsxs("div",{children:[r.map((u,l)=>e.jsx(D,{engine:u,isFirst:l===0,onThrottle:s},u.engine_id)),e.jsx(X,{label:"idle",engines:n,onThrottle:s}),e.jsx(X,{label:"paused",engines:o,onThrottle:s})]})}function gt({collapsed:t,toggleSection:s,activeDuration:a,streamStats:r,isLoading:n,queueMap:o,expandedQueues:u,toggleQueue:l,allQueuesExpanded:m,toggleAllQueues:d,handleRowClick:k,handleResumeThrottle:b,handleQueueThrottle:j,handleResumeQueue:v,engines:y,bridgeActive:x}){return e.jsxs("div",{className:"grid grid-cols-1 @split:grid-cols-[1fr_340px] gap-6",children:[e.jsxs("div",{className:"flex flex-col gap-12 mt-10",children:[e.jsx(I,{title:`Message Volume (${a})`,sectionKey:"volume",isCollapsed:!!t.volume,onToggle:s,contentClassName:"mt-4 ml-7",children:e.jsx(ot,{byStream:(r==null?void 0:r.byStream)??[],onNodeFilter:()=>{},onQueueFilter:()=>{}})}),e.jsx(I,{title:`Engine Routers (${y.length})`,sectionKey:"engines",isCollapsed:!!t.engines,onToggle:s,contentClassName:"mt-4 ml-7",children:e.jsx(pt,{engines:y,onThrottle:k,isLoading:n})}),e.jsx(I,{title:"Worker Routers",sectionKey:"queues",isCollapsed:!!t.queues,onToggle:s,contentClassName:"mt-4 ml-7 flex flex-col gap-0",children:n?e.jsx("p",{className:"text-xs text-text-tertiary",children:"Discovering mesh nodes..."}):o.size===0?e.jsx("p",{className:"text-xs text-text-tertiary",children:'No worker routers found. Click "Roll Call" to discover.'}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex justify-end mb-2",children:e.jsx("button",{onClick:d,className:"text-2xs text-accent hover:underline",children:m?"Collapse all":"Expand all"})}),[...o.entries()].sort(([w],[c])=>w.localeCompare(c)).map(([w,c])=>e.jsx(lt,{queue:w,workers:c,expanded:u.has(w),onToggle:l,onWorkerClick:k,onResumeThrottle:b,onQueueThrottle:j,onResumeQueue:v,byStream:(r==null?void 0:r.byStream)??[],activeDuration:a},w))]})})]}),e.jsx(ht,{bridgeActive:x})]})}function Rt(){const{namespace:t,available:s}=ve(),{filters:a,setFilter:r}=Ne({filters:{app_id:"",duration:"1h"}}),n=a.app_id||t,o=a.duration||"1h",u=$e(),l=6e4,{data:m,isLoading:d,error:k,refetch:b,isFetching:j}=Se(n,l),{data:v}=_e(n,o,void 0,l),y=i.useMemo(()=>[...(m==null?void 0:m.profiles)??[]].sort((S,_)=>{const z=S.worker_topic||S.stream||"",Q=_.worker_topic||_.stream||"";return!S.worker_topic&&_.worker_topic?-1:S.worker_topic&&!_.worker_topic?1:z.localeCompare(Q)}),[m==null?void 0:m.profiles]),x=i.useMemo(()=>y.filter(p=>!M(p)),[y]),w=i.useMemo(()=>y.filter(M),[y]),c=i.useMemo(()=>Ye(y),[y]),g=y.filter(P).length,E=i.useMemo(()=>{const p=new Set(s);return n&&p.add(n),[...p].sort().map(S=>({value:S,label:S}))},[s,n]),[h]=Ue(),C=h.get("queue"),[f,$]=i.useState(()=>C?new Set([C]):new Set),A=i.useCallback(p=>{$(S=>{const _=S.has(p),z=_?new Set:new Set([p]),Q=new URLSearchParams(window.location.search);_?Q.delete("queue"):Q.set("queue",p);const G=Q.toString();return window.history.pushState(null,"",`${window.location.pathname}${G?`?${G}`:""}`),z})},[]),N=c.size>0&&[...c.keys()].every(p=>f.has(p)),R=i.useCallback(()=>{$(N?new Set:new Set(c.keys()))},[N,c]),O="lt:controlplane:collapsed",[L,oe]=i.useState(()=>{try{const p=JSON.parse(localStorage.getItem(O)||"{}");return C&&(p.queues=!1),p}catch{return{}}}),le=i.useCallback(p=>{oe(S=>{const _={...S,[p]:!S[p]};return localStorage.setItem(O,JSON.stringify(_)),_})},[]),{throttleModalOpen:ie,throttleTargets:H,selectedThrottleTargets:ce,throttleMutation:ue,handleBulkThrottle:de,handleRowClick:xe,handleResumeThrottle:he,handleResumeQueue:me,handleQueueThrottle:pe,closeThrottleModal:ge}=tt({activeAppId:n,allProfiles:y,profiles:y}),fe=i.useMemo(()=>{const p=[{label:"Engines",value:x.length,dotClass:"bg-status-active"},{label:"Workers",value:w.length,dotClass:"bg-text-secondary"},{label:"Topics",value:c.size}];return g>0&&p.push({label:"Throttled",value:g,dotClass:"bg-status-warning"}),p},[x.length,w.length,c.size,g]),[q,be]=i.useState(!1),je=i.useCallback(()=>{u.mutate({appId:n},{onSuccess:()=>be(!0)})},[n,u]);return i.useEffect(()=>{!q&&n&&je()},[n]),e.jsxs("div",{children:[e.jsx(ye,{title:"Routers",docsHash:"#docs:dashboard.md:task-queues",stats:fe,actions:e.jsx(at,{})}),e.jsxs(we,{actions:e.jsx("div",{className:"flex items-center gap-1",children:Ve.map(p=>e.jsx("button",{onClick:()=>r("duration",p.value),className:`px-3 py-1 text-xs rounded-full transition-colors ${o===p.value?"bg-accent text-text-inverse":"text-text-tertiary hover:text-text-primary hover:bg-surface-hover"}`,children:p.label},p.value))}),children:[e.jsx(ke,{label:"Application",value:a.app_id,onChange:p=>r("app_id",p),options:E}),e.jsxs("button",{onClick:()=>b(),disabled:j,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs text-text-tertiary hover:text-text-primary transition-colors disabled:opacity-50",children:[e.jsx(ze,{className:`w-3.5 h-3.5 ${j?"animate-spin":""}`}),"Roll Call"]})]}),k&&e.jsx("div",{className:"mb-6 px-4 py-3 rounded bg-status-error/10 border border-status-error/20",children:e.jsx("p",{className:"text-xs text-status-error font-medium",children:k.message==="Session expired"?"Session expired — please log in again.":`Failed to load mesh data: ${k.message}`})}),e.jsx(gt,{collapsed:L,toggleSection:le,activeDuration:o,streamStats:v,isLoading:d,queueMap:c,expandedQueues:f,toggleQueue:A,allQueuesExpanded:N,toggleAllQueues:R,handleRowClick:xe,handleResumeThrottle:he,handleQueueThrottle:pe,handleResumeQueue:me,engines:x,bridgeActive:q}),e.jsx(rt,{open:ie,onClose:ge,targets:H.length>0?H:ce,onApply:de,isPending:ue.isPending})]})}export{Rt as ControlPlanePage};
2
- //# sourceMappingURL=index-BNZknxFY.js.map
@@ -1 +0,0 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--lt-radius-field: .375rem;--lt-radius-section: .625rem;--lt-color-scheme: light;--lt-surface: 255 255 255;--lt-surface-raised: 255 255 255;--lt-surface-sunken: 255 255 255;--lt-text-inverse: 255 255 255;--lt-heading: 51 51 51;--lt-text-primary: 23 23 23;--lt-text-secondary: 55 55 55;--lt-text-tertiary: 88 88 88;--lt-text-quaternary: 122 122 122;--lt-status-active: 37 99 235;--lt-status-pending: 180 83 9;--lt-status-draft: 194 65 12;--lt-status-success: 22 101 52;--lt-status-warning: 180 83 9;--lt-status-error: 220 38 38;--lt-status-pending-graphic: 245 158 11;--lt-status-draft-graphic: 249 115 22;--lt-status-success-graphic: 22 163 74;--lt-status-queued: 3 105 161;--lt-status-claimed: 194 65 12;--lt-status-queued-graphic: 14 165 233;--lt-status-claimed-graphic: 249 115 22;--lt-cat-1: 88 128 176;--lt-cat-2: 224 146 78;--lt-cat-3: 104 168 104;--lt-cat-4: 204 100 100;--lt-cat-5: 150 126 194;--lt-cat-6: 82 170 168;--lt-cat-7: 182 154 74;--lt-cat-8: 156 120 96;--lt-cat-9: 202 118 162;--lt-cat-10: 148 158 80;--lt-field-bg: 230 235 242;--lt-field-border: 203 213 225;--lt-select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");--lt-type-2xs: .6875rem;--lt-type-xs: .75rem;--lt-type-sm: .875rem;--lt-type-base: 1rem;--lt-type-lg: 1.125rem;--lt-type-xl: 1.375rem;--lt-type-2xl: 1.75rem;--lt-space-page-x: clamp(1.25rem, 3vw, 2.5rem);--lt-space-page-y: 2rem;--lt-space-field-y: 1.25rem;--lt-space-col-gap: clamp(1.5rem, 3vw, 3.5rem);--lt-measure-form: 56rem}:root,[data-theme=blue]{--lt-accent: 37 99 235;--lt-accent-hover: 29 78 216;--lt-accent-muted: 147 197 253;--lt-accent-faint: 219 234 254;--lt-surface: 251 252 253;--lt-surface-hover: 232 239 247;--lt-field-bg: 248 250 253;--lt-field-focus: 236 243 254;--lt-field-border: 160 197 245;--lt-surface-border: 186 214 250}[data-theme=blue]{--lt-logo: 24 116 240}[data-theme=violet]{--lt-accent: 123 59 224;--lt-accent-hover: 98 41 190;--lt-accent-muted: 187 156 239;--lt-accent-faint: 229 217 249;--lt-surface: 251 250 252;--lt-surface-hover: 236 234 245;--lt-field-bg: 249 248 252;--lt-field-focus: 244 238 252;--lt-field-border: 200 178 240;--lt-surface-border: 216 198 245}[data-theme=red]{--lt-accent: 220 56 45;--lt-accent-hover: 179 42 34;--lt-accent-muted: 236 154 147;--lt-accent-faint: 247 218 214;--lt-surface: 252 251 251;--lt-surface-hover: 244 236 233;--lt-field-bg: 252 250 249;--lt-field-focus: 252 242 240;--lt-field-border: 240 180 174;--lt-surface-border: 246 202 197}[data-theme=green]{--lt-accent: 22 163 74;--lt-accent-hover: 15 118 55;--lt-accent-muted: 74 222 128;--lt-accent-faint: 187 247 208;--lt-surface: 250 251 250;--lt-surface-hover: 234 242 237;--lt-field-bg: 248 251 249;--lt-field-focus: 240 253 244;--lt-field-border: 150 224 178;--lt-surface-border: 180 232 199}[data-theme=rose]{--lt-accent: 236 72 153;--lt-accent-hover: 219 39 119;--lt-accent-muted: 249 168 212;--lt-accent-faint: 252 231 243;--lt-surface: 252 250 251;--lt-surface-hover: 244 235 239;--lt-field-bg: 252 249 250;--lt-field-focus: 253 242 248;--lt-field-border: 248 185 216;--lt-surface-border: 250 206 228}[data-theme=orange]{--lt-accent: 249 115 22;--lt-accent-hover: 234 88 12;--lt-accent-muted: 254 215 170;--lt-accent-faint: 255 247 237;--lt-surface: 252 251 250;--lt-surface-hover: 244 237 230;--lt-field-bg: 252 250 248;--lt-field-focus: 255 247 237;--lt-field-border: 250 203 166;--lt-surface-border: 252 216 188}body{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface) / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:var(--lt-color-scheme)}*{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}*{scrollbar-width:none}*::-webkit-scrollbar{width:0;height:0}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.icon-link{color:rgb(var(--lt-accent) / .65);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.icon-link:hover{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.btn-primary{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent) / var(--tw-bg-opacity, 1));padding:.625rem 1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(var(--lt-text-inverse) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-primary:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent-hover) / var(--tw-bg-opacity, 1))}.btn-primary{border-radius:var(--lt-radius-field)}.btn-secondary{border-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-raised) / var(--tw-bg-opacity, 1));padding:.625rem 1.25rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-hover) / var(--tw-bg-opacity, 1))}.btn-secondary{border-radius:var(--lt-radius-field)}.btn-ghost{padding:.625rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-ghost:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-hover) / var(--tw-bg-opacity, 1))}.btn-ghost{border-radius:var(--lt-radius-field)}.row-hover{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.field,.input,.select,.textarea{border-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--lt-field-border) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-bg) / var(--tw-bg-opacity, 1));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.field::-moz-placeholder,.input::-moz-placeholder,.select::-moz-placeholder,.textarea::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.field::placeholder,.input::placeholder,.select::placeholder,.textarea::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.field:focus,.input:focus,.select:focus,.textarea:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-focus) / var(--tw-bg-opacity, 1));outline:2px solid transparent;outline-offset:2px}.\!input{border-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--lt-field-border) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-bg) / var(--tw-bg-opacity, 1));padding:.375rem .625rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\!input::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.\!input::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.\!input:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-focus) / var(--tw-bg-opacity, 1));outline:2px solid transparent;outline-offset:2px}.field,.input,.select,.textarea{border-radius:var(--lt-radius-field)}.\!input{border-radius:var(--lt-radius-field)!important}.field,.input,.textarea,.\!input{width:100%}.select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:1.75rem;background-image:var(--lt-select-chevron);background-repeat:no-repeat;background-position:right .5rem center;background-size:1rem}.textarea{resize:vertical;line-height:1.625}.input-json{width:100%;resize:vertical;border-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--lt-field-border) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-bg) / var(--tw-bg-opacity, 1));padding:.5rem .75rem;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:var(--lt-type-2xs);--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);line-height:1.625;--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-json::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.input-json::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.input-json:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-focus) / var(--tw-bg-opacity, 1));outline:2px solid transparent;outline-offset:2px}.input-json{border-radius:var(--lt-radius-field)}.textarea-quiet{width:100%;resize:none;overflow:hidden;border-width:1px;--tw-border-opacity: 1;border-color:rgb(var(--lt-field-border) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-bg) / var(--tw-bg-opacity, 1));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;line-height:1.625;--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.textarea-quiet::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.textarea-quiet::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.textarea-quiet:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-focus) / var(--tw-bg-opacity, 1));outline:2px solid transparent;outline-offset:2px}.textarea-quiet{border-radius:var(--lt-radius-field)}.\!label,.label{margin-bottom:.125rem;display:block;font-size:.75rem;line-height:1rem;font-weight:600;--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1))}.hint{margin-top:.25rem;font-size:var(--lt-type-2xs);line-height:1.375;--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.heading-1{font-size:2.125rem;font-weight:300;font-variant-caps:small-caps;letter-spacing:.02em;line-height:1.2;color:rgb(var(--lt-heading))}.heading-2{font-size:1.5rem;font-weight:300;font-variant-caps:small-caps;letter-spacing:.02em;color:rgb(var(--lt-heading))}.heading-3{font-size:1.25rem;font-weight:300;font-variant-caps:small-caps;letter-spacing:.02em;color:rgb(var(--lt-heading))}.section-header{margin-bottom:.75rem;display:block;border-bottom-width:1px;border-color:rgb(var(--lt-surface-border) / .3);padding-bottom:.375rem;font-size:1.25rem;font-weight:300;font-variant-caps:small-caps;letter-spacing:.03em;color:rgb(var(--lt-heading))}.section-h2{font-size:1.25rem;font-weight:300;font-variant-caps:small-caps;letter-spacing:.03em;color:rgb(var(--lt-heading))}.dot-ring{mask-image:radial-gradient(circle closest-side,transparent calc(100% - 1.5px),#000 calc(100% - .75px));-webkit-mask-image:radial-gradient(circle closest-side,transparent calc(100% - 1.5px),#000 calc(100% - .75px))}.logo-mark{background-color:rgb(var(--lt-logo, var(--lt-accent)));mask-image:var(--logo-url);mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-image:var(--logo-url);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-4{top:1rem;right:1rem;bottom:1rem;left:1rem}.inset-y-0{top:0;bottom:0}.-left-\[3px\]{left:-3px}.-right-0\.5{right:-.125rem}.-right-1{right:-.25rem}.-top-0\.5{top:-.125rem}.-top-1{top:-.25rem}.-top-\[0\.35em\]{top:-.35em}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-14{bottom:3.5rem}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:.625rem}.left-56{left:14rem}.left-\[4px\]{left:4px}.left-\[7px\]{left:7px}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-14{top:3.5rem}.top-16{top:4rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-6{top:1.5rem}.top-\[2\.75rem\]{top:2.75rem}.top-\[3px\]{top:3px}.top-\[60px\]{top:60px}.top-\[var\(--lt-sticky-top\,60px\)\]{top:var(--lt-sticky-top,60px)}.top-full{top:100%}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[45\]{z-index:45}.z-\[5\]{z-index:5}.z-\[60\]{z-index:60}.z-\[9999\]{z-index:9999}.order-9{order:9}.col-span-2{grid-column:span 2 / span 2}.col-span-full{grid-column:1 / -1}.float-right{float:right}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-10{margin-left:-2.5rem;margin-right:-2.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-mx-page-x{margin-left:calc(var(--lt-space-page-x) * -1);margin-right:calc(var(--lt-space-page-x) * -1)}.-my-1{margin-top:-.25rem;margin-bottom:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-8{margin-top:2rem;margin-bottom:2rem}.-mb-16{margin-bottom:-4rem}.-ml-10{margin-left:-2.5rem}.-ml-8{margin-left:-2rem}.-ml-\[12\.5rem\]{margin-left:-12.5rem}.-ml-\[9\.75rem\]{margin-left:-9.75rem}.-ml-page-x{margin-left:calc(var(--lt-space-page-x) * -1)}.-mr-0\.5{margin-right:-.125rem}.-mr-1{margin-right:-.25rem}.-mr-10{margin-right:-2.5rem}.-mr-page-x{margin-right:calc(var(--lt-space-page-x) * -1)}.-mt-1{margin-top:-.25rem}.-mt-10{margin-top:-2.5rem}.-mt-2{margin-top:-.5rem}.-mt-4{margin-top:-1rem}.-mt-6{margin-top:-1.5rem}.-mt-8{margin-top:-2rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-6{margin-left:1.5rem}.ml-7{margin-left:1.75rem}.ml-8{margin-left:2rem}.ml-\[19px\]{margin-left:19px}.ml-auto{margin-left:auto}.mr-1\.5{margin-right:.375rem}.mr-16{margin-right:4rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-auto{margin-right:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-3\.5{margin-top:.875rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-\[3em\]{margin-top:3em}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[12\.5rem\]{height:12.5rem}.h-\[14px\]{height:14px}.h-\[15px\]{height:15px}.h-\[16rem\]{height:16rem}.h-\[18px\]{height:18px}.h-\[7px\]{height:7px}.h-\[80px\]{height:80px}.h-\[9px\]{height:9px}.h-\[calc\(100vh-5\.25rem\)\]{height:calc(100vh - 5.25rem)}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0px}.max-h-40{max-height:10rem}.max-h-44{max-height:11rem}.max-h-48{max-height:12rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-96{max-height:24rem}.max-h-\[200px\]{max-height:200px}.max-h-\[280px\]{max-height:280px}.max-h-\[300px\]{max-height:300px}.max-h-\[30vh\]{max-height:30vh}.max-h-\[400px\]{max-height:400px}.max-h-\[40vh\]{max-height:40vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[900px\]{max-height:900px}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(100vh-220px\)\]{max-height:calc(100vh - 220px)}.max-h-\[calc\(100vh-3\.5rem\)\]{max-height:calc(100vh - 3.5rem)}.max-h-\[calc\(100vh-5rem\)\]{max-height:calc(100vh - 5rem)}.max-h-\[calc\(100vh-6rem\)\]{max-height:calc(100vh - 6rem)}.max-h-\[calc\(100vh-8rem\)\]{max-height:calc(100vh - 8rem)}.max-h-none{max-height:none}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-9{min-height:2.25rem}.min-h-\[100px\]{min-height:100px}.min-h-\[120px\]{min-height:120px}.min-h-\[160px\]{min-height:160px}.min-h-\[200px\]{min-height:200px}.min-h-\[28px\]{min-height:28px}.min-h-\[300px\]{min-height:300px}.min-h-\[34px\]{min-height:34px}.min-h-\[360px\]{min-height:360px}.min-h-\[40vh\]{min-height:40vh}.min-h-\[48px\]{min-height:48px}.min-h-\[55vh\]{min-height:55vh}.min-h-\[60px\]{min-height:60px}.min-h-\[80px\]{min-height:80px}.min-h-\[calc\(100vh-12rem\)\]{min-height:calc(100vh - 12rem)}.min-h-\[calc\(100vh-80px\)\]{min-height:calc(100vh - 80px)}.min-h-screen{min-height:100vh}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/3{width:66.666667%}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-40{width:10rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[10\%\]{width:10%}.w-\[10rem\]{width:10rem}.w-\[11\%\]{width:11%}.w-\[12\%\]{width:12%}.w-\[12\.5rem\]{width:12.5rem}.w-\[120px\]{width:120px}.w-\[12rem\]{width:12rem}.w-\[14px\]{width:14px}.w-\[15px\]{width:15px}.w-\[16rem\]{width:16rem}.w-\[18px\]{width:18px}.w-\[200px\]{width:200px}.w-\[22rem\]{width:22rem}.w-\[280px\]{width:280px}.w-\[28rem\]{width:28rem}.w-\[30\%\]{width:30%}.w-\[36rem\]{width:36rem}.w-\[380px\]{width:380px}.w-\[40vw\]{width:40vw}.w-\[440px\]{width:440px}.w-\[48rem\]{width:48rem}.w-\[60px\]{width:60px}.w-\[7\%\]{width:7%}.w-\[7px\]{width:7px}.w-\[8\%\]{width:8%}.w-\[80\%\]{width:80%}.w-\[9px\]{width:9px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-4{min-width:1rem}.min-w-64{min-width:16rem}.min-w-72{min-width:18rem}.min-w-\[11rem\]{min-width:11rem}.min-w-\[120px\]{min-width:120px}.min-w-\[12rem\]{min-width:12rem}.min-w-\[140px\]{min-width:140px}.min-w-\[14px\]{min-width:14px}.min-w-\[14rem\]{min-width:14rem}.min-w-\[15rem\]{min-width:15rem}.min-w-\[16rem\]{min-width:16rem}.min-w-\[17rem\]{min-width:17rem}.min-w-\[180px\]{min-width:180px}.min-w-\[18px\]{min-width:18px}.min-w-\[19rem\]{min-width:19rem}.min-w-\[260px\]{min-width:260px}.min-w-\[2rem\]{min-width:2rem}.min-w-\[6rem\]{min-width:6rem}.min-w-\[800px\]{min-width:800px}.min-w-\[80px\]{min-width:80px}.min-w-\[min\(16rem\,100\%\)\]{min-width:min(16rem,100%)}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-0{max-width:0px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-48{max-width:12rem}.max-w-64{max-width:16rem}.max-w-96{max-width:24rem}.max-w-\[120px\]{max-width:120px}.max-w-\[150px\]{max-width:150px}.max-w-\[160px\]{max-width:160px}.max-w-\[16rem\]{max-width:16rem}.max-w-\[180px\]{max-width:180px}.max-w-\[19rem\]{max-width:19rem}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[24rem\]{max-width:24rem}.max-w-\[25rem\]{max-width:25rem}.max-w-\[28rem\]{max-width:28rem}.max-w-\[32rem\]{max-width:32rem}.max-w-\[460px\]{max-width:460px}.max-w-\[70\%\]{max-width:70%}.max-w-\[85\%\]{max-width:85%}.max-w-\[85vw\]{max-width:85vw}.max-w-\[90vw\]{max-width:90vw}.max-w-\[9rem\]{max-width:9rem}.max-w-\[calc\(100vw-2rem\)\]{max-width:calc(100vw - 2rem)}.max-w-form{max-width:var(--lt-measure-form)}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-prose{max-width:65ch}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.origin-center{transform-origin:center}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\[60vh\]{--tw-translate-y: -60vh;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-4{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[120vw\]{--tw-translate-x: 120vw;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[18px\]{--tw-translate-x: 18px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[3px\]{--tw-translate-x: 3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-\[120deg\]{--tw-rotate: -120deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-0{--tw-rotate: 0deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[3\]{--tw-scale-x: 3;--tw-scale-y: 3;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[click-hint_2\.6s_ease-in-out_both\]{animation:click-hint 2.6s ease-in-out both}.animate-\[field-enter_0\.2s_ease-out\]{animation:field-enter .2s ease-out}.animate-\[field-error-in_0\.3s_ease-out\]{animation:field-error-in .3s ease-out}.animate-\[field-shake_0\.4s_ease-in-out\]{animation:field-shake .4s ease-in-out}.animate-\[section-enter_0\.25s_ease-out\]{animation:section-enter .25s ease-out}.animate-\[triage-glow_6s_ease-in-out_infinite\]{animation:triage-glow 6s ease-in-out infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .2s ease-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-\[0\.6rem_7rem_minmax\(2rem\,1fr\)_1rem\]{grid-template-columns:.6rem 7rem minmax(2rem,1fr) 1rem}.grid-cols-\[1fr_240px\]{grid-template-columns:1fr 240px}.grid-cols-\[300px_1fr\]{grid-template-columns:300px 1fr}.grid-cols-\[3fr_1fr\]{grid-template-columns:3fr 1fr}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-cols-\[minmax\(0\,1fr\)_7rem_13rem_4\.5rem\]{grid-template-columns:minmax(0,1fr) 7rem 13rem 4.5rem}.grid-cols-\[repeat\(auto-fill\,minmax\(15rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.grid-rows-\[0fr\]{grid-template-rows:0fr}.grid-rows-\[1fr\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-px{gap:1px}.gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-x-col-gap{-moz-column-gap:var(--lt-space-col-gap);column-gap:var(--lt-space-col-gap)}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-10{row-gap:2.5rem}.gap-y-2{row-gap:.5rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-5{row-gap:1.25rem}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-14>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-3\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.875rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.875rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1px * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-surface-border>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-divide-opacity, 1))}.divide-surface-border\/30>:not([hidden])~:not([hidden]){border-color:rgb(var(--lt-surface-border) / .3)}.divide-surface-border\/40>:not([hidden])~:not([hidden]){border-color:rgb(var(--lt-surface-border) / .4)}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.justify-self-center{justify-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-x-clip{overflow-x:clip}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[0\.125em\]{border-radius:.125em}.rounded-\[0\.25em\]{border-radius:.25em}.rounded-\[3px\]{border-radius:3px}.rounded-\[4px\]{border-radius:4px}.rounded-\[var\(--lt-radius-field\)\]{border-radius:var(--lt-radius-field)}.rounded-\[var\(--lt-radius-section\)\]{border-radius:var(--lt-radius-section)}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-r-\[var\(--lt-radius-field\)\]{border-top-right-radius:var(--lt-radius-field);border-bottom-right-radius:var(--lt-radius-field)}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-accent{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.border-accent-faint{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent-faint) / var(--tw-border-opacity, 1))}.border-accent-muted{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent-muted) / var(--tw-border-opacity, 1))}.border-accent-muted\/40{border-color:rgb(var(--lt-accent-muted) / .4)}.border-accent\/10{border-color:rgb(var(--lt-accent) / .1)}.border-accent\/15{border-color:rgb(var(--lt-accent) / .15)}.border-accent\/20{border-color:rgb(var(--lt-accent) / .2)}.border-accent\/25{border-color:rgb(var(--lt-accent) / .25)}.border-accent\/30{border-color:rgb(var(--lt-accent) / .3)}.border-accent\/40{border-color:rgb(var(--lt-accent) / .4)}.border-purple-500\/20{border-color:#a855f733}.border-status-active{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-active) / var(--tw-border-opacity, 1))}.border-status-claimed{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-claimed) / var(--tw-border-opacity, 1))}.border-status-claimed-graphic\/40{border-color:rgb(var(--lt-status-claimed-graphic) / .4)}.border-status-draft{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-draft) / var(--tw-border-opacity, 1))}.border-status-error{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-error) / var(--tw-border-opacity, 1))}.border-status-error\/20{border-color:rgb(var(--lt-status-error) / .2)}.border-status-error\/30{border-color:rgb(var(--lt-status-error) / .3)}.border-status-error\/50{border-color:rgb(var(--lt-status-error) / .5)}.border-status-error\/60{border-color:rgb(var(--lt-status-error) / .6)}.border-status-pending-graphic\/40{border-color:rgb(var(--lt-status-pending-graphic) / .4)}.border-status-pending\/30{border-color:rgb(var(--lt-status-pending) / .3)}.border-status-success{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-success) / var(--tw-border-opacity, 1))}.border-status-success-graphic\/40{border-color:rgb(var(--lt-status-success-graphic) / .4)}.border-status-success\/30{border-color:rgb(var(--lt-status-success) / .3)}.border-status-warning{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-warning) / var(--tw-border-opacity, 1))}.border-status-warning\/20{border-color:rgb(var(--lt-status-warning) / .2)}.border-status-warning\/30{border-color:rgb(var(--lt-status-warning) / .3)}.border-status-warning\/70{border-color:rgb(var(--lt-status-warning) / .7)}.border-surface{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface) / var(--tw-border-opacity, 1))}.border-surface-border{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}.border-surface-border\/15{border-color:rgb(var(--lt-surface-border) / .15)}.border-surface-border\/30{border-color:rgb(var(--lt-surface-border) / .3)}.border-surface-border\/40{border-color:rgb(var(--lt-surface-border) / .4)}.border-surface-border\/50{border-color:rgb(var(--lt-surface-border) / .5)}.border-surface-border\/60{border-color:rgb(var(--lt-surface-border) / .6)}.border-surface-field-border{--tw-border-opacity: 1;border-color:rgb(var(--lt-field-border) / var(--tw-border-opacity, 1))}.border-text-inverse\/70{border-color:rgb(var(--lt-text-inverse) / .7)}.border-text-quaternary\/40{border-color:rgb(var(--lt-text-quaternary) / .4)}.border-text-tertiary{--tw-border-opacity: 1;border-color:rgb(var(--lt-text-tertiary) / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.\!border-l-accent{--tw-border-opacity: 1 !important;border-left-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))!important}.border-l-accent{--tw-border-opacity: 1;border-left-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-r-surface-border{--tw-border-opacity: 1;border-right-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}.border-r-transparent{border-right-color:transparent}.border-t-accent{--tw-border-opacity: 1;border-top-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.\!bg-status-error{--tw-bg-opacity: 1 !important;background-color:rgb(var(--lt-status-error) / var(--tw-bg-opacity, 1))!important}.bg-\[a-z\]{background-color:a-z}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent) / var(--tw-bg-opacity, 1))}.bg-accent-faint{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent-faint) / var(--tw-bg-opacity, 1))}.bg-accent-faint\/50{background-color:rgb(var(--lt-accent-faint) / .5)}.bg-accent-muted{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent-muted) / var(--tw-bg-opacity, 1))}.bg-accent-muted\/20{background-color:rgb(var(--lt-accent-muted) / .2)}.bg-accent\/10{background-color:rgb(var(--lt-accent) / .1)}.bg-accent\/15{background-color:rgb(var(--lt-accent) / .15)}.bg-accent\/20{background-color:rgb(var(--lt-accent) / .2)}.bg-accent\/5{background-color:rgb(var(--lt-accent) / .05)}.bg-accent\/60{background-color:rgb(var(--lt-accent) / .6)}.bg-accent\/\[0\.06\]{background-color:rgb(var(--lt-accent) / .06)}.bg-accent\/\[0\.08\]{background-color:rgb(var(--lt-accent) / .08)}.bg-amber-300\/\[0\.08\]{background-color:#fcd34d14}.bg-amber-400\/\[0\.08\]{background-color:#fbbf2414}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-blue-400\/\[0\.08\]{background-color:#60a5fa14}.bg-blue-500\/10{background-color:#3b82f61a}.bg-cyan-400\/\[0\.08\]{background-color:#22d3ee14}.bg-emerald-400\/\[0\.08\]{background-color:#34d39914}.bg-fuchsia-400\/\[0\.08\]{background-color:#e879f914}.bg-green-400\/\[0\.08\]{background-color:#4ade8014}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-400\/\[0\.08\]{background-color:#818cf814}.bg-lime-400\/\[0\.08\]{background-color:#a3e63514}.bg-orange-400\/\[0\.08\]{background-color:#fb923c14}.bg-pink-300\/\[0\.08\]{background-color:#f9a8d414}.bg-pink-400\/\[0\.08\]{background-color:#f472b614}.bg-purple-400\/\[0\.08\]{background-color:#c084fc14}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-400\/\[0\.08\]{background-color:#f8717114}.bg-rose-300\/\[0\.08\]{background-color:#fda4af14}.bg-rose-400\/\[0\.08\]{background-color:#fb718514}.bg-sky-300\/\[0\.08\]{background-color:#7dd3fc14}.bg-sky-400\/\[0\.08\]{background-color:#38bdf814}.bg-status-active{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-active) / var(--tw-bg-opacity, 1))}.bg-status-active\/10{background-color:rgb(var(--lt-status-active) / .1)}.bg-status-active\/60{background-color:rgb(var(--lt-status-active) / .6)}.bg-status-active\/70{background-color:rgb(var(--lt-status-active) / .7)}.bg-status-claimed-graphic{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-claimed-graphic) / var(--tw-bg-opacity, 1))}.bg-status-claimed-graphic\/15{background-color:rgb(var(--lt-status-claimed-graphic) / .15)}.bg-status-draft{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-draft) / var(--tw-bg-opacity, 1))}.bg-status-draft-graphic{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-draft-graphic) / var(--tw-bg-opacity, 1))}.bg-status-draft\/10{background-color:rgb(var(--lt-status-draft) / .1)}.bg-status-draft\/30{background-color:rgb(var(--lt-status-draft) / .3)}.bg-status-error{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-error) / var(--tw-bg-opacity, 1))}.bg-status-error\/10{background-color:rgb(var(--lt-status-error) / .1)}.bg-status-error\/5{background-color:rgb(var(--lt-status-error) / .05)}.bg-status-error\/70{background-color:rgb(var(--lt-status-error) / .7)}.bg-status-error\/\[0\.04\]{background-color:rgb(var(--lt-status-error) / .04)}.bg-status-pending{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-pending) / var(--tw-bg-opacity, 1))}.bg-status-pending-graphic{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-pending-graphic) / var(--tw-bg-opacity, 1))}.bg-status-pending-graphic\/15{background-color:rgb(var(--lt-status-pending-graphic) / .15)}.bg-status-pending\/10{background-color:rgb(var(--lt-status-pending) / .1)}.bg-status-queued-graphic{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-queued-graphic) / var(--tw-bg-opacity, 1))}.bg-status-success{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-success) / var(--tw-bg-opacity, 1))}.bg-status-success-graphic{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-success-graphic) / var(--tw-bg-opacity, 1))}.bg-status-success-graphic\/15{background-color:rgb(var(--lt-status-success-graphic) / .15)}.bg-status-success\/10{background-color:rgb(var(--lt-status-success) / .1)}.bg-status-success\/20{background-color:rgb(var(--lt-status-success) / .2)}.bg-status-success\/30{background-color:rgb(var(--lt-status-success) / .3)}.bg-status-warning{--tw-bg-opacity: 1;background-color:rgb(var(--lt-status-warning) / var(--tw-bg-opacity, 1))}.bg-status-warning\/10{background-color:rgb(var(--lt-status-warning) / .1)}.bg-status-warning\/15{background-color:rgb(var(--lt-status-warning) / .15)}.bg-status-warning\/5{background-color:rgb(var(--lt-status-warning) / .05)}.bg-status-warning\/\[0\.06\]{background-color:rgb(var(--lt-status-warning) / .06)}.bg-stone-400\/\[0\.08\]{background-color:#a8a29e14}.bg-surface{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface) / var(--tw-bg-opacity, 1))}.bg-surface-border{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-border) / var(--tw-bg-opacity, 1))}.bg-surface-border\/60{background-color:rgb(var(--lt-surface-border) / .6)}.bg-surface-border\/70{background-color:rgb(var(--lt-surface-border) / .7)}.bg-surface-border\/80{background-color:rgb(var(--lt-surface-border) / .8)}.bg-surface-field{--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-bg) / var(--tw-bg-opacity, 1))}.bg-surface-hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-hover) / var(--tw-bg-opacity, 1))}.bg-surface-hover\/30{background-color:rgb(var(--lt-surface-hover) / .3)}.bg-surface-hover\/60{background-color:rgb(var(--lt-surface-hover) / .6)}.bg-surface-raised{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-raised) / var(--tw-bg-opacity, 1))}.bg-surface-raised\/50{background-color:rgb(var(--lt-surface-raised) / .5)}.bg-surface-raised\/\[0\.03\]{background-color:rgb(var(--lt-surface-raised) / .03)}.bg-surface-sunken{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-sunken) / var(--tw-bg-opacity, 1))}.bg-surface-sunken\/15{background-color:rgb(var(--lt-surface-sunken) / .15)}.bg-surface-sunken\/20{background-color:rgb(var(--lt-surface-sunken) / .2)}.bg-surface-sunken\/30{background-color:rgb(var(--lt-surface-sunken) / .3)}.bg-surface-sunken\/40{background-color:rgb(var(--lt-surface-sunken) / .4)}.bg-surface-sunken\/50{background-color:rgb(var(--lt-surface-sunken) / .5)}.bg-surface-sunken\/60{background-color:rgb(var(--lt-surface-sunken) / .6)}.bg-surface-sunken\/75{background-color:rgb(var(--lt-surface-sunken) / .75)}.bg-surface-sunken\/80{background-color:rgb(var(--lt-surface-sunken) / .8)}.bg-surface-sunken\/90{background-color:rgb(var(--lt-surface-sunken) / .9)}.bg-surface\/90{background-color:rgb(var(--lt-surface) / .9)}.bg-surface\/95{background-color:rgb(var(--lt-surface) / .95)}.bg-teal-300\/\[0\.08\]{background-color:#5eead414}.bg-teal-400\/\[0\.08\]{background-color:#2dd4bf14}.bg-text-inverse{--tw-bg-opacity: 1;background-color:rgb(var(--lt-text-inverse) / var(--tw-bg-opacity, 1))}.bg-text-primary\/30{background-color:rgb(var(--lt-text-primary) / .3)}.bg-text-primary\/40{background-color:rgb(var(--lt-text-primary) / .4)}.bg-text-primary\/60{background-color:rgb(var(--lt-text-primary) / .6)}.bg-text-quaternary{--tw-bg-opacity: 1;background-color:rgb(var(--lt-text-quaternary) / var(--tw-bg-opacity, 1))}.bg-text-quaternary\/70{background-color:rgb(var(--lt-text-quaternary) / .7)}.bg-text-secondary{--tw-bg-opacity: 1;background-color:rgb(var(--lt-text-secondary) / var(--tw-bg-opacity, 1))}.bg-text-tertiary{--tw-bg-opacity: 1;background-color:rgb(var(--lt-text-tertiary) / var(--tw-bg-opacity, 1))}.bg-text-tertiary\/30{background-color:rgb(var(--lt-text-tertiary) / .3)}.bg-transparent{background-color:transparent}.bg-violet-300\/\[0\.08\]{background-color:#c4b5fd14}.bg-violet-400\/\[0\.08\]{background-color:#a78bfa14}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-400\/\[0\.08\]{background-color:#facc1514}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.from-accent\/\[0\.04\]{--tw-gradient-from: rgb(var(--lt-accent) / .04) var(--tw-gradient-from-position);--tw-gradient-to: rgb(var(--lt-accent) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-surface{fill:rgb(var(--lt-surface) / 1)}.fill-text-primary{fill:rgb(var(--lt-text-primary) / 1)}.fill-text-quaternary{fill:rgb(var(--lt-text-quaternary) / 1)}.fill-text-tertiary{fill:rgb(var(--lt-text-tertiary) / 1)}.stroke-accent{stroke:rgb(var(--lt-accent) / 1)}.stroke-current{stroke:currentColor}.stroke-surface-border{stroke:rgb(var(--lt-surface-border) / 1)}.stroke-text-quaternary{stroke:rgb(var(--lt-text-quaternary) / 1)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-top{-o-object-position:top;object-position:top}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-2{padding-left:.5rem!important;padding-right:.5rem!important}.\!px-2\.5{padding-left:.625rem!important;padding-right:.625rem!important}.\!py-0\.5{padding-top:.125rem!important;padding-bottom:.125rem!important}.\!py-1\.5{padding-top:.375rem!important;padding-bottom:.375rem!important}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.px-page-x{padding-left:var(--lt-space-page-x);padding-right:var(--lt-space-page-x)}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.py-px{padding-top:1px;padding-bottom:1px}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-0\.5{padding-left:.125rem}.pl-1{padding-left:.25rem}.pl-1\.5{padding-left:.375rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-14{padding-left:3.5rem}.pl-16{padding-left:4rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3{padding-left:.75rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-52{padding-left:13rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-\[18px\]{padding-left:18px}.pr-1{padding-right:.25rem}.pr-1\.5{padding-right:.375rem}.pr-10{padding-right:2.5rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-28{padding-right:7rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pr-6{padding-right:1.5rem}.pr-7{padding-right:1.75rem}.pr-page-x{padding-right:var(--lt-space-page-x)}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-24{padding-top:6rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.pt-9{padding-top:2.25rem}.pt-\[36px\]{padding-top:36px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.font-mono{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace}.font-sans{font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif}.\!text-2xs{font-size:var(--lt-type-2xs)!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-2xs{font-size:var(--lt-type-2xs)}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.5em\]{font-size:.5em}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.7875rem\]{font-size:.7875rem}.text-\[1\.40625rem\]{font-size:1.40625rem}.text-\[10px\]{font-size:10px}.text-\[36px\]{font-size:36px}.text-\[44px\]{font-size:44px}.text-\[8\.5px\]{font-size:8.5px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[a-z\]{color:a-z}.text-accent{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.text-accent-muted{--tw-text-opacity: 1;color:rgb(var(--lt-accent-muted) / var(--tw-text-opacity, 1))}.text-accent\/40{color:rgb(var(--lt-accent) / .4)}.text-accent\/50{color:rgb(var(--lt-accent) / .5)}.text-accent\/60{color:rgb(var(--lt-accent) / .6)}.text-accent\/65{color:rgb(var(--lt-accent) / .65)}.text-accent\/70{color:rgb(var(--lt-accent) / .7)}.text-accent\/75{color:rgb(var(--lt-accent) / .75)}.text-accent\/80{color:rgb(var(--lt-accent) / .8)}.text-accent\/90{color:rgb(var(--lt-accent) / .9)}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-fuchsia-400{--tw-text-opacity: 1;color:rgb(232 121 249 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-heading{--tw-text-opacity: 1;color:rgb(var(--lt-heading) / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-inherit{color:inherit}.text-lime-400{--tw-text-opacity: 1;color:rgb(163 230 53 / var(--tw-text-opacity, 1))}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-300{--tw-text-opacity: 1;color:rgb(249 168 212 / var(--tw-text-opacity, 1))}.text-pink-400{--tw-text-opacity: 1;color:rgb(244 114 182 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.text-rose-400{--tw-text-opacity: 1;color:rgb(251 113 133 / var(--tw-text-opacity, 1))}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-status-active{--tw-text-opacity: 1;color:rgb(var(--lt-status-active) / var(--tw-text-opacity, 1))}.text-status-active\/70{color:rgb(var(--lt-status-active) / .7)}.text-status-claimed{--tw-text-opacity: 1;color:rgb(var(--lt-status-claimed) / var(--tw-text-opacity, 1))}.text-status-draft{--tw-text-opacity: 1;color:rgb(var(--lt-status-draft) / var(--tw-text-opacity, 1))}.text-status-error{--tw-text-opacity: 1;color:rgb(var(--lt-status-error) / var(--tw-text-opacity, 1))}.text-status-error\/50{color:rgb(var(--lt-status-error) / .5)}.text-status-error\/60{color:rgb(var(--lt-status-error) / .6)}.text-status-error\/70{color:rgb(var(--lt-status-error) / .7)}.text-status-error\/80{color:rgb(var(--lt-status-error) / .8)}.text-status-pending{--tw-text-opacity: 1;color:rgb(var(--lt-status-pending) / var(--tw-text-opacity, 1))}.text-status-queued{--tw-text-opacity: 1;color:rgb(var(--lt-status-queued) / var(--tw-text-opacity, 1))}.text-status-success{--tw-text-opacity: 1;color:rgb(var(--lt-status-success) / var(--tw-text-opacity, 1))}.text-status-success\/70{color:rgb(var(--lt-status-success) / .7)}.text-status-success\/80{color:rgb(var(--lt-status-success) / .8)}.text-status-warning{--tw-text-opacity: 1;color:rgb(var(--lt-status-warning) / var(--tw-text-opacity, 1))}.text-status-warning\/40{color:rgb(var(--lt-status-warning) / .4)}.text-stone-400{--tw-text-opacity: 1;color:rgb(168 162 158 / var(--tw-text-opacity, 1))}.text-surface-border{--tw-text-opacity: 1;color:rgb(var(--lt-surface-border) / var(--tw-text-opacity, 1))}.text-teal-300{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity, 1))}.text-teal-400{--tw-text-opacity: 1;color:rgb(45 212 191 / var(--tw-text-opacity, 1))}.text-text-inverse{--tw-text-opacity: 1;color:rgb(var(--lt-text-inverse) / var(--tw-text-opacity, 1))}.text-text-inverse\/70{color:rgb(var(--lt-text-inverse) / .7)}.text-text-primary{--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1))}.text-text-quaternary{--tw-text-opacity: 1;color:rgb(var(--lt-text-quaternary) / var(--tw-text-opacity, 1))}.text-text-quaternary\/40{color:rgb(var(--lt-text-quaternary) / .4)}.text-text-quaternary\/50{color:rgb(var(--lt-text-quaternary) / .5)}.text-text-quaternary\/60{color:rgb(var(--lt-text-quaternary) / .6)}.text-text-quaternary\/70{color:rgb(var(--lt-text-quaternary) / .7)}.text-text-secondary{--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1))}.text-text-tertiary{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.text-text-tertiary\/30{color:rgb(var(--lt-text-tertiary) / .3)}.text-text-tertiary\/40{color:rgb(var(--lt-text-tertiary) / .4)}.text-text-tertiary\/50{color:rgb(var(--lt-text-tertiary) / .5)}.text-text-tertiary\/60{color:rgb(var(--lt-text-tertiary) / .6)}.text-text-tertiary\/70{color:rgb(var(--lt-text-tertiary) / .7)}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-white\/75{color:#ffffffbf}.text-white\/95{color:#fffffff2}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.line-through{text-decoration-line:line-through}.decoration-text-tertiary\/30{text-decoration-color:rgb(var(--lt-text-tertiary) / .3)}.accent-accent{accent-color:rgb(var(--lt-accent) / 1)}.accent-status-error{accent-color:rgb(var(--lt-status-error) / 1)}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-black\/5{--tw-shadow-color: rgb(0 0 0 / .05);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-accent{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--lt-accent) / var(--tw-ring-opacity, 1))}.ring-accent\/40{--tw-ring-color: rgb(var(--lt-accent) / .4)}.ring-surface-border{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--lt-surface-border) / var(--tw-ring-opacity, 1))}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-surface{--tw-ring-offset-color: rgb(var(--lt-surface) / 1)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-150{--tw-brightness: brightness(1.5);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale: grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[grid-template-rows\]{transition-property:grid-template-rows;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-\[1500ms\]{transition-duration:1.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\@container{container-type:inline-size}.\@container\/filters{container-type:inline-size;container-name:filters}.\@container\/table{container-type:inline-size;container-name:table}.\[animation-delay\:150ms\]{animation-delay:.15s}.\[animation-delay\:300ms\]{animation-delay:.3s}.\[font-variant-caps\:small-caps\]{font-variant-caps:small-caps}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes triage-glow{0%{box-shadow:0 0 3px rgb(var(--lt-accent) / .15)}8.3%{box-shadow:0 0 10px 2px rgb(var(--lt-accent) / .4)}16.7%,to{box-shadow:0 0 3px rgb(var(--lt-accent) / .15)}}.animate-page-enter{animation:fadeIn .15s ease-out both}@keyframes pageFade{0%{opacity:0}to{opacity:1}}.animate-page-in{animation:pageFade .2s ease-out both}@keyframes field-enter{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes section-enter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes field-shake{0%,to{transform:translate(0)}15%{transform:translate(-4px)}30%{transform:translate(3px)}45%{transform:translate(-2px)}60%{transform:translate(1px)}75%{transform:translate(0)}}@keyframes field-error-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes click-hint{0%{opacity:0;transform:translate(-50%,calc(-100% + 6px)) scale(.94)}10%{opacity:1;transform:translate(-50%,-100%) scale(1.03)}18%{transform:translate(-50%,-100%) scale(1)}82%{opacity:1;transform:translate(-50%,-100%) scale(1)}to{opacity:0;transform:translate(-50%,calc(-100% - 10px)) scale(1)}}.bg-stripes{background-image:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgb(var(--lt-text-inverse) / .15) 3px,rgb(var(--lt-text-inverse) / .15) 6px);background-color:rgb(var(--lt-status-pending-graphic))}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-text-quaternary::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-quaternary) / var(--tw-text-opacity, 1))}.placeholder\:text-text-quaternary::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-quaternary) / var(--tw-text-opacity, 1))}.placeholder\:text-text-tertiary::-moz-placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.placeholder\:text-text-tertiary::placeholder{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.placeholder\:text-text-tertiary\/40::-moz-placeholder{color:rgb(var(--lt-text-tertiary) / .4)}.placeholder\:text-text-tertiary\/40::placeholder{color:rgb(var(--lt-text-tertiary) / .4)}.placeholder\:text-text-tertiary\/50::-moz-placeholder{color:rgb(var(--lt-text-tertiary) / .5)}.placeholder\:text-text-tertiary\/50::placeholder{color:rgb(var(--lt-text-tertiary) / .5)}.first\:ml-0:first-child{margin-left:0}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-width:0px}.first\:pt-1:first-child{padding-top:.25rem}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.last\:pr-0:last-child{padding-right:0}.focus-within\:border-accent:focus-within{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.focus-within\:bg-surface-field-focus:focus-within{--tw-bg-opacity: 1;background-color:rgb(var(--lt-field-focus) / var(--tw-bg-opacity, 1))}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.05\]:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.5\]:hover{--tw-scale-x: 1.5;--tw-scale-y: 1.5;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-accent:hover{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.hover\:border-accent\/40:hover{border-color:rgb(var(--lt-accent) / .4)}.hover\:border-accent\/50:hover{border-color:rgb(var(--lt-accent) / .5)}.hover\:border-accent\/60:hover{border-color:rgb(var(--lt-accent) / .6)}.hover\:border-status-error:hover{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-error) / var(--tw-border-opacity, 1))}.hover\:border-status-error\/50:hover{border-color:rgb(var(--lt-status-error) / .5)}.hover\:border-surface-border:hover{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}.hover\:border-text-tertiary:hover{--tw-border-opacity: 1;border-color:rgb(var(--lt-text-tertiary) / var(--tw-border-opacity, 1))}.hover\:\!bg-status-error\/90:hover{background-color:rgb(var(--lt-status-error) / .9)!important}.hover\:bg-accent-hover:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent-hover) / var(--tw-bg-opacity, 1))}.hover\:bg-accent-muted:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent-muted) / var(--tw-bg-opacity, 1))}.hover\:bg-accent\/10:hover{background-color:rgb(var(--lt-accent) / .1)}.hover\:bg-accent\/15:hover{background-color:rgb(var(--lt-accent) / .15)}.hover\:bg-accent\/20:hover{background-color:rgb(var(--lt-accent) / .2)}.hover\:bg-accent\/25:hover{background-color:rgb(var(--lt-accent) / .25)}.hover\:bg-accent\/30:hover{background-color:rgb(var(--lt-accent) / .3)}.hover\:bg-accent\/5:hover{background-color:rgb(var(--lt-accent) / .05)}.hover\:bg-accent\/90:hover{background-color:rgb(var(--lt-accent) / .9)}.hover\:bg-accent\/\[0\.04\]:hover{background-color:rgb(var(--lt-accent) / .04)}.hover\:bg-status-error\/10:hover{background-color:rgb(var(--lt-status-error) / .1)}.hover\:bg-status-error\/20:hover{background-color:rgb(var(--lt-status-error) / .2)}.hover\:bg-status-error\/5:hover{background-color:rgb(var(--lt-status-error) / .05)}.hover\:bg-status-error\/80:hover{background-color:rgb(var(--lt-status-error) / .8)}.hover\:bg-status-error\/90:hover{background-color:rgb(var(--lt-status-error) / .9)}.hover\:bg-status-success\/10:hover{background-color:rgb(var(--lt-status-success) / .1)}.hover\:bg-status-success\/20:hover{background-color:rgb(var(--lt-status-success) / .2)}.hover\:bg-status-warning\/\[0\.1\]:hover{background-color:rgb(var(--lt-status-warning) / .1)}.hover\:bg-surface-hover:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-hover) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-hover\/30:hover{background-color:rgb(var(--lt-surface-hover) / .3)}.hover\:bg-surface-hover\/40:hover{background-color:rgb(var(--lt-surface-hover) / .4)}.hover\:bg-surface-hover\/50:hover{background-color:rgb(var(--lt-surface-hover) / .5)}.hover\:bg-surface-raised:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-raised) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-raised\/30:hover{background-color:rgb(var(--lt-surface-raised) / .3)}.hover\:bg-surface-raised\/60:hover{background-color:rgb(var(--lt-surface-raised) / .6)}.hover\:bg-surface-sunken:hover{--tw-bg-opacity: 1;background-color:rgb(var(--lt-surface-sunken) / var(--tw-bg-opacity, 1))}.hover\:bg-surface-sunken\/40:hover{background-color:rgb(var(--lt-surface-sunken) / .4)}.hover\:bg-surface-sunken\/50:hover{background-color:rgb(var(--lt-surface-sunken) / .5)}.hover\:bg-surface-sunken\/70:hover{background-color:rgb(var(--lt-surface-sunken) / .7)}.hover\:text-accent:hover{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.hover\:text-accent-hover:hover{--tw-text-opacity: 1;color:rgb(var(--lt-accent-hover) / var(--tw-text-opacity, 1))}.hover\:text-accent\/80:hover{color:rgb(var(--lt-accent) / .8)}.hover\:text-status-active:hover{--tw-text-opacity: 1;color:rgb(var(--lt-status-active) / var(--tw-text-opacity, 1))}.hover\:text-status-error:hover{--tw-text-opacity: 1;color:rgb(var(--lt-status-error) / var(--tw-text-opacity, 1))}.hover\:text-status-error\/80:hover{color:rgb(var(--lt-status-error) / .8)}.hover\:text-status-success:hover{--tw-text-opacity: 1;color:rgb(var(--lt-status-success) / var(--tw-text-opacity, 1))}.hover\:text-status-success\/80:hover{color:rgb(var(--lt-status-success) / .8)}.hover\:text-status-warning:hover{--tw-text-opacity: 1;color:rgb(var(--lt-status-warning) / var(--tw-text-opacity, 1))}.hover\:text-status-warning\/80:hover{color:rgb(var(--lt-status-warning) / .8)}.hover\:text-text-inverse:hover{--tw-text-opacity: 1;color:rgb(var(--lt-text-inverse) / var(--tw-text-opacity, 1))}.hover\:text-text-primary:hover{--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1))}.hover\:text-text-secondary:hover{--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:brightness-110:hover{--tw-brightness: brightness(1.1);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.focus\:border-accent:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-accent) / var(--tw-border-opacity, 1))}.focus\:border-status-error:focus{--tw-border-opacity: 1;border-color:rgb(var(--lt-status-error) / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-accent:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(var(--lt-accent) / var(--tw-ring-opacity, 1))}.focus\:ring-accent\/30:focus{--tw-ring-color: rgb(var(--lt-accent) / .3)}.focus\:ring-accent\/40:focus{--tw-ring-color: rgb(var(--lt-accent) / .4)}.focus\:ring-accent\/50:focus{--tw-ring-color: rgb(var(--lt-accent) / .5)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent\/40:focus-visible{--tw-ring-color: rgb(var(--lt-accent) / .4)}.focus-visible\:ring-status-warning\/40:focus-visible{--tw-ring-color: rgb(var(--lt-status-warning) / .4)}.enabled\:hover\:border-accent\/60:hover:enabled{border-color:rgb(var(--lt-accent) / .6)}.enabled\:hover\:bg-accent\/5:hover:enabled{background-color:rgb(var(--lt-accent) / .05)}.enabled\:hover\:text-accent:hover:enabled{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:text-text-tertiary:disabled{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.disabled\:no-underline:disabled{text-decoration-line:none}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:border-surface-border:hover:disabled{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}.disabled\:hover\:bg-accent:hover:disabled{--tw-bg-opacity: 1;background-color:rgb(var(--lt-accent) / var(--tw-bg-opacity, 1))}.disabled\:hover\:bg-transparent:hover:disabled{background-color:transparent}.disabled\:hover\:text-text-tertiary:hover:disabled{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:pointer-events-auto{pointer-events:auto}.group\/srv:hover .group-hover\/srv\:visible{visibility:visible}.group:hover .group-hover\:block{display:block}.group:hover .group-hover\:border-accent\/50{border-color:rgb(var(--lt-accent) / .5)}.group:hover .group-hover\:border-accent\/60{border-color:rgb(var(--lt-accent) / .6)}.group\/pin:hover .group-hover\/pin\:text-accent{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.group\/row:hover .group-hover\/row\:text-text-primary{--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1))}.group\/row:hover .group-hover\/row\:text-text-secondary{--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1))}.group\/section:hover .group-hover\/section\:text-text-tertiary{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.group\/srv:hover .group-hover\/srv\:text-accent,.group:hover .group-hover\:text-accent{--tw-text-opacity: 1;color:rgb(var(--lt-accent) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-accent-hover{--tw-text-opacity: 1;color:rgb(var(--lt-accent-hover) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-status-error{--tw-text-opacity: 1;color:rgb(var(--lt-status-error) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-text-primary{--tw-text-opacity: 1;color:rgb(var(--lt-text-primary) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-text-secondary{--tw-text-opacity: 1;color:rgb(var(--lt-text-secondary) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-text-tertiary{--tw-text-opacity: 1;color:rgb(var(--lt-text-tertiary) / var(--tw-text-opacity, 1))}.group:hover .group-hover\:underline{text-decoration-line:underline}.group\/key:hover .group-hover\/key\:opacity-100,.group\/mrow:hover .group-hover\/mrow\:opacity-100,.group\/row:hover .group-hover\/row\:opacity-100,.group\/sched:hover .group-hover\/sched\:opacity-100{opacity:1}.group\/sorthead:hover .group-hover\/sorthead\:opacity-40{opacity:.4}.group\/sub:hover .group-hover\/sub\:opacity-100,.group\/tip:hover .group-hover\/tip\:opacity-100,.group\/trace:hover .group-hover\/trace\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}@container table (min-width: 22rem){.\@dict-inline\/table\:grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}}@container (min-width: 22rem){.\@dict-inline\:mt-0{margin-top:0}.\@dict-inline\:inline{display:inline}.\@dict-inline\:inline-flex{display:inline-flex}.\@dict-inline\:hidden{display:none}.\@dict-inline\:grid-cols-\[max-content_1fr\]{grid-template-columns:max-content 1fr}}@container (min-width: 26rem){.\@grp-cols\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@grp-cols\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width: 34rem){.\@form-cols\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (min-width: 38rem){.\@dict-pairs\:grid-cols-\[max-content_1fr_max-content_1fr\]{grid-template-columns:max-content 1fr max-content 1fr}.\@dict-pairs\:gap-x-8{-moz-column-gap:2rem;column-gap:2rem}}@container table (min-width: 54rem){.\@split\/table\:table-cell{display:table-cell}}@container (min-width: 54rem){.\@split\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@split\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\@split\:grid-cols-\[1\.6fr_1fr\]{grid-template-columns:1.6fr 1fr}.\@split\:grid-cols-\[1fr_240px\]{grid-template-columns:1fr 240px}.\@split\:grid-cols-\[1fr_340px\]{grid-template-columns:1fr 340px}.\@split\:grid-cols-\[1fr_360px\]{grid-template-columns:1fr 360px}.\@split\:grid-cols-\[1fr_400px\]{grid-template-columns:1fr 400px}.\@split\:grid-cols-\[1fr_460px\]{grid-template-columns:1fr 460px}.\@split\:grid-cols-\[1fr_auto\]{grid-template-columns:1fr auto}.\@split\:gap-12{gap:3rem}.\@split\:pt-4{padding-top:1rem}}@container table (min-width: 64rem){.\@wall\/table\:table-cell{display:table-cell}}@container (min-width: 64rem){.\@wall\:sticky{position:sticky}.\@wall\:top-0{top:0}.\@wall\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@wall\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.\@wall\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@container filters (min-width: 72rem){.\@filters\/filters\:flex{display:flex}.\@filters\/filters\:contents{display:contents}.\@filters\/filters\:hidden{display:none}}@media(min-width:640px){.sm\:flex{display:flex}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:768px){.md\:flex{display:flex}}@media(min-width:1024px){.lg\:col-span-2{grid-column:span 2 / span 2}.lg\:col-span-3{grid-column:span 3 / span 3}.lg\:block{display:block}.lg\:inline{display:inline}.lg\:flex{display:flex}.lg\:table-cell{display:table-cell}.lg\:hidden{display:none}.lg\:w-72{width:18rem}.lg\:border-l{border-left-width:1px}.lg\:border-surface-border{--tw-border-opacity: 1;border-color:rgb(var(--lt-surface-border) / var(--tw-border-opacity, 1))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pl-12{padding-left:3rem}}@media(min-width:1280px){.xl\:table-cell{display:table-cell}}.\[\&_p\+p\]\:mt-2 p+p{margin-top:.5rem}.\[\&_p\]\:m-0 p{margin:0}
@@ -1,3 +0,0 @@
1
- import{b as Lt,a as c,j as e}from"./vendor-query-DvWWuNIB.js";import{ab as hs,M as st,ac as oe,m as ce,a6 as Xe,ad as Pt,J as je,h as gs,i as bs,P as G,g as Qe,z as Ct,ae as Ke,a0 as Ot,a5 as ys,af as js,ag as vs,ah as Ns,ai as ws,aj as ks,ak as Cs,r as Ss,s as _s,al as Es,am as Rs,V as As,W as Ts,a as Is,c as Ms,Q as Ds,an as Ls,y as Ps,ao as Os}from"./index-BMlQYOE1.js";import{u as Wt,C as $t,r as Ws,B as $s,a as Vs}from"./BulkAssignModal-BXiJnlqt.js";import{E as Bs,b as tt,v as Fs,i as qs}from"./resolver-payload-C1dXB3n6.js";import{a as Vt,u as at,L as $e,b as Us,e as Js}from"./vendor-react-_9U4mKFr.js";import{P as zs}from"./PageHeader-Di5Sz3an.js";import{L as Hs}from"./ListToolbar-zPVYPg3W.js";import{i as Pe,b as Gs,d as Xs,m as Bt,c as Ft}from"./EscalationListView-uuZRMSLB.js";import{S as Qs}from"./StatusBadge-DHVwxre2.js";import{R as Ks}from"./RolePill-DhnVPK4q.js";import{C as Ve}from"./CountdownTimer-D9B-BjQ7.js";import{C as se}from"./CopyableId-Bn02zYxt.js";import{U as ve}from"./UserName-BceRCeDF.js";import{d as Ys,R as qt,r as Zs}from"./ResolverForm-Dy0yirtP.js";import{d as ea}from"./metadata-display--TzK0REC.js";import{a4 as ta,O as sa,S as aa,av as na,a0 as ra,n as ia,ah as la,U as oa,ak as ca,b as da,aw as Ut,ax as St,ay as ua,a as xa,Q as _t,V as Et,az as ma,X as pa}from"./vendor-icons-DeBdvyKJ.js";import"./constants-BHkpVaqx.js";import"./useDebouncedValue-Cp5ZOtVE.js";import"./DataTable-7C7riavf.js";import"./EmptyState-DgC_6njU.js";import"./StickyPagination-DRuqKhZt.js";function fa({escalationId:t}){var s;const a=Vt(),l=at(),r=Lt(),i=(s=a.state)==null?void 0:s[hs],[o,d]=c.useState(!1),[p,g]=c.useState(null),[f,u]=c.useState(!1);if(!i||i.escalationId!==t||f)return null;const b=()=>{u(!0),l(a.pathname,{replace:!0,state:null})},x=async()=>{var h,y,v;d(!0),g(null);try{switch(i.verb){case oe.CANCEL:await ce(`/escalations/${t}/cancel`,{method:"POST"});break;case oe.CLAIM:case oe.CLAIM_SHOW_DETAIL:await ce(`/escalations/${t}/claim`,{method:"POST",body:JSON.stringify({durationMinutes:((h=i.params)==null?void 0:h.durationMinutes)??30})});break;case oe.RELEASE:await ce(`/escalations/${t}/release`,{method:"POST"});break;case oe.RESOLVE:await ce(`/escalations/${t}/resolve`,{method:"POST",body:JSON.stringify({resolverPayload:((y=i.params)==null?void 0:y.resolverPayload)??{}})});break;case oe.ESCALATE:await ce(`/escalations/${t}/escalate`,{method:"PATCH",body:JSON.stringify({targetRole:(v=i.params)==null?void 0:v.targetRole})});break;default:throw new Error(`Unsupported confirm verb "${i.verb}"`)}r.resetQueries({queryKey:["escalations"]}),r.resetQueries({queryKey:["escalationStats"]}),b()}catch(k){g(k.message)}finally{d(!1)}};return e.jsx(st,{open:!0,onClose:b,title:"Confirm scan action",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("p",{className:"text-sm text-text-secondary",children:i.prompt}),p&&e.jsx("p",{className:"text-xs text-status-error",children:p}),e.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsx("button",{onClick:b,disabled:o,className:"btn-secondary text-xs",children:"No, go back"}),e.jsx("button",{onClick:x,disabled:o,className:"btn-primary text-xs",children:o?"Working…":"Yes, continue"})]})]})})}const Le={pending:"rgb(var(--lt-status-queued-graphic))",claimed:"rgb(var(--lt-status-claimed-graphic))",resolved:"rgb(var(--lt-status-success-graphic))",cancelled:"rgb(var(--lt-status-error))"},Ye=4;function Rt({pct:t,place:a,label:l,title:r,emphasis:i}){const o=e.jsx("span",{className:"w-px h-1 bg-text-quaternary/70","aria-hidden":!0}),d=e.jsx("span",{className:`whitespace-nowrap leading-none tabular-nums text-[10px] ${i?"text-text-tertiary":"text-text-quaternary"}`,children:l});return e.jsx("div",{title:r,className:`absolute ${a==="above"?"bottom-0":"top-0"} flex flex-col items-center gap-0 -translate-x-1/2 cursor-help`,style:{left:`${t}%`},children:a==="above"?e.jsxs(e.Fragment,{children:[d,o]}):e.jsxs(e.Fragment,{children:[o,d]})})}function ha({esc:t,className:a=""}){const l=new Date(t.created_at).getTime(),r=t.claimed_at?new Date(t.claimed_at).getTime():null,i=t.status==="resolved",o=t.status==="cancelled"||t.status==="expired",d=i||o,p=Pe(t),g=!!r&&(p||d),f=i&&t.resolved_at?new Date(t.resolved_at).getTime():o?new Date(t.updated_at).getTime():Date.now(),u=Math.max(f-l,1),b=g&&r?Math.max(r-l,0):u,x=g&&r?Math.max(f-r,0):0,s=Math.min(100,Math.max(0,b/u*100)),h=g?Math.max(0,100-s):0,y=i?Le.resolved:o?Le.cancelled:Le.claimed,v=i?"Resolved after":o?"Cancelled after":"In progress",k=Xe(b),w=Xe(u),C=i?`Resolved in ${w} total`:o?`Cancelled after ${w}`:`Open ${w} so far`,j=`Lifecycle bar: blue = time waiting to be claimed, ${i?"green":o?"red":"orange"} = ${v.toLowerCase()} the claim.`;return e.jsxs("div",{className:a,title:j,children:[e.jsx("div",{className:"relative h-2.5 font-mono",children:g&&e.jsx(Rt,{pct:s,place:"above",label:k,title:`Time to claim: ${k}`})}),e.jsxs("div",{className:"flex w-full rounded-full overflow-hidden",style:{height:Ye,backgroundColor:"rgb(var(--lt-surface-sunken))"},title:j,children:[e.jsx("div",{style:{width:`${s}%`,minWidth:Ye,backgroundColor:Le.pending,opacity:.75},title:`Waiting ${k} — created → claimed`}),g&&h>0&&e.jsx("div",{style:{width:`${h}%`,minWidth:Ye,backgroundColor:y,opacity:.75},title:`${v} ${Xe(x)}`})]}),e.jsx("div",{className:"relative h-2.5 font-mono",children:e.jsx(Rt,{pct:100,place:"below",emphasis:!0,label:w,title:C})})]})}function ga({triage:t,payload:a}){const l=t.confidence??0,r=l>=.8?"text-status-success":l>=.5?"text-status-pending":"text-status-error",i=ba(t.originalData,a);return e.jsxs("div",{className:"space-y-5",children:[t.diagnosis&&e.jsx("p",{className:"text-sm text-text-primary leading-relaxed",children:t.diagnosis}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs text-text-tertiary",children:[t.tool_calls_made!=null&&e.jsxs("span",{children:[t.tool_calls_made," tool call",t.tool_calls_made!==1?"s":""]}),t.tool_calls_made!=null&&e.jsx("span",{className:"text-text-quaternary",children:"·"}),e.jsxs("span",{className:`font-medium ${r}`,children:[Math.round(l*100),"% confidence"]})]}),t.actions_taken&&t.actions_taken.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.actions_taken.map((o,d)=>e.jsxs("span",{className:`inline-flex items-center gap-1.5 px-2 py-0.5 text-2xs
2
- text-text-secondary`,children:[e.jsx("svg",{className:"w-3 h-3 text-status-success shrink-0",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2.5,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 13l4 4L19 7"})}),o]},d))}),t.recommendation&&e.jsx("p",{className:"text-2xs text-text-tertiary italic",children:t.recommendation}),i.length>0&&e.jsx("div",{className:"space-y-4 pt-2",children:i.map(o=>e.jsx(ya,{diff:o},o.key))})]})}function ba(t,a){if(!t)return[];const l=[];for(const r of Object.keys(t)){if(r.startsWith("_"))continue;const i=t[r],o=a[r];o!==void 0&&JSON.stringify(i)!==JSON.stringify(o)&&l.push({key:r,label:r.replace(/[_-]/g," "),original:i,corrected:o})}return l}function ya({diff:t}){const a=At(t.original),l=At(t.corrected);return a!==null&&l!==null?e.jsx("div",{className:"@container",children:e.jsxs("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-8 gap-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal",children:"(original)"})]}),e.jsx("p",{className:"text-sm text-text-tertiary leading-relaxed line-through decoration-text-tertiary/30",children:a})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"})]}),e.jsx("p",{className:"text-sm text-text-primary leading-relaxed",children:l})]})]})}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal",children:"(original)"})]}),e.jsx("pre",{className:"text-xs text-text-tertiary font-mono whitespace-pre-wrap leading-relaxed",children:typeof t.original=="object"?JSON.stringify(t.original,null,2):String(t.original)})]}),e.jsxs("div",{children:[e.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[t.label," ",e.jsx("span",{className:"normal-case font-normal text-status-success",children:"(corrected)"})]}),e.jsx("pre",{className:"text-xs text-text-primary font-mono whitespace-pre-wrap leading-relaxed",children:typeof t.corrected=="object"?JSON.stringify(t.corrected,null,2):String(t.corrected)})]})]})}function At(t){return t==null?"null":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):null}const D={HELP:"help",DETAILS:"details",TRIAGE:"triage",METADATA:"metadata",CONTEXT:"context",RECORD:"record",ERRORS:"errors"},Jt="lt:escalation:panel:view";function ja(t){try{const a=localStorage.getItem(Jt);if(a&&t.includes(a))return a}catch{}return D.HELP}function va({metadata:t,role:a}){const l=ea(t);return l.length===0?e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No metadata on this escalation."}):e.jsx("dl",{className:"space-y-3.5",children:l.map(([r,i])=>{const o=typeof i=="object"&&i!==null?JSON.stringify(i):String(i),d=Ct(r,i,a),p=Ct(r,i);return e.jsxs("div",{className:"group relative",children:[e.jsx("dt",{className:"text-2xs font-medium text-text-secondary uppercase tracking-wide",children:Ys(r)}),e.jsxs("dd",{className:"mt-0.5 flex items-center gap-1",children:[e.jsx("span",{className:"text-xs text-text-primary font-mono break-all flex-1",children:o}),e.jsx($e,{to:d,title:`Filter this queue: ${r} = ${o}`,className:"opacity-50 group-hover:opacity-100 transition-opacity shrink-0 p-0.5 text-text-quaternary hover:text-accent",children:e.jsx(ca,{className:"w-3 h-3"})}),e.jsx($e,{to:p,title:`Search all queues: ${r} = ${o}`,className:"opacity-50 group-hover:opacity-100 transition-opacity shrink-0 p-0.5 text-text-quaternary hover:text-accent",children:e.jsx(da,{className:"w-3 h-3"})})]})]},r)})})}function Na({esc:t,claimed:a,isTerminal:l,isBuilder:r,traceUrl:i}){return e.jsxs("div",{className:"space-y-5",children:[e.jsxs("dl",{className:"space-y-3.5",children:[e.jsx(G,{label:"Status",children:e.jsx(Qs,{status:t.status})}),e.jsx(G,{label:"Assigned to Role",children:e.jsx(Ks,{role:t.role,size:"md"})}),e.jsxs(G,{label:"Priority",children:["P",t.priority]}),(a||l)&&t.assigned_to&&e.jsx(G,{label:"Claimed By",children:e.jsxs("span",{className:"inline-flex items-center gap-1.5 font-medium text-text-primary",children:[e.jsx(oa,{className:"w-3 h-3 shrink-0 text-accent/75"}),e.jsx(ve,{userId:t.assigned_to})]})}),e.jsx(G,{label:"Created",children:e.jsx(Qe,{date:t.created_at})}),(a||l)&&t.claimed_at&&e.jsx(G,{label:"Claimed",children:e.jsx(Qe,{date:t.claimed_at})}),a&&!l&&t.assigned_until&&e.jsx(G,{label:"Time Remaining",children:e.jsx(Ve,{until:t.assigned_until})}),t.resolved_at&&e.jsx(G,{label:"Completed",children:e.jsx("span",{className:"text-status-success",children:e.jsx(Qe,{date:t.resolved_at})})})]}),r&&e.jsxs(e.Fragment,{children:[e.jsx("hr",{className:"border-surface-border/60"}),e.jsxs("div",{className:"space-y-3.5",children:[e.jsx(se,{label:"Escalation ID",value:t.id}),t.task_id&&e.jsx(se,{label:"Task ID",value:t.task_id,href:`/workflows/tasks/detail/${t.task_id}`}),t.workflow_type&&e.jsx(se,{label:"Workflow Name",value:t.workflow_type,href:`/workflows/executions?entity=${encodeURIComponent(t.workflow_type)}`}),t.workflow_id&&e.jsx(se,{label:"Workflow ID",value:t.workflow_id,href:`/workflows/executions/${t.workflow_id}`}),t.task_queue&&e.jsx(se,{label:"Task Queue",value:t.task_queue,href:`/admin/controlplane?queue=${encodeURIComponent(t.task_queue)}`}),t.origin_id&&t.origin_id!==t.workflow_id&&e.jsx(se,{label:"Origin",value:t.origin_id,href:`/processes/detail/${t.origin_id}`}),t.trace_id&&e.jsx(se,{label:"Trace",value:t.trace_id,href:i?i.replace("{traceId}",t.trace_id):void 0,external:!0})]})]})]})}function wa({esc:t,schema:a,envelope:l,payload:r,resolver:i,triage:o,hasAI:d,claimed:p,claimedByMe:g,isTerminal:f,isBuilder:u,traceUrl:b,open:x,noGutter:s,formErrors:h,activePanel:y,onPanelChange:v}){const k=at(),w=Object.values(D),[C,j]=c.useState(()=>ja(w)),T=y??C,E=c.useCallback(S=>{try{localStorage.setItem(Jt,S)}catch{}j(S),v==null||v(S)},[v]);c.useEffect(()=>{y&&y!==C&&j(y)},[y]);const L=c.useMemo(()=>Gs(a,{escalation:t,metadata:t.metadata??null,envelope:l,payload:r,resolver:i})??Xs({isTerminal:f,status:t.status,claimed:p,claimedByMe:g}),[a,t,l,r,i,f,p,g]),W=c.useCallback(S=>{const P=S.target.closest("a"),A=P==null?void 0:P.getAttribute("href");A!=null&&A.startsWith("/")&&(S.preventDefault(),k(A))},[k]),R=[{id:D.HELP,icon:ta,label:"Instructions",content:e.jsx(Pt,{content:L,onClick:W})},{id:D.DETAILS,icon:sa,label:"Details",content:e.jsx(Na,{esc:t,claimed:p,isTerminal:f,isBuilder:u,traceUrl:b})},...d&&o?[{id:D.TRIAGE,icon:aa,label:"AI Analysis",content:e.jsx(ga,{triage:o,payload:r??{}})}]:[],{id:D.METADATA,icon:na,label:"Metadata",content:e.jsx(va,{metadata:t.metadata,role:t.role})},{id:D.CONTEXT,icon:ra,label:"Context",content:e.jsxs("div",{className:"space-y-5",children:[l!=null&&e.jsx(je,{data:l,label:"Input Envelope"}),r!=null&&e.jsx(je,{data:r,label:"Escalation Context"}),i!=null&&e.jsx(je,{data:i,label:"Resolver Payload"}),l==null&&r==null&&i==null&&e.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No context on this escalation."})]})},...u?[{id:D.RECORD,icon:ia,label:"Record",content:e.jsx(je,{data:t,label:"Escalation Record"})}]:[],...h&&h.length>0?[{id:D.ERRORS,icon:(({className:S})=>e.jsx(la,{className:`${S??""} text-status-error`})),label:"Errors",content:e.jsx(Bs,{errors:h,schema:a})}]:[]];return e.jsx(gs,{open:x,width:384,className:"h-full",children:e.jsx("div",{className:`h-full${s?"":" pl-6"}`,children:e.jsxs("div",{className:"h-full flex flex-col bg-surface-hover",children:[e.jsx("div",{className:"shrink-0 pt-2 pb-0 flex justify-center",children:e.jsx(ha,{esc:t,className:"w-[80%]"})}),e.jsx("div",{className:"flex-1 min-h-0",children:e.jsx(bs,{views:R,activeId:T,onViewChange:E,stickyClassName:"h-full min-h-0"})})]})})})}function ka(t){const{mode:a,activeView:l,onActiveViewChange:r,onClaim:i,claimPending:o,claimNudge:d,workflowType:p,json:g,onResolve:f,resolvePending:u,resolveError:b,requestTriage:x,triageNotes:s,onRelease:h,releasePending:y,onCancel:v,assignedTo:k,assignedUntil:w,onSubmitAttempt:C,onValidationErrors:j,escalationContext:T,labels:E={},submitBlocked:L,submitBlockedMessage:W,actingName:R,submitNeedsBadge:S,canManage:P,onReassign:A,onUnassign:F,unassignPending:O}=t,$=Wt(),[de,ne]=c.useState("30"),[Ne,ue]=c.useState(0),[we,_]=c.useState(""),V=de==="custom",Q=c.useCallback(N=>ue(N),[]),q=!!L&&!x;if(a==="terminal")return null;const ke=()=>{const N=V?Ne:parseInt(de);!N||N<=0||i(N)},Be=()=>{if(_(""),x){const K={_lt:{needsTriage:!0}};s.trim()&&(K.notes=s.trim()),f(K);return}const N=tt(g,T);if(N.parseError){_(N.parseError);return}if(N.errors.length>0){C==null||C(),j==null||j(N.errors);return}f(N.payload)},re=N=>`text-xs transition-colors ${N?"text-accent font-medium":"text-text-tertiary hover:text-accent"}`;return e.jsxs("div",{className:"shrink-0 h-[80px] bg-surface/95 backdrop-blur-sm border-t border-surface-border -ml-10 pl-10 pr-10 pt-3 pb-5","data-testid":"escalation-action-bar",children:[a==="available"&&e.jsxs("div",{"data-testid":"claim-bar",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-2",children:[$.map(N=>e.jsx("button",{onClick:()=>{ne(N.value),ue(0)},className:re(!V&&de===N.value),children:N.label},N.value)),e.jsx("button",{onClick:()=>ne("custom"),className:re(V),children:"Other"})]}),e.jsxs("div",{className:"flex items-center gap-3",children:[E.cancel!==!1&&e.jsx("button",{onClick:v,className:"text-xs text-text-tertiary hover:text-status-error transition-colors",children:E.cancel??"Cancel escalation"}),e.jsx("div",{className:"flex-1"}),V&&e.jsx($t,{onChange:Q,compact:!0,autoFocus:!0}),e.jsx("button",{onClick:ke,disabled:o||V&&Ne<=0,className:`btn-primary text-xs ${d?"animate-[field-shake_0.4s_ease-in-out]":""}`,"data-testid":"claim-button",children:o?"Claiming...":E.claim??"Claim"},d)]})]}),a==="claimed_by_other"&&e.jsxs("div",{className:"flex items-center gap-4","data-testid":"claimed-other-bar",children:[e.jsxs("p",{className:"text-sm text-text-secondary",children:["Claimed by ",e.jsx("span",{className:"font-medium text-text-primary",children:k?e.jsx(ve,{userId:k}):"unknown"})]}),w&&e.jsx(Ve,{until:w}),b&&e.jsx("span",{className:"text-xs text-status-error",children:b.message}),P&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"flex-1"}),e.jsx("button",{onClick:A,className:"text-xs text-text-tertiary hover:text-accent transition-colors","data-testid":"admin-reassign",children:"Reassign…"}),e.jsx("button",{onClick:F,disabled:O,className:"text-xs text-text-tertiary hover:text-status-error transition-colors disabled:opacity-50","data-testid":"admin-unassign",children:O?"Returning…":"Return to queue"})]})]}),a==="claimed_by_me"&&e.jsxs("div",{"data-testid":"action-bar",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-2",children:[e.jsx("button",{onClick:()=>r("resolve"),className:re(l==="resolve"),children:p?"Resolve":"Acknowledge"}),e.jsx("button",{onClick:()=>r("release"),className:`text-xs transition-colors ${l==="release"?"text-status-error font-medium":"text-text-tertiary hover:text-status-error"}`,children:E.release??"Release"}),E.cancel!==!1&&e.jsx("button",{onClick:v,className:"text-xs transition-colors text-text-tertiary hover:text-status-error",children:E.cancel??"Cancel"})]}),l==="resolve"&&e.jsxs("div",{className:"flex items-center gap-4",children:[S?e.jsxs("p",{className:"flex items-center gap-1.5 text-sm text-text-secondary","data-testid":"submit-badge-warning",children:[e.jsx(Ut,{className:"w-4 h-4 text-accent-muted shrink-0",strokeWidth:1.5}),"When you submit, you'll scan your badge to confirm you're"," ",e.jsx("span",{className:"font-medium text-text-primary",children:k?e.jsx(ve,{userId:k}):"the claimant"}),"."]}):R&&e.jsxs("p",{className:"text-sm text-text-secondary","data-testid":"acting-claim-note",children:["Claimed by you ",e.jsxs("span",{className:"font-medium text-text-primary",children:["(",R,")"]})]}),!S&&R&&w&&e.jsx(Ve,{until:w}),e.jsx("div",{className:"flex-1"}),we&&e.jsx("span",{className:"text-xs text-status-error",children:we}),b&&e.jsx("span",{className:"text-xs text-status-error",children:b.message}),q&&W&&e.jsx("span",{className:"text-xs text-status-pending","data-testid":"submit-guard-message",children:W}),e.jsx("button",{onClick:Be,disabled:u||q,className:"btn-primary text-xs",children:u?p?"Submitting...":"Acknowledging...":x?"Send to Triage":E.submit??(p?"Submit":"Acknowledge")})]}),l==="release"&&e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("span",{className:"text-xs text-text-secondary",children:"Release back to pool?"}),e.jsx("div",{className:"flex-1"}),e.jsx("button",{onClick:()=>r("resolve"),className:"btn-secondary text-xs",children:"Back"}),e.jsx("button",{onClick:h,disabled:y,className:"btn-primary text-xs bg-status-error hover:bg-status-error/80",children:y?"Releasing...":"Yes, Release"})]})]})]})}function Ze({children:t}){return e.jsx("p",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1.5",children:t})}function Ca({payload:t,isTerminal:a,resolverPayload:l,onRetryTriage:r,isRetrying:i}){const o=t.title,d=t.summary,p=t.diagnosis,g=t.tool_calls_made,f=t.result,u=l==null?void 0:l._lt,b=(u==null?void 0:u.triaged)===!0,x=u==null?void 0:u.triageWorkflowId,s=a&&b,[h,y]=c.useState(!1);return s?e.jsxs("div",{className:"rounded-md border border-status-success/30 bg-surface-raised",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("svg",{className:"w-4 h-4 text-status-success shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm3.36 4.65a.5.5 0 00-.72 0L7 9.29 5.36 7.65a.5.5 0 10-.72.7l2 2a.5.5 0 00.72 0l4-4a.5.5 0 000-.7z"})}),e.jsx("span",{className:"text-xs font-medium text-status-success",children:"Resolved by AI Triage"})]}),typeof g=="number"&&e.jsxs("span",{className:"text-2xs font-mono px-2 py-0.5 rounded-full bg-status-success/10 text-status-success",children:[g," tool calls used"]})]}),e.jsxs("div",{className:"px-4 py-4 space-y-4",children:[o&&e.jsx("p",{className:"text-sm font-medium text-text-primary",children:o}),p&&e.jsxs("div",{children:[e.jsx(Ze,{children:"Triage diagnosis"}),e.jsx("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsx(Ke,{content:p})})]}),e.jsx("div",{className:"flex items-center gap-3",children:x&&e.jsx($e,{to:`/workflows/executions/${x}`,className:"text-2xs text-accent hover:underline",children:"View triage execution"})})]})]}):e.jsxs("div",{className:"rounded-md border border-status-warning/30 bg-surface-raised",children:[e.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-surface-border",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("svg",{className:"w-4 h-4 text-status-warning shrink-0",viewBox:"0 0 16 16",fill:"currentColor",children:e.jsx("path",{d:"M8 1a7 7 0 110 14A7 7 0 018 1zm0 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 4zm0 7a.75.75 0 100-1.5.75.75 0 000 1.5z"})}),e.jsx("span",{className:"text-xs font-medium text-status-warning",children:"Tool Rounds Exhausted"})]}),typeof g=="number"&&e.jsxs("span",{className:"text-2xs font-mono px-2 py-0.5 rounded-full bg-status-warning/10 text-status-warning",children:[g," tool calls used"]})]}),e.jsxs("div",{className:"px-4 py-4 space-y-4",children:[o&&e.jsx("p",{className:"text-sm font-medium text-text-primary",children:o}),d&&e.jsxs("div",{children:[e.jsx(Ze,{children:"What happened"}),e.jsx("div",{className:"text-xs text-text-secondary leading-relaxed",children:e.jsx(Ke,{content:d})})]}),p&&e.jsxs("div",{children:[e.jsx(Ze,{children:"What went wrong"}),e.jsx("div",{className:"text-xs text-text-primary leading-relaxed",children:e.jsx(Ke,{content:p})})]}),f!=null&&e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>y(!h),className:"flex items-center gap-1 text-2xs font-semibold uppercase tracking-widest text-text-tertiary hover:text-text-secondary transition-colors",children:[e.jsx("svg",{className:`w-3 h-3 transition-transform ${h?"rotate-90":""}`,viewBox:"0 0 12 12",fill:"currentColor",children:e.jsx("path",{d:"M4.5 2l4 4-4 4"})}),"Partial results"]}),h&&e.jsx("div",{className:"mt-2",children:e.jsx(je,{data:f,defaultMode:"tree"})})]}),r&&!a&&e.jsx("div",{className:"pt-2",children:e.jsxs("button",{onClick:r,disabled:i,className:"inline-flex items-center gap-2 px-4 py-2 text-xs font-medium bg-accent text-text-inverse rounded-md hover:bg-accent/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:[e.jsx("svg",{className:"w-3.5 h-3.5",viewBox:"0 0 14 14",fill:"currentColor",children:e.jsx("path",{d:"M7 1a6 6 0 100 12A6 6 0 007 1zm2.5 6.5l-3.5 2V5.5l3.5 2z"})}),i?"Sending to triage...":"Retry with AI Triage"]})})]})]})}const X={PENDING:"pending",CLAIMED:"claimed",RESOLVED:"resolved"};function zt(t){const a=t==null?void 0:t["x-lt-viewport"];return(a==null?void 0:a.type)!=="iframe"||typeof a.src!="string"||!a.src?null:a}function Tt(t,a){return a===X.CLAIMED?t.src:a===X.PENDING?t.onPending??null:t.onResolved??null}function Oe(t,a){if(!t.includes("{"))return t;try{const l=i=>{if(!i)return{};try{return JSON.parse(i)}catch{return{}}},r={...a.metadata??{},...l(a.envelope),...l(a.escalation_payload),...l(a.resolver_payload)};return t.replace(/\{([^}]+)\}/g,(i,o)=>Object.prototype.hasOwnProperty.call(r,o)?String(r[o]):`{${o}}`)}catch{return t}}function It(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}function We({src:t,escalation:a,schema:l,stage:r=X.CLAIMED,onResolve:i,onEscalate:o,readOnly:d=!1,submitAttempted:p,fill:g}){const f=c.useRef(null),u=c.useRef("");c.useEffect(()=>{try{const x=new URL(t);u.current=x.origin}catch{u.current=""}},[t]);const b=c.useCallback(()=>{const x=f.current;if(!(x!=null&&x.contentWindow)||!u.current)return;const h={type:"lt:init",escalation:{id:a.id,type:a.type,subtype:a.subtype,description:a.description,status:a.status,priority:a.priority,role:a.role,workflow_type:a.workflow_type,envelope:It(a.envelope),metadata:a.metadata??null,escalation_payload:It(a.escalation_payload)},schema:l,stage:r};x.contentWindow.postMessage(h,u.current)},[a,l,r]);return c.useEffect(()=>{const x=s=>{if(s.origin!==u.current)return;const h=s.data;if(!(!h||typeof h!="object"||typeof h.type!="string"))switch(h.type){case"lt:ready":b();break;case"lt:submit":!d&&h.payload&&typeof h.payload=="object"&&(i==null||i(h.payload));break;case"lt:escalate":!d&&typeof h.target=="string"&&h.target&&(o==null||o(h.target));break;case"lt:resize":{const y=f.current;y&&typeof h.height=="number"&&h.height>0&&(y.style.height=`${Math.min(h.height,2e3)}px`);break}}};return window.addEventListener("message",x),()=>window.removeEventListener("message",x)},[b,i,o,d]),c.useEffect(()=>{if(!p||d)return;const x=f.current;x!=null&&x.contentWindow&&u.current&&x.contentWindow.postMessage({type:"lt:validate"},u.current)},[p,d]),g?e.jsx("div",{className:"absolute inset-0 overflow-hidden",children:e.jsx("iframe",{ref:f,src:t,sandbox:"allow-scripts allow-same-origin allow-forms allow-pointer-lock allow-downloads",className:"w-full h-full border-0 block",title:"HITL Viewport",onLoad:b})}):e.jsx("div",{className:"rounded-md border border-surface-border overflow-hidden bg-white",children:e.jsx("iframe",{ref:f,src:t,sandbox:"allow-scripts allow-same-origin allow-forms allow-pointer-lock allow-downloads",className:"w-full border-0",style:{minHeight:"600px"},title:"HITL Viewport",onLoad:b})})}function Sa({json:t,onJsonChange:a,requestTriage:l,onRequestTriageChange:r,triageNotes:i,onTriageNotesChange:o,disabled:d=!1,submitAttempted:p=!1,showTriage:g=!1,escalationContext:f,onOpenHelp:u,onDisabledClick:b,disabledHint:x}){return e.jsxs(e.Fragment,{children:[g&&e.jsx("div",{className:"flex items-center justify-between mb-3",children:l?e.jsxs("button",{onClick:()=>r(!1),className:"group flex items-center gap-2 text-left","data-testid":"triage-cancel",children:[e.jsx("span",{className:"flex items-center justify-center w-5 h-5 rounded-full bg-accent/10 text-accent shrink-0",children:e.jsx("svg",{className:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18L18 6M6 6l12 12"})})}),e.jsxs("span",{className:"text-xs text-text-secondary group-hover:text-text-primary transition-colors",children:["AI Triage active."," ",e.jsx("span",{className:"text-accent group-hover:underline",children:"Cancel"})]})]}):e.jsxs("button",{onClick:()=>r(!0),className:"group flex items-center gap-2.5 text-left my-4","data-testid":"triage-callout",children:[e.jsx("span",{className:"flex items-center justify-center w-6 h-6 rounded-full bg-accent/10 text-accent shrink-0 animate-[triage-glow_6s_ease-in-out_infinite]",children:e.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.663 17h4.674M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z"})})}),e.jsxs("span",{className:"text-sm text-text-secondary group-hover:text-text-primary transition-colors",children:["This form doesn't capture the issue?"," ",e.jsx("span",{className:"text-accent group-hover:underline",children:"Request AI Triage"})]})]})}),e.jsxs("div",{className:"relative min-h-[200px]",children:[e.jsx("div",{className:l?"pointer-events-none select-none":"",children:e.jsx(qt,{value:t,onChange:a,disabled:d,submitAttempted:p,escalationContext:f,onOpenHelp:u,onDisabledClick:b,disabledHint:x})}),l&&e.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col bg-surface/90 backdrop-blur-[2px] rounded-md border border-accent/20 p-5","data-testid":"triage-overlay",children:[e.jsx("p",{className:"text-xs text-text-secondary mb-3 leading-relaxed",children:"The resolution form will not be submitted. Describe the issue so AI triage can diagnose and fix it using available tools. The corrected result will come back as a new escalation for your review."}),e.jsx("textarea",{value:i,onChange:s=>o(s.target.value),placeholder:"e.g. Content is in Spanish — needs translation to English before review...",className:"input text-xs w-full flex-1 min-h-[80px] resize-none",autoFocus:!0,"data-testid":"triage-notes"})]})]})]})}function Mt(t){if(!t)return null;try{return JSON.parse(t)}catch{return null}}function ae(t,a){return{escalation:t,metadata:t.metadata??null,envelope:Mt(t.envelope),payload:Mt(t.escalation_payload),resolver:null,...a?{lookup:a}:{}}}function _a({isRoundsExhausted:t,payloadObj:a,isTerminal:l,resolverPayload:r,onRetryTriage:i,isRetrying:o}){return e.jsxs(e.Fragment,{children:[t&&a&&e.jsx("div",{className:"mt-8",children:e.jsx(Ca,{payload:a,isTerminal:l,resolverPayload:r,onRetryTriage:i,isRetrying:o})}),(a==null?void 0:a.category)==="missing_credential"&&e.jsxs("div",{className:"mt-8 bg-status-warning/10 border border-status-warning/30 rounded-md px-5 py-4 flex items-start gap-3",children:[e.jsx(St,{size:20,className:"text-status-warning mt-0.5 shrink-0"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium text-text-primary mb-1",children:"Missing Credential"}),e.jsxs("p",{className:"text-xs text-text-secondary mb-3",children:["This workflow requires a ",e.jsx("span",{className:"font-medium capitalize",children:String(a.provider)})," credential to continue. Register one and then resolve this escalation to retry."]}),e.jsxs($e,{to:"/credentials",className:"btn-primary text-xs inline-flex items-center gap-1.5",children:[e.jsx(St,{size:12}),"Go to Credentials"]})]})]})]})}function Ea({esc:t,resolverPayload:a,isTerminal:l,editable:r,activeView:i,metadataFormSchema:o,effectiveSchema:d,lookup:p,json:g,onJsonChange:f,requestTriage:u,onRequestTriageChange:b,triageNotes:x,onTriageNotesChange:s,onResolve:h,onEscalate:y,onClaim:v,submitAttempted:k,isCertified:w,hasAI:C,onOpenHelp:j,onDisabledClick:T,disabledHint:E}){const L=d,W=ae(t,p),R=zt(L);if(l){const A=R&&t.status==="resolved"?Tt(R,X.RESOLVED):null;if(A)return e.jsx("div",{className:"mt-3",children:e.jsx(We,{src:Oe(A,t),escalation:t,schema:L,stage:X.RESOLVED,readOnly:!0})});if(a==null)return null;const F=typeof a=="object"&&a!==null?a:{},O=d??o,$=O!=null&&O.properties?{...Bt(F,O),_form_schema:O}:F;return e.jsx("div",{className:"mt-3",children:e.jsx(qt,{value:JSON.stringify($,null,2),onChange:()=>{},disabled:!0,escalationContext:W,disabledHint:E})})}if(i!=="resolve"||!(t.workflow_type||d))return null;const S=!!R&&!!h&&!!y;if(S&&!r){const A=Tt(R,X.PENDING);return A?e.jsx("div",{className:"mt-3",children:e.jsx(We,{src:Oe(A,t),escalation:t,schema:L,stage:X.PENDING,readOnly:!0})}):e.jsxs("button",{onClick:()=>v==null?void 0:v(),disabled:!v,className:"flex flex-col items-center justify-center min-h-[55vh] w-full gap-3 text-center group disabled:opacity-50 disabled:cursor-default",children:[e.jsx(ua,{className:"w-10 h-10 text-text-tertiary group-hover:text-accent transition-colors",strokeWidth:1}),e.jsx("p",{className:"text-base font-medium text-text-primary group-hover:text-accent transition-colors",children:"Claim to launch the editor"})]})}const P=S?Oe(R.src,t):"";return e.jsx("div",{className:"mt-3",children:S?e.jsx(We,{src:P,escalation:t,schema:L,onResolve:h,onEscalate:y,submitAttempted:k}):e.jsx(Sa,{json:g,onJsonChange:f,requestTriage:u,onRequestTriageChange:b,triageNotes:x,onTriageNotesChange:s,disabled:!r,submitAttempted:k,showTriage:!!w&&!!C,escalationContext:W,onOpenHelp:j,onDisabledClick:T,disabledHint:E})})}function Ra({open:t,assignedUntil:a,onClose:l,onExtend:r,isPending:i}){const o=Wt(),[d,p]=c.useState("30"),[g,f]=c.useState(0),u=d==="custom",b=u?g:parseInt(d),x=c.useCallback(s=>f(s),[]);return e.jsx(st,{open:t,onClose:l,title:"Claim Expiring",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("p",{className:"text-sm text-text-secondary",children:["Your claim on this escalation expires in"," ",e.jsx(Ve,{until:a}),". When it lapses, the form locks and the item returns to the queue — your edits are kept as a draft. Extend to keep working."]}),e.jsxs("select",{value:d,onChange:s=>{p(s.target.value),f(0)},className:"select w-full text-sm","aria-label":"Extension duration",children:[o.map(s=>e.jsx("option",{value:s.value,children:s.label},s.value)),e.jsx("option",{value:"custom",children:"Other..."})]}),u&&e.jsx($t,{onChange:x,autoFocus:!0}),e.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[e.jsx("button",{onClick:l,className:"btn-secondary text-xs",children:"Dismiss"}),e.jsx("button",{onClick:()=>r(b),className:"btn-primary text-xs",disabled:i||!b||b<=0,children:i?"Extending...":"Extend Claim"})]})]})})}const Aa=9e4;function Ta(t,a=Aa){const[,l]=c.useState(0);if(c.useEffect(()=>{if(!t)return;const i=new Date(t).getTime()-Date.now();if(i<=0)return;const o=()=>l(g=>g+1),d=[],p=i-a;return p>0&&d.push(window.setTimeout(o,p)),d.push(window.setTimeout(o,i)),()=>d.forEach(g=>window.clearTimeout(g))},[t,a]),!t)return{expired:!1,expiringSoon:!1,msRemaining:0};const r=Math.max(0,new Date(t).getTime()-Date.now());return{expired:r<=0,expiringSoon:r>0&&r<=a,msRemaining:r}}const Ia="lt:escalation:draft:";function nt(t){return`${Ia}${t}`}function Ma(t){try{return localStorage.getItem(nt(t))}catch{return null}}function Da(t,a){try{localStorage.setItem(nt(t),a)}catch{}}function et(t){try{localStorage.removeItem(nt(t))}catch{}}const La="x-lt-transition",Pa="x-lt-transition-message",Oa="x-lt-transition-max-wait-seconds",Wa="x-lt-transition-done",$a="Submitted. Preparing your next step…",Va=30,Ba=5,Fa=300;function qa(t){const a=typeof t=="number"?t:Number(t);return!Number.isFinite(a)||a<=0?Va:Math.min(Fa,Math.max(Ba,Math.round(a)))}function Dt(t){if(!t||!t[La])return null;const a=t[Pa];return{message:typeof a=="string"&&a.trim().length>0?a:$a,maxWaitSeconds:qa(t[Oa])}}function Ua(t){const a=t==null?void 0:t[Wa];return typeof a=="string"&&a.trim().length>0?a:null}const Ja="x-lt-submit-on-claim";function za(t){return!!(t!=null&&t[Ja])}const Ha="x-lt-submit-guard",Ga="{{count}} related items are still pending";function Xa(t){const a=t==null?void 0:t[Ha];if(!a||typeof a!="object"||Array.isArray(a))return;const l=a;if(!(!l.query||typeof l.query!="object"))return l}function Qa(t,a){const{user:l}=Ot(),r=Zs((t==null?void 0:t.query)??{},a??{},l==null?void 0:l.userId),{data:i,isSuccess:o}=ys({role:r.role,status:r.status,facets:r.facets,assigned_to:r.assigned_to,available:r.available,limit:1,enabled:!!t&&r.enabled}),d=!!t&&t.mustBeEmpty!==!1&&r.enabled,p=(i==null?void 0:i.total)??0,g=d&&o&&p===0,f=d&&!g;let u="";if(f)if(p>0){const b=(t==null?void 0:t.message)??Ga;u=Ft(b.replace(/\{\{count\}\}/g,String(p)),a??{})}else u="Checking related items…";return{blocked:f,count:p,message:u,confirmedEmpty:g}}function Ka({open:t,message:a}){return t?Us.createPortal(e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center px-4",children:[e.jsx("div",{className:"absolute inset-0 bg-text-primary/40 backdrop-blur-sm"}),e.jsxs("div",{role:"status","aria-live":"polite",className:"relative w-full max-w-sm bg-surface-raised border border-surface-border rounded-lg shadow-xl px-6 py-7 text-center",children:[e.jsx("div",{className:"flex justify-center mb-4","aria-hidden":"true",children:e.jsx("span",{className:"inline-block w-7 h-7 rounded-full border-2 border-surface-border border-t-accent animate-spin"})}),e.jsx("div",{className:"text-sm text-text-secondary [&_p]:m-0 [&_p+p]:mt-2",children:e.jsx(Pt,{content:a})})]})]}),document.body):null}function Ya({open:t,verb:a="submit",claimantId:l,wrongBadgeName:r,onCancel:i}){return t?e.jsx(st,{open:!0,onClose:i,title:`Scan your badge to ${a}`,children:e.jsxs("div",{className:"flex flex-col items-center text-center py-6","data-testid":"station-write-challenge",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx(xa,{className:"w-7 h-7 text-text-quaternary",strokeWidth:1}),e.jsx(Ut,{className:"w-9 h-9 text-accent-muted",strokeWidth:1})]}),e.jsxs("p",{className:"text-lg text-text-secondary",children:["Scan your badge to ",a," as"," ",e.jsx("span",{className:"font-medium text-text-primary",children:l?e.jsx(ve,{userId:l}):"the claimant"}),"."]}),r&&e.jsxs("p",{className:"text-sm text-status-error mt-3","data-testid":"wrong-badge",children:["That badge is ",r,"'s — scan the claimant's badge to ",a,"."]}),e.jsx("div",{className:"w-16 border-t border-surface-border my-6"}),e.jsx("button",{type:"button",onClick:i,className:"text-sm text-text-tertiary hover:text-text-secondary hover:underline",children:"Cancel"})]})}):null}const Ht="lt:escalation:panel:open";function Za(){try{const t=localStorage.getItem(Ht);return t===null?!0:t==="true"}catch{return!0}}function be(t){try{localStorage.setItem(Ht,String(t))}catch{}}function ye(t){if(!t)return null;try{return JSON.parse(t)}catch{return t}}function kn(){const{id:t}=Js();return e.jsx(en,{id:t},t)}function en({id:t}){var gt,bt,yt,jt,vt;const{user:a,isSuperAdmin:l,hasRoleType:r}=Ot(),i=l||r("admin"),{identity:o,clear:d}=js(),p=vs(),{data:g}=Ns((a==null?void 0:a.userId)??null),f=(o==null?void 0:o.actorId)??(a==null?void 0:a.userId),u=at(),b=Vt(),x=Lt(),{data:s,isLoading:h,refetch:y,isFetching:v}=ws(t);ks(t);const k=c.useMemo(()=>{if(!(s!=null&&s.envelope))return!1;try{const n=JSON.parse(s.envelope);return Array.isArray(n==null?void 0:n.lookups)&&n.lookups.length>0}catch{return!1}},[s==null?void 0:s.envelope]),{data:w}=Cs(t,k),C=c.useMemo(()=>{var n;return(n=w==null?void 0:w.lookups)!=null&&n.length?Object.fromEntries(w.lookups.filter(m=>!m.missing).map(m=>[m.as??m.key,m.data])):null},[w]),j=Ss(),T=_s(),E=Es(),L=Rs(),W=As(),R=Ts(),[S,P]=c.useState(!1),[A,F]=c.useState(!1),{data:O}=Is(),{data:$}=Ms(),{isBuilder:de}=Ds(),ne=O==null?void 0:O.find(n=>n.workflow_type===(s==null?void 0:s.workflow_type)),Ne=((gt=$==null?void 0:$.telemetry)==null?void 0:gt.traceUrl)??null,[ue,we]=c.useState("resolve"),[_,V]=c.useState("{}"),[Q,q]=c.useState(Za),[ke,Be]=c.useState(!1),[re,N]=c.useState(""),[K,Fe]=c.useState(!1),[Gt,xe]=c.useState([]),[Xt,Qt]=c.useState(0),[Kt,me]=c.useState(void 0),[U,qe]=c.useState(null),[Yt,rt]=c.useState(!1),it=c.useRef(!1),Ce=c.useRef(null),lt=c.useRef(!1),Se=c.useRef(null),[Y,Ue]=c.useState(null),Zt=Ta(s==null?void 0:s.assigned_until),[es,ts]=c.useState(null);c.useEffect(()=>{if(!(!K||!s))try{const n=JSON.parse(_),m=n._form_schema;if(!m){xe([]);return}xe(Fs(m,n,ae(s,C)))}catch{}},[_,K,s]);const _e=((bt=s==null?void 0:s.metadata)==null?void 0:bt.form_schema)??null,ie=(s==null?void 0:s.form_schema)??(ne==null?void 0:ne.resolver_schema)??null,I=_e??ie,ot=za(I),J=Ws(I),pe=Xa(I),fe=Qa(pe,s?ae(s,C):void 0),Ee=c.useRef(!1),Re=c.useRef(null);c.useEffect(()=>{if(Ee.current)return;const n=_e??(ie!=null&&ie.properties?ie:null);if(n!=null&&n.properties){Ee.current=!0;const m=ye(s==null?void 0:s.envelope),M=m==null?void 0:m.formDefaults,B={...(s==null?void 0:s.metadata)??{},...typeof M=="object"&&M!==null?M:{}},te=Bt(B,n),H={_form_schema:n};for(const[wt,ps]of Object.entries(n.properties)){const kt=ps,fs=kt.type==="object"?{}:"";H[wt]=te[wt]??kt.default??fs}Re.current=JSON.stringify(H,null,2);const Nt=!((s==null?void 0:s.status)==="resolved"||(s==null?void 0:s.status)==="cancelled")&&(s!=null&&s.id)?Ma(s.id):null,De=Nt?ye(Nt):null;De&&typeof De=="object"&&!Array.isArray(De)?V(JSON.stringify({...De,_form_schema:n},null,2)):V(Re.current)}else I&&(Ee.current=!0,V(JSON.stringify(I,null,2)))},[I,_e,ie,s==null?void 0:s.envelope,s==null?void 0:s.metadata,s==null?void 0:s.id,s==null?void 0:s.status]),c.useEffect(()=>{if(!Ee.current||Re.current===null||!(s!=null&&s.id)||s.status!=="pending")return;const n=s.id,m=window.setTimeout(()=>{_===Re.current?et(n):Da(n,_)},400);return()=>window.clearTimeout(m)},[_,s==null?void 0:s.id,s==null?void 0:s.status]),c.useEffect(()=>{if(!U)return;const n=window.setTimeout(async()=>{var M;try{const B=new URLSearchParams({parent_id:t,assigned_to:f??"",status:"pending",limit:"1"}),te=await ce(`/escalations?${B}`),H=(M=te==null?void 0:te.escalations)==null?void 0:M[0];if(H!=null&&H.id&&H.parent_id===t){qe(null),u(`/escalations/detail/${H.id}`);return}}catch{}qe(null),x.resetQueries({queryKey:["escalations"]}),x.resetQueries({queryKey:["escalationStats"]});const m=U.doneDest;m?m.startsWith("/")?u(m):window.location.assign(m):u(-1)},U.maxWaitSeconds*1e3);return()=>window.clearTimeout(n)},[U,t,f,u,x]),c.useEffect(()=>{var n,m;it.current||(n=b.state)!=null&&n.autoStart&&(!s||s.status!=="pending"||Pe(s)||_!=="{}"&&(it.current=!0,(m=Ce.current)==null||m.call(Ce)))},[s,_,b.state]),c.useEffect(()=>{var n;lt.current||!(pe!=null&&pe.autoResolveWhenEmpty)||!fe.confirmedEmpty||!s||s.status!=="pending"||!Pe(s)||s.assigned_to===f&&_!=="{}"&&(lt.current=!0,(n=Se.current)==null||n.call(Se))},[fe.confirmedEmpty,pe,s,_,f]),c.useEffect(()=>{if(!(!Y||!s)&&o&&o.actorId===s.assigned_to){const{run:n}=Y;Ue(null),n()}},[o,Y,s==null?void 0:s.assigned_to]);const ss=(s==null?void 0:s.subtype)==="rounds_exhausted";if(h)return e.jsxs("div",{className:"animate-pulse space-y-8",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-64"}),e.jsx("div",{className:"h-32 bg-surface-sunken rounded w-full"})]});if(!s)return e.jsx("p",{className:"text-sm text-text-secondary",children:"Escalation not found."});const Ae=Pe(s),Z=Ae&&s.assigned_to===f,as=Ae&&!Z,ee=s.status==="resolved"||s.status==="cancelled",Je=p&&Ls(g)&&Ae&&!ee,ct=Z||Je,dt=Je&&s.assigned_to!==(a==null?void 0:a.userId),ut=zt(I),ze=!!ut&&ct&&!ee,Te=ye(s.escalation_payload),le=ye(s.resolver_payload),Ie=ye(s.envelope),ns=!!((yt=Ie==null?void 0:Ie.metadata)!=null&&yt.certified),xt=Ps(),mt=xt!==null?xt:!!((jt=$==null?void 0:$.ai)!=null&&jt.enabled),z=typeof Te=="object"&&Te!==null&&!Array.isArray(Te)?Te:null,rs=z==null?void 0:z._triage,is=typeof le=="object"&&le!==null&&!Array.isArray(le)?le:null,He=ee?"terminal":Z||Je?"claimed_by_me":as?"claimed_by_other":"available",ls=He==="available"?`${typeof J.claim=="string"?J.claim:"Claim"} this escalation to edit the form`:He==="claimed_by_other"?e.jsxs(e.Fragment,{children:["Claimed by ",s.assigned_to?e.jsx(ve,{userId:s.assigned_to}):"another user"]}):s.status==="cancelled"?"This escalation is cancelled":s.status==="resolved"?"This escalation is resolved — the submitted values are shown":null,Ge=n=>{j.mutate({id:t,durationMinutes:n})},he=()=>{x.resetQueries({queryKey:["escalations"]}),x.resetQueries({queryKey:["escalationStats"]}),u(-1)},os=()=>{const n=Ua(I);return n&&Ft(n,ae(s,C))||null},cs=n=>{x.resetQueries({queryKey:["escalations"]}),x.resetQueries({queryKey:["escalationStats"]}),n.startsWith("/")?u(n):window.location.assign(n)},ds=async n=>{try{await T.mutateAsync({id:t,resolverPayload:n})}catch(B){if(B instanceof Os&&qs(B.body)){Fe(!0),xe(B.body.violations),me(D.ERRORS);return}throw B}et(t);const m=Dt(I),M=os();if(m){qe({...m,doneDest:M});return}if(M){cs(M);return}he()},Me=(n,m)=>{if(dt){d(),Ue({verb:n,run:m});return}m()},ge=async n=>{Me("submit",()=>ds(n))},pt=async n=>{try{await j.mutateAsync({id:t,durationMinutes:n})}catch{return}if(fe.blocked)return;const m=tt(_,ae(s,C));if(!m.parseError){if(m.errors.length>0){Fe(!0),xe(m.errors),q(!0),be(!0),me(D.ERRORS);return}await ge(m.payload)}};Ce.current=async()=>{var m;const n=(m=b.state)==null?void 0:m.durationMinutes;rt(!0),await pt(typeof n=="number"&&n>0?n:30),rt(!1)},Se.current=()=>{const n=tt(_,ae(s,C));n.parseError||n.errors.length>0||ge(n.payload)};const ft=n=>{n&&Me("escalate",async()=>{await E.mutateAsync({id:t,targetRole:n}),he()})},us=async()=>{Z||await j.mutateAsync({id:t,durationMinutes:30});const n=(z==null?void 0:z.diagnosis)||s.description||"";await T.mutateAsync({id:t,resolverPayload:{_lt:{needsTriage:!0},notes:n}}),he()},ht=()=>{Me("release",async()=>{await j.mutateAsync({id:t,durationMinutes:0}),he()})},xs=()=>{P(!1),Me("cancel",async()=>{await L.mutateAsync(t),et(t),he()})},ms=e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Hs,{onRefresh:()=>y(),isFetching:v,apiPath:`/escalations/${s.id}`,standalone:!0}),e.jsx("button",{onClick:()=>q(n=>(be(!n),!n)),className:"ml-2 text-accent/60 hover:text-accent transition-colors",title:Q?"Hide side panel":"Show side panel",children:Q?e.jsx(_t,{className:"w-5 h-5",strokeWidth:1.5}):e.jsx(Et,{className:"w-5 h-5",strokeWidth:1.5})})]});return e.jsxs("div",{className:"flex-1 min-h-0 min-w-0 flex items-stretch -mt-8 -mr-page-x -mb-16",children:[e.jsxs("div",{className:"flex-1 min-w-0 flex flex-col min-h-0",children:[ze?e.jsxs("div",{className:"relative flex-1 min-h-0 -ml-page-x",children:[e.jsx("div",{className:"absolute top-3 right-3 z-50 flex items-center gap-0.5 bg-surface/90 backdrop-blur-sm rounded-lg px-1.5 py-1 shadow-sm border border-surface-border/40",children:[{onClick:ht,disabled:j.isPending,label:J.release??"Release",hoverClass:"hover:text-accent",icon:e.jsx(ma,{className:"w-4 h-4",strokeWidth:1.5})},...J.cancel===!1?[]:[{onClick:()=>P(!0),disabled:!1,label:J.cancel??"Cancel",hoverClass:"hover:text-status-error",icon:e.jsx(pa,{className:"w-4 h-4",strokeWidth:1.5})}],{onClick:()=>q(n=>(be(!n),!n)),disabled:!1,label:Q?"Hide panel":"Show panel",hoverClass:"hover:text-accent",icon:Q?e.jsx(_t,{className:"w-4 h-4",strokeWidth:1.5}):e.jsx(Et,{className:"w-4 h-4",strokeWidth:1.5})}].map(({onClick:n,disabled:m,label:M,hoverClass:B,icon:te})=>e.jsxs("div",{className:"relative group/tip",children:[e.jsx("button",{onClick:n,disabled:m,className:`text-text-tertiary ${B} transition-colors disabled:opacity-40 disabled:cursor-default p-1.5 rounded-md`,children:te}),e.jsx("span",{className:"pointer-events-none absolute top-full left-1/2 -translate-x-1/2 mt-1.5 px-2 py-0.5 rounded text-2xs bg-surface-sunken text-text-primary whitespace-nowrap opacity-0 group-hover/tip:opacity-100 transition-opacity",children:M})]},M))}),e.jsx(We,{src:Oe(ut.src,s),escalation:s,schema:I,stage:X.CLAIMED,onResolve:ge,onEscalate:ft,submitAttempted:K,fill:!0})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"shrink-0 pt-8 pr-page-x",children:e.jsx(zs,{title:s.description||"Escalation",actions:ms})}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto pr-page-x",children:[e.jsx(_a,{isRoundsExhausted:ss,payloadObj:z,isTerminal:ee,resolverPayload:le,onRetryTriage:us,isRetrying:j.isPending||T.isPending}),e.jsx(Ea,{esc:s,resolverPayload:le,isTerminal:ee,editable:ct,activeView:ue,lookup:C,metadataFormSchema:_e,effectiveSchema:I,json:_,onJsonChange:V,requestTriage:ke,onRequestTriageChange:Be,triageNotes:re,onTriageNotesChange:N,onResolve:ge,onEscalate:ft,onClaim:()=>Ge(30),submitAttempted:K,isCertified:ns,hasAI:mt,onOpenHelp:()=>{q(!0),be(!0),me(D.HELP)},onDisabledClick:()=>Qt(n=>n+1),disabledHint:ls}),e.jsx("div",{className:"h-10"})]})]}),!ze&&e.jsx(ka,{escalationContext:ae(s,C),mode:He,activeView:ue,onActiveViewChange:we,onClaim:ot?pt:Ge,claimPending:j.isPending||ot&&T.isPending,claimNudge:Xt,workflowType:s.workflow_type,json:_,onResolve:ge,resolvePending:T.isPending||T.isSuccess,resolveError:T.error,requestTriage:ke,triageNotes:re,onRelease:ht,releasePending:j.isPending,onCancel:()=>P(!0),assignedTo:s.assigned_to,assignedUntil:s.assigned_until,actingName:o&&Z?o.displayName:null,submitNeedsBadge:dt,onSubmitAttempt:()=>Fe(!0),onValidationErrors:n=>{xe(n),q(!0),be(!0),me(D.ERRORS)},labels:J,submitBlocked:fe.blocked,submitBlockedMessage:fe.message,canManage:i,onReassign:()=>F(!0),onUnassign:()=>R.mutate({ids:[t]}),unassignPending:R.isPending})]}),e.jsx(wa,{esc:s,schema:I,envelope:Ie,payload:z,resolver:is,triage:rs??null,hasAI:mt,claimed:Ae,claimedByMe:Z,isTerminal:ee,isBuilder:de,traceUrl:Ne,open:Q,noGutter:ze,formErrors:Gt,activePanel:Kt,onPanelChange:me}),e.jsx($s,{open:A,onClose:()=>F(!1),selectedCount:1,selectedRoles:s?[s.role]:[],onSubmit:(n,m)=>W.mutate({ids:[t],targetUserId:n,durationMinutes:m,reassign:!0},{onSuccess:()=>F(!1)}),isPending:W.isPending}),e.jsx(Vs,{open:S,onClose:()=>P(!1),onConfirm:xs,isPending:L.isPending,error:L.error,actionLabel:typeof J.cancel=="string"?J.cancel:void 0}),e.jsx(fa,{escalationId:t}),e.jsx(Ya,{open:!!Y,verb:(Y==null?void 0:Y.verb)??"submit",claimantId:s.assigned_to,wrongBadgeName:o&&o.actorId!==s.assigned_to?o.displayName:null,onCancel:()=>Ue(null)}),e.jsx(Ka,{open:!!U||Yt,message:(U==null?void 0:U.message)??((vt=Dt(I))==null?void 0:vt.message)??"Starting…"}),Z&&!ee&&s.assigned_until&&e.jsx(Ra,{open:Zt.expiringSoon&&s.assigned_until!==es,assignedUntil:s.assigned_until,onClose:()=>ts(s.assigned_until??null),onExtend:Ge,isPending:j.isPending})]})}export{kn as EscalationDetailPage};
3
- //# sourceMappingURL=index-CegPUKpc.js.map