@effect-app/vue-components 4.0.0-beta.3 → 4.0.0-beta.300

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 (245) hide show
  1. package/README.md +36 -8
  2. package/dist/reset.css +52 -0
  3. package/dist/types/components/CommandButton.vue.d.ts +24 -5
  4. package/dist/types/components/Dialog.vue.d.ts +3 -1
  5. package/dist/types/components/FixedNuxtErrorBoundary.vue.d.ts +39 -0
  6. package/dist/types/components/OmegaForm/InputProps.d.ts +1 -1
  7. package/dist/types/components/OmegaForm/OmegaArray.vue.d.ts +1 -1
  8. package/dist/types/components/OmegaForm/OmegaAutoGen.vue.d.ts +1 -1
  9. package/dist/types/components/OmegaForm/OmegaErrorsInternal.vue.d.ts +1 -1
  10. package/dist/types/components/OmegaForm/OmegaFormInput.vue.d.ts +1 -1
  11. package/dist/types/components/OmegaForm/OmegaInput.vue.d.ts +1 -1
  12. package/dist/types/components/OmegaForm/OmegaInputVuetify.vue.d.ts +6 -0
  13. package/dist/types/components/OmegaForm/OmegaInternalInput.vue.d.ts +6 -9
  14. package/dist/types/components/OmegaForm/OmegaTaggedUnion.vue.d.ts +2 -2
  15. package/dist/types/components/OmegaForm/OmegaTaggedUnionInternal.vue.d.ts +3 -3
  16. package/dist/types/components/OmegaForm/OmegaWrapper.vue.d.ts +1 -1
  17. package/dist/types/components/OmegaForm/createUseFormWithCustomInput.d.ts +4 -2
  18. package/dist/types/components/OmegaForm/errors.d.ts +33 -0
  19. package/dist/types/components/OmegaForm/getOmegaStore.d.ts +1 -1
  20. package/dist/types/components/OmegaForm/hocs.d.ts +3 -0
  21. package/dist/types/components/OmegaForm/index.d.ts +14 -3
  22. package/dist/types/components/OmegaForm/inputs.d.ts +4 -0
  23. package/dist/types/components/OmegaForm/meta/checks.d.ts +4 -0
  24. package/dist/types/components/OmegaForm/meta/createMeta.d.ts +33 -0
  25. package/dist/types/components/OmegaForm/meta/defaults.d.ts +21 -0
  26. package/dist/types/components/OmegaForm/meta/redacted.d.ts +2 -0
  27. package/dist/types/components/OmegaForm/meta/types.d.ts +56 -0
  28. package/dist/types/components/OmegaForm/meta/walker.d.ts +18 -0
  29. package/dist/types/components/OmegaForm/persistency.d.ts +58 -0
  30. package/dist/types/components/OmegaForm/submit.d.ts +60 -0
  31. package/dist/types/components/OmegaForm/types.d.ts +312 -0
  32. package/dist/types/components/OmegaForm/useOmegaForm.d.ts +9 -215
  33. package/dist/types/components/OmegaForm/validation/localized.d.ts +10 -0
  34. package/dist/types/components/index.d.ts +1 -0
  35. package/dist/types/index.d.ts +0 -1
  36. package/dist/types/utils/index.d.ts +8 -9
  37. package/dist/vue-components.es.js +30 -44
  38. package/dist/vue-components10.es.js +5 -0
  39. package/dist/vue-components11.es.js +56 -0
  40. package/dist/vue-components12.es.js +5 -0
  41. package/dist/vue-components13.es.js +20 -0
  42. package/dist/vue-components14.es.js +49 -0
  43. package/dist/vue-components15.es.js +128 -0
  44. package/dist/vue-components16.es.js +65 -0
  45. package/dist/vue-components17.es.js +114 -0
  46. package/dist/vue-components18.es.js +22 -0
  47. package/dist/vue-components19.es.js +5 -0
  48. package/dist/vue-components2.es.js +11 -0
  49. package/dist/vue-components20.es.js +80 -0
  50. package/dist/vue-components21.es.js +93 -0
  51. package/dist/vue-components22.es.js +73 -0
  52. package/dist/vue-components23.es.js +12 -0
  53. package/dist/vue-components24.es.js +57 -0
  54. package/dist/vue-components25.es.js +5 -0
  55. package/dist/vue-components26.es.js +44 -0
  56. package/dist/vue-components27.es.js +5 -0
  57. package/dist/vue-components28.es.js +84 -0
  58. package/dist/vue-components3.es.js +98 -0
  59. package/dist/vue-components30.es.js +8 -0
  60. package/dist/vue-components31.es.js +9 -0
  61. package/dist/vue-components32.es.js +24 -0
  62. package/dist/vue-components33.es.js +300 -0
  63. package/dist/vue-components35.es.js +8 -0
  64. package/dist/vue-components36.es.js +73 -0
  65. package/dist/vue-components37.es.js +5 -0
  66. package/dist/vue-components38.es.js +64 -0
  67. package/dist/vue-components39.es.js +5 -0
  68. package/dist/vue-components4.es.js +5 -0
  69. package/dist/vue-components40.es.js +24 -0
  70. package/dist/vue-components41.es.js +5 -0
  71. package/dist/vue-components42.es.js +59 -0
  72. package/dist/vue-components43.es.js +5 -0
  73. package/dist/vue-components44.es.js +12 -0
  74. package/dist/vue-components45.es.js +22 -0
  75. package/dist/vue-components47.es.js +9 -0
  76. package/dist/vue-components48.es.js +4 -0
  77. package/dist/vue-components49.es.js +38 -0
  78. package/dist/vue-components5.es.js +24 -0
  79. package/dist/vue-components50.es.js +27 -0
  80. package/dist/vue-components51.es.js +28 -0
  81. package/dist/vue-components52.es.js +7 -0
  82. package/dist/vue-components53.es.js +18 -0
  83. package/dist/vue-components54.es.js +36 -0
  84. package/dist/vue-components55.es.js +18 -0
  85. package/dist/vue-components56.es.js +21 -0
  86. package/dist/vue-components57.es.js +30 -0
  87. package/dist/vue-components58.es.js +7 -0
  88. package/dist/vue-components59.es.js +9 -0
  89. package/dist/vue-components6.es.js +13 -0
  90. package/dist/vue-components60.es.js +38 -0
  91. package/dist/vue-components61.es.js +25 -0
  92. package/dist/vue-components62.es.js +128 -0
  93. package/dist/vue-components63.es.js +24 -0
  94. package/dist/vue-components64.es.js +21 -0
  95. package/dist/vue-components65.es.js +9 -0
  96. package/dist/vue-components66.es.js +19 -0
  97. package/dist/vue-components67.es.js +5 -0
  98. package/dist/vue-components68.es.js +29 -0
  99. package/dist/vue-components69.es.js +5 -0
  100. package/dist/vue-components7.es.js +13 -0
  101. package/dist/vue-components70.es.js +43 -0
  102. package/dist/vue-components71.es.js +101 -0
  103. package/dist/vue-components72.es.js +36 -0
  104. package/dist/vue-components73.es.js +19 -0
  105. package/dist/vue-components74.es.js +50 -0
  106. package/dist/vue-components8.es.js +35 -0
  107. package/dist/vue-components9.es.js +47 -0
  108. package/package.json +44 -34
  109. package/src/components/CommandButton.vue +96 -16
  110. package/src/components/Dialog.vue +0 -1
  111. package/src/components/FixedNuxtErrorBoundary.vue +112 -0
  112. package/src/components/OmegaForm/InputProps.ts +1 -1
  113. package/src/components/OmegaForm/OmegaArray.vue +8 -9
  114. package/src/components/OmegaForm/OmegaAutoGen.vue +26 -30
  115. package/src/components/OmegaForm/OmegaErrorsInternal.vue +3 -4
  116. package/src/components/OmegaForm/OmegaFormInput.vue +1 -1
  117. package/src/components/OmegaForm/OmegaInput.vue +26 -40
  118. package/src/components/OmegaForm/OmegaInputVuetify.vue +58 -8
  119. package/src/components/OmegaForm/OmegaInternalInput.vue +41 -18
  120. package/src/components/OmegaForm/OmegaTaggedUnion.vue +10 -3
  121. package/src/components/OmegaForm/OmegaTaggedUnionInternal.vue +6 -6
  122. package/src/components/OmegaForm/OmegaWrapper.vue +1 -1
  123. package/src/components/OmegaForm/blockDialog.ts +18 -6
  124. package/src/components/OmegaForm/createUseFormWithCustomInput.ts +16 -14
  125. package/src/components/OmegaForm/errors.ts +136 -0
  126. package/src/components/OmegaForm/getOmegaStore.ts +1 -1
  127. package/src/components/OmegaForm/hocs.ts +19 -0
  128. package/src/components/OmegaForm/index.ts +17 -4
  129. package/src/components/OmegaForm/inputs.ts +22 -0
  130. package/src/components/OmegaForm/meta/checks.ts +82 -0
  131. package/src/components/OmegaForm/meta/createMeta.ts +140 -0
  132. package/src/components/OmegaForm/meta/defaults.ts +261 -0
  133. package/src/components/OmegaForm/meta/redacted.ts +66 -0
  134. package/src/components/OmegaForm/meta/types.ts +78 -0
  135. package/src/components/OmegaForm/meta/walker.ts +248 -0
  136. package/src/components/OmegaForm/persistency.ts +247 -0
  137. package/src/components/OmegaForm/submit.ts +131 -0
  138. package/src/components/OmegaForm/types.ts +801 -0
  139. package/src/components/OmegaForm/useOmegaForm.ts +103 -898
  140. package/src/components/OmegaForm/useRegisterField.ts +1 -1
  141. package/src/components/OmegaForm/validation/localized.ts +203 -0
  142. package/src/components/index.ts +1 -0
  143. package/src/index.ts +0 -1
  144. package/src/reset.css +52 -0
  145. package/src/utils/index.ts +10 -11
  146. package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +0 -157
  147. package/dist/types/constants/index.d.ts +0 -1
  148. package/dist/vue-components.es10.js +0 -237
  149. package/dist/vue-components.es100.js +0 -4
  150. package/dist/vue-components.es11.js +0 -32
  151. package/dist/vue-components.es12.js +0 -439
  152. package/dist/vue-components.es13.js +0 -49
  153. package/dist/vue-components.es14.js +0 -4
  154. package/dist/vue-components.es15.js +0 -4
  155. package/dist/vue-components.es16.js +0 -725
  156. package/dist/vue-components.es17.js +0 -143
  157. package/dist/vue-components.es18.js +0 -6
  158. package/dist/vue-components.es19.js +0 -13
  159. package/dist/vue-components.es2.js +0 -30
  160. package/dist/vue-components.es20.js +0 -5
  161. package/dist/vue-components.es21.js +0 -26
  162. package/dist/vue-components.es22.js +0 -6
  163. package/dist/vue-components.es23.js +0 -10
  164. package/dist/vue-components.es24.js +0 -57
  165. package/dist/vue-components.es25.js +0 -71
  166. package/dist/vue-components.es26.js +0 -8
  167. package/dist/vue-components.es27.js +0 -8
  168. package/dist/vue-components.es28.js +0 -5
  169. package/dist/vue-components.es29.js +0 -5
  170. package/dist/vue-components.es3.js +0 -16
  171. package/dist/vue-components.es30.js +0 -4
  172. package/dist/vue-components.es31.js +0 -4
  173. package/dist/vue-components.es32.js +0 -4
  174. package/dist/vue-components.es33.js +0 -4
  175. package/dist/vue-components.es34.js +0 -19
  176. package/dist/vue-components.es35.js +0 -13
  177. package/dist/vue-components.es36.js +0 -40
  178. package/dist/vue-components.es37.js +0 -6
  179. package/dist/vue-components.es38.js +0 -85
  180. package/dist/vue-components.es39.js +0 -54
  181. package/dist/vue-components.es4.js +0 -52
  182. package/dist/vue-components.es40.js +0 -563
  183. package/dist/vue-components.es41.js +0 -43
  184. package/dist/vue-components.es42.js +0 -29
  185. package/dist/vue-components.es43.js +0 -7
  186. package/dist/vue-components.es44.js +0 -42
  187. package/dist/vue-components.es45.js +0 -316
  188. package/dist/vue-components.es46.js +0 -33
  189. package/dist/vue-components.es47.js +0 -6
  190. package/dist/vue-components.es48.js +0 -26
  191. package/dist/vue-components.es49.js +0 -77
  192. package/dist/vue-components.es5.js +0 -52
  193. package/dist/vue-components.es50.js +0 -101
  194. package/dist/vue-components.es51.js +0 -4
  195. package/dist/vue-components.es52.js +0 -320
  196. package/dist/vue-components.es53.js +0 -66
  197. package/dist/vue-components.es54.js +0 -4
  198. package/dist/vue-components.es55.js +0 -4
  199. package/dist/vue-components.es56.js +0 -113
  200. package/dist/vue-components.es58.js +0 -9
  201. package/dist/vue-components.es59.js +0 -34
  202. package/dist/vue-components.es6.js +0 -69
  203. package/dist/vue-components.es61.js +0 -194
  204. package/dist/vue-components.es63.js +0 -6
  205. package/dist/vue-components.es64.js +0 -103
  206. package/dist/vue-components.es65.js +0 -84
  207. package/dist/vue-components.es66.js +0 -17
  208. package/dist/vue-components.es67.js +0 -34
  209. package/dist/vue-components.es68.js +0 -4
  210. package/dist/vue-components.es69.js +0 -23
  211. package/dist/vue-components.es7.js +0 -83
  212. package/dist/vue-components.es70.js +0 -14
  213. package/dist/vue-components.es71.js +0 -115
  214. package/dist/vue-components.es72.js +0 -5
  215. package/dist/vue-components.es73.js +0 -4
  216. package/dist/vue-components.es74.js +0 -4
  217. package/dist/vue-components.es75.js +0 -17
  218. package/dist/vue-components.es76.js +0 -72
  219. package/dist/vue-components.es77.js +0 -25
  220. package/dist/vue-components.es78.js +0 -7
  221. package/dist/vue-components.es79.js +0 -23
  222. package/dist/vue-components.es8.js +0 -63
  223. package/dist/vue-components.es80.js +0 -32
  224. package/dist/vue-components.es81.js +0 -24
  225. package/dist/vue-components.es82.js +0 -14
  226. package/dist/vue-components.es83.js +0 -7
  227. package/dist/vue-components.es84.js +0 -21
  228. package/dist/vue-components.es85.js +0 -11
  229. package/dist/vue-components.es86.js +0 -33
  230. package/dist/vue-components.es87.js +0 -50
  231. package/dist/vue-components.es88.js +0 -28
  232. package/dist/vue-components.es89.js +0 -18
  233. package/dist/vue-components.es9.js +0 -21
  234. package/dist/vue-components.es90.js +0 -10
  235. package/dist/vue-components.es91.js +0 -13
  236. package/dist/vue-components.es92.js +0 -67
  237. package/dist/vue-components.es93.js +0 -58
  238. package/dist/vue-components.es94.js +0 -19
  239. package/dist/vue-components.es95.js +0 -35
  240. package/dist/vue-components.es96.js +0 -31
  241. package/dist/vue-components.es97.js +0 -44
  242. package/dist/vue-components.es98.js +0 -4
  243. package/dist/vue-components.es99.js +0 -46
  244. package/src/components/OmegaForm/OmegaFormStuff.ts +0 -1174
  245. package/src/constants/index.ts +0 -1
@@ -1,216 +1,10 @@
1
- import { type DeepKeys, DeepValue, StandardSchemaV1Issue, ValidationError, ValidationErrorMap } from "@tanstack/vue-form";
2
- import { UnionToTuples } from "effect-app/utils";
3
- import * as Effect from "effect/Effect";
4
- import * as Order from "effect/Order";
5
- import * as S from "effect/Schema";
6
- import { ComputedRef, type InjectionKey } from "vue";
7
- import { MergedInputProps } from "./InputProps";
8
- import { BaseProps, DefaultTypeProps, FieldPath, type FormProps, type MetaRecord, type NestedKeyOf, OmegaArrayProps, OmegaAutoGenMeta, OmegaError, type OmegaFormApi, OmegaFormState } from "./OmegaFormStuff";
9
- type keysRule<T> = {
10
- keys?: NestedKeyOf<T>[];
11
- banKeys?: "You should only use one of banKeys or keys, not both, moron";
12
- } | {
13
- keys?: "You should only use one of banKeys or keys, not both, moron";
14
- banKeys?: NestedKeyOf<T>[];
15
- };
16
- declare const FormErrors_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").MatchRecord<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }, void, { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
17
- readonly _tag: "FormErrors";
18
- } & Readonly<A>;
19
- export declare class FormErrors<From> extends FormErrors_base<{
20
- form: {
21
- errors: (Record<string, StandardSchemaV1Issue[]> | undefined)[];
22
- errorMap: ValidationErrorMap<undefined, undefined, Record<string, StandardSchemaV1Issue[]>, undefined, undefined, undefined, undefined, undefined, undefined, undefined>;
23
- };
24
- fields: Record<DeepKeys<From>, {
25
- errors: ValidationError[];
26
- errorMap: ValidationErrorMap;
27
- }>;
28
- }> {
29
- }
30
- export declare const useErrorLabel: (form: OF<any, any>) => (propsName: string) => string;
31
- export type Policies = "local" | "session" | "querystring";
32
- export type defaultValuesPriorityUnion = "tanstack" | "persistency" | "schema";
33
- export type OmegaConfig<T> = {
34
- i18nNamespace?: string;
35
- persistency?: {
36
- /** Order of importance:
37
- * - "querystring": Highest priority when persisting
38
- * - "local" and then "session": Lower priority storage options
39
- */
40
- policies?: UnionToTuples<Policies>;
41
- overrideDefaultValues?: "deprecated: use defaultValuesPriority";
42
- id?: string;
43
- } & keysRule<T>;
44
- ignorePreventCloseEvents?: boolean;
45
- /**
46
- * Prevents browser window/tab exit when form has unsaved changes.
47
- * Shows native browser "Leave site?" dialog.
48
- *
49
- * @remarks
50
- * - Opt-in only: Must explicitly enable
51
- * - Independent from data persistence feature
52
- */
53
- preventWindowExit?: "prevent" | "prevent-and-reset" | "nope";
54
- input?: any;
55
- /**
56
- * Default values order is: Tanstack default values passed as second parameter to useOmegaForm, then persistency
57
- * default values from querystring or local/session storage, then defaults from schema
58
- * You can customize the order and with omegaConfig.defaultValuesPriority
59
- * default value = ['tanstack', 'persistency', 'schema']
60
- */
61
- defaultValuesPriority?: UnionToTuples<defaultValuesPriorityUnion>;
62
- defaultFromSchema?: "deprecated: use defaultValuesPriority";
63
- };
64
- export interface OF<From, To> extends OmegaFormApi<From, To> {
65
- meta: MetaRecord<From>;
66
- unionMeta: Record<string, MetaRecord<From>>;
67
- clear: () => void;
68
- i18nNamespace?: string;
69
- ignorePreventCloseEvents?: boolean;
70
- registerField: (field: ComputedRef<{
71
- name: string;
72
- label: string;
73
- id: string;
74
- }>) => void;
75
- /** @experimental */
76
- handleSubmitEffect: {
77
- /**
78
- * when `checkErrors` is true, the Effect will fail with `FormErrors<From>` when there are validation errors
79
- * @experimental */
80
- (options: {
81
- checkErrors: true;
82
- meta?: Record<string, any>;
83
- }): Effect.Effect<void, FormErrors<From>>;
84
- /** @experimental */
85
- (options?: {
86
- meta?: Record<string, any>;
87
- }): Effect.Effect<void>;
88
- };
89
- }
1
+ import * as S from "effect-app/Schema";
2
+ import { type InjectionKey } from "vue";
3
+ import type { FormProps, OF, OmegaConfig, OmegaFormReturn, TypePropsFor } from "./types";
4
+ export { useErrorLabel } from "./errors";
5
+ export { FormErrors } from "./submit";
6
+ export type { defaultValuesPriorityUnion, OF, OmegaConfig, OmegaFormReturn, Policies } from "./types";
90
7
  export declare const OmegaFormKey: InjectionKey<OF<any, any>>;
91
- type __VLS_PrettifyLocal<T> = {
92
- [K in keyof T]: T[K];
93
- } & {};
94
- type CachedFieldApi<From, To, TypeProps = DefaultTypeProps> = import("@tanstack/vue-form").FieldApi<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, Record<string, any> | undefined>;
95
- type CachedFieldState<From, To, TypeProps = DefaultTypeProps> = import("@tanstack/vue-form").FieldState<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FieldAsyncValidateOrFn<From, OmegaFormReturn<From, To, TypeProps>["_keys"], DeepValue<From, OmegaFormReturn<From, To, TypeProps>["_keys"]>> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").StandardSchemaV1<From, To>, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormValidateOrFn<From> | undefined, import("@tanstack/vue-form").FormAsyncValidateOrFn<From> | undefined>;
96
- export interface OmegaFormReturn<From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, TypeProps = DefaultTypeProps> extends OF<From, To> {
97
- _paths: FieldPath<From>;
98
- _keys: DeepKeys<From>;
99
- _schema: S.Codec<To, From, never>;
100
- Input: <Name extends OmegaFormReturn<From, To, TypeProps>["_paths"]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
101
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & TypeProps & Partial<{}>> & BaseProps<From, Name> & import("vue").PublicProps;
102
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
103
- attrs: any;
104
- slots: {
105
- default?(props: MergedInputProps<From, Name>): void;
106
- label?: (props: {
107
- required: boolean;
108
- id: string;
109
- label: string;
110
- }) => void;
111
- };
112
- emit: {};
113
- }>) => import("vue").VNode & {
114
- __ctx?: Awaited<typeof __VLS_setup>;
115
- };
116
- Errors: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
117
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & Partial<{}>> & import("vue").PublicProps;
118
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
119
- attrs: any;
120
- slots: {
121
- default: (props: {
122
- errors: readonly OmegaError[];
123
- showedGeneralErrors: string[];
124
- }) => void;
125
- };
126
- emit: {};
127
- }>) => import("vue").VNode & {
128
- __ctx?: Awaited<typeof __VLS_setup>;
129
- };
130
- TaggedUnion: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
131
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & {
132
- name?: Name;
133
- type?: "select" | "radio";
134
- options: import("./InputProps").TaggedUnionOptionsArray<From, Name>;
135
- _debugName?: [NoInfer<Name>];
136
- label?: string;
137
- } & {}> & import("vue").PublicProps;
138
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
139
- attrs: any;
140
- slots: Record<string, (props: {
141
- field: import("@tanstack/vue-form").FieldApi<From, Name, DeepValue<From, Name>, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>;
142
- state: import("@tanstack/vue-form").FieldState<From, Name, DeepValue<From, Name>, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>;
143
- }) => any>;
144
- emit: {};
145
- }>) => import("vue").VNode & {
146
- __ctx?: Awaited<typeof __VLS_setup>;
147
- };
148
- Array: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
149
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & (Omit<OmegaArrayProps<From, To, Name>, "form">) & {}> & import("vue").PublicProps;
150
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
151
- attrs: any;
152
- slots: {
153
- "pre-array"?: (props: {
154
- field: CachedFieldApi<From, To, TypeProps>;
155
- state: CachedFieldState<From, To, TypeProps>;
156
- }) => any;
157
- } & {
158
- default?: (props: {
159
- subField: CachedFieldApi<From, To, TypeProps>;
160
- subState: CachedFieldState<From, To, TypeProps>;
161
- index: number;
162
- field: CachedFieldApi<From, To, TypeProps>;
163
- }) => any;
164
- } & {
165
- "post-array"?: (props: {
166
- field: CachedFieldApi<From, To, TypeProps>;
167
- state: CachedFieldState<From, To, TypeProps>;
168
- }) => any;
169
- } & {
170
- field?: (props: {
171
- field: CachedFieldApi<From, To, TypeProps>;
172
- }) => any;
173
- };
174
- emit: {};
175
- }>) => import("vue").VNode & {
176
- __ctx?: Awaited<typeof __VLS_setup>;
177
- };
178
- AutoGen: <Name extends OmegaFormReturn<From, To, TypeProps>["_keys"]>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
179
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & {
180
- pick?: OmegaFormReturn<From, To, TypeProps>["_keys"][];
181
- omit?: OmegaFormReturn<From, To, TypeProps>["_keys"][];
182
- labelMap?: (key: OmegaFormReturn<From, To, TypeProps>["_keys"]) => string | undefined;
183
- filterMap?: <M extends OmegaAutoGenMeta<From, To, Name>>(key: OmegaFormReturn<From, To, TypeProps>["_keys"], meta: M) => boolean | M;
184
- order?: OmegaFormReturn<From, To, TypeProps>["_keys"][];
185
- sort?: Order.Order<OmegaAutoGenMeta<From, To, Name>>;
186
- } & {}> & import("vue").PublicProps;
187
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
188
- attrs: any;
189
- slots: {
190
- default(props: {
191
- child: OmegaAutoGenMeta<From, To, Name>;
192
- }): void;
193
- };
194
- emit: {};
195
- }>) => import("vue").VNode & {
196
- __ctx?: Awaited<typeof __VLS_setup>;
197
- };
198
- Form: <K extends keyof OmegaFormState<To, From>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
199
- props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, never>, never> & {
200
- disabled?: boolean;
201
- subscribe?: K[];
202
- } & {}> & import("vue").PublicProps;
203
- expose(exposed: import("vue").ShallowUnwrapRef<{}>): void;
204
- attrs: any;
205
- slots: {
206
- default(props: {
207
- subscribedValues: K[] extends undefined[] ? Record<string, never> : Pick<OmegaFormState<From, To>, K>;
208
- }): void;
209
- };
210
- emit: {};
211
- }>) => import("vue").VNode & {
212
- __ctx?: Awaited<typeof __VLS_setup>;
213
- };
214
- }
215
- export declare const useOmegaForm: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, TypeProps = DefaultTypeProps>(schema: S.Codec<To, From, never>, tanstackFormOptions?: NoInfer<FormProps<From, To>>, omegaConfig?: OmegaConfig<To>) => OmegaFormReturn<From, To, TypeProps>;
216
- export {};
8
+ export declare const useOmegaForm: <From extends Record<PropertyKey, any>, To extends Record<PropertyKey, any>, const Cfg extends OmegaConfig<To> = OmegaConfig<To>>(schema: S.Codec<To, From>, tanstackFormOptions?: NoInfer<FormProps<From, To>>, omegaConfig?: Cfg) => OmegaFormReturn<From, To, TypePropsFor<Cfg extends {
9
+ inputs?: infer I;
10
+ } ? I : {}>>;
@@ -0,0 +1,10 @@
1
+ import type { StandardSchemaV1 } from "@tanstack/vue-form";
2
+ import * as S from "effect-app/Schema";
3
+ import type { useIntl } from "../../../utils";
4
+ export type TransFn = ReturnType<typeof useIntl>["trans"];
5
+ export declare const makeStandardSchemaV1Hooks: (trans: TransFn) => {
6
+ leafHook: S.SchemaIssue.LeafHook;
7
+ checkHook: S.SchemaIssue.CheckHook;
8
+ };
9
+ export declare const toLocalizedStandardSchemaV1: <To, From>(schema: S.Codec<To, From>, trans: TransFn) => StandardSchemaV1<From, To>;
10
+ export declare const annotateLiteralUnionMessages: <To, From>(schema: S.Codec<To, From>, trans: TransFn) => S.Codec<To, From>;
@@ -1,3 +1,4 @@
1
1
  export { default as CommandButton } from "./CommandButton.vue";
2
2
  export { default as Dialog } from "./Dialog.vue";
3
+ export { default as FixedNuxtErrorBoundary } from "./FixedNuxtErrorBoundary.vue";
3
4
  export * from "./OmegaForm";
@@ -5,5 +5,4 @@ declare const _default: {
5
5
  };
6
6
  export default _default;
7
7
  export * from "./components";
8
- export * from "./constants";
9
8
  export * from "./utils";
@@ -1,20 +1,19 @@
1
- import { type makeIntl } from "@effect-app/vue";
2
- import { type S } from "effect-app";
1
+ import { type makeIntl } from "@effect-app/vue/makeIntl";
2
+ import type * as S from "effect-app/Schema";
3
3
  import { type InjectionKey } from "vue";
4
4
  export declare const useIntlKey: InjectionKey<ReturnType<typeof makeIntl>["useIntl"]>;
5
5
  export declare const useIntl: () => {
6
6
  locale: import("vue").Ref<string, string>;
7
7
  trans: (id: string, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>) => string;
8
8
  readonly formatMessage: (descriptor: import("@formatjs/intl").MessageDescriptor, values?: Record<string, import("intl-messageformat").PrimitiveType | import("intl-messageformat").FormatXMLElementFn<string, string>>, opts?: import("intl-messageformat").Options) => string;
9
- readonly intl: import("@effect-app/vue").IntlShape<string>;
9
+ readonly intl: import("@effect-app/vue/makeIntl").IntlShape<Locale>;
10
10
  };
11
11
  export declare const provideIntl: (intl: ReturnType<typeof makeIntl>["useIntl"]) => void;
12
12
  /**
13
- * Recursively extracts the source AST from a transformation chain.
14
- * In v4, transformations are stored in the `encoding` property, not as wrapped AST nodes.
15
- * This function returns the encoded form if an encoding chain exists, otherwise returns the AST itself.
16
- *
17
- * @param ast - The AST node to extract the transformation source from
18
- * @returns The source AST (the decoded/type form, which is the AST itself in v4)
13
+ * Walks the encoding chain of the given AST node to its source (encoded)
14
+ * side. Shallow does not recurse into children, so inner prop-level
15
+ * transformations (e.g. `FiniteFromString`) keep their decoded shape
16
+ * while struct-level `decodeTo` transformations are unwrapped to their
17
+ * input side (e.g. `NonNegativeInt` rather than the decoded `PositiveInt`).
19
18
  */
20
19
  export declare function getTransformationFrom(ast: S.AST.AST): S.AST.AST;
@@ -1,45 +1,31 @@
1
- import * as o from "./vue-components.es2.js";
2
- import { getTransformationFrom as p, provideIntl as l, useIntl as s, useIntlKey as u } from "./vue-components.es3.js";
3
- import { default as i } from "./vue-components.es4.js";
4
- import { default as g } from "./vue-components.es5.js";
5
- import { default as I } from "./vue-components.es6.js";
6
- import { default as y } from "./vue-components.es7.js";
7
- import { default as h } from "./vue-components.es8.js";
8
- import { default as C } from "./vue-components.es9.js";
9
- import { useOmegaForm as T } from "./vue-components.es10.js";
10
- import { useOnClose as b, usePreventClose as j } from "./vue-components.es11.js";
11
- import { createMeta as P, deepMerge as V, defaultsValueFromSchema as k, duplicateSchema as w, generateInputStandardSchemaFromFieldMeta as B, generateMetaFromSchema as D, getInputType as K, isNullableOrUndefined as N } from "./vue-components.es12.js";
12
- import { createUseFormWithCustomInput as $ } from "./vue-components.es13.js";
13
- function r(a) {
14
- for (const e in o)
15
- if (Object.prototype.hasOwnProperty.call(o, e)) {
16
- const t = o[e];
17
- t && typeof t == "object" && a.component(e, t);
18
- }
1
+ import e from "./vue-components4.es.js";
2
+ import { getTransformationFrom as t, provideIntl as n, useIntl as r, useIntlKey as i } from "./vue-components6.es.js";
3
+ import { useOnClose as a, usePreventClose as o } from "./vue-components8.es.js";
4
+ import s from "./vue-components10.es.js";
5
+ import c from "./vue-components12.es.js";
6
+ import { getInputType as l } from "./vue-components13.es.js";
7
+ import { createMeta as u, generateMetaFromSchema as d, isNullableOrUndefined as f, metadataFromAst as p } from "./vue-components16.es.js";
8
+ import { defaultsValueFromSchema as m } from "./vue-components17.es.js";
9
+ import { toFormSchema as h } from "./vue-components18.es.js";
10
+ import { deepMerge as g } from "./vue-components20.es.js";
11
+ import { makeStandardSchemaV1Hooks as _, toLocalizedStandardSchemaV1 as v } from "./vue-components21.es.js";
12
+ import { useErrorLabel as y } from "./vue-components22.es.js";
13
+ import b from "./vue-components37.es.js";
14
+ import x from "./vue-components39.es.js";
15
+ import S from "./vue-components41.es.js";
16
+ import C from "./vue-components43.es.js";
17
+ import { FormErrors as w } from "./vue-components70.es.js";
18
+ import { OmegaFormKey as T, useOmegaForm as E } from "./vue-components71.es.js";
19
+ import { createUseFormWithCustomInput as D } from "./vue-components72.es.js";
20
+ import { duplicateSchema as O } from "./vue-components73.es.js";
21
+ import { components_exports as k } from "./vue-components74.es.js";
22
+ //#region src/index.ts
23
+ function A(e) {
24
+ for (let t in k) if (Object.prototype.hasOwnProperty.call(k, t)) {
25
+ let n = k[t];
26
+ n && typeof n == "object" && e.component(t, n);
27
+ }
19
28
  }
20
- const n = { install: r };
21
- export {
22
- i as CommandButton,
23
- g as Dialog,
24
- I as OmegaInput,
25
- h as OmegaTaggedUnion,
26
- C as OmegaTaggedUnionInternal,
27
- y as OmegaVuetifyInput,
28
- P as createMeta,
29
- $ as createUseFormWithCustomInput,
30
- V as deepMerge,
31
- n as default,
32
- k as defaultsValueFromSchema,
33
- w as duplicateSchema,
34
- B as generateInputStandardSchemaFromFieldMeta,
35
- D as generateMetaFromSchema,
36
- K as getInputType,
37
- p as getTransformationFrom,
38
- N as isNullableOrUndefined,
39
- l as provideIntl,
40
- s as useIntl,
41
- u as useIntlKey,
42
- T as useOmegaForm,
43
- b as useOnClose,
44
- j as usePreventClose
45
- };
29
+ var j = { install: A };
30
+ //#endregion
31
+ export { e as CommandButton, s as Dialog, c as FixedNuxtErrorBoundary, w as FormErrors, T as OmegaFormKey, x as OmegaInput, C as OmegaTaggedUnion, S as OmegaTaggedUnionInternal, b as OmegaVuetifyInput, u as createMeta, D as createUseFormWithCustomInput, g as deepMerge, j as default, m as defaultsValueFromSchema, O as duplicateSchema, d as generateMetaFromSchema, l as getInputType, t as getTransformationFrom, f as isNullableOrUndefined, _ as makeStandardSchemaV1Hooks, p as metadataFromAst, n as provideIntl, h as toFormSchema, v as toLocalizedStandardSchemaV1, y as useErrorLabel, r as useIntl, i as useIntlKey, E as useOmegaForm, a as useOnClose, o as usePreventClose };
@@ -0,0 +1,5 @@
1
+ import e from "./vue-components9.es.js";
2
+ //#region src/components/Dialog.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,56 @@
1
+ import { defineComponent as e, mergeProps as t, normalizeProps as n, onErrorCaptured as r, renderSlot as i, shallowRef as a } from "vue";
2
+ import { CauseException as o } from "effect-app/client";
3
+ import * as s from "effect/Cause";
4
+ import { useRouter as c } from "vue-router";
5
+ //#region src/components/FixedNuxtErrorBoundary.vue?vue&type=script&setup=true&lang.ts
6
+ var l = /*@__PURE__*/ e({
7
+ name: "NuxtErrorBoundary",
8
+ inheritAttrs: !1,
9
+ __name: "FixedNuxtErrorBoundary",
10
+ props: {
11
+ captureException: {},
12
+ toastError: {},
13
+ debug: { type: Boolean },
14
+ enabled: {
15
+ type: Boolean,
16
+ default: !0
17
+ },
18
+ scheduleAfterReady: {},
19
+ onHandled: {}
20
+ },
21
+ emits: ["error"],
22
+ setup(e, { expose: l, emit: u }) {
23
+ let d = e, f = u, p = a(null);
24
+ function m() {
25
+ p.value = null;
26
+ }
27
+ let h = [
28
+ "https://vuejs.org/error-reference/#runtime-0",
29
+ 0,
30
+ "0",
31
+ "setup function"
32
+ ];
33
+ function g(...e) {
34
+ let [t, n, r] = e, i = t instanceof o ? t : null;
35
+ if (console.warn("NuxtErrorBoundary caught error in " + r + ": " + (i ? "CauseException" : "classic error"), i ? s.pretty(i.originalCause) : t, n), !h.includes(r)) {
36
+ d.captureException(t, { extra: {
37
+ info: r,
38
+ instance: n
39
+ } }), d.debug && d.toastError("An unexpected error has occurred: " + t.toString());
40
+ return;
41
+ }
42
+ i && s.hasInterruptsOnly(i.originalCause) || (f("error", t), d.onHandled?.(t, n, r), p.value = t);
43
+ }
44
+ return d.enabled && r((e, t, n) => (d.scheduleAfterReady ? d.scheduleAfterReady(() => g(e, t, n)) : g(e, t, n), !1)), c().afterEach(() => {
45
+ m();
46
+ }), l({
47
+ error: p,
48
+ clearError: m
49
+ }), (e, r) => p.value ? i(e.$slots, "error", n(t({ key: 0 }, {
50
+ error: p.value,
51
+ clearError: m
52
+ }))) : i(e.$slots, "default", { key: 1 });
53
+ }
54
+ });
55
+ //#endregion
56
+ export { l as default };
@@ -0,0 +1,5 @@
1
+ import e from "./vue-components11.es.js";
2
+ //#region src/components/FixedNuxtErrorBoundary.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
@@ -0,0 +1,20 @@
1
+ //#region src/components/OmegaForm/inputs.ts
2
+ var e = [
3
+ "button",
4
+ "checkbox",
5
+ "color",
6
+ "date",
7
+ "email",
8
+ "number",
9
+ "password",
10
+ "radio",
11
+ "range",
12
+ "search",
13
+ "submit",
14
+ "tel",
15
+ "text",
16
+ "time",
17
+ "url"
18
+ ], t = (t) => e.includes(t) ? t : "text";
19
+ //#endregion
20
+ export { t as getInputType };
@@ -0,0 +1,49 @@
1
+ import * as e from "effect-app/Schema";
2
+ //#region src/components/OmegaForm/meta/checks.ts
3
+ var t = (e) => (e.checks ?? []).flatMap((e) => {
4
+ if (e._tag === "FilterGroup") return e.checks.flatMap((e) => {
5
+ let t = e.annotations?.meta;
6
+ return t && typeof t == "object" ? [t] : [];
7
+ });
8
+ let t = e.annotations?.meta;
9
+ return t && typeof t == "object" ? [t] : [];
10
+ }), n = (n) => {
11
+ let r = { description: e.AST.resolveDescription(n) }, i = t(n);
12
+ if (e.AST.isString(n)) {
13
+ r.type = "string";
14
+ for (let e of i) switch (e._tag) {
15
+ case "isMinLength":
16
+ r.minLength = e.minLength;
17
+ break;
18
+ case "isMaxLength":
19
+ r.maxLength = e.maxLength;
20
+ break;
21
+ }
22
+ n.annotations?.format === "email" && (r.format = "email");
23
+ } else if (e.AST.isNumber(n)) {
24
+ r.type = "number";
25
+ for (let e of i) switch (e._tag) {
26
+ case "isInt":
27
+ r.refinement = "int";
28
+ break;
29
+ case "isGreaterThanOrEqualTo":
30
+ r.minimum = e.minimum;
31
+ break;
32
+ case "isLessThanOrEqualTo":
33
+ r.maximum = e.maximum;
34
+ break;
35
+ case "isBetween":
36
+ r.minimum = e.minimum, r.maximum = e.maximum;
37
+ break;
38
+ case "isGreaterThan":
39
+ r.exclusiveMinimum = e.exclusiveMinimum;
40
+ break;
41
+ case "isLessThan":
42
+ r.exclusiveMaximum = e.exclusiveMaximum;
43
+ break;
44
+ }
45
+ } else e.AST.isBoolean(n) ? r.type = "boolean" : e.AST.isDeclaration(n) && n.annotations?.typeConstructor?._tag === "Date" ? r.type = "date" : r.type = "unknown";
46
+ return r;
47
+ };
48
+ //#endregion
49
+ export { n as getFieldMetadataFromAst };
@@ -0,0 +1,128 @@
1
+ import { getFieldMetadataFromAst as e } from "./vue-components14.es.js";
2
+ import { isNullableOrUndefined as t, unwrapDeclaration as n } from "./vue-components16.es.js";
3
+ import * as r from "effect-app/Schema";
4
+ //#region src/components/OmegaForm/meta/walker.ts
5
+ var i = (e) => r.AST.isUndefined(e) || r.AST.isNull(e), a = (e) => r.AST.isUnion(e) && e.types.length === 1 && r.AST.isLiteral(e.types[0]) ? e.types[0] : e, o = (e) => e.flatMap((e) => r.AST.isUnion(e) ? o(e.types) : [e]), s = (t, n) => {
6
+ let { nullableOrUndefined: i, required: a } = n;
7
+ return r.AST.isArrays(t) ? {
8
+ required: a,
9
+ nullableOrUndefined: i,
10
+ type: "multiple",
11
+ members: t.elements,
12
+ rest: t.rest
13
+ } : r.AST.isLiteral(t) ? {
14
+ required: a,
15
+ nullableOrUndefined: i,
16
+ type: "select",
17
+ members: [t.literal]
18
+ } : {
19
+ ...e(t),
20
+ required: a,
21
+ nullableOrUndefined: i
22
+ };
23
+ }, c = (e, n, r, i) => {
24
+ for (let a of e) {
25
+ let e = n ? `${n}.${a.name.toString()}` : a.name.toString(), o = t(a.type), s = a.type.context?.isOptional === !0, c;
26
+ c = r.isNullableDiscriminatedUnion && a.name.toString() === "_tag" ? !1 : r.required ? s ? !1 : !o : !1, u(a.type, e, {
27
+ required: c,
28
+ nullableOrUndefined: o,
29
+ isOptionalKey: s
30
+ }, i);
31
+ }
32
+ }, l = (e, t, l, d) => {
33
+ let { acc: f } = d, p = o(e.types).map(n), m = p.filter((e) => !i(e));
34
+ if (m.length === 1 && r.AST.isLiteral(m[0]) && typeof m[0].literal == "boolean") {
35
+ f[t] = s(m[0], l);
36
+ return;
37
+ }
38
+ if (m.some(r.AST.isObjects)) {
39
+ let e = !!l.nullableOrUndefined && m.length > 1;
40
+ if (!l.nullableOrUndefined && t) {
41
+ let e = m.find((e) => !r.AST.isObjects(e));
42
+ e && (f[t] = s(e, l));
43
+ }
44
+ let n = [], i = e ? {
45
+ required: !0,
46
+ nullableOrUndefined: !1,
47
+ isNullableDiscriminatedUnion: !0
48
+ } : {
49
+ required: !0,
50
+ nullableOrUndefined: !1
51
+ };
52
+ for (let e of m) {
53
+ if (!r.AST.isObjects(e)) continue;
54
+ let o = e.propertySignatures.find((e) => e.name.toString() === "_tag"), s = o ? a(o.type) : null, l = null;
55
+ s && r.AST.isLiteral(s) && (l = s.literal, n.includes(l) || n.push(l));
56
+ let u = {
57
+ acc: {},
58
+ unionMeta: d.unionMeta
59
+ };
60
+ if (c(e.propertySignatures, t, i, u), l) {
61
+ let e = d.unionMeta[l];
62
+ e ? Object.assign(e, u.acc) : d.unionMeta[l] = u.acc;
63
+ }
64
+ for (let [e, t] of Object.entries(u.acc)) {
65
+ let n = f[e];
66
+ n && n.type === "select" && t?.type === "select" ? n.members = [...n.members, ...t.members.filter((e) => !n.members.includes(e))] : f[e] = t;
67
+ }
68
+ }
69
+ if (n.length > 0) {
70
+ let r = t ? `${t}._tag` : "_tag", i = f[r];
71
+ if (i && i.type === "select") for (let e of n) i.members.includes(e) || i.members.push(e);
72
+ else f[r] = {
73
+ type: "select",
74
+ members: n,
75
+ required: !e
76
+ };
77
+ }
78
+ return;
79
+ }
80
+ let h = m.find(r.AST.isArrays);
81
+ if (h) {
82
+ u(h, t, l, d);
83
+ return;
84
+ }
85
+ let g = p.map(a);
86
+ if (g.every((e) => i(e) || r.AST.isLiteral(e))) {
87
+ let { isOptionalKey: e, nullableOrUndefined: n, required: i } = l, a = {
88
+ required: i,
89
+ nullableOrUndefined: n,
90
+ type: "select",
91
+ members: g.filter(r.AST.isLiteral).map((e) => e.literal)
92
+ };
93
+ e && (a.isOptionalKey = !0), f[t] = a;
94
+ return;
95
+ }
96
+ let _ = m[0];
97
+ _ && u(_, t, l, d);
98
+ }, u = (t, i, a, o) => {
99
+ t = n(t);
100
+ let { acc: u } = o;
101
+ if (r.AST.isObjects(t)) {
102
+ c(t.propertySignatures, i, a, o);
103
+ return;
104
+ }
105
+ if (r.AST.isUnion(t)) {
106
+ l(t, i, a, o);
107
+ return;
108
+ }
109
+ if (r.AST.isArrays(t)) {
110
+ let e = t.rest.length > 0 ? n(t.rest[0]) : null;
111
+ if (e && r.AST.isObjects(e)) {
112
+ c(e.propertySignatures, i, {
113
+ required: !0,
114
+ nullableOrUndefined: !1
115
+ }, o);
116
+ return;
117
+ }
118
+ u[i] = s(t, a);
119
+ return;
120
+ }
121
+ let { isOptionalKey: d, nullableOrUndefined: f, required: p } = a, m = {
122
+ required: p && (!r.AST.isString(t) || !!e(t).minLength),
123
+ nullableOrUndefined: f
124
+ }, h = s(t, m);
125
+ d && (h.isOptionalKey = !0), u[i] = h;
126
+ };
127
+ //#endregion
128
+ export { l as classifyAndWalkUnion, s as leafMetaForAst, c as walkStruct };