UNPKG

@accelint/design-toolkit

Version:

An open-source component library to serve as part of the entire ecosystem of UX for Accelint.

4 lines (3 loc) 1.44 kB
'use client'; import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {createContext}from'react';import {useContextProps,TextField,composeRenderProps,Text,FieldError}from'react-aria-components';import {Input}from'../input/index.js';import {Label}from'../label/index.js';import {TextFieldStyles}from'./styles.js';const {field:E,label:A,description:S,error:V}=TextFieldStyles(),x=createContext(null);function P({children:r,...t}){return jsx(x.Provider,{value:t,children:r})}P.displayName="TextField.Provider";function u({ref:r,...t}){[t,r]=useContextProps(t,r??null,x);const{classNames:i,description:s,errorMessage:T,inputProps:F,label:a,size:l="medium",isInvalid:v,...f}=t,d=T||null,n=l==="small";return jsx(TextField,{...f,ref:r,className:composeRenderProps(i?.field,o=>E({className:o})),isInvalid:v||(d?true:void 0),"data-size":l,children:({isDisabled:o,isInvalid:p,isRequired:m})=>jsxs(Fragment,{children:[!!a&&!n&&jsx(Label,{className:A({className:i?.label}),isDisabled:o,isRequired:m,children:a}),jsx(Input,{...F,classNames:i?.input,disabled:o,required:m,size:l,isInvalid:p}),!!s&&!(n||p)&&jsx(Text,{slot:"description",className:S({className:i?.description}),children:s}),jsx(FieldError,{className:composeRenderProps(i?.error,b=>V({className:b})),children:d})]})})}u.displayName="TextField",u.Provider=P;export{u as TextField,x as TextFieldContext};//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map