@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,8 +1,9 @@
1
1
  "use client";
2
2
 
3
- import React, { ReactNode, createContext, useContext } from "react";
4
- import { Card, Avatar, Box } from "@mui/material";
5
- import Grid from "@mui/material/Grid2";
3
+ import type {
4
+ SalesLine,
5
+ SalesOrder,
6
+ } from "@evenicanpm/storefront-core/src/api-manager/schemas/order.schema";
6
7
  import {
7
8
  FlexBetween,
8
9
  FlexBox,
@@ -12,13 +13,13 @@ import {
12
13
  Paragraph,
13
14
  Span,
14
15
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
15
- import { useTranslations, useFormatter } from "next-intl";
16
16
  import useCurrencyFormatter from "@evenicanpm/storefront-core/src/lib/currency-formatter";
17
17
  import { ProductDimensionType } from "@msdyn365-commerce/retail-proxy";
18
- import {
19
- SalesLine,
20
- SalesOrder,
21
- } from "@evenicanpm/storefront-core/src/api-manager/schemas/order.schema";
18
+ import { Avatar, Box, Card } from "@mui/material";
19
+ import Grid from "@mui/material/Grid2";
20
+ import { useFormatter, useTranslations } from "next-intl";
21
+ import type React from "react";
22
+ import { createContext, type ReactNode, useContext } from "react";
22
23
 
23
24
  const OrderedProductsContext = createContext<SalesOrder | null>(null);
24
25
 
@@ -34,10 +35,10 @@ export const OrderedProducts = ({ order, children }: Props) => {
34
35
 
35
36
  OrderedProducts.Header = () => {
36
37
  const ctx = useContext(OrderedProductsContext);
37
- if (!ctx) return null;
38
38
  const t = useTranslations("Confirmation");
39
- const order = ctx;
40
39
  const { dateTime } = useFormatter();
40
+ if (!ctx) return null;
41
+ const order = ctx;
41
42
 
42
43
  return (
43
44
  <FlexBetween
@@ -127,7 +128,7 @@ OrderedProducts.Dimensions = ({ line }: LineProps) => {
127
128
  return (
128
129
  <Grid size={{ xs: 8, sm: 4 }}>
129
130
  {line.Product.Dimensions.map((dim, i) => (
130
- <Paragraph key={i} paddingLeft="15px">
131
+ <Paragraph key={`dim-${i + 1}`} paddingLeft="15px">
131
132
  <Span>{ProductDimensionType[dim.DimensionTypeValue || 0]}:</Span>
132
133
  <Span sx={{ ml: 1 }}>{dim.DimensionValue?.Value}</Span>
133
134
  </Paragraph>
@@ -1,16 +1,16 @@
1
1
  "use client";
2
2
 
3
- import Link from "next/link";
4
- import Box from "@mui/material/Box";
5
- import Card from "@mui/material/Card";
6
- import Grid from "@mui/material/Grid2";
7
- import Avatar from "@mui/material/Avatar";
3
+ import FlexRowCenter from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-row-center";
8
4
  // GLOBAL CUSTOM COMPONENTS
9
5
  import {
10
6
  H3,
11
7
  H4,
12
8
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
13
- import FlexRowCenter from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-row-center";
9
+ import Avatar from "@mui/material/Avatar";
10
+ import Box from "@mui/material/Box";
11
+ import Card from "@mui/material/Card";
12
+ import Grid from "@mui/material/Grid2";
13
+ import Link from "next/link";
14
14
 
15
15
  export default function AvailableShops() {
16
16
  return (
@@ -1,8 +1,8 @@
1
- import { Button } from "@mui/material";
2
- import React from "react";
1
+ import type { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
3
2
  import FindInStoreModal from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/find-in-store-modal";
4
- import { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
3
+ import { Button } from "@mui/material";
5
4
  import { useTranslations } from "next-intl";
5
+ import React from "react";
6
6
 
7
7
  type Props = {
8
8
  productId?: number;
@@ -1,3 +1,18 @@
1
+ import type { OrgUnitLocationReturnType } from "@evenicanpm/storefront-core/src/api-manager/schemas/organization.schema";
2
+ import getChannelConfiguration from "@evenicanpm/storefront-core/src/api-manager/services/organization/queries/get-channel-configuration";
3
+ import getStores from "@evenicanpm/storefront-core/src/api-manager/services/organization/queries/get-stores";
4
+ import getProductAvailability from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-availability";
5
+ import type { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
6
+ import { geolocate } from "@evenicanpm/storefront-core/src/lib/map-helper";
7
+ import PickupOptionSelect from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/pickup-option-select";
8
+ import SearchHeader from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/search-header";
9
+ import ShopCard from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card";
10
+ import type {
11
+ DeliveryOption,
12
+ ProductWarehouseInventoryAvailability,
13
+ QueryResultSettings,
14
+ SearchArea,
15
+ } from "@msdyn365-commerce/retail-proxy";
1
16
  import {
2
17
  CircularProgress,
3
18
  Dialog,
@@ -8,23 +23,8 @@ import {
8
23
  Typography,
9
24
  } from "@mui/material";
10
25
  import { Box } from "@mui/system";
11
- import React from "react";
12
- import SearchHeader from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/search-header";
13
- import ShopCard from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card";
14
- import {
15
- DeliveryOption,
16
- ProductWarehouseInventoryAvailability,
17
- QueryResultSettings,
18
- SearchArea,
19
- } from "@msdyn365-commerce/retail-proxy";
20
- import PickupOptionSelect from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/pickup-option-select";
21
- import { geolocate } from "@evenicanpm/storefront-core/src/lib/map-helper";
22
- import getStores from "@evenicanpm/storefront-core/src/api-manager/services/organization/queries/get-stores";
23
- import { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
24
- import getProductAvailability from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-availability";
25
- import { OrgUnitLocationReturnType } from "@evenicanpm/storefront-core/src/api-manager/schemas/organization.schema";
26
26
  import { useTranslations } from "next-intl";
27
- import getChannelConfiguration from "@evenicanpm/storefront-core/src/api-manager/services/organization/queries/get-channel-configuration";
27
+ import React from "react";
28
28
 
29
29
  type Props = {
30
30
  open: boolean;
@@ -209,7 +209,6 @@ const FindInStoreModal = ({
209
209
  address={location.Address || ""}
210
210
  actionArea={renderActionArea(
211
211
  location.OrgUnitNumber || "",
212
- // @ts-ignore TODO: ??
213
212
  pickupOptions || [],
214
213
  inventoryRecord?.TotalAvailableInventoryLevelLabel || "",
215
214
  )}
@@ -1,16 +1,16 @@
1
1
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
2
- import { DeliveryOption } from "@msdyn365-commerce/retail-proxy";
2
+ import type { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
3
+ import type { DeliveryOption } from "@msdyn365-commerce/retail-proxy";
3
4
  import {
4
5
  Box,
5
6
  Button,
6
7
  MenuItem,
7
8
  Select,
8
- SelectChangeEvent,
9
+ type SelectChangeEvent,
9
10
  Typography,
10
11
  } from "@mui/material";
11
- import React from "react";
12
- import { AddToCartBopisInput } from "@evenicanpm/storefront-core/src/hooks/use-cart";
13
12
  import { useTranslations } from "next-intl";
13
+ import React from "react";
14
14
 
15
15
  type Props = {
16
16
  pickupOptions: DeliveryOption[];
@@ -75,7 +75,7 @@ const PickupOptionSelect = ({
75
75
  );
76
76
 
77
77
  const handlePickupClick = () => {
78
- if (selectedOption && selectedOption.Code) {
78
+ if (selectedOption?.Code) {
79
79
  const bopisInput: AddToCartBopisInput = {
80
80
  warehouseId: storeId,
81
81
  deliveryMode: selectedOption.Code,
@@ -1,12 +1,13 @@
1
+ import SearchIcon from "@mui/icons-material/Search";
1
2
  import {
2
3
  FormControl,
3
4
  IconButton,
4
5
  InputAdornment,
5
6
  OutlinedInput,
6
7
  } from "@mui/material";
7
- import React from "react";
8
- import SearchIcon from "@mui/icons-material/Search";
9
8
  import { useTranslations } from "next-intl";
9
+ import React from "react";
10
+
10
11
  type Props = {
11
12
  handleSearch: (searchTerm: string) => void;
12
13
  };
@@ -1,30 +1,29 @@
1
- import Card from "@mui/material/Card";
2
-
3
- import AccessTimeFilledIcon from "@mui/icons-material/AccessTimeFilled";
4
- import Place from "@mui/icons-material/Place";
5
- import InventoryIcon from "@mui/icons-material/Inventory";
1
+ import {
2
+ FlexBetween,
3
+ FlexBox,
4
+ } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
6
5
  // GLOBAL CUSTOM COMPONENTS
7
6
  import {
8
7
  H3,
9
8
  Span,
10
9
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
11
10
  import {
12
- FlexBetween,
13
- FlexBox,
14
- } from "@evenicanpm/storefront-core/src/components-v2/flex-box/index";
11
+ buildStoreHours,
12
+ type IHoursDisplayInfo,
13
+ } from "@evenicanpm/storefront-core/src/lib/store-hours-helper";
15
14
  // STYLED COMPONENT
16
15
  import { ContentWrapper } from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card/styles";
17
- import {
16
+ import { convertSecondsToTime } from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card/utils/convertSecondsToTime";
17
+ import { getDaysResources } from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card/utils/getDaysResources";
18
+ import type {
18
19
  ProductWarehouseInventoryAvailability,
19
20
  StoreHours,
20
21
  } from "@msdyn365-commerce/retail-proxy";
21
- import {
22
- buildStoreHours,
23
- IHoursDisplayInfo,
24
- } from "@evenicanpm/storefront-core/src/lib/store-hours-helper";
22
+ import AccessTimeFilledIcon from "@mui/icons-material/AccessTimeFilled";
23
+ import InventoryIcon from "@mui/icons-material/Inventory";
24
+ import Place from "@mui/icons-material/Place";
25
+ import Card from "@mui/material/Card";
25
26
  import { Box } from "@mui/system";
26
- import { convertSecondsToTime } from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card/utils/convertSecondsToTime";
27
- import { getDaysResources } from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/store-card/utils/getDaysResources";
28
27
 
29
28
  type Props = {
30
29
  name: string;
@@ -36,7 +35,7 @@ type Props = {
36
35
  inventoryRecord: ProductWarehouseInventoryAvailability | undefined;
37
36
  };
38
37
 
39
- export default function ShopCard(props: Props) {
38
+ export default function ShopCard(props: Readonly<Props>) {
40
39
  const { name, address, actionArea, openFrom, openTo, storeHours } =
41
40
  props || {};
42
41
 
@@ -1,4 +1,4 @@
1
- import { IStoreSelectorLocationLineItemResources } from "@evenicanpm/storefront-core/src/lib/store-hours-helper";
1
+ import type { IStoreSelectorLocationLineItemResources } from "@evenicanpm/storefront-core/src/lib/store-hours-helper";
2
2
  import { useTranslations } from "next-intl";
3
3
 
4
4
  export const getDaysResources = (): IStoreSelectorLocationLineItemResources => {
@@ -1,7 +1,7 @@
1
- import { ReactNode } from "react";
1
+ import Checkbox, { type CheckboxProps } from "@mui/material/Checkbox";
2
2
  // MUI
3
3
  import FormControlLabel from "@mui/material/FormControlLabel";
4
- import Checkbox, { CheckboxProps } from "@mui/material/Checkbox";
4
+ import type { ReactNode } from "react";
5
5
 
6
6
  // ==============================================================
7
7
  interface Props extends CheckboxProps {
@@ -9,7 +9,7 @@ interface Props extends CheckboxProps {
9
9
  }
10
10
  // ==============================================================
11
11
 
12
- export default function CheckboxLabel({ label, ...props }: Props) {
12
+ export default function CheckboxLabel({ label, ...props }: Readonly<Props>) {
13
13
  return (
14
14
  <FormControlLabel
15
15
  label={label}
@@ -1,5 +1,6 @@
1
1
  import currencyJs from "currency.js";
2
2
  import { formatDistanceStrict } from "date-fns";
3
+
3
4
  /**
4
5
  * NOTE: We can move this to a more appropriate location if needed.
5
6
  */
@@ -1,25 +1,25 @@
1
1
  "use client";
2
2
 
3
- import { Fragment } from "react";
4
- import Box from "@mui/material/Box";
5
- import Button from "@mui/material/Button";
6
- import styled from "@mui/material/styles/styled";
3
+ import {
4
+ FlexBox,
5
+ FlexRowCenter,
6
+ } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
7
7
  // GLOBAL CUSTOM COMPONENTS
8
8
  import {
9
9
  H2,
10
10
  H3,
11
11
  Span,
12
12
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
13
- import {
14
- FlexBox,
15
- FlexRowCenter,
16
- } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
17
- // LOCAL CUSTOM COMPONENT
18
- import FrequentlyProductCard from "@evenicanpm/storefront-core/src/pages-v2/product-details/frequently-product-card";
19
13
  // CUSTOM UTILS LIBRARY FUNCTION
20
14
  import { currency } from "@evenicanpm/storefront-core/src/lib/lib";
15
+ // LOCAL CUSTOM COMPONENT
16
+ import FrequentlyProductCard from "@evenicanpm/storefront-core/src/pages-v2/product-details/frequently-product-card";
21
17
  // CUSTOM DATA MODEL
22
- import { ProductSearchResult as Product } from "@msdyn365-commerce/retail-proxy";
18
+ import type { ProductSearchResult as Product } from "@msdyn365-commerce/retail-proxy";
19
+ import Box from "@mui/material/Box";
20
+ import Button from "@mui/material/Button";
21
+ import styled from "@mui/material/styles/styled";
22
+ import { Fragment } from "react";
23
23
 
24
24
  // STYLED COMPONENTS
25
25
  const WrapperBox = styled(Box)(({ theme }) => ({
@@ -32,7 +32,7 @@ const WrapperBox = styled(Box)(({ theme }) => ({
32
32
  type Props = { products: Product[] };
33
33
  // ============================================================
34
34
 
35
- export default function FrequentlyBought({ products }: Props) {
35
+ export default function FrequentlyBought({ products }: Readonly<Props>) {
36
36
  return (
37
37
  <WrapperBox mb={7.5}>
38
38
  <H3 mb={3}>Frequently Bought Together</H3>
@@ -1,19 +1,19 @@
1
- import Link from "next/link";
2
- import Box from "@mui/material/Box";
1
+ import BazaarCard from "@evenicanpm/storefront-core/src/components-v2/BazaarCard";
2
+ import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
3
3
  // GLOBAL CUSTOM COMPONENTS
4
4
  import HoverBox from "@evenicanpm/storefront-core/src/components-v2/HoverBox";
5
5
  import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
6
- import BazaarCard from "@evenicanpm/storefront-core/src/components-v2/BazaarCard";
7
6
  import {
8
7
  H6,
9
8
  Span,
10
9
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
11
- import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
12
10
  // CUSTOM UTILS LIBRARY FUNCTIONS
13
11
  import {
14
12
  calculateDiscount,
15
13
  currency,
16
14
  } from "@evenicanpm/storefront-core/src/lib/lib";
15
+ import Box from "@mui/material/Box";
16
+ import Link from "next/link";
17
17
 
18
18
  // =======================================================
19
19
  interface Props {
@@ -25,7 +25,7 @@ interface Props {
25
25
  }
26
26
  // =======================================================
27
27
 
28
- export default function FrequentlyProductCard(props: Props) {
28
+ export default function FrequentlyProductCard(props: Readonly<Props>) {
29
29
  const {
30
30
  imgUrl = "/assets/images/products/Rectangle 116.png",
31
31
  price,
@@ -1,8 +1,5 @@
1
1
  "use client";
2
2
 
3
- import Box from "@mui/material/Box";
4
- import Avatar from "@mui/material/Avatar";
5
- import Rating from "@mui/material/Rating";
6
3
  // GLOBAL CUSTOM COMPONENTS
7
4
  import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
8
5
  import {
@@ -13,6 +10,9 @@ import {
13
10
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
14
11
  // CUSTOM UTILS LIBRARY FUNCTION
15
12
  import { getDateDifference } from "@evenicanpm/storefront-core/src/lib/lib";
13
+ import Avatar from "@mui/material/Avatar";
14
+ import Box from "@mui/material/Box";
15
+ import Rating from "@mui/material/Rating";
16
16
 
17
17
  // ===========================================================
18
18
  interface Props {
@@ -24,7 +24,7 @@ interface Props {
24
24
  }
25
25
  // ===========================================================
26
26
 
27
- export default function ProductComment(props: Props) {
27
+ export default function ProductComment(props: Readonly<Props>) {
28
28
  const { name, imgUrl, rating, date, comment } = props || {};
29
29
 
30
30
  return (
@@ -1,18 +1,18 @@
1
1
  "use client";
2
2
 
3
3
  import { H3 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
4
- import { AttributeValue } from "@msdyn365-commerce/retail-proxy";
4
+ import type { AttributeValue } from "@msdyn365-commerce/retail-proxy";
5
5
 
6
6
  type Props = { attributes: AttributeValue[] };
7
7
 
8
- export default function ProductDescription({ attributes }: Props) {
8
+ export default function ProductDescription({ attributes }: Readonly<Props>) {
9
9
  return (
10
10
  <div>
11
11
  <H3 mb={2}>Specifications:</H3>
12
12
  {attributes?.map((attr, index) => {
13
13
  if (attr?.TextValue && attr?.Name)
14
14
  return (
15
- <div key={index}>
15
+ <div key={`attr-${index + 1}`}>
16
16
  {attr.Name}: {attr.TextValue}
17
17
  </div>
18
18
  );
@@ -1,15 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { Fragment, useState } from "react";
4
- // MUI
5
- import Box from "@mui/material/Box";
6
- import Rating from "@mui/material/Rating";
7
- import Divider from "@mui/material/Divider";
8
- import Collapse from "@mui/material/Collapse";
9
- import TextField from "@mui/material/TextField";
10
- import FormGroup from "@mui/material/FormGroup";
11
- // LOCAL CUSTOM COMPONENTS
12
- import CheckboxLabel from "@evenicanpm/storefront-core/src/pages-v2/product-details/checkbox-label";
3
+ import AccordionHeader from "@evenicanpm/storefront-core/src/components-v2/accordion/accordion-header";
13
4
  // GLOBAL CUSTOM COMPONENTS
14
5
  import {
15
6
  FlexBetween,
@@ -21,14 +12,23 @@ import {
21
12
  Paragraph,
22
13
  Span,
23
14
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
24
- import AccordionHeader from "@evenicanpm/storefront-core/src/components-v2/accordion/accordion-header";
15
+ // LOCAL CUSTOM COMPONENTS
16
+ import CheckboxLabel from "@evenicanpm/storefront-core/src/pages-v2/product-details/checkbox-label";
25
17
  // TYPE
26
- import {
18
+ import type {
27
19
  ProductFilterKeys,
28
- ProductFilterValues,
29
20
  ProductFilters,
21
+ ProductFilterValues,
30
22
  } from "@evenicanpm/storefront-core/src/pages-v2/product-details/types";
31
23
  import { Slider } from "@mui/material";
24
+ // MUI
25
+ import Box from "@mui/material/Box";
26
+ import Collapse from "@mui/material/Collapse";
27
+ import Divider from "@mui/material/Divider";
28
+ import FormGroup from "@mui/material/FormGroup";
29
+ import Rating from "@mui/material/Rating";
30
+ import TextField from "@mui/material/TextField";
31
+ import { Fragment, useState } from "react";
32
32
 
33
33
  // FILTER OPTIONS
34
34
  const categoryList = [
@@ -71,7 +71,10 @@ interface Props {
71
71
  }
72
72
  // ============================================================================
73
73
 
74
- export default function ProductFilterCard({ filters, changeFilters }: Props) {
74
+ export default function ProductFilterCard({
75
+ filters,
76
+ changeFilters,
77
+ }: Readonly<Props>) {
75
78
  const [collapsed, setCollapsed] = useState(true);
76
79
 
77
80
  const handleChangePrice = (values: number[]) => {
@@ -1,10 +1,15 @@
1
- import { createContext, Dispatch, SetStateAction, useContext } from "react";
2
- import { ProductDetails } from "@evenicanpm/storefront-core/src/api-manager/schemas/product.schema";
3
- import { SelectedDimensions } from "@evenicanpm/storefront-core/src/hooks/use-variants";
4
- import {
5
- ProductWarehouseInventoryInformation,
1
+ import type { ProductDetails } from "@evenicanpm/storefront-core/src/api-manager/schemas/product.schema";
2
+ import type { SelectedDimensions } from "@evenicanpm/storefront-core/src/hooks/use-variants";
3
+ import type {
6
4
  ProductDimensionValueInventoryAvailability,
5
+ ProductWarehouseInventoryInformation,
7
6
  } from "@msdyn365-commerce/retail-proxy";
7
+ import {
8
+ createContext,
9
+ type Dispatch,
10
+ type SetStateAction,
11
+ useContext,
12
+ } from "react";
8
13
 
9
14
  export interface ProductIntroContext {
10
15
  /** The current master product of the PDP */
@@ -1,43 +1,42 @@
1
- import React, { useContext, useState } from "react";
2
- import Rating from "@mui/material/Rating";
3
- import Box from "@mui/material/Box";
4
- import Grid from "@mui/material/Grid2";
5
- import { CircularProgress, Typography } from "@mui/material";
6
-
7
- // GLOBAL CUSTOM COMPONENTS
8
- import useCurrencyFormatter from "@evenicanpm/storefront-core/src/lib/currency-formatter";
1
+ import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
2
+ import QuantityButtons from "@evenicanpm/storefront-core/src/components-v2/product-quantity-buttons";
9
3
  import {
10
4
  H1,
11
5
  H2,
12
6
  H6,
13
7
  } from "@evenicanpm/storefront-core/src/components-v2/Typography";
14
- import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
15
- import QuantityButtons from "@evenicanpm/storefront-core/src/components-v2/product-quantity-buttons";
16
8
  import AddToWishlistButton from "@evenicanpm/storefront-core/src/components-v2/wishlist-dialogs/add-to-wishlist/add-to-wishlist-button";
9
+ // GLOBAL CUSTOM COMPONENTS
10
+ import useCurrencyFormatter from "@evenicanpm/storefront-core/src/lib/currency-formatter";
11
+ import { CircularProgress, Typography } from "@mui/material";
12
+ import Box from "@mui/material/Box";
13
+ import Grid from "@mui/material/Grid2";
14
+ import Rating from "@mui/material/Rating";
15
+ import type React from "react";
16
+ import { useContext, useState } from "react";
17
+
17
18
  // D365
18
19
 
20
+ import getProductAvailability from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-availability";
19
21
  // API MANAGER
20
22
  import getProductPrices from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-prices";
21
- import getProductAvailability from "@evenicanpm/storefront-core/src/api-manager/services/product/queries/get-product-availability";
22
-
23
+ // LOCAL COMPONENTS
24
+ import ProductDimensions from "@evenicanpm/storefront-core/src/components-v2/product-dimensions";
23
25
  // LOCAL HOOKS
24
26
  import useCart, {
25
- AddToCartBopisInput,
27
+ type AddToCartBopisInput,
26
28
  } from "@evenicanpm/storefront-core/src/hooks/use-cart";
27
-
28
- // LOCAL COMPONENTS
29
- import ProductDimensions from "@evenicanpm/storefront-core/src/components-v2/product-dimensions";
30
29
  import FindInStoreButton from "@evenicanpm/storefront-core/src/pages-v2/product-details/bopis/find-in-store-button";
31
30
  import {
31
+ ProductInfoContext,
32
32
  useProductInfo,
33
33
  useProductIntro,
34
- ProductInfoContext,
35
34
  } from "@evenicanpm/storefront-core/src/pages-v2/product-details/product-intro/compound/context";
36
35
 
37
36
  import {
38
- getInventoryLabel,
39
- checkProductOOS,
40
37
  buildInventorySearchCriteria,
38
+ checkProductOOS,
39
+ getInventoryLabel,
41
40
  } from "@evenicanpm/storefront-core/src/pages-v2/product-details/product-intro/utils";
42
41
 
43
42
  export interface Props {
@@ -169,6 +168,7 @@ ProductInfo.Price = () => {
169
168
 
170
169
  return (
171
170
  <Box pt={1}>
171
+ Test
172
172
  <H2 color="primary.main" mb={0.5} lineHeight="1">
173
173
  {pricesPending || !productPrices ? (
174
174
  <CircularProgress size={20} />