@mycause/ui 0.0.0-cb5efc7a → 0.0.0-cb8edf5f

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 (439) hide show
  1. package/README.md +26 -0
  2. package/dist/components/anchor/anchor.d.ts +1 -1
  3. package/dist/components/anchor/anchor.stories.d.ts +2 -2
  4. package/dist/components/anchor/bold-anchor.d.ts +1 -1
  5. package/dist/components/anchor/bold-anchor.stories.d.ts +2 -2
  6. package/dist/components/avatar/avatar.d.ts +3 -3
  7. package/dist/components/avatar/avatar.stories.d.ts +3 -3
  8. package/dist/components/avatar/image-avatar.d.ts +1 -1
  9. package/dist/components/avatar/text-avatar.d.ts +1 -1
  10. package/dist/components/button/button.d.ts +2 -2
  11. package/dist/components/button/button.stories.d.ts +10 -10
  12. package/dist/components/button-select/button-select-exhanced.d.ts +23 -0
  13. package/dist/components/button-select/button-select.d.ts +12 -0
  14. package/dist/components/button-select/button-select.stories.d.ts +19 -0
  15. package/dist/components/button-select/index.d.ts +2 -0
  16. package/dist/components/campaign-card/campaign-card.d.ts +9 -0
  17. package/dist/components/campaign-card/campaign-card.stories.d.ts +14 -0
  18. package/dist/components/campaign-card/index.d.ts +1 -0
  19. package/dist/components/campaign-of-month/campaign-of-month.d.ts +15 -0
  20. package/dist/components/campaign-of-month/campaign-of-month.stories.d.ts +14 -0
  21. package/dist/components/campaign-of-month/index.d.ts +1 -0
  22. package/dist/components/charity-card/charity-card.d.ts +7 -0
  23. package/dist/components/charity-card/charity-card.stories.d.ts +14 -0
  24. package/dist/components/charity-card/index.d.ts +1 -0
  25. package/dist/components/charity-tags-filter-button/FilterIcon.d.ts +6 -0
  26. package/dist/components/charity-tags-filter-button/charity-tags-filter-button.d.ts +36 -0
  27. package/dist/components/charity-tags-filter-button/charity-tags-filter-button.stories.d.ts +12 -0
  28. package/dist/components/charity-tags-filter-button/index.d.ts +1 -0
  29. package/dist/components/checkbox/checkbox.d.ts +1 -1
  30. package/dist/components/checkbox/checkbox.stories.d.ts +4 -4
  31. package/dist/components/chips/chip.d.ts +2 -2
  32. package/dist/components/chips/chips.d.ts +2 -2
  33. package/dist/components/chips/chips.stories.d.ts +4 -4
  34. package/dist/components/chips/input-chips.d.ts +1 -1
  35. package/dist/components/chips/input-chips.stories.d.ts +2 -2
  36. package/dist/components/collapse/collapse.d.ts +21 -0
  37. package/dist/components/collapse/collapse.stories.d.ts +19 -0
  38. package/dist/components/collapse/icons.d.ts +4 -0
  39. package/dist/components/collapse/index.d.ts +1 -0
  40. package/dist/components/combo-field/combo-field-expander.d.ts +1 -1
  41. package/dist/components/combo-field/combo-field.d.ts +4 -1
  42. package/dist/components/combo-field/combo-field.stories.d.ts +3 -3
  43. package/dist/components/comment-section/comment-section-v2/comment-section-v2.d.ts +31 -0
  44. package/dist/components/comment-section/comment-section-v2/sub-comments-v2.d.ts +11 -0
  45. package/dist/components/comment-section/comment-section.d.ts +15 -0
  46. package/dist/components/comment-section/comment-section.stories.d.ts +19 -0
  47. package/dist/components/comment-section/comment-type.d.ts +10 -0
  48. package/dist/components/comment-section/index.d.ts +2 -0
  49. package/dist/components/comment-section/sub-comments.d.ts +6 -0
  50. package/dist/components/cropper/cropper.d.ts +4 -4
  51. package/dist/components/cropper/cropper.stories.d.ts +3 -4
  52. package/dist/components/date-picker/date-picker.d.ts +1 -1
  53. package/dist/components/date-picker/date-picker.stories.d.ts +11 -5
  54. package/dist/components/date-picker/index.d.ts +1 -0
  55. package/dist/components/date-picker/single-date-picker-custom-header.d.ts +32 -0
  56. package/dist/components/date-picker/single-date-picker.d.ts +5 -3
  57. package/dist/components/donate-card/donate-card.d.ts +8 -0
  58. package/dist/components/donate-card/donate-card.stories.d.ts +14 -0
  59. package/dist/components/donate-card/index.d.ts +1 -0
  60. package/dist/components/donation-form/donation-details.d.ts +12 -0
  61. package/dist/components/donation-form/donation-form-v2/donation-form-v2.d.ts +13 -0
  62. package/dist/components/donation-form/donation-form.d.ts +64 -0
  63. package/dist/components/donation-form/donation-form.stories.d.ts +18 -0
  64. package/dist/components/donation-form/donation-payment.d.ts +13 -0
  65. package/dist/components/donation-form/donation-select.d.ts +13 -0
  66. package/dist/components/donation-form/index.d.ts +2 -0
  67. package/dist/components/{index.js → donation.d.ts} +3 -12
  68. package/dist/components/elevation/elevation.d.ts +2 -1
  69. package/dist/components/elevation/elevation.stories.d.ts +2 -2
  70. package/dist/components/favorite-charity-item/favorite-charity-item.d.ts +15 -0
  71. package/dist/components/favorite-charity-item/favorite-charity-item.stories.d.ts +15 -0
  72. package/dist/components/favorite-charity-item/index.d.ts +1 -0
  73. package/dist/components/featured-campaign-card/featured-campaign-card.d.ts +17 -0
  74. package/dist/components/featured-campaign-card/featured-campaign-card.stories.d.ts +14 -0
  75. package/dist/components/featured-campaign-card/index.d.ts +1 -0
  76. package/dist/components/field-helpers/field-helper-text.d.ts +2 -2
  77. package/dist/components/field-helpers/field-label.d.ts +2 -1
  78. package/dist/components/footerV2/footerV2.d.ts +35 -0
  79. package/dist/components/{phone-number-input/phone-number-field.stories.d.ts → footerV2/footerV2.stories.d.ts} +5 -3
  80. package/dist/components/footerV2/index.d.ts +1 -0
  81. package/dist/components/fundraising-section/fundraising-section.d.ts +9 -0
  82. package/dist/components/fundraising-section/fundraising-section.stories.d.ts +14 -0
  83. package/dist/components/fundraising-section/index.d.ts +1 -0
  84. package/dist/components/hero-banner/hero-banner.d.ts +9 -0
  85. package/dist/components/hero-banner/hero-banner.stories.d.ts +14 -0
  86. package/dist/components/hero-banner/index.d.ts +1 -0
  87. package/dist/components/horizontalbar/horizontalbar.d.ts +11 -0
  88. package/dist/components/horizontalbar/horizontalbar.stories.d.ts +26 -0
  89. package/dist/components/horizontalbar/index.d.ts +1 -0
  90. package/dist/components/icon/btn_google_light_normal_ios.svg.d.ts +1 -1
  91. package/dist/components/icon/facebook_6.svg.d.ts +1 -1
  92. package/dist/components/icon/heart-toggle.d.ts +11 -0
  93. package/dist/components/icon/{toggle-button.stories.d.ts → heart-toggle.stories.d.ts} +3 -3
  94. package/dist/components/icon/icon-button-group.d.ts +1 -1
  95. package/dist/components/icon/icon-button-group.stories.d.ts +2 -2
  96. package/dist/components/icon/icon-button.d.ts +1 -1
  97. package/dist/components/icon/icon-button.stories.d.ts +3 -3
  98. package/dist/components/icon/icon.d.ts +1 -1
  99. package/dist/components/icon/icon.stories.d.ts +4 -4
  100. package/dist/components/icon/index.d.ts +1 -1
  101. package/dist/components/icon/material-icon.d.ts +2 -2
  102. package/dist/components/index.d.ts +37 -0
  103. package/dist/components/info-represent-campaign/index.d.ts +1 -0
  104. package/dist/components/info-represent-campaign/info-represent-campaign.d.ts +11 -0
  105. package/dist/components/info-represent-campaign/info-represent-campaign.stories.d.ts +12 -0
  106. package/dist/components/input/InputDefault.d.ts +13 -0
  107. package/dist/components/input/index.d.ts +1 -0
  108. package/dist/components/input/input.stories.d.ts +24 -0
  109. package/dist/components/input-social/Icons.d.ts +8 -0
  110. package/dist/components/input-social/InputSocial.d.ts +12 -0
  111. package/dist/components/input-social/index.d.ts +1 -0
  112. package/dist/components/{phone-number-field/phone-number-field.stories.d.ts → input-social/input-social.stories.d.ts} +3 -3
  113. package/dist/components/layout/box.d.ts +232 -224
  114. package/dist/components/layout/flex.d.ts +4 -4
  115. package/dist/components/layout/flex.stories.d.ts +2 -2
  116. package/dist/components/layout/grid.d.ts +2 -2
  117. package/dist/components/layout/grid.stories.d.ts +2 -2
  118. package/dist/components/layout/stack.d.ts +2 -2
  119. package/dist/components/layout/stack.stories.d.ts +4 -4
  120. package/dist/components/list/list.d.ts +30 -15
  121. package/dist/components/list/list.stories.d.ts +14 -8
  122. package/dist/components/login/index.d.ts +1 -0
  123. package/dist/components/login/login.d.ts +18 -0
  124. package/dist/components/login/login.stories.d.ts +19 -0
  125. package/dist/components/logo/logo-type.d.ts +4 -3
  126. package/dist/components/menu/menu-list-item.d.ts +2 -2
  127. package/dist/components/menu/menu-list.d.ts +2 -2
  128. package/dist/components/menu/menu.stories.d.ts +2 -2
  129. package/dist/components/modal/index.d.ts +1 -0
  130. package/dist/components/modal/modal-image.d.ts +8 -0
  131. package/dist/components/modal/modal.d.ts +7 -3
  132. package/dist/components/modal/modal.stories.d.ts +22 -4
  133. package/dist/components/my-account-choose-charity-card/index.d.ts +1 -0
  134. package/dist/components/my-account-choose-charity-card/my-account-choose-charity-card.d.ts +11 -0
  135. package/dist/components/my-account-choose-charity-card/my-account-choose-charity-card.stories.d.ts +14 -0
  136. package/dist/components/my-account-frp-closed/Icon.d.ts +5 -0
  137. package/dist/components/my-account-frp-closed/frp-closed-img.d.ts +8 -0
  138. package/dist/components/my-account-frp-closed/frp-information.d.ts +16 -0
  139. package/dist/components/my-account-frp-closed/index.d.ts +1 -0
  140. package/dist/components/my-account-frp-closed/my-account-frp-closed.d.ts +20 -0
  141. package/dist/components/my-account-frp-closed/my-account-frp-closed.stories.d.ts +24 -0
  142. package/dist/components/my-account-frp-preview/Icon.d.ts +5 -0
  143. package/dist/components/my-account-frp-preview/frp-information.d.ts +13 -0
  144. package/dist/components/my-account-frp-preview/frp-preview-img.d.ts +9 -0
  145. package/dist/components/my-account-frp-preview/index.d.ts +1 -0
  146. package/dist/components/my-account-frp-preview/my-account-frp-preview.d.ts +17 -0
  147. package/dist/components/my-account-frp-preview/my-account-frp-preview.stories.d.ts +24 -0
  148. package/dist/components/my-account-sidebar/Icon.d.ts +15 -0
  149. package/dist/components/my-account-sidebar/index.d.ts +1 -0
  150. package/dist/components/my-account-sidebar/my-account-sidebar.d.ts +19 -0
  151. package/dist/components/my-account-sidebar/my-account-sidebar.stories.d.ts +12 -0
  152. package/dist/components/my-account-start-fundraise-card/index.d.ts +1 -0
  153. package/dist/components/my-account-start-fundraise-card/my-account-start-fundraise-card.d.ts +13 -0
  154. package/dist/components/my-account-start-fundraise-card/my-account-start-fundraise-card.stories.d.ts +20 -0
  155. package/dist/components/my-account-stats-donated/index.d.ts +1 -0
  156. package/dist/components/my-account-stats-donated/my-account-stats-donated.d.ts +8 -0
  157. package/dist/components/my-account-stats-donated/my-account-stats-donated.stories.d.ts +12 -0
  158. package/dist/components/my-account-stats-raised/index.d.ts +1 -0
  159. package/dist/components/my-account-stats-raised/my-account-stats-raised.d.ts +7 -0
  160. package/dist/components/my-account-stats-raised/my-account-stats-raised.stories.d.ts +12 -0
  161. package/dist/components/nav/charity.d.ts +3 -0
  162. package/dist/components/nav/icons/IconBigger.d.ts +5 -0
  163. package/dist/components/nav/icons/IconSmaller.d.ts +5 -0
  164. package/dist/components/nav/index.d.ts +2 -0
  165. package/dist/components/nav/nav-actions.d.ts +5 -0
  166. package/dist/components/nav/nav-bar.d.ts +7 -0
  167. package/dist/components/nav/nav-call-to-action.d.ts +5 -0
  168. package/dist/components/nav/nav-charity.d.ts +7 -0
  169. package/dist/components/nav/nav-expanded-charity-new.d.ts +12 -0
  170. package/dist/components/nav/nav-expanded-charity.d.ts +14 -0
  171. package/dist/components/nav/nav-expanded.d.ts +14 -0
  172. package/dist/components/nav/nav-list.d.ts +29 -0
  173. package/dist/components/nav/nav-menu-control.d.ts +8 -0
  174. package/dist/components/nav/nav-menu.d.ts +12 -0
  175. package/dist/components/nav/nav-myaccount.d.ts +23 -0
  176. package/dist/components/nav/nav-search-control.d.ts +8 -0
  177. package/dist/components/nav/nav-search.d.ts +10 -0
  178. package/dist/components/nav/nav-sign-in-control.d.ts +12 -0
  179. package/dist/components/nav/nav-user-menu-items.d.ts +20 -0
  180. package/dist/components/nav/nav-user-menu.d.ts +18 -0
  181. package/dist/components/nav/nav.d.ts +62 -0
  182. package/dist/components/nav/nav.stories.d.ts +17 -0
  183. package/dist/components/navigation/navigation-actions.d.ts +1 -1
  184. package/dist/components/navigation/navigation-bar.d.ts +2 -2
  185. package/dist/components/navigation/navigation-call-to-action.d.ts +3 -3
  186. package/dist/components/navigation/navigation-expanded.d.ts +2 -2
  187. package/dist/components/navigation/navigation-list.d.ts +9 -7
  188. package/dist/components/navigation/navigation-menu-control.d.ts +1 -1
  189. package/dist/components/navigation/navigation-menu.d.ts +4 -3
  190. package/dist/components/navigation/navigation-search-control.d.ts +2 -2
  191. package/dist/components/navigation/navigation-search.d.ts +2 -2
  192. package/dist/components/navigation/navigation-sign-in-control.d.ts +6 -3
  193. package/dist/components/navigation/navigation-user-menu-items.d.ts +6 -6
  194. package/dist/components/navigation/navigation-user-menu.d.ts +4 -4
  195. package/dist/components/navigation/navigation.d.ts +17 -6
  196. package/dist/components/navigation/navigation.stories.d.ts +7 -25
  197. package/dist/components/partner-chart-stats/index.d.ts +1 -0
  198. package/dist/components/partner-chart-stats/partner-chart-stats.d.ts +11 -0
  199. package/dist/components/partner-chart-stats/partner-chart-stats.stories.d.ts +18 -0
  200. package/dist/components/partner-monthly-donations/index.d.ts +1 -0
  201. package/dist/components/partner-monthly-donations/partner-monthly-donations.d.ts +8 -0
  202. package/dist/components/partner-monthly-donations/partner-monthly-donations.stories.d.ts +12 -0
  203. package/dist/components/partner-monthly-stats/index.d.ts +1 -0
  204. package/dist/components/partner-monthly-stats/partner-monthly-stats.d.ts +7 -0
  205. package/dist/components/partner-monthly-stats/partner-monthly-stats.stories.d.ts +12 -0
  206. package/dist/components/partner-toggle-button/index.d.ts +2 -0
  207. package/dist/components/partner-toggle-button/partner-toggle-button-block.d.ts +11 -0
  208. package/dist/components/partner-toggle-button/partner-toggle-button-block.stories.d.ts +12 -0
  209. package/dist/components/partner-toggle-button/partner-toggle-button.d.ts +8 -0
  210. package/dist/components/phone-number-input/index.d.ts +2 -1
  211. package/dist/components/{phone-number-field/phone-number-field.d.ts → phone-number-input/phone-number-input-v1.d.ts} +8 -4
  212. package/dist/components/phone-number-input/phone-number-input-v2.d.ts +19 -0
  213. package/dist/components/phone-number-input/phone-number-input.d.ts +22 -11
  214. package/dist/components/phone-number-input/phone-number-input.stories.d.ts +43 -0
  215. package/dist/components/popup/index.d.ts +1 -0
  216. package/dist/components/popup/popup.d.ts +8 -0
  217. package/dist/components/popup/popup.stories.d.ts +14 -0
  218. package/dist/components/progressbar/index.d.ts +1 -0
  219. package/dist/components/progressbar/progress-bar-circle.d.ts +10 -0
  220. package/dist/components/progressbar/progressbar.d.ts +8 -0
  221. package/dist/components/progressbar/progressbar.stories.d.ts +20 -0
  222. package/dist/components/radio/radio-group.d.ts +1 -1
  223. package/dist/components/radio/radio-group.stories.d.ts +2 -2
  224. package/dist/components/radio/radio.d.ts +1 -1
  225. package/dist/components/radio/radio.stories.d.ts +4 -4
  226. package/dist/components/select/index.d.ts +2 -0
  227. package/dist/components/select/select-enhanced.d.ts +24 -0
  228. package/dist/components/select/select-helper-text.d.ts +1 -1
  229. package/dist/components/select/select-v2.d.ts +27 -0
  230. package/dist/components/select/select.d.ts +6 -3
  231. package/dist/components/select/select.stories.d.ts +14 -2
  232. package/dist/components/spinner/index.d.ts +1 -0
  233. package/dist/components/spinner/spinner.d.ts +9 -0
  234. package/dist/components/spinner/spinner.stories.d.ts +19 -0
  235. package/dist/components/statistics/statistics.d.ts +2 -1
  236. package/dist/components/statistics/statistics.stories.d.ts +2 -2
  237. package/dist/components/switch/index.d.ts +1 -0
  238. package/dist/components/switch/switch-v2.d.ts +8 -0
  239. package/dist/components/switch/switch.d.ts +1 -1
  240. package/dist/components/switch/switch.stories.d.ts +10 -4
  241. package/dist/components/table/index.d.ts +1 -0
  242. package/dist/components/table/partner-monthly-table.d.ts +19 -0
  243. package/dist/components/table/partner-monthly-table.stories.d.ts +18 -0
  244. package/dist/components/tabs/nav-tabs.d.ts +18 -0
  245. package/dist/components/tabs/tab-text-label.d.ts +1 -1
  246. package/dist/components/tabs/tabs.d.ts +4 -2
  247. package/dist/components/tabs/tabs.stories.d.ts +2 -2
  248. package/dist/components/text/text.d.ts +4 -5
  249. package/dist/components/text/text.stories.d.ts +7 -7
  250. package/dist/components/text-field/index.d.ts +1 -0
  251. package/dist/components/text-field/text-field-helper-text.d.ts +1 -1
  252. package/dist/components/text-field/text-field-search.d.ts +10 -0
  253. package/dist/components/text-field/text-field.d.ts +2 -0
  254. package/dist/components/text-field/text-field.stories.d.ts +8 -2
  255. package/dist/components/this-month-card/index.d.ts +1 -0
  256. package/dist/components/this-month-card/this-month-card.d.ts +15 -0
  257. package/dist/components/this-month-card/this-month-card.stories.d.ts +12 -0
  258. package/dist/components/toast/Icons.d.ts +7 -0
  259. package/dist/components/toast/index.d.ts +1 -0
  260. package/dist/components/toast/toast.d.ts +8 -0
  261. package/dist/components/toast/toast.stories.d.ts +12 -0
  262. package/dist/components/transaction-card/Dot.d.ts +6 -0
  263. package/dist/components/transaction-card/index.d.ts +1 -0
  264. package/dist/components/transaction-card/transaction-card.d.ts +16 -0
  265. package/dist/components/transaction-card/transaction-card.stories.d.ts +20 -0
  266. package/dist/components/uploader/uploader.d.ts +1 -1
  267. package/dist/donation.css +2 -0
  268. package/dist/donation.css.map +1 -0
  269. package/dist/donation.d.ts +3 -0
  270. package/dist/donation.esm.css +2 -0
  271. package/dist/donation.esm.css.map +1 -0
  272. package/dist/donation.esm.js +25306 -0
  273. package/dist/donation.js +25361 -0
  274. package/dist/index.css +2 -0
  275. package/dist/index.css.map +1 -0
  276. package/dist/index.esm.css +2 -0
  277. package/dist/index.esm.css.map +1 -0
  278. package/dist/index.esm.js +28997 -7215
  279. package/dist/index.js +29030 -7199
  280. package/dist/theme/theme.d.ts +9 -5
  281. package/dist/utils/center-decorator.d.ts +1 -1
  282. package/dist/utils/component-matrix.d.ts +1 -1
  283. package/dist/utils/grid-decorator.d.ts +1 -1
  284. package/dist/utils/parse-numbers.d.ts +2 -0
  285. package/package.json +34 -20
  286. package/styles/index.css +5 -6883
  287. package/styles/index.css.map +1 -0
  288. package/styles/reset.css +2 -315
  289. package/styles/reset.css.map +1 -0
  290. package/CHANGELOG.md +0 -340
  291. package/dist/components/anchor/anchor.jsx +0 -35
  292. package/dist/components/anchor/anchor.stories.jsx +0 -12
  293. package/dist/components/anchor/bold-anchor.jsx +0 -33
  294. package/dist/components/anchor/bold-anchor.stories.jsx +0 -11
  295. package/dist/components/anchor/index.js +0 -2
  296. package/dist/components/avatar/avatar.jsx +0 -14
  297. package/dist/components/avatar/avatar.stories.jsx +0 -17
  298. package/dist/components/avatar/image-avatar.jsx +0 -29
  299. package/dist/components/avatar/index.js +0 -1
  300. package/dist/components/avatar/text-avatar.jsx +0 -47
  301. package/dist/components/button/button.jsx +0 -85
  302. package/dist/components/button/button.stories.jsx +0 -118
  303. package/dist/components/button/index.js +0 -1
  304. package/dist/components/checkbox/checkbox.jsx +0 -39
  305. package/dist/components/checkbox/checkbox.stories.jsx +0 -42
  306. package/dist/components/checkbox/index.js +0 -1
  307. package/dist/components/chips/chip.jsx +0 -30
  308. package/dist/components/chips/chips.jsx +0 -16
  309. package/dist/components/chips/chips.stories.jsx +0 -35
  310. package/dist/components/chips/index.js +0 -3
  311. package/dist/components/chips/input-chips.jsx +0 -16
  312. package/dist/components/chips/input-chips.stories.jsx +0 -39
  313. package/dist/components/combo-field/combo-field-expander.jsx +0 -23
  314. package/dist/components/combo-field/combo-field.jsx +0 -93
  315. package/dist/components/combo-field/combo-field.stories.jsx +0 -62
  316. package/dist/components/combo-field/index.js +0 -2
  317. package/dist/components/cropper/cropper.jsx +0 -15
  318. package/dist/components/cropper/cropper.stories.jsx +0 -18
  319. package/dist/components/cropper/index.js +0 -1
  320. package/dist/components/date-picker/date-picker.jsx +0 -74
  321. package/dist/components/date-picker/date-picker.stories.jsx +0 -46
  322. package/dist/components/date-picker/index.js +0 -2
  323. package/dist/components/date-picker/single-date-picker.jsx +0 -81
  324. package/dist/components/elevation/elevation.jsx +0 -19
  325. package/dist/components/elevation/elevation.stories.jsx +0 -31
  326. package/dist/components/elevation/index.js +0 -1
  327. package/dist/components/field-helpers/field-helper-text.jsx +0 -42
  328. package/dist/components/field-helpers/field-label.jsx +0 -29
  329. package/dist/components/field-helpers/index.js +0 -2
  330. package/dist/components/icon/btn_google_light_normal_ios.svg.jsx +0 -21
  331. package/dist/components/icon/facebook_6.svg.jsx +0 -13
  332. package/dist/components/icon/icon-button-group.jsx +0 -51
  333. package/dist/components/icon/icon-button-group.stories.jsx +0 -26
  334. package/dist/components/icon/icon-button.jsx +0 -48
  335. package/dist/components/icon/icon-button.stories.jsx +0 -33
  336. package/dist/components/icon/icon.jsx +0 -49
  337. package/dist/components/icon/icon.stories.jsx +0 -78
  338. package/dist/components/icon/index.js +0 -4
  339. package/dist/components/icon/material-icon.jsx +0 -18
  340. package/dist/components/icon/toggle-button.d.ts +0 -11
  341. package/dist/components/icon/toggle-button.jsx +0 -29
  342. package/dist/components/icon/toggle-button.stories.jsx +0 -16
  343. package/dist/components/layout/box.jsx +0 -58
  344. package/dist/components/layout/flex.jsx +0 -55
  345. package/dist/components/layout/flex.stories.jsx +0 -44
  346. package/dist/components/layout/grid.jsx +0 -19
  347. package/dist/components/layout/grid.stories.jsx +0 -29
  348. package/dist/components/layout/index.js +0 -4
  349. package/dist/components/layout/stack.jsx +0 -33
  350. package/dist/components/layout/stack.stories.jsx +0 -40
  351. package/dist/components/list/index.js +0 -1
  352. package/dist/components/list/list.jsx +0 -52
  353. package/dist/components/list/list.stories.jsx +0 -135
  354. package/dist/components/logo/index.js +0 -1
  355. package/dist/components/logo/logo-type.jsx +0 -65
  356. package/dist/components/menu/index.js +0 -8
  357. package/dist/components/menu/menu-list-divider.jsx +0 -2
  358. package/dist/components/menu/menu-list-item-graphic.jsx +0 -2
  359. package/dist/components/menu/menu-list-item-meta.jsx +0 -2
  360. package/dist/components/menu/menu-list-item-text.jsx +0 -2
  361. package/dist/components/menu/menu-list-item.jsx +0 -11
  362. package/dist/components/menu/menu-list.jsx +0 -18
  363. package/dist/components/menu/menu-surface.jsx +0 -4
  364. package/dist/components/menu/menu.jsx +0 -2
  365. package/dist/components/menu/menu.stories.jsx +0 -42
  366. package/dist/components/modal/index.js +0 -1
  367. package/dist/components/modal/modal.jsx +0 -49
  368. package/dist/components/modal/modal.stories.jsx +0 -47
  369. package/dist/components/navigation/index.js +0 -1
  370. package/dist/components/navigation/navigation-actions.jsx +0 -8
  371. package/dist/components/navigation/navigation-bar.jsx +0 -42
  372. package/dist/components/navigation/navigation-call-to-action.jsx +0 -6
  373. package/dist/components/navigation/navigation-expanded.jsx +0 -165
  374. package/dist/components/navigation/navigation-list.jsx +0 -126
  375. package/dist/components/navigation/navigation-menu-control.jsx +0 -25
  376. package/dist/components/navigation/navigation-menu.jsx +0 -103
  377. package/dist/components/navigation/navigation-search-control.jsx +0 -8
  378. package/dist/components/navigation/navigation-search.jsx +0 -63
  379. package/dist/components/navigation/navigation-sign-in-control.jsx +0 -14
  380. package/dist/components/navigation/navigation-user-menu-items.jsx +0 -36
  381. package/dist/components/navigation/navigation-user-menu.jsx +0 -121
  382. package/dist/components/navigation/navigation.jsx +0 -137
  383. package/dist/components/navigation/navigation.stories.jsx +0 -260
  384. package/dist/components/phone-number-field/index.d.ts +0 -2
  385. package/dist/components/phone-number-field/index.js +0 -2
  386. package/dist/components/phone-number-field/phone-number-field.jsx +0 -50
  387. package/dist/components/phone-number-field/phone-number-field.stories.jsx +0 -23
  388. package/dist/components/phone-number-field/util.d.ts +0 -2
  389. package/dist/components/phone-number-field/util.js +0 -19
  390. package/dist/components/phone-number-input/index.js +0 -3
  391. package/dist/components/phone-number-input/phone-number-field.d.ts +0 -23
  392. package/dist/components/phone-number-input/phone-number-field.jsx +0 -50
  393. package/dist/components/phone-number-input/phone-number-field.stories.jsx +0 -16
  394. package/dist/components/phone-number-input/phone-number-input.jsx +0 -48
  395. package/dist/components/phone-number-input/util.js +0 -19
  396. package/dist/components/radio/index.js +0 -2
  397. package/dist/components/radio/radio-group.jsx +0 -9
  398. package/dist/components/radio/radio-group.stories.jsx +0 -21
  399. package/dist/components/radio/radio.jsx +0 -31
  400. package/dist/components/radio/radio.stories.jsx +0 -44
  401. package/dist/components/select/index.js +0 -2
  402. package/dist/components/select/select-helper-text.jsx +0 -6
  403. package/dist/components/select/select.jsx +0 -152
  404. package/dist/components/select/select.stories.jsx +0 -40
  405. package/dist/components/statistics/index.js +0 -1
  406. package/dist/components/statistics/statistics.jsx +0 -61
  407. package/dist/components/statistics/statistics.stories.jsx +0 -34
  408. package/dist/components/switch/index.js +0 -1
  409. package/dist/components/switch/switch.jsx +0 -32
  410. package/dist/components/switch/switch.stories.jsx +0 -41
  411. package/dist/components/tabs/index.js +0 -1
  412. package/dist/components/tabs/tab-bar.jsx +0 -35
  413. package/dist/components/tabs/tab-text-label.jsx +0 -5
  414. package/dist/components/tabs/tab.jsx +0 -50
  415. package/dist/components/tabs/tabs.jsx +0 -65
  416. package/dist/components/tabs/tabs.stories.jsx +0 -27
  417. package/dist/components/text/index.js +0 -1
  418. package/dist/components/text/text.jsx +0 -138
  419. package/dist/components/text/text.stories.jsx +0 -262
  420. package/dist/components/text-field/index.js +0 -2
  421. package/dist/components/text-field/text-field-helper-text.jsx +0 -8
  422. package/dist/components/text-field/text-field.jsx +0 -124
  423. package/dist/components/text-field/text-field.stories.jsx +0 -32
  424. package/dist/components/uploader/index.js +0 -1
  425. package/dist/components/uploader/uploader.jsx +0 -96
  426. package/dist/input.d.ts +0 -1
  427. package/dist/input.js +0 -4
  428. package/dist/input.jsx +0 -4
  429. package/dist/theme/colors.js +0 -9
  430. package/dist/theme/index.js +0 -2
  431. package/dist/theme/mycause-theme.js +0 -33
  432. package/dist/theme/theme.jsx +0 -36
  433. package/dist/utils/browser.js +0 -19
  434. package/dist/utils/center-decorator.jsx +0 -15
  435. package/dist/utils/component-matrix.jsx +0 -39
  436. package/dist/utils/flags.js +0 -18
  437. package/dist/utils/grid-decorator.jsx +0 -27
  438. package/dist/utils/tap-event.js +0 -11
  439. package/dist/utils/wrap.js +0 -8
@@ -1,126 +0,0 @@
1
- import React, { Fragment } from "react";
2
- import { BRAND_DARK_GREY, INACTIVE_GREY } from "../../theme/colors";
3
- import { BoldAnchor } from "../anchor/index";
4
- import { Icon } from "../icon/index";
5
- import { useTheme } from "../../theme/theme";
6
- function NavigationList({ items, onClickItem, active, size = "normal", }) {
7
- const theme = useTheme();
8
- return (<ul className={`size-${size}`}>
9
- {items.map(item => {
10
- const onClick = (e) => {
11
- // href
12
- if ("href" in item)
13
- return;
14
- e.preventDefault();
15
- // combined handler
16
- if (onClickItem)
17
- onClickItem(item.id);
18
- // individual handler
19
- else if (item.onClick)
20
- item.onClick();
21
- };
22
- const href = "href" in item ? item.href : "#";
23
- const id = "id" in item ? item.id : null;
24
- return (<Fragment key={"href" in item ? item.href : item.id}>
25
- <li className="item">
26
- <BoldAnchor analyticsId={item.analyticsId} href={href} onClick={onClick} active={id === active}>
27
- {item.label}{" "}
28
- {"id" in item && item.more ? (<span className="chevron">
29
- <span className="chevron-right">
30
- <Icon icon="chevron_right" size={size === "normal" ? "24px" : "36px"}/>
31
- </span>
32
- <span className="chevron-down">
33
- <Icon icon="expand_more" size={size === "normal" ? "16px" : "24px"}/>
34
- </span>
35
- </span>) : null}
36
- </BoldAnchor>
37
- </li>
38
- {"children" in item ? item.children : null}
39
- </Fragment>);
40
- })}
41
- <style jsx>{`
42
- ul {
43
- margin: 0;
44
- padding: 0;
45
- list-style: none;
46
- }
47
-
48
- .item {
49
- display: flex;
50
- flex-direction: column;
51
- justify-content: center;
52
- font-family: ${theme.typography.fontFamily.brand};
53
- color: ${BRAND_DARK_GREY};
54
- font-weight: 500;
55
- }
56
-
57
- .size-large .item {
58
- font-size: 1rem;
59
- height: 2.5rem;
60
- }
61
-
62
- .size-normal .item {
63
- font-size: 0.875rem;
64
- height: 1.75rem;
65
- }
66
-
67
- .item :global(a:focus) {
68
- outline: none;
69
- }
70
-
71
- .item:focus-within {
72
- outline: -webkit-focus-ring-color auto 5px;
73
- }
74
-
75
- .chevron {
76
- position: relative;
77
- display: inline-block;
78
- width: 1em;
79
- height: 1em;
80
- margin-left: 1rem;
81
- vertical-align: middle;
82
- line-height: 1;
83
- transform: translateY(-5%);
84
- color: ${INACTIVE_GREY};
85
- }
86
-
87
- .chevron-right {
88
- display: none;
89
- }
90
-
91
- .item :global(a:hover) .chevron,
92
- .item :global(a:focus) .chevron,
93
- .item :global(a.active) .chevron {
94
- color: inherit;
95
- }
96
-
97
- .chevron > :global(*) {
98
- position: absolute;
99
- top: 50%;
100
- left: 50%;
101
- transform: translate(-50%, -50%);
102
- }
103
-
104
- @media (min-width: 720px) {
105
- .size-large .item {
106
- font-size: 1.375rem;
107
- min-height: 3rem;
108
- }
109
-
110
- .size-normal .item {
111
- font-size: 1.125rem;
112
- min-height: 2.5rem;
113
- }
114
-
115
- .chevron-right {
116
- display: initial;
117
- }
118
-
119
- .chevron-down {
120
- display: none;
121
- }
122
- }
123
- `}</style>
124
- </ul>);
125
- }
126
- export default NavigationList;
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- import classnames from "classnames";
3
- import { ON_BACKGROUND_GREY_GREY } from "../../theme/colors";
4
- import { ToggleButton, Icon } from "../icon";
5
- function NavigationMenuControl({ isMenuOpen, onChangeMenuOpen, className, ...rest }) {
6
- return (<div className={classnames("menu-control", className)} {...rest}>
7
- <ToggleButton active={<Icon icon="menu"/>} inactive={<Icon icon="close"></Icon>} value={isMenuOpen} onChange={onChangeMenuOpen}/>
8
- <style jsx>{`
9
- .menu-control {
10
- display: flex;
11
- align-items: center;
12
- }
13
-
14
- .menu-control::before {
15
- content: "";
16
- display: inline-block;
17
- width: 1px;
18
- height: 2rem;
19
- border-left: 1px solid ${ON_BACKGROUND_GREY_GREY};
20
- margin-right: calc(0.5rem - 1px);
21
- }
22
- `}</style>
23
- </div>);
24
- }
25
- export default NavigationMenuControl;
@@ -1,103 +0,0 @@
1
- import React from "react";
2
- import Button from "../button/button";
3
- import { BACKGROUND_GREY, ON_BACKGROUND_GREY_GREY } from "../../theme/colors";
4
- import NavigationList from "./navigation-list";
5
- export function NavigationMenu({ links, sublinks, action, active, onClickItem, }) {
6
- return (<div className="navigation-menu">
7
- <div className="main-navigation">
8
- <div className="main-navigation-menus">
9
- <NavigationList items={links.map(link => ({
10
- ...link,
11
- children: sublinks && "id" in link && link.id === active ? (<div className="inline-submenu">
12
- <NavigationList items={sublinks} active={null}/>
13
- </div>) : null,
14
- }))} onClickItem={onClickItem} active={active} size="large"/>
15
- {sublinks ? (<div className="side-submenu">
16
- <NavigationList items={sublinks} active={null}/>
17
- </div>) : null}
18
- </div>
19
- {action ? (<div>
20
- <Button display outlined color="primary" analyticsId={action.analyticsId} onClick={(e) => {
21
- /**
22
- * Prevent nav action button to turn into a hyperlink.
23
- * This is so that google analytics will always be triggered.
24
- * If we use a hyperlink instead of button clicks on the label
25
- * wont be considered as a click on the hyperlink.
26
- */
27
- if ("href" in action)
28
- window.location.href = action.href;
29
- e.preventDefault();
30
- if ("onClick" in action && action.onClick)
31
- action.onClick();
32
- }}>
33
- {action.label}
34
- </Button>
35
- </div>) : null}
36
- </div>
37
- <style jsx>{`
38
- .navigation-menu {
39
- background-color: ${BACKGROUND_GREY};
40
- }
41
-
42
- .side-submenu {
43
- display: none;
44
- padding-left: 3rem;
45
- border-left: 1px solid ${ON_BACKGROUND_GREY_GREY};
46
- }
47
-
48
- .inline-submenu {
49
- padding: 0 1rem 1rem 1rem;
50
- }
51
-
52
- .content {
53
- position: relative;
54
- max-width: 1024px;
55
- margin: 0 auto;
56
- padding: 4rem;
57
- }
58
-
59
- .content > :global(*:not(:last-child)) {
60
- margin-bottom: 3rem;
61
- }
62
-
63
- @supports (display: grid) {
64
- .content {
65
- display: grid;
66
- grid-gap: 3rem;
67
- }
68
-
69
- .content > :global(*:not(:last-child)) {
70
- margin-bottom: initial;
71
- }
72
- }
73
-
74
- .main-navigation {
75
- display: flex;
76
- flex-direction: column;
77
- }
78
-
79
- .main-navigation > :global(*:not(:last-child)) {
80
- margin-bottom: 2rem;
81
- }
82
-
83
- .main-navigation-menus {
84
- display: flex;
85
- }
86
-
87
- .main-navigation-menus > :global(*:not(:last-child)) {
88
- margin-right: 3rem;
89
- }
90
-
91
- @media (min-width: 720px) {
92
- .side-submenu {
93
- display: initial;
94
- }
95
-
96
- .inline-submenu {
97
- display: none;
98
- }
99
- }
100
- `}</style>
101
- </div>);
102
- }
103
- export default NavigationMenu;
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import { IconButton, Icon } from "../icon";
3
- function NavigationSearchControl({ onChangeSearchOpen, analyticsId, }) {
4
- return (<IconButton id={analyticsId} onClick={() => onChangeSearchOpen(true)}>
5
- <Icon icon="search"/>
6
- </IconButton>);
7
- }
8
- export default NavigationSearchControl;
@@ -1,63 +0,0 @@
1
- import React, { useRef, useEffect } from "react";
2
- import { TextField } from "../text-field";
3
- import { Icon } from "../icon";
4
- import { Button } from "../button";
5
- import useMedia from "use-media";
6
- function NavigationSearch({ value, onChange, onSubmit, onCancel, }) {
7
- // Focus the search bar when opened
8
- const input = useRef(null);
9
- useEffect(() => {
10
- if (input.current) {
11
- input.current.focus();
12
- }
13
- }, [input]);
14
- const handleKeyDown = (e) => {
15
- if (e.key === "Enter") {
16
- e.preventDefault();
17
- onSubmit();
18
- }
19
- };
20
- const handleChange = (e) => {
21
- onChange(e.currentTarget.value);
22
- };
23
- const placeholder = "Try searching for a friend, campaign, or event";
24
- const isMobile = useMedia("screen and (max-width: 719px)");
25
- const isCompact = useMedia("screen and (max-width: 959px)");
26
- return (<>
27
- <div className="navigation-search">
28
- {!isCompact ? (<TextField leadingIcon={<Icon icon="search"/>} trailingIcon={<Icon icon="close" title="close"/>} onTrailingIconSelect={() => onCancel()} onChange={handleChange} onKeyDown={handleKeyDown} value={value} placeholder={placeholder} ref={input} large/>) : (<>
29
- <TextField leadingIcon={<Icon icon="search"/>} trailingIcon={value ? <Icon icon="cancel" title="clear"/> : undefined} onTrailingIconSelect={() => onChange("")} onChange={(e) => onChange(e.currentTarget.value)} onKeyDown={handleKeyDown} value={value} placeholder={!isMobile ? placeholder : "Search"} ref={input}/>
30
- <div className="cancel">
31
- <Button onClick={() => onCancel()}>Cancel</Button>
32
- </div>
33
- </>)}
34
- </div>
35
- <style jsx>{`
36
- .navigation-search {
37
- height: 100%;
38
- width: 100%;
39
- display: flex;
40
- align-items: center;
41
- }
42
-
43
- .navigation-search > :global(*:first-child) {
44
- flex-grow: 1;
45
- }
46
-
47
- .cancel {
48
- margin-left: 0.5rem;
49
- }
50
-
51
- .cancel :global(.button) {
52
- height: 3.5rem;
53
- }
54
-
55
- @media (min-width: 720px) {
56
- .navigation-search {
57
- padding: 0 1rem;
58
- }
59
- }
60
- `}</style>
61
- </>);
62
- }
63
- export default NavigationSearch;
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import classnames from "classnames";
3
- import { Button } from "../button";
4
- import { IconButton, Icon } from "../icon";
5
- function NavigationSignInControl({ analyticsId, onRequestSignIn, compact, className, ...rest }) {
6
- return (<div className={classnames("sign-in-control", className)} {...rest}>
7
- {!compact ? (<Button analyticsId={analyticsId} className="sign-in-button" color="neutral" icon={<Icon icon="perm_identity" color="accent"/>} onClick={() => onRequestSignIn()} display>
8
- Login
9
- </Button>) : (<IconButton id={analyticsId} title="Sign in" color="accent" onClick={() => onRequestSignIn()}>
10
- <Icon icon="perm_identity"/>
11
- </IconButton>)}
12
- </div>);
13
- }
14
- export default NavigationSignInControl;
@@ -1,36 +0,0 @@
1
- import React, { Fragment, useState } from "react";
2
- import Icon from "../icon/icon";
3
- import { MenuListItem, MenuListItemText, MenuListItemGraphic, MenuListItemMeta, } from "../menu";
4
- function NavigationUserMenuItem({ icon, label, onClick, submenu, isSubmenuOpen, ...rest }) {
5
- return (<Fragment>
6
- <MenuListItem onClick={onClick} {...rest}>
7
- <MenuListItemGraphic graphic={<Icon color="primary" {...icon}/>}/>
8
- <MenuListItemText primaryText={label}/>
9
- {submenu ? (<MenuListItemMeta meta={<Icon color="primary" icon={isSubmenuOpen ? "keyboard_arrow_up" : "keyboard_arrow_down"}/>}/>) : null}
10
- </MenuListItem>
11
- {submenu && isSubmenuOpen
12
- ? submenu.map(subItem => (<MenuListItem key={subItem.id || subItem.href} {...subItem}>
13
- <MenuListItemText primaryText={subItem.label} className="icon-submenu"/>
14
- </MenuListItem>))
15
- : null}
16
- </Fragment>);
17
- }
18
- function NavigationUserMenuItems({ items }) {
19
- // To keep track of which submenu (if any) is open at any time
20
- // There can be only one open at a time
21
- const [activeSubmenu, setActiveSubmenu] = useState(-1);
22
- const handleClick = (index, item) => {
23
- if (item.submenu) {
24
- setActiveSubmenu(activeSubmenu === index ? -1 : index);
25
- }
26
- else if (item.onClick) {
27
- item.onClick();
28
- }
29
- };
30
- return (<Fragment>
31
- {items.map((item, i) => {
32
- return (<NavigationUserMenuItem key={item.id || item.href || i} id={item.id || item.href} isSubmenuOpen={item.submenu && activeSubmenu === i} {...item} onClick={() => handleClick(i, item)}/>);
33
- })}
34
- </Fragment>);
35
- }
36
- export default NavigationUserMenuItems;
@@ -1,121 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import classnames from "classnames";
3
- import useMedia from "use-media";
4
- import Avatar from "../avatar/avatar";
5
- import { useTheme } from "../../theme/theme";
6
- import { MenuList, MenuListItem, MenuListItemText } from "../menu";
7
- import NavigationUserMenuItems from "./navigation-user-menu-items";
8
- function NavigationUserMenu({ user, items, isOpen, onChangeOpen, }) {
9
- const theme = useTheme();
10
- // Allow users with pointing devices to open/close the menu by hovering in/out
11
- const [isHovered, bind] = useHover();
12
- useEffect(() => {
13
- onChangeOpen(isHovered);
14
- }, [onChangeOpen, isHovered]);
15
- return (<div className={classnames("menu-anchor", {
16
- compact: useMedia("screen and (max-width: 425px)"),
17
- })} {...bind()}>
18
- <div className={classnames("menu-trigger", { open: isOpen })}>
19
- <Avatar name={user.name} src={user.avatar ? user.avatar.src : undefined} onClick={() => onChangeOpen(!isOpen)}/>
20
- </div>
21
- {items && isOpen && (<div className="user-menu">
22
- <MenuList>
23
- <MenuListItem>
24
- <MenuListItemText primaryText={<strong>Hello {user.name}!</strong>}/>
25
- </MenuListItem>
26
- <NavigationUserMenuItems items={items}/>
27
- </MenuList>
28
- </div>)}
29
- <style jsx>{`
30
- .menu-trigger {
31
- cursor: pointer;
32
- width: 3rem;
33
- height: 3rem;
34
- display: flex;
35
- justify-content: center;
36
- align-items: center;
37
- border-radius: 0.25rem;
38
- }
39
-
40
- .open {
41
- background-color: #efefef;
42
- }
43
-
44
- .menu-anchor {
45
- position: relative;
46
- overflow: visible;
47
- }
48
-
49
- .menu-anchor.compact {
50
- position: initial;
51
- }
52
-
53
- .user-menu {
54
- position: absolute;
55
- z-index: 1;
56
- top: 100%;
57
- right: 0;
58
- background-color: white;
59
- border-radius: 0.25rem;
60
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12),
61
- 0 1px 4px rgba(0, 0, 0, 0.24);
62
- overflow-x: scroll;
63
- max-height: calc(100vh - 64px);
64
- }
65
-
66
- /* arrow */
67
- .user-menu::before {
68
- display: block;
69
- content: "";
70
- width: 0;
71
- height: 0;
72
- border-left: 8px solid transparent;
73
- border-right: 8px solid transparent;
74
- border-bottom: 8px solid white;
75
- position: absolute;
76
- top: -8px;
77
- right: calc((3rem / 2) - 8px);
78
- }
79
-
80
- .compact .user-menu {
81
- left: 8px;
82
- right: 8px;
83
- top: 3.5rem;
84
- }
85
-
86
- .compact .user-menu::before {
87
- right: calc((3rem / 2) - 8px + 4.5rem);
88
- }
89
-
90
- .user-menu :global(.mdc-list-item__graphic) {
91
- margin-right: 1rem;
92
- }
93
-
94
- .user-menu :global(.mdc-list-item:not(:last-of-type)) {
95
- border-bottom: 1px solid #e0e0e0;
96
- }
97
- `}</style>
98
- <style jsx>{`
99
- .user-menu :global(.mdc-list) {
100
- font-family: ${theme.typography.fontFamily.brand};
101
- }
102
-
103
- strong {
104
- color: ${theme.color.foreground.primary};
105
- }
106
- `}</style>
107
- </div>);
108
- }
109
- export default NavigationUserMenu;
110
- function useHover() {
111
- const [isHovered, setIsHovered] = useState();
112
- const bind = () => ({
113
- onMouseOver: () => {
114
- setIsHovered(true);
115
- },
116
- onMouseLeave: () => {
117
- setIsHovered(false);
118
- },
119
- });
120
- return [isHovered, bind];
121
- }
@@ -1,137 +0,0 @@
1
- import React, { useState } from "react";
2
- import useMedia from "use-media";
3
- import { WHITE } from "../../theme/colors";
4
- import Tabs from "../tabs/tabs";
5
- import NavigationMenu from "./navigation-menu";
6
- import NavigationBar from "./navigation-bar";
7
- import NavigationExpanded from "./navigation-expanded";
8
- import { Statistics } from "../statistics";
9
- import NavigationActions from "./navigation-actions";
10
- import NavigationSearch from "./navigation-search";
11
- import NavigationSearchControl from "./navigation-search-control";
12
- import NavigationSignInControl from "./navigation-sign-in-control";
13
- import NavigationCallToAction from "./navigation-call-to-action";
14
- import NavigationMenuControl from "./navigation-menu-control";
15
- import NavigationUserMenu from "./navigation-user-menu";
16
- function Navigation({ logo, menus, links, stats, cta, user, userMenu, search, login, isSticky, isCompactHeight, }) {
17
- const [isSearchOpen, setSearchOpen] = useState(false);
18
- const [isUserMenuOpen, setUserMenuOpen] = useState();
19
- const [query, setQuery] = useState("");
20
- const [active, setActive] = useState([null, null]);
21
- const isCompact = useMedia("screen and (max-width: 720px)");
22
- const isMedium = useMedia("screen and (max-width: 960px)");
23
- const menu = active[0] && menus ? menus.find(menu => menu.id === active[0]) : null;
24
- const submenu = active[1]
25
- ? menu.items.find(item => "id" in item && item.id === active[1]) &&
26
- menu.items.find(item => "id" in item && item.id === active[1]).submenu
27
- : null;
28
- const handleChangeMenuOpen = (isOpen) => {
29
- if (isOpen) {
30
- setActive(replace(active, 0, menus[0].id));
31
- }
32
- else {
33
- setActive([null, null]);
34
- }
35
- };
36
- return (<nav className="navigation">
37
- <NavigationBar isCompactHeight={isCompactHeight}>
38
- {!(isCompact && isSearchOpen) ? (<div className="logo-wrap">{logo}</div>) : null}
39
- {isSearchOpen && search ? (<>
40
- <NavigationSearch value={query} onChange={setQuery} onSubmit={() => search.onSearch(query)} onCancel={() => setSearchOpen(false)}/>
41
- </>) : (<>
42
- <div className="desktop-tabs">
43
- <Tabs tabs={menus
44
- ? menus.map(item => ({
45
- key: item.id,
46
- label: item.label,
47
- analyticsId: item.analyticsId,
48
- }))
49
- : []} active={active[0]} isCompactHeight={isCompactHeight} onActiveUpdate={id => setActive(replace(active, 0, id))} isMinWidth isMinWidthIndicator large/>
50
- </div>
51
- <NavigationActions>
52
- {search && (<NavigationSearchControl onChangeSearchOpen={setSearchOpen} analyticsId={search.analyticsId}/>)}
53
- {user ? (<NavigationUserMenu user={user} items={userMenu} isOpen={isUserMenuOpen} onChangeOpen={setUserMenuOpen} isCompact={isCompact}/>) : (login && (<NavigationSignInControl compact={isCompact} onRequestSignIn={login.onLogin} analyticsId={login.analyticsId}/>))}
54
- {!isMedium && cta ? <NavigationCallToAction {...cta}/> : null}
55
- {isMedium && menus ? (<NavigationMenuControl isMenuOpen={!!menu} onChangeMenuOpen={handleChangeMenuOpen}/>) : null}
56
- </NavigationActions>
57
- </>)}
58
- </NavigationBar>
59
- {menu ? (<NavigationExpanded links={links} onRequestClose={() => setActive([null, null])} className="navigation-float" banner={stats ? (<Statistics stats={stats} title="We support your cause"/>) : null}>
60
- <div className="mobile-tabs">
61
- <Tabs tabs={menus
62
- ? menus.map(item => ({ key: item.id, label: item.label }))
63
- : []} active={active[0]} onActiveUpdate={id => setActive(replace(active, 0, id))}/>
64
- </div>
65
- <NavigationMenu key={menu.id} links={menu.items.map(item => ({
66
- ...item,
67
- more: !!item.submenu,
68
- }))} sublinks={submenu || null} action={menu.action || null} active={active[1]} onClickItem={id => setActive(() => {
69
- if (active[1])
70
- return [active[0], null];
71
- else
72
- return replace(active, 1, id);
73
- })}/>
74
- </NavigationExpanded>) : null}
75
- <style jsx>{`
76
- .navigation {
77
- background-color: ${WHITE};
78
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12),
79
- 0 1px 4px rgba(0, 0, 0, 0.24);
80
- top: 0;
81
- z-index: 10;
82
- position: ${isSticky ? "fixed" : "relative"};
83
- width: 100%;
84
- }
85
-
86
- .logo-wrap {
87
- display: flex;
88
- align-items: center;
89
- justify-content: center;
90
- margin-right: 1rem;
91
- }
92
-
93
- .desktop-tabs {
94
- margin-left: 1rem;
95
- display: none;
96
- }
97
-
98
- .mobile-tabs {
99
- margin: 0 -1rem;
100
- }
101
-
102
- .navigation :global(.navigation-float) {
103
- position: absolute;
104
- top: 100%;
105
- left: 0;
106
- right: 0;
107
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12),
108
- 0 1px 4px rgba(0, 0, 0, 0.24);
109
- }
110
-
111
- @media (min-width: 960px) {
112
- .navigation {
113
- position: relative;
114
- }
115
-
116
- .mobile-tabs {
117
- display: none;
118
- }
119
-
120
- .desktop-tabs {
121
- display: block;
122
- }
123
- }
124
- `}</style>
125
- </nav>);
126
- }
127
- function replace(arr, x, val) {
128
- return arr.map((item, i) => {
129
- if (i === x)
130
- return val;
131
- if (x > 0)
132
- return item;
133
- else
134
- return null;
135
- });
136
- }
137
- export default Navigation;