@progress/kendo-react-labels
Version:
React Labels package provides components for labelling form editors. KendoReact Labels package
9 lines (8 loc) • 2.07 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
*-------------------------------------------------------------------------------------------
*/
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("react"),e=require("prop-types"),i=require("@progress/kendo-react-common"),k=require("@progress/kendo-react-intl"),r=require("./messages/index.js");function v(t){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const l in t)if(l!=="default"){const s=Object.getOwnPropertyDescriptor(t,l);Object.defineProperty(a,l,s.get?s:{enumerable:!0,get:()=>t[l]})}}return a.default=t,Object.freeze(a)}const o=v(_),O=t=>{const[a,l]=o.useState({focused:!1}),s=T=>{l({focused:!0})},F=T=>{l({focused:!1})},{label:c,editorId:d,className:L,labelClassName:S,editorValue:u,editorPlaceholder:h,editorValid:E,editorDisabled:b,style:j,id:m,optional:C,unstyled:g,...P}=t,q=k.useLocalization(),f=C?q.toLanguageString(r.labelsOptional,r.messages[r.labelsOptional]):"",p=f&&o.createElement("span",{className:"k-label-optional"},f),y=g&&g.uFloatingLabel,n=!h&&!u&&u!==0,R=i.classNames(i.uFloatingLabel.wrapper({c:y,focused:a.focused,empty:n,notEmpty:!n,disabled:b,isRtl:t.dir==="rtl"}),L),N=i.classNames(i.uFloatingLabel.label({c:y,focused:a.focused,empty:n,notEmpty:!n,invalid:E===!1,disabled:b}),S);return o.createElement("span",{...P,id:t.id,className:R,onFocus:s,onBlur:F,style:j,dir:t.dir},t.children,c?d?o.createElement("label",{id:m,htmlFor:d,className:N},c,p):o.createElement("span",{id:m,className:N},c,p):null)};O.propTypes={label:e.node,editorId:e.string,editorValue:e.oneOfType([e.string,e.bool,e.number]),editorPlaceholder:e.string,editorValid:e.bool,editorDisabled:e.bool,id:e.string,style:e.object,className:e.string,labelClassName:e.string,optional:e.bool};exports.FloatingLabel=O;