treege 3.0.0-beta.94 → 3.0.0-beta.95
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.
- package/README.md +40 -22
- package/dist/DefaultSubmitButton-D4Hqyara.js +5130 -0
- package/dist/{ThemeContext-CE3SE9DG.js → ThemeContext-CDewydK5.js} +94 -70
- package/dist/{editor-mvGEgr3P.js → editor-BzhBNy8O.js} +1521 -1521
- package/dist/editor.js +2 -2
- package/dist/main.js +6 -6
- package/dist/renderer/features/TreegeRenderer/native/TreegeRenderer.d.ts +3 -2
- package/dist/renderer/features/TreegeRenderer/useTreegeRenderer.d.ts +8 -1
- package/dist/renderer/features/TreegeRenderer/web/TreegeRenderer.d.ts +1 -1
- package/dist/renderer/features/TreegeRenderer/web/components/DefaultStep.d.ts +1 -1
- package/dist/renderer/hooks/useRenderNode.d.ts +7 -1
- package/dist/renderer/types/renderer.d.ts +19 -1
- package/dist/renderer/utils/dateLocale.d.ts +6 -0
- package/dist/renderer/utils/step.d.ts +9 -0
- package/dist/renderer-Cd2P21x9.js +437 -0
- package/dist/renderer-native.js +646 -661
- package/dist/renderer.js +5 -5
- package/dist/useRenderNode-BaBKq6Ed.js +600 -0
- package/package.json +1 -1
- package/dist/DefaultSubmitButton-DNVIV9BO.js +0 -1909
- package/dist/renderer-CfoZiy7J.js +0 -449
- package/dist/useRenderNode-BPgpYSyg.js +0 -538
package/dist/editor.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as e } from "./editor-
|
|
2
|
-
import { n as t, t as n } from "./ThemeContext-
|
|
1
|
+
import { t as e } from "./editor-BzhBNy8O.js";
|
|
2
|
+
import { n as t, t as n } from "./ThemeContext-CDewydK5.js";
|
|
3
3
|
export { n as ThemeProvider, e as TreegeEditor, t as useTheme };
|
package/dist/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as e } from "./editor-
|
|
2
|
-
import {
|
|
3
|
-
import { C as E, L as D, S as O, _ as k, a as A, b as j, c as M, d as N, g as P, h as F, i as I, m as L, n as R, o as z, r as B, u as V, v as H, x as U, y as W } from "./DefaultSubmitButton-
|
|
4
|
-
import { a as G, c as K, i as q, l as J, n as Y, o as X, r as Z, s as Q } from "./useRenderNode-
|
|
5
|
-
import { a as $, c as ee, i as te, l as ne, n as re, o as ie, r as ae, s as oe, t as se } from "./renderer-
|
|
6
|
-
export { E as DefaultAddressInput, O as DefaultAutocompleteInput, U as DefaultCheckboxInput, j as DefaultDateInput, W as DefaultDateRangeInput, H as DefaultFileInput, k as DefaultHiddenInput, P as DefaultHttpInput, D as DefaultInputLabel, F as DefaultNumberInput, L as DefaultPasswordInput, N as DefaultRadioInput, V as DefaultSelectInput, M as DefaultSwitchInput, z as DefaultTextAreaInput, A as DefaultTextInput, I as DefaultTimeInput, B as DefaultTimeRangeInput, ie as Divider, C as ThemeProvider, oe as Title, e as TreegeEditor, $ as TreegeRenderer, K as TreegeRendererProvider, se as TreegeViewer, ne as TreegeViewerProvider, x as applyReferenceTransformation, h as buildInitialFormValues, u as calculateReferenceFieldUpdates, y as checkFormFieldHasValue, S as convertFormValuesToNamedFormat, R as defaultInputRenderers, ee as defaultUI, X as evaluateCondition, Q as evaluateConditions, _ as fileNameFromUrl, m as fileToSerializable, p as filesToSerializable, Z as findStartNode, l as formatFileSize, q as getFlowRenderState,
|
|
1
|
+
import { t as e } from "./editor-BzhBNy8O.js";
|
|
2
|
+
import { $ as t, I as n, J as r, L as i, Q as a, X as o, Y as s, Z as c, _ as l, a as u, b as d, c as f, g as p, h as m, i as h, l as g, m as _, n as v, o as y, q as b, r as x, s as S, t as C, v as w, y as T } from "./ThemeContext-CDewydK5.js";
|
|
3
|
+
import { C as E, L as D, S as O, _ as k, a as A, b as j, c as M, d as N, g as P, h as F, i as I, m as L, n as R, o as z, r as B, u as V, v as H, x as U, y as W } from "./DefaultSubmitButton-D4Hqyara.js";
|
|
4
|
+
import { a as G, c as K, i as q, l as J, n as Y, o as X, r as Z, s as Q } from "./useRenderNode-BaBKq6Ed.js";
|
|
5
|
+
import { a as $, c as ee, i as te, l as ne, n as re, o as ie, r as ae, s as oe, t as se } from "./renderer-Cd2P21x9.js";
|
|
6
|
+
export { E as DefaultAddressInput, O as DefaultAutocompleteInput, U as DefaultCheckboxInput, j as DefaultDateInput, W as DefaultDateRangeInput, H as DefaultFileInput, k as DefaultHiddenInput, P as DefaultHttpInput, D as DefaultInputLabel, F as DefaultNumberInput, L as DefaultPasswordInput, N as DefaultRadioInput, V as DefaultSelectInput, M as DefaultSwitchInput, z as DefaultTextAreaInput, A as DefaultTextInput, I as DefaultTimeInput, B as DefaultTimeRangeInput, ie as Divider, C as ThemeProvider, oe as Title, e as TreegeEditor, $ as TreegeRenderer, K as TreegeRendererProvider, se as TreegeViewer, ne as TreegeViewerProvider, x as applyReferenceTransformation, h as buildInitialFormValues, u as calculateReferenceFieldUpdates, y as checkFormFieldHasValue, S as convertFormValuesToNamedFormat, R as defaultInputRenderers, ee as defaultUI, X as evaluateCondition, Q as evaluateConditions, _ as fileNameFromUrl, m as fileToSerializable, p as filesToSerializable, Z as findStartNode, l as formatFileSize, q as getFlowRenderState, b as getStaticTranslations, r as getTranslatableValue, s as getTranslatedText, re as getViewerFields, f as isFieldEmpty, c as isGroupNode, ae as isImageFile, a as isInputNode, w as isRemoteFileData, G as isStartNode, t as isUINode, T as normalizeSerializableFiles, g as resolveNodeDefaultValue, n as sanitize, i as sanitizeHttpResponse, d as serializableToFile, o as setTranslatableValue, v as useTheme, Y as useTreegeRenderer, J as useTreegeRendererConfig, te as viewerFieldsFromResponse };
|
|
@@ -3,10 +3,11 @@ import { TreegeRendererProps } from '../../../types/renderer';
|
|
|
3
3
|
/**
|
|
4
4
|
* Props for the TreegeRenderer component (React Native)
|
|
5
5
|
* Same as TreegeRendererProps but:
|
|
6
|
-
* - Omits className
|
|
6
|
+
* - Omits className / style / disableSectionBorder / formId (web-only; the
|
|
7
|
+
* native step has no section border)
|
|
7
8
|
* - Adds style and contentContainerStyle (React Native specific)
|
|
8
9
|
*/
|
|
9
|
-
export type TreegeRendererNativeProps = Omit<TreegeRendererProps, "className" | "formId"> & {
|
|
10
|
+
export type TreegeRendererNativeProps = Omit<TreegeRendererProps, "className" | "disableSectionBorder" | "formId" | "style"> & {
|
|
10
11
|
/**
|
|
11
12
|
* Style for the ScrollView container
|
|
12
13
|
*/
|
|
@@ -19,8 +19,10 @@ import { GroupNodeData, TreegeNodeData } from '../../../shared/types/node';
|
|
|
19
19
|
* @param props - Configuration props (flow, initialValues, callbacks, etc.)
|
|
20
20
|
* @returns Complete form state and control methods
|
|
21
21
|
*/
|
|
22
|
-
export declare const useTreegeRenderer: ({ baseUrl, components, extraPayload, flow, googleApiKey, headers, language, onChange, onSubmit, showPoweredBy, theme, validate, validationMode, initialValues, }: Pick<TreegeRendererProps, "baseUrl" | "components" | "extraPayload" | "flow" | "googleApiKey" | "headers" | "initialValues" | "language" | "onChange" | "onSubmit" | "showPoweredBy" | "theme" | "validate" | "validationMode">) => {
|
|
22
|
+
export declare const useTreegeRenderer: ({ baseUrl, components, extraPayload, flow, googleApiKey, headers, language, onBack, onChange, onSubmit, showPoweredBy, theme, title, validate, validationMode, initialValues, isSubmitting: isSubmittingProp, }: Pick<TreegeRendererProps, "baseUrl" | "components" | "extraPayload" | "flow" | "googleApiKey" | "headers" | "initialValues" | "isSubmitting" | "language" | "onBack" | "onChange" | "onSubmit" | "showPoweredBy" | "theme" | "title" | "validate" | "validationMode">) => {
|
|
23
|
+
canContinue: boolean;
|
|
23
24
|
canContinueStep: boolean;
|
|
25
|
+
canGoBack: boolean;
|
|
24
26
|
canSubmit: boolean;
|
|
25
27
|
clearSubmitMessage: () => void;
|
|
26
28
|
config: {
|
|
@@ -86,12 +88,16 @@ export declare const useTreegeRenderer: ({ baseUrl, components, extraPayload, fl
|
|
|
86
88
|
currentStepIndex: number;
|
|
87
89
|
firstErrorFieldId: string | undefined;
|
|
88
90
|
formErrors: Record<string, string>;
|
|
91
|
+
formTitle: string;
|
|
89
92
|
formValues: FormValues;
|
|
90
93
|
goToNextStep: () => void;
|
|
91
94
|
goToPreviousStep: () => void;
|
|
95
|
+
handleBack: () => void;
|
|
96
|
+
handleContinue: () => void;
|
|
92
97
|
handleSubmit: () => Promise<boolean>;
|
|
93
98
|
hasSubmitInput: boolean;
|
|
94
99
|
inputNodes: Node<import('../../../shared/types/node').InputNodeData>[];
|
|
100
|
+
isFinalStep: boolean;
|
|
95
101
|
isFirstStep: boolean;
|
|
96
102
|
isLastStep: boolean;
|
|
97
103
|
isSubmitting: boolean;
|
|
@@ -100,6 +106,7 @@ export declare const useTreegeRenderer: ({ baseUrl, components, extraPayload, fl
|
|
|
100
106
|
setFieldErrors: import('react').Dispatch<import('react').SetStateAction<Record<string, string>>>;
|
|
101
107
|
setFieldValue: (fieldName: string, value: unknown) => void;
|
|
102
108
|
setMultipleFieldValues: (updates: FormValues) => void;
|
|
109
|
+
stepLabel: string;
|
|
103
110
|
steps: import('../../utils/step').FlowStep[];
|
|
104
111
|
submitMessage: {
|
|
105
112
|
type: "success" | "error";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { TreegeRendererProps } from '../../../types/renderer';
|
|
2
|
-
declare const TreegeRenderer: ({ baseUrl, components, className, extraPayload, flow, formId, googleApiKey, headers, language, onBack, onChange, onSubmit, showPoweredBy, theme, title, validate, validationMode, initialValues, isLoading, isSubmitting: isSubmittingProp, }: TreegeRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const TreegeRenderer: ({ baseUrl, components, className, extraPayload, flow, formId, googleApiKey, headers, language, onBack, onChange, onSubmit, disableSectionBorder, showPoweredBy, style, theme, title, validate, validationMode, initialValues, isLoading, isSubmitting: isSubmittingProp, }: TreegeRendererProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default TreegeRenderer;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { StepRenderProps } from '../../../../types/renderer';
|
|
2
|
-
declare const DefaultStep: ({ step, label, children, canGoBack, isLastStep, canContinue, isSubmitting, onBack, onContinue, missingFields, }: StepRenderProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const DefaultStep: ({ step, label, children, canGoBack, disableSectionBorder, isLastStep, canContinue, isSubmitting, onBack, onContinue, missingFields, }: StepRenderProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export default DefaultStep;
|
|
@@ -14,6 +14,8 @@ type UseRenderNodeParams = {
|
|
|
14
14
|
node: Node<InputNodeData>;
|
|
15
15
|
children: ReactNode;
|
|
16
16
|
}>;
|
|
17
|
+
DefaultLoadingSkeleton: AnyComponent;
|
|
18
|
+
DefaultStep: AnyComponent;
|
|
17
19
|
DefaultSubmitButton: AnyComponent;
|
|
18
20
|
DefaultSubmitButtonWrapper?: AnyComponent;
|
|
19
21
|
defaultInputRenderers: InputRenderers;
|
|
@@ -32,16 +34,20 @@ type UseRenderNodeParams = {
|
|
|
32
34
|
* Returns:
|
|
33
35
|
* - renderNode: Function to render individual nodes
|
|
34
36
|
* - FormWrapper: Form wrapper component with fallback
|
|
37
|
+
* - LoadingSkeleton: Loading skeleton component with fallback
|
|
38
|
+
* - StepComponent: Step container component with fallback
|
|
35
39
|
* - SubmitButton: Submit button component with fallback
|
|
36
40
|
* - SubmitButtonWrapper: Submit button wrapper component with fallback (web only, undefined for native)
|
|
37
41
|
*/
|
|
38
|
-
export declare const useRenderNode: ({ DefaultFormWrapper, DefaultInputLabel, DefaultInputWrapper, DefaultSubmitButton, DefaultSubmitButtonWrapper, config, defaultInputRenderers, defaultUI, formErrors, formValues, inputNodes, isSubmitting, missingRequiredFields, setFieldValue, }: UseRenderNodeParams) => {
|
|
42
|
+
export declare const useRenderNode: ({ DefaultFormWrapper, DefaultInputLabel, DefaultInputWrapper, DefaultLoadingSkeleton, DefaultStep, DefaultSubmitButton, DefaultSubmitButtonWrapper, config, defaultInputRenderers, defaultUI, formErrors, formValues, inputNodes, isSubmitting, missingRequiredFields, setFieldValue, }: UseRenderNodeParams) => {
|
|
39
43
|
FormWrapper: ((props: {
|
|
40
44
|
children: ReactNode;
|
|
41
45
|
id?: string;
|
|
42
46
|
onSubmit: (e: import('react').FormEvent<HTMLFormElement>) => void;
|
|
43
47
|
}) => ReactNode) | AnyComponent;
|
|
48
|
+
LoadingSkeleton: (() => ReactNode) | AnyComponent;
|
|
44
49
|
renderNode: (node: Node<TreegeNodeData>) => ReactNode;
|
|
50
|
+
StepComponent: ((props: import('../types/renderer').StepRenderProps) => ReactNode) | AnyComponent;
|
|
45
51
|
SubmitButton: ((props: {
|
|
46
52
|
label?: string;
|
|
47
53
|
disabled?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Node } from '@xyflow/react';
|
|
2
|
-
import { ComponentType, FormEvent, ReactNode } from 'react';
|
|
2
|
+
import { ComponentType, CSSProperties, FormEvent, ReactNode } from 'react';
|
|
3
3
|
import { SerializableFile } from '../utils/file';
|
|
4
4
|
import { FlowStep } from '../utils/step';
|
|
5
5
|
import { Flow, GroupNodeData, HttpHeaders, InputNodeData, InputOption, InputType, TreegeNodeData, UINodeData, UIType } from '../../shared/types/node';
|
|
@@ -275,6 +275,11 @@ export type StepRenderProps = {
|
|
|
275
275
|
onContinue: () => void;
|
|
276
276
|
/** Translated label of the group, or empty string for orphan steps. */
|
|
277
277
|
label?: string;
|
|
278
|
+
/**
|
|
279
|
+
* When true, the step container should be rendered without its default
|
|
280
|
+
* border (`disableSectionBorder` renderer prop). Web only.
|
|
281
|
+
*/
|
|
282
|
+
disableSectionBorder?: boolean;
|
|
278
283
|
/** The rendered child nodes belonging to this step. */
|
|
279
284
|
children: ReactNode;
|
|
280
285
|
};
|
|
@@ -413,6 +418,19 @@ export interface TreegeRendererProps extends TreegeRendererConfig {
|
|
|
413
418
|
* Additional class name for the renderer container
|
|
414
419
|
*/
|
|
415
420
|
className?: string;
|
|
421
|
+
/**
|
|
422
|
+
* Removes the default border of the `<section>` wrapping each step (padding
|
|
423
|
+
* and layout are kept, only the border disappears). Web only.
|
|
424
|
+
*
|
|
425
|
+
* @example
|
|
426
|
+
* <TreegeRenderer flow={tree} disableSectionBorder />
|
|
427
|
+
*/
|
|
428
|
+
disableSectionBorder?: boolean;
|
|
429
|
+
/**
|
|
430
|
+
* Inline styles applied to the renderer's root container, alongside
|
|
431
|
+
* `className`. Web only.
|
|
432
|
+
*/
|
|
433
|
+
style?: CSSProperties;
|
|
416
434
|
/**
|
|
417
435
|
* Extra data injected into every submission, merged at the top level of both
|
|
418
436
|
* the `onSubmit` payload and the built-in HTTP submit body. Use it for values
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Locale } from 'date-fns';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the date-fns locale for a renderer language. Regional variants fall
|
|
4
|
+
* back to their base language (`fr-FR` → `fr`), unknown languages to English.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getDateFnsLocale: (language?: string) => Locale;
|
|
@@ -25,3 +25,12 @@ export type FlowStep = {
|
|
|
25
25
|
* Group nodes themselves are skipped — they're metadata only.
|
|
26
26
|
*/
|
|
27
27
|
export declare const computeSteps: (visibleNodes: Node<TreegeNodeData>[]) => FlowStep[];
|
|
28
|
+
/**
|
|
29
|
+
* When a step's only interactive field is a single-choice input (radio,
|
|
30
|
+
* non-multiple select, autocomplete), return that node's id — selecting an
|
|
31
|
+
* option can then advance the step automatically. Returns undefined when the
|
|
32
|
+
* step has zero or several interactive fields, or when its single field is
|
|
33
|
+
* free-form or multi-select. Hidden and submit inputs don't count as
|
|
34
|
+
* interactive.
|
|
35
|
+
*/
|
|
36
|
+
export declare const getAutoAdvanceNodeId: (step: FlowStep | undefined) => string | undefined;
|