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
@@ -4,29 +4,82 @@ declare const _default: {
4
4
  "clear": "Limpar",
5
5
  "close": "Fechar",
6
6
  "create": "Criar",
7
+ "delete": "Excluir",
8
+ "other": "Outro",
7
9
  "retry": "Tentar novamente",
8
10
  "save": "Salvar",
11
+ "settings": "Configurações",
9
12
  "submit": "Enviar",
10
13
  "toggle": "Alternar"
11
14
  },
12
15
  "editor": {
13
16
  "actionsPanel": {
14
- "addNode": "Adicionar ",
17
+ "addNode": "Adicionar elemento",
18
+ "authorize": "Authorize",
15
19
  "clear": "Limpar",
16
20
  "clearSuccess": "Fluxo limpo!",
17
21
  "clearSuccessDesc": "Todos os nós e arestas foram removidos.",
18
- "copyFailed": "Falha ao copiar o ID do fluxo",
19
22
  "downloadSuccess": "Download bem-sucedido.",
20
23
  "downloadSuccessDesc": "O fluxo foi exportado com sucesso.",
21
24
  "exportJson": "Exportar JSON",
22
- "idCopied": "ID do fluxo copiado!",
25
+ "globalHeaders": "Global headers",
23
26
  "importJson": "Importar JSON",
24
27
  "importSuccess": "Importação bem-sucedida!",
25
28
  "importSuccessDesc": "O fluxo foi importado com sucesso.",
26
29
  "invalidJson": "Arquivo JSON inválido.",
27
30
  "invalidJsonDesc": "O arquivo deve conter arrays de nós e arestas.",
31
+ "language": "Idioma",
32
+ "openApi": "OpenAPI",
28
33
  "parseError": "Erro ao analisar o arquivo JSON.",
29
- "parseErrorDesc": "Tente corrigir o arquivo e importá-lo novamente."
34
+ "parseErrorDesc": "Tente corrigir o arquivo e importá-lo novamente.",
35
+ "sensitiveHeadersStripped": "Cabeçalhos sensíveis removidos",
36
+ "sensitiveHeadersStrippedDesc": "Os cabeçalhos de credenciais foram removidos para evitar o vazamento de segredos."
37
+ },
38
+ "aiGenerator": {
39
+ "aiNotConfigured": "IA não configurada",
40
+ "aiNotConfiguredDesc": "Adicione a prop {code} ao TreegeEditor",
41
+ "buttonLabel": "Gerar com IA",
42
+ "cancel": "Cancelar",
43
+ "description": "Descrição",
44
+ "descriptionPlaceholder": "Exemplo: Criar um formulário de contato com nome, email, telefone e mensagem",
45
+ "enterDescription": "Por favor insira uma descrição",
46
+ "failedToGenerate": "Falha ao gerar árvore",
47
+ "generate": "Gerar",
48
+ "generating": "Gerando...",
49
+ "keyboardShortcut": "Pressione {cmdEnter} ou {ctrlEnter} para gerar",
50
+ "missingApiKey": "Configuração de IA ausente",
51
+ "missingApiKeyDesc": "Por favor configure sua chave API de IA no TreegeEditor",
52
+ "successDescription": "{nodes} nós e {edges} arestas criados",
53
+ "successTitle": "Árvore gerada com sucesso!",
54
+ "title": "Gerar fluxo com IA",
55
+ "titleDescription": "Descreva o formulário ou árvore de decisão que deseja criar, e a IA irá gerá-lo para você.",
56
+ "unknownError": "Erro desconhecido"
57
+ },
58
+ "apiUrlCombobox": {
59
+ "applyBaseUrl": "Adicionar a URL base",
60
+ "browseRoutes": "Browse OpenAPI routes",
61
+ "noRoutes": "No matching route",
62
+ "searchRoutes": "Search by method, path, or summary",
63
+ "useRelativePath": "Usar um caminho relativo"
64
+ },
65
+ "authorizeDialog": {
66
+ "apiKeyLabel": "API key",
67
+ "apply": "Apply",
68
+ "bearerLabel": "Bearer token",
69
+ "clear": "Clear",
70
+ "description": "Authenticate against the API to forward credentials to every request issued by the form.",
71
+ "exchangeFailed": "Failed to fetch access token",
72
+ "noSchemes": "No supported security schemes are declared in this OpenAPI document.",
73
+ "oauth2PasswordLabel": "OAuth2 password",
74
+ "passwordPlaceholder": "Password",
75
+ "title": "Authorize",
76
+ "usernamePlaceholder": "Username"
77
+ },
78
+ "changeNodeTypeDialog": {
79
+ "description": "Este nó possui várias ramificações de saída. O novo tipo suporta apenas uma. Escolha qual ramificação manter; as outras serão removidas.",
80
+ "keepBranch": "Manter esta ramificação",
81
+ "noConditions": "Sem condições",
82
+ "title": "Alterar tipo de nó"
30
83
  },
31
84
  "comboboxPattern": {
32
85
  "custom": "Personalizado: {value}",
@@ -40,12 +93,16 @@ declare const _default: {
40
93
  },
41
94
  "conditionalEdge": {
42
95
  "addCondition": "Adicionar condição",
96
+ "advanced": "Avançado",
43
97
  "and": "E",
98
+ "basic": "Básico",
99
+ "basicConditionLabel": "Se \"{name}\" for igual a",
44
100
  "condition": "Condição",
45
101
  "conditions": "Condições",
46
102
  "conditionsAnd": "condições (E)",
47
103
  "conditionsMixed": "condições (mistas)",
48
104
  "conditionsOr": "condições (OU)",
105
+ "defineCondition": "Definir uma condição",
49
106
  "displayConditions": "Exibir condições",
50
107
  "displayConditionsDesc": "Este campo será exibido se as seguintes condições forem atendidas.",
51
108
  "fallback": "Padrão",
@@ -60,19 +117,25 @@ declare const _default: {
60
117
  "or": "OU",
61
118
  "removeCondition": "Remover condição",
62
119
  "selectField": "Selecione um campo",
120
+ "selectValue": "Selecione um valor",
63
121
  "value": "Valor",
64
122
  "valuePlaceholder": "Ex: 18"
65
123
  },
66
- "flowNodeForm": {
67
- "label": "Rótulo",
68
- "targetId": "ID de destino",
69
- "targetIdDesc": "Identificador único do fluxo de destino."
70
- },
71
124
  "groupNodeForm": {
72
125
  "label": "Rótulo"
73
126
  },
127
+ "headersDialog": {
128
+ "addHeader": "Add header",
129
+ "description": "These headers are forwarded to every HTTP request issued by the form (HTTP inputs, submit, options sources). Field-level headers with the same key override these.",
130
+ "empty": "No headers yet.",
131
+ "keyPlaceholder": "Authorization",
132
+ "removeHeader": "Remove header",
133
+ "title": "Global headers",
134
+ "valuePlaceholder": "Bearer ..."
135
+ },
74
136
  "httpConfigForm": {
75
137
  "addHeader": "Adicionar cabeçalho",
138
+ "addQueryParam": "Adicionar parâmetro",
76
139
  "apiUrl": "URL da API",
77
140
  "apiUrlDesc": "Use variáveis de modelo como {{fieldId}} para referenciar outros campos",
78
141
  "apiUrlPlaceholder": "https://api.exemplo.com/data",
@@ -93,9 +156,12 @@ declare const _default: {
93
156
  "methodPost": "POST",
94
157
  "methodPut": "PUT",
95
158
  "noFieldsAvailable": "Nenhum campo disponível",
159
+ "queryParamName": "Nome do parâmetro",
160
+ "queryParams": "Parâmetros de consulta",
161
+ "queryParamValue": "Valor do parâmetro",
96
162
  "requestBody": "Corpo da requisição (JSON)",
97
- "requestBodyDesc": "Use variáveis de modelo como ${fieldId} para referenciar outros campos",
98
- "requestBodyPlaceholder": "{\"chave\": \"valor\"}",
163
+ "requestBodyDesc": "Use {{fieldId}} para referenciar outros campos. Certifique-se de que a formatação JSON está correta, incluindo aspas ao redor de valores de string.",
164
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"idade\": {{idadeUsuario}}}",
99
165
  "responseConfiguration": "Configuração da resposta",
100
166
  "responsePath": "Caminho da resposta",
101
167
  "responsePathDesc": "Extrair dados da resposta usando notação de ponto ou indexação de array",
@@ -104,6 +170,8 @@ declare const _default: {
104
170
  "searchParameterDesc": "Se definido, habilita uma caixa de pesquisa que adiciona este parâmetro às chamadas de API (ex: ?q=Paris)",
105
171
  "searchParameterPlaceholder": "q, pesquisa, consulta...",
106
172
  "selectMethod": "Selecionar método",
173
+ "sendAllFormValues": "Enviar todos os dados do formulário",
174
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
107
175
  "showLoadingState": "Mostrar estado de carregamento",
108
176
  "valueField": "Campo de valor",
109
177
  "valueFieldDesc": "Campo a ser usado como valor da opção (ex: id)",
@@ -112,7 +180,7 @@ declare const _default: {
112
180
  "inputNodeForm": {
113
181
  "addInputFieldsBeforeReference": "Adicione campos de entrada antes deste nó para referenciá-los",
114
182
  "addMapping": "Adicionar mapeamento",
115
- "addOption": "+ Adicionar opção",
183
+ "addOption": "Adicionar opção",
116
184
  "advancedConfiguration": "Configuração avançada",
117
185
  "defaultChecked": "Marcado por padrão",
118
186
  "defaultValuesCommaSeparated": "Valores padrão (separados por vírgulas)",
@@ -121,6 +189,9 @@ declare const _default: {
121
189
  "defaultValueTypeNone": "Nenhum",
122
190
  "defaultValueTypeReference": "Campo de referência",
123
191
  "defaultValueTypeStatic": "Valor estático",
192
+ "deleteOption": "Excluir opção",
193
+ "disablePast": "Desativar datas passadas",
194
+ "editOption": "Editar opção",
124
195
  "errorMessage": "Mensagem de erro",
125
196
  "helperText": "Texto de ajuda",
126
197
  "httpConfiguration": "Configuração HTTP",
@@ -128,9 +199,20 @@ declare const _default: {
128
199
  "multipleFiles": "Arquivos múltiplos",
129
200
  "multipleSelection": "Seleção múltipla",
130
201
  "name": "Nome",
202
+ "nameDescription": "Nome de campo personalizado opcional para exportação de formulário. Se vazio, o rótulo será usado como chave.",
131
203
  "noParentFieldsAvailable": "Nenhum campo pai disponível",
132
204
  "objectMapping": "Mapeamento de objeto",
133
205
  "objectMappingDesc": "Mapear as propriedades do objeto de origem para uma nova estrutura",
206
+ "optional": "Opcional",
207
+ "optionDescription": "Descrição",
208
+ "optionImageAdd": "Adicionar imagem",
209
+ "optionImageError": "Não foi possível processar a imagem.",
210
+ "optionImageInvalid": "Formato de imagem não suportado.",
211
+ "optionImageRemove": "Remover imagem",
212
+ "optionImageReplace": "Substituir imagem",
213
+ "optionImageTooLarge": "Imagem muito grande (máx. 5 MB).",
214
+ "optionImageUpload": "Enviar arquivo",
215
+ "optionImageUrlPlaceholder": "https://...",
134
216
  "optionLabel": "Rótulo",
135
217
  "options": "Opções",
136
218
  "optionValue": "Valor",
@@ -144,6 +226,7 @@ declare const _default: {
144
226
  "sourceKey": "Chave de origem",
145
227
  "staticValue": "Valor estático",
146
228
  "staticValuePlaceholder": "Digite o valor padrão",
229
+ "submitConfiguration": "Configuração de envio",
147
230
  "targetKey": "Chave de destino",
148
231
  "transformArray": "Converter para array",
149
232
  "transformBoolean": "Converter para booleano",
@@ -153,7 +236,71 @@ declare const _default: {
153
236
  "transformNumber": "Converter para número",
154
237
  "transformString": "Converter para string",
155
238
  "transformType": "Tipo de transformação",
156
- "validation": "Validação"
239
+ "validation": "Validação",
240
+ "variant": "Variante",
241
+ "variantCard": "Cartão",
242
+ "variantDefault": "Padrão"
243
+ },
244
+ "jsonTemplate": {
245
+ "hint": "Digite ou cole o JSON e clique em uma chave ou valor para vinculá-lo a um campo — ou digite {{nome_do_campo}} ou {{id_do_campo}}.",
246
+ "invalidJson": "JSON inválido — corrija a sintaxe para o template ter efeito.",
247
+ "placeholder": "{\n \"data\": {\n \"name\": \"{{firstName}}\",\n \"age\": \"{{age}}\"\n }\n}",
248
+ "unbind": "Desvincular"
249
+ },
250
+ "multiSelectionPanel": {
251
+ "clearSelection": "Limpar seleção",
252
+ "deleteSelected": "Excluir nós selecionados",
253
+ "nodesSelected": "nós selecionados"
254
+ },
255
+ "nodeActionsSheet": {
256
+ "deleteNode": "Excluir nó",
257
+ "deleteNodeConfirm": "Tem certeza de que deseja excluir este nó?",
258
+ "deleteNodeSuccess": "Nó excluído com sucesso",
259
+ "editNode": "Editar nó"
260
+ },
261
+ "openApiDialog": {
262
+ "baseUrlHint": "Optional. Overrides the document's first server URL — useful when the spec points at a different environment.",
263
+ "baseUrlLabel": "Base URL override",
264
+ "clear": "Clear",
265
+ "cleared": "OpenAPI cleared.",
266
+ "description": "Provide an OpenAPI 3.x document to power URL suggestions and Authorize.",
267
+ "emptyInput": "Please provide a URL or paste a JSON document.",
268
+ "jsonLabel": "Paste your OpenAPI JSON",
269
+ "load": "Load",
270
+ "loadFailed": "Failed to load OpenAPI document",
271
+ "loadSuccess": "OpenAPI loaded.",
272
+ "modeJson": "Paste JSON",
273
+ "modeUrl": "From URL",
274
+ "title": "OpenAPI source",
275
+ "urlLabel": "OpenAPI document URL"
276
+ },
277
+ "optionsSourceForm": {
278
+ "descriptionField": "Description",
279
+ "descriptionFieldPlaceholder": "Path to description (optional)",
280
+ "detect": "Detect fields",
281
+ "detectDynamicHint": "A requisição ainda contém variáveis não resolvidas. Substitua-as por um valor de exemplo estático para detectar e depois restaure-as.",
282
+ "detectFailed": "Failed to fetch the API.",
283
+ "detectSuccess": "Fields detected.",
284
+ "disable": "Use static options",
285
+ "dynamicHint": "Options are fetched from this API at runtime.",
286
+ "dynamicVarsWarning": "Esta requisição usa variáveis dinâmicas ({vars}) que não têm valor no editor. «Detectar campos» chama a API como está, portanto pode falhar. Substitua-as temporariamente por um valor de exemplo estático para detectar a resposta e depois restaure as variáveis.",
287
+ "enable": "Fetch from API",
288
+ "imageField": "Image",
289
+ "imageFieldPlaceholder": "Path to image URL (optional)",
290
+ "labelField": "Label",
291
+ "labelFieldPlaceholder": "Path to label (e.g., name)",
292
+ "noFieldsDetected": "No fields detected — check the URL or response path.",
293
+ "none": "— None —",
294
+ "previewCount": "{count} options detected",
295
+ "responsePath": "Response path",
296
+ "responsePathHint": "Optional. Use a path like \"data.users\" if the array is nested.",
297
+ "responsePathPlaceholder": "e.g., data.users",
298
+ "staticOptions": "Static options",
299
+ "staticOptionsHint": "Options are defined manually in the editor.",
300
+ "title": "Options source",
301
+ "urlRequired": "URL is required.",
302
+ "valueField": "Value",
303
+ "valueFieldPlaceholder": "Path to value (e.g., id)"
157
304
  },
158
305
  "selectInputType": {
159
306
  "type": "Tipo"
@@ -167,12 +314,76 @@ declare const _default: {
167
314
  "groupCreatedDesc": "O grupo \"{groupName}\" foi criado com sucesso.",
168
315
  "groupName": "Nome do grupo",
169
316
  "groupNamePlaceholder": "Ex: Passo 1 - Informações pessoais",
317
+ "mixed": "Grupos mistos",
170
318
  "newGroup": "Novo grupo",
171
319
  "newGroupDescription": "O grupo será criado em torno do nó selecionado.",
172
- "noGroup": "Sem grupo"
320
+ "noGroup": "Sem grupo",
321
+ "renameGroup": "Renomear grupo"
173
322
  },
174
323
  "selectNodeType": {
175
- "nodeType": "Tipo de nó"
324
+ "nodeType": "Tipo de nó",
325
+ "options": {
326
+ "group": "Grupo",
327
+ "input": "Pergunta",
328
+ "ui": "Elemento de design"
329
+ }
330
+ },
331
+ "sensitiveHeaderWarning": {
332
+ "message": "Evite armazenar credenciais (Authorization, chaves de API) nos cabeçalhos do campo: elas são salvas na árvore exportada. Use cabeçalhos globais (Autorizar) para autenticação."
333
+ },
334
+ "stackedEdge": {
335
+ "addNode": "Adicionar um elemento",
336
+ "createBranch": "Criar uma ramificação",
337
+ "insertNode": "Inserir um elemento aqui"
338
+ },
339
+ "stackOrder": {
340
+ "moveDown": "Mover para baixo",
341
+ "moveUp": "Mover para cima"
342
+ },
343
+ "submitConfigForm": {
344
+ "addHeader": "Adicionar cabeçalho",
345
+ "addQueryParam": "Adicionar parâmetro",
346
+ "apiUrl": "URL da API",
347
+ "apiUrlDesc": "Use {{fieldId}} para referenciar outros campos",
348
+ "apiUrlPlaceholder": "https://api.exemplo.com/submit",
349
+ "behavior": "Comportamento",
350
+ "errorMessage": "Mensagem de erro",
351
+ "errorMessageDesc": "Mensagem exibida quando o envio falha",
352
+ "errorMessagePlaceholder": "Ocorreu um erro. Por favor, tente novamente.",
353
+ "fillFromApi": "Preencher a partir da API",
354
+ "fillFromApiHint": "Preenche o payload a partir do corpo da requisição da rota OpenAPI. Disponível quando a URL corresponde a uma rota que define um.",
355
+ "headerName": "Nome do cabeçalho",
356
+ "headers": "Cabeçalhos",
357
+ "headerValue": "Valor do cabeçalho",
358
+ "httpMethod": "Método HTTP",
359
+ "insertVariable": "Inserir variável",
360
+ "methodDelete": "DELETE",
361
+ "methodPatch": "PATCH",
362
+ "methodPost": "POST",
363
+ "methodPut": "PUT",
364
+ "noFieldsAvailable": "Nenhum campo disponível",
365
+ "payload": "Payload de saída (JSON)",
366
+ "payloadDesc": "O payload entregue ao onSubmit e, quando uma URL está definida, enviado como corpo da requisição HTTP. Tem precedência sobre «Enviar todos os dados do formulário».",
367
+ "postSubmission": "Após o envio",
368
+ "queryParamName": "Nome do parâmetro",
369
+ "queryParams": "Parâmetros de consulta",
370
+ "queryParamValue": "Valor do parâmetro",
371
+ "redirectUrl": "URL de redirecionamento",
372
+ "redirectUrlDesc": "URL para redirecionar após envio bem-sucedido",
373
+ "redirectUrlPlaceholder": "/success ou https://exemplo.com/obrigado",
374
+ "requestBody": "Corpo da requisição (JSON)",
375
+ "requestBodyDesc": "Use {{fieldId}} para referenciar outros campos. Certifique-se de que a formatação JSON está correta, incluindo aspas ao redor de valores de string.",
376
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"email\": \"{{emailUsuario}}\"}",
377
+ "selectMethod": "Selecionar método",
378
+ "sendAllFormValues": "Enviar todos os dados do formulário",
379
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
380
+ "showLoadingState": "Mostrar estado de carregamento",
381
+ "successMessage": "Mensagem de sucesso",
382
+ "successMessageDesc": "Mensagem exibida quando o envio é bem-sucedido",
383
+ "successMessagePlaceholder": "Formulário enviado com sucesso!"
384
+ },
385
+ "treegeNode": {
386
+ "labelPlaceholder": "Rótulo..."
176
387
  },
177
388
  "uiNodeForm": {
178
389
  "label": "Rótulo",
@@ -184,39 +395,62 @@ declare const _default: {
184
395
  "renderer": {
185
396
  "defaultAddressInput": {
186
397
  "enterAddress": "Digite um endereço...",
187
- "noAddressesFound": "Nenhum endereço encontrado."
398
+ "noAddressesFound": "Nenhum endereço encontrado.",
399
+ "searching": "Pesquisando...",
400
+ "typeMinChars": "Digite pelo menos 3 caracteres para pesquisar"
188
401
  },
189
402
  "defaultAutocompleteInput": {
190
403
  "noResults": "Nenhum resultado encontrado.",
191
404
  "search": "Pesquisar...",
192
405
  "selectOption": "Selecione uma opção"
193
406
  },
407
+ "defaultCheckboxInput": {
408
+ "loadingOptions": "Carregando opções..."
409
+ },
194
410
  "defaultHttpInput": {
195
- "fetchFailed": "Falha ao buscar dados",
196
- "httpError": "HTTP {status}: {statusText}",
411
+ "fetchFailed": "Falha ao buscar dados. Por favor, verifique sua conexão de rede.",
412
+ "httpError": "Erro HTTP {status}: {statusText}",
197
413
  "noDataAvailable": "Nenhum dado disponível. Configure \"Buscar na montagem\" ou adicione um parâmetro de pesquisa.",
198
414
  "noResults": "Nenhum resultado encontrado.",
199
- "noUrlConfigured": "Nenhuma URL configurada",
415
+ "noUrlConfigured": "Nenhuma URL configurada. Por favor, adicione uma URL na configuração HTTP.",
200
416
  "retry": "Tentar novamente",
201
417
  "search": "Pesquisar...",
202
418
  "searching": "Pesquisando...",
203
- "selectOption": "Selecione uma opção"
419
+ "selectOption": "Selecione uma opção",
420
+ "waitingForRequiredFields": "Aguardando campos obrigatórios"
204
421
  },
205
422
  "defaultInputs": {
423
+ "addMoreFiles": "Adicionar mais arquivos",
206
424
  "endDate": "Data de fim",
207
425
  "endTime": "Hora de fim",
426
+ "filePickerError": "Falha ao selecionar arquivo",
427
+ "filePickerUnavailable": "Seleção de arquivo indisponível. Instale react-native-document-picker.",
428
+ "newAnswer": "Nova resposta...",
429
+ "replaceFile": "Substituir arquivo",
208
430
  "required": "*",
209
431
  "selectDate": "Selecionar data",
210
432
  "selectDateRange": "Selecionar intervalo de datas",
433
+ "selectFile": "Selecionar arquivo",
434
+ "selectFiles": "Selecionar arquivos",
211
435
  "startDate": "Data de início",
212
436
  "startTime": "Hora de início"
213
437
  },
438
+ "defaultRadioInput": {
439
+ "loadingOptions": "Carregando opções..."
440
+ },
214
441
  "defaultSelectInput": {
215
442
  "selectOption": "Selecione uma opção"
216
443
  },
217
444
  "defaultSubmitButton": {
218
445
  "requiredFieldsMissing": "Campos obrigatórios ausentes",
219
446
  "submit": "Enviar"
447
+ },
448
+ "dependencyHint": {
449
+ "title": "Preencha primeiro os seguintes campos:"
450
+ },
451
+ "step": {
452
+ "back": "Voltar",
453
+ "continue": "Continuar"
220
454
  }
221
455
  },
222
456
  "validation": {
@@ -31,4 +31,10 @@ export type ConditionalEdgeData = {
31
31
  * Fallback edges are followed when no other conditional edges match
32
32
  */
33
33
  isFallback?: boolean;
34
+ /**
35
+ * Set to `true` the first time the user commits a change through the
36
+ * condition editor. Used only by the editor for visual state — the
37
+ * renderer ignores it.
38
+ */
39
+ configured?: boolean;
34
40
  };
@@ -18,10 +18,19 @@ export type InputOption = {
18
18
  * The label of the option, which can be translated
19
19
  */
20
20
  label: Translatable;
21
+ /**
22
+ * Optional secondary description, shown under the label (translatable)
23
+ */
24
+ description?: Translatable;
21
25
  /**
22
26
  * Whether the option is disabled and cannot be selected
23
27
  */
24
28
  disabled?: boolean;
29
+ /**
30
+ * Optional image for the option, stored as base64 data URL or remote URL.
31
+ * Currently displayed by radio inputs; uploads are automatically resized and compressed.
32
+ */
33
+ image?: string;
25
34
  };
26
35
  export type BaseNodeData = {
27
36
  /**
@@ -29,28 +38,24 @@ export type BaseNodeData = {
29
38
  */
30
39
  label?: Translatable;
31
40
  };
32
- export type FlowNodeData = BaseNodeData & {
33
- /**
34
- * The ID of the target node to connect to
35
- */
36
- targetId?: string;
37
- };
38
41
  export type GroupNodeData = BaseNodeData & {
39
42
  /**
40
43
  * A label for the group node, which can be translated
41
44
  */
42
45
  label: Translatable;
43
46
  };
44
- export type HttpHeader = {
45
- /**
46
- * The header key (e.g., "Authorization", "Content-Type")
47
- */
48
- key: string;
49
- /**
50
- * The header value
51
- */
52
- value: string;
53
- };
47
+ /**
48
+ * HTTP headers as a plain object keyed by header name, e.g.
49
+ * `{ Authorization: "Bearer xyz", "Content-Type": "application/json" }`.
50
+ * Values support template variables like `{{fieldId}}`.
51
+ */
52
+ export type HttpHeaders = Record<string, string>;
53
+ /**
54
+ * Query parameters as a plain object keyed by parameter name, e.g.
55
+ * `{ limit: "10", sort: "asc" }`. Values support template variables like
56
+ * `{{fieldId}}`.
57
+ */
58
+ export type QueryParams = Record<string, string>;
54
59
  export type HttpConfig = {
55
60
  /**
56
61
  * The HTTP method to use
@@ -63,11 +68,19 @@ export type HttpConfig = {
63
68
  /**
64
69
  * Custom headers for the HTTP request
65
70
  */
66
- headers?: HttpHeader[];
71
+ headers?: HttpHeaders;
72
+ /**
73
+ * Query parameters appended to the URL (supports template variables like {{fieldId}})
74
+ */
75
+ queryParams?: QueryParams;
67
76
  /**
68
77
  * Request body (for POST/PUT/PATCH methods)
69
78
  */
70
79
  body?: string;
80
+ /**
81
+ * If true, automatically sends all form data as JSON body (overrides custom body)
82
+ */
83
+ sendAllFormValues?: boolean;
71
84
  /**
72
85
  * JSONPath or key to extract from the response
73
86
  * Examples: "data.users", "results[0].name"
@@ -85,6 +98,14 @@ export type HttpConfig = {
85
98
  * Path to the label field in response items
86
99
  */
87
100
  labelField?: string;
101
+ /**
102
+ * Path to the field used as the option description (optional)
103
+ */
104
+ descriptionField?: string;
105
+ /**
106
+ * Path to the field used as the option image — base64 data URL or remote URL (optional)
107
+ */
108
+ imageField?: string;
88
109
  };
89
110
  /**
90
111
  * Query parameter name for search (enables combobox with search)
@@ -100,6 +121,90 @@ export type HttpConfig = {
100
121
  */
101
122
  showLoading?: boolean;
102
123
  };
124
+ /**
125
+ * Maps response item fields to InputOption properties.
126
+ * Each value is a path expression (e.g., "id", "user.name", "items[0].title").
127
+ */
128
+ export type OptionsSourceMapping = {
129
+ /** Path to the field used as InputOption.value */
130
+ valueField: string;
131
+ /** Path to the field used as InputOption.label */
132
+ labelField: string;
133
+ /** Path to the field used as InputOption.description (optional) */
134
+ descriptionField?: string;
135
+ /** Path to the field used as InputOption.image (optional) */
136
+ imageField?: string;
137
+ };
138
+ /**
139
+ * Dynamic options source — fetches the option list from an HTTP endpoint
140
+ * at runtime. Applies to inputs that use options (radio, checkbox, select,
141
+ * autocomplete). When set, overrides the static `options` array.
142
+ */
143
+ export type OptionsSource = {
144
+ /** API URL (supports template variables like {{fieldId}}) */
145
+ url?: string;
146
+ /** HTTP method */
147
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
148
+ /** Custom headers (merged with global headers; field-level wins) */
149
+ headers?: HttpHeaders;
150
+ /** Query parameters appended to the URL (supports template variables like {{fieldId}}) */
151
+ queryParams?: QueryParams;
152
+ /** Request body (for POST/PUT/PATCH; supports template variables) */
153
+ body?: string;
154
+ /** JSONPath to extract the array from the response (e.g., "data.users") */
155
+ responsePath?: string;
156
+ /** Field-to-property mapping for each response item */
157
+ mapping?: OptionsSourceMapping;
158
+ };
159
+ export type SubmitConfig = {
160
+ /**
161
+ * The HTTP method to use for form submission
162
+ */
163
+ method?: "POST" | "PUT" | "PATCH" | "DELETE";
164
+ /**
165
+ * The API URL to call on submit (supports template variables like {{fieldId}})
166
+ */
167
+ url?: string;
168
+ /**
169
+ * Custom headers for the HTTP request
170
+ */
171
+ headers?: HttpHeaders;
172
+ /**
173
+ * Query parameters appended to the URL (supports template variables like {{fieldId}})
174
+ */
175
+ queryParams?: QueryParams;
176
+ /**
177
+ * Free-form JSON template that defines the submitted payload. Field tokens
178
+ * sit inside string positions, e.g. `{"data": {"name": "{{firstName}}"}}`,
179
+ * where `{{token}}` is a field's node id (or its token-safe `name`) and is
180
+ * replaced by the field value with its JSON type preserved.
181
+ *
182
+ * This is the single source of truth for the payload: it is delivered to the
183
+ * `onSubmit` callback AND, when a `url` is configured, sent as the HTTP request
184
+ * body. Takes precedence over `sendAllFormValues`.
185
+ */
186
+ payloadTemplate?: string;
187
+ /**
188
+ * If true, automatically sends all form data as JSON body (overrides custom body)
189
+ */
190
+ sendAllFormValues?: boolean;
191
+ /**
192
+ * URL to redirect to after successful submission (supports template variables from response)
193
+ */
194
+ redirectUrl?: string;
195
+ /**
196
+ * Success message to display after successful submission (translatable)
197
+ */
198
+ successMessage?: Translatable;
199
+ /**
200
+ * Error message to display if submission fails (translatable)
201
+ */
202
+ errorMessage?: Translatable;
203
+ /**
204
+ * Whether to show a loading state while submitting
205
+ */
206
+ showLoading?: boolean;
207
+ };
103
208
  export type InputNodeData = BaseNodeData & {
104
209
  /**
105
210
  * The name of the input field, used for identification and form submission
@@ -137,6 +242,14 @@ export type InputNodeData = BaseNodeData & {
137
242
  * Whether multiple selections are allowed (for select and checkbox types)
138
243
  */
139
244
  multiple?: boolean;
245
+ /**
246
+ * Visual variant (currently used by radio inputs)
247
+ */
248
+ variant?: "default" | "card";
249
+ /**
250
+ * Whether past dates should be disabled (for date and daterange types)
251
+ */
252
+ disablePast?: boolean;
140
253
  /**
141
254
  * The default value config for the input field
142
255
  */
@@ -154,6 +267,21 @@ export type InputNodeData = BaseNodeData & {
154
267
  * HTTP configuration for the input field (used with type="http")
155
268
  */
156
269
  httpConfig?: HttpConfig;
270
+ /**
271
+ * Dynamic options source — fetches the option list from an HTTP endpoint
272
+ * at runtime. Used by option-based inputs (radio, checkbox, select, autocomplete).
273
+ * When set, overrides the static `options` array.
274
+ */
275
+ optionsSource?: OptionsSource;
276
+ /**
277
+ * Submit configuration for the input field (used with type="submit")
278
+ */
279
+ submitConfig?: SubmitConfig;
280
+ /**
281
+ * Optional illustrative image displayed above the input label.
282
+ * Stored as a base64 data URL (uploads are resized/compressed) or a remote URL.
283
+ */
284
+ image?: string;
157
285
  };
158
286
  export type UINodeData = BaseNodeData & {
159
287
  /**
@@ -164,7 +292,7 @@ export type UINodeData = BaseNodeData & {
164
292
  /**
165
293
  * Union type representing all possible node data types in the Treege system
166
294
  */
167
- export type TreegeNodeData = InputNodeData | UINodeData | FlowNodeData | GroupNodeData;
295
+ export type TreegeNodeData = InputNodeData | UINodeData | GroupNodeData;
168
296
  /**
169
297
  * A TreegeNode represents a node in the flowchart with specific data and properties
170
298
  */