@evenicanpm/storefront-core 1.2.1 → 1.3.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 (440) 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/package.json +10 -2
  6. package/src/api-manager/datasources/d365/d365-address.datasource.ts +13 -11
  7. package/src/api-manager/datasources/d365/d365-base.datasource.ts +1 -1
  8. package/src/api-manager/datasources/d365/d365-cart.datasource.ts +37 -37
  9. package/src/api-manager/datasources/d365/d365-categories.datasource.ts +3 -3
  10. package/src/api-manager/datasources/d365/d365-order.datasource.ts +10 -9
  11. package/src/api-manager/datasources/d365/d365-organization.datasource.ts +10 -10
  12. package/src/api-manager/datasources/d365/d365-product.datasource.ts +28 -29
  13. package/src/api-manager/datasources/d365/d365-session.datasource.ts +4 -4
  14. package/src/api-manager/datasources/d365/d365-user.datasource.ts +22 -20
  15. package/src/api-manager/datasources/d365/d365.datasource.ts +15 -15
  16. package/src/api-manager/datasources/d365/index.ts +1 -1
  17. package/src/api-manager/datasources/d365/test-context.ts +1 -1
  18. package/src/api-manager/datasources/d365/utils/create-search-criteria.ts +1 -1
  19. package/src/api-manager/datasources/d365/utils/decode-jwt.ts +1 -1
  20. package/src/api-manager/datasources/d365/utils/get-context-cookie.ts +3 -3
  21. package/src/api-manager/datasources/d365/utils/product-images-utils.ts +29 -10
  22. package/src/api-manager/datasources/d365/utils/product-inventory-utils.ts +1 -1
  23. package/src/api-manager/datasources/e4/address/e4-address.datasource.ts +5 -5
  24. package/src/api-manager/datasources/e4/address/e4-address.remaps.ts +2 -2
  25. package/src/api-manager/datasources/e4/address/e4-address.translator.ts +8 -8
  26. package/src/api-manager/datasources/e4/cart/e4-cart.datasource.ts +10 -11
  27. package/src/api-manager/datasources/e4/cart/e4-cart.remaps.ts +9 -8
  28. package/src/api-manager/datasources/e4/cart/e4-cart.translator.ts +3 -3
  29. package/src/api-manager/datasources/e4/categories/e4-categories.datasource.ts +4 -4
  30. package/src/api-manager/datasources/e4/categories/e4-categories.translator.ts +4 -4
  31. package/src/api-manager/datasources/e4/e4.datasource.ts +7 -7
  32. package/src/api-manager/datasources/e4/graphqlRequestSdk.ts +8500 -39780
  33. package/src/api-manager/datasources/e4/order/e4-order.datasource.ts +7 -7
  34. package/src/api-manager/datasources/e4/order/e4-order.remaps.ts +6 -5
  35. package/src/api-manager/datasources/e4/organization/e4-organization.datasource.ts +5 -4
  36. package/src/api-manager/datasources/e4/product/e4-product.datasource.ts +12 -11
  37. package/src/api-manager/datasources/e4/product/e4-product.remaps.ts +1 -1
  38. package/src/api-manager/datasources/e4/product/e4-product.translator.ts +14 -14
  39. package/src/api-manager/datasources/e4/session/e4-session.datasource.ts +2 -2
  40. package/src/api-manager/datasources/e4/session/e4-session.translator.ts +2 -2
  41. package/src/api-manager/datasources/e4/user/e4-user.datasource.ts +10 -10
  42. package/src/api-manager/datasources/e4/user/e4-user.remaps.ts +4 -4
  43. package/src/api-manager/datasources/e4/user/e4-user.translator.ts +6 -4
  44. package/src/api-manager/datasources/e4/utils/unwrap-e4-variants.ts +2 -2
  45. package/src/api-manager/index.ts +7 -7
  46. package/src/api-manager/lib/category-helpers.ts +1 -1
  47. package/src/api-manager/lib/get-dynamics-context.ts +1 -1
  48. package/src/api-manager/lib/get-graphql-client.ts +3 -4
  49. package/src/api-manager/schemas/address.schema.ts +1 -1
  50. package/src/api-manager/schemas/cart.schema.ts +1 -1
  51. package/src/api-manager/schemas/d365.schema.ts +207 -206
  52. package/src/api-manager/schemas/order.schema.ts +1 -1
  53. package/src/api-manager/schemas/organization.schema.ts +1 -1
  54. package/src/api-manager/schemas/product.schema.ts +4 -4
  55. package/src/api-manager/schemas/session.schema.ts +1 -1
  56. package/src/api-manager/schemas/user.schema.ts +1 -1
  57. package/src/api-manager/services/address/mutations/create-address.ts +3 -3
  58. package/src/api-manager/services/address/mutations/delete-address.ts +2 -2
  59. package/src/api-manager/services/address/mutations/get-delivery-options.ts +4 -4
  60. package/src/api-manager/services/address/mutations/update-address.ts +3 -3
  61. package/src/api-manager/services/address/queries/get-countries.ts +6 -4
  62. package/src/api-manager/services/address/queries/get-states.ts +3 -3
  63. package/src/api-manager/services/cart/mutations/add-discount-code.ts +4 -4
  64. package/src/api-manager/services/cart/mutations/add-to-cart.ts +4 -4
  65. package/src/api-manager/services/cart/mutations/checkout.ts +2 -2
  66. package/src/api-manager/services/cart/mutations/delete-cart-line.ts +2 -2
  67. package/src/api-manager/services/cart/mutations/get-payment-accept-result.ts +4 -4
  68. package/src/api-manager/services/cart/mutations/remove-cart-line-delivery-mode.ts +3 -3
  69. package/src/api-manager/services/cart/mutations/remove-discount-code.ts +2 -2
  70. package/src/api-manager/services/cart/mutations/update-cart-line-delivery-mode.ts +2 -2
  71. package/src/api-manager/services/cart/mutations/update-cart-lines.ts +3 -3
  72. package/src/api-manager/services/cart/mutations/update-cart.ts +2 -2
  73. package/src/api-manager/services/cart/queries/get-cart-lines-inventory.ts +2 -2
  74. package/src/api-manager/services/cart/queries/get-cart.ts +5 -3
  75. package/src/api-manager/services/cart/queries/get-payment-accept-point.ts +3 -3
  76. package/src/api-manager/services/categories/queries/get-categories.ts +1 -1
  77. package/src/api-manager/services/create-extension-query.ts +1 -1
  78. package/src/api-manager/services/create-mutation.ts +2 -2
  79. package/src/api-manager/services/create-query.ts +6 -6
  80. package/src/api-manager/services/get-query-client.ts +2 -2
  81. package/src/api-manager/services/order/queries/get-order-details.ts +2 -2
  82. package/src/api-manager/services/order/queries/get-orders.ts +1 -1
  83. package/src/api-manager/services/organization/queries/get-channel-configuration.ts +1 -1
  84. package/src/api-manager/services/organization/queries/get-stores.ts +1 -1
  85. package/src/api-manager/services/product/mutations/search-products.ts +3 -4
  86. package/src/api-manager/services/product/queries/get-product-availability.ts +2 -2
  87. package/src/api-manager/services/product/queries/get-product-by-id.ts +1 -1
  88. package/src/api-manager/services/product/queries/get-product-by-ids.ts +2 -2
  89. package/src/api-manager/services/product/queries/get-product-list.ts +1 -1
  90. package/src/api-manager/services/product/queries/get-product-prices.ts +2 -2
  91. package/src/api-manager/services/product/queries/get-related-products.ts +2 -2
  92. package/src/api-manager/services/product/queries/search-products.ts +2 -2
  93. package/src/api-manager/services/product/server/product.server.ts +3 -3
  94. package/src/api-manager/services/session/mutations/session-init.ts +2 -2
  95. package/src/api-manager/services/session/mutations/session-logout.ts +1 -1
  96. package/src/api-manager/services/session/queries/get-session.ts +1 -1
  97. package/src/api-manager/services/user/mutations/add-to-wishlist.ts +3 -3
  98. package/src/api-manager/services/user/mutations/copy-cart-to-wishlist.ts +3 -3
  99. package/src/api-manager/services/user/mutations/create-wishlist.ts +4 -4
  100. package/src/api-manager/services/user/mutations/delete-wishlist.ts +3 -3
  101. package/src/api-manager/services/user/mutations/remove-from-wishlist.ts +3 -3
  102. package/src/api-manager/services/user/mutations/update-user.ts +2 -2
  103. package/src/api-manager/services/user/mutations/update-wishlist.ts +2 -2
  104. package/src/api-manager/services/user/queries/get-user-counts.ts +1 -1
  105. package/src/api-manager/services/user/queries/get-user.ts +1 -1
  106. package/src/api-manager/services/user/queries/get-wishlist-details.ts +1 -1
  107. package/src/api-manager/services/user/queries/get-wishlists.ts +1 -1
  108. package/src/api-manager/types/Datasource.ts +23 -23
  109. package/src/auth/auth-options.test.ts +4 -5
  110. package/src/auth/auth-options.ts +7 -7
  111. package/src/auth/msal.ts +4 -1
  112. package/src/auth/next-auth-cookie-manager.ts +8 -7
  113. package/src/auth/refresh-token.ts +7 -4
  114. package/src/cms/blocks/block-manager.tsx +10 -10
  115. package/src/cms/blocks/components/brand-logos-scroller.tsx +4 -4
  116. package/src/cms/blocks/components/category-card.tsx +2 -2
  117. package/src/cms/blocks/components/category-carousel/index.tsx +5 -9
  118. package/src/cms/blocks/components/feature-pill.tsx +5 -4
  119. package/src/cms/blocks/components/featured-categories.tsx +5 -2
  120. package/src/cms/blocks/components/featured-products.tsx +2 -2
  121. package/src/cms/blocks/components/footer/data/index.ts +6 -3
  122. package/src/cms/blocks/components/footer/index.tsx +7 -11
  123. package/src/cms/blocks/components/footer/sections/footer-app-store.tsx +2 -2
  124. package/src/cms/blocks/components/footer/sections/footer-contact.tsx +3 -3
  125. package/src/cms/blocks/components/footer/sections/footer-links.tsx +3 -3
  126. package/src/cms/blocks/components/footer/sections/footer-logo.tsx +3 -3
  127. package/src/cms/blocks/components/footer/sections/footer-social-links.tsx +9 -9
  128. package/src/cms/blocks/components/footer/styles/index.ts +1 -1
  129. package/src/cms/blocks/components/footer.tsx +4 -4
  130. package/src/cms/blocks/components/hero-carousel/index.tsx +3 -4
  131. package/src/cms/blocks/components/hero.tsx +4 -5
  132. package/src/cms/blocks/components/image.tsx +4 -5
  133. package/src/cms/blocks/components/media-card.tsx +2 -2
  134. package/src/cms/blocks/components/product-carousel/index.tsx +7 -8
  135. package/src/cms/blocks/components/product-section-fullwidth/index.tsx +16 -20
  136. package/src/cms/blocks/components/rich-text.tsx +2 -2
  137. package/src/cms/blocks/components/seo/index.tsx +2 -2
  138. package/src/cms/blocks/components/services/index.tsx +4 -4
  139. package/src/cms/blocks/components/services/service-card.tsx +7 -9
  140. package/src/cms/blocks/components/shared/featured-product-card.tsx +2 -2
  141. package/src/cms/blocks/components/shared/product-category-item.tsx +4 -5
  142. package/src/cms/blocks/components/shared/product-grid.tsx +5 -4
  143. package/src/cms/blocks/components/shared/top-categories-card.tsx +5 -6
  144. package/src/cms/blocks/components/shared/top-rating-product-card.tsx +3 -3
  145. package/src/cms/blocks/icons/components/category.tsx +3 -3
  146. package/src/cms/blocks/icons/components/dotted-star.tsx +1 -1
  147. package/src/cms/blocks/icons/components/fallback-icon.tsx +1 -1
  148. package/src/cms/blocks/icons/components/gift-box.tsx +1 -1
  149. package/src/cms/blocks/icons/components/light.tsx +1 -1
  150. package/src/cms/blocks/icons/components/new-arrival.tsx +1 -1
  151. package/src/cms/blocks/icons/components/rank-badge.tsx +1 -1
  152. package/src/cms/blocks/icons/index.ts +3 -3
  153. package/src/cms/blocks/index.tsx +6 -6
  154. package/src/cms/blog.ts +2 -2
  155. package/src/cms/endpoints.ts +1 -1
  156. package/src/components-v2/BazaarCard.stories.tsx +1 -1
  157. package/src/components-v2/BazaarCard.tsx +1 -1
  158. package/src/components-v2/BazaarImage.tsx +1 -1
  159. package/src/components-v2/BazaarMenu.stories.tsx +1 -1
  160. package/src/components-v2/BazaarMenu.tsx +2 -2
  161. package/src/components-v2/BazaarSwitch.tsx +1 -1
  162. package/src/components-v2/BazaarTextField.tsx +2 -2
  163. package/src/components-v2/BorderShadowCard.stories.tsx +2 -2
  164. package/src/components-v2/CountryInput.stories.tsx +2 -2
  165. package/src/components-v2/DropZone.stories.tsx +1 -1
  166. package/src/components-v2/DropZone.tsx +7 -7
  167. package/src/components-v2/HoverBox.stories.tsx +1 -1
  168. package/src/components-v2/ImageWithFallback.tsx +3 -2
  169. package/src/components-v2/LazyImage.tsx +10 -2
  170. package/src/components-v2/Loading.tsx +1 -2
  171. package/src/components-v2/SearchInput.stories.tsx +1 -1
  172. package/src/components-v2/SearchInput.tsx +2 -2
  173. package/src/components-v2/SnackbarProvider.tsx +1 -1
  174. package/src/components-v2/T/index.tsx +1 -1
  175. package/src/components-v2/Typography.stories.tsx +2 -2
  176. package/src/components-v2/Typography.tsx +1 -1
  177. package/src/components-v2/WhiteButton.tsx +2 -2
  178. package/src/components-v2/accordion/accordion-header.tsx +5 -5
  179. package/src/components-v2/carousel/Carousel.stories.tsx +1 -1
  180. package/src/components-v2/carousel/carousel.tsx +4 -4
  181. package/src/components-v2/carousel/components/carousel-arrows.tsx +4 -4
  182. package/src/components-v2/carousel/components/carousel-dots.tsx +2 -2
  183. package/src/components-v2/carousel-cards/carousel-card-1/carousel-card-1.tsx +4 -4
  184. package/src/components-v2/categories/Categories.stories.tsx +6 -5
  185. package/src/components-v2/categories/category-list/category-list.tsx +4 -5
  186. package/src/components-v2/categories/category-list/styles.ts +2 -2
  187. package/src/components-v2/categories/category-list-item/category-menu-item.tsx +5 -5
  188. package/src/components-v2/categories/category-menu.tsx +2 -2
  189. package/src/components-v2/categories/mega-menu/banner.tsx +4 -4
  190. package/src/components-v2/categories/mega-menu/column-list.tsx +6 -6
  191. package/src/components-v2/categories/mega-menu/mega-menu-1.tsx +7 -7
  192. package/src/components-v2/categories/mega-menu/mega-menu-2.tsx +3 -2
  193. package/src/components-v2/categories/types.ts +1 -1
  194. package/src/components-v2/countries-input.tsx +2 -2
  195. package/src/components-v2/flex-box/Flex.stories.tsx +1 -1
  196. package/src/components-v2/flex-box/flex-between.tsx +1 -1
  197. package/src/components-v2/flex-box/flex-box.tsx +1 -1
  198. package/src/components-v2/flex-box/flex-row-center.tsx +1 -1
  199. package/src/components-v2/flex-box/index.ts +1 -1
  200. package/src/components-v2/header/__tests__/user.test.tsx +3 -3
  201. package/src/components-v2/header/components/categories-menu.tsx +6 -6
  202. package/src/components-v2/header/components/mobile-header.tsx +17 -18
  203. package/src/components-v2/header/components/user.tsx +24 -23
  204. package/src/components-v2/header/header.tsx +9 -10
  205. package/src/components-v2/header/sticky-header.tsx +3 -3
  206. package/src/components-v2/header/styles/index.ts +3 -2
  207. package/src/components-v2/mini-cart/__tests__/cart-item.test.tsx +6 -6
  208. package/src/components-v2/mini-cart/__tests__/mini-cart.test.tsx +7 -7
  209. package/src/components-v2/mini-cart/components/bottom-actions.tsx +3 -2
  210. package/src/components-v2/mini-cart/components/cart-item.tsx +13 -12
  211. package/src/components-v2/mini-cart/components/empty-view.tsx +2 -1
  212. package/src/components-v2/mini-cart/components/top-header.tsx +6 -5
  213. package/src/components-v2/mini-cart/mini-cart-trigger.tsx +4 -4
  214. package/src/components-v2/mini-cart/mini-cart.tsx +11 -12
  215. package/src/components-v2/mobile-navigation/MobileNavigationBar.stories.tsx +2 -2
  216. package/src/components-v2/mobile-navigation/mobile-navigation-bar.tsx +14 -14
  217. package/src/components-v2/mobile-navigation/styles/index.ts +2 -2
  218. package/src/components-v2/nav-link/nav-link-2.tsx +1 -1
  219. package/src/components-v2/nav-link/nav-link-3.tsx +3 -3
  220. package/src/components-v2/nav-link/nav-link.tsx +3 -3
  221. package/src/components-v2/navbar/categories.tsx +5 -5
  222. package/src/components-v2/navbar/category-based-menu/category-based-menu.tsx +15 -14
  223. package/src/components-v2/navbar/category-based-menu/styles.ts +3 -3
  224. package/src/components-v2/navbar/category-based-menu/types.ts +1 -1
  225. package/src/components-v2/navbar/mega-menu/mega-menu.tsx +11 -10
  226. package/src/components-v2/navbar/mega-menu/styles.ts +2 -2
  227. package/src/components-v2/navbar/mobile-menu/mobile-menu.test.tsx +3 -3
  228. package/src/components-v2/navbar/mobile-menu/mobile-menu.tsx +10 -10
  229. package/src/components-v2/navbar/nav-list/cms-nav.test.tsx +4 -4
  230. package/src/components-v2/navbar/nav-list/nav-item-child.tsx +12 -13
  231. package/src/components-v2/navbar/nav-list/nav-list.tsx +11 -11
  232. package/src/components-v2/navbar/navbar.tsx +3 -4
  233. package/src/components-v2/navbar/styles.ts +4 -4
  234. package/src/components-v2/navbar/utils/transform-nav.test.ts +3 -3
  235. package/src/components-v2/navbar/utils/transform-nav.ts +3 -3
  236. package/src/components-v2/no-records.tsx +2 -2
  237. package/src/components-v2/product-cards/discount-chip.tsx +1 -1
  238. package/src/components-v2/product-cards/favorite-button.tsx +2 -2
  239. package/src/components-v2/product-cards/product-card/ProductCard.stories.tsx +2 -2
  240. package/src/components-v2/product-cards/product-card/product-card.tsx +38 -38
  241. package/src/components-v2/product-cards/product-card/styles/index.ts +2 -2
  242. package/src/components-v2/product-cards/product-card-plp/ProductCardPlp.stories.tsx +2 -2
  243. package/src/components-v2/product-cards/product-card-plp/product-card.tsx +18 -18
  244. package/src/components-v2/product-cards/product-card-plp-list/ProductCardPlpList.stories.tsx +1 -1
  245. package/src/components-v2/product-cards/product-card-plp-list/product-card.tsx +15 -15
  246. package/src/components-v2/product-cards/product-card-search/ProductCardSearch.stories.tsx +2 -2
  247. package/src/components-v2/product-cards/product-card-search/product-card.tsx +16 -16
  248. package/src/components-v2/product-cards/product-price.tsx +1 -1
  249. package/src/components-v2/product-cards/product-rating.tsx +3 -3
  250. package/src/components-v2/product-cards/product-title.tsx +1 -1
  251. package/src/components-v2/product-cards/quantity-buttons.tsx +5 -5
  252. package/src/components-v2/product-dialog/ProductDialog.stories.tsx +2 -2
  253. package/src/components-v2/product-dialog/compound/product-dialog.tsx +14 -14
  254. package/src/components-v2/product-dimensions/Dimensions.stories.tsx +3 -2
  255. package/src/components-v2/product-dimensions/compound/dimensions-group-error.tsx +3 -3
  256. package/src/components-v2/product-dimensions/compound/dimensions-group-label.tsx +1 -1
  257. package/src/components-v2/product-dimensions/compound/dimensions-group-list-chip.tsx +5 -4
  258. package/src/components-v2/product-dimensions/compound/dimensions-group-list.tsx +1 -1
  259. package/src/components-v2/product-dimensions/compound/dimensions-group.tsx +3 -4
  260. package/src/components-v2/product-dimensions/compound/dimensions.tsx +6 -2
  261. package/src/components-v2/product-dimensions/index.tsx +1 -1
  262. package/src/components-v2/product-dimensions/utils/has-selected-dimension.ts +1 -1
  263. package/src/components-v2/product-quantity-buttons/ProductQuantity.stories.tsx +2 -1
  264. package/src/components-v2/product-quantity-buttons/compound/quantity-buttons-root.tsx +7 -7
  265. package/src/components-v2/product-quantity-buttons/index.tsx +5 -2
  266. package/src/components-v2/product-quantity-variants/ProductQuantity.stories.tsx +3 -2
  267. package/src/components-v2/product-quantity-variants/index.tsx +13 -13
  268. package/src/components-v2/products-view/ProductsGrid.stories.tsx +3 -2
  269. package/src/components-v2/products-view/ProductsList.stories.tsx +4 -3
  270. package/src/components-v2/products-view/compound/context.ts +4 -3
  271. package/src/components-v2/products-view/compound/products-grid-view.tsx +7 -6
  272. package/src/components-v2/products-view/compound/products-list-view.tsx +6 -5
  273. package/src/components-v2/products-view/compound/types.ts +2 -2
  274. package/src/components-v2/products-view/index.tsx +3 -3
  275. package/src/components-v2/progress/ProgressBar.stories.tsx +2 -2
  276. package/src/components-v2/progress/progress.tsx +3 -3
  277. package/src/components-v2/scrollbar/Scrollbar.stories.tsx +2 -1
  278. package/src/components-v2/scrollbar/scrollbar.tsx +3 -3
  279. package/src/components-v2/search-bar/SearchBarLarge.stories.tsx +2 -1
  280. package/src/components-v2/search-bar/compound/context.ts +2 -3
  281. package/src/components-v2/search-bar/compound/results-item-lg.tsx +3 -2
  282. package/src/components-v2/search-bar/compound/results-item-sm.tsx +10 -9
  283. package/src/components-v2/search-bar/compound/results-suspense.tsx +4 -4
  284. package/src/components-v2/search-bar/compound/results.tsx +5 -4
  285. package/src/components-v2/search-bar/compound/search-bar-root.tsx +6 -8
  286. package/src/components-v2/search-bar/compound/textfield-adornment-category.tsx +7 -6
  287. package/src/components-v2/search-bar/compound/textfield-adornment-search-icon.tsx +3 -2
  288. package/src/components-v2/search-bar/compound/textfield.tsx +5 -7
  289. package/src/components-v2/search-bar/hooks/use-search.ts +1 -2
  290. package/src/components-v2/search-bar/styles/index.ts +2 -2
  291. package/src/components-v2/search-bar/utils/findCategoryNameById.ts +1 -1
  292. package/src/components-v2/section/Section.stories.tsx +3 -3
  293. package/src/components-v2/section/compound/section-header.tsx +7 -7
  294. package/src/components-v2/section/compound/section.tsx +4 -3
  295. package/src/components-v2/side-nav/SideNav.stories.tsx +4 -4
  296. package/src/components-v2/side-nav/side-nav.tsx +2 -2
  297. package/src/components-v2/wishlist-dialogs/__tests__/create-new-list.test.tsx +5 -7
  298. package/src/components-v2/wishlist-dialogs/add-to-wishlist/AddToWishlist.stories.tsx +2 -2
  299. package/src/components-v2/wishlist-dialogs/add-to-wishlist/add-to-wishlist-button.tsx +2 -2
  300. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-bottom-ui.tsx +3 -3
  301. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-dialog.tsx +7 -8
  302. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-list.tsx +4 -5
  303. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/context.ts +2 -1
  304. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-header.tsx +8 -10
  305. package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-item.tsx +6 -6
  306. package/src/components-v2/wishlist-dialogs/add-to-wishlist/hooks/use-add-to-wishlist.ts +4 -6
  307. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-bottom-ui.tsx +3 -3
  308. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-dialog.tsx +9 -8
  309. package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-form.tsx +6 -4
  310. package/src/components-v2/wishlist-dialogs/create-wishlist/create-wishlist-button.tsx +2 -2
  311. package/src/components-v2/wishlist-dialogs/styles.ts +4 -4
  312. package/src/hooks/use-cart.ts +1 -1
  313. package/src/hooks/use-nextauth-session.ts +65 -0
  314. package/src/hooks/use-overflow-detect.ts +1 -1
  315. package/src/hooks/use-settings.ts +1 -1
  316. package/src/hooks/use-variants.ts +6 -6
  317. package/src/lib/build-product-detail-url.ts +1 -1
  318. package/src/lib/cart-cookie-handler.ts +1 -1
  319. package/src/lib/category-helpers.ts +1 -1
  320. package/src/lib/create-graphql-client.ts +1 -2
  321. package/src/lib/get-palette-color.ts +1 -1
  322. package/src/lib/graphqlRequestSdk.ts +2 -3
  323. package/src/lib/hexToLuma.ts +2 -2
  324. package/src/lib/product-list-types.ts +1 -1
  325. package/src/lib/refiner-utils.ts +1 -1
  326. package/src/lib/store-hours-helper.ts +1 -1
  327. package/src/pages-v2/account/account-navigation.tsx +13 -13
  328. package/src/pages-v2/account/addresses/address-form.tsx +16 -15
  329. package/src/pages-v2/account/addresses/address-item.tsx +13 -14
  330. package/src/pages-v2/account/dashboard-header.tsx +9 -9
  331. package/src/pages-v2/account/orders/order-progress.tsx +13 -13
  332. package/src/pages-v2/account/orders/order-row.tsx +11 -10
  333. package/src/pages-v2/account/orders/order-summary.tsx +7 -6
  334. package/src/pages-v2/account/orders/ordered-products.tsx +18 -17
  335. package/src/pages-v2/account/profile/profile-button.test.tsx +3 -3
  336. package/src/pages-v2/account/profile/profile-button.tsx +5 -4
  337. package/src/pages-v2/account/profile/user-info.tsx +8 -9
  338. package/src/pages-v2/account/styles.ts +1 -1
  339. package/src/pages-v2/account/wishlist/create-new-list.tsx +10 -9
  340. package/src/pages-v2/account/wishlist/create-wishlist-button.tsx +2 -2
  341. package/src/pages-v2/account/wishlist/wishlist-item.tsx +13 -13
  342. package/src/pages-v2/blog/blog-card.tsx +58 -0
  343. package/src/pages-v2/blog/pagination.tsx +1 -2
  344. package/src/pages-v2/cart/__tests__/cart-item.test.tsx +8 -9
  345. package/src/pages-v2/cart/__tests__/checkout-form.test.tsx +8 -8
  346. package/src/pages-v2/cart/__tests__/countries.json +19407 -0
  347. package/src/pages-v2/cart/__tests__/estimate-shipping.test.tsx +11 -11
  348. package/src/pages-v2/cart/cart-item.tsx +24 -23
  349. package/src/pages-v2/cart/checkout-form.tsx +16 -18
  350. package/src/pages-v2/cart/coupon-entry.tsx +9 -7
  351. package/src/pages-v2/cart/estimate-shipping.tsx +5 -4
  352. package/src/pages-v2/checkout/checkout-alt-form/checkout-form.tsx +17 -16
  353. package/src/pages-v2/checkout/checkout-alt-form/checkout-step.tsx +5 -5
  354. package/src/pages-v2/checkout/checkout-alt-form/step-heading.tsx +3 -3
  355. package/src/pages-v2/checkout/checkout-alt-form/steps/address/address-card.tsx +4 -4
  356. package/src/pages-v2/checkout/checkout-alt-form/steps/address/delivery-address.tsx +21 -21
  357. package/src/pages-v2/checkout/checkout-alt-form/steps/address/new-address-form.tsx +14 -15
  358. package/src/pages-v2/checkout/checkout-alt-form/steps/address/styles.ts +1 -1
  359. package/src/pages-v2/checkout/checkout-alt-form/steps/customer-info/customer-information.tsx +8 -8
  360. package/src/pages-v2/checkout/checkout-alt-form/steps/payment/payment-details.tsx +8 -8
  361. package/src/pages-v2/checkout/checkout-alt-form/steps/payment/safe-card-preview-data.tsx +2 -2
  362. package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-date.tsx +4 -4
  363. package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-options.tsx +19 -19
  364. package/src/pages-v2/checkout/checkout-alt-summary/cart-item.tsx +2 -2
  365. package/src/pages-v2/checkout/checkout-alt-summary/checkout-alt-summary.tsx +9 -9
  366. package/src/pages-v2/checkout/checkout-alt-summary/list-item.tsx +2 -2
  367. package/src/pages-v2/confirmation/address.tsx +4 -4
  368. package/src/pages-v2/confirmation/confirmation-summary.tsx +3 -3
  369. package/src/pages-v2/confirmation/ordered-products.tsx +9 -8
  370. package/src/pages-v2/product-details/available-shops.tsx +6 -6
  371. package/src/pages-v2/product-details/bopis/find-in-store-button.tsx +3 -3
  372. package/src/pages-v2/product-details/bopis/find-in-store-modal.tsx +16 -17
  373. package/src/pages-v2/product-details/bopis/pickup-option-select.tsx +4 -4
  374. package/src/pages-v2/product-details/bopis/search-header.tsx +3 -2
  375. package/src/pages-v2/product-details/bopis/store-card/shop-card.tsx +14 -15
  376. package/src/pages-v2/product-details/bopis/store-card/utils/getDaysResources.ts +1 -1
  377. package/src/pages-v2/product-details/checkbox-label.tsx +2 -2
  378. package/src/pages-v2/product-details/currency.ts +1 -0
  379. package/src/pages-v2/product-details/frequently-bought.tsx +11 -11
  380. package/src/pages-v2/product-details/frequently-product-card.tsx +4 -4
  381. package/src/pages-v2/product-details/product-comment.tsx +3 -3
  382. package/src/pages-v2/product-details/product-description.tsx +1 -1
  383. package/src/pages-v2/product-details/product-filter-card.tsx +13 -13
  384. package/src/pages-v2/product-details/product-intro/compound/context.ts +10 -5
  385. package/src/pages-v2/product-details/product-intro/compound/product-info.tsx +19 -19
  386. package/src/pages-v2/product-details/product-intro/compound/product-intro-images.tsx +3 -2
  387. package/src/pages-v2/product-details/product-intro/compound/product-intro.tsx +6 -6
  388. package/src/pages-v2/product-details/product-intro/compound/thumbnail-with-skeleton.tsx +1 -1
  389. package/src/pages-v2/product-details/product-intro/utils.ts +1 -1
  390. package/src/pages-v2/product-details/product-review.tsx +8 -8
  391. package/src/pages-v2/product-details/product-tabs.tsx +6 -6
  392. package/src/pages-v2/product-details/related-products.tsx +5 -5
  393. package/src/pages-v2/product-list/breadcrumbs.tsx +2 -2
  394. package/src/pages-v2/product-list/checkbox-label.tsx +2 -2
  395. package/src/pages-v2/product-list/facet-group.tsx +7 -7
  396. package/src/pages-v2/product-list/facet.tsx +4 -3
  397. package/src/pages-v2/product-list/list-filter.tsx +4 -4
  398. package/src/pages-v2/product-list/pagination.tsx +2 -2
  399. package/src/pages-v2/product-list/product-list-context.tsx +17 -17
  400. package/src/pages-v2/product-list/product-list-state.ts +14 -14
  401. package/src/pages-v2/product-list/product-list-view.tsx +14 -16
  402. package/src/pages-v2/product-list/product-rating.tsx +2 -2
  403. package/src/pages-v2/product-list/quick-view-dialog-content.tsx +20 -20
  404. package/src/pages-v2/product-list/quick-view-dialog.tsx +2 -2
  405. package/src/pages-v2/product-list/range-filter.tsx +5 -5
  406. package/src/pages-v2/product-list/scrollbar.tsx +3 -3
  407. package/src/pages-v2/product-list/search-bar.tsx +12 -12
  408. package/src/pages-v2/product-list/selected-facets.tsx +4 -4
  409. package/src/pages-v2/product-list/side-nav.tsx +1 -1
  410. package/src/pages-v2/product-list/swatch.tsx +3 -4
  411. package/src/pages-v2/product-list/utils/generate-breadcrumbs.ts +1 -1
  412. package/src/pages-v2/product-list/utils/product-list-helper.ts +4 -4
  413. package/src/pages-v2/product-list/utils/product-list-types.ts +1 -1
  414. package/src/pages-v2/product-list/utils/search-for-category.ts +2 -2
  415. package/src/pages-v2/product-list/utils/sort-options.ts +1 -1
  416. package/src/pages-v2/quickorder/order-upload.tsx +2 -2
  417. package/src/pages-v2/quickorder/provider.tsx +8 -7
  418. package/src/pages-v2/quickorder/quick-order-header.tsx +1 -1
  419. package/src/pages-v2/quickorder/quick-order-row.tsx +8 -7
  420. package/src/pages-v2/quickorder/quick-order-table.tsx +3 -3
  421. package/src/pages-v2/quickorder/quick-order.tsx +20 -24
  422. package/src/providers/nav-provider/index.tsx +3 -3
  423. package/src/providers/nav-provider/utils/createLink.ts +1 -1
  424. package/src/providers/notifications/notification-context.tsx +3 -3
  425. package/src/providers/notifications/use-notification.ts +1 -1
  426. package/tsconfig.json +1 -1
  427. package/src/components-v2/sticky/Sticky.stories.tsx +0 -88
  428. package/src/components-v2/sticky/index.ts +0 -1
  429. package/src/components-v2/sticky/sticky.tsx +0 -62
  430. package/src/components-v2/sticky/styles.ts +0 -38
  431. package/src/components-v2/utils/constants.ts +0 -8
  432. package/src/theme/build-mui-theme.ts +0 -104
  433. package/src/theme/components.ts +0 -163
  434. package/src/theme/emotion-cache.tsx +0 -101
  435. package/src/theme/theme-colors.ts +0 -205
  436. package/src/theme/theme-options-sample.ts +0 -69
  437. package/src/theme/theme-options.ts +0 -172
  438. package/src/theme/theme-provider.tsx +0 -44
  439. package/src/theme/typography.ts +0 -22
  440. package/src/theme/utils.ts +0 -17
@@ -1,9 +1,5 @@
1
1
  "use client";
2
2
 
3
- import { ReactNode } from "react";
4
- import Link from "next/link";
5
- import Box from "@mui/material/Box";
6
- import Grid from "@mui/material/Grid2";
7
3
  import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
8
4
  import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
9
5
  import {
@@ -11,6 +7,10 @@ import {
11
7
  Paragraph,
12
8
  Small,
13
9
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
10
+ import Box from "@mui/material/Box";
11
+ import Grid from "@mui/material/Grid2";
12
+ import Link from "next/link";
13
+ import type { ReactNode } from "react";
14
14
 
15
15
  interface RootProps {
16
16
  href: string;
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
 
3
- import { PropsWithChildren, ReactNode } from "react";
4
- import Link from "next/link";
5
- import Box from "@mui/material/Box";
6
- import Grid from "@mui/material/Grid2";
7
- import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
3
+ import { StyledRoot } from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/styles";
8
4
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
5
+ import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
9
6
  import { NavLink } from "@evenicanpm/storefront-core/src/components-v2/nav-link/index";
10
- import { StyledRoot } from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/styles";
7
+ import Box from "@mui/material/Box";
8
+ import Grid from "@mui/material/Grid2";
9
+ import Link from "next/link";
10
+ import type { PropsWithChildren, ReactNode } from "react";
11
11
 
12
12
  interface RootProps extends PropsWithChildren {
13
13
  minWidth?: number;
@@ -1,13 +1,13 @@
1
- import Link from "next/link";
2
- // MUI
3
- import Box from "@mui/material/Box";
4
- // GLOBAL CUSTOM COMPONENTS
5
- import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
6
1
  // LOCAL CUSTOM COMPONENTS
7
2
  import ColumnList from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/column-list";
8
3
  // DATA TYPE
9
- import { CategoryItemOffer } from "@evenicanpm/storefront-core/src/components-v2/categories/types";
10
- import { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
4
+ import type { CategoryItemOffer } from "@evenicanpm/storefront-core/src/components-v2/categories/types";
5
+ // GLOBAL CUSTOM COMPONENTS
6
+ import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
7
+ import type { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
8
+ // MUI
9
+ import Box from "@mui/material/Box";
10
+ import Link from "next/link";
11
11
 
12
12
  // =========================================================
13
13
  interface Props {
@@ -1,11 +1,12 @@
1
1
  // LOCAL CUSTOM COMPONENTS
2
+
3
+ import CategoryMenuItem from "@evenicanpm/storefront-core/src/components-v2/categories/category-list-item/index";
2
4
  import OfferBanner from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/banner";
3
5
  import ColumnList from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/column-list";
4
- import CategoryMenuItem from "@evenicanpm/storefront-core/src/components-v2/categories/category-list-item/index";
5
6
  // STYLED COMPONENT
6
7
  import { StyledRoot } from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/styles";
7
8
  // DATA TYPE
8
- import { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
9
+ import type { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
9
10
 
10
11
  // =======================================================================
11
12
  interface Props {
@@ -1,4 +1,4 @@
1
- import { SvgIconComponent } from "@mui/icons-material";
1
+ import type { SvgIconComponent } from "@mui/icons-material";
2
2
 
3
3
  export interface CategoryItemOffer {
4
4
  url: string;
@@ -1,7 +1,7 @@
1
- import { CountryRegionInfo } from "@msdyn365-commerce/retail-proxy";
1
+ import type { CountryRegionInfo } from "@msdyn365-commerce/retail-proxy";
2
2
  import {
3
3
  Autocomplete,
4
- AutocompleteRenderInputParams,
4
+ type AutocompleteRenderInputParams,
5
5
  Box,
6
6
  TextField,
7
7
  } from "@mui/material";
@@ -1,5 +1,5 @@
1
1
  import type { Meta, StoryObj } from "@storybook/react";
2
- import { FlexBox, FlexBetween, FlexRowCenter } from "./index";
2
+ import { FlexBetween, FlexBox, FlexRowCenter } from "./index";
3
3
 
4
4
  const BoxStyle = {
5
5
  padding: "10px 20px",
@@ -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
  export default function FlexBetween({ children, ...props }: BoxProps) {
4
4
  return (
@@ -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
  * Convenience utility wrapper around css Flex style
@@ -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
  export default function FlexRowCenter({ children, ...props }: BoxProps) {
4
4
  return (
@@ -1,5 +1,5 @@
1
- import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
2
1
  import FlexBetween from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-between";
2
+ import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
3
3
  import FlexRowCenter from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-row-center";
4
4
 
5
5
  export { FlexBox, FlexBetween, FlexRowCenter };
@@ -1,8 +1,8 @@
1
- import { render, screen, fireEvent, waitFor } from "@testing-library/react";
1
+ import signOut from "@evenicanpm/storefront-core/src/auth/signout";
2
+ import Header from "@evenicanpm/storefront-core/src/components-v2/header/header";
3
+ import { fireEvent, render, screen, waitFor } from "@testing-library/react";
2
4
  import { NextIntlClientProvider } from "next-intl";
3
5
  import { vi } from "vitest";
4
- import Header from "@evenicanpm/storefront-core/src/components-v2/header/header";
5
- import signOut from "@evenicanpm/storefront-core/src/auth/signout";
6
6
 
7
7
  vi.mock(
8
8
  "@evenicanpm/storefront-core/src/api-manager/services/session/mutations/session-init",
@@ -1,11 +1,11 @@
1
- import Button from "@mui/material/Button";
2
- // MUI ICON COMPONENT
3
- import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown";
4
- // CUSTOM ICON COMPONENTS
5
- import Category from "@evenicanpm/storefront-core/src/components-v2/icons/category";
1
+ import CategoryMenu from "@evenicanpm/storefront-core/src/components-v2/categories/category-menu";
6
2
  // GLOBAL CUSTOM COMPONENTS
7
3
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
8
- import CategoryMenu from "@evenicanpm/storefront-core/src/components-v2/categories/category-menu";
4
+ // CUSTOM ICON COMPONENTS
5
+ import Category from "@evenicanpm/storefront-core/src/components-v2/icons/category";
6
+ // MUI ICON COMPONENT
7
+ import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown";
8
+ import Button from "@mui/material/Button";
9
9
 
10
10
  export default function CategoriesMenu() {
11
11
  return (
@@ -1,32 +1,31 @@
1
- import { useContext, ReactNode, createContext } from "react";
2
- import Box from "@mui/material/Box";
3
- import Drawer from "@mui/material/Drawer";
4
- import IconButton from "@mui/material/IconButton";
5
- import { useTranslations } from "next-intl";
6
- // CUSTOM COMPONENTS
7
- import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
8
- import { MobileMenu } from "@evenicanpm/storefront-core/src/components-v2/navbar/mobile-menu/index";
1
+ // API
2
+ import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
9
3
  import {
10
4
  FlexBetween,
11
5
  FlexBox,
12
6
  } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
13
- import SiteLogo from "@evenicanpm/storefront-core/src/components-v2/site-logo";
14
- import MiniCartTrigger from "@evenicanpm/storefront-core/src/components-v2/mini-cart/mini-cart-trigger";
15
7
  import User from "@evenicanpm/storefront-core/src/components-v2/header/components/user";
16
- // ICONS
17
- import { MdClear as Clear } from "react-icons/md";
18
- import Search from "@evenicanpm/storefront-core/src/components-v2/icons/search";
19
- import MobileCartBag from "@evenicanpm/storefront-core/src/components-v2/icons/cart-bag";
20
- // API
21
- import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
22
-
23
8
  import useHeader from "@evenicanpm/storefront-core/src/components-v2/header/hooks/use-header";
24
- import { SearchBarViewSm as SearchBar } from "@evenicanpm/storefront-core/src/components-v2/search-bar";
9
+ import MobileCartBag from "@evenicanpm/storefront-core/src/components-v2/icons/cart-bag";
10
+ import Search from "@evenicanpm/storefront-core/src/components-v2/icons/search";
11
+ import MiniCartTrigger from "@evenicanpm/storefront-core/src/components-v2/mini-cart/mini-cart-trigger";
12
+ import { MobileMenu } from "@evenicanpm/storefront-core/src/components-v2/navbar/mobile-menu/index";
25
13
  import {
26
14
  transformCategoryNav,
27
15
  transformCmsNav,
28
16
  } from "@evenicanpm/storefront-core/src/components-v2/navbar/utils/transform-nav";
17
+ import { SearchBarViewSm as SearchBar } from "@evenicanpm/storefront-core/src/components-v2/search-bar";
18
+ import SiteLogo from "@evenicanpm/storefront-core/src/components-v2/site-logo";
19
+ // CUSTOM COMPONENTS
20
+ import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
29
21
  import { NavContext } from "@evenicanpm/storefront-core/src/providers/nav-provider";
22
+ import Box from "@mui/material/Box";
23
+ import Drawer from "@mui/material/Drawer";
24
+ import IconButton from "@mui/material/IconButton";
25
+ import { useTranslations } from "next-intl";
26
+ import { createContext, type ReactNode, useContext } from "react";
27
+ // ICONS
28
+ import { MdClear as Clear } from "react-icons/md";
30
29
 
31
30
  type MobileHeaderRootProps = {
32
31
  children: ReactNode;
@@ -1,38 +1,39 @@
1
1
  "use client";
2
2
 
3
- import React, {
4
- createContext,
5
- useState,
6
- useEffect,
7
- useContext,
8
- MouseEvent,
9
- ReactNode,
10
- } from "react";
11
- import { useRouter } from "next/navigation";
3
+ import useSessionInit from "@evenicanpm/storefront-core/src/api-manager/services/session/mutations/session-init";
4
+ import useSessionLogout from "@evenicanpm/storefront-core/src/api-manager/services/session/mutations/session-logout";
5
+ // API hooks
6
+ import useUpdateUser from "@evenicanpm/storefront-core/src/api-manager/services/user/mutations/update-user";
7
+ import {
8
+ getMsalInstance,
9
+ initializeMsal,
10
+ } from "@evenicanpm/storefront-core/src/auth/msal";
11
+ import signOutCustom from "@evenicanpm/storefront-core/src/auth/signout";
12
+ import MobileUserIcon from "@evenicanpm/storefront-core/src/components-v2/icons/user";
13
+ import { NavLink } from "@evenicanpm/storefront-core/src/components-v2/nav-link";
14
+ import T from "@evenicanpm/storefront-core/src/components-v2/T";
12
15
  // UI Components
13
16
  import {
14
17
  Box,
15
18
  Button,
16
- Popover,
19
+ IconButton,
17
20
  List,
18
21
  ListItemButton,
19
- IconButton,
22
+ Popover,
20
23
  } from "@mui/material";
21
- import { MdPersonOutline as PersonOutline } from "react-icons/md";
22
- import MobileUserIcon from "@evenicanpm/storefront-core/src/components-v2/icons/user";
23
- import { NavLink } from "@evenicanpm/storefront-core/src/components-v2/nav-link";
24
- import T from "@evenicanpm/storefront-core/src/components-v2/T";
24
+ import { useRouter } from "next/navigation";
25
25
  // Auth components
26
26
  import { signIn, useSession } from "next-auth/react";
27
+ import type React from "react";
27
28
  import {
28
- getMsalInstance,
29
- initializeMsal,
30
- } from "@evenicanpm/storefront-core/src/auth/msal";
31
- import signOutCustom from "@evenicanpm/storefront-core/src/auth/signout";
32
- // API hooks
33
- import useUpdateUser from "@evenicanpm/storefront-core/src/api-manager/services/user/mutations/update-user";
34
- import useSessionInit from "@evenicanpm/storefront-core/src/api-manager/services/session/mutations/session-init";
35
- import useSessionLogout from "@evenicanpm/storefront-core/src/api-manager/services/session/mutations/session-logout";
29
+ createContext,
30
+ type MouseEvent,
31
+ type ReactNode,
32
+ useContext,
33
+ useEffect,
34
+ useState,
35
+ } from "react";
36
+ import { MdPersonOutline as PersonOutline } from "react-icons/md";
36
37
 
37
38
  interface IdTokenClaims {
38
39
  given_name?: string;
@@ -1,24 +1,23 @@
1
1
  "use client";
2
2
 
3
- import { ReactNode } from "react";
4
- import clsx from "clsx";
5
- import { MdOutlineShoppingBag } from "react-icons/md";
3
+ // API
4
+ import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
6
5
  // GLOBAL CUSTOM COMPONENTS
7
6
  import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
8
- import SiteLogo from "@evenicanpm/storefront-core/src/components-v2/site-logo";
9
7
  // LOCAL CUSTOM COMPONENTS
10
8
  import CategoriesMenu from "@evenicanpm/storefront-core/src/components-v2/header/components/categories-menu";
11
9
  import User from "@evenicanpm/storefront-core/src/components-v2/header/components/user";
12
- import MiniCartTrigger from "@evenicanpm/storefront-core/src/components-v2/mini-cart/mini-cart-trigger";
13
10
  // STYLED COMPONENTS
14
11
  import {
15
12
  HeaderWrapper,
16
13
  StyledContainer,
17
14
  } from "@evenicanpm/storefront-core/src/components-v2/header/styles/index";
18
- // API
19
- import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
20
-
21
- import { useSession } from "next-auth/react";
15
+ import MiniCartTrigger from "@evenicanpm/storefront-core/src/components-v2/mini-cart/mini-cart-trigger";
16
+ import SiteLogo from "@evenicanpm/storefront-core/src/components-v2/site-logo";
17
+ import { useAppSession } from "@evenicanpm/storefront-core/src/hooks/use-nextauth-session";
18
+ import clsx from "clsx";
19
+ import type { ReactNode } from "react";
20
+ import { MdOutlineShoppingBag } from "react-icons/md";
22
21
 
23
22
  type HeaderRootProps = {
24
23
  className?: string;
@@ -53,7 +52,7 @@ Header.MidSlot = ({ children }: { children: ReactNode }) => {
53
52
  };
54
53
 
55
54
  Header.User = () => {
56
- const { data: session } = useSession();
55
+ const { session } = useAppSession();
57
56
  const isAuthenticated = !!session;
58
57
  return (
59
58
  <User>
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
 
3
+ import MobileHeader from "@evenicanpm/storefront-core/src/components-v2/header/components/mobile-header";
3
4
  import Header from "@evenicanpm/storefront-core/src/components-v2/header/index";
4
5
  import { SearchBarViewLg as SearchBar } from "@evenicanpm/storefront-core/src/components-v2/search-bar";
5
- import Sticky from "@evenicanpm/storefront-core/src/components-v2/sticky/index";
6
- import { useCallback, useState } from "react";
6
+ import { Sticky } from "@evenicanpm/ui";
7
7
 
8
8
  import useTheme from "@mui/material/styles/useTheme";
9
9
  import useMediaQuery from "@mui/material/useMediaQuery";
10
- import MobileHeader from "@evenicanpm/storefront-core/src/components-v2/header/components/mobile-header";
10
+ import { useCallback, useState } from "react";
11
11
 
12
12
  /**
13
13
  * @category Implementation
@@ -1,7 +1,8 @@
1
+ // CONSTANT VARIABLES
2
+
3
+ import { layoutConstant } from "@evenicanpm/ui";
1
4
  import Container from "@mui/material/Container";
2
5
  import styled from "@mui/material/styles/styled";
3
- // CONSTANT VARIABLES
4
- import { layoutConstant } from "@evenicanpm/storefront-core/src/components-v2/utils/constants";
5
6
 
6
7
  export const HeaderWrapper = styled("div")(({ theme }) => ({
7
8
  zIndex: 3,
@@ -1,14 +1,14 @@
1
- import { Cart, CartLine } from "@/schemas/cart.schema";
1
+ import { NotificationProvider } from "@evenicanpm/storefront-core/src/providers/notifications/notification-context";
2
+ import ENUS from "@messages/en-US.json";
2
3
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
4
  import { fireEvent, render, screen } from "@testing-library/react";
4
5
  import { setupServer } from "msw/node";
5
- import React from "react";
6
- import cartData from "./test-cart-with-item.json";
7
6
  import { NextIntlClientProvider } from "next-intl";
8
- import ENUS from "@messages/en-US.json";
9
- import CartItem from "../components/cart-item";
7
+ import type React from "react";
10
8
  import { vi } from "vitest";
11
- import { NotificationProvider } from "@evenicanpm/storefront-core/src/providers/notifications/notification-context";
9
+ import type { Cart, CartLine } from "@/schemas/cart.schema";
10
+ import CartItem from "../components/cart-item";
11
+ import cartData from "./test-cart-with-item.json";
12
12
 
13
13
  // @ts-expect-error - We don't use the dates from this json and its not worth parsin
14
14
  const cart: Cart = cartData;
@@ -1,14 +1,14 @@
1
- import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
2
- import { NextIntlClientProvider } from "next-intl";
3
- import cartData from "./test-cart-with-item.json";
4
- import cartDataEmpty from "./test-cart-empty.json";
1
+ import { NotificationProvider } from "@evenicanpm/storefront-core/src/providers/notifications/notification-context";
5
2
  import ENUS from "@messages/en-US.json";
6
3
  import fr from "@messages/fr.json";
4
+ import type { Cart } from "@msdyn365-commerce/retail-proxy";
5
+ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
7
6
  import { fireEvent, render, screen } from "@testing-library/react";
8
- import MiniCart from "../mini-cart";
7
+ import { NextIntlClientProvider } from "next-intl";
9
8
  import { vi } from "vitest";
10
- import { Cart } from "@msdyn365-commerce/retail-proxy";
11
- import { NotificationProvider } from "@evenicanpm/storefront-core/src/providers/notifications/notification-context";
9
+ import MiniCart from "../mini-cart";
10
+ import cartDataEmpty from "./test-cart-empty.json";
11
+ import cartData from "./test-cart-with-item.json";
12
12
 
13
13
  const { useRouter, mockedRouterPush } = vi.hoisted(() => {
14
14
  const mockedRouterPush = vi.fn();
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
 
3
- import React, { createContext, useContext } from "react";
4
3
  import Box from "@mui/material/Box";
5
- import Button, { ButtonProps } from "@mui/material/Button";
4
+ import Button, { type ButtonProps } from "@mui/material/Button";
6
5
  import { useTranslations } from "next-intl";
6
+ import type React from "react";
7
+ import { createContext, useContext } from "react";
7
8
 
8
9
  interface BottomActionsContextValue {
9
10
  total: string;
@@ -1,24 +1,25 @@
1
1
  // @refresh reset
2
2
  "use client";
3
3
 
4
- import React, { createContext, useContext } from "react";
5
- import Link from "next/link";
6
- import Box from "@mui/material/Box";
7
- import Button from "@mui/material/Button";
8
- import Avatar from "@mui/material/Avatar";
9
- import IconButton from "@mui/material/IconButton";
10
- import { CircularProgress } from "@mui/material";
11
- import Add from "@mui/icons-material/Add";
12
- import Close from "@mui/icons-material/Close";
13
- import Remove from "@mui/icons-material/Remove";
14
4
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
15
5
  import {
16
6
  H6,
17
7
  Tiny,
18
8
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
19
- import { CartLine } from "@/schemas/cart.schema";
20
- import { useFormatter, useTranslations } from "next-intl";
21
9
  import { getProductDetailUrl } from "@evenicanpm/storefront-core/src/lib/build-product-detail-url";
10
+ import Add from "@mui/icons-material/Add";
11
+ import Close from "@mui/icons-material/Close";
12
+ import Remove from "@mui/icons-material/Remove";
13
+ import { CircularProgress } from "@mui/material";
14
+ import Avatar from "@mui/material/Avatar";
15
+ import Box from "@mui/material/Box";
16
+ import Button from "@mui/material/Button";
17
+ import IconButton from "@mui/material/IconButton";
18
+ import Link from "next/link";
19
+ import { useFormatter, useTranslations } from "next-intl";
20
+ import type React from "react";
21
+ import { createContext, useContext } from "react";
22
+ import type { CartLine } from "@/schemas/cart.schema";
22
23
 
23
24
  interface MiniCartItemContextValue {
24
25
  item: CartLine;
@@ -1,9 +1,10 @@
1
1
  "use client";
2
2
 
3
- import React, { createContext, useContext } from "react";
4
3
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
5
4
  import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
6
5
  import { useTranslations } from "next-intl";
6
+ import type React from "react";
7
+ import { createContext, useContext } from "react";
7
8
  import { MdShoppingBag as ShoppingBagIcon } from "react-icons/md";
8
9
 
9
10
  interface EmptyCartContextValue {
@@ -1,15 +1,16 @@
1
1
  "use client";
2
2
 
3
- import React, { createContext, useContext } from "react";
4
- import IconButton from "@mui/material/IconButton";
5
- import ClearIcon from "@mui/icons-material/Clear";
6
- import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
7
3
  import {
8
4
  FlexBetween,
9
5
  FlexBox,
10
6
  } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
11
- import { MdOutlineShoppingBag as CartBagIcon } from "react-icons/md";
7
+ import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
8
+ import ClearIcon from "@mui/icons-material/Clear";
9
+ import IconButton from "@mui/material/IconButton";
12
10
  import { useTranslations } from "next-intl";
11
+ import type React from "react";
12
+ import { createContext, useContext } from "react";
13
+ import { MdOutlineShoppingBag as CartBagIcon } from "react-icons/md";
13
14
 
14
15
  interface TopHeaderContextValue {
15
16
  total: number;
@@ -1,10 +1,10 @@
1
1
  "use client";
2
2
 
3
- import React, { useState, useContext, createContext } from "react";
4
- import { Badge, Drawer, IconButton } from "@mui/material";
5
- import { Cart } from "@evenicanpm/storefront-core/src/api-manager/schemas/cart.schema";
6
- import { useNotification } from "@evenicanpm/storefront-core/src/providers/notifications/use-notification";
3
+ import type { Cart } from "@evenicanpm/storefront-core/src/api-manager/schemas/cart.schema";
7
4
  import { MiniCart } from "@evenicanpm/storefront-core/src/components-v2/mini-cart/index";
5
+ import { useNotification } from "@evenicanpm/storefront-core/src/providers/notifications/use-notification";
6
+ import { Badge, Drawer, IconButton } from "@mui/material";
7
+ import React, { createContext, useContext, useState } from "react";
8
8
 
9
9
  const BADGE_STYLES = {
10
10
  "& .MuiBadge-badge": {
@@ -1,20 +1,19 @@
1
1
  "use client";
2
2
 
3
- import React, { createContext, useContext } from "react";
4
- import { useRouter } from "next/navigation";
5
- import Box from "@mui/material/Box";
6
- import Divider from "@mui/material/Divider";
7
-
8
- import Scrollbar from "@evenicanpm/storefront-core/src/components-v2/scrollbar/index";
9
- import TopHeader from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/top-header";
3
+ import useDeleteCartLine from "@evenicanpm/storefront-core/src/api-manager/services/cart/mutations/delete-cart-line";
4
+ import useUpdateCartLines from "@evenicanpm/storefront-core/src/api-manager/services/cart/mutations/update-cart-lines";
5
+ import BottomActions from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/bottom-actions";
10
6
  import MiniCartItem from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/cart-item";
11
7
  import EmptyCart from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/empty-view";
12
- import BottomActions from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/bottom-actions";
13
-
14
- import { Cart, CartLine } from "@/schemas/cart.schema";
8
+ import TopHeader from "@evenicanpm/storefront-core/src/components-v2/mini-cart/components/top-header";
9
+ import Scrollbar from "@evenicanpm/storefront-core/src/components-v2/scrollbar/index";
10
+ import Box from "@mui/material/Box";
11
+ import Divider from "@mui/material/Divider";
12
+ import { useRouter } from "next/navigation";
15
13
  import { useFormatter } from "next-intl";
16
- import useUpdateCartLines from "@evenicanpm/storefront-core/src/api-manager/services/cart/mutations/update-cart-lines";
17
- import useDeleteCartLine from "@evenicanpm/storefront-core/src/api-manager/services/cart/mutations/delete-cart-line";
14
+ import type React from "react";
15
+ import { createContext, useContext } from "react";
16
+ import type { Cart, CartLine } from "@/schemas/cart.schema";
18
17
 
19
18
  interface MiniCartContextValue {
20
19
  cart: Cart;
@@ -1,7 +1,7 @@
1
- import type { Meta, StoryObj } from "@storybook/react";
2
- import { MobileNavigationBar } from "./index";
3
1
  import Home from "@evenicanpm/storefront-core/src/components-v2/icons/home";
4
2
  import User2 from "@evenicanpm/storefront-core/src/components-v2/icons/user2";
3
+ import type { Meta, StoryObj } from "@storybook/react";
4
+ import { MobileNavigationBar } from "./index";
5
5
 
6
6
  const meta = {
7
7
  title: "MobileNavigationBar",
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
 
3
- import { Fragment, createContext, useContext } from "react";
4
- import Box from "@mui/material/Box";
5
- import Badge from "@mui/material/Badge";
6
- import { Theme } from "@mui/material/styles";
7
- import { SvgIconComponent } from "@mui/icons-material";
8
- import useMediaQuery from "@mui/material/useMediaQuery";
9
- import { useTranslations } from "next-intl";
3
+ // API and Context
4
+ import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
5
+ import CategoryOutlined from "@evenicanpm/storefront-core/src/components-v2/icons/category-outline";
6
+ // ICON COMPONENTS
7
+ import Home from "@evenicanpm/storefront-core/src/components-v2/icons/home";
8
+ import ShoppingBagOutlined from "@evenicanpm/storefront-core/src/components-v2/icons/shopping-bag-outlined";
9
+ import User2 from "@evenicanpm/storefront-core/src/components-v2/icons/user2";
10
10
  // STYLED COMPONENTS
11
11
  import {
12
12
  iconStyle,
@@ -14,14 +14,14 @@ import {
14
14
  StyledNavLink,
15
15
  Wrapper,
16
16
  } from "@evenicanpm/storefront-core/src/components-v2/mobile-navigation/styles/index";
17
- // ICON COMPONENTS
18
- import Home from "@evenicanpm/storefront-core/src/components-v2/icons/home";
19
- import User2 from "@evenicanpm/storefront-core/src/components-v2/icons/user2";
20
- import CategoryOutlined from "@evenicanpm/storefront-core/src/components-v2/icons/category-outline";
21
- import ShoppingBagOutlined from "@evenicanpm/storefront-core/src/components-v2/icons/shopping-bag-outlined";
22
- // API and Context
23
- import getCart from "@evenicanpm/storefront-core/src/api-manager/services/cart/queries/get-cart";
24
17
  import { NavContext } from "@evenicanpm/storefront-core/src/providers/nav-provider";
18
+ import type { SvgIconComponent } from "@mui/icons-material";
19
+ import Badge from "@mui/material/Badge";
20
+ import Box from "@mui/material/Box";
21
+ import type { Theme } from "@mui/material/styles";
22
+ import useMediaQuery from "@mui/material/useMediaQuery";
23
+ import { useTranslations } from "next-intl";
24
+ import { createContext, Fragment, useContext } from "react";
25
25
 
26
26
  /**
27
27
  Usage Examples:
@@ -1,7 +1,7 @@
1
+ import { NavLink } from "@evenicanpm/storefront-core/src/components-v2/nav-link/index";
2
+ import { layoutConstant } from "@evenicanpm/ui";
1
3
  import Drawer from "@mui/material/Drawer";
2
4
  import styled from "@mui/material/styles/styled";
3
- import { NavLink } from "@evenicanpm/storefront-core/src/components-v2/nav-link/index";
4
- import { layoutConstant } from "@evenicanpm/storefront-core/src/components-v2/utils/constants";
5
5
 
6
6
  // STYLED COMPONENTS
7
7
  const Wrapper = styled("div")(({ theme }) => ({
@@ -1,6 +1,6 @@
1
- import Link from "next/link";
2
1
  // GLOBAL CUSTOM COMPONENT
3
2
  import { Small } from "@evenicanpm/storefront-core/src/components-v2/Typography";
3
+ import Link from "next/link";
4
4
 
5
5
  // ==============================================================
6
6
  interface NavLinkProps {