-
- {/* Left / Top Panel */}
-
- {renderSections(leftSections, rightSections.length === 0)}
-
-
- {rightSections.length > 0 && (
- <>
-
-
- {/* Right / Bottom Panel */}
-
- {renderSections(rightSections, true)}
-
- >
- )}
-
+
+ pane.fields),
+ columns: formColumns,
+ ...(containerFieldClass ? { fieldContainerClass: containerFieldClass } : {}),
+ layout: 'vertical' as const,
+ defaultValues: formData,
+ submitLabel: schema.submitText || (schema.mode === 'create' ? 'Create' : 'Update'),
+ cancelLabel: schema.cancelText,
+ showSubmit: schema.showSubmit !== false && schema.mode !== 'view',
+ showCancel: schema.showCancel !== false,
+ onSubmit: handleSubmit,
+ onCancel: handleCancel,
+ // A single pane is not a split — the renderer then falls back to a
+ // plain field list rather than a one-panel resizable group.
+ fieldPanes: panes.map((pane) => ({
+ key: pane.key,
+ fields: pane.fields.map((f) => f.name),
+ defaultSize: pane.defaultSize,
+ ...(pane.containerClass ? { containerClass: pane.containerClass } : {}),
+ })),
+ fieldPanesOrientation: direction,
+ fieldPanesResizable: schema.splitResizable !== false,
+ }}
+ />
);
};
diff --git a/packages/plugin-form/src/sectionedFormValues.test.tsx b/packages/plugin-form/src/sectionedFormValues.test.tsx
index 847e06146e..a6c24b3ec4 100644
--- a/packages/plugin-form/src/sectionedFormValues.test.tsx
+++ b/packages/plugin-form/src/sectionedFormValues.test.tsx
@@ -23,6 +23,11 @@
* These tests pin the contract that fixes both: one `