import { createElement, type ComponentType, type ReactNode } from 'react'
import { Function as Fn } from 'effect'
import { Ui, type MadeView, type UiClass, type UiContract, type ViewImpl } from '@playfast/reform'
import type {
ArrayBinding,
ArrayItem,
ArrayPath,
FieldBinding,
FieldPath,
PathValue,
Values,
VariantBody,
VariantPath,
VariantTag,
VariantValue,
View,
AnyForm,
} from '@playfast/reform-forms'
import { joinPath } from '@playfast/reform-forms'
export type FieldComponent = ComponentType<
{ readonly field: FieldBinding } & P
>
export interface FieldHandle {
as(component: FieldComponent): ReactNode
as