@coorpacademy/components 10.1.4 → 10.1.8

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 (301) hide show
  1. package/es/atom/button-link/index.js +7 -22
  2. package/es/atom/button-link/index.js.map +1 -1
  3. package/es/atom/button-link/style.css +4 -6
  4. package/es/atom/button-link/test/fixtures.js +33 -0
  5. package/es/atom/button-link/test/fixtures.js.map +1 -0
  6. package/es/atom/button-link-icon-only/index.js +76 -0
  7. package/es/atom/button-link-icon-only/index.js.map +1 -0
  8. package/es/atom/button-link-icon-only/style.css +64 -0
  9. package/es/atom/button-link-icon-only/test/button-link-icon-only.js +25 -0
  10. package/es/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -0
  11. package/es/atom/button-link-icon-only/test/fixtures/button-icon-bullet.js +10 -0
  12. package/es/atom/button-link-icon-only/test/fixtures/button-icon-bullet.js.map +1 -0
  13. package/es/atom/{button-link/test/fixtures/icon-button.js → button-link-icon-only/test/fixtures/default.js} +3 -6
  14. package/es/atom/button-link-icon-only/test/fixtures/default.js.map +1 -0
  15. package/es/atom/button-link-icon-only/test/fixtures/no-icon.js +7 -0
  16. package/es/atom/button-link-icon-only/test/fixtures/no-icon.js.map +1 -0
  17. package/es/atom/button-link-icon-only/test/fixtures/small-button-disabled.js +11 -0
  18. package/es/atom/button-link-icon-only/test/fixtures/small-button-disabled.js.map +1 -0
  19. package/es/atom/button-link-icon-only/test/fixtures/small-link-download.js +13 -0
  20. package/es/atom/button-link-icon-only/test/fixtures/small-link-download.js.map +1 -0
  21. package/es/atom/button-menu/index.js +66 -0
  22. package/es/atom/button-menu/index.js.map +1 -0
  23. package/es/atom/button-menu/style.css +51 -0
  24. package/es/atom/button-menu/test/fixtures/default.js +20 -0
  25. package/es/atom/button-menu/test/fixtures/default.js.map +1 -0
  26. package/es/atom/button-menu/test/fixtures/multiple-buttons.js +15 -0
  27. package/es/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
  28. package/es/atom/chips/index.js +8 -4
  29. package/es/atom/chips/index.js.map +1 -1
  30. package/es/atom/chips/style.css +17 -2
  31. package/es/atom/chips/test/fixtures/long-text.js +9 -0
  32. package/es/atom/chips/test/fixtures/long-text.js.map +1 -0
  33. package/es/atom/chips/test/fixtures.js +17 -0
  34. package/es/atom/chips/test/fixtures.js.map +1 -0
  35. package/es/atom/content-badge/test/fixtures.js +27 -0
  36. package/es/atom/content-badge/test/fixtures.js.map +1 -0
  37. package/es/atom/input-checkbox/test/fixtures.js +2 -0
  38. package/es/atom/input-checkbox/test/fixtures.js.map +1 -1
  39. package/es/atom/input-search/style.css +1 -0
  40. package/es/atom/input-search/test/fixtures.js +19 -0
  41. package/es/atom/input-search/test/fixtures.js.map +1 -0
  42. package/es/atom/input-text/index.js.map +1 -1
  43. package/es/atom/input-text/style.css +6 -2
  44. package/es/atom/input-text/test/fixtures.js +2 -0
  45. package/es/atom/input-text/test/fixtures.js.map +1 -1
  46. package/es/atom/input-textarea/style.css +3 -3
  47. package/es/atom/input-textarea/test/fixtures.js +4 -0
  48. package/es/atom/input-textarea/test/fixtures.js.map +1 -1
  49. package/es/atom/tag/test/fixtures.js +19 -0
  50. package/es/atom/tag/test/fixtures.js.map +1 -0
  51. package/es/atom/title/test/fixtures.js +6 -2
  52. package/es/atom/title/test/fixtures.js.map +1 -1
  53. package/es/atom/wizard-steps/test/fixtures.js +17 -0
  54. package/es/atom/wizard-steps/test/fixtures.js.map +1 -0
  55. package/es/molecule/banner/index.js +19 -10
  56. package/es/molecule/banner/index.js.map +1 -1
  57. package/es/molecule/banner/style.css +10 -8
  58. package/es/molecule/banner/test/fixtures.js +15 -0
  59. package/es/molecule/banner/test/fixtures.js.map +1 -0
  60. package/es/molecule/brand-form-group/index.js +20 -5
  61. package/es/molecule/brand-form-group/index.js.map +1 -1
  62. package/es/molecule/brand-form-group/style.css +19 -0
  63. package/es/molecule/brand-form-group/test/fixtures.js +2 -0
  64. package/es/molecule/brand-form-group/test/fixtures.js.map +1 -1
  65. package/es/molecule/bullet-point-menu-button/index.js +51 -0
  66. package/es/molecule/bullet-point-menu-button/index.js.map +1 -0
  67. package/es/molecule/bullet-point-menu-button/style.css +52 -0
  68. package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +34 -0
  69. package/es/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
  70. package/es/molecule/bullet-point-menu-button/test/fixtures/default.js +11 -0
  71. package/es/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
  72. package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +13 -0
  73. package/es/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
  74. package/es/molecule/card/test/fixtures.js +4 -0
  75. package/es/molecule/card/test/fixtures.js.map +1 -1
  76. package/es/molecule/cm-popin/index.js +8 -7
  77. package/es/molecule/cm-popin/index.js.map +1 -1
  78. package/es/molecule/cm-popin/style.css +0 -25
  79. package/es/molecule/cm-popin/test/fixtures.js +17 -0
  80. package/es/molecule/cm-popin/test/fixtures.js.map +1 -0
  81. package/es/molecule/coorp-manager-roles/test/fixtures.js +13 -0
  82. package/es/molecule/coorp-manager-roles/test/fixtures.js.map +1 -0
  83. package/es/molecule/popin/test/fixtures.js +21 -0
  84. package/es/molecule/popin/test/fixtures.js.map +1 -0
  85. package/es/molecule/quick-access-card/test/fixtures.js +21 -0
  86. package/es/molecule/quick-access-card/test/fixtures.js.map +1 -0
  87. package/es/molecule/quick-access-cards-group/test/fixtures.js +21 -0
  88. package/es/molecule/quick-access-cards-group/test/fixtures.js.map +1 -0
  89. package/es/molecule/select-multiple/index.js +113 -146
  90. package/es/molecule/select-multiple/index.js.map +1 -1
  91. package/es/molecule/select-multiple/test/index.js +20 -79
  92. package/es/molecule/select-multiple/test/index.js.map +1 -1
  93. package/es/molecule/vertical-tabs/index.js +8 -3
  94. package/es/molecule/vertical-tabs/index.js.map +1 -1
  95. package/es/molecule/vertical-tabs/test/fixtures/default.js +2 -1
  96. package/es/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
  97. package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
  98. package/es/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
  99. package/es/molecule/vertical-tabs/test/fixtures.js +15 -0
  100. package/es/molecule/vertical-tabs/test/fixtures.js.map +1 -0
  101. package/es/molecule/wizard-summary/index.js +3 -1
  102. package/es/molecule/wizard-summary/index.js.map +1 -1
  103. package/es/molecule/wizard-summary/style.css +8 -0
  104. package/es/molecule/wizard-summary/test/fixtures.js +21 -0
  105. package/es/molecule/wizard-summary/test/fixtures.js.map +1 -0
  106. package/es/organism/accordion/coorp-manager/part/test/fixtures.js +4 -0
  107. package/es/organism/accordion/coorp-manager/part/test/fixtures.js.map +1 -1
  108. package/es/organism/brand-analytics/test/fixtures.js +23 -0
  109. package/es/organism/brand-analytics/test/fixtures.js.map +1 -0
  110. package/es/organism/brand-dashboard/test/fixtures.js +2 -10
  111. package/es/organism/brand-dashboard/test/fixtures.js.map +1 -1
  112. package/es/organism/brand-form/test/fixtures/wizard-playlists.js +26 -0
  113. package/es/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -0
  114. package/es/organism/playlist-translation/index.js +63 -0
  115. package/es/organism/playlist-translation/index.js.map +1 -0
  116. package/es/organism/playlist-translation/style.css +45 -0
  117. package/es/organism/playlist-translation/test/fixtures/default.js +24 -0
  118. package/es/organism/playlist-translation/test/fixtures/default.js.map +1 -0
  119. package/es/organism/playlist-translation/test/fixtures/delete.js +18 -0
  120. package/es/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
  121. package/es/organism/playlist-translation/test/fixtures.js +15 -0
  122. package/es/organism/playlist-translation/test/fixtures.js.map +1 -0
  123. package/es/organism/search-and-chips-results/index.js +92 -0
  124. package/es/organism/search-and-chips-results/index.js.map +1 -0
  125. package/es/organism/search-and-chips-results/style.css +57 -0
  126. package/es/organism/search-and-chips-results/test/fixtures/default.js +46 -0
  127. package/es/organism/search-and-chips-results/test/fixtures/default.js.map +1 -0
  128. package/es/organism/search-and-chips-results/test/fixtures/empty.js +23 -0
  129. package/es/organism/search-and-chips-results/test/fixtures/empty.js.map +1 -0
  130. package/es/organism/search-and-chips-results/test/fixtures/filtered.js +26 -0
  131. package/es/organism/search-and-chips-results/test/fixtures/filtered.js.map +1 -0
  132. package/es/organism/search-and-chips-results/test/fixtures/sorted-selected.js +49 -0
  133. package/es/organism/search-and-chips-results/test/fixtures/sorted-selected.js.map +1 -0
  134. package/es/organism/search-and-chips-results/test/fixtures/unsorted-selected.js +49 -0
  135. package/es/organism/search-and-chips-results/test/fixtures/unsorted-selected.js.map +1 -0
  136. package/es/organism/search-and-chips-results/test/fixtures.js +21 -0
  137. package/es/organism/search-and-chips-results/test/fixtures.js.map +1 -0
  138. package/es/organism/setup-header/index.js +78 -31
  139. package/es/organism/setup-header/index.js.map +1 -1
  140. package/es/organism/setup-header/style.css +27 -62
  141. package/es/template/back-office/brand-update/test/fixtures.js +2 -0
  142. package/es/template/back-office/brand-update/test/fixtures.js.map +1 -1
  143. package/es/template/teams-dashboard/index.js +4 -3
  144. package/es/template/teams-dashboard/index.js.map +1 -1
  145. package/es/util/button-icons.js +16 -0
  146. package/es/util/button-icons.js.map +1 -0
  147. package/es/variables/colors.css +2 -0
  148. package/lib/atom/button-link/index.js +9 -24
  149. package/lib/atom/button-link/index.js.map +1 -1
  150. package/lib/atom/button-link/style.css +4 -6
  151. package/lib/atom/button-link/test/fixtures.js +52 -0
  152. package/lib/atom/button-link/test/fixtures.js.map +1 -0
  153. package/lib/atom/button-link-icon-only/index.js +94 -0
  154. package/lib/atom/button-link-icon-only/index.js.map +1 -0
  155. package/lib/atom/button-link-icon-only/style.css +64 -0
  156. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js +37 -0
  157. package/lib/atom/button-link-icon-only/test/button-link-icon-only.js.map +1 -0
  158. package/lib/atom/button-link-icon-only/test/fixtures/button-icon-bullet.js +15 -0
  159. package/lib/atom/button-link-icon-only/test/fixtures/button-icon-bullet.js.map +1 -0
  160. package/lib/atom/{button-link/test/fixtures/icon-button.js → button-link-icon-only/test/fixtures/default.js} +3 -6
  161. package/lib/atom/button-link-icon-only/test/fixtures/default.js.map +1 -0
  162. package/lib/atom/button-link-icon-only/test/fixtures/no-icon.js +12 -0
  163. package/lib/atom/button-link-icon-only/test/fixtures/no-icon.js.map +1 -0
  164. package/lib/atom/button-link-icon-only/test/fixtures/small-button-disabled.js +16 -0
  165. package/lib/atom/button-link-icon-only/test/fixtures/small-button-disabled.js.map +1 -0
  166. package/lib/atom/button-link-icon-only/test/fixtures/small-link-download.js +18 -0
  167. package/lib/atom/button-link-icon-only/test/fixtures/small-link-download.js.map +1 -0
  168. package/lib/atom/button-menu/index.js +82 -0
  169. package/lib/atom/button-menu/index.js.map +1 -0
  170. package/lib/atom/button-menu/style.css +51 -0
  171. package/lib/atom/button-menu/test/fixtures/default.js +27 -0
  172. package/lib/atom/button-menu/test/fixtures/default.js.map +1 -0
  173. package/lib/atom/button-menu/test/fixtures/multiple-buttons.js +23 -0
  174. package/lib/atom/button-menu/test/fixtures/multiple-buttons.js.map +1 -0
  175. package/lib/atom/chips/index.js +8 -4
  176. package/lib/atom/chips/index.js.map +1 -1
  177. package/lib/atom/chips/style.css +17 -2
  178. package/lib/atom/chips/test/fixtures/long-text.js +14 -0
  179. package/lib/atom/chips/test/fixtures/long-text.js.map +1 -0
  180. package/lib/atom/chips/test/fixtures.js +28 -0
  181. package/lib/atom/chips/test/fixtures.js.map +1 -0
  182. package/lib/atom/content-badge/test/fixtures.js +43 -0
  183. package/lib/atom/content-badge/test/fixtures.js.map +1 -0
  184. package/lib/atom/input-checkbox/test/fixtures.js +3 -0
  185. package/lib/atom/input-checkbox/test/fixtures.js.map +1 -1
  186. package/lib/atom/input-search/style.css +1 -0
  187. package/lib/atom/input-search/test/fixtures.js +31 -0
  188. package/lib/atom/input-search/test/fixtures.js.map +1 -0
  189. package/lib/atom/input-text/index.js.map +1 -1
  190. package/lib/atom/input-text/style.css +6 -2
  191. package/lib/atom/input-text/test/fixtures.js +3 -0
  192. package/lib/atom/input-text/test/fixtures.js.map +1 -1
  193. package/lib/atom/input-textarea/style.css +3 -3
  194. package/lib/atom/input-textarea/test/fixtures.js +6 -0
  195. package/lib/atom/input-textarea/test/fixtures.js.map +1 -1
  196. package/lib/atom/tag/test/fixtures.js +31 -0
  197. package/lib/atom/tag/test/fixtures.js.map +1 -0
  198. package/lib/atom/title/test/fixtures.js +8 -2
  199. package/lib/atom/title/test/fixtures.js.map +1 -1
  200. package/lib/atom/wizard-steps/test/fixtures.js +28 -0
  201. package/lib/atom/wizard-steps/test/fixtures.js.map +1 -0
  202. package/lib/molecule/banner/index.js +19 -10
  203. package/lib/molecule/banner/index.js.map +1 -1
  204. package/lib/molecule/banner/style.css +10 -8
  205. package/lib/molecule/banner/test/fixtures.js +25 -0
  206. package/lib/molecule/banner/test/fixtures.js.map +1 -0
  207. package/lib/molecule/brand-form-group/index.js +22 -5
  208. package/lib/molecule/brand-form-group/index.js.map +1 -1
  209. package/lib/molecule/brand-form-group/style.css +19 -0
  210. package/lib/molecule/brand-form-group/test/fixtures.js +3 -0
  211. package/lib/molecule/brand-form-group/test/fixtures.js.map +1 -1
  212. package/lib/molecule/bullet-point-menu-button/index.js +69 -0
  213. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -0
  214. package/lib/molecule/bullet-point-menu-button/style.css +52 -0
  215. package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js +46 -0
  216. package/lib/molecule/bullet-point-menu-button/test/bullet-point-menu-button.js.map +1 -0
  217. package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js +18 -0
  218. package/lib/molecule/bullet-point-menu-button/test/fixtures/default.js.map +1 -0
  219. package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js +25 -0
  220. package/lib/molecule/bullet-point-menu-button/test/fixtures/multiple-buttons.js.map +1 -0
  221. package/lib/molecule/card/test/fixtures.js +6 -0
  222. package/lib/molecule/card/test/fixtures.js.map +1 -1
  223. package/lib/molecule/cm-popin/index.js +8 -6
  224. package/lib/molecule/cm-popin/index.js.map +1 -1
  225. package/lib/molecule/cm-popin/style.css +0 -25
  226. package/lib/molecule/cm-popin/test/fixtures.js +28 -0
  227. package/lib/molecule/cm-popin/test/fixtures.js.map +1 -0
  228. package/lib/molecule/coorp-manager-roles/test/fixtures.js +22 -0
  229. package/lib/molecule/coorp-manager-roles/test/fixtures.js.map +1 -0
  230. package/lib/molecule/popin/test/fixtures.js +34 -0
  231. package/lib/molecule/popin/test/fixtures.js.map +1 -0
  232. package/lib/molecule/quick-access-card/test/fixtures.js +34 -0
  233. package/lib/molecule/quick-access-card/test/fixtures.js.map +1 -0
  234. package/lib/molecule/quick-access-cards-group/test/fixtures.js +34 -0
  235. package/lib/molecule/quick-access-cards-group/test/fixtures.js.map +1 -0
  236. package/lib/molecule/select-multiple/index.js +117 -143
  237. package/lib/molecule/select-multiple/index.js.map +1 -1
  238. package/lib/molecule/select-multiple/test/index.js +25 -79
  239. package/lib/molecule/select-multiple/test/index.js.map +1 -1
  240. package/lib/molecule/vertical-tabs/index.js +8 -3
  241. package/lib/molecule/vertical-tabs/index.js.map +1 -1
  242. package/lib/molecule/vertical-tabs/test/fixtures/default.js +2 -1
  243. package/lib/molecule/vertical-tabs/test/fixtures/default.js.map +1 -1
  244. package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js +2 -1
  245. package/lib/molecule/vertical-tabs/test/fixtures/with-selected-item.js.map +1 -1
  246. package/lib/molecule/vertical-tabs/test/fixtures.js +25 -0
  247. package/lib/molecule/vertical-tabs/test/fixtures.js.map +1 -0
  248. package/lib/molecule/wizard-summary/index.js +3 -1
  249. package/lib/molecule/wizard-summary/index.js.map +1 -1
  250. package/lib/molecule/wizard-summary/style.css +8 -0
  251. package/lib/molecule/wizard-summary/test/fixtures.js +34 -0
  252. package/lib/molecule/wizard-summary/test/fixtures.js.map +1 -0
  253. package/lib/organism/accordion/coorp-manager/part/test/fixtures.js +6 -0
  254. package/lib/organism/accordion/coorp-manager/part/test/fixtures.js.map +1 -1
  255. package/lib/organism/brand-analytics/test/fixtures.js +37 -0
  256. package/lib/organism/brand-analytics/test/fixtures.js.map +1 -0
  257. package/lib/organism/brand-dashboard/test/fixtures.js +2 -14
  258. package/lib/organism/brand-dashboard/test/fixtures.js.map +1 -1
  259. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js +31 -0
  260. package/lib/organism/brand-form/test/fixtures/wizard-playlists.js.map +1 -0
  261. package/lib/organism/playlist-translation/index.js +78 -0
  262. package/lib/organism/playlist-translation/index.js.map +1 -0
  263. package/lib/organism/playlist-translation/style.css +45 -0
  264. package/lib/organism/playlist-translation/test/fixtures/default.js +35 -0
  265. package/lib/organism/playlist-translation/test/fixtures/default.js.map +1 -0
  266. package/lib/organism/playlist-translation/test/fixtures/delete.js +29 -0
  267. package/lib/organism/playlist-translation/test/fixtures/delete.js.map +1 -0
  268. package/lib/organism/playlist-translation/test/fixtures.js +25 -0
  269. package/lib/organism/playlist-translation/test/fixtures.js.map +1 -0
  270. package/lib/organism/search-and-chips-results/index.js +105 -0
  271. package/lib/organism/search-and-chips-results/index.js.map +1 -0
  272. package/lib/organism/search-and-chips-results/style.css +57 -0
  273. package/lib/organism/search-and-chips-results/test/fixtures/default.js +51 -0
  274. package/lib/organism/search-and-chips-results/test/fixtures/default.js.map +1 -0
  275. package/lib/organism/search-and-chips-results/test/fixtures/empty.js +28 -0
  276. package/lib/organism/search-and-chips-results/test/fixtures/empty.js.map +1 -0
  277. package/lib/organism/search-and-chips-results/test/fixtures/filtered.js +31 -0
  278. package/lib/organism/search-and-chips-results/test/fixtures/filtered.js.map +1 -0
  279. package/lib/organism/search-and-chips-results/test/fixtures/sorted-selected.js +54 -0
  280. package/lib/organism/search-and-chips-results/test/fixtures/sorted-selected.js.map +1 -0
  281. package/lib/organism/search-and-chips-results/test/fixtures/unsorted-selected.js +54 -0
  282. package/lib/organism/search-and-chips-results/test/fixtures/unsorted-selected.js.map +1 -0
  283. package/lib/organism/search-and-chips-results/test/fixtures.js +34 -0
  284. package/lib/organism/search-and-chips-results/test/fixtures.js.map +1 -0
  285. package/lib/organism/setup-header/index.js +80 -32
  286. package/lib/organism/setup-header/index.js.map +1 -1
  287. package/lib/organism/setup-header/style.css +27 -62
  288. package/lib/template/back-office/brand-update/test/fixtures.js +3 -0
  289. package/lib/template/back-office/brand-update/test/fixtures.js.map +1 -1
  290. package/lib/template/teams-dashboard/index.js +3 -1
  291. package/lib/template/teams-dashboard/index.js.map +1 -1
  292. package/lib/util/button-icons.js +23 -0
  293. package/lib/util/button-icons.js.map +1 -0
  294. package/lib/variables/colors.css +2 -0
  295. package/package.json +3 -3
  296. package/es/atom/button-link/test/fixtures/icon-button.js.map +0 -1
  297. package/es/molecule/cockpit-popin/test/fixtures.js +0 -17
  298. package/es/molecule/cockpit-popin/test/fixtures.js.map +0 -1
  299. package/lib/atom/button-link/test/fixtures/icon-button.js.map +0 -1
  300. package/lib/molecule/cockpit-popin/test/fixtures.js +0 -28
  301. package/lib/molecule/cockpit-popin/test/fixtures.js.map +0 -1
@@ -1,22 +1,14 @@
1
+ import _keys from "lodash/fp/keys";
1
2
  import _getOr from "lodash/fp/getOr";
2
3
 
3
4
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
5
 
5
- import React, { useMemo } from 'react';
6
+ import React, { useCallback } from 'react';
6
7
  import PropTypes from 'prop-types';
7
8
  import classnames from 'classnames';
8
- import { NovaCompositionNavigationArrowLeft as ChevronLeftIcon, NovaCompositionNavigationArrowRight as ChevronRightIcon, NovaCompositionCoorpacademyEye as EyeIcon, NovaCompositionCoorpacademyAnalytics as AnalyticsIcon, NovaCompositionCoorpacademyNext as CloseIcon, NovaSolidComputersSdCard as SaveIcon, NovaSolidContentEditionPencilWrite as EditIcon } from '@coorpacademy/nova-icons';
9
9
  import Link from '../link';
10
+ import { ICONS } from '../../util/button-icons';
10
11
  import style from './style.css';
11
- const ICONS = {
12
- analytics: AnalyticsIcon,
13
- 'chevron-left': ChevronLeftIcon,
14
- 'chevron-right': ChevronRightIcon,
15
- close: CloseIcon,
16
- edit: EditIcon,
17
- save: SaveIcon,
18
- see: EyeIcon
19
- };
20
12
 
21
13
  const getButtonContent = (icon, label) => {
22
14
  const {
@@ -34,14 +26,6 @@ const getButtonContent = (icon, label) => {
34
26
  }, label));
35
27
  }
36
28
 
37
- if (position === 'center' && Icon) {
38
- return /*#__PURE__*/React.createElement("div", {
39
- className: style.buttonContent
40
- }, /*#__PURE__*/React.createElement(Icon, {
41
- className: style.icon
42
- }));
43
- }
44
-
45
29
  return /*#__PURE__*/React.createElement("div", {
46
30
  className: style.buttonContent
47
31
  }, position === 'left' ? /*#__PURE__*/React.createElement(Icon, {
@@ -76,11 +60,12 @@ const ButtonLink = props => {
76
60
  }), contentView);
77
61
  }
78
62
 
79
- const handleOnClick = useMemo(() => () => onClick(), [onClick]);
63
+ const handleOnClick = useCallback(() => onClick(), [onClick]);
80
64
  return /*#__PURE__*/React.createElement("button", {
81
65
  type: "button",
82
66
  "aria-label": ariaLabel || label,
83
67
  title: ariaLabel || label,
68
+ "data-name": dataName,
84
69
  className: styleButton,
85
70
  onClick: handleOnClick
86
71
  }, contentView);
@@ -92,8 +77,8 @@ ButtonLink.propTypes = process.env.NODE_ENV !== "production" ? {
92
77
  'aria-label': PropTypes.string,
93
78
  'data-name': PropTypes.string,
94
79
  icon: PropTypes.shape({
95
- position: PropTypes.oneOf(['right', 'left', 'center']),
96
- type: PropTypes.string
80
+ position: PropTypes.oneOf(['right', 'left']),
81
+ type: PropTypes.oneOf(_keys(ICONS))
97
82
  }),
98
83
  onClick: PropTypes.func,
99
84
  link: PropTypes.shape({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/atom/button-link/index.js"],"names":["React","useMemo","PropTypes","classnames","NovaCompositionNavigationArrowLeft","ChevronLeftIcon","NovaCompositionNavigationArrowRight","ChevronRightIcon","NovaCompositionCoorpacademyEye","EyeIcon","NovaCompositionCoorpacademyAnalytics","AnalyticsIcon","NovaCompositionCoorpacademyNext","CloseIcon","NovaSolidComputersSdCard","SaveIcon","NovaSolidContentEditionPencilWrite","EditIcon","Link","style","ICONS","analytics","close","edit","save","see","getButtonContent","icon","label","type","position","Icon","buttonContent","ButtonLink","props","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","button","primary","secondary","tertiary","text","dangerous","handleOnClick","propTypes","oneOf","string","shape","func","href","download","bool","target"],"mappings":";;;;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SACEC,kCAAkC,IAAIC,eADxC,EAEEC,mCAAmC,IAAIC,gBAFzC,EAGEC,8BAA8B,IAAIC,OAHpC,EAIEC,oCAAoC,IAAIC,aAJ1C,EAKEC,+BAA+B,IAAIC,SALrC,EAMEC,wBAAwB,IAAIC,QAN9B,EAOEC,kCAAkC,IAAIC,QAPxC,QAQO,0BARP;AASA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;AAEA,MAAMC,KAAK,GAAG;AACZC,EAAAA,SAAS,EAAEV,aADC;AAEZ,kBAAgBN,eAFJ;AAGZ,mBAAiBE,gBAHL;AAIZe,EAAAA,KAAK,EAAET,SAJK;AAKZU,EAAAA,IAAI,EAAEN,QALM;AAMZO,EAAAA,IAAI,EAAET,QANM;AAOZU,EAAAA,GAAG,EAAEhB;AAPO,CAAd;;AAUA,MAAMiB,gBAAgB,GAAG,CAACC,IAAD,EAAOC,KAAP,KAAiB;AACxC,QAAM;AAACC,IAAAA,IAAD;AAAOC,IAAAA;AAAP,MAAmBH,IAAzB;;AACA,QAAMI,IAAI,GAAG,OAAM,IAAN,EAAYF,IAAZ,EAAkBT,KAAlB,CAAb;;AAEA,MAAI,CAACW,IAAL,EAAW;AACT,wBACE;AAAK,MAAA,SAAS,EAAEZ,KAAK,CAACa;AAAtB,oBACE;AAAM,MAAA,SAAS,EAAEb,KAAK,CAACS;AAAvB,OAA+BA,KAA/B,CADF,CADF;AAKD;;AAED,MAAIE,QAAQ,KAAK,QAAb,IAAyBC,IAA7B,EAAmC;AACjC,wBACE;AAAK,MAAA,SAAS,EAAEZ,KAAK,CAACa;AAAtB,oBACE,oBAAC,IAAD;AAAM,MAAA,SAAS,EAAEb,KAAK,CAACQ;AAAvB,MADF,CADF;AAKD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAER,KAAK,CAACa;AAAtB,KACGF,QAAQ,KAAK,MAAb,gBAAsB,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEX,KAAK,CAACQ;AAAvB,IAAtB,GAAwD,IAD3D,eAEE;AAAM,IAAA,SAAS,EAAER,KAAK,CAACS;AAAvB,KAA+BA,KAA/B,CAFF,EAGGE,QAAQ,KAAK,OAAb,gBAAuB,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEX,KAAK,CAACQ;AAAvB,IAAvB,GAAyD,IAH5D,CADF;AAOD,CA3BD;;AA6BA,MAAMM,UAAU,GAAGC,KAAK,IAAI;AAC1B,QAAM;AACJL,IAAAA,IADI;AAEJD,IAAAA,KAFI;AAGJO,IAAAA,QAHI;AAIJR,IAAAA,IAAI,GAAG,EAJH;AAKJ,iBAAaS,QALT;AAMJ,kBAAcC,SANV;AAOJC,IAAAA,IAPI;AAQJC,IAAAA;AARI,MASFL,KATJ;AAUA,QAAMM,WAAW,GAAGd,gBAAgB,CAACC,IAAD,EAAOC,KAAP,CAApC;AACA,QAAMa,WAAW,GAAGtC,UAAU,CAC5BgB,KAAK,CAACuB,MADsB,EAE5Bb,IAAI,KAAK,SAAT,IAAsBV,KAAK,CAACwB,OAFA,EAG5Bd,IAAI,KAAK,WAAT,IAAwBV,KAAK,CAACyB,SAHF,EAI5Bf,IAAI,KAAK,UAAT,IAAuBV,KAAK,CAAC0B,QAJD,EAK5BhB,IAAI,KAAK,MAAT,IAAmBV,KAAK,CAAC2B,IALG,EAM5BjB,IAAI,KAAK,WAAT,IAAwBV,KAAK,CAAC4B,SANF,EAO5BT,IAAI,IAAInB,KAAK,CAACmB,IAPc,EAQ5BH,QAAQ,IAAIhB,KAAK,CAACgB,QARU,CAA9B;;AAWA,MAAIG,IAAJ,EAAU;AACR,wBACE,oBAAC,IAAD,eACMA,IADN;AAEE,MAAA,SAAS,EAAEG,WAFb;AAGE,mBAAWL,QAHb;AAIE,oBAAYC,SAAS,IAAIT,KAJ3B;AAKE,MAAA,KAAK,EAAES,SAAS,IAAIT;AALtB,QAOGY,WAPH,CADF;AAWD;;AAED,QAAMQ,aAAa,GAAG/C,OAAO,CAAC,MAAM,MAAMsC,OAAO,EAApB,EAAwB,CAACA,OAAD,CAAxB,CAA7B;AACA,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYF,SAAS,IAAIT,KAF3B;AAGE,IAAA,KAAK,EAAES,SAAS,IAAIT,KAHtB;AAIE,IAAA,SAAS,EAAEa,WAJb;AAKE,IAAA,OAAO,EAAEO;AALX,KAOGR,WAPH,CADF;AAWD,CAjDD;;AAmDAP,UAAU,CAACgB,SAAX,2CAAuB;AACrBpB,EAAAA,IAAI,EAAE3B,SAAS,CAACgD,KAAV,CAAgB,CAAC,SAAD,EAAY,WAAZ,EAAyB,UAAzB,EAAqC,MAArC,EAA6C,WAA7C,CAAhB,CADe;AAErBtB,EAAAA,KAAK,EAAE1B,SAAS,CAACiD,MAFI;AAGrB,gBAAcjD,SAAS,CAACiD,MAHH;AAIrB,eAAajD,SAAS,CAACiD,MAJF;AAKrBxB,EAAAA,IAAI,EAAEzB,SAAS,CAACkD,KAAV,CAAgB;AACpBtB,IAAAA,QAAQ,EAAE5B,SAAS,CAACgD,KAAV,CAAgB,CAAC,OAAD,EAAU,MAAV,EAAkB,QAAlB,CAAhB,CADU;AAEpBrB,IAAAA,IAAI,EAAE3B,SAAS,CAACiD;AAFI,GAAhB,CALe;AASrBZ,EAAAA,OAAO,EAAErC,SAAS,CAACmD,IATE;AAUrBf,EAAAA,IAAI,EAAEpC,SAAS,CAACkD,KAAV,CAAgB;AACpBE,IAAAA,IAAI,EAAEpD,SAAS,CAACiD,MADI;AAEpBI,IAAAA,QAAQ,EAAErD,SAAS,CAACsD,IAFA;AAGpBC,IAAAA,MAAM,EAAEvD,SAAS,CAACgD,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CAVe;AAerBf,EAAAA,QAAQ,EAAEjC,SAAS,CAACsD;AAfC,CAAvB;AAkBA,eAAevB,UAAf","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {\n NovaCompositionNavigationArrowLeft as ChevronLeftIcon,\n NovaCompositionNavigationArrowRight as ChevronRightIcon,\n NovaCompositionCoorpacademyEye as EyeIcon,\n NovaCompositionCoorpacademyAnalytics as AnalyticsIcon,\n NovaCompositionCoorpacademyNext as CloseIcon,\n NovaSolidComputersSdCard as SaveIcon,\n NovaSolidContentEditionPencilWrite as EditIcon\n} from '@coorpacademy/nova-icons';\nimport Link from '../link';\nimport style from './style.css';\n\nconst ICONS = {\n analytics: AnalyticsIcon,\n 'chevron-left': ChevronLeftIcon,\n 'chevron-right': ChevronRightIcon,\n close: CloseIcon,\n edit: EditIcon,\n save: SaveIcon,\n see: EyeIcon\n};\n\nconst getButtonContent = (icon, label) => {\n const {type, position} = icon;\n const Icon = getOr(null, type, ICONS);\n\n if (!Icon) {\n return (\n <div className={style.buttonContent}>\n <span className={style.label}>{label}</span>\n </div>\n );\n }\n\n if (position === 'center' && Icon) {\n return (\n <div className={style.buttonContent}>\n <Icon className={style.icon} />\n </div>\n );\n }\n\n return (\n <div className={style.buttonContent}>\n {position === 'left' ? <Icon className={style.icon} /> : null}\n <span className={style.label}>{label}</span>\n {position === 'right' ? <Icon className={style.icon} /> : null}\n </div>\n );\n};\n\nconst ButtonLink = props => {\n const {\n type,\n label,\n disabled,\n icon = {},\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick\n } = props;\n const contentView = getButtonContent(icon, label);\n const styleButton = classnames(\n style.button,\n type === 'primary' && style.primary,\n type === 'secondary' && style.secondary,\n type === 'tertiary' && style.tertiary,\n type === 'text' && style.text,\n type === 'dangerous' && style.dangerous,\n link && style.link,\n disabled && style.disabled\n );\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n >\n {contentView}\n </Link>\n );\n }\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLink.propTypes = {\n type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),\n label: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.shape({\n position: PropTypes.oneOf(['right', 'left', 'center']),\n type: PropTypes.string\n }),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool\n};\n\nexport default ButtonLink;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/atom/button-link/index.js"],"names":["React","useCallback","PropTypes","classnames","Link","ICONS","style","getButtonContent","icon","label","type","position","Icon","buttonContent","ButtonLink","props","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","button","primary","secondary","tertiary","text","dangerous","handleOnClick","propTypes","oneOf","string","shape","func","href","download","bool","target"],"mappings":"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","sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport Link from '../link';\nimport {ICONS} from '../../util/button-icons';\nimport style from './style.css';\n\nconst getButtonContent = (icon, label) => {\n const {type, position} = icon;\n const Icon = getOr(null, type, ICONS);\n\n if (!Icon) {\n return (\n <div className={style.buttonContent}>\n <span className={style.label}>{label}</span>\n </div>\n );\n }\n\n return (\n <div className={style.buttonContent}>\n {position === 'left' ? <Icon className={style.icon} /> : null}\n <span className={style.label}>{label}</span>\n {position === 'right' ? <Icon className={style.icon} /> : null}\n </div>\n );\n};\n\nconst ButtonLink = props => {\n const {\n type,\n label,\n disabled,\n icon = {},\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick\n } = props;\n const contentView = getButtonContent(icon, label);\n const styleButton = classnames(\n style.button,\n type === 'primary' && style.primary,\n type === 'secondary' && style.secondary,\n type === 'tertiary' && style.tertiary,\n type === 'text' && style.text,\n type === 'dangerous' && style.dangerous,\n link && style.link,\n disabled && style.disabled\n );\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n >\n {contentView}\n </Link>\n );\n }\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel || label}\n title={ariaLabel || label}\n data-name={dataName}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLink.propTypes = {\n type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),\n label: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.shape({\n position: PropTypes.oneOf(['right', 'left']),\n type: PropTypes.oneOf(keys(ICONS))\n }),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool\n};\n\nexport default ButtonLink;\n"],"file":"index.js"}
@@ -21,6 +21,9 @@
21
21
  align-items: center;
22
22
  cursor: pointer;
23
23
  border: none;
24
+ /* prevents text selection when dragging
25
+ the mouse over the button */
26
+ user-select: none;
24
27
  }
25
28
 
26
29
  .disabled {
@@ -70,7 +73,6 @@
70
73
  .tertiary {
71
74
  background-color: cm_grey_50;
72
75
  color: cm_grey_900;
73
- border-radius: 0px;
74
76
  }
75
77
 
76
78
  .tertiary:hover {
@@ -87,11 +89,7 @@
87
89
 
88
90
  .text {
89
91
  background: transparent;
90
- color: cm_grey_900;
92
+ color: inherit;
91
93
  border-radius: 0px;
92
94
  height: auto;
93
95
  }
94
-
95
- .text:hover {
96
- color: cm_primary_blue;
97
- }
@@ -0,0 +1,33 @@
1
+ import test from 'ava';
2
+ import forEach from 'lodash/forEach';
3
+ import renderComponentMacro from '../../../test/helpers/render-component';
4
+ import AtomButtonLink from '..';
5
+ import fixtureButtonDangerousNoIcon from './fixtures/button-dangerous-no-icon';
6
+ import fixtureButtonPrimaryIconLeft from './fixtures/button-primary-icon-left';
7
+ import fixtureButtonPrimaryNoIcon from './fixtures/button-primary-no-icon';
8
+ import fixtureButtonSecondaryNoIconDisabled from './fixtures/button-secondary-no-icon-disabled';
9
+ import fixtureButtonTertiaryIconLeft from './fixtures/button-tertiary-icon-left';
10
+ import fixtureIconButton from './fixtures/icon-button';
11
+ import fixtureLinkPrimaryDisabledIconRight from './fixtures/link-primary-disabled-icon-right';
12
+ import fixtureLinkSecondaryIconRight from './fixtures/link-secondary-icon-right';
13
+ import fixtureLinkTertiaryNoIcon from './fixtures/link-tertiary-no-icon';
14
+ import fixtureLinkTextIconRightTargetBlank from './fixtures/link-text-icon-right-target-blank';
15
+ import fixtureLinkTextNoIconDownload from './fixtures/link-text-no-icon-download';
16
+ test('Atom › AtomButtonLink > should have valid propTypes', t => {
17
+ t.pass();
18
+ forEach(AtomButtonLink.propTypes, (value, key) => {
19
+ t.not(value, undefined, `PropType for "Atom.AtomButtonLink.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
20
+ });
21
+ });
22
+ test('Atom › AtomButtonLink › ButtonDangerousNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonDangerousNoIcon);
23
+ test('Atom › AtomButtonLink › ButtonPrimaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryIconLeft);
24
+ test('Atom › AtomButtonLink › ButtonPrimaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryNoIcon);
25
+ test('Atom › AtomButtonLink › ButtonSecondaryNoIconDisabled › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonSecondaryNoIconDisabled);
26
+ test('Atom › AtomButtonLink › ButtonTertiaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconLeft);
27
+ test('Atom › AtomButtonLink › IconButton › should be rendered', renderComponentMacro, AtomButtonLink, fixtureIconButton);
28
+ test('Atom › AtomButtonLink › LinkPrimaryDisabledIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkPrimaryDisabledIconRight);
29
+ test('Atom › AtomButtonLink › LinkSecondaryIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkSecondaryIconRight);
30
+ test('Atom › AtomButtonLink › LinkTertiaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTertiaryNoIcon);
31
+ test('Atom › AtomButtonLink › LinkTextIconRightTargetBlank › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextIconRightTargetBlank);
32
+ test('Atom › AtomButtonLink › LinkTextNoIconDownload › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextNoIconDownload);
33
+ //# sourceMappingURL=fixtures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/atom/button-link/test/fixtures.js"],"names":["test","forEach","renderComponentMacro","AtomButtonLink","fixtureButtonDangerousNoIcon","fixtureButtonPrimaryIconLeft","fixtureButtonPrimaryNoIcon","fixtureButtonSecondaryNoIconDisabled","fixtureButtonTertiaryIconLeft","fixtureIconButton","fixtureLinkPrimaryDisabledIconRight","fixtureLinkSecondaryIconRight","fixtureLinkTertiaryNoIcon","fixtureLinkTextIconRightTargetBlank","fixtureLinkTextNoIconDownload","t","pass","propTypes","value","key","not","undefined"],"mappings":"AAAA,OAAOA,IAAP,MAAiB,KAAjB;AACA,OAAOC,OAAP,MAAoB,gBAApB;AACA,OAAOC,oBAAP,MAAiC,wCAAjC;AACA,OAAOC,cAAP,MAA2B,IAA3B;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,4BAAP,MAAyC,qCAAzC;AACA,OAAOC,0BAAP,MAAuC,mCAAvC;AACA,OAAOC,oCAAP,MAAiD,8CAAjD;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,mCAAP,MAAgD,6CAAhD;AACA,OAAOC,6BAAP,MAA0C,sCAA1C;AACA,OAAOC,yBAAP,MAAsC,kCAAtC;AACA,OAAOC,mCAAP,MAAgD,8CAAhD;AACA,OAAOC,6BAAP,MAA0C,uCAA1C;AAEAd,IAAI,CAAC,qDAAD,EAAwDe,CAAC,IAAI;AAC/DA,EAAAA,CAAC,CAACC,IAAF;AACAf,EAAAA,OAAO,CAACE,cAAc,CAACc,SAAhB,EAA2B,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAChDJ,IAAAA,CAAC,CAACK,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,+CAA8CF,GAAI,mEAA3E;AACD,GAFM,CAAP;AAGD,CALG,CAAJ;AAOAnB,IAAI,CAAC,oEAAD,EAAuEE,oBAAvE,EAA6FC,cAA7F,EAA6GC,4BAA7G,CAAJ;AACAJ,IAAI,CAAC,oEAAD,EAAuEE,oBAAvE,EAA6FC,cAA7F,EAA6GE,4BAA7G,CAAJ;AACAL,IAAI,CAAC,kEAAD,EAAqEE,oBAArE,EAA2FC,cAA3F,EAA2GG,0BAA3G,CAAJ;AACAN,IAAI,CAAC,4EAAD,EAA+EE,oBAA/E,EAAqGC,cAArG,EAAqHI,oCAArH,CAAJ;AACAP,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GK,6BAA9G,CAAJ;AACAR,IAAI,CAAC,yDAAD,EAA4DE,oBAA5D,EAAkFC,cAAlF,EAAkGM,iBAAlG,CAAJ;AACAT,IAAI,CAAC,2EAAD,EAA8EE,oBAA9E,EAAoGC,cAApG,EAAoHO,mCAApH,CAAJ;AACAV,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GQ,6BAA9G,CAAJ;AACAX,IAAI,CAAC,iEAAD,EAAoEE,oBAApE,EAA0FC,cAA1F,EAA0GS,yBAA1G,CAAJ;AACAZ,IAAI,CAAC,2EAAD,EAA8EE,oBAA9E,EAAoGC,cAApG,EAAoHU,mCAApH,CAAJ;AACAb,IAAI,CAAC,qEAAD,EAAwEE,oBAAxE,EAA8FC,cAA9F,EAA8GW,6BAA9G,CAAJ","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport AtomButtonLink from '..';\nimport fixtureButtonDangerousNoIcon from './fixtures/button-dangerous-no-icon';\nimport fixtureButtonPrimaryIconLeft from './fixtures/button-primary-icon-left';\nimport fixtureButtonPrimaryNoIcon from './fixtures/button-primary-no-icon';\nimport fixtureButtonSecondaryNoIconDisabled from './fixtures/button-secondary-no-icon-disabled';\nimport fixtureButtonTertiaryIconLeft from './fixtures/button-tertiary-icon-left';\nimport fixtureIconButton from './fixtures/icon-button';\nimport fixtureLinkPrimaryDisabledIconRight from './fixtures/link-primary-disabled-icon-right';\nimport fixtureLinkSecondaryIconRight from './fixtures/link-secondary-icon-right';\nimport fixtureLinkTertiaryNoIcon from './fixtures/link-tertiary-no-icon';\nimport fixtureLinkTextIconRightTargetBlank from './fixtures/link-text-icon-right-target-blank';\nimport fixtureLinkTextNoIconDownload from './fixtures/link-text-no-icon-download';\n\ntest('Atom › AtomButtonLink > should have valid propTypes', t => {\n t.pass();\n forEach(AtomButtonLink.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Atom.AtomButtonLink.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Atom › AtomButtonLink › ButtonDangerousNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonDangerousNoIcon);\ntest('Atom › AtomButtonLink › ButtonPrimaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryIconLeft);\ntest('Atom › AtomButtonLink › ButtonPrimaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonPrimaryNoIcon);\ntest('Atom › AtomButtonLink › ButtonSecondaryNoIconDisabled › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonSecondaryNoIconDisabled);\ntest('Atom › AtomButtonLink › ButtonTertiaryIconLeft › should be rendered', renderComponentMacro, AtomButtonLink, fixtureButtonTertiaryIconLeft);\ntest('Atom › AtomButtonLink › IconButton › should be rendered', renderComponentMacro, AtomButtonLink, fixtureIconButton);\ntest('Atom › AtomButtonLink › LinkPrimaryDisabledIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkPrimaryDisabledIconRight);\ntest('Atom › AtomButtonLink › LinkSecondaryIconRight › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkSecondaryIconRight);\ntest('Atom › AtomButtonLink › LinkTertiaryNoIcon › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTertiaryNoIcon);\ntest('Atom › AtomButtonLink › LinkTextIconRightTargetBlank › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextIconRightTargetBlank);\ntest('Atom › AtomButtonLink › LinkTextNoIconDownload › should be rendered', renderComponentMacro, AtomButtonLink, fixtureLinkTextNoIconDownload);\n"],"file":"fixtures.js"}
@@ -0,0 +1,76 @@
1
+ import _keys from "lodash/fp/keys";
2
+ import _getOr from "lodash/fp/getOr";
3
+
4
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
5
+
6
+ import React, { useMemo } from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import classnames from 'classnames';
9
+ import { ICONS } from '../../util/button-icons';
10
+ import Link from '../link';
11
+ import style from './style.css';
12
+
13
+ const getButtonContent = icon => {
14
+ const Icon = _getOr(null, icon, ICONS);
15
+
16
+ if (!Icon) {
17
+ return /*#__PURE__*/React.createElement("div", {
18
+ className: style.buttonContent
19
+ });
20
+ }
21
+
22
+ return /*#__PURE__*/React.createElement("div", {
23
+ className: style.buttonContent
24
+ }, /*#__PURE__*/React.createElement(Icon, {
25
+ className: style.icon
26
+ }));
27
+ };
28
+
29
+ const ButtonLinkIconOnly = props => {
30
+ const {
31
+ size = 'default',
32
+ disabled,
33
+ icon,
34
+ 'data-name': dataName,
35
+ 'aria-label': ariaLabel,
36
+ link,
37
+ onClick
38
+ } = props;
39
+ const contentView = getButtonContent(icon);
40
+ const styleButton = classnames(size === 'default' ? style.default : style.small, link && style.link, disabled && style.disabled);
41
+
42
+ if (link) {
43
+ return /*#__PURE__*/React.createElement(Link, _extends({}, link, {
44
+ className: styleButton,
45
+ "data-name": dataName,
46
+ "aria-label": ariaLabel,
47
+ title: ariaLabel
48
+ }), contentView);
49
+ }
50
+
51
+ const handleOnClick = useMemo(() => () => onClick(), [onClick]);
52
+ return /*#__PURE__*/React.createElement("button", {
53
+ type: "button",
54
+ "aria-label": ariaLabel,
55
+ "data-name": dataName,
56
+ title: ariaLabel,
57
+ className: styleButton,
58
+ onClick: handleOnClick
59
+ }, contentView);
60
+ };
61
+
62
+ ButtonLinkIconOnly.propTypes = process.env.NODE_ENV !== "production" ? {
63
+ size: PropTypes.oneOf(['default', 'small']),
64
+ 'aria-label': PropTypes.string,
65
+ 'data-name': PropTypes.string,
66
+ icon: PropTypes.oneOf(_keys(ICONS)),
67
+ onClick: PropTypes.func,
68
+ link: PropTypes.shape({
69
+ href: PropTypes.string,
70
+ download: PropTypes.bool,
71
+ target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])
72
+ }),
73
+ disabled: PropTypes.bool
74
+ } : {};
75
+ export default ButtonLinkIconOnly;
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/atom/button-link-icon-only/index.js"],"names":["React","useMemo","PropTypes","classnames","ICONS","Link","style","getButtonContent","icon","Icon","buttonContent","ButtonLinkIconOnly","props","size","disabled","dataName","ariaLabel","link","onClick","contentView","styleButton","default","small","handleOnClick","propTypes","oneOf","string","func","shape","href","download","bool","target"],"mappings":";;;;;AAAA,OAAOA,KAAP,IAAeC,OAAf,QAA6B,OAA7B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,KAAR,QAAoB,yBAApB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,gBAAgB,GAAGC,IAAI,IAAI;AAC/B,QAAMC,IAAI,GAAG,OAAM,IAAN,EAAYD,IAAZ,EAAkBJ,KAAlB,CAAb;;AAEA,MAAI,CAACK,IAAL,EAAW;AACT,wBAAO;AAAK,MAAA,SAAS,EAAEH,KAAK,CAACI;AAAtB,MAAP;AACD;;AAED,sBACE;AAAK,IAAA,SAAS,EAAEJ,KAAK,CAACI;AAAtB,kBACE,oBAAC,IAAD;AAAM,IAAA,SAAS,EAAEJ,KAAK,CAACE;AAAvB,IADF,CADF;AAKD,CAZD;;AAcA,MAAMG,kBAAkB,GAAGC,KAAK,IAAI;AAClC,QAAM;AACJC,IAAAA,IAAI,GAAG,SADH;AAEJC,IAAAA,QAFI;AAGJN,IAAAA,IAHI;AAIJ,iBAAaO,QAJT;AAKJ,kBAAcC,SALV;AAMJC,IAAAA,IANI;AAOJC,IAAAA;AAPI,MAQFN,KARJ;AASA,QAAMO,WAAW,GAAGZ,gBAAgB,CAACC,IAAD,CAApC;AACA,QAAMY,WAAW,GAAGjB,UAAU,CAC5BU,IAAI,KAAK,SAAT,GAAqBP,KAAK,CAACe,OAA3B,GAAqCf,KAAK,CAACgB,KADf,EAE5BL,IAAI,IAAIX,KAAK,CAACW,IAFc,EAG5BH,QAAQ,IAAIR,KAAK,CAACQ,QAHU,CAA9B;;AAMA,MAAIG,IAAJ,EAAU;AACR,wBACE,oBAAC,IAAD,eACMA,IADN;AAEE,MAAA,SAAS,EAAEG,WAFb;AAGE,mBAAWL,QAHb;AAIE,oBAAYC,SAJd;AAKE,MAAA,KAAK,EAAEA;AALT,QAOGG,WAPH,CADF;AAWD;;AAED,QAAMI,aAAa,GAAGtB,OAAO,CAAC,MAAM,MAAMiB,OAAO,EAApB,EAAwB,CAACA,OAAD,CAAxB,CAA7B;AACA,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYF,SAFd;AAGE,iBAAWD,QAHb;AAIE,IAAA,KAAK,EAAEC,SAJT;AAKE,IAAA,SAAS,EAAEI,WALb;AAME,IAAA,OAAO,EAAEG;AANX,KAQGJ,WARH,CADF;AAYD,CA5CD;;AA8CAR,kBAAkB,CAACa,SAAnB,2CAA+B;AAC7BX,EAAAA,IAAI,EAAEX,SAAS,CAACuB,KAAV,CAAgB,CAAC,SAAD,EAAY,OAAZ,CAAhB,CADuB;AAE7B,gBAAcvB,SAAS,CAACwB,MAFK;AAG7B,eAAaxB,SAAS,CAACwB,MAHM;AAI7BlB,EAAAA,IAAI,EAAEN,SAAS,CAACuB,KAAV,CAAgB,MAAKrB,KAAL,CAAhB,CAJuB;AAK7Bc,EAAAA,OAAO,EAAEhB,SAAS,CAACyB,IALU;AAM7BV,EAAAA,IAAI,EAAEf,SAAS,CAAC0B,KAAV,CAAgB;AACpBC,IAAAA,IAAI,EAAE3B,SAAS,CAACwB,MADI;AAEpBI,IAAAA,QAAQ,EAAE5B,SAAS,CAAC6B,IAFA;AAGpBC,IAAAA,MAAM,EAAE9B,SAAS,CAACuB,KAAV,CAAgB,CAAC,OAAD,EAAU,QAAV,EAAoB,SAApB,EAA+B,MAA/B,CAAhB;AAHY,GAAhB,CANuB;AAW7BX,EAAAA,QAAQ,EAAEZ,SAAS,CAAC6B;AAXS,CAA/B;AAcA,eAAepB,kBAAf","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport {getOr, keys} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {ICONS} from '../../util/button-icons';\nimport Link from '../link';\nimport style from './style.css';\n\nconst getButtonContent = icon => {\n const Icon = getOr(null, icon, ICONS);\n\n if (!Icon) {\n return <div className={style.buttonContent} />;\n }\n\n return (\n <div className={style.buttonContent}>\n <Icon className={style.icon} />\n </div>\n );\n};\n\nconst ButtonLinkIconOnly = props => {\n const {\n size = 'default',\n disabled,\n icon,\n 'data-name': dataName,\n 'aria-label': ariaLabel,\n link,\n onClick\n } = props;\n const contentView = getButtonContent(icon);\n const styleButton = classnames(\n size === 'default' ? style.default : style.small,\n link && style.link,\n disabled && style.disabled\n );\n\n if (link) {\n return (\n <Link\n {...link}\n className={styleButton}\n data-name={dataName}\n aria-label={ariaLabel}\n title={ariaLabel}\n >\n {contentView}\n </Link>\n );\n }\n\n const handleOnClick = useMemo(() => () => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n title={ariaLabel}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n );\n};\n\nButtonLinkIconOnly.propTypes = {\n size: PropTypes.oneOf(['default', 'small']),\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n icon: PropTypes.oneOf(keys(ICONS)),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n disabled: PropTypes.bool\n};\n\nexport default ButtonLinkIconOnly;\n"],"file":"index.js"}
@@ -0,0 +1,64 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value cm_grey_100 from colors;
3
+ @value cm_grey_200 from colors;
4
+
5
+ .button {
6
+ font-family: Gilroy;
7
+ font-size: 14px;
8
+ font-weight: bold;
9
+ display: flex;
10
+ justify-content: center;
11
+ align-items: center;
12
+ cursor: pointer;
13
+ border: none;
14
+ background-color: cm_grey_100;
15
+ }
16
+
17
+ .button:hover {
18
+ background-color: cm_grey_200;
19
+ }
20
+
21
+ .disabled {
22
+ opacity: 0.3;
23
+ cursor: default;
24
+ pointer-events: none;
25
+ }
26
+
27
+ .disabled:hover {
28
+ background-color: cm_grey_100;
29
+ }
30
+
31
+ .buttonContent {
32
+ display: flex;
33
+ justify-content: center;
34
+ align-items: center;
35
+ }
36
+
37
+ .link {
38
+ color: inherit;
39
+ text-decoration: none;
40
+ }
41
+
42
+ .default {
43
+ composes: button;
44
+ width: 44px;
45
+ height: 44px;
46
+ border-radius: 7px;
47
+ }
48
+
49
+ .small {
50
+ composes: button;
51
+ width: 32px;
52
+ height: 32px;
53
+ border-radius: 5px;
54
+ }
55
+
56
+ .default .icon {
57
+ width: 14px;
58
+ height: 14px;
59
+ }
60
+
61
+ .small .icon {
62
+ width: 12px;
63
+ height: 12px;
64
+ }
@@ -0,0 +1,25 @@
1
+ import _identity from "lodash/fp/identity";
2
+ import browserEnv from 'browser-env';
3
+ import test from 'ava';
4
+ import React from 'react';
5
+ import { shallow, configure } from 'enzyme';
6
+ import Adapter from 'enzyme-adapter-react-16';
7
+ import ButtonLinkIconOnly from '..';
8
+ import defaultFixture from './fixtures/button-icon-bullet';
9
+ browserEnv();
10
+ configure({
11
+ adapter: new Adapter()
12
+ });
13
+ const translate = _identity;
14
+ test('should launch onClick on click event for ButtonLinkIconOnly', t => {
15
+ const wrapper = shallow( /*#__PURE__*/React.createElement(ButtonLinkIconOnly, defaultFixture.props), {
16
+ context: {
17
+ translate
18
+ }
19
+ });
20
+ const button = wrapper.find('[data-name="bullet-button"]');
21
+ t.true(button.exists());
22
+ button.first().simulate('click', {});
23
+ t.pass();
24
+ });
25
+ //# sourceMappingURL=button-link-icon-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/atom/button-link-icon-only/test/button-link-icon-only.js"],"names":["browserEnv","test","React","shallow","configure","Adapter","ButtonLinkIconOnly","defaultFixture","adapter","translate","t","wrapper","props","context","button","find","true","exists","first","simulate","pass"],"mappings":";AAAA,OAAOA,UAAP,MAAuB,aAAvB;AACA,OAAOC,IAAP,MAAiB,KAAjB;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,SAAQC,OAAR,EAAiBC,SAAjB,QAAiC,QAAjC;AAEA,OAAOC,OAAP,MAAoB,yBAApB;AACA,OAAOC,kBAAP,MAA+B,IAA/B;AACA,OAAOC,cAAP,MAA2B,+BAA3B;AAEAP,UAAU;AACVI,SAAS,CAAC;AAACI,EAAAA,OAAO,EAAE,IAAIH,OAAJ;AAAV,CAAD,CAAT;AACA,MAAMI,SAAS,YAAf;AAEAR,IAAI,CAAC,6DAAD,EAAgES,CAAC,IAAI;AACvE,QAAMC,OAAO,GAAGR,OAAO,eAAC,oBAAC,kBAAD,EAAwBI,cAAc,CAACK,KAAvC,CAAD,EAAmD;AACxEC,IAAAA,OAAO,EAAE;AAACJ,MAAAA;AAAD;AAD+D,GAAnD,CAAvB;AAGA,QAAMK,MAAM,GAAGH,OAAO,CAACI,IAAR,CAAa,6BAAb,CAAf;AACAL,EAAAA,CAAC,CAACM,IAAF,CAAOF,MAAM,CAACG,MAAP,EAAP;AACAH,EAAAA,MAAM,CAACI,KAAP,GAAeC,QAAf,CAAwB,OAAxB,EAAiC,EAAjC;AACAT,EAAAA,CAAC,CAACU,IAAF;AACD,CARG,CAAJ","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {shallow, configure} from 'enzyme';\nimport {identity} from 'lodash/fp';\nimport Adapter from 'enzyme-adapter-react-16';\nimport ButtonLinkIconOnly from '..';\nimport defaultFixture from './fixtures/button-icon-bullet';\n\nbrowserEnv();\nconfigure({adapter: new Adapter()});\nconst translate = identity;\n\ntest('should launch onClick on click event for ButtonLinkIconOnly', t => {\n const wrapper = shallow(<ButtonLinkIconOnly {...defaultFixture.props} />, {\n context: {translate}\n });\n const button = wrapper.find('[data-name=\"bullet-button\"]');\n t.true(button.exists());\n button.first().simulate('click', {});\n t.pass();\n});\n"],"file":"button-link-icon-only.js"}
@@ -0,0 +1,10 @@
1
+ export default {
2
+ props: {
3
+ size: 'default',
4
+ 'aria-label': 'aria button',
5
+ 'data-name': 'bullet-button',
6
+ icon: 'bullet-point',
7
+ onClick: () => console.log('click')
8
+ }
9
+ };
10
+ //# sourceMappingURL=button-icon-bullet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/button-icon-bullet.js"],"names":["props","size","icon","onClick","console","log"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,SADD;AAEL,kBAAc,aAFT;AAGL,iBAAa,eAHR;AAILC,IAAAA,IAAI,EAAE,cAJD;AAKLC,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AALV;AADM,CAAf","sourcesContent":["export default {\n props: {\n size: 'default',\n 'aria-label': 'aria button',\n 'data-name': 'bullet-button',\n icon: 'bullet-point',\n onClick: () => console.log('click')\n }\n};\n"],"file":"button-icon-bullet.js"}
@@ -1,13 +1,10 @@
1
1
  export default {
2
2
  props: {
3
- type: 'secondary',
3
+ size: 'default',
4
4
  'data-name': 'default-button',
5
5
  'aria-label': 'aria button',
6
- icon: {
7
- position: 'center',
8
- type: 'close'
9
- },
6
+ icon: 'close',
10
7
  onClick: () => console.log('click')
11
8
  }
12
9
  };
13
- //# sourceMappingURL=icon-button.js.map
10
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/default.js"],"names":["props","size","icon","onClick","console","log"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,SADD;AAEL,iBAAa,gBAFR;AAGL,kBAAc,aAHT;AAILC,IAAAA,IAAI,EAAE,OAJD;AAKLC,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AALV;AADM,CAAf","sourcesContent":["export default {\n props: {\n size: 'default',\n 'data-name': 'default-button',\n 'aria-label': 'aria button',\n icon: 'close',\n onClick: () => console.log('click')\n }\n};\n"],"file":"default.js"}
@@ -0,0 +1,7 @@
1
+ export default {
2
+ props: {
3
+ 'data-name': 'default-button',
4
+ onClick: () => console.log('click')
5
+ }
6
+ };
7
+ //# sourceMappingURL=no-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/no-icon.js"],"names":["props","onClick","console","log"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACL,iBAAa,gBADR;AAELC,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AAFV;AADM,CAAf","sourcesContent":["export default {\n props: {\n 'data-name': 'default-button',\n onClick: () => console.log('click')\n }\n};\n"],"file":"no-icon.js"}
@@ -0,0 +1,11 @@
1
+ export default {
2
+ props: {
3
+ size: 'small',
4
+ 'data-name': 'default-button',
5
+ 'aria-label': 'aria button',
6
+ icon: 'close',
7
+ disabled: true,
8
+ onClick: () => console.log('click')
9
+ }
10
+ };
11
+ //# sourceMappingURL=small-button-disabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/small-button-disabled.js"],"names":["props","size","icon","disabled","onClick","console","log"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,OADD;AAEL,iBAAa,gBAFR;AAGL,kBAAc,aAHT;AAILC,IAAAA,IAAI,EAAE,OAJD;AAKLC,IAAAA,QAAQ,EAAE,IALL;AAMLC,IAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,OAAZ;AANV;AADM,CAAf","sourcesContent":["export default {\n props: {\n size: 'small',\n 'data-name': 'default-button',\n 'aria-label': 'aria button',\n icon: 'close',\n disabled: true,\n onClick: () => console.log('click')\n }\n};\n"],"file":"small-button-disabled.js"}
@@ -0,0 +1,13 @@
1
+ export default {
2
+ props: {
3
+ size: 'small',
4
+ icon: 'see',
5
+ 'data-name': 'default-button',
6
+ 'aria-label': 'aria button',
7
+ link: {
8
+ href: 'https://setup.coorpacademy.com/assets/templates/import-users-template.xlsx',
9
+ download: true
10
+ }
11
+ }
12
+ };
13
+ //# sourceMappingURL=small-link-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-link-icon-only/test/fixtures/small-link-download.js"],"names":["props","size","icon","link","href","download"],"mappings":"AAAA,eAAe;AACbA,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAE,OADD;AAELC,IAAAA,IAAI,EAAE,KAFD;AAGL,iBAAa,gBAHR;AAIL,kBAAc,aAJT;AAKLC,IAAAA,IAAI,EAAE;AACJC,MAAAA,IAAI,EAAE,4EADF;AAEJC,MAAAA,QAAQ,EAAE;AAFN;AALD;AADM,CAAf","sourcesContent":["export default {\n props: {\n size: 'small',\n icon: 'see',\n 'data-name': 'default-button',\n 'aria-label': 'aria button',\n link: {\n href: 'https://setup.coorpacademy.com/assets/templates/import-users-template.xlsx',\n download: true\n }\n }\n};\n"],"file":"small-link-download.js"}
@@ -0,0 +1,66 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React, { useMemo, useCallback } from 'react';
4
+ import PropTypes from 'prop-types';
5
+ import map from 'lodash/fp/map';
6
+ import classnames from 'classnames';
7
+ import style from './style.css';
8
+
9
+ const Button = props => {
10
+ const {
11
+ 'data-name': dataName,
12
+ disabled,
13
+ label,
14
+ onClick,
15
+ type = 'default'
16
+ } = props;
17
+ const styleButton = classnames(style.button, type === 'default' && style.default, type === 'dangerous' && style.dangerous, disabled && style.disabled);
18
+ const handleOnClick = useCallback(() => onClick(), [onClick]);
19
+ return /*#__PURE__*/React.createElement("button", {
20
+ type: "button",
21
+ "aria-label": label,
22
+ title: label,
23
+ "data-name": dataName,
24
+ className: styleButton,
25
+ onClick: handleOnClick
26
+ }, /*#__PURE__*/React.createElement("div", {
27
+ className: style.buttonContent
28
+ }, /*#__PURE__*/React.createElement("span", {
29
+ className: style.label
30
+ }, label)));
31
+ };
32
+
33
+ Button.propTypes = process.env.NODE_ENV !== "production" ? {
34
+ 'data-name': PropTypes.string,
35
+ disabled: PropTypes.bool,
36
+ label: PropTypes.string.isRequired,
37
+ onClick: PropTypes.func.isRequired,
38
+ type: PropTypes.oneOf(['default', 'dangerous'])
39
+ } : {};
40
+
41
+ const ButtonMenu = props => {
42
+ const {
43
+ buttons,
44
+ 'data-name': dataName
45
+ } = props;
46
+
47
+ const buildButton = (button, index) => {
48
+ return /*#__PURE__*/React.createElement(Button, _extends({}, button, {
49
+ key: button.label + index
50
+ }));
51
+ };
52
+
53
+ const buttonList = useMemo(() => map.convert({
54
+ cap: false
55
+ })(buildButton, buttons), [buttons, buildButton]);
56
+ return /*#__PURE__*/React.createElement("div", {
57
+ "data-name": dataName
58
+ }, buttonList);
59
+ };
60
+
61
+ ButtonMenu.propTypes = process.env.NODE_ENV !== "production" ? {
62
+ buttons: PropTypes.arrayOf(PropTypes.shape(Button.propTypes)).isRequired,
63
+ 'data-name': PropTypes.string
64
+ } : {};
65
+ export default ButtonMenu;
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/atom/button-menu/index.js"],"names":["React","useMemo","useCallback","PropTypes","map","classnames","style","Button","props","dataName","disabled","label","onClick","type","styleButton","button","default","dangerous","handleOnClick","buttonContent","propTypes","string","bool","isRequired","func","oneOf","ButtonMenu","buttons","buildButton","index","buttonList","convert","cap","arrayOf","shape"],"mappings":";;AAAA,OAAOA,KAAP,IAAeC,OAAf,EAAwBC,WAAxB,QAA0C,OAA1C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,GAAP,MAAgB,eAAhB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,MAAM,GAAGC,KAAK,IAAI;AACtB,QAAM;AAAC,iBAAaC,QAAd;AAAwBC,IAAAA,QAAxB;AAAkCC,IAAAA,KAAlC;AAAyCC,IAAAA,OAAzC;AAAkDC,IAAAA,IAAI,GAAG;AAAzD,MAAsEL,KAA5E;AACA,QAAMM,WAAW,GAAGT,UAAU,CAC5BC,KAAK,CAACS,MADsB,EAE5BF,IAAI,KAAK,SAAT,IAAsBP,KAAK,CAACU,OAFA,EAG5BH,IAAI,KAAK,WAAT,IAAwBP,KAAK,CAACW,SAHF,EAI5BP,QAAQ,IAAIJ,KAAK,CAACI,QAJU,CAA9B;AAOA,QAAMQ,aAAa,GAAGhB,WAAW,CAAC,MAAMU,OAAO,EAAd,EAAkB,CAACA,OAAD,CAAlB,CAAjC;AACA,sBACE;AACE,IAAA,IAAI,EAAC,QADP;AAEE,kBAAYD,KAFd;AAGE,IAAA,KAAK,EAAEA,KAHT;AAIE,iBAAWF,QAJb;AAKE,IAAA,SAAS,EAAEK,WALb;AAME,IAAA,OAAO,EAAEI;AANX,kBAQE;AAAK,IAAA,SAAS,EAAEZ,KAAK,CAACa;AAAtB,kBACE;AAAM,IAAA,SAAS,EAAEb,KAAK,CAACK;AAAvB,KAA+BA,KAA/B,CADF,CARF,CADF;AAcD,CAxBD;;AA0BAJ,MAAM,CAACa,SAAP,2CAAmB;AACjB,eAAajB,SAAS,CAACkB,MADN;AAEjBX,EAAAA,QAAQ,EAAEP,SAAS,CAACmB,IAFH;AAGjBX,EAAAA,KAAK,EAAER,SAAS,CAACkB,MAAV,CAAiBE,UAHP;AAIjBX,EAAAA,OAAO,EAAET,SAAS,CAACqB,IAAV,CAAeD,UAJP;AAKjBV,EAAAA,IAAI,EAAEV,SAAS,CAACsB,KAAV,CAAgB,CAAC,SAAD,EAAY,WAAZ,CAAhB;AALW,CAAnB;;AAQA,MAAMC,UAAU,GAAGlB,KAAK,IAAI;AAC1B,QAAM;AAACmB,IAAAA,OAAD;AAAU,iBAAalB;AAAvB,MAAmCD,KAAzC;;AACA,QAAMoB,WAAW,GAAG,CAACb,MAAD,EAASc,KAAT,KAAmB;AACrC,wBAAO,oBAAC,MAAD,eAAYd,MAAZ;AAAoB,MAAA,GAAG,EAAEA,MAAM,CAACJ,KAAP,GAAekB;AAAxC,OAAP;AACD,GAFD;;AAGA,QAAMC,UAAU,GAAG7B,OAAO,CAAC,MAAMG,GAAG,CAAC2B,OAAJ,CAAY;AAACC,IAAAA,GAAG,EAAE;AAAN,GAAZ,EAA0BJ,WAA1B,EAAuCD,OAAvC,CAAP,EAAwD,CAChFA,OADgF,EAEhFC,WAFgF,CAAxD,CAA1B;AAIA,sBAAO;AAAK,iBAAWnB;AAAhB,KAA2BqB,UAA3B,CAAP;AACD,CAVD;;AAYAJ,UAAU,CAACN,SAAX,2CAAuB;AACrBO,EAAAA,OAAO,EAAExB,SAAS,CAAC8B,OAAV,CAAkB9B,SAAS,CAAC+B,KAAV,CAAgB3B,MAAM,CAACa,SAAvB,CAAlB,EAAqDG,UADzC;AAErB,eAAapB,SAAS,CAACkB;AAFF,CAAvB;AAKA,eAAeK,UAAf","sourcesContent":["import React, {useMemo, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport map from 'lodash/fp/map';\nimport classnames from 'classnames';\nimport style from './style.css';\n\nconst Button = props => {\n const {'data-name': dataName, disabled, label, onClick, type = 'default'} = props;\n const styleButton = classnames(\n style.button,\n type === 'default' && style.default,\n type === 'dangerous' && style.dangerous,\n disabled && style.disabled\n );\n\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n return (\n <button\n type=\"button\"\n aria-label={label}\n title={label}\n data-name={dataName}\n className={styleButton}\n onClick={handleOnClick}\n >\n <div className={style.buttonContent}>\n <span className={style.label}>{label}</span>\n </div>\n </button>\n );\n};\n\nButton.propTypes = {\n 'data-name': PropTypes.string,\n disabled: PropTypes.bool,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n type: PropTypes.oneOf(['default', 'dangerous'])\n};\n\nconst ButtonMenu = props => {\n const {buttons, 'data-name': dataName} = props;\n const buildButton = (button, index) => {\n return <Button {...button} key={button.label + index} />;\n };\n const buttonList = useMemo(() => map.convert({cap: false})(buildButton, buttons), [\n buttons,\n buildButton\n ]);\n return <div data-name={dataName}>{buttonList}</div>;\n};\n\nButtonMenu.propTypes = {\n buttons: PropTypes.arrayOf(PropTypes.shape(Button.propTypes)).isRequired,\n 'data-name': PropTypes.string\n};\n\nexport default ButtonMenu;\n"],"file":"index.js"}
@@ -0,0 +1,51 @@
1
+ @value colors: "../../variables/colors.css";
2
+ @value cm_grey_100 from colors;
3
+ @value cm_grey_200 from colors;
4
+ @value cm_grey_900 from colors;
5
+ @value cm_negative_100 from colors;
6
+
7
+ .button {
8
+ width: 100%;
9
+ height: 40px;
10
+ font-family: Gilroy;
11
+ font-size: 14px;
12
+ display: flex;
13
+ justify-content: center;
14
+ align-items: center;
15
+ cursor: pointer;
16
+ border: none;
17
+ pointer-events: auto;
18
+ /* prevents text selection when dragging
19
+ the mouse over the button */
20
+ user-select: none;
21
+ }
22
+
23
+ .disabled {
24
+ opacity: 0.1;
25
+ pointer-events: none;
26
+ }
27
+
28
+ .buttonContent {
29
+ display: flex;
30
+ justify-content: center;
31
+ align-items: center;
32
+ }
33
+
34
+ .label {
35
+ margin: 0 8px 0 8px;
36
+ display: block;
37
+ }
38
+
39
+ .default {
40
+ background-color: cm_grey_100;
41
+ color: cm_grey_900;
42
+ }
43
+
44
+ .default:hover {
45
+ background-color: cm_grey_200;
46
+ }
47
+
48
+ .dangerous {
49
+ composes: default;
50
+ color: cm_negative_100;
51
+ }
@@ -0,0 +1,20 @@
1
+ export const actionButtonProps = {
2
+ 'data-name': 'menu-publish-button',
3
+ label: 'Publish',
4
+ onClick: () => console.log('Publish'),
5
+ type: 'default'
6
+ };
7
+ export const deleteButtonProps = {
8
+ 'data-name': 'menu-delete-button',
9
+ label: 'Delete',
10
+ onClick: () => console.log('Delete'),
11
+ type: 'dangerous'
12
+ };
13
+ export default {
14
+ props: {
15
+ buttons: [actionButtonProps, deleteButtonProps],
16
+ 'aria-label': 'aria button',
17
+ 'data-name': 'default-menu'
18
+ }
19
+ };
20
+ //# sourceMappingURL=default.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-menu/test/fixtures/default.js"],"names":["actionButtonProps","label","onClick","console","log","type","deleteButtonProps","props","buttons"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG;AAC/B,eAAa,qBADkB;AAE/BC,EAAAA,KAAK,EAAE,SAFwB;AAG/BC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,SAAZ,CAHgB;AAI/BC,EAAAA,IAAI,EAAE;AAJyB,CAA1B;AAOP,OAAO,MAAMC,iBAAiB,GAAG;AAC/B,eAAa,oBADkB;AAE/BL,EAAAA,KAAK,EAAE,QAFwB;AAG/BC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,QAAZ,CAHgB;AAI/BC,EAAAA,IAAI,EAAE;AAJyB,CAA1B;AAOP,eAAe;AACbE,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CAACR,iBAAD,EAAoBM,iBAApB,CADJ;AAEL,kBAAc,aAFT;AAGL,iBAAa;AAHR;AADM,CAAf","sourcesContent":["export const actionButtonProps = {\n 'data-name': 'menu-publish-button',\n label: 'Publish',\n onClick: () => console.log('Publish'),\n type: 'default'\n};\n\nexport const deleteButtonProps = {\n 'data-name': 'menu-delete-button',\n label: 'Delete',\n onClick: () => console.log('Delete'),\n type: 'dangerous'\n};\n\nexport default {\n props: {\n buttons: [actionButtonProps, deleteButtonProps],\n 'aria-label': 'aria button',\n 'data-name': 'default-menu'\n }\n};\n"],"file":"default.js"}
@@ -0,0 +1,15 @@
1
+ import { actionButtonProps, deleteButtonProps } from './default';
2
+ export const disabledButtonProps = {
3
+ 'data-name': 'menu-disabled-button',
4
+ label: 'Disabled',
5
+ onClick: () => console.log('Disabled'),
6
+ disabled: true
7
+ };
8
+ export default {
9
+ props: {
10
+ buttons: [actionButtonProps, disabledButtonProps, deleteButtonProps],
11
+ 'aria-label': 'aria button 2',
12
+ 'data-name': 'default-menu-2'
13
+ }
14
+ };
15
+ //# sourceMappingURL=multiple-buttons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/atom/button-menu/test/fixtures/multiple-buttons.js"],"names":["actionButtonProps","deleteButtonProps","disabledButtonProps","label","onClick","console","log","disabled","props","buttons"],"mappings":"AAAA,SAAQA,iBAAR,EAA2BC,iBAA3B,QAAmD,WAAnD;AAEA,OAAO,MAAMC,mBAAmB,GAAG;AACjC,eAAa,sBADoB;AAEjCC,EAAAA,KAAK,EAAE,UAF0B;AAGjCC,EAAAA,OAAO,EAAE,MAAMC,OAAO,CAACC,GAAR,CAAY,UAAZ,CAHkB;AAIjCC,EAAAA,QAAQ,EAAE;AAJuB,CAA5B;AAOP,eAAe;AACbC,EAAAA,KAAK,EAAE;AACLC,IAAAA,OAAO,EAAE,CAACT,iBAAD,EAAoBE,mBAApB,EAAyCD,iBAAzC,CADJ;AAEL,kBAAc,eAFT;AAGL,iBAAa;AAHR;AADM,CAAf","sourcesContent":["import {actionButtonProps, deleteButtonProps} from './default';\n\nexport const disabledButtonProps = {\n 'data-name': 'menu-disabled-button',\n label: 'Disabled',\n onClick: () => console.log('Disabled'),\n disabled: true\n};\n\nexport default {\n props: {\n buttons: [actionButtonProps, disabledButtonProps, deleteButtonProps],\n 'aria-label': 'aria button 2',\n 'data-name': 'default-menu-2'\n }\n};\n"],"file":"multiple-buttons.js"}