npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cov-kendo-form-components

v14.1.0

Published

COV Kendo From Component library. Helps COV developers to use Kendo components in a consistent way.

Downloads

434

Readme

cov-kendo-form-components

COV Kendo Form Component library. Helps COV developers use Kendo components in a consistent way with built-in validation, accessibility, and required-field styling.

NPM JavaScript Style Guide

Install

npm install --save cov-kendo-form-components

Peer Dependencies

This library requires the following packages to be installed in your project:

npm install --save react react-dom \
  @progress/kendo-react-dateinputs \
  @progress/kendo-react-dropdowns \
  @progress/kendo-react-form \
  @progress/kendo-react-inputs \
  @progress/kendo-react-labels

Available Components

| Component | Kendo Component | Description | | --------------------- | --------------- | -------------------------------------------------------------- | | FormInput | Input | Standard text input | | FormNumericTextBox | NumericTextBox | Numeric-only input with formatting | | FormMaskedTextBox | MaskedTextBox | Input with a mask pattern (e.g. phone, SSN) | | FormTextArea | TextArea | Multi-line text input with optional character limit | | FormCheckbox | Checkbox | Single checkbox | | FormSwitch | Switch | Toggle switch | | FormRadioButton | RadioButton | Single radio button | | FormRadioGroup | RadioGroup | Group of radio buttons | | FormDropDownList | DropDownList | Single-select dropdown | | FormComboBox | ComboBox | Searchable single-select dropdown | | FormAutoComplete | AutoComplete | Auto-complete text input | | FormMultiSelect | MultiSelect | Multi-select dropdown | | FormDatePicker | DatePicker | Date picker (default format: dd-MMM-yyyy) | | FormDateInput | DateInput | Date input field (default format: dd-MMM-yyyy) | | FormDateTimePicker | DateTimePicker | Date and time picker (default format: yyyy-MM-dd hh:mm:ss a) | | FormTimePicker | TimePicker | Time picker (default format: hh:mm:ss a) | | FormDateRangePicker | DateRangePicker | Start/end date range picker |

Common Props

All components support these props via the Kendo Field component:

| Prop | Type | Description | | ----------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------ | | id | string | Element ID | | name | string | Field name (maps to form data) | | label | string | Label text | | hint | string | Hint text shown below the field | | disabled | boolean | Disables the field | | optional | boolean | When false, marks the field as required with a cov-required CSS class. Defaults to undefined (treated as optional) | | validator | function | Validation function | | fieldWrapperClassName | string | CSS class for the FieldWrapper container | | onBlurCustom | function | Additional blur handler (called alongside the form's built-in blur tracking) | | onFocusCustom | function | Additional focus handler (called alongside the form's built-in focus tracking) |

Usage

FormInput & FormCheckbox

import React from "react";
import { Form, Field, FormElement } from "@progress/kendo-react-form";
import { FormInput, FormCheckbox } from "cov-kendo-form-components";

function ApplicationForm(props) {
  return (
    <Form
      initialValues={props.initialValues}
      render={(formRenderProps) => (
        <FormElement className="row">
          <fieldset className={"k-form-fieldset col-xl-4 col-md-8 col-sm-12"}>
            <legend className={"k-form-legend"}>{props.title}</legend>

            <Field id={"id"} name={"id"} label={"ID"} component={FormInput} className="form-control small" disabled />
            <Field
              id={"displayName"}
              name={"displayName"}
              label={"Display Name"}
              component={FormInput}
              validator={requiredFieldValidator("Display Name")}
              className="form-control large"
              hint={"e.g. this is a hint"}
            />
            <Field id={"isActive"} name={"isActive"} label={"Active"} component={FormCheckbox} />
          </fieldset>
        </FormElement>
      )}
    />
  );
}

FormTextArea (with character limit)

import { FormTextArea } from "cov-kendo-form-components";

<Field
  id={"notes"}
  name={"notes"}
  label={"Notes"}
  component={FormTextArea}
  optional={false}
  charLimit={500}
  hint={"Provide additional details"}
/>;

FormNumericTextBox

import { FormNumericTextBox } from "cov-kendo-form-components";

<Field id={"amount"} name={"amount"} label={"Amount"} component={FormNumericTextBox} optional={false} format={"c2"} min={0} />;

FormMaskedTextBox

import { FormMaskedTextBox } from "cov-kendo-form-components";

<Field
  id={"phone"}
  name={"phone"}
  label={"Phone Number"}
  component={FormMaskedTextBox}
  mask={"(000) 000-0000"}
  optional={false}
/>;

FormDropDownList

Accepts data as an array or as an object via dataAsObject (keys are converted to an array automatically).

import { FormDropDownList } from "cov-kendo-form-components";

<Field
  id={"status"}
  name={"status"}
  label={"Status"}
  component={FormDropDownList}
  data={["Active", "Inactive", "Pending"]}
  optional={false}
/>;

FormComboBox

import { FormComboBox } from "cov-kendo-form-components";

<Field
  id={"department"}
  name={"department"}
  label={"Department"}
  component={FormComboBox}
  dataAsObject={departments}
  dataItemKey={"id"}
  textField={"name"}
  optional={false}
/>;

FormAutoComplete

import { FormAutoComplete } from "cov-kendo-form-components";

<Field id={"city"} name={"city"} label={"City"} component={FormAutoComplete} data={["New York", "Los Angeles", "Chicago"]} />;

FormMultiSelect

import { FormMultiSelect } from "cov-kendo-form-components";

<Field id={"tags"} name={"tags"} label={"Tags"} component={FormMultiSelect} data={["Urgent", "Review", "Follow-up"]} />;

FormRadioGroup

Accepts data as an array or as an object via dataAsObject.

import { FormRadioGroup } from "cov-kendo-form-components";

<Field
  id={"priority"}
  name={"priority"}
  label={"Priority"}
  component={FormRadioGroup}
  data={[
    { label: "High", value: "high" },
    { label: "Medium", value: "medium" },
    { label: "Low", value: "low" }
  ]}
  optional={false}
/>;

FormSwitch

import { FormSwitch } from "cov-kendo-form-components";

<Field id={"notifications"} name={"notifications"} label={"Enable Notifications"} component={FormSwitch} />;

FormDatePicker

import { FormDatePicker } from "cov-kendo-form-components";

<Field
  id={"startDate"}
  name={"startDate"}
  label={"Start Date"}
  component={FormDatePicker}
  optional={false}
  format={"dd-MMM-yyyy"}
/>;

FormDateTimePicker

import { FormDateTimePicker } from "cov-kendo-form-components";

<Field
  id={"appointmentTime"}
  name={"appointmentTime"}
  label={"Appointment"}
  component={FormDateTimePicker}
  format={"yyyy-MM-dd hh:mm:ss a"}
/>;

FormTimePicker

import { FormTimePicker } from "cov-kendo-form-components";

<Field id={"meetingTime"} name={"meetingTime"} label={"Meeting Time"} component={FormTimePicker} format={"hh:mm:ss a"} />;

FormDateRangePicker

import { FormDateRangePicker } from "cov-kendo-form-components";

<Field id={"dateRange"} name={"dateRange"} label={"Date Range"} component={FormDateRangePicker} />;

FormDateInput

import { FormDateInput } from "cov-kendo-form-components";

<Field id={"birthDate"} name={"birthDate"} label={"Birth Date"} component={FormDateInput} format={"dd-MMM-yyyy"} />;

Required Field Behavior

By default, fields are treated as optional. To mark a field as required:

  • Set optional={false} on the Field component. This adds the cov-required CSS class to the label.
  • Add a validator prop to enforce the validation rule.

A screen-reader-only "Required field" <span> is automatically rendered for accessibility.

Custom Blur & Focus Handlers

Several components support onBlurCustom and onFocusCustom props. These allow you to run additional logic on blur/focus while preserving the form's internal touched-state tracking.

<Field
  id={"email"}
  name={"email"}
  label={"Email"}
  component={FormInput}
  onBlurCustom={(e) => console.log("Field blurred", e)}
  onFocusCustom={(e) => console.log("Field focused", e)}
/>

License

MIT © covnpmjs