treege 3.0.0-beta.3 → 3.0.0-beta.31

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 (133) hide show
  1. package/LICENSE +18 -12
  2. package/README.md +306 -52
  3. package/dist/ThemeContext-Cw-S1U8B.js +990 -0
  4. package/dist/editor/components/input/ComboboxWithCreate.d.ts +2 -1
  5. package/dist/editor/constants/defaultNode.d.ts +1 -1
  6. package/dist/editor/constants/edgeTypes.d.ts +3 -2
  7. package/dist/editor/constants/inputTypeIcons.d.ts +3 -0
  8. package/dist/editor/constants/nodeSpacing.d.ts +20 -0
  9. package/dist/editor/constants/nodeTypes.d.ts +5 -5
  10. package/dist/editor/context/TreegeEditorContext.d.ts +24 -1
  11. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
  12. package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +2 -2
  13. package/dist/editor/features/TreegeEditor/edges/DefaultEdge.d.ts +3 -0
  14. package/dist/editor/features/TreegeEditor/forms/SubmitConfigForm.d.ts +7 -0
  15. package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +2 -1
  16. package/dist/editor/features/TreegeEditor/inputs/OptionImageField.d.ts +6 -0
  17. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +2 -2
  18. package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +6 -0
  19. package/dist/editor/features/TreegeEditor/nodes/components/BottomHandleDropdown.d.ts +6 -0
  20. package/dist/editor/features/TreegeEditor/nodes/components/InputTypeBadge.d.ts +7 -0
  21. package/dist/editor/features/TreegeEditor/nodes/components/NodeLabelInput.d.ts +9 -0
  22. package/dist/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.d.ts +6 -0
  23. package/dist/editor/features/TreegeEditor/nodes/components/OptionsEditor.d.ts +7 -0
  24. package/dist/editor/features/TreegeEditor/nodes/components/RequiredBadge.d.ts +6 -0
  25. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +2 -1
  26. package/dist/editor/features/TreegeEditor/panel/AIGeneratorDialog.d.ts +16 -0
  27. package/dist/editor/hooks/useFlowActions.d.ts +3 -0
  28. package/dist/editor/hooks/useFlowConnections.d.ts +4 -0
  29. package/dist/editor/hooks/useNodesSelection.d.ts +5 -5
  30. package/dist/editor/types/ai.d.ts +65 -0
  31. package/dist/editor/types/editor.d.ts +9 -8
  32. package/dist/editor/utils/aiFlowGenerator.d.ts +5 -0
  33. package/dist/editor/utils/image.d.ts +7 -0
  34. package/dist/editor/utils/inputTypeIcon.d.ts +6 -0
  35. package/dist/editor-Bs1sHj4p.js +3751 -0
  36. package/dist/editor.js +3 -7
  37. package/dist/main.js +5 -52
  38. package/dist/renderer/context/TreegeRendererContext.d.ts +4 -1
  39. package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
  40. package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
  41. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +7 -7
  42. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +21 -15
  43. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
  44. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
  45. package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
  46. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
  47. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
  48. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
  49. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
  50. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
  51. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
  52. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
  53. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
  54. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
  55. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
  56. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
  57. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
  58. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
  59. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
  60. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
  61. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
  62. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
  63. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +84 -24
  64. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
  65. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +1 -1
  66. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +1 -1
  67. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +1 -1
  68. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +1 -1
  69. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +1 -1
  70. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +1 -1
  71. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +1 -1
  72. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +1 -1
  73. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +1 -1
  74. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +1 -1
  75. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +1 -1
  76. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +1 -1
  77. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +1 -1
  78. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +3 -0
  79. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +1 -1
  80. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +1 -1
  81. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +1 -1
  82. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +1 -1
  83. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +1 -1
  84. package/dist/renderer/hooks/useRenderNode.d.ts +55 -0
  85. package/dist/renderer/hooks/useSubmitHandler.d.ts +34 -0
  86. package/dist/renderer/hooks/useTranslate.d.ts +6 -4
  87. package/dist/renderer/index.d.ts +2 -0
  88. package/dist/renderer/index.native.d.ts +19 -0
  89. package/dist/renderer/types/renderer.d.ts +60 -6
  90. package/dist/renderer/utils/form.d.ts +22 -2
  91. package/dist/renderer/utils/http.d.ts +101 -0
  92. package/dist/renderer/utils/node.d.ts +9 -1
  93. package/dist/renderer/utils/sanitize.d.ts +85 -0
  94. package/dist/renderer/utils/sanitize.native.d.ts +69 -0
  95. package/dist/renderer/utils/submit.d.ts +47 -0
  96. package/dist/renderer-CsU2Y0iu.js +1204 -0
  97. package/dist/renderer-native.d.ts +2 -0
  98. package/dist/renderer-native.js +3496 -0
  99. package/dist/renderer.js +4 -45
  100. package/dist/separator-B9rc85M6.js +351 -0
  101. package/dist/shared/components/ui/alert-dialog.d.ts +14 -0
  102. package/dist/shared/components/ui/badge.d.ts +2 -2
  103. package/dist/shared/components/ui/button.d.ts +2 -2
  104. package/dist/shared/components/ui/collapsible.d.ts +1 -1
  105. package/dist/shared/components/ui/command.d.ts +1 -1
  106. package/dist/shared/components/ui/dropdown-menu.d.ts +1 -1
  107. package/dist/shared/components/ui/form.d.ts +1 -1
  108. package/dist/shared/components/ui/popover.d.ts +4 -2
  109. package/dist/shared/components/ui/select.d.ts +3 -1
  110. package/dist/shared/components/ui/sheet.d.ts +1 -1
  111. package/dist/shared/components/ui/tooltip.d.ts +1 -1
  112. package/dist/shared/constants/colors.d.ts +45 -0
  113. package/dist/shared/constants/inputType.d.ts +1 -0
  114. package/dist/shared/context/ThemeContext.d.ts +2 -0
  115. package/dist/shared/context/ThemeContext.native.d.ts +22 -0
  116. package/dist/shared/hooks/useThemeColors.d.ts +37 -0
  117. package/dist/shared/locales/ar.json.d.ts +109 -10
  118. package/dist/shared/locales/de.json.d.ts +110 -11
  119. package/dist/shared/locales/en.json.d.ts +111 -12
  120. package/dist/shared/locales/es.json.d.ts +110 -11
  121. package/dist/shared/locales/fr.json.d.ts +110 -11
  122. package/dist/shared/locales/it.json.d.ts +110 -11
  123. package/dist/shared/locales/pt.json.d.ts +110 -11
  124. package/dist/shared/types/node.d.ts +64 -0
  125. package/dist/useRenderNode-IL6mmCOS.js +774 -0
  126. package/package.json +39 -12
  127. package/dist/ThemeContext-BIvs8Kw-.js +0 -758
  128. package/dist/TreegeEditor-BSPfQQk3.js +0 -2151
  129. package/dist/TreegeRenderer-D3EvsEfJ.js +0 -1413
  130. package/dist/_name_.css +0 -1
  131. package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +0 -6
  132. package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +0 -6
  133. package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +0 -6
@@ -4,14 +4,17 @@ 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",
15
18
  "clear": "Limpar",
16
19
  "clearSuccess": "Fluxo limpo!",
17
20
  "clearSuccessDesc": "Todos os nós e arestas foram removidos.",
@@ -28,6 +31,26 @@ declare const _default: {
28
31
  "parseError": "Erro ao analisar o arquivo JSON.",
29
32
  "parseErrorDesc": "Tente corrigir o arquivo e importá-lo novamente."
30
33
  },
34
+ "aiGenerator": {
35
+ "aiNotConfigured": "IA não configurada",
36
+ "aiNotConfiguredDesc": "Adicione a prop {code} ao TreegeEditorProvider",
37
+ "buttonLabel": "Gerar com IA",
38
+ "cancel": "Cancelar",
39
+ "description": "Descrição",
40
+ "descriptionPlaceholder": "Exemplo: Criar um formulário de contato com nome, email, telefone e mensagem",
41
+ "enterDescription": "Por favor insira uma descrição",
42
+ "failedToGenerate": "Falha ao gerar árvore",
43
+ "generate": "Gerar",
44
+ "generating": "Gerando...",
45
+ "keyboardShortcut": "Pressione {cmdEnter} ou {ctrlEnter} para gerar",
46
+ "missingApiKey": "Configuração de IA ausente",
47
+ "missingApiKeyDesc": "Por favor configure sua chave API de IA no TreegeEditorProvider",
48
+ "successDescription": "{nodes} nós e {edges} arestas criados",
49
+ "successTitle": "Árvore gerada com sucesso!",
50
+ "title": "Gerar fluxo com IA",
51
+ "titleDescription": "Descreva o formulário ou árvore de decisão que deseja criar, e a IA irá gerá-lo para você.",
52
+ "unknownError": "Erro desconhecido"
53
+ },
31
54
  "comboboxPattern": {
32
55
  "custom": "Personalizado: {value}",
33
56
  "search": "Pesquisar padrões...",
@@ -94,8 +117,8 @@ declare const _default: {
94
117
  "methodPut": "PUT",
95
118
  "noFieldsAvailable": "Nenhum campo disponível",
96
119
  "requestBody": "Corpo da requisição (JSON)",
97
- "requestBodyDesc": "Use variáveis de modelo como ${fieldId} para referenciar outros campos",
98
- "requestBodyPlaceholder": "{\"chave\": \"valor\"}",
120
+ "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.",
121
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"idade\": {{idadeUsuario}}}",
99
122
  "responseConfiguration": "Configuração da resposta",
100
123
  "responsePath": "Caminho da resposta",
101
124
  "responsePathDesc": "Extrair dados da resposta usando notação de ponto ou indexação de array",
@@ -104,6 +127,8 @@ declare const _default: {
104
127
  "searchParameterDesc": "Se definido, habilita uma caixa de pesquisa que adiciona este parâmetro às chamadas de API (ex: ?q=Paris)",
105
128
  "searchParameterPlaceholder": "q, pesquisa, consulta...",
106
129
  "selectMethod": "Selecionar método",
130
+ "sendAllFormValues": "Enviar todos os dados do formulário",
131
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
107
132
  "showLoadingState": "Mostrar estado de carregamento",
108
133
  "valueField": "Campo de valor",
109
134
  "valueFieldDesc": "Campo a ser usado como valor da opção (ex: id)",
@@ -112,7 +137,7 @@ declare const _default: {
112
137
  "inputNodeForm": {
113
138
  "addInputFieldsBeforeReference": "Adicione campos de entrada antes deste nó para referenciá-los",
114
139
  "addMapping": "Adicionar mapeamento",
115
- "addOption": "+ Adicionar opção",
140
+ "addOption": "Adicionar opção",
116
141
  "advancedConfiguration": "Configuração avançada",
117
142
  "defaultChecked": "Marcado por padrão",
118
143
  "defaultValuesCommaSeparated": "Valores padrão (separados por vírgulas)",
@@ -121,6 +146,7 @@ declare const _default: {
121
146
  "defaultValueTypeNone": "Nenhum",
122
147
  "defaultValueTypeReference": "Campo de referência",
123
148
  "defaultValueTypeStatic": "Valor estático",
149
+ "disablePast": "Desativar datas passadas",
124
150
  "errorMessage": "Mensagem de erro",
125
151
  "helperText": "Texto de ajuda",
126
152
  "httpConfiguration": "Configuração HTTP",
@@ -128,9 +154,20 @@ declare const _default: {
128
154
  "multipleFiles": "Arquivos múltiplos",
129
155
  "multipleSelection": "Seleção múltipla",
130
156
  "name": "Nome",
157
+ "nameDescription": "Nome de campo personalizado opcional para exportação de formulário. Se vazio, o rótulo será usado como chave.",
131
158
  "noParentFieldsAvailable": "Nenhum campo pai disponível",
132
159
  "objectMapping": "Mapeamento de objeto",
133
160
  "objectMappingDesc": "Mapear as propriedades do objeto de origem para uma nova estrutura",
161
+ "optional": "Opcional",
162
+ "optionDescription": "Descrição",
163
+ "optionImageAdd": "Adicionar imagem",
164
+ "optionImageError": "Não foi possível processar a imagem.",
165
+ "optionImageInvalid": "Formato de imagem não suportado.",
166
+ "optionImageRemove": "Remover imagem",
167
+ "optionImageReplace": "Substituir imagem",
168
+ "optionImageTooLarge": "Imagem muito grande (máx. 5 MB).",
169
+ "optionImageUpload": "Enviar arquivo",
170
+ "optionImageUrlPlaceholder": "https://...",
134
171
  "optionLabel": "Rótulo",
135
172
  "options": "Opções",
136
173
  "optionValue": "Valor",
@@ -144,6 +181,7 @@ declare const _default: {
144
181
  "sourceKey": "Chave de origem",
145
182
  "staticValue": "Valor estático",
146
183
  "staticValuePlaceholder": "Digite o valor padrão",
184
+ "submitConfiguration": "Configuração de envio",
147
185
  "targetKey": "Chave de destino",
148
186
  "transformArray": "Converter para array",
149
187
  "transformBoolean": "Converter para booleano",
@@ -153,7 +191,16 @@ declare const _default: {
153
191
  "transformNumber": "Converter para número",
154
192
  "transformString": "Converter para string",
155
193
  "transformType": "Tipo de transformação",
156
- "validation": "Validação"
194
+ "validation": "Validação",
195
+ "variant": "Variante",
196
+ "variantCard": "Cartão",
197
+ "variantDefault": "Padrão"
198
+ },
199
+ "nodeActionsSheet": {
200
+ "deleteNode": "Excluir nó",
201
+ "deleteNodeConfirm": "Tem certeza de que deseja excluir este nó?",
202
+ "deleteNodeSuccess": "Nó excluído com sucesso",
203
+ "editNode": "Editar nó"
157
204
  },
158
205
  "selectInputType": {
159
206
  "type": "Tipo"
@@ -172,7 +219,50 @@ declare const _default: {
172
219
  "noGroup": "Sem grupo"
173
220
  },
174
221
  "selectNodeType": {
175
- "nodeType": "Tipo de nó"
222
+ "nodeType": "Tipo de nó",
223
+ "options": {
224
+ "flow": "Fluxo externo",
225
+ "group": "Grupo",
226
+ "input": "Pergunta",
227
+ "ui": "Elemento de design"
228
+ }
229
+ },
230
+ "submitConfigForm": {
231
+ "addHeader": "Adicionar cabeçalho",
232
+ "apiUrl": "URL da API",
233
+ "apiUrlDesc": "Use {{fieldId}} para referenciar outros campos",
234
+ "apiUrlPlaceholder": "https://api.exemplo.com/submit",
235
+ "behavior": "Comportamento",
236
+ "errorMessage": "Mensagem de erro",
237
+ "errorMessageDesc": "Mensagem exibida quando o envio falha",
238
+ "errorMessagePlaceholder": "Ocorreu um erro. Por favor, tente novamente.",
239
+ "headerName": "Nome do cabeçalho",
240
+ "headers": "Cabeçalhos",
241
+ "headerValue": "Valor do cabeçalho",
242
+ "httpMethod": "Método HTTP",
243
+ "insertVariable": "Inserir variável",
244
+ "methodDelete": "DELETE",
245
+ "methodPatch": "PATCH",
246
+ "methodPost": "POST",
247
+ "methodPut": "PUT",
248
+ "noFieldsAvailable": "Nenhum campo disponível",
249
+ "postSubmission": "Após o envio",
250
+ "redirectUrl": "URL de redirecionamento",
251
+ "redirectUrlDesc": "URL para redirecionar após envio bem-sucedido",
252
+ "redirectUrlPlaceholder": "/success ou https://exemplo.com/obrigado",
253
+ "requestBody": "Corpo da requisição (JSON)",
254
+ "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.",
255
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"email\": \"{{emailUsuario}}\"}",
256
+ "selectMethod": "Selecionar método",
257
+ "sendAllFormValues": "Enviar todos os dados do formulário",
258
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
259
+ "showLoadingState": "Mostrar estado de carregamento",
260
+ "successMessage": "Mensagem de sucesso",
261
+ "successMessageDesc": "Mensagem exibida quando o envio é bem-sucedido",
262
+ "successMessagePlaceholder": "Formulário enviado com sucesso!"
263
+ },
264
+ "treegeNode": {
265
+ "labelPlaceholder": "Rótulo..."
176
266
  },
177
267
  "uiNodeForm": {
178
268
  "label": "Rótulo",
@@ -184,7 +274,9 @@ declare const _default: {
184
274
  "renderer": {
185
275
  "defaultAddressInput": {
186
276
  "enterAddress": "Digite um endereço...",
187
- "noAddressesFound": "Nenhum endereço encontrado."
277
+ "noAddressesFound": "Nenhum endereço encontrado.",
278
+ "searching": "Pesquisando...",
279
+ "typeMinChars": "Digite pelo menos 3 caracteres para pesquisar"
188
280
  },
189
281
  "defaultAutocompleteInput": {
190
282
  "noResults": "Nenhum resultado encontrado.",
@@ -192,22 +284,29 @@ declare const _default: {
192
284
  "selectOption": "Selecione uma opção"
193
285
  },
194
286
  "defaultHttpInput": {
195
- "fetchFailed": "Falha ao buscar dados",
196
- "httpError": "HTTP {status}: {statusText}",
287
+ "fetchFailed": "Falha ao buscar dados. Por favor, verifique sua conexão de rede.",
288
+ "httpError": "Erro HTTP {status}: {statusText}",
197
289
  "noDataAvailable": "Nenhum dado disponível. Configure \"Buscar na montagem\" ou adicione um parâmetro de pesquisa.",
198
290
  "noResults": "Nenhum resultado encontrado.",
199
- "noUrlConfigured": "Nenhuma URL configurada",
291
+ "noUrlConfigured": "Nenhuma URL configurada. Por favor, adicione uma URL na configuração HTTP.",
200
292
  "retry": "Tentar novamente",
201
293
  "search": "Pesquisar...",
202
294
  "searching": "Pesquisando...",
203
- "selectOption": "Selecione uma opção"
295
+ "selectOption": "Selecione uma opção",
296
+ "waitingForRequiredFields": "Aguardando campos obrigatórios"
204
297
  },
205
298
  "defaultInputs": {
299
+ "addMoreFiles": "Adicionar mais arquivos",
206
300
  "endDate": "Data de fim",
207
301
  "endTime": "Hora de fim",
302
+ "filePickerError": "Falha ao selecionar arquivo",
303
+ "filePickerUnavailable": "Seleção de arquivo indisponível. Instale react-native-document-picker.",
304
+ "replaceFile": "Substituir arquivo",
208
305
  "required": "*",
209
306
  "selectDate": "Selecionar data",
210
307
  "selectDateRange": "Selecionar intervalo de datas",
308
+ "selectFile": "Selecionar arquivo",
309
+ "selectFiles": "Selecionar arquivos",
211
310
  "startDate": "Data de início",
212
311
  "startTime": "Hora de início"
213
312
  },
@@ -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
  /**
@@ -68,6 +77,10 @@ export type HttpConfig = {
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"
@@ -100,6 +113,45 @@ export type HttpConfig = {
100
113
  */
101
114
  showLoading?: boolean;
102
115
  };
116
+ export type SubmitConfig = {
117
+ /**
118
+ * The HTTP method to use for form submission
119
+ */
120
+ method?: "POST" | "PUT" | "PATCH" | "DELETE";
121
+ /**
122
+ * The API URL to call on submit (supports template variables like {{fieldId}})
123
+ */
124
+ url?: string;
125
+ /**
126
+ * Custom headers for the HTTP request
127
+ */
128
+ headers?: HttpHeader[];
129
+ /**
130
+ * Request body (for POST/PUT/PATCH methods, supports template variables like {{fieldId}})
131
+ * Strings are automatically quoted, use: {"name": {{userName}}}
132
+ */
133
+ body?: string;
134
+ /**
135
+ * If true, automatically sends all form data as JSON body (overrides custom body)
136
+ */
137
+ sendAllFormValues?: boolean;
138
+ /**
139
+ * URL to redirect to after successful submission (supports template variables from response)
140
+ */
141
+ redirectUrl?: string;
142
+ /**
143
+ * Success message to display after successful submission (translatable)
144
+ */
145
+ successMessage?: Translatable;
146
+ /**
147
+ * Error message to display if submission fails (translatable)
148
+ */
149
+ errorMessage?: Translatable;
150
+ /**
151
+ * Whether to show a loading state while submitting
152
+ */
153
+ showLoading?: boolean;
154
+ };
103
155
  export type InputNodeData = BaseNodeData & {
104
156
  /**
105
157
  * The name of the input field, used for identification and form submission
@@ -137,6 +189,14 @@ export type InputNodeData = BaseNodeData & {
137
189
  * Whether multiple selections are allowed (for select and checkbox types)
138
190
  */
139
191
  multiple?: boolean;
192
+ /**
193
+ * Visual variant (currently used by radio inputs)
194
+ */
195
+ variant?: "default" | "card";
196
+ /**
197
+ * Whether past dates should be disabled (for date and daterange types)
198
+ */
199
+ disablePast?: boolean;
140
200
  /**
141
201
  * The default value config for the input field
142
202
  */
@@ -154,6 +214,10 @@ export type InputNodeData = BaseNodeData & {
154
214
  * HTTP configuration for the input field (used with type="http")
155
215
  */
156
216
  httpConfig?: HttpConfig;
217
+ /**
218
+ * Submit configuration for the input field (used with type="submit")
219
+ */
220
+ submitConfig?: SubmitConfig;
157
221
  };
158
222
  export type UINodeData = BaseNodeData & {
159
223
  /**