@via-profit/ui-kit 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/Accordion/AccordionContainer.js +11 -11
  2. package/Accordion/AccordionContent.js +16 -7
  3. package/Accordion/AccordionHeader.d.ts +22 -0
  4. package/Accordion/AccordionHeader.js +35 -18
  5. package/Accordion/Chevron.js +3 -3
  6. package/Accordion/index.d.ts +12 -8
  7. package/Accordion/index.js +21 -6
  8. package/Autocomplete/AutocompleteContainer.d.ts +5 -9
  9. package/Autocomplete/AutocompleteContainer.js +91 -35
  10. package/Autocomplete/AutocompleteTagsInput.d.ts +15 -0
  11. package/Autocomplete/AutocompleteTagsInput.js +65 -0
  12. package/Autocomplete/context.d.ts +1 -0
  13. package/Autocomplete/context.js +5 -5
  14. package/Autocomplete/index.js +1 -0
  15. package/Avatar/AvatarBase.js +1 -1
  16. package/Avatar/AvatarContainer.js +6 -11
  17. package/Avatar/AvatarPicture.d.ts +9 -1
  18. package/Avatar/AvatarPicture.js +4 -3
  19. package/Avatar/index.js +10 -10
  20. package/Badge/BadgeBase.d.ts +9 -0
  21. package/Badge/BadgeBase.js +21 -3
  22. package/Badge/BadgeContainer.js +2 -1
  23. package/Badge/BadgeDeleteButton.d.ts +1 -1
  24. package/Badge/BadgeOutlined.d.ts +1 -1
  25. package/Badge/BadgeOutlined.js +5 -80
  26. package/Badge/BadgeStandard.d.ts +1 -1
  27. package/Badge/BadgeStandard.js +5 -91
  28. package/Badge/BadgeStyled.d.ts +5 -0
  29. package/Badge/BadgeStyled.js +125 -0
  30. package/Badge/index.d.ts +2 -2
  31. package/Badge/index.js +3 -20
  32. package/Button/ButtonBase.js +8 -4
  33. package/Button/ButtonContainer.js +2 -0
  34. package/Button/ButtonIconWrapper.d.ts +1 -1
  35. package/Button/ButtonOutlined.d.ts +1 -1
  36. package/Button/ButtonOutlined.js +5 -80
  37. package/Button/ButtonPlain.d.ts +1 -1
  38. package/Button/ButtonPlain.js +5 -85
  39. package/Button/ButtonStandard.d.ts +1 -1
  40. package/Button/ButtonStandard.js +5 -97
  41. package/Button/ButtonStyled.d.ts +10 -0
  42. package/Button/ButtonStyled.js +205 -0
  43. package/Button/index.d.ts +5 -5
  44. package/Button/index.js +3 -24
  45. package/ButtonGroup/ButtonGroupContext.d.ts +21 -0
  46. package/ButtonGroup/ButtonGroupContext.js +11 -0
  47. package/ButtonGroup/index.d.ts +76 -0
  48. package/ButtonGroup/index.js +132 -0
  49. package/CHANGELOG.md +122 -0
  50. package/Calendar/CalendarCell.js +11 -4
  51. package/Calendar/CalendarComponent.d.ts +15 -4
  52. package/Calendar/CalendarComponent.js +150 -55
  53. package/Calendar/CalendarDayBadge.d.ts +1 -1
  54. package/Calendar/CalendarMonthCell.js +1 -11
  55. package/Calendar/CalendarWeekDayLabel.js +3 -1
  56. package/Calendar/CalendarWeekDaysBar.js +6 -1
  57. package/Calendar/CalendarYearCell.js +1 -16
  58. package/Calendar/CalendarYearsSelector.d.ts +0 -1
  59. package/Calendar/CalendarYearsSelector.js +33 -35
  60. package/Calendar/use-calendar.d.ts +1 -1
  61. package/Checkbox/CheckboxAsterisk.d.ts +13 -0
  62. package/{Autocomplete2/Autocomplete2TextField.js → Checkbox/CheckboxAsterisk.js} +24 -10
  63. package/Checkbox/CheckboxBox.d.ts +22 -0
  64. package/Checkbox/CheckboxBox.js +88 -0
  65. package/Checkbox/CheckboxContainer.d.ts +27 -0
  66. package/Checkbox/CheckboxContainer.js +38 -0
  67. package/Checkbox/CheckboxErrorText.d.ts +6 -0
  68. package/Checkbox/CheckboxErrorText.js +76 -0
  69. package/Checkbox/CheckboxIcon.d.ts +10 -0
  70. package/Checkbox/CheckboxIcon.js +57 -0
  71. package/Checkbox/CheckboxTextWrapper.d.ts +4 -0
  72. package/Checkbox/CheckboxTextWrapper.js +29 -0
  73. package/Checkbox/CheckboxWrapper.d.ts +4 -0
  74. package/Checkbox/CheckboxWrapper.js +29 -0
  75. package/Checkbox/index.d.ts +144 -0
  76. package/Checkbox/index.js +71 -0
  77. package/Checkbox/useCheckboxColor.d.ts +6 -0
  78. package/Checkbox/useCheckboxColor.js +33 -0
  79. package/ClickOutside/index.d.ts +6 -0
  80. package/ClickOutside/index.js +7 -2
  81. package/Color/Color.d.ts +4 -4
  82. package/Color/Color.js +9 -5
  83. package/Color/ColorGenerator.d.ts +5 -1
  84. package/CountryFlags/AC.js +5 -1
  85. package/CountryFlags/AD.js +5 -1
  86. package/CountryFlags/AE.js +5 -1
  87. package/CountryFlags/AF.js +5 -1
  88. package/CountryFlags/AG.js +5 -1
  89. package/CountryFlags/AI.js +5 -1
  90. package/CountryFlags/AL.js +5 -1
  91. package/CountryFlags/AM.js +5 -1
  92. package/CountryFlags/AO.js +5 -1
  93. package/CountryFlags/AQ.js +5 -1
  94. package/CountryFlags/AR.js +5 -1
  95. package/CountryFlags/AS.js +5 -1
  96. package/CountryFlags/AT.js +5 -1
  97. package/CountryFlags/AU.js +5 -1
  98. package/CountryFlags/AW.js +5 -1
  99. package/CountryFlags/AX.js +5 -1
  100. package/CountryFlags/AZ.js +5 -1
  101. package/CountryFlags/BA.js +5 -1
  102. package/CountryFlags/BB.js +5 -1
  103. package/CountryFlags/BD.js +5 -1
  104. package/CountryFlags/BE.js +5 -1
  105. package/CountryFlags/BF.js +5 -1
  106. package/CountryFlags/BG.js +5 -1
  107. package/CountryFlags/BH.js +5 -1
  108. package/CountryFlags/BI.js +5 -1
  109. package/CountryFlags/BJ.js +5 -1
  110. package/CountryFlags/BL.js +5 -1
  111. package/CountryFlags/BM.js +5 -1
  112. package/CountryFlags/BN.js +5 -1
  113. package/CountryFlags/BO.js +5 -1
  114. package/CountryFlags/BQ.js +5 -1
  115. package/CountryFlags/BR.js +5 -1
  116. package/CountryFlags/BS.js +5 -1
  117. package/CountryFlags/BT.js +5 -1
  118. package/CountryFlags/BV.js +5 -1
  119. package/CountryFlags/BW.js +5 -1
  120. package/CountryFlags/BY.js +5 -1
  121. package/CountryFlags/BZ.js +5 -1
  122. package/CountryFlags/CA.js +5 -1
  123. package/CountryFlags/CC.js +5 -1
  124. package/CountryFlags/CD.js +5 -1
  125. package/CountryFlags/CF.js +5 -1
  126. package/CountryFlags/CG.js +5 -1
  127. package/CountryFlags/CH.js +5 -1
  128. package/CountryFlags/CI.js +5 -1
  129. package/CountryFlags/CK.js +5 -1
  130. package/CountryFlags/CL.js +5 -1
  131. package/CountryFlags/CM.js +5 -1
  132. package/CountryFlags/CN.js +5 -1
  133. package/CountryFlags/CO.js +5 -1
  134. package/CountryFlags/CR.js +5 -1
  135. package/CountryFlags/CU.js +5 -1
  136. package/CountryFlags/CV.js +5 -1
  137. package/CountryFlags/CW.js +5 -1
  138. package/CountryFlags/CX.js +5 -1
  139. package/CountryFlags/CY.js +5 -1
  140. package/CountryFlags/CZ.js +5 -1
  141. package/CountryFlags/DE.js +5 -1
  142. package/CountryFlags/DJ.js +5 -1
  143. package/CountryFlags/DK.js +5 -1
  144. package/CountryFlags/DM.js +5 -1
  145. package/CountryFlags/DO.js +5 -1
  146. package/CountryFlags/DZ.js +5 -1
  147. package/CountryFlags/EC.js +5 -1
  148. package/CountryFlags/EE.js +5 -1
  149. package/CountryFlags/EG.js +5 -1
  150. package/CountryFlags/EH.js +5 -1
  151. package/CountryFlags/ER.js +5 -1
  152. package/CountryFlags/ES.js +5 -1
  153. package/CountryFlags/ET.js +5 -1
  154. package/CountryFlags/EU.js +5 -1
  155. package/CountryFlags/FI.js +5 -1
  156. package/CountryFlags/FJ.js +5 -1
  157. package/CountryFlags/FK.js +5 -1
  158. package/CountryFlags/FM.js +5 -1
  159. package/CountryFlags/FO.js +5 -1
  160. package/CountryFlags/FR.js +5 -1
  161. package/CountryFlags/GA.js +5 -1
  162. package/CountryFlags/GB.js +5 -1
  163. package/CountryFlags/GD.js +5 -1
  164. package/CountryFlags/GE.js +5 -1
  165. package/CountryFlags/GEAB.js +5 -1
  166. package/CountryFlags/GEOS.js +5 -1
  167. package/CountryFlags/GF.js +5 -1
  168. package/CountryFlags/GG.js +5 -1
  169. package/CountryFlags/GH.js +5 -1
  170. package/CountryFlags/GI.js +5 -1
  171. package/CountryFlags/GL.js +5 -1
  172. package/CountryFlags/GM.js +5 -1
  173. package/CountryFlags/GN.js +5 -1
  174. package/CountryFlags/GP.js +5 -1
  175. package/CountryFlags/GQ.js +5 -1
  176. package/CountryFlags/GR.js +5 -1
  177. package/CountryFlags/GS.js +5 -1
  178. package/CountryFlags/GT.js +5 -1
  179. package/CountryFlags/GU.js +5 -1
  180. package/CountryFlags/GW.js +5 -1
  181. package/CountryFlags/GY.js +5 -1
  182. package/CountryFlags/HK.js +5 -1
  183. package/CountryFlags/HM.js +5 -1
  184. package/CountryFlags/HN.js +5 -1
  185. package/CountryFlags/HR.js +5 -1
  186. package/CountryFlags/HT.js +5 -1
  187. package/CountryFlags/HU.js +5 -1
  188. package/CountryFlags/IC.js +5 -1
  189. package/CountryFlags/ID.js +5 -1
  190. package/CountryFlags/IE.js +5 -1
  191. package/CountryFlags/IL.js +5 -1
  192. package/CountryFlags/IM.js +5 -1
  193. package/CountryFlags/IN.js +5 -1
  194. package/CountryFlags/IO.js +5 -1
  195. package/CountryFlags/IQ.js +5 -1
  196. package/CountryFlags/IR.js +5 -1
  197. package/CountryFlags/IS.js +5 -1
  198. package/CountryFlags/IT.js +5 -1
  199. package/CountryFlags/JE.js +5 -1
  200. package/CountryFlags/JM.js +5 -1
  201. package/CountryFlags/JO.js +5 -1
  202. package/CountryFlags/JP.js +5 -1
  203. package/CountryFlags/KE.js +5 -1
  204. package/CountryFlags/KG.js +5 -1
  205. package/CountryFlags/KH.js +5 -1
  206. package/CountryFlags/KI.js +5 -1
  207. package/CountryFlags/KM.js +5 -1
  208. package/CountryFlags/KN.js +5 -1
  209. package/CountryFlags/KP.js +5 -1
  210. package/CountryFlags/KR.js +5 -1
  211. package/CountryFlags/KW.js +5 -1
  212. package/CountryFlags/KY.js +5 -1
  213. package/CountryFlags/KZ.js +5 -1
  214. package/CountryFlags/LA.js +5 -1
  215. package/CountryFlags/LB.js +5 -1
  216. package/CountryFlags/LC.js +5 -1
  217. package/CountryFlags/LI.js +5 -1
  218. package/CountryFlags/LK.js +5 -1
  219. package/CountryFlags/LR.js +5 -1
  220. package/CountryFlags/LS.js +5 -1
  221. package/CountryFlags/LT.js +5 -1
  222. package/CountryFlags/LU.js +5 -1
  223. package/CountryFlags/LV.js +5 -1
  224. package/CountryFlags/LY.js +5 -1
  225. package/CountryFlags/MA.js +5 -1
  226. package/CountryFlags/MC.js +5 -1
  227. package/CountryFlags/MD.js +5 -1
  228. package/CountryFlags/ME.js +5 -1
  229. package/CountryFlags/MF.js +5 -1
  230. package/CountryFlags/MG.js +5 -1
  231. package/CountryFlags/MH.js +5 -1
  232. package/CountryFlags/MK.js +5 -1
  233. package/CountryFlags/ML.js +5 -1
  234. package/CountryFlags/MM.js +5 -1
  235. package/CountryFlags/MN.js +5 -1
  236. package/CountryFlags/MO.js +5 -1
  237. package/CountryFlags/MP.js +5 -1
  238. package/CountryFlags/MQ.js +5 -1
  239. package/CountryFlags/MR.js +5 -1
  240. package/CountryFlags/MS.js +5 -1
  241. package/CountryFlags/MT.js +5 -1
  242. package/CountryFlags/MU.js +5 -1
  243. package/CountryFlags/MV.js +5 -1
  244. package/CountryFlags/MW.js +5 -1
  245. package/CountryFlags/MX.js +5 -1
  246. package/CountryFlags/MY.js +5 -1
  247. package/CountryFlags/MZ.js +5 -1
  248. package/CountryFlags/NA.js +5 -1
  249. package/CountryFlags/NC.js +5 -1
  250. package/CountryFlags/NE.js +5 -1
  251. package/CountryFlags/NF.js +5 -1
  252. package/CountryFlags/NG.js +5 -1
  253. package/CountryFlags/NI.js +5 -1
  254. package/CountryFlags/NL.js +5 -1
  255. package/CountryFlags/NO.js +5 -1
  256. package/CountryFlags/NP.js +5 -1
  257. package/CountryFlags/NR.js +5 -1
  258. package/CountryFlags/NU.js +5 -1
  259. package/CountryFlags/NZ.js +5 -1
  260. package/CountryFlags/OM.js +5 -1
  261. package/CountryFlags/PA.js +5 -1
  262. package/CountryFlags/PE.js +5 -1
  263. package/CountryFlags/PF.js +5 -1
  264. package/CountryFlags/PG.js +5 -1
  265. package/CountryFlags/PH.js +5 -1
  266. package/CountryFlags/PK.js +5 -1
  267. package/CountryFlags/PL.js +5 -1
  268. package/CountryFlags/PM.js +5 -1
  269. package/CountryFlags/PN.js +5 -1
  270. package/CountryFlags/PR.js +5 -1
  271. package/CountryFlags/PS.js +5 -1
  272. package/CountryFlags/PT.js +5 -1
  273. package/CountryFlags/PW.js +5 -1
  274. package/CountryFlags/PY.js +5 -1
  275. package/CountryFlags/QA.js +5 -1
  276. package/CountryFlags/RE.js +5 -1
  277. package/CountryFlags/RO.js +5 -1
  278. package/CountryFlags/RS.js +5 -1
  279. package/CountryFlags/RU.js +5 -1
  280. package/CountryFlags/RW.js +5 -1
  281. package/CountryFlags/SA.js +5 -1
  282. package/CountryFlags/SB.js +5 -1
  283. package/CountryFlags/SC.js +5 -1
  284. package/CountryFlags/SD.js +5 -1
  285. package/CountryFlags/SE.js +5 -1
  286. package/CountryFlags/SG.js +5 -1
  287. package/CountryFlags/SH.js +5 -1
  288. package/CountryFlags/SI.js +5 -1
  289. package/CountryFlags/SJ.js +5 -1
  290. package/CountryFlags/SK.js +5 -1
  291. package/CountryFlags/SL.js +5 -1
  292. package/CountryFlags/SM.js +5 -1
  293. package/CountryFlags/SN.js +5 -1
  294. package/CountryFlags/SO.js +5 -1
  295. package/CountryFlags/SR.js +5 -1
  296. package/CountryFlags/SS.js +5 -1
  297. package/CountryFlags/ST.js +5 -1
  298. package/CountryFlags/SV.js +5 -1
  299. package/CountryFlags/SX.js +5 -1
  300. package/CountryFlags/SY.js +5 -1
  301. package/CountryFlags/SZ.js +5 -1
  302. package/CountryFlags/TA.js +5 -1
  303. package/CountryFlags/TC.js +5 -1
  304. package/CountryFlags/TD.js +5 -1
  305. package/CountryFlags/TF.js +5 -1
  306. package/CountryFlags/TG.js +5 -1
  307. package/CountryFlags/TH.js +5 -1
  308. package/CountryFlags/TJ.js +5 -1
  309. package/CountryFlags/TK.js +5 -1
  310. package/CountryFlags/TL.js +5 -1
  311. package/CountryFlags/TM.js +5 -1
  312. package/CountryFlags/TN.js +5 -1
  313. package/CountryFlags/TO.js +5 -1
  314. package/CountryFlags/TR.js +5 -1
  315. package/CountryFlags/TT.js +5 -1
  316. package/CountryFlags/TV.js +5 -1
  317. package/CountryFlags/TW.js +5 -1
  318. package/CountryFlags/TZ.js +5 -1
  319. package/CountryFlags/UA.js +5 -1
  320. package/CountryFlags/UG.js +5 -1
  321. package/CountryFlags/UM.js +5 -1
  322. package/CountryFlags/US.js +5 -1
  323. package/CountryFlags/UY.js +5 -1
  324. package/CountryFlags/UZ.js +5 -1
  325. package/CountryFlags/Uknown.d.ts +7 -3
  326. package/CountryFlags/Uknown.js +9 -31
  327. package/CountryFlags/Unknown.d.ts +3 -0
  328. package/CountryFlags/Unknown.js +42 -0
  329. package/CountryFlags/VA.js +5 -1
  330. package/CountryFlags/VC.js +5 -1
  331. package/CountryFlags/VE.js +5 -1
  332. package/CountryFlags/VG.js +5 -1
  333. package/CountryFlags/VI.js +5 -1
  334. package/CountryFlags/VN.js +5 -1
  335. package/CountryFlags/VU.js +5 -1
  336. package/CountryFlags/WF.js +5 -1
  337. package/CountryFlags/WS.js +5 -1
  338. package/CountryFlags/XK.js +5 -1
  339. package/CountryFlags/YE.js +5 -1
  340. package/CountryFlags/YT.js +5 -1
  341. package/CountryFlags/ZA.js +5 -1
  342. package/CountryFlags/ZM.js +5 -1
  343. package/CountryFlags/ZW.js +5 -1
  344. package/CountryFlags/index.d.ts +2 -1
  345. package/CountryFlags/index.js +3 -1
  346. package/CountryFlags/isLabelled.d.ts +6 -0
  347. package/CountryFlags/isLabelled.js +7 -0
  348. package/DatePicker/index.d.ts +19 -6
  349. package/DatePicker/index.js +59 -12
  350. package/Grid/index.d.ts +60 -0
  351. package/Grid/index.js +43 -0
  352. package/Highlighted/index.d.ts +1 -1
  353. package/Highlighted/index.js +14 -10
  354. package/LoadingIndicator/LoadingOverlay.d.ts +11 -0
  355. package/LoadingIndicator/LoadingOverlay.js +63 -0
  356. package/LoadingIndicator/Spinner.d.ts +34 -5
  357. package/LoadingIndicator/Spinner.js +48 -37
  358. package/LoadingIndicator/SpinnerCircle.d.ts +14 -0
  359. package/LoadingIndicator/SpinnerCircle.js +34 -0
  360. package/LoadingIndicator/index.d.ts +8 -3
  361. package/LoadingIndicator/index.js +9 -15
  362. package/MaskedField/index.d.ts +3 -2
  363. package/MaskedField/index.js +7 -2
  364. package/MaskedField/templates.js +2 -0
  365. package/MaskedField/useMasked.js +9 -6
  366. package/Menu/MenuContainer.d.ts +8 -0
  367. package/Menu/MenuContainer.js +101 -30
  368. package/Menu/MenuItem.js +1 -1
  369. package/Menu/context.js +5 -0
  370. package/Modal/BaseModal/useDialogID.d.ts +6 -0
  371. package/Modal/BaseModal/useDialogID.js +12 -0
  372. package/Modal/ConfirmBox/ConfirmBoxContainer.js +5 -1
  373. package/Modal/ConfirmBox/index.js +2 -1
  374. package/Modal/Dialog/DialogInner.js +1 -1
  375. package/Modal/Dialog/index.js +12 -7
  376. package/Modal/Drawer/DrawerHeader.d.ts +20 -0
  377. package/Modal/Drawer/DrawerHeader.js +3 -3
  378. package/Modal/Drawer/DrawerInner.js +9 -1
  379. package/Modal/Drawer/index.d.ts +7 -0
  380. package/Modal/Drawer/index.js +12 -10
  381. package/Modal/MessageBox/MessageBoxContainer.js +1 -1
  382. package/Modal/MessageBox/index.js +2 -1
  383. package/PhoneField/CountryFlagComponent.js +2 -2
  384. package/PhoneField/UnknownFlag.d.ts +6 -3
  385. package/PhoneField/UnknownFlag.js +8 -31
  386. package/PhoneField/index.js +45 -55
  387. package/PhoneField/templates.js +13 -14
  388. package/PhoneField/usePhoneUtils.d.ts +15 -0
  389. package/PhoneField/usePhoneUtils.js +30 -37
  390. package/Popper/Popper.d.ts +28 -8
  391. package/Popper/usePopper.d.ts +21 -31
  392. package/README.md +27 -10
  393. package/Radio/RadioBox.d.ts +14 -0
  394. package/Radio/RadioBox.js +100 -0
  395. package/Radio/RadioContainer.d.ts +27 -0
  396. package/Radio/RadioContainer.js +38 -0
  397. package/Radio/RadioTextWrapper.d.ts +4 -0
  398. package/Radio/RadioTextWrapper.js +29 -0
  399. package/Radio/index.d.ts +64 -0
  400. package/Radio/index.js +49 -0
  401. package/Radio/useRadioColor.d.ts +6 -0
  402. package/Radio/useRadioColor.js +33 -0
  403. package/RadioGroup/RadioGroupAsterisk.d.ts +13 -0
  404. package/RadioGroup/RadioGroupAsterisk.js +53 -0
  405. package/RadioGroup/RadioGroupContainer.d.ts +4 -0
  406. package/RadioGroup/RadioGroupContainer.js +36 -0
  407. package/RadioGroup/RadioGroupContext.d.ts +20 -0
  408. package/RadioGroup/RadioGroupContext.js +11 -0
  409. package/RadioGroup/RadioGroupErrorText.d.ts +6 -0
  410. package/RadioGroup/RadioGroupErrorText.js +76 -0
  411. package/RadioGroup/RadioGroupItems.d.ts +9 -0
  412. package/RadioGroup/RadioGroupItems.js +30 -0
  413. package/RadioGroup/RadioGroupLegend.d.ts +4 -0
  414. package/RadioGroup/RadioGroupLegend.js +37 -0
  415. package/RadioGroup/index.d.ts +134 -0
  416. package/RadioGroup/index.js +62 -0
  417. package/Selectbox/index.d.ts +18 -2
  418. package/Selectbox/index.js +23 -7
  419. package/Stack/index.d.ts +62 -0
  420. package/Stack/index.js +38 -0
  421. package/Surface/SurfaceContainer.js +6 -0
  422. package/Surface/index.js +7 -3
  423. package/Swiper/Swiper.d.ts +28 -2
  424. package/Swiper/Swiper.js +233 -90
  425. package/Swiper/SwiperContainer.js +0 -2
  426. package/Swiper/SwiperSlidesRenderer.d.ts +8 -0
  427. package/Swiper/SwiperSlidesRenderer.js +17 -14
  428. package/Swiper/SwiperTrack.d.ts +8 -0
  429. package/Swiper/SwiperTrack.js +8 -3
  430. package/Swiper/SwiperWrapper.js +9 -1
  431. package/Switch/SwitchContainer.d.ts +1 -1
  432. package/Switch/SwitchContainer.js +5 -5
  433. package/Switch/SwitchDot.js +13 -53
  434. package/Switch/SwitchToggleWrapper.d.ts +1 -1
  435. package/Switch/SwitchToggleWrapper.js +5 -6
  436. package/Switch/SwitchTrack.js +5 -41
  437. package/Switch/index.d.ts +4 -4
  438. package/Switch/index.js +21 -11
  439. package/Switch/useSwitchColor.d.ts +7 -0
  440. package/Switch/useSwitchColor.js +33 -0
  441. package/Table/Table.d.ts +6 -0
  442. package/Table/Table.js +7 -62
  443. package/Table/TableBody.d.ts +1 -1
  444. package/Table/TableBody.js +4 -2
  445. package/Table/TableCaption.d.ts +2 -2
  446. package/Table/TableCaption.js +2 -3
  447. package/Table/TableCell.js +2 -5
  448. package/Table/TableFooter.js +8 -7
  449. package/Table/TableHeader.js +6 -2
  450. package/Table/TableHeaderCell.js +8 -9
  451. package/Table/TableRow.js +1 -5
  452. package/TextArea/TextAreaIconWrapper.d.ts +1 -1
  453. package/TextArea/TextAreaInput.js +2 -0
  454. package/TextArea/index.js +1 -1
  455. package/TextField/TextFieldInput.js +2 -0
  456. package/TextField/TextFieldInputWrapper.d.ts +2 -0
  457. package/TextField/TextFieldInputWrapper.js +12 -2
  458. package/TextField/index.js +1 -1
  459. package/ThemeProvider/createTheme.js +2 -3
  460. package/ThemeProvider/index.d.ts +19 -2
  461. package/Typography/Base.d.ts +1 -1
  462. package/Typography/Base.js +1 -1
  463. package/Typography/Blockquote.js +1 -1
  464. package/Typography/Del.js +2 -2
  465. package/Typography/H4.js +1 -1
  466. package/Typography/H5.js +2 -2
  467. package/Typography/H6.d.ts +4 -0
  468. package/Typography/H6.js +28 -0
  469. package/Typography/SectionDescription.js +0 -1
  470. package/Typography/SectionTitle.d.ts +4 -7
  471. package/Typography/SectionTitle.js +26 -8
  472. package/Typography/index.d.ts +27 -0
  473. package/Typography/index.js +35 -0
  474. package/package.json +2 -4
  475. package/utils/spacing.d.ts +11 -0
  476. package/utils/spacing.js +14 -0
  477. package/Autocomplete/OverrideMenuList.d.ts +0 -4
  478. package/Autocomplete/OverrideMenuList.js +0 -39
  479. package/Autocomplete2/Autocomplete2.d.ts +0 -12
  480. package/Autocomplete2/Autocomplete2.js +0 -83
  481. package/Autocomplete2/Autocomplete2TextField.d.ts +0 -7
  482. package/Autocomplete2/index.d.ts +0 -2
  483. package/Autocomplete2/index.js +0 -7
  484. package/CountryFlags/SwiperOverview.d.ts +0 -257
  485. package/CountryFlags/SwiperOverview.js +0 -524
@@ -25,11 +25,15 @@ const ButtonBase = (props, ref) => {
25
25
  IconWrapper: (overrides === null || overrides === void 0 ? void 0 : overrides.IconWrapper) || ButtonIconWrapper_1.default,
26
26
  Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || ButtonContainer_1.default,
27
27
  }), [overrides]);
28
- if (iconOnly &&
28
+ // Warn once when the combination appears, not on every render
29
+ const isIconOnlyWithIcons = Boolean(iconOnly) &&
29
30
  ((typeof startIcon !== 'undefined' && startIcon !== null) ||
30
- (typeof endIcon !== 'undefined' && endIcon !== null))) {
31
- console.warn('The «iconOnly» property should not be used simultaneously with «startIcon» and/or «endIcon»');
32
- }
31
+ (typeof endIcon !== 'undefined' && endIcon !== null));
32
+ react_1.default.useEffect(() => {
33
+ if (isIconOnlyWithIcons) {
34
+ console.warn('The «iconOnly» property should not be used simultaneously with «startIcon» and/or «endIcon»');
35
+ }
36
+ }, [isIconOnlyWithIcons]);
33
37
  return (react_1.default.createElement(overridesMap.Container, Object.assign({ type: typeof type === 'undefined' ? 'button' : type }, nativeProps, { color: color, iconOnly: iconOnly, ref: ref }),
34
38
  typeof startIcon !== 'undefined' && startIcon !== null && (react_1.default.createElement(overridesMap.IconWrapper, { position: "start" }, startIcon)),
35
39
  react_1.default.createElement(overridesMap.TextWrapper, { iconOnly: iconOnly }, children),
@@ -22,6 +22,8 @@ const StyledButton = styled_1.default.button `
22
22
  padding: 0.8em 1em;
23
23
  cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};
24
24
  font-size: 1em;
25
+ /* Buttons do not inherit the font by default */
26
+ font-family: inherit;
25
27
  border-width: 0;
26
28
  outline-style: solid;
27
29
  outline-color: transparent;
@@ -9,6 +9,6 @@ declare const _default: React.ForwardRefExoticComponent<React.HTMLAttributes<HTM
9
9
  /**
10
10
  * Icon position
11
11
  */
12
- readonly position: "start" | "end";
12
+ readonly position: "end" | "start";
13
13
  } & React.RefAttributes<HTMLSpanElement>>;
14
14
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ButtonBaseProps } from './ButtonBase';
2
+ import type { ButtonBaseProps } from './ButtonBase';
3
3
  export type ButtonOutlinedProps = ButtonBaseProps;
4
4
  declare const _default: React.ForwardRefExoticComponent<ButtonBaseProps & React.RefAttributes<HTMLButtonElement>>;
5
5
  export default _default;
@@ -1,87 +1,12 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  const react_1 = __importDefault(require("react"));
18
- const styled_1 = __importDefault(require("@emotion/styled"));
19
- const react_2 = require("@emotion/react");
20
- const Color_1 = __importDefault(require("../Color"));
21
- const ButtonBase_1 = __importDefault(require("./ButtonBase"));
22
- const StyledOutlinedButton = (0, styled_1.default)(ButtonBase_1.default) `
23
- color: ${({ theme, disabled, $color }) => {
24
- switch (true) {
25
- case disabled:
26
- return theme.color.textPrimary.alpha(0.4).toString();
27
- default:
28
- return $color.darken(30).toString();
29
- }
30
- }};
31
- border-color: ${({ theme, disabled, $color }) => {
32
- switch (true) {
33
- case disabled:
34
- return theme.color.surface.darken(80).alpha(0.4).toString();
35
- default:
36
- return $color.toString();
37
- }
38
- }};
39
- background-color: transparent;
40
- border-style: solid;
41
- border-width: 0.14em;
42
- ${({ disabled, $color, theme }) => !disabled &&
43
- (0, react_2.css) `
44
- &:hover {
45
- background-color: ${$color.darken(20).alpha(0.1).toString()};
46
- }
47
- &:active {
48
- background-color: ${$color.darken(50).alpha(0.3).toString()};
49
- }
50
- &:focus-visible {
51
- outline-color: ${$color.rgbString() === theme.color.accentPrimary.rgbString()
52
- ? theme.color.textPrimary.toString()
53
- : theme.color.accentPrimary.toString()};
54
- }
55
- `};
56
- `;
57
- const ButtonOutlined = (props, ref) => {
58
- const { children, disabled, color } = props, restProps = __rest(props, ["children", "disabled", "color"]);
59
- const theme = (0, react_2.useTheme)();
60
- const $color = react_1.default.useMemo(() => {
61
- switch (true) {
62
- case color === 'primary':
63
- return theme.color.accentPrimary;
64
- case color === 'secondary':
65
- return theme.color.accentSecondary;
66
- case typeof color === 'undefined':
67
- case color === 'default':
68
- return theme.color.textPrimary;
69
- case typeof color === 'string': {
70
- let c = theme.color.textPrimary;
71
- try {
72
- if (color) {
73
- c = Color_1.default.fromString(color);
74
- }
75
- }
76
- catch (err) {
77
- console.error(`invalid color value «${color}»`);
78
- }
79
- return c;
80
- }
81
- default:
82
- return theme.color.textPrimary;
83
- }
84
- }, [color, theme.color]);
85
- return (react_1.default.createElement(StyledOutlinedButton, Object.assign({ disabled: disabled, "$color": $color }, restProps, { ref: ref }), children));
86
- };
7
+ const ButtonStyled_1 = __importDefault(require("./ButtonStyled"));
8
+ /**
9
+ * The button with the `outlined` variant. Prefer `<Button variant="outlined">`
10
+ */
11
+ const ButtonOutlined = (props, ref) => react_1.default.createElement(ButtonStyled_1.default, Object.assign({}, props, { variant: "outlined", ref: ref }));
87
12
  exports.default = react_1.default.forwardRef(ButtonOutlined);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ButtonBaseProps } from './ButtonBase';
2
+ import type { ButtonBaseProps } from './ButtonBase';
3
3
  export type ButtonPlainProps = ButtonBaseProps;
4
4
  declare const _default: React.ForwardRefExoticComponent<ButtonBaseProps & React.RefAttributes<HTMLButtonElement>>;
5
5
  export default _default;
@@ -1,92 +1,12 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  const react_1 = __importDefault(require("react"));
18
- const styled_1 = __importDefault(require("@emotion/styled"));
19
- const react_2 = require("@emotion/react");
20
- const Color_1 = __importDefault(require("../Color"));
21
- const ButtonBase_1 = __importDefault(require("./ButtonBase"));
22
- const StyledPlainButton = (0, styled_1.default)(ButtonBase_1.default) `
23
- box-shadow: none;
24
- color: ${({ $color, disabled }) => {
25
- switch (true) {
26
- case disabled:
27
- return $color.alpha(0.4).toString();
28
- default:
29
- return $color.toString();
30
- }
31
- }};
32
- background: none;
33
- ${({ disabled, theme, $color }) => !disabled &&
34
- (0, react_2.css) `
35
- &:hover {
36
- color: ${$color.darken(30).toString()};
37
- background-color: ${$color.alpha(0.1).toString()};
38
- }
39
- &:active {
40
- color: ${$color.darken(80).toString()};
41
- background-color: ${$color.alpha(0.3).toString()};
42
- }
43
- &:focus-visible {
44
- outline-style: solid;
45
- outline-width: 0.14em;
46
- outline-color: ${$color.rgbString() === theme.color.accentPrimary.rgbString()
47
- ? theme.color.textPrimary.toString()
48
- : theme.color.accentPrimary.toString()};
49
- }
50
- `}
51
- `;
52
- const ButtonPlain = (props, ref) => {
53
- const { children, disabled, color } = props, restProps = __rest(props, ["children", "disabled", "color"]);
54
- const theme = (0, react_2.useTheme)();
55
- const { $color } = react_1.default.useMemo(() => {
56
- switch (true) {
57
- case color === 'primary':
58
- return {
59
- $color: theme.color.accentPrimary,
60
- };
61
- case color === 'secondary':
62
- return {
63
- $color: theme.color.accentSecondary,
64
- };
65
- case typeof color === 'undefined':
66
- case color === 'default':
67
- return {
68
- $color: theme.color.textPrimary,
69
- };
70
- case typeof color === 'string': {
71
- let $color = theme.color.textPrimary;
72
- try {
73
- if (color) {
74
- $color = Color_1.default.fromString(color);
75
- }
76
- }
77
- catch (err) {
78
- console.error(`invalid color value «${color}»`);
79
- }
80
- return {
81
- $color,
82
- };
83
- }
84
- default:
85
- return {
86
- $color: theme.color.textPrimary,
87
- };
88
- }
89
- }, [color, theme.color]);
90
- return (react_1.default.createElement(StyledPlainButton, Object.assign({ "$color": $color, disabled: disabled }, restProps, { ref: ref }), children));
91
- };
7
+ const ButtonStyled_1 = __importDefault(require("./ButtonStyled"));
8
+ /**
9
+ * The button with the `plain` variant. Prefer `<Button variant="plain">`
10
+ */
11
+ const ButtonPlain = (props, ref) => react_1.default.createElement(ButtonStyled_1.default, Object.assign({}, props, { variant: "plain", ref: ref }));
92
12
  exports.default = react_1.default.forwardRef(ButtonPlain);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { ButtonBaseProps } from './ButtonBase';
2
+ import type { ButtonBaseProps } from './ButtonBase';
3
3
  export type ButtonStandardProps = ButtonBaseProps;
4
4
  declare const _default: React.ForwardRefExoticComponent<ButtonBaseProps & React.RefAttributes<HTMLButtonElement>>;
5
5
  export default _default;
@@ -1,104 +1,12 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  const react_1 = __importDefault(require("react"));
18
- const styled_1 = __importDefault(require("@emotion/styled"));
19
- const react_2 = require("@emotion/react");
20
- const Color_1 = __importDefault(require("../Color"));
21
- const ButtonBase_1 = __importDefault(require("./ButtonBase"));
22
- const StyledStandardButton = (0, styled_1.default)(ButtonBase_1.default) `
23
- color: ${({ $color, disabled }) => {
24
- switch (true) {
25
- case disabled:
26
- return $color.alpha(0.4).toString();
27
- default:
28
- return $color.toString();
29
- }
30
- }};
31
- background-color: ${({ $background, disabled }) => {
32
- switch (true) {
33
- case disabled:
34
- return $background.darken(40).toString();
35
- default:
36
- return $background.darken(10).toString();
37
- }
38
- }};
39
-
40
- ${({ disabled, $background, theme }) => !disabled &&
41
- (0, react_2.css) `
42
- &:hover {
43
- background-color: ${$background.darken(30).toString()};
44
- }
45
- &:active {
46
- background-color: ${$background.darken(80).toString()};
47
- }
48
- &:focus-visible {
49
- outline-style: solid;
50
- outline-width: 0.14em;
51
- outline-color: ${$background.rgbString() === theme.color.accentPrimary.rgbString()
52
- ? theme.color.textPrimary.toString()
53
- : theme.color.accentPrimary.toString()};
54
- }
55
- `}
56
- `;
57
- const ButtonStandard = (props, ref) => {
58
- const { children, disabled, color } = props, restProps = __rest(props, ["children", "disabled", "color"]);
59
- const theme = (0, react_2.useTheme)();
60
- const { $background, $color } = react_1.default.useMemo(() => {
61
- switch (true) {
62
- case color === 'primary':
63
- return {
64
- $color: theme.color.accentPrimaryContrast,
65
- $background: theme.color.accentPrimary,
66
- };
67
- case color === 'secondary':
68
- return {
69
- $color: theme.color.accentSecondaryContrast,
70
- $background: theme.color.accentSecondary,
71
- };
72
- case typeof color === 'undefined':
73
- case color === 'default':
74
- return {
75
- $background: theme.color.surface,
76
- $color: theme.color.textPrimary,
77
- };
78
- case typeof color === 'string': {
79
- let $background = theme.color.surface;
80
- try {
81
- if (color) {
82
- $background = Color_1.default.fromString(color);
83
- }
84
- }
85
- catch (err) {
86
- console.error(`invalid color value «${color}»`);
87
- }
88
- return {
89
- $background,
90
- $color: ($background === null || $background === void 0 ? void 0 : $background.getContrast(theme.color.textPrimary.rgbString())) > 5
91
- ? theme.color.textPrimary
92
- : theme.color.surface,
93
- };
94
- }
95
- default:
96
- return {
97
- $background: theme.color.surface,
98
- $color: theme.color.textPrimary,
99
- };
100
- }
101
- }, [color, theme.color]);
102
- return (react_1.default.createElement(StyledStandardButton, Object.assign({ "$color": $color, "$background": $background, disabled: disabled }, restProps, { ref: ref }), children));
103
- };
7
+ const ButtonStyled_1 = __importDefault(require("./ButtonStyled"));
8
+ /**
9
+ * The button with the `standard` variant. Prefer `<Button variant="standard">`
10
+ */
11
+ const ButtonStandard = (props, ref) => react_1.default.createElement(ButtonStyled_1.default, Object.assign({}, props, { variant: "standard", ref: ref }));
104
12
  exports.default = react_1.default.forwardRef(ButtonStandard);
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { ButtonBaseProps } from './ButtonBase';
3
+ export type ButtonVariant = 'standard' | 'outlined' | 'plain';
4
+ export type ButtonStyledProps = ButtonBaseProps & {
5
+ readonly variant?: ButtonVariant;
6
+ };
7
+ declare const _default: React.ForwardRefExoticComponent<ButtonBaseProps & {
8
+ readonly variant?: ButtonVariant | undefined;
9
+ } & React.RefAttributes<HTMLButtonElement>>;
10
+ export default _default;
@@ -0,0 +1,205 @@
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 Color_1 = __importDefault(require("../Color"));
21
+ const ButtonBase_1 = __importDefault(require("./ButtonBase"));
22
+ const ButtonGroupContext_1 = __importDefault(require("../ButtonGroup/ButtonGroupContext"));
23
+ const parseColor = (color, fallback) => {
24
+ try {
25
+ return Color_1.default.fromString(color);
26
+ }
27
+ catch (err) {
28
+ console.error(`invalid color value «${color}»`);
29
+ return fallback;
30
+ }
31
+ };
32
+ /**
33
+ * Text and background colors of the standard variant
34
+ */
35
+ const getStandardColors = (color, theme) => {
36
+ switch (true) {
37
+ case color === 'primary':
38
+ return { $color: theme.color.accentPrimaryContrast, $background: theme.color.accentPrimary };
39
+ case color === 'secondary':
40
+ return {
41
+ $color: theme.color.accentSecondaryContrast,
42
+ $background: theme.color.accentSecondary,
43
+ };
44
+ case typeof color === 'undefined':
45
+ case color === 'default':
46
+ return { $background: theme.color.surface, $color: theme.color.textPrimary };
47
+ default: {
48
+ const $background = parseColor(String(color), theme.color.surface);
49
+ return {
50
+ $background,
51
+ $color: $background.getContrast(theme.color.textPrimary) > 5
52
+ ? theme.color.textPrimary
53
+ : theme.color.surface,
54
+ };
55
+ }
56
+ }
57
+ };
58
+ /**
59
+ * The main color of the outlined and plain variants (text and border)
60
+ */
61
+ const getAccentColor = (color, theme) => {
62
+ switch (true) {
63
+ case color === 'primary':
64
+ return theme.color.accentPrimary;
65
+ case color === 'secondary':
66
+ return theme.color.accentSecondary;
67
+ case typeof color === 'undefined':
68
+ case color === 'default':
69
+ return theme.color.textPrimary;
70
+ default:
71
+ return parseColor(String(color), theme.color.textPrimary);
72
+ }
73
+ };
74
+ const focusOutlineColor = (color, theme) => color.rgbString() === theme.color.accentPrimary.rgbString()
75
+ ? theme.color.textPrimary.toString()
76
+ : theme.color.accentPrimary.toString();
77
+ const standardStyles = ({ $color, $background, disabled, theme }) => (0, react_2.css) `
78
+ color: ${disabled ? $color.alpha(0.4).toString() : $color.toString()};
79
+ background-color: ${disabled
80
+ ? $background.darken(40).toString()
81
+ : $background.darken(10).toString()};
82
+
83
+ ${!disabled &&
84
+ (0, react_2.css) `
85
+ &:hover {
86
+ background-color: ${$background.darken(30).toString()};
87
+ }
88
+ &:active {
89
+ background-color: ${$background.darken(80).toString()};
90
+ }
91
+ &:focus-visible {
92
+ outline-style: solid;
93
+ outline-width: 0.14em;
94
+ outline-color: ${focusOutlineColor($background, theme)};
95
+ }
96
+ `}
97
+ `;
98
+ const outlinedStyles = ({ $color, disabled, theme }) => (0, react_2.css) `
99
+ color: ${disabled ? theme.color.textPrimary.alpha(0.4).toString() : $color.darken(30).toString()};
100
+ border-color: ${disabled
101
+ ? theme.color.surface.darken(80).alpha(0.4).toString()
102
+ : $color.toString()};
103
+ background-color: transparent;
104
+ border-style: solid;
105
+ border-width: 0.14em;
106
+
107
+ ${!disabled &&
108
+ (0, react_2.css) `
109
+ &:hover {
110
+ background-color: ${$color.darken(20).alpha(0.1).toString()};
111
+ }
112
+ &:active {
113
+ background-color: ${$color.darken(50).alpha(0.3).toString()};
114
+ }
115
+ &:focus-visible {
116
+ outline-color: ${focusOutlineColor($color, theme)};
117
+ }
118
+ `}
119
+ `;
120
+ const plainStyles = ({ $color, disabled, theme }) => (0, react_2.css) `
121
+ box-shadow: none;
122
+ color: ${disabled ? $color.alpha(0.4).toString() : $color.toString()};
123
+ background: none;
124
+
125
+ ${!disabled &&
126
+ (0, react_2.css) `
127
+ &:hover {
128
+ color: ${$color.darken(30).toString()};
129
+ background-color: ${$color.alpha(0.1).toString()};
130
+ }
131
+ &:active {
132
+ color: ${$color.darken(80).toString()};
133
+ background-color: ${$color.alpha(0.3).toString()};
134
+ }
135
+ &:focus-visible {
136
+ outline-style: solid;
137
+ outline-width: 0.14em;
138
+ outline-color: ${focusOutlineColor($color, theme)};
139
+ }
140
+ `}
141
+ `;
142
+ /**
143
+ * Inside the ButtonGroup all the variants have the same border width, so the buttons have the same size
144
+ * and the selected (standard) button does not shrink. Two adjacent standard buttons are separated by a thin line
145
+ */
146
+ const groupStyles = ({ $group, $variant, $color }) => $group &&
147
+ (0, react_2.css) `
148
+ border-style: solid;
149
+ border-width: 0.14em;
150
+ ${$variant !== 'outlined' &&
151
+ (0, react_2.css) `
152
+ border-color: transparent;
153
+ `}
154
+ ${$variant === 'standard' &&
155
+ (0, react_2.css) `
156
+ [data-group-variant='standard'] + & {
157
+ ${$group === 'vertical' ? 'border-top-color' : 'border-left-color'}: ${$color
158
+ .alpha(0.25)
159
+ .toString()};
160
+ }
161
+ `}
162
+ `;
163
+ /**
164
+ * All the variants are one styled component: switching the variant (e.g. a toggle button)
165
+ * must not remount the element, otherwise the focused button loses the focus
166
+ */
167
+ const StyledButton = (0, styled_1.default)(ButtonBase_1.default) `
168
+ ${props => {
169
+ switch (props.$variant) {
170
+ case 'outlined':
171
+ return outlinedStyles(props);
172
+ case 'plain':
173
+ return plainStyles(props);
174
+ case 'standard':
175
+ default:
176
+ return standardStyles(props);
177
+ }
178
+ }}
179
+ ${groupStyles}
180
+ `;
181
+ const ButtonStyled = (props, ref) => {
182
+ const group = react_1.default.useContext(ButtonGroupContext_1.default);
183
+ const { children, onClick } = props, buttonProps = __rest(props, ["children", "onClick"]);
184
+ const buttonValue = typeof buttonProps.value !== 'undefined' ? String(buttonProps.value) : undefined;
185
+ const isSelectable = Boolean((group === null || group === void 0 ? void 0 : group.selectable) && typeof buttonValue !== 'undefined');
186
+ const isSelected = isSelectable && Boolean(group === null || group === void 0 ? void 0 : group.isSelected(String(buttonValue)));
187
+ // Inside the ButtonGroup the own props of the button win over the props of the group
188
+ const { disabled = group === null || group === void 0 ? void 0 : group.disabled, color = isSelected ? group === null || group === void 0 ? void 0 : group.selectedColor : group === null || group === void 0 ? void 0 : group.color, variant = group ? (isSelected ? 'standard' : group.variant) : 'standard' } = buttonProps, restProps = __rest(buttonProps, ["disabled", "color", "variant"]);
189
+ const theme = (0, react_2.useTheme)();
190
+ const handleClick = event => {
191
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
192
+ if (isSelectable && !event.defaultPrevented && group) {
193
+ group.toggle(String(buttonValue));
194
+ }
195
+ };
196
+ const { $color, $background } = react_1.default.useMemo(() => {
197
+ if (variant === 'standard') {
198
+ return getStandardColors(color, theme);
199
+ }
200
+ const accent = getAccentColor(color, theme);
201
+ return { $color: accent, $background: accent };
202
+ }, [color, variant, theme]);
203
+ return (react_1.default.createElement(StyledButton, Object.assign({ "$variant": variant, "$color": $color, "$background": $background, "$group": group === null || group === void 0 ? void 0 : group.orientation, "data-group-variant": group ? variant : undefined, disabled: disabled, "aria-pressed": isSelectable ? isSelected : undefined }, restProps, { onClick: handleClick, ref: ref }), children));
204
+ };
205
+ exports.default = react_1.default.forwardRef(ButtonStyled);
package/Button/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import React from 'react';
2
- import { ButtonStandardProps } from './ButtonStandard';
3
- import { ButtonOutlinedProps } from './ButtonOutlined';
4
- import { ButtonPlainProps } from './ButtonPlain';
2
+ import type { ButtonStandardProps } from './ButtonStandard';
3
+ import type { ButtonOutlinedProps } from './ButtonOutlined';
4
+ import type { ButtonPlainProps } from './ButtonPlain';
5
5
  export type ButtonProps = (ButtonStandardProps | ButtonOutlinedProps | ButtonPlainProps) & {
6
6
  /**
7
7
  * Button style variant\
8
- * Allowed variants: `standard` ,`outlined` or `plain`\
8
+ * Allowed variants: `standard`, `outlined` or `plain`\
9
9
  * \
10
10
  * **Default**: `standard`
11
11
  */
@@ -14,7 +14,7 @@ export type ButtonProps = (ButtonStandardProps | ButtonOutlinedProps | ButtonPla
14
14
  declare const _default: React.ForwardRefExoticComponent<import("./ButtonBase").ButtonBaseProps & {
15
15
  /**
16
16
  * Button style variant\
17
- * Allowed variants: `standard` ,`outlined` or `plain`\
17
+ * Allowed variants: `standard`, `outlined` or `plain`\
18
18
  * \
19
19
  * **Default**: `standard`
20
20
  */
package/Button/index.js CHANGED
@@ -1,31 +1,10 @@
1
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
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
14
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
6
  const react_1 = __importDefault(require("react"));
18
- const ButtonStandard_1 = __importDefault(require("./ButtonStandard"));
19
- const ButtonOutlined_1 = __importDefault(require("./ButtonOutlined"));
20
- const ButtonPlain_1 = __importDefault(require("./ButtonPlain"));
21
- const Button = (props, ref) => {
22
- const { variant } = props, buttonProps = __rest(props, ["variant"]);
23
- if (variant === 'outlined') {
24
- return react_1.default.createElement(ButtonOutlined_1.default, Object.assign({}, buttonProps, { ref: ref }));
25
- }
26
- if (variant === 'plain') {
27
- return react_1.default.createElement(ButtonPlain_1.default, Object.assign({}, buttonProps, { ref: ref }));
28
- }
29
- return react_1.default.createElement(ButtonStandard_1.default, Object.assign({}, buttonProps, { ref: ref }));
30
- };
7
+ const ButtonStyled_1 = __importDefault(require("./ButtonStyled"));
8
+ // One component for all the variants, so changing the variant does not remount the button
9
+ const Button = (props, ref) => (react_1.default.createElement(ButtonStyled_1.default, Object.assign({}, props, { ref: ref })));
31
10
  exports.default = react_1.default.forwardRef(Button);
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ButtonVariant } from '../Button/ButtonStyled';
3
+ export type ButtonGroupOrientation = 'horizontal' | 'vertical';
4
+ export type ButtonGroupContextValue = {
5
+ readonly variant: ButtonVariant;
6
+ readonly color?: string;
7
+ readonly selectedColor: string;
8
+ readonly disabled?: boolean;
9
+ readonly orientation: ButtonGroupOrientation;
10
+ /**
11
+ * `true` when the group has the selection (value, defaultValue or onChange is passed)
12
+ */
13
+ readonly selectable: boolean;
14
+ readonly isSelected: (value: string) => boolean;
15
+ readonly toggle: (value: string) => void;
16
+ };
17
+ /**
18
+ * Buttons inside the ButtonGroup read the common props and the selection from this context
19
+ */
20
+ declare const ButtonGroupContext: React.Context<ButtonGroupContextValue | null>;
21
+ export default ButtonGroupContext;