@infomaximum/ui-kit 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/components/BaseSelect/BaseSelect.d.ts +1 -1
  2. package/dist/components/BaseSelect/BaseSelect.js +21 -12
  3. package/dist/components/BaseSelect/BaseSelect.tokens.d.ts +1 -0
  4. package/dist/components/BaseSelect/BaseSelect.tokens.js +1 -0
  5. package/dist/components/BaseSelect/BaseSelect.types.d.ts +5 -2
  6. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.d.ts +1 -1
  7. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.js +6 -6
  8. package/dist/components/BaseSelect/components/SelectOptionList/SelectOptionList.types.d.ts +1 -0
  9. package/dist/components/BaseSelect/hooks/useDefaultCurrentValue.js +2 -1
  10. package/dist/components/BaseTooltip/BaseTooltip.js +38 -56
  11. package/dist/components/BaseTooltip/BaseTooltip.types.d.ts +1 -1
  12. package/dist/components/BaseTooltip/BaseTooltip.utils.d.ts +1 -3
  13. package/dist/components/BaseTooltip/BaseTooltip.utils.js +2 -32
  14. package/dist/components/BaseTooltip/hooks/useCustomFloating.d.ts +2 -1
  15. package/dist/components/BaseTooltip/hooks/useCustomFloating.js +9 -7
  16. package/dist/components/BaseTooltip/hooks/useShowTooltipController.d.ts +1 -2
  17. package/dist/components/BaseTooltip/hooks/useShowTooltipController.js +42 -57
  18. package/dist/components/Collapse/Collapse.js +1 -1
  19. package/dist/components/Dropdown/Dropdown.types.d.ts +1 -0
  20. package/dist/components/Dropdown/components/SubMenu/SubMenu.js +7 -3
  21. package/dist/components/InternalPicker/styles/DatePanel.styles.d.ts +596 -596
  22. package/dist/components/InternalPicker/styles/Popup.styles.d.ts +593 -593
  23. package/dist/components/NewDropdown/NewDropdown.d.ts +2 -0
  24. package/dist/components/NewDropdown/NewDropdown.js +180 -0
  25. package/dist/components/NewDropdown/NewDropdown.styles.d.ts +10 -0
  26. package/dist/components/NewDropdown/NewDropdown.styles.js +11 -0
  27. package/dist/components/NewDropdown/NewDropdown.tokens.d.ts +18 -0
  28. package/dist/components/NewDropdown/NewDropdown.tokens.js +14 -0
  29. package/dist/components/NewDropdown/NewDropdown.types.d.ts +132 -0
  30. package/dist/components/NewDropdown/NewDropdown.utils.d.ts +26 -0
  31. package/dist/components/NewDropdown/NewDropdown.utils.js +55 -0
  32. package/dist/components/NewDropdown/components/Divider/Divider.d.ts +2 -0
  33. package/dist/components/NewDropdown/components/Divider/Divider.js +21 -0
  34. package/dist/components/NewDropdown/components/Divider/Divider.styles.d.ts +10 -0
  35. package/dist/components/NewDropdown/components/Divider/Divider.styles.js +12 -0
  36. package/dist/components/NewDropdown/components/Divider/index.d.ts +1 -0
  37. package/dist/components/NewDropdown/components/GroupItem/GroupItem.d.ts +3 -0
  38. package/dist/components/NewDropdown/components/GroupItem/GroupItem.js +33 -0
  39. package/dist/components/NewDropdown/components/GroupItem/GroupItem.styles.d.ts +29 -0
  40. package/dist/components/NewDropdown/components/GroupItem/GroupItem.styles.js +31 -0
  41. package/dist/components/NewDropdown/components/GroupItem/GroupItem.types.d.ts +5 -0
  42. package/dist/components/NewDropdown/components/GroupItem/index.d.ts +1 -0
  43. package/dist/components/NewDropdown/components/Menu/Menu.d.ts +3 -0
  44. package/dist/components/NewDropdown/components/Menu/Menu.js +33 -0
  45. package/dist/components/NewDropdown/components/Menu/Menu.styles.d.ts +2 -0
  46. package/dist/components/NewDropdown/components/Menu/Menu.styles.js +8 -0
  47. package/dist/components/NewDropdown/components/Menu/Menu.types.d.ts +11 -0
  48. package/dist/components/NewDropdown/components/Menu/index.d.ts +1 -0
  49. package/dist/components/NewDropdown/components/MenuItem/MenuItem.d.ts +3 -0
  50. package/dist/components/NewDropdown/components/MenuItem/MenuItem.js +75 -0
  51. package/dist/components/NewDropdown/components/MenuItem/MenuItem.styles.d.ts +42 -0
  52. package/dist/components/NewDropdown/components/MenuItem/MenuItem.styles.js +67 -0
  53. package/dist/components/NewDropdown/components/MenuItem/MenuItem.types.d.ts +5 -0
  54. package/dist/components/NewDropdown/components/MenuItem/index.d.ts +1 -0
  55. package/dist/components/NewDropdown/components/SubMenuItem/SubMenuItem.d.ts +3 -0
  56. package/dist/components/NewDropdown/components/SubMenuItem/SubMenuItem.js +170 -0
  57. package/dist/components/NewDropdown/components/SubMenuItem/SubMenuItem.styles.d.ts +13 -0
  58. package/dist/components/NewDropdown/components/SubMenuItem/SubMenuItem.styles.js +15 -0
  59. package/dist/components/NewDropdown/components/SubMenuItem/SubMenuItem.types.d.ts +5 -0
  60. package/dist/components/NewDropdown/components/SubMenuItem/index.d.ts +1 -0
  61. package/dist/components/NewDropdown/contexts/NewDropdownContext.d.ts +9 -0
  62. package/dist/components/NewDropdown/contexts/NewDropdownContext.js +8 -0
  63. package/dist/components/NewDropdown/contexts/NewDropdownNavigationContext.d.ts +11 -0
  64. package/dist/components/NewDropdown/contexts/NewDropdownNavigationContext.js +8 -0
  65. package/dist/components/NewDropdown/hooks/useContextMenu/index.d.ts +2 -0
  66. package/dist/components/NewDropdown/hooks/useContextMenu/useContextMenu.d.ts +9 -0
  67. package/dist/components/NewDropdown/hooks/useContextMenu/useContextMenu.js +38 -0
  68. package/dist/components/NewDropdown/hooks/useContextMenu/useContextMenu.types.d.ts +7 -0
  69. package/dist/components/NewDropdown/hooks/useNewDropdownTokens/index.d.ts +1 -0
  70. package/dist/components/NewDropdown/hooks/useNewDropdownTokens/useNewDropdownTokens.d.ts +7 -0
  71. package/dist/components/NewDropdown/hooks/useNewDropdownTokens/useNewDropdownTokens.js +14 -0
  72. package/dist/components/NewDropdown/hooks/useNewDropdownTokens/useNewDropdownTokens.types.d.ts +6 -0
  73. package/dist/components/NewDropdown/index.d.ts +2 -0
  74. package/dist/components/Segmented/Segmented.js +1 -1
  75. package/dist/components/Select/Select.d.ts +9 -1
  76. package/dist/components/Select/Select.js +53 -28
  77. package/dist/components/Select/Select.types.d.ts +5 -1
  78. package/dist/components/Select/Select.utils.d.ts +10 -1
  79. package/dist/components/Select/Select.utils.js +110 -7
  80. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.d.ts +5 -0
  81. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.js +68 -0
  82. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.styles.d.ts +28 -0
  83. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.styles.js +34 -0
  84. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.types.d.ts +21 -0
  85. package/dist/components/Select/components/SelectGroupOption/SelectGroupOption.types.js +7 -0
  86. package/dist/components/Select/components/SelectOption/SelectOption.d.ts +3 -2
  87. package/dist/components/Select/components/SelectOption/SelectOption.js +25 -15
  88. package/dist/components/Select/components/SelectOption/SelectOption.styles.d.ts +16 -2
  89. package/dist/components/Select/components/SelectOption/SelectOption.styles.js +18 -2
  90. package/dist/components/Select/components/SelectOption/SelectOption.types.d.ts +5 -0
  91. package/dist/components/Select/contexts/DepthContext.d.ts +3 -0
  92. package/dist/components/Select/contexts/DepthContext.js +9 -0
  93. package/dist/components/Select/contexts/SelectRenderContext.d.ts +11 -0
  94. package/dist/components/Select/contexts/SelectRenderContext.js +7 -0
  95. package/dist/components/Select/forStories/dataForExamples.d.ts +65 -3
  96. package/dist/components/Select/hooks/useElementSizesController.d.ts +5 -0
  97. package/dist/components/Select/hooks/useElementSizesController.js +17 -0
  98. package/dist/components/Select/hooks/useKeyControl.d.ts +4 -4
  99. package/dist/components/Select/hooks/useKeyControl.js +15 -10
  100. package/dist/components/Slider/components/SliderHandleTooltip/SliderHandleTooltip.js +1 -1
  101. package/dist/components/Slider/components/SliderInternal/SliderInternal.js +1 -1
  102. package/dist/components/Table/features/tableRowSelection/hooks/useTableRowSelection/useTableRowSelection.js +1 -1
  103. package/dist/components/Table/hooks/useTableVisualParamsChange/utils.d.ts +1 -1
  104. package/dist/components/Tabs/Tabs.utils.d.ts +2 -2
  105. package/dist/components/Tabs/Tabs.utils.js +11 -24
  106. package/dist/components/Tabs/components/TabBar/TabBar.js +8 -7
  107. package/dist/components/Tabs/components/TabItem/TabItem.js +7 -5
  108. package/dist/components/Tabs/components/TabItem/TabItem.styles.d.ts +1 -1
  109. package/dist/components/Tabs/components/TabItem/TabItem.types.d.ts +1 -0
  110. package/dist/components/Tabs/hooks/useMoreTabsController.d.ts +2 -1
  111. package/dist/components/Tabs/hooks/useMoreTabsController.js +10 -6
  112. package/dist/components/TreeSelect/TreeSelect.js +8 -3
  113. package/dist/components/TreeSelect/components/TreeSelectOption/TreeSelectOption.types.d.ts +1 -0
  114. package/dist/components/TreeSelect/hooks/useKeyControl.d.ts +2 -2
  115. package/dist/components/TreeSelect/hooks/useKeyControl.js +9 -8
  116. package/dist/hooks/useInputModeDetector/index.d.ts +2 -0
  117. package/dist/hooks/useInputModeDetector/useInputModeDetector.d.ts +13 -0
  118. package/dist/hooks/useInputModeDetector/useInputModeDetector.js +50 -0
  119. package/dist/hooks/useInputModeDetector/useInputModeDetector.types.d.ts +1 -0
  120. package/dist/index.d.ts +1 -0
  121. package/dist/index.js +2 -0
  122. package/package.json +2 -1
@@ -2,7 +2,7 @@ import { useState, useRef, useEffect, useCallback, useMemo } from "react";
2
2
  import { isUndefined } from "lodash-es";
3
3
  import { convertSecondsToMilliseconds } from "../../../utils/converters.js";
4
4
  import "@floating-ui/react";
5
- import { setNewReferencePosition, setContextMenuPosition } from "../BaseTooltip.utils.js";
5
+ import { setNewReferencePosition } from "../BaseTooltip.utils.js";
6
6
  const useShowTooltipController = ({
7
7
  trigger,
8
8
  defaultOpen,
@@ -13,7 +13,6 @@ const useShowTooltipController = ({
13
13
  refs,
14
14
  placement,
15
15
  onOpenChange,
16
- onContextMenu,
17
16
  arrowRef
18
17
  }) => {
19
18
  const [isOpen, setIsOpen] = useState(defaultOpen);
@@ -21,38 +20,20 @@ const useShowTooltipController = ({
21
20
  useEffect(() => {
22
21
  setIsOpen(defaultOpen);
23
22
  }, [defaultOpen, open]);
24
- const isOpenResult = open ?? isOpen;
25
- const closeTooltip = useCallback(() => {
26
- setIsOpen(false);
27
- onOpenChange == null ? void 0 : onOpenChange(false);
28
- }, [onOpenChange]);
29
- const handleMouseUp = useCallback((e) => {
30
- var _a, _b;
31
- if (!e.target) {
32
- return;
33
- }
34
- const isFloatingElement = (_a = refs.floating.current) == null ? void 0 : _a.contains(e.target);
35
- const isReferenceElement = (_b = refs.domReference.current) == null ? void 0 : _b.contains(e.target);
36
- const isContextMenu = trigger.includes("contextMenu");
37
- if (isFloatingElement || isReferenceElement && !isContextMenu) {
38
- return;
39
- }
40
- closeTooltip();
41
- document.body.removeEventListener("mouseup", handleMouseUp);
42
- }, [closeTooltip, refs.domReference, refs.floating, trigger]);
43
23
  const showTooltip = useCallback(() => {
44
24
  if (isUndefined(open)) {
45
- document.body.addEventListener("mouseup", handleMouseUp);
46
25
  setIsOpen(true);
47
26
  }
48
27
  if (open !== true && isOpen !== true) {
49
28
  onOpenChange == null ? void 0 : onOpenChange(true);
50
29
  }
51
- }, [handleMouseUp, isOpen, onOpenChange, open]);
30
+ }, [isOpen, onOpenChange, open]);
52
31
  const hideTooltip = useCallback(() => {
53
- closeTooltip();
54
- document.body.removeEventListener("mouseup", handleMouseUp);
55
- }, [closeTooltip, handleMouseUp, open]);
32
+ if (isUndefined(open)) {
33
+ setIsOpen(false);
34
+ }
35
+ onOpenChange == null ? void 0 : onOpenChange(false);
36
+ }, [onOpenChange, open]);
56
37
  const handlePointerEnter = useMemo(() => {
57
38
  if (!trigger.includes("hover")) {
58
39
  return;
@@ -101,9 +82,6 @@ const useShowTooltipController = ({
101
82
  return (e) => {
102
83
  var _a;
103
84
  e.stopPropagation();
104
- if (trigger.includes("contextMenu")) {
105
- setContextMenuPosition(refs, e);
106
- }
107
85
  const isReferenceElement = (_a = refs.domReference.current) == null ? void 0 : _a.contains(e.target);
108
86
  if (!isReferenceElement) {
109
87
  return;
@@ -112,55 +90,62 @@ const useShowTooltipController = ({
112
90
  setNewReferencePosition(refs, e, placement, arrowRef);
113
91
  }
114
92
  if (isUndefined(open)) {
115
- if (isOpen) {
116
- hideTooltip();
117
- } else {
118
- showTooltip();
119
- }
93
+ setIsOpen((prev) => !prev);
94
+ onOpenChange == null ? void 0 : onOpenChange(isOpen);
120
95
  } else {
121
96
  onOpenChange == null ? void 0 : onOpenChange(!open);
122
97
  }
123
98
  };
124
- }, [arrowRef, hideTooltip, isOpen, onOpenChange, open, placement, refs, showInCursorPosition, showTooltip, trigger]);
99
+ }, [arrowRef, isOpen, onOpenChange, open, placement, refs, showInCursorPosition, trigger]);
125
100
  const handleContextMenu = useMemo(() => {
126
101
  if (!trigger.includes("contextMenu")) {
127
102
  return void 0;
128
103
  }
129
104
  return (e) => {
130
- setContextMenuPosition(refs, e);
131
- if (onContextMenu) {
132
- onContextMenu(e);
133
- return;
134
- }
135
105
  e.preventDefault();
106
+ refs.setPositionReference({
107
+ getBoundingClientRect() {
108
+ return {
109
+ width: 0,
110
+ height: 0,
111
+ x: e.clientX,
112
+ y: e.clientY,
113
+ top: e.clientY,
114
+ right: e.clientX,
115
+ bottom: e.clientY,
116
+ left: e.clientX
117
+ };
118
+ }
119
+ });
136
120
  showTooltip();
137
121
  };
138
- }, [onContextMenu, refs, showTooltip, trigger]);
139
- useEffect(() => {
140
- return () => {
141
- document.body.removeEventListener("mouseup", handleMouseUp);
142
- };
143
- }, [handleMouseUp]);
144
- useEffect(() => {
145
- if (open) {
146
- document.body.addEventListener("mouseup", handleMouseUp);
122
+ }, [refs, showTooltip, trigger]);
123
+ const handleMouseUp = useCallback((e) => {
124
+ var _a, _b;
125
+ if (!e.target) {
126
+ return;
147
127
  }
148
- if (open === false) {
149
- document.body.removeEventListener("mouseup", handleMouseUp);
128
+ const isFloatingElement = (_a = refs.floating.current) == null ? void 0 : _a.contains(e.target);
129
+ const isReferenceElement = (_b = refs.domReference.current) == null ? void 0 : _b.contains(e.target);
130
+ if (!isOpen || isFloatingElement || isReferenceElement) {
131
+ return;
150
132
  }
151
- }, [handleMouseUp, open]);
133
+ hideTooltip();
134
+ }, [hideTooltip, isOpen, refs.domReference, refs.floating]);
135
+ useEffect(() => {
136
+ document.body.addEventListener("mouseup", handleMouseUp);
137
+ return () => document.body.removeEventListener("mouseup", handleMouseUp);
138
+ }, [handleMouseUp]);
152
139
  const handlePointerUp = useMemo(() => {
153
140
  if (!trigger.includes("click")) {
154
141
  return void 0;
155
142
  }
156
143
  return (e) => {
157
- if (isOpenResult) {
158
- e.stopPropagation();
159
- }
144
+ e.stopPropagation();
160
145
  };
161
- }, [isOpenResult, trigger]);
146
+ }, [trigger]);
162
147
  return {
163
- isOpen: isOpenResult,
148
+ isOpen: open ?? isOpen,
164
149
  handlePointerEnter,
165
150
  handlePointerLeave,
166
151
  handleFocus,
@@ -1,10 +1,10 @@
1
1
  import { jsx } from "@emotion/react/jsx-runtime";
2
2
  import { memo, useMemo, useCallback } from "react";
3
+ import { useControlledState } from "../../hooks/useControlledState/useControlledState.js";
3
4
  import { getCollapseTokens } from "./Collapse.tokens.js";
4
5
  import { getCollapseContainerStyle } from "./Collapse.styles.js";
5
6
  import { CollapsePanel } from "./components/CollapsePanel/CollapsePanel.js";
6
7
  import { useTheme } from "../../hooks/useTheme/useTheme.js";
7
- import { useControlledState } from "../../hooks/useControlledState/useControlledState.js";
8
8
  const normalizeKeys = (key) => {
9
9
  if (key === void 0) {
10
10
  return [];
@@ -127,6 +127,7 @@ export interface SubMenuType {
127
127
  key: DropdownItemKeyType;
128
128
  e: MouseEvent;
129
129
  }) => void;
130
+ dropdownRender?: (menu: ReactNode) => ReactNode;
130
131
  }
131
132
  export declare const isSubMenu: (item: ItemType) => item is SubMenuType;
132
133
  export declare const isMenuItem: (item: ItemType) => item is MenuItem;
@@ -1,5 +1,6 @@
1
- import { jsxs, jsx } from "@emotion/react/jsx-runtime";
1
+ import { jsx, jsxs } from "@emotion/react/jsx-runtime";
2
2
  import { memo, useRef, useContext, useEffect, useMemo, useCallback } from "react";
3
+ import { isFunction } from "lodash-es";
3
4
  import { dropdownContext } from "../../contexts/dropdownContext.js";
4
5
  import { Menu } from "../Menu/Menu.js";
5
6
  import { offset, flip, useFloating, autoUpdate, useHover, useInteractions } from "@floating-ui/react";
@@ -16,7 +17,8 @@ const SubMenu = memo(({
16
17
  styles,
17
18
  search,
18
19
  clearSearchValue,
19
- onClick
20
+ onClick,
21
+ dropdownRender
20
22
  }) => {
21
23
  const timerId = useRef(null);
22
24
  const context = useContext(dropdownContext);
@@ -121,6 +123,8 @@ const SubMenu = memo(({
121
123
  document.body.addEventListener("mouseup", handleMouseUp);
122
124
  return () => document.body.removeEventListener("mouseup", handleMouseUp);
123
125
  }, [handleMouseUp]);
126
+ const menuElement = useMemo(() => /* @__PURE__ */ jsx(Menu, { ...context, items: children, title: label, subMenuOpen: context.subMenuOpen, search, styles, onClick }), [children, context, label, onClick, search, styles]);
127
+ const floatingContent = isFunction(dropdownRender) ? dropdownRender(menuElement) : menuElement;
124
128
  return /* @__PURE__ */ jsxs("div", { ref: refs.setReference, ...getReferenceProps, onPointerEnter: handlePointerEnter, onPointerLeave: handlePointerLeave, onClick: handleClick, onMouseUp: (e) => {
125
129
  e.stopPropagation();
126
130
  }, onMouseDown: (e) => {
@@ -130,7 +134,7 @@ const SubMenu = memo(({
130
134
  !isStepMode && (isOpen || !!context.forceSubMenuRender) && /* @__PURE__ */ jsx("div", { ref: refs.setFloating, style: {
131
135
  ...floatingStyles,
132
136
  visibility: isOpen ? "visible" : "hidden"
133
- }, ...getFloatingProps, children: /* @__PURE__ */ jsx(Menu, { ...context, items: children, title: label, subMenuOpen: context.subMenuOpen, search, styles, onClick }) })
137
+ }, ...getFloatingProps, children: floatingContent })
134
138
  ] });
135
139
  });
136
140
  export {