@while-and-for/tremor-react
Version:
The React library to build dashboards faster.
3 lines (2 loc) • 2.81 kB
JavaScript
'use client';
"use strict";var e=require("tslib"),r=require("react"),t=require("../../lib/shape.cjs"),a=require("../../lib/sizing.cjs"),n=require("../../lib/spacing.cjs"),l=require("../../lib/utils.cjs"),s=require("../../lib/tremorTwMerge.cjs"),o=require("../../assets/ExclamationFilledIcon.cjs"),i=require("./selectUtils.cjs");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=u(r);const c=d.default.forwardRef(((u,c)=>{const{value:m,defaultValue:p,type:g,placeholder:b="Type...",icon:f,error:h=!1,errorMessage:k,disabled:w=!1,stepper:x,makeInputClassName:v,className:M}=u,N=e.__rest(u,["value","defaultValue","type","placeholder","icon","error","errorMessage","disabled","stepper","makeInputClassName","className"]),[j,q]=r.useState(!1),T=f,E=r.useRef(null),y=i.hasValue(m||p),R=e=>{var r,t;!1===e?null===(r=E.current)||void 0===r||r.blur():null===(t=E.current)||void 0===t||t.focus(),q(e)};return d.default.createElement(d.default.Fragment,null,d.default.createElement("div",{className:s.tremorTwMerge(v("root"),"relative w-full flex items-center min-w-[10rem] outline-none rounded-tremor-default","shadow-tremor-input","dark:shadow-dark-tremor-input",i.getSelectButtonColors(y,w,h),j&&s.tremorTwMerge("ring-2 transition duration-100","border-tremor-brand-subtle ring-tremor-brand-muted","dark:border-dark-tremor-brand-subtle dark:ring-dark-tremor-brand-muted"),t.border.sm.all,M),onClick:()=>{w||R(!0)},onFocus:()=>{R(!0)},onBlur:()=>{R(!1)}},T?d.default.createElement(T,{className:s.tremorTwMerge(v("icon"),"shrink-0","text-tremor-content-subtle","dark:text-dark-tremor-content-subtle",a.sizing.lg.height,a.sizing.lg.width,n.spacing.xl.marginLeft)}):null,d.default.createElement("input",Object.assign({ref:l.mergeRefs([E,c]),defaultValue:p,value:m,type:g,className:s.tremorTwMerge(v("input"),"w-full focus:outline-none focus:ring-0 border-none bg-transparent text-tremor-default","text-tremor-content-emphasis","dark:text-dark-tremor-content-emphasis","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",T?n.spacing.lg.paddingLeft:n.spacing.twoXl.paddingLeft,h?n.spacing.lg.paddingRight:n.spacing.twoXl.paddingRight,n.spacing.sm.paddingY,w?"placeholder:text-tremor-content-subtle dark:placeholder:text-dark-tremor-content-subtle":"placeholder:text-tremor-content dark:placeholder:text-dark-tremor-content"),placeholder:b,disabled:w,"data-testid":"base-input"},N)),h?d.default.createElement(o,{className:s.tremorTwMerge(v("errorIcon"),"text-rose-500 shrink-0",n.spacing.md.marginRight,a.sizing.lg.height,a.sizing.lg.width)}):null,null!=x?x:null),h&&k?d.default.createElement("p",{className:s.tremorTwMerge(v("errorMessage"),"text-sm text-rose-500 mt-1")},k):null)}));c.displayName="BaseInput",module.exports=c;