@gravity-ui/navigation 2.34.0 → 2.34.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 (31) hide show
  1. package/build/cjs/AsideHeader.js +1 -1
  2. package/build/cjs/Drawer.js +14 -10
  3. package/build/cjs/Drawer.js.map +1 -1
  4. package/build/cjs/{FooterItem-fef16564.js → FooterItem-22234c15.js} +1 -1
  5. package/build/cjs/{FooterItem-fef16564.js.map → FooterItem-22234c15.js.map} +1 -1
  6. package/build/cjs/{HotkeysPanel-9c965feb.js → HotkeysPanel-00735b71.js} +1 -1
  7. package/build/cjs/{HotkeysPanel-9c965feb.js.map → HotkeysPanel-00735b71.js.map} +1 -1
  8. package/build/cjs/{PageLayoutAside-122aea8e.js → PageLayoutAside-9fabdd21.js} +1 -1
  9. package/build/cjs/{PageLayoutAside-122aea8e.js.map → PageLayoutAside-9fabdd21.js.map} +1 -1
  10. package/build/cjs/PageLayoutAside.js +1 -1
  11. package/build/cjs/components/Drawer/Drawer.d.ts +6 -0
  12. package/build/cjs/components/Drawer/utils.d.ts +1 -0
  13. package/build/cjs/index.js +3 -3
  14. package/build/cjs/index4.js +1 -1
  15. package/build/cjs/index6.js +1 -1
  16. package/build/esm/AsideHeader.js +1 -1
  17. package/build/esm/Drawer.js +14 -10
  18. package/build/esm/Drawer.js.map +1 -1
  19. package/build/esm/{FooterItem-eea84655.js → FooterItem-e7755a30.js} +1 -1
  20. package/build/esm/{FooterItem-eea84655.js.map → FooterItem-e7755a30.js.map} +1 -1
  21. package/build/esm/{HotkeysPanel-4693d73c.js → HotkeysPanel-c974ca3a.js} +1 -1
  22. package/build/esm/{HotkeysPanel-4693d73c.js.map → HotkeysPanel-c974ca3a.js.map} +1 -1
  23. package/build/esm/{PageLayoutAside-d7365bdf.js → PageLayoutAside-f7f0962e.js} +1 -1
  24. package/build/esm/{PageLayoutAside-d7365bdf.js.map → PageLayoutAside-f7f0962e.js.map} +1 -1
  25. package/build/esm/PageLayoutAside.js +1 -1
  26. package/build/esm/components/Drawer/Drawer.d.ts +6 -0
  27. package/build/esm/components/Drawer/utils.d.ts +1 -0
  28. package/build/esm/index.js +4 -4
  29. package/build/esm/index4.js +1 -1
  30. package/build/esm/index6.js +1 -1
  31. package/package.json +1 -1
@@ -3033,16 +3033,18 @@ function useResizeHandlers({ onStart, onMove, onEnd, direction = 'horizontal', }
3033
3033
  const delta = initialPosition.current - current;
3034
3034
  onMove(delta);
3035
3035
  }, [onMove, direction]);
3036
+ const disableSelect = React.useCallback((e) => {
3037
+ e.preventDefault();
3038
+ }, []);
3036
3039
  const handleEnd = React.useCallback((e) => {
3037
3040
  window.removeEventListener('mousemove', handleMove);
3038
3041
  window.removeEventListener('touchmove', handleMove);
3039
- document.body.style.removeProperty('user-select');
3040
- document.body.style.removeProperty('-webkit-user-select');
3042
+ window.removeEventListener('selectstart', disableSelect);
3041
3043
  document.body.style.removeProperty('cursor');
3042
3044
  const current = getEventClientPosition(e, direction);
3043
3045
  const delta = initialPosition.current - current;
3044
3046
  onEnd(delta);
3045
- }, [handleMove, onEnd, direction]);
3047
+ }, [handleMove, disableSelect, direction, onEnd]);
3046
3048
  const handleStart = React.useCallback((e) => {
3047
3049
  const current = getEventClientPosition(e, direction);
3048
3050
  initialPosition.current = current;
@@ -3052,9 +3054,9 @@ function useResizeHandlers({ onStart, onMove, onEnd, direction = 'horizontal', }
3052
3054
  window.addEventListener('touchcancel', handleEnd, { once: true });
3053
3055
  window.addEventListener('mousemove', handleMove);
3054
3056
  window.addEventListener('touchmove', handleMove);
3055
- document.body.style.setProperty('user-select', 'none');
3056
- document.body.style.setProperty('-webkit-user-select', 'none');
3057
- document.body.style.setProperty('cursor', 'col-resize');
3057
+ // Prevents user from selecting text. Similar to `user-select: none` but with no override issue.
3058
+ window.addEventListener('selectstart', disableSelect, { passive: false });
3059
+ document.body.style.setProperty('cursor', direction === 'horizontal' ? 'col-resize' : 'row-resize');
3058
3060
  onStart();
3059
3061
  }, [handleEnd, handleMove, onStart, direction]);
3060
3062
  return {
@@ -3063,7 +3065,7 @@ function useResizeHandlers({ onStart, onMove, onEnd, direction = 'horizontal', }
3063
3065
  };
3064
3066
  }
3065
3067
  function useResizableDrawerItem(params) {
3066
- const { direction = 'left', width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, } = params;
3068
+ const { direction = 'left', width, minResizeWidth = DRAWER_ITEM_MIN_RESIZE_WIDTH, maxResizeWidth = DRAWER_ITEM_MAX_RESIZE_WIDTH, onResizeStart, onResize, onResizeContinue, } = params;
3067
3069
  const [isResizing, setIsResizing] = React.useState(false);
3068
3070
  const [resizeDelta, setResizeDelta] = React.useState(0);
3069
3071
  const [internalWidth, setInternalWidth] = React.useState(width !== null && width !== void 0 ? width : DRAWER_ITEM_INITIAL_RESIZE_WIDTH);
@@ -3080,7 +3082,8 @@ function useResizableDrawerItem(params) {
3080
3082
  }, [onResizeStart]);
3081
3083
  const onMove = React.useCallback((delta) => {
3082
3084
  setResizeDelta(delta);
3083
- }, []);
3085
+ onResizeContinue === null || onResizeContinue === void 0 ? void 0 : onResizeContinue(getResizedWidth(delta));
3086
+ }, [getResizedWidth, onResizeContinue]);
3084
3087
  const onEnd = React.useCallback((delta) => {
3085
3088
  const newWidth = getResizedWidth(delta);
3086
3089
  setIsResizing(false);
@@ -3099,13 +3102,13 @@ function useResizableDrawerItem(params) {
3099
3102
  return { resizedWidth: displayWidth, resizerHandlers: handlers, isResizing };
3100
3103
  }
3101
3104
 
3102
- var css_248z = ".gn-drawer{--_--item-shadow-default:0 1px 5px 0 var(--g-color-sfx-shadow);--_--resizer-width:8px;--_--resizer-color:var(--g-color-base-generic);--_--resizer-handle-color:var(--g-color-line-generic);--_--resizer-handle-color-hover:var(--g-color-line-generic-hover);--_--resizer-z-index:100;--_--veil-background-color:var(--g-color-sfx-veil);pointer-events:none}.gn-drawer_hideVeil{--_--item-shadow:var(--gn-drawer-item-shadow,var(--_--item-shadow-default))}.gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;box-shadow:var(--_--item-shadow,none);height:100%;left:0;pointer-events:auto;position:absolute;top:0;will-change:transform;z-index:var(--gn-drawer-item-z-index)}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item_direction_top{bottom:auto;right:0}.gn-drawer__item_direction_bottom{right:0;top:auto}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition_direction_top-enter{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-enter{transform:translateY(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_bottom-enter-active,.gn-drawer__item-transition_direction_right-enter-active,.gn-drawer__item-transition_direction_top-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_bottom-enter-done,.gn-drawer__item-transition_direction_right-enter-done,.gn-drawer__item-transition_direction_top-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_bottom-exit,.gn-drawer__item-transition_direction_right-exit,.gn-drawer__item-transition_direction_top-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_bottom-exit-active,.gn-drawer__item-transition_direction_right-exit-active,.gn-drawer__item-transition_direction_top-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition_direction_top-exit-active{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-exit-active{transform:translateY(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_bottom-exit-done,.gn-drawer__item-transition_direction_right-exit-done,.gn-drawer__item-transition_direction_top-exit-done,.gn-drawer__item_hidden{visibility:hidden}.gn-drawer__veil{background-color:var(--gn-drawer-veil-background-color,var(--_--veil-background-color));inset:0;pointer-events:auto;position:absolute;z-index:var(--gn-drawer-veil-z-index)}.gn-drawer__veil_hidden{display:none}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}.gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color,var(--_--resizer-handle-color));border-radius:2px;height:28px;width:2px}.gn-drawer__resizer-handle_direction_bottom,.gn-drawer__resizer-handle_direction_top{height:2px;width:28px}.gn-drawer__resizer{align-items:center;background:var(--gn-drawer-item-resizer-color,var(--_--resizer-color));cursor:col-resize;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;top:0;width:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));z-index:var(--gn-drawer-item-resizer-z-index,var(--_--resizer-z-index))}.gn-drawer__resizer_direction_right{left:0}.gn-drawer__resizer_direction_left{right:0}.gn-drawer__resizer_direction_top{bottom:0;left:0;top:unset}.gn-drawer__resizer_direction_bottom{left:0;top:0}.gn-drawer__resizer_direction_bottom,.gn-drawer__resizer_direction_top{height:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));width:100%}.gn-drawer__resizer:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
3105
+ var css_248z = ".gn-drawer{--_--item-shadow-default:0 1px 5px 0 var(--g-color-sfx-shadow);--_--resizer-width:8px;--_--resizer-color:var(--g-color-base-generic);--_--resizer-handle-color:var(--g-color-line-generic);--_--resizer-handle-color-hover:var(--g-color-line-generic-hover);--_--resizer-z-index:100;--_--veil-background-color:var(--g-color-sfx-veil);pointer-events:none}.gn-drawer_hideVeil{--_--item-shadow:var(--gn-drawer-item-shadow,var(--_--item-shadow-default))}.gn-drawer__item{background-color:var(--g-color-base-background);bottom:0;box-shadow:var(--_--item-shadow,none);height:100%;left:0;pointer-events:auto;position:absolute;top:0;will-change:transform;z-index:var(--gn-drawer-item-z-index)}.gn-drawer__item_direction_right{left:auto;right:0}.gn-drawer__item_direction_top{bottom:auto;right:0}.gn-drawer__item_direction_bottom{right:0;top:auto}.gn-drawer__item-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition_direction_top-enter{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-enter{transform:translateY(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_bottom-enter-active,.gn-drawer__item-transition_direction_right-enter-active,.gn-drawer__item-transition_direction_top-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_bottom-enter-done,.gn-drawer__item-transition_direction_right-enter-done,.gn-drawer__item-transition_direction_top-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_bottom-exit,.gn-drawer__item-transition_direction_right-exit,.gn-drawer__item-transition_direction_top-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_bottom-exit-active,.gn-drawer__item-transition_direction_right-exit-active,.gn-drawer__item-transition_direction_top-exit-active{transition:transform .3s}.gn-drawer__item-transition-exit-active{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-exit-active{transform:translate(100%)}.gn-drawer__item-transition_direction_top-exit-active{transform:translateY(-100%)}.gn-drawer__item-transition_direction_bottom-exit-active{transform:translateY(100%)}.gn-drawer__item-transition-exit-done,.gn-drawer__item-transition_direction_bottom-exit-done,.gn-drawer__item-transition_direction_right-exit-done,.gn-drawer__item-transition_direction_top-exit-done,.gn-drawer__item_hidden{visibility:hidden}.gn-drawer__veil{background-color:var(--gn-drawer-veil-background-color,var(--_--veil-background-color));inset:0;pointer-events:auto;position:absolute;z-index:var(--gn-drawer-veil-z-index)}.gn-drawer__veil_hidden{display:none}.gn-drawer__veil-transition-enter{opacity:0}.gn-drawer__veil-transition-enter-active{opacity:1;transition:opacity .3s}.gn-drawer__veil-transition-exit{opacity:1}.gn-drawer__veil-transition-exit-active{opacity:0;transition:opacity .3s}.gn-drawer__veil-transition-exit-done{visibility:hidden}.gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color,var(--_--resizer-handle-color));border-radius:2px;height:28px;width:2px}.gn-drawer__resizer-handle_direction_bottom,.gn-drawer__resizer-handle_direction_top{height:2px;width:28px}.gn-drawer__resizer{align-items:center;background:var(--gn-drawer-item-resizer-color,var(--_--resizer-color));cursor:col-resize;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;top:0;width:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));z-index:var(--gn-drawer-item-resizer-z-index,var(--_--resizer-z-index))}.gn-drawer__resizer_direction_right{left:0}.gn-drawer__resizer_direction_left{right:0}.gn-drawer__resizer_direction_top{bottom:0;left:0;top:unset}.gn-drawer__resizer_direction_bottom{left:0;top:0}.gn-drawer__resizer_direction_bottom,.gn-drawer__resizer_direction_top{cursor:row-resize;height:var(--gn-drawer-item-resizer-width,var(--_--resizer-width));width:100%}.gn-drawer__resizer:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
3103
3106
  styleInject(css_248z);
3104
3107
 
3105
3108
  const b = block('drawer');
3106
3109
  const TIMEOUT = 300;
3107
3110
  const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
3108
- const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResize, keepMounted = false, } = props;
3111
+ const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResizeStart, onResizeContinue, onResize, keepMounted = false, } = props;
3109
3112
  const [isInitialRender, setInitialRender] = React__default.useState(true);
3110
3113
  const itemRef = React__default.useRef(null);
3111
3114
  const handleRef = useForkRef(ref, itemRef);
@@ -3117,6 +3120,7 @@ const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
3117
3120
  maxResizeWidth,
3118
3121
  onResizeStart,
3119
3122
  onResize,
3123
+ onResizeContinue,
3120
3124
  });
3121
3125
  const style = {};
3122
3126
  if (resizable) {