@via-profit/ui-kit 0.2.6 → 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 (498) 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 +125 -57
  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 +10 -7
  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 +160 -0
  50. package/Calendar/CalendarCell.js +11 -4
  51. package/Calendar/CalendarComponent.d.ts +15 -4
  52. package/Calendar/CalendarComponent.js +201 -103
  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 +4 -3
  61. package/Calendar/use-calendar.js +31 -24
  62. package/Checkbox/CheckboxAsterisk.d.ts +13 -0
  63. package/{Autocomplete2/Autocomplete2TextField.js → Checkbox/CheckboxAsterisk.js} +24 -10
  64. package/Checkbox/CheckboxBox.d.ts +22 -0
  65. package/Checkbox/CheckboxBox.js +88 -0
  66. package/Checkbox/CheckboxContainer.d.ts +27 -0
  67. package/Checkbox/CheckboxContainer.js +38 -0
  68. package/Checkbox/CheckboxErrorText.d.ts +6 -0
  69. package/Checkbox/CheckboxErrorText.js +76 -0
  70. package/Checkbox/CheckboxIcon.d.ts +10 -0
  71. package/Checkbox/CheckboxIcon.js +57 -0
  72. package/Checkbox/CheckboxTextWrapper.d.ts +4 -0
  73. package/Checkbox/CheckboxTextWrapper.js +29 -0
  74. package/Checkbox/CheckboxWrapper.d.ts +4 -0
  75. package/Checkbox/CheckboxWrapper.js +29 -0
  76. package/Checkbox/index.d.ts +144 -0
  77. package/Checkbox/index.js +71 -0
  78. package/Checkbox/useCheckboxColor.d.ts +6 -0
  79. package/Checkbox/useCheckboxColor.js +33 -0
  80. package/ClickOutside/index.d.ts +6 -0
  81. package/ClickOutside/index.js +19 -3
  82. package/Color/Color.d.ts +4 -4
  83. package/Color/Color.js +9 -5
  84. package/Color/ColorGenerator.d.ts +5 -1
  85. package/Color/ColorParser.d.ts +9 -0
  86. package/Color/ColorParser.js +52 -12
  87. package/CountryFlags/AC.js +5 -1
  88. package/CountryFlags/AD.js +5 -1
  89. package/CountryFlags/AE.js +5 -1
  90. package/CountryFlags/AF.js +5 -1
  91. package/CountryFlags/AG.js +5 -1
  92. package/CountryFlags/AI.js +5 -1
  93. package/CountryFlags/AL.js +5 -1
  94. package/CountryFlags/AM.js +5 -1
  95. package/CountryFlags/AO.js +5 -1
  96. package/CountryFlags/AQ.js +5 -1
  97. package/CountryFlags/AR.js +5 -1
  98. package/CountryFlags/AS.js +5 -1
  99. package/CountryFlags/AT.js +5 -1
  100. package/CountryFlags/AU.js +5 -1
  101. package/CountryFlags/AW.js +5 -1
  102. package/CountryFlags/AX.js +5 -1
  103. package/CountryFlags/AZ.js +5 -1
  104. package/CountryFlags/BA.js +5 -1
  105. package/CountryFlags/BB.js +5 -1
  106. package/CountryFlags/BD.js +5 -1
  107. package/CountryFlags/BE.js +5 -1
  108. package/CountryFlags/BF.js +5 -1
  109. package/CountryFlags/BG.js +5 -1
  110. package/CountryFlags/BH.js +5 -1
  111. package/CountryFlags/BI.js +5 -1
  112. package/CountryFlags/BJ.js +5 -1
  113. package/CountryFlags/BL.js +5 -1
  114. package/CountryFlags/BM.js +5 -1
  115. package/CountryFlags/BN.js +5 -1
  116. package/CountryFlags/BO.js +5 -1
  117. package/CountryFlags/BQ.js +5 -1
  118. package/CountryFlags/BR.js +5 -1
  119. package/CountryFlags/BS.js +5 -1
  120. package/CountryFlags/BT.js +5 -1
  121. package/CountryFlags/BV.js +5 -1
  122. package/CountryFlags/BW.js +5 -1
  123. package/CountryFlags/BY.js +5 -1
  124. package/CountryFlags/BZ.js +5 -1
  125. package/CountryFlags/CA.js +5 -1
  126. package/CountryFlags/CC.js +5 -1
  127. package/CountryFlags/CD.js +5 -1
  128. package/CountryFlags/CF.js +5 -1
  129. package/CountryFlags/CG.js +5 -1
  130. package/CountryFlags/CH.js +5 -1
  131. package/CountryFlags/CI.js +5 -1
  132. package/CountryFlags/CK.js +5 -1
  133. package/CountryFlags/CL.js +5 -1
  134. package/CountryFlags/CM.js +5 -1
  135. package/CountryFlags/CN.js +5 -1
  136. package/CountryFlags/CO.js +5 -1
  137. package/CountryFlags/CR.js +5 -1
  138. package/CountryFlags/CU.js +5 -1
  139. package/CountryFlags/CV.js +5 -1
  140. package/CountryFlags/CW.js +5 -1
  141. package/CountryFlags/CX.js +5 -1
  142. package/CountryFlags/CY.js +5 -1
  143. package/CountryFlags/CZ.js +5 -1
  144. package/CountryFlags/DE.js +5 -1
  145. package/CountryFlags/DJ.js +5 -1
  146. package/CountryFlags/DK.js +5 -1
  147. package/CountryFlags/DM.js +5 -1
  148. package/CountryFlags/DO.js +5 -1
  149. package/CountryFlags/DZ.js +5 -1
  150. package/CountryFlags/EC.js +5 -1
  151. package/CountryFlags/EE.js +5 -1
  152. package/CountryFlags/EG.js +5 -1
  153. package/CountryFlags/EH.js +5 -1
  154. package/CountryFlags/ER.js +5 -1
  155. package/CountryFlags/ES.js +5 -1
  156. package/CountryFlags/ET.js +5 -1
  157. package/CountryFlags/EU.js +5 -1
  158. package/CountryFlags/FI.js +5 -1
  159. package/CountryFlags/FJ.js +5 -1
  160. package/CountryFlags/FK.js +5 -1
  161. package/CountryFlags/FM.js +5 -1
  162. package/CountryFlags/FO.js +5 -1
  163. package/CountryFlags/FR.js +5 -1
  164. package/CountryFlags/GA.js +5 -1
  165. package/CountryFlags/GB.js +5 -1
  166. package/CountryFlags/GD.js +5 -1
  167. package/CountryFlags/GE.js +5 -1
  168. package/CountryFlags/GEAB.js +5 -1
  169. package/CountryFlags/GEOS.js +5 -1
  170. package/CountryFlags/GF.js +5 -1
  171. package/CountryFlags/GG.js +5 -1
  172. package/CountryFlags/GH.js +5 -1
  173. package/CountryFlags/GI.js +5 -1
  174. package/CountryFlags/GL.js +5 -1
  175. package/CountryFlags/GM.js +5 -1
  176. package/CountryFlags/GN.js +5 -1
  177. package/CountryFlags/GP.js +5 -1
  178. package/CountryFlags/GQ.js +5 -1
  179. package/CountryFlags/GR.js +5 -1
  180. package/CountryFlags/GS.js +5 -1
  181. package/CountryFlags/GT.js +5 -1
  182. package/CountryFlags/GU.js +5 -1
  183. package/CountryFlags/GW.js +5 -1
  184. package/CountryFlags/GY.js +5 -1
  185. package/CountryFlags/HK.js +5 -1
  186. package/CountryFlags/HM.js +5 -1
  187. package/CountryFlags/HN.js +5 -1
  188. package/CountryFlags/HR.js +5 -1
  189. package/CountryFlags/HT.js +5 -1
  190. package/CountryFlags/HU.js +5 -1
  191. package/CountryFlags/IC.js +5 -1
  192. package/CountryFlags/ID.js +5 -1
  193. package/CountryFlags/IE.js +5 -1
  194. package/CountryFlags/IL.js +5 -1
  195. package/CountryFlags/IM.js +5 -1
  196. package/CountryFlags/IN.js +5 -1
  197. package/CountryFlags/IO.js +5 -1
  198. package/CountryFlags/IQ.js +5 -1
  199. package/CountryFlags/IR.js +5 -1
  200. package/CountryFlags/IS.js +5 -1
  201. package/CountryFlags/IT.js +5 -1
  202. package/CountryFlags/JE.js +5 -1
  203. package/CountryFlags/JM.js +5 -1
  204. package/CountryFlags/JO.js +5 -1
  205. package/CountryFlags/JP.js +5 -1
  206. package/CountryFlags/KE.js +5 -1
  207. package/CountryFlags/KG.js +5 -1
  208. package/CountryFlags/KH.js +5 -1
  209. package/CountryFlags/KI.js +5 -1
  210. package/CountryFlags/KM.js +5 -1
  211. package/CountryFlags/KN.js +5 -1
  212. package/CountryFlags/KP.js +5 -1
  213. package/CountryFlags/KR.js +5 -1
  214. package/CountryFlags/KW.js +5 -1
  215. package/CountryFlags/KY.js +5 -1
  216. package/CountryFlags/KZ.js +5 -1
  217. package/CountryFlags/LA.js +5 -1
  218. package/CountryFlags/LB.js +5 -1
  219. package/CountryFlags/LC.js +5 -1
  220. package/CountryFlags/LI.js +5 -1
  221. package/CountryFlags/LK.js +5 -1
  222. package/CountryFlags/LR.js +5 -1
  223. package/CountryFlags/LS.js +5 -1
  224. package/CountryFlags/LT.js +5 -1
  225. package/CountryFlags/LU.js +5 -1
  226. package/CountryFlags/LV.js +5 -1
  227. package/CountryFlags/LY.js +5 -1
  228. package/CountryFlags/MA.js +5 -1
  229. package/CountryFlags/MC.js +5 -1
  230. package/CountryFlags/MD.js +5 -1
  231. package/CountryFlags/ME.js +5 -1
  232. package/CountryFlags/MF.js +5 -1
  233. package/CountryFlags/MG.js +5 -1
  234. package/CountryFlags/MH.js +5 -1
  235. package/CountryFlags/MK.js +5 -1
  236. package/CountryFlags/ML.js +5 -1
  237. package/CountryFlags/MM.js +5 -1
  238. package/CountryFlags/MN.js +5 -1
  239. package/CountryFlags/MO.js +5 -1
  240. package/CountryFlags/MP.js +5 -1
  241. package/CountryFlags/MQ.js +5 -1
  242. package/CountryFlags/MR.js +5 -1
  243. package/CountryFlags/MS.js +5 -1
  244. package/CountryFlags/MT.js +5 -1
  245. package/CountryFlags/MU.js +5 -1
  246. package/CountryFlags/MV.js +5 -1
  247. package/CountryFlags/MW.js +5 -1
  248. package/CountryFlags/MX.js +5 -1
  249. package/CountryFlags/MY.js +5 -1
  250. package/CountryFlags/MZ.js +5 -1
  251. package/CountryFlags/NA.js +5 -1
  252. package/CountryFlags/NC.js +5 -1
  253. package/CountryFlags/NE.js +5 -1
  254. package/CountryFlags/NF.js +5 -1
  255. package/CountryFlags/NG.js +5 -1
  256. package/CountryFlags/NI.js +5 -1
  257. package/CountryFlags/NL.js +5 -1
  258. package/CountryFlags/NO.js +5 -1
  259. package/CountryFlags/NP.js +5 -1
  260. package/CountryFlags/NR.js +5 -1
  261. package/CountryFlags/NU.js +5 -1
  262. package/CountryFlags/NZ.js +5 -1
  263. package/CountryFlags/OM.js +5 -1
  264. package/CountryFlags/PA.js +5 -1
  265. package/CountryFlags/PE.js +5 -1
  266. package/CountryFlags/PF.js +5 -1
  267. package/CountryFlags/PG.js +5 -1
  268. package/CountryFlags/PH.js +5 -1
  269. package/CountryFlags/PK.js +5 -1
  270. package/CountryFlags/PL.js +5 -1
  271. package/CountryFlags/PM.js +5 -1
  272. package/CountryFlags/PN.js +5 -1
  273. package/CountryFlags/PR.js +5 -1
  274. package/CountryFlags/PS.js +5 -1
  275. package/CountryFlags/PT.js +5 -1
  276. package/CountryFlags/PW.js +5 -1
  277. package/CountryFlags/PY.js +5 -1
  278. package/CountryFlags/QA.js +5 -1
  279. package/CountryFlags/RE.js +5 -1
  280. package/CountryFlags/RO.js +5 -1
  281. package/CountryFlags/RS.js +5 -1
  282. package/CountryFlags/RU.js +5 -1
  283. package/CountryFlags/RW.js +5 -1
  284. package/CountryFlags/SA.js +5 -1
  285. package/CountryFlags/SB.js +5 -1
  286. package/CountryFlags/SC.js +5 -1
  287. package/CountryFlags/SD.js +5 -1
  288. package/CountryFlags/SE.js +5 -1
  289. package/CountryFlags/SG.js +5 -1
  290. package/CountryFlags/SH.js +5 -1
  291. package/CountryFlags/SI.js +5 -1
  292. package/CountryFlags/SJ.js +5 -1
  293. package/CountryFlags/SK.js +5 -1
  294. package/CountryFlags/SL.js +5 -1
  295. package/CountryFlags/SM.js +5 -1
  296. package/CountryFlags/SN.js +5 -1
  297. package/CountryFlags/SO.js +5 -1
  298. package/CountryFlags/SR.js +5 -1
  299. package/CountryFlags/SS.js +5 -1
  300. package/CountryFlags/ST.js +5 -1
  301. package/CountryFlags/SV.js +5 -1
  302. package/CountryFlags/SX.js +5 -1
  303. package/CountryFlags/SY.js +5 -1
  304. package/CountryFlags/SZ.js +5 -1
  305. package/CountryFlags/TA.js +5 -1
  306. package/CountryFlags/TC.js +5 -1
  307. package/CountryFlags/TD.js +5 -1
  308. package/CountryFlags/TF.js +5 -1
  309. package/CountryFlags/TG.js +5 -1
  310. package/CountryFlags/TH.js +5 -1
  311. package/CountryFlags/TJ.js +5 -1
  312. package/CountryFlags/TK.js +5 -1
  313. package/CountryFlags/TL.js +5 -1
  314. package/CountryFlags/TM.js +5 -1
  315. package/CountryFlags/TN.js +5 -1
  316. package/CountryFlags/TO.js +5 -1
  317. package/CountryFlags/TR.js +5 -1
  318. package/CountryFlags/TT.js +5 -1
  319. package/CountryFlags/TV.js +5 -1
  320. package/CountryFlags/TW.js +5 -1
  321. package/CountryFlags/TZ.js +5 -1
  322. package/CountryFlags/UA.js +5 -1
  323. package/CountryFlags/UG.js +5 -1
  324. package/CountryFlags/UM.js +5 -1
  325. package/CountryFlags/US.js +5 -1
  326. package/CountryFlags/UY.js +5 -1
  327. package/CountryFlags/UZ.js +5 -1
  328. package/CountryFlags/Uknown.d.ts +7 -3
  329. package/CountryFlags/Uknown.js +9 -31
  330. package/CountryFlags/Unknown.d.ts +3 -0
  331. package/CountryFlags/Unknown.js +42 -0
  332. package/CountryFlags/VA.js +5 -1
  333. package/CountryFlags/VC.js +5 -1
  334. package/CountryFlags/VE.js +5 -1
  335. package/CountryFlags/VG.js +5 -1
  336. package/CountryFlags/VI.js +5 -1
  337. package/CountryFlags/VN.js +5 -1
  338. package/CountryFlags/VU.js +5 -1
  339. package/CountryFlags/WF.js +5 -1
  340. package/CountryFlags/WS.js +5 -1
  341. package/CountryFlags/XK.js +5 -1
  342. package/CountryFlags/YE.js +5 -1
  343. package/CountryFlags/YT.js +5 -1
  344. package/CountryFlags/ZA.js +5 -1
  345. package/CountryFlags/ZM.js +5 -1
  346. package/CountryFlags/ZW.js +5 -1
  347. package/CountryFlags/index.d.ts +2 -1
  348. package/CountryFlags/index.js +3 -1
  349. package/CountryFlags/isLabelled.d.ts +6 -0
  350. package/CountryFlags/isLabelled.js +7 -0
  351. package/DatePicker/index.d.ts +23 -6
  352. package/DatePicker/index.js +84 -23
  353. package/DatePicker/useDatePickerFormat.js +20 -3
  354. package/Grid/index.d.ts +60 -0
  355. package/Grid/index.js +43 -0
  356. package/Highlighted/index.d.ts +1 -1
  357. package/Highlighted/index.js +14 -10
  358. package/LoadingIndicator/LoadingOverlay.d.ts +11 -0
  359. package/LoadingIndicator/LoadingOverlay.js +63 -0
  360. package/LoadingIndicator/Spinner.d.ts +34 -5
  361. package/LoadingIndicator/Spinner.js +48 -37
  362. package/LoadingIndicator/SpinnerCircle.d.ts +14 -0
  363. package/LoadingIndicator/SpinnerCircle.js +34 -0
  364. package/LoadingIndicator/index.d.ts +8 -3
  365. package/LoadingIndicator/index.js +9 -15
  366. package/MaskedField/index.d.ts +3 -2
  367. package/MaskedField/index.js +7 -2
  368. package/MaskedField/templates.js +2 -0
  369. package/MaskedField/useMasked.js +26 -12
  370. package/Menu/MenuContainer.d.ts +11 -3
  371. package/Menu/MenuContainer.js +127 -65
  372. package/Menu/MenuItem.js +1 -1
  373. package/Menu/VirtualizedList.js +1 -3
  374. package/Menu/context.js +5 -0
  375. package/Modal/BaseModal/ModalWrapper.js +65 -38
  376. package/Modal/BaseModal/context.js +6 -0
  377. package/Modal/BaseModal/index.js +0 -8
  378. package/Modal/BaseModal/useDialogID.d.ts +6 -0
  379. package/Modal/BaseModal/useDialogID.js +12 -0
  380. package/Modal/ConfirmBox/ConfirmBoxContainer.js +5 -1
  381. package/Modal/ConfirmBox/index.js +2 -1
  382. package/Modal/Dialog/DialogInner.js +1 -1
  383. package/Modal/Dialog/index.js +12 -7
  384. package/Modal/Drawer/DrawerHeader.d.ts +20 -0
  385. package/Modal/Drawer/DrawerHeader.js +3 -3
  386. package/Modal/Drawer/DrawerInner.js +9 -1
  387. package/Modal/Drawer/index.d.ts +7 -0
  388. package/Modal/Drawer/index.js +12 -10
  389. package/Modal/MessageBox/MessageBoxContainer.js +1 -1
  390. package/Modal/MessageBox/index.js +2 -1
  391. package/PhoneField/CountryFlagComponent.js +2 -2
  392. package/PhoneField/UnknownFlag.d.ts +6 -3
  393. package/PhoneField/UnknownFlag.js +8 -31
  394. package/PhoneField/index.js +45 -55
  395. package/PhoneField/templates.js +13 -14
  396. package/PhoneField/usePhoneUtils.d.ts +15 -0
  397. package/PhoneField/usePhoneUtils.js +30 -37
  398. package/Popper/Popper.d.ts +30 -10
  399. package/Popper/Popper.js +9 -7
  400. package/Popper/usePopper.d.ts +21 -31
  401. package/Popper/usePopper.js +79 -46
  402. package/README.md +27 -10
  403. package/Radio/RadioBox.d.ts +14 -0
  404. package/Radio/RadioBox.js +100 -0
  405. package/Radio/RadioContainer.d.ts +27 -0
  406. package/Radio/RadioContainer.js +38 -0
  407. package/Radio/RadioTextWrapper.d.ts +4 -0
  408. package/Radio/RadioTextWrapper.js +29 -0
  409. package/Radio/index.d.ts +64 -0
  410. package/Radio/index.js +49 -0
  411. package/Radio/useRadioColor.d.ts +6 -0
  412. package/Radio/useRadioColor.js +33 -0
  413. package/RadioGroup/RadioGroupAsterisk.d.ts +13 -0
  414. package/RadioGroup/RadioGroupAsterisk.js +53 -0
  415. package/RadioGroup/RadioGroupContainer.d.ts +4 -0
  416. package/RadioGroup/RadioGroupContainer.js +36 -0
  417. package/RadioGroup/RadioGroupContext.d.ts +20 -0
  418. package/RadioGroup/RadioGroupContext.js +11 -0
  419. package/RadioGroup/RadioGroupErrorText.d.ts +6 -0
  420. package/RadioGroup/RadioGroupErrorText.js +76 -0
  421. package/RadioGroup/RadioGroupItems.d.ts +9 -0
  422. package/RadioGroup/RadioGroupItems.js +30 -0
  423. package/RadioGroup/RadioGroupLegend.d.ts +4 -0
  424. package/RadioGroup/RadioGroupLegend.js +37 -0
  425. package/RadioGroup/index.d.ts +134 -0
  426. package/RadioGroup/index.js +62 -0
  427. package/Selectbox/SelectboxMenu.d.ts +1 -1
  428. package/Selectbox/index.d.ts +18 -2
  429. package/Selectbox/index.js +32 -32
  430. package/Stack/index.d.ts +62 -0
  431. package/Stack/index.js +38 -0
  432. package/Surface/SurfaceContainer.js +6 -0
  433. package/Surface/index.js +7 -3
  434. package/Swiper/Swiper.d.ts +28 -2
  435. package/Swiper/Swiper.js +246 -91
  436. package/Swiper/SwiperContainer.js +0 -2
  437. package/Swiper/SwiperSlidesRenderer.d.ts +8 -0
  438. package/Swiper/SwiperSlidesRenderer.js +17 -14
  439. package/Swiper/SwiperTrack.d.ts +8 -0
  440. package/Swiper/SwiperTrack.js +8 -3
  441. package/Swiper/SwiperWrapper.js +9 -1
  442. package/Switch/SwitchContainer.d.ts +1 -1
  443. package/Switch/SwitchContainer.js +5 -5
  444. package/Switch/SwitchDot.js +13 -53
  445. package/Switch/SwitchToggleWrapper.d.ts +1 -1
  446. package/Switch/SwitchToggleWrapper.js +5 -6
  447. package/Switch/SwitchTrack.js +5 -41
  448. package/Switch/index.d.ts +4 -4
  449. package/Switch/index.js +21 -11
  450. package/Switch/useSwitchColor.d.ts +7 -0
  451. package/Switch/useSwitchColor.js +33 -0
  452. package/Table/Table.d.ts +6 -0
  453. package/Table/Table.js +7 -62
  454. package/Table/TableBody.d.ts +1 -1
  455. package/Table/TableBody.js +4 -2
  456. package/Table/TableCaption.d.ts +2 -2
  457. package/Table/TableCaption.js +2 -3
  458. package/Table/TableCell.js +2 -5
  459. package/Table/TableFooter.js +8 -7
  460. package/Table/TableHeader.js +6 -2
  461. package/Table/TableHeaderCell.js +8 -9
  462. package/Table/TableRow.js +1 -5
  463. package/TextArea/TextAreaIconWrapper.d.ts +1 -1
  464. package/TextArea/TextAreaInput.js +2 -0
  465. package/TextArea/index.js +7 -15
  466. package/TextField/TextFieldInput.js +2 -0
  467. package/TextField/TextFieldInputWrapper.d.ts +2 -0
  468. package/TextField/TextFieldInputWrapper.js +12 -2
  469. package/TextField/index.js +7 -19
  470. package/ThemeProvider/createTheme.js +2 -3
  471. package/ThemeProvider/index.d.ts +19 -2
  472. package/Typography/Base.d.ts +1 -1
  473. package/Typography/Base.js +1 -1
  474. package/Typography/Blockquote.js +1 -1
  475. package/Typography/Del.js +2 -2
  476. package/Typography/H4.js +1 -1
  477. package/Typography/H5.js +2 -2
  478. package/Typography/H6.d.ts +4 -0
  479. package/Typography/H6.js +28 -0
  480. package/Typography/SectionDescription.js +0 -1
  481. package/Typography/SectionTitle.d.ts +4 -7
  482. package/Typography/SectionTitle.js +26 -8
  483. package/Typography/index.d.ts +27 -0
  484. package/Typography/index.js +35 -0
  485. package/package.json +2 -4
  486. package/utils/TabManager.d.ts +7 -1
  487. package/utils/TabManager.js +39 -45
  488. package/utils/spacing.d.ts +11 -0
  489. package/utils/spacing.js +14 -0
  490. package/Autocomplete/OverrideMenuList.d.ts +0 -4
  491. package/Autocomplete/OverrideMenuList.js +0 -39
  492. package/Autocomplete2/Autocomplete2.d.ts +0 -12
  493. package/Autocomplete2/Autocomplete2.js +0 -83
  494. package/Autocomplete2/Autocomplete2TextField.d.ts +0 -7
  495. package/Autocomplete2/index.d.ts +0 -2
  496. package/Autocomplete2/index.js +0 -7
  497. package/CountryFlags/SwiperOverview.d.ts +0 -257
  498. package/CountryFlags/SwiperOverview.js +0 -524
@@ -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;
@@ -44,10 +44,9 @@ const findScrollableAncestor = (element, includeHidden = false) => {
44
44
  return window;
45
45
  };
46
46
  exports.findScrollableAncestor = findScrollableAncestor;
47
+ const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react_1.default.useLayoutEffect : react_1.default.useEffect;
47
48
  const usePopper = (props) => {
48
49
  const { anchorElement, anchorPos = 'auto', positionStrategy = 'fixed', autoFlip = false, offset = 0, viewportMargin = 10, isOpen = false, alternativePlacements, } = props;
49
- const isMountedRef = react_1.default.useRef(false);
50
- const isPositioningRef = react_1.default.useRef(false);
51
50
  const [actualPlacement, setActualPlacement] = react_1.default.useState(anchorPos);
52
51
  const [style, setStyle] = react_1.default.useState(null);
53
52
  const [isVisible, setIsVisible] = react_1.default.useState(false);
@@ -59,12 +58,15 @@ const usePopper = (props) => {
59
58
  }
60
59
  return (0, exports.findScrollableAncestor)(anchorElement);
61
60
  }, [anchorElement]);
62
- // Synchronizing actualPlacement with anchorPos
61
+ // Reset actualPlacement only when the preferred placement itself changes.
62
+ // Comparing with actualPlacement here would immediately revert every flip.
63
+ const prevAnchorPosRef = react_1.default.useRef(anchorPos);
63
64
  react_1.default.useEffect(() => {
64
- if (actualPlacement !== anchorPos) {
65
+ if (prevAnchorPosRef.current !== anchorPos) {
66
+ prevAnchorPosRef.current = anchorPos;
65
67
  setActualPlacement(anchorPos);
66
68
  }
67
- }, [actualPlacement, anchorPos]);
69
+ }, [anchorPos]);
68
70
  const getPositionStyle = react_1.default.useCallback((props) => {
69
71
  var _a;
70
72
  const { place, anchorRect, popperRect, forViewportCheck = false } = props;
@@ -383,25 +385,56 @@ const usePopper = (props) => {
383
385
  }
384
386
  const anchorRect = anchorElement.getBoundingClientRect();
385
387
  const popperRect = popperRef.current.getBoundingClientRect();
386
- const { style, placement, found } = getPreferredPlacements(anchorPos, anchorRect, popperRect);
387
- if (found) {
388
- setActualPlacement(placement);
389
- }
388
+ const { style, placement } = getPreferredPlacements(anchorPos, anchorRect, popperRect);
389
+ setActualPlacement(placement);
390
390
  setStyle(style);
391
391
  }, [anchorElement, anchorPos, getPreferredPlacements]);
392
+ const frameRef = react_1.default.useRef(null);
393
+ const scheduleUpdate = react_1.default.useCallback(() => {
394
+ if (frameRef.current !== null) {
395
+ return;
396
+ }
397
+ frameRef.current = window.requestAnimationFrame(() => {
398
+ frameRef.current = null;
399
+ calculatePosition();
400
+ });
401
+ }, [calculatePosition]);
402
+ // Cancel the pending frame on unmount
403
+ react_1.default.useEffect(() => () => {
404
+ if (frameRef.current !== null) {
405
+ window.cancelAnimationFrame(frameRef.current);
406
+ frameRef.current = null;
407
+ }
408
+ }, []);
392
409
  /**
393
- * Open / Close popper logic
410
+ * Close popper logic
394
411
  */
395
412
  react_1.default.useEffect(() => {
396
413
  if (!isOpen) {
397
414
  setIsVisible(false);
398
415
  setStyle(null);
399
416
  }
400
- else if (anchorElement && isOpen && popperRef.current) {
417
+ }, [isOpen]);
418
+ /**
419
+ * Open popper logic.
420
+ * Runs after every render because the popper node can appear later than `isOpen`
421
+ * becomes true (e.g. the portal is rendered only after the client mount)
422
+ */
423
+ useIsomorphicLayoutEffect(() => {
424
+ if (isOpen && !isVisible && anchorElement && popperRef.current) {
401
425
  calculatePosition();
402
426
  setIsVisible(true);
403
427
  }
404
- }, [anchorElement, getPreferredPlacements, isOpen, calculatePosition]);
428
+ });
429
+ /**
430
+ * Recalculate position when the positioning params are changed
431
+ */
432
+ react_1.default.useEffect(() => {
433
+ if (isOpen && isVisible) {
434
+ calculatePosition();
435
+ }
436
+ // eslint-disable-next-line react-hooks/exhaustive-deps
437
+ }, [calculatePosition]);
405
438
  /**
406
439
  * The anchor element changes
407
440
  */
@@ -409,12 +442,7 @@ const usePopper = (props) => {
409
442
  if (!isOpen || !anchorElement) {
410
443
  return;
411
444
  }
412
- const observer = new MutationObserver(() => {
413
- window.requestAnimationFrame(() => {
414
- // console.log('The anchor element was change');
415
- calculatePosition();
416
- });
417
- });
445
+ const observer = new MutationObserver(scheduleUpdate);
418
446
  observer.observe(anchorElement, {
419
447
  attributes: true,
420
448
  childList: true,
@@ -424,36 +452,47 @@ const usePopper = (props) => {
424
452
  return () => {
425
453
  observer.disconnect();
426
454
  };
427
- }, [isOpen, anchorElement, calculatePosition]);
455
+ }, [isOpen, anchorElement, scheduleUpdate]);
428
456
  /**
429
- * On scroll - recalculate position
457
+ * The size of the anchor or popper changes
430
458
  */
431
459
  react_1.default.useEffect(() => {
432
- if (!isOpen || !scrollableAncestor) {
460
+ if (!isOpen || !isVisible || typeof ResizeObserver === 'undefined') {
433
461
  return;
434
462
  }
435
- const handleScroll = () => {
436
- window.requestAnimationFrame(() => {
437
- calculatePosition();
438
- });
439
- };
440
- // parent scroll listener
441
- if (scrollableAncestor instanceof HTMLElement) {
442
- scrollableAncestor.addEventListener('scroll', handleScroll, { passive: true });
463
+ const observer = new ResizeObserver(scheduleUpdate);
464
+ if (anchorElement) {
465
+ observer.observe(anchorElement);
443
466
  }
444
- else if (scrollableAncestor === window) {
445
- window.addEventListener('scroll', handleScroll, { passive: true });
467
+ if (popperRef.current) {
468
+ observer.observe(popperRef.current);
446
469
  }
447
470
  // eslint-disable-next-line consistent-return
448
471
  return () => {
449
- if (scrollableAncestor instanceof HTMLElement) {
450
- scrollableAncestor.removeEventListener('scroll', handleScroll);
451
- }
452
- else if (scrollableAncestor === window) {
453
- window.removeEventListener('scroll', handleScroll);
472
+ observer.disconnect();
473
+ };
474
+ }, [isOpen, isVisible, anchorElement, scheduleUpdate]);
475
+ /**
476
+ * On scroll of any ancestor (captured on window) - recalculate position
477
+ */
478
+ react_1.default.useEffect(() => {
479
+ if (!isOpen) {
480
+ return;
481
+ }
482
+ const handleScroll = (event) => {
483
+ var _a;
484
+ // Scrolling inside the popper does not move it
485
+ if (event.target instanceof Node && ((_a = popperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
486
+ return;
454
487
  }
488
+ scheduleUpdate();
489
+ };
490
+ window.addEventListener('scroll', handleScroll, { passive: true, capture: true });
491
+ // eslint-disable-next-line consistent-return
492
+ return () => {
493
+ window.removeEventListener('scroll', handleScroll, { capture: true });
455
494
  };
456
- }, [isOpen, scrollableAncestor, calculatePosition]);
495
+ }, [isOpen, scheduleUpdate]);
457
496
  /**
458
497
  * On window resize - recalculate position
459
498
  */
@@ -461,18 +500,12 @@ const usePopper = (props) => {
461
500
  if (!isOpen) {
462
501
  return;
463
502
  }
464
- const handleResize = () => {
465
- window.requestAnimationFrame(() => {
466
- calculatePosition();
467
- });
468
- };
469
- // parent scroll listener
470
- window.addEventListener('resize', handleResize);
503
+ window.addEventListener('resize', scheduleUpdate);
471
504
  // eslint-disable-next-line consistent-return
472
505
  return () => {
473
- window.removeEventListener('resize', handleResize);
506
+ window.removeEventListener('resize', scheduleUpdate);
474
507
  };
475
- }, [calculatePosition, isOpen]);
508
+ }, [scheduleUpdate, isOpen]);
476
509
  return {
477
510
  actualPlacement,
478
511
  style,
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;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const styled_1 = __importDefault(require("@emotion/styled"));
19
+ const react_2 = require("@emotion/react");
20
+ const useRadioColor_1 = __importDefault(require("./useRadioColor"));
21
+ const Root = styled_1.default.span `
22
+ position: relative;
23
+ display: inline-flex;
24
+ flex-shrink: 0;
25
+ width: 1.15em;
26
+ height: 1.15em;
27
+ `;
28
+ /**
29
+ * The checked look comes from the `:checked` state of the input, not from the props:
30
+ * the browser unchecks the other radio buttons of the same `name` itself
31
+ * (data attributes, not class names: emotion labels are absent in the published package)
32
+ */
33
+ const StyledInput = styled_1.default.input `
34
+ position: absolute;
35
+ inset: 0;
36
+ width: 100%;
37
+ height: 100%;
38
+ margin: 0;
39
+ padding: 0;
40
+ opacity: 0;
41
+ cursor: inherit;
42
+ z-index: 1;
43
+
44
+ &:checked + [data-radio-circle] {
45
+ border-color: ${({ theme, $color, $error }) => $error ? theme.color.error.toString() : $color.toString()};
46
+ }
47
+
48
+ &:checked + [data-radio-circle] [data-radio-dot] {
49
+ transform: scale(1);
50
+ }
51
+
52
+ &:focus-visible + [data-radio-circle] {
53
+ outline: 0.14em solid ${({ theme }) => theme.color.accentPrimary.toString()};
54
+ outline-offset: 0.14em;
55
+ }
56
+ `;
57
+ const Circle = styled_1.default.span `
58
+ box-sizing: border-box;
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: center;
62
+ width: 100%;
63
+ height: 100%;
64
+ border-radius: 50%;
65
+ border-width: 0.1em;
66
+ border-style: solid;
67
+ background-color: ${({ theme }) => theme.color.surface.toString()};
68
+ transition: border-color 150ms ease-out;
69
+ border-color: ${({ theme, $error }) => $error ? theme.color.error.toString() : theme.color.textPrimary.alpha(0.4).toString()};
70
+
71
+ ${({ $disabled, $error, $color }) => !$disabled &&
72
+ !$error &&
73
+ (0, react_2.css) `
74
+ label:hover & {
75
+ border-color: ${$color.toString()};
76
+ }
77
+ `}
78
+ `;
79
+ const Dot = styled_1.default.span `
80
+ width: 50%;
81
+ height: 50%;
82
+ border-radius: 50%;
83
+ background-color: ${({ $color }) => $color.toString()};
84
+ transform: scale(0);
85
+ transition: transform 150ms ease-out;
86
+ `;
87
+ /**
88
+ * The circle with the native input over it.
89
+ * The ref and the input attributes go to the input: it is the element that holds the value and the focus.
90
+ * `className` and `style` go to the root element, so `styled(RadioBox)` styles the circle
91
+ */
92
+ const RadioBox = (props, ref) => {
93
+ const { error, color, disabled, className, style } = props, nativeProps = __rest(props, ["error", "color", "disabled", "className", "style"]);
94
+ const $color = (0, useRadioColor_1.default)(color);
95
+ return (react_1.default.createElement(Root, { className: className, style: style },
96
+ react_1.default.createElement(StyledInput, Object.assign({}, nativeProps, { type: "radio", disabled: disabled, "$color": $color, "$error": Boolean(error), ref: ref })),
97
+ react_1.default.createElement(Circle, { "data-radio-circle": "", "$color": $color, "$error": Boolean(error), "$disabled": Boolean(disabled) },
98
+ react_1.default.createElement(Dot, { "data-radio-dot": "", "$color": $color }))));
99
+ };
100
+ exports.default = react_1.default.forwardRef(RadioBox);
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ export type RadioLabelPosition = 'start' | 'end' | 'top' | 'bottom';
3
+ export type RadioContainerProps = React.LabelHTMLAttributes<HTMLLabelElement> & {
4
+ /**
5
+ * Position of the label relative to the radio button
6
+ * Default: `end`
7
+ */
8
+ readonly labelPosition?: RadioLabelPosition;
9
+ /**
10
+ * If `true` the radio button state can not be changed
11
+ * Default: false;
12
+ */
13
+ readonly disabled?: boolean;
14
+ };
15
+ declare const _default: React.ForwardRefExoticComponent<React.LabelHTMLAttributes<HTMLLabelElement> & {
16
+ /**
17
+ * Position of the label relative to the radio button
18
+ * Default: `end`
19
+ */
20
+ readonly labelPosition?: RadioLabelPosition | undefined;
21
+ /**
22
+ * If `true` the radio button state can not be changed
23
+ * Default: false;
24
+ */
25
+ readonly disabled?: boolean | undefined;
26
+ } & React.RefAttributes<HTMLLabelElement>>;
27
+ export default _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const styled_1 = __importDefault(require("@emotion/styled"));
19
+ const directions = {
20
+ start: 'row-reverse',
21
+ end: 'row',
22
+ top: 'column-reverse',
23
+ bottom: 'column',
24
+ };
25
+ const StyledContainer = styled_1.default.label `
26
+ cursor: ${({ $disabled }) => ($disabled ? 'default' : 'pointer')};
27
+ font-size: 1em;
28
+ display: inline-flex;
29
+ align-items: center;
30
+ gap: 0.5em;
31
+ opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};
32
+ flex-direction: ${({ $labelPosition }) => directions[$labelPosition || 'end']};
33
+ `;
34
+ const RadioContainer = (props, ref) => {
35
+ const { children, labelPosition, disabled } = props, nativeProps = __rest(props, ["children", "labelPosition", "disabled"]);
36
+ return (react_1.default.createElement(StyledContainer, Object.assign({}, nativeProps, { "$labelPosition": labelPosition, "$disabled": disabled, ref: ref }), children));
37
+ };
38
+ exports.default = react_1.default.forwardRef(RadioContainer);
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ export type RadioTextWrapperProps = React.HTMLAttributes<HTMLSpanElement>;
3
+ declare const _default: React.ForwardRefExoticComponent<RadioTextWrapperProps & React.RefAttributes<HTMLSpanElement>>;
4
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const react_1 = __importDefault(require("react"));
18
+ const styled_1 = __importDefault(require("@emotion/styled"));
19
+ const TextWrapper = styled_1.default.span `
20
+ font-size: 0.86em;
21
+ display: flex;
22
+ align-items: center;
23
+ user-select: none;
24
+ `;
25
+ const RadioTextWrapper = (props, ref) => {
26
+ const { children } = props, nativeProps = __rest(props, ["children"]);
27
+ return (react_1.default.createElement(TextWrapper, Object.assign({}, nativeProps, { ref: ref }), children));
28
+ };
29
+ exports.default = react_1.default.forwardRef(RadioTextWrapper);
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import { RadioContainerProps, RadioLabelPosition } from './RadioContainer';
3
+ import { RadioBoxProps } from './RadioBox';
4
+ import { RadioTextWrapperProps } from './RadioTextWrapper';
5
+ export type { RadioLabelPosition };
6
+ export type RadioProps = Omit<RadioBoxProps, 'color' | 'error'> & {
7
+ /**
8
+ * The value of the radio button. Inside `<RadioGroup>` it is required:
9
+ * the group compares it with its own value
10
+ */
11
+ readonly value?: string;
12
+ /**
13
+ * You can pass the primary, default, secondary name of the colors or your specified color value\
14
+ * **Default:** `default`, inside `<RadioGroup>` — the color of the group
15
+ */
16
+ readonly color?: 'default' | 'primary' | 'secondary' | string;
17
+ /**
18
+ * Position of the label relative to the radio button\
19
+ * **Default:** `end`
20
+ */
21
+ readonly labelPosition?: RadioLabelPosition;
22
+ /**
23
+ * Paints the circle with the error color. Inside `<RadioGroup>` it comes from the group
24
+ */
25
+ readonly error?: boolean;
26
+ readonly overrides?: RadioOverrides;
27
+ };
28
+ export interface RadioOverrides {
29
+ /**
30
+ * The label element with the radio button and the text
31
+ */
32
+ readonly Container?: React.ComponentType<RadioContainerProps & React.RefAttributes<HTMLLabelElement>>;
33
+ /**
34
+ * The circle with the native input
35
+ */
36
+ readonly Box?: React.ComponentType<RadioBoxProps & React.RefAttributes<HTMLInputElement>>;
37
+ /**
38
+ * The text wrapper
39
+ */
40
+ readonly TextWrapper?: React.ComponentType<RadioTextWrapperProps & React.RefAttributes<HTMLSpanElement>>;
41
+ }
42
+ declare const _default: React.ForwardRefExoticComponent<Omit<RadioBoxProps, "color" | "error"> & {
43
+ /**
44
+ * The value of the radio button. Inside `<RadioGroup>` it is required:
45
+ * the group compares it with its own value
46
+ */
47
+ readonly value?: string | undefined;
48
+ /**
49
+ * You can pass the primary, default, secondary name of the colors or your specified color value\
50
+ * **Default:** `default`, inside `<RadioGroup>` — the color of the group
51
+ */
52
+ readonly color?: string | undefined;
53
+ /**
54
+ * Position of the label relative to the radio button\
55
+ * **Default:** `end`
56
+ */
57
+ readonly labelPosition?: RadioLabelPosition | undefined;
58
+ /**
59
+ * Paints the circle with the error color. Inside `<RadioGroup>` it comes from the group
60
+ */
61
+ readonly error?: boolean | undefined;
62
+ readonly overrides?: RadioOverrides | undefined;
63
+ } & React.RefAttributes<HTMLInputElement>>;
64
+ export default _default;