@companix/formkit 0.0.4 → 0.0.6

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/README.md CHANGED
@@ -1,26 +1,39 @@
1
- // generics
1
+ ## Create form primitives
2
2
 
3
- // implements form
4
-
5
- const SelectForm = (name: string, x: any) => {}
6
- const InputForm = (name: string, x: any) => {}
3
+ ```tsx
4
+ const SelectForm = (name: string) => {
5
+ // select form code
6
+ }
7
+ const InputForm = (name: string) => {
8
+ // input form code
9
+ }
10
+ ```
7
11
 
8
- // implements layout
12
+ ## Create layouts
9
13
 
10
- const Label = (v: any) => {
11
- return (x: any) => {}
12
- }
14
+ ```tsx
15
+ export const Label = createLayout((label: React.ReactNode) => {
16
+ return ({ children }) => {
17
+ return <FormGroup label={label}>{children}</FormGroup>
18
+ }
19
+ })
13
20
 
14
- const Double = () => {
15
- return (...x: void[]) => {
16
- // x.
21
+ export const Double = createLayout(() => {
22
+ return ({ children }) => {
23
+ return <div className="form-double-primitive">{children}</div>
17
24
  }
18
- }
25
+ })
19
26
 
20
- const Splitter = () => {}
27
+ export const Splitter = createLayout(() => {
28
+ return () => {
29
+ return <div className="form-splitter" />
30
+ }
31
+ })
32
+ ```
21
33
 
22
- // scheme
34
+ ## Create a scheme
23
35
 
36
+ ```ts
24
37
  const scheme = [
25
38
  Label('Имя')(
26
39
  SelectForm('name', {
@@ -42,3 +55,4 @@ const scheme = [
42
55
  )
43
56
  )
44
57
  ]
58
+ ```
@@ -2,6 +2,6 @@ import { SchemeItems } from './core/types';
2
2
  export interface SchemeBuilderProps {
3
3
  scheme: SchemeItems.All[];
4
4
  path: string[];
5
+ className?: string;
5
6
  }
6
- declare const SchemeBuilder: ({ scheme, path }: SchemeBuilderProps) => import("react/jsx-runtime").JSX.Element;
7
- export { SchemeBuilder };
7
+ export declare const SchemeBuilder: ({ scheme, path, className }: SchemeBuilderProps) => import("react/jsx-runtime").JSX.Element;
package/dist/bundle.es.js CHANGED
@@ -1,26 +1,26 @@
1
- import { jsx as g, Fragment as q, jsxs as T } from "react/jsx-runtime";
2
- import { createContext as N, useState as R, useContext as L, useEffect as D, useMemo as A, useCallback as S, useRef as P } from "react";
3
- import w from "fast-deep-equal";
4
- const j = N({}), M = (o) => {
5
- const [, r] = R([]), e = L(j), s = e.getForm(o);
1
+ import { jsx as h, Fragment as B, jsxs as T } from "react/jsx-runtime";
2
+ import { createContext as N, useState as q, useContext as L, useEffect as D, useMemo as A, useCallback as S, useRef as P } from "react";
3
+ import R from "fast-deep-equal";
4
+ const j = N({}), M = (s) => {
5
+ const [, r] = q([]), o = L(j), t = o.getForm(s);
6
6
  return D(() => {
7
- const { unsubscribe: t } = e.subscribeToForm(o, () => {
7
+ const { unsubscribe: e } = o.subscribeToForm(s, () => {
8
8
  r([]);
9
9
  });
10
10
  return () => {
11
- t();
11
+ e();
12
12
  };
13
- }, []), s?.value;
14
- }, _ = ({ canActivate: o, name: r, children: e }) => {
15
- const s = M(r);
16
- return o(s) ? /* @__PURE__ */ g(q, { children: e }) : null;
17
- }, z = ({ item: { Form: o }, name: r }) => {
18
- const [, e] = R([]), s = L(j), { unregistry: t } = A(() => s.registry(r, () => {
19
- e([]);
13
+ }, []), t?.value;
14
+ }, _ = ({ canActivate: s, name: r, children: o }) => {
15
+ const t = M(r);
16
+ return s(t) ? /* @__PURE__ */ h(B, { children: o }) : null;
17
+ }, z = ({ item: { Form: s }, name: r }) => {
18
+ const [, o] = q([]), t = L(j), { unregistry: e } = A(() => t.registry(r, () => {
19
+ o([]);
20
20
  }), []), l = S(
21
21
  (d) => {
22
22
  if (d && d.focus) {
23
- const v = s.getForm(r);
23
+ const v = t.getForm(r);
24
24
  v.focus = () => {
25
25
  d.focus();
26
26
  };
@@ -29,16 +29,16 @@ const j = N({}), M = (o) => {
29
29
  [r]
30
30
  );
31
31
  D(() => () => {
32
- t();
32
+ e();
33
33
  }, []);
34
- const { value: y, error: b } = s.getForm(r);
35
- return /* @__PURE__ */ g(
36
- o,
34
+ const { value: y, error: b } = t.getForm(r);
35
+ return /* @__PURE__ */ h(
36
+ s,
37
37
  {
38
38
  field: {
39
39
  value: y,
40
40
  onChange: (d) => {
41
- s.onChange(r, d);
41
+ t.onChange(r, d);
42
42
  },
43
43
  onBlur: () => {
44
44
  },
@@ -46,24 +46,24 @@ const j = N({}), M = (o) => {
46
46
  },
47
47
  isDirty: !1,
48
48
  error: b,
49
- disabled: s.disabled
49
+ disabled: t.disabled
50
50
  }
51
51
  );
52
- }, G = ({ item: o, path: r }) => {
53
- const { getController: e, items: s } = o, t = L(j), l = A(() => {
52
+ }, G = ({ item: s, path: r }) => {
53
+ const { getController: o, items: t } = s, e = L(j), l = A(() => {
54
54
  const i = {};
55
- return s.forEach(({ name: f, getForm: F }) => {
55
+ return t.forEach(({ name: f, getForm: F }) => {
56
56
  i[f] = F(f, () => x(f));
57
57
  }), i;
58
58
  }, []), y = S(() => {
59
59
  const i = [];
60
- return s.forEach(({ name: f }) => {
61
- t.getForm([...r, f].join(".")).value !== void 0 && i.push(f);
60
+ return t.forEach(({ name: f }) => {
61
+ e.getForm([...r, f].join(".")).value !== void 0 && i.push(f);
62
62
  }), i;
63
- }, []), b = A(() => y(), []), [d, v] = R(b);
63
+ }, []), b = A(() => y(), []), [d, v] = q(b);
64
64
  D(() => {
65
- const { unregistry: i } = t.registryExtraForm(
66
- s.map(({ name: f }) => [...r, f].join(".")),
65
+ const { unregistry: i } = e.registryExtraForm(
66
+ t.map(({ name: f }) => [...r, f].join(".")),
67
67
  () => {
68
68
  v(y());
69
69
  }
@@ -80,92 +80,92 @@ const j = N({}), M = (o) => {
80
80
  ), x = S((i) => {
81
81
  v((f) => f.filter((F) => F !== i));
82
82
  }, []);
83
- return /* @__PURE__ */ T(q, { children: [
83
+ return /* @__PURE__ */ T(B, { children: [
84
84
  d.map((i) => {
85
85
  const f = l[i];
86
- return /* @__PURE__ */ g(V, { path: r, scheme: [f] }, `param-form--${i}`);
86
+ return /* @__PURE__ */ h(V, { path: r, scheme: [f] }, `param-form--${i}`);
87
87
  }),
88
- e(C, d)
88
+ o(C, d)
89
89
  ] });
90
- }, V = ({ scheme: o, path: r }) => /* @__PURE__ */ g(q, { children: o.map((e, s) => e.type === "layout" ? /* @__PURE__ */ g(e.Layout, { children: /* @__PURE__ */ g(V, { path: r, scheme: e.childs }) }, `layout-form--${s}-${r.length}`) : e.type === "context" ? /* @__PURE__ */ g(
90
+ }, V = ({ scheme: s, path: r, className: o }) => /* @__PURE__ */ h("div", { className: o, children: s.map((t, e) => t.type === "layout" ? /* @__PURE__ */ h(t.Layout, { children: /* @__PURE__ */ h(V, { path: r, scheme: t.childs }) }, `layout-form--${e}-${r.length}`) : t.type === "context" ? /* @__PURE__ */ h(
91
91
  V,
92
92
  {
93
- path: [...r, e.context],
94
- scheme: e.childs
93
+ path: [...r, t.context],
94
+ scheme: t.childs
95
95
  },
96
- `context-form--${s}-${e.context}-${r.length}`
97
- ) : e.type === "condition" ? /* @__PURE__ */ g(
96
+ `context-form--${e}-${t.context}-${r.length}`
97
+ ) : t.type === "condition" ? /* @__PURE__ */ h(
98
98
  _,
99
99
  {
100
- name: e.depended,
101
- canActivate: e.canActivate,
102
- children: /* @__PURE__ */ g(V, { path: r, scheme: e.childs })
100
+ name: t.depended,
101
+ canActivate: t.canActivate,
102
+ children: /* @__PURE__ */ h(V, { path: r, scheme: t.childs })
103
103
  },
104
- `condition--${s}-${e.depended}-${r.length}`
105
- ) : e.type === "extra" ? /* @__PURE__ */ g(G, { path: r, item: e }, `partial-item--${s}-${r.length}`) : /* @__PURE__ */ g(
104
+ `condition--${e}-${t.depended}-${r.length}`
105
+ ) : t.type === "extra" ? /* @__PURE__ */ h(G, { path: r, item: t }, `partial-item--${e}-${r.length}`) : /* @__PURE__ */ h(
106
106
  z,
107
107
  {
108
- name: [...r, e.name].join("."),
109
- item: e
108
+ name: [...r, t.name].join("."),
109
+ item: t
110
110
  },
111
- `form-item--${s}-${e.name}-${r.length}`
112
- )) }), m = (o, r, e, s) => {
113
- o.forEach((t) => {
114
- if (t.type === "form" && s(t, [...r, t.name].join("."), e[t.name]), t.type === "context") {
115
- m(t.childs, [...r, t.context], e[t.context] ?? {}, s);
111
+ `form-item--${e}-${t.name}-${r.length}`
112
+ )) }), m = (s, r, o, t) => {
113
+ s.forEach((e) => {
114
+ if (e.type === "form" && t(e, [...r, e.name].join("."), o[e.name]), e.type === "context") {
115
+ m(e.childs, [...r, e.context], o[e.context] ?? {}, t);
116
116
  return;
117
117
  }
118
- if (t.type === "layout" || t.type === "condition") {
119
- m(t.childs, r, e, s);
118
+ if (e.type === "layout" || e.type === "condition") {
119
+ m(e.childs, r, o, t);
120
120
  return;
121
121
  }
122
- t.type === "extra" && t.items.forEach(({ getForm: l, name: y }) => {
122
+ e.type === "extra" && e.items.forEach(({ getForm: l, name: y }) => {
123
123
  m([l(y, () => {
124
- })], r, e, s);
124
+ })], r, o, t);
125
125
  });
126
126
  });
127
- }, E = ({ scheme: o, values: r, path: e, forms: s }) => {
128
- o.forEach((t) => {
129
- if (t.type === "form") {
130
- const l = [...e, t.name].join(".");
131
- s[l].value !== void 0 && (r[t.name] = s[l].value);
127
+ }, E = ({ scheme: s, values: r, path: o, forms: t }) => {
128
+ s.forEach((e) => {
129
+ if (e.type === "form") {
130
+ const l = [...o, e.name].join(".");
131
+ t[l].value !== void 0 && (r[e.name] = t[l].value);
132
132
  }
133
- if (t.type === "context") {
134
- r[t.context] = {}, E({
135
- scheme: t.childs,
136
- path: [...e, t.context],
137
- values: r[t.context],
138
- forms: s
133
+ if (e.type === "context") {
134
+ r[e.context] = {}, E({
135
+ scheme: e.childs,
136
+ path: [...o, e.context],
137
+ values: r[e.context],
138
+ forms: t
139
139
  });
140
140
  return;
141
141
  }
142
- if (t.type === "layout") {
143
- E({ scheme: t.childs, path: e, values: r, forms: s });
142
+ if (e.type === "layout") {
143
+ E({ scheme: e.childs, path: o, values: r, forms: t });
144
144
  return;
145
145
  }
146
- if (t.type === "condition") {
147
- const l = s[t.depended]?.value;
148
- if (t.canActivate(l)) {
149
- E({ scheme: t.childs, path: e, values: r, forms: s });
146
+ if (e.type === "condition") {
147
+ const l = t[e.depended]?.value;
148
+ if (e.canActivate(l)) {
149
+ E({ scheme: e.childs, path: o, values: r, forms: t });
150
150
  return;
151
151
  }
152
152
  }
153
- t.type === "extra" && t.items.forEach(({ getForm: l, name: y }) => {
153
+ e.type === "extra" && e.items.forEach(({ getForm: l, name: y }) => {
154
154
  E({ scheme: [l(y, () => {
155
- })], path: e, values: r, forms: s });
155
+ })], path: o, values: r, forms: t });
156
156
  });
157
157
  });
158
- }, B = (o, r) => {
159
- const e = {};
160
- return E({ scheme: o, path: [], values: e, forms: r }), e;
161
- }, H = (o, r) => {
162
- const { onSubmit: e, onEqual: s, disabled: t, onDirty: l, onFormDirty: y, onChangeEvent: b, defaultValues: d } = r;
158
+ }, w = (s, r) => {
159
+ const o = {};
160
+ return E({ scheme: s, path: [], values: o, forms: r }), o;
161
+ }, H = (s, r) => {
162
+ const { onSubmit: o, onEqual: t, disabled: e, onDirty: l, onFormDirty: y, onChangeEvent: b, defaultValues: d } = r;
163
163
  let v = !1, C = !1, x = 0;
164
164
  const i = {}, f = {
165
165
  subscribers: [],
166
166
  names: {}
167
167
  };
168
- m(o, [], d ?? {}, (n, c, u) => {
168
+ m(s, [], d ?? {}, (n, c, u) => {
169
169
  i[c] = {
170
170
  error: null,
171
171
  isDirty: !1,
@@ -182,7 +182,8 @@ const j = N({}), M = (o) => {
182
182
  l?.({ name: n, isDirty: c }), c && x === 0 && y?.(!0), !c && x === 1 && y?.(!1), x += c ? 1 : -1;
183
183
  };
184
184
  return {
185
- disabled: t,
185
+ scheme: s,
186
+ disabled: e,
186
187
  activate() {
187
188
  v = !0;
188
189
  },
@@ -205,32 +206,32 @@ const j = N({}), M = (o) => {
205
206
  u && u.value !== c && this.onChange(n, c);
206
207
  },
207
208
  getValues() {
208
- return B(o, i);
209
+ return w(s, i);
209
210
  },
210
211
  async handleSubmit() {
211
- if (t)
212
+ if (e)
212
213
  return;
213
214
  C = !0;
214
215
  let n = !1, c = !1;
215
216
  for (const u in i) {
216
217
  const a = i[u];
217
218
  if (a.value !== void 0) {
218
- const h = a.validate(a.value);
219
- h && (c = !0, a.error = h, a.rerender(), !n && a.focus && (a.focus(), n = !0));
219
+ const g = a.validate(a.value);
220
+ g && (c = !0, a.error = g, a.rerender(), !n && a.focus && (a.focus(), n = !0));
220
221
  }
221
222
  }
222
223
  if (!c) {
223
224
  if (x === 0) {
224
- s?.();
225
+ t?.();
225
226
  return;
226
227
  }
227
- const u = B(o, i);
228
- await e(u, {
229
- setError: (a, h) => {
228
+ const u = w(s, i);
229
+ await o(u, {
230
+ setError: (a, g) => {
230
231
  const p = this.getForm(a);
231
232
  p.error = {
232
233
  error: !0,
233
- messages: [h.message]
234
+ messages: [g.message]
234
235
  }, p.rerender();
235
236
  }
236
237
  });
@@ -238,14 +239,14 @@ const j = N({}), M = (o) => {
238
239
  },
239
240
  reset(n) {
240
241
  const c = [];
241
- m(o, [], n, (u, a, h) => {
242
- if (h === void 0 && i[a].value === void 0)
242
+ m(s, [], n, (u, a, g) => {
243
+ if (g === void 0 && i[a].value === void 0)
243
244
  return;
244
- if (f.names[a] && h === void 0) {
245
- c.push(a), i[a].value = h;
245
+ if (f.names[a] && g === void 0) {
246
+ c.push(a), i[a].value = g;
246
247
  return;
247
248
  }
248
- const p = h ?? u.defaultValue;
249
+ const p = g ?? u.defaultValue;
249
250
  i[a].value !== p && (c.push(a), this.onChange(a, p));
250
251
  }), c.some((u) => f.names[u]) && f.subscribers.forEach(({ callback: u }) => {
251
252
  u();
@@ -257,7 +258,7 @@ const j = N({}), M = (o) => {
257
258
  if (i[n].rerender = () => {
258
259
  }, i[n].focus = void 0, v) {
259
260
  i[n].value = void 0;
260
- const u = !w(i[n].defaultValue, i[n].initValue);
261
+ const u = !R(i[n].defaultValue, i[n].initValue);
261
262
  i[n].isDirty !== u && F(n, u), i[n].isDirty = u;
262
263
  }
263
264
  }
@@ -270,7 +271,7 @@ const j = N({}), M = (o) => {
270
271
  const u = { callback: c }, a = this.getForm(n);
271
272
  return a.subscribers.push(u), {
272
273
  unsubscribe: () => {
273
- a.subscribers = a.subscribers.filter((h) => h !== u);
274
+ a.subscribers = a.subscribers.filter((g) => g !== u);
274
275
  }
275
276
  };
276
277
  },
@@ -285,110 +286,111 @@ const j = N({}), M = (o) => {
285
286
  };
286
287
  },
287
288
  onChange(n, c) {
288
- const u = this.getForm(n), a = !w(c, u.initValue);
289
- u.isDirty !== a && F(n, a), u.isDirty = a, b?.({ name: n, value: c }), (u.error || C) && (u.error = u.validate(c) || null), u.value = c, u.rerender(), u.subscribers.forEach(({ callback: h }) => {
290
- h();
289
+ const u = this.getForm(n), a = !R(c, u.initValue);
290
+ u.isDirty !== a && F(n, a), u.isDirty = a, b?.({ name: n, value: c }), (u.error || C) && (u.error = u.validate(c) || null), u.value = c, u.rerender(), u.subscribers.forEach(({ callback: g }) => {
291
+ g();
291
292
  });
292
293
  }
293
294
  };
294
- }, U = (o, r) => {
295
- const e = P(null);
296
- e.current === null && (e.current = H(o, r));
297
- const s = e.current;
295
+ }, Q = (s, r) => {
296
+ const o = P(null);
297
+ o.current === null && (o.current = H(s, r));
298
+ const t = o.current;
298
299
  return {
299
- useValue: (t) => M(t),
300
- reset: (t) => {
301
- s.reset(t);
300
+ useValue: (e) => M(e),
301
+ reset: (e) => {
302
+ t.reset(e);
302
303
  },
303
- setFocus: (t) => {
304
- s.setFocus(t);
304
+ setFocus: (e) => {
305
+ t.setFocus(e);
305
306
  },
306
- setError: (t, l) => {
307
- s.setError(t, l);
307
+ setError: (e, l) => {
308
+ t.setError(e, l);
308
309
  },
309
- setValue: (t, l) => {
310
- s.setValue(t, l);
310
+ setValue: (e, l) => {
311
+ t.setValue(e, l);
311
312
  },
312
- getValues: () => s.getValues(),
313
+ getValues: () => t.getValues(),
313
314
  handleSubmit: async () => {
314
- await s.handleSubmit();
315
+ await t.handleSubmit();
315
316
  },
316
- Form: /* @__PURE__ */ g(J, { manager: s, scheme: o })
317
+ manager: t
317
318
  };
318
- }, J = ({ manager: o, scheme: r }) => (A(() => {
319
- o.activate();
319
+ }, U = ({ manager: s, className: r }) => (A(() => {
320
+ s.activate();
320
321
  }, []), D(() => () => {
321
- o.disactivate();
322
- }, []), /* @__PURE__ */ g(j.Provider, { value: o, children: /* @__PURE__ */ g(V, { scheme: r, path: [] }) })), $ = (o) => {
322
+ s.disactivate();
323
+ }, []), /* @__PURE__ */ h(j.Provider, { value: s, children: /* @__PURE__ */ h(V, { className: r, scheme: s.scheme, path: [] }) })), $ = (s) => {
323
324
  try {
324
- o();
325
+ s();
325
326
  } catch (r) {
326
327
  return r && typeof r == "string" ? {
327
328
  error: !0,
328
329
  messages: [r]
329
- } : r instanceof Array && r.every((e) => e && typeof e == "string") ? {
330
+ } : r instanceof Array && r.every((o) => o && typeof o == "string") ? {
330
331
  error: !0,
331
332
  messages: r
332
333
  } : {
333
334
  error: !0
334
335
  };
335
336
  }
336
- }, W = (o) => (r, e) => {
337
- const s = o.getRequireCheck(e), { validate: t, required: l } = e.$rules ?? {};
337
+ }, W = (s) => (r, o) => {
338
+ const t = s.getRequireCheck(o), { validate: e, required: l } = o.$rules ?? {};
338
339
  return {
339
340
  type: "form",
340
341
  name: r,
341
- defaultValue: o.defaultValue,
342
- Form: o.getForm(e),
342
+ defaultValue: s.defaultValue,
343
+ Form: s.getForm(o),
343
344
  validate: (y) => {
344
345
  if (l) {
345
- const b = $(() => s(y));
346
+ const b = $(() => t(y));
346
347
  if (b)
347
348
  return b;
348
- if (t) {
349
- const d = $(() => t(y));
349
+ if (e) {
350
+ const d = $(() => e(y));
350
351
  if (d)
351
352
  return d;
352
353
  }
353
354
  return;
354
355
  }
355
- if (t && !$(() => s(y))) {
356
- const d = $(() => t(y));
356
+ if (e && !$(() => t(y))) {
357
+ const d = $(() => e(y));
357
358
  if (d)
358
359
  return d;
359
360
  }
360
361
  }
361
362
  };
362
- }, X = (o) => (r) => (...e) => ({
363
+ }, X = (s) => (r) => (...o) => ({
363
364
  type: "layout",
364
- Layout: o(r),
365
- childs: e
365
+ Layout: s(r),
366
+ childs: o
366
367
  }), Y = ({
367
- getItems: o,
368
+ getItems: s,
368
369
  getController: r
369
370
  }) => ({
370
371
  type: "extra",
371
- items: o((e) => (s) => ({
372
+ items: s((o) => (t) => ({
372
373
  type: "registry",
373
- name: e,
374
- getForm: s
374
+ name: o,
375
+ getForm: t
375
376
  })),
376
377
  getController: r
377
- }), Z = (o) => (...r) => ({
378
+ }), Z = (s) => (...r) => ({
378
379
  type: "context",
379
- context: o,
380
+ context: s,
380
381
  childs: r
381
- }), k = (o, r) => (...e) => ({
382
+ }), k = (s, r) => (...o) => ({
382
383
  type: "condition",
383
- depended: o,
384
+ depended: s,
384
385
  canActivate: r.canActivate,
385
- childs: e
386
+ childs: o
386
387
  });
387
388
  export {
388
389
  k as Condition,
389
390
  Z as Context,
391
+ U as FormLayout,
390
392
  Y as createExtraForm,
391
393
  W as createForm,
392
394
  X as createLayout,
393
- U as useForm
395
+ Q as useForm
394
396
  };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export { useForm } from './useForm';
1
+ export { useForm, FormLayout } from './useForm';
2
2
  export { createForm } from './core/builders/create-form';
3
3
  export { createLayout } from './core/builders/create-layout';
4
4
  export { createExtraForm } from './core/builders/create-extra-form';
5
5
  export { Condition, Context } from './core/builders/syntax';
6
6
  export type { FieldError } from './core/types';
7
+ export type { FormManager } from './manager/manager';
@@ -18,6 +18,7 @@ export interface Forms {
18
18
  [name: string]: FormItem;
19
19
  }
20
20
  export interface FormManager<FlattenValues, ClonedValues> {
21
+ scheme: SchemeItems.All[];
21
22
  disabled?: boolean;
22
23
  activate: () => void;
23
24
  disactivate: () => void;
package/dist/useForm.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ExtractValues, ExtractFlatValues } from './core/extract';
2
2
  import { SchemeItems } from './core/types';
3
+ import { FormManager } from './manager/manager';
3
4
  import { DeepPartial, FieldValues } from './types';
4
5
  export type Copy<T> = {
5
6
  [K in keyof T]: T[K];
@@ -44,7 +45,7 @@ declare const useDynamicForm: (scheme: SchemeItems.All[], opts: MainOptions<Fiel
44
45
  [x: string]: any;
45
46
  };
46
47
  handleSubmit: () => Promise<void>;
47
- Form: import("react/jsx-runtime").JSX.Element;
48
+ manager: FormManager<FieldValues, FieldValues>;
48
49
  };
49
50
  declare const useForm: <Items extends SchemeItems.All[], Values extends ExtractValues<Items[number]>, FlattenValues extends ExtractFlatValues<Items[number]>, Cloned extends Copy<Values>>(scheme: Items, opts: MainOptions<Values, FlattenValues, Cloned>) => {
50
51
  useValue: <K extends keyof FlattenValues>(name: K) => FlattenValues[K];
@@ -56,6 +57,11 @@ declare const useForm: <Items extends SchemeItems.All[], Values extends ExtractV
56
57
  setValue: <K extends keyof FlattenValues>(name: K, value: FlattenValues[K]) => void;
57
58
  getValues: () => DeepPartial<Cloned>;
58
59
  handleSubmit: () => Promise<void>;
59
- Form: import("react/jsx-runtime").JSX.Element;
60
+ manager: FormManager<FlattenValues, Cloned>;
60
61
  };
62
+ interface Props {
63
+ className?: string;
64
+ manager: FormManager<any, any>;
65
+ }
66
+ export declare const FormLayout: ({ manager, className }: Props) => import("react/jsx-runtime").JSX.Element;
61
67
  export { useForm, useDynamicForm };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companix/formkit",
3
- "version": "0.0.04",
3
+ "version": "0.0.06",
4
4
  "module": "./dist/bundle.es.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",