@nuskin/foundation-ui-components 1.33.0-1253-feature.3 → 2.0.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 (371) hide show
  1. package/dist/index.d.mts +1221 -0
  2. package/dist/index.d.ts +1221 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/index.mjs +1 -0
  6. package/dist/index.mjs.map +1 -0
  7. package/package.json +33 -10
  8. package/src/common/accordion/NsAccordion.tsx +0 -82
  9. package/src/common/accordion/NsAccordionHeader.tsx +0 -85
  10. package/src/common/accordion/NsAccordionItem.tsx +0 -65
  11. package/src/common/accordion/NsCollapse.tsx +0 -121
  12. package/src/common/accordion/NsToggleSection.tsx +0 -50
  13. package/src/common/accordion/ToggleSection.styled.tsx +0 -32
  14. package/src/common/accordion/colorMap.ts +0 -60
  15. package/src/common/accordion/enums.ts +0 -18
  16. package/src/common/accordion/index.ts +0 -7
  17. package/src/common/accordion/specs/NsAccordion.spec.tsx +0 -183
  18. package/src/common/accordion/specs/NsAccordionHeader.spec.tsx +0 -172
  19. package/src/common/accordion/specs/NsAccordionItem.spec.tsx +0 -79
  20. package/src/common/accordion/specs/NsCollapse.spec.tsx +0 -130
  21. package/src/common/accordion/specs/NsToggleSection.spec.tsx +0 -74
  22. package/src/common/accordion/stories/NsAccordion.stories.tsx +0 -65
  23. package/src/common/accordion/stories/NsAccordionHeader.stories.tsx +0 -44
  24. package/src/common/accordion/stories/NsAccordionItem.stories.tsx +0 -48
  25. package/src/common/accordion/stories/NsCollapse.stories.tsx +0 -53
  26. package/src/common/accordion/stories/NsToggleSection.stories.tsx +0 -27
  27. package/src/common/accordion/stories/data.tsx +0 -145
  28. package/src/common/accordion/types.d.ts +0 -90
  29. package/src/common/alert/Header.tsx +0 -29
  30. package/src/common/alert/NsAlert.spec.tsx +0 -167
  31. package/src/common/alert/NsAlert.stories.tsx +0 -45
  32. package/src/common/alert/NsAlert.styled.tsx +0 -114
  33. package/src/common/alert/NsAlert.tsx +0 -93
  34. package/src/common/alert/index.ts +0 -2
  35. package/src/common/alert/types.d.ts +0 -45
  36. package/src/common/auth-dropdown/NsAuthDropdown.spec.tsx +0 -54
  37. package/src/common/auth-dropdown/NsAuthDropdown.stories.tsx +0 -25
  38. package/src/common/auth-dropdown/NsAuthDropdown.styled.ts +0 -120
  39. package/src/common/auth-dropdown/NsAuthDropdown.tsx +0 -72
  40. package/src/common/auth-dropdown/index.ts +0 -2
  41. package/src/common/auth-dropdown/types.d.ts +0 -11
  42. package/src/common/autocomplete/NsAutocomplete.spec.tsx +0 -91
  43. package/src/common/autocomplete/NsAutocomplete.styled.tsx +0 -24
  44. package/src/common/autocomplete/NsAutocomplete.tsx +0 -225
  45. package/src/common/autocomplete/helper/LineLoader.tsx +0 -38
  46. package/src/common/autocomplete/helper/RecentClearAll.tsx +0 -43
  47. package/src/common/autocomplete/helper/SeeMoreButton.tsx +0 -68
  48. package/src/common/autocomplete/helper/index.ts +0 -4
  49. package/src/common/autocomplete/helper/renderGroupName.tsx +0 -26
  50. package/src/common/autocomplete/index.ts +0 -2
  51. package/src/common/autocomplete/mock/Mock.styled.tsx +0 -23
  52. package/src/common/autocomplete/mock/MockData.ts +0 -89
  53. package/src/common/autocomplete/mock/MockUI.tsx +0 -26
  54. package/src/common/autocomplete/stories/NoCloseAutoComplete.tsx +0 -49
  55. package/src/common/autocomplete/stories/NsAutocomplete.stories.tsx +0 -78
  56. package/src/common/autocomplete/stories/RenderAutoComplete.tsx +0 -60
  57. package/src/common/autocomplete/types.d.ts +0 -67
  58. package/src/common/banner/NsBanner.spec.tsx +0 -28
  59. package/src/common/banner/NsBanner.stories.tsx +0 -47
  60. package/src/common/banner/NsBanner.styled.tsx +0 -24
  61. package/src/common/banner/NsBanner.tsx +0 -32
  62. package/src/common/banner/index.ts +0 -2
  63. package/src/common/banner/types.d.ts +0 -14
  64. package/src/common/brand-components/NsBrand.stories.tsx +0 -26
  65. package/src/common/brand-components/NsBrandComponent.spec.tsx +0 -47
  66. package/src/common/brand-components/NsBrandComponent.tsx +0 -33
  67. package/src/common/brand-components/NsBrandContainer.styled.tsx +0 -10
  68. package/src/common/brand-components/icons/Logo.spec.tsx +0 -84
  69. package/src/common/brand-components/icons/NSLogoHorizontal.tsx +0 -70
  70. package/src/common/brand-components/icons/NSLogoMark.tsx +0 -39
  71. package/src/common/brand-components/icons/NSLogoPoweredBy.tsx +0 -103
  72. package/src/common/brand-components/icons/NSLogoStacked.tsx +0 -57
  73. package/src/common/brand-components/icons/NSWordMark.tsx +0 -60
  74. package/src/common/brand-components/index.ts +0 -2
  75. package/src/common/brand-components/types.d.ts +0 -11
  76. package/src/common/breadcrumb/NsBreadcrumb.spec.tsx +0 -28
  77. package/src/common/breadcrumb/NsBreadcrumb.stories.tsx +0 -39
  78. package/src/common/breadcrumb/NsBreadcrumb.styled.tsx +0 -36
  79. package/src/common/breadcrumb/NsBreadcrumb.tsx +0 -85
  80. package/src/common/breadcrumb/data.ts +0 -10
  81. package/src/common/breadcrumb/index.ts +0 -2
  82. package/src/common/breadcrumb/types.d.ts +0 -14
  83. package/src/common/button/NsButton.spec.tsx +0 -94
  84. package/src/common/button/NsButton.stories.tsx +0 -118
  85. package/src/common/button/NsButton.styled.tsx +0 -57
  86. package/src/common/button/NsButton.tsx +0 -48
  87. package/src/common/button/__snapshots__/NsButton.spec.tsx.snap +0 -120
  88. package/src/common/button/helper.ts +0 -84
  89. package/src/common/button/index.ts +0 -2
  90. package/src/common/button/types.d.ts +0 -26
  91. package/src/common/card/CardButton.tsx +0 -58
  92. package/src/common/card/NsAwardCard.tsx +0 -71
  93. package/src/common/card/NsBgCard.tsx +0 -26
  94. package/src/common/card/NsBrandCard.tsx +0 -88
  95. package/src/common/card/NsBrandLogo.tsx +0 -16
  96. package/src/common/card/NsBrandWrapper.tsx +0 -25
  97. package/src/common/card/NsCheckoutCard.tsx +0 -107
  98. package/src/common/card/NsHeroCardLevel1.tsx +0 -105
  99. package/src/common/card/NsHeroCardLevel2.tsx +0 -95
  100. package/src/common/card/NsIconText.tsx +0 -165
  101. package/src/common/card/NsLargeCard.tsx +0 -108
  102. package/src/common/card/NsMediumCard.tsx +0 -110
  103. package/src/common/card/NsPost.tsx +0 -78
  104. package/src/common/card/NsSmallFullCard.tsx +0 -93
  105. package/src/common/card/NsXLargeCard.tsx +0 -89
  106. package/src/common/card/cardSizes.ts +0 -12
  107. package/src/common/card/fixtures/ImageData1.ts +0 -38
  108. package/src/common/card/fixtures/ImageData2.ts +0 -38
  109. package/src/common/card/index.ts +0 -15
  110. package/src/common/card/specs/BrandLogo.spec.tsx +0 -13
  111. package/src/common/card/specs/NsAwardCard.spec.tsx +0 -29
  112. package/src/common/card/specs/NsBgCard.spec.tsx +0 -23
  113. package/src/common/card/specs/NsBrandCard.spec.tsx +0 -84
  114. package/src/common/card/specs/NsCheckoutCard.spec.tsx +0 -39
  115. package/src/common/card/specs/NsHeroCardLevel1.spec.tsx +0 -39
  116. package/src/common/card/specs/NsHeroCardLevel2.spec.tsx +0 -49
  117. package/src/common/card/specs/NsIconText.spec.tsx +0 -25
  118. package/src/common/card/specs/NsLargeCard.spec.tsx +0 -47
  119. package/src/common/card/specs/NsMediumCard.spec.tsx +0 -51
  120. package/src/common/card/specs/NsPost.spec.tsx +0 -28
  121. package/src/common/card/specs/NsSmallFullCard.spec.tsx +0 -47
  122. package/src/common/card/specs/NsXLargeCard.spec.tsx +0 -47
  123. package/src/common/card/stories/NsAwardCard.stories.tsx +0 -21
  124. package/src/common/card/stories/NsBrandCard.stories.tsx +0 -32
  125. package/src/common/card/stories/NsCheckoutCard.stories.tsx +0 -23
  126. package/src/common/card/stories/NsHeroCardLevel1.stories.tsx +0 -30
  127. package/src/common/card/stories/NsHeroCardLevel2.stories.tsx +0 -29
  128. package/src/common/card/stories/NsIconText.stories.tsx +0 -18
  129. package/src/common/card/stories/NsLargeCard.stories.tsx +0 -32
  130. package/src/common/card/stories/NsMediumCard.stories.tsx +0 -34
  131. package/src/common/card/stories/NsPost.stories.tsx +0 -20
  132. package/src/common/card/stories/NsSmallFullCard.stories.tsx +0 -31
  133. package/src/common/card/stories/NsXLargeCard.stories.tsx +0 -32
  134. package/src/common/card/stories/data.ts +0 -43
  135. package/src/common/card/types.d.ts +0 -25
  136. package/src/common/carousal/CarousalControl.tsx +0 -47
  137. package/src/common/carousal/IconWrapper.tsx +0 -33
  138. package/src/common/carousal/NsCarousal.tsx +0 -65
  139. package/src/common/carousal/NsScrollingCarousal.tsx +0 -60
  140. package/src/common/carousal/RenderBrand.tsx +0 -20
  141. package/src/common/carousal/index.ts +0 -5
  142. package/src/common/carousal/slickSetting.ts +0 -61
  143. package/src/common/carousal/specs/Chevron.spec.tsx +0 -10
  144. package/src/common/carousal/specs/NsCarousal.spec.tsx +0 -112
  145. package/src/common/carousal/specs/NsScrollingCarousal.spec.tsx +0 -63
  146. package/src/common/carousal/specs/RenderBrand.spec.tsx +0 -22
  147. package/src/common/carousal/stories/NsCarousal1.stories.tsx +0 -34
  148. package/src/common/carousal/stories/NsScrollingCarousal.stories.tsx +0 -80
  149. package/src/common/carousal/types.d.ts +0 -23
  150. package/src/common/cart-icon/NsCartIcon.spec.tsx +0 -19
  151. package/src/common/cart-icon/NsCartIcon.stories.tsx +0 -28
  152. package/src/common/cart-icon/NsCartIcon.styled.tsx +0 -15
  153. package/src/common/cart-icon/NsCartIcon.tsx +0 -24
  154. package/src/common/cart-icon/index.ts +0 -2
  155. package/src/common/cart-icon/types.d.ts +0 -8
  156. package/src/common/checkbox/NsCheckbox.spec.tsx +0 -57
  157. package/src/common/checkbox/NsCheckbox.stories.tsx +0 -55
  158. package/src/common/checkbox/NsCheckbox.styled.tsx +0 -55
  159. package/src/common/checkbox/NsCheckbox.tsx +0 -68
  160. package/src/common/checkbox/index.ts +0 -2
  161. package/src/common/checkbox/types.d.ts +0 -20
  162. package/src/common/column-control/NsColumnControl.tsx +0 -64
  163. package/src/common/column-control/NsFlexColumns.tsx +0 -29
  164. package/src/common/column-control/NsGridColumns.tsx +0 -29
  165. package/src/common/column-control/index.ts +0 -4
  166. package/src/common/column-control/specs/NsColumnControl.spec.tsx +0 -24
  167. package/src/common/column-control/specs/NsFlexColumns.spec.tsx +0 -24
  168. package/src/common/column-control/specs/NsGridColumns.spec.tsx +0 -24
  169. package/src/common/column-control/stories/DivArray.stories.tsx +0 -18
  170. package/src/common/column-control/stories/DivArray.tsx +0 -63
  171. package/src/common/column-control/stories/NsColumnControl.stories.tsx +0 -65
  172. package/src/common/column-control/stories/NsFlexColumns.stories.tsx +0 -66
  173. package/src/common/column-control/stories/NsGridColumns.stories.tsx +0 -75
  174. package/src/common/column-control/stories/common.tsx +0 -14
  175. package/src/common/column-control/styled/StyledFlex.tsx +0 -46
  176. package/src/common/column-control/styled/StyledGrid.tsx +0 -41
  177. package/src/common/column-control/styled/common.ts +0 -27
  178. package/src/common/column-control/types.d.ts +0 -46
  179. package/src/common/column-control/utils.ts +0 -66
  180. package/src/common/common.types.d.ts +0 -21
  181. package/src/common/dropdown/NsDropdown.spec.tsx +0 -126
  182. package/src/common/dropdown/NsDropdown.styled.tsx +0 -66
  183. package/src/common/dropdown/NsDropdown.tsx +0 -94
  184. package/src/common/dropdown/NsDropdownOption.tsx +0 -13
  185. package/src/common/dropdown/index.ts +0 -3
  186. package/src/common/dropdown/stories/NsDropdown.stories.tsx +0 -67
  187. package/src/common/dropdown/stories/NsDropdownCountry.stories.tsx +0 -64
  188. package/src/common/dropdown/types.d.ts +0 -23
  189. package/src/common/email-simple/NsEmailSimple.spec.tsx +0 -115
  190. package/src/common/email-simple/NsEmailSimple.stories.tsx +0 -61
  191. package/src/common/email-simple/NsEmailSimple.tsx +0 -72
  192. package/src/common/email-simple/index.ts +0 -2
  193. package/src/common/email-simple/types.d.ts +0 -14
  194. package/src/common/flag/NsFlag.spec.tsx +0 -27
  195. package/src/common/flag/NsFlag.stories.tsx +0 -22
  196. package/src/common/flag/NsFlag.styled.tsx +0 -73
  197. package/src/common/flag/NsFlag.tsx +0 -24
  198. package/src/common/flag/index.ts +0 -2
  199. package/src/common/flag/types.d.ts +0 -16
  200. package/src/common/hooks/index.ts +0 -2
  201. package/src/common/hooks/specs/useWindowSize.spec.tsx +0 -19
  202. package/src/common/hooks/useAccordionMap.tsx +0 -39
  203. package/src/common/hooks/useOnClickOutside.tsx +0 -25
  204. package/src/common/hooks/useWindowSize.tsx +0 -30
  205. package/src/common/icon/NsIcon.spec.tsx +0 -51
  206. package/src/common/icon/NsIcon.stories.tsx +0 -77
  207. package/src/common/icon/NsIcon.styled.tsx +0 -27
  208. package/src/common/icon/NsIcon.tsx +0 -44
  209. package/src/common/icon/NsIconVariants.ts +0 -56
  210. package/src/common/icon/icons/AlertErrorIcon.tsx +0 -48
  211. package/src/common/icon/icons/ArrowDown.tsx +0 -23
  212. package/src/common/icon/icons/ArrowLeft.tsx +0 -38
  213. package/src/common/icon/icons/ArrowRight.tsx +0 -39
  214. package/src/common/icon/icons/ArrowUp.tsx +0 -20
  215. package/src/common/icon/icons/Cart.tsx +0 -23
  216. package/src/common/icon/icons/CartBadge.tsx +0 -47
  217. package/src/common/icon/icons/Check.tsx +0 -30
  218. package/src/common/icon/icons/CheckShield.tsx +0 -24
  219. package/src/common/icon/icons/CheckVerified.tsx +0 -27
  220. package/src/common/icon/icons/ChevronRight.tsx +0 -31
  221. package/src/common/icon/icons/CloseIcon.tsx +0 -27
  222. package/src/common/icon/icons/ErrorIcon.tsx +0 -30
  223. package/src/common/icon/icons/HamburgerIcon.tsx +0 -35
  224. package/src/common/icon/icons/InfoFilled.tsx +0 -21
  225. package/src/common/icon/icons/InfoOutlined.tsx +0 -42
  226. package/src/common/icon/icons/RoundedClose.tsx +0 -31
  227. package/src/common/icon/icons/SearchIcon.tsx +0 -32
  228. package/src/common/icon/icons/SlashIcon.tsx +0 -22
  229. package/src/common/icon/icons/SuccessIcon.tsx +0 -40
  230. package/src/common/icon/icons/TrashIcon.tsx +0 -32
  231. package/src/common/icon/icons/UserIcon.tsx +0 -37
  232. package/src/common/icon/icons/UserOutline.tsx +0 -29
  233. package/src/common/icon/icons/WarningIcon.tsx +0 -48
  234. package/src/common/icon/icons/error.svg +0 -3
  235. package/src/common/icon/icons/home.tsx +0 -19
  236. package/src/common/icon/icons/search.svg +0 -3
  237. package/src/common/icon/icons/success.svg +0 -10
  238. package/src/common/icon/icons/trash.svg +0 -3
  239. package/src/common/icon/index.ts +0 -3
  240. package/src/common/icon/types.d.ts +0 -53
  241. package/src/common/image/BynderMedia.spec.tsx +0 -42
  242. package/src/common/image/BynderMedia.tsx +0 -49
  243. package/src/common/image/NsImage.spec.tsx +0 -60
  244. package/src/common/image/NsImage.stories.tsx +0 -46
  245. package/src/common/image/NsImage.tsx +0 -33
  246. package/src/common/image/NsNextImage.spec.tsx +0 -10
  247. package/src/common/image/NsNextImage.stories.tsx +0 -51
  248. package/src/common/image/NsNextImage.tsx +0 -11
  249. package/src/common/image/bynder-util.spec.ts +0 -187
  250. package/src/common/image/bynder-util.ts +0 -98
  251. package/src/common/image/index.ts +0 -3
  252. package/src/common/image/types.ts +0 -78
  253. package/src/common/index.ts +0 -37
  254. package/src/common/input/InputFieldWrapper.tsx +0 -24
  255. package/src/common/input/InputWrapper.tsx +0 -82
  256. package/src/common/input/NsInputField.spec.tsx +0 -25
  257. package/src/common/input/NsInputField.stories.tsx +0 -61
  258. package/src/common/input/NsInputField.tsx +0 -125
  259. package/src/common/input/getAdornmentProps.tsx +0 -50
  260. package/src/common/input/index.ts +0 -2
  261. package/src/common/input/types.d.ts +0 -45
  262. package/src/common/label/NsLabel.spec.tsx +0 -11
  263. package/src/common/label/NsLabel.stories.tsx +0 -35
  264. package/src/common/label/NsLabel.tsx +0 -43
  265. package/src/common/label/index.ts +0 -2
  266. package/src/common/label/types.d.ts +0 -10
  267. package/src/common/link/NsLink.spec.tsx +0 -106
  268. package/src/common/link/NsLink.stories.tsx +0 -55
  269. package/src/common/link/NsLink.styled.tsx +0 -100
  270. package/src/common/link/NsLink.tsx +0 -122
  271. package/src/common/link/index.ts +0 -2
  272. package/src/common/link/types.d.ts +0 -22
  273. package/src/common/modal/NsModal.spec.tsx +0 -46
  274. package/src/common/modal/NsModal.styled.tsx +0 -28
  275. package/src/common/modal/NsModal.tsx +0 -43
  276. package/src/common/modal/helper-component/NsModalContentBox.tsx +0 -37
  277. package/src/common/modal/helper-component/NsModalDefault.tsx +0 -34
  278. package/src/common/modal/helper-component/NsModalStatus.tsx +0 -17
  279. package/src/common/modal/helper-component/NsModalStatusIcon.tsx +0 -16
  280. package/src/common/modal/helper-component/NsModalTitle.tsx +0 -29
  281. package/src/common/modal/index.ts +0 -2
  282. package/src/common/modal/model/NsModalVariantMap.tsx +0 -24
  283. package/src/common/modal/stories/NsModal.stories.tsx +0 -87
  284. package/src/common/modal/stories/mock.tsx +0 -46
  285. package/src/common/modal/types.ts +0 -57
  286. package/src/common/nav-product-card/NsNavProductCard.spec.tsx +0 -22
  287. package/src/common/nav-product-card/NsNavProductCard.stories.tsx +0 -25
  288. package/src/common/nav-product-card/NsNavProductCard.styled.tsx +0 -24
  289. package/src/common/nav-product-card/NsNavProductCard.tsx +0 -27
  290. package/src/common/nav-product-card/index.ts +0 -2
  291. package/src/common/nav-product-card/types.d.ts +0 -9
  292. package/src/common/nav-tab/NavDrawer.tsx +0 -41
  293. package/src/common/nav-tab/NavTitles.tsx +0 -64
  294. package/src/common/nav-tab/NsNavTab.spec.tsx +0 -64
  295. package/src/common/nav-tab/NsNavTab.stories.tsx +0 -36
  296. package/src/common/nav-tab/NsNavTab.styled.tsx +0 -74
  297. package/src/common/nav-tab/NsNavTab.tsx +0 -43
  298. package/src/common/nav-tab/index.ts +0 -2
  299. package/src/common/nav-tab/types.d.ts +0 -21
  300. package/src/common/progress/NsProgress.spec.tsx +0 -47
  301. package/src/common/progress/NsProgress.stories.tsx +0 -45
  302. package/src/common/progress/NsProgress.styled.tsx +0 -56
  303. package/src/common/progress/NsProgress.tsx +0 -29
  304. package/src/common/progress/index.ts +0 -2
  305. package/src/common/progress/types.d.ts +0 -21
  306. package/src/common/radiogroup/NsRadioGroup.spec.tsx +0 -63
  307. package/src/common/radiogroup/NsRadioGroup.stories.tsx +0 -84
  308. package/src/common/radiogroup/NsRadioGroup.styled.tsx +0 -51
  309. package/src/common/radiogroup/NsRadioGroup.tsx +0 -65
  310. package/src/common/radiogroup/index.ts +0 -2
  311. package/src/common/radiogroup/types.d.ts +0 -19
  312. package/src/common/search-bar/NsSeachBar.spec.tsx +0 -9
  313. package/src/common/search-bar/NsSearchBar.tsx +0 -46
  314. package/src/common/select/DefaultRenderOption.tsx +0 -8
  315. package/src/common/select/NsSelect.styled.tsx +0 -102
  316. package/src/common/select/NsSelect.tsx +0 -166
  317. package/src/common/select/NsSelectOption.tsx +0 -26
  318. package/src/common/select/constant.ts +0 -30
  319. package/src/common/select/index.ts +0 -3
  320. package/src/common/select/specs/NsSelect.spec.tsx +0 -183
  321. package/src/common/select/specs/NsSelectOption.spec.tsx +0 -32
  322. package/src/common/select/stories/NsSelect.stories.tsx +0 -89
  323. package/src/common/select/stories/countries.ts +0 -53
  324. package/src/common/select/types.d.ts +0 -49
  325. package/src/common/spinner/NsSpinner.spec.tsx +0 -21
  326. package/src/common/spinner/NsSpinner.stories.tsx +0 -29
  327. package/src/common/spinner/NsSpinner.styled.tsx +0 -344
  328. package/src/common/spinner/NsSpinner.tsx +0 -15
  329. package/src/common/spinner/icons/Spinner.tsx +0 -163
  330. package/src/common/spinner/index.ts +0 -2
  331. package/src/common/spinner/types.ts +0 -5
  332. package/src/common/table/NsExpandableRow.tsx +0 -62
  333. package/src/common/table/NsTable.spec.tsx +0 -174
  334. package/src/common/table/NsTable.stories.tsx +0 -156
  335. package/src/common/table/NsTable.styled.ts +0 -127
  336. package/src/common/table/NsTable.tsx +0 -150
  337. package/src/common/table/NsTableHeader.tsx +0 -54
  338. package/src/common/table/NsTablePagination.tsx +0 -24
  339. package/src/common/table/helper.ts +0 -33
  340. package/src/common/table/index.ts +0 -2
  341. package/src/common/table/types.d.ts +0 -57
  342. package/src/common/text-strip/NsTextStrip.spec.tsx +0 -27
  343. package/src/common/text-strip/NsTextStrip.stories.tsx +0 -61
  344. package/src/common/text-strip/NsTextStrip.tsx +0 -61
  345. package/src/common/text-strip/index.ts +0 -2
  346. package/src/common/text-strip/types.d.ts +0 -16
  347. package/src/common/toast/Fade.tsx +0 -98
  348. package/src/common/toast/ToastProvider.tsx +0 -88
  349. package/src/common/toast/index.ts +0 -3
  350. package/src/common/toast/shared.ts +0 -124
  351. package/src/common/toast/specs/Toast.spec.tsx +0 -122
  352. package/src/common/toast/stories/Toast.stories.tsx +0 -82
  353. package/src/common/toast/useToast.tsx +0 -65
  354. package/src/common/typography/GlobalFontInter.tsx +0 -15
  355. package/src/common/typography/HtmlTagVariantMap.tsx +0 -24
  356. package/src/common/typography/NsTypography.spec.tsx +0 -37
  357. package/src/common/typography/NsTypography.stories.tsx +0 -27
  358. package/src/common/typography/NsTypography.tsx +0 -44
  359. package/src/common/typography/Typography.styled.tsx +0 -195
  360. package/src/common/typography/__snapshots__/NsTypography.spec.tsx.snap +0 -22
  361. package/src/common/typography/index.ts +0 -3
  362. package/src/common/typography/types.d.ts +0 -37
  363. package/src/common/util.ts +0 -3
  364. package/src/common/utility/Show.tsx +0 -13
  365. package/src/common/utility/index.ts +0 -1
  366. package/src/common/validations/regex.ts +0 -2
  367. package/src/common/videos/NsVideo.spec.tsx +0 -26
  368. package/src/common/videos/NsVideo.stories.tsx +0 -32
  369. package/src/common/videos/NsVideo.tsx +0 -28
  370. package/src/common/videos/index.ts +0 -2
  371. package/src/common/videos/types.d.ts +0 -9
@@ -1,126 +0,0 @@
1
- import React from 'react';
2
- import { render, fireEvent, screen, waitFor } from '@/test-utils/index';
3
- import NsDropdown from './NsDropdown';
4
- import NsDropdownOption from './NsDropdownOption';
5
-
6
- function createDropdownOptions(options: { value: string; label: string }[]) {
7
- return options.map((option) => (
8
- <NsDropdownOption key={option.value} value={option.value}>
9
- {option.label}
10
- </NsDropdownOption>
11
- ));
12
- }
13
-
14
- describe('NsDropdown', () => {
15
- const onSelect = jest.fn();
16
- const selectedLabel = '';
17
-
18
- const options = [
19
- { value: 'Option 1', label: 'Option 1' },
20
- { value: 'Option 2', label: 'Option 2' },
21
- { value: 'Option 3', label: 'Option 3' },
22
- ];
23
-
24
- it('1. Should render the placeholder text when no value is selected', () => {
25
- render(
26
- <NsDropdown placeholder="Select an option" selectedLabel={selectedLabel} onSelect={onSelect}>
27
- {createDropdownOptions(options)}
28
- </NsDropdown>
29
- );
30
-
31
- expect(screen.getByText('Select an option')).toBeInTheDocument();
32
- });
33
-
34
- it('2. Should render the selected value label', () => {
35
- render(
36
- <NsDropdown selectedLabel={selectedLabel} onSelect={onSelect}>
37
- {createDropdownOptions(options)}
38
- </NsDropdown>
39
- );
40
- const dropdownHead = screen.getByTestId('dropdown-head');
41
- fireEvent.click(dropdownHead);
42
- const dropdownOptionContainer = screen.getByTestId('dropdown-option-container-0');
43
-
44
- fireEvent.click(dropdownOptionContainer);
45
- expect(onSelect).toHaveBeenCalledWith('Option 1');
46
- });
47
-
48
- it('3. Should open and close Dropdown on click', () => {
49
- render(
50
- <NsDropdown selectedLabel={selectedLabel} onSelect={onSelect}>
51
- {createDropdownOptions(options)}
52
- </NsDropdown>
53
- );
54
-
55
- const dropdownHead = screen.getByTestId('dropdown-head');
56
- fireEvent.click(dropdownHead);
57
-
58
- expect(screen.getByTestId('option-Option 1')).toBeInTheDocument();
59
- expect(screen.getByTestId('option-Option 2')).toBeInTheDocument();
60
- expect(screen.getByTestId('option-Option 3')).toBeInTheDocument();
61
-
62
- fireEvent.click(dropdownHead);
63
- expect(screen.queryByTestId('option-Option 1')).not.toBeInTheDocument();
64
- expect(screen.queryByTestId('option-Option 2')).not.toBeInTheDocument();
65
- expect(screen.queryByTestId('option-Option 3')).not.toBeInTheDocument();
66
- });
67
-
68
- it('4. Should close dropdown on mouse leave when closeOnMouseLeave is set to true', async () => {
69
- render(
70
- <NsDropdown closeOnMouseLeave selectedLabel={selectedLabel} onSelect={onSelect}>
71
- {createDropdownOptions(options)}
72
- </NsDropdown>
73
- );
74
-
75
- const dropdownHead = screen.getByTestId('dropdown-head');
76
- fireEvent.click(dropdownHead);
77
-
78
- const dropdownList = screen.getByTestId('dropdown-list');
79
- fireEvent.mouseLeave(dropdownList);
80
-
81
- await waitFor(() => {
82
- expect(screen.queryByTestId('option-Option 1')).not.toBeInTheDocument();
83
- expect(screen.queryByTestId('option-Option 2')).not.toBeInTheDocument();
84
- expect(screen.queryByTestId('option-Option 3')).not.toBeInTheDocument();
85
- });
86
- });
87
- it('5. Should not close dropdown on mouse leave when closeOnMouseLeave is set to false', () => {
88
- render(
89
- <NsDropdown selectedLabel={selectedLabel} onSelect={onSelect} closeOnMouseLeave={false}>
90
- {createDropdownOptions(options)}
91
- </NsDropdown>
92
- );
93
-
94
- const dropdownHead = screen.getByTestId('dropdown-head');
95
- fireEvent.click(dropdownHead);
96
-
97
- const dropdownList = screen.getByTestId('dropdown-list');
98
- fireEvent.mouseLeave(dropdownList);
99
-
100
- expect(screen.getByTestId('option-Option 1')).toBeInTheDocument();
101
- expect(screen.getByTestId('option-Option 2')).toBeInTheDocument();
102
- expect(screen.getByTestId('option-Option 3')).toBeInTheDocument();
103
- });
104
- it('6. Should not open dropdown when disabled is set to true', () => {
105
- render(
106
- <NsDropdown selectedLabel={selectedLabel} onSelect={onSelect} disabled>
107
- {createDropdownOptions(options)}
108
- </NsDropdown>
109
- );
110
-
111
- const dropdownHead = screen.getByTestId('dropdown-head');
112
- fireEvent.click(dropdownHead);
113
-
114
- expect(screen.queryByTestId('dropdown-list')).not.toBeInTheDocument();
115
- });
116
- it('7. Should apply no border style when type is not outlined', () => {
117
- render(
118
- <NsDropdown selectedLabel={selectedLabel} onSelect={onSelect} type="unfilled">
119
- {createDropdownOptions(options)}
120
- </NsDropdown>
121
- );
122
-
123
- const dropdownHead = screen.getByTestId('dropdown-head');
124
- expect(dropdownHead).toHaveStyle('border: none');
125
- });
126
- });
@@ -1,66 +0,0 @@
1
- import { styled, ColorUtils, FoundationTheme } from '@nuskin/foundation-theme';
2
- import { Themed } from '../common.types';
3
- const { color, paletteColor, isDarkMode } = ColorUtils;
4
-
5
- export const DropdownContainer = styled.div<{ disabled: boolean }>`
6
- position: relative;
7
- display: inline-block;
8
- opacity: ${({ disabled }) => (disabled ? '0.5' : '1')};
9
- cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
10
- `;
11
-
12
- /** this function also used for SelectHead */
13
- export const getDropdownHeadBorder = ({ type, theme }: { type: string } & Themed) => {
14
- if (type === 'outlined') {
15
- const borderColor = color('primary', 'black')({ theme });
16
- return `1px solid ${borderColor}`;
17
- }
18
- return 'none';
19
- };
20
- export const DropdownHead = styled.div<{ type: string; disabled: boolean }>`
21
- cursor: ${({ disabled }) => (disabled ? 'inherit' : 'pointer')};
22
- padding: 5px 10px;
23
- display: flex;
24
- justify-content: space-between;
25
- align-items: center;
26
- border: ${getDropdownHeadBorder};
27
- color: ${paletteColor('primary')};
28
- `;
29
-
30
- export const DropdownButton = styled.div`
31
- padding-right: 10px;
32
- -webkit-user-select: none;
33
- -ms-user-select: none;
34
- user-select: none;
35
- `;
36
-
37
- export const DropdownList = styled.div<{ borderColor: FoundationTheme.PaletteColors }>`
38
- position: absolute;
39
- z-index: 999;
40
- border: 1px solid ${({ borderColor, theme }) => paletteColor(borderColor)({ theme })};
41
- margin-top: 10px;
42
- width: 100%;
43
- color: ${paletteColor('primary', 'main')};
44
- background-color: ${paletteColor('primary', 'contrastText')};
45
- `;
46
-
47
- const getListBgColor = (theme: FoundationTheme.Theme) => {
48
- return color('accentColorB', isDarkMode({ theme }) ? '50' : '10')({ theme });
49
- };
50
-
51
- export const DropdownOptionContainer = styled.div`
52
- cursor: pointer;
53
- &:last-child {
54
- border-bottom: none;
55
- }
56
- `;
57
-
58
- export const ListItem = styled.div`
59
- &:hover {
60
- background-color: ${({ theme }) => getListBgColor(theme)};
61
- }
62
- &:active {
63
- background-color: #7de3e8;
64
- }
65
- padding: 10px;
66
- `;
@@ -1,94 +0,0 @@
1
- import React, { ReactElement, useCallback, useRef, useState } from 'react';
2
-
3
- import { useOnClickOutside } from '../hooks/useOnClickOutside';
4
- import { NsIcon } from '../icon';
5
- import {
6
- DropdownButton,
7
- DropdownContainer,
8
- DropdownHead,
9
- DropdownList,
10
- DropdownOptionContainer,
11
- } from './NsDropdown.styled';
12
- import { DropdownProps } from './types.d';
13
-
14
- const NsDropdown: React.FC<DropdownProps> = ({
15
- selectedLabel,
16
- onSelect,
17
- children,
18
- disabled = false,
19
- type = 'outlined',
20
- dropdownBorderColor = 'accentColorB',
21
- closeOnMouseLeave = false,
22
- className,
23
- placeholder,
24
- }): ReactElement => {
25
- const [isOpen, setIsOpen] = useState(false);
26
- const dropdownRef = useRef<HTMLDivElement | null>(null);
27
-
28
- const handleToggle = useCallback(() => {
29
- if (disabled) return;
30
- setIsOpen((x) => !x);
31
- }, [disabled]);
32
-
33
- const handleClose = useCallback(() => {
34
- setIsOpen(false);
35
- }, []);
36
-
37
- useOnClickOutside(dropdownRef?.current, handleClose);
38
-
39
- const handleOnMouseLeave = useCallback(() => {
40
- if (closeOnMouseLeave) {
41
- handleClose();
42
- }
43
- }, [closeOnMouseLeave, handleClose]);
44
-
45
- const handleSelect = (input: string) => {
46
- onSelect(input);
47
- setIsOpen(false);
48
- };
49
-
50
- return (
51
- <DropdownContainer disabled={disabled} ref={dropdownRef} className={className}>
52
- <DropdownHead
53
- data-testid="dropdown-head"
54
- id="dropdown-head"
55
- disabled={disabled}
56
- type={type}
57
- onClick={handleToggle}
58
- >
59
- <DropdownButton>{selectedLabel || placeholder}</DropdownButton>
60
- <NsIcon
61
- testId="chevron-icon"
62
- id="chevron-icon"
63
- name="arrowDown"
64
- color="primary"
65
- cursor={disabled ? 'not-allowed' : 'pointer'}
66
- />
67
- </DropdownHead>
68
- {isOpen ? (
69
- <DropdownList
70
- data-testid="dropdown-list"
71
- id="dropdown-list"
72
- onMouseLeave={handleOnMouseLeave}
73
- borderColor={dropdownBorderColor}
74
- >
75
- {children.map((child, key) => {
76
- const value = React.isValidElement(child) ? child.props.value : child;
77
- return (
78
- <DropdownOptionContainer
79
- data-testid={`dropdown-option-container-${key}`}
80
- className="dropdown-option-container"
81
- key={key}
82
- onClick={() => handleSelect(value)}
83
- >
84
- {child}
85
- </DropdownOptionContainer>
86
- );
87
- })}
88
- </DropdownList>
89
- ) : null}
90
- </DropdownContainer>
91
- );
92
- };
93
-
94
- export default NsDropdown;
@@ -1,13 +0,0 @@
1
- import React, { ReactElement } from 'react';
2
-
3
- import { ListItem } from './NsDropdown.styled';
4
- import { DropdownOptionProps } from './types.d';
5
-
6
- export const NsDropdownOption: React.FC<DropdownOptionProps> = ({ value, children }): ReactElement => {
7
- return (
8
- <ListItem data-testid={`option-${value}`} id="dropdown-item">
9
- {children}
10
- </ListItem>
11
- );
12
- };
13
- export default NsDropdownOption;
@@ -1,3 +0,0 @@
1
- export { default as NsDropdown } from './NsDropdown';
2
- export { default as NsDropdownOption } from './NsDropdownOption';
3
- export type { DropdownOptionProps, DropdownProps } from './types.d';
@@ -1,67 +0,0 @@
1
- import React, { ReactElement, useState } from 'react';
2
-
3
- import { withCenterDecorator } from '@/stories/decorators/withCenterDecorator';
4
- import type { Meta, StoryObj } from '@storybook/react';
5
-
6
- import { NsDropdown, NsDropdownOption } from '../';
7
-
8
- type ComponentType = typeof NsDropdown;
9
- type Story = StoryObj<ComponentType>;
10
- type MetaStory = Meta<ComponentType>;
11
-
12
- export default {
13
- title: 'Components/Inputs/NsDropdown',
14
- decorators: [withCenterDecorator],
15
- component: NsDropdown,
16
- argTypes: {
17
- type: { control: 'select', options: ['unfilled', 'outlined'] },
18
- disabled: { control: 'boolean' },
19
- dropdownBorderColor: {
20
- control: 'select',
21
- options: ['primary', 'secondary', 'accentColorA', 'accentColorB', 'accentColorC'],
22
- },
23
- placeholder: { control: 'text' },
24
- closeOnMouseLeave: { control: 'boolean' },
25
- },
26
- parameters: {
27
- options: [
28
- { label: 'Option 1', value: 'Option 1' },
29
- { label: 'Option 2', value: 'Option 2' },
30
- { label: 'Option 3', value: 'Option 3' },
31
- ],
32
- },
33
- args: {
34
- type: 'outlined',
35
- disabled: false,
36
- dropdownBorderColor: 'primary',
37
- closeOnMouseLeave: false,
38
- selectedLabel: '',
39
- placeholder: 'options',
40
- },
41
- } as MetaStory;
42
-
43
- const RenderStory = (args: any, context: any): ReactElement => {
44
- const [selectedLabel, setSelectedLabel] = useState(args.selectedLabel);
45
-
46
- const options = context.parameters.options;
47
- const handleSelect = (value: string) => {
48
- options.find((option: any) => {
49
- if (option.value === value) {
50
- setSelectedLabel(option.label);
51
- }
52
- });
53
- };
54
-
55
- return (
56
- <NsDropdown {...args} selectedLabel={selectedLabel} onSelect={handleSelect}>
57
- {options.map((option: any) => (
58
- <NsDropdownOption key={option.value} value={option.value}>
59
- {option.label}
60
- </NsDropdownOption>
61
- ))}
62
- </NsDropdown>
63
- );
64
- };
65
- export const Dropdown: Story = {
66
- render: RenderStory,
67
- };
@@ -1,64 +0,0 @@
1
- import React, { useState } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react';
3
- import { NsDropdown, NsDropdownOption } from '../';
4
- import { withCenterDecorator } from '@/stories/decorators/withCenterDecorator';
5
-
6
- type ComponentType = typeof NsDropdown;
7
- type Story = StoryObj<ComponentType>;
8
- type MetaStory = Meta<ComponentType>;
9
-
10
- export default {
11
- title: 'Components/Inputs/NsDropdown',
12
- decorators: [withCenterDecorator],
13
- component: NsDropdown,
14
- argTypes: {
15
- type: { control: 'select', options: ['unfilled', 'outlined'] },
16
- disabled: { control: 'boolean' },
17
- dropdownBorderColor: {
18
- control: 'select',
19
- options: ['primary', 'secondary', 'accentColorA', 'accentColorB', 'accentColorC'],
20
- },
21
- placeholder: { control: 'text' },
22
- closeOnMouseLeave: { control: 'boolean' },
23
- },
24
- parameters: {
25
- options: [
26
- { label: 'English', value: 'english', country: 'United States (US)' },
27
- { label: 'French', value: 'french', country: 'France (FR)' },
28
- { label: 'German', value: 'german', country: 'Germany (DE)' },
29
- ],
30
- },
31
- args: {
32
- selectedLabel: 'United States (US) | English',
33
- type: 'unfilled',
34
- disabled: false,
35
- dropdownBorderColor: 'accentColorB',
36
- closeOnMouseLeave: true,
37
- },
38
- } as MetaStory;
39
-
40
- const RenderStory = (args: any, context: any) => {
41
- const [selectedLabel, setSelectedLabel] = useState(args.selectedLabel);
42
-
43
- const options = context.parameters.options;
44
- const handleSelect = (value: string) => {
45
- options.find((option: any) => {
46
- if (option.value === value) {
47
- setSelectedLabel(`${option.country} | ${option.label}`);
48
- }
49
- });
50
- };
51
-
52
- return (
53
- <NsDropdown {...args} selectedLabel={selectedLabel} onSelect={handleSelect}>
54
- {options.map((option: any) => (
55
- <NsDropdownOption key={option.value} value={option.value}>
56
- {option.label}
57
- </NsDropdownOption>
58
- ))}
59
- </NsDropdown>
60
- );
61
- };
62
- export const DropdownCountry: Story = {
63
- render: RenderStory,
64
- };
@@ -1,23 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { FoundationTheme } from '@nuskin/foundation-theme';
3
-
4
- import { AdditionalProps } from '../common.types';
5
-
6
- export interface DropdownProps extends AdditionalProps {
7
- selectedLabel: ReactNode;
8
- onSelect: (arg: ReactNode) => void; // eslint-disable-line
9
- children: ReactNode[];
10
- disabled?: boolean;
11
- type?: 'outlined' | 'unfilled';
12
- placeholder?: string;
13
- dropdownBorderColor?: FoundationTheme.PaletteColors;
14
- closeOnMouseLeave?: boolean;
15
- showListDivider?: boolean;
16
- className?: string;
17
- placeholder?: string;
18
- }
19
-
20
- export interface DropdownOptionProps {
21
- value: string;
22
- children: ReactNode;
23
- }
@@ -1,115 +0,0 @@
1
- import { userEvent } from '@storybook/testing-library';
2
- import { render, screen } from '@testing-library/react';
3
- import React from 'react';
4
-
5
- import { emailPattern } from '../validations/regex';
6
- import NsEmailSimple from './NsEmailSimple';
7
- import { NsEmailSimpleProps } from './types';
8
-
9
- const getInput = (propsData: NsEmailSimpleProps) => {
10
- const { container } = render(<NsEmailSimple {...propsData} />);
11
- const inputElement = container.querySelector('input');
12
- return inputElement;
13
- };
14
- // TODO: fix this spec
15
- describe('NsEmailSimple', () => {
16
- let mockCheckEmail = jest.fn().mockResolvedValue([true, false]); // isValid, isAvailable
17
- let propsData = {
18
- disabled: false,
19
- label: 'Email',
20
- required: true,
21
- maxLength: 50,
22
- invalidEmailMessage: 'Please enter a valid email',
23
- dupedEmailMessage: 'Email ID already exists',
24
- requiredErrorMessage: 'Email field is required',
25
- checkEmail: mockCheckEmail,
26
- };
27
- it('1. renders email field', async () => {
28
- const { container } = render(<NsEmailSimple {...propsData} />);
29
- const inputElement = container.querySelector('input');
30
- expect(inputElement).toBeInTheDocument();
31
- if (inputElement) {
32
- const inputValue = 'test';
33
- await userEvent.type(inputElement, inputValue);
34
- await userEvent.tab();
35
- expect(inputElement).toHaveValue(inputValue);
36
- await userEvent.clear(inputElement);
37
- expect(inputElement).toHaveValue('');
38
-
39
- const inputValue2 = 'test@gmail.com';
40
- await userEvent.type(inputElement, inputValue2);
41
- await userEvent.tab();
42
- expect(inputElement).toHaveValue(inputValue2);
43
- }
44
- });
45
-
46
- it('2. renders email field with invalid regex error', async () => {
47
- const inputElement = getInput(propsData);
48
- if (!inputElement) {
49
- return;
50
- }
51
- const mockCheckEmail = jest.fn().mockResolvedValue([true, true]); // isValid, isAvailable
52
- render(<NsEmailSimple {...propsData} checkEmail={mockCheckEmail} />);
53
- const wrongInputValue = 'test1!gmail.com';
54
- await userEvent.clear(inputElement);
55
- await userEvent.type(inputElement, wrongInputValue);
56
- await userEvent.tab();
57
- expect(inputElement).toHaveValue(wrongInputValue);
58
- });
59
- it('3. check email', async () => {
60
- const inputElement = getInput(propsData);
61
- if (!inputElement) {
62
- return;
63
- }
64
- const mockCheckEmail2 = jest.fn().mockResolvedValue([true, false]); // isValid, isAvailable
65
- render(<NsEmailSimple {...propsData} checkEmail={mockCheckEmail2} />);
66
- await userEvent.clear(inputElement);
67
- await userEvent.type(inputElement, 'test@gmail.co');
68
- userEvent.tab();
69
- expect(inputElement).toHaveValue('test@gmail.co');
70
- });
71
- it('4. renders email field with invalid error', async () => {
72
- let mockCheckEmail = jest.fn().mockResolvedValue([false, false]); // isValid, isAvailable
73
- let props = {
74
- ...propsData,
75
- checkEmail: mockCheckEmail,
76
- };
77
- render(<NsEmailSimple {...props} />);
78
- const emailField = (await screen.findByTestId('email-field-test')) as HTMLInputElement;
79
- expect(emailField).toBeInTheDocument;
80
- const inputElement = emailField.querySelector('input');
81
- if (!inputElement) {
82
- return;
83
- }
84
- await userEvent.type(inputElement, 'test@gmail.com');
85
- expect(inputElement.value).toMatch(emailPattern);
86
- });
87
- it('5. renders email field without error', async () => {
88
- const mock = jest.fn().mockResolvedValue([true, true]);
89
- const props = {
90
- ...propsData,
91
- checkEmail: mock,
92
- };
93
- const inputElement = getInput(props);
94
- if (!inputElement) {
95
- return;
96
- }
97
- await userEvent.type(inputElement, 'test@gmail.com');
98
- expect(inputElement).toHaveValue('test@gmail.com');
99
- expect(inputElement.value).toMatch(emailPattern);
100
- });
101
- it('6. renders email field with API error', async () => {
102
- let mock = jest.fn().mockResolvedValue(undefined);
103
- let props = {
104
- ...propsData,
105
- checkEmail: mock,
106
- };
107
- const inputElement = getInput(props);
108
- if (!inputElement) {
109
- return;
110
- }
111
- await userEvent.type(inputElement, 'test@gmail.com');
112
- expect(inputElement).toHaveValue('test@gmail.com');
113
- expect(inputElement.value).toMatch(emailPattern);
114
- });
115
- });
@@ -1,61 +0,0 @@
1
- import type { StoryObj, Meta } from '@storybook/react';
2
- import NsEmailSimple from './NsEmailSimple';
3
- import { within } from '@storybook/testing-library';
4
- import { expect } from '@storybook/jest';
5
- import { withCenterDecorator } from '@/stories/decorators/withCenterDecorator';
6
-
7
- async function checkEmail() {
8
- const isServiceValid = Promise.resolve(true);
9
- const isEmailAvailable = Promise.resolve(true);
10
- return [isServiceValid, isEmailAvailable];
11
- }
12
- type ComponentType = typeof NsEmailSimple;
13
- type Story = StoryObj<ComponentType>;
14
- type MetaStory = Meta<ComponentType>;
15
-
16
- export default {
17
- component: NsEmailSimple,
18
- title: 'Components/Inputs/NsEmailSimple',
19
- decorators: [withCenterDecorator],
20
- play: ({ canvasElement }) => {
21
- const canvas = within(canvasElement);
22
- const el = canvas.getByTestId('email-field-test');
23
- expect(el).toBeInTheDocument();
24
- },
25
-
26
- argTypes: {
27
- disabled: {
28
- description: 'Indicates whether the email field is enabled/disabled',
29
- },
30
- label: {
31
- description: 'Label of the email component',
32
- },
33
- required: {
34
- description: 'Indicates whether the email field is mandatory or not',
35
- },
36
- maxLength: {
37
- description: 'Maximum number of characters allowed',
38
- },
39
- invalidEmailMessage: {
40
- description: 'Displayed when an invalid email is entered',
41
- },
42
- dupedEmailMessage: {
43
- description: 'Displayed when a duplicate email is entered',
44
- },
45
- requiredErrorMessage: {
46
- description: 'Displayed when email is not entered',
47
- },
48
- },
49
- args: {
50
- disabled: false,
51
- label: 'Email',
52
- required: true,
53
- maxLength: 50,
54
- invalidEmailMessage: 'Please enter a valid email',
55
- dupedEmailMessage: 'Email ID already exists',
56
- requiredErrorMessage: 'Email field is required',
57
- checkEmail: checkEmail,
58
- },
59
- } as MetaStory;
60
-
61
- export const NsEmail: Story = {};