import { type Assign, Field } from '@ark-ui/solid' import type { ComponentProps } from 'solid-js' import { styled } from 'styled-system/jsx' import { type FieldVariantProps, field, input, textarea } from 'styled-system/recipes' import type { HTMLStyledProps } from 'styled-system/types' import { createStyleContext } from './utils/create-style-context' const { withProvider, withContext } = createStyleContext(field) export type RootProviderProps = ComponentProps export const RootProvider = withProvider< Assign, Field.RootProviderBaseProps>, FieldVariantProps> >(Field.RootProvider, 'root') export type RootProps = ComponentProps export const Root = withProvider< Assign, Field.RootBaseProps>, FieldVariantProps> >(Field.Root, 'root') export const ErrorText = withContext, Field.ErrorTextBaseProps>>( Field.ErrorText, 'errorText', ) export const HelperText = withContext, Field.HelperTextBaseProps>>( Field.HelperText, 'helperText', ) export const Label = withContext, Field.LabelBaseProps>>( Field.Label, 'label', ) export const Select = withContext, Field.SelectBaseProps>>( Field.Select, 'select', ) export type InputProps = ComponentProps export const Input = styled(Field.Input, input) export type TextareaProps = ComponentProps export const Textarea = styled(Field.Textarea, textarea) export { FieldContext as Context } from '@ark-ui/solid'