@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,10 @@
1
+ import { TaskRecord } from '@rytass/bpm-core-client/workflow';
2
+ /**
3
+ * What a task list shows in its 「節點」 column: the node's display name
4
+ * (`nodeLabel`, resolved server-side from the instance's workflow snapshot),
5
+ * falling back to the raw `nodeId` when the server sent none — an unknown node
6
+ * or a host running its own queries. An ad-hoc task keeps the label of the
7
+ * node it was spawned on and gets the same 臨時會簽/臨時加簽 marker the
8
+ * instance timeline uses.
9
+ */
10
+ export declare function readTaskNodeText(task: Pick<TaskRecord, 'adhocType' | 'isAdhoc' | 'nodeId' | 'nodeLabel'>): string;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Drop-in logout handler for host navigation menus. Wraps the BPM auth
3
+ * context's logout flow — calls `logoutApi()` against the BPM REST
4
+ * session endpoint, clears the in-memory member, then redirects to the
5
+ * configured `loginPath`.
6
+ *
7
+ * Hosts mount this on their own logout buttons / menu items so they do
8
+ * not need to touch `useAuth()` directly. To customize the post-logout
9
+ * destination, override the `loginPath` prop on `<BPMNextProviders>` or
10
+ * `<AuthProvider>`.
11
+ */
12
+ export declare function useBPMLogout(): () => Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { ApiMember } from '@rytass/bpm-core-client';
2
+ /**
3
+ * Read the currently authenticated BPM member. Returns `null` when there
4
+ * is no active session — typically only seen on the login page or during
5
+ * the brief loading window before `<AuthProvider>` resolves the cookie.
6
+ *
7
+ * Convenience alias for `useAuth().member` aimed at host navigations
8
+ * (avatar, display name, role-based menu visibility) that should not
9
+ * depend on the broader `useAuth()` surface.
10
+ */
11
+ export declare function useBPMMember(): ApiMember | null;
12
+ /**
13
+ * Whether the member passes the server's `@BPMAdminOnly()` check — the
14
+ * `BPM_ADMIN` role or one of the administrator permissions. Use it to decide
15
+ * whether to show administrator-only UI; the server still enforces access.
16
+ */
17
+ export declare function isBPMAdminMember(member: Pick<ApiMember, 'permissions' | 'roles'> | null): boolean;
@@ -0,0 +1,51 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { CalendarLocale } from '@mezzanine-ui/react/moment';
3
+ export interface BPMNextProvidersProps {
4
+ readonly children: ReactNode;
5
+ /**
6
+ * Override the Mezzanine calendar locale. Forwarded to the inner
7
+ * `<Providers>`. Defaults to `CalendarLocale.ZH_TW`.
8
+ */
9
+ readonly locale?: CalendarLocale;
10
+ /**
11
+ * Routes that must remain accessible without a BPM session — visiting
12
+ * these does not redirect to `loginPath` even when `member` is null.
13
+ * Forwarded to `<AuthProvider>`. Defaults to `['/login']`.
14
+ *
15
+ * Hosts that mount BPM under a non-root prefix (see
16
+ * `<BPMRoutesProvider>`) should typically expand this to include their
17
+ * own auth-bypass paths.
18
+ */
19
+ readonly publicPaths?: readonly string[];
20
+ /**
21
+ * Where to redirect unauthenticated users. Forwarded to
22
+ * `<AuthProvider>`. Defaults to `'/login'`. Hosts owning their own
23
+ * login route (the recommended case) override this to their host
24
+ * route, e.g. `'/auth/sign-in'`.
25
+ */
26
+ readonly loginPath?: string;
27
+ }
28
+ /**
29
+ * One-line Next.js App Router shim for the full BPM provider stack.
30
+ * Mounts in the host's root layout (or layout for the BPM sub-tree):
31
+ *
32
+ * ```tsx
33
+ * import { BPMNextProviders } from '@rytass/bpm-core-react/next';
34
+ *
35
+ * export default function RootLayout({ children }) {
36
+ * return (
37
+ * <html><body>
38
+ * <BPMNextProviders loginPath="/auth/sign-in">
39
+ * {children}
40
+ * </BPMNextProviders>
41
+ * </body></html>
42
+ * );
43
+ * }
44
+ * ```
45
+ *
46
+ * Forwards every prop on {@link BPMNextProvidersProps} to the inner
47
+ * `<Providers>` and `<AuthProvider>`. For per-feature path remapping
48
+ * (BPM internal navigation), additionally wrap with
49
+ * `<BPMRoutesProvider>` exported from the same subpath.
50
+ */
51
+ export declare function BPMNextProviders({ children, locale, publicPaths, loginPath, }: BPMNextProvidersProps): ReactElement;
@@ -0,0 +1,2 @@
1
+ export * from './BPMNextProviders.cjs';
2
+ export { BPMRoutesProvider, createDefaultBPMRoutes, useBPMRoutes, type BPMRoutes, type BPMRoutesProviderProps, } from '../lib/routes-config.cjs';
@@ -1,2 +1,2 @@
1
- export * from './BPMNextProviders';
2
- export { BPMRoutesProvider, createDefaultBPMRoutes, useBPMRoutes, type BPMRoutes, type BPMRoutesProviderProps, } from '../lib/routes-config';
1
+ export * from './BPMNextProviders.js';
2
+ export { BPMRoutesProvider, createDefaultBPMRoutes, useBPMRoutes, type BPMRoutes, type BPMRoutesProviderProps, } from '../lib/routes-config.js';
@@ -0,0 +1,17 @@
1
+ import { ToolSet } from 'ai';
2
+ /**
3
+ * Strict guardrail: the assistant may ONLY design this approval flow, using the
4
+ * provided tools. Anything else is declined. Lives server-side so it cannot be
5
+ * overridden by client-supplied messages.
6
+ */
7
+ export declare const WORKFLOW_CHAT_SYSTEM_PROMPT = "\u4F60\u662F\u300C\u7C3D\u6838\u6D41\u7A0B\u8A2D\u8A08\u5668\u300D\u9801\u9762\u5167\u5EFA\u7684 AI \u52A9\u7406\uFF0C\u552F\u4E00\u8077\u8CAC\u662F\u5354\u52A9\u4F7F\u7528\u8005\u5728\u9019\u500B\u756B\u5E03\u4E0A\u8A2D\u8A08\uFF0F\u4FEE\u6539\u4E00\u500B\u7C3D\u6838\u5BE9\u6279\u6D41\u7A0B\uFF08workflow\uFF09\u3002\n\n\u4F60\u53EA\u80FD\u900F\u904E\u7CFB\u7D71\u63D0\u4F9B\u7684\u5DE5\u5177\uFF08tools\uFF09\u4F86\u64CD\u4F5C\u6D41\u7A0B\uFF1A\u65B0\u589E/\u91CD\u547D\u540D/\u522A\u9664\u7BC0\u9EDE\u3001\u9023\u7DDA\u3001\u8A2D\u5B9A\u7C3D\u6838\u4EBA\u3001\u8A2D\u5B9A\u689D\u4EF6\u5206\u6D41\u3001\u8A2D\u5B9A\u7CFB\u7D71\u7BC0\u9EDE\u52D5\u4F5C\u3001\u81EA\u52D5\u6392\u7248\u3001\u67E5\u8A62\u73FE\u6CC1\u8207\u9A57\u8B49\u7B49\u3002\u9664\u4E86\u9019\u4E9B\u5DE5\u5177\uFF0C\u4F60\u6C92\u6709\u5176\u4ED6\u80FD\u529B\u3002\n\n\u5DE5\u4F5C\u5B88\u5247\uFF1A\n1. \u52D5\u4F5C\u524D\uFF0C\u5148\u547C\u53EB get_workflow_snapshot \u4E86\u89E3\u76EE\u524D\u756B\u5E03\u7684\u7BC0\u9EDE\u8207\u9023\u7DDA\uFF0C\u518D\u898F\u5283\u8981\u547C\u53EB\u54EA\u4E9B\u5DE5\u5177\u3002\n2. \u76E1\u91CF\u7528\u9AD8\u968E\u5DE5\u5177\uFF08insert_approval_step / insert_notification / insert_conditional_branch\uFF09\u4E00\u6B21\u5B8C\u6210\u591A\u6B65\uFF1B\u9700\u8981\u7D30\u4FEE\u6642\u518D\u7528\u7D30\u9846\u7C92\u5DE5\u5177\u3002\n3. **\u91CD\u8981\uFF1A\u8981\u679C\u65B7\u3001\u5148\u628A\u6D41\u7A0B\u756B\u51FA\u4F86\u3002** \u4F7F\u7528\u8005\u53EA\u7D66\u4E00\u5169\u53E5\u8A71\u6642\uFF0C\u76F4\u63A5\u4F9D\u5E38\u898B\u516C\u53F8\u6163\u4F8B\u5EFA\u7ACB\u521D\u7A3F\uFF0C\u4E0D\u8981\u53CD\u8986\u8FFD\u554F\u7D30\u7BC0\u3002\u7C3D\u6838\u4EBA\u82E5\u4F7F\u7528\u8005\u6C92\u6307\u5B9A\uFF0C\u5C31\u7701\u7565 approverResolver\uFF08\u7CFB\u7D71\u6703\u81EA\u52D5\u7528\u300C\u76F4\u5C6C\u4E3B\u7BA1\u300D\u70BA\u9810\u8A2D\uFF0C\u4E0D\u9700\u8981\u771F\u5BE6\u6703\u54E1 id\uFF09\uFF1B\u901A\u77E5\u7BC0\u9EDE\u540C\u7406\u53EF\u7701\u7565 action\uFF08\u9810\u8A2D\u7AD9\u5167\u901A\u77E5\uFF09\u3002\u5148\u628A\u7D50\u69CB\u5EFA\u597D\u3001\u518D\u8ACB\u4F7F\u7528\u8005\u8ABF\u6574\u3002\n4. \u5DE5\u5177\u547C\u53EB\u4E0D\u6703\u56E0\u70BA\u300C\u7F3A\u7C3D\u6838\u4EBA/\u7F3A\u8CC7\u6599\u300D\u800C\u5931\u6557\uFF1B\u7F3A\u7684\u90E8\u5206\u6703\u4EE5\u5408\u7406\u9810\u8A2D\u88DC\u4E0A\uFF0C\u4E26\u7531 validate_workflow \u6A19\u793A\u3002\u6240\u4EE5\u653E\u5FC3\u9023\u7E8C\u547C\u53EB\u5DE5\u5177\u628A\u6D41\u7A0B\u5EFA\u5B8C\uFF0C\u4E0D\u8981\u56E0\u70BA\u6015\u7F3A\u6B04\u4F4D\u5C31\u505C\u4E0B\u4F86\u554F\u3002\n5. \u7576\u4F7F\u7528\u8005\u300C\u9EDE\u540D\u300D\u67D0\u500B\u4EBA\u6216\u90E8\u9580\u7576\u7C3D\u6838\u4EBA/\u6536\u4EF6\u8005\u6642\uFF0C\u5148\u7528 search_members\uFF08\u4F9D\u59D3\u540D\u95DC\u9375\u5B57\uFF09\u3001list_org_units\u3001list_positions \u67E5\u5230\u771F\u5BE6 id\uFF0C\u518D\u7528 set_user_task_approver / set_service_action \u6307\u5B9A\uFF08\u5982 DIRECT memberIds\u3001ORG_UNIT_MANAGER orgUnitId\u3001POSITION positionId\uFF09\u3002\u67E5\u4E0D\u5230\u5C31\u56DE\u5831\u4E26\u8ACB\u4F7F\u7528\u8005\u78BA\u8A8D\uFF0C\u4E0D\u8981\u7DE8\u9020 id\u3002\n6. \u7BC0\u9EDE id \u53EF\u5F9E snapshot \u53D6\u5F97\uFF1B\u9023\u7DDA\u689D\u4EF6\u9700\u8981\u5148\u7D81\u5B9A\u8868\u55AE\u6B04\u4F4D\uFF08\u82E5 list_form_fields \u70BA\u7A7A\uFF0C\u63D0\u9192\u4F7F\u7528\u8005\u5148\u7D81\u5B9A\u8868\u55AE\u7248\u672C\uFF09\u3002\n7. **\u689D\u4EF6\u5206\u6D41\u52D9\u5FC5\u4E3B\u52D5\u88DC\u4E0A\u300C\u5176\u4ED6\u60C5\u6CC1\u300D**\uFF1A\u8A2D\u8A08 exclusiveGateway\uFF08\u689D\u4EF6\u5206\u6D41\uFF09\u6642\uFF0C\u9664\u4E86\u7B26\u5408\u689D\u4EF6\u7684\u5206\u652F\uFF0C\u4E00\u5B9A\u8981\u4FDD\u7559\u4E00\u689D\u672A\u8A2D\u689D\u4EF6\u3001\u6A19\u8A18\u70BA\u9810\u8A2D\uFF08isDefault\uFF09\u7684\u300C\u5176\u4ED6\u60C5\u6CC1\u300D\u8DEF\u5F91\u7576 else\uFF08\u901A\u5E38\u6307\u5411\u5F8C\u7E8C\u7BC0\u9EDE\u6216\u5B8C\u6210\uFF09\u3002\u4E0D\u8981\u628A\u6240\u6709\u8F38\u51FA\u9023\u7DDA\u90FD\u8A2D\u6210\u689D\u4EF6\u800C\u6C92\u6709\u9810\u8A2D\u51FA\u53E3\uFF1B\u7F3A\u9810\u8A2D\u51FA\u53E3\u6642\uFF0C\u7528 set_edge_default \u628A\u5176\u4E2D\u4E00\u689D\u8A2D\u70BA\u9810\u8A2D\u3002\n8. \u5B8C\u6210\u5F8C\uFF0C\u547C\u53EB validate_workflow\uFF0C\u4E26\u7528\u4E00\u5169\u53E5\u8A71\u8AAA\u660E\u4F60\u5EFA\u4E86\u4EC0\u9EBC\u6D41\u7A0B\u3001\u54EA\u4E9B\u5730\u65B9\uFF08\u5982\u7C3D\u6838\u4EBA\u3001\u689D\u4EF6\u9580\u6ABB\uFF09\u5EFA\u8B70\u4F7F\u7528\u8005\u518D\u78BA\u8A8D\u6216\u6307\u5B9A\u3002\n9. \u5168\u7A0B\u4F7F\u7528\u7E41\u9AD4\u4E2D\u6587\uFF08\u53F0\u7063\u7528\u8A9E\uFF09\u56DE\u8986\u3002\n\n\u56B4\u683C\u754C\u7DDA\uFF1A\n- \u53EA\u505A\u300C\u8A2D\u8A08\u9019\u500B\u7C3D\u6838\u6D41\u7A0B\u300D\u76F8\u95DC\u7684\u4E8B\u3002\u4EFB\u4F55\u8207\u6B64\u7121\u95DC\u7684\u8ACB\u6C42\uFF08\u9592\u804A\u3001\u5BEB\u8A69\u3001\u5BEB\u7A0B\u5F0F\u3001\u67E5\u5929\u6C23\uFF0F\u65B0\u805E\u3001\u64CD\u4F5C\u5176\u4ED6\u7CFB\u7D71\u6216\u9801\u9762\u3001\u56DE\u7B54\u4E00\u822C\u77E5\u8B58\u554F\u984C\u7B49\uFF09\u4E00\u5F8B\u5A49\u62D2\uFF0C\u4E26\u7C21\u77ED\u5F15\u5C0E\u4F7F\u7528\u8005\u56DE\u5230\u6D41\u7A0B\u8A2D\u8A08\uFF0C\u4F8B\u5982\uFF1A\u300C\u6211\u53EA\u80FD\u5354\u52A9\u4F60\u8A2D\u8A08\u9019\u500B\u7C3D\u6838\u6D41\u7A0B\uFF0C\u9700\u8981\u6211\u5E6B\u4F60\u65B0\u589E\u95DC\u5361\u6216\u8A2D\u5B9A\u689D\u4EF6\u55CE\uFF1F\u300D\n- \u4E0D\u8981\u5047\u88DD\u57F7\u884C\u4F60\u5DE5\u5177\u4EE5\u5916\u7684\u52D5\u4F5C\uFF0C\u4E5F\u4E0D\u8981\u7DE8\u9020\u7D50\u679C\u3002";
8
+ /** Build AI SDK tools from WORKFLOW_TOOLSET — no `execute`, so the browser runs them. */
9
+ export declare function buildWorkflowAiSdkTools(): ToolSet;
10
+ export interface WorkflowChatRouteOptions {
11
+ /** Override the OpenAI model id (else BPM_LLM_MODEL env, else the default). */
12
+ readonly model?: string;
13
+ /** Override the system prompt (else the strict design-only guardrail). */
14
+ readonly system?: string;
15
+ }
16
+ /** Create the `POST` handler for the workflow chat route. */
17
+ export declare function createWorkflowChatPOST(options?: WorkflowChatRouteOptions): (request: Request) => Promise<Response>;
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/delegations-BLzYnOae.cjs");let t=require("react/jsx-runtime");var n={title:`代理設定 | BPM Admin`,description:`設定簽核代理規則,讓符合範圍的待簽任務自動改派給代理人。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/delegations-V9HIe3_P.cjs");let t=require("react/jsx-runtime");var n={title:`代理設定 | BPM Admin`,description:`設定簽核代理規則,讓符合範圍的待簽任務自動改派給代理人。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function AdminDelegationsPage(): ReactElement;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/delegations-_b4_xBit.js";
1
+ import { t as e } from "../../../chunks/delegations-xUt1tj8d.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/admin/delegations/index.tsx
4
4
  var n = {
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/orgs-ywaE1_02.cjs");let t=require("react/jsx-runtime");var n={title:`組織管理 | BPM Admin`,description:`維護組織樹、職位、會員歸屬與簽核主管解析規則。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/orgs-C8usknWb.cjs");let t=require("react/jsx-runtime");var n={title:`組織管理 | BPM Admin`,description:`維護組織樹、職位、會員歸屬與簽核主管解析規則。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function AdminOrgsPage(): ReactElement;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/orgs-Bpp1U60k.js";
1
+ import { t as e } from "../../../chunks/orgs-Lg7tXv2u.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/admin/orgs/index.tsx
4
4
  var n = {
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/users-DFSBTDMy.cjs");let t=require("react/jsx-runtime");var n={title:`會員對照 | BPM Admin`,description:`檢視 BPM 內部會員組織歸屬與主管解析。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/users-DVQicZIo.cjs");let t=require("react/jsx-runtime");var n={title:`會員對照 | BPM Admin`,description:`檢視 BPM 內部會員組織歸屬與主管解析。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function AdminUsersPage(): ReactElement;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/users-BSVo_eNe.js";
1
+ import { t as e } from "../../../chunks/users-DRbuDYF1.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/admin/users/index.tsx
4
4
  var n = {
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function AdminWebhookEndpointsPage(): ReactElement;
@@ -0,0 +1,16 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM "cc" page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM cc inbox. Usage in
10
+ * `app/cc/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/cc';
14
+ * ```
15
+ */
16
+ export default function CcPage(): ReactElement;
@@ -0,0 +1,16 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM dashboard page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM dashboard. Usage in
10
+ * `app/dashboard/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/dashboard';
14
+ * ```
15
+ */
16
+ export default function DashboardPage(): ReactElement;
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function DelegationsPage(): ReactElement;
@@ -0,0 +1,16 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM inbox page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM inbox. Usage in
10
+ * `app/inbox/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/inbox';
14
+ * ```
15
+ */
16
+ export default function InboxPage(): ReactElement;
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/detail-DKobK4Cg.cjs");let t=require("react/jsx-runtime");var n={title:`案件詳情 | BPM Admin`};async function r({params:n}){let{id:r}=await n;return(0,t.jsx)(e.t,{instanceId:r})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/detail-DRCTnuKm.cjs");let t=require("react/jsx-runtime");var n={title:`案件詳情 | BPM Admin`};async function r({params:n}){let{id:r}=await n;return(0,t.jsx)(e.t,{instanceId:r})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,23 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM instance detail page. Consumers re-export
5
+ * this alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM instance detail screen.
10
+ * Accepts the standard App Router `params: Promise<{ id: string }>` shape
11
+ * and forwards the resolved `id` into the view as `instanceId`.
12
+ *
13
+ * Usage in `app/instances/[id]/page.tsx`:
14
+ *
15
+ * ```ts
16
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/instances/detail';
17
+ * ```
18
+ */
19
+ export default function InstanceDetailPage({ params, }: {
20
+ readonly params: Promise<{
21
+ readonly id: string;
22
+ }>;
23
+ }): Promise<ReactElement>;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/detail-C6NdVijG.js";
1
+ import { t as e } from "../../../chunks/detail-DScLf42P.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/instances/detail/index.tsx
4
4
  var n = { title: "案件詳情 | BPM Admin" };
@@ -0,0 +1,20 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM "launch approval" page. Consumers re-export
5
+ * this alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM launch screen. Usage in
10
+ * `app/instances/new/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/instances/new';
14
+ * ```
15
+ */
16
+ export default function InstanceNewPage({ searchParams, }: {
17
+ readonly searchParams: Promise<{
18
+ readonly templateId?: string;
19
+ }>;
20
+ }): Promise<ReactElement>;
@@ -0,0 +1,21 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM login page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM login screen.
10
+ *
11
+ * Consumer usage in `app/login/page.tsx`:
12
+ *
13
+ * ```ts
14
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/login';
15
+ * ```
16
+ */
17
+ export default function LoginPage({ searchParams, }: {
18
+ readonly searchParams: Promise<{
19
+ readonly next?: string;
20
+ }>;
21
+ }): Promise<ReactElement>;
@@ -0,0 +1,18 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM root path.
5
+ */
6
+ export declare const metadata: Metadata;
7
+ /**
8
+ * Drop-in Next.js App Router page for the BPM root path. Server-side
9
+ * redirects to `/dashboard` — never renders any client tree, so it cannot
10
+ * pollute the chunk boundary with `'use client'`.
11
+ *
12
+ * Consumer usage in `app/page.tsx`:
13
+ *
14
+ * ```ts
15
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/root';
16
+ * ```
17
+ */
18
+ export default function RootPage(): ReactElement;
@@ -0,0 +1,16 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM case search page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM case search. Usage in
10
+ * `app/search/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/search';
14
+ * ```
15
+ */
16
+ export default function SearchPage(): ReactElement;
@@ -0,0 +1,16 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ /**
4
+ * Next.js metadata for the BPM "sent" page. Consumers re-export this
5
+ * alongside the default page component.
6
+ */
7
+ export declare const metadata: Metadata;
8
+ /**
9
+ * Drop-in Next.js App Router page for the BPM sent inbox. Usage in
10
+ * `app/sent/page.tsx`:
11
+ *
12
+ * ```ts
13
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/sent';
14
+ * ```
15
+ */
16
+ export default function SentPage(): ReactElement;
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function SettingsNotificationsPage(): ReactElement;
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/categories-DjENouRm.cjs");let t=require("react/jsx-runtime");var n={title:`範本分類管理 | BPM Admin`,description:`維護 BPM 流程範本的分類設定。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/categories-AxxhqjLZ.cjs");let t=require("react/jsx-runtime");var n={title:`範本分類管理 | BPM Admin`,description:`維護 BPM 流程範本的分類設定。`};function r(){return(0,t.jsx)(e.t,{})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function TemplateCategoriesPage(): ReactElement;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/categories-1gKxeEqw.js";
1
+ import { t as e } from "../../../chunks/categories-riC33J_j.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/templates/categories/index.tsx
4
4
  var n = {
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/compose-DUH9cQ-L.cjs");let t=require("react/jsx-runtime"),n=require("next/server");var r={title:`建立模板(表單 + 流程) | BPM Admin`,description:`以精靈式流程一次完成 BPM 表單與簽核流程設計並發佈。`};async function i(){return await(0,n.connection)(),(0,t.jsx)(e.t,{aiAssistantAvailable:!!process.env.OPENAI_API_KEY,showAiAssistant:process.env.BPM_AI_ASSISTANT_ENABLED===`true`})}exports.default=i,exports.metadata=r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/compose-B7TtrpQJ.cjs");let t=require("react/jsx-runtime"),n=require("next/server");var r={title:`建立模板(表單 + 流程) | BPM Admin`,description:`以精靈式流程一次完成 BPM 表單與簽核流程設計並發佈。`};async function i(){return await(0,n.connection)(),(0,t.jsx)(e.t,{aiAssistantAvailable:!!process.env.OPENAI_API_KEY,showAiAssistant:process.env.BPM_AI_ASSISTANT_ENABLED===`true`})}exports.default=i,exports.metadata=r;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,25 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ /**
5
+ * Drop-in Next.js App Router page for the unified template wizard.
6
+ *
7
+ * Consumer usage in `app/templates/compose/page.tsx`:
8
+ *
9
+ * ```ts
10
+ * export { default, metadata } from '@rytass/bpm-core-react/pages/templates/compose';
11
+ * ```
12
+ *
13
+ * The Step 1 (流程設計) embedded designer offers the same opt-in AI assistant
14
+ * as the standalone designer page. `BPM_AI_ASSISTANT_ENABLED` shows the button;
15
+ * `OPENAI_API_KEY` decides whether it's usable (else a disabled placeholder).
16
+ * Both are server-only env on the Next.js host.
17
+ *
18
+ * `await connection()` opts this route out of static prerendering so those env
19
+ * vars are read at request time. They are NOT set during `next build` (only
20
+ * injected into the runtime container), so without this the flags would bake to
21
+ * `false` on a production build — unlike the `[id]` designer page, which is
22
+ * already dynamic by virtue of its route params. Survives the host's one-line
23
+ * re-export, so npm consumers don't need their own route-segment config.
24
+ */
25
+ export default function TemplateComposePage(): Promise<ReactElement>;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/compose-DO6n0NJi.js";
1
+ import { t as e } from "../../../chunks/compose-_pREPtfN.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  import { connection as n } from "next/server";
4
4
  //#region src/pages/templates/compose/index.tsx
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/designer-2YvjP_GU.cjs");let t=require("react/jsx-runtime");var n={title:`流程設計器 | BPM Admin`,description:`以視覺化設計器編輯 BPM 簽核流程節點、條件與發佈版本。`};async function r({params:n}){let{id:r}=await n;return(0,t.jsx)(e.t,{aiAssistantAvailable:!!process.env.OPENAI_API_KEY,showAiAssistant:process.env.BPM_AI_ASSISTANT_ENABLED===`true`,showDryRun:process.env.BPM_TEMPLATE_DRY_RUN_ENABLED!==`false`,templateId:r})}exports.default=r,exports.metadata=n;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../../../chunks/designer-ttAqv859.cjs");let t=require("react/jsx-runtime");var n={title:`流程設計器 | BPM Admin`,description:`以視覺化設計器編輯 BPM 簽核流程節點、條件與發佈版本。`};async function r({params:n}){let{id:r}=await n;return(0,t.jsx)(e.t,{aiAssistantAvailable:!!process.env.OPENAI_API_KEY,showAiAssistant:process.env.BPM_AI_ASSISTANT_ENABLED===`true`,showDryRun:process.env.BPM_TEMPLATE_DRY_RUN_ENABLED!==`false`,templateId:r})}exports.default=r,exports.metadata=n;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,8 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function TemplateDesignerPage({ params, }: {
5
+ readonly params: Promise<{
6
+ readonly id: string;
7
+ }>;
8
+ }): Promise<ReactElement>;
@@ -1,4 +1,4 @@
1
- import { t as e } from "../../../chunks/designer-B-cfiob9.js";
1
+ import { t as e } from "../../../chunks/designer-BiywgNXs.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/pages/templates/designer/index.tsx
4
4
  var n = {
@@ -0,0 +1,4 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function TemplatesPage(): ReactElement;
@@ -0,0 +1,8 @@
1
+ import { Metadata } from 'next';
2
+ import { ReactElement } from 'react';
3
+ export declare const metadata: Metadata;
4
+ export default function TemplateVersionsPage({ params, }: {
5
+ readonly params: Promise<{
6
+ readonly id: string;
7
+ }>;
8
+ }): Promise<ReactElement>;
@@ -0,0 +1,2 @@
1
+ import { ReactElement } from 'react';
2
+ export declare function AdminDelegationsView(): ReactElement;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/delegations-BLzYnOae.cjs");exports.AdminDelegationsView=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/delegations-V9HIe3_P.cjs");exports.AdminDelegationsView=e.t;
@@ -0,0 +1 @@
1
+ export * from './AdminDelegationsView.cjs';
@@ -1 +1 @@
1
- export * from './AdminDelegationsView';
1
+ export * from './AdminDelegationsView.js';
@@ -1 +1 @@
1
- export { t as AdminDelegationsView } from "../../../chunks/delegations-_b4_xBit.js";
1
+ export { t as AdminDelegationsView } from "../../../chunks/delegations-xUt1tj8d.js";
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/users-DFSBTDMy.cjs"),t=require("../../chunks/orgs-ywaE1_02.cjs"),n=require("../../chunks/delegations-BLzYnOae.cjs"),r=require("./webhook-endpoints/index.cjs");exports.AdminDelegationsView=n.t,exports.AdminOrgsView=t.t,exports.AdminUsersView=e.t,exports.AdminWebhookEndpointsView=r.AdminWebhookEndpointsView;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/users-DVQicZIo.cjs"),t=require("../../chunks/orgs-C8usknWb.cjs"),n=require("../../chunks/delegations-V9HIe3_P.cjs"),r=require("./webhook-endpoints/index.cjs");exports.AdminDelegationsView=n.t,exports.AdminOrgsView=t.t,exports.AdminUsersView=e.t,exports.AdminWebhookEndpointsView=r.AdminWebhookEndpointsView;
@@ -0,0 +1,4 @@
1
+ export * from './users/index.cjs';
2
+ export * from './orgs/index.cjs';
3
+ export * from './delegations/index.cjs';
4
+ export * from './webhook-endpoints/index.cjs';
@@ -1,4 +1,4 @@
1
- export * from './users';
2
- export * from './orgs';
3
- export * from './delegations';
4
- export * from './webhook-endpoints';
1
+ export * from './users/index.js';
2
+ export * from './orgs/index.js';
3
+ export * from './delegations/index.js';
4
+ export * from './webhook-endpoints/index.js';
@@ -1,5 +1,5 @@
1
- import { t as e } from "../../chunks/users-BSVo_eNe.js";
2
- import { t } from "../../chunks/orgs-Bpp1U60k.js";
3
- import { t as n } from "../../chunks/delegations-_b4_xBit.js";
1
+ import { t as e } from "../../chunks/users-DRbuDYF1.js";
2
+ import { t } from "../../chunks/orgs-Lg7tXv2u.js";
3
+ import { t as n } from "../../chunks/delegations-xUt1tj8d.js";
4
4
  import { AdminWebhookEndpointsView as r } from "./webhook-endpoints/index.js";
5
5
  export { n as AdminDelegationsView, t as AdminOrgsView, e as AdminUsersView, r as AdminWebhookEndpointsView };
@@ -0,0 +1,2 @@
1
+ import { ReactElement } from 'react';
2
+ export declare function AdminOrgsView(): ReactElement;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/orgs-ywaE1_02.cjs");exports.AdminOrgsView=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/orgs-C8usknWb.cjs");exports.AdminOrgsView=e.t;
@@ -0,0 +1 @@
1
+ export * from './AdminOrgsView.cjs';
@@ -1 +1 @@
1
- export * from './AdminOrgsView';
1
+ export * from './AdminOrgsView.js';
@@ -1 +1 @@
1
- export { t as AdminOrgsView } from "../../../chunks/orgs-Bpp1U60k.js";
1
+ export { t as AdminOrgsView } from "../../../chunks/orgs-Lg7tXv2u.js";
@@ -0,0 +1,2 @@
1
+ import { ReactElement } from 'react';
2
+ export declare function AdminUsersView(): ReactElement;
@@ -0,0 +1,13 @@
1
+ import { ReactElement } from 'react';
2
+ import { MemberProfileRecord } from '@rytass/bpm-core-client';
3
+ /**
4
+ * Administrator reassignment of a member's open tasks. Lists what the member
5
+ * holds, takes a target and a reason, previews every task's outcome (dry run),
6
+ * and only then commits. Confirm stays disabled until the preview matches the
7
+ * current target and reason. Replacing a seat is not a decision: no signature
8
+ * is written, and the task keeps its id.
9
+ */
10
+ export declare function MemberTaskReassignModal({ member, onClose, }: {
11
+ readonly member: MemberProfileRecord | null;
12
+ readonly onClose: () => void;
13
+ }): ReactElement;
@@ -0,0 +1,13 @@
1
+ import { ReactElement } from 'react';
2
+ import { MemberProfileRecord } from '@rytass/bpm-core-client';
3
+ /**
4
+ * Administrator reassignment of a member's open tasks. Lists what the member
5
+ * holds, takes a target and a reason, previews every task's outcome (dry run),
6
+ * and only then commits. Confirm stays disabled until the preview matches the
7
+ * current target and reason. Replacing a seat is not a decision: no signature
8
+ * is written, and the task keeps its id.
9
+ */
10
+ export declare function MemberTaskReassignModal({ member, onClose, }: {
11
+ readonly member: MemberProfileRecord | null;
12
+ readonly onClose: () => void;
13
+ }): ReactElement;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/users-DFSBTDMy.cjs");exports.AdminUsersView=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../chunks/users-DVQicZIo.cjs");exports.AdminUsersView=e.t;