@bsm-form/react-renderer 0.40.0 → 0.41.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 +15 -4
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +15 -4
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -4645,6 +4645,7 @@ function ConfigProvider({
|
|
|
4645
4645
|
slots,
|
|
4646
4646
|
slotCatalog,
|
|
4647
4647
|
forms,
|
|
4648
|
+
embeddedEnv,
|
|
4648
4649
|
onEmbeddedValuesChange,
|
|
4649
4650
|
onEmbeddedSnapshotChange,
|
|
4650
4651
|
environment,
|
|
@@ -4696,6 +4697,7 @@ function ConfigProvider({
|
|
|
4696
4697
|
slots,
|
|
4697
4698
|
slotCatalog,
|
|
4698
4699
|
forms,
|
|
4700
|
+
embeddedEnv,
|
|
4699
4701
|
onEmbeddedValuesChange,
|
|
4700
4702
|
onEmbeddedSnapshotChange,
|
|
4701
4703
|
environment,
|
|
@@ -4740,6 +4742,7 @@ function FormRefRenderer({ node }) {
|
|
|
4740
4742
|
const {
|
|
4741
4743
|
designMode,
|
|
4742
4744
|
forms,
|
|
4745
|
+
embeddedEnv,
|
|
4743
4746
|
environment,
|
|
4744
4747
|
slots,
|
|
4745
4748
|
slotCatalog,
|
|
@@ -4756,6 +4759,7 @@ function FormRefRenderer({ node }) {
|
|
|
4756
4759
|
const schemaId = schema.kind === "layout" && schema.type === "form-ref" ? schema.props.schemaId : "";
|
|
4757
4760
|
const instanceKey = schema.kind === "layout" && schema.type === "form-ref" ? schema.props.instanceKey : "";
|
|
4758
4761
|
const className = schema.kind === "layout" && schema.type === "form-ref" && typeof schema.props.className === "string" ? schema.props.className : void 0;
|
|
4762
|
+
const [envConfig] = (0, import_react14.useState)(() => structuredClone(embeddedEnv?.[instanceKey]));
|
|
4759
4763
|
const nestedTree = schemaId ? forms?.[schemaId] : void 0;
|
|
4760
4764
|
const engine = (0, import_react14.useMemo)(() => {
|
|
4761
4765
|
if (!nestedTree) {
|
|
@@ -4765,8 +4769,8 @@ function FormRefRenderer({ node }) {
|
|
|
4765
4769
|
...environment,
|
|
4766
4770
|
notify: environment?.notify ?? notifyWithSonner,
|
|
4767
4771
|
invoke: environment?.invoke ?? {}
|
|
4768
|
-
});
|
|
4769
|
-
}, [nestedTree, environment, designMode]);
|
|
4772
|
+
}, envConfig);
|
|
4773
|
+
}, [nestedTree, environment, designMode, envConfig]);
|
|
4770
4774
|
(0, import_react14.useEffect)(() => {
|
|
4771
4775
|
if (!engine) {
|
|
4772
4776
|
return;
|
|
@@ -4838,6 +4842,7 @@ function FormRefRenderer({ node }) {
|
|
|
4838
4842
|
designMode: designMode === true,
|
|
4839
4843
|
environment,
|
|
4840
4844
|
forms,
|
|
4845
|
+
embeddedEnv,
|
|
4841
4846
|
slots,
|
|
4842
4847
|
slotCatalog,
|
|
4843
4848
|
invokeCatalog,
|
|
@@ -4924,6 +4929,9 @@ var import_sonner2 = require("sonner");
|
|
|
4924
4929
|
var import_jsx_runtime47 = require("react/jsx-runtime");
|
|
4925
4930
|
function FormRenderer({
|
|
4926
4931
|
tree,
|
|
4932
|
+
envDefinitions,
|
|
4933
|
+
env,
|
|
4934
|
+
embeddedEnv,
|
|
4927
4935
|
renderWrapper,
|
|
4928
4936
|
designMode = false,
|
|
4929
4937
|
environment,
|
|
@@ -4936,6 +4944,8 @@ function FormRenderer({
|
|
|
4936
4944
|
onValuesChange,
|
|
4937
4945
|
suppressToaster = false
|
|
4938
4946
|
}) {
|
|
4947
|
+
const [envConfig] = (0, import_react15.useState)(() => structuredClone({ definitions: envDefinitions, overrides: env }));
|
|
4948
|
+
const [embedConfigs] = (0, import_react15.useState)(() => structuredClone(embeddedEnv));
|
|
4939
4949
|
const [, forceUpdate] = (0, import_react15.useState)(0);
|
|
4940
4950
|
const lastSerialized = (0, import_react15.useRef)("");
|
|
4941
4951
|
const engine = (0, import_react15.useMemo)(
|
|
@@ -4943,8 +4953,8 @@ function FormRenderer({
|
|
|
4943
4953
|
...environment,
|
|
4944
4954
|
notify: environment?.notify ?? notifyWithSonner,
|
|
4945
4955
|
invoke: environment?.invoke ?? {}
|
|
4946
|
-
}),
|
|
4947
|
-
[tree, designMode, environment]
|
|
4956
|
+
}, envConfig),
|
|
4957
|
+
[tree, designMode, environment, envConfig]
|
|
4948
4958
|
);
|
|
4949
4959
|
(0, import_react15.useEffect)(() => {
|
|
4950
4960
|
const unsubscribe = engine.subscribe(() => {
|
|
@@ -4980,6 +4990,7 @@ function FormRenderer({
|
|
|
4980
4990
|
slots,
|
|
4981
4991
|
slotCatalog,
|
|
4982
4992
|
forms,
|
|
4993
|
+
embeddedEnv: embedConfigs,
|
|
4983
4994
|
onEmbeddedValuesChange,
|
|
4984
4995
|
onEmbeddedSnapshotChange,
|
|
4985
4996
|
environment,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as _bsm_form_core from '@bsm-form/core';
|
|
3
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';
|
|
4
|
+
import { FormSchema, FormEnvDefinitions, FormEnvValues, FormEnvConfig, PopoverAlign, PopoverSide, DropdownMenuItemVariant, DropdownMenuSide, DropdownMenuAlign, StepperConnector, StepperOrientation, DialogSize, DrawerSide, Node } from '@bsm-form/schema';
|
|
5
5
|
import * as react from 'react';
|
|
6
6
|
import { ReactNode, HTMLAttributes, ComponentType } from 'react';
|
|
7
7
|
|
|
@@ -91,6 +91,9 @@ declare function snapshotFromEngine(parts: {
|
|
|
91
91
|
|
|
92
92
|
type Props$5 = {
|
|
93
93
|
tree: FormSchema;
|
|
94
|
+
envDefinitions?: FormEnvDefinitions;
|
|
95
|
+
env?: FormEnvValues;
|
|
96
|
+
embeddedEnv?: Readonly<Record<string, FormEnvConfig>>;
|
|
94
97
|
renderWrapper?: RenderWrapper;
|
|
95
98
|
designMode?: boolean;
|
|
96
99
|
environment?: Partial<FormEngineEnvironment>;
|
|
@@ -110,7 +113,7 @@ type Props$5 = {
|
|
|
110
113
|
/** Skip the root Sonner toaster (nested embeds should pass true). */
|
|
111
114
|
suppressToaster?: boolean;
|
|
112
115
|
};
|
|
113
|
-
declare function FormRenderer({ tree, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
116
|
+
declare function FormRenderer({ tree, envDefinitions, env, embeddedEnv, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
114
117
|
|
|
115
118
|
type Props$4 = {
|
|
116
119
|
node: RuntimeNode;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as _bsm_form_core from '@bsm-form/core';
|
|
3
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';
|
|
4
|
+
import { FormSchema, FormEnvDefinitions, FormEnvValues, FormEnvConfig, PopoverAlign, PopoverSide, DropdownMenuItemVariant, DropdownMenuSide, DropdownMenuAlign, StepperConnector, StepperOrientation, DialogSize, DrawerSide, Node } from '@bsm-form/schema';
|
|
5
5
|
import * as react from 'react';
|
|
6
6
|
import { ReactNode, HTMLAttributes, ComponentType } from 'react';
|
|
7
7
|
|
|
@@ -91,6 +91,9 @@ declare function snapshotFromEngine(parts: {
|
|
|
91
91
|
|
|
92
92
|
type Props$5 = {
|
|
93
93
|
tree: FormSchema;
|
|
94
|
+
envDefinitions?: FormEnvDefinitions;
|
|
95
|
+
env?: FormEnvValues;
|
|
96
|
+
embeddedEnv?: Readonly<Record<string, FormEnvConfig>>;
|
|
94
97
|
renderWrapper?: RenderWrapper;
|
|
95
98
|
designMode?: boolean;
|
|
96
99
|
environment?: Partial<FormEngineEnvironment>;
|
|
@@ -110,7 +113,7 @@ type Props$5 = {
|
|
|
110
113
|
/** Skip the root Sonner toaster (nested embeds should pass true). */
|
|
111
114
|
suppressToaster?: boolean;
|
|
112
115
|
};
|
|
113
|
-
declare function FormRenderer({ tree, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
116
|
+
declare function FormRenderer({ tree, envDefinitions, env, embeddedEnv, renderWrapper, designMode, environment, invokeCatalog, slots, slotCatalog, forms, onEmbeddedValuesChange, onEmbeddedSnapshotChange, onValuesChange, suppressToaster, }: Props$5): react_jsx_runtime.JSX.Element;
|
|
114
117
|
|
|
115
118
|
type Props$4 = {
|
|
116
119
|
node: RuntimeNode;
|
package/dist/index.js
CHANGED
|
@@ -4557,6 +4557,7 @@ function ConfigProvider({
|
|
|
4557
4557
|
slots,
|
|
4558
4558
|
slotCatalog,
|
|
4559
4559
|
forms,
|
|
4560
|
+
embeddedEnv,
|
|
4560
4561
|
onEmbeddedValuesChange,
|
|
4561
4562
|
onEmbeddedSnapshotChange,
|
|
4562
4563
|
environment,
|
|
@@ -4608,6 +4609,7 @@ function ConfigProvider({
|
|
|
4608
4609
|
slots,
|
|
4609
4610
|
slotCatalog,
|
|
4610
4611
|
forms,
|
|
4612
|
+
embeddedEnv,
|
|
4611
4613
|
onEmbeddedValuesChange,
|
|
4612
4614
|
onEmbeddedSnapshotChange,
|
|
4613
4615
|
environment,
|
|
@@ -4652,6 +4654,7 @@ function FormRefRenderer({ node }) {
|
|
|
4652
4654
|
const {
|
|
4653
4655
|
designMode,
|
|
4654
4656
|
forms,
|
|
4657
|
+
embeddedEnv,
|
|
4655
4658
|
environment,
|
|
4656
4659
|
slots,
|
|
4657
4660
|
slotCatalog,
|
|
@@ -4668,6 +4671,7 @@ function FormRefRenderer({ node }) {
|
|
|
4668
4671
|
const schemaId = schema.kind === "layout" && schema.type === "form-ref" ? schema.props.schemaId : "";
|
|
4669
4672
|
const instanceKey = schema.kind === "layout" && schema.type === "form-ref" ? schema.props.instanceKey : "";
|
|
4670
4673
|
const className = schema.kind === "layout" && schema.type === "form-ref" && typeof schema.props.className === "string" ? schema.props.className : void 0;
|
|
4674
|
+
const [envConfig] = useState8(() => structuredClone(embeddedEnv?.[instanceKey]));
|
|
4671
4675
|
const nestedTree = schemaId ? forms?.[schemaId] : void 0;
|
|
4672
4676
|
const engine = useMemo(() => {
|
|
4673
4677
|
if (!nestedTree) {
|
|
@@ -4677,8 +4681,8 @@ function FormRefRenderer({ node }) {
|
|
|
4677
4681
|
...environment,
|
|
4678
4682
|
notify: environment?.notify ?? notifyWithSonner,
|
|
4679
4683
|
invoke: environment?.invoke ?? {}
|
|
4680
|
-
});
|
|
4681
|
-
}, [nestedTree, environment, designMode]);
|
|
4684
|
+
}, envConfig);
|
|
4685
|
+
}, [nestedTree, environment, designMode, envConfig]);
|
|
4682
4686
|
useEffect8(() => {
|
|
4683
4687
|
if (!engine) {
|
|
4684
4688
|
return;
|
|
@@ -4750,6 +4754,7 @@ function FormRefRenderer({ node }) {
|
|
|
4750
4754
|
designMode: designMode === true,
|
|
4751
4755
|
environment,
|
|
4752
4756
|
forms,
|
|
4757
|
+
embeddedEnv,
|
|
4753
4758
|
slots,
|
|
4754
4759
|
slotCatalog,
|
|
4755
4760
|
invokeCatalog,
|
|
@@ -4839,6 +4844,9 @@ import { Toaster } from "sonner";
|
|
|
4839
4844
|
import { jsx as jsx47, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4840
4845
|
function FormRenderer({
|
|
4841
4846
|
tree,
|
|
4847
|
+
envDefinitions,
|
|
4848
|
+
env,
|
|
4849
|
+
embeddedEnv,
|
|
4842
4850
|
renderWrapper,
|
|
4843
4851
|
designMode = false,
|
|
4844
4852
|
environment,
|
|
@@ -4851,6 +4859,8 @@ function FormRenderer({
|
|
|
4851
4859
|
onValuesChange,
|
|
4852
4860
|
suppressToaster = false
|
|
4853
4861
|
}) {
|
|
4862
|
+
const [envConfig] = useState9(() => structuredClone({ definitions: envDefinitions, overrides: env }));
|
|
4863
|
+
const [embedConfigs] = useState9(() => structuredClone(embeddedEnv));
|
|
4854
4864
|
const [, forceUpdate] = useState9(0);
|
|
4855
4865
|
const lastSerialized = useRef3("");
|
|
4856
4866
|
const engine = useMemo2(
|
|
@@ -4858,8 +4868,8 @@ function FormRenderer({
|
|
|
4858
4868
|
...environment,
|
|
4859
4869
|
notify: environment?.notify ?? notifyWithSonner,
|
|
4860
4870
|
invoke: environment?.invoke ?? {}
|
|
4861
|
-
}),
|
|
4862
|
-
[tree, designMode, environment]
|
|
4871
|
+
}, envConfig),
|
|
4872
|
+
[tree, designMode, environment, envConfig]
|
|
4863
4873
|
);
|
|
4864
4874
|
useEffect9(() => {
|
|
4865
4875
|
const unsubscribe = engine.subscribe(() => {
|
|
@@ -4895,6 +4905,7 @@ function FormRenderer({
|
|
|
4895
4905
|
slots,
|
|
4896
4906
|
slotCatalog,
|
|
4897
4907
|
forms,
|
|
4908
|
+
embeddedEnv: embedConfigs,
|
|
4898
4909
|
onEmbeddedValuesChange,
|
|
4899
4910
|
onEmbeddedSnapshotChange,
|
|
4900
4911
|
environment,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bsm-form/react-renderer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.41.0",
|
|
4
4
|
"description": "React FormRenderer bindings for the BSM form engine",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"bsm-design-system": "1.31.0",
|
|
23
23
|
"sonner": "^2.0.7",
|
|
24
|
-
"@bsm-form/
|
|
25
|
-
"@bsm-form/
|
|
24
|
+
"@bsm-form/schema": "0.41.0",
|
|
25
|
+
"@bsm-form/core": "0.41.0"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"react": ">=18",
|