{ "$schema": "https://blode.co/ui/schema/registry-item.json", "name": "currency-input", "title": "Currency Input", "author": "Matthew Blode", "description": "A formatted input field for entering monetary values.", "dependencies": ["blode-icons-react", "react-currency-input-field"], "files": [ { "path": "ui/currency-input.tsx", "content": "\"use client\";\n\nimport { CircleXFilledIcon } from \"blode-icons-react\";\nimport type * as React from \"react\";\nimport CurrencyInputField from \"react-currency-input-field\";\nimport type { CurrencyInputProps } from \"react-currency-input-field\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps extends React.InputHTMLAttributes {\n clearable?: boolean;\n clearClassName?: string;\n hasError?: boolean;\n leftAddon?: React.ReactNode | null;\n leftControl?: React.ReactNode | null;\n onClear?: () => void;\n rightAddon?: React.ReactNode | null;\n rightControl?: React.ReactNode | null;\n}\n\nexport const CurrencyInput = ({\n className,\n clearClassName,\n hasError,\n clearable,\n onClear,\n leftAddon,\n rightAddon,\n leftControl,\n rightControl,\n ...props\n}: CurrencyInputProps & InputProps) => (\n \n {leftAddon && {leftAddon}}\n\n {leftControl && (\n
\n {leftControl}\n
\n )}\n\n
\n \n\n {clearable && !!props.value && (\n
\n onClear?.()}\n tabIndex={-1}\n type=\"button\"\n >\n \n \n
\n )}\n
\n\n {rightControl && (\n
\n {rightControl}\n
\n )}\n\n {rightAddon && {rightAddon}}\n \n);\n", "type": "registry:ui", "target": "" } ], "type": "registry:ui" }