treege 2.1.0 → 3.0.0-beta.2

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 (226) hide show
  1. package/README.md +378 -64
  2. package/dist/ThemeContext-BIvs8Kw-.js +758 -0
  3. package/dist/TreegeEditor-BSPfQQk3.js +2151 -0
  4. package/dist/TreegeRenderer-D3EvsEfJ.js +1413 -0
  5. package/dist/_name_.css +1 -0
  6. package/dist/editor/components/data-display/logo.d.ts +5 -0
  7. package/dist/editor/components/input/ComboboxWithCreate.d.ts +21 -0
  8. package/dist/editor/constants/defaultNode.d.ts +11 -0
  9. package/dist/editor/constants/edgeTypes.d.ts +3 -0
  10. package/dist/editor/constants/nodeTypes.d.ts +6 -0
  11. package/dist/editor/context/TreegeEditorContext.d.ts +12 -0
  12. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +3 -0
  13. package/dist/editor/features/TreegeEditor/edges/ConditionalEdge.d.ts +6 -0
  14. package/dist/editor/features/TreegeEditor/forms/FlowNodeForm.d.ts +2 -0
  15. package/dist/editor/features/TreegeEditor/forms/GroupNodeForm.d.ts +2 -0
  16. package/dist/editor/features/TreegeEditor/forms/HttpConfigForm.d.ts +7 -0
  17. package/dist/editor/features/TreegeEditor/forms/InputNodeForm.d.ts +2 -0
  18. package/dist/editor/features/TreegeEditor/forms/UINodeForm.d.ts +2 -0
  19. package/dist/editor/features/TreegeEditor/inputs/ComboboxPattern.d.ts +6 -0
  20. package/dist/editor/features/TreegeEditor/inputs/SelectInputType.d.ts +7 -0
  21. package/dist/editor/features/TreegeEditor/inputs/SelectLanguage.d.ts +7 -0
  22. package/dist/editor/features/TreegeEditor/inputs/SelectNodeGroup.d.ts +2 -0
  23. package/dist/editor/features/TreegeEditor/inputs/SelectNodeType.d.ts +2 -0
  24. package/dist/editor/features/TreegeEditor/nodes/FlowNode.d.ts +6 -0
  25. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +6 -0
  26. package/dist/editor/features/TreegeEditor/nodes/InputNode.d.ts +6 -0
  27. package/dist/editor/features/TreegeEditor/nodes/UINode.d.ts +6 -0
  28. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +6 -0
  29. package/dist/editor/features/TreegeEditor/panel/ActionsPanel.d.ts +7 -0
  30. package/dist/editor/features/TreegeEditor/sheets/NodeActionsSheet.d.ts +2 -0
  31. package/dist/editor/hooks/useAvailableParentFields.d.ts +7 -0
  32. package/dist/editor/hooks/useEdgesSelection.d.ts +11 -0
  33. package/dist/editor/hooks/useFlowActions.d.ts +12 -0
  34. package/dist/editor/hooks/useFlowConnections.d.ts +15 -0
  35. package/dist/editor/hooks/useNodesSelection.d.ts +54 -0
  36. package/dist/editor/hooks/useTranslate.d.ts +19 -0
  37. package/dist/editor/index.d.ts +4 -0
  38. package/dist/editor/types/editor.d.ts +37 -0
  39. package/dist/editor.d.ts +2 -0
  40. package/dist/editor.js +7 -0
  41. package/dist/favicon.svg +12 -0
  42. package/dist/main.d.ts +7 -4
  43. package/dist/main.js +50 -7672
  44. package/dist/renderer/context/TreegeConfigContext.d.ts +39 -0
  45. package/dist/renderer/context/TreegeRendererContext.d.ts +25 -0
  46. package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +13 -0
  47. package/dist/renderer/features/TreegeRenderer/native/components/DefaultFormWrapper.d.ts +7 -0
  48. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +7 -0
  49. package/dist/renderer/features/TreegeRenderer/native/components/DefaultHttpInput.d.ts +15 -0
  50. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputs.d.ts +15 -0
  51. package/dist/renderer/features/TreegeRenderer/native/components/DefaultSubmitButton.d.ts +7 -0
  52. package/dist/renderer/features/TreegeRenderer/native/components/DefaultUI.d.ts +7 -0
  53. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +50 -0
  54. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +3 -0
  55. package/dist/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.d.ts +6 -0
  56. package/dist/renderer/features/TreegeRenderer/web/components/DefaultGroup.d.ts +6 -0
  57. package/dist/renderer/features/TreegeRenderer/web/components/DefaultInputs.d.ts +20 -0
  58. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButton.d.ts +9 -0
  59. package/dist/renderer/features/TreegeRenderer/web/components/DefaultSubmitButtonWrapper.d.ts +10 -0
  60. package/dist/renderer/features/TreegeRenderer/web/components/DefaultUI.d.ts +7 -0
  61. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAddressInput.d.ts +3 -0
  62. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultAutocompleteInput.d.ts +3 -0
  63. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultCheckboxInput.d.ts +3 -0
  64. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateInput.d.ts +3 -0
  65. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultDateRangeInput.d.ts +3 -0
  66. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultFileInput.d.ts +3 -0
  67. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHiddenInput.d.ts +3 -0
  68. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultHttpInput.d.ts +3 -0
  69. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultNumberInput.d.ts +3 -0
  70. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultPasswordInput.d.ts +3 -0
  71. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultRadioInput.d.ts +3 -0
  72. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSelectInput.d.ts +3 -0
  73. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultSwitchInput.d.ts +3 -0
  74. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextAreaInput.d.ts +3 -0
  75. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTextInput.d.ts +3 -0
  76. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeInput.d.ts +3 -0
  77. package/dist/renderer/features/TreegeRenderer/web/components/inputs/DefaultTimeRangeInput.d.ts +3 -0
  78. package/dist/renderer/hooks/useTranslate.d.ts +24 -0
  79. package/dist/renderer/index.d.ts +17 -0
  80. package/dist/renderer/types/renderer.d.ts +187 -0
  81. package/dist/renderer/utils/conditions.d.ts +14 -0
  82. package/dist/renderer/utils/file.d.ts +22 -0
  83. package/dist/renderer/utils/flow.d.ts +91 -0
  84. package/dist/renderer/utils/form.d.ts +26 -0
  85. package/dist/renderer/utils/node.d.ts +16 -0
  86. package/dist/renderer.d.ts +2 -0
  87. package/dist/renderer.js +45 -0
  88. package/dist/shared/components/ui/badge.d.ts +9 -0
  89. package/dist/shared/components/ui/button.d.ts +10 -0
  90. package/dist/shared/components/ui/calendar.d.ts +8 -0
  91. package/dist/shared/components/ui/checkbox.d.ts +4 -0
  92. package/dist/shared/components/ui/collapsible.d.ts +5 -0
  93. package/dist/shared/components/ui/command.d.ts +18 -0
  94. package/dist/shared/components/ui/dialog.d.ts +15 -0
  95. package/dist/shared/components/ui/dropdown-menu.d.ts +25 -0
  96. package/dist/shared/components/ui/form.d.ts +5 -0
  97. package/dist/shared/components/ui/input.d.ts +3 -0
  98. package/dist/shared/components/ui/label.d.ts +4 -0
  99. package/dist/shared/components/ui/popover.d.ts +7 -0
  100. package/dist/shared/components/ui/radio-group.d.ts +5 -0
  101. package/dist/shared/components/ui/scroll-area.d.ts +5 -0
  102. package/dist/shared/components/ui/select.d.ts +15 -0
  103. package/dist/shared/components/ui/separator.d.ts +4 -0
  104. package/dist/shared/components/ui/sheet.d.ts +13 -0
  105. package/dist/shared/components/ui/sonner.d.ts +3 -0
  106. package/dist/shared/components/ui/switch.d.ts +4 -0
  107. package/dist/shared/components/ui/textarea.d.ts +3 -0
  108. package/dist/shared/components/ui/tooltip.d.ts +7 -0
  109. package/dist/shared/constants/inputType.d.ts +19 -0
  110. package/dist/shared/constants/languages.d.ts +10 -0
  111. package/dist/shared/constants/node.d.ts +6 -0
  112. package/dist/shared/constants/operator.d.ts +4 -0
  113. package/dist/shared/constants/pattern.d.ts +7 -0
  114. package/dist/shared/constants/uiType.d.ts +4 -0
  115. package/dist/shared/context/ThemeContext.d.ts +15 -0
  116. package/dist/shared/hooks/useTranslate.d.ts +23 -0
  117. package/dist/shared/lib/utils.d.ts +2 -0
  118. package/dist/shared/locales/ar.json.d.ts +229 -0
  119. package/dist/shared/locales/de.json.d.ts +229 -0
  120. package/dist/shared/locales/en.json.d.ts +229 -0
  121. package/dist/shared/locales/es.json.d.ts +229 -0
  122. package/dist/shared/locales/fr.json.d.ts +229 -0
  123. package/dist/shared/locales/it.json.d.ts +229 -0
  124. package/dist/shared/locales/pt.json.d.ts +229 -0
  125. package/dist/shared/types/edge.d.ts +34 -0
  126. package/dist/shared/types/languages.d.ts +5 -0
  127. package/dist/shared/types/node.d.ts +171 -0
  128. package/dist/shared/types/operator.d.ts +9 -0
  129. package/dist/shared/types/translate.d.ts +9 -0
  130. package/dist/shared/utils/nodeTypeGuards.d.ts +22 -0
  131. package/dist/shared/utils/translations.d.ts +30 -0
  132. package/package.json +69 -41
  133. package/CHANGELOG.md +0 -7
  134. package/dist/components/DataDisplay/Icons/TreePlusIcon.d.ts +0 -7
  135. package/dist/components/DataDisplay/Logo/Logo.d.ts +0 -2
  136. package/dist/components/DataDisplay/Tree/Tree.d.ts +0 -14
  137. package/dist/components/DataDisplay/Tree/useTree.d.ts +0 -12
  138. package/dist/components/DataDisplay/TreeCard/TreeCard.d.ts +0 -14
  139. package/dist/components/DataDisplay/ViewerJSON/ViewerJSON.d.ts +0 -6
  140. package/dist/components/DataDisplay/ViewerJSON/useViewerJSON.d.ts +0 -4
  141. package/dist/components/DataDisplay/ViewerJSONAction/ViewerJSONAction.d.ts +0 -6
  142. package/dist/components/DataDisplay/ViewerJSONAction/useViewerJSONAction.d.ts +0 -11
  143. package/dist/components/FeedBack/MainModal/MainModal.d.ts +0 -10
  144. package/dist/components/FeedBack/TreeModal/TreeModal.d.ts +0 -13
  145. package/dist/components/Layouts/Action/Action.d.ts +0 -6
  146. package/dist/components/Layouts/Header/Header.d.ts +0 -6
  147. package/dist/components/Layouts/Main/Main.d.ts +0 -6
  148. package/dist/components/Layouts/MosaicLayout/MosaicLayout.d.ts +0 -6
  149. package/dist/components/Layouts/Sidebar/Sidebar.d.ts +0 -6
  150. package/dist/components/Theme/DarkTheme/DarkTheme.d.ts +0 -6
  151. package/dist/config/i18n.config.d.ts +0 -2
  152. package/dist/config/query.config.d.ts +0 -3
  153. package/dist/config/test.config.d.ts +0 -0
  154. package/dist/config/theme.config.d.ts +0 -3
  155. package/dist/constants/colors.d.ts +0 -10
  156. package/dist/constants/fields.d.ts +0 -152
  157. package/dist/context/Auth/AuthContext.d.ts +0 -7
  158. package/dist/context/Auth/AuthProvider.d.ts +0 -7
  159. package/dist/features/Treege/Treege.d.ts +0 -24
  160. package/dist/features/Treege/components/Feedback/EndPointWarning.d.ts +0 -8
  161. package/dist/features/Treege/components/Forms/AssignValueToChildren/AssignValueToChildren.d.ts +0 -8
  162. package/dist/features/Treege/components/Forms/AssignValueToChildren/Examples/ObjectMappingExample.d.ts +0 -2
  163. package/dist/features/Treege/components/Forms/FormTreeCardDelete/FormTreeCardDelete.d.ts +0 -5
  164. package/dist/features/Treege/components/Forms/FormTreeCardDelete/useFormTreeCardDelete.d.ts +0 -5
  165. package/dist/features/Treege/components/Forms/FormTreeCardMutation/Fields/ApiFieldsConfigAccordion.d.ts +0 -32
  166. package/dist/features/Treege/components/Forms/FormTreeCardMutation/Fields/ExtraField.d.ts +0 -15
  167. package/dist/features/Treege/components/Forms/FormTreeCardMutation/Fields/FillerFieldAccordion.d.ts +0 -14
  168. package/dist/features/Treege/components/Forms/FormTreeCardMutation/FormTreeCardMutation.d.ts +0 -6
  169. package/dist/features/Treege/components/Forms/FormTreeCardMutation/useFormTreeCardMutation.d.ts +0 -110
  170. package/dist/features/Treege/components/Inputs/AutocompleteSelectType/AutocompleteSelectType.d.ts +0 -12
  171. package/dist/features/Treege/components/Inputs/AutocompleteSelectType/index.d.ts +0 -3
  172. package/dist/features/Treege/components/Inputs/AutocompleteSelectType/useAutocompleteSelectType.d.ts +0 -305
  173. package/dist/features/Treege/components/Inputs/ButtonCreateTree/ButtonCreateTree.d.ts +0 -2
  174. package/dist/features/Treege/components/Inputs/ButtonCreateTree/useButtonCreateTree.d.ts +0 -4
  175. package/dist/features/Treege/components/Inputs/FieldSelectAutocompleteCreatable.d.ts +0 -12
  176. package/dist/features/Treege/components/TreeCardContainer/TreeCardContainer.d.ts +0 -8
  177. package/dist/features/Treege/components/TreeCardContainer/useTreeCardContainer.d.ts +0 -10
  178. package/dist/features/Treege/components/TreeGrid/TreeGrid.d.ts +0 -2
  179. package/dist/features/Treege/components/TreeGrid/useTreeGrid.d.ts +0 -9
  180. package/dist/features/Treege/components/TreeNameTextField/TreeNameTextField.d.ts +0 -2
  181. package/dist/features/Treege/components/TreeNameTextField/index.d.ts +0 -2
  182. package/dist/features/Treege/components/TreeNameTextField/useTreeNameTextField.d.ts +0 -9
  183. package/dist/features/Treege/components/TreeSelect/TreeSelect.d.ts +0 -12
  184. package/dist/features/Treege/components/TreeSelect/index.d.ts +0 -2
  185. package/dist/features/Treege/components/TreeSelect/useTreeSelect.d.ts +0 -16
  186. package/dist/features/Treege/context/TreegeProvider.d.ts +0 -90
  187. package/dist/features/Treege/reducer/treeReducer.d.ts +0 -35
  188. package/dist/hooks/useTreegeContext/index.d.ts +0 -3
  189. package/dist/hooks/useTreegeContext/useTreegeContext.d.ts +0 -2
  190. package/dist/locales/en/button-en.d.ts +0 -11
  191. package/dist/locales/en/form-en.d.ts +0 -93
  192. package/dist/locales/en/modal-en.d.ts +0 -9
  193. package/dist/locales/en/snackMessage-en.d.ts +0 -13
  194. package/dist/locales/en/translation-en.d.ts +0 -30
  195. package/dist/locales/fr/button-fr.d.ts +0 -11
  196. package/dist/locales/fr/form-fr.d.ts +0 -93
  197. package/dist/locales/fr/modal-fr.d.ts +0 -9
  198. package/dist/locales/fr/snackMessage-fr.d.ts +0 -13
  199. package/dist/locales/fr/translation-fr.d.ts +0 -30
  200. package/dist/main.umd.cjs +0 -97
  201. package/dist/services/workflows/mutation/usePatchWorkflowsMutation.d.ts +0 -12
  202. package/dist/services/workflows/mutation/usePostWorkflowMutation.d.ts +0 -11
  203. package/dist/services/workflows/query/useWorkflowQuery.d.ts +0 -10
  204. package/dist/services/workflows/query/useWorkflowsQuery.d.ts +0 -10
  205. package/dist/utils/index.d.ts +0 -3
  206. package/dist/utils/tree/appendNode/appendNode.d.ts +0 -83
  207. package/dist/utils/tree/appendNode/test/mock.d.ts +0 -16
  208. package/dist/utils/tree/findNodeByUUIDInTree/findNodeByUUIDInTree.d.ts +0 -8
  209. package/dist/utils/tree/findNodeByUUIDInTree/test/mock.d.ts +0 -12
  210. package/dist/utils/tree/findParentNodeByUUIDInTree/findParentNodeByUUIDInTree.d.ts +0 -9
  211. package/dist/utils/tree/findParentNodeByUUIDInTree/test/mock.d.ts +0 -11
  212. package/dist/utils/tree/getAllAncestorFromTree/getAllAncestorFromTree.d.ts +0 -12
  213. package/dist/utils/tree/getAllAncestorFromTree/test/mock.d.ts +0 -3
  214. package/dist/utils/tree/getNode/getNode.d.ts +0 -9
  215. package/dist/utils/tree/getNode/test/mock.d.ts +0 -12
  216. package/dist/utils/tree/getTree/getTree.d.ts +0 -9
  217. package/dist/utils/tree/getTree/test/mock.d.ts +0 -13
  218. package/dist/utils/tree/getUniqueTagsInTree/getUniqueTagsInTree.d.ts +0 -7
  219. package/dist/utils/tree/getUniqueTagsInTree/test/getUniqueTagsInTree.d.ts +0 -1
  220. package/dist/utils/tree/getUniqueTagsInTree/test/mock.d.ts +0 -10
  221. package/dist/utils/tree/index.d.ts +0 -9
  222. package/dist/utils/tree/removeNode/removeNode.d.ts +0 -14
  223. package/dist/utils/tree/removeNode/test/mock.d.ts +0 -14
  224. package/dist/utils/tree/updateNodeInTree/test/mock.d.ts +0 -14
  225. package/dist/utils/tree/updateNodeInTree/updateNodeInTree.d.ts +0 -16
  226. package/dist/utils/uuid/getUUID.d.ts +0 -5
@@ -0,0 +1,229 @@
1
+ declare const _default: {
2
+ "common": {
3
+ "cancel": "Cancelar",
4
+ "clear": "Limpar",
5
+ "close": "Fechar",
6
+ "create": "Criar",
7
+ "retry": "Tentar novamente",
8
+ "save": "Salvar",
9
+ "submit": "Enviar",
10
+ "toggle": "Alternar"
11
+ },
12
+ "editor": {
13
+ "actionsPanel": {
14
+ "addNode": "Adicionar nó",
15
+ "clear": "Limpar",
16
+ "clearSuccess": "Fluxo limpo!",
17
+ "clearSuccessDesc": "Todos os nós e arestas foram removidos.",
18
+ "copyFailed": "Falha ao copiar o ID do fluxo",
19
+ "downloadSuccess": "Download bem-sucedido.",
20
+ "downloadSuccessDesc": "O fluxo foi exportado com sucesso.",
21
+ "exportJson": "Exportar JSON",
22
+ "idCopied": "ID do fluxo copiado!",
23
+ "importJson": "Importar JSON",
24
+ "importSuccess": "Importação bem-sucedida!",
25
+ "importSuccessDesc": "O fluxo foi importado com sucesso.",
26
+ "invalidJson": "Arquivo JSON inválido.",
27
+ "invalidJsonDesc": "O arquivo deve conter arrays de nós e arestas.",
28
+ "parseError": "Erro ao analisar o arquivo JSON.",
29
+ "parseErrorDesc": "Tente corrigir o arquivo e importá-lo novamente."
30
+ },
31
+ "comboboxPattern": {
32
+ "custom": "Personalizado: {value}",
33
+ "search": "Pesquisar padrões...",
34
+ "selectOrCreate": "Selecionar ou criar um padrão",
35
+ "usePattern": "Usar padrão: {query}"
36
+ },
37
+ "comboboxWithCreate": {
38
+ "clearSelection": "Limpar seleção",
39
+ "noResults": "Nenhum resultado encontrado"
40
+ },
41
+ "conditionalEdge": {
42
+ "addCondition": "Adicionar condição",
43
+ "and": "E",
44
+ "condition": "Condição",
45
+ "conditions": "Condições",
46
+ "conditionsAnd": "condições (E)",
47
+ "conditionsMixed": "condições (mistas)",
48
+ "conditionsOr": "condições (OU)",
49
+ "displayConditions": "Exibir condições",
50
+ "displayConditionsDesc": "Este campo será exibido se as seguintes condições forem atendidas.",
51
+ "fallback": "Padrão",
52
+ "fallbackPath": "Caminho padrão / de fallback",
53
+ "fallbackPathDesc": "Este caminho será seguido quando nenhuma outra condição corresponder",
54
+ "field": "Campo",
55
+ "labelDesc": "Rótulo personalizado para o botão de condição",
56
+ "labelOptional": "Rótulo (opcional)",
57
+ "labelPlaceholder": "Ex: Se elegível",
58
+ "noFieldsAvailable": "Nenhum campo disponível",
59
+ "operator": "Operador",
60
+ "or": "OU",
61
+ "removeCondition": "Remover condição",
62
+ "selectField": "Selecione um campo",
63
+ "value": "Valor",
64
+ "valuePlaceholder": "Ex: 18"
65
+ },
66
+ "flowNodeForm": {
67
+ "label": "Rótulo",
68
+ "targetId": "ID de destino",
69
+ "targetIdDesc": "Identificador único do fluxo de destino."
70
+ },
71
+ "groupNodeForm": {
72
+ "label": "Rótulo"
73
+ },
74
+ "httpConfigForm": {
75
+ "addHeader": "Adicionar cabeçalho",
76
+ "apiUrl": "URL da API",
77
+ "apiUrlDesc": "Use variáveis de modelo como {{fieldId}} para referenciar outros campos",
78
+ "apiUrlPlaceholder": "https://api.exemplo.com/data",
79
+ "behavior": "Comportamento",
80
+ "fetchOnMount": "Buscar na montagem",
81
+ "headerName": "Nome do cabeçalho",
82
+ "headers": "Cabeçalhos",
83
+ "headerValue": "Valor do cabeçalho",
84
+ "httpMethod": "Método HTTP",
85
+ "insertVariable": "Inserir variável",
86
+ "labelField": "Campo de rótulo",
87
+ "labelFieldDesc": "Campo a ser usado como rótulo da opção (ex: nome)",
88
+ "labelFieldPlaceholder": "nome",
89
+ "mapToOptions": "Mapear para opções",
90
+ "methodDelete": "DELETE",
91
+ "methodGet": "GET",
92
+ "methodPatch": "PATCH",
93
+ "methodPost": "POST",
94
+ "methodPut": "PUT",
95
+ "noFieldsAvailable": "Nenhum campo disponível",
96
+ "requestBody": "Corpo da requisição (JSON)",
97
+ "requestBodyDesc": "Use variáveis de modelo como ${fieldId} para referenciar outros campos",
98
+ "requestBodyPlaceholder": "{\"chave\": \"valor\"}",
99
+ "responseConfiguration": "Configuração da resposta",
100
+ "responsePath": "Caminho da resposta",
101
+ "responsePathDesc": "Extrair dados da resposta usando notação de ponto ou indexação de array",
102
+ "responsePathPlaceholder": "data.users ou results[0]",
103
+ "searchParameter": "Parâmetro de pesquisa (opcional)",
104
+ "searchParameterDesc": "Se definido, habilita uma caixa de pesquisa que adiciona este parâmetro às chamadas de API (ex: ?q=Paris)",
105
+ "searchParameterPlaceholder": "q, pesquisa, consulta...",
106
+ "selectMethod": "Selecionar método",
107
+ "showLoadingState": "Mostrar estado de carregamento",
108
+ "valueField": "Campo de valor",
109
+ "valueFieldDesc": "Campo a ser usado como valor da opção (ex: id)",
110
+ "valueFieldPlaceholder": "id"
111
+ },
112
+ "inputNodeForm": {
113
+ "addInputFieldsBeforeReference": "Adicione campos de entrada antes deste nó para referenciá-los",
114
+ "addMapping": "Adicionar mapeamento",
115
+ "addOption": "+ Adicionar opção",
116
+ "advancedConfiguration": "Configuração avançada",
117
+ "defaultChecked": "Marcado por padrão",
118
+ "defaultValuesCommaSeparated": "Valores padrão (separados por vírgulas)",
119
+ "defaultValuesPlaceholder": "valor1, valor2, valor3",
120
+ "defaultValueType": "Tipo de valor padrão",
121
+ "defaultValueTypeNone": "Nenhum",
122
+ "defaultValueTypeReference": "Campo de referência",
123
+ "defaultValueTypeStatic": "Valor estático",
124
+ "errorMessage": "Mensagem de erro",
125
+ "helperText": "Texto de ajuda",
126
+ "httpConfiguration": "Configuração HTTP",
127
+ "label": "Rótulo",
128
+ "multipleFiles": "Arquivos múltiplos",
129
+ "multipleSelection": "Seleção múltipla",
130
+ "name": "Nome",
131
+ "noParentFieldsAvailable": "Nenhum campo pai disponível",
132
+ "objectMapping": "Mapeamento de objeto",
133
+ "objectMappingDesc": "Mapear as propriedades do objeto de origem para uma nova estrutura",
134
+ "optionLabel": "Rótulo",
135
+ "options": "Opções",
136
+ "optionValue": "Valor",
137
+ "pattern": "Padrão",
138
+ "placeholder": "Espaço reservado",
139
+ "referenceField": "Campo de referência",
140
+ "required": "Obrigatório",
141
+ "selectReferenceField": "Selecione um campo",
142
+ "selectTransformation": "Selecionar transformação",
143
+ "selectType": "Selecionar tipo",
144
+ "sourceKey": "Chave de origem",
145
+ "staticValue": "Valor estático",
146
+ "staticValuePlaceholder": "Digite o valor padrão",
147
+ "targetKey": "Chave de destino",
148
+ "transformArray": "Converter para array",
149
+ "transformBoolean": "Converter para booleano",
150
+ "transformDesc": "Transformar o valor referenciado para corresponder ao tipo deste campo",
151
+ "transformMapToObject": "Mapear para objeto",
152
+ "transformNone": "Sem transformação",
153
+ "transformNumber": "Converter para número",
154
+ "transformString": "Converter para string",
155
+ "transformType": "Tipo de transformação",
156
+ "validation": "Validação"
157
+ },
158
+ "selectInputType": {
159
+ "type": "Tipo"
160
+ },
161
+ "selectNodeGroup": {
162
+ "createNewGroup": "Criar um novo grupo",
163
+ "group": "Grupo",
164
+ "groupAlreadyExists": "Este grupo já existe",
165
+ "groupAlreadyExistsDesc": "Use o seletor para adicionar o nó a um grupo existente.",
166
+ "groupCreated": "Grupo criado",
167
+ "groupCreatedDesc": "O grupo \"{groupName}\" foi criado com sucesso.",
168
+ "groupName": "Nome do grupo",
169
+ "groupNamePlaceholder": "Ex: Passo 1 - Informações pessoais",
170
+ "newGroup": "Novo grupo",
171
+ "newGroupDescription": "O grupo será criado em torno do nó selecionado.",
172
+ "noGroup": "Sem grupo"
173
+ },
174
+ "selectNodeType": {
175
+ "nodeType": "Tipo de nó"
176
+ },
177
+ "uiNodeForm": {
178
+ "label": "Rótulo",
179
+ "type": "Tipo",
180
+ "typeDivider": "Divisor",
181
+ "typeTitle": "Título"
182
+ }
183
+ },
184
+ "renderer": {
185
+ "defaultAddressInput": {
186
+ "enterAddress": "Digite um endereço...",
187
+ "noAddressesFound": "Nenhum endereço encontrado."
188
+ },
189
+ "defaultAutocompleteInput": {
190
+ "noResults": "Nenhum resultado encontrado.",
191
+ "search": "Pesquisar...",
192
+ "selectOption": "Selecione uma opção"
193
+ },
194
+ "defaultHttpInput": {
195
+ "fetchFailed": "Falha ao buscar dados",
196
+ "httpError": "HTTP {status}: {statusText}",
197
+ "noDataAvailable": "Nenhum dado disponível. Configure \"Buscar na montagem\" ou adicione um parâmetro de pesquisa.",
198
+ "noResults": "Nenhum resultado encontrado.",
199
+ "noUrlConfigured": "Nenhuma URL configurada",
200
+ "retry": "Tentar novamente",
201
+ "search": "Pesquisar...",
202
+ "searching": "Pesquisando...",
203
+ "selectOption": "Selecione uma opção"
204
+ },
205
+ "defaultInputs": {
206
+ "endDate": "Data de fim",
207
+ "endTime": "Hora de fim",
208
+ "required": "*",
209
+ "selectDate": "Selecionar data",
210
+ "selectDateRange": "Selecionar intervalo de datas",
211
+ "startDate": "Data de início",
212
+ "startTime": "Hora de início"
213
+ },
214
+ "defaultSelectInput": {
215
+ "selectOption": "Selecione uma opção"
216
+ },
217
+ "defaultSubmitButton": {
218
+ "requiredFieldsMissing": "Campos obrigatórios ausentes",
219
+ "submit": "Enviar"
220
+ }
221
+ },
222
+ "validation": {
223
+ "invalidFormat": "Formato inválido",
224
+ "required": "Este campo é obrigatório"
225
+ }
226
+ }
227
+ ;
228
+
229
+ export default _default;
@@ -0,0 +1,34 @@
1
+ import { LogicalOperator, Operator } from './operator';
2
+ export type EdgeCondition = {
3
+ /**
4
+ * The field to evaluate in the condition
5
+ */
6
+ field?: string;
7
+ /**
8
+ * The operator to use for comparison (e.g., "===", "!==", ">", "<", ">=", "<=")
9
+ */
10
+ operator?: Operator;
11
+ /**
12
+ * The value to compare against the field
13
+ */
14
+ value?: string;
15
+ /**
16
+ * The logical operator to combine this condition with the next one (e.g., "AND", "OR")
17
+ */
18
+ logicalOperator?: LogicalOperator;
19
+ };
20
+ export type ConditionalEdgeData = {
21
+ /**
22
+ * A label for the edge, useful for displaying in the UI
23
+ */
24
+ label?: string;
25
+ /**
26
+ * Conditions that must be met for this edge to be followed
27
+ */
28
+ conditions?: EdgeCondition[];
29
+ /**
30
+ * Whether this edge is a fallback/default path
31
+ * Fallback edges are followed when no other conditional edges match
32
+ */
33
+ isFallback?: boolean;
34
+ };
@@ -0,0 +1,5 @@
1
+ import { LANGUAGES } from '../constants/languages';
2
+ /**
3
+ * Type representing supported languages
4
+ */
5
+ export type Language = (typeof LANGUAGES)[keyof typeof LANGUAGES];
@@ -0,0 +1,171 @@
1
+ import { Edge, Node } from '@xyflow/react';
2
+ import { INPUT_TYPE } from '../constants/inputType';
3
+ import { UI_TYPE } from '../constants/uiType';
4
+ import { Translatable } from './translate';
5
+ export type UIType = (typeof UI_TYPE)[keyof typeof UI_TYPE];
6
+ export type InputType = (typeof INPUT_TYPE)[keyof typeof INPUT_TYPE];
7
+ export interface Flow {
8
+ id: string;
9
+ nodes: Node[];
10
+ edges: Edge[];
11
+ }
12
+ export type InputOption = {
13
+ /**
14
+ * The value of the option, which will be submitted if selected
15
+ */
16
+ value: string;
17
+ /**
18
+ * The label of the option, which can be translated
19
+ */
20
+ label: Translatable;
21
+ /**
22
+ * Whether the option is disabled and cannot be selected
23
+ */
24
+ disabled?: boolean;
25
+ };
26
+ export type BaseNodeData = {
27
+ /**
28
+ * A label for the node, which can be translated
29
+ */
30
+ label?: Translatable;
31
+ };
32
+ export type FlowNodeData = BaseNodeData & {
33
+ /**
34
+ * The ID of the target node to connect to
35
+ */
36
+ targetId?: string;
37
+ };
38
+ export type GroupNodeData = BaseNodeData & {
39
+ /**
40
+ * A label for the group node, which can be translated
41
+ */
42
+ label: Translatable;
43
+ };
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
+ };
54
+ export type HttpConfig = {
55
+ /**
56
+ * The HTTP method to use
57
+ */
58
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
59
+ /**
60
+ * The API URL to call (supports template variables like {{fieldId}})
61
+ */
62
+ url?: string;
63
+ /**
64
+ * Custom headers for the HTTP request
65
+ */
66
+ headers?: HttpHeader[];
67
+ /**
68
+ * Request body (for POST/PUT/PATCH methods)
69
+ */
70
+ body?: string;
71
+ /**
72
+ * JSONPath or key to extract from the response
73
+ * Examples: "data.users", "results[0].name"
74
+ */
75
+ responsePath?: string;
76
+ /**
77
+ * Map response to options format (for select/combobox)
78
+ */
79
+ responseMapping?: {
80
+ /**
81
+ * Path to the value field in response items
82
+ */
83
+ valueField?: string;
84
+ /**
85
+ * Path to the label field in response items
86
+ */
87
+ labelField?: string;
88
+ };
89
+ /**
90
+ * Query parameter name for search (enables combobox with search)
91
+ * Example: "q", "search", "query"
92
+ */
93
+ searchParam?: string;
94
+ /**
95
+ * Whether to call the API on component mount
96
+ */
97
+ fetchOnMount?: boolean;
98
+ /**
99
+ * Whether to show a loading state while fetching
100
+ */
101
+ showLoading?: boolean;
102
+ };
103
+ export type InputNodeData = BaseNodeData & {
104
+ /**
105
+ * The name of the input field, used for identification and form submission
106
+ */
107
+ name?: string;
108
+ /**
109
+ * The type of input field (e.g., "text", "number", "select", "checkbox")
110
+ */
111
+ type?: InputType;
112
+ /**
113
+ * A sublabel for the input field, which can be translated
114
+ */
115
+ helperText?: Translatable;
116
+ /**
117
+ * Placeholder text for the input field, which can be translated
118
+ */
119
+ placeholder?: Translatable;
120
+ /**
121
+ * Whether the input field is required
122
+ */
123
+ required?: boolean;
124
+ /**
125
+ * A regex pattern that the input value must match
126
+ */
127
+ pattern?: string;
128
+ /**
129
+ * An error message to display if validation fails, which can be translated
130
+ */
131
+ errorMessage?: Translatable;
132
+ /**
133
+ * Options for select, radio, or checkbox input types
134
+ */
135
+ options?: InputOption[];
136
+ /**
137
+ * Whether multiple selections are allowed (for select and checkbox types)
138
+ */
139
+ multiple?: boolean;
140
+ /**
141
+ * The default value config for the input field
142
+ */
143
+ defaultValue?: null | {
144
+ type?: "static" | "reference";
145
+ staticValue?: string | string[] | boolean;
146
+ referenceField?: string;
147
+ transformFunction?: null | "toString" | "toNumber" | "toBoolean" | "toArray" | "toObject";
148
+ objectMapping?: Array<{
149
+ sourceKey: string;
150
+ targetKey: string;
151
+ }>;
152
+ };
153
+ /**
154
+ * HTTP configuration for the input field (used with type="http")
155
+ */
156
+ httpConfig?: HttpConfig;
157
+ };
158
+ export type UINodeData = BaseNodeData & {
159
+ /**
160
+ * The type of UI component to render (e.g., "button", "text", "image")
161
+ */
162
+ type?: UIType;
163
+ };
164
+ /**
165
+ * Union type representing all possible node data types in the Treege system
166
+ */
167
+ export type TreegeNodeData = InputNodeData | UINodeData | FlowNodeData | GroupNodeData;
168
+ /**
169
+ * A TreegeNode represents a node in the flowchart with specific data and properties
170
+ */
171
+ export type TreegeNode = Node<TreegeNodeData>;
@@ -0,0 +1,9 @@
1
+ import { LOGICAL_OPERATOR } from '../constants/operator';
2
+ /**
3
+ * Operators for comparing values in conditions
4
+ */
5
+ export type Operator = "===" | "!==" | ">" | "<" | ">=" | "<=";
6
+ /**
7
+ * Logical operators for combining multiple conditions
8
+ */
9
+ export type LogicalOperator = (typeof LOGICAL_OPERATOR)[keyof typeof LOGICAL_OPERATOR];
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A type representing a string that can be translated into multiple languages.
3
+ * The keys are language codes (e.g., 'en' for English, 'fr' for French),
4
+ * and the values are the corresponding translations.
5
+ */
6
+ export interface Translatable {
7
+ en?: string;
8
+ [key: string]: string | undefined;
9
+ }
@@ -0,0 +1,22 @@
1
+ import { Node } from '@xyflow/react';
2
+ import { FlowNodeData, GroupNodeData, InputNodeData, TreegeNode, UINodeData } from '../types/node';
3
+ /**
4
+ * Type guard to check if a node is an InputNode
5
+ * @param node
6
+ */
7
+ export declare const isInputNode: (node: TreegeNode | undefined) => node is Node<InputNodeData, "input">;
8
+ /**
9
+ * Type guard to check if a node is a UINode
10
+ * @param node
11
+ */
12
+ export declare const isUINode: (node: TreegeNode | undefined) => node is Node<UINodeData, "ui">;
13
+ /**
14
+ * Type guard to check if a node is a FlowNode
15
+ * @param node
16
+ */
17
+ export declare const isFlowNode: (node: TreegeNode | undefined) => node is Node<FlowNodeData, "flow">;
18
+ /**
19
+ * Type guard to check if a node is a GroupNode
20
+ * @param node
21
+ */
22
+ export declare const isGroupNode: (node: TreegeNode | undefined) => node is Node<GroupNodeData, "group">;
@@ -0,0 +1,30 @@
1
+ import { default as en } from '../locales/en.json';
2
+ import { Translatable } from '../types/translate';
3
+ export type TranslationDict = {
4
+ [key: string]: string | TranslationDict;
5
+ };
6
+ /**
7
+ * Helper type to extract all dot-notation paths from a nested object
8
+ */
9
+ type DotNotationKeys<T, Prefix extends string = ""> = T extends Record<string, unknown> ? {
10
+ [K in keyof T & string]: T[K] extends Record<string, unknown> ? DotNotationKeys<T[K], `${Prefix}${K}.`> : `${Prefix}${K}`;
11
+ }[keyof T & string] : never;
12
+ /**
13
+ * Dynamically generated type of all available translation keys
14
+ * based on the English locale file
15
+ */
16
+ export type TranslationKey = DotNotationKeys<typeof en>;
17
+ /**
18
+ * Get the translated text (label, placeholder, helper text, error message, etc.)
19
+ * with fallback to English or first available language
20
+ * @param text - The translatable text object or plain string
21
+ * @param language - Optional preferred language (defaults to 'en')
22
+ * @returns The translated string or empty string if none available
23
+ */
24
+ export declare const getTranslatedText: (text?: Translatable | string, language?: string) => string;
25
+ /**
26
+ * Get static translations for a specific language
27
+ * Falls back to English if language not found
28
+ */
29
+ export declare const getStaticTranslations: (language: string) => Record<string, string>;
30
+ export {};
package/package.json CHANGED
@@ -1,19 +1,29 @@
1
1
  {
2
2
  "name": "treege",
3
- "description": "Form decision tree generator",
3
+ "description": "Amazing form generator",
4
4
  "license": "ISC",
5
- "version": "2.1.0",
5
+ "version": "3.0.0-beta.2",
6
6
  "type": "module",
7
7
  "types": "./dist/main.d.ts",
8
- "main": "./dist/main.umd.cjs",
9
8
  "module": "./dist/main.js",
9
+ "sideEffects": [
10
+ "**/*.css"
11
+ ],
10
12
  "files": [
11
13
  "dist"
12
14
  ],
13
15
  "exports": {
14
16
  ".": {
15
- "import": "./dist/main.js",
16
- "require": "./dist/main.umd.cjs"
17
+ "types": "./dist/main.d.ts",
18
+ "import": "./dist/main.js"
19
+ },
20
+ "./editor": {
21
+ "types": "./dist/editor.d.ts",
22
+ "import": "./dist/editor.js"
23
+ },
24
+ "./renderer": {
25
+ "types": "./dist/renderer.d.ts",
26
+ "import": "./dist/renderer.js"
17
27
  }
18
28
  },
19
29
  "repository": "git@github.com:Tracktor/treege.git",
@@ -24,58 +34,76 @@
24
34
  "homepage": "https://github.com/Tracktor/treege#readme",
25
35
  "scripts": {
26
36
  "dev": "vite",
27
- "build": "tsc && vite build",
28
- "lint": "eslint . --max-warnings=0 && tsc --noEmit",
29
- "lint:fix": "eslint . --fix",
37
+ "build": "vite build",
38
+ "lint": "biome check --diagnostic-level=error . && tsc --noEmit --incremental",
39
+ "lint:fix": "biome check . --write",
30
40
  "preview": "vite preview",
31
- "test": "yarn lint && vitest",
32
- "test:ui": "vitest --ui",
33
- "prepare": "yarn run build && husky install"
41
+ "prepare": "vite build && husky install",
42
+ "example": "vite --open /example",
43
+ "test": "vitest run",
44
+ "test:watch": "vitest"
34
45
  },
35
46
  "dependencies": {
36
- "@codemirror/lang-json": "^6.0.1",
37
- "@mui/icons-material": "^7.2.0",
38
- "@tanstack/react-query": "^5.81.5",
39
- "@tracktor/design-system": "^4.0.1",
40
- "@uiw/codemirror-theme-dracula": "^4.21.19",
41
- "@uiw/react-codemirror": "^4.21.19",
42
- "axios": "^1.10.0",
43
- "i18next": "^25.3.1",
44
- "i18next-browser-languagedetector": "^8.2.0",
45
- "react-d3-tree": "^3.6.6",
46
- "react-i18next": "^15.6.0"
47
+ "@radix-ui/react-checkbox": "^1.3.3",
48
+ "@radix-ui/react-collapsible": "^1.1.12",
49
+ "@radix-ui/react-dialog": "^1.1.15",
50
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
51
+ "@radix-ui/react-label": "^2.1.7",
52
+ "@radix-ui/react-popover": "^1.1.15",
53
+ "@radix-ui/react-radio-group": "^1.3.8",
54
+ "@radix-ui/react-scroll-area": "^1.2.10",
55
+ "@radix-ui/react-select": "^2.2.6",
56
+ "@radix-ui/react-separator": "^1.1.7",
57
+ "@radix-ui/react-slot": "^1.2.3",
58
+ "@radix-ui/react-switch": "^1.2.6",
59
+ "@radix-ui/react-tooltip": "^1.2.8",
60
+ "@tanstack/react-form": "^1.23.5",
61
+ "@uiw/react-textarea-code-editor": "^3.1.1",
62
+ "@xyflow/react": "^12.8.6",
63
+ "class-variance-authority": "^0.7.1",
64
+ "clsx": "^2.1.1",
65
+ "cmdk": "^1.1.1",
66
+ "date-fns": "^4.1.0",
67
+ "lucide-react": "^0.544.0",
68
+ "nanoid": "^5.1.6",
69
+ "next-themes": "^0.4.6",
70
+ "react-day-picker": "^9.11.1",
71
+ "sonner": "^2.0.7",
72
+ "tailwind-merge": "^3.3.1",
73
+ "zustand": "^5.0.8"
47
74
  },
48
75
  "devDependencies": {
49
- "@testing-library/dom": "^10.4.0",
50
- "@testing-library/jest-dom": "^6.6.3",
76
+ "@babel/runtime": "^7.28.4",
77
+ "@tailwindcss/vite": "^4.1.13",
78
+ "@testing-library/dom": "^10.4.1",
79
+ "@testing-library/jest-dom": "^6.9.1",
51
80
  "@testing-library/react": "^16.3.0",
52
- "@testing-library/user-event": "^14.6.1",
53
- "@tracktor/types-treege": "^0.3.14",
54
- "@types/node": "^18.19.115",
81
+ "@testing-library/react-hooks": "^8.0.1",
82
+ "@tracktor/biome-config-react": "^1.3.0",
83
+ "@types/google.maps": "^3.58.1",
84
+ "@types/node": "^24.5.2",
55
85
  "@types/react": "^19.1.0",
56
86
  "@types/react-dom": "^19.1.0",
57
- "@vitejs/plugin-react": "^4.3.4",
58
- "@vitest/ui": "1.6.1",
59
- "eslint-config-react-tracktor": "^1.10.0",
87
+ "@vitejs/plugin-react": "^4.7.0",
88
+ "ajv": "^8.17.1",
89
+ "happy-dom": "^20.0.8",
60
90
  "husky": "^8.0.3",
61
- "jsdom": "22.1.0",
62
91
  "react": "^19.1.0",
63
92
  "react-dom": "^19.1.0",
64
- "typescript": "^5.8.3",
65
- "vite": "^7.0.2",
93
+ "tailwindcss": "^4.1.13",
94
+ "tw-animate-css": "^1.4.0",
95
+ "typescript": "^5.9.2",
96
+ "vite": "^7.1.7",
66
97
  "vite-plugin-dts": "^4.5.4",
67
- "vitest": "^1.6.1"
98
+ "vitest": "^4.0.2"
68
99
  },
69
100
  "peerDependencies": {
70
- "@mui/icons-material": ">=5",
71
- "@tracktor/design-system": ">=4",
72
- "i18next": ">=23",
73
- "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
74
- "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
101
+ "react": "^18.0.0 || ^19.0.0",
102
+ "react-dom": "^18.0.0 || ^19.0.0",
103
+ "tailwindcss": "^4.0.0"
75
104
  },
76
105
  "keywords": [
77
106
  "react",
78
- "treege",
79
- "treege consumer"
107
+ "treege"
80
108
  ]
81
109
  }