@cloud-ru/ds-drawer 1.0.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 (140) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/README.md +480 -0
  4. package/dist/cjs/components/Drawer/Drawer.d.ts +6 -0
  5. package/dist/cjs/components/Drawer/Drawer.js +15 -0
  6. package/dist/cjs/components/Drawer/constants.d.ts +1 -0
  7. package/dist/cjs/components/Drawer/constants.js +4 -0
  8. package/dist/cjs/components/Drawer/index.d.ts +2 -0
  9. package/dist/cjs/components/Drawer/index.js +18 -0
  10. package/dist/cjs/components/Drawer/styles.module.css +19 -0
  11. package/dist/cjs/components/Drawer/types.d.ts +35 -0
  12. package/dist/cjs/components/Drawer/types.js +2 -0
  13. package/dist/cjs/components/DrawerCustom/DrawerCustom.d.ts +15 -0
  14. package/dist/cjs/components/DrawerCustom/DrawerCustom.js +76 -0
  15. package/dist/cjs/components/DrawerCustom/constants.d.ts +4 -0
  16. package/dist/cjs/components/DrawerCustom/constants.js +17 -0
  17. package/dist/cjs/components/DrawerCustom/hooks/index.d.ts +1 -0
  18. package/dist/cjs/components/DrawerCustom/hooks/index.js +17 -0
  19. package/dist/cjs/components/DrawerCustom/hooks/useDrawerFocusTrap.d.ts +9 -0
  20. package/dist/cjs/components/DrawerCustom/hooks/useDrawerFocusTrap.js +83 -0
  21. package/dist/cjs/components/DrawerCustom/hooks/useDrawerResize.d.ts +15 -0
  22. package/dist/cjs/components/DrawerCustom/hooks/useDrawerResize.js +50 -0
  23. package/dist/cjs/components/DrawerCustom/index.d.ts +2 -0
  24. package/dist/cjs/components/DrawerCustom/index.js +17 -0
  25. package/dist/cjs/components/DrawerCustom/motion.css +93 -0
  26. package/dist/cjs/components/DrawerCustom/styles.module.css +491 -0
  27. package/dist/cjs/components/DrawerCustom/types.d.ts +71 -0
  28. package/dist/cjs/components/DrawerCustom/types.js +2 -0
  29. package/dist/cjs/components/index.d.ts +2 -0
  30. package/dist/cjs/components/index.js +18 -0
  31. package/dist/cjs/constants.d.ts +28 -0
  32. package/dist/cjs/constants.js +31 -0
  33. package/dist/cjs/helperComponents/DesktopDrawer/DesktopDrawer.d.ts +3 -0
  34. package/dist/cjs/helperComponents/DesktopDrawer/DesktopDrawer.js +32 -0
  35. package/dist/cjs/helperComponents/DesktopDrawer/index.d.ts +1 -0
  36. package/dist/cjs/helperComponents/DesktopDrawer/index.js +17 -0
  37. package/dist/cjs/helperComponents/DialogSlots.d.ts +8 -0
  38. package/dist/cjs/helperComponents/DialogSlots.js +12 -0
  39. package/dist/cjs/helperComponents/DrawerBody/DrawerBody.d.ts +4 -0
  40. package/dist/cjs/helperComponents/DrawerBody/DrawerBody.js +17 -0
  41. package/dist/cjs/helperComponents/DrawerBody/index.d.ts +1 -0
  42. package/dist/cjs/helperComponents/DrawerBody/index.js +17 -0
  43. package/dist/cjs/helperComponents/DrawerBody/styles.module.css +30 -0
  44. package/dist/cjs/helperComponents/MobileDrawer/MobileDrawer.d.ts +7 -0
  45. package/dist/cjs/helperComponents/MobileDrawer/MobileDrawer.js +26 -0
  46. package/dist/cjs/helperComponents/MobileDrawer/index.d.ts +1 -0
  47. package/dist/cjs/helperComponents/MobileDrawer/index.js +17 -0
  48. package/dist/cjs/helperComponents/index.d.ts +8 -0
  49. package/dist/cjs/helperComponents/index.js +30 -0
  50. package/dist/cjs/index.d.ts +5 -0
  51. package/dist/cjs/index.js +23 -0
  52. package/dist/cjs/package.json +3 -0
  53. package/dist/cjs/style.css +633 -0
  54. package/dist/cjs/types.d.ts +4 -0
  55. package/dist/cjs/types.js +2 -0
  56. package/dist/cjs/utils/interopDefault.d.ts +7 -0
  57. package/dist/cjs/utils/interopDefault.js +10 -0
  58. package/dist/esm/components/Drawer/Drawer.d.ts +6 -0
  59. package/dist/esm/components/Drawer/Drawer.js +12 -0
  60. package/dist/esm/components/Drawer/constants.d.ts +1 -0
  61. package/dist/esm/components/Drawer/constants.js +1 -0
  62. package/dist/esm/components/Drawer/index.d.ts +2 -0
  63. package/dist/esm/components/Drawer/index.js +2 -0
  64. package/dist/esm/components/Drawer/styles.module.css +19 -0
  65. package/dist/esm/components/Drawer/types.d.ts +35 -0
  66. package/dist/esm/components/Drawer/types.js +1 -0
  67. package/dist/esm/components/DrawerCustom/DrawerCustom.d.ts +15 -0
  68. package/dist/esm/components/DrawerCustom/DrawerCustom.js +70 -0
  69. package/dist/esm/components/DrawerCustom/constants.d.ts +4 -0
  70. package/dist/esm/components/DrawerCustom/constants.js +13 -0
  71. package/dist/esm/components/DrawerCustom/hooks/index.d.ts +1 -0
  72. package/dist/esm/components/DrawerCustom/hooks/index.js +1 -0
  73. package/dist/esm/components/DrawerCustom/hooks/useDrawerFocusTrap.d.ts +9 -0
  74. package/dist/esm/components/DrawerCustom/hooks/useDrawerFocusTrap.js +80 -0
  75. package/dist/esm/components/DrawerCustom/hooks/useDrawerResize.d.ts +15 -0
  76. package/dist/esm/components/DrawerCustom/hooks/useDrawerResize.js +47 -0
  77. package/dist/esm/components/DrawerCustom/index.d.ts +2 -0
  78. package/dist/esm/components/DrawerCustom/index.js +1 -0
  79. package/dist/esm/components/DrawerCustom/motion.css +93 -0
  80. package/dist/esm/components/DrawerCustom/styles.module.css +491 -0
  81. package/dist/esm/components/DrawerCustom/types.d.ts +71 -0
  82. package/dist/esm/components/DrawerCustom/types.js +1 -0
  83. package/dist/esm/components/index.d.ts +2 -0
  84. package/dist/esm/components/index.js +2 -0
  85. package/dist/esm/constants.d.ts +28 -0
  86. package/dist/esm/constants.js +28 -0
  87. package/dist/esm/helperComponents/DesktopDrawer/DesktopDrawer.d.ts +3 -0
  88. package/dist/esm/helperComponents/DesktopDrawer/DesktopDrawer.js +26 -0
  89. package/dist/esm/helperComponents/DesktopDrawer/index.d.ts +1 -0
  90. package/dist/esm/helperComponents/DesktopDrawer/index.js +1 -0
  91. package/dist/esm/helperComponents/DialogSlots.d.ts +8 -0
  92. package/dist/esm/helperComponents/DialogSlots.js +8 -0
  93. package/dist/esm/helperComponents/DrawerBody/DrawerBody.d.ts +4 -0
  94. package/dist/esm/helperComponents/DrawerBody/DrawerBody.js +11 -0
  95. package/dist/esm/helperComponents/DrawerBody/index.d.ts +1 -0
  96. package/dist/esm/helperComponents/DrawerBody/index.js +1 -0
  97. package/dist/esm/helperComponents/DrawerBody/styles.module.css +30 -0
  98. package/dist/esm/helperComponents/MobileDrawer/MobileDrawer.d.ts +7 -0
  99. package/dist/esm/helperComponents/MobileDrawer/MobileDrawer.js +23 -0
  100. package/dist/esm/helperComponents/MobileDrawer/index.d.ts +1 -0
  101. package/dist/esm/helperComponents/MobileDrawer/index.js +1 -0
  102. package/dist/esm/helperComponents/index.d.ts +8 -0
  103. package/dist/esm/helperComponents/index.js +8 -0
  104. package/dist/esm/index.d.ts +5 -0
  105. package/dist/esm/index.js +5 -0
  106. package/dist/esm/style.css +633 -0
  107. package/dist/esm/types.d.ts +4 -0
  108. package/dist/esm/types.js +1 -0
  109. package/dist/esm/utils/interopDefault.d.ts +7 -0
  110. package/dist/esm/utils/interopDefault.js +7 -0
  111. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  112. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  113. package/package.json +51 -0
  114. package/src/components/Drawer/Drawer.tsx +15 -0
  115. package/src/components/Drawer/constants.ts +1 -0
  116. package/src/components/Drawer/index.ts +2 -0
  117. package/src/components/Drawer/styles.module.scss +26 -0
  118. package/src/components/Drawer/types.ts +42 -0
  119. package/src/components/DrawerCustom/DrawerCustom.tsx +197 -0
  120. package/src/components/DrawerCustom/constants.ts +17 -0
  121. package/src/components/DrawerCustom/hooks/index.ts +1 -0
  122. package/src/components/DrawerCustom/hooks/useDrawerFocusTrap.ts +97 -0
  123. package/src/components/DrawerCustom/hooks/useDrawerResize.tsx +78 -0
  124. package/src/components/DrawerCustom/index.ts +2 -0
  125. package/src/components/DrawerCustom/styles.module.scss +330 -0
  126. package/src/components/DrawerCustom/types.ts +77 -0
  127. package/src/components/index.ts +2 -0
  128. package/src/constants.ts +31 -0
  129. package/src/helperComponents/DesktopDrawer/DesktopDrawer.tsx +85 -0
  130. package/src/helperComponents/DesktopDrawer/index.ts +1 -0
  131. package/src/helperComponents/DialogSlots.tsx +25 -0
  132. package/src/helperComponents/DrawerBody/DrawerBody.tsx +25 -0
  133. package/src/helperComponents/DrawerBody/index.ts +1 -0
  134. package/src/helperComponents/DrawerBody/styles.module.scss +32 -0
  135. package/src/helperComponents/MobileDrawer/MobileDrawer.tsx +75 -0
  136. package/src/helperComponents/MobileDrawer/index.ts +1 -0
  137. package/src/helperComponents/index.ts +11 -0
  138. package/src/index.ts +6 -0
  139. package/src/types.ts +6 -0
  140. package/src/utils/interopDefault.ts +7 -0
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { FooterActions } from '@cloud-ru/ds-bottom-sheet';
3
+ import cn from 'classnames';
4
+ import { NESTED_DRAWER_PUSH_DISTANCE } from '../../components/Drawer/constants.js';
5
+ import styles from '../../components/Drawer/styles.module.css';
6
+ import { DrawerCustom } from '../../components/DrawerCustom/index.js';
7
+ import { TEST_IDS } from '../../constants.js';
8
+ /** Desktop-поверхность Drawer'а: панель (`DrawerCustom`) с пресетной разметкой. Internal. */
9
+ export function DesktopDrawer({ content, media, title, slotAfterTitle, subtitle, onBackButtonClick, approveButton, cancelButton, additionalButton, footerActionsOrientation, footer, nestedDrawer, className, ...rest }) {
10
+ const showHeader = Boolean(title || subtitle || slotAfterTitle);
11
+ // Футер: произвольный `footer` (приоритет) либо сборка из слотов через общий `FooterActions`.
12
+ const footerContent = footer ??
13
+ (approveButton || cancelButton || additionalButton ? (_jsx(FooterActions, { surface: 'window', size: 'l', approveButton: approveButton, cancelButton: cancelButton, additionalButton: additionalButton, footerActionsOrientation: footerActionsOrientation, testIds: {
14
+ approve: TEST_IDS.footerApprove,
15
+ cancel: TEST_IDS.footerCancel,
16
+ additional: TEST_IDS.footerAdditional,
17
+ } })) : null);
18
+ return (_jsxs(DrawerCustom, { ...rest, resizable: undefined, className: cn(styles.drawer, className), push: Boolean(nestedDrawer) && { distance: NESTED_DRAWER_PUSH_DISTANCE }, children: [media, _jsx("div", { className: styles.safeAreaTop }), showHeader && (_jsx(DrawerCustom.Header, { title: title, slotAfterTitle: slotAfterTitle, subtitle: subtitle, onBackButtonClick: onBackButtonClick,
19
+ // Сохраняем публичный контракт test-id'ов drawer'а поверх общего `PopupHeader`.
20
+ // slotAfterTitle НЕ переопределяем: id тултипа ставит сам потребитель на своём span.
21
+ testIds: {
22
+ header: TEST_IDS.header,
23
+ title: TEST_IDS.title,
24
+ subtitle: TEST_IDS.subtitle,
25
+ } })), _jsx(DrawerCustom.Body, { "data-test-id": TEST_IDS.body, content: content }), _jsx("div", { className: styles.safeAreaBottom }), footerContent != null && (_jsx(DrawerCustom.Footer, { "data-test-id": TEST_IDS.footer, children: footerContent })), nestedDrawer] }));
26
+ }
@@ -0,0 +1 @@
1
+ export * from './DesktopDrawer.js';
@@ -0,0 +1 @@
1
+ export * from './DesktopDrawer.js';
@@ -0,0 +1,8 @@
1
+ import { SheetFooter, SheetFooterProps, SheetHeader, SheetHeaderProps } from '@cloud-ru/ds-bottom-sheet';
2
+ import { DrawerBodyProps } from './DrawerBody/index.js';
3
+ export type DialogHeaderProps = SheetHeaderProps;
4
+ export type DialogBodyProps = DrawerBodyProps;
5
+ export type DialogFooterProps = SheetFooterProps;
6
+ export declare const DialogHeader: typeof SheetHeader;
7
+ export declare const DialogFooter: typeof SheetFooter;
8
+ export declare function DialogBody(props: DialogBodyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { OVERLAY_SURFACE, SheetBody, SheetFooter, SheetHeader, useOverlaySurface, } from '@cloud-ru/ds-bottom-sheet';
3
+ import { DrawerBody } from './DrawerBody/index.js';
4
+ export const DialogHeader = SheetHeader;
5
+ export const DialogFooter = SheetFooter;
6
+ export function DialogBody(props) {
7
+ return useOverlaySurface() === OVERLAY_SURFACE.Sheet ? _jsx(SheetBody, { ...props }) : _jsx(DrawerBody, { ...props });
8
+ }
@@ -0,0 +1,4 @@
1
+ import { SheetBodyProps } from '@cloud-ru/ds-bottom-sheet';
2
+ export type DrawerBodyProps = SheetBodyProps;
3
+ /** Body дровера (desktop): `Scroll`; высота-по-контенту — из overlay-контекста. */
4
+ export declare function DrawerBody({ content, children, bodyPadding, className, ...rest }: DrawerBodyProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useOverlayBodyHeightAuto } from '@cloud-ru/ds-bottom-sheet';
3
+ import { Scroll } from '@cloud-ru/ds-scroll';
4
+ import { extractSupportProps } from '@cloud-ru/ds-utils';
5
+ import cn from 'classnames';
6
+ import styles from './styles.module.css';
7
+ /** Body дровера (desktop): `Scroll`; высота-по-контенту — из overlay-контекста. */
8
+ export function DrawerBody({ content, children, bodyPadding = true, className, ...rest }) {
9
+ const heightAutoVertical = useOverlayBodyHeightAuto();
10
+ return (_jsx(Scroll, { size: 'm', barHideStrategy: 'never', className: cn(styles.body, heightAutoVertical && styles.bodyHeightAuto, className), "data-no-padding": bodyPadding === false || undefined, ...extractSupportProps(rest), children: children ?? content }));
11
+ }
@@ -0,0 +1 @@
1
+ export * from './DrawerBody.js';
@@ -0,0 +1 @@
1
+ export * from './DrawerBody.js';
@@ -0,0 +1,30 @@
1
+ @charset "UTF-8";
2
+ .body{
3
+ padding-left:var(--sn-drawer-anatomy-container-bodyWrapper-paddingHorizontal, var(--sn-density-spacing-interval-l, var(--sn-primitive-dimension-24, 24px)));
4
+ padding-right:var(--sn-drawer-anatomy-container-bodyWrapper-paddingHorizontal, var(--sn-density-spacing-interval-l, var(--sn-primitive-dimension-24, 24px)));
5
+ padding-bottom:var(--sn-drawer-anatomy-container-bodyWrapper-paddingBottom, var(--sn-density-spacing-interval-m, var(--sn-primitive-dimension-16, 16px)));
6
+ display:flex;
7
+ flex:1 0 0;
8
+ flex-direction:column;
9
+ align-items:flex-start;
10
+ align-self:stretch;
11
+ box-sizing:border-box;
12
+ color:var(--sn-theme-color-available-version-textMain, var(--sn-brand-color-text-version-main, #41424e));
13
+ font-family:var(--sn-regular-body-m-fontFamily, var(--sn-brand-font-fontFamily-regular-body, var(--sn-primitive-fontFamily-brandA-sans, SB Sans Interface)));
14
+ font-weight:var(--sn-regular-body-m-fontWeight, var(--sn-theme-typography-fontWeight-regular-body-m, var(--sn-brand-font-fontWeight-light-regular-body-m, var(--sn-primitive-font-fontWeightValue-400, 400))));
15
+ line-height:var(--sn-regular-body-m-lineHeight, var(--sn-density-typography-roleBody-lineHeightM, var(--sn-primitive-font-lineHeight-by16, 24px)));
16
+ font-size:var(--sn-regular-body-m-fontSize, var(--sn-density-typography-roleBody-fontSizeM, var(--sn-primitive-font-fontSize-16, 16px)));
17
+ letter-spacing:var(--sn-regular-body-m-letterSpacing, var(--sn-primitive-font-letterSpacing-m, 0.1px));
18
+ paragraph-spacing:var(--sn-regular-body-m-paragraphSpacing, var(--sn-primitive-font-paragraphSpacing-byFontSize14, 7px));
19
+ }
20
+
21
+ .body[data-no-padding]{
22
+ padding-right:0;
23
+ padding-left:0;
24
+ }
25
+ .bodyHeightAuto{
26
+ flex:0 1 auto;
27
+ height:auto !important;
28
+ min-height:0;
29
+ max-height:100%;
30
+ }
@@ -0,0 +1,7 @@
1
+ import { DrawerProps } from '../../components/Drawer/types.js';
2
+ /**
3
+ * Mobile-поверхность Drawer'а: контент в `BottomSheet`, слоты маппятся на API sheet'а
4
+ * (`subtitle` 1:1, `showBlackout→showBackdrop`, остальное 1:1). Internal. Desktop-only пропы
5
+ * уходят в `...rest`.
6
+ */
7
+ export declare function MobileDrawer({ content, media, title, slotAfterTitle, subtitle, onBackButtonClick, approveButton, cancelButton, additionalButton, footerActionsOrientation, footer, className, rootClassName, open, onClose, showBlackout, container, closeOnPopstate, swipeEnabled, snapPoints, snapIndex, onSnapIndexChange, safeArea, ...rest }: DrawerProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { BottomSheet } from '@cloud-ru/ds-bottom-sheet';
3
+ import { extractSupportProps } from '@cloud-ru/ds-utils';
4
+ import { TEST_IDS } from '../../constants.js';
5
+ /**
6
+ * Mobile-поверхность Drawer'а: контент в `BottomSheet`, слоты маппятся на API sheet'а
7
+ * (`subtitle` 1:1, `showBlackout→showBackdrop`, остальное 1:1). Internal. Desktop-only пропы
8
+ * уходят в `...rest`.
9
+ */
10
+ export function MobileDrawer({ content, media, title, slotAfterTitle, subtitle, onBackButtonClick, approveButton, cancelButton, additionalButton, footerActionsOrientation, footer, className, rootClassName, open, onClose, showBlackout, container, closeOnPopstate, swipeEnabled, snapPoints, snapIndex, onSnapIndexChange, safeArea, ...rest }) {
11
+ // Футер собирает сам `BottomSheet`.
12
+ return (_jsx(BottomSheet
13
+ // Дефолт `withDividers` сменился на `true` — здесь вид сохраняем прежним.
14
+ , {
15
+ // Дефолт `withDividers` сменился на `true` — здесь вид сохраняем прежним.
16
+ withDividers: false, open: open, onClose: onClose, showBackdrop: showBlackout, title: title, subtitle: subtitle, slotAfterTitle: slotAfterTitle, onBackButtonClick: onBackButtonClick, media: media, content: content, approveButton: approveButton, cancelButton: cancelButton, additionalButton: additionalButton, footerActionsOrientation: footerActionsOrientation, footer: footer,
17
+ // Те же id футера, что у desktop-поверхности — стабильный селектор при свапе surface.
18
+ footerTestIds: {
19
+ approve: TEST_IDS.footerApprove,
20
+ cancel: TEST_IDS.footerCancel,
21
+ additional: TEST_IDS.footerAdditional,
22
+ }, className: className, rootClassName: rootClassName, container: container, closeOnPopstate: closeOnPopstate, swipeEnabled: swipeEnabled, snapPoints: snapPoints, snapIndex: snapIndex, onSnapIndexChange: onSnapIndexChange, safeArea: safeArea, ...extractSupportProps(rest) }));
23
+ }
@@ -0,0 +1 @@
1
+ export * from './MobileDrawer.js';
@@ -0,0 +1 @@
1
+ export * from './MobileDrawer.js';
@@ -0,0 +1,8 @@
1
+ export { PopupCloseButton as ButtonClose } from '@cloud-ru/ds-popup-private';
2
+ export type { PopupCloseButtonProps as ButtonCloseProps } from '@cloud-ru/ds-popup-private';
3
+ export * from './DesktopDrawer/index.js';
4
+ export * from './MobileDrawer/index.js';
5
+ export { DialogBody, DialogFooter, DialogHeader } from './DialogSlots.js';
6
+ export type { DialogBodyProps, DialogFooterProps, DialogHeaderProps } from './DialogSlots.js';
7
+ export { DrawerBody } from './DrawerBody/index.js';
8
+ export type { DrawerBodyProps } from './DrawerBody/index.js';
@@ -0,0 +1,8 @@
1
+ // Единая кнопка закрытия overlay'я вынесена в `@cloud-ru/ds-popup-private`; имена `ButtonClose`/`ButtonCloseProps` сохранены как фасад.
2
+ export { PopupCloseButton as ButtonClose } from '@cloud-ru/ds-popup-private';
3
+ // Surface-поверхности адаптивного Drawer'а: sheet-рендер на mobile (через `@cloud-ru/ds-bottom-sheet`), drawer-рендер в desktop-frame.
4
+ export * from './DesktopDrawer/index.js';
5
+ export * from './MobileDrawer/index.js';
6
+ // Surface-aware слоты дровера: sheet-рендер на mobile (через `@cloud-ru/ds-bottom-sheet`), drawer-рендер в desktop-frame.
7
+ export { DialogBody, DialogFooter, DialogHeader } from './DialogSlots.js';
8
+ export { DrawerBody } from './DrawerBody/index.js';
@@ -0,0 +1,5 @@
1
+ export { FOOTER_ACTIONS_ORIENTATION } from '@cloud-ru/ds-bottom-sheet';
2
+ export type { BottomSheetActionButton, FooterActionsOrientation } from '@cloud-ru/ds-bottom-sheet';
3
+ export * from './components/index.js';
4
+ export * from './constants.js';
5
+ export * from './types.js';
@@ -0,0 +1,5 @@
1
+ // Футер-слоты типизированных кнопок общие с `@cloud-ru/ds-bottom-sheet` (adaptive мапит desktop↔mobile 1:1).
2
+ export { FOOTER_ACTIONS_ORIENTATION } from '@cloud-ru/ds-bottom-sheet';
3
+ export * from './components/index.js';
4
+ export * from './constants.js';
5
+ export * from './types.js';