@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
@@ -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 StyledWrapper = styled_1.default.span `
20
+ font-size: 1em;
21
+ display: inline-flex;
22
+ flex-direction: column;
23
+ align-items: flex-start;
24
+ `;
25
+ const CheckboxWrapper = (props, ref) => {
26
+ const { children } = props, nativeProps = __rest(props, ["children"]);
27
+ return (react_1.default.createElement(StyledWrapper, Object.assign({}, nativeProps, { ref: ref }), children));
28
+ };
29
+ exports.default = react_1.default.forwardRef(CheckboxWrapper);
@@ -0,0 +1,144 @@
1
+ import React from 'react';
2
+ import { CheckboxWrapperProps } from './CheckboxWrapper';
3
+ import { CheckboxContainerProps, CheckboxLabelPosition } from './CheckboxContainer';
4
+ import { CheckboxBoxProps } from './CheckboxBox';
5
+ import { CheckboxIconProps } from './CheckboxIcon';
6
+ import { CheckboxTextWrapperProps } from './CheckboxTextWrapper';
7
+ import { CheckboxAsteriskProps } from './CheckboxAsterisk';
8
+ import { CheckboxErrorTextProps } from './CheckboxErrorText';
9
+ export type { CheckboxLabelPosition };
10
+ export type CheckboxProps = Omit<CheckboxBoxProps, 'checked' | 'defaultChecked' | 'onChange' | 'disabled' | 'color' | 'error' | 'indeterminate'> & {
11
+ /**
12
+ * The state of the controlled checkbox. Pass it together with `onChange`
13
+ * Default: undefined
14
+ */
15
+ readonly checked?: boolean;
16
+ /**
17
+ * The initial state of the uncontrolled checkbox
18
+ * Default: false
19
+ */
20
+ readonly defaultChecked?: boolean;
21
+ /**
22
+ * Called when the user toggles the checkbox. The new value is `event.currentTarget.checked`
23
+ */
24
+ readonly onChange?: React.ChangeEventHandler<HTMLInputElement>;
25
+ /**
26
+ * Shows the dash instead of the check mark, e.g. «select all» when only some items are selected.\
27
+ * Only the look changes: `checked` keeps its value
28
+ * Default: false
29
+ */
30
+ readonly indeterminate?: boolean;
31
+ /**
32
+ * If `true` the checkbox state can not be changed
33
+ * Default: false
34
+ */
35
+ readonly disabled?: boolean;
36
+ /**
37
+ * You can pass the primary, default, secondary name of the colors or your specified color value
38
+ * Default: `default`
39
+ */
40
+ readonly color?: 'default' | 'primary' | 'secondary' | string;
41
+ /**
42
+ * Position of the label relative to the checkbox
43
+ * Default: `end`
44
+ */
45
+ readonly labelPosition?: CheckboxLabelPosition;
46
+ /**
47
+ * If true then `errorText` value will be displayed under the checkbox
48
+ */
49
+ readonly error?: boolean;
50
+ /**
51
+ * Text or ReactNode to show in the error element.\
52
+ * Will be displayed only if `error` property is true
53
+ */
54
+ readonly errorText?: React.ReactNode;
55
+ /**
56
+ * If is true then the asterisk will be displayed in label\
57
+ * If is ReactNode then ReactNode will be displayed in label
58
+ */
59
+ readonly requiredAsterisk?: boolean | React.ReactNode;
60
+ readonly overrides?: CheckboxOverrides;
61
+ };
62
+ export interface CheckboxOverrides {
63
+ /**
64
+ * The root element: the checkbox with the label and the error text
65
+ */
66
+ readonly Wrapper?: React.ComponentType<CheckboxWrapperProps & React.RefAttributes<HTMLSpanElement>>;
67
+ /**
68
+ * The label element with the checkbox and the text
69
+ */
70
+ readonly Container?: React.ComponentType<CheckboxContainerProps & React.RefAttributes<HTMLLabelElement>>;
71
+ /**
72
+ * The square with the native input
73
+ */
74
+ readonly Box?: React.ComponentType<CheckboxBoxProps & React.RefAttributes<HTMLInputElement>>;
75
+ /**
76
+ * The check mark and the dash of the indeterminate state
77
+ */
78
+ readonly Icon?: React.ComponentType<CheckboxIconProps & React.RefAttributes<HTMLSpanElement>>;
79
+ /**
80
+ * The text wrapper
81
+ */
82
+ readonly TextWrapper?: React.ComponentType<CheckboxTextWrapperProps & React.RefAttributes<HTMLSpanElement>>;
83
+ /**
84
+ * The asterisk of the required field
85
+ */
86
+ readonly Asterisk?: React.ComponentType<CheckboxAsteriskProps & React.RefAttributes<HTMLSpanElement>>;
87
+ /**
88
+ * The error text wrapper
89
+ */
90
+ readonly ErrorText?: React.ComponentType<CheckboxErrorTextProps & React.RefAttributes<HTMLDivElement>>;
91
+ }
92
+ declare const _default: React.ForwardRefExoticComponent<Omit<CheckboxBoxProps, "color" | "error" | "defaultChecked" | "onChange" | "checked" | "disabled" | "indeterminate"> & {
93
+ /**
94
+ * The state of the controlled checkbox. Pass it together with `onChange`
95
+ * Default: undefined
96
+ */
97
+ readonly checked?: boolean | undefined;
98
+ /**
99
+ * The initial state of the uncontrolled checkbox
100
+ * Default: false
101
+ */
102
+ readonly defaultChecked?: boolean | undefined;
103
+ /**
104
+ * Called when the user toggles the checkbox. The new value is `event.currentTarget.checked`
105
+ */
106
+ readonly onChange?: React.ChangeEventHandler<HTMLInputElement> | undefined;
107
+ /**
108
+ * Shows the dash instead of the check mark, e.g. «select all» when only some items are selected.\
109
+ * Only the look changes: `checked` keeps its value
110
+ * Default: false
111
+ */
112
+ readonly indeterminate?: boolean | undefined;
113
+ /**
114
+ * If `true` the checkbox state can not be changed
115
+ * Default: false
116
+ */
117
+ readonly disabled?: boolean | undefined;
118
+ /**
119
+ * You can pass the primary, default, secondary name of the colors or your specified color value
120
+ * Default: `default`
121
+ */
122
+ readonly color?: string | undefined;
123
+ /**
124
+ * Position of the label relative to the checkbox
125
+ * Default: `end`
126
+ */
127
+ readonly labelPosition?: CheckboxLabelPosition | undefined;
128
+ /**
129
+ * If true then `errorText` value will be displayed under the checkbox
130
+ */
131
+ readonly error?: boolean | undefined;
132
+ /**
133
+ * Text or ReactNode to show in the error element.\
134
+ * Will be displayed only if `error` property is true
135
+ */
136
+ readonly errorText?: React.ReactNode;
137
+ /**
138
+ * If is true then the asterisk will be displayed in label\
139
+ * If is ReactNode then ReactNode will be displayed in label
140
+ */
141
+ readonly requiredAsterisk?: React.ReactNode;
142
+ readonly overrides?: CheckboxOverrides | undefined;
143
+ } & React.RefAttributes<HTMLInputElement>>;
144
+ export default _default;
@@ -0,0 +1,71 @@
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 CheckboxWrapper_1 = __importDefault(require("./CheckboxWrapper"));
19
+ const CheckboxContainer_1 = __importDefault(require("./CheckboxContainer"));
20
+ const CheckboxBox_1 = __importDefault(require("./CheckboxBox"));
21
+ const CheckboxIcon_1 = __importDefault(require("./CheckboxIcon"));
22
+ const CheckboxTextWrapper_1 = __importDefault(require("./CheckboxTextWrapper"));
23
+ const CheckboxAsterisk_1 = __importDefault(require("./CheckboxAsterisk"));
24
+ const CheckboxErrorText_1 = __importDefault(require("./CheckboxErrorText"));
25
+ const Checkbox = (props, ref) => {
26
+ const { checked, defaultChecked, onChange, indeterminate = false, disabled, color, labelPosition, error, errorText, requiredAsterisk, overrides, children, className, style } = props, nativeProps = __rest(props, ["checked", "defaultChecked", "onChange", "indeterminate", "disabled", "color", "labelPosition", "error", "errorText", "requiredAsterisk", "overrides", "children", "className", "style"]);
27
+ const inputRef = react_1.default.useRef(null);
28
+ const [internalChecked, setInternalChecked] = react_1.default.useState(Boolean(defaultChecked));
29
+ const isControlled = typeof checked !== 'undefined';
30
+ const isChecked = isControlled ? Boolean(checked) : internalChecked;
31
+ const overridesMap = react_1.default.useMemo(() => ({
32
+ Wrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.Wrapper) || CheckboxWrapper_1.default,
33
+ Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || CheckboxContainer_1.default,
34
+ Box: (overrides === null || overrides === void 0 ? void 0 : overrides.Box) || CheckboxBox_1.default,
35
+ Icon: (overrides === null || overrides === void 0 ? void 0 : overrides.Icon) || CheckboxIcon_1.default,
36
+ TextWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.TextWrapper) || CheckboxTextWrapper_1.default,
37
+ Asterisk: (overrides === null || overrides === void 0 ? void 0 : overrides.Asterisk) || CheckboxAsterisk_1.default,
38
+ ErrorText: (overrides === null || overrides === void 0 ? void 0 : overrides.ErrorText) || CheckboxErrorText_1.default,
39
+ }), [overrides]);
40
+ react_1.default.useImperativeHandle(ref, () => inputRef.current);
41
+ // `indeterminate` exists only as the DOM property, not as the attribute.
42
+ // The browser resets it on click, so it is restored after every change
43
+ react_1.default.useEffect(() => {
44
+ if (inputRef.current) {
45
+ inputRef.current.indeterminate = indeterminate;
46
+ }
47
+ }, [indeterminate, isChecked]);
48
+ // Warn once, not on every render
49
+ const isControlledWithoutOnChange = isControlled && typeof onChange === 'undefined';
50
+ react_1.default.useEffect(() => {
51
+ if (isControlledWithoutOnChange) {
52
+ console.error('The property «onChange» should be passed with prop «checked» to make component controlled');
53
+ }
54
+ }, [isControlledWithoutOnChange]);
55
+ const handleChange = event => {
56
+ if (!isControlled) {
57
+ setInternalChecked(event.currentTarget.checked);
58
+ }
59
+ onChange === null || onChange === void 0 ? void 0 : onChange(event);
60
+ };
61
+ return (react_1.default.createElement(overridesMap.Wrapper, { className: className, style: style },
62
+ react_1.default.createElement(overridesMap.Container, { labelPosition: labelPosition, disabled: disabled },
63
+ react_1.default.createElement(overridesMap.Box, Object.assign({}, nativeProps, { checked: isChecked, onChange: handleChange, disabled: disabled, indeterminate: indeterminate, color: color, error: error, "aria-invalid": error || undefined, ref: inputRef }),
64
+ react_1.default.createElement(overridesMap.Icon, { checked: isChecked, indeterminate: indeterminate })),
65
+ (typeof children !== 'undefined' ||
66
+ (requiredAsterisk != null && requiredAsterisk !== false)) && (react_1.default.createElement(overridesMap.TextWrapper, null,
67
+ children,
68
+ requiredAsterisk != null && requiredAsterisk !== false && (react_1.default.createElement(overridesMap.Asterisk, null, typeof requiredAsterisk === 'boolean' ? '*' : requiredAsterisk))))),
69
+ typeof errorText !== 'undefined' && (react_1.default.createElement(overridesMap.ErrorText, { error: error }, errorText))));
70
+ };
71
+ exports.default = react_1.default.forwardRef(Checkbox);
@@ -0,0 +1,6 @@
1
+ import Color from '../Color';
2
+ /**
3
+ * Resolves the `color` property of the Checkbox to the Color instance
4
+ */
5
+ declare const useCheckboxColor: (color: 'default' | 'primary' | 'secondary' | string | undefined) => Color;
6
+ export default useCheckboxColor;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const react_2 = require("@emotion/react");
8
+ const Color_1 = __importDefault(require("../Color"));
9
+ /**
10
+ * Resolves the `color` property of the Checkbox to the Color instance
11
+ */
12
+ const useCheckboxColor = (color) => {
13
+ const theme = (0, react_2.useTheme)();
14
+ return react_1.default.useMemo(() => {
15
+ switch (true) {
16
+ case color === 'secondary':
17
+ return theme.color.accentSecondary;
18
+ case typeof color === 'undefined':
19
+ case color === 'default':
20
+ case color === 'primary':
21
+ return theme.color.accentPrimary;
22
+ default:
23
+ try {
24
+ return Color_1.default.fromString(String(color));
25
+ }
26
+ catch (err) {
27
+ console.error(`invalid color value «${color}»`);
28
+ return theme.color.accentPrimary;
29
+ }
30
+ }
31
+ }, [color, theme.color]);
32
+ };
33
+ exports.default = useCheckboxColor;
@@ -15,6 +15,12 @@ export interface ClickOutsideProps {
15
15
  * **Default**: `onMouseDown`
16
16
  */
17
17
  readonly mouseEvent?: OutsideMouseEventName | false;
18
+ /**
19
+ * Elements whose clicks are not treated as outside clicks,
20
+ * e.g. the button that toggles a popper.\
21
+ * `null` and `undefined` entries are skipped
22
+ */
23
+ readonly ignoreElements?: readonly (Element | null | undefined)[];
18
24
  }
19
25
  type OutsideMouseEventName = 'onClick' | 'onMouseDown' | 'onMouseUp';
20
26
  export declare const mouseEventMap: Record<OutsideMouseEventName, 'click' | 'mousedown' | 'mouseup'>;
@@ -11,14 +11,19 @@ exports.mouseEventMap = {
11
11
  onMouseUp: 'mouseup',
12
12
  };
13
13
  const ClickOutside = props => {
14
- const { children, mouseEvent = 'onMouseDown', onOutsideClick } = props;
14
+ const { children, mouseEvent = 'onMouseDown', onOutsideClick, ignoreElements } = props;
15
15
  const ref = react_1.default.useRef(null);
16
+ // A ref keeps an inline array from resubscribing the listener on every render
17
+ const ignoreElementsRef = react_1.default.useRef(ignoreElements);
18
+ ignoreElementsRef.current = ignoreElements;
16
19
  react_1.default.useEffect(() => {
17
20
  const mouseDownEvent = (event) => {
21
+ var _a;
18
22
  let parentElem = event.target;
19
23
  let needToClose = true;
20
24
  while (parentElem && 'parentNode' in parentElem) {
21
- if (parentElem === ref.current) {
25
+ if (parentElem === ref.current ||
26
+ ((_a = ignoreElementsRef.current) === null || _a === void 0 ? void 0 : _a.some(element => element === parentElem))) {
22
27
  needToClose = false;
23
28
  break;
24
29
  }
@@ -37,6 +42,17 @@ const ClickOutside = props => {
37
42
  }
38
43
  };
39
44
  }, [onOutsideClick, mouseEvent]);
40
- return react_1.default.createElement(react_1.default.Fragment, null, react_1.default.cloneElement(children, { ref }));
45
+ // Keep the child's own ref working alongside ours
46
+ const childRef = children.ref;
47
+ const setRef = react_1.default.useCallback((el) => {
48
+ ref.current = el;
49
+ if (typeof childRef === 'function') {
50
+ childRef(el);
51
+ }
52
+ else if (childRef && typeof childRef === 'object') {
53
+ childRef.current = el;
54
+ }
55
+ }, [childRef]);
56
+ return react_1.default.createElement(react_1.default.Fragment, null, react_1.default.cloneElement(children, { ref: setRef }));
41
57
  };
42
58
  exports.default = ClickOutside;
package/Color/Color.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ParsedColor } from './ColorParser';
2
- import { ColorGenerator } from './ColorGenerator';
2
+ import { PaletteName } from './ColorGenerator';
3
3
  export type ColorFormat = 'rgb' | 'rgba' | 'hex' | 'hsl' | 'hsla';
4
4
  export declare class Color {
5
5
  private readonly _r;
@@ -30,7 +30,7 @@ export declare class Color {
30
30
  /**
31
31
  * Создает цвет из UUID (использует генератор)
32
32
  */
33
- static fromUuid(uuid: string, palette?: keyof typeof ColorGenerator.getPalettes): Color;
33
+ static fromUuid(uuid: string, palette?: PaletteName): Color;
34
34
  /**
35
35
  * Создает цвет из строки с хешированием
36
36
  */
@@ -73,11 +73,11 @@ export declare class Color {
73
73
  */
74
74
  getContrast(other: Color | string): number;
75
75
  /**
76
- * Проверяет, достаточно ли контрастен цвет для белого текста
76
+ * Проверяет, светлый ли цвет: относительная яркость больше 0.5
77
77
  */
78
78
  isLight(): boolean;
79
79
  /**
80
- * Возвращает наиболее контрастный цвет (черный или белый)
80
+ * Возвращает цвет текста (черный или белый), наиболее контрастный с текущим цветом
81
81
  */
82
82
  getContrastColor(): Color;
83
83
  /**
package/Color/Color.js CHANGED
@@ -126,16 +126,20 @@ class Color {
126
126
  return (brightest + 0.05) / (darkest + 0.05);
127
127
  }
128
128
  /**
129
- * Проверяет, достаточно ли контрастен цвет для белого текста
129
+ * Проверяет, светлый ли цвет: относительная яркость больше 0.5
130
130
  */
131
131
  isLight() {
132
132
  return this.getLuminance() > 0.5;
133
133
  }
134
134
  /**
135
- * Возвращает наиболее контрастный цвет (черный или белый)
135
+ * Возвращает цвет текста (черный или белый), наиболее контрастный с текущим цветом
136
136
  */
137
137
  getContrastColor() {
138
- return this.isLight() ? Color.fromString('#000000') : Color.fromString('#FFFFFF');
138
+ const black = Color.fromString('#000000');
139
+ const white = Color.fromString('#FFFFFF');
140
+ // Compared by the contrast ratio: a luminance threshold picks white text
141
+ // for mid colors like orange, where black text is several times more readable
142
+ return this.getContrast(black) >= this.getContrast(white) ? black : white;
139
143
  }
140
144
  /**
141
145
  * Возвращает новый цвет, смешанный с другим цветом
@@ -297,9 +301,9 @@ class Color {
297
301
  static getHextByWebColor(value) {
298
302
  if (process.env.NODE_ENV !== 'production') {
299
303
  console.warn('[Color] getHextByWebColor() is deprecated. ' +
300
- 'Use Color.fromString(value).toHslString() instead');
304
+ 'Use Color.fromString(value).toHexString() instead');
301
305
  }
302
- return Color.fromString(value).toHslString();
306
+ return Color.fromString(value).toHexString();
303
307
  }
304
308
  /**
305
309
  * @deprecated Do not use.
@@ -4,7 +4,7 @@ export declare class ColorGenerator {
4
4
  /**
5
5
  * Генерирует цвет на основе UUID
6
6
  */
7
- static fromUuid(uuid: string, palette?: keyof typeof ColorGenerator.palettes): Color;
7
+ static fromUuid(uuid: string, palette?: PaletteName): Color;
8
8
  /**
9
9
  * Генерирует цвет на основе строки с использованием хеш-функции
10
10
  */
@@ -26,4 +26,8 @@ export declare class ColorGenerator {
26
26
  };
27
27
  private static stringToHashCode;
28
28
  }
29
+ /**
30
+ * Name of a palette of ColorGenerator: `pastel`, `vibrant`, `muted`, `autumn`, `ocean` or `forest`
31
+ */
32
+ export type PaletteName = keyof ReturnType<typeof ColorGenerator.getPalettes>;
29
33
  export default ColorGenerator;
@@ -12,6 +12,15 @@ export declare class ColorParser {
12
12
  */
13
13
  static parse(value: string): ParsedColor;
14
14
  private static parseHex;
15
+ /**
16
+ * Returns function arguments: `rgb(10, 20 30 / 50%)` -> ['10', '20', '30', '50%']
17
+ */
18
+ private static getArgs;
19
+ private static parseNumber;
20
+ /**
21
+ * Alpha may be a number (0..1) or a percentage (0%..100%)
22
+ */
23
+ private static parseAlpha;
15
24
  private static parseRgb;
16
25
  private static parseHsl;
17
26
  private static hslToRgb;
@@ -11,6 +11,9 @@ class ColorParser {
11
11
  throw new Error(`Invalid color value: ${value}`);
12
12
  }
13
13
  const inputColor = value.trim().toLowerCase();
14
+ if (inputColor === 'transparent') {
15
+ return { r: 0, g: 0, b: 0, a: 0 };
16
+ }
14
17
  // Проверка на именованный цвет
15
18
  if (this.webColors[inputColor]) {
16
19
  return this.parse(this.webColors[inputColor]);
@@ -70,27 +73,64 @@ class ColorParser {
70
73
  }
71
74
  throw new Error(`Invalid HEX color: ${hex}`);
72
75
  }
76
+ /**
77
+ * Returns function arguments: `rgb(10, 20 30 / 50%)` -> ['10', '20', '30', '50%']
78
+ */
79
+ static getArgs(value) {
80
+ const inner = value.substring(value.indexOf('(') + 1, value.lastIndexOf(')'));
81
+ return inner.split(/[\s,/]+/).filter(Boolean);
82
+ }
83
+ static parseNumber(value, color) {
84
+ const num = parseFloat(value);
85
+ if (isNaN(num)) {
86
+ throw new Error(`Invalid color value: ${color}`);
87
+ }
88
+ return num;
89
+ }
90
+ /**
91
+ * Alpha may be a number (0..1) or a percentage (0%..100%)
92
+ */
93
+ static parseAlpha(value, color) {
94
+ if (typeof value === 'undefined') {
95
+ return 1;
96
+ }
97
+ const num = this.parseNumber(value, color);
98
+ return this.clamp(value.endsWith('%') ? num / 100 : num, 0, 1);
99
+ }
73
100
  static parseRgb(rgb) {
74
- const matches = rgb.match(/[\d.]+/g);
75
- if (!matches || matches.length < 3) {
101
+ const args = this.getArgs(rgb);
102
+ if (args.length < 3) {
76
103
  throw new Error(`Invalid RGB color: ${rgb}`);
77
104
  }
105
+ // Channel may be a number (0..255) or a percentage (0%..100%)
106
+ const channel = (value) => {
107
+ const num = this.parseNumber(value, rgb);
108
+ return this.clamp(Math.round(value.endsWith('%') ? (num * 255) / 100 : num), 0, 255);
109
+ };
78
110
  return {
79
- r: this.clamp(parseInt(matches[0], 10), 0, 255),
80
- g: this.clamp(parseInt(matches[1], 10), 0, 255),
81
- b: this.clamp(parseInt(matches[2], 10), 0, 255),
82
- a: matches[3] ? this.clamp(parseFloat(matches[3]), 0, 1) : 1,
111
+ r: channel(args[0]),
112
+ g: channel(args[1]),
113
+ b: channel(args[2]),
114
+ a: this.parseAlpha(args[3], rgb),
83
115
  };
84
116
  }
85
117
  static parseHsl(hsl) {
86
- const matches = hsl.match(/[\d.]+/g);
87
- if (!matches || matches.length < 3) {
118
+ const args = this.getArgs(hsl);
119
+ if (args.length < 3) {
88
120
  throw new Error(`Invalid HSL color: ${hsl}`);
89
121
  }
90
- const h = parseFloat(matches[0]) / 360;
91
- const s = parseFloat(matches[1]) / 100;
92
- const l = parseFloat(matches[2]) / 100;
93
- const a = matches[3] ? this.clamp(parseFloat(matches[3]), 0, 1) : 1;
122
+ let hue = this.parseNumber(args[0], hsl);
123
+ if (args[0].endsWith('turn')) {
124
+ hue *= 360;
125
+ }
126
+ else if (args[0].endsWith('rad')) {
127
+ hue = (hue * 180) / Math.PI;
128
+ }
129
+ // Negative and >360 hues are wrapped around the color wheel
130
+ const h = (((hue % 360) + 360) % 360) / 360;
131
+ const s = this.clamp(this.parseNumber(args[1], hsl), 0, 100) / 100;
132
+ const l = this.clamp(this.parseNumber(args[2], hsl), 0, 100) / 100;
133
+ const a = this.parseAlpha(args[3], hsl);
94
134
  const rgb = this.hslToRgb(h, s, l);
95
135
  return {
96
136
  r: rgb[0],
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AC = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AC = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("path", { fill: "#0052B4", d: "M0 0h513v342H0z" }),
29
33
  React.createElement("path", { fill: "#FFF", d: "M440.1 181.1c-.1 39.2-6.4 81.4-57.4 101.5-51.1-20.1-57.3-62.3-57.4-101.5h114.8z" }),
30
34
  React.createElement("path", { fill: "#29DBFF", d: "M439.6 197.7c-2.8 34.9-12.4 67.4-57 85-44.4-17.6-54.5-51.2-56.9-84.9" }),
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AD = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AD = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("style", null, '.st0{fill:#ffda44}.st1{fill:#0052b4}.st2{fill:#d80027}.st3,.st4{fill:none;stroke:#d80027;stroke-width:7;stroke-miterlimit:10}.st4{stroke-width:4}.st5{fill:#bc8b00}'),
29
33
  React.createElement("path", { fill: "#FFDA44", d: "M0 0h513v342H0z" }),
30
34
  React.createElement("path", { fill: "#0052B4", d: "M0 0h171v342H0z" }),
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AE = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AE = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("path", { fill: "#FFF", d: "M0 0h513v342H0z" }),
29
33
  React.createElement("path", { fill: "#009e49", d: "M0 0h513v114H0z" }),
30
34
  React.createElement("path", { d: "M0 228h513v114H0z" }),
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AF = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AF = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("path", { fill: "#DB3E00", d: "M0 0h513v342H0z" }),
29
33
  React.createElement("path", { fill: "#479900", d: "M331 0h182v342H331z" }),
30
34
  React.createElement("path", { d: "M0 0h181.8v342H0z" }),
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AG = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AG = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("path", { d: "M0 0h513v342H0z" }),
29
33
  React.createElement("path", { fill: "#0072c6", d: "M88.8 136.5c-2.2 12.9-3.4 26.2-3.4 39.8 0 13.6 1.2 27 3.4 39.8L256 228.3l167.2-12.1c2.2-12.9 3.4-26.2 3.4-39.8s-1.2-27-3.4-39.8" }),
30
34
  React.createElement("path", { fill: "#FFF", d: "M423.2 219H88.8c15.8 69.8 84.7 122.3 167.2 122.3S407.4 288.8 423.2 219z" }),
@@ -22,9 +22,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
29
  const React = __importStar(require("react"));
27
- const AI = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em" }, props, { ref: ref }),
30
+ const isLabelled_1 = __importDefault(require("./isLabelled"));
31
+ const AI = (props, ref) => (React.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 513 342", width: "1.5em", height: "1em", "aria-hidden": (0, isLabelled_1.default)(props) ? undefined : true, role: (0, isLabelled_1.default)(props) ? 'img' : undefined }, props, { ref: ref }),
28
32
  React.createElement("path", { fill: "#00318b", d: "M0 0h513v342H0z" }),
29
33
  React.createElement("path", { fill: "#FFF", d: "M454.8 265.38c7.94-10.93 13.24-24.27 13.24-40.42V104.89a59.754 59.754 0 0 1-36.02 12.01c-19.64 0-37.07-9.43-48.03-24.01-10.95 14.58-28.39 24.01-48.03 24.01-13.52 0-25.99-4.47-36.02-12v120.06c0 16.16 5.3 29.5 13.24 40.42H454.8z" }),
30
34
  React.createElement("path", { fill: "#8DCCFF", d: "M310.23 260.98C332.65 296.96 384 309 384 309s51.35-12.04 73.77-48.02H310.23z" }),