@redneckz/wildless-cms-uni-blocks 0.14.875 → 0.14.876

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 (115) hide show
  1. package/bundle/bundle.umd.js +78 -46
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/components/Header/DropdownButton.d.ts +2 -0
  4. package/bundle/components/Header/DropdownMenu.d.ts +5 -2
  5. package/bundle/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  6. package/bundle/components/Header/HeaderSubMenuItem.d.ts +3 -0
  7. package/bundle/components/Header/useDropdownSubMenu.d.ts +11 -0
  8. package/bundle/data/NavigationData.d.ts +1 -0
  9. package/dist/components/Header/DropdownButton.d.ts +2 -0
  10. package/dist/components/Header/DropdownButton.js +11 -0
  11. package/dist/components/Header/DropdownButton.js.map +1 -0
  12. package/dist/components/Header/DropdownMenu.d.ts +5 -2
  13. package/dist/components/Header/DropdownMenu.js +2 -36
  14. package/dist/components/Header/DropdownMenu.js.map +1 -1
  15. package/dist/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  16. package/dist/components/Header/HeaderMoreMenuItem.js +27 -0
  17. package/dist/components/Header/HeaderMoreMenuItem.js.map +1 -0
  18. package/dist/components/Header/HeaderSubMenu.js +2 -2
  19. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  20. package/dist/components/Header/HeaderSubMenuItem.d.ts +3 -0
  21. package/dist/components/Header/HeaderSubMenuItem.js +19 -2
  22. package/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
  23. package/dist/components/Header/HeaderTopMenu.js +2 -2
  24. package/dist/components/Header/HeaderTopMenu.js.map +1 -1
  25. package/dist/components/Header/useDropdownSubMenu.d.ts +11 -0
  26. package/dist/components/Header/useDropdownSubMenu.js +37 -0
  27. package/dist/components/Header/useDropdownSubMenu.js.map +1 -0
  28. package/dist/data/NavigationData.d.ts +1 -0
  29. package/lib/components/Header/DropdownButton.d.ts +2 -0
  30. package/lib/components/Header/DropdownButton.js +9 -0
  31. package/lib/components/Header/DropdownButton.js.map +1 -0
  32. package/lib/components/Header/DropdownMenu.d.ts +5 -2
  33. package/lib/components/Header/DropdownMenu.js +2 -37
  34. package/lib/components/Header/DropdownMenu.js.map +1 -1
  35. package/lib/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  36. package/lib/components/Header/HeaderMoreMenuItem.js +25 -0
  37. package/lib/components/Header/HeaderMoreMenuItem.js.map +1 -0
  38. package/lib/components/Header/HeaderSubMenu.js +2 -2
  39. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  40. package/lib/components/Header/HeaderSubMenuItem.d.ts +3 -0
  41. package/lib/components/Header/HeaderSubMenuItem.js +20 -3
  42. package/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
  43. package/lib/components/Header/HeaderTopMenu.js +2 -2
  44. package/lib/components/Header/HeaderTopMenu.js.map +1 -1
  45. package/lib/components/Header/useDropdownSubMenu.d.ts +11 -0
  46. package/lib/components/Header/useDropdownSubMenu.js +34 -0
  47. package/lib/components/Header/useDropdownSubMenu.js.map +1 -0
  48. package/lib/data/NavigationData.d.ts +1 -0
  49. package/mobile/bundle/bundle.umd.js +1 -1
  50. package/mobile/bundle/bundle.umd.min.js +1 -1
  51. package/mobile/bundle/components/Header/DropdownButton.d.ts +2 -0
  52. package/mobile/bundle/components/Header/DropdownMenu.d.ts +5 -2
  53. package/mobile/bundle/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  54. package/mobile/bundle/components/Header/HeaderSubMenuItem.d.ts +3 -0
  55. package/mobile/bundle/components/Header/useDropdownSubMenu.d.ts +11 -0
  56. package/mobile/bundle/data/NavigationData.d.ts +1 -0
  57. package/mobile/dist/components/Header/DropdownButton.d.ts +2 -0
  58. package/mobile/dist/components/Header/DropdownButton.js +11 -0
  59. package/mobile/dist/components/Header/DropdownButton.js.map +1 -0
  60. package/mobile/dist/components/Header/DropdownMenu.d.ts +5 -2
  61. package/mobile/dist/components/Header/DropdownMenu.js +2 -36
  62. package/mobile/dist/components/Header/DropdownMenu.js.map +1 -1
  63. package/mobile/dist/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  64. package/mobile/dist/components/Header/HeaderMoreMenuItem.js +27 -0
  65. package/mobile/dist/components/Header/HeaderMoreMenuItem.js.map +1 -0
  66. package/mobile/dist/components/Header/HeaderSubMenu.js +2 -2
  67. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  68. package/mobile/dist/components/Header/HeaderSubMenuItem.d.ts +3 -0
  69. package/mobile/dist/components/Header/HeaderSubMenuItem.js +19 -2
  70. package/mobile/dist/components/Header/HeaderSubMenuItem.js.map +1 -1
  71. package/mobile/dist/components/Header/HeaderTopMenu.js +2 -2
  72. package/mobile/dist/components/Header/HeaderTopMenu.js.map +1 -1
  73. package/mobile/dist/components/Header/useDropdownSubMenu.d.ts +11 -0
  74. package/mobile/dist/components/Header/useDropdownSubMenu.js +37 -0
  75. package/mobile/dist/components/Header/useDropdownSubMenu.js.map +1 -0
  76. package/mobile/dist/data/NavigationData.d.ts +1 -0
  77. package/mobile/lib/components/Header/DropdownButton.d.ts +2 -0
  78. package/mobile/lib/components/Header/DropdownButton.js +9 -0
  79. package/mobile/lib/components/Header/DropdownButton.js.map +1 -0
  80. package/mobile/lib/components/Header/DropdownMenu.d.ts +5 -2
  81. package/mobile/lib/components/Header/DropdownMenu.js +2 -37
  82. package/mobile/lib/components/Header/DropdownMenu.js.map +1 -1
  83. package/mobile/lib/components/Header/HeaderMoreMenuItem.d.ts +9 -0
  84. package/mobile/lib/components/Header/HeaderMoreMenuItem.js +25 -0
  85. package/mobile/lib/components/Header/HeaderMoreMenuItem.js.map +1 -0
  86. package/mobile/lib/components/Header/HeaderSubMenu.js +2 -2
  87. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  88. package/mobile/lib/components/Header/HeaderSubMenuItem.d.ts +3 -0
  89. package/mobile/lib/components/Header/HeaderSubMenuItem.js +20 -3
  90. package/mobile/lib/components/Header/HeaderSubMenuItem.js.map +1 -1
  91. package/mobile/lib/components/Header/HeaderTopMenu.js +2 -2
  92. package/mobile/lib/components/Header/HeaderTopMenu.js.map +1 -1
  93. package/mobile/lib/components/Header/useDropdownSubMenu.d.ts +11 -0
  94. package/mobile/lib/components/Header/useDropdownSubMenu.js +34 -0
  95. package/mobile/lib/components/Header/useDropdownSubMenu.js.map +1 -0
  96. package/mobile/lib/data/NavigationData.d.ts +1 -0
  97. package/mobile/src/components/Header/DropdownButton.tsx +26 -0
  98. package/mobile/src/components/Header/DropdownMenu.tsx +15 -85
  99. package/mobile/src/components/Header/HeaderMoreMenuItem.tsx +60 -0
  100. package/mobile/src/components/Header/HeaderSubMenu.tsx +3 -2
  101. package/mobile/src/components/Header/HeaderSubMenuItem.tsx +31 -5
  102. package/mobile/src/components/Header/HeaderTopMenu.tsx +3 -3
  103. package/mobile/src/components/Header/useDropdownSubMenu.tsx +48 -0
  104. package/mobile/src/data/NavigationData.ts +1 -0
  105. package/package.json +1 -1
  106. package/src/components/Header/DropdownButton.tsx +26 -0
  107. package/src/components/Header/DropdownMenu.tsx +15 -85
  108. package/src/components/Header/Header.fixture.tsx +4 -0
  109. package/src/components/Header/HeaderMoreMenuItem.tsx +60 -0
  110. package/src/components/Header/HeaderSubMenu.tsx +3 -2
  111. package/src/components/Header/HeaderSubMenuItem.tsx +31 -5
  112. package/src/components/Header/HeaderTopMenu.tsx +3 -3
  113. package/src/components/Header/useDropdownSubMenu.tsx +48 -0
  114. package/src/data/NavigationData.ts +1 -0
  115. package/src/icons/IconName.ts +4 -4
@@ -1,8 +1,4 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useCallback, useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
3
- import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
- import { useEventListener } from '@redneckz/uni-jsx/lib/hooks/useEventListener';
5
- import { useOutsideClick } from '@redneckz/uni-jsx/lib/hooks/useOutsideClick';
6
2
  import { useLink } from '../../hooks/useLink';
7
3
  import { type ComponentType } from '../../model/ComponentType';
8
4
  import { type LinkProps } from '../../model/LinkProps';
@@ -10,91 +6,25 @@ import { getAspectsAttributes } from '../../utils/dataAttributes';
10
6
  import { style } from '../../utils/style';
11
7
 
12
8
  interface DropdownMenuProps extends ComponentType {
13
- items: LinkProps[];
9
+ dropdownRef?: { current: HTMLDivElement | null };
10
+ items?: LinkProps[];
14
11
  activeItem?: LinkProps;
15
12
  ariaLabel?: string;
16
13
  }
17
14
 
18
- interface ChangeDropdownPositionParams {
19
- isOpened: boolean;
20
- buttonRef: {
21
- current: HTMLDivElement | null;
22
- };
23
- menuRef: {
24
- current: HTMLDivElement | null;
25
- };
26
- }
27
-
28
- export const DropdownMenu = JSX<DropdownMenuProps>(
29
- ({ className = '', items, activeItem, ariaLabel = 'Меню' }) => {
30
- const [isVisible, { setFalse, toggle }] = useBool(false);
31
- const ref = useOutsideClick<HTMLDivElement>(setFalse);
32
- const dropdownRef = useRef<HTMLDivElement | null>(null);
33
-
34
- const changeDropdownPosition = useCallback(
35
- ({ isOpened, buttonRef, menuRef }: ChangeDropdownPositionParams) => {
36
- if (isOpened && buttonRef.current && menuRef.current) {
37
- const dropdownRect = menuRef.current.getBoundingClientRect();
38
- const dropdownButtonRect = buttonRef.current.getBoundingClientRect();
39
- const newDropdownPosition = globalThis.innerWidth - dropdownRect.width;
40
-
41
- if (dropdownRect.right >= globalThis.innerWidth) {
42
- menuRef.current.style.left = `${newDropdownPosition}px`;
43
- } else if (dropdownButtonRect.left > dropdownRect.left) {
44
- if (newDropdownPosition > dropdownButtonRect.left) {
45
- menuRef.current.style.left = '';
46
- } else {
47
- menuRef.current.style.left = `${newDropdownPosition}px`;
48
- }
49
- }
50
- }
51
- },
52
- [isVisible],
53
- );
54
-
55
- useEventListener(globalThis, 'resize', () =>
56
- changeDropdownPosition({ isOpened: isVisible, buttonRef: ref, menuRef: dropdownRef }),
57
- );
58
-
59
- useEffect(() => {
60
- changeDropdownPosition({ isOpened: isVisible, buttonRef: ref, menuRef: dropdownRef });
61
- }, [isVisible]);
62
-
63
- return (
64
- <div
65
- className={style(isVisible ? 'rounded-md shadow-blue-gray' : '', className)}
66
- ref={ref}
67
- role="navigation"
68
- >
69
- <button
70
- type="button"
71
- className="group/btn flex justify-between items-center h-6"
72
- aria-label={ariaLabel}
73
- onClick={toggle}
74
- role="button"
75
- aria-labelledby="labeldiv"
76
- >
77
- {Array(3)
78
- .fill(null)
79
- .map((_, i) => (
80
- <div
81
- key={String(i)}
82
- className="w-[3px] h-[3px] rounded mr-2xs bg-primary-text group-hover/btn:bg-primary-hover group-data-transparent:bg-white"
83
- />
84
- ))}
85
- </button>
86
- <div
87
- ref={dropdownRef}
88
- className={style('absolute flex flex-col rounded-md bg-white p-xl pb-xs w-56 z-40', {
89
- hidden: !isVisible,
90
- })}
91
- aria-hidden={!isVisible}
92
- >
93
- {renderDropdownItems(items, activeItem)}
94
- </div>
95
- </div>
96
- );
97
- },
15
+ export const DropdownMenu = ({
16
+ dropdownRef,
17
+ items = [],
18
+ activeItem,
19
+ ariaLabel,
20
+ }: DropdownMenuProps) => (
21
+ <div
22
+ ref={dropdownRef}
23
+ className="absolute flex flex-col rounded-md bg-white p-xl pb-xs w-56 z-40"
24
+ aria-label={ariaLabel}
25
+ >
26
+ {renderDropdownItems(items, activeItem)}
27
+ </div>
98
28
  );
99
29
 
100
30
  export const DropdownMenuItem = JSX<LinkProps & { isActive?: boolean }>(({ isActive, ...rest }) => {
@@ -2,6 +2,7 @@ import '../../setup-fixture';
2
2
 
3
3
  import { type BlockRendererOptions } from '../../BlockRenderer/BlockRendererOptions';
4
4
  import { DialogManager } from '../../ui-kit/DialogManager/DialogManager';
5
+ import { PopupManager } from '../../ui-kit/PopupManager/PopupManager';
5
6
  import { Header } from './Header';
6
7
  import { type HeaderProps } from './HeaderProps';
7
8
 
@@ -27,18 +28,21 @@ export default {
27
28
  <div>
28
29
  <Header options={options} {...props} />
29
30
  <DialogManager />
31
+ <PopupManager />
30
32
  </div>
31
33
  ),
32
34
  customLogo: (
33
35
  <div>
34
36
  <Header options={options} {...props} logo={logo} />
35
37
  <DialogManager />
38
+ <PopupManager />
36
39
  </div>
37
40
  ),
38
41
  transparent: (
39
42
  <div>
40
43
  <Header options={options} {...props} bgColor="transparent" />
41
44
  <DialogManager />
45
+ <PopupManager />
42
46
  </div>
43
47
  ),
44
48
  };
@@ -0,0 +1,60 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
+ import { type ComponentType } from '../../model/ComponentType';
5
+ import { type LinkProps } from '../../model/LinkProps';
6
+ import { style } from '../../utils/style';
7
+ import { useDropdownSubMenu } from './useDropdownSubMenu';
8
+
9
+ interface HeaderMoreMenuItemProps extends ComponentType {
10
+ items: LinkProps[];
11
+ activeItem?: LinkProps;
12
+ ariaLabel?: string;
13
+ }
14
+
15
+ export const HeaderMoreMenuItem = JSX<HeaderMoreMenuItemProps>(
16
+ ({ className = '', items, activeItem, ariaLabel = 'Меню' }) => {
17
+ const [isOpenDropdown, { setFalse, toggle }] = useBool(false);
18
+
19
+ const dropdownMenu = useDropdownSubMenu({
20
+ items,
21
+ onClose: setFalse,
22
+ isOpen: isOpenDropdown,
23
+ activeItem,
24
+ });
25
+
26
+ useEffect(() => {
27
+ dropdownMenu.current?.addEventListener('mouseleave', setFalse);
28
+
29
+ return () => {
30
+ dropdownMenu.current?.removeEventListener('mouseleave', setFalse);
31
+ };
32
+ }, []);
33
+
34
+ return (
35
+ <div
36
+ className={style(isOpenDropdown ? 'rounded-md shadow-blue-gray' : '', className)}
37
+ ref={dropdownMenu}
38
+ role="navigation"
39
+ >
40
+ <button
41
+ type="button"
42
+ className="group/btn flex justify-between items-center h-6"
43
+ aria-label={ariaLabel}
44
+ onClick={toggle}
45
+ role="button"
46
+ aria-labelledby="labeldiv"
47
+ >
48
+ {Array(3)
49
+ .fill(null)
50
+ .map((_, i) => (
51
+ <div
52
+ key={String(i)}
53
+ className="w-[3px] h-[3px] rounded mr-2xs bg-primary-text group-hover/btn:bg-primary-hover group-data-transparent:bg-white"
54
+ />
55
+ ))}
56
+ </button>
57
+ </div>
58
+ );
59
+ },
60
+ );
@@ -6,8 +6,8 @@ import { type IntersectionObserverOptions } from '../../hooks/useIntersectionObs
6
6
  import { type BlockVersion } from '../../model/BlockVersion';
7
7
  import { type IconVersion } from '../../model/IconVersion';
8
8
  import { projectSettings } from '../../ProjectSettings';
9
- import { DropdownMenu } from './DropdownMenu';
10
9
  import { HeaderChatBotButton } from './HeaderChatBotButton';
10
+ import { HeaderMoreMenuItem } from './HeaderMoreMenuItem';
11
11
  import { type InternetButtonProps } from './HeaderProps';
12
12
  import { HeaderSubMenuItem } from './HeaderSubMenuItem';
13
13
  import { InternetBankButton } from './InternetBankButton';
@@ -56,6 +56,7 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(
56
56
  key={String(i)}
57
57
  className={visibleItemsCount - 1 < i ? 'invisible' : ''}
58
58
  active={_ === activeSubItem}
59
+ activeItem={activeSubItem}
59
60
  observerOptions={observerOptions}
60
61
  onVisibilityChange={subItemsVisibilityHandlers[i]}
61
62
  data={_.dataHeader}
@@ -64,7 +65,7 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(
64
65
  ))}
65
66
  </div>
66
67
  {dropDownMenuItems.length ? (
67
- <DropdownMenu
68
+ <HeaderMoreMenuItem
68
69
  items={dropDownMenuItems}
69
70
  activeItem={activeSubItem}
70
71
  ariaLabel={dropdownMenuAriaLabel}
@@ -1,5 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useCallback, useEffect } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
+ import { type NavigationLinkProps } from '../../data/NavigationData';
3
5
  import {
4
6
  useIntersectionObserver,
5
7
  type IntersectionObserverOptions,
@@ -7,15 +9,20 @@ import {
7
9
  import { type ComponentType } from '../../model/ComponentType';
8
10
  import { type LinkProps } from '../../model/LinkProps';
9
11
  import { HeaderItem } from '../../ui-kit/HeaderItem/HeaderItem';
12
+ import { useDropdownSubMenu } from './useDropdownSubMenu';
10
13
 
11
14
  export interface HeaderSubMenuItemProps extends LinkProps, ComponentType {
12
15
  active?: boolean;
16
+ activeItem?: LinkProps;
13
17
  observerOptions?: IntersectionObserverOptions;
14
18
  onVisibilityChange?: (isIntersecting: boolean) => void;
19
+ items?: NavigationLinkProps[];
15
20
  }
16
21
 
17
22
  export const HeaderSubMenuItem = JSX<HeaderSubMenuItemProps>(
18
- ({ observerOptions, onVisibilityChange, children, className, ...rest }) => {
23
+ ({ observerOptions, onVisibilityChange, children, className, items, activeItem, ...rest }) => {
24
+ const [isOpenDropdown, { setFalse, setTrue }] = useBool(false);
25
+
19
26
  const observerCallback = useCallback(
20
27
  (entries: IntersectionObserverEntry[]) => {
21
28
  if (!entries.length || !onVisibilityChange) {
@@ -31,10 +38,29 @@ export const HeaderSubMenuItem = JSX<HeaderSubMenuItemProps>(
31
38
  );
32
39
  const ref = useIntersectionObserver<HTMLSpanElement>(observerCallback, observerOptions);
33
40
 
41
+ const dropdownMenu = useDropdownSubMenu({
42
+ items,
43
+ onClose: setFalse,
44
+ isOpen: isOpenDropdown,
45
+ activeItem,
46
+ });
47
+
48
+ useEffect(() => {
49
+ dropdownMenu.current?.addEventListener('mouseenter', setTrue);
50
+ dropdownMenu.current?.addEventListener('mouseleave', setFalse);
51
+
52
+ return () => {
53
+ dropdownMenu.current?.addEventListener('mouseenter', setTrue);
54
+ dropdownMenu.current?.removeEventListener('mouseleave', setFalse);
55
+ };
56
+ }, []);
57
+
34
58
  return (
35
- <span ref={ref} className={className} role="menuitem">
36
- <HeaderItem {...rest}>{children}</HeaderItem>
37
- </span>
59
+ <div className="inline-block" ref={dropdownMenu}>
60
+ <span ref={ref} className={className} role="menuitem">
61
+ <HeaderItem {...rest}>{children}</HeaderItem>
62
+ </span>
63
+ </div>
38
64
  );
39
65
  },
40
66
  );
@@ -10,7 +10,7 @@ import { type BlockVersion } from '../../model/BlockVersion';
10
10
  import { type ComponentType } from '../../model/ComponentType';
11
11
  import { type LogoType } from '../../model/LogoType';
12
12
  import { Logo } from '../../ui-kit/Logo/Logo';
13
- import { DropdownMenu } from './DropdownMenu';
13
+ import { HeaderMoreMenuItem } from './HeaderMoreMenuItem';
14
14
  import { HeaderSecondaryMenu } from './HeaderSecondaryMenu';
15
15
  import { HeaderTopMenuItem } from './HeaderTopMenuItem';
16
16
 
@@ -80,8 +80,8 @@ export const HeaderTopMenu = JSX<HeaderMenuProps>(
80
80
  ))}
81
81
  </div>
82
82
  {dropDownMenuItems.length ? (
83
- <DropdownMenu
84
- className="mx-xs"
83
+ <HeaderMoreMenuItem
84
+ className="mx-xs rounded-md shadow-blue-gray"
85
85
  items={dropDownMenuItems}
86
86
  activeItem={activeTopItem}
87
87
  ariaLabel={dropdownMenuAriaLabel}
@@ -0,0 +1,48 @@
1
+ import { useCallback, useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { useOutsideClick } from '@redneckz/uni-jsx/lib/hooks/useOutsideClick';
3
+ import { type LinkProps } from '../../model/LinkProps';
4
+ import type { OnCloseProps } from '../../model/OnCloseProps';
5
+ import { usePopupManager } from '../../ui-kit/PopupManager/usePopupManager';
6
+ import { DropdownMenu } from './DropdownMenu';
7
+
8
+ interface DropdownSubMenuOptions extends OnCloseProps {
9
+ isOpen?: boolean;
10
+ activeItem?: LinkProps;
11
+ items?: LinkProps[];
12
+ }
13
+
14
+ export function useDropdownSubMenu({ items, activeItem, onClose, isOpen }: DropdownSubMenuOptions) {
15
+ const popup = usePopupManager();
16
+
17
+ useEffect(() => {
18
+ if (isOpen) {
19
+ popup.close();
20
+ }
21
+ }, [isOpen]);
22
+
23
+ const close = useCallback(() => {
24
+ popup.close();
25
+ onClose?.();
26
+ }, [onClose]);
27
+
28
+ const parentRef = useRef<HTMLDivElement | null>(null);
29
+ const popupRef = useOutsideClick<HTMLDivElement>(close);
30
+
31
+ useEffect(() => {
32
+ if (!isOpen || !parentRef.current || !items?.length) {
33
+ return;
34
+ }
35
+
36
+ const parentElement = parentRef.current;
37
+ const { top, left, width, height } = parentElement.getBoundingClientRect();
38
+
39
+ popup.open({
40
+ popup: <DropdownMenu dropdownRef={popupRef} items={items} activeItem={activeItem} />,
41
+ top: top + window.scrollY + height,
42
+ left,
43
+ width,
44
+ });
45
+ }, [isOpen, items, close]);
46
+
47
+ return parentRef;
48
+ }
@@ -6,6 +6,7 @@ export interface NavigationLinkProps extends LinkProps {
6
6
  displayArea?: string;
7
7
  dataHeader?: AspectsDef[];
8
8
  dataFooter?: AspectsDef[];
9
+ items?: NavigationLinkProps[];
9
10
  }
10
11
 
11
12
  /**
@@ -7,11 +7,11 @@ export const IconsWithoutInversion = new Set([
7
7
  ]);
8
8
 
9
9
  export enum IconMap {
10
- YoutubeIcon = 'YoutubeIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WalletIcon = 'WalletIcon', WalletAddIcon = 'WalletAddIcon', VKIcon = 'VKIcon', UserTickIcon = 'UserTickIcon', UserSquareIcon = 'UserSquareIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', TelegramIcon = 'TelegramIcon', StarIcon = 'StarIcon', SoundIcon = 'SoundIcon', SmallClockIcon = 'SmallClockIcon', SignDocsIcon = 'SignDocsIcon', ShieldTickIcon = 'ShieldTickIcon', SecurityСardIcon = 'SecurityСardIcon', SafeIcon = 'SafeIcon', RutubeIcon = 'RutubeIcon', RustoreIcon = 'RustoreIcon', RoundRubleIcon = 'RoundRubleIcon', ResponseOKIcon = 'ResponseOKIcon', ResponseFailIcon = 'ResponseFailIcon', RefreshIcon = 'RefreshIcon', ProfileIcon = 'ProfileIcon', Profile2UserIcon = 'Profile2UserIcon', PlusIcon = 'PlusIcon', PlusCircleIcon = 'PlusCircleIcon', PlayMarketIcon = 'PlayMarketIcon', PhoneIcon = 'PhoneIcon', PhoneCallingIcon = 'PhoneCallingIcon', PersonalCardIcon = 'PersonalCardIcon', PercentIcon = 'PercentIcon', PercentageRoundIcon = 'PercentageRoundIcon', PassSendIcon = 'PassSendIcon', PackA4Icon = 'PackA4Icon', OkIcon = 'OkIcon', NotificationBingIcon = 'NotificationBingIcon', NewLoanIcon = 'NewLoanIcon', NewDocIcon = 'NewDocIcon', MonitorMobileIcon = 'MonitorMobileIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneyIcon = 'MoneyIcon', MinusIcon = 'MinusIcon', MapOpenedIcon = 'MapOpenedIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MapMarkerClusterYellowIcon = 'MapMarkerClusterYellowIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MailIcon = 'MailIcon', MagnifierIcon = 'MagnifierIcon', LoupeIcon = 'LoupeIcon', LogoIcon = 'LogoIcon', LockIcon = 'LockIcon', InfoCircleIcon = 'InfoCircleIcon', HuaweiIcon = 'HuaweiIcon', HouseIcon = 'HouseIcon', HeartTickIcon = 'HeartTickIcon', HeartIcon = 'HeartIcon', HeadphonesIcon = 'HeadphonesIcon', GridIcon = 'GridIcon', GpsIcon = 'GpsIcon', GosUslugiIcon = 'GosUslugiIcon', GlobalIcon = 'GlobalIcon', GeolocationIcon = 'GeolocationIcon', FullScreenIcon = 'FullScreenIcon', FaxIcon = 'FaxIcon', EuroIcon = 'EuroIcon', EmptyWalletIcon = 'EmptyWalletIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', DzenIcon = 'DzenIcon', DoneSimpleIcon = 'DoneSimpleIcon', DoneIcon = 'DoneIcon', DollarIcon = 'DollarIcon', DocIcon = 'DocIcon', DocDownloadIcon = 'DocDownloadIcon', DiscountShapeIcon = 'DiscountShapeIcon', DevIcon = 'DevIcon', CupIcon = 'CupIcon', CourtHouseIcon = 'CourtHouseIcon', CopyIcon = 'CopyIcon', ConvertCardIcon = 'ConvertCardIcon', CoinIcon = 'CoinIcon', CloseIcon = 'CloseIcon', ClientIcon = 'ClientIcon', ChineseYuanRenminbiIcon = 'ChineseYuanRenminbiIcon', ChevronLeftIcon = 'ChevronLeftIcon', ChatBotIcon = 'ChatBotIcon', ChartSquareIcon = 'ChartSquareIcon', ChartRoundIcon = 'ChartRoundIcon', ChartIcon = 'ChartIcon', CardTickIcon = 'CardTickIcon', CardSendIcon = 'CardSendIcon', CardPosIcon = 'CardPosIcon', CardIcon = 'CardIcon', CalendarTickIcon = 'CalendarTickIcon', CalendarIcon = 'CalendarIcon', CalendarCircleIcon = 'CalendarCircleIcon', BurgerIcon = 'BurgerIcon', BuildingIcon = 'BuildingIcon', BriefcaseIcon = 'BriefcaseIcon', BelarusianFlag = 'BelarusianFlag', BankIcon = 'BankIcon', BankColorIcon = 'BankColorIcon', AtmIcon = 'AtmIcon', ArrowUpSolidIcon = 'ArrowUpSolidIcon', ArrowUpIcon = 'ArrowUpIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowDownSolidIcon = 'ArrowDownSolidIcon', ArrowDownIcon = 'ArrowDownIcon', AppleIcon = 'AppleIcon', AlarmIcon = 'AlarmIcon', ActualBalanceIcon = 'ActualBalanceIcon', AchievementIcon = 'AchievementIcon'
10
+ YoutubeIcon = 'YoutubeIcon', WalletWithMoneyIcon = 'WalletWithMoneyIcon', WalletIcon = 'WalletIcon', WalletAddIcon = 'WalletAddIcon', VKIcon = 'VKIcon', UserTickIcon = 'UserTickIcon', UserSquareIcon = 'UserSquareIcon', UserGeoLocationIcon = 'UserGeoLocationIcon', TelegramIcon = 'TelegramIcon', StarIcon = 'StarIcon', SoundIcon = 'SoundIcon', SmallClockIcon = 'SmallClockIcon', SignDocsIcon = 'SignDocsIcon', ShieldTickIcon = 'ShieldTickIcon', SecurityСardIcon = 'SecurityСardIcon', SafeIcon = 'SafeIcon', RutubeIcon = 'RutubeIcon', RustoreIcon = 'RustoreIcon', RoundRubleIcon = 'RoundRubleIcon', ResponseOKIcon = 'ResponseOKIcon', ResponseFailIcon = 'ResponseFailIcon', RefreshIcon = 'RefreshIcon', ProfileIcon = 'ProfileIcon', Profile2UserIcon = 'Profile2UserIcon', PlusIcon = 'PlusIcon', PlusCircleIcon = 'PlusCircleIcon', PlayMarketIcon = 'PlayMarketIcon', PhoneIcon = 'PhoneIcon', PhoneCallingIcon = 'PhoneCallingIcon', PersonalCardIcon = 'PersonalCardIcon', PercentageRoundIcon = 'PercentageRoundIcon', PercentIcon = 'PercentIcon', PassSendIcon = 'PassSendIcon', PackA4Icon = 'PackA4Icon', OkIcon = 'OkIcon', NotificationBingIcon = 'NotificationBingIcon', NewLoanIcon = 'NewLoanIcon', NewDocIcon = 'NewDocIcon', MonitorMobileIcon = 'MonitorMobileIcon', MoneyInsuranceIcon = 'MoneyInsuranceIcon', MoneyIcon = 'MoneyIcon', MinusIcon = 'MinusIcon', MapOpenedIcon = 'MapOpenedIcon', MapMarkerSingleIcon = 'MapMarkerSingleIcon', MapMarkerClusterYellowIcon = 'MapMarkerClusterYellowIcon', MapMarkerClusterIcon = 'MapMarkerClusterIcon', MailIcon = 'MailIcon', MagnifierIcon = 'MagnifierIcon', LoupeIcon = 'LoupeIcon', LogoIcon = 'LogoIcon', LockIcon = 'LockIcon', InfoCircleIcon = 'InfoCircleIcon', HuaweiIcon = 'HuaweiIcon', HouseIcon = 'HouseIcon', HeartTickIcon = 'HeartTickIcon', HeartIcon = 'HeartIcon', HeadphonesIcon = 'HeadphonesIcon', GridIcon = 'GridIcon', GpsIcon = 'GpsIcon', GosUslugiIcon = 'GosUslugiIcon', GlobalIcon = 'GlobalIcon', GeolocationIcon = 'GeolocationIcon', FullScreenIcon = 'FullScreenIcon', FaxIcon = 'FaxIcon', EuroIcon = 'EuroIcon', EmptyWalletIcon = 'EmptyWalletIcon', EmptyWalletChangeIcon = 'EmptyWalletChangeIcon', DzenIcon = 'DzenIcon', DoneSimpleIcon = 'DoneSimpleIcon', DoneIcon = 'DoneIcon', DollarIcon = 'DollarIcon', DocIcon = 'DocIcon', DocDownloadIcon = 'DocDownloadIcon', DiscountShapeIcon = 'DiscountShapeIcon', DevIcon = 'DevIcon', CupIcon = 'CupIcon', CourtHouseIcon = 'CourtHouseIcon', CopyIcon = 'CopyIcon', ConvertCardIcon = 'ConvertCardIcon', CoinIcon = 'CoinIcon', CloseIcon = 'CloseIcon', ClientIcon = 'ClientIcon', ChineseYuanRenminbiIcon = 'ChineseYuanRenminbiIcon', ChevronLeftIcon = 'ChevronLeftIcon', ChatBotIcon = 'ChatBotIcon', ChartSquareIcon = 'ChartSquareIcon', ChartRoundIcon = 'ChartRoundIcon', ChartIcon = 'ChartIcon', CardTickIcon = 'CardTickIcon', CardSendIcon = 'CardSendIcon', CardPosIcon = 'CardPosIcon', CardIcon = 'CardIcon', CalendarTickIcon = 'CalendarTickIcon', CalendarIcon = 'CalendarIcon', CalendarCircleIcon = 'CalendarCircleIcon', BurgerIcon = 'BurgerIcon', BuildingIcon = 'BuildingIcon', BriefcaseIcon = 'BriefcaseIcon', BelarusianFlag = 'BelarusianFlag', BankIcon = 'BankIcon', BankColorIcon = 'BankColorIcon', AtmIcon = 'AtmIcon', ArrowUpSolidIcon = 'ArrowUpSolidIcon', ArrowUpIcon = 'ArrowUpIcon', ArrowTopRightIcon = 'ArrowTopRightIcon', ArrowRightIcon = 'ArrowRightIcon', ArrowLeftIcon = 'ArrowLeftIcon', ArrowDownSolidIcon = 'ArrowDownSolidIcon', ArrowDownIcon = 'ArrowDownIcon', AppleIcon = 'AppleIcon', AlarmIcon = 'AlarmIcon', ActualBalanceIcon = 'ActualBalanceIcon', AchievementIcon = 'AchievementIcon'
11
11
  }
12
12
 
13
13
  export enum IconTitleMap {
14
- YoutubeIcon = 'Лого «Youtube»', WalletWithMoneyIcon = 'Кошелёк с деньгами', WalletIcon = 'Кошелёк', WalletAddIcon = 'Кошелёк с плюсом', VKIcon = 'Лого «VK»', UserTickIcon = 'Пользователь', UserSquareIcon = 'Пользователь в рамке', UserGeoLocationIcon = 'Самолётик', TelegramIcon = 'Лого «Telegram»', StarIcon = 'Звезда', SoundIcon = 'Кольцо', SmallClockIcon = 'Маленькие часы', SignDocsIcon = 'Подписанные документы', ShieldTickIcon = 'Безопасность', SecurityСardIcon = 'Безопасность', SafeIcon = 'Сейф', RutubeIcon = 'Лого «Rutube»', RustoreIcon = 'Лого «Rustore»', RoundRubleIcon = 'Рубль (круг.)', ResponseOKIcon = 'Ок', ResponseFailIcon = 'Ошибка', RefreshIcon = 'RefreshIcon', ProfileIcon = 'Профиль', Profile2UserIcon = 'Профиль, 2 персоны', PlusIcon = 'Плюс', PlusCircleIcon = 'Плюс в круге', PlayMarketIcon = 'Лого «PlayMarket»', PhoneIcon = 'Телефон', PhoneCallingIcon = 'Звонящий телефон', PersonalCardIcon = 'Персональная карта', PercentIcon = 'Проценты', PercentageRoundIcon = 'Проценты (круг.)', PassSendIcon = 'Бизнес', PackA4Icon = 'Пачка бумаги А4', OkIcon = 'Лого «Одноклассники»', NotificationBingIcon = 'Колокольчик нотификаций', NewLoanIcon = 'Новая заявка', NewDocIcon = 'Новый документ', MonitorMobileIcon = 'Монитор и мобильный', MoneyInsuranceIcon = 'Денежное страхование', MoneyIcon = 'Деньги', MinusIcon = 'Минус', MapOpenedIcon = 'Иконка Развёрнутая карта', MapMarkerSingleIcon = 'Маркер карты РСХБ', MapMarkerClusterYellowIcon = 'Маркер карты (желтый)', MapMarkerClusterIcon = 'Маркер карты', MailIcon = 'E-mail', MagnifierIcon = 'MagnifierIcon', LoupeIcon = 'Лупа', LogoIcon = 'Логотип', LockIcon = 'Замок', InfoCircleIcon = 'InfoCircleIcon', HuaweiIcon = 'Лого «Huawei»', HouseIcon = 'Ипотека', HeartTickIcon = 'Сердцебеение', HeartIcon = 'Сердце', HeadphonesIcon = 'HeadphonesIcon', GridIcon = 'Сетка (белая)', GpsIcon = 'Gps', GosUslugiIcon = 'ГосУслуги', GlobalIcon = 'Глобус', GeolocationIcon = 'Геолокация', FullScreenIcon = 'FullScreenIcon', FaxIcon = 'Факс', EuroIcon = 'Евро', EmptyWalletIcon = 'Пустой кошелёк', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', DzenIcon = 'Лого «Дзен»', DoneSimpleIcon = 'Зелёная \'галочка\'', DoneIcon = 'Зелёная \'галочка\' в круге', DollarIcon = 'Доллар', DocIcon = 'Документ', DocDownloadIcon = 'Скачать документ', DiscountShapeIcon = 'Скидка', DevIcon = 'Разработка', CupIcon = 'Кубок', CourtHouseIcon = 'Здание суда', CopyIcon = 'Копирование', ConvertCardIcon = 'Конвертирование', CoinIcon = 'Монеты', CloseIcon = 'Крестик', ClientIcon = 'Клиент', ChineseYuanRenminbiIcon = 'Китайский юань', ChevronLeftIcon = 'Стрелка \'Влево\'', ChatBotIcon = 'Чат-бот', ChartSquareIcon = 'Деньги внутри кошелька', ChartRoundIcon = 'Диаграмма (в круге)', ChartIcon = 'Инвестиции', CardTickIcon = 'Кред. карта с галочкой', CardSendIcon = 'Карта', CardPosIcon = 'Кред. карта под наклоном', CardIcon = 'Кред. карта', CalendarTickIcon = 'Календарь с галочкой', CalendarIcon = 'Календарь', CalendarCircleIcon = 'Скруглённый календарь', BurgerIcon = 'Бургер', BuildingIcon = 'Здание с деревом', BriefcaseIcon = 'Портфель', BelarusianFlag = 'Белорусский флаг', BankIcon = 'Банк', BankColorIcon = 'Банк (в цвете)', AtmIcon = 'Банкомат', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowDownIcon = 'Стрелка \'Вниз\'', AppleIcon = 'Лого «Apple»', AlarmIcon = 'Предупреждение', ActualBalanceIcon = 'Деньги', AchievementIcon = 'Достижение'
14
+ YoutubeIcon = 'Лого «Youtube»', WalletWithMoneyIcon = 'Кошелёк с деньгами', WalletIcon = 'Кошелёк', WalletAddIcon = 'Кошелёк с плюсом', VKIcon = 'Лого «VK»', UserTickIcon = 'Пользователь', UserSquareIcon = 'Пользователь в рамке', UserGeoLocationIcon = 'Самолётик', TelegramIcon = 'Лого «Telegram»', StarIcon = 'Звезда', SoundIcon = 'Кольцо', SmallClockIcon = 'Маленькие часы', SignDocsIcon = 'Подписанные документы', ShieldTickIcon = 'Безопасность', SecurityСardIcon = 'Безопасность', SafeIcon = 'Сейф', RutubeIcon = 'Лого «Rutube»', RustoreIcon = 'Лого «Rustore»', RoundRubleIcon = 'Рубль (круг.)', ResponseOKIcon = 'Ок', ResponseFailIcon = 'Ошибка', RefreshIcon = 'RefreshIcon', ProfileIcon = 'Профиль', Profile2UserIcon = 'Профиль, 2 персоны', PlusIcon = 'Плюс', PlusCircleIcon = 'Плюс в круге', PlayMarketIcon = 'Лого «PlayMarket»', PhoneIcon = 'Телефон', PhoneCallingIcon = 'Звонящий телефон', PersonalCardIcon = 'Персональная карта', PercentageRoundIcon = 'Проценты (круг.)', PercentIcon = 'Проценты', PassSendIcon = 'Бизнес', PackA4Icon = 'Пачка бумаги А4', OkIcon = 'Лого «Одноклассники»', NotificationBingIcon = 'Колокольчик нотификаций', NewLoanIcon = 'Новая заявка', NewDocIcon = 'Новый документ', MonitorMobileIcon = 'Монитор и мобильный', MoneyInsuranceIcon = 'Денежное страхование', MoneyIcon = 'Деньги', MinusIcon = 'Минус', MapOpenedIcon = 'Иконка Развёрнутая карта', MapMarkerSingleIcon = 'Маркер карты РСХБ', MapMarkerClusterYellowIcon = 'Маркер карты (желтый)', MapMarkerClusterIcon = 'Маркер карты', MailIcon = 'E-mail', MagnifierIcon = 'MagnifierIcon', LoupeIcon = 'Лупа', LogoIcon = 'Логотип', LockIcon = 'Замок', InfoCircleIcon = 'InfoCircleIcon', HuaweiIcon = 'Лого «Huawei»', HouseIcon = 'Ипотека', HeartTickIcon = 'Сердцебеение', HeartIcon = 'Сердце', HeadphonesIcon = 'HeadphonesIcon', GridIcon = 'Сетка (белая)', GpsIcon = 'Gps', GosUslugiIcon = 'ГосУслуги', GlobalIcon = 'Глобус', GeolocationIcon = 'Геолокация', FullScreenIcon = 'FullScreenIcon', FaxIcon = 'Факс', EuroIcon = 'Евро', EmptyWalletIcon = 'Пустой кошелёк', EmptyWalletChangeIcon = 'Пустой кошелёк с возвратом', DzenIcon = 'Лого «Дзен»', DoneSimpleIcon = 'Зелёная \'галочка\'', DoneIcon = 'Зелёная \'галочка\' в круге', DollarIcon = 'Доллар', DocIcon = 'Документ', DocDownloadIcon = 'Скачать документ', DiscountShapeIcon = 'Скидка', DevIcon = 'Разработка', CupIcon = 'Кубок', CourtHouseIcon = 'Здание суда', CopyIcon = 'Копирование', ConvertCardIcon = 'Конвертирование', CoinIcon = 'Монеты', CloseIcon = 'Крестик', ClientIcon = 'Клиент', ChineseYuanRenminbiIcon = 'Китайский юань', ChevronLeftIcon = 'Стрелка \'Влево\'', ChatBotIcon = 'Чат-бот', ChartSquareIcon = 'Деньги внутри кошелька', ChartRoundIcon = 'Диаграмма (в круге)', ChartIcon = 'Инвестиции', CardTickIcon = 'Кред. карта с галочкой', CardSendIcon = 'Карта', CardPosIcon = 'Кред. карта под наклоном', CardIcon = 'Кред. карта', CalendarTickIcon = 'Календарь с галочкой', CalendarIcon = 'Календарь', CalendarCircleIcon = 'Скруглённый календарь', BurgerIcon = 'Бургер', BuildingIcon = 'Здание с деревом', BriefcaseIcon = 'Портфель', BelarusianFlag = 'Белорусский флаг', BankIcon = 'Банк', BankColorIcon = 'Банк (в цвете)', AtmIcon = 'Банкомат', ArrowUpSolidIcon = 'Стрелка сплошная \'Вверх\'', ArrowUpIcon = 'Стрелка \'Вверх\'', ArrowTopRightIcon = 'Стрелка \'Вверх-право\'', ArrowRightIcon = 'Стрелка \'Вправо\'', ArrowLeftIcon = 'Стрелка \'Влево\'', ArrowDownSolidIcon = 'Стрелка сплошная \'Вниз\'', ArrowDownIcon = 'Стрелка \'Вниз\'', AppleIcon = 'Лого «Apple»', AlarmIcon = 'Предупреждение', ActualBalanceIcon = 'Деньги', AchievementIcon = 'Достижение'
15
15
  }
16
16
 
17
17
  /**
@@ -19,7 +19,7 @@ export enum IconTitleMap {
19
19
  * @title Иконка
20
20
  * @enumNames [
21
21
  * "",
22
- * 'Лого «Youtube»', 'Кошелёк с деньгами', 'Кошелёк', 'Кошелёк с плюсом', 'Лого «VK»', 'Пользователь', 'Пользователь в рамке', 'Самолётик', 'Лого «Telegram»', 'Звезда', 'Кольцо', 'Маленькие часы', 'Подписанные документы', 'Безопасность', 'Безопасность', 'Сейф', 'Лого «Rutube»', 'Лого «Rustore»', 'Рубль (круг.)', 'Ок', 'Ошибка', 'RefreshIcon', 'Профиль', 'Профиль, 2 персоны', 'Плюс', 'Плюс в круге', 'Лого «PlayMarket»', 'Телефон', 'Звонящий телефон', 'Персональная карта', 'Проценты', 'Проценты (круг.)', 'Бизнес', 'Пачка бумаги А4', 'Лого «Одноклассники»', 'Колокольчик нотификаций', 'Новая заявка', 'Новый документ', 'Монитор и мобильный', 'Денежное страхование', 'Деньги', 'Минус', 'Иконка Развёрнутая карта', 'Маркер карты РСХБ', 'Маркер карты (желтый)', 'Маркер карты', 'E-mail', 'MagnifierIcon', 'Лупа', 'Логотип', 'Замок', 'InfoCircleIcon', 'Лого «Huawei»', 'Ипотека', 'Сердцебеение', 'Сердце', 'HeadphonesIcon', 'Сетка (белая)', 'Gps', 'ГосУслуги', 'Глобус', 'Геолокация', 'FullScreenIcon', 'Факс', 'Евро', 'Пустой кошелёк', 'Пустой кошелёк с возвратом', 'Лого «Дзен»', 'Зелёная \'галочка\'', 'Зелёная \'галочка\' в круге', 'Доллар', 'Документ', 'Скачать документ', 'Скидка', 'Разработка', 'Кубок', 'Здание суда', 'Копирование', 'Конвертирование', 'Монеты', 'Крестик', 'Клиент', 'Китайский юань', 'Стрелка \'Влево\'', 'Чат-бот', 'Деньги внутри кошелька', 'Диаграмма (в круге)', 'Инвестиции', 'Кред. карта с галочкой', 'Карта', 'Кред. карта под наклоном', 'Кред. карта', 'Календарь с галочкой', 'Календарь', 'Скруглённый календарь', 'Бургер', 'Здание с деревом', 'Портфель', 'Белорусский флаг', 'Банк', 'Банк (в цвете)', 'Банкомат', 'Стрелка сплошная \'Вверх\'', 'Стрелка \'Вверх\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вправо\'', 'Стрелка \'Влево\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Вниз\'', 'Лого «Apple»', 'Предупреждение', 'Деньги', 'Достижение'
22
+ * 'Лого «Youtube»', 'Кошелёк с деньгами', 'Кошелёк', 'Кошелёк с плюсом', 'Лого «VK»', 'Пользователь', 'Пользователь в рамке', 'Самолётик', 'Лого «Telegram»', 'Звезда', 'Кольцо', 'Маленькие часы', 'Подписанные документы', 'Безопасность', 'Безопасность', 'Сейф', 'Лого «Rutube»', 'Лого «Rustore»', 'Рубль (круг.)', 'Ок', 'Ошибка', 'RefreshIcon', 'Профиль', 'Профиль, 2 персоны', 'Плюс', 'Плюс в круге', 'Лого «PlayMarket»', 'Телефон', 'Звонящий телефон', 'Персональная карта', 'Проценты (круг.)', 'Проценты', 'Бизнес', 'Пачка бумаги А4', 'Лого «Одноклассники»', 'Колокольчик нотификаций', 'Новая заявка', 'Новый документ', 'Монитор и мобильный', 'Денежное страхование', 'Деньги', 'Минус', 'Иконка Развёрнутая карта', 'Маркер карты РСХБ', 'Маркер карты (желтый)', 'Маркер карты', 'E-mail', 'MagnifierIcon', 'Лупа', 'Логотип', 'Замок', 'InfoCircleIcon', 'Лого «Huawei»', 'Ипотека', 'Сердцебеение', 'Сердце', 'HeadphonesIcon', 'Сетка (белая)', 'Gps', 'ГосУслуги', 'Глобус', 'Геолокация', 'FullScreenIcon', 'Факс', 'Евро', 'Пустой кошелёк', 'Пустой кошелёк с возвратом', 'Лого «Дзен»', 'Зелёная \'галочка\'', 'Зелёная \'галочка\' в круге', 'Доллар', 'Документ', 'Скачать документ', 'Скидка', 'Разработка', 'Кубок', 'Здание суда', 'Копирование', 'Конвертирование', 'Монеты', 'Крестик', 'Клиент', 'Китайский юань', 'Стрелка \'Влево\'', 'Чат-бот', 'Деньги внутри кошелька', 'Диаграмма (в круге)', 'Инвестиции', 'Кред. карта с галочкой', 'Карта', 'Кред. карта под наклоном', 'Кред. карта', 'Календарь с галочкой', 'Календарь', 'Скруглённый календарь', 'Бургер', 'Здание с деревом', 'Портфель', 'Белорусский флаг', 'Банк', 'Банк (в цвете)', 'Банкомат', 'Стрелка сплошная \'Вверх\'', 'Стрелка \'Вверх\'', 'Стрелка \'Вверх-право\'', 'Стрелка \'Вправо\'', 'Стрелка \'Влево\'', 'Стрелка сплошная \'Вниз\'', 'Стрелка \'Вниз\'', 'Лого «Apple»', 'Предупреждение', 'Деньги', 'Достижение'
23
23
  * ]
24
24
  */
25
- export type IconName = '' | 'YoutubeIcon' | 'WalletWithMoneyIcon' | 'WalletIcon' | 'WalletAddIcon' | 'VKIcon' | 'UserTickIcon' | 'UserSquareIcon' | 'UserGeoLocationIcon' | 'TelegramIcon' | 'StarIcon' | 'SoundIcon' | 'SmallClockIcon' | 'SignDocsIcon' | 'ShieldTickIcon' | 'SecurityСardIcon' | 'SafeIcon' | 'RutubeIcon' | 'RustoreIcon' | 'RoundRubleIcon' | 'ResponseOKIcon' | 'ResponseFailIcon' | 'RefreshIcon' | 'ProfileIcon' | 'Profile2UserIcon' | 'PlusIcon' | 'PlusCircleIcon' | 'PlayMarketIcon' | 'PhoneIcon' | 'PhoneCallingIcon' | 'PersonalCardIcon' | 'PercentIcon' | 'PercentageRoundIcon' | 'PassSendIcon' | 'PackA4Icon' | 'OkIcon' | 'NotificationBingIcon' | 'NewLoanIcon' | 'NewDocIcon' | 'MonitorMobileIcon' | 'MoneyInsuranceIcon' | 'MoneyIcon' | 'MinusIcon' | 'MapOpenedIcon' | 'MapMarkerSingleIcon' | 'MapMarkerClusterYellowIcon' | 'MapMarkerClusterIcon' | 'MailIcon' | 'MagnifierIcon' | 'LoupeIcon' | 'LogoIcon' | 'LockIcon' | 'InfoCircleIcon' | 'HuaweiIcon' | 'HouseIcon' | 'HeartTickIcon' | 'HeartIcon' | 'HeadphonesIcon' | 'GridIcon' | 'GpsIcon' | 'GosUslugiIcon' | 'GlobalIcon' | 'GeolocationIcon' | 'FullScreenIcon' | 'FaxIcon' | 'EuroIcon' | 'EmptyWalletIcon' | 'EmptyWalletChangeIcon' | 'DzenIcon' | 'DoneSimpleIcon' | 'DoneIcon' | 'DollarIcon' | 'DocIcon' | 'DocDownloadIcon' | 'DiscountShapeIcon' | 'DevIcon' | 'CupIcon' | 'CourtHouseIcon' | 'CopyIcon' | 'ConvertCardIcon' | 'CoinIcon' | 'CloseIcon' | 'ClientIcon' | 'ChineseYuanRenminbiIcon' | 'ChevronLeftIcon' | 'ChatBotIcon' | 'ChartSquareIcon' | 'ChartRoundIcon' | 'ChartIcon' | 'CardTickIcon' | 'CardSendIcon' | 'CardPosIcon' | 'CardIcon' | 'CalendarTickIcon' | 'CalendarIcon' | 'CalendarCircleIcon' | 'BurgerIcon' | 'BuildingIcon' | 'BriefcaseIcon' | 'BelarusianFlag' | 'BankIcon' | 'BankColorIcon' | 'AtmIcon' | 'ArrowUpSolidIcon' | 'ArrowUpIcon' | 'ArrowTopRightIcon' | 'ArrowRightIcon' | 'ArrowLeftIcon' | 'ArrowDownSolidIcon' | 'ArrowDownIcon' | 'AppleIcon' | 'AlarmIcon' | 'ActualBalanceIcon' | 'AchievementIcon';
25
+ export type IconName = '' | 'YoutubeIcon' | 'WalletWithMoneyIcon' | 'WalletIcon' | 'WalletAddIcon' | 'VKIcon' | 'UserTickIcon' | 'UserSquareIcon' | 'UserGeoLocationIcon' | 'TelegramIcon' | 'StarIcon' | 'SoundIcon' | 'SmallClockIcon' | 'SignDocsIcon' | 'ShieldTickIcon' | 'SecurityСardIcon' | 'SafeIcon' | 'RutubeIcon' | 'RustoreIcon' | 'RoundRubleIcon' | 'ResponseOKIcon' | 'ResponseFailIcon' | 'RefreshIcon' | 'ProfileIcon' | 'Profile2UserIcon' | 'PlusIcon' | 'PlusCircleIcon' | 'PlayMarketIcon' | 'PhoneIcon' | 'PhoneCallingIcon' | 'PersonalCardIcon' | 'PercentageRoundIcon' | 'PercentIcon' | 'PassSendIcon' | 'PackA4Icon' | 'OkIcon' | 'NotificationBingIcon' | 'NewLoanIcon' | 'NewDocIcon' | 'MonitorMobileIcon' | 'MoneyInsuranceIcon' | 'MoneyIcon' | 'MinusIcon' | 'MapOpenedIcon' | 'MapMarkerSingleIcon' | 'MapMarkerClusterYellowIcon' | 'MapMarkerClusterIcon' | 'MailIcon' | 'MagnifierIcon' | 'LoupeIcon' | 'LogoIcon' | 'LockIcon' | 'InfoCircleIcon' | 'HuaweiIcon' | 'HouseIcon' | 'HeartTickIcon' | 'HeartIcon' | 'HeadphonesIcon' | 'GridIcon' | 'GpsIcon' | 'GosUslugiIcon' | 'GlobalIcon' | 'GeolocationIcon' | 'FullScreenIcon' | 'FaxIcon' | 'EuroIcon' | 'EmptyWalletIcon' | 'EmptyWalletChangeIcon' | 'DzenIcon' | 'DoneSimpleIcon' | 'DoneIcon' | 'DollarIcon' | 'DocIcon' | 'DocDownloadIcon' | 'DiscountShapeIcon' | 'DevIcon' | 'CupIcon' | 'CourtHouseIcon' | 'CopyIcon' | 'ConvertCardIcon' | 'CoinIcon' | 'CloseIcon' | 'ClientIcon' | 'ChineseYuanRenminbiIcon' | 'ChevronLeftIcon' | 'ChatBotIcon' | 'ChartSquareIcon' | 'ChartRoundIcon' | 'ChartIcon' | 'CardTickIcon' | 'CardSendIcon' | 'CardPosIcon' | 'CardIcon' | 'CalendarTickIcon' | 'CalendarIcon' | 'CalendarCircleIcon' | 'BurgerIcon' | 'BuildingIcon' | 'BriefcaseIcon' | 'BelarusianFlag' | 'BankIcon' | 'BankColorIcon' | 'AtmIcon' | 'ArrowUpSolidIcon' | 'ArrowUpIcon' | 'ArrowTopRightIcon' | 'ArrowRightIcon' | 'ArrowLeftIcon' | 'ArrowDownSolidIcon' | 'ArrowDownIcon' | 'AppleIcon' | 'AlarmIcon' | 'ActualBalanceIcon' | 'AchievementIcon';