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/dist/editor.js CHANGED
@@ -1,3 +1,3 @@
1
- import { t as e } from "./editor-mvGEgr3P.js";
2
- import { n as t, t as n } from "./ThemeContext-CE3SE9DG.js";
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-mvGEgr3P.js";
2
- import { G as t, I as n, J as r, K as i, L 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-CE3SE9DG.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-DNVIV9BO.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-BPgpYSyg.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-CfoZiy7J.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, t as getStaticTranslations, i as getTranslatableValue, b as getTranslatedText, re as getViewerFields, f as isFieldEmpty, s as isGroupNode, ae as isImageFile, o as isInputNode, w as isRemoteFileData, G as isStartNode, c as isUINode, T as normalizeSerializableFiles, g as resolveNodeDefaultValue, n as sanitize, a as sanitizeHttpResponse, d as serializableToFile, r as setTranslatableValue, v as useTheme, Y as useTreegeRenderer, J as useTreegeRendererConfig, te as viewerFieldsFromResponse };
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 (not used in React Native)
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;