@redis-ui/components 43.2.1 → 44.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/Badge/Badge.types.cjs +1 -1
  2. package/dist/Badge/Badge.types.d.ts +1 -1
  3. package/dist/Badge/Badge.types.js +1 -1
  4. package/dist/Badge/BadgeIcon.cjs +1 -0
  5. package/dist/Badge/BadgeIcon.js +2 -1
  6. package/dist/BoxSelectionGroup/components/Item/components/Compose/Compose.style.cjs +1 -1
  7. package/dist/BoxSelectionGroup/components/Item/components/Compose/Compose.style.js +1 -1
  8. package/dist/Button/Button.style.cjs +4 -0
  9. package/dist/Button/Button.style.js +4 -0
  10. package/dist/ButtonGroup/components/Button/Button.style.cjs +1 -1
  11. package/dist/ButtonGroup/components/Button/Button.style.js +1 -1
  12. package/dist/Drawer/Drawer.cjs +12 -2
  13. package/dist/Drawer/Drawer.js +12 -2
  14. package/dist/Drawer/components/Content/Content.style.cjs +1 -1
  15. package/dist/Drawer/components/Content/Content.style.js +1 -1
  16. package/dist/Drawer/components/Overlay/Overlay.style.cjs +1 -1
  17. package/dist/Drawer/components/Overlay/Overlay.style.js +1 -1
  18. package/dist/Drawer/hooks/useReducedMotionLifecycleSync.cjs +41 -0
  19. package/dist/Drawer/hooks/useReducedMotionLifecycleSync.d.ts +15 -0
  20. package/dist/Drawer/hooks/useReducedMotionLifecycleSync.js +41 -0
  21. package/dist/HighlightedIcon/HighlightedIcon.cjs +2 -2
  22. package/dist/HighlightedIcon/HighlightedIcon.d.ts +1 -1
  23. package/dist/HighlightedIcon/HighlightedIcon.js +2 -2
  24. package/dist/HighlightedIcon/HighlightedIcon.style.cjs +6 -6
  25. package/dist/HighlightedIcon/HighlightedIcon.style.d.ts +2 -2
  26. package/dist/HighlightedIcon/HighlightedIcon.style.js +6 -6
  27. package/dist/HighlightedIcon/HighlightedIcon.types.d.ts +2 -2
  28. package/dist/Inputs/components/Compose/Compose.style.cjs +1 -1
  29. package/dist/Inputs/components/Compose/Compose.style.js +1 -1
  30. package/dist/Loader/Loader.cjs +2 -2
  31. package/dist/Loader/Loader.js +2 -2
  32. package/dist/Loader/Loader.types.d.ts +2 -1
  33. package/dist/Loader/index.d.ts +1 -0
  34. package/dist/Menu/components/Trigger/components/Arrow/Arrow.style.cjs +1 -1
  35. package/dist/Menu/components/Trigger/components/Arrow/Arrow.style.js +1 -1
  36. package/dist/Popover/components/Content/components/WindowBar/WindowBar.types.d.ts +3 -2
  37. package/dist/Popover/components/Content/components/WindowBar/components/Compose/Compose.style.d.ts +2 -3
  38. package/dist/Popover/components/Content/components/WindowBar/components/Compose/Compose.types.d.ts +2 -2
  39. package/dist/ProgressBar/ProgressBar.style.cjs +1 -1
  40. package/dist/ProgressBar/ProgressBar.style.js +1 -1
  41. package/dist/SearchBar/components/FiltersSection/FiltersSection.style.cjs +1 -1
  42. package/dist/SearchBar/components/FiltersSection/FiltersSection.style.js +1 -1
  43. package/dist/SearchBar/components/SearchSection/components/Actions/components/ColumnSelector/ColumnSelector.cjs +2 -0
  44. package/dist/SearchBar/components/SearchSection/components/Actions/components/ColumnSelector/ColumnSelector.js +2 -0
  45. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.style.cjs +1 -1
  46. package/dist/Section/components/Header/components/CollapseButton/CollapseButton.style.js +1 -1
  47. package/dist/Select/components/Trigger/components/Arrow/Arrow.style.cjs +1 -1
  48. package/dist/Select/components/Trigger/components/Arrow/Arrow.style.js +1 -1
  49. package/dist/Select/components/Trigger/components/Compose/Compose.style.cjs +1 -1
  50. package/dist/Select/components/Trigger/components/Compose/Compose.style.js +1 -1
  51. package/dist/SideBar/SideBar.cjs +3 -1
  52. package/dist/SideBar/SideBar.js +3 -1
  53. package/dist/SideBar/SideBar.style.cjs +1 -1
  54. package/dist/SideBar/SideBar.style.js +1 -1
  55. package/dist/SideBar/components/Button/Button.style.cjs +3 -3
  56. package/dist/SideBar/components/Button/Button.style.js +3 -3
  57. package/dist/SideBar/components/Divider/Divider.style.cjs +1 -1
  58. package/dist/SideBar/components/Divider/Divider.style.js +1 -1
  59. package/dist/SideBar/components/Header/Header.style.cjs +4 -0
  60. package/dist/SideBar/components/Header/Header.style.js +4 -0
  61. package/dist/SideBar/components/Item/Item.style.cjs +1 -1
  62. package/dist/SideBar/components/Item/Item.style.js +1 -1
  63. package/dist/SideBar/components/Item/components/Text/Text.style.cjs +1 -1
  64. package/dist/SideBar/components/Item/components/Text/Text.style.js +1 -1
  65. package/dist/SideBar/components/SideBarLogo/SideBarLogo.style.cjs +1 -1
  66. package/dist/SideBar/components/SideBarLogo/SideBarLogo.style.js +1 -1
  67. package/dist/Stepper/components/Step/components/Icon/Icon.style.cjs +1 -1
  68. package/dist/Stepper/components/Step/components/Icon/Icon.style.js +1 -1
  69. package/dist/Switch/components/Switcher/Switcher.style.cjs +3 -0
  70. package/dist/Switch/components/Switcher/Switcher.style.js +3 -0
  71. package/dist/ThemeModeSwitch/ThemeModeSwitch.style.cjs +1 -1
  72. package/dist/ThemeModeSwitch/ThemeModeSwitch.style.js +1 -1
  73. package/dist/Toast/Toaster.cjs +30 -4
  74. package/dist/Toast/Toaster.js +30 -4
  75. package/dist/Toast/Toaster.style.cjs +1 -1
  76. package/dist/Toast/Toaster.style.js +1 -1
  77. package/dist/Toast/components/ReducedMotionTransition/ReducedMotionTransition.cjs +22 -0
  78. package/dist/Toast/components/ReducedMotionTransition/ReducedMotionTransition.d.ts +3 -0
  79. package/dist/Toast/components/ReducedMotionTransition/ReducedMotionTransition.js +22 -0
  80. package/dist/Toast/core/mapping.helpers.cjs +9 -0
  81. package/dist/Toast/core/mapping.helpers.js +9 -0
  82. package/package.json +3 -3
  83. package/skills/redis-ui-components/references/Loader.md +14 -8
  84. package/skills/redis-ui-components/references/Popover.md +1 -1
  85. package/skills/redis-ui-components/references/Tooltip.md +1 -1
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const badgeVariants = ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "disabled"];
3
+ const badgeVariants = ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "upsell", "disabled"];
4
4
  exports.badgeVariants = badgeVariants;
@@ -1,6 +1,6 @@
1
1
  import { IconType } from '@redislabsdev/redis-ui-icons';
2
2
  import { Theme } from '@redislabsdev/redis-ui-styles';
3
- export declare const badgeVariants: readonly ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "disabled"];
3
+ export declare const badgeVariants: readonly ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "upsell", "disabled"];
4
4
  export type BadgeVariants = (typeof badgeVariants)[number];
5
5
  export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
6
6
  label: string;
@@ -1,4 +1,4 @@
1
- const badgeVariants = ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "disabled"];
1
+ const badgeVariants = ["white", "light", "default", "informative", "success", "notice", "danger", "attention", "upsell", "disabled"];
2
2
  export {
3
3
  badgeVariants
4
4
  };
@@ -11,6 +11,7 @@ const BADGE_ICON_RECORD = {
11
11
  notice: redisUiIcons.ToastNotificationIcon,
12
12
  danger: redisUiIcons.ToastDangerIcon,
13
13
  attention: redisUiIcons.ToastPendingIcon,
14
+ upsell: redisUiIcons.CrownIcon,
14
15
  disabled: redisUiIcons.ToastCheckIcon
15
16
  };
16
17
  const BadgeIcon = ({
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "../node_modules/react/jsx-runtime.js";
2
- import { ToastCheckIcon, ToastInfoIcon, ToastNotificationIcon, ToastDangerIcon, ToastPendingIcon } from "@redislabsdev/redis-ui-icons";
2
+ import { ToastCheckIcon, ToastInfoIcon, ToastNotificationIcon, ToastDangerIcon, ToastPendingIcon, CrownIcon } from "@redislabsdev/redis-ui-icons";
3
3
  const BADGE_ICON_RECORD = {
4
4
  white: ToastCheckIcon,
5
5
  light: ToastCheckIcon,
@@ -9,6 +9,7 @@ const BADGE_ICON_RECORD = {
9
9
  notice: ToastNotificationIcon,
10
10
  danger: ToastDangerIcon,
11
11
  attention: ToastPendingIcon,
12
+ upsell: CrownIcon,
12
13
  disabled: ToastCheckIcon
13
14
  };
14
15
  const BadgeIcon = ({
@@ -59,7 +59,7 @@ const getStateStyle = (theme, isChecked = false) => {
59
59
  const BoxSelectionGroupItemCompose = _styled__default.default(index.Root).withConfig({
60
60
  displayName: "Composestyle__BoxSelectionGroupItemCompose",
61
61
  componentId: "RedisUI__sc-17mo3lu-1"
62
- })(["align-items:unset;justify-content:center;line-height:1.25;text-align:unset;position:relative;padding-inline:0;padding-block:0;flex:1;white-space:nowrap;cursor:", ";overflow:hidden;transition:all 0.1s;border-radius:", ";border-width:", ";border-style:", ";", ";", ";"], ({
62
+ })(["align-items:unset;justify-content:center;line-height:1.25;text-align:unset;position:relative;padding-inline:0;padding-block:0;flex:1;white-space:nowrap;cursor:", ";overflow:hidden;transition:all 0.1s;@media (prefers-reduced-motion:reduce){transition:none;}border-radius:", ";border-width:", ";border-style:", ";", ";", ";"], ({
63
63
  disabled
64
64
  }) => !disabled ? "pointer" : "not-allowed", () => redisUiStyles.useTheme().components.boxSelectionGroup.item.borderRadius, () => redisUiStyles.useTheme().components.boxSelectionGroup.item.borderWidth, () => redisUiStyles.useTheme().components.boxSelectionGroup.item.borderStyle, ({
65
65
  pressed
@@ -55,7 +55,7 @@ const getStateStyle = (theme, isChecked = false) => {
55
55
  const BoxSelectionGroupItemCompose = _styled(Root).withConfig({
56
56
  displayName: "Composestyle__BoxSelectionGroupItemCompose",
57
57
  componentId: "RedisUI__sc-17mo3lu-1"
58
- })(["align-items:unset;justify-content:center;line-height:1.25;text-align:unset;position:relative;padding-inline:0;padding-block:0;flex:1;white-space:nowrap;cursor:", ";overflow:hidden;transition:all 0.1s;border-radius:", ";border-width:", ";border-style:", ";", ";", ";"], ({
58
+ })(["align-items:unset;justify-content:center;line-height:1.25;text-align:unset;position:relative;padding-inline:0;padding-block:0;flex:1;white-space:nowrap;cursor:", ";overflow:hidden;transition:all 0.1s;@media (prefers-reduced-motion:reduce){transition:none;}border-radius:", ";border-width:", ";border-style:", ";", ";", ";"], ({
59
59
  disabled
60
60
  }) => !disabled ? "pointer" : "not-allowed", () => useTheme().components.boxSelectionGroup.item.borderRadius, () => useTheme().components.boxSelectionGroup.item.borderWidth, () => useTheme().components.boxSelectionGroup.item.borderStyle, ({
61
61
  pressed
@@ -18,6 +18,10 @@ const baseButtonStyle = _styled.css`
18
18
  transition: all 130ms ease-in-out, outline-offset 0ms, outline 0ms;
19
19
  cursor: pointer;
20
20
 
21
+ @media (prefers-reduced-motion: reduce) {
22
+ transition: none;
23
+ }
24
+
21
25
  ${redisUiStyles.getFocusStyle()};
22
26
 
23
27
  &:disabled {
@@ -14,6 +14,10 @@ const baseButtonStyle = css`
14
14
  transition: all 130ms ease-in-out, outline-offset 0ms, outline 0ms;
15
15
  cursor: pointer;
16
16
 
17
+ @media (prefers-reduced-motion: reduce) {
18
+ transition: none;
19
+ }
20
+
17
21
  ${getFocusStyle()};
18
22
 
19
23
  &:disabled {
@@ -9,7 +9,7 @@ const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
9
9
  const Button = _styled__default.default.button.withConfig({
10
10
  displayName: "Buttonstyle__Button",
11
11
  componentId: "RedisUI__sc-m6kucg-0"
12
- })(["cursor:pointer;border:none;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.25;max-width:100%;min-width:", ";text-align:center;text-decoration:none;transition:color 0.13s ease-in-out,background-color 0.13s ease-in-out,border-color 0.13s ease-in-out,box-shadow 0.13s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;display:flex;border-radius:", ";padding:", ";justify-content:center;align-items:center;gap:", ";&:not(:last-child){border-inline-end:", ";}&:disabled{cursor:not-allowed;}", " ", ";"], () => redisUiStyles.useTheme().components.buttonGroup.button.minWidth, () => redisUiStyles.useTheme().components.buttonGroup.button.borderRadius, () => redisUiStyles.useTheme().components.buttonGroup.button.padding, () => redisUiStyles.useTheme().components.buttonGroup.button.gap, () => redisUiStyles.useTheme().components.buttonGroup.button.border, ({
12
+ })(["cursor:pointer;border:none;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.25;max-width:100%;min-width:", ";text-align:center;text-decoration:none;transition:color 0.13s ease-in-out,background-color 0.13s ease-in-out,border-color 0.13s ease-in-out,box-shadow 0.13s ease-in-out;@media (prefers-reduced-motion:reduce){transition:none;}user-select:none;vertical-align:middle;white-space:nowrap;display:flex;border-radius:", ";padding:", ";justify-content:center;align-items:center;gap:", ";&:not(:last-child){border-inline-end:", ";}&:disabled{cursor:not-allowed;}", " ", ";"], () => redisUiStyles.useTheme().components.buttonGroup.button.minWidth, () => redisUiStyles.useTheme().components.buttonGroup.button.borderRadius, () => redisUiStyles.useTheme().components.buttonGroup.button.padding, () => redisUiStyles.useTheme().components.buttonGroup.button.gap, () => redisUiStyles.useTheme().components.buttonGroup.button.border, ({
13
13
  isSelected
14
14
  }) => Button_style_utils.getButtonStatesStyle(redisUiStyles.useTheme().components.buttonGroup.button.toggleStates[isSelected ? "on" : "off"], [css_utils.tokenMaps.bgColor, css_utils.tokenMaps.textColor]), redisUiStyles.getFocusStyle("-2px"));
15
15
  exports.Button = Button;
@@ -5,7 +5,7 @@ import { tokenMaps } from "../../../Helpers/css.utils.js";
5
5
  const Button = _styled.button.withConfig({
6
6
  displayName: "Buttonstyle__Button",
7
7
  componentId: "RedisUI__sc-m6kucg-0"
8
- })(["cursor:pointer;border:none;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.25;max-width:100%;min-width:", ";text-align:center;text-decoration:none;transition:color 0.13s ease-in-out,background-color 0.13s ease-in-out,border-color 0.13s ease-in-out,box-shadow 0.13s ease-in-out;user-select:none;vertical-align:middle;white-space:nowrap;display:flex;border-radius:", ";padding:", ";justify-content:center;align-items:center;gap:", ";&:not(:last-child){border-inline-end:", ";}&:disabled{cursor:not-allowed;}", " ", ";"], () => useTheme().components.buttonGroup.button.minWidth, () => useTheme().components.buttonGroup.button.borderRadius, () => useTheme().components.buttonGroup.button.padding, () => useTheme().components.buttonGroup.button.gap, () => useTheme().components.buttonGroup.button.border, ({
8
+ })(["cursor:pointer;border:none;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:1.25;max-width:100%;min-width:", ";text-align:center;text-decoration:none;transition:color 0.13s ease-in-out,background-color 0.13s ease-in-out,border-color 0.13s ease-in-out,box-shadow 0.13s ease-in-out;@media (prefers-reduced-motion:reduce){transition:none;}user-select:none;vertical-align:middle;white-space:nowrap;display:flex;border-radius:", ";padding:", ";justify-content:center;align-items:center;gap:", ";&:not(:last-child){border-inline-end:", ";}&:disabled{cursor:not-allowed;}", " ", ";"], () => useTheme().components.buttonGroup.button.minWidth, () => useTheme().components.buttonGroup.button.borderRadius, () => useTheme().components.buttonGroup.button.padding, () => useTheme().components.buttonGroup.button.gap, () => useTheme().components.buttonGroup.button.border, ({
9
9
  isSelected
10
10
  }) => getButtonStatesStyle(useTheme().components.buttonGroup.button.toggleStates[isSelected ? "on" : "off"], [tokenMaps.bgColor, tokenMaps.textColor]), getFocusStyle("-2px"));
11
11
  export {
@@ -4,6 +4,7 @@ const jsxRuntime = require("../node_modules/react/jsx-runtime.cjs");
4
4
  const index = require("../node_modules/@radix-ui/react-dialog/dist/index.cjs");
5
5
  const redisUiStyles = require("@redislabsdev/redis-ui-styles");
6
6
  const Drawer_context = require("./Drawer.context.cjs");
7
+ const useReducedMotionLifecycleSync = require("./hooks/useReducedMotionLifecycleSync.cjs");
7
8
  const Overlay = require("./components/Overlay/Overlay.cjs");
8
9
  const Content = require("./components/Content/Content.cjs");
9
10
  const Header = require("./components/Header/Header.cjs");
@@ -24,6 +25,15 @@ const Drawer = Object.assign(({
24
25
  ...props
25
26
  }) => {
26
27
  const theme = redisUiStyles.useTheme();
28
+ const {
29
+ prefersReducedMotion
30
+ } = useReducedMotionLifecycleSync.useReducedMotionLifecycleSync({
31
+ open,
32
+ onDrawerWillOpen,
33
+ onDrawerDidOpen,
34
+ onDrawerWillClose,
35
+ onDrawerDidClose
36
+ });
27
37
  const handleOnAnimationStart = () => {
28
38
  if (open) {
29
39
  onDrawerWillOpen == null ? void 0 : onDrawerWillOpen();
@@ -52,8 +62,8 @@ const Drawer = Object.assign(({
52
62
  children: jsxRuntime.jsxRuntimeExports.jsxs(index.Portal, {
53
63
  container: containerElement,
54
64
  children: [persistent && jsxRuntime.jsxRuntimeExports.jsx(Overlay.default, {}), jsxRuntime.jsxRuntimeExports.jsx(Content.default, {
55
- onAnimationStart: handleOnAnimationStart,
56
- onAnimationEndCapture: handleOnAnimationEnd,
65
+ onAnimationStart: prefersReducedMotion ? void 0 : handleOnAnimationStart,
66
+ onAnimationEndCapture: prefersReducedMotion ? void 0 : handleOnAnimationEnd,
57
67
  ...props,
58
68
  children
59
69
  })]
@@ -2,6 +2,7 @@ import { j as jsxRuntimeExports } from "../node_modules/react/jsx-runtime.js";
2
2
  import { Root, Portal } from "../node_modules/@radix-ui/react-dialog/dist/index.js";
3
3
  import { useTheme } from "@redislabsdev/redis-ui-styles";
4
4
  import { DrawerContext } from "./Drawer.context.js";
5
+ import { useReducedMotionLifecycleSync } from "./hooks/useReducedMotionLifecycleSync.js";
5
6
  import Overlay from "./components/Overlay/Overlay.js";
6
7
  import Content from "./components/Content/Content.js";
7
8
  import Header from "./components/Header/Header.js";
@@ -22,6 +23,15 @@ const Drawer = Object.assign(({
22
23
  ...props
23
24
  }) => {
24
25
  const theme = useTheme();
26
+ const {
27
+ prefersReducedMotion
28
+ } = useReducedMotionLifecycleSync({
29
+ open,
30
+ onDrawerWillOpen,
31
+ onDrawerDidOpen,
32
+ onDrawerWillClose,
33
+ onDrawerDidClose
34
+ });
25
35
  const handleOnAnimationStart = () => {
26
36
  if (open) {
27
37
  onDrawerWillOpen == null ? void 0 : onDrawerWillOpen();
@@ -50,8 +60,8 @@ const Drawer = Object.assign(({
50
60
  children: jsxRuntimeExports.jsxs(Portal, {
51
61
  container: containerElement,
52
62
  children: [persistent && jsxRuntimeExports.jsx(Overlay, {}), jsxRuntimeExports.jsx(Content, {
53
- onAnimationStart: handleOnAnimationStart,
54
- onAnimationEndCapture: handleOnAnimationEnd,
63
+ onAnimationStart: prefersReducedMotion ? void 0 : handleOnAnimationStart,
64
+ onAnimationEndCapture: prefersReducedMotion ? void 0 : handleOnAnimationEnd,
55
65
  ...props,
56
66
  children
57
67
  })]
@@ -20,7 +20,7 @@ const slideOut = _styled.keyframes`
20
20
  const DrawerContent = _styled__default.default(index.Content).withConfig({
21
21
  displayName: "Contentstyle__DrawerContent",
22
22
  componentId: "RedisUI__sc-19kw0pf-1"
23
- })(["pointer-events:all;display:flex;z-index:", ";flex-direction:column;background-color:", ";box-shadow:", ";position:", ";top:0;bottom:0;right:0;width:", ";&[data-state='open']{animation:", " 200ms ease-in-out;}&[data-state='closed']{animation:", " 200ms ease-in-out;}"], ({
23
+ })(["pointer-events:all;display:flex;z-index:", ";flex-direction:column;background-color:", ";box-shadow:", ";position:", ";top:0;bottom:0;right:0;width:", ";&[data-state='open']{animation:", " 200ms ease-in-out;}&[data-state='closed']{animation:", " 200ms ease-in-out;}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"], ({
24
24
  $zIndex
25
25
  }) => $zIndex, () => redisUiStyles.useTheme().components.drawer.bgColor, () => redisUiStyles.useTheme().components.drawer.shadow, ({
26
26
  $isRenderedInsideContainer
@@ -16,7 +16,7 @@ const slideOut = keyframes`
16
16
  const DrawerContent = _styled(Content).withConfig({
17
17
  displayName: "Contentstyle__DrawerContent",
18
18
  componentId: "RedisUI__sc-19kw0pf-1"
19
- })(["pointer-events:all;display:flex;z-index:", ";flex-direction:column;background-color:", ";box-shadow:", ";position:", ";top:0;bottom:0;right:0;width:", ";&[data-state='open']{animation:", " 200ms ease-in-out;}&[data-state='closed']{animation:", " 200ms ease-in-out;}"], ({
19
+ })(["pointer-events:all;display:flex;z-index:", ";flex-direction:column;background-color:", ";box-shadow:", ";position:", ";top:0;bottom:0;right:0;width:", ";&[data-state='open']{animation:", " 200ms ease-in-out;}&[data-state='closed']{animation:", " 200ms ease-in-out;}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"], ({
20
20
  $zIndex
21
21
  }) => $zIndex, () => useTheme().components.drawer.bgColor, () => useTheme().components.drawer.shadow, ({
22
22
  $isRenderedInsideContainer
@@ -15,7 +15,7 @@ const fadeOut = _styled.keyframes`
15
15
  const DrawerOverlay = _styled__default.default.div.withConfig({
16
16
  displayName: "Overlaystyle__DrawerOverlay",
17
17
  componentId: "RedisUI__sc-1afbvm0-0"
18
- })(["z-index:", ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:", ";&[data-state='open']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}&[data-state='closed']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}"], ({
18
+ })(["z-index:", ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:", ";&[data-state='open']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}&[data-state='closed']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"], ({
19
19
  $zIndex
20
20
  }) => $zIndex - 1, () => redisUiStyles.useTheme().components.drawer.overlay.bgColor, fadeIn, fadeOut);
21
21
  exports.DrawerOverlay = DrawerOverlay;
@@ -11,7 +11,7 @@ const fadeOut = keyframes`
11
11
  const DrawerOverlay = _styled.div.withConfig({
12
12
  displayName: "Overlaystyle__DrawerOverlay",
13
13
  componentId: "RedisUI__sc-1afbvm0-0"
14
- })(["z-index:", ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:", ";&[data-state='open']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}&[data-state='closed']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}"], ({
14
+ })(["z-index:", ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:", ";&[data-state='open']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}&[data-state='closed']{animation:", " 150ms cubic-bezier(0.22,1,0.36,1);}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"], ({
15
15
  $zIndex
16
16
  }) => $zIndex - 1, () => useTheme().components.drawer.overlay.bgColor, fadeIn, fadeOut);
17
17
  export {
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const React = require("react");
4
+ const redisUiStyles = require("@redislabsdev/redis-ui-styles");
5
+ const useReducedMotionLifecycleSync = ({
6
+ open,
7
+ onDrawerWillOpen,
8
+ onDrawerDidOpen,
9
+ onDrawerWillClose,
10
+ onDrawerDidClose
11
+ }) => {
12
+ const prefersReducedMotion = redisUiStyles.usePrefersReducedMotion();
13
+ const isInitialRender = React.useRef(true);
14
+ React.useEffect(() => {
15
+ if (isInitialRender.current) {
16
+ isInitialRender.current = false;
17
+ return;
18
+ }
19
+ let rafId;
20
+ if (prefersReducedMotion) {
21
+ rafId = requestAnimationFrame(() => {
22
+ if (open) {
23
+ onDrawerWillOpen == null ? void 0 : onDrawerWillOpen();
24
+ onDrawerDidOpen == null ? void 0 : onDrawerDidOpen();
25
+ } else {
26
+ onDrawerWillClose == null ? void 0 : onDrawerWillClose();
27
+ onDrawerDidClose == null ? void 0 : onDrawerDidClose();
28
+ }
29
+ });
30
+ }
31
+ return () => {
32
+ if (rafId !== void 0) {
33
+ cancelAnimationFrame(rafId);
34
+ }
35
+ };
36
+ }, [open, prefersReducedMotion, onDrawerWillOpen, onDrawerDidOpen, onDrawerWillClose, onDrawerDidClose]);
37
+ return {
38
+ prefersReducedMotion
39
+ };
40
+ };
41
+ exports.useReducedMotionLifecycleSync = useReducedMotionLifecycleSync;
@@ -0,0 +1,15 @@
1
+ interface UseReducedMotionLifecycleSyncOptions {
2
+ open: boolean;
3
+ onDrawerWillOpen?: () => void;
4
+ onDrawerDidOpen?: () => void;
5
+ onDrawerWillClose?: () => void;
6
+ onDrawerDidClose?: () => void;
7
+ }
8
+ /**
9
+ * When reduced motion is enabled, CSS animations are disabled and animation events won't fire.
10
+ * This hook ensures lifecycle callbacks are still invoked immediately when the open state changes.
11
+ */
12
+ export declare const useReducedMotionLifecycleSync: ({ open, onDrawerWillOpen, onDrawerDidOpen, onDrawerWillClose, onDrawerDidClose }: UseReducedMotionLifecycleSyncOptions) => {
13
+ prefersReducedMotion: boolean;
14
+ };
15
+ export {};
@@ -0,0 +1,41 @@
1
+ import { useRef, useEffect } from "react";
2
+ import { usePrefersReducedMotion } from "@redislabsdev/redis-ui-styles";
3
+ const useReducedMotionLifecycleSync = ({
4
+ open,
5
+ onDrawerWillOpen,
6
+ onDrawerDidOpen,
7
+ onDrawerWillClose,
8
+ onDrawerDidClose
9
+ }) => {
10
+ const prefersReducedMotion = usePrefersReducedMotion();
11
+ const isInitialRender = useRef(true);
12
+ useEffect(() => {
13
+ if (isInitialRender.current) {
14
+ isInitialRender.current = false;
15
+ return;
16
+ }
17
+ let rafId;
18
+ if (prefersReducedMotion) {
19
+ rafId = requestAnimationFrame(() => {
20
+ if (open) {
21
+ onDrawerWillOpen == null ? void 0 : onDrawerWillOpen();
22
+ onDrawerDidOpen == null ? void 0 : onDrawerDidOpen();
23
+ } else {
24
+ onDrawerWillClose == null ? void 0 : onDrawerWillClose();
25
+ onDrawerDidClose == null ? void 0 : onDrawerDidClose();
26
+ }
27
+ });
28
+ }
29
+ return () => {
30
+ if (rafId !== void 0) {
31
+ cancelAnimationFrame(rafId);
32
+ }
33
+ };
34
+ }, [open, prefersReducedMotion, onDrawerWillOpen, onDrawerDidOpen, onDrawerWillClose, onDrawerDidClose]);
35
+ return {
36
+ prefersReducedMotion
37
+ };
38
+ };
39
+ export {
40
+ useReducedMotionLifecycleSync
41
+ };
@@ -6,14 +6,14 @@ const HighlightedIcon_style = require("./HighlightedIcon.style.cjs");
6
6
  const HighlightedIcon = ({
7
7
  icon: IconComponent,
8
8
  size = "M",
9
- type = "primary",
9
+ variant = "primary",
10
10
  ...restProps
11
11
  }) => {
12
12
  const theme = redisUiStyles.useTheme();
13
13
  const iconSize = theme.core.icon.size[size];
14
14
  return jsxRuntime.jsxRuntimeExports.jsx(HighlightedIcon_style.HighlightedIconContainer, {
15
15
  "$size": size,
16
- "$type": type,
16
+ "$variant": variant,
17
17
  ...restProps,
18
18
  children: jsxRuntime.jsxRuntimeExports.jsx(IconComponent, {
19
19
  customColor: "currentColor",
@@ -1,3 +1,3 @@
1
1
  import { HighlightedIconProps } from './HighlightedIcon.types';
2
- declare const HighlightedIcon: ({ icon: IconComponent, size, type, ...restProps }: HighlightedIconProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const HighlightedIcon: ({ icon: IconComponent, size, variant, ...restProps }: HighlightedIconProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default HighlightedIcon;
@@ -4,14 +4,14 @@ import { HighlightedIconContainer } from "./HighlightedIcon.style.js";
4
4
  const HighlightedIcon = ({
5
5
  icon: IconComponent,
6
6
  size = "M",
7
- type = "primary",
7
+ variant = "primary",
8
8
  ...restProps
9
9
  }) => {
10
10
  const theme = useTheme();
11
11
  const iconSize = theme.core.icon.size[size];
12
12
  return jsxRuntimeExports.jsx(HighlightedIconContainer, {
13
13
  "$size": size,
14
- "$type": type,
14
+ "$variant": variant,
15
15
  ...restProps,
16
16
  children: jsxRuntimeExports.jsx(IconComponent, {
17
17
  customColor: "currentColor",
@@ -30,9 +30,9 @@ const SIZE_MAP = {
30
30
  borderRadius: "0.8rem"
31
31
  }
32
32
  };
33
- const getColors = (type) => {
33
+ const getColors = (variant) => {
34
34
  const theme = redisUiStyles.useTheme();
35
- return theme.components.highlightedIcon.variants[type];
35
+ return theme.components.highlightedIcon.variants[variant];
36
36
  };
37
37
  const HighlightedIconContainer = _styled__default.default.div.withConfig({
38
38
  displayName: "HighlightedIconstyle__HighlightedIconContainer",
@@ -40,10 +40,10 @@ const HighlightedIconContainer = _styled__default.default.div.withConfig({
40
40
  })(["display:inline-flex;align-items:center;justify-content:center;width:", ";aspect-ratio:1;background-color:", ";color:", ";border-radius:", ";flex-shrink:0;"], ({
41
41
  $size
42
42
  }) => SIZE_MAP[$size].size, ({
43
- $type
44
- }) => getColors($type).background, ({
45
- $type
46
- }) => getColors($type).text, ({
43
+ $variant
44
+ }) => getColors($variant).background, ({
45
+ $variant
46
+ }) => getColors($variant).text, ({
47
47
  $size
48
48
  }) => SIZE_MAP[$size].borderRadius);
49
49
  exports.HighlightedIconContainer = HighlightedIconContainer;
@@ -1,5 +1,5 @@
1
- import { HighlightedIconType, IconSizeType } from '@redislabsdev/redis-ui-styles';
1
+ import { HighlightedIconVariant, IconSizeType } from '@redislabsdev/redis-ui-styles';
2
2
  export declare const HighlightedIconContainer: import("styled-components").StyledComponent<"div", any, {
3
3
  $size: IconSizeType;
4
- $type: HighlightedIconType;
4
+ $variant: HighlightedIconVariant;
5
5
  }, never>;
@@ -26,9 +26,9 @@ const SIZE_MAP = {
26
26
  borderRadius: "0.8rem"
27
27
  }
28
28
  };
29
- const getColors = (type) => {
29
+ const getColors = (variant) => {
30
30
  const theme = useTheme();
31
- return theme.components.highlightedIcon.variants[type];
31
+ return theme.components.highlightedIcon.variants[variant];
32
32
  };
33
33
  const HighlightedIconContainer = _styled.div.withConfig({
34
34
  displayName: "HighlightedIconstyle__HighlightedIconContainer",
@@ -36,10 +36,10 @@ const HighlightedIconContainer = _styled.div.withConfig({
36
36
  })(["display:inline-flex;align-items:center;justify-content:center;width:", ";aspect-ratio:1;background-color:", ";color:", ";border-radius:", ";flex-shrink:0;"], ({
37
37
  $size
38
38
  }) => SIZE_MAP[$size].size, ({
39
- $type
40
- }) => getColors($type).background, ({
41
- $type
42
- }) => getColors($type).text, ({
39
+ $variant
40
+ }) => getColors($variant).background, ({
41
+ $variant
42
+ }) => getColors($variant).text, ({
43
43
  $size
44
44
  }) => SIZE_MAP[$size].borderRadius);
45
45
  export {
@@ -1,8 +1,8 @@
1
1
  import { HTMLAttributes } from 'react';
2
2
  import { IconType as IconComponent } from '@redislabsdev/redis-ui-icons';
3
- import { HighlightedIconType, IconSizeType } from '@redislabsdev/redis-ui-styles';
3
+ import { HighlightedIconVariant, IconSizeType } from '@redislabsdev/redis-ui-styles';
4
4
  export interface HighlightedIconProps extends HTMLAttributes<HTMLDivElement> {
5
5
  icon: IconComponent;
6
6
  size?: IconSizeType;
7
- type?: HighlightedIconType;
7
+ variant?: HighlightedIconVariant;
8
8
  }
@@ -68,7 +68,7 @@ const CommonInputCompose = _styled__default.default.div.attrs(() => ({
68
68
  })).withConfig({
69
69
  displayName: "Composestyle__CommonInputCompose",
70
70
  componentId: "RedisUI__sc-1vsempl-0"
71
- })(["display:flex;align-items:center;box-sizing:border-box;transition:border-color 0.2s ease-in;", ";", ";&{", ";}&&&{", ";}"], () => {
71
+ })(["display:flex;align-items:center;box-sizing:border-box;transition:border-color 0.2s ease-in;@media (prefers-reduced-motion:reduce){transition:none;}", ";", ";&{", ";}&&&{", ";}"], () => {
72
72
  const style = redisUiStyles.useTheme().components.input;
73
73
  return _styled.css`
74
74
  height: ${style.height};
@@ -64,7 +64,7 @@ const CommonInputCompose = _styled.div.attrs(() => ({
64
64
  })).withConfig({
65
65
  displayName: "Composestyle__CommonInputCompose",
66
66
  componentId: "RedisUI__sc-1vsempl-0"
67
- })(["display:flex;align-items:center;box-sizing:border-box;transition:border-color 0.2s ease-in;", ";", ";&{", ";}&&&{", ";}"], () => {
67
+ })(["display:flex;align-items:center;box-sizing:border-box;transition:border-color 0.2s ease-in;@media (prefers-reduced-motion:reduce){transition:none;}", ";", ";&{", ";}&&&{", ";}"], () => {
68
68
  const style = useTheme().components.input;
69
69
  return css`
70
70
  height: ${style.height};
@@ -5,7 +5,7 @@ const redisUiStyles = require("@redislabsdev/redis-ui-styles");
5
5
  const index = require("../node_modules/@radix-ui/react-visually-hidden/dist/index.cjs");
6
6
  const Loader_style = require("./Loader.style.cjs");
7
7
  const Loader = ({
8
- size,
8
+ size = "XL",
9
9
  inline = false,
10
10
  dataTestId,
11
11
  loaderText,
@@ -24,7 +24,7 @@ const Loader = ({
24
24
  children: [jsxRuntime.jsxRuntimeExports.jsx(Loader_style.LoaderSVG, {
25
25
  "$variant": variant,
26
26
  title,
27
- customSize: size ?? theme.size,
27
+ customSize: theme.sizes[size],
28
28
  "data-testid": dataTestId,
29
29
  "aria-hidden": true
30
30
  }), loaderText ? jsxRuntime.jsxRuntimeExports.jsx(Loader_style.MessageText, {
@@ -3,7 +3,7 @@ import { useTheme } from "@redislabsdev/redis-ui-styles";
3
3
  import { VisuallyHidden } from "../node_modules/@radix-ui/react-visually-hidden/dist/index.js";
4
4
  import { Container, InnerFlexContainer, LoaderSVG, MessageText } from "./Loader.style.js";
5
5
  const Loader = ({
6
- size,
6
+ size = "XL",
7
7
  inline = false,
8
8
  dataTestId,
9
9
  loaderText,
@@ -22,7 +22,7 @@ const Loader = ({
22
22
  children: [jsxRuntimeExports.jsx(LoaderSVG, {
23
23
  "$variant": variant,
24
24
  title,
25
- customSize: size ?? theme.size,
25
+ customSize: theme.sizes[size],
26
26
  "data-testid": dataTestId,
27
27
  "aria-hidden": true
28
28
  }), loaderText ? jsxRuntimeExports.jsx(MessageText, {
@@ -1,6 +1,7 @@
1
+ import type { LoaderSize } from '@redislabsdev/redis-ui-styles';
1
2
  export type LoaderVariants = 'regular' | 'pending' | 'inverse';
2
3
  export interface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {
3
- size?: string;
4
+ size?: LoaderSize;
4
5
  inline?: boolean;
5
6
  loaderText?: string;
6
7
  /**
@@ -1,2 +1,3 @@
1
1
  export { default as Loader } from './Loader';
2
2
  export * from './Loader.types';
3
+ export type { LoaderSize } from '@redislabsdev/redis-ui-styles';
@@ -7,5 +7,5 @@ const _styled__default = /* @__PURE__ */ _interopDefault(_styled);
7
7
  const ArrowDownIconWrapper = _styled__default.default(redisUiIcons.ChevronDownIcon).withConfig({
8
8
  displayName: "Arrowstyle__ArrowDownIconWrapper",
9
9
  componentId: "RedisUI__sc-mwk54p-0"
10
- })(["[data-state='open'] &{rotate:180deg;}[data-state='closed'] &{rotate:0deg;}transition:rotate 0.5s;"]);
10
+ })(["[data-state='open'] &{rotate:180deg;}[data-state='closed'] &{rotate:0deg;}transition:rotate 0.5s;@media (prefers-reduced-motion:reduce){transition:none;}"]);
11
11
  exports.ArrowDownIconWrapper = ArrowDownIconWrapper;
@@ -3,7 +3,7 @@ import { ChevronDownIcon } from "@redislabsdev/redis-ui-icons";
3
3
  const ArrowDownIconWrapper = _styled(ChevronDownIcon).withConfig({
4
4
  displayName: "Arrowstyle__ArrowDownIconWrapper",
5
5
  componentId: "RedisUI__sc-mwk54p-0"
6
- })(["[data-state='open'] &{rotate:180deg;}[data-state='closed'] &{rotate:0deg;}transition:rotate 0.5s;"]);
6
+ })(["[data-state='open'] &{rotate:180deg;}[data-state='closed'] &{rotate:0deg;}transition:rotate 0.5s;@media (prefers-reduced-motion:reduce){transition:none;}"]);
7
7
  export {
8
8
  ArrowDownIconWrapper
9
9
  };
@@ -1,9 +1,10 @@
1
1
  import { IconType } from '@redislabsdev/redis-ui-icons';
2
+ import { WindowBarVariant } from '@redislabsdev/redis-ui-styles';
2
3
  import { WindowBarComposeProps } from './components/Compose/Compose.types';
3
- import { BadgeProps, BadgeVariants } from '../../../../../Badge';
4
+ import { BadgeProps } from '../../../../../Badge';
4
5
  export interface WindowBarProps extends WindowBarComposeProps, Pick<BadgeProps, 'icon'> {
5
6
  title?: string;
6
- variant?: BadgeVariants;
7
+ variant?: WindowBarVariant;
7
8
  hideCloseButton?: boolean;
8
9
  withIcon?: boolean;
9
10
  icon?: IconType;
@@ -1,5 +1,4 @@
1
- import { Theme } from '@redislabsdev/redis-ui-styles';
1
+ import { Theme, WindowBarVariant } from '@redislabsdev/redis-ui-styles';
2
2
  import { WindowBarComposeProps } from './Compose.types';
3
- import { BadgeVariants } from '../../../../../../../Badge';
4
- export declare const getVariantStyle: (theme: Theme, variant: BadgeVariants) => import("@redislabsdev/redis-ui-styles").WindowBarVariantStyle;
3
+ export declare const getVariantStyle: (theme: Theme, variant: WindowBarVariant) => import("@redislabsdev/redis-ui-styles").WindowBarVariantStyle;
5
4
  export declare const Container: import("styled-components").StyledComponent<"div", any, WindowBarComposeProps, never>;
@@ -1,4 +1,4 @@
1
- import { BadgeVariants } from '../../../../../../../Badge';
1
+ import { WindowBarVariant } from '@redislabsdev/redis-ui-styles';
2
2
  export interface WindowBarComposeProps extends React.HTMLAttributes<HTMLDivElement> {
3
- variant?: BadgeVariants;
3
+ variant?: WindowBarVariant;
4
4
  }
@@ -17,7 +17,7 @@ const Root = _styled__default.default(index.Root).withConfig({
17
17
  const Indicator = _styled__default.default(index.Indicator).withConfig({
18
18
  displayName: "ProgressBarstyle__Indicator",
19
19
  componentId: "RedisUI__sc-cdzix5-1"
20
- })(["width:100%;height:100%;background-color:", ";transform:", ";transition:transform 660ms cubic-bezier(0.65,0,0.35,1);"], ({
20
+ })(["width:100%;height:100%;background-color:", ";transform:", ";transition:transform 660ms cubic-bezier(0.65,0,0.35,1);@media (prefers-reduced-motion:reduce){transition:none;}"], ({
21
21
  variant
22
22
  }) => redisUiStyles.useTheme().components.progressBar.indicator.variant[variant].color, ({
23
23
  value
@@ -13,7 +13,7 @@ const Root = _styled(Root$1).withConfig({
13
13
  const Indicator = _styled(Indicator$1).withConfig({
14
14
  displayName: "ProgressBarstyle__Indicator",
15
15
  componentId: "RedisUI__sc-cdzix5-1"
16
- })(["width:100%;height:100%;background-color:", ";transform:", ";transition:transform 660ms cubic-bezier(0.65,0,0.35,1);"], ({
16
+ })(["width:100%;height:100%;background-color:", ";transform:", ";transition:transform 660ms cubic-bezier(0.65,0,0.35,1);@media (prefers-reduced-motion:reduce){transition:none;}"], ({
17
17
  variant
18
18
  }) => useTheme().components.progressBar.indicator.variant[variant].color, ({
19
19
  value
@@ -12,6 +12,6 @@ const FiltersContainer = _styled__default.default.div.withConfig({
12
12
  const CollapsedFiltersContainer = _styled__default.default(index.Content).withConfig({
13
13
  displayName: "FiltersSectionstyle__CollapsedFiltersContainer",
14
14
  componentId: "RedisUI__sc-vf7bf2-1"
15
- })(["overflow:hidden;&[data-state='open']{animation:slideDown 200ms ease-out;}&[data-state='closed']{animation:slideUp 200ms ease-out;}@keyframes slideDown{from{height:0;}to{height:var(--radix-collapsible-content-height);}}@keyframes slideUp{from{height:var(--radix-collapsible-content-height);}to{height:0;}}"]);
15
+ })(["overflow:hidden;&[data-state='open']{animation:slideDown 200ms ease-out;}&[data-state='closed']{animation:slideUp 200ms ease-out;}@keyframes slideDown{from{height:0;}to{height:var(--radix-collapsible-content-height);}}@keyframes slideUp{from{height:var(--radix-collapsible-content-height);}to{height:0;}}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"]);
16
16
  exports.CollapsedFiltersContainer = CollapsedFiltersContainer;
17
17
  exports.FiltersContainer = FiltersContainer;
@@ -8,7 +8,7 @@ const FiltersContainer = _styled.div.withConfig({
8
8
  const CollapsedFiltersContainer = _styled(Content).withConfig({
9
9
  displayName: "FiltersSectionstyle__CollapsedFiltersContainer",
10
10
  componentId: "RedisUI__sc-vf7bf2-1"
11
- })(["overflow:hidden;&[data-state='open']{animation:slideDown 200ms ease-out;}&[data-state='closed']{animation:slideUp 200ms ease-out;}@keyframes slideDown{from{height:0;}to{height:var(--radix-collapsible-content-height);}}@keyframes slideUp{from{height:var(--radix-collapsible-content-height);}to{height:0;}}"]);
11
+ })(["overflow:hidden;&[data-state='open']{animation:slideDown 200ms ease-out;}&[data-state='closed']{animation:slideUp 200ms ease-out;}@keyframes slideDown{from{height:0;}to{height:var(--radix-collapsible-content-height);}}@keyframes slideUp{from{height:var(--radix-collapsible-content-height);}to{height:0;}}@media (prefers-reduced-motion:reduce){&[data-state='open'],&[data-state='closed']{animation:none;}}"]);
12
12
  export {
13
13
  CollapsedFiltersContainer,
14
14
  FiltersContainer