@faststore/core 2.0.121-alpha.0 → 2.0.122-alpha.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/.next/BUILD_ID +1 -0
- package/.next/build-manifest.json +120 -0
- package/.next/cache/.tsbuildinfo +1 -0
- package/.next/cache/config.json +7 -0
- package/.next/cache/eslint/.cache_1gneedd +1 -0
- package/.next/cache/next-server.js.nft.json +1 -0
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/export-marker.json +1 -0
- package/.next/images-manifest.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +1 -0
- package/.next/react-loadable-manifest.json +52 -0
- package/.next/required-server-files.json +1 -0
- package/.next/routes-manifest.json +1 -0
- package/.next/server/chunks/104.js +255 -0
- package/.next/server/chunks/120.js +435 -0
- package/.next/server/chunks/123.js +58 -0
- package/.next/server/chunks/143.js +106 -0
- package/.next/server/chunks/154.js +206 -0
- package/.next/server/chunks/183.js +80 -0
- package/.next/server/chunks/247.js +61 -0
- package/.next/server/chunks/254.js +159 -0
- package/.next/server/chunks/256.js +1787 -0
- package/.next/server/chunks/280.js +322 -0
- package/.next/server/chunks/287.js +58 -0
- package/.next/server/chunks/312.js +674 -0
- package/.next/server/chunks/336.js +820 -0
- package/.next/server/chunks/350.js +142 -0
- package/.next/server/chunks/398.js +132 -0
- package/.next/server/chunks/401.js +7241 -0
- package/.next/server/chunks/431.js +7241 -0
- package/.next/server/chunks/502.js +603 -0
- package/.next/server/chunks/554.js +264 -0
- package/.next/server/chunks/557.js +135 -0
- package/.next/server/chunks/576.js +80 -0
- package/.next/server/chunks/597.js +169 -0
- package/.next/server/chunks/608.js +515 -0
- package/.next/server/chunks/664.js +3401 -0
- package/.next/server/chunks/676.js +32 -0
- package/.next/server/chunks/74.js +2606 -0
- package/.next/server/chunks/746.js +249 -0
- package/.next/server/chunks/82.js +371 -0
- package/.next/server/chunks/854.js +72 -0
- package/.next/server/chunks/859.js +959 -0
- package/.next/server/chunks/872.js +358 -0
- package/.next/server/chunks/886.js +120 -0
- package/.next/server/chunks/98.js +124 -0
- package/.next/server/chunks/font-manifest.json +1 -0
- package/.next/server/font-manifest.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/pages/404.js +414 -0
- package/.next/server/pages/404.js.nft.json +1 -0
- package/.next/server/pages/500.js +384 -0
- package/.next/server/pages/500.js.nft.json +1 -0
- package/.next/server/pages/[...slug].js +700 -0
- package/.next/server/pages/[...slug].js.nft.json +1 -0
- package/.next/server/pages/[slug]/p.js +2338 -0
- package/.next/server/pages/[slug]/p.js.nft.json +1 -0
- package/.next/server/pages/_app.js +368 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +304 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +164 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages/account.js +370 -0
- package/.next/server/pages/account.js.nft.json +1 -0
- package/.next/server/pages/api/graphql.js +315 -0
- package/.next/server/pages/api/graphql.js.nft.json +1 -0
- package/.next/server/pages/api/preview.js +118 -0
- package/.next/server/pages/api/preview.js.nft.json +1 -0
- package/.next/server/pages/checkout.js +370 -0
- package/.next/server/pages/checkout.js.nft.json +1 -0
- package/.next/server/pages/en-US/404.html +81 -0
- package/.next/server/pages/en-US/404.json +1 -0
- package/.next/server/pages/en-US/500.html +81 -0
- package/.next/server/pages/en-US/500.json +1 -0
- package/.next/server/pages/en-US/account.html +81 -0
- package/.next/server/pages/en-US/account.json +1 -0
- package/.next/server/pages/en-US/checkout.html +81 -0
- package/.next/server/pages/en-US/checkout.json +1 -0
- package/.next/server/pages/en-US/login.html +81 -0
- package/.next/server/pages/en-US/login.json +1 -0
- package/.next/server/pages/en-US/s.html +81 -0
- package/.next/server/pages/en-US/s.json +1 -0
- package/.next/server/pages/en-US.html +81 -0
- package/.next/server/pages/en-US.json +1 -0
- package/.next/server/pages/index.js +580 -0
- package/.next/server/pages/index.js.nft.json +1 -0
- package/.next/server/pages/login.js +396 -0
- package/.next/server/pages/login.js.nft.json +1 -0
- package/.next/server/pages/s.js +438 -0
- package/.next/server/pages/s.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +16 -0
- package/.next/server/webpack-api-runtime.js +229 -0
- package/.next/server/webpack-runtime.js +229 -0
- package/.next/static/chunks/143.dd8a556e6957baa1.js +1 -0
- package/.next/static/chunks/170.b45293edb4f089c8.js +1 -0
- package/.next/static/chunks/226.b57e10ad9932f88c.js +1 -0
- package/.next/static/chunks/336.84e96cd7aa2412bc.js +1 -0
- package/.next/static/chunks/419-274b5b8beee8c7b2.js +1 -0
- package/.next/static/chunks/495.e6b60941cc3e82e4.js +1 -0
- package/.next/static/chunks/54.1d3e6cb43b5b1626.js +1 -0
- package/.next/static/chunks/597.d0da2018cc312352.js +1 -0
- package/.next/static/chunks/608.59e69b83f35d9c44.js +1 -0
- package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
- package/.next/static/chunks/706-abfba2e18f084aed.js +1 -0
- package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
- package/.next/static/chunks/832-99f4667bdaf092f8.js +1 -0
- package/.next/static/chunks/861-d1a326525092ab9c.js +1 -0
- package/.next/static/chunks/98.97381d2021f86cd9.js +1 -0
- package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
- package/.next/static/chunks/main-9746772201fe3ac1.js +1 -0
- package/.next/static/chunks/pages/404-ac22e12eb22b9c50.js +1 -0
- package/.next/static/chunks/pages/500-7b708e8b89389d0e.js +1 -0
- package/.next/static/chunks/pages/[...slug]-3aaeeabdb9564d0f.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-b269ba68926617dd.js +1 -0
- package/.next/static/chunks/pages/_app-b601536188b9a919.js +1 -0
- package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
- package/.next/static/chunks/pages/account-04a0a6c07709c50e.js +1 -0
- package/.next/static/chunks/pages/checkout-2ed6b828bb6ed7e6.js +1 -0
- package/.next/static/chunks/pages/index-c2b6dfd205dc6cc2.js +1 -0
- package/.next/static/chunks/pages/login-3bb40d77e6ee120a.js +1 -0
- package/.next/static/chunks/pages/s-8fec20c40a2bd7da.js +1 -0
- package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
- package/.next/static/chunks/webpack-426a37879992164d.js +1 -0
- package/.next/static/css/025f924b9633ecd3.css +1 -0
- package/.next/static/css/2253644409b99b98.css +1 -0
- package/.next/static/css/364c439adafef5c8.css +1 -0
- package/.next/static/css/4b7b7b64ae6afe67.css +1 -0
- package/.next/static/css/4e0fc649e912b30f.css +1 -0
- package/.next/static/css/501cb58eaa378545.css +1 -0
- package/.next/static/css/587c27bbda64e700.css +1 -0
- package/.next/static/css/5f1b35b69b2ba1f7.css +1 -0
- package/.next/static/css/7a8417de90d11c60.css +1 -0
- package/.next/static/css/7df2581c69fe96b4.css +1 -0
- package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
- package/.next/static/z81uKE37lBbYBn8W-39Mb/_buildManifest.js +1 -0
- package/.next/static/z81uKE37lBbYBn8W-39Mb/_ssgManifest.js +1 -0
- package/.next/trace +65 -0
- package/.turbo/turbo-build.log +15 -16
- package/CHANGELOG.md +6 -0
- package/package.json +4 -4
- package/public/~partytown/debug/partytown-atomics.js +556 -0
- package/public/~partytown/debug/partytown-media.js +374 -0
- package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
- package/public/~partytown/debug/partytown-sw.js +59 -0
- package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
- package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
- package/public/~partytown/debug/partytown.js +72 -0
- package/public/~partytown/partytown-atomics.js +2 -0
- package/public/~partytown/partytown-media.js +2 -0
- package/public/~partytown/partytown-sw.js +2 -0
- package/public/~partytown/partytown.js +2 -0
- package/src/components/cart/CartSidebar/CartSidebar.tsx +6 -2
- package/src/components/cart/CartSidebar/section.module.scss +21 -0
- package/src/components/cms/GlobalSections.tsx +6 -6
- package/src/components/common/Alert/Alert.tsx +8 -3
- package/src/components/common/Alert/section.module.scss +9 -0
- package/src/components/common/Footer/Footer.tsx +87 -89
- package/src/components/common/Footer/FooterLinks.tsx +4 -6
- package/src/components/common/Footer/section.module.scss +12 -0
- package/src/components/common/RegionBar/RegionBar.tsx +17 -0
- package/src/components/common/RegionBar/index.ts +1 -0
- package/src/components/common/RegionBar/section.module.scss +8 -0
- package/src/components/navigation/Navbar/Navbar.tsx +62 -61
- package/src/components/navigation/Navbar/section.module.scss +26 -0
- package/src/components/navigation/NavbarLinks/NavbarLinks.tsx +0 -1
- package/src/components/navigation/NavbarSlider/NavbarSlider.tsx +11 -7
- package/src/components/navigation/NavbarSlider/section.module.scss +26 -0
- package/src/components/product/ProductGrid/ProductGrid.tsx +2 -4
- package/src/components/region/RegionModal/RegionModal.tsx +6 -1
- package/src/components/region/RegionModal/section.module.scss +13 -0
- package/src/components/search/Filter/Filter.tsx +6 -3
- package/src/components/search/Filter/FilterSlider.tsx +5 -0
- package/src/components/search/Filter/section.module.scss +22 -0
- package/src/components/sections/BannerNewsletter/BannerNewsletter.tsx +5 -3
- package/src/components/sections/BannerNewsletter/section.module.scss +8 -0
- package/src/components/sections/BannerText/BannerText.tsx +4 -2
- package/src/components/sections/BannerText/section.module.scss +8 -0
- package/src/components/sections/Breadcrumb/Breadcrumb.tsx +4 -2
- package/src/components/sections/Breadcrumb/section.module.scss +9 -0
- package/src/components/sections/Hero/Hero.tsx +5 -9
- package/src/components/sections/Hero/section.module.scss +9 -0
- package/src/components/sections/{Incentives → IncentivesHeader}/IncentivesHeader.tsx +3 -2
- package/src/components/sections/IncentivesHeader/index.ts +1 -0
- package/src/components/sections/IncentivesHeader/section.module.scss +8 -0
- package/src/components/sections/Newsletter/Newsletter.tsx +68 -69
- package/src/components/sections/Newsletter/section.module.scss +11 -0
- package/src/components/sections/ProducDetailsContent/ProductDetailsContent.tsx +2 -4
- package/src/components/sections/ProductDetails/ProductDetails.tsx +44 -43
- package/src/components/sections/ProductDetails/section.module.scss +27 -0
- package/src/components/sections/ProductGallery/ProductGallery.tsx +121 -119
- package/src/components/sections/ProductGallery/section.module.scss +28 -0
- package/src/components/sections/ProductShelf/ProductShelf.tsx +8 -4
- package/src/components/sections/ProductShelf/section.module.scss +17 -0
- package/src/components/sections/ProductTiles/ProductTiles.tsx +9 -4
- package/src/components/sections/ProductTiles/section.module.scss +17 -0
- package/src/components/sections/ScrollToTopButton/ScrollToTopButton.tsx +3 -3
- package/src/components/sections/ScrollToTopButton/section.module.scss +11 -0
- package/src/components/skeletons/FilterSkeleton/FilterSkeleton.tsx +1 -2
- package/src/components/skeletons/ProductCardSkeleton/ProductCardSkeleton.tsx +0 -3
- package/src/components/skeletons/ProductShelfSkeleton/ProductShelfSkeleton.tsx +2 -2
- package/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/ProductTileSkeleton.tsx +0 -3
- package/src/components/ui/BannerText/BannerText.tsx +0 -3
- package/src/components/ui/Button/ButtonSignIn/ButtonSignIn.tsx +1 -2
- package/src/components/{sections → ui}/Incentives/Incentives.tsx +0 -3
- package/src/components/ui/Incentives/incentivesMock.ts +27 -0
- package/src/components/ui/Logo/Logo.tsx +1 -10
- package/src/components/ui/Tiles/Tiles.tsx +1 -6
- package/src/pages/[slug]/p.tsx +1 -1
- package/src/pages/_app.tsx +2 -2
- package/src/pages/index.tsx +2 -2
- package/src/styles/global/components.scss +8 -0
- package/src/styles/themes/midnight.scss +1 -1
- package/src/components/common/Footer/Footer.stories.mdx +0 -158
- package/src/components/common/Footer/footer.module.scss +0 -220
- package/src/components/sections/BannerNewsletter/banner-newsletter.module.scss +0 -23
- package/src/components/sections/Incentives/Incentives.stories.mdx +0 -159
- package/src/components/sections/Incentives/IncentivesFooter.tsx +0 -8
- package/src/components/sections/Incentives/incentives.module.scss +0 -122
- package/src/components/sections/Incentives/incentivesMock.ts +0 -55
- package/src/components/sections/Newsletter/Newsletter.stories.mdx +0 -139
- package/src/components/sections/Newsletter/newsletter.module.scss +0 -135
- package/src/components/sections/ProductDetails/product-details.module.scss +0 -185
- package/src/components/sections/ProductGallery/product-gallery.module.scss +0 -184
- package/src/components/sections/ScrollToTopButton/scroll-to-top-button.module.scss +0 -12
- package/src/components/skeletons/FilterSkeleton/FilterSkeleton.stories.mdx +0 -97
- package/src/components/skeletons/FilterSkeleton/filter-skeleton.module.scss +0 -51
- package/src/components/skeletons/ProductCardSkeleton/ProductCardSkeleton.stories.mdx +0 -113
- package/src/components/skeletons/ProductCardSkeleton/product-card-skeleton.module.scss +0 -58
- package/src/components/skeletons/ProductTilesSkeleton/ProductTileSkeleton/product-tile-skeleton.module.scss +0 -81
- package/src/components/ui/BannerText/BannerText.stories.mdx +0 -270
- package/src/components/ui/BannerText/banner-text.module.scss +0 -127
- package/src/components/ui/Button/Button.stories.mdx +0 -643
- package/src/components/ui/Button/button.module.scss +0 -11
- package/src/components/ui/Carousel/Carousel.stories.mdx +0 -201
- package/src/components/ui/Carousel/carousel.module.scss +0 -147
- package/src/components/ui/Logo/logo.module.scss +0 -12
- package/src/components/ui/Tiles/Tiles.stories.mdx +0 -151
- package/src/components/ui/Tiles/tiles.module.scss +0 -58
- /package/src/components/{sections → ui}/Incentives/index.ts +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import RegionBarComponent from 'src/components/region/RegionBar/RegionBar'
|
|
2
|
+
import Section from 'src/components/sections/Section/Section'
|
|
3
|
+
import styles from './section.module.scss'
|
|
4
|
+
|
|
5
|
+
type RegionBarProps = {
|
|
6
|
+
className?: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function RegionBar({ className = '' }: RegionBarProps) {
|
|
10
|
+
return (
|
|
11
|
+
<Section className={`${styles.section} section-region-bar`}>
|
|
12
|
+
<RegionBarComponent className={className} />
|
|
13
|
+
</Section>
|
|
14
|
+
)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default RegionBar
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './RegionBar'
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/molecules/RegionBar/styles.scss";
|
|
8
|
+
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import { Suspense, useRef, useState } from 'react'
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
useUI,
|
|
5
|
-
useScrollDirection,
|
|
6
4
|
Icon as UIIcon,
|
|
7
5
|
IconButton as UIIconButton,
|
|
8
6
|
Navbar as UINavbar,
|
|
7
|
+
NavbarButtons as UINavbarButtons,
|
|
9
8
|
NavbarHeader as UINavbarHeader,
|
|
10
9
|
NavbarRow as UINavbarRow,
|
|
11
|
-
|
|
10
|
+
useScrollDirection,
|
|
11
|
+
useUI,
|
|
12
12
|
} from '@faststore/ui'
|
|
13
13
|
|
|
14
14
|
import CartToggle from 'src/components/cart/CartToggle'
|
|
15
|
-
import SearchInput from 'src/components/search/SearchInput'
|
|
16
15
|
import type { SearchInputRef } from 'src/components/search/SearchInput'
|
|
17
|
-
import
|
|
18
|
-
import Link from 'src/components/ui/Link'
|
|
16
|
+
import SearchInput from 'src/components/search/SearchInput'
|
|
19
17
|
import { ButtonSignIn, ButtonSignInFallback } from 'src/components/ui/Button'
|
|
18
|
+
import Link from 'src/components/ui/Link'
|
|
19
|
+
import Logo from 'src/components/ui/Logo'
|
|
20
20
|
import { mark } from 'src/sdk/tests/mark'
|
|
21
21
|
|
|
22
|
-
import NavbarSlider from '../NavbarSlider'
|
|
23
22
|
import NavbarLinks from '../NavbarLinks'
|
|
23
|
+
import NavbarSlider from '../NavbarSlider'
|
|
24
|
+
|
|
25
|
+
import styles from './section.module.scss'
|
|
24
26
|
|
|
25
27
|
function Navbar() {
|
|
26
28
|
const scrollDirection = useScrollDirection()
|
|
@@ -34,67 +36,66 @@ function Navbar() {
|
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
return (
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
</>
|
|
60
|
-
)}
|
|
39
|
+
<header className={`section ${styles.section} section-navbar`}>
|
|
40
|
+
<UINavbar scrollDirection={scrollDirection}>
|
|
41
|
+
<UINavbarHeader>
|
|
42
|
+
<UINavbarRow className="layout__content">
|
|
43
|
+
{!searchExpanded && (
|
|
44
|
+
<>
|
|
45
|
+
<UIIconButton
|
|
46
|
+
data-fs-navbar-button-menu
|
|
47
|
+
aria-label="Open Menu"
|
|
48
|
+
icon={<UIIcon name="List" width={32} height={32} />}
|
|
49
|
+
onClick={openNavbar}
|
|
50
|
+
/>
|
|
51
|
+
<Link
|
|
52
|
+
href="/"
|
|
53
|
+
aria-label="Go to Faststore home"
|
|
54
|
+
title="Go to Faststore home"
|
|
55
|
+
data-fs-navbar-logo
|
|
56
|
+
>
|
|
57
|
+
<Logo />
|
|
58
|
+
</Link>
|
|
59
|
+
</>
|
|
60
|
+
)}
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
<SearchInput />
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
<UINavbarButtons searchExpanded={searchExpanded}>
|
|
65
|
+
{searchExpanded && (
|
|
66
|
+
<UIIconButton
|
|
67
|
+
data-fs-button-collapse
|
|
68
|
+
aria-label="Collapse search bar"
|
|
69
|
+
icon={<UIIcon name="CaretLeft" width={32} height={32} />}
|
|
70
|
+
onClick={() => {
|
|
71
|
+
setSearchExpanded(false)
|
|
72
|
+
searchMobileRef.current?.resetSearchInput()
|
|
73
|
+
}}
|
|
74
|
+
/>
|
|
75
|
+
)}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
77
|
+
<SearchInput
|
|
78
|
+
placeholder=""
|
|
79
|
+
ref={searchMobileRef}
|
|
80
|
+
testId="store-input-mobile"
|
|
81
|
+
buttonTestId="store-input-mobile-button"
|
|
82
|
+
onSearchClick={handlerExpandSearch}
|
|
83
|
+
/>
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
<Suspense fallback={<ButtonSignInFallback />}>
|
|
86
|
+
<ButtonSignIn />
|
|
87
|
+
</Suspense>
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
89
|
+
<CartToggle />
|
|
90
|
+
</UINavbarButtons>
|
|
91
|
+
</UINavbarRow>
|
|
92
|
+
</UINavbarHeader>
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
<NavbarLinks className="hidden-mobile" />
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
96
|
+
{displayNavbar && <NavbarSlider />}
|
|
97
|
+
</UINavbar>
|
|
98
|
+
</header>
|
|
98
99
|
)
|
|
99
100
|
}
|
|
100
101
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Badge/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/atoms/Input/styles.scss";
|
|
9
|
+
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
10
|
+
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
11
|
+
@import "@faststore/ui/src/components/atoms/Logo/styles.scss";
|
|
12
|
+
@import "@faststore/ui/src/components/atoms/Price/styles.scss";
|
|
13
|
+
@import "@faststore/ui/src/components/molecules/LinkButton/styles.scss";
|
|
14
|
+
@import "@faststore/ui/src/components/molecules/Modal/styles.scss";
|
|
15
|
+
@import "@faststore/ui/src/components/molecules/NavbarLinks/styles.scss";
|
|
16
|
+
@import "@faststore/ui/src/components/molecules/SearchAutoComplete/styles.scss";
|
|
17
|
+
@import "@faststore/ui/src/components/molecules/SearchDropdown/styles.scss";
|
|
18
|
+
@import "@faststore/ui/src/components/molecules/SearchHistory/styles.scss";
|
|
19
|
+
@import "@faststore/ui/src/components/molecules/SearchInputField/styles.scss";
|
|
20
|
+
@import "@faststore/ui/src/components/molecules/SearchProducts/styles.scss";
|
|
21
|
+
@import "@faststore/ui/src/components/molecules/SearchTop/styles.scss";
|
|
22
|
+
@import "@faststore/ui/src/components/organisms/SearchInput/styles.scss";
|
|
23
|
+
@import "@faststore/ui/src/components/organisms/Navbar/styles.scss";
|
|
24
|
+
@import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
|
|
25
|
+
@import "@faststore/ui/src/components/organisms/NavbarSlider/styles.scss";
|
|
26
|
+
}
|
|
@@ -2,7 +2,6 @@ import type { AnchorHTMLAttributes } from 'react'
|
|
|
2
2
|
|
|
3
3
|
import type { NavbarLinksProps as UINavbarLinksProps } from '@faststore/ui'
|
|
4
4
|
import {
|
|
5
|
-
List as UIList,
|
|
6
5
|
NavbarLinks as UINavbarLinks,
|
|
7
6
|
NavbarLinksList as UINavbarLinksList,
|
|
8
7
|
NavbarLinksListItem as UINavbarLinksListItem,
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { Suspense } from 'react'
|
|
2
1
|
import {
|
|
3
|
-
useUI,
|
|
4
|
-
useFadeEffect,
|
|
5
2
|
NavbarSlider as UINavbarSlider,
|
|
6
|
-
NavbarSliderHeader as UINavbarSliderHeader,
|
|
7
3
|
NavbarSliderContent as UINavbarSliderContent,
|
|
8
4
|
NavbarSliderFooter as UINavbarSliderFooter,
|
|
5
|
+
NavbarSliderHeader as UINavbarSliderHeader,
|
|
6
|
+
useFadeEffect,
|
|
7
|
+
useUI,
|
|
9
8
|
} from '@faststore/ui'
|
|
9
|
+
import { Suspense } from 'react'
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { ButtonSignIn, ButtonSignInFallback } from 'src/components/ui/Button'
|
|
12
12
|
import Link from 'src/components/ui/Link'
|
|
13
13
|
import Logo from 'src/components/ui/Logo'
|
|
14
|
-
import {
|
|
15
|
-
|
|
14
|
+
import { mark } from 'src/sdk/tests/mark'
|
|
16
15
|
import NavbarLinks from '../NavbarLinks'
|
|
17
16
|
|
|
17
|
+
import styles from './section.module.scss'
|
|
18
|
+
|
|
18
19
|
function NavbarSlider() {
|
|
19
20
|
const { closeNavbar } = useUI()
|
|
20
21
|
const { fade, fadeOut } = useFadeEffect()
|
|
@@ -23,6 +24,9 @@ function NavbarSlider() {
|
|
|
23
24
|
<UINavbarSlider
|
|
24
25
|
fade={fade}
|
|
25
26
|
onDismiss={fadeOut}
|
|
27
|
+
overlayProps={{
|
|
28
|
+
className: `section ${styles.section} section-navbar-slider`,
|
|
29
|
+
}}
|
|
26
30
|
onTransitionEnd={() => fade === 'out' && closeNavbar()}
|
|
27
31
|
>
|
|
28
32
|
<UINavbarSliderHeader onClose={fadeOut}>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Badge/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/atoms/Input/styles.scss";
|
|
9
|
+
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
10
|
+
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
11
|
+
@import "@faststore/ui/src/components/atoms/Logo/styles.scss";
|
|
12
|
+
@import "@faststore/ui/src/components/atoms/Price/styles.scss";
|
|
13
|
+
@import "@faststore/ui/src/components/molecules/LinkButton/styles.scss";
|
|
14
|
+
@import "@faststore/ui/src/components/molecules/Modal/styles.scss";
|
|
15
|
+
@import "@faststore/ui/src/components/molecules/NavbarLinks/styles.scss";
|
|
16
|
+
@import "@faststore/ui/src/components/molecules/SearchAutoComplete/styles.scss";
|
|
17
|
+
@import "@faststore/ui/src/components/molecules/SearchDropdown/styles.scss";
|
|
18
|
+
@import "@faststore/ui/src/components/molecules/SearchHistory/styles.scss";
|
|
19
|
+
@import "@faststore/ui/src/components/molecules/SearchInputField/styles.scss";
|
|
20
|
+
@import "@faststore/ui/src/components/molecules/SearchProducts/styles.scss";
|
|
21
|
+
@import "@faststore/ui/src/components/molecules/SearchTop/styles.scss";
|
|
22
|
+
@import "@faststore/ui/src/components/organisms/SearchInput/styles.scss";
|
|
23
|
+
@import "@faststore/ui/src/components/organisms/Navbar/styles.scss";
|
|
24
|
+
@import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
|
|
25
|
+
@import "@faststore/ui/src/components/organisms/NavbarSlider/styles.scss";
|
|
26
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import ProductGridSkeleton from 'src/components/skeletons/ProductGridSkeleton'
|
|
2
|
-
import type { ProductSummary_ProductFragment } from '@generated/graphql'
|
|
3
1
|
import {
|
|
4
2
|
ProductGrid as UIProductGrid,
|
|
5
3
|
ProductGridItem as UIProductGridItem,
|
|
6
4
|
} from '@faststore/ui'
|
|
5
|
+
import type { ProductSummary_ProductFragment } from '@generated/graphql'
|
|
6
|
+
import ProductGridSkeleton from 'src/components/skeletons/ProductGridSkeleton'
|
|
7
7
|
|
|
8
8
|
import ProductCard from '../ProductCard'
|
|
9
9
|
|
|
@@ -22,8 +22,6 @@ interface Props {
|
|
|
22
22
|
function ProductGrid({ products, page, pageSize }: Props) {
|
|
23
23
|
const aspectRatio = 1
|
|
24
24
|
|
|
25
|
-
console.log(products)
|
|
26
|
-
|
|
27
25
|
return (
|
|
28
26
|
<ProductGridSkeleton
|
|
29
27
|
aspectRatio={aspectRatio}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { useRef, useState } from 'react'
|
|
2
1
|
import { RegionModal as UIRegionModal } from '@faststore/ui'
|
|
2
|
+
import { useRef, useState } from 'react'
|
|
3
3
|
|
|
4
4
|
import { sessionStore, useSession, validateSession } from 'src/sdk/session'
|
|
5
5
|
|
|
6
|
+
import styles from './section.module.scss'
|
|
7
|
+
|
|
6
8
|
function RegionModal() {
|
|
7
9
|
const inputRef = useRef<HTMLInputElement>(null)
|
|
8
10
|
const { isValidating, ...session } = useSession()
|
|
@@ -34,6 +36,9 @@ function RegionModal() {
|
|
|
34
36
|
|
|
35
37
|
return (
|
|
36
38
|
<UIRegionModal
|
|
39
|
+
overlayProps={{
|
|
40
|
+
className: `section ${styles.section} section-region-modal`,
|
|
41
|
+
}}
|
|
37
42
|
inputRef={inputRef}
|
|
38
43
|
inputValue={input}
|
|
39
44
|
errorMessage={errorMessage}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Input/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/Overlay/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
9
|
+
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
10
|
+
@import "@faststore/ui/src/components/molecules/InputField/styles.scss";
|
|
11
|
+
@import "@faststore/ui/src/components/molecules/Modal/styles.scss";
|
|
12
|
+
@import "@faststore/ui/src/components/organisms/RegionModal/styles.scss";
|
|
13
|
+
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { gql } from '@faststore/graphql-utils'
|
|
2
|
-
|
|
3
2
|
import { useUI } from '@faststore/ui'
|
|
4
3
|
import type { Filter_FacetsFragment } from '@generated/graphql'
|
|
4
|
+
import { lazy, Suspense } from 'react'
|
|
5
5
|
import FilterDesktop from './FilterDesktop'
|
|
6
|
-
import FilterSlider from './FilterSlider'
|
|
7
6
|
import { useFilter } from './useFilter'
|
|
8
7
|
|
|
8
|
+
const FilterSlider = lazy(() => import('./FilterSlider'))
|
|
9
|
+
|
|
9
10
|
interface Props {
|
|
10
11
|
/**
|
|
11
12
|
* The array that represents the details of every facet.
|
|
@@ -29,7 +30,9 @@ function Filter({ facets: allFacets, testId = 'fs-filter' }: Props) {
|
|
|
29
30
|
</div>
|
|
30
31
|
|
|
31
32
|
{displayFilter && (
|
|
32
|
-
<
|
|
33
|
+
<Suspense fallback={null}>
|
|
34
|
+
<FilterSlider {...filter} testId={testId} title="Filters" />
|
|
35
|
+
</Suspense>
|
|
33
36
|
)}
|
|
34
37
|
</>
|
|
35
38
|
)
|
|
@@ -13,6 +13,8 @@ import type { Filter_FacetsFragment } from '@generated/graphql'
|
|
|
13
13
|
|
|
14
14
|
import type { useFilter } from './useFilter'
|
|
15
15
|
|
|
16
|
+
import styles from './section.module.scss'
|
|
17
|
+
|
|
16
18
|
interface Props {
|
|
17
19
|
/**
|
|
18
20
|
* ID to find this component in testing tools (e.g.: cypress,
|
|
@@ -41,6 +43,9 @@ function FilterSlider({
|
|
|
41
43
|
|
|
42
44
|
return (
|
|
43
45
|
<UIFilterSlider
|
|
46
|
+
overlayProps={{
|
|
47
|
+
className: `section ${styles.section} section-filter-slider`,
|
|
48
|
+
}}
|
|
44
49
|
title={title}
|
|
45
50
|
size="partial"
|
|
46
51
|
direction="rightSide"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Badge/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/Checkbox/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
9
|
+
@import "@faststore/ui/src/components/atoms/Input/styles.scss";
|
|
10
|
+
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
11
|
+
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
12
|
+
@import "@faststore/ui/src/components/atoms/Slider/styles.scss";
|
|
13
|
+
@import "@faststore/ui/src/components/molecules/DiscountBadge/styles.scss";
|
|
14
|
+
@import "@faststore/ui/src/components/molecules/Accordion/styles.scss";
|
|
15
|
+
@import "@faststore/ui/src/components/molecules/InputField/styles.scss";
|
|
16
|
+
@import "@faststore/ui/src/components/molecules/Modal/styles.scss";
|
|
17
|
+
@import "@faststore/ui/src/components/molecules/SelectField/styles.scss";
|
|
18
|
+
@import "@faststore/ui/src/components/organisms/Filter/styles.scss";
|
|
19
|
+
@import "@faststore/ui/src/components/organisms/FilterSlider/styles.scss";
|
|
20
|
+
@import "@faststore/ui/src/components/organisms/PriceRange/styles.scss";
|
|
21
|
+
@import "@faststore/ui/src/components/organisms/SlideOver/styles.scss";
|
|
22
|
+
}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import BannerText from 'src/components/ui/BannerText'
|
|
2
2
|
import Newsletter from '../Newsletter'
|
|
3
3
|
import Section from '../Section'
|
|
4
|
-
import styles from './
|
|
4
|
+
import styles from './section.module.scss'
|
|
5
5
|
|
|
6
6
|
function BannerNewsletter() {
|
|
7
7
|
return (
|
|
8
|
-
<Section
|
|
9
|
-
|
|
8
|
+
<Section
|
|
9
|
+
className={`${styles.section} section-banner-newsletter layout__content`}
|
|
10
|
+
>
|
|
11
|
+
<div data-fs-banner-newsletter>
|
|
10
12
|
<BannerText
|
|
11
13
|
title="Get to Know Our Next Release"
|
|
12
14
|
caption="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam elit nisi, vehicula in turpis sit amet, posuere aliquam nisl. "
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/molecules/Banner/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/organisms/BannerNewsletter/styles.scss";
|
|
8
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import Section from '../Section'
|
|
2
1
|
import UIBannerText, {
|
|
3
2
|
BannerTextProps as UIBannerTextProps,
|
|
4
3
|
} from 'src/components/ui/BannerText'
|
|
4
|
+
import Section from '../Section'
|
|
5
|
+
|
|
6
|
+
import styles from './section.module.scss'
|
|
5
7
|
|
|
6
8
|
export interface BannerTextProps {
|
|
7
9
|
title: string
|
|
@@ -23,7 +25,7 @@ function BannerText({
|
|
|
23
25
|
colorVariant = 'main',
|
|
24
26
|
}: BannerTextProps) {
|
|
25
27
|
return (
|
|
26
|
-
<Section className=
|
|
28
|
+
<Section className={`${styles.section} section-banner layout__section`}>
|
|
27
29
|
<UIBannerText
|
|
28
30
|
variant={variant}
|
|
29
31
|
title={title}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Button/styles";
|
|
6
|
+
@import "@faststore/ui/src/components/molecules/LinkButton/styles";
|
|
7
|
+
@import "@faststore/ui/src/components/molecules/Banner/styles";
|
|
8
|
+
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { memo } from 'react'
|
|
2
2
|
|
|
3
|
-
import UIBreadcrumb from 'src/components/ui/Breadcrumb'
|
|
4
3
|
import type { BreadcrumbProps } from 'src/components/ui/Breadcrumb'
|
|
4
|
+
import UIBreadcrumb from 'src/components/ui/Breadcrumb'
|
|
5
5
|
|
|
6
6
|
import Section from '../Section'
|
|
7
7
|
|
|
8
|
+
import styles from './section.module.scss'
|
|
9
|
+
|
|
8
10
|
interface BreadcrumbWrapperProps
|
|
9
11
|
extends Partial<Pick<BreadcrumbProps, 'breadcrumbList'>> {
|
|
10
12
|
name: string
|
|
@@ -15,7 +17,7 @@ function Breadcrumb({ breadcrumbList, name }: BreadcrumbWrapperProps) {
|
|
|
15
17
|
const list = breadcrumbList ?? fallback
|
|
16
18
|
|
|
17
19
|
return (
|
|
18
|
-
<Section className=
|
|
20
|
+
<Section className={`${styles.section} section-breadcrumb layout__content`}>
|
|
19
21
|
<UIBreadcrumb breadcrumbList={list} />
|
|
20
22
|
</Section>
|
|
21
23
|
)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/Link/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/molecules/Breadcrumb/styles.scss";
|
|
9
|
+
}
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
HeroHeaderProps as UIHeroHeaderProps,
|
|
3
|
-
HeroImageProps as UIHeroImageProps,
|
|
4
|
-
HeroProps as UIHeroProps,
|
|
5
|
-
} from '@faststore/ui'
|
|
1
|
+
import type { HeroProps as UIHeroProps } from '@faststore/ui'
|
|
6
2
|
import {
|
|
7
3
|
Hero as UIHero,
|
|
8
4
|
HeroHeader as UIHeroHeader,
|
|
9
5
|
HeroImage as UIHeroImage,
|
|
10
6
|
} from '@faststore/ui'
|
|
11
|
-
|
|
7
|
+
import { ReactNode } from 'react'
|
|
12
8
|
import { Image } from 'src/components/ui/Image'
|
|
13
|
-
|
|
14
9
|
import Section from '../Section'
|
|
15
|
-
|
|
10
|
+
|
|
11
|
+
import styles from './section.module.scss'
|
|
16
12
|
|
|
17
13
|
export type HeroProps = {
|
|
18
14
|
title: string
|
|
@@ -40,7 +36,7 @@ const Hero = ({
|
|
|
40
36
|
icon,
|
|
41
37
|
}: HeroProps) => {
|
|
42
38
|
return (
|
|
43
|
-
<Section>
|
|
39
|
+
<Section className={`${styles.section} section-hero`}>
|
|
44
40
|
<UIHero colorVariant={colorVariant} variant={variant}>
|
|
45
41
|
<UIHeroImage data-fs-hero-image>
|
|
46
42
|
<Image
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/organisms/Hero/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/molecules/LinkButton/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
8
|
+
@import "@faststore/ui/src/components/atoms/Button/styles.scss";
|
|
9
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import Incentives from '
|
|
1
|
+
import Incentives from 'src/components/ui/Incentives/Incentives'
|
|
2
2
|
import Section from '../Section'
|
|
3
|
+
import styles from './section.module.scss'
|
|
3
4
|
|
|
4
5
|
interface Incentive {
|
|
5
6
|
icon: string
|
|
@@ -14,7 +15,7 @@ interface Props {
|
|
|
14
15
|
|
|
15
16
|
function IncentivesHeader({ incentives }: Props) {
|
|
16
17
|
return (
|
|
17
|
-
<Section>
|
|
18
|
+
<Section className={`${styles.section} section-incentives-header`}>
|
|
18
19
|
<Incentives incentives={incentives} colored />
|
|
19
20
|
</Section>
|
|
20
21
|
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './IncentivesHeader'
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* stylelint-disable no-invalid-position-at-import-rule */
|
|
2
|
+
@import "@faststore/ui/src/styles/base/utilities.scss";
|
|
3
|
+
|
|
4
|
+
.section {
|
|
5
|
+
@import "@faststore/ui/src/components/atoms/Icon/styles.scss";
|
|
6
|
+
@import "@faststore/ui/src/components/atoms/List/styles.scss";
|
|
7
|
+
@import "@faststore/ui/src/components/organisms/Incentives/styles.scss";
|
|
8
|
+
}
|