@via-profit/ui-kit 0.3.0 → 0.4.0

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 (485) hide show
  1. package/Accordion/AccordionContainer.js +11 -11
  2. package/Accordion/AccordionContent.js +16 -7
  3. package/Accordion/AccordionHeader.d.ts +22 -0
  4. package/Accordion/AccordionHeader.js +35 -18
  5. package/Accordion/Chevron.js +3 -3
  6. package/Accordion/index.d.ts +12 -8
  7. package/Accordion/index.js +21 -6
  8. package/Autocomplete/AutocompleteContainer.d.ts +5 -9
  9. package/Autocomplete/AutocompleteContainer.js +91 -35
  10. package/Autocomplete/AutocompleteTagsInput.d.ts +15 -0
  11. package/Autocomplete/AutocompleteTagsInput.js +65 -0
  12. package/Autocomplete/context.d.ts +1 -0
  13. package/Autocomplete/context.js +5 -5
  14. package/Autocomplete/index.js +1 -0
  15. package/Avatar/AvatarBase.js +1 -1
  16. package/Avatar/AvatarContainer.js +6 -11
  17. package/Avatar/AvatarPicture.d.ts +9 -1
  18. package/Avatar/AvatarPicture.js +4 -3
  19. package/Avatar/index.js +10 -10
  20. package/Badge/BadgeBase.d.ts +9 -0
  21. package/Badge/BadgeBase.js +21 -3
  22. package/Badge/BadgeContainer.js +2 -1
  23. package/Badge/BadgeDeleteButton.d.ts +1 -1
  24. package/Badge/BadgeOutlined.d.ts +1 -1
  25. package/Badge/BadgeOutlined.js +5 -80
  26. package/Badge/BadgeStandard.d.ts +1 -1
  27. package/Badge/BadgeStandard.js +5 -91
  28. package/Badge/BadgeStyled.d.ts +5 -0
  29. package/Badge/BadgeStyled.js +125 -0
  30. package/Badge/index.d.ts +2 -2
  31. package/Badge/index.js +3 -20
  32. package/Button/ButtonBase.js +8 -4
  33. package/Button/ButtonContainer.js +2 -0
  34. package/Button/ButtonIconWrapper.d.ts +1 -1
  35. package/Button/ButtonOutlined.d.ts +1 -1
  36. package/Button/ButtonOutlined.js +5 -80
  37. package/Button/ButtonPlain.d.ts +1 -1
  38. package/Button/ButtonPlain.js +5 -85
  39. package/Button/ButtonStandard.d.ts +1 -1
  40. package/Button/ButtonStandard.js +5 -97
  41. package/Button/ButtonStyled.d.ts +10 -0
  42. package/Button/ButtonStyled.js +205 -0
  43. package/Button/index.d.ts +5 -5
  44. package/Button/index.js +3 -24
  45. package/ButtonGroup/ButtonGroupContext.d.ts +21 -0
  46. package/ButtonGroup/ButtonGroupContext.js +11 -0
  47. package/ButtonGroup/index.d.ts +76 -0
  48. package/ButtonGroup/index.js +132 -0
  49. package/CHANGELOG.md +122 -0
  50. package/Calendar/CalendarCell.js +11 -4
  51. package/Calendar/CalendarComponent.d.ts +15 -4
  52. package/Calendar/CalendarComponent.js +150 -55
  53. package/Calendar/CalendarDayBadge.d.ts +1 -1
  54. package/Calendar/CalendarMonthCell.js +1 -11
  55. package/Calendar/CalendarWeekDayLabel.js +3 -1
  56. package/Calendar/CalendarWeekDaysBar.js +6 -1
  57. package/Calendar/CalendarYearCell.js +1 -16
  58. package/Calendar/CalendarYearsSelector.d.ts +0 -1
  59. package/Calendar/CalendarYearsSelector.js +33 -35
  60. package/Calendar/use-calendar.d.ts +1 -1
  61. package/Checkbox/CheckboxAsterisk.d.ts +13 -0
  62. package/{Autocomplete2/Autocomplete2TextField.js → Checkbox/CheckboxAsterisk.js} +24 -10
  63. package/Checkbox/CheckboxBox.d.ts +22 -0
  64. package/Checkbox/CheckboxBox.js +88 -0
  65. package/Checkbox/CheckboxContainer.d.ts +27 -0
  66. package/Checkbox/CheckboxContainer.js +38 -0
  67. package/Checkbox/CheckboxErrorText.d.ts +6 -0
  68. package/Checkbox/CheckboxErrorText.js +76 -0
  69. package/Checkbox/CheckboxIcon.d.ts +10 -0
  70. package/Checkbox/CheckboxIcon.js +57 -0
  71. package/Checkbox/CheckboxTextWrapper.d.ts +4 -0
  72. package/Checkbox/CheckboxTextWrapper.js +29 -0
  73. package/Checkbox/CheckboxWrapper.d.ts +4 -0
  74. package/Checkbox/CheckboxWrapper.js +29 -0
  75. package/Checkbox/index.d.ts +144 -0
  76. package/Checkbox/index.js +71 -0
  77. package/Checkbox/useCheckboxColor.d.ts +6 -0
  78. package/Checkbox/useCheckboxColor.js +33 -0
  79. package/ClickOutside/index.d.ts +6 -0
  80. package/ClickOutside/index.js +7 -2
  81. package/Color/Color.d.ts +4 -4
  82. package/Color/Color.js +9 -5
  83. package/Color/ColorGenerator.d.ts +5 -1
  84. package/CountryFlags/AC.js +5 -1
  85. package/CountryFlags/AD.js +5 -1
  86. package/CountryFlags/AE.js +5 -1
  87. package/CountryFlags/AF.js +5 -1
  88. package/CountryFlags/AG.js +5 -1
  89. package/CountryFlags/AI.js +5 -1
  90. package/CountryFlags/AL.js +5 -1
  91. package/CountryFlags/AM.js +5 -1
  92. package/CountryFlags/AO.js +5 -1
  93. package/CountryFlags/AQ.js +5 -1
  94. package/CountryFlags/AR.js +5 -1
  95. package/CountryFlags/AS.js +5 -1
  96. package/CountryFlags/AT.js +5 -1
  97. package/CountryFlags/AU.js +5 -1
  98. package/CountryFlags/AW.js +5 -1
  99. package/CountryFlags/AX.js +5 -1
  100. package/CountryFlags/AZ.js +5 -1
  101. package/CountryFlags/BA.js +5 -1
  102. package/CountryFlags/BB.js +5 -1
  103. package/CountryFlags/BD.js +5 -1
  104. package/CountryFlags/BE.js +5 -1
  105. package/CountryFlags/BF.js +5 -1
  106. package/CountryFlags/BG.js +5 -1
  107. package/CountryFlags/BH.js +5 -1
  108. package/CountryFlags/BI.js +5 -1
  109. package/CountryFlags/BJ.js +5 -1
  110. package/CountryFlags/BL.js +5 -1
  111. package/CountryFlags/BM.js +5 -1
  112. package/CountryFlags/BN.js +5 -1
  113. package/CountryFlags/BO.js +5 -1
  114. package/CountryFlags/BQ.js +5 -1
  115. package/CountryFlags/BR.js +5 -1
  116. package/CountryFlags/BS.js +5 -1
  117. package/CountryFlags/BT.js +5 -1
  118. package/CountryFlags/BV.js +5 -1
  119. package/CountryFlags/BW.js +5 -1
  120. package/CountryFlags/BY.js +5 -1
  121. package/CountryFlags/BZ.js +5 -1
  122. package/CountryFlags/CA.js +5 -1
  123. package/CountryFlags/CC.js +5 -1
  124. package/CountryFlags/CD.js +5 -1
  125. package/CountryFlags/CF.js +5 -1
  126. package/CountryFlags/CG.js +5 -1
  127. package/CountryFlags/CH.js +5 -1
  128. package/CountryFlags/CI.js +5 -1
  129. package/CountryFlags/CK.js +5 -1
  130. package/CountryFlags/CL.js +5 -1
  131. package/CountryFlags/CM.js +5 -1
  132. package/CountryFlags/CN.js +5 -1
  133. package/CountryFlags/CO.js +5 -1
  134. package/CountryFlags/CR.js +5 -1
  135. package/CountryFlags/CU.js +5 -1
  136. package/CountryFlags/CV.js +5 -1
  137. package/CountryFlags/CW.js +5 -1
  138. package/CountryFlags/CX.js +5 -1
  139. package/CountryFlags/CY.js +5 -1
  140. package/CountryFlags/CZ.js +5 -1
  141. package/CountryFlags/DE.js +5 -1
  142. package/CountryFlags/DJ.js +5 -1
  143. package/CountryFlags/DK.js +5 -1
  144. package/CountryFlags/DM.js +5 -1
  145. package/CountryFlags/DO.js +5 -1
  146. package/CountryFlags/DZ.js +5 -1
  147. package/CountryFlags/EC.js +5 -1
  148. package/CountryFlags/EE.js +5 -1
  149. package/CountryFlags/EG.js +5 -1
  150. package/CountryFlags/EH.js +5 -1
  151. package/CountryFlags/ER.js +5 -1
  152. package/CountryFlags/ES.js +5 -1
  153. package/CountryFlags/ET.js +5 -1
  154. package/CountryFlags/EU.js +5 -1
  155. package/CountryFlags/FI.js +5 -1
  156. package/CountryFlags/FJ.js +5 -1
  157. package/CountryFlags/FK.js +5 -1
  158. package/CountryFlags/FM.js +5 -1
  159. package/CountryFlags/FO.js +5 -1
  160. package/CountryFlags/FR.js +5 -1
  161. package/CountryFlags/GA.js +5 -1
  162. package/CountryFlags/GB.js +5 -1
  163. package/CountryFlags/GD.js +5 -1
  164. package/CountryFlags/GE.js +5 -1
  165. package/CountryFlags/GEAB.js +5 -1
  166. package/CountryFlags/GEOS.js +5 -1
  167. package/CountryFlags/GF.js +5 -1
  168. package/CountryFlags/GG.js +5 -1
  169. package/CountryFlags/GH.js +5 -1
  170. package/CountryFlags/GI.js +5 -1
  171. package/CountryFlags/GL.js +5 -1
  172. package/CountryFlags/GM.js +5 -1
  173. package/CountryFlags/GN.js +5 -1
  174. package/CountryFlags/GP.js +5 -1
  175. package/CountryFlags/GQ.js +5 -1
  176. package/CountryFlags/GR.js +5 -1
  177. package/CountryFlags/GS.js +5 -1
  178. package/CountryFlags/GT.js +5 -1
  179. package/CountryFlags/GU.js +5 -1
  180. package/CountryFlags/GW.js +5 -1
  181. package/CountryFlags/GY.js +5 -1
  182. package/CountryFlags/HK.js +5 -1
  183. package/CountryFlags/HM.js +5 -1
  184. package/CountryFlags/HN.js +5 -1
  185. package/CountryFlags/HR.js +5 -1
  186. package/CountryFlags/HT.js +5 -1
  187. package/CountryFlags/HU.js +5 -1
  188. package/CountryFlags/IC.js +5 -1
  189. package/CountryFlags/ID.js +5 -1
  190. package/CountryFlags/IE.js +5 -1
  191. package/CountryFlags/IL.js +5 -1
  192. package/CountryFlags/IM.js +5 -1
  193. package/CountryFlags/IN.js +5 -1
  194. package/CountryFlags/IO.js +5 -1
  195. package/CountryFlags/IQ.js +5 -1
  196. package/CountryFlags/IR.js +5 -1
  197. package/CountryFlags/IS.js +5 -1
  198. package/CountryFlags/IT.js +5 -1
  199. package/CountryFlags/JE.js +5 -1
  200. package/CountryFlags/JM.js +5 -1
  201. package/CountryFlags/JO.js +5 -1
  202. package/CountryFlags/JP.js +5 -1
  203. package/CountryFlags/KE.js +5 -1
  204. package/CountryFlags/KG.js +5 -1
  205. package/CountryFlags/KH.js +5 -1
  206. package/CountryFlags/KI.js +5 -1
  207. package/CountryFlags/KM.js +5 -1
  208. package/CountryFlags/KN.js +5 -1
  209. package/CountryFlags/KP.js +5 -1
  210. package/CountryFlags/KR.js +5 -1
  211. package/CountryFlags/KW.js +5 -1
  212. package/CountryFlags/KY.js +5 -1
  213. package/CountryFlags/KZ.js +5 -1
  214. package/CountryFlags/LA.js +5 -1
  215. package/CountryFlags/LB.js +5 -1
  216. package/CountryFlags/LC.js +5 -1
  217. package/CountryFlags/LI.js +5 -1
  218. package/CountryFlags/LK.js +5 -1
  219. package/CountryFlags/LR.js +5 -1
  220. package/CountryFlags/LS.js +5 -1
  221. package/CountryFlags/LT.js +5 -1
  222. package/CountryFlags/LU.js +5 -1
  223. package/CountryFlags/LV.js +5 -1
  224. package/CountryFlags/LY.js +5 -1
  225. package/CountryFlags/MA.js +5 -1
  226. package/CountryFlags/MC.js +5 -1
  227. package/CountryFlags/MD.js +5 -1
  228. package/CountryFlags/ME.js +5 -1
  229. package/CountryFlags/MF.js +5 -1
  230. package/CountryFlags/MG.js +5 -1
  231. package/CountryFlags/MH.js +5 -1
  232. package/CountryFlags/MK.js +5 -1
  233. package/CountryFlags/ML.js +5 -1
  234. package/CountryFlags/MM.js +5 -1
  235. package/CountryFlags/MN.js +5 -1
  236. package/CountryFlags/MO.js +5 -1
  237. package/CountryFlags/MP.js +5 -1
  238. package/CountryFlags/MQ.js +5 -1
  239. package/CountryFlags/MR.js +5 -1
  240. package/CountryFlags/MS.js +5 -1
  241. package/CountryFlags/MT.js +5 -1
  242. package/CountryFlags/MU.js +5 -1
  243. package/CountryFlags/MV.js +5 -1
  244. package/CountryFlags/MW.js +5 -1
  245. package/CountryFlags/MX.js +5 -1
  246. package/CountryFlags/MY.js +5 -1
  247. package/CountryFlags/MZ.js +5 -1
  248. package/CountryFlags/NA.js +5 -1
  249. package/CountryFlags/NC.js +5 -1
  250. package/CountryFlags/NE.js +5 -1
  251. package/CountryFlags/NF.js +5 -1
  252. package/CountryFlags/NG.js +5 -1
  253. package/CountryFlags/NI.js +5 -1
  254. package/CountryFlags/NL.js +5 -1
  255. package/CountryFlags/NO.js +5 -1
  256. package/CountryFlags/NP.js +5 -1
  257. package/CountryFlags/NR.js +5 -1
  258. package/CountryFlags/NU.js +5 -1
  259. package/CountryFlags/NZ.js +5 -1
  260. package/CountryFlags/OM.js +5 -1
  261. package/CountryFlags/PA.js +5 -1
  262. package/CountryFlags/PE.js +5 -1
  263. package/CountryFlags/PF.js +5 -1
  264. package/CountryFlags/PG.js +5 -1
  265. package/CountryFlags/PH.js +5 -1
  266. package/CountryFlags/PK.js +5 -1
  267. package/CountryFlags/PL.js +5 -1
  268. package/CountryFlags/PM.js +5 -1
  269. package/CountryFlags/PN.js +5 -1
  270. package/CountryFlags/PR.js +5 -1
  271. package/CountryFlags/PS.js +5 -1
  272. package/CountryFlags/PT.js +5 -1
  273. package/CountryFlags/PW.js +5 -1
  274. package/CountryFlags/PY.js +5 -1
  275. package/CountryFlags/QA.js +5 -1
  276. package/CountryFlags/RE.js +5 -1
  277. package/CountryFlags/RO.js +5 -1
  278. package/CountryFlags/RS.js +5 -1
  279. package/CountryFlags/RU.js +5 -1
  280. package/CountryFlags/RW.js +5 -1
  281. package/CountryFlags/SA.js +5 -1
  282. package/CountryFlags/SB.js +5 -1
  283. package/CountryFlags/SC.js +5 -1
  284. package/CountryFlags/SD.js +5 -1
  285. package/CountryFlags/SE.js +5 -1
  286. package/CountryFlags/SG.js +5 -1
  287. package/CountryFlags/SH.js +5 -1
  288. package/CountryFlags/SI.js +5 -1
  289. package/CountryFlags/SJ.js +5 -1
  290. package/CountryFlags/SK.js +5 -1
  291. package/CountryFlags/SL.js +5 -1
  292. package/CountryFlags/SM.js +5 -1
  293. package/CountryFlags/SN.js +5 -1
  294. package/CountryFlags/SO.js +5 -1
  295. package/CountryFlags/SR.js +5 -1
  296. package/CountryFlags/SS.js +5 -1
  297. package/CountryFlags/ST.js +5 -1
  298. package/CountryFlags/SV.js +5 -1
  299. package/CountryFlags/SX.js +5 -1
  300. package/CountryFlags/SY.js +5 -1
  301. package/CountryFlags/SZ.js +5 -1
  302. package/CountryFlags/TA.js +5 -1
  303. package/CountryFlags/TC.js +5 -1
  304. package/CountryFlags/TD.js +5 -1
  305. package/CountryFlags/TF.js +5 -1
  306. package/CountryFlags/TG.js +5 -1
  307. package/CountryFlags/TH.js +5 -1
  308. package/CountryFlags/TJ.js +5 -1
  309. package/CountryFlags/TK.js +5 -1
  310. package/CountryFlags/TL.js +5 -1
  311. package/CountryFlags/TM.js +5 -1
  312. package/CountryFlags/TN.js +5 -1
  313. package/CountryFlags/TO.js +5 -1
  314. package/CountryFlags/TR.js +5 -1
  315. package/CountryFlags/TT.js +5 -1
  316. package/CountryFlags/TV.js +5 -1
  317. package/CountryFlags/TW.js +5 -1
  318. package/CountryFlags/TZ.js +5 -1
  319. package/CountryFlags/UA.js +5 -1
  320. package/CountryFlags/UG.js +5 -1
  321. package/CountryFlags/UM.js +5 -1
  322. package/CountryFlags/US.js +5 -1
  323. package/CountryFlags/UY.js +5 -1
  324. package/CountryFlags/UZ.js +5 -1
  325. package/CountryFlags/Uknown.d.ts +7 -3
  326. package/CountryFlags/Uknown.js +9 -31
  327. package/CountryFlags/Unknown.d.ts +3 -0
  328. package/CountryFlags/Unknown.js +42 -0
  329. package/CountryFlags/VA.js +5 -1
  330. package/CountryFlags/VC.js +5 -1
  331. package/CountryFlags/VE.js +5 -1
  332. package/CountryFlags/VG.js +5 -1
  333. package/CountryFlags/VI.js +5 -1
  334. package/CountryFlags/VN.js +5 -1
  335. package/CountryFlags/VU.js +5 -1
  336. package/CountryFlags/WF.js +5 -1
  337. package/CountryFlags/WS.js +5 -1
  338. package/CountryFlags/XK.js +5 -1
  339. package/CountryFlags/YE.js +5 -1
  340. package/CountryFlags/YT.js +5 -1
  341. package/CountryFlags/ZA.js +5 -1
  342. package/CountryFlags/ZM.js +5 -1
  343. package/CountryFlags/ZW.js +5 -1
  344. package/CountryFlags/index.d.ts +2 -1
  345. package/CountryFlags/index.js +3 -1
  346. package/CountryFlags/isLabelled.d.ts +6 -0
  347. package/CountryFlags/isLabelled.js +7 -0
  348. package/DatePicker/index.d.ts +19 -6
  349. package/DatePicker/index.js +59 -12
  350. package/Grid/index.d.ts +60 -0
  351. package/Grid/index.js +43 -0
  352. package/Highlighted/index.d.ts +1 -1
  353. package/Highlighted/index.js +14 -10
  354. package/LoadingIndicator/LoadingOverlay.d.ts +11 -0
  355. package/LoadingIndicator/LoadingOverlay.js +63 -0
  356. package/LoadingIndicator/Spinner.d.ts +34 -5
  357. package/LoadingIndicator/Spinner.js +48 -37
  358. package/LoadingIndicator/SpinnerCircle.d.ts +14 -0
  359. package/LoadingIndicator/SpinnerCircle.js +34 -0
  360. package/LoadingIndicator/index.d.ts +8 -3
  361. package/LoadingIndicator/index.js +9 -15
  362. package/MaskedField/index.d.ts +3 -2
  363. package/MaskedField/index.js +7 -2
  364. package/MaskedField/templates.js +2 -0
  365. package/MaskedField/useMasked.js +9 -6
  366. package/Menu/MenuContainer.d.ts +8 -0
  367. package/Menu/MenuContainer.js +101 -30
  368. package/Menu/MenuItem.js +1 -1
  369. package/Menu/context.js +5 -0
  370. package/Modal/BaseModal/useDialogID.d.ts +6 -0
  371. package/Modal/BaseModal/useDialogID.js +12 -0
  372. package/Modal/ConfirmBox/ConfirmBoxContainer.js +5 -1
  373. package/Modal/ConfirmBox/index.js +2 -1
  374. package/Modal/Dialog/DialogInner.js +1 -1
  375. package/Modal/Dialog/index.js +12 -7
  376. package/Modal/Drawer/DrawerHeader.d.ts +20 -0
  377. package/Modal/Drawer/DrawerHeader.js +3 -3
  378. package/Modal/Drawer/DrawerInner.js +9 -1
  379. package/Modal/Drawer/index.d.ts +7 -0
  380. package/Modal/Drawer/index.js +12 -10
  381. package/Modal/MessageBox/MessageBoxContainer.js +1 -1
  382. package/Modal/MessageBox/index.js +2 -1
  383. package/PhoneField/CountryFlagComponent.js +2 -2
  384. package/PhoneField/UnknownFlag.d.ts +6 -3
  385. package/PhoneField/UnknownFlag.js +8 -31
  386. package/PhoneField/index.js +45 -55
  387. package/PhoneField/templates.js +13 -14
  388. package/PhoneField/usePhoneUtils.d.ts +15 -0
  389. package/PhoneField/usePhoneUtils.js +30 -37
  390. package/Popper/Popper.d.ts +28 -8
  391. package/Popper/usePopper.d.ts +21 -31
  392. package/README.md +27 -10
  393. package/Radio/RadioBox.d.ts +14 -0
  394. package/Radio/RadioBox.js +100 -0
  395. package/Radio/RadioContainer.d.ts +27 -0
  396. package/Radio/RadioContainer.js +38 -0
  397. package/Radio/RadioTextWrapper.d.ts +4 -0
  398. package/Radio/RadioTextWrapper.js +29 -0
  399. package/Radio/index.d.ts +64 -0
  400. package/Radio/index.js +49 -0
  401. package/Radio/useRadioColor.d.ts +6 -0
  402. package/Radio/useRadioColor.js +33 -0
  403. package/RadioGroup/RadioGroupAsterisk.d.ts +13 -0
  404. package/RadioGroup/RadioGroupAsterisk.js +53 -0
  405. package/RadioGroup/RadioGroupContainer.d.ts +4 -0
  406. package/RadioGroup/RadioGroupContainer.js +36 -0
  407. package/RadioGroup/RadioGroupContext.d.ts +20 -0
  408. package/RadioGroup/RadioGroupContext.js +11 -0
  409. package/RadioGroup/RadioGroupErrorText.d.ts +6 -0
  410. package/RadioGroup/RadioGroupErrorText.js +76 -0
  411. package/RadioGroup/RadioGroupItems.d.ts +9 -0
  412. package/RadioGroup/RadioGroupItems.js +30 -0
  413. package/RadioGroup/RadioGroupLegend.d.ts +4 -0
  414. package/RadioGroup/RadioGroupLegend.js +37 -0
  415. package/RadioGroup/index.d.ts +134 -0
  416. package/RadioGroup/index.js +62 -0
  417. package/Selectbox/index.d.ts +18 -2
  418. package/Selectbox/index.js +23 -7
  419. package/Stack/index.d.ts +62 -0
  420. package/Stack/index.js +38 -0
  421. package/Surface/SurfaceContainer.js +6 -0
  422. package/Surface/index.js +7 -3
  423. package/Swiper/Swiper.d.ts +28 -2
  424. package/Swiper/Swiper.js +233 -90
  425. package/Swiper/SwiperContainer.js +0 -2
  426. package/Swiper/SwiperSlidesRenderer.d.ts +8 -0
  427. package/Swiper/SwiperSlidesRenderer.js +17 -14
  428. package/Swiper/SwiperTrack.d.ts +8 -0
  429. package/Swiper/SwiperTrack.js +8 -3
  430. package/Swiper/SwiperWrapper.js +9 -1
  431. package/Switch/SwitchContainer.d.ts +1 -1
  432. package/Switch/SwitchContainer.js +5 -5
  433. package/Switch/SwitchDot.js +13 -53
  434. package/Switch/SwitchToggleWrapper.d.ts +1 -1
  435. package/Switch/SwitchToggleWrapper.js +5 -6
  436. package/Switch/SwitchTrack.js +5 -41
  437. package/Switch/index.d.ts +4 -4
  438. package/Switch/index.js +21 -11
  439. package/Switch/useSwitchColor.d.ts +7 -0
  440. package/Switch/useSwitchColor.js +33 -0
  441. package/Table/Table.d.ts +6 -0
  442. package/Table/Table.js +7 -62
  443. package/Table/TableBody.d.ts +1 -1
  444. package/Table/TableBody.js +4 -2
  445. package/Table/TableCaption.d.ts +2 -2
  446. package/Table/TableCaption.js +2 -3
  447. package/Table/TableCell.js +2 -5
  448. package/Table/TableFooter.js +8 -7
  449. package/Table/TableHeader.js +6 -2
  450. package/Table/TableHeaderCell.js +8 -9
  451. package/Table/TableRow.js +1 -5
  452. package/TextArea/TextAreaIconWrapper.d.ts +1 -1
  453. package/TextArea/TextAreaInput.js +2 -0
  454. package/TextArea/index.js +1 -1
  455. package/TextField/TextFieldInput.js +2 -0
  456. package/TextField/TextFieldInputWrapper.d.ts +2 -0
  457. package/TextField/TextFieldInputWrapper.js +12 -2
  458. package/TextField/index.js +1 -1
  459. package/ThemeProvider/createTheme.js +2 -3
  460. package/ThemeProvider/index.d.ts +19 -2
  461. package/Typography/Base.d.ts +1 -1
  462. package/Typography/Base.js +1 -1
  463. package/Typography/Blockquote.js +1 -1
  464. package/Typography/Del.js +2 -2
  465. package/Typography/H4.js +1 -1
  466. package/Typography/H5.js +2 -2
  467. package/Typography/H6.d.ts +4 -0
  468. package/Typography/H6.js +28 -0
  469. package/Typography/SectionDescription.js +0 -1
  470. package/Typography/SectionTitle.d.ts +4 -7
  471. package/Typography/SectionTitle.js +26 -8
  472. package/Typography/index.d.ts +27 -0
  473. package/Typography/index.js +35 -0
  474. package/package.json +2 -4
  475. package/utils/spacing.d.ts +11 -0
  476. package/utils/spacing.js +14 -0
  477. package/Autocomplete/OverrideMenuList.d.ts +0 -4
  478. package/Autocomplete/OverrideMenuList.js +0 -39
  479. package/Autocomplete2/Autocomplete2.d.ts +0 -12
  480. package/Autocomplete2/Autocomplete2.js +0 -83
  481. package/Autocomplete2/Autocomplete2TextField.d.ts +0 -7
  482. package/Autocomplete2/index.d.ts +0 -2
  483. package/Autocomplete2/index.js +0 -7
  484. package/CountryFlags/SwiperOverview.d.ts +0 -257
  485. package/CountryFlags/SwiperOverview.js +0 -524
@@ -1,34 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
4
  };
25
5
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const React = __importStar(require("react"));
27
- const react_1 = require("@emotion/react");
28
- const UnknownFlag = (props, ref) => {
29
- const { color } = (0, react_1.useTheme)();
30
- return (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 512 512", ref: ref }, props),
31
- React.createElement("path", { transform: "translate(78.682 31.951)", d: "m-78.682-31.951h512v512h-512z", fill: color.surface.toString(), strokeLinejoin: "round", strokeWidth: "2.176" }),
32
- React.createElement("path", { transform: "translate(78.682 31.951)", d: "m177.32 288.09q-4.915 0-8.0953-3.1803-3.1803-3.4694-3.1803-8.3844 0-11.854 5.7824-25.153 5.7823-13.299 15.612-22.551l7.2279-6.6497q9.83-9.2518 15.323-15.323 5.4932-6.3606 8.9626-15.034 3.7585-8.9626 3.7585-20.527 0-11.276-5.4932-20.527-5.4932-9.5409-15.612-15.034-10.119-5.4932-23.129-5.4932-21.395 0-34.116 13.01-12.432 12.721-12.432 33.248 0 4.915-3.1803 8.0953-2.8912 2.8912-7.8062 2.8912t-8.0953-2.8912q-3.1803-3.1803-3.1803-8.0953 0-19.66 8.6735-34.983 8.6735-15.323 24.286-23.997 15.612-8.6735 35.851-8.6735 19.082 0 34.116 8.3844 15.323 8.0953 23.708 22.551 8.6735 14.456 8.6735 32.67 0 14.167-4.6259 24.864-4.6259 10.408-11.854 18.503-6.9388 8.0953-19.949 19.949l-5.2041 4.6259q-8.0953 7.2279-11.565 17.058-3.1803 9.5409-3.1803 19.082 0 4.915-3.1803 8.3844-3.1803 3.1803-8.0953 3.1803zm0 51.174q-7.2279 0-12.143-4.915-4.6259-4.915-4.6259-11.854 0-7.2279 4.915-12.143 4.915-4.915 11.854-4.915t11.854 4.915q5.2041 4.915 5.2041 12.143 0 6.9388-5.2041 11.854-4.915 4.915-11.854 4.915z", fill: color.textPrimary.toString(), strokeWidth: ".72279" })));
33
- };
34
- exports.default = React.forwardRef(UnknownFlag);
6
+ const Unknown_1 = __importDefault(require("../CountryFlags/Unknown"));
7
+ /**
8
+ * @deprecated Use `Unknown` from `@via-profit/ui-kit/CountryFlags/Unknown`
9
+ */
10
+ const UnknownFlag = Unknown_1.default;
11
+ exports.default = UnknownFlag;
@@ -29,71 +29,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
29
29
  };
30
30
  Object.defineProperty(exports, "__esModule", { value: true });
31
31
  const react_1 = __importDefault(require("react"));
32
- const TextField_1 = __importDefault(require("../TextField"));
32
+ const MaskedField_1 = __importDefault(require("../MaskedField"));
33
33
  const usePhoneUtils_1 = require("./usePhoneUtils");
34
34
  const CountryFlagComponent_1 = __importDefault(require("./CountryFlagComponent"));
35
35
  const PhoneField = (props, ref) => {
36
+ var _a, _b;
36
37
  const { value, templates, inputRef, withoutCountryFlag, onChange } = props, textFieldProps = __rest(props, ["value", "templates", "inputRef", "withoutCountryFlag", "onChange"]);
37
- const { formatParsedInput, parseInput, parseAndFormat } = (0, usePhoneUtils_1.usePhoneUtils)({ templates });
38
+ const { parseInput, parseAndFormat, getTemplateInfo } = (0, usePhoneUtils_1.usePhoneUtils)({ templates });
38
39
  const textInputRef = react_1.default.useRef(null);
39
- const initialValue = react_1.default.useRef(value);
40
- const [state, setState] = react_1.default.useState(() => {
41
- const { text, countryCode, placeholder, number, CountryFlag } = parseAndFormat(String(initialValue.current));
42
- return {
43
- currentValue: text,
44
- number,
45
- countryCode,
46
- placeholder,
47
- CountryFlag,
48
- };
49
- });
50
- const { countryCode, currentValue, placeholder, CountryFlag } = state;
40
+ // The current text of the field: the flag and the placeholder follow it
41
+ const [currentValue, setCurrentValue] = react_1.default.useState(() => parseAndFormat(String(value)).text);
42
+ const lastValue = react_1.default.useRef(value);
51
43
  react_1.default.useEffect(() => {
52
- if (initialValue.current !== value) {
53
- initialValue.current = value;
54
- const formatted = parseAndFormat(String(value));
55
- if (formatted.text !== currentValue) {
56
- setState(prev => (Object.assign(Object.assign({}, prev), { currentValue: formatted.text, countryCode: formatted.countryCode, placeholder: formatted.placeholder, CountryFlag: formatted.CountryFlag })));
57
- }
44
+ if (lastValue.current !== value) {
45
+ lastValue.current = value;
46
+ setCurrentValue(parseAndFormat(String(value)).text);
58
47
  }
59
- }, [countryCode, currentValue, parseAndFormat, placeholder, value]);
60
- const handleChange = event => {
48
+ }, [parseAndFormat, value]);
49
+ const { CountryFlag, placeholder } = react_1.default.useMemo(() => parseAndFormat(currentValue), [parseAndFormat, currentValue]);
50
+ // <MaskedField> gets the phone-specific parsing and the mask of the detected template
51
+ const parsePhone = react_1.default.useCallback((input, _mask, caret) => (0, usePhoneUtils_1.dropExtraPluses)(parseInput(input, caret)), [parseInput]);
52
+ const getMask = react_1.default.useCallback((input) => (0, usePhoneUtils_1.templateToMask)(getTemplateInfo(parsePhone(input, []).text).template), [getTemplateInfo, parsePhone]);
53
+ const handleChange = react_1.default.useCallback((payload, event) => {
61
54
  var _a;
62
- const parsed = parseInput(String(event.currentTarget.value), ((_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.selectionStart) || 0);
63
- const { caret, text, template, placeholder, countryCode, callingCode, CountryFlag, number, isValid, } = formatParsedInput(parsed.text, parsed.caret);
64
- onChange(Object.assign(Object.assign({}, event), { currentTarget: Object.assign(Object.assign({}, event.currentTarget), { value: text }) }), {
65
- value: text,
66
- placeholder,
67
- CountryFlag,
68
- template,
69
- countryCode,
70
- callingCode,
71
- number,
72
- isValid,
73
- combined: `${callingCode !== null && callingCode !== void 0 ? callingCode : ''}${number}`,
55
+ const formatted = parseAndFormat(payload.text);
56
+ setCurrentValue(payload.text);
57
+ onChange(event, {
58
+ value: payload.text,
59
+ placeholder: formatted.placeholder,
60
+ CountryFlag: formatted.CountryFlag,
61
+ template: formatted.template,
62
+ countryCode: formatted.countryCode,
63
+ callingCode: formatted.callingCode,
64
+ number: formatted.number,
65
+ isValid: formatted.isValid,
66
+ combined: `${(_a = formatted.callingCode) !== null && _a !== void 0 ? _a : ''}${formatted.number}`,
74
67
  });
75
- setState(prev => (Object.assign(Object.assign({}, prev), { currentValue: text, countryCode,
76
- placeholder,
77
- CountryFlag })));
78
- setTimeout(() => {
79
- var _a;
80
- (_a = textInputRef.current) === null || _a === void 0 ? void 0 : _a.setSelectionRange(caret, caret);
81
- }, 15);
82
- };
83
- return (react_1.default.createElement(TextField_1.default, Object.assign({ ref: ref, startIcon: react_1.default.useMemo(() => withoutCountryFlag ? undefined : (react_1.default.createElement(CountryFlagComponent_1.default, { flag: CountryFlag, onClick: () => {
84
- if (textInputRef.current) {
85
- textInputRef.current.select();
86
- textInputRef.current.focus();
87
- }
88
- } })), [CountryFlag, withoutCountryFlag]) }, textFieldProps, { value: currentValue, placeholder: placeholder, onChange: handleChange, inputRef: input => {
89
- textInputRef.current = input;
90
- if (typeof inputRef === 'function') {
91
- inputRef(input);
92
- }
93
- if (inputRef && typeof inputRef === 'object') {
94
- inputRef.current = input;
68
+ }, [onChange, parseAndFormat]);
69
+ const setInputRef = react_1.default.useCallback((input) => {
70
+ textInputRef.current = input;
71
+ if (typeof inputRef === 'function') {
72
+ inputRef(input);
73
+ }
74
+ if (inputRef && typeof inputRef === 'object') {
75
+ inputRef.current = input;
76
+ }
77
+ }, [inputRef]);
78
+ const startIcon = react_1.default.useMemo(() => withoutCountryFlag ? undefined : (react_1.default.createElement(CountryFlagComponent_1.default, { flag: CountryFlag, onClick: () => {
79
+ if (textInputRef.current) {
80
+ textInputRef.current.select();
81
+ textInputRef.current.focus();
95
82
  }
96
- } })));
83
+ } })), [CountryFlag, withoutCountryFlag]);
84
+ return (react_1.default.createElement(MaskedField_1.default, Object.assign({ ref: ref }, textFieldProps, {
85
+ // An explicit `startIcon={undefined}` (e.g. from <Autocomplete>) must not hide the flag
86
+ startIcon: (_a = textFieldProps.startIcon) !== null && _a !== void 0 ? _a : startIcon, value: value, mask: getMask, parseInput: parsePhone, placeholder: (_b = textFieldProps.placeholder) !== null && _b !== void 0 ? _b : placeholder, onChange: handleChange, inputRef: setInputRef })));
97
87
  };
98
88
  exports.default = react_1.default.forwardRef(PhoneField);
99
89
  __exportStar(require("./usePhoneUtils"), exports);
@@ -17,30 +17,29 @@ const CN_1 = __importDefault(require("../CountryFlags/CN"));
17
17
  exports.templates = [
18
18
  // Russian template
19
19
  ['RU', react_1.default.createElement(RU_1.default, { key: "ru-1" }), '7', '+x (xxx) xxx-xx-xx', '+7 (987) 654-32-10', /^\+$/], // must be at first (Default RU)
20
- ['RU', react_1.default.createElement(RU_1.default, { key: "ru-2" }), '7', '8 (xxx) xxx-xx-xx', '8 (987) 654-32-10', /^8[^1]{0,}/], // 8912...
20
+ // 81... is Japan without «+»: Russian area codes never start with 1
21
+ ['RU', react_1.default.createElement(RU_1.default, { key: "ru-2" }), '7', '8 (xxx) xxx-xx-xx', '8 (987) 654-32-10', /^8(?!1)/], // 8912...
21
22
  [
22
23
  'RU',
23
24
  react_1.default.createElement(RU_1.default, { key: "ru-3" }),
24
25
  '7',
25
26
  '+7 (xxx) xxx-xx-xx',
26
27
  '+7 (987) 654-32-10',
27
- /^\+{0,1}7([0-5]|[8-9])[0-9][0-9]/,
28
+ // Also matches a bare «+7» while typing, so the flag does not blink; 76 and 77 are Kazakhstan
29
+ /^\+{0,1}7(?![67])/,
28
30
  ], // +79...
29
31
  // Other fucking countries
30
32
  ['BY', react_1.default.createElement(BY_1.default, { key: "by" }), '375', '+375 (xx) xxx-xx-xx', '+375 (98) 765-43-21', /^\+{0,1}375/],
31
33
  ['CN', react_1.default.createElement(CN_1.default, { key: "cn" }), '86', '+86 (xxx) xxxx-xxxx', '+86 (138) 0013-8000', /^\+{0,1}86/],
32
- ['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-1" }), '7', '+997 (xx) xxx-xx-xx', '+997 (98) 765-43-21', /^\+{0,1}997/],
33
- [
34
- 'KZ',
35
- react_1.default.createElement(KZ_1.default, { key: "kz-2" }),
36
- '7',
37
- '+7 (xxx) xxx-xx-xx',
38
- '+7 (600) 765-43-21',
39
- /^\+{0,1}7[6-7][0-9][0-9]/,
40
- ], // +7600 - +7700
34
+ ['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-1" }), '997', '+997 (xx) xxx-xx-xx', '+997 (98) 765-43-21', /^\+{0,1}997/],
35
+ ['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-2" }), '7', '+7 (xxx) xxx-xx-xx', '+7 (600) 765-43-21', /^\+{0,1}7[67]/], // +76, +77
41
36
  ['UA', react_1.default.createElement(UA_1.default, { key: "ua" }), '380', '+380 (xx) xxx-xxxx', '+380 (98) 765-4321', /^\+{0,1}380/],
42
- ['JP', react_1.default.createElement(JP_1.default, { key: "jp" }), '81', '+81 (xx) xxx-xxxx', '+81 (98) 765-4321', /^\+{0,1}81/],
43
- ['US', react_1.default.createElement(US_1.default, { key: "us" }), '1', '+1 xxx xxx-xx-xx', '+1 987 654-32-10', /^\+{0,1}1/],
44
- ['IL', react_1.default.createElement(IL_1.default, { key: "il" }), '972', '+972 xx xxx-xx-xx', '+972 65 432-10-01', /^\+972/],
37
+ // Mobile numbers (070, 080, 090) have 10 digits, landlines have 9
38
+ ['JP', react_1.default.createElement(JP_1.default, { key: "jp-1" }), '81', '+81 (xx) xxxx-xxxx', '+81 (90) 1234-5678', /^\+{0,1}81[789]0/],
39
+ ['JP', react_1.default.createElement(JP_1.default, { key: "jp-2" }), '81', '+81 (xx) xxx-xxxx', '+81 (98) 765-4321', /^\+{0,1}81/],
40
+ ['US', react_1.default.createElement(US_1.default, { key: "us" }), '1', '+1 (xxx) xxx-xxxx', '+1 (987) 654-3210', /^\+{0,1}1/],
41
+ // Mobile (5x) and VoIP (7x) numbers have 9 digits, landlines have 8
42
+ ['IL', react_1.default.createElement(IL_1.default, { key: "il-1" }), '972', '+972 xx xxx-xx-xx', '+972 50 432-10-01', /^\+{0,1}972[57]/],
43
+ ['IL', react_1.default.createElement(IL_1.default, { key: "il-2" }), '972', '+972 x xxx-xxxx', '+972 3 432-1001', /^\+{0,1}972/],
45
44
  ];
46
45
  exports.default = exports.templates;
@@ -1,4 +1,5 @@
1
1
  import type { CountryCode, PhoneTemplate, CountryFlag } from './templates';
2
+ import { Mask } from '../MaskedField/useMasked';
2
3
  export interface Formatted {
3
4
  readonly text: string;
4
5
  readonly caret: number;
@@ -26,6 +27,20 @@ type Validate = (inputValue: string, template: string) => boolean;
26
27
  type Format = (text: string, caret: number, defaultCountry?: string | null) => Formatted;
27
28
  type ParseAndValidate = (inputValue: string) => boolean;
28
29
  type ParseAndFormat = (inputValue: string, caret?: number) => Formatted;
30
+ /**
31
+ * Converts a phone template to a mask: «x» is a digit, other chars are literals
32
+ */
33
+ export declare const templateToMask: (template: string) => Mask;
34
+ /**
35
+ * «+» is allowed only as the first char of a parsed phone, the other ones are dropped
36
+ */
37
+ export declare const dropExtraPluses: (parsed: {
38
+ readonly text: string;
39
+ readonly caret: number;
40
+ }) => {
41
+ text: string;
42
+ caret: number;
43
+ };
29
44
  export declare const usePhoneUtils: (params: {
30
45
  templates: readonly PhoneTemplate[];
31
46
  }) => {
@@ -3,15 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.usePhoneUtils = void 0;
6
+ exports.usePhoneUtils = exports.dropExtraPluses = exports.templateToMask = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
- const UnknownFlag_1 = __importDefault(require("./UnknownFlag"));
8
+ const Unknown_1 = __importDefault(require("../CountryFlags/Unknown"));
9
+ const useMasked_1 = require("../MaskedField/useMasked");
10
+ /**
11
+ * Converts a phone template to a mask: «x» is a digit, other chars are literals
12
+ */
13
+ const templateToMask = (template) => template.split('').map(char => (char === 'x' ? /\d/ : char));
14
+ exports.templateToMask = templateToMask;
15
+ /**
16
+ * «+» is allowed only as the first char of a parsed phone, the other ones are dropped
17
+ */
18
+ const dropExtraPluses = (parsed) => {
19
+ const { text, caret } = parsed;
20
+ const removedBeforeCaret = (text.slice(1, Math.max(caret, 1)).match(/\+/g) || []).length;
21
+ return {
22
+ text: text.charAt(0) + text.slice(1).replace(/\+/g, ''),
23
+ caret: caret - removedBeforeCaret,
24
+ };
25
+ };
26
+ exports.dropExtraPluses = dropExtraPluses;
9
27
  const usePhoneUtils = (params) => {
10
28
  const { templates } = params;
29
+ const masked = (0, useMasked_1.useMasked)();
11
30
  const templatesList = react_1.default.useMemo(() => templates.concat([
12
31
  [
13
32
  null,
14
- react_1.default.createElement(UnknownFlag_1.default, { key: "unknnown" }),
33
+ react_1.default.createElement(Unknown_1.default, { key: "unknnown" }),
15
34
  null,
16
35
  '+x xxx xxx-xx-xx',
17
36
  '+7 987 654-32-10',
@@ -61,44 +80,18 @@ const usePhoneUtils = (params) => {
61
80
  if (inputValue === '') {
62
81
  return data;
63
82
  }
64
- const { countryCode, callingCode, CountryFlag, template, placeholder } = getTemplateInfo(inputValue);
65
- const mask = template.split('').map(c => (c === 'x' ? /\d/ : c));
66
- let charIndex = 0;
67
- for (let patternIndex = 0; patternIndex < mask.length; patternIndex++) {
68
- if (charIndex >= inputValue.length) {
69
- break;
70
- }
71
- const char = inputValue[charIndex];
72
- const template = mask[patternIndex];
73
- // If put +, but not first
74
- if (charIndex !== 0 && char === '+') {
75
- break;
76
- }
77
- if (template instanceof RegExp && new RegExp(template).test(char)) {
78
- data.text = `${data.text}${char}`;
79
- charIndex += 1;
80
- }
81
- if (typeof template === 'string' && template === char) {
82
- data.text = `${data.text}${char}`;
83
- charIndex += 1;
84
- }
85
- if (typeof template === 'string' && template !== char) {
86
- data.text = `${data.text}${template}`;
87
- if (charIndex < caret) {
88
- data.caret += 1;
89
- }
90
- }
91
- }
92
- // const templateLength = template.replace(/[^x\d]/g, '').split('').length;
93
- // const valueLength = inputValue.replace(/[^\d]/g, '').split('').length;
94
- const number = data.text.replace(/[^0-9]/g, '').substring((callingCode === null || callingCode === void 0 ? void 0 : callingCode.length) || 0);
95
- return Object.assign(Object.assign({}, data), { countryCode,
83
+ // The mask engine is shared with <MaskedField>, only the template is phone-specific
84
+ const normalized = (0, exports.dropExtraPluses)({ text: inputValue, caret });
85
+ const { countryCode, callingCode, CountryFlag, template, placeholder } = getTemplateInfo(normalized.text);
86
+ const formatted = masked.formatParsedInput(normalized.text, (0, exports.templateToMask)(template), normalized.caret);
87
+ const number = formatted.text.replace(/[^0-9]/g, '').substring((callingCode === null || callingCode === void 0 ? void 0 : callingCode.length) || 0);
88
+ return Object.assign(Object.assign({}, data), { text: formatted.text, caret: formatted.caret, countryCode,
96
89
  callingCode,
97
90
  CountryFlag,
98
91
  template,
99
92
  placeholder,
100
- number, isValid: validateParsedInput(data.text, template) });
101
- }, [getTemplateInfo, templatesList, validateParsedInput]);
93
+ number, isValid: validateParsedInput(formatted.text, template) });
94
+ }, [getTemplateInfo, templatesList, validateParsedInput, masked]);
102
95
  /**
103
96
  * Parse phone string
104
97
  */
@@ -16,9 +16,9 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
16
16
  readonly isOpen: boolean;
17
17
  /**
18
18
  * The HTML element to which the popper will be attached and positioned relative to.
19
- * If `null` or undefined, the popper will not be positioned.
19
+ * While it is `null`, the popper stays hidden even if `isOpen` is `true`.
20
20
  *
21
- * @default undefined
21
+ * @required
22
22
  * @example
23
23
  * ```tsx
24
24
  * const [anchor, setAnchor] = useState<HTMLButtonElement | null>(null);
@@ -38,13 +38,33 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
38
38
  * ```
39
39
  */
40
40
  readonly anchorPos?: AnchorPos;
41
+ /**
42
+ * Placements to try right after `anchorPos` when `autoFlip` is enabled.
43
+ * For `auto` placements this is the full list of placements to try.
44
+ * For the other placements `auto` and `*-fill` values of this list are ignored.
45
+ *
46
+ * @default undefined
47
+ * @example
48
+ * ```tsx
49
+ * <Popper anchorPos="bottom-fill" autoFlip alternativePlacements={['top-fill']}>...</Popper>
50
+ * ```
51
+ */
41
52
  readonly alternativePlacements?: readonly AnchorPos[];
53
+ /**
54
+ * Called when the actual placement changes, e.g. after a flip caused by `autoFlip`
55
+ *
56
+ * @default undefined
57
+ * @example
58
+ * ```tsx
59
+ * <Popper autoFlip onAnchorPosChanged={placement => setArrowSide(placement)}>...</Popper>
60
+ * ```
61
+ */
42
62
  readonly onAnchorPosChanged?: (anchorPos: AnchorPos) => void;
43
63
  /**
44
64
  * The z-index value for the popper container.
45
65
  * Used to control the stacking order of the popper relative to other elements.
46
66
  *
47
- * @default theme.zIndex.modal
67
+ * @default theme.zIndex.modal for the `fixed` strategy, not set for `absolute`
48
68
  * @example
49
69
  * ```tsx
50
70
  * <Popper zIndex={9999}>...</Popper>
@@ -78,8 +98,9 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
78
98
  readonly offset?: number;
79
99
  /**
80
100
  * The positioning strategy to use.
81
- * - `'fixed'`: Positions relative to the viewport. Works reliably in all cases.
82
- * - `'absolute'`: Positions relative to the nearest positioned ancestor.
101
+ * - `'fixed'`: Renders into a portal and positions relative to the viewport.
102
+ * The popper is kept inside the viewport and is not clipped by `overflow: hidden` parents.
103
+ * - `'absolute'`: Renders in place and positions relative to the nearest positioned ancestor.
83
104
  * When using 'absolute', make sure a parent element has `position: relative`.
84
105
  *
85
106
  * @default 'fixed'
@@ -92,13 +113,12 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
92
113
  readonly positionStrategy?: PositionStrategy;
93
114
  /**
94
115
  * Minimum distance (in pixels) that the popper must maintain from the viewport edges.
95
- * Used to prevent the popper from being positioned too close to the screen boundaries.
96
- * The popper will try to flip to another placement if it cannot maintain this margin.
116
+ * With `autoFlip` a placement that breaks this margin is skipped.
117
+ * With the `fixed` strategy the popper is also shifted to keep this margin.
97
118
  *
98
119
  * @default 30
99
120
  * @example
100
121
  * ```tsx
101
- * // Larger margin for better visibility
102
122
  * <Popper viewportMargin={16}>...</Popper>
103
123
  *
104
124
  * // No margin (allow touching edges)
@@ -2,9 +2,8 @@ import React from 'react';
2
2
  import { PositionStrategy } from './PopperContainer';
3
3
  /**
4
4
  * Base directions for popper positioning.
5
- * These are the primary axes around which the popper can be placed.
5
+ * The popper is centered along the chosen side of the anchor.
6
6
  *
7
- * @default 'bottom' (when used as anchorPos)
8
7
  * @example
9
8
  * ```tsx
10
9
  * type Direction = 'top' | 'bottom' | 'left' | 'right';
@@ -12,38 +11,31 @@ import { PositionStrategy } from './PopperContainer';
12
11
  */
13
12
  export type Direction = 'top' | 'left' | 'right' | 'bottom';
14
13
  /**
15
- * Auto placement modifiers that enable intelligent positioning.
16
- * The popper will automatically choose the best placement that fits in the viewport.
17
- * - `auto`: Dynamically selects the optimal direction
18
- * - `auto-top`, `auto-bottom`, `auto-left`, `auto-right`: Auto placement with priority given to the specified direction
14
+ * Auto placements. With `autoFlip` the popper picks the first placement that fits in the viewport.
15
+ * - `auto`: Tries all placements starting with the bottom ones
16
+ * - `auto-top`, `auto-bottom`, `auto-left`, `auto-right`: Tries all placements starting with the specified side
17
+ *
18
+ * Without `autoFlip` `auto` works as `bottom`, `auto-top` as `top` and so on.
19
19
  *
20
20
  * @example
21
21
  * ```tsx
22
22
  * // Will try to place on top first, but will flip if needed
23
- * <Popper anchorPos="auto-top">...</Popper>
24
- *
25
- * // Will try all directions equally
26
- * <Popper anchorPos="auto">...</Popper>
23
+ * <Popper anchorPos="auto-top" autoFlip>...</Popper>
27
24
  * ```
28
25
  */
29
26
  export type AutoModifier = 'auto' | 'auto-top' | 'auto-bottom' | 'auto-left' | 'auto-right';
30
27
  /**
31
- * Precise placement modifiers for fine-tuned positioning.
32
- * These combine a base direction with specific alignment options:
33
- * - `start`/`end`: Aligns to the beginning or end of the anchor (useful for RTL layouts)
34
- * - `left`/`right`: Horizontal alignment for vertical placements
35
- * - `top`/`bottom`: Vertical alignment for horizontal placements
28
+ * Placements that combine a side with an alignment along it:
29
+ * - `start`/`end`: Aligns to the left/right edge of the anchor (text direction is not taken into account)
30
+ * - `left`/`right`: Same as `start`/`end`
31
+ * - `top`/`bottom`: Vertical alignment for the left and right sides
32
+ * - `fill`: Stretches the popper to the anchor width
36
33
  *
37
34
  * @example
38
35
  * ```tsx
39
- * // Corner placements
40
- * <Popper anchorPos="top-left">Aligns to top-left corner</Popper>
41
- *
42
- * // Logical placements (RTL-friendly)
43
- * <Popper anchorPos="bottom-start">Aligns to bottom edge, start side</Popper>
44
- *
45
- * // Side alignments
46
- * <Popper anchorPos="left-top">Aligns to left side, top edge</Popper>
36
+ * <Popper anchorPos="bottom-start">Below the anchor, aligned to its left edge</Popper>
37
+ * <Popper anchorPos="left-top">Left of the anchor, aligned to its top edge</Popper>
38
+ * <Popper anchorPos="bottom-fill">Below the anchor, as wide as the anchor</Popper>
47
39
  * ```
48
40
  */
49
41
  export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bottom-end' | 'bottom-start' | 'bottom-right' | 'bottom-left' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | 'bottom-fill' | 'top-fill';
@@ -54,12 +46,13 @@ export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bot
54
46
  *
55
47
  * Categories:
56
48
  * - **Basic directions**: `top`, `bottom`, `left`, `right` - Centered placement
57
- * - **Corner placements**: `top-left`, `top-right`, `bottom-left`, `bottom-right` - Aligned to corners
58
- * - **Logical placements**: `top-start`, `top-end`, `bottom-start`, `bottom-end` - RTL-aware alignment
49
+ * - **Edge placements**: `top-start`, `top-end`, `bottom-start`, `bottom-end`
50
+ * and their aliases `top-left`, `top-right`, `bottom-left`, `bottom-right`
59
51
  * - **Side alignments**: `left-top`, `left-bottom`, `right-top`, `right-bottom` - Edge-aligned
60
- * - **Auto placements**: `auto`, `auto-top`, `auto-bottom`, `auto-left`, `auto-right` - Intelligent positioning
52
+ * - **Fill placements**: `top-fill`, `bottom-fill` - As wide as the anchor
53
+ * - **Auto placements**: `auto`, `auto-top`, `auto-bottom`, `auto-left`, `auto-right` - Picked by `autoFlip`
61
54
  *
62
- * @default 'bottom'
55
+ * @default 'auto'
63
56
  * @example
64
57
  * ```tsx
65
58
  * // Basic centered placement
@@ -69,10 +62,7 @@ export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bot
69
62
  * <Popper anchorPos="top-right">Attached to top-right corner</Popper>
70
63
  *
71
64
  * // Auto placement with priority
72
- * <Popper anchorPos="auto-left">Try left first, then find best fit</Popper>
73
- *
74
- * // RTL-aware placement
75
- * <Popper anchorPos="top-start">Respects text direction</Popper>
65
+ * <Popper anchorPos="auto-left" autoFlip>Try left first, then find best fit</Popper>
76
66
  * ```
77
67
  */
78
68
  export type AnchorPos = Direction | Modifier | AutoModifier;
package/README.md CHANGED
@@ -1,17 +1,34 @@
1
- ## Установка.
1
+ # @via-profit/ui-kit
2
2
 
3
- Для работы требуются следующие модули:
4
-
5
- - react
6
- - react-dom
7
- - @emotion/styled - CSS In JS
8
- - @emotion/react - CSS In JS React
9
- - react-popper - Выпадающие меню
3
+ Набор React-компонентов для интерфейсов: поля ввода, кнопки, календарь, меню, модальные окна и другие. Компоненты оформлены по теме, которую вы задаёте один раз для всего приложения.
10
4
 
5
+ ## Установка
11
6
 
12
7
  ```bash
13
- $ npm install @emotion/react @emotion/styled react react-dom react-popper
8
+ npm install @via-profit/ui-kit @emotion/react @emotion/styled react react-dom
9
+ ```
10
+
11
+ Пакету нужны `react` и `react-dom` версии 18.2 и новее, `@emotion/react` и `@emotion/styled` версии 11.10.6 и новее.
12
+
13
+ ## Быстрый старт
14
14
 
15
+ ```tsx
16
+ import React from 'react';
17
+ import { createRoot } from 'react-dom/client';
18
+ import ThemeProvider, { createTheme } from '@via-profit/ui-kit/ThemeProvider';
19
+ import Button from '@via-profit/ui-kit/Button';
20
+
21
+ const theme = createTheme();
22
+
23
+ createRoot(document.getElementById('app')!).render(
24
+ <ThemeProvider theme={theme}>
25
+ <Button color="primary">Привет</Button>
26
+ </ThemeProvider>,
27
+ );
15
28
  ```
16
29
 
17
- ## Документация [здесь](./docs/README.md)
30
+ ## Документация
31
+
32
+ [Документация](https://github.com/via-profit/ui-kit/blob/master/packages/ui-kit/docs/README.md) — установка, тема оформления, общие принципы и описание всех компонентов.
33
+
34
+ [Список изменений](./CHANGELOG.md)
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export type RadioBoxProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> & {
3
+ /**
4
+ * Paints the border with the error color
5
+ */
6
+ readonly error?: boolean;
7
+ };
8
+ declare const _default: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> & {
9
+ /**
10
+ * Paints the border with the error color
11
+ */
12
+ readonly error?: boolean | undefined;
13
+ } & React.RefAttributes<HTMLInputElement>>;
14
+ export default _default;