@bsm-form/react-renderer 0.39.0
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/index.cjs +5078 -0
- package/dist/index.d.cts +311 -0
- package/dist/index.d.ts +311 -0
- package/dist/index.js +4992 -0
- package/package.json +46 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as _bsm_form_core from '@bsm-form/core';
|
|
3
|
+
import { RuntimeNode, FormEngineEnvironment, FormEngine, PaginationChangeResult } from '@bsm-form/core';
|
|
4
|
+
import { FormSchema, PopoverAlign, PopoverSide, DropdownMenuItemVariant, DropdownMenuSide, DropdownMenuAlign, StepperConnector, StepperOrientation, DialogSize, DrawerSide, Node } from '@bsm-form/schema';
|
|
5
|
+
import * as react from 'react';
|
|
6
|
+
import { ReactNode, HTMLAttributes, ComponentType } from 'react';
|
|
7
|
+
|
|
8
|
+
type RenderWrapper = (props: {
|
|
9
|
+
node: RuntimeNode;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}) => React.ReactNode;
|
|
12
|
+
|
|
13
|
+
type Props$8 = {
|
|
14
|
+
node: RuntimeNode;
|
|
15
|
+
wrapper?: RenderWrapper;
|
|
16
|
+
};
|
|
17
|
+
declare function LayoutRenderer({ node }: Props$8): react_jsx_runtime.JSX.Element | null;
|
|
18
|
+
|
|
19
|
+
type Props$7 = {
|
|
20
|
+
node: RuntimeNode;
|
|
21
|
+
};
|
|
22
|
+
declare function FieldRenderer({ node }: Props$7): react_jsx_runtime.JSX.Element | null;
|
|
23
|
+
|
|
24
|
+
type Props$6 = {
|
|
25
|
+
node: RuntimeNode;
|
|
26
|
+
};
|
|
27
|
+
declare function ActionRenderer({ node }: Props$6): react_jsx_runtime.JSX.Element | null;
|
|
28
|
+
|
|
29
|
+
type InvokeCatalogEntry = {
|
|
30
|
+
name: string;
|
|
31
|
+
label: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** Read-only snapshot passed to a host slot renderer. */
|
|
35
|
+
type SlotRenderContext = {
|
|
36
|
+
values: Record<string, unknown>;
|
|
37
|
+
resources: Record<string, unknown>;
|
|
38
|
+
};
|
|
39
|
+
/** Host-provided React content for a schema slot `name`. */
|
|
40
|
+
type SlotRenderer = (ctx: SlotRenderContext) => ReactNode;
|
|
41
|
+
type SlotCatalogEntry = {
|
|
42
|
+
name: string;
|
|
43
|
+
label: string;
|
|
44
|
+
};
|
|
45
|
+
type FormSlots = Record<string, SlotRenderer>;
|
|
46
|
+
|
|
47
|
+
/** Host map of DB/schema id → FormSchema for nested `form-ref` nodes. */
|
|
48
|
+
type FormRefRegistry = Record<string, FormSchema>;
|
|
49
|
+
/**
|
|
50
|
+
* Live snapshot of one embedded form engine.
|
|
51
|
+
* Mirrored to every parent/sibling engine under `resources.embeds.{instanceKey}`.
|
|
52
|
+
*/
|
|
53
|
+
type EmbeddedFormSnapshot = {
|
|
54
|
+
values: Record<string, unknown>;
|
|
55
|
+
resources: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Parent-owned bag of embedded snapshots, keyed by `form-ref` `instanceKey`.
|
|
59
|
+
* Field names stay local to each nested engine; this bag never flattens them.
|
|
60
|
+
*/
|
|
61
|
+
type EmbeddedFormBag = Record<string, EmbeddedFormSnapshot>;
|
|
62
|
+
/** @deprecated Prefer EmbeddedFormBag — kept as alias for values-only maps. */
|
|
63
|
+
type EmbeddedFormValuesBag = Record<string, Record<string, unknown>>;
|
|
64
|
+
type EmbeddedSnapshotChangeHandler = (instanceKey: string, snapshot: EmbeddedFormSnapshot) => void;
|
|
65
|
+
/** @deprecated Prefer EmbeddedSnapshotChangeHandler. */
|
|
66
|
+
type EmbeddedValuesChangeHandler = (instanceKey: string, values: Record<string, unknown>) => void;
|
|
67
|
+
/** Resource root used for cross-form reads: `resources.embeds.<instanceKey>.*`. */
|
|
68
|
+
declare const EMBEDS_RESOURCE_ROOT = "embeds";
|
|
69
|
+
/**
|
|
70
|
+
* Compose parent field values with namespaced embedded values for submit/save.
|
|
71
|
+
* Instance keys overwrite same-named parent keys intentionally — authors should
|
|
72
|
+
* keep instance keys distinct from parent field names.
|
|
73
|
+
*/
|
|
74
|
+
declare function aggregateEmbeddedFormValues(parentValues: Record<string, unknown>, embeddedBag: EmbeddedFormBag | EmbeddedFormValuesBag): Record<string, unknown>;
|
|
75
|
+
/** Full submit payload: parent values + per-instance values/resources. */
|
|
76
|
+
declare function aggregateEmbeddedFormPayload(parentValues: Record<string, unknown>, parentResources: Record<string, unknown>, embeddedBag: EmbeddedFormBag): {
|
|
77
|
+
values: Record<string, unknown>;
|
|
78
|
+
resources: Record<string, unknown>;
|
|
79
|
+
embeds: EmbeddedFormBag;
|
|
80
|
+
};
|
|
81
|
+
/** Immutable bag update helper for host / FormRenderer state. */
|
|
82
|
+
declare function setEmbeddedFormSnapshot(bag: EmbeddedFormBag, instanceKey: string, snapshot: EmbeddedFormSnapshot): EmbeddedFormBag;
|
|
83
|
+
/** @deprecated Prefer setEmbeddedFormSnapshot. */
|
|
84
|
+
declare function setEmbeddedFormValues(bag: EmbeddedFormValuesBag, instanceKey: string, values: Record<string, unknown>): EmbeddedFormValuesBag;
|
|
85
|
+
/** Drop the mirrored embeds mirror so reporting it does not feedback-loop. */
|
|
86
|
+
declare function resourcesWithoutEmbeds(resources: Record<string, unknown>): Record<string, unknown>;
|
|
87
|
+
declare function snapshotFromEngine(parts: {
|
|
88
|
+
values: Record<string, unknown>;
|
|
89
|
+
resources: Record<string, unknown>;
|
|
90
|
+
}): EmbeddedFormSnapshot;
|
|
91
|
+
|
|
92
|
+
type Props$5 = {
|
|
93
|
+
tree: FormSchema;
|
|
94
|
+
renderWrapper?: RenderWrapper;
|
|
95
|
+
designMode?: boolean;
|
|
96
|
+
environment?: Partial<FormEngineEnvironment>;
|
|
97
|
+
invokeCatalog?: readonly InvokeCatalogEntry[];
|
|
98
|
+
/** Host React content keyed by slot `props.name`. */
|
|
99
|
+
slots?: FormSlots;
|
|
100
|
+
/** Optional Builder/Select labels for slot names. */
|
|
101
|
+
slotCatalog?: readonly SlotCatalogEntry[];
|
|
102
|
+
/** Host map of schemaId → FormSchema for `form-ref` nodes. */
|
|
103
|
+
forms?: FormRefRegistry;
|
|
104
|
+
/** Reports nested form values under each form-ref `instanceKey`. */
|
|
105
|
+
onEmbeddedValuesChange?: EmbeddedValuesChangeHandler;
|
|
106
|
+
/** Reports nested form values+resources under each form-ref `instanceKey`. */
|
|
107
|
+
onEmbeddedSnapshotChange?: EmbeddedSnapshotChangeHandler;
|
|
108
|
+
/** Reports this form's values (root or nested host). */
|
|
109
|
+
onValuesChange?: (values: Record<string, unknown>) => void;
|
|
110
|
+
/** Skip the root Sonner toaster (nested embeds should pass true). */
|
|
111
|
+
suppressToaster?: boolean;
|
|
112
|
+
};
|
|
113
|
+
declare function FormRenderer({ tree, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
114
|
+
|
|
115
|
+
type Props$4 = {
|
|
116
|
+
node: RuntimeNode;
|
|
117
|
+
};
|
|
118
|
+
declare function NodeRenderer({ node }: Props$4): ReactNode;
|
|
119
|
+
|
|
120
|
+
type Props$3 = {
|
|
121
|
+
node: RuntimeNode;
|
|
122
|
+
};
|
|
123
|
+
declare function DisplayRenderer({ node }: Props$3): react_jsx_runtime.JSX.Element | null;
|
|
124
|
+
|
|
125
|
+
declare const ALERT_TYPES: readonly ["success", "error", "warning", "info", "default"];
|
|
126
|
+
declare const ALERT_VARIANTS: readonly ["filled", "outline"];
|
|
127
|
+
type AlertType = (typeof ALERT_TYPES)[number];
|
|
128
|
+
type AlertVariant = (typeof ALERT_VARIANTS)[number];
|
|
129
|
+
type AlertDisplayProps = Record<string, unknown>;
|
|
130
|
+
declare function AlertDisplay({ type, variant, title, children, className, withIcon, closable, actionText, onClose, onAction, }: AlertDisplayProps): react_jsx_runtime.JSX.Element | null;
|
|
131
|
+
declare function normalizeAlertType(value: unknown): AlertType;
|
|
132
|
+
declare function normalizeAlertVariant(value: unknown): AlertVariant;
|
|
133
|
+
declare function normalizeAlertText(value: unknown): string | undefined;
|
|
134
|
+
|
|
135
|
+
declare const CHIPS_VARIANTS: readonly ["default", "secondary"];
|
|
136
|
+
type ChipsVariant = (typeof CHIPS_VARIANTS)[number];
|
|
137
|
+
type ChipsDisplayProps = Record<string, unknown>;
|
|
138
|
+
declare function ChipsDisplay({ label, className, variant, rounded, disabled, onClose, onClick, }: ChipsDisplayProps): react_jsx_runtime.JSX.Element | null;
|
|
139
|
+
declare function normalizeChipsLabel(value: unknown): string | undefined;
|
|
140
|
+
declare function normalizeChipsVariant(value: unknown): ChipsVariant;
|
|
141
|
+
|
|
142
|
+
type SkeletonDisplayProps = Record<string, unknown>;
|
|
143
|
+
declare function SkeletonDisplay({ ariaLabel, className, }: SkeletonDisplayProps): react_jsx_runtime.JSX.Element;
|
|
144
|
+
declare function normalizeSkeletonAriaLabel(value: unknown): string | undefined;
|
|
145
|
+
declare function normalizeSkeletonClassName(value: unknown): string | undefined;
|
|
146
|
+
|
|
147
|
+
type Props$2 = {
|
|
148
|
+
className?: string;
|
|
149
|
+
children?: React.ReactNode;
|
|
150
|
+
designPlaceholder?: string;
|
|
151
|
+
};
|
|
152
|
+
/** Host slot mount point — children come from the host registry, not schema. */
|
|
153
|
+
declare function SlotDisplay({ className, children, designPlaceholder, }: Props$2): react_jsx_runtime.JSX.Element | null;
|
|
154
|
+
|
|
155
|
+
type Props$1 = {
|
|
156
|
+
node: RuntimeNode;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Nested form host: one isolated FormEngine per referenced schema.
|
|
160
|
+
*
|
|
161
|
+
* Publishes `{ values, resources }` into the parent embed bag under
|
|
162
|
+
* `instanceKey`, and mirrors the full bag to `resources.embeds` so siblings
|
|
163
|
+
* and the parent can read live cross-form data without merging schemas.
|
|
164
|
+
*/
|
|
165
|
+
declare function FormRefRenderer({ node }: Props$1): react_jsx_runtime.JSX.Element | null;
|
|
166
|
+
|
|
167
|
+
declare const TriggerBridge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & {
|
|
168
|
+
activateWhenNonInteractive?: boolean;
|
|
169
|
+
disabled?: boolean;
|
|
170
|
+
} & react.RefAttributes<HTMLSpanElement>>;
|
|
171
|
+
|
|
172
|
+
type Props = {
|
|
173
|
+
node: RuntimeNode;
|
|
174
|
+
};
|
|
175
|
+
declare function TooltipRenderer({ node }: Props): react_jsx_runtime.JSX.Element | null;
|
|
176
|
+
|
|
177
|
+
declare function PopoverRenderer({ node }: {
|
|
178
|
+
node: RuntimeNode;
|
|
179
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
180
|
+
declare function buildPopoverRootProps(props: unknown): {
|
|
181
|
+
defaultOpen: boolean;
|
|
182
|
+
modal: boolean;
|
|
183
|
+
};
|
|
184
|
+
declare function normalizePopoverDefaultOpen(value: unknown): value is true;
|
|
185
|
+
declare function normalizePopoverModal(value: unknown): value is true;
|
|
186
|
+
|
|
187
|
+
declare function PopoverSlotRenderer({ node }: {
|
|
188
|
+
node: RuntimeNode;
|
|
189
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
190
|
+
declare function buildPopoverContentProps(props: unknown): {
|
|
191
|
+
align: PopoverAlign;
|
|
192
|
+
side: PopoverSide;
|
|
193
|
+
sideOffset: number;
|
|
194
|
+
alignOffset: number;
|
|
195
|
+
className: string | undefined;
|
|
196
|
+
"aria-label": string | undefined;
|
|
197
|
+
};
|
|
198
|
+
declare function normalizePopoverAlign(value: unknown): PopoverAlign;
|
|
199
|
+
declare function normalizePopoverSide(value: unknown): PopoverSide;
|
|
200
|
+
declare function normalizePopoverSideOffset(value: unknown): number;
|
|
201
|
+
declare function normalizePopoverAlignOffset(value: unknown): number;
|
|
202
|
+
declare function normalizePopoverClassName(value: unknown): string | undefined;
|
|
203
|
+
declare function normalizePopoverAriaLabel(value: unknown): string | undefined;
|
|
204
|
+
|
|
205
|
+
declare function DropdownMenuRenderer({ node }: {
|
|
206
|
+
node: RuntimeNode;
|
|
207
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
208
|
+
declare function buildDropdownMenuRootProps(props: unknown): {
|
|
209
|
+
defaultOpen: boolean;
|
|
210
|
+
modal: boolean;
|
|
211
|
+
};
|
|
212
|
+
declare function normalizeDropdownMenuDefaultOpen(value: unknown): value is true;
|
|
213
|
+
declare function normalizeDropdownMenuModal(value: unknown): boolean;
|
|
214
|
+
|
|
215
|
+
declare function DropdownMenuSlotRenderer({ node }: {
|
|
216
|
+
node: RuntimeNode;
|
|
217
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
218
|
+
type DropdownMenuItemViewProps = {
|
|
219
|
+
id: string;
|
|
220
|
+
label: string;
|
|
221
|
+
shortcut?: string;
|
|
222
|
+
disabled: boolean;
|
|
223
|
+
inset: boolean;
|
|
224
|
+
variant: DropdownMenuItemVariant;
|
|
225
|
+
className?: string;
|
|
226
|
+
onSelect: () => void;
|
|
227
|
+
};
|
|
228
|
+
declare function DropdownMenuItemView({ id, label, shortcut, disabled, inset, variant, className, onSelect, }: DropdownMenuItemViewProps): react_jsx_runtime.JSX.Element;
|
|
229
|
+
declare function buildDropdownMenuContentProps(props: unknown): {
|
|
230
|
+
side: DropdownMenuSide;
|
|
231
|
+
sideOffset: number;
|
|
232
|
+
align: DropdownMenuAlign;
|
|
233
|
+
alignOffset: number;
|
|
234
|
+
collisionPadding: number;
|
|
235
|
+
className: string | undefined;
|
|
236
|
+
"aria-label": string | undefined;
|
|
237
|
+
};
|
|
238
|
+
declare function normalizeDropdownMenuSide(value: unknown): DropdownMenuSide;
|
|
239
|
+
declare function normalizeDropdownMenuAlign(value: unknown): DropdownMenuAlign;
|
|
240
|
+
declare function normalizeDropdownMenuSideOffset(value: unknown): number;
|
|
241
|
+
declare function normalizeDropdownMenuAlignOffset(value: unknown): number;
|
|
242
|
+
declare function normalizeDropdownMenuCollisionPadding(value: unknown): number;
|
|
243
|
+
declare function normalizeDropdownMenuItemVariant(value: unknown): DropdownMenuItemVariant;
|
|
244
|
+
declare function normalizeDropdownMenuBoolean(value: unknown): value is true;
|
|
245
|
+
declare function normalizeDropdownMenuClassName(value: unknown): string | undefined;
|
|
246
|
+
declare function normalizeDropdownMenuAriaLabel(value: unknown): string | undefined;
|
|
247
|
+
declare function normalizeDropdownMenuText(value: unknown): string;
|
|
248
|
+
declare function normalizeDropdownMenuOptionalText(value: unknown): string | undefined;
|
|
249
|
+
|
|
250
|
+
declare function PaginationRenderer({ node }: {
|
|
251
|
+
node: RuntimeNode;
|
|
252
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
253
|
+
declare function normalizePageSizeOptions(value: unknown): number[];
|
|
254
|
+
declare function normalizePositiveInteger(value: unknown, fallback: number): number;
|
|
255
|
+
declare function normalizeNonNegativeInteger(value: unknown, fallback: number): number;
|
|
256
|
+
|
|
257
|
+
declare function executeRendererPaginationChange(engine: FormEngine, paginationId: string, page: number, pageSize: number, designMode: boolean): Promise<PaginationChangeResult> | undefined;
|
|
258
|
+
|
|
259
|
+
declare function StepperRenderer({ node }: {
|
|
260
|
+
node: RuntimeNode;
|
|
261
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
262
|
+
declare function normalizeStepperOrientation(value: unknown): StepperOrientation;
|
|
263
|
+
declare function normalizeStepperConnector(value: unknown): StepperConnector;
|
|
264
|
+
|
|
265
|
+
declare function StepRenderer({ node }: {
|
|
266
|
+
node: RuntimeNode;
|
|
267
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
268
|
+
declare function normalizeStepLabel(value: unknown): string;
|
|
269
|
+
|
|
270
|
+
declare function executeRendererStepperNavigation(engine: FormEngine, stepperId: string, stepId: string, designMode: boolean): Promise<_bsm_form_core.StepperNavigationResult> | undefined;
|
|
271
|
+
|
|
272
|
+
declare function DialogRenderer({ node }: {
|
|
273
|
+
node: RuntimeNode;
|
|
274
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
275
|
+
declare function normalizeDialogSize(value: unknown): DialogSize;
|
|
276
|
+
|
|
277
|
+
declare function DialogSlotRenderer({ node }: {
|
|
278
|
+
node: RuntimeNode;
|
|
279
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
280
|
+
declare function normalizeDialogTitle(value: unknown): string;
|
|
281
|
+
|
|
282
|
+
declare function executeRendererDialogChange(engine: FormEngine, dialogId: string, open: boolean, designMode: boolean): Promise<_bsm_form_core.DialogTransitionResult> | undefined;
|
|
283
|
+
|
|
284
|
+
declare function DrawerRenderer({ node }: {
|
|
285
|
+
node: RuntimeNode;
|
|
286
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
287
|
+
declare function normalizeDrawerSide(value: unknown): DrawerSide;
|
|
288
|
+
|
|
289
|
+
declare function DrawerSlotRenderer({ node }: {
|
|
290
|
+
node: RuntimeNode;
|
|
291
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
292
|
+
declare function normalizeDrawerTitle(value: unknown): string;
|
|
293
|
+
|
|
294
|
+
declare function executeRendererDrawerChange(engine: FormEngine, drawerId: string, open: boolean, designMode: boolean): Promise<_bsm_form_core.DrawerTransitionResult> | undefined;
|
|
295
|
+
|
|
296
|
+
type ReactFieldRegistryItem = {
|
|
297
|
+
type: Node["type"];
|
|
298
|
+
component: ComponentType<any>;
|
|
299
|
+
};
|
|
300
|
+
type ReactRegistry = Map<string, ReactFieldRegistryItem>;
|
|
301
|
+
|
|
302
|
+
declare function FormProvider({ engine, children, }: {
|
|
303
|
+
engine: FormEngine;
|
|
304
|
+
children: ReactNode;
|
|
305
|
+
}): react_jsx_runtime.JSX.Element;
|
|
306
|
+
|
|
307
|
+
declare const FormContext: react.Context<FormEngine | null>;
|
|
308
|
+
declare function useFormContext(): FormEngine;
|
|
309
|
+
declare function useOptionalFormContext(): FormEngine | null;
|
|
310
|
+
|
|
311
|
+
export { ActionRenderer, AlertDisplay, ChipsDisplay, DialogRenderer, DialogSlotRenderer, DisplayRenderer, DrawerRenderer, DrawerSlotRenderer, DropdownMenuItemView, DropdownMenuRenderer, DropdownMenuSlotRenderer, EMBEDS_RESOURCE_ROOT, type EmbeddedFormBag, type EmbeddedFormSnapshot, type EmbeddedFormValuesBag, type EmbeddedSnapshotChangeHandler, type EmbeddedValuesChangeHandler, FieldRenderer, FormContext, FormProvider, type FormRefRegistry, FormRefRenderer, FormRenderer, type FormSlots, type InvokeCatalogEntry, LayoutRenderer, NodeRenderer, PaginationRenderer, PopoverRenderer, PopoverSlotRenderer, type ReactFieldRegistryItem, type ReactRegistry, SkeletonDisplay, type SlotCatalogEntry, SlotDisplay, type SlotRenderContext, type SlotRenderer, StepRenderer, StepperRenderer, TooltipRenderer, TriggerBridge as TooltipTriggerBridge, aggregateEmbeddedFormPayload, aggregateEmbeddedFormValues, buildDropdownMenuContentProps, buildDropdownMenuRootProps, buildPopoverContentProps, buildPopoverRootProps, executeRendererDialogChange, executeRendererDrawerChange, executeRendererPaginationChange, executeRendererStepperNavigation, normalizeAlertText, normalizeAlertType, normalizeAlertVariant, normalizeChipsLabel, normalizeChipsVariant, normalizeDialogSize, normalizeDialogTitle, normalizeDrawerSide, normalizeDrawerTitle, normalizeDropdownMenuAlign, normalizeDropdownMenuAlignOffset, normalizeDropdownMenuAriaLabel, normalizeDropdownMenuBoolean, normalizeDropdownMenuClassName, normalizeDropdownMenuCollisionPadding, normalizeDropdownMenuDefaultOpen, normalizeDropdownMenuItemVariant, normalizeDropdownMenuModal, normalizeDropdownMenuOptionalText, normalizeDropdownMenuSide, normalizeDropdownMenuSideOffset, normalizeDropdownMenuText, normalizeNonNegativeInteger, normalizePageSizeOptions, normalizePopoverAlign, normalizePopoverAlignOffset, normalizePopoverAriaLabel, normalizePopoverClassName, normalizePopoverDefaultOpen, normalizePopoverModal, normalizePopoverSide, normalizePopoverSideOffset, normalizePositiveInteger, normalizeSkeletonAriaLabel, normalizeSkeletonClassName, normalizeStepLabel, normalizeStepperConnector, normalizeStepperOrientation, resourcesWithoutEmbeds, setEmbeddedFormSnapshot, setEmbeddedFormValues, snapshotFromEngine, useFormContext, useOptionalFormContext };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as _bsm_form_core from '@bsm-form/core';
|
|
3
|
+
import { RuntimeNode, FormEngineEnvironment, FormEngine, PaginationChangeResult } from '@bsm-form/core';
|
|
4
|
+
import { FormSchema, PopoverAlign, PopoverSide, DropdownMenuItemVariant, DropdownMenuSide, DropdownMenuAlign, StepperConnector, StepperOrientation, DialogSize, DrawerSide, Node } from '@bsm-form/schema';
|
|
5
|
+
import * as react from 'react';
|
|
6
|
+
import { ReactNode, HTMLAttributes, ComponentType } from 'react';
|
|
7
|
+
|
|
8
|
+
type RenderWrapper = (props: {
|
|
9
|
+
node: RuntimeNode;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}) => React.ReactNode;
|
|
12
|
+
|
|
13
|
+
type Props$8 = {
|
|
14
|
+
node: RuntimeNode;
|
|
15
|
+
wrapper?: RenderWrapper;
|
|
16
|
+
};
|
|
17
|
+
declare function LayoutRenderer({ node }: Props$8): react_jsx_runtime.JSX.Element | null;
|
|
18
|
+
|
|
19
|
+
type Props$7 = {
|
|
20
|
+
node: RuntimeNode;
|
|
21
|
+
};
|
|
22
|
+
declare function FieldRenderer({ node }: Props$7): react_jsx_runtime.JSX.Element | null;
|
|
23
|
+
|
|
24
|
+
type Props$6 = {
|
|
25
|
+
node: RuntimeNode;
|
|
26
|
+
};
|
|
27
|
+
declare function ActionRenderer({ node }: Props$6): react_jsx_runtime.JSX.Element | null;
|
|
28
|
+
|
|
29
|
+
type InvokeCatalogEntry = {
|
|
30
|
+
name: string;
|
|
31
|
+
label: string;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/** Read-only snapshot passed to a host slot renderer. */
|
|
35
|
+
type SlotRenderContext = {
|
|
36
|
+
values: Record<string, unknown>;
|
|
37
|
+
resources: Record<string, unknown>;
|
|
38
|
+
};
|
|
39
|
+
/** Host-provided React content for a schema slot `name`. */
|
|
40
|
+
type SlotRenderer = (ctx: SlotRenderContext) => ReactNode;
|
|
41
|
+
type SlotCatalogEntry = {
|
|
42
|
+
name: string;
|
|
43
|
+
label: string;
|
|
44
|
+
};
|
|
45
|
+
type FormSlots = Record<string, SlotRenderer>;
|
|
46
|
+
|
|
47
|
+
/** Host map of DB/schema id → FormSchema for nested `form-ref` nodes. */
|
|
48
|
+
type FormRefRegistry = Record<string, FormSchema>;
|
|
49
|
+
/**
|
|
50
|
+
* Live snapshot of one embedded form engine.
|
|
51
|
+
* Mirrored to every parent/sibling engine under `resources.embeds.{instanceKey}`.
|
|
52
|
+
*/
|
|
53
|
+
type EmbeddedFormSnapshot = {
|
|
54
|
+
values: Record<string, unknown>;
|
|
55
|
+
resources: Record<string, unknown>;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Parent-owned bag of embedded snapshots, keyed by `form-ref` `instanceKey`.
|
|
59
|
+
* Field names stay local to each nested engine; this bag never flattens them.
|
|
60
|
+
*/
|
|
61
|
+
type EmbeddedFormBag = Record<string, EmbeddedFormSnapshot>;
|
|
62
|
+
/** @deprecated Prefer EmbeddedFormBag — kept as alias for values-only maps. */
|
|
63
|
+
type EmbeddedFormValuesBag = Record<string, Record<string, unknown>>;
|
|
64
|
+
type EmbeddedSnapshotChangeHandler = (instanceKey: string, snapshot: EmbeddedFormSnapshot) => void;
|
|
65
|
+
/** @deprecated Prefer EmbeddedSnapshotChangeHandler. */
|
|
66
|
+
type EmbeddedValuesChangeHandler = (instanceKey: string, values: Record<string, unknown>) => void;
|
|
67
|
+
/** Resource root used for cross-form reads: `resources.embeds.<instanceKey>.*`. */
|
|
68
|
+
declare const EMBEDS_RESOURCE_ROOT = "embeds";
|
|
69
|
+
/**
|
|
70
|
+
* Compose parent field values with namespaced embedded values for submit/save.
|
|
71
|
+
* Instance keys overwrite same-named parent keys intentionally — authors should
|
|
72
|
+
* keep instance keys distinct from parent field names.
|
|
73
|
+
*/
|
|
74
|
+
declare function aggregateEmbeddedFormValues(parentValues: Record<string, unknown>, embeddedBag: EmbeddedFormBag | EmbeddedFormValuesBag): Record<string, unknown>;
|
|
75
|
+
/** Full submit payload: parent values + per-instance values/resources. */
|
|
76
|
+
declare function aggregateEmbeddedFormPayload(parentValues: Record<string, unknown>, parentResources: Record<string, unknown>, embeddedBag: EmbeddedFormBag): {
|
|
77
|
+
values: Record<string, unknown>;
|
|
78
|
+
resources: Record<string, unknown>;
|
|
79
|
+
embeds: EmbeddedFormBag;
|
|
80
|
+
};
|
|
81
|
+
/** Immutable bag update helper for host / FormRenderer state. */
|
|
82
|
+
declare function setEmbeddedFormSnapshot(bag: EmbeddedFormBag, instanceKey: string, snapshot: EmbeddedFormSnapshot): EmbeddedFormBag;
|
|
83
|
+
/** @deprecated Prefer setEmbeddedFormSnapshot. */
|
|
84
|
+
declare function setEmbeddedFormValues(bag: EmbeddedFormValuesBag, instanceKey: string, values: Record<string, unknown>): EmbeddedFormValuesBag;
|
|
85
|
+
/** Drop the mirrored embeds mirror so reporting it does not feedback-loop. */
|
|
86
|
+
declare function resourcesWithoutEmbeds(resources: Record<string, unknown>): Record<string, unknown>;
|
|
87
|
+
declare function snapshotFromEngine(parts: {
|
|
88
|
+
values: Record<string, unknown>;
|
|
89
|
+
resources: Record<string, unknown>;
|
|
90
|
+
}): EmbeddedFormSnapshot;
|
|
91
|
+
|
|
92
|
+
type Props$5 = {
|
|
93
|
+
tree: FormSchema;
|
|
94
|
+
renderWrapper?: RenderWrapper;
|
|
95
|
+
designMode?: boolean;
|
|
96
|
+
environment?: Partial<FormEngineEnvironment>;
|
|
97
|
+
invokeCatalog?: readonly InvokeCatalogEntry[];
|
|
98
|
+
/** Host React content keyed by slot `props.name`. */
|
|
99
|
+
slots?: FormSlots;
|
|
100
|
+
/** Optional Builder/Select labels for slot names. */
|
|
101
|
+
slotCatalog?: readonly SlotCatalogEntry[];
|
|
102
|
+
/** Host map of schemaId → FormSchema for `form-ref` nodes. */
|
|
103
|
+
forms?: FormRefRegistry;
|
|
104
|
+
/** Reports nested form values under each form-ref `instanceKey`. */
|
|
105
|
+
onEmbeddedValuesChange?: EmbeddedValuesChangeHandler;
|
|
106
|
+
/** Reports nested form values+resources under each form-ref `instanceKey`. */
|
|
107
|
+
onEmbeddedSnapshotChange?: EmbeddedSnapshotChangeHandler;
|
|
108
|
+
/** Reports this form's values (root or nested host). */
|
|
109
|
+
onValuesChange?: (values: Record<string, unknown>) => void;
|
|
110
|
+
/** Skip the root Sonner toaster (nested embeds should pass true). */
|
|
111
|
+
suppressToaster?: boolean;
|
|
112
|
+
};
|
|
113
|
+
declare function FormRenderer({ tree, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
114
|
+
|
|
115
|
+
type Props$4 = {
|
|
116
|
+
node: RuntimeNode;
|
|
117
|
+
};
|
|
118
|
+
declare function NodeRenderer({ node }: Props$4): ReactNode;
|
|
119
|
+
|
|
120
|
+
type Props$3 = {
|
|
121
|
+
node: RuntimeNode;
|
|
122
|
+
};
|
|
123
|
+
declare function DisplayRenderer({ node }: Props$3): react_jsx_runtime.JSX.Element | null;
|
|
124
|
+
|
|
125
|
+
declare const ALERT_TYPES: readonly ["success", "error", "warning", "info", "default"];
|
|
126
|
+
declare const ALERT_VARIANTS: readonly ["filled", "outline"];
|
|
127
|
+
type AlertType = (typeof ALERT_TYPES)[number];
|
|
128
|
+
type AlertVariant = (typeof ALERT_VARIANTS)[number];
|
|
129
|
+
type AlertDisplayProps = Record<string, unknown>;
|
|
130
|
+
declare function AlertDisplay({ type, variant, title, children, className, withIcon, closable, actionText, onClose, onAction, }: AlertDisplayProps): react_jsx_runtime.JSX.Element | null;
|
|
131
|
+
declare function normalizeAlertType(value: unknown): AlertType;
|
|
132
|
+
declare function normalizeAlertVariant(value: unknown): AlertVariant;
|
|
133
|
+
declare function normalizeAlertText(value: unknown): string | undefined;
|
|
134
|
+
|
|
135
|
+
declare const CHIPS_VARIANTS: readonly ["default", "secondary"];
|
|
136
|
+
type ChipsVariant = (typeof CHIPS_VARIANTS)[number];
|
|
137
|
+
type ChipsDisplayProps = Record<string, unknown>;
|
|
138
|
+
declare function ChipsDisplay({ label, className, variant, rounded, disabled, onClose, onClick, }: ChipsDisplayProps): react_jsx_runtime.JSX.Element | null;
|
|
139
|
+
declare function normalizeChipsLabel(value: unknown): string | undefined;
|
|
140
|
+
declare function normalizeChipsVariant(value: unknown): ChipsVariant;
|
|
141
|
+
|
|
142
|
+
type SkeletonDisplayProps = Record<string, unknown>;
|
|
143
|
+
declare function SkeletonDisplay({ ariaLabel, className, }: SkeletonDisplayProps): react_jsx_runtime.JSX.Element;
|
|
144
|
+
declare function normalizeSkeletonAriaLabel(value: unknown): string | undefined;
|
|
145
|
+
declare function normalizeSkeletonClassName(value: unknown): string | undefined;
|
|
146
|
+
|
|
147
|
+
type Props$2 = {
|
|
148
|
+
className?: string;
|
|
149
|
+
children?: React.ReactNode;
|
|
150
|
+
designPlaceholder?: string;
|
|
151
|
+
};
|
|
152
|
+
/** Host slot mount point — children come from the host registry, not schema. */
|
|
153
|
+
declare function SlotDisplay({ className, children, designPlaceholder, }: Props$2): react_jsx_runtime.JSX.Element | null;
|
|
154
|
+
|
|
155
|
+
type Props$1 = {
|
|
156
|
+
node: RuntimeNode;
|
|
157
|
+
};
|
|
158
|
+
/**
|
|
159
|
+
* Nested form host: one isolated FormEngine per referenced schema.
|
|
160
|
+
*
|
|
161
|
+
* Publishes `{ values, resources }` into the parent embed bag under
|
|
162
|
+
* `instanceKey`, and mirrors the full bag to `resources.embeds` so siblings
|
|
163
|
+
* and the parent can read live cross-form data without merging schemas.
|
|
164
|
+
*/
|
|
165
|
+
declare function FormRefRenderer({ node }: Props$1): react_jsx_runtime.JSX.Element | null;
|
|
166
|
+
|
|
167
|
+
declare const TriggerBridge: react.ForwardRefExoticComponent<HTMLAttributes<HTMLSpanElement> & {
|
|
168
|
+
activateWhenNonInteractive?: boolean;
|
|
169
|
+
disabled?: boolean;
|
|
170
|
+
} & react.RefAttributes<HTMLSpanElement>>;
|
|
171
|
+
|
|
172
|
+
type Props = {
|
|
173
|
+
node: RuntimeNode;
|
|
174
|
+
};
|
|
175
|
+
declare function TooltipRenderer({ node }: Props): react_jsx_runtime.JSX.Element | null;
|
|
176
|
+
|
|
177
|
+
declare function PopoverRenderer({ node }: {
|
|
178
|
+
node: RuntimeNode;
|
|
179
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
180
|
+
declare function buildPopoverRootProps(props: unknown): {
|
|
181
|
+
defaultOpen: boolean;
|
|
182
|
+
modal: boolean;
|
|
183
|
+
};
|
|
184
|
+
declare function normalizePopoverDefaultOpen(value: unknown): value is true;
|
|
185
|
+
declare function normalizePopoverModal(value: unknown): value is true;
|
|
186
|
+
|
|
187
|
+
declare function PopoverSlotRenderer({ node }: {
|
|
188
|
+
node: RuntimeNode;
|
|
189
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
190
|
+
declare function buildPopoverContentProps(props: unknown): {
|
|
191
|
+
align: PopoverAlign;
|
|
192
|
+
side: PopoverSide;
|
|
193
|
+
sideOffset: number;
|
|
194
|
+
alignOffset: number;
|
|
195
|
+
className: string | undefined;
|
|
196
|
+
"aria-label": string | undefined;
|
|
197
|
+
};
|
|
198
|
+
declare function normalizePopoverAlign(value: unknown): PopoverAlign;
|
|
199
|
+
declare function normalizePopoverSide(value: unknown): PopoverSide;
|
|
200
|
+
declare function normalizePopoverSideOffset(value: unknown): number;
|
|
201
|
+
declare function normalizePopoverAlignOffset(value: unknown): number;
|
|
202
|
+
declare function normalizePopoverClassName(value: unknown): string | undefined;
|
|
203
|
+
declare function normalizePopoverAriaLabel(value: unknown): string | undefined;
|
|
204
|
+
|
|
205
|
+
declare function DropdownMenuRenderer({ node }: {
|
|
206
|
+
node: RuntimeNode;
|
|
207
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
208
|
+
declare function buildDropdownMenuRootProps(props: unknown): {
|
|
209
|
+
defaultOpen: boolean;
|
|
210
|
+
modal: boolean;
|
|
211
|
+
};
|
|
212
|
+
declare function normalizeDropdownMenuDefaultOpen(value: unknown): value is true;
|
|
213
|
+
declare function normalizeDropdownMenuModal(value: unknown): boolean;
|
|
214
|
+
|
|
215
|
+
declare function DropdownMenuSlotRenderer({ node }: {
|
|
216
|
+
node: RuntimeNode;
|
|
217
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
218
|
+
type DropdownMenuItemViewProps = {
|
|
219
|
+
id: string;
|
|
220
|
+
label: string;
|
|
221
|
+
shortcut?: string;
|
|
222
|
+
disabled: boolean;
|
|
223
|
+
inset: boolean;
|
|
224
|
+
variant: DropdownMenuItemVariant;
|
|
225
|
+
className?: string;
|
|
226
|
+
onSelect: () => void;
|
|
227
|
+
};
|
|
228
|
+
declare function DropdownMenuItemView({ id, label, shortcut, disabled, inset, variant, className, onSelect, }: DropdownMenuItemViewProps): react_jsx_runtime.JSX.Element;
|
|
229
|
+
declare function buildDropdownMenuContentProps(props: unknown): {
|
|
230
|
+
side: DropdownMenuSide;
|
|
231
|
+
sideOffset: number;
|
|
232
|
+
align: DropdownMenuAlign;
|
|
233
|
+
alignOffset: number;
|
|
234
|
+
collisionPadding: number;
|
|
235
|
+
className: string | undefined;
|
|
236
|
+
"aria-label": string | undefined;
|
|
237
|
+
};
|
|
238
|
+
declare function normalizeDropdownMenuSide(value: unknown): DropdownMenuSide;
|
|
239
|
+
declare function normalizeDropdownMenuAlign(value: unknown): DropdownMenuAlign;
|
|
240
|
+
declare function normalizeDropdownMenuSideOffset(value: unknown): number;
|
|
241
|
+
declare function normalizeDropdownMenuAlignOffset(value: unknown): number;
|
|
242
|
+
declare function normalizeDropdownMenuCollisionPadding(value: unknown): number;
|
|
243
|
+
declare function normalizeDropdownMenuItemVariant(value: unknown): DropdownMenuItemVariant;
|
|
244
|
+
declare function normalizeDropdownMenuBoolean(value: unknown): value is true;
|
|
245
|
+
declare function normalizeDropdownMenuClassName(value: unknown): string | undefined;
|
|
246
|
+
declare function normalizeDropdownMenuAriaLabel(value: unknown): string | undefined;
|
|
247
|
+
declare function normalizeDropdownMenuText(value: unknown): string;
|
|
248
|
+
declare function normalizeDropdownMenuOptionalText(value: unknown): string | undefined;
|
|
249
|
+
|
|
250
|
+
declare function PaginationRenderer({ node }: {
|
|
251
|
+
node: RuntimeNode;
|
|
252
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
253
|
+
declare function normalizePageSizeOptions(value: unknown): number[];
|
|
254
|
+
declare function normalizePositiveInteger(value: unknown, fallback: number): number;
|
|
255
|
+
declare function normalizeNonNegativeInteger(value: unknown, fallback: number): number;
|
|
256
|
+
|
|
257
|
+
declare function executeRendererPaginationChange(engine: FormEngine, paginationId: string, page: number, pageSize: number, designMode: boolean): Promise<PaginationChangeResult> | undefined;
|
|
258
|
+
|
|
259
|
+
declare function StepperRenderer({ node }: {
|
|
260
|
+
node: RuntimeNode;
|
|
261
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
262
|
+
declare function normalizeStepperOrientation(value: unknown): StepperOrientation;
|
|
263
|
+
declare function normalizeStepperConnector(value: unknown): StepperConnector;
|
|
264
|
+
|
|
265
|
+
declare function StepRenderer({ node }: {
|
|
266
|
+
node: RuntimeNode;
|
|
267
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
268
|
+
declare function normalizeStepLabel(value: unknown): string;
|
|
269
|
+
|
|
270
|
+
declare function executeRendererStepperNavigation(engine: FormEngine, stepperId: string, stepId: string, designMode: boolean): Promise<_bsm_form_core.StepperNavigationResult> | undefined;
|
|
271
|
+
|
|
272
|
+
declare function DialogRenderer({ node }: {
|
|
273
|
+
node: RuntimeNode;
|
|
274
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
275
|
+
declare function normalizeDialogSize(value: unknown): DialogSize;
|
|
276
|
+
|
|
277
|
+
declare function DialogSlotRenderer({ node }: {
|
|
278
|
+
node: RuntimeNode;
|
|
279
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
280
|
+
declare function normalizeDialogTitle(value: unknown): string;
|
|
281
|
+
|
|
282
|
+
declare function executeRendererDialogChange(engine: FormEngine, dialogId: string, open: boolean, designMode: boolean): Promise<_bsm_form_core.DialogTransitionResult> | undefined;
|
|
283
|
+
|
|
284
|
+
declare function DrawerRenderer({ node }: {
|
|
285
|
+
node: RuntimeNode;
|
|
286
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
287
|
+
declare function normalizeDrawerSide(value: unknown): DrawerSide;
|
|
288
|
+
|
|
289
|
+
declare function DrawerSlotRenderer({ node }: {
|
|
290
|
+
node: RuntimeNode;
|
|
291
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
292
|
+
declare function normalizeDrawerTitle(value: unknown): string;
|
|
293
|
+
|
|
294
|
+
declare function executeRendererDrawerChange(engine: FormEngine, drawerId: string, open: boolean, designMode: boolean): Promise<_bsm_form_core.DrawerTransitionResult> | undefined;
|
|
295
|
+
|
|
296
|
+
type ReactFieldRegistryItem = {
|
|
297
|
+
type: Node["type"];
|
|
298
|
+
component: ComponentType<any>;
|
|
299
|
+
};
|
|
300
|
+
type ReactRegistry = Map<string, ReactFieldRegistryItem>;
|
|
301
|
+
|
|
302
|
+
declare function FormProvider({ engine, children, }: {
|
|
303
|
+
engine: FormEngine;
|
|
304
|
+
children: ReactNode;
|
|
305
|
+
}): react_jsx_runtime.JSX.Element;
|
|
306
|
+
|
|
307
|
+
declare const FormContext: react.Context<FormEngine | null>;
|
|
308
|
+
declare function useFormContext(): FormEngine;
|
|
309
|
+
declare function useOptionalFormContext(): FormEngine | null;
|
|
310
|
+
|
|
311
|
+
export { ActionRenderer, AlertDisplay, ChipsDisplay, DialogRenderer, DialogSlotRenderer, DisplayRenderer, DrawerRenderer, DrawerSlotRenderer, DropdownMenuItemView, DropdownMenuRenderer, DropdownMenuSlotRenderer, EMBEDS_RESOURCE_ROOT, type EmbeddedFormBag, type EmbeddedFormSnapshot, type EmbeddedFormValuesBag, type EmbeddedSnapshotChangeHandler, type EmbeddedValuesChangeHandler, FieldRenderer, FormContext, FormProvider, type FormRefRegistry, FormRefRenderer, FormRenderer, type FormSlots, type InvokeCatalogEntry, LayoutRenderer, NodeRenderer, PaginationRenderer, PopoverRenderer, PopoverSlotRenderer, type ReactFieldRegistryItem, type ReactRegistry, SkeletonDisplay, type SlotCatalogEntry, SlotDisplay, type SlotRenderContext, type SlotRenderer, StepRenderer, StepperRenderer, TooltipRenderer, TriggerBridge as TooltipTriggerBridge, aggregateEmbeddedFormPayload, aggregateEmbeddedFormValues, buildDropdownMenuContentProps, buildDropdownMenuRootProps, buildPopoverContentProps, buildPopoverRootProps, executeRendererDialogChange, executeRendererDrawerChange, executeRendererPaginationChange, executeRendererStepperNavigation, normalizeAlertText, normalizeAlertType, normalizeAlertVariant, normalizeChipsLabel, normalizeChipsVariant, normalizeDialogSize, normalizeDialogTitle, normalizeDrawerSide, normalizeDrawerTitle, normalizeDropdownMenuAlign, normalizeDropdownMenuAlignOffset, normalizeDropdownMenuAriaLabel, normalizeDropdownMenuBoolean, normalizeDropdownMenuClassName, normalizeDropdownMenuCollisionPadding, normalizeDropdownMenuDefaultOpen, normalizeDropdownMenuItemVariant, normalizeDropdownMenuModal, normalizeDropdownMenuOptionalText, normalizeDropdownMenuSide, normalizeDropdownMenuSideOffset, normalizeDropdownMenuText, normalizeNonNegativeInteger, normalizePageSizeOptions, normalizePopoverAlign, normalizePopoverAlignOffset, normalizePopoverAriaLabel, normalizePopoverClassName, normalizePopoverDefaultOpen, normalizePopoverModal, normalizePopoverSide, normalizePopoverSideOffset, normalizePositiveInteger, normalizeSkeletonAriaLabel, normalizeSkeletonClassName, normalizeStepLabel, normalizeStepperConnector, normalizeStepperOrientation, resourcesWithoutEmbeds, setEmbeddedFormSnapshot, setEmbeddedFormValues, snapshotFromEngine, useFormContext, useOptionalFormContext };
|