@evenicanpm/storefront-core 1.0.0-alpha

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 (475) hide show
  1. package/README.md +40 -0
  2. package/package.json +36 -0
  3. package/src/api-manager/README.md +38 -0
  4. package/src/api-manager/api-manager.config.json +12 -0
  5. package/src/api-manager/datasources/README.md +17 -0
  6. package/src/api-manager/datasources/d365/d365-address.datasource.ts +141 -0
  7. package/src/api-manager/datasources/d365/d365-base.datasource.ts +8 -0
  8. package/src/api-manager/datasources/d365/d365-cart.datasource.ts +374 -0
  9. package/src/api-manager/datasources/d365/d365-categories.datasource.ts +40 -0
  10. package/src/api-manager/datasources/d365/d365-order.datasource.ts +69 -0
  11. package/src/api-manager/datasources/d365/d365-organization.datasource.ts +92 -0
  12. package/src/api-manager/datasources/d365/d365-product.datasource.ts +272 -0
  13. package/src/api-manager/datasources/d365/d365-session.datasource.ts +25 -0
  14. package/src/api-manager/datasources/d365/d365-user.datasource.ts +132 -0
  15. package/src/api-manager/datasources/d365/d365.datasource.ts +45 -0
  16. package/src/api-manager/datasources/d365/index.ts +4 -0
  17. package/src/api-manager/datasources/d365/test-context.ts +30 -0
  18. package/src/api-manager/datasources/d365/utils/create-search-criteria.ts +17 -0
  19. package/src/api-manager/datasources/d365/utils/decode-jwt.ts +11 -0
  20. package/src/api-manager/datasources/d365/utils/get-context-cookie.ts +37 -0
  21. package/src/api-manager/datasources/d365/utils/parse-object.ts +9 -0
  22. package/src/api-manager/datasources/d365/utils/product-images-utils.ts +43 -0
  23. package/src/api-manager/datasources/d365/utils/product-inventory-utils.ts +37 -0
  24. package/src/api-manager/datasources/e4/e4-address.datasource.ts +107 -0
  25. package/src/api-manager/datasources/e4/e4-cart.datasource.ts +248 -0
  26. package/src/api-manager/datasources/e4/e4-order.datasource.ts +43 -0
  27. package/src/api-manager/datasources/e4/e4-organization.datasource.ts +19 -0
  28. package/src/api-manager/datasources/e4/e4-product.datasource.ts +157 -0
  29. package/src/api-manager/datasources/e4/e4-session.datasource.ts +43 -0
  30. package/src/api-manager/datasources/e4/e4-user.datasource.ts +118 -0
  31. package/src/api-manager/datasources/e4/e4.datasource.ts +55 -0
  32. package/src/api-manager/datasources/e4/e4.remaps.ts +331 -0
  33. package/src/api-manager/datasources/e4/e4.translator.test.ts +202 -0
  34. package/src/api-manager/datasources/e4/e4.translator.ts +648 -0
  35. package/src/api-manager/datasources/e4/graphqlRequestSdk.ts +43515 -0
  36. package/src/api-manager/datasources/e4/utils/unwrap-e4-variants.ts +65 -0
  37. package/src/api-manager/index.ts +71 -0
  38. package/src/api-manager/lib/cart-cookie-handler.ts +14 -0
  39. package/src/api-manager/lib/category-helpers.ts +113 -0
  40. package/src/api-manager/lib/get-dynamics-context.ts +34 -0
  41. package/src/api-manager/lib/get-graphql-client.test.ts +106 -0
  42. package/src/api-manager/lib/get-graphql-client.ts +53 -0
  43. package/src/api-manager/schemas/README.md +12 -0
  44. package/src/api-manager/schemas/address.schema.ts +46 -0
  45. package/src/api-manager/schemas/cart.schema.ts +92 -0
  46. package/src/api-manager/schemas/d365.schema.ts +7727 -0
  47. package/src/api-manager/schemas/order.schema.ts +30 -0
  48. package/src/api-manager/schemas/organization.schema.ts +32 -0
  49. package/src/api-manager/schemas/product.schema.ts +140 -0
  50. package/src/api-manager/schemas/session.schema.ts +17 -0
  51. package/src/api-manager/schemas/user.schema.ts +14 -0
  52. package/src/api-manager/services/address/mutations/create-address.ts +22 -0
  53. package/src/api-manager/services/address/mutations/delete-address.ts +21 -0
  54. package/src/api-manager/services/address/mutations/get-delivery-options.ts +22 -0
  55. package/src/api-manager/services/address/mutations/update-address.ts +21 -0
  56. package/src/api-manager/services/address/queries/get-countries.ts +16 -0
  57. package/src/api-manager/services/address/queries/get-states.ts +16 -0
  58. package/src/api-manager/services/cart/mutations/add-discount-code.ts +21 -0
  59. package/src/api-manager/services/cart/mutations/add-to-cart.ts +53 -0
  60. package/src/api-manager/services/cart/mutations/checkout.ts +11 -0
  61. package/src/api-manager/services/cart/mutations/delete-cart-line.ts +18 -0
  62. package/src/api-manager/services/cart/mutations/get-payment-accept-result.ts +20 -0
  63. package/src/api-manager/services/cart/mutations/remove-cart-line-delivery-mode.ts +24 -0
  64. package/src/api-manager/services/cart/mutations/remove-discount-code.ts +21 -0
  65. package/src/api-manager/services/cart/mutations/update-cart-line-delivery-mode.ts +24 -0
  66. package/src/api-manager/services/cart/mutations/update-cart-lines.ts +21 -0
  67. package/src/api-manager/services/cart/mutations/update-cart.ts +21 -0
  68. package/src/api-manager/services/cart/queries/get-cart.ts +12 -0
  69. package/src/api-manager/services/cart/queries/get-payment-accept-point.ts +18 -0
  70. package/src/api-manager/services/categories/queries/get-categories.ts +8 -0
  71. package/src/api-manager/services/create-mutation.ts +65 -0
  72. package/src/api-manager/services/create-query.ts +305 -0
  73. package/src/api-manager/services/get-query-client.ts +40 -0
  74. package/src/api-manager/services/order/queries/get-order-details.ts +17 -0
  75. package/src/api-manager/services/order/queries/get-orders.ts +14 -0
  76. package/src/api-manager/services/organization/queries/get-channel-configuration.ts +14 -0
  77. package/src/api-manager/services/organization/queries/get-stores.ts +17 -0
  78. package/src/api-manager/services/product/mutations/search-products.ts +23 -0
  79. package/src/api-manager/services/product/queries/get-product-availability.ts +15 -0
  80. package/src/api-manager/services/product/queries/get-product-by-id.ts +17 -0
  81. package/src/api-manager/services/product/queries/get-product-by-ids.ts +14 -0
  82. package/src/api-manager/services/product/queries/get-product-list.ts +16 -0
  83. package/src/api-manager/services/product/queries/get-related-products.ts +14 -0
  84. package/src/api-manager/services/product/queries/search-products.ts +10 -0
  85. package/src/api-manager/services/product/server/product.server.ts +13 -0
  86. package/src/api-manager/services/session/mutations/session-init.ts +22 -0
  87. package/src/api-manager/services/session/mutations/session-logout.ts +18 -0
  88. package/src/api-manager/services/session/queries/get-session.ts +10 -0
  89. package/src/api-manager/services/user/mutations/create-wishlist.ts +21 -0
  90. package/src/api-manager/services/user/mutations/delete-wishlist.ts +17 -0
  91. package/src/api-manager/services/user/mutations/update-user.ts +18 -0
  92. package/src/api-manager/services/user/queries/get-user-counts.ts +10 -0
  93. package/src/api-manager/services/user/queries/get-user.ts +10 -0
  94. package/src/api-manager/services/user/queries/get-wishlist-details.ts +10 -0
  95. package/src/api-manager/services/user/queries/get-wishlists.ts +10 -0
  96. package/src/api-manager/types/Datasource.ts +197 -0
  97. package/src/auth/auth-options.test.ts +127 -0
  98. package/src/auth/auth-options.ts +68 -0
  99. package/src/auth/msal.ts +65 -0
  100. package/src/auth/next-auth-cookie-manager.ts +86 -0
  101. package/src/auth/providers/aadb2c-provider.ts +33 -0
  102. package/src/auth/providers/authentik-provider.ts +24 -0
  103. package/src/auth/providers/index.ts +9 -0
  104. package/src/auth/providers/keycloak-provider.ts +22 -0
  105. package/src/auth/refresh-token-url-keys.ts +6 -0
  106. package/src/auth/refresh-token.ts +134 -0
  107. package/src/auth/signout.ts +46 -0
  108. package/src/auth/types/next-auth.d.ts +38 -0
  109. package/src/cms/blog.ts +229 -0
  110. package/src/cms/endpoints.ts +76 -0
  111. package/src/cms/interfaces/navigation.ts +52 -0
  112. package/src/cms/interfaces/productData.ts +83 -0
  113. package/src/cms/pages.ts +149 -0
  114. package/src/components/Blocks/BlockManager.tsx +67 -0
  115. package/src/components/Blocks/Components/BrandLogosScroller.tsx +72 -0
  116. package/src/components/Blocks/Components/CategoryCard.tsx +47 -0
  117. package/src/components/Blocks/Components/CategoryCarousel/index.tsx +60 -0
  118. package/src/components/Blocks/Components/FeaturePill.tsx +99 -0
  119. package/src/components/Blocks/Components/FeaturedCategories.tsx +41 -0
  120. package/src/components/Blocks/Components/FeaturedProducts.tsx +41 -0
  121. package/src/components/Blocks/Components/Footer.tsx +77 -0
  122. package/src/components/Blocks/Components/Hero.tsx +73 -0
  123. package/src/components/Blocks/Components/HeroCarousel/index.tsx +42 -0
  124. package/src/components/Blocks/Components/Image.tsx +39 -0
  125. package/src/components/Blocks/Components/MediaCard.tsx +41 -0
  126. package/src/components/Blocks/Components/ProductCarousel/index.tsx +82 -0
  127. package/src/components/Blocks/Components/ProductSectionFullWidth/index.tsx +103 -0
  128. package/src/components/Blocks/Components/RichText.tsx +19 -0
  129. package/src/components/Blocks/Components/Seo/index.tsx +48 -0
  130. package/src/components/Blocks/Components/Services/index.tsx +21 -0
  131. package/src/components/Blocks/Components/Services/service-card.tsx +70 -0
  132. package/src/components/Blocks/Components/shared/featured-product-card.tsx +29 -0
  133. package/src/components/Blocks/Components/shared/product-category-item.tsx +49 -0
  134. package/src/components/Blocks/Components/shared/product-grid.tsx +48 -0
  135. package/src/components/Blocks/Components/shared/top-categories-card.tsx +66 -0
  136. package/src/components/Blocks/Components/shared/top-rating-product-card.tsx +63 -0
  137. package/src/components/Blocks/Icons/Components/Category.tsx +14 -0
  138. package/src/components/Blocks/Icons/Components/DottedStar.tsx +40 -0
  139. package/src/components/Blocks/Icons/Components/FallbackIcon.tsx +33 -0
  140. package/src/components/Blocks/Icons/Components/GiftBox.tsx +18 -0
  141. package/src/components/Blocks/Icons/Components/Light.tsx +13 -0
  142. package/src/components/Blocks/Icons/Components/NewArrival.tsx +18 -0
  143. package/src/components/Blocks/Icons/Components/RankBadge.tsx +39 -0
  144. package/src/components/Blocks/Icons/index.ts +32 -0
  145. package/src/components/Blocks/index.tsx +16 -0
  146. package/src/components/Blocks/interfaces.ts +240 -0
  147. package/src/components/BoxShadowCard.tsx +16 -0
  148. package/src/components/Footer/data/index.ts +32 -0
  149. package/src/components/Footer/index.tsx +88 -0
  150. package/src/components/Footer/interfaces.ts +37 -0
  151. package/src/components/Footer/sections/FooterAppStore.tsx +45 -0
  152. package/src/components/Footer/sections/FooterContact.tsx +36 -0
  153. package/src/components/Footer/sections/FooterLinks.tsx +30 -0
  154. package/src/components/Footer/sections/FooterLogo.tsx +26 -0
  155. package/src/components/Footer/sections/FooterSocialLinks.tsx +70 -0
  156. package/src/components/Footer/styles/index.ts +39 -0
  157. package/src/components/GlobalLoading/index.tsx +102 -0
  158. package/src/components/ImageWithFallback.tsx +51 -0
  159. package/src/components/Loading/index.tsx +36 -0
  160. package/src/components/NavProvider/index.tsx +59 -0
  161. package/src/components/NavProvider/utils/createLink.ts +15 -0
  162. package/src/components/Notifications/README.md +15 -0
  163. package/src/components/Notifications/notification-context.tsx +82 -0
  164. package/src/components/Notifications/use-notification.ts +12 -0
  165. package/src/components/README.md +9 -0
  166. package/src/components/ReactQueryProvider/index.tsx +12 -0
  167. package/src/components/Shared/Image.tsx +5 -0
  168. package/src/components/T/index.tsx +15 -0
  169. package/src/components/_components/BazaarCard.tsx +21 -0
  170. package/src/components/_components/BazaarImage.tsx +12 -0
  171. package/src/components/_components/BazaarMenu.tsx +47 -0
  172. package/src/components/_components/BazaarSwitch.tsx +37 -0
  173. package/src/components/_components/BazaarTextField.tsx +73 -0
  174. package/src/components/_components/DropZone.tsx +86 -0
  175. package/src/components/_components/HoverBox.tsx +22 -0
  176. package/src/components/_components/LazyImage.tsx +9 -0
  177. package/src/components/_components/MiniCartClient.tsx +65 -0
  178. package/src/components/_components/SearchInput.tsx +28 -0
  179. package/src/components/_components/SnackbarProvider.tsx +32 -0
  180. package/src/components/_components/Typography.tsx +227 -0
  181. package/src/components/_components/WhiteButton.tsx +20 -0
  182. package/src/components/_components/accordion/accordion-header.tsx +43 -0
  183. package/src/components/_components/accordion/index.ts +1 -0
  184. package/src/components/_components/bazaar-types.ts +84 -0
  185. package/src/components/_components/carousel/carousel.tsx +72 -0
  186. package/src/components/_components/carousel/components/carousel-arrows.tsx +60 -0
  187. package/src/components/_components/carousel/components/carousel-dots.tsx +21 -0
  188. package/src/components/_components/carousel/index.ts +3 -0
  189. package/src/components/_components/carousel/styles/index.ts +93 -0
  190. package/src/components/_components/carousel-cards/carousel-card-1/carousel-card-1.tsx +64 -0
  191. package/src/components/_components/carousel-cards/carousel-card-1/index.ts +1 -0
  192. package/src/components/_components/carousel-cards/carousel-card-1/styles.ts +34 -0
  193. package/src/components/_components/carousel-cards/carousel-card-2/carousel-card-2.tsx +73 -0
  194. package/src/components/_components/carousel-cards/carousel-card-2/index.ts +1 -0
  195. package/src/components/_components/carousel-cards/carousel-card-2/styles.ts +26 -0
  196. package/src/components/_components/carousel-cards/carousel-card-3/carousel-card-3.tsx +34 -0
  197. package/src/components/_components/carousel-cards/carousel-card-3/index.ts +1 -0
  198. package/src/components/_components/carousel-cards/carousel-card-3/styles.ts +28 -0
  199. package/src/components/_components/carousel-cards/carousel-card-4/carousel-card-4.tsx +76 -0
  200. package/src/components/_components/carousel-cards/carousel-card-4/index.ts +1 -0
  201. package/src/components/_components/carousel-cards/carousel-card-4/styles.ts +27 -0
  202. package/src/components/_components/categories/category-list/category-list.tsx +59 -0
  203. package/src/components/_components/categories/category-list/index.ts +1 -0
  204. package/src/components/_components/categories/category-list/styles.ts +29 -0
  205. package/src/components/_components/categories/category-list/types.ts +4 -0
  206. package/src/components/_components/categories/category-list-item/category-menu-item.tsx +37 -0
  207. package/src/components/_components/categories/category-list-item/index.ts +1 -0
  208. package/src/components/_components/categories/category-list-item/styles.ts +35 -0
  209. package/src/components/_components/categories/category-menu.tsx +51 -0
  210. package/src/components/_components/categories/mega-menu/banner.tsx +56 -0
  211. package/src/components/_components/categories/mega-menu/column-list.tsx +70 -0
  212. package/src/components/_components/categories/mega-menu/mega-menu-1.tsx +37 -0
  213. package/src/components/_components/categories/mega-menu/mega-menu-2.tsx +37 -0
  214. package/src/components/_components/categories/mega-menu/styles.ts +25 -0
  215. package/src/components/_components/categories/types.ts +16 -0
  216. package/src/components/_components/category-cards/category-card-1/category-card-1.tsx +21 -0
  217. package/src/components/_components/category-cards/category-card-1/index.ts +1 -0
  218. package/src/components/_components/category-cards/category-card-1/styles.ts +37 -0
  219. package/src/components/_components/countdown/count-box.tsx +16 -0
  220. package/src/components/_components/countdown/count-down.tsx +24 -0
  221. package/src/components/_components/countdown/index.tsx +2 -0
  222. package/src/components/_components/countdown/useCountDown.ts +41 -0
  223. package/src/components/_components/data-table/index.ts +2 -0
  224. package/src/components/_components/data-table/table-header.tsx +91 -0
  225. package/src/components/_components/data-table/table-pagination.tsx +36 -0
  226. package/src/components/_components/flex-box/flex-between.tsx +14 -0
  227. package/src/components/_components/flex-box/flex-box.tsx +9 -0
  228. package/src/components/_components/flex-box/flex-row-center.tsx +9 -0
  229. package/src/components/_components/flex-box/index.ts +5 -0
  230. package/src/components/_components/footer/components/about-links.tsx +23 -0
  231. package/src/components/_components/footer/components/app-store.tsx +38 -0
  232. package/src/components/_components/footer/components/customer-care-links.tsx +21 -0
  233. package/src/components/_components/footer/components/logo.tsx +23 -0
  234. package/src/components/_components/footer/components/social-links.tsx +43 -0
  235. package/src/components/_components/footer/data/index.ts +54 -0
  236. package/src/components/_components/footer/footer-1.tsx +62 -0
  237. package/src/components/_components/footer/footer-2.tsx +57 -0
  238. package/src/components/_components/footer/footer-3.tsx +53 -0
  239. package/src/components/_components/footer/footer-4.tsx +71 -0
  240. package/src/components/_components/footer/index.ts +4 -0
  241. package/src/components/_components/footer/styles/index.ts +42 -0
  242. package/src/components/_components/header/components/categories-menu.tsx +23 -0
  243. package/src/components/_components/header/components/mobile-header.tsx +72 -0
  244. package/src/components/_components/header/components/user.test.tsx +200 -0
  245. package/src/components/_components/header/components/user.tsx +205 -0
  246. package/src/components/_components/header/header.tsx +63 -0
  247. package/src/components/_components/header/hooks/use-header.ts +13 -0
  248. package/src/components/_components/header/index.ts +1 -0
  249. package/src/components/_components/header/sticky-header.tsx +17 -0
  250. package/src/components/_components/header/styles/index.ts +24 -0
  251. package/src/components/_components/hooks/useOverflowDetect.ts +34 -0
  252. package/src/components/_components/hooks/useSettings.ts +16 -0
  253. package/src/components/_components/icons/cart-bag.tsx +13 -0
  254. package/src/components/_components/icons/category-outline.tsx +29 -0
  255. package/src/components/_components/icons/category.tsx +12 -0
  256. package/src/components/_components/icons/home.tsx +19 -0
  257. package/src/components/_components/icons/search.tsx +13 -0
  258. package/src/components/_components/icons/shopping-bag-outlined.tsx +13 -0
  259. package/src/components/_components/icons/up-down.tsx +21 -0
  260. package/src/components/_components/icons/user.tsx +13 -0
  261. package/src/components/_components/icons/user2.tsx +14 -0
  262. package/src/components/_components/mini-cart/__tests__/cart-item.test.tsx +174 -0
  263. package/src/components/_components/mini-cart/__tests__/mini-cart.test.tsx +121 -0
  264. package/src/components/_components/mini-cart/__tests__/test-cart-empty.json +84 -0
  265. package/src/components/_components/mini-cart/__tests__/test-cart-with-item.json +244 -0
  266. package/src/components/_components/mini-cart/components/bottom-actions.tsx +27 -0
  267. package/src/components/_components/mini-cart/components/cart-item.tsx +144 -0
  268. package/src/components/_components/mini-cart/components/empty-view.tsx +29 -0
  269. package/src/components/_components/mini-cart/components/top-header.tsx +34 -0
  270. package/src/components/_components/mini-cart/index.ts +1 -0
  271. package/src/components/_components/mini-cart/mini-cart.tsx +107 -0
  272. package/src/components/_components/mobile-navigation/index.ts +3 -0
  273. package/src/components/_components/mobile-navigation/mobile-navigation-bar.tsx +73 -0
  274. package/src/components/_components/mobile-navigation/styles/index.ts +63 -0
  275. package/src/components/_components/nav-link/index.ts +5 -0
  276. package/src/components/_components/nav-link/nav-link-2.tsx +32 -0
  277. package/src/components/_components/nav-link/nav-link-3.tsx +67 -0
  278. package/src/components/_components/nav-link/nav-link.tsx +53 -0
  279. package/src/components/_components/navbar/categories.tsx +27 -0
  280. package/src/components/_components/navbar/category-based-menu/category-based-menu.tsx +52 -0
  281. package/src/components/_components/navbar/category-based-menu/components/categories.tsx +44 -0
  282. package/src/components/_components/navbar/category-based-menu/components/category-item.tsx +31 -0
  283. package/src/components/_components/navbar/category-based-menu/components/child-categories.tsx +38 -0
  284. package/src/components/_components/navbar/category-based-menu/index.ts +1 -0
  285. package/src/components/_components/navbar/category-based-menu/styles.ts +81 -0
  286. package/src/components/_components/navbar/category-based-menu/types.ts +18 -0
  287. package/src/components/_components/navbar/index.ts +1 -0
  288. package/src/components/_components/navbar/mega-menu/category-list.tsx +29 -0
  289. package/src/components/_components/navbar/mega-menu/index.ts +1 -0
  290. package/src/components/_components/navbar/mega-menu/mega-menu.tsx +71 -0
  291. package/src/components/_components/navbar/mega-menu/styles.ts +43 -0
  292. package/src/components/_components/navbar/mobile-menu/index.ts +1 -0
  293. package/src/components/_components/navbar/mobile-menu/mobile-menu.tsx +70 -0
  294. package/src/components/_components/navbar/mobile-menu/render-levels.test.tsx +71 -0
  295. package/src/components/_components/navbar/mobile-menu/render-levels.tsx +62 -0
  296. package/src/components/_components/navbar/nav-list/cms-nav.test.tsx +84 -0
  297. package/src/components/_components/navbar/nav-list/index.ts +1 -0
  298. package/src/components/_components/navbar/nav-list/nav-item-child.tsx +66 -0
  299. package/src/components/_components/navbar/nav-list/nav-list.tsx +119 -0
  300. package/src/components/_components/navbar/navbar.tsx +43 -0
  301. package/src/components/_components/navbar/styles.ts +90 -0
  302. package/src/components/_components/navbar/utils/transform-nav.test.ts +209 -0
  303. package/src/components/_components/navbar/utils/transform-nav.ts +43 -0
  304. package/src/components/_components/newsletter/index.ts +1 -0
  305. package/src/components/_components/newsletter/newsletter.tsx +108 -0
  306. package/src/components/_components/newsletter/social-icons.tsx +35 -0
  307. package/src/components/_components/newsletter/styles.ts +65 -0
  308. package/src/components/_components/page-sidenav/grocery-side-nav/components/link-item.tsx +21 -0
  309. package/src/components/_components/page-sidenav/grocery-side-nav/components/list-item.tsx +27 -0
  310. package/src/components/_components/page-sidenav/grocery-side-nav/components/nav-accordion.tsx +36 -0
  311. package/src/components/_components/page-sidenav/grocery-side-nav/components/render-child.tsx +26 -0
  312. package/src/components/_components/page-sidenav/grocery-side-nav/grocery-side-nav.tsx +32 -0
  313. package/src/components/_components/page-sidenav/grocery-side-nav/index.ts +1 -0
  314. package/src/components/_components/page-sidenav/grocery-side-nav/styles/index.ts +11 -0
  315. package/src/components/_components/page-sidenav/health-beauty-side-nav/components/list-item.tsx +27 -0
  316. package/src/components/_components/page-sidenav/health-beauty-side-nav/components/nav-accordion.tsx +44 -0
  317. package/src/components/_components/page-sidenav/health-beauty-side-nav/components/render-child.tsx +20 -0
  318. package/src/components/_components/page-sidenav/health-beauty-side-nav/health-beauty-side-nav.tsx +43 -0
  319. package/src/components/_components/page-sidenav/health-beauty-side-nav/index.ts +1 -0
  320. package/src/components/_components/page-sidenav/health-beauty-side-nav/styles/index.ts +27 -0
  321. package/src/components/_components/page-sidenav/side-navbar/components/list-item.tsx +25 -0
  322. package/src/components/_components/page-sidenav/side-navbar/components/nav-accordion.tsx +46 -0
  323. package/src/components/_components/page-sidenav/side-navbar/components/render-child.tsx +20 -0
  324. package/src/components/_components/page-sidenav/side-navbar/index.ts +1 -0
  325. package/src/components/_components/page-sidenav/side-navbar/side-nav-bar.tsx +77 -0
  326. package/src/components/_components/page-sidenav/side-navbar/styles/index.ts +73 -0
  327. package/src/components/_components/page-sidenav/side-navbar-2/components/button-content.tsx +32 -0
  328. package/src/components/_components/page-sidenav/side-navbar-2/components/sidebar-accordion.tsx +66 -0
  329. package/src/components/_components/page-sidenav/side-navbar-2/index.ts +1 -0
  330. package/src/components/_components/page-sidenav/side-navbar-2/side-navbar-2.tsx +63 -0
  331. package/src/components/_components/page-sidenav/side-navbar-2/styles/index.ts +68 -0
  332. package/src/components/_components/product-cards/discount-chip.tsx +43 -0
  333. package/src/components/_components/product-cards/product-card-1/components/hover-actions.tsx +37 -0
  334. package/src/components/_components/product-cards/product-card-1/components/quantity-buttons.tsx +56 -0
  335. package/src/components/_components/product-cards/product-card-1/index.ts +1 -0
  336. package/src/components/_components/product-cards/product-card-1/product-card.tsx +146 -0
  337. package/src/components/_components/product-cards/product-card-1/styles/index.ts +46 -0
  338. package/src/components/_components/product-cards/product-card-10/index.ts +1 -0
  339. package/src/components/_components/product-cards/product-card-10/product-card.tsx +124 -0
  340. package/src/components/_components/product-cards/product-card-10/styles/index.ts +38 -0
  341. package/src/components/_components/product-cards/product-card-11/index.ts +1 -0
  342. package/src/components/_components/product-cards/product-card-11/product-card.tsx +63 -0
  343. package/src/components/_components/product-cards/product-card-11/styles/index.ts +16 -0
  344. package/src/components/_components/product-cards/product-card-12/index.ts +1 -0
  345. package/src/components/_components/product-cards/product-card-12/product-card.tsx +42 -0
  346. package/src/components/_components/product-cards/product-card-12/styles/index.ts +16 -0
  347. package/src/components/_components/product-cards/product-card-13/index.ts +1 -0
  348. package/src/components/_components/product-cards/product-card-13/product-card.tsx +45 -0
  349. package/src/components/_components/product-cards/product-card-13/styles/index.ts +25 -0
  350. package/src/components/_components/product-cards/product-card-14/index.ts +1 -0
  351. package/src/components/_components/product-cards/product-card-14/product-card.tsx +122 -0
  352. package/src/components/_components/product-cards/product-card-14/styles/index.ts +40 -0
  353. package/src/components/_components/product-cards/product-card-15/index.ts +1 -0
  354. package/src/components/_components/product-cards/product-card-15/product-card.tsx +118 -0
  355. package/src/components/_components/product-cards/product-card-15/styles/index.ts +57 -0
  356. package/src/components/_components/product-cards/product-card-16/components/quantity-buttons.tsx +56 -0
  357. package/src/components/_components/product-cards/product-card-16/index.ts +1 -0
  358. package/src/components/_components/product-cards/product-card-16/product-card.tsx +114 -0
  359. package/src/components/_components/product-cards/product-card-16/styles/index.ts +18 -0
  360. package/src/components/_components/product-cards/product-card-2/components/favorite-button.tsx +29 -0
  361. package/src/components/_components/product-cards/product-card-2/components/product-price.tsx +26 -0
  362. package/src/components/_components/product-cards/product-card-2/index.ts +1 -0
  363. package/src/components/_components/product-cards/product-card-2/product-card.tsx +70 -0
  364. package/src/components/_components/product-cards/product-card-3/components/hover-actions.tsx +83 -0
  365. package/src/components/_components/product-cards/product-card-3/index.ts +1 -0
  366. package/src/components/_components/product-cards/product-card-3/product-card.tsx +110 -0
  367. package/src/components/_components/product-cards/product-card-3/styles/index.ts +89 -0
  368. package/src/components/_components/product-cards/product-card-4/components/hover-actions.tsx +50 -0
  369. package/src/components/_components/product-cards/product-card-4/index.ts +1 -0
  370. package/src/components/_components/product-cards/product-card-4/product-card.tsx +128 -0
  371. package/src/components/_components/product-cards/product-card-4/styles/index.ts +66 -0
  372. package/src/components/_components/product-cards/product-card-5/components/button-actions.tsx +49 -0
  373. package/src/components/_components/product-cards/product-card-5/components/hover-actions.tsx +50 -0
  374. package/src/components/_components/product-cards/product-card-5/index.ts +1 -0
  375. package/src/components/_components/product-cards/product-card-5/product-card.tsx +137 -0
  376. package/src/components/_components/product-cards/product-card-5/styles/index.ts +94 -0
  377. package/src/components/_components/product-cards/product-card-6/components/hover-actions.tsx +50 -0
  378. package/src/components/_components/product-cards/product-card-6/index.ts +1 -0
  379. package/src/components/_components/product-cards/product-card-6/product-card.tsx +121 -0
  380. package/src/components/_components/product-cards/product-card-6/styles/index.ts +63 -0
  381. package/src/components/_components/product-cards/product-card-7/components/product-status.tsx +18 -0
  382. package/src/components/_components/product-cards/product-card-7/components/quantity-buttons.tsx +47 -0
  383. package/src/components/_components/product-cards/product-card-7/index.ts +1 -0
  384. package/src/components/_components/product-cards/product-card-7/product-card.tsx +136 -0
  385. package/src/components/_components/product-cards/product-card-7/styles/index.ts +98 -0
  386. package/src/components/_components/product-cards/product-card-8/index.ts +1 -0
  387. package/src/components/_components/product-cards/product-card-8/product-card.tsx +133 -0
  388. package/src/components/_components/product-cards/product-card-8/styles/index.ts +51 -0
  389. package/src/components/_components/product-cards/product-card-9/components/add-to-cart.tsx +60 -0
  390. package/src/components/_components/product-cards/product-card-9/components/favorite-button.tsx +27 -0
  391. package/src/components/_components/product-cards/product-card-9/components/tags.tsx +33 -0
  392. package/src/components/_components/product-cards/product-card-9/index.ts +1 -0
  393. package/src/components/_components/product-cards/product-card-9/product-card.tsx +169 -0
  394. package/src/components/_components/product-cards/product-price.tsx +26 -0
  395. package/src/components/_components/product-cards/product-rating.tsx +28 -0
  396. package/src/components/_components/product-cards/product-title.tsx +24 -0
  397. package/src/components/_components/product-cards/use-product.ts +35 -0
  398. package/src/components/_components/products-view/product-view-dialog.tsx +180 -0
  399. package/src/components/_components/products-view/products-grid-view.tsx +39 -0
  400. package/src/components/_components/products-view/products-list-view.tsx +35 -0
  401. package/src/components/_components/progress/index.ts +1 -0
  402. package/src/components/_components/progress/progress.tsx +77 -0
  403. package/src/components/_components/scrollbar/index.ts +1 -0
  404. package/src/components/_components/scrollbar/scrollbar.tsx +27 -0
  405. package/src/components/_components/scrollbar/styles.ts +15 -0
  406. package/src/components/_components/search-box/components/category-dropdown.tsx +61 -0
  407. package/src/components/_components/search-box/components/search-result.tsx +29 -0
  408. package/src/components/_components/search-box/hooks/use-search.ts +63 -0
  409. package/src/components/_components/search-box/index.ts +2 -0
  410. package/src/components/_components/search-box/search-input-category.test.tsx +110 -0
  411. package/src/components/_components/search-box/search-input-category.tsx +104 -0
  412. package/src/components/_components/search-box/search-input.test.tsx +41 -0
  413. package/src/components/_components/search-box/search-input.tsx +64 -0
  414. package/src/components/_components/search-box/styles/index.ts +45 -0
  415. package/src/components/_components/section-header/index.ts +2 -0
  416. package/src/components/_components/section-header/section-creator.tsx +28 -0
  417. package/src/components/_components/section-header/section-header.tsx +44 -0
  418. package/src/components/_components/service-cards/icon-component.tsx +18 -0
  419. package/src/components/_components/service-cards/service-card-1/index.ts +1 -0
  420. package/src/components/_components/service-cards/service-card-1/service-card-1.tsx +39 -0
  421. package/src/components/_components/service-cards/service-card-2/index.ts +1 -0
  422. package/src/components/_components/service-cards/service-card-2/service-card-2.tsx +34 -0
  423. package/src/components/_components/service-cards/service-card-3/index.ts +1 -0
  424. package/src/components/_components/service-cards/service-card-3/service-card-3.tsx +25 -0
  425. package/src/components/_components/service-cards/service-card-3/styles.ts +23 -0
  426. package/src/components/_components/settings/index.ts +1 -0
  427. package/src/components/_components/settings/setting.tsx +141 -0
  428. package/src/components/_components/settings/styles.ts +57 -0
  429. package/src/components/_components/shop-card/index.ts +1 -0
  430. package/src/components/_components/shop-card/shop-card.tsx +152 -0
  431. package/src/components/_components/shop-card/styles.ts +33 -0
  432. package/src/components/_components/side-nav/index.ts +1 -0
  433. package/src/components/_components/side-nav/side-nav.tsx +49 -0
  434. package/src/components/_components/site-logo.tsx +17 -0
  435. package/src/components/_components/sticky/Sticky.tsx +62 -0
  436. package/src/components/_components/sticky/index.ts +1 -0
  437. package/src/components/_components/sticky/styles.ts +38 -0
  438. package/src/components/_components/sticky-wrapper/index.ts +1 -0
  439. package/src/components/_components/sticky-wrapper/sticky-wrapper.tsx +21 -0
  440. package/src/components/_components/sticky-wrapper/styles.ts +25 -0
  441. package/src/components/_components/stories/story-content/index.ts +1 -0
  442. package/src/components/_components/stories/story-content/story-content.tsx +28 -0
  443. package/src/components/_components/stories/story-content/styles.ts +22 -0
  444. package/src/components/_components/stories/story-item/index.ts +1 -0
  445. package/src/components/_components/stories/story-item/story-item.tsx +24 -0
  446. package/src/components/_components/stories/story-item/styles.ts +11 -0
  447. package/src/components/_components/stories/story-viewer/index.ts +1 -0
  448. package/src/components/_components/stories/story-viewer/story-viewer.tsx +44 -0
  449. package/src/components/_components/stories/story-viewer/styles.ts +15 -0
  450. package/src/components/_components/subscribe-input/index.ts +1 -0
  451. package/src/components/_components/subscribe-input/styles.ts +14 -0
  452. package/src/components/_components/subscribe-input/subscribe-input.tsx +43 -0
  453. package/src/components/_components/topbar/index.ts +1 -0
  454. package/src/components/_components/topbar/styles.ts +55 -0
  455. package/src/components/_components/topbar/top-bar.tsx +112 -0
  456. package/src/components/_components/utils/constants.ts +8 -0
  457. package/src/components/countries-input.tsx +78 -0
  458. package/src/config.ts +47 -0
  459. package/src/lib/build-detail-url.ts +8 -0
  460. package/src/lib/build-product-detail-url.ts +12 -0
  461. package/src/lib/cart-cookie-client-handler.ts +12 -0
  462. package/src/lib/cart-cookie-handler.ts +14 -0
  463. package/src/lib/category-helpers.ts +113 -0
  464. package/src/lib/create-graphql-client.ts +32 -0
  465. package/src/lib/currency-formatter.ts +31 -0
  466. package/src/lib/get-palette-color.ts +50 -0
  467. package/src/lib/graphqlRequestSdk.ts +41234 -0
  468. package/src/lib/hexToLuma.ts +55 -0
  469. package/src/lib/lib.ts +61 -0
  470. package/src/lib/map-helper.ts +71 -0
  471. package/src/lib/page-slugs.ts +10 -0
  472. package/src/lib/refiner-utils.ts +32 -0
  473. package/src/lib/store-hours-helper.ts +274 -0
  474. package/src/lib/test-media.ts +23 -0
  475. package/tsconfig.json +27 -0
@@ -0,0 +1,9 @@
1
+ import Box, { BoxProps } from "@mui/material/Box";
2
+
3
+ export default function FlexBox({ children, ...props }: BoxProps) {
4
+ return (
5
+ <Box display="flex" {...props}>
6
+ {children}
7
+ </Box>
8
+ );
9
+ }
@@ -0,0 +1,9 @@
1
+ import Box, { BoxProps } from "@mui/material/Box";
2
+
3
+ export default function FlexRowCenter({ children, ...props }: BoxProps) {
4
+ return (
5
+ <Box display="flex" justifyContent="center" alignItems="center" {...props}>
6
+ {children}
7
+ </Box>
8
+ );
9
+ }
@@ -0,0 +1,5 @@
1
+ import FlexBox from "./flex-box";
2
+ import FlexBetween from "./flex-between";
3
+ import FlexRowCenter from "./flex-row-center";
4
+
5
+ export { FlexBox, FlexBetween, FlexRowCenter };
@@ -0,0 +1,23 @@
1
+ import { Fragment } from "react";
2
+ import { Heading, StyledLink } from "../styles/index";
3
+ import { ABOUT_LINKS } from "../data/index";
4
+
5
+ // ==============================================================
6
+ type Props = { isDark?: boolean };
7
+ // ==============================================================
8
+
9
+ export default function AboutLinks({ isDark }: Props) {
10
+ return (
11
+ <Fragment>
12
+ <Heading>About Us</Heading>
13
+
14
+ <div>
15
+ {ABOUT_LINKS.map((item, ind) => (
16
+ <StyledLink isDark={isDark} href="/" key={ind}>
17
+ {item}
18
+ </StyledLink>
19
+ ))}
20
+ </div>
21
+ </Fragment>
22
+ );
23
+ }
@@ -0,0 +1,38 @@
1
+ import Box from "@mui/material/Box";
2
+ // GLOBAL CUSTOM COMPONENT
3
+ import FlexBox from "@/components/_components/flex-box/flex-box";
4
+ // CUSTOM ICON COMPONENTS
5
+ import { PLAY_APP_STORE_DATA } from "../data/index";
6
+
7
+ export default function AppStore() {
8
+ return (
9
+ <FlexBox flexWrap="wrap" m={-1}>
10
+ {PLAY_APP_STORE_DATA.map(({ icon: Icon, subtitle, title, url }) => (
11
+ <a href={url} key={title} target="_blank" rel="noreferrer noopener">
12
+ <Box
13
+ m={1}
14
+ gap={1}
15
+ p="10px 16px"
16
+ color="white"
17
+ display="flex"
18
+ bgcolor="#161d2b"
19
+ borderRadius="5px"
20
+ alignItems="center"
21
+ >
22
+ <Icon />
23
+
24
+ <div>
25
+ <Box fontSize="8px" fontWeight="600" lineHeight="1">
26
+ {subtitle}
27
+ </Box>
28
+
29
+ <Box fontSize="14px" fontWeight="700">
30
+ {title}
31
+ </Box>
32
+ </div>
33
+ </Box>
34
+ </a>
35
+ ))}
36
+ </FlexBox>
37
+ );
38
+ }
@@ -0,0 +1,21 @@
1
+ import { Fragment } from "react";
2
+ import { Heading, StyledLink } from "../styles/index";
3
+ import { CUSTOMER_CARE_LINKS } from "../data/index";
4
+
5
+ // ==============================================================
6
+ type Props = { isDark?: boolean };
7
+ // ==============================================================
8
+
9
+ export default function CustomerCareLinks({ isDark }: Props) {
10
+ return (
11
+ <Fragment>
12
+ <Heading>Customer Care</Heading>
13
+
14
+ {CUSTOMER_CARE_LINKS.map((item, ind) => (
15
+ <StyledLink isDark={isDark} href="/" key={ind}>
16
+ {item}
17
+ </StyledLink>
18
+ ))}
19
+ </Fragment>
20
+ );
21
+ }
@@ -0,0 +1,23 @@
1
+ import { Fragment } from "react";
2
+ import Link from "next/link";
3
+ import AppStore from "./app-store";
4
+ import Image from "@/components/_components/BazaarImage";
5
+ import { Paragraph } from "@/components/_components/Typography";
6
+
7
+ export default function LogoSection() {
8
+ return (
9
+ <Fragment>
10
+ <Link href="/">
11
+ <Image mb={2.5} src="/assets/images/logo.svg" alt="logo" />
12
+ </Link>
13
+
14
+ <Paragraph mb={2.5} color="grey.500">
15
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Auctor libero
16
+ id et, in gravida. Sit diam duis mauris nulla cursus. Erat et lectus vel
17
+ ut sollicitudin elit at amet.
18
+ </Paragraph>
19
+
20
+ <AppStore />
21
+ </Fragment>
22
+ );
23
+ }
@@ -0,0 +1,43 @@
1
+ "use client";
2
+
3
+ import IconButton from "@mui/material/IconButton";
4
+ import styled from "@mui/material/styles/styled";
5
+ // GLOBAL CUSTOM COMPONENT
6
+ import FlexBox from "@/components/_components/flex-box/flex-box";
7
+ // DATA
8
+ import { SOCIAL_ICON_LINKS } from "../data/index";
9
+
10
+ // STYLED COMPONENTS
11
+ const StyledIconButton = styled(IconButton, {
12
+ shouldForwardProp: (prop) => prop !== "variant",
13
+ })<Props>(({ variant, theme }) => ({
14
+ margin: 4,
15
+ fontSize: 12,
16
+ padding: "10px",
17
+ ...(variant === "light" && {
18
+ backgroundColor: "rgba(0,0,0,0.2)",
19
+ }),
20
+ ...(variant === "dark" && {
21
+ backgroundColor: theme.palette.grey[700],
22
+ ":hover": { backgroundColor: theme.palette.grey[800] },
23
+ }),
24
+ ".icon": { color: "white" },
25
+ }));
26
+
27
+ // ==============================================================
28
+ type Props = { variant?: "light" | "dark" };
29
+ // ==============================================================
30
+
31
+ export default function SocialLinks({ variant = "light" }: Props) {
32
+ return (
33
+ <FlexBox className="flex" mx={-0.625}>
34
+ {SOCIAL_ICON_LINKS.map(({ Icon, url }, ind) => (
35
+ <a href={url} target="_blank" rel="noreferrer noopenner" key={ind}>
36
+ <StyledIconButton variant={variant}>
37
+ <Icon fontSize="inherit" className="icon" />
38
+ </StyledIconButton>
39
+ </a>
40
+ ))}
41
+ </FlexBox>
42
+ );
43
+ }
@@ -0,0 +1,54 @@
1
+ // CUSTOM ICON COMPONENTS
2
+ // import Google from "icons/Google";
3
+ // import Twitter from "icons/Twitter";
4
+ // import Youtube from "icons/Youtube";
5
+ // import Facebook from "icons/Facebook";
6
+ // import Instagram from "icons/Instagram";
7
+ // import PlayStore from "icons/PlayStore";
8
+ // import AppleStore from "icons/AppleStore";
9
+
10
+ import FallbackIcon from "@/components/Blocks/Icons/Components/FallbackIcon";
11
+
12
+ const Google = FallbackIcon;
13
+ const Twitter = FallbackIcon;
14
+ const Youtube = FallbackIcon;
15
+ const Facebook = FallbackIcon;
16
+ const Instagram = FallbackIcon;
17
+ const PlayStore = FallbackIcon;
18
+ const AppleStore = FallbackIcon;
19
+
20
+ export const ABOUT_LINKS = [
21
+ "Careers",
22
+ "Our Stores",
23
+ "Our Cares",
24
+ "Terms & Conditions",
25
+ "Privacy Policy",
26
+ ];
27
+
28
+ export const CUSTOMER_CARE_LINKS = [
29
+ "Help Center",
30
+ "Track Your Order",
31
+ "Corporate & Bulk Purchasing",
32
+ "Returns & Refunds",
33
+ ];
34
+
35
+ export const SOCIAL_ICON_LINKS = [
36
+ { Icon: Facebook, url: "https://www.facebook.com/UILibOfficial" },
37
+ { Icon: Twitter, url: "https://twitter.com/uilibofficial" },
38
+ {
39
+ Icon: Youtube,
40
+ url: "https://www.youtube.com/channel/UCsIyD-TSO1wQFz-n2Y4i3Rg",
41
+ },
42
+ { Icon: Google, url: "https://www.google.com/search?q=ui-lib.com" },
43
+ { Icon: Instagram, url: "https://www.instagram.com/uilibofficial/" },
44
+ ];
45
+
46
+ export const PLAY_APP_STORE_DATA = [
47
+ { url: "/", icon: PlayStore, title: "Google Play", subtitle: "Get it on" },
48
+ {
49
+ url: "/",
50
+ icon: AppleStore,
51
+ title: "App Store",
52
+ subtitle: "Download on the",
53
+ },
54
+ ];
@@ -0,0 +1,62 @@
1
+ import Box from "@mui/material/Box";
2
+ import Grid from "@mui/material/Grid";
3
+ import Container from "@mui/material/Container";
4
+ // LOCAL CUSTOM COMPONENT
5
+ import LogoSection from "./components/logo";
6
+ import AboutLinks from "./components/about-links";
7
+ import SocialLinks from "./components/social-links";
8
+ import CustomerCareLinks from "./components/customer-care-links";
9
+ // GLOBAL CUSTOM COMPONENTS
10
+ import { Paragraph } from "@/components/_components/Typography";
11
+ // STYLED COMPONENTS
12
+ import { Heading } from "./styles/index";
13
+
14
+ export default function Footer1() {
15
+ return (
16
+ <Box component="footer" bgcolor="#222935" mb={{ sm: 0, xs: 7 }}>
17
+ <Box
18
+ component={Container}
19
+ color="white"
20
+ overflow="hidden"
21
+ py={{ sm: 10, xs: 4 }}
22
+ >
23
+ <Grid container spacing={3}>
24
+ <Grid item lg={4} md={6} sm={6} xs={12}>
25
+ <LogoSection />
26
+ </Grid>
27
+
28
+ {/* ABOUT US LINKS */}
29
+ <Grid item lg={2} md={6} sm={6} xs={12}>
30
+ <AboutLinks />
31
+ </Grid>
32
+
33
+ {/* CUSTOMER CARE LINKS */}
34
+ <Grid item lg={3} md={6} sm={6} xs={12}>
35
+ <CustomerCareLinks />
36
+ </Grid>
37
+
38
+ {/* CONTACT & SOCIAL LINKS */}
39
+ <Grid item lg={3} md={6} sm={6} xs={12}>
40
+ {/* CONTACT INFORMATION */}
41
+ <Heading>Contact Us</Heading>
42
+
43
+ <Paragraph py={0.6} color="grey.500">
44
+ 70 Washington Square South, New York, NY 10012, United States
45
+ </Paragraph>
46
+
47
+ <Paragraph py={0.6} color="grey.500">
48
+ Email: uilib.help@gmail.com
49
+ </Paragraph>
50
+
51
+ <Paragraph py={0.6} mb={2} color="grey.500">
52
+ Phone: +1 1123 456 780
53
+ </Paragraph>
54
+
55
+ {/* SOCIAL LINKS WITH ICON */}
56
+ <SocialLinks />
57
+ </Grid>
58
+ </Grid>
59
+ </Box>
60
+ </Box>
61
+ );
62
+ }
@@ -0,0 +1,57 @@
1
+ import Link from "next/link";
2
+ import Box from "@mui/material/Box";
3
+ import Grid from "@mui/material/Grid2";
4
+ // LOCAL CUSTOM COMPONENTS
5
+ import AppStore from "./components/app-store";
6
+ import SocialLinks from "./components/social-links";
7
+ // GLOBAL CUSTOM COMPONENTS
8
+ import BazaarImage from "@/components/_components/BazaarImage";
9
+ import { Paragraph } from "@/components/_components/Typography";
10
+ // DATA
11
+ import { CUSTOMER_CARE_LINKS } from "./data/index";
12
+ // STYLED COMPONENTS
13
+ import { StyledFooter, StyledLink } from "./styles/index";
14
+
15
+ export default function Footer2() {
16
+ return (
17
+ <StyledFooter
18
+ sx={{
19
+ padding: 5,
20
+ color: "white",
21
+ borderRadius: 2,
22
+ bgcolor: "#141850",
23
+ mb: { md: 2, xs: 10 },
24
+ }}
25
+ >
26
+ <Grid container spacing={6}>
27
+ <Grid size={{ sm: 3, xs: 12 }}>
28
+ <Link href="/">
29
+ <BazaarImage mb={2.5} src="/assets/images/logo.svg" alt="logo" />
30
+ </Link>
31
+
32
+ <Paragraph mb={2.5} color="grey.500" maxWidth="370px">
33
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Auctor
34
+ libero id et, in gravida. Sit diam duis mauris nulla cursus. Erat et
35
+ lectus vel ut sollicitudin elit at amet.
36
+ </Paragraph>
37
+
38
+ <AppStore />
39
+ </Grid>
40
+
41
+ <Grid size={{ sm: 6, xs: 12 }}>
42
+ {/* CUSTOMER CARE LINKS */}
43
+ <Box mb={2} mt={{ md: 6, xs: 2 }}>
44
+ {CUSTOMER_CARE_LINKS.map((item, ind) => (
45
+ <StyledLink href="/" key={ind}>
46
+ {item}
47
+ </StyledLink>
48
+ ))}
49
+ </Box>
50
+
51
+ {/* SOCIAL LINKS WITH ICON */}
52
+ <SocialLinks />
53
+ </Grid>
54
+ </Grid>
55
+ </StyledFooter>
56
+ );
57
+ }
@@ -0,0 +1,53 @@
1
+ import Link from "next/link";
2
+ import Box from "@mui/material/Box";
3
+ import Grid from "@mui/material/Grid2";
4
+ // import { SxProps } from "@mui/material/styles"; // 'SxProps' is declared but its value is never read.
5
+ import Container from "@mui/material/Container";
6
+ // LOCAL CUSTOM COMPONENT
7
+ import AppStore from "./components/app-store";
8
+ import SocialLinks from "./components/social-links";
9
+ // GLOBAL CUSTOM COMPONENTS
10
+ import BazaarImage from "@/components/_components/BazaarImage";
11
+ import { Paragraph } from "@/components/_components/Typography";
12
+ // DATA
13
+ import { CUSTOMER_CARE_LINKS } from "./data/index";
14
+ // STYLED COMPONENTS
15
+ import { StyledRoot, StyledLink } from "./styles/index";
16
+
17
+ export default function Footer3() {
18
+ return (
19
+ <StyledRoot>
20
+ <Container>
21
+ <Grid container spacing={6}>
22
+ <Grid size={{ md: 7, xs: 12 }}>
23
+ <Link href="/">
24
+ <BazaarImage mb={2.5} src="/assets/images/logo.svg" alt="logo" />
25
+ </Link>
26
+
27
+ <Paragraph mb={2.5} color="grey.300" maxWidth="370px">
28
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Auctor
29
+ libero id et, in gravida. Sit diam duis mauris nulla cursus. Erat
30
+ et lectus vel ut sollicitudin elit at amet.
31
+ </Paragraph>
32
+
33
+ <AppStore />
34
+ </Grid>
35
+
36
+ <Grid size={{ md: 5, xs: 12 }}>
37
+ {/* CUSTOMER CARE LINKS */}
38
+ <Box mb={2} mt={{ md: 6, xs: 2 }}>
39
+ {CUSTOMER_CARE_LINKS.map((item, ind) => (
40
+ <StyledLink href="/" key={ind} sx={{ color: "grey.300" }}>
41
+ {item}
42
+ </StyledLink>
43
+ ))}
44
+ </Box>
45
+
46
+ {/* SOCIAL LINKS WITH ICON */}
47
+ <SocialLinks />
48
+ </Grid>
49
+ </Grid>
50
+ </Container>
51
+ </StyledRoot>
52
+ );
53
+ }
@@ -0,0 +1,71 @@
1
+ import Box from "@mui/material/Box";
2
+ import Grid from "@mui/material/Grid2";
3
+ import Divider from "@mui/material/Divider";
4
+ import Container from "@mui/material/Container";
5
+ // LOCAL CUSTOM COMPONENT
6
+ import AboutLinks from "./components/about-links";
7
+ import SocialLinks from "./components/social-links";
8
+ import CustomerCareLinks from "./components/customer-care-links";
9
+ // GLOBAL CUSTOM COMPONENTS
10
+ import LazyImage from "@/components/_components/LazyImage";
11
+ import { Paragraph } from "@/components/_components/Typography";
12
+ import FlexBetween from "@/components/_components/flex-box/flex-between";
13
+ // STYLED COMPONENT
14
+ import { Heading } from "./styles/index";
15
+
16
+ export default function Footer4() {
17
+ return (
18
+ <Box component="footer" bgcolor="white" pt={12}>
19
+ <Container>
20
+ <Grid container spacing={3}>
21
+ <Grid size={{ lg: 4, md: 4, sm: 6, xs: 12 }}>
22
+ <Box maxWidth={100}>
23
+ <LazyImage
24
+ src={require("../../../public/assets/images/logo2.svg")}
25
+ alt="logo"
26
+ />
27
+ </Box>
28
+
29
+ <Paragraph mb={2.5} maxWidth={{ xl: 400 }}>
30
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Auctor
31
+ libero id et, in gravida. Sit diam duis mauris nulla cursus. Erat
32
+ et lectus vel ut sollicitudin elit at amet.
33
+ </Paragraph>
34
+ </Grid>
35
+
36
+ {/* ABOUT US LINKS */}
37
+ <Grid size={{ lg: 2, md: 2, sm: 6, xs: 12 }}>
38
+ <AboutLinks isDark />
39
+ </Grid>
40
+
41
+ {/* CUSTOMER CARE LINKS */}
42
+ <Grid size={{ lg: 3, md: 3, sm: 6, xs: 12 }}>
43
+ <CustomerCareLinks isDark />
44
+ </Grid>
45
+
46
+ {/* CONTACT INFORMATION */}
47
+ <Grid size={{ lg: 3, md: 3, sm: 6, xs: 12 }}>
48
+ <Heading>Contact Us</Heading>
49
+
50
+ <Paragraph py={0.6}>
51
+ 70 Washington Square South, New York, NY 10012, United States
52
+ </Paragraph>
53
+
54
+ <Paragraph py={0.6}>Email: uilib.help@gmail.com</Paragraph>
55
+
56
+ <Paragraph py={0.6} mb={2}>
57
+ Phone: +1 1123 456 780
58
+ </Paragraph>
59
+ </Grid>
60
+ </Grid>
61
+
62
+ <Box component={Divider} mt={{ md: 8, xs: 3 }} />
63
+
64
+ <FlexBetween pt={2} pb={{ sm: 10, md: 2 }}>
65
+ <Paragraph>© 2023 By UI Lib. All rights reserved.</Paragraph>
66
+ <SocialLinks variant="dark" />
67
+ </FlexBetween>
68
+ </Container>
69
+ </Box>
70
+ );
71
+ }
@@ -0,0 +1,4 @@
1
+ export { default as Footer1 } from "./footer-1";
2
+ export { default as Footer2 } from "./footer-2";
3
+ export { default as Footer3 } from "./footer-3";
4
+ export { default as Footer4 } from "./footer-4";
@@ -0,0 +1,42 @@
1
+ "use client";
2
+
3
+ import Link from "next/link";
4
+ import styled from "@mui/material/styles/styled";
5
+ import getPaletteColor from "@/lib/get-palette-color";
6
+
7
+ // ==============================================================
8
+ type LinkProps = { isDark?: boolean };
9
+ // ==============================================================
10
+
11
+ export const StyledLink = styled(Link, {
12
+ shouldForwardProp: (prop) => prop !== "isDark",
13
+ })<LinkProps>(({ theme, isDark }) => ({
14
+ borderRadius: 4,
15
+ display: "block",
16
+ cursor: "pointer",
17
+ position: "relative",
18
+ padding: "0.3rem 0rem",
19
+ ...(!isDark && {
20
+ color: theme.palette.grey[500],
21
+ "&:hover": { color: theme.palette.grey[100] },
22
+ }),
23
+ }));
24
+
25
+ export const StyledFooter = styled("footer")(({ theme }) => ({
26
+ [theme.breakpoints.down("md")]: { marginBottom: "4rem" },
27
+ }));
28
+
29
+ export const StyledRoot = styled("footer")(({ theme }) => ({
30
+ padding: 40,
31
+ color: "white",
32
+ borderRadius: 8,
33
+ background: getPaletteColor(theme, "primary", 600),
34
+ [theme.breakpoints.down("md")]: { marginBottom: "6rem !important" },
35
+ }));
36
+
37
+ export const Heading = styled("h6")({
38
+ fontSize: 18,
39
+ lineHeight: 1,
40
+ fontWeight: 600,
41
+ marginBottom: 12,
42
+ });
@@ -0,0 +1,23 @@
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 "@/components/_components/icons/category";
6
+ // GLOBAL CUSTOM COMPONENTS
7
+ import { FlexBox } from "@/components/_components/flex-box/index";
8
+ import CategoryMenu from "@/components/_components/categories/category-menu";
9
+
10
+ export default function CategoriesMenu() {
11
+ return (
12
+ <CategoryMenu
13
+ render={(handler) => (
14
+ <FlexBox color="grey.600" alignItems="center" ml={2}>
15
+ <Button color="inherit" onClick={(e) => handler(e)}>
16
+ <Category fontSize="small" color="inherit" />
17
+ <KeyboardArrowDown fontSize="small" color="inherit" />
18
+ </Button>
19
+ </FlexBox>
20
+ )}
21
+ />
22
+ );
23
+ }
@@ -0,0 +1,72 @@
1
+ import { Fragment } 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 "@/components/_components/Typography";
8
+ import { SearchInput } from "@/components/_components/search-box/index";
9
+ import { MobileMenu } from "@/components/_components/navbar/mobile-menu/index";
10
+ import { FlexBetween, FlexBox } from "@/components/_components/flex-box/index";
11
+ import SiteLogo from "@/components/_components/site-logo";
12
+ import MiniCartClient from "../../MiniCartClient";
13
+ import User from "./user";
14
+ // ICONS
15
+ import { MdClear as Clear } from "react-icons/md";
16
+ import Search from "@/components/_components/icons/search";
17
+ // API
18
+ import { Cart } from "@/schemas/cart.schema";
19
+
20
+ import useHeader from "../hooks/use-header";
21
+
22
+ interface Props {
23
+ cart: Cart;
24
+ }
25
+
26
+ export default function MobileHeader({ cart }: Props) {
27
+ const { searchBarOpen, toggleSearchBar } = useHeader();
28
+
29
+ const t = useTranslations("Search");
30
+
31
+ return (
32
+ <Fragment>
33
+ <FlexBetween width="100%">
34
+ {/* Left content - navigation icon */}
35
+ <Box flex={1}>
36
+ <MobileMenu />
37
+ </Box>
38
+
39
+ {/* Middle content - logo */}
40
+ <SiteLogo height="2.125rem" />
41
+
42
+ {/* Right content - search, account, cart icons */}
43
+ <FlexBox justifyContent="end" flex={1}>
44
+ <IconButton onClick={toggleSearchBar}>
45
+ <Search style={{ fontSize: "1.25rem" }} />
46
+ </IconButton>
47
+ <User mobile={true} />
48
+ {cart && <MiniCartClient cart={cart} mobile={true} />}
49
+ </FlexBox>
50
+ </FlexBetween>
51
+
52
+ {/* Search form drawer */}
53
+ <Drawer
54
+ open={searchBarOpen}
55
+ anchor="top"
56
+ onClose={toggleSearchBar}
57
+ sx={{ zIndex: 9999 }}
58
+ >
59
+ <Box width="auto" padding={2} height="100vh">
60
+ <FlexBetween mb={1}>
61
+ <Paragraph>{t("searchHeading")}</Paragraph>
62
+ <IconButton onClick={toggleSearchBar}>
63
+ <Clear />
64
+ </IconButton>
65
+ </FlexBetween>
66
+
67
+ <SearchInput handleCloseDrawer={toggleSearchBar} />
68
+ </Box>
69
+ </Drawer>
70
+ </Fragment>
71
+ );
72
+ }