@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
JavaScript
'use client';
import {jsx,jsxs,Fragment}from'react/jsx-runtime';import'client-only';import {createContext}from'react';import {useContextProps,TextField,composeRenderProps,TextArea,Text,FieldError}from'react-aria-components';import {Label}from'../label/index.js';import {TextAreaStyles}from'./styles.js';const {field:I,label:z,input:D,description:R,error:S}=TextAreaStyles(),c=createContext(null);function x({children:r,...t}){return jsx(c.Provider,{value:t,children:r})}x.displayName="TextAreaField.Provider";function P({ref:r,...t}){[t,r]=useContextProps(t,r??null,c);const{classNames:i,description:a,errorMessage:u,label:d,inputProps:T,size:n="medium",isInvalid:v,...F}=t,p=u||null,m=n==="small";return jsx(TextField,{...F,ref:r,className:composeRenderProps(i?.field,o=>I({className:o})),isInvalid:v||(p?true:void 0),"data-size":n,children:({isDisabled:o,isInvalid:f,isRequired:A})=>jsxs(Fragment,{children:[!!d&&!m&&jsx(Label,{className:z({className:i?.label}),isDisabled:o,isRequired:A,children:d}),jsx(TextArea,{...T,className:composeRenderProps(i?.input,l=>D({className:l}))}),!!a&&!(m||f)&&jsx(Text,{slot:"description",className:R({className:i?.description}),children:a}),jsx(FieldError,{className:composeRenderProps(i?.error,l=>S({className:l})),children:p})]})})}P.displayName="TextAreaField",P.Provider=x;export{P as TextAreaField,c as TextAreaFieldContext};//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map