import type { BoxProps, InputElementProps } from "@chakra-ui/react" import { Group, InputElement } from "@chakra-ui/react" import * as React from "react" export interface InputGroupProps extends BoxProps { startElementProps?: InputElementProps endElementProps?: InputElementProps startElement?: React.ReactNode endElement?: React.ReactNode children: React.ReactElement startOffset?: InputElementProps["paddingStart"] endOffset?: InputElementProps["paddingEnd"] } export const InputGroup = React.forwardRef( function InputGroup(props, ref) { const { startElement, startElementProps, endElement, endElementProps, children, startOffset = "6px", endOffset = "6px", ...rest } = props const child = React.Children.only>(children) return ( {startElement && ( {startElement} )} {React.cloneElement(child, { ...(startElement && { ps: `calc(var(--input-height) - ${startOffset})`, }), ...(endElement && { pe: `calc(var(--input-height) - ${endOffset})` }), ...children.props, })} {endElement && ( {endElement} )} ) }, )