@bikdotai/bik-widgets 1.0.0 → 1.0.1

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 (319) hide show
  1. package/dist-package/chunks/node_modules_lottie-web_build_player_lottie_light_js.927c24cd7bf65e593181.js +1 -0
  2. package/dist-package/chunks/src_components_UserDetailsV2_userDetailsV2_desktop_module_css.1efff8cddc83e0d3401c.js +1 -0
  3. package/dist-package/chunks/src_components_UserDetailsV2_userDetailsV2_mobile_module_css.dc9f2aa849ff133f141e.js +1 -0
  4. package/dist-package/chunks/src_components_UserDetailsV2_userDetailsV2_module_css.2a5fcc435fb3f37d0034.js +1 -0
  5. package/dist-package/chunks/src_components_checkbox_checkbox_module_css.be362d6b95515915d752.js +1 -0
  6. package/dist-package/chunks/src_components_countryCodePicker_countriesDropdown_module_css.a1c8409dacb9abf0dfce.js +1 -0
  7. package/dist-package/chunks/src_components_couponDetails_couponPreviewDesktop_module_css.ba5ab63e0394cc8a886f.js +1 -0
  8. package/dist-package/chunks/src_components_couponDetails_couponPreviewMobile_module_css.12642fbc4c56a68af36a.js +1 -0
  9. package/dist-package/chunks/src_components_couponDetails_coupon_module_css.828bdce7a75e349ebbb1.js +1 -0
  10. package/dist-package/chunks/src_components_inputComponents_Dropdown_module_css.7a0ce85538bef9add9d6.js +1 -0
  11. package/dist-package/chunks/src_components_selectedCountry_selectedCountryPreviewDesktop_module_css.7f3139377b37f12d921f.js +1 -0
  12. package/dist-package/chunks/src_components_selectedCountry_selectedCountryPreviewMobile_module_css.fed0a331046797ed5973.js +1 -0
  13. package/dist-package/chunks/src_components_selectedCountry_selectedCountry_module_css.630e2d9d9273a276f88c.js +1 -0
  14. package/dist-package/chunks/src_widgets_BottomDrawer_config_ts.c222c906d3920af1e1cb.js +1 -0
  15. package/dist-package/chunks/src_widgets_BottomDrawer_index_tsx.e9213fe49b5889e994e2.js +1 -0
  16. package/dist-package/chunks/src_widgets_CaptivateBanner_config_ts.9aaaf84faf2c9d249a49.js +1 -0
  17. package/dist-package/chunks/src_widgets_CaptivateBanner_index_tsx.af1c8798259dec2cb3fb.js +1 -0
  18. package/dist-package/chunks/src_widgets_CaptivateBanner_previewDesktop_module_css.934a120419e64fdcea21.js +1 -0
  19. package/dist-package/chunks/src_widgets_CaptivateBanner_previewMobile_module_css.ea372353d7adf8c386ed.js +1 -0
  20. package/dist-package/chunks/src_widgets_CaptivateBanner_style_module_css.ed1acad346401f481abc.js +1 -0
  21. package/dist-package/chunks/src_widgets_CentrallyAlignedPopup_config_ts.ddfca241b6f1a15049e3.js +1 -0
  22. package/dist-package/chunks/src_widgets_CentrallyAlignedPopup_index_tsx.d7599511d8519b775ec2.js +1 -0
  23. package/dist-package/chunks/src_widgets_DirectReward_config_ts.ec522622f042ce691399.js +1 -0
  24. package/dist-package/chunks/src_widgets_DirectReward_index_tsx.d56025f4ea5792718067.js +2 -0
  25. package/dist-package/chunks/src_widgets_DirectReward_previewStyles_thankYouPreviewDesktop_module_css.5a86965d82116b2d7b91.js +1 -0
  26. package/dist-package/chunks/src_widgets_DirectReward_previewStyles_thankYouPreviewMobile_module_css.c93d0e8be4e1f183bcfa.js +1 -0
  27. package/dist-package/chunks/src_widgets_DirectReward_previewStyles_userDetailsPreviewDesktop_module_css.d1d862bb3b3a826e6368.js +1 -0
  28. package/dist-package/chunks/src_widgets_DirectReward_previewStyles_userDetailsPreviewMobile_module_css.b6bed87791445adb8886.js +1 -0
  29. package/dist-package/chunks/src_widgets_DirectReward_style_module_css.8d53a303557c3ca8323a.js +1 -0
  30. package/dist-package/chunks/src_widgets_ExitIntentHook_tsx.36222875fcd0408c040e.js +1 -0
  31. package/dist-package/chunks/src_widgets_STW_config_ts.a12b07b7f62eb0ea6dc0.js +1 -0
  32. package/dist-package/chunks/src_widgets_STW_index_tsx.e6bce54b3f841b9f2113.js +2 -0
  33. package/dist-package/chunks/src_widgets_STW_previewStyles_thankyouPreviewDesktop_module_css.eda5e42e4f6cd9d87904.js +1 -0
  34. package/dist-package/chunks/src_widgets_STW_previewStyles_thankyouPreviewMobile_module_css.2da674c296feaef1b037.js +1 -0
  35. package/dist-package/chunks/src_widgets_STW_previewStyles_userInputsPreviewDesktop_module_css.ea588b3bebcbf4eccf95.js +1 -0
  36. package/dist-package/chunks/src_widgets_STW_previewStyles_userInputsPreviewMobile_module_css.dc4596a5b41427fae2e2.js +1 -0
  37. package/dist-package/chunks/src_widgets_STW_previewStyles_wheelPreviewDesktop_module_css.8b9735c97d5240afc20a.js +1 -0
  38. package/dist-package/chunks/src_widgets_STW_previewStyles_wheelPreviewMobile_module_css.66ddd61f1aedef0ecaa0.js +1 -0
  39. package/dist-package/chunks/src_widgets_STW_stw1_tsx.e62b308fba62beb29793.js +1 -0
  40. package/dist-package/chunks/src_widgets_STW_stw2Components_wheelDesign_tsx.925c7d3dd11bc361199d.js +2 -0
  41. package/dist-package/chunks/src_widgets_STW_stw2Pages_couponDetails_tsx.aa4f9803222126c1d645.js +2 -0
  42. package/dist-package/chunks/src_widgets_STW_stw2Pages_style_module_css.3a683c60c6678865aee1.js +1 -0
  43. package/dist-package/chunks/src_widgets_STW_stw2Pages_userDetails_tsx.da1c0b70a43507bcacd0.js +2 -0
  44. package/dist-package/chunks/src_widgets_STW_stw2Pages_wheel_tsx.a25f6eedaf43920b3f13.js +2 -0
  45. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_thankyouPreviewDesktop_module_css.4d86be690aa2ac02d42d.js +1 -0
  46. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_thankyouPreviewMobile_module_css.514e8bc036d20099217f.js +1 -0
  47. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_userInputsPreviewDesktop_module_css.7dcb9e7b063e981a2730.js +1 -0
  48. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_userInputsPreviewMobile_module_css.c2e5280360cd4298e0df.js +1 -0
  49. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_wheelPreviewDesktop_module_css.7aaac3771035b1929dca.js +1 -0
  50. package/dist-package/chunks/src_widgets_STW_stw2PreviewStyles_wheelPreviewMobile_module_css.e8042369ff79890e7ff4.js +1 -0
  51. package/dist-package/chunks/src_widgets_STW_style_module_css.dd14839c719d8ae26778.js +1 -0
  52. package/dist-package/chunks/src_widgets_ScratchCard_config_ts.a49cbd81b255752007b2.js +1 -0
  53. package/dist-package/chunks/src_widgets_ScratchCard_globalStyle_module_css.1844fdb9f244f7eea6a3.js +1 -0
  54. package/dist-package/chunks/src_widgets_ScratchCard_index_tsx.8e6339dbbe8791e2bbea.js +2 -0
  55. package/dist-package/chunks/src_widgets_ScratchCard_previewStyles_userDetailsPreviewDesktop_module_css.bf4e3d52d37c4a2c8653.js +1 -0
  56. package/dist-package/chunks/src_widgets_ScratchCard_previewStyles_userDetailsPreviewMobile_module_css.68bd5853e5a6f0136f54.js +1 -0
  57. package/dist-package/chunks/src_widgets_ShopifyForm_config_ts.ae68d20563321b24c42f.js +1 -0
  58. package/dist-package/chunks/src_widgets_ShopifyForm_index_tsx.7f33a3f0fffbd88444c0.js +1 -0
  59. package/dist-package/chunks/src_widgets_ShopifyForm_previewDesktop_module_css.f5bb8a66eec449599342.js +1 -0
  60. package/dist-package/chunks/src_widgets_ShopifyForm_previewMobile_module_css.84fab56fb812decfa88b.js +1 -0
  61. package/dist-package/chunks/src_widgets_ShopifyForm_style_module_css.93e042eb60d4e7a9969e.js +1 -0
  62. package/dist-package/chunks/src_widgets_SingleButtonRedirection_config_ts.b34f37a93d9f21ca12d2.js +1 -0
  63. package/dist-package/chunks/src_widgets_WebStories_config_ts.347332569990592c9215.js +1 -0
  64. package/dist-package/chunks/src_widgets_WebStories_index_css.82d92057971ad51334f8.js +1 -0
  65. package/dist-package/chunks/src_widgets_WebStories_index_tsx.03f74c2c52432896cce9.js +1 -0
  66. package/dist-package/chunks/src_widgets_WebStories_style_module_css.acd37b9a11117cfb851a.js +1 -0
  67. package/dist-package/chunks/src_widgets_index_tsx.d0409ffd2e3c285e9dd3.js +1 -0
  68. package/dist-package/index.css +31 -0
  69. package/dist-package/index.js +2 -0
  70. package/dist-package/src_components_UserDetailsV2_userDetailsV2_desktop_module_css.index.css +1 -0
  71. package/dist-package/src_components_UserDetailsV2_userDetailsV2_mobile_module_css.index.css +1 -0
  72. package/dist-package/src_components_UserDetailsV2_userDetailsV2_module_css.index.css +1 -0
  73. package/dist-package/src_components_checkbox_checkbox_module_css.index.css +1 -0
  74. package/dist-package/src_components_countryCodePicker_countriesDropdown_module_css.index.css +1 -0
  75. package/dist-package/src_components_couponDetails_couponPreviewDesktop_module_css.index.css +1 -0
  76. package/dist-package/src_components_couponDetails_couponPreviewMobile_module_css.index.css +1 -0
  77. package/dist-package/src_components_couponDetails_coupon_module_css.index.css +1 -0
  78. package/dist-package/src_components_inputComponents_Dropdown_module_css.index.css +1 -0
  79. package/dist-package/src_components_selectedCountry_selectedCountryPreviewDesktop_module_css.index.css +1 -0
  80. package/dist-package/src_components_selectedCountry_selectedCountryPreviewMobile_module_css.index.css +1 -0
  81. package/dist-package/src_components_selectedCountry_selectedCountry_module_css.index.css +1 -0
  82. package/dist-package/src_widgets_CaptivateBanner_previewDesktop_module_css.index.css +1 -0
  83. package/dist-package/src_widgets_CaptivateBanner_previewMobile_module_css.index.css +1 -0
  84. package/dist-package/src_widgets_CaptivateBanner_style_module_css.index.css +1 -0
  85. package/dist-package/src_widgets_DirectReward_index_tsx.index.css +1 -0
  86. package/dist-package/src_widgets_DirectReward_previewStyles_thankYouPreviewDesktop_module_css.index.css +3 -0
  87. package/dist-package/src_widgets_DirectReward_previewStyles_thankYouPreviewMobile_module_css.index.css +3 -0
  88. package/dist-package/src_widgets_DirectReward_previewStyles_userDetailsPreviewDesktop_module_css.index.css +1 -0
  89. package/dist-package/src_widgets_DirectReward_previewStyles_userDetailsPreviewMobile_module_css.index.css +1 -0
  90. package/dist-package/src_widgets_DirectReward_style_module_css.index.css +1 -0
  91. package/dist-package/src_widgets_STW_index_tsx.index.css +2 -0
  92. package/dist-package/src_widgets_STW_previewStyles_thankyouPreviewDesktop_module_css.index.css +3 -0
  93. package/dist-package/src_widgets_STW_previewStyles_thankyouPreviewMobile_module_css.index.css +1 -0
  94. package/dist-package/src_widgets_STW_previewStyles_userInputsPreviewDesktop_module_css.index.css +3 -0
  95. package/dist-package/src_widgets_STW_previewStyles_userInputsPreviewMobile_module_css.index.css +1 -0
  96. package/dist-package/src_widgets_STW_previewStyles_wheelPreviewDesktop_module_css.index.css +3 -0
  97. package/dist-package/src_widgets_STW_previewStyles_wheelPreviewMobile_module_css.index.css +1 -0
  98. package/dist-package/src_widgets_STW_stw2Pages_style_module_css.index.css +1 -0
  99. package/dist-package/src_widgets_STW_stw2PreviewStyles_thankyouPreviewDesktop_module_css.index.css +3 -0
  100. package/dist-package/src_widgets_STW_stw2PreviewStyles_thankyouPreviewMobile_module_css.index.css +1 -0
  101. package/dist-package/src_widgets_STW_stw2PreviewStyles_userInputsPreviewDesktop_module_css.index.css +1 -0
  102. package/dist-package/src_widgets_STW_stw2PreviewStyles_userInputsPreviewMobile_module_css.index.css +1 -0
  103. package/dist-package/src_widgets_STW_stw2PreviewStyles_wheelPreviewDesktop_module_css.index.css +3 -0
  104. package/dist-package/src_widgets_STW_stw2PreviewStyles_wheelPreviewMobile_module_css.index.css +3 -0
  105. package/dist-package/src_widgets_STW_style_module_css.index.css +1 -0
  106. package/dist-package/src_widgets_ScratchCard_globalStyle_module_css.index.css +2 -0
  107. package/dist-package/src_widgets_ScratchCard_previewStyles_userDetailsPreviewDesktop_module_css.index.css +3 -0
  108. package/dist-package/src_widgets_ScratchCard_previewStyles_userDetailsPreviewMobile_module_css.index.css +3 -0
  109. package/dist-package/src_widgets_ShopifyForm_previewDesktop_module_css.index.css +1 -0
  110. package/dist-package/src_widgets_ShopifyForm_previewMobile_module_css.index.css +1 -0
  111. package/dist-package/src_widgets_ShopifyForm_style_module_css.index.css +1 -0
  112. package/dist-package/src_widgets_WebStories_index_css.index.css +1 -0
  113. package/dist-package/src_widgets_WebStories_index_tsx.index.css +3 -0
  114. package/dist-package/src_widgets_WebStories_style_module_css.index.css +1 -0
  115. package/package.json +17 -4
  116. package/.eslintrc +0 -22
  117. package/.eslintrc.js +0 -19
  118. package/.github/workflows/main.yml +0 -293
  119. package/.prettierignore +0 -13
  120. package/.prettierrc +0 -10
  121. package/cypress/apiHelper/endpoints.ts +0 -21
  122. package/cypress/apiHelper/executor.ts +0 -42
  123. package/cypress/e2e/bottomDrawer.cy.ts +0 -49
  124. package/cypress/e2e/directReward.cy.ts +0 -67
  125. package/cypress/e2e/scratchTheCard.cy.ts +0 -68
  126. package/cypress/e2e/stw.cy.ts +0 -82
  127. package/cypress/e2e/waRedirection.cy.ts +0 -46
  128. package/cypress/fixtures/payloads.ts +0 -330
  129. package/cypress/support/commands.ts +0 -37
  130. package/cypress/support/e2e.ts +0 -20
  131. package/cypress.staging.config.ts +0 -23
  132. package/jsconfig.json +0 -6
  133. package/localtest.sh +0 -10
  134. package/log-server.js +0 -86
  135. package/postcss.config.js +0 -8
  136. package/src/Globals.d.ts +0 -2
  137. package/src/assets/lottie/santa.json +0 -11722
  138. package/src/assets/svg/CalendarClockIcon.tsx +0 -30
  139. package/src/assets/svg/CalendarIcon.tsx +0 -24
  140. package/src/assets/svg/CheckIcon.tsx +0 -17
  141. package/src/assets/svg/ChevronIcon.tsx +0 -21
  142. package/src/assets/svg/Close.tsx +0 -39
  143. package/src/assets/svg/Confetti.tsx +0 -140
  144. package/src/assets/svg/Copy.tsx +0 -26
  145. package/src/assets/svg/DropdownCheckIcon.tsx +0 -35
  146. package/src/assets/svg/ErrorIcon.tsx +0 -27
  147. package/src/assets/svg/RadioIcon.tsx +0 -25
  148. package/src/assets/svg/UncheckedCheckboxIcon.tsx +0 -28
  149. package/src/assets/svg/UncheckedRadioIcon.tsx +0 -26
  150. package/src/assets/svg/info.tsx +0 -30
  151. package/src/assets/svg/qrcode.svg +0 -14
  152. package/src/bootstrap.tsx +0 -8
  153. package/src/components/CtaCard/index.tsx +0 -37
  154. package/src/components/CtaCard/preview.module.css +0 -32
  155. package/src/components/CtaCard/style.module.css +0 -32
  156. package/src/components/EmailInput/emailInputBox.tsx +0 -95
  157. package/src/components/Fab/index.tsx +0 -224
  158. package/src/components/Fab/preview.module.css +0 -28
  159. package/src/components/Fab/style.module.css +0 -37
  160. package/src/components/Icons/Call.tsx +0 -26
  161. package/src/components/Icons/Cross.tsx +0 -24
  162. package/src/components/Icons/Gmail.tsx +0 -61
  163. package/src/components/Icons/Instagram.tsx +0 -60
  164. package/src/components/Icons/LiveChat.tsx +0 -43
  165. package/src/components/Icons/Messenger.tsx +0 -57
  166. package/src/components/Icons/Send.tsx +0 -22
  167. package/src/components/Icons/Whatsapp.tsx +0 -24
  168. package/src/components/Shimmer/index.tsx +0 -12
  169. package/src/components/Shimmer/style.module.css +0 -37
  170. package/src/components/SmsInput/smsInputBox.tsx +0 -135
  171. package/src/components/UserDetailsV2/userDetailsV2.desktop.module.css +0 -52
  172. package/src/components/UserDetailsV2/userDetailsV2.mobile.module.css +0 -52
  173. package/src/components/UserDetailsV2/userDetailsV2.module.css +0 -81
  174. package/src/components/UserDetailsV2/userDetailsV2.tsx +0 -527
  175. package/src/components/WhatsappInput/Spinner.tsx +0 -26
  176. package/src/components/WhatsappInput/whatsappInput.module.css +0 -106
  177. package/src/components/WhatsappInput/whatsappInputBox.tsx +0 -155
  178. package/src/components/WhatsappInput/whatsappInputPreviewDesktop.module.css +0 -71
  179. package/src/components/WhatsappInput/whatsappInputPreviewMobile.module.css +0 -65
  180. package/src/components/checkbox/checkbox.module.css +0 -19
  181. package/src/components/checkbox/checkbox.tsx +0 -88
  182. package/src/components/countryCodePicker/countriesDropdown.module.css +0 -77
  183. package/src/components/countryCodePicker/countriesDropdown.tsx +0 -81
  184. package/src/components/couponDetails/coupon.module.css +0 -208
  185. package/src/components/couponDetails/coupon.tsx +0 -210
  186. package/src/components/couponDetails/couponPreviewDesktop.module.css +0 -158
  187. package/src/components/couponDetails/couponPreviewMobile.module.css +0 -164
  188. package/src/components/index.ts +0 -3
  189. package/src/components/inputComponents/Checkbox.module.css +0 -197
  190. package/src/components/inputComponents/Checkbox.tsx +0 -85
  191. package/src/components/inputComponents/DatePicker.module.css +0 -565
  192. package/src/components/inputComponents/DatePicker.tsx +0 -278
  193. package/src/components/inputComponents/Dropdown.module.css +0 -796
  194. package/src/components/inputComponents/Dropdown.tsx +0 -630
  195. package/src/components/inputComponents/InputBox.module.css +0 -401
  196. package/src/components/inputComponents/InputBox.tsx +0 -209
  197. package/src/components/selectedCountry/selectedCountry.module.css +0 -76
  198. package/src/components/selectedCountry/selectedCountry.tsx +0 -76
  199. package/src/components/selectedCountry/selectedCountryPreviewDesktop.module.css +0 -56
  200. package/src/components/selectedCountry/selectedCountryPreviewMobile.module.css +0 -57
  201. package/src/components/userDetailsForm/RenderCustomFields.tsx +0 -333
  202. package/src/components/userDetailsForm/userDetailsForm.tsx +0 -675
  203. package/src/hooks/index.ts +0 -4
  204. package/src/hooks/useExitIntent.ts +0 -452
  205. package/src/hooks/useIsMobile.tsx +0 -21
  206. package/src/hooks/useMessageEvent.ts +0 -8
  207. package/src/hooks/useTriggeredIntentDetails.ts +0 -43
  208. package/src/hooks/useUrlListerner.ts +0 -30
  209. package/src/hooks/useWebSocketLogger.ts +0 -59
  210. package/src/hooks/useWindowEvent.ts +0 -8
  211. package/src/icons/copyIcon.tsx +0 -26
  212. package/src/icons/crossIconDesktop.tsx +0 -20
  213. package/src/icons/crossIconMobile.tsx +0 -20
  214. package/src/index.html +0 -30
  215. package/src/index.ts +0 -32
  216. package/src/index.tsx +0 -1
  217. package/src/repo/widgetRepo.ts +0 -21
  218. package/src/types/customFields.ts +0 -73
  219. package/src/utilities/cookie.ts +0 -70
  220. package/src/utilities/customFieldTypeMapping.ts +0 -67
  221. package/src/utilities/customFieldValidation.ts +0 -201
  222. package/src/utilities/encryption.ts +0 -21
  223. package/src/utilities/exitIntentUtils.ts +0 -31
  224. package/src/utilities/global.css +0 -11
  225. package/src/utilities/languageUtilities.ts +0 -235
  226. package/src/utilities/localRunner.js +0 -26
  227. package/src/utilities/localRunner.ts +0 -27
  228. package/src/utilities/localStorage.ts +0 -40
  229. package/src/utilities/script.tsx +0 -15
  230. package/src/utilities/stringUtils.ts +0 -5
  231. package/src/utilities/styleUtils.ts +0 -134
  232. package/src/utilities/variables.ts +0 -11
  233. package/src/utilities/widgetUtils.js +0 -342
  234. package/src/utilities/widgetUtils.ts +0 -313
  235. package/src/widgets/BottomDrawer/config.ts +0 -41
  236. package/src/widgets/BottomDrawer/index.tsx +0 -116
  237. package/src/widgets/BottomDrawer/modal.tsx +0 -286
  238. package/src/widgets/BottomDrawer/preview.module.css +0 -122
  239. package/src/widgets/BottomDrawer/previewMobile.module.css +0 -124
  240. package/src/widgets/BottomDrawer/style.module.css +0 -279
  241. package/src/widgets/CaptivateBanner/captivateBanner.tsx +0 -200
  242. package/src/widgets/CaptivateBanner/config.ts +0 -72
  243. package/src/widgets/CaptivateBanner/index.tsx +0 -204
  244. package/src/widgets/CaptivateBanner/previewDesktop.module.css +0 -51
  245. package/src/widgets/CaptivateBanner/previewMobile.module.css +0 -51
  246. package/src/widgets/CaptivateBanner/style.module.css +0 -77
  247. package/src/widgets/CaptivateBanner/utils.ts +0 -104
  248. package/src/widgets/CentrallyAlignedPopup/config.ts +0 -42
  249. package/src/widgets/CentrallyAlignedPopup/index.tsx +0 -109
  250. package/src/widgets/CentrallyAlignedPopup/modal.tsx +0 -269
  251. package/src/widgets/CentrallyAlignedPopup/preview.module.css +0 -153
  252. package/src/widgets/CentrallyAlignedPopup/previewMobile.module.css +0 -153
  253. package/src/widgets/CentrallyAlignedPopup/style.module.css +0 -283
  254. package/src/widgets/DirectReward/components/couponDetails.tsx +0 -265
  255. package/src/widgets/DirectReward/components/userDetails.tsx +0 -117
  256. package/src/widgets/DirectReward/config.ts +0 -186
  257. package/src/widgets/DirectReward/directReward.tsx +0 -350
  258. package/src/widgets/DirectReward/index.tsx +0 -579
  259. package/src/widgets/DirectReward/previewStyles/thankYouPreviewDesktop.module.css +0 -276
  260. package/src/widgets/DirectReward/previewStyles/thankYouPreviewMobile.module.css +0 -303
  261. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewDesktop.module.css +0 -511
  262. package/src/widgets/DirectReward/previewStyles/userDetailsPreviewMobile.module.css +0 -462
  263. package/src/widgets/DirectReward/style.module.css +0 -836
  264. package/src/widgets/ExitIntentHook.tsx +0 -28
  265. package/src/widgets/STW/api.ts +0 -70
  266. package/src/widgets/STW/components/svgFactory.tsx +0 -44
  267. package/src/widgets/STW/config.ts +0 -193
  268. package/src/widgets/STW/context.ts +0 -7
  269. package/src/widgets/STW/couponDetails.tsx +0 -121
  270. package/src/widgets/STW/index.tsx +0 -733
  271. package/src/widgets/STW/previewStyles/thankyouPreviewDesktop.module.css +0 -215
  272. package/src/widgets/STW/previewStyles/thankyouPreviewMobile.module.css +0 -205
  273. package/src/widgets/STW/previewStyles/userInputsPreviewDesktop.module.css +0 -732
  274. package/src/widgets/STW/previewStyles/userInputsPreviewMobile.module.css +0 -661
  275. package/src/widgets/STW/previewStyles/wheelPreviewDesktop.module.css +0 -498
  276. package/src/widgets/STW/previewStyles/wheelPreviewMobile.module.css +0 -497
  277. package/src/widgets/STW/stw1.tsx +0 -119
  278. package/src/widgets/STW/stw2Components/wheelDesign.tsx +0 -183
  279. package/src/widgets/STW/stw2Pages/couponDetails.tsx +0 -72
  280. package/src/widgets/STW/stw2Pages/stw2.tsx +0 -212
  281. package/src/widgets/STW/stw2Pages/style.module.css +0 -1226
  282. package/src/widgets/STW/stw2Pages/userDetails.tsx +0 -86
  283. package/src/widgets/STW/stw2Pages/wheel.tsx +0 -117
  284. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewDesktop.module.css +0 -835
  285. package/src/widgets/STW/stw2PreviewStyles/thankyouPreviewMobile.module.css +0 -787
  286. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewDesktop.module.css +0 -867
  287. package/src/widgets/STW/stw2PreviewStyles/userInputsPreviewMobile.module.css +0 -798
  288. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewDesktop.module.css +0 -572
  289. package/src/widgets/STW/stw2PreviewStyles/wheelPreviewMobile.module.css +0 -559
  290. package/src/widgets/STW/style.module.css +0 -901
  291. package/src/widgets/STW/userDetails.tsx +0 -150
  292. package/src/widgets/STW/utility.ts +0 -664
  293. package/src/widgets/STW/wheel.tsx +0 -304
  294. package/src/widgets/ScratchCard/ScratchOff/scratchOff.tsx +0 -157
  295. package/src/widgets/ScratchCard/config.ts +0 -152
  296. package/src/widgets/ScratchCard/globalStyle.module.css +0 -931
  297. package/src/widgets/ScratchCard/index.tsx +0 -546
  298. package/src/widgets/ScratchCard/modal.tsx +0 -225
  299. package/src/widgets/ScratchCard/preview.module.css +0 -250
  300. package/src/widgets/ScratchCard/previewMobile.module.css +0 -247
  301. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewDesktop.module.css +0 -537
  302. package/src/widgets/ScratchCard/previewStyles/userDetailsPreviewMobile.module.css +0 -463
  303. package/src/widgets/ScratchCard/style.module.css +0 -220
  304. package/src/widgets/ShopifyForm/config.ts +0 -168
  305. package/src/widgets/ShopifyForm/index.tsx +0 -214
  306. package/src/widgets/ShopifyForm/previewDesktop.module.css +0 -117
  307. package/src/widgets/ShopifyForm/previewMobile.module.css +0 -131
  308. package/src/widgets/ShopifyForm/shopifyForm.tsx +0 -445
  309. package/src/widgets/ShopifyForm/style.module.css +0 -161
  310. package/src/widgets/SingleButtonRedirection/config.ts +0 -47
  311. package/src/widgets/SingleButtonRedirection/index.tsx +0 -121
  312. package/src/widgets/WebStories/config.ts +0 -105
  313. package/src/widgets/WebStories/index.css +0 -3
  314. package/src/widgets/WebStories/index.tsx +0 -282
  315. package/src/widgets/WebStories/style.module.css +0 -26
  316. package/src/widgets/index.tsx +0 -3
  317. package/src/widgets/utility.ts +0 -31
  318. package/tsconfig.json +0 -12
  319. package/webpack.config.js +0 -239
@@ -1,630 +0,0 @@
1
- import React, { useState, useEffect, useRef } from 'react';
2
- import { ChevronIcon } from '../../assets/svg/ChevronIcon';
3
- import { DropdownCheckIcon } from '../../assets/svg/DropdownCheckIcon';
4
- import { RadioIcon } from '../../assets/svg/RadioIcon';
5
- import { UncheckedCheckboxIcon } from '../../assets/svg/UncheckedCheckboxIcon';
6
- import { UncheckedRadioIcon } from '../../assets/svg/UncheckedRadioIcon';
7
- import ErrorIcon from 'assets/svg/ErrorIcon';
8
-
9
- export interface DropdownOption {
10
- value: string;
11
- label: string;
12
- disabled?: boolean;
13
- }
14
-
15
- export interface DropdownProps {
16
- id?: string;
17
- value: string[];
18
- label?: string;
19
- onChange: (value: string[]) => void;
20
- options: DropdownOption[];
21
- placeholder?: string;
22
- disabled?: boolean;
23
- isRequired?: boolean;
24
- className?: string;
25
- error?: string;
26
- onValidate?: (value: string[]) => string | null;
27
- onBlur?: () => void;
28
- searchable?: boolean;
29
- maxHeight?: number;
30
- closeOnSelect?: boolean;
31
- showSelectAll?: boolean;
32
- maxSelectedDisplay?: number;
33
- isMultiSelect?: boolean;
34
- customTrigger?: (
35
- selectedItems: DropdownOption[],
36
- isOpen: boolean,
37
- ) => React.ReactNode;
38
- isPreview?: boolean;
39
- fontColour?: string;
40
- }
41
-
42
- interface DropdownState {
43
- isOpen: boolean;
44
- isFocused: boolean;
45
- searchTerm: string;
46
- dropdownPosition: 'bottom' | 'top';
47
- }
48
-
49
- interface DropdownComputedValues {
50
- hasValue: boolean;
51
- shouldFloatLabel: boolean;
52
- shouldCloseOnSelect: boolean;
53
- shouldShowSelectAll: boolean;
54
- selectedOptions: DropdownOption[];
55
- filteredOptions: DropdownOption[];
56
- isAllSelected: boolean;
57
- }
58
-
59
- const useDropdownState = (initialState?: Partial<DropdownState>) => {
60
- const [state, setState] = useState<DropdownState>({
61
- isOpen: false,
62
- isFocused: false,
63
- searchTerm: '',
64
- dropdownPosition: 'bottom',
65
- ...initialState,
66
- });
67
-
68
- const updateState = (updates: Partial<DropdownState>) => {
69
- setState(prev => ({ ...prev, ...updates }));
70
- };
71
-
72
- const resetState = () => {
73
- setState({
74
- isOpen: false,
75
- isFocused: false,
76
- searchTerm: '',
77
- dropdownPosition: 'bottom',
78
- });
79
- };
80
-
81
- return { state, updateState, resetState };
82
- };
83
-
84
- const useDropdownComputedValues = (
85
- options: DropdownOption[],
86
- value: string[],
87
- isMultiSelect: boolean,
88
- closeOnSelect: boolean | undefined,
89
- showSelectAll: boolean,
90
- searchTerm: string,
91
- searchable: boolean,
92
- isOpen: boolean,
93
- isFocused: boolean,
94
- ): DropdownComputedValues => {
95
- const selectedOptions = options.filter(option =>
96
- value.includes(option.value),
97
- );
98
-
99
- const filteredOptions =
100
- !searchable || !searchTerm
101
- ? options
102
- : options.filter(option =>
103
- option.label.toLowerCase().includes(searchTerm.toLowerCase()),
104
- );
105
-
106
- const shouldCloseOnSelect =
107
- closeOnSelect !== undefined ? closeOnSelect : !isMultiSelect;
108
-
109
- const shouldShowSelectAll = showSelectAll && isMultiSelect;
110
-
111
- const isAllSelected =
112
- filteredOptions.length > 0 &&
113
- filteredOptions
114
- .filter(opt => !opt.disabled)
115
- .every(option => value.includes(option.value));
116
-
117
- const hasValue = value.length > 0;
118
- const shouldFloatLabel = isFocused || hasValue || isOpen;
119
-
120
- return {
121
- hasValue,
122
- shouldFloatLabel,
123
- shouldCloseOnSelect,
124
- shouldShowSelectAll,
125
- selectedOptions,
126
- filteredOptions,
127
- isAllSelected,
128
- };
129
- };
130
-
131
- export const Dropdown: React.FC<DropdownProps> = ({
132
- value = [],
133
- onChange,
134
- options = [],
135
- placeholder = 'Select options',
136
- disabled = false,
137
- isRequired = false,
138
- className = '',
139
- label,
140
- error,
141
- id,
142
- onBlur,
143
- searchable = false,
144
- maxHeight = 200,
145
- closeOnSelect,
146
- showSelectAll = true,
147
- maxSelectedDisplay = 2,
148
- isMultiSelect = true,
149
- customTrigger,
150
- isPreview = false,
151
- fontColour,
152
- }) => {
153
- const { state, updateState, resetState } = useDropdownState();
154
- const { isOpen, isFocused, searchTerm, dropdownPosition } = state;
155
-
156
- const [currentStyle, setCurrentStyle] = useState<Record<
157
- string,
158
- string
159
- > | null>(null);
160
- const dropdownRef = useRef<HTMLDivElement>(null);
161
- const inputRef = useRef<HTMLInputElement>(null);
162
-
163
- const computedValues = useDropdownComputedValues(
164
- options,
165
- value,
166
- isMultiSelect,
167
- closeOnSelect,
168
- showSelectAll,
169
- searchTerm,
170
- searchable,
171
- isOpen,
172
- isFocused,
173
- );
174
-
175
- const {
176
- selectedOptions,
177
- filteredOptions,
178
- shouldCloseOnSelect,
179
- shouldShowSelectAll,
180
- isAllSelected,
181
- hasValue,
182
- shouldFloatLabel,
183
- } = computedValues;
184
-
185
- useEffect(() => {
186
- import('./Dropdown.module.css').then(stylesModule => {
187
- setCurrentStyle(stylesModule.default);
188
- });
189
- }, []);
190
-
191
- useEffect(() => {
192
- const handleClickOutside = (event: MouseEvent) => {
193
- if (
194
- dropdownRef.current &&
195
- !dropdownRef.current.contains(event.target as Node)
196
- ) {
197
- resetState();
198
- onBlur?.();
199
- }
200
- };
201
-
202
- const handleResize = () => {
203
- if (isOpen && dropdownRef.current) {
204
- // Recalculate position on resize
205
- const rect = dropdownRef.current.getBoundingClientRect();
206
- const viewportHeight = window.innerHeight;
207
- const spaceBelow = viewportHeight - rect.bottom;
208
- const spaceAbove = rect.top;
209
- const estimatedDropdownHeight = Math.min(maxHeight + 80, 320);
210
- const minSpaceBuffer = 20;
211
-
212
- const newDropdownPosition =
213
- spaceBelow < estimatedDropdownHeight + minSpaceBuffer &&
214
- spaceAbove > estimatedDropdownHeight + minSpaceBuffer
215
- ? 'top'
216
- : 'bottom';
217
-
218
- updateState({ dropdownPosition: newDropdownPosition });
219
- }
220
- };
221
-
222
- document.addEventListener('mousedown', handleClickOutside);
223
- window.addEventListener('resize', handleResize);
224
-
225
- return () => {
226
- document.removeEventListener('mousedown', handleClickOutside);
227
- window.removeEventListener('resize', handleResize);
228
- };
229
- }, [onBlur, resetState, isOpen, maxHeight, updateState]);
230
-
231
- const handleToggle = () => {
232
- if (disabled) return;
233
-
234
- const newIsOpen = !isOpen;
235
-
236
- // Calculate dropdown position when opening
237
- let newDropdownPosition: 'bottom' | 'top' = 'bottom';
238
-
239
- if (newIsOpen && dropdownRef.current) {
240
- const rect = dropdownRef.current.getBoundingClientRect();
241
- const viewportHeight = window.innerHeight;
242
- const spaceBelow = viewportHeight - rect.bottom;
243
- const spaceAbove = rect.top;
244
- const estimatedDropdownHeight = Math.min(maxHeight + 80, 320); // Adding buffer for search/select all/padding
245
- const minSpaceBuffer = 20; // Minimum space to keep from viewport edge
246
-
247
- // If there's not enough space below but enough space above, open upward
248
- if (
249
- spaceBelow < estimatedDropdownHeight + minSpaceBuffer &&
250
- spaceAbove > estimatedDropdownHeight + minSpaceBuffer
251
- ) {
252
- newDropdownPosition = 'top';
253
- }
254
- }
255
-
256
- updateState({
257
- isOpen: newIsOpen,
258
- isFocused: newIsOpen,
259
- dropdownPosition: newDropdownPosition,
260
- });
261
-
262
- if (newIsOpen && searchable) {
263
- setTimeout(() => inputRef.current?.focus(), 0);
264
- }
265
- };
266
-
267
- const handleOptionClick = (optionValue: string) => {
268
- const option = options.find(opt => opt.value === optionValue);
269
- if (option?.disabled) return;
270
-
271
- const newValue = isMultiSelect
272
- ? value.includes(optionValue)
273
- ? value.filter(v => v !== optionValue)
274
- : [...value, optionValue]
275
- : value.includes(optionValue)
276
- ? []
277
- : [optionValue];
278
-
279
- onChange(newValue);
280
-
281
- if (
282
- !isMultiSelect ||
283
- (shouldCloseOnSelect && !value.includes(optionValue))
284
- ) {
285
- resetState();
286
- onBlur?.();
287
- }
288
- };
289
-
290
- const handleSelectAll = () => {
291
- const availableOptions = filteredOptions.filter(option => !option.disabled);
292
-
293
- if (isAllSelected) {
294
- const newValue = value.filter(
295
- v => !availableOptions.some(option => option.value === v),
296
- );
297
- onChange(newValue);
298
- } else {
299
- const newValues = availableOptions.map(option => option.value);
300
- const combinedValue = Array.from(new Set([...value, ...newValues]));
301
- onChange(combinedValue);
302
- }
303
- };
304
-
305
- const handleClearAll = () => {
306
- onChange([]);
307
- };
308
-
309
- const handleRemoveItem = (optionValue: string, event: React.MouseEvent) => {
310
- event.stopPropagation();
311
- const newValue = value.filter(v => v !== optionValue);
312
- onChange(newValue);
313
- };
314
-
315
- const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {
316
- updateState({ searchTerm: e.target.value });
317
- };
318
-
319
- const handleKeyDown = (e: React.KeyboardEvent) => {
320
- if (e.key === 'Escape') {
321
- resetState();
322
- } else if (e.key === 'Backspace' && searchTerm === '' && value.length > 0) {
323
- const newValue = value.slice(0, -1);
324
- onChange(newValue);
325
- }
326
- };
327
-
328
- if (!currentStyle) {
329
- return <div style={{ height: '80px' }} />;
330
- }
331
-
332
- const wrapperClasses = [
333
- currentStyle['bik-dropdown__inputWrapper'],
334
- (isFocused || isOpen) &&
335
- currentStyle['bik-dropdown__inputWrapper--focused'],
336
- error && currentStyle['bik-dropdown__inputWrapper--error'],
337
- disabled && currentStyle['bik-dropdown__inputWrapper--disabled'],
338
- isOpen && currentStyle['bik-dropdown__inputWrapper--open'],
339
- hasValue && currentStyle['bik-dropdown__inputWrapper--hasSelectedItems'],
340
- ]
341
- .filter(Boolean)
342
- .join(' ');
343
-
344
- const labelClasses = [
345
- currentStyle['bik-dropdown__label'],
346
- shouldFloatLabel && currentStyle['bik-dropdown__label--floated'],
347
- error && currentStyle['bik-dropdown__label--error'],
348
- disabled && currentStyle['bik-dropdown__label--disabled'],
349
- hasValue && currentStyle['bik-dropdown__label--hasValue'],
350
- hasValue && currentStyle['bik-dropdown__label--hasSelectedItems'],
351
- ]
352
- .filter(Boolean)
353
- .join(' ');
354
-
355
- const wrapperStyle = {
356
- borderColor: error ? '#b92321' : '#e0e0e0',
357
- ...(fontColour ? { color: fontColour } : {}),
358
- } as React.CSSProperties;
359
-
360
- return (
361
- <div
362
- className={`${currentStyle['bik-dropdown__container']} ${className}`}
363
- ref={dropdownRef}
364
- data-mode={isPreview ? 'preview' : 'default'}
365
- >
366
- <div className={wrapperClasses} style={wrapperStyle}>
367
- <div
368
- className={currentStyle['bik-dropdown__input']}
369
- onClick={handleToggle}
370
- style={fontColour ? { color: fontColour } : undefined}
371
- >
372
- {customTrigger ? (
373
- customTrigger(selectedOptions, isOpen)
374
- ) : searchable && isOpen ? (
375
- <div className={currentStyle?.['bik-dropdown__searchContainer']}>
376
- {value.length === 0 ? (
377
- <span
378
- className={currentStyle?.['bik-dropdown__placeholder']}
379
- style={fontColour ? { color: fontColour } : undefined}
380
- >
381
- {placeholder}
382
- </span>
383
- ) : !isMultiSelect && value.length === 1 ? (
384
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
385
- <span
386
- className={
387
- currentStyle?.['bik-dropdown__singleSelectedItem']
388
- }
389
- style={fontColour ? { color: fontColour } : undefined}
390
- >
391
- {selectedOptions[0]?.label}
392
- </span>
393
- </div>
394
- ) : value.length <= maxSelectedDisplay ? (
395
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
396
- {selectedOptions.map(option => (
397
- <span
398
- key={option.value}
399
- className={currentStyle?.['bik-dropdown__selectedItem']}
400
- style={fontColour ? { color: fontColour } : undefined}
401
- >
402
- {option.label}
403
- <button
404
- type="button"
405
- className={currentStyle?.['bik-dropdown__removeButton']}
406
- onClick={e => handleRemoveItem(option.value, e)}
407
- disabled={disabled}
408
- >
409
- ×
410
- </button>
411
- </span>
412
- ))}
413
- </div>
414
- ) : (
415
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
416
- <span
417
- className={currentStyle?.['bik-dropdown__selectedCount']}
418
- >
419
- {value.length} items selected
420
- </span>
421
- {value.length > 0 && (
422
- <button
423
- type="button"
424
- className={currentStyle?.['bik-dropdown__clearButton']}
425
- onClick={e => {
426
- e.stopPropagation();
427
- handleClearAll();
428
- }}
429
- disabled={disabled}
430
- >
431
- Clear all
432
- </button>
433
- )}
434
- </div>
435
- )}
436
- <input
437
- id={id}
438
- ref={inputRef}
439
- type="text"
440
- value={searchTerm}
441
- onChange={handleSearchChange}
442
- onKeyDown={handleKeyDown}
443
- placeholder="Search..."
444
- className={currentStyle?.['bik-dropdown__search']}
445
- style={fontColour ? { color: fontColour } : undefined}
446
- />
447
- </div>
448
- ) : value.length === 0 ? (
449
- <span
450
- className={currentStyle?.['bik-dropdown__placeholder']}
451
- style={fontColour ? { color: fontColour } : undefined}
452
- >
453
- {placeholder}
454
- </span>
455
- ) : !isMultiSelect && value.length === 1 ? (
456
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
457
- <span
458
- className={currentStyle?.['bik-dropdown__singleSelectedItem']}
459
- style={fontColour ? { color: fontColour } : undefined}
460
- >
461
- {selectedOptions[0]?.label}
462
- </span>
463
- </div>
464
- ) : value.length <= maxSelectedDisplay ? (
465
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
466
- {selectedOptions.map(option => (
467
- <span
468
- key={option.value}
469
- className={currentStyle?.['bik-dropdown__selectedItem']}
470
- style={fontColour ? { color: fontColour } : undefined}
471
- >
472
- {option.label}
473
- <button
474
- type="button"
475
- className={currentStyle?.['bik-dropdown__removeButton']}
476
- onClick={e => handleRemoveItem(option.value, e)}
477
- disabled={disabled}
478
- >
479
- ×
480
- </button>
481
- </span>
482
- ))}
483
- </div>
484
- ) : (
485
- <div className={currentStyle?.['bik-dropdown__selectedItems']}>
486
- <span className={currentStyle?.['bik-dropdown__selectedCount']}>
487
- {value.length} items selected
488
- </span>
489
- {value.length > 0 && (
490
- <button
491
- type="button"
492
- className={currentStyle?.['bik-dropdown__clearButton']}
493
- onClick={e => {
494
- e.stopPropagation();
495
- handleClearAll();
496
- }}
497
- disabled={disabled}
498
- >
499
- Clear all
500
- </button>
501
- )}
502
- </div>
503
- )}
504
- </div>
505
- {label && (
506
- <div className={labelClasses}>
507
- {label}
508
- {isRequired && (
509
- <span className={currentStyle['bik-dropdown__required']}>*</span>
510
- )}
511
- </div>
512
- )}
513
- <div className={currentStyle['bik-dropdown__icon']}>
514
- <ChevronIcon
515
- className={`${currentStyle['bik-dropdown__chevron']} ${
516
- isOpen ? currentStyle['bik-dropdown__chevron--open'] : ''
517
- }`}
518
- />
519
- </div>
520
- </div>
521
-
522
- {isOpen && (
523
- <div
524
- className={`${currentStyle['bik-dropdown__options']} ${
525
- dropdownPosition === 'top'
526
- ? currentStyle['bik-dropdown__options--top']
527
- : ''
528
- }`}
529
- style={{ maxHeight }}
530
- >
531
- {searchable && (
532
- <div className={currentStyle?.['bik-dropdown__searchWrapper']}>
533
- <input
534
- type="text"
535
- value={searchTerm}
536
- onChange={handleSearchChange}
537
- onKeyDown={handleKeyDown}
538
- placeholder="Search options..."
539
- className={currentStyle?.['bik-dropdown__searchInput']}
540
- />
541
- </div>
542
- )}
543
- {shouldShowSelectAll &&
544
- filteredOptions.filter(opt => !opt.disabled).length > 1 && (
545
- <div className={currentStyle?.['bik-dropdown__selectAllWrapper']}>
546
- <div
547
- className={`${currentStyle?.['bik-dropdown__option']} ${currentStyle?.['bik-dropdown__selectAllOption']}`}
548
- onClick={handleSelectAll}
549
- style={fontColour ? { color: fontColour } : undefined}
550
- >
551
- <div className={currentStyle?.['bik-dropdown__checkbox']}>
552
- {isAllSelected ? (
553
- <DropdownCheckIcon />
554
- ) : (
555
- <UncheckedCheckboxIcon />
556
- )}
557
- </div>
558
- <span style={fontColour ? { color: fontColour } : undefined}>
559
- {isAllSelected ? 'Deselect All' : 'Select All'}
560
- </span>
561
- </div>
562
- </div>
563
- )}
564
- <div className={currentStyle['bik-dropdown__optionsList']}>
565
- {filteredOptions.length === 0 ? (
566
- <div className={currentStyle?.['bik-dropdown__noOptions']}>
567
- No options found
568
- </div>
569
- ) : (
570
- filteredOptions.map(option => (
571
- <div
572
- key={option.value}
573
- className={`${currentStyle?.['bik-dropdown__option']} ${
574
- value.includes(option.value)
575
- ? currentStyle?.['bik-dropdown__option--selected']
576
- : ''
577
- } ${
578
- option.disabled
579
- ? currentStyle?.['bik-dropdown__option--disabled']
580
- : ''
581
- }`}
582
- onClick={() => handleOptionClick(option.value)}
583
- style={fontColour ? { color: fontColour } : undefined}
584
- >
585
- <div
586
- className={
587
- isMultiSelect
588
- ? currentStyle?.['bik-dropdown__checkbox']
589
- : currentStyle?.['bik-dropdown__radio']
590
- }
591
- >
592
- {isMultiSelect ? (
593
- value.includes(option.value) ? (
594
- <DropdownCheckIcon />
595
- ) : (
596
- <UncheckedCheckboxIcon />
597
- )
598
- ) : value.includes(option.value) ? (
599
- <RadioIcon />
600
- ) : (
601
- <UncheckedRadioIcon />
602
- )}
603
- </div>
604
- <span
605
- className={currentStyle?.['bik-dropdown__optionLabel']}
606
- style={fontColour ? { color: fontColour } : undefined}
607
- >
608
- {option.label}
609
- </span>
610
- </div>
611
- ))
612
- )}
613
- </div>
614
- </div>
615
- )}
616
-
617
- {error && (
618
- <div
619
- className={currentStyle['bik-dropdown__error']}
620
- style={{ display: 'flex', alignItems: 'center' }}
621
- >
622
- <div className={currentStyle['bik-dropdown__errorIcon']}>
623
- <ErrorIcon size={12} />
624
- </div>
625
- {error}
626
- </div>
627
- )}
628
- </div>
629
- );
630
- };