@epam/uui 6.3.1 → 6.3.2-alpha.0

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 (50) hide show
  1. package/assets/styles/clickable.scss +26 -26
  2. package/assets/styles/dnd.scss +9 -9
  3. package/assets/styles/effects.scss +6 -6
  4. package/assets/styles/helpers.scss +3 -3
  5. package/assets/styles/index.scss +6 -6
  6. package/assets/styles/inputs.scss +70 -70
  7. package/assets/styles/typography.scss +184 -184
  8. package/components/datePickers/DatePicker.d.ts.map +1 -1
  9. package/components/datePickers/DatePickerBody.d.ts +5 -0
  10. package/components/datePickers/DatePickerBody.d.ts.map +1 -1
  11. package/components/datePickers/RangeDatePicker.d.ts.map +1 -1
  12. package/components/datePickers/RangeDatePickerBody.d.ts +1 -1
  13. package/components/datePickers/RangeDatePickerBody.d.ts.map +1 -1
  14. package/components/datePickers/RangeDatePickerInput.d.ts.map +1 -1
  15. package/components/datePickers/helpers.d.ts +2 -1
  16. package/components/datePickers/helpers.d.ts.map +1 -1
  17. package/components/filters/FilterPickerBody.d.ts.map +1 -1
  18. package/components/inputs/timePicker/TimePicker.d.ts.map +1 -1
  19. package/components/layout/LabeledInput.d.ts.map +1 -1
  20. package/components/navigation/Anchor.d.ts +3 -1
  21. package/components/navigation/Anchor.d.ts.map +1 -1
  22. package/components/navigation/MainMenu/Burger/BurgerButton.d.ts +3 -1
  23. package/components/navigation/MainMenu/Burger/BurgerButton.d.ts.map +1 -1
  24. package/components/navigation/MainMenu/MainMenuDropdown.d.ts.map +1 -1
  25. package/components/navigation/MainMenu/MainMenuIcon.d.ts +3 -1
  26. package/components/navigation/MainMenu/MainMenuIcon.d.ts.map +1 -1
  27. package/components/pickers/DataPickerBody.d.ts +6 -1
  28. package/components/pickers/DataPickerBody.d.ts.map +1 -1
  29. package/components/pickers/DataPickerRow.d.ts.map +1 -1
  30. package/components/pickers/PickerBodyMobileView.d.ts +2 -1
  31. package/components/pickers/PickerBodyMobileView.d.ts.map +1 -1
  32. package/components/pickers/PickerInput.d.ts +2 -2
  33. package/components/pickers/PickerInput.d.ts.map +1 -1
  34. package/components/pickers/PickerModal.d.ts.map +1 -1
  35. package/components/tables/DataTableHeaderCell.d.ts +1 -1
  36. package/components/tables/DataTableHeaderCell.d.ts.map +1 -1
  37. package/components/tables/DataTableHeaderRow.d.ts.map +1 -1
  38. package/components/widgets/DataRowAddons.d.ts +2 -0
  39. package/components/widgets/DataRowAddons.d.ts.map +1 -1
  40. package/components/widgets/Paginator.d.ts.map +1 -1
  41. package/components/widgets/Tag.d.ts.map +1 -1
  42. package/index.esm.js +309 -180
  43. package/index.esm.js.map +1 -1
  44. package/index.js +307 -178
  45. package/index.js.map +1 -1
  46. package/package.json +5 -5
  47. package/readme.md +9 -9
  48. package/stats.html +2 -2
  49. package/styles.css +1076 -1088
  50. package/styles.css.map +1 -1
package/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as uuiComponents from '@epam/uui-components';
2
- import { Spinner as Spinner$1, Blocker as Blocker$1, Clickable, IconContainer, AvatarStack as AvatarStack$1, Paginator as Paginator$1, RadioInput as RadioInput$1, TextInput as TextInput$1, ControlGroup as ControlGroup$1, NumericInput as NumericInput$1, TextArea as TextArea$1, Dropdown as Dropdown$1, InputAddon as InputAddon$1, Slider as Slider$1, DragHandle, Anchor as Anchor$1, FlexSpacer, Text as Text$1, FlexCell as FlexCell$1, VPanel, ModalBlocker as ModalBlocker$1, ModalWindow as ModalWindow$1, Snackbar as Snackbar$1, Calendar as Calendar$1, YearSelection, MonthSelection, Day, uuiDaySelection, Avatar, usePickerModal, handleDataSourceKeyboard, PickerToggler as PickerToggler$1, usePickerInput, usePickerList, DataTableCell as DataTableCell$1, DataTableRow as DataTableRow$1, DataTableCellContainer, DataTableHeaderCell as DataTableHeaderCell$1, DataTableHeaderRow as DataTableHeaderRow$1, useColumnsConfiguration, Accordion as Accordion$1, DataTableSelectionProvider, DataTableFocusProvider, useShowSelected, usePickerApi, AdaptivePanel, Burger as Burger$1, Button as Button$1, DropSpot as DropSpot$1, UploadFileToggler, ErrorCatch } from '@epam/uui-components';
2
+ import { Spinner as Spinner$1, Blocker as Blocker$1, Clickable, IconContainer, AvatarStack as AvatarStack$1, ControlIcon, Paginator as Paginator$1, RadioInput as RadioInput$1, TextInput as TextInput$1, ControlGroup as ControlGroup$1, NumericInput as NumericInput$1, TextArea as TextArea$1, Dropdown as Dropdown$1, InputAddon as InputAddon$1, Slider as Slider$1, DragHandle, Anchor as Anchor$1, FlexSpacer, Text as Text$1, FlexCell as FlexCell$1, VPanel, ModalBlocker as ModalBlocker$1, ModalWindow as ModalWindow$1, Snackbar as Snackbar$1, Calendar as Calendar$1, YearSelection, MonthSelection, Day, uuiDaySelection, Avatar, usePickerModal, handleDataSourceKeyboard, PickerToggler as PickerToggler$1, usePickerInput, usePickerList, DataTableCell as DataTableCell$1, DataTableRow as DataTableRow$1, DataTableCellContainer, DataTableHeaderCell as DataTableHeaderCell$1, DataTableHeaderRow as DataTableHeaderRow$1, useColumnsConfiguration, Accordion as Accordion$1, DataTableSelectionProvider, DataTableFocusProvider, useShowSelected, usePickerApi, AdaptivePanel, Burger as Burger$1, Button as Button$1, DropSpot as DropSpot$1, UploadFileToggler, ErrorCatch } from '@epam/uui-components';
3
3
  export { Avatar, DataTableCellContainer, FlexSpacer, IconContainer, MainMenuCustomElement, MainMenuLogo } from '@epam/uui-components';
4
- import { withMods, devLogger, uuiElement, useIsActive, uuiMod, cx as cx$1, uuiMarkers, IEditableDebouncer, isFocusReceiverInsideFocusLock, UuiContext, getDir, isEventTargetInsideClickable, directionMode, useScrollShadows, useVirtualList, isMobile, i18n as i18n$1, useUuiContext, useLayoutEffectSafeForSsr, usePrevious, mobilePositioning, uuiDataTableHeaderCell, uuiDataTableHeaderGroupCell, DndActor, uuiDndState, useColumnsConfig, uuiScrollShadows, useForceUpdate, getSeparatedValue, useArrayDataSource, orderBy, getOrderBetween, Form as Form$1, useForm as useForm$1, formatBytes, useUuiError } from '@epam/uui-core';
4
+ import { withMods, devLogger, uuiElement, useIsActive, uuiMod, cx as cx$1, uuiMarkers, IEditableDebouncer, UuiContext, getDir, isEventTargetInsideClickable, directionMode, useScrollShadows, useVirtualList, isMobile, i18n as i18n$1, useUuiContext, useLayoutEffectSafeForSsr, usePrevious, mobilePositioning, uuiDataTableHeaderCell, uuiDataTableHeaderGroupCell, DndActor, uuiDndState, useColumnsConfig, uuiScrollShadows, useForceUpdate, getSeparatedValue, useArrayDataSource, orderBy, getOrderBetween, Form as Form$1, useForm as useForm$1, formatBytes, useUuiError } from '@epam/uui-core';
5
5
  import * as React from 'react';
6
6
  import React__default, { forwardRef, useState, useEffect, useContext, useRef, useImperativeHandle, useMemo, useReducer, useCallback, Fragment } from 'react';
7
7
  import cx from 'classnames';
@@ -15,9 +15,9 @@ import updateLocale from 'dayjs/plugin/updateLocale.js';
15
15
  import objectSupport from 'dayjs/plugin/objectSupport';
16
16
  import customParseFormat from 'dayjs/plugin/customParseFormat.js';
17
17
  import isoWeek from 'dayjs/plugin/isoWeek.js';
18
+ import isEqual from 'react-fast-compare';
18
19
  import { useOverlayScrollbars } from 'overlayscrollbars-react';
19
20
  import 'overlayscrollbars/styles/overlayscrollbars.css';
20
- import isEqual from 'react-fast-compare';
21
21
  import FocusLock, { MoveFocusInside } from 'react-focus-lock';
22
22
 
23
23
  var _path$Q;
@@ -157,7 +157,7 @@ var SvgEmptyTable = function SvgEmptyTable(props, ref) {
157
157
  xmlns: "http://www.w3.org/2000/svg",
158
158
  ref: ref
159
159
  }, props), /*#__PURE__*/React.createElement("g", {
160
- clipPath: "url(#hicei867eaayu7zc8_a)"
160
+ clipPath: "url(#q2djoiqxe9h8iuzzm_a)"
161
161
  }, _path$I || (_path$I = /*#__PURE__*/React.createElement("path", {
162
162
  d: "M150.585 1.535C49.483-11.495 27.481 61.805 45.725 97.481c10.581 20.69-39.64 70.792 17.744 81.468 27.538 5.123 36-13.341 62.433-10.655 35.4 3.6 148.167-4.73 88.349-78.915-31.713-39.335 1.026-79.506-63.666-87.844Z",
163
163
  fill: "#F5F6FA"
@@ -178,7 +178,7 @@ var SvgEmptyTable = function SvgEmptyTable(props, ref) {
178
178
  d: "M86.786 22.982c-2.55 0-4.965 2.07-4.965 4.552V120.6c0 2.484 2.4 4.572 4.965 4.572h88.101c2.582 0 4.986-2.089 4.986-4.572V27.534c0-2.464-2.418-4.552-4.986-4.552h-88.1Zm-5.793 4.552c0-3.022 2.874-5.38 5.793-5.38h88.101c2.935 0 5.814 2.374 5.814 5.38V120.6c0 3.021-2.86 5.4-5.814 5.4h-88.1c-2.94 0-5.794-2.381-5.794-5.4V27.534Z",
179
179
  fill: "#1D1E26"
180
180
  })), /*#__PURE__*/React.createElement("mask", {
181
- id: "hicei8f3owhh88tl_b",
181
+ id: "q2djoi2uryu1iuu9t_b",
182
182
  style: {
183
183
  maskType: "alpha"
184
184
  },
@@ -191,7 +191,7 @@ var SvgEmptyTable = function SvgEmptyTable(props, ref) {
191
191
  d: "M174.887 125.586h-88.1c-2.752 0-5.38-2.234-5.38-4.986V27.534c0-2.752 2.644-4.966 5.38-4.966h88.1c2.752 0 5.4 2.23 5.4 4.966V120.6c0 2.752-2.632 4.986-5.4 4.986Z",
192
192
  fill: "#9BDEFF"
193
193
  }))), _g || (_g = /*#__PURE__*/React.createElement("g", {
194
- mask: "url(#hicei8f3owhh88tl_b)",
194
+ mask: "url(#q2djoi2uryu1iuu9t_b)",
195
195
  fillRule: "evenodd",
196
196
  clipRule: "evenodd"
197
197
  }, /*#__PURE__*/React.createElement("path", {
@@ -277,7 +277,7 @@ var SvgEmptyTable = function SvgEmptyTable(props, ref) {
277
277
  d: "M24.73 96.184a.414.414 0 0 1 .581.06l48.646 59.751a.413.413 0 1 1-.642.523L24.67 96.766a.414.414 0 0 1 .06-.582Z",
278
278
  fill: "#fff"
279
279
  }))), _defs || (_defs = /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("clipPath", {
280
- id: "hicei867eaayu7zc8_a"
280
+ id: "q2djoiqxe9h8iuzzm_a"
281
281
  }, /*#__PURE__*/React.createElement("path", {
282
282
  fill: "#fff",
283
283
  transform: "translate(.552)",
@@ -928,14 +928,14 @@ var SvgSearchWithBackground = function SvgSearchWithBackground(props, ref) {
928
928
  };
929
929
  var ForwardRef$4 = /*#__PURE__*/forwardRef(SvgSearchWithBackground);
930
930
 
931
- var css$1w = {"root":"q81NXg","uui-spinner":"aSawZ7","uuiSpinner":"aSawZ7"};
931
+ var css$1w = {"root":"Bl9hOf","uui-spinner":"bnA3SH","uuiSpinner":"bnA3SH"};
932
932
 
933
933
  function applySpinnerMods() {
934
934
  return [css$1w.root, 'uui-spinner'];
935
935
  }
936
936
  const Spinner = /* @__PURE__ */withMods(Spinner$1, applySpinnerMods);
937
937
 
938
- var css$1v = {"root":"tX0Cx5","loading-word":"LpvWng","loadingWord":"LpvWng","animated-loading":"WYZ6VB","animatedLoading":"WYZ6VB","skeleton_loading":"ymDJTM","skeletonLoading":"ymDJTM"};
938
+ var css$1v = {"root":"DCq8iH","loading-word":"JQfEJn","loadingWord":"JQfEJn","animated-loading":"Ty4JJp","animatedLoading":"Ty4JJp","skeleton_loading":"XW8J42","skeletonLoading":"XW8J42"};
939
939
 
940
940
  const TextPlaceholder = (props) => {
941
941
  const pattern = ' ';
@@ -952,7 +952,7 @@ const TextPlaceholder = (props) => {
952
952
  ]), dangerouslySetInnerHTML: { __html: it } })))));
953
953
  };
954
954
 
955
- var css$1u = {"root":"_6atkB5","line-height":"OQ81vG","lineHeight":"OQ81vG","font-size":"byoVK-","fontSize":"byoVK-"};
955
+ var css$1u = {"root":"LSZ2uB","line-height":"_3b-6rS","lineHeight":"_3b-6rS","font-size":"XLRI9-","fontSize":"XLRI9-"};
956
956
 
957
957
  function applyTextMods(mods) {
958
958
  return [
@@ -979,7 +979,7 @@ const Text = /* @__PURE__ */withMods(uuiComponents.Text, applyTextMods, (props)
979
979
  };
980
980
  });
981
981
 
982
- var css$1t = {"root":"sL8FHg"};
982
+ var css$1t = {"root":"Xnnwau"};
983
983
 
984
984
  const Blocker = /* @__PURE__ */withMods(Blocker$1, () => [css$1t.root], () => ({ renderSpinner: settings.blocker.renderSpinner }));
985
985
 
@@ -1484,7 +1484,7 @@ const settings = {
1484
1484
  textInput: textInputSettings,
1485
1485
  };
1486
1486
 
1487
- var css$1s = {"root":"_6gOP-j"};
1487
+ var css$1s = {"root":"X4CBzV"};
1488
1488
 
1489
1489
  function applyButtonMods(mods) {
1490
1490
  return [
@@ -1502,7 +1502,7 @@ const Button = /* @__PURE__ */withMods(uuiComponents.Button, applyButtonMods, ()
1502
1502
  };
1503
1503
  });
1504
1504
 
1505
- var css$1r = {"root":"uk-SwI"};
1505
+ var css$1r = {"root":"_5JNCLJ"};
1506
1506
 
1507
1507
  function applyIconButtonMods(props) {
1508
1508
  return ['uui-icon_button', `uui-color-${props.color || 'neutral'}`, css$1r.root];
@@ -1539,7 +1539,7 @@ function getIconClass(props) {
1539
1539
  return [classList['has-left-icon'] ? 'uui-has-left-icon' : 'uui-no-left-icon', classList['has-right-icon'] ? 'uui-has-right-icon' : 'uui-no-right-icon'];
1540
1540
  }
1541
1541
 
1542
- var css$1q = {"root":"_1lsq8k"};
1542
+ var css$1q = {"root":"yi6S3b"};
1543
1543
 
1544
1544
  const DEFAULT_COLOR = 'primary';
1545
1545
  const LinkButton = /* @__PURE__ */React.forwardRef((props, ref) => {
@@ -1569,7 +1569,7 @@ const LinkButton = /* @__PURE__ */React.forwardRef((props, ref) => {
1569
1569
  props.isDropdown && (React.createElement(IconContainer, { icon: DropdownIcon, flipY: props.isOpen }))));
1570
1570
  });
1571
1571
 
1572
- var css$1p = {"root":"_3rOezU"};
1572
+ var css$1p = {"root":"yROGWW"};
1573
1573
 
1574
1574
  const CountIndicator = /* @__PURE__ */forwardRef((props, ref) => {
1575
1575
  return (React__default.createElement("div", { ref: ref, className: cx([
@@ -1581,7 +1581,7 @@ const CountIndicator = /* @__PURE__ */forwardRef((props, ref) => {
1581
1581
  ]) }, props.caption));
1582
1582
  });
1583
1583
 
1584
- var css$1o = {"root":"E4aDmz","withNotify":"hBLeej"};
1584
+ var css$1o = {"root":"O3l7EN","withNotify":"TZoVKu"};
1585
1585
 
1586
1586
  const TabButton = /* @__PURE__ */React__default.forwardRef((props, refExternal) => {
1587
1587
  const refLocal = React__default.useRef(null);
@@ -1628,13 +1628,13 @@ const TabButton = /* @__PURE__ */React__default.forwardRef((props, refExternal)
1628
1628
  props.onClear && !props.isDisabled && (React__default.createElement(IconContainer, { cx: uuiMarkers.clickable, icon: ClearIcon, onClick: props.onClear }))));
1629
1629
  });
1630
1630
 
1631
- var css$1n = {"root":"_3fCuzD","noLeftPadding":"AXdwiA","foldingArea":"FDqszx","onlyFoldable":"_36ENZj","captionWrapper":"hQUS4-","withNotify":"x0g2Et"};
1631
+ var css$1n = {"root":"aVsRXm","noLeftPadding":"IhSrqD","foldingArea":"vh8E9m","onlyFoldable":"-b8tdK","captionWrapper":"gGAkA5","withNotify":"MdNT7l"};
1632
1632
 
1633
- var css$1m = {"root":"eICEHK"};
1633
+ var css$1m = {"root":"_7wzE7F"};
1634
1634
 
1635
1635
  const AvatarStack = /* @__PURE__ */withMods(AvatarStack$1, () => [css$1m.root]);
1636
1636
 
1637
- var css$1l = {"root":"_6EKP9S"};
1637
+ var css$1l = {"root":"_2z5IFH"};
1638
1638
 
1639
1639
  const DEFAULT_FILL = 'solid';
1640
1640
  function applyBadgeMods(mods) {
@@ -1662,7 +1662,7 @@ const Badge = /* @__PURE__ */React__default.forwardRef((props, ref) => {
1662
1662
  props.isDropdown && (React__default.createElement(IconContainer, { icon: DropdownIcon, flipY: props.isOpen }))));
1663
1663
  });
1664
1664
 
1665
- var css$1k = {"root":"r4wCPX"};
1665
+ var css$1k = {"root":"jburBf"};
1666
1666
 
1667
1667
  function applyTagMods(props) {
1668
1668
  return [
@@ -1677,44 +1677,58 @@ const Tag = /* @__PURE__ */React__default.forwardRef((props, ref) => {
1677
1677
  const styles = [applyTagMods(props), props.cx];
1678
1678
  const ClearIcon = props.clearIcon ? props.clearIcon : settings.tag.icons.clearIcon;
1679
1679
  const DropdownIcon = props.dropdownIcon ? props.dropdownIcon : settings.tag.icons.dropdownIcon;
1680
+ const icon = (React__default.createElement(ControlIcon, { icon: props.icon, onClick: props.onIconClick, isDisabled: props.isDisabled, rawProps: {
1681
+ 'aria-label': 'Icon in input',
1682
+ } }));
1680
1683
  return (React__default.createElement(Clickable, { ...props, rawProps: {
1681
1684
  'aria-haspopup': props.isDropdown,
1682
1685
  'aria-expanded': props.isOpen,
1683
1686
  ...props.rawProps,
1684
1687
  }, cx: styles, ref: ref },
1685
- props.icon && props.iconPosition !== 'right' && (React__default.createElement(IconContainer, { icon: props.icon, onClick: !props.isDisabled ? props.onIconClick : undefined })),
1688
+ props.iconPosition !== 'right' && icon,
1686
1689
  props.caption && (React__default.createElement("div", { className: uuiElement.caption }, props.caption)),
1687
1690
  props.count !== undefined && props.count !== null && (React__default.createElement(CountIndicator, { color: (!props.color || props.color === 'neutral') ? 'white' : props.color, size: settings.tag.sizes.countIndicatorMap[(props.size || settings.tag.sizes.default)], caption: props.count })),
1688
- props.icon && props.iconPosition === 'right' && (React__default.createElement(IconContainer, { icon: props.icon, onClick: !props.isDisabled ? props.onIconClick : undefined })),
1689
- props.isDropdown && (React__default.createElement(IconContainer, { icon: DropdownIcon, flipY: props.isOpen })),
1690
- props.onClear && !props.isDisabled && (React__default.createElement(IconContainer, { cx: uuiMarkers.clickable, icon: ClearIcon, onClick: props.onClear }))));
1691
+ props.iconPosition === 'right' && icon,
1692
+ props.isDropdown && (React__default.createElement(ControlIcon, { icon: DropdownIcon, flipY: props.isOpen })),
1693
+ props.onClear && !props.isDisabled && (React__default.createElement(ControlIcon, { cx: "uui-icon-cancel", icon: ClearIcon, onClick: props.onClear, rawProps: {
1694
+ 'aria-label': 'Remove tag',
1695
+ } }))));
1691
1696
  });
1692
1697
 
1693
- var css$1j = {"root":"mcySYP","page":"MOs1r0","spacer":"_5QEOm4","mode-ghost":"zODZyj","modeGhost":"zODZyj"};
1698
+ var css$1j = {"root":"_0fh9CR","page":"goMkC6","spacer":"ciNOgU","mode-ghost":"IdkVaR","modeGhost":"IdkVaR"};
1694
1699
 
1695
1700
  function Paginator(props) {
1696
- const renderPaginator = (params) => (React__default.createElement("nav", { role: "navigation", className: cx(css$1j.root, 'uui-paginator', `uui-size-${props.size || settings.paginator.sizes.default}`), ...params.rawProps },
1697
- React__default.createElement(Button, { size: props.size || settings.paginator.sizes.default, icon: settings.paginator.icons.leftArrowIcon, onClick: params.goToPrev, isDisabled: params.isFirst || props.isDisabled, fill: "outline", color: "secondary" }),
1698
- params.pages.map((page, index) => {
1699
- if (page.type === 'spacer') {
1700
- return (React__default.createElement(Button, { cx: cx(css$1j.spacer, css$1j.page), size: props.size || settings.paginator.sizes.default, key: `${index}_spacer`, caption: "...", fill: "ghost", color: "secondary", tabIndex: -1, isDisabled: props.isDisabled }));
1701
- }
1702
- else {
1703
- return (React__default.createElement(Button, { cx: cx(css$1j[`mode-${!page.isActive && 'ghost'}`], css$1j.page), size: props.size || settings.paginator.sizes.default, key: page.pageNumber, caption: page.pageNumber, onClick: () => page.onClick?.(), rawProps: { 'aria-current': page.isActive }, fill: (page.isActive && 'outline') || 'ghost', color: "primary", isDisabled: props.isDisabled }));
1704
- }
1705
- }),
1706
- React__default.createElement(Button, { size: props.size || settings.paginator.sizes.default, icon: settings.paginator.icons.rightArrowIcon, onClick: params.goToNext, isDisabled: params.isLast || props.isDisabled, fill: "outline", color: "secondary" })));
1701
+ const renderPaginator = (params) => (React__default.createElement("nav", { role: "navigation", className: cx('uui-paginator', `uui-size-${props.size || settings.paginator.sizes.default}`), ...params.rawProps },
1702
+ React__default.createElement("ul", { className: css$1j.root },
1703
+ React__default.createElement("li", null,
1704
+ React__default.createElement(Button, { size: props.size || settings.paginator.sizes.default, icon: settings.paginator.icons.leftArrowIcon, onClick: params.goToPrev, isDisabled: params.isFirst || props.isDisabled, fill: "outline", color: "secondary", rawProps: {
1705
+ 'aria-label': 'Previous page',
1706
+ } })),
1707
+ params.pages.map((page, index) => {
1708
+ if (page.type === 'spacer') {
1709
+ return (React__default.createElement("li", { key: `${index}_spacer` },
1710
+ React__default.createElement(Button, { cx: cx(css$1j.spacer, css$1j.page), size: props.size || settings.paginator.sizes.default, caption: "...", fill: "ghost", color: "secondary", tabIndex: -1, isDisabled: props.isDisabled })));
1711
+ }
1712
+ else {
1713
+ return (React__default.createElement("li", { key: page.pageNumber },
1714
+ React__default.createElement(Button, { cx: cx(css$1j[`mode-${!page.isActive && 'ghost'}`], css$1j.page), size: props.size || settings.paginator.sizes.default, caption: page.pageNumber, onClick: () => page.onClick?.(), rawProps: { 'aria-current': page.isActive }, fill: (page.isActive && 'outline') || 'ghost', color: "primary", isDisabled: props.isDisabled })));
1715
+ }
1716
+ }),
1717
+ React__default.createElement("li", null,
1718
+ React__default.createElement(Button, { size: props.size || settings.paginator.sizes.default, icon: settings.paginator.icons.rightArrowIcon, onClick: params.goToNext, isDisabled: params.isLast || props.isDisabled, fill: "outline", color: "secondary", rawProps: {
1719
+ 'aria-label': 'Next page',
1720
+ } })))));
1707
1721
  return React__default.createElement(Paginator$1, { ...props, render: renderPaginator });
1708
1722
  }
1709
1723
 
1710
- var css$1i = {"root":"s3plZG","progress-bar":"vjJRo2","progressBar":"vjJRo2","progressBar-indeterminate":"WkHkwo","progressBarIndeterminate":"WkHkwo","size-12":"ZklAd2","size12":"ZklAd2","size-18":"H0w7Td","size18":"H0w7Td","size-24":"yudSfL","size24":"yudSfL"};
1724
+ var css$1i = {"root":"_6d6OGB","progress-bar":"jxhtGj","progressBar":"jxhtGj","progressBar-indeterminate":"UAUdqY","progressBarIndeterminate":"UAUdqY","size-12":"_3QoY-t","size12":"_3QoY-t","size-18":"PQU-uw","size18":"PQU-uw","size-24":"YvfI-u","size24":"YvfI-u"};
1711
1725
 
1712
1726
  const IndeterminateBar = /* @__PURE__ */React.forwardRef((props, ref) => {
1713
1727
  return (React.createElement("div", { ref: ref, className: cx('uui-indeterminate_bar', props.cx, css$1i.root, css$1i[`size-${props.size || 12}`]) },
1714
1728
  React.createElement("div", { className: cx(css$1i.progressBar) })));
1715
1729
  });
1716
1730
 
1717
- var css$1h = {"root":"o4oDVE","striped":"_-4ThKH","animate-stripes":"Xf3EGd","animateStripes":"Xf3EGd","size-12":"_93guqG","size12":"_93guqG","size-18":"uI-ij-","size18":"uI-ij-","size-24":"aNbA-L","size24":"aNbA-L"};
1731
+ var css$1h = {"root":"jH4RT2","striped":"-lnGLM","animate-stripes":"x3NzSR","animateStripes":"x3NzSR","size-12":"_2kl6qt","size12":"_2kl6qt","size-18":"Vplio2","size18":"Vplio2","size-24":"ej5LE0","size24":"ej5LE0"};
1718
1732
 
1719
1733
  const DEFAULT_SIZE = '12';
1720
1734
  function applyProgressBarMods(mods) {
@@ -1729,14 +1743,14 @@ const ProgressBar = /* @__PURE__ */withMods(uuiComponents.ProgressBar, applyProg
1729
1743
  hideLabel: props.hideLabel || props.striped,
1730
1744
  }));
1731
1745
 
1732
- var css$1g = {"root":"Eo7a2N"};
1746
+ var css$1g = {"root":"UkG-f-"};
1733
1747
 
1734
1748
  const IndicatorBar = /* @__PURE__ */React.forwardRef((props, ref) => {
1735
1749
  const { progress } = props;
1736
1750
  return progress || progress === 0 ? (React.createElement(ProgressBar, { ref: ref, progress: progress, cx: cx(css$1g.root, props.cx), hideLabel: true })) : (React.createElement(IndeterminateBar, { ref: ref, cx: cx(css$1g.root, props.cx) }));
1737
1751
  });
1738
1752
 
1739
- var css$1f = {"root":"_1DokyX"};
1753
+ var css$1f = {"root":"p4TRSc"};
1740
1754
 
1741
1755
  const StatusIndicator = /* @__PURE__ */forwardRef((props, ref) => {
1742
1756
  return (React__default.createElement("div", { ref: ref, className: cx([
@@ -1751,7 +1765,7 @@ const StatusIndicator = /* @__PURE__ */forwardRef((props, ref) => {
1751
1765
  React__default.createElement("p", { className: "uui-status_indicator-caption" }, props.caption)));
1752
1766
  });
1753
1767
 
1754
- var css$1e = {"root":"aAyymM"};
1768
+ var css$1e = {"root":"i-SrE5"};
1755
1769
 
1756
1770
  function applyCheckboxMods(mods) {
1757
1771
  return [
@@ -1769,7 +1783,7 @@ const applyUUICheckboxProps = (props) => {
1769
1783
  };
1770
1784
  const Checkbox = /* @__PURE__ */withMods(uuiComponents.Checkbox, applyCheckboxMods, applyUUICheckboxProps);
1771
1785
 
1772
- var css$1d = {"root":"-DKtr0"};
1786
+ var css$1d = {"root":"_8z3otr"};
1773
1787
 
1774
1788
  function applyRadioInputMods(mods) {
1775
1789
  return [
@@ -1781,7 +1795,7 @@ function applyRadioInputMods(mods) {
1781
1795
  }
1782
1796
  const RadioInput = /* @__PURE__ */withMods(RadioInput$1, applyRadioInputMods, (props) => ({ icon: props.icon ? props.icon : settings.radioInput.icons.dotIcon }));
1783
1797
 
1784
- var css$1c = {"root":"BCYGx0"};
1798
+ var css$1c = {"root":"-GLwX5"};
1785
1799
 
1786
1800
  function applySwitchMods(mods) {
1787
1801
  return [
@@ -1805,7 +1819,7 @@ var EditMode;
1805
1819
  EditMode["INLINE"] = "inline";
1806
1820
  })(EditMode || (EditMode = {}));
1807
1821
 
1808
- var textInputCss = {"root":"_9M-jBw"};
1822
+ var textInputCss = {"root":"qM-1eO"};
1809
1823
 
1810
1824
  const DEFAULT_MODE$3 = EditMode.FORM;
1811
1825
  function applyTextInputMods(mods) {
@@ -1830,7 +1844,7 @@ const SearchInput = /* @__PURE__ */React__default.forwardRef((props, ref) => {
1830
1844
  } }));
1831
1845
  });
1832
1846
 
1833
- var css$1b = {"root":"BRliMG"};
1847
+ var css$1b = {"root":"AXiiQ6"};
1834
1848
 
1835
1849
  const ControlGroup = /* @__PURE__ */withMods(ControlGroup$1, () => [css$1b.root, 'uui-control-group']);
1836
1850
 
@@ -1846,7 +1860,7 @@ function MultiSwitchComponent(props, ref) {
1846
1860
  }
1847
1861
  const MultiSwitch = /* @__PURE__ */React.forwardRef(MultiSwitchComponent);
1848
1862
 
1849
- var css$1a = {"root":"MmanhM"};
1863
+ var css$1a = {"root":"qCGNj4"};
1850
1864
 
1851
1865
  const DEFAULT_MODE$2 = EditMode.FORM;
1852
1866
  function applyNumericInputMods(mods) {
@@ -1866,7 +1880,7 @@ const NumericInput = /* @__PURE__ */withMods(NumericInput$1, applyNumericInputMo
1866
1880
  };
1867
1881
  });
1868
1882
 
1869
- var css$19 = {"root":"_4vjOWZ"};
1883
+ var css$19 = {"root":"KDENUR"};
1870
1884
 
1871
1885
  const DEFAULT_MODE$1 = EditMode.FORM;
1872
1886
  function applyTextAreaMods(mods) {
@@ -1907,7 +1921,7 @@ function TREE_SHAKEABLE_INIT$1() {
1907
1921
  };
1908
1922
  }
1909
1923
 
1910
- var css$18 = {"root":"I9-1iQ"};
1924
+ var css$18 = {"root":"XUiEbr"};
1911
1925
 
1912
1926
  function applyDropdownContainerMods(mods) {
1913
1927
  return [
@@ -1918,7 +1932,7 @@ function applyDropdownContainerMods(mods) {
1918
1932
  }
1919
1933
  const DropdownContainer = /* @__PURE__ */withMods(uuiComponents.DropdownContainer, applyDropdownContainerMods);
1920
1934
 
1921
- var css$17 = {"root":"ZOJ0YA","timepicker-input":"e-YUzP","timepickerInput":"e-YUzP","ltr-always":"_1Ox0Mq","ltrAlways":"_1Ox0Mq"};
1935
+ var css$17 = {"root":"T5Ik6C","timepicker-input":"gZdkaQ","timepickerInput":"gZdkaQ","ltr-always":"lmgoJn","ltrAlways":"lmgoJn"};
1922
1936
 
1923
1937
  const uuiTimePicker = {
1924
1938
  container: 'uui-timepicker-container',
@@ -2036,6 +2050,7 @@ function TimePickerComponent(props, ref) {
2036
2050
  value: valueToTimeString(props.value, props.format),
2037
2051
  inputValue: valueToTimeString(props.value, props.format),
2038
2052
  });
2053
+ const targetRef = React__default.useRef(null);
2039
2054
  useEffect(() => {
2040
2055
  if (valueToTimeString(props.value, props.format) !== state.value) {
2041
2056
  const stringValue = valueToTimeString(props.value, props.format);
@@ -2063,7 +2078,10 @@ function TimePickerComponent(props, ref) {
2063
2078
  };
2064
2079
  const saveTime = (newTime) => {
2065
2080
  setState((prevState) => ({ ...prevState, inputValue: newTime }));
2066
- props.onValueChange(formatStringTimeToObject(newTime));
2081
+ const newValue = formatStringTimeToObject(newTime);
2082
+ if (!isEqual(props.value, newValue)) {
2083
+ props.onValueChange(formatStringTimeToObject(newTime));
2084
+ }
2067
2085
  };
2068
2086
  const getTimeFromInputValue = (newValue) => {
2069
2087
  const trimmedNewValue = newValue.trimStart();
@@ -2077,7 +2095,6 @@ function TimePickerComponent(props, ref) {
2077
2095
  saveTime(inputValue);
2078
2096
  };
2079
2097
  const handleFocus = (e) => {
2080
- onToggle(true);
2081
2098
  props.onFocus?.(e);
2082
2099
  };
2083
2100
  const handleInputChange = (newValue) => {
@@ -2090,9 +2107,6 @@ function TimePickerComponent(props, ref) {
2090
2107
  }
2091
2108
  };
2092
2109
  const handleBlur = (e) => {
2093
- if (isFocusReceiverInsideFocusLock(e))
2094
- return;
2095
- onToggle(false);
2096
2110
  props.onBlur?.(e);
2097
2111
  if (state.value === '' || state.inputValue === '') {
2098
2112
  props.onValueChange(null);
@@ -2100,19 +2114,37 @@ function TimePickerComponent(props, ref) {
2100
2114
  }
2101
2115
  state.value && state.inputValue && saveTime(state.value);
2102
2116
  };
2117
+ const onKeyDown = (e) => {
2118
+ if (e.key === 'Enter') {
2119
+ onToggle(true);
2120
+ }
2121
+ if (e.key === 'Escape' && state.isOpen) {
2122
+ e.preventDefault();
2123
+ e.stopPropagation();
2124
+ onToggle(false);
2125
+ }
2126
+ };
2103
2127
  const renderInput = (inputProps) => {
2104
- return (React__default.createElement(TextInput, { ...inputProps, onClick: null, size: props.size, isDisabled: props.isDisabled, isReadonly: props.isReadonly, isInvalid: props.isInvalid, cx: [css$17.root, css$17.timepickerInput, props.inputCx], value: state.inputValue, onValueChange: handleInputChange, onCancel: !props.disableClear && onClear, onFocus: handleFocus, onBlur: handleBlur, isDropdown: false, placeholder: props.placeholder ? props.placeholder : getFormat(), mode: props.mode || DEFAULT_MODE, rawProps: props.rawProps?.input }));
2128
+ return (React__default.createElement(TextInput, { ...inputProps, size: props.size, isDisabled: props.isDisabled, isReadonly: props.isReadonly, isInvalid: props.isInvalid, cx: [css$17.root, css$17.timepickerInput, props.inputCx], value: state.inputValue, onValueChange: handleInputChange, onCancel: !props.disableClear && onClear, onKeyDown: onKeyDown, onFocus: handleFocus, onBlur: handleBlur, isDropdown: false, placeholder: props.placeholder ? props.placeholder : getFormat(), mode: props.mode || DEFAULT_MODE, rawProps: props.rawProps?.input, ref: (node) => {
2129
+ targetRef.current = node;
2130
+ if (typeof inputProps.ref === 'function') {
2131
+ inputProps.ref(node);
2132
+ }
2133
+ else if (inputProps.ref && 'current' in inputProps.ref) {
2134
+ inputProps.ref.current = node;
2135
+ }
2136
+ } }));
2105
2137
  };
2106
2138
  const renderBody = (bodyProps) => {
2107
2139
  const { forwardedRef, onValueChange, ...timePickerBodyProps } = props;
2108
- return (!props.isDisabled && !props.isReadonly && (React__default.createElement(DropdownContainer, { ...bodyProps, focusLock: false },
2140
+ return (!props.isDisabled && !props.isReadonly && (React__default.createElement(DropdownContainer, { ...bodyProps, shards: [targetRef] },
2109
2141
  React__default.createElement(TimePickerBody, { ...timePickerBodyProps, onValueChange: handleBodyValueChange, value: formatStringTimeToObject(state.value), rawProps: props.rawProps?.body, cx: props.bodyCx }))));
2110
2142
  };
2111
2143
  return (React__default.createElement(Dropdown$1, { renderTarget: (targetProps) => (props.renderTarget ? props.renderTarget(targetProps) : renderInput(targetProps)), renderBody: (bodyProps) => !props.isDisabled && !props.isReadonly && renderBody(bodyProps), onValueChange: !props.isDisabled && !props.isReadonly ? onToggle : null, value: state.isOpen, middleware: [offset(6)], ref: ref }));
2112
2144
  }
2113
2145
  const TimePicker = /* @__PURE__ */React__default.forwardRef(TimePickerComponent);
2114
2146
 
2115
- var css$16 = {"root":"IoU-Ru"};
2147
+ var css$16 = {"root":"xYLQQo"};
2116
2148
 
2117
2149
  function applyInputAddonMods() {
2118
2150
  return [
@@ -2121,14 +2153,14 @@ function applyInputAddonMods() {
2121
2153
  }
2122
2154
  const InputAddon = /* @__PURE__ */withMods(InputAddon$1, applyInputAddonMods);
2123
2155
 
2124
- var css$15 = {"root":"-AAfN7"};
2156
+ var css$15 = {"root":"EjLeYa"};
2125
2157
 
2126
2158
  function applySliderMods() {
2127
2159
  return [css$15.root, 'uui-color-neutral'];
2128
2160
  }
2129
2161
  const Slider = /* @__PURE__ */withMods(Slider$1, applySliderMods);
2130
2162
 
2131
- var css$14 = {"root":"vuRe-y"};
2163
+ var css$14 = {"root":"_8pGKsh"};
2132
2164
 
2133
2165
  function applyTooltipMods(mods) {
2134
2166
  return [
@@ -2138,7 +2170,7 @@ function applyTooltipMods(mods) {
2138
2170
  }
2139
2171
  const Tooltip = /* @__PURE__ */withMods(uuiComponents.Tooltip, applyTooltipMods);
2140
2172
 
2141
- var css$13 = {"root":"_3YNKaf","tooltip":"B2RbXC"};
2173
+ var css$13 = {"root":"vyiVij","tooltip":"dLB1JM"};
2142
2174
 
2143
2175
  function applyRatingMods(mods) {
2144
2176
  return [
@@ -2152,7 +2184,7 @@ const Rating = /* @__PURE__ */withMods(uuiComponents.Rating, applyRatingMods, (p
2152
2184
  Tooltip,
2153
2185
  }));
2154
2186
 
2155
- var css$12 = {"drag-handle-wrapper":"p47bqp","dragHandleWrapper":"p47bqp","with-indent":"ifaQSF","withIndent":"ifaQSF","drag-handle":"JV6flR","dragHandle":"JV6flR","icon-container":"VpLXPg","iconContainer":"VpLXPg"};
2187
+ var css$12 = {"drag-handle-wrapper":"Jt1tzZ","dragHandleWrapper":"Jt1tzZ","with-indent":"ijgM1M","withIndent":"ijgM1M","drag-handle":"iCAOm6","dragHandle":"iCAOm6","icon-container":"xmdvRx","iconContainer":"xmdvRx"};
2156
2188
 
2157
2189
  function DataRowAddons(props) {
2158
2190
  const row = props.rowProps;
@@ -2169,15 +2201,20 @@ function DataRowAddons(props) {
2169
2201
  return (React__default.createElement("div", { key: "dh", className: cx(css$12.dragHandleWrapper, row.indent > 0 && css$12.withIndent), style: { width: row.indent > 0 ? (getIndent() + getWidth()) : 0 }, ...props.eventHandlers },
2170
2202
  React__default.createElement(DragHandle, { cx: css$12.dragHandle })));
2171
2203
  };
2204
+ const handleFold = (e) => {
2205
+ if (props.isFoldingFocusable && e.key === 'Enter') {
2206
+ row.onFold(row);
2207
+ }
2208
+ };
2172
2209
  return (React__default.createElement(React__default.Fragment, null,
2173
2210
  row.dnd?.srcData && renderDragHandle(),
2174
2211
  row?.checkbox?.isVisible && (React__default.createElement(Checkbox, { key: "cb", cx: "uui-dr_addons-checkbox", tabIndex: props.tabIndex, size: settings.dataTable.sizes.body.checkboxMap[props.size], value: row.isChecked, indeterminate: !row.isChecked && row.isChildrenChecked, onValueChange: () => row.onCheck?.(row), isDisabled: row.checkbox.isDisabled, isInvalid: row.checkbox.isInvalid })),
2175
- row.indent > 0 && (React__default.createElement("div", { key: "fold", className: cx('uui-dr_addons-indent', `uui-size-${props.size || settings.dataTable.sizes.body.row}`), style: { marginInlineStart: getIndent(), width: getWidth() } }, row.isFoldable && (React__default.createElement(IconContainer, { rawProps: {
2212
+ row.indent > 0 && (React__default.createElement("div", { key: "fold", className: cx('uui-dr_addons-indent', `uui-size-${props.size || settings.dataTable.sizes.body.row}`), style: { marginInlineStart: getIndent(), width: getWidth() } }, row.isFoldable && (React__default.createElement(ControlIcon, { rawProps: {
2176
2213
  'aria-label': row.isFolded ? 'Unfold' : 'Fold',
2177
2214
  role: 'button',
2178
2215
  }, key: "icon", icon: settings.dataTable.icons.body.foldingIcon, cx: [
2179
2216
  uuiElement.foldingArrow, uuiMarkers.clickable, css$12.iconContainer,
2180
- ], rotate: row.isFolded ? '90ccw' : '0', onClick: () => row.onFold(row), size: settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row] }))))));
2217
+ ], rotate: row.isFolded ? '90ccw' : '0', onClick: () => row.onFold(row), onKeyDown: handleFold, size: settings.dataTable.sizes.body.iconMap[props.size || settings.dataTable.sizes.body.row], tabIndex: props.isFoldingFocusable ? 0 : undefined }))))));
2181
2218
  }
2182
2219
 
2183
2220
  function VerticalTabButtonComponent(props, ref) {
@@ -2229,7 +2266,7 @@ function VerticalTabButtonComponent(props, ref) {
2229
2266
  }
2230
2267
  const VerticalTabButton = /* @__PURE__ */React__default.forwardRef(VerticalTabButtonComponent);
2231
2268
 
2232
- var css$11 = {"root":"qQbFvx","main-path":"kYDASw","mainPath":"kYDASw","content-wrapper":"d8lhmY","contentWrapper":"d8lhmY","content":"fo8ze2","action-wrapper":"U2aFgx","actionWrapper":"U2aFgx","icon-wrapper":"kIJK-A","iconWrapper":"kIJK-A","icon":"JApauQ","close-icon":"aA-jXD","closeIcon":"aA-jXD"};
2269
+ var css$11 = {"root":"XhC-dI","main-path":"gSGai1","mainPath":"gSGai1","content-wrapper":"p-VzwJ","contentWrapper":"p-VzwJ","content":"FJrj4b","action-wrapper":"NrqhOD","actionWrapper":"NrqhOD","icon-wrapper":"exM3RM","iconWrapper":"exM3RM","icon":"GiA1lc","close-icon":"Yv9d-K","closeIcon":"Yv9d-K"};
2233
2270
 
2234
2271
  const Alert = /* @__PURE__ */React.forwardRef((props, ref) => (React.createElement("div", { role: "alert", ref: ref, className: cx('uui-alert', css$11.root, props.color && `uui-color-${props.color}`, props.cx, `uui-size-${props.size || settings.alert.sizes.default}`), ...props.rawProps },
2235
2272
  React.createElement("div", { className: css$11.mainPath },
@@ -2247,7 +2284,7 @@ const ErrorAlert = /* @__PURE__ */React.forwardRef((props, ref) => React.createE
2247
2284
 
2248
2285
  const Dropdown = /* @__PURE__ */withMods(Dropdown$1);
2249
2286
 
2250
- var css$10 = {"submenu-root-item-rtl":"hR-QP9","submenuRootItemRtl":"hR-QP9","icon-after":"OQaI7N","iconAfter":"OQaI7N","submenu-root-item":"ARhjyS","submenuRootItem":"ARhjyS","icon-check":"MzRMYQ","iconCheck":"MzRMYQ","splitter-root":"tv1Dl5","splitterRoot":"tv1Dl5","splitter":"nCvWnG","header-root":"-wnjXT","headerRoot":"-wnjXT","item-root":"_7ohDM9","itemRoot":"_7ohDM9","icon":"OKtLUS","link":"_9cX1Ag","indent":"_3AiFA8","selected-mark":"QC7HMp","selectedMark":"QC7HMp"};
2287
+ var css$10 = {"submenu-root-item-rtl":"l5uxvV","submenuRootItemRtl":"l5uxvV","icon-after":"iOFLSJ","iconAfter":"iOFLSJ","submenu-root-item":"_207xrH","submenuRootItem":"_207xrH","icon-check":"ajtGcR","iconCheck":"ajtGcR","splitter-root":"g2IhYU","splitterRoot":"g2IhYU","splitter":"fHxQpU","header-root":"Pio5lB","headerRoot":"Pio5lB","item-root":"ZaYGBq","itemRoot":"ZaYGBq","icon":"nc3Fia","link":"QeyOEQ","indent":"_6T2R8z","selected-mark":"AfAZUI","selectedMark":"AfAZUI"};
2251
2288
 
2252
2289
  var IDropdownControlKeys;
2253
2290
  (function (IDropdownControlKeys) {
@@ -2381,7 +2418,7 @@ function DropdownMenuSwitchButton(props) {
2381
2418
  React__default.createElement(Switch, { value: isSelected, tabIndex: -1, onValueChange: onHandleValueChange })));
2382
2419
  }
2383
2420
 
2384
- var css$$ = {"root":"_6PQbDB","mode-block":"L2ukY9","modeBlock":"L2ukY9","mode-inline":"ECkuJa","modeInline":"ECkuJa","padding-0":"oOHXKp","padding0":"oOHXKp","padding-6":"SDIJ-V","padding6":"SDIJ-V","padding-12":"_94Ys8b","padding12":"_94Ys8b","padding-18":"Cy-Yzt","padding18":"Cy-Yzt"};
2421
+ var css$$ = {"root":"lQspfr","mode-block":"FOkdF5","modeBlock":"FOkdF5","mode-inline":"-UaZXh","modeInline":"-UaZXh","padding-0":"_8uVTti","padding0":"_8uVTti","padding-6":"_8Fd3jq","padding6":"_8Fd3jq","padding-12":"tWHePG","padding12":"tWHePG","padding-18":"WIUjNh","padding18":"WIUjNh"};
2385
2422
 
2386
2423
  function applyAccordionMods(mods) {
2387
2424
  return [
@@ -2394,7 +2431,7 @@ const Accordion = /* @__PURE__ */withMods(uuiComponents.Accordion, applyAccordio
2394
2431
  dropdownIcon: mods.dropdownIcon !== null && settings.accordion.icons.dropdownIcon,
2395
2432
  }));
2396
2433
 
2397
- var css$_ = {"root":"ap-2nK","align-items":"DnOVnb","alignItems":"DnOVnb","justify-content":"_1aKt9k","justifyContent":"_1aKt9k","border-top":"jsseLL","borderTop":"jsseLL","border-bottom":"EV6ZjA","borderBottom":"EV6ZjA","top-shadow":"fMeNAt","topShadow":"fMeNAt","padding":"sFr-Fr","margin":"_4rReVQ","vPadding":"ZojVsY","column-gap":"gdKbpH","columnGap":"gdKbpH","row-gap":"Ca-VtG","rowGap":"Ca-VtG","spacing":"KRvhXW"};
2434
+ var css$_ = {"root":"QaQft7","align-items":"_8b411O","alignItems":"_8b411O","justify-content":"z-nV-f","justifyContent":"z-nV-f","border-top":"OSboNp","borderTop":"OSboNp","border-bottom":"AWKEwz","borderBottom":"AWKEwz","top-shadow":"_4d-shM","topShadow":"_4d-shM","padding":"_2mVXDL","margin":"VXQ2qL","vPadding":"VCgRlA","column-gap":"wgbMW2","columnGap":"wgbMW2","row-gap":"WCUpVM","rowGap":"WCUpVM","spacing":"mYRdIZ"};
2398
2435
 
2399
2436
  const FlexCell = /* @__PURE__ */withMods(FlexCell$1, () => [css$_.flexCell]);
2400
2437
 
@@ -2446,7 +2483,7 @@ const FlexRow = /* @__PURE__ */forwardRef((props, ref) => {
2446
2483
  } }, props.children));
2447
2484
  });
2448
2485
 
2449
- var css$Z = {"root":"s9u8hG","margin-24":"VubwqG","margin24":"VubwqG","padding-12":"yECNX-","padding12":"yECNX-","padding-24":"pzzeE5","padding24":"pzzeE5","shadow":"RpEITe","uui-surface-main":"vdXtnk","uuiSurfaceMain":"vdXtnk"};
2486
+ var css$Z = {"root":"ryvTqu","margin-24":"ZkrnGM","margin24":"ZkrnGM","padding-12":"iGI7pt","padding12":"iGI7pt","padding-24":"_8irR8v","padding24":"_8irR8v","shadow":"qvLIdV","uui-surface-main":"_9GB8h3","uuiSurfaceMain":"_9GB8h3"};
2450
2487
 
2451
2488
  const Panel = /* @__PURE__ */withMods(VPanel, (props) => [
2452
2489
  'uui-panel',
@@ -2456,7 +2493,7 @@ const Panel = /* @__PURE__ */withMods(VPanel, (props) => [
2456
2493
  props.background && css$Z[`uui-${props.background}`],
2457
2494
  ]);
2458
2495
 
2459
- var css$Y = {"root":"_4xKIXG"};
2496
+ var css$Y = {"root":"KXIV2k"};
2460
2497
 
2461
2498
  function applyLabeledInputMods(mods) {
2462
2499
  return [
@@ -2465,15 +2502,20 @@ function applyLabeledInputMods(mods) {
2465
2502
  'uui-size-' + (mods.size || settings.labeledInput.sizes.default),
2466
2503
  ];
2467
2504
  }
2505
+ function getInfoIconForSize(size) {
2506
+ return size <= '30'
2507
+ ? settings.labeledInput.icons.fillInfoIcon
2508
+ : settings.labeledInput.icons.infoIcon;
2509
+ }
2468
2510
  function applyLabeledInputProps(props) {
2469
- return ({
2511
+ return {
2470
2512
  Tooltip: props.Tooltip || Tooltip,
2471
- infoIcon: props.infoIcon || props.size <= '30' ? settings.labeledInput.icons.fillInfoIcon : settings.labeledInput.icons.infoIcon,
2472
- });
2513
+ infoIcon: props.infoIcon || getInfoIconForSize(props.size),
2514
+ };
2473
2515
  }
2474
2516
  const LabeledInput = /* @__PURE__ */withMods(uuiComponents.LabeledInput, applyLabeledInputMods, applyLabeledInputProps);
2475
2517
 
2476
- var css$X = {"root":"XV08r0"};
2518
+ var css$X = {"root":"fFibdG"};
2477
2519
 
2478
2520
  function RadioGroup(props) {
2479
2521
  const direction = props.direction || 'vertical';
@@ -2488,7 +2530,7 @@ function RadioGroup(props) {
2488
2530
  })));
2489
2531
  }
2490
2532
 
2491
- var css$W = {"root":"LJvO0J","viewport":"WS08dq"};
2533
+ var css$W = {"root":"t-6UmP","viewport":"gfk2Q7"};
2492
2534
 
2493
2535
  var uuiScrollbars;
2494
2536
  (function (uuiScrollbars) {
@@ -2558,7 +2600,7 @@ const ScrollBars = /* @__PURE__ */forwardRef((props, ref) => {
2558
2600
  });
2559
2601
  ScrollBars.displayName = 'ScrollBars';
2560
2602
 
2561
- var css$V = {"scroll-container":"trLwuQ","scrollContainer":"trLwuQ","list-container":"_8fY7le","listContainer":"_8fY7le"};
2603
+ var css$V = {"scroll-container":"aE5ea4","scrollContainer":"aE5ea4","list-container":"I3cAUF","listContainer":"I3cAUF"};
2562
2604
 
2563
2605
  const VirtualList = /* @__PURE__ */React__default.forwardRef((props, ref) => {
2564
2606
  const { listContainerRef, offsetY, handleScroll, estimatedHeight, scrollContainerRef, } = useVirtualList({
@@ -2611,7 +2653,7 @@ function Tree(props) {
2611
2653
  return (React.createElement(VirtualList, { value: value, onValueChange: onValueChange, rowsCount: rowsCount, rows: renderedRows, cx: cx$1(propsCx), role: "tree" }));
2612
2654
  }
2613
2655
 
2614
- var css$U = {"root":"k86vxv"};
2656
+ var css$U = {"root":"_0AGVh9"};
2615
2657
 
2616
2658
  function CheckboxGroup(props) {
2617
2659
  const currentValue = props.value || [];
@@ -2713,7 +2755,7 @@ const Tabs = /* @__PURE__ */forwardRef((props, ref) => {
2713
2755
  });
2714
2756
  Tabs.displayName = 'Tabs';
2715
2757
 
2716
- var css$T = {"root":"R1qIKu","modal-blocker":"oYAxKl","modalBlocker":"oYAxKl","animateModalBlocker":"gCC3Vp","modal":"NChdlF","modal-footer":"gQVrMC","modalFooter":"gQVrMC","border-top":"gtsH59","borderTop":"gtsH59","modal-header":"_09A5AL","modalHeader":"_09A5AL","border-bottom":"n7jjVR","borderBottom":"n7jjVR"};
2758
+ var css$T = {"root":"_9aKN6y","modal-blocker":"_1g5qc6","modalBlocker":"_1g5qc6","animateModalBlocker":"HemH-J","modal":"RnEPYd","modal-footer":"jc44aV","modalFooter":"jc44aV","border-top":"QteKIZ","borderTop":"QteKIZ","modal-header":"KwUVu4","modalHeader":"KwUVu4","border-bottom":"nqe48n","borderBottom":"nqe48n"};
2717
2759
 
2718
2760
  const ModalBlocker = /* @__PURE__ */withMods(ModalBlocker$1, () => [css$T.modalBlocker]);
2719
2761
  const ModalWindow = /* @__PURE__ */withMods(ModalWindow$1, () => [css$T.root, css$T.modal], (props) => {
@@ -2905,7 +2947,7 @@ const TREE_SHAKEABLE_INIT = () => ({
2905
2947
  });
2906
2948
  const i18n = /* @__PURE__ */TREE_SHAKEABLE_INIT();
2907
2949
 
2908
- var css$S = {"root":"tFqyuu","icon-wrapper":"oUQriM","iconWrapper":"oUQriM","action-wrapper":"ueSQ8c","actionWrapper":"ueSQ8c","close-icon":"_6eNkLg","closeIcon":"_6eNkLg","main-path":"mw30oe","mainPath":"mw30oe","content":"KxMprA","close-wrapper":"xLTRzz","closeWrapper":"xLTRzz","clear-notifications":"-igb8x","clearNotifications":"-igb8x"};
2950
+ var css$S = {"root":"mxel03","icon-wrapper":"zia8AV","iconWrapper":"zia8AV","action-wrapper":"VKLdu7","actionWrapper":"VKLdu7","close-icon":"HFf0sB","closeIcon":"HFf0sB","main-path":"qpQM5x","mainPath":"qpQM5x","content":"-ffdfy","close-wrapper":"mqOVx4","closeWrapper":"mqOVx4","clear-notifications":"p2JiXm","clearNotifications":"p2JiXm"};
2909
2951
 
2910
2952
  const NotificationCard = /* @__PURE__ */React__default.forwardRef((props, ref) => {
2911
2953
  const notificationCardNode = React__default.useRef(null);
@@ -2938,7 +2980,7 @@ function ClearNotification() {
2938
2980
  React__default.createElement(LinkButton, { caption: i18n.notificationCard.closeAllNotificationsButton, onClick: () => uuiCtx.uuiNotifications.clearAll() })));
2939
2981
  }
2940
2982
 
2941
- var css$R = {"footer":"sTPayW"};
2983
+ var css$R = {"footer":"QkiE0u"};
2942
2984
 
2943
2985
  class ConfirmationModal extends React.Component {
2944
2986
  render() {
@@ -2980,7 +3022,7 @@ function useReliableForceUpdate() {
2980
3022
  return red[1];
2981
3023
  }
2982
3024
 
2983
- var css$Q = {"root":"NqfEPK","container":"qlxhN-"};
3025
+ var css$Q = {"root":"yPK2Ad","container":"I4z498"};
2984
3026
 
2985
3027
  const defaultFormat = 'MMM D, YYYY';
2986
3028
  const valueFormat = 'YYYY-MM-DD';
@@ -2999,7 +3041,16 @@ const defaultRangeValue = {
2999
3041
  from: null,
3000
3042
  to: null,
3001
3043
  };
3002
- const getDisplayedMonth = (selectedDate, focus) => {
3044
+ const getDisplayedMonth = (selectedDate, focus, initialViewMonth) => {
3045
+ if (selectedDate.from || selectedDate.to) {
3046
+ return getDisplayedMonthBySelection(selectedDate, focus);
3047
+ }
3048
+ else if (initialViewMonth) {
3049
+ return getNewMonth(`${initialViewMonth}-01`);
3050
+ }
3051
+ return uuiDayjs.dayjs();
3052
+ };
3053
+ const getDisplayedMonthBySelection = (selectedDate, focus) => {
3003
3054
  if (selectedDate.from && selectedDate.to && focus) {
3004
3055
  return uuiDayjs.dayjs(selectedDate[focus]);
3005
3056
  }
@@ -3198,26 +3249,27 @@ function DatePickerHeader({ navIconLeft, navIconRight, value: { month, view }, o
3198
3249
  React.createElement(Button, { icon: navIconRight || settings.datePicker.icons.body.nextIcon, color: "secondary", fill: "ghost", cx: uuiHeader.navIconRight, onClick: !isDisabled && (() => onRightNavigationArrow()), isDisabled: disableNext }))));
3199
3250
  }
3200
3251
 
3201
- var css$P = {"root":"e9n0iE"};
3252
+ var css$P = {"root":"_50QShK"};
3202
3253
 
3203
3254
  function applyDateSelectionMods() {
3204
3255
  return [css$P.root, `uui-size-${settings.datePicker.sizes.body}`];
3205
3256
  }
3206
3257
  const Calendar = /* @__PURE__ */withMods(Calendar$1, applyDateSelectionMods);
3207
3258
 
3208
- var css$O = {"root":"RtXxRP"};
3259
+ var css$O = {"root":"hVXtQn"};
3209
3260
 
3210
3261
  const uuiDatePickerBody = {
3211
3262
  wrapper: 'uui-datepicker-body-wrapper',
3212
3263
  };
3213
3264
  const DatePickerBody = /* @__PURE__ */forwardRef(DatePickerBodyComp);
3214
3265
  function DatePickerBodyComp(props, ref) {
3215
- const { value, onValueChange } = props;
3216
- const [month, setMonth] = useState(getNewMonth(value));
3266
+ const { value, onValueChange, initialViewMonth } = props;
3267
+ const initialViewDate = value || (initialViewMonth ? `${initialViewMonth}-01` : '');
3268
+ const [month, setMonth] = useState(getNewMonth(initialViewDate));
3217
3269
  const [view, setView] = useState('DAY_SELECTION');
3218
3270
  // sync updated props with internal state
3219
3271
  useEffect(() => {
3220
- setMonth(getNewMonth(value));
3272
+ setMonth(getNewMonth(initialViewDate));
3221
3273
  setView('DAY_SELECTION');
3222
3274
  }, [value, setMonth]);
3223
3275
  return (React__default.createElement(StatelessDatePickerBody, { ref: ref, ...props, month: month, view: view, onValueChange: onValueChange, onMonthChange: (m) => setMonth(m), onViewChange: (v) => setView(v) }));
@@ -3315,7 +3367,7 @@ function DatePickerComponent(props, ref) {
3315
3367
  };
3316
3368
  const renderBody = useMemo(() => (renderProps) => {
3317
3369
  return (React__default.createElement(DropdownContainer, { ...renderProps },
3318
- React__default.createElement(DatePickerBody, { value: value, onValueChange: onBodyValueChange, cx: cx$1(props.bodyCx), filter: props.filter, isHoliday: props.isHoliday, renderDay: props.renderDay, rawProps: props.rawProps?.body }),
3370
+ React__default.createElement(DatePickerBody, { value: value, onValueChange: onBodyValueChange, cx: cx$1(props.bodyCx), filter: props.filter, isHoliday: props.isHoliday, renderDay: props.renderDay, rawProps: props.rawProps?.body, initialViewMonth: props.initialViewMonth }),
3319
3371
  props.renderFooter?.()));
3320
3372
  }, [value, onBodyValueChange]);
3321
3373
  return (React__default.createElement(Dropdown$1, { value: isBodyOpen, middleware: [offset(6)], placement: props.placement, ref: ref, onValueChange: (v) => {
@@ -3326,7 +3378,7 @@ function DatePickerComponent(props, ref) {
3326
3378
  }
3327
3379
  const DatePicker = /* @__PURE__ */React__default.forwardRef(DatePickerComponent);
3328
3380
 
3329
- var css$N = {"date-input":"Qmi952","dateInput":"Qmi952","root":"c8Uueg","separator":"wOOKpz"};
3381
+ var css$N = {"date-input":"OIJFeD","dateInput":"OIJFeD","root":"Op2H4m","separator":"DEcGdd"};
3330
3382
 
3331
3383
  const RangeDatePickerInput = /* @__PURE__ */forwardRef(({ isDisabled, isInvalid, isReadonly, size, disableClear, rawProps, value, inFocus, format, onValueChange, onFocusInput, onBlurInput, onClick, getPlaceholder, filter, onKeyDown, preventEmptyFromDate, preventEmptyToDate, id, cx: classes, }, ref) => {
3332
3384
  const [inputValue, setInputValue] = useState(toCustomDateRangeFormat(value, format));
@@ -3388,16 +3440,18 @@ const RangeDatePickerInput = /* @__PURE__ */forwardRef(({ isDisabled, isInvalid,
3388
3440
  };
3389
3441
  onValueChange(newValue);
3390
3442
  };
3391
- const clearAllowed = !disableClear && !(preventEmptyFromDate && preventEmptyToDate) && inputValue.from && inputValue.to;
3443
+ const clearAllowed = !disableClear && !isReadonly && !isDisabled
3444
+ && !(preventEmptyFromDate && preventEmptyToDate)
3445
+ && ((value.from && !preventEmptyFromDate) || (value.to && !preventEmptyToDate));
3392
3446
  return (
3393
3447
  // eslint-disable-next-line jsx-a11y/no-static-element-interactions
3394
3448
  React__default.createElement("div", { ref: ref, className: cx$1(`uui-size-${size || settings.rangeDatePicker.sizes.default}`, 'uui-range-date-picker', classes, css$N.root, isDisabled && uuiMod.disabled, isReadonly && uuiMod.readonly, isInvalid && uuiMod.invalid, inFocus && uuiMod.focus), onKeyDown: onKeyDown },
3395
3449
  React__default.createElement(TextInput, { icon: settings.rangeDatePicker.icons.input.calendarIcon, cx: cx$1(css$N.dateInput, inFocus === 'from' && uuiMod.focus), size: size || settings.rangeDatePicker.sizes.default, placeholder: getPlaceholder ? getPlaceholder('from') : i18n.rangeDatePicker.pickerPlaceholderFrom, value: inputValue.from || undefined, onValueChange: (v) => onInputChange(v || '', 'from'), onFocus: (event) => handleFocus(event, 'from'), onBlur: (event) => handleBlur(event, 'from'), isInvalid: isInvalid, isDisabled: isDisabled, isReadonly: isReadonly, isDropdown: false, rawProps: rawProps?.from, onClick: onClick, onKeyDown: onInputKeyDown, id: id }),
3396
3450
  React__default.createElement("div", { className: css$N.separator }),
3397
- React__default.createElement(TextInput, { cx: cx$1(css$N.dateInput, inFocus === 'to' && uuiMod.focus), placeholder: getPlaceholder ? getPlaceholder('to') : i18n.rangeDatePicker.pickerPlaceholderTo, size: size || settings.rangeDatePicker.sizes.default, value: inputValue.to || undefined, onCancel: clearAllowed ? onClear : undefined, onValueChange: (v) => onInputChange(v || '', 'to'), onFocus: (e) => handleFocus(e, 'to'), onBlur: (e) => handleBlur(e, 'to'), isInvalid: isInvalid, isDisabled: isDisabled, isReadonly: isReadonly, isDropdown: false, rawProps: rawProps?.to, onClick: onClick, onKeyDown: onInputKeyDown })));
3451
+ React__default.createElement(TextInput, { cx: cx$1(css$N.dateInput, inFocus === 'to' && uuiMod.focus), placeholder: getPlaceholder ? getPlaceholder('to') : i18n.rangeDatePicker.pickerPlaceholderTo, size: size || settings.rangeDatePicker.sizes.default, value: inputValue.to || undefined, icon: clearAllowed && ForwardRef$Q, iconPosition: "right", iconLabel: "Clear selected date range", onIconClick: onClear, onValueChange: (v) => onInputChange(v || '', 'to'), onFocus: (e) => handleFocus(e, 'to'), onBlur: (e) => handleBlur(e, 'to'), isInvalid: isInvalid, isDisabled: isDisabled, isReadonly: isReadonly, isDropdown: false, rawProps: rawProps?.to, onClick: onClick, onKeyDown: onInputKeyDown })));
3398
3452
  });
3399
3453
 
3400
- var css$M = {"root":"uIPHQO"};
3454
+ var css$M = {"root":"J7Mfcq"};
3401
3455
 
3402
3456
  const uuiPresets = {
3403
3457
  container: 'uui-presets-container',
@@ -3417,7 +3471,7 @@ function CalendarPresets(props) {
3417
3471
  getPresets(props.presets).map((item) => (React.createElement(LinkButton, { key: item.key, caption: item.name, onClick: () => props.onPresetSet(item), size: settings.rangeDatePicker.sizes.preset })))));
3418
3472
  }
3419
3473
 
3420
- var css$L = {"root":"oAaYcl","container":"mktP22","day-selection":"vlDlCk","daySelection":"vlDlCk","from-picker":"TkrR7k","fromPicker":"TkrR7k","to-picker":"m7Wf5o","toPicker":"m7Wf5o","bodes-wrapper":"j7PcOy","bodesWrapper":"j7PcOy","blocker":"RD1Woy"};
3474
+ var css$L = {"root":"vt9wZ3","container":"kbNPzB","day-selection":"Zpoq55","daySelection":"Zpoq55","from-picker":"zGz-f8","fromPicker":"zGz-f8","to-picker":"YhfqIU","toPicker":"YhfqIU","bodes-wrapper":"w0uGnM","bodesWrapper":"w0uGnM","blocker":"_7FlL0A"};
3421
3475
 
3422
3476
  const uuiRangeDatePickerBody = {
3423
3477
  inRange: 'uui-range-datepicker-in-range',
@@ -3493,13 +3547,13 @@ const rangeDatePickerPresets = {
3493
3547
  };
3494
3548
  const RangeDatePickerBody = /* @__PURE__ */forwardRef(RangeDatePickerBodyComp);
3495
3549
  function RangeDatePickerBodyComp(props, ref) {
3496
- const { value: _value, filter } = props;
3550
+ const { value: _value, filter, initialViewMonth } = props;
3497
3551
  const { selectedDate: _selectedDate, inFocus, } = _value;
3498
3552
  const selectedDate = _selectedDate || defaultRangeValue; // also handles null in comparison to default value
3499
3553
  const [view, setView] = useState('DAY_SELECTION');
3500
3554
  const [disabledPanel, setDisabledPanel] = useState(null);
3501
3555
  const [month, setMonth] = useState(() => {
3502
- return getDisplayedMonth(selectedDate, inFocus);
3556
+ return getDisplayedMonth(selectedDate, inFocus, initialViewMonth);
3503
3557
  });
3504
3558
  const getRange = (newValue) => {
3505
3559
  if (!filter || filter(uuiDayjs.dayjs(newValue))) {
@@ -3563,7 +3617,7 @@ function RangeDatePickerBodyComp(props, ref) {
3563
3617
  }, presets: presets })));
3564
3618
  };
3565
3619
  useLayoutEffectSafeForSsr(() => {
3566
- const monthToSet = getDisplayedMonth(selectedDate, inFocus);
3620
+ const monthToSet = getDisplayedMonth(selectedDate, inFocus, initialViewMonth);
3567
3621
  // To avoid re-rendering the body if the current month being displayed is equal to or greater than 1
3568
3622
  const shouldNotIgnoreUpdate = !(uuiDayjs.dayjs(month).isSame(monthToSet, 'month') || uuiDayjs.dayjs(month).add(1, 'month').isSame(monthToSet, 'month'));
3569
3623
  if (shouldNotIgnoreUpdate) {
@@ -3619,7 +3673,7 @@ const getDayState = (day, selectedDate) => {
3619
3673
  };
3620
3674
  };
3621
3675
 
3622
- var css$K = {"dropdown-container":"ulbVn2","dropdownContainer":"ulbVn2"};
3676
+ var css$K = {"dropdown-container":"_-1JpMi","dropdownContainer":"_-1JpMi"};
3623
3677
 
3624
3678
  function RangeDatePickerComponent(props, ref) {
3625
3679
  const { value: _value, format = defaultFormat, size = settings.rangeDatePicker.sizes.default } = props;
@@ -3670,7 +3724,7 @@ function RangeDatePickerComponent(props, ref) {
3670
3724
  inFocus,
3671
3725
  }, onValueChange: onBodyValueChange, filter: props.filter, presets: props.presets, renderDay: props.renderDay, renderFooter: () => {
3672
3726
  return props.renderFooter?.(value);
3673
- }, isHoliday: props.isHoliday, rawProps: props.rawProps?.body, preventEmptyToDate: props.preventEmptyToDate, preventEmptyFromDate: props.preventEmptyFromDate }))));
3727
+ }, isHoliday: props.isHoliday, rawProps: props.rawProps?.body, preventEmptyToDate: props.preventEmptyToDate, preventEmptyFromDate: props.preventEmptyFromDate, initialViewMonth: props.initialViewMonth }))));
3674
3728
  };
3675
3729
  const handleEscape = (e) => {
3676
3730
  if (e.key === 'Escape' && isOpen) {
@@ -3687,7 +3741,7 @@ function RangeDatePickerComponent(props, ref) {
3687
3741
  }
3688
3742
  const RangeDatePicker = /* @__PURE__ */React__default.forwardRef(RangeDatePickerComponent);
3689
3743
 
3690
- var css$J = {"root":"JT1DSu","blocker":"DKmFCr","marker":"wSNZAd","top":"JqFkPc","bottom":"ctfwAV","left":"dgyY-G","right":"-HZAP5","inside":"mQ02Ti"};
3744
+ var css$J = {"root":"cs8XxT","blocker":"DDQc6v","marker":"En16TJ","top":"bj63Pc","bottom":"_7E6u5b","left":"uGe-JQ","right":"Ly4mkl","inside":"VGx-mW"};
3691
3745
 
3692
3746
  function DropMarker(props) {
3693
3747
  return props.isDndInProgress
@@ -3702,9 +3756,9 @@ function DropMarker(props) {
3702
3756
  : null;
3703
3757
  }
3704
3758
 
3705
- var css$I = {"search-wrapper":"_3uPUth","searchWrapper":"_3uPUth","no-data":"-nyrgX","noData":"-nyrgX"};
3759
+ var css$I = {"search-wrapper":"WCbplD","searchWrapper":"WCbplD","no-data":"_2v6-B8","noData":"_2v6-B8"};
3706
3760
 
3707
- var css$H = {"picker-row":"n86yn9","pickerRow":"n86yn9","align-widgets-top":"OzIkUE","alignWidgetsTop":"OzIkUE","row-content":"_1u6ksV","rowContent":"_1u6ksV","align-widgets-center":"Rsq5fu","alignWidgetsCenter":"Rsq5fu","icon-container":"-KtaW1","iconContainer":"-KtaW1","content-wrapper":"W1rQQd","contentWrapper":"W1rQQd","icon-wrapper":"zv-RHL","iconWrapper":"zv-RHL","icon-default":"_3VdvP8","iconDefault":"_3VdvP8","selected-mark":"d13459","selectedMark":"d13459"};
3761
+ var css$H = {"picker-row":"LP3vW0","pickerRow":"LP3vW0","align-widgets-top":"_2Z35Gw","alignWidgetsTop":"_2Z35Gw","row-content":"rByCc0","rowContent":"rByCc0","align-widgets-center":"_9q4-4j","alignWidgetsCenter":"_9q4-4j","icon-container":"sbbFeW","iconContainer":"sbbFeW","content-wrapper":"h4qhD9","contentWrapper":"h4qhD9","icon-wrapper":"qWk7qm","iconWrapper":"qWk7qm","icon-default":"xdKQQX","iconDefault":"xdKQQX","selected-mark":"kVy8Zf","selectedMark":"kVy8Zf"};
3708
3762
 
3709
3763
  const mergeHighlightRanges = (ranges) => {
3710
3764
  const mergedRanges = [];
@@ -3771,7 +3825,7 @@ const getHighlightedSearchMatches = (str, search) => {
3771
3825
  return getDecoratedText(str, ranges);
3772
3826
  };
3773
3827
 
3774
- var css$G = {"root":"M-rUkA","column-gap":"Q-YwVF","columnGap":"Q-YwVF","title":"IwfQ5u","subtitle":"TibkeU","disabled":"XZXvlo","multiline":"ngwx3F"};
3828
+ var css$G = {"root":"p8Fxg-","column-gap":"HCsW7G","columnGap":"HCsW7G","title":"E8JdOe","subtitle":"_7W--fB","disabled":"KXg1id","multiline":"mVYJfb"};
3775
3829
 
3776
3830
  function PickerItem(props) {
3777
3831
  const { highlightSearchMatches = true, size, avatarUrl, isLoading, isDisabled, icon, } = props;
@@ -3804,6 +3858,12 @@ function DataPickerRow(props) {
3804
3858
  rowNode.current?.removeEventListener('mouseenter', handleMouseEnter);
3805
3859
  };
3806
3860
  }, [props.onFocus, handleMouseEnter]);
3861
+ const handleFocus = () => {
3862
+ // If this row gets focus but is not the focused row, make it focused
3863
+ if (!props.isFocused && props.onFocus) {
3864
+ props.onFocus(props.index);
3865
+ }
3866
+ };
3807
3867
  const getSubtitle = ({ path }) => {
3808
3868
  if (!props.dataSourceState?.search)
3809
3869
  return;
@@ -3845,14 +3905,15 @@ function DataPickerRow(props) {
3845
3905
  const clickHandler = props.onClick || props.onSelect || props.onFold || props.onCheck;
3846
3906
  return (
3847
3907
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events
3848
- React.createElement("div", { onClick: clickHandler && ((e) => !isEventTargetInsideClickable(e) && clickHandler(props)), role: "option", "aria-busy": props.isLoading, "aria-posinset": props.index + 1, "aria-checked": props.checkbox?.isVisible ? props.isChecked : null, "aria-selected": props.isSelectable ? props.isSelected : null, ref: rowNode, className: cx$1(css$H.pickerRow, 'uui-picker_input-row', `uui-size-${props.size || settings.pickerInput.sizes.body.row}`, css$H[`align-widgets-${props.alignActions || 'top'}`], clickHandler && props.isFocused && uuiMod.focus, clickHandler && uuiMarkers.clickable, props.cx), style: props.padding && {
3908
+ React.createElement("div", { onClick: clickHandler && ((e) => !isEventTargetInsideClickable(e) && clickHandler(props)), onFocus: handleFocus, role: "option", "aria-busy": props.isLoading, "aria-posinset": props.index + 1, "aria-checked": props.checkbox?.isVisible ? props.isChecked : null, "aria-selected": props.isSelectable ? props.isSelected : null, tabIndex: -1, ref: rowNode, id: props.rowKey, className: cx$1(css$H.pickerRow, 'uui-picker_input-row', `uui-size-${props.size || settings.pickerInput.sizes.body.row}`, css$H[`align-widgets-${props.alignActions || 'top'}`], clickHandler && props.isFocused && uuiMod.focus, clickHandler && uuiMarkers.clickable, props.cx), style: props.padding && {
3849
3909
  '--uui-data_picker-horizontal-padding': `${props.padding}px`,
3850
3910
  }, ...props.rawProps }, renderContent()));
3851
3911
  }
3852
3912
 
3853
- function DataPickerBody({ highlightSearchMatches = true, ...props }) {
3913
+ function DataPickerBody({ highlightSearchMatches = true, autoFocusSearch = true, ...props }) {
3854
3914
  const prevProps = usePrevious(props);
3855
3915
  const showSearch = props.showSearch === 'auto' ? props.totalCount > 10 : Boolean(props.showSearch);
3916
+ const [isKeyboardNavigation, setIsKeyboardNavigation] = React__default.useState(false);
3856
3917
  useEffect(() => {
3857
3918
  if (props.rows.length !== prevProps?.rows.length || (!isEqual(prevProps?.value.checked, props.value.checked) && !props.fixedBodyPosition)) {
3858
3919
  props.scheduleUpdate?.();
@@ -3860,9 +3921,36 @@ function DataPickerBody({ highlightSearchMatches = true, ...props }) {
3860
3921
  }, [props.rows, prevProps, props.value.checked, props.fixedBodyPosition]);
3861
3922
  const searchKeyDown = (e) => {
3862
3923
  props.onKeyDown?.(e);
3863
- if (e.shiftKey && e.key === 'Tab')
3864
- e.preventDefault();
3865
3924
  };
3925
+ const handleVirtualListFocus = (e) => {
3926
+ // Only set keyboard navigation if focus came from keyboard (Tab key)
3927
+ // Check if the focus event was triggered by keyboard navigation
3928
+ const isKeyboardFocus = e.target === e.currentTarget;
3929
+ if (isKeyboardFocus) {
3930
+ setIsKeyboardNavigation(true);
3931
+ }
3932
+ };
3933
+ const handleVirtualListBlur = (e) => {
3934
+ // Check if focus is moving outside the virtual list
3935
+ const relatedTarget = e.relatedTarget;
3936
+ const currentTarget = e.currentTarget;
3937
+ if (relatedTarget && !currentTarget.contains(relatedTarget)) {
3938
+ // Focus is leaving the virtual list, hide visual focus but keep focusedIndex for navigation "by circle"
3939
+ setIsKeyboardNavigation(false);
3940
+ }
3941
+ };
3942
+ const { focusedIndex, topIndex, } = props.value;
3943
+ const focusedRowId = useMemo(() => {
3944
+ // No need to make unnecessary calculations.
3945
+ if (!props.showSearch) {
3946
+ return '';
3947
+ }
3948
+ const focusedRow = props.rows.at(focusedIndex - topIndex);
3949
+ if (!focusedRow) {
3950
+ return '';
3951
+ }
3952
+ return focusedRow.rowKey;
3953
+ }, [props.showSearch, focusedIndex, topIndex]);
3866
3954
  const renderEmpty = () => {
3867
3955
  const search = props.value.search;
3868
3956
  if (props.renderEmpty) {
@@ -3897,25 +3985,37 @@ function DataPickerBody({ highlightSearchMatches = true, ...props }) {
3897
3985
  return props.size || settings.pickerInput.sizes.body.row;
3898
3986
  };
3899
3987
  const renderRow = (row, dsState) => {
3900
- const pickerRowProps = { ...row, getName: props.getName };
3988
+ const pickerRowProps = {
3989
+ ...row,
3990
+ getName: props.getName,
3991
+ cx: cx$1(row.cx, isKeyboardNavigation && row.isFocused && 'uui-focus', isKeyboardNavigation && row.isFocused && 'uui-keyboard-focus'),
3992
+ };
3901
3993
  return props.renderRow ? (props.renderRow(pickerRowProps, dsState)) : (React__default.createElement(DataPickerRow, { ...pickerRowProps, key: row.rowKey, size: getRowSize(), flattenSearchResults: props.flattenSearchResults, highlightSearchMatches: highlightSearchMatches, dataSourceState: dsState, getName: props.getName }));
3902
3994
  };
3995
+ const renderSearchInput = () => {
3996
+ return (React__default.createElement(SearchInput, { placeholder: i18n.dataPickerBody.searchPlaceholder, value: props.value.search, onValueChange: (newVal) => props.onValueChange({ ...props.value, search: newVal }), onKeyDown: searchKeyDown, size: searchSize, debounceDelay: props.searchDebounceDelay, rawProps: {
3997
+ dir: 'auto',
3998
+ 'aria-activedescendant': focusedRowId,
3999
+ } }));
4000
+ };
3903
4001
  const searchSize = isMobile()
3904
4002
  ? settings.pickerInput.sizes.body.mobileSearchInput
3905
4003
  : settings.pickerInput.sizes.body.getSearchSize({ pickerSize: props.searchSize });
3906
- const renderedDataRows = useMemo(() => props.rows.map((row) => renderRow(row, props.value)), [props.rows, props.value]);
4004
+ const renderedDataRows = useMemo(() => props.rows.map((row) => renderRow(row, props.value)), [props.rows, props.value, isKeyboardNavigation]);
3907
4005
  return (React__default.createElement(React__default.Fragment, null,
3908
4006
  showSearch && (React__default.createElement("div", { key: "search", className: cx$1(css$I.searchWrapper, 'uui-picker_input-body-search') },
3909
- React__default.createElement(FlexCell$1, { grow: 1 },
3910
- React__default.createElement(MoveFocusInside, null,
3911
- React__default.createElement(SearchInput, { placeholder: i18n.dataPickerBody.searchPlaceholder, value: props.value.search, onValueChange: (newVal) => props.onValueChange({ ...props.value, search: newVal }), onKeyDown: searchKeyDown, size: searchSize, debounceDelay: props.searchDebounceDelay, rawProps: { dir: 'auto' } }))))),
4007
+ React__default.createElement(FlexCell$1, { grow: 1 }, autoFocusSearch ? React__default.createElement(MoveFocusInside, null, renderSearchInput()) : renderSearchInput()))),
3912
4008
  React__default.createElement(FlexRow, { key: "body", cx: cx$1('uui-picker_input-body'), rawProps: { style: { maxHeight: props.maxHeight, maxWidth: props.maxWidth }, tabIndex: -1 } }, props.rows.length === 0 && props.value.topIndex === 0
3913
4009
  // We need to also ensure that topIndex === 0, because we can have state were there is no rows but topIndex > 0, in case when we scrolled lover than we have rows
3914
4010
  // we fix this state on next render and shouldn't show empty state.
3915
- ? renderEmpty() : (React__default.createElement(VirtualList, { value: props.value, onValueChange: props.onValueChange, rows: renderedDataRows, rawProps: {
4011
+ ? renderEmpty() : (React__default.createElement(VirtualList, { value: props.value, onValueChange: props.onValueChange, rows: renderedDataRows, role: "listbox", rawProps: {
3916
4012
  'aria-multiselectable': props.selectionMode === 'multi' ? true : null,
3917
4013
  'aria-orientation': 'vertical',
3918
- tabIndex: -1,
4014
+ tabIndex: 0,
4015
+ onKeyDown: props.onKeyDown,
4016
+ onFocus: handleVirtualListFocus,
4017
+ onBlur: handleVirtualListBlur,
4018
+ // onMouseMove: handleVirtualListMouseMove,
3919
4019
  ...props.rawProps,
3920
4020
  }, rowsCount: props.rowsCount, isLoading: props.isReloading, renderBlocker: settings.pickerInput.renderBlocker, overflowTopEffect: showSearch ? 'line' : 'none', overflowBottomEffect: "line" })))));
3921
4021
  }
@@ -3944,7 +4044,7 @@ function DataPickerFooterImpl(props) {
3944
4044
  }
3945
4045
  const DataPickerFooter = /* @__PURE__ */React__default.memo(DataPickerFooterImpl);
3946
4046
 
3947
- var css$F = {"header":"B2qlMl","title":"MuoHEK","close":"ggO-wF"};
4047
+ var css$F = {"header":"_3eZ5QV","title":"_36bPib","close":"EJpfQu"};
3948
4048
 
3949
4049
  const DataPickerMobileHeaderImpl = (props) => {
3950
4050
  const title = props.title && typeof props.title === 'string' ? props.title.charAt(0).toUpperCase() + props.title.slice(1) : '';
@@ -3954,7 +4054,7 @@ const DataPickerMobileHeaderImpl = (props) => {
3954
4054
  };
3955
4055
  const DataPickerMobileHeader = /* @__PURE__ */React__default.memo(DataPickerMobileHeaderImpl);
3956
4056
 
3957
- var css$E = {"done":"_1ZKYor","container":"_9uBP7f"};
4057
+ var css$E = {"done":"_5EOY5k","container":"EPgdwK"};
3958
4058
 
3959
4059
  const PickerBodyMobileView = (props) => {
3960
4060
  const isMobileView = isMobile();
@@ -3966,7 +4066,7 @@ const PickerBodyMobileView = (props) => {
3966
4066
  isMobileView && (React__default.createElement(LinkButton, { caption: i18n.pickerInput.doneButton, onClick: () => props.onClose?.(), cx: css$E.done, size: settings.pickerInput.sizes.body.mobileFooterLinkButton }))));
3967
4067
  };
3968
4068
 
3969
- var css$D = {"sub-header-wrapper":"VsqsbP","subHeaderWrapper":"VsqsbP","switch":"OtYuI-","no-found-modal-container":"lYAdNj","noFoundModalContainer":"lYAdNj","no-found-modal-container-icon":"_5MPGsr","noFoundModalContainerIcon":"_5MPGsr","no-found-modal-container-text":"_53bfMM","noFoundModalContainerText":"_53bfMM","body":"h-Vf7M"};
4069
+ var css$D = {"sub-header-wrapper":"HEVmrY","subHeaderWrapper":"HEVmrY","switch":"BLo6SS","search":"-Y0Smk","no-found-modal-container":"k0Ww8A","noFoundModalContainer":"k0Ww8A","no-found-modal-container-icon":"Ww665W","noFoundModalContainerIcon":"Ww665W","no-found-modal-container-text":"TmM-Ur","noFoundModalContainerText":"TmM-Ur","body":"SDIV2k"};
3970
4070
 
3971
4071
  function PickerModal(props) {
3972
4072
  const { view, selection, dataSourceStateLens, dataSourceState, getName, clearSelection, getRows, getListProps, getFooterProps, isSingleSelect, handleDataSourceValueChange, } = usePickerModal(props);
@@ -3994,25 +4094,37 @@ function PickerModal(props) {
3994
4094
  React__default.createElement(Text, { cx: css$D.noFoundModalContainerText, fontSize: "12", lineHeight: "18", color: "primary" }, i18n.dataPickerBody.noRecordsSubTitle)));
3995
4095
  };
3996
4096
  const dataRows = getRows();
4097
+ const { focusedIndex, topIndex, } = dataSourceState;
4098
+ const focusedRowId = useMemo(() => {
4099
+ const focusedRow = dataRows.at(focusedIndex - topIndex);
4100
+ if (!focusedRow) {
4101
+ return '';
4102
+ }
4103
+ return focusedRow.rowKey;
4104
+ }, [focusedIndex, topIndex]);
3997
4105
  return (React__default.createElement(ModalBlocker, { ...props },
3998
4106
  React__default.createElement(ModalWindow, { width: 600, height: 700, cx: css$D.body },
3999
4107
  React__default.createElement(ModalHeader, { title: props.caption || i18n.pickerModal.headerTitle, onClose: () => props.abort() }),
4000
4108
  React__default.createElement(FlexCell, { cx: css$D.subHeaderWrapper },
4001
4109
  React__default.createElement(FlexRow, { vPadding: "24" },
4002
- React__default.createElement(SearchInput, { ...dataSourceStateLens.prop('search').toProps(), onKeyDown: (e) => handleDataSourceKeyboard({
4003
- value: dataSourceState,
4004
- onValueChange: handleDataSourceValueChange,
4005
- listView: view,
4006
- rows: dataRows,
4007
- searchPosition: 'body',
4008
- }, e), autoFocus: true, placeholder: i18n.pickerModal.searchPlaceholder, rawProps: { dir: 'auto' } })),
4110
+ React__default.createElement(MoveFocusInside, { className: css$D.search },
4111
+ React__default.createElement(SearchInput, { ...dataSourceStateLens.prop('search').toProps(), onKeyDown: (e) => handleDataSourceKeyboard({
4112
+ value: dataSourceState,
4113
+ onValueChange: handleDataSourceValueChange,
4114
+ listView: view,
4115
+ rows: dataRows,
4116
+ searchPosition: 'body',
4117
+ }, e), placeholder: i18n.pickerModal.searchPlaceholder, rawProps: {
4118
+ dir: 'auto',
4119
+ 'aria-activedescendant': focusedRowId,
4120
+ } }))),
4009
4121
  !isSingleSelect() && (React__default.createElement(Switch, { cx: css$D.switch, size: settings.pickerInput.sizes.body.footerSwitchMap[settings.pickerInput.sizes.body.row], ...getFooterProps().showSelected, isDisabled: isSearching || view.getSelectedRowsCount() < 1, label: "Show only selected" })),
4010
4122
  props.renderFilter && React__default.createElement(FlexCell, { grow: 2 }, props.renderFilter(dataSourceStateLens.prop('filter').toProps()))),
4011
4123
  React__default.createElement(DataPickerBody, { ...getListProps(), value: dataSourceState, onValueChange: handleDataSourceValueChange, showSearch: false, getName: getName, rows: dataRows, renderRow: renderRow, renderEmpty: renderNotFound, size: settings.pickerInput.sizes.body.row }),
4012
4124
  React__default.createElement(ModalFooter, null, props.renderFooter ? props.renderFooter(getFooterProps()) : renderFooter()))));
4013
4125
  }
4014
4126
 
4015
- var css$C = {"tooltip":"g4fIzj"};
4127
+ var css$C = {"tooltip":"nRtUOE","noShrink":"MFV3Ci"};
4016
4128
 
4017
4129
  const PickerTogglerTag = /* @__PURE__ */React.forwardRef((props, ref) => {
4018
4130
  const tagProps = {
@@ -4024,14 +4136,14 @@ const PickerTogglerTag = /* @__PURE__ */React.forwardRef((props, ref) => {
4024
4136
  if (props.isCollapsed) {
4025
4137
  const collapsedRows = props.collapsedRows.map((row) => props.getName(row.value)).join(', ');
4026
4138
  return (React.createElement(Tooltip, { key: "selected", content: collapsedRows, closeDelay: 150, closeOnMouseLeave: "boundary", cx: css$C.tooltip },
4027
- React.createElement(Tag, { ref: ref, rawProps: { role: 'option' }, ...tagProps })));
4139
+ React.createElement(Tag, { ref: ref, rawProps: { role: 'option' }, ...tagProps, cx: css$C.noShrink })));
4028
4140
  }
4029
4141
  else {
4030
4142
  return React.createElement(Tag, { ref: ref, rawProps: { role: 'option' }, ...tagProps });
4031
4143
  }
4032
4144
  });
4033
4145
 
4034
- var css$B = {"root":"JAVuYn"};
4146
+ var css$B = {"root":"-GtIUg"};
4035
4147
 
4036
4148
  const defaultMode = EditMode.FORM;
4037
4149
  function applyPickerTogglerMods(mods) {
@@ -4101,7 +4213,7 @@ function PickerInputComponent(props, ref) {
4101
4213
  const bodyHeight = isMobile() ? document.documentElement.clientHeight : props.dropdownHeight || settings.pickerInput.sizes.body.maxHeight;
4102
4214
  const minBodyWidth = props.minBodyWidth || settings.pickerInput.sizes.body.minWidth;
4103
4215
  const onKeyDown = (e) => handlePickerInputKeyboard(rows, e);
4104
- return (React__default.createElement(PickerBodyMobileView, { title: props.entityName, onClose: () => toggleBodyOpening(false), cx: [props.bodyCx, 'uui-picker_input-body-wrapper'], onKeyDown: onKeyDown, width: dropdownProps.togglerWidth > minBodyWidth ? dropdownProps.togglerWidth : minBodyWidth, focusLock: getSearchPosition() === 'body' },
4216
+ return (React__default.createElement(PickerBodyMobileView, { title: props.entityName, onClose: () => toggleBodyOpening(false), cx: [props.bodyCx, 'uui-picker_input-body-wrapper'], width: dropdownProps.togglerWidth > minBodyWidth ? dropdownProps.togglerWidth : minBodyWidth, focusLock: true, shards: getSearchPosition() === 'input' ? [togglerRef] : undefined },
4105
4217
  React__default.createElement(DataPickerBody, { ...dropdownProps, ...getListProps(), showSearch: getSearchPosition() === 'body', getName: getName, value: dataSourceState, onValueChange: handleDataSourceValueChange, rows: rows, maxHeight: bodyHeight, searchSize: props.size, selectionMode: props.selectionMode, renderNotFound: props.renderNotFound, renderEmpty: props.renderEmpty, renderRow: props.renderRow, onKeyDown: onKeyDown, minCharsToSearch: props.minCharsToSearch, fixedBodyPosition: props.fixedBodyPosition, searchDebounceDelay: props.searchDebounceDelay, rawProps: props.rawProps?.body, highlightSearchMatches: props.highlightSearchMatches, flattenSearchResults: view.getConfig().flattenSearchResults }),
4106
4218
  renderFooter()));
4107
4219
  };
@@ -4109,11 +4221,11 @@ function PickerInputComponent(props, ref) {
4109
4221
  return (React__default.createElement(Dropdown, { renderTarget: (dropdownProps) => {
4110
4222
  const targetProps = getTogglerProps();
4111
4223
  return renderTarget({ ...dropdownProps, ...targetProps, renderItem });
4112
- }, renderBody: (bodyProps) => renderBody(bodyProps), value: shouldShowBody(), onValueChange: !props.isDisabled && toggleBodyOpening, placement: props.dropdownPlacement, middleware: middleware, closeBodyOnTogglerHidden: !isMobile(), portalTarget: props.portalTarget, ref: togglerRef }));
4224
+ }, renderBody: (bodyProps) => renderBody(bodyProps), value: shouldShowBody(), onValueChange: !props.isDisabled && toggleBodyOpening, placement: props.dropdownPlacement, middleware: middleware, closeBodyOnTogglerHidden: isMobile() ? false : props.closeBodyOnTogglerHidden, portalTarget: props.portalTarget, ref: togglerRef }));
4113
4225
  }
4114
4226
  const PickerInput = /* @__PURE__ */React__default.forwardRef(PickerInputComponent);
4115
4227
 
4116
- var css$A = {"row":"zugrfa"};
4228
+ var css$A = {"row":"_8Xp1Y5"};
4117
4229
 
4118
4230
  function PickerListRow(props) {
4119
4231
  let label;
@@ -4133,7 +4245,7 @@ function PickerListRow(props) {
4133
4245
  return (React__default.createElement("div", { role: "option", "aria-selected": props.isSelectable ? props.isSelected : undefined, "aria-busy": props.isLoading, "aria-posinset": props.index + 1, ...(props.checkbox?.isVisible && { 'aria-checked': props.isChecked }), className: css$A.row }, component));
4134
4246
  }
4135
4247
 
4136
- var css$z = {"root":"yW1FgL"};
4248
+ var css$z = {"root":"rvpFK2"};
4137
4249
 
4138
4250
  function PickerList(props) {
4139
4251
  const { context, view, onlySelectedView, getName, getEntityName, appendLastSelected, getSelectedIdsArray, buildRowsList, getMaxDefaultItems, getModalTogglerCaption, } = usePickerList(props);
@@ -4168,12 +4280,12 @@ function PickerList(props) {
4168
4280
  }, selectedRows)));
4169
4281
  }
4170
4282
 
4171
- var css$y = {"root":"AV-t05","wrapper":"LVQzVv","align-widgets-top":"_76hfvD","alignWidgetsTop":"_76hfvD","align-widgets-center":"HqHk95","alignWidgetsCenter":"HqHk95"};
4283
+ var css$y = {"root":"OfWfys","wrapper":"r2o6VS","align-widgets-top":"_6jB-wO","alignWidgetsTop":"_6jB-wO","align-widgets-center":"ZK0GEm","alignWidgetsCenter":"ZK0GEm"};
4172
4284
 
4173
4285
  function DataTableCell(initialProps) {
4174
4286
  const props = { ...initialProps };
4175
4287
  if (props.isFirstColumn) {
4176
- props.addons = React.createElement(DataRowAddons, { size: props.size, ...props });
4288
+ props.addons = React.createElement(DataRowAddons, { size: props.size, ...props, isFoldingFocusable: true });
4177
4289
  }
4178
4290
  props.renderPlaceholder = props.renderPlaceholder
4179
4291
  || (() => settings.dataTable.renderPlaceholder({ rowSize: props.size }));
@@ -4218,7 +4330,7 @@ function DataTableCell(initialProps) {
4218
4330
  return React.createElement(DataTableCell$1, { ...props });
4219
4331
  }
4220
4332
 
4221
- var css$x = {"root":"SWO5JN"};
4333
+ var css$x = {"root":"hM9gEp"};
4222
4334
 
4223
4335
  // Here we define a single instance of the renderCell function to make DataTableRow#shouldComponentUpdate work.
4224
4336
  // As we need our mods to style the cell properly, we extract them from DataTableCellProps.rowProps, which is a hack, but it's reliable enough.
@@ -4234,7 +4346,7 @@ const DataTableRow = /* @__PURE__ */withMods(DataTableRow$1, ({ borderBottom = t
4234
4346
  ];
4235
4347
  }, () => propsMods);
4236
4348
 
4237
- var css$w = {"sorting-panel-container":"fHU-1Q","sortingPanelContainer":"fHU-1Q"};
4349
+ var css$w = {"sorting-panel-container":"yjYRDQ","sortingPanelContainer":"yjYRDQ"};
4238
4350
 
4239
4351
  const SortingPanelImpl = ({ sortDirection, onSort }) => {
4240
4352
  const sortAsc = useCallback(() => onSort(sortDirection === 'asc' ? undefined : 'asc'), [onSort]);
@@ -4254,7 +4366,7 @@ const ColumnHeaderDropdownImpl = (props) => {
4254
4366
  };
4255
4367
  const ColumnHeaderDropdown = /* @__PURE__ */React__default.memo(ColumnHeaderDropdownImpl);
4256
4368
 
4257
- var css$v = {"root":"ozuVAj","caption-wrapper":"vHT4Ig","captionWrapper":"vHT4Ig","sort-icon":"HORUZ3","sortIcon":"HORUZ3","dropdown-icon":"_1L1tLS","dropdownIcon":"_1L1tLS","infoIcon":"RHHu4N","align-right":"Z4Hc2q","alignRight":"Z4Hc2q","align-center":"opPQm5","alignCenter":"opPQm5","caption":"gbGK5c","truncate":"G5i6Jr","upper-case":"_8GqCQM","upperCase":"_8GqCQM","checkbox":"Nr-bJz","icon":"_2-FWaa","fold-all-icon":"JEa5eY","foldAllIcon":"JEa5eY","cell-tooltip":"zgRKF9","cellTooltip":"zgRKF9","resizing-marker":"SMJV-f","resizingMarker":"SMJV-f","pinned-right":"ouJCWX","pinnedRight":"ouJCWX","draggable":"HN4cjV","ghost":"oo-xLa","is-dragged-out":"v5Ig38","isDraggedOut":"v5Ig38","dnd-marker-left":"BjibIG","dndMarkerLeft":"BjibIG","dnd-marker-right":"_1v1yKg","dndMarkerRight":"_1v1yKg","cell-tooltip-wrapper":"fC58tu","cellTooltipWrapper":"fC58tu","cell-tooltip-text":"eMASvm","cellTooltipText":"eMASvm","tooltip-caption":"geXjGG","tooltipCaption":"geXjGG","tooltip-info":"PFlVUq","tooltipInfo":"PFlVUq"};
4369
+ var css$v = {"root":"-QfBVy","caption-wrapper":"_1ZPY43","captionWrapper":"_1ZPY43","sort-icon":"FgbtGF","sortIcon":"FgbtGF","dropdown-icon":"_2eOwkr","dropdownIcon":"_2eOwkr","infoIcon":"bxvSbO","sortInActive":"rTw7vn","align-right":"rHjjR7","alignRight":"rHjjR7","align-center":"Q8PFNn","alignCenter":"Q8PFNn","caption":"IjqNvZ","truncate":"_5MHCi6","upper-case":"Hq0CxQ","upperCase":"Hq0CxQ","checkbox":"gBWF1u","icon":"wSXWSE","fold-all-icon":"klK4fD","foldAllIcon":"klK4fD","cell-tooltip":"EnHlC4","cellTooltip":"EnHlC4","resizing-marker":"O9Jjyv","resizingMarker":"O9Jjyv","pinned-right":"EHkt2d","pinnedRight":"EHkt2d","draggable":"yoGCFu","ghost":"nZ1wcj","is-dragged-out":"d5vJzx","isDraggedOut":"d5vJzx","dnd-marker-left":"y7kzBF","dndMarkerLeft":"y7kzBF","dnd-marker-right":"riHXIT","dndMarkerRight":"riHXIT","cell-tooltip-wrapper":"ZjvMpE","cellTooltipWrapper":"ZjvMpE","cell-tooltip-text":"UQmxm7","cellTooltipText":"UQmxm7","tooltip-caption":"QZ0ng6","tooltipCaption":"QZ0ng6","tooltip-info":"EkelTT","tooltipInfo":"EkelTT"};
4258
4370
 
4259
4371
  class DataTableHeaderCell extends React.Component {
4260
4372
  constructor() {
@@ -4265,7 +4377,7 @@ class DataTableHeaderCell extends React.Component {
4265
4377
  this.getTooltipContent = (column) => (React.createElement("div", { className: cx$1(css$v.cellTooltipWrapper, uuiDataTableHeaderCell.uuiTableHeaderCaptionTooltip) },
4266
4378
  React.createElement(Text, { cx: [css$v.cellTooltipText, css$v.tooltipCaption] }, column.caption),
4267
4379
  column.info && (React.createElement(Text, { cx: [css$v.cellTooltipText, css$v.tooltipInfo] }, column.info))));
4268
- this.getColumnCaption = () => {
4380
+ this.getColumnCaption = (props, dropdownProps) => {
4269
4381
  const renderTooltip = this.props.column.renderTooltip || this.getTooltipContent;
4270
4382
  const captionCx = cx$1([
4271
4383
  css$v.caption,
@@ -4274,12 +4386,24 @@ class DataTableHeaderCell extends React.Component {
4274
4386
  'uui-typography-inline',
4275
4387
  this.props.size >= '48' && css$v.truncate,
4276
4388
  ]);
4389
+ const handleFilterOpen = (e) => {
4390
+ if (e.key === 'Enter' || e.key === ' ') {
4391
+ dropdownProps.onClick(e);
4392
+ e.preventDefault();
4393
+ }
4394
+ };
4395
+ const handleSort = (e) => {
4396
+ if (e.key === 'Enter' || e.key === ' ') {
4397
+ props.toggleSort(e);
4398
+ e.preventDefault();
4399
+ }
4400
+ };
4277
4401
  return (React.createElement("div", { className: cx$1(css$v.captionWrapper, css$v['align-' + this.props.column.textAlign], uuiDataTableHeaderCell.uuiTableHeaderCaptionWrapper) },
4278
- React.createElement(Tooltip, { placement: "top", color: "inverted", content: renderTooltip(this.props.column), cx: [css$v.cellTooltip, 'uui-dt-header-tooltip'], openDelay: 600 },
4402
+ React.createElement(Tooltip, { placement: "top", color: "inverted", content: renderTooltip(this.props.column), cx: [css$v.cellTooltip, 'uui-dt-header-tooltip'], openDelay: 600, closeOnMouseLeave: "boundary" },
4279
4403
  React.createElement("div", { key: "text", className: captionCx }, this.props.column.caption)),
4280
- this.props.column.isSortable && (!this.props.column.renderFilter || this.props.sortDirection) && (React.createElement(IconButton, { key: "sort", cx: cx$1(css$v.icon, css$v.sortIcon, this.props.sortDirection && css$v.sortIconActive, uuiDataTableHeaderCell.uuiTableHeaderSortIcon), color: this.props.sortDirection ? 'neutral' : 'secondary', icon: settings.dataTable.icons.header[this.props.sortDirection === 'desc' ? 'descSortIcon' : this.props.sortDirection === 'asc' ? 'ascSortIcon' : 'defaultSortIcon'] })),
4404
+ this.props.column.isSortable && (!this.props.column.renderFilter || this.props.sortDirection) && (React.createElement(ControlIcon, { key: "sort", cx: cx$1(css$v.icon, css$v.sortIcon, !this.props.sortDirection && css$v.sortInActive, uuiDataTableHeaderCell.uuiTableHeaderSortIcon), icon: settings.dataTable.icons.header[this.props.sortDirection === 'desc' ? 'descSortIcon' : this.props.sortDirection === 'asc' ? 'ascSortIcon' : 'defaultSortIcon'], onKeyDown: !this.props.column.renderFilter ? handleSort : undefined })),
4281
4405
  this.props.isFilterActive && (React.createElement(IconButton, { key: "filter", cx: cx$1(css$v.icon, !this.props.sortDirection && css$v.filterIcon, uuiDataTableHeaderCell.uuiTableHeaderFilterIcon), color: "neutral", icon: settings.dataTable.icons.header.filterIcon })),
4282
- this.props.column.renderFilter && (React.createElement(IconButton, { key: "dropdown", cx: cx$1(css$v.icon, css$v.dropdownIcon, uuiDataTableHeaderCell.uuiTableHeaderDropdownIcon), color: "secondary", icon: settings.dataTable.icons.header[this.state.isDropdownOpen ? 'openedDropdownIcon' : 'dropdownIcon'] }))));
4406
+ this.props.column.renderFilter && (React.createElement(ControlIcon, { key: "dropdown", cx: cx$1(css$v.icon, css$v.dropdownIcon, uuiDataTableHeaderCell.uuiTableHeaderDropdownIcon), icon: settings.dataTable.icons.header[this.state.isDropdownOpen ? 'openedDropdownIcon' : 'dropdownIcon'], onKeyDown: handleFilterOpen }))));
4283
4407
  };
4284
4408
  this.renderHeaderCheckbox = () => {
4285
4409
  if (this.props.selectAll && this.props.isFirstColumn) {
@@ -4291,7 +4415,7 @@ class DataTableHeaderCell extends React.Component {
4291
4415
  return (React.createElement(Tooltip, { content: this.props.areAllFolded
4292
4416
  ? i18n.tables.columnHeader.expandAllTooltip
4293
4417
  : i18n.tables.columnHeader.collapseAllTooltip },
4294
- React.createElement(IconButton, { color: "secondary", cx: cx$1(css$v.icon, css$v.foldAllIcon, uuiDataTableHeaderCell.uuiTableHeaderFoldAllIcon), icon: settings.dataTable.icons.header[this.props.areAllFolded ? 'unfoldIcon' : 'foldIcon'], onClick: this.props.onFoldAll, rawProps: {
4418
+ React.createElement(ControlIcon, { cx: cx$1(css$v.icon, css$v.foldAllIcon, uuiDataTableHeaderCell.uuiTableHeaderFoldAllIcon), icon: settings.dataTable.icons.header[this.props.areAllFolded ? 'unfoldIcon' : 'foldIcon'], onClick: this.props.onFoldAll, rawProps: {
4295
4419
  'aria-label': this.props.areAllFolded ? 'Expand All' : 'Collapse All',
4296
4420
  'aria-expanded': !!this.props.areAllFolded,
4297
4421
  } })));
@@ -4335,7 +4459,7 @@ class DataTableHeaderCell extends React.Component {
4335
4459
  }, style: computeStyles },
4336
4460
  this.renderHeaderCheckbox(),
4337
4461
  this.renderFoldAllIcon(),
4338
- this.getColumnCaption(),
4462
+ this.getColumnCaption(props, dropdownProps),
4339
4463
  isResizable && this.renderResizingMarker(props)));
4340
4464
  };
4341
4465
  this.renderCellWithFilter = (props) => (React.createElement(ColumnHeaderDropdown, { isOpen: this.state.isDropdownOpen, isSortable: this.props.column.isSortable, renderTarget: (dropdownProps) => this.renderCellContent(props, dropdownProps), renderFilter: this.props.renderFilter, onSort: this.props.onSort, sortDirection: this.props.sortDirection, onOpenChange: (isDropdownOpen) => this.setState({ isDropdownOpen }), title: this.props.column.caption }));
@@ -4348,7 +4472,7 @@ class DataTableHeaderCell extends React.Component {
4348
4472
  }
4349
4473
  }
4350
4474
 
4351
- var css$u = {"root":"FiaHii","caption-wrapper":"_1xCvgX","captionWrapper":"_1xCvgX","align-center":"_1GeYcv","alignCenter":"_1GeYcv","caption":"LXuw0c","truncate":"UR9VW7","upper-case":"bCDwvZ","upperCase":"bCDwvZ","group-cell-tooltip":"CbpXWb","groupCellTooltip":"CbpXWb","group-cell-tooltip-wrapper":"g-1KjA","groupCellTooltipWrapper":"g-1KjA","group-cell-tooltip-text":"ht23fN","groupCellTooltipText":"ht23fN","tooltip-caption":"TJyncB","tooltipCaption":"TJyncB","tooltip-info":"VGb9Sb","tooltipInfo":"VGb9Sb"};
4475
+ var css$u = {"root":"_4NgaPv","caption-wrapper":"tqkPmS","captionWrapper":"tqkPmS","align-center":"dj9EMm","alignCenter":"dj9EMm","caption":"wJCrFs","truncate":"yJgSQZ","upper-case":"h-vRIN","upperCase":"h-vRIN","group-cell-tooltip":"Ea2y9v","groupCellTooltip":"Ea2y9v","group-cell-tooltip-wrapper":"esXgV8","groupCellTooltipWrapper":"esXgV8","group-cell-tooltip-text":"BkRU8j","groupCellTooltipText":"BkRU8j","tooltip-caption":"gDhCFt","tooltipCaption":"gDhCFt","tooltip-info":"PevA5B","tooltipInfo":"PevA5B"};
4352
4476
 
4353
4477
  class DataTableHeaderGroupCell extends React.Component {
4354
4478
  constructor() {
@@ -4388,13 +4512,15 @@ class DataTableHeaderGroupCell extends React.Component {
4388
4512
  }
4389
4513
  }
4390
4514
 
4391
- var css$t = {"root":"rU4otq"};
4515
+ var css$t = {"root":"_5ND0H0"};
4392
4516
 
4393
- const DataTableHeaderRow = /* @__PURE__ */withMods(DataTableHeaderRow$1, () => [css$t.root, 'uui-dt-vars'], (mods) => ({
4394
- renderCell: (props) => (React.createElement(DataTableHeaderCell, { ...props, size: mods.size, textCase: mods.textCase || 'normal', key: props.column.key, columnsGap: mods.columnsGap })),
4395
- renderGroupCell: (props) => (React.createElement(DataTableHeaderGroupCell, { ...props, size: mods.size, textCase: mods.textCase || 'normal', key: props.key, columnsGap: mods.columnsGap })),
4396
- renderConfigButton: () => (React.createElement(IconButton, { key: "configuration", onClick: mods.onConfigButtonClick, cx: ['config-icon', `uui-size-${settings.dataTable.sizes.header.iconMap[mods.size || settings.dataTable.sizes.header.row]}`], color: "neutral", icon: settings.dataTable.icons.header.configIcon })),
4397
- }));
4517
+ const DataTableHeaderRow = /* @__PURE__ */withMods(DataTableHeaderRow$1, () => [css$t.root, 'uui-dt-vars'], (mods) => {
4518
+ return ({
4519
+ renderCell: (props) => (React.createElement(DataTableHeaderCell, { ...props, size: mods.size, textCase: mods.textCase || 'normal', key: props.column.key, columnsGap: mods.columnsGap })),
4520
+ renderGroupCell: (props) => (React.createElement(DataTableHeaderGroupCell, { ...props, size: mods.size, textCase: mods.textCase || 'normal', key: props.key, columnsGap: mods.columnsGap })),
4521
+ renderConfigButton: () => (React.createElement(ControlIcon, { key: "configuration", onClick: mods.onConfigButtonClick, size: settings.dataTable.sizes.header.iconMap[mods.size || settings.dataTable.sizes.header.row], cx: ['config-icon'], icon: settings.dataTable.icons.header.configIcon })),
4522
+ });
4523
+ });
4398
4524
 
4399
4525
  const normalizeFilterWithPredicates = (filter) => {
4400
4526
  if (!filter) {
@@ -4484,7 +4610,7 @@ const UUI_FILTERS_PANEL_ITEM_TOGGLER_SELECTION = 'uui-filters-panel-item-toggler
4484
4610
  const UUI_FILTERS_PANEL_ITEM_TOGGLER_POSTFIX = 'uui-filters-panel-item-toggler-postfix';
4485
4611
  const UUI_FILTERS_PANEL_BODY_FOOTER = 'uui-filters-panel-item-footer';
4486
4612
 
4487
- var css$s = {"body":"VBOdST","header":"j2V9vY","title":"UOAHC1","removeButton":"q4jR4F","with-search":"ZZAI8r","withSearch":"ZZAI8r"};
4613
+ var css$s = {"body":"gHbOXM","header":"OTW1QL","title":"l-OBG1","removeButton":"C6i89p","with-search":"Jfi9eo","withSearch":"Jfi9eo"};
4488
4614
 
4489
4615
  function FilterColumnBody(props) {
4490
4616
  const [predicate, setPredicate] = useState(getDefaultPredicate(props.predicates, props.value));
@@ -4508,7 +4634,7 @@ function FilterColumnBody(props) {
4508
4634
  return props.predicates?.length > 0 && (React__default.createElement("div", { className: css$s.header },
4509
4635
  React__default.createElement(FilterPredicatePanel, { ...panelProps })));
4510
4636
  };
4511
- return (React__default.createElement(DropdownContainer, { style: { minWidth: '360px' }, cx: [css$s.body, UUI_FILTERS_PANEL_ITEM_BODY], ...props },
4637
+ return (React__default.createElement(DropdownContainer, { style: { minWidth: '360px' }, cx: [css$s.body, UUI_FILTERS_PANEL_ITEM_BODY], ...props, focusLock: false },
4512
4638
  renderHeader(),
4513
4639
  React__default.createElement(FilterItemBody, { ...props, selectedPredicate: predicate, value: getValue(predicate, props.value), onValueChange: onValueChange })));
4514
4640
  }
@@ -4545,7 +4671,7 @@ const useColumnsWithFilters = (initialColumns, filters) => {
4545
4671
  return columns;
4546
4672
  };
4547
4673
 
4548
- var css$r = {"unpin-icon":"D1A8bo","unpinIcon":"D1A8bo","pin-toggler-icon":"r9EnmR","pinTogglerIcon":"r9EnmR"};
4674
+ var css$r = {"unpin-icon":"bP6UdW","unpinIcon":"bP6UdW","pin-toggler-icon":"Ifhc9z","pinTogglerIcon":"Ifhc9z"};
4549
4675
 
4550
4676
  function PinIconButton(props) {
4551
4677
  const i18nLocal = i18n.tables.columnsConfigurationModal;
@@ -4596,7 +4722,7 @@ function getUnpinIcon(params) {
4596
4722
  }
4597
4723
  }
4598
4724
 
4599
- var css$q = {"row-wrapper":"sP89qf","rowWrapper":"sP89qf","pin-icon-button":"Na6WUf","pinIconButton":"Na6WUf","not-pinned":"F1c4OL","notPinned":"F1c4OL","checkbox":"xmktS-","drag-handle":"iKEzSh","dragHandle":"iKEzSh","dnd-disabled":"ud9YbU","dndDisabled":"ud9YbU"};
4725
+ var css$q = {"row-wrapper":"jnLfZ-","rowWrapper":"jnLfZ-","pin-icon-button":"wOby6M","pinIconButton":"wOby6M","not-pinned":"PeOGEz","notPinned":"PeOGEz","checkbox":"TRNRi2","drag-handle":"iQ8cp1","dragHandle":"iQ8cp1","dnd-disabled":"RbSSp4","dndDisabled":"RbSSp4"};
4600
4726
 
4601
4727
  const ColumnRow = /* @__PURE__ */React.memo(function ColumnRow(props) {
4602
4728
  const { column } = props;
@@ -4630,7 +4756,7 @@ const ColumnRow = /* @__PURE__ */React.memo(function ColumnRow(props) {
4630
4756
  return (React.createElement(DndActor, { key: column.key, srcData: isDndAllowed && data, dstData: data, canAcceptDrop: onCanAcceptDrop, onDrop: onDrop, render: renderContent }));
4631
4757
  });
4632
4758
 
4633
- var css$p = {"root":"zxIZl3","main-panel":"QrvjP8","mainPanel":"QrvjP8","group":"dodTFs","group-title":"d6Wsgy","groupTitle":"d6Wsgy","group-items":"-Udu2w","groupItems":"-Udu2w","no-data":"k5DR4i","noData":"k5DR4i","no-data-title":"UADIfT","noDataTitle":"UADIfT","no-data-sub-title":"_2y020t","noDataSubTitle":"_2y020t","h-divider":"_0KdO2x","hDivider":"_0KdO2x","search-area":"Bz3S3s","searchArea":"Bz3S3s","subgroup-accordion":"gil8Ci","subgroupAccordion":"gil8Ci","subgroup":"TUFjto","subgroup-title":"HIXrhD","subgroupTitle":"HIXrhD"};
4759
+ var css$p = {"root":"b0LDqL","main-panel":"F4ibph","mainPanel":"F4ibph","group":"_0GcLUD","group-title":"_51Xf6m","groupTitle":"_51Xf6m","group-items":"ikjaLO","groupItems":"ikjaLO","no-data":"h5eOoR","noData":"h5eOoR","no-data-title":"aAgK1c","noDataTitle":"aAgK1c","no-data-sub-title":"akjGWW","noDataSubTitle":"akjGWW","h-divider":"VOg2dE","hDivider":"VOg2dE","search-area":"a0q1Zx","searchArea":"a0q1Zx","subgroup-accordion":"lB5iGb","subgroupAccordion":"lB5iGb","subgroup":"_5bZYu-","subgroup-title":"LeazTn","subgroupTitle":"LeazTn"};
4634
4760
 
4635
4761
  const renderGroupTitle = (title, amount) => (React.createElement(FlexRow, { cx: css$p.group },
4636
4762
  React.createElement(Text, { size: "none", cx: css$p.groupTitle }, title),
@@ -4733,7 +4859,7 @@ const getChildrenAndRest = (row, rows) => {
4733
4859
  return [children, rest];
4734
4860
  };
4735
4861
 
4736
- var css$o = {"listContainer":"MhvPDr","header":"r-gnBR","group":"gqN6A4","stickyHeader":"moN4dq"};
4862
+ var css$o = {"listContainer":"wIa-tG","header":"_55VcoO","group":"aOImlv","stickyHeader":"v4wmts"};
4737
4863
 
4738
4864
  function DataRowsGroup({ row, childRows, renderRow, top = 1, }) {
4739
4865
  const rowRef = useRef(undefined);
@@ -4773,7 +4899,7 @@ function DataRowsContainer({ estimatedHeight, listContainerRef, offsetY, rows, r
4773
4899
  React__default.createElement(DataRowsGroups, { rows: rows, renderRow: renderRow, top: headerRef?.current?.clientHeight }))));
4774
4900
  }
4775
4901
 
4776
- var css$n = {"root":"hukdyK","sticky-header":"ARKxNK","stickyHeader":"ARKxNK","no-results":"t055MF","noResults":"t055MF","icon":"_0CKT68","title":"Xp6OjX"};
4902
+ var css$n = {"root":"gs5tAi","sticky-header":"OlbZ1I","stickyHeader":"OlbZ1I","no-results":"IGCZuA","noResults":"IGCZuA","icon":"gcfIP7","title":"HZIFTX"};
4777
4903
 
4778
4904
  function DataTable(props) {
4779
4905
  const { uuiModals } = useUuiContext();
@@ -4822,7 +4948,7 @@ function DataTable(props) {
4822
4948
  : (React.createElement(VirtualList, { value: props.value, onValueChange: props.onValueChange, onScroll: props.onScroll, rowsCount: props.rowsCount, renderRows: renderTableBody, cx: classes, isLoading: props.isReloading, rowsSelector: "[role=row]", rawProps: rawProps })))));
4823
4949
  }
4824
4950
 
4825
- var css$m = {"root":"dP-yyN","title-wrapper":"u-Jp-4","titleWrapper":"u-Jp-4","title":"T9Dy3A","text-wrapper":"LhBHlq","textWrapper":"LhBHlq","selection":"fCdhE4","postfix":"Z63mub","selected":"M5YxAu"};
4951
+ var css$m = {"root":"_1iHo7x","title-wrapper":"u8YyzL","titleWrapper":"u8YyzL","title":"QmogUG","text-wrapper":"YhuGTX","textWrapper":"YhuGTX","selection":"-Q0ANM","postfix":"zIXFAA","selected":"av6pcA"};
4826
4952
 
4827
4953
  const FilterPanelItemToggler = /* @__PURE__ */React.forwardRef((props, ref) => {
4828
4954
  const togglerPickerOpened = (e) => {
@@ -4921,7 +5047,7 @@ function FilterPickerBody({ highlightSearchMatches = true, ...restProps }) {
4921
5047
  rows,
4922
5048
  }, e);
4923
5049
  return (React.createElement(React.Fragment, null,
4924
- React.createElement(DataPickerBody, { ...getListProps(), selectionMode: props.selectionMode, rows: rows, maxHeight: maxHeight, maxWidth: maxWidth, searchSize: settings.pickerInput.sizes.body.row, showSearch: props.showSearch ?? true, getName: getName, value: dataSourceState, onValueChange: handleDataSourceValueChange, renderRow: props.renderRow, onKeyDown: onKeyDown, minCharsToSearch: props.minCharsToSearch, searchDebounceDelay: props.searchDebounceDelay, rawProps: props.rawProps?.body, highlightSearchMatches: props.highlightSearchMatches, flattenSearchResults: view.getConfig().flattenSearchResults }),
5050
+ React.createElement(DataPickerBody, { ...getListProps(), selectionMode: props.selectionMode, rows: rows, maxHeight: maxHeight, maxWidth: maxWidth, searchSize: settings.pickerInput.sizes.body.row, showSearch: props.showSearch ?? true, getName: getName, value: dataSourceState, onValueChange: handleDataSourceValueChange, renderRow: props.renderRow, onKeyDown: onKeyDown, minCharsToSearch: props.minCharsToSearch, searchDebounceDelay: props.searchDebounceDelay, rawProps: props.rawProps?.body, highlightSearchMatches: props.highlightSearchMatches, flattenSearchResults: view.getConfig().flattenSearchResults, autoFocusSearch: false }),
4925
5051
  renderFooter()));
4926
5052
  };
4927
5053
  return renderBody();
@@ -5047,7 +5173,7 @@ function FilterRangeDatePickerBody(props) {
5047
5173
  renderFooter()));
5048
5174
  }
5049
5175
 
5050
- var css$l = {"container":"EzbFWT"};
5176
+ var css$l = {"container":"yCZxVJ"};
5051
5177
 
5052
5178
  function FilterNumericBody(props) {
5053
5179
  const isInRangePredicate = props?.selectedPredicate === 'inRange' || props?.selectedPredicate === 'notInRange';
@@ -5358,7 +5484,7 @@ function FiltersToolbarImpl(props) {
5358
5484
  }
5359
5485
  const FiltersPanel = /* @__PURE__ */React__default.memo(FiltersToolbarImpl);
5360
5486
 
5361
- var css$k = {"delete-button":"-jDuQP","deleteButton":"-jDuQP","tab-button":"feveqX","tabButton":"feveqX","targetOpen":"-r6PFN"};
5487
+ var css$k = {"delete-button":"PAinEU","deleteButton":"PAinEU","tab-button":"v70RAO","tabButton":"v70RAO","targetOpen":"cBSM75"};
5362
5488
 
5363
5489
  function PresetActionsDropdown(props) {
5364
5490
  const { uuiNotifications } = useUuiContext();
@@ -5434,7 +5560,7 @@ const UUI_PRESETS_PANEL_MORE_BUTTON = 'uui-presets-panel-more-button';
5434
5560
  const UUI_PRESETS_PANEL_INPUT = 'uui-presets-panel-input';
5435
5561
  const UUI_PRESETS_PANEL_PRESET = 'uui-presets-panel-preset';
5436
5562
 
5437
- var css$j = {"preset-input-cell":"_3B8qbQ","presetInputCell":"_3B8qbQ","preset-input":"spVgUw","presetInput":"spVgUw"};
5563
+ var css$j = {"preset-input-cell":"K3OTly","presetInputCell":"K3OTly","preset-input":"_3fvOW-","presetInput":"_3fvOW-"};
5438
5564
 
5439
5565
  function PresetInput(props) {
5440
5566
  const [presetCaption, setPresetCaption] = useState(props.preset?.name || '');
@@ -5461,7 +5587,7 @@ function PresetInput(props) {
5461
5587
  React__default.createElement(TextInput, { cx: css$j.presetInput, onValueChange: setPresetCaption, value: presetCaption, onCancel: cancelActionHandler, onAccept: acceptActionHandler, onBlur: newPresetOnBlurHandler, autoFocus: true, maxLength: 50, isReadonly: readonly })));
5462
5588
  }
5463
5589
 
5464
- var css$i = {"preset":"w1WNmT","activePreset":"qPfpzE"};
5590
+ var css$i = {"preset":"im1Nbl","activePreset":"iVZ1pv"};
5465
5591
 
5466
5592
  function Preset(props) {
5467
5593
  const [isRenamePreset, setIsRenamePreset] = useState(false);
@@ -5486,7 +5612,7 @@ function Preset(props) {
5486
5612
  return (React__default.createElement(FlexCell, { key: props.preset.id, alignSelf: "center", width: "auto" }, isRenamePreset ? (React__default.createElement(PresetInput, { onCancel: cancelRenamePreset, onSuccess: handlePresetRename, preset: props.preset })) : (React__default.createElement(TabButton, { caption: props.preset.name, onClick: !isPresetActive && choosePresetHandler, cx: [css$i.preset, isPresetActive && css$i.activePreset, UUI_PRESETS_PANEL_PRESET], size: settings.presetsPanel.sizes.tabButton, withNotify: isPresetActive && props.hasPresetChanged(props.preset), icon: PresetActionsDropdownComponent, iconPosition: "right", isActive: isPresetActive }))));
5487
5613
  }
5488
5614
 
5489
- var css$h = {"divider":"Cd-6Gd","dropdownDeleteIcon":"LYMigY","presetsWrapper":"b970nw","addPresetContainer":"vznxrD","dropContainer":"E9KMxm"};
5615
+ var css$h = {"divider":"pkfpmt","dropdownDeleteIcon":"ElQbms","presetsWrapper":"w09K5k","addPresetContainer":"_137MKw","dropContainer":"_1n6Nv-"};
5490
5616
 
5491
5617
  function PresetsPanel(props) {
5492
5618
  const [isAddingPreset, setIsAddingPreset] = useState(false);
@@ -5535,9 +5661,9 @@ function PresetsPanel(props) {
5535
5661
  React__default.createElement(AdaptivePanel, { items: getPanelItems() }))));
5536
5662
  }
5537
5663
 
5538
- var css$g = {"root":"-Zowr5"};
5664
+ var css$g = {"root":"z5tlxk"};
5539
5665
 
5540
- var css$f = {"root":"eXY3tv","burger-content":"n2eF2e","burgerContent":"n2eF2e"};
5666
+ var css$f = {"root":"bmAw-b","burger-content":"EAx6K7","burgerContent":"EAx6K7"};
5541
5667
 
5542
5668
  var _path$3;
5543
5669
  function _extends$3() { return _extends$3 = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends$3.apply(null, arguments); }
@@ -5580,7 +5706,7 @@ var SvgNavigationArrowDownOutline = function SvgNavigationArrowDownOutline(props
5580
5706
  };
5581
5707
  var ForwardRef$2 = /*#__PURE__*/forwardRef(SvgNavigationArrowDownOutline);
5582
5708
 
5583
- var css$e = {"root":"YNfGRL","button-primary":"_34UpRL","buttonPrimary":"_34UpRL","button-secondary":"j9QX5u","buttonSecondary":"j9QX5u","hasIcon":"r0hAab","dropdown":"hDZv34"};
5709
+ var css$e = {"root":"uWJzFd","button-primary":"FGo4Gk","buttonPrimary":"FGo4Gk","button-secondary":"jw-yNL","buttonSecondary":"jw-yNL","hasIcon":"vcEXxU","dropdown":"AicG-l"};
5584
5710
 
5585
5711
  function applyBurgerButtonMods(props) {
5586
5712
  return [
@@ -5605,13 +5731,13 @@ const BurgerButton = /* @__PURE__ */React__default.forwardRef((props, ref) => {
5605
5731
  }, dropdownIcon: ForwardRef$2 }));
5606
5732
  });
5607
5733
 
5608
- var css$d = {"search-input":"TKibWd","searchInput":"TKibWd"};
5734
+ var css$d = {"search-input":"voTcNB","searchInput":"voTcNB"};
5609
5735
 
5610
5736
  function BurgerSearch(props) {
5611
5737
  return (React.createElement(TextInput$1, { cx: cx(css$d.searchInput, 'uui-main_menu-burger-search'), iconPosition: "left", icon: ForwardRef$M, placeholder: props.placeholder, value: props.value, onValueChange: props.onValueChange, onCancel: props.onCancel, cancelIcon: props.value && ForwardRef$Q }));
5612
5738
  }
5613
5739
 
5614
- var css$c = {"root":"-iFT8A","group-header":"YBDc6P","groupHeader":"YBDc6P","group-name":"RALnKy","groupName":"RALnKy","line":"_5kyLC3"};
5740
+ var css$c = {"root":"i3JYel","group-header":"psafjs","groupHeader":"psafjs","group-name":"rrCOyP","groupName":"rrCOyP","line":"BQg0OA"};
5615
5741
 
5616
5742
  function BurgerGroupHeader(props) {
5617
5743
  return (React.createElement("div", { className: cx(css$c.root, css$c.groupHeader, 'uui-burger-group-header') },
@@ -5619,7 +5745,7 @@ function BurgerGroupHeader(props) {
5619
5745
  React.createElement("span", { className: css$c.groupName }, props.caption)));
5620
5746
  }
5621
5747
 
5622
- var css$b = {"root":"y98K5L","type-primary":"HOG0rc","typePrimary":"HOG0rc","type-secondary":"EXGQyl","typeSecondary":"EXGQyl"};
5748
+ var css$b = {"root":"QcCInU","type-primary":"Ar1F9z","typePrimary":"Ar1F9z","type-secondary":"_7jjV3H","typeSecondary":"_7jjV3H"};
5623
5749
 
5624
5750
  const MainMenuButton = /* @__PURE__ */React.forwardRef((props, ref) => {
5625
5751
  const { type, ...clickableProps } = props;
@@ -5647,7 +5773,7 @@ const MainMenuButton = /* @__PURE__ */React.forwardRef((props, ref) => {
5647
5773
  props.isDropdown && (React.createElement(IconContainer, { icon: ForwardRef$P, flipY: props.isOpen }))));
5648
5774
  });
5649
5775
 
5650
- var css$a = {"dropdown-body":"Vgu9hK","dropdownBody":"Vgu9hK"};
5776
+ var css$a = {"dropdown-body":"O0aoEX","dropdownBody":"O0aoEX"};
5651
5777
 
5652
5778
  function MainMenuDropdown(props) {
5653
5779
  const handleEscape = (e, onClose, isOpen) => {
@@ -5655,10 +5781,13 @@ function MainMenuDropdown(props) {
5655
5781
  onClose();
5656
5782
  }
5657
5783
  };
5658
- return (React__default.createElement(Dropdown$1, { renderTarget: (dropdownProps) => (React__default.createElement(MainMenuButton, { caption: props.caption, ...dropdownProps, rawProps: props.rawProps, isActive: props.isActive, isDropdown: true })), renderBody: (dropdownBodyProps) => (React__default.createElement(FocusLock, { returnFocus: true, persistentFocus: true, lockProps: {
5784
+ return (React__default.createElement(Dropdown$1, { renderTarget: (dropdownProps) => (React__default.createElement(MainMenuButton, { caption: props.caption, ...dropdownProps, rawProps: {
5785
+ 'aria-haspopup': 'menu',
5786
+ ...props.rawProps,
5787
+ }, isActive: props.isActive, isDropdown: true })), renderBody: (dropdownBodyProps) => (React__default.createElement(FocusLock, { returnFocus: true, persistentFocus: true, lockProps: {
5659
5788
  onKeyDown: (e) => handleEscape(e, dropdownBodyProps.onClose, dropdownBodyProps.isOpen),
5660
5789
  } },
5661
- React__default.createElement("div", { className: cx(css$a.dropdownBody, 'uui-main_menu-dropdown', props.cx) }, props.renderBody({ ...dropdownBodyProps })))), placement: "bottom-start" }));
5790
+ React__default.createElement("div", { className: cx(css$a.dropdownBody, 'uui-main_menu-dropdown', props.cx), role: "menu" }, props.renderBody({ ...dropdownBodyProps })))), placement: "bottom-start" }));
5662
5791
  }
5663
5792
 
5664
5793
  function applyMainMenuMods() {
@@ -5690,12 +5819,12 @@ var SvgNavigationGlobalMenuOutlineOutline = function SvgNavigationGlobalMenuOutl
5690
5819
  };
5691
5820
  var ForwardRef$1 = /*#__PURE__*/forwardRef(SvgNavigationGlobalMenuOutlineOutline);
5692
5821
 
5693
- var css$9 = {"global-menu-btn":"xHcAA4","globalMenuBtn":"xHcAA4","global-menu-icon":"ZZ0NV5","globalMenuIcon":"ZZ0NV5"};
5822
+ var css$9 = {"global-menu-btn":"_7Y3hFc","globalMenuBtn":"_7Y3hFc","global-menu-icon":"IhinSn","globalMenuIcon":"IhinSn"};
5694
5823
 
5695
5824
  const GlobalMenu = /* @__PURE__ */React.forwardRef((props, ref) => (React.createElement("button", { ref: ref, id: "global_menu_toggle", className: cx(css$9.globalMenuBtn, props.cx), ...props.rawProps },
5696
5825
  React.createElement(IconContainer, { size: 36, icon: ForwardRef$1, cx: css$9.globalMenuIcon }))));
5697
5826
 
5698
- var css$8 = {"container":"rlYaHu","open":"dg1dOo","folding-arrow":"vbDCe1","foldingArrow":"vbDCe1"};
5827
+ var css$8 = {"container":"lO5Him","open":"VTrHfo","folding-arrow":"y74cEG","foldingArrow":"y74cEG"};
5699
5828
 
5700
5829
  const MainMenuAvatar = /* @__PURE__ */React.forwardRef((props, ref) => (React.createElement("button", { ref: ref, className: cx(css$8.container, props.isDropdown && css$8.dropdown, props.isOpen && css$8.open, props.onClick && uuiMarkers.clickable, props.cx), onClick: props.onClick, ...props.rawProps },
5701
5830
  React.createElement(Avatar, { size: "36", img: props.avatarUrl }),
@@ -5703,15 +5832,15 @@ const MainMenuAvatar = /* @__PURE__ */React.forwardRef((props, ref) => (React.cr
5703
5832
  props.isDropdown && (React.createElement("div", null,
5704
5833
  React.createElement(IconContainer, { size: 18, icon: ForwardRef$P, flipY: props.isOpen, cx: css$8.foldingArrow }))))));
5705
5834
 
5706
- var css$7 = {"search-input":"aRXFjU","searchInput":"aRXFjU"};
5835
+ var css$7 = {"search-input":"xu7NSx","searchInput":"xu7NSx"};
5707
5836
 
5708
5837
  const MainMenuSearch = /* @__PURE__ */React.forwardRef((props, ref) => (React.createElement(IEditableDebouncer, { ...props, render: (iEditable) => (React.createElement(TextInput$1, { iconPosition: "left", icon: ForwardRef$M, cancelIcon: props.value?.length > 0 && ForwardRef$Q, ...props, ...iEditable, ref: ref, cx: cx$1(css$7.searchInput, props.cx), ...props.rawProps })) })));
5709
5838
 
5710
- var css$6 = {"container":"hyXzI4"};
5839
+ var css$6 = {"container":"vxSSzb"};
5711
5840
 
5712
5841
  const MainMenuIcon = /* @__PURE__ */React.forwardRef((props, ref) => (React.createElement(IconButton, { ref: ref, icon: props.icon, cx: cx$1(props.cx, css$6.container), ...props })));
5713
5842
 
5714
- var css$5 = {"root":"CJivvI"};
5843
+ var css$5 = {"root":"-tLxO2"};
5715
5844
 
5716
5845
  const Anchor = /* @__PURE__ */withMods(Anchor$1, () => [css$5.root]);
5717
5846
 
@@ -5769,7 +5898,7 @@ var SvgFileCloudUploadFill = function SvgFileCloudUploadFill(props, ref) {
5769
5898
  };
5770
5899
  var ForwardRef = /*#__PURE__*/forwardRef(SvgFileCloudUploadFill);
5771
5900
 
5772
- var css$4 = {"root":"_2a6aC-","drop-start":"B2U0ud","dropStart":"B2U0ud","drop-over":"V-EAy5","dropOver":"V-EAy5","link":"_3dIe-E","drop-area":"rdRoFt","dropArea":"rdRoFt","drop-caption":"APzu6R","dropCaption":"APzu6R","icon-blue":"CBwhKR","iconBlue":"CBwhKR"};
5901
+ var css$4 = {"root":"mN1Gjg","drop-start":"FEMtJb","dropStart":"FEMtJb","drop-over":"_7cmFqo","dropOver":"_7cmFqo","link":"_5WohnP","drop-area":"xKURY-","dropArea":"xKURY-","drop-caption":"lP5SCF","dropCaption":"lP5SCF","icon-blue":"gs4mGN","iconBlue":"gs4mGN"};
5773
5902
 
5774
5903
  function DropSpot(props) {
5775
5904
  const getInfoText = typeof props.infoText === 'string'
@@ -5787,7 +5916,7 @@ function DropSpot(props) {
5787
5916
  return React.createElement(DropSpot$1, { render: renderAttachmentArea, onFilesDropped: props.onUploadFiles });
5788
5917
  }
5789
5918
 
5790
- var css$3 = {"root":"aZa3pC"};
5919
+ var css$3 = {"root":"HyZm4g"};
5791
5920
 
5792
5921
  const SvgCircleProgress = /* @__PURE__ */React.forwardRef((props, ref) => {
5793
5922
  const outsetRadius = props.size / 2 - 1;
@@ -5798,7 +5927,7 @@ const SvgCircleProgress = /* @__PURE__ */React.forwardRef((props, ref) => {
5798
5927
  React.createElement("circle", { strokeWidth: 1, fill: "transparent", r: outsetRadius, cx: props.size / 2, cy: props.size / 2 })));
5799
5928
  });
5800
5929
 
5801
- var css$2 = {"root":"l-KkEK","file-name":"T-lQVT","fileName":"T-lQVT","default-color":"SLuifX","defaultColor":"SLuifX","doc-color":"eC7cqO","docColor":"eC7cqO","xls-color":"iqyqLf","xlsColor":"iqyqLf","pdf-color":"ECFGME","pdfColor":"ECFGME","movie-color":"Gr8Cjs","movieColor":"Gr8Cjs","img-color":"_0L4iqL","imgColor":"_0L4iqL","mov-color":"GQ-0pz","movColor":"GQ-0pz","error-block":"_0P3G9Z","errorBlock":"_0P3G9Z","icons-block":"rhmwad","iconsBlock":"rhmwad"};
5930
+ var css$2 = {"root":"NmvPaQ","file-name":"-d4DxY","fileName":"-d4DxY","default-color":"epcNaA","defaultColor":"epcNaA","doc-color":"ntMF3f","docColor":"ntMF3f","xls-color":"aZ4rNx","xlsColor":"aZ4rNx","pdf-color":"pLG29X","pdfColor":"pLG29X","movie-color":"xEh2xz","movieColor":"xEh2xz","img-color":"AqsGH0","imgColor":"AqsGH0","mov-color":"NqRUSc","movColor":"NqRUSc","error-block":"hbccqf","errorBlock":"hbccqf","icons-block":"ls-IyX","iconsBlock":"ls-IyX"};
5802
5931
 
5803
5932
  const FileCard = /* @__PURE__ */React.forwardRef((props, ref) => {
5804
5933
  const [isLoadingShow, setIsLoadingShow] = React.useState(true);
@@ -5917,7 +6046,7 @@ const getErrorPageConfig = () => ({
5917
6046
  },
5918
6047
  });
5919
6048
 
5920
- var css$1 = {"container":"_1izzyN"};
6049
+ var css$1 = {"container":"i1fiTJ"};
5921
6050
 
5922
6051
  const ErrorPage = (props) => {
5923
6052
  const isMobileScreen = isMobile();
@@ -5929,7 +6058,7 @@ const ErrorPage = (props) => {
5929
6058
  props?.supportLink && React__default.createElement("div", { className: "uui-error-support-link" }, props?.supportLink))));
5930
6059
  };
5931
6060
 
5932
- var css = {"recovery-spinner":"-KL8no","recoverySpinner":"-KL8no","recovery-message":"ApZ9Nl","recoveryMessage":"ApZ9Nl","modal-blocker":"DRshx5","modalBlocker":"DRshx5","modalFadeIn":"EWPamP"};
6061
+ var css = {"recovery-spinner":"wLKQLK","recoverySpinner":"wLKQLK","recovery-message":"ar3H23","recoveryMessage":"ar3H23","modal-blocker":"GO1LaW","modalBlocker":"GO1LaW","modalFadeIn":"N9-knf"};
5933
6062
 
5934
6063
  function ErrorHandler(props) {
5935
6064
  const { uuiNotifications, uuiModals, uuiApi } = useUuiContext();