@progress/kendo-react-layout 14.5.0-develop.8 → 15.0.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 (86) hide show
  1. package/MenuMcpWrapper.d.ts +17 -0
  2. package/MenuMcpWrapper.js +8 -0
  3. package/MenuMcpWrapper.mjs +18 -0
  4. package/README.md +4 -4
  5. package/actionsheet/ActionSheet.d.ts +12 -0
  6. package/actionsheet/ActionSheet.js +1 -1
  7. package/actionsheet/ActionSheet.mjs +69 -68
  8. package/actionsheet/ActionSheetItem.js +1 -1
  9. package/actionsheet/ActionSheetItem.mjs +1 -3
  10. package/appbar/interfaces/AppBarProps.d.ts +2 -14
  11. package/bottomnavigation/BottomNavigation.js +1 -1
  12. package/bottomnavigation/BottomNavigation.mjs +81 -76
  13. package/bottomnavigation/BottomNavigationItem.js +1 -1
  14. package/bottomnavigation/BottomNavigationItem.mjs +34 -33
  15. package/bottomnavigation/BottomNavigationProps.d.ts +3 -13
  16. package/bottomnavigation/messages/index.d.ts +17 -0
  17. package/bottomnavigation/messages/index.js +8 -0
  18. package/bottomnavigation/messages/index.mjs +14 -0
  19. package/breadcrumb/Breadcrumb.js +1 -1
  20. package/breadcrumb/Breadcrumb.mjs +30 -28
  21. package/breadcrumb/BreadcrumbLink.js +1 -1
  22. package/breadcrumb/BreadcrumbLink.mjs +26 -26
  23. package/breadcrumb/messages/index.d.ts +17 -0
  24. package/breadcrumb/messages/index.js +8 -0
  25. package/breadcrumb/messages/index.mjs +14 -0
  26. package/card/Avatar.js +1 -1
  27. package/card/Avatar.mjs +14 -26
  28. package/card/interfaces/AvatarProps.d.ts +1 -8
  29. package/dist/cdn/js/kendo-react-layout.js +1 -1
  30. package/drawer/Drawer.d.ts +1 -1
  31. package/drawer/Drawer.js +1 -1
  32. package/drawer/Drawer.mjs +63 -63
  33. package/drawer/DrawerContent.d.ts +1 -1
  34. package/drawer/DrawerItem.d.ts +1 -1
  35. package/drawer/DrawerItem.js +1 -1
  36. package/drawer/DrawerItem.mjs +22 -23
  37. package/drawer/interfaces/DrawerProps.d.ts +8 -0
  38. package/expansionpanel/ExpansionPanel.js +1 -1
  39. package/expansionpanel/ExpansionPanel.mjs +50 -50
  40. package/expansionpanel/ExpansionPanelContent.js +1 -1
  41. package/expansionpanel/ExpansionPanelContent.mjs +7 -4
  42. package/index.d.mts +1 -2
  43. package/index.d.ts +1 -2
  44. package/index.js +1 -1
  45. package/index.mjs +128 -130
  46. package/menu/MenuProps.d.ts +6 -0
  47. package/menu/components/MenuItemArrow.d.ts +3 -3
  48. package/menu/components/MenuItemArrow.js +1 -1
  49. package/menu/components/MenuItemArrow.mjs +13 -23
  50. package/package-metadata.js +1 -1
  51. package/package-metadata.mjs +2 -2
  52. package/package.json +14 -9
  53. package/panelbar/PanelBar.js +1 -1
  54. package/panelbar/PanelBar.mjs +94 -91
  55. package/panelbar/PanelBarItem.js +1 -1
  56. package/panelbar/PanelBarItem.mjs +13 -15
  57. package/panelbar/interfaces/PanelBarProps.d.ts +8 -0
  58. package/panelbar/interfaces/RenderPanelBarItem.d.ts +1 -0
  59. package/panelbar/util.d.ts +1 -1
  60. package/panelbar/util.js +1 -1
  61. package/panelbar/util.mjs +62 -59
  62. package/splitter/SplitterBar.d.ts +1 -0
  63. package/splitter/SplitterBar.js +1 -1
  64. package/splitter/SplitterBar.mjs +81 -72
  65. package/stepper/Step.js +1 -1
  66. package/stepper/Step.mjs +79 -85
  67. package/stepper/Stepper.js +1 -1
  68. package/stepper/Stepper.mjs +134 -133
  69. package/stepper/interfaces/StepperProps.d.ts +8 -1
  70. package/stepper/messages/index.d.ts +12 -2
  71. package/stepper/messages/index.js +1 -1
  72. package/stepper/messages/index.mjs +8 -4
  73. package/tabstrip/TabStrip.d.ts +8 -1
  74. package/tabstrip/TabStrip.js +1 -1
  75. package/tabstrip/TabStrip.mjs +126 -125
  76. package/tabstrip/TabStripNavigation.js +1 -1
  77. package/tabstrip/TabStripNavigation.mjs +31 -31
  78. package/tilelayout/InternalTile.js +1 -1
  79. package/tilelayout/InternalTile.mjs +119 -115
  80. package/tilelayout/TileLayout.js +1 -1
  81. package/tilelayout/TileLayout.mjs +58 -58
  82. package/timeline/TimelineCard.d.ts +2 -0
  83. package/timeline/TimelineCard.js +1 -1
  84. package/timeline/TimelineCard.mjs +27 -18
  85. package/timeline/TimelineHorizontal.js +1 -1
  86. package/timeline/TimelineHorizontal.mjs +113 -109
@@ -12,11 +12,21 @@ export declare const optionalText = "stepper.optionalText";
12
12
  /**
13
13
  * @hidden
14
14
  */
15
- export declare const progBarAriaLabel = "stepper.progBarAriaLabel";
15
+ export declare const progressBarAriaLabel = "stepper.progressBarAriaLabel";
16
+ /**
17
+ * @hidden
18
+ */
19
+ export declare const ariaLabel = "stepper.ariaLabel";
20
+ /**
21
+ * @hidden
22
+ */
23
+ export declare const stepAriaLabel = "stepper.stepAriaLabel";
16
24
  /**
17
25
  * @hidden
18
26
  */
19
27
  export declare const messages: {
20
28
  "stepper.optionalText": string;
21
- "stepper.progBarAriaLabel": string;
29
+ "stepper.progressBarAriaLabel": string;
30
+ "stepper.ariaLabel": string;
31
+ "stepper.stepAriaLabel": string;
22
32
  };
@@ -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 e="stepper.optionalText",a="stepper.progBarAriaLabel",o={[e]:"(Optional)",[a]:"progressbar"};exports.messages=o;exports.optionalText=e;exports.progBarAriaLabel=a;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="stepper.optionalText",a="stepper.progressBarAriaLabel",r="stepper.ariaLabel",s="stepper.stepAriaLabel",t={[e]:"(Optional)",[a]:"progressbar",[r]:"Stepper",[s]:"Step"};exports.ariaLabel=r;exports.messages=t;exports.optionalText=e;exports.progressBarAriaLabel=a;exports.stepAriaLabel=s;
@@ -5,12 +5,16 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- const e = "stepper.optionalText", o = "stepper.progBarAriaLabel", r = {
8
+ const e = "stepper.optionalText", a = "stepper.progressBarAriaLabel", r = "stepper.ariaLabel", p = "stepper.stepAriaLabel", s = {
9
9
  [e]: "(Optional)",
10
- [o]: "progressbar"
10
+ [a]: "progressbar",
11
+ [r]: "Stepper",
12
+ [p]: "Step"
11
13
  };
12
14
  export {
13
- r as messages,
15
+ r as ariaLabel,
16
+ s as messages,
14
17
  e as optionalText,
15
- o as progBarAriaLabel
18
+ a as progressBarAriaLabel,
19
+ p as stepAriaLabel
16
20
  };
@@ -5,7 +5,7 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { KendoReactComponentBaseProps } from '@progress/kendo-react-common';
8
+ import { KendoReactComponentBaseProps, WebMcpProps } from '@progress/kendo-react-common';
9
9
  import { ButtonProps } from '@progress/kendo-react-buttons';
10
10
  import * as React from 'react';
11
11
  /**
@@ -208,6 +208,13 @@ export interface TabStripProps extends KendoReactComponentBaseProps, TabStripScr
208
208
  * ```
209
209
  */
210
210
  onSelect?: (e: TabStripSelectEventArguments) => void;
211
+ /**
212
+ * Enables Web MCP tool registration so AI agents can interact with this TabStrip.
213
+ * Set to `true` to use the provider-level `dataName`, or pass a config object to override.
214
+ *
215
+ * Requires a `WebMcpProvider` ancestor from `@progress/kendo-react-webmcp`.
216
+ */
217
+ webMcp?: boolean | WebMcpProps;
211
218
  }
212
219
  /**
213
220
  * @hidden
@@ -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 ce=require("react"),l=require("prop-types"),ee=require("./TabStripNavigation.js"),ae=require("./TabStripContent.js"),A=require("@progress/kendo-react-common");function ue(S){const C=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(S){for(const f in S)if(f!=="default"){const b=Object.getOwnPropertyDescriptor(S,f);Object.defineProperty(C,f,b.get?b:{enumerable:!0,get:()=>S[f]})}}return C.default=S,Object.freeze(C)}const n=ue(ce),de={animation:!0,tabPosition:"top",tabAlignment:"start",keepTabsMounted:!1,buttonScrollSpeed:100,mouseScrollSpeed:10,scrollButtons:"auto",scrollButtonsPosition:"split",renderAllContent:!1},E=n.forwardRef((S,C)=>{const f={...de,...S},{id:b,animation:H,children:j,selected:u,onSelect:B,style:te,tabContentStyle:q,tabPosition:p,tabAlignment:L,tabIndex:W,className:K,dir:x,renderAllContent:O,keepTabsMounted:_,size:k,scrollable:h,scrollButtons:I,scrollButtonsPosition:F,buttonScrollSpeed:U,mouseScrollSpeed:ne,prevButton:$,nextButton:G}=f,[g,oe]=n.useState(null),se=n.useRef({props:f}),R=n.useRef(null),z=n.useRef(null),y=n.useRef(void 0),P=n.useRef(void 0),J=n.useCallback(()=>({props:f}),[f]);n.useImperativeHandle(se,J),n.useImperativeHandle(C,J);const w=n.useMemo(()=>b?b+"-content-panel-id":void 0,[b]),N=n.useMemo(()=>b?b+"-nav-item-id":void 0,[b]),v=n.useMemo(()=>n.Children.toArray(j).filter(Boolean),[j]),Q=n.useCallback(()=>/top|bottom/.test(p||"top"),[p]),T=n.useCallback(()=>{const s=Q(),i=z.current;if(!i)return;const a=i.scrollLeft,t=i.clientWidth,e=i.scrollWidth,r=i.scrollTop,o=i.scrollHeight,d=i.clientHeight;let c=null;const ie=s?e>t:o>d,Z=x==="rtl";ie?s?a+t===e||(Z&&t-a)===e?c="end":a===0||Z&&-a===0?c="start":a>0&&a+t<e||-a>0&&t-a<e?c="middle":c=null:o-(r+d)===0?c="bottom":r===0?c="top":r>0&&o-(r+d)>0?c="middle":c=null:c=null,oe(c)},[Q,x]),D=n.useCallback(s=>{u!==s&&B&&B({selected:s})},[u,B]),m=n.useCallback(s=>{var t,e;const i=v;((e=(t=i==null?void 0:i[s])==null?void 0:t.props)==null?void 0:e.disabled)||D(s)},[v,D]),V=n.useCallback(s=>{P.current&&P.current.triggerKeyboardEvent(s)},[]);n.useEffect(()=>{var a;const s=R.current,i=s&&getComputedStyle(s).direction==="rtl"||!1;return s&&(P.current=new A.Navigation({tabIndex:0,root:R,rovingTabIndex:!0,focusClass:"k-focus",selectors:[".k-tabstrip .k-tabstrip-item"],keyboardEvents:{keydown:{ArrowLeft:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),d=o!==0?o-1:e.elements.length-1,c=o!==e.elements.length-1?o+1:0;i?(e.focusNext(t),m(c)):(e.focusPrevious(t),m(d))},ArrowRight:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),d=o!==0?o-1:e.elements.length-1,c=o!==e.elements.length-1?o+1:0;i?(e.focusPrevious(t),m(d)):(e.focusNext(t),m(c))},ArrowDown:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),d=o!==e.elements.length-1?o+1:0;e.focusNext(t),m(d)},ArrowUp:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),d=o!==0?o-1:e.elements.length-1;e.focusPrevious(t),m(d)},Home:(t,e,r)=>{r.preventDefault(),e.focusElement(e.first,t),m(0)},End:(t,e,r)=>{r.preventDefault(),e.focusElement(e.last,t),m(e.elements.length-1)}}}}),(a=P.current)==null||a.initializeRovingTab(u),T(),y.current=window.ResizeObserver&&new ResizeObserver(()=>T()),R.current&&y.current&&y.current.observe(R.current)),()=>{var t;(t=P.current)==null||t.removeFocusListener(),y.current&&y.current.disconnect()}},[u,m,T]);const re=n.useMemo(()=>{const s=n.Children.count(v);return u<s&&u>-1?n.createElement(ae.TabStripContent,{index:u,selected:u,contentPanelId:w,navItemId:N,animation:H,keepTabsMounted:_,renderAllContent:O,style:q},v):null},[u,v,w,N,H,_,O,q]),M=I==="hidden"||g===null&&I==="auto"?"hidden":"visible",X=n.useMemo(()=>({itemsNavRef:z,children:v,selected:u,tabIndex:W,tabPosition:p,tabAlignment:L,size:k,scrollable:h,scrollButtons:M,scrollButtonsPosition:F,buttonScrollSpeed:U,mouseScrollSpeed:ne,prevButton:$,nextButton:G,dir:x,contentPanelId:w,renderAllContent:O,navItemId:N,onKeyDown:V,onSelect:D,onScroll:T,containerScrollPosition:g}),[z,v,u,W,p,L,k,h,M,F,U,$,G,x,w,O,N,V,D,T,g]),Y=p==="bottom",le=n.useMemo(()=>A.classNames("k-tabstrip k-pos-relative",{[`k-tabstrip-${A.kendoThemeMaps.sizeMap[k||"medium"]||k}`]:k,"k-tabstrip-left":p==="left","k-tabstrip-right":p==="right","k-tabstrip-bottom":p==="bottom","k-tabstrip-top":p==="top","k-tabstrip-scrollable":h,"k-tabstrip-scrollable-start k-tabstrip-scrollable-end":h&&M==="visible","k-tabstrip-scrollable-start":h&&I==="auto"&&(g==="end"||g==="middle"),"k-tabstrip-scrollable-end":h&&I==="auto"&&(g==="start"||g==="middle")},K),[k,p,h,I,M,g,K]);return n.createElement("div",{id:b,ref:R,dir:x,className:le,style:te,onScroll:T},!Y&&n.createElement(ee.TabStripNavigation,{...X}),re,Y&&n.createElement(ee.TabStripNavigation,{...X}))});E.displayName="TabStrip";E.propTypes={id:l.string,animation:l.bool,children:l.node,onSelect:l.func,selected:l.number,style:l.object,tabContentStyle:l.object,tabPosition:l.string,tabAlignment:l.string,tabIndex:l.number,className:l.string,dir:l.string,renderAllContent:l.bool,size:l.oneOf(["small","medium","large"]),scrollButtons:l.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:l.oneOf(["split","start","end","around","before","after"])};const be=E;exports.TabStrip=be;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ce=require("react"),l=require("prop-types"),ne=require("./TabStripNavigation.js"),ae=require("./TabStripContent.js"),B=require("@progress/kendo-react-common");function ue(g){const C=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(g){for(const u in g)if(u!=="default"){const p=Object.getOwnPropertyDescriptor(g,u);Object.defineProperty(C,u,p.get?p:{enumerable:!0,get:()=>g[u]})}}return C.default=g,Object.freeze(C)}const n=ue(ce),de={animation:!0,tabPosition:"top",tabAlignment:"start",keepTabsMounted:!1,buttonScrollSpeed:100,mouseScrollSpeed:10,scrollButtons:"auto",scrollButtonsPosition:"split",renderAllContent:!1},E=n.forwardRef((g,C)=>{const u=n.useMemo(()=>({...de,...g}),[g]),{id:p,animation:H,children:j,selected:d,onSelect:z,style:oe,tabContentStyle:q,tabPosition:f,tabAlignment:W,tabIndex:L,className:K,dir:x,renderAllContent:O,keepTabsMounted:_,size:k,scrollable:h,scrollButtons:R,scrollButtonsPosition:F,buttonScrollSpeed:U,mouseScrollSpeed:$,prevButton:G,nextButton:J}=u,[S,se]=n.useState(null),Q=n.useRef({props:u}),I=n.useRef(null),A=n.useRef(null),y=n.useRef(void 0),P=n.useRef(void 0),V=n.useCallback(()=>({props:u}),[u]);n.useImperativeHandle(Q,V),n.useImperativeHandle(C,V),B.useWebMcpRegister("tabstrip",Q,u,u.webMcp);const w=n.useMemo(()=>p?p+"-content-panel-id":void 0,[p]),M=n.useMemo(()=>p?p+"-nav-item-id":void 0,[p]),v=n.useMemo(()=>n.Children.toArray(j).filter(Boolean),[j]),X=n.useCallback(()=>/top|bottom/.test(f||"top"),[f]),T=n.useCallback(()=>{const s=X(),i=A.current;if(!i)return;const a=i.scrollLeft,t=i.clientWidth,e=i.scrollWidth,r=i.scrollTop,o=i.scrollHeight,b=i.clientHeight;let c=null;const ie=s?e>t:o>b,te=x==="rtl";ie?s?a+t===e||(te&&t-a)===e?c="end":a===0||te&&-a===0?c="start":a>0&&a+t<e||-a>0&&t-a<e?c="middle":c=null:o-(r+b)===0?c="bottom":r===0?c="top":r>0&&o-(r+b)>0?c="middle":c=null:c=null,se(c)},[X,x]),N=n.useCallback(s=>{d!==s&&z&&z({selected:s})},[d,z]),m=n.useCallback(s=>{var t,e;const i=v;((e=(t=i==null?void 0:i[s])==null?void 0:t.props)==null?void 0:e.disabled)||N(s)},[v,N]),Y=n.useCallback(s=>{P.current&&P.current.triggerKeyboardEvent(s)},[]);n.useEffect(()=>{var a;const s=I.current,i=s&&getComputedStyle(s).direction==="rtl"||!1;return s&&(P.current=new B.Navigation({tabIndex:0,root:I,rovingTabIndex:!0,focusClass:"k-focus",selectors:[".k-tabstrip .k-tabstrip-item"],keyboardEvents:{keydown:{ArrowLeft:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),b=o!==0?o-1:e.elements.length-1,c=o!==e.elements.length-1?o+1:0;i?(e.focusNext(t),m(c)):(e.focusPrevious(t),m(b))},ArrowRight:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),b=o!==0?o-1:e.elements.length-1,c=o!==e.elements.length-1?o+1:0;i?(e.focusPrevious(t),m(b)):(e.focusNext(t),m(c))},ArrowDown:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),b=o!==e.elements.length-1?o+1:0;e.focusNext(t),m(b)},ArrowUp:(t,e,r)=>{r.preventDefault();const o=e.elements.indexOf(t),b=o!==0?o-1:e.elements.length-1;e.focusPrevious(t),m(b)},Home:(t,e,r)=>{r.preventDefault(),e.focusElement(e.first,t),m(0)},End:(t,e,r)=>{r.preventDefault(),e.focusElement(e.last,t),m(e.elements.length-1)}}}}),(a=P.current)==null||a.initializeRovingTab(d),T(),y.current=window.ResizeObserver&&new ResizeObserver(()=>T()),I.current&&y.current&&y.current.observe(I.current)),()=>{var t;(t=P.current)==null||t.removeFocusListener(),y.current&&y.current.disconnect()}},[d,m,T]);const re=n.useMemo(()=>{const s=n.Children.count(v);return d<s&&d>-1?n.createElement(ae.TabStripContent,{index:d,selected:d,contentPanelId:w,navItemId:M,animation:H,keepTabsMounted:_,renderAllContent:O,style:q},v):null},[d,v,w,M,H,_,O,q]),D=R==="hidden"||S===null&&R==="auto"?"hidden":"visible",Z=n.useMemo(()=>({itemsNavRef:A,children:v,selected:d,tabIndex:L,tabPosition:f,tabAlignment:W,size:k,scrollable:h,scrollButtons:D,scrollButtonsPosition:F,buttonScrollSpeed:U,mouseScrollSpeed:$,prevButton:G,nextButton:J,dir:x,contentPanelId:w,renderAllContent:O,navItemId:M,onKeyDown:Y,onSelect:N,onScroll:T,containerScrollPosition:S}),[A,v,d,L,f,W,k,h,D,F,U,$,G,J,x,w,O,M,Y,N,T,S]),ee=f==="bottom",le=n.useMemo(()=>B.classNames("k-tabstrip k-pos-relative",{[`k-tabstrip-${B.kendoThemeMaps.sizeMap[k||"medium"]||k}`]:k,"k-tabstrip-left":f==="left","k-tabstrip-right":f==="right","k-tabstrip-bottom":f==="bottom","k-tabstrip-top":f==="top","k-tabstrip-scrollable":h,"k-tabstrip-scrollable-start k-tabstrip-scrollable-end":h&&D==="visible","k-tabstrip-scrollable-start":h&&R==="auto"&&(S==="end"||S==="middle"),"k-tabstrip-scrollable-end":h&&R==="auto"&&(S==="start"||S==="middle")},K),[k,f,h,R,D,S,K]);return n.createElement("div",{id:p,ref:I,dir:x,className:le,style:oe,onScroll:T},!ee&&n.createElement(ne.TabStripNavigation,{...Z}),re,ee&&n.createElement(ne.TabStripNavigation,{...Z}))});E.displayName="TabStrip";E.propTypes={id:l.string,animation:l.bool,children:l.node,onSelect:l.func,selected:l.number,style:l.object,tabContentStyle:l.object,tabPosition:l.string,tabAlignment:l.string,tabIndex:l.number,className:l.string,dir:l.string,renderAllContent:l.bool,size:l.oneOf(["small","medium","large"]),scrollButtons:l.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:l.oneOf(["split","start","end","around","before","after"])};const be=E;exports.TabStrip=be;
@@ -6,11 +6,11 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  import * as n from "react";
9
- import r from "prop-types";
10
- import { TabStripNavigation as Y } from "./TabStripNavigation.mjs";
9
+ import l from "prop-types";
10
+ import { TabStripNavigation as ee } from "./TabStripNavigation.mjs";
11
11
  import { TabStripContent as ie } from "./TabStripContent.mjs";
12
- import { Navigation as ce, classNames as ae, kendoThemeMaps as ue } from "@progress/kendo-react-common";
13
- const de = {
12
+ import { useWebMcpRegister as ce, Navigation as ae, classNames as ue, kendoThemeMaps as de } from "@progress/kendo-react-common";
13
+ const be = {
14
14
  animation: !0,
15
15
  tabPosition: "top",
16
16
  tabAlignment: "start",
@@ -20,101 +20,101 @@ const de = {
20
20
  scrollButtons: "auto",
21
21
  scrollButtonsPosition: "split",
22
22
  renderAllContent: !1
23
- }, E = n.forwardRef((Z, _) => {
24
- const R = { ...de, ...Z }, {
23
+ }, D = n.forwardRef((E, te) => {
24
+ const h = n.useMemo(() => ({ ...be, ...E }), [E]), {
25
25
  id: m,
26
26
  animation: H,
27
- children: M,
27
+ children: O,
28
28
  selected: u,
29
- onSelect: A,
30
- style: ee,
31
- tabContentStyle: O,
32
- tabPosition: p,
33
- tabAlignment: z,
29
+ onSelect: N,
30
+ style: ne,
31
+ tabContentStyle: z,
32
+ tabPosition: b,
33
+ tabAlignment: W,
34
34
  tabIndex: L,
35
- className: W,
36
- dir: v,
35
+ className: K,
36
+ dir: x,
37
37
  renderAllContent: P,
38
- keepTabsMounted: K,
39
- size: h,
38
+ keepTabsMounted: j,
39
+ size: k,
40
40
  scrollable: g,
41
- scrollButtons: x,
42
- scrollButtonsPosition: j,
43
- buttonScrollSpeed: F,
44
- mouseScrollSpeed: te,
45
- prevButton: U,
46
- nextButton: $
47
- } = R, [f, ne] = n.useState(null), oe = n.useRef({ props: R }), C = n.useRef(null), D = n.useRef(null), T = n.useRef(void 0), I = n.useRef(void 0), q = n.useCallback(() => ({ props: R }), [R]);
48
- n.useImperativeHandle(oe, q), n.useImperativeHandle(_, q);
49
- const y = n.useMemo(() => m ? m + "-content-panel-id" : void 0, [m]), w = n.useMemo(() => m ? m + "-nav-item-id" : void 0, [m]), S = n.useMemo(() => n.Children.toArray(M).filter(Boolean), [M]), G = n.useCallback(() => /top|bottom/.test(p || "top"), [p]), k = n.useCallback(() => {
50
- const s = G(), i = D.current;
41
+ scrollButtons: C,
42
+ scrollButtonsPosition: F,
43
+ buttonScrollSpeed: U,
44
+ mouseScrollSpeed: $,
45
+ prevButton: q,
46
+ nextButton: G
47
+ } = h, [f, oe] = n.useState(null), J = n.useRef({ props: h }), T = n.useRef(null), A = n.useRef(null), I = n.useRef(void 0), R = n.useRef(void 0), Q = n.useCallback(() => ({ props: h }), [h]);
48
+ n.useImperativeHandle(J, Q), n.useImperativeHandle(te, Q), ce("tabstrip", J, h, h.webMcp);
49
+ const w = n.useMemo(() => m ? m + "-content-panel-id" : void 0, [m]), y = n.useMemo(() => m ? m + "-nav-item-id" : void 0, [m]), S = n.useMemo(() => n.Children.toArray(O).filter(Boolean), [O]), V = n.useCallback(() => /top|bottom/.test(b || "top"), [b]), v = n.useCallback(() => {
50
+ const s = V(), i = A.current;
51
51
  if (!i)
52
52
  return;
53
- const a = i.scrollLeft, t = i.clientWidth, e = i.scrollWidth, l = i.scrollTop, o = i.scrollHeight, d = i.clientHeight;
53
+ const a = i.scrollLeft, t = i.clientWidth, e = i.scrollWidth, r = i.scrollTop, o = i.scrollHeight, d = i.clientHeight;
54
54
  let c = null;
55
- const re = s ? e > t : o > d, X = v === "rtl";
56
- re ? s ? a + t === e || (X && t - a) === e ? c = "end" : a === 0 || X && -a === 0 ? c = "start" : a > 0 && a + t < e || -a > 0 && t - a < e ? c = "middle" : c = null : o - (l + d) === 0 ? c = "bottom" : l === 0 ? c = "top" : l > 0 && o - (l + d) > 0 ? c = "middle" : c = null : c = null, ne(c);
57
- }, [G, v]), B = n.useCallback(
55
+ const le = s ? e > t : o > d, _ = x === "rtl";
56
+ le ? s ? a + t === e || (_ && t - a) === e ? c = "end" : a === 0 || _ && -a === 0 ? c = "start" : a > 0 && a + t < e || -a > 0 && t - a < e ? c = "middle" : c = null : o - (r + d) === 0 ? c = "bottom" : r === 0 ? c = "top" : r > 0 && o - (r + d) > 0 ? c = "middle" : c = null : c = null, oe(c);
57
+ }, [V, x]), M = n.useCallback(
58
58
  (s) => {
59
- u !== s && A && A({
59
+ u !== s && N && N({
60
60
  selected: s
61
61
  });
62
62
  },
63
- [u, A]
64
- ), b = n.useCallback(
63
+ [u, N]
64
+ ), p = n.useCallback(
65
65
  (s) => {
66
66
  var t, e;
67
67
  const i = S;
68
- ((e = (t = i == null ? void 0 : i[s]) == null ? void 0 : t.props) == null ? void 0 : e.disabled) || B(s);
68
+ ((e = (t = i == null ? void 0 : i[s]) == null ? void 0 : t.props) == null ? void 0 : e.disabled) || M(s);
69
69
  },
70
- [S, B]
71
- ), J = n.useCallback((s) => {
72
- I.current && I.current.triggerKeyboardEvent(s);
70
+ [S, M]
71
+ ), X = n.useCallback((s) => {
72
+ R.current && R.current.triggerKeyboardEvent(s);
73
73
  }, []);
74
74
  n.useEffect(() => {
75
75
  var a;
76
- const s = C.current, i = s && getComputedStyle(s).direction === "rtl" || !1;
77
- return s && (I.current = new ce({
76
+ const s = T.current, i = s && getComputedStyle(s).direction === "rtl" || !1;
77
+ return s && (R.current = new ae({
78
78
  tabIndex: 0,
79
- root: C,
79
+ root: T,
80
80
  rovingTabIndex: !0,
81
81
  focusClass: "k-focus",
82
82
  selectors: [".k-tabstrip .k-tabstrip-item"],
83
83
  keyboardEvents: {
84
84
  keydown: {
85
- ArrowLeft: (t, e, l) => {
86
- l.preventDefault();
85
+ ArrowLeft: (t, e, r) => {
86
+ r.preventDefault();
87
87
  const o = e.elements.indexOf(t), d = o !== 0 ? o - 1 : e.elements.length - 1, c = o !== e.elements.length - 1 ? o + 1 : 0;
88
- i ? (e.focusNext(t), b(c)) : (e.focusPrevious(t), b(d));
88
+ i ? (e.focusNext(t), p(c)) : (e.focusPrevious(t), p(d));
89
89
  },
90
- ArrowRight: (t, e, l) => {
91
- l.preventDefault();
90
+ ArrowRight: (t, e, r) => {
91
+ r.preventDefault();
92
92
  const o = e.elements.indexOf(t), d = o !== 0 ? o - 1 : e.elements.length - 1, c = o !== e.elements.length - 1 ? o + 1 : 0;
93
- i ? (e.focusPrevious(t), b(d)) : (e.focusNext(t), b(c));
93
+ i ? (e.focusPrevious(t), p(d)) : (e.focusNext(t), p(c));
94
94
  },
95
- ArrowDown: (t, e, l) => {
96
- l.preventDefault();
95
+ ArrowDown: (t, e, r) => {
96
+ r.preventDefault();
97
97
  const o = e.elements.indexOf(t), d = o !== e.elements.length - 1 ? o + 1 : 0;
98
- e.focusNext(t), b(d);
98
+ e.focusNext(t), p(d);
99
99
  },
100
- ArrowUp: (t, e, l) => {
101
- l.preventDefault();
100
+ ArrowUp: (t, e, r) => {
101
+ r.preventDefault();
102
102
  const o = e.elements.indexOf(t), d = o !== 0 ? o - 1 : e.elements.length - 1;
103
- e.focusPrevious(t), b(d);
103
+ e.focusPrevious(t), p(d);
104
104
  },
105
- Home: (t, e, l) => {
106
- l.preventDefault(), e.focusElement(e.first, t), b(0);
105
+ Home: (t, e, r) => {
106
+ r.preventDefault(), e.focusElement(e.first, t), p(0);
107
107
  },
108
- End: (t, e, l) => {
109
- l.preventDefault(), e.focusElement(e.last, t), b(e.elements.length - 1);
108
+ End: (t, e, r) => {
109
+ r.preventDefault(), e.focusElement(e.last, t), p(e.elements.length - 1);
110
110
  }
111
111
  }
112
112
  }
113
- }), (a = I.current) == null || a.initializeRovingTab(u), k(), T.current = window.ResizeObserver && new ResizeObserver(() => k()), C.current && T.current && T.current.observe(C.current)), () => {
113
+ }), (a = R.current) == null || a.initializeRovingTab(u), v(), I.current = window.ResizeObserver && new ResizeObserver(() => v()), T.current && I.current && I.current.observe(T.current)), () => {
114
114
  var t;
115
- (t = I.current) == null || t.removeFocusListener(), T.current && T.current.disconnect();
115
+ (t = R.current) == null || t.removeFocusListener(), I.current && I.current.disconnect();
116
116
  };
117
- }, [u, b, k]);
117
+ }, [u, p, v]);
118
118
  const se = n.useMemo(() => {
119
119
  const s = n.Children.count(S);
120
120
  return u < s && u > -1 ? /* @__PURE__ */ n.createElement(
@@ -122,103 +122,104 @@ const de = {
122
122
  {
123
123
  index: u,
124
124
  selected: u,
125
- contentPanelId: y,
126
- navItemId: w,
125
+ contentPanelId: w,
126
+ navItemId: y,
127
127
  animation: H,
128
- keepTabsMounted: K,
128
+ keepTabsMounted: j,
129
129
  renderAllContent: P,
130
- style: O
130
+ style: z
131
131
  },
132
132
  S
133
133
  ) : null;
134
- }, [u, S, y, w, H, K, P, O]), N = x === "hidden" || f === null && x === "auto" ? "hidden" : "visible", Q = n.useMemo(
134
+ }, [u, S, w, y, H, j, P, z]), B = C === "hidden" || f === null && C === "auto" ? "hidden" : "visible", Y = n.useMemo(
135
135
  () => ({
136
- itemsNavRef: D,
136
+ itemsNavRef: A,
137
137
  children: S,
138
138
  selected: u,
139
139
  tabIndex: L,
140
- tabPosition: p,
141
- tabAlignment: z,
142
- size: h,
140
+ tabPosition: b,
141
+ tabAlignment: W,
142
+ size: k,
143
143
  scrollable: g,
144
- scrollButtons: N,
145
- scrollButtonsPosition: j,
146
- buttonScrollSpeed: F,
147
- mouseScrollSpeed: te,
148
- prevButton: U,
149
- nextButton: $,
150
- dir: v,
151
- contentPanelId: y,
144
+ scrollButtons: B,
145
+ scrollButtonsPosition: F,
146
+ buttonScrollSpeed: U,
147
+ mouseScrollSpeed: $,
148
+ prevButton: q,
149
+ nextButton: G,
150
+ dir: x,
151
+ contentPanelId: w,
152
152
  renderAllContent: P,
153
- navItemId: w,
154
- onKeyDown: J,
155
- onSelect: B,
156
- onScroll: k,
153
+ navItemId: y,
154
+ onKeyDown: X,
155
+ onSelect: M,
156
+ onScroll: v,
157
157
  containerScrollPosition: f
158
158
  }),
159
159
  [
160
- D,
160
+ A,
161
161
  S,
162
162
  u,
163
163
  L,
164
- p,
165
- z,
166
- h,
164
+ b,
165
+ W,
166
+ k,
167
167
  g,
168
- N,
169
- j,
168
+ B,
170
169
  F,
171
170
  U,
172
171
  $,
173
- v,
174
- y,
175
- P,
172
+ q,
173
+ G,
174
+ x,
176
175
  w,
177
- J,
178
- B,
179
- k,
176
+ P,
177
+ y,
178
+ X,
179
+ M,
180
+ v,
180
181
  f
181
182
  ]
182
- ), V = p === "bottom", le = n.useMemo(
183
- () => ae(
183
+ ), Z = b === "bottom", re = n.useMemo(
184
+ () => ue(
184
185
  "k-tabstrip k-pos-relative",
185
186
  {
186
- [`k-tabstrip-${ue.sizeMap[h || "medium"] || h}`]: h,
187
- "k-tabstrip-left": p === "left",
188
- "k-tabstrip-right": p === "right",
189
- "k-tabstrip-bottom": p === "bottom",
190
- "k-tabstrip-top": p === "top",
187
+ [`k-tabstrip-${de.sizeMap[k || "medium"] || k}`]: k,
188
+ "k-tabstrip-left": b === "left",
189
+ "k-tabstrip-right": b === "right",
190
+ "k-tabstrip-bottom": b === "bottom",
191
+ "k-tabstrip-top": b === "top",
191
192
  "k-tabstrip-scrollable": g,
192
- "k-tabstrip-scrollable-start k-tabstrip-scrollable-end": g && N === "visible",
193
- "k-tabstrip-scrollable-start": g && x === "auto" && (f === "end" || f === "middle"),
194
- "k-tabstrip-scrollable-end": g && x === "auto" && (f === "start" || f === "middle")
193
+ "k-tabstrip-scrollable-start k-tabstrip-scrollable-end": g && B === "visible",
194
+ "k-tabstrip-scrollable-start": g && C === "auto" && (f === "end" || f === "middle"),
195
+ "k-tabstrip-scrollable-end": g && C === "auto" && (f === "start" || f === "middle")
195
196
  },
196
- W
197
+ K
197
198
  ),
198
- [h, p, g, x, N, f, W]
199
+ [k, b, g, C, B, f, K]
199
200
  );
200
- return /* @__PURE__ */ n.createElement("div", { id: m, ref: C, dir: v, className: le, style: ee, onScroll: k }, !V && /* @__PURE__ */ n.createElement(Y, { ...Q }), se, V && /* @__PURE__ */ n.createElement(Y, { ...Q }));
201
+ return /* @__PURE__ */ n.createElement("div", { id: m, ref: T, dir: x, className: re, style: ne, onScroll: v }, !Z && /* @__PURE__ */ n.createElement(ee, { ...Y }), se, Z && /* @__PURE__ */ n.createElement(ee, { ...Y }));
201
202
  });
202
- E.displayName = "TabStrip";
203
- E.propTypes = {
204
- id: r.string,
205
- animation: r.bool,
206
- children: r.node,
207
- onSelect: r.func,
208
- selected: r.number,
209
- style: r.object,
210
- tabContentStyle: r.object,
211
- tabPosition: r.string,
212
- tabAlignment: r.string,
213
- tabIndex: r.number,
214
- className: r.string,
215
- dir: r.string,
216
- renderAllContent: r.bool,
217
- size: r.oneOf(["small", "medium", "large"]),
218
- scrollButtons: r.oneOf(["auto", "visible", "hidden"]),
219
- scrollButtonsPosition: r.oneOf(["split", "start", "end", "around", "before", "after"])
203
+ D.displayName = "TabStrip";
204
+ D.propTypes = {
205
+ id: l.string,
206
+ animation: l.bool,
207
+ children: l.node,
208
+ onSelect: l.func,
209
+ selected: l.number,
210
+ style: l.object,
211
+ tabContentStyle: l.object,
212
+ tabPosition: l.string,
213
+ tabAlignment: l.string,
214
+ tabIndex: l.number,
215
+ className: l.string,
216
+ dir: l.string,
217
+ renderAllContent: l.bool,
218
+ size: l.oneOf(["small", "medium", "large"]),
219
+ scrollButtons: l.oneOf(["auto", "visible", "hidden"]),
220
+ scrollButtonsPosition: l.oneOf(["split", "start", "end", "around", "before", "after"])
220
221
  };
221
- const ge = E;
222
+ const Se = D;
222
223
  export {
223
- ge as TabStrip
224
+ Se as TabStrip
224
225
  };
@@ -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 ft=require("react"),r=require("prop-types"),ut=require("./TabStripNavigationItem.js"),M=require("@progress/kendo-react-common"),bt=require("@progress/kendo-react-buttons"),I=require("@progress/kendo-svg-icons"),dt=require("@progress/kendo-react-intl"),S=require("./messages/index.js");function mt(b){const d=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(b){for(const s in b)if(s!=="default"){const T=Object.getOwnPropertyDescriptor(b,s);Object.defineProperty(d,s,T.get?T:{enumerable:!0,get:()=>b[s]})}}return d.default=b,Object.freeze(d)}const n=mt(ft),pt=b=>Array.from({length:b}),C="smooth",p="prev",k="next",x=b=>{const{selected:d,tabPosition:s,tabAlignment:T,children:w,onSelect:y,onKeyDown:q,onScroll:A,navItemId:R,contentPanelId:F,renderAllContent:D,scrollable:E,scrollButtons:P,scrollButtonsPosition:m,tabIndex:_,buttonScrollSpeed:j,mouseScrollSpeed:W,prevButton:$,nextButton:K,dir:U,size:V,containerScrollPosition:v,itemsNavRef:ot}=b,nt=n.useRef(null),N=ot||nt,H=dt.useLocalization(),g=n.useCallback(()=>/top|bottom/.test(s||"top"),[s]),h=n.useCallback(()=>U==="rtl",[U]),X=n.useCallback(()=>{const t=N.current,e=t==null?void 0:t.children[d||0];if(e instanceof HTMLElement&&t instanceof HTMLElement){const l=g(),u=l?t.offsetWidth:t.offsetHeight,c=l?e.offsetWidth:e.offsetHeight,i=l?"left":"top";let o=l?t.scrollLeft:t.scrollTop,a=0;if(h()){const f=e.offsetLeft;o=o*-1,f<0?(a=f-c+t.offsetLeft,t.scrollTo({[i]:a,behavior:C})):f+c>u-o&&(a=o+f-c,t.scrollTo({[i]:a,behavior:C}))}else{const f=l?e.offsetLeft-t.offsetLeft:e.offsetTop-t.offsetTop;o+u<f+c?(a=f+c-u,t.scrollTo({[i]:a,behavior:C})):o>f&&(a=f,t.scrollTo({[i]:a,behavior:C}))}}},[N,d,g,h]);n.useEffect(()=>{E&&X()},[E,d,X]);const B=n.useCallback(()=>{A==null||A()},[A]),G=n.useCallback((t,e)=>{const l=N.current;if(!l)return;const u=g(),c=u?l.scrollWidth-l.offsetWidth:l.scrollHeight-l.offsetHeight,i=(e.type==="click"?j:W)||0;let o=u?l.scrollLeft:l.scrollTop;h()&&g()?(t===p&&o<0&&(o+=i),t===k&&o<c&&(o-=i),o=Math.min(0,Math.min(c,o))):(t===p&&o>0&&(o-=i),t===k&&o<c&&(o+=i),o=Math.max(0,Math.min(c,o)));const a=e.type==="click"?C:void 0;u?l.scrollTo({left:o,behavior:a}):l.scrollTo({top:o,behavior:a})},[N,g,h,j,W]),z=n.useCallback((t,e)=>{G(t,e)},[G]),J=n.useCallback(t=>{z(p,t)},[z]),Q=n.useCallback(t=>{z(k,t)},[z]),O=n.useCallback(t=>{const e=g(),l=h(),c=e?l?"caret-alt-right":"caret-alt-left":"caret-alt-up",i=l?I.caretAltRightIcon:I.caretAltLeftIcon,o=e?i:I.caretAltUpIcon,f=e?l?"caret-alt-left":"caret-alt-right":"caret-alt-down",st=l?I.caretAltLeftIcon:I.caretAltRightIcon,rt=e?st:I.caretAltDownIcon,L={prev:{arrowTab:"k-tabstrip-prev",fontIcon:c,svgIcon:o,title:H.toLanguageString(S.prevArrowTitle,S.messages[S.prevArrowTitle])},next:{arrowTab:"k-tabstrip-next",fontIcon:f,svgIcon:rt,title:H.toLanguageString(S.nextArrowTitle,S.messages[S.nextArrowTitle])}},ct=(t===p?$:K)||bt.Button,at=t===p?J:Q,it=v===null||t===p&&(v==="start"||v==="top")||t===k&&(v==="end"||v==="bottom");return n.createElement(ct,{disabled:it,className:M.classNames(`${L[t].arrowTab}`),onClick:at,icon:L[t].fontIcon,svgIcon:L[t].svgIcon,size:V,tabIndex:-1,fillMode:"flat",title:L[t].title})},[g,h,$,K,J,Q,v,V,H]),Y=n.Children.count(w),Z=n.Children.toArray(w),tt=n.useMemo(()=>w?pt(Y).map((t,e,l)=>{const u={active:d===e,disabled:Z[e].props.disabled,index:e,title:Z[e].props.title,first:e===0,last:e===l.length-1,contentPanelId:F,renderAllContent:D,id:R,onSelect:y,onScroll:B};return n.createElement(ut.TabStripNavigationItem,{key:`${R}-${e}`,...u})}):null,[w,Y,d,F,D,R,y,B]),lt=n.useMemo(()=>M.classNames("k-tabstrip-items-wrapper k-tabstrip-items-wrapper-scroll",{"k-hstack":s==="top"||s==="bottom","k-vstack":s==="left"||s==="right"}),[s]),et=n.useMemo(()=>M.classNames("k-tabstrip-items k-tabstrip-items-scroll k-reset",`k-tabstrip-items-${T}`),[T]);return n.createElement("div",{className:lt},E?n.createElement(n.Fragment,null,P!=="hidden"&&m&&["split","start","around","before"].includes(m)&&O(p),P!=="hidden"&&(m==="start"||m==="before")&&O(k),n.createElement("ul",{ref:N,className:et,role:"tablist",tabIndex:_,onKeyDown:q,onScroll:B,"aria-orientation":s==="left"||s==="right"?"vertical":void 0},tt),P!=="hidden"&&(m==="end"||m==="after")&&O(p),P!=="hidden"&&m&&["split","end","around","after"].includes(m)&&O(k)):n.createElement("ul",{className:et,role:"tablist",tabIndex:_,onKeyDown:q},tt))};x.propTypes={children:r.oneOfType([r.element,r.arrayOf(r.element)]),onSelect:r.func,onKeyDown:r.func,onScroll:r.func,selected:r.number,tabIndex:r.number,scrollable:r.bool,size:r.oneOf(["small","medium","large"]),scrollButtons:r.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:r.oneOf(["split","start","end","around","before","after"]),containerScrollPosition:r.oneOf(["start","end","top","bottom","middle",null])};x.displayName="TabStripNavigation";exports.TabStripNavigation=x;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ft=require("react"),l=require("prop-types"),ut=require("./TabStripNavigationItem.js"),M=require("@progress/kendo-react-common"),bt=require("@progress/kendo-react-buttons"),I=require("@progress/kendo-svg-icons"),dt=require("@progress/kendo-react-intl"),S=require("./messages/index.js");function mt(b){const d=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(b){for(const r in b)if(r!=="default"){const T=Object.getOwnPropertyDescriptor(b,r);Object.defineProperty(d,r,T.get?T:{enumerable:!0,get:()=>b[r]})}}return d.default=b,Object.freeze(d)}const n=mt(ft),vt=b=>Array.from({length:b}),C="smooth",v="prev",k="next",x=b=>{const{selected:d,tabPosition:r,tabAlignment:T,children:w,onSelect:y,onKeyDown:q,onScroll:P,navItemId:E,contentPanelId:F,renderAllContent:D,scrollable:H,scrollButtons:z,scrollButtonsPosition:m,tabIndex:_,buttonScrollSpeed:j,mouseScrollSpeed:W,prevButton:$,nextButton:K,dir:U,size:V,containerScrollPosition:h,itemsNavRef:ot}=b,nt=n.useRef(null),N=ot||nt,A=dt.useLocalization(),p=n.useCallback(()=>/top|bottom/.test(r||"top"),[r]),g=n.useCallback(()=>U==="rtl",[U]),X=n.useCallback(()=>{const t=N.current,e=t==null?void 0:t.children[d||0];if(e instanceof HTMLElement&&t instanceof HTMLElement){const s=p(),u=s?t.offsetWidth:t.offsetHeight,c=s?e.offsetWidth:e.offsetHeight,i=s?"left":"top";let o=s?t.scrollLeft:t.scrollTop,a=0;if(g()){const f=e.offsetLeft;o=o*-1,f<0?(a=f-c+t.offsetLeft,t.scrollTo({[i]:a,behavior:C})):f+c>u-o&&(a=o+f-c,t.scrollTo({[i]:a,behavior:C}))}else{const f=s?e.offsetLeft-t.offsetLeft:e.offsetTop-t.offsetTop;o+u<f+c?(a=f+c-u,t.scrollTo({[i]:a,behavior:C})):o>f&&(a=f,t.scrollTo({[i]:a,behavior:C}))}}},[N,d,p,g]);n.useEffect(()=>{H&&X()},[H,d,X]);const B=n.useCallback(()=>{P==null||P()},[P]),G=n.useCallback((t,e)=>{const s=N.current;if(!s)return;const u=p(),c=u?s.scrollWidth-s.offsetWidth:s.scrollHeight-s.offsetHeight,i=(e.type==="click"?j:W)||0;let o=u?s.scrollLeft:s.scrollTop;g()&&p()?(t===v&&o<0&&(o+=i),t===k&&o<c&&(o-=i),o=Math.min(0,Math.min(c,o))):(t===v&&o>0&&(o-=i),t===k&&o<c&&(o+=i),o=Math.max(0,Math.min(c,o)));const a=e.type==="click"?C:void 0;u?s.scrollTo({left:o,behavior:a}):s.scrollTo({top:o,behavior:a})},[N,p,g,j,W]),O=n.useCallback((t,e)=>{G(t,e)},[G]),J=n.useCallback(t=>{O(v,t)},[O]),Q=n.useCallback(t=>{O(k,t)},[O]),L=n.useCallback(t=>{const e=p(),s=g(),c=e?s?"chevron-right":"chevron-left":"chevron-up",i=s?I.chevronRightIcon:I.chevronLeftIcon,o=e?i:I.chevronUpIcon,f=e?s?"chevron-left":"chevron-right":"chevron-down",rt=s?I.chevronLeftIcon:I.chevronRightIcon,lt=e?rt:I.chevronDownIcon,R={prev:{arrowTab:"k-tabstrip-prev",fontIcon:c,svgIcon:o,title:A.toLanguageString(S.prevArrowTitle,S.messages[S.prevArrowTitle])},next:{arrowTab:"k-tabstrip-next",fontIcon:f,svgIcon:lt,title:A.toLanguageString(S.nextArrowTitle,S.messages[S.nextArrowTitle])}},ct=(t===v?$:K)||bt.Button,at=t===v?J:Q,it=h===null||t===v&&(h==="start"||h==="top")||t===k&&(h==="end"||h==="bottom");return n.createElement(ct,{disabled:it,className:M.classNames(`${R[t].arrowTab}`),onClick:at,icon:R[t].fontIcon,svgIcon:R[t].svgIcon,size:V,tabIndex:-1,fillMode:"flat",title:R[t].title})},[p,g,$,K,J,Q,h,V,A]),Y=n.Children.count(w),Z=n.Children.toArray(w),tt=n.useMemo(()=>w?vt(Y).map((t,e,s)=>{const u={active:d===e,disabled:Z[e].props.disabled,index:e,title:Z[e].props.title,first:e===0,last:e===s.length-1,contentPanelId:F,renderAllContent:D,id:E,onSelect:y,onScroll:B};return n.createElement(ut.TabStripNavigationItem,{key:`${E}-${e}`,...u})}):null,[w,Y,d,F,D,E,y,B]),st=n.useMemo(()=>M.classNames("k-tabstrip-items-wrapper k-tabstrip-items-wrapper-scroll",{"k-hstack":r==="top"||r==="bottom","k-vstack":r==="left"||r==="right"}),[r]),et=n.useMemo(()=>M.classNames("k-tabstrip-items k-tabstrip-items-scroll k-reset",`k-tabstrip-items-${T}`),[T]);return n.createElement("div",{className:st},H?n.createElement(n.Fragment,null,z!=="hidden"&&m&&["split","start","around","before"].includes(m)&&L(v),z!=="hidden"&&(m==="start"||m==="before")&&L(k),n.createElement("ul",{ref:N,className:et,role:"tablist",tabIndex:_,onKeyDown:q,onScroll:B,"aria-orientation":r==="left"||r==="right"?"vertical":void 0},tt),z!=="hidden"&&(m==="end"||m==="after")&&L(v),z!=="hidden"&&m&&["split","end","around","after"].includes(m)&&L(k)):n.createElement("ul",{className:et,role:"tablist",tabIndex:_,onKeyDown:q},tt))};x.propTypes={children:l.oneOfType([l.element,l.arrayOf(l.element)]),onSelect:l.func,onKeyDown:l.func,onScroll:l.func,selected:l.number,tabIndex:l.number,scrollable:l.bool,size:l.oneOf(["small","medium","large"]),scrollButtons:l.oneOf(["auto","visible","hidden"]),scrollButtonsPosition:l.oneOf(["split","start","end","around","before","after"]),containerScrollPosition:l.oneOf(["start","end","top","bottom","middle",null])};x.displayName="TabStripNavigation";exports.TabStripNavigation=x;