@hotmeshio/long-tail 0.31.0 → 0.32.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/create.js +17 -6
- package/build/api/escalations/files.d.ts +18 -0
- package/build/api/escalations/files.js +73 -0
- package/build/api/escalations/index.d.ts +1 -0
- package/build/api/escalations/index.js +4 -2
- package/build/api/escalations/metadata.js +5 -4
- package/build/api/escalations/resolve.js +6 -4
- package/build/bin/ltc.js +4 -2
- package/build/index.d.ts +2 -0
- package/build/index.js +13 -2
- package/build/lib/cli/commands/escalations.d.ts +2 -0
- package/build/lib/cli/commands/escalations.js +12 -4
- package/build/lib/storage/s3.js +1 -0
- package/build/modules/config.d.ts +9 -0
- package/build/modules/config.js +9 -0
- package/build/routes/escalations/single.js +11 -0
- package/build/scripts/bambu-boat.d.ts +4 -2
- package/build/scripts/bambu-boat.js +4 -2
- package/build/scripts/bambu-print.d.ts +2 -1
- package/build/scripts/bambu-print.js +7 -3
- package/build/scripts/machine-line.js +2 -1
- package/build/sdk/index.d.ts +4 -0
- package/build/sdk/index.js +2 -0
- package/build/services/escalation/aggregate-resolved-sql.d.ts +19 -0
- package/build/services/escalation/aggregate-resolved-sql.js +57 -0
- package/build/services/escalation/aggregate-sql.d.ts +6 -1
- package/build/services/escalation/aggregate-sql.js +33 -12
- package/build/services/escalation/aggregate-validate.d.ts +5 -2
- package/build/services/escalation/aggregate-validate.js +7 -4
- package/build/services/escalation/aggregates.js +5 -3
- package/build/services/escalation/crud.js +3 -0
- package/build/services/escalation/file-links.d.ts +39 -0
- package/build/services/escalation/file-links.js +118 -0
- package/build/services/escalation/resolver-validation.d.ts +33 -0
- package/build/services/escalation/resolver-validation.js +22 -6
- package/build/services/orchestrator/condition.d.ts +20 -4
- package/build/services/orchestrator/condition.js +27 -8
- package/build/shared/form-validation/display-only-widgets.d.ts +3 -2
- package/build/shared/form-validation/display-only-widgets.js +3 -2
- package/build/shared/form-validation/index.d.ts +2 -0
- package/build/shared/form-validation/index.js +2 -0
- package/build/shared/form-validation/x-lt-confidence-facets.d.ts +27 -0
- package/build/shared/form-validation/x-lt-confidence-facets.js +60 -0
- package/build/shared/form-validation/x-lt-confidence.d.ts +57 -0
- package/build/shared/form-validation/x-lt-confidence.js +177 -0
- package/build/shared/form-validation/x-lt-help.d.ts +1 -1
- package/build/shared/form-validation/x-lt-help.js +1 -1
- package/build/system/mcp-servers/admin/escalations.js +4 -2
- package/build/system/mcp-servers/admin/labels-schemas.d.ts +4 -4
- package/build/system/mcp-servers/admin/schemas.d.ts +111 -70
- package/build/system/mcp-servers/admin/schemas.js +8 -3
- package/build/system/mcp-servers/human-queue-files.d.ts +8 -0
- package/build/system/mcp-servers/human-queue-files.js +32 -0
- package/build/system/mcp-servers/human-queue-schemas.d.ts +7 -0
- package/build/system/mcp-servers/human-queue-schemas.js +4 -1
- package/build/system/mcp-servers/human-queue.d.ts +1 -0
- package/build/system/mcp-servers/human-queue.js +23 -16
- package/build/system/seed/tool-manifests-admin.js +1 -1
- package/build/system/seed/tool-manifests-escalation.js +13 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/analytics.d.ts +14 -3
- package/build/types/analytics.js +3 -1
- package/build/types/escalation.d.ts +34 -0
- package/build/types/escalation.js +72 -1
- package/build/types/index.d.ts +4 -4
- package/build/types/index.js +5 -1
- package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js → AdminDashboard-C25co77C.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-BafKaq50.js.map → AdminDashboard-C25co77C.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js → AgentConfigPage-CsCpI15j.js} +5 -5
- package/dashboard/dist/assets/{AgentConfigPage-CFHf31DT.js.map → AgentConfigPage-CsCpI15j.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js → AgentDetailPage-ByaepsB5.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-CEvz5rJr.js.map → AgentDetailPage-ByaepsB5.js.map} +1 -1
- package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js → AgentsPage-ByHU42SO.js} +2 -2
- package/dashboard/dist/assets/{AgentsPage-DjQaio0O.js.map → AgentsPage-ByHU42SO.js.map} +1 -1
- package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js → AvailableEscalationsPage--o6qcz7-.js} +2 -2
- package/dashboard/dist/assets/{AvailableEscalationsPage-UB03VTJx.js.map → AvailableEscalationsPage--o6qcz7-.js.map} +1 -1
- package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js → BotPicker-B3y3H3fs.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-C7MNWOF7.js.map → BotPicker-B3y3H3fs.js.map} +1 -1
- package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js → BulkAssignModal-DMNIkIn6.js} +2 -2
- package/dashboard/dist/assets/{BulkAssignModal-h5fX-_cV.js.map → BulkAssignModal-DMNIkIn6.js.map} +1 -1
- package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js → CapabilitiesPage-BekfKHlk.js} +2 -2
- package/dashboard/dist/assets/{CapabilitiesPage-BIzDl-ZT.js.map → CapabilitiesPage-BekfKHlk.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js → CollapsibleSection-BAteHgBG.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-B5TivtEg.js.map → CollapsibleSection-BAteHgBG.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js → ConfirmDeleteModal-BNY287W9.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-CB4nKePb.js.map → ConfirmDeleteModal-BNY287W9.js.map} +1 -1
- package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js → ConnectedAppsPage-LLiiH3da.js} +2 -2
- package/dashboard/dist/assets/{ConnectedAppsPage-B3S5gVWw.js.map → ConnectedAppsPage-LLiiH3da.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js → CountdownTimer-DBLURjxh.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-BHVIq3kA.js.map → CountdownTimer-DBLURjxh.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js → CredentialConfirmModal-BqpY3yen.js} +2 -2
- package/dashboard/dist/assets/{CredentialConfirmModal-w0AGmCIe.js.map → CredentialConfirmModal-BqpY3yen.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js → CredentialsPage-CW3_dbm2.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-BtCGBJrT.js.map → CredentialsPage-CW3_dbm2.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js → CronLabel-CR6DiZZr.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-BG1rZK-5.js.map → CronLabel-CR6DiZZr.js.map} +1 -1
- package/dashboard/dist/assets/{DataTable-FjFhx0SE.js → DataTable-C-IlbLhY.js} +2 -2
- package/dashboard/dist/assets/{DataTable-FjFhx0SE.js.map → DataTable-C-IlbLhY.js.map} +1 -1
- package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js → DropZone-CHmz59w4.js} +2 -2
- package/dashboard/dist/assets/{DropZone-D8ZVdEb5.js.map → DropZone-CHmz59w4.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js → ElapsedCell-CEapQvgU.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-l4m8Yvfv.js.map → ElapsedCell-CEapQvgU.js.map} +1 -1
- package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js → EntityTimelinePanel-DqD_BpJM.js} +2 -2
- package/dashboard/dist/assets/{EntityTimelinePanel-BOHlIaxF.js.map → EntityTimelinePanel-DqD_BpJM.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js → EscalationListSchemaPage-DDKcrVbb.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-BotlwlX3.js.map → EscalationListSchemaPage-DDKcrVbb.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js → EscalationSchemaPage-BZHZfJiQ.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-CfZSVOSD.js.map → EscalationSchemaPage-BZHZfJiQ.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js → EscalationTimeline-Dv0XUgQX.js} +2 -2
- package/dashboard/dist/assets/{EscalationTimeline-CCKpuRBU.js.map → EscalationTimeline-Dv0XUgQX.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js → EscalationTitleSelect-BN7D52wT.js} +2 -2
- package/dashboard/dist/assets/{EscalationTitleSelect-cpTzPHiW.js.map → EscalationTitleSelect-BN7D52wT.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js → EscalationsOverview-DE6EPkhT.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DS-nK0qV.js.map → EscalationsOverview-DE6EPkhT.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-UfebhJf0.js → EventTable-CiV62txY.js} +2 -2
- package/dashboard/dist/assets/{EventTable-UfebhJf0.js.map → EventTable-CiV62txY.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-newA5l-X.js → FilterBar-WyNQPyQ1.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-newA5l-X.js.map → FilterBar-WyNQPyQ1.js.map} +1 -1
- package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js → GraphInvokePage--gn48yUD.js} +2 -2
- package/dashboard/dist/assets/{GraphInvokePage-6SCDyQcK.js.map → GraphInvokePage--gn48yUD.js.map} +1 -1
- package/dashboard/dist/assets/{HomePage-BEc-XdKj.js → HomePage-IR_jgBE8.js} +2 -2
- package/dashboard/dist/assets/{HomePage-BEc-XdKj.js.map → HomePage-IR_jgBE8.js.map} +1 -1
- package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js → LabelJobsPage-C8LSts4O.js} +2 -2
- package/dashboard/dist/assets/{LabelJobsPage-BO50zXT5.js.map → LabelJobsPage-C8LSts4O.js.map} +1 -1
- package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js → LinePage-CS7uUv00.js} +2 -2
- package/dashboard/dist/assets/{LinePage-NYxJQ-ex.js.map → LinePage-CS7uUv00.js.map} +1 -1
- package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js → LinesPage-CJprjG39.js} +3 -3
- package/dashboard/dist/assets/{LinesPage-RbWTaQRh.js.map → LinesPage-CJprjG39.js.map} +1 -1
- package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js → ListToolbar-YP3uwvXC.js} +2 -2
- package/dashboard/dist/assets/{ListToolbar-B-E9-toh.js.map → ListToolbar-YP3uwvXC.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js → McpOverview-Ce-m2JON.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-Shcf9QhZ.js.map → McpOverview-Ce-m2JON.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js → McpQueryDetailPage-CtnUqO1v.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-D8kmjy2v.js.map → McpQueryDetailPage-CtnUqO1v.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js → McpQueryPage-C-lqUPlg.js} +2 -2
- package/dashboard/dist/assets/{McpQueryPage-ck-o5m8A.js.map → McpQueryPage-C-lqUPlg.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js → McpRunDetailPage-MnIe0hwz.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-BJKkM9-3.js.map → McpRunDetailPage-MnIe0hwz.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js → McpRunsPage-CpYLXVPF.js} +2 -2
- package/dashboard/dist/assets/{McpRunsPage-DqhHfD5G.js.map → McpRunsPage-CpYLXVPF.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js → NamespacePill-DilSgLyE.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill--uIaGtrN.js.map → NamespacePill-DilSgLyE.js.map} +1 -1
- package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js → OperationsPage-xe6bAwaq.js} +2 -2
- package/dashboard/dist/assets/{OperationsPage-D6B9Vv__.js.map → OperationsPage-xe6bAwaq.js.map} +1 -1
- package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js → OperatorDashboard-Cm9_C0EP.js} +2 -2
- package/dashboard/dist/assets/{OperatorDashboard-CIH1cxjQ.js.map → OperatorDashboard-Cm9_C0EP.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-DClJ33fV.js → PageHeader-B7SOvLT8.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-DClJ33fV.js.map → PageHeader-B7SOvLT8.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js → PageHeaderWithStats-DWKap7gs.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-C-TrbKQL.js.map → PageHeaderWithStats-DWKap7gs.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js → PersonaDetailPage-CvstNkh3.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-DjvfyIph.js.map → PersonaDetailPage-CvstNkh3.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js → PersonasPage-ba1KeInW.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-D7ryA8Vc.js.map → PersonasPage-ba1KeInW.js.map} +1 -1
- package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js → PortalPage-GDgG88TM.js} +2 -2
- package/dashboard/dist/assets/{PortalPage-D3ybr0mo.js.map → PortalPage-GDgG88TM.js.map} +1 -1
- package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js → PrintLabelsPanel-BkUN00Qd.js} +2 -2
- package/dashboard/dist/assets/{PrintLabelsPanel-D0HF5x8b.js.map → PrintLabelsPanel-BkUN00Qd.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js → ProcessDetailPage-BKu9_wWv.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-0xS9EdHe.js.map → ProcessDetailPage-BKu9_wWv.js.map} +1 -1
- package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js → ProcessesListPage-BfJYTU_v.js} +2 -2
- package/dashboard/dist/assets/{ProcessesListPage-93SMj1Fd.js.map → ProcessesListPage-BfJYTU_v.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js +8 -0
- package/dashboard/dist/assets/ResolverForm-DZmY6wJV.js.map +1 -0
- package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js → RoleDetailPage-vGeth3ve.js} +3 -3
- package/dashboard/dist/assets/{RoleDetailPage-DlUOJWSB.js.map → RoleDetailPage-vGeth3ve.js.map} +1 -1
- package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js → RolePill-KhT-Yehm.js} +2 -2
- package/dashboard/dist/assets/{RolePill-BjD1Qw5y.js.map → RolePill-KhT-Yehm.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js → RolesPage-CwxHOkqF.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-DqhHSvaw.js.map → RolesPage-CwxHOkqF.js.map} +1 -1
- package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js → RosterWidget-DRVj9xyk.js} +2 -2
- package/dashboard/dist/assets/{RosterWidget-BrIq61HR.js.map → RosterWidget-DRVj9xyk.js.map} +1 -1
- package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js → RunAsSelector-DvPX3XmA.js} +2 -2
- package/dashboard/dist/assets/{RunAsSelector-D6zQrCNr.js.map → RunAsSelector-DvPX3XmA.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js → ScanCodesPage-Cptbe7h8.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-B2S9DR2f.js.map → ScanCodesPage-Cptbe7h8.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js → ScanSchemeDetailPage-DquNJ7Or.js} +4 -4
- package/dashboard/dist/assets/{ScanSchemeDetailPage-gpxKN-pL.js.map → ScanSchemeDetailPage-DquNJ7Or.js.map} +1 -1
- package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js → ScanStationPage-DaRfGGa8.js} +2 -2
- package/dashboard/dist/assets/{ScanStationPage-B-UTgXsG.js.map → ScanStationPage-DaRfGGa8.js.map} +1 -1
- package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js → SchemeMatchFields-w-pffi98.js} +2 -2
- package/dashboard/dist/assets/{SchemeMatchFields-BK24aa7K.js.map → SchemeMatchFields-w-pffi98.js.map} +1 -1
- package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js → ScopeBadge-HeuiMJhW.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-ofLQ6HW-.js.map → ScopeBadge-HeuiMJhW.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js → StickyPagination-D6fDHCcJ.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-CgVv7vc_.js.map → StickyPagination-D6fDHCcJ.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js → StreamMessageDetail-BmYVQrzl.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-B9sxDVw4.js.map → StreamMessageDetail-BmYVQrzl.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js → SwimlaneTimeline-KCqA-PeL.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-DQc0CYSL.js.map → SwimlaneTimeline-KCqA-PeL.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-47qVYzke.js → TagInput-CZBAu1Hy.js} +2 -2
- package/dashboard/dist/assets/{TagInput-47qVYzke.js.map → TagInput-CZBAu1Hy.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js → TaskDetailPage-WtVv2z7T.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-D6VOsA1f.js.map → TaskDetailPage-WtVv2z7T.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js → TaskQueuePill-DWGn3CWx.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-C5KmdXAl.js.map → TaskQueuePill-DWGn3CWx.js.map} +1 -1
- package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js → TasksListPage-DMYQNDIw.js} +2 -2
- package/dashboard/dist/assets/{TasksListPage-DG8hvO8G.js.map → TasksListPage-DMYQNDIw.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js → TimeAgo-BkY4lahi.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-CL02EhFi.js.map → TimeAgo-BkY4lahi.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js → TimestampCell-BBPb9TI2.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BE7oKVJg.js.map → TimestampCell-BBPb9TI2.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js → ToolPill-B2aRk0o1.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-Cp9Drk1s.js.map → ToolPill-B2aRk0o1.js.map} +1 -1
- package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js → ToolTestPanel-CNMbmymK.js} +2 -2
- package/dashboard/dist/assets/{ToolTestPanel-CRecLh6S.js.map → ToolTestPanel-CNMbmymK.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js → TopicDetailPage-CodBRylU.js} +2 -2
- package/dashboard/dist/assets/{TopicDetailPage-QzkinTfN.js.map → TopicDetailPage-CodBRylU.js.map} +1 -1
- package/dashboard/dist/assets/TopicsPage-BtD8jTU7.js +2 -0
- package/dashboard/dist/assets/{TopicsPage-D8dW6J65.js.map → TopicsPage-BtD8jTU7.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-Dw3R_zrl.js → UserName-D6y9AnuY.js} +2 -2
- package/dashboard/dist/assets/{UserName-Dw3R_zrl.js.map → UserName-D6y9AnuY.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js → WorkflowExecutionPage-BeffqV13.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-BTocv8or.js.map → WorkflowExecutionPage-BeffqV13.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js → WorkflowPill-BNm3R4pP.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill-BiLYq__w.js.map → WorkflowPill-BNm3R4pP.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js → WorkflowsDashboard-m4Co5diK.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsDashboard-CIPEt3et.js.map → WorkflowsDashboard-m4Co5diK.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js → WorkflowsOverview-DNoI9qY8.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-Bj4MJIE-.js.map → WorkflowsOverview-DNoI9qY8.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js → YamlWorkflowDetailPage-8Vpc4Oxy.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-DMEk5k9-.js.map → YamlWorkflowDetailPage-8Vpc4Oxy.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js → YamlWorkflowsPage-D1JNwDSg.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-F2yyyoiB.js.map → YamlWorkflowsPage-D1JNwDSg.js.map} +1 -1
- package/dashboard/dist/assets/{agents-mSgxEPpI.js → agents-LTHUsfv3.js} +2 -2
- package/dashboard/dist/assets/{agents-mSgxEPpI.js.map → agents-LTHUsfv3.js.map} +1 -1
- package/dashboard/dist/assets/{bots-p4Hp0CV6.js → bots-CQxehfBo.js} +2 -2
- package/dashboard/dist/assets/{bots-p4Hp0CV6.js.map → bots-CQxehfBo.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-D_-I_SXR.js → capabilities-DECTnJrK.js} +2 -2
- package/dashboard/dist/assets/{capabilities-D_-I_SXR.js.map → capabilities-DECTnJrK.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-DjdoQnRU.js → controlplane-Dx20db5g.js} +2 -2
- package/dashboard/dist/assets/{controlplane-DjdoQnRU.js.map → controlplane-Dx20db5g.js.map} +1 -1
- package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js → escalation-columns-CVFGUB79.js} +2 -2
- package/dashboard/dist/assets/{escalation-columns-R_IEVQjQ.js.map → escalation-columns-CVFGUB79.js.map} +1 -1
- package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js +2 -0
- package/dashboard/dist/assets/escalation-items-Bj7bkwWy.js.map +1 -0
- package/dashboard/dist/assets/index-BD4O-ISx.js +13 -0
- package/dashboard/dist/assets/{index-Dk2KKo0z.js.map → index-BD4O-ISx.js.map} +1 -1
- package/dashboard/dist/assets/{index-D9RAN9sA.js → index-BL8XOMHT.js} +2 -2
- package/dashboard/dist/assets/{index-D9RAN9sA.js.map → index-BL8XOMHT.js.map} +1 -1
- package/dashboard/dist/assets/index-C2vRDf96.js +2 -0
- package/dashboard/dist/assets/{index-C5osluV3.js.map → index-C2vRDf96.js.map} +1 -1
- package/dashboard/dist/assets/{index-DUYAGxwc.js → index-CNgyKRQ8.js} +2 -2
- package/dashboard/dist/assets/{index-DUYAGxwc.js.map → index-CNgyKRQ8.js.map} +1 -1
- package/dashboard/dist/assets/{index-DlJkZ12b.js → index-CdXPbBgs.js} +2 -2
- package/dashboard/dist/assets/{index-DlJkZ12b.js.map → index-CdXPbBgs.js.map} +1 -1
- package/dashboard/dist/assets/{index-BuCEhhnl.js → index-CnBUFCV7.js} +2 -2
- package/dashboard/dist/assets/{index-BuCEhhnl.js.map → index-CnBUFCV7.js.map} +1 -1
- package/dashboard/dist/assets/index-CoLciFzq.css +1 -0
- package/dashboard/dist/assets/{index-D-FYj9jT.js → index-D_TSx-k_.js} +2 -2
- package/dashboard/dist/assets/{index-D-FYj9jT.js.map → index-D_TSx-k_.js.map} +1 -1
- package/dashboard/dist/assets/{index-C_dAJUzh.js → index-Do9Y6Fgt.js} +16 -16
- package/dashboard/dist/assets/index-Do9Y6Fgt.js.map +1 -0
- package/dashboard/dist/assets/{index-D6K_IgCz.js → index-Dq1zjilj.js} +2 -2
- package/dashboard/dist/assets/{index-D6K_IgCz.js.map → index-Dq1zjilj.js.map} +1 -1
- package/dashboard/dist/assets/{index-BEMdD58x.js → index-Dz4LSzA2.js} +2 -2
- package/dashboard/dist/assets/{index-BEMdD58x.js.map → index-Dz4LSzA2.js.map} +1 -1
- package/dashboard/dist/assets/{index-D7L_VoBD.js → index-g1MmARVR.js} +2 -2
- package/dashboard/dist/assets/{index-D7L_VoBD.js.map → index-g1MmARVR.js.map} +1 -1
- package/dashboard/dist/assets/{index-BxbQmeqh.js → index-qEd4FVmN.js} +2 -2
- package/dashboard/dist/assets/{index-BxbQmeqh.js.map → index-qEd4FVmN.js.map} +1 -1
- package/dashboard/dist/assets/index-v4rQ8ctJ.js +3 -0
- package/dashboard/dist/assets/index-v4rQ8ctJ.js.map +1 -0
- package/dashboard/dist/assets/{knowledge-DSsPTqkK.js → knowledge-CT1I1t1S.js} +2 -2
- package/dashboard/dist/assets/{knowledge-DSsPTqkK.js.map → knowledge-CT1I1t1S.js.map} +1 -1
- package/dashboard/dist/assets/{machines-DSgGtqqr.js → machines-Dsuw-l1y.js} +2 -2
- package/dashboard/dist/assets/{machines-DSgGtqqr.js.map → machines-Dsuw-l1y.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-Cg-_uLw8.js → mcp-C3o5wzO8.js} +2 -2
- package/dashboard/dist/assets/{mcp-Cg-_uLw8.js.map → mcp-C3o5wzO8.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-DQombEK_.js → mcp-query-IvkIG7gH.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-DQombEK_.js.map → mcp-query-IvkIG7gH.js.map} +1 -1
- package/dashboard/dist/assets/pdf-CcZYcL52.js +13 -0
- package/dashboard/dist/assets/pdf-CcZYcL52.js.map +1 -0
- package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js +2 -0
- package/dashboard/dist/assets/pdf.worker.min-DgRcL-GR.js.map +1 -0
- package/dashboard/dist/assets/pdf.worker.min-yatZIOMy.mjs +21 -0
- package/dashboard/dist/assets/{personas-DYrcoVBu.js → personas-zWlWjj6j.js} +2 -2
- package/dashboard/dist/assets/{personas-DYrcoVBu.js.map → personas-zWlWjj6j.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-wdb4xsey.js → pipelines-BKNvBMdf.js} +2 -2
- package/dashboard/dist/assets/{pipelines-wdb4xsey.js.map → pipelines-BKNvBMdf.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-Bil7gvm9.js → tasks-BQSO3Sjv.js} +2 -2
- package/dashboard/dist/assets/{tasks-Bil7gvm9.js.map → tasks-BQSO3Sjv.js.map} +1 -1
- package/dashboard/dist/assets/{topics-wBqaVhRR.js → topics-Dr_1TtUM.js} +2 -2
- package/dashboard/dist/assets/{topics-wBqaVhRR.js.map → topics-Dr_1TtUM.js.map} +1 -1
- package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js → useContainerWidth-D38m8eub.js} +2 -2
- package/dashboard/dist/assets/{useContainerWidth-DSLp1gEm.js.map → useContainerWidth-D38m8eub.js.map} +1 -1
- package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js → useDebouncedValue-C5ESASfo.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-CwrY8TpV.js.map → useDebouncedValue-C5ESASfo.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-Sod_xApz.js → useNamespace-DLLOJRYY.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-Sod_xApz.js.map → useNamespace-DLLOJRYY.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js → useYamlActivityEvents-D0XNXli1.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CKLInV3C.js.map → useYamlActivityEvents-D0XNXli1.js.map} +1 -1
- package/dashboard/dist/assets/{validate-CYhW1xMJ.js → validate-Be4GWnJ1.js} +2 -2
- package/dashboard/dist/assets/{validate-CYhW1xMJ.js.map → validate-Be4GWnJ1.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-ed7mYQw4.js → vendor-icons-D48ijXZU.js} +209 -189
- package/dashboard/dist/assets/vendor-icons-D48ijXZU.js.map +1 -0
- package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js → yaml-workflows-BQpO-G-I.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-C20qHo3L.js.map → yaml-workflows-BQpO-G-I.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/api/http/escalations.md +54 -7
- package/docs/api/mcp/admin.md +7 -5
- package/docs/api/mcp/human-queue.md +17 -1
- package/docs/api/sdk/escalations.md +30 -4
- package/docs/api/sdk/files.md +19 -0
- package/docs/cli.md +4 -1
- package/docs/escalation-analytics.md +17 -0
- package/docs/hitl/files.md +104 -0
- package/docs/hitl/x-lt-confidence.md +139 -0
- package/docs/hitl/x-lt-layout.md +19 -0
- package/docs/hitl/x-lt-widget.md +20 -0
- package/docs/hitl-guide.md +6 -0
- package/docs/machines.md +2 -2
- package/docs/mcp.md +2 -1
- package/package.json +1 -1
- package/dashboard/dist/assets/ResolverForm-DfogHDzl.js +0 -8
- package/dashboard/dist/assets/ResolverForm-DfogHDzl.js.map +0 -1
- package/dashboard/dist/assets/TopicsPage-D8dW6J65.js +0 -2
- package/dashboard/dist/assets/escalation-items-BGZlJMpk.js +0 -2
- package/dashboard/dist/assets/escalation-items-BGZlJMpk.js.map +0 -1
- package/dashboard/dist/assets/index-BUmz0NMg.css +0 -1
- package/dashboard/dist/assets/index-C5osluV3.js +0 -2
- package/dashboard/dist/assets/index-C_dAJUzh.js.map +0 -1
- package/dashboard/dist/assets/index-Dk2KKo0z.js +0 -13
- package/dashboard/dist/assets/index-FiNThtNU.js +0 -3
- package/dashboard/dist/assets/index-FiNThtNU.js.map +0 -1
- package/dashboard/dist/assets/vendor-icons-ed7mYQw4.js.map +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import{a as m,j as n,b as kn}from"./vendor-query-DvWWuNIB.js";import{al as gt,am as Le,ae as Fe,aU as En,aV as It,aD as ft,Z as An,az as Cn,aW as In,aX as On,n as Tn,r as Rn,U as _n,aY as Sn,aZ as Ln,J as Fn,a_ as Mn,a$ as $n,s as Pn,b0 as Dn,b1 as Wn,b2 as Un,S as Gn,b3 as Hn,b4 as qn,aC as Jn,V as Vn,K as Bn,b as Xn,b5 as Yn,a as zn,b6 as Zn,b7 as Qn,b8 as Kn,ai as ts,ap as Me,b9 as es,ba as ns,bb as ss,bc as rs,bd as is,be as os,bf as as,bg as ls,a5 as cs,M as ds,bh as us,bi as xs,l as ps,bj as fs,bk as ms,a4 as hs,aO as gs,bl as bs,bm as ys,bn as js,G as Ns,bo as vs,bp as ws,bq as $e,br as ks,F as Es,bs as As,t as Cs,a9 as Is,bt as Os,aA as Ts,bu as Rs,bv as _s,bw as Ss,bx as Ls,by as Fs,at as Ms,bz as $s,g as Ps,aF as Ds,bA as Ws,bB as Us,bC as Gs,aq as Pe,a1 as Hs,W as qs,bD as Js,a8 as De,d as Vs,e as Bs,bE as Xs,u as Ys,bF as zs,bG as Zs,X as Qs,aE as wt,bH as Ks}from"./vendor-icons-D48ijXZU.js";import{b as X,h as nt,i as bt,e as dt,c as We,F,d as D,O as Ue,f as tr,I as er,R as nr,s as sr,g as U,j as tt,k as rr}from"./RosterWidget-DRVj9xyk.js";import{m as Ot,c as ir,f as or,a as Z,g as ar,h as lr,b as cr,j as dr,D as ur}from"./escalation-items-Bj7bkwWy.js";import{ah as st,aq as xr,b2 as Tt,a1 as pr,ab as fr,s as mr,b3 as hr,m as gr,J as br,b4 as yr,R as jr,b5 as Nr,az as vr,b6 as wr,b0 as kr,i as Er,M as Ge,aC as Ar,aD as Cr,aE as Ir,b7 as jt,b8 as ee,b9 as Or,ba as Tr}from"./index-Do9Y6Fgt.js";import{L as Rt}from"./vendor-react-_9U4mKFr.js";import{r as _t,a as He}from"./validate-Be4GWnJ1.js";import{S as Rr}from"./StatusBadge-DHVwxre2.js";import{E as _r}from"./constants-CeBBTzf5.js";import{V as Sr}from"./WorkflowPill-BNm3R4pP.js";import{u as Lr,a as Fr}from"./useContainerWidth-D38m8eub.js";const qe=m.createContext(null),ea=qe.Provider;function Mr(t){const e=m.useContext(qe);return e&&e.field===t?e:null}function Je({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 $r={SCHEMA_VALIDATION:"schema_validation"};function Pr(t){return typeof t=="object"&&t!==null&&t.code===$r.SCHEMA_VALIDATION&&Array.isArray(t.violations)}function ne(t,e={}){const s=Ot(e,t),r={_form_schema:t};for(const[i,o]of Object.entries(t.properties??{})){const a=o.type==="object"?{}:"";r[i]=s[i]??o.default??a}return JSON.stringify(r,null,2)}function H(t,e){const s=e==null?void 0:e.title;if(typeof s=="string"&&s.trim().length>0)return s.trim();const r=t.split(/[_-]+/).filter(Boolean);return r.length<=1?t:r.map(i=>Dr(i)?i:i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Dr(t){return t.length>1&&t===t.toUpperCase()&&/[A-Z]/.test(t)}function Ve({errors:t,schema:e}){const s=r=>{const i=document.querySelector(`[data-field-key="${r}"]`);i&&(i.scrollIntoView({behavior:"smooth",block:"center"}),i.focus({preventScroll:!0}))};return t.length===0?n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No errors to display."}):n.jsxs("div",{className:"space-y-1",role:"alert","aria-live":"polite",children:[n.jsxs("p",{className:"text-2xs font-semibold uppercase tracking-wider text-status-error mb-4",children:[t.length," ",t.length===1?"issue":"issues"," to resolve"]}),n.jsx("div",{className:"space-y-1.5",children:t.map(({field:r,message:i})=>{var o;return n.jsxs("button",{onClick:()=>s(r),className:"w-full text-left flex items-start gap-3 px-3 py-2.5 rounded hover:bg-status-error/5 transition-colors group",children:[n.jsx(gt,{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:H(r,(o=e==null?void 0:e.properties)==null?void 0:o[r])}),n.jsx("p",{className:"text-2xs text-text-tertiary group-hover:text-text-secondary transition-colors leading-snug mt-0.5",children:i})]})]},r)})}),n.jsx("p",{className:"text-2xs text-text-quaternary mt-4 px-3",children:"Click an issue to scroll to and focus the field."})]})}const Wr="x-lt-scan",Ur="x-lt-scan-submit",se="x-lt-order",Gr="Expected {{expected}}";function Q(t){const e=t==null?void 0:t[Wr];if(!e||typeof e!="object"||Array.isArray(e))return null;const s=e,r=Array.isArray(s.schemes)?s.schemes.filter(o=>Number.isInteger(o)):[];if(r.length===0)return null;const i=Array.isArray(s.expect)?s.expect.filter(o=>typeof o=="string"):void 0;return{schemes:r,value:s.value==="code"?"code":"target",...i!=null&&i.length?{expect:i}:{},expectError:typeof s["expect-error"]=="string"?s["expect-error"]:Gr,multiplicity:s.multiplicity==="count"?"count":"once",...typeof s.prompt=="string"&&s.prompt.trim()?{prompt:s.prompt}:{}}}function Hr(t,e){if(t===e)return!0;const s=/^[0-9]{8,14}$/;return s.test(t)&&s.test(e)&&t.padStart(14,"0")===e.padStart(14,"0")}function Be(t,e){if(!t.expect)return null;const s=[];for(const r of t.expect){const i=X(r,e),o=Array.isArray(i)?i:[i];for(const a of o)typeof a=="string"&&a?s.push(a):typeof a=="number"&&s.push(String(a))}return s}function qr(t,e){return t.expectError.replace(/\{\{\s*expected\s*\}\}/g,[...new Set(e)].join(", ")||"nothing")}function Xe(t,e,s){const r=Q(e);if(!r)return;const i=Be(r,s);if(i===null)return;const o=Array.isArray(t)?t:t==null||t===""?[]:[t],a=r.multiplicity==="count"?[...i]:[...new Set(i)];for(const l of o){const c=a.findIndex(u=>Hr(String(l),u));if(c===-1)return qr(r,i);a.splice(c,1)}}function Jr(t,e){const s=Q(t);if(s){const i=Be(s,e);if(i!==null)return s.multiplicity==="count"?i.length:new Set(i).size}const r=t==null?void 0:t.maxItems;return typeof r=="number"?r:null}function na(t,e,s,r){const i=Q(s);if(!i)return{ok:!1,error:"This field takes no scans"};const o=i.value==="code"?e.code:e.target,a=s.type==="array",l=a?[...Array.isArray(t)?t:[],o]:o,c=Xe(l,s,r);if(c)return{ok:!1,error:c};const u=s.maxItems;return a&&typeof u=="number"&&l.length>u?{ok:!1,error:`At most ${u}`}:{ok:!0,value:l}}function Vr(t,e){if(e.type==="array"){const s=e.maxItems;return typeof s!="number"||!Array.isArray(t)||t.length<s}return t==null||t===""}function sa(t,e,s,r){const i=(t==null?void 0:t.properties)??{},o=Array.isArray(t==null?void 0:t[se])?t[se]:[],l=[...o.filter(c=>c in i),...Object.keys(i).filter(c=>!o.includes(c))].filter(c=>{var u;return(u=Q(i[c]))==null?void 0:u.schemes.includes(s)});return l.length===0?null:r&&l.includes(r)?r:l.find(c=>Vr(e[c],i[c]))??l[0]}function ra(t){return(t==null?void 0:t[Ur])===!0}function ia(t,e){const s=(t==null?void 0:t.properties)??{},r=new Set((t==null?void 0:t.required)??[]),i=Object.keys(s).filter(o=>Q(s[o])&&r.has(o));return i.length===0?!1:i.every(o=>{const a=e[o];if(Array.isArray(a)){const l=s[o].minItems;return a.length>=(typeof l=="number"?l:1)}return a!=null&&a!==""})}const Ye="x-lt-options";function re(t){return typeof t=="string"||typeof t=="boolean"||typeof t=="number"&&Number.isFinite(t)}function Br(t){return Array.isArray(t)&&t.length>0&&!t.some(e=>typeof e=="string")}function ie(t){if(re(t))return{value:t,label:String(t)};if(t&&typeof t=="object"&&!Array.isArray(t)){const e=t,s=e.value!==void 0?e.value:e.id;if(re(s)&&typeof e.label=="string"&&e.label.length>0)return{value:s,label:e.label}}return null}function yt(t,e){if(!t)return;const s=t.enum;if(Array.isArray(s)&&s.length>0)return s.map(a=>({value:a,label:String(a)}));const r=t[Ye];if(Br(r)){const a=r.map(ie).filter(l=>l!==null);return a.length>0?a:void 0}const i=(typeof r=="string"?[r]:Array.isArray(r)?r:[]).filter(a=>typeof a=="string"&&a.length>0);if(i.length===0)return;const o=i.some(nt)?[]:void 0;for(const a of i){let l=a;if(nt(a)){const d=bt(a,e);if(d===null)continue;l=d}const c=X(l,e);if(!Array.isArray(c))continue;const u=c.map(ie).filter(d=>d!==null);if(u.length>0)return u}return o}function St(t,e){const s=(typeof t=="string"?[t]:Array.isArray(t)?t:[]).filter(r=>typeof r=="string"&&r.length>0);if(s.length===0||!e)return[];for(const r of s){let i=r;if(nt(r)){const a=bt(r,e);if(a===null)continue;i=a}const o=X(i,e);if(Array.isArray(o)&&o.length>0)return o}return[]}const Xr="x-lt-default-checked";function Yr(t,e,s){if((t==null?void 0:t["x-lt-widget"])!=="checklist"||t[Xr]!==!0||e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0)return null;const r=St(t["x-lt-source"],s);return r.length===0?null:Object.fromEntries(r.map(i=>[i.id,!0]))}function zr(t,e,s){if((e==null?void 0:e["x-lt-widget"])!=="checklist"||e["x-lt-require-all"]!==!0)return;const i=St(e["x-lt-source"],s).filter(l=>l.required!==!1);if(i.length===0)return;const o=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},a=i.filter(l=>!o[l.id]).length;if(a!==0)return`${a} of ${i.length} checks incomplete`}const oe="Invalid JSON";function mt(t){return(t==null?void 0:t["x-lt-widget"])==="json"}function ze(t){return mt(t)||(t==null?void 0:t[Ye])!==void 0}function ae(t,e){return`${t} ${e}${t===1?"":"s"}`}function Lt(t,e){const s=e==null?void 0:e.type;if(typeof s=="string"&&!(t==null||t===""))switch(s){case"string":return typeof t=="string"?void 0:"Expected text";case"number":return typeof t=="number"&&Number.isFinite(t)?void 0:"Expected a number";case"integer":return typeof t=="number"&&Number.isInteger(t)?void 0:"Expected a whole number";case"boolean":return typeof t=="boolean"?void 0:"Expected true or false";case"array":return Array.isArray(t)?void 0:mt(e)&&typeof t=="string"?oe:"Expected a list";case"object":return typeof t=="object"&&!Array.isArray(t)?void 0:mt(e)&&typeof t=="string"?oe:"Expected an object";default:return}}function Ft(t,e,s){if(!e)return;const r=yt(e,s);if(r!==void 0&&t!==void 0&&t!==null&&t!==""&&!Array.isArray(t)){if(r.length===0)return"No valid options for this selection";if(!r.some(o=>o.value===t))return`Must be one of: ${r.map(o=>String(o.value)).join(", ")}`}const i=Xe(t,e,s);if(i)return i;if(Array.isArray(t))return ze(e)?Zr(t,e,r,s):void 0;if(t!==null&&typeof t=="object")return Qr(t,e,s);if(typeof t=="string"){const o=t.trim();if(o==="")return;const a=B(e.minLength,e["x-lt-min-length"],s);if(a!==void 0&&o.length<a)return`Minimum ${a} character${a===1?"":"s"}`;const l=B(e.maxLength,e["x-lt-max-length"],s);if(l!==void 0&&o.length>l)return`Maximum ${l} characters (${o.length} entered)`;const c=e.pattern;if(c)try{if(!new RegExp(c).test(o))return e["x-lt-pattern-error"]??"Invalid format"}catch{}const u=e.format;if(u==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))return"Enter a valid email address";if(u==="uri"&&!/^https?:\/\/.+/.test(o))return"Enter a valid URL"}if(typeof t=="number"){const o=B(e.minimum,e["x-lt-minimum"],s),a=B(e.exclusiveMinimum,void 0,s),l=B(e.maximum,e["x-lt-maximum"],s),c=B(e.exclusiveMaximum,void 0,s);if(o!==void 0&&t<o)return`Minimum value is ${o}`;if(a!==void 0&&t<=a)return`Must be greater than ${a}`;if(l!==void 0&&t>l)return`Maximum value is ${l}`;if(c!==void 0&&t>=c)return`Must be less than ${c}`}}function Zr(t,e,s,r){if(t.length===0)return;if(s!==void 0){if(s.length===0)return"No valid options for this selection";if(t.some(l=>!s.some(c=>c.value===l)))return`Must be one of: ${s.map(l=>String(l.value)).join(", ")}`}const i=B(e.minItems,void 0,r);if(i!==void 0&&t.length<i)return`At least ${ae(i,"item")}`;const o=B(e.maxItems,void 0,r);if(o!==void 0&&t.length>o)return`At most ${ae(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=Lt(t[c],l)??Ft(t[c],l,r);if(u)return`Item ${c+1}: ${u}`}}}function Qr(t,e,s){const r=Object.entries(t);if(r.length===0)return;const i=e.propertyNames,o=Array.isArray(i==null?void 0:i.enum)?i.enum.map(String):void 0;if(o){const l=r.find(([c])=>!o.includes(c));if(l)return`Unknown key "${l[0]}". Allowed: ${o.join(", ")}`}const a=e.additionalProperties;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(const[c,u]of r){const d=Lt(u,l)??Ft(u,l,s);if(d)return`"${c}": ${d}`}}}function B(t,e,s){if(typeof t=="number")return t;if(typeof e=="string"&&s){const r=e.indexOf(".");if(r!==-1){const i=e.slice(0,r),o=e.slice(r+1),a=s[i];if(a&&typeof a=="object"){const l=o.split(".");let c=a;for(const u of l)if(c=c[u],c===void 0)break;if(typeof c=="number")return c;if(typeof c=="string"){const u=Number(c);if(!Number.isNaN(u))return u}}}}}function Ze(t,e,s,r,i){if(!r)return;if(s){if(t==null||typeof t=="boolean"&&!t&&yt(e,i)===void 0||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0&&ze(e))return"Required";if(typeof t=="object"&&!Array.isArray(t)&&t!==null){const l=Object.values(t);if(l.length===0||!mt(e)&&l.every(c=>!c))return"Required"}}const o=Lt(t,e);if(o)return o;const a=zr(t,e,i);return a||Ft(t,e,i)}const Kr="x-lt-require-any";function ti(t){const e=t==null?void 0:t[Kr];return Array.isArray(e)?e.filter(s=>Array.isArray(s)).map(s=>s.filter(r=>typeof r=="string"&&r.length>0)).filter(s=>s.length>0):[]}function ei(t){return t==null?!1:typeof t=="string"?t.trim().length>0:!0}const ni="x-lt-require-sum";function si(t){const e=t==null?void 0:t[ni];if(!Array.isArray(e))return[];const s=[];for(const r of e){if(!r||typeof r!="object"||Array.isArray(r))continue;const{fields:i,minimum:o}=r;if(!Array.isArray(i))continue;const a=i.filter(l=>typeof l=="string"&&l.length>0);a.length!==0&&(o!==void 0&&typeof o!="number"||s.push({fields:a,minimum:typeof o=="number"?o:1}))}return s}function ri(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 Qe(t,e,s){if(!t)return[];const r=t.properties??{},i=new Set(t.required??[]),o={...s??{},resolver:e,input:e},a=[];for(const[l,c]of Object.entries(r)){if(!dt(c["x-lt-showIf"],o))continue;const u=Ze(e[l],c,i.has(l)&&!We(c),!0,o);u&&a.push({field:l,message:u})}for(const l of ti(t)){const c=l.filter(d=>r[d]&&dt(r[d]["x-lt-showIf"],o));if(c.length===0||c.some(d=>ei(e[d])))continue;const u=c.map(d=>r[d].title??d);a.push({field:c[0],message:`Enter a value for at least one of: ${u.join(", ")}`})}for(const l of si(t)){const c=l.fields.filter(p=>r[p]&&dt(r[p]["x-lt-showIf"],o));if(c.length===0||c.reduce((p,x)=>p+ri(e[x]),0)>=l.minimum)continue;const d=c.map(p=>r[p].title??p);a.push({field:c[0],message:`Combined value of ${d.join(", ")} must be at least ${l.minimum}`})}return a}function ii(t,e,s){if(!t)return[];const r=Ot(e,t);return Qe(t,r,s)}function le(t,e){let s;try{s=JSON.parse(t)}catch{return{payload:null,errors:[],parseError:"Invalid JSON"}}const r=s._form_schema;if(r){const a=Qe(r,s,e);if(a.length>0)return{payload:null,errors:a,parseError:null}}const{_form_schema:i,...o}=s;return{payload:ir(o,r),errors:[],parseError:null}}const oi=2600;function ai({hint:t,onLockedClick:e,measure:s="max-w-form",children:r}){const[i,o]=m.useState(null);m.useEffect(()=>{if(!i)return;const l=setTimeout(()=>o(null),oi);return()=>clearTimeout(l)},[i]);const a=l=>{if(e==null||e(),t){const c=Math.min(Math.max(l.clientX,96),window.innerWidth-96);o(u=>({x:c,y:l.clientY,n:((u==null?void 0:u.n)??0)+1}))}};return n.jsxs("div",{className:`pb-8 ${s}`,onClick:a,"data-testid":"locked-form-frame",children:[r,t&&i&&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:i.x,top:i.y-12},onAnimationEnd:()=>o(null),"data-testid":"locked-form-hint",children:[n.jsx(Le,{className:"w-3.5 h-3.5 text-accent shrink-0",strokeWidth:1.5}),t]},i.n)]})}const z={ERROR:"error",WARNING:"warning",INFO:"info"},ce="envelope.confidence",de="envelope.formDefaults",Ke=[{below:.6,label:"Low",tone:z.ERROR},{below:.85,label:"Check",tone:z.WARNING}],li=new Set(Object.values(z));function ci(t){if(!Array.isArray(t))return[...Ke];const e=new Map;for(const s of t){const r=s??{};if(typeof r.below!="number"||!Number.isFinite(r.below)||r.below<=0||r.below>1||typeof r.label!="string"||r.label.trim().length===0)continue;const i=typeof r.tone=="string"&&li.has(r.tone)?r.tone:z.WARNING;e.has(r.below)||e.set(r.below,{below:r.below,label:r.label.trim(),tone:i})}return[...e.values()].sort((s,r)=>s.below-r.below)}function di(t){const e=t==null?void 0:t["x-lt-confidence"];if(e===!0)return{scores:ce,proposed:de,tranches:[...Ke],facets:!1};if(!e||typeof e!="object"||Array.isArray(e))return null;const s=e;return{scores:typeof s.scores=="string"&&s.scores?s.scores:ce,proposed:typeof s.proposed=="string"&&s.proposed?s.proposed:de,tranches:ci(s.tranches),facets:s.facets===!0}}function ui(t,e){for(const s of t)if(e<s.below)return s;return null}function tn(t){return t.trim().replace(/\s+/g," ")}function kt(t){return typeof t=="string"?JSON.stringify(tn(t)):Array.isArray(t)?`[${t.map(kt).join(",")}]`:t&&typeof t=="object"?`{${Object.keys(t).sort().map(s=>`${JSON.stringify(s)}:${kt(t[s])}`).join(",")}}`:JSON.stringify(t)}function ue(t){return t==null?"":typeof t=="object"?kt(t):tn(String(t))}function xi(t,e){return ue(t)!==ue(e)}function xe(t,e){if(!t||typeof t!="object"||Array.isArray(t))return{};try{return Ot(t,e)}catch{return{}}}function pi(t,e,s,r){const i=e.properties??{},o=xe(X(t.scores,s),e),a=xe(X(t.proposed,s),e),l={};for(const[c,u]of Object.entries(i)){if((u==null?void 0:u["x-lt-confidence"])===!1||or(u))continue;const d=o[c],p=typeof d=="number"&&Number.isFinite(d)?Math.min(Math.max(d,0),1):void 0,x=c in a;if(p===void 0&&!x)continue;const f=p===void 0?null:ui(t.tranches,p);l[c]={...p!==void 0?{score:p}:{},...f?{tranche:f}:{},hasProposal:x,...x?{proposed:a[c]}:{},changed:x&&xi(a[c],r[c])}}return l}function fi(t,e,s){var o;const r=t.tranches.map(a=>({tranche:a,fields:[]})),i=[];for(const a of s){const l=e[a];l&&(l.tranche&&((o=r.find(c=>c.tranche.below===l.tranche.below))==null||o.fields.push(a)),l.changed&&i.push(a))}return{tranches:r,changed:i}}function mi({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=m.useRef(null),a=(r==null?void 0:r.accept)??void 0,l=H(t,r),c=r==null?void 0:r.description,u=m.useCallback(p=>{var g;const x=(g=p.target.files)==null?void 0:g[0];if(!x)return;const f=new FileReader;f.onload=()=>{typeof f.result=="string"&&s(f.result)},f.readAsDataURL(x)},[s]),d=e.startsWith("data:");return n.jsxs("div",{children:[n.jsx(F,{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 hi({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=H(t,r),a=r==null?void 0:r.description,l=(r==null?void 0:r["x-lt-language"])??"",c=m.useCallback(u=>{if(u.key==="Tab"){u.preventDefault();const d=u.currentTarget,p=d.selectionStart,x=d.selectionEnd,f=e.substring(0,p)+" "+e.substring(x);s(f),requestAnimationFrame(()=>{d.selectionStart=d.selectionEnd=p+2})}},[e,s]);return n.jsxs("div",{children:[n.jsxs(F,{isRequired:i,children:[o,l&&n.jsx("span",{className:"ml-2 text-text-tertiary/60 normal-case font-normal",children:l})]}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:u=>s(u.target.value),onKeyDown:c,className:"input w-full mt-1 font-mono text-xs leading-relaxed",rows:10,spellCheck:!1})]})}function gi({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=m.useRef(null),[a,l]=m.useState(!1),c=H(t,r),u=r==null?void 0:r.description;m.useEffect(()=>{const h=o.current;if(!h)return;const y=h.getContext("2d");if(y&&(y.lineWidth=2,y.lineCap="round",y.strokeStyle="#1E1535",e&&e.startsWith("data:"))){const b=new Image;b.onload=()=>y.drawImage(b,0,0),b.src=e}},[]);const d=m.useCallback(h=>{const y=o.current,b=y.getBoundingClientRect(),N=b.width>0?y.width/b.width:1,j=b.height>0?y.height/b.height:1;return"touches"in h?{x:(h.touches[0].clientX-b.left)*N,y:(h.touches[0].clientY-b.top)*j}:{x:(h.clientX-b.left)*N,y:(h.clientY-b.top)*j}},[]),p=m.useCallback(h=>{var N;l(!0);const y=(N=o.current)==null?void 0:N.getContext("2d");if(!y)return;const b=d(h);y.beginPath(),y.moveTo(b.x,b.y)},[d]),x=m.useCallback(h=>{var N;if(!a)return;const y=(N=o.current)==null?void 0:N.getContext("2d");if(!y)return;const b=d(h);y.lineTo(b.x,b.y),y.stroke()},[a,d]),f=m.useCallback(()=>{l(!1);const h=o.current;h&&s(h.toDataURL("image/png"))},[s]),g=m.useCallback(()=>{const h=o.current;if(!h)return;const y=h.getContext("2d");y&&(y.clearRect(0,0,h.width,h.height),s(""))},[s]);return n.jsxs("div",{children:[n.jsx(F,{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:f,onMouseLeave:f,onTouchStart:p,onTouchMove:x,onTouchEnd:f})}),n.jsx("button",{type:"button",onClick:g,className:"mt-1 text-2xs text-text-tertiary hover:text-accent transition-colors",children:"Clear"})]})}function bi({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const o=H(t,r),a=r==null?void 0:r.description;return n.jsxs("div",{children:[n.jsx(F,{isRequired:i,children:o}),a&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),n.jsx("textarea",{value:e,onChange:l=>s(l.target.value),className:"input w-full mt-1 text-sm leading-relaxed",rows:8,placeholder:"Supports plain text. Markdown formatting is preserved."})]})}function yi({fieldKey:t,value:e,onChange:s,schema:r,isRequired:i}){const[o,a]=m.useState("write"),l=H(t,r),c=r==null?void 0:r.description;return(r==null?void 0:r.readOnly)===!0?n.jsx(st,{content:e,className:"my-1"}):n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-center justify-between",children:[n.jsx(F,{isRequired:i,children:l}),n.jsx("div",{className:"flex items-center gap-0.5",children:["write","preview"].map(d=>n.jsx("button",{type:"button",onClick:()=>a(d),className:`px-2 py-0.5 text-2xs rounded transition-colors ${o===d?"bg-accent/10 text-accent font-semibold":"text-text-quaternary hover:text-text-secondary"}`,children:d==="write"?"Write":"Preview"},d))})]}),c&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:c}),o==="write"?n.jsx("textarea",{value:e,onChange:d=>s(d.target.value),className:"input w-full mt-1 text-sm font-mono leading-relaxed",rows:10,placeholder:"Write markdown — headings, lists, tables, code blocks, and links all render."}):n.jsx("div",{className:"mt-1 px-3 py-2 border border-surface-border rounded min-h-[120px]",children:e.trim()?n.jsx(st,{content:e}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"Nothing to preview."})})]})}const ji=28;function Ni({fieldKey:t,value:e,onChange:s,schema:r,escalationContext:i,isRequired:o,submitAttempted:a,error:l}){const c=(r==null?void 0:r["x-lt-require-all"])===!0,u=St(r==null?void 0:r["x-lt-source"],i);let d={};try{e&&(d=JSON.parse(e))}catch{}const p=(()=>{const j=Yr(r,d,i);return j?JSON.stringify(j):null})();m.useEffect(()=>{p&&s(p)},[p]);const x=j=>s(JSON.stringify({...d,[j]:!d[j]})),f=H(t,r),g=r==null?void 0:r.description;if(u.length===0)return n.jsxs(n.Fragment,{children:[n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No checklist items. None of the field's x-lt-source paths resolved on this escalation."}),l&&n.jsx("p",{className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]});const h=r==null?void 0:r["x-lt-variant"],y=h==="chips"||h==="rows"?h:c||u.some(j=>j.label.length>ji)?"rows":"chips",b=u.filter(j=>d[j.id]).length,N=(u.find(j=>!d[j.id]&&j.required!==!1)??u[0]).id;return n.jsxs("div",{role:"group","aria-label":f,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,children:[n.jsx(F,{isRequired:o,children:f}),g&&n.jsx(D,{children:g}),y==="chips"?n.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:u.map(j=>{const w=d[j.id]??!1,E=!w&&!!a&&b===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)] ${w?"bg-accent border-accent text-text-inverse":E?"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:w,onChange:()=>x(j.id),className:"sr-only","data-testid":`checklist-item-${j.id}`,...j.id===N?{"data-field-key":t}:{}}),w&&n.jsx(Fe,{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 w=d[j.id]??!1,E=!w&&!!a&&(c?j.required!==!1:b===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 ${E?"bg-status-error/5":"hover:bg-surface-hover"}`,children:[n.jsx("input",{type:"checkbox",checked:w,onChange:()=>x(j.id),className:`mt-0.5 w-3.5 h-3.5 shrink-0 rounded ${E?"accent-status-error":"accent-accent"}`,"data-testid":`checklist-item-${j.id}`,...j.id===N?{"data-field-key":t}:{}}),n.jsxs("span",{className:`text-sm leading-snug transition-colors ${E?"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 ${E?"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:[b," selected",o&&b===0&&!!a&&n.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(check at least one)"})]}):n.jsxs(n.Fragment,{children:[b," / ",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&&b===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 vi=/\.(png|jpe?g|gif|webp|avif|bmp|svg)(\?.*)?$/i;function wi(t){var r,i,o,a;const e=t.trim();if(!e)return{kind:"none"};const s=(i=(r=/^data:([^;,]+)[;,]/.exec(e))==null?void 0:r[1])==null?void 0:i.toLowerCase();if(s)return s.startsWith("image/")?{kind:"image",src:e}:{kind:"file",href:e,label:s==="application/pdf"?"PDF":s,isData:!0};if(/^https?:\/\//i.test(e)){if(vi.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 pe({fieldKey:t,value:e,schema:s}){const[r,i]=m.useState(!1),o=wi(e??""),a=t.replace(/[_-]/g," "),l=s==null?void 0:s.description,c=n.jsxs(n.Fragment,{children:[n.jsx("label",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:a}),l&&n.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:l})]});return o.kind==="none"?n.jsxs("div",{children:[c,n.jsx("p",{className:"text-xs text-text-quaternary italic mt-1",children:"No attachment"})]}):o.kind==="image"?n.jsxs("div",{children:[c,n.jsxs("div",{className:"mt-1",children:[n.jsx("button",{type:"button",onClick:()=>i(!0),className:"block rounded-[0.125em] border border-surface-border overflow-hidden hover:border-accent transition-colors",title:"View full size",children:n.jsx("img",{src:o.src,alt:t.replace(/[_-]/g," "),className:"max-h-48 max-w-full object-contain","data-testid":`attachment-image-${t}`})}),r&&n.jsx("div",{className:"fixed inset-0 z-[100] bg-text-primary/60 backdrop-blur-sm flex items-center justify-center p-8 cursor-zoom-out",onClick:()=>i(!1),role:"dialog","aria-modal":"true","aria-label":`${a} — full size`,children:n.jsx("img",{src:o.src,alt:a,className:"max-h-[90vh] max-w-[90vw] object-contain"})})]})]}):n.jsxs("div",{children:[c,n.jsx("div",{className:"mt-1",children:n.jsxs("a",{href:o.href,...o.isData?{download:`${t}.${o.label==="PDF"?"pdf":"bin"}`}:{target:"_blank",rel:"noopener noreferrer"},className:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors","data-testid":`attachment-link-${t}`,children:[n.jsx(En,{className:"w-3.5 h-3.5",strokeWidth:1.5}),o.isData?`Download ${o.label}`:`Open ${o.label}`,o.isData?n.jsx(It,{className:"w-3 h-3",strokeWidth:1.5}):n.jsx(ft,{className:"w-3 h-3",strokeWidth:1.5})]})})]})}function ki({fieldKey:t,schema:e,escalationContext:s}){const r=(e==null?void 0:e["x-lt-href"])??"",i=r&&s?Z(r,s):r,o=(e==null?void 0:e.title)??(e==null?void 0:e.description)??"Open",a=e==null?void 0:e.description,l=i.startsWith("/"),c=!i.trim();return n.jsxs("div",{"data-field-key":t,children:[n.jsx(F,{children:o}),a&&n.jsx(D,{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(Rt,{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(ft,{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(ft,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]})})]})}const fe="—";function Ei(t,e){if(!t||!e)return"";const s=t.indexOf(".");if(s===-1)return"";const r=t.slice(0,s),i=t.slice(s+1);try{const o=ar(e[r],i);return typeof o=="string"?o:""}catch{return""}}function Ai(t,e){if(!t||t===fe)return fe;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:Tt(t)}return t}function Ci({fieldKey:t,schema:e,escalationContext:s}){const r=e==null?void 0:e["x-lt-source"],i=(e==null?void 0:e["x-lt-fields"])??[],o=(e==null?void 0:e.title)??"Linked escalation",a=e==null?void 0:e.description,l=Ei(r,s),{data:c,isLoading:u,isError:d}=xr(l);return n.jsxs("div",{"data-field-key":t,children:[n.jsx(F,{children:o}),a&&n.jsx(D,{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(Oi,{}):c?n.jsx(Ii,{esc:c,fields:i,fieldKey:t}):n.jsx("p",{className:"text-xs text-text-quaternary italic",children:"No linked record"})})]})}function Ii({esc:t,fields:e,fieldKey:s}){if(!t)return null;const r=_t(t);return n.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2","data-testid":`escalation-widget-card-${s}`,children:[n.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t.type,t.subtype&&t.subtype!==t.type?` · ${t.subtype}`:""]}),n.jsx(Rr,{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=Z(i.value,r),a=Ai(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," · ",Tt(t.created_at)]}),n.jsx(Ue,{to:`/escalations/detail/${t.id}`})]})]})}function Oi(){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 Ti(t,e){if(!t)return{};const s={};for(const[r,i]of Object.entries(t))s[r]=typeof i=="string"?Z(i,e):i;return s}function Ri(t,e,s){const r=Ti(t.facets,e),i={role:t.role,status:t.status??"pending",facets:r,limit:t.limit,enabled:!!(t.role||Object.keys(r).length)};return t.assigned==="me"?{...i,assigned_to:s,available:!1,enabled:i.enabled&&!!s}:t.assigned==="any"?i:{...i,available:t.available??!0}}const me="—";function _i(t,e){if(!t||t===me)return me;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:Tt(t)}return t}function Et(t,e){return typeof t=="string"?Z(t,e):Array.isArray(t)?t.map(s=>Et(s,e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([s,r])=>[s,Et(r,e)])):t}const Si="continue",Li=[{label:"Description",value:"{{escalation.description}}"},{label:"Role",value:"{{escalation.role}}"},{label:"Age",value:"{{escalation.created_at}}",format:"age"}];function Fi({fieldKey:t,schema:e,escalationContext:s}){const r=(e==null?void 0:e["x-lt-query"])??{},i=(e==null?void 0:e["x-lt-columns"])??Li,o=((e==null?void 0:e["x-lt-actions"])??[]).filter(T=>!(Array.isArray(T.roles)&&T.roles.length>0)),a=(e==null?void 0:e.title)??"Related items",l=e==null?void 0:e.description,c=s??{},{user:u}=pr(),d=Ri(r,c,u==null?void 0:u.userId),{data:p,isLoading:x}=fr({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:lr({columns:i,actions:o})?"envelope":void 0}),f=(p==null?void 0:p.escalations)??[],g=mr(),[h,y]=m.useState({}),[b,N]=m.useState(null),[j,w]=m.useState(null),E=tr(),O=(T,C)=>{w(null),E(Si,()=>L(T,C))},A=(T,C)=>{C.confirm?w({id:T.id,action:C}):O(T,C)},L=async(T,C)=>{const _=_t(T);N(T.id),y(k=>({...k,[T.id]:""}));try{await g.mutateAsync({id:T.id,resolverPayload:Et(C.resolverPayload,_)})}catch(k){y(R=>({...R,[T.id]:k.message}))}finally{N(null)}};return n.jsxs("div",{"data-field-key":t,children:[n.jsx(F,{children:a}),l&&n.jsx(D,{children:l}),n.jsx("div",{className:"mt-1","data-testid":`escalation-list-widget-${t}`,children:x?n.jsx($i,{columns:i.length}):n.jsx(Mi,{escalations:f,columns:i,fieldKey:t,actions:o,onAction:A,confirming:j,onConfirm:T=>j&&O(T,j.action),onCancel:()=>w(null),pendingRow:b,rowErrors:h})})]})}function Mi({escalations:t,columns:e,fieldKey:s,actions:r,onAction:i,confirming:o,onConfirm:a,onCancel:l,pendingRow:c,rowErrors:u}){return t.length===0?n.jsx("p",{className:"text-xs text-text-quaternary italic py-1","data-testid":`escalation-list-empty-${s}`,children:"No items found"}):n.jsxs("table",{className:"w-full text-xs border-collapse","data-testid":`escalation-list-table-${s}`,children:[n.jsx("thead",{children:n.jsxs("tr",{className:"border-b border-surface-border",children:[e.map(d=>n.jsx("th",{className:"text-left text-2xs font-semibold uppercase tracking-wider text-text-tertiary pb-1 pr-3 last:pr-0",children:d.label},d.label)),r.length>0&&n.jsx("th",{className:"w-px"}),n.jsx("th",{className:"w-8"})]})}),n.jsx("tbody",{children:t.map(d=>{const p=_t(d),x=u[d.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(f=>{const g=Z(f.value,p),h=_i(g,f.format);return n.jsx("td",{className:"py-1 pr-3 last:pr-0 text-text-primary align-top",children:h},f.label)}),r.length>0&&n.jsxs("td",{className:"py-1 pr-2 align-top whitespace-nowrap",children:[(o==null?void 0:o.id)===d.id?n.jsx(er,{message:Z(o.action.confirm??"",p),onConfirm:()=>a(d),onCancel:l,testId:`escalation-list-confirm-${d.id}`}):r.map(f=>n.jsx("button",{type:"button",onClick:()=>i(d,f),disabled:c===d.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-${d.id}`,children:f.label},f.label)),x&&n.jsx("p",{className:"text-2xs text-status-error mt-0.5 whitespace-normal max-w-[16rem]","data-testid":`escalation-list-action-error-${d.id}`,children:x})]}),n.jsx("td",{className:"py-1 pl-2 align-top",children:n.jsx(Ue,{to:`/escalations/detail/${d.id}`})})]},d.id)})})]})}function $i({columns:t}){return n.jsx("div",{className:"space-y-1.5 animate-pulse",children:[0,1,2].map(e=>n.jsx("div",{className:"flex gap-4",children:Array.from({length:t},(s,r)=>n.jsx("div",{className:"h-3 bg-surface-sunken rounded flex-1"},r))},e))})}function en(t,e){return{metadata:t??{},...e?{lookup:e}:{}}}const Pi="x-lt-invoke",rt={LINK:"link",BUTTON:"button"},Di=/^\{\{\s*([^{}]+?)\s*\}\}$/;function ut(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function Wi(t){return t===rt.LINK||t===rt.BUTTON}function Ui(t){const e=t==null?void 0:t[Pi];if(!ut(e))return null;const s=e.workflow;if(typeof s!="string"||s.trim().length===0)return null;const r=e.confirm;return{workflow:s.trim(),data:ut(e.data)?e.data:{},metadata:ut(e.metadata)?e.metadata:{},modal:e.modal===!0,confirm:typeof r=="string"&&r.trim().length>0?r:null,variant:Wi(e.variant)?e.variant:rt.LINK,icon:e.icon!==!1}}function ht(t,e){if(typeof t=="string"){const s=Di.exec(t);if(s){const r=X(s[1],e??void 0);return r===null?void 0:r}return nt(t)?bt(t,e??void 0)??void 0:t}if(Array.isArray(t))return t.map(s=>ht(s,e)).filter(s=>s!==void 0);if(ut(t)){const s={};for(const[r,i]of Object.entries(t)){const o=ht(i,e);o!==void 0&&(s[r]=o)}return s}return t}function Gi(t,e){return{data:ht(t.data,e),metadata:ht(t.metadata,e)}}const Mt={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"},Hi=new Set(Object.values(Mt));function qi(t){return typeof t=="string"&&Hi.has(t)}const Ji={Activity:Hs,AlertTriangle:Pe,Archive:Gs,Award:Us,Barcode:Ws,Bell:Ds,Bot:Ps,Box:$s,Boxes:Ms,Building2:Fs,Calendar:Ls,Camera:Ss,ClipboardCheck:_s,ClipboardList:Rs,Clock:Ts,Cog:Os,Cpu:Is,Database:Cs,Download:It,Droplets:As,Factory:Es,Fan:ks,FileText:$e,Flag:ws,Flame:vs,Gauge:Ns,Hammer:js,Heart:ys,Image:bs,Key:gs,Layers:hs,Leaf:ms,LifeBuoy:fs,ListChecks:ps,Lock:Le,Mail:xs,Map:us,Megaphone:ds,MessageSquare:cs,Package:ls,Palette:as,PenTool:os,Pill:is,Power:rs,Printer:ss,Receipt:ns,Recycle:es,RefreshCw:Me,Rocket:ts,Route:Kn,Ruler:Qn,Scale:Zn,ScanBarcode:zn,Scissors:Yn,Search:Xn,Send:Bn,Server:Vn,ShieldCheck:Jn,ShoppingCart:qn,Snowflake:Hn,Sparkles:Gn,Star:Un,Store:Wn,Sun:Dn,Tag:Pn,TestTube:$n,Thermometer:Mn,Trash2:Fn,Truck:Ln,Upload:Sn,User:_n,Users:Rn,Wand2:Tn,Warehouse:On,Wifi:In,Wrench:Cn,Zap:An},he=Object.values(Mt),Vi=Object.fromEntries(Object.entries(Mt).map(([t,e])=>[e,t]));function Bi(t){return qi(t)?Ji[t]:null}function oa(t){const e=t.trim().toLowerCase().replace(/[\s_-]+/g,"");return e?he.filter(s=>s.toLowerCase().includes(e)||Vi[s].toLowerCase().replace(/_/g,"").includes(e)):[...he]}function $t({icon:t,tier:e,className:s,strokeWidth:r=1.5}){const i=Bi(t)??Sr[e]??qs;return n.jsx(i,{className:s,strokeWidth:r,"aria-hidden":!0})}function Xi(t){return`${t.domain}/${t.key} ${t.current||t.version===null?"(current)":`v${t.version}`}`}const $={RUNNING:"running",COMPLETED:"completed",FAILED:"failed"};function ge(t,e){return`lt.events.system.workflow.${t}.${e}`}function Pt(t){const[e,s]=m.useState($.RUNNING),[r,i]=m.useState(void 0);return m.useEffect(()=>{s($.RUNNING),i(void 0)},[t]),hr(t?[ge(t,"completed"),ge(t,"failed")]:[],o=>{if(o.workflowId!==t)return;const a=o.type.endsWith(".failed");s(a?$.FAILED:$.COMPLETED),i(o.data),o.data===void 0&&gr(`/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:r}}const Yi={[$.RUNNING]:"Working…",[$.COMPLETED]:"Completed",[$.FAILED]:"Failed"};function nn({outcome:t,className:e=""}){const s=t===$.FAILED?"text-status-error":t===$.COMPLETED?"text-status-success":"text-text-secondary";return n.jsxs("p",{className:`flex items-center gap-1.5 text-xs ${s} ${e}`,role:"status","data-testid":"run-outcome",children:[Yi[t],t===$.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0})]})}function sn({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(yr,{data:t})})}function zi({workflowId:t,outcome:e,executionPath:s}){const r=e===$.FAILED?"text-status-error":"text-status-success",i=e===$.RUNNING?"Started":e===$.COMPLETED?"Completed":"Failed";return n.jsxs("p",{className:"flex items-center gap-1.5 text-xs min-w-0",role:"status","data-testid":"started-run",children:[n.jsx("span",{className:r,children:i}),e===$.RUNNING&&n.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-accent animate-pulse","aria-hidden":!0}),n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx("span",{className:"font-mono text-text-secondary truncate",children:t}),s&&n.jsxs(n.Fragment,{children:[n.jsx("span",{className:"text-text-quaternary",children:"·"}),n.jsx(Rt,{to:s,className:"text-accent hover:underline shrink-0",children:"View workflow →"})]})]})}function Zi({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(br,{data:t,label:"Result"})})}const Qi="/workflows/executions",G={PAGE:"page",MODAL:"modal"};function rn(t,e){const{realIsBuilder:s}=jr(),r=Nr(),[i,o]=m.useState(null),[a,l]=m.useState([]),[c,u]=m.useState(null),d=m.useCallback(()=>{o(null),l([]),u(null),r.reset()},[r]);return{submit:m.useCallback(async(x,f)=>{o(null),l([]),u(null);const g={...f};e.certified&&(g.certified=!0);try{const h=await r.mutateAsync({workflowType:t.workflow_type,data:x,metadata:g,...e.overrideBot?{execute_as:e.overrideBot}:{}});u(h.workflowId)}catch(h){h instanceof vr&&Pr(h.body)?(l(h.body.violations),o(h.body.error)):o(h instanceof Error?h.message:"Invocation failed")}},[r,e.certified,e.overrideBot,t.workflow_type]),reset:d,pending:r.isPending,error:i,violations:a,startedId:c,executionPath:c&&s?`${Qi}/${encodeURIComponent(c)}`:null}}function Dt(){const{connected:t}=wr();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(Js,{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 Ki={[G.PAGE]:"sticky bottom-0 z-10 bg-surface border-t border-surface-border/40 pt-3 pb-16 -mb-16",[G.MODAL]:"border-t border-surface-border/40 pt-3"};function on({onSubmit:t,onSubmitAgain:e,pending:s,error:r,issueCount:i=0,onShowIssues:o,startedId:a,executionPath:l,host:c=G.PAGE}){const u=c===G.PAGE,d=Pt(u?a??"":""),p=u&&a!==null;return n.jsxs("div",{className:Ki[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(Dt,{}),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(gt,{className:"w-3.5 h-3.5",strokeWidth:1.5}),i," ",i===1?"issue":"issues"," to resolve"]}):r?n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:r}):null,p&&n.jsx(zi,{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:s,className:"btn-primary px-8 py-2","data-testid":"invoke-start",children:s?"Submitting…":"Submit"})})]}),p&&d.outcome!==$.RUNNING&&n.jsx(Zi,{payload:d.payload})]})}const at="invoke-help",to=380,J={INSTRUCTIONS:"instructions",ISSUES:"issues"};function eo({view:t,onViewChange:e,onClose:s,helpMarkdown:r,errors:i,schema:o}){const a=[];r&&a.push({id:J.INSTRUCTIONS,icon:De,label:"Instructions",content:n.jsx(st,{content:r})}),a.push({id:J.ISSUES,icon:gt,label:"Issues",content:n.jsx(Ve,{errors:i,schema:o})});const l=a.some(c=>c.id===t)?t:a[0].id;return n.jsx(Er,{views:a,activeId:l,onViewChange:c=>e(c),onClose:s,stickyClassName:"h-full min-h-0",labelInline:!0})}function no({schema:t,context:e,errors:s,enabled:r=!0}){const i=kr(),o=r?i==null?void 0:i.setPanel:void 0,a=r?i==null?void 0:i.closePanel:void 0,l=(i==null?void 0:i.ownerKey)??null,c=(i==null?void 0:i.open)??!1,[u,d]=m.useState(null),p=m.useMemo(()=>cr(t,e),[t,e]),x=m.useCallback(()=>{d(null),a==null||a(at)},[a]);m.useEffect(()=>{!o||!u||o(n.jsx(eo,{view:u,onViewChange:d,onClose:x,helpMarkdown:p,errors:s,schema:t}),{key:at,width:to})},[o,u,p,s,t,x]),m.useEffect(()=>{u&&c&&l&&l!==at&&d(null)},[u,c,l]);const f=m.useRef(a);return f.current=a,m.useEffect(()=>()=>{var g;(g=f.current)==null||g.call(f,at)},[]),{helpMarkdown:p,hasInstructions:!!p,open:u!==null,showInstructions:()=>d(J.INSTRUCTIONS),showIssues:()=>d(J.ISSUES),close:x}}function so({selected:t,schema:e,metadata:s,lookup:r,submission:i,lead:o,prefill:a,host:l=G.PAGE}){const c=l===G.MODAL,[u,d]=m.useState(()=>ne(e,a)),[p,x]=m.useState(!1),[f,g]=m.useState([]),[h,y]=m.useState(null),[b,N]=m.useState(null);m.useEffect(()=>{d(ne(e,a)),x(!1),g([]),y(null),N(null),i.reset()},[t.workflow_type]);const j=m.useMemo(()=>({...en(s,r),resolver:null}),[s,r]),w=m.useMemo(()=>{try{const k=JSON.parse(u);return{...j,resolver:k,input:k}}catch{return j}},[u,j]);m.useEffect(()=>{p&&g(le(u,j).errors)},[u,p,j]);const E=f.length>0?f:i.violations,O=no({schema:e,context:w,errors:E,enabled:!c}),A=c?()=>N(J.ISSUES):O.showIssues,L=c?()=>N(k=>k===J.INSTRUCTIONS?null:J.INSTRUCTIONS):O.showInstructions;m.useEffect(()=>{i.violations.length>0&&A()},[i.violations]);const T=()=>{x(!0);const k=le(u,j);if(k.parseError){y(k.parseError);return}if(y(null),k.errors.length>0){g(k.errors),A();return}g([]),i.submit(k.payload,s)},C=c&&b===J.ISSUES&&E.length>0,_=c&&b===J.INSTRUCTIONS&&O.helpMarkdown;return n.jsxs("div",{"data-testid":"rich-invoke-form",children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[o,_&&n.jsx("div",{className:"px-4 py-3 bg-surface-hover","data-testid":"invoke-inline-help",children:n.jsx(st,{content:O.helpMarkdown})}),n.jsx(Ho,{value:u,onChange:d,submitAttempted:p,escalationContext:j,onOpenHelp:O.hasInstructions?L:void 0}),C&&n.jsx("div",{"data-testid":"invoke-inline-issues",children:n.jsx(Ve,{errors:E,schema:e})})]}),n.jsx(on,{onSubmitAgain:i.reset,onSubmit:T,pending:i.pending,error:h??i.error,issueCount:E.length,onShowIssues:A,startedId:i.startedId,executionPath:i.executionPath,host:l})]})}const be=`{
|
|
2
|
+
"data": {},
|
|
3
|
+
"metadata": {}
|
|
4
|
+
}`;function ro(t){return typeof t=="boolean"?"boolean":typeof t=="number"?"number":Array.isArray(t)?"array":t!==null&&typeof t=="object"?"object":"string"}function ye(t){if(!t)return[];const e=t.data;return!e||typeof e!="object"?[]:Object.entries(e).map(([s,r])=>({key:s,type:ro(r),defaultValue:r}))}function Nt(t){return{...t}}function je(t,e){return JSON.stringify({data:t,metadata:e},null,2)}function io({selectedConfig:t,isJsonMode:e,hasFormView:s,jsonInput:r,formFields:i,dataFields:o,onJsonChange:a,onToggleMode:l,onUpdateFormField:c,onSetFormFields:u}){return n.jsxs("div",{children:[n.jsxs("div",{className:"flex items-baseline justify-between mb-2",children:[n.jsx("label",{className:"block text-xs text-text-secondary",children:"Envelope"}),n.jsxs("div",{className:"flex items-center gap-3",children:[s&&n.jsx("button",{type:"button",onClick:l,className:"text-2xs text-accent hover:underline",children:e?"Form view":"JSON view"}),t.envelope_schema?n.jsx("span",{className:"text-2xs text-accent",children:"Pre-filled from workflow config"}):n.jsx("span",{className:"text-2xs text-status-warning",children:"No template"})]})]}),!t.envelope_schema&&n.jsx("div",{className:"bg-surface-sunken border border-surface-border rounded px-4 py-3 mb-3",children:n.jsxs("p",{className:"text-xs text-text-secondary leading-relaxed",children:["This workflow has no input template. Edit the JSON directly below, or ",n.jsx(Rt,{to:"/workflows/registry/new",className:"text-status-success hover:underline",children:"register it"})," in the Workflow Registry with an envelope schema for pre-filled fields and form-based input."]})}),e||!s?n.jsx("textarea",{value:r,onChange:d=>a(d.target.value),className:"input-json",rows:12,spellCheck:!1}):n.jsx("div",{className:"space-y-3",children:o.map(({key:d,type:p})=>{var h,y;const x=i[d],f=typeof x=="string"?x:JSON.stringify(x??(p==="array"?[]:{}),null,2),g=Math.min(20,Math.max(4,((y=(h=f==null?void 0:f.split)==null?void 0:h.call(f,`
|
|
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:b=>c(d,b.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:f,onChange:b=>{try{c(d,JSON.parse(b.target.value),p)}catch{u({...i,[d]:b.target.value})}},className:"input-json w-full",rows:g,spellCheck:!1}):n.jsx("input",{type:p==="number"?"number":"text",value:String(x??""),onChange:b=>c(d,b.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 Ne="lt:invoke:prefill";function oo({selected:t,metadata:e,submission:s,lead:r,prefill:i,host:o=G.PAGE}){const[a,l]=m.useState(be),[c,u]=m.useState(""),[d,p]=m.useState({}),[x,f]=m.useState(!1),g=m.useMemo(()=>{const w=t.envelope_schema??null;if(!i||Object.keys(i).length===0)return w;const E=w==null?void 0:w.data,O={...E&&typeof E=="object"?E:{},...i};return{...w??{},data:O}},[t.envelope_schema,i]),h=m.useMemo(()=>ye(g),[g]),y=h.length>0;m.useEffect(()=>{u(""),s.reset();const w=o===G.PAGE?sessionStorage.getItem(Ne):null;if(w){sessionStorage.removeItem(Ne),l(w);try{const O=JSON.parse(w),A=(O==null?void 0:O.data)??O;A&&typeof A=="object"&&p(Nt(A))}catch{}f(!0);return}l(g?JSON.stringify(g,null,2):be);const E=g==null?void 0:g.data;p(E&&typeof E=="object"?Nt(E):{}),f(!ye(g).length)},[t.workflow_type]);const b=()=>{if(x)try{const w=JSON.parse(a);w.data&&typeof w.data=="object"&&p(Nt(w.data))}catch{}else l(je(d,e));f(!x)},N=(w,E,O)=>{let A=E;O==="number"?A=E===""?0:Number(E):O==="boolean"&&(A=E==="true"||E===!0);const L={...d,[w]:A};p(L),l(je(L,e))},j=()=>{u("");let w;try{w=JSON.parse(a)}catch{u("Invalid JSON");return}const{data:E,metadata:O}=w;if(!E||typeof E!="object"){u('Envelope must include a "data" object');return}s.submit(E,O??{})};return n.jsxs("div",{children:[n.jsxs("div",{className:"space-y-6 pb-6",children:[r,n.jsx(io,{selectedConfig:t,isJsonMode:x,hasFormView:y,jsonInput:a,formFields:d,dataFields:h,onJsonChange:w=>{l(w),u("")},onToggleMode:b,onUpdateFormField:N,onSetFormFields:p})]}),n.jsx(on,{onSubmitAgain:s.reset,onSubmit:j,pending:s.pending,error:c||s.error,startedId:s.startedId,executionPath:s.executionPath,host:o})]})}function ao({workflow:t,workflowId:e,onDone:s,onRetry:r}){var c;const i=Pt(e),o=i.outcome===$.FAILED,a=i.outcome===$.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($t,{icon:t.icon,tier:t.tier,className:"w-6 h-6 shrink-0 text-accent"}),n.jsx(nn,{outcome:i.outcome,className:"text-sm"})]}),a&&n.jsx(Dt,{}),l&&n.jsx("p",{className:"text-xs text-status-error",role:"alert",children:l}),!a&&n.jsx(sn,{payload:l?void 0:i.payload}),n.jsxs("div",{className:"flex justify-end gap-2 pt-2 border-t border-surface-border/40",children:[o&&n.jsx("button",{type:"button",onClick:r,className:"btn-secondary text-xs","data-testid":"run-retry",children:"Try again"}),n.jsx("button",{type:"button",onClick:s,className:"btn-primary text-xs px-6","data-testid":"run-done",children:a||o?"Close":"Done"})]})]})}function an(t,e){var r;const s=(r=t.envelope_schema)==null?void 0:r.metadata;return{...s&&typeof s=="object"?s:{},...e}}function lo({workflow:t,prefill:e,onClose:s}){const r=m.useMemo(()=>an(t,e.metadata),[t,e.metadata]),i=Array.isArray(t.input_lookups)&&t.input_lookups.length>0,{data:o}=Ar(t.workflow_type,i),a=m.useMemo(()=>o?Cr(o.lookups):void 0,[o]),l=(o==null?void 0:o.lookups.filter(p=>p.missing))??[],c=rn(t,{certified:t.certified,overrideBot:""}),u=t.description?n.jsx(st,{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(ao,{workflow:t,workflowId:c.startedId,onDone:s,onRetry:c.reset}),n.jsxs("div",{hidden:d,children:[l.length>0&&n.jsxs("p",{className:"flex items-center gap-1.5 text-2xs text-status-warning mb-4","data-testid":"lookup-missing",children:[n.jsx(Pe,{className:"w-3 h-3 shrink-0",strokeWidth:1.5}),l.map(Xi).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(so,{selected:t,schema:t.input_schema,metadata:r,lookup:a,submission:c,lead:u,prefill:e.data,host:G.MODAL}):n.jsx(oo,{selected:t,metadata:r,submission:c,lead:u,prefill:e.data,host:G.MODAL})]})]})}function co({open:t,onClose:e,workflow:s,prefill:r}){const i=n.jsxs("span",{className:"flex items-center gap-2 min-w-0",children:[n.jsx($t,{icon:s.icon,tier:s.tier,className:"w-4 h-4 shrink-0 text-accent"}),n.jsx("span",{className:"truncate",title:s.workflow_type,children:He(s.workflow_type)})]});return n.jsx(Ge,{open:t,onClose:e,title:i,maxWidth:"max-w-2xl",closeOnBackdrop:!1,children:n.jsx(lo,{workflow:s,prefill:r,onClose:e})})}const uo={[rt.LINK]:"inline-flex items-center gap-1.5 text-xs text-accent hover:text-accent-hover transition-colors",[rt.BUTTON]:"btn-secondary inline-flex items-center gap-1.5 text-xs px-3 py-1.5"};function xo({fieldKey:t,schema:e,escalationContext:s}){var u;const r=m.useMemo(()=>Ui(e),[e]),{data:i,isPending:o}=Ir(),a=i==null?void 0:i.find(d=>d.workflow_type===(r==null?void 0:r.workflow)),l=(u=s==null?void 0:s.escalation)==null?void 0:u.status,c=l!==void 0&&l!==_r.PENDING;return!r||c?null:o?n.jsx("div",{className:"h-4 w-32 rounded bg-surface-hover animate-pulse","data-testid":`invoke-widget-${t}-loading`}):a?n.jsx(po,{fieldKey:t,schema:e,config:r,workflow:a,escalationContext:s}):null}function po({fieldKey:t,schema:e,config:s,workflow:r,escalationContext:i}){var C;const o=i,a=m.useMemo(()=>Gi(s,o),[s,o]),l=m.useMemo(()=>an(r,a.metadata),[r,a.metadata]),c=rn(r,{certified:r.certified,overrideBot:""}),u=Pt(c.startedId??""),[d,p]=m.useState([]),[x,f]=m.useState(!1),[g,h]=m.useState(!1),y=(e==null?void 0:e.title)??He(r.workflow_type),b=e==null?void 0:e.description,N=s.icon?n.jsx($t,{icon:r.icon,tier:r.tier,className:"w-3.5 h-3.5 shrink-0"}):null,j=()=>{f(!1),c.submit(a.data,l)},w=()=>{if(s.modal){h(!0);return}if(p([]),r.input_schema){const _=ii(r.input_schema,a.data,en(l));if(_.length>0){p(_);return}}s.confirm?f(!0):j()},E=()=>{p([]),c.reset(),h(!0)},O=d.length>0?d:c.violations,A=c.startedId!==null,L=A&&u.outcome===$.RUNNING,T=A&&u.outcome===$.FAILED&&typeof((C=u.payload)==null?void 0:C.error)=="string"?u.payload.error:null;return n.jsxs("div",{"data-field-key":t,"data-testid":`invoke-widget-${t}`,children:[n.jsx(F,{children:y}),b&&n.jsx(D,{children:b}),n.jsxs("div",{className:"mt-1 flex flex-col gap-1.5",children:[A&&n.jsxs(n.Fragment,{children:[n.jsx(nn,{outcome:u.outcome}),L&&n.jsx(Dt,{}),T&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:T}),!L&&n.jsx(sn,{payload:T?void 0:u.payload})]}),!L&&n.jsxs("button",{type:"button",onClick:w,disabled:c.pending,className:`self-start ${uo[s.variant]}`,"data-testid":`invoke-control-${t}`,children:[N,c.pending?"Starting…":y]}),O.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:O.map(_=>n.jsxs("li",{className:"flex items-start gap-1.5",children:[n.jsx(gt,{className:"w-3 h-3 mt-px shrink-0",strokeWidth:1.5}),n.jsxs("span",{children:[n.jsx("span",{className:"font-semibold",children:_.field})," · ",_.message]})]},_.field))}),n.jsx("button",{type:"button",onClick:E,className:"mt-1 text-accent hover:underline","data-testid":`invoke-open-form-${t}`,children:"Open form"})]}),O.length===0&&c.error&&n.jsx("p",{className:"text-2xs text-status-error",role:"alert",children:c.error})]}),s.confirm&&n.jsxs(Ge,{open:x,onClose:()=>f(!1),title:y,children:[n.jsx("p",{className:"text-sm text-text-secondary mb-5",children:Z(s.confirm,i??{})}),n.jsxs("div",{className:"flex justify-end gap-2",children:[n.jsx("button",{type:"button",onClick:()=>f(!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(co,{open:g,onClose:()=>h(!1),workflow:r,prefill:a})]})}const ln=m.createContext(null);function fo(){return m.useContext(ln)}const et={PDF:"pdf",IMAGE:"image",FILE:"file"},mo={pdf:"application/pdf",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",webp:"image/webp",avif:"image/avif",bmp:"image/bmp",svg:"image/svg+xml"};function ve(t){var s,r;const e=(r=(s=/\.([a-z0-9]{2,5})(?:[?#].*)?$/i.exec(t))==null?void 0:s[1])==null?void 0:r.toLowerCase();return e&&mo[e]||"application/octet-stream"}function we(t){const e=t.toLowerCase();return e==="application/pdf"?et.PDF:e.startsWith("image/")?et.IMAGE:et.FILE}function ke(t){return/^https?:\/\//i.test(t)||t.startsWith("/")&&!t.startsWith("//")}function Ee(t){return t.startsWith("/")&&jt&&!t.startsWith(`${jt}/`)?`${jt}${t}`:t}function Ae(t){if(typeof t=="string"){const i=t.trim();if(!i||!ke(i))return null;const o=ve(i),a=decodeURIComponent(i.split(/[?#]/)[0].split("/").pop()||"document");return{url:Ee(i),name:a,contentType:o,kind:we(o)}}if(!t||typeof t!="object"||Array.isArray(t))return null;const e=t,s=typeof e.name=="string"&&e.name?e.name:"document";if(typeof e.error=="string"&&e.error)return{name:s,error:e.error};if(typeof e.url!="string"||!ke(e.url))return null;const r=typeof e.contentType=="string"&&e.contentType?e.contentType:ve(e.url);return{url:Ee(e.url),name:s,contentType:r,kind:we(r),...typeof e.path=="string"?{path:e.path}:{},...typeof e.expiresAt=="string"?{expiresAt:e.expiresAt}:{}}}function ho(t,e,s){const r=(typeof t=="string"?[t]:Array.isArray(t)?t:[]).filter(i=>typeof i=="string"&&i.length>0);for(const i of r){const o=nt(i)?bt(i,s):i;if(o===null)continue;const a=Ae(X(o,s));if(a)return a}return Ae(e)}function lt(t){return!!t&&"error"in t}function At(t,e=Date.now(),s=5e3){if(!t)return!1;const r=Date.parse(t);return Number.isFinite(r)&&r-s<=e}const xt=12,cn=.5,dn=4,un=1.25;function go(t){return Math.min(dn,Math.round(t*un*100)/100)}function bo(t){return Math.max(cn,Math.round(t/un*100)/100)}function K({label:t,onClick:e,disabled:s,children:r}){return n.jsx("button",{type:"button",onClick:e,disabled:s,title:t,"aria-label":t,className:"icon-link p-1.5 rounded-md disabled:opacity-40 disabled:cursor-default",children:r})}function xn({name:t,url:e,expiresAt:s,onRefresh:r,zoom:i,onZoom:o,onRotate:a,page:l,pageCount:c,onPage:u}){const d="w-4 h-4",p=x=>{r&&At(s)&&(x.preventDefault(),r())};return n.jsxs("div",{className:"flex items-center gap-1 px-2 py-1 border-b border-surface-border flex-wrap",role:"toolbar","aria-label":`${t} controls`,children:[n.jsx("span",{className:"text-xs text-text-secondary truncate min-w-0 flex-1 pl-1",title:t,children:t}),c!==void 0&&l!==void 0&&u&&n.jsxs("span",{className:"flex items-center gap-0.5",children:[n.jsx(K,{label:"Previous page",onClick:()=>u(l-1),disabled:l<=1,children:n.jsx(Vs,{className:d,strokeWidth:1.5})}),n.jsxs("span",{className:"text-2xs tabular-nums text-text-tertiary min-w-[3.5rem] text-center","aria-live":"polite",children:[l," / ",c]}),n.jsx(K,{label:"Next page",onClick:()=>u(l+1),disabled:l>=c,children:n.jsx(Bs,{className:d,strokeWidth:1.5})})]}),n.jsxs("span",{className:"flex items-center gap-0.5",children:[n.jsx(K,{label:"Zoom out",onClick:()=>o(bo(i)),disabled:i<=cn,children:n.jsx(Xs,{className:d,strokeWidth:1.5})}),n.jsx(K,{label:"Fit to width",onClick:()=>o(1),disabled:i===1,children:n.jsx(Ys,{className:d,strokeWidth:1.5})}),n.jsx(K,{label:"Zoom in",onClick:()=>o(go(i)),disabled:i>=dn,children:n.jsx(zs,{className:d,strokeWidth:1.5})}),n.jsx(K,{label:"Rotate",onClick:a,children:n.jsx(Zs,{className:d,strokeWidth:1.5})})]}),n.jsxs("span",{className:"flex items-center gap-0.5",children:[n.jsx("a",{href:e,onClick:p,target:"_blank",rel:"noopener noreferrer",title:"Open in a new tab","aria-label":"Open in a new tab",className:"icon-link p-1.5 rounded-md",children:n.jsx(ft,{className:d,strokeWidth:1.5})}),n.jsx("a",{href:e,onClick:p,download:t,title:"Download","aria-label":"Download",className:"icon-link p-1.5 rounded-md",children:n.jsx(It,{className:d,strokeWidth:1.5})})]})]})}function yo({url:t,name:e,heightClass:s,expiresAt:r,onRefresh:i,onError:o}){const[a,l]=Lr(),[c,u]=m.useState(null),[d,p]=m.useState(1),[x,f]=m.useState(0),g=x%180!==0,h=c?g?c.h:c.w:0,y=c?g?c.w:c.h:0,b=c&&l&&l.width>0&&l.height>0?Math.min(l.width/h,l.height/y,1):null,N=b!==null?b*d:null;return n.jsxs("div",{className:"flex flex-col",children:[n.jsx(xn,{name:e,url:t,expiresAt:r,onRefresh:i,zoom:d,onZoom:p,onRotate:()=>f(j=>(j+90)%360)}),n.jsx("div",{ref:a,className:`${s} overflow-auto`,style:{padding:xt},"data-testid":"document-image-frame",children:n.jsx("div",{className:"relative mx-auto",style:N!==null?{width:h*N,height:y*N}:void 0,children:n.jsx("img",{src:t,alt:e,draggable:!1,onLoad:j=>u({w:j.currentTarget.naturalWidth,h:j.currentTarget.naturalHeight}),onError:o,className:N!==null?"absolute left-1/2 top-1/2 max-w-none":"max-w-full max-h-full object-contain mx-auto",style:N!==null&&c?{width:c.w*N,height:c.h*N,transform:`translate(-50%, -50%) rotate(${x}deg)`}:void 0,"data-testid":"document-image"})})})]})}async function jo(t){const[e,s]=await Promise.all([ee(()=>import("./pdf-CcZYcL52.js"),[],import.meta.url),ee(()=>import("./pdf.worker.min-DgRcL-GR.js"),[],import.meta.url)]);e.GlobalWorkerOptions.workerSrc!==s.default&&(e.GlobalWorkerOptions.workerSrc=s.default);const r=e.getDocument({url:t,isEvalSupported:!1,withCredentials:!1});return{doc:await r.promise,destroy:()=>r.destroy()}}const No=12;function vo({doc:t,pageNumber:e,scale:s,rotation:r,ratio:i,baseWidth:o,root:a,onVisible:l}){const c=m.useRef(null),u=m.useRef(null),[d,p]=m.useState(!1),x=Math.round(o*s),f=Math.round(x*i);return m.useEffect(()=>{const g=c.current;if(!g||typeof IntersectionObserver>"u"){p(!0);return}const h=new IntersectionObserver(([b])=>p(b.isIntersecting),{root:a,rootMargin:"150% 0px"}),y=new IntersectionObserver(([b])=>{b.isIntersecting&&l(e)},{root:a,threshold:.5});return h.observe(g),y.observe(g),()=>{h.disconnect(),y.disconnect()}},[a,e,l]),m.useEffect(()=>{if(!d)return;let g=null,h=!1;return(async()=>{const y=await t.getPage(e);if(h)return;const b=u.current,N=b==null?void 0:b.getContext("2d");if(!b||!N)return;const j=y.getViewport({scale:1,rotation:r}),w=y.getViewport({scale:x/j.width,rotation:r}),E=window.devicePixelRatio||1;b.width=Math.floor(w.width*E),b.height=Math.floor(w.height*E),b.style.width=`${Math.floor(w.width)}px`,b.style.height=`${Math.floor(w.height)}px`,g=y.render({canvasContext:N,viewport:w,transform:E!==1?[E,0,0,E,0,0]:void 0}),await g.promise.catch(()=>{})})(),()=>{h=!0,g==null||g.cancel()}},[d,t,e,x,r]),n.jsx("div",{ref:c,"data-page":e,className:"mx-auto bg-surface-sunken shadow-sm",style:{width:x,minHeight:f},children:d&&n.jsx("canvas",{ref:u,"aria-label":`Page ${e}`,role:"img"})})}function wo({url:t,identity:e,name:s,heightClass:r,expiresAt:i,onRefresh:o}){const[a,l]=m.useState({status:"loading"}),[c,u]=m.useState(1),[d,p]=m.useState(0),[x,f]=m.useState(1),[g,h]=m.useState(null),[y,b]=Fr(),N=m.useRef(t);N.current=t,m.useEffect(()=>{let k=!0,R=null;return l({status:"loading"}),(async()=>{try{const M=await jo(N.current);if(R=M.destroy,!k){M.destroy();return}const W=(await M.doc.getPage(1)).getViewport({scale:1});k&&l({status:"ready",doc:M.doc,ratio:W.height/W.width,baseWidth:W.width})}catch(M){k&&l({status:"error",message:M instanceof Error?M.message:"The document could not be read"})}})(),()=>{k=!1,R==null||R()}},[e]);const j=m.useCallback(k=>{h(k),y(k)},[y]),w=m.useCallback(k=>f(k),[]),E=k=>{if(a.status!=="ready"||!g)return;const R=Math.min(Math.max(k,1),a.doc.numPages),M=g.querySelector(`[data-page="${R}"]`);M&&g.scrollTo({top:M.offsetTop-xt,behavior:"smooth"}),f(R)},O=d%180!==0,A=a.status==="ready"?a:null,L=A?O?1/A.ratio:A.ratio:1,T=A?O?A.baseWidth*A.ratio:A.baseWidth:1,_=Math.max((b??640)-xt*2,120)/T*c;return n.jsxs("div",{className:"flex flex-col",children:[n.jsx(xn,{name:s,url:t,expiresAt:i,onRefresh:o,zoom:c,onZoom:u,onRotate:()=>p(k=>(k+90)%360),...A?{page:x,pageCount:A.doc.numPages,onPage:E}:{}}),n.jsxs("div",{ref:j,className:`${r} overflow-auto bg-surface`,style:{padding:xt},"data-testid":"document-pdf",children:[a.status==="loading"&&n.jsxs("p",{className:"text-xs text-text-tertiary py-8 text-center",role:"status",children:["Loading ",s,"…"]}),a.status==="error"&&n.jsxs("div",{className:"py-8 text-center space-y-2",role:"alert",children:[n.jsx("p",{className:"text-xs text-status-error",children:a.message}),n.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-accent hover:text-accent-hover",children:["Open ",s," in a new tab"]})]}),A&&n.jsx("div",{className:"flex flex-col",style:{gap:No},children:Array.from({length:A.doc.numPages},(k,R)=>n.jsx(vo,{doc:A.doc,pageNumber:R+1,scale:_,rotation:d,ratio:L,baseWidth:T,root:g,onVisible:w},R+1))})]})]})}const ko="h-[min(75vh,56rem)]",Eo="h-[min(75vh,56rem)] @split:h-[calc(100dvh-14rem)]";function Ao({fieldKey:t,value:e,schema:s,escalationContext:r}){var N;const i=kn(),o=H(t,s),a=typeof(s==null?void 0:s.description)=="string"?s.description:void 0,l=fo(),c=l!=null&&l.fill?Eo:ko,u=ho(s==null?void 0:s["x-lt-source"],e,r),d=(N=r==null?void 0:r.escalation)==null?void 0:N.id,[p,x]=m.useState(!1),f=u&&!lt(u)?u:null,[g,h]=m.useState(()=>!!f&&At(f.expiresAt)),y=()=>{x(!1),d&&i.invalidateQueries({queryKey:Or(d)})};m.useEffect(()=>{x(!1),h(!!f&&At(f.expiresAt))},[f==null?void 0:f.url]);const b=n.jsxs(n.Fragment,{children:[n.jsx(F,{children:o}),a&&n.jsx(D,{children:a})]});if(!u)return n.jsxs("div",{"data-field-key":t,children:[b,n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No document attached"})]});if(lt(u)||p||g){const j=lt(u)?u.error:g?"The link to this document has lapsed":"The document could not be loaded";return n.jsxs("div",{"data-field-key":t,children:[b,n.jsxs("div",{className:"mt-1 flex items-center gap-3",role:"alert",children:[n.jsx("p",{className:"text-xs text-status-error",children:j}),d&&!lt(u)&&n.jsxs("button",{type:"button",onClick:y,className:"inline-flex items-center gap-1 text-xs text-accent hover:text-accent-hover",children:[n.jsx(Me,{className:"w-3 h-3",strokeWidth:1.5}),"Get a fresh link"]})]})]})}return n.jsxs("div",{"data-field-key":t,"data-testid":`document-${t}`,children:[b,n.jsxs("div",{className:"mt-1.5 border-y border-surface-border",children:[f.kind===et.PDF&&n.jsx(wo,{url:f.url,identity:f.path??f.url,name:f.name,heightClass:c,expiresAt:f.expiresAt,onRefresh:y}),f.kind===et.IMAGE&&n.jsx(yo,{url:f.url,name:f.name,heightClass:c,expiresAt:f.expiresAt,onRefresh:y,onError:()=>x(!0)}),f.kind===et.FILE&&n.jsxs("a",{href:f.url,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-2 px-2 py-3 text-xs text-accent hover:text-accent-hover",children:[n.jsx($e,{className:"w-4 h-4",strokeWidth:1.5}),"Open ",f.name]})]})]})}const pt={"file-upload":mi,"code-editor":hi,signature:gi,"rich-text":bi,markdown:yi,checklist:Ni,attachment:pe,image:pe,link:ki,escalation:Ci,"escalation-list":Fi,invoke:xo,roster:nr,document:Ao},pn="textarea",fn="json";function Co(t){return t in pt||t===pn||t===fn}function Ce(t,e=""){if(!t||typeof t!="object"||Array.isArray(t))return[];const s=t,r=[],i=s["x-lt-widget"];typeof i=="string"&&e&&!Co(i)&&r.push({path:e,widget:i});const o=s.properties;if(o&&typeof o=="object"&&!Array.isArray(o))for(const[a,l]of Object.entries(o))r.push(...Ce(l,e?`${e}.${a}`:a));return s.items&&r.push(...Ce(s.items,e)),r}const Io=new Set(["string","number","integer","boolean","array","object"]);function Oo(t,e){const s=t==null?void 0:t.type;if(typeof s=="string"&&Io.has(s))return s;if(e==null)return"null";if(Array.isArray(e))return"array";const r=typeof e;return r==="number"||r==="boolean"||r==="string"?r:"object"}const vt="dictionary",To=new Set(["markdown","attachment","image"]);function mn(t,e){if(!e)return;const s=t==null?void 0:t["x-lt-section-options"],r=s==null?void 0:s[e];return r&&typeof r=="object"?r:void 0}function Ro(t,e,s){var l,c;const r=(l=t==null?void 0:t.properties)==null?void 0:l[s];if((r==null?void 0:r.readOnly)!==!0)return!1;const i=r==null?void 0:r["x-lt-widget"];if(typeof i=="string"&&(To.has(i)||dr(i)))return!1;const o=r==null?void 0:r["x-lt-display"];if(typeof o=="string")return o===vt;const a=(c=mn(t,e))==null?void 0:c.display;return typeof a=="string"?a===vt:(t==null?void 0:t["x-lt-display"])===vt}function _o(t,e,s,r){var o;const i=[];for(const a of t){const[l]=a,c=i[i.length-1];if(Ro(e,s,l)){(c==null?void 0:c.kind)==="dictionary"?c.entries.push(a):i.push({kind:"dictionary",entries:[a]});continue}const u=(o=e==null?void 0:e.properties)==null?void 0:o[l],d=u==null?void 0:u["x-lt-column-group"];if(r==="two-column"&&typeof d=="string"&&d.trim()){(c==null?void 0:c.kind)==="column-group"&&c.name===d?c.entries.push(a):i.push({kind:"column-group",name:d,entries:[a]});continue}i.push({kind:"field",entry:a})}return i}function So({value:t,options:e,nullable:s,fieldKey:r,label:i,helperText:o,isRequired:a,error:l,onBlur:c,ids:u,ariaProps:d,onChange:p}){const x=t==null||t===""?"":String(t),f=e.some(g=>String(g.value)===x);return n.jsxs("div",{children:[n.jsx(F,{isRequired:a,htmlFor:u.field,children:i}),o&&n.jsx(D,{id:u.help,children:o}),n.jsxs("select",{value:f?x:"",disabled:e.length===0,onChange:g=>{const h=e.find(y=>String(y.value)===g.target.value);p(h?h.value:null),c==null||c()},onBlur:c,"data-field-key":r,className:sr(!!l),...d,children:[(!f||s)&&n.jsx("option",{value:"",disabled:!s,children:"Choose…"}),e.map(g=>n.jsx("option",{value:String(g.value),children:g.label},String(g.value)))]}),n.jsx(U,{error:l,id:u.error})]})}function Lo({value:t,options:e,fieldKey:s,label:r,helperText:i,isRequired:o,error:a,onBlur:l,ids:c,ariaProps:u,onChange:d}){const p=new Set(Array.isArray(t)?t:[]),x=f=>{const g=new Set(p);g.has(f)?g.delete(f):g.add(f),d(e.filter(h=>g.has(h.value)).map(h=>h.value)),l==null||l()};return n.jsxs("div",{role:"group","aria-label":r,"aria-required":o||void 0,"aria-invalid":a?!0:void 0,"aria-describedby":u["aria-describedby"],children:[n.jsx(F,{isRequired:o,children:r}),i&&n.jsx(D,{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((f,g)=>{const h=p.has(f.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)] ${h?"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:h,onChange:()=>x(f.value),className:"sr-only","data-testid":`multi-select-${s}-${String(f.value)}`,...g===0?{"data-field-key":s,id:c.field}:{}}),h&&n.jsx(Fe,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),f.label]},String(f.value))})}),n.jsx(U,{error:a,id:c.error})]})}function Ie(t){return typeof t=="string"?t:t==null?"":JSON.stringify(t,null,2)}function Oe(t){try{return{ok:!0,value:JSON.parse(t)}}catch{return{ok:!1}}}function Fo({value:t,fieldKey:e,label:s,helperText:r,isRequired:i,error:o,onBlur:a,ids:l,ariaProps:c,onChange:u}){const[d,p]=m.useState(()=>Ie(t));m.useEffect(()=>{if(typeof t=="string"){t!==d&&p(t);return}const f=Oe(d);!(f.ok&&JSON.stringify(f.value)===JSON.stringify(t??null))&&!(d.trim()===""&&t===null)&&p(Ie(t))},[t]);const x=d.split(`
|
|
6
|
+
`).length;return n.jsxs("div",{children:[n.jsx(F,{isRequired:i,htmlFor:l.field,children:s}),r&&n.jsx(D,{id:l.help,children:r}),n.jsx("textarea",{value:d,onChange:f=>{const g=f.target.value;if(p(g),g.trim()===""){u(null);return}const h=Oe(g);u(h.ok?h.value:g)},onBlur:a,spellCheck:!1,"data-field-key":e,rows:Math.min(14,Math.max(4,x)),className:`${tt(!!o)} font-mono text-xs leading-relaxed`,...c}),n.jsx(U,{error:o,id:l.error})]})}function Mo({fieldKey:t,label:e,values:s,fieldSchema:r,helperText:i,isRequired:o,error:a,ids:l,notice:c,context:u,onChange:d}){const p=Q(r),x=p?Jr(r,u):null,f=(p==null?void 0:p.prompt)??i,g=h=>d(s.filter((y,b)=>b!==h));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(F,{isRequired:o,children:e}),x!==null&&n.jsxs("span",{className:"text-2xs tabular-nums text-text-tertiary","data-testid":"list-field-count",children:[s.length," of ",x]})]}),i&&(s.length>0||!p)&&n.jsx(D,{id:l.help,children:i}),s.length===0&&p?n.jsx("p",{id:l.help,className:"text-xs text-text-tertiary mt-1 italic","data-testid":"list-field-empty",children:f??"Scan to add"}):n.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1",children:s.map((h,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(h),p&&n.jsx("button",{type:"button",onClick:()=>g(y),className:"-mr-1 p-0.5 rounded text-text-quaternary hover:text-status-error hover:bg-surface-hover","aria-label":`Remove ${String(h)}`,"data-testid":"list-field-remove",children:n.jsx(Qs,{className:"w-3 h-3",strokeWidth:2})})]},y))}),n.jsx(U,{error:a,id:l.error}),n.jsx(Je,{notice:c})]})}const Te={date:"date","date-time":"datetime-local",email:"email",uri:"url"},$o={date:"max-w-48","date-time":"max-w-64"};function hn({fieldKey:t,value:e,onChange:s,onBlur:r,schema:i,isRequired:o,isReadOnly:a,error:l,escalationContext:c,submitAttempted:u}){var T;const d=(T=i==null?void 0:i.properties)==null?void 0:T[t],p=Mr(t),x=H(t,d),f=d==null?void 0:d["x-lt-widget"],g=Oo(d,e),h=`lt-field-${t}`,y={field:h,help:`${h}-help`,error:`${h}-error`},b=typeof(d==null?void 0:d.description)=="string"&&d.description.length>0?d.description:void 0,N={id:h,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,"aria-describedby":l?y.error:b?y.help:void 0},j={fieldKey:t,label:x,helperText:b,isRequired:o,error:l,onBlur:r,ids:y,ariaProps:N,onChange:s},w=f==="markdown"&&typeof e=="string",E=(f==="attachment"||f==="image")&&typeof e=="string",O=!!(f&&f in pt);if(a&&!w&&!E&&!O){const C=e===null?"null":typeof e=="object"?JSON.stringify(e,null,2):String(e);return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,children:x}),n.jsx("p",{className:"text-sm text-text-secondary mt-0.5 whitespace-pre-wrap",children:C})]})}if(f===fn&&(g==="array"||g==="object"))return n.jsx(Fo,{...j,value:e});if(f&&f in pt){const C=pt[f],_=o||(d==null?void 0:d["x-lt-require-all"])===!0,k={fieldKey:t,schema:d,escalationContext:c,isRequired:_,submitAttempted:u,error:l};if((d==null?void 0:d.type)==="object"){const R=typeof e=="string"?e:typeof e=="object"&&e!==null&&!Array.isArray(e)?JSON.stringify(e):"";return n.jsx(C,{...k,value:R,onChange:M=>{try{s(JSON.parse(M))}catch{s(M)}}})}if(typeof e=="string")return n.jsx(C,{...k,value:e,onChange:R=>s(R)});if(typeof e=="object"&&e!==null&&!Array.isArray(e))return n.jsx(C,{...k,value:JSON.stringify(e),onChange:R=>{try{s(JSON.parse(R))}catch{s(R)}}})}const A=yt(d,c);if(g==="array"){if(A!==void 0&&(d==null?void 0:d["x-lt-options"])!==void 0)return n.jsx(Lo,{...j,value:e,options:A})}else if(A!==void 0&&g!=="object")return n.jsx(So,{...j,value:e,options:A,nullable:(d==null?void 0:d["x-lt-nullable"])===!0});switch(g){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:C=>{s(C.target.checked),r==null||r()},className:"w-3.5 h-3.5 rounded accent-accent","data-field-key":t,...N}),n.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[x,o&&n.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})]}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx(U,{error:l,id:y.error})]});case"number":case"integer":return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,htmlFor:h,children:x}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx("input",{type:"number",value:typeof e=="number"||typeof e=="string"?e:"",onChange:C=>s(parseFloat(C.target.value)||0),onBlur:r,step:"any","data-field-key":t,className:`${tt(!!l)} max-w-48`,...N}),n.jsx(U,{error:l,id:y.error})]});case"string":return L(typeof e=="string"?e:e==null?"":String(e));case"array":return!Array.isArray(e)&&!(e==null&&Q(d))?L(e==null?"":String(e)):n.jsx(Mo,{fieldKey:t,label:x,values:Array.isArray(e)?e:[],fieldSchema:d,helperText:b,isRequired:o,error:l,ids:y,notice:p,context:c,onChange:s});case"object":{if(typeof e!="object"||e===null||Array.isArray(e))return L(e==null?"":String(e));const C=Object.entries(e);return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,children:x}),n.jsx("div",{className:"ml-4 mt-2 pl-4 border-l border-accent-faint space-y-3",children:C.map(([_,k])=>n.jsx(hn,{fieldKey:_,value:k,onChange:R=>s({...e,[_]:R})},_))})]})}default:return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,children:x}),n.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"null"})]})}function L(C){const _=d==null?void 0:d.format;if(_==="password")return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,htmlFor:h,children:x}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx("input",{type:"password",value:C,onChange:k=>s(k.target.value),onBlur:r,"data-field-key":t,className:tt(!!l),autoComplete:"off",...N}),n.jsx(U,{error:l,id:y.error})]});if(_&&_ in Te)return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,htmlFor:h,children:x}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx("input",{type:Te[_],value:C,onChange:k=>s(k.target.value),onBlur:r,"data-field-key":t,className:`${tt(!!l)} ${$o[_]??""}`,...N}),n.jsx(U,{error:l,id:y.error})]});if(_==="textarea"||f===pn||C.includes(`
|
|
7
|
+
`)||C.length>80){const k=d==null?void 0:d.maxLength,R=d==null?void 0:d["x-lt-max-length"],M=R?Number(X(R,c)):NaN,Y=k??(Number.isFinite(M)?M:void 0),W=Y!==void 0&&C.length>Y;return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,htmlFor:h,children:x}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx("textarea",{value:C,onChange:q=>{s(q.target.value),r==null||r()},onBlur:r,"data-field-key":t,className:`${tt(!!l)} leading-relaxed`,rows:Math.min(6,Math.max(3,Math.ceil(C.length/60))),...N}),Y!==void 0&&n.jsxs("p",{className:`text-2xs mt-0.5 text-right tabular-nums ${W?"text-status-error font-medium":"text-text-quaternary"}`,children:[C.length," / ",Y]}),n.jsx(U,{error:l,id:y.error})]})}return n.jsxs("div",{children:[n.jsx(F,{isRequired:o,htmlFor:h,children:x}),b&&n.jsx(D,{id:y.help,children:b}),n.jsx("input",{type:"text",value:C,onChange:k=>s(k.target.value),onBlur:r,"data-field-key":t,className:tt(!!l),...N}),n.jsx(U,{error:l,id:y.error}),n.jsx(Je,{notice:p})]})}}const gn={[z.ERROR]:{text:"text-status-error",dot:"bg-status-error"},[z.WARNING]:{text:"text-status-warning",dot:"bg-status-pending-graphic"},[z.INFO]:{text:"text-status-active",dot:"bg-status-active"}};function Po(t){return`${Math.round(t*100)}%`}function Do({fieldKey:t,review:e,proposedText:s,currentText:r,locked:i,onRestore:o,children:a}){var p;const[l,c]=m.useState(!1),u=m.useId(),d=e.tranche?gn[e.tranche.tone]:null;return n.jsxs("div",{"data-confidence-tone":(p=e.tranche)==null?void 0:p.tone,"data-review-changed":e.changed||void 0,"data-testid":`review-${t}`,children:[a,(e.tranche||e.changed)&&n.jsxs("div",{className:"mt-1 flex items-center gap-3 flex-wrap text-2xs",children:[e.tranche&&d&&n.jsxs("span",{className:`inline-flex items-center gap-1.5 ${d.text}`,"data-testid":`review-tranche-${t}`,children:[n.jsx("span",{className:`w-1.5 h-1.5 rounded-full ${d.dot}`,"aria-hidden":!0}),e.tranche.label,e.score!==void 0&&n.jsxs("span",{className:"tabular-nums",children:["· ",Po(e.score)]})]}),e.changed&&i&&n.jsxs("span",{className:"inline-flex items-center gap-1.5 text-text-tertiary min-w-0","data-testid":`review-was-${t}`,children:[n.jsx(wt,{className:"w-3 h-3 shrink-0",strokeWidth:1.5,"aria-hidden":!0}),n.jsx("span",{children:"Was"}),n.jsx("s",{className:"text-text-secondary truncate",title:s,children:s}),n.jsx("span",{"aria-hidden":!0,children:"→"}),n.jsx("span",{className:"text-text-primary truncate",title:r,children:r})]}),e.changed&&!i&&n.jsxs("button",{type:"button",onClick:()=>c(x=>!x),"aria-expanded":l,"aria-controls":u,className:"inline-flex items-center gap-1 text-accent hover:text-accent-hover","data-testid":`review-edited-${t}`,children:[n.jsx(wt,{className:"w-3 h-3",strokeWidth:1.5,"aria-hidden":!0}),"Edited"]})]}),e.changed&&!i&&l&&n.jsxs("div",{id:u,className:"mt-1 flex items-center gap-2 text-2xs animate-[field-enter_0.2s_ease-out]",children:[n.jsx("span",{className:"text-text-tertiary",children:"Proposed"}),n.jsx("span",{className:"text-text-secondary truncate",title:s,children:s}),n.jsxs("button",{type:"button",onClick:()=>{o(),c(!1)},className:"inline-flex items-center gap-1 text-accent hover:text-accent-hover shrink-0","data-testid":`review-restore-${t}`,children:[n.jsx(Ks,{className:"w-3 h-3",strokeWidth:1.5,"aria-hidden":!0}),"Restore"]})]})]})}function Re(t,e){if(t.length===0)return;const s=t[e.current%t.length];e.current+=1;const r=document.querySelector(`[data-field-key="${s.replace(/["\\]/g,"\\$&")}"]`);r==null||r.scrollIntoView({block:"center",behavior:"smooth"}),r==null||r.focus({preventScroll:!0})}function Wo({summary:t,proposedCount:e}){const s=m.useRef({}),r=o=>{var a;return(a=s.current)[o]??(a[o]={current:0})},i=t.tranches.filter(o=>o.fields.length>0);return i.length===0&&t.changed.length===0?null:n.jsxs("div",{className:"flex items-center gap-x-4 gap-y-1 flex-wrap mb-6 text-xs",role:"group","aria-label":"Review","data-testid":"review-legend",children:[i.map(({tranche:o,fields:a})=>{const l=gn[o.tone];return n.jsxs("button",{type:"button",onClick:()=>Re(a,r(`t${o.below}`)),className:`inline-flex items-center gap-1.5 ${l.text} hover:underline`,title:`Go to the next field scored below ${Math.round(o.below*100)}%`,children:[n.jsx("span",{className:`w-2 h-2 rounded-full ${l.dot}`,"aria-hidden":!0}),o.label,n.jsx("span",{className:"tabular-nums font-semibold",children:a.length})]},o.below)}),t.changed.length>0&&n.jsxs("button",{type:"button",onClick:()=>Re(t.changed,r("edited")),className:"inline-flex items-center gap-1.5 text-accent hover:underline",children:[n.jsx(wt,{className:"w-3.5 h-3.5",strokeWidth:1.5,"aria-hidden":!0}),"Edited",n.jsx("span",{className:"tabular-nums font-semibold",children:t.changed.length}),e>0&&n.jsxs("span",{className:"text-text-tertiary font-normal",children:["of ",e]})]})]})}const _e="empty",ct=120;function Ct(t,e,s){var i;if(t==null||t==="")return _e;if(typeof t=="boolean")return t?"Yes":"No";if(typeof t=="string"||typeof t=="number"){const o=(i=yt(e,s))==null?void 0:i.find(l=>String(l.value)===String(t)),a=String(o?o.label:t);return a.length>ct?`${a.slice(0,ct-1)}…`:a}if(Array.isArray(t))return t.length===0?_e:t.map(o=>Ct(o,void 0,s)).join(", ");const r=JSON.stringify(t);return r.length>ct?`${r.slice(0,ct-1)}…`:r}function Uo({name:t,entries:e,formSchema:s,layout:r,renderField:i}){const o=_o(e,s,t,r),a=mn(s,t),l=(a==null?void 0:a.columns)??(r==="two-column"?2:1),c=d=>d.map(([p,x])=>{var f;return{key:p,label:H(p,(f=s==null?void 0:s.properties)==null?void 0:f[p]),value:x}}),u=()=>o.map((d,p)=>d.kind==="dictionary"?n.jsx("div",{className:r==="two-column"?"col-span-full":"",children:n.jsx(Tr,{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}),r==="two-column"?n.jsx("div",{className:"@container",children:n.jsx("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-col-gap gap-y-5",children:u()})}):n.jsx("div",{className:"space-y-5",children:u()})]})}const Go="split",Se=t=>t.stopPropagation();function Ho({value:t,onChange:e,disabled:s,submitAttempted:r,escalationContext:i,onOpenHelp:o,onDisabledClick:a,disabledHint:l}){var Xt,Yt;const[c,u]=m.useState({}),[d,p]=m.useState({}),[x,f]=m.useState(null),[g,h]=m.useState(!1),[y,b]=m.useState(new Set);m.useEffect(()=>{try{const v=JSON.parse(t);if(typeof v=="object"&&v!==null&&!Array.isArray(v)){const S={},I={};for(const[P,V]of Object.entries(v))P.startsWith("_")||P.startsWith("$")?I[P]=V:S[P]=V;u(S),p(I),f(I._form_schema&&typeof I._form_schema=="object"?I._form_schema:null),h(!1)}}catch{h(!0)}},[t]);const N=m.useCallback(v=>{u(v),e(JSON.stringify({...v,...d},null,2))},[d,e]),j=m.useCallback((v,S)=>{N({...c,[v]:S})},[c,N]),w=m.useCallback(v=>{b(S=>{if(S.has(v))return S;const I=new Set(S);return I.add(v),I})},[]);if(g)return n.jsx("p",{className:"text-xs text-status-error",children:"Unable to parse resolver data as form. Use the JSON editor below."});const E=Object.entries(c);if(E.length===0)return n.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No resolver fields defined."});const O=x==null?void 0:x["x-lt-order"],A=O?[...E].sort((v,S)=>{const I=O.indexOf(v[0]),P=O.indexOf(S[0]);return(I===-1?1/0:I)-(P===-1?1/0:P)}):E,L={...i??{},resolver:c,input:c},T=A.filter(([v,S])=>{var P;const I=(P=x==null?void 0:x.properties)==null?void 0:P[v];return We(I)||!dt(I==null?void 0:I["x-lt-showIf"],L)?!1:!rr(I,S)}),C=new Set((x==null?void 0:x.required)??[]),_=x==null?void 0:x["x-lt-layout"],k=v=>{var S,I;return((I=(S=x==null?void 0:x.properties)==null?void 0:S[v])==null?void 0:I["x-lt-widget"])===ur.DOCUMENT},R=_===Go&&T.some(([v])=>k(v)),M=R?T.filter(([v])=>k(v)):[],Y=R?T.filter(([v])=>!k(v)):T,W=di(x),q=W&&x?pi(W,x,L,c):null,Wt=T.map(([v])=>v),Ut=W&&q?fi(W,q,Wt):null,bn=q?Wt.filter(v=>{var S;return(S=q[v])==null?void 0:S.hasProposal}).length:0,Gt=x==null?void 0:x.title,Ht=x==null?void 0:x.description,yn=typeof(x==null?void 0:x["x-lt-help"])=="string"||typeof(x==null?void 0:x["x-lt-context"])=="string",it=[];for(const v of Y){const[S]=v,I=(Xt=x==null?void 0:x.properties)==null?void 0:Xt[S],P=((Yt=I==null?void 0:I["x-lt-section"])==null?void 0:Yt.trim())||null,V=it[it.length-1];!V||V.name!==P?it.push({name:P,entries:[v]}):V.entries.push(v)}const qt=([v,S])=>{var te;const I=(te=x==null?void 0:x.properties)==null?void 0:te[v],P=(I==null?void 0:I.readOnly)===!0,V=(I==null?void 0:I["x-lt-span"])??1,zt=C.has(v),Nn=y.has(v)||!!r,vn=Ze(S,I,zt,Nn,L),Zt=k(v),Qt=!!s&&!Zt,ot=q==null?void 0:q[v],Kt=n.jsx(hn,{fieldKey:v,value:S,onChange:wn=>j(v,wn),onBlur:()=>w(v),schema:x,isRequired:zt,isReadOnly:P,error:vn,escalationContext:L,submitAttempted:!!r});return n.jsx("div",{className:`animate-[field-enter_0.2s_ease-out] ${_==="two-column"&&V>=2?"col-span-full":""} ${Qt?"pointer-events-none":""}`,inert:Qt||void 0,onClick:s&&Zt?Se:void 0,children:ot?n.jsx(Do,{fieldKey:v,review:ot,proposedText:Ct(ot.proposed,I,L),currentText:Ct(S,I,L),locked:!!s||P,onRestore:()=>j(v,ot.proposed??""),children:Kt}):Kt},v)},Jt=n.jsx("div",{className:"space-y-8",children:it.map((v,S)=>n.jsx(Uo,{name:v.name,entries:v.entries,formSchema:x,layout:R?void 0:_,renderField:qt},v.name??`__s${S}`))}),jn=R?n.jsx("div",{className:"@container",children:n.jsxs("div",{className:"grid grid-cols-1 @split:grid-cols-2 gap-x-col-gap gap-y-8 items-start",children:[n.jsx(ln.Provider,{value:{fill:M.length===1},children:n.jsx("div",{className:"@split:sticky @split:top-0 @split:max-h-[calc(100dvh-10rem)] @split:overflow-y-auto space-y-12",children:M.map(v=>qt(v))})}),Jt]})}):Jt,Vt=n.jsxs("div",{"aria-disabled":s||void 0,children:[n.jsxs("div",{className:s?"pointer-events-none":void 0,inert:s||void 0,children:[Gt&&n.jsxs("div",{className:"mb-1 flex items-center gap-1.5",children:[n.jsx("h3",{className:"heading-3",children:Gt}),yn&&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(De,{className:"w-4 h-4",strokeWidth:1.5})})]}),Ht&&n.jsx("p",{className:"text-sm text-text-secondary leading-relaxed mb-6",children:Ht})]}),Ut&&n.jsx("div",{onClick:s?Se:void 0,children:n.jsx(Wo,{summary:Ut,proposedCount:bn})}),jn]}),Bt=R?"max-w-[min(112rem,100%)]":"max-w-form";return s?n.jsx(ai,{hint:l,onLockedClick:a,measure:Bt,children:Vt}):n.jsx("div",{className:`pb-8 ${Bt}`,children:Vt})}export{Ve as E,ea as F,oo as L,Ho as R,$t as W,na as a,le as b,ne as c,H as d,so as e,en as f,oa as g,Bi as h,Pr as i,Ce as j,Xi as l,sa as p,Ri as r,ia as s,rn as u,Qe as v,ra as w};
|
|
8
|
+
//# sourceMappingURL=ResolverForm-DZmY6wJV.js.map
|