@btst/stack 2.5.5 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) 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/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.cjs +1 -1
  6. package/dist/packages/stack/src/plugins/ai-chat/client/components/shared/default-error.mjs +1 -1
  7. package/dist/packages/stack/src/plugins/ai-chat/client/plugin.cjs +44 -35
  8. package/dist/packages/stack/src/plugins/ai-chat/client/plugin.mjs +44 -35
  9. package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.cjs +1 -1
  10. package/dist/packages/stack/src/plugins/blog/client/components/shared/default-error.mjs +1 -1
  11. package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.cjs +22 -0
  12. package/dist/packages/stack/src/plugins/blog/client/hooks/use-debounce.mjs +23 -2
  13. package/dist/packages/stack/src/plugins/blog/client/plugin.cjs +12 -6
  14. package/dist/packages/stack/src/plugins/blog/client/plugin.mjs +12 -6
  15. package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.cjs +1 -1
  16. package/dist/packages/stack/src/plugins/cms/client/components/shared/default-error.mjs +1 -1
  17. package/dist/packages/stack/src/plugins/cms/client/plugin.cjs +38 -26
  18. package/dist/packages/stack/src/plugins/cms/client/plugin.mjs +38 -26
  19. package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.cjs +1 -1
  20. package/dist/packages/stack/src/plugins/form-builder/client/components/shared/default-error.mjs +1 -1
  21. package/dist/packages/stack/src/plugins/form-builder/client/plugin.cjs +32 -20
  22. package/dist/packages/stack/src/plugins/form-builder/client/plugin.mjs +32 -20
  23. package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.cjs +1 -1
  24. package/dist/packages/stack/src/plugins/kanban/client/components/shared/default-error.mjs +1 -1
  25. package/dist/packages/stack/src/plugins/kanban/client/plugin.cjs +6 -3
  26. package/dist/packages/stack/src/plugins/kanban/client/plugin.mjs +6 -3
  27. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.cjs +1 -1
  28. package/dist/packages/stack/src/plugins/ui-builder/client/components/page-renderer.mjs +1 -1
  29. package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.cjs +3 -1
  30. package/dist/packages/stack/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.mjs +3 -1
  31. package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.cjs +1 -1
  32. package/dist/packages/stack/src/plugins/ui-builder/client/components/shared/default-error.mjs +1 -1
  33. package/dist/packages/stack/src/plugins/ui-builder/client/plugin.cjs +24 -15
  34. package/dist/packages/stack/src/plugins/ui-builder/client/plugin.mjs +24 -15
  35. package/dist/packages/ui/src/components/search-select.cjs +13 -3
  36. package/dist/packages/ui/src/components/search-select.mjs +14 -4
  37. package/dist/plugins/ai-chat/client/index.d.cts +17 -4
  38. package/dist/plugins/ai-chat/client/index.d.mts +17 -4
  39. package/dist/plugins/ai-chat/client/index.d.ts +17 -4
  40. package/dist/plugins/blog/client/hooks/index.cjs +3 -0
  41. package/dist/plugins/blog/client/hooks/index.d.cts +7 -226
  42. package/dist/plugins/blog/client/hooks/index.d.mts +7 -226
  43. package/dist/plugins/blog/client/hooks/index.d.ts +7 -226
  44. package/dist/plugins/blog/client/hooks/index.mjs +1 -0
  45. package/dist/plugins/blog/client/index.d.cts +45 -21
  46. package/dist/plugins/blog/client/index.d.mts +45 -21
  47. package/dist/plugins/blog/client/index.d.ts +45 -21
  48. package/dist/plugins/cms/client/index.d.cts +35 -14
  49. package/dist/plugins/cms/client/index.d.mts +35 -14
  50. package/dist/plugins/cms/client/index.d.ts +35 -14
  51. package/dist/plugins/form-builder/client/components/index.d.cts +1 -1
  52. package/dist/plugins/form-builder/client/components/index.d.mts +1 -1
  53. package/dist/plugins/form-builder/client/components/index.d.ts +1 -1
  54. package/dist/plugins/form-builder/client/index.d.cts +32 -14
  55. package/dist/plugins/form-builder/client/index.d.mts +32 -14
  56. package/dist/plugins/form-builder/client/index.d.ts +32 -14
  57. package/dist/plugins/kanban/api/index.d.cts +1 -1
  58. package/dist/plugins/kanban/api/index.d.mts +1 -1
  59. package/dist/plugins/kanban/api/index.d.ts +1 -1
  60. package/dist/plugins/kanban/client/components/index.d.cts +5 -5
  61. package/dist/plugins/kanban/client/components/index.d.mts +5 -5
  62. package/dist/plugins/kanban/client/components/index.d.ts +5 -5
  63. package/dist/plugins/kanban/client/index.d.cts +25 -10
  64. package/dist/plugins/kanban/client/index.d.mts +25 -10
  65. package/dist/plugins/kanban/client/index.d.ts +25 -10
  66. package/dist/plugins/kanban/query-keys.d.cts +1 -1
  67. package/dist/plugins/kanban/query-keys.d.mts +1 -1
  68. package/dist/plugins/kanban/query-keys.d.ts +1 -1
  69. package/dist/plugins/route-docs/client/index.d.cts +4 -4
  70. package/dist/plugins/route-docs/client/index.d.mts +4 -4
  71. package/dist/plugins/route-docs/client/index.d.ts +4 -4
  72. package/dist/plugins/ui-builder/client/components/index.d.cts +1 -1
  73. package/dist/plugins/ui-builder/client/components/index.d.mts +1 -1
  74. package/dist/plugins/ui-builder/client/components/index.d.ts +1 -1
  75. package/dist/plugins/ui-builder/client/index.d.cts +35 -16
  76. package/dist/plugins/ui-builder/client/index.d.mts +35 -16
  77. package/dist/plugins/ui-builder/client/index.d.ts +35 -16
  78. package/dist/shared/stack.CNLHlv7r.d.mts +228 -0
  79. package/dist/shared/stack.CQAZwXhV.d.cts +228 -0
  80. package/dist/shared/stack.D3BsrpAz.d.ts +228 -0
  81. package/package.json +19 -2
  82. package/src/__tests__/page-component-overrides.test.tsx +147 -0
  83. package/src/plugins/ai-chat/client/components/shared/default-error.tsx +1 -1
  84. package/src/plugins/ai-chat/client/plugin.tsx +60 -32
  85. package/src/plugins/blog/client/components/shared/default-error.tsx +2 -1
  86. package/src/plugins/blog/client/hooks/index.tsx +1 -0
  87. package/src/plugins/blog/client/plugin.tsx +41 -6
  88. package/src/plugins/cms/client/components/shared/default-error.tsx +3 -2
  89. package/src/plugins/cms/client/plugin.tsx +65 -32
  90. package/src/plugins/form-builder/client/components/shared/default-error.tsx +3 -2
  91. package/src/plugins/form-builder/client/plugin.tsx +56 -23
  92. package/src/plugins/kanban/client/components/shared/default-error.tsx +3 -2
  93. package/src/plugins/kanban/client/plugin.tsx +23 -3
  94. package/src/plugins/ui-builder/client/components/page-renderer.tsx +5 -3
  95. package/src/plugins/ui-builder/client/components/pages/page-builder-page.internal.tsx +2 -0
  96. package/src/plugins/ui-builder/client/components/shared/default-error.tsx +3 -2
  97. package/src/plugins/ui-builder/client/overrides.ts +10 -1
  98. package/src/plugins/ui-builder/client/plugin.tsx +41 -15
  99. package/dist/shared/{stack.CxNeGV2z.d.mts → stack.Ba_Ks8qi.d.mts} +9 -9
  100. package/dist/shared/{stack.DSxTDZBQ.d.cts → stack.CFqqZUes.d.cts} +9 -9
  101. package/dist/shared/{stack.BFcg0tDz.d.ts → stack.DMobugrZ.d.ts} +9 -9
@@ -1,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -95,6 +94,28 @@ interface CMSClientConfig {
95
94
  headers?: Headers;
96
95
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
97
96
  hooks?: CMSClientHooks;
97
+ /**
98
+ * Optional page component overrides.
99
+ * Replace any plugin page with a custom React component.
100
+ * The built-in component is used as the fallback when not provided.
101
+ */
102
+ pageComponents?: {
103
+ /** Replaces the CMS dashboard page */
104
+ dashboard?: ComponentType;
105
+ /** Replaces the content list page */
106
+ contentList?: ComponentType<{
107
+ typeSlug: string;
108
+ }>;
109
+ /** Replaces the new content editor page */
110
+ newContent?: ComponentType<{
111
+ typeSlug: string;
112
+ }>;
113
+ /** Replaces the edit content editor page */
114
+ editContent?: ComponentType<{
115
+ typeSlug: string;
116
+ id: string;
117
+ }>;
118
+ };
98
119
  }
99
120
  /**
100
121
  * CMS client plugin
@@ -103,9 +124,9 @@ interface CMSClientConfig {
103
124
  declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
104
125
  dashboard: {
105
126
  (inputCtx_0?: _btst_yar.InputContext<"/cms", _btst_yar.RouteOptions> | undefined): {
106
- PageComponent?: react.ComponentType<unknown> | undefined;
107
- LoadingComponent?: react.ComponentType<unknown> | undefined;
108
- ErrorComponent?: react.ComponentType<unknown> | undefined;
127
+ PageComponent?: ComponentType<{}> | undefined;
128
+ LoadingComponent?: ComponentType<{}> | undefined;
129
+ ErrorComponent?: ComponentType<{}> | undefined;
109
130
  loader?: (() => Promise<void>) | undefined;
110
131
  meta?: (() => ({
111
132
  title: string;
@@ -124,9 +145,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
124
145
  };
125
146
  contentList: {
126
147
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug", _btst_yar.RouteOptions>): {
127
- PageComponent?: react.ComponentType<unknown> | undefined;
128
- LoadingComponent?: react.ComponentType<unknown> | undefined;
129
- ErrorComponent?: react.ComponentType<unknown> | undefined;
148
+ PageComponent?: ComponentType<unknown> | undefined;
149
+ LoadingComponent?: ComponentType<unknown> | undefined;
150
+ ErrorComponent?: ComponentType<unknown> | undefined;
130
151
  loader?: (() => Promise<void>) | undefined;
131
152
  meta?: (() => ({
132
153
  title: string;
@@ -145,9 +166,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
145
166
  };
146
167
  newContent: {
147
168
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/new", _btst_yar.RouteOptions>): {
148
- PageComponent?: react.ComponentType<unknown> | undefined;
149
- LoadingComponent?: react.ComponentType<unknown> | undefined;
150
- ErrorComponent?: react.ComponentType<unknown> | undefined;
169
+ PageComponent?: ComponentType<unknown> | undefined;
170
+ LoadingComponent?: ComponentType<unknown> | undefined;
171
+ ErrorComponent?: ComponentType<unknown> | undefined;
151
172
  loader?: (() => Promise<void>) | undefined;
152
173
  meta?: (() => ({
153
174
  title: string;
@@ -166,9 +187,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
166
187
  };
167
188
  editContent: {
168
189
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/:id", _btst_yar.RouteOptions>): {
169
- PageComponent?: react.ComponentType<unknown> | undefined;
170
- LoadingComponent?: react.ComponentType<unknown> | undefined;
171
- ErrorComponent?: react.ComponentType<unknown> | undefined;
190
+ PageComponent?: ComponentType<unknown> | undefined;
191
+ LoadingComponent?: ComponentType<unknown> | undefined;
192
+ ErrorComponent?: ComponentType<unknown> | undefined;
172
193
  loader?: (() => Promise<void>) | undefined;
173
194
  meta?: (() => ({
174
195
  title: string;
@@ -1,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -95,6 +94,28 @@ interface CMSClientConfig {
95
94
  headers?: Headers;
96
95
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
97
96
  hooks?: CMSClientHooks;
97
+ /**
98
+ * Optional page component overrides.
99
+ * Replace any plugin page with a custom React component.
100
+ * The built-in component is used as the fallback when not provided.
101
+ */
102
+ pageComponents?: {
103
+ /** Replaces the CMS dashboard page */
104
+ dashboard?: ComponentType;
105
+ /** Replaces the content list page */
106
+ contentList?: ComponentType<{
107
+ typeSlug: string;
108
+ }>;
109
+ /** Replaces the new content editor page */
110
+ newContent?: ComponentType<{
111
+ typeSlug: string;
112
+ }>;
113
+ /** Replaces the edit content editor page */
114
+ editContent?: ComponentType<{
115
+ typeSlug: string;
116
+ id: string;
117
+ }>;
118
+ };
98
119
  }
99
120
  /**
100
121
  * CMS client plugin
@@ -103,9 +124,9 @@ interface CMSClientConfig {
103
124
  declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
104
125
  dashboard: {
105
126
  (inputCtx_0?: _btst_yar.InputContext<"/cms", _btst_yar.RouteOptions> | undefined): {
106
- PageComponent?: react.ComponentType<unknown> | undefined;
107
- LoadingComponent?: react.ComponentType<unknown> | undefined;
108
- ErrorComponent?: react.ComponentType<unknown> | undefined;
127
+ PageComponent?: ComponentType<{}> | undefined;
128
+ LoadingComponent?: ComponentType<{}> | undefined;
129
+ ErrorComponent?: ComponentType<{}> | undefined;
109
130
  loader?: (() => Promise<void>) | undefined;
110
131
  meta?: (() => ({
111
132
  title: string;
@@ -124,9 +145,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
124
145
  };
125
146
  contentList: {
126
147
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug", _btst_yar.RouteOptions>): {
127
- PageComponent?: react.ComponentType<unknown> | undefined;
128
- LoadingComponent?: react.ComponentType<unknown> | undefined;
129
- ErrorComponent?: react.ComponentType<unknown> | undefined;
148
+ PageComponent?: ComponentType<unknown> | undefined;
149
+ LoadingComponent?: ComponentType<unknown> | undefined;
150
+ ErrorComponent?: ComponentType<unknown> | undefined;
130
151
  loader?: (() => Promise<void>) | undefined;
131
152
  meta?: (() => ({
132
153
  title: string;
@@ -145,9 +166,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
145
166
  };
146
167
  newContent: {
147
168
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/new", _btst_yar.RouteOptions>): {
148
- PageComponent?: react.ComponentType<unknown> | undefined;
149
- LoadingComponent?: react.ComponentType<unknown> | undefined;
150
- ErrorComponent?: react.ComponentType<unknown> | undefined;
169
+ PageComponent?: ComponentType<unknown> | undefined;
170
+ LoadingComponent?: ComponentType<unknown> | undefined;
171
+ ErrorComponent?: ComponentType<unknown> | undefined;
151
172
  loader?: (() => Promise<void>) | undefined;
152
173
  meta?: (() => ({
153
174
  title: string;
@@ -166,9 +187,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
166
187
  };
167
188
  editContent: {
168
189
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/:id", _btst_yar.RouteOptions>): {
169
- PageComponent?: react.ComponentType<unknown> | undefined;
170
- LoadingComponent?: react.ComponentType<unknown> | undefined;
171
- ErrorComponent?: react.ComponentType<unknown> | undefined;
190
+ PageComponent?: ComponentType<unknown> | undefined;
191
+ LoadingComponent?: ComponentType<unknown> | undefined;
192
+ ErrorComponent?: ComponentType<unknown> | undefined;
172
193
  loader?: (() => Promise<void>) | undefined;
173
194
  meta?: (() => ({
174
195
  title: string;
@@ -1,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -95,6 +94,28 @@ interface CMSClientConfig {
95
94
  headers?: Headers;
96
95
  /** Optional hooks for customizing behavior (authorization, redirects, etc.) */
97
96
  hooks?: CMSClientHooks;
97
+ /**
98
+ * Optional page component overrides.
99
+ * Replace any plugin page with a custom React component.
100
+ * The built-in component is used as the fallback when not provided.
101
+ */
102
+ pageComponents?: {
103
+ /** Replaces the CMS dashboard page */
104
+ dashboard?: ComponentType;
105
+ /** Replaces the content list page */
106
+ contentList?: ComponentType<{
107
+ typeSlug: string;
108
+ }>;
109
+ /** Replaces the new content editor page */
110
+ newContent?: ComponentType<{
111
+ typeSlug: string;
112
+ }>;
113
+ /** Replaces the edit content editor page */
114
+ editContent?: ComponentType<{
115
+ typeSlug: string;
116
+ id: string;
117
+ }>;
118
+ };
98
119
  }
99
120
  /**
100
121
  * CMS client plugin
@@ -103,9 +124,9 @@ interface CMSClientConfig {
103
124
  declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
104
125
  dashboard: {
105
126
  (inputCtx_0?: _btst_yar.InputContext<"/cms", _btst_yar.RouteOptions> | undefined): {
106
- PageComponent?: react.ComponentType<unknown> | undefined;
107
- LoadingComponent?: react.ComponentType<unknown> | undefined;
108
- ErrorComponent?: react.ComponentType<unknown> | undefined;
127
+ PageComponent?: ComponentType<{}> | undefined;
128
+ LoadingComponent?: ComponentType<{}> | undefined;
129
+ ErrorComponent?: ComponentType<{}> | undefined;
109
130
  loader?: (() => Promise<void>) | undefined;
110
131
  meta?: (() => ({
111
132
  title: string;
@@ -124,9 +145,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
124
145
  };
125
146
  contentList: {
126
147
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug", _btst_yar.RouteOptions>): {
127
- PageComponent?: react.ComponentType<unknown> | undefined;
128
- LoadingComponent?: react.ComponentType<unknown> | undefined;
129
- ErrorComponent?: react.ComponentType<unknown> | undefined;
148
+ PageComponent?: ComponentType<unknown> | undefined;
149
+ LoadingComponent?: ComponentType<unknown> | undefined;
150
+ ErrorComponent?: ComponentType<unknown> | undefined;
130
151
  loader?: (() => Promise<void>) | undefined;
131
152
  meta?: (() => ({
132
153
  title: string;
@@ -145,9 +166,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
145
166
  };
146
167
  newContent: {
147
168
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/new", _btst_yar.RouteOptions>): {
148
- PageComponent?: react.ComponentType<unknown> | undefined;
149
- LoadingComponent?: react.ComponentType<unknown> | undefined;
150
- ErrorComponent?: react.ComponentType<unknown> | undefined;
169
+ PageComponent?: ComponentType<unknown> | undefined;
170
+ LoadingComponent?: ComponentType<unknown> | undefined;
171
+ ErrorComponent?: ComponentType<unknown> | undefined;
151
172
  loader?: (() => Promise<void>) | undefined;
152
173
  meta?: (() => ({
153
174
  title: string;
@@ -166,9 +187,9 @@ declare const cmsClientPlugin: (config: CMSClientConfig) => _btst_stack_plugins_
166
187
  };
167
188
  editContent: {
168
189
  (inputCtx_0: _btst_yar.InputContext<"/cms/:typeSlug/:id", _btst_yar.RouteOptions>): {
169
- PageComponent?: react.ComponentType<unknown> | undefined;
170
- LoadingComponent?: react.ComponentType<unknown> | undefined;
171
- ErrorComponent?: react.ComponentType<unknown> | undefined;
190
+ PageComponent?: ComponentType<unknown> | undefined;
191
+ LoadingComponent?: ComponentType<unknown> | undefined;
192
+ ErrorComponent?: ComponentType<unknown> | undefined;
172
193
  loader?: (() => Promise<void>) | undefined;
173
194
  meta?: (() => ({
174
195
  title: string;
@@ -71,7 +71,7 @@ declare function FormBuilderSkeleton(): react_jsx_runtime.JSX.Element;
71
71
  declare function SubmissionsSkeleton(): react_jsx_runtime.JSX.Element;
72
72
 
73
73
  interface DefaultErrorProps {
74
- error: Error;
74
+ error: unknown;
75
75
  resetErrorBoundary?: () => void;
76
76
  }
77
77
  declare function DefaultError({ error, resetErrorBoundary }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -71,7 +71,7 @@ declare function FormBuilderSkeleton(): react_jsx_runtime.JSX.Element;
71
71
  declare function SubmissionsSkeleton(): react_jsx_runtime.JSX.Element;
72
72
 
73
73
  interface DefaultErrorProps {
74
- error: Error;
74
+ error: unknown;
75
75
  resetErrorBoundary?: () => void;
76
76
  }
77
77
  declare function DefaultError({ error, resetErrorBoundary }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -71,7 +71,7 @@ declare function FormBuilderSkeleton(): react_jsx_runtime.JSX.Element;
71
71
  declare function SubmissionsSkeleton(): react_jsx_runtime.JSX.Element;
72
72
 
73
73
  interface DefaultErrorProps {
74
- error: Error;
74
+ error: unknown;
75
75
  resetErrorBoundary?: () => void;
76
76
  }
77
77
  declare function DefaultError({ error, resetErrorBoundary }: DefaultErrorProps): react_jsx_runtime.JSX.Element;
@@ -1,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -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,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -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,7 +1,6 @@
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
5
  import { A as AutoFormInputComponentProps } from '../../../shared/stack.8nldKomx.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';
@@ -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.CFqqZUes.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.Ba_Ks8qi.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.DMobugrZ.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;