@infomaximum/ui-kit 0.17.0 → 0.17.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 (39) hide show
  1. package/dist/components/BaseTooltip/BaseTooltip.js +7 -3
  2. package/dist/components/BaseTooltip/BaseTooltip.types.d.ts +1 -0
  3. package/dist/components/BaseTooltip/BaseTooltip.utils.d.ts +1 -0
  4. package/dist/components/BaseTooltip/BaseTooltip.utils.js +17 -0
  5. package/dist/components/BaseTooltip/hooks/useCustomFloating.js +5 -4
  6. package/dist/components/BaseTooltip/hooks/useShowTooltipController.d.ts +2 -1
  7. package/dist/components/BaseTooltip/hooks/useShowTooltipController.js +56 -42
  8. package/dist/components/Dropdown/Dropdown.js +12 -7
  9. package/dist/components/Dropdown/Dropdown.types.d.ts +56 -19
  10. package/dist/components/Dropdown/Dropdown.utils.js +6 -2
  11. package/dist/components/Dropdown/components/Divider/Divider.d.ts +2 -1
  12. package/dist/components/Dropdown/components/Divider/Divider.js +5 -2
  13. package/dist/components/Dropdown/components/Divider/Divider.types.d.ts +3 -0
  14. package/dist/components/Dropdown/components/Group/Group.js +9 -6
  15. package/dist/components/Dropdown/components/Group/Group.types.d.ts +7 -3
  16. package/dist/components/Dropdown/components/Item/Item.js +17 -11
  17. package/dist/components/Dropdown/components/Item/Item.types.d.ts +1 -1
  18. package/dist/components/Dropdown/components/Menu/Menu.js +33 -12
  19. package/dist/components/Dropdown/components/Menu/Menu.styles.d.ts +1 -0
  20. package/dist/components/Dropdown/components/Menu/Menu.styles.js +2 -1
  21. package/dist/components/Dropdown/components/Menu/Menu.types.d.ts +0 -1
  22. package/dist/components/Dropdown/components/SubMenu/SubMenu.js +13 -6
  23. package/dist/components/Dropdown/components/SubMenu/SubMenu.types.d.ts +2 -2
  24. package/dist/components/Dropdown/components/SubMenu/SubMenu.utils.d.ts +2 -2
  25. package/dist/components/Dropdown/contexts/dropdownContext.d.ts +13 -9
  26. package/dist/components/Dropdown/hooks/useSelectedKeysController.d.ts +20 -16
  27. package/dist/components/Dropdown/hooks/useSelectedKeysController.js +7 -2
  28. package/dist/components/Dropdown/hooks/useSubMenusController.d.ts +5 -4
  29. package/dist/components/Dropdown/index.d.ts +2 -1
  30. package/dist/components/Tabs/Tabs.js +1 -1
  31. package/dist/components/Tabs/Tabs.types.d.ts +5 -4
  32. package/dist/components/Tabs/Tabs.utils.d.ts +3 -2
  33. package/dist/components/Tabs/components/TabBar/TabBar.types.d.ts +3 -2
  34. package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +8 -7
  35. package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +5 -5
  36. package/dist/components/Tabs/hooks/useTabsDndController.d.ts +2 -1
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.js +5 -0
  39. package/package.json +1 -1
@@ -1,31 +1,35 @@
1
1
  import { MouseEvent } from 'react';
2
- import { ItemType } from '../Dropdown.types';
2
+ import { DropdownItemKeyType, ItemType } from '../Dropdown.types';
3
3
  interface UseSelectedKeysControllerProps {
4
- defaultSelectedKeys: string[] | undefined;
5
- selectedKeys: string[] | undefined;
4
+ defaultSelectedKeys: DropdownItemKeyType[] | undefined;
5
+ selectedKeys: DropdownItemKeyType[] | undefined;
6
6
  multiple: boolean;
7
7
  selectable: boolean;
8
- onClick: ((props: {
8
+ onClick?: (props: {
9
9
  item: ItemType;
10
- key: string;
10
+ key: DropdownItemKeyType;
11
11
  e: MouseEvent;
12
- }) => void) | undefined;
13
- onSelect: ((props: {
12
+ }) => void;
13
+ onSelect?: (props: {
14
14
  item: ItemType;
15
- key: string;
15
+ key: DropdownItemKeyType;
16
16
  e: MouseEvent;
17
- }) => void) | undefined;
18
- onDeselect: ((props: {
17
+ }) => void;
18
+ onDeselect?: (props: {
19
19
  item: ItemType;
20
- key: string;
20
+ key: DropdownItemKeyType;
21
21
  e: MouseEvent;
22
- }) => void) | undefined;
22
+ }) => void;
23
23
  }
24
24
  export declare const useSelectedKeysController: ({ defaultSelectedKeys, selectedKeys, multiple, selectable, onClick, onSelect, onDeselect, }: UseSelectedKeysControllerProps) => {
25
- currentSelectedKey: string[];
26
- onMenuItemClick: (itemKey: string, item: ItemType, e: MouseEvent) => void;
25
+ currentSelectedKey: DropdownItemKeyType[];
26
+ onMenuItemClick: (props: {
27
+ item: ItemType;
28
+ itemKey: DropdownItemKeyType;
29
+ e: MouseEvent;
30
+ }) => void;
27
31
  onMouseUp: (e: MouseEvent) => void;
28
- select: (itemKey: string) => void;
29
- deselect: (itemKey: string) => void;
32
+ select: (itemKey: DropdownItemKeyType) => void;
33
+ deselect: (itemKey: DropdownItemKeyType) => void;
30
34
  };
31
35
  export {};
@@ -17,7 +17,12 @@ const useSelectedKeysController = ({
17
17
  const deselect = useCallback((itemKey) => {
18
18
  setLocalSelectedKeys((prev) => prev.filter((key) => key !== itemKey));
19
19
  }, []);
20
- const handleMenuItemClick = useCallback((itemKey, item, e) => {
20
+ const handleMenuItemClick = useCallback((props) => {
21
+ const {
22
+ item,
23
+ itemKey,
24
+ e
25
+ } = props;
21
26
  e.stopPropagation();
22
27
  onClick == null ? void 0 : onClick({
23
28
  item,
@@ -42,7 +47,7 @@ const useSelectedKeysController = ({
42
47
  key: itemKey,
43
48
  e
44
49
  });
45
- }, [deselect, localSelectedKeys, multiple, onClick, onDeselect, onSelect, select, selectedKeys]);
50
+ }, [deselect, localSelectedKeys, multiple, onClick, onDeselect, onSelect, select, selectable, selectedKeys]);
46
51
  const handleMouseUp = useCallback((e) => {
47
52
  e.stopPropagation();
48
53
  }, []);
@@ -1,7 +1,8 @@
1
+ import { DropdownItemKeyType } from '../Dropdown.types';
1
2
  export declare const useSubMenusController: () => {
2
- openedSubMenuKeys: string[];
3
- openSubMenu: (subMenuKey: string) => void;
4
- closeSubMenu: (subMenuKey: string) => void;
5
- switchSubMenu: (subMenuKey: string) => void;
3
+ openedSubMenuKeys: DropdownItemKeyType[];
4
+ openSubMenu: (subMenuKey: DropdownItemKeyType) => void;
5
+ closeSubMenu: (subMenuKey: DropdownItemKeyType) => void;
6
+ switchSubMenu: (subMenuKey: DropdownItemKeyType) => void;
6
7
  closeAllSubMenus: () => void;
7
8
  };
@@ -1,2 +1,3 @@
1
1
  export { Dropdown } from './Dropdown';
2
- export type { DropdownProps, DropdownMenu } from './Dropdown.types';
2
+ export { isSubMenu, isMenuItem, isGroupType, isDivider } from './Dropdown.types';
3
+ export type { DropdownProps, DropdownMenu, ItemType, MenuItem, GroupType, DividerType, SubMenuType, } from './Dropdown.types';
@@ -51,7 +51,7 @@ const Tabs = memo(({
51
51
  onTabClick,
52
52
  onTabScroll
53
53
  };
54
- return /* @__PURE__ */ jsxs("div", { css: [tabsStyle.wrapper, (_b = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _b.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:Tabs;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9UYWJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RFciLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9UYWJzL1RhYnMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB0eXBlIEZDIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYnNQcm9wcyB9IGZyb20gXCIuL1RhYnMudHlwZXNcIjtcbmltcG9ydCB7IHRhYnNTdHlsZSB9IGZyb20gXCIuL1RhYnMuc3R5bGVzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgVGFiQmFyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWJCYXIvVGFiQmFyXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wZG93blRyaWdnZXIgfSBmcm9tIFwiY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bi50eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgVGFiczogRkM8VGFic1Byb3BzPiA9IG1lbW8oXG4gICh7XG4gICAgaXRlbXMsXG4gICAgZXh0cmEsXG4gICAgaWNvbk9ubHkgPSBmYWxzZSxcbiAgICBkcmFnZ2FibGUgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBwb3B1cENsYXNzTmFtZSxcbiAgICBkZWZhdWx0QWN0aXZlS2V5LFxuICAgIGFjdGl2ZUtleSxcbiAgICBib3JkZXIgPSB0cnVlLFxuICAgIG1vcmUgPSB7IHRyaWdnZXI6IFtcImhvdmVyXCJdIGFzIERyb3Bkb3duVHJpZ2dlcltdIH0sXG4gICAgdGVzdElkLFxuICAgIHN0eWxlcyxcbiAgICByZW5kZXJUYWJCYXIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgICBvblRhYlNjcm9sbCxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcblxuICAgIGNvbnN0IGZpcnN0VGFiID0gaXRlbXM/LlswXT8ua2V5O1xuXG4gICAgY29uc3QgW2xvY2FsQWN0aXZlS2V5LCBzZXRMb2NhbEFjdGl2ZUtleV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KFxuICAgICAgZGVmYXVsdEFjdGl2ZUtleSA/PyBmaXJzdFRhYlxuICAgICk7XG4gICAgY29uc3QgW2NvbnRlbnRXcmFwcGVyLCBzZXRDb250ZW50V3JhcHBlcl0gPSB1c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuXG4gICAgY29uc3QgY3VycmVudEFjdGl2ZUtleSA9IGFjdGl2ZUtleSA/PyBsb2NhbEFjdGl2ZUtleTtcbiAgICBjb25zdCBjb250ZW50V3JhcHBlclJlZiA9IChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCkgPT4gc2V0Q29udGVudFdyYXBwZXIoZWxlbWVudCk7XG5cbiAgICBjb25zdCBjaGFuZ2VBY3RpdmVLZXkgPSB1c2VDYWxsYmFjaygoaXRlbUtleTogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRMb2NhbEFjdGl2ZUtleShpdGVtS2V5KTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCB0YWJCYXJQcm9wcyA9IHtcbiAgICAgIGl0ZW1zLFxuICAgICAgZXh0cmEsXG4gICAgICBpY29uT25seSxcbiAgICAgIGRyYWdnYWJsZSxcbiAgICAgIHNpemUsXG4gICAgICBib3JkZXIsXG4gICAgICBtb3JlLFxuICAgICAgcG9wdXBDbGFzc05hbWUsXG4gICAgICBjdXJyZW50QWN0aXZlS2V5LFxuICAgICAgY29udGVudFdyYXBwZXIsXG4gICAgICBzdHlsZXM6IHN0eWxlcz8udGFiQmFyLFxuICAgICAgY2hhbmdlQWN0aXZlS2V5LFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvblRhYkNsaWNrLFxuICAgICAgb25UYWJTY3JvbGwsXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNzcz17W3RhYnNTdHlsZS53cmFwcGVyLCBzdHlsZXM/LndyYXBwZXI/Lih0aGVtZSldfSB0ZXN0LWlkPXt0ZXN0SWR9PlxuICAgICAgICB7aXNGdW5jdGlvbihyZW5kZXJUYWJCYXIpID8gcmVuZGVyVGFiQmFyKHRhYkJhclByb3BzLCBUYWJCYXIpIDogPFRhYkJhciB7Li4udGFiQmFyUHJvcHN9IC8+fVxuXG4gICAgICAgIDxkaXYgY3NzPXtzdHlsZXM/LmNvbnRlbnQ/Lih0aGVtZSl9IHJlZj17Y29udGVudFdyYXBwZXJSZWZ9IC8+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG4pO1xuIl19 */"], "test-id": testId, children: [
54
+ return /* @__PURE__ */ jsxs("div", { css: [tabsStyle.wrapper, (_b = styles == null ? void 0 : styles.wrapper) == null ? void 0 : _b.call(styles, theme), process.env.NODE_ENV === "production" ? "" : ";label:Tabs;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9idWlsZHMvZnJvbnRlbmQvbGlicy91aS1raXQvc3JjL2NvbXBvbmVudHMvVGFicy9UYWJzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE4RFciLCJmaWxlIjoiL2J1aWxkcy9mcm9udGVuZC9saWJzL3VpLWtpdC9zcmMvY29tcG9uZW50cy9UYWJzL1RhYnMudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCB0eXBlIEZDIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgdHlwZSB7IFRhYnNQcm9wcyB9IGZyb20gXCIuL1RhYnMudHlwZXNcIjtcbmltcG9ydCB7IHRhYnNTdHlsZSB9IGZyb20gXCIuL1RhYnMuc3R5bGVzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgVGFiQmFyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9UYWJCYXIvVGFiQmFyXCI7XG5pbXBvcnQgeyB1c2VUaGVtZSB9IGZyb20gXCJob29rcy91c2VUaGVtZVwiO1xuaW1wb3J0IHR5cGUgeyBEcm9wZG93bkl0ZW1LZXlUeXBlLCBEcm9wZG93blRyaWdnZXIgfSBmcm9tIFwiY29tcG9uZW50cy9Ecm9wZG93bi9Ecm9wZG93bi50eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgVGFiczogRkM8VGFic1Byb3BzPiA9IG1lbW8oXG4gICh7XG4gICAgaXRlbXMsXG4gICAgZXh0cmEsXG4gICAgaWNvbk9ubHkgPSBmYWxzZSxcbiAgICBkcmFnZ2FibGUgPSBmYWxzZSxcbiAgICBzaXplID0gXCJtaWRkbGVcIixcbiAgICBwb3B1cENsYXNzTmFtZSxcbiAgICBkZWZhdWx0QWN0aXZlS2V5LFxuICAgIGFjdGl2ZUtleSxcbiAgICBib3JkZXIgPSB0cnVlLFxuICAgIG1vcmUgPSB7IHRyaWdnZXI6IFtcImhvdmVyXCJdIGFzIERyb3Bkb3duVHJpZ2dlcltdIH0sXG4gICAgdGVzdElkLFxuICAgIHN0eWxlcyxcbiAgICByZW5kZXJUYWJCYXIsXG4gICAgb25DaGFuZ2UsXG4gICAgb25UYWJDbGljayxcbiAgICBvblRhYlNjcm9sbCxcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcblxuICAgIGNvbnN0IGZpcnN0VGFiID0gaXRlbXM/LlswXT8ua2V5O1xuXG4gICAgY29uc3QgW2xvY2FsQWN0aXZlS2V5LCBzZXRMb2NhbEFjdGl2ZUtleV0gPSB1c2VTdGF0ZTxEcm9wZG93bkl0ZW1LZXlUeXBlIHwgdW5kZWZpbmVkPihcbiAgICAgIGRlZmF1bHRBY3RpdmVLZXkgPz8gZmlyc3RUYWJcbiAgICApO1xuICAgIGNvbnN0IFtjb250ZW50V3JhcHBlciwgc2V0Q29udGVudFdyYXBwZXJdID0gdXNlU3RhdGU8SFRNTERpdkVsZW1lbnQgfCBudWxsPihudWxsKTtcblxuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVLZXkgPSBhY3RpdmVLZXkgPz8gbG9jYWxBY3RpdmVLZXk7XG4gICAgY29uc3QgY29udGVudFdyYXBwZXJSZWYgPSAoZWxlbWVudDogSFRNTERpdkVsZW1lbnQpID0+IHNldENvbnRlbnRXcmFwcGVyKGVsZW1lbnQpO1xuXG4gICAgY29uc3QgY2hhbmdlQWN0aXZlS2V5ID0gdXNlQ2FsbGJhY2soKGl0ZW1LZXk6IERyb3Bkb3duSXRlbUtleVR5cGUpID0+IHtcbiAgICAgIHNldExvY2FsQWN0aXZlS2V5KGl0ZW1LZXkpO1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHRhYkJhclByb3BzID0ge1xuICAgICAgaXRlbXMsXG4gICAgICBleHRyYSxcbiAgICAgIGljb25Pbmx5LFxuICAgICAgZHJhZ2dhYmxlLFxuICAgICAgc2l6ZSxcbiAgICAgIGJvcmRlcixcbiAgICAgIG1vcmUsXG4gICAgICBwb3B1cENsYXNzTmFtZSxcbiAgICAgIGN1cnJlbnRBY3RpdmVLZXksXG4gICAgICBjb250ZW50V3JhcHBlcixcbiAgICAgIHN0eWxlczogc3R5bGVzPy50YWJCYXIsXG4gICAgICBjaGFuZ2VBY3RpdmVLZXksXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uVGFiQ2xpY2ssXG4gICAgICBvblRhYlNjcm9sbCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY3NzPXtbdGFic1N0eWxlLndyYXBwZXIsIHN0eWxlcz8ud3JhcHBlcj8uKHRoZW1lKV19IHRlc3QtaWQ9e3Rlc3RJZH0+XG4gICAgICAgIHtpc0Z1bmN0aW9uKHJlbmRlclRhYkJhcikgPyByZW5kZXJUYWJCYXIodGFiQmFyUHJvcHMsIFRhYkJhcikgOiA8VGFiQmFyIHsuLi50YWJCYXJQcm9wc30gLz59XG5cbiAgICAgICAgPGRpdiBjc3M9e3N0eWxlcz8uY29udGVudD8uKHRoZW1lKX0gcmVmPXtjb250ZW50V3JhcHBlclJlZn0gLz5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG4iXX0= */"], "test-id": testId, children: [
55
55
  isFunction(renderTabBar) ? renderTabBar(tabBarProps, TabBar) : /* @__PURE__ */ jsx(TabBar, { ...tabBarProps }),
56
56
  /* @__PURE__ */ jsx("div", { css: (_c = styles == null ? void 0 : styles.content) == null ? void 0 : _c.call(styles, theme), ref: contentWrapperRef })
57
57
  ] });
@@ -4,10 +4,11 @@ import { Theme } from 'themes';
4
4
  import { TabItem } from './components/TabItem/TabItem.types';
5
5
  import { TabBarProps } from './components/TabBar/TabBar.types';
6
6
  import { Interpolation } from '@emotion/react';
7
+ import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
7
8
  export type TabsSizeType = "middle" | "small";
8
9
  export interface TabsProps {
9
- activeKey?: string;
10
- defaultActiveKey?: string;
10
+ activeKey?: DropdownItemKeyType;
11
+ defaultActiveKey?: DropdownItemKeyType;
11
12
  items?: TabItem[];
12
13
  more?: DropdownProps;
13
14
  popupClassName?: string;
@@ -23,7 +24,7 @@ export interface TabsProps {
23
24
  tabBar?: TabBarProps["styles"];
24
25
  };
25
26
  renderTabBar?: (props: TabBarProps, DefaultTabBar: FC<TabBarProps>) => React.ReactElement;
26
- onChange?: (activeKey: string) => void;
27
- onTabClick?: (activeKey: string, event: MouseEvent) => void;
27
+ onChange?: (activeKey: DropdownItemKeyType) => void;
28
+ onTabClick?: (activeKey: DropdownItemKeyType, event: MouseEvent) => void;
28
29
  onTabScroll?: (direction: "left" | "right") => void;
29
30
  }
@@ -1,3 +1,4 @@
1
+ import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
1
2
  import { TabItem } from './components/TabItem/TabItem.types';
2
- export declare const getTabKeysWithoutOrdering: (items: TabItem[]) => string[];
3
- export declare const getOrderedTabKeys: (currentOrderedTabKeys: string[], newTabKeys: string[]) => string[];
3
+ export declare const getTabKeysWithoutOrdering: (items: TabItem[]) => DropdownItemKeyType[];
4
+ export declare const getOrderedTabKeys: (currentOrderedTabKeys: DropdownItemKeyType[], newTabKeys: DropdownItemKeyType[]) => DropdownItemKeyType[];
@@ -2,8 +2,9 @@ import { Interpolation } from '@emotion/react';
2
2
  import { TabsProps } from 'components/Tabs/Tabs.types';
3
3
  import { Theme } from 'themes';
4
4
  import { TabItemProps } from '../TabItem/TabItem.types';
5
+ import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
5
6
  export interface TabBarProps extends Omit<TabsProps, "activeKey" | "defaultActiveKey" | "styles" | "renderTabBar"> {
6
- currentActiveKey: string | undefined;
7
+ currentActiveKey: DropdownItemKeyType | undefined;
7
8
  contentWrapper: HTMLDivElement | null;
8
9
  styles?: {
9
10
  wrapper?: (theme: Theme) => Interpolation;
@@ -12,5 +13,5 @@ export interface TabBarProps extends Omit<TabsProps, "activeKey" | "defaultActiv
12
13
  more?: (theme: Theme) => Interpolation;
13
14
  tabItem?: TabItemProps["styles"];
14
15
  };
15
- changeActiveKey: (key: string) => void;
16
+ changeActiveKey: (key: DropdownItemKeyType) => void;
16
17
  }
@@ -1,9 +1,10 @@
1
1
  import { Interpolation } from '@emotion/react';
2
+ import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
2
3
  import { TabsSizeType } from 'components/Tabs/Tabs.types';
3
4
  import { MouseEvent, ReactNode } from 'react';
4
5
  import { Theme } from 'themes';
5
6
  export interface TabItem {
6
- key: string;
7
+ key: DropdownItemKeyType;
7
8
  disabled?: boolean;
8
9
  forceRender?: boolean;
9
10
  label?: ReactNode;
@@ -11,12 +12,12 @@ export interface TabItem {
11
12
  children?: ReactNode;
12
13
  }
13
14
  export interface TabItemProps extends Omit<TabItem, "key"> {
14
- itemKey: string;
15
+ itemKey: DropdownItemKeyType;
15
16
  selected: boolean;
16
17
  contentWrapper: HTMLDivElement | null;
17
- changeActiveKey: (key: string) => void;
18
- addHiddenTab: (itemKey: string) => void;
19
- deleteHiddenTab: (itemKey: string) => void;
18
+ changeActiveKey: (key: DropdownItemKeyType) => void;
19
+ addHiddenTab: (itemKey: DropdownItemKeyType) => void;
20
+ deleteHiddenTab: (itemKey: DropdownItemKeyType) => void;
20
21
  setCurrentTabElement: (tab: HTMLElement | null) => void;
21
22
  scrollToTab: (element: HTMLElement | null) => void;
22
23
  size?: TabsSizeType;
@@ -27,6 +28,6 @@ export interface TabItemProps extends Omit<TabItem, "key"> {
27
28
  labelWrapper?: (theme: Theme, selected: boolean) => Interpolation;
28
29
  childrenWrapper?: (theme: Theme, selected: boolean) => Interpolation;
29
30
  };
30
- onChange?: (activeKey: string) => void;
31
- onTabClick?: (activeKey: string, event: MouseEvent) => void;
31
+ onChange?: (activeKey: DropdownItemKeyType) => void;
32
+ onTabClick?: (activeKey: DropdownItemKeyType, event: MouseEvent) => void;
32
33
  }
@@ -1,17 +1,17 @@
1
1
  import { MouseEvent } from 'react';
2
2
  import { TabItem } from '../components/TabItem/TabItem.types';
3
- import { ItemType, MenuItem } from 'components/Dropdown/Dropdown.types';
4
- export declare const useMoreTabsController: (items: TabItem[], currentActiveKey: string | undefined, currentTabElement: HTMLElement | null, onTabClick: ((activeKey: string, event: MouseEvent) => void) | undefined, onChange: ((activeKey: string) => void) | undefined, changeActiveKey: (key: string) => void) => {
3
+ import { DropdownItemKeyType, ItemType, MenuItem } from 'components/Dropdown/Dropdown.types';
4
+ export declare const useMoreTabsController: (items: TabItem[], currentActiveKey: DropdownItemKeyType | undefined, currentTabElement: HTMLElement | null, onTabClick: ((activeKey: DropdownItemKeyType, event: MouseEvent) => void) | undefined, onChange: ((activeKey: DropdownItemKeyType) => void) | undefined, changeActiveKey: (key: DropdownItemKeyType) => void) => {
5
5
  tabsRef: import('react').MutableRefObject<HTMLDivElement | null>;
6
6
  dropdownMenu: {
7
7
  items: MenuItem[];
8
8
  onClick: (props: {
9
9
  item: ItemType;
10
- key: string;
10
+ key: DropdownItemKeyType;
11
11
  e: MouseEvent;
12
12
  }) => void;
13
13
  };
14
- addHiddenTab: (itemKey: string) => void;
15
- deleteHiddenTab: (itemKey: string) => void;
14
+ addHiddenTab: (itemKey: DropdownItemKeyType) => void;
15
+ deleteHiddenTab: (itemKey: DropdownItemKeyType) => void;
16
16
  scrollToTab: (element: HTMLElement | null) => void;
17
17
  };
@@ -1,7 +1,8 @@
1
1
  import { TabItem } from '../components/TabItem/TabItem.types';
2
2
  import { DragEndEvent } from '@dnd-kit/core';
3
+ import { DropdownItemKeyType } from 'components/Dropdown/Dropdown.types';
3
4
  export declare const useTabsDndController: (items: TabItem[], draggable: boolean) => {
4
- tabsOrder: string[];
5
+ tabsOrder: DropdownItemKeyType[];
5
6
  isDragging: boolean;
6
7
  dndEvents: {
7
8
  onDragStart: () => void;
package/dist/index.d.ts CHANGED
@@ -28,8 +28,8 @@ export type { MessageObjectType } from './components/Message';
28
28
  export { type TimePickerProps, TimePicker } from './components/TimePicker';
29
29
  export { type DatePickerProps, DatePicker } from './components/DatePicker';
30
30
  export { type UploadProps, Upload } from './components/Upload';
31
- export { Dropdown } from './components/Dropdown';
32
- export type { DropdownProps, DropdownMenu } from './components/Dropdown';
31
+ export { Dropdown, isSubMenu, isMenuItem, isGroupType, isDivider } from './components/Dropdown';
32
+ export type { DropdownProps, DropdownMenu, ItemType, MenuItem, GroupType, DividerType, SubMenuType, } from './components/Dropdown';
33
33
  export { type ProgressProps, Progress } from './components/Progress';
34
34
  export { Avatar, avatarColors } from './components/Avatar';
35
35
  export type { AvatarProps, AvatarColorType } from './components/Avatar';
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ import { TimePicker } from "./components/TimePicker/TimePicker.js";
22
22
  import { DatePicker } from "./components/DatePicker/DatePicker.js";
23
23
  import { Upload } from "./components/Upload/Upload.js";
24
24
  import { Dropdown } from "./components/Dropdown/Dropdown.js";
25
+ import { isDivider, isGroupType, isMenuItem, isSubMenu } from "./components/Dropdown/Dropdown.types.js";
25
26
  import { Progress } from "./components/Progress/Progress.js";
26
27
  import { Avatar } from "./components/Avatar/Avatar.js";
27
28
  import { avatarColors } from "./components/Avatar/Avatar.utils.js";
@@ -72,6 +73,10 @@ export {
72
73
  avatarColors,
73
74
  inputNumberWrapperClassName,
74
75
  isCheckboxChangeEvent,
76
+ isDivider,
77
+ isGroupType,
78
+ isMenuItem,
79
+ isSubMenu,
75
80
  message,
76
81
  messagesHolder,
77
82
  themeMap,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@infomaximum/ui-kit",
3
3
  "license": "Apache-2.0",
4
- "version": "0.17.0",
4
+ "version": "0.17.1",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",