@dappworks/kit 0.4.147 → 0.4.149

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.
Files changed (37) hide show
  1. package/dist/{PromiseState-b0cc408e.d.ts → PromiseState-23a1c20b.d.ts} +1 -0
  2. package/dist/aiem.mjs +2 -2
  3. package/dist/aiem.mjs.map +1 -1
  4. package/dist/{chunk-7FF4BCFW.mjs → chunk-AXL36W4Z.mjs} +3 -3
  5. package/dist/chunk-AXL36W4Z.mjs.map +1 -0
  6. package/dist/{chunk-RHDHN6R4.mjs → chunk-ISMCID4L.mjs} +16 -4
  7. package/dist/chunk-ISMCID4L.mjs.map +1 -0
  8. package/dist/{chunk-WT2ARRCR.mjs → chunk-J5PZWR2P.mjs} +12 -7
  9. package/dist/chunk-J5PZWR2P.mjs.map +1 -0
  10. package/dist/{chunk-5SFAINN6.mjs → chunk-K73JTEJQ.mjs} +2 -2
  11. package/dist/{chunk-MGU3KYGC.mjs → chunk-K7LFG5BA.mjs} +1 -1
  12. package/dist/chunk-K7LFG5BA.mjs.map +1 -0
  13. package/dist/{chunk-Q3AD5RHQ.mjs → chunk-UPGWJHSO.mjs} +2 -2
  14. package/dist/{chunk-Q3AD5RHQ.mjs.map → chunk-UPGWJHSO.mjs.map} +1 -1
  15. package/dist/dev.mjs +2 -2
  16. package/dist/experimental.mjs +2 -2
  17. package/dist/experimental.mjs.map +1 -1
  18. package/dist/form.d.mts +40 -27
  19. package/dist/form.mjs +36 -55
  20. package/dist/form.mjs.map +1 -1
  21. package/dist/index.d.mts +1 -1
  22. package/dist/index.mjs +3 -3
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/jsontable.mjs +3 -3
  25. package/dist/metrics.mjs +3 -3
  26. package/dist/plugins.d.mts +1 -1
  27. package/dist/plugins.mjs +2 -2
  28. package/dist/ui.d.mts +7 -10
  29. package/dist/ui.mjs +9 -4
  30. package/dist/ui.mjs.map +1 -1
  31. package/dist/utils.mjs +2 -2
  32. package/package.json +1 -1
  33. package/dist/chunk-7FF4BCFW.mjs.map +0 -1
  34. package/dist/chunk-MGU3KYGC.mjs.map +0 -1
  35. package/dist/chunk-RHDHN6R4.mjs.map +0 -1
  36. package/dist/chunk-WT2ARRCR.mjs.map +0 -1
  37. /package/dist/{chunk-5SFAINN6.mjs.map → chunk-K73JTEJQ.mjs.map} +0 -0
package/dist/form.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import React, { LegacyRef, Ref, Dispatch, SetStateAction, ReactNode } from 'react';
2
- import { ButtonProps, TabsProps, CheckboxProps, SlotsToClasses, InputSlots, InputProps, SelectSlots, SelectProps, SelectedItems, DatePickerProps, ModalSlots } from '@nextui-org/react';
1
+ import React$1, { Dispatch, SetStateAction, ReactNode } from 'react';
2
+ import { TabsProps, ButtonProps, CheckboxProps, SlotsToClasses, InputSlots, InputProps, SelectSlots, SelectProps, SelectedItems, DatePickerProps, ModalSlots } from '@nextui-org/react';
3
3
  import { UiSchema, RJSFSchema, WidgetProps, Widget } from '@rjsf/utils';
4
4
  import * as _rjsf_validator_ajv8_lib_validator from '@rjsf/validator-ajv8/lib/validator';
5
5
  import Form, { IChangeEvent } from '@rjsf/core';
@@ -10,7 +10,6 @@ import EventEmitter from 'events';
10
10
  import 'typed-emitter';
11
11
 
12
12
  declare class JSONSchemaFormState<T, U = UiSchema> {
13
- formRef: LegacyRef<Form<any, RJSFSchema, any>> & Ref<Form<any, RJSFSchema, any>>;
14
13
  value: JSONSchemaValue<T>;
15
14
  schema: RJSFSchema;
16
15
  uiSchema: U;
@@ -18,6 +17,7 @@ declare class JSONSchemaFormState<T, U = UiSchema> {
18
17
  readonly: boolean;
19
18
  liveValidate: boolean;
20
19
  validator: _rjsf_validator_ajv8_lib_validator.default<any, RJSFSchema, any>;
20
+ formRef: React.RefObject<Form>;
21
21
  get formData(): T;
22
22
  set formData(value: T);
23
23
  get dynamicData(): {
@@ -49,19 +49,30 @@ declare class JSONSchemaValue<T> {
49
49
 
50
50
  type LayoutType = 'TabLayout' | 'GridLayout' | 'ListLayout' | 'SimpleLayout';
51
51
  type FieldLayoutType<T, F extends keyof T> = Array<keyof NonNullable<T[F]>> | Array<Array<keyof NonNullable<T[F]>> | keyof NonNullable<T[F]>>;
52
- type CustomButtonProps<T> = ({
53
- title: string;
54
- onClick: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
55
- } & ButtonProps)[];
52
+ type SubmitButtonProps<T> = ButtonProps & {
53
+ onAfterSubmit?: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
54
+ };
55
+ type CombFormsCustomRender<T> = (formStates: {
56
+ [F in keyof T]?: JSONSchemaFormState<FormDataOfKey<T>, UiSchema>;
57
+ }) => React$1.ReactNode;
58
+ type CombFormsCustomRenderMap<T> = {
59
+ Top?: CombFormsCustomRender<T>;
60
+ SubmitButtonBefore?: CombFormsCustomRender<T>;
61
+ SubmitButtonAfter?: CombFormsCustomRender<T>;
62
+ };
63
+ type SubformCustomRender<T> = (formKey: FormKey<T>, formState: JSONSchemaFormState<FormDataOfKey<T>, UiSchema>) => React$1.ReactNode;
64
+ type SubformCustomRenderMap<T> = {
65
+ Top?: SubformCustomRender<T>;
66
+ SubmitButtonBefore?: SubformCustomRender<T>;
67
+ SubmitButtonAfter?: SubformCustomRender<T>;
68
+ };
56
69
  type FormLayoutType<T, L> = L extends 'TabLayout' | 'ListLayout' | 'SimpleLayout' ? {
57
70
  [F in keyof T]?: {
58
71
  title?: string;
59
72
  titleBoxCss?: string;
60
73
  fieldLayout?: FieldLayoutType<T, F>;
61
- submitButtonProps?: ButtonProps & {
62
- onAfterSubmit?: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
63
- };
64
- customButtonProps?: CustomButtonProps<T>;
74
+ submitButtonProps?: SubmitButtonProps<T>;
75
+ customRender?: SubformCustomRenderMap<T>;
65
76
  };
66
77
  } : L extends 'GridLayout' ? {
67
78
  [F in keyof T]?: {
@@ -70,22 +81,24 @@ type FormLayoutType<T, L> = L extends 'TabLayout' | 'ListLayout' | 'SimpleLayout
70
81
  fieldLayout?: FieldLayoutType<T, F>;
71
82
  colSpan?: number;
72
83
  cardCss?: string;
73
- submitButtonProps?: ButtonProps & {
74
- onAfterSubmit?: (formKey: FormKey<T>, data: FormDataOfKey<T>, setLoading: Dispatch<SetStateAction<boolean>>) => void;
75
- };
76
- customButtonProps?: CustomButtonProps<T>;
84
+ submitButtonProps?: SubmitButtonProps<T>;
85
+ customRender?: SubformCustomRenderMap<T>;
77
86
  };
78
87
  } : never;
79
88
  type LayoutConfigType<T, L> = L extends 'TabLayout' ? {
80
89
  $type: 'TabLayout';
81
90
  $tabsProps?: TabsProps;
91
+ $combFormsCustomRender?: CombFormsCustomRenderMap<T>;
82
92
  } & FormLayoutType<T, L> : L extends 'GridLayout' ? {
83
93
  $type: 'GridLayout';
84
94
  $gridColumn?: number;
95
+ $combFormsCustomRender?: CombFormsCustomRenderMap<T>;
85
96
  } & FormLayoutType<T, L> : L extends 'ListLayout' ? {
86
97
  $type: 'ListLayout';
98
+ $combFormsCustomRender?: CombFormsCustomRenderMap<T>;
87
99
  } & FormLayoutType<T, L> : L extends 'SimpleLayout' ? {
88
100
  $type: 'SimpleLayout';
101
+ $combFormsCustomRender?: CombFormsCustomRenderMap<T>;
89
102
  } & FormLayoutType<T, L> : never;
90
103
  type FormDataType = {
91
104
  [key: string]: {
@@ -126,7 +139,7 @@ type JSONFormProps<T = FormDataType> = {
126
139
  onBatchSubmit?: (formData: T, setLoading: Dispatch<SetStateAction<boolean>>) => void;
127
140
  };
128
141
  };
129
- declare const JSONForm: <T extends FormDataType>(props: JSONFormProps<T>) => React.JSX.Element;
142
+ declare const JSONForm: <T extends FormDataType>(props: JSONFormProps<T>) => React$1.JSX.Element;
130
143
 
131
144
  type Options$6 = {
132
145
  className?: string;
@@ -143,7 +156,7 @@ interface CheckboxWidgetUIOptions {
143
156
  "ui:widget": (props: CheckboxWidgetProps) => JSX.Element;
144
157
  "ui:options": Options$6;
145
158
  }
146
- declare function CheckboxWidget({ onChange, options, label, value, disabled, uiSchema }: CheckboxWidgetProps): React.JSX.Element;
159
+ declare function CheckboxWidget({ onChange, options, label, value, disabled, uiSchema }: CheckboxWidgetProps): React$1.JSX.Element;
147
160
 
148
161
  type Options$5 = {
149
162
  editorHeight?: string;
@@ -170,7 +183,7 @@ type EditorWidgetUIOptions = {
170
183
  "ui:widget": (props: EditorWidgetProps) => JSX.Element;
171
184
  "ui:options": Options$5;
172
185
  };
173
- declare const EditorWidget: ({ label, options, value, required, uiSchema, disabled, onChange }: EditorWidgetProps) => React.JSX.Element;
186
+ declare const EditorWidget: ({ label, options, value, required, uiSchema, disabled, onChange }: EditorWidgetProps) => React$1.JSX.Element;
174
187
 
175
188
  type Options$4 = {
176
189
  className?: string;
@@ -193,7 +206,7 @@ interface InputWidgetUIOptions {
193
206
  "ui:widget": (props: InputWidgetProps) => JSX.Element;
194
207
  "ui:options": Options$4;
195
208
  }
196
- declare function InputWidget(props: InputWidgetProps): React.JSX.Element;
209
+ declare function InputWidget(props: InputWidgetProps): React$1.JSX.Element;
197
210
 
198
211
  type Options$3 = {
199
212
  className?: string;
@@ -214,7 +227,7 @@ interface SelectWidgetUIOptions {
214
227
  "ui:widget": (props: SelectWidgetProps) => JSX.Element;
215
228
  "ui:options": Options$3;
216
229
  }
217
- declare function SelectWidget(props: SelectWidgetProps): React.JSX.Element;
230
+ declare function SelectWidget(props: SelectWidgetProps): React$1.JSX.Element;
218
231
 
219
232
  type Options$2 = {
220
233
  className?: string;
@@ -228,7 +241,7 @@ type Options$2 = {
228
241
  renderValue?: (items: SelectedItems<{
229
242
  label: string;
230
243
  value: string;
231
- }>) => React.ReactNode;
244
+ }>) => React$1.ReactNode;
232
245
  };
233
246
  interface MultipleSelectWidgetProps extends WidgetProps {
234
247
  options: Options$2;
@@ -237,7 +250,7 @@ interface MultipleSelectWidgetUIOptions {
237
250
  'ui:widget': (props: MultipleSelectWidgetProps) => JSX.Element;
238
251
  'ui:options': Options$2;
239
252
  }
240
- declare function MultipleSelectWidget(props: MultipleSelectWidgetProps): React.JSX.Element;
253
+ declare function MultipleSelectWidget(props: MultipleSelectWidgetProps): React$1.JSX.Element;
241
254
 
242
255
  type Options$1 = {
243
256
  className?: string;
@@ -261,7 +274,7 @@ interface TextareaWidgetUIOptions {
261
274
  'ui:widget': (props: TextareaWidgetProps) => JSX.Element;
262
275
  'ui:options': Options$1;
263
276
  }
264
- declare function TextareaWidget(props: TextareaWidgetProps): React.JSX.Element;
277
+ declare function TextareaWidget(props: TextareaWidgetProps): React$1.JSX.Element;
265
278
 
266
279
  type Options = {
267
280
  className?: string;
@@ -281,19 +294,19 @@ interface DatePickerWidgetUIOptions {
281
294
  'ui:widget': (props: DatePickerWidgetProps) => string | Widget<any, RJSFSchema, any> | undefined;
282
295
  'ui:options': Options;
283
296
  }
284
- declare function DatePickerWidget({ label, options, value, required, disabled, uiSchema, onChange }: DatePickerWidgetProps): React.JSX.Element;
297
+ declare function DatePickerWidget({ label, options, value, required, disabled, uiSchema, onChange }: DatePickerWidgetProps): React$1.JSX.Element;
285
298
 
286
299
  interface Props {
287
300
  formState: JSONSchemaFormState<any>;
288
301
  children?: any;
289
302
  }
290
- declare const JSONSchemaForm: (({ children, formState }: Props) => React.JSX.Element) & {
303
+ declare const JSONSchemaForm: (({ children, formState }: Props) => React$1.JSX.Element) & {
291
304
  displayName: string;
292
305
  };
293
306
 
294
307
  declare class ComplexFormModalStore<T extends FormDataType> implements Store {
295
308
  sid: string;
296
- provider: () => React.JSX.Element;
309
+ provider: () => React$1.JSX.Element;
297
310
  isOpen: boolean;
298
311
  title: string;
299
312
  formData?: T;
@@ -325,7 +338,7 @@ declare class FormModalStore<T = {
325
338
  [key: string]: any;
326
339
  }> implements Store {
327
340
  sid: string;
328
- provider: () => React.JSX.Element;
341
+ provider: () => React$1.JSX.Element;
329
342
  isOpen: boolean;
330
343
  title: string;
331
344
  form: JSONSchemaFormState<T>;
package/dist/form.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { getStyle } from './chunk-5SFAINN6.mjs';
1
+ import { getStyle } from './chunk-K73JTEJQ.mjs';
2
2
  import { useStore, RootStore } from './chunk-IDKGZ5T4.mjs';
3
- import { helper } from './chunk-Q3AD5RHQ.mjs';
4
- import { _ } from './chunk-MGU3KYGC.mjs';
3
+ import { helper } from './chunk-UPGWJHSO.mjs';
4
+ import { _ } from './chunk-K7LFG5BA.mjs';
5
5
  import { cn } from './chunk-WYGQ3Y4R.mjs';
6
6
  import { __objRest, __spreadValues, __spreadProps } from './chunk-6F7H4PAA.mjs';
7
7
  import React7, { useEffect, useMemo, useState, useRef, useCallback, createRef } from 'react';
@@ -396,8 +396,7 @@ var JSONSchemaFormState = class {
396
396
  }
397
397
  };
398
398
  this.customValidate = (formData, errors) => errors;
399
- const formRef = createRef();
400
- Object.assign(this, args, { formRef });
399
+ Object.assign(this, args, { formRef: createRef() });
401
400
  if (this.reactive) {
402
401
  makeObservable(this, {
403
402
  formData: computed
@@ -655,29 +654,6 @@ var SubmitButton = ({ formKey, formState, buttonProps }) => {
655
654
  children || "Submit"
656
655
  ));
657
656
  };
658
- var CustomButton = ({ formKey, formState, buttonProps }) => {
659
- return /* @__PURE__ */ React7.createElement("div", { className: "w-full flex gap-2" }, buttonProps.map((i, index) => {
660
- const [loading, setLoading] = useState(false);
661
- const _a = i, { className, onClick, title } = _a, rest = __objRest(_a, ["className", "onClick", "title"]);
662
- return /* @__PURE__ */ React7.createElement(
663
- Button,
664
- __spreadValues({
665
- className: cn("mt-4", className),
666
- type: "submit",
667
- color: "primary",
668
- size: "sm",
669
- isLoading: loading,
670
- onClick: (e) => {
671
- let formData = {};
672
- const current = formState.formRef.current;
673
- formData = current.state.formData;
674
- onClick == null ? void 0 : onClick(formKey, formData, setLoading);
675
- }
676
- }, rest),
677
- title
678
- );
679
- }));
680
- };
681
657
  function FieldTemplate(props) {
682
658
  const { id, classNames, label, help, required, description, errors, children, schema, uiSchema } = props;
683
659
  if (uiSchema && uiSchema["ui:widget"] === "hidden") {
@@ -919,8 +895,9 @@ var grid_default = Grid;
919
895
 
920
896
  // components/JSONForm/Layouts/gridLayout.tsx
921
897
  var GridLayout = (props) => {
898
+ var _b, _c, _d;
922
899
  const { layoutConfig, onBatchSubmit, batchSubmitButtonProps, onReady, theme } = props;
923
- const _a = layoutConfig, { $type, $gridColumn } = _a, formLayout = __objRest(_a, ["$type", "$gridColumn"]);
900
+ const _a = layoutConfig, { $type, $gridColumn, $combFormsCustomRender } = _a, formLayout = __objRest(_a, ["$type", "$gridColumn", "$combFormsCustomRender"]);
924
901
  const formStates = getFormState(props, formLayout, theme);
925
902
  const cardStyle = getStyle(theme || "default", "Card");
926
903
  useEffect(() => {
@@ -928,13 +905,14 @@ var GridLayout = (props) => {
928
905
  onReady(formStates);
929
906
  }
930
907
  }, [formStates]);
931
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement(grid_default, { numItems: $gridColumn != null ? $gridColumn : 1, className: "gap-2" }, Object.keys(formStates).map((key) => {
932
- var _a2;
908
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, (_b = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.Top) == null ? void 0 : _b.call($combFormsCustomRender, formStates), /* @__PURE__ */ React7.createElement(grid_default, { numItems: $gridColumn != null ? $gridColumn : 1, className: "gap-2" }, Object.keys(formStates).map((key) => {
909
+ var _a2, _b2, _c2, _d2, _e, _f, _g;
933
910
  const layout = formLayout[key];
934
- return /* @__PURE__ */ React7.createElement(col_default, { numColSpan: (_a2 = layout == null ? void 0 : layout.colSpan) != null ? _a2 : 1, key, id: `form-${key}` }, /* @__PURE__ */ React7.createElement(Card, { className: cn("h-full m-0 p-4 shadow-sm border dark:border-[#3e3e3e]", cardStyle.className, layout == null ? void 0 : layout.cardCss) }, /* @__PURE__ */ React7.createElement("div", { className: cn("mb-2 font-bold text-center", layout == null ? void 0 : layout.titleBoxCss) }, (layout == null ? void 0 : layout.title) || key), /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps }), (layout == null ? void 0 : layout.customButtonProps) && /* @__PURE__ */ React7.createElement(CustomButton, { formKey: key, formState: formStates[key], buttonProps: layout.customButtonProps }))));
935
- })), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })));
911
+ return /* @__PURE__ */ React7.createElement(col_default, { numColSpan: (_a2 = layout == null ? void 0 : layout.colSpan) != null ? _a2 : 1, key, id: `form-${key}` }, /* @__PURE__ */ React7.createElement(Card, { className: cn("h-full m-0 p-4 shadow-sm border dark:border-[#3e3e3e]", cardStyle.className, layout == null ? void 0 : layout.cardCss) }, /* @__PURE__ */ React7.createElement("div", { className: cn("mb-2 font-bold text-center", layout == null ? void 0 : layout.titleBoxCss) }, (layout == null ? void 0 : layout.title) || key), (_c2 = (_b2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _b2.Top) == null ? void 0 : _c2.call(_b2, key, formStates[key]), /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (_e = (_d2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _d2.SubmitButtonBefore) == null ? void 0 : _e.call(_d2, key, formStates[key]), (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps }), (_g = (_f = layout == null ? void 0 : layout.customRender) == null ? void 0 : _f.SubmitButtonAfter) == null ? void 0 : _g.call(_f, key, formStates[key]))));
912
+ })), (_c = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonBefore) == null ? void 0 : _c.call($combFormsCustomRender, formStates), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })), (_d = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonAfter) == null ? void 0 : _d.call($combFormsCustomRender, formStates));
936
913
  };
937
- var CollapsibleBox = ({ formKey, title, titleBoxCss, formState, submitButtonProps, customButtonProps }) => {
914
+ var CollapsibleBox = ({ formKey, layout, formState }) => {
915
+ var _a, _b, _c, _d, _e, _f;
938
916
  const [opened, setOpened] = useState(true);
939
917
  return /* @__PURE__ */ React7.createElement("div", { id: `form-${formKey}` }, /* @__PURE__ */ React7.createElement(
940
918
  "div",
@@ -942,60 +920,61 @@ var CollapsibleBox = ({ formKey, title, titleBoxCss, formState, submitButtonProp
942
920
  className: "mt-5 mb-[10px] flex justify-between items-center cursor-pointer border-t-[1px solid #E5E5EA] py-[5px]",
943
921
  onClick: () => setOpened((o) => !o)
944
922
  },
945
- /* @__PURE__ */ React7.createElement("div", { className: cn("text-gray-900 dark:text-gray-100 font-bold text-base", titleBoxCss) }, title),
923
+ /* @__PURE__ */ React7.createElement("div", { className: cn("text-gray-900 dark:text-gray-100 font-bold text-base", layout == null ? void 0 : layout.titleBoxCss) }, (layout == null ? void 0 : layout.title) || formKey),
946
924
  opened ? /* @__PURE__ */ React7.createElement(ChevronUp, { size: 18, className: "text-[#717179] dark:text-[#A1A1A9]" }) : /* @__PURE__ */ React7.createElement(ChevronDown, { size: 18, className: "text-[#717179] dark:text-[#A1A1A9]" })
947
- ), /* @__PURE__ */ React7.createElement("div", { className: cn("mt-2", opened ? "block" : "hidden") }, /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState }, submitButtonProps && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey, formState, buttonProps: submitButtonProps }), customButtonProps && /* @__PURE__ */ React7.createElement(CustomButton, { formKey, formState, buttonProps: customButtonProps }))));
925
+ ), /* @__PURE__ */ React7.createElement("div", { className: cn("mt-2", opened ? "block" : "hidden") }, (_b = (_a = layout == null ? void 0 : layout.customRender) == null ? void 0 : _a.Top) == null ? void 0 : _b.call(_a, formKey, formState), /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState }, (_d = (_c = layout == null ? void 0 : layout.customRender) == null ? void 0 : _c.SubmitButtonBefore) == null ? void 0 : _d.call(_c, formKey, formState), (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey, formState, buttonProps: layout.submitButtonProps }), (_f = (_e = layout == null ? void 0 : layout.customRender) == null ? void 0 : _e.SubmitButtonAfter) == null ? void 0 : _f.call(_e, formKey, formState))));
948
926
  };
949
927
  var ListLayout = (props) => {
928
+ var _b, _c, _d;
950
929
  const { layoutConfig = {}, onBatchSubmit, batchSubmitButtonProps, onReady, theme } = props;
951
- const _a = layoutConfig, formLayout = __objRest(_a, ["$type"]);
930
+ const _a = layoutConfig, { $type, $combFormsCustomRender } = _a, formLayout = __objRest(_a, ["$type", "$combFormsCustomRender"]);
952
931
  const formStates = getFormState(props, formLayout, theme);
953
932
  useEffect(() => {
954
933
  if (formStates && onReady) {
955
934
  onReady(formStates);
956
935
  }
957
936
  }, [formStates]);
958
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null, Object.keys(formStates).map((key) => {
959
- const layout = formLayout[key];
960
- const formState = formStates[key];
937
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, (_b = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.Top) == null ? void 0 : _b.call($combFormsCustomRender, formStates), Object.keys(formStates).map((key) => {
961
938
  return /* @__PURE__ */ React7.createElement(
962
939
  CollapsibleBox,
963
940
  {
964
941
  key,
965
942
  formKey: key,
966
- title: (layout == null ? void 0 : layout.title) || key,
967
- titleBoxCss: layout == null ? void 0 : layout.titleBoxCss,
968
- formState,
969
- submitButtonProps: layout == null ? void 0 : layout.submitButtonProps,
970
- customButtonProps: layout == null ? void 0 : layout.customButtonProps
943
+ formState: formStates[key],
944
+ layout: formLayout[key]
971
945
  }
972
946
  );
973
- }), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })));
947
+ }), (_c = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonBefore) == null ? void 0 : _c.call($combFormsCustomRender, formStates), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })), (_d = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonAfter) == null ? void 0 : _d.call($combFormsCustomRender, formStates));
974
948
  };
975
949
  var SimpleLayout = (props) => {
950
+ var _b, _c, _d;
976
951
  const { layoutConfig = {}, onBatchSubmit, batchSubmitButtonProps, onReady, theme } = props;
977
- const _a = layoutConfig, formLayout = __objRest(_a, ["$type"]);
952
+ const _a = layoutConfig, { $type, $combFormsCustomRender } = _a, formLayout = __objRest(_a, ["$type", "$combFormsCustomRender"]);
978
953
  const formStates = getFormState(props, formLayout, theme);
979
954
  useEffect(() => {
980
955
  if (formStates && onReady) {
981
956
  onReady(formStates);
982
957
  }
983
958
  }, [formStates]);
984
- return /* @__PURE__ */ React7.createElement(React7.Fragment, null, /* @__PURE__ */ React7.createElement("div", { className: "space-y-2" }, Object.keys(formStates).map((key) => {
959
+ return /* @__PURE__ */ React7.createElement(React7.Fragment, null, (_b = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.Top) == null ? void 0 : _b.call($combFormsCustomRender, formStates), /* @__PURE__ */ React7.createElement("div", { className: "space-y-2" }, Object.keys(formStates).map((key) => {
960
+ var _a2, _b2, _c2, _d2, _e, _f;
985
961
  const layout = formLayout[key];
986
- return /* @__PURE__ */ React7.createElement("div", { key, id: `form-${key}` }, /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps })));
987
- })), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })));
962
+ return /* @__PURE__ */ React7.createElement("div", { key, id: `form-${key}` }, (_b2 = (_a2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _a2.Top) == null ? void 0 : _b2.call(_a2, key, formStates[key]), /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (_d2 = (_c2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _c2.SubmitButtonBefore) == null ? void 0 : _d2.call(_c2, key, formStates[key]), (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps }), (_f = (_e = layout == null ? void 0 : layout.customRender) == null ? void 0 : _e.SubmitButtonAfter) == null ? void 0 : _f.call(_e, key, formStates[key])));
963
+ })), (_c = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonBefore) == null ? void 0 : _c.call($combFormsCustomRender, formStates), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })), (_d = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonAfter) == null ? void 0 : _d.call($combFormsCustomRender, formStates));
988
964
  };
989
965
  var TabLayout = (props) => {
966
+ var _b, _c, _d;
990
967
  const { layoutConfig = {}, onBatchSubmit, batchSubmitButtonProps, onReady, theme } = props;
991
968
  const _a = layoutConfig, {
992
969
  $type,
993
970
  $tabsProps = {
994
971
  color: "default"
995
- }
972
+ },
973
+ $combFormsCustomRender
996
974
  } = _a, formLayout = __objRest(_a, [
997
975
  "$type",
998
- "$tabsProps"
976
+ "$tabsProps",
977
+ "$combFormsCustomRender"
999
978
  ]);
1000
979
  const formStates = useMemo(() => getFormState(props, formLayout, theme), [props.formData, props.formConfig, props.layoutConfig]);
1001
980
  const formKeys = Object.keys(formStates);
@@ -1017,7 +996,8 @@ var TabLayout = (props) => {
1017
996
  const layout = formLayout[key];
1018
997
  return /* @__PURE__ */ React7.createElement(Tab, { id: `form-${key}-tab-menu`, key, title: /* @__PURE__ */ React7.createElement("div", { className: layout == null ? void 0 : layout.titleBoxCss }, (layout == null ? void 0 : layout.title) || key) });
1019
998
  })
1020
- ), formKeys.map((key) => {
999
+ ), (_b = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.Top) == null ? void 0 : _b.call($combFormsCustomRender, formStates), formKeys.map((key) => {
1000
+ var _a2, _b2, _c2, _d2, _e, _f;
1021
1001
  const layout = formLayout[key];
1022
1002
  return /* @__PURE__ */ React7.createElement(
1023
1003
  "div",
@@ -1026,9 +1006,10 @@ var TabLayout = (props) => {
1026
1006
  id: `form-${key}-tab-content`,
1027
1007
  className: cn("mt-4", selectedTab === key ? "" : "hidden")
1028
1008
  },
1029
- /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps }), (layout == null ? void 0 : layout.customButtonProps) && /* @__PURE__ */ React7.createElement(CustomButton, { formKey: key, formState: formStates[key], buttonProps: layout.customButtonProps }))
1009
+ (_b2 = (_a2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _a2.Top) == null ? void 0 : _b2.call(_a2, key, formStates[key]),
1010
+ /* @__PURE__ */ React7.createElement(JSONSchemaForm, { formState: formStates[key] }, (_d2 = (_c2 = layout == null ? void 0 : layout.customRender) == null ? void 0 : _c2.SubmitButtonBefore) == null ? void 0 : _d2.call(_c2, key, formStates[key]), (layout == null ? void 0 : layout.submitButtonProps) && /* @__PURE__ */ React7.createElement(SubmitButton, { formKey: key, formState: formStates[key], buttonProps: layout.submitButtonProps }), (_f = (_e = layout == null ? void 0 : layout.customRender) == null ? void 0 : _e.SubmitButtonAfter) == null ? void 0 : _f.call(_e, key, formStates[key]))
1030
1011
  );
1031
- }), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })));
1012
+ }), (_c = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonBefore) == null ? void 0 : _c.call($combFormsCustomRender, formStates), (onBatchSubmit || (batchSubmitButtonProps == null ? void 0 : batchSubmitButtonProps.onBatchSubmit)) && /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(BatchSubmitButton, { formStates, onSubmit: onBatchSubmit, buttonProps: batchSubmitButtonProps })), (_d = $combFormsCustomRender == null ? void 0 : $combFormsCustomRender.SubmitButtonAfter) == null ? void 0 : _d.call($combFormsCustomRender, formStates));
1032
1013
  };
1033
1014
 
1034
1015
  // components/JSONForm/index.tsx