@invoicebox/ui 0.1.0-alpha.292 → 0.1.0-alpha.295

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 (317) 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/index.d.ts +2 -2
  4. package/dist/components/common/Drawer/index.js +83 -15
  5. package/dist/components/common/Drawer/palette.js +1 -1
  6. package/dist/components/common/Drawer/styles.d.ts +16 -694
  7. package/dist/components/common/Drawer/styles.js +51 -35
  8. package/dist/components/common/Dropdown/index.d.ts +2 -2
  9. package/dist/components/common/Dropdown/index.js +63 -13
  10. package/dist/components/common/Dropdown/palette.js +1 -1
  11. package/dist/components/common/Dropdown/styles.d.ts +2 -0
  12. package/dist/components/common/Dropdown/styles.js +17 -3
  13. package/dist/components/common/EntityAutocompleteOptionsDrawer/index.js +6 -2
  14. package/dist/components/common/EntityAutocompleteOptionsDrawer/palette.js +1 -1
  15. package/dist/components/common/PointsLoader/palette.js +1 -1
  16. package/dist/components/common/Scrollbar/index.js +12 -32
  17. package/dist/components/common/Scrollbar/styles.d.ts +7 -0
  18. package/dist/components/common/Scrollbar/styles.js +30 -0
  19. package/dist/components/common/Toast/styles.js +1 -1
  20. package/dist/components/form/Autocomplete/components/Autocomplete/index.d.ts +1 -0
  21. package/dist/components/form/Autocomplete/components/Autocomplete/index.js +92 -8
  22. package/dist/components/form/Autocomplete/components/Autocomplete/styles.d.ts +1 -0
  23. package/dist/components/form/Autocomplete/components/Autocomplete/styles.js +8 -4
  24. package/dist/components/form/Autocomplete/components/AutocompleteDefaultOption/palette.js +1 -1
  25. package/dist/components/form/Autocomplete/components/OrganizationAutocompleteItem/palette.js +1 -1
  26. package/dist/components/form/CodeInput/palette.js +1 -1
  27. package/dist/components/form/CountrySelect/index.js +3 -1
  28. package/dist/components/form/CountrySelect/palette.js +1 -1
  29. package/dist/components/form/DateInput/index.js +3 -1
  30. package/dist/components/form/DateTimeInput/components/TimePicker/palette.js +1 -1
  31. package/dist/components/form/DateTimeInput/index.js +3 -1
  32. package/dist/components/form/DateTimeInput/palette.js +1 -1
  33. package/dist/components/form/PureInput/palette.js +1 -1
  34. package/dist/components/form/Select/index.js +3 -1
  35. package/dist/components/form/Select/palette.js +1 -1
  36. package/dist/components/form/TextInput/index.d.ts +2 -2
  37. package/dist/components/form/TextInput/index.js +4 -2
  38. package/dist/components/form/Toggle/palette.js +1 -1
  39. package/dist/components/form/common/DrawerHeader/palette.js +1 -1
  40. package/dist/esm/breakpoints/index.js +7 -0
  41. package/dist/esm/components/_helpers/StoryBorderWrapper/index.js +5 -0
  42. package/dist/esm/components/_helpers/selectOptions.js +37 -0
  43. package/dist/esm/components/common/AppCardLink/components/ApkRu.js +99 -0
  44. package/dist/esm/components/common/AppCardLink/components/AppGalleryRu.js +91 -0
  45. package/dist/esm/components/common/AppCardLink/components/GooglePlayRu.js +177 -0
  46. package/dist/esm/components/common/AppCardLink/components/RuStoreRu.js +94 -0
  47. package/dist/esm/components/common/AppCardLink/constants.js +1 -0
  48. package/dist/esm/components/common/AppCardLink/index.js +24 -0
  49. package/dist/esm/components/common/AppCardLink/index.stories.js +14 -0
  50. package/dist/esm/components/common/AppCardLink/styles.js +5 -0
  51. package/dist/esm/components/common/Arrow/components/StyledSvg/index.js +18 -0
  52. package/dist/esm/components/common/Arrow/components/StyledSvg/index.stories.js +20 -0
  53. package/dist/esm/components/common/Arrow/components/Svg/index.js +19 -0
  54. package/dist/esm/components/common/Arrow/components/Svg/index.stories.js +15 -0
  55. package/dist/esm/components/common/Arrow/index.js +22 -0
  56. package/dist/esm/components/common/Arrow/index.stories.js +15 -0
  57. package/dist/esm/components/common/Arrow/palette.js +7 -0
  58. package/dist/esm/components/common/BgCard/index.js +13 -0
  59. package/dist/esm/components/common/BgCard/index.stories.js +14 -0
  60. package/dist/esm/components/common/BgCard/palette.js +5 -0
  61. package/dist/esm/components/common/BgCard/styles.js +12 -0
  62. package/dist/esm/components/common/Calendar/docs.stories.js +14 -0
  63. package/dist/esm/components/common/Calendar/index.js +44 -0
  64. package/dist/esm/components/common/Calendar/index.stories.js +69 -0
  65. package/dist/esm/components/common/Calendar/palette.js +12 -0
  66. package/dist/esm/components/common/Calendar/styles.js +34 -0
  67. package/dist/esm/components/common/Chip/index.js +17 -0
  68. package/dist/esm/components/common/Chip/index.stories.js +14 -0
  69. package/dist/esm/components/common/Chip/styles.js +18 -0
  70. package/dist/esm/components/common/Divider/index.js +13 -0
  71. package/dist/esm/components/common/Divider/index.stories.js +8 -0
  72. package/dist/esm/components/common/Divider/palette.js +5 -0
  73. package/dist/esm/components/common/Divider/styles.js +11 -0
  74. package/dist/esm/components/common/Drawer/index.js +133 -0
  75. package/dist/esm/components/common/Drawer/index.stories.js +77 -0
  76. package/dist/esm/components/common/Drawer/palette.js +14 -0
  77. package/dist/esm/components/common/Drawer/styles.js +61 -0
  78. package/dist/esm/components/common/Dropdown/index.js +163 -0
  79. package/dist/esm/components/common/Dropdown/index.stories.js +53 -0
  80. package/dist/esm/components/common/Dropdown/palette.js +7 -0
  81. package/dist/esm/components/common/Dropdown/styles.js +58 -0
  82. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/index.js +59 -0
  83. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/index.stories.js +92 -0
  84. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/palette.js +6 -0
  85. package/dist/esm/components/common/EntityAutocompleteOptionsDrawer/styles.js +29 -0
  86. package/dist/esm/components/common/Flag/components/ArmFlag/index.js +23 -0
  87. package/dist/esm/components/common/Flag/components/ArmFlag/index.stories.js +8 -0
  88. package/dist/esm/components/common/Flag/components/AzeFlag/index.js +33 -0
  89. package/dist/esm/components/common/Flag/components/AzeFlag/index.stories.js +8 -0
  90. package/dist/esm/components/common/Flag/components/BlrFlag/index.js +28 -0
  91. package/dist/esm/components/common/Flag/components/BlrFlag/index.stories.js +8 -0
  92. package/dist/esm/components/common/Flag/components/ChnFlag/index.js +25 -0
  93. package/dist/esm/components/common/Flag/components/ChnFlag/index.stories.js +8 -0
  94. package/dist/esm/components/common/Flag/components/EngFlag/index.js +47 -0
  95. package/dist/esm/components/common/Flag/components/EngFlag/index.stories.js +8 -0
  96. package/dist/esm/components/common/Flag/components/EspFlag/index.js +79 -0
  97. package/dist/esm/components/common/Flag/components/EspFlag/index.stories.js +8 -0
  98. package/dist/esm/components/common/Flag/components/KazFlag/index.js +28 -0
  99. package/dist/esm/components/common/Flag/components/KazFlag/index.stories.js +8 -0
  100. package/dist/esm/components/common/Flag/components/KgzFlag/index.js +25 -0
  101. package/dist/esm/components/common/Flag/components/KgzFlag/index.stories.js +8 -0
  102. package/dist/esm/components/common/Flag/components/MdaFlag/index.js +45 -0
  103. package/dist/esm/components/common/Flag/components/MdaFlag/index.stories.js +8 -0
  104. package/dist/esm/components/common/Flag/components/RusFlag/index.js +25 -0
  105. package/dist/esm/components/common/Flag/components/RusFlag/index.stories.js +8 -0
  106. package/dist/esm/components/common/Flag/components/TjkFlag/index.js +30 -0
  107. package/dist/esm/components/common/Flag/components/TjkFlag/index.stories.js +8 -0
  108. package/dist/esm/components/common/Flag/components/UnknownFlag/index.js +19 -0
  109. package/dist/esm/components/common/Flag/components/UnknownFlag/index.stories.js +8 -0
  110. package/dist/esm/components/common/Flag/components/UzbFlag/index.js +36 -0
  111. package/dist/esm/components/common/Flag/components/UzbFlag/index.stories.js +8 -0
  112. package/dist/esm/components/common/Flag/index.js +39 -0
  113. package/dist/esm/components/common/Flag/index.stories.js +16 -0
  114. package/dist/esm/components/common/Flag/styles.js +10 -0
  115. package/dist/esm/components/common/InvoiceboxLogo/components/LogoDarkRu.js +44 -0
  116. package/dist/esm/components/common/InvoiceboxLogo/index.js +8 -0
  117. package/dist/esm/components/common/InvoiceboxLogo/index.stories.js +12 -0
  118. package/dist/esm/components/common/InvoiceboxSpinner/index.js +29 -0
  119. package/dist/esm/components/common/InvoiceboxSpinner/index.stories.js +12 -0
  120. package/dist/esm/components/common/InvoiceboxSpinner/palette.js +6 -0
  121. package/dist/esm/components/common/InvoiceboxSpinner/styles.js +10 -0
  122. package/dist/esm/components/common/PointsLoader/index.js +16 -0
  123. package/dist/esm/components/common/PointsLoader/index.stories.js +10 -0
  124. package/dist/esm/components/common/PointsLoader/palette.js +7 -0
  125. package/dist/esm/components/common/PointsLoader/styles.js +21 -0
  126. package/dist/esm/components/common/QRCode/index.js +26 -0
  127. package/dist/esm/components/common/QRCode/index.stories.js +13 -0
  128. package/dist/esm/components/common/ReadOnlyLabelValueField/index.js +24 -0
  129. package/dist/esm/components/common/ReadOnlyLabelValueField/index.stories.js +14 -0
  130. package/dist/esm/components/common/ReadOnlyLabelValueField/palette.js +5 -0
  131. package/dist/esm/components/common/ReadOnlyLabelValueField/styles.js +15 -0
  132. package/dist/esm/components/common/Scrollbar/index.js +22 -0
  133. package/dist/esm/components/common/Scrollbar/index.stories.js +43 -0
  134. package/dist/esm/components/common/Scrollbar/palette.js +5 -0
  135. package/dist/esm/components/common/Scrollbar/styles.js +21 -0
  136. package/dist/esm/components/common/SecondaryButton/index.js +44 -0
  137. package/dist/esm/components/common/SecondaryButton/index.stories.js +33 -0
  138. package/dist/esm/components/common/SecondaryButton/palette.js +8 -0
  139. package/dist/esm/components/common/SecondaryButton/styles.js +43 -0
  140. package/dist/esm/components/common/Skeleton/index.js +18 -0
  141. package/dist/esm/components/common/Skeleton/index.stories.js +24 -0
  142. package/dist/esm/components/common/Skeleton/palette.js +6 -0
  143. package/dist/esm/components/common/Skeleton/styles.js +28 -0
  144. package/dist/esm/components/common/Toast/docs.stories.js +14 -0
  145. package/dist/esm/components/common/Toast/index.js +29 -0
  146. package/dist/esm/components/common/Toast/index.stories.js +22 -0
  147. package/dist/esm/components/common/Toast/palette.js +7 -0
  148. package/dist/esm/components/common/Toast/styles.js +17 -0
  149. package/dist/esm/components/common/Typography/docs.stories.js +14 -0
  150. package/dist/esm/components/common/Typography/index.js +30 -0
  151. package/dist/esm/components/common/Typography/index.stories.js +29 -0
  152. package/dist/esm/components/common/Typography/styles.js +9 -0
  153. package/dist/esm/components/common/Typography/typography.js +25 -0
  154. package/dist/esm/components/common/WarningIcon/components/Icon.js +15 -0
  155. package/dist/esm/components/common/WarningIcon/index.js +13 -0
  156. package/dist/esm/components/common/WarningIcon/index.stories.js +8 -0
  157. package/dist/esm/components/common/WarningIcon/palette.js +5 -0
  158. package/dist/esm/components/common/WarningIcon/styles.js +15 -0
  159. package/dist/esm/components/common/_helpers/selectOptions.js +39 -0
  160. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.js +266 -0
  161. package/dist/esm/components/form/Autocomplete/components/Autocomplete/index.stories.js +55 -0
  162. package/dist/esm/components/form/Autocomplete/components/Autocomplete/styles.js +42 -0
  163. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/index.js +21 -0
  164. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/index.stories.js +17 -0
  165. package/dist/esm/components/form/Autocomplete/components/AutocompleteDefaultOption/palette.js +6 -0
  166. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.js +40 -0
  167. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/index.stories.js +20 -0
  168. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/palette.js +9 -0
  169. package/dist/esm/components/form/Autocomplete/components/OrganizationAutocompleteItem/styles.js +58 -0
  170. package/dist/esm/components/form/Autocomplete/index.js +3 -0
  171. package/dist/esm/components/form/CodeInput/index.js +93 -0
  172. package/dist/esm/components/form/CodeInput/index.stories.js +43 -0
  173. package/dist/esm/components/form/CodeInput/palette.js +7 -0
  174. package/dist/esm/components/form/CodeInput/styles.js +24 -0
  175. package/dist/esm/components/form/CountrySelect/components/CountryItem/index.js +32 -0
  176. package/dist/esm/components/form/CountrySelect/components/CountryItem/index.stories.js +29 -0
  177. package/dist/esm/components/form/CountrySelect/components/CountryItem/stlyes.js +24 -0
  178. package/dist/esm/components/form/CountrySelect/index.js +115 -0
  179. package/dist/esm/components/form/CountrySelect/index.stories.js +51 -0
  180. package/dist/esm/components/form/CountrySelect/logic.js +18 -0
  181. package/dist/esm/components/form/CountrySelect/palette.js +10 -0
  182. package/dist/esm/components/form/CountrySelect/stlyes.js +20 -0
  183. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.js +95 -0
  184. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/index.stories.js +33 -0
  185. package/dist/esm/components/form/CurrencyInput/CoreCurrencyInput/styles.js +8 -0
  186. package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.js +16 -0
  187. package/dist/esm/components/form/CurrencyInput/CurrencyInputNumber/index.stories.js +46 -0
  188. package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.js +16 -0
  189. package/dist/esm/components/form/CurrencyInput/CurrencyInputString/index.stories.js +32 -0
  190. package/dist/esm/components/form/CurrencyInput/README.md +24 -0
  191. package/dist/esm/components/form/DateInput/components/CalendarIcon/index.js +24 -0
  192. package/dist/esm/components/form/DateInput/components/CalendarIcon/index.stories.js +8 -0
  193. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/index.js +27 -0
  194. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/index.stories.js +65 -0
  195. package/dist/esm/components/form/DateInput/components/MobileDrawerDateCalendar/styles.js +5 -0
  196. package/dist/esm/components/form/DateInput/docs.stories.js +14 -0
  197. package/dist/esm/components/form/DateInput/index.js +173 -0
  198. package/dist/esm/components/form/DateInput/index.stories.js +48 -0
  199. package/dist/esm/components/form/DateInput/logic.js +89 -0
  200. package/dist/esm/components/form/DateInput/palette.js +5 -0
  201. package/dist/esm/components/form/DateInput/styles.js +21 -0
  202. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.js +66 -0
  203. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/index.stories.js +63 -0
  204. package/dist/esm/components/form/DateTimeInput/components/MobileDrawerDateTimeCalendar/styles.js +9 -0
  205. package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/index.js +193 -0
  206. package/dist/esm/components/form/DateTimeInput/components/MobileNumbersColumn/styles.js +18 -0
  207. package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.js +132 -0
  208. package/dist/esm/components/form/DateTimeInput/components/TimePicker/index.stories.js +32 -0
  209. package/dist/esm/components/form/DateTimeInput/components/TimePicker/palette.js +11 -0
  210. package/dist/esm/components/form/DateTimeInput/components/TimePicker/styles.js +54 -0
  211. package/dist/esm/components/form/DateTimeInput/hooks/useStringValue.js +22 -0
  212. package/dist/esm/components/form/DateTimeInput/hooks/useTimePickerHeight.js +31 -0
  213. package/dist/esm/components/form/DateTimeInput/index.js +234 -0
  214. package/dist/esm/components/form/DateTimeInput/index.stories.js +52 -0
  215. package/dist/esm/components/form/DateTimeInput/palette.js +11 -0
  216. package/dist/esm/components/form/DateTimeInput/styles.js +51 -0
  217. package/dist/esm/components/form/InputLabel/index.js +33 -0
  218. package/dist/esm/components/form/InputLabel/index.stories.js +26 -0
  219. package/dist/esm/components/form/InputLabel/palette.js +9 -0
  220. package/dist/esm/components/form/InputLabel/styles.js +42 -0
  221. package/dist/esm/components/form/ModernPlaceholder/index.js +25 -0
  222. package/dist/esm/components/form/ModernPlaceholder/styles.js +28 -0
  223. package/dist/esm/components/form/PhoneInput/constants.js +69 -0
  224. package/dist/esm/components/form/PhoneInput/externalPhoneLogic.js +32 -0
  225. package/dist/esm/components/form/PhoneInput/hooks/useValidateInitialValue.js +33 -0
  226. package/dist/esm/components/form/PhoneInput/index.js +236 -0
  227. package/dist/esm/components/form/PhoneInput/index.stories.js +107 -0
  228. package/dist/esm/components/form/PhoneInput/phoneInputLogic.js +153 -0
  229. package/dist/esm/components/form/PhoneInput/styles.js +13 -0
  230. package/dist/esm/components/form/PhoneInput/types.js +3 -0
  231. package/dist/esm/components/form/PositiveIntegerInput/hooks/useFilters.js +15 -0
  232. package/dist/esm/components/form/PositiveIntegerInput/hooks/useIncrement.js +16 -0
  233. package/dist/esm/components/form/PositiveIntegerInput/hooks/useIncrementDisabledFlags.js +18 -0
  234. package/dist/esm/components/form/PositiveIntegerInput/hooks/useNormalizers.js +16 -0
  235. package/dist/esm/components/form/PositiveIntegerInput/index.js +128 -0
  236. package/dist/esm/components/form/PositiveIntegerInput/index.stories.js +40 -0
  237. package/dist/esm/components/form/PositiveIntegerInput/styles.js +16 -0
  238. package/dist/esm/components/form/PureInput/index.js +62 -0
  239. package/dist/esm/components/form/PureInput/index.stories.js +18 -0
  240. package/dist/esm/components/form/PureInput/palette.js +12 -0
  241. package/dist/esm/components/form/PureInput/styles.js +44 -0
  242. package/dist/esm/components/form/ResetButton/CrossIcon/index.js +16 -0
  243. package/dist/esm/components/form/ResetButton/CrossIcon/index.stories.js +8 -0
  244. package/dist/esm/components/form/ResetButton/index.js +13 -0
  245. package/dist/esm/components/form/ResetButton/index.stories.js +14 -0
  246. package/dist/esm/components/form/ResetButton/palette.js +5 -0
  247. package/dist/esm/components/form/ResetButton/styles.js +8 -0
  248. package/dist/esm/components/form/SearchInput/components/SearchIcon/index.js +17 -0
  249. package/dist/esm/components/form/SearchInput/components/SearchIcon/index.stories.js +8 -0
  250. package/dist/esm/components/form/SearchInput/index.js +93 -0
  251. package/dist/esm/components/form/SearchInput/index.stories.js +33 -0
  252. package/dist/esm/components/form/SearchInput/palette.js +5 -0
  253. package/dist/esm/components/form/SearchInput/styles.js +14 -0
  254. package/dist/esm/components/form/Select/components/Input/index.js +72 -0
  255. package/dist/esm/components/form/Select/components/Input/index.stories.js +21 -0
  256. package/dist/esm/components/form/Select/components/Input/styles.js +12 -0
  257. package/dist/esm/components/form/Select/components/Loader/index.js +16 -0
  258. package/dist/esm/components/form/Select/components/Loader/styles.js +13 -0
  259. package/dist/esm/components/form/Select/hooks/useOptionGroups.js +27 -0
  260. package/dist/esm/components/form/Select/index.js +245 -0
  261. package/dist/esm/components/form/Select/index.stories.js +241 -0
  262. package/dist/esm/components/form/Select/palette.js +7 -0
  263. package/dist/esm/components/form/Select/styles.js +60 -0
  264. package/dist/esm/components/form/TagsInput/assets/CrossIcon.js +23 -0
  265. package/dist/esm/components/form/TagsInput/index.js +161 -0
  266. package/dist/esm/components/form/TagsInput/index.stories.js +34 -0
  267. package/dist/esm/components/form/TagsInput/palette.js +6 -0
  268. package/dist/esm/components/form/TagsInput/styles.js +37 -0
  269. package/dist/esm/components/form/TextInput/index.js +113 -0
  270. package/dist/esm/components/form/TextInput/index.stories.js +42 -0
  271. package/dist/esm/components/form/TextInput/styles.js +9 -0
  272. package/dist/esm/components/form/Toggle/index.js +40 -0
  273. package/dist/esm/components/form/Toggle/index.stories.js +33 -0
  274. package/dist/esm/components/form/Toggle/palette.js +11 -0
  275. package/dist/esm/components/form/Toggle/styles.js +74 -0
  276. package/dist/esm/components/form/common/DrawerHeader/components/Cross24Icon/index.js +16 -0
  277. package/dist/esm/components/form/common/DrawerHeader/components/Cross24Icon/index.stories.js +8 -0
  278. package/dist/esm/components/form/common/DrawerHeader/index.js +28 -0
  279. package/dist/esm/components/form/common/DrawerHeader/index.stories.js +18 -0
  280. package/dist/esm/components/form/common/DrawerHeader/palette.js +8 -0
  281. package/dist/esm/components/form/common/DrawerHeader/styles.js +27 -0
  282. package/dist/esm/components/form/constants.js +40 -0
  283. package/dist/esm/hooks/useInputFocus/index.js +31 -0
  284. package/dist/esm/hooks/useInputFocus/index.stories.js +24 -0
  285. package/dist/esm/hooks/useLoadingSubmit/index.js +31 -0
  286. package/dist/esm/hooks/useLoadingSubmit/index.stories.js +28 -0
  287. package/dist/esm/hooks/useMedia/index.js +44 -0
  288. package/dist/esm/hooks/useMedia/index.stories.js +18 -0
  289. package/dist/esm/hooks/useModal/index.js +26 -0
  290. package/dist/esm/hooks/useModal/index.stories.js +35 -0
  291. package/dist/esm/hooks/useOutsideClick/index.js +27 -0
  292. package/dist/esm/hooks/useOutsideClick/index.stories.js +22 -0
  293. package/dist/esm/hooks/useUnupdatableHandler/index.js +11 -0
  294. package/dist/esm/hooks/useUnupdatableHandler/index.stories.js +42 -0
  295. package/dist/esm/index.js +53 -0
  296. package/dist/esm/palette/colors.stories.js +36 -0
  297. package/dist/esm/palette/constants.js +12 -0
  298. package/dist/esm/palette/context.js +64 -0
  299. package/dist/esm/palette/index.js +3 -0
  300. package/dist/esm/palette/index.stories.js +78 -0
  301. package/dist/esm/palette/provider.js +87 -0
  302. package/dist/esm/palette/types.js +1 -0
  303. package/dist/esm/palette/useComponentPalette.js +16 -0
  304. package/dist/esm/palette/usePalette.js +5 -0
  305. package/dist/esm/utils/hexToRgba.js +15 -0
  306. package/dist/esm/utils/transformColorByHsl.js +12 -0
  307. package/dist/esm/validate/index.js +175 -0
  308. package/dist/esm/validate/types.js +1 -0
  309. package/dist/esm/validate/utils/vatNumberValidateHelpers.js +129 -0
  310. package/dist/esm/validate/utils/websiteValidate.test.js +45 -0
  311. package/dist/hooks/useMedia/index.js +34 -13
  312. package/dist/hooks/useOutsideClick/index.d.ts +2 -2
  313. package/dist/hooks/useOutsideClick/index.js +14 -4
  314. package/dist/index.js +1 -13
  315. package/dist/utils/hexToRgba.d.ts +1 -0
  316. package/dist/utils/hexToRgba.js +21 -0
  317. package/package.json +7 -9
@@ -4,51 +4,67 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.Title = exports.StyledSheetContainer = exports.StyledSheetBackdrop = exports.DragIndicatorWrapper = exports.ChildrenWrapper = void 0;
7
+ exports.Title = exports.Sheet = exports.Root = exports.DragIndicator = exports.DragHandle = exports.ChildrenWrapper = exports.Backdrop = void 0;
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
- var _reactModalSheet = require("react-modal-sheet");
10
9
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
11
10
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
12
- var Title = exports.Title = _styledComponents["default"].div.withConfig({
13
- displayName: "styles__Title",
11
+ var Root = exports.Root = _styledComponents["default"].div.withConfig({
12
+ displayName: "styles__Root",
14
13
  componentId: "sc-1kysg49-0"
15
- })(["background-color:", ";padding:30px;position:relative;text-align:center;border-radius:10px 10px 0 0;"], function (_ref) {
16
- var $bg = _ref.$bg;
17
- return $bg;
18
- });
19
- var DragIndicatorWrapper = exports.DragIndicatorWrapper = _styledComponents["default"].div.withConfig({
20
- displayName: "styles__DragIndicatorWrapper",
14
+ })(["position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;"]);
15
+ var Backdrop = exports.Backdrop = _styledComponents["default"].div.withConfig({
16
+ displayName: "styles__Backdrop",
21
17
  componentId: "sc-1kysg49-1"
22
- })(["position:absolute;top:12px;left:50%;transform:translateX(-50%);"]);
23
- var ChildrenWrapper = exports.ChildrenWrapper = _styledComponents["default"].div.withConfig({
24
- displayName: "styles__ChildrenWrapper",
25
- componentId: "sc-1kysg49-2"
26
- })(["", ";background-color:", ";", ""], function (_ref2) {
27
- var $isPadding = _ref2.$isPadding;
28
- return $isPadding && 'padding: 32px 16px 36px';
29
- }, function (_ref3) {
30
- var $bgColor = _ref3.$bgColor;
18
+ })(["position:absolute;inset:0;background-color:", ";opacity:", ";transition:opacity 300ms ease;"], function (_ref) {
19
+ var $bgColor = _ref.$bgColor;
31
20
  return $bgColor;
21
+ }, function (_ref2) {
22
+ var $isVisible = _ref2.$isVisible;
23
+ return $isVisible ? 1 : 0;
24
+ });
25
+ var Sheet = exports.Sheet = _styledComponents["default"].div.withConfig({
26
+ displayName: "styles__Sheet",
27
+ componentId: "sc-1kysg49-2"
28
+ })(["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) {
29
+ var $isDragging = _ref3.$isDragging;
30
+ return $isDragging && (0, _styledComponents.css)(["transition:none;"]);
32
31
  }, function (_ref4) {
33
- var $isBorderRadius = _ref4.$isBorderRadius;
34
- return $isBorderRadius && (0, _styledComponents.css)(["border-radius:10px 10px 0 0;"]);
32
+ var $isErrorBorder = _ref4.$isErrorBorder,
33
+ $errorColor = _ref4.$errorColor,
34
+ $borderColor = _ref4.$borderColor;
35
+ return ($isErrorBorder || $borderColor) && (0, _styledComponents.css)(["border-top:2px solid ", ";"], $borderColor || $errorColor);
36
+ }, function (_ref5) {
37
+ var $overflow = _ref5.$overflow;
38
+ return $overflow === 'visible' ? (0, _styledComponents.css)(["overflow:visible;"]) : (0, _styledComponents.css)(["overflow-y:auto;"]);
35
39
  });
36
- var StyledSheetContainer = exports.StyledSheetContainer = (0, _styledComponents["default"])(_reactModalSheet.Sheet.Container).withConfig({
37
- displayName: "styles__StyledSheetContainer",
40
+ var DragHandle = exports.DragHandle = _styledComponents["default"].div.withConfig({
41
+ displayName: "styles__DragHandle",
38
42
  componentId: "sc-1kysg49-3"
39
- })(["box-shadow:none;border-radius:10px 10px 0 0;", " ", ""], function (_ref5) {
40
- var $isErrorBorder = _ref5.$isErrorBorder,
41
- $errorColor = _ref5.$errorColor,
42
- $borderColor = _ref5.$borderColor;
43
- return ($isErrorBorder || $borderColor) && (0, _styledComponents.css)(["border-top:2px solid ", ";"], $borderColor || $errorColor);
44
- }, function (_ref6) {
45
- var $overflow = _ref6.$overflow;
46
- return $overflow === 'visible' && (0, _styledComponents.css)(["overflow:visible;.react-modal-sheet-content-scroller{overflow-y:visible !important;}"]);
43
+ })(["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) {
44
+ var $bg = _ref6.$bg;
45
+ return $bg;
47
46
  });
48
- var StyledSheetBackdrop = exports.StyledSheetBackdrop = (0, _styledComponents["default"])(_reactModalSheet.Sheet.Backdrop).withConfig({
49
- displayName: "styles__StyledSheetBackdrop",
47
+ var DragIndicator = exports.DragIndicator = _styledComponents["default"].div.withConfig({
48
+ displayName: "styles__DragIndicator",
50
49
  componentId: "sc-1kysg49-4"
51
- })(["background-color:", " !important;"], function (_ref7) {
52
- var $bgColor = _ref7.$bgColor;
50
+ })(["position:absolute;top:12px;left:50%;transform:translateX(-50%);width:40px;height:4px;border-radius:99px;background-color:rgba(53,63,71,0.2);"]);
51
+ var Title = exports.Title = _styledComponents["default"].div.withConfig({
52
+ displayName: "styles__Title",
53
+ componentId: "sc-1kysg49-5"
54
+ })(["background-color:", ";padding:30px;position:relative;text-align:center;border-radius:10px 10px 0 0;"], function (_ref7) {
55
+ var $bg = _ref7.$bg;
56
+ return $bg;
57
+ });
58
+ var ChildrenWrapper = exports.ChildrenWrapper = _styledComponents["default"].div.withConfig({
59
+ displayName: "styles__ChildrenWrapper",
60
+ componentId: "sc-1kysg49-6"
61
+ })(["", ";background-color:", ";", ""], function (_ref8) {
62
+ var $isPadding = _ref8.$isPadding;
63
+ return $isPadding && 'padding: 32px 16px 36px';
64
+ }, function (_ref9) {
65
+ var $bgColor = _ref9.$bgColor;
53
66
  return $bgColor;
67
+ }, function (_ref10) {
68
+ var $isBorderRadius = _ref10.$isBorderRadius;
69
+ return $isBorderRadius && (0, _styledComponents.css)(["border-radius:10px 10px 0 0;"]);
54
70
  });
@@ -1,4 +1,4 @@
1
- import { FC, ReactNode } from 'react';
1
+ import React, { ReactNode } from 'react';
2
2
  export type TProps = {
3
3
  children: ReactNode;
4
4
  isOpen: boolean;
@@ -13,4 +13,4 @@ export type TProps = {
13
13
  isTopPosition?: boolean;
14
14
  usePadding?: boolean;
15
15
  };
16
- export declare const Dropdown: FC<TProps>;
16
+ export declare const Dropdown: React.ForwardRefExoticComponent<TProps & React.RefAttributes<HTMLDivElement>>;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.Dropdown = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _reactDom = require("react-dom");
9
10
  var S = _interopRequireWildcard(require("./styles"));
10
11
  var _palette = require("../../../palette");
11
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -16,7 +17,7 @@ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r)
16
17
  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; }
17
18
  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; } }
18
19
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
19
- var Dropdown = exports.Dropdown = function Dropdown(_ref) {
20
+ var Dropdown = exports.Dropdown = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, forwardedRef) {
20
21
  var children = _ref.children,
21
22
  isOpen = _ref.isOpen,
22
23
  _ref$isAutoPosition = _ref.isAutoPosition,
@@ -46,6 +47,42 @@ var Dropdown = exports.Dropdown = function Dropdown(_ref) {
46
47
  _useState2 = _slicedToArray(_useState, 2),
47
48
  elRef = _useState2[0],
48
49
  setElRef = _useState2[1];
50
+
51
+ // Якорь остаётся в потоке на месте поля-триггера; по его родителю (само поле) считаем,
52
+ // куда поставить вынесенный порталом дропдаун.
53
+ var anchorRef = (0, _react.useRef)(null);
54
+ var _useState3 = (0, _react.useState)(null),
55
+ _useState4 = _slicedToArray(_useState3, 2),
56
+ layerRect = _useState4[0],
57
+ setLayerRect = _useState4[1];
58
+
59
+ // Дропдаун вынесён в body порталом и спозиционирован `fixed` → НЕ растит документ (баг с
60
+ // пустой полосой внизу) и не зависит от `overflow`/`transform` предков. Слой-обёртка
61
+ // (`PositionLayer`) `fixed` точно над полем: внутренний `Wrapper` остаётся `absolute`
62
+ // относительно него, поэтому ВСЯ старая логика позиционирования (top/bottom/left/right/
63
+ // translateY) и измерения работают без изменений. Пересчёт на скролл/resize, пока открыт.
64
+ (0, _react.useLayoutEffect)(function () {
65
+ var updateRect = function updateRect() {
66
+ var _anchorRef$current;
67
+ var field = (_anchorRef$current = anchorRef.current) === null || _anchorRef$current === void 0 ? void 0 : _anchorRef$current.parentElement;
68
+ if (!field) return;
69
+ var rect = field.getBoundingClientRect();
70
+ setLayerRect({
71
+ top: rect.top,
72
+ left: rect.left,
73
+ width: rect.width,
74
+ height: rect.height
75
+ });
76
+ };
77
+ updateRect();
78
+ if (!isOpen) return undefined;
79
+ window.addEventListener('scroll', updateRect, true);
80
+ window.addEventListener('resize', updateRect);
81
+ return function () {
82
+ window.removeEventListener('scroll', updateRect, true);
83
+ window.removeEventListener('resize', updateRect);
84
+ };
85
+ }, [isOpen]);
49
86
  var handleCloseTransitionEnd = (0, _react.useCallback)(function (event) {
50
87
  if (event.propertyName !== 'opacity') return;
51
88
  if (isOpen) return;
@@ -68,18 +105,17 @@ var Dropdown = exports.Dropdown = function Dropdown(_ref) {
68
105
  };
69
106
  var isMoreSpaceBelowThanAbove = belowHeight >= aboveHeight;
70
107
  if (isMoreSpaceBelowThanAbove) {
71
- var outOfViewPortHeight = dropdownHeight + dropdownIndent - belowHeight;
108
+ var _outOfViewPortHeight = dropdownHeight + dropdownIndent - belowHeight;
72
109
  return {
73
110
  isAbove: false,
74
- translateY: "-".concat(outOfViewPortHeight, "px")
75
- };
76
- } else {
77
- var _outOfViewPortHeight = dropdownHeight + dropdownIndent - aboveHeight;
78
- return {
79
- isAbove: true,
80
- translateY: "".concat(_outOfViewPortHeight, "px")
111
+ translateY: "-".concat(_outOfViewPortHeight, "px")
81
112
  };
82
113
  }
114
+ var outOfViewPortHeight = dropdownHeight + dropdownIndent - aboveHeight;
115
+ return {
116
+ isAbove: true,
117
+ translateY: "".concat(outOfViewPortHeight, "px")
118
+ };
83
119
  }, []);
84
120
  var openFlagCache = (0, _react.useRef)(null);
85
121
  if (elRef) {
@@ -104,8 +140,21 @@ var Dropdown = exports.Dropdown = function Dropdown(_ref) {
104
140
  };
105
141
  }
106
142
  }
107
- return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
108
- ref: setElRef,
143
+ var setWrapperRef = (0, _react.useCallback)(function (node) {
144
+ setElRef(node);
145
+ if (typeof forwardedRef === 'function') forwardedRef(node);else if (forwardedRef) forwardedRef.current = node;
146
+ }, [forwardedRef]);
147
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(S.Anchor, {
148
+ ref: anchorRef
149
+ }), layerRect && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement(S.PositionLayer, {
150
+ style: {
151
+ top: layerRect.top,
152
+ left: layerRect.left,
153
+ width: layerRect.width,
154
+ height: layerRect.height
155
+ }
156
+ }, /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
157
+ ref: setWrapperRef,
109
158
  $isVisible: isOpen,
110
159
  $isAbove: position.current.isAbove,
111
160
  $translateY: position.current.translateY,
@@ -118,5 +167,6 @@ var Dropdown = exports.Dropdown = function Dropdown(_ref) {
118
167
  onTransitionEnd: handleCloseTransitionEnd,
119
168
  $palette: palette,
120
169
  $usePadding: usePadding
121
- }, children);
122
- };
170
+ }, children)), document.body));
171
+ });
172
+ Dropdown.displayName = 'Dropdown';
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generateDropdownPalette = void 0;
7
- var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
7
+ var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
9
  var generateDropdownPalette = exports.generateDropdownPalette = function generateDropdownPalette(abstractPalette) {
10
10
  return {
@@ -1,5 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import { TDropdownPalette } from './palette';
3
+ export declare const Anchor: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>> & string;
4
+ export declare const PositionLayer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
5
  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>, {
4
6
  $isVisible: boolean;
5
7
  $isAbove: boolean;
@@ -4,16 +4,30 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.Wrapper = void 0;
7
+ exports.Wrapper = exports.PositionLayer = exports.Anchor = void 0;
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
10
10
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
11
+ // Невидимый якорь в потоке: по его родителю (поле-триггер) считаем позицию портал-дропдауна.
12
+ // display:none — не влияет на вёрстку, но parentElement (само поле) доступен для измерений.
13
+ var Anchor = exports.Anchor = _styledComponents["default"].span.withConfig({
14
+ displayName: "styles__Anchor",
15
+ componentId: "sc-1f1enhf-0"
16
+ })(["display:none;"]);
17
+
18
+ // Слой-обёртка дропдауна: вынесена порталом в body и спозиционирована fixed точно над полем
19
+ // (через inline top/left/width/height). pointer-events:none — сам слой не перехватывает клики
20
+ // (его площадь = полю), кликабелен только внутренний Wrapper.
21
+ var PositionLayer = exports.PositionLayer = _styledComponents["default"].div.withConfig({
22
+ displayName: "styles__PositionLayer",
23
+ componentId: "sc-1f1enhf-1"
24
+ })(["position:fixed;z-index:1000;pointer-events:none;"]);
11
25
  var hidden = (0, _styledComponents.css)(["visibility:hidden;opacity:0;transition:visibility 0ms 200ms,opacity 200ms 0ms ease;"]);
12
26
  var visible = (0, _styledComponents.css)(["visibility:visible;opacity:1;transition:visibility 0ms 0ms,opacity 200ms 0ms ease;"]);
13
27
  var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
14
28
  displayName: "styles__Wrapper",
15
- componentId: "sc-1f1enhf-0"
16
- })(["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) {
29
+ componentId: "sc-1f1enhf-2"
30
+ })(["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) {
17
31
  var $usePadding = _ref.$usePadding;
18
32
  return $usePadding ? '8px 0;' : 'none';
19
33
  }, function (_ref2) {
@@ -31,6 +31,10 @@ var EntityAutocompleteOptionsDrawer = exports.EntityAutocompleteOptionsDrawer =
31
31
  onChange(option.value, option);
32
32
  onClose();
33
33
  }, [onClose, onChange, options]);
34
+
35
+ // Скелетоны — только на первой загрузке (опций ещё нет). При повторных запросах держим прежние
36
+ // опции, иначе лоадер мерцает на каждый ввод символа.
37
+ var showSkeletons = isLoadingOptions && options.length === 0;
34
38
  return /*#__PURE__*/_react["default"].createElement(_Drawer.Drawer, {
35
39
  isOpen: isOpen,
36
40
  onClose: onClose,
@@ -41,7 +45,7 @@ var EntityAutocompleteOptionsDrawer = exports.EntityAutocompleteOptionsDrawer =
41
45
  }, promptMessage && /*#__PURE__*/_react["default"].createElement(S.Prompt, {
42
46
  $color: palette.prompt,
43
47
  variant: "bodyMRegular"
44
- }, promptMessage), isLoadingOptions && /*#__PURE__*/_react["default"].createElement(S.SkeletonListWrapper, null, loadingList.map(function (ComponentSkeleton, index) {
48
+ }, promptMessage), showSkeletons && /*#__PURE__*/_react["default"].createElement(S.SkeletonListWrapper, null, loadingList.map(function (ComponentSkeleton, index) {
45
49
  return (
46
50
  /*#__PURE__*/
47
51
  // eslint-disable-next-line react/no-array-index-key
@@ -50,7 +54,7 @@ var EntityAutocompleteOptionsDrawer = exports.EntityAutocompleteOptionsDrawer =
50
54
  height: "64px"
51
55
  })
52
56
  );
53
- })), !isLoadingOptions && !promptMessage && options.map(function (option, index) {
57
+ })), !showSkeletons && !promptMessage && options.map(function (option, index) {
54
58
  return /*#__PURE__*/_react["default"].createElement(S.OptionWrapper, {
55
59
  // eslint-disable-next-line react/no-array-index-key
56
60
  key: "".concat(option.value).concat(index),
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generateEntityAutocompleteOptionsDrawerPalette = void 0;
7
- var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
7
+ var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
9
  var generateEntityAutocompleteOptionsDrawerPalette = exports.generateEntityAutocompleteOptionsDrawerPalette = function generateEntityAutocompleteOptionsDrawerPalette(abstractPalette) {
10
10
  return {
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.generatePointsLoaderPalette = void 0;
7
- var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
7
+ var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
9
9
  var generatePointsLoaderPalette = exports.generatePointsLoaderPalette = function generatePointsLoaderPalette(abstractPalette) {
10
10
  return {
@@ -1,20 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ 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); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.Scrollbar = void 0;
7
8
  var _react = _interopRequireDefault(require("react"));
8
- var _reactCustomScrollbars = require("react-custom-scrollbars-2");
9
9
  var _palette = require("../../../palette");
10
+ var S = _interopRequireWildcard(require("./styles"));
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
10
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
11
- 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); }
12
- 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); }
13
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
- 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; }
16
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
- 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
+ // CSS-скроллбар (убрали зависимость `react-custom-scrollbars-2`): нативный overflow + стилизованный
15
+ // тонкий ползунок. Публичный API сохранён (maxHeight/trackWidth/autoHeight). autoHeight=true →
16
+ // контейнер растёт по контенту до maxHeight, затем скроллится; autoHeight=false → высота 100% родителя.
18
17
  var Scrollbar = exports.Scrollbar = function Scrollbar(_ref) {
19
18
  var children = _ref.children,
20
19
  _ref$maxHeight = _ref.maxHeight,
@@ -24,29 +23,10 @@ var Scrollbar = exports.Scrollbar = function Scrollbar(_ref) {
24
23
  _ref$autoHeight = _ref.autoHeight,
25
24
  autoHeight = _ref$autoHeight === void 0 ? true : _ref$autoHeight;
26
25
  var palette = (0, _palette.useComponentPalette)('scrollbar');
27
- var renderThumbVertical = function renderThumbVertical(thumbProps) {
28
- return /*#__PURE__*/_react["default"].createElement("div", _extends({}, thumbProps, {
29
- style: _objectSpread(_objectSpread({}, thumbProps.style), {}, {
30
- backgroundColor: palette.thumb,
31
- width: trackWidth,
32
- borderRadius: '4px'
33
- })
34
- }));
35
- };
36
- var renderThumbHorizontal = function renderThumbHorizontal(thumbProps) {
37
- return /*#__PURE__*/_react["default"].createElement("div", _extends({}, thumbProps, {
38
- style: _objectSpread(_objectSpread({}, thumbProps.style), {}, {
39
- backgroundColor: palette.thumb,
40
- height: trackWidth,
41
- borderRadius: '4px'
42
- })
43
- }));
44
- };
45
- return /*#__PURE__*/_react["default"].createElement(_reactCustomScrollbars.Scrollbars, {
46
- autoHeight: autoHeight,
47
- autoHeightMin: 0,
48
- autoHeightMax: maxHeight,
49
- renderThumbHorizontal: renderThumbHorizontal,
50
- renderThumbVertical: renderThumbVertical
26
+ return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
27
+ $maxHeight: maxHeight,
28
+ $trackWidth: trackWidth,
29
+ $thumb: palette.thumb,
30
+ $autoHeight: autoHeight
51
31
  }, children);
52
32
  };
@@ -0,0 +1,7 @@
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
+ $maxHeight: number | string;
4
+ $trackWidth: number;
5
+ $thumb: string;
6
+ $autoHeight: boolean;
7
+ }>> & string;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.Wrapper = void 0;
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
11
+ var Wrapper = exports.Wrapper = _styledComponents["default"].div.withConfig({
12
+ displayName: "styles__Wrapper",
13
+ componentId: "sc-1pl0pr3-0"
14
+ })(["overflow-y:auto;overflow-x:hidden;", " scrollbar-width:thin;scrollbar-color:", " transparent;&::-webkit-scrollbar{width:", "px;height:", "px;}&::-webkit-scrollbar-track{background:transparent;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:4px;}"], function (_ref) {
15
+ var $autoHeight = _ref.$autoHeight,
16
+ $maxHeight = _ref.$maxHeight;
17
+ return $autoHeight ? (0, _styledComponents.css)(["max-height:", ";"], typeof $maxHeight === 'number' ? "".concat($maxHeight, "px") : $maxHeight) : (0, _styledComponents.css)(["height:100%;"]);
18
+ }, function (_ref2) {
19
+ var $thumb = _ref2.$thumb;
20
+ return $thumb;
21
+ }, function (_ref3) {
22
+ var $trackWidth = _ref3.$trackWidth;
23
+ return $trackWidth;
24
+ }, function (_ref4) {
25
+ var $trackWidth = _ref4.$trackWidth;
26
+ return $trackWidth;
27
+ }, function (_ref5) {
28
+ var $thumb = _ref5.$thumb;
29
+ return $thumb;
30
+ });
@@ -7,7 +7,7 @@ exports.Container = void 0;
7
7
  var _reactToastify = require("react-toastify");
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
  var _breakpoints = require("../../../breakpoints");
10
- var _hexToRgba = _interopRequireDefault(require("hex-to-rgba"));
10
+ var _hexToRgba = _interopRequireDefault(require("../../../utils/hexToRgba"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
12
12
  var Container = exports.Container = (0, _styledComponents["default"])(_reactToastify.ToastContainer).withConfig({
13
13
  displayName: "styles__Container",
@@ -28,6 +28,7 @@ type TControlProps = {
28
28
  usePadding?: boolean;
29
29
  dropdownWidth?: string;
30
30
  useModernStyles?: boolean;
31
+ isDropdownDisabled?: boolean;
31
32
  };
32
33
  export type TProps = TFieldProps & TControlProps;
33
34
  export declare const Autocomplete: React.ForwardRefExoticComponent<Pick<React.InputHTMLAttributes<HTMLInputElement>, "name" | "readOnly" | "autoFocus" | "onFocus" | "onBlur"> & {
@@ -65,12 +65,22 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
65
65
  usePadding = _ref$usePadding === void 0 ? false : _ref$usePadding,
66
66
  dropdownWidth = _ref.dropdownWidth,
67
67
  _ref$useModernStyles = _ref.useModernStyles,
68
- useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles;
68
+ useModernStyles = _ref$useModernStyles === void 0 ? false : _ref$useModernStyles,
69
+ _ref$isDropdownDisabl = _ref.isDropdownDisabled,
70
+ isDropdownDisabled = _ref$isDropdownDisabl === void 0 ? false : _ref$isDropdownDisabl;
69
71
  var isMobile = (0, _useMedia.useMobile)();
70
72
  var _useState = (0, _react.useState)(false),
71
73
  _useState2 = _slicedToArray(_useState, 2),
72
74
  isOpen = _useState2[0],
73
75
  setIsOpen = _useState2[1];
76
+ // Активная (подсвеченная клавиатурой) опция для combobox-навигации ↑/↓/Enter/Esc.
77
+ var _useState3 = (0, _react.useState)(-1),
78
+ _useState4 = _slicedToArray(_useState3, 2),
79
+ activeIndex = _useState4[0],
80
+ setActiveIndex = _useState4[1];
81
+ var baseId = (0, _react.useId)();
82
+ var listboxId = "".concat(baseId, "-listbox");
83
+ var activeOptionRef = (0, _react.useRef)(null);
74
84
  var palette = (0, _palette.useComponentPalette)('autocompleteDefaultOption');
75
85
  var _useInputFocus = (0, _useInputFocus2.useInputFocus)({
76
86
  onFocus: onFocus,
@@ -83,10 +93,14 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
83
93
  return setIsOpen(true);
84
94
  }, []);
85
95
  var handleClose = (0, _react.useCallback)(function () {
86
- return setIsOpen(false);
96
+ setIsOpen(false);
97
+ setActiveIndex(-1);
87
98
  }, []);
88
- var wrapperRef = (0, _useOutsideClick.useOutsideClick)(handleClose);
99
+ var dropdownRef = (0, _react.useRef)(null);
100
+ var wrapperRef = (0, _useOutsideClick.useOutsideClick)(handleClose, [dropdownRef]);
89
101
  var handleChange = (0, _react.useCallback)(function (event) {
102
+ // Ввод нового запроса сбрасывает клавиатурную подсветку (результаты сменятся).
103
+ setActiveIndex(-1);
90
104
  onChange(event.target.value);
91
105
  }, [onChange]);
92
106
  var handleSelect = (0, _react.useCallback)(function (event) {
@@ -127,6 +141,58 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
127
141
  var isModernPlaceholderVisible = (0, _react.useMemo)(function () {
128
142
  return !isOpen && !value;
129
143
  }, [isOpen, value]);
144
+ var isDropdownOpen = !isDropdownDisabled && isOpen && (!!options.length || !!isLoading);
145
+ // Скелетоны показываем ТОЛЬКО когда опций ещё нет (первая загрузка). При повторных запросах
146
+ // (ввод символов) держим прежние опции — иначе лоадер мерцает на каждое изменение.
147
+ var showSkeletons = !!isLoading && options.length === 0;
148
+ var getOptionId = function getOptionId(index) {
149
+ return "".concat(baseId, "-option-").concat(index);
150
+ };
151
+
152
+ // Активная опция всегда видна в прокручиваемом списке.
153
+ (0, _react.useEffect)(function () {
154
+ var _activeOptionRef$curr;
155
+ (_activeOptionRef$curr = activeOptionRef.current) === null || _activeOptionRef$curr === void 0 || _activeOptionRef$curr.scrollIntoView({
156
+ block: 'nearest'
157
+ });
158
+ }, [activeIndex]);
159
+ var handleKeyDown = function handleKeyDown(event) {
160
+ if (disabled || readOnly) return;
161
+ var count = options.length;
162
+ switch (event.key) {
163
+ case 'ArrowDown':
164
+ event.preventDefault();
165
+ if (!isOpen) {
166
+ handleOpen();
167
+ } else if (count) {
168
+ setActiveIndex(function (prev) {
169
+ return (prev + 1) % count;
170
+ });
171
+ }
172
+ break;
173
+ case 'ArrowUp':
174
+ event.preventDefault();
175
+ if (count) setActiveIndex(function (prev) {
176
+ return prev <= 0 ? count - 1 : prev - 1;
177
+ });
178
+ break;
179
+ case 'Enter':
180
+ if (isDropdownOpen && activeIndex >= 0 && activeIndex < count && !options[activeIndex].isDisabled) {
181
+ event.preventDefault();
182
+ onChange(options[activeIndex].value, options[activeIndex]);
183
+ handleClose();
184
+ }
185
+ break;
186
+ case 'Escape':
187
+ if (isDropdownOpen) {
188
+ event.preventDefault();
189
+ handleClose();
190
+ }
191
+ break;
192
+ default:
193
+ break;
194
+ }
195
+ };
130
196
  return /*#__PURE__*/_react["default"].createElement(S.Wrapper, {
131
197
  ref: wrapperRef
132
198
  }, /*#__PURE__*/_react["default"].createElement(_InputLabel.InputLabel, {
@@ -159,15 +225,27 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
159
225
  isOnlyNumbers: isInputOnlyNumbers,
160
226
  autoFocus: autoFocus,
161
227
  readOnly: readOnly,
162
- useModernStyles: useModernStyles
228
+ useModernStyles: useModernStyles,
229
+ onKeyDown: handleKeyDown,
230
+ role: "combobox",
231
+ "aria-expanded": isDropdownOpen,
232
+ "aria-controls": isDropdownOpen ? listboxId : undefined,
233
+ "aria-autocomplete": "list",
234
+ "aria-activedescendant": isDropdownOpen && activeIndex >= 0 ? getOptionId(activeIndex) : undefined
163
235
  }, paddingOptions)))), /*#__PURE__*/_react["default"].createElement(_Dropdown.Dropdown, {
236
+ ref: dropdownRef,
164
237
  isOpen: isOpen && (!!options.length || !!isLoading),
165
238
  isAutoPosition: true,
166
239
  width: dropdownWidth || '100%',
167
240
  minWidth: isMobile ? '100%' : '340px',
168
241
  usePadding: usePadding
169
- }, isLoading ? optionsLoader || /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null), /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null), /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null)) : /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
242
+ }, showSkeletons ? /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
170
243
  maxHeight: listHeight
244
+ }, optionsLoader || /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null), /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null), /*#__PURE__*/_react["default"].createElement(DefaultSkeletonItem, null))) : /*#__PURE__*/_react["default"].createElement(_Scrollbar.Scrollbar, {
245
+ maxHeight: listHeight
246
+ }, /*#__PURE__*/_react["default"].createElement("div", {
247
+ role: "listbox",
248
+ id: listboxId
171
249
  }, options.map(function (option, index) {
172
250
  return /*#__PURE__*/_react["default"].createElement(S.OptionWrapperWithPadding, {
173
251
  $usePadding: usePadding,
@@ -175,17 +253,23 @@ var Autocomplete = exports.Autocomplete = /*#__PURE__*/(0, _react.forwardRef)(fu
175
253
  }, /*#__PURE__*/_react["default"].createElement(S.OptionContainer, {
176
254
  $hoverBg: palette.hoverBg,
177
255
  $usePadding: usePadding,
178
- key: "".concat(option.value).concat(index)
256
+ $active: index === activeIndex
179
257
  }, /*#__PURE__*/_react["default"].createElement(S.OptionWrapper, {
180
- key: "".concat(option.value).concat(index),
258
+ ref: index === activeIndex ? activeOptionRef : undefined,
259
+ id: getOptionId(index),
260
+ role: "option",
261
+ "aria-selected": index === activeIndex,
181
262
  tabIndex: -1,
182
263
  type: "button",
183
264
  disabled: option.isDisabled,
184
265
  onClick: handleSelect,
266
+ onMouseEnter: function onMouseEnter() {
267
+ return setActiveIndex(index);
268
+ },
185
269
  "data-index": JSON.stringify(index)
186
270
  }, renderOption ? renderOption(option) : /*#__PURE__*/_react["default"].createElement(_AutocompleteDefaultOption.AutocompleteDefaultOption, {
187
271
  usePadding: usePadding
188
272
  }, option.value))));
189
- }))));
273
+ })))));
190
274
  });
191
275
  Autocomplete.displayName = 'Autocomplete';