@effect-app/vue-components 4.0.0-beta.22 → 4.0.0-beta.221

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