@formsnip/embed 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/README.md +79 -0
- package/dist/FormSnip.d.ts +4 -0
- package/dist/FormSnip.d.ts.map +1 -0
- package/dist/components/FileUpload.d.ts +16 -0
- package/dist/components/FileUpload.d.ts.map +1 -0
- package/dist/index.d.ts +88 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +517 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +524 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +47 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/styles.d.ts +27 -0
- package/dist/utils/styles.d.ts.map +1 -0
- package/dist/utils/upload.d.ts +22 -0
- package/dist/utils/upload.d.ts.map +1 -0
- package/package.json +52 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export interface FormField {
|
|
2
|
+
id: string;
|
|
3
|
+
type: 'text' | 'email' | 'textarea' | 'number' | 'date' | 'checkbox' | 'radio' | 'file';
|
|
4
|
+
label: string;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
required: boolean;
|
|
7
|
+
position: number;
|
|
8
|
+
isActive: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface Form {
|
|
11
|
+
_id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
fields: FormField[];
|
|
15
|
+
submitButtonText: string;
|
|
16
|
+
embedStyles?: {
|
|
17
|
+
field?: {
|
|
18
|
+
backgroundColor?: string;
|
|
19
|
+
color?: string;
|
|
20
|
+
borderColor?: string;
|
|
21
|
+
borderRadius?: number;
|
|
22
|
+
paddingX?: number;
|
|
23
|
+
paddingY?: number;
|
|
24
|
+
};
|
|
25
|
+
button?: {
|
|
26
|
+
backgroundColor?: string;
|
|
27
|
+
color?: string;
|
|
28
|
+
borderColor?: string;
|
|
29
|
+
borderRadius?: number;
|
|
30
|
+
paddingX?: number;
|
|
31
|
+
paddingY?: number;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface FormSnipProps {
|
|
36
|
+
formId: string;
|
|
37
|
+
baseUrl?: string;
|
|
38
|
+
onSuccess?: (data: any) => void;
|
|
39
|
+
onError?: (error: string) => void;
|
|
40
|
+
className?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface SubmissionResponse {
|
|
43
|
+
success: boolean;
|
|
44
|
+
data?: any;
|
|
45
|
+
message?: string;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;IACxF,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,IAAI;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE;YACN,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,MAAM,CAAC,EAAE;YACP,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inject base styles into the document head (same as embed script)
|
|
3
|
+
*/
|
|
4
|
+
export declare function injectBaseStyles(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Apply embed styles to an element (same logic as embed script)
|
|
7
|
+
*/
|
|
8
|
+
export declare function applyStyles(styles: React.CSSProperties, customStyles?: {
|
|
9
|
+
backgroundColor?: string;
|
|
10
|
+
color?: string;
|
|
11
|
+
borderColor?: string;
|
|
12
|
+
borderRadius?: number;
|
|
13
|
+
paddingX?: number;
|
|
14
|
+
paddingY?: number;
|
|
15
|
+
}): React.CSSProperties;
|
|
16
|
+
/**
|
|
17
|
+
* CSS class names matching embed script
|
|
18
|
+
*/
|
|
19
|
+
export declare const CLASSES: {
|
|
20
|
+
form: string;
|
|
21
|
+
field: string;
|
|
22
|
+
inner: string;
|
|
23
|
+
input: string;
|
|
24
|
+
textarea: string;
|
|
25
|
+
button: string;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/utils/styles.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAiEvC;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,CAAC,aAAa,EAC3B,YAAY,CAAC,EAAE;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GACA,KAAK,CAAC,aAAa,CAyBrB;AAED;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare const ALLOWED_FILE_EXTENSIONS = ".jpg,.jpeg,.png,.gif,.webp,.svg,.pdf,.mp4,.mpeg,.mov,.avi,.webm,.mkv,.mp3,.wav,.ogg,.aac,.flac";
|
|
2
|
+
declare const MAX_TOTAL_FILE_SIZE: number;
|
|
3
|
+
export interface UploadResult {
|
|
4
|
+
success: boolean;
|
|
5
|
+
fileKey?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface UploadMultipleResult {
|
|
9
|
+
success: boolean;
|
|
10
|
+
fileKeys?: string[];
|
|
11
|
+
errors?: string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Upload a file to R2 via presigned URL
|
|
15
|
+
*/
|
|
16
|
+
export declare function uploadFile(file: File, formId: string, baseUrl: string): Promise<UploadResult>;
|
|
17
|
+
/**
|
|
18
|
+
* Upload multiple files to R2
|
|
19
|
+
*/
|
|
20
|
+
export declare function uploadFiles(files: File[], formId: string, baseUrl: string): Promise<UploadMultipleResult>;
|
|
21
|
+
export { ALLOWED_FILE_EXTENSIONS, MAX_TOTAL_FILE_SIZE };
|
|
22
|
+
//# sourceMappingURL=upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../src/utils/upload.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,uBAAuB,mGAAmG,CAAC;AACjI,QAAA,MAAM,mBAAmB,QAAmB,CAAC;AAE7C,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,CAAC,CA4DvB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,oBAAoB,CAAC,CAkC/B;AAED,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@formsnip/embed",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "React component for embedding FormSnip forms",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"module": "dist/index.esm.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.esm.js",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./package.json": "./package.json"
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist"
|
|
18
|
+
],
|
|
19
|
+
"type": "module",
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "rollup -c",
|
|
22
|
+
"dev": "rollup -c -w",
|
|
23
|
+
"prepare": "npm run build"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": ">=16.8.0",
|
|
27
|
+
"react-dom": ">=16.8.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@rollup/plugin-commonjs": "^28.0.1",
|
|
31
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
32
|
+
"@rollup/plugin-typescript": "^12.1.1",
|
|
33
|
+
"@types/react": "^18.3.12",
|
|
34
|
+
"@types/react-dom": "^18.3.1",
|
|
35
|
+
"rollup": "^4.24.0",
|
|
36
|
+
"rollup-plugin-dts": "^6.1.1",
|
|
37
|
+
"typescript": "^5.4.5"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"forms",
|
|
41
|
+
"form-builder",
|
|
42
|
+
"react",
|
|
43
|
+
"embed",
|
|
44
|
+
"formsnip"
|
|
45
|
+
],
|
|
46
|
+
"author": "",
|
|
47
|
+
"license": "MIT",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": ""
|
|
51
|
+
}
|
|
52
|
+
}
|