@alfalab/core-components-modal 6.0.11 → 6.1.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 (204) hide show
  1. package/Component.d.ts +12 -0
  2. package/Component.desktop.d.ts +5 -44
  3. package/Component.desktop.js +14 -43
  4. package/Component.js +65 -0
  5. package/Component.mobile.d.ts +5 -18
  6. package/Component.mobile.js +13 -21
  7. package/Component.responsive.d.ts +5 -21
  8. package/Component.responsive.js +12 -34
  9. package/ResponsiveContext.d.ts +5 -0
  10. package/ResponsiveContext.js +16 -0
  11. package/components/closer/Component.js +3 -3
  12. package/components/closer/index.css +4 -4
  13. package/components/content/Component.d.ts +3 -16
  14. package/components/content/Component.js +11 -1
  15. package/components/content/desktop.css +8 -8
  16. package/components/content/index.css +3 -3
  17. package/components/content/mobile.css +3 -3
  18. package/components/footer/Component.js +15 -2
  19. package/components/footer/desktop.css +9 -9
  20. package/components/footer/index.css +4 -4
  21. package/components/footer/layout.css +25 -25
  22. package/components/footer/mobile.css +3 -3
  23. package/components/header/Component.d.ts +49 -0
  24. package/components/header/Component.js +57 -5
  25. package/components/header/desktop.css +17 -17
  26. package/components/header/index.css +17 -16
  27. package/components/header/mobile.css +3 -3
  28. package/cssm/Component.d.ts +12 -0
  29. package/cssm/Component.desktop.d.ts +5 -44
  30. package/cssm/Component.desktop.js +22 -45
  31. package/cssm/Component.js +62 -0
  32. package/cssm/Component.mobile.d.ts +5 -18
  33. package/cssm/Component.mobile.js +20 -22
  34. package/cssm/Component.responsive.d.ts +5 -21
  35. package/cssm/Component.responsive.js +18 -39
  36. package/cssm/ResponsiveContext.d.ts +5 -0
  37. package/cssm/ResponsiveContext.js +16 -0
  38. package/cssm/components/closer/Component.js +1 -1
  39. package/cssm/components/content/Component.d.ts +3 -16
  40. package/cssm/components/content/Component.js +8 -0
  41. package/cssm/components/footer/Component.js +11 -0
  42. package/cssm/components/header/Component.d.ts +49 -0
  43. package/cssm/components/header/Component.js +55 -6
  44. package/cssm/components/header/index.module.css +2 -1
  45. package/cssm/desktop.js +13 -9
  46. package/cssm/index.d.ts +1 -0
  47. package/cssm/index.js +13 -19
  48. package/cssm/mobile.js +13 -9
  49. package/cssm/responsive.js +13 -19
  50. package/cssm/typings.d.ts +52 -0
  51. package/cssm/typings.js +2 -0
  52. package/desktop.css +9 -9
  53. package/desktop.js +7 -8
  54. package/esm/Component.d.ts +12 -0
  55. package/esm/Component.desktop.d.ts +5 -44
  56. package/esm/Component.desktop.js +15 -42
  57. package/esm/Component.js +55 -0
  58. package/esm/Component.mobile.d.ts +5 -18
  59. package/esm/Component.mobile.js +13 -20
  60. package/esm/Component.responsive.d.ts +5 -21
  61. package/esm/Component.responsive.js +13 -35
  62. package/esm/ResponsiveContext.d.ts +5 -0
  63. package/esm/ResponsiveContext.js +8 -0
  64. package/esm/components/closer/Component.js +3 -3
  65. package/esm/components/closer/index.css +4 -4
  66. package/esm/components/content/Component.d.ts +3 -16
  67. package/esm/components/content/Component.js +11 -1
  68. package/esm/components/content/desktop.css +8 -8
  69. package/esm/components/content/index.css +3 -3
  70. package/esm/components/content/mobile.css +3 -3
  71. package/esm/components/footer/Component.js +15 -2
  72. package/esm/components/footer/desktop.css +9 -9
  73. package/esm/components/footer/index.css +4 -4
  74. package/esm/components/footer/layout.css +25 -25
  75. package/esm/components/footer/mobile.css +3 -3
  76. package/esm/components/header/Component.d.ts +49 -0
  77. package/esm/components/header/Component.js +55 -4
  78. package/esm/components/header/desktop.css +17 -17
  79. package/esm/components/header/index.css +17 -16
  80. package/esm/components/header/mobile.css +3 -3
  81. package/esm/desktop.css +9 -9
  82. package/esm/desktop.js +7 -8
  83. package/esm/index.d.ts +1 -0
  84. package/esm/index.js +6 -13
  85. package/esm/mobile.css +2 -2
  86. package/esm/mobile.js +6 -7
  87. package/esm/responsive.js +6 -13
  88. package/esm/transitions.css +8 -8
  89. package/esm/{tslib.es6-028db3ce.d.ts → tslib.es6-270dfeed.d.ts} +0 -0
  90. package/esm/{tslib.es6-028db3ce.js → tslib.es6-270dfeed.js} +1 -1
  91. package/esm/typings.d.ts +52 -0
  92. package/esm/typings.js +1 -0
  93. package/index.d.ts +1 -0
  94. package/index.js +6 -13
  95. package/mobile.css +2 -2
  96. package/mobile.js +6 -7
  97. package/modern/Component.d.ts +12 -0
  98. package/modern/Component.desktop.d.ts +5 -44
  99. package/modern/Component.desktop.js +14 -44
  100. package/modern/Component.js +62 -0
  101. package/modern/Component.mobile.d.ts +5 -18
  102. package/modern/Component.mobile.js +12 -19
  103. package/modern/Component.responsive.d.ts +5 -21
  104. package/modern/Component.responsive.js +12 -34
  105. package/modern/ResponsiveContext.d.ts +5 -0
  106. package/modern/ResponsiveContext.js +8 -0
  107. package/modern/components/closer/Component.js +2 -2
  108. package/modern/components/closer/index.css +4 -4
  109. package/modern/components/content/Component.d.ts +3 -16
  110. package/modern/components/content/Component.js +11 -1
  111. package/modern/components/content/desktop.css +8 -8
  112. package/modern/components/content/index.css +3 -3
  113. package/modern/components/content/mobile.css +3 -3
  114. package/modern/components/footer/Component.js +15 -2
  115. package/modern/components/footer/desktop.css +9 -9
  116. package/modern/components/footer/index.css +4 -4
  117. package/modern/components/footer/layout.css +25 -25
  118. package/modern/components/footer/mobile.css +3 -3
  119. package/modern/components/header/Component.d.ts +49 -0
  120. package/modern/components/header/Component.js +52 -4
  121. package/modern/components/header/desktop.css +17 -17
  122. package/modern/components/header/index.css +17 -16
  123. package/modern/components/header/mobile.css +3 -3
  124. package/modern/desktop.css +9 -9
  125. package/modern/desktop.js +6 -7
  126. package/modern/index.d.ts +1 -0
  127. package/modern/index.js +5 -12
  128. package/modern/mobile.css +2 -2
  129. package/modern/mobile.js +5 -6
  130. package/modern/responsive.js +5 -12
  131. package/modern/transitions.css +8 -8
  132. package/modern/typings.d.ts +52 -0
  133. package/modern/typings.js +1 -0
  134. package/package.json +3 -3
  135. package/responsive.js +6 -13
  136. package/send-stats.js +1 -1
  137. package/transitions.css +8 -8
  138. package/{tslib.es6-5a073d46.d.ts → tslib.es6-c33750f3.d.ts} +0 -0
  139. package/{tslib.es6-5a073d46.js → tslib.es6-c33750f3.js} +0 -0
  140. package/typings.d.ts +52 -0
  141. package/typings.js +2 -0
  142. package/Component-4316068c.d.ts +0 -50
  143. package/Component-4316068c.js +0 -43
  144. package/components/content/Component.desktop.d.ts +0 -11
  145. package/components/content/Component.desktop.js +0 -25
  146. package/components/content/Component.mobile.d.ts +0 -5
  147. package/components/content/Component.mobile.js +0 -25
  148. package/components/footer/Component.desktop.d.ts +0 -11
  149. package/components/footer/Component.desktop.js +0 -28
  150. package/components/footer/Component.mobile.d.ts +0 -5
  151. package/components/footer/Component.mobile.js +0 -28
  152. package/components/header/Component.desktop.d.ts +0 -15
  153. package/components/header/Component.desktop.js +0 -33
  154. package/components/header/Component.mobile.d.ts +0 -10
  155. package/components/header/Component.mobile.js +0 -33
  156. package/cssm/Component-5fe52731.d.ts +0 -50
  157. package/cssm/Component-5fe52731.js +0 -42
  158. package/cssm/components/content/Component.desktop.d.ts +0 -11
  159. package/cssm/components/content/Component.desktop.js +0 -25
  160. package/cssm/components/content/Component.mobile.d.ts +0 -5
  161. package/cssm/components/content/Component.mobile.js +0 -25
  162. package/cssm/components/footer/Component.desktop.d.ts +0 -11
  163. package/cssm/components/footer/Component.desktop.js +0 -29
  164. package/cssm/components/footer/Component.mobile.d.ts +0 -5
  165. package/cssm/components/footer/Component.mobile.js +0 -29
  166. package/cssm/components/header/Component.desktop.d.ts +0 -15
  167. package/cssm/components/header/Component.desktop.js +0 -34
  168. package/cssm/components/header/Component.mobile.d.ts +0 -10
  169. package/cssm/components/header/Component.mobile.js +0 -34
  170. package/cssm/getDataTestId-3fe0d3e6.d.ts +0 -2
  171. package/esm/Component-5bc49f26.d.ts +0 -50
  172. package/esm/Component-5bc49f26.js +0 -35
  173. package/esm/components/content/Component.desktop.d.ts +0 -11
  174. package/esm/components/content/Component.desktop.js +0 -16
  175. package/esm/components/content/Component.mobile.d.ts +0 -5
  176. package/esm/components/content/Component.mobile.js +0 -16
  177. package/esm/components/footer/Component.desktop.d.ts +0 -11
  178. package/esm/components/footer/Component.desktop.js +0 -19
  179. package/esm/components/footer/Component.mobile.d.ts +0 -5
  180. package/esm/components/footer/Component.mobile.js +0 -19
  181. package/esm/components/header/Component.desktop.d.ts +0 -15
  182. package/esm/components/header/Component.desktop.js +0 -24
  183. package/esm/components/header/Component.mobile.d.ts +0 -10
  184. package/esm/components/header/Component.mobile.js +0 -23
  185. package/esm/getDataTestId-3fe0d3e6.d.ts +0 -2
  186. package/esm/transitions.module-053bd5b2.js +0 -4
  187. package/getDataTestId-3fe0d3e6.d.ts +0 -2
  188. package/modern/Component-4974412a.d.ts +0 -50
  189. package/modern/Component-4974412a.js +0 -33
  190. package/modern/components/content/Component.desktop.d.ts +0 -11
  191. package/modern/components/content/Component.desktop.js +0 -12
  192. package/modern/components/content/Component.mobile.d.ts +0 -5
  193. package/modern/components/content/Component.mobile.js +0 -12
  194. package/modern/components/footer/Component.desktop.d.ts +0 -11
  195. package/modern/components/footer/Component.desktop.js +0 -14
  196. package/modern/components/footer/Component.mobile.d.ts +0 -5
  197. package/modern/components/footer/Component.mobile.js +0 -14
  198. package/modern/components/header/Component.desktop.d.ts +0 -15
  199. package/modern/components/header/Component.desktop.js +0 -21
  200. package/modern/components/header/Component.mobile.d.ts +0 -10
  201. package/modern/components/header/Component.mobile.js +0 -18
  202. package/modern/getDataTestId-3fe0d3e6.d.ts +0 -2
  203. package/modern/transitions.module-053bd5b2.js +0 -4
  204. package/transitions.module-b8ebf246.js +0 -6
package/Component.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { View } from "./typings";
4
+ declare const Modal: React.ForwardRefExoticComponent<import("@alfalab/core-components-base-modal").BaseModalProps & {
5
+ size?: "s" | "m" | "l" | "xl" | "fullscreen" | undefined;
6
+ fullscreen?: boolean | undefined;
7
+ fixedPosition?: boolean | undefined;
8
+ hasCloser?: boolean | undefined;
9
+ } & {
10
+ view: View;
11
+ } & React.RefAttributes<HTMLDivElement>>;
12
+ export { Modal };
@@ -1,53 +1,14 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
- import { BaseModalProps } from "@alfalab/core-components-base-modal";
4
- type ModalDesktopProps = BaseModalProps & {
5
- /**
6
- * Ширина модального окна
7
- * @default "m"
8
- */
9
- size?: 's' | 'm' | 'l' | 'xl' | 'fullscreen';
10
- /**
11
- * Растягивает модальное окно на весь экран
12
- * @deprecated Используйте размер fullscreen
13
- */
14
- fullscreen?: boolean;
15
- /**
16
- * Фиксирует позицию модального окна после открытия,
17
- * предотвращая скачки, если контент внутри будет меняться
18
- */
19
- fixedPosition?: boolean;
20
- /**
21
- * Управление наличием закрывающего крестика
22
- * @default false
23
- */
24
- hasCloser?: boolean;
25
- };
26
- declare const ModalDesktop: React.ForwardRefExoticComponent<BaseModalProps & {
27
- /**
28
- * Ширина модального окна
29
- * @default "m"
30
- */
3
+ declare const ModalDesktop: React.ForwardRefExoticComponent<import("packages/base-modal/src").BaseModalProps & {
31
4
  size?: "s" | "m" | "l" | "xl" | "fullscreen" | undefined;
32
- /**
33
- * Растягивает модальное окно на весь экран
34
- * @deprecated Используйте размер fullscreen
35
- */
36
5
  fullscreen?: boolean | undefined;
37
- /**
38
- * Фиксирует позицию модального окна после открытия,
39
- * предотвращая скачки, если контент внутри будет меняться
40
- */
41
6
  fixedPosition?: boolean | undefined;
42
- /**
43
- * Управление наличием закрывающего крестика
44
- * @default false
45
- */
46
7
  hasCloser?: boolean | undefined;
47
8
  } & React.RefAttributes<HTMLDivElement>> & {
48
- Content: React.FC<import("./components/content/Component.desktop").ContentDesktopProps>;
49
- Header: React.FC<import("./components/header/Component.desktop").HeaderDesktopProps>;
50
- Footer: React.FC<import("./components/footer/Component.desktop").FooterDesktopProps>;
9
+ Content: React.FC<import("./typings").ContentProps>;
10
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
11
+ Footer: React.FC<import("./components/footer/Component").FooterProps>;
51
12
  Closer: React.FC<import("./components/closer/Component").CloserProps>;
52
13
  };
53
- export { ModalDesktopProps, ModalDesktop };
14
+ export { ModalDesktop };
@@ -2,60 +2,31 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('./tslib.es6-5a073d46.js');
5
+ var tslib_es6 = require('./tslib.es6-c33750f3.js');
6
6
  var React = require('react');
7
- var mergeRefs = require('react-merge-refs');
8
- var cn = require('classnames');
9
- var coreComponentsBaseModal = require('@alfalab/core-components-base-modal');
7
+ require('classnames');
10
8
  require('@alfalab/core-components-icon-button');
11
9
  require('@alfalab/icons-glyph/CrossHeavyMIcon');
10
+ require('@alfalab/core-components-base-modal');
12
11
  require('./Context.js');
13
12
  var components_closer_Component = require('./components/closer/Component.js');
14
- require('./components/content/Component.js');
15
- var components_content_Component_desktop = require('./components/content/Component.desktop.js');
16
- require('./components/footer/Component.js');
17
- var components_footer_Component_desktop = require('./components/footer/Component.desktop.js');
18
- require('./Component-4316068c.js');
19
- var components_header_Component_desktop = require('./components/header/Component.desktop.js');
20
- var transitions_module = require('./transitions.module-b8ebf246.js');
13
+ require('./ResponsiveContext.js');
14
+ var components_content_Component = require('./components/content/Component.js');
15
+ var components_footer_Component = require('./components/footer/Component.js');
16
+ require('@alfalab/icons-glyph/CrossMIcon');
17
+ var components_header_Component = require('./components/header/Component.js');
18
+ require('react-merge-refs');
19
+ var Component = require('./Component.js');
21
20
 
22
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
22
 
24
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
- var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
26
- var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
27
24
 
28
- var styles = {"wrapper":"modal__wrapper_ctsqz","component":"modal__component_ctsqz","fullscreen":"modal__fullscreen_ctsqz","s":"modal__s_ctsqz","m":"modal__m_ctsqz","l":"modal__l_ctsqz","xl":"modal__xl_ctsqz"};
29
- require('./desktop.css')
30
-
31
- var ModalDesktopComponent = React.forwardRef(function (_a, ref) {
32
- var _b;
33
- var _c = _a.size, size = _c === void 0 ? 's' : _c, fixedPosition = _a.fixedPosition, fullscreen = _a.fullscreen, children = _a.children, className = _a.className, wrapperClassName = _a.wrapperClassName, _d = _a.transitionProps, transitionProps = _d === void 0 ? {} : _d, restProps = tslib_es6.__rest(_a, ["size", "fixedPosition", "fullscreen", "children", "className", "wrapperClassName", "transitionProps"]);
34
- // TODO: удалить, после удаления пропсы fullscreen
35
- var componentSize = fullscreen ? 'fullscreen' : size;
36
- var modalRef = React.useRef(null);
37
- var handleEntered = React.useCallback(function (node, isAppearing) {
38
- if (fixedPosition && modalRef.current) {
39
- var content = modalRef.current.querySelector("." + styles.component);
40
- if (content) {
41
- var marginTop = window.getComputedStyle(content).marginTop;
42
- content.style.marginTop = marginTop;
43
- }
44
- }
45
- if (transitionProps.onEntered) {
46
- transitionProps.onEntered(node, isAppearing);
47
- }
48
- }, [fixedPosition, transitionProps]);
49
- return (React__default['default'].createElement(coreComponentsBaseModal.BaseModal, tslib_es6.__assign({}, restProps, { ref: mergeRefs__default['default']([ref, modalRef]), wrapperClassName: cn__default['default'](styles.wrapper, wrapperClassName, (_b = {},
50
- _b[styles.fullscreen] = componentSize === 'fullscreen',
51
- _b)), className: cn__default['default'](styles.component, className, styles[componentSize]), backdropProps: tslib_es6.__assign({ invisible: componentSize === 'fullscreen' }, restProps.backdropProps), transitionProps: tslib_es6.__assign(tslib_es6.__assign({ classNames: transitions_module.transitions }, transitionProps), { onEntered: handleEntered }) }), React__default['default'].Children.map(children, function (child) {
52
- return React.isValidElement(child) ? React.cloneElement(child, { size: componentSize }) : child;
53
- })));
54
- });
25
+ var ModalDesktopComponent = React.forwardRef(function (props, ref) { return (React__default['default'].createElement(Component.Modal, tslib_es6.__assign({}, props, { ref: ref, view: 'desktop' }))); });
55
26
  var ModalDesktop = Object.assign(ModalDesktopComponent, {
56
- Content: components_content_Component_desktop.ContentDesktop,
57
- Header: components_header_Component_desktop.HeaderDesktop,
58
- Footer: components_footer_Component_desktop.FooterDesktop,
27
+ Content: components_content_Component.Content,
28
+ Header: components_header_Component.Header,
29
+ Footer: components_footer_Component.Footer,
59
30
  Closer: components_closer_Component.Closer,
60
31
  });
61
32
 
package/Component.js ADDED
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib_es6 = require('./tslib.es6-c33750f3.js');
6
+ var React = require('react');
7
+ var cn = require('classnames');
8
+ var coreComponentsBaseModal = require('@alfalab/core-components-base-modal');
9
+ var ResponsiveContext = require('./ResponsiveContext.js');
10
+ var mergeRefs = require('react-merge-refs');
11
+
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
+ var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
16
+ var mergeRefs__default = /*#__PURE__*/_interopDefaultLegacy(mergeRefs);
17
+
18
+ var desktopStyles = {"wrapper":"modal__wrapper_xnsi1","component":"modal__component_xnsi1","fullscreen":"modal__fullscreen_xnsi1","s":"modal__s_xnsi1","m":"modal__m_xnsi1","l":"modal__l_xnsi1","xl":"modal__xl_xnsi1"};
19
+ require('./desktop.css')
20
+
21
+ var mobileStyles = {"component":"modal__component_8mm50"};
22
+ require('./mobile.css')
23
+
24
+ var transitions = {"appear":"modal__appear_n9uu6","enter":"modal__enter_n9uu6","appearActive":"modal__appearActive_n9uu6","enterActive":"modal__enterActive_n9uu6","exit":"modal__exit_n9uu6","exitActive":"modal__exitActive_n9uu6","exitDone":"modal__exitDone_n9uu6"};
25
+ require('./transitions.css')
26
+
27
+ var Modal = React.forwardRef(function (_a, ref) {
28
+ var _b;
29
+ var _c = _a.size, size = _c === void 0 ? 's' : _c, fixedPosition = _a.fixedPosition, fullscreen = _a.fullscreen, children = _a.children, className = _a.className, wrapperClassName = _a.wrapperClassName, _d = _a.transitionProps, transitionProps = _d === void 0 ? {} : _d, view = _a.view, restProps = tslib_es6.__rest(_a, ["size", "fixedPosition", "fullscreen", "children", "className", "wrapperClassName", "transitionProps", "view"]);
30
+ // TODO: удалить, после удаления пропсы fullscreen
31
+ var componentSize = fullscreen ? 'fullscreen' : size;
32
+ var modalRef = React.useRef(null);
33
+ var handleEntered = function (node, isAppearing) {
34
+ if (fixedPosition && modalRef.current) {
35
+ var content = modalRef.current.querySelector("." + desktopStyles.component);
36
+ if (content) {
37
+ var marginTop = window.getComputedStyle(content).marginTop;
38
+ content.style.marginTop = marginTop;
39
+ }
40
+ }
41
+ if (transitionProps.onEntered) {
42
+ transitionProps.onEntered(node, isAppearing);
43
+ }
44
+ };
45
+ var baseModalProps = view === 'desktop'
46
+ ? {
47
+ ref: mergeRefs__default['default']([ref, modalRef]),
48
+ wrapperClassName: cn__default['default'](desktopStyles.wrapper, wrapperClassName, (_b = {},
49
+ _b[desktopStyles.fullscreen] = componentSize === 'fullscreen',
50
+ _b)),
51
+ className: cn__default['default'](desktopStyles.component, className, desktopStyles[componentSize]),
52
+ backdropProps: tslib_es6.__assign({ invisible: componentSize === 'fullscreen' }, restProps.backdropProps),
53
+ transitionProps: tslib_es6.__assign(tslib_es6.__assign({ classNames: transitions }, transitionProps), { onEntered: handleEntered }),
54
+ }
55
+ : {
56
+ ref: ref,
57
+ transitionProps: tslib_es6.__assign({ classNames: transitions }, transitionProps),
58
+ className: cn__default['default'](className, mobileStyles.component),
59
+ };
60
+ var contextValue = React.useMemo(function () { return ({ size: componentSize, view: view }); }, [componentSize, view]);
61
+ return (React__default['default'].createElement(ResponsiveContext.ResponsiveContext.Provider, { value: contextValue },
62
+ React__default['default'].createElement(coreComponentsBaseModal.BaseModal, tslib_es6.__assign({}, restProps, baseModalProps), children)));
63
+ });
64
+
65
+ exports.Modal = Modal;
@@ -1,23 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
- import { BaseModalProps } from "@alfalab/core-components-base-modal";
4
- type ModalMobileProps = BaseModalProps & {
5
- /**
6
- * Управление наличием закрывающего крестика
7
- * @default false
8
- */
9
- hasCloser?: boolean;
10
- };
11
- declare const ModalMobile: React.ForwardRefExoticComponent<BaseModalProps & {
12
- /**
13
- * Управление наличием закрывающего крестика
14
- * @default false
15
- */
16
- hasCloser?: boolean | undefined;
17
- } & React.RefAttributes<HTMLDivElement>> & {
18
- Content: React.FC<import("./components/content/Component").ContentProps>;
19
- Header: React.FC<import("./components/header/Component.mobile").HeaderMobileProps>;
3
+ import { ModalMobileProps } from "./typings";
4
+ declare const ModalMobile: React.ForwardRefExoticComponent<ModalMobileProps & React.RefAttributes<HTMLDivElement>> & {
5
+ Content: React.FC<import("./typings").ContentProps>;
6
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
20
7
  Footer: React.FC<import("./components/footer/Component").FooterProps>;
21
8
  Closer: React.FC<import("./components/closer/Component").CloserProps>;
22
9
  };
23
- export { ModalMobileProps, ModalMobile };
10
+ export { ModalMobile };
@@ -2,39 +2,31 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('./tslib.es6-5a073d46.js');
5
+ var tslib_es6 = require('./tslib.es6-c33750f3.js');
6
6
  var React = require('react');
7
- var cn = require('classnames');
8
- var coreComponentsBaseModal = require('@alfalab/core-components-base-modal');
7
+ require('classnames');
9
8
  require('@alfalab/core-components-icon-button');
10
9
  require('@alfalab/icons-glyph/CrossHeavyMIcon');
10
+ require('@alfalab/core-components-base-modal');
11
11
  require('./Context.js');
12
12
  var components_closer_Component = require('./components/closer/Component.js');
13
- require('./components/content/Component.js');
14
- require('./components/footer/Component.js');
15
- require('./Component-4316068c.js');
16
- var transitions_module = require('./transitions.module-b8ebf246.js');
17
- var components_content_Component_mobile = require('./components/content/Component.mobile.js');
18
- var components_footer_Component_mobile = require('./components/footer/Component.mobile.js');
13
+ require('./ResponsiveContext.js');
14
+ var components_content_Component = require('./components/content/Component.js');
15
+ var components_footer_Component = require('./components/footer/Component.js');
19
16
  require('@alfalab/icons-glyph/CrossMIcon');
20
- var components_header_Component_mobile = require('./components/header/Component.mobile.js');
17
+ var components_header_Component = require('./components/header/Component.js');
18
+ require('react-merge-refs');
19
+ var Component = require('./Component.js');
21
20
 
22
21
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
22
 
24
23
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
- var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
26
24
 
27
- var styles = {"component":"modal__component_1k5ny"};
28
- require('./mobile.css')
29
-
30
- var ModalMobileComponent = React.forwardRef(function (_a, ref) {
31
- var children = _a.children, className = _a.className, restProps = tslib_es6.__rest(_a, ["children", "className"]);
32
- return (React__default['default'].createElement(coreComponentsBaseModal.BaseModal, tslib_es6.__assign({}, restProps, { ref: ref, transitionProps: tslib_es6.__assign({ classNames: transitions_module.transitions }, restProps.transitionProps), className: cn__default['default'](className, styles.component) }), children));
33
- });
25
+ var ModalMobileComponent = React.forwardRef(function (props, ref) { return (React__default['default'].createElement(Component.Modal, tslib_es6.__assign({}, props, { ref: ref, view: 'mobile' }))); });
34
26
  var ModalMobile = Object.assign(ModalMobileComponent, {
35
- Content: components_content_Component_mobile.ContentMobile,
36
- Header: components_header_Component_mobile.HeaderMobile,
37
- Footer: components_footer_Component_mobile.FooterMobile,
27
+ Content: components_content_Component.Content,
28
+ Header: components_header_Component.Header,
29
+ Footer: components_footer_Component.Footer,
38
30
  Closer: components_closer_Component.Closer,
39
31
  });
40
32
 
@@ -1,32 +1,16 @@
1
1
  /// <reference types="react" />
2
2
  import React from 'react';
3
- import { BaseModalProps } from "@alfalab/core-components-base-modal";
4
- import { ModalDesktopProps } from "./Component.desktop";
5
- import { ModalMobileProps } from "./Component.mobile";
6
- type ModalResponsiveProps = ModalMobileProps & ModalDesktopProps & {
7
- /**
8
- * Контрольная точка, с нее начинается desktop версия
9
- * @default 1024
10
- */
11
- breakpoint?: number;
12
- };
13
- declare const ModalResponsive: React.ForwardRefExoticComponent<BaseModalProps & {
14
- hasCloser?: boolean | undefined;
15
- } & {
3
+ declare const ModalResponsive: React.ForwardRefExoticComponent<import("packages/base-modal/src").BaseModalProps & {
16
4
  size?: "s" | "m" | "l" | "xl" | "fullscreen" | undefined;
17
5
  fullscreen?: boolean | undefined;
18
6
  fixedPosition?: boolean | undefined;
19
7
  hasCloser?: boolean | undefined;
20
8
  } & {
21
- /**
22
- * Контрольная точка, с нее начинается desktop версия
23
- * @default 1024
24
- */
25
9
  breakpoint?: number | undefined;
26
10
  } & React.RefAttributes<HTMLDivElement>> & {
27
- Header: React.FC<import("./components/header/Component.desktop").HeaderDesktopProps> | React.FC<import("./components/header/Component.mobile").HeaderMobileProps>;
28
- Content: React.FC<import("./components/content/Component").ContentProps> | React.FC<import("./components/content/Component.desktop").ContentDesktopProps>;
29
- Footer: React.FC<import("./components/footer/Component").FooterProps> | React.FC<import("./components/footer/Component.desktop").FooterDesktopProps>;
11
+ Header: React.FC<import("./components/header/Component").HeaderProps>;
12
+ Content: React.FC<import("./typings").ContentProps>;
13
+ Footer: React.FC<import("./components/footer/Component").FooterProps>;
30
14
  Closer: React.FC<import("./components/closer/Component").CloserProps>;
31
15
  };
32
- export { ModalResponsiveProps, ModalResponsive };
16
+ export { ModalResponsive };
@@ -2,61 +2,39 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('./tslib.es6-5a073d46.js');
5
+ var tslib_es6 = require('./tslib.es6-c33750f3.js');
6
6
  var React = require('react');
7
- require('react-merge-refs');
8
7
  require('classnames');
9
- require('@alfalab/core-components-base-modal');
10
8
  require('@alfalab/core-components-icon-button');
11
9
  require('@alfalab/icons-glyph/CrossHeavyMIcon');
10
+ require('@alfalab/core-components-base-modal');
12
11
  require('./Context.js');
13
12
  var components_closer_Component = require('./components/closer/Component.js');
14
- require('./components/content/Component.js');
15
- require('./components/content/Component.desktop.js');
16
- require('./components/footer/Component.js');
17
- require('./components/footer/Component.desktop.js');
18
- require('./Component-4316068c.js');
19
- require('./components/header/Component.desktop.js');
20
- var Component_desktop = require('./Component.desktop.js');
21
- require('./transitions.module-b8ebf246.js');
22
- require('./components/content/Component.mobile.js');
23
- require('./components/footer/Component.mobile.js');
13
+ require('./ResponsiveContext.js');
14
+ var components_content_Component = require('./components/content/Component.js');
15
+ var components_footer_Component = require('./components/footer/Component.js');
24
16
  require('@alfalab/icons-glyph/CrossMIcon');
25
- require('./components/header/Component.mobile.js');
26
- var Component_mobile = require('./Component.mobile.js');
17
+ var components_header_Component = require('./components/header/Component.js');
18
+ require('react-merge-refs');
19
+ var Component = require('./Component.js');
27
20
  var hooks = require('@alfalab/hooks');
28
21
 
29
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
30
23
 
31
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
32
25
 
33
- // eslint-disable-next-line @typescript-eslint/no-redeclare
34
- var ResponsiveContext = React__default['default'].createContext({
35
- view: 'desktop',
36
- });
37
- function createResponsive(desktop, mobile) {
38
- function ResponsiveChild(props) {
39
- var view = React.useContext(ResponsiveContext).view;
40
- var Child = view === 'desktop' ? desktop : mobile;
41
- return React__default['default'].createElement(Child, tslib_es6.__assign({}, props));
42
- }
43
- return ResponsiveChild;
44
- }
45
26
  var ModalResponsiveComponent = React.forwardRef(function (_a, ref) {
46
27
  var children = _a.children, _b = _a.breakpoint, breakpoint = _b === void 0 ? 1024 : _b, restProps = tslib_es6.__rest(_a, ["children", "breakpoint"]);
47
28
  var view = hooks.useMedia([
48
29
  ['mobile', "(max-width: " + (breakpoint - 1) + "px)"],
49
30
  ['desktop', "(min-width: " + breakpoint + "px)"],
50
31
  ], 'desktop')[0];
51
- var contextValue = React.useMemo(function () { return ({ view: view }); }, [view]);
52
- var Component = view === 'desktop' ? Component_desktop.ModalDesktop : Component_mobile.ModalMobile;
53
- return (React__default['default'].createElement(ResponsiveContext.Provider, { value: contextValue },
54
- React__default['default'].createElement(Component, tslib_es6.__assign({ ref: ref }, restProps), children)));
32
+ return (React__default['default'].createElement(Component.Modal, tslib_es6.__assign({ ref: ref }, restProps, { view: view }), children));
55
33
  });
56
34
  var ModalResponsive = Object.assign(ModalResponsiveComponent, {
57
- Header: createResponsive(Component_desktop.ModalDesktop.Header, Component_mobile.ModalMobile.Header),
58
- Content: createResponsive(Component_desktop.ModalDesktop.Content, Component_mobile.ModalMobile.Content),
59
- Footer: createResponsive(Component_desktop.ModalDesktop.Footer, Component_mobile.ModalMobile.Footer),
35
+ Header: components_header_Component.Header,
36
+ Content: components_content_Component.Content,
37
+ Footer: components_footer_Component.Footer,
60
38
  Closer: components_closer_Component.Closer,
61
39
  });
62
40
 
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import React from 'react';
3
+ import { TResponsiveModalContext } from "./typings";
4
+ declare const ResponsiveContext: React.Context<TResponsiveModalContext>;
5
+ export { ResponsiveContext };
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+
11
+ var ResponsiveContext = React__default['default'].createContext({
12
+ view: 'desktop',
13
+ size: 's',
14
+ });
15
+
16
+ exports.ResponsiveContext = ResponsiveContext;
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../../tslib.es6-5a073d46.js');
5
+ var tslib_es6 = require('../../tslib.es6-c33750f3.js');
6
6
  var React = require('react');
7
7
  var cn = require('classnames');
8
- require('@alfalab/core-components-base-modal');
9
8
  var coreComponentsIconButton = require('@alfalab/core-components-icon-button');
10
9
  var CrossHeavyMIcon = require('@alfalab/icons-glyph/CrossHeavyMIcon');
10
+ require('@alfalab/core-components-base-modal');
11
11
  var Context = require('../../Context.js');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -15,7 +15,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
15
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
16
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
17
17
 
18
- var styles = {"closer":"modal__closer_1vr38","button":"modal__button_1vr38","sticky":"modal__sticky_1vr38"};
18
+ var styles = {"closer":"modal__closer_hjyxy","button":"modal__button_hjyxy","sticky":"modal__sticky_hjyxy"};
19
19
  require('./index.css')
20
20
 
21
21
  /**
@@ -1,4 +1,4 @@
1
- /* hash: igf8m */
1
+ /* hash: rqprz */
2
2
  :root {
3
3
  --color-light-bg-primary-alpha-40: rgba(255, 255, 255, 0.4);
4
4
  }
@@ -29,7 +29,7 @@
29
29
  :root {
30
30
  --modal-closer-bg-color: var(--color-light-bg-primary-alpha-40);
31
31
  }
32
- .modal__closer_1vr38 {
32
+ .modal__closer_hjyxy {
33
33
  flex-shrink: 0;
34
34
  width: 48px;
35
35
  height: 48px;
@@ -38,13 +38,13 @@
38
38
  align-items: center;
39
39
  justify-content: center;
40
40
  }
41
- .modal__button_1vr38 {
41
+ .modal__button_hjyxy {
42
42
  background: var(--modal-closer-bg-color);
43
43
  -webkit-backdrop-filter: blur(10px);
44
44
  backdrop-filter: blur(10px);
45
45
  border-radius: 50px;
46
46
  }
47
- .modal__sticky_1vr38 {
47
+ .modal__sticky_hjyxy {
48
48
  position: sticky;
49
49
  top: calc(var(--modal-vertical-padding) * -1);
50
50
  }
@@ -1,17 +1,4 @@
1
- import { FC, ReactNode } from 'react';
2
- type ContentProps = {
3
- /**
4
- * Контент
5
- */
6
- children?: ReactNode;
7
- /**
8
- * Дополнительный класс
9
- */
10
- className?: string;
11
- /**
12
- * Растягивает контент на всю высоту
13
- */
14
- flex?: boolean;
15
- };
1
+ import { FC } from 'react';
2
+ import { ContentProps } from "../../typings";
16
3
  declare const Content: FC<ContentProps>;
17
- export { ContentProps, Content };
4
+ export { Content };
@@ -6,21 +6,31 @@ var React = require('react');
6
6
  var cn = require('classnames');
7
7
  require('@alfalab/core-components-base-modal');
8
8
  var Context = require('../../Context.js');
9
+ var ResponsiveContext = require('../../ResponsiveContext.js');
9
10
 
10
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
12
 
12
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
14
  var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
14
15
 
15
- var styles = {"content":"modal__content_13dck","flex":"modal__flex_13dck"};
16
+ var desktopStyles = {"s":"modal__s_1jxs8","m":"modal__m_1jxs8","l":"modal__l_1jxs8","xl":"modal__xl_1jxs8","fullscreen":"modal__fullscreen_1jxs8"};
17
+ require('./desktop.css')
18
+
19
+ var styles = {"content":"modal__content_fvac6","flex":"modal__flex_fvac6"};
16
20
  require('./index.css')
17
21
 
22
+ var mobileStyles = {"content":"modal__content_1ma9v"};
23
+ require('./mobile.css')
24
+
18
25
  var Content = function (_a) {
19
26
  var _b;
20
27
  var children = _a.children, flex = _a.flex, className = _a.className;
21
28
  var contentRef = React.useContext(Context.ModalContext).contentRef;
29
+ var _c = React.useContext(ResponsiveContext.ResponsiveContext), size = _c.size, view = _c.view;
22
30
  return (React__default['default'].createElement("div", { className: cn__default['default'](styles.content, className, (_b = {},
23
31
  _b[styles.flex] = flex,
32
+ _b[desktopStyles[size]] = view === 'desktop' && size,
33
+ _b[mobileStyles.content] = view === 'mobile',
24
34
  _b)), ref: contentRef }, children));
25
35
  };
26
36
 
@@ -1,4 +1,4 @@
1
- /* hash: 1lvg5 */
1
+ /* hash: wq4uq */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -24,18 +24,18 @@
24
24
 
25
25
  /* mobile */
26
26
  }
27
- .modal__s_8eqeo,
28
- .modal__m_8eqeo {
27
+ .modal__s_1jxs8,
28
+ .modal__m_1jxs8 {
29
29
  padding: var(--modal-s-content-paddings)
30
30
  }
31
- .modal__s_8eqeo:last-child, .modal__m_8eqeo:last-child {
31
+ .modal__s_1jxs8:last-child, .modal__m_1jxs8:last-child {
32
32
  padding-bottom: var(--modal-s-content-only-bottom-padding);
33
33
  }
34
- .modal__l_8eqeo,
35
- .modal__xl_8eqeo,
36
- .modal__fullscreen_8eqeo {
34
+ .modal__l_1jxs8,
35
+ .modal__xl_1jxs8,
36
+ .modal__fullscreen_1jxs8 {
37
37
  padding: 0 var(--gap-6xl)
38
38
  }
39
- .modal__l_8eqeo:last-child, .modal__xl_8eqeo:last-child, .modal__fullscreen_8eqeo:last-child {
39
+ .modal__l_1jxs8:last-child, .modal__xl_1jxs8:last-child, .modal__fullscreen_1jxs8:last-child {
40
40
  padding-bottom: var(--gap-6xl);
41
41
  }
@@ -1,4 +1,4 @@
1
- /* hash: 1qtha */
1
+ /* hash: 11o5z */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -19,10 +19,10 @@
19
19
 
20
20
  /* mobile */
21
21
  }
22
- .modal__content_13dck {
22
+ .modal__content_fvac6 {
23
23
  box-sizing: border-box;
24
24
  width: 100%;
25
25
  }
26
- .modal__flex_13dck {
26
+ .modal__flex_fvac6 {
27
27
  flex: 1;
28
28
  }
@@ -1,4 +1,4 @@
1
- /* hash: 1rhyd */
1
+ /* hash: 1i7nt */
2
2
  :root {
3
3
 
4
4
  /* Hard */
@@ -22,9 +22,9 @@
22
22
 
23
23
  /* mobile */
24
24
  }
25
- .modal__content_17tfd {
25
+ .modal__content_1ma9v {
26
26
  padding: 0 var(--gap-m)
27
27
  }
28
- .modal__content_17tfd:last-child {
28
+ .modal__content_1ma9v:last-child {
29
29
  padding-bottom: var(--gap-m);
30
30
  }