treege 3.0.0-beta.8 → 3.0.0-beta40

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 (137) hide show
  1. package/LICENSE +18 -12
  2. package/README.md +213 -30
  3. package/dist/DefaultInputs-8yJMEyMh.js +1557 -0
  4. package/dist/ThemeContext-Ejgu9Mwr.js +1603 -0
  5. package/dist/editor/components/input/ComboboxWithCreate.d.ts +2 -1
  6. package/dist/editor/constants/defaultNode.d.ts +1 -1
  7. package/dist/editor/constants/edgeTypes.d.ts +3 -2
  8. package/dist/editor/constants/inputTypeIcons.d.ts +3 -0
  9. package/dist/editor/constants/nodeSpacing.d.ts +33 -0
  10. package/dist/editor/constants/nodeTypes.d.ts +5 -5
  11. package/dist/editor/context/TreegeEditorContext.d.ts +53 -1
  12. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
  13. package/dist/editor/features/TreegeEditor/dialogs/ChangeNodeTypeDialog.d.ts +2 -0
  14. package/dist/editor/features/TreegeEditor/dialogs/DeleteNodeDialog.d.ts +2 -0
  15. package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +2 -2
  16. package/dist/editor/features/TreegeEditor/edges/DefaultEdge.d.ts +3 -0
  17. package/dist/editor/features/TreegeEditor/forms/SubmitConfigForm.d.ts +7 -0
  18. package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +2 -1
  19. package/dist/editor/features/TreegeEditor/inputs/OptionImageField.d.ts +6 -0
  20. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +2 -2
  21. package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +6 -0
  22. package/dist/editor/features/TreegeEditor/nodes/components/BottomHandleDropdown.d.ts +6 -0
  23. package/dist/editor/features/TreegeEditor/nodes/components/NodeInputPreview.d.ts +7 -0
  24. package/dist/editor/features/TreegeEditor/nodes/components/NodeLabelInput.d.ts +9 -0
  25. package/dist/editor/features/TreegeEditor/nodes/components/NodeMoreMenu.d.ts +6 -0
  26. package/dist/editor/features/TreegeEditor/nodes/components/NodeTypeBadge.d.ts +7 -0
  27. package/dist/editor/features/TreegeEditor/nodes/components/OptionsEditor.d.ts +7 -0
  28. package/dist/editor/features/TreegeEditor/nodes/components/RequiredBadge.d.ts +6 -0
  29. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +2 -1
  30. package/dist/editor/features/TreegeEditor/panel/AIGeneratorDialog.d.ts +16 -0
  31. package/dist/editor/hooks/useAutoLayout.d.ts +15 -0
  32. package/dist/editor/hooks/useFlowActions.d.ts +5 -2
  33. package/dist/editor/hooks/useFlowConnections.d.ts +4 -0
  34. package/dist/editor/hooks/useNodesSelection.d.ts +5 -5
  35. package/dist/editor/types/ai.d.ts +65 -0
  36. package/dist/editor/types/editor.d.ts +9 -8
  37. package/dist/editor/utils/aiFlowGenerator.d.ts +5 -0
  38. package/dist/editor/utils/dagreLayout.d.ts +17 -0
  39. package/dist/editor/utils/edge.d.ts +14 -0
  40. package/dist/editor/utils/image.d.ts +7 -0
  41. package/dist/editor/utils/inputTypeIcon.d.ts +6 -0
  42. package/dist/editor-DWJ95r4g.js +4001 -0
  43. package/dist/editor.js +3 -7
  44. package/dist/main.js +4 -52
  45. package/dist/renderer/context/TreegeRendererContext.d.ts +4 -1
  46. package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +19 -11
  47. package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -7
  48. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +7 -7
  49. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +21 -15
  50. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +9 -7
  51. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButtonWrapper.d.ts +11 -0
  52. package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +8 -7
  53. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAddressInput.d.ts +3 -0
  54. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
  55. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultCheckboxInput.d.ts +3 -0
  56. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateInput.d.ts +3 -0
  57. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultDateRangeInput.d.ts +3 -0
  58. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultFileInput.d.ts +3 -0
  59. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHiddenInput.d.ts +3 -0
  60. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultHttpInput.d.ts +3 -0
  61. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultNumberInput.d.ts +3 -0
  62. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultPasswordInput.d.ts +3 -0
  63. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultRadioInput.d.ts +3 -0
  64. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSelectInput.d.ts +3 -0
  65. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultSwitchInput.d.ts +3 -0
  66. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextInput.d.ts +3 -0
  67. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTextareaInput.d.ts +3 -0
  68. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeInput.d.ts +3 -0
  69. package/dist/renderer/features/TreegeRenderer/native/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
  70. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +84 -24
  71. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
  72. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +1 -1
  73. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +1 -1
  74. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +1 -1
  75. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +1 -1
  76. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +1 -1
  77. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +1 -1
  78. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +1 -1
  79. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +1 -1
  80. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +1 -1
  81. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +1 -1
  82. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +1 -1
  83. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +1 -1
  84. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +1 -1
  85. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSubmitInput.d.ts +3 -0
  86. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +1 -1
  87. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +1 -1
  88. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +1 -1
  89. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +1 -1
  90. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +1 -1
  91. package/dist/renderer/hooks/useRenderNode.d.ts +55 -0
  92. package/dist/renderer/hooks/useSubmitHandler.d.ts +34 -0
  93. package/dist/renderer/hooks/useTranslate.d.ts +6 -4
  94. package/dist/renderer/index.d.ts +2 -0
  95. package/dist/renderer/index.native.d.ts +19 -0
  96. package/dist/renderer/types/renderer.d.ts +60 -6
  97. package/dist/renderer/utils/form.d.ts +22 -2
  98. package/dist/renderer/utils/http.d.ts +101 -0
  99. package/dist/renderer/utils/node.d.ts +18 -1
  100. package/dist/renderer/utils/sanitize.d.ts +85 -0
  101. package/dist/renderer/utils/sanitize.native.d.ts +69 -0
  102. package/dist/renderer/utils/submit.d.ts +47 -0
  103. package/dist/renderer-native.d.ts +2 -0
  104. package/dist/renderer-native.js +3496 -0
  105. package/dist/renderer.js +3 -45
  106. package/dist/shared/components/ui/badge.d.ts +2 -2
  107. package/dist/shared/components/ui/button.d.ts +2 -2
  108. package/dist/shared/components/ui/collapsible.d.ts +1 -1
  109. package/dist/shared/components/ui/command.d.ts +1 -1
  110. package/dist/shared/components/ui/dropdown-menu.d.ts +1 -1
  111. package/dist/shared/components/ui/form.d.ts +1 -1
  112. package/dist/shared/components/ui/popover.d.ts +4 -2
  113. package/dist/shared/components/ui/select.d.ts +3 -1
  114. package/dist/shared/components/ui/sheet.d.ts +1 -1
  115. package/dist/shared/components/ui/tooltip.d.ts +1 -1
  116. package/dist/shared/constants/colors.d.ts +45 -0
  117. package/dist/shared/constants/inputType.d.ts +1 -0
  118. package/dist/shared/context/ThemeContext.d.ts +2 -0
  119. package/dist/shared/context/ThemeContext.native.d.ts +22 -0
  120. package/dist/shared/hooks/useThemeColors.d.ts +37 -0
  121. package/dist/shared/locales/ar.json.d.ts +117 -10
  122. package/dist/shared/locales/de.json.d.ts +118 -11
  123. package/dist/shared/locales/en.json.d.ts +119 -12
  124. package/dist/shared/locales/es.json.d.ts +118 -11
  125. package/dist/shared/locales/fr.json.d.ts +118 -11
  126. package/dist/shared/locales/it.json.d.ts +118 -11
  127. package/dist/shared/locales/pt.json.d.ts +118 -11
  128. package/dist/shared/types/edge.d.ts +6 -0
  129. package/dist/shared/types/node.d.ts +64 -0
  130. package/package.json +38 -12
  131. package/dist/ThemeContext-BIvs8Kw-.js +0 -758
  132. package/dist/TreegeEditor-Lv5Tn9_F.js +0 -2152
  133. package/dist/TreegeRenderer-D3EvsEfJ.js +0 -1413
  134. package/dist/editor/features/TreegeEditor/inputs/SelectInputType.d.ts +0 -7
  135. package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +0 -6
  136. package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +0 -6
  137. package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +0 -6
@@ -4,14 +4,17 @@ declare const _default: {
4
4
  "clear": "Cancella",
5
5
  "close": "Chiudi",
6
6
  "create": "Crea",
7
+ "delete": "Elimina",
8
+ "other": "Altro",
7
9
  "retry": "Riprova",
8
10
  "save": "Salva",
11
+ "settings": "Impostazioni",
9
12
  "submit": "Invia",
10
13
  "toggle": "Attiva/Disattiva"
11
14
  },
12
15
  "editor": {
13
16
  "actionsPanel": {
14
- "addNode": "Aggiungi nodo",
17
+ "addNode": "Aggiungi elemento",
15
18
  "clear": "Pulisci",
16
19
  "clearSuccess": "Flusso pulito!",
17
20
  "clearSuccessDesc": "Tutti i nodi e gli archi sono stati rimossi.",
@@ -28,6 +31,32 @@ declare const _default: {
28
31
  "parseError": "Errore nell'analisi del file JSON.",
29
32
  "parseErrorDesc": "Prova a correggere il file e importarlo di nuovo."
30
33
  },
34
+ "aiGenerator": {
35
+ "aiNotConfigured": "IA non configurata",
36
+ "aiNotConfiguredDesc": "Aggiungi la prop {code} a TreegeEditorProvider",
37
+ "buttonLabel": "Genera con IA",
38
+ "cancel": "Annulla",
39
+ "description": "Descrizione",
40
+ "descriptionPlaceholder": "Esempio: Crea un modulo di contatto con nome, email, telefono e messaggio",
41
+ "enterDescription": "Inserisci una descrizione",
42
+ "failedToGenerate": "Errore nella generazione dell'albero",
43
+ "generate": "Genera",
44
+ "generating": "Generazione...",
45
+ "keyboardShortcut": "Premi {cmdEnter} o {ctrlEnter} per generare",
46
+ "missingApiKey": "Configurazione IA mancante",
47
+ "missingApiKeyDesc": "Configura la tua chiave API IA in TreegeEditorProvider",
48
+ "successDescription": "{nodes} nodi e {edges} archi creati",
49
+ "successTitle": "Albero generato con successo!",
50
+ "title": "Genera flusso con IA",
51
+ "titleDescription": "Descrivi il modulo o l'albero decisionale che vuoi creare, e l'IA lo genererà per te.",
52
+ "unknownError": "Errore sconosciuto"
53
+ },
54
+ "changeNodeTypeDialog": {
55
+ "description": "Questo nodo ha più rami in uscita. Il nuovo tipo ne supporta solo uno. Scegli quale ramo mantenere; gli altri verranno rimossi.",
56
+ "keepBranch": "Mantieni questo ramo",
57
+ "noConditions": "Nessuna condizione",
58
+ "title": "Cambia tipo di nodo"
59
+ },
31
60
  "comboboxPattern": {
32
61
  "custom": "Personalizzato: {value}",
33
62
  "search": "Cerca schemi...",
@@ -46,6 +75,7 @@ declare const _default: {
46
75
  "conditionsAnd": "condizioni (E)",
47
76
  "conditionsMixed": "condizioni (miste)",
48
77
  "conditionsOr": "condizioni (O)",
78
+ "defineCondition": "Definisci una condizione",
49
79
  "displayConditions": "Mostra condizioni",
50
80
  "displayConditionsDesc": "Questo campo verrà mostrato se vengono soddisfatte le seguenti condizioni.",
51
81
  "fallback": "Predefinito",
@@ -94,8 +124,8 @@ declare const _default: {
94
124
  "methodPut": "PUT",
95
125
  "noFieldsAvailable": "Nessun campo disponibile",
96
126
  "requestBody": "Corpo della richiesta (JSON)",
97
- "requestBodyDesc": "Usa variabili template come ${fieldId} per riferire altri campi",
98
- "requestBodyPlaceholder": "{\"chiave\": \"valore\"}",
127
+ "requestBodyDesc": "Usa {{fieldId}} per riferire altri campi. Assicurati che la formattazione JSON sia corretta, comprese le virgolette attorno ai valori stringa.",
128
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUtente}}\", \"eta\": {{etaUtente}}}",
99
129
  "responseConfiguration": "Configurazione della risposta",
100
130
  "responsePath": "Percorso della risposta",
101
131
  "responsePathDesc": "Estrai dati dalla risposta usando la notazione a punti o l'indicizzazione dell'array",
@@ -104,6 +134,8 @@ declare const _default: {
104
134
  "searchParameterDesc": "Se impostato, abilita una casella di ricerca che aggiunge questo parametro alle chiamate API (es: ?q=Parigi)",
105
135
  "searchParameterPlaceholder": "q, ricerca, query...",
106
136
  "selectMethod": "Seleziona metodo",
137
+ "sendAllFormValues": "Invia tutti i dati del modulo",
138
+ "sendAllFormValuesDesc": "Invia automaticamente tutti i valori del modulo come corpo JSON",
107
139
  "showLoadingState": "Mostra stato di caricamento",
108
140
  "valueField": "Campo valore",
109
141
  "valueFieldDesc": "Campo da usare come valore dell'opzione (es: id)",
@@ -112,7 +144,7 @@ declare const _default: {
112
144
  "inputNodeForm": {
113
145
  "addInputFieldsBeforeReference": "Aggiungi campi di input prima di questo nodo per riferirli",
114
146
  "addMapping": "Aggiungi mappatura",
115
- "addOption": "+ Aggiungi opzione",
147
+ "addOption": "Aggiungi opzione",
116
148
  "advancedConfiguration": "Configurazione avanzata",
117
149
  "defaultChecked": "Selezionato per impostazione predefinita",
118
150
  "defaultValuesCommaSeparated": "Valori predefiniti (separati da virgole)",
@@ -121,6 +153,7 @@ declare const _default: {
121
153
  "defaultValueTypeNone": "Nessuno",
122
154
  "defaultValueTypeReference": "Campo di riferimento",
123
155
  "defaultValueTypeStatic": "Valore statico",
156
+ "disablePast": "Disabilita date passate",
124
157
  "errorMessage": "Messaggio di errore",
125
158
  "helperText": "Testo di aiuto",
126
159
  "httpConfiguration": "Configurazione HTTP",
@@ -128,9 +161,20 @@ declare const _default: {
128
161
  "multipleFiles": "File multipli",
129
162
  "multipleSelection": "Selezione multipla",
130
163
  "name": "Nome",
164
+ "nameDescription": "Nome campo personalizzato opzionale per l'esportazione del modulo. Se vuoto, l'etichetta verrà utilizzata come chiave.",
131
165
  "noParentFieldsAvailable": "Nessun campo genitore disponibile",
132
166
  "objectMapping": "Mappatura oggetto",
133
167
  "objectMappingDesc": "Mappa le proprietà dell'oggetto sorgente su una nuova struttura",
168
+ "optional": "Opzionale",
169
+ "optionDescription": "Descrizione",
170
+ "optionImageAdd": "Aggiungi immagine",
171
+ "optionImageError": "Impossibile elaborare l'immagine.",
172
+ "optionImageInvalid": "Formato immagine non supportato.",
173
+ "optionImageRemove": "Rimuovi immagine",
174
+ "optionImageReplace": "Sostituisci immagine",
175
+ "optionImageTooLarge": "Immagine troppo grande (max 5 MB).",
176
+ "optionImageUpload": "Carica file",
177
+ "optionImageUrlPlaceholder": "https://...",
134
178
  "optionLabel": "Etichetta",
135
179
  "options": "Opzioni",
136
180
  "optionValue": "Valore",
@@ -144,6 +188,7 @@ declare const _default: {
144
188
  "sourceKey": "Chiave sorgente",
145
189
  "staticValue": "Valore statico",
146
190
  "staticValuePlaceholder": "Inserisci valore predefinito",
191
+ "submitConfiguration": "Configurazione di invio",
147
192
  "targetKey": "Chiave destinazione",
148
193
  "transformArray": "Converti in array",
149
194
  "transformBoolean": "Converti in booleano",
@@ -153,7 +198,16 @@ declare const _default: {
153
198
  "transformNumber": "Converti in numero",
154
199
  "transformString": "Converti in stringa",
155
200
  "transformType": "Tipo di trasformazione",
156
- "validation": "Validazione"
201
+ "validation": "Validazione",
202
+ "variant": "Variante",
203
+ "variantCard": "Scheda",
204
+ "variantDefault": "Predefinito"
205
+ },
206
+ "nodeActionsSheet": {
207
+ "deleteNode": "Elimina nodo",
208
+ "deleteNodeConfirm": "Sei sicuro di voler eliminare questo nodo?",
209
+ "deleteNodeSuccess": "Nodo eliminato con successo",
210
+ "editNode": "Modifica nodo"
157
211
  },
158
212
  "selectInputType": {
159
213
  "type": "Tipo"
@@ -172,7 +226,50 @@ declare const _default: {
172
226
  "noGroup": "Nessun gruppo"
173
227
  },
174
228
  "selectNodeType": {
175
- "nodeType": "Tipo di nodo"
229
+ "nodeType": "Tipo di nodo",
230
+ "options": {
231
+ "flow": "Flusso esterno",
232
+ "group": "Gruppo",
233
+ "input": "Domanda",
234
+ "ui": "Elemento di design"
235
+ }
236
+ },
237
+ "submitConfigForm": {
238
+ "addHeader": "Aggiungi intestazione",
239
+ "apiUrl": "URL dell'API",
240
+ "apiUrlDesc": "Usa {{fieldId}} per riferire altri campi",
241
+ "apiUrlPlaceholder": "https://api.esempio.it/submit",
242
+ "behavior": "Comportamento",
243
+ "errorMessage": "Messaggio di errore",
244
+ "errorMessageDesc": "Messaggio visualizzato quando l'invio fallisce",
245
+ "errorMessagePlaceholder": "Si è verificato un errore. Riprova.",
246
+ "headerName": "Nome intestazione",
247
+ "headers": "Intestazioni",
248
+ "headerValue": "Valore intestazione",
249
+ "httpMethod": "Metodo HTTP",
250
+ "insertVariable": "Inserisci variabile",
251
+ "methodDelete": "DELETE",
252
+ "methodPatch": "PATCH",
253
+ "methodPost": "POST",
254
+ "methodPut": "PUT",
255
+ "noFieldsAvailable": "Nessun campo disponibile",
256
+ "postSubmission": "Dopo l'invio",
257
+ "redirectUrl": "URL di reindirizzamento",
258
+ "redirectUrlDesc": "URL a cui reindirizzare dopo un invio riuscito",
259
+ "redirectUrlPlaceholder": "/success o https://esempio.it/grazie",
260
+ "requestBody": "Corpo della richiesta (JSON)",
261
+ "requestBodyDesc": "Usa {{fieldId}} per riferire altri campi. Assicurati che la formattazione JSON sia corretta, comprese le virgolette attorno ai valori stringa.",
262
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUtente}}\", \"email\": \"{{emailUtente}}\"}",
263
+ "selectMethod": "Seleziona metodo",
264
+ "sendAllFormValues": "Invia tutti i dati del modulo",
265
+ "sendAllFormValuesDesc": "Invia automaticamente tutti i valori del modulo come corpo JSON",
266
+ "showLoadingState": "Mostra stato di caricamento",
267
+ "successMessage": "Messaggio di successo",
268
+ "successMessageDesc": "Messaggio visualizzato quando l'invio ha successo",
269
+ "successMessagePlaceholder": "Modulo inviato con successo!"
270
+ },
271
+ "treegeNode": {
272
+ "labelPlaceholder": "Etichetta..."
176
273
  },
177
274
  "uiNodeForm": {
178
275
  "label": "Etichetta",
@@ -184,7 +281,9 @@ declare const _default: {
184
281
  "renderer": {
185
282
  "defaultAddressInput": {
186
283
  "enterAddress": "Inserisci un indirizzo...",
187
- "noAddressesFound": "Nessun indirizzo trovato."
284
+ "noAddressesFound": "Nessun indirizzo trovato.",
285
+ "searching": "Ricerca in corso...",
286
+ "typeMinChars": "Digita almeno 3 caratteri per cercare"
188
287
  },
189
288
  "defaultAutocompleteInput": {
190
289
  "noResults": "Nessun risultato trovato.",
@@ -192,22 +291,30 @@ declare const _default: {
192
291
  "selectOption": "Seleziona un'opzione"
193
292
  },
194
293
  "defaultHttpInput": {
195
- "fetchFailed": "Impossibile recuperare i dati",
196
- "httpError": "HTTP {status}: {statusText}",
294
+ "fetchFailed": "Impossibile recuperare i dati. Controlla la tua connessione di rete.",
295
+ "httpError": "Errore HTTP {status}: {statusText}",
197
296
  "noDataAvailable": "Nessun dato disponibile. Configura \"Carica al montaggio\" o aggiungi un parametro di ricerca.",
198
297
  "noResults": "Nessun risultato trovato.",
199
- "noUrlConfigured": "Nessun URL configurato",
298
+ "noUrlConfigured": "Nessun URL configurato. Aggiungi un URL nella configurazione HTTP.",
200
299
  "retry": "Riprova",
201
300
  "search": "Cerca...",
202
301
  "searching": "Ricerca in corso...",
203
- "selectOption": "Seleziona un'opzione"
302
+ "selectOption": "Seleziona un'opzione",
303
+ "waitingForRequiredFields": "In attesa dei campi richiesti"
204
304
  },
205
305
  "defaultInputs": {
306
+ "addMoreFiles": "Aggiungi altri file",
206
307
  "endDate": "Data di fine",
207
308
  "endTime": "Ora di fine",
309
+ "filePickerError": "Errore nella selezione del file",
310
+ "filePickerUnavailable": "Selezione file non disponibile. Installare react-native-document-picker.",
311
+ "newAnswer": "Nuova risposta...",
312
+ "replaceFile": "Sostituisci file",
208
313
  "required": "*",
209
314
  "selectDate": "Seleziona data",
210
315
  "selectDateRange": "Seleziona intervallo di date",
316
+ "selectFile": "Seleziona file",
317
+ "selectFiles": "Seleziona file",
211
318
  "startDate": "Data di inizio",
212
319
  "startTime": "Ora di inizio"
213
320
  },
@@ -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,32 @@ 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
+ },
54
+ "changeNodeTypeDialog": {
55
+ "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.",
56
+ "keepBranch": "Manter esta ramificação",
57
+ "noConditions": "Sem condições",
58
+ "title": "Alterar tipo de nó"
59
+ },
31
60
  "comboboxPattern": {
32
61
  "custom": "Personalizado: {value}",
33
62
  "search": "Pesquisar padrões...",
@@ -46,6 +75,7 @@ declare const _default: {
46
75
  "conditionsAnd": "condições (E)",
47
76
  "conditionsMixed": "condições (mistas)",
48
77
  "conditionsOr": "condições (OU)",
78
+ "defineCondition": "Definir uma condição",
49
79
  "displayConditions": "Exibir condições",
50
80
  "displayConditionsDesc": "Este campo será exibido se as seguintes condições forem atendidas.",
51
81
  "fallback": "Padrão",
@@ -94,8 +124,8 @@ declare const _default: {
94
124
  "methodPut": "PUT",
95
125
  "noFieldsAvailable": "Nenhum campo disponível",
96
126
  "requestBody": "Corpo da requisição (JSON)",
97
- "requestBodyDesc": "Use variáveis de modelo como ${fieldId} para referenciar outros campos",
98
- "requestBodyPlaceholder": "{\"chave\": \"valor\"}",
127
+ "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.",
128
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"idade\": {{idadeUsuario}}}",
99
129
  "responseConfiguration": "Configuração da resposta",
100
130
  "responsePath": "Caminho da resposta",
101
131
  "responsePathDesc": "Extrair dados da resposta usando notação de ponto ou indexação de array",
@@ -104,6 +134,8 @@ declare const _default: {
104
134
  "searchParameterDesc": "Se definido, habilita uma caixa de pesquisa que adiciona este parâmetro às chamadas de API (ex: ?q=Paris)",
105
135
  "searchParameterPlaceholder": "q, pesquisa, consulta...",
106
136
  "selectMethod": "Selecionar método",
137
+ "sendAllFormValues": "Enviar todos os dados do formulário",
138
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
107
139
  "showLoadingState": "Mostrar estado de carregamento",
108
140
  "valueField": "Campo de valor",
109
141
  "valueFieldDesc": "Campo a ser usado como valor da opção (ex: id)",
@@ -112,7 +144,7 @@ declare const _default: {
112
144
  "inputNodeForm": {
113
145
  "addInputFieldsBeforeReference": "Adicione campos de entrada antes deste nó para referenciá-los",
114
146
  "addMapping": "Adicionar mapeamento",
115
- "addOption": "+ Adicionar opção",
147
+ "addOption": "Adicionar opção",
116
148
  "advancedConfiguration": "Configuração avançada",
117
149
  "defaultChecked": "Marcado por padrão",
118
150
  "defaultValuesCommaSeparated": "Valores padrão (separados por vírgulas)",
@@ -121,6 +153,7 @@ declare const _default: {
121
153
  "defaultValueTypeNone": "Nenhum",
122
154
  "defaultValueTypeReference": "Campo de referência",
123
155
  "defaultValueTypeStatic": "Valor estático",
156
+ "disablePast": "Desativar datas passadas",
124
157
  "errorMessage": "Mensagem de erro",
125
158
  "helperText": "Texto de ajuda",
126
159
  "httpConfiguration": "Configuração HTTP",
@@ -128,9 +161,20 @@ declare const _default: {
128
161
  "multipleFiles": "Arquivos múltiplos",
129
162
  "multipleSelection": "Seleção múltipla",
130
163
  "name": "Nome",
164
+ "nameDescription": "Nome de campo personalizado opcional para exportação de formulário. Se vazio, o rótulo será usado como chave.",
131
165
  "noParentFieldsAvailable": "Nenhum campo pai disponível",
132
166
  "objectMapping": "Mapeamento de objeto",
133
167
  "objectMappingDesc": "Mapear as propriedades do objeto de origem para uma nova estrutura",
168
+ "optional": "Opcional",
169
+ "optionDescription": "Descrição",
170
+ "optionImageAdd": "Adicionar imagem",
171
+ "optionImageError": "Não foi possível processar a imagem.",
172
+ "optionImageInvalid": "Formato de imagem não suportado.",
173
+ "optionImageRemove": "Remover imagem",
174
+ "optionImageReplace": "Substituir imagem",
175
+ "optionImageTooLarge": "Imagem muito grande (máx. 5 MB).",
176
+ "optionImageUpload": "Enviar arquivo",
177
+ "optionImageUrlPlaceholder": "https://...",
134
178
  "optionLabel": "Rótulo",
135
179
  "options": "Opções",
136
180
  "optionValue": "Valor",
@@ -144,6 +188,7 @@ declare const _default: {
144
188
  "sourceKey": "Chave de origem",
145
189
  "staticValue": "Valor estático",
146
190
  "staticValuePlaceholder": "Digite o valor padrão",
191
+ "submitConfiguration": "Configuração de envio",
147
192
  "targetKey": "Chave de destino",
148
193
  "transformArray": "Converter para array",
149
194
  "transformBoolean": "Converter para booleano",
@@ -153,7 +198,16 @@ declare const _default: {
153
198
  "transformNumber": "Converter para número",
154
199
  "transformString": "Converter para string",
155
200
  "transformType": "Tipo de transformação",
156
- "validation": "Validação"
201
+ "validation": "Validação",
202
+ "variant": "Variante",
203
+ "variantCard": "Cartão",
204
+ "variantDefault": "Padrão"
205
+ },
206
+ "nodeActionsSheet": {
207
+ "deleteNode": "Excluir nó",
208
+ "deleteNodeConfirm": "Tem certeza de que deseja excluir este nó?",
209
+ "deleteNodeSuccess": "Nó excluído com sucesso",
210
+ "editNode": "Editar nó"
157
211
  },
158
212
  "selectInputType": {
159
213
  "type": "Tipo"
@@ -172,7 +226,50 @@ declare const _default: {
172
226
  "noGroup": "Sem grupo"
173
227
  },
174
228
  "selectNodeType": {
175
- "nodeType": "Tipo de nó"
229
+ "nodeType": "Tipo de nó",
230
+ "options": {
231
+ "flow": "Fluxo externo",
232
+ "group": "Grupo",
233
+ "input": "Pergunta",
234
+ "ui": "Elemento de design"
235
+ }
236
+ },
237
+ "submitConfigForm": {
238
+ "addHeader": "Adicionar cabeçalho",
239
+ "apiUrl": "URL da API",
240
+ "apiUrlDesc": "Use {{fieldId}} para referenciar outros campos",
241
+ "apiUrlPlaceholder": "https://api.exemplo.com/submit",
242
+ "behavior": "Comportamento",
243
+ "errorMessage": "Mensagem de erro",
244
+ "errorMessageDesc": "Mensagem exibida quando o envio falha",
245
+ "errorMessagePlaceholder": "Ocorreu um erro. Por favor, tente novamente.",
246
+ "headerName": "Nome do cabeçalho",
247
+ "headers": "Cabeçalhos",
248
+ "headerValue": "Valor do cabeçalho",
249
+ "httpMethod": "Método HTTP",
250
+ "insertVariable": "Inserir variável",
251
+ "methodDelete": "DELETE",
252
+ "methodPatch": "PATCH",
253
+ "methodPost": "POST",
254
+ "methodPut": "PUT",
255
+ "noFieldsAvailable": "Nenhum campo disponível",
256
+ "postSubmission": "Após o envio",
257
+ "redirectUrl": "URL de redirecionamento",
258
+ "redirectUrlDesc": "URL para redirecionar após envio bem-sucedido",
259
+ "redirectUrlPlaceholder": "/success ou https://exemplo.com/obrigado",
260
+ "requestBody": "Corpo da requisição (JSON)",
261
+ "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.",
262
+ "requestBodyPlaceholder": "{\"nome\": \"{{nomeUsuario}}\", \"email\": \"{{emailUsuario}}\"}",
263
+ "selectMethod": "Selecionar método",
264
+ "sendAllFormValues": "Enviar todos os dados do formulário",
265
+ "sendAllFormValuesDesc": "Enviar automaticamente todos os valores do formulário como corpo JSON",
266
+ "showLoadingState": "Mostrar estado de carregamento",
267
+ "successMessage": "Mensagem de sucesso",
268
+ "successMessageDesc": "Mensagem exibida quando o envio é bem-sucedido",
269
+ "successMessagePlaceholder": "Formulário enviado com sucesso!"
270
+ },
271
+ "treegeNode": {
272
+ "labelPlaceholder": "Rótulo..."
176
273
  },
177
274
  "uiNodeForm": {
178
275
  "label": "Rótulo",
@@ -184,7 +281,9 @@ declare const _default: {
184
281
  "renderer": {
185
282
  "defaultAddressInput": {
186
283
  "enterAddress": "Digite um endereço...",
187
- "noAddressesFound": "Nenhum endereço encontrado."
284
+ "noAddressesFound": "Nenhum endereço encontrado.",
285
+ "searching": "Pesquisando...",
286
+ "typeMinChars": "Digite pelo menos 3 caracteres para pesquisar"
188
287
  },
189
288
  "defaultAutocompleteInput": {
190
289
  "noResults": "Nenhum resultado encontrado.",
@@ -192,22 +291,30 @@ declare const _default: {
192
291
  "selectOption": "Selecione uma opção"
193
292
  },
194
293
  "defaultHttpInput": {
195
- "fetchFailed": "Falha ao buscar dados",
196
- "httpError": "HTTP {status}: {statusText}",
294
+ "fetchFailed": "Falha ao buscar dados. Por favor, verifique sua conexão de rede.",
295
+ "httpError": "Erro HTTP {status}: {statusText}",
197
296
  "noDataAvailable": "Nenhum dado disponível. Configure \"Buscar na montagem\" ou adicione um parâmetro de pesquisa.",
198
297
  "noResults": "Nenhum resultado encontrado.",
199
- "noUrlConfigured": "Nenhuma URL configurada",
298
+ "noUrlConfigured": "Nenhuma URL configurada. Por favor, adicione uma URL na configuração HTTP.",
200
299
  "retry": "Tentar novamente",
201
300
  "search": "Pesquisar...",
202
301
  "searching": "Pesquisando...",
203
- "selectOption": "Selecione uma opção"
302
+ "selectOption": "Selecione uma opção",
303
+ "waitingForRequiredFields": "Aguardando campos obrigatórios"
204
304
  },
205
305
  "defaultInputs": {
306
+ "addMoreFiles": "Adicionar mais arquivos",
206
307
  "endDate": "Data de fim",
207
308
  "endTime": "Hora de fim",
309
+ "filePickerError": "Falha ao selecionar arquivo",
310
+ "filePickerUnavailable": "Seleção de arquivo indisponível. Instale react-native-document-picker.",
311
+ "newAnswer": "Nova resposta...",
312
+ "replaceFile": "Substituir arquivo",
208
313
  "required": "*",
209
314
  "selectDate": "Selecionar data",
210
315
  "selectDateRange": "Selecionar intervalo de datas",
316
+ "selectFile": "Selecionar arquivo",
317
+ "selectFiles": "Selecionar arquivos",
211
318
  "startDate": "Data de início",
212
319
  "startTime": "Hora de início"
213
320
  },
@@ -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
  /**
@@ -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
  /**