@lanaco/lnc-react-ui
Version:
React component library
46 lines (39 loc) • 3.62 kB
JavaScript
"use strict";const d=require("react/jsx-runtime"),t=require("./index-BPVoEhTF.cjs"),s=require("react"),_=require("./index-DaiUAQVF.cjs"),c=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),n=require("./utils-NZLCh-J5.cjs"),B=require("./emotion-element-f0de968e.browser.esm-B7k6i6lC.cjs"),D=c.newStyled.div`
display: flex;
align-items: center;
min-height: ${e=>n.getSizeValueWithUnits(e.theme,e.size)};
max-height: ${e=>n.getSizeValueWithUnits(e.theme,e.size)};
background-color: ${e=>n.getColorRgbaValue(e.theme,"Input",e.color,"enabled","background")};
border: 1px solid
${e=>n.getColorRgbaValue(e.theme,"Input",e.focused===!0?"primary":e.color,e.disabled===!0?"disabled":"enabled","border")};
border-radius: ${e=>n.getBorderRadiusValueWithUnits(e.theme,"regular")};
${e=>e.focused&&e.readOnly!==!0?n.getOutlineCss(e.theme):""}
${e=>e.disabled===!0?n.getDisabledStateCss(e.theme):""}
`,S=c.newStyled.span`
padding: 0 12px;
color: ${e=>n.getColorRgbaValue(e.theme,"Input",e.focused===!0?"primary":e.color,"enabled","prefix")};
`,E=c.newStyled(S)``,A=c.newStyled.input`
background: none;
border: none;
outline: none;
padding-top: 0.625rem;
padding-bottom: 0.625rem;
width: 100%;
${e=>n.getComponentTypographyCss(e.theme,"Input",e.size,"enabled")}
min-height: ${e=>n.getSizeValueWithUnits(e.theme,e.size)};
max-height: ${e=>n.getSizeValueWithUnits(e.theme,e.size)};
color: ${e=>n.getColorRgbaValue(e.theme,"Input",e.focused===!0?"primary":e.color,"enabled","text")};
caret-color: ${e=>n.getColorRgbaValue(e.theme,"Input",e.color,"enabled","caret")};
padding-right: ${e=>e.suffix?"0":"0.75rem"};
padding-left: ${e=>e.prefix?"0":"0.75rem"};
&::placeholder {
color: ${e=>n.getColorRgbaValue(e.theme,"Input",e.color,"enabled","placeholder")};
}
&:read-only {
cursor: default;
}
&:disabled {
${e=>n.getDisabledStateCss(e.theme)}
background: none;
}
`,$=s.forwardRef((e,C)=>{const{disabled:b,readOnly:f,defaultValue:V,value:o,debounceTime:I=0,type:z="text",placeholder:O,tabIndex:R,prefix:p,suffix:g,onChange:l,onBlur:m,onFocus:y,className:w="",style:q={},size:x="small",color:a="primary",...v}=e,i=B.useTheme(),[j,T]=s.useState(o||V||""),[u,P]=s.useState(!1);s.useEffect(()=>{o!=null&&T(o)},[o]);const W=s.useCallback(_.debounce((r,h)=>k(r,h),I),[l]),k=(r,h)=>{l&&(l==null||l(r,h))},U=r=>{T(r.target.value),W(r,r.target.value)},F=r=>{P(!0),y==null||y(r)},N=r=>{P(!1),m==null||m(r)};return d.jsxs(D,{style:q,className:w,theme:i,color:a,size:x,focused:u,disabled:b,readOnly:f,children:[p&&d.jsx(S,{theme:i,color:a,focused:u,className:"lnc-input-prefix",children:p}),d.jsx(A,{ref:C,type:z,theme:i,color:a,size:x,placeholder:O,prefix:p,suffix:g,disabled:b,readOnly:f,focused:u,onFocus:F,onBlur:N,onChange:U,tabIndex:R,value:j,...v}),g&&d.jsx(E,{theme:i,color:a,focused:u,className:"lnc-input-suffix",children:g})]})});$.propTypes={id:t.PropTypes.string,defaultValue:t.PropTypes.string,value:t.PropTypes.string,disabled:t.PropTypes.bool,readOnly:t.PropTypes.bool,debounceTime:t.PropTypes.number,placeholder:t.PropTypes.string,type:t.PropTypes.oneOf(["text","email"]),tabIndex:t.PropTypes.number,prefix:t.PropTypes.oneOfType([t.PropTypes.string,t.PropTypes.element]),suffix:t.PropTypes.oneOfType([t.PropTypes.string,t.PropTypes.element]),onChange:t.PropTypes.func,onBlur:t.PropTypes.func,onFocus:t.PropTypes.func,className:t.PropTypes.string,style:t.PropTypes.object,size:t.PropTypes.oneOf(["small","medium","large"]),color:t.PropTypes.oneOf(["primary","secondary","success","danger","warning","information","neutral","gray"])};module.exports=$;