{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "input",
  "title": "Input",
  "description": "A text field.",
  "registryDependencies": [
    "https://creance.pages.dev/r/creance-base.json"
  ],
  "files": [
    {
      "path": "input/Input.css",
      "content": "/* Text fields share one look: a frosted well with a soft inner shadow. Blue ring on focus, red edge when invalid. */\n.cr-input {\n  box-sizing: border-box;\n  width: 100%;\n  min-height: var(--cr-control-height-md);\n  padding: 0 14px;\n  border: 1px solid var(--cr-color-border-default);\n  border-radius: var(--cr-radius-md);\n  background: var(--cr-color-glass-control);\n  box-shadow: inset 0 1px 2px var(--cr-color-bg-subtle);\n  color: var(--cr-color-text-default);\n  font: inherit;\n  font-family: var(--cr-font-family-sans);\n  font-size: var(--cr-font-size-md);\n  transition: border-color var(--cr-motion-duration-fast) var(--cr-motion-easing-standard),\n    box-shadow var(--cr-motion-duration-fast) var(--cr-motion-easing-standard);\n}\n\n.cr-input::placeholder {\n  color: var(--cr-color-text-muted);\n}\n\n.cr-input:focus-visible {\n  border-color: var(--cr-color-accent-bg);\n  outline: none;\n  box-shadow: 0 0 0 4px var(--cr-color-accent-subtle);\n}\n\n.cr-input[aria-invalid='true'] {\n  border-color: var(--cr-color-danger-text);\n}\n\n.cr-input:disabled {\n  cursor: not-allowed;\n  opacity: 0.55;\n}\n\n.cr-input[data-size='sm'] {\n  min-height: var(--cr-control-height-sm);\n  font-size: var(--cr-font-size-sm);\n}\n\ntextarea.cr-input {\n  padding: var(--cr-space-3) 14px;\n  line-height: var(--cr-font-line-height-normal);\n  resize: vertical;\n}\n\n.cr-select {\n  position: relative;\n  display: block;\n}\n\n.cr-select > select.cr-input {\n  padding-inline-end: 40px;\n  appearance: none;\n  cursor: pointer;\n}\n\n.cr-select > .cr-icon {\n  position: absolute;\n  top: 50%;\n  right: 14px;\n  color: var(--cr-color-text-muted);\n  pointer-events: none;\n  transform: translateY(-50%);\n}\n",
      "type": "registry:file",
      "target": "@components/creance/input/Input.css"
    },
    {
      "path": "input/Input.tsx",
      "content": "import { forwardRef, type InputHTMLAttributes } from 'react';\nimport { cx } from '@/lib/creance/cx';\nimport './Input.css';\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n  size?: 'sm' | 'md';\n}\n\n/** A text field. Pair it with `Field` for a label, hint and error, or give it an `aria-label`. */\nexport const Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n  { size = 'md', type = 'text', className, ...props },\n  ref,\n) {\n  return <input ref={ref} type={type} className={cx('cr-input', className)} data-size={size} {...props} />;\n});\n",
      "type": "registry:ui",
      "target": "@components/creance/input/Input.tsx"
    }
  ],
  "categories": [
    "atom",
    "forms"
  ],
  "type": "registry:ui"
}