@effect-app/vue-components 3.2.0 → 4.0.0-beta.0

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 (99) hide show
  1. package/dist/types/components/OmegaForm/OmegaAutoGen.vue.d.ts +1 -1
  2. package/dist/types/components/OmegaForm/OmegaFormStuff.d.ts +11 -13
  3. package/dist/types/components/OmegaForm/useOmegaForm.d.ts +6 -4
  4. package/dist/types/utils/index.d.ts +4 -3
  5. package/dist/vue-components.es.js +13 -14
  6. package/dist/vue-components.es10.js +109 -115
  7. package/dist/vue-components.es11.js +1 -1
  8. package/dist/vue-components.es12.js +290 -341
  9. package/dist/vue-components.es17.js +723 -4
  10. package/dist/vue-components.es18.js +140 -9
  11. package/dist/vue-components.es19.js +4 -55
  12. package/dist/vue-components.es2.js +17 -18
  13. package/dist/vue-components.es20.js +11 -68
  14. package/dist/vue-components.es21.js +3 -6
  15. package/dist/vue-components.es22.js +24 -6
  16. package/dist/vue-components.es23.js +4 -3
  17. package/dist/vue-components.es24.js +8 -3
  18. package/dist/vue-components.es25.js +55 -2
  19. package/dist/vue-components.es26.js +69 -2
  20. package/dist/vue-components.es27.js +6 -2
  21. package/dist/vue-components.es28.js +6 -2
  22. package/dist/vue-components.es29.js +3 -17
  23. package/dist/vue-components.es3.js +9 -9
  24. package/dist/vue-components.es30.js +3 -192
  25. package/dist/vue-components.es31.js +4 -0
  26. package/dist/vue-components.es32.js +2 -42
  27. package/dist/vue-components.es33.js +1 -1
  28. package/dist/vue-components.es34.js +1 -1
  29. package/dist/vue-components.es35.js +17 -111
  30. package/dist/vue-components.es36.js +40 -0
  31. package/dist/vue-components.es37.js +4 -7
  32. package/dist/vue-components.es38.js +82 -31
  33. package/dist/vue-components.es39.js +54 -0
  34. package/dist/vue-components.es40.js +561 -4
  35. package/dist/vue-components.es41.js +40 -22
  36. package/dist/vue-components.es42.js +27 -5
  37. package/dist/vue-components.es43.js +5 -21
  38. package/dist/vue-components.es44.js +39 -29
  39. package/dist/vue-components.es45.js +313 -21
  40. package/dist/vue-components.es46.js +31 -12
  41. package/dist/vue-components.es47.js +4 -5
  42. package/dist/vue-components.es48.js +23 -18
  43. package/dist/vue-components.es49.js +74 -8
  44. package/dist/vue-components.es50.js +98 -30
  45. package/dist/vue-components.es51.js +2 -48
  46. package/dist/vue-components.es52.js +317 -25
  47. package/dist/vue-components.es53.js +64 -11
  48. package/dist/vue-components.es54.js +2 -65
  49. package/dist/vue-components.es55.js +2 -56
  50. package/dist/vue-components.es56.js +110 -16
  51. package/dist/vue-components.es58.js +7 -29
  52. package/dist/vue-components.es59.js +31 -41
  53. package/dist/vue-components.es61.js +190 -42
  54. package/dist/vue-components.es63.js +6 -0
  55. package/dist/vue-components.es64.js +103 -0
  56. package/dist/vue-components.es65.js +4 -0
  57. package/dist/vue-components.es66.js +23 -0
  58. package/dist/vue-components.es67.js +84 -0
  59. package/dist/vue-components.es68.js +14 -0
  60. package/dist/vue-components.es69.js +115 -0
  61. package/dist/vue-components.es7.js +1 -1
  62. package/dist/vue-components.es70.js +5 -0
  63. package/dist/vue-components.es71.js +34 -0
  64. package/dist/vue-components.es72.js +4 -0
  65. package/dist/vue-components.es73.js +4 -0
  66. package/dist/vue-components.es74.js +17 -0
  67. package/dist/vue-components.es75.js +72 -0
  68. package/dist/vue-components.es76.js +25 -0
  69. package/dist/vue-components.es77.js +7 -0
  70. package/dist/vue-components.es78.js +23 -0
  71. package/dist/vue-components.es79.js +32 -0
  72. package/dist/vue-components.es80.js +24 -0
  73. package/dist/vue-components.es81.js +14 -0
  74. package/dist/vue-components.es82.js +7 -0
  75. package/dist/vue-components.es83.js +21 -0
  76. package/dist/vue-components.es84.js +11 -0
  77. package/dist/vue-components.es85.js +33 -0
  78. package/dist/vue-components.es86.js +50 -0
  79. package/dist/vue-components.es87.js +28 -0
  80. package/dist/vue-components.es88.js +17 -0
  81. package/dist/vue-components.es89.js +18 -0
  82. package/dist/vue-components.es90.js +10 -0
  83. package/dist/vue-components.es91.js +13 -0
  84. package/dist/vue-components.es92.js +67 -0
  85. package/dist/vue-components.es93.js +58 -0
  86. package/dist/vue-components.es94.js +19 -0
  87. package/dist/{vue-components.es57.js → vue-components.es95.js} +3 -3
  88. package/dist/vue-components.es96.js +31 -0
  89. package/dist/vue-components.es97.js +44 -0
  90. package/dist/vue-components.es99.js +46 -0
  91. package/package.json +25 -24
  92. package/src/components/OmegaForm/OmegaAutoGen.vue +11 -10
  93. package/src/components/OmegaForm/OmegaErrorsInternal.vue +3 -2
  94. package/src/components/OmegaForm/OmegaFormStuff.ts +249 -274
  95. package/src/components/OmegaForm/OmegaInternalInput.vue +1 -1
  96. package/src/components/OmegaForm/useOmegaForm.ts +27 -28
  97. package/src/utils/index.ts +7 -7
  98. /package/dist/{vue-components.es62.js → vue-components.es100.js} +0 -0
  99. /package/dist/{vue-components.es60.js → vue-components.es98.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <slot v-bind="{ ...inputProps.inputProps, field: inputProps.field, state: inputProps.state }">
3
- <div :class="$attrs.class">
3
+ <div :class="$attrs.class as any">
4
4
  <OmegaInputVuetify
5
5
  v-if="vuetified"
6
6
  v-bind="{ ...attrsWithoutClass, ...inputProps, class: props.inputClass }"
@@ -3,8 +3,13 @@
3
3
 
4
4
  import * as api from "@opentelemetry/api"
5
5
  import { type DeepKeys, DeepValue, type FormAsyncValidateOrFn, type FormValidateOrFn, type StandardSchemaV1, StandardSchemaV1Issue, useForm, ValidationError, ValidationErrorMap } from "@tanstack/vue-form"
6
- import { Array, Data, Effect, Fiber, Option, Order, S } from "effect-app"
7
6
  import { runtimeFiberAsPromise, UnionToTuples } from "effect-app/utils"
7
+ import * as Data from "effect/Data"
8
+ import * as Effect from "effect/Effect"
9
+ import * as Fiber from "effect/Fiber"
10
+ import * as Option from "effect/Option"
11
+ import * as Order from "effect/Order"
12
+ import * as S from "effect/Schema"
8
13
  import { Component, computed, ComputedRef, ConcreteComponent, h, type InjectionKey, onBeforeUnmount, onMounted, onUnmounted, Ref, ref, watch } from "vue"
9
14
  import { useIntl } from "../../utils"
10
15
  import { MergedInputProps } from "./InputProps"
@@ -102,25 +107,26 @@ const eHoc = (errorProps: {
102
107
 
103
108
  const errors = computed(() => {
104
109
  // Collect errors from fieldMeta (field-level errors for registered fields)
105
- const fieldErrors = Array.filterMap(
106
- Object
107
- .entries(fieldMeta.value),
108
- ([key, m]): Option.Option<OmegaError> => {
109
- const fieldErrors = (m as any).errors ?? []
110
- if (!fieldErrors.length) return Option.none()
110
+ const fieldErrors = Object
111
+ .entries(fieldMeta.value)
112
+ .reduce<OmegaError[]>((acc, [key, m]) => {
113
+ const fieldErrors = (m as { errors?: Array<{ message?: string }> } | undefined)?.errors ?? []
114
+ if (!fieldErrors.length) {
115
+ return acc
116
+ }
111
117
 
112
118
  const fieldInfo = fieldMap.value.get(key)
113
- // Only show errors for fields that are currently mounted (registered in fieldMap)
114
- if (!fieldInfo) return Option.none()
119
+ if (!fieldInfo) {
120
+ return acc
121
+ }
115
122
 
116
- return Option.some({
123
+ acc.push({
117
124
  label: fieldInfo.label,
118
125
  inputId: fieldInfo.id,
119
- // Only show the first error
120
- errors: [fieldErrors[0]?.message].filter(Boolean)
126
+ errors: [fieldErrors[0]?.message].filter(Boolean) as string[]
121
127
  })
122
- }
123
- )
128
+ return acc
129
+ }, [])
124
130
 
125
131
  // Collect errors from errorMap.onSubmit ONLY for fields that are NOT registered
126
132
  // (registered fields already have their errors in fieldMeta)
@@ -396,7 +402,7 @@ export interface OmegaFormReturn<
396
402
  // Pre-computed type aliases - computed ONCE for performance
397
403
  _paths: FieldPath<From>
398
404
  _keys: DeepKeys<From>
399
- _schema: S.Schema<To, From, never>
405
+ _schema: S.Codec<To, From, never>
400
406
 
401
407
  // 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..
402
408
  Input: <Name extends OmegaFormReturn<From, To, TypeProps>["_paths"]>(
@@ -675,13 +681,13 @@ export const useOmegaForm = <
675
681
  To extends Record<PropertyKey, any>,
676
682
  TypeProps = DefaultTypeProps
677
683
  >(
678
- schema: S.Schema<To, From, never>,
684
+ schema: S.Codec<To, From, never>,
679
685
  tanstackFormOptions?: NoInfer<FormProps<From, To>>,
680
686
  omegaConfig?: OmegaConfig<To>
681
687
  ): OmegaFormReturn<From, To, TypeProps> => {
682
688
  if (!schema) throw new Error("Schema is required")
683
- const standardSchema = S.standardSchemaV1(schema)
684
- const decode = S.decode(schema)
689
+ const standardSchema = S.toStandardSchemaV1(schema)
690
+ const decode = S.decodeEffect(schema)
685
691
 
686
692
  const { meta, unionMeta } = generateMetaFromSchema(schema)
687
693
 
@@ -796,18 +802,11 @@ export const useOmegaForm = <
796
802
  meta,
797
803
  value: parsedValue
798
804
  })
799
- if (Fiber.isFiber(r) && Fiber.isRuntimeFiber(r)) {
800
- return await runtimeFiberAsPromise(r)
805
+ if (Fiber.isFiber(r)) {
806
+ return await runtimeFiberAsPromise(r as any)
801
807
  }
802
808
  if (Effect.isEffect(r)) {
803
- return await Effect.runPromise(
804
- r.pipe(
805
- // meta?.currentSpan
806
- // ? Effect.withParentSpan(meta.currentSpan)
807
- // : (_) => _,
808
- Effect.flatMap((_) => Fiber.join(_))
809
- )
810
- )
809
+ return await Effect.runPromise(r)
811
810
  }
812
811
  return r
813
812
  })
@@ -18,15 +18,15 @@ export const provideIntl = (
18
18
 
19
19
  /**
20
20
  * Recursively extracts the source AST from a transformation chain.
21
- * If the provided AST is a transformation, it follows the chain to find the original source AST.
21
+ * In v4, transformations are stored in the `encoding` property, not as wrapped AST nodes.
22
+ * This function returns the encoded form if an encoding chain exists, otherwise returns the AST itself.
22
23
  *
23
24
  * @param ast - The AST node to extract the transformation source from
24
- * @returns The source AST at the end of the transformation chain
25
+ * @returns The source AST (the decoded/type form, which is the AST itself in v4)
25
26
  */
26
27
  export function getTransformationFrom(ast: S.AST.AST) {
27
- if (ast._tag === "Transformation") {
28
- return getTransformationFrom(ast.from)
29
- } else {
30
- return ast
31
- }
28
+ // In v4, the AST itself is the decoded (type) form
29
+ // The encoding chain points to the encoded (wire) form via ast.encoding
30
+ // For most metadata extraction purposes, we want the decoded form, so just return the ast
31
+ return ast
32
32
  }