@bodynarf/react.components 1.7.2 → 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/dist/package.json +41 -0
  2. package/dist/readme.md +56 -0
  3. package/package.json +5 -3
  4. package/src/common.scss +3 -0
  5. package/src/components/accordion/component/index.tsx +84 -0
  6. package/src/components/accordion/index.ts +2 -0
  7. package/src/components/accordion/types.ts +22 -0
  8. package/src/components/anchor/component/index.tsx +40 -0
  9. package/src/components/anchor/component/style.scss +15 -0
  10. package/src/components/anchor/components/anchorWithIcon/index.tsx +45 -0
  11. package/src/components/anchor/components/simpleAnchor/index.tsx +16 -0
  12. package/src/components/anchor/index.ts +2 -0
  13. package/src/components/anchor/types.ts +54 -0
  14. package/src/components/button/component/index.tsx +58 -0
  15. package/src/components/button/component/style.scss +12 -0
  16. package/src/components/button/components/buttonWithIcon/index.tsx +53 -0
  17. package/src/components/button/components/simpleButton/index.tsx +21 -0
  18. package/src/components/button/index.ts +2 -0
  19. package/src/components/button/types.ts +64 -0
  20. package/src/components/dropdown/component/index.tsx +20 -0
  21. package/src/components/dropdown/component/style.scss +120 -0
  22. package/src/components/dropdown/components/compact/index.tsx +121 -0
  23. package/src/components/dropdown/components/item/index.tsx +30 -0
  24. package/src/components/dropdown/components/label/index.tsx +68 -0
  25. package/src/components/dropdown/components/withLabel/index.tsx +201 -0
  26. package/src/components/dropdown/index.ts +2 -0
  27. package/src/components/dropdown/types.ts +59 -0
  28. package/src/components/icon/component/index.tsx +34 -0
  29. package/src/components/icon/component/style.scss +21 -0
  30. package/src/components/icon/index.ts +2 -0
  31. package/src/components/icon/types.ts +18 -0
  32. package/src/components/index.ts +13 -0
  33. package/src/components/paginator/component/index.tsx +131 -0
  34. package/src/components/paginator/index.ts +3 -0
  35. package/src/components/paginator/types.ts +40 -0
  36. package/src/components/paginator/utils.ts +19 -0
  37. package/src/components/primitives/checkbox/component/index.tsx +102 -0
  38. package/src/components/primitives/checkbox/component/style.scss +10 -0
  39. package/src/components/primitives/checkbox/index.ts +2 -0
  40. package/src/components/primitives/checkbox/types.ts +29 -0
  41. package/src/components/primitives/date/component/index.tsx +129 -0
  42. package/src/components/primitives/date/index.ts +2 -0
  43. package/src/components/primitives/date/types.ts +10 -0
  44. package/src/components/primitives/index.ts +7 -0
  45. package/src/components/primitives/multiline/component/index.tsx +20 -0
  46. package/src/components/primitives/multiline/components/multilineWithLabel/index.tsx +125 -0
  47. package/src/components/primitives/multiline/components/multilineWithoutLabel/index.tsx +62 -0
  48. package/src/components/primitives/multiline/index.ts +2 -0
  49. package/src/components/primitives/multiline/types.ts +13 -0
  50. package/src/components/primitives/number/component/index.tsx +17 -0
  51. package/src/components/primitives/number/components/withLabel/index.tsx +127 -0
  52. package/src/components/primitives/number/components/withoutLabel/index.tsx +66 -0
  53. package/src/components/primitives/number/index.ts +2 -0
  54. package/src/components/primitives/number/types.ts +14 -0
  55. package/src/components/primitives/password/component/index.tsx +19 -0
  56. package/src/components/primitives/password/component/style.scss +16 -0
  57. package/src/components/primitives/password/components/withLabel/index.tsx +147 -0
  58. package/src/components/primitives/password/components/withoutLabel/index.tsx +79 -0
  59. package/src/components/primitives/password/index.ts +2 -0
  60. package/src/components/primitives/password/types.ts +10 -0
  61. package/src/components/primitives/text/component/index.tsx +20 -0
  62. package/src/components/primitives/text/components/textWithLabel/index.tsx +123 -0
  63. package/src/components/primitives/text/components/textWithoutLabel/index.tsx +64 -0
  64. package/src/components/primitives/text/index.tsx +2 -0
  65. package/src/components/primitives/text/types.ts +7 -0
  66. package/src/components/primitives/types/baseProps.ts +42 -0
  67. package/src/components/primitives/types/index.ts +3 -0
  68. package/src/components/primitives/types/label.ts +17 -0
  69. package/src/components/primitives/types/validation/index.ts +2 -0
  70. package/src/components/primitives/types/validation/state.ts +10 -0
  71. package/src/components/primitives/types/validation/status.ts +11 -0
  72. package/src/components/search/component/index.tsx +88 -0
  73. package/src/components/search/component/style.scss +24 -0
  74. package/src/components/search/index.ts +2 -0
  75. package/src/components/search/types.ts +35 -0
  76. package/src/components/tabs/component/index.tsx +147 -0
  77. package/src/components/tabs/component/style.scss +12 -0
  78. package/src/components/tabs/components/item/index.tsx +86 -0
  79. package/src/components/tabs/index.ts +2 -0
  80. package/src/components/tabs/types.ts +52 -0
  81. package/src/components/tag/component/index.tsx +52 -0
  82. package/src/components/tag/component/style.scss +27 -0
  83. package/src/components/tag/index.ts +2 -0
  84. package/src/components/tag/types.ts +34 -0
  85. package/src/components/types.ts +87 -0
  86. package/src/hooks/index.ts +2 -0
  87. package/src/hooks/useComponentOutsideClick.ts +48 -0
  88. package/src/hooks/usePagination.ts +55 -0
  89. package/src/index.ts +3 -0
  90. package/src/utils/dataAttributes.ts +26 -0
  91. package/src/utils/formValidation.ts +42 -0
  92. package/src/utils/index.ts +2 -0
  93. package/tsconfig.json +42 -0
  94. /package/{components → dist/components}/accordion/component/index.d.ts +0 -0
  95. /package/{components → dist/components}/accordion/component/index.d.ts.map +0 -0
  96. /package/{components → dist/components}/accordion/component/index.js +0 -0
  97. /package/{components → dist/components}/accordion/index.d.ts +0 -0
  98. /package/{components → dist/components}/accordion/index.d.ts.map +0 -0
  99. /package/{components → dist/components}/accordion/index.js +0 -0
  100. /package/{components → dist/components}/accordion/types.d.ts +0 -0
  101. /package/{components → dist/components}/accordion/types.d.ts.map +0 -0
  102. /package/{components → dist/components}/accordion/types.js +0 -0
  103. /package/{components → dist/components}/anchor/component/index.d.ts +0 -0
  104. /package/{components → dist/components}/anchor/component/index.d.ts.map +0 -0
  105. /package/{components → dist/components}/anchor/component/index.js +0 -0
  106. /package/{components → dist/components}/anchor/components/anchorWithIcon/index.d.ts +0 -0
  107. /package/{components → dist/components}/anchor/components/anchorWithIcon/index.d.ts.map +0 -0
  108. /package/{components → dist/components}/anchor/components/anchorWithIcon/index.js +0 -0
  109. /package/{components → dist/components}/anchor/components/simpleAnchor/index.d.ts +0 -0
  110. /package/{components → dist/components}/anchor/components/simpleAnchor/index.d.ts.map +0 -0
  111. /package/{components → dist/components}/anchor/components/simpleAnchor/index.js +0 -0
  112. /package/{components → dist/components}/anchor/index.d.ts +0 -0
  113. /package/{components → dist/components}/anchor/index.d.ts.map +0 -0
  114. /package/{components → dist/components}/anchor/index.js +0 -0
  115. /package/{components → dist/components}/anchor/types.d.ts +0 -0
  116. /package/{components → dist/components}/anchor/types.d.ts.map +0 -0
  117. /package/{components → dist/components}/anchor/types.js +0 -0
  118. /package/{components → dist/components}/button/component/index.d.ts +0 -0
  119. /package/{components → dist/components}/button/component/index.d.ts.map +0 -0
  120. /package/{components → dist/components}/button/component/index.js +0 -0
  121. /package/{components → dist/components}/button/components/buttonWithIcon/index.d.ts +0 -0
  122. /package/{components → dist/components}/button/components/buttonWithIcon/index.d.ts.map +0 -0
  123. /package/{components → dist/components}/button/components/buttonWithIcon/index.js +0 -0
  124. /package/{components → dist/components}/button/components/simpleButton/index.d.ts +0 -0
  125. /package/{components → dist/components}/button/components/simpleButton/index.d.ts.map +0 -0
  126. /package/{components → dist/components}/button/components/simpleButton/index.js +0 -0
  127. /package/{components → dist/components}/button/index.d.ts +0 -0
  128. /package/{components → dist/components}/button/index.d.ts.map +0 -0
  129. /package/{components → dist/components}/button/index.js +0 -0
  130. /package/{components → dist/components}/button/types.d.ts +0 -0
  131. /package/{components → dist/components}/button/types.d.ts.map +0 -0
  132. /package/{components → dist/components}/button/types.js +0 -0
  133. /package/{components → dist/components}/dropdown/component/index.d.ts +0 -0
  134. /package/{components → dist/components}/dropdown/component/index.d.ts.map +0 -0
  135. /package/{components → dist/components}/dropdown/component/index.js +0 -0
  136. /package/{components → dist/components}/dropdown/components/compact/index.d.ts +0 -0
  137. /package/{components → dist/components}/dropdown/components/compact/index.d.ts.map +0 -0
  138. /package/{components → dist/components}/dropdown/components/compact/index.js +0 -0
  139. /package/{components → dist/components}/dropdown/components/item/index.d.ts +0 -0
  140. /package/{components → dist/components}/dropdown/components/item/index.d.ts.map +0 -0
  141. /package/{components → dist/components}/dropdown/components/item/index.js +0 -0
  142. /package/{components → dist/components}/dropdown/components/label/index.d.ts +0 -0
  143. /package/{components → dist/components}/dropdown/components/label/index.d.ts.map +0 -0
  144. /package/{components → dist/components}/dropdown/components/label/index.js +0 -0
  145. /package/{components → dist/components}/dropdown/components/withLabel/index.d.ts +0 -0
  146. /package/{components → dist/components}/dropdown/components/withLabel/index.d.ts.map +0 -0
  147. /package/{components → dist/components}/dropdown/components/withLabel/index.js +0 -0
  148. /package/{components → dist/components}/dropdown/index.d.ts +0 -0
  149. /package/{components → dist/components}/dropdown/index.d.ts.map +0 -0
  150. /package/{components → dist/components}/dropdown/index.js +0 -0
  151. /package/{components → dist/components}/dropdown/types.d.ts +0 -0
  152. /package/{components → dist/components}/dropdown/types.d.ts.map +0 -0
  153. /package/{components → dist/components}/dropdown/types.js +0 -0
  154. /package/{components → dist/components}/icon/component/index.d.ts +0 -0
  155. /package/{components → dist/components}/icon/component/index.d.ts.map +0 -0
  156. /package/{components → dist/components}/icon/component/index.js +0 -0
  157. /package/{components → dist/components}/icon/index.d.ts +0 -0
  158. /package/{components → dist/components}/icon/index.d.ts.map +0 -0
  159. /package/{components → dist/components}/icon/index.js +0 -0
  160. /package/{components → dist/components}/icon/types.d.ts +0 -0
  161. /package/{components → dist/components}/icon/types.d.ts.map +0 -0
  162. /package/{components → dist/components}/icon/types.js +0 -0
  163. /package/{components → dist/components}/index.d.ts +0 -0
  164. /package/{components → dist/components}/index.d.ts.map +0 -0
  165. /package/{components → dist/components}/index.js +0 -0
  166. /package/{components → dist/components}/paginator/component/index.d.ts +0 -0
  167. /package/{components → dist/components}/paginator/component/index.d.ts.map +0 -0
  168. /package/{components → dist/components}/paginator/component/index.js +0 -0
  169. /package/{components → dist/components}/paginator/index.d.ts +0 -0
  170. /package/{components → dist/components}/paginator/index.d.ts.map +0 -0
  171. /package/{components → dist/components}/paginator/index.js +0 -0
  172. /package/{components → dist/components}/paginator/types.d.ts +0 -0
  173. /package/{components → dist/components}/paginator/types.d.ts.map +0 -0
  174. /package/{components → dist/components}/paginator/types.js +0 -0
  175. /package/{components → dist/components}/paginator/utils.d.ts +0 -0
  176. /package/{components → dist/components}/paginator/utils.d.ts.map +0 -0
  177. /package/{components → dist/components}/paginator/utils.js +0 -0
  178. /package/{components → dist/components}/primitives/checkbox/component/index.d.ts +0 -0
  179. /package/{components → dist/components}/primitives/checkbox/component/index.d.ts.map +0 -0
  180. /package/{components → dist/components}/primitives/checkbox/component/index.js +0 -0
  181. /package/{components → dist/components}/primitives/checkbox/index.d.ts +0 -0
  182. /package/{components → dist/components}/primitives/checkbox/index.d.ts.map +0 -0
  183. /package/{components → dist/components}/primitives/checkbox/index.js +0 -0
  184. /package/{components → dist/components}/primitives/checkbox/types.d.ts +0 -0
  185. /package/{components → dist/components}/primitives/checkbox/types.d.ts.map +0 -0
  186. /package/{components → dist/components}/primitives/checkbox/types.js +0 -0
  187. /package/{components → dist/components}/primitives/date/component/index.d.ts +0 -0
  188. /package/{components → dist/components}/primitives/date/component/index.d.ts.map +0 -0
  189. /package/{components → dist/components}/primitives/date/component/index.js +0 -0
  190. /package/{components → dist/components}/primitives/date/index.d.ts +0 -0
  191. /package/{components → dist/components}/primitives/date/index.d.ts.map +0 -0
  192. /package/{components → dist/components}/primitives/date/index.js +0 -0
  193. /package/{components → dist/components}/primitives/date/types.d.ts +0 -0
  194. /package/{components → dist/components}/primitives/date/types.d.ts.map +0 -0
  195. /package/{components → dist/components}/primitives/date/types.js +0 -0
  196. /package/{components → dist/components}/primitives/index.d.ts +0 -0
  197. /package/{components → dist/components}/primitives/index.d.ts.map +0 -0
  198. /package/{components → dist/components}/primitives/index.js +0 -0
  199. /package/{components → dist/components}/primitives/multiline/component/index.d.ts +0 -0
  200. /package/{components → dist/components}/primitives/multiline/component/index.d.ts.map +0 -0
  201. /package/{components → dist/components}/primitives/multiline/component/index.js +0 -0
  202. /package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.d.ts +0 -0
  203. /package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.d.ts.map +0 -0
  204. /package/{components → dist/components}/primitives/multiline/components/multilineWithLabel/index.js +0 -0
  205. /package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.d.ts +0 -0
  206. /package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.d.ts.map +0 -0
  207. /package/{components → dist/components}/primitives/multiline/components/multilineWithoutLabel/index.js +0 -0
  208. /package/{components → dist/components}/primitives/multiline/index.d.ts +0 -0
  209. /package/{components → dist/components}/primitives/multiline/index.d.ts.map +0 -0
  210. /package/{components → dist/components}/primitives/multiline/index.js +0 -0
  211. /package/{components → dist/components}/primitives/multiline/types.d.ts +0 -0
  212. /package/{components → dist/components}/primitives/multiline/types.d.ts.map +0 -0
  213. /package/{components → dist/components}/primitives/multiline/types.js +0 -0
  214. /package/{components → dist/components}/primitives/number/component/index.d.ts +0 -0
  215. /package/{components → dist/components}/primitives/number/component/index.d.ts.map +0 -0
  216. /package/{components → dist/components}/primitives/number/component/index.js +0 -0
  217. /package/{components → dist/components}/primitives/number/components/withLabel/index.d.ts +0 -0
  218. /package/{components → dist/components}/primitives/number/components/withLabel/index.d.ts.map +0 -0
  219. /package/{components → dist/components}/primitives/number/components/withLabel/index.js +0 -0
  220. /package/{components → dist/components}/primitives/number/components/withoutLabel/index.d.ts +0 -0
  221. /package/{components → dist/components}/primitives/number/components/withoutLabel/index.d.ts.map +0 -0
  222. /package/{components → dist/components}/primitives/number/components/withoutLabel/index.js +0 -0
  223. /package/{components → dist/components}/primitives/number/index.d.ts +0 -0
  224. /package/{components → dist/components}/primitives/number/index.d.ts.map +0 -0
  225. /package/{components → dist/components}/primitives/number/index.js +0 -0
  226. /package/{components → dist/components}/primitives/number/types.d.ts +0 -0
  227. /package/{components → dist/components}/primitives/number/types.d.ts.map +0 -0
  228. /package/{components → dist/components}/primitives/number/types.js +0 -0
  229. /package/{components → dist/components}/primitives/password/component/index.d.ts +0 -0
  230. /package/{components → dist/components}/primitives/password/component/index.d.ts.map +0 -0
  231. /package/{components → dist/components}/primitives/password/component/index.js +0 -0
  232. /package/{components → dist/components}/primitives/password/components/withLabel/index.d.ts +0 -0
  233. /package/{components → dist/components}/primitives/password/components/withLabel/index.d.ts.map +0 -0
  234. /package/{components → dist/components}/primitives/password/components/withLabel/index.js +0 -0
  235. /package/{components → dist/components}/primitives/password/components/withoutLabel/index.d.ts +0 -0
  236. /package/{components → dist/components}/primitives/password/components/withoutLabel/index.d.ts.map +0 -0
  237. /package/{components → dist/components}/primitives/password/components/withoutLabel/index.js +0 -0
  238. /package/{components → dist/components}/primitives/password/index.d.ts +0 -0
  239. /package/{components → dist/components}/primitives/password/index.d.ts.map +0 -0
  240. /package/{components → dist/components}/primitives/password/index.js +0 -0
  241. /package/{components → dist/components}/primitives/password/types.d.ts +0 -0
  242. /package/{components → dist/components}/primitives/password/types.d.ts.map +0 -0
  243. /package/{components → dist/components}/primitives/password/types.js +0 -0
  244. /package/{components → dist/components}/primitives/text/component/index.d.ts +0 -0
  245. /package/{components → dist/components}/primitives/text/component/index.d.ts.map +0 -0
  246. /package/{components → dist/components}/primitives/text/component/index.js +0 -0
  247. /package/{components → dist/components}/primitives/text/components/textWithLabel/index.d.ts +0 -0
  248. /package/{components → dist/components}/primitives/text/components/textWithLabel/index.d.ts.map +0 -0
  249. /package/{components → dist/components}/primitives/text/components/textWithLabel/index.js +0 -0
  250. /package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.d.ts +0 -0
  251. /package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.d.ts.map +0 -0
  252. /package/{components → dist/components}/primitives/text/components/textWithoutLabel/index.js +0 -0
  253. /package/{components → dist/components}/primitives/text/index.d.ts +0 -0
  254. /package/{components → dist/components}/primitives/text/index.d.ts.map +0 -0
  255. /package/{components → dist/components}/primitives/text/index.js +0 -0
  256. /package/{components → dist/components}/primitives/text/types.d.ts +0 -0
  257. /package/{components → dist/components}/primitives/text/types.d.ts.map +0 -0
  258. /package/{components → dist/components}/primitives/text/types.js +0 -0
  259. /package/{components → dist/components}/primitives/types/baseProps.d.ts +0 -0
  260. /package/{components → dist/components}/primitives/types/baseProps.d.ts.map +0 -0
  261. /package/{components → dist/components}/primitives/types/baseProps.js +0 -0
  262. /package/{components → dist/components}/primitives/types/index.d.ts +0 -0
  263. /package/{components → dist/components}/primitives/types/index.d.ts.map +0 -0
  264. /package/{components → dist/components}/primitives/types/index.js +0 -0
  265. /package/{components → dist/components}/primitives/types/label.d.ts +0 -0
  266. /package/{components → dist/components}/primitives/types/label.d.ts.map +0 -0
  267. /package/{components → dist/components}/primitives/types/label.js +0 -0
  268. /package/{components → dist/components}/primitives/types/validation/index.d.ts +0 -0
  269. /package/{components → dist/components}/primitives/types/validation/index.d.ts.map +0 -0
  270. /package/{components → dist/components}/primitives/types/validation/index.js +0 -0
  271. /package/{components → dist/components}/primitives/types/validation/state.d.ts +0 -0
  272. /package/{components → dist/components}/primitives/types/validation/state.d.ts.map +0 -0
  273. /package/{components → dist/components}/primitives/types/validation/state.js +0 -0
  274. /package/{components → dist/components}/primitives/types/validation/status.d.ts +0 -0
  275. /package/{components → dist/components}/primitives/types/validation/status.d.ts.map +0 -0
  276. /package/{components → dist/components}/primitives/types/validation/status.js +0 -0
  277. /package/{components → dist/components}/search/component/index.d.ts +0 -0
  278. /package/{components → dist/components}/search/component/index.d.ts.map +0 -0
  279. /package/{components → dist/components}/search/component/index.js +0 -0
  280. /package/{components → dist/components}/search/index.d.ts +0 -0
  281. /package/{components → dist/components}/search/index.d.ts.map +0 -0
  282. /package/{components → dist/components}/search/index.js +0 -0
  283. /package/{components → dist/components}/search/types.d.ts +0 -0
  284. /package/{components → dist/components}/search/types.d.ts.map +0 -0
  285. /package/{components → dist/components}/search/types.js +0 -0
  286. /package/{components → dist/components}/tabs/component/index.d.ts +0 -0
  287. /package/{components → dist/components}/tabs/component/index.d.ts.map +0 -0
  288. /package/{components → dist/components}/tabs/component/index.js +0 -0
  289. /package/{components → dist/components}/tabs/components/item/index.d.ts +0 -0
  290. /package/{components → dist/components}/tabs/components/item/index.d.ts.map +0 -0
  291. /package/{components → dist/components}/tabs/components/item/index.js +0 -0
  292. /package/{components → dist/components}/tabs/index.d.ts +0 -0
  293. /package/{components → dist/components}/tabs/index.d.ts.map +0 -0
  294. /package/{components → dist/components}/tabs/index.js +0 -0
  295. /package/{components → dist/components}/tabs/types.d.ts +0 -0
  296. /package/{components → dist/components}/tabs/types.d.ts.map +0 -0
  297. /package/{components → dist/components}/tabs/types.js +0 -0
  298. /package/{components → dist/components}/tag/component/index.d.ts +0 -0
  299. /package/{components → dist/components}/tag/component/index.d.ts.map +0 -0
  300. /package/{components → dist/components}/tag/component/index.js +0 -0
  301. /package/{components → dist/components}/tag/index.d.ts +0 -0
  302. /package/{components → dist/components}/tag/index.d.ts.map +0 -0
  303. /package/{components → dist/components}/tag/index.js +0 -0
  304. /package/{components → dist/components}/tag/types.d.ts +0 -0
  305. /package/{components → dist/components}/tag/types.d.ts.map +0 -0
  306. /package/{components → dist/components}/tag/types.js +0 -0
  307. /package/{components → dist/components}/types.d.ts +0 -0
  308. /package/{components → dist/components}/types.d.ts.map +0 -0
  309. /package/{components → dist/components}/types.js +0 -0
  310. /package/{hooks → dist/hooks}/index.d.ts +0 -0
  311. /package/{hooks → dist/hooks}/index.d.ts.map +0 -0
  312. /package/{hooks → dist/hooks}/index.js +0 -0
  313. /package/{hooks → dist/hooks}/useComponentOutsideClick.d.ts +0 -0
  314. /package/{hooks → dist/hooks}/useComponentOutsideClick.d.ts.map +0 -0
  315. /package/{hooks → dist/hooks}/useComponentOutsideClick.js +0 -0
  316. /package/{hooks → dist/hooks}/usePagination.d.ts +0 -0
  317. /package/{hooks → dist/hooks}/usePagination.d.ts.map +0 -0
  318. /package/{hooks → dist/hooks}/usePagination.js +0 -0
  319. /package/{index.d.ts → dist/index.d.ts} +0 -0
  320. /package/{index.d.ts.map → dist/index.d.ts.map} +0 -0
  321. /package/{index.js → dist/index.js} +0 -0
  322. /package/{tsconfig.tsbuildinfo → dist/tsconfig.tsbuildinfo} +0 -0
  323. /package/{utils → dist/utils}/dataAttributes.d.ts +0 -0
  324. /package/{utils → dist/utils}/dataAttributes.d.ts.map +0 -0
  325. /package/{utils → dist/utils}/dataAttributes.js +0 -0
  326. /package/{utils → dist/utils}/formValidation.d.ts +0 -0
  327. /package/{utils → dist/utils}/formValidation.d.ts.map +0 -0
  328. /package/{utils → dist/utils}/formValidation.js +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,120 @@
1
+ .bbr-dropdown {
2
+ min-width: 7.5rem;
3
+
4
+ &:not(.bbr-dropdown--compact) {
5
+ display: block;
6
+ }
7
+
8
+ &:not(.bbr-dropdown--compact) {
9
+ & .dropdown-menu {
10
+ min-width: 100%;
11
+ }
12
+ }
13
+
14
+ & .dropdown-menu {
15
+ & .dropdown-content {
16
+ overflow: auto;
17
+ }
18
+ }
19
+
20
+ &__label {
21
+ cursor: pointer;
22
+ user-select: none;
23
+ display: flex;
24
+ justify-content: flex-start;
25
+
26
+ span {
27
+ white-space: nowrap;
28
+ text-overflow: ellipsis;
29
+ overflow-x: hidden;
30
+ max-width: 15rem;
31
+ }
32
+
33
+ &--default span {
34
+ color: gray;
35
+ font-style: italic;
36
+ }
37
+
38
+ .bbr-icon {
39
+ &:hover {
40
+ color: #0d6efd;
41
+ }
42
+
43
+ &.bi-arrow-down {
44
+ margin-left: auto;
45
+ &::before {
46
+ transition: 0.25s ease-in-out transform;
47
+ }
48
+ }
49
+
50
+ &.bi-plus-lg::before {
51
+ transform: rotate(45deg);
52
+ }
53
+ }
54
+
55
+ &.is-success--md {
56
+ border-color: #48c78e;
57
+ }
58
+ &.is-danger--md {
59
+ border-color: #f14668;
60
+ }
61
+ }
62
+
63
+ &-item {
64
+ cursor: pointer;
65
+ user-select: none;
66
+ white-space: normal;
67
+
68
+ transition: 0.25s ease-in-out;
69
+ transition-property: color, background-color;
70
+
71
+ &:hover {
72
+ background-color: rgba(0, 0, 0, 0.05);
73
+ color: #0a0a0a;
74
+ }
75
+ &:active {
76
+ background-color: rgba(0, 0, 0, 0.15);
77
+ color: #0a0a0a;
78
+ }
79
+
80
+ &.is-active {
81
+ background-color: #485fc7;
82
+ color: #fff;
83
+ }
84
+ }
85
+
86
+ &.is-active {
87
+ .bbr-dropdown__label .bbr-icon.bi-arrow-down::before {
88
+ transform: rotate(180deg);
89
+ }
90
+ }
91
+
92
+ &--height-default {
93
+ .dropdown-menu .dropdown-content {
94
+ max-height: 15vw;
95
+ }
96
+ }
97
+
98
+ &--compact {
99
+ width: fit-content;
100
+
101
+ & .dropdown-menu {
102
+ min-width: 11.75rem;
103
+ }
104
+ }
105
+
106
+ &--disabled {
107
+ .bbr-dropdown__label {
108
+ background-color: hsl(0deg, 0%, 96%);
109
+ border-color: hsl(0deg, 0%, 96%);
110
+ box-shadow: none;
111
+ color: hsl(0deg, 0%, 48%);
112
+
113
+ cursor: not-allowed;
114
+
115
+ .bbr-icon {
116
+ pointer-events: none;
117
+ }
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,121 @@
1
+ import { useCallback, useId, useState, MouseEvent } from "react";
2
+
3
+ import { getClassName, isNullOrEmpty, isNullOrUndefined } from "@bodynarf/utils";
4
+
5
+ import { useComponentOutsideClick } from "@bbr/hooks";
6
+
7
+ import { DropdownProps } from "@bbr/components/dropdown";
8
+ import DropdownItem from "@bbr/components/dropdown/components/item";
9
+ import DropdownLabel from "@bbr/components/dropdown/components/label";
10
+
11
+ const DropdownCompact = ({
12
+ items,
13
+ value, onSelect,
14
+ deselectable,
15
+ className, hideOnOuterClick, listMaxHeight,
16
+ placeholder, compact, disabled,
17
+ }: DropdownProps): JSX.Element => {
18
+ const id = useId();
19
+
20
+ const [isListVisible, setListVisible] = useState<boolean>(false);
21
+
22
+ const onItemClick = useCallback(
23
+ (event: React.MouseEvent<HTMLLIElement>) => {
24
+ if (disabled ?? false) {
25
+ return;
26
+ }
27
+
28
+ const target = event.target as HTMLLIElement;
29
+
30
+ if (isNullOrUndefined(target)) {
31
+ return;
32
+ }
33
+
34
+ const dataValue = target.dataset["dropdownItemValue"];
35
+
36
+ if (isNullOrEmpty(dataValue)) {
37
+ return;
38
+ }
39
+
40
+ const item = items.find(x => x.value === dataValue);
41
+
42
+ if (isNullOrUndefined(item)) {
43
+ return;
44
+ }
45
+
46
+ if (value === item) {
47
+ setListVisible(false);
48
+ return;
49
+ }
50
+
51
+ onSelect(item);
52
+ setListVisible(false);
53
+ }, [setListVisible, value, items, onSelect, disabled]);
54
+
55
+ const onLabelClick = useCallback(
56
+ (event: MouseEvent<HTMLLabelElement>): void => {
57
+ if (disabled ?? false) {
58
+ return;
59
+ }
60
+
61
+ const target = event.target as HTMLElement;
62
+
63
+ if (isNullOrUndefined(target)) {
64
+ return;
65
+ }
66
+
67
+ if (target.classList.contains("bi-plus-lg")) {
68
+ onSelect(undefined);
69
+ } else {
70
+ setListVisible(state => !state);
71
+ }
72
+ }, [onSelect, setListVisible, disabled]);
73
+
74
+ useComponentOutsideClick(
75
+ `[data-dropdown-id="${id}"]`, isListVisible,
76
+ () => setListVisible(false),
77
+ hideOnOuterClick,
78
+ );
79
+
80
+ const classNames: string = getClassName([
81
+ "bbr-dropdown",
82
+ (disabled ?? false) ? "bbr-dropdown--disabled" : "",
83
+ (compact ?? false) ? "bbr-dropdown--compact" : "",
84
+ isListVisible ? "is-active" : "",
85
+ isNullOrEmpty(listMaxHeight) ? "bbr-dropdown--height-default" : "",
86
+ className,
87
+ "dropdown"
88
+ ]);
89
+
90
+ return (
91
+ <div
92
+ key={id}
93
+ className={classNames}
94
+ data-dropdown-id={id}
95
+ >
96
+ <DropdownLabel
97
+ caption={placeholder}
98
+ deselectable={deselectable === true}
99
+ selectedItem={value}
100
+ onClick={onLabelClick}
101
+ />
102
+ <div className="dropdown-menu">
103
+ {items.length > 0
104
+ ? <ul className="dropdown-content" style={{ maxHeight: listMaxHeight }}>
105
+ {items.map(item =>
106
+ <DropdownItem
107
+ key={item.id}
108
+ item={item}
109
+ selected={value?.value === item.value}
110
+ onClick={onItemClick}
111
+ />
112
+ )}
113
+ </ul>
114
+ : <span className="dropdown-content dropdown-item">No items found</span>
115
+ }
116
+ </div>
117
+ </div>
118
+ );
119
+ };
120
+
121
+ export default DropdownCompact;
@@ -0,0 +1,30 @@
1
+ import { SelectableItem } from "@bbr/components/dropdown";
2
+
3
+ /** Dropdown item props */
4
+ interface DropdownItemProps {
5
+ /** Item to present in dropdown */
6
+ item: SelectableItem;
7
+
8
+ /** Is item selected*/
9
+ selected: boolean;
10
+
11
+ /** Item click handler */
12
+ onClick: (event: React.MouseEvent<HTMLLIElement>) => void;
13
+ }
14
+
15
+ /** Single item in dropdown component */
16
+ const DropdownItem = ({ item, selected, onClick }: DropdownItemProps): JSX.Element => {
17
+ return (
18
+ <li
19
+ key={item.id}
20
+ className={`bbr-dropdown-item dropdown-item${selected ? " is-active" : ""}`}
21
+ onClick={onClick}
22
+ data-dropdown-item-value={item.value}
23
+ title={item.displayValue}
24
+ >
25
+ {item.displayValue}
26
+ </li>
27
+ );
28
+ };
29
+
30
+ export default DropdownItem;
@@ -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";
@@ -0,0 +1,59 @@
1
+ import { BaseElementProps, InputLabel, ValidationState } from "@bbr/components";
2
+
3
+ /** Dropdown item */
4
+ export interface SelectableItem {
5
+ /** Unique item identifier */
6
+ id: string;
7
+
8
+ /** Item value */
9
+ value: string;
10
+
11
+ /** Displaying text */
12
+ displayValue: string;
13
+ }
14
+
15
+ /** Dropdown component props type */
16
+ export interface DropdownProps extends BaseElementProps {
17
+ /** Items which can be selected */
18
+ items: Array<SelectableItem>;
19
+
20
+ /** Input element placeholder */
21
+ placeholder: string;
22
+
23
+ /**
24
+ * Action to update selected value, which stored outside
25
+ */
26
+ onSelect: (item?: SelectableItem) => void;
27
+
28
+ /**
29
+ * Selected value.
30
+ * Must be stored outside
31
+ */
32
+ value?: SelectableItem;
33
+
34
+ /** Hide dropdown list when its opened and user click outside */
35
+ hideOnOuterClick: boolean;
36
+
37
+ /** Can user deselect */
38
+ deselectable?: boolean;
39
+
40
+ /** Custom dropdown list max-height property */
41
+ listMaxHeight?: string;
42
+
43
+ /**
44
+ * Should dropdown be compact
45
+ * Will have width by maximum current selection item width
46
+ */
47
+ compact?: boolean;
48
+
49
+ /**
50
+ * Is element disabled
51
+ */
52
+ disabled?: boolean;
53
+
54
+ /** Label configuration */
55
+ label?: InputLabel;
56
+
57
+ /** Current validation state */
58
+ validationState?: ValidationState;
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";
@@ -0,0 +1,18 @@
1
+ import { ElementSize } from "@bbr/components";
2
+
3
+ /** Icon component props */
4
+ export interface IconProps {
5
+ /**
6
+ * Icon name. Must be without `bi-`
7
+ * @example ["Arrow repeat", "arrow-repeat"]
8
+ * // Icon name to icon class name.
9
+ * // For class name check bootstrap icons website
10
+ */
11
+ name: string;
12
+
13
+ /** Additional classname */
14
+ className?: string;
15
+
16
+ /** Icon size */
17
+ size?: ElementSize;
18
+ }
@@ -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";