@progress/kendo-react-buttons 13.3.0 → 13.4.0-develop.1

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.
Files changed (77) hide show
  1. package/Button.d.ts +114 -0
  2. package/Button.js +1 -1
  3. package/Button.mjs +42 -44
  4. package/ButtonGroup.d.ts +47 -0
  5. package/ButtonGroupInterface.d.ts +39 -0
  6. package/ButtonInterface.d.ts +49 -0
  7. package/Chip/Chip.d.ts +425 -0
  8. package/Chip/Chip.js +1 -1
  9. package/Chip/Chip.mjs +43 -39
  10. package/Chip/ChipList.d.ts +221 -0
  11. package/Chip/ChipList.js +1 -1
  12. package/Chip/ChipList.mjs +40 -41
  13. package/Chip/chip-list-contexts.d.ts +20 -0
  14. package/Chip/data-reducer.d.ts +29 -0
  15. package/Chip/focus-reducer.d.ts +31 -0
  16. package/Chip/selection-reducer.d.ts +37 -0
  17. package/FloatingActionButton/FloatingActionButton.d.ts +23 -0
  18. package/FloatingActionButton/FloatingActionButton.js +1 -1
  19. package/FloatingActionButton/FloatingActionButton.mjs +85 -85
  20. package/FloatingActionButton/FloatingActionButtonItem.d.ts +132 -0
  21. package/FloatingActionButton/interfaces/FloatingActionButtonHandle.d.ts +20 -0
  22. package/FloatingActionButton/interfaces/FloatingActionButtonPopupSettings.d.ts +31 -0
  23. package/FloatingActionButton/interfaces/FloatingActionButtonProps.d.ts +354 -0
  24. package/FloatingActionButton/models/align-offset.d.ts +27 -0
  25. package/FloatingActionButton/models/align.d.ts +34 -0
  26. package/FloatingActionButton/models/events.d.ts +28 -0
  27. package/FloatingActionButton/models/position-mode.d.ts +16 -0
  28. package/FloatingActionButton/models/rounded.d.ts +19 -0
  29. package/FloatingActionButton/models/size.d.ts +18 -0
  30. package/FloatingActionButton/models/theme-color.d.ts +25 -0
  31. package/FloatingActionButton/utils.d.ts +34 -0
  32. package/ListButton/ButtonItem.d.ts +72 -0
  33. package/ListButton/DropDownButton.d.ts +153 -0
  34. package/ListButton/DropDownButton.js +1 -1
  35. package/ListButton/DropDownButton.mjs +62 -46
  36. package/ListButton/DropDownButtonItem.d.ts +37 -0
  37. package/ListButton/SplitButton.d.ts +142 -0
  38. package/ListButton/SplitButton.js +1 -1
  39. package/ListButton/SplitButton.mjs +29 -13
  40. package/ListButton/SplitButtonItem.d.ts +32 -0
  41. package/ListButton/models/ButtonItem.d.ts +41 -0
  42. package/ListButton/models/ListButtonProps.d.ts +411 -0
  43. package/ListButton/models/PopupSettings.d.ts +35 -0
  44. package/ListButton/models/events.d.ts +59 -0
  45. package/ListButton/utils/navigation.d.ts +12 -0
  46. package/ListButton/utils/popup.d.ts +16 -0
  47. package/SpeechToTextButton/SpeechToTextButton.d.ts +36 -0
  48. package/SpeechToTextButton/SpeechToTextButton.js +1 -1
  49. package/SpeechToTextButton/SpeechToTextButton.mjs +24 -24
  50. package/SpeechToTextButton/interfaces/SpeechToTextButtonHandle.d.ts +28 -0
  51. package/SpeechToTextButton/interfaces/SpeechToTextButtonProps.d.ts +117 -0
  52. package/dist/cdn/js/kendo-react-buttons.js +1 -1
  53. package/index.d.mts +43 -2928
  54. package/index.d.ts +43 -2928
  55. package/messages/index.d.ts +22 -0
  56. package/models/index.d.ts +95 -0
  57. package/package-metadata.d.ts +12 -0
  58. package/package-metadata.js +1 -1
  59. package/package-metadata.mjs +10 -16
  60. package/package.json +5 -5
  61. package/toolbar/Toolbar.d.ts +38 -0
  62. package/toolbar/Toolbar.js +1 -1
  63. package/toolbar/Toolbar.mjs +15 -15
  64. package/toolbar/events/ToolbarResizeEvent.d.ts +29 -0
  65. package/toolbar/interfaces/ToolbarHandle.d.ts +21 -0
  66. package/toolbar/interfaces/ToolbarOverflowProps.d.ts +50 -0
  67. package/toolbar/interfaces/ToolbarProps.d.ts +128 -0
  68. package/toolbar/messages/index.d.ts +27 -0
  69. package/toolbar/tools/ToolbarItem.d.ts +47 -0
  70. package/toolbar/tools/ToolbarOverflowSection.d.ts +21 -0
  71. package/toolbar/tools/ToolbarScrollButton.d.ts +23 -0
  72. package/toolbar/tools/ToolbarScrollButton.js +1 -1
  73. package/toolbar/tools/ToolbarScrollButton.mjs +11 -20
  74. package/toolbar/tools/ToolbarScrollable.d.ts +28 -0
  75. package/toolbar/tools/ToolbarSeparator.d.ts +22 -0
  76. package/toolbar/tools/ToolbarSpacer.d.ts +30 -0
  77. package/util.d.ts +31 -0
package/Button.d.ts ADDED
@@ -0,0 +1,114 @@
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 { ButtonsClassStructure } from '@progress/kendo-react-common';
9
+ import { ButtonInterface } from './ButtonInterface.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * Represents the props of the [KendoReact Button component](https://www.telerik.com/kendo-react-ui/components/buttons/button).
13
+ * Extends the [native button props](https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement).
14
+ */
15
+ export interface ButtonProps extends ButtonInterface, React.ButtonHTMLAttributes<HTMLButtonElement> {
16
+ /**
17
+ * @hidden
18
+ */
19
+ children?: React.ReactNode;
20
+ /**
21
+ * Configures the `size` of the Button. See [Button Appearance](https://www.telerik.com/kendo-react-ui/components/buttons/button/appearance).
22
+ *
23
+ * @default undefined (theme-controlled)
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <Button size="large">Large Button</Button>
28
+ * ```
29
+ */
30
+ size?: 'small' | 'medium' | 'large';
31
+ /**
32
+ * Configures the `roundness` of the Button. See [Button Appearance](https://www.telerik.com/kendo-react-ui/components/buttons/button/appearance).
33
+ *
34
+ * @default undefined (theme-controlled)
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * <Button rounded="full">Rounded Button</Button>
39
+ * ```
40
+ */
41
+ rounded?: 'small' | 'medium' | 'large' | 'full';
42
+ /**
43
+ * Sets the `title` HTML attribute of the Button.
44
+ */
45
+ title?: string;
46
+ /**
47
+ * Configures the `fillMode` of the Button. See [Button Appearance](https://www.telerik.com/kendo-react-ui/components/buttons/button/appearance).
48
+ *
49
+ * @default undefined (theme-controlled)
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * <Button fillMode="outline">Outline Button</Button>
54
+ * ```
55
+ */
56
+ fillMode?: 'solid' | 'outline' | 'flat' | 'link' | 'clear';
57
+ /**
58
+ * Configures the `themeColor` of the Button. See [Button Appearance](https://www.telerik.com/kendo-react-ui/components/buttons/button/appearance).
59
+ *
60
+ * @default undefined (theme-controlled)
61
+ *
62
+ * @example
63
+ * ```tsx
64
+ * <Button themeColor="primary">Primary Button</Button>
65
+ * ```
66
+ */
67
+ themeColor?: 'base' | 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error' | 'dark' | 'light' | 'inverse';
68
+ /**
69
+ * Sets an SVG icon or custom element before the content of the Button. For the custom component, consider using
70
+ * [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content).
71
+ * Do not use [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
72
+ */
73
+ startIcon?: React.ReactNode;
74
+ /**
75
+ * Sets an SVG icon or custom element after the content of the Button. For the custom component, consider using
76
+ * [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content).
77
+ * Do not use [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
78
+ */
79
+ endIcon?: React.ReactNode;
80
+ /**
81
+ * The unstyled option classes.
82
+ */
83
+ unstyled?: ButtonsClassStructure;
84
+ /**
85
+ * @hidden
86
+ */
87
+ ariaPressed?: boolean;
88
+ /**
89
+ * Configures the `size` of the SVG icon that displays inside the Button.
90
+ *
91
+ * @default undefined (theme-controlled)
92
+ *
93
+ * @example
94
+ * ```tsx
95
+ * <Button svgIcon={searchIcon} iconSize="large">Search</Button>
96
+ * ```
97
+ */
98
+ iconSize?: 'small' | 'medium' | 'large';
99
+ }
100
+ /**
101
+ * @hidden
102
+ */
103
+ export interface ButtonHandle {
104
+ /**
105
+ * Gets the DOM element of the Button component.
106
+ */
107
+ element: HTMLButtonElement | null;
108
+ /**
109
+ * Returns `true` when the component is togglable and selected ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/toggleable)).
110
+ * Otherwise, returns `false`.
111
+ */
112
+ selected: boolean;
113
+ }
114
+ export declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<ButtonHandle | null>>;
package/Button.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 W=require("react"),l=require("prop-types"),e=require("@progress/kendo-react-common");function F(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(r,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}return r.default=n,Object.freeze(r)}const t=F(W);function G({imageUrl:n,name:r,iconClass:o,svgIcon:s,imageAlt:u,buttonClasses:i,iconSize:c}){return n?t.createElement("img",{role:"presentation",className:e.classNames(e.uButton.icon({c:i})),alt:u,src:n}):r||s?t.createElement(e.IconWrap,{className:e.classNames(e.uButton.icon({c:i})),name:r,icon:s,size:c}):o?t.createElement("span",{role:"presentation",className:e.classNames(e.uButton.icon({c:i}),o)}):null}const p=t.forwardRef((n,r)=>{const{children:o,togglable:s,dir:u,disabled:i,selected:c,icon:b,iconClass:v,svgIcon:y,imageUrl:N,imageAlt:M,className:P,startIcon:h,endIcon:B,onClick:C,size:S=g.size,rounded:k=g.rounded,fillMode:z=g.fillMode,themeColor:T=g.themeColor,ariaPressed:j,iconSize:A,...w}=n,q=()=>{s&&c===void 0&&(d.current=!a,O(!a))},U=f=>{q(),C&&C.call(void 0,f)},d=t.useRef(void 0),E=t.useRef(null),[a,O]=t.useState(s===!0&&c===!0),_=y!==void 0||b!==void 0||v!==void 0||N!==void 0,x=o!==void 0,D=e.useUnstyled(),R=n.unstyled||D,m=R&&R.uButton;t.useImperativeHandle(r,()=>({element:E.current,selected:d.current!==void 0?d.current:a})),t.useMemo(()=>{s&&c!==void 0&&c!==a&&O(c)},[s,c]),t.useEffect(()=>{d.current=void 0},[a]);const H=G({name:b,svgIcon:y,iconClass:v,imageUrl:N,imageAlt:M,buttonClasses:m,iconSize:A}),I=f=>t.cloneElement(f,{className:e.classNames(e.uButton.icon({c:m}),f.props.className)}),K=t.useMemo(()=>s?a:j||void 0,[]);return t.createElement("button",{ref:E,"aria-pressed":K,...w,dir:u,disabled:i,onClick:U,className:e.classNames(e.uButton.wrapper({c:m,isRtl:u==="rtl",selected:a,disabled:i,size:S,fillMode:z,rounded:k,themeColor:T,iconButton:!x&&_}),P)},h&&I(h),H,o&&t.createElement("span",{className:e.classNames(e.uButton.text({c:m}))},o),B&&I(B))}),g={togglable:!1,size:"medium",rounded:"medium",fillMode:"solid",themeColor:"base"};p.displayName="KendoReactButton";p.propTypes={children:l.node,selected:l.bool,togglable:l.bool,icon:l.string,svgIcon:e.svgIconPropType,iconClass:l.string,imageUrl:l.string,imageAlt:l.string,size:l.oneOf([null,"small","medium","large"]),rounded:l.oneOf([null,"small","medium","large","full"]),fillMode:l.oneOf([null,"flat","link","outline","solid","clear"]),themeColor:l.oneOf([null,"base","primary","secondary","tertiary","info","success","warning","error","dark","light","inverse"])};exports.Button=p;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const W=require("react"),r=require("prop-types"),e=require("@progress/kendo-react-common");function F(n){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const o in n)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(n,o);Object.defineProperty(l,o,s.get?s:{enumerable:!0,get:()=>n[o]})}}return l.default=n,Object.freeze(l)}const t=F(W);function G({imageUrl:n,name:l,iconClass:o,svgIcon:s,imageAlt:u,buttonClasses:a,iconSize:c}){return n?t.createElement("img",{role:"presentation",className:e.classNames(e.uButton.icon({c:a})),alt:u,src:n}):l||s?t.createElement(e.IconWrap,{className:e.classNames(e.uButton.icon({c:a})),name:l,icon:s,size:c}):o?t.createElement("span",{role:"presentation",className:e.classNames(e.uButton.icon({c:a}),o)}):null}const g=t.forwardRef((n,l)=>{const{children:o,togglable:s,dir:u,disabled:a,selected:c,icon:v,iconClass:b,svgIcon:y,imageUrl:N,imageAlt:M,className:P,startIcon:h,endIcon:B,onClick:C,size:S=p.size,rounded:k=p.rounded,fillMode:z=p.fillMode,themeColor:T=p.themeColor,ariaPressed:j,iconSize:A,...w}=n,q=()=>{s&&c===void 0&&(d.current=!i,O(!i))},U=f=>{q(),C&&C.call(void 0,f)},d=t.useRef(void 0),E=t.useRef(null),[i,O]=t.useState(s===!0&&c===!0),_=y!==void 0||v!==void 0||b!==void 0||N!==void 0,x=o!==void 0,D=e.useUnstyled(),R=n.unstyled||D,m=R&&R.uButton;t.useImperativeHandle(l,()=>({element:E.current,selected:d.current!==void 0?d.current:i})),t.useMemo(()=>{s&&c!==void 0&&c!==i&&O(c)},[s,c]),t.useEffect(()=>{d.current=void 0},[i]);const H=G({name:v,svgIcon:y,iconClass:b,imageUrl:N,imageAlt:M,buttonClasses:m,iconSize:A}),I=f=>t.cloneElement(f,{className:e.classNames(e.uButton.icon({c:m}),f.props.className)}),K=t.useMemo(()=>s?i:j||void 0,[]);return t.createElement("button",{ref:E,"aria-pressed":K,...w,dir:u,disabled:a,onClick:U,className:e.classNames(e.uButton.wrapper({c:m,isRtl:u==="rtl",selected:i,disabled:a,size:S,fillMode:z,rounded:k,themeColor:T,iconButton:!x&&_}),P)},h&&I(h),H,o&&t.createElement("span",{className:e.classNames(e.uButton.text({c:m}))},o),B&&I(B))}),p={size:void 0,rounded:void 0,fillMode:void 0,themeColor:void 0};g.displayName="KendoReactButton";g.propTypes={children:r.node,selected:r.bool,togglable:r.bool,icon:r.string,svgIcon:e.svgIconPropType,iconClass:r.string,imageUrl:r.string,imageAlt:r.string,size:r.oneOf(["small","medium","large"]),rounded:r.oneOf(["small","medium","large","full"]),fillMode:r.oneOf(["flat","link","outline","solid","clear"]),themeColor:r.oneOf(["base","primary","secondary","tertiary","info","success","warning","error","dark","light","inverse"])};exports.Button=g;
package/Button.mjs CHANGED
@@ -7,42 +7,42 @@
7
7
  */
8
8
  import * as e from "react";
9
9
  import t from "prop-types";
10
- import { useUnstyled as G, classNames as c, uButton as i, svgIconPropType as J, IconWrap as L } from "@progress/kendo-react-common";
11
- function Q({ imageUrl: a, name: d, iconClass: s, svgIcon: n, imageAlt: u, buttonClasses: r, iconSize: o }) {
10
+ import { useUnstyled as G, classNames as i, uButton as c, IconWrap as J, svgIconPropType as L } from "@progress/kendo-react-common";
11
+ function Q({ imageUrl: a, name: d, iconClass: s, svgIcon: o, imageAlt: u, buttonClasses: l, iconSize: n }) {
12
12
  return a ? /* @__PURE__ */ e.createElement(
13
13
  "img",
14
14
  {
15
15
  role: "presentation",
16
- className: c(i.icon({ c: r })),
16
+ className: i(c.icon({ c: l })),
17
17
  alt: u,
18
18
  src: a
19
19
  }
20
- ) : d || n ? /* @__PURE__ */ e.createElement(
21
- L,
20
+ ) : d || o ? /* @__PURE__ */ e.createElement(
21
+ J,
22
22
  {
23
- className: c(i.icon({ c: r })),
23
+ className: i(c.icon({ c: l })),
24
24
  name: d,
25
- icon: n,
26
- size: o
25
+ icon: o,
26
+ size: n
27
27
  }
28
- ) : s ? /* @__PURE__ */ e.createElement("span", { role: "presentation", className: c(i.icon({ c: r }), s) }) : null;
28
+ ) : s ? /* @__PURE__ */ e.createElement("span", { role: "presentation", className: i(c.icon({ c: l }), s) }) : null;
29
29
  }
30
30
  const k = e.forwardRef((a, d) => {
31
31
  const {
32
32
  children: s,
33
- togglable: n,
33
+ togglable: o,
34
34
  dir: u,
35
- disabled: r,
36
- selected: o,
35
+ disabled: l,
36
+ selected: n,
37
37
  icon: v,
38
38
  iconClass: h,
39
39
  svgIcon: y,
40
- imageUrl: b,
40
+ imageUrl: C,
41
41
  imageAlt: A,
42
42
  className: B,
43
- startIcon: C,
44
- endIcon: E,
45
- onClick: N,
43
+ startIcon: E,
44
+ endIcon: N,
45
+ onClick: b,
46
46
  size: P = g.size,
47
47
  rounded: O = g.rounded,
48
48
  fillMode: S = g.fillMode,
@@ -51,29 +51,29 @@ const k = e.forwardRef((a, d) => {
51
51
  iconSize: x,
52
52
  ...U
53
53
  } = a, H = () => {
54
- n && o === void 0 && (m.current = !l, R(!l));
54
+ o && n === void 0 && (m.current = !r, R(!r));
55
55
  }, K = (p) => {
56
- H(), N && N.call(void 0, p);
57
- }, m = e.useRef(void 0), I = e.useRef(null), [l, R] = e.useState(n === !0 && o === !0), W = y !== void 0 || v !== void 0 || h !== void 0 || b !== void 0, j = s !== void 0, q = G(), z = a.unstyled || q, f = z && z.uButton;
56
+ H(), b && b.call(void 0, p);
57
+ }, m = e.useRef(void 0), I = e.useRef(null), [r, R] = e.useState(o === !0 && n === !0), W = y !== void 0 || v !== void 0 || h !== void 0 || C !== void 0, j = s !== void 0, q = G(), z = a.unstyled || q, f = z && z.uButton;
58
58
  e.useImperativeHandle(d, () => ({
59
59
  element: I.current,
60
- selected: m.current !== void 0 ? m.current : l
60
+ selected: m.current !== void 0 ? m.current : r
61
61
  })), e.useMemo(() => {
62
- n && o !== void 0 && o !== l && R(o);
63
- }, [n, o]), e.useEffect(() => {
62
+ o && n !== void 0 && n !== r && R(n);
63
+ }, [o, n]), e.useEffect(() => {
64
64
  m.current = void 0;
65
- }, [l]);
65
+ }, [r]);
66
66
  const D = Q({
67
67
  name: v,
68
68
  svgIcon: y,
69
69
  iconClass: h,
70
- imageUrl: b,
70
+ imageUrl: C,
71
71
  imageAlt: A,
72
72
  buttonClasses: f,
73
73
  iconSize: x
74
74
  }), M = (p) => e.cloneElement(p, {
75
- className: c(i.icon({ c: f }), p.props.className)
76
- }), F = e.useMemo(() => n ? l : w || void 0, []);
75
+ className: i(c.icon({ c: f }), p.props.className)
76
+ }), F = e.useMemo(() => o ? r : w || void 0, []);
77
77
  return /* @__PURE__ */ e.createElement(
78
78
  "button",
79
79
  {
@@ -81,14 +81,14 @@ const k = e.forwardRef((a, d) => {
81
81
  "aria-pressed": F,
82
82
  ...U,
83
83
  dir: u,
84
- disabled: r,
84
+ disabled: l,
85
85
  onClick: K,
86
- className: c(
87
- i.wrapper({
86
+ className: i(
87
+ c.wrapper({
88
88
  c: f,
89
89
  isRtl: u === "rtl",
90
- selected: l,
91
- disabled: r,
90
+ selected: r,
91
+ disabled: l,
92
92
  size: P,
93
93
  fillMode: S,
94
94
  rounded: O,
@@ -98,17 +98,16 @@ const k = e.forwardRef((a, d) => {
98
98
  B
99
99
  )
100
100
  },
101
- C && M(C),
101
+ E && M(E),
102
102
  D,
103
- s && /* @__PURE__ */ e.createElement("span", { className: c(i.text({ c: f })) }, s),
104
- E && M(E)
103
+ s && /* @__PURE__ */ e.createElement("span", { className: i(c.text({ c: f })) }, s),
104
+ N && M(N)
105
105
  );
106
106
  }), g = {
107
- togglable: !1,
108
- size: "medium",
109
- rounded: "medium",
110
- fillMode: "solid",
111
- themeColor: "base"
107
+ size: void 0,
108
+ rounded: void 0,
109
+ fillMode: void 0,
110
+ themeColor: void 0
112
111
  };
113
112
  k.displayName = "KendoReactButton";
114
113
  k.propTypes = {
@@ -116,16 +115,15 @@ k.propTypes = {
116
115
  selected: t.bool,
117
116
  togglable: t.bool,
118
117
  icon: t.string,
119
- svgIcon: J,
118
+ svgIcon: L,
120
119
  iconClass: t.string,
121
120
  imageUrl: t.string,
122
121
  imageAlt: t.string,
123
- size: t.oneOf([null, "small", "medium", "large"]),
124
- rounded: t.oneOf([null, "small", "medium", "large", "full"]),
125
- fillMode: t.oneOf([null, "flat", "link", "outline", "solid", "clear"]),
122
+ size: t.oneOf(["small", "medium", "large"]),
123
+ rounded: t.oneOf(["small", "medium", "large", "full"]),
124
+ fillMode: t.oneOf(["flat", "link", "outline", "solid", "clear"]),
126
125
  // eslint-disable-next-line max-len
127
126
  themeColor: t.oneOf([
128
- null,
129
127
  "base",
130
128
  "primary",
131
129
  "secondary",
@@ -0,0 +1,47 @@
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 { ButtonsClassStructure } from '@progress/kendo-react-common';
10
+ import { ButtonGroupInterface } from './ButtonGroupInterface.js';
11
+ import * as React from 'react';
12
+ /**
13
+ * Represents the props of the [KendoReact ButtonGroup component](https://www.telerik.com/kendo-react-ui/components/buttons/buttongroup).
14
+ */
15
+ export interface ButtonGroupProps extends ButtonGroupInterface {
16
+ /**
17
+ * Sets the `className` of the ButtonGroup component.
18
+ * Specifies a list of CSS classes that will be added to the ButtonGroup element.
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * <ButtonGroup className="custom-group" />
23
+ * ```
24
+ */
25
+ className?: string;
26
+ /**
27
+ * @hidden
28
+ * Provides an option to use unstyled classes for the ButtonGroup component.
29
+ */
30
+ unstyled?: ButtonsClassStructure;
31
+ }
32
+ /**
33
+ * Represents the ButtonGroup component.
34
+ *
35
+ * @remarks
36
+ * Supported children components are: {@link Button}.
37
+ */
38
+ export declare const ButtonGroup: {
39
+ (props: ButtonGroupProps): React.JSX.Element;
40
+ propTypes: {
41
+ children: PropTypes.Requireable<NonNullable<PropTypes.ReactElementLike | (PropTypes.ReactElementLike | null | undefined)[] | null | undefined>>;
42
+ className: PropTypes.Requireable<string>;
43
+ disabled: PropTypes.Requireable<boolean>;
44
+ width: PropTypes.Requireable<string>;
45
+ dir: PropTypes.Requireable<string>;
46
+ };
47
+ };
@@ -0,0 +1,39 @@
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
+ /**
9
+ * Represents the properties which can be set to a ButtonGroup.
10
+ */
11
+ export interface ButtonGroupInterface {
12
+ /**
13
+ * @hidden
14
+ */
15
+ children?: React.ReactNode;
16
+ /**
17
+ * By default, the ButtonGroup is enabled ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/buttongroup/disabled-state)). To disable the whole group of buttons, set its `disabled` attribute to `true`. To disable a specific button, set its own `disabled` attribute to `true` and leave the `disabled` attribute of the ButtonGroup undefined.
18
+ *
19
+ * If you define the `disabled` attribute of the ButtonGroup, it takes precedence over the `disabled` attributes of the underlying buttons and they are ignored.
20
+ */
21
+ disabled?: boolean;
22
+ /**
23
+ * Sets the width of the ButtonGroup.
24
+ *
25
+ * If the width of the ButtonGroup is set:
26
+ * — The buttons resize automatically to fill the full width of the group wrapper.
27
+ * — The buttons get the same width.
28
+ */
29
+ width?: string;
30
+ /**
31
+ * Sets the direction of the ButtonGroup ([more information](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)).
32
+ *
33
+ * The available options are:
34
+ * * `rtl`
35
+ * * `ltr`
36
+ * * `auto`
37
+ */
38
+ dir?: string;
39
+ }
@@ -0,0 +1,49 @@
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 { SVGIcon } from '@progress/kendo-react-common';
9
+ /**
10
+ * Inherits the native HTML Button. Represents the properties which can be set to a Button.
11
+ */
12
+ export interface ButtonInterface {
13
+ /**
14
+ * Specifies if the Button is disabled ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/disabled-state)).
15
+ *
16
+ * @default false
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * Sets the selected state of the Button. You can use this for controlled mode.
21
+ */
22
+ selected?: boolean;
23
+ /**
24
+ * Provides visual styling that shows if the Button is selected ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/toggleable)).
25
+ *
26
+ * @default false
27
+ */
28
+ togglable?: boolean;
29
+ /**
30
+ * Defines the name for an existing icon in a KendoReact theme ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/icons)). The icon renders inside the Button by a `span.k-icon` element.
31
+ */
32
+ icon?: string;
33
+ /**
34
+ * Defines the SVG icon that renders inside the Button component.
35
+ */
36
+ svgIcon?: SVGIcon;
37
+ /**
38
+ * Defines a CSS class — or multiple classes separated by spaces — which apply to a `span` element inside the Button ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/icons)). Allows you to use custom icons.
39
+ */
40
+ iconClass?: string;
41
+ /**
42
+ * Defines a URL which is used as an `img` element inside the Button ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/button/icons)). The URL can be relative or absolute. If relative, it evaluates in relation to the URL of the web page.
43
+ */
44
+ imageUrl?: string;
45
+ /**
46
+ * Defines the alternative text of the image that renders inside the Button component.
47
+ */
48
+ imageAlt?: string;
49
+ }