@progress/kendo-react-form 13.3.0 → 13.4.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/Field.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FieldProps } from './interfaces/FieldProps.js';
9
+ import * as React from 'react';
10
+ /**
11
+ * Represents the Field component that is used inside the KendoReact Form component.
12
+ * It uses `name` property to access field value and meta information from Form state.
13
+ */
14
+ export declare const Field: {
15
+ (props: FieldProps & {
16
+ [customProp: string]: any;
17
+ }): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
18
+ displayName: string;
19
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FieldArrayProps } from './interfaces/FieldArrayProps.js';
9
+ import * as React from 'react';
10
+ /**
11
+ * Represents the FieldArray component that is used inside the KendoReact Form component.
12
+ * It provides methods via render props for common array manipulations.
13
+ */
14
+ export declare const FieldArray: React.FunctionComponent<FieldArrayProps>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FormClassStructure } from '@progress/kendo-react-common';
9
+ import { ResponsiveFormBreakPoint } from './interfaces/ResponsiveFormBreakPoint.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Represents the props of the KendoReact FieldWrapper component.
13
+ */
14
+ export interface FieldWrapperProps {
15
+ /**
16
+ * @hidden
17
+ */
18
+ children: any;
19
+ /**
20
+ * The styles that are applied to the FieldWrapper.
21
+ */
22
+ style?: React.CSSProperties;
23
+ /**
24
+ * Sets a class for the FieldWrapper DOM element.
25
+ */
26
+ className?: string;
27
+ /**
28
+ * Specifies the direction of the content.
29
+ */
30
+ dir?: string;
31
+ /**
32
+ * Defines the colspan for the form field element related to the parent Form component columns. Can be a number or an array of responsive breakpoints.
33
+ */
34
+ colSpan?: number | ResponsiveFormBreakPoint[];
35
+ /**
36
+ * @hidden
37
+ */
38
+ unstyled?: FormClassStructure;
39
+ }
40
+ /**
41
+ * Represents the KendoReact FieldWrapper component.
42
+ * It's designed to wrap the field editor, Label, Hint and Error components.
43
+ * The FieldWrapper supports only single editor inside it.
44
+ */
45
+ export declare const FieldWrapper: React.FunctionComponent<FieldWrapperProps>;
package/Form.d.ts ADDED
@@ -0,0 +1,274 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { default as PropTypes } from 'prop-types';
9
+ import { FieldValidatorType } from './interfaces/FieldValidator.js';
10
+ import { FormProps } from './interfaces/FormProps.js';
11
+ import { KeyValue } from './interfaces/KeyValue.js';
12
+ import * as React from 'react';
13
+ /**
14
+ * Represents the [KendoReact Form component](https://www.telerik.com/kendo-react-ui/components/form).
15
+ *
16
+ * @example
17
+ * ```jsx
18
+ * export const FormInput = (fieldRenderProps) => {
19
+ * const onValueChange = React.useCallback(
20
+ * (event) => fieldRenderProps.onChange(event.target.value),
21
+ * [fieldRenderProps.onChange]
22
+ * );
23
+ * return (
24
+ * <input
25
+ * className={'k-input'}
26
+ * value={fieldRenderProps.value}
27
+ * onChange={onValueChange}
28
+ * />
29
+ * );
30
+ * };
31
+ *
32
+ * export const App = () => {
33
+ * const handleSubmit = (dataItem) => alert(JSON.stringify(dataItem));
34
+ * return (
35
+ * <Form
36
+ * initialValues={{title: ''}}
37
+ * onSubmit={handleSubmit}
38
+ * render={(formRenderProps) => (
39
+ * <div>
40
+ * <Field name={'title'} component={FormInput} />
41
+ * <Button
42
+ * disabled={!formRenderProps.allowSubmit}
43
+ * onClick={formRenderProps.onSubmit}
44
+ * >
45
+ * Submit
46
+ * </Button>
47
+ * </div>
48
+ * )}
49
+ * />
50
+ * );
51
+ * };
52
+ * ```
53
+ */
54
+ export declare class Form extends React.Component<FormProps, {}> {
55
+ /**
56
+ * @hidden
57
+ */
58
+ static displayName: string;
59
+ /**
60
+ * @hidden
61
+ */
62
+ static propTypes: {
63
+ initialValues: PropTypes.Requireable<any>;
64
+ onSubmit: PropTypes.Requireable<(...args: any[]) => any>;
65
+ onSubmitClick: PropTypes.Requireable<(...args: any[]) => any>;
66
+ render: PropTypes.Validator<(...args: any[]) => any>;
67
+ id: PropTypes.Requireable<string>;
68
+ };
69
+ private _key?;
70
+ private _touched;
71
+ private _visited;
72
+ private _modified;
73
+ private _validatorsByField;
74
+ private _values;
75
+ private _fields;
76
+ private _unmounted;
77
+ private _submitted;
78
+ private readonly showLicenseWatermark;
79
+ private readonly licenseMessage?;
80
+ /**
81
+ * @hidden
82
+ */
83
+ private _accumulatorTimeout;
84
+ /**
85
+ * @hidden
86
+ */
87
+ get touched(): KeyValue<boolean>;
88
+ /**
89
+ * @hidden
90
+ */
91
+ set touched(value: KeyValue<boolean>);
92
+ /**
93
+ * @hidden
94
+ */
95
+ get visited(): KeyValue<boolean>;
96
+ /**
97
+ * @hidden
98
+ */
99
+ set visited(value: KeyValue<boolean>);
100
+ /**
101
+ * @hidden
102
+ */
103
+ get modified(): KeyValue<boolean>;
104
+ /**
105
+ * @hidden
106
+ */
107
+ set modified(value: KeyValue<boolean>);
108
+ /**
109
+ * @hidden
110
+ */
111
+ get validatorsByField(): KeyValue<(FieldValidatorType | FieldValidatorType[] | undefined)[]>;
112
+ /**
113
+ * @hidden
114
+ */
115
+ set validatorsByField(value: KeyValue<(FieldValidatorType | FieldValidatorType[] | undefined)[]>);
116
+ /**
117
+ * @hidden
118
+ */
119
+ get values(): KeyValue<any>;
120
+ /**
121
+ * @hidden
122
+ */
123
+ set values(value: KeyValue<any>);
124
+ /**
125
+ * @hidden
126
+ */
127
+ get fields(): string[];
128
+ /**
129
+ * @hidden
130
+ */
131
+ get formErrors(): KeyValue<string> | undefined;
132
+ /**
133
+ * @hidden
134
+ */
135
+ get errors(): KeyValue<string>;
136
+ /**
137
+ * @hidden
138
+ */
139
+ constructor(props: FormProps);
140
+ /**
141
+ * @hidden
142
+ */
143
+ componentWillUnmount(): void;
144
+ /**
145
+ * @hidden
146
+ */
147
+ isValid: () => boolean;
148
+ /**
149
+ * @hidden
150
+ */
151
+ accumulatedForceUpdate: () => void;
152
+ /**
153
+ * @hidden
154
+ */
155
+ resetForm: () => void;
156
+ /**
157
+ * Method for resetting the form state outside the form component.
158
+ *
159
+ * > Use `onReset` only if you cannot achieve the desired behavior through the Field component or by FormRenderProps.
160
+ */
161
+ onReset: () => void;
162
+ /**
163
+ * @hidden
164
+ */
165
+ addField: (field: string) => void;
166
+ /**
167
+ * @hidden
168
+ */
169
+ onSubmit: (event: React.SyntheticEvent<any>) => void;
170
+ /**
171
+ * Method for emiting changes to a specific field outside the form component.
172
+ *
173
+ * > Use `onChange` only if you cannot achieve the desired behavior through the Field component by FormRenderProps.
174
+ */
175
+ onChange: (name: string, options: {
176
+ value: any;
177
+ }) => void;
178
+ /**
179
+ * @hidden
180
+ */
181
+ onFocus: (name: string, skipForceUpdate?: boolean) => void;
182
+ /**
183
+ * @hidden
184
+ */
185
+ onBlur: (name: string, skipForceUpdate?: boolean) => void;
186
+ /**
187
+ * @hidden
188
+ */
189
+ onFieldRegister: (name: string, validator: FieldValidatorType | FieldValidatorType[] | undefined) => () => void;
190
+ /**
191
+ * @hidden
192
+ */
193
+ isFormValid: (errors: KeyValue<any>) => boolean;
194
+ /**
195
+ * @hidden
196
+ */
197
+ isFormModified: (modified: KeyValue<boolean>, fields: string[]) => boolean;
198
+ /**
199
+ * @hidden
200
+ */
201
+ isFormHasNotTouched: (touched: KeyValue<boolean>, fields: string[]) => boolean;
202
+ /**
203
+ * @hidden
204
+ */
205
+ isFormTouched: (touched: KeyValue<boolean>, fields: string[]) => boolean;
206
+ /**
207
+ * @hidden
208
+ */
209
+ isFormVisited: (visited: KeyValue<boolean>, fields: string[]) => boolean;
210
+ /**
211
+ * @hidden
212
+ */
213
+ valueGetter: (fieldName: string) => any;
214
+ /**
215
+ * @hidden
216
+ */
217
+ valueSetter: (fieldName: string, value: any) => any;
218
+ /**
219
+ * @hidden
220
+ */
221
+ onArrayAction: (name: string) => void;
222
+ /**
223
+ * @hidden
224
+ */
225
+ onInsert: (name: string, options: {
226
+ value: any;
227
+ index: number;
228
+ }) => void;
229
+ /**
230
+ * @hidden
231
+ */
232
+ onUnshift: (name: string, options: {
233
+ value: any;
234
+ }) => void;
235
+ /**
236
+ * @hidden
237
+ */
238
+ onPush: (name: string, options: {
239
+ value: any;
240
+ }) => void;
241
+ /**
242
+ * @hidden
243
+ */
244
+ onPop: (name: string) => any;
245
+ /**
246
+ * @hidden
247
+ */
248
+ onRemove: (name: string, options: {
249
+ index: number;
250
+ }) => any;
251
+ /**
252
+ * @hidden
253
+ */
254
+ onReplace: (name: string, options: {
255
+ value: any;
256
+ index: number;
257
+ }) => void;
258
+ /**
259
+ * @hidden
260
+ */
261
+ onMove: (name: string, options: {
262
+ prevIndex: number;
263
+ nextIndex: number;
264
+ }) => void;
265
+ /**
266
+ * @hidden
267
+ */
268
+ render(): React.JSX.Element;
269
+ }
270
+ /**
271
+ * Represent the `ref` of the Form component.
272
+ */
273
+ export interface FormHandle extends Pick<Form, keyof Form> {
274
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FieldValidatorType } from './interfaces/FieldValidator.js';
9
+ import * as React from 'react';
10
+ /** @hidden */
11
+ export type FormContextType = {
12
+ onSubmit: (event: React.SyntheticEvent<any>) => void;
13
+ onChange: (name: string, options: {
14
+ value: any;
15
+ }) => void;
16
+ onFocus: (name: string) => void;
17
+ onBlur: (name: string) => void;
18
+ onUnshift: (name: string, options: {
19
+ value: any;
20
+ }) => void;
21
+ onPush: (name: string, options: {
22
+ value: any;
23
+ }) => void;
24
+ onInsert: (name: string, options: {
25
+ index: number;
26
+ value: any;
27
+ }) => void;
28
+ onPop: (name: string) => any;
29
+ onRemove: (name: string, options: {
30
+ index: number;
31
+ }) => any;
32
+ onReplace: (name: string, options: {
33
+ index: number;
34
+ value: any;
35
+ }) => void;
36
+ onMove: (name: string, options: {
37
+ prevIndex: number;
38
+ nextIndex: number;
39
+ }) => void;
40
+ registerField: (name: string, validator: FieldValidatorType | FieldValidatorType[] | undefined) => void;
41
+ valueGetter: (name: string) => any;
42
+ errors: {
43
+ [name: string]: string;
44
+ };
45
+ touched: {
46
+ [name: string]: boolean;
47
+ };
48
+ visited: {
49
+ [name: string]: boolean;
50
+ };
51
+ modified: {
52
+ [name: string]: boolean;
53
+ };
54
+ id: string;
55
+ };
56
+ /** @hidden */
57
+ export declare const FormContext: React.Context<FormContextType | null>;
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { FormClassStructure } from '@progress/kendo-react-common';
9
+ import { ResponsiveFormBreakPoint } from './interfaces/ResponsiveFormBreakPoint.js';
10
+ import { Gutters } from './interfaces/Gutters.js';
11
+ import * as React from 'react';
12
+ /**
13
+ * @hidden
14
+ */
15
+ export declare const DEFAULT_FORM_GUTTERS: {
16
+ cols?: number | string | null;
17
+ rows?: number | string | null;
18
+ };
19
+ /**
20
+ * Represents the props of the KendoReact FormElement component.
21
+ */
22
+ export interface FormElementProps {
23
+ /**
24
+ * @hidden
25
+ */
26
+ children?: any;
27
+ /**
28
+ * The styles that are applied to the form DOM element.
29
+ */
30
+ style?: React.CSSProperties;
31
+ /**
32
+ * Sets a class for the form DOM element.
33
+ */
34
+ className?: string;
35
+ /**
36
+ * If set to `true` enable the horizontal layout of the form editors.
37
+ */
38
+ horizontal?: boolean;
39
+ /**
40
+ * Sets the id of the form DOM element. Takes priority over the Form's id.
41
+ */
42
+ id?: string;
43
+ /**
44
+ * Defines the number of columns in the form. Can be a number or an array of responsive breakpoints.
45
+ */
46
+ cols?: number | ResponsiveFormBreakPoint[];
47
+ /**
48
+ * Defines the gutters for the form. You can specify gutters for rows and columns. Number is equivalent to px.
49
+ */
50
+ gutters?: string | number | Gutters | ResponsiveFormBreakPoint[];
51
+ /**
52
+ * @hidden
53
+ */
54
+ [customProp: string]: any;
55
+ /**
56
+ * Configures the `size` of the Form.
57
+ *
58
+ * The available options are:
59
+ * - small
60
+ * - medium
61
+ * - large
62
+ *
63
+ * @default undefined (theme-controlled)
64
+ *
65
+ * @example
66
+ * ```jsx
67
+ * <FormElement size="large" />
68
+ * ```
69
+ */
70
+ size?: 'small' | 'medium' | 'large';
71
+ /**
72
+ * @hidden
73
+ */
74
+ unstyled?: FormClassStructure;
75
+ }
76
+ /**
77
+ * Represent the `ref` of the FormElement component.
78
+ */
79
+ export interface FormElementHandle {
80
+ /**
81
+ * Represents the props of the FormElement component.
82
+ */
83
+ props: FormElementProps;
84
+ /**
85
+ * Represents the element of the FormElement component.
86
+ */
87
+ element: HTMLFormElement | null;
88
+ }
89
+ /**
90
+ * Represents the KendoReact FormElement component.
91
+ * It's small wrapper around HTML form element which automatically attach the
92
+ * Form component's `onSubmit` render prop and Kendo CSS classes.
93
+ * Other props are passed to the DOM node.
94
+ */
95
+ export declare const FormElement: React.FunctionComponent<FormElementProps>;
package/FormElement.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react"),u=require("@progress/kendo-react-common"),_=require("./FormContext.js"),s=require("./utils.js");function M(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return o.default=t,Object.freeze(o)}const e=M(G),a={rows:"0px",cols:"32px"},N=e.forwardRef((t,o)=>{const r={size:"medium",...t},n=e.useRef(null),S=e.useRef(null);e.useImperativeHandle(S,()=>({element:n.current,props:r})),e.useImperativeHandle(o,()=>S.current);const c=e.useContext(_.FormContext),{className:F,style:j,horizontal:g,size:R,cols:l,gutters:i=a,...O}=r,p=u.useUnstyled(),v=p&&p.uForm,[h,w]=e.useState(void 0),[T,b]=e.useState(void 0),C=e.useMemo(()=>{if(g)return"horizontal";if(g===!1)return"vertical"},[g]),z=e.useMemo(()=>u.classNames(u.uForm.form({c:v,size:R,orientation:C}),F),[F,v,C,R]);return e.useEffect(()=>{if(!l&&!i){w(void 0);return}if(!i){b(void 0);return}const E=()=>{let f=0;if(n.current?f=s.innerWidth(n.current):typeof window!="undefined"&&(f=window.innerWidth),l){const y=s.calculateColumns(l,f);w(s.generateColumnClass(y))}if(i){const y=s.calculateGutters(i,f);b(y?{gap:s.generateGuttersStyling(y,a)}:{gap:s.generateGuttersStyling(a,a)})}};E();let m;const d=n.current;return d&&typeof window!="undefined"&&"ResizeObserver"in window&&(m=new ResizeObserver(E),m.observe(d)),()=>{m&&d&&m.unobserve(d)}},[l,i]),e.createElement("form",{ref:n,...O,id:t.id||(c?c.id:void 0),style:t.style,className:z,onSubmit:c?c.onSubmit:void 0},l?e.createElement("div",{className:u.classNames(u.uForm.formLayout({c:v}),h),style:T},t.children):t.children)});N.displayName="KendoReactFormElement";exports.DEFAULT_FORM_GUTTERS=a;exports.FormElement=N;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const G=require("react"),a=require("@progress/kendo-react-common"),_=require("./FormContext.js"),o=require("./utils.js");function M(t){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(s,r,n.get?n:{enumerable:!0,get:()=>t[r]})}}return s.default=t,Object.freeze(s)}const e=M(G),c={rows:"0px",cols:"32px"},N=e.forwardRef((t,s)=>{const r={size:void 0,...t},n=e.useRef(null),S=e.useRef(null);e.useImperativeHandle(S,()=>({element:n.current,props:r})),e.useImperativeHandle(s,()=>S.current);const u=e.useContext(_.FormContext),{className:F,style:j,horizontal:v,size:R,cols:l,gutters:i=c,...O}=r,p=a.useUnstyled(),g=p&&p.uForm,[h,w]=e.useState(void 0),[T,b]=e.useState(void 0),C=e.useMemo(()=>{if(v)return"horizontal";if(v===!1)return"vertical"},[v]),z=e.useMemo(()=>a.classNames(a.uForm.form({c:g,size:R,orientation:C}),F),[F,g,C,R]);return e.useEffect(()=>{if(!l&&!i){w(void 0);return}if(!i){b(void 0);return}const E=()=>{let f=0;if(n.current?f=o.innerWidth(n.current):typeof window!="undefined"&&(f=window.innerWidth),l){const y=o.calculateColumns(l,f);w(o.generateColumnClass(y))}if(i){const y=o.calculateGutters(i,f);b(y?{gap:o.generateGuttersStyling(y,c)}:{gap:o.generateGuttersStyling(c,c)})}};E();let m;const d=n.current;return d&&typeof window!="undefined"&&"ResizeObserver"in window&&(m=new ResizeObserver(E),m.observe(d)),()=>{m&&d&&m.unobserve(d)}},[l,i]),e.createElement("form",{ref:n,...O,id:t.id||(u?u.id:void 0),style:t.style,className:z,onSubmit:u?u.onSubmit:void 0},l?e.createElement("div",{className:a.classNames(a.uForm.formLayout({c:g}),h),style:T},t.children):t.children)});N.displayName="KendoReactFormElement";exports.DEFAULT_FORM_GUTTERS=c;exports.FormElement=N;
package/FormElement.mjs CHANGED
@@ -9,21 +9,21 @@ import * as e from "react";
9
9
  import { useUnstyled as L, classNames as g, uForm as h } from "@progress/kendo-react-common";
10
10
  import { FormContext as M } from "./FormContext.mjs";
11
11
  import { innerWidth as O, calculateColumns as T, generateColumnClass as U, calculateGutters as W, generateGuttersStyling as E } from "./utils.mjs";
12
- const m = {
12
+ const c = {
13
13
  rows: "0px",
14
14
  cols: "32px"
15
15
  }, A = e.forwardRef((t, F) => {
16
- const y = {
17
- size: "medium",
16
+ const v = {
17
+ size: void 0,
18
18
  ...t
19
- }, s = e.useRef(null), v = e.useRef(null);
20
- e.useImperativeHandle(v, () => ({ element: s.current, props: y })), e.useImperativeHandle(F, () => v.current);
21
- const n = e.useContext(M), { className: w, style: H, horizontal: c, size: p, cols: r, gutters: o = m, ...N } = y, C = L(), d = C && C.uForm, [z, R] = e.useState(void 0), [x, f] = e.useState(void 0), S = e.useMemo(() => {
22
- if (c)
19
+ }, s = e.useRef(null), y = e.useRef(null);
20
+ e.useImperativeHandle(y, () => ({ element: s.current, props: v })), e.useImperativeHandle(F, () => y.current);
21
+ const n = e.useContext(M), { className: w, style: H, horizontal: m, size: p, cols: o, gutters: r = c, ...N } = v, C = L(), d = C && C.uForm, [z, R] = e.useState(void 0), [x, f] = e.useState(void 0), S = e.useMemo(() => {
22
+ if (m)
23
23
  return "horizontal";
24
- if (c === !1)
24
+ if (m === !1)
25
25
  return "vertical";
26
- }, [c]), G = e.useMemo(
26
+ }, [m]), G = e.useMemo(
27
27
  () => g(
28
28
  h.form({
29
29
  c: d,
@@ -35,23 +35,23 @@ const m = {
35
35
  [w, d, S, p]
36
36
  );
37
37
  return e.useEffect(() => {
38
- if (!r && !o) {
38
+ if (!o && !r) {
39
39
  R(void 0);
40
40
  return;
41
41
  }
42
- if (!o) {
42
+ if (!r) {
43
43
  f(void 0);
44
44
  return;
45
45
  }
46
46
  const b = () => {
47
47
  let a = 0;
48
- if (s.current ? a = O(s.current) : typeof window != "undefined" && (a = window.innerWidth), r) {
49
- const u = T(r, a);
48
+ if (s.current ? a = O(s.current) : typeof window != "undefined" && (a = window.innerWidth), o) {
49
+ const u = T(o, a);
50
50
  R(U(u));
51
51
  }
52
- if (o) {
53
- const u = W(o, a);
54
- f(u ? { gap: E(u, m) } : { gap: E(m, m) });
52
+ if (r) {
53
+ const u = W(r, a);
54
+ f(u ? { gap: E(u, c) } : { gap: E(c, c) });
55
55
  }
56
56
  };
57
57
  b();
@@ -60,7 +60,7 @@ const m = {
60
60
  return l && typeof window != "undefined" && "ResizeObserver" in window && (i = new ResizeObserver(b), i.observe(l)), () => {
61
61
  i && l && i.unobserve(l);
62
62
  };
63
- }, [r, o]), /* @__PURE__ */ e.createElement(
63
+ }, [o, r]), /* @__PURE__ */ e.createElement(
64
64
  "form",
65
65
  {
66
66
  ref: s,
@@ -70,7 +70,7 @@ const m = {
70
70
  className: G,
71
71
  onSubmit: n ? n.onSubmit : void 0
72
72
  },
73
- r ? /* @__PURE__ */ e.createElement(
73
+ o ? /* @__PURE__ */ e.createElement(
74
74
  "div",
75
75
  {
76
76
  className: g(
@@ -87,6 +87,6 @@ const m = {
87
87
  });
88
88
  A.displayName = "KendoReactFormElement";
89
89
  export {
90
- m as DEFAULT_FORM_GUTTERS,
90
+ c as DEFAULT_FORM_GUTTERS,
91
91
  A as FormElement
92
92
  };
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { ResponsiveFormBreakPoint } from './interfaces/ResponsiveFormBreakPoint.js';
9
+ import { Gutters } from './interfaces/Gutters.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * @hidden
13
+ */
14
+ export declare const DEFAULT_FIELDSET_GUTTERS: {
15
+ cols?: number | string | null;
16
+ rows?: number | string | null;
17
+ };
18
+ /**
19
+ * Represents the props of the KendoReact FormFieldSet component.
20
+ */
21
+ export interface FormFieldSetProps {
22
+ /**
23
+ * Defines the number of columns of the fieldset. Can be a number or an array of responsive breakpoints.
24
+ */
25
+ cols?: number | ResponsiveFormBreakPoint[];
26
+ /**
27
+ * Defines the colspan for the fieldset related to the parent Form component columns. Can be a number or an array of responsive breakpoints.
28
+ */
29
+ colSpan?: number | ResponsiveFormBreakPoint[];
30
+ /**
31
+ * Defines the gutters for the fieldset. You can specify gutters for rows and columns. Number is equivalent to px.
32
+ */
33
+ gutters?: string | number | Gutters | ResponsiveFormBreakPoint[];
34
+ /**
35
+ * Defines the legend for the fieldset.
36
+ */
37
+ legend?: string;
38
+ /**
39
+ * @hidden
40
+ */
41
+ children?: any;
42
+ /**
43
+ * The styles that are applied to the form DOM element.
44
+ */
45
+ style?: React.CSSProperties;
46
+ /**
47
+ * Sets a class for the form DOM element.
48
+ */
49
+ className?: string;
50
+ }
51
+ /**
52
+ * Represent the `ref` of the FormFieldSet component.
53
+ */
54
+ export interface FormFieldSetHandle {
55
+ /**
56
+ * Represents the props of the FormFieldSet component.
57
+ */
58
+ props: FormFieldSetProps;
59
+ /**
60
+ * Represents the element of the FormFieldSet component.
61
+ */
62
+ element: HTMLFieldSetElement | null;
63
+ }
64
+ /**
65
+ * Represents the KendoReact FormFieldSet component.
66
+ */
67
+ export declare const FormFieldSet: React.FunctionComponent<FormFieldSetProps>;