'use client' import { ark } from '@ark-ui/react/factory' import { type ComponentProps, forwardRef, type ReactNode } from 'react' import { createStyleContext } from 'styled-system/jsx' import { inputGroup } from 'styled-system/recipes' const { withProvider, withContext } = createStyleContext(inputGroup); type RootProps = ComponentProps; const Root = withProvider(ark.div, 'root'); const Element = withContext(ark.div, 'element'); export interface InputGroupProps extends RootProps { startElement?: ReactNode | undefined; endElement?: ReactNode | undefined; children?: ReactNode; } const InputGroupRoot = forwardRef( function InputGroup(props, ref) { const { startElement, endElement, children, ...rest } = props; return ( {startElement && ( {startElement} )} {children} {endElement && ( {endElement} )} ); }, ); export const InputGroup = Object.assign(InputGroupRoot, { Root, Element, });