treege 3.0.0-beta.44 → 3.0.0-beta.46

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 (69) hide show
  1. package/README.md +16 -9
  2. package/dist/DefaultInputs-7fXlu0uL.js +1734 -0
  3. package/dist/ThemeContext-CNsS53ku.js +1454 -0
  4. package/dist/editor/constants/nodeTypes.d.ts +1 -1
  5. package/dist/editor/context/OpenApiContext.d.ts +79 -0
  6. package/dist/editor/context/TreegeEditorContext.d.ts +7 -0
  7. package/dist/editor/features/TreegeEditor/TreegeEditor.d.ts +1 -1
  8. package/dist/editor/features/TreegeEditor/dialogs/AuthorizeDialog.d.ts +20 -0
  9. package/dist/editor/features/TreegeEditor/dialogs/HeadersDialog.d.ts +19 -0
  10. package/dist/editor/features/TreegeEditor/dialogs/OpenApiDialog.d.ts +6 -0
  11. package/dist/editor/features/TreegeEditor/forms/OptionsSourceForm.d.ts +7 -0
  12. package/dist/editor/features/TreegeEditor/inputs/ApiUrlCombobox.d.ts +30 -0
  13. package/dist/editor/features/TreegeEditor/nodes/TreegeNode.d.ts +0 -1
  14. package/dist/editor/features/TreegeEditor/nodes/components/NodeGroupBadge.d.ts +5 -0
  15. package/dist/editor/features/TreegeEditor/nodes/components/NodeImage.d.ts +5 -0
  16. package/dist/editor/features/TreegeEditor/nodes/components/NodeImageButton.d.ts +6 -0
  17. package/dist/editor/features/TreegeEditor/nodes/components/NodeOptions.d.ts +12 -0
  18. package/dist/editor/features/TreegeEditor/nodes/components/NodeRequiredButton.d.ts +6 -0
  19. package/dist/editor/features/TreegeEditor/nodes/layout/NodeWrapper.d.ts +1 -2
  20. package/dist/editor/features/TreegeEditor/panel/ActionsPanel.d.ts +5 -2
  21. package/dist/editor/types/editor.d.ts +39 -1
  22. package/dist/editor/types/openapi.d.ts +81 -0
  23. package/dist/editor/utils/dagreLayout.d.ts +5 -2
  24. package/dist/editor/utils/groupColor.d.ts +14 -0
  25. package/dist/editor/utils/openapi.d.ts +35 -0
  26. package/dist/editor-DLKg7ri7.js +5209 -0
  27. package/dist/editor.js +2 -2
  28. package/dist/main.js +4 -4
  29. package/dist/renderer/context/TreegeConfigContext.d.ts +3 -27
  30. package/dist/renderer/context/TreegeRendererContext.d.ts +99 -2
  31. package/dist/renderer/features/TreegeRenderer/native/components/DefaultInputWrapper.d.ts +9 -0
  32. package/dist/renderer/features/TreegeRenderer/native/components/DefaultStep.d.ts +3 -0
  33. package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +15 -6
  34. package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
  35. package/dist/renderer/features/TreegeRenderer/web/components/DefaultFormWrapper.d.ts +1 -1
  36. package/dist/renderer/features/TreegeRenderer/web/components/DefaultInputWrapper.d.ts +9 -0
  37. package/dist/renderer/features/TreegeRenderer/web/components/DefaultStep.d.ts +3 -0
  38. package/dist/renderer/hooks/useInputOptions.d.ts +28 -0
  39. package/dist/renderer/hooks/useRenderNode.d.ts +7 -5
  40. package/dist/renderer/hooks/useSubmitHandler.d.ts +3 -2
  41. package/dist/renderer/index.d.ts +1 -1
  42. package/dist/renderer/index.native.d.ts +1 -1
  43. package/dist/renderer/types/renderer.d.ts +55 -29
  44. package/dist/renderer/utils/http.d.ts +29 -1
  45. package/dist/renderer/utils/step.d.ts +27 -0
  46. package/dist/renderer/utils/submit.d.ts +3 -2
  47. package/dist/renderer-native.js +961 -877
  48. package/dist/renderer.js +3 -3
  49. package/dist/shared/components/ui/button.d.ts +1 -1
  50. package/dist/shared/components/ui/field.d.ts +24 -0
  51. package/dist/shared/components/ui/toggle-group.d.ts +7 -0
  52. package/dist/shared/components/ui/toggle.d.ts +9 -0
  53. package/dist/shared/locales/ar.json.d.ts +86 -1
  54. package/dist/shared/locales/de.json.d.ts +86 -1
  55. package/dist/shared/locales/en.json.d.ts +86 -1
  56. package/dist/shared/locales/es.json.d.ts +86 -1
  57. package/dist/shared/locales/fr.json.d.ts +86 -1
  58. package/dist/shared/locales/it.json.d.ts +86 -1
  59. package/dist/shared/locales/pt.json.d.ts +86 -1
  60. package/dist/shared/types/node.d.ts +44 -0
  61. package/package.json +3 -1
  62. package/dist/DefaultInputs-D6a1ESW-.js +0 -1562
  63. package/dist/ThemeContext-CUHjGVUf.js +0 -1602
  64. package/dist/editor/features/TreegeEditor/nodes/GroupNode.d.ts +0 -6
  65. package/dist/editor/features/TreegeEditor/nodes/components/OptionsEditor.d.ts +0 -7
  66. package/dist/editor/features/TreegeEditor/nodes/components/RequiredBadge.d.ts +0 -6
  67. package/dist/editor-DjtjUgyb.js +0 -4041
  68. package/dist/renderer/features/TreegeRenderer/native/components/DefaultGroup.d.ts +0 -7
  69. package/dist/renderer/features/TreegeRenderer/web/components/DefaultGroup.d.ts +0 -6
@@ -113,6 +113,39 @@ export type HttpConfig = {
113
113
  */
114
114
  showLoading?: boolean;
115
115
  };
116
+ /**
117
+ * Maps response item fields to InputOption properties.
118
+ * Each value is a path expression (e.g., "id", "user.name", "items[0].title").
119
+ */
120
+ export type OptionsSourceMapping = {
121
+ /** Path to the field used as InputOption.value */
122
+ valueField: string;
123
+ /** Path to the field used as InputOption.label */
124
+ labelField: string;
125
+ /** Path to the field used as InputOption.description (optional) */
126
+ descriptionField?: string;
127
+ /** Path to the field used as InputOption.image (optional) */
128
+ imageField?: string;
129
+ };
130
+ /**
131
+ * Dynamic options source — fetches the option list from an HTTP endpoint
132
+ * at runtime. Applies to inputs that use options (radio, checkbox, select,
133
+ * autocomplete). When set, overrides the static `options` array.
134
+ */
135
+ export type OptionsSource = {
136
+ /** API URL (supports template variables like {{fieldId}}) */
137
+ url?: string;
138
+ /** HTTP method */
139
+ method?: "GET" | "POST" | "PUT" | "DELETE" | "PATCH";
140
+ /** Custom headers (merged with global headers; field-level wins) */
141
+ headers?: HttpHeader[];
142
+ /** Request body (for POST/PUT/PATCH; supports template variables) */
143
+ body?: string;
144
+ /** JSONPath to extract the array from the response (e.g., "data.users") */
145
+ responsePath?: string;
146
+ /** Field-to-property mapping for each response item */
147
+ mapping?: OptionsSourceMapping;
148
+ };
116
149
  export type SubmitConfig = {
117
150
  /**
118
151
  * The HTTP method to use for form submission
@@ -214,10 +247,21 @@ export type InputNodeData = BaseNodeData & {
214
247
  * HTTP configuration for the input field (used with type="http")
215
248
  */
216
249
  httpConfig?: HttpConfig;
250
+ /**
251
+ * Dynamic options source — fetches the option list from an HTTP endpoint
252
+ * at runtime. Used by option-based inputs (radio, checkbox, select, autocomplete).
253
+ * When set, overrides the static `options` array.
254
+ */
255
+ optionsSource?: OptionsSource;
217
256
  /**
218
257
  * Submit configuration for the input field (used with type="submit")
219
258
  */
220
259
  submitConfig?: SubmitConfig;
260
+ /**
261
+ * Optional illustrative image displayed above the input label.
262
+ * Stored as a base64 data URL (uploads are resized/compressed) or a remote URL.
263
+ */
264
+ image?: string;
221
265
  };
222
266
  export type UINodeData = BaseNodeData & {
223
267
  /**
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "treege",
3
3
  "description": "Powerful form generator",
4
4
  "license": "ISC",
5
- "version": "3.0.0-beta.44",
5
+ "version": "3.0.0-beta.46",
6
6
  "type": "module",
7
7
  "types": "./dist/main.d.ts",
8
8
  "module": "./dist/main.js",
@@ -63,6 +63,8 @@
63
63
  "@radix-ui/react-separator": "^1.1.7",
64
64
  "@radix-ui/react-slot": "^1.2.4",
65
65
  "@radix-ui/react-switch": "^1.2.6",
66
+ "@radix-ui/react-toggle": "^1.1.10",
67
+ "@radix-ui/react-toggle-group": "^1.1.11",
66
68
  "@radix-ui/react-tooltip": "^1.2.8",
67
69
  "@tanstack/react-form": "^1.23.5",
68
70
  "@uiw/react-textarea-code-editor": "^3.1.1",