@btst/stack 2.5.6 → 2.6.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 (216) hide show
  1. package/README.md +23 -0
  2. package/dist/client/components/index.d.cts +9 -9
  3. package/dist/client/components/index.d.mts +9 -9
  4. package/dist/client/components/index.d.ts +9 -9
  5. package/dist/components/auto-form/index.cjs +8 -0
  6. package/dist/components/auto-form/index.d.cts +26 -0
  7. package/dist/components/auto-form/index.d.mts +26 -0
  8. package/dist/components/auto-form/index.d.ts +26 -0
  9. package/dist/components/auto-form/index.mjs +1 -0
  10. package/dist/components/empty/index.cjs +12 -0
  11. package/dist/components/empty/index.d.cts +15 -0
  12. package/dist/components/empty/index.d.mts +15 -0
  13. package/dist/components/empty/index.d.ts +15 -0
  14. package/dist/components/empty/index.mjs +1 -0
  15. package/dist/components/form-builder/index.cjs +16 -0
  16. package/dist/components/form-builder/index.d.cts +385 -0
  17. package/dist/components/form-builder/index.d.mts +385 -0
  18. package/dist/components/form-builder/index.d.ts +385 -0
  19. package/dist/components/form-builder/index.mjs +4 -0
  20. package/dist/components/markdown/index.cjs +9 -0
  21. package/dist/components/markdown/index.d.cts +30 -0
  22. package/dist/components/markdown/index.d.mts +30 -0
  23. package/dist/components/markdown/index.d.ts +30 -0
  24. package/dist/components/markdown/index.mjs +2 -0
  25. package/dist/components/markdown/style.css +394 -0
  26. package/dist/components/minimal-tiptap/style.css +548 -0
  27. package/dist/components/multi-select/index.cjs +7 -0
  28. package/dist/components/multi-select/index.d.cts +78 -0
  29. package/dist/components/multi-select/index.d.mts +78 -0
  30. package/dist/components/multi-select/index.d.ts +78 -0
  31. package/dist/components/multi-select/index.mjs +1 -0
  32. package/dist/components/search-select/index.cjs +7 -0
  33. package/dist/components/search-select/index.d.cts +15 -0
  34. package/dist/components/search-select/index.d.mts +15 -0
  35. package/dist/components/search-select/index.d.ts +15 -0
  36. package/dist/components/search-select/index.mjs +1 -0
  37. package/dist/components/stepped-auto-form/index.cjs +7 -0
  38. package/dist/components/stepped-auto-form/index.d.cts +37 -0
  39. package/dist/components/stepped-auto-form/index.d.mts +37 -0
  40. package/dist/components/stepped-auto-form/index.d.ts +37 -0
  41. package/dist/components/stepped-auto-form/index.mjs +1 -0
  42. package/dist/components/ui-builder/style.css +552 -0
  43. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.cjs +1 -1
  44. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.mjs +1 -1
  45. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.mjs +2 -2
  46. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +1 -1
  47. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +3 -3
  48. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +1 -1
  49. package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.cjs +1 -1
  50. package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.mjs +1 -1
  51. package/dist/packages/stack/src/plugins/ai-chat/client/plugin.cjs +44 -35
  52. package/dist/packages/stack/src/plugins/ai-chat/client/plugin.mjs +44 -35
  53. package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.cjs +23 -0
  54. package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.mjs +21 -0
  55. package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor.cjs +11 -12
  56. package/dist/packages/stack/src/plugins/blog/client/components/forms/markdown-editor.mjs +11 -12
  57. package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.cjs +2 -2
  58. package/dist/packages/stack/src/plugins/blog/client/components/forms/post-forms.mjs +2 -2
  59. package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.cjs +1 -1
  60. package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.mjs +1 -1
  61. package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.cjs +0 -3
  62. package/dist/packages/stack/src/plugins/blog/client/components/shared/search-input.mjs +1 -1
  63. package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.cjs +0 -3
  64. package/dist/packages/stack/src/plugins/blog/client/components/shared/search-modal.mjs +1 -1
  65. package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.cjs +22 -0
  66. package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.mjs +23 -2
  67. package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +12 -6
  68. package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +12 -6
  69. package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.cjs +1 -1
  70. package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.mjs +1 -1
  71. package/dist/packages/stack/src/plugins/cms/client/plugin.cjs +38 -26
  72. package/dist/packages/stack/src/plugins/cms/client/plugin.mjs +38 -26
  73. package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.cjs +1 -1
  74. package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.mjs +1 -1
  75. package/dist/packages/stack/src/plugins/form-builder/client/plugin.cjs +32 -20
  76. package/dist/packages/stack/src/plugins/form-builder/client/plugin.mjs +32 -20
  77. package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.cjs +1 -1
  78. package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.mjs +1 -1
  79. package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +6 -3
  80. package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +6 -3
  81. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.cjs +1 -1
  82. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.mjs +1 -1
  83. package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.cjs +1 -1
  84. package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.mjs +1 -1
  85. package/dist/packages/stack/src/plugins/ui-builder/client/plugin.cjs +24 -15
  86. package/dist/packages/stack/src/plugins/ui-builder/client/plugin.mjs +24 -15
  87. package/dist/packages/ui/src/components/auto-form/index.cjs +12 -2
  88. package/dist/packages/ui/src/components/auto-form/index.mjs +9 -2
  89. package/dist/packages/ui/src/components/auto-form/stepped-auto-form.cjs +2 -2
  90. package/dist/packages/ui/src/components/empty.cjs +28 -0
  91. package/dist/packages/ui/src/components/empty.mjs +27 -1
  92. package/dist/packages/ui/src/components/form-builder/components/index.mjs +2 -2
  93. package/dist/packages/ui/src/components/form-builder/edit-field-dialog.cjs +1 -1
  94. package/dist/packages/ui/src/components/form-builder/index.mjs +2 -2
  95. package/dist/packages/ui/src/components/form.mjs +1 -1
  96. package/dist/packages/ui/src/components/kanban.mjs +1 -1
  97. package/dist/packages/ui/src/components/multi-select.mjs +2 -2
  98. package/dist/packages/ui/src/components/search-select.cjs +13 -3
  99. package/dist/packages/ui/src/components/search-select.mjs +14 -4
  100. package/dist/packages/ui/src/components/ui-builder/internal/config-panel.cjs +1 -1
  101. package/dist/packages/ui/src/components/ui-builder/internal/props-panel.cjs +1 -1
  102. package/dist/plugins/ai-chat/client/index.d.cts +17 -4
  103. package/dist/plugins/ai-chat/client/index.d.mts +17 -4
  104. package/dist/plugins/ai-chat/client/index.d.ts +17 -4
  105. package/dist/plugins/blog/api/index.d.cts +2 -2
  106. package/dist/plugins/blog/api/index.d.mts +2 -2
  107. package/dist/plugins/blog/api/index.d.ts +2 -2
  108. package/dist/plugins/blog/client/hooks/index.cjs +3 -0
  109. package/dist/plugins/blog/client/hooks/index.d.cts +7 -226
  110. package/dist/plugins/blog/client/hooks/index.d.mts +7 -226
  111. package/dist/plugins/blog/client/hooks/index.d.ts +7 -226
  112. package/dist/plugins/blog/client/hooks/index.mjs +1 -0
  113. package/dist/plugins/blog/client/index.d.cts +46 -22
  114. package/dist/plugins/blog/client/index.d.mts +46 -22
  115. package/dist/plugins/blog/client/index.d.ts +46 -22
  116. package/dist/plugins/blog/query-keys.d.cts +2 -2
  117. package/dist/plugins/blog/query-keys.d.mts +2 -2
  118. package/dist/plugins/blog/query-keys.d.ts +2 -2
  119. package/dist/plugins/cms/client/index.d.cts +36 -15
  120. package/dist/plugins/cms/client/index.d.mts +36 -15
  121. package/dist/plugins/cms/client/index.d.ts +36 -15
  122. package/dist/plugins/form-builder/client/components/index.d.cts +2 -2
  123. package/dist/plugins/form-builder/client/components/index.d.mts +2 -2
  124. package/dist/plugins/form-builder/client/components/index.d.ts +2 -2
  125. package/dist/plugins/form-builder/client/index.d.cts +33 -15
  126. package/dist/plugins/form-builder/client/index.d.mts +33 -15
  127. package/dist/plugins/form-builder/client/index.d.ts +33 -15
  128. package/dist/plugins/kanban/api/index.d.cts +1 -1
  129. package/dist/plugins/kanban/api/index.d.mts +1 -1
  130. package/dist/plugins/kanban/api/index.d.ts +1 -1
  131. package/dist/plugins/kanban/client/components/index.d.cts +5 -5
  132. package/dist/plugins/kanban/client/components/index.d.mts +5 -5
  133. package/dist/plugins/kanban/client/components/index.d.ts +5 -5
  134. package/dist/plugins/kanban/client/index.d.cts +25 -10
  135. package/dist/plugins/kanban/client/index.d.mts +25 -10
  136. package/dist/plugins/kanban/client/index.d.ts +25 -10
  137. package/dist/plugins/kanban/query-keys.d.cts +1 -1
  138. package/dist/plugins/kanban/query-keys.d.mts +1 -1
  139. package/dist/plugins/kanban/query-keys.d.ts +1 -1
  140. package/dist/plugins/route-docs/client/index.d.cts +4 -4
  141. package/dist/plugins/route-docs/client/index.d.mts +4 -4
  142. package/dist/plugins/route-docs/client/index.d.ts +4 -4
  143. package/dist/plugins/ui-builder/client/components/index.d.cts +3 -3
  144. package/dist/plugins/ui-builder/client/components/index.d.mts +3 -3
  145. package/dist/plugins/ui-builder/client/components/index.d.ts +3 -3
  146. package/dist/plugins/ui-builder/client/hooks/index.d.cts +3 -3
  147. package/dist/plugins/ui-builder/client/hooks/index.d.mts +3 -3
  148. package/dist/plugins/ui-builder/client/hooks/index.d.ts +3 -3
  149. package/dist/plugins/ui-builder/client/index.d.cts +32 -18
  150. package/dist/plugins/ui-builder/client/index.d.mts +32 -18
  151. package/dist/plugins/ui-builder/client/index.d.ts +32 -18
  152. package/dist/plugins/ui-builder/index.d.cts +3 -3
  153. package/dist/plugins/ui-builder/index.d.mts +3 -3
  154. package/dist/plugins/ui-builder/index.d.ts +3 -3
  155. package/dist/shared/{stack.B2DwzF3r.d.ts → stack.ASwEoINr.d.ts} +1 -1
  156. package/dist/shared/{stack.C5ZSOJGJ.d.cts → stack.B1srlBud.d.mts} +1 -1
  157. package/dist/shared/stack.B8vT-Yt4.d.mts +228 -0
  158. package/dist/shared/stack.BAT540yW.d.ts +228 -0
  159. package/dist/shared/{stack.D0QupDcQ.d.ts → stack.BK9Z2dcL.d.ts} +1 -1
  160. package/dist/shared/stack.BwA7trxA.d.cts +228 -0
  161. package/dist/shared/{stack.Cl7ok_cY.d.cts → stack.CFECM0ew.d.cts} +1 -1
  162. package/dist/shared/stack.CZMWR72v.d.cts +10 -0
  163. package/dist/shared/stack.CZMWR72v.d.mts +10 -0
  164. package/dist/shared/stack.CZMWR72v.d.ts +10 -0
  165. package/dist/shared/{stack.VMmQdbsJ.d.mts → stack.DVtk5CNw.d.mts} +1 -1
  166. package/dist/shared/{stack.B8_74ror.d.ts → stack.DXnclTG7.d.ts} +4 -4
  167. package/dist/shared/{stack.C21-LFX8.d.cts → stack.DaZM10cp.d.cts} +4 -4
  168. package/dist/shared/{stack.Dq4qVr1F.d.mts → stack.DmpPDPxA.d.cts} +1 -1
  169. package/dist/shared/{stack.CL4mKxe7.d.mts → stack.cfCkioTe.d.mts} +4 -4
  170. package/dist/shared/stack.fdi94T4S.d.cts +291 -0
  171. package/dist/shared/stack.fdi94T4S.d.mts +291 -0
  172. package/dist/shared/stack.fdi94T4S.d.ts +291 -0
  173. package/package.json +115 -4
  174. package/src/__tests__/page-component-overrides.test.tsx +147 -0
  175. package/src/components/auto-form/index.ts +12 -0
  176. package/src/components/empty/index.ts +8 -0
  177. package/src/components/form-builder/index.ts +23 -0
  178. package/src/components/kanban/index.ts +9 -0
  179. package/src/components/markdown/index.ts +5 -0
  180. package/src/components/markdown/style.css +3 -0
  181. package/src/components/minimal-tiptap/index.ts +5 -0
  182. package/src/components/minimal-tiptap/style.css +1 -0
  183. package/src/components/multi-select/index.ts +5 -0
  184. package/src/components/search-select/index.ts +1 -0
  185. package/src/components/stepped-auto-form/index.ts +5 -0
  186. package/src/components/ui-builder/index.ts +50 -0
  187. package/src/components/ui-builder/style.css +5 -0
  188. package/src/plugins/ai-chat/client/components/shared/default-error.tsx +1 -1
  189. package/src/plugins/ai-chat/client/plugin.tsx +60 -32
  190. package/src/plugins/blog/client/components/forms/markdown-editor-with-overrides.tsx +29 -0
  191. package/src/plugins/blog/client/components/forms/markdown-editor.tsx +24 -21
  192. package/src/plugins/blog/client/components/forms/post-forms.tsx +2 -2
  193. package/src/plugins/blog/client/components/shared/default-error.tsx +2 -1
  194. package/src/plugins/blog/client/components/shared/posts-list.tsx +1 -1
  195. package/src/plugins/blog/client/components/shared/search-input.tsx +0 -2
  196. package/src/plugins/blog/client/components/shared/search-modal.tsx +0 -2
  197. package/src/plugins/blog/client/hooks/index.tsx +1 -0
  198. package/src/plugins/blog/client/plugin.tsx +41 -6
  199. package/src/plugins/cms/client/components/shared/default-error.tsx +3 -2
  200. package/src/plugins/cms/client/plugin.tsx +65 -32
  201. package/src/plugins/form-builder/client/components/shared/default-error.tsx +3 -2
  202. package/src/plugins/form-builder/client/plugin.tsx +56 -23
  203. package/src/plugins/kanban/client/components/shared/default-error.tsx +3 -2
  204. package/src/plugins/kanban/client/plugin.tsx +23 -3
  205. package/src/plugins/ui-builder/client/components/page-renderer.tsx +5 -3
  206. package/src/plugins/ui-builder/client/components/shared/default-error.tsx +3 -2
  207. package/src/plugins/ui-builder/client/plugin.tsx +41 -15
  208. package/dist/shared/stack.8nldKomx.d.cts +0 -114
  209. package/dist/shared/stack.8nldKomx.d.mts +0 -114
  210. package/dist/shared/stack.8nldKomx.d.ts +0 -114
  211. package/dist/shared/{stack.CxNeGV2z.d.mts → stack.B8D4r97Z.d.mts} +6 -6
  212. package/dist/shared/{stack.BWp0hcm9.d.cts → stack.BQmuNl5p.d.cts} +3 -3
  213. package/dist/shared/{stack.BWp0hcm9.d.mts → stack.BQmuNl5p.d.mts} +3 -3
  214. package/dist/shared/{stack.BWp0hcm9.d.ts → stack.BQmuNl5p.d.ts} +3 -3
  215. package/dist/shared/{stack.BFcg0tDz.d.ts → stack.DgKOwl20.d.ts} +6 -6
  216. package/dist/shared/{stack.DSxTDZBQ.d.cts → stack.uWSqCWAb.d.cts} +6 -6
@@ -1,9 +1,8 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
- import { ComponentType } from 'react';
4
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
5
4
  import { QueryClient } from '@tanstack/react-query';
6
- import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.cjs';
5
+ import { A as AutoFormInputComponentProps } from '../../../shared/stack.fdi94T4S.cjs';
7
6
  export { b as FormSchemaMetadata, F as FormStep, f as formSchemaToZod, a as getStepGroupMap, g as getSteps, h as hasSteps, z as zodToFormSchema } from '../../../shared/stack.Co034Fpm.cjs';
8
7
  import 'react-hook-form';
9
8
  import 'zod';
@@ -93,6 +92,25 @@ interface FormBuilderClientConfig {
93
92
  headers?: Headers;
94
93
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
95
94
  hooks?: FormBuilderClientHooks;
95
+ /**
96
+ * Optional page component overrides.
97
+ * Replace any plugin page with a custom React component.
98
+ * The built-in component is used as the fallback when not provided.
99
+ */
100
+ pageComponents?: {
101
+ /** Replaces the form list page */
102
+ formList?: ComponentType;
103
+ /** Replaces the new form page */
104
+ newForm?: ComponentType;
105
+ /** Replaces the form editor page */
106
+ editForm?: ComponentType<{
107
+ id: string;
108
+ }>;
109
+ /** Replaces the form submissions page */
110
+ submissions?: ComponentType<{
111
+ formId: string;
112
+ }>;
113
+ };
96
114
  }
97
115
  /**
98
116
  * Form Builder client plugin
@@ -101,9 +119,9 @@ interface FormBuilderClientConfig {
101
119
  declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
102
120
  formList: {
103
121
  (inputCtx_0?: _btst_yar.InputContext<"/forms", _btst_yar.RouteOptions> | undefined): {
104
- PageComponent?: react.ComponentType<unknown> | undefined;
105
- LoadingComponent?: react.ComponentType<unknown> | undefined;
106
- ErrorComponent?: react.ComponentType<unknown> | undefined;
122
+ PageComponent?: ComponentType<{}> | undefined;
123
+ LoadingComponent?: ComponentType<{}> | undefined;
124
+ ErrorComponent?: ComponentType<{}> | undefined;
107
125
  loader?: (() => Promise<void>) | undefined;
108
126
  meta?: (() => ({
109
127
  title: string;
@@ -122,9 +140,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
122
140
  };
123
141
  newForm: {
124
142
  (inputCtx_0?: _btst_yar.InputContext<"/forms/new", _btst_yar.RouteOptions> | undefined): {
125
- PageComponent?: react.ComponentType<unknown> | undefined;
126
- LoadingComponent?: react.ComponentType<unknown> | undefined;
127
- ErrorComponent?: react.ComponentType<unknown> | undefined;
143
+ PageComponent?: ComponentType<{}> | undefined;
144
+ LoadingComponent?: ComponentType<{}> | undefined;
145
+ ErrorComponent?: ComponentType<{}> | undefined;
128
146
  loader?: (() => Promise<void>) | undefined;
129
147
  meta?: (() => ({
130
148
  title: string;
@@ -143,9 +161,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
143
161
  };
144
162
  editForm: {
145
163
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/edit", _btst_yar.RouteOptions>): {
146
- PageComponent?: react.ComponentType<unknown> | undefined;
147
- LoadingComponent?: react.ComponentType<unknown> | undefined;
148
- ErrorComponent?: react.ComponentType<unknown> | undefined;
164
+ PageComponent?: ComponentType<unknown> | undefined;
165
+ LoadingComponent?: ComponentType<unknown> | undefined;
166
+ ErrorComponent?: ComponentType<unknown> | undefined;
149
167
  loader?: (() => Promise<void>) | undefined;
150
168
  meta?: (() => ({
151
169
  title: string;
@@ -164,9 +182,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
164
182
  };
165
183
  submissions: {
166
184
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/submissions", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
185
+ PageComponent?: ComponentType<unknown> | undefined;
186
+ LoadingComponent?: ComponentType<unknown> | undefined;
187
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
188
  loader?: (() => Promise<void>) | undefined;
171
189
  meta?: (() => ({
172
190
  title: string;
@@ -1,9 +1,8 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
- import { ComponentType } from 'react';
4
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
5
4
  import { QueryClient } from '@tanstack/react-query';
6
- import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.mjs';
5
+ import { A as AutoFormInputComponentProps } from '../../../shared/stack.fdi94T4S.mjs';
7
6
  export { b as FormSchemaMetadata, F as FormStep, f as formSchemaToZod, a as getStepGroupMap, g as getSteps, h as hasSteps, z as zodToFormSchema } from '../../../shared/stack.Co034Fpm.mjs';
8
7
  import 'react-hook-form';
9
8
  import 'zod';
@@ -93,6 +92,25 @@ interface FormBuilderClientConfig {
93
92
  headers?: Headers;
94
93
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
95
94
  hooks?: FormBuilderClientHooks;
95
+ /**
96
+ * Optional page component overrides.
97
+ * Replace any plugin page with a custom React component.
98
+ * The built-in component is used as the fallback when not provided.
99
+ */
100
+ pageComponents?: {
101
+ /** Replaces the form list page */
102
+ formList?: ComponentType;
103
+ /** Replaces the new form page */
104
+ newForm?: ComponentType;
105
+ /** Replaces the form editor page */
106
+ editForm?: ComponentType<{
107
+ id: string;
108
+ }>;
109
+ /** Replaces the form submissions page */
110
+ submissions?: ComponentType<{
111
+ formId: string;
112
+ }>;
113
+ };
96
114
  }
97
115
  /**
98
116
  * Form Builder client plugin
@@ -101,9 +119,9 @@ interface FormBuilderClientConfig {
101
119
  declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
102
120
  formList: {
103
121
  (inputCtx_0?: _btst_yar.InputContext<"/forms", _btst_yar.RouteOptions> | undefined): {
104
- PageComponent?: react.ComponentType<unknown> | undefined;
105
- LoadingComponent?: react.ComponentType<unknown> | undefined;
106
- ErrorComponent?: react.ComponentType<unknown> | undefined;
122
+ PageComponent?: ComponentType<{}> | undefined;
123
+ LoadingComponent?: ComponentType<{}> | undefined;
124
+ ErrorComponent?: ComponentType<{}> | undefined;
107
125
  loader?: (() => Promise<void>) | undefined;
108
126
  meta?: (() => ({
109
127
  title: string;
@@ -122,9 +140,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
122
140
  };
123
141
  newForm: {
124
142
  (inputCtx_0?: _btst_yar.InputContext<"/forms/new", _btst_yar.RouteOptions> | undefined): {
125
- PageComponent?: react.ComponentType<unknown> | undefined;
126
- LoadingComponent?: react.ComponentType<unknown> | undefined;
127
- ErrorComponent?: react.ComponentType<unknown> | undefined;
143
+ PageComponent?: ComponentType<{}> | undefined;
144
+ LoadingComponent?: ComponentType<{}> | undefined;
145
+ ErrorComponent?: ComponentType<{}> | undefined;
128
146
  loader?: (() => Promise<void>) | undefined;
129
147
  meta?: (() => ({
130
148
  title: string;
@@ -143,9 +161,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
143
161
  };
144
162
  editForm: {
145
163
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/edit", _btst_yar.RouteOptions>): {
146
- PageComponent?: react.ComponentType<unknown> | undefined;
147
- LoadingComponent?: react.ComponentType<unknown> | undefined;
148
- ErrorComponent?: react.ComponentType<unknown> | undefined;
164
+ PageComponent?: ComponentType<unknown> | undefined;
165
+ LoadingComponent?: ComponentType<unknown> | undefined;
166
+ ErrorComponent?: ComponentType<unknown> | undefined;
149
167
  loader?: (() => Promise<void>) | undefined;
150
168
  meta?: (() => ({
151
169
  title: string;
@@ -164,9 +182,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
164
182
  };
165
183
  submissions: {
166
184
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/submissions", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
185
+ PageComponent?: ComponentType<unknown> | undefined;
186
+ LoadingComponent?: ComponentType<unknown> | undefined;
187
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
188
  loader?: (() => Promise<void>) | undefined;
171
189
  meta?: (() => ({
172
190
  title: string;
@@ -1,9 +1,8 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
- import { ComponentType } from 'react';
4
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
5
4
  import { QueryClient } from '@tanstack/react-query';
6
- import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.js';
5
+ import { A as AutoFormInputComponentProps } from '../../../shared/stack.fdi94T4S.js';
7
6
  export { b as FormSchemaMetadata, F as FormStep, f as formSchemaToZod, a as getStepGroupMap, g as getSteps, h as hasSteps, z as zodToFormSchema } from '../../../shared/stack.Co034Fpm.js';
8
7
  import 'react-hook-form';
9
8
  import 'zod';
@@ -93,6 +92,25 @@ interface FormBuilderClientConfig {
93
92
  headers?: Headers;
94
93
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
95
94
  hooks?: FormBuilderClientHooks;
95
+ /**
96
+ * Optional page component overrides.
97
+ * Replace any plugin page with a custom React component.
98
+ * The built-in component is used as the fallback when not provided.
99
+ */
100
+ pageComponents?: {
101
+ /** Replaces the form list page */
102
+ formList?: ComponentType;
103
+ /** Replaces the new form page */
104
+ newForm?: ComponentType;
105
+ /** Replaces the form editor page */
106
+ editForm?: ComponentType<{
107
+ id: string;
108
+ }>;
109
+ /** Replaces the form submissions page */
110
+ submissions?: ComponentType<{
111
+ formId: string;
112
+ }>;
113
+ };
96
114
  }
97
115
  /**
98
116
  * Form Builder client plugin
@@ -101,9 +119,9 @@ interface FormBuilderClientConfig {
101
119
  declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
102
120
  formList: {
103
121
  (inputCtx_0?: _btst_yar.InputContext<"/forms", _btst_yar.RouteOptions> | undefined): {
104
- PageComponent?: react.ComponentType<unknown> | undefined;
105
- LoadingComponent?: react.ComponentType<unknown> | undefined;
106
- ErrorComponent?: react.ComponentType<unknown> | undefined;
122
+ PageComponent?: ComponentType<{}> | undefined;
123
+ LoadingComponent?: ComponentType<{}> | undefined;
124
+ ErrorComponent?: ComponentType<{}> | undefined;
107
125
  loader?: (() => Promise<void>) | undefined;
108
126
  meta?: (() => ({
109
127
  title: string;
@@ -122,9 +140,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
122
140
  };
123
141
  newForm: {
124
142
  (inputCtx_0?: _btst_yar.InputContext<"/forms/new", _btst_yar.RouteOptions> | undefined): {
125
- PageComponent?: react.ComponentType<unknown> | undefined;
126
- LoadingComponent?: react.ComponentType<unknown> | undefined;
127
- ErrorComponent?: react.ComponentType<unknown> | undefined;
143
+ PageComponent?: ComponentType<{}> | undefined;
144
+ LoadingComponent?: ComponentType<{}> | undefined;
145
+ ErrorComponent?: ComponentType<{}> | undefined;
128
146
  loader?: (() => Promise<void>) | undefined;
129
147
  meta?: (() => ({
130
148
  title: string;
@@ -143,9 +161,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
143
161
  };
144
162
  editForm: {
145
163
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/edit", _btst_yar.RouteOptions>): {
146
- PageComponent?: react.ComponentType<unknown> | undefined;
147
- LoadingComponent?: react.ComponentType<unknown> | undefined;
148
- ErrorComponent?: react.ComponentType<unknown> | undefined;
164
+ PageComponent?: ComponentType<unknown> | undefined;
165
+ LoadingComponent?: ComponentType<unknown> | undefined;
166
+ ErrorComponent?: ComponentType<unknown> | undefined;
149
167
  loader?: (() => Promise<void>) | undefined;
150
168
  meta?: (() => ({
151
169
  title: string;
@@ -164,9 +182,9 @@ declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _bts
164
182
  };
165
183
  submissions: {
166
184
  (inputCtx_0: _btst_yar.InputContext<"/forms/:id/submissions", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
185
+ PageComponent?: ComponentType<unknown> | undefined;
186
+ LoadingComponent?: ComponentType<unknown> | undefined;
187
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
188
  loader?: (() => Promise<void>) | undefined;
171
189
  meta?: (() => ({
172
190
  title: string;
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.DSxTDZBQ.cjs';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.uWSqCWAb.cjs';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.cjs';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.CxNeGV2z.mjs';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.B8D4r97Z.mjs';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.mjs';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,4 +1,4 @@
1
- export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.BFcg0tDz.js';
1
+ export { B as BoardListResult, C as CreateKanbanTaskInput, i as KANBAN_QUERY_KEYS, b as KanbanApiContext, K as KanbanApiRouter, c as KanbanBackendHooks, a as KanbanRouteKey, e as createKanbanTask, f as findOrCreateKanbanBoard, g as getAllBoards, d as getBoardById, h as getKanbanColumnsByBoardId, k as kanbanBackendPlugin } from '../../../shared/stack.DgKOwl20.js';
2
2
  import { B as BoardWithColumns, S as SerializedBoardWithColumns, C as ColumnWithTasks, a as SerializedColumn, T as Task, b as SerializedTask } from '../../../shared/stack.DJaKVY7v.js';
3
3
  import '@btst/stack/plugins/api';
4
4
  import 'better-call';
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as react from 'react';
2
+ import * as React from 'react';
3
3
  import { HTMLAttributes, ReactNode } from 'react';
4
4
  import { a as SerializedColumn, b as SerializedTask, c as SerializedBoard } from '../../../../shared/stack.DJaKVY7v.cjs';
5
5
 
@@ -29,7 +29,7 @@ interface EmptyStateProps {
29
29
  declare function EmptyState({ title, description, action, icon, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
30
30
 
31
31
  interface DefaultErrorProps {
32
- error?: Error;
32
+ error?: unknown;
33
33
  reset?: () => void;
34
34
  }
35
35
  declare function DefaultError({ error, reset }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -46,7 +46,7 @@ interface KanbanBoardProps {
46
46
  onDeleteColumn: (columnId: string) => void;
47
47
  }
48
48
  declare function KanbanBoardComponent({ columns, kanbanState, onKanbanChange, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
49
- declare const KanbanBoard: react.MemoExoticComponent<typeof KanbanBoardComponent>;
49
+ declare const KanbanBoard: React.MemoExoticComponent<typeof KanbanBoardComponent>;
50
50
 
51
51
  interface ColumnContentProps {
52
52
  column: SerializedColumn & {
@@ -58,14 +58,14 @@ interface ColumnContentProps {
58
58
  onDeleteColumn: () => void;
59
59
  }
60
60
  declare function ColumnContentComponent({ column, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: ColumnContentProps): react_jsx_runtime.JSX.Element;
61
- declare const ColumnContent: react.MemoExoticComponent<typeof ColumnContentComponent>;
61
+ declare const ColumnContent: React.MemoExoticComponent<typeof ColumnContentComponent>;
62
62
 
63
63
  interface TaskCardProps {
64
64
  task: SerializedTask;
65
65
  onClick: () => void;
66
66
  }
67
67
  declare function TaskCardComponent({ task, onClick }: TaskCardProps): react_jsx_runtime.JSX.Element;
68
- declare const TaskCard: react.MemoExoticComponent<typeof TaskCardComponent>;
68
+ declare const TaskCard: React.MemoExoticComponent<typeof TaskCardComponent>;
69
69
 
70
70
  interface BoardFormProps {
71
71
  board?: SerializedBoard;
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as react from 'react';
2
+ import * as React from 'react';
3
3
  import { HTMLAttributes, ReactNode } from 'react';
4
4
  import { a as SerializedColumn, b as SerializedTask, c as SerializedBoard } from '../../../../shared/stack.DJaKVY7v.mjs';
5
5
 
@@ -29,7 +29,7 @@ interface EmptyStateProps {
29
29
  declare function EmptyState({ title, description, action, icon, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
30
30
 
31
31
  interface DefaultErrorProps {
32
- error?: Error;
32
+ error?: unknown;
33
33
  reset?: () => void;
34
34
  }
35
35
  declare function DefaultError({ error, reset }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -46,7 +46,7 @@ interface KanbanBoardProps {
46
46
  onDeleteColumn: (columnId: string) => void;
47
47
  }
48
48
  declare function KanbanBoardComponent({ columns, kanbanState, onKanbanChange, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
49
- declare const KanbanBoard: react.MemoExoticComponent<typeof KanbanBoardComponent>;
49
+ declare const KanbanBoard: React.MemoExoticComponent<typeof KanbanBoardComponent>;
50
50
 
51
51
  interface ColumnContentProps {
52
52
  column: SerializedColumn & {
@@ -58,14 +58,14 @@ interface ColumnContentProps {
58
58
  onDeleteColumn: () => void;
59
59
  }
60
60
  declare function ColumnContentComponent({ column, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: ColumnContentProps): react_jsx_runtime.JSX.Element;
61
- declare const ColumnContent: react.MemoExoticComponent<typeof ColumnContentComponent>;
61
+ declare const ColumnContent: React.MemoExoticComponent<typeof ColumnContentComponent>;
62
62
 
63
63
  interface TaskCardProps {
64
64
  task: SerializedTask;
65
65
  onClick: () => void;
66
66
  }
67
67
  declare function TaskCardComponent({ task, onClick }: TaskCardProps): react_jsx_runtime.JSX.Element;
68
- declare const TaskCard: react.MemoExoticComponent<typeof TaskCardComponent>;
68
+ declare const TaskCard: React.MemoExoticComponent<typeof TaskCardComponent>;
69
69
 
70
70
  interface BoardFormProps {
71
71
  board?: SerializedBoard;
@@ -1,5 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import * as react from 'react';
2
+ import * as React from 'react';
3
3
  import { HTMLAttributes, ReactNode } from 'react';
4
4
  import { a as SerializedColumn, b as SerializedTask, c as SerializedBoard } from '../../../../shared/stack.DJaKVY7v.js';
5
5
 
@@ -29,7 +29,7 @@ interface EmptyStateProps {
29
29
  declare function EmptyState({ title, description, action, icon, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
30
30
 
31
31
  interface DefaultErrorProps {
32
- error?: Error;
32
+ error?: unknown;
33
33
  reset?: () => void;
34
34
  }
35
35
  declare function DefaultError({ error, reset }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -46,7 +46,7 @@ interface KanbanBoardProps {
46
46
  onDeleteColumn: (columnId: string) => void;
47
47
  }
48
48
  declare function KanbanBoardComponent({ columns, kanbanState, onKanbanChange, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
49
- declare const KanbanBoard: react.MemoExoticComponent<typeof KanbanBoardComponent>;
49
+ declare const KanbanBoard: React.MemoExoticComponent<typeof KanbanBoardComponent>;
50
50
 
51
51
  interface ColumnContentProps {
52
52
  column: SerializedColumn & {
@@ -58,14 +58,14 @@ interface ColumnContentProps {
58
58
  onDeleteColumn: () => void;
59
59
  }
60
60
  declare function ColumnContentComponent({ column, onAddTask, onEditTask, onEditColumn, onDeleteColumn, }: ColumnContentProps): react_jsx_runtime.JSX.Element;
61
- declare const ColumnContent: react.MemoExoticComponent<typeof ColumnContentComponent>;
61
+ declare const ColumnContent: React.MemoExoticComponent<typeof ColumnContentComponent>;
62
62
 
63
63
  interface TaskCardProps {
64
64
  task: SerializedTask;
65
65
  onClick: () => void;
66
66
  }
67
67
  declare function TaskCardComponent({ task, onClick }: TaskCardProps): react_jsx_runtime.JSX.Element;
68
- declare const TaskCard: react.MemoExoticComponent<typeof TaskCardComponent>;
68
+ declare const TaskCard: React.MemoExoticComponent<typeof TaskCardComponent>;
69
69
 
70
70
  interface BoardFormProps {
71
71
  board?: SerializedBoard;
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedBoardWithColumns } from '../../../shared/stack.DJaKVY7v.cjs';
6
6
  export { K as KanbanPluginOverrides, a as KanbanUser } from '../../../shared/stack.FeaWkglm.cjs';
@@ -66,6 +66,21 @@ interface KanbanClientConfig {
66
66
  hooks?: KanbanClientHooks;
67
67
  /** Optional headers for SSR (e.g., forwarding cookies) */
68
68
  headers?: Headers;
69
+ /**
70
+ * Optional page component overrides.
71
+ * Replace any plugin page with a custom React component.
72
+ * The built-in component is used as the fallback when not provided.
73
+ */
74
+ pageComponents?: {
75
+ /** Replaces the boards list page */
76
+ boards?: ComponentType;
77
+ /** Replaces the new board page */
78
+ newBoard?: ComponentType;
79
+ /** Replaces the board detail page */
80
+ board?: ComponentType<{
81
+ boardId: string;
82
+ }>;
83
+ };
69
84
  }
70
85
  /**
71
86
  * Hooks for kanban client plugin
@@ -108,9 +123,9 @@ interface KanbanClientHooks {
108
123
  declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
109
124
  boards: {
110
125
  (inputCtx_0?: _btst_yar.InputContext<"/kanban", _btst_yar.RouteOptions> | undefined): {
111
- PageComponent?: react.ComponentType<unknown> | undefined;
112
- LoadingComponent?: react.ComponentType<unknown> | undefined;
113
- ErrorComponent?: react.ComponentType<unknown> | undefined;
126
+ PageComponent?: ComponentType<{}> | undefined;
127
+ LoadingComponent?: ComponentType<{}> | undefined;
128
+ ErrorComponent?: ComponentType<{}> | undefined;
114
129
  loader?: (() => Promise<void>) | undefined;
115
130
  meta?: (() => ({
116
131
  title: string;
@@ -136,9 +151,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
136
151
  };
137
152
  newBoard: {
138
153
  (inputCtx_0?: _btst_yar.InputContext<"/kanban/new", _btst_yar.RouteOptions> | undefined): {
139
- PageComponent?: react.ComponentType<unknown> | undefined;
140
- LoadingComponent?: react.ComponentType<unknown> | undefined;
141
- ErrorComponent?: react.ComponentType<unknown> | undefined;
154
+ PageComponent?: ComponentType<{}> | undefined;
155
+ LoadingComponent?: ComponentType<{}> | undefined;
156
+ ErrorComponent?: ComponentType<{}> | undefined;
142
157
  loader?: (() => Promise<void>) | undefined;
143
158
  meta?: (() => ({
144
159
  title: string;
@@ -164,9 +179,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
164
179
  };
165
180
  board: {
166
181
  (inputCtx_0: _btst_yar.InputContext<"/kanban/:boardId", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
182
+ PageComponent?: ComponentType<unknown> | undefined;
183
+ LoadingComponent?: ComponentType<unknown> | undefined;
184
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
185
  loader?: (() => Promise<void>) | undefined;
171
186
  meta?: (() => ({
172
187
  title: string;
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedBoardWithColumns } from '../../../shared/stack.DJaKVY7v.mjs';
6
6
  export { K as KanbanPluginOverrides, a as KanbanUser } from '../../../shared/stack.FeaWkglm.mjs';
@@ -66,6 +66,21 @@ interface KanbanClientConfig {
66
66
  hooks?: KanbanClientHooks;
67
67
  /** Optional headers for SSR (e.g., forwarding cookies) */
68
68
  headers?: Headers;
69
+ /**
70
+ * Optional page component overrides.
71
+ * Replace any plugin page with a custom React component.
72
+ * The built-in component is used as the fallback when not provided.
73
+ */
74
+ pageComponents?: {
75
+ /** Replaces the boards list page */
76
+ boards?: ComponentType;
77
+ /** Replaces the new board page */
78
+ newBoard?: ComponentType;
79
+ /** Replaces the board detail page */
80
+ board?: ComponentType<{
81
+ boardId: string;
82
+ }>;
83
+ };
69
84
  }
70
85
  /**
71
86
  * Hooks for kanban client plugin
@@ -108,9 +123,9 @@ interface KanbanClientHooks {
108
123
  declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
109
124
  boards: {
110
125
  (inputCtx_0?: _btst_yar.InputContext<"/kanban", _btst_yar.RouteOptions> | undefined): {
111
- PageComponent?: react.ComponentType<unknown> | undefined;
112
- LoadingComponent?: react.ComponentType<unknown> | undefined;
113
- ErrorComponent?: react.ComponentType<unknown> | undefined;
126
+ PageComponent?: ComponentType<{}> | undefined;
127
+ LoadingComponent?: ComponentType<{}> | undefined;
128
+ ErrorComponent?: ComponentType<{}> | undefined;
114
129
  loader?: (() => Promise<void>) | undefined;
115
130
  meta?: (() => ({
116
131
  title: string;
@@ -136,9 +151,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
136
151
  };
137
152
  newBoard: {
138
153
  (inputCtx_0?: _btst_yar.InputContext<"/kanban/new", _btst_yar.RouteOptions> | undefined): {
139
- PageComponent?: react.ComponentType<unknown> | undefined;
140
- LoadingComponent?: react.ComponentType<unknown> | undefined;
141
- ErrorComponent?: react.ComponentType<unknown> | undefined;
154
+ PageComponent?: ComponentType<{}> | undefined;
155
+ LoadingComponent?: ComponentType<{}> | undefined;
156
+ ErrorComponent?: ComponentType<{}> | undefined;
142
157
  loader?: (() => Promise<void>) | undefined;
143
158
  meta?: (() => ({
144
159
  title: string;
@@ -164,9 +179,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
164
179
  };
165
180
  board: {
166
181
  (inputCtx_0: _btst_yar.InputContext<"/kanban/:boardId", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
182
+ PageComponent?: ComponentType<unknown> | undefined;
183
+ LoadingComponent?: ComponentType<unknown> | undefined;
184
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
185
  loader?: (() => Promise<void>) | undefined;
171
186
  meta?: (() => ({
172
187
  title: string;
@@ -1,6 +1,6 @@
1
1
  import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
2
- import * as react from 'react';
3
2
  import * as _btst_yar from '@btst/yar';
3
+ import { ComponentType } from 'react';
4
4
  import { QueryClient } from '@tanstack/react-query';
5
5
  import { S as SerializedBoardWithColumns } from '../../../shared/stack.DJaKVY7v.js';
6
6
  export { K as KanbanPluginOverrides, a as KanbanUser } from '../../../shared/stack.FeaWkglm.js';
@@ -66,6 +66,21 @@ interface KanbanClientConfig {
66
66
  hooks?: KanbanClientHooks;
67
67
  /** Optional headers for SSR (e.g., forwarding cookies) */
68
68
  headers?: Headers;
69
+ /**
70
+ * Optional page component overrides.
71
+ * Replace any plugin page with a custom React component.
72
+ * The built-in component is used as the fallback when not provided.
73
+ */
74
+ pageComponents?: {
75
+ /** Replaces the boards list page */
76
+ boards?: ComponentType;
77
+ /** Replaces the new board page */
78
+ newBoard?: ComponentType;
79
+ /** Replaces the board detail page */
80
+ board?: ComponentType<{
81
+ boardId: string;
82
+ }>;
83
+ };
69
84
  }
70
85
  /**
71
86
  * Hooks for kanban client plugin
@@ -108,9 +123,9 @@ interface KanbanClientHooks {
108
123
  declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
109
124
  boards: {
110
125
  (inputCtx_0?: _btst_yar.InputContext<"/kanban", _btst_yar.RouteOptions> | undefined): {
111
- PageComponent?: react.ComponentType<unknown> | undefined;
112
- LoadingComponent?: react.ComponentType<unknown> | undefined;
113
- ErrorComponent?: react.ComponentType<unknown> | undefined;
126
+ PageComponent?: ComponentType<{}> | undefined;
127
+ LoadingComponent?: ComponentType<{}> | undefined;
128
+ ErrorComponent?: ComponentType<{}> | undefined;
114
129
  loader?: (() => Promise<void>) | undefined;
115
130
  meta?: (() => ({
116
131
  title: string;
@@ -136,9 +151,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
136
151
  };
137
152
  newBoard: {
138
153
  (inputCtx_0?: _btst_yar.InputContext<"/kanban/new", _btst_yar.RouteOptions> | undefined): {
139
- PageComponent?: react.ComponentType<unknown> | undefined;
140
- LoadingComponent?: react.ComponentType<unknown> | undefined;
141
- ErrorComponent?: react.ComponentType<unknown> | undefined;
154
+ PageComponent?: ComponentType<{}> | undefined;
155
+ LoadingComponent?: ComponentType<{}> | undefined;
156
+ ErrorComponent?: ComponentType<{}> | undefined;
142
157
  loader?: (() => Promise<void>) | undefined;
143
158
  meta?: (() => ({
144
159
  title: string;
@@ -164,9 +179,9 @@ declare const kanbanClientPlugin: (config: KanbanClientConfig) => _btst_stack_pl
164
179
  };
165
180
  board: {
166
181
  (inputCtx_0: _btst_yar.InputContext<"/kanban/:boardId", _btst_yar.RouteOptions>): {
167
- PageComponent?: react.ComponentType<unknown> | undefined;
168
- LoadingComponent?: react.ComponentType<unknown> | undefined;
169
- ErrorComponent?: react.ComponentType<unknown> | undefined;
182
+ PageComponent?: ComponentType<unknown> | undefined;
183
+ LoadingComponent?: ComponentType<unknown> | undefined;
184
+ ErrorComponent?: ComponentType<unknown> | undefined;
170
185
  loader?: (() => Promise<void>) | undefined;
171
186
  meta?: (() => ({
172
187
  title: string;
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.DSxTDZBQ.cjs';
2
+ import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.uWSqCWAb.cjs';
3
3
  import { createApiClient } from '@btst/stack/plugins/client';
4
4
  import { S as SerializedBoardWithColumns } from '../../shared/stack.DJaKVY7v.cjs';
5
5
  import '@btst/stack/plugins/api';
@@ -1,5 +1,5 @@
1
1
  import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.CxNeGV2z.mjs';
2
+ import { K as KanbanApiRouter, j as BoardsListDiscriminator } from '../../shared/stack.B8D4r97Z.mjs';
3
3
  import { createApiClient } from '@btst/stack/plugins/client';
4
4
  import { S as SerializedBoardWithColumns } from '../../shared/stack.DJaKVY7v.mjs';
5
5
  import '@btst/stack/plugins/api';