@rytass/bpm-core-react 0.16.2 → 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +54 -6
  3. package/dist/chunks/admin-pickers-BRHk3qKq.cjs +2 -0
  4. package/dist/chunks/admin-pickers-BRHk3qKq.cjs.map +1 -0
  5. package/dist/chunks/{admin-pickers-DxhzECkD.js → admin-pickers-Djq3h-UR.js} +41 -39
  6. package/dist/chunks/admin-pickers-Djq3h-UR.js.map +1 -0
  7. package/dist/chunks/{categories-DjENouRm.cjs → categories-AxxhqjLZ.cjs} +2 -2
  8. package/dist/chunks/{categories-DjENouRm.cjs.map → categories-AxxhqjLZ.cjs.map} +1 -1
  9. package/dist/chunks/{categories-1gKxeEqw.js → categories-riC33J_j.js} +2 -2
  10. package/dist/chunks/{categories-1gKxeEqw.js.map → categories-riC33J_j.js.map} +1 -1
  11. package/dist/chunks/{compose-DUH9cQ-L.cjs → compose-B7TtrpQJ.cjs} +2 -2
  12. package/dist/chunks/{compose-DUH9cQ-L.cjs.map → compose-B7TtrpQJ.cjs.map} +1 -1
  13. package/dist/chunks/{compose-DO6n0NJi.js → compose-_pREPtfN.js} +2 -2
  14. package/dist/chunks/{compose-DO6n0NJi.js.map → compose-_pREPtfN.js.map} +1 -1
  15. package/dist/chunks/{delegations-BLzYnOae.cjs → delegations-V9HIe3_P.cjs} +2 -2
  16. package/dist/chunks/delegations-V9HIe3_P.cjs.map +1 -0
  17. package/dist/chunks/{delegations-_b4_xBit.js → delegations-xUt1tj8d.js} +2 -1
  18. package/dist/chunks/{delegations-_b4_xBit.js.map → delegations-xUt1tj8d.js.map} +1 -1
  19. package/dist/chunks/{designer-B-cfiob9.js → designer-BiywgNXs.js} +1003 -949
  20. package/dist/chunks/designer-BiywgNXs.js.map +1 -0
  21. package/dist/chunks/designer-ttAqv859.cjs +65 -0
  22. package/dist/chunks/designer-ttAqv859.cjs.map +1 -0
  23. package/dist/chunks/detail-DRCTnuKm.cjs +2 -0
  24. package/dist/chunks/detail-DRCTnuKm.cjs.map +1 -0
  25. package/dist/chunks/{detail-C6NdVijG.js → detail-DScLf42P.js} +183 -156
  26. package/dist/chunks/detail-DScLf42P.js.map +1 -0
  27. package/dist/chunks/orgs-C8usknWb.cjs +2 -0
  28. package/dist/chunks/orgs-C8usknWb.cjs.map +1 -0
  29. package/dist/chunks/{orgs-Bpp1U60k.js → orgs-Lg7tXv2u.js} +584 -544
  30. package/dist/chunks/orgs-Lg7tXv2u.js.map +1 -0
  31. package/dist/chunks/users-DRbuDYF1.js +422 -0
  32. package/dist/chunks/users-DRbuDYF1.js.map +1 -0
  33. package/dist/chunks/users-DVQicZIo.cjs +2 -0
  34. package/dist/chunks/users-DVQicZIo.cjs.map +1 -0
  35. package/dist/components/admin-pickers.d.cts +65 -0
  36. package/dist/components/approval-instance-list-page.d.cts +17 -0
  37. package/dist/components/bpm-form-field.d.cts +10 -0
  38. package/dist/components/bpm-notification-bell-button.d.cts +22 -0
  39. package/dist/components/dashboard-page.d.cts +7 -0
  40. package/dist/components/notification-drawer.d.cts +11 -0
  41. package/dist/components/org-unit-tree-draft-editor.d.cts +24 -0
  42. package/dist/components/org-unit-tree-draft-editor.d.ts +1 -1
  43. package/dist/components/pdf-preview.d.cts +12 -0
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.d.cts +15 -0
  46. package/dist/index.d.ts +15 -15
  47. package/dist/index.js +1 -1
  48. package/dist/lib/auth-provider.d.cts +37 -0
  49. package/dist/lib/format-date-time.d.cts +5 -0
  50. package/dist/lib/format-member-label.d.cts +12 -0
  51. package/dist/lib/member-profile-resolution.d.cts +48 -0
  52. package/dist/lib/notification-drawer-provider.d.cts +27 -0
  53. package/dist/lib/notification-unread-provider.d.cts +25 -0
  54. package/dist/lib/org-tree-draft.d.cts +27 -0
  55. package/dist/lib/providers.d.cts +31 -0
  56. package/dist/lib/router-adapter.d.cts +47 -0
  57. package/dist/lib/routes-config.d.cts +117 -0
  58. package/dist/lib/task-node-label.d.cts +10 -0
  59. package/dist/lib/use-bpm-logout.d.cts +12 -0
  60. package/dist/lib/use-bpm-member.d.cts +17 -0
  61. package/dist/next/BPMNextProviders.d.cts +51 -0
  62. package/dist/next/index.d.cts +2 -0
  63. package/dist/next/index.d.ts +2 -2
  64. package/dist/next/workflow-chat-route.d.cts +17 -0
  65. package/dist/pages/admin/delegations/index.cjs +1 -1
  66. package/dist/pages/admin/delegations/index.d.cts +4 -0
  67. package/dist/pages/admin/delegations/index.js +1 -1
  68. package/dist/pages/admin/orgs/index.cjs +1 -1
  69. package/dist/pages/admin/orgs/index.d.cts +4 -0
  70. package/dist/pages/admin/orgs/index.js +1 -1
  71. package/dist/pages/admin/users/index.cjs +1 -1
  72. package/dist/pages/admin/users/index.d.cts +4 -0
  73. package/dist/pages/admin/users/index.js +1 -1
  74. package/dist/pages/admin/webhook-endpoints/index.d.cts +4 -0
  75. package/dist/pages/cc/index.d.cts +16 -0
  76. package/dist/pages/dashboard/index.d.cts +16 -0
  77. package/dist/pages/delegations/index.d.cts +4 -0
  78. package/dist/pages/inbox/index.d.cts +16 -0
  79. package/dist/pages/instances/detail/index.cjs +1 -1
  80. package/dist/pages/instances/detail/index.d.cts +23 -0
  81. package/dist/pages/instances/detail/index.js +1 -1
  82. package/dist/pages/instances/new/index.d.cts +20 -0
  83. package/dist/pages/login/index.d.cts +21 -0
  84. package/dist/pages/root/index.d.cts +18 -0
  85. package/dist/pages/search/index.d.cts +16 -0
  86. package/dist/pages/sent/index.d.cts +16 -0
  87. package/dist/pages/settings/notifications/index.d.cts +4 -0
  88. package/dist/pages/templates/categories/index.cjs +1 -1
  89. package/dist/pages/templates/categories/index.d.cts +4 -0
  90. package/dist/pages/templates/categories/index.js +1 -1
  91. package/dist/pages/templates/compose/index.cjs +1 -1
  92. package/dist/pages/templates/compose/index.d.cts +25 -0
  93. package/dist/pages/templates/compose/index.js +1 -1
  94. package/dist/pages/templates/designer/index.cjs +1 -1
  95. package/dist/pages/templates/designer/index.d.cts +8 -0
  96. package/dist/pages/templates/designer/index.js +1 -1
  97. package/dist/pages/templates/index.d.cts +4 -0
  98. package/dist/pages/templates/versions/index.d.cts +8 -0
  99. package/dist/views/admin/delegations/AdminDelegationsView.d.cts +2 -0
  100. package/dist/views/admin/delegations/index.cjs +1 -1
  101. package/dist/views/admin/delegations/index.d.cts +1 -0
  102. package/dist/views/admin/delegations/index.d.ts +1 -1
  103. package/dist/views/admin/delegations/index.js +1 -1
  104. package/dist/views/admin/index.cjs +1 -1
  105. package/dist/views/admin/index.d.cts +4 -0
  106. package/dist/views/admin/index.d.ts +4 -4
  107. package/dist/views/admin/index.js +3 -3
  108. package/dist/views/admin/orgs/AdminOrgsView.d.cts +2 -0
  109. package/dist/views/admin/orgs/index.cjs +1 -1
  110. package/dist/views/admin/orgs/index.d.cts +1 -0
  111. package/dist/views/admin/orgs/index.d.ts +1 -1
  112. package/dist/views/admin/orgs/index.js +1 -1
  113. package/dist/views/admin/users/AdminUsersView.d.cts +2 -0
  114. package/dist/views/admin/users/MemberTaskReassignModal.d.cts +13 -0
  115. package/dist/views/admin/users/MemberTaskReassignModal.d.ts +13 -0
  116. package/dist/views/admin/users/index.cjs +1 -1
  117. package/dist/views/admin/users/index.d.cts +1 -0
  118. package/dist/views/admin/users/index.d.ts +1 -1
  119. package/dist/views/admin/users/index.js +1 -1
  120. package/dist/views/admin/webhook-endpoints/AdminWebhookEndpointsView.d.cts +8 -0
  121. package/dist/views/admin/webhook-endpoints/index.d.cts +1 -0
  122. package/dist/views/admin/webhook-endpoints/index.d.ts +1 -1
  123. package/dist/views/cc/CcView.d.cts +7 -0
  124. package/dist/views/cc/index.d.cts +1 -0
  125. package/dist/views/cc/index.d.ts +1 -1
  126. package/dist/views/dashboard/DashboardView.d.cts +7 -0
  127. package/dist/views/dashboard/index.d.cts +1 -0
  128. package/dist/views/dashboard/index.d.ts +1 -1
  129. package/dist/views/delegations/DelegationsView.d.cts +2 -0
  130. package/dist/views/delegations/index.d.cts +1 -0
  131. package/dist/views/delegations/index.d.ts +1 -1
  132. package/dist/views/forms/builder/FormBuilderView.d.cts +18 -0
  133. package/dist/views/forms/builder/index.d.cts +1 -0
  134. package/dist/views/forms/builder/index.d.ts +1 -1
  135. package/dist/views/forms/builder/json-code-editor.d.cts +11 -0
  136. package/dist/views/forms/renderer/FormRendererView.d.cts +24 -0
  137. package/dist/views/forms/renderer/FormRendererView.d.ts +1 -1
  138. package/dist/views/forms/renderer/form-data-source-field.d.cts +65 -0
  139. package/dist/views/forms/renderer/form-field-link.d.cts +16 -0
  140. package/dist/views/forms/renderer/index.d.cts +2 -0
  141. package/dist/views/forms/renderer/index.d.ts +2 -2
  142. package/dist/views/forms/renderer/member-field-options.d.cts +39 -0
  143. package/dist/views/forms/renderer/member-field.d.cts +21 -0
  144. package/dist/views/inbox/InboxView.d.cts +7 -0
  145. package/dist/views/inbox/index.d.cts +1 -0
  146. package/dist/views/inbox/index.d.ts +1 -1
  147. package/dist/views/instances/detail/InstanceDetailView.d.cts +27 -0
  148. package/dist/views/instances/detail/index.cjs +1 -1
  149. package/dist/views/instances/detail/index.d.cts +7 -0
  150. package/dist/views/instances/detail/index.d.ts +7 -7
  151. package/dist/views/instances/detail/index.js +1 -1
  152. package/dist/views/instances/detail/sections/InstanceAttachmentsSection.d.cts +15 -0
  153. package/dist/views/instances/detail/sections/InstanceFormSection.d.cts +36 -0
  154. package/dist/views/instances/detail/sections/InstanceFormSection.d.ts +1 -1
  155. package/dist/views/instances/detail/sections/InstanceHistorySection.d.cts +29 -0
  156. package/dist/views/instances/detail/sections/InstanceSignaturesSection.d.cts +14 -0
  157. package/dist/views/instances/detail/sections/InstanceTasksSection.d.cts +55 -0
  158. package/dist/views/instances/detail/sections/InstanceWebhookDeliveriesSection.d.cts +20 -0
  159. package/dist/views/instances/detail/sections/container-helpers.d.cts +10 -0
  160. package/dist/views/instances/detail/sections/container-helpers.d.ts +1 -1
  161. package/dist/views/instances/detail/sections/shared.d.cts +141 -0
  162. package/dist/views/instances/detail/submitted-by.d.cts +23 -0
  163. package/dist/views/instances/index.d.cts +1 -0
  164. package/dist/views/instances/index.d.ts +1 -1
  165. package/dist/views/instances/new/InstanceNewView.d.cts +15 -0
  166. package/dist/views/instances/new/index.d.cts +1 -0
  167. package/dist/views/instances/new/index.d.ts +1 -1
  168. package/dist/views/login/LoginView.d.cts +47 -0
  169. package/dist/views/login/index.d.cts +1 -0
  170. package/dist/views/login/index.d.ts +1 -1
  171. package/dist/views/root/RootView.d.cts +10 -0
  172. package/dist/views/root/index.d.cts +1 -0
  173. package/dist/views/root/index.d.ts +1 -1
  174. package/dist/views/search/SearchView.d.cts +7 -0
  175. package/dist/views/search/index.d.cts +1 -0
  176. package/dist/views/search/index.d.ts +1 -1
  177. package/dist/views/sent/SentView.d.cts +7 -0
  178. package/dist/views/sent/index.d.cts +1 -0
  179. package/dist/views/sent/index.d.ts +1 -1
  180. package/dist/views/settings/index.d.cts +1 -0
  181. package/dist/views/settings/index.d.ts +1 -1
  182. package/dist/views/settings/notifications/SettingsNotificationsView.d.cts +2 -0
  183. package/dist/views/settings/notifications/index.d.cts +1 -0
  184. package/dist/views/settings/notifications/index.d.ts +1 -1
  185. package/dist/views/templates/TemplatesView.d.cts +7 -0
  186. package/dist/views/templates/categories/TemplateCategoriesView.d.cts +2 -0
  187. package/dist/views/templates/categories/index.cjs +1 -1
  188. package/dist/views/templates/categories/index.d.cts +1 -0
  189. package/dist/views/templates/categories/index.d.ts +1 -1
  190. package/dist/views/templates/categories/index.js +1 -1
  191. package/dist/views/templates/compose/TemplateComposeWizardView.d.cts +21 -0
  192. package/dist/views/templates/compose/index.cjs +1 -1
  193. package/dist/views/templates/compose/index.d.cts +2 -0
  194. package/dist/views/templates/compose/index.d.ts +2 -2
  195. package/dist/views/templates/compose/index.js +1 -1
  196. package/dist/views/templates/compose/steps/ComposeFormStep.d.cts +15 -0
  197. package/dist/views/templates/compose/steps/ComposeReviewStep.d.cts +12 -0
  198. package/dist/views/templates/compose/steps/ComposeWorkflowStep.d.cts +22 -0
  199. package/dist/views/templates/compose/use-template-compose-wizard.d.cts +46 -0
  200. package/dist/views/templates/designer/NotifyWebhookTargetsEditor.d.cts +20 -0
  201. package/dist/views/templates/designer/NotifyWebhookTargetsEditor.d.ts +1 -1
  202. package/dist/views/templates/designer/TemplateDesignerView.d.cts +65 -0
  203. package/dist/views/templates/designer/chrome-workflow-chat.d.cts +12 -0
  204. package/dist/views/templates/designer/chrome-workflow-chat.d.ts +1 -1
  205. package/dist/views/templates/designer/decision-policy-options.d.cts +8 -0
  206. package/dist/views/templates/designer/designer-version-labels.d.cts +12 -0
  207. package/dist/views/templates/designer/dry-run-assignee-label.d.cts +28 -0
  208. package/dist/views/templates/designer/dry-run-sample-data.d.cts +9 -0
  209. package/dist/views/templates/designer/dynamic-form-resolver-options.d.cts +35 -0
  210. package/dist/views/templates/designer/index.cjs +1 -1
  211. package/dist/views/templates/designer/index.d.cts +1 -0
  212. package/dist/views/templates/designer/index.d.ts +1 -1
  213. package/dist/views/templates/designer/index.js +1 -1
  214. package/dist/views/templates/designer/notify-webhook-designer.d.cts +74 -0
  215. package/dist/views/templates/designer/position-level-options.d.cts +17 -0
  216. package/dist/views/templates/designer/use-workflow-chat.d.cts +21 -0
  217. package/dist/views/templates/designer/use-workflow-chat.d.ts +1 -1
  218. package/dist/views/templates/designer/use-workflow-designer-controller.d.cts +41 -0
  219. package/dist/views/templates/designer/workflow-chat-drawer.d.cts +16 -0
  220. package/dist/views/templates/designer/workflow-chat-drawer.d.ts +1 -1
  221. package/dist/views/templates/index.cjs +1 -1
  222. package/dist/views/templates/index.d.cts +3 -0
  223. package/dist/views/templates/index.d.ts +3 -3
  224. package/dist/views/templates/index.js +1 -1
  225. package/dist/views/templates/versions/TemplateVersionsView.d.cts +5 -0
  226. package/dist/views/templates/versions/index.d.cts +1 -0
  227. package/dist/views/templates/versions/index.d.ts +1 -1
  228. package/dist/views/workflow/index.d.cts +4 -0
  229. package/dist/views/workflow/index.d.ts +4 -4
  230. package/package.json +387 -147
  231. package/dist/chunks/admin-pickers-DxhzECkD.js.map +0 -1
  232. package/dist/chunks/admin-pickers-qe3j--gX.cjs +0 -2
  233. package/dist/chunks/admin-pickers-qe3j--gX.cjs.map +0 -1
  234. package/dist/chunks/delegations-BLzYnOae.cjs.map +0 -1
  235. package/dist/chunks/designer-2YvjP_GU.cjs +0 -65
  236. package/dist/chunks/designer-2YvjP_GU.cjs.map +0 -1
  237. package/dist/chunks/designer-B-cfiob9.js.map +0 -1
  238. package/dist/chunks/detail-C6NdVijG.js.map +0 -1
  239. package/dist/chunks/detail-DKobK4Cg.cjs +0 -2
  240. package/dist/chunks/detail-DKobK4Cg.cjs.map +0 -1
  241. package/dist/chunks/orgs-Bpp1U60k.js.map +0 -1
  242. package/dist/chunks/orgs-ywaE1_02.cjs +0 -2
  243. package/dist/chunks/orgs-ywaE1_02.cjs.map +0 -1
  244. package/dist/chunks/users-BSVo_eNe.js +0 -215
  245. package/dist/chunks/users-BSVo_eNe.js.map +0 -1
  246. package/dist/chunks/users-DFSBTDMy.cjs +0 -2
  247. package/dist/chunks/users-DFSBTDMy.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ export * from './AdminUsersView.cjs';
@@ -1 +1 @@
1
- export * from './AdminUsersView';
1
+ export * from './AdminUsersView.js';
@@ -1 +1 @@
1
- export { t as AdminUsersView } from "../../../chunks/users-BSVo_eNe.js";
1
+ export { t as AdminUsersView } from "../../../chunks/users-DRbuDYF1.js";
@@ -0,0 +1,8 @@
1
+ import { ReactElement } from 'react';
2
+ /**
3
+ * Back-office management of database webhook endpoints (ADR 18 §3.13):
4
+ * create, edit, disable, rotate the signing secret, test-send and read the
5
+ * change history. Header values and secrets are entered here and never shown
6
+ * again. Administrator-only on the server.
7
+ */
8
+ export declare function AdminWebhookEndpointsView(): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './AdminWebhookEndpointsView.cjs';
@@ -1 +1 @@
1
- export * from './AdminWebhookEndpointsView';
1
+ export * from './AdminWebhookEndpointsView.js';
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ /**
3
+ * Framework-agnostic view for the BPM "cc" inbox — instances the current
4
+ * member is copied on. Mechanical port of
5
+ * `apps/client/src/app/cc/page.tsx`.
6
+ */
7
+ export declare function CcView(): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './CcView.cjs';
@@ -1 +1 @@
1
- export * from './CcView';
1
+ export * from './CcView.js';
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ /**
3
+ * Framework-agnostic view for the BPM dashboard. Delegates to the shared
4
+ * `<DashboardPage>` component. Mechanical port of
5
+ * `apps/client/src/app/dashboard/page.tsx`.
6
+ */
7
+ export declare function DashboardView(): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './DashboardView.cjs';
@@ -1 +1 @@
1
- export * from './DashboardView';
1
+ export * from './DashboardView.js';
@@ -0,0 +1,2 @@
1
+ import { ReactElement } from 'react';
2
+ export declare function DelegationsView(): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './DelegationsView.cjs';
@@ -1 +1 @@
1
- export * from './DelegationsView';
1
+ export * from './DelegationsView.js';
@@ -0,0 +1,18 @@
1
+ import { ReactElement } from 'react';
2
+ import { FormDefinitionSchema, FormUiSchema } from '@rytass/bpm-core-shared/form';
3
+ export interface FormBuilderViewProps {
4
+ /**
5
+ * Initial (or controlled) schema value.
6
+ * If omitted, the builder starts with empty schema / uiSchema.
7
+ */
8
+ readonly value?: {
9
+ readonly schema: FormDefinitionSchema;
10
+ readonly uiSchema: FormUiSchema;
11
+ };
12
+ /** Called whenever the schema or uiSchema changes. */
13
+ readonly onChange?: (next: {
14
+ readonly schema: FormDefinitionSchema;
15
+ readonly uiSchema: FormUiSchema;
16
+ }) => void;
17
+ }
18
+ export declare function FormBuilderView({ onChange, value, }: FormBuilderViewProps): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './FormBuilderView.cjs';
@@ -1 +1 @@
1
- export * from './FormBuilderView';
1
+ export * from './FormBuilderView.js';
@@ -0,0 +1,11 @@
1
+ import { ReactElement } from 'react';
2
+ interface JsonCodeEditorProps {
3
+ readonly disabled?: boolean;
4
+ readonly height: string;
5
+ readonly name: string;
6
+ readonly onChange: (value: string) => void;
7
+ readonly placeholder: string;
8
+ readonly value: string;
9
+ }
10
+ export declare function JsonCodeEditor({ disabled, height, name, onChange, placeholder, value, }: JsonCodeEditorProps): ReactElement;
11
+ export {};
@@ -0,0 +1,24 @@
1
+ import { CSSProperties, ReactElement } from 'react';
2
+ import { FormDataSourceValueSnapshots, FormDefinitionSchema, FormFieldDefinition, FormUiSchema } from '@rytass/bpm-core-shared/form';
3
+ import { FormRendererValues } from '@rytass/bpm-core-client/form';
4
+ import { FormDataSourceFieldState, FormRendererDataSourceContext } from './form-data-source-field.cjs';
5
+ export interface FormRendererProps {
6
+ readonly dataSourceContext?: FormRendererDataSourceContext;
7
+ readonly dataSourceInitialValues?: FormRendererValues;
8
+ readonly emptyText?: string;
9
+ readonly errors?: Readonly<Record<string, string>>;
10
+ readonly maxWidth?: CSSProperties['maxWidth'];
11
+ readonly onChange?: (values: FormRendererValues) => void;
12
+ readonly onDataSourceStateChange?: (fieldKey: string, state: Pick<FormDataSourceFieldState, 'hasValue' | 'invalidValues' | 'status'>) => void;
13
+ readonly onUploadAttachment?: (field: FormFieldDefinition, file: File) => Promise<{
14
+ readonly id: string;
15
+ }>;
16
+ readonly optionSnapshots?: FormDataSourceValueSnapshots;
17
+ readonly readonly?: boolean;
18
+ readonly schema: FormDefinitionSchema;
19
+ readonly singleColumn?: boolean;
20
+ readonly uiSchema: FormUiSchema;
21
+ readonly value?: FormRendererValues;
22
+ }
23
+ export declare function FormRenderer({ dataSourceContext, dataSourceInitialValues, emptyText, errors, maxWidth, onChange, onDataSourceStateChange, onUploadAttachment, optionSnapshots, readonly, schema, singleColumn, uiSchema, value, }: FormRendererProps): ReactElement;
24
+ export { FormRenderer as FormRendererView };
@@ -1,7 +1,7 @@
1
1
  import { CSSProperties, ReactElement } from 'react';
2
2
  import { FormDataSourceValueSnapshots, FormDefinitionSchema, FormFieldDefinition, FormUiSchema } from '@rytass/bpm-core-shared/form';
3
3
  import { FormRendererValues } from '@rytass/bpm-core-client/form';
4
- import { FormDataSourceFieldState, FormRendererDataSourceContext } from './form-data-source-field';
4
+ import { FormDataSourceFieldState, FormRendererDataSourceContext } from './form-data-source-field.js';
5
5
  export interface FormRendererProps {
6
6
  readonly dataSourceContext?: FormRendererDataSourceContext;
7
7
  readonly dataSourceInitialValues?: FormRendererValues;
@@ -0,0 +1,65 @@
1
+ import { FormDataSourceValueSnapshots, FormDefinitionSchema, FormFieldDefinition, FormFieldOption, FormFieldValue, FormUiSchema } from '@rytass/bpm-core-shared/form';
2
+ import { FormDataSourceFieldStatus, FormRendererValues } from '@rytass/bpm-core-client/form';
3
+ export type FormRendererDataSourceContext = {
4
+ readonly kind: 'preview';
5
+ } | {
6
+ readonly instanceId?: string | null;
7
+ readonly kind: 'runtime';
8
+ readonly templateId?: string | null;
9
+ };
10
+ export interface FormDataSourceFieldState {
11
+ /**
12
+ * False when nothing can be re-requested — a read-only or context-less field
13
+ * has no query to retry, so the view must not offer a dead retry action.
14
+ */
15
+ readonly canRetry: boolean;
16
+ readonly error: string | null;
17
+ readonly hasValue: boolean;
18
+ readonly hasNextPage: boolean;
19
+ readonly invalidValues: readonly string[];
20
+ readonly onReachBottom: () => void;
21
+ readonly onSearch: (searchText: string) => void;
22
+ readonly options: readonly FormFieldOption[];
23
+ readonly retry: () => void;
24
+ readonly status: FormDataSourceFieldStatus;
25
+ }
26
+ /**
27
+ * What makes a table cell different from a top-level field: it is addressed by
28
+ * a schema path, snapshotted under an instance path, and its `ROW_FIELD`
29
+ * bindings read from its own row rather than the form (ADR 16 §3.3, §3.5).
30
+ */
31
+ export interface UseFormDataSourceFieldRow {
32
+ /** The row as it was loaded, so a returned case can tell what changed. */
33
+ readonly initialValues?: FormRendererValues;
34
+ readonly values: FormRendererValues;
35
+ }
36
+ export interface UseFormDataSourceFieldInput {
37
+ readonly context?: FormRendererDataSourceContext;
38
+ readonly field: FormFieldDefinition;
39
+ /** Schema path used to address the field; defaults to its own key. */
40
+ readonly fieldPath?: string;
41
+ readonly formData: FormRendererValues;
42
+ readonly initialFormData?: FormRendererValues;
43
+ readonly initialValue?: FormFieldValue | undefined;
44
+ readonly optionSnapshots?: FormDataSourceValueSnapshots;
45
+ readonly readonly: boolean;
46
+ /** Set only for a table cell. */
47
+ readonly row?: UseFormDataSourceFieldRow;
48
+ readonly schema: FormDefinitionSchema;
49
+ /** Snapshot map key; defaults to the field key. */
50
+ readonly snapshotKey?: string;
51
+ readonly uiSchema: FormUiSchema;
52
+ }
53
+ export declare function useFormDataSourceField(input: UseFormDataSourceFieldInput): FormDataSourceFieldState;
54
+ export declare function readFormDataSourceFieldStatusMessage(state: FormDataSourceFieldState): string | null;
55
+ export declare function isFormDataSourceFieldSubmissionBlocked(state: Pick<FormDataSourceFieldState, 'hasValue' | 'status'>): boolean;
56
+ /**
57
+ * The copy to show when a submission is refused because of dynamic options.
58
+ * `LOADING` and `STALE` clear on their own once the pending query answers, so
59
+ * saying "finish validating" reads as a dead end for what is really a "wait a
60
+ * moment"; the caller would otherwise show the same permanent-sounding line for
61
+ * both cases.
62
+ *
63
+ * Returns `null` when nothing blocks the submission.
64
+ */
65
+ export declare function readFormDataSourceSubmissionBlockMessage(states: readonly Pick<FormDataSourceFieldState, 'hasValue' | 'status'>[]): string | null;
@@ -0,0 +1,16 @@
1
+ export interface FormFieldLink {
2
+ /** Absolute links open in a new tab; site-relative ones stay in this tab. */
3
+ readonly external: boolean;
4
+ readonly href: string;
5
+ }
6
+ /**
7
+ * Decides whether a `displayAs: 'link'` text value may become an anchor.
8
+ * Returns `null` for everything that must stay plain text.
9
+ *
10
+ * Allowed: a site-relative path (`/` first, never `//`) or an absolute
11
+ * `http(s)://` URL with a host and no embedded credentials. Everything else —
12
+ * `javascript:`, `data:`, protocol-relative `//host`, backslash tricks
13
+ * (`/\host` is `//host` to a browser), padded or multi-line values, non-strings
14
+ * — is refused rather than repaired.
15
+ */
16
+ export declare function resolveFormFieldLink(value: unknown): FormFieldLink | null;
@@ -0,0 +1,2 @@
1
+ export * from './FormRendererView.cjs';
2
+ export * from './form-data-source-field.cjs';
@@ -1,2 +1,2 @@
1
- export * from './FormRendererView';
2
- export * from './form-data-source-field';
1
+ export * from './FormRendererView.js';
2
+ export * from './form-data-source-field.js';
@@ -0,0 +1,39 @@
1
+ import { FormFieldValue } from '@rytass/bpm-core-shared/form';
2
+ /**
3
+ * One pickable member, shaped for Mezzanine `AutoComplete` (`id` + `name`).
4
+ * `unresolved` marks the placeholder written when a stored id has no profile,
5
+ * so a real profile arriving later replaces it instead of the placeholder
6
+ * sticking (the designer does the same for its approver list).
7
+ */
8
+ export type MemberFieldOption = Readonly<{
9
+ id: string;
10
+ name: string;
11
+ unresolved?: boolean;
12
+ }>;
13
+ export declare const UNKNOWN_MEMBER_NAME = "\u672A\u77E5\u6703\u54E1";
14
+ export declare function readMemberFieldOption(member: {
15
+ readonly email: string;
16
+ readonly memberId: string;
17
+ readonly name: string;
18
+ }): MemberFieldOption;
19
+ export declare function readUnresolvedMemberFieldOption(memberId: string): MemberFieldOption;
20
+ /**
21
+ * Adds `nextOptions` to `currentOptions`. A resolved option replaces an
22
+ * unresolved placeholder with the same id; otherwise the first one seen wins.
23
+ * Returns `currentOptions` itself when nothing changed, so state setters can
24
+ * bail out of a re-render.
25
+ */
26
+ export declare function mergeMemberFieldOptions(currentOptions: readonly MemberFieldOption[], nextOptions: readonly MemberFieldOption[]): readonly MemberFieldOption[];
27
+ /** Ids in the stored value that no known option covers yet. */
28
+ export declare function readUnresolvedMemberIds(value: FormFieldValue | undefined, knownOptions: readonly MemberFieldOption[]): readonly string[];
29
+ /**
30
+ * The stored value as options, in stored order. An id with no known profile
31
+ * still shows up (as 「未知會員」) so the filler can see and remove it.
32
+ */
33
+ export declare function readSelectedMemberFieldOptions(value: FormFieldValue | undefined, knownOptions: readonly MemberFieldOption[]): readonly MemberFieldOption[];
34
+ /**
35
+ * What a picker change writes back. Nothing picked is `undefined`, the same as
36
+ * every other optional field, so the renderer's own initial value (`[]` for a
37
+ * multiple member field) is restored by `buildFormRendererValues`.
38
+ */
39
+ export declare function readMemberFieldValue(selected: readonly MemberFieldOption[], multiple: boolean): FormFieldValue | undefined;
@@ -0,0 +1,21 @@
1
+ import { ReactElement } from 'react';
2
+ import { FormFieldValue } from '@rytass/bpm-core-shared/form';
3
+ export interface MemberFieldControlProps {
4
+ readonly multiple: boolean;
5
+ readonly name: string;
6
+ readonly onChange: (value: FormFieldValue | undefined) => void;
7
+ readonly placeholder?: string;
8
+ readonly readonly: boolean;
9
+ readonly size?: 'main' | 'sub';
10
+ readonly value: FormFieldValue | undefined;
11
+ }
12
+ /**
13
+ * 人員選擇 picker. Searching and name lookup reuse the directory queries the
14
+ * admin member picker and the workflow designer already call
15
+ * (`searchMembers` / `resolveMembers`); nothing new is added server side.
16
+ *
17
+ * Stored values are member ids. The names shown here are resolved on mount and
18
+ * whenever a stored id has no profile yet, so a read-only view of a submitted
19
+ * form (instance detail) shows names, not ids.
20
+ */
21
+ export declare function MemberFieldControl({ multiple, name, onChange, placeholder, readonly, size, value, }: MemberFieldControlProps): ReactElement;
@@ -0,0 +1,7 @@
1
+ import { ReactElement } from 'react';
2
+ /**
3
+ * Framework-agnostic view for the BPM "我的待簽" inbox. Mechanical port of
4
+ * `apps/client/src/app/inbox/page.tsx` — renders pending tasks, tracking,
5
+ * and history tabs.
6
+ */
7
+ export declare function InboxView(): ReactElement;
@@ -0,0 +1 @@
1
+ export * from './InboxView.cjs';
@@ -1 +1 @@
1
- export * from './InboxView';
1
+ export * from './InboxView.js';
@@ -0,0 +1,27 @@
1
+ import { ReactElement } from 'react';
2
+ export interface InstanceDetailViewProps {
3
+ /** Approval instance id (Next.js `params.id` resolved by the page shim). */
4
+ readonly instanceId: string;
5
+ /** Show the form snapshot section (default: true). */
6
+ readonly showForm?: boolean;
7
+ /** Show the attachments section (default: true). */
8
+ readonly showAttachments?: boolean;
9
+ /** Show the tasks section (default: true). */
10
+ readonly showTasks?: boolean;
11
+ /** Show the signatures section (default: true). */
12
+ readonly showSignatures?: boolean;
13
+ /** Show the history section (default: true). */
14
+ readonly showHistory?: boolean;
15
+ /**
16
+ * Show the notify-node webhook deliveries section (default: true). Only
17
+ * administrators ever see it, and only when the instance queued any.
18
+ */
19
+ readonly showWebhookDeliveries?: boolean;
20
+ }
21
+ /**
22
+ * Framework-agnostic view for the BPM approval instance detail page.
23
+ * Mechanical port of `apps/client/src/app/instances/[id]/page.tsx`. The
24
+ * `instanceId` is provided by the host page wrapper (typically resolved
25
+ * from `params.id` in the Next.js Server Component shim).
26
+ */
27
+ export declare function InstanceDetailView({ instanceId, showAttachments, showForm, showHistory, showSignatures, showTasks, showWebhookDeliveries, }: InstanceDetailViewProps): ReactElement;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/detail-DKobK4Cg.cjs");exports.InstanceAttachmentsSection=e.o,exports.InstanceDetailView=e.t,exports.InstanceFormSection=e.s,exports.InstanceHistorySection=e.r,exports.InstanceSignaturesSection=e.i,exports.InstanceTasksSection=e.a,exports.InstanceWebhookDeliveriesSection=e.n;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/detail-DRCTnuKm.cjs");exports.InstanceAttachmentsSection=e.o,exports.InstanceDetailView=e.t,exports.InstanceFormSection=e.s,exports.InstanceHistorySection=e.r,exports.InstanceSignaturesSection=e.i,exports.InstanceTasksSection=e.a,exports.InstanceWebhookDeliveriesSection=e.n;
@@ -0,0 +1,7 @@
1
+ export * from './InstanceDetailView.cjs';
2
+ export * from './sections/InstanceFormSection.cjs';
3
+ export * from './sections/InstanceAttachmentsSection.cjs';
4
+ export * from './sections/InstanceTasksSection.cjs';
5
+ export * from './sections/InstanceSignaturesSection.cjs';
6
+ export * from './sections/InstanceHistorySection.cjs';
7
+ export * from './sections/InstanceWebhookDeliveriesSection.cjs';
@@ -1,7 +1,7 @@
1
- export * from './InstanceDetailView';
2
- export * from './sections/InstanceFormSection';
3
- export * from './sections/InstanceAttachmentsSection';
4
- export * from './sections/InstanceTasksSection';
5
- export * from './sections/InstanceSignaturesSection';
6
- export * from './sections/InstanceHistorySection';
7
- export * from './sections/InstanceWebhookDeliveriesSection';
1
+ export * from './InstanceDetailView.js';
2
+ export * from './sections/InstanceFormSection.js';
3
+ export * from './sections/InstanceAttachmentsSection.js';
4
+ export * from './sections/InstanceTasksSection.js';
5
+ export * from './sections/InstanceSignaturesSection.js';
6
+ export * from './sections/InstanceHistorySection.js';
7
+ export * from './sections/InstanceWebhookDeliveriesSection.js';
@@ -1 +1 @@
1
- export { o as InstanceAttachmentsSection, t as InstanceDetailView, s as InstanceFormSection, r as InstanceHistorySection, i as InstanceSignaturesSection, a as InstanceTasksSection, n as InstanceWebhookDeliveriesSection } from "../../../chunks/detail-C6NdVijG.js";
1
+ export { o as InstanceAttachmentsSection, t as InstanceDetailView, s as InstanceFormSection, r as InstanceHistorySection, i as InstanceSignaturesSection, a as InstanceTasksSection, n as InstanceWebhookDeliveriesSection } from "../../../chunks/detail-DScLf42P.js";
@@ -0,0 +1,15 @@
1
+ import { ReactElement } from 'react';
2
+ import { AttachmentRecord } from '@rytass/bpm-core-client/workflow';
3
+ export interface InstanceAttachmentsSectionProps {
4
+ /** The list of attachments for this instance. */
5
+ readonly attachments: readonly AttachmentRecord[];
6
+ /** Called when the user clicks the download action for an attachment. */
7
+ readonly onDownload: (attachment: AttachmentRecord) => void;
8
+ /** Called when the user clicks the preview action for a PDF attachment. */
9
+ readonly onPreview: (attachment: AttachmentRecord) => void;
10
+ }
11
+ /**
12
+ * Renders the attachments section of the approval instance detail page.
13
+ * Shows a table of attachments with download and (for PDFs) preview actions.
14
+ */
15
+ export declare function InstanceAttachmentsSection({ attachments, onDownload, onPreview, }: InstanceAttachmentsSectionProps): ReactElement;
@@ -0,0 +1,36 @@
1
+ import { ReactElement } from 'react';
2
+ import { FormFieldDefinition } from '@rytass/bpm-core-shared/form';
3
+ import { ApprovalInstanceRecord, WorkflowFormData } from '@rytass/bpm-core-client/workflow';
4
+ import { FormDataSourceFieldState } from '../../../forms/renderer/form-data-source-field.cjs';
5
+ export interface InstanceFormSectionProps {
6
+ /** The loaded approval instance, or null while loading. */
7
+ readonly instance: ApprovalInstanceRecord | null;
8
+ /** Whether the instance is in a loading state. */
9
+ readonly loading: boolean;
10
+ /** Error message to display, if any. */
11
+ readonly error: string | null;
12
+ /** Whether the current user can resubmit (edit + resubmit the returned form). */
13
+ readonly canResubmitInstance: boolean;
14
+ /** Current form data for the resubmit flow. */
15
+ readonly resubmitFormData: WorkflowFormData;
16
+ /** Validation error map for the resubmit form. */
17
+ readonly resubmitFormErrors: Readonly<Record<string, string>>;
18
+ /** Whether a decision/submit action is in progress. */
19
+ readonly deciding: boolean;
20
+ /** Called when the form data changes in the resubmit flow. */
21
+ readonly onResubmitFormChange: (values: WorkflowFormData) => void;
22
+ /** Called when a dynamic option field changes validation state. */
23
+ readonly onDataSourceStateChange: (fieldKey: string, state: Pick<FormDataSourceFieldState, 'hasValue' | 'invalidValues' | 'status'>) => void;
24
+ /** Called when the user clicks "重新送出". */
25
+ readonly onResubmitInstance: () => void;
26
+ /** Called when an attachment upload is requested via the form field. */
27
+ readonly onUploadAttachment: (field: FormFieldDefinition, file: File) => Promise<{
28
+ readonly id: string;
29
+ }>;
30
+ }
31
+ /**
32
+ * Renders the form snapshot section of the approval instance detail page.
33
+ * Displays the form in read-only mode normally, or editable mode when the
34
+ * instance has been returned and the current member can resubmit it.
35
+ */
36
+ export declare function InstanceFormSection({ canResubmitInstance, deciding, error, instance, loading, onDataSourceStateChange, onResubmitFormChange, onResubmitInstance, onUploadAttachment, resubmitFormData, resubmitFormErrors, }: InstanceFormSectionProps): ReactElement;
@@ -1,7 +1,7 @@
1
1
  import { ReactElement } from 'react';
2
2
  import { FormFieldDefinition } from '@rytass/bpm-core-shared/form';
3
3
  import { ApprovalInstanceRecord, WorkflowFormData } from '@rytass/bpm-core-client/workflow';
4
- import { FormDataSourceFieldState } from '../../../forms/renderer/form-data-source-field';
4
+ import { FormDataSourceFieldState } from '../../../forms/renderer/form-data-source-field.js';
5
5
  export interface InstanceFormSectionProps {
6
6
  /** The loaded approval instance, or null while loading. */
7
7
  readonly instance: ApprovalInstanceRecord | null;
@@ -0,0 +1,29 @@
1
+ import { ReactElement } from 'react';
2
+ import { ActivityLogRecord, ApprovalInstanceRecord, MemberProfileRecord, SignatureRecord, SignatureVerificationRecord, TaskDecisionRecord, TaskRecord, WorkflowTokenRecord } from '@rytass/bpm-core-client/workflow';
3
+ import { WorkflowDefinition } from '@rytass/bpm-core-shared/workflow';
4
+ export interface InstanceHistorySectionProps {
5
+ /** Activity log records for this instance. */
6
+ readonly activityLogs: readonly ActivityLogRecord[];
7
+ /** All tasks for this instance (used to compute pending/future steps). */
8
+ readonly tasks: readonly TaskRecord[];
9
+ /** All workflow tokens for this instance. */
10
+ readonly workflowTokens: readonly WorkflowTokenRecord[];
11
+ /** The workflow definition snapshot, or null if not yet loaded. */
12
+ readonly workflowSnapshot: WorkflowDefinition | null;
13
+ /** The current state of the instance. */
14
+ readonly instanceState: ApprovalInstanceRecord['state'];
15
+ /** Member profiles indexed by memberId. */
16
+ readonly memberProfilesById: ReadonlyMap<string, MemberProfileRecord>;
17
+ /** Task decisions indexed by taskId (latest per task). */
18
+ readonly taskDecisionsByTaskId: ReadonlyMap<string, TaskDecisionRecord>;
19
+ /** Signatures indexed by id. */
20
+ readonly signaturesById: ReadonlyMap<string, SignatureRecord>;
21
+ /** Signature chain verification result, or null. */
22
+ readonly signatureVerification: SignatureVerificationRecord | null;
23
+ }
24
+ /**
25
+ * Renders the activity history section of the approval instance detail page.
26
+ * Computes the step records from the provided data and renders them as a
27
+ * vertical dot stepper.
28
+ */
29
+ export declare function InstanceHistorySection({ activityLogs, instanceState, memberProfilesById, signatureVerification, signaturesById, taskDecisionsByTaskId, tasks, workflowSnapshot, workflowTokens, }: InstanceHistorySectionProps): ReactElement;
@@ -0,0 +1,14 @@
1
+ import { ReactElement } from 'react';
2
+ import { SignatureRecord, SignatureVerificationRecord } from '@rytass/bpm-core-client/workflow';
3
+ export interface InstanceSignaturesSectionProps {
4
+ /** The list of signatures for this instance. */
5
+ readonly signatures: readonly SignatureRecord[];
6
+ /** The signature chain verification result, or null if not yet loaded. */
7
+ readonly signatureVerification: SignatureVerificationRecord | null;
8
+ }
9
+ /**
10
+ * Renders the signatures section of the approval instance detail page.
11
+ * Shows the signature chain verification status and a table of individual
12
+ * signature records.
13
+ */
14
+ export declare function InstanceSignaturesSection({ signatureVerification, signatures, }: InstanceSignaturesSectionProps): ReactElement;
@@ -0,0 +1,55 @@
1
+ import { AdhocDirectiveRecord, ApprovalInstanceRecord, MemberProfileRecord, TaskRecord } from '@rytass/bpm-core-client/workflow';
2
+ /**
3
+ * Imperative handle exposed by InstanceTasksSection via ref.
4
+ * The container uses these to wire PageHeader action buttons to the
5
+ * section's internal modal state without lifting state up.
6
+ */
7
+ export type AdhocActionMode = 'COMPLETION_NOTIFY' | 'COUNTERSIGN' | 'PRE_APPROVAL' | 'STAGE_NOTIFY';
8
+ export interface InstanceTasksSectionHandle {
9
+ /** Whether a task action (decision) is currently in flight. */
10
+ readonly deciding: boolean;
11
+ /** Whether the current user has an actionable pending task. */
12
+ readonly hasCurrentTask: boolean;
13
+ /** Whether the current task's node allows a return action. */
14
+ readonly canReturnCurrentTask: boolean;
15
+ /** Whether the current task's node allows a reject action. */
16
+ readonly canRejectCurrentTask: boolean;
17
+ /** Whether the current task's node allows a transfer action. */
18
+ readonly canTransferCurrentTask: boolean;
19
+ /** Whether the current task's node allows ad-hoc countersign/pre-approval. */
20
+ readonly canAddSignerCurrentTask: boolean;
21
+ /** Opens the reject-reason modal. */
22
+ openRejectModal(): void;
23
+ /** Opens the return modal. */
24
+ openReturnModal(): void;
25
+ /** Opens the transfer modal. */
26
+ openTransferModal(): void;
27
+ /** Opens the ad-hoc action modal in the given mode. */
28
+ openAdhocModal(mode: AdhocActionMode): void;
29
+ /** Opens the approve-comment modal. */
30
+ handleApprove(): void;
31
+ }
32
+ export interface InstanceTasksSectionProps {
33
+ /** All tasks for this instance. */
34
+ readonly tasks: readonly TaskRecord[];
35
+ /** Ad-hoc directives recorded on this instance. */
36
+ readonly adhocDirectives: readonly AdhocDirectiveRecord[];
37
+ /** The loaded approval instance (used to read workflowSnapshot node labels). */
38
+ readonly instance: ApprovalInstanceRecord | null;
39
+ /** Member profiles indexed by memberId, for displaying assignee labels. */
40
+ readonly memberProfilesById: ReadonlyMap<string, MemberProfileRecord>;
41
+ /** The currently authenticated member's id. */
42
+ readonly currentMemberId: string | null;
43
+ /**
44
+ * Called after any task decision action (approve / reject / return /
45
+ * transfer) completes successfully. The container should refresh data.
46
+ */
47
+ readonly onChanged: () => void | Promise<void>;
48
+ }
49
+ /**
50
+ * Renders the tasks section of the approval instance detail page.
51
+ * Contains the task table plus all decision action modals
52
+ * (reject, return, transfer). Approve is also handled here via the
53
+ * imperative handle exposed through the forwarded ref.
54
+ */
55
+ export declare const InstanceTasksSection: import('react').ForwardRefExoticComponent<InstanceTasksSectionProps & import('react').RefAttributes<InstanceTasksSectionHandle>>;
@@ -0,0 +1,20 @@
1
+ import { ReactElement } from 'react';
2
+ import { WorkflowWebhookDeliveryRecord } from '@rytass/bpm-core-client/workflow';
3
+ export interface InstanceWebhookDeliveriesSectionProps {
4
+ /** The instance's notify-node webhook deliveries, oldest first. */
5
+ readonly deliveries: readonly WorkflowWebhookDeliveryRecord[];
6
+ /** Resolves a node id to the label shown to the reader. */
7
+ readonly readNodeLabel: (nodeId: string) => string;
8
+ /**
9
+ * Re-queues a `FAILED` delivery. A rejection is shown in the section, so
10
+ * the caller only needs to refresh what it displays on success.
11
+ */
12
+ readonly onRetry: (delivery: WorkflowWebhookDeliveryRecord) => Promise<void>;
13
+ }
14
+ /**
15
+ * Administrator-only view of the webhooks this instance's notify nodes sent
16
+ * (ADR 18 §3.10): where each delivery stands, how many attempts it took, the
17
+ * last error, and a retry for the ones that gave up. Carries no URL or
18
+ * payload — the server never sends them to the browser.
19
+ */
20
+ export declare function InstanceWebhookDeliveriesSection({ deliveries, onRetry, readNodeLabel, }: InstanceWebhookDeliveriesSectionProps): ReactElement;
@@ -0,0 +1,10 @@
1
+ import { ActivityLogRecord, AdhocDirectiveRecord, ApprovalInstanceRecord, MemberProfileRecord, TaskDecisionRecord, TaskRecord } from '@rytass/bpm-core-client/workflow';
2
+ export { canMemberActOnTask, readErrorMessage, readInstanceStateLabel, readNodeRuntimeState, } from './shared.cjs';
3
+ export declare function readMemberProfilesForTimeline({ activityLogs, adhocDirectives, instance, tasks, }: {
4
+ readonly activityLogs: readonly ActivityLogRecord[];
5
+ readonly adhocDirectives?: readonly AdhocDirectiveRecord[];
6
+ readonly instance?: Pick<ApprovalInstanceRecord, 'initiatorMemberId' | 'submittedByMemberId'>;
7
+ readonly tasks: readonly TaskRecord[];
8
+ }): Promise<readonly MemberProfileRecord[]>;
9
+ export declare function readTaskDecisionsForTasks(tasks: readonly TaskRecord[]): Promise<readonly TaskDecisionRecord[]>;
10
+ export declare function readLatestTaskDecisionsByTaskId(taskDecisions: readonly TaskDecisionRecord[]): ReadonlyMap<string, TaskDecisionRecord>;
@@ -1,5 +1,5 @@
1
1
  import { ActivityLogRecord, AdhocDirectiveRecord, ApprovalInstanceRecord, MemberProfileRecord, TaskDecisionRecord, TaskRecord } from '@rytass/bpm-core-client/workflow';
2
- export { canMemberActOnTask, readErrorMessage, readInstanceStateLabel, readNodeRuntimeState, } from './shared';
2
+ export { canMemberActOnTask, readErrorMessage, readInstanceStateLabel, readNodeRuntimeState, } from './shared.js';
3
3
  export declare function readMemberProfilesForTimeline({ activityLogs, adhocDirectives, instance, tasks, }: {
4
4
  readonly activityLogs: readonly ActivityLogRecord[];
5
5
  readonly adhocDirectives?: readonly AdhocDirectiveRecord[];