@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.
- package/.storybook/main.ts +1 -1
- package/.storybook/preview.tsx +5 -4
- package/__mocks__/countries.ts +1 -1
- package/__mocks__/create-query.ts +3 -2
- package/__mocks__/get-product-by-id.ts +0 -1
- package/__mocks__/query-client.ts +1 -1
- package/package.json +10 -2
- package/src/api-manager/datasources/d365/d365-address.datasource.ts +15 -13
- package/src/api-manager/datasources/d365/d365-base.datasource.ts +1 -1
- package/src/api-manager/datasources/d365/d365-cart.datasource.ts +41 -42
- package/src/api-manager/datasources/d365/d365-categories.datasource.ts +4 -4
- package/src/api-manager/datasources/d365/d365-order.datasource.ts +10 -9
- package/src/api-manager/datasources/d365/d365-organization.datasource.ts +10 -10
- package/src/api-manager/datasources/d365/d365-product.datasource.ts +49 -36
- package/src/api-manager/datasources/d365/d365-session.datasource.ts +7 -9
- package/src/api-manager/datasources/d365/d365-user.datasource.ts +34 -43
- package/src/api-manager/datasources/d365/d365.datasource.ts +15 -17
- package/src/api-manager/datasources/d365/index.ts +2 -4
- package/src/api-manager/datasources/d365/test-context.ts +1 -1
- package/src/api-manager/datasources/d365/utils/create-search-criteria.ts +1 -1
- package/src/api-manager/datasources/d365/utils/decode-jwt.ts +1 -2
- package/src/api-manager/datasources/d365/utils/get-context-cookie.ts +3 -3
- package/src/api-manager/datasources/d365/utils/parse-object.ts +1 -1
- package/src/api-manager/datasources/d365/utils/product-images-utils.ts +29 -10
- package/src/api-manager/datasources/d365/utils/product-inventory-utils.ts +1 -1
- package/src/api-manager/datasources/e4/address/e4-address.datasource.ts +5 -5
- package/src/api-manager/datasources/e4/address/e4-address.remaps.ts +4 -4
- package/src/api-manager/datasources/e4/address/e4-address.translator.ts +9 -9
- package/src/api-manager/datasources/e4/cart/e4-cart.datasource.ts +37 -37
- package/src/api-manager/datasources/e4/cart/e4-cart.remaps.ts +10 -9
- package/src/api-manager/datasources/e4/cart/e4-cart.translator.ts +4 -4
- package/src/api-manager/datasources/e4/categories/e4-categories.datasource.ts +4 -4
- package/src/api-manager/datasources/e4/categories/e4-categories.translator.ts +24 -24
- package/src/api-manager/datasources/e4/e4.datasource.ts +7 -7
- package/src/api-manager/datasources/e4/graphqlRequestSdk.ts +8103 -41393
- package/src/api-manager/datasources/e4/order/e4-order.datasource.ts +7 -7
- package/src/api-manager/datasources/e4/order/e4-order.remaps.ts +8 -7
- package/src/api-manager/datasources/e4/organization/e4-organization.datasource.ts +4 -9
- package/src/api-manager/datasources/e4/product/e4-product.datasource.ts +12 -11
- package/src/api-manager/datasources/e4/product/e4-product.remaps.ts +4 -4
- package/src/api-manager/datasources/e4/product/e4-product.translator.ts +27 -43
- package/src/api-manager/datasources/e4/session/e4-session.datasource.ts +3 -5
- package/src/api-manager/datasources/e4/session/e4-session.translator.ts +2 -2
- package/src/api-manager/datasources/e4/user/e4-user.datasource.ts +10 -10
- package/src/api-manager/datasources/e4/user/e4-user.remaps.ts +6 -8
- package/src/api-manager/datasources/e4/user/e4-user.translator.ts +6 -4
- package/src/api-manager/datasources/e4/utils/unwrap-e4-variants.ts +6 -6
- package/src/api-manager/index.ts +8 -8
- package/src/api-manager/lib/category-helpers.ts +4 -3
- package/src/api-manager/lib/get-dynamics-context.ts +1 -1
- package/src/api-manager/lib/get-graphql-client.ts +4 -6
- package/src/api-manager/schemas/address.schema.ts +1 -1
- package/src/api-manager/schemas/cart.schema.ts +1 -1
- package/src/api-manager/schemas/d365.schema.ts +207 -206
- package/src/api-manager/schemas/order.schema.ts +1 -1
- package/src/api-manager/schemas/organization.schema.ts +1 -1
- package/src/api-manager/schemas/product.schema.ts +4 -4
- package/src/api-manager/schemas/session.schema.ts +1 -1
- package/src/api-manager/schemas/user.schema.ts +1 -1
- package/src/api-manager/services/address/mutations/create-address.ts +3 -3
- package/src/api-manager/services/address/mutations/delete-address.ts +2 -2
- package/src/api-manager/services/address/mutations/get-delivery-options.ts +4 -4
- package/src/api-manager/services/address/mutations/update-address.ts +3 -3
- package/src/api-manager/services/address/queries/get-countries.ts +6 -4
- package/src/api-manager/services/address/queries/get-states.ts +3 -3
- package/src/api-manager/services/cart/mutations/add-discount-code.ts +6 -6
- package/src/api-manager/services/cart/mutations/add-to-cart.ts +6 -6
- package/src/api-manager/services/cart/mutations/checkout.ts +2 -2
- package/src/api-manager/services/cart/mutations/delete-cart-line.ts +2 -2
- package/src/api-manager/services/cart/mutations/get-payment-accept-result.ts +4 -4
- package/src/api-manager/services/cart/mutations/remove-cart-line-delivery-mode.ts +3 -3
- package/src/api-manager/services/cart/mutations/remove-discount-code.ts +2 -2
- package/src/api-manager/services/cart/mutations/update-cart-line-delivery-mode.ts +2 -2
- package/src/api-manager/services/cart/mutations/update-cart-lines.ts +3 -3
- package/src/api-manager/services/cart/mutations/update-cart.ts +2 -2
- package/src/api-manager/services/cart/queries/get-cart-lines-inventory.ts +2 -2
- package/src/api-manager/services/cart/queries/get-cart.ts +5 -3
- package/src/api-manager/services/cart/queries/get-payment-accept-point.ts +3 -3
- package/src/api-manager/services/categories/queries/get-categories.ts +1 -1
- package/src/api-manager/services/create-extension-query.ts +1 -1
- package/src/api-manager/services/create-mutation.ts +2 -2
- package/src/api-manager/services/create-query.ts +6 -6
- package/src/api-manager/services/get-query-client.ts +2 -2
- package/src/api-manager/services/order/queries/get-order-details.ts +2 -2
- package/src/api-manager/services/order/queries/get-orders.ts +1 -1
- package/src/api-manager/services/organization/queries/get-channel-configuration.ts +1 -1
- package/src/api-manager/services/organization/queries/get-stores.ts +1 -1
- package/src/api-manager/services/product/mutations/search-products.ts +3 -4
- package/src/api-manager/services/product/queries/get-product-availability.ts +2 -2
- package/src/api-manager/services/product/queries/get-product-by-id.ts +1 -1
- package/src/api-manager/services/product/queries/get-product-by-ids.ts +2 -2
- package/src/api-manager/services/product/queries/get-product-list.ts +1 -1
- package/src/api-manager/services/product/queries/get-product-prices.ts +2 -2
- package/src/api-manager/services/product/queries/get-related-products.ts +2 -2
- package/src/api-manager/services/product/queries/search-products.ts +2 -2
- package/src/api-manager/services/product/server/product.server.ts +4 -4
- package/src/api-manager/services/session/mutations/session-init.ts +2 -2
- package/src/api-manager/services/session/mutations/session-logout.ts +1 -1
- package/src/api-manager/services/session/queries/get-session.ts +1 -1
- package/src/api-manager/services/user/mutations/add-to-wishlist.ts +3 -3
- package/src/api-manager/services/user/mutations/copy-cart-to-wishlist.ts +3 -3
- package/src/api-manager/services/user/mutations/create-wishlist.ts +4 -4
- package/src/api-manager/services/user/mutations/delete-wishlist.ts +3 -3
- package/src/api-manager/services/user/mutations/remove-from-wishlist.ts +3 -3
- package/src/api-manager/services/user/mutations/update-user.ts +2 -2
- package/src/api-manager/services/user/mutations/update-wishlist.ts +2 -2
- package/src/api-manager/services/user/queries/get-user-counts.ts +1 -1
- package/src/api-manager/services/user/queries/get-user.ts +1 -1
- package/src/api-manager/services/user/queries/get-wishlist-details.ts +1 -1
- package/src/api-manager/services/user/queries/get-wishlists.ts +1 -1
- package/src/api-manager/types/Datasource.ts +23 -28
- package/src/auth/auth-options.test.ts +6 -63
- package/src/auth/auth-options.ts +6 -7
- package/src/auth/msal.ts +4 -1
- package/src/auth/next-auth-cookie-manager.ts +7 -8
- package/src/auth/refresh-token.ts +5 -7
- package/src/auth/signout.ts +1 -1
- package/src/cms/blocks/block-manager.tsx +13 -13
- package/src/cms/blocks/components/brand-logos-scroller.tsx +4 -4
- package/src/cms/blocks/components/category-card.tsx +3 -3
- package/src/cms/blocks/components/category-carousel/index.tsx +8 -10
- package/src/cms/blocks/components/feature-pill.tsx +5 -4
- package/src/cms/blocks/components/featured-categories.tsx +5 -2
- package/src/cms/blocks/components/featured-products.tsx +2 -2
- package/src/cms/blocks/components/footer/data/index.ts +6 -3
- package/src/cms/blocks/components/footer/index.tsx +9 -13
- package/src/cms/blocks/components/footer/sections/footer-app-store.tsx +2 -2
- package/src/cms/blocks/components/footer/sections/footer-contact.tsx +3 -3
- package/src/cms/blocks/components/footer/sections/footer-links.tsx +5 -5
- package/src/cms/blocks/components/footer/sections/footer-logo.tsx +4 -4
- package/src/cms/blocks/components/footer/sections/footer-social-links.tsx +19 -11
- package/src/cms/blocks/components/footer/styles/index.ts +1 -1
- package/src/cms/blocks/components/footer.tsx +4 -4
- package/src/cms/blocks/components/hero-carousel/index.tsx +32 -29
- package/src/cms/blocks/components/hero.tsx +4 -5
- package/src/cms/blocks/components/image.tsx +4 -5
- package/src/cms/blocks/components/media-card.tsx +3 -3
- package/src/cms/blocks/components/product-carousel/index.tsx +8 -9
- package/src/cms/blocks/components/product-section-fullwidth/index.tsx +18 -22
- package/src/cms/blocks/components/rich-text.tsx +2 -2
- package/src/cms/blocks/components/seo/index.tsx +7 -3
- package/src/cms/blocks/components/services/index.tsx +5 -5
- package/src/cms/blocks/components/services/service-card.tsx +8 -10
- package/src/cms/blocks/components/shared/featured-product-card.tsx +6 -3
- package/src/cms/blocks/components/shared/product-category-item.tsx +5 -6
- package/src/cms/blocks/components/shared/product-grid.tsx +9 -5
- package/src/cms/blocks/components/shared/top-categories-card.tsx +10 -7
- package/src/cms/blocks/components/shared/top-rating-product-card.tsx +4 -4
- package/src/cms/blocks/icons/components/category.tsx +3 -3
- package/src/cms/blocks/icons/components/dotted-star.tsx +1 -1
- package/src/cms/blocks/icons/components/fallback-icon.tsx +1 -1
- package/src/cms/blocks/icons/components/gift-box.tsx +1 -1
- package/src/cms/blocks/icons/components/light.tsx +1 -1
- package/src/cms/blocks/icons/components/new-arrival.tsx +1 -1
- package/src/cms/blocks/icons/components/rank-badge.tsx +1 -1
- package/src/cms/blocks/icons/index.ts +3 -3
- package/src/cms/blocks/index.tsx +6 -6
- package/src/cms/blog.ts +2 -2
- package/src/cms/endpoints.ts +1 -1
- package/src/components-v2/BazaarCard.stories.tsx +1 -1
- package/src/components-v2/BazaarCard.tsx +1 -1
- package/src/components-v2/BazaarImage.tsx +2 -2
- package/src/components-v2/BazaarMenu.stories.tsx +1 -1
- package/src/components-v2/BazaarMenu.tsx +4 -4
- package/src/components-v2/BazaarSwitch.tsx +1 -1
- package/src/components-v2/BazaarTextField.tsx +5 -5
- package/src/components-v2/BorderShadowCard.stories.tsx +2 -2
- package/src/components-v2/CountryInput.stories.tsx +2 -2
- package/src/components-v2/DropZone.stories.tsx +1 -1
- package/src/components-v2/DropZone.tsx +8 -9
- package/src/components-v2/HoverBox.stories.tsx +1 -1
- package/src/components-v2/ImageWithFallback.tsx +3 -2
- package/src/components-v2/LazyImage.tsx +10 -2
- package/src/components-v2/Loading.tsx +1 -2
- package/src/components-v2/SearchInput.stories.tsx +1 -1
- package/src/components-v2/SearchInput.tsx +2 -2
- package/src/components-v2/SnackbarProvider.tsx +1 -1
- package/src/components-v2/T/index.tsx +1 -1
- package/src/components-v2/Typography.stories.tsx +2 -2
- package/src/components-v2/Typography.tsx +13 -13
- package/src/components-v2/WhiteButton.tsx +2 -2
- package/src/components-v2/accordion/accordion-header.tsx +6 -6
- package/src/components-v2/carousel/Carousel.stories.tsx +1 -1
- package/src/components-v2/carousel/carousel.tsx +4 -4
- package/src/components-v2/carousel/components/carousel-arrows.tsx +4 -4
- package/src/components-v2/carousel/components/carousel-dots.tsx +2 -2
- package/src/components-v2/carousel-cards/carousel-card-1/carousel-card-1.tsx +4 -4
- package/src/components-v2/categories/Categories.stories.tsx +6 -5
- package/src/components-v2/categories/category-list/category-list.tsx +4 -5
- package/src/components-v2/categories/category-list/styles.ts +2 -9
- package/src/components-v2/categories/category-list-item/category-menu-item.tsx +6 -6
- package/src/components-v2/categories/category-menu.tsx +18 -15
- package/src/components-v2/categories/mega-menu/banner.tsx +4 -4
- package/src/components-v2/categories/mega-menu/column-list.tsx +6 -6
- package/src/components-v2/categories/mega-menu/mega-menu-1.tsx +8 -8
- package/src/components-v2/categories/mega-menu/mega-menu-2.tsx +5 -4
- package/src/components-v2/categories/types.ts +1 -1
- package/src/components-v2/countries-input.tsx +2 -2
- package/src/components-v2/flex-box/Flex.stories.tsx +1 -1
- package/src/components-v2/flex-box/flex-between.tsx +1 -1
- package/src/components-v2/flex-box/flex-box.tsx +1 -1
- package/src/components-v2/flex-box/flex-row-center.tsx +1 -1
- package/src/components-v2/flex-box/index.ts +1 -1
- package/src/components-v2/header/__tests__/user.test.tsx +3 -3
- package/src/components-v2/header/components/categories-menu.tsx +6 -6
- package/src/components-v2/header/components/mobile-header.tsx +17 -18
- package/src/components-v2/header/components/user.tsx +29 -28
- package/src/components-v2/header/header.tsx +9 -10
- package/src/components-v2/header/sticky-header.tsx +3 -3
- package/src/components-v2/header/styles/index.ts +3 -2
- package/src/components-v2/mini-cart/__tests__/cart-item.test.tsx +18 -18
- package/src/components-v2/mini-cart/__tests__/mini-cart.test.tsx +7 -7
- package/src/components-v2/mini-cart/components/bottom-actions.tsx +4 -3
- package/src/components-v2/mini-cart/components/cart-item.tsx +16 -15
- package/src/components-v2/mini-cart/components/empty-view.tsx +2 -1
- package/src/components-v2/mini-cart/components/top-header.tsx +8 -7
- package/src/components-v2/mini-cart/mini-cart-trigger.tsx +4 -4
- package/src/components-v2/mini-cart/mini-cart.tsx +11 -12
- package/src/components-v2/mobile-navigation/MobileNavigationBar.stories.tsx +2 -2
- package/src/components-v2/mobile-navigation/mobile-navigation-bar.tsx +15 -15
- package/src/components-v2/mobile-navigation/styles/index.ts +2 -2
- package/src/components-v2/nav-link/nav-link-2.tsx +2 -2
- package/src/components-v2/nav-link/nav-link-3.tsx +4 -4
- package/src/components-v2/nav-link/nav-link.tsx +4 -4
- package/src/components-v2/navbar/categories.tsx +8 -6
- package/src/components-v2/navbar/category-based-menu/category-based-menu.tsx +17 -16
- package/src/components-v2/navbar/category-based-menu/styles.ts +3 -3
- package/src/components-v2/navbar/category-based-menu/types.ts +1 -1
- package/src/components-v2/navbar/mega-menu/mega-menu.tsx +11 -10
- package/src/components-v2/navbar/mega-menu/styles.ts +2 -2
- package/src/components-v2/navbar/mobile-menu/mobile-menu.test.tsx +3 -3
- package/src/components-v2/navbar/mobile-menu/mobile-menu.tsx +21 -13
- package/src/components-v2/navbar/nav-list/cms-nav.test.tsx +4 -4
- package/src/components-v2/navbar/nav-list/nav-item-child.tsx +13 -14
- package/src/components-v2/navbar/nav-list/nav-list.tsx +128 -90
- package/src/components-v2/navbar/navbar.tsx +4 -5
- package/src/components-v2/navbar/styles.ts +4 -4
- package/src/components-v2/navbar/utils/transform-nav.test.ts +3 -3
- package/src/components-v2/navbar/utils/transform-nav.ts +3 -3
- package/src/components-v2/no-records.tsx +3 -3
- package/src/components-v2/product-cards/discount-chip.tsx +1 -1
- package/src/components-v2/product-cards/favorite-button.tsx +3 -3
- package/src/components-v2/product-cards/product-card/ProductCard.stories.tsx +2 -2
- package/src/components-v2/product-cards/product-card/product-card.tsx +43 -45
- package/src/components-v2/product-cards/product-card/styles/index.ts +2 -2
- package/src/components-v2/product-cards/product-card-plp/ProductCardPlp.stories.tsx +2 -2
- package/src/components-v2/product-cards/product-card-plp/product-card.tsx +25 -24
- package/src/components-v2/product-cards/product-card-plp-list/ProductCardPlpList.stories.tsx +1 -1
- package/src/components-v2/product-cards/product-card-plp-list/components/tags.tsx +1 -1
- package/src/components-v2/product-cards/product-card-plp-list/product-card.tsx +22 -19
- package/src/components-v2/product-cards/product-card-search/ProductCardSearch.stories.tsx +2 -2
- package/src/components-v2/product-cards/product-card-search/product-card.tsx +20 -18
- package/src/components-v2/product-cards/product-price.tsx +2 -2
- package/src/components-v2/product-cards/product-rating.tsx +4 -4
- package/src/components-v2/product-cards/product-title.tsx +2 -2
- package/src/components-v2/product-cards/quantity-buttons.tsx +6 -6
- package/src/components-v2/product-dialog/ProductDialog.stories.tsx +2 -2
- package/src/components-v2/product-dialog/compound/product-dialog.tsx +16 -16
- package/src/components-v2/product-dialog/index.tsx +1 -1
- package/src/components-v2/product-dimensions/Dimensions.stories.tsx +3 -2
- package/src/components-v2/product-dimensions/compound/dimensions-group-error.tsx +3 -3
- package/src/components-v2/product-dimensions/compound/dimensions-group-label.tsx +1 -1
- package/src/components-v2/product-dimensions/compound/dimensions-group-list-chip.tsx +5 -4
- package/src/components-v2/product-dimensions/compound/dimensions-group-list.tsx +7 -2
- package/src/components-v2/product-dimensions/compound/dimensions-group.tsx +3 -4
- package/src/components-v2/product-dimensions/compound/dimensions.tsx +6 -2
- package/src/components-v2/product-dimensions/index.tsx +4 -4
- package/src/components-v2/product-dimensions/utils/has-selected-dimension.ts +1 -1
- package/src/components-v2/product-quantity-buttons/ProductQuantity.stories.tsx +2 -1
- package/src/components-v2/product-quantity-buttons/compound/quantity-buttons-root.tsx +8 -8
- package/src/components-v2/product-quantity-buttons/index.tsx +5 -2
- package/src/components-v2/product-quantity-variants/ProductQuantity.stories.tsx +3 -2
- package/src/components-v2/product-quantity-variants/index.tsx +14 -15
- package/src/components-v2/products-view/ProductsGrid.stories.tsx +3 -2
- package/src/components-v2/products-view/ProductsList.stories.tsx +3 -4
- package/src/components-v2/products-view/compound/context.ts +4 -3
- package/src/components-v2/products-view/compound/products-grid-view.tsx +9 -8
- package/src/components-v2/products-view/compound/products-list-view.tsx +9 -8
- package/src/components-v2/products-view/compound/types.ts +2 -2
- package/src/components-v2/products-view/index.tsx +5 -5
- package/src/components-v2/progress/ProgressBar.stories.tsx +2 -2
- package/src/components-v2/progress/progress.tsx +4 -4
- package/src/components-v2/scrollbar/Scrollbar.stories.tsx +2 -1
- package/src/components-v2/scrollbar/scrollbar.tsx +4 -4
- package/src/components-v2/search-bar/SearchBarLarge.stories.tsx +2 -1
- package/src/components-v2/search-bar/compound/context.ts +2 -3
- package/src/components-v2/search-bar/compound/results-item-lg.tsx +3 -2
- package/src/components-v2/search-bar/compound/results-item-sm.tsx +10 -9
- package/src/components-v2/search-bar/compound/results-suspense.tsx +5 -6
- package/src/components-v2/search-bar/compound/results.tsx +11 -7
- package/src/components-v2/search-bar/compound/search-bar-root.tsx +10 -10
- package/src/components-v2/search-bar/compound/textfield-adornment-category.tsx +32 -33
- package/src/components-v2/search-bar/compound/textfield-adornment-search-icon.tsx +3 -2
- package/src/components-v2/search-bar/compound/textfield.tsx +5 -8
- package/src/components-v2/search-bar/hooks/use-search.ts +2 -3
- package/src/components-v2/search-bar/styles/index.ts +2 -2
- package/src/components-v2/search-bar/utils/findCategoryNameById.ts +1 -1
- package/src/components-v2/section/Section.stories.tsx +4 -4
- package/src/components-v2/section/compound/section-header.tsx +7 -7
- package/src/components-v2/section/compound/section.tsx +4 -3
- package/src/components-v2/side-nav/SideNav.stories.tsx +4 -4
- package/src/components-v2/side-nav/side-nav.tsx +3 -3
- package/src/components-v2/wishlist-dialogs/__tests__/create-new-list.test.tsx +5 -7
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/AddToWishlist.stories.tsx +2 -2
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/add-to-wishlist-button.tsx +2 -2
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-bottom-ui.tsx +3 -3
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-dialog.tsx +8 -9
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/add-to-wishlist-list.tsx +6 -7
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/context.ts +2 -1
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-header.tsx +8 -10
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/compound/wishlist-dialog-item.tsx +6 -6
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/hooks/use-add-to-wishlist.ts +6 -6
- package/src/components-v2/wishlist-dialogs/add-to-wishlist/index.tsx +11 -13
- package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-bottom-ui.tsx +3 -3
- package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-dialog.tsx +11 -9
- package/src/components-v2/wishlist-dialogs/create-wishlist/compound/create-wishlist-form.tsx +6 -4
- package/src/components-v2/wishlist-dialogs/create-wishlist/create-wishlist-button.tsx +2 -2
- package/src/components-v2/wishlist-dialogs/styles.ts +4 -4
- package/src/hooks/use-cart.ts +1 -1
- package/src/hooks/use-nextauth-session.ts +65 -0
- package/src/hooks/use-overflow-detect.ts +1 -1
- package/src/hooks/use-settings.ts +1 -1
- package/src/hooks/use-variants.ts +29 -31
- package/src/lib/build-detail-url.ts +1 -1
- package/src/lib/build-product-detail-url.ts +1 -1
- package/src/lib/cart-cookie-handler.ts +1 -1
- package/src/lib/category-helpers.ts +4 -4
- package/src/lib/create-graphql-client.ts +1 -2
- package/src/lib/get-palette-color.ts +36 -16
- package/src/lib/graphqlRequestSdk.ts +2 -3
- package/src/lib/hexToLuma.ts +4 -4
- package/src/lib/product-list-types.ts +1 -1
- package/src/lib/refiner-utils.ts +1 -1
- package/src/lib/store-hours-helper.ts +6 -6
- package/src/pages-v2/account/account-navigation.tsx +13 -13
- package/src/pages-v2/account/addresses/address-form.tsx +26 -23
- package/src/pages-v2/account/addresses/address-item.tsx +14 -15
- package/src/pages-v2/account/dashboard-header.tsx +9 -9
- package/src/pages-v2/account/orders/order-progress.tsx +14 -14
- package/src/pages-v2/account/orders/order-row.tsx +11 -10
- package/src/pages-v2/account/orders/order-summary.tsx +7 -6
- package/src/pages-v2/account/orders/ordered-products.tsx +19 -18
- package/src/pages-v2/account/profile/profile-button.test.tsx +3 -3
- package/src/pages-v2/account/profile/profile-button.tsx +5 -4
- package/src/pages-v2/account/profile/user-info.tsx +8 -10
- package/src/pages-v2/account/styles.ts +1 -1
- package/src/pages-v2/account/wishlist/create-new-list.tsx +11 -9
- package/src/pages-v2/account/wishlist/create-wishlist-button.tsx +2 -2
- package/src/pages-v2/account/wishlist/wishlist-item.tsx +15 -14
- package/src/pages-v2/blog/blog-card.tsx +58 -0
- package/src/pages-v2/blog/pagination.tsx +1 -2
- package/src/pages-v2/cart/__tests__/cart-item.test.tsx +8 -10
- package/src/pages-v2/cart/__tests__/checkout-form.test.tsx +8 -16
- package/src/pages-v2/cart/__tests__/countries.json +19407 -0
- package/src/pages-v2/cart/__tests__/estimate-shipping.test.tsx +11 -11
- package/src/pages-v2/cart/cart-item.tsx +110 -100
- package/src/pages-v2/cart/checkout-form.tsx +20 -22
- package/src/pages-v2/cart/coupon-entry.tsx +12 -10
- package/src/pages-v2/cart/estimate-shipping.tsx +11 -10
- package/src/pages-v2/checkout/checkout-alt-form/checkout-form.tsx +19 -18
- package/src/pages-v2/checkout/checkout-alt-form/checkout-step.tsx +7 -7
- package/src/pages-v2/checkout/checkout-alt-form/step-heading.tsx +4 -4
- package/src/pages-v2/checkout/checkout-alt-form/steps/address/address-card.tsx +4 -4
- package/src/pages-v2/checkout/checkout-alt-form/steps/address/delivery-address.tsx +33 -31
- package/src/pages-v2/checkout/checkout-alt-form/steps/address/new-address-form.tsx +19 -21
- package/src/pages-v2/checkout/checkout-alt-form/steps/address/styles.ts +1 -1
- package/src/pages-v2/checkout/checkout-alt-form/steps/customer-info/customer-information.tsx +16 -17
- package/src/pages-v2/checkout/checkout-alt-form/steps/payment/payment-details.tsx +25 -28
- package/src/pages-v2/checkout/checkout-alt-form/steps/payment/safe-card-preview-data.tsx +2 -2
- package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-date.tsx +5 -5
- package/src/pages-v2/checkout/checkout-alt-form/steps/shipping/delivery-options.tsx +33 -34
- package/src/pages-v2/checkout/checkout-alt-summary/cart-item.tsx +2 -2
- package/src/pages-v2/checkout/checkout-alt-summary/checkout-alt-summary.tsx +9 -9
- package/src/pages-v2/checkout/checkout-alt-summary/list-item.tsx +2 -2
- package/src/pages-v2/confirmation/address.tsx +4 -4
- package/src/pages-v2/confirmation/confirmation-summary.tsx +11 -10
- package/src/pages-v2/confirmation/ordered-products.tsx +12 -11
- package/src/pages-v2/product-details/available-shops.tsx +6 -6
- package/src/pages-v2/product-details/bopis/find-in-store-button.tsx +3 -3
- package/src/pages-v2/product-details/bopis/find-in-store-modal.tsx +16 -17
- package/src/pages-v2/product-details/bopis/pickup-option-select.tsx +5 -5
- package/src/pages-v2/product-details/bopis/search-header.tsx +3 -2
- package/src/pages-v2/product-details/bopis/store-card/shop-card.tsx +15 -16
- package/src/pages-v2/product-details/bopis/store-card/utils/getDaysResources.ts +1 -1
- package/src/pages-v2/product-details/checkbox-label.tsx +3 -3
- package/src/pages-v2/product-details/currency.ts +1 -0
- package/src/pages-v2/product-details/frequently-bought.tsx +12 -12
- package/src/pages-v2/product-details/frequently-product-card.tsx +5 -5
- package/src/pages-v2/product-details/product-comment.tsx +4 -4
- package/src/pages-v2/product-details/product-description.tsx +3 -3
- package/src/pages-v2/product-details/product-filter-card.tsx +17 -14
- package/src/pages-v2/product-details/product-intro/compound/context.ts +10 -5
- package/src/pages-v2/product-details/product-intro/compound/product-info.tsx +19 -19
- package/src/pages-v2/product-details/product-intro/compound/product-intro-images.tsx +39 -33
- package/src/pages-v2/product-details/product-intro/compound/product-intro.tsx +7 -7
- package/src/pages-v2/product-details/product-intro/compound/thumbnail-with-skeleton.tsx +2 -2
- package/src/pages-v2/product-details/product-intro/utils.ts +3 -5
- package/src/pages-v2/product-details/product-review.tsx +9 -9
- package/src/pages-v2/product-details/product-tabs.tsx +11 -8
- package/src/pages-v2/product-details/related-products.tsx +12 -9
- package/src/pages-v2/product-list/breadcrumbs.tsx +3 -3
- package/src/pages-v2/product-list/checkbox-label.tsx +3 -3
- package/src/pages-v2/product-list/facet-group.tsx +8 -8
- package/src/pages-v2/product-list/facet.tsx +4 -3
- package/src/pages-v2/product-list/list-filter.tsx +6 -6
- package/src/pages-v2/product-list/pagination.tsx +2 -2
- package/src/pages-v2/product-list/product-list-context.tsx +22 -18
- package/src/pages-v2/product-list/product-list-state.ts +14 -14
- package/src/pages-v2/product-list/product-list-view.tsx +18 -17
- package/src/pages-v2/product-list/product-rating.tsx +6 -3
- package/src/pages-v2/product-list/quick-view-dialog-content.tsx +21 -23
- package/src/pages-v2/product-list/quick-view-dialog.tsx +7 -3
- package/src/pages-v2/product-list/range-filter.tsx +5 -6
- package/src/pages-v2/product-list/scrollbar.tsx +4 -4
- package/src/pages-v2/product-list/search-bar.tsx +12 -12
- package/src/pages-v2/product-list/selected-facets.tsx +4 -4
- package/src/pages-v2/product-list/side-nav.tsx +2 -2
- package/src/pages-v2/product-list/swatch.tsx +15 -11
- package/src/pages-v2/product-list/utils/generate-breadcrumbs.ts +1 -1
- package/src/pages-v2/product-list/utils/getCategoryFilterFromSlug.ts +33 -68
- package/src/pages-v2/product-list/utils/product-list-helper.ts +5 -5
- package/src/pages-v2/product-list/utils/product-list-types.ts +1 -1
- package/src/pages-v2/product-list/utils/search-for-category.ts +4 -4
- package/src/pages-v2/product-list/utils/sort-options.ts +1 -1
- package/src/pages-v2/quickorder/order-upload.tsx +92 -78
- package/src/pages-v2/quickorder/provider.tsx +13 -10
- package/src/pages-v2/quickorder/quick-order-header.tsx +1 -1
- package/src/pages-v2/quickorder/quick-order-row.tsx +9 -8
- package/src/pages-v2/quickorder/quick-order-table.tsx +3 -3
- package/src/pages-v2/quickorder/quick-order.tsx +48 -43
- package/src/providers/nav-provider/index.tsx +3 -3
- package/src/providers/nav-provider/utils/createLink.ts +1 -1
- package/src/providers/notifications/notification-context.tsx +3 -4
- package/src/providers/notifications/use-notification.ts +1 -1
- package/tsconfig.json +1 -1
- package/src/components-v2/sticky/Sticky.stories.tsx +0 -88
- package/src/components-v2/sticky/index.ts +0 -1
- package/src/components-v2/sticky/sticky.tsx +0 -62
- package/src/components-v2/sticky/styles.ts +0 -38
- package/src/components-v2/utils/constants.ts +0 -8
- package/src/theme/build-mui-theme.ts +0 -104
- package/src/theme/components.ts +0 -163
- package/src/theme/emotion-cache.tsx +0 -101
- package/src/theme/theme-colors.ts +0 -205
- package/src/theme/theme-options-sample.ts +0 -69
- package/src/theme/theme-options.ts +0 -172
- package/src/theme/theme-provider.tsx +0 -44
- package/src/theme/typography.ts +0 -22
- package/src/theme/utils.ts +0 -17
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { Fragment, ReactNode, useState } from "react";
|
|
4
3
|
import Menu from "@mui/material/Menu";
|
|
5
|
-
import { SxProps, Theme } from "@mui/material/styles";
|
|
4
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
5
|
+
import { Fragment, type ReactNode, useState } from "react";
|
|
6
6
|
|
|
7
7
|
// ===============================================================
|
|
8
8
|
interface Props {
|
|
@@ -21,7 +21,7 @@ export default function BazaarMenu({
|
|
|
21
21
|
direction = "left",
|
|
22
22
|
sx,
|
|
23
23
|
...props
|
|
24
|
-
}: Props) {
|
|
24
|
+
}: Readonly<Props>) {
|
|
25
25
|
const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);
|
|
26
26
|
|
|
27
27
|
const handleClose = () => setAnchorEl(null);
|
|
@@ -36,7 +36,7 @@ export default function BazaarMenu({
|
|
|
36
36
|
elevation={0}
|
|
37
37
|
anchorEl={anchorEl}
|
|
38
38
|
onClose={handleClose}
|
|
39
|
-
open={open
|
|
39
|
+
open={open ?? Boolean(anchorEl)}
|
|
40
40
|
anchorOrigin={{ vertical: "bottom", horizontal: direction }}
|
|
41
41
|
transformOrigin={{ vertical: "top", horizontal: direction }}
|
|
42
42
|
sx={sx}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Box, { BoxProps } from "@mui/material/Box";
|
|
2
|
-
import TextField, { TextFieldProps } from "@mui/material/TextField";
|
|
3
1
|
// CUSTOM COMPONENT
|
|
4
2
|
import { H6 } from "@evenicanpm/storefront-core/src/components-v2/Typography";
|
|
3
|
+
import Box, { type BoxProps } from "@mui/material/Box";
|
|
4
|
+
import TextField, { type TextFieldProps } from "@mui/material/TextField";
|
|
5
5
|
|
|
6
6
|
// ==============================================================
|
|
7
7
|
type Props = TextFieldProps & BoxProps;
|
|
@@ -17,7 +17,7 @@ export default function BazaarTextField({
|
|
|
17
17
|
|
|
18
18
|
// Splits props into Box and TextField props. Bracket notation allows dynamic names like "mt" or "mb".
|
|
19
19
|
for (const key in props) {
|
|
20
|
-
if (SPACE_PROPS_LIST.
|
|
20
|
+
if (SPACE_PROPS_LIST.has(key)) {
|
|
21
21
|
(boxProps as any)[key] = (props as any)[key];
|
|
22
22
|
} else {
|
|
23
23
|
(textFieldProps as any)[key] = (props as any)[key];
|
|
@@ -45,7 +45,7 @@ export default function BazaarTextField({
|
|
|
45
45
|
);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const SPACE_PROPS_LIST = [
|
|
48
|
+
const SPACE_PROPS_LIST = new Set([
|
|
49
49
|
"m",
|
|
50
50
|
"mt",
|
|
51
51
|
"mr",
|
|
@@ -74,4 +74,4 @@ const SPACE_PROPS_LIST = [
|
|
|
74
74
|
"paddingLeft",
|
|
75
75
|
"paddingX",
|
|
76
76
|
"paddingY",
|
|
77
|
-
];
|
|
77
|
+
]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Box, Typography } from "@mui/material";
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import { BorderShadowCard
|
|
3
|
-
import { Typography, Box } from "@mui/material";
|
|
3
|
+
import { BorderShadowCard } from "./BoxShadowCard";
|
|
4
4
|
|
|
5
5
|
const meta = {
|
|
6
6
|
title: "Bazaar/BorderShadowCard",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
|
-
import CountryInput from "./countries-input";
|
|
3
|
-
import { countries } from "../../__mocks__/countries";
|
|
4
2
|
import { useState } from "react";
|
|
3
|
+
import { countries } from "../../__mocks__/countries";
|
|
4
|
+
import CountryInput from "./countries-input";
|
|
5
5
|
|
|
6
6
|
const meta = {
|
|
7
7
|
title: "Bazaar/CountryInput",
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { useCallback } from "react";
|
|
2
|
-
// MUI
|
|
3
|
-
import Box from "@mui/material/Box";
|
|
4
|
-
import Button from "@mui/material/Button";
|
|
5
|
-
import Divider from "@mui/material/Divider";
|
|
6
|
-
// DROPZONE
|
|
7
|
-
import { Accept, FileRejection, useDropzone } from "react-dropzone";
|
|
8
1
|
// LOCAL CUSTOM COMPONENT
|
|
9
2
|
import {
|
|
10
3
|
H5,
|
|
11
4
|
Small,
|
|
12
5
|
} from "@evenicanpm/storefront-core/src/components-v2/Typography";
|
|
6
|
+
// MUI
|
|
7
|
+
import Box from "@mui/material/Box";
|
|
8
|
+
import Button from "@mui/material/Button";
|
|
9
|
+
import Divider from "@mui/material/Divider";
|
|
13
10
|
import { useTranslations } from "next-intl";
|
|
11
|
+
import { useCallback } from "react";
|
|
12
|
+
// DROPZONE
|
|
13
|
+
import { type Accept, type FileRejection, useDropzone } from "react-dropzone";
|
|
14
14
|
|
|
15
15
|
// ========================================================
|
|
16
16
|
interface Props {
|
|
@@ -26,8 +26,7 @@ export default function DropZone({
|
|
|
26
26
|
onChange,
|
|
27
27
|
title = "Drag & drop files here",
|
|
28
28
|
handleReject,
|
|
29
|
-
|
|
30
|
-
}: Props) {
|
|
29
|
+
}: Readonly<Props>) {
|
|
31
30
|
const onDrop = useCallback(
|
|
32
31
|
(acceptedFiles: File[]) => onChange(acceptedFiles),
|
|
33
32
|
[onChange],
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import React, { useState, useEffect } from "react";
|
|
4
|
-
import { ImageProps } from "next/image";
|
|
5
3
|
import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
|
|
4
|
+
import type { ImageProps } from "next/image";
|
|
5
|
+
import type React from "react";
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
6
7
|
|
|
7
8
|
export interface ImageWithFallbackProps extends ImageProps {
|
|
8
9
|
fallbackSrc?: string;
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import NextImage, { ImageProps } from "next/image";
|
|
4
3
|
import styled from "@mui/material/styles/styled";
|
|
5
|
-
import {
|
|
4
|
+
import NextImage, { type ImageProps } from "next/image";
|
|
5
|
+
import type { ComponentType } from "react";
|
|
6
6
|
|
|
7
7
|
const LazyImage: ComponentType<ImageProps> = styled(NextImage)({
|
|
8
8
|
width: "100%",
|
|
9
9
|
height: "auto", //If we use CSS to change the size of image, we should include the styles 'width: "auto"' or 'height: "auto"' to maintain the aspect ratio.
|
|
10
10
|
});
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Next Image with a hover zoom effect. Used for blog cards.
|
|
14
|
+
*/
|
|
15
|
+
export const ZoomLazyImage: ComponentType<ImageProps> = styled(NextImage)({
|
|
16
|
+
transition: "transform 0.3s",
|
|
17
|
+
"&:hover": { transform: "scale(1.1)", cursor: "pointer" },
|
|
18
|
+
});
|
|
19
|
+
|
|
12
20
|
export default LazyImage;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import InputBase, { InputBaseProps } from "@mui/material/InputBase";
|
|
2
|
-
import styled from "@mui/material/styles/styled";
|
|
3
1
|
// MUI ICON COMPONENT
|
|
4
2
|
import Search from "@mui/icons-material/Search";
|
|
3
|
+
import InputBase, { type InputBaseProps } from "@mui/material/InputBase";
|
|
4
|
+
import styled from "@mui/material/styles/styled";
|
|
5
5
|
|
|
6
6
|
// STYLED COMPONENT
|
|
7
7
|
const StyledInputBase = styled(InputBase)(({ theme }) => ({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PropsWithChildren } from "react";
|
|
2
1
|
import styled from "@mui/material/styles/styled";
|
|
3
2
|
import { SnackbarProvider as NotistackProvider } from "notistack";
|
|
3
|
+
import type { PropsWithChildren } from "react";
|
|
4
4
|
|
|
5
5
|
// STYLED COMPONENT
|
|
6
6
|
const Provider = styled(NotistackProvider)(({ theme }) => ({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
2
|
import {
|
|
3
|
+
Display,
|
|
3
4
|
H1,
|
|
4
5
|
H2,
|
|
5
6
|
H3,
|
|
@@ -9,9 +10,8 @@ import {
|
|
|
9
10
|
Paragraph,
|
|
10
11
|
Small,
|
|
11
12
|
Span,
|
|
12
|
-
Tiny,
|
|
13
|
-
Display,
|
|
14
13
|
Subtitle,
|
|
14
|
+
Tiny,
|
|
15
15
|
} from "./Typography";
|
|
16
16
|
|
|
17
17
|
const meta = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import Box, { BoxProps } from "@mui/material/Box";
|
|
3
|
+
import Box, { type BoxProps } from "@mui/material/Box";
|
|
4
4
|
import styled from "@mui/material/styles/styled";
|
|
5
5
|
import clsx from "clsx";
|
|
6
6
|
import React from "react";
|
|
@@ -22,7 +22,7 @@ const StyledBox = styled(Box, {
|
|
|
22
22
|
}),
|
|
23
23
|
}));
|
|
24
24
|
|
|
25
|
-
export function H1(props: EllipsisProps) {
|
|
25
|
+
export function H1(props: Readonly<EllipsisProps>) {
|
|
26
26
|
const { ellipsis, children, className, ...others } = props;
|
|
27
27
|
|
|
28
28
|
return (
|
|
@@ -39,7 +39,7 @@ export function H1(props: EllipsisProps) {
|
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
export function H2(props: EllipsisProps) {
|
|
42
|
+
export function H2(props: Readonly<EllipsisProps>) {
|
|
43
43
|
const { ellipsis, children, className, ...others } = props;
|
|
44
44
|
|
|
45
45
|
return (
|
|
@@ -56,7 +56,7 @@ export function H2(props: EllipsisProps) {
|
|
|
56
56
|
);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
export function H3(props: EllipsisProps) {
|
|
59
|
+
export function H3(props: Readonly<EllipsisProps>) {
|
|
60
60
|
const { ellipsis, children, className, ...others } = props;
|
|
61
61
|
|
|
62
62
|
return (
|
|
@@ -73,7 +73,7 @@ export function H3(props: EllipsisProps) {
|
|
|
73
73
|
);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
export function H4(props: EllipsisProps) {
|
|
76
|
+
export function H4(props: Readonly<EllipsisProps>) {
|
|
77
77
|
const { ellipsis, children, className, ...others } = props;
|
|
78
78
|
|
|
79
79
|
return (
|
|
@@ -90,7 +90,7 @@ export function H4(props: EllipsisProps) {
|
|
|
90
90
|
);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
export function H5(props: EllipsisProps) {
|
|
93
|
+
export function H5(props: Readonly<EllipsisProps>) {
|
|
94
94
|
const { ellipsis, children, className, ...others } = props;
|
|
95
95
|
|
|
96
96
|
return (
|
|
@@ -108,7 +108,7 @@ export function H5(props: EllipsisProps) {
|
|
|
108
108
|
);
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
-
export function H6(props: EllipsisProps) {
|
|
111
|
+
export function H6(props: Readonly<EllipsisProps>) {
|
|
112
112
|
const { ellipsis, children, className, ...others } = props;
|
|
113
113
|
|
|
114
114
|
return (
|
|
@@ -125,7 +125,7 @@ export function H6(props: EllipsisProps) {
|
|
|
125
125
|
);
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
export function Paragraph(props: EllipsisProps) {
|
|
128
|
+
export function Paragraph(props: Readonly<EllipsisProps>) {
|
|
129
129
|
const { ellipsis, children, className, ...others } = props;
|
|
130
130
|
|
|
131
131
|
return (
|
|
@@ -142,7 +142,7 @@ export function Paragraph(props: EllipsisProps) {
|
|
|
142
142
|
);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
export function Small(props: EllipsisProps) {
|
|
145
|
+
export function Small(props: Readonly<EllipsisProps>) {
|
|
146
146
|
const { ellipsis = false, children, className, ...others } = props;
|
|
147
147
|
|
|
148
148
|
return (
|
|
@@ -159,7 +159,7 @@ export function Small(props: EllipsisProps) {
|
|
|
159
159
|
);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
export function Span(props: EllipsisProps) {
|
|
162
|
+
export function Span(props: Readonly<EllipsisProps>) {
|
|
163
163
|
const { ellipsis = false, children, className, ...others } = props;
|
|
164
164
|
|
|
165
165
|
return (
|
|
@@ -174,7 +174,7 @@ export function Span(props: EllipsisProps) {
|
|
|
174
174
|
);
|
|
175
175
|
}
|
|
176
176
|
|
|
177
|
-
export function Tiny(props: EllipsisProps) {
|
|
177
|
+
export function Tiny(props: Readonly<EllipsisProps>) {
|
|
178
178
|
const { ellipsis = false, children, className, ...others } = props;
|
|
179
179
|
|
|
180
180
|
return (
|
|
@@ -191,7 +191,7 @@ export function Tiny(props: EllipsisProps) {
|
|
|
191
191
|
);
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
export function Display(props: EllipsisProps) {
|
|
194
|
+
export function Display(props: Readonly<EllipsisProps>) {
|
|
195
195
|
const { ellipsis, children, className, ...others } = props;
|
|
196
196
|
|
|
197
197
|
return (
|
|
@@ -208,7 +208,7 @@ export function Display(props: EllipsisProps) {
|
|
|
208
208
|
);
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
export function Subtitle(props: EllipsisProps) {
|
|
211
|
+
export function Subtitle(props: Readonly<EllipsisProps>) {
|
|
212
212
|
const { ellipsis, children, className, ...others } = props;
|
|
213
213
|
|
|
214
214
|
return (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import Button, { type ButtonProps } from "@mui/material/Button";
|
|
2
|
+
import type { PropsWithChildren } from "react";
|
|
3
3
|
|
|
4
4
|
// ==================================================
|
|
5
5
|
interface Props extends PropsWithChildren, ButtonProps {}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
import { BoxProps } from "@mui/material/Box";
|
|
3
|
-
import { styled, SxProps, Theme } from "@mui/material/styles";
|
|
4
|
-
// MUI ICON COMPONENTS
|
|
5
|
-
import ChevronRight from "@mui/icons-material/ChevronRight";
|
|
6
1
|
// GLOBAL CUSTOM COMPONENT
|
|
7
2
|
import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
|
|
3
|
+
// MUI ICON COMPONENTS
|
|
4
|
+
import ChevronRight from "@mui/icons-material/ChevronRight";
|
|
5
|
+
import type { BoxProps } from "@mui/material/Box";
|
|
6
|
+
import { type SxProps, styled, type Theme } from "@mui/material/styles";
|
|
7
|
+
import type { ReactNode } from "react";
|
|
8
8
|
|
|
9
9
|
// STYLED COMPONENT
|
|
10
10
|
const RootContainer = styled(FlexBox, {
|
|
@@ -31,7 +31,7 @@ interface Props extends BoxProps {
|
|
|
31
31
|
}
|
|
32
32
|
// =================================================================
|
|
33
33
|
|
|
34
|
-
export default function AccordionHeader(props: Props) {
|
|
34
|
+
export default function AccordionHeader(props: Readonly<Props>) {
|
|
35
35
|
const { open, children, showIcon = true, ...others } = props;
|
|
36
36
|
|
|
37
37
|
return (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Box, Paper, Typography } from "@mui/material";
|
|
1
2
|
import type { Meta, StoryObj } from "@storybook/react";
|
|
2
3
|
import Carousel from "./carousel";
|
|
3
|
-
import { Box, Typography, Paper } from "@mui/material";
|
|
4
4
|
|
|
5
5
|
const meta: Meta<typeof Carousel> = {
|
|
6
6
|
title: "Carousel",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
3
|
+
import { type SxProps, type Theme, useTheme } from "@mui/material/styles";
|
|
4
|
+
import type React from "react";
|
|
5
|
+
import { forwardRef, type PropsWithChildren } from "react";
|
|
6
|
+
import Slider, { type CustomArrowProps, type Settings } from "react-slick";
|
|
7
7
|
import "slick-carousel/slick/slick.css";
|
|
8
8
|
import "slick-carousel/slick/slick-theme.css";
|
|
9
9
|
import { createArrows } from "@evenicanpm/storefront-core/src/components-v2/carousel/components/carousel-arrows";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
// STYLED COMPONENT
|
|
2
|
+
import { ArrowButton } from "@evenicanpm/storefront-core/src/components-v2/carousel/styles/index";
|
|
3
3
|
// MUI ICON COMPONENTS
|
|
4
4
|
import ArrowBack from "@mui/icons-material/ArrowBack";
|
|
5
5
|
import ArrowForward from "@mui/icons-material/ArrowForward";
|
|
6
|
-
|
|
7
|
-
import {
|
|
6
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
7
|
+
import type { CustomArrowProps, Settings } from "react-slick";
|
|
8
8
|
|
|
9
9
|
type ArrowConfig = {
|
|
10
10
|
sx?: SxProps<Theme>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Settings } from "react-slick";
|
|
2
|
-
import { SxProps, Theme } from "@mui/material/styles";
|
|
3
1
|
// STYLED COMPONENTS
|
|
4
2
|
import {
|
|
5
3
|
Dot,
|
|
6
4
|
DotList,
|
|
7
5
|
} from "@evenicanpm/storefront-core/src/components-v2/carousel/styles/index";
|
|
6
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
7
|
+
import type { Settings } from "react-slick";
|
|
8
8
|
|
|
9
9
|
type DotConfig = {
|
|
10
10
|
dotColor?: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
import Grid from "@mui/material/Grid2";
|
|
3
|
-
import Button from "@mui/material/Button";
|
|
4
1
|
// GLOBAL CUSTOM COMPONENTS
|
|
5
2
|
import BazaarImage from "@evenicanpm/storefront-core/src/components-v2/BazaarImage";
|
|
6
|
-
import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
|
|
7
3
|
// STYLED COMPONENT
|
|
8
4
|
import { StyledRoot } from "@evenicanpm/storefront-core/src/components-v2/carousel-cards/carousel-card-1/styles";
|
|
5
|
+
import { Paragraph } from "@evenicanpm/storefront-core/src/components-v2/Typography";
|
|
6
|
+
import Button from "@mui/material/Button";
|
|
7
|
+
import Grid from "@mui/material/Grid2";
|
|
8
|
+
import type { ReactNode } from "react";
|
|
9
9
|
|
|
10
10
|
type CarouselCard1Props = {
|
|
11
11
|
children: ReactNode;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
// Replace your-framework with the framework you are using, e.g. react-vite, nextjs, nextjs-vite, etc.
|
|
2
|
-
import type { Meta, StoryObj } from "@storybook/react";
|
|
3
|
-
import CategoryMenu from "./category-menu";
|
|
4
2
|
|
|
5
|
-
import Button from "@mui/material/Button";
|
|
6
|
-
// MUI ICON COMPONENT
|
|
7
|
-
import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown";
|
|
8
3
|
// CUSTOM ICON COMPONENTS
|
|
9
4
|
// GLOBAL CUSTOM COMPONENTS
|
|
10
5
|
import { FlexBox } from "@evenicanpm/storefront-core/src/components-v2/flex-box";
|
|
6
|
+
// MUI ICON COMPONENT
|
|
7
|
+
import KeyboardArrowDown from "@mui/icons-material/KeyboardArrowDown";
|
|
8
|
+
|
|
9
|
+
import Button from "@mui/material/Button";
|
|
10
|
+
import type { Meta, StoryObj } from "@storybook/react";
|
|
11
11
|
import { H6 } from "../Typography";
|
|
12
|
+
import CategoryMenu from "./category-menu";
|
|
12
13
|
|
|
13
14
|
//TODO: Write more stories for variations of Header.
|
|
14
15
|
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import React, { createContext, useContext, ReactNode } from "react";
|
|
4
3
|
import getCategories from "@evenicanpm/storefront-core/src/api-manager/services/categories/queries/get-categories";
|
|
5
|
-
import { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
|
|
6
4
|
import {
|
|
7
5
|
StyledRoot,
|
|
8
6
|
SubMenuStyledRoot,
|
|
9
7
|
} from "@evenicanpm/storefront-core/src/components-v2/categories/category-list/styles";
|
|
10
|
-
|
|
8
|
+
import CategoryListItem from "@evenicanpm/storefront-core/src/components-v2/categories/category-list-item/index";
|
|
11
9
|
import MegaMenu1 from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/mega-menu-1";
|
|
12
10
|
import MegaMenu2 from "@evenicanpm/storefront-core/src/components-v2/categories/mega-menu/mega-menu-2";
|
|
13
|
-
import
|
|
11
|
+
import type { CategoryHierarchy } from "@evenicanpm/storefront-core/src/lib/category-helpers";
|
|
12
|
+
import React, { createContext, type ReactNode, useContext } from "react";
|
|
14
13
|
|
|
15
14
|
type MegaMenuType = "default" | "mega-menu-1" | "mega-menu-2";
|
|
16
15
|
|
|
@@ -40,7 +39,7 @@ const CategoryList = ({
|
|
|
40
39
|
categories,
|
|
41
40
|
children,
|
|
42
41
|
}: RootProps) => {
|
|
43
|
-
|
|
42
|
+
const { data: fetchedCategories } = getCategories.useSuspenseData();
|
|
44
43
|
const cats = categories ?? fetchedCategories ?? [];
|
|
45
44
|
|
|
46
45
|
const megaMenuRenderers: Record<
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { Props } from "@evenicanpm/storefront-core/src/components-v2/categories/category-list/types";
|
|
1
|
+
import type { Props } from "@evenicanpm/storefront-core/src/components-v2/categories/category-list/types";
|
|
3
2
|
import Card from "@mui/material/Card";
|
|
3
|
+
import styled from "@mui/material/styles/styled";
|
|
4
4
|
|
|
5
|
-
/*
|
|
6
|
-
interface StyledRootProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
-
elevation: number;
|
|
8
|
-
open?: boolean;
|
|
9
|
-
position: "absolute" | "relative";
|
|
10
|
-
}
|
|
11
|
-
*/
|
|
12
5
|
// styled component
|
|
13
6
|
export const StyledRoot = styled("div", {
|
|
14
7
|
shouldForwardProp: (prop) => prop !== "position" && prop !== "open",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import Link from "next/link";
|
|
2
|
-
import { ReactNode } from "react";
|
|
3
|
-
// MUI ICON COMPONENTS
|
|
4
|
-
import { SvgIconComponent } from "@mui/icons-material";
|
|
5
|
-
import ChevronRight from "@mui/icons-material/ChevronRight";
|
|
6
1
|
// STYLED COMPONENT
|
|
7
2
|
import { Wrapper } from "@evenicanpm/storefront-core/src/components-v2/categories/category-list-item/styles";
|
|
3
|
+
// MUI ICON COMPONENTS
|
|
4
|
+
import type { SvgIconComponent } from "@mui/icons-material";
|
|
5
|
+
import ChevronRight from "@mui/icons-material/ChevronRight";
|
|
6
|
+
import Link from "next/link";
|
|
7
|
+
import type { ReactNode } from "react";
|
|
8
8
|
|
|
9
9
|
// =============================================================
|
|
10
10
|
interface Props {
|
|
@@ -16,7 +16,7 @@ interface Props {
|
|
|
16
16
|
}
|
|
17
17
|
// =============================================================
|
|
18
18
|
|
|
19
|
-
export default function CategoryListItem(props: Props) {
|
|
19
|
+
export default function CategoryListItem(props: Readonly<Props>) {
|
|
20
20
|
const { href, title, render, caret = true, icon: Icon } = props;
|
|
21
21
|
|
|
22
22
|
return (
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { MouseEvent, useCallback, useEffect, useState } from "react";
|
|
4
|
-
import styled from "@mui/material/styles/styled";
|
|
5
3
|
import CategoryList from "@evenicanpm/storefront-core/src/components-v2/categories/category-list/index";
|
|
4
|
+
import styled from "@mui/material/styles/styled";
|
|
5
|
+
import { type MouseEvent, useCallback, useEffect, useState } from "react";
|
|
6
6
|
|
|
7
7
|
// STYLED COMPONENT
|
|
8
8
|
const Wrapper = styled("div", {
|
|
9
9
|
shouldForwardProp: (prop) => prop !== "open",
|
|
10
|
-
})<{ open: boolean }>(({ open, theme: { direction } }) =>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
})
|
|
10
|
+
})<{ open: boolean }>(({ open, theme: { direction } }) => {
|
|
11
|
+
const rotationDegrees = direction === "rtl" ? "-90deg" : "90deg";
|
|
12
|
+
const rotation = open ? rotationDegrees : "0deg";
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
cursor: "pointer",
|
|
16
|
+
position: "relative",
|
|
17
|
+
"& .dropdown-icon": {
|
|
18
|
+
transition: "all 250ms ease-in-out",
|
|
19
|
+
transform: `rotate(${rotation})`,
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
});
|
|
20
23
|
|
|
21
24
|
type Props = {
|
|
22
25
|
render: (
|
|
@@ -26,7 +29,7 @@ type Props = {
|
|
|
26
29
|
|
|
27
30
|
// CategoryMenu is acting purely as a configuration/wiring component,
|
|
28
31
|
// not as a reusable UI element that needs further extensibility.
|
|
29
|
-
export default function CategoryMenu({ render }: Props) {
|
|
32
|
+
export default function CategoryMenu({ render }: Readonly<Props>) {
|
|
30
33
|
const [open, setOpen] = useState(false);
|
|
31
34
|
|
|
32
35
|
const onClick = (e: MouseEvent<HTMLButtonElement>) => {
|
|
@@ -37,8 +40,8 @@ export default function CategoryMenu({ render }: Props) {
|
|
|
37
40
|
const handleDocumentClick = useCallback(() => setOpen(false), []);
|
|
38
41
|
|
|
39
42
|
useEffect(() => {
|
|
40
|
-
|
|
41
|
-
return () =>
|
|
43
|
+
document.addEventListener("click", handleDocumentClick);
|
|
44
|
+
return () => document.removeEventListener("click", handleDocumentClick);
|
|
42
45
|
}, [handleDocumentClick]);
|
|
43
46
|
|
|
44
47
|
return (
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { ReactNode } from "react";
|
|
4
|
-
import Link from "next/link";
|
|
5
|
-
import Box from "@mui/material/Box";
|
|
6
|
-
import Grid from "@mui/material/Grid2";
|
|
7
3
|
import FlexBox from "@evenicanpm/storefront-core/src/components-v2/flex-box/flex-box";
|
|
8
4
|
import LazyImage from "@evenicanpm/storefront-core/src/components-v2/LazyImage";
|
|
9
5
|
import {
|
|
@@ -11,6 +7,10 @@ import {
|
|
|
11
7
|
Paragraph,
|
|
12
8
|
Small,
|
|
13
9
|
} from "@evenicanpm/storefront-core/src/components-v2/Typography";
|
|
10
|
+
import Box from "@mui/material/Box";
|
|
11
|
+
import Grid from "@mui/material/Grid2";
|
|
12
|
+
import Link from "next/link";
|
|
13
|
+
import type { ReactNode } from "react";
|
|
14
14
|
|
|
15
15
|
interface RootProps {
|
|
16
16
|
href: string;
|