@faststore/ui 1.12.20 → 1.12.32

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 (581) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/{atoms/Icon/stories/assets → assets}/ShoppingCart.d.ts +0 -0
  3. package/dist/assets/ShoppingCart.js +10 -0
  4. package/dist/assets/ShoppingCart.js.map +1 -0
  5. package/dist/assets/X.d.ts +3 -0
  6. package/dist/assets/X.js +8 -0
  7. package/dist/assets/X.js.map +1 -0
  8. package/dist/assets/index.d.ts +2 -0
  9. package/dist/assets/index.js +3 -0
  10. package/dist/assets/index.js.map +1 -0
  11. package/dist/{atoms → components/atoms}/Incentive/Incentive.d.ts +0 -0
  12. package/dist/{atoms → components/atoms}/Incentive/Incentive.js +0 -0
  13. package/dist/components/atoms/Incentive/Incentive.js.map +1 -0
  14. package/dist/{atoms → components/atoms}/Incentive/index.d.ts +0 -0
  15. package/dist/{atoms → components/atoms}/Incentive/index.js +0 -0
  16. package/dist/components/atoms/Incentive/index.js.map +1 -0
  17. package/dist/{atoms → components/atoms}/Incentive/stories/assets/Icons.d.ts +0 -0
  18. package/dist/{atoms → components/atoms}/Incentive/stories/assets/Icons.js +0 -0
  19. package/dist/components/atoms/Incentive/stories/assets/Icons.js.map +1 -0
  20. package/dist/{atoms → components/atoms}/Input/Input.d.ts +0 -0
  21. package/dist/{atoms → components/atoms}/Input/Input.js +0 -0
  22. package/dist/components/atoms/Input/Input.js.map +1 -0
  23. package/dist/{atoms → components/atoms}/Input/index.d.ts +0 -0
  24. package/dist/{atoms → components/atoms}/Input/index.js +0 -0
  25. package/dist/components/atoms/Input/index.js.map +1 -0
  26. package/dist/{atoms → components/atoms}/Link/Link.d.ts +1 -1
  27. package/dist/{atoms → components/atoms}/Link/Link.js +0 -0
  28. package/dist/components/atoms/Link/Link.js.map +1 -0
  29. package/dist/{atoms → components/atoms}/Link/index.d.ts +0 -0
  30. package/dist/{atoms → components/atoms}/Link/index.js +0 -0
  31. package/dist/components/atoms/Link/index.js.map +1 -0
  32. package/dist/{atoms → components/atoms}/List/List.d.ts +0 -0
  33. package/dist/{atoms → components/atoms}/List/List.js +0 -0
  34. package/dist/components/atoms/List/List.js.map +1 -0
  35. package/dist/{atoms → components/atoms}/List/index.d.ts +0 -0
  36. package/dist/{atoms → components/atoms}/List/index.js +0 -0
  37. package/dist/components/atoms/List/index.js.map +1 -0
  38. package/dist/{atoms → components/atoms}/Overlay/Overlay.d.ts +0 -0
  39. package/dist/{atoms → components/atoms}/Overlay/Overlay.js +0 -0
  40. package/dist/components/atoms/Overlay/Overlay.js.map +1 -0
  41. package/dist/{atoms → components/atoms}/Overlay/index.d.ts +0 -0
  42. package/dist/{atoms → components/atoms}/Overlay/index.js +0 -0
  43. package/dist/components/atoms/Overlay/index.js.map +1 -0
  44. package/dist/{atoms → components/atoms}/Popover/Popover.d.ts +0 -0
  45. package/dist/{atoms → components/atoms}/Popover/Popover.js +0 -0
  46. package/dist/components/atoms/Popover/Popover.js.map +1 -0
  47. package/dist/{atoms → components/atoms}/Popover/index.d.ts +0 -0
  48. package/dist/{atoms → components/atoms}/Popover/index.js +0 -0
  49. package/dist/components/atoms/Popover/index.js.map +1 -0
  50. package/dist/{atoms → components/atoms}/Price/Price.d.ts +0 -0
  51. package/dist/{atoms → components/atoms}/Price/Price.js +0 -0
  52. package/dist/components/atoms/Price/Price.js.map +1 -0
  53. package/dist/{atoms → components/atoms}/Price/index.d.ts +0 -0
  54. package/dist/{atoms → components/atoms}/Price/index.js +0 -0
  55. package/dist/components/atoms/Price/index.js.map +1 -0
  56. package/dist/{atoms → components/atoms}/Select/Select.d.ts +0 -0
  57. package/dist/{atoms → components/atoms}/Select/Select.js +0 -0
  58. package/dist/components/atoms/Select/Select.js.map +1 -0
  59. package/dist/{atoms → components/atoms}/Select/index.d.ts +0 -0
  60. package/dist/{atoms → components/atoms}/Select/index.js +0 -0
  61. package/dist/components/atoms/Select/index.js.map +1 -0
  62. package/dist/{atoms → components/atoms}/Skeleton/Skeleton.d.ts +0 -0
  63. package/dist/{atoms → components/atoms}/Skeleton/Skeleton.js +0 -0
  64. package/dist/components/atoms/Skeleton/Skeleton.js.map +1 -0
  65. package/dist/{atoms → components/atoms}/Skeleton/index.d.ts +0 -0
  66. package/dist/{atoms → components/atoms}/Skeleton/index.js +0 -0
  67. package/dist/components/atoms/Skeleton/index.js.map +1 -0
  68. package/dist/{atoms → components/atoms}/Slider/Slider.d.ts +0 -0
  69. package/dist/{atoms → components/atoms}/Slider/Slider.js +0 -0
  70. package/dist/components/atoms/Slider/Slider.js.map +1 -0
  71. package/dist/{atoms → components/atoms}/Slider/index.d.ts +0 -0
  72. package/dist/{atoms → components/atoms}/Slider/index.js +0 -0
  73. package/dist/components/atoms/Slider/index.js.map +1 -0
  74. package/dist/{atoms → components/atoms}/Spinner/Spinner.d.ts +0 -0
  75. package/dist/{atoms → components/atoms}/Spinner/Spinner.js +0 -0
  76. package/dist/components/atoms/Spinner/Spinner.js.map +1 -0
  77. package/dist/{atoms → components/atoms}/Spinner/index.d.ts +0 -0
  78. package/dist/{atoms → components/atoms}/Spinner/index.js +0 -0
  79. package/dist/components/atoms/Spinner/index.js.map +1 -0
  80. package/dist/{atoms → components/atoms}/TextArea/TextArea.d.ts +0 -0
  81. package/dist/{atoms → components/atoms}/TextArea/TextArea.js +0 -0
  82. package/dist/components/atoms/TextArea/TextArea.js.map +1 -0
  83. package/dist/{atoms → components/atoms}/TextArea/index.d.ts +0 -0
  84. package/dist/{atoms → components/atoms}/TextArea/index.js +0 -0
  85. package/dist/components/atoms/TextArea/index.js.map +1 -0
  86. package/dist/{molecules → components/molecules}/Accordion/Accordion.d.ts +0 -0
  87. package/dist/{molecules → components/molecules}/Accordion/Accordion.js +0 -0
  88. package/dist/components/molecules/Accordion/Accordion.js.map +1 -0
  89. package/dist/{molecules → components/molecules}/Accordion/AccordionButton.d.ts +2 -2
  90. package/dist/{molecules → components/molecules}/Accordion/AccordionButton.js +1 -1
  91. package/dist/components/molecules/Accordion/AccordionButton.js.map +1 -0
  92. package/dist/{molecules → components/molecules}/Accordion/AccordionItem.d.ts +1 -1
  93. package/dist/{molecules → components/molecules}/Accordion/AccordionItem.js +0 -0
  94. package/dist/components/molecules/Accordion/AccordionItem.js.map +1 -0
  95. package/dist/{molecules → components/molecules}/Accordion/AccordionPanel.d.ts +0 -0
  96. package/dist/{molecules → components/molecules}/Accordion/AccordionPanel.js +0 -0
  97. package/dist/components/molecules/Accordion/AccordionPanel.js.map +1 -0
  98. package/dist/{molecules → components/molecules}/Accordion/index.d.ts +0 -0
  99. package/dist/{molecules → components/molecules}/Accordion/index.js +0 -0
  100. package/dist/components/molecules/Accordion/index.js.map +1 -0
  101. package/dist/{molecules → components/molecules}/AggregateRating/AggregateRating.d.ts +0 -0
  102. package/dist/{molecules → components/molecules}/AggregateRating/AggregateRating.js +0 -0
  103. package/dist/components/molecules/AggregateRating/AggregateRating.js.map +1 -0
  104. package/dist/{molecules → components/molecules}/AggregateRating/index.d.ts +0 -0
  105. package/dist/{molecules → components/molecules}/AggregateRating/index.js +0 -0
  106. package/dist/components/molecules/AggregateRating/index.js.map +1 -0
  107. package/dist/{molecules → components/molecules}/Alert/Alert.d.ts +0 -0
  108. package/dist/{molecules → components/molecules}/Alert/Alert.js +0 -0
  109. package/dist/components/molecules/Alert/Alert.js.map +1 -0
  110. package/dist/{molecules → components/molecules}/Alert/index.d.ts +0 -0
  111. package/dist/{molecules → components/molecules}/Alert/index.js +0 -0
  112. package/dist/components/molecules/Alert/index.js.map +1 -0
  113. package/dist/{molecules → components/molecules}/Banner/Banner.d.ts +0 -0
  114. package/dist/{molecules → components/molecules}/Banner/Banner.js +0 -0
  115. package/dist/components/molecules/Banner/Banner.js.map +1 -0
  116. package/dist/{molecules → components/molecules}/Banner/BannerContent.d.ts +0 -0
  117. package/dist/{molecules → components/molecules}/Banner/BannerContent.js +0 -0
  118. package/dist/components/molecules/Banner/BannerContent.js.map +1 -0
  119. package/dist/{molecules → components/molecules}/Banner/BannerImage.d.ts +0 -0
  120. package/dist/{molecules → components/molecules}/Banner/BannerImage.js +0 -0
  121. package/dist/components/molecules/Banner/BannerImage.js.map +1 -0
  122. package/dist/{molecules → components/molecules}/Banner/BannerLink.d.ts +0 -0
  123. package/dist/{molecules → components/molecules}/Banner/BannerLink.js +0 -0
  124. package/dist/components/molecules/Banner/BannerLink.js.map +1 -0
  125. package/dist/{molecules → components/molecules}/Banner/index.d.ts +0 -0
  126. package/dist/{molecules → components/molecules}/Banner/index.js +0 -0
  127. package/dist/components/molecules/Banner/index.js.map +1 -0
  128. package/dist/{molecules → components/molecules}/Breadcrumb/Breadcrumb.d.ts +0 -0
  129. package/dist/{molecules → components/molecules}/Breadcrumb/Breadcrumb.js +0 -0
  130. package/dist/components/molecules/Breadcrumb/Breadcrumb.js.map +1 -0
  131. package/dist/{molecules → components/molecules}/Breadcrumb/index.d.ts +0 -0
  132. package/dist/{molecules → components/molecules}/Breadcrumb/index.js +0 -0
  133. package/dist/components/molecules/Breadcrumb/index.js.map +1 -0
  134. package/dist/{molecules → components/molecules}/Bullets/Bullets.d.ts +0 -0
  135. package/dist/{molecules → components/molecules}/Bullets/Bullets.js +2 -2
  136. package/dist/components/molecules/Bullets/Bullets.js.map +1 -0
  137. package/dist/{molecules → components/molecules}/Bullets/index.d.ts +0 -0
  138. package/dist/{molecules → components/molecules}/Bullets/index.js +0 -0
  139. package/dist/components/molecules/Bullets/index.js.map +1 -0
  140. package/dist/{molecules → components/molecules}/Card/Card.d.ts +0 -0
  141. package/dist/{molecules → components/molecules}/Card/Card.js +0 -0
  142. package/dist/components/molecules/Card/Card.js.map +1 -0
  143. package/dist/{molecules → components/molecules}/Card/CardActions.d.ts +0 -0
  144. package/dist/{molecules → components/molecules}/Card/CardActions.js +0 -0
  145. package/dist/components/molecules/Card/CardActions.js.map +1 -0
  146. package/dist/{molecules → components/molecules}/Card/CardContent.d.ts +0 -0
  147. package/dist/{molecules → components/molecules}/Card/CardContent.js +0 -0
  148. package/dist/components/molecules/Card/CardContent.js.map +1 -0
  149. package/dist/{molecules → components/molecules}/Card/CardImage.d.ts +0 -0
  150. package/dist/{molecules → components/molecules}/Card/CardImage.js +0 -0
  151. package/dist/components/molecules/Card/CardImage.js.map +1 -0
  152. package/dist/{molecules → components/molecules}/Card/index.d.ts +0 -0
  153. package/dist/{molecules → components/molecules}/Card/index.js +0 -0
  154. package/dist/components/molecules/Card/index.js.map +1 -0
  155. package/dist/{molecules → components/molecules}/Carousel/Arrows.d.ts +0 -0
  156. package/dist/{molecules → components/molecules}/Carousel/Arrows.js +0 -0
  157. package/dist/components/molecules/Carousel/Arrows.js.map +1 -0
  158. package/dist/components/molecules/Carousel/Carousel.d.ts +54 -0
  159. package/dist/components/molecules/Carousel/Carousel.js +183 -0
  160. package/dist/components/molecules/Carousel/Carousel.js.map +1 -0
  161. package/dist/components/molecules/Carousel/CarouselItem.d.ts +11 -0
  162. package/dist/components/molecules/Carousel/CarouselItem.js +18 -0
  163. package/dist/components/molecules/Carousel/CarouselItem.js.map +1 -0
  164. package/dist/{molecules → components/molecules}/Carousel/hooks/useSlideVisibility.d.ts +0 -0
  165. package/dist/{molecules → components/molecules}/Carousel/hooks/useSlideVisibility.js +0 -0
  166. package/dist/components/molecules/Carousel/hooks/useSlideVisibility.js.map +1 -0
  167. package/dist/{molecules → components/molecules}/Carousel/index.d.ts +0 -0
  168. package/dist/{molecules → components/molecules}/Carousel/index.js +0 -0
  169. package/dist/components/molecules/Carousel/index.js.map +1 -0
  170. package/dist/{molecules → components/molecules}/CartItem/CartItem.d.ts +0 -0
  171. package/dist/{molecules → components/molecules}/CartItem/CartItem.js +0 -0
  172. package/dist/components/molecules/CartItem/CartItem.js.map +1 -0
  173. package/dist/{molecules → components/molecules}/CartItem/CartItemActions.d.ts +0 -0
  174. package/dist/{molecules → components/molecules}/CartItem/CartItemActions.js +0 -0
  175. package/dist/components/molecules/CartItem/CartItemActions.js.map +1 -0
  176. package/dist/{molecules → components/molecules}/CartItem/CartItemContent.d.ts +0 -0
  177. package/dist/{molecules → components/molecules}/CartItem/CartItemContent.js +0 -0
  178. package/dist/components/molecules/CartItem/CartItemContent.js.map +1 -0
  179. package/dist/{molecules → components/molecules}/CartItem/CartItemImage.d.ts +0 -0
  180. package/dist/{molecules → components/molecules}/CartItem/CartItemImage.js +0 -0
  181. package/dist/components/molecules/CartItem/CartItemImage.js.map +1 -0
  182. package/dist/{molecules → components/molecules}/CartItem/CartItemPrices.d.ts +0 -0
  183. package/dist/{molecules → components/molecules}/CartItem/CartItemPrices.js +0 -0
  184. package/dist/components/molecules/CartItem/CartItemPrices.js.map +1 -0
  185. package/dist/{molecules → components/molecules}/CartItem/CartItemSummary.d.ts +0 -0
  186. package/dist/{molecules → components/molecules}/CartItem/CartItemSummary.js +0 -0
  187. package/dist/components/molecules/CartItem/CartItemSummary.js.map +1 -0
  188. package/dist/{molecules → components/molecules}/CartItem/CartItemTitle.d.ts +0 -0
  189. package/dist/{molecules → components/molecules}/CartItem/CartItemTitle.js +0 -0
  190. package/dist/components/molecules/CartItem/CartItemTitle.js.map +1 -0
  191. package/dist/{molecules → components/molecules}/CartItem/index.d.ts +0 -0
  192. package/dist/{molecules → components/molecules}/CartItem/index.js +0 -0
  193. package/dist/components/molecules/CartItem/index.js.map +1 -0
  194. package/dist/{molecules → components/molecules}/Dropdown/Dropdown.d.ts +0 -0
  195. package/dist/{molecules → components/molecules}/Dropdown/Dropdown.js +0 -0
  196. package/dist/components/molecules/Dropdown/Dropdown.js.map +1 -0
  197. package/dist/{molecules → components/molecules}/Dropdown/DropdownButton.d.ts +0 -0
  198. package/dist/{molecules → components/molecules}/Dropdown/DropdownButton.js +0 -0
  199. package/dist/components/molecules/Dropdown/DropdownButton.js.map +1 -0
  200. package/dist/{molecules → components/molecules}/Dropdown/DropdownItem.d.ts +0 -0
  201. package/dist/{molecules → components/molecules}/Dropdown/DropdownItem.js +0 -0
  202. package/dist/components/molecules/Dropdown/DropdownItem.js.map +1 -0
  203. package/dist/{molecules → components/molecules}/Dropdown/DropdownMenu.d.ts +0 -0
  204. package/dist/{molecules → components/molecules}/Dropdown/DropdownMenu.js +0 -0
  205. package/dist/components/molecules/Dropdown/DropdownMenu.js.map +1 -0
  206. package/dist/{molecules → components/molecules}/Dropdown/contexts/DropdownContext.d.ts +0 -0
  207. package/dist/{molecules → components/molecules}/Dropdown/contexts/DropdownContext.js +0 -0
  208. package/dist/components/molecules/Dropdown/contexts/DropdownContext.js.map +1 -0
  209. package/dist/{molecules → components/molecules}/Dropdown/hooks/useDropdown.d.ts +0 -0
  210. package/dist/{molecules → components/molecules}/Dropdown/hooks/useDropdown.js +0 -0
  211. package/dist/components/molecules/Dropdown/hooks/useDropdown.js.map +1 -0
  212. package/dist/{molecules → components/molecules}/Dropdown/hooks/useDropdownPosition.d.ts +0 -0
  213. package/dist/{molecules → components/molecules}/Dropdown/hooks/useDropdownPosition.js +0 -0
  214. package/dist/components/molecules/Dropdown/hooks/useDropdownPosition.js.map +1 -0
  215. package/dist/{molecules → components/molecules}/Dropdown/index.d.ts +0 -0
  216. package/dist/{molecules → components/molecules}/Dropdown/index.js +0 -0
  217. package/dist/components/molecules/Dropdown/index.js.map +1 -0
  218. package/dist/{molecules → components/molecules}/Dropdown/stories/assets/Caret.d.ts +0 -0
  219. package/dist/{molecules → components/molecules}/Dropdown/stories/assets/Caret.js +0 -0
  220. package/dist/components/molecules/Dropdown/stories/assets/Caret.js.map +1 -0
  221. package/dist/{molecules → components/molecules}/Form/Form.d.ts +0 -0
  222. package/dist/{molecules → components/molecules}/Form/Form.js +0 -0
  223. package/dist/components/molecules/Form/Form.js.map +1 -0
  224. package/dist/{molecules → components/molecules}/Form/index.d.ts +0 -0
  225. package/dist/{molecules → components/molecules}/Form/index.js +0 -0
  226. package/dist/components/molecules/Form/index.js.map +1 -0
  227. package/dist/{molecules → components/molecules}/Gift/Gift.d.ts +1 -2
  228. package/dist/{molecules → components/molecules}/Gift/Gift.js +1 -1
  229. package/dist/components/molecules/Gift/Gift.js.map +1 -0
  230. package/dist/{molecules → components/molecules}/Gift/GiftContent.d.ts +0 -0
  231. package/dist/{molecules → components/molecules}/Gift/GiftContent.js +0 -0
  232. package/dist/components/molecules/Gift/GiftContent.js.map +1 -0
  233. package/dist/{molecules → components/molecules}/Gift/GiftImage.d.ts +0 -0
  234. package/dist/{molecules → components/molecules}/Gift/GiftImage.js +0 -0
  235. package/dist/components/molecules/Gift/GiftImage.js.map +1 -0
  236. package/dist/{molecules → components/molecules}/Gift/index.d.ts +0 -0
  237. package/dist/{molecules → components/molecules}/Gift/index.js +0 -0
  238. package/dist/components/molecules/Gift/index.js.map +1 -0
  239. package/dist/{molecules → components/molecules}/LoadingButton/LoadingButton.d.ts +1 -1
  240. package/dist/{molecules → components/molecules}/LoadingButton/LoadingButton.js +1 -1
  241. package/dist/components/molecules/LoadingButton/LoadingButton.js.map +1 -0
  242. package/dist/{molecules → components/molecules}/LoadingButton/index.d.ts +0 -0
  243. package/dist/{molecules → components/molecules}/LoadingButton/index.js +0 -0
  244. package/dist/components/molecules/LoadingButton/index.js.map +1 -0
  245. package/dist/{molecules → components/molecules}/Modal/Modal.d.ts +0 -0
  246. package/dist/{molecules → components/molecules}/Modal/Modal.js +0 -0
  247. package/dist/components/molecules/Modal/Modal.js.map +1 -0
  248. package/dist/{molecules → components/molecules}/Modal/ModalContent.d.ts +0 -0
  249. package/dist/{molecules → components/molecules}/Modal/ModalContent.js +0 -0
  250. package/dist/components/molecules/Modal/ModalContent.js.map +1 -0
  251. package/dist/{molecules → components/molecules}/Modal/index.d.ts +0 -0
  252. package/dist/{molecules → components/molecules}/Modal/index.js +0 -0
  253. package/dist/components/molecules/Modal/index.js.map +1 -0
  254. package/dist/{molecules → components/molecules}/Modal/useTrapFocus.d.ts +0 -0
  255. package/dist/{molecules → components/molecules}/Modal/useTrapFocus.js +0 -0
  256. package/dist/components/molecules/Modal/useTrapFocus.js.map +1 -0
  257. package/dist/{molecules → components/molecules}/OrderSummary/OrderSummary.d.ts +0 -0
  258. package/dist/{molecules → components/molecules}/OrderSummary/OrderSummary.js +0 -0
  259. package/dist/components/molecules/OrderSummary/OrderSummary.js.map +1 -0
  260. package/dist/{molecules → components/molecules}/OrderSummary/index.d.ts +0 -0
  261. package/dist/{molecules → components/molecules}/OrderSummary/index.js +0 -0
  262. package/dist/components/molecules/OrderSummary/index.js.map +1 -0
  263. package/dist/{molecules → components/molecules}/PaymentMethods/PaymentMethods.d.ts +0 -0
  264. package/dist/{molecules → components/molecules}/PaymentMethods/PaymentMethods.js +0 -0
  265. package/dist/components/molecules/PaymentMethods/PaymentMethods.js.map +1 -0
  266. package/dist/{molecules → components/molecules}/PaymentMethods/index.d.ts +0 -0
  267. package/dist/{molecules → components/molecules}/PaymentMethods/index.js +0 -0
  268. package/dist/components/molecules/PaymentMethods/index.js.map +1 -0
  269. package/dist/{molecules → components/molecules}/PaymentMethods/stories/assets/Icons.d.ts +0 -0
  270. package/dist/{molecules → components/molecules}/PaymentMethods/stories/assets/Icons.js +0 -0
  271. package/dist/components/molecules/PaymentMethods/stories/assets/Icons.js.map +1 -0
  272. package/dist/{molecules → components/molecules}/PriceRange/PriceRange.d.ts +0 -0
  273. package/dist/{molecules → components/molecules}/PriceRange/PriceRange.js +0 -0
  274. package/dist/components/molecules/PriceRange/PriceRange.js.map +1 -0
  275. package/dist/{molecules → components/molecules}/PriceRange/index.d.ts +0 -0
  276. package/dist/{molecules → components/molecules}/PriceRange/index.js +0 -0
  277. package/dist/components/molecules/PriceRange/index.js.map +1 -0
  278. package/dist/{molecules → components/molecules}/ProductCard/ProductCard.d.ts +0 -0
  279. package/dist/{molecules → components/molecules}/ProductCard/ProductCard.js +0 -0
  280. package/dist/components/molecules/ProductCard/ProductCard.js.map +1 -0
  281. package/dist/{molecules → components/molecules}/ProductCard/ProductCardActions.d.ts +0 -0
  282. package/dist/{molecules → components/molecules}/ProductCard/ProductCardActions.js +0 -0
  283. package/dist/components/molecules/ProductCard/ProductCardActions.js.map +1 -0
  284. package/dist/{molecules → components/molecules}/ProductCard/ProductCardContent.d.ts +0 -0
  285. package/dist/{molecules → components/molecules}/ProductCard/ProductCardContent.js +0 -0
  286. package/dist/components/molecules/ProductCard/ProductCardContent.js.map +1 -0
  287. package/dist/{molecules → components/molecules}/ProductCard/ProductCardImage.d.ts +0 -0
  288. package/dist/{molecules → components/molecules}/ProductCard/ProductCardImage.js +0 -0
  289. package/dist/components/molecules/ProductCard/ProductCardImage.js.map +1 -0
  290. package/dist/{molecules → components/molecules}/ProductCard/index.d.ts +0 -0
  291. package/dist/{molecules → components/molecules}/ProductCard/index.js +0 -0
  292. package/dist/components/molecules/ProductCard/index.js.map +1 -0
  293. package/dist/{molecules → components/molecules}/ProductTitle/ProductTitle.d.ts +0 -0
  294. package/dist/{molecules → components/molecules}/ProductTitle/ProductTitle.js +0 -0
  295. package/dist/components/molecules/ProductTitle/ProductTitle.js.map +1 -0
  296. package/dist/{molecules → components/molecules}/ProductTitle/index.d.ts +0 -0
  297. package/dist/{molecules → components/molecules}/ProductTitle/index.js +0 -0
  298. package/dist/components/molecules/ProductTitle/index.js.map +1 -0
  299. package/dist/{molecules → components/molecules}/QuantitySelector/QuantitySelector.d.ts +1 -1
  300. package/dist/{molecules → components/molecules}/QuantitySelector/QuantitySelector.js +1 -1
  301. package/dist/components/molecules/QuantitySelector/QuantitySelector.js.map +1 -0
  302. package/dist/{molecules → components/molecules}/QuantitySelector/index.d.ts +0 -0
  303. package/dist/{molecules → components/molecules}/QuantitySelector/index.js +0 -0
  304. package/dist/components/molecules/QuantitySelector/index.js.map +1 -0
  305. package/dist/{molecules → components/molecules}/QuantitySelector/stories/assets/Icons.d.ts +0 -0
  306. package/dist/{molecules → components/molecules}/QuantitySelector/stories/assets/Icons.js +0 -0
  307. package/dist/components/molecules/QuantitySelector/stories/assets/Icons.js.map +1 -0
  308. package/dist/{molecules → components/molecules}/RadioGroup/RadioGroup.d.ts +0 -0
  309. package/dist/{molecules → components/molecules}/RadioGroup/RadioGroup.js +0 -0
  310. package/dist/components/molecules/RadioGroup/RadioGroup.js.map +1 -0
  311. package/dist/{molecules → components/molecules}/RadioGroup/RadioOption.d.ts +0 -0
  312. package/dist/{molecules → components/molecules}/RadioGroup/RadioOption.js +1 -1
  313. package/dist/components/molecules/RadioGroup/RadioOption.js.map +1 -0
  314. package/dist/{molecules → components/molecules}/RadioGroup/index.d.ts +0 -0
  315. package/dist/{molecules → components/molecules}/RadioGroup/index.js +0 -0
  316. package/dist/components/molecules/RadioGroup/index.js.map +1 -0
  317. package/dist/{molecules → components/molecules}/RadioGroup/useRadioGroup.d.ts +0 -0
  318. package/dist/{molecules → components/molecules}/RadioGroup/useRadioGroup.js +0 -0
  319. package/dist/components/molecules/RadioGroup/useRadioGroup.js.map +1 -0
  320. package/dist/{molecules → components/molecules}/SearchInput/SearchInput.d.ts +0 -0
  321. package/dist/{molecules → components/molecules}/SearchInput/SearchInput.js +2 -3
  322. package/dist/components/molecules/SearchInput/SearchInput.js.map +1 -0
  323. package/dist/{molecules → components/molecules}/SearchInput/index.d.ts +0 -0
  324. package/dist/{molecules → components/molecules}/SearchInput/index.js +0 -0
  325. package/dist/components/molecules/SearchInput/index.js.map +1 -0
  326. package/dist/{molecules → components/molecules}/SearchInput/stories/assets/CustomIcon.d.ts +0 -0
  327. package/dist/{molecules → components/molecules}/SearchInput/stories/assets/CustomIcon.js +0 -0
  328. package/dist/components/molecules/SearchInput/stories/assets/CustomIcon.js.map +1 -0
  329. package/dist/{molecules → components/molecules}/SkuSelector/SkuSelector.d.ts +1 -1
  330. package/dist/{molecules → components/molecules}/SkuSelector/SkuSelector.js +2 -1
  331. package/dist/components/molecules/SkuSelector/SkuSelector.js.map +1 -0
  332. package/dist/{molecules → components/molecules}/SkuSelector/index.d.ts +0 -0
  333. package/dist/{molecules → components/molecules}/SkuSelector/index.js +0 -0
  334. package/dist/components/molecules/SkuSelector/index.js.map +1 -0
  335. package/dist/{molecules → components/molecules}/Table/Table.d.ts +0 -0
  336. package/dist/{molecules → components/molecules}/Table/Table.js +0 -0
  337. package/dist/components/molecules/Table/Table.js.map +1 -0
  338. package/dist/{molecules → components/molecules}/Table/TableBody.d.ts +0 -0
  339. package/dist/{molecules → components/molecules}/Table/TableBody.js +0 -0
  340. package/dist/components/molecules/Table/TableBody.js.map +1 -0
  341. package/dist/{molecules → components/molecules}/Table/TableCell.d.ts +0 -0
  342. package/dist/{molecules → components/molecules}/Table/TableCell.js +0 -0
  343. package/dist/components/molecules/Table/TableCell.js.map +1 -0
  344. package/dist/{molecules → components/molecules}/Table/TableFooter.d.ts +0 -0
  345. package/dist/{molecules → components/molecules}/Table/TableFooter.js +0 -0
  346. package/dist/components/molecules/Table/TableFooter.js.map +1 -0
  347. package/dist/{molecules → components/molecules}/Table/TableHead.d.ts +0 -0
  348. package/dist/{molecules → components/molecules}/Table/TableHead.js +0 -0
  349. package/dist/components/molecules/Table/TableHead.js.map +1 -0
  350. package/dist/{molecules → components/molecules}/Table/TableRow.d.ts +0 -0
  351. package/dist/{molecules → components/molecules}/Table/TableRow.js +0 -0
  352. package/dist/components/molecules/Table/TableRow.js.map +1 -0
  353. package/dist/{molecules → components/molecules}/Table/index.d.ts +0 -0
  354. package/dist/{molecules → components/molecules}/Table/index.js +0 -0
  355. package/dist/components/molecules/Table/index.js.map +1 -0
  356. package/dist/{organisms → components/organisms}/Hero/Hero.d.ts +0 -0
  357. package/dist/{organisms → components/organisms}/Hero/Hero.js +0 -0
  358. package/dist/components/organisms/Hero/Hero.js.map +1 -0
  359. package/dist/{organisms → components/organisms}/Hero/HeroHeading.d.ts +0 -0
  360. package/dist/{organisms → components/organisms}/Hero/HeroHeading.js +0 -0
  361. package/dist/components/organisms/Hero/HeroHeading.js.map +1 -0
  362. package/dist/{organisms → components/organisms}/Hero/HeroImage.d.ts +0 -0
  363. package/dist/{organisms → components/organisms}/Hero/HeroImage.js +0 -0
  364. package/dist/components/organisms/Hero/HeroImage.js.map +1 -0
  365. package/dist/{organisms → components/organisms}/Hero/index.d.ts +0 -0
  366. package/dist/{organisms → components/organisms}/Hero/index.js +0 -0
  367. package/dist/components/organisms/Hero/index.js.map +1 -0
  368. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStock.d.ts +0 -0
  369. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStock.js +0 -0
  370. package/dist/components/organisms/OutOfStock/OutOfStock.js.map +1 -0
  371. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStockMessage.d.ts +0 -0
  372. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStockMessage.js +0 -0
  373. package/dist/components/organisms/OutOfStock/OutOfStockMessage.js.map +1 -0
  374. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStockTitle.d.ts +0 -0
  375. package/dist/{organisms → components/organisms}/OutOfStock/OutOfStockTitle.js +0 -0
  376. package/dist/components/organisms/OutOfStock/OutOfStockTitle.js.map +1 -0
  377. package/dist/{organisms → components/organisms}/OutOfStock/index.d.ts +0 -0
  378. package/dist/{organisms → components/organisms}/OutOfStock/index.js +0 -0
  379. package/dist/components/organisms/OutOfStock/index.js.map +1 -0
  380. package/dist/{organisms → components/organisms}/Tiles/Tile.d.ts +0 -0
  381. package/dist/{organisms → components/organisms}/Tiles/Tile.js +0 -0
  382. package/dist/components/organisms/Tiles/Tile.js.map +1 -0
  383. package/dist/{organisms → components/organisms}/Tiles/Tiles.d.ts +0 -0
  384. package/dist/{organisms → components/organisms}/Tiles/Tiles.js +0 -0
  385. package/dist/components/organisms/Tiles/Tiles.js.map +1 -0
  386. package/dist/{organisms → components/organisms}/Tiles/index.d.ts +0 -0
  387. package/dist/{organisms → components/organisms}/Tiles/index.js +0 -0
  388. package/dist/components/organisms/Tiles/index.js.map +1 -0
  389. package/dist/hooks/useSlider/useSlider.d.ts +3 -1
  390. package/dist/hooks/useSlider/useSlider.js +5 -10
  391. package/dist/hooks/useSlider/useSlider.js.map +1 -1
  392. package/dist/index.d.ts +79 -92
  393. package/dist/index.js +40 -46
  394. package/dist/index.js.map +1 -1
  395. package/package.json +5 -5
  396. package/src/hooks/useSlider/useSlider.ts +8 -9
  397. package/src/molecules/Bullets/Bullets.test.tsx +5 -5
  398. package/src/molecules/Bullets/Bullets.tsx +3 -3
  399. package/src/molecules/Bullets/stories/Bullets.mdx +2 -2
  400. package/src/molecules/Carousel/Carousel.test.tsx +55 -52
  401. package/src/molecules/Carousel/Carousel.tsx +217 -85
  402. package/src/molecules/Carousel/CarouselItem.tsx +54 -0
  403. package/src/molecules/Carousel/stories/Carousel.mdx +7 -7
  404. package/src/molecules/Carousel/stories/Carousel.stories.tsx +6 -6
  405. package/dist/atoms/Badge/Badge.d.ts +0 -11
  406. package/dist/atoms/Badge/Badge.js +0 -6
  407. package/dist/atoms/Badge/Badge.js.map +0 -1
  408. package/dist/atoms/Badge/index.d.ts +0 -2
  409. package/dist/atoms/Badge/index.js +0 -2
  410. package/dist/atoms/Badge/index.js.map +0 -1
  411. package/dist/atoms/Button/Button.d.ts +0 -10
  412. package/dist/atoms/Button/Button.js +0 -6
  413. package/dist/atoms/Button/Button.js.map +0 -1
  414. package/dist/atoms/Button/index.d.ts +0 -2
  415. package/dist/atoms/Button/index.js +0 -2
  416. package/dist/atoms/Button/index.js.map +0 -1
  417. package/dist/atoms/Checkbox/Checkbox.d.ts +0 -10
  418. package/dist/atoms/Checkbox/Checkbox.js +0 -6
  419. package/dist/atoms/Checkbox/Checkbox.js.map +0 -1
  420. package/dist/atoms/Checkbox/index.d.ts +0 -2
  421. package/dist/atoms/Checkbox/index.js +0 -2
  422. package/dist/atoms/Checkbox/index.js.map +0 -1
  423. package/dist/atoms/Icon/Icon.d.ts +0 -14
  424. package/dist/atoms/Icon/Icon.js +0 -6
  425. package/dist/atoms/Icon/Icon.js.map +0 -1
  426. package/dist/atoms/Icon/index.d.ts +0 -2
  427. package/dist/atoms/Icon/index.js +0 -2
  428. package/dist/atoms/Icon/index.js.map +0 -1
  429. package/dist/atoms/Icon/stories/assets/ShoppingCart.js +0 -8
  430. package/dist/atoms/Icon/stories/assets/ShoppingCart.js.map +0 -1
  431. package/dist/atoms/Incentive/Incentive.js.map +0 -1
  432. package/dist/atoms/Incentive/index.js.map +0 -1
  433. package/dist/atoms/Incentive/stories/assets/Icons.js.map +0 -1
  434. package/dist/atoms/Input/Input.js.map +0 -1
  435. package/dist/atoms/Input/index.js.map +0 -1
  436. package/dist/atoms/Label/Label.d.ts +0 -10
  437. package/dist/atoms/Label/Label.js +0 -6
  438. package/dist/atoms/Label/Label.js.map +0 -1
  439. package/dist/atoms/Label/index.d.ts +0 -2
  440. package/dist/atoms/Label/index.js +0 -2
  441. package/dist/atoms/Label/index.js.map +0 -1
  442. package/dist/atoms/Link/Link.js.map +0 -1
  443. package/dist/atoms/Link/index.js.map +0 -1
  444. package/dist/atoms/List/List.js.map +0 -1
  445. package/dist/atoms/List/index.js.map +0 -1
  446. package/dist/atoms/Overlay/Overlay.js.map +0 -1
  447. package/dist/atoms/Overlay/index.js.map +0 -1
  448. package/dist/atoms/Popover/Popover.js.map +0 -1
  449. package/dist/atoms/Popover/index.js.map +0 -1
  450. package/dist/atoms/Price/Price.js.map +0 -1
  451. package/dist/atoms/Price/index.js.map +0 -1
  452. package/dist/atoms/Radio/Radio.d.ts +0 -7
  453. package/dist/atoms/Radio/Radio.js +0 -6
  454. package/dist/atoms/Radio/Radio.js.map +0 -1
  455. package/dist/atoms/Radio/index.d.ts +0 -2
  456. package/dist/atoms/Radio/index.js +0 -2
  457. package/dist/atoms/Radio/index.js.map +0 -1
  458. package/dist/atoms/Select/Select.js.map +0 -1
  459. package/dist/atoms/Select/index.js.map +0 -1
  460. package/dist/atoms/Skeleton/Skeleton.js.map +0 -1
  461. package/dist/atoms/Skeleton/index.js.map +0 -1
  462. package/dist/atoms/Slider/Slider.js.map +0 -1
  463. package/dist/atoms/Slider/index.js.map +0 -1
  464. package/dist/atoms/Spinner/Spinner.js.map +0 -1
  465. package/dist/atoms/Spinner/index.js.map +0 -1
  466. package/dist/atoms/TextArea/TextArea.js.map +0 -1
  467. package/dist/atoms/TextArea/index.js.map +0 -1
  468. package/dist/molecules/Accordion/Accordion.js.map +0 -1
  469. package/dist/molecules/Accordion/AccordionButton.js.map +0 -1
  470. package/dist/molecules/Accordion/AccordionItem.js.map +0 -1
  471. package/dist/molecules/Accordion/AccordionPanel.js.map +0 -1
  472. package/dist/molecules/Accordion/index.js.map +0 -1
  473. package/dist/molecules/AggregateRating/AggregateRating.js.map +0 -1
  474. package/dist/molecules/AggregateRating/index.js.map +0 -1
  475. package/dist/molecules/Alert/Alert.js.map +0 -1
  476. package/dist/molecules/Alert/index.js.map +0 -1
  477. package/dist/molecules/Banner/Banner.js.map +0 -1
  478. package/dist/molecules/Banner/BannerContent.js.map +0 -1
  479. package/dist/molecules/Banner/BannerImage.js.map +0 -1
  480. package/dist/molecules/Banner/BannerLink.js.map +0 -1
  481. package/dist/molecules/Banner/index.js.map +0 -1
  482. package/dist/molecules/Breadcrumb/Breadcrumb.js.map +0 -1
  483. package/dist/molecules/Breadcrumb/index.js.map +0 -1
  484. package/dist/molecules/Bullets/Bullets.js.map +0 -1
  485. package/dist/molecules/Bullets/index.js.map +0 -1
  486. package/dist/molecules/Card/Card.js.map +0 -1
  487. package/dist/molecules/Card/CardActions.js.map +0 -1
  488. package/dist/molecules/Card/CardContent.js.map +0 -1
  489. package/dist/molecules/Card/CardImage.js.map +0 -1
  490. package/dist/molecules/Card/index.js.map +0 -1
  491. package/dist/molecules/Carousel/Arrows.js.map +0 -1
  492. package/dist/molecules/Carousel/Carousel.d.ts +0 -16
  493. package/dist/molecules/Carousel/Carousel.js +0 -124
  494. package/dist/molecules/Carousel/Carousel.js.map +0 -1
  495. package/dist/molecules/Carousel/hooks/useSlideVisibility.js.map +0 -1
  496. package/dist/molecules/Carousel/index.js.map +0 -1
  497. package/dist/molecules/CartItem/CartItem.js.map +0 -1
  498. package/dist/molecules/CartItem/CartItemActions.js.map +0 -1
  499. package/dist/molecules/CartItem/CartItemContent.js.map +0 -1
  500. package/dist/molecules/CartItem/CartItemImage.js.map +0 -1
  501. package/dist/molecules/CartItem/CartItemPrices.js.map +0 -1
  502. package/dist/molecules/CartItem/CartItemSummary.js.map +0 -1
  503. package/dist/molecules/CartItem/CartItemTitle.js.map +0 -1
  504. package/dist/molecules/CartItem/index.js.map +0 -1
  505. package/dist/molecules/Dropdown/Dropdown.js.map +0 -1
  506. package/dist/molecules/Dropdown/DropdownButton.js.map +0 -1
  507. package/dist/molecules/Dropdown/DropdownItem.js.map +0 -1
  508. package/dist/molecules/Dropdown/DropdownMenu.js.map +0 -1
  509. package/dist/molecules/Dropdown/contexts/DropdownContext.js.map +0 -1
  510. package/dist/molecules/Dropdown/hooks/useDropdown.js.map +0 -1
  511. package/dist/molecules/Dropdown/hooks/useDropdownPosition.js.map +0 -1
  512. package/dist/molecules/Dropdown/index.js.map +0 -1
  513. package/dist/molecules/Dropdown/stories/assets/Caret.js.map +0 -1
  514. package/dist/molecules/Form/Form.js.map +0 -1
  515. package/dist/molecules/Form/index.js.map +0 -1
  516. package/dist/molecules/Gift/Gift.js.map +0 -1
  517. package/dist/molecules/Gift/GiftContent.js.map +0 -1
  518. package/dist/molecules/Gift/GiftImage.js.map +0 -1
  519. package/dist/molecules/Gift/index.js.map +0 -1
  520. package/dist/molecules/IconButton/IconButton.d.ts +0 -19
  521. package/dist/molecules/IconButton/IconButton.js +0 -9
  522. package/dist/molecules/IconButton/IconButton.js.map +0 -1
  523. package/dist/molecules/IconButton/index.d.ts +0 -2
  524. package/dist/molecules/IconButton/index.js +0 -2
  525. package/dist/molecules/IconButton/index.js.map +0 -1
  526. package/dist/molecules/LoadingButton/LoadingButton.js.map +0 -1
  527. package/dist/molecules/LoadingButton/index.js.map +0 -1
  528. package/dist/molecules/Modal/Modal.js.map +0 -1
  529. package/dist/molecules/Modal/ModalContent.js.map +0 -1
  530. package/dist/molecules/Modal/index.js.map +0 -1
  531. package/dist/molecules/Modal/useTrapFocus.js.map +0 -1
  532. package/dist/molecules/OrderSummary/OrderSummary.js.map +0 -1
  533. package/dist/molecules/OrderSummary/index.js.map +0 -1
  534. package/dist/molecules/PaymentMethods/PaymentMethods.js.map +0 -1
  535. package/dist/molecules/PaymentMethods/index.js.map +0 -1
  536. package/dist/molecules/PaymentMethods/stories/assets/Icons.js.map +0 -1
  537. package/dist/molecules/PriceRange/PriceRange.js.map +0 -1
  538. package/dist/molecules/PriceRange/index.js.map +0 -1
  539. package/dist/molecules/ProductCard/ProductCard.js.map +0 -1
  540. package/dist/molecules/ProductCard/ProductCardActions.js.map +0 -1
  541. package/dist/molecules/ProductCard/ProductCardContent.js.map +0 -1
  542. package/dist/molecules/ProductCard/ProductCardImage.js.map +0 -1
  543. package/dist/molecules/ProductCard/index.js.map +0 -1
  544. package/dist/molecules/ProductTitle/ProductTitle.js.map +0 -1
  545. package/dist/molecules/ProductTitle/index.js.map +0 -1
  546. package/dist/molecules/QuantitySelector/QuantitySelector.js.map +0 -1
  547. package/dist/molecules/QuantitySelector/index.js.map +0 -1
  548. package/dist/molecules/QuantitySelector/stories/assets/Icons.js.map +0 -1
  549. package/dist/molecules/RadioGroup/RadioGroup.js.map +0 -1
  550. package/dist/molecules/RadioGroup/RadioOption.js.map +0 -1
  551. package/dist/molecules/RadioGroup/index.js.map +0 -1
  552. package/dist/molecules/RadioGroup/useRadioGroup.js.map +0 -1
  553. package/dist/molecules/SearchInput/SearchInput.js.map +0 -1
  554. package/dist/molecules/SearchInput/index.js.map +0 -1
  555. package/dist/molecules/SearchInput/stories/assets/CustomIcon.js.map +0 -1
  556. package/dist/molecules/SkuSelector/SkuSelector.js.map +0 -1
  557. package/dist/molecules/SkuSelector/index.js.map +0 -1
  558. package/dist/molecules/Table/Table.js.map +0 -1
  559. package/dist/molecules/Table/TableBody.js.map +0 -1
  560. package/dist/molecules/Table/TableCell.js.map +0 -1
  561. package/dist/molecules/Table/TableFooter.js.map +0 -1
  562. package/dist/molecules/Table/TableHead.js.map +0 -1
  563. package/dist/molecules/Table/TableRow.js.map +0 -1
  564. package/dist/molecules/Table/index.js.map +0 -1
  565. package/dist/organisms/Hero/Hero.js.map +0 -1
  566. package/dist/organisms/Hero/HeroHeading.js.map +0 -1
  567. package/dist/organisms/Hero/HeroImage.js.map +0 -1
  568. package/dist/organisms/Hero/index.js.map +0 -1
  569. package/dist/organisms/OutOfStock/OutOfStock.js.map +0 -1
  570. package/dist/organisms/OutOfStock/OutOfStockMessage.js.map +0 -1
  571. package/dist/organisms/OutOfStock/OutOfStockTitle.js.map +0 -1
  572. package/dist/organisms/OutOfStock/index.js.map +0 -1
  573. package/dist/organisms/Tiles/Tile.js.map +0 -1
  574. package/dist/organisms/Tiles/Tiles.js.map +0 -1
  575. package/dist/organisms/Tiles/index.js.map +0 -1
  576. package/dist/setupTests.d.ts +0 -1
  577. package/dist/setupTests.js +0 -6
  578. package/dist/setupTests.js.map +0 -1
  579. package/dist/utils/toHaveNoIncomplete.d.ts +0 -17
  580. package/dist/utils/toHaveNoIncomplete.js +0 -43
  581. package/dist/utils/toHaveNoIncomplete.js.map +0 -1
@@ -24,7 +24,7 @@ describe('Carousel component', () => {
24
24
  expect(carouselSection).toHaveAttribute('data-fs-carousel')
25
25
  })
26
26
 
27
- it('should have `data-carousel-track-container` and `data-carousel-track` attributes', () => {
27
+ it('should have `data-fs-carousel-track-container` and `data-fs-carousel-track` attributes', () => {
28
28
  const { getByTestId } = render(
29
29
  <Carousel>
30
30
  <div>Slide 1</div>
@@ -38,10 +38,10 @@ describe('Carousel component', () => {
38
38
  const carouselSection = getByTestId('store-carousel')
39
39
 
40
40
  const trackContainer = carouselSection.querySelectorAll(
41
- '[data-carousel-track-container]'
41
+ '[data-fs-carousel-track-container]'
42
42
  )
43
43
 
44
- const track = carouselSection.querySelectorAll('[data-carousel-track]')
44
+ const track = carouselSection.querySelectorAll('[data-fs-carousel-track]')
45
45
 
46
46
  expect(trackContainer).toHaveLength(1)
47
47
  expect(trackContainer[0]).toBeInTheDocument()
@@ -50,7 +50,7 @@ describe('Carousel component', () => {
50
50
  expect(track[0]).toBeInTheDocument()
51
51
  })
52
52
 
53
- it('should have `data-carousel-controls` and `data-carousel-bullets` attributes', () => {
53
+ it('should have `data-fs-carousel-controls` and `data-fs-carousel-bullets` attributes', () => {
54
54
  const { getByTestId } = render(
55
55
  <Carousel>
56
56
  <div>Slide 1</div>
@@ -62,11 +62,11 @@ describe('Carousel component', () => {
62
62
  const carouselSection = getByTestId('store-carousel')
63
63
 
64
64
  const controls = carouselSection.querySelectorAll(
65
- '[data-carousel-controls]'
65
+ '[data-fs-carousel-controls]'
66
66
  )
67
67
 
68
68
  const bulletsContainer = carouselSection.querySelectorAll(
69
- '[data-carousel-bullets]'
69
+ '[data-fs-carousel-bullets]'
70
70
  )
71
71
 
72
72
  expect(controls).toHaveLength(1)
@@ -76,7 +76,7 @@ describe('Carousel component', () => {
76
76
  expect(bulletsContainer[0]).toBeInTheDocument()
77
77
  })
78
78
 
79
- it('should render 5 slides with `data-carousel-item` attributes', () => {
79
+ it('should render 5 slides with `data-fs-carousel-item` attributes', () => {
80
80
  const { getByTestId } = render(
81
81
  <Carousel infiniteMode={false}>
82
82
  <div>Slide 1</div>
@@ -88,12 +88,12 @@ describe('Carousel component', () => {
88
88
  )
89
89
 
90
90
  const carouselSection = getByTestId('store-carousel')
91
- const items = carouselSection.querySelectorAll('[data-carousel-item]')
91
+ const items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
92
92
 
93
93
  expect(items).toHaveLength(5)
94
94
  })
95
95
 
96
- it('should add `data-visible` attribute to currently visible carousel items', () => {
96
+ it('should add `data-fs-carousel-item-visible` attribute to currently visible carousel items', () => {
97
97
  const { getByTestId } = render(
98
98
  <Carousel>
99
99
  <div>Slide 1</div>
@@ -106,18 +106,18 @@ describe('Carousel component', () => {
106
106
 
107
107
  const carouselSection = getByTestId('store-carousel')
108
108
 
109
- const items = carouselSection.querySelectorAll('[data-carousel-item]')
109
+ const items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
110
110
 
111
111
  expect(items).toHaveLength(7)
112
112
 
113
- // Only the first item should have `data-visible` attributes
114
- expect(items[0]).not.toHaveAttribute('data-visible')
115
- expect(items[1]).toHaveAttribute('data-visible')
116
- expect(items[2]).not.toHaveAttribute('data-visible')
117
- expect(items[3]).not.toHaveAttribute('data-visible')
118
- expect(items[4]).not.toHaveAttribute('data-visible')
119
- expect(items[5]).not.toHaveAttribute('data-visible')
120
- expect(items[6]).not.toHaveAttribute('data-visible')
113
+ // Only the first item should have `data-fs-carousel-item-visible` attributes
114
+ expect(items[0]).not.toHaveAttribute('data-fs-carousel-item-visible')
115
+ expect(items[1]).toHaveAttribute('data-fs-carousel-item-visible')
116
+ expect(items[2]).not.toHaveAttribute('data-fs-carousel-item-visible')
117
+ expect(items[3]).not.toHaveAttribute('data-fs-carousel-item-visible')
118
+ expect(items[4]).not.toHaveAttribute('data-fs-carousel-item-visible')
119
+ expect(items[5]).not.toHaveAttribute('data-fs-carousel-item-visible')
120
+ expect(items[6]).not.toHaveAttribute('data-fs-carousel-item-visible')
121
121
  })
122
122
 
123
123
  it('should allow users to navigate through pages using the `Arrows` controls', async () => {
@@ -140,7 +140,9 @@ describe('Carousel component', () => {
140
140
  const carouselSection = getByTestId('store-carousel')
141
141
  const goToNextPageButton = getByLabelText('next')
142
142
  const goToPreviousPageButton = getByLabelText('previous')
143
- const carouselTrack = carouselSection.querySelector('[data-carousel-track]')
143
+ const carouselTrack = carouselSection.querySelector(
144
+ '[data-fs-carousel-track]'
145
+ )
144
146
 
145
147
  expect(goToNextPageButton).toBeInTheDocument()
146
148
  expect(goToPreviousPageButton).toBeInTheDocument()
@@ -150,14 +152,14 @@ describe('Carousel component', () => {
150
152
  fireEvent.click(goToNextPageButton)
151
153
  })
152
154
 
153
- let items = carouselSection.querySelectorAll('[data-carousel-item]')
155
+ let items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
154
156
 
155
157
  // Only the second item should be visible
156
- expect(items[0]).not.toHaveAttribute('data-visible')
157
- expect(items[1]).toHaveAttribute('data-visible')
158
- expect(items[2]).not.toHaveAttribute('data-visible')
159
- expect(items[3]).not.toHaveAttribute('data-visible')
160
- expect(items[4]).not.toHaveAttribute('data-visible')
158
+ expect(items[0]).not.toHaveAttribute('data-fs-carousel-item-visible')
159
+ expect(items[1]).toHaveAttribute('data-fs-carousel-item-visible')
160
+ expect(items[2]).not.toHaveAttribute('data-fs-carousel-item-visible')
161
+ expect(items[3]).not.toHaveAttribute('data-fs-carousel-item-visible')
162
+ expect(items[4]).not.toHaveAttribute('data-fs-carousel-item-visible')
161
163
 
162
164
  // Go from page 1 back to 0
163
165
  await act(async () => {
@@ -178,14 +180,14 @@ describe('Carousel component', () => {
178
180
  fireEvent.click(goToPreviousPageButton)
179
181
  })
180
182
 
181
- items = carouselSection.querySelectorAll('[data-carousel-item]')
183
+ items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
182
184
 
183
185
  // Only the first item should be visible
184
- expect(items[0]).toHaveAttribute('data-visible')
185
- expect(items[1]).not.toHaveAttribute('data-visible')
186
- expect(items[2]).not.toHaveAttribute('data-visible')
187
- expect(items[3]).not.toHaveAttribute('data-visible')
188
- expect(items[4]).not.toHaveAttribute('data-visible')
186
+ expect(items[0]).toHaveAttribute('data-fs-carousel-item-visible')
187
+ expect(items[1]).not.toHaveAttribute('data-fs-carousel-item-visible')
188
+ expect(items[2]).not.toHaveAttribute('data-fs-carousel-item-visible')
189
+ expect(items[3]).not.toHaveAttribute('data-fs-carousel-item-visible')
190
+ expect(items[4]).not.toHaveAttribute('data-fs-carousel-item-visible')
189
191
  })
190
192
 
191
193
  it('should allow users to navigate through pages by clicking on a pagination bullet', async () => {
@@ -206,8 +208,10 @@ describe('Carousel component', () => {
206
208
  )
207
209
 
208
210
  const carouselSection = getByTestId('store-carousel')
209
- const bullets = queryAllByTestId('store-bullets-item')
210
- const carouselTrack = carouselSection.querySelector('[data-carousel-track]')
211
+ const bullets = queryAllByTestId('store-bullets-bullet')
212
+ const carouselTrack = carouselSection.querySelector(
213
+ '[data-fs-carousel-track]'
214
+ )
211
215
 
212
216
  expect(bullets).toHaveLength(5)
213
217
 
@@ -217,14 +221,14 @@ describe('Carousel component', () => {
217
221
  fireEvent.click(secondPageBullet)
218
222
  })
219
223
 
220
- let items = carouselSection.querySelectorAll('[data-carousel-item]')
224
+ let items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
221
225
 
222
226
  // Only the second item should be visible
223
- expect(items[0]).not.toHaveAttribute('data-visible')
224
- expect(items[1]).toHaveAttribute('data-visible')
225
- expect(items[2]).not.toHaveAttribute('data-visible')
226
- expect(items[3]).not.toHaveAttribute('data-visible')
227
- expect(items[4]).not.toHaveAttribute('data-visible')
227
+ expect(items[0]).not.toHaveAttribute('data-fs-carousel-item-visible')
228
+ expect(items[1]).toHaveAttribute('data-fs-carousel-item-visible')
229
+ expect(items[2]).not.toHaveAttribute('data-fs-carousel-item-visible')
230
+ expect(items[3]).not.toHaveAttribute('data-fs-carousel-item-visible')
231
+ expect(items[4]).not.toHaveAttribute('data-fs-carousel-item-visible')
228
232
 
229
233
  const thirdPageBullet = getByLabelText('Go to page 3')
230
234
 
@@ -246,14 +250,14 @@ describe('Carousel component', () => {
246
250
  fireEvent.click(thirdPageBullet)
247
251
  })
248
252
 
249
- items = carouselSection.querySelectorAll('[data-carousel-item]')
253
+ items = carouselSection.querySelectorAll('[data-fs-carousel-item]')
250
254
 
251
255
  // Only the 3rd item should be visible
252
- expect(items[0]).not.toHaveAttribute('data-visible')
253
- expect(items[1]).not.toHaveAttribute('data-visible')
254
- expect(items[2]).toHaveAttribute('data-visible')
255
- expect(items[3]).not.toHaveAttribute('data-visible')
256
- expect(items[4]).not.toHaveAttribute('data-visible')
256
+ expect(items[0]).not.toHaveAttribute('data-fs-carousel-item-visible')
257
+ expect(items[1]).not.toHaveAttribute('data-fs-carousel-item-visible')
258
+ expect(items[2]).toHaveAttribute('data-fs-carousel-item-visible')
259
+ expect(items[3]).not.toHaveAttribute('data-fs-carousel-item-visible')
260
+ expect(items[4]).not.toHaveAttribute('data-fs-carousel-item-visible')
257
261
  })
258
262
 
259
263
  describe('Accessibility', () => {
@@ -305,7 +309,6 @@ describe('Carousel component', () => {
305
309
  expect(getAllByRole('tablist')).toHaveLength(1)
306
310
  expect(getAllByRole('tab')).toHaveLength(3)
307
311
  expect(getAllByRole('tab', { selected: true })).toHaveLength(1)
308
- expect(getAllByRole('tabpanel')).toHaveLength(3)
309
312
 
310
313
  // Check bullets aria-controls
311
314
  expect(
@@ -351,7 +354,7 @@ describe('Carousel component', () => {
351
354
  )
352
355
 
353
356
  const carouselTrack = getByTestId('store-carousel').querySelector(
354
- '[data-carousel-track]'
357
+ '[data-fs-carousel-track]'
355
358
  ) as Element
356
359
 
357
360
  const tabs = getAllByRole('tab')
@@ -391,7 +394,7 @@ describe('Carousel component', () => {
391
394
  )
392
395
 
393
396
  const carouselTrack = getByTestId('store-carousel').querySelector(
394
- '[data-carousel-track]'
397
+ '[data-fs-carousel-track]'
395
398
  ) as Element
396
399
 
397
400
  const tabs = getAllByRole('tab')
@@ -430,7 +433,7 @@ describe('Carousel component', () => {
430
433
  )
431
434
 
432
435
  const carouselTrack = getByTestId('store-carousel').querySelector(
433
- '[data-carousel-track]'
436
+ '[data-fs-carousel-track]'
434
437
  ) as Element
435
438
 
436
439
  const tabs = getAllByRole('tab')
@@ -466,7 +469,7 @@ describe('Carousel component', () => {
466
469
  )
467
470
 
468
471
  const carouselTrack = getByTestId('store-carousel').querySelector(
469
- '[data-carousel-track]'
472
+ '[data-fs-carousel-track]'
470
473
  ) as Element
471
474
 
472
475
  const tabs = getAllByRole('tab')
@@ -501,7 +504,7 @@ describe('Carousel component', () => {
501
504
  )
502
505
 
503
506
  const carouselTrack = getByTestId('store-carousel').querySelector(
504
- '[data-carousel-track]'
507
+ '[data-fs-carousel-track]'
505
508
  ) as Element
506
509
 
507
510
  const tabs = getAllByRole('tab')
@@ -539,7 +542,7 @@ describe('Carousel component', () => {
539
542
  )
540
543
 
541
544
  const carouselTrack = getByTestId('store-carousel').querySelector(
542
- '[data-carousel-track]'
545
+ '[data-fs-carousel-track]'
543
546
  ) as Element
544
547
 
545
548
  const tabs = getAllByRole('tab')
@@ -1,10 +1,16 @@
1
- import type { KeyboardEvent, PropsWithChildren } from 'react'
2
- import React, { useMemo } from 'react'
1
+ import type {
2
+ UIEvent,
3
+ ReactNode,
4
+ CSSProperties,
5
+ KeyboardEvent,
6
+ PropsWithChildren,
7
+ } from 'react'
8
+ import React, { useMemo, useRef } from 'react'
3
9
  import type { SwipeableProps } from 'react-swipeable'
4
10
 
5
11
  import { RightArrowIcon, LeftArrowIcon } from './Arrows'
12
+ import CarouselItem from './CarouselItem'
6
13
  import useSlider from '../../hooks/useSlider/useSlider'
7
- import useSlideVisibility from './hooks/useSlideVisibility'
8
14
  import Bullets from '../Bullets'
9
15
  import IconButton from '../IconButton'
10
16
 
@@ -23,16 +29,54 @@ const createTransformValues = (infinite: boolean, totalItems: number) => {
23
29
  }
24
30
 
25
31
  export interface CarouselProps extends SwipeableProps {
32
+ /**
33
+ * ID of the current instance of the component.
34
+ */
26
35
  id?: string
36
+ /**
37
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
38
+ */
27
39
  testId?: string
40
+ /**
41
+ * Returns the value of element's class content attribute.
42
+ */
43
+ className?: string
44
+ /**
45
+ * Whether or not the Carousel is infinite slide/scroll. Only for the `slide` variant.
46
+ * @default true
47
+ */
28
48
  infiniteMode?: boolean
49
+ /**
50
+ * Specifies which navigation elements should be visible.
51
+ * @default complete
52
+ */
29
53
  controls?: 'complete' | 'navigationArrows' | 'paginationBullets'
54
+ /**
55
+ * Specifies the slide transition. Only for the `slide` variant
56
+ */
30
57
  transition?: {
31
58
  duration: number
32
59
  property: string
33
60
  delay?: number
34
61
  timing?: string
35
62
  }
63
+ /**
64
+ * Specifies the number of items per page.
65
+ * @default 1
66
+ */
67
+ itemsPerPage?: number
68
+ /**
69
+ * Specifies the Carousel track variant.
70
+ * @default slide
71
+ */
72
+ variant?: 'slide' | 'scroll'
73
+ /**
74
+ * Specifies the navigation icons.
75
+ */
76
+ navigationIcons?: {
77
+ left?: ReactNode
78
+ right?: ReactNode
79
+ }
36
80
  }
37
81
 
38
82
  function Carousel({
@@ -44,9 +88,16 @@ function Carousel({
44
88
  property: 'transform',
45
89
  },
46
90
  children,
91
+ className,
47
92
  id = 'store-carousel',
93
+ variant = 'slide',
94
+ itemsPerPage = 1,
95
+ navigationIcons = undefined,
48
96
  ...swipeableConfigOverrides
49
97
  }: PropsWithChildren<CarouselProps>) {
98
+ const carouselTrackRef = useRef<HTMLUListElement>(null)
99
+ const isSlideCarousel = variant === 'slide'
100
+ const isScrollCarousel = variant === 'scroll'
50
101
  const childrenArray = React.Children.toArray(children)
51
102
  const childrenCount = childrenArray.length
52
103
  const numberOfSlides = infiniteMode ? childrenCount + 2 : childrenCount
@@ -66,16 +117,11 @@ function Carousel({
66
117
  )
67
118
 
68
119
  const { handlers, slide, sliderState, sliderDispatch } = useSlider({
69
- totalItems: childrenCount,
70
- itemsPerPage: 1,
120
+ itemsPerPage,
71
121
  infiniteMode,
72
- ...swipeableConfigOverrides,
73
- })
74
-
75
- const { isItemVisible, shouldRenderItem } = useSlideVisibility({
76
- itemsPerPage: sliderState.itemsPerPage,
77
- currentSlide: sliderState.currentItem,
78
122
  totalItems: childrenCount,
123
+ shouldSlideOnSwipe: isSlideCarousel,
124
+ ...swipeableConfigOverrides,
79
125
  })
80
126
 
81
127
  const postRenderedSlides =
@@ -89,6 +135,38 @@ function Carousel({
89
135
  postRenderedSlides
90
136
  )
91
137
 
138
+ const slideCarouselTrackStyle: CSSProperties = useMemo(
139
+ () => ({
140
+ display: 'flex',
141
+ width: `${numberOfSlides * 100}%`,
142
+ transition: sliderState.sliding ? slidingTransition : undefined,
143
+ transform: `translate3d(${
144
+ transformValues[sliderState.currentPage]
145
+ }%, 0, 0)`,
146
+ }),
147
+ [
148
+ numberOfSlides,
149
+ transformValues,
150
+ slidingTransition,
151
+ sliderState.sliding,
152
+ sliderState.currentPage,
153
+ ]
154
+ )
155
+
156
+ const scrollCarouselTrackStyle: CSSProperties = useMemo(
157
+ () => ({
158
+ width: '100%',
159
+ display: 'block',
160
+ overflowX: 'scroll',
161
+ whiteSpace: 'nowrap',
162
+ }),
163
+ []
164
+ )
165
+
166
+ const carouselTrackStyle =
167
+ ((isSlideCarousel && slideCarouselTrackStyle) as CSSProperties) ||
168
+ ((isScrollCarousel && scrollCarouselTrackStyle) as CSSProperties)
169
+
92
170
  const slidePrevious = () => {
93
171
  if (
94
172
  sliderState.sliding ||
@@ -111,16 +189,93 @@ function Carousel({
111
189
  slide('next', sliderDispatch)
112
190
  }
113
191
 
192
+ const onScrollTrack = (event: UIEvent) => {
193
+ if (isSlideCarousel || itemsPerPage > 1) {
194
+ return
195
+ }
196
+
197
+ const itemWidth = Number(event.currentTarget.firstElementChild?.scrollWidth)
198
+ const scrollOffset = event.currentTarget?.scrollLeft
199
+ const formatter = scrollOffset > itemWidth / 2 ? Math.round : Math.floor
200
+ const page = formatter(scrollOffset / itemWidth)
201
+
202
+ slide(page, sliderDispatch)
203
+ }
204
+
205
+ const onTransitionTrackEnd = () => {
206
+ sliderDispatch({
207
+ type: 'STOP_SLIDE',
208
+ })
209
+
210
+ if (infiniteMode && sliderState.currentItem >= childrenCount) {
211
+ sliderDispatch({
212
+ type: 'GO_TO_PAGE',
213
+ payload: {
214
+ pageIndex: 0,
215
+ shouldSlide: false,
216
+ },
217
+ })
218
+ }
219
+
220
+ if (infiniteMode && sliderState.currentItem < 0) {
221
+ sliderDispatch({
222
+ type: 'GO_TO_PAGE',
223
+ payload: {
224
+ pageIndex: sliderState.totalPages - 1,
225
+ shouldSlide: false,
226
+ },
227
+ })
228
+ }
229
+ }
230
+
231
+ const onScrollPagination = async (
232
+ index: number,
233
+ slideDirection?: 'previous' | 'next'
234
+ ) => {
235
+ if (slideDirection === 'previous' && sliderState.currentPage === 0) {
236
+ return
237
+ }
238
+
239
+ if (
240
+ slideDirection === 'next' &&
241
+ sliderState.currentPage === sliderState.totalPages - 1
242
+ ) {
243
+ return
244
+ }
245
+
246
+ let scrollOffset
247
+ const carouselItemsWidth = Number(
248
+ carouselTrackRef.current?.firstElementChild?.clientWidth
249
+ )
250
+
251
+ if (itemsPerPage > 1) {
252
+ scrollOffset = index * carouselItemsWidth * itemsPerPage
253
+ } else {
254
+ scrollOffset = index * carouselItemsWidth - carouselItemsWidth * 0.125
255
+ }
256
+
257
+ carouselTrackRef.current?.scrollTo({
258
+ left: scrollOffset,
259
+ behavior: 'smooth',
260
+ })
261
+
262
+ slide(index, sliderDispatch)
263
+ }
264
+
114
265
  // accessible behavior for tablist
115
266
  const handleBulletsKeyDown = (event: KeyboardEvent) => {
116
267
  switch (event.key) {
117
268
  case 'ArrowLeft': {
118
- slidePrevious()
269
+ isSlideCarousel && slidePrevious()
270
+ isScrollCarousel &&
271
+ onScrollPagination(sliderState.currentPage - 1, 'previous')
119
272
  break
120
273
  }
121
274
 
122
275
  case 'ArrowRight': {
123
- slideNext()
276
+ isSlideCarousel && slideNext()
277
+ isScrollCarousel &&
278
+ onScrollPagination(sliderState.currentPage + 1, 'next')
124
279
  break
125
280
  }
126
281
 
@@ -142,109 +297,86 @@ function Carousel({
142
297
  <section
143
298
  id={id}
144
299
  data-fs-carousel
300
+ className={className}
145
301
  data-testid={testId}
146
302
  aria-label="carousel"
147
303
  aria-roledescription="carousel"
148
304
  >
149
305
  <div
150
- data-carousel-track-container
151
- style={{ overflow: 'hidden', width: '100%' }}
306
+ data-fs-carousel-track-container
307
+ style={{
308
+ width: '100%',
309
+ overflow: 'hidden',
310
+ display: isScrollCarousel ? 'block' : undefined,
311
+ }}
152
312
  {...handlers}
153
313
  >
154
- <div
155
- data-carousel-track
156
- style={{
157
- display: 'flex',
158
- transition: sliderState.sliding ? slidingTransition : undefined,
159
- width: `${numberOfSlides * 100}%`,
160
- transform: `translate3d(${
161
- transformValues[sliderState.currentPage]
162
- }%, 0, 0)`,
163
- }}
164
- onTransitionEnd={() => {
165
- sliderDispatch({
166
- type: 'STOP_SLIDE',
167
- })
168
-
169
- if (sliderState.currentItem >= childrenCount) {
170
- sliderDispatch({
171
- type: 'GO_TO_PAGE',
172
- payload: {
173
- pageIndex: 0,
174
- shouldSlide: false,
175
- },
176
- })
177
- }
178
-
179
- if (sliderState.currentItem < 0) {
180
- sliderDispatch({
181
- type: 'GO_TO_PAGE',
182
- payload: {
183
- pageIndex: sliderState.totalPages - 1,
184
- shouldSlide: false,
185
- },
186
- })
187
- }
188
- }}
314
+ <ul
189
315
  aria-live="polite"
316
+ ref={carouselTrackRef}
317
+ style={carouselTrackStyle}
318
+ data-fs-carousel-track
319
+ onScroll={onScrollTrack}
320
+ onTransitionEnd={onTransitionTrackEnd}
190
321
  >
191
322
  {slides.map((currentSlide, idx) => (
192
- <div
193
- role="tabpanel"
194
- aria-roledescription="slide"
195
- key={idx}
196
- id={`carousel-item-${idx}`}
197
- data-carousel-item
198
- style={{ width: '100%' }}
199
- data-visible={
200
- isItemVisible(idx - Number(infiniteMode)) || undefined
201
- }
323
+ <CarouselItem
324
+ index={idx}
325
+ key={String(idx)}
326
+ state={sliderState}
327
+ totalItems={childrenCount}
328
+ infiniteMode={infiniteMode}
329
+ isScrollCarousel={isScrollCarousel}
202
330
  >
203
- {shouldRenderItem(idx - Number(infiniteMode))
204
- ? currentSlide
205
- : null}
206
- </div>
331
+ {currentSlide}
332
+ </CarouselItem>
207
333
  ))}
208
- </div>
334
+ </ul>
209
335
  </div>
210
336
 
211
337
  {showNavigationArrows && (
212
- <div data-carousel-controls>
338
+ <div data-fs-carousel-controls>
213
339
  <IconButton
214
- aria-label="previous"
215
- data-arrow="left"
340
+ data-fs-carousel-control="left"
216
341
  aria-controls={id}
217
- onClick={slidePrevious}
218
- icon={<LeftArrowIcon />}
342
+ aria-label="previous"
343
+ icon={navigationIcons?.left ?? <LeftArrowIcon />}
344
+ onClick={() => {
345
+ isSlideCarousel && slidePrevious()
346
+ isScrollCarousel &&
347
+ onScrollPagination(sliderState.currentPage - 1, 'previous')
348
+ }}
219
349
  />
220
350
  <IconButton
221
- aria-label="next"
222
- data-arrow="right"
351
+ data-fs-carousel-control="right"
223
352
  aria-controls={id}
224
- onClick={slideNext}
225
- icon={<RightArrowIcon />}
353
+ aria-label="next"
354
+ icon={navigationIcons?.right ?? <RightArrowIcon />}
355
+ onClick={() => {
356
+ isSlideCarousel && slideNext()
357
+ isScrollCarousel &&
358
+ onScrollPagination(sliderState.currentPage + 1, 'next')
359
+ }}
226
360
  />
227
361
  </div>
228
362
  )}
229
363
 
230
364
  {showPaginationBullets && (
231
- <div data-carousel-bullets>
365
+ <div data-fs-carousel-bullets>
232
366
  <Bullets
233
367
  tabIndex={0}
234
- totalQuantity={childrenCount}
235
368
  activeBullet={sliderState.currentPage}
236
- onClick={(_, idx) => {
237
- if (sliderState.sliding) {
238
- return
239
- }
369
+ totalQuantity={Math.ceil(childrenCount / sliderState.itemsPerPage)}
370
+ onKeyDown={handleBulletsKeyDown}
371
+ onClick={async (_, idx) => {
372
+ isSlideCarousel &&
373
+ !sliderState.sliding &&
374
+ slide(idx, sliderDispatch)
240
375
 
241
- slide(idx, sliderDispatch)
376
+ isScrollCarousel && onScrollPagination(idx)
242
377
  }}
378
+ onFocus={(event) => event.currentTarget.focus()}
243
379
  ariaControlsGenerator={(idx) => `carousel-item-${idx}`}
244
- onKeyDown={handleBulletsKeyDown}
245
- onFocus={(event) => {
246
- event.currentTarget.focus()
247
- }}
248
380
  />
249
381
  </div>
250
382
  )}