@progress/kendo-react-buttons
Version:
All you need in React Button in one package: disabled/enabled states, built-in styles and more. KendoReact Buttons package
9 lines (8 loc) • 1.93 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),s=require("prop-types"),a=require("@progress/kendo-react-common");function S(t){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const c=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(l,r,c.get?c:{enumerable:!0,get:()=>t[r]})}}return l.default=t,Object.freeze(l)}const n=S(w),B=t=>{const{children:l,className:r,dir:c,disabled:m,width:p}=t,j=a.useUnstyled(),y=t.unstyled||j,f=y&&y.uButtonGroup,C=e=>{const i=n.Children.count(e),d=c!==void 0?c==="rtl":b.current&&getComputedStyle(b.current).direction==="rtl"||!1;return n.Children.map(e,(o,u)=>{if(n.isValidElement(o)){const N=u===i-1,O=d,v=a.classNames(o.props.className,a.uButtonGroup.position({c:f,start:O?N:u===0,end:O?u===0:N}));return G(o,v)}return o})},G=(e,i)=>{const d={...p?{width:p}:{},...e.props.style||{}},o=m||e.props.disabled,u={...e.props,...i?{className:i}:{},...Object.keys(d).length?{style:d}:{},...o!==void 0?{disabled:o}:{}};return n.Children.count(e.props.children)>0?n.cloneElement(e,u,e.props.children):n.cloneElement(e,u)},b=n.useRef(null),P=C(l),g=a.classNames(a.uButtonGroup.wrapper({c:f,stretched:!!p,disabled:m}),r),R={className:g,style:{width:`${p}`},dir:c,role:"group","aria-disabled":m};return n.createElement("div",{ref:b,...R,className:g},P)};B.propTypes={children:s.oneOfType([s.arrayOf(s.element),s.element]),className:s.string,disabled:s.bool,width:s.string,dir:s.string};exports.ButtonGroup=B;