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

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 (309) hide show
  1. package/dist/components/common/Arrow/palette.js +1 -1
  2. package/dist/components/common/Calendar/palette.js +1 -1
  3. package/dist/components/common/Drawer/palette.js +1 -1
  4. package/dist/components/common/Dropdown/palette.js +1 -1
  5. package/dist/components/common/EntityAutocompleteOptionsDrawer/index.js +6 -2
  6. package/dist/components/common/EntityAutocompleteOptionsDrawer/palette.js +1 -1
  7. package/dist/components/common/PointsLoader/palette.js +1 -1
  8. package/dist/components/common/Scrollbar/index.js +12 -32
  9. package/dist/components/common/Scrollbar/styles.d.ts +7 -0
  10. package/dist/components/common/Scrollbar/styles.js +30 -0
  11. package/dist/components/common/Toast/styles.js +1 -1
  12. package/dist/components/form/Autocomplete/components/Autocomplete/index.d.ts +1 -0
  13. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +89 -7
  14. package/dist/components/form/Autocomplete/components/Autocomplete/styles.d.ts +1 -0
  15. package/dist/components/form/Autocomplete/components/Autocomplete/styles.js +8 -4
  16. package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/palette.js +1 -1
  17. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/palette.js +1 -1
  18. package/dist/components/form/CodeInput/palette.js +1 -1
  19. package/dist/components/form/CountrySelect/palette.js +1 -1
  20. package/dist/components/form/DateTimeInput/components/TimePicker/palette.js +1 -1
  21. package/dist/components/form/DateTimeInput/palette.js +1 -1
  22. package/dist/components/form/PureInput/palette.js +1 -1
  23. package/dist/components/form/Select/palette.js +1 -1
  24. package/dist/components/form/TextInput/index.d.ts +2 -2
  25. package/dist/components/form/TextInput/index.js +4 -2
  26. package/dist/components/form/Toggle/palette.js +1 -1
  27. package/dist/components/form/common/DrawerHeader/palette.js +1 -1
  28. package/dist/esm/breakpoints/index.js +7 -0
  29. package/dist/esm/components/_helpers/StoryBorderWrapper/index.js +5 -0
  30. package/dist/esm/components/_helpers/selectOptions.js +37 -0
  31. package/dist/esm/components/common/AppCardLink/components/ApkRu.js +99 -0
  32. package/dist/esm/components/common/AppCardLink/components/AppGalleryRu.js +91 -0
  33. package/dist/esm/components/common/AppCardLink/components/GooglePlayRu.js +177 -0
  34. package/dist/esm/components/common/AppCardLink/components/RuStoreRu.js +94 -0
  35. package/dist/esm/components/common/AppCardLink/constants.js +1 -0
  36. package/dist/esm/components/common/AppCardLink/index.js +24 -0
  37. package/dist/esm/components/common/AppCardLink/index.stories.js +14 -0
  38. package/dist/esm/components/common/AppCardLink/styles.js +5 -0
  39. package/dist/esm/components/common/Arrow/components/StyledSvg/index.js +18 -0
  40. package/dist/esm/components/common/Arrow/components/StyledSvg/index.stories.js +20 -0
  41. package/dist/esm/components/common/Arrow/components/Svg/index.js +19 -0
  42. package/dist/esm/components/common/Arrow/components/Svg/index.stories.js +15 -0
  43. package/dist/esm/components/common/Arrow/index.js +22 -0
  44. package/dist/esm/components/common/Arrow/index.stories.js +15 -0
  45. package/dist/esm/components/common/Arrow/palette.js +7 -0
  46. package/dist/esm/components/common/BgCard/index.js +13 -0
  47. package/dist/esm/components/common/BgCard/index.stories.js +14 -0
  48. package/dist/esm/components/common/BgCard/palette.js +5 -0
  49. package/dist/esm/components/common/BgCard/styles.js +12 -0
  50. package/dist/esm/components/common/Calendar/docs.stories.js +14 -0
  51. package/dist/esm/components/common/Calendar/index.js +44 -0
  52. package/dist/esm/components/common/Calendar/index.stories.js +69 -0
  53. package/dist/esm/components/common/Calendar/palette.js +12 -0
  54. package/dist/esm/components/common/Calendar/styles.js +34 -0
  55. package/dist/esm/components/common/Chip/index.js +17 -0
  56. package/dist/esm/components/common/Chip/index.stories.js +14 -0
  57. package/dist/esm/components/common/Chip/styles.js +18 -0
  58. package/dist/esm/components/common/Divider/index.js +13 -0
  59. package/dist/esm/components/common/Divider/index.stories.js +8 -0
  60. package/dist/esm/components/common/Divider/palette.js +5 -0
  61. package/dist/esm/components/common/Divider/styles.js +11 -0
  62. package/dist/esm/components/common/Drawer/index.js +65 -0
  63. package/dist/esm/components/common/Drawer/index.stories.js +77 -0
  64. package/dist/esm/components/common/Drawer/palette.js +14 -0
  65. package/dist/esm/components/common/Drawer/styles.js +45 -0
  66. package/dist/esm/components/common/Dropdown/index.js +113 -0
  67. package/dist/esm/components/common/Dropdown/index.stories.js +53 -0
  68. package/dist/esm/components/common/Dropdown/palette.js +7 -0
  69. package/dist/esm/components/common/Dropdown/styles.js +44 -0
  70. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/index.js +59 -0
  71. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/index.stories.js +92 -0
  72. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/palette.js +6 -0
  73. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/styles.js +29 -0
  74. package/dist/esm/components/common/Flag/components/ArmFlag/index.js +23 -0
  75. package/dist/esm/components/common/Flag/components/ArmFlag/index.stories.js +8 -0
  76. package/dist/esm/components/common/Flag/components/AzeFlag/index.js +33 -0
  77. package/dist/esm/components/common/Flag/components/AzeFlag/index.stories.js +8 -0
  78. package/dist/esm/components/common/Flag/components/BlrFlag/index.js +28 -0
  79. package/dist/esm/components/common/Flag/components/BlrFlag/index.stories.js +8 -0
  80. package/dist/esm/components/common/Flag/components/ChnFlag/index.js +25 -0
  81. package/dist/esm/components/common/Flag/components/ChnFlag/index.stories.js +8 -0
  82. package/dist/esm/components/common/Flag/components/EngFlag/index.js +47 -0
  83. package/dist/esm/components/common/Flag/components/EngFlag/index.stories.js +8 -0
  84. package/dist/esm/components/common/Flag/components/EspFlag/index.js +79 -0
  85. package/dist/esm/components/common/Flag/components/EspFlag/index.stories.js +8 -0
  86. package/dist/esm/components/common/Flag/components/KazFlag/index.js +28 -0
  87. package/dist/esm/components/common/Flag/components/KazFlag/index.stories.js +8 -0
  88. package/dist/esm/components/common/Flag/components/KgzFlag/index.js +25 -0
  89. package/dist/esm/components/common/Flag/components/KgzFlag/index.stories.js +8 -0
  90. package/dist/esm/components/common/Flag/components/MdaFlag/index.js +45 -0
  91. package/dist/esm/components/common/Flag/components/MdaFlag/index.stories.js +8 -0
  92. package/dist/esm/components/common/Flag/components/RusFlag/index.js +25 -0
  93. package/dist/esm/components/common/Flag/components/RusFlag/index.stories.js +8 -0
  94. package/dist/esm/components/common/Flag/components/TjkFlag/index.js +30 -0
  95. package/dist/esm/components/common/Flag/components/TjkFlag/index.stories.js +8 -0
  96. package/dist/esm/components/common/Flag/components/UnknownFlag/index.js +19 -0
  97. package/dist/esm/components/common/Flag/components/UnknownFlag/index.stories.js +8 -0
  98. package/dist/esm/components/common/Flag/components/UzbFlag/index.js +36 -0
  99. package/dist/esm/components/common/Flag/components/UzbFlag/index.stories.js +8 -0
  100. package/dist/esm/components/common/Flag/index.js +39 -0
  101. package/dist/esm/components/common/Flag/index.stories.js +16 -0
  102. package/dist/esm/components/common/Flag/styles.js +10 -0
  103. package/dist/esm/components/common/InvoiceboxLogo/components/LogoDarkRu.js +44 -0
  104. package/dist/esm/components/common/InvoiceboxLogo/index.js +8 -0
  105. package/dist/esm/components/common/InvoiceboxLogo/index.stories.js +12 -0
  106. package/dist/esm/components/common/InvoiceboxSpinner/index.js +29 -0
  107. package/dist/esm/components/common/InvoiceboxSpinner/index.stories.js +12 -0
  108. package/dist/esm/components/common/InvoiceboxSpinner/palette.js +6 -0
  109. package/dist/esm/components/common/InvoiceboxSpinner/styles.js +10 -0
  110. package/dist/esm/components/common/PointsLoader/index.js +16 -0
  111. package/dist/esm/components/common/PointsLoader/index.stories.js +10 -0
  112. package/dist/esm/components/common/PointsLoader/palette.js +7 -0
  113. package/dist/esm/components/common/PointsLoader/styles.js +21 -0
  114. package/dist/esm/components/common/QRCode/index.js +26 -0
  115. package/dist/esm/components/common/QRCode/index.stories.js +13 -0
  116. package/dist/esm/components/common/ReadOnlyLabelValueField/index.js +24 -0
  117. package/dist/esm/components/common/ReadOnlyLabelValueField/index.stories.js +14 -0
  118. package/dist/esm/components/common/ReadOnlyLabelValueField/palette.js +5 -0
  119. package/dist/esm/components/common/ReadOnlyLabelValueField/styles.js +15 -0
  120. package/dist/esm/components/common/Scrollbar/index.js +22 -0
  121. package/dist/esm/components/common/Scrollbar/index.stories.js +43 -0
  122. package/dist/esm/components/common/Scrollbar/palette.js +5 -0
  123. package/dist/esm/components/common/Scrollbar/styles.js +21 -0
  124. package/dist/esm/components/common/SecondaryButton/index.js +44 -0
  125. package/dist/esm/components/common/SecondaryButton/index.stories.js +33 -0
  126. package/dist/esm/components/common/SecondaryButton/palette.js +8 -0
  127. package/dist/esm/components/common/SecondaryButton/styles.js +43 -0
  128. package/dist/esm/components/common/Skeleton/index.js +18 -0
  129. package/dist/esm/components/common/Skeleton/index.stories.js +24 -0
  130. package/dist/esm/components/common/Skeleton/palette.js +6 -0
  131. package/dist/esm/components/common/Skeleton/styles.js +28 -0
  132. package/dist/esm/components/common/Toast/docs.stories.js +14 -0
  133. package/dist/esm/components/common/Toast/index.js +29 -0
  134. package/dist/esm/components/common/Toast/index.stories.js +22 -0
  135. package/dist/esm/components/common/Toast/palette.js +7 -0
  136. package/dist/esm/components/common/Toast/styles.js +17 -0
  137. package/dist/esm/components/common/Typography/docs.stories.js +14 -0
  138. package/dist/esm/components/common/Typography/index.js +30 -0
  139. package/dist/esm/components/common/Typography/index.stories.js +29 -0
  140. package/dist/esm/components/common/Typography/styles.js +9 -0
  141. package/dist/esm/components/common/Typography/typography.js +25 -0
  142. package/dist/esm/components/common/WarningIcon/components/Icon.js +15 -0
  143. package/dist/esm/components/common/WarningIcon/index.js +13 -0
  144. package/dist/esm/components/common/WarningIcon/index.stories.js +8 -0
  145. package/dist/esm/components/common/WarningIcon/palette.js +5 -0
  146. package/dist/esm/components/common/WarningIcon/styles.js +15 -0
  147. package/dist/esm/components/common/_helpers/selectOptions.js +39 -0
  148. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +264 -0
  149. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.stories.js +55 -0
  150. package/dist/esm/components/form/Autocomplete/components/Autocomplete/styles.js +42 -0
  151. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/index.js +21 -0
  152. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/index.stories.js +17 -0
  153. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/palette.js +6 -0
  154. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.js +40 -0
  155. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.stories.js +20 -0
  156. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/palette.js +9 -0
  157. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/styles.js +58 -0
  158. package/dist/esm/components/form/Autocomplete/index.js +3 -0
  159. package/dist/esm/components/form/CodeInput/index.js +93 -0
  160. package/dist/esm/components/form/CodeInput/index.stories.js +43 -0
  161. package/dist/esm/components/form/CodeInput/palette.js +7 -0
  162. package/dist/esm/components/form/CodeInput/styles.js +24 -0
  163. package/dist/esm/components/form/CountrySelect/components/CountryItem/index.js +32 -0
  164. package/dist/esm/components/form/CountrySelect/components/CountryItem/index.stories.js +29 -0
  165. package/dist/esm/components/form/CountrySelect/components/CountryItem/stlyes.js +24 -0
  166. package/dist/esm/components/form/CountrySelect/index.js +113 -0
  167. package/dist/esm/components/form/CountrySelect/index.stories.js +51 -0
  168. package/dist/esm/components/form/CountrySelect/logic.js +18 -0
  169. package/dist/esm/components/form/CountrySelect/palette.js +10 -0
  170. package/dist/esm/components/form/CountrySelect/stlyes.js +20 -0
  171. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +95 -0
  172. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.stories.js +33 -0
  173. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/styles.js +8 -0
  174. package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.js +16 -0
  175. package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.stories.js +46 -0
  176. package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.js +16 -0
  177. package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.stories.js +32 -0
  178. package/dist/esm/components/form/CurrencyInput/README.md +24 -0
  179. package/dist/esm/components/form/DateInput/components/CalendarIcon/index.js +24 -0
  180. package/dist/esm/components/form/DateInput/components/CalendarIcon/index.stories.js +8 -0
  181. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/index.js +27 -0
  182. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/index.stories.js +65 -0
  183. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/styles.js +5 -0
  184. package/dist/esm/components/form/DateInput/docs.stories.js +14 -0
  185. package/dist/esm/components/form/DateInput/index.js +171 -0
  186. package/dist/esm/components/form/DateInput/index.stories.js +48 -0
  187. package/dist/esm/components/form/DateInput/logic.js +89 -0
  188. package/dist/esm/components/form/DateInput/palette.js +5 -0
  189. package/dist/esm/components/form/DateInput/styles.js +21 -0
  190. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js +66 -0
  191. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.stories.js +63 -0
  192. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.js +9 -0
  193. package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/index.js +193 -0
  194. package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +18 -0
  195. package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.js +132 -0
  196. package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.stories.js +32 -0
  197. package/dist/esm/components/form/DateTimeInput/components/TimePicker/palette.js +11 -0
  198. package/dist/esm/components/form/DateTimeInput/components/TimePicker/styles.js +54 -0
  199. package/dist/esm/components/form/DateTimeInput/hooks/useStringValue.js +22 -0
  200. package/dist/esm/components/form/DateTimeInput/hooks/useTimePickerHeight.js +31 -0
  201. package/dist/esm/components/form/DateTimeInput/index.js +232 -0
  202. package/dist/esm/components/form/DateTimeInput/index.stories.js +52 -0
  203. package/dist/esm/components/form/DateTimeInput/palette.js +11 -0
  204. package/dist/esm/components/form/DateTimeInput/styles.js +51 -0
  205. package/dist/esm/components/form/InputLabel/index.js +33 -0
  206. package/dist/esm/components/form/InputLabel/index.stories.js +26 -0
  207. package/dist/esm/components/form/InputLabel/palette.js +9 -0
  208. package/dist/esm/components/form/InputLabel/styles.js +42 -0
  209. package/dist/esm/components/form/ModernPlaceholder/index.js +25 -0
  210. package/dist/esm/components/form/ModernPlaceholder/styles.js +28 -0
  211. package/dist/esm/components/form/PhoneInput/constants.js +69 -0
  212. package/dist/esm/components/form/PhoneInput/externalPhoneLogic.js +32 -0
  213. package/dist/esm/components/form/PhoneInput/hooks/useValidateInitialValue.js +33 -0
  214. package/dist/esm/components/form/PhoneInput/index.js +236 -0
  215. package/dist/esm/components/form/PhoneInput/index.stories.js +107 -0
  216. package/dist/esm/components/form/PhoneInput/phoneInputLogic.js +153 -0
  217. package/dist/esm/components/form/PhoneInput/styles.js +13 -0
  218. package/dist/esm/components/form/PhoneInput/types.js +3 -0
  219. package/dist/esm/components/form/PositiveIntegerInput/hooks/useFilters.js +15 -0
  220. package/dist/esm/components/form/PositiveIntegerInput/hooks/useIncrement.js +16 -0
  221. package/dist/esm/components/form/PositiveIntegerInput/hooks/useIncrementDisabledFlags.js +18 -0
  222. package/dist/esm/components/form/PositiveIntegerInput/hooks/useNormalizers.js +16 -0
  223. package/dist/esm/components/form/PositiveIntegerInput/index.js +128 -0
  224. package/dist/esm/components/form/PositiveIntegerInput/index.stories.js +40 -0
  225. package/dist/esm/components/form/PositiveIntegerInput/styles.js +16 -0
  226. package/dist/esm/components/form/PureInput/index.js +62 -0
  227. package/dist/esm/components/form/PureInput/index.stories.js +18 -0
  228. package/dist/esm/components/form/PureInput/palette.js +12 -0
  229. package/dist/esm/components/form/PureInput/styles.js +44 -0
  230. package/dist/esm/components/form/ResetButton/CrossIcon/index.js +16 -0
  231. package/dist/esm/components/form/ResetButton/CrossIcon/index.stories.js +8 -0
  232. package/dist/esm/components/form/ResetButton/index.js +13 -0
  233. package/dist/esm/components/form/ResetButton/index.stories.js +14 -0
  234. package/dist/esm/components/form/ResetButton/palette.js +5 -0
  235. package/dist/esm/components/form/ResetButton/styles.js +8 -0
  236. package/dist/esm/components/form/SearchInput/components/SearchIcon/index.js +17 -0
  237. package/dist/esm/components/form/SearchInput/components/SearchIcon/index.stories.js +8 -0
  238. package/dist/esm/components/form/SearchInput/index.js +93 -0
  239. package/dist/esm/components/form/SearchInput/index.stories.js +33 -0
  240. package/dist/esm/components/form/SearchInput/palette.js +5 -0
  241. package/dist/esm/components/form/SearchInput/styles.js +14 -0
  242. package/dist/esm/components/form/Select/components/Input/index.js +72 -0
  243. package/dist/esm/components/form/Select/components/Input/index.stories.js +21 -0
  244. package/dist/esm/components/form/Select/components/Input/styles.js +12 -0
  245. package/dist/esm/components/form/Select/components/Loader/index.js +16 -0
  246. package/dist/esm/components/form/Select/components/Loader/styles.js +13 -0
  247. package/dist/esm/components/form/Select/hooks/useOptionGroups.js +27 -0
  248. package/dist/esm/components/form/Select/index.js +243 -0
  249. package/dist/esm/components/form/Select/index.stories.js +241 -0
  250. package/dist/esm/components/form/Select/palette.js +7 -0
  251. package/dist/esm/components/form/Select/styles.js +60 -0
  252. package/dist/esm/components/form/TagsInput/assets/CrossIcon.js +23 -0
  253. package/dist/esm/components/form/TagsInput/index.js +161 -0
  254. package/dist/esm/components/form/TagsInput/index.stories.js +34 -0
  255. package/dist/esm/components/form/TagsInput/palette.js +6 -0
  256. package/dist/esm/components/form/TagsInput/styles.js +37 -0
  257. package/dist/esm/components/form/TextInput/index.js +113 -0
  258. package/dist/esm/components/form/TextInput/index.stories.js +42 -0
  259. package/dist/esm/components/form/TextInput/styles.js +9 -0
  260. package/dist/esm/components/form/Toggle/index.js +40 -0
  261. package/dist/esm/components/form/Toggle/index.stories.js +33 -0
  262. package/dist/esm/components/form/Toggle/palette.js +11 -0
  263. package/dist/esm/components/form/Toggle/styles.js +74 -0
  264. package/dist/esm/components/form/common/DrawerHeader/components/Cross24Icon/index.js +16 -0
  265. package/dist/esm/components/form/common/DrawerHeader/components/Cross24Icon/index.stories.js +8 -0
  266. package/dist/esm/components/form/common/DrawerHeader/index.js +28 -0
  267. package/dist/esm/components/form/common/DrawerHeader/index.stories.js +18 -0
  268. package/dist/esm/components/form/common/DrawerHeader/palette.js +8 -0
  269. package/dist/esm/components/form/common/DrawerHeader/styles.js +27 -0
  270. package/dist/esm/components/form/constants.js +40 -0
  271. package/dist/esm/hooks/useInputFocus/index.js +31 -0
  272. package/dist/esm/hooks/useInputFocus/index.stories.js +24 -0
  273. package/dist/esm/hooks/useLoadingSubmit/index.js +31 -0
  274. package/dist/esm/hooks/useLoadingSubmit/index.stories.js +28 -0
  275. package/dist/esm/hooks/useMedia/index.js +44 -0
  276. package/dist/esm/hooks/useMedia/index.stories.js +18 -0
  277. package/dist/esm/hooks/useModal/index.js +26 -0
  278. package/dist/esm/hooks/useModal/index.stories.js +35 -0
  279. package/dist/esm/hooks/useOutsideClick/index.js +16 -0
  280. package/dist/esm/hooks/useOutsideClick/index.stories.js +22 -0
  281. package/dist/esm/hooks/useUnupdatableHandler/index.js +11 -0
  282. package/dist/esm/hooks/useUnupdatableHandler/index.stories.js +42 -0
  283. package/dist/esm/index.js +53 -0
  284. package/dist/esm/palette/colors.stories.js +36 -0
  285. package/dist/esm/palette/constants.js +12 -0
  286. package/dist/esm/palette/context.js +64 -0
  287. package/dist/esm/palette/index.js +3 -0
  288. package/dist/esm/palette/index.stories.js +78 -0
  289. package/dist/esm/palette/provider.js +87 -0
  290. package/dist/esm/palette/types.js +1 -0
  291. package/dist/esm/palette/useComponentPalette.js +16 -0
  292. package/dist/esm/palette/usePalette.js +5 -0
  293. package/dist/esm/utils/hexToRgba.js +15 -0
  294. package/dist/esm/utils/transformColorByHsl.js +12 -0
  295. package/dist/esm/validate/index.js +175 -0
  296. package/dist/esm/validate/types.js +1 -0
  297. package/dist/esm/validate/utils/vatNumberValidateHelpers.js +129 -0
  298. package/dist/esm/validate/utils/websiteValidate.test.js +45 -0
  299. package/dist/hooks/useMedia/index.js +34 -13
  300. package/dist/index.d.ts +0 -1
  301. package/dist/index.js +1 -20
  302. package/dist/utils/hexToRgba.d.ts +1 -0
  303. package/dist/utils/hexToRgba.js +21 -0
  304. package/package.json +6 -9
  305. package/dist/components/common/InvoiceboxLoader/assets/loader.json +0 -1
  306. package/dist/components/common/InvoiceboxLoader/index.d.ts +0 -5
  307. package/dist/components/common/InvoiceboxLoader/index.js +0 -879
  308. package/dist/components/common/InvoiceboxLoader/index.stories.d.ts +0 -5
  309. package/dist/components/common/InvoiceboxLoader/index.stories.js +0 -18
@@ -0,0 +1,89 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ 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; }
6
+ 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; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
9
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
10
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ var Logic = /*#__PURE__*/function () {
15
+ function Logic() {
16
+ _classCallCheck(this, Logic);
17
+ _defineProperty(this, "today", new Date());
18
+ }
19
+ return _createClass(Logic, [{
20
+ key: "getPlaceholder",
21
+ value: function getPlaceholder(withTime) {
22
+ return this.valueToString(this.today, withTime);
23
+ }
24
+ }, {
25
+ key: "isValid",
26
+ value: function isValid(date) {
27
+ return !Number.isNaN(date.valueOf());
28
+ }
29
+ }, {
30
+ key: "isBetweenMinAndMax",
31
+ value: function isBetweenMinAndMax(date, minDate, maxDate) {
32
+ var isValidByMin = !minDate ? true : date >= minDate;
33
+ var isValidByMax = !maxDate ? true : date <= maxDate;
34
+ return isValidByMin && isValidByMax;
35
+ }
36
+
37
+ // Date => 31.01.2023
38
+ }, {
39
+ key: "valueToString",
40
+ value: function valueToString(value, withTime) {
41
+ if (!value) return '';
42
+ var toTwoDigits = function toTwoDigits(item) {
43
+ return "0".concat(item).slice(-2);
44
+ };
45
+ var date = [toTwoDigits(value.getDate()), toTwoDigits(value.getMonth() + 1), value.getFullYear()].join('.');
46
+ var time = [toTwoDigits(value.getHours()), toTwoDigits(value.getMinutes())].join(':');
47
+ return withTime ? date + ' ' + time : date;
48
+ }
49
+
50
+ // 31.01.2023 => Date
51
+ }, {
52
+ key: "stringToDate",
53
+ value: function stringToDate(str, withTime) {
54
+ var _str$split = str.split(' '),
55
+ _str$split2 = _slicedToArray(_str$split, 2),
56
+ dateStr = _str$split2[0],
57
+ timeStr = _str$split2[1];
58
+ var _dateStr$split = dateStr.split('.'),
59
+ _dateStr$split2 = _slicedToArray(_dateStr$split, 3),
60
+ dd = _dateStr$split2[0],
61
+ mm = _dateStr$split2[1],
62
+ yyyy = _dateStr$split2[2];
63
+ var _ref = timeStr ? timeStr.split(':') : ['00', '00'],
64
+ _ref2 = _slicedToArray(_ref, 2),
65
+ hours = _ref2[0],
66
+ minutes = _ref2[1];
67
+ var formattedDateStr = [mm, dd, yyyy].filter(function (i) {
68
+ return i;
69
+ }).join('/');
70
+ var formattedTimeStr = [hours, minutes, '00'].filter(function (i) {
71
+ return i;
72
+ }).join(':');
73
+ return new Date(withTime ? formattedDateStr + ' ' + formattedTimeStr : formattedDateStr);
74
+ }
75
+ }, {
76
+ key: "addHoursAndMinutesToDate",
77
+ value: function addHoursAndMinutesToDate(date, hours, minutes) {
78
+ var newDate = new Date(date);
79
+ newDate.setHours(hours, minutes, 0, 0);
80
+ return newDate;
81
+ }
82
+ }, {
83
+ key: "getHoursAndMinutesFromDate",
84
+ value: function getHoursAndMinutesFromDate(date) {
85
+ return [date.getHours(), date.getMinutes()];
86
+ }
87
+ }]);
88
+ }();
89
+ export var logic = new Logic();
@@ -0,0 +1,5 @@
1
+ export var generateDateInputPalette = function generateDateInputPalette(abstractPalette) {
2
+ return {
3
+ icon: abstractPalette.primary
4
+ };
5
+ };
@@ -0,0 +1,21 @@
1
+ import styled from 'styled-components';
2
+ import { breakpoints } from '../../../breakpoints';
3
+ export var Wrapper = styled.div.withConfig({
4
+ displayName: "styles__Wrapper",
5
+ componentId: "sc-7tnmvh-0"
6
+ })(["position:relative;"]);
7
+ export var InputWrapper = styled.div.withConfig({
8
+ displayName: "styles__InputWrapper",
9
+ componentId: "sc-7tnmvh-1"
10
+ })(["position:relative;"]);
11
+ export var Icon = styled.div.withConfig({
12
+ displayName: "styles__Icon",
13
+ componentId: "sc-7tnmvh-2"
14
+ })(["position:absolute;right:12px;top:0;height:100%;display:flex;justify-content:center;flex-direction:column;cursor:pointer;color:", ";"], function (_ref) {
15
+ var $palette = _ref.$palette;
16
+ return $palette.icon;
17
+ });
18
+ export var CalendarWrapper = styled.div.withConfig({
19
+ displayName: "styles__CalendarWrapper",
20
+ componentId: "sc-7tnmvh-3"
21
+ })(["padding:16px;@media ", "{padding:15px;}"], breakpoints.sm);
@@ -0,0 +1,66 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
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
+ 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
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import React, { useState } from 'react';
8
+ import { Drawer } from '../../../../common/Drawer';
9
+ import * as S from './styles';
10
+ import { Calendar } from '../../../../common/Calendar';
11
+ import { TimePicker } from '../TimePicker';
12
+ import { logic } from '../../../DateInput/logic';
13
+ import { DrawerHeader } from '../../../common/DrawerHeader';
14
+ export var MobileDrawerDateTimeCalendar = function MobileDrawerDateTimeCalendar(_ref) {
15
+ var isOpen = _ref.isOpen,
16
+ onClose = _ref.onClose,
17
+ maxDate = _ref.maxDate,
18
+ minDate = _ref.minDate,
19
+ onCalendarChange = _ref.onCalendarChange,
20
+ calendarDropdownValue = _ref.calendarDropdownValue,
21
+ afterSubmit = _ref.afterSubmit,
22
+ onSubmit = _ref.onSubmit,
23
+ onTimeChange = _ref.onTimeChange,
24
+ maxTime = _ref.maxTime,
25
+ minTime = _ref.minTime;
26
+ var _useState = useState(true),
27
+ _useState2 = _slicedToArray(_useState, 2),
28
+ isDateStep = _useState2[0],
29
+ setIsDateStep = _useState2[1];
30
+ var handleClose = function handleClose() {
31
+ onClose();
32
+ setIsDateStep(true);
33
+ };
34
+ var handleDone = function handleDone() {
35
+ if (isDateStep) {
36
+ setIsDateStep(false);
37
+ } else {
38
+ onSubmit();
39
+ afterSubmit();
40
+ setIsDateStep(true);
41
+ }
42
+ };
43
+ var currentHour = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getHours()) || 0;
44
+ var currentMinute = (calendarDropdownValue === null || calendarDropdownValue === void 0 ? void 0 : calendarDropdownValue.getMinutes()) || 0;
45
+ return /*#__PURE__*/React.createElement(Drawer, {
46
+ onClose: handleClose,
47
+ isOpen: isOpen,
48
+ isPadding: false
49
+ }, /*#__PURE__*/React.createElement(DrawerHeader, {
50
+ onClose: handleClose,
51
+ onSubmit: handleDone,
52
+ label: isDateStep ? 'Выберите дату' : 'Выберите время',
53
+ isSubmitDisabled: isDateStep ? !calendarDropdownValue : !calendarDropdownValue || !logic.isBetweenMinAndMax(calendarDropdownValue, minDate, maxDate)
54
+ }), isDateStep ? /*#__PURE__*/React.createElement(S.MobileCalendarWrapper, null, /*#__PURE__*/React.createElement(Calendar, {
55
+ value: calendarDropdownValue,
56
+ onChange: onCalendarChange,
57
+ minDate: minDate,
58
+ maxDate: maxDate,
59
+ isLargeMobileSize: true
60
+ })) : /*#__PURE__*/React.createElement(S.TimePickerWrapper, null, /*#__PURE__*/React.createElement(TimePicker, {
61
+ value: [currentHour, currentMinute],
62
+ onChange: onTimeChange,
63
+ maxTime: maxTime,
64
+ minTime: minTime
65
+ })));
66
+ };
@@ -0,0 +1,63 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
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
+ 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
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import { MobileDrawerDateTimeCalendar } from './index';
8
+ import React, { useCallback, useState } from 'react';
9
+ import 'react-calendar/dist/Calendar.css';
10
+ import { logic } from '../../../DateInput/logic';
11
+ var meta = {
12
+ title: 'form/DateTimeInput/_components/MobileDrawerDateTimeCalendar',
13
+ component: MobileDrawerDateTimeCalendar,
14
+ tags: ['autodocs']
15
+ };
16
+ export default meta;
17
+ export var Default = {
18
+ render: function Render() {
19
+ var _useState = useState(false),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ isOpen = _useState2[0],
22
+ setIsOpen = _useState2[1];
23
+ var _useState3 = useState(null),
24
+ _useState4 = _slicedToArray(_useState3, 2),
25
+ calendarDropdownValue = _useState4[0],
26
+ setCalendarDropdownValue = _useState4[1];
27
+ var handleClose = function handleClose() {
28
+ return setIsOpen(false);
29
+ };
30
+ var handleOpen = function handleOpen() {
31
+ return setIsOpen(true);
32
+ };
33
+ var handleSubmit = function handleSubmit() {
34
+ return calendarDropdownValue;
35
+ };
36
+ var handleCalendarChange = useCallback(function (newValue) {
37
+ var _ref = calendarDropdownValue ? logic.getHoursAndMinutesFromDate(calendarDropdownValue) : [0, 0],
38
+ _ref2 = _slicedToArray(_ref, 2),
39
+ hours = _ref2[0],
40
+ minutes = _ref2[1];
41
+ var newDate = logic.addHoursAndMinutesToDate(newValue, hours, minutes);
42
+ setCalendarDropdownValue(newDate);
43
+ }, [calendarDropdownValue]);
44
+ var handleTimePickerChange = useCallback(function (newValue) {
45
+ if (calendarDropdownValue) {
46
+ var newDate = logic.addHoursAndMinutesToDate(calendarDropdownValue, newValue[0], newValue[1]);
47
+ setCalendarDropdownValue(newDate);
48
+ }
49
+ }, [calendarDropdownValue]);
50
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("button", {
51
+ type: 'button',
52
+ onClick: handleOpen
53
+ }, "Open"), /*#__PURE__*/React.createElement(MobileDrawerDateTimeCalendar, {
54
+ calendarDropdownValue: calendarDropdownValue,
55
+ onCalendarChange: handleCalendarChange,
56
+ isOpen: isOpen,
57
+ onClose: handleClose,
58
+ onSubmit: handleSubmit,
59
+ afterSubmit: handleClose,
60
+ onTimeChange: handleTimePickerChange
61
+ }));
62
+ }
63
+ };
@@ -0,0 +1,9 @@
1
+ import styled from 'styled-components';
2
+ export var MobileCalendarWrapper = styled.div.withConfig({
3
+ displayName: "styles__MobileCalendarWrapper",
4
+ componentId: "sc-vw0y4c-0"
5
+ })(["padding:18px 16px 30px;display:flex;justify-content:center;"]);
6
+ export var TimePickerWrapper = styled.div.withConfig({
7
+ displayName: "styles__TimePickerWrapper",
8
+ componentId: "sc-vw0y4c-1"
9
+ })(["padding-bottom:30px;display:flex;justify-content:center;"]);
@@ -0,0 +1,193 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
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
+ 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
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
8
+ import * as S from './styles';
9
+ // Константы для оптимизации
10
+ var OPACITY_STEPS = [1, 0.8, 0.5, 0.3, 0.2];
11
+ var INCLINE_STEPS = [0, 20, 45, 70, 80];
12
+ var MobileNumbersColumn = function MobileNumbersColumn(_ref) {
13
+ var numbers = _ref.numbers,
14
+ value = _ref.value,
15
+ onChange = _ref.onChange;
16
+ var _useState = useState(null),
17
+ _useState2 = _slicedToArray(_useState, 2),
18
+ centerNumber = _useState2[0],
19
+ setCenterNumber = _useState2[1];
20
+ var containerRef = useRef(null);
21
+ var itemsRef = useRef([]);
22
+ var isScrollingRef = useRef(null);
23
+ var rafRef = useRef(null);
24
+
25
+ // Функция для центрирования элемента
26
+ var snapToCenter = useCallback(function (index) {
27
+ if (!containerRef.current || index === -1) return;
28
+ var container = containerRef.current;
29
+ var item = itemsRef.current[index];
30
+ if (!item) return;
31
+ var scrollOffset = item.offsetTop - container.clientHeight / 2 + item.clientHeight / 2;
32
+ container.scrollTo({
33
+ top: scrollOffset,
34
+ behavior: 'smooth'
35
+ });
36
+ }, []);
37
+
38
+ // Оптимизированная функция поиска центра
39
+ var findCenterElement = useCallback(function () {
40
+ if (!containerRef.current) return -1;
41
+ var container = containerRef.current;
42
+ var containerRect = container.getBoundingClientRect();
43
+ var containerCenter = containerRect.top + containerRect.height / 2;
44
+ var minDistance = Infinity;
45
+ var closestIndex = -1;
46
+
47
+ // Находим только ближайший индекс
48
+ itemsRef.current.forEach(function (item, index) {
49
+ if (item) {
50
+ var itemRect = item.getBoundingClientRect();
51
+ var itemCenter = itemRect.top + itemRect.height / 2;
52
+ var distance = Math.abs(itemCenter - containerCenter);
53
+ if (distance < minDistance) {
54
+ minDistance = distance;
55
+ closestIndex = index;
56
+ }
57
+ }
58
+ });
59
+ var newNumber = numbers.find(function (a, index) {
60
+ return index === closestIndex;
61
+ });
62
+ if (closestIndex !== -1 && typeof newNumber === 'number') {
63
+ setCenterNumber(newNumber.toString());
64
+ }
65
+ return closestIndex;
66
+ }, [numbers]);
67
+ useEffect(function () {
68
+ if (value) {
69
+ var indexValue = numbers.indexOf(value);
70
+ snapToCenter(indexValue);
71
+ } else {
72
+ snapToCenter(0);
73
+ }
74
+ }, [numbers, snapToCenter, value]);
75
+
76
+ // Оптимизированный обработчик скролла
77
+ useEffect(function () {
78
+ if (!containerRef.current) return;
79
+ var container = containerRef.current;
80
+ var handleScroll = function handleScroll() {
81
+ if (rafRef.current) {
82
+ cancelAnimationFrame(rafRef.current);
83
+ }
84
+ rafRef.current = requestAnimationFrame(function () {
85
+ findCenterElement();
86
+ });
87
+ if (isScrollingRef.current) {
88
+ clearTimeout(isScrollingRef.current);
89
+ }
90
+ isScrollingRef.current = setTimeout(function () {
91
+ var closestIndex = findCenterElement();
92
+ if (closestIndex !== -1) {
93
+ snapToCenter(closestIndex);
94
+ var newNumber = numbers.find(function (item, index) {
95
+ return index === closestIndex;
96
+ });
97
+ if (typeof newNumber === 'number') {
98
+ onChange(newNumber);
99
+ }
100
+ }
101
+ }, 150);
102
+ };
103
+ container.addEventListener('scroll', handleScroll, {
104
+ passive: true
105
+ });
106
+ setTimeout(function () {
107
+ return findCenterElement();
108
+ }, 0);
109
+ return function () {
110
+ container.removeEventListener('scroll', handleScroll);
111
+ if (rafRef.current) {
112
+ cancelAnimationFrame(rafRef.current);
113
+ }
114
+ if (isScrollingRef.current) {
115
+ clearTimeout(isScrollingRef.current);
116
+ }
117
+ };
118
+ }, [findCenterElement, numbers, onChange, snapToCenter]);
119
+
120
+ // Функция получения стилей на основе индекса
121
+ var getItemStyles = useCallback(function (index) {
122
+ if (!centerNumber) return {
123
+ opacity: 0.2,
124
+ incline: 80
125
+ };
126
+ var activeIndex = numbers.indexOf(Number(centerNumber));
127
+
128
+ // Расстояние от активного элемента
129
+ var distance = Math.abs(index - activeIndex);
130
+ var maxDistance = 5; // Максимальное расстояние для применения эффекта
131
+
132
+ // Выбираем стиль на основе расстояния
133
+ var stepIndex = Math.min(distance, maxDistance);
134
+
135
+ // Используем предвычисленные значения
136
+ var opacityIndex = Math.min(stepIndex, OPACITY_STEPS.length - 1);
137
+ var inclineIndex = Math.min(stepIndex, INCLINE_STEPS.length - 1);
138
+ return {
139
+ opacity: OPACITY_STEPS[opacityIndex],
140
+ incline: INCLINE_STEPS[inclineIndex]
141
+ };
142
+ }, [centerNumber, numbers]);
143
+ var handleNumberClick = useCallback(function (index) {
144
+ snapToCenter(index);
145
+ }, [snapToCenter]);
146
+ return /*#__PURE__*/React.createElement(S.Wrapper, {
147
+ ref: containerRef
148
+ }, /*#__PURE__*/React.createElement(S.Number, {
149
+ $opacity: 0,
150
+ $isActive: false,
151
+ $incline: 0
152
+ }), /*#__PURE__*/React.createElement(S.Number, {
153
+ $opacity: 0,
154
+ $isActive: false,
155
+ $incline: 0
156
+ }), /*#__PURE__*/React.createElement(S.Number, {
157
+ $opacity: 0,
158
+ $isActive: false,
159
+ $incline: 0
160
+ }), numbers.map(function (numberItem, index) {
161
+ var _getItemStyles = getItemStyles(index),
162
+ opacity = _getItemStyles.opacity,
163
+ incline = _getItemStyles.incline;
164
+ var isActive = centerNumber === numberItem.toString();
165
+ return /*#__PURE__*/React.createElement(S.Number, {
166
+ key: numberItem,
167
+ $opacity: opacity,
168
+ $incline: incline,
169
+ $isActive: isActive,
170
+ ref: function ref(el) {
171
+ if (el) {
172
+ itemsRef.current[index] = el;
173
+ }
174
+ },
175
+ onClick: function onClick() {
176
+ return handleNumberClick(index);
177
+ }
178
+ }, numberItem.toString().length === 1 ? "0".concat(numberItem) : numberItem);
179
+ }), /*#__PURE__*/React.createElement(S.Number, {
180
+ $opacity: 0,
181
+ $isActive: false,
182
+ $incline: 0
183
+ }), /*#__PURE__*/React.createElement(S.Number, {
184
+ $opacity: 0,
185
+ $isActive: false,
186
+ $incline: 0
187
+ }), /*#__PURE__*/React.createElement(S.Number, {
188
+ $opacity: 0,
189
+ $isActive: false,
190
+ $incline: 0
191
+ }));
192
+ };
193
+ export default MobileNumbersColumn;
@@ -0,0 +1,18 @@
1
+ import styled, { css } from 'styled-components';
2
+ export var Wrapper = styled.div.withConfig({
3
+ displayName: "styles__Wrapper",
4
+ componentId: "sc-jqg7lg-0"
5
+ })(["height:100%;overflow:scroll;display:flex;flex-direction:column;align-items:center;width:100%;position:relative;text-align:right;transform:translateZ(0);backface-visibility:hidden;will-change:transform;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none;}"]);
6
+ export var Number = styled.div.withConfig({
7
+ displayName: "styles__Number",
8
+ componentId: "sc-jqg7lg-1"
9
+ })(["opacity:", ";width:28px;height:28px;flex-shrink:0;transform:translateZ(0) rotateX(", "deg);backface-visibility:hidden;will-change:transform,opacity;transition:all 0.1s ease;", ""], function (_ref) {
10
+ var $opacity = _ref.$opacity;
11
+ return $opacity;
12
+ }, function (_ref2) {
13
+ var $incline = _ref2.$incline;
14
+ return $incline;
15
+ }, function (_ref3) {
16
+ var $isActive = _ref3.$isActive;
17
+ return $isActive && css(["margin:4px 0;"]);
18
+ });
@@ -0,0 +1,132 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
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
+ 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
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import React from 'react';
8
+ import * as S from './styles';
9
+ import { useComponentPalette } from '../../../../../palette';
10
+ import { Scrollbar } from '../../../../common/Scrollbar';
11
+ import { useMobile } from '../../../../../hooks/useMedia';
12
+ import MobileNumbersColumn from '../MobileNumbersColumn';
13
+ import { Typography } from '../../../../common/Typography';
14
+ var isIphone = /iPhone/.test(navigator.userAgent);
15
+ var HOURS = new Array(24).fill(0).map(function (item, index) {
16
+ return index;
17
+ });
18
+ var MINUTES = new Array(60).fill(0).map(function (item, index) {
19
+ return index;
20
+ });
21
+ var getIsDisabled = function getIsDisabled(current, maxNumber, minNumber) {
22
+ return current > maxNumber || current < minNumber;
23
+ };
24
+ export var TimePicker = function TimePicker(_ref) {
25
+ var value = _ref.value,
26
+ onChange = _ref.onChange,
27
+ _ref$height = _ref.height,
28
+ height = _ref$height === void 0 ? 230 : _ref$height,
29
+ maxTime = _ref.maxTime,
30
+ minTime = _ref.minTime;
31
+ var palette = useComponentPalette('timePicker');
32
+ var isMobile = useMobile();
33
+ var _value = _slicedToArray(value, 2),
34
+ hour = _value[0],
35
+ minute = _value[1];
36
+ var maxTimeHour = maxTime === null || maxTime === void 0 ? void 0 : maxTime[0];
37
+ var maxTimeMinute = maxTime === null || maxTime === void 0 ? void 0 : maxTime[1];
38
+ var minTimeHour = minTime === null || minTime === void 0 ? void 0 : minTime[0];
39
+ var minTimeMinute = minTime === null || minTime === void 0 ? void 0 : minTime[1];
40
+ var handleHourChange = function handleHourChange(newHour) {
41
+ if (newHour === maxTimeHour && maxTimeMinute && minute > maxTimeMinute) {
42
+ return onChange([newHour, maxTimeMinute]);
43
+ }
44
+ if (newHour === minTimeHour && minTimeMinute && minute < minTimeMinute) {
45
+ return onChange([newHour, minTimeMinute]);
46
+ }
47
+ return onChange([newHour, minute]);
48
+ };
49
+ var handleMinuteChange = function handleMinuteChange(newMinute) {
50
+ return onChange([hour, newMinute]);
51
+ };
52
+ var getIsDisabledMinute = function getIsDisabledMinute(current) {
53
+ if (hour === maxTimeHour && maxTimeMinute && hour === minTimeHour && minTimeMinute) {
54
+ return getIsDisabled(current, maxTimeMinute, minTimeMinute);
55
+ }
56
+ if (hour === maxTimeHour && maxTimeMinute) {
57
+ return getIsDisabled(current, maxTimeMinute, 0);
58
+ }
59
+ if (hour === minTimeHour && minTimeMinute) {
60
+ return getIsDisabled(current, 59, minTimeMinute);
61
+ }
62
+ return false;
63
+ };
64
+ var mobileHours = HOURS.filter(function (hourItem) {
65
+ return !getIsDisabled(hourItem, maxTimeHour ? maxTimeHour : 23, minTimeHour ? minTimeHour : 0);
66
+ });
67
+ var mobileMinutes = MINUTES.filter(function (minuteItem) {
68
+ return !getIsDisabledMinute(minuteItem);
69
+ });
70
+ if (isMobile) {
71
+ return /*#__PURE__*/React.createElement(S.MobileWrapper, {
72
+ $isIphone: isIphone
73
+ }, /*#__PURE__*/React.createElement(S.SelectedMask, null), /*#__PURE__*/React.createElement(MobileNumbersColumn, {
74
+ numbers: mobileHours,
75
+ onChange: handleHourChange,
76
+ value: hour
77
+ }), /*#__PURE__*/React.createElement(MobileNumbersColumn, {
78
+ numbers: mobileMinutes,
79
+ onChange: handleMinuteChange,
80
+ value: minute
81
+ }));
82
+ }
83
+ return /*#__PURE__*/React.createElement(S.Wrapper, {
84
+ $height: height
85
+ }, /*#__PURE__*/React.createElement(S.ColumnWrapper, {
86
+ $borderColor: palette.divider
87
+ }, /*#__PURE__*/React.createElement(S.Label, {
88
+ $color: palette.label,
89
+ variant: 'captionRegular'
90
+ }, "\u0447\u0430\u0441"), /*#__PURE__*/React.createElement(Scrollbar, {
91
+ trackWidth: 3
92
+ }, /*#__PURE__*/React.createElement(S.ValuesWrapper, null, HOURS.map(function (hourItem) {
93
+ return /*#__PURE__*/React.createElement(S.ValueWrapper, {
94
+ key: hourItem,
95
+ $color: palette.tile,
96
+ $colorActive: palette.tileActive,
97
+ $isActive: hour === hourItem,
98
+ $bgActive: palette.tileBgActive,
99
+ $colorDisabled: palette.tileDisabled,
100
+ type: 'button',
101
+ onClick: function onClick() {
102
+ return handleHourChange(hourItem);
103
+ },
104
+ disabled: getIsDisabled(hourItem, maxTimeHour ? maxTimeHour : 23, minTimeHour ? minTimeHour : 0)
105
+ }, /*#__PURE__*/React.createElement(Typography, {
106
+ variant: 'captionRegular'
107
+ }, hourItem.toString().length === 1 ? "0".concat(hourItem) : hourItem));
108
+ })))), /*#__PURE__*/React.createElement(S.ColumnWrapper, {
109
+ $borderColor: palette.divider
110
+ }, /*#__PURE__*/React.createElement(S.Label, {
111
+ $color: palette.label,
112
+ variant: 'captionRegular'
113
+ }, "\u043C\u0438\u043D"), /*#__PURE__*/React.createElement(Scrollbar, {
114
+ trackWidth: 3
115
+ }, /*#__PURE__*/React.createElement(S.ValuesWrapper, null, MINUTES.map(function (minuteItem) {
116
+ return /*#__PURE__*/React.createElement(S.ValueWrapper, {
117
+ key: minuteItem,
118
+ $color: palette.tile,
119
+ $colorActive: palette.tileActive,
120
+ $isActive: minute === minuteItem,
121
+ $bgActive: palette.tileBgActive,
122
+ $colorDisabled: palette.tileDisabled,
123
+ type: 'button',
124
+ onClick: function onClick() {
125
+ return handleMinuteChange(minuteItem);
126
+ },
127
+ disabled: getIsDisabledMinute(minuteItem)
128
+ }, /*#__PURE__*/React.createElement(Typography, {
129
+ variant: 'captionRegular'
130
+ }, minuteItem.toString().length === 1 ? "0".concat(minuteItem) : minuteItem));
131
+ })))));
132
+ };
@@ -0,0 +1,32 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ 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; }
6
+ 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; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
8
+ import { TimePicker } from './index';
9
+ import React, { useState } from 'react';
10
+ var meta = {
11
+ title: 'form/DateTimeInput/_components/TimePicker',
12
+ component: TimePicker,
13
+ tags: ['autodocs']
14
+ };
15
+ export default meta;
16
+ export var Default = {
17
+ args: {
18
+ height: 300,
19
+ minTime: [10, 30],
20
+ maxTime: [22, 15]
21
+ },
22
+ render: function Render(props) {
23
+ var _useState = useState([11, 0]),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ time = _useState2[0],
26
+ setTime = _useState2[1];
27
+ return /*#__PURE__*/React.createElement(TimePicker, _extends({}, props, {
28
+ value: time,
29
+ onChange: setTime
30
+ }));
31
+ }
32
+ };
@@ -0,0 +1,11 @@
1
+ import hexToRgba from '../../../../../utils/hexToRgba';
2
+ export var generateTimePickerPalette = function generateTimePickerPalette(abstractPalette) {
3
+ return {
4
+ label: abstractPalette.primary,
5
+ tile: hexToRgba(abstractPalette.primary, 0.7),
6
+ divider: hexToRgba(abstractPalette.primary, 0.1),
7
+ tileActive: abstractPalette.primary,
8
+ tileBgActive: abstractPalette.secondary,
9
+ tileDisabled: abstractPalette.neutralFoggy
10
+ };
11
+ };