@julseb-lib/react 0.0.85 → 0.0.87

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 (535) hide show
  1. package/dist/index.cjs.js +1613 -1626
  2. package/dist/index.css +60 -100
  3. package/dist/index.es.js +12917 -14950
  4. package/dist/index.umd.js +1512 -1525
  5. package/dist/lib/Mixins.tsx +85 -80
  6. package/dist/lib/Variables.ts +1 -31
  7. package/dist/lib/components/Accordion/Accordion.tsx +72 -75
  8. package/dist/lib/components/Accordion/AccordionButton.tsx +3 -5
  9. package/dist/lib/components/Accordion/AccordionContent.tsx +3 -4
  10. package/dist/lib/components/Accordion/AccordionItem.tsx +60 -58
  11. package/dist/lib/components/Accordion/index.ts +0 -2
  12. package/dist/lib/components/Accordion/styles.tsx +0 -2
  13. package/dist/lib/components/Accordion/subtypes.ts +0 -2
  14. package/dist/lib/components/Accordion/types.ts +0 -2
  15. package/dist/lib/components/Alert/Alert.tsx +72 -70
  16. package/dist/lib/components/Alert/index.ts +0 -2
  17. package/dist/lib/components/Alert/styles.tsx +0 -2
  18. package/dist/lib/components/Alert/types.ts +0 -2
  19. package/dist/lib/components/Aside/Aside.tsx +36 -37
  20. package/dist/lib/components/Aside/index.ts +0 -2
  21. package/dist/lib/components/Aside/styles.tsx +8 -6
  22. package/dist/lib/components/Aside/types.ts +0 -3
  23. package/dist/lib/components/Autocomplete/Autocomplete.tsx +287 -283
  24. package/dist/lib/components/Autocomplete/index.ts +0 -2
  25. package/dist/lib/components/Autocomplete/styles.tsx +0 -2
  26. package/dist/lib/components/Autocomplete/types.ts +2 -3
  27. package/dist/lib/components/Avatar/Avatar.tsx +132 -130
  28. package/dist/lib/components/Avatar/AvatarFunction.tsx +112 -119
  29. package/dist/lib/components/Avatar/index.ts +0 -2
  30. package/dist/lib/components/Avatar/styles.tsx +0 -2
  31. package/dist/lib/components/Avatar/types.ts +0 -2
  32. package/dist/lib/components/BackToTop/BackToTop.tsx +84 -81
  33. package/dist/lib/components/BackToTop/index.ts +0 -2
  34. package/dist/lib/components/BackToTop/styles.tsx +0 -2
  35. package/dist/lib/components/BackToTop/types.ts +0 -2
  36. package/dist/lib/components/Badge/Badge.tsx +80 -77
  37. package/dist/lib/components/Badge/index.ts +0 -2
  38. package/dist/lib/components/Badge/styles.tsx +0 -2
  39. package/dist/lib/components/Badge/types.ts +0 -2
  40. package/dist/lib/components/Breadcrumbs/BreadcrumbItem.tsx +3 -4
  41. package/dist/lib/components/Breadcrumbs/Breadcrumbs.tsx +54 -44
  42. package/dist/lib/components/Breadcrumbs/BreadcrumbsFn.tsx +57 -69
  43. package/dist/lib/components/Breadcrumbs/index.ts +0 -2
  44. package/dist/lib/components/Breadcrumbs/styles.tsx +0 -2
  45. package/dist/lib/components/Breadcrumbs/subtypes.ts +0 -2
  46. package/dist/lib/components/Breadcrumbs/types.ts +0 -2
  47. package/dist/lib/components/Burger/Burger.tsx +54 -53
  48. package/dist/lib/components/Burger/index.ts +0 -2
  49. package/dist/lib/components/Burger/styles.tsx +0 -2
  50. package/dist/lib/components/Burger/types.ts +0 -2
  51. package/dist/lib/components/Button/Button.tsx +120 -120
  52. package/dist/lib/components/Button/index.ts +0 -2
  53. package/dist/lib/components/Button/styles.tsx +0 -2
  54. package/dist/lib/components/Button/subtypes.ts +0 -2
  55. package/dist/lib/components/Button/types.ts +0 -2
  56. package/dist/lib/components/ButtonGroup/ButtonGroup.tsx +120 -142
  57. package/dist/lib/components/ButtonGroup/ButtonGroupButton.tsx +61 -74
  58. package/dist/lib/components/ButtonGroup/ButtonGroupToggle.tsx +69 -80
  59. package/dist/lib/components/ButtonGroup/index.ts +0 -2
  60. package/dist/lib/components/ButtonGroup/styles.tsx +0 -2
  61. package/dist/lib/components/ButtonGroup/subtypes.ts +3 -2
  62. package/dist/lib/components/ButtonGroup/types.ts +0 -2
  63. package/dist/lib/components/ButtonIcon/ButtonFunction.tsx +74 -85
  64. package/dist/lib/components/ButtonIcon/ButtonIcon.tsx +128 -129
  65. package/dist/lib/components/ButtonIcon/index.ts +0 -2
  66. package/dist/lib/components/ButtonIcon/styles.tsx +0 -2
  67. package/dist/lib/components/ButtonIcon/subtypes.ts +0 -2
  68. package/dist/lib/components/ButtonIcon/types.ts +0 -2
  69. package/dist/lib/components/Card/Card.tsx +119 -126
  70. package/dist/lib/components/Card/index.ts +0 -2
  71. package/dist/lib/components/Card/styles.tsx +0 -2
  72. package/dist/lib/components/Card/types.ts +0 -2
  73. package/dist/lib/components/CodeContainer/CodeContainer.tsx +109 -111
  74. package/dist/lib/components/CodeContainer/index.ts +0 -2
  75. package/dist/lib/components/CodeContainer/styles.tsx +0 -2
  76. package/dist/lib/components/CodeContainer/types.ts +0 -2
  77. package/dist/lib/components/ComponentsMixins/ComponentsMixins.tsx +0 -7
  78. package/dist/lib/components/ComponentsMixins/hooks/useKeyboardNavigation.tsx +0 -2
  79. package/dist/lib/components/ComponentsMixins/index.ts +0 -2
  80. package/dist/lib/components/ComponentsMixins/types.ts +0 -2
  81. package/dist/lib/components/Cover/Cover.tsx +72 -65
  82. package/dist/lib/components/Cover/index.ts +0 -2
  83. package/dist/lib/components/Cover/styles.tsx +0 -2
  84. package/dist/lib/components/Cover/types.ts +0 -2
  85. package/dist/lib/components/Datepicker/Calendar.tsx +1 -2
  86. package/dist/lib/components/Datepicker/Datepicker.tsx +209 -208
  87. package/dist/lib/components/Datepicker/data.ts +0 -2
  88. package/dist/lib/components/Datepicker/index.ts +0 -2
  89. package/dist/lib/components/Datepicker/styles.tsx +0 -2
  90. package/dist/lib/components/Datepicker/types.ts +0 -2
  91. package/dist/lib/components/DragList/DragList.tsx +104 -110
  92. package/dist/lib/components/DragList/DragListItem.tsx +156 -163
  93. package/dist/lib/components/DragList/index.ts +0 -2
  94. package/dist/lib/components/DragList/styles.tsx +0 -2
  95. package/dist/lib/components/DragList/types.ts +0 -6
  96. package/dist/lib/components/Drawer/Drawer.tsx +98 -95
  97. package/dist/lib/components/Drawer/index.ts +0 -2
  98. package/dist/lib/components/Drawer/styles.tsx +0 -2
  99. package/dist/lib/components/Drawer/types.ts +0 -2
  100. package/dist/lib/components/Dropdown/Dropdown.tsx +87 -78
  101. package/dist/lib/components/Dropdown/DropdownContainer.tsx +35 -26
  102. package/dist/lib/components/Dropdown/DropdownItem.tsx +89 -89
  103. package/dist/lib/components/Dropdown/index.ts +0 -2
  104. package/dist/lib/components/Dropdown/styles.tsx +1 -2
  105. package/dist/lib/components/Dropdown/types.ts +0 -8
  106. package/dist/lib/components/Fade/Fade.tsx +44 -32
  107. package/dist/lib/components/Fade/index.ts +0 -2
  108. package/dist/lib/components/Fade/styles.tsx +0 -2
  109. package/dist/lib/components/Fade/types.ts +0 -2
  110. package/dist/lib/components/Fallback/Fallback.tsx +13 -10
  111. package/dist/lib/components/Fallback/index.ts +0 -2
  112. package/dist/lib/components/Fieldset/Fieldset.tsx +101 -97
  113. package/dist/lib/components/Fieldset/index.ts +0 -2
  114. package/dist/lib/components/Fieldset/styles.tsx +0 -2
  115. package/dist/lib/components/Fieldset/types.ts +0 -2
  116. package/dist/lib/components/Flexbox/Flexbox.tsx +67 -63
  117. package/dist/lib/components/Flexbox/index.ts +0 -2
  118. package/dist/lib/components/Flexbox/styles.tsx +0 -2
  119. package/dist/lib/components/Flexbox/types.ts +0 -2
  120. package/dist/lib/components/Footer/Footer.tsx +87 -90
  121. package/dist/lib/components/Footer/FooterLink.tsx +8 -8
  122. package/dist/lib/components/Footer/FooterLogo.tsx +3 -4
  123. package/dist/lib/components/Footer/index.ts +0 -2
  124. package/dist/lib/components/Footer/styles.tsx +0 -2
  125. package/dist/lib/components/Footer/subtypes.ts +2 -2
  126. package/dist/lib/components/Footer/types.ts +0 -6
  127. package/dist/lib/components/Form/Form.tsx +145 -136
  128. package/dist/lib/components/Form/index.ts +0 -2
  129. package/dist/lib/components/Form/styles.tsx +0 -2
  130. package/dist/lib/components/Form/types.ts +0 -2
  131. package/dist/lib/components/FullBleed/FullBleed.tsx +42 -39
  132. package/dist/lib/components/FullBleed/index.ts +0 -2
  133. package/dist/lib/components/FullBleed/styles.tsx +0 -2
  134. package/dist/lib/components/FullBleed/types.ts +0 -2
  135. package/dist/lib/components/Grid/Grid.tsx +65 -60
  136. package/dist/lib/components/Grid/index.ts +0 -2
  137. package/dist/lib/components/Grid/styles.tsx +0 -2
  138. package/dist/lib/components/Grid/types.ts +0 -2
  139. package/dist/lib/components/Header/Header.tsx +185 -176
  140. package/dist/lib/components/Header/HeaderBurger.tsx +42 -50
  141. package/dist/lib/components/Header/HeaderLogo.tsx +3 -4
  142. package/dist/lib/components/Header/HeaderNav.tsx +4 -6
  143. package/dist/lib/components/Header/HeaderNavLink.tsx +3 -4
  144. package/dist/lib/components/Header/HeaderSearch.tsx +3 -5
  145. package/dist/lib/components/Header/index.ts +0 -2
  146. package/dist/lib/components/Header/styles.tsx +0 -2
  147. package/dist/lib/components/Header/subtypes.ts +3 -11
  148. package/dist/lib/components/Header/types.ts +0 -2
  149. package/dist/lib/components/Highlight/Highlight.tsx +40 -38
  150. package/dist/lib/components/Highlight/index.ts +0 -2
  151. package/dist/lib/components/Highlight/types.ts +0 -2
  152. package/dist/lib/components/Hr/Hr.tsx +45 -43
  153. package/dist/lib/components/Hr/index.ts +0 -2
  154. package/dist/lib/components/Hr/styles.tsx +0 -2
  155. package/dist/lib/components/Hr/types.ts +0 -2
  156. package/dist/lib/components/Icon/Icon.tsx +36 -36
  157. package/dist/lib/components/Icon/index.ts +0 -2
  158. package/dist/lib/components/Icon/styles.tsx +0 -2
  159. package/dist/lib/components/Icon/types.ts +2 -2
  160. package/dist/lib/components/IconMenu/IconMenu.tsx +127 -136
  161. package/dist/lib/components/IconMenu/IconMenuItem.tsx +69 -68
  162. package/dist/lib/components/IconMenu/index.ts +0 -2
  163. package/dist/lib/components/IconMenu/styles.tsx +0 -2
  164. package/dist/lib/components/IconMenu/types.ts +0 -6
  165. package/dist/lib/components/Image/Image.tsx +109 -95
  166. package/dist/lib/components/Image/ImageFunction.tsx +41 -49
  167. package/dist/lib/components/Image/index.ts +0 -2
  168. package/dist/lib/components/Image/styles.tsx +0 -2
  169. package/dist/lib/components/Image/types.ts +0 -2
  170. package/dist/lib/components/Input/Input.tsx +105 -131
  171. package/dist/lib/components/Input/index.ts +0 -2
  172. package/dist/lib/components/Input/styles.tsx +0 -2
  173. package/dist/lib/components/Input/subtypes.ts +2 -22
  174. package/dist/lib/components/Input/templates/ColorInput.tsx +31 -37
  175. package/dist/lib/components/Input/templates/DateInput.tsx +92 -101
  176. package/dist/lib/components/Input/templates/FileInput.tsx +48 -54
  177. package/dist/lib/components/Input/templates/PasswordInput.tsx +166 -178
  178. package/dist/lib/components/Input/templates/SearchInput.tsx +105 -113
  179. package/dist/lib/components/Input/templates/SelectInput.tsx +87 -93
  180. package/dist/lib/components/Input/templates/TextInput.tsx +88 -94
  181. package/dist/lib/components/Input/templates/TextareaInput.tsx +34 -40
  182. package/dist/lib/components/Input/templates/TimeInput.tsx +91 -100
  183. package/dist/lib/components/Input/types.ts +0 -2
  184. package/dist/lib/components/InputCheck/InputCheck.tsx +122 -115
  185. package/dist/lib/components/InputCheck/index.ts +0 -2
  186. package/dist/lib/components/InputCheck/styles.tsx +0 -2
  187. package/dist/lib/components/InputCheck/types.ts +2 -3
  188. package/dist/lib/components/InputComponents/components/InputAndListContainer.tsx +28 -37
  189. package/dist/lib/components/InputComponents/components/InputButton.tsx +3 -4
  190. package/dist/lib/components/InputComponents/components/InputContainer.tsx +3 -4
  191. package/dist/lib/components/InputComponents/components/InputIcon.tsx +3 -4
  192. package/dist/lib/components/InputComponents/components/InputLeftContainer.tsx +8 -9
  193. package/dist/lib/components/InputComponents/components/InputPrefix.tsx +3 -4
  194. package/dist/lib/components/InputComponents/components/InputRightContainer.tsx +3 -4
  195. package/dist/lib/components/InputComponents/components/InputSuffix.tsx +3 -4
  196. package/dist/lib/components/InputComponents/components/InputValidationHelper.tsx +3 -4
  197. package/dist/lib/components/InputComponents/components/InputValidationIcon.tsx +3 -4
  198. package/dist/lib/components/InputComponents/components/InputWrapper.tsx +3 -4
  199. package/dist/lib/components/InputComponents/components/ListInput.tsx +26 -35
  200. package/dist/lib/components/InputComponents/components/ListInputItem.tsx +31 -39
  201. package/dist/lib/components/InputComponents/index.ts +0 -2
  202. package/dist/lib/components/InputComponents/styles.tsx +0 -22
  203. package/dist/lib/components/InputComponents/types.ts +4 -31
  204. package/dist/lib/components/InputContainer/HelperBottom.tsx +0 -2
  205. package/dist/lib/components/InputContainer/InputContainer.tsx +122 -111
  206. package/dist/lib/components/InputContainer/index.ts +0 -2
  207. package/dist/lib/components/InputContainer/styles.tsx +0 -2
  208. package/dist/lib/components/InputContainer/subtypes.ts +0 -2
  209. package/dist/lib/components/InputContainer/types.ts +0 -2
  210. package/dist/lib/components/InputCounter/InputCounter.tsx +255 -246
  211. package/dist/lib/components/InputCounter/index.ts +0 -2
  212. package/dist/lib/components/InputCounter/styles.tsx +0 -2
  213. package/dist/lib/components/InputCounter/subtypes.ts +0 -2
  214. package/dist/lib/components/InputCounter/types.ts +0 -2
  215. package/dist/lib/components/InputImage/EmptyContainer.tsx +3 -4
  216. package/dist/lib/components/InputImage/HoverContainer.tsx +3 -4
  217. package/dist/lib/components/InputImage/InputImage.tsx +139 -130
  218. package/dist/lib/components/InputImage/index.ts +0 -2
  219. package/dist/lib/components/InputImage/styles.tsx +0 -2
  220. package/dist/lib/components/InputImage/subtypes.ts +0 -2
  221. package/dist/lib/components/InputImage/types.ts +0 -2
  222. package/dist/lib/components/InputPhone/InputPhone.tsx +306 -300
  223. package/dist/lib/components/InputPhone/index.ts +0 -2
  224. package/dist/lib/components/InputPhone/styles.tsx +0 -2
  225. package/dist/lib/components/InputPhone/types.ts +0 -2
  226. package/dist/lib/components/InputPhone/utils/countries.ts +0 -2
  227. package/dist/lib/components/InputPin/InputPin.tsx +123 -124
  228. package/dist/lib/components/InputPin/index.ts +0 -2
  229. package/dist/lib/components/InputPin/styles.tsx +0 -2
  230. package/dist/lib/components/InputPin/subtypes.ts +0 -2
  231. package/dist/lib/components/InputPin/types.ts +0 -2
  232. package/dist/lib/components/InputSlider/InputSlider.tsx +172 -163
  233. package/dist/lib/components/InputSlider/Slider.tsx +39 -48
  234. package/dist/lib/components/InputSlider/index.ts +0 -2
  235. package/dist/lib/components/InputSlider/styles.tsx +0 -2
  236. package/dist/lib/components/InputSlider/types.ts +2 -3
  237. package/dist/lib/components/Key/Key.tsx +40 -39
  238. package/dist/lib/components/Key/index.ts +0 -2
  239. package/dist/lib/components/Key/styles.tsx +0 -2
  240. package/dist/lib/components/Key/types.ts +0 -2
  241. package/dist/lib/components/LibIcon/LibIcon.tsx +3 -4
  242. package/dist/lib/components/LibIcon/index.ts +0 -2
  243. package/dist/lib/components/LibIcon/types.ts +0 -2
  244. package/dist/lib/components/Link/Link.tsx +79 -59
  245. package/dist/lib/components/Link/index.ts +0 -2
  246. package/dist/lib/components/Link/types.ts +0 -2
  247. package/dist/lib/components/Linkify/Linkify.tsx +26 -19
  248. package/dist/lib/components/Linkify/index.ts +0 -2
  249. package/dist/lib/components/Linkify/types.ts +0 -2
  250. package/dist/lib/components/ListGroup/ListGroup.tsx +96 -99
  251. package/dist/lib/components/ListGroup/ListGroupItem.tsx +149 -142
  252. package/dist/lib/components/ListGroup/ListGroupTitle.tsx +43 -43
  253. package/dist/lib/components/ListGroup/index.ts +0 -2
  254. package/dist/lib/components/ListGroup/styles.tsx +0 -2
  255. package/dist/lib/components/ListGroup/types.ts +2 -10
  256. package/dist/lib/components/Loader/Loader.tsx +32 -22
  257. package/dist/lib/components/Loader/index.ts +0 -2
  258. package/dist/lib/components/Loader/styles.tsx +0 -2
  259. package/dist/lib/components/Loader/templates/LoaderFour.tsx +24 -21
  260. package/dist/lib/components/Loader/templates/LoaderOne.tsx +3 -6
  261. package/dist/lib/components/Loader/templates/LoaderThree.tsx +27 -26
  262. package/dist/lib/components/Loader/templates/LoaderTwo.tsx +22 -21
  263. package/dist/lib/components/Loader/types.ts +0 -2
  264. package/dist/lib/components/Main/Main.tsx +42 -39
  265. package/dist/lib/components/Main/index.ts +0 -2
  266. package/dist/lib/components/Main/styles.tsx +5 -5
  267. package/dist/lib/components/Main/types.ts +1 -5
  268. package/dist/lib/components/MarkdownContainer/MarkdownContainer.tsx +35 -28
  269. package/dist/lib/components/MarkdownContainer/index.ts +0 -2
  270. package/dist/lib/components/MarkdownContainer/styles.tsx +0 -2
  271. package/dist/lib/components/MarkdownContainer/types.ts +0 -2
  272. package/dist/lib/components/MarkdownEditor/MarkdownEditor.tsx +153 -149
  273. package/dist/lib/components/MarkdownEditor/MdEditorButtons/EditorButtonTitles.tsx +0 -2
  274. package/dist/lib/components/MarkdownEditor/MdEditorButtons/EditorButtons.tsx +0 -2
  275. package/dist/lib/components/MarkdownEditor/MdEditorButtons/MarkdownButtons.tsx +0 -2
  276. package/dist/lib/components/MarkdownEditor/MdEditorInput.tsx +68 -78
  277. package/dist/lib/components/MarkdownEditor/index.ts +0 -2
  278. package/dist/lib/components/MarkdownEditor/markdown-buttons.tsx +0 -2
  279. package/dist/lib/components/MarkdownEditor/styles.tsx +2 -2
  280. package/dist/lib/components/MarkdownEditor/subtypes.ts +3 -4
  281. package/dist/lib/components/MarkdownEditor/types.ts +0 -2
  282. package/dist/lib/components/Masonry/Masonry.tsx +59 -53
  283. package/dist/lib/components/Masonry/index.ts +0 -2
  284. package/dist/lib/components/Masonry/styles.tsx +0 -2
  285. package/dist/lib/components/Masonry/types.ts +0 -2
  286. package/dist/lib/components/Masonry/utils.ts +0 -2
  287. package/dist/lib/components/Messaging/Message.tsx +95 -89
  288. package/dist/lib/components/Messaging/MessageForm.tsx +126 -117
  289. package/dist/lib/components/Messaging/MessagesContainer.tsx +26 -13
  290. package/dist/lib/components/Messaging/MessagesList.tsx +117 -113
  291. package/dist/lib/components/Messaging/Messaging.tsx +97 -97
  292. package/dist/lib/components/Messaging/index.ts +0 -2
  293. package/dist/lib/components/Messaging/styles.tsx +1 -2
  294. package/dist/lib/components/Messaging/types.ts +0 -12
  295. package/dist/lib/components/Meta/Meta.tsx +69 -0
  296. package/dist/lib/components/Meta/index.ts +3 -0
  297. package/dist/lib/components/Meta/types.ts +14 -0
  298. package/dist/lib/components/Modal/Modal.tsx +108 -101
  299. package/dist/lib/components/Modal/index.ts +0 -2
  300. package/dist/lib/components/Modal/styles.tsx +0 -2
  301. package/dist/lib/components/Modal/types.ts +0 -2
  302. package/dist/lib/components/PageLayout/PageLayout.tsx +88 -72
  303. package/dist/lib/components/PageLayout/index.ts +0 -2
  304. package/dist/lib/components/PageLayout/types.ts +20 -22
  305. package/dist/lib/components/PageLoading/PageLoading.tsx +57 -54
  306. package/dist/lib/components/PageLoading/index.ts +0 -2
  307. package/dist/lib/components/PageLoading/styles.tsx +0 -2
  308. package/dist/lib/components/PageLoading/types.ts +0 -2
  309. package/dist/lib/components/Pagination/Pagination.tsx +218 -221
  310. package/dist/lib/components/Pagination/PaginationButton.tsx +45 -44
  311. package/dist/lib/components/Pagination/index.ts +0 -2
  312. package/dist/lib/components/Pagination/styles.tsx +0 -2
  313. package/dist/lib/components/Pagination/types.ts +0 -6
  314. package/dist/lib/components/Paginator/Paginator.tsx +150 -145
  315. package/dist/lib/components/Paginator/index.ts +0 -2
  316. package/dist/lib/components/Paginator/styles.tsx +0 -2
  317. package/dist/lib/components/Paginator/types.ts +0 -2
  318. package/dist/lib/components/ProgressBar/ProgressBar.tsx +58 -52
  319. package/dist/lib/components/ProgressBar/index.ts +0 -2
  320. package/dist/lib/components/ProgressBar/styles.tsx +0 -2
  321. package/dist/lib/components/ProgressBar/types.ts +0 -2
  322. package/dist/lib/components/ProgressCircle/Circle.tsx +3 -4
  323. package/dist/lib/components/ProgressCircle/ProgressCircle.tsx +80 -77
  324. package/dist/lib/components/ProgressCircle/ProgressCircleFn.tsx +34 -40
  325. package/dist/lib/components/ProgressCircle/Value.tsx +3 -4
  326. package/dist/lib/components/ProgressCircle/clean-percentage.ts +0 -2
  327. package/dist/lib/components/ProgressCircle/index.ts +0 -2
  328. package/dist/lib/components/ProgressCircle/styles.tsx +0 -2
  329. package/dist/lib/components/ProgressCircle/subtypes.ts +0 -2
  330. package/dist/lib/components/ProgressCircle/types.ts +0 -2
  331. package/dist/lib/components/Rating/Rating.tsx +156 -155
  332. package/dist/lib/components/Rating/index.ts +0 -2
  333. package/dist/lib/components/Rating/styles.tsx +0 -2
  334. package/dist/lib/components/Rating/types.ts +0 -2
  335. package/dist/lib/components/ResetScroll/ResetScroll.tsx +9 -4
  336. package/dist/lib/components/ResetScroll/index.ts +0 -2
  337. package/dist/lib/components/Section/Section.tsx +39 -24
  338. package/dist/lib/components/Section/index.ts +0 -2
  339. package/dist/lib/components/Section/styles.tsx +0 -2
  340. package/dist/lib/components/Section/types.ts +0 -2
  341. package/dist/lib/components/Select/Select.tsx +238 -232
  342. package/dist/lib/components/Select/SelectButton.tsx +48 -54
  343. package/dist/lib/components/Select/index.ts +0 -2
  344. package/dist/lib/components/Select/styles.tsx +0 -2
  345. package/dist/lib/components/Select/subtypes.ts +1 -2
  346. package/dist/lib/components/Select/types.ts +0 -2
  347. package/dist/lib/components/Skeleton/Skeleton.tsx +56 -54
  348. package/dist/lib/components/Skeleton/SkeletonCard.tsx +73 -70
  349. package/dist/lib/components/Skeleton/SkeletonShine.tsx +24 -20
  350. package/dist/lib/components/Skeleton/index.ts +0 -2
  351. package/dist/lib/components/Skeleton/styles.tsx +1 -9
  352. package/dist/lib/components/Skeleton/subtypes.ts +0 -2
  353. package/dist/lib/components/Skeleton/types.ts +0 -2
  354. package/dist/lib/components/Slideshow/Slideshow.tsx +163 -190
  355. package/dist/lib/components/Slideshow/SlideshowButton.tsx +3 -4
  356. package/dist/lib/components/Slideshow/SlideshowPagination.tsx +3 -4
  357. package/dist/lib/components/Slideshow/index.ts +0 -2
  358. package/dist/lib/components/Slideshow/styles.tsx +0 -2
  359. package/dist/lib/components/Slideshow/subtypes.ts +0 -2
  360. package/dist/lib/components/Slideshow/types.ts +0 -2
  361. package/dist/lib/components/SrOnly/SrOnly.tsx +28 -17
  362. package/dist/lib/components/SrOnly/index.ts +0 -2
  363. package/dist/lib/components/SrOnly/styles.tsx +0 -2
  364. package/dist/lib/components/SrOnly/types.ts +0 -2
  365. package/dist/lib/components/Stepper/Step.tsx +106 -102
  366. package/dist/lib/components/Stepper/Stepper.tsx +83 -87
  367. package/dist/lib/components/Stepper/index.ts +0 -2
  368. package/dist/lib/components/Stepper/styles.tsx +0 -2
  369. package/dist/lib/components/Stepper/types.ts +0 -6
  370. package/dist/lib/components/Sticky/Sticky.tsx +38 -24
  371. package/dist/lib/components/Sticky/index.ts +0 -2
  372. package/dist/lib/components/Sticky/styles.tsx +0 -2
  373. package/dist/lib/components/Sticky/types.ts +0 -2
  374. package/dist/lib/components/Table/TBody.tsx +22 -12
  375. package/dist/lib/components/Table/THead.tsx +22 -12
  376. package/dist/lib/components/Table/Table.tsx +114 -110
  377. package/dist/lib/components/Table/Td.tsx +29 -20
  378. package/dist/lib/components/Table/Tr.tsx +18 -12
  379. package/dist/lib/components/Table/index.ts +0 -2
  380. package/dist/lib/components/Table/styles.tsx +0 -2
  381. package/dist/lib/components/Table/types.ts +0 -12
  382. package/dist/lib/components/Tabs/TabButton.tsx +47 -43
  383. package/dist/lib/components/Tabs/TabItem.tsx +38 -27
  384. package/dist/lib/components/Tabs/Tabs.tsx +109 -106
  385. package/dist/lib/components/Tabs/TabsButtonsContainer.tsx +42 -40
  386. package/dist/lib/components/Tabs/TabsContainer.tsx +30 -17
  387. package/dist/lib/components/Tabs/index.ts +0 -2
  388. package/dist/lib/components/Tabs/styles.tsx +0 -2
  389. package/dist/lib/components/Tabs/types.ts +0 -12
  390. package/dist/lib/components/Tag/Tag.tsx +91 -87
  391. package/dist/lib/components/Tag/index.ts +0 -2
  392. package/dist/lib/components/Tag/styles.tsx +0 -2
  393. package/dist/lib/components/Tag/types.ts +0 -2
  394. package/dist/lib/components/Text/Text.tsx +52 -50
  395. package/dist/lib/components/Text/index.ts +0 -2
  396. package/dist/lib/components/Text/styles.tsx +0 -2
  397. package/dist/lib/components/Text/subtypes.ts +0 -2
  398. package/dist/lib/components/Text/templates/Blockquote.tsx +25 -31
  399. package/dist/lib/components/Text/templates/Dl.tsx +25 -31
  400. package/dist/lib/components/Text/templates/Em.tsx +25 -31
  401. package/dist/lib/components/Text/templates/H1.tsx +27 -33
  402. package/dist/lib/components/Text/templates/H2.tsx +27 -33
  403. package/dist/lib/components/Text/templates/H3.tsx +27 -33
  404. package/dist/lib/components/Text/templates/H4.tsx +27 -33
  405. package/dist/lib/components/Text/templates/H5.tsx +27 -33
  406. package/dist/lib/components/Text/templates/H6.tsx +25 -31
  407. package/dist/lib/components/Text/templates/Ol.tsx +25 -31
  408. package/dist/lib/components/Text/templates/P.tsx +25 -31
  409. package/dist/lib/components/Text/templates/Small.tsx +25 -31
  410. package/dist/lib/components/Text/templates/Strong.tsx +25 -31
  411. package/dist/lib/components/Text/templates/Ul.tsx +25 -31
  412. package/dist/lib/components/Text/types.ts +0 -2
  413. package/dist/lib/components/TextIcon/TextIcon.tsx +88 -92
  414. package/dist/lib/components/TextIcon/index.ts +0 -2
  415. package/dist/lib/components/TextIcon/styles.tsx +0 -2
  416. package/dist/lib/components/TextIcon/types.ts +0 -2
  417. package/dist/lib/components/TextIcon/utils.ts +0 -1
  418. package/dist/lib/components/Timepicker/Timepicker.tsx +249 -237
  419. package/dist/lib/components/Timepicker/index.ts +0 -2
  420. package/dist/lib/components/Timepicker/styles.tsx +0 -2
  421. package/dist/lib/components/Timepicker/types.ts +0 -2
  422. package/dist/lib/components/Toast/Toast.tsx +160 -168
  423. package/dist/lib/components/Toast/Toaster.tsx +108 -120
  424. package/dist/lib/components/Toast/index.ts +1 -3
  425. package/dist/lib/components/Toast/styles.tsx +0 -2
  426. package/dist/lib/components/Toast/types.ts +0 -2
  427. package/dist/lib/components/Tooltip/Tooltip.tsx +113 -104
  428. package/dist/lib/components/Tooltip/index.ts +0 -2
  429. package/dist/lib/components/Tooltip/styles.tsx +0 -2
  430. package/dist/lib/components/Tooltip/types.ts +0 -2
  431. package/dist/lib/components/Truncate/Truncate.tsx +105 -90
  432. package/dist/lib/components/Truncate/index.ts +0 -2
  433. package/dist/lib/components/Truncate/styles.tsx +1 -2
  434. package/dist/lib/components/Truncate/types.ts +0 -2
  435. package/dist/lib/components/Video/Video.tsx +63 -55
  436. package/dist/lib/components/Video/index.ts +0 -2
  437. package/dist/lib/components/Video/styles.tsx +0 -2
  438. package/dist/lib/components/Video/types.ts +0 -2
  439. package/dist/lib/components/Wrapper/Wrapper.tsx +44 -37
  440. package/dist/lib/components/Wrapper/index.ts +0 -2
  441. package/dist/lib/components/Wrapper/styles.tsx +5 -3
  442. package/dist/lib/components/Wrapper/types.ts +0 -2
  443. package/dist/lib/components/Youtube/Youtube.tsx +42 -37
  444. package/dist/lib/components/Youtube/index.ts +0 -2
  445. package/dist/lib/components/Youtube/styles.tsx +0 -2
  446. package/dist/lib/components/Youtube/types.ts +0 -2
  447. package/dist/lib/context/Theme.context.tsx +21 -13
  448. package/dist/lib/context/Toaster/Toaster.context.tsx +18 -18
  449. package/dist/lib/context/Toaster/index.ts +1 -3
  450. package/dist/lib/context/Toaster/toast.reducer.ts +0 -2
  451. package/dist/lib/hooks/index.ts +0 -2
  452. package/dist/lib/hooks/useClickOutside.tsx +14 -9
  453. package/dist/lib/hooks/useCopyToClipboard.tsx +9 -4
  454. package/dist/lib/hooks/useDebounce.tsx +11 -6
  455. package/dist/lib/hooks/useExportData.tsx +14 -4
  456. package/dist/lib/hooks/useFetch.tsx +11 -6
  457. package/dist/lib/hooks/useForm.tsx +16 -6
  458. package/dist/lib/hooks/useIsOverflow.ts +16 -14
  459. package/dist/lib/hooks/useKeyPress.tsx +12 -6
  460. package/dist/lib/hooks/useMaxWidth.tsx +9 -5
  461. package/dist/lib/hooks/useMergeRefs.ts +15 -12
  462. package/dist/lib/hooks/useMinWidth.tsx +9 -5
  463. package/dist/lib/hooks/usePaginatedData.tsx +11 -6
  464. package/dist/lib/hooks/usePagination.tsx +18 -8
  465. package/dist/lib/hooks/useTouchScreen.tsx +8 -4
  466. package/dist/lib/hooks/useTranslation.tsx +18 -5
  467. package/dist/lib/icons/ArrowUp.tsx +3 -4
  468. package/dist/lib/icons/Bold.tsx +3 -4
  469. package/dist/lib/icons/Calendar.tsx +3 -4
  470. package/dist/lib/icons/CaretDown.tsx +3 -4
  471. package/dist/lib/icons/Check.tsx +3 -4
  472. package/dist/lib/icons/CheckCircle.tsx +3 -4
  473. package/dist/lib/icons/ChevronDown.tsx +3 -4
  474. package/dist/lib/icons/ChevronLeft.tsx +3 -4
  475. package/dist/lib/icons/ChevronRight.tsx +3 -4
  476. package/dist/lib/icons/ChevronUp.tsx +3 -4
  477. package/dist/lib/icons/Clipboard.tsx +3 -4
  478. package/dist/lib/icons/Clock.tsx +3 -4
  479. package/dist/lib/icons/Close.tsx +3 -4
  480. package/dist/lib/icons/CloseCircle.tsx +3 -4
  481. package/dist/lib/icons/Code.tsx +3 -4
  482. package/dist/lib/icons/CodeBlock.tsx +3 -4
  483. package/dist/lib/icons/Comment.tsx +3 -4
  484. package/dist/lib/icons/Drag.tsx +3 -4
  485. package/dist/lib/icons/Edit.tsx +3 -4
  486. package/dist/lib/icons/EditorCode.tsx +3 -4
  487. package/dist/lib/icons/EditorLive.tsx +3 -4
  488. package/dist/lib/icons/EditorPreview.tsx +3 -4
  489. package/dist/lib/icons/Hide.tsx +3 -4
  490. package/dist/lib/icons/Image.tsx +3 -4
  491. package/dist/lib/icons/Italic.tsx +3 -4
  492. package/dist/lib/icons/Link.tsx +3 -4
  493. package/dist/lib/icons/Minus.tsx +3 -4
  494. package/dist/lib/icons/OrderedList.tsx +3 -4
  495. package/dist/lib/icons/Plus.tsx +3 -4
  496. package/dist/lib/icons/Quote.tsx +3 -4
  497. package/dist/lib/icons/Search.tsx +3 -4
  498. package/dist/lib/icons/Send.tsx +3 -4
  499. package/dist/lib/icons/Separator.tsx +3 -4
  500. package/dist/lib/icons/Show.tsx +3 -4
  501. package/dist/lib/icons/Star.tsx +3 -4
  502. package/dist/lib/icons/StarFull.tsx +3 -4
  503. package/dist/lib/icons/Strikethrough.tsx +3 -4
  504. package/dist/lib/icons/Underline.tsx +3 -8
  505. package/dist/lib/icons/UnorderedList.tsx +3 -4
  506. package/dist/lib/icons/index.ts +0 -2
  507. package/dist/lib/icons/styles.tsx +0 -2
  508. package/dist/lib/icons/types.ts +0 -2
  509. package/dist/lib/index.css +60 -100
  510. package/dist/lib/index.ts +2 -4
  511. package/dist/lib/lib-utils/append-styles.ts +0 -2
  512. package/dist/lib/lib-utils/colors-maps.ts +144 -146
  513. package/dist/lib/lib-utils/generate-lib-tokens.ts +0 -2
  514. package/dist/lib/lib-utils/get-highlighted-text.tsx +0 -2
  515. package/dist/lib/lib-utils/get-icon-size-from-font.ts +0 -2
  516. package/dist/lib/lib-utils/index.ts +0 -2
  517. package/dist/lib/lib-utils/round-icon-size.ts +0 -2
  518. package/dist/lib/lib-utils/transfom-search-keys.ts +1 -3
  519. package/dist/lib/modules-declare.d.ts +1 -0
  520. package/dist/lib/types/component-items.ts +2 -38
  521. package/dist/lib/types/components-props.ts +1 -2
  522. package/dist/lib/types/{type-values.ts → design-tokens.ts} +2 -3
  523. package/dist/lib/types/generate-int-range.ts +0 -2
  524. package/dist/lib/types/global.ts +74 -82
  525. package/dist/lib/types/index.ts +1 -3
  526. package/dist/lib/types/theme.ts +0 -2
  527. package/dist/lib/utils/StyleSheetManager.tsx +0 -2
  528. package/dist/lib/utils/index.ts +0 -2
  529. package/dist/lib/utils/linkify-text.tsx +0 -2
  530. package/dist/lib/utils/options-markdown.ts +0 -2
  531. package/dist/lib/utils/set-default-theme.ts +1 -3
  532. package/package.json +106 -107
  533. package/dist/lib/components/Helmet/Helmet.tsx +0 -65
  534. package/dist/lib/components/Helmet/index.ts +0 -3
  535. package/dist/lib/components/Helmet/types.ts +0 -18
@@ -1,21 +1,34 @@
1
- /*=============================================== MessagesContainer ===============================================*/
2
-
3
- import { forwardRef } from "react"
1
+ import type { FC } from "react"
4
2
  import { StyledMessagesContainer } from "./styles"
5
3
  import type { ILibMessagesContainer } from "./types"
6
4
 
7
5
  /**
8
- * @description Returns a MessagesContainer component
9
- * @link https://documentation-components-react.vercel.app/components/messaging
6
+ * MessagesContainer component for wrapping chat messages in a styled scrollable container.
7
+ *
8
+ * @component
10
9
  * @extends HTMLDivElement
11
- * @prop data-testid?: string
12
- * @prop as?: ElementType
13
- * @prop ref?: ForwardedRef<HTMLDivElement>
10
+ * @param {Object} props - MessagesContainer props.
11
+ * @param {string} [props.data-testid] - Test id for testing purposes.
12
+ * @param {ElementType} [props.as] - Custom element type to render as.
13
+ * @param {Ref<HTMLDivElement>} [props.ref] - Ref forwarded to the root element.
14
+ * @param {ReactNode} [props.children] - Messages or content to display inside the container.
15
+ * @param {any} [props.rest] - Additional props passed to the root element.
16
+ * @returns {JSX.Element} The rendered MessagesContainer component.
17
+ *
18
+ * @see https://documentation-components-react.vercel.app/components/messaging
19
+ * @example
20
+ * <MessagesContainer>
21
+ * <Message type="sent" text="Hello!" />
22
+ * <Message type="received" text="Hi!" />
23
+ * </MessagesContainer>
14
24
  */
15
- export const MessagesContainer = forwardRef<
16
- HTMLDivElement,
17
- ILibMessagesContainer
18
- >(({ "data-testid": testid, as, children, ...rest }, ref) => {
25
+ export const MessagesContainer: FC<ILibMessagesContainer> = ({
26
+ "data-testid": testid,
27
+ as,
28
+ ref,
29
+ children,
30
+ ...rest
31
+ }) => {
19
32
  return (
20
33
  <StyledMessagesContainer
21
34
  data-testid={testid}
@@ -26,4 +39,4 @@ export const MessagesContainer = forwardRef<
26
39
  {children}
27
40
  </StyledMessagesContainer>
28
41
  )
29
- })
42
+ }
@@ -1,6 +1,4 @@
1
- /*=============================================== MessagesList ===============================================*/
2
-
3
- import { forwardRef, useRef, useState, useEffect } from "react"
1
+ import { useRef, useState, useEffect, type FC } from "react"
4
2
  import classNames from "classnames"
5
3
  import { Text, useMergeRefs } from "../../"
6
4
  import { roundIconSize } from "../../lib-utils"
@@ -9,128 +7,134 @@ import { StyledMessagesList, MessageListBottom, ScrollButton } from "./styles"
9
7
  import type { ILibMessagesList } from "./types"
10
8
 
11
9
  /**
12
- * @description Returns a MessagesList component
13
- * @link https://documentation-components-react.vercel.app/components/messaging
10
+ * MessagesList component for displaying a scrollable list of chat messages with optional empty state and scroll-to-bottom button.
11
+ *
12
+ * @component
14
13
  * @extends HTMLDivElement & ILibFlexbox
15
- * @prop data-testid?: string
16
- * @prop as?: ElementType
17
- * @prop ref?: ForwardedRef<HTMLDivElement>
18
- * @prop children?: Array<ReactNode>
19
- * @prop emptyText?: string
20
- * @prop hideScrollButton?: boolean
21
- * @prop scrollButton?: { icon?: string | JSX.Element; iconSize?: number; positionFromBottom?: number; iconBaseUrl?: string } => only if hideScrollButton is false or undefined
14
+ * @param {Object} props - MessagesList props.
15
+ * @param {string} [props.data-testid] - Test id for testing purposes.
16
+ * @param {ElementType} [props.as] - Custom element type to render as.
17
+ * @param {Ref<HTMLDivElement>} [props.ref] - Ref forwarded to the root element.
18
+ * @param {ReactNode[]} [props.children] - Array of message elements to display.
19
+ * @param {string} [props.emptyText="No message yet."] - Text to display when there are no messages.
20
+ * @param {boolean} [props.hideScrollButton] - Hide the scroll-to-bottom button.
21
+ * @param {{ icon?: string | JSX.Element; iconSize?: number; positionFromBottom?: number; iconBaseUrl?: string }} [props.scrollButton] - Customization for the scroll button (only if hideScrollButton is false or undefined).
22
+ * @param {any} [props.rest] - Additional props passed to the root element.
23
+ * @returns {JSX.Element} The rendered MessagesList component.
24
+ *
25
+ * @see https://documentation-components-react.vercel.app/components/messaging
26
+ * @example
27
+ * <MessagesList>
28
+ * <Message type="sent" text="Hello!" />
29
+ * <Message type="received" text="Hi!" />
30
+ * </MessagesList>
22
31
  */
23
- export const MessagesList = forwardRef<HTMLDivElement, ILibMessagesList>(
24
- (
25
- {
26
- "data-testid": testid,
27
- as,
28
- className,
29
- children,
30
- emptyText: textEmpty = "No message yet.",
31
- scrollButton,
32
- hideScrollButton,
33
- ...rest
34
- },
35
- ref
36
- ) => {
37
- const [isButtonVisible, setIsButtonVisible] = useState(false)
32
+ export const MessagesList: FC<ILibMessagesList> = ({
33
+ "data-testid": testid,
34
+ as,
35
+ ref,
36
+ className,
37
+ children,
38
+ emptyText: textEmpty = "No message yet.",
39
+ scrollButton,
40
+ hideScrollButton,
41
+ ...rest
42
+ }) => {
43
+ const [isButtonVisible, setIsButtonVisible] = useState(false)
38
44
 
39
- const containerRef = useRef<HTMLDivElement>(null)
40
- const bottomRef = useRef<HTMLDivElement>(null)
45
+ const containerRef = useRef<HTMLDivElement>(null as any)
46
+ const bottomRef = useRef<HTMLDivElement>(null as any)
41
47
 
42
- const scrollToBottom = () => {
43
- if (containerRef && containerRef.current) {
44
- const scrollHeight = containerRef?.current?.scrollHeight
45
- const height = containerRef?.current?.clientHeight
46
- const maxScrollTop = scrollHeight - height
48
+ const scrollToBottom = () => {
49
+ if (containerRef && containerRef.current) {
50
+ const scrollHeight = containerRef?.current?.scrollHeight
51
+ const height = containerRef?.current?.clientHeight
52
+ const maxScrollTop = scrollHeight - height
47
53
 
48
- containerRef.current.scrollTop =
49
- maxScrollTop > 0 ? maxScrollTop : 0
54
+ containerRef.current.scrollTop = maxScrollTop > 0 ? maxScrollTop : 0
50
55
 
51
- setIsButtonVisible(false)
52
- }
56
+ setIsButtonVisible(false)
53
57
  }
58
+ }
54
59
 
55
- useEffect(() => {
56
- if (children?.length) scrollToBottom()
60
+ useEffect(() => {
61
+ if (children?.length) scrollToBottom()
57
62
 
58
- containerRef?.current?.addEventListener("scroll", () => {
59
- const scroll = containerRef.current?.scrollTop
60
- const height = containerRef?.current?.clientHeight
63
+ containerRef?.current?.addEventListener("scroll", () => {
64
+ const scroll = containerRef.current?.scrollTop
65
+ const height = containerRef?.current?.clientHeight
61
66
 
62
- if (scroll && height) {
63
- if (scroll < height) {
64
- setIsButtonVisible(true)
65
- } else {
66
- setIsButtonVisible(false)
67
- }
67
+ if (scroll && height) {
68
+ if (scroll < height) {
69
+ setIsButtonVisible(true)
70
+ } else {
71
+ setIsButtonVisible(false)
68
72
  }
69
- })
70
- }, [children?.length])
71
-
72
- const isEmpty: boolean = !children?.length
73
+ }
74
+ })
75
+ }, [children?.length])
73
76
 
74
- return (
75
- <StyledMessagesList
76
- data-testid={testid}
77
- ref={useMergeRefs([ref, containerRef])}
78
- as={as}
79
- className={className}
80
- flexDirection="column"
81
- gap="s"
82
- justifyContent={isEmpty ? "center" : "flex-start"}
83
- alignItems={isEmpty ? "center" : "stretch"}
84
- {...rest}
85
- >
86
- {children?.length ? (
87
- <>
88
- {children}
77
+ const isEmpty: boolean = !children?.length
89
78
 
90
- <MessageListBottom
91
- data-testid={testid && `${testid}.ListBottom`}
92
- ref={bottomRef}
93
- className={className && "MessageListBottom"}
94
- />
95
- </>
96
- ) : (
97
- <Text
98
- data-testid={testid && `${testid}.EmptyText`}
99
- color="gray"
100
- className={className && "MessageListEmptyText"}
101
- >
102
- {textEmpty}
103
- </Text>
104
- )}
79
+ return (
80
+ <StyledMessagesList
81
+ data-testid={testid}
82
+ ref={useMergeRefs([ref, containerRef])}
83
+ as={as}
84
+ className={className}
85
+ flexDirection="column"
86
+ gap="s"
87
+ justifyContent={isEmpty ? "center" : "flex-start"}
88
+ alignItems={isEmpty ? "center" : "stretch"}
89
+ {...rest}
90
+ >
91
+ {children?.length ? (
92
+ <>
93
+ {children}
105
94
 
106
- {!hideScrollButton && (
107
- <ScrollButton
108
- data-testid={testid && `${testid}.ScrollButton`}
109
- className={classNames(
110
- {
111
- MessagesListScrollButton: className,
112
- },
113
- { Visible: isButtonVisible }
114
- )}
115
- id="message-container-scroll-button"
116
- icon={
117
- scrollButton?.icon ?? (
118
- <ChevronDown
119
- data-testid={
120
- testid && `${testid}.ScrollButton.Icon`
121
- }
122
- className={className && "ScrollIcon"}
123
- size={roundIconSize(32)}
124
- />
125
- )
126
- }
127
- onClick={scrollToBottom}
128
- variant="ghost"
129
- shadow="s"
130
- iconBaseUrl={scrollButton?.iconBaseUrl}
95
+ <MessageListBottom
96
+ data-testid={testid && `${testid}.ListBottom`}
97
+ ref={bottomRef}
98
+ className={className && "MessageListBottom"}
131
99
  />
132
- )}
133
- </StyledMessagesList>
134
- )
135
- }
136
- )
100
+ </>
101
+ ) : (
102
+ <Text
103
+ data-testid={testid && `${testid}.EmptyText`}
104
+ color="gray"
105
+ className={className && "MessageListEmptyText"}
106
+ >
107
+ {textEmpty}
108
+ </Text>
109
+ )}
110
+
111
+ {!hideScrollButton && (
112
+ <ScrollButton
113
+ data-testid={testid && `${testid}.ScrollButton`}
114
+ className={classNames(
115
+ {
116
+ MessagesListScrollButton: className,
117
+ },
118
+ { Visible: isButtonVisible }
119
+ )}
120
+ id="message-container-scroll-button"
121
+ icon={
122
+ scrollButton?.icon ?? (
123
+ <ChevronDown
124
+ data-testid={
125
+ testid && `${testid}.ScrollButton.Icon`
126
+ }
127
+ className={className && "ScrollIcon"}
128
+ size={roundIconSize(32)}
129
+ />
130
+ )
131
+ }
132
+ onClick={scrollToBottom}
133
+ variant="ghost"
134
+ shadow="s"
135
+ iconBaseUrl={scrollButton?.iconBaseUrl}
136
+ />
137
+ )}
138
+ </StyledMessagesList>
139
+ )
140
+ }
@@ -1,6 +1,4 @@
1
- /*=============================================== Messaging component ===============================================*/
2
-
3
- import { forwardRef, useState } from "react"
1
+ import { useState, type FC } from "react"
4
2
  import { getToday, uuid, stringifyPx } from "@julseb-lib/utils"
5
3
  import { Hr } from "../../"
6
4
  import { appendStyles } from "../../lib-utils"
@@ -11,47 +9,51 @@ import { Message } from "./Message"
11
9
  import type { ILibMessaging } from "./types"
12
10
 
13
11
  /**
14
- * @description Returns a Messaging component
15
- * @link https://documentation-components-react.vercel.app/components/messaging
12
+ * Messaging component for displaying a complete chat interface with messages list, input form, and scroll handling.
13
+ *
14
+ * @component
16
15
  * @extends HTMLDivElement
17
- * @prop data-testid?: string
18
- * @prop as?: ElementType
19
- * @prop ref?: ForwardedRef<HTMLDivElement>
20
- * @prop items: Array<LibMessage>
21
- * @prop textDateTime?: string
22
- * @prop emptyText?: string
23
- * @prop iconScroll?: string | JSX.Element
24
- * @prop iconScrollSize?: number
16
+ * @param {Object} props - Messaging props.
17
+ * @param {string} [props.data-testid] - Test id for testing purposes.
18
+ * @param {ElementType} [props.as] - Custom element type to render as.
19
+ * @param {Ref<HTMLDivElement>} [props.ref] - Ref forwarded to the root element.
20
+ * @param {string} [props.className] - Additional class names.
21
+ * @param {Array<LibMessage>} props.items - Array of message objects to display.
22
+ * @param {string} [props.textDateTime] - Text between date and time in messages.
23
+ * @param {string} [props.emptyText] - Text to display when there are no messages.
24
+ * @param {() => void} [props.handleSubmit] - Function to call on form submit.
25
+ * @param {{ message: string; setMessage: React.Dispatch<React.SetStateAction<string>>; placeholder?: string; autoFocus?: boolean }} props.input - Input state and handlers for the message form.
26
+ * @param {{ icon?: string | JSX.Element; text?: string }} [props.button] - Button configuration for the message form.
27
+ * @param {any} [props.rest] - Additional props passed to the root element.
28
+ * @returns {JSX.Element} The rendered Messaging component.
25
29
  *
26
- * @type LibMessage
27
- * @prop data-testid?: string
28
- * @prop className?: string
29
- * @prop id?: string
30
- * @prop ref?: ForwardedRef<HTMLDivElement>
31
- * @prop type: "sent" | "received"
32
- * @prop text: string
33
- * @prop date?: Date | string
34
- * @prop time?: string
30
+ * @see https://documentation-components-react.vercel.app/components/messaging
31
+ * @example
32
+ * <Messaging
33
+ * items={[
34
+ * { type: "sent", text: "Hello!", date: new Date(), time: "14:30" },
35
+ * { type: "received", text: "Hi!", date: new Date(), time: "14:31" }
36
+ * ]}
37
+ * input={{ message, setMessage, placeholder: "Type a message..." }}
38
+ * handleSubmit={handleSend}
39
+ * />
35
40
  */
36
- export const Messaging = forwardRef<HTMLDivElement, ILibMessaging>(
37
- (
38
- {
39
- "data-testid": testid,
40
- as,
41
- className,
42
- items,
43
- textDateTime,
44
- emptyText,
45
- handleSubmit,
46
- input,
47
- button,
48
- ...rest
49
- },
50
- ref
51
- ) => {
52
- const [inputHeight, setInputHeight] = useState(32)
41
+ export const Messaging: FC<ILibMessaging> = ({
42
+ "data-testid": testid,
43
+ as,
44
+ ref,
45
+ className,
46
+ items,
47
+ textDateTime,
48
+ emptyText,
49
+ handleSubmit,
50
+ input,
51
+ button,
52
+ ...rest
53
+ }) => {
54
+ const [inputHeight, setInputHeight] = useState(32)
53
55
 
54
- appendStyles(`
56
+ appendStyles(`
55
57
  #message-container-scroll-button,
56
58
  #messaging-form,
57
59
  #messaging-form-input {
@@ -61,63 +63,61 @@ export const Messaging = forwardRef<HTMLDivElement, ILibMessaging>(
61
63
  }
62
64
  `)
63
65
 
64
- return (
65
- <MessagesContainer
66
- data-testid={testid}
67
- ref={ref}
68
- as={as}
69
- className={className}
70
- {...rest}
66
+ return (
67
+ <MessagesContainer
68
+ data-testid={testid}
69
+ ref={ref}
70
+ as={as}
71
+ className={className}
72
+ {...rest}
73
+ >
74
+ <MessagesList
75
+ data-testid={testid && `${testid}.MessagesList`}
76
+ className={className && "MessagesList"}
77
+ emptyText={emptyText}
71
78
  >
72
- <MessagesList
73
- data-testid={testid && `${testid}.MessagesList`}
74
- className={className && "MessagesList"}
75
- emptyText={emptyText}
76
- >
77
- {items
78
- ?.sort(
79
- (a, b) =>
80
- new Date(
81
- `${a.date}-${a.time}` || getToday()
82
- )?.getTime() -
83
- new Date(
84
- `${b.date}-${b.time}` || getToday()
85
- ).getTime()
86
- )
87
- .map(message => (
88
- <Message
89
- key={uuid()}
90
- data-testid={
91
- message["data-testid"] ||
92
- (testid && `${testid}.MessagesList.Message`)
93
- }
94
- className={
95
- message.className ||
96
- (className && "Message")
97
- }
98
- id={message.id}
99
- ref={message.ref}
100
- textDateTime={textDateTime}
101
- {...message}
102
- />
103
- ))}
104
- </MessagesList>
79
+ {items
80
+ ?.sort(
81
+ (a, b) =>
82
+ new Date(
83
+ `${a.date}-${a.time}` || getToday()
84
+ )?.getTime() -
85
+ new Date(
86
+ `${b.date}-${b.time}` || getToday()
87
+ ).getTime()
88
+ )
89
+ .map(message => (
90
+ <Message
91
+ key={uuid()}
92
+ data-testid={
93
+ message["data-testid"] ||
94
+ (testid && `${testid}.MessagesList.Message`)
95
+ }
96
+ className={
97
+ message.className || (className && "Message")
98
+ }
99
+ id={message.id}
100
+ ref={message.ref}
101
+ textDateTime={textDateTime}
102
+ {...message}
103
+ />
104
+ ))}
105
+ </MessagesList>
105
106
 
106
- <Hr
107
- data-testid={testid && `${testid}.Separator`}
108
- className={className && "Separator"}
109
- />
107
+ <Hr
108
+ data-testid={testid && `${testid}.Separator`}
109
+ className={className && "Separator"}
110
+ />
110
111
 
111
- <MessageForm
112
- data-testid={testid && `${testid}.Form`}
113
- className={className && "Form"}
114
- handleSubmit={handleSubmit}
115
- input={input}
116
- button={button}
117
- inputHeight={inputHeight}
118
- setInputHeight={setInputHeight}
119
- />
120
- </MessagesContainer>
121
- )
122
- }
123
- )
112
+ <MessageForm
113
+ data-testid={testid && `${testid}.Form`}
114
+ className={className && "Form"}
115
+ handleSubmit={handleSubmit}
116
+ input={input}
117
+ button={button}
118
+ inputHeight={inputHeight}
119
+ setInputHeight={setInputHeight}
120
+ />
121
+ </MessagesContainer>
122
+ )
123
+ }
@@ -1,5 +1,3 @@
1
- /*=============================================== Messaging exports ===============================================*/
2
-
3
1
  export * from "./Messaging"
4
2
  export * from "./MessagesContainer"
5
3
  export * from "./MessagesList"
@@ -1,5 +1,3 @@
1
- /*=============================================== Messaging styles ===============================================*/
2
-
3
1
  import styled from "styled-components"
4
2
  import {
5
3
  setDefaultTheme,
@@ -36,6 +34,7 @@ const StyledMessagesContainer = styled.div`
36
34
  const StyledMessagesList = styled(Flexbox)`
37
35
  flex-grow: 1;
38
36
  overflow-y: scroll;
37
+ ${Mixins.HideScrollbar};
39
38
  `
40
39
 
41
40
  const MessageListBottom = styled.div`
@@ -1,5 +1,3 @@
1
- /*=============================================== Messaging types ===============================================*/
2
-
3
1
  import type { ReactNode } from "react"
4
2
  import type {
5
3
  LibComponentBase,
@@ -11,8 +9,6 @@ import type {
11
9
  } from "../../types"
12
10
  import type { ILibFlexbox } from "../Flexbox/types"
13
11
 
14
- /*====================== Messaging ======================*/
15
-
16
12
  export interface ILibMessaging
17
13
  extends LibComponentBase<HTMLDivElement>,
18
14
  MessageFormCommon {
@@ -24,13 +20,9 @@ export interface ILibMessaging
24
20
  children?: never
25
21
  }
26
22
 
27
- /*====================== MessagesContainer ======================*/
28
-
29
23
  export interface ILibMessagesContainer
30
24
  extends LibComponentBase<HTMLDivElement> {}
31
25
 
32
- /*====================== MessagesList ======================*/
33
-
34
26
  interface ILibMessagesListBase
35
27
  extends LibComponentBase<HTMLDivElement>,
36
28
  ILibFlexbox {
@@ -57,8 +49,6 @@ export type ILibMessagesList =
57
49
  | MessagesListWithScrollButton
58
50
  | MessagesListWithoutScrollButton
59
51
 
60
- /*====================== MessageForm ======================*/
61
-
62
52
  type MessageFormButtonWithIcon = {
63
53
  icon?: LibIcon
64
54
  text?: never
@@ -88,8 +78,6 @@ export interface ILibMessageForm
88
78
  iconBaseUrl?: string
89
79
  }
90
80
 
91
- /*====================== Message ======================*/
92
-
93
81
  interface ILibMessageBase
94
82
  extends LibComponentBase<HTMLDivElement>,
95
83
  ILibFlexbox,
@@ -0,0 +1,69 @@
1
+ import type { FC } from "react"
2
+ import type { ILibMeta } from "./types"
3
+
4
+ /**
5
+ * Meta component for setting document metadata such as title, description, favicon, keywords, author, and Open Graph tags.
6
+ *
7
+ * @component
8
+ * @param {Object} props - Meta props.
9
+ * @param {React.ReactNode} [props.children] - Additional meta or link tags to include.
10
+ * @param {string} [props.title] - Document title.
11
+ * @param {string} [props.favicon] - URL to the favicon.
12
+ * @param {string} [props.description] - Meta description for SEO.
13
+ * @param {string[]} [props.keywords] - Array of keywords for SEO.
14
+ * @param {string} [props.author] - Author of the document.
15
+ * @param {string} [props.type] - Open Graph type (e.g., "website", "article").
16
+ * @param {string} [props.cover] - Open Graph image URL.
17
+ * @param {string} [props.siteName] - Open Graph site name.
18
+ * @param {string} [props.language] - Document language (used for <html lang=""> and og:locale).
19
+ * @returns {JSX.Element} The rendered meta tags.
20
+ *
21
+ * @see https://documentation-components-react.vercel.app/components/meta
22
+ * @example
23
+ * <Meta
24
+ * title="My Page"
25
+ * description="This is my page"
26
+ * keywords={["react", "meta", "seo"]}
27
+ * author="Julien Sebag"
28
+ * favicon="/favicon.ico"
29
+ * type="website"
30
+ * cover="/cover.png"
31
+ * siteName="My Site"
32
+ * language="en"
33
+ * />
34
+ */
35
+ export const Meta: FC<ILibMeta> = ({
36
+ children,
37
+ title,
38
+ favicon,
39
+ description,
40
+ keywords,
41
+ author,
42
+ type,
43
+ cover,
44
+ siteName,
45
+ language,
46
+ }) => {
47
+ return (
48
+ <>
49
+ <title>{title}</title>
50
+ <meta content="IE=edge" httpEquiv="X-UA-Compatible" />
51
+ <meta
52
+ content="width=device-width, initial-scale=1"
53
+ name="viewport"
54
+ />
55
+ {children && children}
56
+ {favicon && <link rel="icon" href={favicon} />}
57
+ {description && <meta name="description" content={description} />}
58
+ {keywords && (
59
+ <meta name="keywords" content={keywords?.join(", ")} />
60
+ )}
61
+ {author && <meta name="author" content={author} />}
62
+ <meta property="og:title" content={title} />
63
+ {type && <meta property="og:type" content={type} />}
64
+ {cover && <meta property="og:image" content={cover} />}
65
+ {siteName && <meta property="og:site_name" content={siteName} />}
66
+ {language && <meta property="og:locale" content={language} />}
67
+ </>
68
+ )
69
+ }