@hotmeshio/long-tail 0.24.2 → 0.25.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.
- package/build/api/escalations/accumulate.js +8 -4
- package/build/api/escalations/metadata.js +4 -3
- package/build/api/escalations/related.d.ts +1 -1
- package/build/api/escalations/related.js +28 -18
- package/build/services/escalation/accumulate.d.ts +3 -1
- package/build/services/escalation/facet-sql.js +4 -2
- package/build/services/escalation/index.d.ts +1 -0
- package/build/services/escalation/index.js +4 -1
- package/build/services/escalation/related-extremes.d.ts +17 -0
- package/build/services/escalation/related-extremes.js +65 -0
- package/build/services/escalation/related.d.ts +4 -0
- package/build/services/escalation/related.js +2 -0
- package/build/services/escalation/resolver-validation.js +7 -0
- package/build/services/escalation/roster.d.ts +13 -0
- package/build/services/escalation/roster.js +37 -0
- package/build/services/escalation/submit-guard.d.ts +3 -0
- package/build/services/escalation/submit-guard.js +21 -2
- package/build/services/mcp/server-tools.js +1 -1
- package/build/shared/form-validation/display-only-widgets.d.ts +1 -0
- package/build/shared/form-validation/display-only-widgets.js +1 -0
- package/build/shared/form-validation/index.d.ts +1 -0
- package/build/shared/form-validation/index.js +1 -0
- package/build/shared/form-validation/validate-resolver-payload.d.ts +1 -0
- package/build/shared/form-validation/validate-resolver-payload.js +2 -1
- package/build/shared/form-validation/x-lt-help.d.ts +1 -1
- package/build/shared/form-validation/x-lt-help.js +2 -1
- package/build/shared/form-validation/x-lt-roster.d.ts +92 -0
- package/build/shared/form-validation/x-lt-roster.js +234 -0
- package/build/shared/form-validation/x-lt-show-if.d.ts +8 -0
- package/build/shared/form-validation/x-lt-show-if.js +13 -0
- package/build/shared/form-validation/x-lt-submit-guard.d.ts +14 -1
- package/build/shared/form-validation/x-lt-submit-guard.js +4 -1
- package/build/shared/list-schema/aggregate.d.ts +19 -0
- package/build/shared/list-schema/aggregate.js +66 -0
- package/build/shared/list-schema/index.d.ts +2 -0
- package/build/shared/list-schema/index.js +7 -1
- package/build/shared/list-schema/types.d.ts +15 -2
- package/build/shared/list-schema/types.js +6 -1
- package/build/shared/list-schema/validate.js +28 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/dashboard/dist/assets/{AdminDashboard-B3mkMIOT.js → AdminDashboard-DWVRAu63.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-B3mkMIOT.js.map → AdminDashboard-DWVRAu63.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-CQj2B678.js → AgentConfigPage-Exjtjbvp.js} +6 -6
- package/dashboard/dist/assets/{AgentConfigPage-CQj2B678.js.map → AgentConfigPage-Exjtjbvp.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-CzrD8JJI.js → AgentDetailPage-nDbZo6RB.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-CzrD8JJI.js.map → AgentDetailPage-nDbZo6RB.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-jg2OFwyW.js → AgentsPage-Dsk9iHps.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-jg2OFwyW.js.map → AgentsPage-Dsk9iHps.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-D1mCqj8Z.js +2 -0
- package/dashboard/dist/assets/{AvailableEscalationsPage-IS28XBRe.js.map → AvailableEscalationsPage-D1mCqj8Z.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-DvEJFpwS.js → BotPicker-u5760MWZ.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-DvEJFpwS.js.map → BotPicker-u5760MWZ.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-BoQCi-YC.js → BulkAssignModal-CtISXXmW.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-BoQCi-YC.js.map → BulkAssignModal-CtISXXmW.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-kwlrcb_t.js → CapabilitiesPage-BKIlrQfU.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-kwlrcb_t.js.map → CapabilitiesPage-BKIlrQfU.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-UMIV4KIj.js → CollapsibleSection-DlBVTFqc.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-UMIV4KIj.js.map → CollapsibleSection-DlBVTFqc.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-C5puwMg7.js → ConfirmDeleteModal-Pabkchg_.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-C5puwMg7.js.map → ConfirmDeleteModal-Pabkchg_.js.map} +1 -1
- package/dashboard/dist/assets/{ConnectedAppsPage-drZa65kP.js → ConnectedAppsPage-DG2YZGN3.js} +2 -2
- package/dashboard/dist/assets/{ConnectedAppsPage-drZa65kP.js.map → ConnectedAppsPage-DG2YZGN3.js.map} +1 -1
- package/dashboard/dist/assets/CountdownTimer-5t8S2qMi.js +2 -0
- package/dashboard/dist/assets/CountdownTimer-5t8S2qMi.js.map +1 -0
- package/dashboard/dist/assets/{CredentialsPage-CaFQ6vLb.js → CredentialsPage-CPVbYQow.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-CaFQ6vLb.js.map → CredentialsPage-CPVbYQow.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-Co5j7tzW.js → CronLabel-C7UbTrO-.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-Co5j7tzW.js.map → CronLabel-C7UbTrO-.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-B1Tdfddc.js → DropZone-DCZpORx-.js} +2 -2
- package/dashboard/dist/assets/{DropZone-B1Tdfddc.js.map → DropZone-DCZpORx-.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-WJyE9G0T.js → ElapsedCell-Yz7-LbtE.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-WJyE9G0T.js.map → ElapsedCell-Yz7-LbtE.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-CDFFfX9d.js → EntityTimelinePanel-xgPRdKEq.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-CDFFfX9d.js.map → EntityTimelinePanel-xgPRdKEq.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-CMrUlaKI.js → EscalationListSchemaPage-CqCd-y6B.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-CMrUlaKI.js.map → EscalationListSchemaPage-CqCd-y6B.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-Dx2Lyfrz.js → EscalationSchemaPage-D8YVQNph.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-Dx2Lyfrz.js.map → EscalationSchemaPage-D8YVQNph.js.map} +1 -1
- package/dashboard/dist/assets/EscalationTimeline-D6jrDcBb.js +2 -0
- package/dashboard/dist/assets/{EscalationTimeline-d3nvshOk.js.map → EscalationTimeline-D6jrDcBb.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-DWQieOM9.js → EscalationTitleSelect-CGGT-QTu.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-DWQieOM9.js.map → EscalationTitleSelect-CGGT-QTu.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-BX8Cpi0X.js → EscalationsOverview-B7O4ttP4.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-BX8Cpi0X.js.map → EscalationsOverview-B7O4ttP4.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-D1-ITVXS.js → EventTable-DJniXnhe.js} +2 -2
- package/dashboard/dist/assets/{EventTable-D1-ITVXS.js.map → EventTable-DJniXnhe.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-ABC9ctin.js → FilterBar-f-LEKcHI.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-ABC9ctin.js.map → FilterBar-f-LEKcHI.js.map} +1 -1
- package/dashboard/dist/assets/{FormattedValue-k27T4bG7.js → FormattedValue-CUtv1g3k.js} +2 -2
- package/dashboard/dist/assets/{FormattedValue-k27T4bG7.js.map → FormattedValue-CUtv1g3k.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-DKUErxWc.js → GraphInvokePage-CR0MtYv8.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-DKUErxWc.js.map → GraphInvokePage-CR0MtYv8.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-C6u9dIpR.js → HomePage-HVw7T5ER.js} +2 -2
- package/dashboard/dist/assets/{HomePage-C6u9dIpR.js.map → HomePage-HVw7T5ER.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-gA5rFzkz.js → ListToolbar-CTGK5BXW.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-gA5rFzkz.js.map → ListToolbar-CTGK5BXW.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-BOPo3J_i.js → McpOverview-B2bbKKu2.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BOPo3J_i.js.map → McpOverview-B2bbKKu2.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-BRVVi0Zh.js → McpQueryDetailPage-DgLxwwJy.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-BRVVi0Zh.js.map → McpQueryDetailPage-DgLxwwJy.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-Dmbb6SAc.js → McpQueryPage-CSkczeJP.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-Dmbb6SAc.js.map → McpQueryPage-CSkczeJP.js.map} +1 -1
- package/dashboard/dist/assets/McpRunDetailPage-CrUsDPRD.js +2 -0
- package/dashboard/dist/assets/{McpRunDetailPage-bMXNO-6V.js.map → McpRunDetailPage-CrUsDPRD.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-Bi9AMWja.js → McpRunsPage-twxFdTtJ.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-Bi9AMWja.js.map → McpRunsPage-twxFdTtJ.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-DwM5pNA4.js → NamespacePill-CSZT2fA4.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-DwM5pNA4.js.map → NamespacePill-CSZT2fA4.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-CvR74ZUJ.js → OperationsPage-gOVMrL_a.js} +3 -3
- package/dashboard/dist/assets/{OperationsPage-CvR74ZUJ.js.map → OperationsPage-gOVMrL_a.js.map} +1 -1
- package/dashboard/dist/assets/OperatorDashboard-BoeZIyup.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-DctmZw10.js.map → OperatorDashboard-BoeZIyup.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-CMd3f4bz.js → PageHeader-C4z1ExF7.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-CMd3f4bz.js.map → PageHeader-C4z1ExF7.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-DHj8Mqox.js → PageHeaderWithStats-B_f_Sz_Q.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-DHj8Mqox.js.map → PageHeaderWithStats-B_f_Sz_Q.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-Ubqm2rQH.js → PersonaDetailPage-CDktk1mi.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-Ubqm2rQH.js.map → PersonaDetailPage-CDktk1mi.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-BpFL2rpo.js → PersonasPage-Bs097x07.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-BpFL2rpo.js.map → PersonasPage-Bs097x07.js.map} +1 -1
- package/dashboard/dist/assets/PortalPage-DjfjerpF.js +2 -0
- package/dashboard/dist/assets/{PortalPage-Dfc_Q02R.js.map → PortalPage-DjfjerpF.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-liJspvQh.js → ProcessDetailPage-B30RatjD.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-liJspvQh.js.map → ProcessDetailPage-B30RatjD.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-C3OM5ZUy.js → ProcessesListPage-DrvjzgWT.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-C3OM5ZUy.js.map → ProcessesListPage-DrvjzgWT.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-Bl8Pibyz.js +8 -0
- package/dashboard/dist/assets/ResolverForm-Bl8Pibyz.js.map +1 -0
- package/dashboard/dist/assets/{RoleDetailPage-CrlYCh-R.js → RoleDetailPage-ClYgn-3d.js} +3 -3
- package/dashboard/dist/assets/{RoleDetailPage-CrlYCh-R.js.map → RoleDetailPage-ClYgn-3d.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-Di2CAHuD.js → RolePill-Bw_n7EpR.js} +2 -2
- package/dashboard/dist/assets/{RolePill-Di2CAHuD.js.map → RolePill-Bw_n7EpR.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-BaazL_pt.js → RolesPage-B_3qWsvQ.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-BaazL_pt.js.map → RolesPage-B_3qWsvQ.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-DxuV0fa1.js → RunAsSelector-CbJT50Hp.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-DxuV0fa1.js.map → RunAsSelector-CbJT50Hp.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-C0mvmYTq.js → ScanCodesPage-CIIDuh8w.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-C0mvmYTq.js.map → ScanCodesPage-CIIDuh8w.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CiJgt5dZ.js → ScanSchemeDetailPage-Bd3P3eyh.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-CiJgt5dZ.js.map → ScanSchemeDetailPage-Bd3P3eyh.js.map} +1 -1
- package/dashboard/dist/assets/ScanStationPage-BiO34nov.js +2 -0
- package/dashboard/dist/assets/ScanStationPage-BiO34nov.js.map +1 -0
- package/dashboard/dist/assets/{ScopeBadge-CSItPVOH.js → ScopeBadge-CKgfwTy3.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-CSItPVOH.js.map → ScopeBadge-CKgfwTy3.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CqbjVY6T.js → StickyPagination-BNOuYZ1m.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CqbjVY6T.js.map → StickyPagination-BNOuYZ1m.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-wX3i0aqs.js → StreamMessageDetail-ALVUnfF1.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-wX3i0aqs.js.map → StreamMessageDetail-ALVUnfF1.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-C50PsFoV.js → SwimlaneTimeline-B5b8-xqI.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-C50PsFoV.js.map → SwimlaneTimeline-B5b8-xqI.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-CAgdLN_b.js → TagInput-B6fMAqxd.js} +2 -2
- package/dashboard/dist/assets/{TagInput-CAgdLN_b.js.map → TagInput-B6fMAqxd.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-bbNSv4Ae.js → TaskDetailPage-CoV3WcTA.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-bbNSv4Ae.js.map → TaskDetailPage-CoV3WcTA.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-h0oorVMe.js → TaskQueuePill-BnDp_DE6.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-h0oorVMe.js.map → TaskQueuePill-BnDp_DE6.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-CDWnm_d9.js → TasksListPage-CkMmOYOE.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-CDWnm_d9.js.map → TasksListPage-CkMmOYOE.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-BLjqlfoX.js → TimeAgo-DVkFgECX.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-BLjqlfoX.js.map → TimeAgo-DVkFgECX.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-CnW0ENb5.js → TimestampCell-CfTc6Txy.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-CnW0ENb5.js.map → TimestampCell-CfTc6Txy.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-CQCsVdzD.js → ToolPill-BRZWo4l8.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-CQCsVdzD.js.map → ToolPill-BRZWo4l8.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-DkMgCB-k.js → ToolTestPanel-kvqZqM0A.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-DkMgCB-k.js.map → ToolTestPanel-kvqZqM0A.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-g3pljKKX.js → TopicDetailPage-CjkAAyy8.js} +4 -4
- package/dashboard/dist/assets/{TopicDetailPage-g3pljKKX.js.map → TopicDetailPage-CjkAAyy8.js.map} +1 -1
- package/dashboard/dist/assets/{TopicsPage-CVcCYdy-.js → TopicsPage-CJZnv50y.js} +2 -2
- package/dashboard/dist/assets/{TopicsPage-CVcCYdy-.js.map → TopicsPage-CJZnv50y.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-D6zGIK2i.js → UserName-CPJPZnN1.js} +2 -2
- package/dashboard/dist/assets/{UserName-D6zGIK2i.js.map → UserName-CPJPZnN1.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-46UV5pJd.js +2 -0
- package/dashboard/dist/assets/{WorkflowExecutionPage-B8g81FCJ.js.map → WorkflowExecutionPage-46UV5pJd.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-Dg7BDTyM.js → WorkflowPill-Cly9Ln_3.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-Dg7BDTyM.js.map → WorkflowPill-Cly9Ln_3.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-nxT3bv6W.js → WorkflowsDashboard-DtxYdQbQ.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-nxT3bv6W.js.map → WorkflowsDashboard-DtxYdQbQ.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-grI-KAI2.js → WorkflowsOverview-Cg4LSfck.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-grI-KAI2.js.map → WorkflowsOverview-Cg4LSfck.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-BoZ-hfBE.js → YamlWorkflowDetailPage-Del-RCgi.js} +12 -12
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-BoZ-hfBE.js.map → YamlWorkflowDetailPage-Del-RCgi.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-Bf04rwRv.js → YamlWorkflowsPage-BF6Jtx24.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-Bf04rwRv.js.map → YamlWorkflowsPage-BF6Jtx24.js.map} +1 -1
- package/dashboard/dist/assets/{agents-Dphpdi8l.js → agents-wL-3dMOX.js} +2 -2
- package/dashboard/dist/assets/{agents-Dphpdi8l.js.map → agents-wL-3dMOX.js.map} +1 -1
- package/dashboard/dist/assets/{bots-DIFE298x.js → bots-D72EsztP.js} +2 -2
- package/dashboard/dist/assets/{bots-DIFE298x.js.map → bots-D72EsztP.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-D7Y7LClY.js → capabilities-DXFo6bRb.js} +2 -2
- package/dashboard/dist/assets/{capabilities-D7Y7LClY.js.map → capabilities-DXFo6bRb.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-D1TGcYsS.js → controlplane-gQdOgVtH.js} +2 -2
- package/dashboard/dist/assets/{controlplane-D1TGcYsS.js.map → controlplane-gQdOgVtH.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-CSE5wfWQ.js +2 -0
- package/dashboard/dist/assets/escalation-columns-CSE5wfWQ.js.map +1 -0
- package/dashboard/dist/assets/escalation-items-BIgBWbaw.js +2 -0
- package/dashboard/dist/assets/escalation-items-BIgBWbaw.js.map +1 -0
- package/dashboard/dist/assets/{index-CeCtqujG.js → index-BaCDL5fh.js} +38 -38
- package/dashboard/dist/assets/index-BaCDL5fh.js.map +1 -0
- package/dashboard/dist/assets/{index-Dl_8hbYI.js → index-Btm8FtTQ.js} +2 -2
- package/dashboard/dist/assets/{index-Dl_8hbYI.js.map → index-Btm8FtTQ.js.map} +1 -1
- package/dashboard/dist/assets/index-BvH8T-jb.js +2 -0
- package/dashboard/dist/assets/{index-CxdjT1Yk.js.map → index-BvH8T-jb.js.map} +1 -1
- package/dashboard/dist/assets/{index-HLu98Sqh.js → index-C-QQ5rKF.js} +2 -2
- package/dashboard/dist/assets/{index-HLu98Sqh.js.map → index-C-QQ5rKF.js.map} +1 -1
- package/dashboard/dist/assets/{index-DpKOr311.js → index-C1iuZ4Q5.js} +2 -2
- package/dashboard/dist/assets/{index-DpKOr311.js.map → index-C1iuZ4Q5.js.map} +1 -1
- package/dashboard/dist/assets/{index-ChV7pBjM.js → index-CDxOQ84B.js} +2 -2
- package/dashboard/dist/assets/{index-ChV7pBjM.js.map → index-CDxOQ84B.js.map} +1 -1
- package/dashboard/dist/assets/index-CED9cLE2.js +3 -0
- package/dashboard/dist/assets/index-CED9cLE2.js.map +1 -0
- package/dashboard/dist/assets/index-CnU7Jjz3.css +1 -0
- package/dashboard/dist/assets/{index-DAvi5_2T.js → index-CptTEhWp.js} +2 -2
- package/dashboard/dist/assets/{index-DAvi5_2T.js.map → index-CptTEhWp.js.map} +1 -1
- package/dashboard/dist/assets/{index-ag2pCAPu.js → index-Cu0xdX2t.js} +2 -2
- package/dashboard/dist/assets/{index-ag2pCAPu.js.map → index-Cu0xdX2t.js.map} +1 -1
- package/dashboard/dist/assets/index-D1lfq5iZ.js +13 -0
- package/dashboard/dist/assets/{index-gkxPN7Vx.js.map → index-D1lfq5iZ.js.map} +1 -1
- package/dashboard/dist/assets/{index-Dy1wWu2e.js → index-czgLyfSo.js} +2 -2
- package/dashboard/dist/assets/{index-Dy1wWu2e.js.map → index-czgLyfSo.js.map} +1 -1
- package/dashboard/dist/assets/{index-DN-kX7hL.js → index-h1Useskt.js} +2 -2
- package/dashboard/dist/assets/{index-DN-kX7hL.js.map → index-h1Useskt.js.map} +1 -1
- package/dashboard/dist/assets/{index-BzYcUPdD.js → index-ujGmmwl6.js} +2 -2
- package/dashboard/dist/assets/{index-BzYcUPdD.js.map → index-ujGmmwl6.js.map} +1 -1
- package/dashboard/dist/assets/{knowledge-DnMs-SOJ.js → knowledge-150lsM68.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DnMs-SOJ.js.map → knowledge-150lsM68.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CwW-K3r4.js → mcp-CRtY4v5W.js} +2 -2
- package/dashboard/dist/assets/{mcp-CwW-K3r4.js.map → mcp-CRtY4v5W.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-BZt5e8_Q.js → mcp-query-CDsSMaYq.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-BZt5e8_Q.js.map → mcp-query-CDsSMaYq.js.map} +1 -1
- package/dashboard/dist/assets/{personas-UA-Xn60f.js → personas-C2Wm4ng1.js} +2 -2
- package/dashboard/dist/assets/{personas-UA-Xn60f.js.map → personas-C2Wm4ng1.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-Cu3PARum.js → pipelines-BH0F9-jf.js} +2 -2
- package/dashboard/dist/assets/{pipelines-Cu3PARum.js.map → pipelines-BH0F9-jf.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-BO6h8GJE.js → tasks-BkUVpaOa.js} +2 -2
- package/dashboard/dist/assets/{tasks-BO6h8GJE.js.map → tasks-BkUVpaOa.js.map} +1 -1
- package/dashboard/dist/assets/{topics-CWjCR-17.js → topics-Crl8HKHq.js} +2 -2
- package/dashboard/dist/assets/{topics-CWjCR-17.js.map → topics-Crl8HKHq.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-6t0jx1RB.js → useDebouncedValue-Dk3r5xo-.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-6t0jx1RB.js.map → useDebouncedValue-Dk3r5xo-.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-CqpoQx6D.js → useNamespace-BXuyHKAs.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-CqpoQx6D.js.map → useNamespace-BXuyHKAs.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-hmCQQwzB.js → useYamlActivityEvents-DSlkjQfb.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-hmCQQwzB.js.map → useYamlActivityEvents-DSlkjQfb.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-CeVtUKyP.js → vendor-icons-C_DQEeBy.js} +2 -2
- package/dashboard/dist/assets/{vendor-icons-CeVtUKyP.js.map → vendor-icons-C_DQEeBy.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-ziUdZhKY.js → yaml-workflows-B230v5Za.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-ziUdZhKY.js.map → yaml-workflows-B230v5Za.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/faceted-routing.md +14 -1
- package/docs/hitl/x-lt-embed.md +4 -1
- package/docs/hitl/x-lt-list-schema.md +19 -2
- package/docs/hitl/x-lt-roster.md +112 -0
- package/docs/hitl/x-lt-show-if.md +15 -0
- package/docs/hitl/x-lt-widget.md +1 -0
- package/docs/hitl-guide.md +3 -1
- package/docs/scan-codes.md +4 -0
- package/docs/schema-enforcement.md +5 -0
- package/package.json +2 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-IS28XBRe.js +0 -2
- package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js +0 -2
- package/dashboard/dist/assets/CountdownTimer-LG03dVgR.js.map +0 -1
- package/dashboard/dist/assets/EscalationTimeline-d3nvshOk.js +0 -2
- package/dashboard/dist/assets/McpRunDetailPage-bMXNO-6V.js +0 -2
- package/dashboard/dist/assets/OperatorDashboard-DctmZw10.js +0 -2
- package/dashboard/dist/assets/PortalPage-Dfc_Q02R.js +0 -2
- package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js +0 -8
- package/dashboard/dist/assets/ResolverForm-B1_x8Blv.js.map +0 -1
- package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js +0 -2
- package/dashboard/dist/assets/ScanStationPage-DzGaXc40.js.map +0 -1
- package/dashboard/dist/assets/WorkflowExecutionPage-B8g81FCJ.js +0 -2
- package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js +0 -2
- package/dashboard/dist/assets/escalation-columns-cwZE6xyo.js.map +0 -1
- package/dashboard/dist/assets/index-CeCtqujG.js.map +0 -1
- package/dashboard/dist/assets/index-CniRa65p.js +0 -3
- package/dashboard/dist/assets/index-CniRa65p.js.map +0 -1
- package/dashboard/dist/assets/index-CxdjT1Yk.js +0 -2
- package/dashboard/dist/assets/index-gkxPN7Vx.js +0 -13
- package/dashboard/dist/assets/index-m9A3UYst.css +0 -1
- package/dashboard/dist/assets/validate-BIRn4a6d.js +0 -2
- package/dashboard/dist/assets/validate-BIRn4a6d.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as e,a as m}from"./vendor-query-DvWWuNIB.js";import{b as V,c as $}from"./pipelines-Cu3PARum.js";import{P as n,g as y,D as B,h as F,i as J,c as U,j as H,k as O,J as S,N as W}from"./index-CeCtqujG.js";import{P as k}from"./PageHeader-CMd3f4bz.js";import{S as Y}from"./SegmentedTabs-BpJh4Hwn.js";import{u as z,E as K}from"./EventTable-D1-ITVXS.js";import{L as Q}from"./ListToolbar-gA5rFzkz.js";import{S as X}from"./SwimlaneTimeline-C50PsFoV.js";import{S as q}from"./StatusBadge-DHVwxre2.js";import{C as T}from"./CopyableId-Bn02zYxt.js";import{Q as I,V as G,Y as Z,_ as ee,$ as se,C as te}from"./vendor-icons-CeVtUKyP.js";import{e as ae,f as le}from"./vendor-react-_9U4mKFr.js";import"./FilterBar-ABC9ctin.js";import"./StreamMessageDetail-wX3i0aqs.js";const ne={running:"in_progress",completed:"completed",failed:"failed"};function ie({execution:s,namespace:c,traceUrl:a,headerActions:l,open:r}){const{summary:t}=s,o=[{id:"details",icon:I,label:"Details",content:e.jsxs("dl",{className:"space-y-3.5",children:[e.jsx(n,{label:"Status",children:e.jsx(q,{status:ne[s.status]??s.status})}),e.jsx(n,{label:"Server",children:e.jsx("span",{className:"font-mono",children:c||"—"})}),e.jsx(n,{label:"Tool",children:e.jsx("span",{className:"font-mono",children:s.workflow_type||"—"})}),e.jsx(n,{label:"Workflow ID",children:e.jsx(T,{bare:!0,value:s.workflow_id})}),e.jsx(n,{label:"Started",children:s.start_time?e.jsx(y,{date:s.start_time,format:"datetime"}):e.jsx("span",{className:"text-text-tertiary",children:"--"})}),e.jsx(n,{label:"Completed",children:s.close_time?e.jsx(y,{date:s.close_time,format:"datetime"}):e.jsx("span",{className:"text-text-tertiary",children:"--"})}),e.jsx(n,{label:"Duration",children:e.jsx(B,{ms:s.duration_ms,className:"font-mono"})}),s.trace_id&&e.jsx(n,{label:"Trace",children:e.jsx(T,{bare:!0,value:s.trace_id,href:a?a.replace("{traceId}",s.trace_id):void 0,external:!0})}),e.jsx(n,{label:"Tools",children:t.activities.user}),e.jsx(n,{label:"System",children:t.activities.system}),t.child_workflows.total>0&&e.jsx(n,{label:"Children",children:t.child_workflows.total}),t.timers>0&&e.jsx(n,{label:"Timers",children:t.timers}),t.signals>0&&e.jsx(n,{label:"Signals",children:t.signals})]})}];return e.jsx(F,{open:r,width:384,className:"h-full",children:e.jsx("div",{className:"h-full pl-6",children:e.jsx(J,{views:o,activeId:"details",onViewChange:()=>{},headerActions:l,stickyClassName:"h-full min-h-0",labelInline:!0})})})}const re=["details","timeline","events"],_="lt:mcp-run-detail:tab";function oe({isRunning:s,onTerminate:c}){const[a,l]=m.useState(!1),r=m.useRef(null);return m.useEffect(()=>{if(!a)return;const t=o=>{r.current&&!r.current.contains(o.target)&&l(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[a]),s?e.jsxs("div",{className:"relative",ref:r,children:[e.jsxs("button",{onClick:()=>l(!a),className:"flex items-center gap-0.5 pl-2 pr-1 py-1 rounded-md text-2xs font-medium text-accent hover:text-accent-hover hover:bg-surface-hover transition-colors",title:"Actions",children:["Actions",e.jsx(te,{className:`w-3 h-3 transition-transform ${a?"rotate-180":""}`})]}),a&&e.jsx("div",{className:"absolute right-0 mt-1 w-44 bg-surface-raised border border-surface-border rounded-md shadow-lg z-[100]",children:e.jsx("button",{onClick:()=>{c(),l(!1)},className:"block w-full text-left px-4 py-2 text-xs text-status-error hover:bg-surface-hover",children:"Terminate"})})]}):null}function ye(){var g,w;const{jobId:s}=ae(),[c]=le(),a=c.get("namespace")||"",{data:l,isLoading:r,error:t,refetch:o,isFetching:E}=V(s,a),x=$(),{data:p}=U(),{isCollapsed:P,toggle:C}=z("mcp-run-detail"),h=!P("side-panel"),A=((g=p==null?void 0:p.telemetry)==null?void 0:g.traceUrl)??null,[d,D]=m.useState(()=>{try{const i=localStorage.getItem(_);return i&&re.includes(i)?i:"details"}catch{return"details"}}),R=i=>{D(i);try{localStorage.setItem(_,i)}catch{}},b=H("DETAIL"),L=m.useCallback(i=>{!s||i.workflowId!==s||b([["mcpRunExecution",s]])},[s,b]);if(O(`${W}.system.>`,L),r)return e.jsxs("div",{className:"animate-pulse space-y-4",children:[e.jsx("div",{className:"h-8 bg-surface-sunken rounded w-64"}),e.jsx("div",{className:"h-60 bg-surface-sunken rounded"})]});if(t||!l)return e.jsxs("div",{children:[e.jsx(k,{title:"Pipeline Execution"}),e.jsxs("div",{className:"mt-4 text-center py-8",children:[e.jsx("p",{className:"text-sm text-text-primary mb-1",children:(w=t==null?void 0:t.message)!=null&&w.includes("expired")?"Execution data is no longer available":"Unable to load execution"}),e.jsx("p",{className:"text-xs text-text-tertiary",children:(t==null?void 0:t.message)??"The run could not be resolved."})]})]});const{events:f}=l,j=f.find(i=>{var N;return i.category==="activity"&&((N=i.attributes.kind)==null?void 0:N.includes("completed"))}),M=(j==null?void 0:j.attributes.result)??null,u=l.result,v=(u==null?void 0:u.data)??u??null;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:[e.jsxs("div",{className:"shrink-0 pt-8 pr-page-x",children:[e.jsx(k,{title:"Pipeline Execution",actions:e.jsx("button",{onClick:()=>C("side-panel"),className:"text-accent/60 hover:text-accent transition-colors",title:h?"Hide side panel":"Show side panel",children:h?e.jsx(G,{className:"w-5 h-5",strokeWidth:1.5}):e.jsx(Z,{className:"w-5 h-5",strokeWidth:1.5})})}),x.error&&e.jsxs("p",{className:"text-xs text-status-error py-2",children:["Interrupt failed: ",x.error.message]}),e.jsx("div",{className:"mt-2",children:e.jsx(Y,{"aria-label":"Execution section",active:d,onChange:R,tabs:[{key:"details",label:"Details",icon:e.jsx(I,{className:"w-3.5 h-3.5"})},{key:"timeline",label:"Execution Timeline",icon:e.jsx(ee,{className:"w-3.5 h-3.5"})},{key:"events",label:"Events",icon:e.jsx(se,{className:"w-3.5 h-3.5"})}]})})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto pr-page-x pt-6 pb-16 animate-page-in",children:[d==="details"&&e.jsx("div",{className:"@container",children:e.jsxs("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-4",children:[e.jsx(S,{data:M??{},label:"Input"}),v!==null&&e.jsx(S,{data:v,label:"Result"})]})}),d==="timeline"&&e.jsx(X,{events:f,outline:!0,jid:s,appId:a||"durable"}),d==="events"&&e.jsx(K,{events:f,jid:s,appId:a||"durable"})]},d)]}),e.jsx(ie,{execution:l,namespace:a,traceUrl:A,headerActions:e.jsxs(e.Fragment,{children:[e.jsx(Q,{onRefresh:()=>o(),isFetching:E,apiPath:`/pipelines/${s}/execution?app_id=${a}`}),e.jsx(oe,{isRunning:l.status==="running",onTerminate:()=>{confirm("Interrupt this pipeline execution? This cannot be undone.")&&x.mutate({jobId:l.workflow_id,topic:l.workflow_type,appId:a},{onSuccess:()=>o()})}})]}),open:h})]})}export{ye as McpRunDetailPage};
|
|
2
|
-
//# sourceMappingURL=McpRunDetailPage-bMXNO-6V.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as f,j as e}from"./vendor-query-DvWWuNIB.js";import{$ as Z,z as H,a7 as J,Y as X,_ as ee,Z as se,a0 as te,I as ae,K as oe,L as ie,a8 as re,a9 as ne}from"./index-CeCtqujG.js";import{u as le}from"./useFilterParams-DBRw1Hcv.js";import{u as ce}from"./useDebouncedValue-6t0jx1RB.js";import{b as me}from"./api-path-u2Jf9QXS.js";import{i as pe}from"./task-queues-7-sHKPsN.js";import{D as ue}from"./DataTable-FjFhx0SE.js";import{S as de}from"./StickyPagination-CqbjVY6T.js";import{R as he,a as ge}from"./RowActions-Bdd7z4eB.js";import{E as fe,a as xe,T as be,b as we}from"./escalation-columns-cwZE6xyo.js";import{E as ve}from"./EscalationTitleSelect-DWQieOM9.js";import{L as ye}from"./ListToolbar-gA5rFzkz.js";import{x as Pe,ak as Se,al as je,P as Ce,ao as Re}from"./vendor-icons-CeVtUKyP.js";import{u as ke,a as Ee,f as Le}from"./vendor-react-_9U4mKFr.js";import"./EmptyState-DgC_6njU.js";import"./useContainerWidth-DSLp1gEm.js";import"./validate-BIRn4a6d.js";import"./StatusBadge-DHVwxre2.js";import"./FormattedValue-k27T4bG7.js";import"./UserName-D6zGIK2i.js";import"./CountdownTimer-LG03dVgR.js";import"./EntityTimelinePanel-CDFFfX9d.js";import"./FilterBar-ABC9ctin.js";import"./PriorityBadge-r33mpDju.js";import"./RolePill-Di2CAHuD.js";import"./WorkflowPill-Dg7BDTyM.js";function ts(){var T,V;const z=ke(),{user:i,isSuperAdmin:F,hasRoleType:_}=Z(),{filters:o,setFilter:v,pagination:t,sort:x,setSort:A}=le({filters:{role:"",type:"",priority:"",search:""}});H({role:o.role||null,verbs:["claimed","resolved","updated"]});const O=ce(o.search),M=J(),{data:b}=X(),{data:w}=ee(),{data:n}=se(),y=F||_("admin"),P=f.useMemo(()=>new Set(((i==null?void 0:i.roles)??[]).map(s=>s.role)),[i]),I=f.useMemo(()=>{const s=(n==null?void 0:n.roles)??[];return(y?s:s.filter(a=>P.has(a.role)&&!pe(a.role))).map(a=>({value:a.role,label:te(a)})).sort((a,W)=>a.label.localeCompare(W.label))},[n,y,P]),l=Ee(),{data:c}=ae(),S=oe(),U=f.useCallback(()=>{var a;const s=window.prompt("Pin label:");if(!(s!=null&&s.trim()))return;const g=((a=c==null?void 0:c.preferences)==null?void 0:a.pinnedViews)??[];S.mutate({pinnedViews:[...g,{id:ie(),label:s.trim(),url:l.pathname+l.search,badge:!0}]})},[l.pathname,l.search,c,S]),[q,j]=Le(),C=q.get("view"),$=f.useCallback(s=>{j(g=>{const a=new URLSearchParams(g);return s?a.set("view",s):a.delete("view"),a},{replace:!0})},[j]),m=o.role||null,R=re(m??"",void 0,!!m),p=((T=R.data)==null?void 0:T.list_schema)??null,k=!!m&&!!p&&!!p["x-lt-layout"]&&p["x-lt-layout"]!=="table",u=k&&(C?C==="rich":!0),E={assigned_to:i==null?void 0:i.userId,status:"pending",role:o.role||void 0,type:o.type||void 0,priority:o.priority?parseInt(o.priority):void 0,search:O||void 0,sort_by:x.sort_by||"created_at",order:x.order||"desc"},{data:r,isLoading:B,error:d,refetch:D,isFetching:G}=ne({...E,limit:t.pageSize,offset:t.offset}),L=(r==null?void 0:r.escalations)??[],h=(r==null?void 0:r.total)??0,Q=me("/escalations",{...E,limit:t.pageSize,offset:t.offset}),Y={key:"actions",label:"",render:s=>e.jsx(he,{children:e.jsx(ge,{icon:Re,title:"Release escalation",onClick:()=>M.mutate(s.id),alwaysVisible:!0,colorClass:"text-status-warning/40 hover:text-status-warning"})}),className:"w-16 text-right"},K=[be,...we,Y],N=s=>z(`/escalations/detail/${s.id}`,{state:{from:"/escalations/queue"}});return e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-10 min-w-0",children:[e.jsx(ve,{role:o.role,options:I,onChange:s=>v("role",s),emptyLabel:"My Escalations"}),e.jsx("button",{onClick:()=>{window.location.hash="#docs:dashboard.md:all-escalations"},className:"text-text-quaternary hover:text-accent transition-colors mt-1 shrink-0",title:"Open docs for this page",children:e.jsx(Pe,{className:"w-4 h-4",strokeWidth:1.5})})]}),e.jsx(fe,{filters:o,setFilter:v,roles:(b==null?void 0:b.roles)??[],types:(w==null?void 0:w.types)??[],actions:e.jsxs(e.Fragment,{children:[e.jsx(ye,{onRefresh:()=>D(),isFetching:G,apiPath:Q}),k&&e.jsx("button",{onClick:()=>$(u?"table":"rich"),className:"ml-2 inline-flex h-7 w-7 items-center justify-center rounded icon-link hover:bg-surface-hover",title:u?"Table view":"Rich view",children:u?e.jsx(Se,{className:"w-4 h-4"}):e.jsx(je,{className:"w-4 h-4"})}),e.jsx("button",{onClick:U,className:"ml-2 inline-flex h-7 w-7 items-center justify-center rounded icon-link hover:bg-surface-hover",title:"Pin this view — save the current filters to your Pinned section","data-testid":"pin-current-view",children:e.jsx(Ce,{className:"w-4 h-4"})})]})}),d&&e.jsx("div",{className:"mb-4 px-4 py-3 rounded-md bg-status-error/10 border border-status-error/20 text-xs text-status-error",children:d.message==="Session expired"?"Your session has expired. Please log in again.":`Failed to load escalations: ${d.message}`}),u?e.jsx(xe,{role:m,listSchema:p,listSchemaVersion:((V=R.data)==null?void 0:V.version)??null,activeEscalations:L,onRowClick:N,forceViewAction:!0,total:h,page:t.page,totalPages:t.totalPages(h),pageSize:t.pageSize,onPageChange:t.setPage,onPageSizeChange:t.setPageSize}):e.jsxs(e.Fragment,{children:[e.jsx(ue,{columns:K,data:L,layout:"fixed",keyFn:s=>s.id,onRowClick:N,isLoading:B,emptyMessage:d?"Unable to load data":"No assigned escalations",sort:x,onSort:A}),e.jsx(de,{page:t.page,totalPages:t.totalPages(h),onPageChange:t.setPage,total:h,pageSize:t.pageSize,onPageSizeChange:t.setPageSize})]})]})}export{ts as OperatorDashboard};
|
|
2
|
-
//# sourceMappingURL=OperatorDashboard-DctmZw10.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as f,j as e}from"./vendor-query-DvWWuNIB.js";import{aY as w,ba as R,bk as N,bl as I,a3 as F,bm as v,a6 as j,Z as _,w as O,bn as A,aW as k,j as M,b0 as $,a0 as V}from"./index-CeCtqujG.js";import{u as W}from"./useContainerWidth-DSLp1gEm.js";import{u as T,E as q,a as z,b as B}from"./EscalationTimeline-d3nvshOk.js";import{a as K}from"./escalation-columns-cwZE6xyo.js";import{P as Y,ak as G,al as H,am as U,aA as D,L as S}from"./vendor-icons-CeVtUKyP.js";import{u as Q,L as y,e as X}from"./vendor-react-_9U4mKFr.js";import"./validate-BIRn4a6d.js";import"./StatusBadge-DHVwxre2.js";import"./DataTable-FjFhx0SE.js";import"./EmptyState-DgC_6njU.js";import"./UserName-D6zGIK2i.js";import"./FormattedValue-k27T4bG7.js";import"./StickyPagination-CqbjVY6T.js";import"./CountdownTimer-LG03dVgR.js";import"./EntityTimelinePanel-CDFFfX9d.js";import"./FilterBar-ABC9ctin.js";import"./PriorityBadge-r33mpDju.js";import"./RolePill-Di2CAHuD.js";import"./WorkflowPill-Dg7BDTyM.js";const E="system.escalation.",L=[["escalations"]];function Z(t,i){const l=new Set;let c=!1;for(const{url:d}of t){const s=w(i(d));if(!s)continue;const a=R(s);a?l.add(a):c=!0}if(c||l.size===0)return{patterns:c?[N({})]:[],keysFor:()=>L};const r=new Map([...l].map(d=>[I(d),d]));return{patterns:[...l].sort().map(d=>N({role:d})),keysFor(d){const s=d.startsWith(E)?d.slice(E.length).split(".")[0]:"",a=r.get(s);return a?[["escalations",{role:a}],["escalations","available",{role:a}],["escalations",{roles:[a]}],["escalations","available",{roles:[a]}],["escalations","related",a],["escalations","related-rows",a]]:L}}}const J=25,ee=15e3,te={statusFilter:"",facets:{},view:null},se={"--lt-sticky-top":"0px"};function ae({pin:t,url:i,from:l}){const c=Q(),r=f.useMemo(()=>w(i),[i]),[p,d]=f.useState(null),[s,a]=f.useState(void 0),m=s??(r==null?void 0:r.facets.orderBy),o=f.useMemo(()=>r?m===r.facets.orderBy?r:{...r,facets:{...r.facets,orderBy:m}}:null,[r,m]),n=T(o??te,{limit:J,offset:0,staleTime:ee,enabled:o!==null}),h=o?F(p??o.view,n.hasRichView):null,b=f.useMemo(()=>Object.keys((o==null?void 0:o.facets.facets)??{}),[o]),g=x=>c(`/escalations/detail/${x.id}`,{state:{from:l}}),u=Math.max(0,n.total-n.escalations.length);return e.jsxs("section",{className:"min-h-0 flex flex-col overflow-hidden border border-surface-border bg-surface-sunken rounded-[var(--lt-radius-section)]",style:se,"data-testid":"portal-panel",children:[e.jsxs("header",{className:"flex items-center justify-between gap-2 px-4 py-2.5 shrink-0 border-b border-surface-border bg-surface-hover",children:[e.jsxs("div",{className:"flex items-center gap-2 min-w-0",children:[e.jsx(Y,{className:"w-3.5 h-3.5 shrink-0 text-accent/60",strokeWidth:1.5}),e.jsx("h2",{className:"section-h2 truncate",title:t.label,children:t.label}),o&&n.total>0&&e.jsx("span",{className:"text-2xs tabular-nums text-text-tertiary","data-testid":"portal-panel-count",children:v(n.total)})]}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[o&&h!==j.TIMELINE&&n.hasRichView&&e.jsx("div",{role:"radiogroup","aria-label":"Panel view",className:"flex items-center rounded overflow-hidden border border-surface-border",children:[{key:j.TABLE,title:"Table view",Icon:G},{key:j.RICH,title:"Rich view",Icon:H}].map(({key:x,title:C,Icon:P})=>e.jsx("button",{type:"button",role:"radio","aria-checked":h===x,onClick:()=>d(x),className:`px-1.5 py-1 transition-colors ${h===x?"bg-accent text-text-inverse":"icon-link hover:bg-surface-raised"}`,title:C,children:e.jsx(P,{className:"w-3.5 h-3.5"})},x))}),o&&e.jsx(q,{orderBy:m,onChange:a}),o&&e.jsx("button",{type:"button",onClick:n.refetch,disabled:n.isFetching,className:"inline-flex h-7 w-7 items-center justify-center rounded icon-link hover:bg-surface-hover disabled:opacity-50",title:"Refresh",children:e.jsx(U,{className:`w-3.5 h-3.5 ${n.isFetching?"animate-spin":""}`})}),e.jsx(y,{to:i,className:"inline-flex h-7 w-7 items-center justify-center rounded icon-link hover:bg-surface-hover",title:"Open the full view","data-testid":"portal-panel-open",children:e.jsx(D,{className:"w-3.5 h-3.5"})})]})]}),e.jsxs("div",{className:"flex-1 min-h-0 overflow-y-auto @container px-4 py-3",children:[o?n.error?e.jsxs("p",{className:"py-6 text-center text-xs text-status-error",role:"alert",children:["Failed to load: ",n.error.message]}):h===j.TIMELINE?e.jsx(z,{escalations:n.escalations,highlightKeys:b,onRowClick:g,total:n.total,page:1,totalPages:1,onPageChange:()=>{}}):h===j.RICH?e.jsx(K,{role:n.singleRole,listSchema:n.listSchema,listSchemaVersion:n.listSchemaVersion,activeEscalations:n.escalations,groups:n.groups,onRowClick:g,onOpenGroup:x=>c(x)}):e.jsx(B,{escalations:n.escalations,highlightKeys:b,onRowClick:g,isLoading:n.isLoading,layout:o.layout}):e.jsxs("p",{className:"py-6 text-center text-xs text-text-quaternary",children:[e.jsx(y,{to:i,className:"text-accent hover:underline",children:t.label})," opens as its own page."]}),u>0&&e.jsxs(y,{to:i,className:"block pt-3 pb-1 text-2xs text-accent hover:underline","data-testid":"portal-panel-more",children:[v(u)," more in the full view"]})]})]})}const ne=54;function re(){if(typeof document>"u")return 16;const t=parseFloat(getComputedStyle(document.documentElement).fontSize);return Number.isFinite(t)&&t>0?t:16}function le({rows:t,resolveUrl:i,from:l}){const[c,r]=W(),p=r!==null&&r<ne*re(),d=(s,a)=>e.jsx(ae,{pin:s,url:i(s.url),from:l},a);return p?e.jsx("div",{ref:c,className:"flex-1 min-h-0 overflow-y-auto grid grid-cols-1 gap-5 auto-rows-[minmax(18rem,auto)]","data-testid":"portal-grid","data-stacked":"true",children:t.flatMap((s,a)=>s.map((m,o)=>d(m,`${a}-${o}`)))}):e.jsx("div",{ref:c,className:"flex-1 min-h-0 grid gap-5",style:{gridTemplateRows:`repeat(${t.length}, minmax(0, 1fr))`},"data-testid":"portal-grid",children:t.map((s,a)=>e.jsx("div",{className:"min-h-0 grid gap-5",style:{gridTemplateColumns:`repeat(${s.length}, minmax(0, 1fr))`},"data-testid":"portal-row",children:s.map((m,o)=>d(m,`${a}-${o}`))},a))})}const oe={statusFilter:"",facets:{},view:null},ie=15e3;function ce({count:t,url:i}){const l=f.useMemo(()=>w(i),[i]),c=T(l??oe,{limit:1,offset:0,staleTime:ie,enabled:l!==null}),r=l?c.isLoading&&c.total===0?null:c.total:null;return e.jsxs(y,{to:i,className:"block min-w-0 border border-surface-border bg-surface-sunken rounded-[var(--lt-radius-section)] px-4 py-3 hover:bg-surface-hover transition-colors",title:`Open ${t.label}`,"data-testid":"portal-count",children:[e.jsx("p",{className:"text-2xs uppercase tracking-widest text-text-tertiary truncate",children:t.label}),e.jsx("p",{className:"mt-1 text-3xl font-light leading-none text-text-primary","data-testid":"portal-count-value",children:r===null?e.jsx("span",{className:"text-text-quaternary",children:"—"}):v(r)}),t.blurb&&e.jsx("p",{className:"mt-1.5 text-xs text-text-secondary leading-snug",children:t.blurb})]})}function de({counts:t,resolveUrl:i}){return t.length===0?null:e.jsx("div",{className:"grid gap-4 shrink-0 mb-4",style:{gridTemplateColumns:"repeat(auto-fit, minmax(10rem, 1fr))"},"data-testid":"portal-counts",children:t.map((l,c)=>e.jsx(ce,{count:l,url:i(l.url)},`${l.label}-${c}`))})}function me({text:t}){return e.jsxs("div",{className:"flex-1 flex flex-col items-center justify-center py-10 text-center",children:[e.jsx(S,{className:"w-6 h-6 text-text-quaternary/50 mb-2",strokeWidth:1}),e.jsx("p",{className:"text-xs text-text-quaternary",children:t})]})}function Ie(){const{role:t="",portal:i}=X(),{data:l,isFetched:c}=_(),{resolveUrl:r}=O(),p=l==null?void 0:l.roles.find(u=>u.role===t),d=A(p),s=i?d.find(u=>u.key===i):d[0],a=(s==null?void 0:s.rows)??null,m=(s==null?void 0:s.counts)??[],o=s?k(t,s.key):k(t),n=f.useMemo(()=>Z(a?[...a.flat(),...m]:[],r),[a,m,r]),h=M("LIST");$(n.patterns,u=>{h(n.keysFor(u.type))});const b=a?a.reduce((u,x)=>u+x.length,0):0,g=c?d.length===0?"This role declares no portal yet. Compose one under Admin, Roles, Portal.":s?null:"This role has no portal by that name.":null;return e.jsxs("div",{className:"flex-1 min-h-0 flex flex-col -mt-[calc(2rem-var(--lt-space-page-x))] -mb-[calc(4rem-var(--lt-space-page-x))]",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-3 shrink-0 text-2xs uppercase tracking-widest text-text-tertiary",children:[e.jsx(S,{className:"w-3 h-3 text-accent/60 shrink-0",strokeWidth:1.5}),e.jsx("h1",{className:"truncate font-semibold",title:t,children:V(p??{role:t})}),s&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-text-quaternary",children:"·"}),e.jsx("span",{className:"truncate","data-testid":"portal-title",children:s.label})]}),b>0&&e.jsxs("span",{className:"text-text-quaternary normal-case tracking-normal",children:[b," ",b===1?"view":"views"]})]}),c?g?e.jsx(me,{text:g}):e.jsxs(e.Fragment,{children:[e.jsx(de,{counts:m,resolveUrl:r}),e.jsx(le,{rows:a,resolveUrl:r,from:o})]}):null]})}export{Ie as PortalPage};
|
|
2
|
-
//# sourceMappingURL=PortalPage-Dfc_Q02R.js.map
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{a as g,j as n}from"./vendor-query-DvWWuNIB.js";import{ai as at,aj as Zt,ab as Qt,aR as Oe,aS as te,aA as xt,aT as Te,Z as Re,aw as _e,aU as Le,aV as Se,m as Fe,p as Me,U as $e,aW as Pe,aX as De,z as We,aY as Ue,aZ as qe,aM as Ge,a_ as Je,a$ as He,b0 as Ve,S as Be,b1 as Xe,b2 as Ye,az as ze,K as Ke,A as Ze,b as Qe,b3 as tn,a as en,b4 as nn,b5 as rn,b6 as sn,af as on,am as an,b7 as ln,b8 as cn,b9 as dn,ba as un,bb as xn,bc as pn,bd as fn,be as mn,a2 as gn,M as bn,bf as yn,bg as hn,k as jn,bh as Nn,bi as vn,a1 as kn,aL as wn,bj as An,bk as En,bl as In,G as Cn,bm as On,bn as Tn,bo as Rn,bp as _n,bq as Ln,br as Sn,q as Fn,a6 as Mn,bs as $n,ax as Pn,bt as Dn,bu as Wn,bv as Un,bw as qn,bx as Gn,aq as Jn,by as Hn,f as Vn,aC as Bn,bz as Xn,bA as Yn,bB as zn,an as ee,_ as Kn,W as Zn,bC as Qn,a5 as ne,X as tr}from"./vendor-icons-CeVtUKyP.js";import{m as re,g as ft,H as er,e as nr,a as B,r as mt,s as rr,b as sr,c as se}from"./validate-BIRn4a6d.js";import{ah as Z,aq as ir,a$ as gt,$ as or,a9 as ar,s as lr,b0 as cr,m as dr,J as ur,b1 as xr,O as pr,b2 as fr,aw as mr,b3 as gr,aZ as br,i as yr,M as ie,az as hr,aA as jr,aB as Nr,b4 as vr}from"./index-CeCtqujG.js";import{L as lt}from"./vendor-react-_9U4mKFr.js";import{S as kr}from"./StatusBadge-DHVwxre2.js";import{E as wr}from"./constants-CeBBTzf5.js";import{V as Ar}from"./WorkflowPill-Dg7BDTyM.js";const oe=g.createContext(null),ji=oe.Provider;function Er(t){const e=g.useContext(oe);return e&&e.field===t?e:null}function ae({notice:t}){return t?t.error?n.jsx("p",{role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]","data-testid":"field-scan-notice",children:t.error},t.at):n.jsx("p",{role:"status",className:"text-2xs text-status-success mt-1","data-testid":"field-scan-notice",children:t.message??"Scanned"},t.at):null}const Ir={SCHEMA_VALIDATION:"schema_validation"};function Cr(t){return typeof t=="object"&&t!==null&&t.code===Ir.SCHEMA_VALIDATION&&Array.isArray(t.violations)}function Tt(t,e={}){const r=re(e,t),s={_form_schema:t};for(const[i,o]of Object.entries(t.properties??{})){const a=o.type==="object"?{}:"";s[i]=r[i]??o.default??a}return JSON.stringify(s,null,2)}function G(t,e){const r=e==null?void 0:e.title;if(typeof r=="string"&&r.trim().length>0)return r.trim();const s=t.split(/[_-]+/).filter(Boolean);return s.length<=1?t:s.map(i=>Or(i)?i:i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Or(t){return t.length>1&&t===t.toUpperCase()&&/[A-Z]/.test(t)}function le({errors:t,schema:e}){const r=s=>{const i=document.querySelector(`[data-field-key="${s}"]`);i&&(i.scrollIntoView({behavior:"smooth",block:"center"}),i.focus({preventScroll:!0}))};return t.length===0?n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No errors to display."}):n.jsxs("div",{className:"space-y-1",role:"alert","aria-live":"polite",children:[n.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-wider text-status-error mb-4",children:[t.length," ",t.length===1?"issue":"issues"," to resolve"]}),n.jsx("div",{className:"space-y-1.5",children:t.map(({field:s,message:i})=>{var o;return n.jsxs("button",{onClick:()=>r(s),className:"w-full text-left flex items-start gap-3 px-3 py-2.5 rounded hover:bg-status-error/5 transition-colors group",children:[n.jsx(at,{className:"w-3.5 h-3.5 mt-0.5 shrink-0 text-status-error/60 group-hover:text-status-error transition-colors"}),n.jsxs("div",{children:[n.jsx("p",{className:"text-2xs font-semibold text-text-primary leading-snug",children:G(s,(o=e==null?void 0:e.properties)==null?void 0:o[s])}),n.jsx("p",{className:"text-2xs text-text-tertiary group-hover:text-text-secondary transition-colors leading-snug mt-0.5",children:i})]})]},s)})}),n.jsx("p",{className:"text-2xs text-text-quaternary mt-4 px-3",children:"Click an issue to scroll to and focus the field."})]})}const Tr=/\{\{\s*([^{}]+?)\s*\}\}/g;function st(t){return typeof t=="string"&&/\{\{[^{}]+\}\}/.test(t)}function z(t,e){if(!e)return;const r=t.indexOf("."),s=e[r===-1?t:t.slice(0,r)];if(r===-1)return s;if(!(s===null||typeof s!="object"))return ft(s,t.slice(r+1))}function bt(t,e){let r=!1;const s=t.replace(Tr,(i,o)=>{const a=z(o,e);return typeof a=="string"&&a.trim().length>0?a:typeof a=="number"&&Number.isFinite(a)?String(a):(r=!0,"")});return r?null:s}const Rr="x-lt-scan",_r="x-lt-scan-submit",Rt="x-lt-order",Lr="Expected {{expected}}";function X(t){const e=t==null?void 0:t[Rr];if(!e||typeof e!="object"||Array.isArray(e))return null;const r=e,s=Array.isArray(r.schemes)?r.schemes.filter(o=>Number.isInteger(o)):[];if(s.length===0)return null;const i=Array.isArray(r.expect)?r.expect.filter(o=>typeof o=="string"):void 0;return{schemes:s,value:r.value==="code"?"code":"target",...i!=null&&i.length?{expect:i}:{},expectError:typeof r["expect-error"]=="string"?r["expect-error"]:Lr,multiplicity:r.multiplicity==="count"?"count":"once",...typeof r.prompt=="string"&&r.prompt.trim()?{prompt:r.prompt}:{}}}function Sr(t,e){if(t===e)return!0;const r=/^[0-9]{8,14}$/;return r.test(t)&&r.test(e)&&t.padStart(14,"0")===e.padStart(14,"0")}function ce(t,e){if(!t.expect)return null;const r=[];for(const s of t.expect){const i=z(s,e),o=Array.isArray(i)?i:[i];for(const a of o)typeof a=="string"&&a?r.push(a):typeof a=="number"&&r.push(String(a))}return r}function Fr(t,e){return t.expectError.replace(/\{\{\s*expected\s*\}\}/g,[...new Set(e)].join(", ")||"nothing")}function de(t,e,r){const s=X(e);if(!s)return;const i=ce(s,r);if(i===null)return;const o=Array.isArray(t)?t:t==null||t===""?[]:[t],a=s.multiplicity==="count"?[...i]:[...new Set(i)];for(const l of o){const c=a.findIndex(u=>Sr(String(l),u));if(c===-1)return Fr(s,i);a.splice(c,1)}}function Mr(t,e){const r=X(t);if(r){const i=ce(r,e);if(i!==null)return r.multiplicity==="count"?i.length:new Set(i).size}const s=t==null?void 0:t.maxItems;return typeof s=="number"?s:null}function Ni(t,e,r,s){const i=X(r);if(!i)return{ok:!1,error:"This field takes no scans"};const o=i.value==="code"?e.code:e.target,a=r.type==="array",l=a?[...Array.isArray(t)?t:[],o]:o,c=de(l,r,s);if(c)return{ok:!1,error:c};const u=r.maxItems;return a&&typeof u=="number"&&l.length>u?{ok:!1,error:`At most ${u}`}:{ok:!0,value:l}}function $r(t,e){if(e.type==="array"){const r=e.maxItems;return typeof r!="number"||!Array.isArray(t)||t.length<r}return t==null||t===""}function vi(t,e,r,s){const i=(t==null?void 0:t.properties)??{},o=Array.isArray(t==null?void 0:t[Rt])?t[Rt]:[],l=[...o.filter(c=>c in i),...Object.keys(i).filter(c=>!o.includes(c))].filter(c=>{var u;return(u=X(i[c]))==null?void 0:u.schemes.includes(r)});return l.length===0?null:s&&l.includes(s)?s:l.find(c=>$r(e[c],i[c]))??l[0]}function ki(t){return(t==null?void 0:t[_r])===!0}function wi(t,e){const r=(t==null?void 0:t.properties)??{},s=new Set((t==null?void 0:t.required)??[]),i=Object.keys(r).filter(o=>X(r[o])&&s.has(o));return i.length===0?!1:i.every(o=>{const a=e[o];if(Array.isArray(a)){const l=r[o].minItems;return a.length>=(typeof l=="number"?l:1)}return a!=null&&a!==""})}const ue="x-lt-options";function _t(t){return typeof t=="string"||typeof t=="boolean"||typeof t=="number"&&Number.isFinite(t)}function Pr(t){return Array.isArray(t)&&t.length>0&&!t.some(e=>typeof e=="string")}function Lt(t){if(_t(t))return{value:t,label:String(t)};if(t&&typeof t=="object"&&!Array.isArray(t)){const e=t,r=e.value!==void 0?e.value:e.id;if(_t(r)&&typeof e.label=="string"&&e.label.length>0)return{value:r,label:e.label}}return null}function yt(t,e){if(!t)return;const r=t.enum;if(Array.isArray(r)&&r.length>0)return r.map(a=>({value:a,label:String(a)}));const s=t[ue];if(Pr(s)){const a=s.map(Lt).filter(l=>l!==null);return a.length>0?a:void 0}const i=(typeof s=="string"?[s]:Array.isArray(s)?s:[]).filter(a=>typeof a=="string"&&a.length>0);if(i.length===0)return;const o=i.some(st)?[]:void 0;for(const a of i){let l=a;if(st(a)){const d=bt(a,e);if(d===null)continue;l=d}const c=z(l,e);if(!Array.isArray(c))continue;const u=c.map(Lt).filter(d=>d!==null);if(u.length>0)return u}return o}function ht(t,e){const r=(typeof t=="string"?[t]:Array.isArray(t)?t:[]).filter(s=>typeof s=="string"&&s.length>0);if(r.length===0||!e)return[];for(const s of r){let i=s;if(st(s)){const a=bt(s,e);if(a===null)continue;i=a}const o=z(i,e);if(Array.isArray(o)&&o.length>0)return o}return[]}const Dr="x-lt-default-checked";function Wr(t,e,r){if((t==null?void 0:t["x-lt-widget"])!=="checklist"||t[Dr]!==!0||e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0)return null;const s=ht(t["x-lt-source"],r);return s.length===0?null:Object.fromEntries(s.map(i=>[i.id,!0]))}function Ur(t,e,r){if((e==null?void 0:e["x-lt-widget"])!=="checklist"||e["x-lt-require-all"]!==!0)return;const i=ht(e["x-lt-source"],r).filter(l=>l.required!==!1);if(i.length===0)return;const o=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},a=i.filter(l=>!o[l.id]).length;if(a!==0)return`${a} of ${i.length} checks incomplete`}const St="Invalid JSON";function it(t){return(t==null?void 0:t["x-lt-widget"])==="json"}function xe(t){return it(t)||(t==null?void 0:t[ue])!==void 0}function Ft(t,e){return`${t} ${e}${t===1?"":"s"}`}function jt(t,e){const r=e==null?void 0:e.type;if(typeof r=="string"&&!(t==null||t===""))switch(r){case"string":return typeof t=="string"?void 0:"Expected text";case"number":return typeof t=="number"&&Number.isFinite(t)?void 0:"Expected a number";case"integer":return typeof t=="number"&&Number.isInteger(t)?void 0:"Expected a whole number";case"boolean":return typeof t=="boolean"?void 0:"Expected true or false";case"array":return Array.isArray(t)?void 0:it(e)&&typeof t=="string"?St:"Expected a list";case"object":return typeof t=="object"&&!Array.isArray(t)?void 0:it(e)&&typeof t=="string"?St:"Expected an object";default:return}}function Nt(t,e,r){if(!e)return;const s=yt(e,r);if(s!==void 0&&t!==void 0&&t!==null&&t!==""&&!Array.isArray(t)){if(s.length===0)return"No valid options for this selection";if(!s.some(o=>o.value===t))return`Must be one of: ${s.map(o=>String(o.value)).join(", ")}`}const i=de(t,e,r);if(i)return i;if(Array.isArray(t))return xe(e)?qr(t,e,s,r):void 0;if(t!==null&&typeof t=="object")return Gr(t,e,r);if(typeof t=="string"){const o=t.trim();if(o==="")return;const a=H(e.minLength,e["x-lt-min-length"],r);if(a!==void 0&&o.length<a)return`Minimum ${a} character${a===1?"":"s"}`;const l=H(e.maxLength,e["x-lt-max-length"],r);if(l!==void 0&&o.length>l)return`Maximum ${l} characters (${o.length} entered)`;const c=e.pattern;if(c)try{if(!new RegExp(c).test(o))return e["x-lt-pattern-error"]??"Invalid format"}catch{}const u=e.format;if(u==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return"Enter a valid email address";if(u==="uri"&&!/^https?:\/\/.+/.test(o))return"Enter a valid URL"}if(typeof t=="number"){const o=H(e.minimum,e["x-lt-minimum"],r),a=H(e.exclusiveMinimum,void 0,r),l=H(e.maximum,e["x-lt-maximum"],r),c=H(e.exclusiveMaximum,void 0,r);if(o!==void 0&&t<o)return`Minimum value is ${o}`;if(a!==void 0&&t<=a)return`Must be greater than ${a}`;if(l!==void 0&&t>l)return`Maximum value is ${l}`;if(c!==void 0&&t>=c)return`Must be less than ${c}`}}function qr(t,e,r,s){if(t.length===0)return;if(r!==void 0){if(r.length===0)return"No valid options for this selection";if(t.some(l=>!r.some(c=>c.value===l)))return`Must be one of: ${r.map(l=>String(l.value)).join(", ")}`}const i=H(e.minItems,void 0,s);if(i!==void 0&&t.length<i)return`At least ${Ft(i,"item")}`;const o=H(e.maxItems,void 0,s);if(o!==void 0&&t.length>o)return`At most ${Ft(o,"item")}`;const a=e.items;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(let c=0;c<t.length;c++){const u=jt(t[c],l)??Nt(t[c],l,s);if(u)return`Item ${c+1}: ${u}`}}}function Gr(t,e,r){const s=Object.entries(t);if(s.length===0)return;const i=e.propertyNames,o=Array.isArray(i==null?void 0:i.enum)?i.enum.map(String):void 0;if(o){const l=s.find(([c])=>!o.includes(c));if(l)return`Unknown key "${l[0]}". Allowed: ${o.join(", ")}`}const a=e.additionalProperties;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(const[c,u]of s){const d=jt(u,l)??Nt(u,l,r);if(d)return`"${c}": ${d}`}}}function H(t,e,r){if(typeof t=="number")return t;if(typeof e=="string"&&r){const s=e.indexOf(".");if(s!==-1){const i=e.slice(0,s),o=e.slice(s+1),a=r[i];if(a&&typeof a=="object"){const l=o.split(".");let c=a;for(const u of l)if(c=c[u],c===void 0)break;if(typeof c=="number")return c;if(typeof c=="string"){const u=Number(c);if(!Number.isNaN(u))return u}}}}}function pe(t,e,r,s,i){if(!s)return;if(r){if(t==null||typeof t=="boolean"&&!t&&yt(e,i)===void 0||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0&&xe(e))return"Required";if(typeof t=="object"&&!Array.isArray(t)&&t!==null){const l=Object.values(t);if(l.length===0||!it(e)&&l.every(c=>!c))return"Required"}}const o=jt(t,e);if(o)return o;const a=Ur(t,e,i);return a||Nt(t,e,i)}function Mt(t){return t!=null&&t!==""&&t!==!1&&t!==0}function Jr(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function $t(t,e){const r=t.indexOf("."),s=r===-1?t:t.slice(0,r);if(!er.includes(s))return{known:!1,value:void 0};const i=e[s];if(r===-1)return{known:!0,value:i};try{return{known:!0,value:ft(i,t.slice(r+1))}}catch{return{known:!0,value:void 0}}}function K(t,e){if(Array.isArray(t))return t.every(c=>K(c,e));if(typeof t!="string"||t.length===0||!e)return!0;const r=t.startsWith("!"),s=r?t.slice(1):t,i=s.indexOf("!="),o=s.indexOf("=");if(i!==-1||o!==-1&&o!==i+1){const c=i!==-1&&(o===-1||i<o),u=c?i:o,d=s.slice(0,u).trim(),p=s.slice(u+(c?2:1)).trim(),{known:x,value:m}=$t(d,e);if(!x)return!0;const b=Jr(m)===p,f=c?!b:b;return r?!f:f}const{known:a,value:l}=$t(s,e);return a?r?!Mt(l):Mt(l):!0}function Hr(t,e){return(t==null?void 0:t["x-lt-hide-if-empty"])!==!0?!1:e==null||e===""||e===!1||e===0}const Vr="x-lt-require-any";function Br(t){const e=t==null?void 0:t[Vr];return Array.isArray(e)?e.filter(r=>Array.isArray(r)).map(r=>r.filter(s=>typeof s=="string"&&s.length>0)).filter(r=>r.length>0):[]}function Xr(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}const Yr="x-lt-require-sum";function zr(t){const e=t==null?void 0:t[Yr];if(!Array.isArray(e))return[];const r=[];for(const s of e){if(!s||typeof s!="object"||Array.isArray(s))continue;const{fields:i,minimum:o}=s;if(!Array.isArray(i))continue;const a=i.filter(l=>typeof l=="string"&&l.length>0);a.length!==0&&(o!==void 0&&typeof o!="number"||r.push({fields:a,minimum:typeof o=="number"?o:1}))}return r}function Kr(t){if(typeof t=="number"&&Number.isFinite(t))return t;if(typeof t=="string"&&t.trim()!==""){const e=Number(t);if(!Number.isNaN(e))return e}return 0}function fe(t,e,r){if(!t)return[];const s=t.properties??{},i=new Set(t.required??[]),o={...r??{},resolver:e,input:e},a=[];for(const[l,c]of Object.entries(s)){if(!K(c["x-lt-showIf"],o))continue;const u=pe(e[l],c,i.has(l),!0,o);u&&a.push({field:l,message:u})}for(const l of Br(t)){const c=l.filter(d=>s[d]&&K(s[d]["x-lt-showIf"],o));if(c.length===0||c.some(d=>Xr(e[d])))continue;const u=c.map(d=>s[d].title??d);a.push({field:c[0],message:`Enter a value for at least one of: ${u.join(", ")}`})}for(const l of zr(t)){const c=l.fields.filter(p=>s[p]&&K(s[p]["x-lt-showIf"],o));if(c.length===0||c.reduce((p,x)=>p+Kr(e[x]),0)>=l.minimum)continue;const d=c.map(p=>s[p].title??p);a.push({field:c[0],message:`Combined value of ${d.join(", ")} must be at least ${l.minimum}`})}return a}function Zr(t,e,r){if(!t)return[];const s=re(e,t);return fe(t,s,r)}function Pt(t,e){let r;try{r=JSON.parse(t)}catch{return{payload:null,errors:[],parseError:"Invalid JSON"}}const s=r._form_schema;if(s){const a=fe(s,r,e);if(a.length>0)return{payload:null,errors:a,parseError:null}}const{_form_schema:i,...o}=r;return{payload:nr(o,s),errors:[],parseError:null}}const Qr=2600;function ts({hint:t,onLockedClick:e,children:r}){const[s,i]=g.useState(null);g.useEffect(()=>{if(!s)return;const a=setTimeout(()=>i(null),Qr);return()=>clearTimeout(a)},[s]);const o=a=>{if(e==null||e(),t){const l=Math.min(Math.max(a.clientX,96),window.innerWidth-96);i(c=>({x:l,y:a.clientY,n:((c==null?void 0:c.n)??0)+1}))}};return n.jsxs("div",{className:"pb-8 max-w-form",onClick:o,"data-testid":"locked-form-frame",children:[r,t&&s&&n.jsxs("div",{role:"status",className:"fixed z-[60] pointer-events-none flex items-center gap-2 px-3 py-1.5 rounded-md bg-surface-raised border border-surface-border shadow-lg text-xs font-medium text-text-primary whitespace-nowrap animate-[click-hint_2.6s_ease-in-out_both]",style:{left:s.x,top:s.y-12},onAnimationEnd:()=>i(null),"data-testid":"locked-form-hint",children:[n.jsx(Zt,{className:"w-3.5 h-3.5 text-accent shrink-0",strokeWidth:1.5}),t]},s.n)]})}function R({children:t,isRequired:e,htmlFor:r}){return n.jsxs("label",{htmlFor:r,className:"block text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t,e&&n.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})}function M({id:t,children:e}){return n.jsx("p",{id:t,className:"text-2xs text-text-tertiary mt-0.5 leading-snug",children:e})}function D({error:t,id:e}){return t?n.jsx("p",{id:e,role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:t}):null}function Y(t){return t?"input text-sm w-full mt-1 border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"input text-sm w-full mt-1"}function es(t){return t?"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full"}function ns({fieldKey:t,value:e,onChange:r,schema:s,isRequired:i}){const o=g.useRef(null),a=(s==null?void 0:s.accept)??void 0,l=G(t,s),c=s==null?void 0:s.description,u=g.useCallback(p=>{var b;const x=(b=p.target.files)==null?void 0:b[0];if(!x)return;const m=new FileReader;m.onload=()=>{typeof m.result=="string"&&r(m.result)},m.readAsDataURL(x)},[r]),d=e.startsWith("data:");return n.jsxs("div",{children:[n.jsx(R,{isRequired:i,children:l}),c&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:c}),n.jsxs("div",{className:"mt-1",children:[n.jsx("input",{ref:o,type:"file",accept:a,onChange:u,className:"hidden"}),n.jsx("button",{type:"button",onClick:()=>{var p;return(p=o.current)==null?void 0:p.click()},className:"btn-secondary text-xs px-3 py-1.5",children:d?"Replace file":"Choose file"}),d&&n.jsx("span",{className:"ml-2 text-xs text-status-success",children:"File attached"})]})]})}function rs({fieldKey:t,value:e,onChange:r,schema:s,isRequired:i}){const o=G(t,s),a=s==null?void 0:s.description,l=(s==null?void 0:s["x-lt-language"])??"",c=g.useCallback(u=>{if(u.key==="Tab"){u.preventDefault();const d=u.currentTarget,p=d.selectionStart,x=d.selectionEnd,m=e.substring(0,p)+" "+e.substring(x);r(m),requestAnimationFrame(()=>{d.selectionStart=d.selectionEnd=p+2})}},[e,r]);return n.jsxs("div",{children:[n.jsxs(R,{isRequired:i,children:[o,l&&n.jsx("span",{className:"ml-2 text-text-tertiary/60 normal-case font-normal",children:l})]}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:u=>r(u.target.value),onKeyDown:c,className:"input w-full mt-1 font-mono text-xs leading-relaxed",rows:10,spellCheck:!1})]})}function ss({fieldKey:t,value:e,onChange:r,schema:s,isRequired:i}){const o=g.useRef(null),[a,l]=g.useState(!1),c=G(t,s),u=s==null?void 0:s.description;g.useEffect(()=>{const f=o.current;if(!f)return;const y=f.getContext("2d");if(y&&(y.lineWidth=2,y.lineCap="round",y.strokeStyle="#1E1535",e&&e.startsWith("data:"))){const h=new Image;h.onload=()=>y.drawImage(h,0,0),h.src=e}},[]);const d=g.useCallback(f=>{const y=o.current,h=y.getBoundingClientRect(),k=h.width>0?y.width/h.width:1,j=h.height>0?y.height/h.height:1;return"touches"in f?{x:(f.touches[0].clientX-h.left)*k,y:(f.touches[0].clientY-h.top)*j}:{x:(f.clientX-h.left)*k,y:(f.clientY-h.top)*j}},[]),p=g.useCallback(f=>{var k;l(!0);const y=(k=o.current)==null?void 0:k.getContext("2d");if(!y)return;const h=d(f);y.beginPath(),y.moveTo(h.x,h.y)},[d]),x=g.useCallback(f=>{var k;if(!a)return;const y=(k=o.current)==null?void 0:k.getContext("2d");if(!y)return;const h=d(f);y.lineTo(h.x,h.y),y.stroke()},[a,d]),m=g.useCallback(()=>{l(!1);const f=o.current;f&&r(f.toDataURL("image/png"))},[r]),b=g.useCallback(()=>{const f=o.current;if(!f)return;const y=f.getContext("2d");y&&(y.clearRect(0,0,f.width,f.height),r(""))},[r]);return n.jsxs("div",{children:[n.jsx(R,{isRequired:i,children:c}),u&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:u}),n.jsx("div",{className:"mt-1 max-w-[25rem] border border-surface-border rounded-md overflow-hidden bg-white",children:n.jsx("canvas",{ref:o,width:400,height:150,className:"w-full cursor-crosshair touch-none",onMouseDown:p,onMouseMove:x,onMouseUp:m,onMouseLeave:m,onTouchStart:p,onTouchMove:x,onTouchEnd:m})}),n.jsx("button",{type:"button",onClick:b,className:"mt-1 text-2xs text-text-tertiary hover:text-accent transition-colors",children:"Clear"})]})}function is({fieldKey:t,value:e,onChange:r,schema:s,isRequired:i}){const o=G(t,s),a=s==null?void 0:s.description;return n.jsxs("div",{children:[n.jsx(R,{isRequired:i,children:o}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:l=>r(l.target.value),className:"input w-full mt-1 text-sm leading-relaxed",rows:8,placeholder:"Supports plain text. Markdown formatting is preserved."})]})}function os({fieldKey:t,value:e,onChange:r,schema:s,isRequired:i}){const[o,a]=g.useState("write"),l=G(t,s),c=s==null?void 0:s.description;return(s==null?void 0:s.readOnly)===!0?n.jsx(Z,{content:e,className:"my-1"}):n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(R,{isRequired:i,children:l}),n.jsx("div",{className:"flex items-center gap-0.5",children:["write","preview"].map(d=>n.jsx("button",{type:"button",onClick:()=>a(d),className:`px-2 py-0.5 text-2xs rounded transition-colors ${o===d?"bg-accent/10 text-accent font-semibold":"text-text-quaternary hover:text-text-secondary"}`,children:d==="write"?"Write":"Preview"},d))})]}),c&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:c}),o==="write"?n.jsx("textarea",{value:e,onChange:d=>r(d.target.value),className:"input w-full mt-1 text-sm font-mono leading-relaxed",rows:10,placeholder:"Write markdown — headings, lists, tables, code blocks, and links all render."}):n.jsx("div",{className:"mt-1 px-3 py-2 border border-surface-border rounded min-h-[120px]",children:e.trim()?n.jsx(Z,{content:e}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"Nothing to preview."})})]})}const as=28;function ls({fieldKey:t,value:e,onChange:r,schema:s,escalationContext:i,isRequired:o,submitAttempted:a,error:l}){const c=(s==null?void 0:s["x-lt-require-all"])===!0,u=ht(s==null?void 0:s["x-lt-source"],i);let d={};try{e&&(d=JSON.parse(e))}catch{}const p=(()=>{const j=Wr(s,d,i);return j?JSON.stringify(j):null})();g.useEffect(()=>{p&&r(p)},[p]);const x=j=>r(JSON.stringify({...d,[j]:!d[j]})),m=G(t,s),b=s==null?void 0:s.description;if(u.length===0)return n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No checklist items. None of the field's x-lt-source paths resolved on this escalation."}),l&&n.jsx("p",{className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]});const f=s==null?void 0:s["x-lt-variant"],y=f==="chips"||f==="rows"?f:c||u.some(j=>j.label.length>as)?"rows":"chips",h=u.filter(j=>d[j.id]).length,k=(u.find(j=>!d[j.id]&&j.required!==!1)??u[0]).id;return n.jsxs("div",{role:"group","aria-label":m,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,children:[n.jsx(R,{isRequired:o,children:m}),b&&n.jsx(M,{children:b}),y==="chips"?n.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:u.map(j=>{const N=d[j.id]??!1,v=!N&&!!a&&h===0&&(j.required||o);return n.jsxs("label",{className:`inline-flex items-center gap-1.5 cursor-pointer select-none px-3.5 py-2 text-sm border transition-colors rounded-[var(--lt-radius-field)] ${N?"bg-accent border-accent text-text-inverse":v?"bg-surface-field border-status-error/60 text-status-error":"bg-surface-field border-surface-field-border text-text-secondary hover:border-accent hover:text-text-primary"}`,children:[n.jsx("input",{type:"checkbox",checked:N,onChange:()=>x(j.id),className:"sr-only","data-testid":`checklist-item-${j.id}`,...j.id===k?{"data-field-key":t}:{}}),N&&n.jsx(Qt,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),j.label]},j.id)})}):n.jsx("div",{className:"space-y-2.5 mt-2",children:u.map(j=>{const N=d[j.id]??!1,v=!N&&!!a&&(c?j.required!==!1:h===0&&(j.required||o));return n.jsxs("label",{className:`flex items-start gap-3 cursor-pointer group select-none rounded px-2 py-1 -mx-2 transition-colors ${v?"bg-status-error/5":"hover:bg-surface-hover"}`,children:[n.jsx("input",{type:"checkbox",checked:N,onChange:()=>x(j.id),className:`mt-0.5 w-3.5 h-3.5 shrink-0 rounded ${v?"accent-status-error":"accent-accent"}`,"data-testid":`checklist-item-${j.id}`,...j.id===k?{"data-field-key":t}:{}}),n.jsxs("span",{className:`text-sm leading-snug transition-colors ${v?"text-status-error":"text-text-secondary group-hover:text-text-primary"}`,children:[j.label,j.required&&n.jsx("span",{className:`ml-0.5 text-2xs ${v?"text-status-error":"text-text-quaternary"}`,children:"*"})]})]},j.id)})}),n.jsx("p",{className:"text-2xs text-text-quaternary mt-3 tabular-nums",children:y==="chips"?n.jsxs(n.Fragment,{children:[h," selected",o&&h===0&&!!a&&n.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(check at least one)"})]}):n.jsxs(n.Fragment,{children:[h," / ",u.length," confirmed",c?n.jsxs("span",{className:"ml-1 text-text-quaternary/60",children:["(all required",u.some(j=>j.required===!1)?" except optional":"",")"]}):o&&h===0&&!!a&&n.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(at least one required)"})]})}),l&&n.jsx("p",{role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]})}const cs=/\.(png|jpe?g|gif|webp|avif|bmp|svg)(\?.*)?$/i;function ds(t){var s,i,o,a;const e=t.trim();if(!e)return{kind:"none"};const r=(i=(s=/^data:([^;,]+)[;,]/.exec(e))==null?void 0:s[1])==null?void 0:i.toLowerCase();if(r)return r.startsWith("image/")?{kind:"image",src:e}:{kind:"file",href:e,label:r==="application/pdf"?"PDF":r,isData:!0};if(/^https?:\/\//i.test(e)){if(cs.test(e))return{kind:"image",src:e};const l=(a=(o=/\.([a-z0-9]{2,5})(\?.*)?$/i.exec(e))==null?void 0:o[1])==null?void 0:a.toUpperCase();return{kind:"file",href:e,label:l??"attachment",isData:!1}}return{kind:"none"}}function Dt({fieldKey:t,value:e,schema:r}){const[s,i]=g.useState(!1),o=ds(e??""),a=t.replace(/[_-]/g," "),l=r==null?void 0:r.description,c=n.jsxs(n.Fragment,{children:[n.jsx("label",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:a}),l&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:l})]});return o.kind==="none"?n.jsxs("div",{children:[c,n.jsx("p",{className:"text-xs text-text-quaternary italic mt-1",children:"No attachment"})]}):o.kind==="image"?n.jsxs("div",{children:[c,n.jsxs("div",{className:"mt-1",children:[n.jsx("button",{type:"button",onClick:()=>i(!0),className:"block rounded-[0.125em] border border-surface-border overflow-hidden hover:border-accent transition-colors",title:"View full size",children:n.jsx("img",{src:o.src,alt:t.replace(/[_-]/g," "),className:"max-h-48 max-w-full object-contain","data-testid":`attachment-image-${t}`})}),s&&n.jsx("div",{className:"fixed inset-0 z-[100] bg-text-primary/60 backdrop-blur-sm flex items-center justify-center p-8 cursor-zoom-out",onClick:()=>i(!1),role:"dialog","aria-modal":"true","aria-label":`${a} — full size`,children:n.jsx("img",{src:o.src,alt:a,className:"max-h-[90vh] max-w-[90vw] object-contain"})})]})]}):n.jsxs("div",{children:[c,n.jsx("div",{className:"mt-1",children:n.jsxs("a",{href:o.href,...o.isData?{download:`${t}.${o.label==="PDF"?"pdf":"bin"}`}:{target:"_blank",rel:"noopener noreferrer"},className:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`attachment-link-${t}`,children:[n.jsx(Oe,{className:"w-3.5 h-3.5",strokeWidth:1.5}),o.isData?`Download ${o.label}`:`Open ${o.label}`,o.isData?n.jsx(te,{className:"w-3 h-3",strokeWidth:1.5}):n.jsx(xt,{className:"w-3 h-3",strokeWidth:1.5})]})})]})}function us({fieldKey:t,schema:e,escalationContext:r}){const s=(e==null?void 0:e["x-lt-href"])??"",i=s&&r?B(s,r):s,o=(e==null?void 0:e.title)??(e==null?void 0:e.description)??"Open",a=e==null?void 0:e.description,l=i.startsWith("/"),c=!i.trim();return n.jsxs("div",{"data-field-key":t,children:[n.jsx(R,{children:o}),a&&n.jsx(M,{children:a}),n.jsx("div",{className:"mt-1",children:c?n.jsx("span",{className:"text-xs text-text-quaternary italic",children:"No link configured"}):l?n.jsxs(lt,{to:i,className:"inline-flex items-center gap-1 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`link-widget-${t}`,children:[o,n.jsx(xt,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]}):n.jsxs("a",{href:i,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`link-widget-${t}`,children:[o,n.jsx(xt,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]})})]})}function me({to:t,className:e=""}){return n.jsxs(lt,{to:t,title:"View details",tabIndex:-1,className:`inline-flex items-center justify-center w-6 h-6 shrink-0 rounded border border-surface-border text-accent/70 hover:text-accent hover:border-accent/60 hover:bg-accent/5 transition-colors ${e}`,children:[n.jsx(Te,{className:"w-3.5 h-3.5",strokeWidth:2}),n.jsx("span",{className:"sr-only",children:"View details"})]})}const Wt="—";function xs(t,e){if(!t||!e)return"";const r=t.indexOf(".");if(r===-1)return"";const s=t.slice(0,r),i=t.slice(r+1);try{const o=ft(e[s],i);return typeof o=="string"?o:""}catch{return""}}function ps(t,e){if(!t||t===Wt)return Wt;if(e==="age"){const r=new Date(t);return Number.isNaN(r.getTime())?t:gt(t)}return t}function fs({fieldKey:t,schema:e,escalationContext:r}){const s=e==null?void 0:e["x-lt-source"],i=(e==null?void 0:e["x-lt-fields"])??[],o=(e==null?void 0:e.title)??"Linked escalation",a=e==null?void 0:e.description,l=xs(s,r),{data:c,isLoading:u,isError:d}=ir(l);return n.jsxs("div",{"data-field-key":t,children:[n.jsx(R,{children:o}),a&&n.jsx(M,{children:a}),n.jsx("div",{className:"mt-1",children:!l||d?n.jsx("p",{className:"text-xs text-text-quaternary italic","data-testid":`escalation-widget-empty-${t}`,children:"No linked record"}):u?n.jsx(gs,{}):c?n.jsx(ms,{esc:c,fields:i,fieldKey:t}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"No linked record"})})]})}function ms({esc:t,fields:e,fieldKey:r}){if(!t)return null;const s=mt(t);return n.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2","data-testid":`escalation-widget-card-${r}`,children:[n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t.type,t.subtype&&t.subtype!==t.type?` · ${t.subtype}`:""]}),n.jsx(kr,{status:t.status})]}),t.description&&n.jsx("p",{className:"text-xs text-text-primary leading-snug",children:t.description}),e.length>0&&n.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-0.5",children:e.map(i=>{const o=B(i.value,s),a=ps(o,i.format);return n.jsxs("div",{className:"contents",children:[n.jsx("dt",{className:"text-2xs text-text-tertiary whitespace-nowrap",children:i.label}),n.jsx("dd",{className:"text-2xs text-text-primary",children:a})]},i.label)})}),n.jsxs("div",{className:"flex items-center justify-between gap-2",children:[n.jsxs("span",{className:"text-2xs text-text-quaternary",children:[t.role," · ",gt(t.created_at)]}),n.jsx(me,{to:`/escalations/detail/${t.id}`})]})]})}function gs(){return n.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2 animate-pulse",children:[n.jsx("div",{className:"h-3 w-32 bg-surface-sunken rounded"}),n.jsx("div",{className:"h-3 w-48 bg-surface-sunken rounded"}),n.jsx("div",{className:"h-3 w-24 bg-surface-sunken rounded"})]})}function bs(t,e){if(!t)return{};const r={};for(const[s,i]of Object.entries(t))r[s]=typeof i=="string"?B(i,e):i;return r}function ys(t,e,r){const s=bs(t.facets,e),i={role:t.role,status:t.status??"pending",facets:s,limit:t.limit,enabled:!!(t.role||Object.keys(s).length)};return t.assigned==="me"?{...i,assigned_to:r,available:!1,enabled:i.enabled&&!!r}:t.assigned==="any"?i:{...i,available:t.available??!0}}const hs=[{label:"Description",value:"{{escalation.description}}"},{label:"Role",value:"{{escalation.role}}"},{label:"Age",value:"{{escalation.created_at}}",format:"age"}],Ut="—";function js(t,e){if(!t||t===Ut)return Ut;if(e==="age"){const r=new Date(t);return Number.isNaN(r.getTime())?t:gt(t)}return t}function pt(t,e){return typeof t=="string"?B(t,e):Array.isArray(t)?t.map(r=>pt(r,e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([r,s])=>[r,pt(s,e)])):t}function Ns({fieldKey:t,schema:e,escalationContext:r}){const s=(e==null?void 0:e["x-lt-query"])??{},i=(e==null?void 0:e["x-lt-columns"])??hs,o=(e==null?void 0:e["x-lt-actions"])??[],a=(e==null?void 0:e.title)??"Related items",l=e==null?void 0:e.description,c=r??{},{user:u}=or(),d=ys(s,c,u==null?void 0:u.userId),{data:p,isLoading:x}=ar({role:d.role,status:d.status,facets:d.facets,assigned_to:d.assigned_to,available:d.available,limit:d.limit??5,enabled:d.enabled,include:rr({columns:i,actions:o})?"envelope":void 0}),m=(p==null?void 0:p.escalations)??[],b=lr(),[f,y]=g.useState({}),[h,k]=g.useState(null),j=async(N,v)=>{const A=mt(N);if(!(v.confirm&&!window.confirm(B(v.confirm,A)))){k(N.id),y(O=>({...O,[N.id]:""}));try{await b.mutateAsync({id:N.id,resolverPayload:pt(v.resolverPayload,A)})}catch(O){y(S=>({...S,[N.id]:O.message}))}finally{k(null)}}};return n.jsxs("div",{"data-field-key":t,children:[n.jsx(R,{children:a}),l&&n.jsx(M,{children:l}),n.jsx("div",{className:"mt-1","data-testid":`escalation-list-widget-${t}`,children:x?n.jsx(ks,{columns:i.length}):n.jsx(vs,{escalations:m,columns:i,fieldKey:t,actions:o,onAction:j,pendingRow:h,rowErrors:f})})]})}function vs({escalations:t,columns:e,fieldKey:r,actions:s,onAction:i,pendingRow:o,rowErrors:a}){return t.length===0?n.jsx("p",{className:"text-xs text-text-quaternary italic py-1","data-testid":`escalation-list-empty-${r}`,children:"No items found"}):n.jsxs("table",{className:"w-full text-xs border-collapse","data-testid":`escalation-list-table-${r}`,children:[n.jsx("thead",{children:n.jsxs("tr",{className:"border-b border-surface-border",children:[e.map(l=>n.jsx("th",{className:"text-left text-2xs font-semibold uppercase tracking-wider text-text-tertiary pb-1 pr-3 last:pr-0",children:l.label},l.label)),s.length>0&&n.jsx("th",{className:"w-px"}),n.jsx("th",{className:"w-8"})]})}),n.jsx("tbody",{children:t.map(l=>{const c=mt(l),u=a[l.id];return n.jsxs("tr",{className:"border-b border-surface-border/50 last:border-0 hover:bg-surface-sunken/50 transition-colors",children:[e.map(d=>{const p=B(d.value,c),x=js(p,d.format);return n.jsx("td",{className:"py-1 pr-3 last:pr-0 text-text-primary align-top",children:x},d.label)}),s.length>0&&n.jsxs("td",{className:"py-1 pr-2 align-top whitespace-nowrap",children:[s.map(d=>n.jsx("button",{type:"button",onClick:()=>i(l,d),disabled:o===l.id,className:"px-2 py-0.5 text-2xs font-medium text-accent border border-accent/40 rounded hover:bg-accent/10 disabled:opacity-40 disabled:cursor-default transition-colors ml-1 first:ml-0","data-testid":`escalation-list-action-${l.id}`,children:d.label},d.label)),u&&n.jsx("p",{className:"text-2xs text-status-error mt-0.5 whitespace-normal max-w-[16rem]","data-testid":`escalation-list-action-error-${l.id}`,children:u})]}),n.jsx("td",{className:"py-1 pl-2 align-top",children:n.jsx(me,{to:`/escalations/detail/${l.id}`})})]},l.id)})})]})}function ks({columns:t}){return n.jsx("div",{className:"space-y-1.5 animate-pulse",children:[0,1,2].map(e=>n.jsx("div",{className:"flex gap-4",children:Array.from({length:t},(r,s)=>n.jsx("div",{className:"h-3 bg-surface-sunken rounded flex-1"},s))},e))})}function ge(t,e){return{metadata:t??{},...e?{lookup:e}:{}}}const ws="x-lt-invoke",Q={LINK:"link",BUTTON:"button"},As=/^\{\{\s*([^{}]+?)\s*\}\}$/;function nt(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function Es(t){return t===Q.LINK||t===Q.BUTTON}function Is(t){const e=t==null?void 0:t[ws];if(!nt(e))return null;const r=e.workflow;if(typeof r!="string"||r.trim().length===0)return null;const s=e.confirm;return{workflow:r.trim(),data:nt(e.data)?e.data:{},metadata:nt(e.metadata)?e.metadata:{},modal:e.modal===!0,confirm:typeof s=="string"&&s.trim().length>0?s:null,variant:Es(e.variant)?e.variant:Q.LINK,icon:e.icon!==!1}}function ot(t,e){if(typeof t=="string"){const r=As.exec(t);if(r){const s=z(r[1],e??void 0);return s===null?void 0:s}return st(t)?bt(t,e??void 0)??void 0:t}if(Array.isArray(t))return t.map(r=>ot(r,e)).filter(r=>r!==void 0);if(nt(t)){const r={};for(const[s,i]of Object.entries(t)){const o=ot(i,e);o!==void 0&&(r[s]=o)}return r}return t}function Cs(t,e){return{data:ot(t.data,e),metadata:ot(t.metadata,e)}}const vt={ACTIVITY:"Activity",ALERT:"AlertTriangle",ARCHIVE:"Archive",AWARD:"Award",BARCODE:"Barcode",BELL:"Bell",BOT:"Bot",BOX:"Box",BOXES:"Boxes",BUILDING:"Building2",CALENDAR:"Calendar",CAMERA:"Camera",CHECKLIST:"ListChecks",CLIPBOARD:"ClipboardList",CLIPBOARD_CHECK:"ClipboardCheck",CLOCK:"Clock",COG:"Cog",CPU:"Cpu",DATABASE:"Database",DOWNLOAD:"Download",DROPLETS:"Droplets",FACTORY:"Factory",FAN:"Fan",FILE:"FileText",FLAG:"Flag",FLAME:"Flame",GAUGE:"Gauge",HAMMER:"Hammer",HEART:"Heart",IMAGE:"Image",KEY:"Key",LAYERS:"Layers",LEAF:"Leaf",LIFEBUOY:"LifeBuoy",LOCK:"Lock",MAIL:"Mail",MAP:"Map",MEGAPHONE:"Megaphone",MESSAGE:"MessageSquare",PACKAGE:"Package",PALETTE:"Palette",PEN:"PenTool",PILL:"Pill",POWER:"Power",PRINTER:"Printer",RECEIPT:"Receipt",RECYCLE:"Recycle",REFRESH:"RefreshCw",ROCKET:"Rocket",ROUTE:"Route",RULER:"Ruler",SCALE:"Scale",SCAN:"ScanBarcode",SCISSORS:"Scissors",SEARCH:"Search",SEND:"Send",SERVER:"Server",SHIELD:"ShieldCheck",SHOPPING_CART:"ShoppingCart",SNOWFLAKE:"Snowflake",SPARKLES:"Sparkles",STAR:"Star",STORE:"Store",SUN:"Sun",TAG:"Tag",TEST_TUBE:"TestTube",THERMOMETER:"Thermometer",TRASH:"Trash2",TRUCK:"Truck",UPLOAD:"Upload",USER:"User",USERS:"Users",WAND:"Wand2",WAREHOUSE:"Warehouse",WIFI:"Wifi",WRENCH:"Wrench",ZAP:"Zap"},Os=new Set(Object.values(vt));function Ts(t){return typeof t=="string"&&Os.has(t)}const Rs={Activity:Kn,AlertTriangle:ee,Archive:zn,Award:Yn,Barcode:Xn,Bell:Bn,Bot:Vn,Box:Hn,Boxes:Jn,Building2:Gn,Calendar:qn,Camera:Un,ClipboardCheck:Wn,ClipboardList:Dn,Clock:Pn,Cog:$n,Cpu:Mn,Database:Fn,Download:te,Droplets:Sn,Factory:Ln,Fan:_n,FileText:Rn,Flag:Tn,Flame:On,Gauge:Cn,Hammer:In,Heart:En,Image:An,Key:wn,Layers:kn,Leaf:vn,LifeBuoy:Nn,ListChecks:jn,Lock:Zt,Mail:hn,Map:yn,Megaphone:bn,MessageSquare:gn,Package:mn,Palette:fn,PenTool:pn,Pill:xn,Power:un,Printer:dn,Receipt:cn,Recycle:ln,RefreshCw:an,Rocket:on,Route:sn,Ruler:rn,Scale:nn,ScanBarcode:en,Scissors:tn,Search:Qe,Send:Ze,Server:Ke,ShieldCheck:ze,ShoppingCart:Ye,Snowflake:Xe,Sparkles:Be,Star:Ve,Store:He,Sun:Je,Tag:Ge,TestTube:qe,Thermometer:Ue,Trash2:We,Truck:De,Upload:Pe,User:$e,Users:Me,Wand2:Fe,Warehouse:Se,Wifi:Le,Wrench:_e,Zap:Re},qt=Object.values(vt),_s=Object.fromEntries(Object.entries(vt).map(([t,e])=>[e,t]));function Ls(t){return Ts(t)?Rs[t]:null}function Ai(t){const e=t.trim().toLowerCase().replace(/[\s_-]+/g,"");return e?qt.filter(r=>r.toLowerCase().includes(e)||_s[r].toLowerCase().replace(/_/g,"").includes(e)):[...qt]}function kt({icon:t,tier:e,className:r,strokeWidth:s=1.5}){const i=Ls(t)??Ar[e]??Zn;return n.jsx(i,{className:r,strokeWidth:s,"aria-hidden":!0})}function Ss(t){return`${t.domain}/${t.key} ${t.current||t.version===null?"(current)":`v${t.version}`}`}const L={RUNNING:"running",COMPLETED:"completed",FAILED:"failed"};function Gt(t,e){return`lt.events.system.workflow.${t}.${e}`}function wt(t){const[e,r]=g.useState(L.RUNNING),[s,i]=g.useState(void 0);return g.useEffect(()=>{r(L.RUNNING),i(void 0)},[t]),cr(t?[Gt(t,"completed"),Gt(t,"failed")]:[],o=>{if(o.workflowId!==t)return;const a=o.type.endsWith(".failed");r(a?L.FAILED:L.COMPLETED),i(o.data),o.data===void 0&&dr(`/workflows/${encodeURIComponent(t)}/result`).then(l=>{var c;return i(a?l.error?{error:l.error}:void 0:(c=l.result)==null?void 0:c.data)}).catch(()=>{})}),{outcome:e,payload:s}}const Fs={[L.RUNNING]:"Working…",[L.COMPLETED]:"Completed",[L.FAILED]:"Failed"};function be({outcome:t,className:e=""}){const r=t===L.FAILED?"text-status-error":t===L.COMPLETED?"text-status-success":"text-text-secondary";return n.jsxs("p",{className:`flex items-center gap-1.5 text-xs ${r} ${e}`,role:"status","data-testid":"run-outcome",children:[Fs[t],t===L.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0})]})}function ye({payload:t}){return!t||Object.keys(t).length===0?null:n.jsx("div",{className:"max-h-72 overflow-y-auto px-3 py-2 bg-surface-sunken","data-testid":"run-outline",children:n.jsx(xr,{data:t})})}function Ms({workflowId:t,outcome:e,executionPath:r}){const s=e===L.FAILED?"text-status-error":"text-status-success",i=e===L.RUNNING?"Started":e===L.COMPLETED?"Completed":"Failed";return n.jsxs("p",{className:"flex items-center gap-1.5 text-xs min-w-0",role:"status","data-testid":"started-run",children:[n.jsx("span",{className:s,children:i}),e===L.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0}),n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx("span",{className:"font-mono text-text-secondary truncate",children:t}),r&&n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx(lt,{to:r,className:"text-accent hover:underline shrink-0",children:"View workflow →"})]})]})}function $s({payload:t}){return!t||Object.keys(t).length===0?null:n.jsx("div",{className:"mt-3 h-48 overflow-y-auto rounded-md border border-surface-border bg-surface-raised px-3 py-2","data-testid":"started-run-result",children:n.jsx(ur,{data:t,label:"Result"})})}const Ps="/workflows/executions",W={PAGE:"page",MODAL:"modal"};function he(t,e){const{realIsBuilder:r}=pr(),s=fr(),[i,o]=g.useState(null),[a,l]=g.useState([]),[c,u]=g.useState(null),d=g.useCallback(()=>{o(null),l([]),u(null),s.reset()},[s]);return{submit:g.useCallback(async(x,m)=>{o(null),l([]),u(null);const b={...m};e.certified&&(b.certified=!0);try{const f=await s.mutateAsync({workflowType:t.workflow_type,data:x,metadata:b,...e.overrideBot?{execute_as:e.overrideBot}:{}});u(f.workflowId)}catch(f){f instanceof mr&&Cr(f.body)?(l(f.body.violations),o(f.body.error)):o(f instanceof Error?f.message:"Invocation failed")}},[s,e.certified,e.overrideBot,t.workflow_type]),reset:d,pending:s.isPending,error:i,violations:a,startedId:c,executionPath:c&&r?`${Ps}/${encodeURIComponent(c)}`:null}}function At(){const{connected:t}=gr();return t?null:n.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning","data-testid":"events-warning",children:[n.jsx(Qn,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),"Live events are off, so the result will not appear here.",n.jsx("button",{type:"button",onClick:()=>window.location.reload(),className:"text-accent hover:underline",children:"Reconnect events"})]})}const Ds={[W.PAGE]:"sticky bottom-0 z-10 bg-surface border-t border-surface-border/40 pt-3 pb-16 -mb-16",[W.MODAL]:"border-t border-surface-border/40 pt-3"};function je({onSubmit:t,onSubmitAgain:e,pending:r,error:s,issueCount:i=0,onShowIssues:o,startedId:a,executionPath:l,host:c=W.PAGE}){const u=c===W.PAGE,d=wt(u?a??"":""),p=u&&a!==null;return n.jsxs("div",{className:Ds[c],children:[n.jsxs("div",{className:"flex items-center justify-between gap-6 min-h-9",children:[n.jsxs("div",{className:"flex-1 min-w-0 flex flex-col gap-1",children:[n.jsx(At,{}),i>0&&o?n.jsxs("button",{type:"button",onClick:o,className:"flex items-center gap-1.5 text-xs text-status-error hover:underline","data-testid":"invoke-issues",children:[n.jsx(at,{className:"w-3.5 h-3.5",strokeWidth:1.5}),i," ",i===1?"issue":"issues"," to resolve"]}):s?n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:s}):null,p&&n.jsx(Ms,{workflowId:a,outcome:d.outcome,executionPath:l})]}),n.jsx("div",{className:"shrink-0",children:p?n.jsx("button",{type:"button",onClick:e,className:"text-xs text-accent hover:underline","data-testid":"invoke-again",children:"Submit again"}):n.jsx("button",{type:"button",onClick:t,disabled:r,className:"btn-primary px-8 py-2","data-testid":"invoke-start",children:r?"Submitting…":"Submit"})})]}),p&&d.outcome!==L.RUNNING&&n.jsx($s,{payload:d.payload})]})}const et="invoke-help",Ws=380,q={INSTRUCTIONS:"instructions",ISSUES:"issues"};function Us({view:t,onViewChange:e,onClose:r,helpMarkdown:s,errors:i,schema:o}){const a=[];s&&a.push({id:q.INSTRUCTIONS,icon:ne,label:"Instructions",content:n.jsx(Z,{content:s})}),a.push({id:q.ISSUES,icon:at,label:"Issues",content:n.jsx(le,{errors:i,schema:o})});const l=a.some(c=>c.id===t)?t:a[0].id;return n.jsx(yr,{views:a,activeId:l,onViewChange:c=>e(c),onClose:r,stickyClassName:"h-full min-h-0",labelInline:!0})}function qs({schema:t,context:e,errors:r,enabled:s=!0}){const i=br(),o=s?i==null?void 0:i.setPanel:void 0,a=s?i==null?void 0:i.closePanel:void 0,l=(i==null?void 0:i.ownerKey)??null,c=(i==null?void 0:i.open)??!1,[u,d]=g.useState(null),p=g.useMemo(()=>sr(t,e),[t,e]),x=g.useCallback(()=>{d(null),a==null||a(et)},[a]);g.useEffect(()=>{!o||!u||o(n.jsx(Us,{view:u,onViewChange:d,onClose:x,helpMarkdown:p,errors:r,schema:t}),{key:et,width:Ws})},[o,u,p,r,t,x]),g.useEffect(()=>{u&&c&&l&&l!==et&&d(null)},[u,c,l]);const m=g.useRef(a);return m.current=a,g.useEffect(()=>()=>{var b;(b=m.current)==null||b.call(m,et)},[]),{helpMarkdown:p,hasInstructions:!!p,open:u!==null,showInstructions:()=>d(q.INSTRUCTIONS),showIssues:()=>d(q.ISSUES),close:x}}function Gs({selected:t,schema:e,metadata:r,lookup:s,submission:i,lead:o,prefill:a,host:l=W.PAGE}){const c=l===W.MODAL,[u,d]=g.useState(()=>Tt(e,a)),[p,x]=g.useState(!1),[m,b]=g.useState([]),[f,y]=g.useState(null),[h,k]=g.useState(null);g.useEffect(()=>{d(Tt(e,a)),x(!1),b([]),y(null),k(null),i.reset()},[t.workflow_type]);const j=g.useMemo(()=>({...ge(r,s),resolver:null}),[r,s]),N=g.useMemo(()=>{try{const C=JSON.parse(u);return{...j,resolver:C,input:C}}catch{return j}},[u,j]);g.useEffect(()=>{p&&b(Pt(u,j).errors)},[u,p,j]);const v=m.length>0?m:i.violations,A=qs({schema:e,context:N,errors:v,enabled:!c}),O=c?()=>k(q.ISSUES):A.showIssues,S=c?()=>k(C=>C===q.INSTRUCTIONS?null:q.INSTRUCTIONS):A.showInstructions;g.useEffect(()=>{i.violations.length>0&&O()},[i.violations]);const P=()=>{x(!0);const C=Pt(u,j);if(C.parseError){y(C.parseError);return}if(y(null),C.errors.length>0){b(C.errors),O();return}b([]),i.submit(C.payload,r)},E=c&&h===q.ISSUES&&v.length>0,T=c&&h===q.INSTRUCTIONS&&A.helpMarkdown;return n.jsxs("div",{"data-testid":"rich-invoke-form",children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[o,T&&n.jsx("div",{className:"px-4 py-3 bg-surface-hover","data-testid":"invoke-inline-help",children:n.jsx(Z,{content:A.helpMarkdown})}),n.jsx(ui,{value:u,onChange:d,submitAttempted:p,escalationContext:j,onOpenHelp:A.hasInstructions?S:void 0}),E&&n.jsx("div",{"data-testid":"invoke-inline-issues",children:n.jsx(le,{errors:v,schema:e})})]}),n.jsx(je,{onSubmitAgain:i.reset,onSubmit:P,pending:i.pending,error:f??i.error,issueCount:v.length,onShowIssues:O,startedId:i.startedId,executionPath:i.executionPath,host:l})]})}const Jt=`{
|
|
2
|
-
"data": {},
|
|
3
|
-
"metadata": {}
|
|
4
|
-
}`;function Js(t){return typeof t=="boolean"?"boolean":typeof t=="number"?"number":Array.isArray(t)?"array":t!==null&&typeof t=="object"?"object":"string"}function Ht(t){if(!t)return[];const e=t.data;return!e||typeof e!="object"?[]:Object.entries(e).map(([r,s])=>({key:r,type:Js(s),defaultValue:s}))}function dt(t){return{...t}}function Vt(t,e){return JSON.stringify({data:t,metadata:e},null,2)}function Hs({selectedConfig:t,isJsonMode:e,hasFormView:r,jsonInput:s,formFields:i,dataFields:o,onJsonChange:a,onToggleMode:l,onUpdateFormField:c,onSetFormFields:u}){return n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{className:"block text-xs text-text-secondary",children:"Envelope"}),n.jsxs("div",{className:"flex items-center gap-3",children:[r&&n.jsx("button",{type:"button",onClick:l,className:"text-2xs text-accent hover:underline",children:e?"Form view":"JSON view"}),t.envelope_schema?n.jsx("span",{className:"text-2xs text-accent",children:"Pre-filled from workflow config"}):n.jsx("span",{className:"text-2xs text-status-warning",children:"No template"})]})]}),!t.envelope_schema&&n.jsx("div",{className:"bg-surface-sunken border border-surface-border rounded px-4 py-3 mb-3",children:n.jsxs("p",{className:"text-xs text-text-secondary leading-relaxed",children:["This workflow has no input template. Edit the JSON directly below, or ",n.jsx(lt,{to:"/workflows/registry/new",className:"text-status-success hover:underline",children:"register it"})," in the Workflow Registry with an envelope schema for pre-filled fields and form-based input."]})}),e||!r?n.jsx("textarea",{value:s,onChange:d=>a(d.target.value),className:"input-json",rows:12,spellCheck:!1}):n.jsx("div",{className:"space-y-3",children:o.map(({key:d,type:p})=>{var f,y;const x=i[d],m=typeof x=="string"?x:JSON.stringify(x??(p==="array"?[]:{}),null,2),b=Math.min(20,Math.max(4,((y=(f=m==null?void 0:m.split)==null?void 0:f.call(m,`
|
|
5
|
-
`))==null?void 0:y.length)??4));return n.jsxs("div",{children:[n.jsxs("label",{className:"block text-2xs font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:[d,n.jsx("span",{className:"ml-2 font-normal normal-case",children:p})]}),p==="boolean"?n.jsxs("select",{value:String(x??!1),onChange:h=>c(d,h.target.value,p),className:"select text-xs w-full",children:[n.jsx("option",{value:"true",children:"true"}),n.jsx("option",{value:"false",children:"false"})]}):p==="object"||p==="array"?n.jsx("textarea",{value:m,onChange:h=>{try{c(d,JSON.parse(h.target.value),p)}catch{u({...i,[d]:h.target.value})}},className:"input-json w-full",rows:b,spellCheck:!1}):n.jsx("input",{type:p==="number"?"number":"text",value:String(x??""),onChange:h=>c(d,h.target.value,p),className:"input text-xs w-full"})]},d)})}),n.jsxs("p",{className:"text-2xs text-text-tertiary mt-1.5",children:["The envelope wraps your workflow input. ",n.jsx("code",{className:"text-accent/80",children:"data"})," holds workflow-specific fields; ",n.jsx("code",{className:"text-accent/80",children:"metadata"})," is optional context."]})]})}const Bt="lt:invoke:prefill";function Vs({selected:t,metadata:e,submission:r,lead:s,prefill:i,host:o=W.PAGE}){const[a,l]=g.useState(Jt),[c,u]=g.useState(""),[d,p]=g.useState({}),[x,m]=g.useState(!1),b=g.useMemo(()=>{const N=t.envelope_schema??null;if(!i||Object.keys(i).length===0)return N;const v=N==null?void 0:N.data,A={...v&&typeof v=="object"?v:{},...i};return{...N??{},data:A}},[t.envelope_schema,i]),f=g.useMemo(()=>Ht(b),[b]),y=f.length>0;g.useEffect(()=>{u(""),r.reset();const N=o===W.PAGE?sessionStorage.getItem(Bt):null;if(N){sessionStorage.removeItem(Bt),l(N);try{const A=JSON.parse(N),O=(A==null?void 0:A.data)??A;O&&typeof O=="object"&&p(dt(O))}catch{}m(!0);return}l(b?JSON.stringify(b,null,2):Jt);const v=b==null?void 0:b.data;p(v&&typeof v=="object"?dt(v):{}),m(!Ht(b).length)},[t.workflow_type]);const h=()=>{if(x)try{const N=JSON.parse(a);N.data&&typeof N.data=="object"&&p(dt(N.data))}catch{}else l(Vt(d,e));m(!x)},k=(N,v,A)=>{let O=v;A==="number"?O=v===""?0:Number(v):A==="boolean"&&(O=v==="true"||v===!0);const S={...d,[N]:O};p(S),l(Vt(S,e))},j=()=>{u("");let N;try{N=JSON.parse(a)}catch{u("Invalid JSON");return}const{data:v,metadata:A}=N;if(!v||typeof v!="object"){u('Envelope must include a "data" object');return}r.submit(v,A??{})};return n.jsxs("div",{children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[s,n.jsx(Hs,{selectedConfig:t,isJsonMode:x,hasFormView:y,jsonInput:a,formFields:d,dataFields:f,onJsonChange:N=>{l(N),u("")},onToggleMode:h,onUpdateFormField:k,onSetFormFields:p})]}),n.jsx(je,{onSubmitAgain:r.reset,onSubmit:j,pending:r.pending,error:c||r.error,startedId:r.startedId,executionPath:r.executionPath,host:o})]})}function Bs({workflow:t,workflowId:e,onDone:r,onRetry:s}){var c;const i=wt(e),o=i.outcome===L.FAILED,a=i.outcome===L.RUNNING,l=o&&typeof((c=i.payload)==null?void 0:c.error)=="string"?i.payload.error:null;return n.jsxs("div",{className:"flex flex-col gap-4","data-testid":"run-receipt","data-outcome":i.outcome,children:[n.jsxs("div",{className:"flex items-center gap-3",children:[n.jsx(kt,{icon:t.icon,tier:t.tier,className:"w-6 h-6 shrink-0 text-accent"}),n.jsx(be,{outcome:i.outcome,className:"text-sm"})]}),a&&n.jsx(At,{}),l&&n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:l}),!a&&n.jsx(ye,{payload:l?void 0:i.payload}),n.jsxs("div",{className:"flex justify-end gap-2 pt-2 border-t border-surface-border/40",children:[o&&n.jsx("button",{type:"button",onClick:s,className:"btn-secondary text-xs","data-testid":"run-retry",children:"Try again"}),n.jsx("button",{type:"button",onClick:r,className:"btn-primary text-xs px-6","data-testid":"run-done",children:a||o?"Close":"Done"})]})]})}function Ne(t,e){var s;const r=(s=t.envelope_schema)==null?void 0:s.metadata;return{...r&&typeof r=="object"?r:{},...e}}function Xs({workflow:t,prefill:e,onClose:r}){const s=g.useMemo(()=>Ne(t,e.metadata),[t,e.metadata]),i=Array.isArray(t.input_lookups)&&t.input_lookups.length>0,{data:o}=hr(t.workflow_type,i),a=g.useMemo(()=>o?jr(o.lookups):void 0,[o]),l=(o==null?void 0:o.lookups.filter(p=>p.missing))??[],c=he(t,{certified:t.certified,overrideBot:""}),u=t.description?n.jsx(Z,{content:t.description,className:"text-xs text-text-secondary leading-relaxed"}):void 0,d=c.startedId!==null;return n.jsxs("div",{"data-testid":"invoke-modal",children:[d&&n.jsx(Bs,{workflow:t,workflowId:c.startedId,onDone:r,onRetry:c.reset}),n.jsxs("div",{hidden:d,children:[l.length>0&&n.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning mb-4","data-testid":"lookup-missing",children:[n.jsx(ee,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),l.map(Ss).join(", ")," ",l.length===1?"is":"are"," not available; the fields that read ",l.length===1?"it":"them"," fall back to plain inputs."]}),t.input_schema?n.jsx(Gs,{selected:t,schema:t.input_schema,metadata:s,lookup:a,submission:c,lead:u,prefill:e.data,host:W.MODAL}):n.jsx(Vs,{selected:t,metadata:s,submission:c,lead:u,prefill:e.data,host:W.MODAL})]})]})}function Ys({open:t,onClose:e,workflow:r,prefill:s}){const i=n.jsxs("span",{className:"flex items-center gap-2 min-w-0",children:[n.jsx(kt,{icon:r.icon,tier:r.tier,className:"w-4 h-4 shrink-0 text-accent"}),n.jsx("span",{className:"truncate",title:r.workflow_type,children:se(r.workflow_type)})]});return n.jsx(ie,{open:t,onClose:e,title:i,maxWidth:"max-w-2xl",closeOnBackdrop:!1,children:n.jsx(Xs,{workflow:r,prefill:s,onClose:e})})}const zs={[Q.LINK]:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors",[Q.BUTTON]:"btn-secondary inline-flex items-center gap-1.5 text-xs px-3 py-1.5"};function Ks({fieldKey:t,schema:e,escalationContext:r}){var u;const s=g.useMemo(()=>Is(e),[e]),{data:i,isPending:o}=Nr(),a=i==null?void 0:i.find(d=>d.workflow_type===(s==null?void 0:s.workflow)),l=(u=r==null?void 0:r.escalation)==null?void 0:u.status,c=l!==void 0&&l!==wr.PENDING;return!s||c?null:o?n.jsx("div",{className:"h-4 w-32 rounded bg-surface-hover animate-pulse","data-testid":`invoke-widget-${t}-loading`}):a?n.jsx(Zs,{fieldKey:t,schema:e,config:s,workflow:a,escalationContext:r}):null}function Zs({fieldKey:t,schema:e,config:r,workflow:s,escalationContext:i}){var E;const o=i,a=g.useMemo(()=>Cs(r,o),[r,o]),l=g.useMemo(()=>Ne(s,a.metadata),[s,a.metadata]),c=he(s,{certified:s.certified,overrideBot:""}),u=wt(c.startedId??""),[d,p]=g.useState([]),[x,m]=g.useState(!1),[b,f]=g.useState(!1),y=(e==null?void 0:e.title)??se(s.workflow_type),h=e==null?void 0:e.description,k=r.icon?n.jsx(kt,{icon:s.icon,tier:s.tier,className:"w-3.5 h-3.5 shrink-0"}):null,j=()=>{m(!1),c.submit(a.data,l)},N=()=>{if(r.modal){f(!0);return}if(p([]),s.input_schema){const T=Zr(s.input_schema,a.data,ge(l));if(T.length>0){p(T);return}}r.confirm?m(!0):j()},v=()=>{p([]),c.reset(),f(!0)},A=d.length>0?d:c.violations,O=c.startedId!==null,S=O&&u.outcome===L.RUNNING,P=O&&u.outcome===L.FAILED&&typeof((E=u.payload)==null?void 0:E.error)=="string"?u.payload.error:null;return n.jsxs("div",{"data-field-key":t,"data-testid":`invoke-widget-${t}`,children:[n.jsx(R,{children:y}),h&&n.jsx(M,{children:h}),n.jsxs("div",{className:"mt-1 flex flex-col gap-1.5",children:[O&&n.jsxs(n.Fragment,{children:[n.jsx(be,{outcome:u.outcome}),S&&n.jsx(At,{}),P&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:P}),!S&&n.jsx(ye,{payload:P?void 0:u.payload})]}),!S&&n.jsxs("button",{type:"button",onClick:N,disabled:c.pending,className:`self-start ${zs[r.variant]}`,"data-testid":`invoke-control-${t}`,children:[k,c.pending?"Starting…":y]}),A.length>0&&n.jsxs("div",{className:"text-2xs",role:"alert","data-testid":`invoke-issues-${t}`,children:[n.jsx("ul",{className:"space-y-0.5 text-status-error",children:A.map(T=>n.jsxs("li",{className:"flex items-start gap-1.5",children:[n.jsx(at,{className:"w-3 h-3 mt-px shrink-0",strokeWidth:1.5}),n.jsxs("span",{children:[n.jsx("span",{className:"font-semibold",children:T.field})," · ",T.message]})]},T.field))}),n.jsx("button",{type:"button",onClick:v,className:"mt-1 text-accent hover:underline","data-testid":`invoke-open-form-${t}`,children:"Open form"})]}),A.length===0&&c.error&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:c.error})]}),r.confirm&&n.jsxs(ie,{open:x,onClose:()=>m(!1),title:y,children:[n.jsx("p",{className:"text-sm text-text-secondary mb-5",children:B(r.confirm,i??{})}),n.jsxs("div",{className:"flex justify-end gap-2",children:[n.jsx("button",{type:"button",onClick:()=>m(!1),className:"btn-secondary text-xs",children:"Cancel"}),n.jsx("button",{type:"button",onClick:j,className:"btn-primary text-xs","data-testid":`invoke-confirm-${t}`,children:y})]})]}),n.jsx(Ys,{open:b,onClose:()=>f(!1),workflow:s,prefill:a})]})}const rt={"file-upload":ns,"code-editor":rs,signature:ss,"rich-text":is,markdown:os,checklist:ls,attachment:Dt,image:Dt,link:us,escalation:fs,"escalation-list":Ns,invoke:Ks},ve="textarea",ke="json";function Qs(t){return t in rt||t===ve||t===ke}function Xt(t,e=""){if(!t||typeof t!="object"||Array.isArray(t))return[];const r=t,s=[],i=r["x-lt-widget"];typeof i=="string"&&e&&!Qs(i)&&s.push({path:e,widget:i});const o=r.properties;if(o&&typeof o=="object"&&!Array.isArray(o))for(const[a,l]of Object.entries(o))s.push(...Xt(l,e?`${e}.${a}`:a));return r.items&&s.push(...Xt(r.items,e)),s}const ti=new Set(["string","number","integer","boolean","array","object"]);function ei(t,e){const r=t==null?void 0:t.type;if(typeof r=="string"&&ti.has(r))return r;if(e==null)return"null";if(Array.isArray(e))return"array";const s=typeof e;return s==="number"||s==="boolean"||s==="string"?s:"object"}const ut="dictionary",ni=new Set(["markdown","attachment","image"]);function we(t,e){if(!e)return;const r=t==null?void 0:t["x-lt-section-options"],s=r==null?void 0:r[e];return s&&typeof s=="object"?s:void 0}function ri(t,e,r){var l,c;const s=(l=t==null?void 0:t.properties)==null?void 0:l[r];if((s==null?void 0:s.readOnly)!==!0)return!1;const i=s==null?void 0:s["x-lt-widget"];if(typeof i=="string"&&ni.has(i))return!1;const o=s==null?void 0:s["x-lt-display"];if(typeof o=="string")return o===ut;const a=(c=we(t,e))==null?void 0:c.display;return typeof a=="string"?a===ut:(t==null?void 0:t["x-lt-display"])===ut}function si(t,e,r,s){var o;const i=[];for(const a of t){const[l]=a,c=i[i.length-1];if(ri(e,r,l)){(c==null?void 0:c.kind)==="dictionary"?c.entries.push(a):i.push({kind:"dictionary",entries:[a]});continue}const u=(o=e==null?void 0:e.properties)==null?void 0:o[l],d=u==null?void 0:u["x-lt-column-group"];if(s==="two-column"&&typeof d=="string"&&d.trim()){(c==null?void 0:c.kind)==="column-group"&&c.name===d?c.entries.push(a):i.push({kind:"column-group",name:d,entries:[a]});continue}i.push({kind:"field",entry:a})}return i}function ii({value:t,options:e,nullable:r,fieldKey:s,label:i,helperText:o,isRequired:a,error:l,onBlur:c,ids:u,ariaProps:d,onChange:p}){const x=t==null||t===""?"":String(t),m=e.some(b=>String(b.value)===x);return n.jsxs("div",{children:[n.jsx(R,{isRequired:a,htmlFor:u.field,children:i}),o&&n.jsx(M,{id:u.help,children:o}),n.jsxs("select",{value:m?x:"",disabled:e.length===0,onChange:b=>{const f=e.find(y=>String(y.value)===b.target.value);p(f?f.value:null),c==null||c()},onBlur:c,"data-field-key":s,className:es(!!l),...d,children:[(!m||r)&&n.jsx("option",{value:"",disabled:!r,children:"Choose…"}),e.map(b=>n.jsx("option",{value:String(b.value),children:b.label},String(b.value)))]}),n.jsx(D,{error:l,id:u.error})]})}function oi({value:t,options:e,fieldKey:r,label:s,helperText:i,isRequired:o,error:a,onBlur:l,ids:c,ariaProps:u,onChange:d}){const p=new Set(Array.isArray(t)?t:[]),x=m=>{const b=new Set(p);b.has(m)?b.delete(m):b.add(m),d(e.filter(f=>b.has(f.value)).map(f=>f.value)),l==null||l()};return n.jsxs("div",{role:"group","aria-label":s,"aria-required":o||void 0,"aria-invalid":a?!0:void 0,"aria-describedby":u["aria-describedby"],children:[n.jsx(R,{isRequired:o,children:s}),i&&n.jsx(M,{id:c.help,children:i}),e.length===0?n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No options yet"}):n.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:e.map((m,b)=>{const f=p.has(m.value);return n.jsxs("label",{className:`inline-flex items-center gap-1.5 cursor-pointer select-none px-3.5 py-2 text-sm border transition-colors rounded-[var(--lt-radius-field)] ${f?"bg-accent border-accent text-text-inverse":a?"bg-surface-field border-status-error/60 text-status-error":"bg-surface-field border-surface-field-border text-text-secondary hover:border-accent hover:text-text-primary"}`,children:[n.jsx("input",{type:"checkbox",checked:f,onChange:()=>x(m.value),className:"sr-only","data-testid":`multi-select-${r}-${String(m.value)}`,...b===0?{"data-field-key":r,id:c.field}:{}}),f&&n.jsx(Qt,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),m.label]},String(m.value))})}),n.jsx(D,{error:a,id:c.error})]})}function Yt(t){return typeof t=="string"?t:t==null?"":JSON.stringify(t,null,2)}function zt(t){try{return{ok:!0,value:JSON.parse(t)}}catch{return{ok:!1}}}function ai({value:t,fieldKey:e,label:r,helperText:s,isRequired:i,error:o,onBlur:a,ids:l,ariaProps:c,onChange:u}){const[d,p]=g.useState(()=>Yt(t));g.useEffect(()=>{if(typeof t=="string"){t!==d&&p(t);return}const m=zt(d);!(m.ok&&JSON.stringify(m.value)===JSON.stringify(t??null))&&!(d.trim()===""&&t===null)&&p(Yt(t))},[t]);const x=d.split(`
|
|
6
|
-
`).length;return n.jsxs("div",{children:[n.jsx(R,{isRequired:i,htmlFor:l.field,children:r}),s&&n.jsx(M,{id:l.help,children:s}),n.jsx("textarea",{value:d,onChange:m=>{const b=m.target.value;if(p(b),b.trim()===""){u(null);return}const f=zt(b);u(f.ok?f.value:b)},onBlur:a,spellCheck:!1,"data-field-key":e,rows:Math.min(14,Math.max(4,x)),className:`${Y(!!o)} font-mono text-xs leading-relaxed`,...c}),n.jsx(D,{error:o,id:l.error})]})}function li({fieldKey:t,label:e,values:r,fieldSchema:s,helperText:i,isRequired:o,error:a,ids:l,notice:c,context:u,onChange:d}){const p=X(s),x=p?Mr(s,u):null,m=(p==null?void 0:p.prompt)??i,b=f=>d(r.filter((y,h)=>h!==f));return n.jsxs("div",{"data-field-key":t,tabIndex:p?-1:void 0,className:"outline-none",children:[n.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[n.jsx(R,{isRequired:o,children:e}),x!==null&&n.jsxs("span",{className:"text-2xs tabular-nums text-text-tertiary","data-testid":"list-field-count",children:[r.length," of ",x]})]}),i&&(r.length>0||!p)&&n.jsx(M,{id:l.help,children:i}),r.length===0&&p?n.jsx("p",{id:l.help,className:"text-xs text-text-tertiary mt-1 italic","data-testid":"list-field-empty",children:m??"Scan to add"}):n.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1",children:r.map((f,y)=>n.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 text-2xs font-mono bg-surface-sunken rounded text-text-secondary",children:[String(f),p&&n.jsx("button",{type:"button",onClick:()=>b(y),className:"-mr-1 p-0.5 rounded text-text-quaternary hover:text-status-error hover:bg-surface-hover","aria-label":`Remove ${String(f)}`,"data-testid":"list-field-remove",children:n.jsx(tr,{className:"w-3 h-3",strokeWidth:2})})]},y))}),n.jsx(D,{error:a,id:l.error}),n.jsx(ae,{notice:c})]})}const Kt={date:"date","date-time":"datetime-local",email:"email",uri:"url"},ci={date:"max-w-48","date-time":"max-w-64"};function Ae({fieldKey:t,value:e,onChange:r,onBlur:s,schema:i,isRequired:o,isReadOnly:a,error:l,escalationContext:c,submitAttempted:u}){var P;const d=(P=i==null?void 0:i.properties)==null?void 0:P[t],p=Er(t),x=G(t,d),m=d==null?void 0:d["x-lt-widget"],b=ei(d,e),f=`lt-field-${t}`,y={field:f,help:`${f}-help`,error:`${f}-error`},h=typeof(d==null?void 0:d.description)=="string"&&d.description.length>0?d.description:void 0,k={id:f,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,"aria-describedby":l?y.error:h?y.help:void 0},j={fieldKey:t,label:x,helperText:h,isRequired:o,error:l,onBlur:s,ids:y,ariaProps:k,onChange:r},N=m==="markdown"&&typeof e=="string",v=(m==="attachment"||m==="image")&&typeof e=="string",A=!!(m&&m in rt);if(a&&!N&&!v&&!A){const E=e===null?"null":typeof e=="object"?JSON.stringify(e,null,2):String(e);return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,children:x}),n.jsx("p",{className:"text-sm text-text-secondary mt-0.5 whitespace-pre-wrap",children:E})]})}if(m===ke&&(b==="array"||b==="object"))return n.jsx(ai,{...j,value:e});if(m&&m in rt){const E=rt[m],T=o||(d==null?void 0:d["x-lt-require-all"])===!0,C={fieldKey:t,schema:d,escalationContext:c,isRequired:T,submitAttempted:u,error:l};if((d==null?void 0:d.type)==="object"){const $=typeof e=="string"?e:typeof e=="object"&&e!==null&&!Array.isArray(e)?JSON.stringify(e):"";return n.jsx(E,{...C,value:$,onChange:V=>{try{r(JSON.parse(V))}catch{r(V)}}})}if(typeof e=="string")return n.jsx(E,{...C,value:e,onChange:$=>r($)});if(typeof e=="object"&&e!==null&&!Array.isArray(e))return n.jsx(E,{...C,value:JSON.stringify(e),onChange:$=>{try{r(JSON.parse($))}catch{r($)}}})}const O=yt(d,c);if(b==="array"){if(O!==void 0&&(d==null?void 0:d["x-lt-options"])!==void 0)return n.jsx(oi,{...j,value:e,options:O})}else if(O!==void 0&&b!=="object")return n.jsx(ii,{...j,value:e,options:O,nullable:(d==null?void 0:d["x-lt-nullable"])===!0});switch(b){case"boolean":return n.jsxs("div",{children:[n.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[n.jsx("input",{type:"checkbox",checked:e===!0,onChange:E=>{r(E.target.checked),s==null||s()},className:"w-3.5 h-3.5 rounded accent-accent","data-field-key":t,...k}),n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[x,o&&n.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})]}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx(D,{error:l,id:y.error})]});case"number":case"integer":return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,htmlFor:f,children:x}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx("input",{type:"number",value:typeof e=="number"||typeof e=="string"?e:"",onChange:E=>r(parseFloat(E.target.value)||0),onBlur:s,step:"any","data-field-key":t,className:`${Y(!!l)} max-w-48`,...k}),n.jsx(D,{error:l,id:y.error})]});case"string":return S(typeof e=="string"?e:e==null?"":String(e));case"array":return!Array.isArray(e)&&!(e==null&&X(d))?S(e==null?"":String(e)):n.jsx(li,{fieldKey:t,label:x,values:Array.isArray(e)?e:[],fieldSchema:d,helperText:h,isRequired:o,error:l,ids:y,notice:p,context:c,onChange:r});case"object":{if(typeof e!="object"||e===null||Array.isArray(e))return S(e==null?"":String(e));const E=Object.entries(e);return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,children:x}),n.jsx("div",{className:"ml-4 mt-2 pl-4 border-l border-accent-faint space-y-3",children:E.map(([T,C])=>n.jsx(Ae,{fieldKey:T,value:C,onChange:$=>r({...e,[T]:$})},T))})]})}default:return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,children:x}),n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"null"})]})}function S(E){const T=d==null?void 0:d.format;if(T==="password")return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,htmlFor:f,children:x}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx("input",{type:"password",value:E,onChange:C=>r(C.target.value),onBlur:s,"data-field-key":t,className:Y(!!l),autoComplete:"off",...k}),n.jsx(D,{error:l,id:y.error})]});if(T&&T in Kt)return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,htmlFor:f,children:x}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx("input",{type:Kt[T],value:E,onChange:C=>r(C.target.value),onBlur:s,"data-field-key":t,className:`${Y(!!l)} ${ci[T]??""}`,...k}),n.jsx(D,{error:l,id:y.error})]});if(T==="textarea"||m===ve||E.includes(`
|
|
7
|
-
`)||E.length>80){const C=d==null?void 0:d.maxLength,$=d==null?void 0:d["x-lt-max-length"],V=$?Number(z($,c)):NaN,U=C??(Number.isFinite(V)?V:void 0),ct=U!==void 0&&E.length>U;return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,htmlFor:f,children:x}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx("textarea",{value:E,onChange:tt=>{r(tt.target.value),s==null||s()},onBlur:s,"data-field-key":t,className:`${Y(!!l)} leading-relaxed`,rows:Math.min(6,Math.max(3,Math.ceil(E.length/60))),...k}),U!==void 0&&n.jsxs("p",{className:`text-2xs mt-0.5 text-right tabular-nums ${ct?"text-status-error font-medium":"text-text-quaternary"}`,children:[E.length," / ",U]}),n.jsx(D,{error:l,id:y.error})]})}return n.jsxs("div",{children:[n.jsx(R,{isRequired:o,htmlFor:f,children:x}),h&&n.jsx(M,{id:y.help,children:h}),n.jsx("input",{type:"text",value:E,onChange:C=>r(C.target.value),onBlur:s,"data-field-key":t,className:Y(!!l),...k}),n.jsx(D,{error:l,id:y.error}),n.jsx(ae,{notice:p})]})}}function di({name:t,entries:e,formSchema:r,layout:s,renderField:i}){const o=si(e,r,t,s),a=we(r,t),l=(a==null?void 0:a.columns)??(s==="two-column"?2:1),c=d=>d.map(([p,x])=>{var m;return{key:p,label:G(p,(m=r==null?void 0:r.properties)==null?void 0:m[p]),value:x}}),u=()=>o.map((d,p)=>d.kind==="dictionary"?n.jsx("div",{className:s==="two-column"?"col-span-full":"",children:n.jsx(vr,{items:c(d.entries),columns:l})},`dict-${p}`):d.kind==="column-group"?n.jsx("div",{className:"@container",children:n.jsx("div",{className:"grid grid-cols-1 @grp-cols:grid-cols-2 gap-x-4 gap-y-5",children:d.entries.map(x=>i(x))})},`group-${d.name}-${p}`):i(d.entry));return n.jsxs("div",{className:t?"border border-surface-border bg-surface-sunken rounded-[var(--lt-radius-section)] p-4 animate-[section-enter_0.25s_ease-out]":"",children:[t&&n.jsx("p",{className:"mb-4 text-[1.40625rem] font-semibold tracking-wider text-heading [font-variant-caps:small-caps]",children:t}),s==="two-column"?n.jsx("div",{className:"@container",children:n.jsx("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-col-gap gap-y-5",children:u()})}):n.jsx("div",{className:"space-y-5",children:u()})]})}function ui({value:t,onChange:e,disabled:r,submitAttempted:s,escalationContext:i,onOpenHelp:o,onDisabledClick:a,disabledHint:l}){var Et,It;const[c,u]=g.useState({}),[d,p]=g.useState({}),[x,m]=g.useState(null),[b,f]=g.useState(!1),[y,h]=g.useState(new Set);g.useEffect(()=>{try{const w=JSON.parse(t);if(typeof w=="object"&&w!==null&&!Array.isArray(w)){const _={},I={};for(const[F,J]of Object.entries(w))F.startsWith("_")||F.startsWith("$")?I[F]=J:_[F]=J;u(_),p(I),m(I._form_schema&&typeof I._form_schema=="object"?I._form_schema:null),f(!1)}}catch{f(!0)}},[t]);const k=g.useCallback(w=>{u(w),e(JSON.stringify({...w,...d},null,2))},[d,e]),j=g.useCallback((w,_)=>{k({...c,[w]:_})},[c,k]),N=g.useCallback(w=>{h(_=>{if(_.has(w))return _;const I=new Set(_);return I.add(w),I})},[]);if(b)return n.jsx("p",{className:"text-xs text-status-error",children:"Unable to parse resolver data as form. Use the JSON editor below."});const v=Object.entries(c);if(v.length===0)return n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No resolver fields defined."});const A=x==null?void 0:x["x-lt-order"],O=A?[...v].sort((w,_)=>{const I=A.indexOf(w[0]),F=A.indexOf(_[0]);return(I===-1?1/0:I)-(F===-1?1/0:F)}):v,S={...i??{},resolver:c,input:c},P=O.filter(([w,_])=>{var F;const I=(F=x==null?void 0:x.properties)==null?void 0:F[w];return K(I==null?void 0:I["x-lt-showIf"],S)?!Hr(I,_):!1}),E=new Set((x==null?void 0:x.required)??[]),T=x==null?void 0:x["x-lt-layout"],C=x==null?void 0:x.title,$=x==null?void 0:x.description,V=typeof(x==null?void 0:x["x-lt-help"])=="string"||typeof(x==null?void 0:x["x-lt-context"])=="string",U=[];for(const w of P){const[_]=w,I=(Et=x==null?void 0:x.properties)==null?void 0:Et[_],F=((It=I==null?void 0:I["x-lt-section"])==null?void 0:It.trim())||null,J=U[U.length-1];!J||J.name!==F?U.push({name:F,entries:[w]}):J.entries.push(w)}const ct=([w,_])=>{var Ot;const I=(Ot=x==null?void 0:x.properties)==null?void 0:Ot[w],F=(I==null?void 0:I.readOnly)===!0,J=(I==null?void 0:I["x-lt-span"])??1,Ct=E.has(w),Ee=y.has(w)||!!s,Ie=pe(_,I,Ct,Ee,S);return n.jsx("div",{className:`animate-[field-enter_0.2s_ease-out] ${T==="two-column"&&J>=2?"col-span-full":""}`,children:n.jsx(Ae,{fieldKey:w,value:_,onChange:Ce=>j(w,Ce),onBlur:()=>N(w),schema:x,isRequired:Ct,isReadOnly:F,error:Ie,escalationContext:S,submitAttempted:!!s})},w)},tt=n.jsxs("div",{className:r?"pointer-events-none":void 0,inert:r||void 0,"aria-disabled":r||void 0,children:[C&&n.jsxs("div",{className:"mb-1 flex items-center gap-1.5",children:[n.jsx("h3",{className:"heading-3",children:C}),V&&o&&n.jsx("button",{type:"button",onClick:o,title:"Open instructions","aria-label":"Open instructions",className:"p-1 rounded-md text-text-tertiary hover:text-accent hover:bg-surface-hover transition-colors",children:n.jsx(ne,{className:"w-4 h-4",strokeWidth:1.5})})]}),$&&n.jsx("p",{className:"text-sm text-text-secondary leading-relaxed mb-6",children:$}),n.jsx("div",{className:"space-y-8",children:U.map((w,_)=>n.jsx(di,{name:w.name,entries:w.entries,formSchema:x,layout:T,renderField:ct},w.name??`__s${_}`))})]});return r?n.jsx(ts,{hint:l,onLockedClick:a,children:tt}):n.jsx("div",{className:"pb-8 max-w-form",children:tt})}export{le as E,ji as F,Vs as L,ui as R,kt as W,Ni as a,Pt as b,Tt as c,G as d,Gs as e,ge as f,Ai as g,Ls as h,Cr as i,Xt as j,Ss as l,vi as p,ys as r,wi as s,he as u,fe as v,ki as w};
|
|
8
|
-
//# sourceMappingURL=ResolverForm-B1_x8Blv.js.map
|