treege 3.0.0-beta.7 → 3.0.0-beta.71

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 (209) hide show
  1. package/LICENSE +18 -12
  2. package/README.md +476 -81
  3. package/dist/DefaultSubmitButton-C_141kVj.js +1802 -0
  4. package/dist/ThemeContext-BGeTYtnw.js +948 -0
  5. package/dist/editor/components/input/ComboboxWithCreate.d.ts +2 -1
  6. package/dist/editor/components/styles/EditorStyles.d.ts +2 -0
  7. package/dist/editor/constants/defaultNode.d.ts +1 -1
  8. package/dist/editor/constants/edgeTypes.d.ts +3 -2
  9. package/dist/editor/constants/inputTypeIcons.d.ts +3 -0
  10. package/dist/editor/constants/nodeSpacing.d.ts +25 -0
  11. package/dist/editor/constants/nodeTypes.d.ts +4 -5
  12. package/dist/editor/context/OpenApiContext.d.ts +79 -0
  13. package/dist/editor/context/TreegeEditorRuntimeProvider.d.ts +78 -0
  14. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
  15. package/dist/editor/features/TreegeEditor/controls/MiniMapControl.d.ts +6 -0
  16. package/dist/editor/features/TreegeEditor/dialogs/AuthorizeDialog.d.ts +20 -0
  17. package/dist/editor/features/TreegeEditor/dialogs/ChangeNodeTypeDialog.d.ts +2 -0
  18. package/dist/editor/features/TreegeEditor/dialogs/DeleteNodeDialog.d.ts +2 -0
  19. package/dist/editor/features/TreegeEditor/dialogs/HeadersDialog.d.ts +19 -0
  20. package/dist/editor/features/TreegeEditor/dialogs/OpenApiDialog.d.ts +6 -0
  21. package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +2 -2
  22. package/dist/editor/features/TreegeEditor/edges/DefaultEdge.d.ts +3 -0
  23. package/dist/editor/features/TreegeEditor/forms/JsonTemplateEditor.d.ts +13 -0
  24. package/dist/editor/features/TreegeEditor/forms/OptionsMappingFields.d.ts +34 -0
  25. package/dist/editor/features/TreegeEditor/forms/OptionsSourceForm.d.ts +7 -0
  26. package/dist/editor/features/TreegeEditor/forms/SensitiveHeaderWarning.d.ts +13 -0
  27. package/dist/editor/features/TreegeEditor/forms/SubmitConfigForm.d.ts +7 -0
  28. package/dist/editor/features/TreegeEditor/inputs/ApiUrlCombobox.d.ts +20 -0
  29. package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +2 -1
  30. package/dist/editor/features/TreegeEditor/inputs/OptionImageField.d.ts +6 -0
  31. package/dist/editor/features/TreegeEditor/inputs/SelectNodeGroup.d.ts +22 -1
  32. package/dist/editor/features/TreegeEditor/layout/AutoLayout.d.ts +15 -0
  33. package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +5 -0
  34. package/dist/editor/features/TreegeEditor/nodes/components/BottomHandleDropdown.d.ts +25 -0
  35. package/dist/editor/features/TreegeEditor/nodes/components/NodeGroupBadge.d.ts +6 -0
  36. package/dist/editor/features/TreegeEditor/nodes/components/NodeImage.d.ts +5 -0
  37. package/dist/editor/features/TreegeEditor/nodes/components/NodeImageButton.d.ts +6 -0
  38. package/dist/editor/features/TreegeEditor/nodes/components/NodeInputPreview.d.ts +12 -0
  39. package/dist/editor/features/TreegeEditor/nodes/components/NodeLabelInput.d.ts +10 -0
  40. package/dist/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.d.ts +6 -0
  41. package/dist/editor/features/TreegeEditor/nodes/components/NodeRequiredButton.d.ts +6 -0
  42. package/dist/editor/features/TreegeEditor/nodes/components/NodeStackOrderButtons.d.ts +6 -0
  43. package/dist/editor/features/TreegeEditor/nodes/components/NodeTypeBadge.d.ts +7 -0
  44. package/dist/editor/features/TreegeEditor/nodes/components/NodeTypePickerMenuContent.d.ts +12 -0
  45. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +4 -2
  46. package/dist/editor/features/TreegeEditor/panel/AIGeneratorDialog.d.ts +16 -0
  47. package/dist/editor/features/TreegeEditor/panel/ActionsPanel.d.ts +7 -2
  48. package/dist/editor/features/TreegeEditor/panel/MultiSelectionPanel.d.ts +7 -0
  49. package/dist/editor/hooks/useAvailableParentFields.d.ts +13 -0
  50. package/dist/editor/hooks/useFlowActions.d.ts +6 -2
  51. package/dist/editor/hooks/useFlowConnections.d.ts +14 -0
  52. package/dist/editor/hooks/useHistoryStore.d.ts +26 -0
  53. package/dist/editor/hooks/useIsStackedEdge.d.ts +8 -0
  54. package/dist/editor/hooks/useKeyValueRows.d.ts +15 -0
  55. package/dist/editor/hooks/useNodesSelection.d.ts +5 -5
  56. package/dist/editor/hooks/useStackPosition.d.ts +14 -0
  57. package/dist/editor/hooks/useTranslate.d.ts +1 -1
  58. package/dist/editor/hooks/useUndoRedo.d.ts +31 -0
  59. package/dist/editor/types/ai.d.ts +65 -0
  60. package/dist/editor/types/editor.d.ts +97 -10
  61. package/dist/editor/types/openapi.d.ts +106 -0
  62. package/dist/editor/utils/aiFlowGenerator.d.ts +5 -0
  63. package/dist/editor/utils/cleanNodeConfig.d.ts +5 -0
  64. package/dist/editor/utils/dagreLayout.d.ts +8 -0
  65. package/dist/editor/utils/edge.d.ts +50 -0
  66. package/dist/editor/utils/groupColor.d.ts +14 -0
  67. package/dist/editor/utils/image.d.ts +7 -0
  68. package/dist/editor/utils/inputTypeIcon.d.ts +6 -0
  69. package/dist/editor/utils/jsonBindTarget.d.ts +15 -0
  70. package/dist/editor/utils/openApiPayload.d.ts +12 -0
  71. package/dist/editor/utils/openapi.d.ts +35 -0
  72. package/dist/editor/utils/sensitiveHeaders.d.ts +20 -0
  73. package/dist/editor/utils/stackPositionIndex.d.ts +9 -0
  74. package/dist/editor-CkCA6_WX.js +6407 -0
  75. package/dist/editor.js +3 -7
  76. package/dist/main.js +6 -52
  77. package/dist/renderer/context/TreegeRenderRuntimeProvider.d.ts +135 -0
  78. package/dist/renderer/context/TreegeRendererProvider.d.ts +15 -0
  79. package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
  80. package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
  81. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputWrapper.d.ts +9 -0
  82. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +20 -15
  83. package/dist/renderer/features/TreegeRenderer/native/components/DefaultLoadingSkeleton.d.ts +8 -0
  84. package/dist/renderer/features/TreegeRenderer/native/components/DefaultStep.d.ts +3 -0
  85. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
  86. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
  87. package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
  88. package/dist/renderer/features/TreegeRenderer/native/components/DependencyHint.d.ts +15 -0
  89. package/dist/renderer/features/TreegeRenderer/native/components/OptionItemContent.d.ts +17 -0
  90. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
  91. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
  92. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
  93. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
  94. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
  95. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
  96. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
  97. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
  98. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
  99. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
  100. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
  101. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
  102. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSubmitInput.d.ts +11 -0
  103. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
  104. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
  105. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
  106. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
  107. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
  108. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +97 -24
  109. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
  110. package/dist/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.d.ts +3 -2
  111. package/dist/renderer/features/TreegeRenderer/web/components/DefaultInputWrapper.d.ts +9 -0
  112. package/dist/renderer/features/TreegeRenderer/web/components/DefaultLoadingSkeleton.d.ts +7 -0
  113. package/dist/renderer/features/TreegeRenderer/web/components/DefaultStep.d.ts +3 -0
  114. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +5 -1
  115. package/dist/renderer/features/TreegeRenderer/web/components/DependencyHint.d.ts +22 -0
  116. package/dist/renderer/features/TreegeRenderer/web/components/OptionItemContent.d.ts +17 -0
  117. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +1 -1
  118. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +1 -1
  119. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +1 -1
  120. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +1 -1
  121. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +1 -1
  122. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +1 -1
  123. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +1 -1
  124. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +1 -1
  125. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +1 -1
  126. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +1 -1
  127. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +1 -1
  128. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +1 -1
  129. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +11 -0
  130. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +1 -1
  131. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +1 -1
  132. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +1 -1
  133. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +1 -1
  134. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +1 -1
  135. package/dist/renderer/features/TreegeRenderer/web/components/styles/RendererStyles.d.ts +2 -0
  136. package/dist/renderer/hooks/useInputOptions.d.ts +28 -0
  137. package/dist/renderer/hooks/useRenderNode.d.ts +61 -0
  138. package/dist/renderer/hooks/useSubmitHandler.d.ts +36 -0
  139. package/dist/renderer/hooks/useTranslate.d.ts +7 -5
  140. package/dist/renderer/index.d.ts +4 -2
  141. package/dist/renderer/index.native.d.ts +19 -0
  142. package/dist/renderer/types/renderer.d.ts +279 -42
  143. package/dist/renderer/utils/flow.d.ts +1 -18
  144. package/dist/renderer/utils/form.d.ts +54 -2
  145. package/dist/renderer/utils/http.d.ts +161 -0
  146. package/dist/renderer/utils/jsonTemplate.d.ts +30 -0
  147. package/dist/renderer/utils/node.d.ts +29 -1
  148. package/dist/renderer/utils/sanitize.d.ts +85 -0
  149. package/dist/renderer/utils/sanitize.native.d.ts +69 -0
  150. package/dist/renderer/utils/step.d.ts +27 -0
  151. package/dist/renderer/utils/submit.d.ts +49 -0
  152. package/dist/renderer/utils/templateDependencies.d.ts +17 -0
  153. package/dist/renderer-D5xQw7hp.js +255 -0
  154. package/dist/renderer-native.d.ts +2 -0
  155. package/dist/renderer-native.js +3826 -0
  156. package/dist/renderer.js +5 -45
  157. package/dist/shared/components/ui/badge.d.ts +2 -2
  158. package/dist/shared/components/ui/button.d.ts +3 -3
  159. package/dist/shared/components/ui/collapsible.d.ts +1 -1
  160. package/dist/shared/components/ui/command.d.ts +1 -1
  161. package/dist/shared/components/ui/dropdown-menu.d.ts +1 -1
  162. package/dist/shared/components/ui/field.d.ts +24 -0
  163. package/dist/shared/components/ui/form.d.ts +1 -1
  164. package/dist/shared/components/ui/item.d.ts +23 -0
  165. package/dist/shared/components/ui/popover.d.ts +10 -2
  166. package/dist/shared/components/ui/select.d.ts +3 -1
  167. package/dist/shared/components/ui/sheet.d.ts +1 -1
  168. package/dist/shared/components/ui/skeleton.d.ts +3 -0
  169. package/dist/shared/components/ui/toggle-group.d.ts +7 -0
  170. package/dist/shared/components/ui/toggle.d.ts +9 -0
  171. package/dist/shared/components/ui/tooltip.d.ts +1 -1
  172. package/dist/shared/constants/colors.d.ts +45 -0
  173. package/dist/shared/constants/inputType.d.ts +6 -0
  174. package/dist/shared/constants/node.d.ts +0 -1
  175. package/dist/shared/context/PortalContainerContext.d.ts +5 -0
  176. package/dist/shared/context/ThemeContext.d.ts +2 -0
  177. package/dist/shared/context/ThemeContext.native.d.ts +22 -0
  178. package/dist/shared/hooks/useMediaQuery.d.ts +12 -0
  179. package/dist/shared/hooks/useThemeColors.d.ts +37 -0
  180. package/dist/shared/locales/ar.json.d.ts +253 -19
  181. package/dist/shared/locales/de.json.d.ts +254 -20
  182. package/dist/shared/locales/en.json.d.ts +255 -21
  183. package/dist/shared/locales/es.json.d.ts +254 -20
  184. package/dist/shared/locales/fr.json.d.ts +254 -20
  185. package/dist/shared/locales/it.json.d.ts +254 -20
  186. package/dist/shared/locales/pt.json.d.ts +254 -20
  187. package/dist/shared/types/edge.d.ts +6 -0
  188. package/dist/shared/types/node.d.ts +146 -18
  189. package/dist/shared/utils/httpRecord.d.ts +20 -0
  190. package/dist/shared/utils/inputTypeGuards.d.ts +7 -0
  191. package/dist/shared/utils/nodeTypeGuards.d.ts +1 -6
  192. package/dist/useRenderNode-eqCek6JX.js +536 -0
  193. package/package.json +54 -22
  194. package/dist/ThemeContext-BIvs8Kw-.js +0 -758
  195. package/dist/TreegeEditor-Lv5Tn9_F.js +0 -2152
  196. package/dist/TreegeRenderer-D3EvsEfJ.js +0 -1413
  197. package/dist/editor/context/TreegeEditorContext.d.ts +0 -12
  198. package/dist/editor/features/TreegeEditor/forms/FlowNodeForm.d.ts +0 -2
  199. package/dist/editor/features/TreegeEditor/inputs/SelectInputType.d.ts +0 -7
  200. package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +0 -6
  201. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +0 -6
  202. package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +0 -6
  203. package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +0 -6
  204. package/dist/editor/hooks/useEdgesSelection.d.ts +0 -11
  205. package/dist/renderer/context/TreegeConfigContext.d.ts +0 -39
  206. package/dist/renderer/context/TreegeRendererContext.d.ts +0 -25
  207. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +0 -7
  208. package/dist/renderer/features/TreegeRenderer/web/components/DefaultGroup.d.ts +0 -6
  209. /package/dist/editor/components/{data-display/logo.d.ts → branding/Logo.d.ts} +0 -0
@@ -1,43 +1,111 @@
1
1
  import { Node } from '@xyflow/react';
2
- import { FormValues } from '../../types/renderer';
3
- import { Flow, TreegeNodeData } from '../../../shared/types/node';
2
+ import { FormValues, TreegeRendererProps } from '../../types/renderer';
3
+ import { GroupNodeData, TreegeNodeData } from '../../../shared/types/node';
4
4
  /**
5
- * PURE STATE LOGIC HOOK
5
+ * Main TreegeRenderer hook
6
6
  *
7
- * This hook manages the internal form state and visibility logic.
8
- * It contains NO side effects (no useEffect).
9
- * All state is keyed by nodeId for uniqueness.
7
+ * Manages all form state, configuration, validation, and submission logic.
8
+ * Can be used directly in custom components for headless mode.
10
9
  *
11
10
  * Responsibilities:
11
+ * - Config merging (props + global provider)
12
12
  * - Form values state (keyed by nodeId)
13
13
  * - Errors state
14
14
  * - Node visibility calculation (progressive rendering)
15
- * - Form validation (built-in: required, pattern)
16
- * - Submit button state (combines end-of-path detection + form validity)
15
+ * - Form validation (built-in: required, pattern + custom validation)
16
+ * - Submit handling (with HTTP integration support)
17
+ * - Side effects (onChange callbacks, validation modes, reference field sync)
17
18
  *
18
- * NOT responsible for:
19
- * - Export/conversion to external format (done in component)
20
- * - Side effects like onChange callbacks (done in component)
21
- * - Custom validation (passed to component)
19
+ * @param props - Configuration props (flow, initialValues, callbacks, etc.)
20
+ * @returns Complete form state and control methods
22
21
  */
23
- /**
24
- * Custom hook for TreegeRenderer - Pure state logic only
25
- *
26
- * @param flows - Flow or array of flows (can be null/undefined)
27
- * @param initialValues - Initial form values (will be merged with node defaults)
28
- * @param language - Preferred language for translations (defaults to 'en')
29
- * @returns Pure state and computed values (no side effects)
30
- */
31
- export declare const useTreegeRenderer: (flows: Flow | Flow[] | null | undefined, initialValues?: FormValues, language?: string) => {
22
+ export declare const useTreegeRenderer: ({ baseUrl, components, flow, googleApiKey, headers, language, onChange, onSubmit, showPoweredBy, theme, validate, validationMode, initialValues, }: Pick<TreegeRendererProps, "baseUrl" | "components" | "flow" | "googleApiKey" | "headers" | "initialValues" | "language" | "onChange" | "onSubmit" | "showPoweredBy" | "theme" | "validate" | "validationMode">) => {
23
+ canContinueStep: boolean;
32
24
  canSubmit: boolean;
25
+ clearSubmitMessage: () => void;
26
+ config: {
27
+ baseUrl: string | undefined;
28
+ components: {
29
+ form: ((props: {
30
+ children: import('react').ReactNode;
31
+ id?: string;
32
+ onSubmit: (e: import('react').FormEvent<HTMLFormElement>) => void;
33
+ }) => import('react').ReactNode) | undefined;
34
+ inputs: {
35
+ number?: import('../../types/renderer').InputRenderer<"number"> | undefined;
36
+ checkbox?: import('../../types/renderer').InputRenderer<"checkbox"> | undefined;
37
+ radio?: import('../../types/renderer').InputRenderer<"radio"> | undefined;
38
+ switch?: import('../../types/renderer').InputRenderer<"switch"> | undefined;
39
+ address?: import('../../types/renderer').InputRenderer<"address"> | undefined;
40
+ autocomplete?: import('../../types/renderer').InputRenderer<"autocomplete"> | undefined;
41
+ date?: import('../../types/renderer').InputRenderer<"date"> | undefined;
42
+ daterange?: import('../../types/renderer').InputRenderer<"daterange"> | undefined;
43
+ file?: import('../../types/renderer').InputRenderer<"file"> | undefined;
44
+ hidden?: import('../../types/renderer').InputRenderer<"hidden"> | undefined;
45
+ http?: import('../../types/renderer').InputRenderer<"http"> | undefined;
46
+ password?: import('../../types/renderer').InputRenderer<"password"> | undefined;
47
+ select?: import('../../types/renderer').InputRenderer<"select"> | undefined;
48
+ submit?: import('../../types/renderer').InputRenderer<"submit"> | undefined;
49
+ text?: import('../../types/renderer').InputRenderer<"text"> | undefined;
50
+ textarea?: import('../../types/renderer').InputRenderer<"textarea"> | undefined;
51
+ time?: import('../../types/renderer').InputRenderer<"time"> | undefined;
52
+ timerange?: import('../../types/renderer').InputRenderer<"timerange"> | undefined;
53
+ };
54
+ loadingSkeleton: (() => import('react').ReactNode) | undefined;
55
+ step: ((props: import('../../types/renderer').StepRenderProps) => import('react').ReactNode) | undefined;
56
+ submitButton: ((props: {
57
+ label?: string;
58
+ disabled?: boolean;
59
+ isSubmitting?: boolean;
60
+ [key: string]: unknown;
61
+ } | {
62
+ children?: import('react').ReactNode;
63
+ disabled?: boolean;
64
+ isSubmitting?: boolean;
65
+ onPress?: () => void;
66
+ [key: string]: unknown;
67
+ }) => import('react').ReactNode) | undefined;
68
+ submitButtonWrapper: ((props: {
69
+ children: import('react').ReactNode;
70
+ missingFields?: string[];
71
+ }) => import('react').ReactNode) | undefined;
72
+ ui: {
73
+ divider?: ((props: import('../../types/renderer').NodeRenderProps) => import('react').ReactNode) | undefined;
74
+ title?: ((props: import('../../types/renderer').NodeRenderProps) => import('react').ReactNode) | undefined;
75
+ };
76
+ };
77
+ googleApiKey: string | undefined;
78
+ headers: import('../../../shared/types/node').HttpHeaders;
79
+ language: string;
80
+ showPoweredBy: boolean;
81
+ theme: "dark" | "light";
82
+ validationMode: "onChange" | "onSubmit";
83
+ };
84
+ currentStep: import('../../utils/step').FlowStep;
85
+ currentStepGroupNode: Node<GroupNodeData> | undefined;
86
+ currentStepIndex: number;
87
+ firstErrorFieldId: string | undefined;
33
88
  formErrors: Record<string, string>;
34
89
  formValues: FormValues;
90
+ goToNextStep: () => void;
91
+ goToPreviousStep: () => void;
92
+ handleSubmit: () => Promise<boolean>;
93
+ hasSubmitInput: boolean;
35
94
  inputNodes: Node<import('../../../shared/types/node').InputNodeData>[];
36
- mergedFlow: Flow;
95
+ isFirstStep: boolean;
96
+ isLastStep: boolean;
97
+ isSubmitting: boolean;
37
98
  missingRequiredFields: string[];
99
+ prevFormValuesRef: import('react').RefObject<FormValues>;
100
+ setFieldErrors: import('react').Dispatch<import('react').SetStateAction<Record<string, string>>>;
38
101
  setFieldValue: (fieldName: string, value: unknown) => void;
39
- setFormErrors: import('react').Dispatch<import('react').SetStateAction<Record<string, string>>>;
40
- t: (key?: import('../../../main').Translatable | import('../../../main').TranslationKey | string) => string;
102
+ setMultipleFieldValues: (updates: FormValues) => void;
103
+ steps: import('../../utils/step').FlowStep[];
104
+ submitMessage: {
105
+ type: "success" | "error";
106
+ message: string;
107
+ } | null;
108
+ t: (key?: import('../../../main').Translatable | string) => string;
41
109
  validateForm: (customValidate?: (values: FormValues, visibleNodesList: Node<TreegeNodeData>[]) => Record<string, string>) => {
42
110
  errors: {
43
111
  [x: string]: string;
@@ -48,3 +116,8 @@ export declare const useTreegeRenderer: (flows: Flow | Flow[] | null | undefined
48
116
  visibleNodes: Node<TreegeNodeData>[];
49
117
  visibleRootNodes: Node<TreegeNodeData>[];
50
118
  };
119
+ /**
120
+ * Type for the return value of useTreegeRenderer
121
+ * Useful for TypeScript users building custom components
122
+ */
123
+ export type UseTreegeRendererReturn = ReturnType<typeof useTreegeRenderer>;
@@ -1,3 +1,3 @@
1
1
  import { TreegeRendererProps } from '../../../types/renderer';
2
- declare const TreegeRenderer: ({ components, flows, googleApiKey, initialValues, language, onChange, onSubmit, theme, validate, validationMode, }: TreegeRendererProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const TreegeRenderer: ({ baseUrl, components, className, flow, formId, googleApiKey, headers, language, onBack, onChange, onSubmit, showPoweredBy, theme, validate, validationMode, initialValues, isLoading, isSubmitting: isSubmittingProp, }: TreegeRendererProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default TreegeRenderer;
@@ -1,6 +1,7 @@
1
1
  import { FormEvent, ReactNode } from 'react';
2
- declare const DefaultFormWrapper: ({ children, onSubmit }: {
2
+ declare const DefaultFormWrapper: ({ children, id, onSubmit, }: {
3
3
  children: ReactNode;
4
- onSubmit: (e: FormEvent) => void;
4
+ id?: string;
5
+ onSubmit: (e: FormEvent<HTMLFormElement>) => void;
5
6
  }) => import("react/jsx-runtime").JSX.Element;
6
7
  export default DefaultFormWrapper;
@@ -0,0 +1,9 @@
1
+ import { Node } from '@xyflow/react';
2
+ import { ReactNode } from 'react';
3
+ import { InputNodeData } from '../../../../../shared/types/node';
4
+ interface DefaultInputWrapperProps {
5
+ node: Node<InputNodeData>;
6
+ children: ReactNode;
7
+ }
8
+ export declare const DefaultInputWrapper: ({ node, children }: DefaultInputWrapperProps) => import("react/jsx-runtime").JSX.Element;
9
+ export default DefaultInputWrapper;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Default loading skeleton displayed by `TreegeRenderer` while `isLoading` is
3
+ * true. Mimics the visual structure of a step (title, a few fields and the
4
+ * navigation buttons) so the layout doesn't shift once the real form renders.
5
+ */
6
+ declare const DefaultLoadingSkeleton: () => import("react/jsx-runtime").JSX.Element;
7
+ export default DefaultLoadingSkeleton;
@@ -0,0 +1,3 @@
1
+ import { StepRenderProps } from '../../../../types/renderer';
2
+ declare const DefaultStep: ({ step, label, children, canGoBack, isLastStep, canContinue, isSubmitting, onBack, onContinue, missingFields, }: StepRenderProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default DefaultStep;
@@ -1,9 +1,13 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
2
  export interface SubmitButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
3
3
  label?: string;
4
+ /**
5
+ * When true, shows a spinner inside the button (and keeps it disabled).
6
+ */
7
+ isSubmitting?: boolean;
4
8
  }
5
9
  /**
6
10
  * Default submit button
7
11
  */
8
- declare const DefaultSubmitButton: ({ label, ...props }: SubmitButtonProps) => import("react/jsx-runtime").JSX.Element;
12
+ declare const DefaultSubmitButton: import('react').ForwardRefExoticComponent<SubmitButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
9
13
  export default DefaultSubmitButton;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { MissingDependency } from '../../../../types/renderer';
3
+ interface MissingProps {
4
+ /** Unfilled fields the input depends on (from `extra.missingDependencies`). */
5
+ missing: MissingDependency[];
6
+ }
7
+ /**
8
+ * Wraps a disabled input control with a tooltip listing the fields the user
9
+ * must fill before the input's dynamic options can load. Renders children
10
+ * untouched when there are no missing dependencies, so it's safe to wrap any
11
+ * trigger-based dynamic input (select, autocomplete, http) unconditionally.
12
+ */
13
+ declare const DependencyHint: ({ missing, children }: MissingProps & {
14
+ children: ReactNode;
15
+ }) => import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * Inline variant for inputs that have no single trigger to hover (radio,
18
+ * checkbox): renders the same hint as always-visible muted text. Renders
19
+ * nothing when there are no missing dependencies.
20
+ */
21
+ export declare const DependencyHintMessage: ({ missing }: MissingProps) => import("react/jsx-runtime").JSX.Element | null;
22
+ export default DependencyHint;
@@ -0,0 +1,17 @@
1
+ interface OptionItemContentProps {
2
+ /** Already-translated option label. */
3
+ label: string;
4
+ /** Already-translated option description (optional). */
5
+ description?: string;
6
+ /** Option image — base64 data URL or remote URL (optional). */
7
+ image?: string;
8
+ }
9
+ /**
10
+ * Shared content for an option row in a dropdown/combobox/select, built from the
11
+ * shadcn `Item` primitives: an optional leading image, the label, and an
12
+ * optional muted description underneath. Rendered as a fragment — the enclosing
13
+ * `CommandItem`/`SelectItem` already provides the flex row. The selection
14
+ * indicator (check) is left to the caller so it can sit outside this block.
15
+ */
16
+ declare const OptionItemContent: ({ label, description, image }: OptionItemContentProps) => import("react/jsx-runtime").JSX.Element;
17
+ export default OptionItemContent;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultAddressInput: ({ node, value, setValue, error }: InputRenderProps<"address">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultAddressInput: ({ field, extra }: InputRenderProps<"address">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultAddressInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultAutocompleteInput: ({ node, value, setValue, error }: InputRenderProps<"autocomplete">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultAutocompleteInput: ({ field, extra }: InputRenderProps<"autocomplete">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultAutocompleteInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultCheckboxInput: ({ node, value, setValue, error }: InputRenderProps<"checkbox">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultCheckboxInput: ({ field, extra }: InputRenderProps<"checkbox">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultCheckboxInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultDateInput: ({ node, value, setValue, error }: InputRenderProps<"date">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultDateInput: ({ field, extra }: InputRenderProps<"date">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultDateInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultDateRangeInput: ({ node, value, setValue, error }: InputRenderProps<"daterange">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultDateRangeInput: ({ field, extra }: InputRenderProps<"daterange">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultDateRangeInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultFileInput: ({ node, setValue, error }: InputRenderProps<"file">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultFileInput: ({ field, extra }: InputRenderProps<"file">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultFileInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultHiddenInput: ({ node, value }: InputRenderProps<"hidden">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultHiddenInput: ({ field }: InputRenderProps<"hidden">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultHiddenInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultHttpInput: ({ node, value, setValue, error }: InputRenderProps<"http">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultHttpInput: ({ field, extra }: InputRenderProps<"http">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultHttpInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultNumberInput: ({ node, value, setValue, error }: InputRenderProps<"number">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultNumberInput: ({ field, extra }: InputRenderProps<"number">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultNumberInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultPasswordInput: ({ node, value, setValue, error }: InputRenderProps<"password">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultPasswordInput: ({ field, extra }: InputRenderProps<"password">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultPasswordInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultRadioInput: ({ node, value, setValue, error }: InputRenderProps<"radio">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultRadioInput: ({ field, extra }: InputRenderProps<"radio">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultRadioInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultSelectInput: ({ node, value, setValue, error }: InputRenderProps<"select">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultSelectInput: ({ field, extra }: InputRenderProps<"select">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultSelectInput;
@@ -0,0 +1,11 @@
1
+ import { InputRenderProps } from '../../../../../types/renderer';
2
+ /**
3
+ * The `submit` input node is declarative only: it marks where the flow submits
4
+ * and carries the optional custom label / `submitConfig`. The actual submit
5
+ * button is rendered once by the step (in its action row, next to Back) — see
6
+ * `DefaultStep` — so the node itself renders nothing. This guarantees a single,
7
+ * consistently-placed button whether submission comes from an explicit submit
8
+ * node, the default "Submit", or a "Continue" step.
9
+ */
10
+ declare const DefaultSubmitInput: (_props: InputRenderProps<"submit">) => null;
11
+ export default DefaultSubmitInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultSwitchInput: ({ node, value, setValue, error }: InputRenderProps<"switch">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultSwitchInput: ({ field, extra }: InputRenderProps<"switch">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultSwitchInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultTextAreaInput: ({ node, value, setValue, error }: InputRenderProps<"textarea">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultTextAreaInput: ({ field, extra }: InputRenderProps<"textarea">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultTextAreaInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultTextInput: ({ node, value, setValue, error }: InputRenderProps<"text">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultTextInput: ({ field, extra }: InputRenderProps<"text">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultTextInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultTimeInput: ({ node, value, setValue, error }: InputRenderProps<"time">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultTimeInput: ({ field, extra }: InputRenderProps<"time">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultTimeInput;
@@ -1,3 +1,3 @@
1
1
  import { InputRenderProps } from '../../../../../types/renderer';
2
- declare const DefaultTimeRangeInput: ({ node, value, setValue, error }: InputRenderProps<"timerange">) => import("react/jsx-runtime").JSX.Element;
2
+ declare const DefaultTimeRangeInput: ({ field, extra }: InputRenderProps<"timerange">) => import("react/jsx-runtime").JSX.Element;
3
3
  export default DefaultTimeRangeInput;
@@ -0,0 +1,2 @@
1
+ declare const RendererStyles: () => import("react/jsx-runtime").JSX.Element;
2
+ export default RendererStyles;
@@ -0,0 +1,28 @@
1
+ import { Node } from '@xyflow/react';
2
+ import { InputNodeData, InputOption } from '../../shared/types/node';
3
+ interface UseInputOptionsResult {
4
+ /**
5
+ * Resolved options for the input. When the node has an `optionsSource`,
6
+ * these are the fetched options (or the static fallback while loading or
7
+ * if the fetch errors). Otherwise the static `options` from the node data.
8
+ */
9
+ options: InputOption[];
10
+ /** True while a remote fetch is in flight. */
11
+ isLoading: boolean;
12
+ /** Error message if the latest remote fetch failed; otherwise `null`. */
13
+ error: string | null;
14
+ }
15
+ /**
16
+ * Resolves the options for an option-based input (radio, checkbox, select,
17
+ * autocomplete). If the node declares an `optionsSource`, options are fetched
18
+ * from that API at runtime, with `{{templateVar}}` substitution from form
19
+ * values and merging of global + field-level headers. While loading, before
20
+ * the first successful fetch, or on error, falls back to the static
21
+ * `options` array (if any).
22
+ *
23
+ * The fetch plan is computed once and serialized to JSON. The fetch effect
24
+ * keys off this string: changes that don't affect the actual request (e.g.
25
+ * an unrelated form field) produce the same JSON and don't re-trigger.
26
+ */
27
+ export declare const useInputOptions: (node: Node<InputNodeData>) => UseInputOptionsResult;
28
+ export {};
@@ -0,0 +1,61 @@
1
+ import { Node } from '@xyflow/react';
2
+ import { ComponentType, ReactNode } from 'react';
3
+ import { FormValues, InputRenderers, TreegeRendererComponents } from '../types/renderer';
4
+ import { InputNodeData, TreegeNodeData } from '../../shared/types/node';
5
+ type AnyComponent = ComponentType<any>;
6
+ type UseRenderNodeParams = {
7
+ config: {
8
+ components: TreegeRendererComponents;
9
+ language: string;
10
+ };
11
+ DefaultFormWrapper: AnyComponent;
12
+ DefaultInputWrapper: ComponentType<{
13
+ node: Node<InputNodeData>;
14
+ children: ReactNode;
15
+ }>;
16
+ DefaultSubmitButton: AnyComponent;
17
+ DefaultSubmitButtonWrapper?: AnyComponent;
18
+ defaultInputRenderers: InputRenderers;
19
+ defaultUI: Record<string, AnyComponent>;
20
+ formErrors: Record<string, string>;
21
+ formValues: FormValues;
22
+ inputNodes: Node<InputNodeData>[];
23
+ isSubmitting?: boolean;
24
+ missingRequiredFields: string[];
25
+ setFieldValue: (fieldId: string, value: unknown) => void;
26
+ };
27
+ /**
28
+ * Hook that returns rendering utilities for TreegeRenderer
29
+ * Shared between web and native TreegeRenderer
30
+ *
31
+ * Returns:
32
+ * - renderNode: Function to render individual nodes
33
+ * - FormWrapper: Form wrapper component with fallback
34
+ * - SubmitButton: Submit button component with fallback
35
+ * - SubmitButtonWrapper: Submit button wrapper component with fallback (web only, undefined for native)
36
+ */
37
+ export declare const useRenderNode: ({ DefaultFormWrapper, DefaultInputWrapper, DefaultSubmitButton, DefaultSubmitButtonWrapper, config, defaultInputRenderers, defaultUI, formErrors, formValues, inputNodes, isSubmitting, missingRequiredFields, setFieldValue, }: UseRenderNodeParams) => {
38
+ FormWrapper: ((props: {
39
+ children: ReactNode;
40
+ id?: string;
41
+ onSubmit: (e: import('react').FormEvent<HTMLFormElement>) => void;
42
+ }) => ReactNode) | AnyComponent;
43
+ renderNode: (node: Node<TreegeNodeData>) => ReactNode;
44
+ SubmitButton: ((props: {
45
+ label?: string;
46
+ disabled?: boolean;
47
+ isSubmitting?: boolean;
48
+ [key: string]: unknown;
49
+ } | {
50
+ children?: ReactNode;
51
+ disabled?: boolean;
52
+ isSubmitting?: boolean;
53
+ onPress?: () => void;
54
+ [key: string]: unknown;
55
+ }) => ReactNode) | AnyComponent;
56
+ SubmitButtonWrapper: ((props: {
57
+ children: ReactNode;
58
+ missingFields?: string[];
59
+ }) => ReactNode) | AnyComponent;
60
+ };
61
+ export {};
@@ -0,0 +1,36 @@
1
+ import { Node } from '@xyflow/react';
2
+ import { FormValues } from '../types/renderer';
3
+ import { SubmitResult } from '../utils/submit';
4
+ import { HttpHeaders, InputNodeData, TreegeNodeData } from '../../shared/types/node';
5
+ /**
6
+ * Hook for handling form submission with submit button configuration
7
+ *
8
+ * This hook provides:
9
+ * - Submit button node detection
10
+ * - HTTP submission handling
11
+ * - Loading state management
12
+ * - Success/error message handling
13
+ * - Redirect handling
14
+ *
15
+ * @param visibleNodes - Currently visible nodes in the form
16
+ * @param formValues - Current form values
17
+ * @param language - Current language for translations
18
+ * @param inputNodes - All input nodes for form data conversion
19
+ * @param headers
20
+ * @param baseUrl - Base URL prepended to a relative submit url
21
+ * @returns Submit handler state and functions
22
+ */
23
+ export declare const useSubmitHandler: (visibleNodes: Node<TreegeNodeData>[], formValues: FormValues, language: string, inputNodes: Node<InputNodeData>[], headers?: HttpHeaders, baseUrl?: string) => {
24
+ clearSubmitMessage: () => void;
25
+ handleSubmitWithConfig: (onSuccess?: (data: unknown) => void) => Promise<SubmitResult | null>;
26
+ hasSubmitConfig: boolean;
27
+ isSubmitting: boolean;
28
+ submitButtonNode: {
29
+ id: string;
30
+ data: InputNodeData;
31
+ } | null;
32
+ submitMessage: {
33
+ type: "success" | "error";
34
+ message: string;
35
+ } | null;
36
+ };
@@ -1,10 +1,12 @@
1
+ import { Translatable } from '../../shared/types/translate';
1
2
  /**
2
3
  * Hook for translating text in the renderer with context-aware language preference.
3
4
  *
4
- * This hook uses the language from TreegeRendererContext (or explicit override) and delegates to the shared useTranslate hook.
5
+ * This hook uses the language from TreegeRenderRuntimeContext (or explicit override) and delegates to the shared useTranslate hook.
6
+ * All translations are automatically sanitized to prevent XSS attacks.
5
7
  *
6
8
  * @param language - Optional language override. If not provided, uses language from context.
7
- * @returns A function that translates either a translation key or a Translatable object
9
+ * @returns A function that translates either a translation key or a Translatable object (with XSS protection)
8
10
  *
9
11
  * @example
10
12
  * // Static translation (from translation files)
@@ -12,13 +14,13 @@
12
14
  * const errorMsg = t("validation.required"); // "This field is required"
13
15
  *
14
16
  * @example
15
- * // Dynamic translation (from node data)
17
+ * // Dynamic translation (from node data) - automatically sanitized
16
18
  * const t = useTranslate();
17
- * const label = t(node.data.label); // Translates user-defined content
19
+ * const label = t(node.data.label); // Translates and sanitizes user-defined content
18
20
  *
19
21
  * @example
20
22
  * // With explicit language
21
23
  * const t = useTranslate("fr");
22
24
  * const errorMsg = t("validation.required"); // "Ce champ est requis"
23
25
  */
24
- export declare const useTranslate: (language?: string) => (key?: import('../../main').Translatable | import('../../main').TranslationKey | string) => string;
26
+ export declare const useTranslate: (language?: string) => (key?: Translatable | string) => string;
@@ -1,8 +1,9 @@
1
- export { TreegeConfigProvider, useTreegeConfig } from './context/TreegeConfigContext';
1
+ export { TreegeRendererProvider, useTreegeRendererConfig } from './context/TreegeRendererProvider';
2
+ export type { UseTreegeRendererReturn } from './features/TreegeRenderer/useTreegeRenderer';
2
3
  export { useTreegeRenderer } from './features/TreegeRenderer/useTreegeRenderer';
3
4
  export * from './features/TreegeRenderer/web/components/DefaultFormWrapper';
4
- export * from './features/TreegeRenderer/web/components/DefaultGroup';
5
5
  export * from './features/TreegeRenderer/web/components/DefaultInputs';
6
+ export * from './features/TreegeRenderer/web/components/DefaultStep';
6
7
  export * from './features/TreegeRenderer/web/components/DefaultSubmitButton';
7
8
  export * from './features/TreegeRenderer/web/components/DefaultUI';
8
9
  export * from './features/TreegeRenderer/web/TreegeRenderer';
@@ -13,5 +14,6 @@ export * from './utils/conditions';
13
14
  export * from './utils/file';
14
15
  export * from './utils/flow';
15
16
  export * from './utils/form';
17
+ export * from './utils/sanitize';
16
18
  export { ThemeProvider, useTheme } from '../shared/context/ThemeContext';
17
19
  export { getTranslatedText } from '../shared/utils/translations';
@@ -0,0 +1,19 @@
1
+ export { TreegeRendererProvider, useTreegeRendererConfig } from './context/TreegeRendererProvider';
2
+ export * from './features/TreegeRenderer/native/components/DefaultFormWrapper';
3
+ export * from './features/TreegeRenderer/native/components/DefaultInputs';
4
+ export * from './features/TreegeRenderer/native/components/DefaultStep';
5
+ export * from './features/TreegeRenderer/native/components/DefaultSubmitButton';
6
+ export * from './features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper';
7
+ export * from './features/TreegeRenderer/native/components/DefaultUI';
8
+ export type { TreegeRendererNativeProps } from './features/TreegeRenderer/native/TreegeRenderer';
9
+ export { default as TreegeRenderer } from './features/TreegeRenderer/native/TreegeRenderer';
10
+ export type { UseTreegeRendererReturn } from './features/TreegeRenderer/useTreegeRenderer';
11
+ export { useTreegeRenderer } from './features/TreegeRenderer/useTreegeRenderer';
12
+ export type { TreegeRendererConfig } from './types/renderer';
13
+ export * from './types/renderer';
14
+ export * from './utils/conditions';
15
+ export * from './utils/file';
16
+ export * from './utils/flow';
17
+ export * from './utils/form';
18
+ export * from './utils/sanitize.native';
19
+ export { getTranslatedText } from '../shared/utils/translations';