/** @jsxRuntime classic */ /** @jsx jsx */ import { type ButtonHTMLAttributes, forwardRef } from 'react' import { jsx, useTheme, VisuallyHidden } from '@keystone-ui/core' import { XIcon } from '@keystone-ui/icons/icons/XIcon' import { CalendarIcon } from '@keystone-ui/icons/icons/CalendarIcon' import { useInputTokens, useInputStyles } from '../..' import { Adornment, AdornmentWrapper } from './Adornments' type ButtonProps = { invalid?: boolean isSelected?: boolean onClear?: () => void } & ButtonHTMLAttributes export const InputButton = forwardRef( ({ invalid = false, isSelected, onClear, ...props }, ref) => { const { spacing } = useTheme() const inputTokens = useInputTokens({ size: 'medium' }) const inputStyles = useInputStyles({ invalid, tokens: inputTokens }) const focusStyles = isSelected ? { ...inputStyles[':focus'], ':hover': inputStyles[':focus'], ':focus': inputStyles[':focus'], } : null const buttonStyles = { ...inputStyles, ...focusStyles, cursor: 'pointer', lineHeight: 'initial', // let the button vertically align its text; the have different native behaviour to inputs textAlign: 'left', } as const return (