@hotmeshio/long-tail 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/build/api/escalations/accumulate.d.ts +96 -0
- package/build/api/escalations/accumulate.js +516 -0
- package/build/api/escalations/index.d.ts +1 -0
- package/build/api/escalations/index.js +10 -1
- package/build/api/roles.d.ts +4 -5
- package/build/api/roles.js +53 -4
- package/build/api/scan-codes/execute.js +2 -0
- package/build/api/scan-codes/verbs.d.ts +15 -0
- package/build/api/scan-codes/verbs.js +65 -0
- package/build/index.js +60 -0
- package/build/lib/db/schemas/036_role_portals.sql +12 -0
- package/build/routes/escalations/accumulate.d.ts +7 -0
- package/build/routes/escalations/accumulate.js +150 -0
- package/build/routes/escalations/index.js +5 -0
- package/build/sdk/index.d.ts +25 -0
- package/build/sdk/index.js +8 -0
- package/build/services/escalation/accumulate.d.ts +81 -0
- package/build/services/escalation/accumulate.js +154 -0
- package/build/services/escalation/index.d.ts +1 -0
- package/build/services/escalation/index.js +1 -0
- package/build/services/mcp/playwright-server/schemas.d.ts +2 -2
- package/build/services/orchestrator/condition.d.ts +40 -3
- package/build/services/orchestrator/condition.js +42 -2
- package/build/services/role/index.js +1 -0
- package/build/services/role/seed.js +6 -1
- package/build/services/role/sql.d.ts +6 -3
- package/build/services/role/sql.js +7 -2
- package/build/services/role/types.d.ts +38 -10
- package/build/services/role/types.js +10 -1
- package/build/services/scan-code/validate.js +16 -0
- package/build/shared/form-validation/display-only-widgets.d.ts +16 -0
- package/build/shared/form-validation/display-only-widgets.js +25 -0
- 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-bind.d.ts +2 -14
- package/build/shared/form-validation/x-lt-bind.js +12 -8
- package/build/shared/form-validation/x-lt-invoke.d.ts +38 -0
- package/build/shared/form-validation/x-lt-invoke.js +103 -0
- package/build/system/mcp-servers/admin/escalations.js +39 -0
- package/build/system/mcp-servers/admin/schemas.d.ts +192 -13
- package/build/system/mcp-servers/admin/schemas.js +39 -3
- package/build/system/mcp-servers/admin/users.js +1 -0
- package/build/system/mcp-servers/docs.js +4 -0
- package/build/system/mcp-servers/human-queue-schemas.d.ts +85 -0
- package/build/system/mcp-servers/human-queue-schemas.js +19 -1
- package/build/system/mcp-servers/human-queue.d.ts +2 -0
- package/build/system/mcp-servers/human-queue.js +77 -0
- package/build/system/seed/tool-manifests-admin.d.ts +922 -103
- package/build/system/seed/tool-manifests-admin.js +4 -1
- package/build/system/seed/tool-manifests-escalation.d.ts +174 -0
- package/build/system/seed/tool-manifests-escalation.js +56 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/types/escalation.d.ts +52 -0
- package/build/types/escalation.js +29 -1
- package/build/types/index.d.ts +2 -2
- package/build/types/index.js +3 -1
- package/build/types/scan-code.d.ts +24 -0
- package/build/types/scan-code.js +9 -0
- package/build/types/startup.d.ts +20 -0
- package/dashboard/dist/assets/{AdminDashboard-DplvDBti.js → AdminDashboard-uarpHB88.js} +2 -2
- package/dashboard/dist/assets/{AdminDashboard-DplvDBti.js.map → AdminDashboard-uarpHB88.js.map} +1 -1
- package/dashboard/dist/assets/{AgentConfigPage-D8Bf6YxO.js → AgentConfigPage-BcUaDD5E.js} +6 -6
- package/dashboard/dist/assets/{AgentConfigPage-D8Bf6YxO.js.map → AgentConfigPage-BcUaDD5E.js.map} +1 -1
- package/dashboard/dist/assets/{AgentDetailPage-BN8g0Y2G.js → AgentDetailPage-BaZBhK6i.js} +3 -3
- package/dashboard/dist/assets/{AgentDetailPage-BN8g0Y2G.js.map → AgentDetailPage-BaZBhK6i.js.map} +1 -1
- package/dashboard/dist/assets/AgentsPage-CuVFSDc4.js +2 -0
- package/dashboard/dist/assets/{AgentsPage-7JJBHku8.js.map → AgentsPage-CuVFSDc4.js.map} +1 -1
- package/dashboard/dist/assets/AvailableEscalationsPage-iO5NyyIK.js +2 -0
- package/dashboard/dist/assets/AvailableEscalationsPage-iO5NyyIK.js.map +1 -0
- package/dashboard/dist/assets/{BotPicker-CGCnIz8I.js → BotPicker-CClMby6B.js} +2 -2
- package/dashboard/dist/assets/{BotPicker-CGCnIz8I.js.map → BotPicker-CClMby6B.js.map} +1 -1
- package/dashboard/dist/assets/BulkAssignModal-BL8FRgkN.js +2 -0
- package/dashboard/dist/assets/{BulkAssignModal-NJBcoj-f.js.map → BulkAssignModal-BL8FRgkN.js.map} +1 -1
- package/dashboard/dist/assets/CapabilitiesPage-D53ogPor.js +2 -0
- package/dashboard/dist/assets/{CapabilitiesPage-F8dpNn9B.js.map → CapabilitiesPage-D53ogPor.js.map} +1 -1
- package/dashboard/dist/assets/{CollapsibleSection-BZW6VpCU.js → CollapsibleSection-ow8jpbtD.js} +2 -2
- package/dashboard/dist/assets/{CollapsibleSection-BZW6VpCU.js.map → CollapsibleSection-ow8jpbtD.js.map} +1 -1
- package/dashboard/dist/assets/{ConfirmDeleteModal-64adXLdq.js → ConfirmDeleteModal-CeEDt9iJ.js} +2 -2
- package/dashboard/dist/assets/{ConfirmDeleteModal-64adXLdq.js.map → ConfirmDeleteModal-CeEDt9iJ.js.map} +1 -1
- package/dashboard/dist/assets/{CountdownTimer-BxDub9d2.js → CountdownTimer-CSqyZMCG.js} +2 -2
- package/dashboard/dist/assets/{CountdownTimer-BxDub9d2.js.map → CountdownTimer-CSqyZMCG.js.map} +1 -1
- package/dashboard/dist/assets/{CredentialsPage-CnLzopLL.js → CredentialsPage-Dx7SxA23.js} +2 -2
- package/dashboard/dist/assets/{CredentialsPage-CnLzopLL.js.map → CredentialsPage-Dx7SxA23.js.map} +1 -1
- package/dashboard/dist/assets/{CronLabel-CAD5UYDT.js → CronLabel-LYPxpvNN.js} +2 -2
- package/dashboard/dist/assets/{CronLabel-CAD5UYDT.js.map → CronLabel-LYPxpvNN.js.map} +1 -1
- package/dashboard/dist/assets/DataTable-spX1dFyb.js +2 -0
- package/dashboard/dist/assets/DataTable-spX1dFyb.js.map +1 -0
- package/dashboard/dist/assets/{DropZone-XlcY8hEH.js → DropZone-f1o-GLM8.js} +2 -2
- package/dashboard/dist/assets/{DropZone-XlcY8hEH.js.map → DropZone-f1o-GLM8.js.map} +1 -1
- package/dashboard/dist/assets/{ElapsedCell-CwO4ufd0.js → ElapsedCell-BZJTSm9N.js} +2 -2
- package/dashboard/dist/assets/{ElapsedCell-CwO4ufd0.js.map → ElapsedCell-BZJTSm9N.js.map} +1 -1
- package/dashboard/dist/assets/EntityTimelinePanel-0wIIW2en.js +2 -0
- package/dashboard/dist/assets/{EntityTimelinePanel-CkF-oW-m.js.map → EntityTimelinePanel-0wIIW2en.js.map} +1 -1
- package/dashboard/dist/assets/{EscalationListSchemaPage-h9JO_q5f.js → EscalationListSchemaPage-CoYvtMzj.js} +3 -3
- package/dashboard/dist/assets/{EscalationListSchemaPage-h9JO_q5f.js.map → EscalationListSchemaPage-CoYvtMzj.js.map} +1 -1
- package/dashboard/dist/assets/EscalationListView-DWFHPufv.js +2 -0
- package/dashboard/dist/assets/EscalationListView-DWFHPufv.js.map +1 -0
- package/dashboard/dist/assets/{EscalationSchemaPage-mJFL5_Se.js → EscalationSchemaPage-C9Xu_A25.js} +3 -3
- package/dashboard/dist/assets/{EscalationSchemaPage-mJFL5_Se.js.map → EscalationSchemaPage-C9Xu_A25.js.map} +1 -1
- package/dashboard/dist/assets/EscalationTimeline-D8W2LNNk.js +2 -0
- package/dashboard/dist/assets/EscalationTimeline-D8W2LNNk.js.map +1 -0
- package/dashboard/dist/assets/EscalationTitleSelect-DLK8NWMp.js +2 -0
- package/dashboard/dist/assets/EscalationTitleSelect-DLK8NWMp.js.map +1 -0
- package/dashboard/dist/assets/{EscalationsOverview-DlXUFqWJ.js → EscalationsOverview-CW57FaP9.js} +2 -2
- package/dashboard/dist/assets/{EscalationsOverview-DlXUFqWJ.js.map → EscalationsOverview-CW57FaP9.js.map} +1 -1
- package/dashboard/dist/assets/{EventTable-Ike2xchn.js → EventTable-D1ctWhKf.js} +2 -2
- package/dashboard/dist/assets/{EventTable-Ike2xchn.js.map → EventTable-D1ctWhKf.js.map} +1 -1
- package/dashboard/dist/assets/{FilterBar-DMOR-O1c.js → FilterBar-C-iur-Nj.js} +2 -2
- package/dashboard/dist/assets/{FilterBar-DMOR-O1c.js.map → FilterBar-C-iur-Nj.js.map} +1 -1
- package/dashboard/dist/assets/GraphInvokePage-CcA_44M4.js +2 -0
- package/dashboard/dist/assets/{GraphInvokePage-CKtvWowP.js.map → GraphInvokePage-CcA_44M4.js.map} +1 -1
- package/dashboard/dist/assets/HomePage-Dc085ghJ.js +2 -0
- package/dashboard/dist/assets/{HomePage-BQ3Q791Q.js.map → HomePage-Dc085ghJ.js.map} +1 -1
- package/dashboard/dist/assets/ListToolbar-h_ziBt4O.js +2 -0
- package/dashboard/dist/assets/{ListToolbar-DdJzj472.js.map → ListToolbar-h_ziBt4O.js.map} +1 -1
- package/dashboard/dist/assets/{McpOverview-BbtrduWn.js → McpOverview-qXXhbNWV.js} +2 -2
- package/dashboard/dist/assets/{McpOverview-BbtrduWn.js.map → McpOverview-qXXhbNWV.js.map} +1 -1
- package/dashboard/dist/assets/{McpQueryDetailPage-C1L4T-Wt.js → McpQueryDetailPage-SEzSbZrd.js} +2 -2
- package/dashboard/dist/assets/{McpQueryDetailPage-C1L4T-Wt.js.map → McpQueryDetailPage-SEzSbZrd.js.map} +1 -1
- package/dashboard/dist/assets/McpQueryPage-Cy0V0kv9.js +2 -0
- package/dashboard/dist/assets/{McpQueryPage-CfJy7HZ7.js.map → McpQueryPage-Cy0V0kv9.js.map} +1 -1
- package/dashboard/dist/assets/{McpRunDetailPage-CA9yv7he.js → McpRunDetailPage-DjJO5vSb.js} +2 -2
- package/dashboard/dist/assets/{McpRunDetailPage-CA9yv7he.js.map → McpRunDetailPage-DjJO5vSb.js.map} +1 -1
- package/dashboard/dist/assets/McpRunsPage-BfjiJ8mM.js +2 -0
- package/dashboard/dist/assets/{McpRunsPage-D7QXjW9z.js.map → McpRunsPage-BfjiJ8mM.js.map} +1 -1
- package/dashboard/dist/assets/{NamespacePill-Bb3revqD.js → NamespacePill-DADRJOUl.js} +2 -2
- package/dashboard/dist/assets/{NamespacePill-Bb3revqD.js.map → NamespacePill-DADRJOUl.js.map} +1 -1
- package/dashboard/dist/assets/OperationsPage-dJcER0T_.js +3 -0
- package/dashboard/dist/assets/OperationsPage-dJcER0T_.js.map +1 -0
- package/dashboard/dist/assets/OperatorDashboard-zCkW4eqk.js +2 -0
- package/dashboard/dist/assets/{OperatorDashboard-sXNDh1Ph.js.map → OperatorDashboard-zCkW4eqk.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeader-Di5Sz3an.js → PageHeader-Csq434-v.js} +2 -2
- package/dashboard/dist/assets/{PageHeader-Di5Sz3an.js.map → PageHeader-Csq434-v.js.map} +1 -1
- package/dashboard/dist/assets/{PageHeaderWithStats-DutKJ-h2.js → PageHeaderWithStats-CSnk1p5A.js} +2 -2
- package/dashboard/dist/assets/{PageHeaderWithStats-DutKJ-h2.js.map → PageHeaderWithStats-CSnk1p5A.js.map} +1 -1
- package/dashboard/dist/assets/{PersonaDetailPage-NeHD-Gra.js → PersonaDetailPage-Cx6L3Jvu.js} +2 -2
- package/dashboard/dist/assets/{PersonaDetailPage-NeHD-Gra.js.map → PersonaDetailPage-Cx6L3Jvu.js.map} +1 -1
- package/dashboard/dist/assets/{PersonasPage-DavKXRWX.js → PersonasPage-DOgGUlJl.js} +2 -2
- package/dashboard/dist/assets/{PersonasPage-DavKXRWX.js.map → PersonasPage-DOgGUlJl.js.map} +1 -1
- package/dashboard/dist/assets/PortalPage-BKuL1BeJ.js +2 -0
- package/dashboard/dist/assets/PortalPage-BKuL1BeJ.js.map +1 -0
- package/dashboard/dist/assets/{ProcessDetailPage-DkdKJGe6.js → ProcessDetailPage-BFcFSDUv.js} +2 -2
- package/dashboard/dist/assets/{ProcessDetailPage-DkdKJGe6.js.map → ProcessDetailPage-BFcFSDUv.js.map} +1 -1
- package/dashboard/dist/assets/ProcessesListPage-BaHV2cXp.js +2 -0
- package/dashboard/dist/assets/{ProcessesListPage-CjwVKe32.js.map → ProcessesListPage-BaHV2cXp.js.map} +1 -1
- package/dashboard/dist/assets/ResolverForm-Bgc0Zrya.js +7 -0
- package/dashboard/dist/assets/ResolverForm-Bgc0Zrya.js.map +1 -0
- package/dashboard/dist/assets/RoleDetailPage-BPY6i3CU.js +8 -0
- package/dashboard/dist/assets/RoleDetailPage-BPY6i3CU.js.map +1 -0
- package/dashboard/dist/assets/{RolePill-DhnVPK4q.js → RolePill-BafrASDX.js} +2 -2
- package/dashboard/dist/assets/{RolePill-DhnVPK4q.js.map → RolePill-BafrASDX.js.map} +1 -1
- package/dashboard/dist/assets/{RolesPage-OM9KM8Pg.js → RolesPage-DSqqKPbv.js} +2 -2
- package/dashboard/dist/assets/{RolesPage-OM9KM8Pg.js.map → RolesPage-DSqqKPbv.js.map} +1 -1
- package/dashboard/dist/assets/RunAsSelector-B29iWwel.js +2 -0
- package/dashboard/dist/assets/{RunAsSelector-fFMt1bGe.js.map → RunAsSelector-B29iWwel.js.map} +1 -1
- package/dashboard/dist/assets/{ScanCodesPage-AujH-pPQ.js → ScanCodesPage-S8aAJfnC.js} +2 -2
- package/dashboard/dist/assets/{ScanCodesPage-AujH-pPQ.js.map → ScanCodesPage-S8aAJfnC.js.map} +1 -1
- package/dashboard/dist/assets/{ScanSchemeDetailPage-eKQpmsC_.js → ScanSchemeDetailPage-CUBRAtmJ.js} +2 -2
- package/dashboard/dist/assets/{ScanSchemeDetailPage-eKQpmsC_.js.map → ScanSchemeDetailPage-CUBRAtmJ.js.map} +1 -1
- package/dashboard/dist/assets/ScanStationPage-R9t1-CeQ.js +2 -0
- package/dashboard/dist/assets/{ScanStationPage-C1_ppDoZ.js.map → ScanStationPage-R9t1-CeQ.js.map} +1 -1
- package/dashboard/dist/assets/{ScopeBadge-CXUg0FHo.js → ScopeBadge-b6MIBiYD.js} +2 -2
- package/dashboard/dist/assets/{ScopeBadge-CXUg0FHo.js.map → ScopeBadge-b6MIBiYD.js.map} +1 -1
- package/dashboard/dist/assets/{StickyPagination-B91Pk9xh.js → StickyPagination-CkW_A507.js} +2 -2
- package/dashboard/dist/assets/{StickyPagination-B91Pk9xh.js.map → StickyPagination-CkW_A507.js.map} +1 -1
- package/dashboard/dist/assets/{StreamMessageDetail-C7SPqaJt.js → StreamMessageDetail-yzWX0wac.js} +2 -2
- package/dashboard/dist/assets/{StreamMessageDetail-C7SPqaJt.js.map → StreamMessageDetail-yzWX0wac.js.map} +1 -1
- package/dashboard/dist/assets/{SwimlaneTimeline-BcHR8ylf.js → SwimlaneTimeline-Cf4DXFxj.js} +2 -2
- package/dashboard/dist/assets/{SwimlaneTimeline-BcHR8ylf.js.map → SwimlaneTimeline-Cf4DXFxj.js.map} +1 -1
- package/dashboard/dist/assets/{TagInput-BZ8vb2oW.js → TagInput-ZrIIrEUP.js} +2 -2
- package/dashboard/dist/assets/{TagInput-BZ8vb2oW.js.map → TagInput-ZrIIrEUP.js.map} +1 -1
- package/dashboard/dist/assets/{TaskDetailPage-Bqj0I_I0.js → TaskDetailPage-DCDcEps9.js} +2 -2
- package/dashboard/dist/assets/{TaskDetailPage-Bqj0I_I0.js.map → TaskDetailPage-DCDcEps9.js.map} +1 -1
- package/dashboard/dist/assets/{TaskQueuePill-Bxir8WRl.js → TaskQueuePill-DkQ1uc6y.js} +2 -2
- package/dashboard/dist/assets/{TaskQueuePill-Bxir8WRl.js.map → TaskQueuePill-DkQ1uc6y.js.map} +1 -1
- package/dashboard/dist/assets/TasksListPage-BBATgpf7.js +2 -0
- package/dashboard/dist/assets/{TasksListPage-BB1f79lL.js.map → TasksListPage-BBATgpf7.js.map} +1 -1
- package/dashboard/dist/assets/{TimeAgo-BFnODmNe.js → TimeAgo-CSNVEjch.js} +2 -2
- package/dashboard/dist/assets/{TimeAgo-BFnODmNe.js.map → TimeAgo-CSNVEjch.js.map} +1 -1
- package/dashboard/dist/assets/{TimestampCell-BXgLOBsr.js → TimestampCell-Du1nBrPn.js} +2 -2
- package/dashboard/dist/assets/{TimestampCell-BXgLOBsr.js.map → TimestampCell-Du1nBrPn.js.map} +1 -1
- package/dashboard/dist/assets/{ToolPill-FkgTXIhq.js → ToolPill-Baxm02L6.js} +2 -2
- package/dashboard/dist/assets/{ToolPill-FkgTXIhq.js.map → ToolPill-Baxm02L6.js.map} +1 -1
- package/dashboard/dist/assets/ToolTestPanel-CF-h_5Rg.js +2 -0
- package/dashboard/dist/assets/{ToolTestPanel-Bwe3J5lj.js.map → ToolTestPanel-CF-h_5Rg.js.map} +1 -1
- package/dashboard/dist/assets/{TopicDetailPage-DAF07vZ9.js → TopicDetailPage-Dr1UmWcp.js} +3 -3
- package/dashboard/dist/assets/{TopicDetailPage-DAF07vZ9.js.map → TopicDetailPage-Dr1UmWcp.js.map} +1 -1
- package/dashboard/dist/assets/TopicsPage-CUUo-Ylf.js +2 -0
- package/dashboard/dist/assets/{TopicsPage-C1gxBUap.js.map → TopicsPage-CUUo-Ylf.js.map} +1 -1
- package/dashboard/dist/assets/{UserName-BzXJUE6q.js → UserName-kBh1dc39.js} +2 -2
- package/dashboard/dist/assets/{UserName-BzXJUE6q.js.map → UserName-kBh1dc39.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowExecutionPage-SkRU5cRX.js → WorkflowExecutionPage-CCRSbnDx.js} +2 -2
- package/dashboard/dist/assets/{WorkflowExecutionPage-SkRU5cRX.js.map → WorkflowExecutionPage-CCRSbnDx.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowPill--AYMW7u_.js → WorkflowPill-ZepbO_ny.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPill--AYMW7u_.js.map → WorkflowPill-ZepbO_ny.js.map} +1 -1
- package/dashboard/dist/assets/WorkflowsDashboard-BNQVvyek.js +2 -0
- package/dashboard/dist/assets/{WorkflowsDashboard-CZAqRk1N.js.map → WorkflowsDashboard-BNQVvyek.js.map} +1 -1
- package/dashboard/dist/assets/{WorkflowsOverview-BoN44VTE.js → WorkflowsOverview-DswubNJN.js} +2 -2
- package/dashboard/dist/assets/{WorkflowsOverview-BoN44VTE.js.map → WorkflowsOverview-DswubNJN.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CqjhtdJf.js → YamlWorkflowDetailPage-Cw9Dlmup.js} +11 -11
- package/dashboard/dist/assets/{YamlWorkflowDetailPage-CqjhtdJf.js.map → YamlWorkflowDetailPage-Cw9Dlmup.js.map} +1 -1
- package/dashboard/dist/assets/{YamlWorkflowsPage-CwnJkzyb.js → YamlWorkflowsPage-DB8xnIXy.js} +2 -2
- package/dashboard/dist/assets/{YamlWorkflowsPage-CwnJkzyb.js.map → YamlWorkflowsPage-DB8xnIXy.js.map} +1 -1
- package/dashboard/dist/assets/{agents-gV0Ys-sY.js → agents-BwEnf6N9.js} +2 -2
- package/dashboard/dist/assets/{agents-gV0Ys-sY.js.map → agents-BwEnf6N9.js.map} +1 -1
- package/dashboard/dist/assets/{bots-B97itB3I.js → bots-CCmJTT2u.js} +2 -2
- package/dashboard/dist/assets/{bots-B97itB3I.js.map → bots-CCmJTT2u.js.map} +1 -1
- package/dashboard/dist/assets/{capabilities-CR9xZgGd.js → capabilities-BZHgp_nh.js} +2 -2
- package/dashboard/dist/assets/{capabilities-CR9xZgGd.js.map → capabilities-BZHgp_nh.js.map} +1 -1
- package/dashboard/dist/assets/{constants-BHkpVaqx.js → constants-CeBBTzf5.js} +2 -2
- package/dashboard/dist/assets/{constants-BHkpVaqx.js.map → constants-CeBBTzf5.js.map} +1 -1
- package/dashboard/dist/assets/{controlplane-YxvP1KCa.js → controlplane-CyfwUlFA.js} +2 -2
- package/dashboard/dist/assets/{controlplane-YxvP1KCa.js.map → controlplane-CyfwUlFA.js.map} +1 -1
- package/dashboard/dist/assets/escalation-columns-BJPTNmLW.js +2 -0
- package/dashboard/dist/assets/escalation-columns-BJPTNmLW.js.map +1 -0
- package/dashboard/dist/assets/index-3gbd5neL.js +67 -0
- package/dashboard/dist/assets/index-3gbd5neL.js.map +1 -0
- package/dashboard/dist/assets/index-BAAVTyZ-.js +2 -0
- package/dashboard/dist/assets/{index-BQpV-DTG.js.map → index-BAAVTyZ-.js.map} +1 -1
- package/dashboard/dist/assets/{index-B9BBCqLI.js → index-BC6Jenlo.js} +2 -2
- package/dashboard/dist/assets/{index-B9BBCqLI.js.map → index-BC6Jenlo.js.map} +1 -1
- package/dashboard/dist/assets/index-C7KHqOTQ.js +2 -0
- package/dashboard/dist/assets/{index-Bp9KBLT5.js.map → index-C7KHqOTQ.js.map} +1 -1
- package/dashboard/dist/assets/index-CDrqqbSR.js +3 -0
- package/dashboard/dist/assets/index-CDrqqbSR.js.map +1 -0
- package/dashboard/dist/assets/index-CVwzCZ43.js +2 -0
- package/dashboard/dist/assets/{index-CFbo9FU9.js.map → index-CVwzCZ43.js.map} +1 -1
- package/dashboard/dist/assets/index-CaGF6TCC.js +2 -0
- package/dashboard/dist/assets/index-CaGF6TCC.js.map +1 -0
- package/dashboard/dist/assets/index-ClVbfe4z.js +13 -0
- package/dashboard/dist/assets/{index-Cfvkl2J0.js.map → index-ClVbfe4z.js.map} +1 -1
- package/dashboard/dist/assets/{index-DMeaiKgf.js → index-CuVkSmj5.js} +2 -2
- package/dashboard/dist/assets/{index-DMeaiKgf.js.map → index-CuVkSmj5.js.map} +1 -1
- package/dashboard/dist/assets/{index-ipqwPavs.js → index-DAuX_PlL.js} +2 -2
- package/dashboard/dist/assets/{index-ipqwPavs.js.map → index-DAuX_PlL.js.map} +1 -1
- package/dashboard/dist/assets/{index-CIpHj4di.js → index-DBWS5QL8.js} +2 -2
- package/dashboard/dist/assets/{index-CIpHj4di.js.map → index-DBWS5QL8.js.map} +1 -1
- package/dashboard/dist/assets/index-DIWCI6HC.js +2 -0
- package/dashboard/dist/assets/{index-CUZ6LYye.js.map → index-DIWCI6HC.js.map} +1 -1
- package/dashboard/dist/assets/{index-DwOnWeu8.js → index-DZ8X_Gp4.js} +2 -2
- package/dashboard/dist/assets/{index-DwOnWeu8.js.map → index-DZ8X_Gp4.js.map} +1 -1
- package/dashboard/dist/assets/index-Dh8MJl3L.css +1 -0
- package/dashboard/dist/assets/{knowledge-XX6cW4Ob.js → knowledge-CqyLhUMg.js} +2 -2
- package/dashboard/dist/assets/{knowledge-XX6cW4Ob.js.map → knowledge-CqyLhUMg.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-CH13hNH2.js → mcp-Cvu6bFYH.js} +2 -2
- package/dashboard/dist/assets/{mcp-CH13hNH2.js.map → mcp-Cvu6bFYH.js.map} +1 -1
- package/dashboard/dist/assets/{mcp-query-Duydd3JA.js → mcp-query-qC6A3e9l.js} +2 -2
- package/dashboard/dist/assets/{mcp-query-Duydd3JA.js.map → mcp-query-qC6A3e9l.js.map} +1 -1
- package/dashboard/dist/assets/metadata-display-COo3mMCr.js +2 -0
- package/dashboard/dist/assets/metadata-display-COo3mMCr.js.map +1 -0
- package/dashboard/dist/assets/{personas-mDk4lLQS.js → personas-BKN_lJuV.js} +2 -2
- package/dashboard/dist/assets/{personas-mDk4lLQS.js.map → personas-BKN_lJuV.js.map} +1 -1
- package/dashboard/dist/assets/{pipelines-B5GcgCeF.js → pipelines-BldIfv85.js} +2 -2
- package/dashboard/dist/assets/{pipelines-B5GcgCeF.js.map → pipelines-BldIfv85.js.map} +1 -1
- package/dashboard/dist/assets/{tasks-CItmNsRp.js → tasks-B-Uay8uL.js} +2 -2
- package/dashboard/dist/assets/{tasks-CItmNsRp.js.map → tasks-B-Uay8uL.js.map} +1 -1
- package/dashboard/dist/assets/{topics-CJYG7BX5.js → topics-438EQogt.js} +2 -2
- package/dashboard/dist/assets/{topics-CJYG7BX5.js.map → topics-438EQogt.js.map} +1 -1
- package/dashboard/dist/assets/useContainerWidth-DSLp1gEm.js +2 -0
- package/dashboard/dist/assets/useContainerWidth-DSLp1gEm.js.map +1 -0
- package/dashboard/dist/assets/{useDebouncedValue-BrwgXcp8.js → useDebouncedValue-Cw8hYZ8y.js} +2 -2
- package/dashboard/dist/assets/{useDebouncedValue-BrwgXcp8.js.map → useDebouncedValue-Cw8hYZ8y.js.map} +1 -1
- package/dashboard/dist/assets/{useNamespace-CHty0HAS.js → useNamespace-D1218GQ8.js} +2 -2
- package/dashboard/dist/assets/{useNamespace-CHty0HAS.js.map → useNamespace-D1218GQ8.js.map} +1 -1
- package/dashboard/dist/assets/{useYamlActivityEvents-CoTsia7t.js → useYamlActivityEvents-BAQf_y_U.js} +2 -2
- package/dashboard/dist/assets/{useYamlActivityEvents-CoTsia7t.js.map → useYamlActivityEvents-BAQf_y_U.js.map} +1 -1
- package/dashboard/dist/assets/{vendor-icons-DeBdvyKJ.js → vendor-icons-B7OcUM6b.js} +2 -2
- package/dashboard/dist/assets/{vendor-icons-DeBdvyKJ.js.map → vendor-icons-B7OcUM6b.js.map} +1 -1
- package/dashboard/dist/assets/{yaml-workflows-CiWwx5rM.js → yaml-workflows-CN01gEB0.js} +2 -2
- package/dashboard/dist/assets/{yaml-workflows-CiWwx5rM.js.map → yaml-workflows-CN01gEB0.js.map} +1 -1
- package/dashboard/dist/index.html +3 -3
- package/docs/accumulator.md +113 -0
- package/docs/api/http/escalations.md +89 -0
- package/docs/api/http/roles.md +1 -0
- package/docs/api/sdk/escalations.md +91 -0
- package/docs/api/sdk/roles.md +2 -0
- package/docs/architecture.md +1 -1
- package/docs/code-owned-configuration.md +2 -1
- package/docs/dashboard.md +10 -4
- package/docs/hitl/design.md +1 -1
- package/docs/hitl/escalation.md +37 -1
- package/docs/hitl/invoke-form.md +4 -0
- package/docs/hitl/pinned-views.md +4 -0
- package/docs/hitl/portal.md +97 -0
- package/docs/hitl/resolution.md +41 -0
- package/docs/hitl/x-lt-embed.md +1 -1
- package/docs/hitl/x-lt-invoke.md +95 -0
- package/docs/hitl/x-lt-list-schema.md +3 -1
- package/docs/hitl/x-lt-widget.md +1 -0
- package/docs/hitl-guide.md +8 -1
- package/docs/scan-codes.md +15 -2
- package/docs/sdk.md +1 -1
- package/docs/workflows.md +2 -2
- package/package.json +4 -2
- package/dashboard/dist/assets/AgentsPage-7JJBHku8.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-lz5qwSjg.js +0 -2
- package/dashboard/dist/assets/AvailableEscalationsPage-lz5qwSjg.js.map +0 -1
- package/dashboard/dist/assets/BulkAssignModal-NJBcoj-f.js +0 -2
- package/dashboard/dist/assets/CapabilitiesPage-F8dpNn9B.js +0 -2
- package/dashboard/dist/assets/DataTable-7C7riavf.js +0 -2
- package/dashboard/dist/assets/DataTable-7C7riavf.js.map +0 -1
- package/dashboard/dist/assets/EntityTimelinePanel-CkF-oW-m.js +0 -2
- package/dashboard/dist/assets/EscalationListView-AHW2xtlr.js +0 -2
- package/dashboard/dist/assets/EscalationListView-AHW2xtlr.js.map +0 -1
- package/dashboard/dist/assets/GraphInvokePage-CKtvWowP.js +0 -2
- package/dashboard/dist/assets/HomePage-BQ3Q791Q.js +0 -2
- package/dashboard/dist/assets/ListToolbar-DdJzj472.js +0 -2
- package/dashboard/dist/assets/McpQueryPage-CfJy7HZ7.js +0 -2
- package/dashboard/dist/assets/McpRunsPage-D7QXjW9z.js +0 -2
- package/dashboard/dist/assets/OperationsPage-aLHHAP2X.js +0 -3
- package/dashboard/dist/assets/OperationsPage-aLHHAP2X.js.map +0 -1
- package/dashboard/dist/assets/OperatorDashboard-sXNDh1Ph.js +0 -2
- package/dashboard/dist/assets/ProcessesListPage-CjwVKe32.js +0 -2
- package/dashboard/dist/assets/ResolverForm-Bk-wDkN-.js +0 -3
- package/dashboard/dist/assets/ResolverForm-Bk-wDkN-.js.map +0 -1
- package/dashboard/dist/assets/RoleDetailPage-WQt0y5l7.js +0 -8
- package/dashboard/dist/assets/RoleDetailPage-WQt0y5l7.js.map +0 -1
- package/dashboard/dist/assets/RunAsSelector-fFMt1bGe.js +0 -2
- package/dashboard/dist/assets/ScanStationPage-C1_ppDoZ.js +0 -2
- package/dashboard/dist/assets/TasksListPage-BB1f79lL.js +0 -2
- package/dashboard/dist/assets/ToolTestPanel-Bwe3J5lj.js +0 -2
- package/dashboard/dist/assets/TopicsPage-C1gxBUap.js +0 -2
- package/dashboard/dist/assets/WorkflowsDashboard-CZAqRk1N.js +0 -2
- package/dashboard/dist/assets/escalation-columns-uq-IV2aj.js +0 -2
- package/dashboard/dist/assets/escalation-columns-uq-IV2aj.js.map +0 -1
- package/dashboard/dist/assets/index-3ezfWLkE.js +0 -6
- package/dashboard/dist/assets/index-3ezfWLkE.js.map +0 -1
- package/dashboard/dist/assets/index-BQpV-DTG.js +0 -2
- package/dashboard/dist/assets/index-Bp9KBLT5.js +0 -2
- package/dashboard/dist/assets/index-Bpvfr4OW.css +0 -1
- package/dashboard/dist/assets/index-CFbo9FU9.js +0 -2
- package/dashboard/dist/assets/index-CIwlVfvV.js +0 -67
- package/dashboard/dist/assets/index-CIwlVfvV.js.map +0 -1
- package/dashboard/dist/assets/index-CUZ6LYye.js +0 -2
- package/dashboard/dist/assets/index-Cfvkl2J0.js +0 -13
- package/dashboard/dist/assets/index-SGyrXGp8.js +0 -3
- package/dashboard/dist/assets/index-SGyrXGp8.js.map +0 -1
- package/dashboard/dist/assets/invoke-context-DrVyUEfs.js +0 -2
- package/dashboard/dist/assets/invoke-context-DrVyUEfs.js.map +0 -1
- package/dashboard/dist/assets/metadata-display--TzK0REC.js +0 -2
- package/dashboard/dist/assets/metadata-display--TzK0REC.js.map +0 -1
- package/dashboard/dist/assets/resolver-payload-m9AGKZ3a.js +0 -2
- package/dashboard/dist/assets/resolver-payload-m9AGKZ3a.js.map +0 -1
- package/docs/compilation.md +0 -152
- package/docs/compiler.md +0 -311
- package/docs/contributing.md +0 -56
- package/docs/design-principles.md +0 -245
- package/docs/schema-exchange.md +0 -173
- package/docs/self-test.md +0 -106
- package/docs/story.md +0 -184
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{m as Wt,g as tt,H as Rt,c as z,r as et,s as qt}from"./EscalationListView-AHW2xtlr.js";import{a as N,j as r}from"./vendor-query-DvWWuNIB.js";import{al as Jt,aa as At,bv as Pt,bj as Ut,aE as K,bw as Ht,a4 as Xt}from"./vendor-icons-DeBdvyKJ.js";import{ad as xt,ai as zt,a9 as rt,a0 as Yt,a5 as Vt,s as Gt}from"./index-CIwlVfvV.js";import{L as $t}from"./vendor-react-_9U4mKFr.js";import{S as Qt}from"./StatusBadge-DHVwxre2.js";function Ze(t,e={}){const s=Wt(e,t),n={_form_schema:t};for(const[i,o]of Object.entries(t.properties??{})){const a=o.type==="object"?{}:"";n[i]=s[i]??o.default??a}return JSON.stringify(n,null,2)}function P(t,e){const s=e==null?void 0:e.title;if(typeof s=="string"&&s.trim().length>0)return s.trim();const n=t.split(/[_-]+/).filter(Boolean);return n.length<=1?t:n.map(i=>Zt(i)?i:i.charAt(0).toUpperCase()+i.slice(1)).join(" ")}function Zt(t){return t.length>1&&t===t.toUpperCase()&&/[A-Z]/.test(t)}const Kt=/\{\{\s*([^{}]+?)\s*\}\}/g;function B(t){return typeof t=="string"&&/\{\{[^{}]+\}\}/.test(t)}function V(t,e){if(!e)return;const s=t.indexOf("."),n=e[s===-1?t:t.slice(0,s)];if(s===-1)return n;if(!(n===null||typeof n!="object"))return tt(n,t.slice(s+1))}function Et(t,e){let s=!1;const n=t.replace(Kt,(i,o)=>{const a=V(o,e);return typeof a=="string"&&a.trim().length>0?a:typeof a=="number"&&Number.isFinite(a)?String(a):(s=!0,"")});return s?null:n}const _t="x-lt-options";function pt(t){return typeof t=="string"||typeof t=="boolean"||typeof t=="number"&&Number.isFinite(t)}function Bt(t){return Array.isArray(t)&&t.length>0&&!t.some(e=>typeof e=="string")}function ft(t){if(pt(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(pt(s)&&typeof e.label=="string"&&e.label.length>0)return{value:s,label:e.label}}return null}function nt(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 n=t[_t];if(Bt(n)){const a=n.map(ft).filter(l=>l!==null);return a.length>0?a:void 0}const i=(typeof n=="string"?[n]:Array.isArray(n)?n:[]).filter(a=>typeof a=="string"&&a.length>0);if(i.length===0)return;const o=i.some(B)?[]:void 0;for(const a of i){let l=a;if(B(a)){const c=Et(a,e);if(c===null)continue;l=c}const d=V(l,e);if(!Array.isArray(d))continue;const x=d.map(ft).filter(c=>c!==null);if(x.length>0)return x}return o}function st(t,e){const s=(typeof t=="string"?[t]:Array.isArray(t)?t:[]).filter(n=>typeof n=="string"&&n.length>0);if(s.length===0||!e)return[];for(const n of s){let i=n;if(B(n)){const a=Et(n,e);if(a===null)continue;i=a}const o=V(i,e);if(Array.isArray(o)&&o.length>0)return o}return[]}const St="x-lt-default-checked";function te(t,e,s){if((t==null?void 0:t["x-lt-widget"])!=="checklist"||t[St]!==!0||e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length>0)return null;const n=st(t["x-lt-source"],s);return n.length===0?null:Object.fromEntries(n.map(i=>[i.id,!0]))}function ee(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 gt="Invalid JSON";function Y(t){return(t==null?void 0:t["x-lt-widget"])==="json"}function Ot(t){return Y(t)||(t==null?void 0:t[_t])!==void 0}function yt(t,e){return`${t} ${e}${t===1?"":"s"}`}function it(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:Y(e)&&typeof t=="string"?gt:"Expected a list";case"object":return typeof t=="object"&&!Array.isArray(t)?void 0:Y(e)&&typeof t=="string"?gt:"Expected an object";default:return}}function ot(t,e,s){if(!e)return;const n=nt(e,s);if(n!==void 0&&t!==void 0&&t!==null&&t!==""&&!Array.isArray(t)){if(n.length===0)return"No valid options for this selection";if(!n.some(i=>i.value===t))return`Must be one of: ${n.map(i=>String(i.value)).join(", ")}`}if(Array.isArray(t))return Ot(e)?re(t,e,n,s):void 0;if(t!==null&&typeof t=="object")return ne(t,e,s);if(typeof t=="string"){const i=t.trim();if(i==="")return;const o=J(e.minLength,e["x-lt-min-length"],s);if(o!==void 0&&i.length<o)return`Minimum ${o} character${o===1?"":"s"}`;const a=J(e.maxLength,e["x-lt-max-length"],s);if(a!==void 0&&i.length>a)return`Maximum ${a} characters (${i.length} entered)`;const l=e.pattern;if(l)try{if(!new RegExp(l).test(i))return e["x-lt-pattern-error"]??"Invalid format"}catch{}const d=e.format;if(d==="email"&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(i))return"Enter a valid email address";if(d==="uri"&&!/^https?:\/\/.+/.test(i))return"Enter a valid URL"}if(typeof t=="number"){const i=J(e.minimum,e["x-lt-minimum"],s),o=J(e.exclusiveMinimum,void 0,s),a=J(e.maximum,e["x-lt-maximum"],s),l=J(e.exclusiveMaximum,void 0,s);if(i!==void 0&&t<i)return`Minimum value is ${i}`;if(o!==void 0&&t<=o)return`Must be greater than ${o}`;if(a!==void 0&&t>a)return`Maximum value is ${a}`;if(l!==void 0&&t>=l)return`Must be less than ${l}`}}function re(t,e,s,n){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(d=>d.value===l)))return`Must be one of: ${s.map(l=>String(l.value)).join(", ")}`}const i=J(e.minItems,void 0,n);if(i!==void 0&&t.length<i)return`At least ${yt(i,"item")}`;const o=J(e.maxItems,void 0,n);if(o!==void 0&&t.length>o)return`At most ${yt(o,"item")}`;const a=e.items;if(a&&typeof a=="object"&&!Array.isArray(a)){const l=a;for(let d=0;d<t.length;d++){const x=it(t[d],l)??ot(t[d],l,n);if(x)return`Item ${d+1}: ${x}`}}}function ne(t,e,s){const n=Object.entries(t);if(n.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=n.find(([d])=>!o.includes(d));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[d,x]of n){const c=it(x,l)??ot(x,l,s);if(c)return`"${d}": ${c}`}}}function J(t,e,s){if(typeof t=="number")return t;if(typeof e=="string"&&s){const n=e.indexOf(".");if(n!==-1){const i=e.slice(0,n),o=e.slice(n+1),a=s[i];if(a&&typeof a=="object"){const l=o.split(".");let d=a;for(const x of l)if(d=d[x],d===void 0)break;if(typeof d=="number")return d;if(typeof d=="string"){const x=Number(d);if(!Number.isNaN(x))return x}}}}}function se(t,e,s,n,i){if(!n)return;if(s){if(t==null||typeof t=="boolean"&&!t&&nt(e,i)===void 0||typeof t=="string"&&t.trim()===""||Array.isArray(t)&&t.length===0&&Ot(e))return"Required";if(typeof t=="object"&&!Array.isArray(t)&&t!==null){const l=Object.values(t);if(l.length===0||!Y(e)&&l.every(d=>!d))return"Required"}}const o=it(t,e);if(o)return o;const a=ee(t,e,i);return a||ot(t,e,i)}function bt(t){return t!=null&&t!==""&&t!==!1&&t!==0}function ie(t){return t==null?"":typeof t=="object"?JSON.stringify(t):String(t)}function jt(t,e){const s=t.indexOf("."),n=s===-1?t:t.slice(0,s);if(!Rt.includes(n))return{known:!1,value:void 0};const i=e[n];if(s===-1)return{known:!0,value:i};try{return{known:!0,value:tt(i,t.slice(s+1))}}catch{return{known:!0,value:void 0}}}function Ct(t,e){if(Array.isArray(t))return t.every(d=>Ct(d,e));if(typeof t!="string"||t.length===0||!e)return!0;const s=t.startsWith("!"),n=s?t.slice(1):t,i=n.indexOf("!="),o=n.indexOf("=");if(i!==-1||o!==-1&&o!==i+1){const d=i!==-1&&(o===-1||i<o),x=d?i:o,c=n.slice(0,x).trim(),f=n.slice(x+(d?2:1)).trim(),{known:u,value:g}=jt(c,e);if(!u)return!0;const y=ie(g)===f,p=d?!y:y;return s?!p:p}const{known:a,value:l}=jt(n,e);return a?s?!bt(l):bt(l):!0}function oe(t,e){return(t==null?void 0:t["x-lt-hide-if-empty"])!==!0?!1:e==null||e===""||e===!1||e===0}const ae=2600;function le({hint:t,onLockedClick:e,children:s}){const[n,i]=N.useState(null);N.useEffect(()=>{if(!n)return;const a=setTimeout(()=>i(null),ae);return()=>clearTimeout(a)},[n]);const o=a=>{if(e==null||e(),t){const l=Math.min(Math.max(a.clientX,96),window.innerWidth-96);i(d=>({x:l,y:a.clientY,n:((d==null?void 0:d.n)??0)+1}))}};return r.jsxs("div",{className:"pb-8 max-w-form",onClick:o,"data-testid":"locked-form-frame",children:[s,t&&n&&r.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:n.x,top:n.y-12},onAnimationEnd:()=>i(null),"data-testid":"locked-form-hint",children:[r.jsx(Jt,{className:"w-3.5 h-3.5 text-accent shrink-0",strokeWidth:1.5}),t]},n.n)]})}function A({children:t,isRequired:e,htmlFor:s}){return r.jsxs("label",{htmlFor:s,className:"block text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t,e&&r.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})}function M({id:t,children:e}){return r.jsx("p",{id:t,className:"text-2xs text-text-tertiary mt-0.5 leading-snug",children:e})}function L({error:t,id:e}){return t?r.jsx("p",{id:e,role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:t}):null}function X(t){return t?"input text-sm w-full mt-1 border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"input text-sm w-full mt-1"}function ce(t){return t?"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full border-status-error/50 focus:border-status-error animate-[field-shake_0.4s_ease-in-out]":"select text-sm mt-1 min-w-[min(16rem,100%)] max-w-full"}function de({fieldKey:t,value:e,onChange:s,schema:n,isRequired:i}){const o=N.useRef(null),a=(n==null?void 0:n.accept)??void 0,l=P(t,n),d=n==null?void 0:n.description,x=N.useCallback(f=>{var y;const u=(y=f.target.files)==null?void 0:y[0];if(!u)return;const g=new FileReader;g.onload=()=>{typeof g.result=="string"&&s(g.result)},g.readAsDataURL(u)},[s]),c=e.startsWith("data:");return r.jsxs("div",{children:[r.jsx(A,{isRequired:i,children:l}),d&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:d}),r.jsxs("div",{className:"mt-1",children:[r.jsx("input",{ref:o,type:"file",accept:a,onChange:x,className:"hidden"}),r.jsx("button",{type:"button",onClick:()=>{var f;return(f=o.current)==null?void 0:f.click()},className:"btn-secondary text-xs px-3 py-1.5",children:c?"Replace file":"Choose file"}),c&&r.jsx("span",{className:"ml-2 text-xs text-status-success",children:"File attached"})]})]})}function ue({fieldKey:t,value:e,onChange:s,schema:n,isRequired:i}){const o=P(t,n),a=n==null?void 0:n.description,l=(n==null?void 0:n["x-lt-language"])??"",d=N.useCallback(x=>{if(x.key==="Tab"){x.preventDefault();const c=x.currentTarget,f=c.selectionStart,u=c.selectionEnd,g=e.substring(0,f)+" "+e.substring(u);s(g),requestAnimationFrame(()=>{c.selectionStart=c.selectionEnd=f+2})}},[e,s]);return r.jsxs("div",{children:[r.jsxs(A,{isRequired:i,children:[o,l&&r.jsx("span",{className:"ml-2 text-text-tertiary/60 normal-case font-normal",children:l})]}),a&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),r.jsx("textarea",{value:e,onChange:x=>s(x.target.value),onKeyDown:d,className:"input w-full mt-1 font-mono text-xs leading-relaxed",rows:10,spellCheck:!1})]})}function xe({fieldKey:t,value:e,onChange:s,schema:n,isRequired:i}){const o=N.useRef(null),[a,l]=N.useState(!1),d=P(t,n),x=n==null?void 0:n.description;N.useEffect(()=>{const p=o.current;if(!p)return;const b=p.getContext("2d");if(b&&(b.lineWidth=2,b.lineCap="round",b.strokeStyle="#1E1535",e&&e.startsWith("data:"))){const m=new Image;m.onload=()=>b.drawImage(m,0,0),m.src=e}},[]);const c=N.useCallback(p=>{const b=o.current,m=b.getBoundingClientRect(),k=m.width>0?b.width/m.width:1,j=m.height>0?b.height/m.height:1;return"touches"in p?{x:(p.touches[0].clientX-m.left)*k,y:(p.touches[0].clientY-m.top)*j}:{x:(p.clientX-m.left)*k,y:(p.clientY-m.top)*j}},[]),f=N.useCallback(p=>{var k;l(!0);const b=(k=o.current)==null?void 0:k.getContext("2d");if(!b)return;const m=c(p);b.beginPath(),b.moveTo(m.x,m.y)},[c]),u=N.useCallback(p=>{var k;if(!a)return;const b=(k=o.current)==null?void 0:k.getContext("2d");if(!b)return;const m=c(p);b.lineTo(m.x,m.y),b.stroke()},[a,c]),g=N.useCallback(()=>{l(!1);const p=o.current;p&&s(p.toDataURL("image/png"))},[s]),y=N.useCallback(()=>{const p=o.current;if(!p)return;const b=p.getContext("2d");b&&(b.clearRect(0,0,p.width,p.height),s(""))},[s]);return r.jsxs("div",{children:[r.jsx(A,{isRequired:i,children:d}),x&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:x}),r.jsx("div",{className:"mt-1 max-w-[25rem] border border-surface-border rounded-md overflow-hidden bg-white",children:r.jsx("canvas",{ref:o,width:400,height:150,className:"w-full cursor-crosshair touch-none",onMouseDown:f,onMouseMove:u,onMouseUp:g,onMouseLeave:g,onTouchStart:f,onTouchMove:u,onTouchEnd:g})}),r.jsx("button",{type:"button",onClick:y,className:"mt-1 text-2xs text-text-tertiary hover:text-accent transition-colors",children:"Clear"})]})}function pe({fieldKey:t,value:e,onChange:s,schema:n,isRequired:i}){const o=P(t,n),a=n==null?void 0:n.description;return r.jsxs("div",{children:[r.jsx(A,{isRequired:i,children:o}),a&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:a}),r.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 fe({fieldKey:t,value:e,onChange:s,schema:n,isRequired:i}){const[o,a]=N.useState("write"),l=P(t,n),d=n==null?void 0:n.description;return(n==null?void 0:n.readOnly)===!0?r.jsx(xt,{content:e,className:"my-1"}):r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(A,{isRequired:i,children:l}),r.jsx("div",{className:"flex items-center gap-0.5",children:["write","preview"].map(c=>r.jsx("button",{type:"button",onClick:()=>a(c),className:`px-2 py-0.5 text-2xs rounded transition-colors ${o===c?"bg-accent/10 text-accent font-semibold":"text-text-quaternary hover:text-text-secondary"}`,children:c==="write"?"Write":"Preview"},c))})]}),d&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:d}),o==="write"?r.jsx("textarea",{value:e,onChange:c=>s(c.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."}):r.jsx("div",{className:"mt-1 px-3 py-2 border border-surface-border rounded min-h-[120px]",children:e.trim()?r.jsx(xt,{content:e}):r.jsx("p",{className:"text-xs text-text-quaternary italic",children:"Nothing to preview."})})]})}const ge=28;function ye({fieldKey:t,value:e,onChange:s,schema:n,escalationContext:i,isRequired:o,submitAttempted:a,error:l}){const d=(n==null?void 0:n["x-lt-require-all"])===!0,x=st(n==null?void 0:n["x-lt-source"],i);let c={};try{e&&(c=JSON.parse(e))}catch{}const f=(()=>{const j=te(n,c,i);return j?JSON.stringify(j):null})();N.useEffect(()=>{f&&s(f)},[f]);const u=j=>s(JSON.stringify({...c,[j]:!c[j]})),g=P(t,n),y=n==null?void 0:n.description;if(x.length===0)return r.jsxs(r.Fragment,{children:[r.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&&r.jsx("p",{className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]});const p=n==null?void 0:n["x-lt-variant"],b=p==="chips"||p==="rows"?p:d||x.some(j=>j.label.length>ge)?"rows":"chips",m=x.filter(j=>c[j.id]).length,k=(x.find(j=>!c[j.id]&&j.required!==!1)??x[0]).id;return r.jsxs("div",{role:"group","aria-label":g,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,children:[r.jsx(A,{isRequired:o,children:g}),y&&r.jsx(M,{children:y}),b==="chips"?r.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:x.map(j=>{const E=c[j.id]??!1,_=!E&&!!a&&m===0&&(j.required||o);return r.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)] ${E?"bg-accent border-accent text-text-inverse":_?"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:[r.jsx("input",{type:"checkbox",checked:E,onChange:()=>u(j.id),className:"sr-only","data-testid":`checklist-item-${j.id}`,...j.id===k?{"data-field-key":t}:{}}),E&&r.jsx(At,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),j.label]},j.id)})}):r.jsx("div",{className:"space-y-2.5 mt-2",children:x.map(j=>{const E=c[j.id]??!1,_=!E&&!!a&&(d?j.required!==!1:m===0&&(j.required||o));return r.jsxs("label",{className:`flex items-start gap-3 cursor-pointer group select-none rounded px-2 py-1 -mx-2 transition-colors ${_?"bg-status-error/5":"hover:bg-surface-hover"}`,children:[r.jsx("input",{type:"checkbox",checked:E,onChange:()=>u(j.id),className:`mt-0.5 w-3.5 h-3.5 shrink-0 rounded ${_?"accent-status-error":"accent-accent"}`,"data-testid":`checklist-item-${j.id}`,...j.id===k?{"data-field-key":t}:{}}),r.jsxs("span",{className:`text-sm leading-snug transition-colors ${_?"text-status-error":"text-text-secondary group-hover:text-text-primary"}`,children:[j.label,j.required&&r.jsx("span",{className:`ml-0.5 text-2xs ${_?"text-status-error":"text-text-quaternary"}`,children:"*"})]})]},j.id)})}),r.jsx("p",{className:"text-2xs text-text-quaternary mt-3 tabular-nums",children:b==="chips"?r.jsxs(r.Fragment,{children:[m," selected",o&&m===0&&!!a&&r.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(check at least one)"})]}):r.jsxs(r.Fragment,{children:[m," / ",x.length," confirmed",d?r.jsxs("span",{className:"ml-1 text-text-quaternary/60",children:["(all required",x.some(j=>j.required===!1)?" except optional":"",")"]}):o&&m===0&&!!a&&r.jsx("span",{className:"ml-1 text-text-quaternary/60",children:"(at least one required)"})]})}),l&&r.jsx("p",{role:"alert",className:"text-2xs text-status-error mt-1 animate-[field-error-in_0.3s_ease-out]",children:l})]})}const be=/\.(png|jpe?g|gif|webp|avif|bmp|svg)(\?.*)?$/i;function je(t){var n,i,o,a;const e=t.trim();if(!e)return{kind:"none"};const s=(i=(n=/^data:([^;,]+)[;,]/.exec(e))==null?void 0:n[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(be.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 mt({fieldKey:t,value:e,schema:s}){const[n,i]=N.useState(!1),o=je(e??""),a=t.replace(/[_-]/g," "),l=s==null?void 0:s.description,d=r.jsxs(r.Fragment,{children:[r.jsx("label",{className:"text-2xs font-semibold uppercase tracking-widest text-text-tertiary",children:a}),l&&r.jsx("p",{className:"text-2xs text-text-tertiary mt-0.5",children:l})]});return o.kind==="none"?r.jsxs("div",{children:[d,r.jsx("p",{className:"text-xs text-text-quaternary italic mt-1",children:"No attachment"})]}):o.kind==="image"?r.jsxs("div",{children:[d,r.jsxs("div",{className:"mt-1",children:[r.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:r.jsx("img",{src:o.src,alt:t.replace(/[_-]/g," "),className:"max-h-48 max-w-full object-contain","data-testid":`attachment-image-${t}`})}),n&&r.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:r.jsx("img",{src:o.src,alt:a,className:"max-h-[90vh] max-w-[90vw] object-contain"})})]})]}):r.jsxs("div",{children:[d,r.jsx("div",{className:"mt-1",children:r.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:[r.jsx(Pt,{className:"w-3.5 h-3.5",strokeWidth:1.5}),o.isData?`Download ${o.label}`:`Open ${o.label}`,o.isData?r.jsx(Ut,{className:"w-3 h-3",strokeWidth:1.5}):r.jsx(K,{className:"w-3 h-3",strokeWidth:1.5})]})})]})}function me({fieldKey:t,schema:e,escalationContext:s}){const n=(e==null?void 0:e["x-lt-href"])??"",i=n&&s?z(n,s):n,o=(e==null?void 0:e.title)??(e==null?void 0:e.description)??"Open",a=e==null?void 0:e.description,l=i.startsWith("/"),d=!i.trim();return r.jsxs("div",{"data-field-key":t,children:[r.jsx(A,{children:o}),a&&r.jsx(M,{children:a}),r.jsx("div",{className:"mt-1",children:d?r.jsx("span",{className:"text-xs text-text-quaternary italic",children:"No link configured"}):l?r.jsxs($t,{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,r.jsx(K,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]}):r.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,r.jsx(K,{className:"w-3 h-3 shrink-0",strokeWidth:1.5})]})})]})}function Ft({to:t,className:e=""}){return r.jsxs($t,{to:t,title:"View details",tabIndex:-1,className:`inline-flex items-center justify-center w-6 h-6 shrink-0 rounded border border-surface-border text-accent/70 hover:text-accent hover:border-accent/60 hover:bg-accent/5 transition-colors ${e}`,children:[r.jsx(Ht,{className:"w-3.5 h-3.5",strokeWidth:2}),r.jsx("span",{className:"sr-only",children:"View details"})]})}const ht="—";function he(t,e){if(!t||!e)return"";const s=t.indexOf(".");if(s===-1)return"";const n=t.slice(0,s),i=t.slice(s+1);try{const o=tt(e[n],i);return typeof o=="string"?o:""}catch{return""}}function Ne(t,e){if(!t||t===ht)return ht;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:rt(t)}return t}function ve({fieldKey:t,schema:e,escalationContext:s}){const n=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=he(n,s),{data:d,isLoading:x,isError:c}=zt(l);return r.jsxs("div",{"data-field-key":t,children:[r.jsx(A,{children:o}),a&&r.jsx(M,{children:a}),r.jsx("div",{className:"mt-1",children:!l||c?r.jsx("p",{className:"text-xs text-text-quaternary italic","data-testid":`escalation-widget-empty-${t}`,children:"No linked record"}):x?r.jsx(ke,{}):d?r.jsx(we,{esc:d,fields:i,fieldKey:t}):r.jsx("p",{className:"text-xs text-text-quaternary italic",children:"No linked record"})})]})}function we({esc:t,fields:e,fieldKey:s}){if(!t)return null;const n=et(t);return r.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2","data-testid":`escalation-widget-card-${s}`,children:[r.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[r.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[t.type,t.subtype&&t.subtype!==t.type?` · ${t.subtype}`:""]}),r.jsx(Qt,{status:t.status})]}),t.description&&r.jsx("p",{className:"text-xs text-text-primary leading-snug",children:t.description}),e.length>0&&r.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-4 gap-y-0.5",children:e.map(i=>{const o=z(i.value,n),a=Ne(o,i.format);return r.jsxs("div",{className:"contents",children:[r.jsx("dt",{className:"text-2xs text-text-tertiary whitespace-nowrap",children:i.label}),r.jsx("dd",{className:"text-2xs text-text-primary",children:a})]},i.label)})}),r.jsxs("div",{className:"flex items-center justify-between gap-2",children:[r.jsxs("span",{className:"text-2xs text-text-quaternary",children:[t.role," · ",rt(t.created_at)]}),r.jsx(Ft,{to:`/escalations/detail/${t.id}`})]})]})}function ke(){return r.jsxs("div",{className:"border-l-2 border-accent-faint pl-3 py-2 space-y-2 animate-pulse",children:[r.jsx("div",{className:"h-3 w-32 bg-surface-sunken rounded"}),r.jsx("div",{className:"h-3 w-48 bg-surface-sunken rounded"}),r.jsx("div",{className:"h-3 w-24 bg-surface-sunken rounded"})]})}function Ae(t,e){if(!t)return{};const s={};for(const[n,i]of Object.entries(t))s[n]=typeof i=="string"?z(i,e):i;return s}function $e(t,e,s){const n=Ae(t.facets,e),i={role:t.role,status:t.status??"pending",facets:n,limit:t.limit,enabled:!!(t.role||Object.keys(n).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 Ee=[{label:"Description",value:"{{escalation.description}}"},{label:"Role",value:"{{escalation.role}}"},{label:"Age",value:"{{escalation.created_at}}",format:"age"}],Nt="—";function _e(t,e){if(!t||t===Nt)return Nt;if(e==="age"){const s=new Date(t);return Number.isNaN(s.getTime())?t:rt(t)}return t}function S(t,e){return typeof t=="string"?z(t,e):Array.isArray(t)?t.map(s=>S(s,e)):t&&typeof t=="object"?Object.fromEntries(Object.entries(t).map(([s,n])=>[s,S(n,e)])):t}function Oe({fieldKey:t,schema:e,escalationContext:s}){const n=(e==null?void 0:e["x-lt-query"])??{},i=(e==null?void 0:e["x-lt-columns"])??Ee,o=(e==null?void 0:e["x-lt-actions"])??[],a=(e==null?void 0:e.title)??"Related items",l=e==null?void 0:e.description,d=s??{},{user:x}=Yt(),c=$e(n,d,x==null?void 0:x.userId),{data:f,isLoading:u}=Vt({role:c.role,status:c.status,facets:c.facets,assigned_to:c.assigned_to,available:c.available,limit:c.limit??5,enabled:c.enabled,include:qt({columns:i,actions:o})?"envelope":void 0}),g=(f==null?void 0:f.escalations)??[],y=Gt(),[p,b]=N.useState({}),[m,k]=N.useState(null),j=async(E,_)=>{const D=et(E);if(!(_.confirm&&!window.confirm(z(_.confirm,D)))){k(E.id),b(I=>({...I,[E.id]:""}));try{await y.mutateAsync({id:E.id,resolverPayload:S(_.resolverPayload,D)})}catch(I){b(W=>({...W,[E.id]:I.message}))}finally{k(null)}}};return r.jsxs("div",{"data-field-key":t,children:[r.jsx(A,{children:a}),l&&r.jsx(M,{children:l}),r.jsx("div",{className:"mt-1","data-testid":`escalation-list-widget-${t}`,children:u?r.jsx(Fe,{columns:i.length}):r.jsx(Ce,{escalations:g,columns:i,fieldKey:t,actions:o,onAction:j,pendingRow:m,rowErrors:p})})]})}function Ce({escalations:t,columns:e,fieldKey:s,actions:n,onAction:i,pendingRow:o,rowErrors:a}){return t.length===0?r.jsx("p",{className:"text-xs text-text-quaternary italic py-1","data-testid":`escalation-list-empty-${s}`,children:"No items found"}):r.jsxs("table",{className:"w-full text-xs border-collapse","data-testid":`escalation-list-table-${s}`,children:[r.jsx("thead",{children:r.jsxs("tr",{className:"border-b border-surface-border",children:[e.map(l=>r.jsx("th",{className:"text-left text-2xs font-semibold uppercase tracking-wider text-text-tertiary pb-1 pr-3 last:pr-0",children:l.label},l.label)),n.length>0&&r.jsx("th",{className:"w-px"}),r.jsx("th",{className:"w-8"})]})}),r.jsx("tbody",{children:t.map(l=>{const d=et(l),x=a[l.id];return r.jsxs("tr",{className:"border-b border-surface-border/50 last:border-0 hover:bg-surface-sunken/50 transition-colors",children:[e.map(c=>{const f=z(c.value,d),u=_e(f,c.format);return r.jsx("td",{className:"py-1 pr-3 last:pr-0 text-text-primary align-top",children:u},c.label)}),n.length>0&&r.jsxs("td",{className:"py-1 pr-2 align-top whitespace-nowrap",children:[n.map(c=>r.jsx("button",{type:"button",onClick:()=>i(l,c),disabled:o===l.id,className:"px-2 py-0.5 text-2xs font-medium text-accent border border-accent/40 rounded hover:bg-accent/10 disabled:opacity-40 disabled:cursor-default transition-colors ml-1 first:ml-0","data-testid":`escalation-list-action-${l.id}`,children:c.label},c.label)),x&&r.jsx("p",{className:"text-2xs text-status-error mt-0.5 whitespace-normal max-w-[16rem]","data-testid":`escalation-list-action-error-${l.id}`,children:x})]}),r.jsx("td",{className:"py-1 pl-2 align-top",children:r.jsx(Ft,{to:`/escalations/detail/${l.id}`})})]},l.id)})})]})}function Fe({columns:t}){return r.jsx("div",{className:"space-y-1.5 animate-pulse",children:[0,1,2].map(e=>r.jsx("div",{className:"flex gap-4",children:Array.from({length:t},(s,n)=>r.jsx("div",{className:"h-3 bg-surface-sunken rounded flex-1"},n))},e))})}const Q={"file-upload":de,"code-editor":ue,signature:xe,"rich-text":pe,markdown:fe,checklist:ye,attachment:mt,image:mt,link:me,escalation:ve,"escalation-list":Oe},Te=new Set(["string","number","integer","boolean","array","object"]);function Me(t,e){const s=t==null?void 0:t.type;if(typeof s=="string"&&Te.has(s))return s;if(e==null)return"null";if(Array.isArray(e))return"array";const n=typeof e;return n==="number"||n==="boolean"||n==="string"?n:"object"}const Z="dictionary",De=new Set(["markdown","attachment","image"]);function Tt(t,e){if(!e)return;const s=t==null?void 0:t["x-lt-section-options"],n=s==null?void 0:s[e];return n&&typeof n=="object"?n:void 0}function Ie(t,e,s){var l,d;const n=(l=t==null?void 0:t.properties)==null?void 0:l[s];if((n==null?void 0:n.readOnly)!==!0)return!1;const i=n==null?void 0:n["x-lt-widget"];if(typeof i=="string"&&De.has(i))return!1;const o=n==null?void 0:n["x-lt-display"];if(typeof o=="string")return o===Z;const a=(d=Tt(t,e))==null?void 0:d.display;return typeof a=="string"?a===Z:(t==null?void 0:t["x-lt-display"])===Z}function Le(t,e,s,n){var o;const i=[];for(const a of t){const[l]=a,d=i[i.length-1];if(Ie(e,s,l)){(d==null?void 0:d.kind)==="dictionary"?d.entries.push(a):i.push({kind:"dictionary",entries:[a]});continue}const x=(o=e==null?void 0:e.properties)==null?void 0:o[l],c=x==null?void 0:x["x-lt-column-group"];if(n==="two-column"&&typeof c=="string"&&c.trim()){(d==null?void 0:d.kind)==="column-group"&&d.name===c?d.entries.push(a):i.push({kind:"column-group",name:c,entries:[a]});continue}i.push({kind:"field",entry:a})}return i}function We({value:t,options:e,nullable:s,fieldKey:n,label:i,helperText:o,isRequired:a,error:l,onBlur:d,ids:x,ariaProps:c,onChange:f}){const u=t==null||t===""?"":String(t),g=e.some(y=>String(y.value)===u);return r.jsxs("div",{children:[r.jsx(A,{isRequired:a,htmlFor:x.field,children:i}),o&&r.jsx(M,{id:x.help,children:o}),r.jsxs("select",{value:g?u:"",disabled:e.length===0,onChange:y=>{const p=e.find(b=>String(b.value)===y.target.value);f(p?p.value:null),d==null||d()},onBlur:d,"data-field-key":n,className:ce(!!l),...c,children:[(!g||s)&&r.jsx("option",{value:"",disabled:!s,children:"Choose…"}),e.map(y=>r.jsx("option",{value:String(y.value),children:y.label},String(y.value)))]}),r.jsx(L,{error:l,id:x.error})]})}function Re({value:t,options:e,fieldKey:s,label:n,helperText:i,isRequired:o,error:a,onBlur:l,ids:d,ariaProps:x,onChange:c}){const f=new Set(Array.isArray(t)?t:[]),u=g=>{const y=new Set(f);y.has(g)?y.delete(g):y.add(g),c(e.filter(p=>y.has(p.value)).map(p=>p.value)),l==null||l()};return r.jsxs("div",{role:"group","aria-label":n,"aria-required":o||void 0,"aria-invalid":a?!0:void 0,"aria-describedby":x["aria-describedby"],children:[r.jsx(A,{isRequired:o,children:n}),i&&r.jsx(M,{id:d.help,children:i}),e.length===0?r.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"No options yet"}):r.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:e.map((g,y)=>{const p=f.has(g.value);return r.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)] ${p?"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:[r.jsx("input",{type:"checkbox",checked:p,onChange:()=>u(g.value),className:"sr-only","data-testid":`multi-select-${s}-${String(g.value)}`,...y===0?{"data-field-key":s,id:d.field}:{}}),p&&r.jsx(At,{className:"w-3.5 h-3.5 shrink-0",strokeWidth:2.5}),g.label]},String(g.value))})}),r.jsx(L,{error:a,id:d.error})]})}function vt(t){return typeof t=="string"?t:t==null?"":JSON.stringify(t,null,2)}function wt(t){try{return{ok:!0,value:JSON.parse(t)}}catch{return{ok:!1}}}function qe({value:t,fieldKey:e,label:s,helperText:n,isRequired:i,error:o,onBlur:a,ids:l,ariaProps:d,onChange:x}){const[c,f]=N.useState(()=>vt(t));N.useEffect(()=>{if(typeof t=="string"){t!==c&&f(t);return}const g=wt(c);!(g.ok&&JSON.stringify(g.value)===JSON.stringify(t??null))&&!(c.trim()===""&&t===null)&&f(vt(t))},[t]);const u=c.split(`
|
|
2
|
-
`).length;return r.jsxs("div",{children:[r.jsx(A,{isRequired:i,htmlFor:l.field,children:s}),n&&r.jsx(M,{id:l.help,children:n}),r.jsx("textarea",{value:c,onChange:g=>{const y=g.target.value;if(f(y),y.trim()===""){x(null);return}const p=wt(y);x(p.ok?p.value:y)},onBlur:a,spellCheck:!1,"data-field-key":e,rows:Math.min(14,Math.max(4,u)),className:`${X(!!o)} font-mono text-xs leading-relaxed`,...d}),r.jsx(L,{error:o,id:l.error})]})}const kt={date:"date","date-time":"datetime-local",email:"email",uri:"url"},Je={date:"max-w-48","date-time":"max-w-64"};function Mt({fieldKey:t,value:e,onChange:s,onBlur:n,schema:i,isRequired:o,isReadOnly:a,error:l,escalationContext:d,submitAttempted:x}){var W;const c=(W=i==null?void 0:i.properties)==null?void 0:W[t],f=P(t,c),u=c==null?void 0:c["x-lt-widget"],g=Me(c,e),y=`lt-field-${t}`,p={field:y,help:`${y}-help`,error:`${y}-error`},b=typeof(c==null?void 0:c.description)=="string"&&c.description.length>0?c.description:void 0,m={id:y,"aria-required":o||void 0,"aria-invalid":l?!0:void 0,"aria-describedby":l?p.error:b?p.help:void 0},k={fieldKey:t,label:f,helperText:b,isRequired:o,error:l,onBlur:n,ids:p,ariaProps:m,onChange:s},j=u==="markdown"&&typeof e=="string",E=(u==="attachment"||u==="image")&&typeof e=="string",_=!!(u&&u in Q);if(a&&!j&&!E&&!_){const w=e===null?"null":typeof e=="object"?JSON.stringify(e,null,2):String(e);return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,children:f}),r.jsx("p",{className:"text-sm text-text-secondary mt-0.5 whitespace-pre-wrap",children:w})]})}if(u==="json"&&(g==="array"||g==="object"))return r.jsx(qe,{...k,value:e});if(u&&u in Q){const w=Q[u],O=o||(c==null?void 0:c["x-lt-require-all"])===!0,C={fieldKey:t,schema:c,escalationContext:d,isRequired:O,submitAttempted:x,error:l};if((c==null?void 0:c.type)==="object"){const F=typeof e=="string"?e:typeof e=="object"&&e!==null&&!Array.isArray(e)?JSON.stringify(e):"";return r.jsx(w,{...C,value:F,onChange:R=>{try{s(JSON.parse(R))}catch{s(R)}}})}if(typeof e=="string")return r.jsx(w,{...C,value:e,onChange:F=>s(F)});if(typeof e=="object"&&e!==null&&!Array.isArray(e))return r.jsx(w,{...C,value:JSON.stringify(e),onChange:F=>{try{s(JSON.parse(F))}catch{s(F)}}})}const D=nt(c,d);if(g==="array"){if(D!==void 0&&(c==null?void 0:c["x-lt-options"])!==void 0)return r.jsx(Re,{...k,value:e,options:D})}else if(D!==void 0&&g!=="object")return r.jsx(We,{...k,value:e,options:D,nullable:(c==null?void 0:c["x-lt-nullable"])===!0});switch(g){case"boolean":return r.jsxs("div",{children:[r.jsxs("label",{className:"flex items-center gap-2 cursor-pointer",children:[r.jsx("input",{type:"checkbox",checked:e===!0,onChange:w=>{s(w.target.checked),n==null||n()},className:"w-3.5 h-3.5 rounded accent-accent","data-field-key":t,...m}),r.jsxs("span",{className:"text-2xs font-semibold uppercase tracking-wider text-text-secondary",children:[f,o&&r.jsx("span",{className:"text-status-error ml-0.5",children:"*"})]})]}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx(L,{error:l,id:p.error})]});case"number":case"integer":return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,htmlFor:y,children:f}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx("input",{type:"number",value:typeof e=="number"||typeof e=="string"?e:"",onChange:w=>s(parseFloat(w.target.value)||0),onBlur:n,step:"any","data-field-key":t,className:`${X(!!l)} max-w-48`,...m}),r.jsx(L,{error:l,id:p.error})]});case"string":return I(typeof e=="string"?e:e==null?"":String(e));case"array":return Array.isArray(e)?r.jsxs("div",{children:[r.jsx(A,{isRequired:o,children:f}),r.jsx("div",{className:"flex flex-wrap gap-1.5 mt-1",children:e.map((w,O)=>r.jsx("span",{className:"px-2 py-0.5 text-2xs font-mono bg-surface-sunken rounded text-text-secondary",children:String(w)},O))})]}):I(e==null?"":String(e));case"object":{if(typeof e!="object"||e===null||Array.isArray(e))return I(e==null?"":String(e));const w=Object.entries(e);return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,children:f}),r.jsx("div",{className:"ml-4 mt-2 pl-4 border-l border-accent-faint space-y-3",children:w.map(([O,C])=>r.jsx(Mt,{fieldKey:O,value:C,onChange:F=>s({...e,[O]:F})},O))})]})}default:return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,children:f}),r.jsx("p",{className:"text-xs text-text-tertiary italic mt-1",children:"null"})]})}function I(w){const O=c==null?void 0:c.format;if(O==="password")return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,htmlFor:y,children:f}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx("input",{type:"password",value:w,onChange:C=>s(C.target.value),onBlur:n,"data-field-key":t,className:X(!!l),autoComplete:"off",...m}),r.jsx(L,{error:l,id:p.error})]});if(O&&O in kt)return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,htmlFor:y,children:f}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx("input",{type:kt[O],value:w,onChange:C=>s(C.target.value),onBlur:n,"data-field-key":t,className:`${X(!!l)} ${Je[O]??""}`,...m}),r.jsx(L,{error:l,id:p.error})]});if(O==="textarea"||w.length>80){const C=c==null?void 0:c.maxLength,F=c==null?void 0:c["x-lt-max-length"],R=F?Number(V(F,d)):NaN,U=C??(Number.isFinite(R)?R:void 0),H=U!==void 0&&w.length>U;return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,htmlFor:y,children:f}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx("textarea",{value:w,onChange:G=>{s(G.target.value),n==null||n()},onBlur:n,"data-field-key":t,className:`${X(!!l)} leading-relaxed`,rows:Math.min(6,Math.max(3,Math.ceil(w.length/60))),...m}),U!==void 0&&r.jsxs("p",{className:`text-2xs mt-0.5 text-right tabular-nums ${H?"text-status-error font-medium":"text-text-quaternary"}`,children:[w.length," / ",U]}),r.jsx(L,{error:l,id:p.error})]})}return r.jsxs("div",{children:[r.jsx(A,{isRequired:o,htmlFor:y,children:f}),b&&r.jsx(M,{id:p.help,children:b}),r.jsx("input",{type:"text",value:w,onChange:C=>s(C.target.value),onBlur:n,"data-field-key":t,className:X(!!l),...m}),r.jsx(L,{error:l,id:p.error})]})}}function Pe({items:t,columns:e=1}){if(t.length===0)return null;const s=e>=2&&t.length>1?"grid-cols-1 @dict-inline:grid-cols-[max-content_1fr] @dict-pairs:grid-cols-[max-content_1fr_max-content_1fr]":"grid-cols-1 @dict-inline:grid-cols-[max-content_1fr]";return r.jsx("div",{className:"@container",children:r.jsx("dl",{className:`grid ${s} items-baseline gap-x-6 @dict-pairs:gap-x-8 gap-y-1.5`,children:t.map(({key:n,label:i,value:o})=>r.jsxs(N.Fragment,{children:[r.jsx("dt",{className:"text-2xs font-semibold uppercase tracking-wide text-text-secondary mt-2 first:mt-0 @dict-inline:mt-0",children:i}),r.jsx("dd",{className:"text-sm text-text-primary break-words min-w-0","data-field-key":n,children:Ue(o)})]},n))})})}function Ue(t){return t==null||t===""?"—":typeof t=="boolean"?t?"Yes":"No":typeof t=="object"?JSON.stringify(t):String(t)}function He({name:t,entries:e,formSchema:s,layout:n,renderField:i}){const o=Le(e,s,t,n),a=Tt(s,t),l=(a==null?void 0:a.columns)??(n==="two-column"?2:1),d=c=>c.map(([f,u])=>{var g;return{key:f,label:P(f,(g=s==null?void 0:s.properties)==null?void 0:g[f]),value:u}}),x=()=>o.map((c,f)=>c.kind==="dictionary"?r.jsx("div",{className:n==="two-column"?"col-span-full":"",children:r.jsx(Pe,{items:d(c.entries),columns:l})},`dict-${f}`):c.kind==="column-group"?r.jsx("div",{className:"@container",children:r.jsx("div",{className:"grid grid-cols-1 @grp-cols:grid-cols-2 gap-x-4 gap-y-5",children:c.entries.map(u=>i(u))})},`group-${c.name}-${f}`):i(c.entry));return r.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&&r.jsx("p",{className:"mb-4 text-[1.40625rem] font-semibold tracking-wider text-heading [font-variant-caps:small-caps]",children:t}),n==="two-column"?r.jsx("div",{className:"@container",children:r.jsx("div",{className:"grid grid-cols-1 @form-cols:grid-cols-2 gap-x-col-gap gap-y-5",children:x()})}):r.jsx("div",{className:"space-y-5",children:x()})]})}function Ke({value:t,onChange:e,disabled:s,submitAttempted:n,escalationContext:i,onOpenHelp:o,onDisabledClick:a,disabledHint:l}){var lt,ct;const[d,x]=N.useState({}),[c,f]=N.useState({}),[u,g]=N.useState(null),[y,p]=N.useState(!1),[b,m]=N.useState(new Set);N.useEffect(()=>{try{const h=JSON.parse(t);if(typeof h=="object"&&h!==null&&!Array.isArray(h)){const $={},v={};for(const[T,q]of Object.entries(h))T.startsWith("_")?v[T]=q:$[T]=q;x($),f(v),g(v._form_schema&&typeof v._form_schema=="object"?v._form_schema:null),p(!1)}}catch{p(!0)}},[t]);const k=N.useCallback(h=>{x(h),e(JSON.stringify({...h,...c},null,2))},[c,e]),j=N.useCallback((h,$)=>{k({...d,[h]:$})},[d,k]),E=N.useCallback(h=>{m($=>{if($.has(h))return $;const v=new Set($);return v.add(h),v})},[]);if(y)return r.jsx("p",{className:"text-xs text-status-error",children:"Unable to parse resolver data as form. Use the JSON editor below."});const _=Object.entries(d);if(_.length===0)return r.jsx("p",{className:"text-xs text-text-tertiary italic",children:"No resolver fields defined."});const D=u==null?void 0:u["x-lt-order"],I=D?[..._].sort((h,$)=>{const v=D.indexOf(h[0]),T=D.indexOf($[0]);return(v===-1?1/0:v)-(T===-1?1/0:T)}):_,W={...i??{},resolver:d,input:d},w=I.filter(([h,$])=>{var T;const v=(T=u==null?void 0:u.properties)==null?void 0:T[h];return Ct(v==null?void 0:v["x-lt-showIf"],W)?!oe(v,$):!1}),O=new Set((u==null?void 0:u.required)??[]),C=u==null?void 0:u["x-lt-layout"],F=u==null?void 0:u.title,R=u==null?void 0:u.description,U=typeof(u==null?void 0:u["x-lt-help"])=="string"||typeof(u==null?void 0:u["x-lt-context"])=="string",H=[];for(const h of w){const[$]=h,v=(lt=u==null?void 0:u.properties)==null?void 0:lt[$],T=((ct=v==null?void 0:v["x-lt-section"])==null?void 0:ct.trim())||null,q=H[H.length-1];!q||q.name!==T?H.push({name:T,entries:[h]}):q.entries.push(h)}const G=([h,$])=>{var ut;const v=(ut=u==null?void 0:u.properties)==null?void 0:ut[h],T=(v==null?void 0:v.readOnly)===!0,q=(v==null?void 0:v["x-lt-span"])??1,dt=O.has(h),Dt=b.has(h)||!!n,It=se($,v,dt,Dt,W);return r.jsx("div",{className:`animate-[field-enter_0.2s_ease-out] ${C==="two-column"&&q>=2?"col-span-full":""}`,children:r.jsx(Mt,{fieldKey:h,value:$,onChange:Lt=>j(h,Lt),onBlur:()=>E(h),schema:u,isRequired:dt,isReadOnly:T,error:It,escalationContext:W,submitAttempted:!!n})},h)},at=r.jsxs("div",{className:s?"pointer-events-none":void 0,inert:s||void 0,"aria-disabled":s||void 0,children:[F&&r.jsxs("div",{className:"mb-1 flex items-center gap-1.5",children:[r.jsx("h3",{className:"heading-3",children:F}),U&&o&&r.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:r.jsx(Xt,{className:"w-4 h-4",strokeWidth:1.5})})]}),R&&r.jsx("p",{className:"text-sm text-text-secondary leading-relaxed mb-6",children:R}),r.jsx("div",{className:"space-y-8",children:H.map((h,$)=>r.jsx(He,{name:h.name,entries:h.entries,formSchema:u,layout:C,renderField:G},h.name??`__s${$}`))})]});return s?r.jsx(le,{hint:l,onLockedClick:a,children:at}):r.jsx("div",{className:"pb-8 max-w-form",children:at})}export{Ke as R,P as d,Ct as e,$e as r,Ze as s,se as v};
|
|
3
|
-
//# sourceMappingURL=ResolverForm-Bk-wDkN-.js.map
|