@alfalab/core-components-side-panel 6.0.1 → 6.0.3

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 (277) hide show
  1. package/Component.responsive.d.ts +2 -2
  2. package/Component.responsive.js.map +1 -1
  3. package/Context.js.map +1 -1
  4. package/ResponsiveContext.d.ts +1 -1
  5. package/ResponsiveContext.js.map +1 -1
  6. package/components/content/Component.d.ts +1 -1
  7. package/components/content/Component.desktop.d.ts +2 -2
  8. package/components/content/Component.desktop.js.map +1 -1
  9. package/components/content/Component.js.map +1 -1
  10. package/components/content/Component.mobile.d.ts +2 -2
  11. package/components/content/Component.mobile.js.map +1 -1
  12. package/components/content/desktop.css +3 -3
  13. package/components/content/desktop.module.css.js +1 -1
  14. package/components/content/index.css +4 -4
  15. package/components/content/index.module.css.js +1 -1
  16. package/components/content/mobile.css +3 -3
  17. package/components/content/mobile.module.css.js +1 -1
  18. package/components/controls/Component.d.ts +1 -1
  19. package/components/controls/Component.js.map +1 -1
  20. package/components/controls/index.css +1 -1
  21. package/components/controls/index.module.css.js +1 -1
  22. package/components/footer/Component.d.ts +1 -1
  23. package/components/footer/Component.desktop.d.ts +2 -2
  24. package/components/footer/Component.desktop.js.map +1 -1
  25. package/components/footer/Component.js +3 -0
  26. package/components/footer/Component.js.map +1 -1
  27. package/components/footer/Component.mobile.d.ts +2 -2
  28. package/components/footer/Component.mobile.js.map +1 -1
  29. package/components/footer/desktop.css +2 -2
  30. package/components/footer/desktop.module.css.js +1 -1
  31. package/components/footer/index.css +6 -4
  32. package/components/footer/index.module.css.js +1 -1
  33. package/components/footer/index.module.css.js.map +1 -1
  34. package/components/footer/layout.css +19 -19
  35. package/components/footer/layout.module.css.js +1 -1
  36. package/components/footer/mobile.css +5 -5
  37. package/components/footer/mobile.module.css.js +1 -1
  38. package/components/header/Component.d.ts +2 -2
  39. package/components/header/Component.js.map +1 -1
  40. package/components/header/desktop.css +6 -6
  41. package/components/header/desktop.module.css.js +1 -1
  42. package/components/header/index.css +18 -16
  43. package/components/header/index.module.css.js +1 -1
  44. package/components/header/index.module.css.js.map +1 -1
  45. package/components/header/mobile.css +8 -8
  46. package/components/header/mobile.module.css.js +1 -1
  47. package/cssm/Component.responsive.d.ts +2 -2
  48. package/cssm/Component.responsive.js.map +1 -1
  49. package/cssm/Context.js.map +1 -1
  50. package/cssm/ResponsiveContext.d.ts +1 -1
  51. package/cssm/ResponsiveContext.js.map +1 -1
  52. package/cssm/components/content/Component.d.ts +1 -1
  53. package/cssm/components/content/Component.desktop.d.ts +2 -2
  54. package/cssm/components/content/Component.desktop.js.map +1 -1
  55. package/cssm/components/content/Component.js.map +1 -1
  56. package/cssm/components/content/Component.mobile.d.ts +2 -2
  57. package/cssm/components/content/Component.mobile.js.map +1 -1
  58. package/cssm/components/content/desktop.module.css +1 -1
  59. package/cssm/components/content/index.module.css +1 -1
  60. package/cssm/components/content/mobile.module.css +1 -1
  61. package/cssm/components/controls/Component.d.ts +1 -1
  62. package/cssm/components/controls/Component.js.map +1 -1
  63. package/cssm/components/footer/Component.d.ts +1 -1
  64. package/cssm/components/footer/Component.desktop.d.ts +2 -2
  65. package/cssm/components/footer/Component.desktop.js.map +1 -1
  66. package/cssm/components/footer/Component.js +3 -0
  67. package/cssm/components/footer/Component.js.map +1 -1
  68. package/cssm/components/footer/Component.mobile.d.ts +2 -2
  69. package/cssm/components/footer/Component.mobile.js.map +1 -1
  70. package/cssm/components/footer/index.module.css +3 -1
  71. package/cssm/components/footer/layout.module.css +3 -3
  72. package/cssm/components/footer/mobile.module.css +2 -2
  73. package/cssm/components/header/Component.d.ts +2 -2
  74. package/cssm/components/header/Component.js.map +1 -1
  75. package/cssm/components/header/desktop.module.css +2 -2
  76. package/cssm/components/header/index.module.css +5 -3
  77. package/cssm/components/header/mobile.module.css +4 -4
  78. package/cssm/desktop/Component.desktop.d.ts +4 -4
  79. package/cssm/desktop/Component.desktop.js.map +1 -1
  80. package/cssm/desktop/transitions.desktop.module.css +9 -3
  81. package/cssm/mobile/Component.mobile.d.ts +2 -2
  82. package/cssm/mobile/Component.mobile.js.map +1 -1
  83. package/cssm/mobile/mobile.module.css +1 -1
  84. package/cssm/mobile/transitions.mobile.module.css +6 -2
  85. package/desktop/Component.desktop.d.ts +4 -4
  86. package/desktop/Component.desktop.js.map +1 -1
  87. package/desktop/desktop.css +2 -2
  88. package/desktop/desktop.module.css.js +1 -1
  89. package/desktop/transitions.desktop.css +15 -9
  90. package/desktop/transitions.desktop.module.css.js +1 -1
  91. package/desktop/transitions.desktop.module.css.js.map +1 -1
  92. package/esm/Component.responsive.d.ts +2 -2
  93. package/esm/Component.responsive.js.map +1 -1
  94. package/esm/Context.js.map +1 -1
  95. package/esm/ResponsiveContext.d.ts +1 -1
  96. package/esm/ResponsiveContext.js.map +1 -1
  97. package/esm/components/content/Component.d.ts +1 -1
  98. package/esm/components/content/Component.desktop.d.ts +2 -2
  99. package/esm/components/content/Component.desktop.js.map +1 -1
  100. package/esm/components/content/Component.js.map +1 -1
  101. package/esm/components/content/Component.mobile.d.ts +2 -2
  102. package/esm/components/content/Component.mobile.js.map +1 -1
  103. package/esm/components/content/desktop.css +3 -3
  104. package/esm/components/content/desktop.module.css.js +1 -1
  105. package/esm/components/content/index.css +4 -4
  106. package/esm/components/content/index.module.css.js +1 -1
  107. package/esm/components/content/mobile.css +3 -3
  108. package/esm/components/content/mobile.module.css.js +1 -1
  109. package/esm/components/controls/Component.d.ts +1 -1
  110. package/esm/components/controls/Component.js.map +1 -1
  111. package/esm/components/controls/index.css +1 -1
  112. package/esm/components/controls/index.module.css.js +1 -1
  113. package/esm/components/footer/Component.d.ts +1 -1
  114. package/esm/components/footer/Component.desktop.d.ts +2 -2
  115. package/esm/components/footer/Component.desktop.js.map +1 -1
  116. package/esm/components/footer/Component.js +3 -0
  117. package/esm/components/footer/Component.js.map +1 -1
  118. package/esm/components/footer/Component.mobile.d.ts +2 -2
  119. package/esm/components/footer/Component.mobile.js.map +1 -1
  120. package/esm/components/footer/desktop.css +2 -2
  121. package/esm/components/footer/desktop.module.css.js +1 -1
  122. package/esm/components/footer/index.css +6 -4
  123. package/esm/components/footer/index.module.css.js +1 -1
  124. package/esm/components/footer/index.module.css.js.map +1 -1
  125. package/esm/components/footer/layout.css +19 -19
  126. package/esm/components/footer/layout.module.css.js +1 -1
  127. package/esm/components/footer/mobile.css +5 -5
  128. package/esm/components/footer/mobile.module.css.js +1 -1
  129. package/esm/components/header/Component.d.ts +2 -2
  130. package/esm/components/header/Component.js.map +1 -1
  131. package/esm/components/header/desktop.css +6 -6
  132. package/esm/components/header/desktop.module.css.js +1 -1
  133. package/esm/components/header/index.css +18 -16
  134. package/esm/components/header/index.module.css.js +1 -1
  135. package/esm/components/header/index.module.css.js.map +1 -1
  136. package/esm/components/header/mobile.css +8 -8
  137. package/esm/components/header/mobile.module.css.js +1 -1
  138. package/esm/desktop/Component.desktop.d.ts +4 -4
  139. package/esm/desktop/Component.desktop.js.map +1 -1
  140. package/esm/desktop/desktop.css +2 -2
  141. package/esm/desktop/desktop.module.css.js +1 -1
  142. package/esm/desktop/transitions.desktop.css +15 -9
  143. package/esm/desktop/transitions.desktop.module.css.js +1 -1
  144. package/esm/desktop/transitions.desktop.module.css.js.map +1 -1
  145. package/esm/mobile/Component.mobile.d.ts +2 -2
  146. package/esm/mobile/Component.mobile.js.map +1 -1
  147. package/esm/mobile/mobile.css +5 -5
  148. package/esm/mobile/mobile.module.css.js +1 -1
  149. package/esm/mobile/transitions.mobile.css +13 -9
  150. package/esm/mobile/transitions.mobile.module.css.js +1 -1
  151. package/esm/mobile/transitions.mobile.module.css.js.map +1 -1
  152. package/mobile/Component.mobile.d.ts +2 -2
  153. package/mobile/Component.mobile.js.map +1 -1
  154. package/mobile/mobile.css +5 -5
  155. package/mobile/mobile.module.css.js +1 -1
  156. package/mobile/transitions.mobile.css +13 -9
  157. package/mobile/transitions.mobile.module.css.js +1 -1
  158. package/mobile/transitions.mobile.module.css.js.map +1 -1
  159. package/modern/Component.responsive.d.ts +2 -2
  160. package/modern/Component.responsive.js.map +1 -1
  161. package/modern/Context.js.map +1 -1
  162. package/modern/ResponsiveContext.d.ts +1 -1
  163. package/modern/ResponsiveContext.js.map +1 -1
  164. package/modern/components/content/Component.d.ts +1 -1
  165. package/modern/components/content/Component.desktop.d.ts +2 -2
  166. package/modern/components/content/Component.desktop.js.map +1 -1
  167. package/modern/components/content/Component.js.map +1 -1
  168. package/modern/components/content/Component.mobile.d.ts +2 -2
  169. package/modern/components/content/Component.mobile.js.map +1 -1
  170. package/modern/components/content/desktop.css +3 -3
  171. package/modern/components/content/desktop.module.css.js +1 -1
  172. package/modern/components/content/index.css +4 -4
  173. package/modern/components/content/index.module.css.js +1 -1
  174. package/modern/components/content/mobile.css +3 -3
  175. package/modern/components/content/mobile.module.css.js +1 -1
  176. package/modern/components/controls/Component.d.ts +1 -1
  177. package/modern/components/controls/Component.js.map +1 -1
  178. package/modern/components/controls/index.css +1 -1
  179. package/modern/components/controls/index.module.css.js +1 -1
  180. package/modern/components/footer/Component.d.ts +1 -1
  181. package/modern/components/footer/Component.desktop.d.ts +2 -2
  182. package/modern/components/footer/Component.desktop.js.map +1 -1
  183. package/modern/components/footer/Component.js +3 -0
  184. package/modern/components/footer/Component.js.map +1 -1
  185. package/modern/components/footer/Component.mobile.d.ts +2 -2
  186. package/modern/components/footer/Component.mobile.js.map +1 -1
  187. package/modern/components/footer/desktop.css +2 -2
  188. package/modern/components/footer/desktop.module.css.js +1 -1
  189. package/modern/components/footer/index.css +6 -4
  190. package/modern/components/footer/index.module.css.js +1 -1
  191. package/modern/components/footer/index.module.css.js.map +1 -1
  192. package/modern/components/footer/layout.css +19 -19
  193. package/modern/components/footer/layout.module.css.js +1 -1
  194. package/modern/components/footer/mobile.css +5 -5
  195. package/modern/components/footer/mobile.module.css.js +1 -1
  196. package/modern/components/header/Component.d.ts +2 -2
  197. package/modern/components/header/Component.js.map +1 -1
  198. package/modern/components/header/desktop.css +6 -6
  199. package/modern/components/header/desktop.module.css.js +1 -1
  200. package/modern/components/header/index.css +18 -16
  201. package/modern/components/header/index.module.css.js +1 -1
  202. package/modern/components/header/index.module.css.js.map +1 -1
  203. package/modern/components/header/mobile.css +8 -8
  204. package/modern/components/header/mobile.module.css.js +1 -1
  205. package/modern/desktop/Component.desktop.d.ts +4 -4
  206. package/modern/desktop/Component.desktop.js.map +1 -1
  207. package/modern/desktop/desktop.css +2 -2
  208. package/modern/desktop/desktop.module.css.js +1 -1
  209. package/modern/desktop/transitions.desktop.css +15 -9
  210. package/modern/desktop/transitions.desktop.module.css.js +1 -1
  211. package/modern/desktop/transitions.desktop.module.css.js.map +1 -1
  212. package/modern/mobile/Component.mobile.d.ts +2 -2
  213. package/modern/mobile/Component.mobile.js.map +1 -1
  214. package/modern/mobile/mobile.css +5 -5
  215. package/modern/mobile/mobile.module.css.js +1 -1
  216. package/modern/mobile/transitions.mobile.css +13 -9
  217. package/modern/mobile/transitions.mobile.module.css.js +1 -1
  218. package/modern/mobile/transitions.mobile.module.css.js.map +1 -1
  219. package/moderncssm/Component.responsive.d.ts +2 -2
  220. package/moderncssm/Component.responsive.js.map +1 -1
  221. package/moderncssm/Context.js.map +1 -1
  222. package/moderncssm/ResponsiveContext.d.ts +1 -1
  223. package/moderncssm/ResponsiveContext.js.map +1 -1
  224. package/moderncssm/components/content/Component.d.ts +1 -1
  225. package/moderncssm/components/content/Component.desktop.d.ts +2 -2
  226. package/moderncssm/components/content/Component.desktop.js.map +1 -1
  227. package/moderncssm/components/content/Component.js.map +1 -1
  228. package/moderncssm/components/content/Component.mobile.d.ts +2 -2
  229. package/moderncssm/components/content/Component.mobile.js.map +1 -1
  230. package/moderncssm/components/content/desktop.module.css +3 -1
  231. package/moderncssm/components/content/index.module.css +3 -1
  232. package/moderncssm/components/content/mobile.module.css +3 -1
  233. package/moderncssm/components/controls/Component.d.ts +1 -1
  234. package/moderncssm/components/controls/Component.js.map +1 -1
  235. package/moderncssm/components/footer/Component.d.ts +1 -1
  236. package/moderncssm/components/footer/Component.desktop.d.ts +2 -2
  237. package/moderncssm/components/footer/Component.desktop.js.map +1 -1
  238. package/moderncssm/components/footer/Component.js +3 -0
  239. package/moderncssm/components/footer/Component.js.map +1 -1
  240. package/moderncssm/components/footer/Component.mobile.d.ts +2 -2
  241. package/moderncssm/components/footer/Component.mobile.js.map +1 -1
  242. package/moderncssm/components/footer/desktop.module.css +2 -0
  243. package/moderncssm/components/footer/index.module.css +5 -1
  244. package/moderncssm/components/footer/layout.module.css +5 -3
  245. package/moderncssm/components/footer/mobile.module.css +2 -2
  246. package/moderncssm/components/header/Component.d.ts +2 -2
  247. package/moderncssm/components/header/Component.js.map +1 -1
  248. package/moderncssm/components/header/desktop.module.css +2 -0
  249. package/moderncssm/components/header/index.module.css +7 -3
  250. package/moderncssm/components/header/mobile.module.css +2 -2
  251. package/moderncssm/desktop/Component.desktop.d.ts +4 -4
  252. package/moderncssm/desktop/Component.desktop.js.map +1 -1
  253. package/moderncssm/desktop/desktop.module.css +2 -0
  254. package/moderncssm/desktop/transitions.desktop.module.css +9 -3
  255. package/moderncssm/mobile/Component.mobile.d.ts +2 -2
  256. package/moderncssm/mobile/Component.mobile.js.map +1 -1
  257. package/moderncssm/mobile/mobile.module.css +1 -1
  258. package/moderncssm/mobile/transitions.mobile.module.css +6 -2
  259. package/package.json +4 -4
  260. package/src/Component.responsive.tsx +4 -4
  261. package/src/ResponsiveContext.ts +1 -1
  262. package/src/components/content/Component.desktop.tsx +2 -2
  263. package/src/components/content/Component.mobile.tsx +2 -2
  264. package/src/components/content/Component.tsx +1 -1
  265. package/src/components/controls/Component.tsx +1 -1
  266. package/src/components/footer/Component.desktop.tsx +2 -2
  267. package/src/components/footer/Component.mobile.tsx +2 -2
  268. package/src/components/footer/Component.tsx +5 -1
  269. package/src/components/footer/index.module.css +3 -1
  270. package/src/components/header/Component.tsx +2 -2
  271. package/src/components/header/index.module.css +3 -1
  272. package/src/desktop/Component.desktop.tsx +5 -5
  273. package/src/desktop/transitions.desktop.module.css +6 -2
  274. package/src/mobile/Component.mobile.tsx +3 -3
  275. package/src/mobile/transitions.mobile.module.css +6 -2
  276. package/src/vars.css +1 -1
  277. /package/src/{Context.tsx → Context.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import { FC, ReactNode } from 'react';
1
+ import { type FC, type ReactNode } from 'react';
2
2
  export declare type FooterProps = {
3
3
  /**
4
4
  * Контент футера
@@ -1,5 +1,5 @@
1
- import { FC } from 'react';
2
- import { FooterProps } from './Component';
1
+ import { type FC } from 'react';
2
+ import { type FooterProps } from './Component';
3
3
  export declare type FooterDesktopProps = FooterProps & {
4
4
  /**
5
5
  * Размер (только для desktop версии компонента)
@@ -1 +1 @@
1
- {"version":3,"file":"Component.desktop.js","sources":["../../../src/components/footer/Component.desktop.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\n\nimport { Footer, FooterProps } from './Component';\n\nimport styles from './desktop.module.css';\n\nexport type FooterDesktopProps = FooterProps & {\n /**\n * Размер (только для desktop версии компонента)\n */\n size?: 's' | 500;\n};\n\nexport const FooterDesktop: FC<FooterDesktopProps> = ({\n size = 500,\n className,\n sticky,\n ...restProps\n}) => (\n <Footer\n className={cn(className, size && styles[SIZE_TO_CLASSNAME_MAP[size]], {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,aAAa,GAA2B,CAAC,EAClD,IAAI,GAAG,GAAG,EACV,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACf,MACG,oBAAC,MAAM,EAAA,EACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;AAClE,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;KAC1B,CAAC,EACF,MAAM,EAAE,MAAM,KACV,SAAS,EAAA,CACf;;;;"}
1
+ {"version":3,"file":"Component.desktop.js","sources":["../../../src/components/footer/Component.desktop.tsx"],"sourcesContent":["import React, { type FC } from 'react';\nimport cn from 'classnames';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\n\nimport { Footer, type FooterProps } from './Component';\n\nimport styles from './desktop.module.css';\n\nexport type FooterDesktopProps = FooterProps & {\n /**\n * Размер (только для desktop версии компонента)\n */\n size?: 's' | 500;\n};\n\nexport const FooterDesktop: FC<FooterDesktopProps> = ({\n size = 500,\n className,\n sticky,\n ...restProps\n}) => (\n <Footer\n className={cn(className, size && styles[SIZE_TO_CLASSNAME_MAP[size]], {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;;AAgBa,MAAA,aAAa,GAA2B,CAAC,EAClD,IAAI,GAAG,GAAG,EACV,SAAS,EACT,MAAM,EACN,GAAG,SAAS,EACf,MACG,oBAAC,MAAM,EAAA,EACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE;AAClE,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;KAC1B,CAAC,EACF,MAAM,EAAE,MAAM,KACV,SAAS,EAAA,CACf;;;;"}
@@ -11,6 +11,9 @@ const Footer = ({ children, className, sticky, layout = 'start', gap, dataTestId
11
11
  const responsiveContext = useContext(ResponsiveContext);
12
12
  useEffect(() => {
13
13
  setHasFooter(true);
14
+ return () => {
15
+ setHasFooter(false);
16
+ };
14
17
  }, [setHasFooter]);
15
18
  return (React.createElement("div", { className: cn(styles.footer, className, layoutStyles[layout], gap && layoutStyles[`gap-${gap}`], {
16
19
  [styles.highlighted]: sticky && footerHighlighted,
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/footer/Component.tsx"],"sourcesContent":["import React, { FC, ReactNode, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport styles from './index.module.css';\nimport layoutStyles from './layout.module.css';\n\nexport type FooterProps = {\n /**\n * Контент футера\n */\n children?: ReactNode;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Фиксирует футер\n */\n sticky?: boolean;\n\n /**\n * Выравнивание элементов футера\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const Footer: FC<FooterProps> = ({\n children,\n className,\n sticky,\n layout = 'start',\n gap,\n dataTestId,\n}) => {\n const { footerHighlighted, setHasFooter } = useContext(ModalContext);\n const responsiveContext = useContext(ResponsiveContext);\n\n useEffect(() => {\n setHasFooter(true);\n }, [setHasFooter]);\n\n return (\n <div\n className={cn(\n styles.footer,\n className,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n {\n [styles.highlighted]: sticky && footerHighlighted,\n [styles.sticky]: sticky,\n },\n )}\n data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'footer')}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;MA2Ca,MAAM,GAAoB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,EACH,UAAU,GACb,KAAI;IACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AACpE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAEvD,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AACtB,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,QACI,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,EACb,SAAS,EACT,YAAY,CAAC,MAAM,CAAC,EACpB,GAAG,IAAI,YAAY,CAAC,CAAO,IAAA,EAAA,GAAG,CAAE,CAAA,CAAC,EACjC;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,iBAAiB;AACjD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CACJ,EACa,cAAA,EAAA,UAAU,IAAI,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAA,EAEjF,QAAQ,CACP;AAEd;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/footer/Component.tsx"],"sourcesContent":["import React, { type FC, type ReactNode, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport styles from './index.module.css';\nimport layoutStyles from './layout.module.css';\n\nexport type FooterProps = {\n /**\n * Контент футера\n */\n children?: ReactNode;\n\n /**\n * Дополнительный класс\n */\n className?: string;\n\n /**\n * Фиксирует футер\n */\n sticky?: boolean;\n\n /**\n * Выравнивание элементов футера\n */\n layout?: 'start' | 'center' | 'space-between' | 'column';\n\n /**\n * Отступы между элементами футера\n */\n gap?: 16 | 24 | 32;\n\n /**\n * Идентификатор для систем автоматизированного тестирования\n */\n dataTestId?: string;\n};\n\nexport const Footer: FC<FooterProps> = ({\n children,\n className,\n sticky,\n layout = 'start',\n gap,\n dataTestId,\n}) => {\n const { footerHighlighted, setHasFooter } = useContext(ModalContext);\n const responsiveContext = useContext(ResponsiveContext);\n\n useEffect(() => {\n setHasFooter(true);\n\n return () => {\n setHasFooter(false);\n };\n }, [setHasFooter]);\n\n return (\n <div\n className={cn(\n styles.footer,\n className,\n layoutStyles[layout],\n gap && layoutStyles[`gap-${gap}`],\n {\n [styles.highlighted]: sticky && footerHighlighted,\n [styles.sticky]: sticky,\n },\n )}\n data-test-id={dataTestId || getDataTestId(responsiveContext?.dataTestId, 'footer')}\n >\n {children}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;MA2Ca,MAAM,GAAoB,CAAC,EACpC,QAAQ,EACR,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,EACH,UAAU,GACb,KAAI;IACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AACpE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IAEvD,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AAElB,QAAA,OAAO,MAAK;YACR,YAAY,CAAC,KAAK,CAAC;AACvB,SAAC;AACL,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,QACI,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,EACb,SAAS,EACT,YAAY,CAAC,MAAM,CAAC,EACpB,GAAG,IAAI,YAAY,CAAC,CAAO,IAAA,EAAA,GAAG,CAAE,CAAA,CAAC,EACjC;AACI,YAAA,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,IAAI,iBAAiB;AACjD,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,SAAA,CACJ,EACa,cAAA,EAAA,UAAU,IAAI,aAAa,CAAC,iBAAiB,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAA,EAEjF,QAAQ,CACP;AAEd;;;;"}
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
2
- import { FooterProps } from './Component';
1
+ import { type FC } from 'react';
2
+ import { type FooterProps } from './Component';
3
3
  export declare type FooterMobileProps = FooterProps;
4
4
  export declare const FooterMobile: FC<FooterMobileProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.mobile.js","sources":["../../../src/components/footer/Component.mobile.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport cn from 'classnames';\n\nimport { Footer, FooterProps } from './Component';\n\nimport styles from './mobile.module.css';\n\nexport type FooterMobileProps = FooterProps;\n\nexport const FooterMobile: FC<FooterMobileProps> = ({\n className,\n sticky,\n layout = 'start',\n ...restProps\n}) => (\n <Footer\n className={cn(className, styles.footer, {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n layout={layout}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;AASO,MAAM,YAAY,GAA0B,CAAC,EAChD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,SAAS,EACf,MACG,KAAA,CAAA,aAAA,CAAC,MAAM,EACH,EAAA,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;AACpC,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,KAAA,CAAC,EACF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACV,GAAA,SAAS,EACf,CAAA;;;;"}
1
+ {"version":3,"file":"Component.mobile.js","sources":["../../../src/components/footer/Component.mobile.tsx"],"sourcesContent":["import React, { type FC } from 'react';\nimport cn from 'classnames';\n\nimport { Footer, type FooterProps } from './Component';\n\nimport styles from './mobile.module.css';\n\nexport type FooterMobileProps = FooterProps;\n\nexport const FooterMobile: FC<FooterMobileProps> = ({\n className,\n sticky,\n layout = 'start',\n ...restProps\n}) => (\n <Footer\n className={cn(className, styles.footer, {\n [styles.sticky]: sticky,\n })}\n sticky={sticky}\n layout={layout}\n {...restProps}\n />\n);\n"],"names":[],"mappings":";;;;;AASO,MAAM,YAAY,GAA0B,CAAC,EAChD,SAAS,EACT,MAAM,EACN,MAAM,GAAG,OAAO,EAChB,GAAG,SAAS,EACf,MACG,KAAA,CAAA,aAAA,CAAC,MAAM,EACH,EAAA,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;AACpC,QAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AAC1B,KAAA,CAAC,EACF,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACV,GAAA,SAAS,EACf,CAAA;;;;"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-s-footer-paddings: var(--gap-24) var(--gap-40) var(--gap-40);
3
5
  }
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-footer-background: var(--color-light-modal-bg-primary);
3
5
  --side-panel-footer-highlight-background: var(--color-light-modal-bg-primary);
@@ -7,7 +9,9 @@
7
9
  .footer {
8
10
  width: 100%;
9
11
  box-sizing: border-box;
10
- transition: box-shadow 0.2s ease, background 0.2s ease;
12
+ transition:
13
+ box-shadow 0.2s ease,
14
+ background 0.2s ease;
11
15
  }
12
16
 
13
17
  .sticky {
@@ -1,10 +1,12 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-footer-default-gap: var(--gap-16);
3
5
  }
4
6
 
5
7
  .column {
6
8
  display: flex;
7
- flex-direction: column
9
+ flex-direction: column;
8
10
  }
9
11
 
10
12
  .column > *:not(:last-child):not(:only-child) {
@@ -32,7 +34,7 @@
32
34
  }
33
35
 
34
36
  .space-between {
35
- justify-content: space-between
37
+ justify-content: space-between;
36
38
  }
37
39
 
38
40
  .space-between > * {
@@ -42,7 +44,7 @@
42
44
  .start,
43
45
  .center,
44
46
  .space-between {
45
- display: flex
47
+ display: flex;
46
48
  }
47
49
 
48
50
  .start > *:not(:last-child):not(:only-child), .center > *:not(:last-child):not(:only-child), .space-between > *:not(:last-child):not(:only-child) {
@@ -2,11 +2,11 @@
2
2
  --sab: env(safe-area-inset-bottom, var(--gap-0));
3
3
  }
4
4
  .footer {
5
- padding: var(--gap-16)
5
+ padding: var(--gap-16);
6
6
  }
7
7
  @media (display-mode: standalone) {
8
8
  .footer {
9
- padding-bottom: calc(var(--sab) + var(--gap-16))
9
+ padding-bottom: calc(var(--sab) + var(--gap-16));
10
10
  }
11
11
  }
12
12
  .sticky {
@@ -1,4 +1,4 @@
1
- import { FC } from 'react';
2
- import { NavigationBarPrivateProps } from '@alfalab/core-components-navigation-bar-private/moderncssm';
1
+ import { type FC } from 'react';
2
+ import { type NavigationBarPrivateProps } from '@alfalab/core-components-navigation-bar-private/moderncssm';
3
3
  export declare type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;
4
4
  export declare const Header: FC<HeaderProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/header/Component.tsx"],"sourcesContent":["import React, { FC, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport {\n NavigationBarPrivate,\n NavigationBarPrivateProps,\n} from '@alfalab/core-components-navigation-bar-private';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport desktopStyles from './desktop.module.css';\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nexport type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;\n\nexport const Header: FC<HeaderProps> = ({\n className,\n children,\n contentClassName,\n title,\n sticky,\n hasCloser = true,\n ...restProps\n}) => {\n const { setHasHeader, headerHighlighted, onClose, componentRef } = useContext(ModalContext);\n const { size = 500, view = 'desktop', dataTestId } = useContext(ResponsiveContext) || {};\n\n useEffect(() => {\n setHasHeader(true);\n }, [setHasHeader]);\n\n const hasContent = Boolean(title || children);\n\n return (\n <NavigationBarPrivate\n dataTestId={getDataTestId(dataTestId, 'header')}\n {...restProps}\n scrollableParentRef={componentRef}\n view={view}\n sticky={sticky}\n title={title}\n hasCloser={hasCloser}\n onClose={onClose}\n className={cn(styles.header, className, {\n [styles.highlighted]: hasContent && sticky && headerHighlighted,\n [styles.sticky]: sticky,\n [styles.hasContent]: hasContent,\n [desktopStyles.sticky]: view === 'desktop' && sticky,\n [desktopStyles[SIZE_TO_CLASSNAME_MAP[size]]]: view === 'desktop',\n [mobileStyles.sticky]: view === 'mobile' && sticky,\n [mobileStyles.header]: view === 'mobile',\n })}\n contentClassName={cn(contentClassName, {\n [desktopStyles.content]: view === 'desktop',\n [mobileStyles.content]: view === 'mobile',\n })}\n >\n {children}\n </NavigationBarPrivate>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAmBa,MAAA,MAAM,GAAoB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,GAAG,SAAS,EACf,KAAI;AACD,IAAA,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AAC3F,IAAA,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAExF,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AACtB,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IAE7C,QACI,oBAAC,oBAAoB,EAAA,EACjB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC3C,GAAA,SAAS,EACb,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE;YACpC,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,MAAM,IAAI,iBAAiB;AAC/D,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AACvB,YAAA,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU;YAC/B,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,MAAM;YACpD,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS;YAChE,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,MAAM;AAClD,YAAA,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ;AAC3C,SAAA,CAAC,EACF,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE;AACnC,YAAA,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,SAAS;AAC3C,YAAA,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,KAAK,QAAQ;AAC5C,SAAA,CAAC,EAED,EAAA,QAAQ,CACU;AAE/B;;;;"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/header/Component.tsx"],"sourcesContent":["import React, { type FC, useContext, useEffect } from 'react';\nimport cn from 'classnames';\n\nimport {\n NavigationBarPrivate,\n type NavigationBarPrivateProps,\n} from '@alfalab/core-components-navigation-bar-private';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { SIZE_TO_CLASSNAME_MAP } from '../../consts';\nimport { ModalContext } from '../../Context';\nimport { ResponsiveContext } from '../../ResponsiveContext';\n\nimport desktopStyles from './desktop.module.css';\nimport styles from './index.module.css';\nimport mobileStyles from './mobile.module.css';\n\nexport type HeaderProps = Omit<NavigationBarPrivateProps, 'size' | 'view' | 'parentRef'>;\n\nexport const Header: FC<HeaderProps> = ({\n className,\n children,\n contentClassName,\n title,\n sticky,\n hasCloser = true,\n ...restProps\n}) => {\n const { setHasHeader, headerHighlighted, onClose, componentRef } = useContext(ModalContext);\n const { size = 500, view = 'desktop', dataTestId } = useContext(ResponsiveContext) || {};\n\n useEffect(() => {\n setHasHeader(true);\n }, [setHasHeader]);\n\n const hasContent = Boolean(title || children);\n\n return (\n <NavigationBarPrivate\n dataTestId={getDataTestId(dataTestId, 'header')}\n {...restProps}\n scrollableParentRef={componentRef}\n view={view}\n sticky={sticky}\n title={title}\n hasCloser={hasCloser}\n onClose={onClose}\n className={cn(styles.header, className, {\n [styles.highlighted]: hasContent && sticky && headerHighlighted,\n [styles.sticky]: sticky,\n [styles.hasContent]: hasContent,\n [desktopStyles.sticky]: view === 'desktop' && sticky,\n [desktopStyles[SIZE_TO_CLASSNAME_MAP[size]]]: view === 'desktop',\n [mobileStyles.sticky]: view === 'mobile' && sticky,\n [mobileStyles.header]: view === 'mobile',\n })}\n contentClassName={cn(contentClassName, {\n [desktopStyles.content]: view === 'desktop',\n [mobileStyles.content]: view === 'mobile',\n })}\n >\n {children}\n </NavigationBarPrivate>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAmBa,MAAA,MAAM,GAAoB,CAAC,EACpC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,SAAS,GAAG,IAAI,EAChB,GAAG,SAAS,EACf,KAAI;AACD,IAAA,MAAM,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC;AAC3F,IAAA,MAAM,EAAE,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE;IAExF,SAAS,CAAC,MAAK;QACX,YAAY,CAAC,IAAI,CAAC;AACtB,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC;IAElB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC;IAE7C,QACI,oBAAC,oBAAoB,EAAA,EACjB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,EAC3C,GAAA,SAAS,EACb,mBAAmB,EAAE,YAAY,EACjC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE;YACpC,CAAC,MAAM,CAAC,WAAW,GAAG,UAAU,IAAI,MAAM,IAAI,iBAAiB;AAC/D,YAAA,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM;AACvB,YAAA,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU;YAC/B,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,KAAK,SAAS,IAAI,MAAM;YACpD,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,SAAS;YAChE,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ,IAAI,MAAM;AAClD,YAAA,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,KAAK,QAAQ;AAC3C,SAAA,CAAC,EACF,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,EAAE;AACnC,YAAA,CAAC,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,SAAS;AAC3C,YAAA,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,KAAK,QAAQ;AAC5C,SAAA,CAAC,EAED,EAAA,QAAQ,CACU;AAE/B;;;;"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-s-header-paddings: 28px 28px var(--gap-0);
3
5
  --side-panel-s-header-desktop-content-paddings: 6px var(--gap-12) var(--gap-16);
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-header-background: var(--color-light-modal-bg-primary);
3
5
  --side-panel-header-highlight-background: var(--color-light-modal-bg-primary);
@@ -7,7 +9,9 @@
7
9
  .header {
8
10
  width: 100%;
9
11
  box-sizing: border-box;
10
- transition: box-shadow 0.2s ease, background 0.2s ease
12
+ transition:
13
+ box-shadow 0.2s ease,
14
+ background 0.2s ease;
11
15
  }
12
16
 
13
17
  .header:not(.hasContent) {
@@ -21,7 +25,7 @@
21
25
 
22
26
  .sticky {
23
27
  position: sticky;
24
- z-index: 1
28
+ z-index: 1;
25
29
  }
26
30
 
27
31
  .sticky.hasContent {
@@ -60,7 +64,7 @@
60
64
  }
61
65
 
62
66
  .trim {
63
- overflow: hidden
67
+ overflow: hidden;
64
68
  }
65
69
 
66
70
  .trim .title {
@@ -12,11 +12,11 @@
12
12
  var(--gap-4) var(--gap-8);
13
13
  }
14
14
  .header {
15
- padding: var(--side-panel-header-mobile-paddings)
15
+ padding: var(--side-panel-header-mobile-paddings);
16
16
  }
17
17
  @media (display-mode: standalone) {
18
18
  .header {
19
- padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding))
19
+ padding-top: calc(var(--sat) + var(--side-panel-header-mobile-top-padding));
20
20
  }
21
21
  }
22
22
  .sticky {
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
- import { BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
3
- import { DrawerProps } from '@alfalab/core-components-drawer/moderncssm';
2
+ import { type BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
3
+ import { type DrawerProps } from '@alfalab/core-components-drawer/moderncssm';
4
4
  import { ContentDesktop } from '../components/content/Component.desktop';
5
- import { ControlsProps } from '../components/controls';
5
+ import { type ControlsProps } from '../components/controls';
6
6
  import { FooterDesktop } from '../components/footer/Component.desktop';
7
- import { HeaderProps } from '../components/header/Component';
7
+ import { type HeaderProps } from '../components/header/Component';
8
8
  export declare type SidePanelDesktopProps = BaseModalProps & Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {
9
9
  /**
10
10
  * Ширина модального окна
@@ -1 +1 @@
1
- {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement(child) ? cloneElement(child, { size }) : child,\n )}\n </Drawer>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst HeaderDesktop = Header as React.FC<Omit<HeaderProps, 'titleSize' | 'subtitle'>>;\nconst ControlsDesktop = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelDesktop = Object.assign(SidePanelDesktopComponent, {\n Content: ContentDesktop,\n Header: HeaderDesktop,\n Footer: FooterDesktop,\n Controls: ControlsDesktop,\n});\n\nexport {\n SidePanelDesktop,\n SidePanelDesktopComponent as SidePanelComponentDesktop,\n ContentDesktop,\n HeaderDesktop,\n FooterDesktop,\n ControlsDesktop,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,yBAAyB,GAAG,UAAU,CACxC,CACI,EACI,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,sBAAsB,GAAG,EAAE,EAC3B,aAAa,EACb,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAG,EAAE,CAAC;AACf,QAAA,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,KAAK,OAAO;AAChD,QAAA,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS,KAAK,MAAM;AACjD,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,CAAC;AACd,QAAA,CAAC,WAAW,CAAC,eAAe,GAAG,SAAS,KAAK,OAAO;AACpD,QAAA,CAAC,WAAW,CAAC,cAAc,GAAG,SAAS,KAAK,MAAM;AACrD,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAC7C,CAAC,IAAI,EAAE,UAAU,CAAC,CACrB;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAA,GACC,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAC/B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAC5E,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE;AACpB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,WAAW,CAAC,WAAW;gBACrC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,QAAQ,EAAE,MAAM;AACnB,aAAA;AACD,YAAA,GAAG,sBAAsB;AAC5B,SAAA,EAAA,EAEA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAChC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAChE,CACI,CACZ;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,aAAa,GAAG;AAChB,MAAA,eAAe,GAAG;AAExB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;AAC9D,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AAC5B,CAAA;;;;"}
1
+ {"version":3,"file":"Component.desktop.js","sources":["../../src/desktop/Component.desktop.tsx"],"sourcesContent":["import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\n\nimport { type BaseModalProps } from '@alfalab/core-components-base-modal';\nimport { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';\n\nimport { ContentDesktop } from '../components/content/Component.desktop';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterDesktop } from '../components/footer/Component.desktop';\nimport { Header, type HeaderProps } from '../components/header/Component';\nimport { SIZE_TO_CLASSNAME_MAP } from '../consts';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './desktop.module.css';\nimport transitions from './transitions.desktop.module.css';\n\nexport type SidePanelDesktopProps = BaseModalProps &\n Pick<DrawerProps, 'placement' | 'nativeScrollbar' | 'contentTransitionProps'> & {\n /**\n * Ширина модального окна\n * @default \"s\"\n */\n size?: 's' | 500;\n\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n };\n\nconst SidePanelDesktopComponent = forwardRef<HTMLDivElement, SidePanelDesktopProps>(\n (\n {\n size = 500,\n children,\n className,\n wrapperClassName,\n contentTransitionProps = {},\n backdropProps,\n placement = 'right',\n dataTestId,\n ...restProps\n },\n ref,\n ) => {\n const responsiveContext = useContext(ResponsiveContext);\n const modalRef = useRef<HTMLElement>(null);\n\n const enterCn = cn({\n [transitions.appearRight]: placement === 'right',\n [transitions.appearLeft]: placement === 'left',\n });\n\n const exitCn = cn({\n [transitions.exitActiveRight]: placement === 'right',\n [transitions.exitActiveLeft]: placement === 'left',\n });\n\n const contextValue = React.useMemo<TResponsiveModalContext>(\n () => ({ size, view: 'desktop', dataTestId }),\n [size, dataTestId],\n );\n\n const renderContent = () => (\n <Drawer\n {...restProps}\n dataTestId={dataTestId}\n ref={mergeRefs([ref, modalRef])}\n placement={placement}\n wrapperClassName={wrapperClassName}\n className={cn(className, styles[SIZE_TO_CLASSNAME_MAP[size]], styles.hidden)}\n backdropProps={backdropProps}\n contentTransitionProps={{\n classNames: {\n appear: enterCn,\n enter: enterCn,\n appearActive: transitions.enterActive,\n enterActive: transitions.enterActive,\n exit: transitions.exit,\n exitActive: exitCn,\n exitDone: exitCn,\n },\n ...contentTransitionProps,\n }}\n >\n {React.Children.map(children, (child) =>\n isValidElement(child) ? cloneElement(child, { size }) : child,\n )}\n </Drawer>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst HeaderDesktop = Header as React.FC<Omit<HeaderProps, 'titleSize' | 'subtitle'>>;\nconst ControlsDesktop = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelDesktop = Object.assign(SidePanelDesktopComponent, {\n Content: ContentDesktop,\n Header: HeaderDesktop,\n Footer: FooterDesktop,\n Controls: ControlsDesktop,\n});\n\nexport {\n SidePanelDesktop,\n SidePanelDesktopComponent as SidePanelComponentDesktop,\n ContentDesktop,\n HeaderDesktop,\n FooterDesktop,\n ControlsDesktop,\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAiCA,MAAM,yBAAyB,GAAG,UAAU,CACxC,CACI,EACI,IAAI,GAAG,GAAG,EACV,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,sBAAsB,GAAG,EAAE,EAC3B,aAAa,EACb,SAAS,GAAG,OAAO,EACnB,UAAU,EACV,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAc,IAAI,CAAC;IAE1C,MAAM,OAAO,GAAG,EAAE,CAAC;AACf,QAAA,CAAC,WAAW,CAAC,WAAW,GAAG,SAAS,KAAK,OAAO;AAChD,QAAA,CAAC,WAAW,CAAC,UAAU,GAAG,SAAS,KAAK,MAAM;AACjD,KAAA,CAAC;IAEF,MAAM,MAAM,GAAG,EAAE,CAAC;AACd,QAAA,CAAC,WAAW,CAAC,eAAe,GAAG,SAAS,KAAK,OAAO;AACpD,QAAA,CAAC,WAAW,CAAC,cAAc,GAAG,SAAS,KAAK,MAAM;AACrD,KAAA,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAC9B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAC7C,CAAC,IAAI,EAAE,UAAU,CAAC,CACrB;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAA,GACC,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAC/B,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAC5E,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EAAE;AACpB,YAAA,UAAU,EAAE;AACR,gBAAA,MAAM,EAAE,OAAO;AACf,gBAAA,KAAK,EAAE,OAAO;gBACd,YAAY,EAAE,WAAW,CAAC,WAAW;gBACrC,WAAW,EAAE,WAAW,CAAC,WAAW;gBACpC,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,gBAAA,UAAU,EAAE,MAAM;AAClB,gBAAA,QAAQ,EAAE,MAAM;AACnB,aAAA;AACD,YAAA,GAAG,sBAAsB;AAC5B,SAAA,EAAA,EAEA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAChC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAChE,CACI,CACZ;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,aAAa,GAAG;AAChB,MAAA,eAAe,GAAG;AAExB,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAyB,EAAE;AAC9D,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,QAAQ,EAAE,eAAe;AAC5B,CAAA;;;;"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  :root {
2
4
  --side-panel-s-width: 500px;
3
5
  }
@@ -11,7 +11,9 @@
11
11
  .enterActive {
12
12
  opacity: 1;
13
13
  transform: translateX(0);
14
- transition: opacity 200ms ease-in, transform 200ms ease-in;
14
+ transition:
15
+ opacity 200ms ease-in,
16
+ transform 200ms ease-in;
15
17
  }
16
18
 
17
19
  .exit {
@@ -21,12 +23,16 @@
21
23
 
22
24
  .exitActiveRight {
23
25
  opacity: 0;
24
- transition: opacity 200ms ease-out, transform 200ms ease-out;
26
+ transition:
27
+ opacity 200ms ease-out,
28
+ transform 200ms ease-out;
25
29
  transform: translateX(15px);
26
30
  }
27
31
 
28
32
  .exitActiveLeft {
29
33
  opacity: 0;
30
- transition: opacity 200ms ease-out, transform 200ms ease-out;
34
+ transition:
35
+ opacity 200ms ease-out,
36
+ transform 200ms ease-out;
31
37
  transform: translateX(-15px);
32
38
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
- import { BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
2
+ import { type BaseModalProps } from '@alfalab/core-components-base-modal/moderncssm';
3
3
  import { ContentMobile } from '../components/content/Component.mobile';
4
- import { ControlsProps } from '../components/controls';
4
+ import { type ControlsProps } from '../components/controls';
5
5
  import { FooterMobile } from '../components/footer/Component.mobile';
6
6
  import { Header } from '../components/header/Component';
7
7
  export declare type SidePanelMobileProps = BaseModalProps & {
@@ -1 +1 @@
1
- {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef, useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { BaseModal, BaseModalProps } from '@alfalab/core-components-base-modal';\n\nimport { ContentMobile } from '../components/content/Component.mobile';\nimport { Controls, ControlsProps } from '../components/controls';\nimport { FooterMobile } from '../components/footer/Component.mobile';\nimport { Header } from '../components/header/Component';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { TResponsiveModalContext } from '../typings';\n\nimport styles from './mobile.module.css';\nimport transitions from './transitions.mobile.module.css';\n\nexport type SidePanelMobileProps = BaseModalProps & {\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n};\n\nconst SidePanelMobileComponent = forwardRef<HTMLDivElement, SidePanelMobileProps>(\n ({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {\n const responsiveContext = useContext(ResponsiveContext);\n const contextValue = useMemo<TResponsiveModalContext>(\n () => ({ size: 500, view: 'mobile', dataTestId }),\n [dataTestId],\n );\n\n const renderContent = () => (\n <BaseModal\n {...restProps}\n dataTestId={dataTestId}\n ref={ref}\n transitionProps={{\n classNames: transitions,\n ...transitionProps,\n }}\n className={cn(className, styles.component)}\n scrollHandler='content'\n contentProps={{\n ...restProps.contentProps,\n className: cn(styles.content, restProps.contentProps?.className),\n }}\n >\n <div className={styles.mobileContent}>{children}</div>\n </BaseModal>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst ControlsMobile = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelMobile = Object.assign(SidePanelMobileComponent, {\n Content: ContentMobile,\n Header,\n Footer: FooterMobile,\n Controls: ControlsMobile,\n});\n\nexport {\n SidePanelMobile,\n SidePanelMobileComponent as SidePanelComponentMobile,\n ContentMobile,\n Header as HeaderMobile,\n FooterMobile,\n ControlsMobile,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAuBM,MAAA,wBAAwB,GAAG,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;AACxE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,UAAU,CAAC,CACf;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;AACb,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,GAAG,eAAe;AACrB,SAAA,EACD,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC1C,aAAa,EAAC,SAAS,EACvB,YAAY,EAAE;YACV,GAAG,SAAS,CAAC,YAAY;AACzB,YAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC;AACnE,SAAA,EAAA;QAED,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,IAAG,QAAQ,CAAO,CAC9C,CACf;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,cAAc,GAAG;AAEvB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;AAC5D,IAAA,OAAO,EAAE,aAAa;IACtB,MAAM;AACN,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,QAAQ,EAAE,cAAc;AAC3B,CAAA;;;;"}
1
+ {"version":3,"file":"Component.mobile.js","sources":["../../src/mobile/Component.mobile.tsx"],"sourcesContent":["import React, { forwardRef, useContext, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { BaseModal, type BaseModalProps } from '@alfalab/core-components-base-modal';\n\nimport { ContentMobile } from '../components/content/Component.mobile';\nimport { Controls, type ControlsProps } from '../components/controls';\nimport { FooterMobile } from '../components/footer/Component.mobile';\nimport { Header } from '../components/header/Component';\nimport { ResponsiveContext } from '../ResponsiveContext';\nimport { type TResponsiveModalContext } from '../typings';\n\nimport styles from './mobile.module.css';\nimport transitions from './transitions.mobile.module.css';\n\nexport type SidePanelMobileProps = BaseModalProps & {\n /**\n * Управление наличием закрывающего крестика\n * @default false\n */\n hasCloser?: boolean;\n};\n\nconst SidePanelMobileComponent = forwardRef<HTMLDivElement, SidePanelMobileProps>(\n ({ children, className, transitionProps, dataTestId, ...restProps }, ref) => {\n const responsiveContext = useContext(ResponsiveContext);\n const contextValue = useMemo<TResponsiveModalContext>(\n () => ({ size: 500, view: 'mobile', dataTestId }),\n [dataTestId],\n );\n\n const renderContent = () => (\n <BaseModal\n {...restProps}\n dataTestId={dataTestId}\n ref={ref}\n transitionProps={{\n classNames: transitions,\n ...transitionProps,\n }}\n className={cn(className, styles.component)}\n scrollHandler='content'\n contentProps={{\n ...restProps.contentProps,\n className: cn(styles.content, restProps.contentProps?.className),\n }}\n >\n <div className={styles.mobileContent}>{children}</div>\n </BaseModal>\n );\n\n const renderWithContext = () => (\n <ResponsiveContext.Provider value={contextValue}>\n {renderContent()}\n </ResponsiveContext.Provider>\n );\n\n return responsiveContext ? renderContent() : renderWithContext();\n },\n);\n\nconst ControlsMobile = Controls as React.FC<Omit<ControlsProps, 'mobileLayout'>>;\n\nconst SidePanelMobile = Object.assign(SidePanelMobileComponent, {\n Content: ContentMobile,\n Header,\n Footer: FooterMobile,\n Controls: ControlsMobile,\n});\n\nexport {\n SidePanelMobile,\n SidePanelMobileComponent as SidePanelComponentMobile,\n ContentMobile,\n Header as HeaderMobile,\n FooterMobile,\n ControlsMobile,\n};\n"],"names":[],"mappings":";;;;;;;;;;;AAuBM,MAAA,wBAAwB,GAAG,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;AACxE,IAAA,MAAM,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CACxB,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EACjD,CAAC,UAAU,CAAC,CACf;IAED,MAAM,aAAa,GAAG,OAClB,KAAA,CAAA,aAAA,CAAC,SAAS,EACF,EAAA,GAAA,SAAS,EACb,UAAU,EAAE,UAAU,EACtB,GAAG,EAAE,GAAG,EACR,eAAe,EAAE;AACb,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,GAAG,eAAe;AACrB,SAAA,EACD,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAC1C,aAAa,EAAC,SAAS,EACvB,YAAY,EAAE;YACV,GAAG,SAAS,CAAC,YAAY;AACzB,YAAA,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC;AACnE,SAAA,EAAA;QAED,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,IAAG,QAAQ,CAAO,CAC9C,CACf;AAED,IAAA,MAAM,iBAAiB,GAAG,OACtB,oBAAC,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,YAAY,EAAA,EAC1C,aAAa,EAAE,CACS,CAChC;IAED,OAAO,iBAAiB,GAAG,aAAa,EAAE,GAAG,iBAAiB,EAAE;AACpE,CAAC;AAGC,MAAA,cAAc,GAAG;AAEvB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,EAAE;AAC5D,IAAA,OAAO,EAAE,aAAa;IACtB,MAAM;AACN,IAAA,MAAM,EAAE,YAAY;AACpB,IAAA,QAAQ,EAAE,cAAc;AAC3B,CAAA;;;;"}
@@ -17,7 +17,7 @@
17
17
  @media (display-mode: standalone) {
18
18
  .content {
19
19
  padding-top: var(--sat);
20
- padding-bottom: var(--sab)
20
+ padding-bottom: var(--sab);
21
21
  }
22
22
  }
23
23
  .mobileContent {
@@ -8,7 +8,9 @@
8
8
  .enterActive {
9
9
  opacity: 1;
10
10
  transform: translateY(0);
11
- transition: opacity 200ms ease-in, transform 200ms ease-in;
11
+ transition:
12
+ opacity 200ms ease-in,
13
+ transform 200ms ease-in;
12
14
  }
13
15
 
14
16
  .exit {
@@ -20,5 +22,7 @@
20
22
  .exitDone {
21
23
  opacity: 0;
22
24
  transform: translateY(15px);
23
- transition: opacity 200ms ease-out, transform 200ms ease-out;
25
+ transition:
26
+ opacity 200ms ease-out,
27
+ transform 200ms ease-out;
24
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-side-panel",
3
- "version": "6.0.1",
3
+ "version": "6.0.3",
4
4
  "description": "SidePanel component",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -13,7 +13,7 @@
13
13
  "@alfalab/core-components-base-modal": "^6.0.1",
14
14
  "@alfalab/core-components-drawer": "^6.0.1",
15
15
  "@alfalab/core-components-mq": "^5.0.1",
16
- "@alfalab/core-components-navigation-bar-private": "^1.0.1",
16
+ "@alfalab/core-components-navigation-bar-private": "^1.1.0",
17
17
  "@alfalab/core-components-shared": "^1.1.0",
18
18
  "classnames": "^2.5.1",
19
19
  "react-merge-refs": "^1.1.0",
@@ -27,6 +27,6 @@
27
27
  "access": "public",
28
28
  "directory": "dist"
29
29
  },
30
- "themesVersion": "14.1.0",
31
- "varsVersion": "10.1.0"
30
+ "themesVersion": "14.1.3",
31
+ "varsVersion": "10.1.1"
32
32
  }
@@ -1,7 +1,7 @@
1
- import React, { FC, forwardRef, useContext, useMemo } from 'react';
1
+ import React, { type FC, forwardRef, useContext, useMemo } from 'react';
2
2
 
3
- import { BaseModalProps } from '@alfalab/core-components-base-modal';
4
- import { DrawerProps } from '@alfalab/core-components-drawer';
3
+ import { type BaseModalProps } from '@alfalab/core-components-base-modal';
4
+ import { type DrawerProps } from '@alfalab/core-components-drawer';
5
5
  import { useIsDesktop } from '@alfalab/core-components-mq';
6
6
 
7
7
  import { Controls } from './components/controls';
@@ -9,7 +9,7 @@ import { Header } from './components/header/Component';
9
9
  import { SidePanelDesktop } from './desktop';
10
10
  import { SidePanelMobile } from './mobile';
11
11
  import { ResponsiveContext } from './ResponsiveContext';
12
- import { TResponsiveModalContext } from './typings';
12
+ import { type TResponsiveModalContext } from './typings';
13
13
 
14
14
  export type SidePanelResponsiveProps = BaseModalProps &
15
15
  Pick<DrawerProps, 'contentTransitionProps' | 'placement' | 'nativeScrollbar'> & {
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
 
3
- import type { TResponsiveModalContext } from './typings';
3
+ import { type TResponsiveModalContext } from './typings';
4
4
 
5
5
  export const ResponsiveContext = React.createContext<TResponsiveModalContext>(null);
@@ -1,9 +1,9 @@
1
- import React, { FC } from 'react';
1
+ import React, { type FC } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { SIZE_TO_CLASSNAME_MAP } from '../../consts';
5
5
 
6
- import { Content, ContentProps } from './Component';
6
+ import { Content, type ContentProps } from './Component';
7
7
 
8
8
  import styles from './desktop.module.css';
9
9
 
@@ -1,7 +1,7 @@
1
- import React, { FC } from 'react';
1
+ import React, { type FC } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import { Content, ContentProps } from './Component';
4
+ import { Content, type ContentProps } from './Component';
5
5
 
6
6
  import styles from './mobile.module.css';
7
7
 
@@ -1,4 +1,4 @@
1
- import React, { FC, ReactNode, Ref, useContext } from 'react';
1
+ import React, { type FC, type ReactNode, type Ref, useContext } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { getDataTestId } from '@alfalab/core-components-shared';
@@ -1,4 +1,4 @@
1
- import React, { ReactNode, useContext } from 'react';
1
+ import React, { type ReactNode, useContext } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { getDataTestId } from '@alfalab/core-components-shared';
@@ -1,9 +1,9 @@
1
- import React, { FC } from 'react';
1
+ import React, { type FC } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { SIZE_TO_CLASSNAME_MAP } from '../../consts';
5
5
 
6
- import { Footer, FooterProps } from './Component';
6
+ import { Footer, type FooterProps } from './Component';
7
7
 
8
8
  import styles from './desktop.module.css';
9
9
 
@@ -1,7 +1,7 @@
1
- import React, { FC } from 'react';
1
+ import React, { type FC } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import { Footer, FooterProps } from './Component';
4
+ import { Footer, type FooterProps } from './Component';
5
5
 
6
6
  import styles from './mobile.module.css';
7
7
 
@@ -1,4 +1,4 @@
1
- import React, { FC, ReactNode, useContext, useEffect } from 'react';
1
+ import React, { type FC, type ReactNode, useContext, useEffect } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { getDataTestId } from '@alfalab/core-components-shared';
@@ -54,6 +54,10 @@ export const Footer: FC<FooterProps> = ({
54
54
 
55
55
  useEffect(() => {
56
56
  setHasFooter(true);
57
+
58
+ return () => {
59
+ setHasFooter(false);
60
+ };
57
61
  }, [setHasFooter]);
58
62
 
59
63
  return (
@@ -3,7 +3,9 @@
3
3
  .footer {
4
4
  width: 100%;
5
5
  box-sizing: border-box;
6
- transition: box-shadow 0.2s ease, background 0.2s ease;
6
+ transition:
7
+ box-shadow 0.2s ease,
8
+ background 0.2s ease;
7
9
  }
8
10
 
9
11
  .sticky {
@@ -1,9 +1,9 @@
1
- import React, { FC, useContext, useEffect } from 'react';
1
+ import React, { type FC, useContext, useEffect } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import {
5
5
  NavigationBarPrivate,
6
- NavigationBarPrivateProps,
6
+ type NavigationBarPrivateProps,
7
7
  } from '@alfalab/core-components-navigation-bar-private';
8
8
  import { getDataTestId } from '@alfalab/core-components-shared';
9
9
 
@@ -3,7 +3,9 @@
3
3
  .header {
4
4
  width: 100%;
5
5
  box-sizing: border-box;
6
- transition: box-shadow 0.2s ease, background 0.2s ease;
6
+ transition:
7
+ box-shadow 0.2s ease,
8
+ background 0.2s ease;
7
9
 
8
10
  &:not(.hasContent) {
9
11
  pointer-events: none;
@@ -2,16 +2,16 @@ import React, { cloneElement, forwardRef, isValidElement, useContext, useRef } f
2
2
  import mergeRefs from 'react-merge-refs';
3
3
  import cn from 'classnames';
4
4
 
5
- import { BaseModalProps } from '@alfalab/core-components-base-modal';
6
- import { Drawer, DrawerProps } from '@alfalab/core-components-drawer';
5
+ import { type BaseModalProps } from '@alfalab/core-components-base-modal';
6
+ import { Drawer, type DrawerProps } from '@alfalab/core-components-drawer';
7
7
 
8
8
  import { ContentDesktop } from '../components/content/Component.desktop';
9
- import { Controls, ControlsProps } from '../components/controls';
9
+ import { Controls, type ControlsProps } from '../components/controls';
10
10
  import { FooterDesktop } from '../components/footer/Component.desktop';
11
- import { Header, HeaderProps } from '../components/header/Component';
11
+ import { Header, type HeaderProps } from '../components/header/Component';
12
12
  import { SIZE_TO_CLASSNAME_MAP } from '../consts';
13
13
  import { ResponsiveContext } from '../ResponsiveContext';
14
- import { TResponsiveModalContext } from '../typings';
14
+ import { type TResponsiveModalContext } from '../typings';
15
15
 
16
16
  import styles from './desktop.module.css';
17
17
  import transitions from './transitions.desktop.module.css';
@@ -1,6 +1,8 @@
1
1
  @define-mixin exit-active {
2
2
  opacity: 0;
3
- transition: opacity 200ms ease-out, transform 200ms ease-out;
3
+ transition:
4
+ opacity 200ms ease-out,
5
+ transform 200ms ease-out;
4
6
  }
5
7
 
6
8
  .enterRight {
@@ -16,7 +18,9 @@
16
18
  .enterActive {
17
19
  opacity: 1;
18
20
  transform: translateX(0);
19
- transition: opacity 200ms ease-in, transform 200ms ease-in;
21
+ transition:
22
+ opacity 200ms ease-in,
23
+ transform 200ms ease-in;
20
24
  }
21
25
 
22
26
  .exit {
@@ -1,14 +1,14 @@
1
1
  import React, { forwardRef, useContext, useMemo } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
- import { BaseModal, BaseModalProps } from '@alfalab/core-components-base-modal';
4
+ import { BaseModal, type BaseModalProps } from '@alfalab/core-components-base-modal';
5
5
 
6
6
  import { ContentMobile } from '../components/content/Component.mobile';
7
- import { Controls, ControlsProps } from '../components/controls';
7
+ import { Controls, type ControlsProps } from '../components/controls';
8
8
  import { FooterMobile } from '../components/footer/Component.mobile';
9
9
  import { Header } from '../components/header/Component';
10
10
  import { ResponsiveContext } from '../ResponsiveContext';
11
- import { TResponsiveModalContext } from '../typings';
11
+ import { type TResponsiveModalContext } from '../typings';
12
12
 
13
13
  import styles from './mobile.module.css';
14
14
  import transitions from './transitions.mobile.module.css';