@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and PandaCSS
3 lines • 2.98 kB
JavaScript
'use client';
import{a as R}from"./chunk-4T67RILQ.js";import{a as o}from"./chunk-FJXP7YHG.js";import{a as g}from"./chunk-HTOKQYVM.js";import{b as e}from"./chunk-CMFNILWJ.js";import{a as h,b as M}from"./chunk-XYM7TA65.js";import*as H from"@radix-ui/react-toolbar";import{forwardRef as I,useContext as G}from"react";import b from"lodash/fp/isEmpty";import a from"lodash/fp/isFunction";import L from"lodash/fp/omit";import{jsx as c,jsxs as U}from"react/jsx-runtime";var S=I(({active:T=!1,children:$,disabled:_=!1,fullWidth:x=!1,href:p,icon:E,iconOnly:r=!1,iconPosition:l="left",label:u,onClick:n,target:w,type:F="button",underlined:v,...t},D)=>{let s=!!E,B=!!$;!B&&b(u)&&console.warn("You must provide a `label` or `children` to the `ToolbarButton` component");let{disabled:j}=G(R),m=_||j,k=i=>{if(a(t.onTouchStart)){t.onTouchStart(i);return}"ontouchstart"in document.documentElement&&a(n)&&n(i)},A=i=>{a(t.onTouchEnd)&&t.onTouchEnd(i),"ontouchstart"in document.documentElement&&!a(t.onTouchStart)&&a(n)&&i.preventDefault()},d=!b(p),y=M(`${e}-${o}__button`,d?`${e}-${o}__button__link`:"",d||v===!1?"no-underline":"","flex h-3 max-h-3 min-h-3 max-w-full items-center justify-center gap-1 rounded-xs bg-transparent p-0 text-left outline-none transition-colors duration-300 ease-out active:transition-none",x&&!r?`${e}-${o}__button--full-width w-full`:"",T&&!m?"text-dark":m?"text-disabled":"text-placeholder",_?`${e}-${o}__button--disabled cursor-not-allowed`:"cursor-pointer hover:bg-decorative-pink-90 hover:text-dark",s?`${e}-${o}__button--with-addendum ${e}-${o}__button--with-addendum-${l==="left"?"prefix":"suffix"}`:"",r?`${e}-${o}__button--icon-only px-half`:x?"":"w-fit",r?"":s?l==="left"?"pl-half pr-1":"pl-1 pr-half":"px-1",t.className),f=c("div",{className:h(`${e}-${o}__button__icon`,`${e}-${o}__button__icon--${l}`,"mt-0 flex h-3 w-3 items-center [&>svg]:h-3",d?`${e}-${o}__button__link__icon--${l}`:""),children:E}),N=U(g,{className:h(`${e}-${o}__button__label`,d?`${e}-${o}__button__link__label`:"","flex max-h-full max-w-full flex-1 items-center justify-center gap-half overflow-hidden text-ellipsis whitespace-nowrap pt-0 text-center align-middle",v===!1?"no-underline":d?"underline":"",m?`${e}-${o}__button__label--disabled cursor-not-allowed`:"cursor-pointer"),element:"div",variant:T?"body-1-median":"body-1",children:[s&&l==="left"&&f,r?!1:B?$:c("div",{className:"min-w-0 truncate",children:u}),s&&l==="right"&&f]});return d?c("a",{...t.id===void 0?{}:{id:t.id},"aria-label":u,className:y,href:p,...b(w)?{}:{target:w},title:u,...!_&&a(n)?{onClick:n}:{},...L(["className","id"],t),children:r?f:N}):c(H.Button,{...t.id===void 0?{}:{id:t.id},ref:D,"aria-label":u,className:y,...t.dir===void 0?{}:{dir:t.dir},disabled:m,title:u,type:F,onTouchEnd:A,onTouchStart:k,...a(n)?{onClick:n}:{},...L(["className","dir","id","onTouchEnd","onTouchStart"],t),children:r?f:N})});S.displayName="ToolbarButton";var Z=S;export{S as a,Z as b};
//# sourceMappingURL=chunk-UACCS5WU.js.map