@btst/stack 1.5.2 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.cjs +7 -1
- package/dist/api/index.d.cts +2 -2
- package/dist/api/index.d.mts +2 -2
- package/dist/api/index.d.ts +2 -2
- package/dist/api/index.mjs +7 -1
- package/dist/client/index.d.cts +1 -1
- package/dist/client/index.d.mts +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs +68 -0
- package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.mjs +60 -0
- 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 +3937 -0
- 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 +3907 -0
- package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.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/modifiers/dist/modifiers.esm.cjs +30 -0
- package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.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/modifiers/dist/modifiers.esm.mjs +28 -0
- 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.cjs +675 -0
- 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 +661 -0
- package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs +358 -0
- package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.mjs +332 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.cjs +211 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.mjs +188 -0
- package/dist/packages/better-stack/src/plugins/cms/api/plugin.cjs +3 -2
- package/dist/packages/better-stack/src/plugins/cms/api/plugin.mjs +3 -2
- package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.cjs +15 -15
- package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.mjs +16 -16
- package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.cjs +588 -0
- package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.mjs +586 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.cjs +131 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.mjs +129 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.cjs +32 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.mjs +30 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.cjs +21 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.mjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.cjs +34 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.mjs +32 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.cjs +20 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.mjs +18 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.cjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.cjs +186 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.mjs +184 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.mjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.cjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.cjs +165 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.mjs +163 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.mjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.cjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +177 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +175 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.mjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.cjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.mjs +15 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.cjs +16 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.mjs +14 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.cjs +27 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.mjs +25 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.cjs +39 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.mjs +37 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.cjs +551 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.mjs +537 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.cjs +36 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.mjs +34 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.cjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.mjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.cjs +21 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.mjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.cjs +19 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.mjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.cjs +14 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.mjs +12 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.cjs +17 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.mjs +15 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.cjs +278 -0
- package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.mjs +276 -0
- package/dist/packages/better-stack/src/plugins/form-builder/db.cjs +99 -0
- package/dist/packages/better-stack/src/plugins/form-builder/db.mjs +97 -0
- package/dist/packages/better-stack/src/plugins/form-builder/schemas.cjs +82 -0
- package/dist/packages/better-stack/src/plugins/form-builder/schemas.mjs +74 -0
- package/dist/packages/better-stack/src/plugins/form-builder/utils.cjs +37 -0
- package/dist/packages/better-stack/src/plugins/form-builder/utils.mjs +29 -0
- package/dist/packages/better-stack/src/plugins/open-api/api/generator.cjs +300 -0
- package/dist/packages/better-stack/src/plugins/open-api/api/generator.mjs +284 -0
- package/dist/packages/better-stack/src/plugins/open-api/api/plugin.cjs +115 -0
- package/dist/packages/better-stack/src/plugins/open-api/api/plugin.mjs +113 -0
- package/dist/packages/better-stack/src/plugins/open-api/db.cjs +7 -0
- package/dist/packages/better-stack/src/plugins/open-api/db.mjs +5 -0
- package/dist/packages/better-stack/src/plugins/open-api/logo.cjs +8 -0
- package/dist/packages/better-stack/src/plugins/open-api/logo.mjs +6 -0
- package/dist/packages/ui/src/components/auto-form/index.cjs +2 -12
- package/dist/packages/ui/src/components/auto-form/index.mjs +2 -9
- package/dist/packages/ui/src/components/auto-form/stepped-auto-form.cjs +377 -0
- package/dist/packages/ui/src/components/auto-form/stepped-auto-form.mjs +368 -0
- package/dist/packages/ui/src/components/auto-form/utils.cjs +1 -56
- package/dist/packages/ui/src/components/auto-form/utils.mjs +2 -56
- package/dist/packages/ui/src/components/form-builder/canvas.cjs +111 -0
- package/dist/packages/ui/src/components/form-builder/canvas.mjs +109 -0
- package/dist/packages/ui/src/components/form-builder/components/index.cjs +570 -0
- package/dist/packages/ui/src/components/form-builder/components/index.mjs +553 -0
- package/dist/packages/ui/src/components/form-builder/edit-field-dialog.cjs +131 -0
- package/dist/packages/ui/src/components/form-builder/edit-field-dialog.mjs +129 -0
- package/dist/packages/ui/src/components/form-builder/form-preview.cjs +73 -0
- package/dist/packages/ui/src/components/form-builder/form-preview.mjs +71 -0
- package/dist/packages/ui/src/components/form-builder/index.cjs +353 -0
- package/dist/packages/ui/src/components/form-builder/index.mjs +344 -0
- package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.cjs +263 -0
- package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.mjs +261 -0
- package/dist/packages/ui/src/components/form-builder/palette.cjs +52 -0
- package/dist/packages/ui/src/components/form-builder/palette.mjs +49 -0
- package/dist/packages/ui/src/components/form-builder/schema-utils.cjs +120 -0
- package/dist/packages/ui/src/components/form-builder/schema-utils.mjs +114 -0
- package/dist/packages/ui/src/components/form-builder/sortable-field.cjs +151 -0
- package/dist/packages/ui/src/components/form-builder/sortable-field.mjs +148 -0
- package/dist/packages/ui/src/components/form-builder/step-tabs.cjs +180 -0
- package/dist/packages/ui/src/components/form-builder/step-tabs.mjs +178 -0
- package/dist/packages/ui/src/components/form-builder/types.cjs +7 -0
- package/dist/packages/ui/src/components/form-builder/types.mjs +5 -0
- package/dist/packages/ui/src/components/form-builder/validation-schemas.cjs +67 -0
- package/dist/packages/ui/src/components/form-builder/validation-schemas.mjs +56 -0
- package/dist/packages/ui/src/components/tabs.cjs +70 -0
- package/dist/packages/ui/src/components/tabs.mjs +65 -0
- package/dist/packages/ui/src/lib/schema-converter.cjs +130 -0
- package/dist/packages/ui/src/lib/schema-converter.mjs +124 -0
- package/dist/plugins/api/index.d.cts +2 -2
- package/dist/plugins/api/index.d.mts +2 -2
- package/dist/plugins/api/index.d.ts +2 -2
- package/dist/plugins/blog/api/index.d.cts +1 -1
- package/dist/plugins/blog/api/index.d.mts +1 -1
- package/dist/plugins/blog/api/index.d.ts +1 -1
- package/dist/plugins/blog/client/hooks/index.d.cts +2 -2
- package/dist/plugins/blog/client/hooks/index.d.mts +2 -2
- package/dist/plugins/blog/client/hooks/index.d.ts +2 -2
- package/dist/plugins/blog/client/index.d.cts +1 -1
- package/dist/plugins/blog/client/index.d.mts +1 -1
- package/dist/plugins/blog/client/index.d.ts +1 -1
- package/dist/plugins/blog/query-keys.d.cts +2 -2
- package/dist/plugins/blog/query-keys.d.mts +2 -2
- package/dist/plugins/blog/query-keys.d.ts +2 -2
- package/dist/plugins/client/index.d.cts +2 -2
- package/dist/plugins/client/index.d.mts +2 -2
- package/dist/plugins/client/index.d.ts +2 -2
- package/dist/plugins/cms/client/index.cjs +6 -0
- package/dist/plugins/cms/client/index.d.cts +6 -113
- package/dist/plugins/cms/client/index.d.mts +6 -113
- package/dist/plugins/cms/client/index.d.ts +6 -113
- package/dist/plugins/cms/client/index.mjs +1 -0
- package/dist/plugins/form-builder/api/index.cjs +7 -0
- package/dist/plugins/form-builder/api/index.d.cts +141 -0
- package/dist/plugins/form-builder/api/index.d.mts +141 -0
- package/dist/plugins/form-builder/api/index.d.ts +141 -0
- package/dist/plugins/form-builder/api/index.mjs +1 -0
- package/dist/plugins/form-builder/client/components/index.cjs +29 -0
- package/dist/plugins/form-builder/client/components/index.d.cts +93 -0
- package/dist/plugins/form-builder/client/components/index.d.mts +93 -0
- package/dist/plugins/form-builder/client/components/index.d.ts +93 -0
- package/dist/plugins/form-builder/client/components/index.mjs +18 -0
- package/dist/plugins/form-builder/client/hooks/index.cjs +19 -0
- package/dist/plugins/form-builder/client/hooks/index.d.cts +154 -0
- package/dist/plugins/form-builder/client/hooks/index.d.mts +154 -0
- package/dist/plugins/form-builder/client/hooks/index.d.ts +154 -0
- package/dist/plugins/form-builder/client/hooks/index.mjs +1 -0
- package/dist/plugins/form-builder/client/index.cjs +13 -0
- package/dist/plugins/form-builder/client/index.d.cts +381 -0
- package/dist/plugins/form-builder/client/index.d.mts +381 -0
- package/dist/plugins/form-builder/client/index.d.ts +381 -0
- package/dist/plugins/form-builder/client/index.mjs +2 -0
- package/dist/plugins/form-builder/client.css +3 -0
- package/dist/plugins/form-builder/query-keys.cjs +143 -0
- package/dist/plugins/form-builder/query-keys.d.cts +74 -0
- package/dist/plugins/form-builder/query-keys.d.mts +74 -0
- package/dist/plugins/form-builder/query-keys.d.ts +74 -0
- package/dist/plugins/form-builder/query-keys.mjs +141 -0
- package/dist/plugins/form-builder/style.css +19 -0
- package/dist/plugins/open-api/api/index.cjs +9 -0
- package/dist/plugins/open-api/api/index.d.cts +95 -0
- package/dist/plugins/open-api/api/index.d.mts +95 -0
- package/dist/plugins/open-api/api/index.d.ts +95 -0
- package/dist/plugins/open-api/api/index.mjs +2 -0
- package/dist/shared/stack.AX5nZ6A3.d.cts +86 -0
- package/dist/shared/stack.AX5nZ6A3.d.mts +86 -0
- package/dist/shared/stack.AX5nZ6A3.d.ts +86 -0
- package/dist/shared/stack.BIh2AXaW.d.cts +123 -0
- package/dist/shared/stack.BIh2AXaW.d.mts +123 -0
- package/dist/shared/stack.BIh2AXaW.d.ts +123 -0
- package/dist/shared/{stack.ByOugz9d.d.cts → stack.CSce37mX.d.cts} +15 -2
- package/dist/shared/{stack.ByOugz9d.d.mts → stack.CSce37mX.d.mts} +15 -2
- package/dist/shared/{stack.ByOugz9d.d.ts → stack.CSce37mX.d.ts} +15 -2
- package/dist/shared/stack.DzH_wcvr.d.cts +195 -0
- package/dist/shared/stack.DzH_wcvr.d.mts +195 -0
- package/dist/shared/stack.DzH_wcvr.d.ts +195 -0
- package/package.json +67 -1
- package/src/api/index.ts +14 -2
- package/src/plugins/cms/api/plugin.ts +9 -4
- package/src/plugins/cms/client/components/forms/content-form.tsx +23 -25
- package/src/plugins/cms/client/index.ts +11 -0
- package/src/plugins/form-builder/api/index.ts +1 -0
- package/src/plugins/form-builder/api/plugin.ts +776 -0
- package/src/plugins/form-builder/client/components/forms/form-renderer.tsx +253 -0
- package/src/plugins/form-builder/client/components/index.tsx +24 -0
- package/src/plugins/form-builder/client/components/loading/form-builder-skeleton.tsx +42 -0
- package/src/plugins/form-builder/client/components/loading/form-list-skeleton.tsx +25 -0
- package/src/plugins/form-builder/client/components/loading/index.tsx +3 -0
- package/src/plugins/form-builder/client/components/loading/submissions-skeleton.tsx +40 -0
- package/src/plugins/form-builder/client/components/pages/404-page.tsx +28 -0
- package/src/plugins/form-builder/client/components/pages/form-builder-page.internal.tsx +253 -0
- package/src/plugins/form-builder/client/components/pages/form-builder-page.tsx +26 -0
- package/src/plugins/form-builder/client/components/pages/form-list-page.internal.tsx +231 -0
- package/src/plugins/form-builder/client/components/pages/form-list-page.tsx +22 -0
- package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +268 -0
- package/src/plugins/form-builder/client/components/pages/submissions-page.tsx +26 -0
- package/src/plugins/form-builder/client/components/shared/default-error.tsx +30 -0
- package/src/plugins/form-builder/client/components/shared/empty-state.tsx +26 -0
- package/src/plugins/form-builder/client/components/shared/page-wrapper.tsx +32 -0
- package/src/plugins/form-builder/client/components/shared/pagination.tsx +52 -0
- package/src/plugins/form-builder/client/hooks/form-builder-hooks.tsx +799 -0
- package/src/plugins/form-builder/client/hooks/index.tsx +1 -0
- package/src/plugins/form-builder/client/index.ts +22 -0
- package/src/plugins/form-builder/client/localization/form-builder-common.ts +36 -0
- package/src/plugins/form-builder/client/localization/form-builder-editor.ts +18 -0
- package/src/plugins/form-builder/client/localization/form-builder-list.ts +17 -0
- package/src/plugins/form-builder/client/localization/form-builder-submissions.ts +17 -0
- package/src/plugins/form-builder/client/localization/form-builder-toasts.ts +10 -0
- package/src/plugins/form-builder/client/localization/index.ts +15 -0
- package/src/plugins/form-builder/client/overrides.ts +146 -0
- package/src/plugins/form-builder/client/plugin.tsx +488 -0
- package/src/plugins/form-builder/client.css +3 -0
- package/src/plugins/form-builder/db.ts +99 -0
- package/src/plugins/form-builder/query-keys.ts +198 -0
- package/src/plugins/form-builder/schemas.ts +122 -0
- package/src/plugins/form-builder/style.css +19 -0
- package/src/plugins/form-builder/types.ts +317 -0
- package/src/plugins/form-builder/utils.ts +63 -0
- package/src/plugins/open-api/api/generator.ts +433 -0
- package/src/plugins/open-api/api/index.ts +8 -0
- package/src/plugins/open-api/api/plugin.ts +243 -0
- package/src/plugins/open-api/db.ts +7 -0
- package/src/plugins/open-api/logo.ts +7 -0
- package/src/types.ts +15 -1
- package/dist/shared/{stack.DLhzx1-D.d.mts → stack.CcI4sYJP.d.cts} +1 -1
- package/dist/shared/{stack.DLhzx1-D.d.ts → stack.CcI4sYJP.d.mts} +1 -1
- package/dist/shared/{stack.DLhzx1-D.d.cts → stack.CcI4sYJP.d.ts} +1 -1
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import * as _btst_stack_plugins_client from '@btst/stack/plugins/client';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { ComponentType } from 'react';
|
|
4
|
+
import * as _btst_yar from '@btst/yar';
|
|
5
|
+
import { QueryClient } from '@tanstack/react-query';
|
|
6
|
+
import { A as AutoFormInputComponentProps } from '../../../shared/stack.BIh2AXaW.cjs';
|
|
7
|
+
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.AX5nZ6A3.cjs';
|
|
8
|
+
import 'react-hook-form';
|
|
9
|
+
import 'zod';
|
|
10
|
+
import 'react/jsx-runtime';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Context passed to loader hooks
|
|
14
|
+
*/
|
|
15
|
+
interface LoaderContext {
|
|
16
|
+
/** Current route path */
|
|
17
|
+
path: string;
|
|
18
|
+
/** Route parameters (e.g., { id: "123" }) */
|
|
19
|
+
params?: Record<string, string>;
|
|
20
|
+
/** Whether rendering on server (true) or client (false) */
|
|
21
|
+
isSSR: boolean;
|
|
22
|
+
/** Base URL for API calls */
|
|
23
|
+
apiBaseURL: string;
|
|
24
|
+
/** Path where the API is mounted */
|
|
25
|
+
apiBasePath: string;
|
|
26
|
+
/** Optional headers for the request */
|
|
27
|
+
headers?: Headers;
|
|
28
|
+
/** Additional context properties */
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Hooks for Form Builder client plugin
|
|
33
|
+
* All hooks are optional and allow consumers to customize behavior
|
|
34
|
+
*/
|
|
35
|
+
interface FormBuilderClientHooks {
|
|
36
|
+
/**
|
|
37
|
+
* Called before loading the form list page. Return false to cancel loading.
|
|
38
|
+
* @param context - Loader context with path, params, etc.
|
|
39
|
+
*/
|
|
40
|
+
beforeLoadFormList?: (context: LoaderContext) => Promise<boolean> | boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Called after the form list is loaded.
|
|
43
|
+
* @param context - Loader context
|
|
44
|
+
*/
|
|
45
|
+
afterLoadFormList?: (context: LoaderContext) => Promise<void> | void;
|
|
46
|
+
/**
|
|
47
|
+
* Called before loading the form builder page. Return false to cancel loading.
|
|
48
|
+
* @param id - The form ID (undefined for new forms)
|
|
49
|
+
* @param context - Loader context
|
|
50
|
+
*/
|
|
51
|
+
beforeLoadFormBuilder?: (id: string | undefined, context: LoaderContext) => Promise<boolean> | boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Called after the form builder is loaded.
|
|
54
|
+
* @param id - The form ID (undefined for new forms)
|
|
55
|
+
* @param context - Loader context
|
|
56
|
+
*/
|
|
57
|
+
afterLoadFormBuilder?: (id: string | undefined, context: LoaderContext) => Promise<void> | void;
|
|
58
|
+
/**
|
|
59
|
+
* Called before loading the submissions page. Return false to cancel loading.
|
|
60
|
+
* @param formId - The form ID
|
|
61
|
+
* @param context - Loader context
|
|
62
|
+
*/
|
|
63
|
+
beforeLoadSubmissions?: (formId: string, context: LoaderContext) => Promise<boolean> | boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Called after the submissions page is loaded.
|
|
66
|
+
* @param formId - The form ID
|
|
67
|
+
* @param context - Loader context
|
|
68
|
+
*/
|
|
69
|
+
afterLoadSubmissions?: (formId: string, context: LoaderContext) => Promise<void> | void;
|
|
70
|
+
/**
|
|
71
|
+
* Called when a loading error occurs.
|
|
72
|
+
* Use this for redirects on authorization failures.
|
|
73
|
+
* @param error - The error that occurred
|
|
74
|
+
* @param context - Loader context
|
|
75
|
+
*/
|
|
76
|
+
onLoadError?: (error: Error, context: LoaderContext) => Promise<void> | void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Configuration for Form Builder client plugin
|
|
80
|
+
*/
|
|
81
|
+
interface FormBuilderClientConfig {
|
|
82
|
+
/** Base URL for API calls (e.g., "http://localhost:3000") */
|
|
83
|
+
apiBaseURL: string;
|
|
84
|
+
/** Path where the API is mounted (e.g., "/api/data") */
|
|
85
|
+
apiBasePath: string;
|
|
86
|
+
/** Base URL of your site */
|
|
87
|
+
siteBaseURL: string;
|
|
88
|
+
/** Path where pages are mounted (e.g., "/pages") */
|
|
89
|
+
siteBasePath: string;
|
|
90
|
+
/** React Query client instance for caching */
|
|
91
|
+
queryClient: QueryClient;
|
|
92
|
+
/** Optional headers for SSR (e.g., forwarding cookies) */
|
|
93
|
+
headers?: Headers;
|
|
94
|
+
/** Optional hooks for customizing behavior (authorization, redirects, etc.) */
|
|
95
|
+
hooks?: FormBuilderClientHooks;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Form Builder client plugin
|
|
99
|
+
* Provides routes and components for the Form Builder admin interface
|
|
100
|
+
*/
|
|
101
|
+
declare const formBuilderClientPlugin: (config: FormBuilderClientConfig) => _btst_stack_plugins_client.ClientPlugin<Record<string, never>, {
|
|
102
|
+
formList: {
|
|
103
|
+
(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;
|
|
107
|
+
loader?: (() => Promise<void>) | undefined;
|
|
108
|
+
meta?: (() => ({
|
|
109
|
+
title: string;
|
|
110
|
+
name?: undefined;
|
|
111
|
+
content?: undefined;
|
|
112
|
+
} | {
|
|
113
|
+
name: string;
|
|
114
|
+
content: string;
|
|
115
|
+
title?: undefined;
|
|
116
|
+
})[]) | undefined;
|
|
117
|
+
extra?: (() => any) | undefined;
|
|
118
|
+
};
|
|
119
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
120
|
+
path: "/forms";
|
|
121
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
122
|
+
};
|
|
123
|
+
newForm: {
|
|
124
|
+
(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;
|
|
128
|
+
loader?: (() => Promise<void>) | undefined;
|
|
129
|
+
meta?: (() => ({
|
|
130
|
+
title: string;
|
|
131
|
+
name?: undefined;
|
|
132
|
+
content?: undefined;
|
|
133
|
+
} | {
|
|
134
|
+
name: string;
|
|
135
|
+
content: string;
|
|
136
|
+
title?: undefined;
|
|
137
|
+
})[]) | undefined;
|
|
138
|
+
extra?: (() => any) | undefined;
|
|
139
|
+
};
|
|
140
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
141
|
+
path: "/forms/new";
|
|
142
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
143
|
+
};
|
|
144
|
+
editForm: {
|
|
145
|
+
(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;
|
|
149
|
+
loader?: (() => Promise<void>) | undefined;
|
|
150
|
+
meta?: (() => ({
|
|
151
|
+
title: string;
|
|
152
|
+
name?: undefined;
|
|
153
|
+
content?: undefined;
|
|
154
|
+
} | {
|
|
155
|
+
name: string;
|
|
156
|
+
content: string;
|
|
157
|
+
title?: undefined;
|
|
158
|
+
})[]) | undefined;
|
|
159
|
+
extra?: (() => any) | undefined;
|
|
160
|
+
};
|
|
161
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
162
|
+
path: "/forms/:id/edit";
|
|
163
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
164
|
+
};
|
|
165
|
+
submissions: {
|
|
166
|
+
(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;
|
|
170
|
+
loader?: (() => Promise<void>) | undefined;
|
|
171
|
+
meta?: (() => ({
|
|
172
|
+
title: string;
|
|
173
|
+
name?: undefined;
|
|
174
|
+
content?: undefined;
|
|
175
|
+
} | {
|
|
176
|
+
name: string;
|
|
177
|
+
content: string;
|
|
178
|
+
title?: undefined;
|
|
179
|
+
})[]) | undefined;
|
|
180
|
+
extra?: (() => any) | undefined;
|
|
181
|
+
};
|
|
182
|
+
options: _btst_yar.RouteOptions | undefined;
|
|
183
|
+
path: "/forms/:id/submissions";
|
|
184
|
+
meta: _btst_yar.RouteMeta | undefined;
|
|
185
|
+
};
|
|
186
|
+
}>;
|
|
187
|
+
|
|
188
|
+
declare const FORM_BUILDER_LOCALIZATION: {
|
|
189
|
+
FORM_BUILDER_SUBMISSIONS_TITLE: string;
|
|
190
|
+
FORM_BUILDER_SUBMISSIONS_SUBTITLE: string;
|
|
191
|
+
FORM_BUILDER_SUBMISSIONS_EMPTY: string;
|
|
192
|
+
FORM_BUILDER_SUBMISSIONS_EMPTY_DESCRIPTION: string;
|
|
193
|
+
FORM_BUILDER_SUBMISSIONS_COLUMN_ID: string;
|
|
194
|
+
FORM_BUILDER_SUBMISSIONS_COLUMN_DATA: string;
|
|
195
|
+
FORM_BUILDER_SUBMISSIONS_COLUMN_SUBMITTED_AT: string;
|
|
196
|
+
FORM_BUILDER_SUBMISSIONS_COLUMN_IP_ADDRESS: string;
|
|
197
|
+
FORM_BUILDER_SUBMISSIONS_COLUMN_ACTIONS: string;
|
|
198
|
+
FORM_BUILDER_SUBMISSIONS_ACTION_VIEW: string;
|
|
199
|
+
FORM_BUILDER_SUBMISSIONS_ACTION_DELETE: string;
|
|
200
|
+
FORM_BUILDER_SUBMISSIONS_DELETE_CONFIRM: string;
|
|
201
|
+
FORM_BUILDER_SUBMISSIONS_BACK_TO_FORM: string;
|
|
202
|
+
FORM_BUILDER_EDITOR_TITLE_NEW: string;
|
|
203
|
+
FORM_BUILDER_EDITOR_TITLE_EDIT: string;
|
|
204
|
+
FORM_BUILDER_EDITOR_SLUG_AUTO: string;
|
|
205
|
+
FORM_BUILDER_EDITOR_SLUG_MANUAL: string;
|
|
206
|
+
FORM_BUILDER_EDITOR_DELETE_CONFIRM: string;
|
|
207
|
+
FORM_BUILDER_EDITOR_UNSAVED_CHANGES: string;
|
|
208
|
+
FORM_BUILDER_EDITOR_NAME_PLACEHOLDER: string;
|
|
209
|
+
FORM_BUILDER_EDITOR_SLUG_PLACEHOLDER: string;
|
|
210
|
+
FORM_BUILDER_EDITOR_DESCRIPTION_PLACEHOLDER: string;
|
|
211
|
+
FORM_BUILDER_EDITOR_SUCCESS_MESSAGE_LABEL: string;
|
|
212
|
+
FORM_BUILDER_EDITOR_SUCCESS_MESSAGE_PLACEHOLDER: string;
|
|
213
|
+
FORM_BUILDER_EDITOR_REDIRECT_URL_LABEL: string;
|
|
214
|
+
FORM_BUILDER_EDITOR_REDIRECT_URL_PLACEHOLDER: string;
|
|
215
|
+
FORM_BUILDER_LIST_TITLE: string;
|
|
216
|
+
FORM_BUILDER_LIST_SUBTITLE: string;
|
|
217
|
+
FORM_BUILDER_LIST_EMPTY: string;
|
|
218
|
+
FORM_BUILDER_LIST_EMPTY_DESCRIPTION: string;
|
|
219
|
+
FORM_BUILDER_LIST_COLUMN_NAME: string;
|
|
220
|
+
FORM_BUILDER_LIST_COLUMN_SLUG: string;
|
|
221
|
+
FORM_BUILDER_LIST_COLUMN_STATUS: string;
|
|
222
|
+
FORM_BUILDER_LIST_COLUMN_CREATED: string;
|
|
223
|
+
FORM_BUILDER_LIST_COLUMN_ACTIONS: string;
|
|
224
|
+
FORM_BUILDER_LIST_ACTION_EDIT: string;
|
|
225
|
+
FORM_BUILDER_LIST_ACTION_DELETE: string;
|
|
226
|
+
FORM_BUILDER_LIST_ACTION_SUBMISSIONS: string;
|
|
227
|
+
FORM_BUILDER_LIST_PAGINATION_SHOWING: string;
|
|
228
|
+
FORM_BUILDER_LIST_PAGINATION_PREVIOUS: string;
|
|
229
|
+
FORM_BUILDER_LIST_PAGINATION_NEXT: string;
|
|
230
|
+
FORM_BUILDER_TOAST_CREATE_SUCCESS: string;
|
|
231
|
+
FORM_BUILDER_TOAST_UPDATE_SUCCESS: string;
|
|
232
|
+
FORM_BUILDER_TOAST_DELETE_SUCCESS: string;
|
|
233
|
+
FORM_BUILDER_TOAST_SUBMIT_SUCCESS: string;
|
|
234
|
+
FORM_BUILDER_TOAST_ERROR: string;
|
|
235
|
+
FORM_BUILDER_TOAST_VALIDATION_ERROR: string;
|
|
236
|
+
FORM_BUILDER_TOAST_DUPLICATE_SLUG: string;
|
|
237
|
+
FORM_BUILDER_TOAST_SUBMISSION_DELETED: string;
|
|
238
|
+
FORM_BUILDER_BUTTON_SAVE: string;
|
|
239
|
+
FORM_BUILDER_BUTTON_CANCEL: string;
|
|
240
|
+
FORM_BUILDER_BUTTON_DELETE: string;
|
|
241
|
+
FORM_BUILDER_BUTTON_CREATE: string;
|
|
242
|
+
FORM_BUILDER_BUTTON_BACK: string;
|
|
243
|
+
FORM_BUILDER_BUTTON_NEW_FORM: string;
|
|
244
|
+
FORM_BUILDER_BUTTON_SUBMIT: string;
|
|
245
|
+
FORM_BUILDER_LABEL_NAME: string;
|
|
246
|
+
FORM_BUILDER_LABEL_SLUG: string;
|
|
247
|
+
FORM_BUILDER_LABEL_SLUG_DESCRIPTION: string;
|
|
248
|
+
FORM_BUILDER_LABEL_DESCRIPTION: string;
|
|
249
|
+
FORM_BUILDER_LABEL_STATUS: string;
|
|
250
|
+
FORM_BUILDER_LABEL_CREATED_AT: string;
|
|
251
|
+
FORM_BUILDER_LABEL_UPDATED_AT: string;
|
|
252
|
+
FORM_BUILDER_LABEL_ACTIONS: string;
|
|
253
|
+
FORM_BUILDER_STATUS_LOADING: string;
|
|
254
|
+
FORM_BUILDER_STATUS_SAVING: string;
|
|
255
|
+
FORM_BUILDER_STATUS_DELETING: string;
|
|
256
|
+
FORM_BUILDER_STATUS_ACTIVE: string;
|
|
257
|
+
FORM_BUILDER_STATUS_INACTIVE: string;
|
|
258
|
+
FORM_BUILDER_STATUS_ARCHIVED: string;
|
|
259
|
+
FORM_BUILDER_ERROR_GENERIC: string;
|
|
260
|
+
FORM_BUILDER_ERROR_NOT_FOUND: string;
|
|
261
|
+
FORM_BUILDER_ERROR_VALIDATION: string;
|
|
262
|
+
FORM_BUILDER_ATTRIBUTION: string;
|
|
263
|
+
};
|
|
264
|
+
type FormBuilderLocalization = typeof FORM_BUILDER_LOCALIZATION;
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Context passed to lifecycle hooks
|
|
268
|
+
*/
|
|
269
|
+
interface RouteContext {
|
|
270
|
+
/** Current route path */
|
|
271
|
+
path: string;
|
|
272
|
+
/** Route parameters (e.g., { id: "123" }) */
|
|
273
|
+
params?: Record<string, string>;
|
|
274
|
+
/** Whether rendering on server (true) or client (false) */
|
|
275
|
+
isSSR: boolean;
|
|
276
|
+
/** Additional context properties */
|
|
277
|
+
[key: string]: unknown;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Overridable components and functions for the Form Builder plugin
|
|
281
|
+
*
|
|
282
|
+
* External consumers can provide their own implementations of these
|
|
283
|
+
* to customize the behavior for their framework (Next.js, React Router, etc.)
|
|
284
|
+
*/
|
|
285
|
+
interface FormBuilderPluginOverrides {
|
|
286
|
+
/**
|
|
287
|
+
* Link component for navigation
|
|
288
|
+
*/
|
|
289
|
+
Link?: ComponentType<React.ComponentProps<"a"> & Record<string, unknown>>;
|
|
290
|
+
/**
|
|
291
|
+
* Navigation function for programmatic navigation
|
|
292
|
+
*/
|
|
293
|
+
navigate: (path: string) => void | Promise<void>;
|
|
294
|
+
/**
|
|
295
|
+
* Refresh function to invalidate server-side cache (e.g., Next.js router.refresh())
|
|
296
|
+
*/
|
|
297
|
+
refresh?: () => void | Promise<void>;
|
|
298
|
+
/**
|
|
299
|
+
* Custom field components for AutoForm fields.
|
|
300
|
+
*
|
|
301
|
+
* These map field type names to React components. Use these to:
|
|
302
|
+
* - Override built-in field types (checkbox, date, select, radio, switch, textarea, file, number, fallback)
|
|
303
|
+
* - Add custom field types for your forms
|
|
304
|
+
*
|
|
305
|
+
* @example
|
|
306
|
+
* ```tsx
|
|
307
|
+
* fieldComponents: {
|
|
308
|
+
* // Override the file type with custom S3 upload
|
|
309
|
+
* file: ({ field, label, isRequired }) => (
|
|
310
|
+
* <MyS3Upload
|
|
311
|
+
* value={field.value}
|
|
312
|
+
* onChange={field.onChange}
|
|
313
|
+
* label={label}
|
|
314
|
+
* required={isRequired}
|
|
315
|
+
* />
|
|
316
|
+
* ),
|
|
317
|
+
* // Add a custom rich text editor
|
|
318
|
+
* richText: ({ field, label }) => (
|
|
319
|
+
* <MyRichTextEditor value={field.value} onChange={field.onChange} />
|
|
320
|
+
* ),
|
|
321
|
+
* }
|
|
322
|
+
* ```
|
|
323
|
+
*/
|
|
324
|
+
fieldComponents?: Record<string, ComponentType<AutoFormInputComponentProps>>;
|
|
325
|
+
/**
|
|
326
|
+
* Localization object for the Form Builder plugin
|
|
327
|
+
*/
|
|
328
|
+
localization?: FormBuilderLocalization;
|
|
329
|
+
/**
|
|
330
|
+
* API base URL
|
|
331
|
+
*/
|
|
332
|
+
apiBaseURL: string;
|
|
333
|
+
/**
|
|
334
|
+
* API base path
|
|
335
|
+
*/
|
|
336
|
+
apiBasePath: string;
|
|
337
|
+
/**
|
|
338
|
+
* Whether to show the attribution
|
|
339
|
+
*/
|
|
340
|
+
showAttribution?: boolean;
|
|
341
|
+
/**
|
|
342
|
+
* Optional headers to pass with API requests (e.g., for SSR auth)
|
|
343
|
+
*/
|
|
344
|
+
headers?: HeadersInit;
|
|
345
|
+
/**
|
|
346
|
+
* Called when a route is rendered
|
|
347
|
+
* @param routeName - Name of the route (e.g., 'formList', 'formBuilder', 'submissions')
|
|
348
|
+
* @param context - Route context with path, params, etc.
|
|
349
|
+
*/
|
|
350
|
+
onRouteRender?: (routeName: string, context: RouteContext) => void | Promise<void>;
|
|
351
|
+
/**
|
|
352
|
+
* Called when a route encounters an error
|
|
353
|
+
* @param routeName - Name of the route
|
|
354
|
+
* @param error - The error that occurred
|
|
355
|
+
* @param context - Route context
|
|
356
|
+
*/
|
|
357
|
+
onRouteError?: (routeName: string, error: Error, context: RouteContext) => void | Promise<void>;
|
|
358
|
+
/**
|
|
359
|
+
* Called before the form list page is rendered
|
|
360
|
+
* Return false to prevent rendering (e.g., for authorization)
|
|
361
|
+
* @param context - Route context
|
|
362
|
+
*/
|
|
363
|
+
onBeforeFormListRendered?: (context: RouteContext) => boolean;
|
|
364
|
+
/**
|
|
365
|
+
* Called before the form builder page is rendered
|
|
366
|
+
* Return false to prevent rendering (e.g., for authorization)
|
|
367
|
+
* @param id - The form ID (null for new forms)
|
|
368
|
+
* @param context - Route context
|
|
369
|
+
*/
|
|
370
|
+
onBeforeFormBuilderRendered?: (id: string | null, context: RouteContext) => boolean;
|
|
371
|
+
/**
|
|
372
|
+
* Called before the submissions page is rendered
|
|
373
|
+
* Return false to prevent rendering (e.g., for authorization)
|
|
374
|
+
* @param formId - The form ID
|
|
375
|
+
* @param context - Route context
|
|
376
|
+
*/
|
|
377
|
+
onBeforeSubmissionsRendered?: (formId: string, context: RouteContext) => boolean;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
export { AutoFormInputComponentProps, formBuilderClientPlugin };
|
|
381
|
+
export type { FormBuilderClientConfig, FormBuilderClientHooks, FormBuilderLocalization, FormBuilderPluginOverrides, LoaderContext, RouteContext };
|