@transferwise/components 46.26.2 → 46.28.0

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 (158) hide show
  1. package/build/i18n/th.json +2 -2
  2. package/build/i18n/zh-CN.json +5 -5
  3. package/build/index.js +410 -645
  4. package/build/index.js.map +1 -1
  5. package/build/index.mjs +411 -646
  6. package/build/index.mjs.map +1 -1
  7. package/build/logo/svg/flag-platform-white.svg +1 -0
  8. package/build/logo/svg/flag-platform.svg +1 -0
  9. package/build/logo/svg/logo-platform-white.svg +1 -0
  10. package/build/logo/svg/logo-platform.svg +1 -0
  11. package/build/main.css +0 -16
  12. package/build/styles/logo/Logo.css +0 -16
  13. package/build/styles/main.css +0 -16
  14. package/build/types/alert/Alert.d.ts +47 -58
  15. package/build/types/alert/Alert.d.ts.map +1 -1
  16. package/build/types/alert/index.d.ts +2 -1
  17. package/build/types/alert/index.d.ts.map +1 -1
  18. package/build/types/button/Button.d.ts +7 -9
  19. package/build/types/button/Button.d.ts.map +1 -1
  20. package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts +1 -1
  21. package/build/types/common/dateUtils/isWithinRange/isWithinRange.d.ts.map +1 -1
  22. package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts +1 -1
  23. package/build/types/common/dateUtils/moveToWithinRange/moveToWithinRange.d.ts.map +1 -1
  24. package/build/types/common/propsValues/sentiment.d.ts +0 -1
  25. package/build/types/common/propsValues/sentiment.d.ts.map +1 -1
  26. package/build/types/dateLookup/DateLookup.d.ts +75 -28
  27. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  28. package/build/types/dateLookup/DateLookup.messages.d.ts +42 -63
  29. package/build/types/dateLookup/DateLookup.messages.d.ts.map +1 -1
  30. package/build/types/dateLookup/dateHeader/DateHeader.d.ts +9 -22
  31. package/build/types/dateLookup/dateHeader/DateHeader.d.ts.map +1 -1
  32. package/build/types/dateLookup/dateHeader/index.d.ts +1 -1
  33. package/build/types/dateLookup/dateHeader/index.d.ts.map +1 -1
  34. package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts +13 -31
  35. package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts.map +1 -1
  36. package/build/types/dateLookup/dateTrigger/index.d.ts +1 -1
  37. package/build/types/dateLookup/dateTrigger/index.d.ts.map +1 -1
  38. package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts +19 -2
  39. package/build/types/dateLookup/dayCalendar/DayCalendar.d.ts.map +1 -1
  40. package/build/types/dateLookup/dayCalendar/index.d.ts +1 -1
  41. package/build/types/dateLookup/dayCalendar/index.d.ts.map +1 -1
  42. package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts +12 -2
  43. package/build/types/dateLookup/dayCalendar/table/DayCalendarTable.d.ts.map +1 -1
  44. package/build/types/dateLookup/dayCalendar/table/index.d.ts +1 -1
  45. package/build/types/dateLookup/dayCalendar/table/index.d.ts.map +1 -1
  46. package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts +1 -1
  47. package/build/types/dateLookup/getStartOfDay/getStartOfDay.d.ts.map +1 -1
  48. package/build/types/dateLookup/getStartOfDay/index.d.ts +1 -1
  49. package/build/types/dateLookup/getStartOfDay/index.d.ts.map +1 -1
  50. package/build/types/dateLookup/index.d.ts +2 -1
  51. package/build/types/dateLookup/index.d.ts.map +1 -1
  52. package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts +17 -2
  53. package/build/types/dateLookup/monthCalendar/MonthCalendar.d.ts.map +1 -1
  54. package/build/types/dateLookup/monthCalendar/index.d.ts +1 -1
  55. package/build/types/dateLookup/monthCalendar/index.d.ts.map +1 -1
  56. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts +10 -26
  57. package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
  58. package/build/types/dateLookup/monthCalendar/table/index.d.ts +1 -1
  59. package/build/types/dateLookup/monthCalendar/table/index.d.ts.map +1 -1
  60. package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts +15 -2
  61. package/build/types/dateLookup/yearCalendar/YearCalendar.d.ts.map +1 -1
  62. package/build/types/dateLookup/yearCalendar/index.d.ts +1 -1
  63. package/build/types/dateLookup/yearCalendar/index.d.ts.map +1 -1
  64. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts +10 -26
  65. package/build/types/dateLookup/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
  66. package/build/types/dateLookup/yearCalendar/table/index.d.ts +1 -1
  67. package/build/types/dateLookup/yearCalendar/table/index.d.ts.map +1 -1
  68. package/build/types/index.d.ts +2 -1
  69. package/build/types/index.d.ts.map +1 -1
  70. package/build/types/inlineAlert/InlineAlert.d.ts +2 -4
  71. package/build/types/inlineAlert/InlineAlert.d.ts.map +1 -1
  72. package/build/types/inputs/SelectInput.d.ts.map +1 -1
  73. package/build/types/inputs/_BottomSheet.d.ts.map +1 -1
  74. package/build/types/inputs/_Popover.d.ts.map +1 -1
  75. package/build/types/instructionsList/InstructionsList.d.ts +1 -1
  76. package/build/types/instructionsList/InstructionsList.d.ts.map +1 -1
  77. package/build/types/logo/Logo.d.ts +1 -1
  78. package/build/types/logo/Logo.d.ts.map +1 -1
  79. package/build/types/logo/logoTypes.d.ts +2 -1
  80. package/build/types/logo/logoTypes.d.ts.map +1 -1
  81. package/build/types/markdown/Markdown.d.ts +1 -0
  82. package/build/types/markdown/Markdown.d.ts.map +1 -1
  83. package/build/types/statusIcon/StatusIcon.d.ts +1 -1
  84. package/build/types/statusIcon/StatusIcon.d.ts.map +1 -1
  85. package/package.json +1 -1
  86. package/src/alert/{Alert.spec.js → Alert.spec.tsx} +43 -40
  87. package/src/alert/Alert.story.tsx +1 -2
  88. package/src/alert/Alert.tsx +218 -0
  89. package/src/alert/index.ts +2 -0
  90. package/src/button/Button.tsx +6 -10
  91. package/src/common/dateUtils/isWithinRange/isWithinRange.spec.ts +21 -0
  92. package/src/common/dateUtils/isWithinRange/isWithinRange.ts +2 -2
  93. package/src/common/dateUtils/moveToWithinRange/moveToWithinRange.ts +8 -4
  94. package/src/common/propsValues/sentiment.ts +0 -10
  95. package/src/dateLookup/DateLookup.state.spec.js +7 -0
  96. package/src/dateLookup/{DateLookup.story.js → DateLookup.story.tsx} +13 -14
  97. package/src/dateLookup/DateLookup.tests.story.tsx +70 -0
  98. package/src/dateLookup/{DateLookup.js → DateLookup.tsx} +115 -81
  99. package/src/dateLookup/dateHeader/{DateHeader.js → DateHeader.tsx} +15 -15
  100. package/src/dateLookup/dateTrigger/DateTrigger.spec.js +0 -22
  101. package/src/dateLookup/dateTrigger/{DateTrigger.js → DateTrigger.tsx} +15 -32
  102. package/src/dateLookup/dayCalendar/{DayCalendar.js → DayCalendar.tsx} +14 -21
  103. package/src/dateLookup/dayCalendar/table/{DayCalendarTable.js → DayCalendarTable.tsx} +26 -37
  104. package/src/dateLookup/getStartOfDay/{getStartOfDay.js → getStartOfDay.tsx} +1 -1
  105. package/src/dateLookup/index.ts +2 -0
  106. package/src/dateLookup/monthCalendar/{MonthCalendar.js → MonthCalendar.tsx} +19 -22
  107. package/src/dateLookup/monthCalendar/table/{MonthCalendarTable.js → MonthCalendarTable.tsx} +31 -30
  108. package/src/dateLookup/yearCalendar/{YearCalendar.js → YearCalendar.tsx} +18 -21
  109. package/src/dateLookup/yearCalendar/table/{YearCalendarTable.js → YearCalendarTable.tsx} +26 -28
  110. package/src/i18n/th.json +2 -2
  111. package/src/i18n/zh-CN.json +5 -5
  112. package/src/index.ts +2 -1
  113. package/src/inlineAlert/InlineAlert.spec.tsx +0 -7
  114. package/src/inlineAlert/InlineAlert.tsx +19 -47
  115. package/src/inputs/InputGroup.tsx +3 -3
  116. package/src/inputs/SelectInput.tsx +1 -0
  117. package/src/inputs/_BottomSheet.tsx +44 -54
  118. package/src/inputs/_Popover.tsx +20 -23
  119. package/src/instructionsList/InstructionsList.spec.tsx +5 -0
  120. package/src/instructionsList/InstructionsList.story.tsx +1 -0
  121. package/src/instructionsList/InstructionsList.tsx +3 -2
  122. package/src/logo/Logo.css +0 -16
  123. package/src/logo/Logo.js +27 -5
  124. package/src/logo/Logo.less +0 -16
  125. package/src/logo/Logo.spec.js +15 -1
  126. package/src/logo/__snapshots__/Logo.spec.js.snap +45 -71
  127. package/src/logo/logoTypes.ts +1 -0
  128. package/src/logo/svg/flag-platform-white.svg +1 -0
  129. package/src/logo/svg/flag-platform.svg +1 -0
  130. package/src/logo/svg/logo-platform-white.svg +1 -0
  131. package/src/logo/svg/logo-platform.svg +1 -0
  132. package/src/main.css +0 -16
  133. package/src/markdown/Markdown.spec.tsx +16 -0
  134. package/src/markdown/Markdown.tsx +6 -1
  135. package/src/statusIcon/StatusIcon.tsx +14 -14
  136. package/build/types/alert/withArrow/alertArrowPositions.d.ts +0 -9
  137. package/build/types/alert/withArrow/alertArrowPositions.d.ts.map +0 -1
  138. package/build/types/alert/withArrow/index.d.ts +0 -3
  139. package/build/types/alert/withArrow/index.d.ts.map +0 -1
  140. package/build/types/alert/withArrow/withArrow.d.ts +0 -11
  141. package/build/types/alert/withArrow/withArrow.d.ts.map +0 -1
  142. package/src/alert/Alert.js +0 -196
  143. package/src/alert/index.js +0 -1
  144. package/src/alert/withArrow/alertArrowPositions.ts +0 -9
  145. package/src/alert/withArrow/index.js +0 -2
  146. package/src/alert/withArrow/withArrow.js +0 -50
  147. package/src/alert/withArrow/withArrow.spec.js +0 -51
  148. package/src/dateLookup/index.js +0 -1
  149. /package/src/dateLookup/{DateLookup.messages.js → DateLookup.messages.ts} +0 -0
  150. /package/src/dateLookup/dateHeader/{index.js → index.ts} +0 -0
  151. /package/src/dateLookup/dateTrigger/{index.js → index.ts} +0 -0
  152. /package/src/dateLookup/dayCalendar/{index.js → index.ts} +0 -0
  153. /package/src/dateLookup/dayCalendar/table/{index.js → index.ts} +0 -0
  154. /package/src/dateLookup/getStartOfDay/{index.js → index.ts} +0 -0
  155. /package/src/dateLookup/monthCalendar/{index.js → index.ts} +0 -0
  156. /package/src/dateLookup/monthCalendar/table/{index.js → index.ts} +0 -0
  157. /package/src/dateLookup/yearCalendar/{index.js → index.ts} +0 -0
  158. /package/src/dateLookup/yearCalendar/table/{index.js → index.ts} +0 -0
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="111" height="18" fill="none"><path fill="#163300" d="M4.887 5.92 0 11.525h8.726l.98-2.642H5.969L8.252 6.29l.008-.068-1.486-2.508h6.683L8.276 17.7h3.546L18.079.84H1.916l2.97 5.08ZM22.001 17.72V.792h6.15c1.341 0 2.454.24 3.334.719.882.48 1.541 1.134 1.979 1.963.438.83.657 1.762.657 2.798s-.22 1.976-.662 2.806c-.44.829-1.104 1.485-1.988 1.967-.885.482-1.995.723-3.331.723h-4.23V9.603h3.994c.848 0 1.536-.144 2.064-.434.528-.29.914-.684 1.162-1.186.248-.501.37-1.07.37-1.71 0-.639-.122-1.206-.37-1.702-.248-.497-.636-.885-1.166-1.165-.531-.282-1.228-.422-2.093-.422h-3.268v14.735H22h.001ZM38.823.793v16.926h-2.518V.793h2.518ZM45.712 18c-.82 0-1.561-.15-2.224-.45a3.665 3.665 0 0 1-1.572-1.31c-.385-.573-.576-1.275-.576-2.107 0-.717.14-1.307.42-1.768.281-.462.661-.83 1.138-1.1a6.036 6.036 0 0 1 1.6-.612c.59-.139 1.19-.243 1.802-.314.775-.088 1.404-.16 1.887-.218.482-.058.834-.153 1.052-.286.22-.132.33-.347.33-.644v-.058c0-.72-.208-1.28-.62-1.678-.412-.396-1.025-.595-1.84-.595-.813 0-1.514.183-2 .55-.486.366-.822.772-1.007 1.218L41.736 8.1c.28-.772.692-1.395 1.234-1.873a5.034 5.034 0 0 1 1.874-1.041 7.562 7.562 0 0 1 2.232-.327c.516 0 1.065.06 1.647.178a4.949 4.949 0 0 1 1.634.65c.509.313.925.76 1.25 1.342.325.58.49 1.334.49 2.26v8.43h-2.46v-1.736h-.101c-.163.32-.408.634-.733.942-.326.309-.744.565-1.255.77-.512.204-1.123.305-1.836.305Zm.547-1.984c.696 0 1.294-.135 1.79-.405.497-.27.876-.623 1.138-1.062a2.71 2.71 0 0 0 .392-1.409v-1.637c-.09.089-.262.17-.518.244a7.313 7.313 0 0 1-.871.19c-.327.054-.644.1-.952.14l-.774.104c-.489.06-.933.162-1.336.306-.4.144-.722.348-.96.616-.239.267-.358.62-.358 1.062 0 .612.23 1.073.69 1.385.46.31 1.048.466 1.76.466ZM60.833 5.025V7.01h-7.067V5.025h7.067Zm-5.172-3.04h2.518v12.008c0 .48.074.838.22 1.078.145.24.335.403.568.488.233.086.487.128.763.128.201 0 .378-.014.53-.04l.354-.066.455 2.041a4.53 4.53 0 0 1-.624.17c-.27.058-.607.09-1.01.095a4.509 4.509 0 0 1-1.853-.347 3.166 3.166 0 0 1-1.39-1.124c-.355-.506-.531-1.143-.531-1.91V1.985ZM69.507 5.026V7.01h-7.312V5.026h7.312ZM64.2 17.72V3.555c0-.794.177-1.453.531-1.98.354-.525.823-.92 1.406-1.18a4.615 4.615 0 0 1 1.904-.393A6.072 6.072 0 0 1 70.14.34l-.59 2c-.117-.034-.27-.074-.454-.12a2.81 2.81 0 0 0-.674-.07c-.612 0-1.048.148-1.309.445-.26.297-.392.728-.392 1.29V17.72H64.2ZM76.382 17.977c-1.213 0-2.27-.273-3.175-.818-.904-.545-1.606-1.31-2.106-2.289-.5-.981-.75-2.127-.75-3.438 0-1.312.25-2.469.75-3.455.5-.986 1.202-1.753 2.106-2.298.904-.545 1.963-.818 3.175-.818 1.213 0 2.271.273 3.176.818.904.545 1.605 1.312 2.106 2.298.499.986.75 2.138.75 3.455 0 1.316-.251 2.457-.75 3.438-.5.981-1.202 1.744-2.106 2.289-.905.545-1.963.818-3.176.818Zm.008-2.075c.787 0 1.438-.203 1.954-.611.517-.41.9-.95 1.15-1.628.25-.678.374-1.425.374-2.24 0-.815-.124-1.555-.374-2.236-.25-.68-.633-1.227-1.15-1.64-.516-.415-1.167-.62-1.954-.62-.786 0-1.448.206-1.967.62-.519.412-.904.96-1.153 1.64a6.43 6.43 0 0 0-.375 2.236c0 .81.125 1.562.375 2.24.25.677.634 1.22 1.153 1.627.52.408 1.176.613 1.967.613ZM84.434 17.72V5.026h2.434v2.016h.135a3.098 3.098 0 0 1 1.25-1.617 3.618 3.618 0 0 1 2.034-.591 10.677 10.677 0 0 1 1.071.058v2.363c-.1-.027-.28-.059-.538-.095a5.6 5.6 0 0 0-.775-.054c-.595 0-1.124.122-1.588.368-.464.245-.83.583-1.1 1.017-.27.432-.405.924-.405 1.475v7.752h-2.518v.002ZM93.023 17.72V5.025h2.418v2.067h.16c.27-.7.71-1.246 1.322-1.641.612-.394 1.345-.592 2.2-.592.854 0 1.59.198 2.177.596.587.396 1.021.942 1.302 1.637h.135c.309-.678.8-1.22 1.474-1.624.674-.405 1.477-.607 2.409-.607 1.174 0 2.132.361 2.876 1.082.744.722 1.117 1.81 1.117 3.265v8.512h-2.519V9.44c0-.86-.239-1.483-.716-1.869-.477-.386-1.047-.578-1.71-.578-.82 0-1.457.246-1.912.739-.455.492-.683 1.125-.683 1.896v8.092h-2.509V9.283c0-.69-.219-1.243-.657-1.662-.437-.419-1.007-.627-1.71-.627-.477 0-.917.122-1.318.368a2.74 2.74 0 0 0-.969 1.02c-.243.435-.365.94-.365 1.513v7.826h-2.519l-.003-.001Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="172" height="18" fill="none"><path fill="#fff" d="M43.276.841h4.787l-2.409 16.86h-4.787L43.276.84Zm-6.036 0-3.232 9.712L32.598.84H29.25l-4.23 9.684L24.49.84h-4.64l1.616 16.86h3.848l4.758-10.664 1.675 10.664h3.788L41.794.84H37.24Zm40.196 9.8H66.069c.059 2.189 1.396 3.63 3.363 3.63 1.483 0 2.657-.778 3.568-2.261l3.837 1.711c-1.32 2.55-4.098 4.211-7.523 4.211-4.67 0-7.769-3.083-7.769-8.04 0-5.447 3.642-9.31 8.783-9.31 4.524 0 7.373 2.998 7.373 7.667 0 .778-.088 1.555-.265 2.391Zm-4.259-3.228c0-1.96-1.117-3.2-2.908-3.2s-3.378 1.298-3.789 3.2h6.697ZM4.887 5.92 0 11.526h8.726l.98-2.642H5.969l2.284-2.592.008-.069-1.486-2.508h6.683L8.276 17.702h3.546L18.079.842H1.916l2.97 5.08Zm50.96-1.709c1.69 0 3.169.892 4.461 2.42l.679-4.755C59.783 1.077 58.152.58 55.994.58c-4.288 0-6.697 2.464-6.697 5.59 0 2.17 1.234 3.496 3.26 4.353l.97.432c1.806.756 2.291 1.132 2.291 1.931 0 .8-.815 1.355-2.056 1.355-2.048.007-3.708-1.024-4.956-2.782l-.692 4.843c1.422 1.063 3.245 1.628 5.648 1.628 4.076 0 6.58-2.306 6.58-5.505 0-2.176-.984-3.573-3.466-4.669l-1.058-.49c-1.469-.641-1.968-.994-1.968-1.7 0-.763.683-1.354 1.997-1.354ZM83.392 17.72V.792h6.149c1.342 0 2.454.24 3.335.719.882.48 1.541 1.134 1.979 1.963.437.83.656 1.762.656 2.798s-.22 1.976-.662 2.806c-.44.829-1.103 1.485-1.988 1.967-.884.482-1.994.723-3.33.723H85.3V9.603h3.993c.848 0 1.536-.144 2.064-.434.528-.29.915-.684 1.163-1.186.247-.501.37-1.07.37-1.71 0-.639-.123-1.206-.37-1.702-.248-.497-.636-.885-1.167-1.165-.53-.282-1.228-.422-2.092-.422h-3.269v14.735h-2.602ZM100.21.793v16.926h-2.519V.793h2.519ZM107.102 18c-.82 0-1.561-.15-2.224-.45a3.664 3.664 0 0 1-1.571-1.31c-.385-.573-.577-1.275-.577-2.107 0-.717.141-1.307.421-1.768.281-.462.661-.83 1.138-1.1a6.031 6.031 0 0 1 1.6-.612c.589-.139 1.19-.243 1.802-.314.774-.088 1.403-.16 1.887-.218.482-.058.833-.153 1.052-.286.219-.132.329-.347.329-.644v-.058c0-.72-.207-1.28-.619-1.678-.412-.396-1.026-.595-1.84-.595-.813 0-1.514.183-2.001.55-.486.366-.821.772-1.006 1.218l-2.367-.528c.281-.772.692-1.395 1.235-1.873a5.03 5.03 0 0 1 1.874-1.041 7.558 7.558 0 0 1 2.231-.327c.517 0 1.066.06 1.648.178a4.952 4.952 0 0 1 1.634.65c.508.313.925.76 1.25 1.342.325.58.489 1.334.489 2.26v8.43h-2.46v-1.736h-.101c-.162.32-.407.634-.732.942-.327.309-.745.565-1.256.77-.511.204-1.123.305-1.836.305Zm.548-1.984c.696 0 1.293-.135 1.79-.405.497-.27.876-.623 1.138-1.062.26-.438.391-.908.391-1.409v-1.637c-.09.089-.262.17-.517.244a7.34 7.34 0 0 1-.872.19c-.326.054-.643.1-.951.14l-.775.104a6.22 6.22 0 0 0-1.335.306c-.401.144-.722.348-.961.616-.238.267-.357.62-.357 1.062 0 .612.23 1.073.69 1.385.46.31 1.047.466 1.76.466h-.001ZM122.224 5.025V7.01h-7.068V5.025h7.068Zm-5.173-3.04h2.519v12.008c0 .48.073.838.219 1.078a1.1 1.1 0 0 0 .569.488c.233.086.487.128.762.128.202 0 .379-.014.531-.04l.354-.066.455 2.041a4.555 4.555 0 0 1-.624.17c-.27.058-.607.09-1.011.095a4.51 4.51 0 0 1-1.853-.347 3.17 3.17 0 0 1-1.39-1.124c-.354-.506-.531-1.143-.531-1.91V1.985ZM130.897 5.026V7.01h-7.311V5.026h7.311Zm-5.306 12.694V3.555c0-.794.177-1.453.531-1.98.354-.525.823-.92 1.406-1.18a4.614 4.614 0 0 1 1.904-.393 6.067 6.067 0 0 1 2.098.338l-.59 2c-.118-.034-.27-.074-.454-.12a2.818 2.818 0 0 0-.674-.07c-.612 0-1.048.148-1.309.445-.261.297-.392.728-.392 1.29V17.72h-2.52ZM137.773 17.975c-1.214 0-2.271-.273-3.175-.818-.905-.545-1.607-1.31-2.106-2.289-.5-.981-.75-2.127-.75-3.438 0-1.312.25-2.469.75-3.455.499-.986 1.201-1.753 2.106-2.298.904-.545 1.963-.818 3.175-.818 1.212 0 2.271.273 3.175.818.905.545 1.606 1.312 2.106 2.298.5.986.75 2.138.75 3.455 0 1.316-.25 2.457-.75 3.438-.499.981-1.201 1.744-2.106 2.289-.904.545-1.963.818-3.175.818Zm.008-2.074c.786 0 1.437-.204 1.954-.612.516-.41.9-.95 1.149-1.628.25-.678.375-1.425.375-2.24 0-.815-.125-1.555-.375-2.236-.25-.68-.633-1.227-1.149-1.64-.517-.415-1.168-.62-1.954-.62s-1.448.206-1.967.62c-.519.412-.904.96-1.153 1.64a6.414 6.414 0 0 0-.375 2.236c0 .81.124 1.562.375 2.24.25.677.634 1.22 1.153 1.628.519.407 1.175.612 1.967.612ZM145.82 17.72V5.026h2.435v2.016h.135a3.1 3.1 0 0 1 1.25-1.617 3.62 3.62 0 0 1 2.034-.591 10.671 10.671 0 0 1 1.071.058v2.363a5.174 5.174 0 0 0-.539-.095 5.594 5.594 0 0 0-.774-.054c-.595 0-1.125.122-1.589.368a2.83 2.83 0 0 0-1.099 1.017c-.27.432-.405.924-.405 1.475v7.752h-2.519v.002ZM154.41 17.72V5.025h2.418v2.067h.16c.27-.7.71-1.246 1.322-1.641.612-.394 1.345-.592 2.199-.592.855 0 1.591.198 2.178.596a3.5 3.5 0 0 1 1.301 1.637h.135c.31-.678.801-1.22 1.475-1.624.673-.405 1.477-.607 2.408-.607 1.175 0 2.132.361 2.877 1.082.744.722 1.116 1.81 1.116 3.265v8.512h-2.518V9.44c0-.86-.239-1.483-.716-1.869-.477-.386-1.047-.578-1.71-.578-.82 0-1.457.246-1.912.739-.455.492-.683 1.125-.683 1.896v8.092h-2.509V9.283c0-.69-.219-1.243-.657-1.662-.438-.419-1.008-.627-1.71-.627-.477 0-.917.122-1.318.368a2.742 2.742 0 0 0-.969 1.02c-.244.435-.365.94-.365 1.513v7.826h-2.519l-.003-.001Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="172" height="18" fill="none"><path fill="#163300" d="M43.276.841h4.787l-2.409 16.86h-4.787L43.276.84Zm-6.036 0-3.232 9.712L32.598.84H29.25l-4.23 9.684L24.49.84h-4.64l1.616 16.86h3.848l4.758-10.664 1.675 10.664h3.788L41.794.84H37.24Zm40.196 9.8H66.069c.059 2.189 1.396 3.63 3.363 3.63 1.483 0 2.657-.778 3.568-2.261l3.837 1.711c-1.32 2.55-4.098 4.211-7.523 4.211-4.67 0-7.769-3.083-7.769-8.04 0-5.447 3.642-9.31 8.783-9.31 4.524 0 7.373 2.998 7.373 7.667 0 .778-.088 1.555-.265 2.391Zm-4.259-3.228c0-1.96-1.117-3.2-2.908-3.2s-3.378 1.298-3.789 3.2h6.697ZM4.887 5.92 0 11.526h8.726l.98-2.642H5.969l2.284-2.592.008-.069-1.486-2.508h6.683L8.276 17.702h3.546L18.079.842H1.916l2.97 5.08Zm50.96-1.709c1.69 0 3.169.892 4.461 2.42l.679-4.755C59.783 1.077 58.152.58 55.994.58c-4.288 0-6.697 2.464-6.697 5.59 0 2.17 1.234 3.496 3.26 4.353l.97.432c1.806.756 2.291 1.132 2.291 1.931 0 .8-.815 1.355-2.056 1.355-2.048.007-3.708-1.024-4.956-2.782l-.692 4.843c1.422 1.063 3.245 1.628 5.648 1.628 4.076 0 6.58-2.306 6.58-5.505 0-2.176-.984-3.573-3.466-4.669l-1.058-.49c-1.469-.641-1.968-.994-1.968-1.7 0-.763.683-1.354 1.997-1.354ZM83.392 17.72V.792h6.149c1.342 0 2.454.24 3.335.719.882.48 1.541 1.134 1.979 1.963.437.83.656 1.762.656 2.798s-.22 1.976-.662 2.806c-.44.829-1.103 1.485-1.988 1.967-.884.482-1.994.723-3.33.723H85.3V9.603h3.993c.848 0 1.536-.144 2.064-.434.528-.29.915-.684 1.163-1.186.247-.501.37-1.07.37-1.71 0-.639-.123-1.206-.37-1.702-.248-.497-.636-.885-1.167-1.165-.53-.282-1.228-.422-2.092-.422h-3.269v14.735h-2.602ZM100.21.793v16.926h-2.519V.793h2.519ZM107.102 18c-.82 0-1.561-.15-2.224-.45a3.664 3.664 0 0 1-1.571-1.31c-.385-.573-.577-1.275-.577-2.107 0-.717.141-1.307.421-1.768.281-.462.661-.83 1.138-1.1a6.031 6.031 0 0 1 1.6-.612c.589-.139 1.19-.243 1.802-.314.774-.088 1.403-.16 1.887-.218.482-.058.833-.153 1.052-.286.219-.132.329-.347.329-.644v-.058c0-.72-.207-1.28-.619-1.678-.412-.396-1.026-.595-1.84-.595-.813 0-1.514.183-2.001.55-.486.366-.821.772-1.006 1.218l-2.367-.528c.281-.772.692-1.395 1.235-1.873a5.03 5.03 0 0 1 1.874-1.041 7.558 7.558 0 0 1 2.231-.327c.517 0 1.066.06 1.648.178a4.952 4.952 0 0 1 1.634.65c.508.313.925.76 1.25 1.342.325.58.489 1.334.489 2.26v8.43h-2.46v-1.736h-.101c-.162.32-.407.634-.732.942-.327.309-.745.565-1.256.77-.511.204-1.123.305-1.836.305Zm.548-1.984c.696 0 1.293-.135 1.79-.405.497-.27.876-.623 1.138-1.062.26-.438.391-.908.391-1.409v-1.637c-.09.089-.262.17-.517.244a7.34 7.34 0 0 1-.872.19c-.326.054-.643.1-.951.14l-.775.104a6.22 6.22 0 0 0-1.335.306c-.401.144-.722.348-.961.616-.238.267-.357.62-.357 1.062 0 .612.23 1.073.69 1.385.46.31 1.047.466 1.76.466h-.001ZM122.224 5.025V7.01h-7.068V5.025h7.068Zm-5.173-3.04h2.519v12.008c0 .48.073.838.219 1.078a1.1 1.1 0 0 0 .569.488c.233.086.487.128.762.128.202 0 .379-.014.531-.04l.354-.066.455 2.041a4.555 4.555 0 0 1-.624.17c-.27.058-.607.09-1.011.095a4.51 4.51 0 0 1-1.853-.347 3.17 3.17 0 0 1-1.39-1.124c-.354-.506-.531-1.143-.531-1.91V1.985ZM130.897 5.026V7.01h-7.311V5.026h7.311Zm-5.306 12.694V3.555c0-.794.177-1.453.531-1.98.354-.525.823-.92 1.406-1.18a4.614 4.614 0 0 1 1.904-.393 6.067 6.067 0 0 1 2.098.338l-.59 2c-.118-.034-.27-.074-.454-.12a2.818 2.818 0 0 0-.674-.07c-.612 0-1.048.148-1.309.445-.261.297-.392.728-.392 1.29V17.72h-2.52ZM137.773 17.975c-1.214 0-2.271-.273-3.175-.818-.905-.545-1.607-1.31-2.106-2.289-.5-.981-.75-2.127-.75-3.438 0-1.312.25-2.469.75-3.455.499-.986 1.201-1.753 2.106-2.298.904-.545 1.963-.818 3.175-.818 1.212 0 2.271.273 3.175.818.905.545 1.606 1.312 2.106 2.298.5.986.75 2.138.75 3.455 0 1.316-.25 2.457-.75 3.438-.499.981-1.201 1.744-2.106 2.289-.904.545-1.963.818-3.175.818Zm.008-2.074c.786 0 1.437-.204 1.954-.612.516-.41.9-.95 1.149-1.628.25-.678.375-1.425.375-2.24 0-.815-.125-1.555-.375-2.236-.25-.68-.633-1.227-1.149-1.64-.517-.415-1.168-.62-1.954-.62s-1.448.206-1.967.62c-.519.412-.904.96-1.153 1.64a6.414 6.414 0 0 0-.375 2.236c0 .81.124 1.562.375 2.24.25.677.634 1.22 1.153 1.628.519.407 1.175.612 1.967.612ZM145.82 17.72V5.026h2.435v2.016h.135a3.1 3.1 0 0 1 1.25-1.617 3.62 3.62 0 0 1 2.034-.591 10.671 10.671 0 0 1 1.071.058v2.363a5.174 5.174 0 0 0-.539-.095 5.594 5.594 0 0 0-.774-.054c-.595 0-1.125.122-1.589.368a2.83 2.83 0 0 0-1.099 1.017c-.27.432-.405.924-.405 1.475v7.752h-2.519v.002ZM154.41 17.72V5.025h2.418v2.067h.16c.27-.7.71-1.246 1.322-1.641.612-.394 1.345-.592 2.199-.592.855 0 1.591.198 2.178.596a3.5 3.5 0 0 1 1.301 1.637h.135c.31-.678.801-1.22 1.475-1.624.673-.405 1.477-.607 2.408-.607 1.175 0 2.132.361 2.877 1.082.744.722 1.116 1.81 1.116 3.265v8.512h-2.518V9.44c0-.86-.239-1.483-.716-1.869-.477-.386-1.047-.578-1.71-.578-.82 0-1.457.246-1.912.739-.455.492-.683 1.125-.683 1.896v8.092h-2.509V9.283c0-.69-.219-1.243-.657-1.662-.438-.419-1.008-.627-1.71-.627-.477 0-.917.122-1.318.368a2.742 2.742 0 0 0-.969 1.02c-.244.435-.365.94-.365 1.513v7.826h-2.519l-.003-.001Z"/></svg>
package/src/main.css CHANGED
@@ -3028,22 +3028,6 @@ a {
3028
3028
  .np-theme-personal--dark .np-logo-svg path {
3029
3029
  fill: var(--color-white);
3030
3030
  }
3031
- .np-logo-svg--size-sm {
3032
- display: block;
3033
- }
3034
- @media (min-width: 576px) {
3035
- .np-logo-svg--size-sm {
3036
- display: none;
3037
- }
3038
- }
3039
- .np-logo-svg--size-md {
3040
- display: none;
3041
- }
3042
- @media (min-width: 576px) {
3043
- .np-logo-svg--size-md {
3044
- display: block;
3045
- }
3046
- }
3047
3031
  .tw-modal--scrollable {
3048
3032
  max-height: 100%;
3049
3033
  /* mobile viewport bug fix */
@@ -126,6 +126,22 @@ describe('Markdown', () => {
126
126
  });
127
127
  });
128
128
 
129
+ describe('config.paragraph.className', () => {
130
+ it('adds a custom class when specified', () => {
131
+ render(
132
+ <Markdown config={{ paragraph: { className: 'm-b-0' } }}>{`# Heading
133
+
134
+ This is a paragraph
135
+ `}</Markdown>,
136
+ );
137
+
138
+ expect(screen.getByText('This is a paragraph').closest('p')).toHaveAttribute(
139
+ 'class',
140
+ 'm-b-0',
141
+ );
142
+ });
143
+ });
144
+
129
145
  it('adds a target=_self attribute when nothing specified', () => {
130
146
  render(
131
147
  <Markdown>{`# Heading
@@ -12,6 +12,7 @@ export type MarkdownProps = {
12
12
  as?: React.ElementType;
13
13
  config?: {
14
14
  link?: Pick<React.ComponentPropsWithoutRef<'a'>, 'target'>;
15
+ paragraph?: Pick<React.ComponentPropsWithoutRef<'p'>, 'className'>;
15
16
  };
16
17
  className?: string;
17
18
  children?: string;
@@ -39,6 +40,7 @@ export default function Markdown({
39
40
  }
40
41
 
41
42
  const linkTarget = config?.link?.target ?? '_self';
43
+ const paragraphClass = config?.paragraph?.className ?? '';
42
44
 
43
45
  if (allowList != null && blockList != null) {
44
46
  logActionRequired(
@@ -55,7 +57,10 @@ export default function Markdown({
55
57
 
56
58
  const createMarkup = () => {
57
59
  const parsed = parser(children);
58
- return writer.render(parsed).replace(/<a href="/g, `<a target="${linkTarget}" href="`);
60
+ return writer
61
+ .render(parsed)
62
+ .replace(/<a href="/g, `<a target="${linkTarget}" href="`)
63
+ .replace(/<p>/g, `<p class="${paragraphClass}">`);
59
64
  };
60
65
 
61
66
  return <Element className={className} dangerouslySetInnerHTML={{ __html: createMarkup() }} />;
@@ -1,27 +1,27 @@
1
1
  import { Info, Alert, Cross, Check, ClockBorderless } from '@transferwise/icons';
2
2
  import classNames from 'classnames';
3
3
 
4
- import { SizeSmall, SizeMedium, SizeLarge, Sentiment, Size } from '../common';
4
+ import { SizeSmall, SizeMedium, SizeLarge, Sentiment } from '../common';
5
5
 
6
6
  export type StatusIconProps = {
7
- sentiment: Sentiment;
7
+ sentiment: `${Sentiment}`;
8
8
  size: SizeSmall | SizeMedium | SizeLarge;
9
9
  };
10
10
 
11
- const StatusIcon = ({ sentiment = Sentiment.NEUTRAL, size = Size.MEDIUM }: StatusIconProps) => {
12
- const iconTypeMap = {
13
- [Sentiment.POSITIVE]: Check,
14
- [Sentiment.NEUTRAL]: Info,
15
- [Sentiment.WARNING]: Alert,
16
- [Sentiment.NEGATIVE]: Cross,
17
- [Sentiment.PENDING]: ClockBorderless,
18
- [Sentiment.INFO]: Info,
19
- [Sentiment.ERROR]: Cross,
20
- [Sentiment.SUCCESS]: Check,
21
- };
11
+ const iconTypeMap = {
12
+ positive: Check,
13
+ neutral: Info,
14
+ warning: Alert,
15
+ negative: Cross,
16
+ pending: ClockBorderless,
17
+ info: Info,
18
+ error: Cross,
19
+ success: Check,
20
+ } satisfies Record<`${Sentiment}`, React.ElementType>;
22
21
 
23
- const iconColor = [Sentiment.WARNING, Sentiment.PENDING].includes(sentiment) ? 'dark' : 'light';
22
+ const StatusIcon = ({ sentiment = 'neutral', size = 'md' }: StatusIconProps) => {
24
23
  const Icon = iconTypeMap[sentiment];
24
+ const iconColor = sentiment === 'warning' || sentiment === 'pending' ? 'dark' : 'light';
25
25
 
26
26
  return (
27
27
  <span
@@ -1,9 +0,0 @@
1
- export declare enum ArrowPosition {
2
- TOP_LEFT = "up-left",
3
- TOP = "up-center",
4
- TOP_RIGHT = "up-right",
5
- BOTTOM_LEFT = "down-left",
6
- BOTTOM = "down-center",
7
- BOTTOM_RIGHT = "down-right"
8
- }
9
- //# sourceMappingURL=alertArrowPositions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alertArrowPositions.d.ts","sourceRoot":"","sources":["../../../../src/alert/withArrow/alertArrowPositions.ts"],"names":[],"mappings":"AACA,oBAAY,aAAa;IACvB,QAAQ,YAAY;IACpB,GAAG,cAAc;IACjB,SAAS,aAAa;IACtB,WAAW,cAAc;IACzB,MAAM,gBAAgB;IACtB,YAAY,eAAe;CAC5B"}
@@ -1,3 +0,0 @@
1
- export { ArrowPosition as AlertArrowPosition } from "./alertArrowPositions";
2
- export { default } from "./withArrow";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/alert/withArrow/index.js"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- export default withArrow;
2
- declare function withArrow(Alert: any, arrow: any): {
3
- (props: any): import("react").JSX.Element;
4
- propTypes: {
5
- className: any;
6
- };
7
- defaultProps: {
8
- className: undefined;
9
- };
10
- };
11
- //# sourceMappingURL=withArrow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"withArrow.d.ts","sourceRoot":"","sources":["../../../../src/alert/withArrow/withArrow.js"],"names":[],"mappings":";AAKA;;;;;;;;EAkBC"}
@@ -1,196 +0,0 @@
1
- import {
2
- InfoCircle,
3
- Warning as AlertTriangle,
4
- CrossCircle,
5
- CheckCircle,
6
- Clock,
7
- } from '@transferwise/icons';
8
- import { useTheme } from '@wise/components-theming';
9
- import classNames from 'classnames';
10
- import PropTypes from 'prop-types';
11
- import { useState, useRef } from 'react';
12
- import requiredIf from 'react-required-if';
13
-
14
- import Body from '../body/Body';
15
- import { Sentiment, Size, Typography, Variant } from '../common';
16
- import { CloseButton } from '../common/closeButton';
17
- import Link from '../link';
18
- import StatusIcon from '../statusIcon';
19
- import Title from '../title/Title';
20
- import { logActionRequiredIf, deprecated } from '../utilities';
21
-
22
- import InlineMarkdown from './inlineMarkdown';
23
- import withArrow from './withArrow';
24
-
25
- const deprecatedTypeMap = {
26
- [Sentiment.SUCCESS]: Sentiment.POSITIVE,
27
- [Sentiment.INFO]: Sentiment.NEUTRAL,
28
- [Sentiment.ERROR]: Sentiment.NEGATIVE,
29
- };
30
-
31
- const Alert = (props) => {
32
- const { isModern } = useTheme();
33
-
34
- const iconTypeMap = {
35
- [Sentiment.POSITIVE]: CheckCircle,
36
- [Sentiment.NEUTRAL]: InfoCircle,
37
- [Sentiment.WARNING]: AlertTriangle,
38
- [Sentiment.NEGATIVE]: CrossCircle,
39
- [Sentiment.PENDING]: Clock,
40
- };
41
-
42
- const [shouldFire, setShouldFire] = useState(false);
43
- const { arrow, action, children, className, icon, onDismiss, message, title, type, variant } =
44
- props;
45
- const closeButtonReference = useRef(null);
46
- if (arrow) {
47
- const AlertWithArrow = withArrow(Alert, arrow);
48
- return <AlertWithArrow {...props} />;
49
- }
50
- logActionRequired(props);
51
- const mappedType = deprecatedTypeMap[type] || type;
52
- const Icon = iconTypeMap[mappedType];
53
-
54
- function generateIcon() {
55
- if (icon) {
56
- return <div className="alert__icon">{icon}</div>;
57
- }
58
- if (isModern) {
59
- return <StatusIcon size={Size.LARGE} sentiment={mappedType} />;
60
- } else {
61
- return <Icon size={24} />;
62
- }
63
- }
64
-
65
- const handleTouchStart = () => setShouldFire(true);
66
- const handleTouchMove = () => setShouldFire(false);
67
- const handleTouchEnd = (event) => {
68
- if (shouldFire && action) {
69
- // Check if current event is triggered from closeButton
70
- if (closeButtonReference?.current && !closeButtonReference.current.contains(event.target)) {
71
- if (action?.target === '_blank') {
72
- window.top.open(action.href);
73
- } else {
74
- window.top.location.assign(action.href);
75
- }
76
- }
77
- }
78
- setShouldFire(false);
79
- };
80
- return (
81
- <div
82
- className={classNames('alert d-flex', `alert-${mappedType}`, className)}
83
- data-testid="alert"
84
- onTouchStart={handleTouchStart}
85
- onTouchEnd={handleTouchEnd}
86
- onTouchMove={handleTouchMove}
87
- >
88
- <div
89
- className={classNames('alert__content', 'd-flex', 'flex-grow-1', variant)}
90
- data-testid={variant}
91
- >
92
- {generateIcon()}
93
- <div className="alert__message">
94
- <div role={Sentiment.NEGATIVE === mappedType ? 'alert' : 'status'}>
95
- {title && (
96
- <Title className="m-b-1" type={Typography.TITLE_BODY}>
97
- {title}
98
- </Title>
99
- )}
100
- <Body as="span" className="d-block" type={Typography.BODY_LARGE}>
101
- {children || <InlineMarkdown>{message}</InlineMarkdown>}
102
- </Body>
103
- </div>
104
- {action && (
105
- <Link
106
- href={action.href}
107
- className="m-t-1"
108
- aria-label={action['aria-label']}
109
- target={action.target}
110
- type={Typography.LINK_LARGE}
111
- >
112
- {action.text}
113
- </Link>
114
- )}
115
- </div>
116
- </div>
117
- {onDismiss && (
118
- <CloseButton ref={closeButtonReference} className="m-l-2" onClick={onDismiss} />
119
- )}
120
- </div>
121
- );
122
- };
123
-
124
- const deprecatedTypeMapMessage = {
125
- [Sentiment.SUCCESS]: 'Sentiment.POSITIVE',
126
- [Sentiment.INFO]: 'Sentiment.NEUTRAL',
127
- [Sentiment.ERROR]: 'Sentiment.NEGATIVE',
128
- };
129
-
130
- const deprecatedTypes = Object.keys(deprecatedTypeMap);
131
-
132
- function logActionRequired({ size, type }) {
133
- logActionRequiredIf(
134
- 'Alert no longer supports any possible variations in size. Please remove the `size` prop.',
135
- !!size,
136
- );
137
- logActionRequiredIf(
138
- `Alert has deprecated the ${type} value for the \`type\` prop. Please update to ${deprecatedTypeMapMessage[type]}.`,
139
- deprecatedTypes.includes(type),
140
- );
141
- }
142
-
143
- Alert.propTypes = {
144
- /** An optional call to action to sit under the main body of the alert. If your label is short, use aria-label to provide more context */
145
- action: PropTypes.shape({
146
- 'aria-label': PropTypes.string,
147
- href: PropTypes.string.isRequired,
148
- target: PropTypes.string,
149
- text: PropTypes.node.isRequired,
150
- }),
151
- className: PropTypes.string,
152
- /** An optional icon. If not provided, we will default the icon to something appropriate for the type */
153
- icon: PropTypes.element,
154
- /** Title for the alert component */
155
- title: PropTypes.string,
156
- /** The main body of the alert. Accepts plain text and bold words specified with **double stars*/
157
- message: requiredIf(PropTypes.node, ({ children }) => !children),
158
- /** The presence of the onDismiss handler will trigger the visibility of the close button */
159
- onDismiss: PropTypes.func,
160
- /** The type dictates which icon and colour will be used */
161
- type: PropTypes.oneOf(['negative', 'neutral', 'positive', 'warning', 'info', 'error', 'success']),
162
- variant: PropTypes.oneOf(['desktop', 'mobile']),
163
- /** @deprecated no arrow for `Alert` component anymore, consider to use [`InlineAlert`](https://transferwise.github.io/neptune-web/components/alerts/InlineAlert) component */
164
- arrow: deprecated(
165
- PropTypes.oneOf(['up-left', 'up-center', 'up-right', 'down-left', 'down-center', 'down-right']),
166
- { component: 'Alert', expiryDate: new Date('03-01-2021') },
167
- ),
168
- /** @deprecated use `message` property instead */
169
- children: deprecated(
170
- requiredIf(PropTypes.node, ({ message }) => !message),
171
- {
172
- component: 'Alert',
173
- message:
174
- 'You should now use the `message` prop. Be aware `message` only accepts plain text or text with **bold** markdown.',
175
- expiryDate: new Date('03-01-2021'),
176
- },
177
- ),
178
- /** @deprecated use `onDismiss` instead */
179
- dismissible: deprecated(PropTypes.bool, {
180
- component: 'Alert',
181
- message: 'The Alert will now be considered dismissible if an `onDismiss` hander is present.',
182
- expiryDate: new Date('03-01-2021'),
183
- }),
184
- };
185
-
186
- Alert.defaultProps = {
187
- action: undefined,
188
- arrow: undefined,
189
- className: undefined,
190
- dismissible: undefined,
191
- icon: undefined,
192
- type: Sentiment.NEUTRAL,
193
- variant: Variant.DESKTOP,
194
- };
195
-
196
- export default Alert;
@@ -1 +0,0 @@
1
- export { default } from './Alert';
@@ -1,9 +0,0 @@
1
- // TODO: consider to move this enum into component file once we migrate it on TypeScript or replace with some common enum
2
- export enum ArrowPosition {
3
- TOP_LEFT = 'up-left',
4
- TOP = 'up-center',
5
- TOP_RIGHT = 'up-right',
6
- BOTTOM_LEFT = 'down-left',
7
- BOTTOM = 'down-center',
8
- BOTTOM_RIGHT = 'down-right',
9
- }
@@ -1,2 +0,0 @@
1
- export { ArrowPosition as AlertArrowPosition } from './alertArrowPositions';
2
- export { default } from './withArrow';
@@ -1,50 +0,0 @@
1
- import classNames from 'classnames';
2
- import PropTypes from 'prop-types';
3
-
4
- import { ArrowPosition } from './alertArrowPositions';
5
-
6
- function withArrow(Alert, arrow) {
7
- const AlertWithArrow = (props) => (
8
- <Alert
9
- {...props}
10
- className={classNames(props.className, arrowClasses(arrow))}
11
- arrow={undefined}
12
- />
13
- );
14
-
15
- AlertWithArrow.propTypes = {
16
- className: PropTypes.string,
17
- };
18
-
19
- AlertWithArrow.defaultProps = {
20
- className: undefined,
21
- };
22
-
23
- return AlertWithArrow;
24
- }
25
-
26
- function arrowClasses(arrow) {
27
- if (arrow) {
28
- const classes = ['arrow'];
29
- const { BOTTOM, BOTTOM_LEFT, BOTTOM_RIGHT, TOP, TOP_RIGHT, TOP_LEFT } = ArrowPosition;
30
-
31
- switch (arrow) {
32
- case BOTTOM:
33
- return classes.concat('arrow-bottom', 'arrow-center');
34
- case BOTTOM_LEFT:
35
- return classes.concat('arrow-bottom', 'arrow-left');
36
- case BOTTOM_RIGHT:
37
- return classes.concat('arrow-bottom', 'arrow-right');
38
- case TOP:
39
- return classes.concat('arrow-center');
40
- case TOP_RIGHT:
41
- return classes.concat('arrow-right');
42
- case TOP_LEFT:
43
- default:
44
- return classes;
45
- }
46
- }
47
- return '';
48
- }
49
-
50
- export default withArrow;
@@ -1,51 +0,0 @@
1
- import { render, screen } from '../../test-utils';
2
- import Alert from '../Alert';
3
-
4
- import { ArrowPosition } from './alertArrowPositions';
5
- import withArrow from './withArrow';
6
-
7
- describe('withArrow', () => {
8
- const message = 'I hope you have a nice day today';
9
-
10
- describe('default props', () => {
11
- it(`returns an arrowless alert if you don't pass an arrow`, () => {
12
- const ArrowLessAlert = withArrow(Alert);
13
-
14
- render(<ArrowLessAlert message={message} />);
15
- const component = screen.getByTestId('alert');
16
-
17
- expect(component).not.toHaveClass('arrow');
18
- });
19
-
20
- it(`ignores the arrow prop passed to the new alert`, () => {
21
- const AlertTopArrow = withArrow(Alert, ArrowPosition.TOP_LEFT);
22
-
23
- render(<AlertTopArrow message={message} arrow={ArrowPosition.BOTTOM_LEFT} />);
24
- const component = screen.getByTestId('alert');
25
- expect(component).toHaveClass('arrow');
26
- expect(component).not.toHaveClass('arrow-bottom');
27
- });
28
- });
29
-
30
- describe('renders arrows', () => {
31
- const getPointyAlert = (arrow) => withArrow(Alert, arrow);
32
-
33
- it(`returns an bottom arrowed alert if you pass a bottom arrow`, () => {
34
- const BottomArrowAlert = getPointyAlert(ArrowPosition.BOTTOM);
35
- render(<BottomArrowAlert message={message} />);
36
- const component = screen.getByTestId('alert');
37
-
38
- expect(component).toHaveClass('arrow');
39
- expect(component).toHaveClass('arrow-bottom');
40
- });
41
-
42
- it(`returns an top-right arrowed alert if you pass a top right arrow`, () => {
43
- const BottomArrowAlert = getPointyAlert(ArrowPosition.TOP_RIGHT);
44
- render(<BottomArrowAlert message={message} />);
45
- const component = screen.getByTestId('alert');
46
-
47
- expect(component).toHaveClass('arrow');
48
- expect(component).toHaveClass('arrow-right');
49
- });
50
- });
51
- });
@@ -1 +0,0 @@
1
- export { default } from './DateLookup';