treege 3.0.0-beta.26 → 3.0.0-beta.28
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 +188 -24
- package/dist/ThemeContext-BBEqRK_Q.js +429 -0
- package/dist/{TreegeEditor-WqTXkYl3.js → TreegeEditor-Bi7GcSKl.js} +198 -197
- package/dist/TreegeRenderer-DbE0m_4e.js +1047 -0
- package/dist/editor.js +2 -2
- package/dist/main.js +50 -49
- package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +7 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +26 -15
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
- package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
- package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +81 -23
- package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/hooks/useRenderNode.d.ts +55 -0
- package/dist/renderer/index.d.ts +1 -0
- package/dist/renderer/index.native.d.ts +19 -0
- package/dist/renderer/types/renderer.d.ts +20 -4
- package/dist/renderer/utils/sanitize.native.d.ts +69 -0
- package/dist/renderer/utils/submit.d.ts +1 -1
- package/dist/renderer-native.d.ts +2 -0
- package/dist/renderer-native.js +2833 -0
- package/dist/renderer.js +48 -47
- package/dist/separator-oCo7kxCK.js +364 -0
- package/dist/shared/constants/colors.d.ts +45 -0
- package/dist/shared/context/ThemeContext.d.ts +2 -0
- package/dist/shared/context/ThemeContext.native.d.ts +22 -0
- package/dist/shared/hooks/useThemeColors.d.ts +37 -0
- package/dist/shared/locales/ar.json.d.ts +13 -5
- package/dist/shared/locales/de.json.d.ts +13 -5
- package/dist/shared/locales/en.json.d.ts +13 -5
- package/dist/shared/locales/es.json.d.ts +13 -5
- package/dist/shared/locales/fr.json.d.ts +13 -5
- package/dist/shared/locales/it.json.d.ts +13 -5
- package/dist/shared/locales/pt.json.d.ts +13 -5
- package/dist/shared/types/node.d.ts +2 -2
- package/dist/useRenderNode-BACcrUML.js +863 -0
- package/package.json +24 -1
- package/dist/ThemeContext-BIT4DHqC.js +0 -764
- package/dist/TreegeRenderer-BSR_ez96.js +0 -1812
|
@@ -120,7 +120,9 @@ export type TreegeRendererComponents = {
|
|
|
120
120
|
/**
|
|
121
121
|
* Custom group container renderer
|
|
122
122
|
*/
|
|
123
|
-
group?: (props: NodeRenderProps
|
|
123
|
+
group?: (props: NodeRenderProps & {
|
|
124
|
+
children?: ReactNode;
|
|
125
|
+
}) => ReactNode;
|
|
124
126
|
/**
|
|
125
127
|
* Custom form wrapper
|
|
126
128
|
*/
|
|
@@ -129,10 +131,20 @@ export type TreegeRendererComponents = {
|
|
|
129
131
|
onSubmit: (e: FormEvent) => void;
|
|
130
132
|
}) => ReactNode;
|
|
131
133
|
/**
|
|
132
|
-
* Custom submit button (
|
|
134
|
+
* Custom submit button (supports both web and native variants)
|
|
135
|
+
* Web variant: { label?: string; disabled?: boolean; ...otherHTMLAttributes }
|
|
136
|
+
* Native variant: { children?: ReactNode; disabled?: boolean; isSubmitting?: boolean; onPress?: () => void }
|
|
133
137
|
*/
|
|
134
138
|
submitButton?: (props: {
|
|
135
139
|
label?: string;
|
|
140
|
+
disabled?: boolean;
|
|
141
|
+
[key: string]: unknown;
|
|
142
|
+
} | {
|
|
143
|
+
children?: ReactNode;
|
|
144
|
+
disabled?: boolean;
|
|
145
|
+
isSubmitting?: boolean;
|
|
146
|
+
onPress?: () => void;
|
|
147
|
+
[key: string]: unknown;
|
|
136
148
|
}) => ReactNode;
|
|
137
149
|
/**
|
|
138
150
|
* Custom submit button wrapper (e.g., for tooltip with missing fields)
|
|
@@ -175,7 +187,11 @@ export type TreegeRendererConfig = {
|
|
|
175
187
|
/**
|
|
176
188
|
* Props for the TreegeRenderer component
|
|
177
189
|
*/
|
|
178
|
-
export
|
|
190
|
+
export interface TreegeRendererProps {
|
|
191
|
+
/**
|
|
192
|
+
* Additional class name for the renderer container
|
|
193
|
+
*/
|
|
194
|
+
className?: string;
|
|
179
195
|
/**
|
|
180
196
|
* Custom component renderers
|
|
181
197
|
*/
|
|
@@ -222,4 +238,4 @@ export type TreegeRendererProps = {
|
|
|
222
238
|
* Validation mode
|
|
223
239
|
*/
|
|
224
240
|
validationMode?: "onChange" | "onSubmit";
|
|
225
|
-
}
|
|
241
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* React Native implementation of sanitization utilities
|
|
3
|
+
* Does not use DOMPurify as it depends on browser DOM
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for sanitization
|
|
7
|
+
*/
|
|
8
|
+
interface SanitizeOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Allow only plain text (strip all HTML tags)
|
|
11
|
+
* @default true
|
|
12
|
+
*/
|
|
13
|
+
plainTextOnly?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Custom allowed tags (when plainTextOnly is false)
|
|
16
|
+
* Note: In React Native, HTML tags are always stripped
|
|
17
|
+
*/
|
|
18
|
+
allowedTags?: string[];
|
|
19
|
+
/**
|
|
20
|
+
* Custom allowed attributes (when plainTextOnly is false)
|
|
21
|
+
* Note: In React Native, attributes are not applicable
|
|
22
|
+
*/
|
|
23
|
+
allowedAttributes?: string[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Sanitizes user input to prevent XSS attacks
|
|
27
|
+
*
|
|
28
|
+
* React Native implementation that strips all HTML tags and decodes entities.
|
|
29
|
+
* Since React Native doesn't render HTML, we focus on cleaning text content.
|
|
30
|
+
*
|
|
31
|
+
* @param input - The string to sanitize
|
|
32
|
+
* @param options - Sanitization options (maintained for API compatibility)
|
|
33
|
+
* @returns Sanitized string safe for rendering
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* sanitize('<script>alert("xss")</script>Hello')
|
|
37
|
+
* // => 'Hello'
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* sanitize('<b>Bold text</b><script>alert("xss")</script>')
|
|
41
|
+
* // => 'Bold text'
|
|
42
|
+
*/
|
|
43
|
+
export declare const sanitize: (input: string | undefined | null, _options?: SanitizeOptions) => string;
|
|
44
|
+
/**
|
|
45
|
+
* Sanitizes data from HTTP responses
|
|
46
|
+
*
|
|
47
|
+
* This function recursively sanitizes all string values in an object or array.
|
|
48
|
+
* Useful for cleaning data received from external APIs before displaying it.
|
|
49
|
+
*
|
|
50
|
+
* Protection against:
|
|
51
|
+
* - Circular references: Uses WeakSet to detect and handle circular objects
|
|
52
|
+
* - Deep nesting attacks: Limits recursion depth to prevent DoS
|
|
53
|
+
* - XSS attacks: Sanitizes all string values
|
|
54
|
+
*
|
|
55
|
+
* @param data - The data to sanitize (can be any type)
|
|
56
|
+
* @param options - Sanitization options
|
|
57
|
+
* @param depth - Current recursion depth (internal use)
|
|
58
|
+
* @param seen - WeakSet to track visited objects (internal use)
|
|
59
|
+
* @returns Sanitized data with same structure
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* sanitizeHttpResponse({
|
|
63
|
+
* name: 'John <script>xss</script>',
|
|
64
|
+
* nested: { title: 'Hello <b>world</b>' }
|
|
65
|
+
* })
|
|
66
|
+
* // => { name: 'John ', nested: { title: 'Hello world' } }
|
|
67
|
+
*/
|
|
68
|
+
export declare const sanitizeHttpResponse: (data: unknown, options?: SanitizeOptions, depth?: number, seen?: WeakSet<object>) => unknown;
|
|
69
|
+
export {};
|
|
@@ -33,7 +33,7 @@ export interface SubmitResult {
|
|
|
33
33
|
*
|
|
34
34
|
* @param config - Submit configuration from the submit button node
|
|
35
35
|
* @param formValues - Current form values
|
|
36
|
-
* @param inputNodes - All input nodes (required when
|
|
36
|
+
* @param inputNodes - All input nodes (required when sendAllFormValues is true)
|
|
37
37
|
* @returns Promise with submission result
|
|
38
38
|
*/
|
|
39
39
|
export declare const submitFormData: (config: SubmitConfig, formValues: FormValues, inputNodes: Node<InputNodeData>[]) => Promise<SubmitResult>;
|