@invoicebox/ui 0.1.0-alpha.294 → 0.1.0-alpha.296

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 (294) hide show
  1. package/README.md +28 -28
  2. package/dist/breakpoints/index.d.ts +7 -7
  3. package/dist/components/_helpers/StoryBorderWrapper/index.d.ts +2 -2
  4. package/dist/components/_helpers/selectOptions.d.ts +4 -4
  5. package/dist/components/common/AppCardLink/components/ApkRu.d.ts +4 -4
  6. package/dist/components/common/AppCardLink/components/AppGalleryRu.d.ts +4 -4
  7. package/dist/components/common/AppCardLink/components/GooglePlayRu.d.ts +4 -4
  8. package/dist/components/common/AppCardLink/components/RuStoreRu.d.ts +4 -4
  9. package/dist/components/common/AppCardLink/constants.d.ts +4 -4
  10. package/dist/components/common/AppCardLink/index.d.ts +8 -8
  11. package/dist/components/common/AppCardLink/index.stories.d.ts +10 -10
  12. package/dist/components/common/AppCardLink/styles.d.ts +2 -2
  13. package/dist/components/common/Arrow/components/StyledSvg/index.d.ts +8 -8
  14. package/dist/components/common/Arrow/components/StyledSvg/index.stories.d.ts +5 -5
  15. package/dist/components/common/Arrow/components/Svg/index.d.ts +6 -6
  16. package/dist/components/common/Arrow/components/Svg/index.stories.d.ts +6 -6
  17. package/dist/components/common/Arrow/index.d.ts +10 -10
  18. package/dist/components/common/Arrow/index.stories.d.ts +6 -6
  19. package/dist/components/common/Arrow/palette.d.ts +6 -6
  20. package/dist/components/common/BgCard/index.d.ts +6 -6
  21. package/dist/components/common/BgCard/index.stories.d.ts +5 -5
  22. package/dist/components/common/BgCard/palette.d.ts +5 -5
  23. package/dist/components/common/BgCard/styles.d.ts +6 -6
  24. package/dist/components/common/Calendar/docs.stories.d.ts +6 -6
  25. package/dist/components/common/Calendar/index.d.ts +18 -18
  26. package/dist/components/common/Calendar/index.stories.d.ts +7 -7
  27. package/dist/components/common/Calendar/palette.d.ts +11 -11
  28. package/dist/components/common/Calendar/styles.d.ts +14 -14
  29. package/dist/components/common/Chip/index.d.ts +9 -9
  30. package/dist/components/common/Chip/index.stories.d.ts +5 -5
  31. package/dist/components/common/Chip/styles.d.ts +7 -7
  32. package/dist/components/common/Divider/index.d.ts +7 -7
  33. package/dist/components/common/Divider/index.stories.d.ts +6 -6
  34. package/dist/components/common/Divider/palette.d.ts +5 -5
  35. package/dist/components/common/Divider/styles.d.ts +6 -6
  36. package/dist/components/common/Drawer/index.d.ts +13 -13
  37. package/dist/components/common/Drawer/index.js +83 -16
  38. package/dist/components/common/Drawer/index.stories.d.ts +7 -7
  39. package/dist/components/common/Drawer/palette.d.ts +8 -8
  40. package/dist/components/common/Drawer/styles.d.ts +24 -703
  41. package/dist/components/common/Drawer/styles.js +48 -35
  42. package/dist/components/common/Dropdown/index.d.ts +16 -16
  43. package/dist/components/common/Dropdown/index.js +63 -13
  44. package/dist/components/common/Dropdown/index.stories.d.ts +6 -6
  45. package/dist/components/common/Dropdown/palette.d.ts +6 -6
  46. package/dist/components/common/Dropdown/styles.d.ts +17 -15
  47. package/dist/components/common/Dropdown/styles.js +17 -3
  48. package/dist/components/common/EntityAutocompleteOptionsDrawer/index.d.ts +17 -17
  49. package/dist/components/common/EntityAutocompleteOptionsDrawer/index.stories.d.ts +12 -12
  50. package/dist/components/common/EntityAutocompleteOptionsDrawer/palette.d.ts +5 -5
  51. package/dist/components/common/EntityAutocompleteOptionsDrawer/styles.d.ts +9 -9
  52. package/dist/components/common/Flag/components/ArmFlag/index.d.ts +1 -1
  53. package/dist/components/common/Flag/components/ArmFlag/index.stories.d.ts +5 -5
  54. package/dist/components/common/Flag/components/AzeFlag/index.d.ts +1 -1
  55. package/dist/components/common/Flag/components/AzeFlag/index.stories.d.ts +5 -5
  56. package/dist/components/common/Flag/components/BlrFlag/index.d.ts +1 -1
  57. package/dist/components/common/Flag/components/BlrFlag/index.stories.d.ts +5 -5
  58. package/dist/components/common/Flag/components/ChnFlag/index.d.ts +1 -1
  59. package/dist/components/common/Flag/components/ChnFlag/index.stories.d.ts +5 -5
  60. package/dist/components/common/Flag/components/EngFlag/index.d.ts +1 -1
  61. package/dist/components/common/Flag/components/EngFlag/index.stories.d.ts +5 -5
  62. package/dist/components/common/Flag/components/EspFlag/index.d.ts +1 -1
  63. package/dist/components/common/Flag/components/EspFlag/index.stories.d.ts +5 -5
  64. package/dist/components/common/Flag/components/KazFlag/index.d.ts +1 -1
  65. package/dist/components/common/Flag/components/KazFlag/index.stories.d.ts +5 -5
  66. package/dist/components/common/Flag/components/KgzFlag/index.d.ts +1 -1
  67. package/dist/components/common/Flag/components/KgzFlag/index.stories.d.ts +5 -5
  68. package/dist/components/common/Flag/components/MdaFlag/index.d.ts +1 -1
  69. package/dist/components/common/Flag/components/MdaFlag/index.stories.d.ts +5 -5
  70. package/dist/components/common/Flag/components/RusFlag/index.d.ts +1 -1
  71. package/dist/components/common/Flag/components/RusFlag/index.stories.d.ts +5 -5
  72. package/dist/components/common/Flag/components/TjkFlag/index.d.ts +1 -1
  73. package/dist/components/common/Flag/components/TjkFlag/index.stories.d.ts +5 -5
  74. package/dist/components/common/Flag/components/UnknownFlag/index.d.ts +1 -1
  75. package/dist/components/common/Flag/components/UnknownFlag/index.stories.d.ts +5 -5
  76. package/dist/components/common/Flag/components/UzbFlag/index.d.ts +1 -1
  77. package/dist/components/common/Flag/components/UzbFlag/index.stories.d.ts +5 -5
  78. package/dist/components/common/Flag/index.d.ts +11 -11
  79. package/dist/components/common/Flag/index.stories.d.ts +6 -6
  80. package/dist/components/common/Flag/styles.d.ts +4 -4
  81. package/dist/components/common/InvoiceboxLogo/components/LogoDarkRu.d.ts +6 -6
  82. package/dist/components/common/InvoiceboxLogo/index.d.ts +5 -5
  83. package/dist/components/common/InvoiceboxLogo/index.stories.d.ts +10 -10
  84. package/dist/components/common/InvoiceboxSpinner/index.d.ts +7 -7
  85. package/dist/components/common/InvoiceboxSpinner/index.stories.d.ts +10 -10
  86. package/dist/components/common/InvoiceboxSpinner/palette.d.ts +6 -6
  87. package/dist/components/common/InvoiceboxSpinner/styles.d.ts +4 -4
  88. package/dist/components/common/PointsLoader/index.d.ts +1 -1
  89. package/dist/components/common/PointsLoader/index.stories.d.ts +9 -9
  90. package/dist/components/common/PointsLoader/palette.d.ts +6 -6
  91. package/dist/components/common/PointsLoader/styles.d.ts +6 -6
  92. package/dist/components/common/QRCode/index.d.ts +16 -16
  93. package/dist/components/common/QRCode/index.stories.d.ts +5 -5
  94. package/dist/components/common/ReadOnlyLabelValueField/index.d.ts +8 -8
  95. package/dist/components/common/ReadOnlyLabelValueField/index.stories.d.ts +5 -5
  96. package/dist/components/common/ReadOnlyLabelValueField/palette.d.ts +5 -5
  97. package/dist/components/common/ReadOnlyLabelValueField/styles.d.ts +6 -6
  98. package/dist/components/common/Scrollbar/index.d.ts +8 -8
  99. package/dist/components/common/Scrollbar/index.stories.d.ts +13 -13
  100. package/dist/components/common/Scrollbar/palette.d.ts +5 -5
  101. package/dist/components/common/Scrollbar/styles.d.ts +7 -7
  102. package/dist/components/common/SecondaryButton/index.d.ts +17 -17
  103. package/dist/components/common/SecondaryButton/index.stories.d.ts +11 -11
  104. package/dist/components/common/SecondaryButton/palette.d.ts +8 -8
  105. package/dist/components/common/SecondaryButton/styles.d.ts +13 -13
  106. package/dist/components/common/Skeleton/index.d.ts +8 -8
  107. package/dist/components/common/Skeleton/index.stories.d.ts +11 -11
  108. package/dist/components/common/Skeleton/palette.d.ts +6 -6
  109. package/dist/components/common/Skeleton/styles.d.ts +10 -10
  110. package/dist/components/common/Toast/docs.stories.d.ts +6 -6
  111. package/dist/components/common/Toast/index.d.ts +6 -6
  112. package/dist/components/common/Toast/index.stories.d.ts +11 -11
  113. package/dist/components/common/Toast/palette.d.ts +7 -7
  114. package/dist/components/common/Toast/styles.d.ts +7 -7
  115. package/dist/components/common/Typography/docs.stories.d.ts +6 -6
  116. package/dist/components/common/Typography/index.d.ts +31 -31
  117. package/dist/components/common/Typography/index.stories.d.ts +11 -11
  118. package/dist/components/common/Typography/styles.d.ts +5 -5
  119. package/dist/components/common/Typography/typography.d.ts +23 -23
  120. package/dist/components/common/WarningIcon/components/Icon.d.ts +6 -6
  121. package/dist/components/common/WarningIcon/index.d.ts +7 -7
  122. package/dist/components/common/WarningIcon/index.stories.d.ts +5 -5
  123. package/dist/components/common/WarningIcon/palette.d.ts +5 -5
  124. package/dist/components/common/WarningIcon/styles.d.ts +10 -10
  125. package/dist/components/common/_helpers/selectOptions.d.ts +9 -9
  126. package/dist/components/form/Autocomplete/components/Autocomplete/index.d.ts +38 -38
  127. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +3 -1
  128. package/dist/components/form/Autocomplete/components/Autocomplete/index.stories.d.ts +8 -8
  129. package/dist/components/form/Autocomplete/components/Autocomplete/styles.d.ts +14 -14
  130. package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/index.d.ts +6 -6
  131. package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/index.stories.d.ts +5 -5
  132. package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/palette.d.ts +5 -5
  133. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.d.ts +11 -11
  134. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.stories.d.ts +6 -6
  135. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/palette.d.ts +8 -8
  136. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/styles.d.ts +18 -18
  137. package/dist/components/form/Autocomplete/index.d.ts +4 -4
  138. package/dist/components/form/CodeInput/index.d.ts +11 -11
  139. package/dist/components/form/CodeInput/index.stories.d.ts +6 -6
  140. package/dist/components/form/CodeInput/palette.d.ts +6 -6
  141. package/dist/components/form/CodeInput/styles.d.ts +10 -10
  142. package/dist/components/form/CountrySelect/components/CountryItem/index.d.ts +13 -13
  143. package/dist/components/form/CountrySelect/components/CountryItem/index.stories.d.ts +5 -5
  144. package/dist/components/form/CountrySelect/components/CountryItem/stlyes.d.ts +9 -9
  145. package/dist/components/form/CountrySelect/index.d.ts +22 -22
  146. package/dist/components/form/CountrySelect/index.js +3 -1
  147. package/dist/components/form/CountrySelect/index.stories.d.ts +5 -5
  148. package/dist/components/form/CountrySelect/logic.d.ts +5 -5
  149. package/dist/components/form/CountrySelect/palette.d.ts +9 -9
  150. package/dist/components/form/CountrySelect/stlyes.d.ts +8 -8
  151. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.d.ts +12 -12
  152. package/dist/components/form/CurrencyInput/CoreCurrencyInput/index.stories.d.ts +5 -5
  153. package/dist/components/form/CurrencyInput/CoreCurrencyInput/styles.d.ts +15 -15
  154. package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.d.ts +6 -6
  155. package/dist/components/form/CurrencyInput/CurrencyInputNumber/index.stories.d.ts +5 -5
  156. package/dist/components/form/CurrencyInput/CurrencyInputString/index.d.ts +6 -6
  157. package/dist/components/form/CurrencyInput/CurrencyInputString/index.stories.d.ts +5 -5
  158. package/dist/components/form/CurrencyInput/README.md +24 -24
  159. package/dist/components/form/DateInput/components/CalendarIcon/index.d.ts +1 -1
  160. package/dist/components/form/DateInput/components/CalendarIcon/index.stories.d.ts +5 -5
  161. package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.d.ts +9 -9
  162. package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/index.stories.d.ts +6 -6
  163. package/dist/components/form/DateInput/components/MobileDrawerDateCalendar/styles.d.ts +2 -2
  164. package/dist/components/form/DateInput/docs.stories.d.ts +6 -6
  165. package/dist/components/form/DateInput/index.d.ts +17 -17
  166. package/dist/components/form/DateInput/index.js +3 -1
  167. package/dist/components/form/DateInput/index.stories.d.ts +6 -6
  168. package/dist/components/form/DateInput/logic.d.ts +12 -12
  169. package/dist/components/form/DateInput/palette.d.ts +5 -5
  170. package/dist/components/form/DateInput/styles.d.ts +8 -8
  171. package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.d.ts +14 -14
  172. package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.stories.d.ts +6 -6
  173. package/dist/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.d.ts +3 -3
  174. package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/index.d.ts +8 -8
  175. package/dist/components/form/DateTimeInput/components/MobileNumbersColumn/styles.d.ts +7 -7
  176. package/dist/components/form/DateTimeInput/components/TimePicker/index.d.ts +9 -9
  177. package/dist/components/form/DateTimeInput/components/TimePicker/index.stories.d.ts +5 -5
  178. package/dist/components/form/DateTimeInput/components/TimePicker/palette.d.ts +10 -10
  179. package/dist/components/form/DateTimeInput/components/TimePicker/styles.d.ts +22 -22
  180. package/dist/components/form/DateTimeInput/hooks/useStringValue.d.ts +1 -1
  181. package/dist/components/form/DateTimeInput/hooks/useTimePickerHeight.d.ts +6 -6
  182. package/dist/components/form/DateTimeInput/index.d.ts +19 -19
  183. package/dist/components/form/DateTimeInput/index.js +3 -1
  184. package/dist/components/form/DateTimeInput/index.stories.d.ts +6 -6
  185. package/dist/components/form/DateTimeInput/palette.d.ts +10 -10
  186. package/dist/components/form/DateTimeInput/styles.d.ts +19 -19
  187. package/dist/components/form/InputLabel/index.d.ts +13 -13
  188. package/dist/components/form/InputLabel/index.stories.d.ts +5 -5
  189. package/dist/components/form/InputLabel/palette.d.ts +9 -9
  190. package/dist/components/form/InputLabel/styles.d.ts +16 -16
  191. package/dist/components/form/ModernPlaceholder/index.d.ts +12 -12
  192. package/dist/components/form/ModernPlaceholder/styles.d.ts +10 -10
  193. package/dist/components/form/PhoneInput/constants.d.ts +3 -3
  194. package/dist/components/form/PhoneInput/externalPhoneLogic.d.ts +7 -7
  195. package/dist/components/form/PhoneInput/hooks/useValidateInitialValue.d.ts +5 -5
  196. package/dist/components/form/PhoneInput/index.d.ts +27 -27
  197. package/dist/components/form/PhoneInput/index.stories.d.ts +7 -7
  198. package/dist/components/form/PhoneInput/phoneInputLogic.d.ts +32 -32
  199. package/dist/components/form/PhoneInput/styles.d.ts +4 -4
  200. package/dist/components/form/PhoneInput/types.d.ts +18 -18
  201. package/dist/components/form/PositiveIntegerInput/hooks/useFilters.d.ts +6 -6
  202. package/dist/components/form/PositiveIntegerInput/hooks/useIncrement.d.ts +4 -4
  203. package/dist/components/form/PositiveIntegerInput/hooks/useIncrementDisabledFlags.d.ts +9 -9
  204. package/dist/components/form/PositiveIntegerInput/hooks/useNormalizers.d.ts +4 -4
  205. package/dist/components/form/PositiveIntegerInput/index.d.ts +13 -13
  206. package/dist/components/form/PositiveIntegerInput/index.stories.d.ts +5 -5
  207. package/dist/components/form/PositiveIntegerInput/styles.d.ts +6 -6
  208. package/dist/components/form/PureInput/index.d.ts +32 -32
  209. package/dist/components/form/PureInput/index.stories.d.ts +5 -5
  210. package/dist/components/form/PureInput/palette.d.ts +11 -11
  211. package/dist/components/form/PureInput/styles.d.ts +28 -28
  212. package/dist/components/form/ResetButton/CrossIcon/index.d.ts +1 -1
  213. package/dist/components/form/ResetButton/CrossIcon/index.stories.d.ts +5 -5
  214. package/dist/components/form/ResetButton/index.d.ts +5 -5
  215. package/dist/components/form/ResetButton/index.stories.d.ts +5 -5
  216. package/dist/components/form/ResetButton/palette.d.ts +5 -5
  217. package/dist/components/form/ResetButton/styles.d.ts +4 -4
  218. package/dist/components/form/SearchInput/components/SearchIcon/index.d.ts +1 -1
  219. package/dist/components/form/SearchInput/components/SearchIcon/index.stories.d.ts +5 -5
  220. package/dist/components/form/SearchInput/index.d.ts +15 -15
  221. package/dist/components/form/SearchInput/index.stories.d.ts +5 -5
  222. package/dist/components/form/SearchInput/palette.d.ts +5 -5
  223. package/dist/components/form/SearchInput/styles.d.ts +7 -7
  224. package/dist/components/form/Select/components/Input/index.d.ts +17 -17
  225. package/dist/components/form/Select/components/Input/index.stories.d.ts +5 -5
  226. package/dist/components/form/Select/components/Input/styles.d.ts +5 -5
  227. package/dist/components/form/Select/components/Loader/index.d.ts +2 -2
  228. package/dist/components/form/Select/components/Loader/styles.d.ts +4 -4
  229. package/dist/components/form/Select/hooks/useOptionGroups.d.ts +5 -5
  230. package/dist/components/form/Select/index.d.ts +34 -34
  231. package/dist/components/form/Select/index.js +13 -11
  232. package/dist/components/form/Select/index.stories.d.ts +12 -12
  233. package/dist/components/form/Select/palette.d.ts +6 -6
  234. package/dist/components/form/Select/styles.d.ts +22 -22
  235. package/dist/components/form/TagsInput/assets/CrossIcon.d.ts +6 -6
  236. package/dist/components/form/TagsInput/index.d.ts +14 -14
  237. package/dist/components/form/TagsInput/index.stories.d.ts +5 -5
  238. package/dist/components/form/TagsInput/palette.d.ts +6 -6
  239. package/dist/components/form/TagsInput/styles.d.ts +19 -19
  240. package/dist/components/form/TextInput/index.d.ts +22 -22
  241. package/dist/components/form/TextInput/index.stories.d.ts +5 -5
  242. package/dist/components/form/TextInput/styles.d.ts +3 -3
  243. package/dist/components/form/Toggle/index.d.ts +9 -9
  244. package/dist/components/form/Toggle/index.stories.d.ts +5 -5
  245. package/dist/components/form/Toggle/palette.d.ts +10 -10
  246. package/dist/components/form/Toggle/styles.d.ts +24 -24
  247. package/dist/components/form/common/DrawerHeader/components/Cross24Icon/index.d.ts +1 -1
  248. package/dist/components/form/common/DrawerHeader/components/Cross24Icon/index.stories.d.ts +5 -5
  249. package/dist/components/form/common/DrawerHeader/index.d.ts +8 -8
  250. package/dist/components/form/common/DrawerHeader/index.stories.d.ts +5 -5
  251. package/dist/components/form/common/DrawerHeader/palette.d.ts +7 -7
  252. package/dist/components/form/common/DrawerHeader/styles.d.ts +11 -11
  253. package/dist/components/form/constants.d.ts +14 -14
  254. package/dist/esm/components/common/Drawer/index.js +84 -17
  255. package/dist/esm/components/common/Drawer/styles.js +47 -34
  256. package/dist/esm/components/common/Dropdown/index.js +64 -14
  257. package/dist/esm/components/common/Dropdown/styles.js +16 -2
  258. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +3 -1
  259. package/dist/esm/components/form/CountrySelect/index.js +4 -2
  260. package/dist/esm/components/form/CurrencyInput/README.md +24 -24
  261. package/dist/esm/components/form/DateInput/index.js +3 -1
  262. package/dist/esm/components/form/DateTimeInput/index.js +3 -1
  263. package/dist/esm/components/form/Select/index.js +13 -11
  264. package/dist/esm/hooks/useOutsideClick/index.js +15 -4
  265. package/dist/hooks/useInputFocus/index.d.ts +11 -11
  266. package/dist/hooks/useInputFocus/index.stories.d.ts +4 -4
  267. package/dist/hooks/useLoadingSubmit/index.d.ts +6 -6
  268. package/dist/hooks/useLoadingSubmit/index.stories.d.ts +4 -4
  269. package/dist/hooks/useMedia/index.d.ts +4 -4
  270. package/dist/hooks/useMedia/index.stories.d.ts +4 -4
  271. package/dist/hooks/useModal/index.d.ts +1 -1
  272. package/dist/hooks/useModal/index.stories.d.ts +4 -4
  273. package/dist/hooks/useOutsideClick/index.d.ts +2 -2
  274. package/dist/hooks/useOutsideClick/index.js +14 -4
  275. package/dist/hooks/useOutsideClick/index.stories.d.ts +4 -4
  276. package/dist/hooks/useUnupdatableHandler/index.d.ts +1 -1
  277. package/dist/hooks/useUnupdatableHandler/index.stories.d.ts +4 -4
  278. package/dist/index.d.ts +72 -72
  279. package/dist/palette/colors.stories.d.ts +4 -4
  280. package/dist/palette/constants.d.ts +2 -2
  281. package/dist/palette/context.d.ts +65 -65
  282. package/dist/palette/index.d.ts +4 -4
  283. package/dist/palette/index.stories.d.ts +4 -4
  284. package/dist/palette/provider.d.ts +10 -10
  285. package/dist/palette/types.d.ts +12 -12
  286. package/dist/palette/useComponentPalette.d.ts +2 -2
  287. package/dist/palette/usePalette.d.ts +32 -32
  288. package/dist/utils/hexToRgba.d.ts +1 -1
  289. package/dist/utils/transformColorByHsl.d.ts +7 -7
  290. package/dist/validate/index.d.ts +11 -11
  291. package/dist/validate/types.d.ts +1 -1
  292. package/dist/validate/utils/vatNumberValidateHelpers.d.ts +23 -23
  293. package/dist/validate/utils/websiteValidate.test.d.ts +1 -1
  294. package/package.json +77 -77
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { Cross24Icon } from './index';
3
- declare const meta: Meta<typeof Cross24Icon>;
4
- export default meta;
5
- export declare const Default: StoryObj<typeof Cross24Icon>;
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Cross24Icon } from './index';
3
+ declare const meta: Meta<typeof Cross24Icon>;
4
+ export default meta;
5
+ export declare const Default: StoryObj<typeof Cross24Icon>;
@@ -1,8 +1,8 @@
1
- import { FC } from 'react';
2
- export type TProps = {
3
- onClose: () => void;
4
- onSubmit?: () => void;
5
- label: string;
6
- isSubmitDisabled?: boolean;
7
- };
8
- export declare const DrawerHeader: FC<TProps>;
1
+ import { FC } from 'react';
2
+ export type TProps = {
3
+ onClose: () => void;
4
+ onSubmit?: () => void;
5
+ label: string;
6
+ isSubmitDisabled?: boolean;
7
+ };
8
+ export declare const DrawerHeader: FC<TProps>;
@@ -1,5 +1,5 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { DrawerHeader, TProps } from './index';
3
- declare const meta: Meta<typeof DrawerHeader>;
4
- export default meta;
5
- export declare const Default: StoryObj<TProps>;
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { DrawerHeader, TProps } from './index';
3
+ declare const meta: Meta<typeof DrawerHeader>;
4
+ export default meta;
5
+ export declare const Default: StoryObj<TProps>;
@@ -1,7 +1,7 @@
1
- import { TAbstractPalette } from '../../../../palette';
2
- export type TDrawerHeaderPalette = {
3
- headLabel: string;
4
- applyButton: string;
5
- border: string;
6
- };
7
- export declare const generateDrawerHeaderPalette: (abstractPalette: TAbstractPalette) => TDrawerHeaderPalette;
1
+ import { TAbstractPalette } from '../../../../palette';
2
+ export type TDrawerHeaderPalette = {
3
+ headLabel: string;
4
+ applyButton: string;
5
+ border: string;
6
+ };
7
+ export declare const generateDrawerHeaderPalette: (abstractPalette: TAbstractPalette) => TDrawerHeaderPalette;
@@ -1,11 +1,11 @@
1
- /// <reference types="react" />
2
- export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
3
- $borderColor: string;
4
- }>> & string;
5
- export declare const CloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
6
- export declare const HeadLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, {
7
- $color: string;
8
- }>> & string & Omit<import("react").FC<import("../../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
- export declare const ApplyButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
10
- $color: string;
11
- }>> & string;
1
+ /// <reference types="react" />
2
+ export declare const Wrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
3
+ $borderColor: string;
4
+ }>> & string;
5
+ export declare const CloseButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
6
+ export declare const HeadLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../../../common/Typography").TTypographyProps & import("styled-components/dist/types").BaseObject, {
7
+ $color: string;
8
+ }>> & string & Omit<import("react").FC<import("../../../common/Typography").TTypographyProps>, keyof import("react").Component<any, {}, any>>;
9
+ export declare const ApplyButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {
10
+ $color: string;
11
+ }>> & string;
@@ -1,14 +1,14 @@
1
- import { typography } from '../common/Typography/typography';
2
- export type TSizes = 'L' | 'M' | 'XS';
3
- export declare const SIZE_PARAMS_MAP: Record<TSizes, {
4
- paddingTop: number;
5
- paddingBottom: number;
6
- variant: keyof typeof typography;
7
- }>;
8
- export declare const MODERN_STYLE_SIZE_PARAMS_MAP: Record<TSizes, {
9
- paddingTop: number;
10
- paddingBottom: number;
11
- variant: keyof typeof typography;
12
- labelVariant: keyof typeof typography;
13
- labelPaddingTop: number;
14
- }>;
1
+ import { typography } from '../common/Typography/typography';
2
+ export type TSizes = 'L' | 'M' | 'XS';
3
+ export declare const SIZE_PARAMS_MAP: Record<TSizes, {
4
+ paddingTop: number;
5
+ paddingBottom: number;
6
+ variant: keyof typeof typography;
7
+ }>;
8
+ export declare const MODERN_STYLE_SIZE_PARAMS_MAP: Record<TSizes, {
9
+ paddingTop: number;
10
+ paddingBottom: number;
11
+ variant: keyof typeof typography;
12
+ labelVariant: keyof typeof typography;
13
+ labelPaddingTop: number;
14
+ }>;
@@ -4,11 +4,12 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
4
4
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
- import React, { useEffect, useState } from 'react';
7
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
8
8
  import * as S from './styles';
9
9
  import { Typography } from '../Typography';
10
10
  import { useComponentPalette } from '../../../palette';
11
- import { Sheet } from 'react-modal-sheet';
11
+ var ANIMATION_MS = 300;
12
+ var DRAG_CLOSE_THRESHOLD = 80;
12
13
  export var Drawer = function Drawer(_ref) {
13
14
  var isOpen = _ref.isOpen,
14
15
  children = _ref.children,
@@ -25,41 +26,107 @@ export var Drawer = function Drawer(_ref) {
25
26
  _useState2 = _slicedToArray(_useState, 2),
26
27
  shouldRender = _useState2[0],
27
28
  setShouldRender = _useState2[1];
29
+ var _useState3 = useState(false),
30
+ _useState4 = _slicedToArray(_useState3, 2),
31
+ isEntered = _useState4[0],
32
+ setIsEntered = _useState4[1];
33
+ var _useState5 = useState(0),
34
+ _useState6 = _slicedToArray(_useState5, 2),
35
+ dragOffset = _useState6[0],
36
+ setDragOffset = _useState6[1];
37
+ var dragStartYRef = useRef(null);
38
+ var sheetRef = useRef(null);
28
39
 
29
- // delay for close drawer and unmount
40
+ // Монтируем при открытии, размонтируем после анимации закрытия (как раньше — задержка 300мс).
30
41
  useEffect(function () {
31
42
  if (isOpen) {
32
43
  setShouldRender(true);
33
44
  } else {
45
+ setIsEntered(false);
34
46
  var timer = setTimeout(function () {
35
47
  return setShouldRender(false);
36
- }, 300);
48
+ }, ANIMATION_MS);
37
49
  return function () {
38
50
  return clearTimeout(timer);
39
51
  };
40
52
  }
53
+ return undefined;
41
54
  }, [isOpen]);
55
+
56
+ // Запускаем enter-переход на кадр позже маунта: сначала лист за экраном (translateY 100%), затем 0.
57
+ useEffect(function () {
58
+ if (!shouldRender || !isOpen) return undefined;
59
+ var raf = requestAnimationFrame(function () {
60
+ return setIsEntered(true);
61
+ });
62
+ return function () {
63
+ return cancelAnimationFrame(raf);
64
+ };
65
+ }, [shouldRender, isOpen]);
66
+
67
+ // Блокируем скролл фона, пока боттомшит открыт (как делал react-modal-sheet).
68
+ useEffect(function () {
69
+ if (!shouldRender) return undefined;
70
+ var prev = document.body.style.overflow;
71
+ document.body.style.overflow = 'hidden';
72
+ return function () {
73
+ document.body.style.overflow = prev;
74
+ };
75
+ }, [shouldRender]);
76
+ var handleTransitionEnd = useCallback(function (event) {
77
+ if (event.target !== sheetRef.current || event.propertyName !== 'transform') return;
78
+ if (isOpen && isEntered && onOpenEnd) onOpenEnd();
79
+ }, [isOpen, isEntered, onOpenEnd]);
80
+ var handlePointerDown = useCallback(function (event) {
81
+ var _event$currentTarget$, _event$currentTarget;
82
+ dragStartYRef.current = event.clientY;
83
+ (_event$currentTarget$ = (_event$currentTarget = event.currentTarget).setPointerCapture) === null || _event$currentTarget$ === void 0 || _event$currentTarget$.call(_event$currentTarget, event.pointerId);
84
+ }, []);
85
+ var handlePointerMove = useCallback(function (event) {
86
+ if (dragStartYRef.current === null) return;
87
+ var delta = event.clientY - dragStartYRef.current;
88
+ setDragOffset(delta > 0 ? delta : 0);
89
+ }, []);
90
+ var handlePointerUp = useCallback(function () {
91
+ if (dragStartYRef.current === null) return;
92
+ var offset = dragOffset;
93
+ dragStartYRef.current = null;
94
+ setDragOffset(0);
95
+ if (offset > DRAG_CLOSE_THRESHOLD) onClose();
96
+ }, [dragOffset, onClose]);
42
97
  if (!shouldRender) return null;
43
- return /*#__PURE__*/React.createElement(Sheet, {
44
- detent: "content",
45
- isOpen: isOpen,
46
- onClose: onClose,
47
- onOpenEnd: onOpenEnd
48
- }, /*#__PURE__*/React.createElement(S.StyledSheetContainer, {
98
+ var isDragging = dragOffset > 0;
99
+ var translateY = !isEntered ? '100%' : "".concat(dragOffset, "px");
100
+ return /*#__PURE__*/React.createElement(S.Root, {
101
+ role: "dialog",
102
+ "aria-modal": "true"
103
+ }, /*#__PURE__*/React.createElement(S.Backdrop, {
104
+ $bgColor: palette.backdropBg,
105
+ $isVisible: isEntered,
106
+ onClick: onClose
107
+ }), /*#__PURE__*/React.createElement(S.Sheet, {
108
+ ref: sheetRef,
109
+ style: {
110
+ transform: "translateY(".concat(translateY, ")")
111
+ },
112
+ $isDragging: isDragging,
49
113
  $isErrorBorder: isErrorBorder,
50
114
  $errorColor: palette.error,
51
115
  $borderColor: borderColor,
52
- $overflow: overflow
53
- }, /*#__PURE__*/React.createElement(Sheet.Content, null, /*#__PURE__*/React.createElement(S.DragIndicatorWrapper, null, /*#__PURE__*/React.createElement(Sheet.DragIndicator, null)), title && /*#__PURE__*/React.createElement(S.Title, {
116
+ $overflow: overflow,
117
+ onTransitionEnd: handleTransitionEnd
118
+ }, /*#__PURE__*/React.createElement(S.DragHandle, {
119
+ $bg: title ? palette.titleBg : palette.bg,
120
+ onPointerDown: handlePointerDown,
121
+ onPointerMove: handlePointerMove,
122
+ onPointerUp: handlePointerUp,
123
+ onPointerCancel: handlePointerUp
124
+ }, /*#__PURE__*/React.createElement(S.DragIndicator, null)), title && /*#__PURE__*/React.createElement(S.Title, {
54
125
  $bg: palette.titleBg
55
126
  }, /*#__PURE__*/React.createElement(Typography, {
56
127
  variant: "headline4"
57
128
  }, title)), /*#__PURE__*/React.createElement(S.ChildrenWrapper, {
58
- $isBorderRadius: !title,
59
129
  $bgColor: palette.bg,
60
130
  $isPadding: isPadding
61
- }, children))), /*#__PURE__*/React.createElement(S.StyledSheetBackdrop, {
62
- onTap: onClose,
63
- $bgColor: palette.backdropBg
64
- }));
131
+ }, children)));
65
132
  };
@@ -1,45 +1,58 @@
1
1
  import styled, { css } from 'styled-components';
2
- import { Sheet } from 'react-modal-sheet';
3
- export var Title = styled.div.withConfig({
4
- displayName: "styles__Title",
2
+ export var Root = styled.div.withConfig({
3
+ displayName: "styles__Root",
5
4
  componentId: "sc-1kysg49-0"
6
- })(["background-color:", ";padding:30px;position:relative;text-align:center;border-radius:10px 10px 0 0;"], function (_ref) {
7
- var $bg = _ref.$bg;
8
- return $bg;
9
- });
10
- export var DragIndicatorWrapper = styled.div.withConfig({
11
- displayName: "styles__DragIndicatorWrapper",
5
+ })(["position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;"]);
6
+ export var Backdrop = styled.div.withConfig({
7
+ displayName: "styles__Backdrop",
12
8
  componentId: "sc-1kysg49-1"
13
- })(["position:absolute;top:12px;left:50%;transform:translateX(-50%);"]);
14
- export var ChildrenWrapper = styled.div.withConfig({
15
- displayName: "styles__ChildrenWrapper",
16
- componentId: "sc-1kysg49-2"
17
- })(["", ";background-color:", ";", ""], function (_ref2) {
18
- var $isPadding = _ref2.$isPadding;
19
- return $isPadding && 'padding: 32px 16px 36px';
20
- }, function (_ref3) {
21
- var $bgColor = _ref3.$bgColor;
9
+ })(["position:absolute;inset:0;background-color:", ";opacity:", ";transition:opacity 300ms ease;"], function (_ref) {
10
+ var $bgColor = _ref.$bgColor;
22
11
  return $bgColor;
12
+ }, function (_ref2) {
13
+ var $isVisible = _ref2.$isVisible;
14
+ return $isVisible ? 1 : 0;
15
+ });
16
+ export var Sheet = styled.div.withConfig({
17
+ displayName: "styles__Sheet",
18
+ componentId: "sc-1kysg49-2"
19
+ })(["position:relative;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:none;border-radius:10px 10px 0 0;will-change:transform;transition:transform 300ms cubic-bezier(0.32,0.72,0,1);", " ", " ", ""], function (_ref3) {
20
+ var $isDragging = _ref3.$isDragging;
21
+ return $isDragging && css(["transition:none;"]);
23
22
  }, function (_ref4) {
24
- var $isBorderRadius = _ref4.$isBorderRadius;
25
- return $isBorderRadius && css(["border-radius:10px 10px 0 0;"]);
23
+ var $isErrorBorder = _ref4.$isErrorBorder,
24
+ $errorColor = _ref4.$errorColor,
25
+ $borderColor = _ref4.$borderColor;
26
+ return ($isErrorBorder || $borderColor) && css(["border-top:2px solid ", ";"], $borderColor || $errorColor);
27
+ }, function (_ref5) {
28
+ var $overflow = _ref5.$overflow;
29
+ return $overflow === 'visible' ? css(["overflow:visible;"]) : css(["overflow-y:auto;"]);
26
30
  });
27
- export var StyledSheetContainer = styled(Sheet.Container).withConfig({
28
- displayName: "styles__StyledSheetContainer",
31
+ export var DragHandle = styled.div.withConfig({
32
+ displayName: "styles__DragHandle",
29
33
  componentId: "sc-1kysg49-3"
30
- })(["box-shadow:none;border-radius:10px 10px 0 0;", " ", ""], function (_ref5) {
31
- var $isErrorBorder = _ref5.$isErrorBorder,
32
- $errorColor = _ref5.$errorColor,
33
- $borderColor = _ref5.$borderColor;
34
- return ($isErrorBorder || $borderColor) && css(["border-top:2px solid ", ";"], $borderColor || $errorColor);
35
- }, function (_ref6) {
36
- var $overflow = _ref6.$overflow;
37
- return $overflow === 'visible' && css(["overflow:visible;.react-modal-sheet-content-scroller{overflow-y:visible !important;}"]);
34
+ })(["position:relative;flex:0 0 auto;height:28px;background-color:", ";border-radius:10px 10px 0 0;touch-action:none;cursor:grab;&:active{cursor:grabbing;}"], function (_ref6) {
35
+ var $bg = _ref6.$bg;
36
+ return $bg;
38
37
  });
39
- export var StyledSheetBackdrop = styled(Sheet.Backdrop).withConfig({
40
- displayName: "styles__StyledSheetBackdrop",
38
+ export var DragIndicator = styled.div.withConfig({
39
+ displayName: "styles__DragIndicator",
41
40
  componentId: "sc-1kysg49-4"
42
- })(["background-color:", " !important;"], function (_ref7) {
43
- var $bgColor = _ref7.$bgColor;
41
+ })(["position:absolute;top:12px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:99px;background-color:rgba(53,63,71,0.2);"]);
42
+ export var Title = styled.div.withConfig({
43
+ displayName: "styles__Title",
44
+ componentId: "sc-1kysg49-5"
45
+ })(["background-color:", ";padding:30px;position:relative;text-align:center;"], function (_ref7) {
46
+ var $bg = _ref7.$bg;
47
+ return $bg;
48
+ });
49
+ export var ChildrenWrapper = styled.div.withConfig({
50
+ displayName: "styles__ChildrenWrapper",
51
+ componentId: "sc-1kysg49-6"
52
+ })(["", ";background-color:", ";"], function (_ref8) {
53
+ var $isPadding = _ref8.$isPadding;
54
+ return $isPadding && 'padding: 32px 16px 36px';
55
+ }, function (_ref9) {
56
+ var $bgColor = _ref9.$bgColor;
44
57
  return $bgColor;
45
58
  });
@@ -4,10 +4,11 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
4
4
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
5
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
6
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
- import React, { useCallback, useRef, useState } from 'react';
7
+ import React, { forwardRef, useCallback, useLayoutEffect, useRef, useState } from 'react';
8
+ import { createPortal } from 'react-dom';
8
9
  import * as S from './styles';
9
10
  import { useComponentPalette } from '../../../palette';
10
- export var Dropdown = function Dropdown(_ref) {
11
+ export var Dropdown = /*#__PURE__*/forwardRef(function (_ref, forwardedRef) {
11
12
  var children = _ref.children,
12
13
  isOpen = _ref.isOpen,
13
14
  _ref$isAutoPosition = _ref.isAutoPosition,
@@ -37,6 +38,42 @@ export var Dropdown = function Dropdown(_ref) {
37
38
  _useState2 = _slicedToArray(_useState, 2),
38
39
  elRef = _useState2[0],
39
40
  setElRef = _useState2[1];
41
+
42
+ // Якорь остаётся в потоке на месте поля-триггера; по его родителю (само поле) считаем,
43
+ // куда поставить вынесенный порталом дропдаун.
44
+ var anchorRef = useRef(null);
45
+ var _useState3 = useState(null),
46
+ _useState4 = _slicedToArray(_useState3, 2),
47
+ layerRect = _useState4[0],
48
+ setLayerRect = _useState4[1];
49
+
50
+ // Дропдаун вынесён в body порталом и спозиционирован `fixed` → НЕ растит документ (баг с
51
+ // пустой полосой внизу) и не зависит от `overflow`/`transform` предков. Слой-обёртка
52
+ // (`PositionLayer`) `fixed` точно над полем: внутренний `Wrapper` остаётся `absolute`
53
+ // относительно него, поэтому ВСЯ старая логика позиционирования (top/bottom/left/right/
54
+ // translateY) и измерения работают без изменений. Пересчёт на скролл/resize, пока открыт.
55
+ useLayoutEffect(function () {
56
+ var updateRect = function updateRect() {
57
+ var _anchorRef$current;
58
+ var field = (_anchorRef$current = anchorRef.current) === null || _anchorRef$current === void 0 ? void 0 : _anchorRef$current.parentElement;
59
+ if (!field) return;
60
+ var rect = field.getBoundingClientRect();
61
+ setLayerRect({
62
+ top: rect.top,
63
+ left: rect.left,
64
+ width: rect.width,
65
+ height: rect.height
66
+ });
67
+ };
68
+ updateRect();
69
+ if (!isOpen) return undefined;
70
+ window.addEventListener('scroll', updateRect, true);
71
+ window.addEventListener('resize', updateRect);
72
+ return function () {
73
+ window.removeEventListener('scroll', updateRect, true);
74
+ window.removeEventListener('resize', updateRect);
75
+ };
76
+ }, [isOpen]);
40
77
  var handleCloseTransitionEnd = useCallback(function (event) {
41
78
  if (event.propertyName !== 'opacity') return;
42
79
  if (isOpen) return;
@@ -59,18 +96,17 @@ export var Dropdown = function Dropdown(_ref) {
59
96
  };
60
97
  var isMoreSpaceBelowThanAbove = belowHeight >= aboveHeight;
61
98
  if (isMoreSpaceBelowThanAbove) {
62
- var outOfViewPortHeight = dropdownHeight + dropdownIndent - belowHeight;
99
+ var _outOfViewPortHeight = dropdownHeight + dropdownIndent - belowHeight;
63
100
  return {
64
101
  isAbove: false,
65
- translateY: "-".concat(outOfViewPortHeight, "px")
66
- };
67
- } else {
68
- var _outOfViewPortHeight = dropdownHeight + dropdownIndent - aboveHeight;
69
- return {
70
- isAbove: true,
71
- translateY: "".concat(_outOfViewPortHeight, "px")
102
+ translateY: "-".concat(_outOfViewPortHeight, "px")
72
103
  };
73
104
  }
105
+ var outOfViewPortHeight = dropdownHeight + dropdownIndent - aboveHeight;
106
+ return {
107
+ isAbove: true,
108
+ translateY: "".concat(outOfViewPortHeight, "px")
109
+ };
74
110
  }, []);
75
111
  var openFlagCache = useRef(null);
76
112
  if (elRef) {
@@ -95,8 +131,21 @@ export var Dropdown = function Dropdown(_ref) {
95
131
  };
96
132
  }
97
133
  }
98
- return /*#__PURE__*/React.createElement(S.Wrapper, {
99
- ref: setElRef,
134
+ var setWrapperRef = useCallback(function (node) {
135
+ setElRef(node);
136
+ if (typeof forwardedRef === 'function') forwardedRef(node);else if (forwardedRef) forwardedRef.current = node;
137
+ }, [forwardedRef]);
138
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(S.Anchor, {
139
+ ref: anchorRef
140
+ }), layerRect && /*#__PURE__*/createPortal(/*#__PURE__*/React.createElement(S.PositionLayer, {
141
+ style: {
142
+ top: layerRect.top,
143
+ left: layerRect.left,
144
+ width: layerRect.width,
145
+ height: layerRect.height
146
+ }
147
+ }, /*#__PURE__*/React.createElement(S.Wrapper, {
148
+ ref: setWrapperRef,
100
149
  $isVisible: isOpen,
101
150
  $isAbove: position.current.isAbove,
102
151
  $translateY: position.current.translateY,
@@ -109,5 +158,6 @@ export var Dropdown = function Dropdown(_ref) {
109
158
  onTransitionEnd: handleCloseTransitionEnd,
110
159
  $palette: palette,
111
160
  $usePadding: usePadding
112
- }, children);
113
- };
161
+ }, children)), document.body));
162
+ });
163
+ Dropdown.displayName = 'Dropdown';
@@ -1,10 +1,24 @@
1
1
  import styled, { css } from 'styled-components';
2
+ // Невидимый якорь в потоке: по его родителю (поле-триггер) считаем позицию портал-дропдауна.
3
+ // display:none — не влияет на вёрстку, но parentElement (само поле) доступен для измерений.
4
+ export var Anchor = styled.span.withConfig({
5
+ displayName: "styles__Anchor",
6
+ componentId: "sc-1f1enhf-0"
7
+ })(["display:none;"]);
8
+
9
+ // Слой-обёртка дропдауна: вынесена порталом в body и спозиционирована fixed точно над полем
10
+ // (через inline top/left/width/height). pointer-events:none — сам слой не перехватывает клики
11
+ // (его площадь = полю), кликабелен только внутренний Wrapper.
12
+ export var PositionLayer = styled.div.withConfig({
13
+ displayName: "styles__PositionLayer",
14
+ componentId: "sc-1f1enhf-1"
15
+ })(["position:fixed;z-index:1000;pointer-events:none;"]);
2
16
  var hidden = css(["visibility:hidden;opacity:0;transition:visibility 0ms 200ms,opacity 200ms 0ms ease;"]);
3
17
  var visible = css(["visibility:visible;opacity:1;transition:visibility 0ms 0ms,opacity 200ms 0ms ease;"]);
4
18
  export var Wrapper = styled.div.withConfig({
5
19
  displayName: "styles__Wrapper",
6
- componentId: "sc-1f1enhf-0"
7
- })(["padding:", ";overflow:hidden;border-radius:20px;box-shadow:0 4px 50px 0 ", ";background:", ";outline:1px solid ", ";min-width:", ";width:", ";position:absolute;left:", ";right:", ";z-index:", ";", ";", ";", ";"], function (_ref) {
20
+ componentId: "sc-1f1enhf-2"
21
+ })(["pointer-events:auto;padding:", ";overflow:hidden;border-radius:20px;box-shadow:0 4px 50px 0 ", ";background:", ";outline:1px solid ", ";min-width:", ";width:", ";position:absolute;left:", ";right:", ";z-index:", ";", ";", ";", ";"], function (_ref) {
8
22
  var $usePadding = _ref.$usePadding;
9
23
  return $usePadding ? '8px 0;' : 'none';
10
24
  }, function (_ref2) {
@@ -87,7 +87,8 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
87
87
  setIsOpen(false);
88
88
  setActiveIndex(-1);
89
89
  }, []);
90
- var wrapperRef = useOutsideClick(handleClose);
90
+ var dropdownRef = useRef(null);
91
+ var wrapperRef = useOutsideClick(handleClose, [dropdownRef]);
91
92
  var handleChange = useCallback(function (event) {
92
93
  // Ввод нового запроса сбрасывает клавиатурную подсветку (результаты сменятся).
93
94
  setActiveIndex(-1);
@@ -223,6 +224,7 @@ export var Autocomplete = /*#__PURE__*/forwardRef(function (_ref, ref) {
223
224
  "aria-autocomplete": "list",
224
225
  "aria-activedescendant": isDropdownOpen && activeIndex >= 0 ? getOptionId(activeIndex) : undefined
225
226
  }, paddingOptions)))), /*#__PURE__*/React.createElement(Dropdown, {
227
+ ref: dropdownRef,
226
228
  isOpen: isOpen && (!!options.length || !!isLoading),
227
229
  isAutoPosition: true,
228
230
  width: dropdownWidth || '100%',
@@ -12,7 +12,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
12
12
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
13
13
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
14
14
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
15
- import React, { useCallback, useMemo, useState } from 'react';
15
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
16
16
  import * as S from './stlyes';
17
17
  import { CountryItem } from './components/CountryItem';
18
18
  import { SearchInput } from '../SearchInput';
@@ -57,7 +57,8 @@ export var CountrySelect = function CountrySelect(_ref) {
57
57
  return !flag;
58
58
  });
59
59
  }, []);
60
- var wrapperRef = useOutsideClick(handleDropdownClose);
60
+ var dropdownRef = useRef(null);
61
+ var wrapperRef = useOutsideClick(handleDropdownClose, [dropdownRef]);
61
62
  var sortedOptions = useMemo(function () {
62
63
  return [selectedOption].concat(_toConsumableArray(options.filter(function (option) {
63
64
  return option !== selectedOption;
@@ -84,6 +85,7 @@ export var CountrySelect = function CountrySelect(_ref) {
84
85
  }), !disabled && /*#__PURE__*/React.createElement(Arrow, {
85
86
  isOpen: isOpen
86
87
  })), /*#__PURE__*/React.createElement(Dropdown, _extends({
88
+ ref: dropdownRef,
87
89
  isOpen: isOpen,
88
90
  onCloseTransitionEnd: handleClear,
89
91
  zIndex: 6,
@@ -1,24 +1,24 @@
1
- # Компоненты для ввода валюты
2
-
3
- ## CoreCurrencyInput
4
-
5
- Служебный компонент, необходим для реализации иных компонентов. Недопустимо его прямое использование в компонентах вне текущей директории.
6
-
7
- ## CurrencyInputNumber
8
-
9
- Компонент реализует неконтролируемый инпут. Возвращает в onChange число.
10
-
11
- ## CurrencyInputString
12
-
13
- Компонент реализует контролируемый инпут. Возвращает в onChange строку.
14
-
15
- ## Причины разной реализации инпута валюты
16
-
17
- Мы не можем сделать инпут CurrencyInputNumber контролируемым т.к. нам нужно сохранять разделения разрядов и делитель целой и дробной части - это хранится
18
- в строке. И вы будем вынуждены каждый раз в сабмите конвертировать число в строку.
19
-
20
- CurrencyInputNumber необходим для типовых сценариев, когда мы хотим что-то ввести в инпут и на выходе (в сабмите) получать число.
21
- Обратная стороны заключается в том, что мы не можем влияя на форму, менять значение инпута т.к. инпут неконтролируемый.
22
- Для влияния на значение придётся обновить defaultValue и вызвать перерендер.
23
-
24
- CurrencyInputString необходим для сценариев когда мы хотим влияя на форму изменять значение инпута без сложностей. Недостатком является строка на выходе (в сабмите).
1
+ # Компоненты для ввода валюты
2
+
3
+ ## CoreCurrencyInput
4
+
5
+ Служебный компонент, необходим для реализации иных компонентов. Недопустимо его прямое использование в компонентах вне текущей директории.
6
+
7
+ ## CurrencyInputNumber
8
+
9
+ Компонент реализует неконтролируемый инпут. Возвращает в onChange число.
10
+
11
+ ## CurrencyInputString
12
+
13
+ Компонент реализует контролируемый инпут. Возвращает в onChange строку.
14
+
15
+ ## Причины разной реализации инпута валюты
16
+
17
+ Мы не можем сделать инпут CurrencyInputNumber контролируемым т.к. нам нужно сохранять разделения разрядов и делитель целой и дробной части - это хранится
18
+ в строке. И вы будем вынуждены каждый раз в сабмите конвертировать число в строку.
19
+
20
+ CurrencyInputNumber необходим для типовых сценариев, когда мы хотим что-то ввести в инпут и на выходе (в сабмите) получать число.
21
+ Обратная стороны заключается в том, что мы не можем влияя на форму, менять значение инпута т.к. инпут неконтролируемый.
22
+ Для влияния на значение придётся обновить defaultValue и вызвать перерендер.
23
+
24
+ CurrencyInputString необходим для сценариев когда мы хотим влияя на форму изменять значение инпута без сложностей. Недостатком является строка на выходе (в сабмите).
@@ -54,7 +54,8 @@ export var DateInput = function DateInput(_ref) {
54
54
  var handleClose = useCallback(function () {
55
55
  return setOpenFlag(false);
56
56
  }, []);
57
- var elRef = useOutsideClick(handleClose);
57
+ var dropdownRef = useRef(null);
58
+ var elRef = useOutsideClick(handleClose, [dropdownRef]);
58
59
  var _useInputFocus = useInputFocus({
59
60
  onFocus: onFocus,
60
61
  onBlur: onBlur
@@ -160,6 +161,7 @@ export var DateInput = function DateInput(_ref) {
160
161
  minDate: minDate,
161
162
  maxDate: maxDate
162
163
  }) : /*#__PURE__*/React.createElement(Dropdown, _extends({
164
+ ref: dropdownRef,
163
165
  isOpen: isOpen,
164
166
  isAutoPosition: true
165
167
  }, dropdownProps), /*#__PURE__*/React.createElement(S.CalendarWrapper, null, /*#__PURE__*/React.createElement(Calendar, {
@@ -69,7 +69,8 @@ export var DateTimeInput = function DateTimeInput(_ref) {
69
69
  var handleTrigger = useCallback(function () {
70
70
  return isOpen ? handleCloseAndSkipDropdownValue() : setOpenFlag(true);
71
71
  }, [handleCloseAndSkipDropdownValue, isOpen]);
72
- var elRef = useOutsideClick(handleCloseAndSkipDropdownValue);
72
+ var dropdownRef = useRef(null);
73
+ var elRef = useOutsideClick(handleCloseAndSkipDropdownValue, [dropdownRef]);
73
74
  var _useTimePickerHeight = useTimePickerHeight(isOpen),
74
75
  calendarRef = _useTimePickerHeight.calendarRef,
75
76
  handleTimePickerSetHeight = _useTimePickerHeight.handleTimePickerSetHeight,
@@ -180,6 +181,7 @@ export var DateTimeInput = function DateTimeInput(_ref) {
180
181
  onClick: handleTrigger,
181
182
  $color: palette.icon
182
183
  }, /*#__PURE__*/React.createElement(CalendarIcon, null)))), !isMobile ? /*#__PURE__*/React.createElement(Dropdown, _extends({
184
+ ref: dropdownRef,
183
185
  isOpen: isOpen,
184
186
  isAutoPosition: true
185
187
  }, dropdownProps), /*#__PURE__*/React.createElement(S.CalendarWithTimePicker, {