@scbt-ecom/ui 0.4.2 → 0.4.4

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 (471) hide show
  1. package/dist/Notification-BGmp0XMG.js +5750 -0
  2. package/dist/Notification-BGmp0XMG.js.map +1 -0
  3. package/dist/client.d.ts +7 -0
  4. package/dist/client.js +39333 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/configs/index.d.ts +2 -0
  7. package/dist/configs/tailwindConfigBase.d.ts +2 -0
  8. package/dist/configs/tailwindPresets/extendsPreset.d.ts +2 -0
  9. package/dist/configs/tailwindPresets/index.d.ts +2 -0
  10. package/dist/configs/tailwindPresets/resetPreset.d.ts +2 -0
  11. package/dist/hybrid.d.ts +20 -0
  12. package/dist/hybrid.js +3939 -0
  13. package/dist/hybrid.js.map +1 -0
  14. package/dist/shared/constants/api.d.ts +2 -0
  15. package/dist/shared/constants/designSystem/colors.d.ts +124 -0
  16. package/dist/shared/constants/designSystem/index.d.ts +3 -0
  17. package/dist/shared/constants/designSystem/others.d.ts +27 -0
  18. package/dist/shared/constants/designSystem/typography.d.ts +75 -0
  19. package/dist/shared/constants/index.d.ts +2 -0
  20. package/dist/shared/hooks/index.d.ts +5 -0
  21. package/dist/shared/hooks/useBoolean.d.ts +3 -0
  22. package/dist/shared/hooks/useClickOutside.d.ts +2 -0
  23. package/dist/shared/hooks/useCombineRef.d.ts +5 -0
  24. package/dist/shared/hooks/useControlledForm.d.ts +7 -0
  25. package/dist/shared/hooks/useDebounce.d.ts +3 -0
  26. package/dist/shared/hooks/useMediaQuery.d.ts +4 -0
  27. package/dist/shared/ui/Badge.d.ts +6 -0
  28. package/dist/shared/ui/Breadcrumbs.d.ts +15 -0
  29. package/dist/shared/ui/ButtonIcon.d.ts +17 -0
  30. package/dist/shared/ui/CustomLink.d.ts +16 -0
  31. package/dist/shared/ui/Document.d.ts +13 -0
  32. package/dist/shared/ui/Heading.d.ts +12 -0
  33. package/dist/shared/ui/Hint.d.ts +21 -0
  34. package/dist/shared/ui/Loader.d.ts +21 -0
  35. package/dist/shared/ui/PhoneView.d.ts +12 -0
  36. package/dist/shared/ui/ProgressBar.d.ts +18 -0
  37. package/dist/shared/ui/ResponsiveContainer.d.ts +6 -0
  38. package/dist/shared/ui/Section.d.ts +6 -0
  39. package/dist/shared/ui/Skeleton.d.ts +4 -0
  40. package/dist/shared/ui/TabsSwitcher.d.ts +35 -0
  41. package/dist/shared/ui/accordion/Accordion.d.ts +13 -0
  42. package/dist/shared/ui/accordion/index.d.ts +1 -0
  43. package/dist/shared/ui/accordion/model/types.d.ts +17 -0
  44. package/dist/shared/ui/accordion/ui/AccordionHeader.d.ts +8 -0
  45. package/dist/shared/ui/brandLogos.d.ts +5 -0
  46. package/dist/shared/ui/button/Button.d.ts +18 -0
  47. package/dist/shared/ui/button/index.d.ts +1 -0
  48. package/dist/shared/ui/button/model/helpers.d.ts +2 -0
  49. package/dist/shared/ui/formControlElements/CheckboxControl.d.ts +13 -0
  50. package/dist/shared/ui/formControlElements/FormControl.d.ts +3 -0
  51. package/dist/shared/ui/formControlElements/InputControlMask.d.ts +10 -0
  52. package/dist/shared/ui/formControlElements/RadioControl.d.ts +26 -0
  53. package/dist/shared/ui/formControlElements/SwitchControl.d.ts +16 -0
  54. package/dist/shared/ui/formControlElements/TextareaControl.d.ts +11 -0
  55. package/dist/shared/ui/formControlElements/calendarControl/CalendarControl.d.ts +15 -0
  56. package/dist/shared/ui/formControlElements/calendarControl/hooks/index.d.ts +2 -0
  57. package/dist/shared/ui/formControlElements/calendarControl/hooks/useCalendar.d.ts +16 -0
  58. package/dist/shared/ui/formControlElements/calendarControl/hooks/useCalendarDropdowns.d.ts +9 -0
  59. package/{lib/shared/ui/formControlElements/calendarControl/index.ts → dist/shared/ui/formControlElements/calendarControl/index.d.ts} +1 -1
  60. package/dist/shared/ui/formControlElements/calendarControl/model/helpers.d.ts +24 -0
  61. package/dist/shared/ui/formControlElements/calendarControl/model/types.d.ts +33 -0
  62. package/dist/shared/ui/formControlElements/calendarControl/ui/DaysOfMonth.d.ts +10 -0
  63. package/dist/shared/ui/formControlElements/calendarControl/ui/DaysOfWeek.d.ts +6 -0
  64. package/dist/shared/ui/formControlElements/calendarControl/ui/Dropdown.d.ts +11 -0
  65. package/dist/shared/ui/formControlElements/calendarControl/ui/Header.d.ts +14 -0
  66. package/dist/shared/ui/formControlElements/calendarControl/ui/Navigation.d.ts +9 -0
  67. package/dist/shared/ui/formControlElements/calendarControl/ui/OptionsList.d.ts +5 -0
  68. package/dist/shared/ui/formControlElements/calendarControl/ui/index.d.ts +4 -0
  69. package/dist/shared/ui/formControlElements/comboboxControl/ComboboxControl.d.ts +31 -0
  70. package/{lib/shared/ui/formControlElements/comboboxControl/index.ts → dist/shared/ui/formControlElements/comboboxControl/index.d.ts} +1 -1
  71. package/dist/shared/ui/formControlElements/comboboxControl/model/selectClassnames.d.ts +21 -0
  72. package/dist/shared/ui/formControlElements/comboboxControl/model/types.d.ts +36 -0
  73. package/dist/shared/ui/formControlElements/comboboxControl/ui/ComboboxOption.d.ts +8 -0
  74. package/dist/shared/ui/formControlElements/comboboxControl/ui/DropdownIndicator.d.ts +7 -0
  75. package/dist/shared/ui/formControlElements/comboboxControl/ui/MultiValueRemove.d.ts +7 -0
  76. package/dist/shared/ui/formControlElements/comboboxControl/ui/index.d.ts +3 -0
  77. package/dist/shared/ui/formControlElements/dadata/DadataInputControl.d.ts +14 -0
  78. package/{lib/shared/ui/formControlElements/dadata/index.ts → dist/shared/ui/formControlElements/dadata/index.d.ts} +1 -1
  79. package/dist/shared/ui/formControlElements/dadata/model/api.d.ts +2 -0
  80. package/dist/shared/ui/formControlElements/dadata/model/helpers.d.ts +7 -0
  81. package/dist/shared/ui/formControlElements/dadata/model/types.d.ts +42 -0
  82. package/dist/shared/ui/formControlElements/dadata/model/useDadata.d.ts +7 -0
  83. package/dist/shared/ui/formControlElements/editorControl/EditorControl.d.ts +7 -0
  84. package/dist/shared/ui/formControlElements/editorControl/components/conrols.d.ts +6 -0
  85. package/dist/shared/ui/formControlElements/editorControl/components/menu.d.ts +6 -0
  86. package/dist/shared/ui/formControlElements/editorControl/index.d.ts +1 -0
  87. package/dist/shared/ui/formControlElements/editorControl/ui/RemoveBlockButton.d.ts +2 -0
  88. package/dist/shared/ui/formControlElements/editorControl/ui/ResetBlockType.d.ts +2 -0
  89. package/{lib/shared/ui/formControlElements/index.ts → dist/shared/ui/formControlElements/index.d.ts} +14 -14
  90. package/dist/shared/ui/formControlElements/inputControl/InputControl.d.ts +7 -0
  91. package/{lib/shared/ui/formControlElements/inputControl/index.ts → dist/shared/ui/formControlElements/inputControl/index.d.ts} +1 -1
  92. package/dist/shared/ui/formControlElements/inputControl/model/hooks.d.ts +5 -0
  93. package/dist/shared/ui/formControlElements/inputControlUploader/InputControlUploader.d.ts +10 -0
  94. package/{lib/shared/ui/formControlElements/inputControlUploader/index.ts → dist/shared/ui/formControlElements/inputControlUploader/index.d.ts} +1 -1
  95. package/dist/shared/ui/formControlElements/inputControlUploader/model/helpers.d.ts +8 -0
  96. package/dist/shared/ui/formControlElements/inputControlUploader/model/hooks/useUploader.d.ts +11 -0
  97. package/{lib/shared/ui/formControlElements/inputControlUploader/model/index.ts → dist/shared/ui/formControlElements/inputControlUploader/model/index.d.ts} +1 -1
  98. package/dist/shared/ui/formControlElements/inputControlUploader/model/types.d.ts +20 -0
  99. package/dist/shared/ui/formControlElements/inputControlUploader/ui/File.d.ts +12 -0
  100. package/dist/shared/ui/formControlElements/inputControlUploader/ui/Filename.d.ts +7 -0
  101. package/dist/shared/ui/formControlElements/inputControlUploader/ui/Files.d.ts +12 -0
  102. package/dist/shared/ui/formControlElements/inputControlUploader/ui/Input.d.ts +11 -0
  103. package/dist/shared/ui/formControlElements/inputControlUploader/ui/Uploader.d.ts +15 -0
  104. package/dist/shared/ui/formControlElements/inputControlUploader/ui/index.d.ts +3 -0
  105. package/dist/shared/ui/formControlElements/inputCurrencyControl/InputCurrencyControl.d.ts +13 -0
  106. package/{lib/shared/ui/formControlElements/inputCurrencyControl/index.ts → dist/shared/ui/formControlElements/inputCurrencyControl/index.d.ts} +1 -1
  107. package/dist/shared/ui/formControlElements/inputCurrencyControl/model/helpers.d.ts +3 -0
  108. package/dist/shared/ui/formControlElements/inputCurrencyControl/model/useInputCurrency.d.ts +10 -0
  109. package/dist/shared/ui/formControlElements/inputCurrencyControl/ui/MenuTrigger.d.ts +7 -0
  110. package/dist/shared/ui/formControlElements/inputCurrencyControl/ui/OptionList.d.ts +8 -0
  111. package/dist/shared/ui/formControlElements/inputCurrencyControl/ui/index.d.ts +2 -0
  112. package/dist/shared/ui/formControlElements/inputSliderControl/InputSliderControl.d.ts +20 -0
  113. package/{lib/shared/ui/formControlElements/inputSliderControl/index.ts → dist/shared/ui/formControlElements/inputSliderControl/index.d.ts} +1 -1
  114. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/getEndWordMonth.d.ts +1 -0
  115. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/getYearEnding.d.ts +1 -0
  116. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/index.d.ts +2 -0
  117. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/formatNumber.d.ts +1 -0
  118. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/getInputSliderSuffix.d.ts +3 -0
  119. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/getStepByVariant.d.ts +2 -0
  120. package/dist/shared/ui/formControlElements/inputSliderControl/model/helpers/index.d.ts +4 -0
  121. package/dist/shared/ui/formControlElements/inputSliderControl/model/types.d.ts +1 -0
  122. package/dist/shared/ui/formControlElements/inputSliderControl/model/useSlider.d.ts +6 -0
  123. package/dist/shared/ui/formControlElements/inputSliderControl/ui/SliderControl.d.ts +17 -0
  124. package/dist/shared/ui/formControlElements/inputSliderControl/ui/index.d.ts +1 -0
  125. package/dist/shared/ui/formControlElements/model/classes-types.d.ts +18 -0
  126. package/dist/shared/ui/formControlElements/model/index.d.ts +2 -0
  127. package/dist/shared/ui/formControlElements/model/message-view-animation.d.ts +22 -0
  128. package/dist/shared/ui/formControlElements/model/props-types.d.ts +22 -0
  129. package/dist/shared/ui/formControlElements/ui/FieldAttachment.d.ts +15 -0
  130. package/dist/shared/ui/formControlElements/ui/FieldContainer.d.ts +15 -0
  131. package/dist/shared/ui/formControlElements/ui/FieldWrapper.d.ts +14 -0
  132. package/dist/shared/ui/formControlElements/ui/Label.d.ts +11 -0
  133. package/dist/shared/ui/formControlElements/ui/MessageView.d.ts +13 -0
  134. package/dist/shared/ui/formControlElements/ui/index.d.ts +4 -0
  135. package/dist/shared/ui/icon/Icon.d.ts +10 -0
  136. package/{lib/shared/ui/icon/index.ts → dist/shared/ui/icon/index.d.ts} +2 -2
  137. package/dist/shared/ui/icon/sprite.gen.d.ts +18 -0
  138. package/dist/shared/ui/index.d.ts +24 -0
  139. package/dist/shared/ui/modal/Modal.d.ts +16 -0
  140. package/dist/shared/ui/modal/index.d.ts +1 -0
  141. package/dist/shared/ui/modal/model/helpers.d.ts +33 -0
  142. package/dist/shared/ui/modal/ui/ModalHeader.d.ts +12 -0
  143. package/dist/shared/ui/notification/Notification.d.ts +10 -0
  144. package/{lib/shared/ui/notification/index.ts → dist/shared/ui/notification/index.d.ts} +1 -1
  145. package/dist/shared/ui/notification/ui/CustomToast.d.ts +10 -0
  146. package/dist/shared/ui/popover/Popover.d.ts +23 -0
  147. package/dist/shared/ui/popover/index.d.ts +1 -0
  148. package/dist/shared/ui/providers/NotificationProvider.d.ts +5 -0
  149. package/{lib/shared/ui/providers/index.ts → dist/shared/ui/providers/index.d.ts} +1 -1
  150. package/dist/shared/ui/table/Table.d.ts +17 -0
  151. package/dist/shared/ui/table/index.d.ts +1 -0
  152. package/dist/shared/ui/table/type.d.ts +21 -0
  153. package/dist/shared/utils/capitalize.d.ts +1 -0
  154. package/dist/shared/utils/cn.d.ts +2 -0
  155. package/dist/shared/utils/deepCompare.d.ts +1 -0
  156. package/dist/shared/utils/formatToDate.d.ts +1 -0
  157. package/dist/shared/utils/index.d.ts +5 -0
  158. package/dist/shared/utils/isClient.d.ts +1 -0
  159. package/dist/shared/validation/index.d.ts +3 -0
  160. package/dist/shared/validation/messages.d.ts +12 -0
  161. package/dist/shared/validation/regExp.d.ts +3 -0
  162. package/dist/shared/validation/zodValidation/calendar.d.ts +2 -0
  163. package/dist/shared/validation/zodValidation/dadataFio.d.ts +6 -0
  164. package/dist/shared/validation/zodValidation/index.d.ts +2 -0
  165. package/dist/style.css +1 -0
  166. package/dist/widgets/Advantages.d.ts +17 -0
  167. package/dist/widgets/banner/Banner.d.ts +29 -0
  168. package/dist/widgets/banner/index.d.ts +1 -0
  169. package/dist/widgets/banner/model/helpers.d.ts +9 -0
  170. package/dist/widgets/banner/ui/BannerButtonsGroup.d.ts +13 -0
  171. package/dist/widgets/banner/ui/banners/BannerImageFull.d.ts +2 -0
  172. package/dist/widgets/banner/ui/banners/BannerWithSeparateImg.d.ts +2 -0
  173. package/dist/widgets/banner/ui/banners/index.d.ts +1 -0
  174. package/dist/widgets/footer/Footer.d.ts +27 -0
  175. package/dist/widgets/footer/index.d.ts +1 -0
  176. package/dist/widgets/footer/model/defaultValues.d.ts +6 -0
  177. package/dist/widgets/footer/model/types.d.ts +16 -0
  178. package/dist/widgets/footer/ui/Copyright.d.ts +10 -0
  179. package/dist/widgets/footer/ui/Ligal.d.ts +12 -0
  180. package/dist/widgets/footer/ui/NavLinks.d.ts +14 -0
  181. package/dist/widgets/footer/ui/PhonesBlock.d.ts +13 -0
  182. package/dist/widgets/footer/ui/SocialLinks.d.ts +12 -0
  183. package/{lib/widgets/footer/ui/index.ts → dist/widgets/footer/ui/index.d.ts} +5 -5
  184. package/{lib/widgets/index.ts → dist/widgets/index.d.ts} +5 -5
  185. package/dist/widgets/pageHeader/PageHeader.d.ts +16 -0
  186. package/{lib/widgets/pageHeader/index.ts → dist/widgets/pageHeader/index.d.ts} +1 -1
  187. package/dist/widgets/stepper/Stepper.d.ts +18 -0
  188. package/{lib/widgets/stepper/index.ts → dist/widgets/stepper/index.d.ts} +1 -1
  189. package/dist/widgets/stepper/ui/SingleStep.d.ts +14 -0
  190. package/package.json +4 -1
  191. package/.env +0 -3
  192. package/.github/workflows/publish.yml +0 -61
  193. package/.github/workflows/setup-node/action.yml +0 -22
  194. package/.husky/pre-commit +0 -1
  195. package/.prettierignore +0 -1
  196. package/.prettierrc +0 -20
  197. package/.releaserc +0 -18
  198. package/.storybook/main.ts +0 -44
  199. package/.storybook/preview.tsx +0 -37
  200. package/chromatic.config.json +0 -5
  201. package/eslint.config.mjs +0 -193
  202. package/index.html +0 -13
  203. package/lib/client.ts +0 -12
  204. package/lib/configs/index.ts +0 -2
  205. package/lib/configs/tailwindConfigBase.ts +0 -110
  206. package/lib/configs/tailwindPresets/extendsPreset.ts +0 -43
  207. package/lib/configs/tailwindPresets/index.ts +0 -2
  208. package/lib/configs/tailwindPresets/resetPreset.ts +0 -71
  209. package/lib/hybrid.ts +0 -25
  210. package/lib/shared/constants/api.ts +0 -2
  211. package/lib/shared/constants/designSystem/colors.ts +0 -121
  212. package/lib/shared/constants/designSystem/index.ts +0 -3
  213. package/lib/shared/constants/designSystem/others.ts +0 -30
  214. package/lib/shared/constants/designSystem/typography.ts +0 -88
  215. package/lib/shared/constants/index.ts +0 -2
  216. package/lib/shared/hooks/index.ts +0 -5
  217. package/lib/shared/hooks/useBoolean.ts +0 -12
  218. package/lib/shared/hooks/useClickOutside.ts +0 -22
  219. package/lib/shared/hooks/useCombineRef.ts +0 -23
  220. package/lib/shared/hooks/useControlledForm.ts +0 -16
  221. package/lib/shared/hooks/useDebounce.ts +0 -38
  222. package/lib/shared/hooks/useMediaQuery.tsx +0 -42
  223. package/lib/shared/style.css +0 -118
  224. package/lib/shared/ui/Badge.tsx +0 -20
  225. package/lib/shared/ui/Breadcrumbs.tsx +0 -57
  226. package/lib/shared/ui/ButtonIcon.tsx +0 -50
  227. package/lib/shared/ui/CustomLink.tsx +0 -76
  228. package/lib/shared/ui/Document.tsx +0 -51
  229. package/lib/shared/ui/Heading.tsx +0 -33
  230. package/lib/shared/ui/Hint.tsx +0 -72
  231. package/lib/shared/ui/Loader.tsx +0 -58
  232. package/lib/shared/ui/PhoneView.tsx +0 -23
  233. package/lib/shared/ui/ProgressBar.tsx +0 -43
  234. package/lib/shared/ui/ResponsiveContainer.tsx +0 -15
  235. package/lib/shared/ui/Section.tsx +0 -15
  236. package/lib/shared/ui/Skeleton.tsx +0 -9
  237. package/lib/shared/ui/TabsSwitcher.tsx +0 -87
  238. package/lib/shared/ui/accordion/Accordion.tsx +0 -36
  239. package/lib/shared/ui/accordion/index.ts +0 -1
  240. package/lib/shared/ui/accordion/model/types.ts +0 -20
  241. package/lib/shared/ui/accordion/ui/AccordionHeader.tsx +0 -35
  242. package/lib/shared/ui/brandLogos.tsx +0 -14
  243. package/lib/shared/ui/button/Button.tsx +0 -117
  244. package/lib/shared/ui/button/index.ts +0 -1
  245. package/lib/shared/ui/button/model/helpers.ts +0 -16
  246. package/lib/shared/ui/formControlElements/CheckboxControl.tsx +0 -92
  247. package/lib/shared/ui/formControlElements/FormControl.tsx +0 -5
  248. package/lib/shared/ui/formControlElements/InputControlMask.tsx +0 -90
  249. package/lib/shared/ui/formControlElements/RadioControl.tsx +0 -130
  250. package/lib/shared/ui/formControlElements/SwitchControl.tsx +0 -79
  251. package/lib/shared/ui/formControlElements/TextareaControl.tsx +0 -96
  252. package/lib/shared/ui/formControlElements/calendarControl/CalendarControl.tsx +0 -178
  253. package/lib/shared/ui/formControlElements/calendarControl/hooks/index.ts +0 -2
  254. package/lib/shared/ui/formControlElements/calendarControl/hooks/useCalendar.tsx +0 -86
  255. package/lib/shared/ui/formControlElements/calendarControl/hooks/useCalendarDropdowns.ts +0 -38
  256. package/lib/shared/ui/formControlElements/calendarControl/model/helpers.ts +0 -60
  257. package/lib/shared/ui/formControlElements/calendarControl/model/types.ts +0 -44
  258. package/lib/shared/ui/formControlElements/calendarControl/ui/DaysOfMonth.tsx +0 -53
  259. package/lib/shared/ui/formControlElements/calendarControl/ui/DaysOfWeek.tsx +0 -28
  260. package/lib/shared/ui/formControlElements/calendarControl/ui/Dropdown.tsx +0 -62
  261. package/lib/shared/ui/formControlElements/calendarControl/ui/Header.tsx +0 -51
  262. package/lib/shared/ui/formControlElements/calendarControl/ui/Navigation.tsx +0 -32
  263. package/lib/shared/ui/formControlElements/calendarControl/ui/OptionsList.tsx +0 -44
  264. package/lib/shared/ui/formControlElements/calendarControl/ui/index.ts +0 -4
  265. package/lib/shared/ui/formControlElements/comboboxControl/ComboboxControl.tsx +0 -134
  266. package/lib/shared/ui/formControlElements/comboboxControl/model/selectClassnames.ts +0 -51
  267. package/lib/shared/ui/formControlElements/comboboxControl/model/types.ts +0 -42
  268. package/lib/shared/ui/formControlElements/comboboxControl/ui/ComboboxOption.tsx +0 -38
  269. package/lib/shared/ui/formControlElements/comboboxControl/ui/DropdownIndicator.tsx +0 -23
  270. package/lib/shared/ui/formControlElements/comboboxControl/ui/MultiValueRemove.tsx +0 -16
  271. package/lib/shared/ui/formControlElements/comboboxControl/ui/index.ts +0 -3
  272. package/lib/shared/ui/formControlElements/dadata/DadataInputControl.tsx +0 -137
  273. package/lib/shared/ui/formControlElements/dadata/model/api.ts +0 -25
  274. package/lib/shared/ui/formControlElements/dadata/model/helpers.ts +0 -76
  275. package/lib/shared/ui/formControlElements/dadata/model/types.ts +0 -52
  276. package/lib/shared/ui/formControlElements/dadata/model/useDadata.ts +0 -25
  277. package/lib/shared/ui/formControlElements/editorControl/EditorControl.tsx +0 -82
  278. package/lib/shared/ui/formControlElements/editorControl/components/conrols.tsx +0 -136
  279. package/lib/shared/ui/formControlElements/editorControl/components/menu.tsx +0 -107
  280. package/lib/shared/ui/formControlElements/editorControl/index.ts +0 -60
  281. package/lib/shared/ui/formControlElements/editorControl/ui/RemoveBlockButton.tsx +0 -23
  282. package/lib/shared/ui/formControlElements/editorControl/ui/ResetBlockType.tsx +0 -17
  283. package/lib/shared/ui/formControlElements/inputControl/InputControl.tsx +0 -87
  284. package/lib/shared/ui/formControlElements/inputControl/model/hooks.tsx +0 -26
  285. package/lib/shared/ui/formControlElements/inputControlUploader/InputControlUploader.tsx +0 -47
  286. package/lib/shared/ui/formControlElements/inputControlUploader/model/helpers.ts +0 -18
  287. package/lib/shared/ui/formControlElements/inputControlUploader/model/hooks/useUploader.tsx +0 -66
  288. package/lib/shared/ui/formControlElements/inputControlUploader/model/types.ts +0 -22
  289. package/lib/shared/ui/formControlElements/inputControlUploader/ui/File.tsx +0 -35
  290. package/lib/shared/ui/formControlElements/inputControlUploader/ui/Filename.tsx +0 -40
  291. package/lib/shared/ui/formControlElements/inputControlUploader/ui/Files.tsx +0 -30
  292. package/lib/shared/ui/formControlElements/inputControlUploader/ui/Input.tsx +0 -48
  293. package/lib/shared/ui/formControlElements/inputControlUploader/ui/Uploader.tsx +0 -58
  294. package/lib/shared/ui/formControlElements/inputControlUploader/ui/index.ts +0 -3
  295. package/lib/shared/ui/formControlElements/inputCurrencyControl/InputCurrencyControl.tsx +0 -88
  296. package/lib/shared/ui/formControlElements/inputCurrencyControl/model/helpers.ts +0 -46
  297. package/lib/shared/ui/formControlElements/inputCurrencyControl/model/useInputCurrency.tsx +0 -33
  298. package/lib/shared/ui/formControlElements/inputCurrencyControl/ui/MenuTrigger.tsx +0 -20
  299. package/lib/shared/ui/formControlElements/inputCurrencyControl/ui/OptionList.tsx +0 -29
  300. package/lib/shared/ui/formControlElements/inputCurrencyControl/ui/index.ts +0 -2
  301. package/lib/shared/ui/formControlElements/inputSliderControl/InputSliderControl.tsx +0 -144
  302. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/getEndWordMonth.ts +0 -14
  303. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/getYearEnding.ts +0 -13
  304. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/dates/index.ts +0 -2
  305. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/formatNumber.ts +0 -6
  306. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/getInputSliderSuffix.ts +0 -20
  307. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/getStepByVariant.ts +0 -29
  308. package/lib/shared/ui/formControlElements/inputSliderControl/model/helpers/index.ts +0 -4
  309. package/lib/shared/ui/formControlElements/inputSliderControl/model/types.ts +0 -1
  310. package/lib/shared/ui/formControlElements/inputSliderControl/model/useSlider.ts +0 -26
  311. package/lib/shared/ui/formControlElements/inputSliderControl/ui/SliderControl.tsx +0 -47
  312. package/lib/shared/ui/formControlElements/inputSliderControl/ui/index.ts +0 -1
  313. package/lib/shared/ui/formControlElements/model/classes-types.ts +0 -22
  314. package/lib/shared/ui/formControlElements/model/index.ts +0 -2
  315. package/lib/shared/ui/formControlElements/model/message-view-animation.ts +0 -6
  316. package/lib/shared/ui/formControlElements/model/props-types.ts +0 -31
  317. package/lib/shared/ui/formControlElements/ui/FieldAttachment.tsx +0 -76
  318. package/lib/shared/ui/formControlElements/ui/FieldContainer.tsx +0 -37
  319. package/lib/shared/ui/formControlElements/ui/FieldWrapper.tsx +0 -33
  320. package/lib/shared/ui/formControlElements/ui/Label.tsx +0 -32
  321. package/lib/shared/ui/formControlElements/ui/MessageView.tsx +0 -41
  322. package/lib/shared/ui/formControlElements/ui/index.ts +0 -4
  323. package/lib/shared/ui/icon/Icon.tsx +0 -41
  324. package/lib/shared/ui/icon/sprite.gen.ts +0 -177
  325. package/lib/shared/ui/index.ts +0 -68
  326. package/lib/shared/ui/modal/Modal.tsx +0 -68
  327. package/lib/shared/ui/modal/index.ts +0 -1
  328. package/lib/shared/ui/modal/model/helpers.ts +0 -13
  329. package/lib/shared/ui/modal/ui/ModalHeader.tsx +0 -33
  330. package/lib/shared/ui/notification/Notification.tsx +0 -31
  331. package/lib/shared/ui/notification/ui/CustomToast.tsx +0 -42
  332. package/lib/shared/ui/popover/Popover.tsx +0 -74
  333. package/lib/shared/ui/popover/index.ts +0 -1
  334. package/lib/shared/ui/providers/NotificationProvider.tsx +0 -29
  335. package/lib/shared/ui/table/Table.tsx +0 -144
  336. package/lib/shared/ui/table/index.ts +0 -1
  337. package/lib/shared/ui/table/type.ts +0 -30
  338. package/lib/shared/utils/capitalize.ts +0 -6
  339. package/lib/shared/utils/cn.ts +0 -6
  340. package/lib/shared/utils/deepCompare.ts +0 -1
  341. package/lib/shared/utils/formatToDate.ts +0 -5
  342. package/lib/shared/utils/index.ts +0 -5
  343. package/lib/shared/utils/isClient.ts +0 -1
  344. package/lib/shared/validation/index.ts +0 -3
  345. package/lib/shared/validation/messages.ts +0 -12
  346. package/lib/shared/validation/regExp.ts +0 -5
  347. package/lib/shared/validation/zodValidation/calendar.ts +0 -32
  348. package/lib/shared/validation/zodValidation/dadataFio.ts +0 -67
  349. package/lib/shared/validation/zodValidation/index.ts +0 -2
  350. package/lib/vite-env.d.ts +0 -2
  351. package/lib/widgets/Advantages.tsx +0 -45
  352. package/lib/widgets/banner/Banner.tsx +0 -74
  353. package/lib/widgets/banner/index.ts +0 -1
  354. package/lib/widgets/banner/model/helpers.ts +0 -159
  355. package/lib/widgets/banner/money.png +0 -0
  356. package/lib/widgets/banner/saif.jpg +0 -0
  357. package/lib/widgets/banner/saifMob.jpg +0 -0
  358. package/lib/widgets/banner/seif.jpg +0 -0
  359. package/lib/widgets/banner/shield.jpg +0 -0
  360. package/lib/widgets/banner/shield.png +0 -0
  361. package/lib/widgets/banner/ui/BannerButtonsGroup.tsx +0 -44
  362. package/lib/widgets/banner/ui/banners/BannerImageFull.tsx +0 -82
  363. package/lib/widgets/banner/ui/banners/BannerWithSeparateImg.tsx +0 -60
  364. package/lib/widgets/banner/ui/banners/index.ts +0 -1
  365. package/lib/widgets/footer/Footer.tsx +0 -95
  366. package/lib/widgets/footer/index.ts +0 -1
  367. package/lib/widgets/footer/model/defaultValues.tsx +0 -105
  368. package/lib/widgets/footer/model/types.ts +0 -19
  369. package/lib/widgets/footer/ui/Copyright.tsx +0 -15
  370. package/lib/widgets/footer/ui/Ligal.tsx +0 -50
  371. package/lib/widgets/footer/ui/NavLinks.tsx +0 -41
  372. package/lib/widgets/footer/ui/PhonesBlock.tsx +0 -34
  373. package/lib/widgets/footer/ui/SocialLinks.tsx +0 -30
  374. package/lib/widgets/pageHeader/PageHeader.tsx +0 -54
  375. package/lib/widgets/stepper/Stepper.tsx +0 -43
  376. package/lib/widgets/stepper/ui/SingleStep.tsx +0 -42
  377. package/postcss.config.mjs +0 -8
  378. package/src/App.tsx +0 -9
  379. package/src/app/providers/RootProvider.tsx +0 -11
  380. package/src/app/providers/index.ts +0 -1
  381. package/src/app/providers/model/types.ts +0 -5
  382. package/src/configs/setup.ts +0 -9
  383. package/src/configs/storybook.config.ts +0 -23
  384. package/src/main.tsx +0 -10
  385. package/src/stories/primitives/Accordion.stories.tsx +0 -66
  386. package/src/stories/primitives/Badge.stories.tsx +0 -28
  387. package/src/stories/primitives/Breadcrumbs.stories.tsx +0 -29
  388. package/src/stories/primitives/Button/Button.stories.tsx +0 -149
  389. package/src/stories/primitives/Button/Button.test.tsx +0 -150
  390. package/src/stories/primitives/ButtonIcon.stories.tsx +0 -75
  391. package/src/stories/primitives/CustomLink.stories.tsx +0 -64
  392. package/src/stories/primitives/Document.stories.tsx +0 -36
  393. package/src/stories/primitives/Heading.stories.tsx +0 -29
  394. package/src/stories/primitives/Hint.stories.tsx +0 -82
  395. package/src/stories/primitives/Icon.stories.tsx +0 -36
  396. package/src/stories/primitives/Loader.stories.tsx +0 -39
  397. package/src/stories/primitives/Modal.stories.tsx +0 -106
  398. package/src/stories/primitives/Notification.stories.tsx +0 -102
  399. package/src/stories/primitives/PhoneView.stories.tsx +0 -22
  400. package/src/stories/primitives/Popover.stories.tsx +0 -41
  401. package/src/stories/primitives/ProgressBar.stories.tsx +0 -68
  402. package/src/stories/primitives/Skeleton.stories.tsx +0 -21
  403. package/src/stories/primitives/Table.stories.tsx +0 -44
  404. package/src/stories/primitives/TabsSwitcher.stories.tsx +0 -45
  405. package/src/stories/primitives/formControl/CalendarControl.stories.tsx +0 -45
  406. package/src/stories/primitives/formControl/CheckboxControl.stories.tsx +0 -64
  407. package/src/stories/primitives/formControl/ComboboxControl.stories.tsx +0 -67
  408. package/src/stories/primitives/formControl/DadataInputControl.stories.tsx +0 -79
  409. package/src/stories/primitives/formControl/EditorControl.stories.tsx +0 -31
  410. package/src/stories/primitives/formControl/FormControlAllFields.stories.tsx +0 -25
  411. package/src/stories/primitives/formControl/InputControl.stories.tsx +0 -84
  412. package/src/stories/primitives/formControl/InputControlPassword.stories.tsx +0 -38
  413. package/src/stories/primitives/formControl/InputControlUploader.stories.tsx +0 -44
  414. package/src/stories/primitives/formControl/InputCurrencyControl.stories.tsx +0 -73
  415. package/src/stories/primitives/formControl/InputSliderControl.stories.tsx +0 -62
  416. package/src/stories/primitives/formControl/RadioContol.stories.tsx +0 -61
  417. package/src/stories/primitives/formControl/SwitchControl.stories.tsx +0 -51
  418. package/src/stories/primitives/formControl/TextareaControl.stories.tsx +0 -55
  419. package/src/stories/primitives/formControl/inputControlMask.stories.tsx +0 -67
  420. package/src/stories/widgets/Advantages.stories.tsx +0 -42
  421. package/src/stories/widgets/Banner.stories.tsx +0 -94
  422. package/src/stories/widgets/Footer.stories.tsx +0 -36
  423. package/src/stories/widgets/PageHeader.stories.tsx +0 -33
  424. package/src/stories/widgets/Stepper.stories.tsx +0 -24
  425. package/src/storybookHelpers/actions.tsx +0 -5
  426. package/src/storybookHelpers/index.ts +0 -2
  427. package/src/storybookHelpers/reactHookForm/index.ts +0 -3
  428. package/src/storybookHelpers/reactHookForm/model/mockData.ts +0 -19
  429. package/src/storybookHelpers/reactHookForm/model/mocks.tsx +0 -105
  430. package/src/storybookHelpers/reactHookForm/model/renderFields.tsx +0 -58
  431. package/src/storybookHelpers/reactHookForm/model/types.ts +0 -86
  432. package/src/storybookHelpers/reactHookForm/ui/StorybookFieldsMapper.tsx +0 -32
  433. package/src/storybookHelpers/reactHookForm/ui/StorybookFormProvider.tsx +0 -43
  434. package/src/storybookHelpers/reactHookForm/ui/index.ts +0 -2
  435. package/src/storybookHelpers/table/utils/defaultValue.ts +0 -51
  436. package/static/arrows/arrowCircle.svg +0 -18
  437. package/static/arrows/arrowLink.svg +0 -3
  438. package/static/arrows/arrowRight.svg +0 -3
  439. package/static/brandLogos/logoBlack.svg +0 -14
  440. package/static/brandLogos/logoBusiness.svg +0 -80
  441. package/static/brandLogos/logoGray.svg +0 -56
  442. package/static/brandLogos/logoInsurance.svg +0 -124
  443. package/static/brandLogos/logoMain.svg +0 -14
  444. package/static/brandLogos/logoWhite.svg +0 -56
  445. package/static/files/border.svg +0 -6
  446. package/static/files/borderError.svg +0 -6
  447. package/static/files/documentFilled.svg +0 -4
  448. package/static/files/documentOutline.svg +0 -4
  449. package/static/files/upload.svg +0 -3
  450. package/static/general/calendar.svg +0 -3
  451. package/static/general/check.svg +0 -6
  452. package/static/general/close.svg +0 -12
  453. package/static/general/edit.svg +0 -4
  454. package/static/general/hiddenEye.svg +0 -4
  455. package/static/general/plus.svg +0 -3
  456. package/static/general/showEye.svg +0 -4
  457. package/static/info/warningCircle.svg +0 -5
  458. package/static/social/classmates.svg +0 -3
  459. package/static/social/telegram.svg +0 -3
  460. package/static/social/vk.svg +0 -3
  461. package/tailwind.config.ts +0 -10
  462. package/tsconfig.json +0 -33
  463. package/tsconfig.node.json +0 -11
  464. package/vite.config.ts +0 -68
  465. package/vitest.config.mjs +0 -12
  466. /package/{public → dist}/sprites/arrows.svg +0 -0
  467. /package/{public → dist}/sprites/brandLogos.svg +0 -0
  468. /package/{public → dist}/sprites/files.svg +0 -0
  469. /package/{public → dist}/sprites/general.svg +0 -0
  470. /package/{public → dist}/sprites/info.svg +0 -0
  471. /package/{public → dist}/sprites/social.svg +0 -0
@@ -1,22 +0,0 @@
1
- export type TClassesUploaderMain = {
2
- wrapperMainContent: string
3
- borderContent: string
4
- wrapperTextContent: string
5
- uploaderIcon: string
6
- selectFileText: string
7
- selectFileTextSpan: string
8
- uploaderInput: string
9
- message: string
10
- }
11
-
12
- export type TClassesUploaderFiles = {
13
- filesWrapperContent: string
14
- fileWrapperContent: string
15
- fileContent: string
16
- fileDeleteIcon: string
17
- fileText: string
18
- fileButtonDeleteWrapper: string
19
- fileButtonDelete: string
20
- }
21
-
22
- export type TClassesUploader = TClassesUploaderFiles & TClassesUploaderMain
@@ -1,35 +0,0 @@
1
- import { type TClassesUploader } from '../model/types'
2
- import { Filename } from './Filename'
3
- import { Icon } from '$/shared/ui/icon'
4
- import { Loader } from '$/shared/ui/Loader'
5
- import { cn } from '$/shared/utils'
6
-
7
- interface IFileProps {
8
- filesStatus: {
9
- [key: string]: 'loading' | 'success' | 'error'
10
- }
11
- removeFile: (index: number) => void
12
- classes?: TClassesUploader
13
- file: File
14
- index: number
15
- }
16
-
17
- export const File = ({ filesStatus, removeFile, classes, file, index }: IFileProps) => {
18
- const fileSizeMb = file.size / 1024 / 1024
19
-
20
- return (
21
- <li key={file.name} className={cn('flex h-6 items-center justify-between p-1', classes?.fileWrapperContent)}>
22
- <div className={cn('flex items-center gap-2', classes?.fileContent)}>
23
- {filesStatus[file.name] === 'loading' && <Loader size='sm' />}
24
- {filesStatus[file.name] === 'success' && <Icon name='general/check' className='text-icon-positive-default' />}
25
- <Filename file={file} classes={classes} />
26
- </div>
27
- <div className={cn('flex items-center gap-2', classes?.fileButtonDeleteWrapper)}>
28
- <p className='desk-body-regular-m text-color-blue-grey-600'>{`${fileSizeMb.toFixed(1)} MB`}</p>
29
- <button className={cn('cursor-pointer', classes?.fileButtonDelete)} onClick={() => removeFile(index)}>
30
- <Icon name='general/close' className={cn('text-icon-blue-grey-600', classes?.fileDeleteIcon)} />
31
- </button>
32
- </div>
33
- </li>
34
- )
35
- }
@@ -1,40 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react'
2
- import { type TClassesUploader } from '../model/types'
3
- import { Hint } from '$/shared/ui/Hint'
4
- import { cn } from '$/shared/utils'
5
-
6
- interface IFileNameProps {
7
- file: File
8
- classes?: TClassesUploader
9
- }
10
-
11
- export const Filename = ({ file, classes }: IFileNameProps) => {
12
- const fileRef = useRef<HTMLParagraphElement>(null)
13
- const [isOverflow, setIsOverflow] = useState(false)
14
-
15
- useEffect(() => {
16
- if (fileRef.current) {
17
- setIsOverflow(fileRef.current.clientWidth > 300)
18
- }
19
- }, [file])
20
-
21
- return (
22
- <>
23
- {isOverflow ? (
24
- <Hint
25
- triggerElement={
26
- <p ref={fileRef} className={cn('desk-body-regular-m max-w-[300px] truncate text-color-dark')}>
27
- {file.name}
28
- </p>
29
- }
30
- >
31
- {file.name}
32
- </Hint>
33
- ) : (
34
- <p ref={fileRef} className={cn('desk-body-regular-m text-color-dark', classes?.fileText)}>
35
- {file.name}
36
- </p>
37
- )}
38
- </>
39
- )
40
- }
@@ -1,30 +0,0 @@
1
- import { type HTMLAttributes } from 'react'
2
- import { type TClassesUploader } from '../model/types'
3
- import { File } from './File'
4
- import { cn } from '$/shared/utils'
5
-
6
- interface IUploaderContentProps extends HTMLAttributes<HTMLDivElement> {
7
- controlledFiles: File[]
8
- filesStatus: {
9
- [key: string]: 'loading' | 'success' | 'error'
10
- }
11
- removeFile: (index: number) => void
12
- classes?: TClassesUploader
13
- }
14
-
15
- export const Files = ({ controlledFiles, filesStatus, classes, removeFile }: IUploaderContentProps) => {
16
- const isFilesExist = controlledFiles && controlledFiles.length > 0
17
-
18
- if (isFilesExist) {
19
- return (
20
- <ul className={cn('flex max-w-[476px] flex-col gap-1 px-1', classes?.filesWrapperContent)}>
21
- {controlledFiles.map((file, index) => (
22
- // eslint-disable-next-line react/no-array-index-key
23
- <File key={index} file={file} index={index} filesStatus={filesStatus} removeFile={removeFile} classes={classes} />
24
- ))}
25
- </ul>
26
- )
27
- }
28
-
29
- return null
30
- }
@@ -1,48 +0,0 @@
1
- import { forwardRef, type Ref } from 'react'
2
- import { type DropzoneRootProps } from 'react-dropzone'
3
- import { type FieldError, type FieldValues, type Path } from 'react-hook-form'
4
- import { type TClassesUploader } from '../model/types'
5
- import { Icon } from '$/shared/ui/icon'
6
- import { cn } from '$/shared/utils'
7
-
8
- export interface IFileInputProps<T extends FieldValues> {
9
- dropzoneState: DropzoneRootProps
10
- disabled?: boolean
11
- error?: FieldError
12
- classes?: Partial<TClassesUploader>
13
- name?: Path<T>
14
- }
15
-
16
- export const Input = forwardRef(function Input<T extends FieldValues>(
17
- { dropzoneState, classes, disabled, error, name }: IFileInputProps<T>,
18
- ref: Ref<HTMLDivElement>
19
- ) {
20
- const dropzoneProps = dropzoneState.getRootProps()
21
- return (
22
- <div
23
- className={cn(
24
- 'flex h-[64px] w-[476px] rounded-sm bg-[length:100%_100%] bg-no-repeat hover:border hover:border-primary-hover hover:bg-color-primary-tr-hover focus-visible:border focus-visible:border-primary-hover focus-visible:bg-color-primary-tr-hover focus-visible:outline-none active:border active:border-primary-hover active:bg-color-primary-tr-pressed [&:not(:hover)(:focus-visible)(:active)(:disabled)]:bg-[url("../../static/files/border.svg")]',
25
- classes?.borderContent,
26
- { 'bg-color-primary-light-default opacity-50': disabled },
27
- { '[&:not(:hover)(:focus-visible)(:active)(:disabled)]:bg-[url("../../static/files/borderError.svg")]': error }
28
- )}
29
- ref={ref}
30
- {...dropzoneProps}
31
- >
32
- <div className={cn('flex h-full w-full items-center justify-center gap-2', classes?.wrapperTextContent)}>
33
- <Icon name='files/upload' className={cn('text-icon-primary-default', classes?.uploaderIcon)} />
34
- <p className={cn('desk-body-regular-l select-none text-icon-primary-default', classes?.wrapperTextContent)}>
35
- Выберите файл
36
- <span className={cn('text-icon-blue-grey-600', classes?.selectFileTextSpan)}> или перетащите сюда</span>
37
- </p>
38
- </div>
39
- <input
40
- name={name}
41
- ref={dropzoneState.inputRef}
42
- disabled={disabled}
43
- {...dropzoneState.getInputProps()}
44
- className={cn(classes?.uploaderInput)}
45
- />
46
- </div>
47
- )
48
- })
@@ -1,58 +0,0 @@
1
- 'use client'
2
-
3
- import * as React from 'react'
4
- import { type DropzoneOptions } from 'react-dropzone'
5
- import { type FieldError, type FieldValues, type Path } from 'react-hook-form'
6
- import { MessageView } from '../../ui'
7
- import { defaultDropzoneOptions } from '../model'
8
- import { useUploader } from '../model/hooks/useUploader'
9
- import { type TClassesUploader } from '../model/types'
10
- import { Files } from './Files'
11
- import { Input } from './Input'
12
- import { cn } from '$/shared/utils'
13
-
14
- export interface IUploaderProps<T extends FieldValues> extends React.HTMLAttributes<HTMLDivElement> {
15
- controlledFiles: File[]
16
- dropzoneOptions: DropzoneOptions
17
- helperText?: string
18
- onValueChange: (f: File[]) => void
19
- disabled?: boolean
20
- error?: FieldError | undefined
21
- classes?: Partial<TClassesUploader>
22
- name: Path<T>
23
- }
24
-
25
- export const Uploader = React.forwardRef(function InputControl<T extends FieldValues>(
26
- {
27
- dropzoneOptions = defaultDropzoneOptions,
28
- controlledFiles,
29
- onValueChange,
30
- helperText,
31
- disabled,
32
- error,
33
- classes,
34
- name
35
- }: IUploaderProps<T>,
36
- ref: React.Ref<HTMLDivElement>
37
- ) {
38
- const { filesStatus, removeFile, dropzoneState } = useUploader({
39
- dropzoneOptions,
40
- controlledFiles,
41
- onValueChange
42
- })
43
-
44
- return (
45
- <>
46
- <div className={cn('relative mb-3 w-[476px]', classes?.wrapperMainContent)}>
47
- <Input ref={ref} name={name} classes={classes} error={error} disabled={disabled} dropzoneState={dropzoneState} />
48
- <MessageView
49
- className={cn(classes?.message)}
50
- intent={error?.message ? 'error' : 'simple'}
51
- text={error?.message || helperText}
52
- disabled={disabled}
53
- />
54
- </div>
55
- <Files filesStatus={filesStatus} removeFile={removeFile} controlledFiles={controlledFiles} />
56
- </>
57
- )
58
- })
@@ -1,3 +0,0 @@
1
- export { Input } from './Input'
2
- export { Uploader } from './Uploader'
3
- export { Files } from './Files'
@@ -1,88 +0,0 @@
1
- import * as React from 'react'
2
- import { Controller, type FieldValues } from 'react-hook-form'
3
- import { NumericFormat } from 'react-number-format'
4
- import { type TControlledInputProps, type TInputCommonProps } from '../model'
5
- import { FieldContainer, FieldWrapper, MessageView } from '../ui'
6
- import { currencyOptionsList, getDelimiterForCurrency } from './model/helpers'
7
- import { useInputCurrency } from './model/useInputCurrency'
8
- import { MenuTrigger, OptionList } from './ui'
9
- import { useClickOutside } from '$/shared/hooks'
10
- import { cn } from '$/shared/utils'
11
-
12
- export type TCurrencyVariant = 'euro' | 'dollars' | 'rubles' | 'yuan' | 'dirhams'
13
- export interface ICurrencyOption {
14
- ruName: string
15
- engName: string
16
- currency: TCurrencyVariant
17
- }
18
-
19
- export interface InputCurrencyControlProps<T extends FieldValues> extends TControlledInputProps<T>, TInputCommonProps {
20
- classes?: any // TODO ADD CLASSES AND CONNECT WITH BACKEND API TO GET CURRENCY
21
- defaultCurrency?: TCurrencyVariant
22
- }
23
-
24
- export const InputCurrencyControl = <T extends FieldValues>({
25
- label,
26
- size = 'full',
27
- helperText,
28
- control,
29
- classes,
30
- disabled,
31
- defaultCurrency = 'rubles',
32
- ...props
33
- }: InputCurrencyControlProps<T>) => {
34
- const inputId = React.useId()
35
- const containerRef = React.useRef<HTMLDivElement | null>(null)
36
- const { menuIsOpen, currentCurrencyOption, onSelectOption, onToggleMenu, onCloseMenu } = useInputCurrency(defaultCurrency)
37
-
38
- useClickOutside(containerRef, onCloseMenu)
39
-
40
- return (
41
- <Controller
42
- control={control}
43
- name={props.name}
44
- render={({ field: { onChange, ref, value }, fieldState: { error } }) => (
45
- <FieldContainer size={size} classes={classes}>
46
- <FieldWrapper
47
- fieldId={inputId}
48
- label={label}
49
- classes={classes}
50
- disabled={disabled}
51
- value={value}
52
- error={!!error?.message}
53
- >
54
- <div ref={containerRef} className='relative flex w-full items-center'>
55
- <NumericFormat
56
- thousandsGroupStyle='wan'
57
- thousandSeparator=' '
58
- prefix={getDelimiterForCurrency(currentCurrencyOption.currency)}
59
- getInputRef={ref}
60
- allowNegative={false}
61
- id={inputId}
62
- aria-invalid={error?.message ? 'true' : 'false'}
63
- className={cn(
64
- 'desk-body-regular-l h-[56px] w-full rounded-md bg-color-transparent px-4 pt-5 text-color-dark outline-none transition-all',
65
- classes?.input
66
- )}
67
- disabled={disabled}
68
- value={value?.toString()}
69
- onChange={onChange}
70
- {...props}
71
- />
72
-
73
- <MenuTrigger onToggleMenu={onToggleMenu} currentCurrencyOption={currentCurrencyOption} />
74
- <OptionList menuIsOpen={menuIsOpen} optionsList={currencyOptionsList} onSelectOption={onSelectOption} />
75
- </div>
76
- </FieldWrapper>
77
-
78
- <MessageView
79
- className={cn(classes?.message)}
80
- intent={error?.message ? 'error' : 'simple'}
81
- text={error?.message || helperText}
82
- disabled={disabled}
83
- />
84
- </FieldContainer>
85
- )}
86
- />
87
- )
88
- }
@@ -1,46 +0,0 @@
1
- import type { ICurrencyOption, TCurrencyVariant } from '../InputCurrencyControl'
2
-
3
- export const getDelimiterForCurrency = (currency: TCurrencyVariant) => {
4
- switch (currency) {
5
- case 'euro':
6
- return '\u20AC '
7
- case 'dollars':
8
- return '$ '
9
- case 'rubles':
10
- return '\u20BD '
11
- case 'yuan':
12
- return '¥ '
13
- case 'dirhams':
14
- return 'د.إ '
15
- default:
16
- return ''
17
- }
18
- }
19
-
20
- export const currencyOptionsList: ICurrencyOption[] = [
21
- {
22
- ruName: 'Евро',
23
- engName: 'Eur',
24
- currency: 'euro'
25
- },
26
- {
27
- ruName: 'Доллар США',
28
- engName: 'USD',
29
- currency: 'dollars'
30
- },
31
- {
32
- ruName: 'Российский рубль',
33
- engName: 'RUB',
34
- currency: 'rubles'
35
- },
36
- {
37
- ruName: 'Китайский Юань',
38
- engName: 'CNY',
39
- currency: 'yuan'
40
- },
41
- {
42
- ruName: 'Дирхам ОАЭ',
43
- engName: 'AED',
44
- currency: 'dirhams'
45
- }
46
- ]
@@ -1,33 +0,0 @@
1
- import React from 'react'
2
- import { type ICurrencyOption, type TCurrencyVariant } from '../InputCurrencyControl'
3
- import { currencyOptionsList } from './helpers'
4
-
5
- type TUseInputCurrencyReturn = {
6
- menuIsOpen: boolean
7
- currentCurrencyOption: ICurrencyOption
8
- onSelectOption: (option: ICurrencyOption) => void
9
- onToggleMenu: () => void
10
- onCloseMenu: () => void
11
- }
12
-
13
- export const useInputCurrency = (defaultCurrency?: TCurrencyVariant): TUseInputCurrencyReturn => {
14
- const [menuIsOpen, setMenuIsOpen] = React.useState(false)
15
- const [currentCurrencyOption, setCurrencyOption] = React.useState<ICurrencyOption>(
16
- () => currencyOptionsList?.find((option) => option?.currency === defaultCurrency) || currencyOptionsList[0]
17
- )
18
- const onSelectOption = (option: ICurrencyOption) => {
19
- setCurrencyOption(option)
20
- setMenuIsOpen(false)
21
- }
22
-
23
- const onToggleMenu = () => setMenuIsOpen((prev) => !prev)
24
- const onCloseMenu = () => setMenuIsOpen(false)
25
-
26
- return {
27
- menuIsOpen,
28
- currentCurrencyOption,
29
- onSelectOption,
30
- onToggleMenu,
31
- onCloseMenu
32
- }
33
- }
@@ -1,20 +0,0 @@
1
- import { type ICurrencyOption } from '../InputCurrencyControl'
2
- import { Icon } from '$/shared/ui'
3
-
4
- interface IMenuTriggerProps {
5
- onToggleMenu: () => void
6
- currentCurrencyOption: ICurrencyOption
7
- }
8
-
9
- export const MenuTrigger = ({ onToggleMenu, currentCurrencyOption }: IMenuTriggerProps) => {
10
- return (
11
- <button
12
- type='button'
13
- onClick={onToggleMenu}
14
- className='desk-body-regular-l flex items-center gap-1 border-l border-solid border-blue-grey-500 pl-2 pr-4'
15
- >
16
- <span className='uppercase text-color-tetriary'>{currentCurrencyOption.engName}</span>
17
- <Icon name='arrows/arrowRight' className='rotate-90 text-icon-blue-grey-700' />
18
- </button>
19
- )
20
- }
@@ -1,29 +0,0 @@
1
- import { type ICurrencyOption } from '../InputCurrencyControl'
2
- import { cn } from '$/shared/utils'
3
-
4
- interface IOptionListProps {
5
- optionsList: ICurrencyOption[]
6
- menuIsOpen: boolean
7
- onSelectOption: (option: ICurrencyOption) => void
8
- }
9
-
10
- export const OptionList = ({ optionsList, menuIsOpen, onSelectOption }: IOptionListProps) => {
11
- return (
12
- <div
13
- className={cn(
14
- 'invisible absolute top-[64px] z-10 h-[208px] w-full scale-0 rounded-sm bg-color-white p-1 opacity-0 shadow-sm transition-all',
15
- { 'opacity-1 scale-1 visible': menuIsOpen }
16
- )}
17
- >
18
- {optionsList?.map((option) => (
19
- <div
20
- key={option.engName}
21
- onClick={() => onSelectOption(option)}
22
- className='desk-body-regular-l flex cursor-pointer items-center gap-2 rounded-sm bg-color-white p-2 hover:bg-color-blue-grey-100'
23
- >
24
- <span>{option.ruName}</span> <span className='uppercase'>({option.engName})</span>
25
- </div>
26
- ))}
27
- </div>
28
- )
29
- }
@@ -1,2 +0,0 @@
1
- export { MenuTrigger } from './MenuTrigger'
2
- export { OptionList } from './OptionList'
@@ -1,144 +0,0 @@
1
- 'use client'
2
-
3
- import * as React from 'react'
4
- import { Controller, type FieldValues } from 'react-hook-form'
5
- import { NumericFormat } from 'react-number-format'
6
- import type { TAdditionalInputClassesWithAttachment, TControlledInputProps } from '../model'
7
- import { FieldAttachment, FieldContainer, FieldWrapper, MessageView } from '../ui'
8
- import { formatNumber, getMinMaxTextSlider, getStepByVariant } from './model/helpers'
9
- import { type TSliderVariants } from './model/types'
10
- import { useSlider } from './model/useSlider'
11
- import { SliderControl } from './ui/SliderControl'
12
- import { cn } from '$/shared/utils'
13
-
14
- export interface IInputSliderCommonProps {
15
- min: number
16
- max: number
17
- variant: TSliderVariants
18
- step?: number
19
- }
20
-
21
- export interface InputSliderControlProps<T extends FieldValues> extends TControlledInputProps<T>, IInputSliderCommonProps {
22
- classes?: Partial<TAdditionalInputClassesWithAttachment> & {
23
- spanLeft?: string
24
- spanRight?: string
25
- }
26
- disabled?: boolean
27
- onInputChange?: (value?: number) => void
28
- leftText?: string
29
- rightText?: string
30
- }
31
-
32
- export const InputSliderControl = <T extends FieldValues>({
33
- label,
34
- size = 'full',
35
- helperText,
36
- control,
37
- classes,
38
- badge,
39
- icon,
40
- disabled,
41
- onInputChange,
42
- min,
43
- max,
44
- variant,
45
- ...props
46
- }: InputSliderControlProps<T>) => {
47
- const inputId = React.useId()
48
- const ref = React.useRef<HTMLInputElement>(null)
49
-
50
- const handleIconClick = () => {
51
- if (ref.current) {
52
- ref?.current?.focus()
53
- }
54
- }
55
-
56
- const { handleBlur, handleChange, getSuffixText } = useSlider()
57
-
58
- return (
59
- <Controller
60
- control={control}
61
- name={props.name}
62
- render={({ field: { onChange, value }, fieldState: { error } }) => {
63
- const [start, end] = getMinMaxTextSlider(variant, min, max)
64
- return (
65
- <div className='flex flex-col gap-1'>
66
- <FieldContainer size={size} classes={classes}>
67
- <FieldWrapper
68
- fieldId={inputId}
69
- label={label}
70
- classes={classes}
71
- disabled={disabled}
72
- value={value}
73
- error={!!error?.message}
74
- >
75
- <>
76
- <NumericFormat
77
- aria-invalid={error?.message ? 'true' : 'false'}
78
- className={cn(
79
- 'group/slider desk-title-bold-s h-[56px] w-full rounded-md bg-color-transparent px-4 pt-5 text-color-dark outline-none transition-all',
80
- classes?.input
81
- )}
82
- id={inputId}
83
- onBlur={() => {
84
- handleBlur(value, min, max, onChange)
85
- }}
86
- value={value}
87
- disabled={disabled}
88
- suffix={` ${getSuffixText(value, variant)}`}
89
- thousandsGroupStyle='thousand'
90
- onValueChange={({ floatValue }) => {
91
- handleChange(onChange, floatValue)
92
- if (onInputChange) {
93
- onInputChange(floatValue)
94
- }
95
- }}
96
- thousandSeparator={' '}
97
- allowNegative={false}
98
- getInputRef={ref}
99
- {...props}
100
- />
101
- <SliderControl
102
- onValueChange={(inputValue) => onChange(inputValue[0])}
103
- value={[value]}
104
- min={min}
105
- max={max}
106
- step={getStepByVariant(value, variant)}
107
- variant={variant}
108
- />
109
-
110
- <div aria-label='edit' onKeyDown={handleIconClick} role='button' tabIndex={0} onClick={handleIconClick}>
111
- <FieldAttachment
112
- onClickIcon={handleIconClick}
113
- onKeyDownIcon={handleIconClick}
114
- isSlider
115
- badge={badge}
116
- icon={icon}
117
- error={!!error?.message}
118
- classes={classes}
119
- />
120
- </div>
121
- </>
122
- </FieldWrapper>
123
-
124
- <MessageView
125
- className={cn(classes?.message)}
126
- intent={error?.message ? 'error' : 'simple'}
127
- text={error?.message || helperText}
128
- disabled={disabled}
129
- />
130
- </FieldContainer>
131
- <div className='flex justify-between'>
132
- <span
133
- className={cn('desk-body-regular-m text-color-tetriary', classes?.spanLeft)}
134
- >{`${formatNumber(min)} ${start}`}</span>
135
- <span
136
- className={cn('desk-body-regular-m text-color-tetriary', classes?.spanRight)}
137
- >{`${formatNumber(max)} ${end}`}</span>
138
- </div>
139
- </div>
140
- )
141
- }}
142
- />
143
- )
144
- }
@@ -1,14 +0,0 @@
1
- export function getEndWordMonth(months: number) {
2
- const remMonthsDivByTen = months % 10
3
-
4
- switch (true) {
5
- case months > 10 && months < 20:
6
- return 'месяцев'
7
- case remMonthsDivByTen > 1 && remMonthsDivByTen < 5:
8
- return 'месяца'
9
- case remMonthsDivByTen === 1:
10
- return 'месяц'
11
- default:
12
- return 'месяцев'
13
- }
14
- }
@@ -1,13 +0,0 @@
1
- export function getYearEnding(years: number) {
2
- const lastDigit = Math.floor(years) % 10
3
- if (years >= 5 && years <= 20) {
4
- return 'лет'
5
- }
6
- if (lastDigit === 1) {
7
- return 'год'
8
- }
9
- if (lastDigit >= 2 && lastDigit <= 4) {
10
- return 'года'
11
- }
12
- return 'лет'
13
- }
@@ -1,2 +0,0 @@
1
- export { getEndWordMonth } from './getEndWordMonth'
2
- export { getYearEnding } from './getYearEnding'
@@ -1,6 +0,0 @@
1
- export const formatNumber = (value: number | string) => {
2
- if (typeof value === 'number') {
3
- return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ' ')
4
- }
5
- return value.replace(/\B(?=(\d{3})+(?!\d))/g, ' ')
6
- }
@@ -1,20 +0,0 @@
1
- import { type TSliderVariants } from '../types'
2
- import { getYearEnding } from './dates'
3
-
4
- export const getInputSliderSuffix = (variant: TSliderVariants, value: number) => {
5
- const variants = {
6
- years: getYearEnding(value),
7
- credit: '₽'
8
- }
9
-
10
- return variants[variant]
11
- }
12
-
13
- export const getMinMaxTextSlider = (variant: TSliderVariants, min: number, max: number) => {
14
- const variants = {
15
- years: [min, max].map(getYearEnding),
16
- credit: ['₽', '₽']
17
- }
18
-
19
- return variants[variant]
20
- }