UNPKG

@szum-tech/design-system

Version:

Szum-Tech design system with tailwindcss support

73 lines (69 loc) 2.54 kB
'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;