import { type Assign, FileUpload } from '@ark-ui/solid' import type { ComponentProps } from 'solid-js' import { type FileUploadVariantProps, fileUpload } from 'styled-system/recipes' import type { HTMLStyledProps } from 'styled-system/types' import { createStyleContext } from './utils/create-style-context' const { withProvider, withContext } = createStyleContext(fileUpload) export type RootProviderProps = ComponentProps export const RootProvider = withProvider< Assign, FileUpload.RootProviderBaseProps>, FileUploadVariantProps> >(FileUpload.RootProvider, 'root') export type RootProps = ComponentProps export const Root = withProvider< Assign, FileUpload.RootBaseProps>, FileUploadVariantProps> >(FileUpload.Root, 'root') export const Dropzone = withContext, FileUpload.DropzoneBaseProps>>( FileUpload.Dropzone, 'dropzone', ) export const ItemDeleteTrigger = withContext< Assign, FileUpload.ItemDeleteTriggerBaseProps> >(FileUpload.ItemDeleteTrigger, 'itemDeleteTrigger') export const ItemGroup = withContext, FileUpload.ItemGroupBaseProps>>( FileUpload.ItemGroup, 'itemGroup', ) export const ItemName = withContext, FileUpload.ItemNameBaseProps>>( FileUpload.ItemName, 'itemName', ) export const ItemPreviewImage = withContext< Assign, FileUpload.ItemPreviewImageBaseProps> >(FileUpload.ItemPreviewImage, 'itemPreviewImage') export const ItemPreview = withContext< Assign, FileUpload.ItemPreviewBaseProps> >(FileUpload.ItemPreview, 'itemPreview') export const Item = withContext, FileUpload.ItemBaseProps>>( FileUpload.Item, 'item', ) export const ItemSizeText = withContext< Assign, FileUpload.ItemSizeTextBaseProps> >(FileUpload.ItemSizeText, 'itemSizeText') export const Label = withContext, FileUpload.LabelBaseProps>>( FileUpload.Label, 'label', ) export const Trigger = withContext, FileUpload.TriggerBaseProps>>( FileUpload.Trigger, 'trigger', ) export { FileUploadContext as Context, FileUploadHiddenInput as HiddenInput, } from '@ark-ui/solid'