@bodynarf/react.components 1.7.3 → 1.7.4

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 (331) hide show
  1. package/{components → dist/components}/accordion/component/index.d.ts +1 -1
  2. package/{components → dist/components}/accordion/component/index.js +3 -3
  3. package/dist/components/accordion/types.d.ts +18 -0
  4. package/{components → dist/components}/anchor/component/index.d.ts +1 -1
  5. package/{components → dist/components}/anchor/component/index.js +2 -2
  6. package/{components → dist/components}/anchor/components/anchorWithIcon/index.d.ts +1 -1
  7. package/{components → dist/components}/anchor/components/anchorWithIcon/index.js +1 -1
  8. package/{components → dist/components}/anchor/components/simpleAnchor/index.d.ts +1 -1
  9. package/dist/components/anchor/types.d.ts +39 -0
  10. package/{components → dist/components}/button/component/index.d.ts +1 -1
  11. package/{components → dist/components}/button/component/index.js +3 -3
  12. package/{components → dist/components}/button/components/buttonWithIcon/index.d.ts +1 -1
  13. package/{components → dist/components}/button/components/buttonWithIcon/index.js +1 -1
  14. package/{components → dist/components}/button/components/simpleButton/index.d.ts +1 -1
  15. package/{components → dist/components}/button/types.d.ts +1 -1
  16. package/{components → dist/components}/dropdown/component/index.d.ts +1 -1
  17. package/{components → dist/components}/dropdown/component/index.js +2 -2
  18. package/{components → dist/components}/dropdown/components/compact/index.d.ts +1 -1
  19. package/{components → dist/components}/dropdown/components/compact/index.js +3 -3
  20. package/{components → dist/components}/dropdown/components/item/index.d.ts +1 -1
  21. package/{components → dist/components}/dropdown/components/label/index.d.ts +1 -1
  22. package/{components → dist/components}/dropdown/components/label/index.js +2 -2
  23. package/{components → dist/components}/dropdown/components/withLabel/index.d.ts +1 -1
  24. package/{components → dist/components}/dropdown/components/withLabel/index.js +4 -4
  25. package/dist/components/dropdown/types.d.ts +46 -0
  26. package/{components → dist/components}/icon/component/index.d.ts +1 -1
  27. package/{components → dist/components}/icon/component/index.js +1 -1
  28. package/dist/components/icon/types.d.ts +16 -0
  29. package/{components → dist/components}/paginator/component/index.d.ts +1 -1
  30. package/{components → dist/components}/paginator/component/index.js +1 -1
  31. package/{components → dist/components}/paginator/types.d.ts +1 -1
  32. package/{components → dist/components}/primitives/checkbox/component/index.d.ts +1 -1
  33. package/dist/components/primitives/checkbox/types.d.ts +25 -0
  34. package/{components → dist/components}/primitives/date/component/index.d.ts +1 -1
  35. package/{components → dist/components}/primitives/date/component/index.js +2 -2
  36. package/dist/components/primitives/date/types.d.ts +9 -0
  37. package/{components → dist/components}/primitives/multiline/component/index.d.ts +1 -1
  38. package/{components → dist/components}/primitives/multiline/component/index.js +2 -2
  39. package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.d.ts +1 -1
  40. package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.js +2 -2
  41. package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.d.ts +1 -1
  42. package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.js +2 -2
  43. package/dist/components/primitives/multiline/types.d.ts +11 -0
  44. package/{components → dist/components}/primitives/number/component/index.d.ts +1 -1
  45. package/{components → dist/components}/primitives/number/component/index.js +2 -2
  46. package/{components → dist/components}/primitives/number/components/withLabel/index.d.ts +1 -1
  47. package/{components → dist/components}/primitives/number/components/withLabel/index.js +2 -2
  48. package/{components → dist/components}/primitives/number/components/withoutLabel/index.d.ts +1 -1
  49. package/{components → dist/components}/primitives/number/components/withoutLabel/index.js +2 -2
  50. package/dist/components/primitives/number/types.d.ts +13 -0
  51. package/{components → dist/components}/primitives/password/component/index.d.ts +1 -1
  52. package/{components → dist/components}/primitives/password/component/index.js +2 -2
  53. package/{components → dist/components}/primitives/password/components/withLabel/index.d.ts +1 -1
  54. package/{components → dist/components}/primitives/password/components/withLabel/index.js +3 -3
  55. package/{components → dist/components}/primitives/password/components/withoutLabel/index.d.ts +1 -1
  56. package/{components → dist/components}/primitives/password/components/withoutLabel/index.js +3 -3
  57. package/dist/components/primitives/password/types.d.ts +10 -0
  58. package/{components → dist/components}/primitives/text/component/index.d.ts +1 -1
  59. package/{components → dist/components}/primitives/text/component/index.js +2 -2
  60. package/{components → dist/components}/primitives/text/components/textWithLabel/index.d.ts +1 -1
  61. package/{components → dist/components}/primitives/text/components/textWithLabel/index.js +2 -2
  62. package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.d.ts +1 -1
  63. package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.js +2 -2
  64. package/dist/components/primitives/text/types.d.ts +7 -0
  65. package/dist/components/primitives/types/baseProps.d.ts +30 -0
  66. package/{components → dist/components}/search/component/index.d.ts +1 -1
  67. package/{components → dist/components}/search/component/index.js +1 -1
  68. package/dist/components/search/types.d.ts +27 -0
  69. package/{components → dist/components}/tabs/component/index.d.ts +2 -2
  70. package/{components → dist/components}/tabs/component/index.js +4 -4
  71. package/{components → dist/components}/tabs/components/item/index.d.ts +1 -1
  72. package/{components → dist/components}/tabs/components/item/index.js +1 -1
  73. package/{components → dist/components}/tabs/types.d.ts +1 -1
  74. package/{components → dist/components}/tag/component/index.d.ts +1 -1
  75. package/{components → dist/components}/tag/component/index.js +1 -1
  76. package/dist/components/tag/types.d.ts +27 -0
  77. package/dist/package.json +41 -0
  78. package/dist/readme.md +56 -0
  79. package/{utils → dist/utils}/dataAttributes.d.ts +1 -1
  80. package/{utils → dist/utils}/formValidation.d.ts +1 -1
  81. package/{utils → dist/utils}/formValidation.js +1 -1
  82. package/package.json +5 -3
  83. package/src/common.scss +3 -0
  84. package/src/components/accordion/component/index.tsx +84 -0
  85. package/src/components/accordion/index.ts +2 -0
  86. package/{components/accordion/types.d.ts → src/components/accordion/types.ts} +6 -2
  87. package/src/components/anchor/component/index.tsx +40 -0
  88. package/src/components/anchor/component/style.scss +15 -0
  89. package/src/components/anchor/components/anchorWithIcon/index.tsx +45 -0
  90. package/src/components/anchor/components/simpleAnchor/index.tsx +16 -0
  91. package/src/components/anchor/index.ts +2 -0
  92. package/{components/anchor/types.d.ts → src/components/anchor/types.ts} +16 -1
  93. package/src/components/button/component/index.tsx +58 -0
  94. package/src/components/button/component/style.scss +12 -0
  95. package/src/components/button/components/buttonWithIcon/index.tsx +53 -0
  96. package/src/components/button/components/simpleButton/index.tsx +21 -0
  97. package/src/components/button/index.ts +2 -0
  98. package/src/components/button/types.ts +64 -0
  99. package/src/components/dropdown/component/index.tsx +20 -0
  100. package/src/components/dropdown/component/style.scss +120 -0
  101. package/src/components/dropdown/components/compact/index.tsx +121 -0
  102. package/src/components/dropdown/components/item/index.tsx +30 -0
  103. package/src/components/dropdown/components/label/index.tsx +68 -0
  104. package/src/components/dropdown/components/withLabel/index.tsx +201 -0
  105. package/src/components/dropdown/index.ts +2 -0
  106. package/{components/dropdown/types.d.ts → src/components/dropdown/types.ts} +15 -2
  107. package/src/components/icon/component/index.tsx +34 -0
  108. package/src/components/icon/component/style.scss +21 -0
  109. package/src/components/icon/index.ts +2 -0
  110. package/{components/icon/types.d.ts → src/components/icon/types.ts} +3 -1
  111. package/src/components/index.ts +13 -0
  112. package/src/components/paginator/component/index.tsx +131 -0
  113. package/src/components/paginator/index.ts +3 -0
  114. package/src/components/paginator/types.ts +40 -0
  115. package/src/components/paginator/utils.ts +19 -0
  116. package/src/components/primitives/checkbox/component/index.tsx +102 -0
  117. package/src/components/primitives/checkbox/component/style.scss +10 -0
  118. package/src/components/primitives/checkbox/index.ts +2 -0
  119. package/{components/primitives/checkbox/types.d.ts → src/components/primitives/checkbox/types.ts} +6 -2
  120. package/src/components/primitives/date/component/index.tsx +129 -0
  121. package/src/components/primitives/date/index.ts +2 -0
  122. package/{components/primitives/date/types.d.ts → src/components/primitives/date/types.ts} +2 -1
  123. package/src/components/primitives/index.ts +7 -0
  124. package/src/components/primitives/multiline/component/index.tsx +20 -0
  125. package/src/components/primitives/multiline/components/multilineWithLabel/index.tsx +125 -0
  126. package/src/components/primitives/multiline/components/multilineWithoutLabel/index.tsx +62 -0
  127. package/src/components/primitives/multiline/index.ts +2 -0
  128. package/{components/primitives/multiline/types.d.ts → src/components/primitives/multiline/types.ts} +3 -1
  129. package/src/components/primitives/number/component/index.tsx +17 -0
  130. package/src/components/primitives/number/components/withLabel/index.tsx +127 -0
  131. package/src/components/primitives/number/components/withoutLabel/index.tsx +66 -0
  132. package/src/components/primitives/number/index.ts +2 -0
  133. package/{components/primitives/number/types.d.ts → src/components/primitives/number/types.ts} +2 -1
  134. package/src/components/primitives/password/component/index.tsx +19 -0
  135. package/src/components/primitives/password/component/style.scss +16 -0
  136. package/src/components/primitives/password/components/withLabel/index.tsx +147 -0
  137. package/src/components/primitives/password/components/withoutLabel/index.tsx +79 -0
  138. package/src/components/primitives/password/index.ts +2 -0
  139. package/{components/primitives/password/types.d.ts → src/components/primitives/password/types.ts} +1 -1
  140. package/src/components/primitives/text/component/index.tsx +20 -0
  141. package/src/components/primitives/text/components/textWithLabel/index.tsx +123 -0
  142. package/src/components/primitives/text/components/textWithoutLabel/index.tsx +64 -0
  143. package/src/components/primitives/text/index.tsx +2 -0
  144. package/{components/primitives/text/types.d.ts → src/components/primitives/text/types.ts} +1 -1
  145. package/{components/primitives/types/baseProps.d.ts → src/components/primitives/types/baseProps.ts} +13 -1
  146. package/src/components/primitives/types/index.ts +3 -0
  147. package/src/components/primitives/types/label.ts +17 -0
  148. package/src/components/primitives/types/validation/index.ts +2 -0
  149. package/src/components/primitives/types/validation/state.ts +10 -0
  150. package/src/components/primitives/types/validation/status.ts +11 -0
  151. package/src/components/search/component/index.tsx +88 -0
  152. package/src/components/search/component/style.scss +24 -0
  153. package/src/components/search/index.ts +2 -0
  154. package/{components/search/types.d.ts → src/components/search/types.ts} +10 -2
  155. package/src/components/tabs/component/index.tsx +147 -0
  156. package/src/components/tabs/component/style.scss +12 -0
  157. package/src/components/tabs/components/item/index.tsx +86 -0
  158. package/src/components/tabs/index.ts +2 -0
  159. package/src/components/tabs/types.ts +52 -0
  160. package/src/components/tag/component/index.tsx +52 -0
  161. package/src/components/tag/component/style.scss +27 -0
  162. package/src/components/tag/index.ts +2 -0
  163. package/{components/tag/types.d.ts → src/components/tag/types.ts} +8 -1
  164. package/src/components/types.ts +87 -0
  165. package/src/hooks/index.ts +2 -0
  166. package/src/hooks/useComponentOutsideClick.ts +48 -0
  167. package/src/hooks/usePagination.ts +55 -0
  168. package/src/index.ts +3 -0
  169. package/src/utils/dataAttributes.ts +26 -0
  170. package/src/utils/formValidation.ts +42 -0
  171. package/src/utils/index.ts +2 -0
  172. package/tsconfig.json +42 -0
  173. /package/{components → dist/components}/accordion/component/index.d.ts.map +0 -0
  174. /package/{components → dist/components}/accordion/index.d.ts +0 -0
  175. /package/{components → dist/components}/accordion/index.d.ts.map +0 -0
  176. /package/{components → dist/components}/accordion/index.js +0 -0
  177. /package/{components → dist/components}/accordion/types.d.ts.map +0 -0
  178. /package/{components → dist/components}/accordion/types.js +0 -0
  179. /package/{components → dist/components}/anchor/component/index.d.ts.map +0 -0
  180. /package/{components → dist/components}/anchor/components/anchorWithIcon/index.d.ts.map +0 -0
  181. /package/{components → dist/components}/anchor/components/simpleAnchor/index.d.ts.map +0 -0
  182. /package/{components → dist/components}/anchor/components/simpleAnchor/index.js +0 -0
  183. /package/{components → dist/components}/anchor/index.d.ts +0 -0
  184. /package/{components → dist/components}/anchor/index.d.ts.map +0 -0
  185. /package/{components → dist/components}/anchor/index.js +0 -0
  186. /package/{components → dist/components}/anchor/types.d.ts.map +0 -0
  187. /package/{components → dist/components}/anchor/types.js +0 -0
  188. /package/{components → dist/components}/button/component/index.d.ts.map +0 -0
  189. /package/{components → dist/components}/button/components/buttonWithIcon/index.d.ts.map +0 -0
  190. /package/{components → dist/components}/button/components/simpleButton/index.d.ts.map +0 -0
  191. /package/{components → dist/components}/button/components/simpleButton/index.js +0 -0
  192. /package/{components → dist/components}/button/index.d.ts +0 -0
  193. /package/{components → dist/components}/button/index.d.ts.map +0 -0
  194. /package/{components → dist/components}/button/index.js +0 -0
  195. /package/{components → dist/components}/button/types.d.ts.map +0 -0
  196. /package/{components → dist/components}/button/types.js +0 -0
  197. /package/{components → dist/components}/dropdown/component/index.d.ts.map +0 -0
  198. /package/{components → dist/components}/dropdown/components/compact/index.d.ts.map +0 -0
  199. /package/{components → dist/components}/dropdown/components/item/index.d.ts.map +0 -0
  200. /package/{components → dist/components}/dropdown/components/item/index.js +0 -0
  201. /package/{components → dist/components}/dropdown/components/label/index.d.ts.map +0 -0
  202. /package/{components → dist/components}/dropdown/components/withLabel/index.d.ts.map +0 -0
  203. /package/{components → dist/components}/dropdown/index.d.ts +0 -0
  204. /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
  205. /package/{components → dist/components}/dropdown/index.js +0 -0
  206. /package/{components → dist/components}/dropdown/types.d.ts.map +0 -0
  207. /package/{components → dist/components}/dropdown/types.js +0 -0
  208. /package/{components → dist/components}/icon/component/index.d.ts.map +0 -0
  209. /package/{components → dist/components}/icon/index.d.ts +0 -0
  210. /package/{components → dist/components}/icon/index.d.ts.map +0 -0
  211. /package/{components → dist/components}/icon/index.js +0 -0
  212. /package/{components → dist/components}/icon/types.d.ts.map +0 -0
  213. /package/{components → dist/components}/icon/types.js +0 -0
  214. /package/{components → dist/components}/index.d.ts +0 -0
  215. /package/{components → dist/components}/index.d.ts.map +0 -0
  216. /package/{components → dist/components}/index.js +0 -0
  217. /package/{components → dist/components}/paginator/component/index.d.ts.map +0 -0
  218. /package/{components → dist/components}/paginator/index.d.ts +0 -0
  219. /package/{components → dist/components}/paginator/index.d.ts.map +0 -0
  220. /package/{components → dist/components}/paginator/index.js +0 -0
  221. /package/{components → dist/components}/paginator/types.d.ts.map +0 -0
  222. /package/{components → dist/components}/paginator/types.js +0 -0
  223. /package/{components → dist/components}/paginator/utils.d.ts +0 -0
  224. /package/{components → dist/components}/paginator/utils.d.ts.map +0 -0
  225. /package/{components → dist/components}/paginator/utils.js +0 -0
  226. /package/{components → dist/components}/primitives/checkbox/component/index.d.ts.map +0 -0
  227. /package/{components → dist/components}/primitives/checkbox/component/index.js +0 -0
  228. /package/{components → dist/components}/primitives/checkbox/index.d.ts +0 -0
  229. /package/{components → dist/components}/primitives/checkbox/index.d.ts.map +0 -0
  230. /package/{components → dist/components}/primitives/checkbox/index.js +0 -0
  231. /package/{components → dist/components}/primitives/checkbox/types.d.ts.map +0 -0
  232. /package/{components → dist/components}/primitives/checkbox/types.js +0 -0
  233. /package/{components → dist/components}/primitives/date/component/index.d.ts.map +0 -0
  234. /package/{components → dist/components}/primitives/date/index.d.ts +0 -0
  235. /package/{components → dist/components}/primitives/date/index.d.ts.map +0 -0
  236. /package/{components → dist/components}/primitives/date/index.js +0 -0
  237. /package/{components → dist/components}/primitives/date/types.d.ts.map +0 -0
  238. /package/{components → dist/components}/primitives/date/types.js +0 -0
  239. /package/{components → dist/components}/primitives/index.d.ts +0 -0
  240. /package/{components → dist/components}/primitives/index.d.ts.map +0 -0
  241. /package/{components → dist/components}/primitives/index.js +0 -0
  242. /package/{components → dist/components}/primitives/multiline/component/index.d.ts.map +0 -0
  243. /package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.d.ts.map +0 -0
  244. /package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.d.ts.map +0 -0
  245. /package/{components → dist/components}/primitives/multiline/index.d.ts +0 -0
  246. /package/{components → dist/components}/primitives/multiline/index.d.ts.map +0 -0
  247. /package/{components → dist/components}/primitives/multiline/index.js +0 -0
  248. /package/{components → dist/components}/primitives/multiline/types.d.ts.map +0 -0
  249. /package/{components → dist/components}/primitives/multiline/types.js +0 -0
  250. /package/{components → dist/components}/primitives/number/component/index.d.ts.map +0 -0
  251. /package/{components → dist/components}/primitives/number/components/withLabel/index.d.ts.map +0 -0
  252. /package/{components → dist/components}/primitives/number/components/withoutLabel/index.d.ts.map +0 -0
  253. /package/{components → dist/components}/primitives/number/index.d.ts +0 -0
  254. /package/{components → dist/components}/primitives/number/index.d.ts.map +0 -0
  255. /package/{components → dist/components}/primitives/number/index.js +0 -0
  256. /package/{components → dist/components}/primitives/number/types.d.ts.map +0 -0
  257. /package/{components → dist/components}/primitives/number/types.js +0 -0
  258. /package/{components → dist/components}/primitives/password/component/index.d.ts.map +0 -0
  259. /package/{components → dist/components}/primitives/password/components/withLabel/index.d.ts.map +0 -0
  260. /package/{components → dist/components}/primitives/password/components/withoutLabel/index.d.ts.map +0 -0
  261. /package/{components → dist/components}/primitives/password/index.d.ts +0 -0
  262. /package/{components → dist/components}/primitives/password/index.d.ts.map +0 -0
  263. /package/{components → dist/components}/primitives/password/index.js +0 -0
  264. /package/{components → dist/components}/primitives/password/types.d.ts.map +0 -0
  265. /package/{components → dist/components}/primitives/password/types.js +0 -0
  266. /package/{components → dist/components}/primitives/text/component/index.d.ts.map +0 -0
  267. /package/{components → dist/components}/primitives/text/components/textWithLabel/index.d.ts.map +0 -0
  268. /package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.d.ts.map +0 -0
  269. /package/{components → dist/components}/primitives/text/index.d.ts +0 -0
  270. /package/{components → dist/components}/primitives/text/index.d.ts.map +0 -0
  271. /package/{components → dist/components}/primitives/text/index.js +0 -0
  272. /package/{components → dist/components}/primitives/text/types.d.ts.map +0 -0
  273. /package/{components → dist/components}/primitives/text/types.js +0 -0
  274. /package/{components → dist/components}/primitives/types/baseProps.d.ts.map +0 -0
  275. /package/{components → dist/components}/primitives/types/baseProps.js +0 -0
  276. /package/{components → dist/components}/primitives/types/index.d.ts +0 -0
  277. /package/{components → dist/components}/primitives/types/index.d.ts.map +0 -0
  278. /package/{components → dist/components}/primitives/types/index.js +0 -0
  279. /package/{components → dist/components}/primitives/types/label.d.ts +0 -0
  280. /package/{components → dist/components}/primitives/types/label.d.ts.map +0 -0
  281. /package/{components → dist/components}/primitives/types/label.js +0 -0
  282. /package/{components → dist/components}/primitives/types/validation/index.d.ts +0 -0
  283. /package/{components → dist/components}/primitives/types/validation/index.d.ts.map +0 -0
  284. /package/{components → dist/components}/primitives/types/validation/index.js +0 -0
  285. /package/{components → dist/components}/primitives/types/validation/state.d.ts +0 -0
  286. /package/{components → dist/components}/primitives/types/validation/state.d.ts.map +0 -0
  287. /package/{components → dist/components}/primitives/types/validation/state.js +0 -0
  288. /package/{components → dist/components}/primitives/types/validation/status.d.ts +0 -0
  289. /package/{components → dist/components}/primitives/types/validation/status.d.ts.map +0 -0
  290. /package/{components → dist/components}/primitives/types/validation/status.js +0 -0
  291. /package/{components → dist/components}/search/component/index.d.ts.map +0 -0
  292. /package/{components → dist/components}/search/index.d.ts +0 -0
  293. /package/{components → dist/components}/search/index.d.ts.map +0 -0
  294. /package/{components → dist/components}/search/index.js +0 -0
  295. /package/{components → dist/components}/search/types.d.ts.map +0 -0
  296. /package/{components → dist/components}/search/types.js +0 -0
  297. /package/{components → dist/components}/tabs/component/index.d.ts.map +0 -0
  298. /package/{components → dist/components}/tabs/components/item/index.d.ts.map +0 -0
  299. /package/{components → dist/components}/tabs/index.d.ts +0 -0
  300. /package/{components → dist/components}/tabs/index.d.ts.map +0 -0
  301. /package/{components → dist/components}/tabs/index.js +0 -0
  302. /package/{components → dist/components}/tabs/types.d.ts.map +0 -0
  303. /package/{components → dist/components}/tabs/types.js +0 -0
  304. /package/{components → dist/components}/tag/component/index.d.ts.map +0 -0
  305. /package/{components → dist/components}/tag/index.d.ts +0 -0
  306. /package/{components → dist/components}/tag/index.d.ts.map +0 -0
  307. /package/{components → dist/components}/tag/index.js +0 -0
  308. /package/{components → dist/components}/tag/types.d.ts.map +0 -0
  309. /package/{components → dist/components}/tag/types.js +0 -0
  310. /package/{components → dist/components}/types.d.ts +0 -0
  311. /package/{components → dist/components}/types.d.ts.map +0 -0
  312. /package/{components → dist/components}/types.js +0 -0
  313. /package/{hooks → dist/hooks}/index.d.ts +0 -0
  314. /package/{hooks → dist/hooks}/index.d.ts.map +0 -0
  315. /package/{hooks → dist/hooks}/index.js +0 -0
  316. /package/{hooks → dist/hooks}/useComponentOutsideClick.d.ts +0 -0
  317. /package/{hooks → dist/hooks}/useComponentOutsideClick.d.ts.map +0 -0
  318. /package/{hooks → dist/hooks}/useComponentOutsideClick.js +0 -0
  319. /package/{hooks → dist/hooks}/usePagination.d.ts +0 -0
  320. /package/{hooks → dist/hooks}/usePagination.d.ts.map +0 -0
  321. /package/{hooks → dist/hooks}/usePagination.js +0 -0
  322. /package/{index.d.ts → dist/index.d.ts} +0 -0
  323. /package/{index.d.ts.map → dist/index.d.ts.map} +0 -0
  324. /package/{index.js → dist/index.js} +0 -0
  325. /package/{tsconfig.tsbuildinfo → dist/tsconfig.tsbuildinfo} +0 -0
  326. /package/{utils → dist/utils}/dataAttributes.d.ts.map +0 -0
  327. /package/{utils → dist/utils}/dataAttributes.js +0 -0
  328. /package/{utils → dist/utils}/formValidation.d.ts.map +0 -0
  329. /package/{utils → dist/utils}/index.d.ts +0 -0
  330. /package/{utils → dist/utils}/index.d.ts.map +0 -0
  331. /package/{utils → dist/utils}/index.js +0 -0
@@ -0,0 +1,68 @@
1
+ import { MouseEvent } from "react";
2
+
3
+ import { getClassName, isNullOrEmpty, isNullOrUndefined } from "@bodynarf/utils";
4
+
5
+ import { ElementSize } from "@bbr/components";
6
+ import Icon from "@bbr/components/icon";
7
+
8
+ import { SelectableItem } from "@bbr/components/dropdown";
9
+
10
+ export interface DropdownLabelProps {
11
+ /** Caption when no items selected */
12
+ caption: string;
13
+
14
+ /** Can user deselect */
15
+ deselectable: boolean;
16
+
17
+ /** Selected item */
18
+ selectedItem?: SelectableItem;
19
+
20
+ /** Element classnames */
21
+ className?: string;
22
+
23
+ /** Click handler*/
24
+ onClick: (event: MouseEvent<HTMLLabelElement>) => void;
25
+ }
26
+
27
+ /** Label component */
28
+ const DropdownLabel = ({
29
+ caption,
30
+ selectedItem, onClick,
31
+ deselectable, className,
32
+ }: DropdownLabelProps): JSX.Element => {
33
+ const itemSelected = !isNullOrUndefined(selectedItem);
34
+
35
+ const text = itemSelected
36
+ ? selectedItem?.displayValue
37
+ : caption;
38
+
39
+ const deselectVisible = deselectable && itemSelected;
40
+
41
+ const elClassName = getClassName([
42
+ "dropdown-trigger",
43
+ "bbr-dropdown__label",
44
+ isNullOrEmpty(className) ? "" : `${className}--md`,
45
+ itemSelected ? "" : "bbr-dropdown__label--default",
46
+ "button"
47
+ ]);
48
+
49
+ return (
50
+ <label
51
+ className={elClassName}
52
+ onClick={onClick}
53
+ >
54
+ {deselectVisible &&
55
+ <Icon name="plus-lg" size={ElementSize.Medium} />
56
+ }
57
+ <span
58
+ className={deselectVisible ? "mx-2" : "mr-2"}
59
+ title={itemSelected ? text : undefined}
60
+ >
61
+ {text}
62
+ </span>
63
+ <Icon name="arrow-down" size={ElementSize.Medium} />
64
+ </label>
65
+ );
66
+ };
67
+
68
+ export default DropdownLabel;
@@ -0,0 +1,201 @@
1
+ import { MouseEvent, useCallback, useId, useState } from "react";
2
+
3
+ import { isNullOrUndefined, isNullOrEmpty, getClassName } from "@bodynarf/utils";
4
+
5
+ import { getValidationValues } from "@bbr/utils";
6
+ import { useComponentOutsideClick } from "@bbr/hooks";
7
+
8
+ import { DropdownProps } from "@bbr/components/dropdown";
9
+ import DropdownItem from "@bbr/components/dropdown/components/item";
10
+ import DropdownLabel from "@bbr/components/dropdown/components/label";
11
+
12
+ const DropdownWithLabel = ({
13
+ items,
14
+ value, onSelect, validationState,
15
+ deselectable,
16
+ className, hideOnOuterClick, listMaxHeight,
17
+
18
+ label, placeholder, disabled
19
+ }: DropdownProps): JSX.Element => {
20
+ const id = useId();
21
+
22
+ const [isListVisible, setListVisible] = useState<boolean>(false);
23
+ const [isValidationDefined, styleClassName, validationMessages] = getValidationValues(undefined, validationState);
24
+
25
+ const onItemClick = useCallback(
26
+ (event: React.MouseEvent<HTMLLIElement>) => {
27
+ if (disabled ?? false) {
28
+ return;
29
+ }
30
+
31
+ const target = event.target as HTMLLIElement;
32
+
33
+ if (isNullOrUndefined(target)) {
34
+ return;
35
+ }
36
+
37
+ const dataValue = target.dataset["dropdownItemValue"];
38
+
39
+ if (isNullOrEmpty(dataValue)) {
40
+ return;
41
+ }
42
+
43
+ const item = items.find(x => x.value === dataValue);
44
+
45
+ if (isNullOrUndefined(item)) {
46
+ return;
47
+ }
48
+
49
+ if (value === item) {
50
+ setListVisible(false);
51
+ return;
52
+ }
53
+
54
+ onSelect(item);
55
+ setListVisible(false);
56
+ }, [setListVisible, value, items, onSelect, disabled]);
57
+
58
+ const onLabelClick = useCallback(
59
+ (event: MouseEvent<HTMLLabelElement>): void => {
60
+ if (disabled ?? false) {
61
+ return;
62
+ }
63
+
64
+ const target = event.target as HTMLElement;
65
+
66
+ if (isNullOrUndefined(target)) {
67
+ return;
68
+ }
69
+
70
+ if (target.classList.contains("bi-plus-lg")) {
71
+ onSelect(undefined);
72
+ } else {
73
+ setListVisible(state => !state);
74
+ }
75
+ }, [onSelect, setListVisible, disabled]);
76
+
77
+ useComponentOutsideClick(
78
+ `[data-dropdown-id="${id}"]`, isListVisible,
79
+ () => setListVisible(false),
80
+ hideOnOuterClick,
81
+ );
82
+
83
+ const classNames: string = getClassName([
84
+ "bbr-dropdown",
85
+ (disabled ?? false) ? "bbr-dropdown--disabled" : "",
86
+ isListVisible ? "is-active" : "",
87
+ isNullOrEmpty(listMaxHeight) ? "bbr-dropdown--height-default" : "",
88
+ className,
89
+ "dropdown"
90
+ ]);
91
+
92
+ const labelClassName = getClassName([
93
+ "label",
94
+ label!.className
95
+ ]);
96
+
97
+ if (label!.horizontal) {
98
+ const labelContainerClassName = getClassName([
99
+ "field-label",
100
+ "is-normal",
101
+ label!.horizontalContainerClassName
102
+ ]);
103
+
104
+ const fieldContainerClassName = getClassName([
105
+ "field-body",
106
+ label!.horizontalFieldContainerClassName
107
+ ]);
108
+
109
+ return (
110
+ <div className="bbr-dropdown__root-container--with-label bbr-input field is-horizontal">
111
+ <div className={labelContainerClassName}>
112
+ <label
113
+ className={labelClassName}
114
+ htmlFor={id}
115
+ >
116
+ {label!.caption}
117
+ </label>
118
+ </div>
119
+ <div className={fieldContainerClassName}>
120
+ <div className="field">
121
+ <div
122
+ key={id}
123
+ className={classNames}
124
+ data-dropdown-id={id}
125
+ >
126
+ <DropdownLabel
127
+ className={styleClassName}
128
+ caption={placeholder}
129
+ deselectable={deselectable === true}
130
+ selectedItem={value}
131
+ onClick={onLabelClick}
132
+ />
133
+ <div className="dropdown-menu">
134
+ {items.length > 0
135
+ ? <ul className="dropdown-content" style={{ maxHeight: listMaxHeight }}>
136
+ {items.map(item =>
137
+ <DropdownItem
138
+ key={item.id}
139
+ item={item}
140
+ selected={value?.value === item.value}
141
+ onClick={onItemClick}
142
+ />
143
+ )}
144
+ </ul>
145
+ : <span className="dropdown-content dropdown-item">No items found</span>
146
+ }
147
+ </div>
148
+ </div>
149
+ {isValidationDefined && validationMessages.length > 0 &&
150
+ <p className={`help m-help ${styleClassName}`}>{validationMessages.join("\n")}</p>
151
+ }
152
+ </div>
153
+ </div>
154
+ </div>
155
+ );
156
+ }
157
+
158
+ return (
159
+ <div className="field">
160
+ <label
161
+ className={labelClassName}
162
+ htmlFor={id}
163
+ >
164
+ {label!.caption}
165
+ </label>
166
+ <div
167
+ key={id}
168
+ className={classNames}
169
+ data-dropdown-id={id}
170
+ >
171
+ <DropdownLabel
172
+ className={styleClassName}
173
+ caption={placeholder}
174
+ deselectable={deselectable === true}
175
+ selectedItem={value}
176
+ onClick={onLabelClick}
177
+ />
178
+ <div className="dropdown-menu">
179
+ {items.length > 0
180
+ ? <ul className="dropdown-content" style={{ maxHeight: listMaxHeight }}>
181
+ {items.map(item =>
182
+ <DropdownItem
183
+ key={item.id}
184
+ item={item}
185
+ selected={value?.value === item.value}
186
+ onClick={onItemClick}
187
+ />
188
+ )}
189
+ </ul>
190
+ : <span className="dropdown-content dropdown-item">No items found</span>
191
+ }
192
+ </div>
193
+ </div>
194
+ {isValidationDefined && validationMessages.length > 0 &&
195
+ <p className={`help m-help ${styleClassName}`}>{validationMessages.join("\n")}</p>
196
+ }
197
+ </div>
198
+ );
199
+ };
200
+
201
+ export default DropdownWithLabel;
@@ -0,0 +1,2 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
@@ -1,46 +1,59 @@
1
1
  import { BaseElementProps, InputLabel, ValidationState } from "@bbr/components";
2
+
2
3
  /** Dropdown item */
3
4
  export interface SelectableItem {
4
5
  /** Unique item identifier */
5
6
  id: string;
7
+
6
8
  /** Item value */
7
9
  value: string;
10
+
8
11
  /** Displaying text */
9
12
  displayValue: string;
10
13
  }
14
+
11
15
  /** Dropdown component props type */
12
16
  export interface DropdownProps extends BaseElementProps {
13
17
  /** Items which can be selected */
14
18
  items: Array<SelectableItem>;
19
+
15
20
  /** Input element placeholder */
16
21
  placeholder: string;
22
+
17
23
  /**
18
24
  * Action to update selected value, which stored outside
19
25
  */
20
26
  onSelect: (item?: SelectableItem) => void;
27
+
21
28
  /**
22
29
  * Selected value.
23
30
  * Must be stored outside
24
31
  */
25
32
  value?: SelectableItem;
33
+
26
34
  /** Hide dropdown list when its opened and user click outside */
27
35
  hideOnOuterClick: boolean;
36
+
28
37
  /** Can user deselect */
29
38
  deselectable?: boolean;
39
+
30
40
  /** Custom dropdown list max-height property */
31
41
  listMaxHeight?: string;
42
+
32
43
  /**
33
44
  * Should dropdown be compact
34
45
  * Will have width by maximum current selection item width
35
46
  */
36
47
  compact?: boolean;
48
+
37
49
  /**
38
50
  * Is element disabled
39
51
  */
40
52
  disabled?: boolean;
53
+
41
54
  /** Label configuration */
42
55
  label?: InputLabel;
56
+
43
57
  /** Current validation state */
44
58
  validationState?: ValidationState;
45
- }
46
- //# sourceMappingURL=types.d.ts.map
59
+ }
@@ -0,0 +1,34 @@
1
+ import { getClassName } from "@bodynarf/utils";
2
+
3
+ import "./style.scss";
4
+
5
+ import { ElementSize } from "@bbr/components";
6
+
7
+ import { IconProps } from "@bbr/components/icon";
8
+
9
+ const sizeToClassMap: Map<ElementSize, string> = new Map([
10
+ [ElementSize.Small, "bbr-icon--size-small"],
11
+ [ElementSize.Normal, ""],
12
+ [ElementSize.Medium, "bbr-icon--size-medium"],
13
+ [ElementSize.Large, "bbr-icon--size-large"]
14
+ ]);
15
+
16
+ /**
17
+ * Icon component. Based on bootstrap icons
18
+ */
19
+ export default function Icon({
20
+ name, size = ElementSize.Normal,
21
+ className,
22
+ }: IconProps): JSX.Element {
23
+ const classNames = getClassName([
24
+ "bbr-icon",
25
+ "bi",
26
+ `bi-${name}`,
27
+ sizeToClassMap.has(size) ? sizeToClassMap.get(size) : "",
28
+ className
29
+ ]);
30
+
31
+ return (
32
+ <i className={classNames}></i>
33
+ );
34
+ }
@@ -0,0 +1,21 @@
1
+ .bbr-icon {
2
+ transition: 0.15s ease-in-out color;
3
+ font-size: 1rem;
4
+
5
+ &--size-small {
6
+ font-size: 0.85rem;
7
+ }
8
+ &--size-medium {
9
+ font-size: 1.25rem;
10
+ }
11
+ &--size-large {
12
+ font-size: 2rem;
13
+ }
14
+
15
+ &--right {
16
+ margin-left: 0.5rem;
17
+ }
18
+ &--left {
19
+ margin-right: 0.5rem;
20
+ }
21
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
@@ -1,4 +1,5 @@
1
1
  import { ElementSize } from "@bbr/components";
2
+
2
3
  /** Icon component props */
3
4
  export interface IconProps {
4
5
  /**
@@ -8,9 +9,10 @@ export interface IconProps {
8
9
  * // For class name check bootstrap icons website
9
10
  */
10
11
  name: string;
12
+
11
13
  /** Additional classname */
12
14
  className?: string;
15
+
13
16
  /** Icon size */
14
17
  size?: ElementSize;
15
18
  }
16
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,13 @@
1
+ export * from "./accordion";
2
+ export * from "./anchor";
3
+ export * from "./button";
4
+ export * from "./dropdown";
5
+ export * from "./icon";
6
+ export * from "./paginator";
7
+ export * from "./search";
8
+ export * from "./tabs";
9
+ export * from "./tag";
10
+
11
+ export * from "./primitives";
12
+
13
+ export * from "./types";
@@ -0,0 +1,131 @@
1
+ import { useCallback, useMemo, MouseEvent } from "react";
2
+
3
+ import { getClassName, isNullOrEmpty } from "@bodynarf/utils";
4
+
5
+ import { generatePageNumbers, PaginatorProps } from "@bbr/components/paginator";
6
+
7
+ /**
8
+ * Paginator component.
9
+ * Used for visualization of pagging configuration
10
+ */
11
+ export default function Paginator({
12
+ count, onPageChange, currentPage,
13
+ position, rounded, size, className,
14
+ showNextButtons, nearPagesCount
15
+ }: PaginatorProps): JSX.Element {
16
+ const page = currentPage || 0;
17
+
18
+ const pageChange = useCallback(
19
+ (event: MouseEvent<HTMLElement>) => {
20
+ const target = event.target as HTMLElement;
21
+
22
+ const pageRaw = target.dataset["page"];
23
+
24
+ if (isNullOrEmpty(pageRaw)) {
25
+ return;
26
+ }
27
+
28
+ const page = +pageRaw!;
29
+
30
+ if (page !== currentPage && page > 0 && page <= count) {
31
+ onPageChange(page);
32
+ }
33
+ }, [onPageChange, currentPage, count]);
34
+
35
+ const pageNumbers = useMemo(() => generatePageNumbers(page, count, nearPagesCount), [page, count]);
36
+
37
+ const canGoBack = useMemo(() => page > 1, [page]);
38
+ const canGoForward = useMemo(() => page < count, [page, count]);
39
+
40
+ if (pageNumbers.length <= 1) {
41
+ return <></>;
42
+ }
43
+
44
+ const classNames = getClassName([
45
+ "bbr-paginator",
46
+ "pagination",
47
+ paginationPositionToClassMap.has(position || "") ? paginationPositionToClassMap.get(position || "") : "",
48
+ rounded == true ? "is-rounded" : "",
49
+ isNullOrEmpty(size) ? "" : `is-${size}`,
50
+ className
51
+ ]);
52
+
53
+ return (
54
+ <nav className={classNames} role="navigation" aria-label="pagination">
55
+ {showNextButtons === true &&
56
+ <>
57
+ <a
58
+ className={`pagination-previous${canGoBack ? "" : " is-disabled"}`}
59
+ data-page={page - 1}
60
+ onClick={pageChange}
61
+ >
62
+ Previous
63
+ </a>
64
+ <a
65
+ className={`pagination-next${canGoForward ? "" : " is-disabled"}`}
66
+ data-page={page + 1}
67
+ onClick={pageChange}
68
+ >
69
+ Next page
70
+ </a>
71
+ </>
72
+ }
73
+ <ul className="pagination-list">
74
+ {page !== 1 && !pageNumbers.includes(1) &&
75
+ <>
76
+ <li>
77
+ <a
78
+ className="pagination-link"
79
+ aria-label="Goto page 1"
80
+ data-page={1}
81
+ onClick={pageChange}
82
+ >
83
+ 1
84
+ </a>
85
+ </li>
86
+ <li>
87
+ <span className="pagination-ellipsis">&hellip;</span>
88
+ </li>
89
+ </>
90
+ }
91
+ {pageNumbers.map(x =>
92
+ <li key={x}>
93
+ <a
94
+ className={`pagination-link${page === x ? " is-current" : ""}`}
95
+ aria-label={`Goto page ${x}`}
96
+ data-page={x}
97
+ onClick={pageChange}
98
+ >
99
+ {x}
100
+ </a>
101
+ </li>
102
+ )}
103
+ {page != count && !pageNumbers.includes(count) &&
104
+ <>
105
+ <li>
106
+ <span className="pagination-ellipsis">&hellip;</span>
107
+ </li>
108
+ <li>
109
+ <a
110
+ className="pagination-link"
111
+ aria-label={`Goto page ${count}`}
112
+ data-page={count}
113
+ onClick={pageChange}
114
+ >
115
+ {count}
116
+ </a>
117
+ </li>
118
+ </>
119
+ }
120
+ </ul>
121
+ </nav>
122
+ );
123
+ }
124
+
125
+ /**
126
+ * Position setting to css class name map
127
+ */
128
+ const paginationPositionToClassMap: Map<string, string> = new Map([
129
+ ["center", "is-centered"],
130
+ ["right", "is-right"]
131
+ ]);
@@ -0,0 +1,3 @@
1
+ export { default } from "./component";
2
+ export * from "./types";
3
+ export * from "./utils";
@@ -0,0 +1,40 @@
1
+ import { ElementSize } from "@bbr/components";
2
+
3
+ export interface PaginatorProps {
4
+ /** Amount of pages */
5
+ count: number;
6
+
7
+ /** Page change handler */
8
+ onPageChange: (page: number) => void;
9
+
10
+ /** Current page */
11
+ currentPage?: number;
12
+
13
+ /**
14
+ * Page numbers position.
15
+ * Useful with `showNextButtons = true`
16
+ */
17
+ position?:
18
+ | "left" /* default */
19
+ | "center"
20
+ | "right"
21
+ ;
22
+
23
+ /** Buttons should have rounded borders */
24
+ rounded?: boolean;
25
+
26
+ /** Size of paginator component elements */
27
+ size?: ElementSize;
28
+
29
+ /** Additional class names */
30
+ className?: string;
31
+
32
+ /** Display "Previous" \ "Next" buttons */
33
+ showNextButtons?: boolean;
34
+
35
+ /**
36
+ * Max amount of pages from left & right from current page. `3` by default
37
+ * @description If set to 2 it will show `[1, 2], 3, [4, 5]`
38
+ */
39
+ nearPagesCount?: number;
40
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Get nearest numbers from each side (left & right)
3
+ * @param page Number of current page
4
+ * @param count Amount of pages
5
+ * @param size Amount of pages from left & right to current page. Default is 3
6
+ * @throws Current page is greater than pages amount
7
+ * @returns Array of nearest numbers to current page
8
+ */
9
+ export const generatePageNumbers = (page: number, count: number, size: number = 3): Array<number> => {
10
+ if (page < 0 || count <= 0 || page > count) {
11
+ return [];
12
+ }
13
+
14
+ return [
15
+ ...new Array(size).fill(page).map((_, i) => page - i - 1).filter(x => x > 0 && x < page).reverse(),
16
+ page,
17
+ ...new Array(size).fill(page).map((_, i) => page + i + 1).filter(x => x > 0 && x > page && x <= count)
18
+ ];
19
+ };