Components
Input Field
Input field is a component that is used to get user input in a text field.
This is a custom component made upon native html label component and its props.
Anatomy
Import the component.
import { InputField } from "@rafty/ui";
<InputField />;
Usage
<InputField placeholder="Basic usage" />
Size
There are 3 size options in input field: sm, md (default) & lg.
<div className="space-y-4">
  <InputField size="sm" />
  <InputField size="md" />
  <InputField size="lg" />
</div>
Variant
There are 3 variant options in input field: solid, outline (default) & ghost.
<div className="space-y-4">
  <InputField variant="solid" />
  <InputField variant="ghost" />
  <InputField variant="outline" />
</div>
IsRequired
isRequired prop is used to show required field. It adds red star (*) after label.
<InputField isRequired />
IsDisabled
isDisabled prop is used to disable subcomponent or children field.
<InputField isDisabled />
IsReadOnly
isReadOnly prop is used to change field state to read-only.
<InputField
  defaultValue="This is a sample default value"
  isReadOnly
/>
IsInvalid
isInvalid prop is used to show invalid field on certain condition.
<InputField isInvalid />
IsLoading
isLoading prop is used to show a field in a loading state.
<InputField isLoading />
Unstyled
Pass  isUnstyled prop to remove style component
<InputField
  className="border-secondary-300 dark:border-secondary-600 w-full rounded-md border bg-transparent p-1 transition-colors duration-300 hover:border-cyan-500 focus:outline-none focus:ring-1 focus:ring-cyan-500 dark:hover:border-cyan-500"
  isUnstyled
/>
Left Addon
<InputGroup>
  <LeftAddon>
    <PhoneIcon
      className="stroke-2"
      height={16}
      width={16}
    />
  </LeftAddon>
  <InputField
    placeholder="Phone number"
    type="tel"
  />
</InputGroup>
Right Addon
<InputGroup>
  <InputField />
  <RightAddon>
    <MagnifyingGlassIcon
      className="stroke-2"
      height={16}
      width={16}
    />
  </RightAddon>
</InputGroup>
Prefix
<InputGroup>
  <Prefix>
    <PhoneIcon
      className="stroke-2"
      height={16}
      width={16}
    />
  </Prefix>
  <InputField />
</InputGroup>
Suffix
<InputGroup>
  <InputField />
  <Suffix>
    <CheckIcon
      className="stroke-2 text-green-500"
      height={16}
      width={16}
    />
  </Suffix>
</InputGroup>
API
| Property | Description | Type | Default | 
|---|---|---|---|
| isUnstyled | Removes Style from component | boolean | false |