@alfalab/core-components-drawer 7.0.3 → 7.0.4

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.
package/Component.d.ts CHANGED
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type TransitionProps } from 'react-transition-group/Transition';
3
3
  import { BaseModalContext, type BaseModalProps } from '@alfalab/core-components-base-modal';
4
4
  export declare const ANIMATION_DURATION = 600;
5
- export declare type DrawerProps = Omit<BaseModalProps, 'container'> & {
5
+ export type DrawerProps = Omit<BaseModalProps, 'container'> & {
6
6
  /**
7
7
  * Край экрана, с которого может появиться Drawer.
8
8
  * @default "right"
@@ -24,14 +24,14 @@ export declare const Drawer: React.ForwardRefExoticComponent<Omit<BaseModalProps
24
24
  * Край экрана, с которого может появиться Drawer.
25
25
  * @default "right"
26
26
  */
27
- placement?: "left" | "right" | undefined;
27
+ placement?: "left" | "right";
28
28
  /**
29
29
  * Нужно ли использовать нативный скроллбар
30
30
  * @default true
31
31
  */
32
- nativeScrollbar?: boolean | undefined;
32
+ nativeScrollbar?: boolean;
33
33
  /**
34
34
  * Пропсы для анимации контента (CSSTransition)
35
35
  */
36
- contentTransitionProps?: Partial<TransitionProps<undefined>> | undefined;
36
+ contentTransitionProps?: Partial<TransitionProps>;
37
37
  } & React.RefAttributes<HTMLDivElement>>;
package/Component.js CHANGED
@@ -71,7 +71,7 @@ var Drawer = React.forwardRef(function (_a, ref) {
71
71
  _b[index_module.leftPlacement] = isLeftPlacement,
72
72
  _b[index_module.customScrollbar] = !nativeScrollbar,
73
73
  _b)), transitionProps: transitionProps, backdropProps: tslib.__assign(tslib.__assign({}, backdropProps), restProps.backdropProps) }),
74
- React__default.default.createElement(reactTransitionGroup.CSSTransition, tslib.__assign({ nodeRef: nodeRef }, tslib.__assign(tslib.__assign({}, contentProps), contentTransitionProps), { appear: true, in: open }),
74
+ React__default.default.createElement(reactTransitionGroup.CSSTransition, tslib.__assign({ nodeRef: nodeRef }, contentProps, contentTransitionProps, { appear: true, in: open }),
75
75
  React__default.default.createElement("div", { ref: nodeRef, className: index_module.content }, children))));
76
76
  });
77
77
  Drawer.displayName = 'Drawer';
package/Component.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":["BaseModalContext","styles","forwardRef","__rest","useRef","useMemo","cn","__assign","React","BaseModal","CSSTransition"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":["BaseModalContext","styles","forwardRef","__rest","useRef","useMemo","cn","__assign","React","BaseModal","CSSTransition"],"mappings":"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"}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type TransitionProps } from 'react-transition-group/Transition';
3
3
  import { BaseModalContext, type BaseModalProps } from '@alfalab/core-components-base-modal/cssm';
4
4
  export declare const ANIMATION_DURATION = 600;
5
- export declare type DrawerProps = Omit<BaseModalProps, 'container'> & {
5
+ export type DrawerProps = Omit<BaseModalProps, 'container'> & {
6
6
  /**
7
7
  * Край экрана, с которого может появиться Drawer.
8
8
  * @default "right"
@@ -24,14 +24,14 @@ export declare const Drawer: React.ForwardRefExoticComponent<Omit<BaseModalProps
24
24
  * Край экрана, с которого может появиться Drawer.
25
25
  * @default "right"
26
26
  */
27
- placement?: "left" | "right" | undefined;
27
+ placement?: "left" | "right";
28
28
  /**
29
29
  * Нужно ли использовать нативный скроллбар
30
30
  * @default true
31
31
  */
32
- nativeScrollbar?: boolean | undefined;
32
+ nativeScrollbar?: boolean;
33
33
  /**
34
34
  * Пропсы для анимации контента (CSSTransition)
35
35
  */
36
- contentTransitionProps?: Partial<TransitionProps<undefined>> | undefined;
36
+ contentTransitionProps?: Partial<TransitionProps>;
37
37
  } & React.RefAttributes<HTMLDivElement>>;
package/cssm/Component.js CHANGED
@@ -72,7 +72,7 @@ var Drawer = React.forwardRef(function (_a, ref) {
72
72
  _b[styles__default.default.leftPlacement] = isLeftPlacement,
73
73
  _b[styles__default.default.customScrollbar] = !nativeScrollbar,
74
74
  _b)), transitionProps: transitionProps, backdropProps: tslib.__assign(tslib.__assign({}, backdropProps), restProps.backdropProps) }),
75
- React__default.default.createElement(reactTransitionGroup.CSSTransition, tslib.__assign({ nodeRef: nodeRef }, tslib.__assign(tslib.__assign({}, contentProps), contentTransitionProps), { appear: true, in: open }),
75
+ React__default.default.createElement(reactTransitionGroup.CSSTransition, tslib.__assign({ nodeRef: nodeRef }, contentProps, contentTransitionProps, { appear: true, in: open }),
76
76
  React__default.default.createElement("div", { ref: nodeRef, className: styles__default.default.content }, children))));
77
77
  });
78
78
  Drawer.displayName = 'Drawer';
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":["BaseModalContext","styles","forwardRef","__rest","useRef","useMemo","cn","__assign","React","BaseModal","CSSTransition"],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":["BaseModalContext","styles","forwardRef","__rest","useRef","useMemo","cn","__assign","React","BaseModal","CSSTransition"],"mappings":"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"}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type TransitionProps } from 'react-transition-group/Transition';
3
3
  import { BaseModalContext, type BaseModalProps } from '@alfalab/core-components-base-modal/esm';
4
4
  export declare const ANIMATION_DURATION = 600;
5
- export declare type DrawerProps = Omit<BaseModalProps, 'container'> & {
5
+ export type DrawerProps = Omit<BaseModalProps, 'container'> & {
6
6
  /**
7
7
  * Край экрана, с которого может появиться Drawer.
8
8
  * @default "right"
@@ -24,14 +24,14 @@ export declare const Drawer: React.ForwardRefExoticComponent<Omit<BaseModalProps
24
24
  * Край экрана, с которого может появиться Drawer.
25
25
  * @default "right"
26
26
  */
27
- placement?: "left" | "right" | undefined;
27
+ placement?: "left" | "right";
28
28
  /**
29
29
  * Нужно ли использовать нативный скроллбар
30
30
  * @default true
31
31
  */
32
- nativeScrollbar?: boolean | undefined;
32
+ nativeScrollbar?: boolean;
33
33
  /**
34
34
  * Пропсы для анимации контента (CSSTransition)
35
35
  */
36
- contentTransitionProps?: Partial<TransitionProps<undefined>> | undefined;
36
+ contentTransitionProps?: Partial<TransitionProps>;
37
37
  } & React.RefAttributes<HTMLDivElement>>;
package/esm/Component.js CHANGED
@@ -62,7 +62,7 @@ var Drawer = forwardRef(function (_a, ref) {
62
62
  _b[styles.leftPlacement] = isLeftPlacement,
63
63
  _b[styles.customScrollbar] = !nativeScrollbar,
64
64
  _b)), transitionProps: transitionProps, backdropProps: __assign(__assign({}, backdropProps), restProps.backdropProps) }),
65
- React.createElement(CSSTransition, __assign({ nodeRef: nodeRef }, __assign(__assign({}, contentProps), contentTransitionProps), { appear: true, in: open }),
65
+ React.createElement(CSSTransition, __assign({ nodeRef: nodeRef }, contentProps, contentTransitionProps, { appear: true, in: open }),
66
66
  React.createElement("div", { ref: nodeRef, className: styles.content }, children))));
67
67
  });
68
68
  Drawer.displayName = 'Drawer';
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":"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"}
package/esm/index.css CHANGED
@@ -17,7 +17,7 @@
17
17
  :root {
18
18
  --drawer-width: 500px;
19
19
  }
20
- .drawer__component_fcy44 {
20
+ .drawer__component_1eccs {
21
21
  top: var(--gap-0);
22
22
  height: 100%;
23
23
  width: var(--drawer-width);
@@ -25,119 +25,119 @@
25
25
  overflow: auto;
26
26
  will-change: transform;
27
27
  }
28
- .drawer__component_fcy44.drawer__component_fcy44 {
28
+ .drawer__component_1eccs.drawer__component_1eccs {
29
29
  position: fixed;
30
30
  }
31
- .drawer__customScrollbar_fcy44 {
31
+ .drawer__customScrollbar_1eccs {
32
32
  overflow: auto;
33
33
  cursor: auto;
34
34
  }
35
- .drawer__customScrollbar_fcy44::-webkit-scrollbar {
35
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar {
36
36
  width: 12px;
37
37
  height: 12px;
38
38
  }
39
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track {
39
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track {
40
40
  background-color: transparent;
41
41
  }
42
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track-piece {
42
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track-piece {
43
43
  background-color: transparent;
44
44
  }
45
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb {
45
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb {
46
46
  background-color: var(--color-light-neutral-translucent-500);
47
47
  border-color: transparent;
48
48
  border-style: solid;
49
49
  border-width: 4px;
50
50
  background-clip: padding-box;
51
51
  }
52
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical {
52
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical {
53
53
  border-radius: var(--border-radius-circle) / var(--border-radius-6);
54
54
  min-height: 40px;
55
55
  }
56
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical:hover {
56
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical:hover {
57
57
  border-radius: var(--border-radius-circle) / 7px;
58
58
  border-width: 4px 3px;
59
59
  }
60
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal {
60
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal {
61
61
  border-radius: var(--border-radius-6) / var(--border-radius-circle);
62
62
  min-width: 40px;
63
63
  }
64
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal:hover {
64
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal:hover {
65
65
  border-radius: 7px / var(--border-radius-circle);
66
66
  border-width: 3px 4px;
67
67
  }
68
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:active {
68
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:active {
69
69
  background-color: var(--color-light-text-secondary);
70
70
  }
71
- .drawer__customScrollbar_fcy44::-webkit-resizer {
71
+ .drawer__customScrollbar_1eccs::-webkit-resizer {
72
72
  background: url('data:image/svg+xml;utf8,<svg width="12" height="12" viewBox="0 0 12 12" fill="%2386868a" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.64645 0.646447C8.84171 0.841709 8.84171 1.15829 8.64645 1.35355L1.35355 8.64645C1.15829 8.84171 0.841709 8.84171 0.646447 8.64645C0.451184 8.45118 0.451184 8.1346 0.646447 7.93934L7.93934 0.646447C8.1346 0.451184 8.45118 0.451184 8.64645 0.646447ZM8.64645 3.64645C8.84171 3.84171 8.84171 4.15829 8.64645 4.35355L4.35355 8.64645C4.15829 8.84171 3.84171 8.84171 3.64645 8.64645C3.45118 8.45118 3.45118 8.1346 3.64645 7.93934L7.93934 3.64645C8.1346 3.45118 8.45118 3.45118 8.64645 3.64645Z" /></svg>')
73
73
  no-repeat right bottom;
74
74
  }
75
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-button,
76
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-corner {
75
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-button,
76
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-corner {
77
77
  display: none;
78
78
  }
79
- .drawer__rightPlacement_fcy44 {
79
+ .drawer__rightPlacement_1eccs {
80
80
  right: var(--gap-0);
81
81
  align-self: flex-end;
82
82
  }
83
- .drawer__leftPlacement_fcy44 {
83
+ .drawer__leftPlacement_1eccs {
84
84
  left: var(--gap-0);
85
85
  align-self: flex-start;
86
86
  }
87
- .drawer__content_fcy44 {
87
+ .drawer__content_1eccs {
88
88
  width: 100%;
89
89
  display: flex;
90
90
  flex-direction: column;
91
91
  flex: 1;
92
92
  }
93
- .drawer__enterRight_fcy44 {
93
+ .drawer__enterRight_1eccs {
94
94
  transform: translateX(100%);
95
95
  }
96
- .drawer__enterLeft_fcy44 {
96
+ .drawer__enterLeft_1eccs {
97
97
  transform: translateX(-100%);
98
98
  }
99
- .drawer__contentEnter_fcy44 {
99
+ .drawer__contentEnter_1eccs {
100
100
  opacity: 0;
101
101
  }
102
- .drawer__backdropEnter_fcy44 {
102
+ .drawer__backdropEnter_1eccs {
103
103
  background-color: var(--backdrop-hidden-background);
104
104
  }
105
- .drawer__enterActive_fcy44 {
105
+ .drawer__enterActive_1eccs {
106
106
  transition: transform 0.3s ease-in-out;
107
107
  transform: translateX(0);
108
108
  }
109
- .drawer__backdropEnterActive_fcy44,
110
- .drawer__backdropEnterDone_fcy44 {
109
+ .drawer__backdropEnterActive_1eccs,
110
+ .drawer__backdropEnterDone_1eccs {
111
111
  transition: background 0.3s ease-in-out;
112
112
  background-color: var(--backdrop-visible-background);
113
113
  }
114
- .drawer__contentEnterActive_fcy44 {
114
+ .drawer__contentEnterActive_1eccs {
115
115
  transition: opacity 0.2s ease-in-out 0.3s;
116
116
  opacity: 1;
117
117
  }
118
- .drawer__exit_fcy44 {
118
+ .drawer__exit_1eccs {
119
119
  transform: translateX(0);
120
120
  }
121
- .drawer__backdropExit_fcy44 {
121
+ .drawer__backdropExit_1eccs {
122
122
  background-color: var(--backdrop-visible-background);
123
123
  }
124
- .drawer__contentExit_fcy44 {
124
+ .drawer__contentExit_1eccs {
125
125
  opacity: 1;
126
126
  }
127
- .drawer__exitActiveRight_fcy44 {
127
+ .drawer__exitActiveRight_1eccs {
128
128
  transition: transform 0.25s ease-in-out 0.1s;
129
129
  transform: translateX(100%);
130
130
  }
131
- .drawer__exitActiveLeft_fcy44 {
131
+ .drawer__exitActiveLeft_1eccs {
132
132
  transition: transform 0.25s ease-in-out 0.1s;
133
133
  transform: translateX(-100%);
134
134
  }
135
- .drawer__backdropExitActive_fcy44,
136
- .drawer__backdropExitDone_fcy44 {
135
+ .drawer__backdropExitActive_1eccs,
136
+ .drawer__backdropExitDone_1eccs {
137
137
  transition: background 0.25s ease-in-out 0.1s;
138
138
  background-color: var(--backdrop-hidden-background);
139
139
  }
140
- .drawer__contentExitActive_fcy44 {
140
+ .drawer__contentExitActive_1eccs {
141
141
  opacity: 0;
142
142
  transition: opacity 0.12s ease-in-out;
143
143
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"component":"drawer__component_fcy44","customScrollbar":"drawer__customScrollbar_fcy44","rightPlacement":"drawer__rightPlacement_fcy44","leftPlacement":"drawer__leftPlacement_fcy44","content":"drawer__content_fcy44","enterRight":"drawer__enterRight_fcy44","enterLeft":"drawer__enterLeft_fcy44","contentEnter":"drawer__contentEnter_fcy44","backdropEnter":"drawer__backdropEnter_fcy44","enterActive":"drawer__enterActive_fcy44","backdropEnterActive":"drawer__backdropEnterActive_fcy44","backdropEnterDone":"drawer__backdropEnterDone_fcy44","contentEnterActive":"drawer__contentEnterActive_fcy44","exit":"drawer__exit_fcy44","backdropExit":"drawer__backdropExit_fcy44","contentExit":"drawer__contentExit_fcy44","exitActiveRight":"drawer__exitActiveRight_fcy44","exitActiveLeft":"drawer__exitActiveLeft_fcy44","backdropExitActive":"drawer__backdropExitActive_fcy44","backdropExitDone":"drawer__backdropExitDone_fcy44","contentExitActive":"drawer__contentExitActive_fcy44"};
3
+ var styles = {"component":"drawer__component_1eccs","customScrollbar":"drawer__customScrollbar_1eccs","rightPlacement":"drawer__rightPlacement_1eccs","leftPlacement":"drawer__leftPlacement_1eccs","content":"drawer__content_1eccs","enterRight":"drawer__enterRight_1eccs","enterLeft":"drawer__enterLeft_1eccs","contentEnter":"drawer__contentEnter_1eccs","backdropEnter":"drawer__backdropEnter_1eccs","enterActive":"drawer__enterActive_1eccs","backdropEnterActive":"drawer__backdropEnterActive_1eccs","backdropEnterDone":"drawer__backdropEnterDone_1eccs","contentEnterActive":"drawer__contentEnterActive_1eccs","exit":"drawer__exit_1eccs","backdropExit":"drawer__backdropExit_1eccs","contentExit":"drawer__contentExit_1eccs","exitActiveRight":"drawer__exitActiveRight_1eccs","exitActiveLeft":"drawer__exitActiveLeft_1eccs","backdropExitActive":"drawer__backdropExitActive_1eccs","backdropExitDone":"drawer__backdropExitDone_1eccs","contentExitActive":"drawer__contentExitActive_1eccs"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
package/index.css CHANGED
@@ -17,7 +17,7 @@
17
17
  :root {
18
18
  --drawer-width: 500px;
19
19
  }
20
- .drawer__component_fcy44 {
20
+ .drawer__component_1eccs {
21
21
  top: var(--gap-0);
22
22
  height: 100%;
23
23
  width: var(--drawer-width);
@@ -25,119 +25,119 @@
25
25
  overflow: auto;
26
26
  will-change: transform;
27
27
  }
28
- .drawer__component_fcy44.drawer__component_fcy44 {
28
+ .drawer__component_1eccs.drawer__component_1eccs {
29
29
  position: fixed;
30
30
  }
31
- .drawer__customScrollbar_fcy44 {
31
+ .drawer__customScrollbar_1eccs {
32
32
  overflow: auto;
33
33
  cursor: auto;
34
34
  }
35
- .drawer__customScrollbar_fcy44::-webkit-scrollbar {
35
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar {
36
36
  width: 12px;
37
37
  height: 12px;
38
38
  }
39
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track {
39
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track {
40
40
  background-color: transparent;
41
41
  }
42
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track-piece {
42
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track-piece {
43
43
  background-color: transparent;
44
44
  }
45
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb {
45
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb {
46
46
  background-color: var(--color-light-neutral-translucent-500);
47
47
  border-color: transparent;
48
48
  border-style: solid;
49
49
  border-width: 4px;
50
50
  background-clip: padding-box;
51
51
  }
52
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical {
52
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical {
53
53
  border-radius: var(--border-radius-circle) / var(--border-radius-6);
54
54
  min-height: 40px;
55
55
  }
56
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical:hover {
56
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical:hover {
57
57
  border-radius: var(--border-radius-circle) / 7px;
58
58
  border-width: 4px 3px;
59
59
  }
60
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal {
60
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal {
61
61
  border-radius: var(--border-radius-6) / var(--border-radius-circle);
62
62
  min-width: 40px;
63
63
  }
64
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal:hover {
64
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal:hover {
65
65
  border-radius: 7px / var(--border-radius-circle);
66
66
  border-width: 3px 4px;
67
67
  }
68
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:active {
68
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:active {
69
69
  background-color: var(--color-light-text-secondary);
70
70
  }
71
- .drawer__customScrollbar_fcy44::-webkit-resizer {
71
+ .drawer__customScrollbar_1eccs::-webkit-resizer {
72
72
  background: url('data:image/svg+xml;utf8,<svg width="12" height="12" viewBox="0 0 12 12" fill="%2386868a" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.64645 0.646447C8.84171 0.841709 8.84171 1.15829 8.64645 1.35355L1.35355 8.64645C1.15829 8.84171 0.841709 8.84171 0.646447 8.64645C0.451184 8.45118 0.451184 8.1346 0.646447 7.93934L7.93934 0.646447C8.1346 0.451184 8.45118 0.451184 8.64645 0.646447ZM8.64645 3.64645C8.84171 3.84171 8.84171 4.15829 8.64645 4.35355L4.35355 8.64645C4.15829 8.84171 3.84171 8.84171 3.64645 8.64645C3.45118 8.45118 3.45118 8.1346 3.64645 7.93934L7.93934 3.64645C8.1346 3.45118 8.45118 3.45118 8.64645 3.64645Z" /></svg>')
73
73
  no-repeat right bottom;
74
74
  }
75
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-button,
76
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-corner {
75
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-button,
76
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-corner {
77
77
  display: none;
78
78
  }
79
- .drawer__rightPlacement_fcy44 {
79
+ .drawer__rightPlacement_1eccs {
80
80
  right: var(--gap-0);
81
81
  align-self: flex-end;
82
82
  }
83
- .drawer__leftPlacement_fcy44 {
83
+ .drawer__leftPlacement_1eccs {
84
84
  left: var(--gap-0);
85
85
  align-self: flex-start;
86
86
  }
87
- .drawer__content_fcy44 {
87
+ .drawer__content_1eccs {
88
88
  width: 100%;
89
89
  display: flex;
90
90
  flex-direction: column;
91
91
  flex: 1;
92
92
  }
93
- .drawer__enterRight_fcy44 {
93
+ .drawer__enterRight_1eccs {
94
94
  transform: translateX(100%);
95
95
  }
96
- .drawer__enterLeft_fcy44 {
96
+ .drawer__enterLeft_1eccs {
97
97
  transform: translateX(-100%);
98
98
  }
99
- .drawer__contentEnter_fcy44 {
99
+ .drawer__contentEnter_1eccs {
100
100
  opacity: 0;
101
101
  }
102
- .drawer__backdropEnter_fcy44 {
102
+ .drawer__backdropEnter_1eccs {
103
103
  background-color: var(--backdrop-hidden-background);
104
104
  }
105
- .drawer__enterActive_fcy44 {
105
+ .drawer__enterActive_1eccs {
106
106
  transition: transform 0.3s ease-in-out;
107
107
  transform: translateX(0);
108
108
  }
109
- .drawer__backdropEnterActive_fcy44,
110
- .drawer__backdropEnterDone_fcy44 {
109
+ .drawer__backdropEnterActive_1eccs,
110
+ .drawer__backdropEnterDone_1eccs {
111
111
  transition: background 0.3s ease-in-out;
112
112
  background-color: var(--backdrop-visible-background);
113
113
  }
114
- .drawer__contentEnterActive_fcy44 {
114
+ .drawer__contentEnterActive_1eccs {
115
115
  transition: opacity 0.2s ease-in-out 0.3s;
116
116
  opacity: 1;
117
117
  }
118
- .drawer__exit_fcy44 {
118
+ .drawer__exit_1eccs {
119
119
  transform: translateX(0);
120
120
  }
121
- .drawer__backdropExit_fcy44 {
121
+ .drawer__backdropExit_1eccs {
122
122
  background-color: var(--backdrop-visible-background);
123
123
  }
124
- .drawer__contentExit_fcy44 {
124
+ .drawer__contentExit_1eccs {
125
125
  opacity: 1;
126
126
  }
127
- .drawer__exitActiveRight_fcy44 {
127
+ .drawer__exitActiveRight_1eccs {
128
128
  transition: transform 0.25s ease-in-out 0.1s;
129
129
  transform: translateX(100%);
130
130
  }
131
- .drawer__exitActiveLeft_fcy44 {
131
+ .drawer__exitActiveLeft_1eccs {
132
132
  transition: transform 0.25s ease-in-out 0.1s;
133
133
  transform: translateX(-100%);
134
134
  }
135
- .drawer__backdropExitActive_fcy44,
136
- .drawer__backdropExitDone_fcy44 {
135
+ .drawer__backdropExitActive_1eccs,
136
+ .drawer__backdropExitDone_1eccs {
137
137
  transition: background 0.25s ease-in-out 0.1s;
138
138
  background-color: var(--backdrop-hidden-background);
139
139
  }
140
- .drawer__contentExitActive_fcy44 {
140
+ .drawer__contentExitActive_1eccs {
141
141
  opacity: 0;
142
142
  transition: opacity 0.12s ease-in-out;
143
143
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"drawer__component_fcy44","customScrollbar":"drawer__customScrollbar_fcy44","rightPlacement":"drawer__rightPlacement_fcy44","leftPlacement":"drawer__leftPlacement_fcy44","content":"drawer__content_fcy44","enterRight":"drawer__enterRight_fcy44","enterLeft":"drawer__enterLeft_fcy44","contentEnter":"drawer__contentEnter_fcy44","backdropEnter":"drawer__backdropEnter_fcy44","enterActive":"drawer__enterActive_fcy44","backdropEnterActive":"drawer__backdropEnterActive_fcy44","backdropEnterDone":"drawer__backdropEnterDone_fcy44","contentEnterActive":"drawer__contentEnterActive_fcy44","exit":"drawer__exit_fcy44","backdropExit":"drawer__backdropExit_fcy44","contentExit":"drawer__contentExit_fcy44","exitActiveRight":"drawer__exitActiveRight_fcy44","exitActiveLeft":"drawer__exitActiveLeft_fcy44","backdropExitActive":"drawer__backdropExitActive_fcy44","backdropExitDone":"drawer__backdropExitDone_fcy44","contentExitActive":"drawer__contentExitActive_fcy44"};
5
+ var styles = {"component":"drawer__component_1eccs","customScrollbar":"drawer__customScrollbar_1eccs","rightPlacement":"drawer__rightPlacement_1eccs","leftPlacement":"drawer__leftPlacement_1eccs","content":"drawer__content_1eccs","enterRight":"drawer__enterRight_1eccs","enterLeft":"drawer__enterLeft_1eccs","contentEnter":"drawer__contentEnter_1eccs","backdropEnter":"drawer__backdropEnter_1eccs","enterActive":"drawer__enterActive_1eccs","backdropEnterActive":"drawer__backdropEnterActive_1eccs","backdropEnterDone":"drawer__backdropEnterDone_1eccs","contentEnterActive":"drawer__contentEnterActive_1eccs","exit":"drawer__exit_1eccs","backdropExit":"drawer__backdropExit_1eccs","contentExit":"drawer__contentExit_1eccs","exitActiveRight":"drawer__exitActiveRight_1eccs","exitActiveLeft":"drawer__exitActiveLeft_1eccs","backdropExitActive":"drawer__backdropExitActive_1eccs","backdropExitDone":"drawer__backdropExitDone_1eccs","contentExitActive":"drawer__contentExitActive_1eccs"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type TransitionProps } from 'react-transition-group/Transition';
3
3
  import { BaseModalContext, type BaseModalProps } from '@alfalab/core-components-base-modal/modern';
4
4
  export declare const ANIMATION_DURATION = 600;
5
- export declare type DrawerProps = Omit<BaseModalProps, 'container'> & {
5
+ export type DrawerProps = Omit<BaseModalProps, 'container'> & {
6
6
  /**
7
7
  * Край экрана, с которого может появиться Drawer.
8
8
  * @default "right"
@@ -24,14 +24,14 @@ export declare const Drawer: React.ForwardRefExoticComponent<Omit<BaseModalProps
24
24
  * Край экрана, с которого может появиться Drawer.
25
25
  * @default "right"
26
26
  */
27
- placement?: "left" | "right" | undefined;
27
+ placement?: "left" | "right";
28
28
  /**
29
29
  * Нужно ли использовать нативный скроллбар
30
30
  * @default true
31
31
  */
32
- nativeScrollbar?: boolean | undefined;
32
+ nativeScrollbar?: boolean;
33
33
  /**
34
34
  * Пропсы для анимации контента (CSSTransition)
35
35
  */
36
- contentTransitionProps?: Partial<TransitionProps<undefined>> | undefined;
36
+ contentTransitionProps?: Partial<TransitionProps>;
37
37
  } & React.RefAttributes<HTMLDivElement>>;
@@ -62,7 +62,7 @@ const Drawer = forwardRef(({ open, className, children, contentTransitionProps,
62
62
  [styles.leftPlacement]: isLeftPlacement,
63
63
  [styles.customScrollbar]: !nativeScrollbar,
64
64
  }), transitionProps: transitionProps, backdropProps: { ...backdropProps, ...restProps.backdropProps } },
65
- React.createElement(CSSTransition, { nodeRef: nodeRef, ...{ ...contentProps, ...contentTransitionProps }, appear: true, in: open },
65
+ React.createElement(CSSTransition, { nodeRef: nodeRef, ...contentProps, ...contentTransitionProps, appear: true, in: open },
66
66
  React.createElement("div", { ref: nodeRef, className: styles.content }, children))));
67
67
  });
68
68
  Drawer.displayName = 'Drawer';
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":";;;;;;AAaO,MAAM,kBAAkB,GAAG;AAqB3B,MAAM,aAAa,GAAG;AAE7B,MAAM,aAAa,GAAG;AAClB,IAAA,oBAAoB,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC,aAAa;QAC3B,MAAM,EAAE,MAAM,CAAC,aAAa;QAC5B,WAAW,EAAE,MAAM,CAAC,mBAAmB;QACvC,YAAY,EAAE,MAAM,CAAC,mBAAmB;QACxC,SAAS,EAAE,MAAM,CAAC,iBAAiB;QACnC,UAAU,EAAE,MAAM,CAAC,iBAAiB;QACpC,IAAI,EAAE,MAAM,CAAC,YAAY;QACzB,UAAU,EAAE,MAAM,CAAC,kBAAkB;QACrC,QAAQ,EAAE,MAAM,CAAC,gBAAgB;AACpC,KAAA;AACD,IAAA,OAAO,EAAE,kBAAkB;CAC9B;AAED,MAAM,YAAY,GAAG;AACjB,IAAA,UAAU,EAAE;QACR,KAAK,EAAE,MAAM,CAAC,YAAY;QAC1B,MAAM,EAAE,MAAM,CAAC,YAAY;QAC3B,WAAW,EAAE,MAAM,CAAC,kBAAkB;QACtC,YAAY,EAAE,MAAM,CAAC,kBAAkB;QACvC,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,UAAU,EAAE,MAAM,CAAC,iBAAiB;AACvC,KAAA;AACD,IAAA,OAAO,EAAE,kBAAkB;CAC9B;AAEM,MAAM,MAAM,GAAG,UAAU,CAC5B,CACI,EACI,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,sBAAsB,EACtB,eAAe,GAAG,IAAI,EACtB,SAAS,GAAG,OAAO,EACnB,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC5C,IAAA,MAAM,gBAAgB,GAAG,SAAS,KAAK,OAAO;AAC9C,IAAA,MAAM,eAAe,GAAG,SAAS,KAAK,MAAM;AAE5C,IAAA,MAAM,eAAe,GAAG,OAAO,CAAC,MAAK;QACjC,MAAM,cAAc,GAAG,EAAE,CAAC;AACtB,YAAA,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB;AACrC,YAAA,CAAC,MAAM,CAAC,SAAS,GAAG,eAAe;AACtC,SAAA,CAAC;QAEF,MAAM,aAAa,GAAG,EAAE,CAAC;AACrB,YAAA,CAAC,MAAM,CAAC,eAAe,GAAG,gBAAgB;AAC1C,YAAA,CAAC,MAAM,CAAC,cAAc,GAAG,eAAe;AAC3C,SAAA,CAAC;QAEF,OAAO;AACH,YAAA,UAAU,EAAE;AACR,gBAAA,KAAK,EAAE,cAAc;AACrB,gBAAA,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,gBAAA,UAAU,EAAE,aAAa;AAC5B,aAAA;AACD,YAAA,OAAO,EAAE,kBAAkB;YAC3B,GAAG,SAAS,CAAC,eAAe;SAC/B;KACJ,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAElE,QACI,KAAC,CAAA,aAAA,CAAA,SAAS,EACF,EAAA,GAAA,SAAS,EACb,aAAa,EAAC,SAAS,EACvB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE;AACvC,YAAA,CAAC,MAAM,CAAC,cAAc,GAAG,gBAAgB;AACzC,YAAA,CAAC,MAAM,CAAC,aAAa,GAAG,eAAe;AACvC,YAAA,CAAC,MAAM,CAAC,eAAe,GAAG,CAAC,eAAe;AAC7C,SAAA,CAAC,EACF,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE,EAAA;AAE/D,QAAA,KAAA,CAAA,aAAA,CAAC,aAAa,EACV,EAAA,OAAO,EAAE,OAAO,EACV,GAAG,YAAY,EAAE,GAAG,sBAAsB,EAChD,MAAM,EAAE,IAAI,EACZ,EAAE,EAAE,IAAI,EAAA;AAER,YAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,IACvC,QAAQ,CACP,CACM,CACR;AAEpB,CAAC;AAGL,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
package/modern/index.css CHANGED
@@ -17,7 +17,7 @@
17
17
  :root {
18
18
  --drawer-width: 500px;
19
19
  }
20
- .drawer__component_fcy44 {
20
+ .drawer__component_1eccs {
21
21
  top: var(--gap-0);
22
22
  height: 100%;
23
23
  width: var(--drawer-width);
@@ -25,119 +25,119 @@
25
25
  overflow: auto;
26
26
  will-change: transform;
27
27
  }
28
- .drawer__component_fcy44.drawer__component_fcy44 {
28
+ .drawer__component_1eccs.drawer__component_1eccs {
29
29
  position: fixed;
30
30
  }
31
- .drawer__customScrollbar_fcy44 {
31
+ .drawer__customScrollbar_1eccs {
32
32
  overflow: auto;
33
33
  cursor: auto;
34
34
  }
35
- .drawer__customScrollbar_fcy44::-webkit-scrollbar {
35
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar {
36
36
  width: 12px;
37
37
  height: 12px;
38
38
  }
39
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track {
39
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track {
40
40
  background-color: transparent;
41
41
  }
42
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-track-piece {
42
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-track-piece {
43
43
  background-color: transparent;
44
44
  }
45
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb {
45
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb {
46
46
  background-color: var(--color-light-neutral-translucent-500);
47
47
  border-color: transparent;
48
48
  border-style: solid;
49
49
  border-width: 4px;
50
50
  background-clip: padding-box;
51
51
  }
52
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical {
52
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical {
53
53
  border-radius: var(--border-radius-circle) / var(--border-radius-6);
54
54
  min-height: 40px;
55
55
  }
56
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:vertical:hover {
56
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:vertical:hover {
57
57
  border-radius: var(--border-radius-circle) / 7px;
58
58
  border-width: 4px 3px;
59
59
  }
60
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal {
60
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal {
61
61
  border-radius: var(--border-radius-6) / var(--border-radius-circle);
62
62
  min-width: 40px;
63
63
  }
64
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:horizontal:hover {
64
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:horizontal:hover {
65
65
  border-radius: 7px / var(--border-radius-circle);
66
66
  border-width: 3px 4px;
67
67
  }
68
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-thumb:active {
68
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-thumb:active {
69
69
  background-color: var(--color-light-text-secondary);
70
70
  }
71
- .drawer__customScrollbar_fcy44::-webkit-resizer {
71
+ .drawer__customScrollbar_1eccs::-webkit-resizer {
72
72
  background: url('data:image/svg+xml;utf8,<svg width="12" height="12" viewBox="0 0 12 12" fill="%2386868a" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M8.64645 0.646447C8.84171 0.841709 8.84171 1.15829 8.64645 1.35355L1.35355 8.64645C1.15829 8.84171 0.841709 8.84171 0.646447 8.64645C0.451184 8.45118 0.451184 8.1346 0.646447 7.93934L7.93934 0.646447C8.1346 0.451184 8.45118 0.451184 8.64645 0.646447ZM8.64645 3.64645C8.84171 3.84171 8.84171 4.15829 8.64645 4.35355L4.35355 8.64645C4.15829 8.84171 3.84171 8.84171 3.64645 8.64645C3.45118 8.45118 3.45118 8.1346 3.64645 7.93934L7.93934 3.64645C8.1346 3.45118 8.45118 3.45118 8.64645 3.64645Z" /></svg>')
73
73
  no-repeat right bottom;
74
74
  }
75
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-button,
76
- .drawer__customScrollbar_fcy44::-webkit-scrollbar-corner {
75
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-button,
76
+ .drawer__customScrollbar_1eccs::-webkit-scrollbar-corner {
77
77
  display: none;
78
78
  }
79
- .drawer__rightPlacement_fcy44 {
79
+ .drawer__rightPlacement_1eccs {
80
80
  right: var(--gap-0);
81
81
  align-self: flex-end;
82
82
  }
83
- .drawer__leftPlacement_fcy44 {
83
+ .drawer__leftPlacement_1eccs {
84
84
  left: var(--gap-0);
85
85
  align-self: flex-start;
86
86
  }
87
- .drawer__content_fcy44 {
87
+ .drawer__content_1eccs {
88
88
  width: 100%;
89
89
  display: flex;
90
90
  flex-direction: column;
91
91
  flex: 1;
92
92
  }
93
- .drawer__enterRight_fcy44 {
93
+ .drawer__enterRight_1eccs {
94
94
  transform: translateX(100%);
95
95
  }
96
- .drawer__enterLeft_fcy44 {
96
+ .drawer__enterLeft_1eccs {
97
97
  transform: translateX(-100%);
98
98
  }
99
- .drawer__contentEnter_fcy44 {
99
+ .drawer__contentEnter_1eccs {
100
100
  opacity: 0;
101
101
  }
102
- .drawer__backdropEnter_fcy44 {
102
+ .drawer__backdropEnter_1eccs {
103
103
  background-color: var(--backdrop-hidden-background);
104
104
  }
105
- .drawer__enterActive_fcy44 {
105
+ .drawer__enterActive_1eccs {
106
106
  transition: transform 0.3s ease-in-out;
107
107
  transform: translateX(0);
108
108
  }
109
- .drawer__backdropEnterActive_fcy44,
110
- .drawer__backdropEnterDone_fcy44 {
109
+ .drawer__backdropEnterActive_1eccs,
110
+ .drawer__backdropEnterDone_1eccs {
111
111
  transition: background 0.3s ease-in-out;
112
112
  background-color: var(--backdrop-visible-background);
113
113
  }
114
- .drawer__contentEnterActive_fcy44 {
114
+ .drawer__contentEnterActive_1eccs {
115
115
  transition: opacity 0.2s ease-in-out 0.3s;
116
116
  opacity: 1;
117
117
  }
118
- .drawer__exit_fcy44 {
118
+ .drawer__exit_1eccs {
119
119
  transform: translateX(0);
120
120
  }
121
- .drawer__backdropExit_fcy44 {
121
+ .drawer__backdropExit_1eccs {
122
122
  background-color: var(--backdrop-visible-background);
123
123
  }
124
- .drawer__contentExit_fcy44 {
124
+ .drawer__contentExit_1eccs {
125
125
  opacity: 1;
126
126
  }
127
- .drawer__exitActiveRight_fcy44 {
127
+ .drawer__exitActiveRight_1eccs {
128
128
  transition: transform 0.25s ease-in-out 0.1s;
129
129
  transform: translateX(100%);
130
130
  }
131
- .drawer__exitActiveLeft_fcy44 {
131
+ .drawer__exitActiveLeft_1eccs {
132
132
  transition: transform 0.25s ease-in-out 0.1s;
133
133
  transform: translateX(-100%);
134
134
  }
135
- .drawer__backdropExitActive_fcy44,
136
- .drawer__backdropExitDone_fcy44 {
135
+ .drawer__backdropExitActive_1eccs,
136
+ .drawer__backdropExitDone_1eccs {
137
137
  transition: background 0.25s ease-in-out 0.1s;
138
138
  background-color: var(--backdrop-hidden-background);
139
139
  }
140
- .drawer__contentExitActive_fcy44 {
140
+ .drawer__contentExitActive_1eccs {
141
141
  opacity: 0;
142
142
  transition: opacity 0.12s ease-in-out;
143
143
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"component":"drawer__component_fcy44","customScrollbar":"drawer__customScrollbar_fcy44","rightPlacement":"drawer__rightPlacement_fcy44","leftPlacement":"drawer__leftPlacement_fcy44","content":"drawer__content_fcy44","enterRight":"drawer__enterRight_fcy44","enterLeft":"drawer__enterLeft_fcy44","contentEnter":"drawer__contentEnter_fcy44","backdropEnter":"drawer__backdropEnter_fcy44","enterActive":"drawer__enterActive_fcy44","backdropEnterActive":"drawer__backdropEnterActive_fcy44","backdropEnterDone":"drawer__backdropEnterDone_fcy44","contentEnterActive":"drawer__contentEnterActive_fcy44","exit":"drawer__exit_fcy44","backdropExit":"drawer__backdropExit_fcy44","contentExit":"drawer__contentExit_fcy44","exitActiveRight":"drawer__exitActiveRight_fcy44","exitActiveLeft":"drawer__exitActiveLeft_fcy44","backdropExitActive":"drawer__backdropExitActive_fcy44","backdropExitDone":"drawer__backdropExitDone_fcy44","contentExitActive":"drawer__contentExitActive_fcy44"};
3
+ const styles = {"component":"drawer__component_1eccs","customScrollbar":"drawer__customScrollbar_1eccs","rightPlacement":"drawer__rightPlacement_1eccs","leftPlacement":"drawer__leftPlacement_1eccs","content":"drawer__content_1eccs","enterRight":"drawer__enterRight_1eccs","enterLeft":"drawer__enterLeft_1eccs","contentEnter":"drawer__contentEnter_1eccs","backdropEnter":"drawer__backdropEnter_1eccs","enterActive":"drawer__enterActive_1eccs","backdropEnterActive":"drawer__backdropEnterActive_1eccs","backdropEnterDone":"drawer__backdropEnterDone_1eccs","contentEnterActive":"drawer__contentEnterActive_1eccs","exit":"drawer__exit_1eccs","backdropExit":"drawer__backdropExit_1eccs","contentExit":"drawer__contentExit_1eccs","exitActiveRight":"drawer__exitActiveRight_1eccs","exitActiveLeft":"drawer__exitActiveLeft_1eccs","backdropExitActive":"drawer__backdropExitActive_1eccs","backdropExitDone":"drawer__backdropExitDone_1eccs","contentExitActive":"drawer__contentExitActive_1eccs"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../backdrop/src/vars.css';\n\n:root {\n --drawer-width: 500px;\n}\n\n.component {\n top: var(--gap-0);\n height: 100%;\n width: var(--drawer-width);\n flex: 1;\n overflow: auto;\n will-change: transform;\n}\n\n.component.component {\n position: fixed;\n}\n\n.customScrollbar {\n @mixin custom-scrollbar;\n}\n\n.rightPlacement {\n right: var(--gap-0);\n align-self: flex-end;\n}\n\n.leftPlacement {\n left: var(--gap-0);\n align-self: flex-start;\n}\n\n.content {\n width: 100%;\n display: flex;\n flex-direction: column;\n flex: 1;\n}\n\n/* enter */\n\n.enterRight {\n transform: translateX(100%);\n}\n\n.enterLeft {\n transform: translateX(-100%);\n}\n\n.contentEnter {\n opacity: 0;\n}\n\n.backdropEnter {\n background-color: var(--backdrop-hidden-background);\n}\n\n.enterActive {\n transition: transform 0.3s ease-in-out;\n transform: translateX(0);\n}\n\n.backdropEnterActive,\n.backdropEnterDone {\n transition: background 0.3s ease-in-out;\n background-color: var(--backdrop-visible-background);\n}\n\n.contentEnterActive {\n transition: opacity 0.2s ease-in-out 0.3s;\n opacity: 1;\n}\n\n/* exit */\n\n.exit {\n transform: translateX(0);\n}\n\n.backdropExit {\n background-color: var(--backdrop-visible-background);\n}\n\n.contentExit {\n opacity: 1;\n}\n\n.exitActiveRight {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(100%);\n}\n\n.exitActiveLeft {\n transition: transform 0.25s ease-in-out 0.1s;\n transform: translateX(-100%);\n}\n\n.backdropExitActive,\n.backdropExitDone {\n transition: background 0.25s ease-in-out 0.1s;\n background-color: var(--backdrop-hidden-background);\n}\n\n.contentExitActive {\n opacity: 0;\n transition: opacity 0.12s ease-in-out;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,eAAe,CAAC,6BAA6B,CAAC,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,0BAA0B,CAAC,WAAW,CAAC,yBAAyB,CAAC,cAAc,CAAC,4BAA4B,CAAC,eAAe,CAAC,6BAA6B,CAAC,aAAa,CAAC,2BAA2B,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,MAAM,CAAC,oBAAoB,CAAC,cAAc,CAAC,4BAA4B,CAAC,aAAa,CAAC,2BAA2B,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,oBAAoB,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,iCAAiC,CAAC;;;;"}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { type TransitionProps } from 'react-transition-group/Transition';
3
3
  import { BaseModalContext, type BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
4
4
  export declare const ANIMATION_DURATION = 600;
5
- export declare type DrawerProps = Omit<BaseModalProps, 'container'> & {
5
+ export type DrawerProps = Omit<BaseModalProps, 'container'> & {
6
6
  /**
7
7
  * Край экрана, с которого может появиться Drawer.
8
8
  * @default "right"
@@ -24,14 +24,14 @@ export declare const Drawer: React.ForwardRefExoticComponent<Omit<BaseModalProps
24
24
  * Край экрана, с которого может появиться Drawer.
25
25
  * @default "right"
26
26
  */
27
- placement?: "left" | "right" | undefined;
27
+ placement?: "left" | "right";
28
28
  /**
29
29
  * Нужно ли использовать нативный скроллбар
30
30
  * @default true
31
31
  */
32
- nativeScrollbar?: boolean | undefined;
32
+ nativeScrollbar?: boolean;
33
33
  /**
34
34
  * Пропсы для анимации контента (CSSTransition)
35
35
  */
36
- contentTransitionProps?: Partial<TransitionProps<undefined>> | undefined;
36
+ contentTransitionProps?: Partial<TransitionProps>;
37
37
  } & React.RefAttributes<HTMLDivElement>>;
@@ -62,7 +62,7 @@ const Drawer = forwardRef(({ open, className, children, contentTransitionProps,
62
62
  [styles.leftPlacement]: isLeftPlacement,
63
63
  [styles.customScrollbar]: !nativeScrollbar,
64
64
  }), transitionProps: transitionProps, backdropProps: { ...backdropProps, ...restProps.backdropProps } },
65
- React.createElement(CSSTransition, { nodeRef: nodeRef, ...{ ...contentProps, ...contentTransitionProps }, appear: true, in: open },
65
+ React.createElement(CSSTransition, { nodeRef: nodeRef, ...contentProps, ...contentTransitionProps, appear: true, in: open },
66
66
  React.createElement("div", { ref: nodeRef, className: styles.content }, children))));
67
67
  });
68
68
  Drawer.displayName = 'Drawer';
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, useMemo, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport { type TransitionProps } from 'react-transition-group/Transition';\nimport cn from 'classnames';\n\nimport {\n BaseModal,\n BaseModalContext,\n type BaseModalProps,\n} from '@alfalab/core-components-base-modal';\n\nimport styles from './index.module.css';\n\nexport const ANIMATION_DURATION = 600;\n\nexport type DrawerProps = Omit<BaseModalProps, 'container'> & {\n /**\n * Край экрана, с которого может появиться Drawer.\n * @default \"right\"\n */\n placement?: 'left' | 'right';\n\n /**\n * Нужно ли использовать нативный скроллбар\n * @default true\n */\n nativeScrollbar?: boolean;\n\n /**\n * Пропсы для анимации контента (CSSTransition)\n */\n contentTransitionProps?: Partial<TransitionProps>;\n};\n\nexport const DrawerContext = BaseModalContext;\n\nconst backdropProps = {\n transitionClassNames: {\n enter: styles.backdropEnter,\n appear: styles.backdropEnter,\n enterActive: styles.backdropEnterActive,\n appearActive: styles.backdropEnterActive,\n enterDone: styles.backdropEnterDone,\n appearDone: styles.backdropEnterDone,\n exit: styles.backdropExit,\n exitActive: styles.backdropExitActive,\n exitDone: styles.backdropExitDone,\n },\n timeout: ANIMATION_DURATION,\n};\n\nconst contentProps = {\n classNames: {\n enter: styles.contentEnter,\n appear: styles.contentEnter,\n enterActive: styles.contentEnterActive,\n appearActive: styles.contentEnterActive,\n exit: styles.contentExit,\n exitActive: styles.contentExitActive,\n },\n timeout: ANIMATION_DURATION,\n};\n\nexport const Drawer = forwardRef<HTMLDivElement, DrawerProps>(\n (\n {\n open,\n className,\n children,\n contentTransitionProps,\n nativeScrollbar = true,\n placement = 'right',\n ...restProps\n },\n ref,\n ) => {\n const nodeRef = useRef<HTMLDivElement>(null);\n const isRightPlacement = placement === 'right';\n const isLeftPlacement = placement === 'left';\n\n const transitionProps = useMemo(() => {\n const enterClassName = cn({\n [styles.enterRight]: isRightPlacement,\n [styles.enterLeft]: isLeftPlacement,\n });\n\n const exitClassName = cn({\n [styles.exitActiveRight]: isRightPlacement,\n [styles.exitActiveLeft]: isLeftPlacement,\n });\n\n return {\n classNames: {\n enter: enterClassName,\n appear: enterClassName,\n enterActive: styles.enterActive,\n appearActive: styles.enterActive,\n exit: styles.exit,\n exitActive: exitClassName,\n },\n timeout: ANIMATION_DURATION,\n ...restProps.transitionProps,\n };\n }, [restProps.transitionProps, isLeftPlacement, isRightPlacement]);\n\n return (\n <BaseModal\n {...restProps}\n scrollHandler='content'\n ref={ref}\n open={open}\n className={cn(styles.component, className, {\n [styles.rightPlacement]: isRightPlacement,\n [styles.leftPlacement]: isLeftPlacement,\n [styles.customScrollbar]: !nativeScrollbar,\n })}\n transitionProps={transitionProps}\n backdropProps={{ ...backdropProps, ...restProps.backdropProps }}\n >\n <CSSTransition\n nodeRef={nodeRef}\n {...{ ...contentProps, ...contentTransitionProps }}\n appear={true}\n in={open}\n >\n <div ref={nodeRef} className={styles.content}>\n {children}\n </div>\n </CSSTransition>\n </BaseModal>\n );\n },\n);\n\nDrawer.displayName = 'Drawer';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-drawer",
3
- "version": "7.0.3",
3
+ "version": "7.0.4",
4
4
  "description": "Drawer component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,13 +10,13 @@
10
10
  "main": "index.js",
11
11
  "module": "./esm/index.js",
12
12
  "dependencies": {
13
- "@alfalab/core-components-base-modal": "^7.1.1",
13
+ "@alfalab/core-components-base-modal": "^7.1.2",
14
14
  "classnames": "^2.5.1",
15
15
  "react-transition-group": "^4.4.5",
16
16
  "tslib": "^2.4.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@alfalab/core-components-button": "^13.0.2"
19
+ "@alfalab/core-components-button": "^13.1.1"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "react": "^16.9.0 || ^17.0.1 || ^18.0.0 || ^19.0.0",
@@ -26,6 +26,6 @@
26
26
  "access": "public",
27
27
  "directory": "dist"
28
28
  },
29
- "themesVersion": "15.0.1",
30
- "varsVersion": "11.0.1"
29
+ "themesVersion": "15.0.2",
30
+ "varsVersion": "11.0.2"
31
31
  }
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/no-typography-index.css';
1
+ @import '@alfalab/core-components-vars/src/index.css';
2
2
  @import '../../backdrop/src/vars.css';
3
3
 
4
4
  :root {