@effect-app/vue-components 2.4.7 → 2.4.9

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.
@@ -1,57 +1,48 @@
1
- import { useForm as J } from "@tanstack/vue-form";
2
- import { Data as z, S as k, Effect as l, Fiber as N, Option as P, Array as g } from "effect-app";
3
- import { runtimeFiberAsPromise as K } from "./vue-components.es16.js";
4
- import { isObject as T } from "./vue-components.es17.js";
5
- import { computed as x, onUnmounted as D, onMounted as Z, onBeforeUnmount as G, watch as W, ref as Q, h as B } from "vue";
6
- import X from "./vue-components.es18.js";
7
- import Y from "./vue-components.es19.js";
8
- import C from "./vue-components.es20.js";
9
- import { generateMetaFromSchema as ee } from "./vue-components.es12.js";
10
- import re from "./vue-components.es6.js";
11
- import te from "./vue-components.es8.js";
12
- import ne from "./vue-components.es21.js";
13
- import { trace as R } from "./vue-components.es22.js";
14
- import { context as _ } from "./vue-components.es23.js";
15
- class se extends z.TaggedError("FormErrors") {
1
+ import { useForm as Z } from "@tanstack/vue-form";
2
+ import { Data as G, S as W, Effect as l, Fiber as N, Option as A, Array as g } from "effect-app";
3
+ import { runtimeFiberAsPromise as Q } from "./vue-components.es16.js";
4
+ import { isObject as X } from "./vue-components.es17.js";
5
+ import { computed as V, onUnmounted as $, onMounted as Y, onBeforeUnmount as C, watch as R, ref as ee, h as b } from "vue";
6
+ import re from "./vue-components.es18.js";
7
+ import te from "./vue-components.es19.js";
8
+ import se from "./vue-components.es20.js";
9
+ import { generateMetaFromSchema as ne } from "./vue-components.es12.js";
10
+ import oe from "./vue-components.es6.js";
11
+ import ie from "./vue-components.es8.js";
12
+ import ae from "./vue-components.es21.js";
13
+ import { trace as x } from "./vue-components.es22.js";
14
+ import { context as L } from "./vue-components.es23.js";
15
+ class le extends G.TaggedError("FormErrors") {
16
16
  }
17
- const E = (c) => function(i) {
18
- return {
19
- render() {
20
- return B(i, {
21
- form: c,
22
- ...this.$attrs
23
- }, this.$slots);
24
- }
25
- };
26
- }, oe = (c) => function(i) {
17
+ const ce = (m) => function(i) {
27
18
  return {
28
19
  setup() {
29
- const { fieldMap: S, form: v } = c, m = v.useStore((u) => u.errors), p = v.useStore((u) => u.fieldMeta), F = v.useStore((u) => u.errorMap), M = x(() => {
30
- const u = g.filterMap(
31
- Object.entries(p.value),
20
+ const { fieldMap: h, form: v } = m, d = v.useStore((c) => c.errors), f = v.useStore((c) => c.fieldMeta), F = v.useStore((c) => c.errorMap), M = V(() => {
21
+ const c = g.filterMap(
22
+ Object.entries(f.value),
32
23
  ([j, o]) => {
33
- const b = o.errors ?? [];
34
- if (!b.length) return P.none();
35
- const a = S.value.get(j);
36
- return a ? P.some({
24
+ const w = o.errors ?? [];
25
+ if (!w.length) return A.none();
26
+ const a = h.value.get(j);
27
+ return a ? A.some({
37
28
  label: a.label,
38
29
  inputId: a.id,
39
30
  // Only show the first error
40
- errors: [b[0]?.message].filter(Boolean)
41
- }) : P.none();
31
+ errors: [w[0]?.message].filter(Boolean)
32
+ }) : A.none();
42
33
  }
43
34
  ), O = [];
44
35
  if (F.value.onSubmit) {
45
36
  for (const [j, o] of Object.entries(F.value.onSubmit))
46
37
  if (g.isArray(o) && o.length)
47
- for (const b of o) {
48
- const a = b;
38
+ for (const w of o) {
39
+ const a = w;
49
40
  if (a?.path && g.isArray(a.path) && a.path.length) {
50
- const w = a.path.join(".");
51
- if (!S.value.has(w)) {
41
+ const y = a.path.join(".");
42
+ if (!h.value.has(y)) {
52
43
  O.push({
53
- label: w,
54
- inputId: w,
44
+ label: y,
45
+ inputId: y,
55
46
  errors: [a.message].filter(Boolean)
56
47
  });
57
48
  break;
@@ -59,183 +50,206 @@ const E = (c) => function(i) {
59
50
  }
60
51
  }
61
52
  }
62
- return [...u, ...O];
53
+ return [...c, ...O];
63
54
  });
64
55
  return {
65
- generalErrors: m,
56
+ generalErrors: d,
66
57
  errors: M
67
58
  };
68
59
  },
69
- render({ errors: S, generalErrors: v }) {
70
- return B(i, {
71
- errors: S,
60
+ render({ errors: h, generalErrors: v }) {
61
+ return b(i, {
62
+ errors: h,
72
63
  generalErrors: v,
73
64
  ...this.$attrs
74
65
  }, this.$slots);
75
66
  }
76
67
  };
77
- }, ye = (c, f, i) => {
78
- if (!c) throw new Error("Schema is required");
79
- const S = k.standardSchemaV1(c), v = k.decode(c), { meta: m } = ee(c), p = x(() => {
68
+ }, Oe = (m, p, i) => {
69
+ if (!m) throw new Error("Schema is required");
70
+ const h = W.standardSchemaV1(m), v = W.decode(m), { meta: d } = ne(m), f = V(() => {
80
71
  if (i?.persistency?.id)
81
72
  return i.persistency.id;
82
- const e = window.location.pathname, r = Object.keys(m);
73
+ const e = window.location.pathname, r = Object.keys(d);
83
74
  return `${e}-${r.join("-")}`;
84
75
  }), F = () => {
85
76
  const e = new URLSearchParams(window.location.search);
86
- e.delete(p.value);
77
+ e.delete(f.value);
87
78
  const r = new URL(window.location.href);
88
79
  r.search = e.toString(), window.history.replaceState({}, "", r.toString());
89
80
  };
90
81
  function M(e, r) {
91
- for (const n in r)
92
- r[n] && T(r[n]) ? (e[n] || (e[n] = {}), M(e[n], r[n])) : e[n] = r[n];
82
+ for (const s in r)
83
+ r[s] && X(r[s]) ? (e[s] || (e[s] = {}), M(e[s], r[s])) : e[s] = r[s];
93
84
  return e;
94
85
  }
95
- const u = (e) => {
86
+ const c = (e) => {
96
87
  const r = { ...e };
97
- for (const n in m) {
98
- const s = m[n], t = r[n], y = (t == null || t === !1 || t === "" || Number.isNaN(t)) && t !== !1 && t !== 0;
99
- s && !s.required && s.nullableOrUndefined && s.type !== "boolean" && (t === void 0 || y) && (r[n] = s.nullableOrUndefined === "undefined" ? void 0 : null);
88
+ for (const s in d) {
89
+ const n = d[s], t = r[s], E = (t == null || t === !1 || t === "" || Number.isNaN(t)) && t !== !1 && t !== 0;
90
+ n && !n.required && n.nullableOrUndefined && n.type !== "boolean" && (t === void 0 || E) && (r[s] = n.nullableOrUndefined === "undefined" ? void 0 : null);
100
91
  }
101
92
  return r;
102
- }, O = x(() => {
103
- const e = f?.defaultValues ? u(f.defaultValues) : void 0;
93
+ }, O = V(() => {
94
+ const e = p?.defaultValues ? c(p.defaultValues) : void 0;
104
95
  if (e && !i?.persistency?.overrideDefaultValues)
105
96
  return e;
106
97
  let r;
107
- const n = i?.persistency;
108
- if (!n?.policies || n.policies.length === 0) return {};
109
- if (n.policies.includes("querystring"))
98
+ const s = i?.persistency;
99
+ if (!s?.policies || s.policies.length === 0) return {};
100
+ if (s.policies.includes("querystring"))
110
101
  try {
111
- const t = new URLSearchParams(window.location.search).get(p.value);
102
+ const t = new URLSearchParams(window.location.search).get(f.value);
112
103
  F(), t && (r = JSON.parse(t));
113
- } catch (s) {
114
- console.error(s);
104
+ } catch (n) {
105
+ console.error(n);
115
106
  }
116
107
  if (
117
108
  // query string has higher priority than local/session storage
118
- !r && (n.policies.includes("local") || n.policies.includes("session"))
109
+ !r && (s.policies.includes("local") || s.policies.includes("session"))
119
110
  ) {
120
- const s = n.policies.includes("local") ? localStorage : sessionStorage;
121
- if (s)
111
+ const n = s.policies.includes("local") ? localStorage : sessionStorage;
112
+ if (n)
122
113
  try {
123
114
  const t = JSON.parse(
124
- s.getItem(p.value) || "{}"
115
+ n.getItem(f.value) || "{}"
125
116
  );
126
- s.removeItem(p.value), r = t;
117
+ n.removeItem(f.value), r = t;
127
118
  } catch (t) {
128
119
  console.error(t);
129
120
  }
130
121
  }
131
122
  return r ??= {}, e ? M(e, r) : r;
132
- }), j = (e, r) => e ? _.with(R.setSpan(_.active(), e), r) : r(), o = J({
133
- ...f,
123
+ }), j = (e, r) => e ? L.with(x.setSpan(L.active(), e), r) : r(), o = Z({
124
+ ...p,
134
125
  validators: {
135
- onSubmit: S,
136
- ...f?.validators || {}
126
+ onSubmit: h,
127
+ ...p?.validators || {}
137
128
  },
138
- onSubmit: f?.onSubmit ? ({ formApi: e, meta: r, value: n }) => j(r?.currentSpan, async () => {
139
- const s = await l.runPromise(v(n)), t = f.onSubmit({
129
+ onSubmit: p?.onSubmit ? ({ formApi: e, meta: r, value: s }) => j(r?.currentSpan, async () => {
130
+ const n = await l.runPromise(v(s)), t = p.onSubmit({
140
131
  formApi: e,
141
132
  meta: r,
142
- value: s
133
+ value: n
143
134
  });
144
- return N.isFiber(t) && N.isRuntimeFiber(t) ? await K(t) : l.isEffect(t) ? await l.runPromise(
135
+ return N.isFiber(t) && N.isRuntimeFiber(t) ? await Q(t) : l.isEffect(t) ? await l.runPromise(
145
136
  t.pipe(
146
137
  // meta?.currentSpan
147
138
  // ? Effect.withParentSpan(meta.currentSpan)
148
139
  // : (_) => _,
149
- l.flatMap((d) => N.join(d))
140
+ l.flatMap((u) => N.join(u))
150
141
  )
151
142
  ) : t;
152
143
  }) : void 0,
153
144
  defaultValues: O.value
154
- }), b = () => {
155
- Object.keys(m).forEach((e) => {
145
+ }), w = () => {
146
+ Object.keys(d).forEach((e) => {
156
147
  o.setFieldValue(e, void 0);
157
148
  });
158
- }, a = (e) => e.reduce((r, n) => {
159
- const s = n.split(".");
160
- return s.reduce((t, d, y) => (y === s.length - 1 ? t[d] = o.getFieldValue(n) : t[d] = t[d] ?? {}, t[d]), r), r;
161
- }, {}), w = (e) => {
149
+ }, a = (e) => e.reduce((r, s) => {
150
+ const n = s.split(".");
151
+ return n.reduce((t, u, E) => (E === n.length - 1 ? t[u] = o.getFieldValue(s) : t[u] = t[u] ?? {}, t[u]), r), r;
152
+ }, {}), y = (e) => {
162
153
  if (e) {
163
154
  if (g.isArray(e.keys))
164
155
  return a(e.keys);
165
156
  if (g.isArray(e.banKeys)) {
166
- const r = Object.keys(m).filter((n) => e.banKeys?.includes(n));
157
+ const r = Object.keys(d).filter((s) => e.banKeys?.includes(s));
167
158
  return a(r);
168
159
  }
169
160
  return o.store.state.values;
170
161
  }
171
- }, U = () => {
162
+ }, P = () => {
172
163
  const e = i?.persistency;
173
164
  if (!(!e?.policies || e.policies.length === 0) && (e.policies.includes("local") || e.policies.includes("session"))) {
174
165
  const r = e.policies.includes("local") ? localStorage : sessionStorage;
175
166
  if (!r) return;
176
- const n = w(e);
177
- return r.setItem(p.value, JSON.stringify(n));
167
+ const s = y(e);
168
+ return r.setItem(f.value, JSON.stringify(s));
178
169
  }
179
- }, L = () => {
170
+ }, I = () => {
180
171
  const e = i?.persistency;
181
172
  if (!(!e?.policies || e.policies.length === 0) && e.policies.includes("querystring")) {
182
- const r = w(e), n = new URLSearchParams(window.location.search);
183
- n.set(p.value, JSON.stringify(r));
184
- const s = new URL(window.location.href);
185
- s.search = n.toString(), window.history.replaceState({}, "", s.toString());
173
+ const r = y(e), s = new URLSearchParams(window.location.search);
174
+ s.set(f.value, JSON.stringify(r));
175
+ const n = new URL(window.location.href);
176
+ n.search = s.toString(), window.history.replaceState({}, "", n.toString());
186
177
  }
187
- }, V = (e) => {
178
+ }, _ = (e) => {
188
179
  o.store.state.isDirty && e.preventDefault();
189
180
  };
190
- if (D(U), Z(() => {
191
- window.addEventListener("beforeunload", U), window.addEventListener("blur", L), i?.preventWindowExit && i.preventWindowExit !== "nope" && window.addEventListener("beforeunload", V);
192
- }), G(() => {
193
- window.removeEventListener("beforeunload", U), window.removeEventListener("blur", L), i?.preventWindowExit && i.preventWindowExit !== "nope" && window.removeEventListener("beforeunload", V);
181
+ if ($(P), Y(() => {
182
+ window.addEventListener("beforeunload", P), window.addEventListener("blur", I), i?.preventWindowExit && i.preventWindowExit !== "nope" && window.addEventListener("beforeunload", _);
183
+ }), C(() => {
184
+ window.removeEventListener("beforeunload", P), window.removeEventListener("blur", I), i?.preventWindowExit && i.preventWindowExit !== "nope" && window.removeEventListener("beforeunload", _);
194
185
  }), i?.preventWindowExit === "prevent-and-reset") {
195
- const e = o.useStore((t) => t.isSubmitting), r = o.useStore((t) => t.submissionAttempts), n = o.useStore((t) => t.canSubmit), s = o.useStore((t) => t.values);
196
- W([e, r], ([t, d], [y]) => {
197
- y && !t && d > 0 && n.value && o.reset(s.value);
186
+ const e = o.useStore((t) => t.isSubmitting), r = o.useStore((t) => t.submissionAttempts), s = o.useStore((t) => t.canSubmit), n = o.useStore((t) => t.values);
187
+ R([e, r], ([t, u], [E]) => {
188
+ E && !t && u > 0 && s.value && o.reset(n.value);
198
189
  });
199
190
  }
200
- const I = (e) => l.currentSpan.pipe(
191
+ const D = (e) => l.currentSpan.pipe(
201
192
  l.option,
202
193
  l.flatMap(
203
- (r) => l.promise(() => o.handleSubmit(P.isSome(r) ? { currentSpan: r.value, ...e } : e))
194
+ (r) => l.promise(() => o.handleSubmit(A.isSome(r) ? { currentSpan: r.value, ...e } : e))
204
195
  )
205
- ), q = (e) => e?.checkErrors ? I(e?.meta).pipe(l.flatMap(l.fnUntraced(function* () {
196
+ ), B = (e) => e?.checkErrors ? D(e?.meta).pipe(l.flatMap(l.fnUntraced(function* () {
206
197
  const r = o.getAllErrors();
207
198
  if (Object.keys(r.fields).length || r.form.errors.length)
208
- return yield* new se({ form: r.form, fields: r.fields });
209
- }))) : I(e?.meta), H = o.handleSubmit, A = Q(/* @__PURE__ */ new Map()), h = Object.assign(o, {
199
+ return yield* new le({ form: r.form, fields: r.fields });
200
+ }))) : D(e?.meta), q = o.handleSubmit, U = ee(/* @__PURE__ */ new Map()), S = Object.assign(o, {
210
201
  i18nNamespace: i?.i18nNamespace,
211
202
  ignorePreventCloseEvents: i?.ignorePreventCloseEvents,
212
- meta: m,
213
- clear: b,
203
+ meta: d,
204
+ clear: w,
214
205
  handleSubmit: (e) => {
215
- const r = R.getSpan(_.active());
216
- return H({ currentSpan: r, ...e });
206
+ const r = x.getSpan(L.active());
207
+ return q({ currentSpan: r, ...e });
217
208
  },
218
209
  // /** @experimental */
219
- handleSubmitEffect: q,
210
+ handleSubmitEffect: B,
220
211
  registerField: (e) => {
221
- W(e, (r) => A.value.set(r.name, { label: r.label, id: r.id }), { immediate: !0 }), D(() => A.value.delete(e.value.name));
212
+ R(e, (r) => U.value.set(r.name, { label: r.label, id: r.id }), { immediate: !0 }), $(() => U.value.delete(e.value.name));
222
213
  }
223
- }), $ = { form: h, fieldMap: A };
224
- return Object.assign(h, {
225
- // Type-level properties for performance optimization (not used at runtime)
226
- _paths: void 0,
227
- _keys: void 0,
228
- errorContext: $,
229
- Form: E(h)(ne),
230
- Input: E(h)(i?.input ?? re),
231
- TaggedUnion: E(h)(te),
214
+ }), k = { form: S, fieldMap: U }, J = (e, r) => {
215
+ const s = i?.input ?? oe;
216
+ return b(s, {
217
+ ...e,
218
+ form: S,
219
+ ...r?.attrs
220
+ }, r?.slots);
221
+ }, z = (e, r) => b(ce(k)(se), {
222
+ ...e,
223
+ ...r?.attrs
224
+ }, r?.slots), K = (e, r) => b(ie, {
225
+ ...e,
226
+ form: S,
227
+ ...r?.attrs
228
+ }, r?.slots), T = (e, r) => b(re, {
229
+ ...e,
230
+ form: S,
231
+ ...r?.attrs
232
+ }, r?.slots), H = (e, r) => b(te, {
233
+ ...e,
234
+ form: S,
235
+ ...r?.attrs
236
+ }, r?.slots);
237
+ return Object.assign(S, {
238
+ errorContext: k,
239
+ Form: (e, r) => b(ae, {
240
+ ...e,
241
+ form: S,
242
+ ...r?.attrs
243
+ }, r?.slots),
244
+ Input: J,
245
+ TaggedUnion: K,
232
246
  Field: o.Field,
233
- Errors: oe($)(C),
234
- Array: E(h)(X),
235
- AutoGen: E(h)(Y)
247
+ Errors: z,
248
+ Array: T,
249
+ AutoGen: H
236
250
  });
237
251
  };
238
252
  export {
239
- se as FormErrors,
240
- ye as useOmegaForm
253
+ le as FormErrors,
254
+ Oe as useOmegaForm
241
255
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as m, createElementBlock as d, openBlock as u, withModifiers as f, createElementVNode as l, unref as s, renderSlot as a } from "vue";
2
2
  import { useStore as b } from "@tanstack/vue-form";
3
3
  import { usePreventClose as p } from "./vue-components.es11.js";
4
- import { getOmegaStore as c } from "./vue-components.es52.js";
4
+ import { getOmegaStore as c } from "./vue-components.es53.js";
5
5
  const S = ["disabled"], V = /* @__PURE__ */ m({
6
6
  __name: "OmegaWrapper",
7
7
  props: {
@@ -1,13 +1,6 @@
1
- import { useStore as u } from "@tanstack/vue-form";
2
- import { computed as f } from "vue";
3
- function c(o, t) {
4
- return f(() => t ? u(o.store, (n) => {
5
- const r = {};
6
- for (const e of t)
7
- r[e] = n[e];
8
- return r;
9
- }).value : {});
10
- }
1
+ (function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
+ import o from "./vue-components.es38.js";
3
+
11
4
  export {
12
- c as getOmegaStore
5
+ o as default
13
6
  };
@@ -1,6 +1,13 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");if(i.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),document.head.appendChild(i),window.customElements){const e=window.customElements.define;window.customElements.define=function(s,t){const n=t.prototype.connectedCallback;return t.prototype.connectedCallback=function(){if(n&&n.call(this),this.shadowRoot){const a=document.createElement("style");a.appendChild(document.createTextNode(".omega-input .v-input__details:has(.v-messages:empty){grid-template-rows:0fr;transition:all .2s}.omega-input .v-messages:empty{min-height:0}.omega-input .v-input__details:has(.v-messages){transition:all .2s;overflow:hidden;min-height:0;display:grid;grid-template-rows:1fr}.omega-input .v-messages{transition:all .2s}.omega-input .v-messages>*{transition-duration:0s!important}.omega-input [role=alert]:has(.v-messages:empty){padding:0}.omega-input .v-btn{cursor:pointer;width:auto;appearance:none;box-shadow:none;display:block;min-width:auto;height:auto;padding:.5em .5em .5em 1em}")),this.shadowRoot.appendChild(a)}},e.call(window.customElements,s,t)}}}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import o from "./vue-components.es38.js";
3
-
1
+ import { useStore as u } from "@tanstack/vue-form";
2
+ import { computed as f } from "vue";
3
+ function c(o, t) {
4
+ return f(() => t ? u(o.store, (n) => {
5
+ const r = {};
6
+ for (const e of t)
7
+ r[e] = n[e];
8
+ return r;
9
+ }).value : {});
10
+ }
4
11
  export {
5
- o as default
12
+ c as getOmegaStore
6
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect-app/vue-components",
3
- "version": "2.4.7",
3
+ "version": "2.4.9",
4
4
  "peerDependencies": {
5
5
  "@mdi/js": "^7.4.47",
6
6
  "effect": "^3.18.0",
@@ -45,15 +45,14 @@
45
45
  generic="
46
46
  // dprint ignore - somehow with 120 chars, this becomes a mess. should report it.
47
47
  From extends Record<PropertyKey, any>,
48
- To extends Record<PropertyKey, any>,
49
- Name extends DeepKeys<From>
48
+ To extends Record<PropertyKey, any>
50
49
  "
51
50
  >
52
51
  import { type DeepKeys } from "@tanstack/vue-form"
53
52
  import { computed, onMounted, provide } from "vue"
54
53
  import { type OmegaArrayProps } from "./OmegaFormStuff"
55
54
 
56
- const props = defineProps<OmegaArrayProps<From, To, Name>>()
55
+ const props = defineProps<OmegaArrayProps<From, To>>()
57
56
 
58
57
  defineOptions({
59
58
  inheritAttrs: false
@@ -4,7 +4,7 @@
4
4
  :child="{ name, label, ...attrs }"
5
5
  >
6
6
  <form.Input
7
- :name="name as FieldPath<From>"
7
+ :name="name"
8
8
  :label="label"
9
9
  v-bind="attrs"
10
10
  />
@@ -16,16 +16,15 @@
16
16
  lang="ts"
17
17
  generic="
18
18
  From extends Record<PropertyKey, string>,
19
- To extends Record<PropertyKey, string>,
20
- Name extends DeepKeys<From>
19
+ To extends Record<PropertyKey, string>
21
20
  "
22
21
  >
23
22
  import { type DeepKeys } from "@tanstack/vue-form"
24
23
  import { Array as A, Order, pipe } from "effect-app"
25
24
  import { computed } from "vue"
26
- import { type FieldMeta, type FieldPath, type OmegaAutoGenMeta, type OmegaInputProps } from "./OmegaFormStuff"
25
+ import { type FieldMeta, type OmegaAutoGenMeta, type OmegaInputProps } from "./OmegaFormStuff"
27
26
 
28
- type NewMeta = OmegaAutoGenMeta<From, To, Name>
27
+ type NewMeta = OmegaAutoGenMeta<From, To>
29
28
 
30
29
  const mapObject = <K extends string, A, B>(fn: (value: A, key: K) => B) => (obj: Record<K, A>): Record<K, B> =>
31
30
  Object.fromEntries(
@@ -52,7 +51,7 @@ const filterMapRecord =
52
51
  )
53
52
 
54
53
  const props = defineProps<{
55
- form: OmegaInputProps<From, To, Name>["form"]
54
+ form: OmegaInputProps<From, To>["form"]
56
55
  pick?: DeepKeys<From>[]
57
56
  omit?: DeepKeys<From>[]
58
57
  labelMap?: (key: DeepKeys<From>) => string | undefined
@@ -27,8 +27,7 @@ import { OmegaFormKey } from "./useOmegaForm"
27
27
 
28
28
  const form = inject(OmegaFormKey) as unknown as OmegaInputProps<
29
29
  From,
30
- To,
31
- Name
30
+ To
32
31
  >["form"]
33
32
 
34
33
  if (!form) {
@@ -36,7 +35,7 @@ if (!form) {
36
35
  }
37
36
 
38
37
  defineProps<
39
- BaseProps<From, Name> & DefaultTypeProps
38
+ BaseProps<From> & DefaultTypeProps
40
39
  >()
41
40
 
42
41
  defineSlots<{
@@ -17,19 +17,19 @@ export type FieldPath<T> = unknown extends T ? string
17
17
  // technically we cannot have primitive at the root
18
18
  : T extends string | boolean | number | null | undefined | symbol | bigint ? ""
19
19
  // technically we cannot have array at the root
20
- : T extends ReadonlyArray<infer U> ? FieldPath_<U, `[${number}]`>
20
+ : T extends ReadonlyArray<infer U> ? Compute<FieldPath_<U, `[${number}]`>>
21
21
  : {
22
- [K in keyof T]: FieldPath_<T[K], `${K & string}`>
22
+ [K in keyof T]: Compute<FieldPath_<T[K], `${K & string}`>>
23
23
  }[keyof T]
24
24
 
25
25
  export type FieldPath_<T, Path extends string> = unknown extends T ? string
26
26
  : T extends string | boolean | number | null | undefined | symbol | bigint ? Path
27
- : T extends ReadonlyArray<infer U> ? FieldPath_<U, `${Path}[${number}]`> | Path
27
+ : T extends ReadonlyArray<infer U> ? Compute<FieldPath_<U, `${Path}[${number}]`>> | Path
28
28
  : {
29
- [K in keyof T]: FieldPath_<T[K], `${Path}.${K & string}`>
29
+ [K in keyof T]: Compute<FieldPath_<T[K], `${Path}.${K & string}`>>
30
30
  }[keyof T]
31
31
 
32
- export type BaseProps<From, TName extends FieldPath<From>> = {
32
+ export type BaseProps<From, TName extends FieldPath<From> = FieldPath<From>> = {
33
33
  /**
34
34
  * Will fallback to i18n when not specified.
35
35
  * Can also be provided via #label slot for custom HTML labels.
@@ -64,34 +64,31 @@ export type DefaultTypeProps = {
64
64
 
65
65
  export type OmegaInputPropsBase<
66
66
  From extends Record<PropertyKey, any>,
67
- To extends Record<PropertyKey, any>,
68
- Name extends DeepKeys<From>
67
+ To extends Record<PropertyKey, any>
69
68
  > = {
70
69
  form: OF<From, To> & {
71
70
  meta: MetaRecord<From>
72
71
  i18nNamespace?: string
73
72
  }
74
- } & BaseProps<From, Name>
73
+ } & BaseProps<From>
75
74
 
76
75
  export type OmegaInputProps<
77
76
  From extends Record<PropertyKey, any>,
78
77
  To extends Record<PropertyKey, any>,
79
- Name extends DeepKeys<From>,
80
78
  TypeProps = DefaultTypeProps
81
79
  > = {
82
80
  form: OmegaFormReturn<From, To, TypeProps> & {
83
81
  meta: MetaRecord<From>
84
82
  i18nNamespace?: string
85
83
  }
86
- } & BaseProps<From, Name>
84
+ } & BaseProps<From>
87
85
 
88
86
  export type OmegaArrayProps<
89
87
  From extends Record<PropertyKey, any>,
90
- To extends Record<PropertyKey, any>,
91
- Name extends DeepKeys<From>
88
+ To extends Record<PropertyKey, any>
92
89
  > =
93
90
  & Omit<
94
- OmegaInputProps<From, To, Name>,
91
+ OmegaInputProps<From, To>,
95
92
  "validators" | "options" | "label" | "type" | "items" | "name"
96
93
  >
97
94
  & {
@@ -889,9 +886,8 @@ export const nullableInput = <A, I, R>(
889
886
 
890
887
  export type OmegaAutoGenMeta<
891
888
  From extends Record<PropertyKey, any>,
892
- To extends Record<PropertyKey, any>,
893
- Name extends DeepKeys<From>
894
- > = Omit<OmegaInputProps<From, To, Name>, "form">
889
+ To extends Record<PropertyKey, any>
890
+ > = Omit<OmegaInputProps<From, To>, "form">
895
891
 
896
892
  const supportedInputs = [
897
893
  "button",
@@ -40,8 +40,7 @@
40
40
  generic="
41
41
  // dprint ignore - somehow with 120 chars, this becomes a mess. should report it.
42
42
  From extends Record<PropertyKey, any>,
43
- To extends Record<PropertyKey, any>,
44
- Name extends DeepKeys<From>
43
+ To extends Record<PropertyKey, any>
45
44
  "
46
45
  >
47
46
  import { type DeepKeys } from "@tanstack/vue-form"
@@ -50,7 +49,7 @@ import { useIntl } from "../../utils"
50
49
  import { type FieldMeta, generateInputStandardSchemaFromFieldMeta, type OmegaInputPropsBase } from "./OmegaFormStuff"
51
50
  import OmegaInternalInput from "./OmegaInternalInput.vue"
52
51
 
53
- const props = defineProps<OmegaInputPropsBase<From, To, Name>>()
52
+ const props = defineProps<OmegaInputPropsBase<From, To>>()
54
53
 
55
54
  // downgrade to *as* DeepKeys<From> to avoid useless and possible infinite recursion in TS
56
55
  const propsName = computed(() => props.name as DeepKeys<From>)