@szum-tech/design-system
Version:
Szum-Tech design system with tailwindcss support
73 lines (69 loc) • 2.54 kB
JavaScript
'use strict';
var chunkH2BWO3SI_cjs = require('./chunk-H2BWO3SI.cjs');
var classVarianceAuthority = require('class-variance-authority');
var jsxRuntime = require('react/jsx-runtime');
var inputCva = classVarianceAuthority.cva(
[
"bg-app-foreground font-poppins h-10 w-full appearance-none border py-2 outline-0 transition-colors duration-300 ease-in-out",
"placeholder:select-none placeholder:text-gray-400",
"invalid:border-error-500 focus:border-primary-500 active:border-primary-500",
"disabled:border-gray-800 disabled:text-gray-300 disabled:placeholder:text-gray-600 disabled:cursor-not-allowed"
],
{
variants: {
invalid: {
true: ["text-error-500 border-error-500 hover:border-error-400 focus:text-gray-100"],
false: ["border-gray-600 hover:border-primary-600 text-gray-100"]
},
withStartIcon: {
true: "pl-11",
false: "pl-3"
},
withEndIcon: {
true: "pr-11",
false: "pr-3"
}
},
defaultVariants: {
invalid: false,
withStartIcon: false,
withEndIcon: false
}
}
);
var inputIconContainerCva = classVarianceAuthority.cva(
["pointer-events-none absolute inset-y-2 inline-flex w-10 place-content-center items-center text-center"],
{
variants: {
disabled: {
true: "text-gray-300"
},
site: {
right: "right-0 border-l border-l-gray-800 pr-1",
left: "left-0 border-r border-r-gray-800 pl-1"
}
},
defaultVariants: {
disabled: false
}
}
);
function Input({ invalid = false, startIcon, endIcon, disabled = false, className, ...props }) {
const inputStyles = inputCva({ withEndIcon: !!endIcon, withStartIcon: !!startIcon, invalid });
const inputIconStartContainer = inputIconContainerCva({ site: "left", disabled });
const inputIconEndContainer = inputIconContainerCva({ site: "right", disabled });
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-body-2 relative text-gray-100", children: [
startIcon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: inputIconStartContainer, children: startIcon }) : null,
/* @__PURE__ */ jsxRuntime.jsx(
"input",
{
"aria-invalid": invalid || void 0,
disabled,
className: chunkH2BWO3SI_cjs.cn(inputStyles, className),
...props
}
),
endIcon ? /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": true, className: inputIconEndContainer, children: endIcon }) : null
] });
}
exports.Input = Input;