@via-profit/ui-kit 0.1.0-rc.2 → 0.1.0-rc.21

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 (705) hide show
  1. package/Autocomplete/index.d.ts +46 -0
  2. package/Autocomplete/index.js +187 -0
  3. package/Autocomplete/popper-options.d.ts +4 -0
  4. package/Autocomplete/popper-options.js +33 -0
  5. package/Button/ButtonBase.d.ts +62 -0
  6. package/Button/ButtonBase.js +36 -0
  7. package/Button/ButtonContainer.d.ts +36 -0
  8. package/Button/ButtonContainer.js +56 -0
  9. package/Button/ButtonIconWrapper.d.ts +14 -0
  10. package/Button/ButtonIconWrapper.js +34 -0
  11. package/Button/ButtonOutlined.d.ts +5 -0
  12. package/Button/ButtonOutlined.js +87 -0
  13. package/Button/ButtonPlain.d.ts +5 -0
  14. package/Button/ButtonPlain.js +90 -0
  15. package/Button/ButtonStandard.d.ts +5 -0
  16. package/Button/ButtonStandard.js +110 -0
  17. package/Button/ButtonTextWrapper.d.ts +29 -0
  18. package/Button/ButtonTextWrapper.js +35 -0
  19. package/Button/index.d.ts +23 -0
  20. package/Button/index.js +31 -0
  21. package/CHANGELOG.md +0 -0
  22. package/Calendar/CalendarBottomBar.d.ts +4 -0
  23. package/Calendar/CalendarBottomBar.js +28 -0
  24. package/Calendar/CalendarCell.d.ts +8 -0
  25. package/Calendar/CalendarCell.js +59 -0
  26. package/Calendar/CalendarDateContainer.d.ts +6 -0
  27. package/Calendar/CalendarDateContainer.js +13 -0
  28. package/Calendar/CalendarEmptyCell.d.ts +4 -0
  29. package/Calendar/CalendarEmptyCell.js +29 -0
  30. package/Calendar/CalendarMonthControl.d.ts +6 -0
  31. package/Calendar/CalendarMonthControl.js +49 -0
  32. package/Calendar/CalendarPaper.d.ts +6 -0
  33. package/Calendar/CalendarPaper.js +19 -0
  34. package/Calendar/CalendarTopBar.d.ts +4 -0
  35. package/Calendar/CalendarTopBar.js +30 -0
  36. package/Calendar/CalendarWeekDayLabel.d.ts +6 -0
  37. package/Calendar/CalendarWeekDayLabel.js +17 -0
  38. package/Calendar/CalendarWeekDaysBar.d.ts +10 -0
  39. package/Calendar/CalendarWeekDaysBar.js +32 -0
  40. package/Calendar/CalendarWeekRow.d.ts +6 -0
  41. package/Calendar/CalendarWeekRow.js +14 -0
  42. package/Calendar/IconChevronLeft.d.ts +3 -0
  43. package/Calendar/IconChevronLeft.js +9 -0
  44. package/Calendar/IconChevronRight.d.ts +3 -0
  45. package/Calendar/IconChevronRight.js +9 -0
  46. package/Calendar/index.d.ts +18 -0
  47. package/Calendar/index.js +166 -0
  48. package/Calendar/use-calendar.d.ts +50 -0
  49. package/Calendar/use-calendar.js +197 -0
  50. package/Color/index.d.ts +113 -0
  51. package/Color/index.js +444 -0
  52. package/CountryFlags/AC.d.ts +3 -0
  53. package/CountryFlags/AC.js +53 -0
  54. package/CountryFlags/AD.d.ts +3 -0
  55. package/CountryFlags/AD.js +39 -0
  56. package/CountryFlags/AE.d.ts +3 -0
  57. package/CountryFlags/AE.js +32 -0
  58. package/CountryFlags/AF.d.ts +3 -0
  59. package/CountryFlags/AF.js +33 -0
  60. package/CountryFlags/AG.d.ts +3 -0
  61. package/CountryFlags/AG.js +35 -0
  62. package/CountryFlags/AI.d.ts +3 -0
  63. package/CountryFlags/AI.js +37 -0
  64. package/CountryFlags/AL.d.ts +3 -0
  65. package/CountryFlags/AL.js +35 -0
  66. package/CountryFlags/AM.d.ts +3 -0
  67. package/CountryFlags/AM.js +31 -0
  68. package/CountryFlags/AO.d.ts +3 -0
  69. package/CountryFlags/AO.js +35 -0
  70. package/CountryFlags/AQ.d.ts +3 -0
  71. package/CountryFlags/AQ.js +30 -0
  72. package/CountryFlags/AR.d.ts +3 -0
  73. package/CountryFlags/AR.js +31 -0
  74. package/CountryFlags/AS.d.ts +3 -0
  75. package/CountryFlags/AS.js +33 -0
  76. package/CountryFlags/AT.d.ts +3 -0
  77. package/CountryFlags/AT.js +30 -0
  78. package/CountryFlags/AU.d.ts +3 -0
  79. package/CountryFlags/AU.js +41 -0
  80. package/CountryFlags/AW.d.ts +3 -0
  81. package/CountryFlags/AW.js +33 -0
  82. package/CountryFlags/AX.d.ts +3 -0
  83. package/CountryFlags/AX.js +31 -0
  84. package/CountryFlags/AZ.d.ts +3 -0
  85. package/CountryFlags/AZ.js +34 -0
  86. package/CountryFlags/BA.d.ts +3 -0
  87. package/CountryFlags/BA.js +40 -0
  88. package/CountryFlags/BB.d.ts +3 -0
  89. package/CountryFlags/BB.js +32 -0
  90. package/CountryFlags/BD.d.ts +3 -0
  91. package/CountryFlags/BD.js +30 -0
  92. package/CountryFlags/BE.d.ts +3 -0
  93. package/CountryFlags/BE.js +31 -0
  94. package/CountryFlags/BF.d.ts +3 -0
  95. package/CountryFlags/BF.js +31 -0
  96. package/CountryFlags/BG.d.ts +3 -0
  97. package/CountryFlags/BG.js +31 -0
  98. package/CountryFlags/BH.d.ts +3 -0
  99. package/CountryFlags/BH.js +30 -0
  100. package/CountryFlags/BI.d.ts +3 -0
  101. package/CountryFlags/BI.js +36 -0
  102. package/CountryFlags/BJ.d.ts +3 -0
  103. package/CountryFlags/BJ.js +31 -0
  104. package/CountryFlags/BL.d.ts +3 -0
  105. package/CountryFlags/BL.js +39 -0
  106. package/CountryFlags/BM.d.ts +3 -0
  107. package/CountryFlags/BM.js +40 -0
  108. package/CountryFlags/BN.d.ts +3 -0
  109. package/CountryFlags/BN.js +34 -0
  110. package/CountryFlags/BO.d.ts +3 -0
  111. package/CountryFlags/BO.js +31 -0
  112. package/CountryFlags/BQ.d.ts +3 -0
  113. package/CountryFlags/BQ.js +33 -0
  114. package/CountryFlags/BR.d.ts +3 -0
  115. package/CountryFlags/BR.js +32 -0
  116. package/CountryFlags/BS.d.ts +3 -0
  117. package/CountryFlags/BS.js +32 -0
  118. package/CountryFlags/BT.d.ts +3 -0
  119. package/CountryFlags/BT.js +31 -0
  120. package/CountryFlags/BV.d.ts +3 -0
  121. package/CountryFlags/BV.js +33 -0
  122. package/CountryFlags/BW.d.ts +3 -0
  123. package/CountryFlags/BW.js +32 -0
  124. package/CountryFlags/BY.d.ts +3 -0
  125. package/CountryFlags/BY.js +35 -0
  126. package/CountryFlags/BZ.d.ts +3 -0
  127. package/CountryFlags/BZ.js +36 -0
  128. package/CountryFlags/CA.d.ts +3 -0
  129. package/CountryFlags/CA.js +31 -0
  130. package/CountryFlags/CC.d.ts +3 -0
  131. package/CountryFlags/CC.js +33 -0
  132. package/CountryFlags/CD.d.ts +3 -0
  133. package/CountryFlags/CD.js +32 -0
  134. package/CountryFlags/CF.d.ts +3 -0
  135. package/CountryFlags/CF.js +36 -0
  136. package/CountryFlags/CG.d.ts +3 -0
  137. package/CountryFlags/CG.js +31 -0
  138. package/CountryFlags/CH.d.ts +3 -0
  139. package/CountryFlags/CH.js +30 -0
  140. package/CountryFlags/CI.d.ts +3 -0
  141. package/CountryFlags/CI.js +31 -0
  142. package/CountryFlags/CK.d.ts +3 -0
  143. package/CountryFlags/CK.js +34 -0
  144. package/CountryFlags/CL.d.ts +3 -0
  145. package/CountryFlags/CL.js +32 -0
  146. package/CountryFlags/CM.d.ts +3 -0
  147. package/CountryFlags/CM.js +32 -0
  148. package/CountryFlags/CN.d.ts +3 -0
  149. package/CountryFlags/CN.js +31 -0
  150. package/CountryFlags/CO.d.ts +3 -0
  151. package/CountryFlags/CO.js +31 -0
  152. package/CountryFlags/CR.d.ts +3 -0
  153. package/CountryFlags/CR.js +31 -0
  154. package/CountryFlags/CU.d.ts +3 -0
  155. package/CountryFlags/CU.js +34 -0
  156. package/CountryFlags/CV.d.ts +3 -0
  157. package/CountryFlags/CV.js +33 -0
  158. package/CountryFlags/CW.d.ts +3 -0
  159. package/CountryFlags/CW.js +32 -0
  160. package/CountryFlags/CX.d.ts +3 -0
  161. package/CountryFlags/CX.js +35 -0
  162. package/CountryFlags/CY.d.ts +3 -0
  163. package/CountryFlags/CY.js +34 -0
  164. package/CountryFlags/CZ.d.ts +3 -0
  165. package/CountryFlags/CZ.js +31 -0
  166. package/CountryFlags/DE.d.ts +3 -0
  167. package/CountryFlags/DE.js +31 -0
  168. package/CountryFlags/DJ.d.ts +3 -0
  169. package/CountryFlags/DJ.js +32 -0
  170. package/CountryFlags/DK.d.ts +3 -0
  171. package/CountryFlags/DK.js +30 -0
  172. package/CountryFlags/DM.d.ts +3 -0
  173. package/CountryFlags/DM.js +39 -0
  174. package/CountryFlags/DO.d.ts +3 -0
  175. package/CountryFlags/DO.js +38 -0
  176. package/CountryFlags/DZ.d.ts +3 -0
  177. package/CountryFlags/DZ.js +33 -0
  178. package/CountryFlags/EC.d.ts +3 -0
  179. package/CountryFlags/EC.js +35 -0
  180. package/CountryFlags/EE.d.ts +3 -0
  181. package/CountryFlags/EE.js +31 -0
  182. package/CountryFlags/EG.d.ts +3 -0
  183. package/CountryFlags/EG.js +32 -0
  184. package/CountryFlags/EH.d.ts +3 -0
  185. package/CountryFlags/EH.js +34 -0
  186. package/CountryFlags/ER.d.ts +3 -0
  187. package/CountryFlags/ER.js +40 -0
  188. package/CountryFlags/ES.d.ts +3 -0
  189. package/CountryFlags/ES.js +34 -0
  190. package/CountryFlags/ET.d.ts +3 -0
  191. package/CountryFlags/ET.js +37 -0
  192. package/CountryFlags/EU.d.ts +3 -0
  193. package/CountryFlags/EU.js +30 -0
  194. package/CountryFlags/FI.d.ts +3 -0
  195. package/CountryFlags/FI.js +30 -0
  196. package/CountryFlags/FJ.d.ts +3 -0
  197. package/CountryFlags/FJ.js +36 -0
  198. package/CountryFlags/FK.d.ts +3 -0
  199. package/CountryFlags/FK.js +43 -0
  200. package/CountryFlags/FM.d.ts +3 -0
  201. package/CountryFlags/FM.js +31 -0
  202. package/CountryFlags/FO.d.ts +3 -0
  203. package/CountryFlags/FO.js +31 -0
  204. package/CountryFlags/FR.d.ts +3 -0
  205. package/CountryFlags/FR.js +31 -0
  206. package/CountryFlags/GA.d.ts +3 -0
  207. package/CountryFlags/GA.js +31 -0
  208. package/CountryFlags/GB.d.ts +3 -0
  209. package/CountryFlags/GB.js +36 -0
  210. package/CountryFlags/GD.d.ts +3 -0
  211. package/CountryFlags/GD.js +38 -0
  212. package/CountryFlags/GE.d.ts +3 -0
  213. package/CountryFlags/GE.js +31 -0
  214. package/CountryFlags/GEAB.d.ts +3 -0
  215. package/CountryFlags/GEAB.js +40 -0
  216. package/CountryFlags/GEOS.d.ts +3 -0
  217. package/CountryFlags/GEOS.js +31 -0
  218. package/CountryFlags/GF.d.ts +3 -0
  219. package/CountryFlags/GF.js +31 -0
  220. package/CountryFlags/GG.d.ts +3 -0
  221. package/CountryFlags/GG.js +31 -0
  222. package/CountryFlags/GH.d.ts +3 -0
  223. package/CountryFlags/GH.js +32 -0
  224. package/CountryFlags/GI.d.ts +3 -0
  225. package/CountryFlags/GI.js +34 -0
  226. package/CountryFlags/GL.d.ts +3 -0
  227. package/CountryFlags/GL.js +32 -0
  228. package/CountryFlags/GM.d.ts +3 -0
  229. package/CountryFlags/GM.js +32 -0
  230. package/CountryFlags/GN.d.ts +3 -0
  231. package/CountryFlags/GN.js +31 -0
  232. package/CountryFlags/GP.d.ts +3 -0
  233. package/CountryFlags/GP.js +31 -0
  234. package/CountryFlags/GQ.d.ts +3 -0
  235. package/CountryFlags/GQ.js +37 -0
  236. package/CountryFlags/GR.d.ts +3 -0
  237. package/CountryFlags/GR.js +35 -0
  238. package/CountryFlags/GS.d.ts +3 -0
  239. package/CountryFlags/GS.js +49 -0
  240. package/CountryFlags/GT.d.ts +3 -0
  241. package/CountryFlags/GT.js +33 -0
  242. package/CountryFlags/GU.d.ts +3 -0
  243. package/CountryFlags/GU.js +37 -0
  244. package/CountryFlags/GW.d.ts +3 -0
  245. package/CountryFlags/GW.js +32 -0
  246. package/CountryFlags/GY.d.ts +3 -0
  247. package/CountryFlags/GY.js +33 -0
  248. package/CountryFlags/HK.d.ts +3 -0
  249. package/CountryFlags/HK.js +32 -0
  250. package/CountryFlags/HM.d.ts +3 -0
  251. package/CountryFlags/HM.js +41 -0
  252. package/CountryFlags/HN.d.ts +3 -0
  253. package/CountryFlags/HN.js +31 -0
  254. package/CountryFlags/HR.d.ts +3 -0
  255. package/CountryFlags/HR.js +38 -0
  256. package/CountryFlags/HT.d.ts +3 -0
  257. package/CountryFlags/HT.js +36 -0
  258. package/CountryFlags/HU.d.ts +3 -0
  259. package/CountryFlags/HU.js +31 -0
  260. package/CountryFlags/IC.d.ts +3 -0
  261. package/CountryFlags/IC.js +31 -0
  262. package/CountryFlags/ID.d.ts +3 -0
  263. package/CountryFlags/ID.js +30 -0
  264. package/CountryFlags/IE.d.ts +3 -0
  265. package/CountryFlags/IE.js +31 -0
  266. package/CountryFlags/IL.d.ts +3 -0
  267. package/CountryFlags/IL.js +31 -0
  268. package/CountryFlags/IM.d.ts +3 -0
  269. package/CountryFlags/IM.js +31 -0
  270. package/CountryFlags/IN.d.ts +3 -0
  271. package/CountryFlags/IN.js +35 -0
  272. package/CountryFlags/IO.d.ts +3 -0
  273. package/CountryFlags/IO.js +41 -0
  274. package/CountryFlags/IQ.d.ts +3 -0
  275. package/CountryFlags/IQ.js +33 -0
  276. package/CountryFlags/IR.d.ts +3 -0
  277. package/CountryFlags/IR.js +34 -0
  278. package/CountryFlags/IS.d.ts +3 -0
  279. package/CountryFlags/IS.js +31 -0
  280. package/CountryFlags/IT.d.ts +3 -0
  281. package/CountryFlags/IT.js +31 -0
  282. package/CountryFlags/JE.d.ts +3 -0
  283. package/CountryFlags/JE.js +32 -0
  284. package/CountryFlags/JM.d.ts +3 -0
  285. package/CountryFlags/JM.js +32 -0
  286. package/CountryFlags/JO.d.ts +3 -0
  287. package/CountryFlags/JO.js +33 -0
  288. package/CountryFlags/JP.d.ts +3 -0
  289. package/CountryFlags/JP.js +30 -0
  290. package/CountryFlags/KE.d.ts +3 -0
  291. package/CountryFlags/KE.js +38 -0
  292. package/CountryFlags/KG.d.ts +3 -0
  293. package/CountryFlags/KG.js +35 -0
  294. package/CountryFlags/KH.d.ts +3 -0
  295. package/CountryFlags/KH.js +32 -0
  296. package/CountryFlags/KI.d.ts +3 -0
  297. package/CountryFlags/KI.js +35 -0
  298. package/CountryFlags/KM.d.ts +3 -0
  299. package/CountryFlags/KM.js +37 -0
  300. package/CountryFlags/KN.d.ts +3 -0
  301. package/CountryFlags/KN.js +34 -0
  302. package/CountryFlags/KP.d.ts +3 -0
  303. package/CountryFlags/KP.js +35 -0
  304. package/CountryFlags/KR.d.ts +3 -0
  305. package/CountryFlags/KR.js +38 -0
  306. package/CountryFlags/KW.d.ts +3 -0
  307. package/CountryFlags/KW.js +32 -0
  308. package/CountryFlags/KY.d.ts +3 -0
  309. package/CountryFlags/KY.js +41 -0
  310. package/CountryFlags/KZ.d.ts +3 -0
  311. package/CountryFlags/KZ.js +31 -0
  312. package/CountryFlags/LA.d.ts +3 -0
  313. package/CountryFlags/LA.js +32 -0
  314. package/CountryFlags/LB.d.ts +3 -0
  315. package/CountryFlags/LB.js +33 -0
  316. package/CountryFlags/LC.d.ts +3 -0
  317. package/CountryFlags/LC.js +32 -0
  318. package/CountryFlags/LI.d.ts +3 -0
  319. package/CountryFlags/LI.js +31 -0
  320. package/CountryFlags/LK.d.ts +3 -0
  321. package/CountryFlags/LK.js +36 -0
  322. package/CountryFlags/LR.d.ts +3 -0
  323. package/CountryFlags/LR.js +33 -0
  324. package/CountryFlags/LS.d.ts +3 -0
  325. package/CountryFlags/LS.js +33 -0
  326. package/CountryFlags/LT.d.ts +3 -0
  327. package/CountryFlags/LT.js +31 -0
  328. package/CountryFlags/LU.d.ts +3 -0
  329. package/CountryFlags/LU.js +31 -0
  330. package/CountryFlags/LV.d.ts +3 -0
  331. package/CountryFlags/LV.js +31 -0
  332. package/CountryFlags/LY.d.ts +3 -0
  333. package/CountryFlags/LY.js +34 -0
  334. package/CountryFlags/MA.d.ts +3 -0
  335. package/CountryFlags/MA.js +30 -0
  336. package/CountryFlags/MC.d.ts +3 -0
  337. package/CountryFlags/MC.js +30 -0
  338. package/CountryFlags/MD.d.ts +3 -0
  339. package/CountryFlags/MD.js +32 -0
  340. package/CountryFlags/ME.d.ts +3 -0
  341. package/CountryFlags/ME.js +32 -0
  342. package/CountryFlags/MF.d.ts +3 -0
  343. package/CountryFlags/MF.js +33 -0
  344. package/CountryFlags/MG.d.ts +3 -0
  345. package/CountryFlags/MG.js +31 -0
  346. package/CountryFlags/MH.d.ts +3 -0
  347. package/CountryFlags/MH.js +32 -0
  348. package/CountryFlags/MK.d.ts +3 -0
  349. package/CountryFlags/MK.js +33 -0
  350. package/CountryFlags/ML.d.ts +3 -0
  351. package/CountryFlags/ML.js +31 -0
  352. package/CountryFlags/MM.d.ts +3 -0
  353. package/CountryFlags/MM.js +32 -0
  354. package/CountryFlags/MN.d.ts +3 -0
  355. package/CountryFlags/MN.js +37 -0
  356. package/CountryFlags/MO.d.ts +3 -0
  357. package/CountryFlags/MO.js +34 -0
  358. package/CountryFlags/MP.d.ts +3 -0
  359. package/CountryFlags/MP.js +35 -0
  360. package/CountryFlags/MQ.d.ts +3 -0
  361. package/CountryFlags/MQ.js +32 -0
  362. package/CountryFlags/MR.d.ts +3 -0
  363. package/CountryFlags/MR.js +32 -0
  364. package/CountryFlags/MS.d.ts +3 -0
  365. package/CountryFlags/MS.js +40 -0
  366. package/CountryFlags/MT.d.ts +3 -0
  367. package/CountryFlags/MT.js +31 -0
  368. package/CountryFlags/MU.d.ts +3 -0
  369. package/CountryFlags/MU.js +32 -0
  370. package/CountryFlags/MV.d.ts +3 -0
  371. package/CountryFlags/MV.js +31 -0
  372. package/CountryFlags/MW.d.ts +3 -0
  373. package/CountryFlags/MW.js +32 -0
  374. package/CountryFlags/MX.d.ts +3 -0
  375. package/CountryFlags/MX.js +33 -0
  376. package/CountryFlags/MY.d.ts +3 -0
  377. package/CountryFlags/MY.js +33 -0
  378. package/CountryFlags/MZ.d.ts +3 -0
  379. package/CountryFlags/MZ.js +34 -0
  380. package/CountryFlags/NA.d.ts +3 -0
  381. package/CountryFlags/NA.js +33 -0
  382. package/CountryFlags/NC.d.ts +3 -0
  383. package/CountryFlags/NC.js +38 -0
  384. package/CountryFlags/NE.d.ts +3 -0
  385. package/CountryFlags/NE.js +32 -0
  386. package/CountryFlags/NF.d.ts +3 -0
  387. package/CountryFlags/NF.js +31 -0
  388. package/CountryFlags/NG.d.ts +3 -0
  389. package/CountryFlags/NG.js +31 -0
  390. package/CountryFlags/NI.d.ts +3 -0
  391. package/CountryFlags/NI.js +35 -0
  392. package/CountryFlags/NL.d.ts +3 -0
  393. package/CountryFlags/NL.js +31 -0
  394. package/CountryFlags/NO.d.ts +3 -0
  395. package/CountryFlags/NO.js +31 -0
  396. package/CountryFlags/NP.d.ts +3 -0
  397. package/CountryFlags/NP.js +34 -0
  398. package/CountryFlags/NR.d.ts +3 -0
  399. package/CountryFlags/NR.js +31 -0
  400. package/CountryFlags/NU.d.ts +3 -0
  401. package/CountryFlags/NU.js +53 -0
  402. package/CountryFlags/NZ.d.ts +3 -0
  403. package/CountryFlags/NZ.js +41 -0
  404. package/CountryFlags/OM.d.ts +3 -0
  405. package/CountryFlags/OM.js +34 -0
  406. package/CountryFlags/PA.d.ts +3 -0
  407. package/CountryFlags/PA.js +33 -0
  408. package/CountryFlags/PE.d.ts +3 -0
  409. package/CountryFlags/PE.js +31 -0
  410. package/CountryFlags/PF.d.ts +3 -0
  411. package/CountryFlags/PF.js +35 -0
  412. package/CountryFlags/PG.d.ts +3 -0
  413. package/CountryFlags/PG.js +33 -0
  414. package/CountryFlags/PH.d.ts +3 -0
  415. package/CountryFlags/PH.js +33 -0
  416. package/CountryFlags/PK.d.ts +3 -0
  417. package/CountryFlags/PK.js +34 -0
  418. package/CountryFlags/PL.d.ts +3 -0
  419. package/CountryFlags/PL.js +32 -0
  420. package/CountryFlags/PM.d.ts +3 -0
  421. package/CountryFlags/PM.js +32 -0
  422. package/CountryFlags/PN.d.ts +3 -0
  423. package/CountryFlags/PN.js +43 -0
  424. package/CountryFlags/PR.d.ts +3 -0
  425. package/CountryFlags/PR.js +33 -0
  426. package/CountryFlags/PS.d.ts +3 -0
  427. package/CountryFlags/PS.js +32 -0
  428. package/CountryFlags/PT.d.ts +3 -0
  429. package/CountryFlags/PT.js +33 -0
  430. package/CountryFlags/PW.d.ts +3 -0
  431. package/CountryFlags/PW.js +30 -0
  432. package/CountryFlags/PY.d.ts +3 -0
  433. package/CountryFlags/PY.js +33 -0
  434. package/CountryFlags/QA.d.ts +3 -0
  435. package/CountryFlags/QA.js +30 -0
  436. package/CountryFlags/RE.d.ts +3 -0
  437. package/CountryFlags/RE.js +32 -0
  438. package/CountryFlags/RO.d.ts +3 -0
  439. package/CountryFlags/RO.js +31 -0
  440. package/CountryFlags/RS.d.ts +3 -0
  441. package/CountryFlags/RS.js +35 -0
  442. package/CountryFlags/RU.d.ts +3 -0
  443. package/CountryFlags/RU.js +32 -0
  444. package/CountryFlags/RW.d.ts +3 -0
  445. package/CountryFlags/RW.js +32 -0
  446. package/CountryFlags/SA.d.ts +3 -0
  447. package/CountryFlags/SA.js +33 -0
  448. package/CountryFlags/SB.d.ts +3 -0
  449. package/CountryFlags/SB.js +33 -0
  450. package/CountryFlags/SC.d.ts +3 -0
  451. package/CountryFlags/SC.js +33 -0
  452. package/CountryFlags/SD.d.ts +3 -0
  453. package/CountryFlags/SD.js +32 -0
  454. package/CountryFlags/SE.d.ts +3 -0
  455. package/CountryFlags/SE.js +30 -0
  456. package/CountryFlags/SG.d.ts +3 -0
  457. package/CountryFlags/SG.js +33 -0
  458. package/CountryFlags/SH.d.ts +3 -0
  459. package/CountryFlags/SH.js +43 -0
  460. package/CountryFlags/SI.d.ts +3 -0
  461. package/CountryFlags/SI.js +34 -0
  462. package/CountryFlags/SJ.d.ts +3 -0
  463. package/CountryFlags/SJ.js +31 -0
  464. package/CountryFlags/SK.d.ts +3 -0
  465. package/CountryFlags/SK.js +35 -0
  466. package/CountryFlags/SL.d.ts +3 -0
  467. package/CountryFlags/SL.js +31 -0
  468. package/CountryFlags/SM.d.ts +3 -0
  469. package/CountryFlags/SM.js +35 -0
  470. package/CountryFlags/SN.d.ts +3 -0
  471. package/CountryFlags/SN.js +32 -0
  472. package/CountryFlags/SO.d.ts +3 -0
  473. package/CountryFlags/SO.js +30 -0
  474. package/CountryFlags/SR.d.ts +3 -0
  475. package/CountryFlags/SR.js +33 -0
  476. package/CountryFlags/SS.d.ts +3 -0
  477. package/CountryFlags/SS.js +34 -0
  478. package/CountryFlags/ST.d.ts +3 -0
  479. package/CountryFlags/ST.js +33 -0
  480. package/CountryFlags/SV.d.ts +3 -0
  481. package/CountryFlags/SV.js +34 -0
  482. package/CountryFlags/SX.d.ts +3 -0
  483. package/CountryFlags/SX.js +37 -0
  484. package/CountryFlags/SY.d.ts +3 -0
  485. package/CountryFlags/SY.js +33 -0
  486. package/CountryFlags/SZ.d.ts +3 -0
  487. package/CountryFlags/SZ.js +35 -0
  488. package/CountryFlags/TA.d.ts +3 -0
  489. package/CountryFlags/TA.js +47 -0
  490. package/CountryFlags/TC.d.ts +3 -0
  491. package/CountryFlags/TC.js +44 -0
  492. package/CountryFlags/TD.d.ts +3 -0
  493. package/CountryFlags/TD.js +31 -0
  494. package/CountryFlags/TF.d.ts +3 -0
  495. package/CountryFlags/TF.js +34 -0
  496. package/CountryFlags/TG.d.ts +3 -0
  497. package/CountryFlags/TG.js +33 -0
  498. package/CountryFlags/TH.d.ts +3 -0
  499. package/CountryFlags/TH.js +32 -0
  500. package/CountryFlags/TJ.d.ts +3 -0
  501. package/CountryFlags/TJ.js +33 -0
  502. package/CountryFlags/TK.d.ts +3 -0
  503. package/CountryFlags/TK.js +33 -0
  504. package/CountryFlags/TL.d.ts +3 -0
  505. package/CountryFlags/TL.js +32 -0
  506. package/CountryFlags/TM.d.ts +3 -0
  507. package/CountryFlags/TM.js +45 -0
  508. package/CountryFlags/TN.d.ts +3 -0
  509. package/CountryFlags/TN.js +33 -0
  510. package/CountryFlags/TO.d.ts +3 -0
  511. package/CountryFlags/TO.js +31 -0
  512. package/CountryFlags/TR.d.ts +3 -0
  513. package/CountryFlags/TR.js +30 -0
  514. package/CountryFlags/TT.d.ts +3 -0
  515. package/CountryFlags/TT.js +31 -0
  516. package/CountryFlags/TV.d.ts +3 -0
  517. package/CountryFlags/TV.js +36 -0
  518. package/CountryFlags/TW.d.ts +3 -0
  519. package/CountryFlags/TW.js +33 -0
  520. package/CountryFlags/TZ.d.ts +3 -0
  521. package/CountryFlags/TZ.js +32 -0
  522. package/CountryFlags/UA.d.ts +3 -0
  523. package/CountryFlags/UA.js +30 -0
  524. package/CountryFlags/UG.d.ts +3 -0
  525. package/CountryFlags/UG.js +35 -0
  526. package/CountryFlags/UM.d.ts +3 -0
  527. package/CountryFlags/UM.js +34 -0
  528. package/CountryFlags/US.d.ts +3 -0
  529. package/CountryFlags/US.js +34 -0
  530. package/CountryFlags/UY.d.ts +3 -0
  531. package/CountryFlags/UY.js +33 -0
  532. package/CountryFlags/UZ.d.ts +3 -0
  533. package/CountryFlags/UZ.js +35 -0
  534. package/CountryFlags/VA.d.ts +3 -0
  535. package/CountryFlags/VA.js +32 -0
  536. package/CountryFlags/VC.d.ts +3 -0
  537. package/CountryFlags/VC.js +32 -0
  538. package/CountryFlags/VE.d.ts +3 -0
  539. package/CountryFlags/VE.js +32 -0
  540. package/CountryFlags/VG.d.ts +3 -0
  541. package/CountryFlags/VG.js +45 -0
  542. package/CountryFlags/VI.d.ts +3 -0
  543. package/CountryFlags/VI.js +41 -0
  544. package/CountryFlags/VN.d.ts +3 -0
  545. package/CountryFlags/VN.js +30 -0
  546. package/CountryFlags/VU.d.ts +3 -0
  547. package/CountryFlags/VU.js +35 -0
  548. package/CountryFlags/WF.d.ts +3 -0
  549. package/CountryFlags/WF.js +33 -0
  550. package/CountryFlags/WS.d.ts +3 -0
  551. package/CountryFlags/WS.js +32 -0
  552. package/CountryFlags/XK.d.ts +3 -0
  553. package/CountryFlags/XK.js +32 -0
  554. package/CountryFlags/YE.d.ts +3 -0
  555. package/CountryFlags/YE.js +31 -0
  556. package/CountryFlags/YT.d.ts +3 -0
  557. package/CountryFlags/YT.js +35 -0
  558. package/CountryFlags/ZA.d.ts +3 -0
  559. package/CountryFlags/ZA.js +34 -0
  560. package/CountryFlags/ZM.d.ts +3 -0
  561. package/CountryFlags/ZM.js +33 -0
  562. package/CountryFlags/ZW.d.ts +3 -0
  563. package/CountryFlags/ZW.js +39 -0
  564. package/DatePicker/index.d.ts +3 -0
  565. package/DatePicker/index.js +8 -0
  566. package/ErrorBoundary/index.d.ts +19 -0
  567. package/ErrorBoundary/index.js +78 -0
  568. package/Image/index.d.ts +7 -0
  569. package/Image/index.js +45 -0
  570. package/MaskedField/index.d.ts +33 -0
  571. package/MaskedField/index.js +63 -0
  572. package/MaskedField/templates.d.ts +11 -0
  573. package/MaskedField/templates.js +81 -0
  574. package/MaskedField/useMasked.d.ts +18 -0
  575. package/MaskedField/useMasked.js +96 -0
  576. package/Menu/MenuItem.d.ts +10 -0
  577. package/Menu/MenuItem.js +47 -0
  578. package/Menu/MenuItemInner.d.ts +7 -0
  579. package/Menu/MenuItemInner.js +48 -0
  580. package/Menu/MenuWrapper.d.ts +10 -0
  581. package/Menu/MenuWrapper.js +76 -0
  582. package/Menu/index.d.ts +196 -0
  583. package/Menu/index.js +452 -0
  584. package/Menu/popper-options.d.ts +4 -0
  585. package/Menu/popper-options.js +33 -0
  586. package/Menu/reducer.d.ts +14 -0
  587. package/Menu/reducer.js +19 -0
  588. package/Modal/CloseIcon.d.ts +3 -0
  589. package/Modal/CloseIcon.js +37 -0
  590. package/Modal/ModalConfirmBox.d.ts +9 -0
  591. package/Modal/ModalConfirmBox.js +148 -0
  592. package/Modal/ModalDialog.d.ts +7 -0
  593. package/Modal/ModalDialog.js +99 -0
  594. package/Modal/ModalDrawer.d.ts +11 -0
  595. package/Modal/ModalDrawer.js +150 -0
  596. package/Modal/ModalMessageBox.d.ts +8 -0
  597. package/Modal/ModalMessageBox.js +147 -0
  598. package/Modal/index.d.ts +12 -0
  599. package/Modal/index.js +54 -0
  600. package/NoSSR/index.d.ts +7 -0
  601. package/NoSSR/index.js +15 -0
  602. package/PhoneField/CountryFlagComponent.d.ts +6 -0
  603. package/PhoneField/CountryFlagComponent.js +44 -0
  604. package/PhoneField/UnknownFlag.d.ts +3 -0
  605. package/PhoneField/UnknownFlag.js +34 -0
  606. package/PhoneField/index.d.ts +54 -0
  607. package/PhoneField/index.js +97 -0
  608. package/PhoneField/templates.d.ts +82 -0
  609. package/PhoneField/templates.js +45 -0
  610. package/PhoneField/usePhoneUtils.d.ts +69 -0
  611. package/PhoneField/usePhoneUtils.js +172 -0
  612. package/README.md +12 -10
  613. package/SelectBox/IconChevronDown.d.ts +3 -0
  614. package/SelectBox/IconChevronDown.js +9 -0
  615. package/SelectBox/SelectButton.d.ts +10 -0
  616. package/SelectBox/SelectButton.js +78 -0
  617. package/SelectBox/index.d.ts +40 -0
  618. package/SelectBox/index.js +188 -0
  619. package/SelectBox/popper-options.d.ts +4 -0
  620. package/SelectBox/popper-options.js +33 -0
  621. package/Surface/SurfaceContainer.d.ts +8 -0
  622. package/Surface/SurfaceContainer.js +39 -0
  623. package/Surface/SurfaceContent.d.ts +8 -0
  624. package/Surface/SurfaceContent.js +31 -0
  625. package/Surface/SurfaceHeader.d.ts +4 -0
  626. package/Surface/SurfaceHeader.js +30 -0
  627. package/Surface/SurfaceSubheader.d.ts +4 -0
  628. package/Surface/SurfaceSubheader.js +29 -0
  629. package/Surface/index.d.ts +62 -0
  630. package/Surface/index.js +61 -0
  631. package/Table/Table.d.ts +8 -0
  632. package/Table/Table.js +46 -0
  633. package/Table/TableBody.d.ts +4 -0
  634. package/Table/TableBody.js +30 -0
  635. package/Table/TableCaption.d.ts +4 -0
  636. package/Table/TableCaption.js +30 -0
  637. package/Table/TableCell.d.ts +4 -0
  638. package/Table/TableCell.js +31 -0
  639. package/Table/TableFooter.d.ts +4 -0
  640. package/Table/TableFooter.js +36 -0
  641. package/Table/TableHeader.d.ts +4 -0
  642. package/Table/TableHeader.js +30 -0
  643. package/Table/TableHeaderCell.d.ts +4 -0
  644. package/Table/TableHeaderCell.js +35 -0
  645. package/Table/TableRow.d.ts +4 -0
  646. package/Table/TableRow.js +30 -0
  647. package/Table/index.d.ts +18 -0
  648. package/Table/index.js +45 -0
  649. package/TextField/TextFieldContainer.d.ts +8 -0
  650. package/TextField/TextFieldContainer.js +52 -0
  651. package/TextField/TextFieldErrorText.d.ts +7 -0
  652. package/TextField/TextFieldErrorText.js +75 -0
  653. package/TextField/TextFieldIconWrapper.d.ts +18 -0
  654. package/TextField/TextFieldIconWrapper.js +73 -0
  655. package/TextField/TextFieldInput.d.ts +7 -0
  656. package/TextField/TextFieldInput.js +71 -0
  657. package/TextField/TextFieldInputWrapper.d.ts +14 -0
  658. package/TextField/TextFieldInputWrapper.js +76 -0
  659. package/TextField/TextFieldLabel.d.ts +7 -0
  660. package/TextField/TextFieldLabel.js +50 -0
  661. package/TextField/TextFieldLabelAsterisk.d.ts +13 -0
  662. package/TextField/TextFieldLabelAsterisk.js +51 -0
  663. package/TextField/index.d.ts +80 -0
  664. package/TextField/index.js +100 -0
  665. package/ThemeProvider/createTheme.d.ts +3 -0
  666. package/ThemeProvider/createTheme.js +46 -0
  667. package/ThemeProvider/index.d.ts +57 -0
  668. package/ThemeProvider/index.js +29 -0
  669. package/Typography/Base.d.ts +6 -0
  670. package/Typography/Base.js +12 -0
  671. package/Typography/Blockquote.d.ts +6 -0
  672. package/Typography/Blockquote.js +23 -0
  673. package/Typography/Del.d.ts +6 -0
  674. package/Typography/Del.js +11 -0
  675. package/Typography/Em.d.ts +6 -0
  676. package/Typography/Em.js +11 -0
  677. package/Typography/H1.d.ts +6 -0
  678. package/Typography/H1.js +12 -0
  679. package/Typography/H2.d.ts +6 -0
  680. package/Typography/H2.js +12 -0
  681. package/Typography/H3.d.ts +6 -0
  682. package/Typography/H3.js +12 -0
  683. package/Typography/H4.d.ts +6 -0
  684. package/Typography/H4.js +12 -0
  685. package/Typography/H5.d.ts +6 -0
  686. package/Typography/H5.js +12 -0
  687. package/Typography/List.d.ts +14 -0
  688. package/Typography/List.js +32 -0
  689. package/Typography/Paragraph.d.ts +14 -0
  690. package/Typography/Paragraph.js +52 -0
  691. package/Typography/SectionDescription.d.ts +7 -0
  692. package/Typography/SectionDescription.js +17 -0
  693. package/Typography/SectionTitle.d.ts +8 -0
  694. package/Typography/SectionTitle.js +31 -0
  695. package/Typography/Span.d.ts +6 -0
  696. package/Typography/Span.js +11 -0
  697. package/Typography/Strong.d.ts +6 -0
  698. package/Typography/Strong.js +11 -0
  699. package/Typography/U.d.ts +6 -0
  700. package/Typography/U.js +10 -0
  701. package/Typography/index.d.ts +3 -0
  702. package/Typography/index.js +22 -0
  703. package/index.d.ts +1 -0
  704. package/index.js +1 -7
  705. package/package.json +3 -9
@@ -0,0 +1,196 @@
1
+ import React from 'react';
2
+ import { VariableSizeList as VirtualizedList } from 'react-window';
3
+ import options from './popper-options';
4
+ export interface MenuProps<T, Multiple extends boolean | undefined = undefined> {
5
+ /**
6
+ * List of items
7
+ */
8
+ readonly items: readonly T[];
9
+ /**
10
+ * Current value\
11
+ * If `Menu` component has `multiple` property then value must be an array of items
12
+ */
13
+ readonly value: Value<T, Multiple> | null;
14
+ /**
15
+ * Estimated item height. Need to calculate menu height\
16
+ * \
17
+ * **Default**: `50`
18
+ */
19
+ readonly estimatedItemSize?: number;
20
+ /**
21
+ * Menu open state
22
+ */
23
+ readonly isOpen?: boolean;
24
+ /**
25
+ * The threshold is the number of items from the end of the list,
26
+ * upon reaching which the additional loading of new items will begin\
27
+ * \
28
+ * **Default**: `10`
29
+ */
30
+ readonly endThreshold?: number;
31
+ /**
32
+ * The thresholdPercent is the persont of items from the end of the list in percents value\
33
+ * Dependent of `onEndReached` property\
34
+ * \
35
+ * **Default**: `30`
36
+ */
37
+ readonly thresholdPercent?: number;
38
+ /**
39
+ * Autofocus list after menu open\
40
+ * Dependent of `onEndReached` property\
41
+ * \
42
+ * **Default**: `true`
43
+ */
44
+ readonly autofocus?: boolean;
45
+ /**
46
+ * tabindex property for the list. Tabindex is required to be able to set focus on a list item\
47
+ * \
48
+ * **Default**: `-1`
49
+ */
50
+ readonly tabIndex?: number;
51
+ /**
52
+ * The delay in milliseconds before the focus moves to the list at the time of its opening.\
53
+ * Used only if `autofocus` property is true\
54
+ * \
55
+ * **Default**: `250`
56
+ */
57
+ readonly autofocusDelay?: number;
58
+ /**
59
+ * The number of items to render outside of the visible area. This property can be important for two reasons:
60
+ *
61
+ * - Overscanning by one row allows the tab key to focus on the next (not yet visible) item.
62
+ * - Overscanning slightly can reduce or prevent a flash of empty space when a user first starts scrolling.
63
+ *
64
+ * Note that overscanning too much can negatively impact performance.\
65
+ * \
66
+ * **Default**: `1`
67
+ */
68
+ readonly overscanCount?: number;
69
+ /**
70
+ * An HTML element. It's used to set the position of the menu.
71
+ */
72
+ readonly anchorElement: HTMLElement | null;
73
+ /**
74
+ * Close list if click outside of list\
75
+ * \
76
+ * **Default**: `true`
77
+ */
78
+ readonly closeOutsideClick?: boolean;
79
+ /**
80
+ * Allow the multiple selection
81
+ */
82
+ readonly multiple?: Multiple;
83
+ /**
84
+ * z-index property\
85
+ * \
86
+ * **Default**: `1`
87
+ */
88
+ readonly zIndex?: number;
89
+ /**
90
+ * @popperjs/core component options\
91
+ * \
92
+ * **Default**: used special preset
93
+ */
94
+ readonly popperOptions?: typeof options;
95
+ /**
96
+ * An element for the React.createPortal node\
97
+ * \
98
+ * **Default**: `document.body`
99
+ */
100
+ readonly portalNode?: (() => HTMLElement) | HTMLElement;
101
+ /**
102
+ * The reference of the outer list HTML element
103
+ */
104
+ readonly outerRef?: React.MutableRefObject<OuterListType | null>;
105
+ /**
106
+ * The API reference of the virtualized list
107
+ */
108
+ readonly listRef?: React.MutableRefObject<VirtualizedListType<T> | null>;
109
+ /**
110
+ * A function that determines which of the elements is currently selected
111
+ */
112
+ readonly getOptionSelected?: GetOptionSelected<T>;
113
+ /**
114
+ * The function that will be called when the list reaches the end
115
+ */
116
+ readonly onEndReached?: () => void;
117
+ /**
118
+ * Called when item selected
119
+ */
120
+ readonly onSelectItem?: OnSelectItem<T, Multiple>;
121
+ /**
122
+ * A function that renders each list item
123
+ */
124
+ readonly renderItem?: RenderItem<T>;
125
+ /**
126
+ * The function that will be called at the moment when you want to close the menu
127
+ */
128
+ readonly onRequestClose: OnRequestClose;
129
+ }
130
+ export type MenuRef<T> = {
131
+ /**
132
+ * Scroll to specified item index
133
+ */
134
+ scrollToItem: VirtualizedListType<T>['scrollToItem'];
135
+ /**
136
+ * Scroll by offset (px)
137
+ */
138
+ scrollTo: VirtualizedListType<T>['scrollTo'];
139
+ /**
140
+ * Scroll list to first of selected item
141
+ */
142
+ scrollToFirstSelected: () => void;
143
+ /**
144
+ * Select specified item by index
145
+ */
146
+ selectItem: (index: number) => void;
147
+ /**
148
+ * Hightlight specified item by index
149
+ */
150
+ highlightIndex: (index: number) => void;
151
+ /**
152
+ * Highlight the previous item relative to the currently highlighted one
153
+ */
154
+ hightlightPrevItem: () => void;
155
+ /**
156
+ * Highlight the next item relative to the currently highlighted one
157
+ */
158
+ hightlightNextItem: () => void;
159
+ /**
160
+ * Highlight the first item in list
161
+ */
162
+ hightlightFirstItem: () => void;
163
+ /**
164
+ * Highlight the last item in list
165
+ */
166
+ hightlightLastItem: () => void;
167
+ /**
168
+ * Select hightlighted item
169
+ */
170
+ selectHightlightedItem: () => void;
171
+ /**
172
+ * Force re-render popper element
173
+ */
174
+ updatePopper: () => void;
175
+ /**
176
+ * Force set focus to list
177
+ */
178
+ focus: () => void;
179
+ };
180
+ export type VirtualizedListType<T> = VirtualizedList<T>;
181
+ export type OuterListType = HTMLDivElement;
182
+ export type Value<T, Multiple> = Multiple extends undefined | undefined ? T : readonly T[];
183
+ export type GetOptionSelected<T> = (payload: {
184
+ readonly item: T;
185
+ readonly value: T;
186
+ }) => boolean;
187
+ export type RenderItem<T> = (payload: {
188
+ readonly item: T;
189
+ readonly index: number;
190
+ }) => React.ReactNode;
191
+ export type OnSelectItem<T, Multiple extends boolean | undefined = undefined> = (value: Value<T, Multiple>) => void;
192
+ export type OnRequestClose = (event?: React.KeyboardEvent<HTMLElement> | React.MouseEvent<HTMLElement> | KeyboardEvent | MouseEvent) => void;
193
+ declare const _default: <T, Multiple extends boolean | undefined = undefined>(props: MenuProps<T, Multiple> & {
194
+ ref?: React.Ref<MenuRef<T>> | undefined;
195
+ }) => JSX.Element;
196
+ export default _default;
package/Menu/index.js ADDED
@@ -0,0 +1,452 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const react_1 = __importDefault(require("react"));
30
+ const react_dom_1 = __importDefault(require("react-dom"));
31
+ const react_window_1 = require("react-window");
32
+ const react_popper_1 = require("react-popper");
33
+ const popper_options_1 = __importDefault(require("./popper-options"));
34
+ const MenuItem_1 = __importDefault(require("./MenuItem"));
35
+ const MenuWrapper_1 = __importDefault(require("./MenuWrapper"));
36
+ const reducer_1 = __importStar(require("./reducer"));
37
+ const Menu = react_1.default.forwardRef((props, ref) => {
38
+ const { items, value, isOpen, estimatedItemSize = 30, endThreshold = 10, thresholdPercent = 30, autofocusDelay = 250, autofocus = true, closeOutsideClick = true, overscanCount = 1, zIndex = 1, tabIndex = -1, portalNode = typeof window !== 'undefined' ? window.document.body : undefined, outerRef, listRef, anchorElement, multiple, popperOptions, onSelectItem, onEndReached, getOptionSelected, renderItem, onRequestClose, } = props;
39
+ const getSelectedIndexes = react_1.default.useCallback(() => {
40
+ const idx = new Set();
41
+ if (typeof value === 'object' && value !== null) {
42
+ if (typeof getOptionSelected === 'function') {
43
+ if (Array.isArray(value)) {
44
+ value.forEach(v => {
45
+ idx.add(items.findIndex(item => getOptionSelected({ item, value: v })));
46
+ });
47
+ }
48
+ if (!Array.isArray(value)) {
49
+ idx.add(items.findIndex(item => getOptionSelected({ item, value: value })));
50
+ }
51
+ }
52
+ if (Array.isArray(value)) {
53
+ value.forEach(v => {
54
+ idx.add(items.findIndex(item => JSON.stringify(item) === JSON.stringify(v)));
55
+ });
56
+ }
57
+ else {
58
+ idx.add(items.findIndex(item => JSON.stringify(item) === JSON.stringify(value)));
59
+ }
60
+ }
61
+ return [...idx];
62
+ }, [getOptionSelected, items, value]);
63
+ const [domLoaded, setDomLoaded] = react_1.default.useState(false);
64
+ const [menuIsOpen, setMenuOpen] = react_1.default.useState(Boolean(isOpen));
65
+ const [currentAnchorElement, setAnchorElement] = react_1.default.useState(anchorElement);
66
+ const isOpenRef = react_1.default.useRef(menuIsOpen);
67
+ const dimensionsRef = react_1.default.useRef({ width: 0, height: 0 });
68
+ const sizeMapRef = react_1.default.useRef(new Map());
69
+ const listVirtRef = react_1.default.useRef(null);
70
+ const listOuterRef = react_1.default.useRef(null);
71
+ const menuWrapperRef = react_1.default.useRef(null);
72
+ const [{ selectedIndexes, markedIndex, hoveredIndex }, dispatch] = react_1.default.useReducer(reducer_1.default, Object.assign(Object.assign({}, reducer_1.defaultState), { selectedIndexes: getSelectedIndexes(), markedIndex: -1 }));
73
+ const selectedIndexesRef = react_1.default.useRef(selectedIndexes);
74
+ const [popperElement, setPopperElement] = react_1.default.useState(null);
75
+ const timeoutRef = react_1.default.useRef(null);
76
+ const { styles, attributes, forceUpdate } = (0, react_popper_1.usePopper)(currentAnchorElement, popperElement, popperOptions || popper_options_1.default);
77
+ /**
78
+ * Client render detection
79
+ */
80
+ react_1.default.useEffect(() => {
81
+ setDomLoaded(true);
82
+ }, []);
83
+ /**
84
+ * Scroll to first of selected item
85
+ */
86
+ const scrollToFirstSelected = react_1.default.useCallback(() => {
87
+ var _a;
88
+ const indexes = getSelectedIndexes();
89
+ // Sort array of indexes by DESC and get the index
90
+ const index = indexes.length ? [...indexes.sort()][0] : -1;
91
+ dispatch({
92
+ type: 'setMenuState',
93
+ payload: {
94
+ markedIndex: index,
95
+ },
96
+ });
97
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index);
98
+ }, [getSelectedIndexes]);
99
+ /**
100
+ * Select specified item by index
101
+ */
102
+ const selectItem = react_1.default.useCallback((index) => {
103
+ const item = items[index];
104
+ if (!item) {
105
+ return;
106
+ }
107
+ if (typeof onSelectItem === 'function') {
108
+ // For multiple
109
+ if (multiple && Array.isArray(value)) {
110
+ const selItems = new Set(value);
111
+ if (selectedIndexes.includes(index)) {
112
+ selItems.delete(item);
113
+ }
114
+ else {
115
+ selItems.add(item);
116
+ }
117
+ onSelectItem([...selItems]);
118
+ }
119
+ else {
120
+ // For single
121
+ onSelectItem(item);
122
+ }
123
+ }
124
+ }, [items, onSelectItem, selectedIndexes, value, multiple]);
125
+ /**
126
+ * Highlight specified item by index
127
+ */
128
+ const highlightIndex = react_1.default.useCallback((index) => {
129
+ dispatch({
130
+ type: 'setMenuState',
131
+ payload: {
132
+ markedIndex: items[index] ? index : -1,
133
+ },
134
+ });
135
+ }, [items]);
136
+ const hightlightPrevItem = react_1.default.useCallback(() => {
137
+ var _a;
138
+ const index = Math.max(markedIndex - 1, 0);
139
+ highlightIndex(index);
140
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index);
141
+ }, [markedIndex, highlightIndex]);
142
+ const hightlightNextItem = react_1.default.useCallback(() => {
143
+ var _a;
144
+ const index = Math.min(markedIndex + 1, items.length);
145
+ highlightIndex(index);
146
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index);
147
+ }, [markedIndex, items.length, highlightIndex]);
148
+ const hightlightFirstItem = react_1.default.useCallback(() => {
149
+ var _a;
150
+ const index = 0;
151
+ highlightIndex(index);
152
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index);
153
+ }, [highlightIndex]);
154
+ const hightlightLastItem = react_1.default.useCallback(() => {
155
+ var _a;
156
+ const index = items.length - 1;
157
+ highlightIndex(index);
158
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index);
159
+ }, [highlightIndex, items.length]);
160
+ const selectHightlightedItem = react_1.default.useCallback(() => {
161
+ if (markedIndex > -1) {
162
+ selectItem(markedIndex);
163
+ }
164
+ }, [markedIndex, selectItem]);
165
+ /**
166
+ * API
167
+ */
168
+ react_1.default.useImperativeHandle(ref, () => ({
169
+ focus: () => { var _a; return (_a = menuWrapperRef.current) === null || _a === void 0 ? void 0 : _a.focus(); },
170
+ scrollToItem: (index, align) => { var _a; return (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(index, align); },
171
+ scrollTo: (scrollOffset) => { var _a; return (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo(scrollOffset); },
172
+ scrollToFirstSelected,
173
+ selectItem: selectItem,
174
+ updatePopper: () => typeof forceUpdate === 'function' && forceUpdate(),
175
+ highlightIndex,
176
+ hightlightPrevItem,
177
+ hightlightNextItem,
178
+ hightlightFirstItem,
179
+ hightlightLastItem,
180
+ selectHightlightedItem,
181
+ }), [
182
+ scrollToFirstSelected,
183
+ selectItem,
184
+ highlightIndex,
185
+ hightlightPrevItem,
186
+ hightlightNextItem,
187
+ hightlightFirstItem,
188
+ hightlightLastItem,
189
+ selectHightlightedItem,
190
+ forceUpdate,
191
+ ]);
192
+ /**
193
+ * To write row height (size in px) into the cached map
194
+ * and fire re-render action of virtualized list
195
+ */
196
+ const setRowHeight = react_1.default.useCallback((index, height) => {
197
+ var _a;
198
+ sizeMapRef.current.set(index, height);
199
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.resetAfterIndex(index);
200
+ }, []);
201
+ /**
202
+ * Update achnor
203
+ */
204
+ react_1.default.useEffect(() => {
205
+ if (anchorElement !== currentAnchorElement) {
206
+ setAnchorElement(anchorElement);
207
+ }
208
+ }, [anchorElement, currentAnchorElement]);
209
+ const dimensions = react_1.default.useMemo(() => {
210
+ const dimensions = Object.assign({}, dimensionsRef.current);
211
+ menuIsOpen;
212
+ const MAX_HEIGHT = 360;
213
+ const MIN_WIDTH = 200;
214
+ let size = 0;
215
+ for (let index = 0; index < items.length; index++) {
216
+ if (index > 60) {
217
+ break;
218
+ }
219
+ size += sizeMapRef.current.get(index) || estimatedItemSize;
220
+ }
221
+ if (size > 0) {
222
+ dimensions.height = Math.min(size, MAX_HEIGHT);
223
+ }
224
+ if (currentAnchorElement) {
225
+ dimensions.width = Math.max(currentAnchorElement.getBoundingClientRect().width, MIN_WIDTH);
226
+ }
227
+ dimensionsRef.current = dimensions;
228
+ return dimensions;
229
+ }, [currentAnchorElement, items, estimatedItemSize, menuIsOpen]);
230
+ const onScroll = react_1.default.useCallback(({ scrollOffset, scrollDirection }) => {
231
+ if (typeof onEndReached !== 'function') {
232
+ return;
233
+ }
234
+ // Detect the end of the reached
235
+ if (listOuterRef.current && scrollDirection === 'forward') {
236
+ // The threshold is the number of items from the end of the list,
237
+ // upon reaching which the additional loading of new items will begin
238
+ const threshold = (endThreshold / 100) * thresholdPercent;
239
+ // const threshold = 10;
240
+ const offset = listOuterRef.current.scrollHeight - listOuterRef.current.clientHeight;
241
+ const lastItemsHeight = Array.from(items)
242
+ .slice(-threshold)
243
+ .reduce((totalHeight, _edge, index) => totalHeight + (sizeMapRef.current.get(index) || estimatedItemSize), 0);
244
+ if (scrollOffset >= offset - lastItemsHeight) {
245
+ onEndReached();
246
+ }
247
+ }
248
+ }, [onEndReached, endThreshold, thresholdPercent, items, estimatedItemSize]);
249
+ /**
250
+ * Keyboard events of menu list container.
251
+ * Note: Moved selection up and down while keys pressed
252
+ */
253
+ const listKeydownEvent = react_1.default.useCallback((event) => {
254
+ if (!menuIsOpen) {
255
+ return;
256
+ }
257
+ switch (event.code) {
258
+ case 'Enter':
259
+ case 'NumpadEnter':
260
+ case 'Tab':
261
+ event.preventDefault();
262
+ if (markedIndex > -1) {
263
+ selectItem(markedIndex);
264
+ }
265
+ break;
266
+ case 'ArrowUp':
267
+ {
268
+ event.preventDefault();
269
+ hightlightPrevItem();
270
+ }
271
+ break;
272
+ case 'ArrowDown':
273
+ {
274
+ event.preventDefault();
275
+ hightlightNextItem();
276
+ }
277
+ break;
278
+ case 'Home':
279
+ {
280
+ event.preventDefault();
281
+ hightlightFirstItem();
282
+ }
283
+ break;
284
+ case 'End':
285
+ {
286
+ event.preventDefault();
287
+ hightlightLastItem();
288
+ }
289
+ break;
290
+ case 'PageUp':
291
+ case 'PageDown':
292
+ case 'Space':
293
+ event.preventDefault();
294
+ break;
295
+ case 'Escape':
296
+ event.preventDefault();
297
+ onRequestClose(event);
298
+ break;
299
+ default:
300
+ // do nothing
301
+ break;
302
+ }
303
+ }, [
304
+ markedIndex,
305
+ menuIsOpen,
306
+ onRequestClose,
307
+ selectItem,
308
+ hightlightPrevItem,
309
+ hightlightNextItem,
310
+ hightlightFirstItem,
311
+ hightlightLastItem,
312
+ ]);
313
+ /**
314
+ * Invoked `renderItem` function if that passed,
315
+ * otherwise used another render method
316
+ */
317
+ const renderItemFn = react_1.default.useCallback(item => (typeof renderItem === 'function' ? renderItem(item) : JSON.stringify(item)), [renderItem]);
318
+ // eslint-disable-next-line arrow-body-style
319
+ react_1.default.useEffect(() => {
320
+ return () => {
321
+ if (timeoutRef.current) {
322
+ clearTimeout(timeoutRef.current);
323
+ }
324
+ };
325
+ }, []);
326
+ react_1.default.useEffect(() => {
327
+ const windowResizeEvent = (_event) => {
328
+ if (timeoutRef.current) {
329
+ clearTimeout(timeoutRef.current);
330
+ }
331
+ timeoutRef.current = setTimeout(() => {
332
+ if (forceUpdate) {
333
+ forceUpdate();
334
+ }
335
+ }, 100);
336
+ };
337
+ const mouseDownEvent = (event) => {
338
+ if (!menuIsOpen) {
339
+ return;
340
+ }
341
+ let parentElem = event.target;
342
+ let needToClose = true;
343
+ while (parentElem && 'parentNode' in parentElem) {
344
+ if (parentElem === popperElement) {
345
+ needToClose = false;
346
+ break;
347
+ }
348
+ parentElem = parentElem.parentNode;
349
+ }
350
+ if (needToClose) {
351
+ onRequestClose(event);
352
+ }
353
+ };
354
+ if (closeOutsideClick) {
355
+ window.document.addEventListener('mousedown', mouseDownEvent);
356
+ }
357
+ window.document.addEventListener('resize', windowResizeEvent);
358
+ return () => {
359
+ if (closeOutsideClick) {
360
+ window.document.removeEventListener('mousedown', mouseDownEvent);
361
+ }
362
+ window.document.removeEventListener('resize', windowResizeEvent);
363
+ };
364
+ }, [forceUpdate, menuIsOpen, popperElement, onRequestClose, closeOutsideClick]);
365
+ /**
366
+ * Toggle menu open
367
+ */
368
+ react_1.default.useEffect(() => {
369
+ var _a;
370
+ if (isOpenRef.current !== isOpen) {
371
+ isOpenRef.current = Boolean(isOpen);
372
+ setMenuOpen(Boolean(isOpen));
373
+ if (isOpen) {
374
+ scrollToFirstSelected();
375
+ if (autofocus) {
376
+ setTimeout(() => {
377
+ var _a;
378
+ (_a = menuWrapperRef.current) === null || _a === void 0 ? void 0 : _a.focus();
379
+ }, autofocusDelay);
380
+ }
381
+ }
382
+ // Reset indexes
383
+ if (!isOpen) {
384
+ (_a = listVirtRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(0);
385
+ dispatch({
386
+ type: 'setMenuState',
387
+ payload: {
388
+ markedIndex: -1,
389
+ hoveredIndex: -1,
390
+ },
391
+ });
392
+ }
393
+ }
394
+ }, [
395
+ getSelectedIndexes,
396
+ scrollToFirstSelected,
397
+ isOpen,
398
+ autofocus,
399
+ popperElement,
400
+ autofocusDelay,
401
+ ]);
402
+ /**
403
+ * Mark selected items by values
404
+ */
405
+ react_1.default.useEffect(() => {
406
+ const indexes = getSelectedIndexes();
407
+ // If elements in selectedIndexesRef and indexes are not equale
408
+ if ((selectedIndexesRef.current.length === indexes.length &&
409
+ selectedIndexesRef.current.every(value => indexes.includes(value))) === false) {
410
+ selectedIndexesRef.current = indexes;
411
+ dispatch({
412
+ type: 'setMenuState',
413
+ payload: {
414
+ selectedIndexes: indexes,
415
+ },
416
+ });
417
+ }
418
+ }, [value, getSelectedIndexes]);
419
+ return !domLoaded
420
+ ? null
421
+ : react_dom_1.default.createPortal(react_1.default.createElement("div", Object.assign({}, attributes.popper, { ref: setPopperElement, style: Object.assign(Object.assign({}, styles.popper), { zIndex }) }), menuIsOpen && (react_1.default.createElement(MenuWrapper_1.default, { isOpen: menuIsOpen, ref: menuWrapperRef, tabIndex: tabIndex, dimensions: dimensions, onKeyDown: listKeydownEvent },
422
+ react_1.default.createElement(react_window_1.VariableSizeList, { onScroll: onScroll, width: 300, height: 350, itemCount: items.length, overscanCount: overscanCount, itemSize: index => sizeMapRef.current.get(index) || estimatedItemSize, estimatedItemSize: estimatedItemSize, ref: elem => {
423
+ listVirtRef.current = elem;
424
+ if (listRef) {
425
+ listRef.current = elem;
426
+ }
427
+ }, outerRef: elem => {
428
+ listOuterRef.current = elem;
429
+ if (outerRef) {
430
+ outerRef.current = elem;
431
+ }
432
+ } }, ({ index, style }) => {
433
+ const item = items[index];
434
+ return (react_1.default.createElement(MenuItem_1.default, { index: index, style: style, setRowHeight: setRowHeight, selected: selectedIndexes.includes(index), hovered: hoveredIndex === index || markedIndex === index, onMouseEnter: () => {
435
+ if (index !== hoveredIndex) {
436
+ dispatch({
437
+ type: 'setMenuState',
438
+ payload: { hoveredIndex: index, markedIndex: -1 },
439
+ });
440
+ }
441
+ }, onMouseLeave: () => {
442
+ if (index === hoveredIndex) {
443
+ dispatch({
444
+ type: 'setMenuState',
445
+ payload: { hoveredIndex: -1, markedIndex: -1 },
446
+ });
447
+ }
448
+ }, onClick: () => selectItem(index) }, renderItemFn({ item, index })));
449
+ })))), typeof portalNode === 'function' ? portalNode() : portalNode || window.document.body);
450
+ });
451
+ Menu.displayName = 'Menu';
452
+ exports.default = Menu;
@@ -0,0 +1,4 @@
1
+ import type { usePopper } from 'react-popper';
2
+ export type PopperOptions = Parameters<typeof usePopper>[2];
3
+ export declare const popperOptions: PopperOptions;
4
+ export default popperOptions;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.popperOptions = void 0;
4
+ exports.popperOptions = {
5
+ placement: 'bottom',
6
+ modifiers: [
7
+ {
8
+ name: 'offset',
9
+ options: {
10
+ offset: [0, 8],
11
+ },
12
+ },
13
+ {
14
+ name: 'flip',
15
+ enabled: true,
16
+ options: {
17
+ altBoundary: true,
18
+ padding: 8,
19
+ },
20
+ },
21
+ {
22
+ name: 'preventOverflow',
23
+ enabled: true,
24
+ options: {
25
+ altAxis: true,
26
+ altBoundary: true,
27
+ tether: true,
28
+ padding: 8,
29
+ },
30
+ },
31
+ ],
32
+ };
33
+ exports.default = exports.popperOptions;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface MenuState {
3
+ readonly selectedIndexes: readonly number[];
4
+ readonly markedIndex: number;
5
+ readonly hoveredIndex: number;
6
+ }
7
+ export type Actions = ActionSetMenuState;
8
+ interface ActionSetMenuState {
9
+ readonly type: 'setMenuState';
10
+ readonly payload: Partial<MenuState>;
11
+ }
12
+ export declare const defaultState: MenuState;
13
+ export declare const reducer: React.Reducer<MenuState, Actions>;
14
+ export default reducer;