@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
3 lines • 5.34 kB
JavaScript
'use client';
import{a}from"./chunk-4U6EAEUD.js";import{b as R}from"./chunk-ZVU3BHJI.js";import{a as z}from"./chunk-HTOKQYVM.js";import{b as n}from"./chunk-CMFNILWJ.js";import{a as h,b as re}from"./chunk-XYM7TA65.js";import{Label as ce}from"@radix-ui/react-label";import{UilCheckCircle as me,UilExclamationCircle as K}from"@tooni/iconscout-unicons-react";import{forwardRef as fe,useEffect as de,useId as ue,useImperativeHandle as ye,useRef as U,useState as te}from"react";import G from"lodash/fp/isEmpty";import s from"lodash/fp/isFunction";import _ from"lodash/fp/isInteger";import L from"lodash/fp/isNil";import X from"lodash/fp/omit";import{jsx as c,jsxs as ne}from"react/jsx-runtime";function M(A,r,y){if(!_(r)||r==="")return!1;switch(A){case"day":return r>=1&&r<=31;case"month":return r>=1&&r<=12;case"year":return y===void 0||!_(y)?r>=1900:r>=1900&&r<=y;default:return!1}}var ae=fe(({autoFocus:A=!1,defaultValue:r,descriptions:y,disabled:g=!1,error:j,id:oe,label:J,maxYear:E=2099,name:T,onBlur:p,onChange:O,onFieldChange:Q,onFocus:$,onKeyDown:W,onKeyUp:b,placeholders:F,readOnly:k=!1,required:I=!1,success:Z,value:o,...x},se)=>{let B=ue(),l=(oe??B)||B,H=!1,C=U(null),f=U(null),d=U(null);ye(se,()=>({get day(){return C?.current??null},get month(){return f?.current??null},get year(){return d?.current??null}}));let[i,Y]=te({day:!1,month:!1,year:!1}),[ie,v]=te(!0),w=!G(j),V=!G(Z),N=w,D=V&&!N;de(()=>{let e={...i},t=o?.day||r?.day;e.day=!L(t)&&(!_(t)||!M("day",t));let u=o?.month||r?.month;e.month=!L(u)&&(!_(u)||!M("month",u));let m=o?.year||r?.year;e.year=!L(m)&&(!_(m)||!M("year",m,E)),(e.day!==i.day||e.month!==i.month||e.year!==i.year)&&Y(e)},[r?.day,r?.month,r?.year,o?.day,o?.month,o?.year,i,Y,E]);let P=(e,t,u)=>{let m=Number.parseInt(t,10);if(s(O)&&O(e,{...r,...o,[u]:m}),s(Q)&&Q(e,u,m),H){H=!1;return}if(!L(m)&&_(m)&&M(u,m,E)&&ie)switch(u){case"day":{t.length===2&&f?.current&&f.current.focus();break}case"month":{t.length===2&&d?.current&&d.current.focus();break}case"year":{t.length===4&&d?.current&&d.current.blur();break}default:break}},S=(e,t)=>{switch(s(W)&&W(e,t),e.key){case"ArrowDown":case"ArrowUp":{H=!0;break}case"ArrowLeft":{switch(t){case"month":{C?.current&&(C.current.focus(),e.preventDefault());break}case"year":{f?.current&&(f.current.focus(),e.preventDefault());break}default:break}break}case"ArrowRight":{switch(t){case"day":{f?.current&&(f.current.focus(),e.preventDefault());break}case"month":{d?.current&&(d.current.focus(),e.preventDefault());break}default:break}break}default:break}e.key==="ArrowUp"||e.key==="ArrowDown"?v(!1):v(!0)},ee=!g&&!k,q=`${n}-${a}__field !max-w-[100px] w-fit`;return ne("div",{className:re(`${n}-${a}`,"flex w-fit max-w-full flex-col gap-1",`${n}-${a}--${ee?"":"not-"}writable`,g?`${n}-${a}--disabled`:"",N?`${n}-${a}--with-error`:"",k?`${n}-${a}--readonly`:"",I?`${n}-${a}--required`:"",D?`${n}-${a}--with-success`:"",x.className),children:[G(J)?!1:c(ce,{asChild:!0,className:h(`${n}-${a}__label`,ee?"cursor-pointer":"cursor-default",I?`${n}-${a}__label--required after:text-feedback-danger-50 after:content-required`:""),htmlFor:`${l}-day`,children:c(z,{element:"label",children:J})}),ne("div",{className:h(`${n}-${a}__fields`,"flex w-fit gap-1"),children:[c(R,{id:`${l}-day`,ref:C,autoFocus:A,className:h(`${n}-${a}__field__day`,q,"[&_input]:min-w-9"),...r?.day===void 0?{}:{defaultValue:r.day},description:y?.day??"",disabled:g,error:i.day||w,inputMode:"numeric",max:31,maxLength:2,min:1,name:`${T||l}-day`,pattern:"[0-9]*",placeholder:F?.day??"",readOnly:k,required:I,size:2,success:D,suffix:i.day?c(K,{}):void 0,type:"number",...o?.day===void 0?{}:{value:o.day},...s(p)?{onBlur:e=>p(e,"day")}:{},onChange:(e,t)=>P(e,t,"day"),...s($)?{onFocus:e=>$(e,"year")}:{},onKeyDown:e=>S(e,"day"),...s(b)?{onKeyUp:e=>b(e,"day")}:{},...X(["className"],x)}),c(R,{id:`${l}-month`,ref:f,className:h(`${n}-${a}__field__month`,q,"[&_input]:min-w-9"),...r?.month===void 0?{}:{defaultValue:r.month},description:y?.month??"",disabled:g,error:i.month||w,inputMode:"numeric",max:12,maxLength:2,min:1,name:`${T||l}-month`,pattern:"[0-9]*",placeholder:F?.month??"",readOnly:k,required:I,size:2,success:D,suffix:i.month?c(K,{}):void 0,type:"number",...o?.month===void 0?{}:{value:o.month},...s(p)?{onBlur:e=>p(e,"month")}:{},onChange:(e,t)=>P(e,t,"month"),...s($)?{onFocus:e=>$(e,"year")}:{},onKeyDown:e=>S(e,"month"),...s(b)?{onKeyUp:e=>b(e,"month")}:{},...X(["className"],x)}),c(R,{id:`${l}-year`,ref:d,className:h(`${n}-${a}__field__year`,q,"[&_input]:!w-unset [&_input]:min-w-11"),...r?.year===void 0?{}:{defaultValue:r.year},description:y?.year??"",disabled:g,error:i.year||w,inputMode:"numeric",max:E,maxLength:4,min:1900,name:`${T||l}-year`,pattern:"[0-9]*",placeholder:F?.year??"",readOnly:k,required:I,size:4,success:D,suffix:i.year||w?c(K,{}):D?c(me,{}):void 0,type:"number",...o?.year===void 0?{}:{value:o.year},...s(p)?{onBlur:e=>p(e,"year")}:{},onChange:(e,t)=>P(e,t,"year"),...s($)?{onFocus:e=>$(e,"year")}:{},onKeyDown:e=>S(e,"year"),...s(b)?{onKeyUp:e=>b(e,"year")}:{},...X(["className"],x)})]}),(w||V)&&c(z,{className:h(`${n}-${a}__message ${n}-${a}__message--${N?"error":"success"}`,"cursor-default text-dark"),element:"div",variant:"caption-median",children:N?j:Z})]})});ae.displayName="InputDate";var Ne=ae;export{ae as a,Ne as b};
//# sourceMappingURL=chunk-QLPN2CRP.js.map