@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
@@ -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"),i=require("prop-types"),c=require("../Button.js"),s=require("@progress/kendo-react-common"),C=require("./ButtonItem.js"),b=require("./SplitButtonItem.js"),k=require("./utils/navigation.js"),y=require("@progress/kendo-react-popup"),m=require("./utils/popup.js"),f=require("../package-metadata.js"),D=require("@progress/kendo-svg-icons");function I(h){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(h){for(const t in h)if(t!=="default"){const e=Object.getOwnPropertyDescriptor(h,t);Object.defineProperty(o,t,e.get?e:{enumerable:!0,get:()=>h[t]})}}return o.default=h,Object.freeze(o)}const a=I(g),d=class d extends a.Component{constructor(o){super(o),this.state={focused:!1,focusedIndex:-1,opened:!1},this.wrapper=null,this.mainButton=null,this.list=null,this.skipFocus=!1,this.buttonsData=[],this.showLicenseWatermark=!1,this.onKeyDown=t=>{const{focusedIndex:e}=this.state;if(t.altKey){!this.opened&&t.keyCode===s.Keys.down?(t.preventDefault(),this.setState({focusedIndex:0}),this.setOpen(!0,t)):this.opened&&t.keyCode===s.Keys.up&&(t.preventDefault(),this.setState({focusedIndex:-1}),this.setOpen(!1,t));return}let n;if(t.keyCode===s.Keys.enter||t.keyCode===s.Keys.space){if(t.preventDefault(),this.dispatchClickEvent(t,e),e>=0){n={focusedIndex:this.opened?-1:0};const r=!this.opened;this.setOpen(r,t)}}else if(this.opened&&t.keyCode===s.Keys.esc){this.setState({focusedIndex:-1}),this.setOpen(!1,t);return}if(this.opened){const r=k.navigate(e,t.keyCode,t.altKey,this.buttonsData.length);r!==e&&(n=n||{},n.focusedIndex=r);const l=t.keyCode===s.Keys.up||t.keyCode===s.Keys.down||t.keyCode===s.Keys.left||t.keyCode===s.Keys.right;!t.altKey&&(l||t.keyCode===s.Keys.home||t.keyCode===s.Keys.end)&&t.preventDefault()}n&&this.setState(n)},this.switchFocus=t=>{this.skipFocus=!0,t(),window.setTimeout(()=>this.skipFocus=!1,0)},this.onFocus=t=>{this.skipFocus||(s.dispatchEvent(this.props.onFocus,t,this,void 0),this.setState({focused:!0}))},this.setOpen=(t,e)=>{this.opened!==t&&(this.openedDuringOnChange=t,this.setState({opened:t}),e?this.dispatchPopupEvent(e,t):this.openedDuringOnChange=void 0)},this.onItemClick=(t,e)=>{this.opened&&this.setState({focusedIndex:0}),this.dispatchClickEvent(t,e),this.setOpen(!1,t)},this.onBlur=t=>{this.skipFocus||(this.setState({focused:!1,focusedIndex:-1}),s.dispatchEvent(this.props.onBlur,t,this,void 0),setTimeout(()=>{this.setOpen(!1,t)},0))},this.onPopupClose=t=>{var n;const e=s.getActiveElement(document);this.element&&this.element.removeAttribute("tabindex"),(e===this.list||(n=this.list)!=null&&n.contains(e))&&this.switchFocus(()=>{this.element&&this.element.focus({preventScroll:!0})}),this.props.popupSettings&&this.props.popupSettings.onClose&&this.props.popupSettings.onClose.call(void 0,t)},this.listRef=t=>{this.list=t,t&&this.state.focused&&this.switchFocus(()=>{t.focus({preventScroll:!0}),this.element&&(this.element.tabIndex=-1)})},this.onSplitPartClick=t=>{if(this.buttonsData.length){const e=!this.opened;this.setState({focusedIndex:e?0:-1,focused:!0}),this.setOpen(e,t)}},this.onDownSplitPart=t=>{t.preventDefault();const e=s.getActiveElement(document);this.element&&e!==this.element&&e!==this.list&&this.element.focus()},this.onItemDown=t=>{s.getActiveElement(document)===this.list&&t.preventDefault()},this.dispatchPopupEvent=(t,e)=>{s.dispatchEvent(e?this.props.onOpen:this.props.onClose,t,this,void 0),this.openedDuringOnChange=void 0},this.showLicenseWatermark=!s.validatePackage(f.packageMetadata,{component:"SplitButton"}),this.licenseMessage=s.getLicenseMessage(f.packageMetadata)}get guid(){return this.props.id?this.props.id+"-accessibility-id":this.props.id}get opened(){return this.openedDuringOnChange!==void 0?this.openedDuringOnChange:this.props.opened===void 0?this.state.opened:this.props.opened}render(){this.buttonsData=this.props.items||a.Children.toArray(this.props.children).filter(p=>p&&p.type===b.SplitButtonItem).map(p=>p.props);const o=this.isRtl(),t=o?"rtl":void 0,{id:e,style:n,tabIndex:r,disabled:l}=this.props;return a.createElement(a.Fragment,null,a.createElement("div",{id:e,style:n,className:s.classNames("k-split-button","k-button-group",{"k-focus":this.state.focused},`k-rounded-${s.kendoThemeMaps.roundedMap[this.props.rounded||"medium"]}`,this.props.className),onKeyDown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,dir:t,ref:p=>{this.wrapper=p}},a.createElement(c.Button,{ref:p=>{this.mainButton=p&&p.element},type:"button",size:this.props.size,rounded:this.props.rounded,fillMode:this.props.fillMode,themeColor:this.props.themeColor,onClick:p=>this.onItemClick(p,-1),disabled:l||void 0,tabIndex:r,accessKey:this.props.accessKey,className:this.props.buttonClass,icon:this.props.icon,svgIcon:this.props.svgIcon,iconClass:this.props.iconClass,startIcon:this.props.startIcon,endIcon:this.props.endIcon,imageUrl:this.props.imageUrl,dir:t,"aria-disabled":l,"aria-haspopup":!0,"aria-expanded":this.opened||void 0,"aria-label":this.props.ariaLabel,"aria-controls":this.opened?this.guid:void 0,id:"button-"+this.guid,title:this.props.title},this.props.text),a.createElement(c.Button,{type:"button",size:this.props.size,rounded:this.props.rounded,fillMode:this.props.fillMode,themeColor:this.props.themeColor,icon:"caret-alt-down",svgIcon:D.caretAltDownIcon,className:"k-split-button-arrow",disabled:l||void 0,tabIndex:-1,onClick:this.onSplitPartClick,onMouseDown:this.onDownSplitPart,onPointerDown:this.onDownSplitPart,dir:t,"aria-label":"menu toggling button"}),this.renderPopup(o)),this.showLicenseWatermark&&a.createElement(s.WatermarkOverlay,{message:this.licenseMessage}))}componentDidMount(){(this.props.dir===void 0&&this.isRtl()||this.opened)&&this.forceUpdate()}get element(){return this.mainButton}dispatchClickEvent(o,t){this.isItemDisabled(t)||(t===-1?s.dispatchEvent(this.props.onButtonClick,o,this,void 0):s.dispatchEvent(this.props.onItemClick,o,this,{item:this.buttonsData[t],itemIndex:t}))}renderPopup(o){const{popupSettings:t={}}=this.props,{focusedIndex:e}=this.state;return a.createElement(y.Popup,{anchor:this.wrapper,show:this.opened,animate:t.animate,popupClass:s.classNames("k-menu-popup",t.popupClass),anchorAlign:t.anchorAlign||m.getAnchorAlign(o),popupAlign:t.popupAlign||m.getPopupAlign(o),style:o?{direction:"rtl"}:void 0,onClose:this.onPopupClose},a.createElement("ul",{role:"menu",id:this.guid,"aria-labelledby":"button-"+this.guid,tabIndex:-1,ref:this.listRef,"aria-activedescendant":e>=0?`${this.guid}-${e}`:void 0,className:s.classNames("k-menu-group",{[`k-menu-group-${s.kendoThemeMaps.sizeMap[this.props.size]||this.props.size}`]:this.props.size})},this.renderChildItems()))}renderChildItems(){const{item:o,itemRender:t,textField:e}=this.props;return this.buttonsData.length>0?this.buttonsData.map((n,r)=>a.createElement(C.ButtonItem,{className:s.classNames("k-menu-item",{"k-first":r===0},{"k-last":r===this.buttonsData.length-1}),dataItem:n,textField:e,focused:this.state.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:t,item:o,key:r,index:r,id:`${this.guid}-${r}`})):null}isItemDisabled(o){return this.buttonsData[o]?this.buttonsData[o].disabled:this.props.disabled}isRtl(){return this.props.dir!==void 0?this.props.dir==="rtl":!!this.wrapper&&getComputedStyle(this.wrapper).direction==="rtl"}};d.propTypes={accessKey:i.string,ariaLabel:i.string,title:i.string,onButtonClick:i.func,onFocus:i.func,onBlur:i.func,onItemClick:i.func,onOpen:i.func,onClose:i.func,text:i.string,items:i.arrayOf(i.any),textField:i.string,tabIndex:i.number,disabled:i.bool,icon:i.string,svgIcon:s.svgIconPropType,imageUrl:i.string,popupSettings:i.object,itemRender:i.any,item:i.func,className:i.string,buttonClass:i.string,dir:i.string},d.defaultProps={size:"medium",rounded:"medium",fillMode:"solid",themeColor:"base"};let u=d;exports.SplitButton=u;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),i=require("prop-types"),c=require("../Button.js"),s=require("@progress/kendo-react-common"),y=require("./ButtonItem.js"),k=require("./SplitButtonItem.js"),C=require("./utils/navigation.js"),b=require("@progress/kendo-react-popup"),m=require("./utils/popup.js"),f=require("../package-metadata.js"),D=require("@progress/kendo-svg-icons");function I(l){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const t in l)if(t!=="default"){const e=Object.getOwnPropertyDescriptor(l,t);Object.defineProperty(o,t,e.get?e:{enumerable:!0,get:()=>l[t]})}}return o.default=l,Object.freeze(o)}const p=I(g),d=class d extends p.Component{constructor(o){super(o),this.state={focused:!1,focusedIndex:-1,opened:!1},this.wrapper=null,this.mainButton=null,this.list=null,this.skipFocus=!1,this.buttonsData=[],this.showLicenseWatermark=!1,this.onKeyDown=t=>{const{focusedIndex:e}=this.state;if(t.altKey){!this.opened&&t.keyCode===s.Keys.down?(t.preventDefault(),this.setState({focusedIndex:0}),this.setOpen(!0,t)):this.opened&&t.keyCode===s.Keys.up&&(t.preventDefault(),this.setState({focusedIndex:-1}),this.setOpen(!1,t));return}let n;if(t.keyCode===s.Keys.enter||t.keyCode===s.Keys.space){if(t.preventDefault(),this.dispatchClickEvent(t,e),e>=0){n={focusedIndex:this.opened?-1:0};const r=!this.opened;this.setOpen(r,t)}}else if(this.opened&&t.keyCode===s.Keys.esc){this.setState({focusedIndex:-1}),this.setOpen(!1,t);return}if(this.opened){const r=C.navigate(e,t.keyCode,t.altKey,this.buttonsData.length);r!==e&&(n=n||{},n.focusedIndex=r);const h=t.keyCode===s.Keys.up||t.keyCode===s.Keys.down||t.keyCode===s.Keys.left||t.keyCode===s.Keys.right;!t.altKey&&(h||t.keyCode===s.Keys.home||t.keyCode===s.Keys.end)&&t.preventDefault()}n&&this.setState(n)},this.switchFocus=t=>{this.skipFocus=!0,t(),window.setTimeout(()=>this.skipFocus=!1,0)},this.onFocus=t=>{this.skipFocus||(s.dispatchEvent(this.props.onFocus,t,this,void 0),this.setState({focused:!0}))},this.setOpen=(t,e)=>{this.opened!==t&&(this.openedDuringOnChange=t,this.setState({opened:t}),e?this.dispatchPopupEvent(e,t):this.openedDuringOnChange=void 0)},this.onItemClick=(t,e)=>{this.opened&&this.setState({focusedIndex:0}),this.dispatchClickEvent(t,e),this.setOpen(!1,t)},this.onBlur=t=>{this.skipFocus||(this.setState({focused:!1,focusedIndex:-1}),s.dispatchEvent(this.props.onBlur,t,this,void 0),setTimeout(()=>{this.setOpen(!1,t)},0))},this.onPopupClose=t=>{var n;const e=s.getActiveElement(document);this.element&&this.element.removeAttribute("tabindex"),(e===this.list||(n=this.list)!=null&&n.contains(e))&&this.switchFocus(()=>{this.element&&this.element.focus({preventScroll:!0})}),this.props.popupSettings&&this.props.popupSettings.onClose&&this.props.popupSettings.onClose.call(void 0,t)},this.listRef=t=>{this.list=t,t&&this.state.focused&&this.switchFocus(()=>{t.focus({preventScroll:!0}),this.element&&(this.element.tabIndex=-1)})},this.onSplitPartClick=t=>{if(this.buttonsData.length){const e=!this.opened;this.setState({focusedIndex:e?0:-1,focused:!0}),this.setOpen(e,t)}},this.onDownSplitPart=t=>{t.preventDefault();const e=s.getActiveElement(document);this.element&&e!==this.element&&e!==this.list&&this.element.focus()},this.onItemDown=t=>{s.getActiveElement(document)===this.list&&t.preventDefault()},this.dispatchPopupEvent=(t,e)=>{s.dispatchEvent(e?this.props.onOpen:this.props.onClose,t,this,void 0),this.openedDuringOnChange=void 0},this.showLicenseWatermark=!s.validatePackage(f.packageMetadata,{component:"SplitButton"}),this.licenseMessage=s.getLicenseMessage(f.packageMetadata)}get guid(){return this.props.id?this.props.id+"-accessibility-id":this.props.id}get opened(){return this.openedDuringOnChange!==void 0?this.openedDuringOnChange:this.props.opened===void 0?this.state.opened:this.props.opened}render(){this.buttonsData=this.props.items||p.Children.toArray(this.props.children).filter(a=>a&&a.type===k.SplitButtonItem).map(a=>a.props);const o=this.isRtl(),t=o?"rtl":void 0,{id:e,style:n,tabIndex:r,disabled:h}=this.props;return p.createElement(p.Fragment,null,p.createElement("div",{id:e,style:n,className:s.classNames("k-split-button","k-button-group",{"k-focus":this.state.focused},this.props.rounded&&`k-rounded-${s.kendoThemeMaps.roundedMap[this.props.rounded]}`,this.props.className),onKeyDown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,dir:t,ref:a=>{this.wrapper=a}},p.createElement(c.Button,{ref:a=>{this.mainButton=a&&a.element},type:"button",size:this.props.size,rounded:this.props.rounded,fillMode:this.props.fillMode,themeColor:this.props.themeColor,onClick:a=>this.onItemClick(a,-1),disabled:h||void 0,tabIndex:r,accessKey:this.props.accessKey,className:this.props.buttonClass,icon:this.props.icon,svgIcon:this.props.svgIcon,iconClass:this.props.iconClass,startIcon:this.props.startIcon,endIcon:this.props.endIcon,imageUrl:this.props.imageUrl,dir:t,"aria-disabled":h,"aria-haspopup":!0,"aria-expanded":this.opened||void 0,"aria-label":this.props.ariaLabel,"aria-controls":this.opened?this.guid:void 0,id:"button-"+this.guid,title:this.props.title},this.props.text),p.createElement(c.Button,{type:"button",size:this.props.size,rounded:this.props.rounded,fillMode:this.props.fillMode,themeColor:this.props.themeColor,icon:"caret-alt-down",svgIcon:D.caretAltDownIcon,className:"k-split-button-arrow",disabled:h||void 0,tabIndex:-1,onClick:this.onSplitPartClick,onMouseDown:this.onDownSplitPart,onPointerDown:this.onDownSplitPart,dir:t,"aria-label":"menu toggling button"}),this.renderPopup(o)),this.showLicenseWatermark&&p.createElement(s.WatermarkOverlay,{message:this.licenseMessage}))}componentDidMount(){(this.props.dir===void 0&&this.isRtl()||this.opened)&&this.forceUpdate()}get element(){return this.mainButton}dispatchClickEvent(o,t){this.isItemDisabled(t)||(t===-1?s.dispatchEvent(this.props.onButtonClick,o,this,void 0):s.dispatchEvent(this.props.onItemClick,o,this,{item:this.buttonsData[t],itemIndex:t}))}renderPopup(o){const{popupSettings:t={}}=this.props,{focusedIndex:e}=this.state;return p.createElement(b.Popup,{anchor:this.wrapper,show:this.opened,animate:t.animate,popupClass:s.classNames("k-menu-popup",t.popupClass),anchorAlign:t.anchorAlign||m.getAnchorAlign(o),popupAlign:t.popupAlign||m.getPopupAlign(o),style:o?{direction:"rtl"}:void 0,onClose:this.onPopupClose},p.createElement("ul",{role:"menu",id:this.guid,"aria-labelledby":"button-"+this.guid,tabIndex:-1,ref:this.listRef,"aria-activedescendant":e>=0?`${this.guid}-${e}`:void 0,className:s.classNames("k-menu-group",{[`k-menu-group-${s.kendoThemeMaps.sizeMap[this.props.size]||this.props.size}`]:this.props.size})},this.renderChildItems()))}renderChildItems(){const{item:o,itemRender:t,textField:e}=this.props;return this.buttonsData.length>0?this.buttonsData.map((n,r)=>p.createElement(y.ButtonItem,{className:s.classNames("k-menu-item",{"k-first":r===0},{"k-last":r===this.buttonsData.length-1}),dataItem:n,textField:e,focused:this.state.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:t,item:o,key:r,index:r,id:`${this.guid}-${r}`})):null}isItemDisabled(o){return this.buttonsData[o]?this.buttonsData[o].disabled:this.props.disabled}isRtl(){return this.props.dir!==void 0?this.props.dir==="rtl":!!this.wrapper&&getComputedStyle(this.wrapper).direction==="rtl"}};d.propTypes={accessKey:i.string,ariaLabel:i.string,title:i.string,onButtonClick:i.func,onFocus:i.func,onBlur:i.func,onItemClick:i.func,onOpen:i.func,onClose:i.func,text:i.string,items:i.arrayOf(i.any),textField:i.string,tabIndex:i.number,disabled:i.bool,icon:i.string,svgIcon:s.svgIconPropType,imageUrl:i.string,popupSettings:i.object,itemRender:i.any,item:i.func,className:i.string,buttonClass:i.string,dir:i.string,size:i.oneOf(["small","medium","large"]),rounded:i.oneOf(["small","medium","large","full"]),fillMode:i.oneOf(["flat","link","outline","solid","clear"]),themeColor:i.oneOf(["base","primary","secondary","tertiary","info","success","warning","error","dark","light","inverse"])},d.defaultProps={size:void 0,rounded:void 0,fillMode:void 0,themeColor:void 0};let u=d;exports.SplitButton=u;
@@ -11,9 +11,9 @@ import { Button as m } from "../Button.mjs";
11
11
  import { Keys as a, dispatchEvent as l, getActiveElement as c, validatePackage as k, getLicenseMessage as b, svgIconPropType as y, classNames as d, kendoThemeMaps as f, WatermarkOverlay as D } from "@progress/kendo-react-common";
12
12
  import { ButtonItem as I } from "./ButtonItem.mjs";
13
13
  import { SplitButtonItem as w } from "./SplitButtonItem.mjs";
14
- import { navigate as S } from "./utils/navigation.mjs";
15
- import { Popup as v } from "@progress/kendo-react-popup";
16
- import { getAnchorAlign as O, getPopupAlign as E } from "./utils/popup.mjs";
14
+ import { navigate as v } from "./utils/navigation.mjs";
15
+ import { Popup as O } from "@progress/kendo-react-popup";
16
+ import { getPopupAlign as S, getAnchorAlign as E } from "./utils/popup.mjs";
17
17
  import { packageMetadata as g } from "../package-metadata.mjs";
18
18
  import { caretAltDownIcon as P } from "@progress/kendo-svg-icons";
19
19
  const u = class u extends p.Component {
@@ -42,7 +42,7 @@ const u = class u extends p.Component {
42
42
  return;
43
43
  }
44
44
  if (this.opened) {
45
- const n = S(e, t.keyCode, t.altKey, this.buttonsData.length);
45
+ const n = v(e, t.keyCode, t.altKey, this.buttonsData.length);
46
46
  n !== e && (o = o || {}, o.focusedIndex = n);
47
47
  const h = t.keyCode === a.up || t.keyCode === a.down || t.keyCode === a.left || t.keyCode === a.right;
48
48
  !t.altKey && (h || t.keyCode === a.home || t.keyCode === a.end) && t.preventDefault();
@@ -114,7 +114,7 @@ const u = class u extends p.Component {
114
114
  {
115
115
  "k-focus": this.state.focused
116
116
  },
117
- `k-rounded-${f.roundedMap[this.props.rounded || "medium"]}`,
117
+ this.props.rounded && `k-rounded-${f.roundedMap[this.props.rounded]}`,
118
118
  this.props.className
119
119
  ),
120
120
  onKeyDown: this.onKeyDown,
@@ -202,14 +202,14 @@ const u = class u extends p.Component {
202
202
  renderPopup(i) {
203
203
  const { popupSettings: t = {} } = this.props, { focusedIndex: e } = this.state;
204
204
  return /* @__PURE__ */ p.createElement(
205
- v,
205
+ O,
206
206
  {
207
207
  anchor: this.wrapper,
208
208
  show: this.opened,
209
209
  animate: t.animate,
210
210
  popupClass: d("k-menu-popup", t.popupClass),
211
- anchorAlign: t.anchorAlign || O(i),
212
- popupAlign: t.popupAlign || E(i),
211
+ anchorAlign: t.anchorAlign || E(i),
212
+ popupAlign: t.popupAlign || S(i),
213
213
  style: i ? { direction: "rtl" } : void 0,
214
214
  onClose: this.onPopupClose
215
215
  },
@@ -283,12 +283,28 @@ u.propTypes = {
283
283
  item: s.func,
284
284
  className: s.string,
285
285
  buttonClass: s.string,
286
- dir: s.string
286
+ dir: s.string,
287
+ size: s.oneOf(["small", "medium", "large"]),
288
+ rounded: s.oneOf(["small", "medium", "large", "full"]),
289
+ fillMode: s.oneOf(["flat", "link", "outline", "solid", "clear"]),
290
+ themeColor: s.oneOf([
291
+ "base",
292
+ "primary",
293
+ "secondary",
294
+ "tertiary",
295
+ "info",
296
+ "success",
297
+ "warning",
298
+ "error",
299
+ "dark",
300
+ "light",
301
+ "inverse"
302
+ ])
287
303
  }, u.defaultProps = {
288
- size: "medium",
289
- rounded: "medium",
290
- fillMode: "solid",
291
- themeColor: "base"
304
+ size: void 0,
305
+ rounded: void 0,
306
+ fillMode: void 0,
307
+ themeColor: void 0
292
308
  };
293
309
  let C = u;
294
310
  export {
@@ -0,0 +1,32 @@
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 { ButtonItem } from './models/ButtonItem.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * The properties of the KendoReact SplitButtonItem component.
13
+ */
14
+ export interface SplitButtonItemProps extends ButtonItem {
15
+ }
16
+ export declare class SplitButtonItem extends React.Component<SplitButtonItemProps, {}> {
17
+ /**
18
+ * @hidden
19
+ */
20
+ static propTypes: {
21
+ text: PropTypes.Requireable<string>;
22
+ icon: PropTypes.Requireable<string>;
23
+ iconClass: PropTypes.Requireable<string>;
24
+ imageUrl: PropTypes.Requireable<string>;
25
+ disabled: PropTypes.Requireable<boolean>;
26
+ render: PropTypes.Requireable<any>;
27
+ };
28
+ /**
29
+ * @hidden
30
+ */
31
+ render(): null;
32
+ }
@@ -0,0 +1,41 @@
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
+ * The interface for describing items that can be passed to the `items` property of the SplitButton or the DropDownButton as an alternative to passing them as children.
11
+ */
12
+ export interface ButtonItem {
13
+ /**
14
+ * Specifies the text of the item.
15
+ */
16
+ text: string;
17
+ /**
18
+ * Defines an icon that will be rendered next to the item text.
19
+ */
20
+ icon?: string;
21
+ /**
22
+ * Defines an SVG icon that will be rendered next to the item text.
23
+ */
24
+ svgIcon?: SVGIcon;
25
+ /**
26
+ * Defines an icon with a custom CSS class that will be rendered next to the item text.
27
+ */
28
+ iconClass?: string;
29
+ /**
30
+ * Defines the location of an image that will be displayed next to the item text.
31
+ */
32
+ imageUrl?: string;
33
+ /**
34
+ * Determines whether the item is disabled.
35
+ */
36
+ disabled?: boolean;
37
+ /**
38
+ * A React functional or class component for rendering the item. The default rendering includes an icon, an image, and text.
39
+ */
40
+ render?: any;
41
+ }
@@ -0,0 +1,411 @@
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 { ButtonsPopupSettings } from './PopupSettings.js';
9
+ import { SplitButtonClickEvent, SplitButtonItemClickEvent, SplitButtonFocusEvent, SplitButtonBlurEvent, SplitButtonOpenEvent, SplitButtonCloseEvent, DropDownButtonClickEvent, DropDownButtonItemClickEvent, DropDownButtonFocusEvent, DropDownButtonBlurEvent, DropDownButtonOpenEvent, DropDownButtonCloseEvent } from './events.js';
10
+ import { ButtonItemProps } from '../ButtonItem.js';
11
+ import { ButtonsClassStructure, KendoReactComponentBaseProps, SVGIcon } from '@progress/kendo-react-common';
12
+ export interface DropDownButtonProps extends KendoReactComponentBaseProps {
13
+ /**
14
+ * Specifies the `accessKey` of the main button.
15
+ */
16
+ accessKey?: string;
17
+ /**
18
+ * The accessible label of the component.
19
+ */
20
+ ariaLabel?: string;
21
+ /**
22
+ * The title of the component.
23
+ */
24
+ title?: string;
25
+ /**
26
+ * Specifies the text of the main button ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton)).
27
+ */
28
+ text?: React.ReactNode;
29
+ /**
30
+ * Specifies the list items ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/data-binding#toc-arrays-of-objects)).
31
+ */
32
+ items?: any[];
33
+ /**
34
+ * Configures the field that will be used for the text of the `items`. `textField` has to be used together with the `items` prop ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/data-binding#toc-arrays-of-objects)).
35
+ */
36
+ textField?: string;
37
+ /**
38
+ * Specifies the `tabIndex` of the main button.
39
+ */
40
+ tabIndex?: number;
41
+ /**
42
+ * Determines whether the component is disabled ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/disabled)).
43
+ */
44
+ disabled?: boolean;
45
+ /**
46
+ * Opens the popup of the DropDownButton if set to `true`.
47
+ */
48
+ opened?: boolean;
49
+ /**
50
+ * Defines an icon that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/icons)).
51
+ */
52
+ icon?: string;
53
+ /**
54
+ * Defines a SVG icon that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/icons)).
55
+ */
56
+ svgIcon?: SVGIcon;
57
+ /**
58
+ * Defines an icon with a custom CSS class that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/icons)).
59
+ */
60
+ iconClass?: string;
61
+ /**
62
+ * Defines the location of an image that will be displayed next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/icons)).
63
+ */
64
+ imageUrl?: string;
65
+ /**
66
+ * Configures the popup
67
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/customization#toc-popup-behavior)).
68
+ */
69
+ popupSettings?: ButtonsPopupSettings;
70
+ /**
71
+ * @hidden
72
+ */
73
+ unstyled?: ButtonsClassStructure;
74
+ /**
75
+ * @hidden
76
+ * This prop is provided by the withZIndexContext HOC to subscribe to ZIndexContext.
77
+ */
78
+ _zIndex?: number;
79
+ /**
80
+ * A React functional or class component which is used for rendering items ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/customization#toc-items-rendering)). The default rendering includes an icon, an image, and text.
81
+ */
82
+ item?: null | React.ComponentType<{
83
+ item: any;
84
+ itemIndex: number;
85
+ }>;
86
+ /**
87
+ * Fires when a dropdown list button item is about to be rendered. Use it to override the default appearance of the list items.
88
+ * if `item` prop is not declared, `itemRender` behaves like `item`, for backward compatibility with versions before 4.2.0
89
+ */
90
+ itemRender?: ((li: React.ReactElement<HTMLLIElement>, props: ButtonItemProps) => React.ReactNode) | React.ComponentType<{
91
+ item: any;
92
+ itemIndex: number;
93
+ }>;
94
+ /**
95
+ * Sets the `className` of the DropDownButton component.
96
+ */
97
+ className?: string;
98
+ /**
99
+ * Sets the `className` of the main button.
100
+ */
101
+ buttonClass?: string;
102
+ /**
103
+ * Sets the direction of the component.
104
+ */
105
+ dir?: string;
106
+ /**
107
+ * Fires when the component is focused ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/events)).
108
+ */
109
+ onFocus?: (event: DropDownButtonFocusEvent) => void;
110
+ /**
111
+ * Fires when the component is blurred ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/events)).
112
+ */
113
+ onBlur?: (event: DropDownButtonBlurEvent) => void;
114
+ /**
115
+ * Fires when an item is clicked ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/events)).
116
+ */
117
+ onItemClick?: (event: DropDownButtonItemClickEvent) => void;
118
+ /**
119
+ * Fires when the popup which contains the items is opened ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/events)).
120
+ */
121
+ onOpen?: (event: DropDownButtonOpenEvent) => void;
122
+ /**
123
+ * Fires when the popup which contains the items is closed ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/dropdownbutton/events)).
124
+ */
125
+ onClose?: (event: DropDownButtonCloseEvent) => void;
126
+ /**
127
+ * @hidden
128
+ * Fires when the main button is clicked
129
+ */
130
+ onClick?(event: DropDownButtonClickEvent): void;
131
+ /**
132
+ * Configures the `size` of the DropDownButton.
133
+ *
134
+ * The available options are:
135
+ * - `small`
136
+ * - `medium`
137
+ * - `large`
138
+ *
139
+ * @default undefined (theme-controlled)
140
+ *
141
+ * @example
142
+ * ```tsx
143
+ * <DropDownButton size="large" text="Actions" />
144
+ * ```
145
+ */
146
+ size?: 'small' | 'medium' | 'large';
147
+ /**
148
+ * Configures the `roundness` of the DropDownButton.
149
+ *
150
+ * The available options are:
151
+ * - `small`
152
+ * - `medium`
153
+ * - `large`
154
+ * - `full`
155
+ *
156
+ * @default undefined (theme-controlled)
157
+ *
158
+ * @example
159
+ * ```tsx
160
+ * <DropDownButton rounded="full" text="Actions" />
161
+ * ```
162
+ */
163
+ rounded?: 'small' | 'medium' | 'large' | 'full';
164
+ /**
165
+ * Configures the `fillMode` of the DropDownButton.
166
+ *
167
+ * The available options are:
168
+ * - `solid`
169
+ * - `outline`
170
+ * - `flat`
171
+ * - `link`
172
+ * - `clear`
173
+ *
174
+ * @default undefined (theme-controlled)
175
+ *
176
+ * @example
177
+ * ```tsx
178
+ * <DropDownButton fillMode="outline" text="Actions" />
179
+ * ```
180
+ */
181
+ fillMode?: 'solid' | 'outline' | 'flat' | 'link' | 'clear';
182
+ /**
183
+ * Configures the `themeColor` of the DropDownButton.
184
+ *
185
+ * The available options are:
186
+ * - `base`
187
+ * - `primary`
188
+ * - `secondary`
189
+ * - `tertiary`
190
+ * - `info`
191
+ * - `success`
192
+ * - `warning`
193
+ * - `error`
194
+ * - `dark`
195
+ * - `light`
196
+ * - `inverse`
197
+ *
198
+ * @default undefined (theme-controlled)
199
+ *
200
+ * @example
201
+ * ```tsx
202
+ * <DropDownButton themeColor="primary" text="Actions" />
203
+ * ```
204
+ */
205
+ themeColor?: 'base' | 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error' | 'dark' | 'light' | 'inverse';
206
+ /**
207
+ * Sets an SVG icon or custom element before the content of the DropDownButton. For the custom component, we recommend using [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content)
208
+ * but there must be no [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
209
+ */
210
+ startIcon?: React.ReactNode;
211
+ /**
212
+ * Sets an SVG icon or custom element after the content of the DropDownButton. For the custom component, we recommend using [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content)
213
+ * but there must be no [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
214
+ */
215
+ endIcon?: React.ReactNode;
216
+ }
217
+ export interface SplitButtonProps extends KendoReactComponentBaseProps {
218
+ /**
219
+ * Specifies the `accessKey` of the main button.
220
+ */
221
+ accessKey?: string;
222
+ /**
223
+ * The accessible label of the component.
224
+ */
225
+ ariaLabel?: string;
226
+ /**
227
+ * The title of the component.
228
+ */
229
+ title?: string;
230
+ /**
231
+ * Specifies the text of the main button ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton)).
232
+ */
233
+ text?: string;
234
+ /**
235
+ * Specifies the list items ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/data-binding#toc-arrays-of-objects)).
236
+ */
237
+ items?: any[];
238
+ /**
239
+ * Configures the field that will be used for the text of the `items`. `textField` has to be used together with the `items` prop ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/data-binding#toc-arrays-of-objects)).
240
+ */
241
+ textField?: string;
242
+ /**
243
+ * Specifies the `tabIndex` of the main button.
244
+ */
245
+ tabIndex?: number;
246
+ /**
247
+ * Determines whether the component is disabled ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/disabled)).
248
+ */
249
+ disabled?: boolean;
250
+ /**
251
+ * Defines an icon that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/icons)).
252
+ */
253
+ icon?: string;
254
+ /**
255
+ * Defines a SVG icon that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/icons)).
256
+ */
257
+ svgIcon?: SVGIcon;
258
+ /**
259
+ * Defines an icon with a custom CSS class that will be rendered next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/icons)).
260
+ */
261
+ iconClass?: string;
262
+ /**
263
+ * Sets an SVG icon or custom element before the content of the SplitButton. For the custom component, we recommend
264
+ * using [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content)
265
+ * but there must be no [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
266
+ */
267
+ startIcon?: React.ReactNode;
268
+ /**
269
+ * Sets an SVG icon or custom element after the content of the SplitButton. For the custom component, we recommend
270
+ * using [Phrasing content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#phrasing_content)
271
+ * but there must be no [Interactive content](https://developer.mozilla.org/en-US/docs/Web/HTML/Content_categories#interactive_content).
272
+ */
273
+ endIcon?: React.ReactNode;
274
+ /**
275
+ * Defines the location of an image that will be displayed next to the main button text ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/icons)).
276
+ */
277
+ imageUrl?: string;
278
+ /**
279
+ * Configures the popup ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/customization#toc-popup-behavior)).
280
+ */
281
+ popupSettings?: ButtonsPopupSettings;
282
+ /**
283
+ * Opens the popup of the SplitButton if set to `true`.
284
+ */
285
+ opened?: boolean;
286
+ /**
287
+ * A React functional or class component which is used for rendering items ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/customization#toc-items-rendering)). The default rendering includes an icon, an image, and text.
288
+ */
289
+ item?: null | React.ComponentType<{
290
+ item: any;
291
+ itemIndex: number;
292
+ }>;
293
+ /**
294
+ * Fires when a dropdown list button item is about to be rendered. Use it to override the default appearance of the list items.
295
+ * if `item` prop is not declared, `itemRender` behaves like `item`, for backward compatibility with versions before 4.2.0
296
+ */
297
+ itemRender?: ((li: React.ReactElement<HTMLLIElement>, props: ButtonItemProps) => React.ReactNode) | React.ComponentType<{
298
+ item: any;
299
+ itemIndex: number;
300
+ }>;
301
+ /**
302
+ * Sets the `className` of the SplitButton component.
303
+ */
304
+ className?: string;
305
+ /**
306
+ * Sets the `className` of the main button.
307
+ */
308
+ buttonClass?: string;
309
+ /**
310
+ * Sets the direction of the component.
311
+ */
312
+ dir?: string;
313
+ /**
314
+ * Fires when the main button is clicked ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
315
+ */
316
+ onButtonClick?: (event: SplitButtonClickEvent) => void;
317
+ /**
318
+ * Fires when the component is focused ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
319
+ */
320
+ onFocus?: (event: SplitButtonFocusEvent) => void;
321
+ /**
322
+ * Fires when the component is blurred ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
323
+ */
324
+ onBlur?: (event: SplitButtonBlurEvent) => void;
325
+ /**
326
+ * Fires when an item is clicked ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
327
+ */
328
+ onItemClick?: (event: SplitButtonItemClickEvent) => void;
329
+ /**
330
+ * Fires when the popup which contains the items is opened ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
331
+ */
332
+ onOpen?: (event: SplitButtonOpenEvent) => void;
333
+ /**
334
+ * Fires when the popup which contains the items is closed ([see example](https://www.telerik.com/kendo-react-ui/components/buttons/splitbutton/events)).
335
+ */
336
+ onClose?: (event: SplitButtonCloseEvent) => void;
337
+ /**
338
+ * Configures the `size` of the SplitButton.
339
+ *
340
+ * The available options are:
341
+ * - `small`
342
+ * - `medium`
343
+ * - `large`
344
+ *
345
+ * @default undefined (theme-controlled)
346
+ *
347
+ * @example
348
+ * ```tsx
349
+ * <SplitButton size="large" text="Actions" />
350
+ * ```
351
+ */
352
+ size?: 'small' | 'medium' | 'large';
353
+ /**
354
+ * Configures the `roundness` of the SplitButton.
355
+ *
356
+ * The available options are:
357
+ * - `small`
358
+ * - `medium`
359
+ * - `large`
360
+ * - `full`
361
+ *
362
+ * @default undefined (theme-controlled)
363
+ *
364
+ * @example
365
+ * ```tsx
366
+ * <SplitButton rounded="full" text="Actions" />
367
+ * ```
368
+ */
369
+ rounded?: 'small' | 'medium' | 'large' | 'full';
370
+ /**
371
+ * Configures the `fillMode` of the SplitButton.
372
+ *
373
+ * The available options are:
374
+ * - `solid`
375
+ * - `outline`
376
+ * - `flat`
377
+ * - `link`
378
+ *
379
+ * @default undefined (theme-controlled)
380
+ *
381
+ * @example
382
+ * ```tsx
383
+ * <SplitButton fillMode="outline" text="Actions" />
384
+ * ```
385
+ */
386
+ fillMode?: 'solid' | 'outline' | 'flat' | 'link';
387
+ /**
388
+ * Configures the `themeColor` of the SplitButton.
389
+ *
390
+ * The available options are:
391
+ * - `base`
392
+ * - `primary`
393
+ * - `secondary`
394
+ * - `tertiary`
395
+ * - `info`
396
+ * - `success`
397
+ * - `warning`
398
+ * - `error`
399
+ * - `dark`
400
+ * - `light`
401
+ * - `inverse`
402
+ *
403
+ * @default undefined (theme-controlled)
404
+ *
405
+ * @example
406
+ * ```tsx
407
+ * <SplitButton themeColor="primary" text="Actions" />
408
+ * ```
409
+ */
410
+ themeColor?: 'base' | 'primary' | 'secondary' | 'tertiary' | 'info' | 'success' | 'warning' | 'error' | 'dark' | 'light' | 'inverse';
411
+ }
@@ -0,0 +1,35 @@
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 { PopupAnimation, Align, PopupCloseEvent } from '@progress/kendo-react-popup';
9
+ /**
10
+ * The settings of the popup container.
11
+ */
12
+ export interface ButtonsPopupSettings {
13
+ /**
14
+ * Controls the popup animation. By default, the open and close animations are enabled.
15
+ */
16
+ animate?: boolean | PopupAnimation;
17
+ /**
18
+ * Specifies a list of CSS classes that are used for styling the popup.
19
+ */
20
+ popupClass?: string;
21
+ /**
22
+ * Specifies the pivot point of the anchor
23
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/popup/aligning-positioning)).
24
+ */
25
+ anchorAlign?: Align;
26
+ /**
27
+ * Specifies the pivot point of the Popup
28
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/popup/aligning-positioning)).
29
+ */
30
+ popupAlign?: Align;
31
+ /**
32
+ * Fires after the Popup is closed.
33
+ */
34
+ onClose?: (event: PopupCloseEvent) => void;
35
+ }