@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,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;
@@ -0,0 +1,11 @@
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
+ /**
8
+ * Buttons inside the ButtonGroup read the common props and the selection from this context
9
+ */
10
+ const ButtonGroupContext = react_1.default.createContext(null);
11
+ exports.default = ButtonGroupContext;
@@ -0,0 +1,76 @@
1
+ import React from 'react';
2
+ import type { ButtonVariant } from '../Button/ButtonStyled';
3
+ import { ButtonGroupOrientation } from './ButtonGroupContext';
4
+ export type { ButtonGroupOrientation };
5
+ type ButtonGroupSelectionSingle = {
6
+ /**
7
+ * Only one button can be selected
8
+ */
9
+ readonly multiple?: false;
10
+ /**
11
+ * The value of the selected button (controlled)
12
+ */
13
+ readonly value?: string | null;
14
+ /**
15
+ * The value of the initially selected button (uncontrolled)
16
+ */
17
+ readonly defaultValue?: string | null;
18
+ /**
19
+ * Called with the value of the new selected button
20
+ */
21
+ readonly onChange?: (value: string | null) => void;
22
+ };
23
+ type ButtonGroupSelectionMultiple = {
24
+ /**
25
+ * Several buttons can be selected
26
+ */
27
+ readonly multiple: true;
28
+ /**
29
+ * The values of the selected buttons (controlled)
30
+ */
31
+ readonly value?: readonly string[];
32
+ /**
33
+ * The values of the initially selected buttons (uncontrolled)
34
+ */
35
+ readonly defaultValue?: readonly string[];
36
+ /**
37
+ * Called with the values of the selected buttons
38
+ */
39
+ readonly onChange?: (value: string[]) => void;
40
+ };
41
+ export type ButtonGroupProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue' | 'color'> & (ButtonGroupSelectionSingle | ButtonGroupSelectionMultiple) & {
42
+ /**
43
+ * The variant of the buttons. In the selection mode — of the not selected buttons\
44
+ * **Default:** `outlined`
45
+ */
46
+ readonly variant?: ButtonVariant;
47
+ /**
48
+ * The color of the buttons. In the selection mode — of the not selected buttons\
49
+ * **Default:** `default`
50
+ */
51
+ readonly color?: 'default' | 'primary' | 'secondary' | string;
52
+ /**
53
+ * The color of the selected buttons. The selected button is always the `standard` variant\
54
+ * **Default:** `primary`
55
+ */
56
+ readonly selectedColor?: 'default' | 'primary' | 'secondary' | string;
57
+ /**
58
+ * Disables all the buttons
59
+ */
60
+ readonly disabled?: boolean;
61
+ /**
62
+ * **Default:** `horizontal`
63
+ */
64
+ readonly orientation?: ButtonGroupOrientation;
65
+ /**
66
+ * The group takes the full width, the buttons share it equally
67
+ */
68
+ readonly fullWidth?: boolean;
69
+ /**
70
+ * Single selection only: clicking the selected button clears the selection\
71
+ * **Default:** `false`
72
+ */
73
+ readonly deselectable?: boolean;
74
+ };
75
+ declare const _default: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
76
+ export default _default;
@@ -0,0 +1,132 @@
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 ButtonGroupContext_1 = __importDefault(require("./ButtonGroupContext"));
21
+ /**
22
+ * The buttons are glued: the inner corners are square and the borders overlap.
23
+ * `:not(...)` raises the specificity above the own styles of the button.
24
+ * `-of-type`, not `-child`: with SSR emotion inserts <style> elements between the children
25
+ */
26
+ const StyledGroup = styled_1.default.div `
27
+ display: ${({ $fullWidth }) => ($fullWidth ? 'flex' : 'inline-flex')};
28
+ flex-direction: ${({ $orientation }) => ($orientation === 'vertical' ? 'column' : 'row')};
29
+ vertical-align: middle;
30
+
31
+ & > * {
32
+ position: relative;
33
+ }
34
+
35
+ & > *:hover,
36
+ & > [aria-pressed='true'] {
37
+ z-index: 1;
38
+ }
39
+
40
+ & > *:focus-visible {
41
+ z-index: 2;
42
+ }
43
+
44
+ ${({ $orientation }) => $orientation === 'vertical'
45
+ ? (0, react_2.css) `
46
+ & > *:not(:first-of-type) {
47
+ margin-top: -0.14em;
48
+ border-top-left-radius: 0;
49
+ border-top-right-radius: 0;
50
+ }
51
+ & > *:not(:last-of-type) {
52
+ border-bottom-left-radius: 0;
53
+ border-bottom-right-radius: 0;
54
+ }
55
+ `
56
+ : (0, react_2.css) `
57
+ & > *:not(:first-of-type) {
58
+ margin-left: -0.14em;
59
+ border-top-left-radius: 0;
60
+ border-bottom-left-radius: 0;
61
+ }
62
+ & > *:not(:last-of-type) {
63
+ border-top-right-radius: 0;
64
+ border-bottom-right-radius: 0;
65
+ }
66
+ `}
67
+
68
+ ${({ $fullWidth, $orientation }) => $fullWidth &&
69
+ (0, react_2.css) `
70
+ & > * {
71
+ ${$orientation === 'vertical' ? 'width: 100%;' : 'flex: 1 1 0; justify-content: center;'}
72
+ }
73
+ `}
74
+ `;
75
+ const toArray = (value) => {
76
+ if (typeof value === 'undefined' || value === null) {
77
+ return [];
78
+ }
79
+ return typeof value === 'string' ? [value] : value;
80
+ };
81
+ const ButtonGroup = (props, ref) => {
82
+ const { children, multiple, value, defaultValue, onChange, variant = 'outlined', color, selectedColor = 'primary', disabled, orientation = 'horizontal', fullWidth = false, deselectable = false } = props, nativeProps = __rest(props, ["children", "multiple", "value", "defaultValue", "onChange", "variant", "color", "selectedColor", "disabled", "orientation", "fullWidth", "deselectable"]);
83
+ const selectable = typeof value !== 'undefined' ||
84
+ typeof defaultValue !== 'undefined' ||
85
+ typeof onChange !== 'undefined';
86
+ const isControlled = typeof value !== 'undefined';
87
+ const [internalValue, setInternalValue] = react_1.default.useState(() => toArray(defaultValue));
88
+ const selected = isControlled ? toArray(value) : internalValue;
89
+ // The latest values for the toggle callback, so the context value does not change on every render
90
+ const latest = react_1.default.useRef({ selected, multiple, deselectable, isControlled, onChange });
91
+ latest.current = { selected, multiple, deselectable, isControlled, onChange };
92
+ const toggle = react_1.default.useCallback((buttonValue) => {
93
+ var _a;
94
+ const { selected, multiple, deselectable, isControlled, onChange } = latest.current;
95
+ const isSelected = selected.includes(buttonValue);
96
+ let next;
97
+ if (multiple) {
98
+ next = isSelected
99
+ ? selected.filter(item => item !== buttonValue)
100
+ : [...selected, buttonValue];
101
+ }
102
+ else {
103
+ if (isSelected && !deselectable) {
104
+ return;
105
+ }
106
+ next = isSelected ? [] : [buttonValue];
107
+ }
108
+ if (!isControlled) {
109
+ setInternalValue(next);
110
+ }
111
+ if (multiple) {
112
+ onChange === null || onChange === void 0 ? void 0 : onChange([...next]);
113
+ }
114
+ else {
115
+ onChange === null || onChange === void 0 ? void 0 : onChange((_a = next[0]) !== null && _a !== void 0 ? _a : null);
116
+ }
117
+ }, []);
118
+ const selectedKey = selected.join('\u0000');
119
+ const contextValue = react_1.default.useMemo(() => ({
120
+ variant,
121
+ color,
122
+ selectedColor,
123
+ disabled,
124
+ orientation,
125
+ selectable,
126
+ isSelected: buttonValue => selectedKey !== '' && selectedKey.split('\u0000').includes(buttonValue),
127
+ toggle,
128
+ }), [variant, color, selectedColor, disabled, orientation, selectable, selectedKey, toggle]);
129
+ return (react_1.default.createElement(ButtonGroupContext_1.default.Provider, { value: contextValue },
130
+ react_1.default.createElement(StyledGroup, Object.assign({ role: "group" }, nativeProps, { "$orientation": orientation, "$fullWidth": fullWidth, ref: ref }), children)));
131
+ };
132
+ exports.default = react_1.default.forwardRef(ButtonGroup);