@effect-app/vue-components 4.0.0-beta.21 → 4.0.0-beta.211

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 (196) hide show
  1. package/README.md +36 -8
  2. package/dist/reset.css +52 -0
  3. package/dist/types/components/CommandButton.vue.d.ts +6 -4
  4. package/dist/types/components/OmegaForm/OmegaArray.vue.d.ts +1 -1
  5. package/dist/types/components/OmegaForm/OmegaAutoGen.vue.d.ts +1 -1
  6. package/dist/types/components/OmegaForm/OmegaErrorsInternal.vue.d.ts +1 -1
  7. package/dist/types/components/OmegaForm/OmegaFormInput.vue.d.ts +1 -1
  8. package/dist/types/components/OmegaForm/OmegaInput.vue.d.ts +1 -1
  9. package/dist/types/components/OmegaForm/OmegaInternalInput.vue.d.ts +2 -1
  10. package/dist/types/components/OmegaForm/OmegaWrapper.vue.d.ts +1 -1
  11. package/dist/types/components/OmegaForm/createUseFormWithCustomInput.d.ts +2 -2
  12. package/dist/types/components/OmegaForm/errors.d.ts +33 -0
  13. package/dist/types/components/OmegaForm/getOmegaStore.d.ts +1 -1
  14. package/dist/types/components/OmegaForm/hocs.d.ts +3 -0
  15. package/dist/types/components/OmegaForm/index.d.ts +13 -3
  16. package/dist/types/components/OmegaForm/inputs.d.ts +4 -0
  17. package/dist/types/components/OmegaForm/meta/checks.d.ts +4 -0
  18. package/dist/types/components/OmegaForm/meta/createMeta.d.ts +32 -0
  19. package/dist/types/components/OmegaForm/meta/defaults.d.ts +2 -0
  20. package/dist/types/components/OmegaForm/meta/redacted.d.ts +2 -0
  21. package/dist/types/components/OmegaForm/meta/types.d.ts +56 -0
  22. package/dist/types/components/OmegaForm/meta/walker.d.ts +18 -0
  23. package/dist/types/components/OmegaForm/persistency.d.ts +58 -0
  24. package/dist/types/components/OmegaForm/submit.d.ts +60 -0
  25. package/dist/types/components/OmegaForm/types.d.ts +281 -0
  26. package/dist/types/components/OmegaForm/useOmegaForm.d.ts +7 -213
  27. package/dist/types/components/OmegaForm/validation/localized.d.ts +10 -0
  28. package/dist/types/index.d.ts +0 -1
  29. package/dist/types/utils/index.d.ts +6 -6
  30. package/dist/vue-components.es.js +29 -45
  31. package/dist/vue-components10.es.js +5 -0
  32. package/dist/vue-components11.es.js +20 -0
  33. package/dist/vue-components12.es.js +49 -0
  34. package/dist/vue-components13.es.js +128 -0
  35. package/dist/vue-components14.es.js +65 -0
  36. package/dist/vue-components15.es.js +60 -0
  37. package/dist/vue-components16.es.js +22 -0
  38. package/dist/vue-components17.es.js +5 -0
  39. package/dist/vue-components18.es.js +80 -0
  40. package/dist/vue-components19.es.js +92 -0
  41. package/dist/vue-components2.es.js +11 -0
  42. package/dist/vue-components20.es.js +73 -0
  43. package/dist/vue-components21.es.js +12 -0
  44. package/dist/vue-components22.es.js +56 -0
  45. package/dist/vue-components23.es.js +5 -0
  46. package/dist/vue-components24.es.js +44 -0
  47. package/dist/vue-components25.es.js +5 -0
  48. package/dist/vue-components26.es.js +84 -0
  49. package/dist/vue-components28.es.js +8 -0
  50. package/dist/vue-components29.es.js +9 -0
  51. package/dist/vue-components3.es.js +86 -0
  52. package/dist/vue-components30.es.js +269 -0
  53. package/dist/vue-components32.es.js +8 -0
  54. package/dist/vue-components33.es.js +73 -0
  55. package/dist/vue-components34.es.js +5 -0
  56. package/dist/vue-components35.es.js +52 -0
  57. package/dist/vue-components36.es.js +5 -0
  58. package/dist/vue-components37.es.js +24 -0
  59. package/dist/vue-components38.es.js +5 -0
  60. package/dist/vue-components39.es.js +59 -0
  61. package/dist/vue-components4.es.js +5 -0
  62. package/dist/vue-components40.es.js +5 -0
  63. package/dist/vue-components41.es.js +12 -0
  64. package/dist/vue-components42.es.js +22 -0
  65. package/dist/vue-components44.es.js +9 -0
  66. package/dist/vue-components45.es.js +4 -0
  67. package/dist/vue-components46.es.js +38 -0
  68. package/dist/vue-components47.es.js +27 -0
  69. package/dist/vue-components48.es.js +28 -0
  70. package/dist/vue-components49.es.js +7 -0
  71. package/dist/vue-components5.es.js +24 -0
  72. package/dist/vue-components50.es.js +18 -0
  73. package/dist/vue-components51.es.js +36 -0
  74. package/dist/vue-components52.es.js +18 -0
  75. package/dist/vue-components53.es.js +21 -0
  76. package/dist/vue-components54.es.js +30 -0
  77. package/dist/vue-components55.es.js +7 -0
  78. package/dist/vue-components56.es.js +9 -0
  79. package/dist/vue-components57.es.js +38 -0
  80. package/dist/vue-components58.es.js +25 -0
  81. package/dist/vue-components59.es.js +128 -0
  82. package/dist/vue-components6.es.js +13 -0
  83. package/dist/vue-components60.es.js +24 -0
  84. package/dist/vue-components61.es.js +21 -0
  85. package/dist/vue-components62.es.js +9 -0
  86. package/dist/vue-components63.es.js +19 -0
  87. package/dist/vue-components64.es.js +5 -0
  88. package/dist/vue-components65.es.js +29 -0
  89. package/dist/vue-components66.es.js +5 -0
  90. package/dist/vue-components67.es.js +29 -0
  91. package/dist/vue-components68.es.js +6 -0
  92. package/dist/vue-components69.es.js +18 -0
  93. package/dist/vue-components7.es.js +13 -0
  94. package/dist/vue-components70.es.js +40 -0
  95. package/dist/vue-components71.es.js +81 -0
  96. package/dist/vue-components72.es.js +33 -0
  97. package/dist/vue-components73.es.js +19 -0
  98. package/dist/vue-components74.es.js +48 -0
  99. package/dist/vue-components8.es.js +35 -0
  100. package/dist/vue-components9.es.js +47 -0
  101. package/package.json +35 -31
  102. package/src/components/CommandButton.vue +55 -7
  103. package/src/components/OmegaForm/OmegaArray.vue +2 -4
  104. package/src/components/OmegaForm/OmegaAutoGen.vue +2 -1
  105. package/src/components/OmegaForm/OmegaErrorsInternal.vue +1 -1
  106. package/src/components/OmegaForm/OmegaFormInput.vue +1 -1
  107. package/src/components/OmegaForm/OmegaInput.vue +7 -36
  108. package/src/components/OmegaForm/OmegaInputVuetify.vue +5 -2
  109. package/src/components/OmegaForm/OmegaInternalInput.vue +18 -10
  110. package/src/components/OmegaForm/OmegaTaggedUnion.vue +2 -1
  111. package/src/components/OmegaForm/OmegaTaggedUnionInternal.vue +1 -1
  112. package/src/components/OmegaForm/OmegaWrapper.vue +1 -1
  113. package/src/components/OmegaForm/blockDialog.ts +18 -6
  114. package/src/components/OmegaForm/createUseFormWithCustomInput.ts +2 -1
  115. package/src/components/OmegaForm/errors.ts +136 -0
  116. package/src/components/OmegaForm/getOmegaStore.ts +1 -1
  117. package/src/components/OmegaForm/hocs.ts +19 -0
  118. package/src/components/OmegaForm/index.ts +16 -4
  119. package/src/components/OmegaForm/inputs.ts +22 -0
  120. package/src/components/OmegaForm/meta/checks.ts +81 -0
  121. package/src/components/OmegaForm/meta/createMeta.ts +138 -0
  122. package/src/components/OmegaForm/meta/defaults.ts +132 -0
  123. package/src/components/OmegaForm/meta/redacted.ts +66 -0
  124. package/src/components/OmegaForm/meta/types.ts +78 -0
  125. package/src/components/OmegaForm/meta/walker.ts +248 -0
  126. package/src/components/OmegaForm/persistency.ts +247 -0
  127. package/src/components/OmegaForm/submit.ts +128 -0
  128. package/src/components/OmegaForm/types.ts +751 -0
  129. package/src/components/OmegaForm/useOmegaForm.ts +58 -893
  130. package/src/components/OmegaForm/validation/localized.ts +202 -0
  131. package/src/index.ts +0 -1
  132. package/src/reset.css +52 -0
  133. package/src/utils/index.ts +10 -7
  134. package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +0 -157
  135. package/dist/types/constants/index.d.ts +0 -1
  136. package/dist/vue-components.es10.js +0 -239
  137. package/dist/vue-components.es11.js +0 -32
  138. package/dist/vue-components.es12.js +0 -481
  139. package/dist/vue-components.es13.js +0 -49
  140. package/dist/vue-components.es14.js +0 -4
  141. package/dist/vue-components.es15.js +0 -4
  142. package/dist/vue-components.es16.js +0 -6
  143. package/dist/vue-components.es17.js +0 -13
  144. package/dist/vue-components.es18.js +0 -57
  145. package/dist/vue-components.es19.js +0 -56
  146. package/dist/vue-components.es2.js +0 -31
  147. package/dist/vue-components.es20.js +0 -8
  148. package/dist/vue-components.es21.js +0 -8
  149. package/dist/vue-components.es22.js +0 -5
  150. package/dist/vue-components.es23.js +0 -5
  151. package/dist/vue-components.es24.js +0 -4
  152. package/dist/vue-components.es25.js +0 -4
  153. package/dist/vue-components.es26.js +0 -4
  154. package/dist/vue-components.es27.js +0 -4
  155. package/dist/vue-components.es28.js +0 -19
  156. package/dist/vue-components.es29.js +0 -13
  157. package/dist/vue-components.es3.js +0 -17
  158. package/dist/vue-components.es30.js +0 -31
  159. package/dist/vue-components.es31.js +0 -6
  160. package/dist/vue-components.es32.js +0 -4
  161. package/dist/vue-components.es33.js +0 -4
  162. package/dist/vue-components.es34.js +0 -113
  163. package/dist/vue-components.es36.js +0 -9
  164. package/dist/vue-components.es37.js +0 -34
  165. package/dist/vue-components.es39.js +0 -194
  166. package/dist/vue-components.es4.js +0 -52
  167. package/dist/vue-components.es41.js +0 -6
  168. package/dist/vue-components.es42.js +0 -25
  169. package/dist/vue-components.es43.js +0 -7
  170. package/dist/vue-components.es44.js +0 -23
  171. package/dist/vue-components.es45.js +0 -32
  172. package/dist/vue-components.es46.js +0 -24
  173. package/dist/vue-components.es47.js +0 -14
  174. package/dist/vue-components.es48.js +0 -7
  175. package/dist/vue-components.es49.js +0 -21
  176. package/dist/vue-components.es5.js +0 -52
  177. package/dist/vue-components.es50.js +0 -11
  178. package/dist/vue-components.es51.js +0 -33
  179. package/dist/vue-components.es52.js +0 -50
  180. package/dist/vue-components.es53.js +0 -28
  181. package/dist/vue-components.es54.js +0 -13
  182. package/dist/vue-components.es55.js +0 -67
  183. package/dist/vue-components.es56.js +0 -58
  184. package/dist/vue-components.es57.js +0 -19
  185. package/dist/vue-components.es58.js +0 -35
  186. package/dist/vue-components.es59.js +0 -31
  187. package/dist/vue-components.es6.js +0 -69
  188. package/dist/vue-components.es60.js +0 -44
  189. package/dist/vue-components.es61.js +0 -4
  190. package/dist/vue-components.es62.js +0 -46
  191. package/dist/vue-components.es63.js +0 -4
  192. package/dist/vue-components.es7.js +0 -83
  193. package/dist/vue-components.es8.js +0 -63
  194. package/dist/vue-components.es9.js +0 -21
  195. package/src/components/OmegaForm/OmegaFormStuff.ts +0 -1184
  196. package/src/constants/index.ts +0 -1
@@ -0,0 +1,751 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import type { DeepKeys, DeepValue, FieldApi, FieldAsyncValidateOrFn, FieldState, FieldValidateOrFn, FormApi, FormAsyncValidateOrFn, FormOptions, FormState, FormValidateOrFn, StandardSchemaV1, VueFormApi } from "@tanstack/vue-form"
3
+ import type { Effect, Order, S } from "effect-app"
4
+ import type { UnionToTuples } from "effect-app/utils"
5
+ import type { Fiber as EffectFiber } from "effect/Fiber"
6
+ import type { Redacted } from "effect/Redacted"
7
+ import type { AllowedComponentProps, ComponentCustomProps, ComputedRef, PublicProps, ShallowUnwrapRef, VNode, VNodeProps } from "vue"
8
+ import type { MergedInputProps, OmegaFieldInternalApi, TaggedUnionOptionsArray } from "./InputProps"
9
+ import type { MetaRecord, NestedKeyOf } from "./meta/types"
10
+ import type { defaultValuesPriorityUnion as PersistencyPriority, Policies as PersistencyPolicies } from "./persistency"
11
+ import type { FormErrors } from "./submit"
12
+
13
+ export type FieldPath<T> = unknown extends T ? string
14
+ // technically we cannot have primitive at the root
15
+ : T extends string | boolean | number | null | undefined | symbol | bigint | Redacted<any> ? ""
16
+ // technically we cannot have array at the root
17
+ : T extends ReadonlyArray<infer U> ? FieldPath_<U, `[${number}]`>
18
+ : {
19
+ [K in keyof T]: FieldPath_<T[K], K & string>
20
+ }[keyof T]
21
+
22
+ export type FieldPath_<T, Path extends string> = unknown extends T ? string
23
+ : T extends string | boolean | number | null | undefined | symbol | bigint | Redacted<any> ? Path
24
+ : T extends ReadonlyArray<infer U> ? FieldPath_<U, `${Path}[${number}]`> | Path
25
+ : {
26
+ [K in keyof T]: FieldPath_<T[K], `${Path}.${K & string}`>
27
+ }[keyof T]
28
+
29
+ export type BaseProps<From, TName extends FieldPath<From>> = {
30
+ /**
31
+ * Will fallback to i18n when not specified.
32
+ * Can also be provided via #label slot for custom HTML labels.
33
+ * When using the slot, it receives bindings: { required, id, label }
34
+ */
35
+ label?: string
36
+ validators?: FieldValidators<From>
37
+ // Use FlexibleArrayPath: if name contains [], just use TName; otherwise intersect with Leaves<From>
38
+ name: TName
39
+ /**
40
+ * Optional class to apply to the input element.
41
+ * - If a string is provided, it will be used instead of the general class
42
+ * - If null is provided, no class will be applied (neither inputClass nor general class)
43
+ * - If undefined (not provided), the general class will be used
44
+ */
45
+ inputClass?: string | null
46
+ }
47
+
48
+ export type TypesWithOptions = "radio" | "select" | "multiple" | "autocomplete" | "autocompletemultiple"
49
+ export type DefaultTypeProps = {
50
+ type?: TypeOverride
51
+ options?: undefined
52
+ } | {
53
+ type?: TypesWithOptions
54
+ // TODO: options should depend on `type`, but since there is auto-type, we can't currently enforce it.
55
+ // hence we allow it also for type? (undefined) atm
56
+ options?: {
57
+ title: string
58
+ value: unknown
59
+ }[]
60
+ }
61
+
62
+ export type OmegaInputPropsBase<
63
+ From extends Record<PropertyKey, any>,
64
+ To extends Record<PropertyKey, any>,
65
+ Name extends DeepKeys<From>
66
+ > = {
67
+ form: OF<From, To> & {
68
+ meta: MetaRecord<From>
69
+ i18nNamespace?: string
70
+ }
71
+ } & BaseProps<From, Name>
72
+
73
+ export type OmegaInputProps<
74
+ From extends Record<PropertyKey, any>,
75
+ To extends Record<PropertyKey, any>,
76
+ Name extends DeepKeys<From>,
77
+ TypeProps = DefaultTypeProps
78
+ > = {
79
+ form: OmegaFormReturn<From, To, TypeProps> & {
80
+ meta: MetaRecord<From>
81
+ i18nNamespace?: string
82
+ }
83
+ } & BaseProps<From, Name>
84
+
85
+ export type OmegaArrayProps<
86
+ From extends Record<PropertyKey, any>,
87
+ To extends Record<PropertyKey, any>,
88
+ Name extends DeepKeys<From>
89
+ > =
90
+ & Omit<
91
+ OmegaInputProps<From, To, Name>,
92
+ "validators" | "options" | "label" | "type" | "items" | "name"
93
+ >
94
+ & {
95
+ name: DeepKeys<From>
96
+ defaultItems?: DeepValue<From, DeepKeys<From>>
97
+ // deprecated items, caused bugs in state update, use defaultItems instead. It's not a simple Never, because Volar explodes
98
+ items?: "please use `defaultItems` instead"
99
+ }
100
+
101
+ export type TypeOverride =
102
+ | "string"
103
+ | "text"
104
+ | "number"
105
+ | "select"
106
+ | "multiple"
107
+ | "boolean"
108
+ | "radio"
109
+ | "autocomplete"
110
+ | "autocompletemultiple"
111
+ | "switch"
112
+ | "range"
113
+ | "password"
114
+ | "email"
115
+ | "date"
116
+
117
+ export interface OmegaError {
118
+ label: string
119
+ inputId: string
120
+ errors: readonly string[]
121
+ }
122
+
123
+ export type FormProps<From, To> =
124
+ & Omit<
125
+ FormOptions<
126
+ From,
127
+ FormValidateOrFn<From> | undefined,
128
+ FormValidateOrFn<From> | undefined,
129
+ StandardSchemaV1<From, To>,
130
+ FormValidateOrFn<From> | undefined,
131
+ FormAsyncValidateOrFn<From> | undefined,
132
+ FormValidateOrFn<From> | undefined,
133
+ FormAsyncValidateOrFn<From> | undefined,
134
+ FormValidateOrFn<From> | undefined,
135
+ FormAsyncValidateOrFn<From> | undefined,
136
+ FormAsyncValidateOrFn<From> | undefined,
137
+ Record<string, any> | undefined // TODO
138
+ >,
139
+ | "onSubmit"
140
+ | "defaultValues"
141
+ >
142
+ & {
143
+ // when defaultValues are allowed to be undefined, then they should also be allowed to be partial
144
+ // this fixes validator issues where a defaultValue of "" leads to "requires at least 1 character", while manually emptying the field changes it to "is required"
145
+ defaultValues?: Partial<From>
146
+ onSubmit?: (props: {
147
+ formApi: OmegaFormParams<From, To>
148
+ meta: any
149
+ value: To
150
+ }) => Promise<any> | EffectFiber<any, any> | Effect.Effect<unknown, any>
151
+ }
152
+
153
+ export type OmegaFormParams<From, To> = FormApi<
154
+ From,
155
+ FormValidateOrFn<From> | undefined,
156
+ FormValidateOrFn<From> | undefined,
157
+ StandardSchemaV1<From, To>,
158
+ FormValidateOrFn<From> | undefined,
159
+ FormAsyncValidateOrFn<From> | undefined,
160
+ FormValidateOrFn<From> | undefined,
161
+ FormAsyncValidateOrFn<From> | undefined,
162
+ FormValidateOrFn<From> | undefined,
163
+ FormAsyncValidateOrFn<From> | undefined,
164
+ FormAsyncValidateOrFn<From> | undefined,
165
+ Record<string, any> | undefined
166
+ >
167
+
168
+ export type OmegaFormState<From, To> = FormState<
169
+ From,
170
+ FormValidateOrFn<From> | undefined,
171
+ FormValidateOrFn<From> | undefined,
172
+ StandardSchemaV1<From, To>,
173
+ FormValidateOrFn<From> | undefined,
174
+ FormAsyncValidateOrFn<From> | undefined,
175
+ FormValidateOrFn<From> | undefined,
176
+ FormAsyncValidateOrFn<From> | undefined,
177
+ FormValidateOrFn<From> | undefined,
178
+ FormAsyncValidateOrFn<From> | undefined,
179
+ FormAsyncValidateOrFn<From> | undefined
180
+ >
181
+
182
+ // TODO: stitch TSubmitMeta somehow
183
+ export type OmegaFormApi<From, To, TSubmitMeta = Record<string, any> | undefined> =
184
+ & OmegaFormParams<From, To>
185
+ & VueFormApi<
186
+ From,
187
+ FormValidateOrFn<From> | undefined,
188
+ FormValidateOrFn<From> | undefined,
189
+ StandardSchemaV1<From, To>,
190
+ FormValidateOrFn<From> | undefined,
191
+ FormAsyncValidateOrFn<From> | undefined,
192
+ FormValidateOrFn<From> | undefined,
193
+ FormAsyncValidateOrFn<From> | undefined,
194
+ FormValidateOrFn<From> | undefined,
195
+ FormAsyncValidateOrFn<From> | undefined,
196
+ FormAsyncValidateOrFn<From> | undefined,
197
+ TSubmitMeta
198
+ >
199
+
200
+ export type FormComponent<T, S> = VueFormApi<
201
+ T,
202
+ FormValidateOrFn<T> | undefined,
203
+ FormValidateOrFn<T> | undefined,
204
+ StandardSchemaV1<T, S>,
205
+ FormValidateOrFn<T> | undefined,
206
+ FormAsyncValidateOrFn<T> | undefined,
207
+ FormValidateOrFn<T> | undefined,
208
+ FormAsyncValidateOrFn<T> | undefined,
209
+ FormValidateOrFn<T> | undefined,
210
+ FormAsyncValidateOrFn<T> | undefined,
211
+ FormAsyncValidateOrFn<T> | undefined,
212
+ Record<string, any> | undefined
213
+ >
214
+
215
+ export type FormType<
216
+ From extends Record<PropertyKey, any>,
217
+ To extends Record<PropertyKey, any>,
218
+ Name extends DeepKeys<From>
219
+ > = OmegaFormApi<From, To> & {
220
+ Field: OmegaFieldInternalApi<From, Name>
221
+ }
222
+
223
+ export type PrefixFromDepth<
224
+ K extends string | number,
225
+ _TDepth extends any[]
226
+ > = K
227
+
228
+ export type FieldValidators<T> = {
229
+ onChangeAsync?: FieldAsyncValidateOrFn<T, any, any>
230
+ onChange?: FieldValidateOrFn<T, any, any>
231
+ onBlur?: FieldValidateOrFn<T, any, any>
232
+ onBlurAsync?: FieldAsyncValidateOrFn<T, any, any>
233
+ }
234
+
235
+ export type OmegaAutoGenMeta<
236
+ From extends Record<PropertyKey, any>,
237
+ To extends Record<PropertyKey, any>,
238
+ Name extends DeepKeys<From>
239
+ > = Omit<OmegaInputProps<From, To, Name>, "form">
240
+
241
+ type keysRule<T> =
242
+ | {
243
+ keys?: NestedKeyOf<T>[]
244
+ banKeys?: "You should only use one of banKeys or keys, not both, moron"
245
+ }
246
+ | {
247
+ keys?: "You should only use one of banKeys or keys, not both, moron"
248
+ banKeys?: NestedKeyOf<T>[]
249
+ }
250
+
251
+ export type Policies = PersistencyPolicies
252
+ export type defaultValuesPriorityUnion = PersistencyPriority
253
+
254
+ export type OmegaConfig<T> = {
255
+ i18nNamespace?: string
256
+
257
+ persistency?: {
258
+ /** Order of importance:
259
+ * - "querystring": Highest priority when persisting
260
+ * - "local" and then "session": Lower priority storage options
261
+ */
262
+ policies?: UnionToTuples<Policies>
263
+ overrideDefaultValues?: "deprecated: use defaultValuesPriority"
264
+ id?: string
265
+ } & keysRule<T>
266
+
267
+ ignorePreventCloseEvents?: boolean
268
+
269
+ /**
270
+ * Prevents browser window/tab exit when form has unsaved changes.
271
+ * Shows native browser "Leave site?" dialog.
272
+ *
273
+ * @remarks
274
+ * - Opt-in only: Must explicitly enable
275
+ * - Independent from data persistence feature
276
+ */
277
+ preventWindowExit?: "prevent" | "prevent-and-reset" | "nope"
278
+
279
+ input?: any
280
+
281
+ /**
282
+ * Default values order is: Tanstack default values passed as second parameter to useOmegaForm, then persistency
283
+ * default values from querystring or local/session storage, then defaults from schema
284
+ * You can customize the order and with omegaConfig.defaultValuesPriority
285
+ * default value = ['tanstack', 'persistency', 'schema']
286
+ */
287
+ defaultValuesPriority?: UnionToTuples<defaultValuesPriorityUnion>
288
+
289
+ defaultFromSchema?: "deprecated: use defaultValuesPriority"
290
+ }
291
+
292
+ export interface OF<From, To> extends OmegaFormApi<From, To> {
293
+ meta: MetaRecord<From>
294
+ unionMeta: Record<string, MetaRecord<From>>
295
+ clear: () => void
296
+ i18nNamespace?: string
297
+ ignorePreventCloseEvents?: boolean
298
+ registerField: (
299
+ field: ComputedRef<{
300
+ name: string
301
+ label: string
302
+ id: string
303
+ }>
304
+ ) => void
305
+ /** @experimental */
306
+ handleSubmitEffect: {
307
+ /**
308
+ * when `checkErrors` is true, the Effect will fail with `FormErrors<From>` when there are validation errors
309
+ * @experimental */
310
+ (options: { checkErrors: true; meta?: Record<string, any> }): Effect.Effect<void, FormErrors<From>>
311
+ /** @experimental */
312
+ (options?: { meta?: Record<string, any> }): Effect.Effect<void>
313
+ }
314
+ }
315
+
316
+ type __VLS_PrettifyLocal<T> =
317
+ & {
318
+ [K in keyof T]: T[K]
319
+ }
320
+ & {}
321
+
322
+ // Type aliases for Array component slots - using cached types for performance
323
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
324
+ type CachedFieldApi<
325
+ From extends Record<PropertyKey, any>,
326
+ To extends Record<PropertyKey, any>,
327
+ TypeProps = DefaultTypeProps
328
+ > = FieldApi<
329
+ From,
330
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
331
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>,
332
+ | FieldValidateOrFn<
333
+ From,
334
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
335
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
336
+ >
337
+ | undefined,
338
+ | FieldValidateOrFn<
339
+ From,
340
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
341
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
342
+ >
343
+ | undefined,
344
+ | FieldAsyncValidateOrFn<
345
+ From,
346
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
347
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
348
+ >
349
+ | undefined,
350
+ | FieldValidateOrFn<
351
+ From,
352
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
353
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
354
+ >
355
+ | undefined,
356
+ | FieldAsyncValidateOrFn<
357
+ From,
358
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
359
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
360
+ >
361
+ | undefined,
362
+ | FieldValidateOrFn<
363
+ From,
364
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
365
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
366
+ >
367
+ | undefined,
368
+ | FieldAsyncValidateOrFn<
369
+ From,
370
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
371
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
372
+ >
373
+ | undefined,
374
+ | FieldValidateOrFn<
375
+ From,
376
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
377
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
378
+ >
379
+ | undefined,
380
+ | FieldAsyncValidateOrFn<
381
+ From,
382
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
383
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
384
+ >
385
+ | undefined,
386
+ FormValidateOrFn<From> | undefined,
387
+ FormValidateOrFn<From> | undefined,
388
+ StandardSchemaV1<From, To>,
389
+ FormValidateOrFn<From> | undefined,
390
+ FormAsyncValidateOrFn<From> | undefined,
391
+ FormValidateOrFn<From> | undefined,
392
+ FormAsyncValidateOrFn<From> | undefined,
393
+ FormValidateOrFn<From> | undefined,
394
+ FormAsyncValidateOrFn<From> | undefined,
395
+ FormAsyncValidateOrFn<From> | undefined,
396
+ Record<string, any> | undefined
397
+ >
398
+
399
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
400
+ type CachedFieldState<
401
+ From extends Record<PropertyKey, any>,
402
+ To extends Record<PropertyKey, any>,
403
+ TypeProps = DefaultTypeProps
404
+ > = FieldState<
405
+ From,
406
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
407
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>,
408
+ | FieldValidateOrFn<
409
+ From,
410
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
411
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
412
+ >
413
+ | undefined,
414
+ | FieldValidateOrFn<
415
+ From,
416
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
417
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
418
+ >
419
+ | undefined,
420
+ | FieldAsyncValidateOrFn<
421
+ From,
422
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
423
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
424
+ >
425
+ | undefined,
426
+ | FieldValidateOrFn<
427
+ From,
428
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
429
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
430
+ >
431
+ | undefined,
432
+ | FieldAsyncValidateOrFn<
433
+ From,
434
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
435
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
436
+ >
437
+ | undefined,
438
+ | FieldValidateOrFn<
439
+ From,
440
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
441
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
442
+ >
443
+ | undefined,
444
+ | FieldAsyncValidateOrFn<
445
+ From,
446
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
447
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
448
+ >
449
+ | undefined,
450
+ | FieldValidateOrFn<
451
+ From,
452
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
453
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
454
+ >
455
+ | undefined,
456
+ | FieldAsyncValidateOrFn<
457
+ From,
458
+ OmegaFormReturn<From, To, TypeProps>["_keys"],
459
+ DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>
460
+ >
461
+ | undefined,
462
+ FormValidateOrFn<From> | undefined,
463
+ FormValidateOrFn<From> | undefined,
464
+ StandardSchemaV1<From, To>,
465
+ FormValidateOrFn<From> | undefined,
466
+ FormAsyncValidateOrFn<From> | undefined,
467
+ FormValidateOrFn<From> | undefined,
468
+ FormAsyncValidateOrFn<From> | undefined,
469
+ FormValidateOrFn<From> | undefined,
470
+ FormAsyncValidateOrFn<From> | undefined
471
+ >
472
+
473
+ export interface OmegaFormReturn<
474
+ From extends Record<PropertyKey, any>,
475
+ To extends Record<PropertyKey, any>,
476
+ TypeProps = DefaultTypeProps
477
+ > extends OF<From, To> {
478
+ // Pre-computed type aliases - computed ONCE for performance
479
+ _paths: FieldPath<From>
480
+ _keys: NestedKeyOf<From>
481
+ _schema: S.Codec<To, From>
482
+
483
+ // this crazy thing here is copied from the OmegaFormInput.vue.d.ts, with `From` removed as Generic, instead closed over from the From generic above..
484
+ Input: <Name extends OmegaFormReturn<From, To, TypeProps>["_paths"]>(
485
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
486
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
487
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
488
+ __VLS_setup?: Promise<{
489
+ props:
490
+ & __VLS_PrettifyLocal<
491
+ & Pick<
492
+ & Partial<{}>
493
+ & Omit<
494
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
495
+ never
496
+ >,
497
+ never
498
+ >
499
+ & TypeProps
500
+ & Partial<{}>
501
+ >
502
+ & BaseProps<From, Name>
503
+ & PublicProps
504
+ expose(exposed: ShallowUnwrapRef<{}>): void
505
+ attrs: any
506
+ slots: {
507
+ default?(props: MergedInputProps<From, Name>): void
508
+ label?: (props: { required: boolean; id: string; label: string }) => void
509
+ }
510
+ emit: {}
511
+ }>
512
+ ) => VNode & {
513
+ __ctx?: Awaited<typeof __VLS_setup>
514
+ }
515
+ Errors: (
516
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
517
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
518
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
519
+ __VLS_setup?: Promise<{
520
+ props:
521
+ & __VLS_PrettifyLocal<
522
+ & Pick<
523
+ & Partial<{}>
524
+ & Omit<
525
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
526
+ never
527
+ >,
528
+ never
529
+ >
530
+ & Partial<{}>
531
+ >
532
+ & PublicProps
533
+ expose(exposed: ShallowUnwrapRef<{}>): void
534
+ attrs: any
535
+ slots: {
536
+ default: (props: { errors: readonly OmegaError[]; showedGeneralErrors: string[] }) => void
537
+ }
538
+ emit: {}
539
+ }>
540
+ ) => VNode & {
541
+ __ctx?: Awaited<typeof __VLS_setup>
542
+ }
543
+ TaggedUnion: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(
544
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
545
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
546
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
547
+ __VLS_setup?: Promise<{
548
+ props:
549
+ & __VLS_PrettifyLocal<
550
+ & Pick<
551
+ & Partial<{}>
552
+ & Omit<
553
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
554
+ never
555
+ >,
556
+ never
557
+ >
558
+ & {
559
+ name?: Name
560
+ type?: "select" | "radio"
561
+ options: TaggedUnionOptionsArray<From, Name>
562
+ _debugName?: [NoInfer<Name>]
563
+ label?: string
564
+ }
565
+ & {}
566
+ >
567
+ & PublicProps
568
+ expose(exposed: ShallowUnwrapRef<{}>): void
569
+ attrs: any
570
+ slots: Record<
571
+ string,
572
+ (props: {
573
+ field: FieldApi<
574
+ From,
575
+ Name,
576
+ DeepValue<From, Name>,
577
+ any,
578
+ any,
579
+ any,
580
+ any,
581
+ any,
582
+ any,
583
+ any,
584
+ any,
585
+ any,
586
+ any,
587
+ any,
588
+ any,
589
+ any,
590
+ any,
591
+ any,
592
+ any,
593
+ any,
594
+ any,
595
+ any,
596
+ any
597
+ >
598
+ state: FieldState<
599
+ From,
600
+ Name,
601
+ DeepValue<From, Name>,
602
+ any,
603
+ any,
604
+ any,
605
+ any,
606
+ any,
607
+ any,
608
+ any,
609
+ any,
610
+ any,
611
+ any,
612
+ any,
613
+ any,
614
+ any,
615
+ any,
616
+ any,
617
+ any,
618
+ any,
619
+ any
620
+ >
621
+ }) => any
622
+ >
623
+ emit: {}
624
+ }>
625
+ ) => VNode & {
626
+ __ctx?: Awaited<typeof __VLS_setup>
627
+ }
628
+ Array: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(
629
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
630
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
631
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
632
+ __VLS_setup?: Promise<{
633
+ props:
634
+ & __VLS_PrettifyLocal<
635
+ & Pick<
636
+ & Partial<{}>
637
+ & Omit<
638
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
639
+ never
640
+ >,
641
+ never
642
+ >
643
+ & (Omit<OmegaArrayProps<From, To, Name>, "form">)
644
+ & {}
645
+ >
646
+ & PublicProps
647
+ expose(exposed: ShallowUnwrapRef<{}>): void
648
+ attrs: any
649
+ slots: {
650
+ "pre-array"?: (props: {
651
+ field: CachedFieldApi<From, To, TypeProps>
652
+ state: CachedFieldState<From, To, TypeProps>
653
+ }) => any
654
+ } & {
655
+ default?: (props: {
656
+ subField: CachedFieldApi<From, To, TypeProps>
657
+ subState: CachedFieldState<From, To, TypeProps>
658
+ index: number
659
+ field: CachedFieldApi<From, To, TypeProps>
660
+ }) => any
661
+ } & {
662
+ "post-array"?: (props: {
663
+ field: CachedFieldApi<From, To, TypeProps>
664
+ state: CachedFieldState<From, To, TypeProps>
665
+ }) => any
666
+ } & {
667
+ field?: (props: {
668
+ field: CachedFieldApi<From, To, TypeProps>
669
+ }) => any
670
+ }
671
+ emit: {}
672
+ }>
673
+ ) => VNode & {
674
+ __ctx?: Awaited<typeof __VLS_setup>
675
+ }
676
+
677
+ AutoGen: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(
678
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
679
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
680
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
681
+ __VLS_setup?: Promise<{
682
+ props:
683
+ & __VLS_PrettifyLocal<
684
+ Pick<
685
+ & Partial<{}>
686
+ & Omit<
687
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
688
+ never
689
+ >,
690
+ never
691
+ > & {
692
+ // form: OmegaInputProps<From, To>["form"]
693
+ pick?: OmegaFormReturn<From, To, TypeProps>["_keys"][]
694
+ omit?: OmegaFormReturn<From, To, TypeProps>["_keys"][]
695
+ labelMap?: (key: OmegaFormReturn<From, To, TypeProps>["_keys"]) => string | undefined
696
+ filterMap?: <M extends OmegaAutoGenMeta<From, To, Name>>(
697
+ key: OmegaFormReturn<From, To, TypeProps>["_keys"],
698
+ meta: M
699
+ ) => boolean | M
700
+ order?: OmegaFormReturn<From, To, TypeProps>["_keys"][]
701
+ sort?: Order.Order<OmegaAutoGenMeta<From, To, Name>>
702
+ } & {}
703
+ >
704
+ & PublicProps
705
+ expose(exposed: ShallowUnwrapRef<{}>): void
706
+ attrs: any
707
+ slots: {
708
+ default(props: {
709
+ child: OmegaAutoGenMeta<From, To, Name>
710
+ }): void
711
+ }
712
+ emit: {}
713
+ }>
714
+ ) => VNode & {
715
+ __ctx?: Awaited<typeof __VLS_setup>
716
+ }
717
+
718
+ Form: <K extends keyof OmegaFormState<To, From>>(
719
+ __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"],
720
+ __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>,
721
+ __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"],
722
+ __VLS_setup?: Promise<{
723
+ props:
724
+ & __VLS_PrettifyLocal<
725
+ Pick<
726
+ & Partial<{}>
727
+ & Omit<
728
+ {} & VNodeProps & AllowedComponentProps & ComponentCustomProps,
729
+ never
730
+ >,
731
+ never
732
+ > & {
733
+ // form: OmegaFormReturn<From, To, Props>
734
+ disabled?: boolean
735
+ subscribe?: K[]
736
+ } & {}
737
+ >
738
+ & PublicProps
739
+ expose(exposed: ShallowUnwrapRef<{}>): void
740
+ attrs: any
741
+ slots: {
742
+ default(props: {
743
+ subscribedValues: K[] extends undefined[] ? Record<string, never> : Pick<OmegaFormState<From, To>, K>
744
+ }): void
745
+ }
746
+ emit: {}
747
+ }>
748
+ ) => VNode & {
749
+ __ctx?: Awaited<typeof __VLS_setup>
750
+ }
751
+ }