@progress/kendo-react-dropdowns 13.3.0-develop.9 → 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 (76) hide show
  1. package/AutoComplete/AutoComplete.d.ts +274 -0
  2. package/AutoComplete/AutoComplete.js +1 -1
  3. package/AutoComplete/AutoComplete.mjs +67 -69
  4. package/AutoComplete/AutoCompleteProps.d.ts +509 -0
  5. package/ComboBox/ComboBox.d.ts +279 -0
  6. package/ComboBox/ComboBox.js +1 -1
  7. package/ComboBox/ComboBox.mjs +281 -297
  8. package/ComboBox/ComboBoxProps.d.ts +632 -0
  9. package/DropDownList/DropDownList.d.ts +41 -0
  10. package/DropDownList/DropDownList.js +1 -1
  11. package/DropDownList/DropDownList.mjs +78 -83
  12. package/DropDownList/DropDownListProps.d.ts +594 -0
  13. package/DropDownList/models/index.d.ts +54 -0
  14. package/DropDownTree/DropDownTree.d.ts +76 -0
  15. package/DropDownTree/DropDownTree.js +1 -1
  16. package/DropDownTree/DropDownTree.mjs +6 -8
  17. package/DropDownTree/DropDownTreeProps.d.ts +506 -0
  18. package/DropDownTree/ListNoData.d.ts +13 -0
  19. package/DropDownTree/useDropdownWidth.d.ts +13 -0
  20. package/MultiColumnComboBox/MultiColumnComboBox.d.ts +299 -0
  21. package/MultiColumnComboBox/MultiColumnComboBox.js +1 -1
  22. package/MultiColumnComboBox/MultiColumnComboBox.mjs +45 -48
  23. package/MultiSelect/MultiSelect.d.ts +281 -0
  24. package/MultiSelect/MultiSelect.js +1 -1
  25. package/MultiSelect/MultiSelect.mjs +13 -15
  26. package/MultiSelect/MultiSelectProps.d.ts +592 -0
  27. package/MultiSelect/TagList.d.ts +45 -0
  28. package/MultiSelectTree/MultiSelectTree.d.ts +87 -0
  29. package/MultiSelectTree/MultiSelectTree.js +1 -1
  30. package/MultiSelectTree/MultiSelectTree.mjs +7 -7
  31. package/MultiSelectTree/MultiSelectTreeProps.d.ts +554 -0
  32. package/MultiSelectTree/utils.d.ts +24 -0
  33. package/common/AdaptiveMode.d.ts +22 -0
  34. package/common/ClearButton.d.ts +19 -0
  35. package/common/DropDownBase.d.ts +186 -0
  36. package/common/DropDownBase.js +1 -1
  37. package/common/DropDownBase.mjs +1 -1
  38. package/common/GroupStickyHeader.d.ts +26 -0
  39. package/common/GroupStickyHeader.js +1 -1
  40. package/common/GroupStickyHeader.mjs +6 -6
  41. package/common/List.d.ts +54 -0
  42. package/common/List.js +1 -1
  43. package/common/List.mjs +129 -77
  44. package/common/ListContainer.d.ts +24 -0
  45. package/common/ListDefaultItem.d.ts +22 -0
  46. package/common/ListFilter.d.ts +29 -0
  47. package/common/ListFilter.js +1 -1
  48. package/common/ListFilter.mjs +12 -12
  49. package/common/ListGroupItem.d.ts +54 -0
  50. package/common/ListGroupItem.js +1 -1
  51. package/common/ListGroupItem.mjs +21 -13
  52. package/common/ListItem.d.ts +87 -0
  53. package/common/ListItem.js +1 -1
  54. package/common/ListItem.mjs +62 -21
  55. package/common/ListItemIcon.d.ts +26 -0
  56. package/common/ListItemIcon.js +8 -0
  57. package/common/ListItemIcon.mjs +21 -0
  58. package/common/MultiColumnList.d.ts +13 -0
  59. package/common/Navigation.d.ts +20 -0
  60. package/common/SearchBar.d.ts +55 -0
  61. package/common/VirtualScrollStatic.d.ts +44 -0
  62. package/common/events.d.ts +82 -0
  63. package/common/filterDescriptor.d.ts +48 -0
  64. package/common/settings.d.ts +112 -0
  65. package/common/utils.d.ts +82 -0
  66. package/common/utils.js +1 -1
  67. package/common/utils.mjs +50 -47
  68. package/common/withCustomComponent.d.ts +12 -0
  69. package/dist/cdn/js/kendo-react-dropdowns.js +1 -1
  70. package/index.d.mts +28 -5545
  71. package/index.d.ts +28 -5545
  72. package/messages/index.d.ts +52 -0
  73. package/package-metadata.d.ts +12 -0
  74. package/package-metadata.js +1 -1
  75. package/package-metadata.mjs +10 -16
  76. package/package.json +10 -10
@@ -0,0 +1,186 @@
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 { VirtualScroll } from './VirtualScrollStatic.js';
10
+ import { Navigation } from './Navigation.js';
11
+ import { ListItemProps } from './ListItem.js';
12
+ import { InternalState, DropDownStateBase, Page, DropDownsPopupSettings, VirtualizationSettings } from './settings.js';
13
+ import * as React from 'react';
14
+ /**
15
+ * @hidden
16
+ */
17
+ export interface DropDownComponentProps {
18
+ data?: any[];
19
+ opened?: boolean;
20
+ value?: any;
21
+ disabled?: boolean;
22
+ tabIndex?: number;
23
+ dir?: string;
24
+ defaultItem?: any;
25
+ filterable?: boolean;
26
+ filter?: string | null;
27
+ textField?: string;
28
+ dataItemKey?: string;
29
+ popupSettings?: DropDownsPopupSettings;
30
+ style?: React.CSSProperties;
31
+ virtual?: VirtualizationSettings;
32
+ onOpen?: (event: any) => void;
33
+ onClose?: (event: any) => void;
34
+ onFocus?: (event: any) => void;
35
+ onBlur?: (event: any) => void;
36
+ onChange?: (event: any) => void;
37
+ onFilterChange?: (event: any) => void;
38
+ onPageChange?: (event: any) => void;
39
+ itemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListItemProps) => React.ReactNode;
40
+ listNoDataRender?: (element: React.ReactElement<HTMLDivElement>) => React.ReactNode;
41
+ header?: React.ReactNode;
42
+ footer?: React.ReactNode;
43
+ id?: string;
44
+ }
45
+ /**
46
+ * @hidden
47
+ */
48
+ export interface DropDownComponent {
49
+ props: DropDownComponentProps;
50
+ setState: Function;
51
+ forceUpdate: Function;
52
+ state: DropDownStateBase;
53
+ element: HTMLSpanElement | null;
54
+ handleItemSelect: Function;
55
+ value: any;
56
+ }
57
+ /**
58
+ * @hidden
59
+ */
60
+ export default class DropDownBase {
61
+ static basicPropTypes: {
62
+ opened: PropTypes.Requireable<boolean>;
63
+ disabled: PropTypes.Requireable<boolean>;
64
+ dir: PropTypes.Requireable<string>;
65
+ tabIndex: PropTypes.Requireable<number>;
66
+ accessKey: PropTypes.Requireable<string>;
67
+ data: PropTypes.Requireable<any[]>;
68
+ textField: PropTypes.Requireable<string>;
69
+ className: PropTypes.Requireable<string>;
70
+ label: PropTypes.Requireable<string>;
71
+ loading: PropTypes.Requireable<boolean>;
72
+ popupSettings: PropTypes.Requireable<PropTypes.InferProps<{
73
+ animate: PropTypes.Requireable<NonNullable<boolean | PropTypes.InferProps<{
74
+ openDuration: PropTypes.Requireable<number>;
75
+ closeDuration: PropTypes.Requireable<number>;
76
+ }> | null | undefined>>;
77
+ popupClass: PropTypes.Requireable<string>;
78
+ className: PropTypes.Requireable<string>;
79
+ appendTo: PropTypes.Requireable<any>;
80
+ width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
81
+ height: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
82
+ }>>;
83
+ onOpen: PropTypes.Requireable<(...args: any[]) => any>;
84
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
85
+ onFocus: PropTypes.Requireable<(...args: any[]) => any>;
86
+ onBlur: PropTypes.Requireable<(...args: any[]) => any>;
87
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
88
+ itemRender: PropTypes.Requireable<(...args: any[]) => any>;
89
+ listNoDataRender: PropTypes.Requireable<(...args: any[]) => any>;
90
+ focusedItemIndex: PropTypes.Requireable<(...args: any[]) => any>;
91
+ header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
92
+ footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
93
+ };
94
+ static propTypes: {
95
+ value: PropTypes.Requireable<any>;
96
+ defaultValue: PropTypes.Requireable<any>;
97
+ filterable: PropTypes.Requireable<boolean>;
98
+ filter: PropTypes.Requireable<string>;
99
+ virtual: PropTypes.Requireable<PropTypes.InferProps<{
100
+ pageSize: PropTypes.Validator<number>;
101
+ skip: PropTypes.Validator<number>;
102
+ total: PropTypes.Validator<number>;
103
+ }>>;
104
+ onFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
105
+ onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
106
+ opened: PropTypes.Requireable<boolean>;
107
+ disabled: PropTypes.Requireable<boolean>;
108
+ dir: PropTypes.Requireable<string>;
109
+ tabIndex: PropTypes.Requireable<number>;
110
+ accessKey: PropTypes.Requireable<string>;
111
+ data: PropTypes.Requireable<any[]>;
112
+ textField: PropTypes.Requireable<string>;
113
+ className: PropTypes.Requireable<string>;
114
+ label: PropTypes.Requireable<string>;
115
+ loading: PropTypes.Requireable<boolean>;
116
+ popupSettings: PropTypes.Requireable<PropTypes.InferProps<{
117
+ animate: PropTypes.Requireable<NonNullable<boolean | PropTypes.InferProps<{
118
+ openDuration: PropTypes.Requireable<number>;
119
+ closeDuration: PropTypes.Requireable<number>;
120
+ }> | null | undefined>>;
121
+ popupClass: PropTypes.Requireable<string>;
122
+ className: PropTypes.Requireable<string>;
123
+ appendTo: PropTypes.Requireable<any>;
124
+ width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
125
+ height: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
126
+ }>>;
127
+ onOpen: PropTypes.Requireable<(...args: any[]) => any>;
128
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
129
+ onFocus: PropTypes.Requireable<(...args: any[]) => any>;
130
+ onBlur: PropTypes.Requireable<(...args: any[]) => any>;
131
+ onChange: PropTypes.Requireable<(...args: any[]) => any>;
132
+ itemRender: PropTypes.Requireable<(...args: any[]) => any>;
133
+ listNoDataRender: PropTypes.Requireable<(...args: any[]) => any>;
134
+ focusedItemIndex: PropTypes.Requireable<(...args: any[]) => any>;
135
+ header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
136
+ footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
137
+ };
138
+ static defaultProps: {
139
+ popupSettings: {
140
+ height: string;
141
+ };
142
+ required: boolean;
143
+ validityStyles: boolean;
144
+ };
145
+ popupWidth?: string;
146
+ wrapper: HTMLSpanElement | null;
147
+ list: HTMLUListElement | null;
148
+ dirCalculated?: string;
149
+ readonly vs: VirtualScroll;
150
+ readonly navigation: Navigation;
151
+ readonly listBoxId: string;
152
+ readonly guid: string;
153
+ readonly component: DropDownComponent;
154
+ constructor(component: DropDownComponent);
155
+ didUpdate(): void;
156
+ didMount(): void;
157
+ calculateDir(): void;
158
+ calculatePopupWidth(): void;
159
+ scrollToItem(itemIndex: number, vsEnabled?: boolean, once?: boolean): void;
160
+ updateComponentArgs(args: any): void;
161
+ handleItemClick: (index: number, event: React.MouseEvent<HTMLLIElement> | React.KeyboardEvent<HTMLInputElement>) => void;
162
+ handleFocus: React.FocusEventHandler<HTMLSpanElement>;
163
+ filterChanged: (text: string | null, state: InternalState) => void;
164
+ initState(): InternalState;
165
+ applyState(state: InternalState): void;
166
+ togglePopup: (state: InternalState) => void;
167
+ pageChange: (page: Page, syntheticEvent: React.SyntheticEvent<any>) => void;
168
+ triggerOnPageChange(state: InternalState, skip: number, take: number): void;
169
+ triggerPageChangeCornerItems(item: any, state: InternalState): void;
170
+ scrollToVirtualItem: (virtual: VirtualizationSettings, selectedItemIndex: number) => void;
171
+ /**
172
+ * @hidden
173
+ * Scrolls the data inside the popup of a selected DropDown by `one page`. The page size
174
+ * depends on the height of the popup.
175
+ *
176
+ * @param {number} direction Defines the direction(Up/Down) in which the page will be moved
177
+ * @param {number} filterHeight Defines the heigh of the filter element that appears in the DropDownList and DropDownTree.
178
+ * This property is added for handling the filtering scenarios of the mentioned components.
179
+ */
180
+ scrollPopupByPageSize: (direction: number) => void;
181
+ renderScrollElement: () => false | React.JSX.Element;
182
+ getPopupSettings(): DropDownsPopupSettings;
183
+ getAdaptiveAnimation(): boolean;
184
+ getGroupedDataModernMode(data: any[], groupField: string): any[];
185
+ resetGroupStickyHeader: (groupName: string, that: any) => void;
186
+ }
@@ -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";const v=require("react"),n=require("prop-types"),y=require("./VirtualScrollStatic.js"),S=require("./Navigation.js"),c=require("./utils.js");function b(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const t in l)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(l,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>l[t]})}}return e.default=l,Object.freeze(e)}const P=b(v),a=class a{constructor(e){this.wrapper=null,this.list=null,this.vs=new y.VirtualScroll,this.navigation=new S.Navigation,this.handleItemClick=(t,s)=>{const i=this.initState();i.syntheticEvent=s,s.stopPropagation(),this.component.handleItemSelect(t,i),this.togglePopup(i),this.applyState(i)},this.handleFocus=t=>{if(!this.component.state.focused){const s=this.initState();s.data.focused=!0,s.events.push({type:"onFocus"}),s.syntheticEvent=t,this.applyState(s)}},this.filterChanged=(t,s)=>{const{textField:i,filterable:o}=this.component.props;o&&s.events.push({type:"onFilterChange",filter:{field:i,operator:"contains",ignoreCase:!0,value:t}})},this.togglePopup=t=>{const s=this.component.props,i=s.opened!==void 0?s.opened:this.component.state.opened;s.opened===void 0&&(t.data.opened=!i),i?t.events.push({type:"onClose"}):(t.events.push({type:"onOpen"}),this.calculatePopupWidth())},this.pageChange=(t,s)=>{const i=this.initState();i.syntheticEvent=s,this.triggerOnPageChange(i,t.skip,t.take),this.applyState(i)},this.scrollToVirtualItem=(t,s)=>{const i=this.vs;if(t.skip===0)i.reset();else{let o=i.translate;o===0&&(i.calcScrollElementHeight(),o=i.itemHeight*t.skip,i.translateTo(o,!0)),s<0&&o>0&&(o+=i.itemHeight*(t.pageSize/4)),i.container&&(i.container.scrollTop=o),this.scrollToItem(s,!0)}},this.scrollPopupByPageSize=t=>{var p,u,d,g,f,m;const s=this.vs,i=(u=(p=this.list)==null?void 0:p.parentElement)==null?void 0:u.scrollTop,o=s.enabled&&s.itemHeight?s.itemHeight:this.list?this.list.children[0].offsetHeight:0,r=(g=(d=this.list)==null?void 0:d.parentElement)==null?void 0:g.offsetHeight;i!==void 0&&r!==void 0&&((m=(f=this.list)==null?void 0:f.parentElement)==null||m.scroll({top:i+t*Math.floor(r/o)*o}))},this.renderScrollElement=()=>{const t=this.vs;return t.enabled&&P.createElement("div",{ref:s=>{t.scrollElement=s},key:"scrollElementKey"})},this.resetGroupStickyHeader=(t,s)=>{t!==s.state.group&&s.setState({group:t})},this.listBoxId=e.props.id+"list",this.guid=e.props.id,this.component=e,this.vs.PageChange=this.pageChange}didUpdate(){this.vs.listTransform&&this.vs.list&&(this.vs.list.style.transform=this.vs.listTransform,this.vs.listTransform="")}didMount(){const e=this.component.props,t=e.popupSettings||{},s=e.style||{},i=t.width;let o=e.opened===!0;i===void 0&&this.calculatePopupWidth(),e.dir===void 0&&s.direction===void 0&&(this.calculateDir(),o=!0),o&&this.component.forceUpdate()}calculateDir(){const e=this.component.element;e&&e.ownerDocument&&e.ownerDocument.defaultView&&(this.dirCalculated=e.ownerDocument.defaultView.getComputedStyle(e).direction||void 0)}calculatePopupWidth(){this.wrapper&&(this.popupWidth=this.wrapper.offsetWidth+"px")}scrollToItem(e,t,s){const i=this.list||this.vs.list;if(!i&&!s&&setTimeout(()=>{this.scrollToItem(e,t,!0)},10),e===0&&t&&this.vs.skip===0){this.vs.reset();return}if(i&&e>=0){const o=this.vs,r=o.container||i.parentNode,p=t!==void 0?t:o.enabled;c.scrollToItem(r,i,e,o.translate,p)}}updateComponentArgs(e){for(let t in e)Object.hasOwnProperty.call(e,t)&&(this.component[t]=e[t])}initState(){return{data:{},events:[],syntheticEvent:void 0}}applyState(e){Object.keys(e.data).length>0&&this.component.setState(e.data);const t={syntheticEvent:e.syntheticEvent,nativeEvent:e.syntheticEvent?e.syntheticEvent.nativeEvent:void 0,target:this.component,value:this.component.value};e.events.forEach(s=>{const i=s.type;delete s.type;const o=i&&this.component.props[i];o&&o.call(void 0,{...t,...s})})}triggerOnPageChange(e,t,s){const i=this.component.props.virtual;if(i){const o=Math.min(Math.max(0,t),Math.max(0,i.total-s));o!==i.skip&&e.events.push({type:"onPageChange",page:{skip:o,take:s}})}}triggerPageChangeCornerItems(e,t){const s=this.component.props,{data:i=[],dataItemKey:o,virtual:r}=s,p=s.opened!==void 0?s.opened:this.component.state.opened;e&&r&&this.vs.enabled&&(r.skip>0&&c.areSame(e,i[0],o)?this.triggerOnPageChange(t,r.skip-1,r.pageSize):!p&&r.skip+r.pageSize<r.total&&c.areSame(e,i[i.length-1],o)&&this.triggerOnPageChange(t,r.skip+1,r.pageSize))}getPopupSettings(){return Object.assign({},a.defaultProps.popupSettings,this.component.props.popupSettings)}getAdaptiveAnimation(){const e=this.getPopupSettings();return e.animate!==void 0?e.animate:!0}getGroupedDataModernMode(e,t){const s=[];return e.forEach((i,o)=>{e[o-1]&&i[t]!==e[o-1][t]&&s.push({[t]:i[t]}),s.push(e[o])}),s}};a.basicPropTypes={opened:n.bool,disabled:n.bool,dir:n.string,tabIndex:n.number,accessKey:n.string,data:n.array,textField:n.string,className:n.string,label:n.string,loading:n.bool,popupSettings:n.shape({animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),popupClass:n.string,className:n.string,appendTo:n.any,width:n.oneOfType([n.string,n.number]),height:n.oneOfType([n.string,n.number])}),onOpen:n.func,onClose:n.func,onFocus:n.func,onBlur:n.func,onChange:n.func,itemRender:n.func,listNoDataRender:n.func,focusedItemIndex:n.func,header:n.node,footer:n.node},a.propTypes={...a.basicPropTypes,value:n.any,defaultValue:n.any,filterable:n.bool,filter:n.string,virtual:n.shape({pageSize:n.number.isRequired,skip:n.number.isRequired,total:n.number.isRequired}),onFilterChange:n.func,onPageChange:n.func},a.defaultProps={popupSettings:{height:"200px"},required:!1,validityStyles:!0};let h=a;module.exports=h;
8
+ "use strict";const v=require("react"),n=require("prop-types"),y=require("./VirtualScrollStatic.js"),S=require("./Navigation.js"),c=require("./utils.js");function b(l){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const t in l)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(l,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>l[t]})}}return e.default=l,Object.freeze(e)}const P=b(v),a=class a{constructor(e){this.wrapper=null,this.list=null,this.vs=new y.VirtualScroll,this.navigation=new S.Navigation,this.handleItemClick=(t,s)=>{const i=this.initState();i.syntheticEvent=s,s.stopPropagation(),this.component.handleItemSelect(t,i),this.togglePopup(i),this.applyState(i)},this.handleFocus=t=>{if(!this.component.state.focused){const s=this.initState();s.data.focused=!0,s.events.push({type:"onFocus"}),s.syntheticEvent=t,this.applyState(s)}},this.filterChanged=(t,s)=>{const{textField:i,filterable:o}=this.component.props;o&&s.events.push({type:"onFilterChange",filter:{field:i,operator:"contains",ignoreCase:!0,value:t}})},this.togglePopup=t=>{const s=this.component.props,i=s.opened!==void 0?s.opened:this.component.state.opened;s.opened===void 0&&(t.data.opened=!i),i?t.events.push({type:"onClose"}):(t.events.push({type:"onOpen"}),this.calculatePopupWidth())},this.pageChange=(t,s)=>{const i=this.initState();i.syntheticEvent=s,this.triggerOnPageChange(i,t.skip,t.take),this.applyState(i)},this.scrollToVirtualItem=(t,s)=>{const i=this.vs;if(t.skip===0)i.reset();else{let o=i.translate;o===0&&(i.calcScrollElementHeight(),o=i.itemHeight*t.skip,i.translateTo(o,!0)),s<0&&o>0&&(o+=i.itemHeight*(t.pageSize/4)),i.container&&(i.container.scrollTop=o),this.scrollToItem(s,!0)}},this.scrollPopupByPageSize=t=>{var p,u,d,g,f,m;const s=this.vs,i=(u=(p=this.list)==null?void 0:p.parentElement)==null?void 0:u.scrollTop,o=s.enabled&&s.itemHeight?s.itemHeight:this.list?this.list.children[0].offsetHeight:0,r=(g=(d=this.list)==null?void 0:d.parentElement)==null?void 0:g.offsetHeight;i!==void 0&&r!==void 0&&((m=(f=this.list)==null?void 0:f.parentElement)==null||m.scroll({top:i+t*Math.floor(r/o)*o}))},this.renderScrollElement=()=>{const t=this.vs;return t.enabled&&P.createElement("div",{ref:s=>{t.scrollElement=s},key:"scrollElementKey"})},this.resetGroupStickyHeader=(t,s)=>{t!==s.state.group&&s.setState({group:t})},this.listBoxId=e.props.id+"list",this.guid=e.props.id,this.component=e,this.vs.PageChange=this.pageChange}didUpdate(){this.vs.listTransform&&this.vs.list&&(this.vs.list.style.transform=this.vs.listTransform,this.vs.listTransform="")}didMount(){const e=this.component.props,t=e.popupSettings||{},s=e.style||{},i=t.width;let o=e.opened===!0;i===void 0&&this.calculatePopupWidth(),e.dir===void 0&&s.direction===void 0&&(this.calculateDir(),o=!0),o&&this.component.forceUpdate()}calculateDir(){const e=this.component.element;e&&e.ownerDocument&&e.ownerDocument.defaultView&&(this.dirCalculated=e.ownerDocument.defaultView.getComputedStyle(e).direction||void 0)}calculatePopupWidth(){this.wrapper&&(this.popupWidth=this.wrapper.offsetWidth+"px")}scrollToItem(e,t,s){const i=this.list||this.vs.list;if(!i&&!s&&setTimeout(()=>{this.scrollToItem(e,t,!0)},10),e===0&&t&&this.vs.skip===0){this.vs.reset();return}if(i&&e>=0){const o=this.vs,r=o.container||i.parentNode,p=t!==void 0?t:o.enabled;c.scrollToItem(r,i,e,o.translate,p)}}updateComponentArgs(e){for(const t in e)Object.hasOwnProperty.call(e,t)&&(this.component[t]=e[t])}initState(){return{data:{},events:[],syntheticEvent:void 0}}applyState(e){Object.keys(e.data).length>0&&this.component.setState(e.data);const t={syntheticEvent:e.syntheticEvent,nativeEvent:e.syntheticEvent?e.syntheticEvent.nativeEvent:void 0,target:this.component,value:this.component.value};e.events.forEach(s=>{const i=s.type;delete s.type;const o=i&&this.component.props[i];o&&o.call(void 0,{...t,...s})})}triggerOnPageChange(e,t,s){const i=this.component.props.virtual;if(i){const o=Math.min(Math.max(0,t),Math.max(0,i.total-s));o!==i.skip&&e.events.push({type:"onPageChange",page:{skip:o,take:s}})}}triggerPageChangeCornerItems(e,t){const s=this.component.props,{data:i=[],dataItemKey:o,virtual:r}=s,p=s.opened!==void 0?s.opened:this.component.state.opened;e&&r&&this.vs.enabled&&(r.skip>0&&c.areSame(e,i[0],o)?this.triggerOnPageChange(t,r.skip-1,r.pageSize):!p&&r.skip+r.pageSize<r.total&&c.areSame(e,i[i.length-1],o)&&this.triggerOnPageChange(t,r.skip+1,r.pageSize))}getPopupSettings(){return Object.assign({},a.defaultProps.popupSettings,this.component.props.popupSettings)}getAdaptiveAnimation(){const e=this.getPopupSettings();return e.animate!==void 0?e.animate:!0}getGroupedDataModernMode(e,t){const s=[];return e.forEach((i,o)=>{e[o-1]&&i[t]!==e[o-1][t]&&s.push({[t]:i[t]}),s.push(e[o])}),s}};a.basicPropTypes={opened:n.bool,disabled:n.bool,dir:n.string,tabIndex:n.number,accessKey:n.string,data:n.array,textField:n.string,className:n.string,label:n.string,loading:n.bool,popupSettings:n.shape({animate:n.oneOfType([n.bool,n.shape({openDuration:n.number,closeDuration:n.number})]),popupClass:n.string,className:n.string,appendTo:n.any,width:n.oneOfType([n.string,n.number]),height:n.oneOfType([n.string,n.number])}),onOpen:n.func,onClose:n.func,onFocus:n.func,onBlur:n.func,onChange:n.func,itemRender:n.func,listNoDataRender:n.func,focusedItemIndex:n.func,header:n.node,footer:n.node},a.propTypes={...a.basicPropTypes,value:n.any,defaultValue:n.any,filterable:n.bool,filter:n.string,virtual:n.shape({pageSize:n.number.isRequired,skip:n.number.isRequired,total:n.number.isRequired}),onFilterChange:n.func,onPageChange:n.func},a.defaultProps={popupSettings:{height:"200px"},required:!1,validityStyles:!0};let h=a;module.exports=h;
@@ -89,7 +89,7 @@ const a = class a {
89
89
  }
90
90
  }
91
91
  updateComponentArgs(s) {
92
- for (let t in s)
92
+ for (const t in s)
93
93
  Object.hasOwnProperty.call(s, t) && (this.component[t] = s[t]);
94
94
  }
95
95
  initState() {
@@ -0,0 +1,26 @@
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 * as React from 'react';
9
+ /**
10
+ * Represents the props of the GroupStickyHeader component.
11
+ */
12
+ export interface GroupStickyHeaderProps {
13
+ /**
14
+ * The group that will be rendered.
15
+ */
16
+ group?: string;
17
+ /**
18
+ * Fires when a ComboBox sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component.
19
+ */
20
+ render?: (div: React.ReactElement<HTMLDivElement>, itemProps: GroupStickyHeaderProps) => React.ReactNode;
21
+ }
22
+ /**
23
+ * @hidden
24
+ */
25
+ declare const GroupStickyHeader: (props: GroupStickyHeaderProps) => string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
26
+ export default GroupStickyHeader;
@@ -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";const c=require("@progress/kendo-react-common"),u=require("react");function d(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const l=d(u),i=e=>{const{group:t,groupMode:s,render:r}=e,o=c.useUnstyled(),n=o&&o.uDropDownsBase,a=l.createElement("div",{className:c.classNames(c.uDropDownsBase.groupStickyHeader({c:n}))},s==="classic"?t:l.createElement("div",{className:c.classNames(c.uDropDownsBase.listHeaderText({c:n}))},t));return r!==void 0?r.call(void 0,a,e):a};module.exports=i;
8
+ "use strict";const n=require("@progress/kendo-react-common"),u=require("react");function l(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const a=l(u),d=e=>{const{group:s,render:t}=e,r=n.useUnstyled(),c=r&&r.uDropDownsBase,o=a.createElement("div",{className:n.classNames(n.uDropDownsBase.groupStickyHeader({c}))},a.createElement("div",{className:n.classNames(n.uDropDownsBase.listHeaderText({c}))},s));return t!==void 0?t(o,e):o};module.exports=d;
@@ -5,12 +5,12 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { useUnstyled as i, classNames as c, uDropDownsBase as d } from "@progress/kendo-react-common";
9
- import * as l from "react";
10
- const u = (e) => {
11
- const { group: s, groupMode: n, render: r } = e, t = i(), a = t && t.uDropDownsBase, o = /* @__PURE__ */ l.createElement("div", { className: c(d.groupStickyHeader({ c: a })) }, n === "classic" ? s : /* @__PURE__ */ l.createElement("div", { className: c(d.listHeaderText({ c: a })) }, s));
12
- return r !== void 0 ? r.call(void 0, o, e) : o;
8
+ import { useUnstyled as l, classNames as o, uDropDownsBase as c } from "@progress/kendo-react-common";
9
+ import * as n from "react";
10
+ const i = (e) => {
11
+ const { group: d, render: s } = e, t = l(), r = t && t.uDropDownsBase, a = /* @__PURE__ */ n.createElement("div", { className: o(c.groupStickyHeader({ c: r })) }, /* @__PURE__ */ n.createElement("div", { className: o(c.listHeaderText({ c: r })) }, d));
12
+ return s !== void 0 ? s(a, e) : a;
13
13
  };
14
14
  export {
15
- u as default
15
+ i as default
16
16
  };
@@ -0,0 +1,54 @@
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 { ListItemProps } from './ListItem.js';
9
+ import { ListGroupItemProps } from './ListGroupItem.js';
10
+ import * as React from 'react';
11
+ /**
12
+ * @hidden
13
+ */
14
+ export interface ListProps {
15
+ id?: string;
16
+ virtual?: boolean;
17
+ show?: boolean;
18
+ data: any[];
19
+ value?: any;
20
+ textField?: string;
21
+ valueField?: string;
22
+ groupField?: string;
23
+ isMultiColumn?: boolean;
24
+ optionsGuid?: string;
25
+ hasDuplicates?: boolean;
26
+ listRef?: React.Ref<HTMLUListElement>;
27
+ wrapperRef?: React.Ref<HTMLDivElement>;
28
+ wrapperCssClass?: string;
29
+ wrapperStyle?: React.CSSProperties;
30
+ listStyle?: React.CSSProperties;
31
+ listClassName?: string;
32
+ skip?: number;
33
+ focusedIndex?: number;
34
+ highlightSelected?: boolean;
35
+ ariaSetSize?: number;
36
+ onClick: (index: number, event: React.MouseEvent<HTMLLIElement>) => void;
37
+ itemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListItemProps) => React.ReactNode;
38
+ groupHeaderItemRender?: (li: React.ReactElement<HTMLLIElement>, groupItemProps: ListGroupItemProps) => React.ReactNode;
39
+ noDataRender?: (element: React.ReactElement<HTMLDivElement>) => React.ReactNode;
40
+ onMouseDown?: (event: React.MouseEvent<HTMLDivElement>) => void;
41
+ onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
42
+ onScroll?: (event: React.UIEvent<HTMLDivElement>) => void;
43
+ scroller?: any;
44
+ actionsField?: string;
45
+ descriptionField?: string;
46
+ iconField?: string;
47
+ svgIconField?: string;
48
+ checkboxField?: string;
49
+ }
50
+ /**
51
+ * @hidden
52
+ */
53
+ declare const List: (props: ListProps) => React.ReactElement;
54
+ export default List;
package/common/List.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";const U=require("react"),J=require("./ListItem.js"),K=require("./ListGroupItem.js"),f=require("./utils.js"),Q=require("@progress/kendo-react-intl"),S=require("../messages/index.js"),n=require("@progress/kendo-react-common");function W(e){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(l,t,s.get?s:{enumerable:!0,get:()=>e[t]})}}return l.default=e,Object.freeze(l)}const r=W(U),X=e=>{const l=Q.useLocalization(),t=n.useUnstyled(),s=t&&t.uDropDownsBase,{id:q,show:B,wrapperCssClass:M,wrapperStyle:z,listStyle:L,listRef:O,wrapperRef:j,listClassName:x,ariaSetSize:$}=e,b=(()=>{const{textField:i,valueField:c,groupField:g,groupMode:w,isMultiColumn:F,optionsGuid:C,skip:N=0,virtual:R,focusedIndex:h,hasDuplicates:G,highlightSelected:V=!0,value:u,data:E,itemRender:_,groupHeaderItemRender:P}=e,k=Array.isArray(u);let D=0;return E.map((a,o)=>{const p=N+o,v=N+o+D,H=G?u?h===o:!1:a.disabled?!1:V&&(!k&&f.areSame(a,u,c)||k&&u.findIndex(T=>f.areSame(T,a,c))!==-1);let d,m,y;o>0&&g!==void 0&&(m=f.getItemValue(a,g),y=f.getItemValue(E[o-1],g),m&&y&&m!==y&&(d=m));const I=d!==void 0&&w==="modern";return I?D+=1:D=0,[I&&r.createElement(K,{id:`option-${C}-${v}`,virtual:R,key:p+"-group-item",group:d,isMultiColumn:F,render:P}),r.createElement(J,{id:`option-${C}-${I?v+1:v}`,virtual:R,dataItem:a,groupMode:w,selected:H,focused:h===o,index:p,key:p,onClick:e.onClick,textField:i,group:d,render:_,disabled:a.disabled})]})})(),A=()=>{const i=e.noDataRender,c=r.createElement("div",{className:n.classNames(n.uDropDownsBase.noData({c:s}))},r.createElement("div",null,l.toLanguageString(S.nodata,S.messages[S.nodata])));return i?i.call(void 0,c):c};return b.length?r.createElement("div",{className:M,style:z,ref:j,onMouseDown:e.onMouseDown,onBlur:e.onBlur,onScroll:e.onScroll,unselectable:"on"},r.createElement("ul",{id:q,role:"listbox","aria-hidden":B?void 0:!0,"aria-setsize":$,className:x||n.classNames(n.uDropDownsBase.ul({c:s})),ref:O,style:L},b),e.scroller&&r.createElement("div",{className:n.classNames(n.uDropDownsBase.heightContainer({c:s}))},e.scroller)):A()};module.exports=X;
8
+ "use strict";const Y=require("react"),Z=require("./ListItem.js"),w=require("./ListGroupItem.js"),h=require("./utils.js"),ee=require("@progress/kendo-react-intl"),I=require("../messages/index.js"),s=require("@progress/kendo-react-common");function te(e){const m=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const i=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(m,l,i.get?i:{enumerable:!0,get:()=>e[l]})}}return m.default=e,Object.freeze(m)}const a=te(Y),re=e=>{const m=ee.useLocalization(),l=s.useUnstyled(),i=l&&l.uDropDownsBase,{id:N,show:b,wrapperCssClass:j,wrapperStyle:M,listStyle:k,listRef:C,wrapperRef:V,listClassName:R,ariaSetSize:B,actionsField:$,descriptionField:_,iconField:q,svgIconField:L,checkboxField:P}=e,D=(()=>{const{textField:o,valueField:t,groupField:n,isMultiColumn:r,optionsGuid:c,skip:f=0,virtual:g,focusedIndex:x,hasDuplicates:H,highlightSelected:J=!0,value:v,data:z,itemRender:K,groupHeaderItemRender:Q}=e,A=Array.isArray(v);let G=0;return z.map((d,u)=>{const E=f+u,F=f+u+G,W=H?v?x===u:!1:d.disabled?!1:J&&(!A&&h.areSame(d,v,t)||A&&v.findIndex(X=>h.areSame(X,d,t))!==-1);let p,y,S;u>0&&n!==void 0&&(y=h.getItemValue(d,n),S=h.getItemValue(z[u-1],n),y&&S&&y!==S&&(p=y));const O=p!==void 0;return p!==void 0&&(G+=1),[O&&a.createElement(w,{id:`option-${c}-${F}`,virtual:g,key:E+"-group-item",group:p,isMultiColumn:r,render:Q,iconField:q,svgIconField:L,groupItem:d}),a.createElement(Z,{id:`option-${c}-${O?F+1:F}`,virtual:g,dataItem:d,selected:W,focused:x===u,index:E,key:E,onClick:e.onClick,textField:o,group:p,render:K,disabled:d.disabled,actionsField:$,descriptionField:_,iconField:q,svgIconField:L,checkboxField:P})]})})(),T=()=>{const o=e.noDataRender,t=a.createElement("div",{className:s.classNames(s.uDropDownsBase.noData({c:i})),"aria-live":"polite"},a.createElement("div",null,m.toLanguageString(I.nodata,I.messages[I.nodata])));return o?o(t):t},U=()=>{if(!e.groupField)return a.createElement("ul",{id:N,role:"listbox","aria-hidden":b?void 0:!0,"aria-setsize":B,className:R||s.classNames(s.uDropDownsBase.ul({c:i})),ref:C,style:k},D);const o=[];let t=[];return D.forEach(n=>{Array.isArray(n)&&n.forEach(r=>{r&&r.type===w?(t.length>0&&o.push(t),t=[r]):r&&t.push(r)})}),t.length>0&&o.push(t),o.map(n=>{var f;const r=n.find(g=>a.isValidElement(g)&&g.type===w),c=(f=r==null?void 0:r.props)==null?void 0:f.id;return a.createElement("ul",{id:c?void 0:N,key:c||"first-group",role:"group","aria-labelledby":c,className:R||s.classNames(s.uDropDownsBase.ul({c:i})),ref:c?void 0:C,style:k},n)})};return D.length?a.createElement("div",{className:j,style:M,ref:V,role:e.groupField?"listbox":void 0,"aria-hidden":e.groupField&&!b?!0:void 0,"aria-setsize":e.groupField?B:void 0,onMouseDown:e.onMouseDown,onBlur:e.onBlur,onScroll:e.onScroll,unselectable:"on"},U(),e.scroller&&a.createElement("div",{className:s.classNames(s.uDropDownsBase.heightContainer({c:i}))},e.scroller)):T()};module.exports=re;
package/common/List.mjs CHANGED
@@ -5,101 +5,153 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import * as t from "react";
9
- import T from "./ListItem.mjs";
10
- import W from "./ListGroupItem.mjs";
11
- import { areSame as b, getItemValue as k } from "./utils.mjs";
12
- import { useLocalization as X } from "@progress/kendo-react-intl";
13
- import { nodata as B, messages as Y } from "../messages/index.mjs";
14
- import { useUnstyled as Z, classNames as v, uDropDownsBase as y } from "@progress/kendo-react-common";
15
- const le = (e) => {
16
- const L = X(), D = Z(), d = D && D.uDropDownsBase, { id: M, show: z, wrapperCssClass: $, wrapperStyle: x, listStyle: A, listRef: F, wrapperRef: G, listClassName: V, ariaSetSize: H } = e, I = (() => {
8
+ import * as l from "react";
9
+ import ee from "./ListItem.mjs";
10
+ import D from "./ListGroupItem.mjs";
11
+ import { areSame as $, getItemValue as M } from "./utils.mjs";
12
+ import { useLocalization as te } from "@progress/kendo-react-intl";
13
+ import { nodata as V, messages as re } from "../messages/index.mjs";
14
+ import { useUnstyled as oe, classNames as p, uDropDownsBase as v } from "@progress/kendo-react-common";
15
+ const ue = (e) => {
16
+ const U = te(), I = oe(), m = I && I.uDropDownsBase, {
17
+ id: S,
18
+ show: C,
19
+ wrapperCssClass: j,
20
+ wrapperStyle: q,
21
+ listStyle: w,
22
+ listRef: N,
23
+ wrapperRef: H,
24
+ listClassName: k,
25
+ ariaSetSize: L,
26
+ actionsField: J,
27
+ descriptionField: K,
28
+ iconField: R,
29
+ svgIconField: b,
30
+ checkboxField: O
31
+ } = e, h = (() => {
17
32
  const {
18
- textField: s,
19
- valueField: a,
20
- groupField: c,
21
- groupMode: S,
22
- isMultiColumn: j,
23
- optionsGuid: h,
24
- skip: C = 0,
25
- virtual: E,
26
- focusedIndex: w,
27
- hasDuplicates: q,
28
- highlightSelected: J = !0,
29
- value: l,
30
- data: N,
31
- itemRender: K,
32
- groupHeaderItemRender: O
33
- } = e, R = Array.isArray(l);
34
- let u = 0;
35
- return N.map((r, o) => {
36
- const m = C + o, f = C + o + u, P = q ? l ? w === o : !1 : r.disabled ? !1 : J && (!R && b(r, l, a) || R && l.findIndex((Q) => b(Q, r, a)) !== -1);
37
- let n, i, g;
38
- o > 0 && c !== void 0 && (i = k(r, c), g = k(N[o - 1], c), i && g && i !== g && (n = i));
39
- const p = n !== void 0 && S === "modern";
40
- return p ? u += 1 : u = 0, [
41
- p && /* @__PURE__ */ t.createElement(
42
- W,
33
+ textField: i,
34
+ valueField: t,
35
+ groupField: o,
36
+ isMultiColumn: r,
37
+ optionsGuid: a,
38
+ skip: d = 0,
39
+ virtual: c,
40
+ focusedIndex: x,
41
+ hasDuplicates: T,
42
+ highlightSelected: W = !0,
43
+ value: f,
44
+ data: z,
45
+ itemRender: X,
46
+ groupHeaderItemRender: Y
47
+ } = e, A = Array.isArray(f);
48
+ let B = 0;
49
+ return z.map((n, s) => {
50
+ const y = d + s, E = d + s + B, Z = T ? f ? x === s : !1 : n.disabled ? !1 : W && (!A && $(n, f, t) || A && f.findIndex((_) => $(_, n, t)) !== -1);
51
+ let u, g, F;
52
+ s > 0 && o !== void 0 && (g = M(n, o), F = M(z[s - 1], o), g && F && g !== F && (u = g));
53
+ const G = u !== void 0;
54
+ return u !== void 0 && (B += 1), [
55
+ G && /* @__PURE__ */ l.createElement(
56
+ D,
43
57
  {
44
- id: `option-${h}-${f}`,
45
- virtual: E,
46
- key: m + "-group-item",
47
- group: n,
48
- isMultiColumn: j,
49
- render: O
58
+ id: `option-${a}-${E}`,
59
+ virtual: c,
60
+ key: y + "-group-item",
61
+ group: u,
62
+ isMultiColumn: r,
63
+ render: Y,
64
+ iconField: R,
65
+ svgIconField: b,
66
+ groupItem: n
50
67
  }
51
68
  ),
52
- /* @__PURE__ */ t.createElement(
53
- T,
69
+ /* @__PURE__ */ l.createElement(
70
+ ee,
54
71
  {
55
- id: `option-${h}-${p ? f + 1 : f}`,
56
- virtual: E,
57
- dataItem: r,
58
- groupMode: S,
59
- selected: P,
60
- focused: w === o,
61
- index: m,
62
- key: m,
72
+ id: `option-${a}-${G ? E + 1 : E}`,
73
+ virtual: c,
74
+ dataItem: n,
75
+ selected: Z,
76
+ focused: x === s,
77
+ index: y,
78
+ key: y,
63
79
  onClick: e.onClick,
64
- textField: s,
65
- group: n,
66
- render: K,
67
- disabled: r.disabled
80
+ textField: i,
81
+ group: u,
82
+ render: X,
83
+ disabled: n.disabled,
84
+ actionsField: J,
85
+ descriptionField: K,
86
+ iconField: R,
87
+ svgIconField: b,
88
+ checkboxField: O
68
89
  }
69
90
  )
70
91
  ];
71
92
  });
72
- })(), U = () => {
73
- const s = e.noDataRender, a = /* @__PURE__ */ t.createElement("div", { className: v(y.noData({ c: d })) }, /* @__PURE__ */ t.createElement("div", null, L.toLanguageString(B, Y[B])));
74
- return s ? s.call(void 0, a) : a;
93
+ })(), P = () => {
94
+ const i = e.noDataRender, t = /* @__PURE__ */ l.createElement("div", { className: p(v.noData({ c: m })), "aria-live": "polite" }, /* @__PURE__ */ l.createElement("div", null, U.toLanguageString(V, re[V])));
95
+ return i ? i(t) : t;
96
+ }, Q = () => {
97
+ if (!e.groupField)
98
+ return /* @__PURE__ */ l.createElement(
99
+ "ul",
100
+ {
101
+ id: S,
102
+ role: "listbox",
103
+ "aria-hidden": C ? void 0 : !0,
104
+ "aria-setsize": L,
105
+ className: k || p(v.ul({ c: m })),
106
+ ref: N,
107
+ style: w
108
+ },
109
+ h
110
+ );
111
+ const i = [];
112
+ let t = [];
113
+ return h.forEach((o) => {
114
+ Array.isArray(o) && o.forEach((r) => {
115
+ r && r.type === D ? (t.length > 0 && i.push(t), t = [r]) : r && t.push(r);
116
+ });
117
+ }), t.length > 0 && i.push(t), i.map((o) => {
118
+ var d;
119
+ const r = o.find(
120
+ (c) => l.isValidElement(c) && c.type === D
121
+ ), a = (d = r == null ? void 0 : r.props) == null ? void 0 : d.id;
122
+ return /* @__PURE__ */ l.createElement(
123
+ "ul",
124
+ {
125
+ id: a ? void 0 : S,
126
+ key: a || "first-group",
127
+ role: "group",
128
+ "aria-labelledby": a,
129
+ className: k || p(v.ul({ c: m })),
130
+ ref: a ? void 0 : N,
131
+ style: w
132
+ },
133
+ o
134
+ );
135
+ });
75
136
  };
76
- return I.length ? /* @__PURE__ */ t.createElement(
137
+ return h.length ? /* @__PURE__ */ l.createElement(
77
138
  "div",
78
139
  {
79
- className: $,
80
- style: x,
81
- ref: G,
140
+ className: j,
141
+ style: q,
142
+ ref: H,
143
+ role: e.groupField ? "listbox" : void 0,
144
+ "aria-hidden": e.groupField && !C ? !0 : void 0,
145
+ "aria-setsize": e.groupField ? L : void 0,
82
146
  onMouseDown: e.onMouseDown,
83
147
  onBlur: e.onBlur,
84
148
  onScroll: e.onScroll,
85
149
  unselectable: "on"
86
150
  },
87
- /* @__PURE__ */ t.createElement(
88
- "ul",
89
- {
90
- id: M,
91
- role: "listbox",
92
- "aria-hidden": z ? void 0 : !0,
93
- "aria-setsize": H,
94
- className: V || v(y.ul({ c: d })),
95
- ref: F,
96
- style: A
97
- },
98
- I
99
- ),
100
- e.scroller && /* @__PURE__ */ t.createElement("div", { className: v(y.heightContainer({ c: d })) }, e.scroller)
101
- ) : U();
151
+ Q(),
152
+ e.scroller && /* @__PURE__ */ l.createElement("div", { className: p(v.heightContainer({ c: m })) }, e.scroller)
153
+ ) : P();
102
154
  };
103
155
  export {
104
- le as default
156
+ ue as default
105
157
  };
@@ -0,0 +1,24 @@
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 { PopupProps } from '@progress/kendo-react-popup';
9
+ import * as React from 'react';
10
+ /**
11
+ * @hidden
12
+ */
13
+ export interface ListContainerProps {
14
+ width?: string | number;
15
+ dir?: string;
16
+ popupSettings?: PopupProps;
17
+ itemsCount?: number[];
18
+ children?: React.ReactNode;
19
+ }
20
+ /**
21
+ * @hidden
22
+ */
23
+ declare const ListContainer: (props: ListContainerProps) => React.JSX.Element;
24
+ export default ListContainer;
@@ -0,0 +1,22 @@
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 * as React from 'react';
9
+ /**
10
+ * @hidden
11
+ */
12
+ export interface DefaultItemProps {
13
+ defaultItem?: any;
14
+ textField?: string;
15
+ selected: boolean;
16
+ onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
17
+ }
18
+ /**
19
+ * @hidden
20
+ */
21
+ declare const ListDefaultItem: (props: DefaultItemProps) => React.JSX.Element;
22
+ export default ListDefaultItem;