@beechcms/forms-react 1.0.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/components/BeechForm.d.ts +4 -0
- package/dist/components/BeechForm.d.ts.map +1 -0
- package/dist/components/BeechForm.js +11 -0
- package/dist/components/BeechForm.js.map +1 -0
- package/dist/components/FormField.d.ts +4 -0
- package/dist/components/FormField.d.ts.map +1 -0
- package/dist/components/FormField.js +16 -0
- package/dist/components/FormField.js.map +1 -0
- package/dist/components/HoneypotField.d.ts +6 -0
- package/dist/components/HoneypotField.d.ts.map +1 -0
- package/dist/components/HoneypotField.js +11 -0
- package/dist/components/HoneypotField.js.map +1 -0
- package/dist/core/conditional-logic.d.ts +4 -0
- package/dist/core/conditional-logic.d.ts.map +1 -0
- package/dist/core/conditional-logic.js +47 -0
- package/dist/core/conditional-logic.js.map +1 -0
- package/dist/core/draft-storage.d.ts +5 -0
- package/dist/core/draft-storage.d.ts.map +1 -0
- package/dist/core/draft-storage.js +51 -0
- package/dist/core/draft-storage.js.map +1 -0
- package/dist/core/file-uploader.d.ts +30 -0
- package/dist/core/file-uploader.d.ts.map +1 -0
- package/dist/core/file-uploader.js +70 -0
- package/dist/core/file-uploader.js.map +1 -0
- package/dist/core/honeypot.d.ts +5 -0
- package/dist/core/honeypot.d.ts.map +1 -0
- package/dist/core/honeypot.js +15 -0
- package/dist/core/honeypot.js.map +1 -0
- package/dist/core/time-trap.d.ts +9 -0
- package/dist/core/time-trap.d.ts.map +1 -0
- package/dist/core/time-trap.js +21 -0
- package/dist/core/time-trap.js.map +1 -0
- package/dist/examples/ClientiTestPage.d.ts +27 -0
- package/dist/examples/ClientiTestPage.d.ts.map +1 -0
- package/dist/examples/ClientiTestPage.js +105 -0
- package/dist/examples/ClientiTestPage.js.map +1 -0
- package/dist/hooks/useBeechForm.d.ts +3 -0
- package/dist/hooks/useBeechForm.d.ts.map +1 -0
- package/dist/hooks/useBeechForm.js +422 -0
- package/dist/hooks/useBeechForm.js.map +1 -0
- package/dist/i18n/translations.d.ts +5 -0
- package/dist/i18n/translations.d.ts.map +1 -0
- package/dist/i18n/translations.js +39 -0
- package/dist/i18n/translations.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/playground.d.ts +2 -0
- package/dist/playground.d.ts.map +1 -0
- package/dist/playground.js +15 -0
- package/dist/playground.js.map +1 -0
- package/dist/types.d.ts +138 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/package.json +50 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type FormBranchType = 'string' | 'text' | 'number' | 'boolean' | 'select' | 'date' | 'file' | 'email';
|
|
3
|
+
export type ConditionalOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'not_in' | 'is_empty' | 'is_not_empty' | 'contains';
|
|
4
|
+
export interface ConditionalRule {
|
|
5
|
+
field: string;
|
|
6
|
+
op: ConditionalOperator;
|
|
7
|
+
value?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface FormBranchSchema {
|
|
10
|
+
alias: string;
|
|
11
|
+
type: FormBranchType;
|
|
12
|
+
label?: string;
|
|
13
|
+
placeholder?: string;
|
|
14
|
+
required?: boolean;
|
|
15
|
+
options?: Array<{
|
|
16
|
+
label: string;
|
|
17
|
+
value: string | number;
|
|
18
|
+
}>;
|
|
19
|
+
defaultValue?: unknown;
|
|
20
|
+
dependsOn?: ConditionalRule | ConditionalRule[];
|
|
21
|
+
accept?: string;
|
|
22
|
+
maxSizeMb?: number;
|
|
23
|
+
helpText?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface FormSeedSchema {
|
|
26
|
+
slug: string;
|
|
27
|
+
label?: string;
|
|
28
|
+
branches: FormBranchSchema[];
|
|
29
|
+
}
|
|
30
|
+
export interface FormFileAttachment {
|
|
31
|
+
filename: string;
|
|
32
|
+
mimeType: string;
|
|
33
|
+
data: string;
|
|
34
|
+
}
|
|
35
|
+
export interface FormTranslations {
|
|
36
|
+
submitButton: string;
|
|
37
|
+
submittingButton: string;
|
|
38
|
+
successTitle: string;
|
|
39
|
+
successMessage: string;
|
|
40
|
+
errorTitle: string;
|
|
41
|
+
genericErrorMessage: string;
|
|
42
|
+
requiredField: string;
|
|
43
|
+
invalidEmail: string;
|
|
44
|
+
invalidNumber: string;
|
|
45
|
+
invalidFileType: string;
|
|
46
|
+
fileTooLarge: (maxMb: number) => string;
|
|
47
|
+
draftRestored: string;
|
|
48
|
+
timeTrapWarning: string;
|
|
49
|
+
honeypotLabel: string;
|
|
50
|
+
}
|
|
51
|
+
export type Locale = 'it' | 'en';
|
|
52
|
+
export interface UseBeechFormOptions<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
53
|
+
seed: string | FormSeedSchema;
|
|
54
|
+
baseUrl?: string;
|
|
55
|
+
apiKey?: string;
|
|
56
|
+
locale?: Locale;
|
|
57
|
+
translations?: Partial<FormTranslations>;
|
|
58
|
+
initialValues?: Partial<TValues>;
|
|
59
|
+
disableDraft?: boolean;
|
|
60
|
+
disableAntiBot?: boolean;
|
|
61
|
+
honeypotField?: string;
|
|
62
|
+
includeFields?: string[];
|
|
63
|
+
excludeFields?: string[];
|
|
64
|
+
onSuccess?: (result: {
|
|
65
|
+
id?: string;
|
|
66
|
+
data: TValues;
|
|
67
|
+
}) => void;
|
|
68
|
+
onError?: (error: {
|
|
69
|
+
status: number;
|
|
70
|
+
message: string;
|
|
71
|
+
details?: unknown;
|
|
72
|
+
}) => void;
|
|
73
|
+
}
|
|
74
|
+
export interface FormFieldState {
|
|
75
|
+
value: unknown;
|
|
76
|
+
error?: string;
|
|
77
|
+
touched: boolean;
|
|
78
|
+
visible: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface UseBeechFormReturn<TValues extends Record<string, unknown> = Record<string, unknown>> {
|
|
81
|
+
seedSlug: string;
|
|
82
|
+
schema: FormSeedSchema | null;
|
|
83
|
+
isLoadingSchema: boolean;
|
|
84
|
+
values: TValues;
|
|
85
|
+
errors: Record<string, string | undefined>;
|
|
86
|
+
touched: Record<string, boolean | undefined>;
|
|
87
|
+
isSubmitting: boolean;
|
|
88
|
+
isSuccess: boolean;
|
|
89
|
+
isDraftRestored: boolean;
|
|
90
|
+
serverError: string | null;
|
|
91
|
+
timeTrapReady: boolean;
|
|
92
|
+
honeypotName: string;
|
|
93
|
+
honeypotValue: string;
|
|
94
|
+
translations: FormTranslations;
|
|
95
|
+
setFieldValue: (field: string, value: unknown) => void;
|
|
96
|
+
setFieldTouched: (field: string, isTouched?: boolean) => void;
|
|
97
|
+
setFieldError: (field: string, error?: string) => void;
|
|
98
|
+
setHoneypotValue: (value: string) => void;
|
|
99
|
+
isFieldVisible: (field: string) => boolean;
|
|
100
|
+
register: (field: string) => {
|
|
101
|
+
name: string;
|
|
102
|
+
value: string | number | readonly string[] | undefined;
|
|
103
|
+
onChange: (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>) => void;
|
|
104
|
+
onBlur: () => void;
|
|
105
|
+
'aria-invalid'?: boolean;
|
|
106
|
+
'aria-required'?: boolean;
|
|
107
|
+
'aria-describedby'?: string;
|
|
108
|
+
};
|
|
109
|
+
registerHoneypot: () => {
|
|
110
|
+
name: string;
|
|
111
|
+
value: string;
|
|
112
|
+
onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
113
|
+
tabIndex: number;
|
|
114
|
+
autoComplete: string;
|
|
115
|
+
'aria-hidden': boolean;
|
|
116
|
+
};
|
|
117
|
+
handleFileChange: (field: string, file: File | null) => Promise<void>;
|
|
118
|
+
handleSubmit: (e?: React.FormEvent<HTMLFormElement>) => Promise<boolean>;
|
|
119
|
+
reset: () => void;
|
|
120
|
+
clearDraft: () => void;
|
|
121
|
+
}
|
|
122
|
+
export interface BeechFormProps<TValues extends Record<string, unknown> = Record<string, unknown>> extends UseBeechFormOptions<TValues> {
|
|
123
|
+
className?: string;
|
|
124
|
+
children?: ReactNode | ((form: UseBeechFormReturn<TValues>) => ReactNode);
|
|
125
|
+
}
|
|
126
|
+
export interface FormFieldProps {
|
|
127
|
+
branch: FormBranchSchema;
|
|
128
|
+
form: UseBeechFormReturn;
|
|
129
|
+
className?: string;
|
|
130
|
+
}
|
|
131
|
+
export interface HoneypotFieldProps {
|
|
132
|
+
name?: string;
|
|
133
|
+
value?: string;
|
|
134
|
+
onChange?: (value: string) => void;
|
|
135
|
+
form?: UseBeechFormReturn<any>;
|
|
136
|
+
label?: string;
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0CAA0C"}
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@beechcms/forms-react",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"peerDependencies": {
|
|
18
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
19
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@beechcms/client": "^0.8.0-preview.1",
|
|
23
|
+
"@beechcms/core": "^0.8.0"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@testing-library/jest-dom": "^6.6.3",
|
|
27
|
+
"@testing-library/react": "^16.3.0",
|
|
28
|
+
"@types/node": "^24.10.1",
|
|
29
|
+
"@types/react": "^19.2.7",
|
|
30
|
+
"@types/react-dom": "^19.2.3",
|
|
31
|
+
"@vitejs/plugin-react": "^5.2.0",
|
|
32
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
33
|
+
"jsdom": "^25.0.1",
|
|
34
|
+
"react": "^19.2.7",
|
|
35
|
+
"react-dom": "^19.2.7",
|
|
36
|
+
"typescript": "^5.9.3",
|
|
37
|
+
"vite": "^8.2.1",
|
|
38
|
+
"vitest": "^4.1.0"
|
|
39
|
+
},
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "tsc",
|
|
43
|
+
"dev": "tsc -w --preserveWatchOutput",
|
|
44
|
+
"lint": "eslint .",
|
|
45
|
+
"type-check": "tsc --noEmit",
|
|
46
|
+
"playground": "vite --port 5175",
|
|
47
|
+
"test": "vitest run",
|
|
48
|
+
"test:coverage": "vitest run --coverage"
|
|
49
|
+
}
|
|
50
|
+
}
|