@gravity-ui/navigation 2.25.0 → 2.27.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 (47) hide show
  1. package/build/cjs/AsideHeader.js +2 -2
  2. package/build/cjs/Drawer.js +11 -7
  3. package/build/cjs/Drawer.js.map +1 -1
  4. package/build/cjs/{FooterItem-003eb137.js → FooterItem-286094ab.js} +1 -1
  5. package/build/cjs/{FooterItem-003eb137.js.map → FooterItem-286094ab.js.map} +1 -1
  6. package/build/cjs/FooterItem.js +1 -1
  7. package/build/cjs/{HotkeysPanel-d971b094.js → HotkeysPanel-4b97825e.js} +1 -1
  8. package/build/cjs/{HotkeysPanel-d971b094.js.map → HotkeysPanel-4b97825e.js.map} +1 -1
  9. package/build/cjs/{Item-7c1b54f5.js → Item-122f7db4.js} +3 -2
  10. package/build/cjs/Item-122f7db4.js.map +1 -0
  11. package/build/cjs/{PageLayoutAside-e729d911.js → PageLayoutAside-ace87c16.js} +8 -8
  12. package/build/cjs/PageLayoutAside-ace87c16.js.map +1 -0
  13. package/build/cjs/PageLayoutAside.js +2 -2
  14. package/build/cjs/components/AsideHeader/types.d.ts +1 -0
  15. package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -0
  16. package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -0
  17. package/build/cjs/components/Drawer/Drawer.d.ts +10 -0
  18. package/build/cjs/components/types.d.ts +1 -0
  19. package/build/cjs/index.js +4 -4
  20. package/build/cjs/index4.js +1 -1
  21. package/build/cjs/index6.js +1 -1
  22. package/build/esm/AsideHeader.js +2 -2
  23. package/build/esm/Drawer.js +11 -7
  24. package/build/esm/Drawer.js.map +1 -1
  25. package/build/esm/{FooterItem-42f3ac69.js → FooterItem-2552f5a6.js} +1 -1
  26. package/build/esm/{FooterItem-42f3ac69.js.map → FooterItem-2552f5a6.js.map} +1 -1
  27. package/build/esm/FooterItem.js +1 -1
  28. package/build/esm/{HotkeysPanel-f0e2a06c.js → HotkeysPanel-cab8d5ab.js} +1 -1
  29. package/build/esm/{HotkeysPanel-f0e2a06c.js.map → HotkeysPanel-cab8d5ab.js.map} +1 -1
  30. package/build/esm/{Item-fb2a4efc.js → Item-e9769642.js} +3 -2
  31. package/build/esm/Item-e9769642.js.map +1 -0
  32. package/build/esm/{PageLayoutAside-5f020459.js → PageLayoutAside-e48dea45.js} +8 -8
  33. package/build/esm/PageLayoutAside-e48dea45.js.map +1 -0
  34. package/build/esm/PageLayoutAside.js +2 -2
  35. package/build/esm/components/AsideHeader/types.d.ts +1 -0
  36. package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -0
  37. package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -0
  38. package/build/esm/components/Drawer/Drawer.d.ts +10 -0
  39. package/build/esm/components/types.d.ts +1 -0
  40. package/build/esm/index.js +5 -5
  41. package/build/esm/index4.js +1 -1
  42. package/build/esm/index6.js +1 -1
  43. package/package.json +1 -1
  44. package/build/cjs/Item-7c1b54f5.js.map +0 -1
  45. package/build/cjs/PageLayoutAside-e729d911.js.map +0 -1
  46. package/build/esm/Item-fb2a4efc.js.map +0 -1
  47. package/build/esm/PageLayoutAside-5f020459.js.map +0 -1
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('./tslib.es6-705c6589.js');
6
6
  var React = require('react');
7
7
  var PageLayout = require('./PageLayout.js');
8
- var PageLayoutAside = require('./PageLayoutAside-e729d911.js');
8
+ var PageLayoutAside = require('./PageLayoutAside-ace87c16.js');
9
9
  require('./Content-64d5738a.js');
10
10
  require('./constants-d81c3867.js');
11
11
  require('./AsideHeaderContext.js');
@@ -16,7 +16,7 @@ require('./style-inject.es-dcee06b6.js');
16
16
  require('@gravity-ui/uikit');
17
17
  require('@gravity-ui/icons');
18
18
  require('@gravity-ui/uikit/i18n');
19
- require('./Item-7c1b54f5.js');
19
+ require('./Item-122f7db4.js');
20
20
  require('./debounce-8772fd80.js');
21
21
  require('./divider-collapsed-b743122e.js');
22
22
  require('./Drawer.js');
@@ -3117,13 +3117,14 @@ function useResizableDrawerItem(params) {
3117
3117
  return { resizedWidth: displayWidth, resizerHandlers: handlers };
3118
3118
  }
3119
3119
 
3120
- 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-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_right-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_right-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_right-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_right-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-exit-done,.gn-drawer__item-transition_direction_right-exit-done{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{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:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
3120
+ 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-transition-enter{transform:translate(-100%)}.gn-drawer__item-transition_direction_right-enter{transform:translate(100%)}.gn-drawer__item-transition-enter-active,.gn-drawer__item-transition_direction_right-enter-active{transform:translate(0);transition:transform .3s}.gn-drawer__item-transition-enter-done,.gn-drawer__item-transition_direction_right-enter-done{filter:blur(0);transform:translateZ(0)}.gn-drawer__item-transition-exit,.gn-drawer__item-transition_direction_right-exit{transform:translate(0)}.gn-drawer__item-transition-exit-active,.gn-drawer__item-transition_direction_right-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-exit-done,.gn-drawer__item-transition_direction_right-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{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:hover .gn-drawer__resizer-handle{background:var(--gn-drawer-item-resizer-handle-color-hover,var(--_--resizer-handle-color-hover))}";
3121
3121
  styleInject_es.styleInject(css_248z);
3122
3122
 
3123
3123
  const b = cn.block('drawer');
3124
3124
  const TIMEOUT = 300;
3125
3125
  const DrawerItem = React__default["default"].forwardRef(function DrawerItem(props, ref) {
3126
- const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResize, } = props;
3126
+ const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResize, keepMounted = false, } = props;
3127
+ const [isInitialRender, setInitialRender] = React__default["default"].useState(true);
3127
3128
  const itemRef = React__default["default"].useRef(null);
3128
3129
  const handleRef = uikit.useForkRef(ref, itemRef);
3129
3130
  const cssDirection = direction === 'left' ? undefined : direction;
@@ -3134,13 +3135,16 @@ const DrawerItem = React__default["default"].forwardRef(function DrawerItem(prop
3134
3135
  maxResizeWidth,
3135
3136
  onResize,
3136
3137
  });
3138
+ React__default["default"].useEffect(() => {
3139
+ setInitialRender(true);
3140
+ }, [direction]);
3137
3141
  const resizerElement = resizable ? (React__default["default"].createElement("div", Object.assign({ className: b('resizer', { direction }) }, resizerHandlers),
3138
3142
  React__default["default"].createElement("div", { className: b('resizer-handle') }))) : null;
3139
- return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b('item-transition', { direction: cssDirection }), nodeRef: itemRef },
3140
- React__default["default"].createElement("div", { ref: handleRef, className: b('item', { direction: cssDirection }, className), style: { width: resizable ? `${resizedWidth}px` : undefined } },
3143
+ return (React__default["default"].createElement(CSSTransition, { in: visible, timeout: TIMEOUT, mountOnEnter: !keepMounted, unmountOnExit: !keepMounted, classNames: b('item-transition', { direction: cssDirection }), nodeRef: itemRef, onEnter: () => setInitialRender(false), onExit: () => setInitialRender(false) },
3144
+ React__default["default"].createElement("div", { ref: handleRef, className: b('item', { direction: cssDirection, hidden: isInitialRender && !visible }, [className]), style: { width: resizable ? `${resizedWidth}px` : undefined } },
3141
3145
  resizerElement, children !== null && children !== void 0 ? children : content)));
3142
3146
  });
3143
- const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, }) => {
3147
+ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, keepMounted = false, }) => {
3144
3148
  let someItemVisible = false;
3145
3149
  React__default["default"].Children.forEach(children, (child) => {
3146
3150
  if (React__default["default"].isValidElement(child) && child.type === DrawerItem) {
@@ -3166,7 +3170,7 @@ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEsca
3166
3170
  uikit.useBodyScrollLock({ enabled: preventScrollBody && someItemVisible });
3167
3171
  const containerRef = React__default["default"].useRef(null);
3168
3172
  const veilRef = React__default["default"].useRef(null);
3169
- const drawer = (React__default["default"].createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: true, unmountOnExit: true, nodeRef: containerRef }, (state) => {
3173
+ const drawer = (React__default["default"].createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: !keepMounted, unmountOnExit: !keepMounted, nodeRef: containerRef }, (state) => {
3170
3174
  const childrenVisible = someItemVisible && state === 'entered';
3171
3175
  return (React__default["default"].createElement("div", { ref: containerRef, className: b({ hideVeil }, className), style: style },
3172
3176
  React__default["default"].createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b('veil-transition'), nodeRef: veilRef },
@@ -3175,7 +3179,7 @@ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEsca
3175
3179
  if (React__default["default"].isValidElement(child) &&
3176
3180
  child.type === DrawerItem) {
3177
3181
  const childVisible = Boolean(child.props.visible);
3178
- return React__default["default"].cloneElement(child, Object.assign(Object.assign({}, child.props), { visible: childVisible && childrenVisible }));
3182
+ return React__default["default"].cloneElement(child, Object.assign(Object.assign({ keepMounted }, child.props), { visible: childVisible && childrenVisible }));
3179
3183
  }
3180
3184
  return child;
3181
3185
  })));