@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
3 lines • 2.57 kB
JavaScript
'use client';
import{a as n,c as E}from"./chunk-4ZAWXKKY.js";import{a as w,c as x}from"./chunk-2FP3EMO2.js";import{b as T}from"./chunk-HTOKQYVM.js";import{b as t}from"./chunk-CMFNILWJ.js";import{a as s,b}from"./chunk-XYM7TA65.js";import{forwardRef as k,useImperativeHandle as H,useRef as R}from"react";import L from"lodash/fp/isEmpty";import m from"lodash/fp/isFunction";import I from"lodash/fp/omit";import{Fragment as q,jsx as f,jsxs as N}from"react/jsx-runtime";var F=k(({disabled:c=!1,label:d,onChange:r,triggerProps:e={},variant:i=E,...l},_)=>{let h=R(null),a=R(null);H(_,()=>({get fileInput(){return a?.current??null},get trigger(){return h?.current??null}}));let $=o=>{m(e.onClick)&&e.onClick(o),a.current&&a.current.click()},v=o=>{if(m(e.onTouchStart)){e.onTouchStart(o);return}"ontouchstart"in document.documentElement&&$(o)},u=i==="text",C=b(`${t}-${n}`,`${t}-${n}--${i}`,l.required?`${t}-${n}--required`:"","flex max-h-6 max-w-full items-center justify-center gap-2 rounded-full outline-none transition-colors duration-300 ease-out active:transition-none px-unset appearance-none box-border",u?"":"h-6 px-3 py-1",e.fullWidth&&!e.iconOnly?`${t}-${n}--full-width w-full`:"",c?`${t}-${n}--disabled cursor-not-allowed ${x.light[i]}`:`${w.light[i]} cursor-pointer`,L(e.icon)?"":`${t}-${n}--with-addendum ${t}-${n}--with-addendum-${e.iconPosition}`,e.iconOnly?`${t}-${n}--icon-only w-6`:e.fullWidth?"":"w-fit",l.className),p=f("div",{className:s(`${t}-${n}__icon--${e.iconPosition}`,"flex h-3 w-3 items-center [&>svg]:h-3",u?"mt-0":""),children:e.icon}),M=f(T,{className:s(`${t}-${n}__label`,`${t}-${n}__label--${i}`,"flex max-h-full max-w-full flex-1 items-center justify-center overflow-hidden text-ellipsis whitespace-nowrap text-center align-middle",u?"pt-0":"",l.required?`${t}-${n}__label--required after:text-feedback-danger-50 after:content-required`:""),element:"div",variant:u?"body-1-link":"body-1-median",children:d}),y=!!e.icon;return N(q,{children:[N("button",{...e.id===void 0?{}:{id:e.id},ref:h,"aria-label":d,className:C,disabled:c,title:d,type:"button",onClick:$,onTouchStart:v,...I(["className","disabled","fullWidth","href","icon","iconOnly","iconPosition","id","label","onTouchStart","target","type","variant"],e),children:[y&&(e.iconPosition||"right")==="left"&&p,!e.iconOnly&&M,y&&(e.iconPosition||"right")==="right"&&p]}),f("input",{ref:a,disabled:c,hidden:!0,type:"file",...m(r)?{onChange:o=>r(o.target.files)}:{},...I(["type"],l)})]})});F.displayName="InputFile";var X=F;export{F as a,X as b};
//# sourceMappingURL=chunk-VKKEL5EX.js.map