UNPKG

@progress/kendo-react-inputs

Version:

React Inputs offer a customizable interface for users to enter and pick different information. KendoReact Input package

9 lines (8 loc) 2.66 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const K=require("react"),e=require("prop-types"),U=require("./RadioButton.js"),a=require("@progress/kendo-react-common");function A(o){const c=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const n in o)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(o,n);Object.defineProperty(c,n,i.get?i:{enumerable:!0,get:()=>o[n]})}}return c.default=o,Object.freeze(c)}const s=A(K),N=a.createPropsContext(),y=s.forwardRef((o,c)=>{const n=a.usePropsContext(N,o),{id:i,ariaLabelledBy:O,ariaDescribedBy:j,className:B,data:C,defaultValue:I,disabled:r,name:q,labelPlacement:F,layout:d,style:S,value:g,valid:x,item:D=J.item,onChange:b,onFocus:m}=n,h=a.useUnstyled(),v=h&&h.uRadioGroup,u=s.useRef(null),R=s.useCallback(()=>{u.current&&a.focusFirstFocusableChild(u.current)},[]),p=s.useCallback(()=>({element:u.current,focus:R}),[R]);s.useImperativeHandle(c,p);const[T,P]=s.useState(I),k=g!==void 0,f=k?g:T,V=s.useCallback(t=>{const l=t.value;!k&&!r&&P(l),b&&!r&&a.dispatchEvent(b,t.syntheticEvent,p(),{value:l})},[P,b,r]),z=s.useCallback(t=>{m&&!r&&a.dispatchEvent(m,t.syntheticEvent,p(),void 0)},[m,r]),_=a.useId(),w=a.classNames(a.uRadioGroup.ul({c:v,horizontal:d==="horizontal",vertical:d==="vertical"||d===void 0}),B),H=a.useRtl(u,n.dir),L=C&&C.map((t,l)=>{const G=f===t.value,M=f==null,E={...t,valid:x,checked:G,disabled:!!(t.disabled||r),labelPlacement:t.labelPlacement?t.labelPlacement:F,tabIndex:t.tabIndex?t.tabIndex:M&&l===0||G?0:-1,index:l,name:q||_,required:t.required,onChange:V,onFocus:z};return s.createElement(D,{className:a.classNames(a.uRadioGroup.item({c:v,disabled:E.disabled||r})),key:l,role:"none"},s.createElement(U.RadioButton,{...E}))});return s.createElement("ul",{id:i,role:"radiogroup",className:w,ref:u,dir:H,style:S,"aria-labelledby":O,"aria-describedby":j},L)}),J={item:o=>s.createElement("li",{...o})};y.propTypes={ariaLabelledBy:e.string,ariaDescribedBy:e.string,className:e.string,data:e.arrayOf(e.object),defaultValue:e.any,dir:e.string,disabled:e.bool,labelPlacement:e.string,layout:e.string,name:e.string,style:e.object,value:e.any,onChange:e.func,onFocus:e.func};y.displayName="KendoRadioGroup";exports.RadioGroup=y;exports.RadioGroupPropsContext=N;