@evenicanpm/storefront-core 1.2.2 → 1.4.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 (449) hide show
  1. package/.storybook/main.ts +1 -1
  2. package/.storybook/preview.tsx +5 -4
  3. package/__mocks__/countries.ts +1 -1
  4. package/__mocks__/create-query.ts +3 -2
  5. package/__mocks__/get-product-by-id.ts +0 -1
  6. package/__mocks__/query-client.ts +1 -1
  7. package/package.json +10 -2
  8. package/src/api-manager/datasources/d365/d365-address.datasource.ts +15 -13
  9. package/src/api-manager/datasources/d365/d365-base.datasource.ts +1 -1
  10. package/src/api-manager/datasources/d365/d365-cart.datasource.ts +41 -42
  11. package/src/api-manager/datasources/d365/d365-categories.datasource.ts +4 -4
  12. package/src/api-manager/datasources/d365/d365-order.datasource.ts +10 -9
  13. package/src/api-manager/datasources/d365/d365-organization.datasource.ts +10 -10
  14. package/src/api-manager/datasources/d365/d365-product.datasource.ts +49 -36
  15. package/src/api-manager/datasources/d365/d365-session.datasource.ts +7 -9
  16. package/src/api-manager/datasources/d365/d365-user.datasource.ts +34 -43
  17. package/src/api-manager/datasources/d365/d365.datasource.ts +15 -17
  18. package/src/api-manager/datasources/d365/index.ts +2 -4
  19. package/src/api-manager/datasources/d365/test-context.ts +1 -1
  20. package/src/api-manager/datasources/d365/utils/create-search-criteria.ts +1 -1
  21. package/src/api-manager/datasources/d365/utils/decode-jwt.ts +1 -2
  22. package/src/api-manager/datasources/d365/utils/get-context-cookie.ts +3 -3
  23. package/src/api-manager/datasources/d365/utils/parse-object.ts +1 -1
  24. package/src/api-manager/datasources/d365/utils/product-images-utils.ts +29 -10
  25. package/src/api-manager/datasources/d365/utils/product-inventory-utils.ts +1 -1
  26. package/src/api-manager/datasources/e4/address/e4-address.datasource.ts +5 -5
  27. package/src/api-manager/datasources/e4/address/e4-address.remaps.ts +4 -4
  28. package/src/api-manager/datasources/e4/address/e4-address.translator.ts +9 -9
  29. package/src/api-manager/datasources/e4/cart/e4-cart.datasource.ts +37 -37
  30. package/src/api-manager/datasources/e4/cart/e4-cart.remaps.ts +10 -9
  31. package/src/api-manager/datasources/e4/cart/e4-cart.translator.ts +4 -4
  32. package/src/api-manager/datasources/e4/categories/e4-categories.datasource.ts +4 -4
  33. package/src/api-manager/datasources/e4/categories/e4-categories.translator.ts +24 -24
  34. package/src/api-manager/datasources/e4/e4.datasource.ts +7 -7
  35. package/src/api-manager/datasources/e4/graphqlRequestSdk.ts +8103 -41393
  36. package/src/api-manager/datasources/e4/order/e4-order.datasource.ts +7 -7
  37. package/src/api-manager/datasources/e4/order/e4-order.remaps.ts +8 -7
  38. package/src/api-manager/datasources/e4/organization/e4-organization.datasource.ts +4 -9
  39. package/src/api-manager/datasources/e4/product/e4-product.datasource.ts +12 -11
  40. package/src/api-manager/datasources/e4/product/e4-product.remaps.ts +4 -4
  41. package/src/api-manager/datasources/e4/product/e4-product.translator.ts +27 -43
  42. package/src/api-manager/datasources/e4/session/e4-session.datasource.ts +3 -5
  43. package/src/api-manager/datasources/e4/session/e4-session.translator.ts +2 -2
  44. package/src/api-manager/datasources/e4/user/e4-user.datasource.ts +10 -10
  45. package/src/api-manager/datasources/e4/user/e4-user.remaps.ts +6 -8
  46. package/src/api-manager/datasources/e4/user/e4-user.translator.ts +6 -4
  47. package/src/api-manager/datasources/e4/utils/unwrap-e4-variants.ts +6 -6
  48. package/src/api-manager/index.ts +8 -8
  49. package/src/api-manager/lib/category-helpers.ts +4 -3
  50. package/src/api-manager/lib/get-dynamics-context.ts +1 -1
  51. package/src/api-manager/lib/get-graphql-client.ts +4 -6
  52. package/src/api-manager/schemas/address.schema.ts +1 -1
  53. package/src/api-manager/schemas/cart.schema.ts +1 -1
  54. package/src/api-manager/schemas/d365.schema.ts +207 -206
  55. package/src/api-manager/schemas/order.schema.ts +1 -1
  56. package/src/api-manager/schemas/organization.schema.ts +1 -1
  57. package/src/api-manager/schemas/product.schema.ts +4 -4
  58. package/src/api-manager/schemas/session.schema.ts +1 -1
  59. package/src/api-manager/schemas/user.schema.ts +1 -1
  60. package/src/api-manager/services/address/mutations/create-address.ts +3 -3
  61. package/src/api-manager/services/address/mutations/delete-address.ts +2 -2
  62. package/src/api-manager/services/address/mutations/get-delivery-options.ts +4 -4
  63. package/src/api-manager/services/address/mutations/update-address.ts +3 -3
  64. package/src/api-manager/services/address/queries/get-countries.ts +6 -4
  65. package/src/api-manager/services/address/queries/get-states.ts +3 -3
  66. package/src/api-manager/services/cart/mutations/add-discount-code.ts +6 -6
  67. package/src/api-manager/services/cart/mutations/add-to-cart.ts +6 -6
  68. package/src/api-manager/services/cart/mutations/checkout.ts +2 -2
  69. package/src/api-manager/services/cart/mutations/delete-cart-line.ts +2 -2
  70. package/src/api-manager/services/cart/mutations/get-payment-accept-result.ts +4 -4
  71. package/src/api-manager/services/cart/mutations/remove-cart-line-delivery-mode.ts +3 -3
  72. package/src/api-manager/services/cart/mutations/remove-discount-code.ts +2 -2
  73. package/src/api-manager/services/cart/mutations/update-cart-line-delivery-mode.ts +2 -2
  74. package/src/api-manager/services/cart/mutations/update-cart-lines.ts +3 -3
  75. package/src/api-manager/services/cart/mutations/update-cart.ts +2 -2
  76. package/src/api-manager/services/cart/queries/get-cart-lines-inventory.ts +2 -2
  77. package/src/api-manager/services/cart/queries/get-cart.ts +5 -3
  78. package/src/api-manager/services/cart/queries/get-payment-accept-point.ts +3 -3
  79. package/src/api-manager/services/categories/queries/get-categories.ts +1 -1
  80. package/src/api-manager/services/create-extension-query.ts +1 -1
  81. package/src/api-manager/services/create-mutation.ts +2 -2
  82. package/src/api-manager/services/create-query.ts +6 -6
  83. package/src/api-manager/services/get-query-client.ts +2 -2
  84. package/src/api-manager/services/order/queries/get-order-details.ts +2 -2
  85. package/src/api-manager/services/order/queries/get-orders.ts +1 -1
  86. package/src/api-manager/services/organization/queries/get-channel-configuration.ts +1 -1
  87. package/src/api-manager/services/organization/queries/get-stores.ts +1 -1
  88. package/src/api-manager/services/product/mutations/search-products.ts +3 -4
  89. package/src/api-manager/services/product/queries/get-product-availability.ts +2 -2
  90. package/src/api-manager/services/product/queries/get-product-by-id.ts +1 -1
  91. package/src/api-manager/services/product/queries/get-product-by-ids.ts +2 -2
  92. package/src/api-manager/services/product/queries/get-product-list.ts +1 -1
  93. package/src/api-manager/services/product/queries/get-product-prices.ts +2 -2
  94. package/src/api-manager/services/product/queries/get-related-products.ts +2 -2
  95. package/src/api-manager/services/product/queries/search-products.ts +2 -2
  96. package/src/api-manager/services/product/server/product.server.ts +4 -4
  97. package/src/api-manager/services/session/mutations/session-init.ts +2 -2
  98. package/src/api-manager/services/session/mutations/session-logout.ts +1 -1
  99. package/src/api-manager/services/session/queries/get-session.ts +1 -1
  100. package/src/api-manager/services/user/mutations/add-to-wishlist.ts +3 -3
  101. package/src/api-manager/services/user/mutations/copy-cart-to-wishlist.ts +3 -3
  102. package/src/api-manager/services/user/mutations/create-wishlist.ts +4 -4
  103. package/src/api-manager/services/user/mutations/delete-wishlist.ts +3 -3
  104. package/src/api-manager/services/user/mutations/remove-from-wishlist.ts +3 -3
  105. package/src/api-manager/services/user/mutations/update-user.ts +2 -2
  106. package/src/api-manager/services/user/mutations/update-wishlist.ts +2 -2
  107. package/src/api-manager/services/user/queries/get-user-counts.ts +1 -1
  108. package/src/api-manager/services/user/queries/get-user.ts +1 -1
  109. package/src/api-manager/services/user/queries/get-wishlist-details.ts +1 -1
  110. package/src/api-manager/services/user/queries/get-wishlists.ts +1 -1
  111. package/src/api-manager/types/Datasource.ts +23 -28
  112. package/src/auth/auth-options.test.ts +6 -63
  113. package/src/auth/auth-options.ts +6 -7
  114. package/src/auth/msal.ts +4 -1
  115. package/src/auth/next-auth-cookie-manager.ts +7 -8
  116. package/src/auth/refresh-token.ts +5 -7
  117. package/src/auth/signout.ts +1 -1
  118. package/src/cms/blocks/block-manager.tsx +13 -13
  119. package/src/cms/blocks/components/brand-logos-scroller.tsx +4 -4
  120. package/src/cms/blocks/components/category-card.tsx +3 -3
  121. package/src/cms/blocks/components/category-carousel/index.tsx +8 -10
  122. package/src/cms/blocks/components/feature-pill.tsx +5 -4
  123. package/src/cms/blocks/components/featured-categories.tsx +5 -2
  124. package/src/cms/blocks/components/featured-products.tsx +2 -2
  125. package/src/cms/blocks/components/footer/data/index.ts +6 -3
  126. package/src/cms/blocks/components/footer/index.tsx +9 -13
  127. package/src/cms/blocks/components/footer/sections/footer-app-store.tsx +2 -2
  128. package/src/cms/blocks/components/footer/sections/footer-contact.tsx +3 -3
  129. package/src/cms/blocks/components/footer/sections/footer-links.tsx +5 -5
  130. package/src/cms/blocks/components/footer/sections/footer-logo.tsx +4 -4
  131. package/src/cms/blocks/components/footer/sections/footer-social-links.tsx +19 -11
  132. package/src/cms/blocks/components/footer/styles/index.ts +1 -1
  133. package/src/cms/blocks/components/footer.tsx +4 -4
  134. package/src/cms/blocks/components/hero-carousel/index.tsx +32 -29
  135. package/src/cms/blocks/components/hero.tsx +4 -5
  136. package/src/cms/blocks/components/image.tsx +4 -5
  137. package/src/cms/blocks/components/media-card.tsx +3 -3
  138. package/src/cms/blocks/components/product-carousel/index.tsx +8 -9
  139. package/src/cms/blocks/components/product-section-fullwidth/index.tsx +18 -22
  140. package/src/cms/blocks/components/rich-text.tsx +2 -2
  141. package/src/cms/blocks/components/seo/index.tsx +7 -3
  142. package/src/cms/blocks/components/services/index.tsx +5 -5
  143. package/src/cms/blocks/components/services/service-card.tsx +8 -10
  144. package/src/cms/blocks/components/shared/featured-product-card.tsx +6 -3
  145. package/src/cms/blocks/components/shared/product-category-item.tsx +5 -6
  146. package/src/cms/blocks/components/shared/product-grid.tsx +9 -5
  147. package/src/cms/blocks/components/shared/top-categories-card.tsx +10 -7
  148. package/src/cms/blocks/components/shared/top-rating-product-card.tsx +4 -4
  149. package/src/cms/blocks/icons/components/category.tsx +3 -3
  150. package/src/cms/blocks/icons/components/dotted-star.tsx +1 -1
  151. package/src/cms/blocks/icons/components/fallback-icon.tsx +1 -1
  152. package/src/cms/blocks/icons/components/gift-box.tsx +1 -1
  153. package/src/cms/blocks/icons/components/light.tsx +1 -1
  154. package/src/cms/blocks/icons/components/new-arrival.tsx +1 -1
  155. package/src/cms/blocks/icons/components/rank-badge.tsx +1 -1
  156. package/src/cms/blocks/icons/index.ts +3 -3
  157. package/src/cms/blocks/index.tsx +6 -6
  158. package/src/cms/blog.ts +2 -2
  159. package/src/cms/endpoints.ts +1 -1
  160. package/src/components-v2/BazaarCard.stories.tsx +1 -1
  161. package/src/components-v2/BazaarCard.tsx +1 -1
  162. package/src/components-v2/BazaarImage.tsx +2 -2
  163. package/src/components-v2/BazaarMenu.stories.tsx +1 -1
  164. package/src/components-v2/BazaarMenu.tsx +4 -4
  165. package/src/components-v2/BazaarSwitch.tsx +1 -1
  166. package/src/components-v2/BazaarTextField.tsx +5 -5
  167. package/src/components-v2/BorderShadowCard.stories.tsx +2 -2
  168. package/src/components-v2/CountryInput.stories.tsx +2 -2
  169. package/src/components-v2/DropZone.stories.tsx +1 -1
  170. package/src/components-v2/DropZone.tsx +8 -9
  171. package/src/components-v2/HoverBox.stories.tsx +1 -1
  172. package/src/components-v2/ImageWithFallback.tsx +3 -2
  173. package/src/components-v2/LazyImage.tsx +10 -2
  174. package/src/components-v2/Loading.tsx +1 -2
  175. package/src/components-v2/SearchInput.stories.tsx +1 -1
  176. package/src/components-v2/SearchInput.tsx +2 -2
  177. package/src/components-v2/SnackbarProvider.tsx +1 -1
  178. package/src/components-v2/T/index.tsx +1 -1
  179. package/src/components-v2/Typography.stories.tsx +2 -2
  180. package/src/components-v2/Typography.tsx +13 -13
  181. package/src/components-v2/WhiteButton.tsx +2 -2
  182. package/src/components-v2/accordion/accordion-header.tsx +6 -6
  183. package/src/components-v2/carousel/Carousel.stories.tsx +1 -1
  184. package/src/components-v2/carousel/carousel.tsx +4 -4
  185. package/src/components-v2/carousel/components/carousel-arrows.tsx +4 -4
  186. package/src/components-v2/carousel/components/carousel-dots.tsx +2 -2
  187. package/src/components-v2/carousel-cards/carousel-card-1/carousel-card-1.tsx +4 -4
  188. package/src/components-v2/categories/Categories.stories.tsx +6 -5
  189. package/src/components-v2/categories/category-list/category-list.tsx +4 -5
  190. package/src/components-v2/categories/category-list/styles.ts +2 -9
  191. package/src/components-v2/categories/category-list-item/category-menu-item.tsx +6 -6
  192. package/src/components-v2/categories/category-menu.tsx +18 -15
  193. package/src/components-v2/categories/mega-menu/banner.tsx +4 -4
  194. package/src/components-v2/categories/mega-menu/column-list.tsx +6 -6
  195. package/src/components-v2/categories/mega-menu/mega-menu-1.tsx +8 -8
  196. package/src/components-v2/categories/mega-menu/mega-menu-2.tsx +5 -4
  197. package/src/components-v2/categories/types.ts +1 -1
  198. package/src/components-v2/countries-input.tsx +2 -2
  199. package/src/components-v2/flex-box/Flex.stories.tsx +1 -1
  200. package/src/components-v2/flex-box/flex-between.tsx +1 -1
  201. package/src/components-v2/flex-box/flex-box.tsx +1 -1
  202. package/src/components-v2/flex-box/flex-row-center.tsx +1 -1
  203. package/src/components-v2/flex-box/index.ts +1 -1
  204. package/src/components-v2/header/__tests__/user.test.tsx +3 -3
  205. package/src/components-v2/header/components/categories-menu.tsx +6 -6
  206. package/src/components-v2/header/components/mobile-header.tsx +17 -18
  207. package/src/components-v2/header/components/user.tsx +29 -28
  208. package/src/components-v2/header/header.tsx +9 -10
  209. package/src/components-v2/header/sticky-header.tsx +3 -3
  210. package/src/components-v2/header/styles/index.ts +3 -2
  211. package/src/components-v2/mini-cart/__tests__/cart-item.test.tsx +18 -18
  212. package/src/components-v2/mini-cart/__tests__/mini-cart.test.tsx +7 -7
  213. package/src/components-v2/mini-cart/components/bottom-actions.tsx +4 -3
  214. package/src/components-v2/mini-cart/components/cart-item.tsx +16 -15
  215. package/src/components-v2/mini-cart/components/empty-view.tsx +2 -1
  216. package/src/components-v2/mini-cart/components/top-header.tsx +8 -7
  217. package/src/components-v2/mini-cart/mini-cart-trigger.tsx +4 -4
  218. package/src/components-v2/mini-cart/mini-cart.tsx +11 -12
  219. package/src/components-v2/mobile-navigation/MobileNavigationBar.stories.tsx +2 -2
  220. package/src/components-v2/mobile-navigation/mobile-navigation-bar.tsx +15 -15
  221. package/src/components-v2/mobile-navigation/styles/index.ts +2 -2
  222. package/src/components-v2/nav-link/nav-link-2.tsx +2 -2
  223. package/src/components-v2/nav-link/nav-link-3.tsx +4 -4
  224. package/src/components-v2/nav-link/nav-link.tsx +4 -4
  225. package/src/components-v2/navbar/categories.tsx +8 -6
  226. package/src/components-v2/navbar/category-based-menu/category-based-menu.tsx +17 -16
  227. package/src/components-v2/navbar/category-based-menu/styles.ts +3 -3
  228. package/src/components-v2/navbar/category-based-menu/types.ts +1 -1
  229. package/src/components-v2/navbar/mega-menu/mega-menu.tsx +11 -10
  230. package/src/components-v2/navbar/mega-menu/styles.ts +2 -2
  231. package/src/components-v2/navbar/mobile-menu/mobile-menu.test.tsx +3 -3
  232. package/src/components-v2/navbar/mobile-menu/mobile-menu.tsx +21 -13
  233. package/src/components-v2/navbar/nav-list/cms-nav.test.tsx +4 -4
  234. package/src/components-v2/navbar/nav-list/nav-item-child.tsx +13 -14
  235. package/src/components-v2/navbar/nav-list/nav-list.tsx +128 -90
  236. package/src/components-v2/navbar/navbar.tsx +4 -5
  237. package/src/components-v2/navbar/styles.ts +4 -4
  238. package/src/components-v2/navbar/utils/transform-nav.test.ts +3 -3
  239. package/src/components-v2/navbar/utils/transform-nav.ts +3 -3
  240. package/src/components-v2/no-records.tsx +3 -3
  241. package/src/components-v2/product-cards/discount-chip.tsx +1 -1
  242. package/src/components-v2/product-cards/favorite-button.tsx +3 -3
  243. package/src/components-v2/product-cards/product-card/ProductCard.stories.tsx +2 -2
  244. package/src/components-v2/product-cards/product-card/product-card.tsx +43 -45
  245. package/src/components-v2/product-cards/product-card/styles/index.ts +2 -2
  246. package/src/components-v2/product-cards/product-card-plp/ProductCardPlp.stories.tsx +2 -2
  247. package/src/components-v2/product-cards/product-card-plp/product-card.tsx +25 -24
  248. package/src/components-v2/product-cards/product-card-plp-list/ProductCardPlpList.stories.tsx +1 -1
  249. package/src/components-v2/product-cards/product-card-plp-list/components/tags.tsx +1 -1
  250. package/src/components-v2/product-cards/product-card-plp-list/product-card.tsx +22 -19
  251. package/src/components-v2/product-cards/product-card-search/ProductCardSearch.stories.tsx +2 -2
  252. package/src/components-v2/product-cards/product-card-search/product-card.tsx +20 -18
  253. package/src/components-v2/product-cards/product-price.tsx +2 -2
  254. package/src/components-v2/product-cards/product-rating.tsx +4 -4
  255. package/src/components-v2/product-cards/product-title.tsx +2 -2
  256. package/src/components-v2/product-cards/quantity-buttons.tsx +6 -6
  257. package/src/components-v2/product-dialog/ProductDialog.stories.tsx +2 -2
  258. package/src/components-v2/product-dialog/compound/product-dialog.tsx +16 -16
  259. package/src/components-v2/product-dialog/index.tsx +1 -1
  260. package/src/components-v2/product-dimensions/Dimensions.stories.tsx +3 -2
  261. package/src/components-v2/product-dimensions/compound/dimensions-group-error.tsx +3 -3
  262. package/src/components-v2/product-dimensions/compound/dimensions-group-label.tsx +1 -1
  263. package/src/components-v2/product-dimensions/compound/dimensions-group-list-chip.tsx +5 -4
  264. package/src/components-v2/product-dimensions/compound/dimensions-group-list.tsx +7 -2
  265. package/src/components-v2/product-dimensions/compound/dimensions-group.tsx +3 -4
  266. package/src/components-v2/product-dimensions/compound/dimensions.tsx +6 -2
  267. package/src/components-v2/product-dimensions/index.tsx +4 -4
  268. package/src/components-v2/product-dimensions/utils/has-selected-dimension.ts +1 -1
  269. package/src/components-v2/product-quantity-buttons/ProductQuantity.stories.tsx +2 -1
  270. package/src/components-v2/product-quantity-buttons/compound/quantity-buttons-root.tsx +8 -8
  271. package/src/components-v2/product-quantity-buttons/index.tsx +5 -2
  272. package/src/components-v2/product-quantity-variants/ProductQuantity.stories.tsx +3 -2
  273. package/src/components-v2/product-quantity-variants/index.tsx +14 -15
  274. package/src/components-v2/products-view/ProductsGrid.stories.tsx +3 -2
  275. package/src/components-v2/products-view/ProductsList.stories.tsx +3 -4
  276. package/src/components-v2/products-view/compound/context.ts +4 -3
  277. package/src/components-v2/products-view/compound/products-grid-view.tsx +9 -8
  278. package/src/components-v2/products-view/compound/products-list-view.tsx +9 -8
  279. package/src/components-v2/products-view/compound/types.ts +2 -2
  280. package/src/components-v2/products-view/index.tsx +5 -5
  281. package/src/components-v2/progress/ProgressBar.stories.tsx +2 -2
  282. package/src/components-v2/progress/progress.tsx +4 -4
  283. package/src/components-v2/scrollbar/Scrollbar.stories.tsx +2 -1
  284. package/src/components-v2/scrollbar/scrollbar.tsx +4 -4
  285. package/src/components-v2/search-bar/SearchBarLarge.stories.tsx +2 -1
  286. package/src/components-v2/search-bar/compound/context.ts +2 -3
  287. package/src/components-v2/search-bar/compound/results-item-lg.tsx +3 -2
  288. package/src/components-v2/search-bar/compound/results-item-sm.tsx +10 -9
  289. package/src/components-v2/search-bar/compound/results-suspense.tsx +5 -6
  290. package/src/components-v2/search-bar/compound/results.tsx +11 -7
  291. package/src/components-v2/search-bar/compound/search-bar-root.tsx +10 -10
  292. package/src/components-v2/search-bar/compound/textfield-adornment-category.tsx +32 -33
  293. package/src/components-v2/search-bar/compound/textfield-adornment-search-icon.tsx +3 -2
  294. package/src/components-v2/search-bar/compound/textfield.tsx +5 -8
  295. package/src/components-v2/search-bar/hooks/use-search.ts +2 -3
  296. package/src/components-v2/search-bar/styles/index.ts +2 -2
  297. package/src/components-v2/search-bar/utils/findCategoryNameById.ts +1 -1
  298. package/src/components-v2/section/Section.stories.tsx +4 -4
  299. package/src/components-v2/section/compound/section-header.tsx +7 -7
  300. package/src/components-v2/section/compound/section.tsx +4 -3
  301. package/src/components-v2/side-nav/SideNav.stories.tsx +4 -4
  302. package/src/components-v2/side-nav/side-nav.tsx +3 -3
  303. package/src/components-v2/wishlist-dialogs/__tests__/create-new-list.test.tsx +5 -7
  304. package/src/components-v2/wishlist-dialogs/add-to-wishlist/AddToWishlist.stories.tsx +2 -2
  305. package/src/components-v2/wishlist-dialogs/add-to-wishlist/add-to-wishlist-button.tsx +2 -2
  306. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-bottom-ui.tsx +3 -3
  307. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-dialog.tsx +8 -9
  308. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-list.tsx +6 -7
  309. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/context.ts +2 -1
  310. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-header.tsx +8 -10
  311. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-item.tsx +6 -6
  312. package/src/components-v2/wishlist-dialogs/add-to-wishlist/hooks/use-add-to-wishlist.ts +6 -6
  313. package/src/components-v2/wishlist-dialogs/add-to-wishlist/index.tsx +11 -13
  314. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-bottom-ui.tsx +3 -3
  315. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-dialog.tsx +11 -9
  316. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-form.tsx +6 -4
  317. package/src/components-v2/wishlist-dialogs/create-wishlist/create-wishlist-button.tsx +2 -2
  318. package/src/components-v2/wishlist-dialogs/styles.ts +4 -4
  319. package/src/hooks/use-cart.ts +1 -1
  320. package/src/hooks/use-nextauth-session.ts +65 -0
  321. package/src/hooks/use-overflow-detect.ts +1 -1
  322. package/src/hooks/use-settings.ts +1 -1
  323. package/src/hooks/use-variants.ts +29 -31
  324. package/src/lib/build-detail-url.ts +1 -1
  325. package/src/lib/build-product-detail-url.ts +1 -1
  326. package/src/lib/cart-cookie-handler.ts +1 -1
  327. package/src/lib/category-helpers.ts +4 -4
  328. package/src/lib/create-graphql-client.ts +1 -2
  329. package/src/lib/get-palette-color.ts +36 -16
  330. package/src/lib/graphqlRequestSdk.ts +2 -3
  331. package/src/lib/hexToLuma.ts +4 -4
  332. package/src/lib/product-list-types.ts +1 -1
  333. package/src/lib/refiner-utils.ts +1 -1
  334. package/src/lib/store-hours-helper.ts +6 -6
  335. package/src/pages-v2/account/account-navigation.tsx +13 -13
  336. package/src/pages-v2/account/addresses/address-form.tsx +26 -23
  337. package/src/pages-v2/account/addresses/address-item.tsx +14 -15
  338. package/src/pages-v2/account/dashboard-header.tsx +9 -9
  339. package/src/pages-v2/account/orders/order-progress.tsx +14 -14
  340. package/src/pages-v2/account/orders/order-row.tsx +11 -10
  341. package/src/pages-v2/account/orders/order-summary.tsx +7 -6
  342. package/src/pages-v2/account/orders/ordered-products.tsx +19 -18
  343. package/src/pages-v2/account/profile/profile-button.test.tsx +3 -3
  344. package/src/pages-v2/account/profile/profile-button.tsx +5 -4
  345. package/src/pages-v2/account/profile/user-info.tsx +8 -10
  346. package/src/pages-v2/account/styles.ts +1 -1
  347. package/src/pages-v2/account/wishlist/create-new-list.tsx +11 -9
  348. package/src/pages-v2/account/wishlist/create-wishlist-button.tsx +2 -2
  349. package/src/pages-v2/account/wishlist/wishlist-item.tsx +15 -14
  350. package/src/pages-v2/blog/blog-card.tsx +58 -0
  351. package/src/pages-v2/blog/pagination.tsx +1 -2
  352. package/src/pages-v2/cart/__tests__/cart-item.test.tsx +8 -10
  353. package/src/pages-v2/cart/__tests__/checkout-form.test.tsx +8 -16
  354. package/src/pages-v2/cart/__tests__/countries.json +19407 -0
  355. package/src/pages-v2/cart/__tests__/estimate-shipping.test.tsx +11 -11
  356. package/src/pages-v2/cart/cart-item.tsx +110 -100
  357. package/src/pages-v2/cart/checkout-form.tsx +20 -22
  358. package/src/pages-v2/cart/coupon-entry.tsx +12 -10
  359. package/src/pages-v2/cart/estimate-shipping.tsx +11 -10
  360. package/src/pages-v2/checkout/checkout-alt-form/checkout-form.tsx +19 -18
  361. package/src/pages-v2/checkout/checkout-alt-form/checkout-step.tsx +7 -7
  362. package/src/pages-v2/checkout/checkout-alt-form/step-heading.tsx +4 -4
  363. package/src/pages-v2/checkout/checkout-alt-form/steps/address/address-card.tsx +4 -4
  364. package/src/pages-v2/checkout/checkout-alt-form/steps/address/delivery-address.tsx +33 -31
  365. package/src/pages-v2/checkout/checkout-alt-form/steps/address/new-address-form.tsx +19 -21
  366. package/src/pages-v2/checkout/checkout-alt-form/steps/address/styles.ts +1 -1
  367. package/src/pages-v2/checkout/checkout-alt-form/steps/customer-info/customer-information.tsx +16 -17
  368. package/src/pages-v2/checkout/checkout-alt-form/steps/payment/payment-details.tsx +25 -28
  369. package/src/pages-v2/checkout/checkout-alt-form/steps/payment/safe-card-preview-data.tsx +2 -2
  370. package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-date.tsx +5 -5
  371. package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-options.tsx +33 -34
  372. package/src/pages-v2/checkout/checkout-alt-summary/cart-item.tsx +2 -2
  373. package/src/pages-v2/checkout/checkout-alt-summary/checkout-alt-summary.tsx +9 -9
  374. package/src/pages-v2/checkout/checkout-alt-summary/list-item.tsx +2 -2
  375. package/src/pages-v2/confirmation/address.tsx +4 -4
  376. package/src/pages-v2/confirmation/confirmation-summary.tsx +11 -10
  377. package/src/pages-v2/confirmation/ordered-products.tsx +12 -11
  378. package/src/pages-v2/product-details/available-shops.tsx +6 -6
  379. package/src/pages-v2/product-details/bopis/find-in-store-button.tsx +3 -3
  380. package/src/pages-v2/product-details/bopis/find-in-store-modal.tsx +16 -17
  381. package/src/pages-v2/product-details/bopis/pickup-option-select.tsx +5 -5
  382. package/src/pages-v2/product-details/bopis/search-header.tsx +3 -2
  383. package/src/pages-v2/product-details/bopis/store-card/shop-card.tsx +15 -16
  384. package/src/pages-v2/product-details/bopis/store-card/utils/getDaysResources.ts +1 -1
  385. package/src/pages-v2/product-details/checkbox-label.tsx +3 -3
  386. package/src/pages-v2/product-details/currency.ts +1 -0
  387. package/src/pages-v2/product-details/frequently-bought.tsx +12 -12
  388. package/src/pages-v2/product-details/frequently-product-card.tsx +5 -5
  389. package/src/pages-v2/product-details/product-comment.tsx +4 -4
  390. package/src/pages-v2/product-details/product-description.tsx +3 -3
  391. package/src/pages-v2/product-details/product-filter-card.tsx +17 -14
  392. package/src/pages-v2/product-details/product-intro/compound/context.ts +10 -5
  393. package/src/pages-v2/product-details/product-intro/compound/product-info.tsx +19 -19
  394. package/src/pages-v2/product-details/product-intro/compound/product-intro-images.tsx +39 -33
  395. package/src/pages-v2/product-details/product-intro/compound/product-intro.tsx +7 -7
  396. package/src/pages-v2/product-details/product-intro/compound/thumbnail-with-skeleton.tsx +2 -2
  397. package/src/pages-v2/product-details/product-intro/utils.ts +3 -5
  398. package/src/pages-v2/product-details/product-review.tsx +9 -9
  399. package/src/pages-v2/product-details/product-tabs.tsx +11 -8
  400. package/src/pages-v2/product-details/related-products.tsx +12 -9
  401. package/src/pages-v2/product-list/breadcrumbs.tsx +3 -3
  402. package/src/pages-v2/product-list/checkbox-label.tsx +3 -3
  403. package/src/pages-v2/product-list/facet-group.tsx +8 -8
  404. package/src/pages-v2/product-list/facet.tsx +4 -3
  405. package/src/pages-v2/product-list/list-filter.tsx +6 -6
  406. package/src/pages-v2/product-list/pagination.tsx +2 -2
  407. package/src/pages-v2/product-list/product-list-context.tsx +22 -18
  408. package/src/pages-v2/product-list/product-list-state.ts +14 -14
  409. package/src/pages-v2/product-list/product-list-view.tsx +18 -17
  410. package/src/pages-v2/product-list/product-rating.tsx +6 -3
  411. package/src/pages-v2/product-list/quick-view-dialog-content.tsx +21 -23
  412. package/src/pages-v2/product-list/quick-view-dialog.tsx +7 -3
  413. package/src/pages-v2/product-list/range-filter.tsx +5 -6
  414. package/src/pages-v2/product-list/scrollbar.tsx +4 -4
  415. package/src/pages-v2/product-list/search-bar.tsx +12 -12
  416. package/src/pages-v2/product-list/selected-facets.tsx +4 -4
  417. package/src/pages-v2/product-list/side-nav.tsx +2 -2
  418. package/src/pages-v2/product-list/swatch.tsx +15 -11
  419. package/src/pages-v2/product-list/utils/generate-breadcrumbs.ts +1 -1
  420. package/src/pages-v2/product-list/utils/getCategoryFilterFromSlug.ts +33 -68
  421. package/src/pages-v2/product-list/utils/product-list-helper.ts +5 -5
  422. package/src/pages-v2/product-list/utils/product-list-types.ts +1 -1
  423. package/src/pages-v2/product-list/utils/search-for-category.ts +4 -4
  424. package/src/pages-v2/product-list/utils/sort-options.ts +1 -1
  425. package/src/pages-v2/quickorder/order-upload.tsx +92 -78
  426. package/src/pages-v2/quickorder/provider.tsx +13 -10
  427. package/src/pages-v2/quickorder/quick-order-header.tsx +1 -1
  428. package/src/pages-v2/quickorder/quick-order-row.tsx +9 -8
  429. package/src/pages-v2/quickorder/quick-order-table.tsx +3 -3
  430. package/src/pages-v2/quickorder/quick-order.tsx +48 -43
  431. package/src/providers/nav-provider/index.tsx +3 -3
  432. package/src/providers/nav-provider/utils/createLink.ts +1 -1
  433. package/src/providers/notifications/notification-context.tsx +3 -4
  434. package/src/providers/notifications/use-notification.ts +1 -1
  435. package/tsconfig.json +1 -1
  436. package/src/components-v2/sticky/Sticky.stories.tsx +0 -88
  437. package/src/components-v2/sticky/index.ts +0 -1
  438. package/src/components-v2/sticky/sticky.tsx +0 -62
  439. package/src/components-v2/sticky/styles.ts +0 -38
  440. package/src/components-v2/utils/constants.ts +0 -8
  441. package/src/theme/build-mui-theme.ts +0 -104
  442. package/src/theme/components.ts +0 -163
  443. package/src/theme/emotion-cache.tsx +0 -101
  444. package/src/theme/theme-colors.ts +0 -205
  445. package/src/theme/theme-options-sample.ts +0 -69
  446. package/src/theme/theme-options.ts +0 -172
  447. package/src/theme/theme-provider.tsx +0 -44
  448. package/src/theme/typography.ts +0 -22
  449. package/src/theme/utils.ts +0 -17
@@ -1,46 +1,49 @@
1
1
  // Template: Market1
2
2
  // This component works best with cutout product images
3
- import React from "react";
4
- import { Box, Container } from "@mui/material";
5
3
 
6
4
  // GLOBAL CUSTOM COMPONENTS
7
5
  import { Carousel } from "@evenicanpm/storefront-core/src/components-v2/carousel/index";
8
6
  import CarouselCard1 from "@evenicanpm/storefront-core/src/components-v2/carousel-cards/carousel-card-1/index";
9
-
7
+ import { Box, Container } from "@mui/material";
8
+ import React from "react";
9
+ import type { HeroCarouselBlock, Slide } from "@/cms/blocks/interfaces";
10
10
  import { getImageUrl } from "@/cms/endpoints";
11
- import { HeroCarouselBlock, Slide } from "@/cms/blocks/interfaces";
12
11
 
13
- export default function HeroCarousel(data: HeroCarouselBlock) {
12
+ export default function HeroCarousel(data: Readonly<HeroCarouselBlock>) {
14
13
  return (
15
14
  <Box sx={{ backgroundColor: "white" }}>
16
15
  <Container className="pt-2 pb-2">
17
16
  <Carousel slidesToShow={1} autoplay={true} arrows={false} dots={true}>
18
- {data.Slides.map((data: Slide, ind: number) => (
19
- <CarouselCard1 key={ind}>
20
- <CarouselCard1.Info>
21
- <CarouselCard1.Title title={data?.heading} />
22
- <CarouselCard1.Description description={data?.description} />
23
- <CarouselCard1.Button
24
- buttonLink={
25
- data?.linkToPage?.slug
26
- ? `/pages/${data?.linkToPage?.slug}`
27
- : data?.linkToProduct?.sku
28
- ? `/product/${data?.linkToProduct?.sku}`
29
- : ""
17
+ {data.Slides.map((data: Slide, ind: number) => {
18
+ const productLink = data?.linkToProduct?.sku
19
+ ? `/product/${data.linkToProduct.sku}`
20
+ : "";
21
+
22
+ const buttonLink = data?.linkToPage?.slug
23
+ ? `/pages/${data.linkToPage.slug}`
24
+ : productLink;
25
+
26
+ return (
27
+ <CarouselCard1 key={data.id + ind}>
28
+ <CarouselCard1.Info>
29
+ <CarouselCard1.Title title={data?.heading} />
30
+ <CarouselCard1.Description description={data?.description} />
31
+ <CarouselCard1.Button
32
+ buttonLink={buttonLink}
33
+ buttonText={data?.buttonText}
34
+ />
35
+ </CarouselCard1.Info>
36
+
37
+ <CarouselCard1.Image
38
+ imgUrl={
39
+ data?.image?.formats
40
+ ? getImageUrl(data?.image?.formats)
41
+ : data?.image?.url
30
42
  }
31
- buttonText={data?.buttonText}
32
43
  />
33
- </CarouselCard1.Info>
34
-
35
- <CarouselCard1.Image
36
- imgUrl={
37
- data?.image?.formats
38
- ? getImageUrl(data?.image?.formats)
39
- : data?.image?.url
40
- }
41
- />
42
- </CarouselCard1>
43
- ))}
44
+ </CarouselCard1>
45
+ );
46
+ })}
44
47
  </Carousel>
45
48
  </Container>
46
49
  </Box>
@@ -1,10 +1,9 @@
1
- import React from "react";
2
- import NextLink from "next/link";
1
+ import { Box, Button, Container, Typography } from "@mui/material";
3
2
  import Image from "next/image";
4
- import { Box, Container, Button, Typography } from "@mui/material";
5
-
3
+ import NextLink from "next/link";
4
+ import React from "react";
5
+ import type { HeroSectionBlock } from "@/cms/blocks/interfaces";
6
6
  import cmsEndPoints from "@/cms/endpoints";
7
- import { HeroSectionBlock } from "@/cms/blocks/interfaces";
8
7
 
9
8
  const sxBanner = {
10
9
  position: "relative",
@@ -1,9 +1,8 @@
1
- import React from "react";
2
- import NextImage from "next/image";
3
- import { getImageUrl } from "@/cms/endpoints";
4
- import { sizes } from "@/cms/endpoints";
5
1
  import { Container, Paper } from "@mui/material";
6
- import { Media } from "@/cms/blocks/interfaces";
2
+ import NextImage from "next/image";
3
+ import React from "react";
4
+ import type { Media } from "@/cms/blocks/interfaces";
5
+ import { getImageUrl, type sizes } from "@/cms/endpoints";
7
6
 
8
7
  interface Props {
9
8
  media: Media;
@@ -1,9 +1,9 @@
1
- import React from "react";
1
+ import Box from "@mui/material/Box";
2
2
  import Card from "@mui/material/Card";
3
3
  import CardContent from "@mui/material/CardContent";
4
- import Box from "@mui/material/Box";
5
4
  import Typography from "@mui/material/Typography";
6
5
  import Image from "next/image";
6
+ import React from "react";
7
7
 
8
8
  import cmsEndPoints from "@/cms/endpoints";
9
9
 
@@ -12,7 +12,7 @@ interface Props {
12
12
  imgUrl: string;
13
13
  }
14
14
 
15
- export default function MediaCard({ name, imgUrl }: Props) {
15
+ export default function MediaCard({ name, imgUrl }: Readonly<Props>) {
16
16
  return (
17
17
  <Card sx={{ width: "100%" }}>
18
18
  <Box
@@ -1,20 +1,19 @@
1
1
  "use client";
2
- import React from "react";
3
- import { Light } from "@/cms/blocks/icons/index";
4
- import { Box } from "@mui/system";
2
+ import getProductByIds from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-by-ids";
5
3
  import { Carousel } from "@evenicanpm/storefront-core/src/components-v2/carousel/index";
6
- import { Section } from "@evenicanpm/storefront-core/src/components-v2/section";
7
-
8
4
  // CMS
9
5
  import ProductCard from "@evenicanpm/storefront-core/src/components-v2/product-cards/product-card/product-card";
6
+ import { Section } from "@evenicanpm/storefront-core/src/components-v2/section";
7
+ import type { SimpleProduct } from "@msdyn365-commerce/retail-proxy";
8
+ import { Box } from "@mui/system";
9
+ import React from "react";
10
+ import { Light } from "@/cms/blocks/icons/index";
11
+ import type { Product, ProductCarouselBlock } from "@/cms/blocks/interfaces";
10
12
  import { getImageUrl } from "@/cms/endpoints";
11
- import getProductByIds from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-by-ids";
12
- import { SimpleProduct } from "@msdyn365-commerce/retail-proxy";
13
- import { Product, ProductCarouselBlock } from "@/cms/blocks/interfaces";
14
13
 
15
14
  type CombinedProduct = Product & SimpleProduct;
16
15
 
17
- export default function ProductCarousel(data: ProductCarouselBlock) {
16
+ export default function ProductCarousel(data: Readonly<ProductCarouselBlock>) {
18
17
  const { data: e4Products = [], error } = getProductByIds.useData({
19
18
  id: data?.products?.map((product: Product) => product.sku),
20
19
  });
@@ -1,36 +1,32 @@
1
- import React from "react";
2
- import NextLink from "next/link";
3
- import Image from "next/image";
4
-
5
- // Icons
6
- import { getIcon } from "@/cms/blocks/icons/index";
7
-
8
- // Components
9
- import Grid from "@mui/material/Grid2";
10
- import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
11
- import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
1
+ import { getQueryClient } from "@evenicanpm/storefront-core/src/api-manager/services/get-query-client";
2
+ // API
3
+ import getProductByIds from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-by-ids";
12
4
  import BazaarCard from "@evenicanpm/storefront-core/src/components-v2/BazaarCard";
5
+ import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
13
6
  import { Section } from "@evenicanpm/storefront-core/src/components-v2/section";
14
-
7
+ import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
8
+ import buildDetailUrl from "@evenicanpm/storefront-core/src/lib/build-detail-url";
15
9
  // Utils
16
10
  import { currency } from "@evenicanpm/storefront-core/src/lib/lib";
17
- import { getImageUrl } from "@/cms/endpoints";
18
-
19
- // API
20
- import getProductByIds from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-by-ids";
21
- import { getQueryClient } from "@evenicanpm/storefront-core/src/api-manager/services/get-query-client";
22
- import buildDetailUrl from "@evenicanpm/storefront-core/src/lib/build-detail-url";
11
+ import type { SimpleProduct } from "@msdyn365-commerce/retail-proxy";
12
+ // Components
13
+ import Grid from "@mui/material/Grid2";
14
+ import Image from "next/image";
15
+ import NextLink from "next/link";
16
+ import React from "react";
17
+ // Icons
18
+ import { getIcon } from "@/cms/blocks/icons/index";
23
19
 
24
- import {
20
+ import type {
25
21
  Product,
26
22
  ProductSectionFullWidthBlock,
27
23
  ProductWrapper,
28
24
  } from "@/cms/blocks/interfaces";
29
- import { SimpleProduct } from "@msdyn365-commerce/retail-proxy";
25
+ import { getImageUrl } from "@/cms/endpoints";
30
26
 
31
27
  type CombinedProduct = Product & SimpleProduct;
32
28
  export default async function ProductSectionFullWidth(
33
- data: ProductSectionFullWidthBlock,
29
+ data: Readonly<ProductSectionFullWidthBlock>,
34
30
  ) {
35
31
  const queryClient = getQueryClient();
36
32
 
@@ -38,7 +34,7 @@ export default async function ProductSectionFullWidth(
38
34
 
39
35
  const e4Products = await getProductByIds.fetchData(queryClient, { id: skus });
40
36
 
41
- if (!(e4Products && e4Products.length)) {
37
+ if (!e4Products?.length) {
42
38
  return null;
43
39
  }
44
40
 
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
- import React from "react";
4
- import Markdown from "marked-react";
5
3
  import { Container } from "@mui/material";
4
+ import Markdown from "marked-react";
5
+ import React from "react";
6
6
 
7
7
  interface Props {
8
8
  content: string;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import cmsEndPoints from "@/cms/endpoints";
3
2
  import { Helmet } from "react-helmet-async";
4
- import { MetaItem, SeoPageData } from "@/cms/blocks/interfaces";
3
+ import type { MetaItem, SeoPageData } from "@/cms/blocks/interfaces";
4
+ import cmsEndPoints from "@/cms/endpoints";
5
5
 
6
6
  // SEO Component to be populated
7
7
  // Included in storefront repo to ensure correct import of react-helmet-async,
@@ -36,7 +36,11 @@ const Seo = (pageData: SeoPageData) => {
36
36
  </>
37
37
  )}
38
38
  {pageData?.seo?.meta?.map((metaItem: MetaItem, i: number) => (
39
- <meta name={metaItem.name} key={i} content={metaItem.content} />
39
+ <meta
40
+ name={metaItem.name}
41
+ key={metaItem.id}
42
+ content={metaItem.content}
43
+ />
40
44
  ))}
41
45
  <script type="application/ld+json">
42
46
  {JSON.stringify(pageData?.seo?.structuredData)}
@@ -1,14 +1,14 @@
1
- import React from "react";
2
- import Grid from "@mui/material/Grid2";
3
1
  import Container from "@mui/material/Container";
2
+ import Grid from "@mui/material/Grid2";
3
+ import React from "react";
4
4
  // LOCAL CUSTOM COMPONENTS
5
5
  import ServiceCard from "@/cms/blocks/components/services/service-card";
6
- import {
7
- ServicesBlock,
6
+ import type {
8
7
  ServiceCard as ServiceCardItem,
8
+ ServicesBlock,
9
9
  } from "@/cms/blocks/interfaces";
10
10
 
11
- export default function Services(data: ServicesBlock) {
11
+ export default function Services(data: Readonly<ServicesBlock>) {
12
12
  return (
13
13
  <Container sx={{ marginBottom: "80px", marginTop: "80px" }}>
14
14
  <Grid container spacing={3}>
@@ -1,19 +1,17 @@
1
1
  "use client";
2
2
 
3
- import React from "react";
4
- import Fab from "@mui/material/Fab";
5
- import Grid from "@mui/material/Grid2";
6
- import Card from "@mui/material/Card";
7
- import styled from "@mui/material/styles/styled";
8
-
9
- // CUSTOM ICON COMPONENTS
10
- import { getIcon } from "@/cms/blocks/icons/index";
11
-
12
3
  // GLOBAL CUSTOM COMPONENTS
13
4
  import {
14
5
  H4,
15
6
  Span,
16
7
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
8
+ import Card from "@mui/material/Card";
9
+ import Fab from "@mui/material/Fab";
10
+ import Grid from "@mui/material/Grid2";
11
+ import styled from "@mui/material/styles/styled";
12
+ import React from "react";
13
+ // CUSTOM ICON COMPONENTS
14
+ import { getIcon } from "@/cms/blocks/icons/index";
17
15
 
18
16
  // CUSTOM DATA MODEL
19
17
  interface Service {
@@ -47,7 +45,7 @@ const StyledCard = styled(Card)(({ theme }) => ({
47
45
  type Props = { service: Service };
48
46
  // ==================================================
49
47
 
50
- export default function ServiceCard({ service }: Props) {
48
+ export default function ServiceCard({ service }: Readonly<Props>) {
51
49
  const { icon, title, description } = service;
52
50
 
53
51
  const Icon = getIcon(icon);
@@ -1,14 +1,17 @@
1
- import React from "react";
2
1
  // GLOBAL CUSTOM COMPONENTS
3
2
  import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
4
- import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
5
3
  import Image from "@evenicanpm/storefront-core/src/components-v2/Image";
4
+ import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
5
+ import React from "react";
6
6
 
7
7
  // ==========================================================
8
8
  type Props = { title: string; imgUrl: string };
9
9
  // ==========================================================
10
10
 
11
- export default function FeaturedProductCard({ imgUrl, title }: Props) {
11
+ export default function FeaturedProductCard({
12
+ imgUrl,
13
+ title,
14
+ }: Readonly<Props>) {
12
15
  return (
13
16
  <div>
14
17
  <HoverBox borderRadius="5px" mb={1}>
@@ -1,10 +1,9 @@
1
- import React from "react";
2
- import { HtmlHTMLAttributes } from "react";
3
- import { styled, SxProps, Theme } from "@mui/material/styles";
4
- // GLOBAL CUSTOM COMPONENTS
5
- import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
6
1
  import BazaarCard from "@evenicanpm/storefront-core/src/components-v2/BazaarCard";
7
2
  import BazaarImage from "@evenicanpm/storefront-core/src/components-v2/BazaarImage";
3
+ // GLOBAL CUSTOM COMPONENTS
4
+ import { H4 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
5
+ import { type SxProps, styled, type Theme } from "@mui/material/styles";
6
+ import React, { type HtmlHTMLAttributes } from "react";
8
7
 
9
8
  // STYLED COMPONENT
10
9
  const StyledBazaarCard = styled(BazaarCard)(({ theme }) => ({
@@ -32,7 +31,7 @@ export default function ProductCategoryItem({
32
31
  isSelected,
33
32
  sx = {},
34
33
  ...others
35
- }: Props) {
34
+ }: Readonly<Props>) {
36
35
  return (
37
36
  <StyledBazaarCard
38
37
  elevation={isSelected ? 2 : 0}
@@ -1,9 +1,10 @@
1
- import React from "react";
2
- import Box from "@mui/material/Box";
3
- import Grid from "@mui/material/Grid2";
1
+ import ProductCard from "@evenicanpm/storefront-core/src/components-v2/product-cards/product-card/index";
4
2
  // GLOBAL CUSTOM COMPONENTS
5
3
  import { Section } from "@evenicanpm/storefront-core/src/components-v2/section";
6
- import ProductCard from "@evenicanpm/storefront-core/src/components-v2/product-cards/product-card/index";
4
+ import Box from "@mui/material/Box";
5
+ import Grid from "@mui/material/Grid2";
6
+ import React from "react";
7
+
7
8
  // CUSTOM DATA MODEL
8
9
 
9
10
  interface Product {
@@ -19,7 +20,10 @@ interface Product {
19
20
 
20
21
  type Props = { products: Product[]; heading: string };
21
22
 
22
- export default function ProductGridList({ products, heading }: Props) {
23
+ export default function ProductGridList({
24
+ products,
25
+ heading,
26
+ }: Readonly<Props>) {
23
27
  return (
24
28
  <Box flex="1 1 0">
25
29
  <Section>
@@ -1,13 +1,12 @@
1
- import React from "react";
2
-
3
- import Card from "@mui/material/Card";
4
- import Chip from "@mui/material/Chip";
5
- import styled from "@mui/material/styles/styled";
6
- import Image from "@evenicanpm/storefront-core/src/components-v2/Image";
7
1
  // GLOBAL CUSTOM COMPONENTS
8
2
  import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
3
+ import Image from "@evenicanpm/storefront-core/src/components-v2/Image";
9
4
  import { lightOrDarkText } from "@evenicanpm/storefront-core/src/lib/hexToLuma";
5
+ import Card from "@mui/material/Card";
6
+ import Chip from "@mui/material/Chip";
10
7
  import { useTheme } from "@mui/material/styles";
8
+ import styled from "@mui/material/styles/styled";
9
+ import React from "react";
11
10
 
12
11
  // STYLED COMPONENT
13
12
  const StyledChip = styled(Chip)({
@@ -27,7 +26,11 @@ interface Props {
27
26
  }
28
27
  // ========================================================
29
28
 
30
- export default function TopCategoriesCard({ title, subtitle, imgUrl }: Props) {
29
+ export default function TopCategoriesCard({
30
+ title,
31
+ subtitle,
32
+ imgUrl,
33
+ }: Readonly<Props>) {
31
34
  const theme = useTheme();
32
35
  const color = theme.palette.secondary.main;
33
36
  return (
@@ -1,5 +1,4 @@
1
- import React from "react";
2
- import Rating from "@mui/material/Rating";
1
+ import { FlexRowCenter } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
3
2
  // GLOBAL CUSTOM COMPONENTS
4
3
  import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
5
4
  import Image from "@evenicanpm/storefront-core/src/components-v2/Image";
@@ -7,9 +6,10 @@ import {
7
6
  H4,
8
7
  Small,
9
8
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
10
- import { FlexRowCenter } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
11
9
  // CUSTOM UTILS LIBRARY FUNCTION
12
10
  import { currency } from "@evenicanpm/storefront-core/src/lib/lib";
11
+ import Rating from "@mui/material/Rating";
12
+ import React from "react";
13
13
 
14
14
  // ======================================================
15
15
  interface Props {
@@ -21,7 +21,7 @@ interface Props {
21
21
  }
22
22
  // ======================================================
23
23
 
24
- export default function TopRatingProductCard(props: Props) {
24
+ export default function TopRatingProductCard(props: Readonly<Props>) {
25
25
  const { title, price, imgUrl, rating = 5, reviewCount = 10 } = props;
26
26
 
27
27
  return (
@@ -1,8 +1,8 @@
1
1
  "use client";
2
- import { OverridableComponent } from "@mui/material/OverridableComponent";
3
- import React from "react";
2
+ import type { OverridableComponent } from "@mui/material/OverridableComponent";
3
+ import type { SvgIconTypeMap } from "@mui/material/SvgIcon";
4
4
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
5
- import { SvgIconTypeMap } from "@mui/material/SvgIcon";
5
+ import React from "react";
6
6
 
7
7
  const Category: OverridableComponent<SvgIconTypeMap> = createSvgIcon(
8
8
  <svg fill="currentColor" viewBox="0 0 64 64">
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import React from "react";
3
2
 
4
3
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
4
+ import React from "react";
5
5
 
6
6
  const DottedStar = createSvgIcon(
7
7
  <svg fill="currentColor" viewBox="0 0 24 24">
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import React from "react";
3
2
 
4
3
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
4
+ import React from "react";
5
5
 
6
6
  const FallbackIcon = createSvgIcon(
7
7
  <svg
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import React from "react";
3
2
 
4
3
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
4
+ import React from "react";
5
5
 
6
6
  const GiftBox = createSvgIcon(
7
7
  <svg fill="currentColor" viewBox="0 0 22 20">
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import React from "react";
3
2
 
4
3
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
4
+ import React from "react";
5
5
 
6
6
  const Light = createSvgIcon(
7
7
  <svg fill="currentColor" viewBox="0 0 24 24">
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import React from "react";
3
2
 
4
3
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
4
+ import React from "react";
5
5
 
6
6
  const NewArrival = createSvgIcon(
7
7
  <svg fill="currentColor" viewBox="0 0 24 24">
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import React from "react";
3
2
  import createSvgIcon from "@mui/material/utils/createSvgIcon";
3
+ import React from "react";
4
4
 
5
5
  const RankBadge = createSvgIcon(
6
6
  <svg fill="currentColor" viewBox="0 0 24 24">
@@ -1,15 +1,15 @@
1
- import { OverridableComponent } from "@mui/material/OverridableComponent";
2
- import { SvgIconTypeMap } from "@mui/material/SvgIcon";
1
+ import type { OverridableComponent } from "@mui/material/OverridableComponent";
2
+ import type { SvgIconTypeMap } from "@mui/material/SvgIcon";
3
3
 
4
4
  type IconComponent = OverridableComponent<SvgIconTypeMap<unknown, "svg">>;
5
5
 
6
6
  import Category from "@/cms/blocks/icons/components/category";
7
7
  import DottedStar from "@/cms/blocks/icons/components/dotted-star";
8
+ import FallbackIcon from "@/cms/blocks/icons/components/fallback-icon";
8
9
  import GiftBox from "@/cms/blocks/icons/components/gift-box";
9
10
  import Light from "@/cms/blocks/icons/components/light";
10
11
  import NewArrival from "@/cms/blocks/icons/components/new-arrival";
11
12
  import RankBadge from "@/cms/blocks/icons/components/rank-badge";
12
- import FallbackIcon from "@/cms/blocks/icons/components/fallback-icon";
13
13
 
14
14
  export { Category };
15
15
  export { DottedStar };
@@ -1,16 +1,16 @@
1
1
  // From scratch components
2
2
  export { default as BrandLogosScroller } from "@/cms/blocks/components/brand-logos-scroller";
3
3
  export { default as CategoryCard } from "@/cms/blocks/components/category-card";
4
+ export { default as CategoryCarousel } from "@/cms/blocks/components/category-carousel/index";
5
+ export { default as FeaturePill } from "@/cms/blocks/components/feature-pill";
4
6
  export { default as FeaturedCategories } from "@/cms/blocks/components/featured-categories";
5
7
  export { default as FeaturedProducts } from "@/cms/blocks/components/featured-products";
6
- export { default as FeaturePill } from "@/cms/blocks/components/feature-pill";
7
8
  export { default as Footer } from "@/cms/blocks/components/footer";
8
9
  export { default as Hero } from "@/cms/blocks/components/hero";
9
- export { default as MediaCard } from "@/cms/blocks/components/media-card";
10
- export { default as RichText } from "@/cms/blocks/components/rich-text";
11
- export { default as Image } from "@/cms/blocks/components/image";
12
10
  export { default as HeroCarousel } from "@/cms/blocks/components/hero-carousel/index";
13
- export { default as Services } from "@/cms/blocks/components/services/index";
11
+ export { default as Image } from "@/cms/blocks/components/image";
12
+ export { default as MediaCard } from "@/cms/blocks/components/media-card";
14
13
  export { default as ProductCarousel } from "@/cms/blocks/components/product-carousel/index";
15
14
  export { default as ProductSectionFullWidth } from "@/cms/blocks/components/product-section-fullwidth/index";
16
- export { default as CategoryCarousel } from "@/cms/blocks/components/category-carousel/index";
15
+ export { default as RichText } from "@/cms/blocks/components/rich-text";
16
+ export { default as Services } from "@/cms/blocks/components/services/index";
package/src/cms/blog.ts CHANGED
@@ -1,6 +1,6 @@
1
+ import type { BlocksContent } from "@strapi/blocks-react-renderer";
1
2
  import cms from "@/cms/endpoints";
2
- import { type BlocksContent } from "@strapi/blocks-react-renderer";
3
- import { Formats } from "@/cms/interfaces/product-data";
3
+ import type { Formats } from "@/cms/interfaces/product-data";
4
4
 
5
5
  export interface Blogs {
6
6
  data: Array<{
@@ -1,4 +1,4 @@
1
- import { Formats } from "@/cms/interfaces/product-data";
1
+ import type { Formats } from "@/cms/interfaces/product-data";
2
2
 
3
3
  const apiKeys = {
4
4
  pages: "/cms/pages",
@@ -1,6 +1,6 @@
1
+ import { Box, Typography } from "@mui/material";
1
2
  import type { Meta, StoryObj } from "@storybook/react";
2
3
  import BazaarCard from "./BazaarCard";
3
- import { Typography, Box } from "@mui/material";
4
4
 
5
5
  const meta = {
6
6
  title: "Bazaar/BazaarCard",
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import Card, { CardProps } from "@mui/material/Card";
3
+ import Card, { type CardProps } from "@mui/material/Card";
4
4
  import styled from "@mui/material/styles/styled";
5
5
 
6
6
  // ===============================================
@@ -1,4 +1,4 @@
1
- import Box, { BoxProps } from "@mui/material/Box";
1
+ import Box, { type BoxProps } from "@mui/material/Box";
2
2
 
3
3
  // ==============================================================
4
4
  interface Props extends BoxProps {
@@ -7,6 +7,6 @@ interface Props extends BoxProps {
7
7
  }
8
8
  // ==============================================================
9
9
 
10
- export default function BazaarImage(props: Props) {
10
+ export default function BazaarImage(props: Readonly<Props>) {
11
11
  return <Box component="img" {...props} />;
12
12
  }
@@ -1,6 +1,6 @@
1
+ import { Button, MenuItem } from "@mui/material";
1
2
  import type { Meta, StoryObj } from "@storybook/react";
2
3
  import BazaarMenu from "./BazaarMenu";
3
- import { Button, MenuItem } from "@mui/material";
4
4
 
5
5
  const meta = {
6
6
  title: "Bazaar/BazaarMenu",