mirror of
https://github.com/vercel/commerce.git
synced 2025-03-14 22:42:33 +00:00
Merge branch 'master' of https://github.com/okbel/e-comm-example
This commit is contained in:
commit
f5fa29a78a
@ -1,5 +1,5 @@
|
||||
.root {
|
||||
@apply relative w-full h-full p-6 box-border overflow-hidden;
|
||||
@apply relative w-full p-6 box-border overflow-hidden bg-no-repeat bg-center bg-cover transition ease-linear;
|
||||
}
|
||||
|
||||
.productTitle {
|
||||
@ -7,7 +7,7 @@
|
||||
max-width: calc(100% - 50px);
|
||||
|
||||
@screen lg {
|
||||
@apply text-xl;
|
||||
@apply text-2xl;
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,5 +16,5 @@
|
||||
}
|
||||
|
||||
.wishlistButton {
|
||||
@apply w-14 h-14 flex items-center justify-center bg-white text-black font-semibold inline-block text-sm leading-6;
|
||||
@apply w-14 h-14 flex items-center justify-center bg-white text-black font-semibold inline-block text-sm leading-6 cursor-pointer;
|
||||
}
|
||||
|
@ -2,10 +2,11 @@ import cn from 'classnames'
|
||||
import s from './ProductCard.module.css'
|
||||
import { FC } from 'react'
|
||||
import { Heart } from '@components/icon'
|
||||
import { url } from 'inspector'
|
||||
interface Props {
|
||||
className?: string
|
||||
children?: any
|
||||
productData: ProductData
|
||||
node: ProductData
|
||||
}
|
||||
|
||||
interface ProductData {
|
||||
@ -14,11 +15,18 @@ interface ProductData {
|
||||
prices: any
|
||||
}
|
||||
|
||||
const ProductCard: FC<Props> = ({ className, productData }) => {
|
||||
const ProductCard: FC<Props> = ({ className, node: productData }) => {
|
||||
const rootClassName = cn(s.root, className)
|
||||
|
||||
return (
|
||||
<div className={rootClassName}>
|
||||
{/* Overlay */}
|
||||
<div
|
||||
className={rootClassName}
|
||||
style={
|
||||
{
|
||||
// backgroundImage: `url('${productData.images.edges[0].node.urlSmall}')`,
|
||||
}
|
||||
}
|
||||
>
|
||||
<div className="flex flex-row justify-between box-border w-full z-10 relative">
|
||||
<div className="flex flex-col flex-1 overflow-hidden">
|
||||
<div className="flex-1">
|
||||
@ -30,18 +38,10 @@ const ProductCard: FC<Props> = ({ className, productData }) => {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className={s.wishlistButton}>
|
||||
<Heart />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="absolute box-border top-0 left-0 w-full h-full z-0 m-12">
|
||||
{/* <img
|
||||
className="object-cover object-center w-full"
|
||||
src={productData.images.edges[0].node.urlSmall}
|
||||
/> */}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
@ -1,34 +0,0 @@
|
||||
.root {
|
||||
--row-height: calc(100vh - 80px - 56px);
|
||||
@apply grid grid-cols-1 lg:grid-cols-3 lg:grid-rows-4 w-full;
|
||||
|
||||
& > * {
|
||||
@apply row-span-1 lg:col-span-1 h-full bg-black box-border;
|
||||
height: 500px;
|
||||
|
||||
@screen lg {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 1),
|
||||
& > div:nth-child(6n + 5) {
|
||||
@apply row-span-2 lg:col-span-2 bg-violet;
|
||||
|
||||
@screen lg {
|
||||
min-height: var(--row-height);
|
||||
}
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 5) {
|
||||
@apply bg-blue;
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 3) {
|
||||
@apply bg-pink;
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 6) {
|
||||
@apply bg-cyan;
|
||||
}
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
import cn from 'classnames'
|
||||
import { FC } from 'react'
|
||||
import s from './ProductGrid.module.css'
|
||||
import ProductCard from '@components/product/ProductCard'
|
||||
interface Props {
|
||||
className?: string
|
||||
children?: any
|
||||
products: [any] | any
|
||||
}
|
||||
|
||||
const ProductView: FC<Props> = ({ products, className }) => {
|
||||
const rootClassName = cn(s.root, className)
|
||||
return (
|
||||
<div className={rootClassName}>
|
||||
{products.map((data: any) => (
|
||||
<ProductCard productData={data.node} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default ProductView
|
@ -1 +0,0 @@
|
||||
export { default } from './ProductGrid'
|
@ -1,4 +1,3 @@
|
||||
export { default as Swatch } from './Swatch'
|
||||
export { default as ProductView } from './ProductView'
|
||||
export { default as ProductCard } from './ProductCard'
|
||||
export { default as ProductGrid } from './ProductGrid'
|
||||
|
@ -1,5 +1,5 @@
|
||||
.root {
|
||||
@apply mx-auto px-2;
|
||||
@apply mx-auto max-w-screen-xl mx-auto px-6 sm:px-4 lg:px-10;
|
||||
display: inherit;
|
||||
max-width: 1440px;
|
||||
}
|
||||
|
86
components/ui/Grid/Grid.module.css
Normal file
86
components/ui/Grid/Grid.module.css
Normal file
@ -0,0 +1,86 @@
|
||||
.root {
|
||||
--row-height: calc(100vh - 80px - 56px);
|
||||
@apply grid grid-cols-1 lg:grid-cols-3 lg:grid-rows-2 gap-0;
|
||||
|
||||
& > * {
|
||||
@apply row-span-1 lg:col-span-1 bg-black box-border overflow-hidden;
|
||||
height: 500px;
|
||||
max-height: 800px;
|
||||
|
||||
@screen lg {
|
||||
height: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.layoutA {
|
||||
& > div:nth-child(6n + 1),
|
||||
& > div:nth-child(6n + 5) {
|
||||
@apply row-span-2 lg:col-span-2 bg-violet;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 5) {
|
||||
@apply bg-blue;
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 3) {
|
||||
@apply bg-pink;
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 6) {
|
||||
@apply bg-cyan;
|
||||
}
|
||||
}
|
||||
|
||||
.layoutB {
|
||||
& > div:nth-child(6n + 2) {
|
||||
@apply row-span-2 lg:col-span-2 bg-blue;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 4) {
|
||||
@apply row-span-2 lg:col-span-2 bg-violet;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 3) {
|
||||
@apply bg-pink;
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 6) {
|
||||
@apply bg-cyan;
|
||||
}
|
||||
}
|
||||
|
||||
.layoutC {
|
||||
& > div:nth-child(12n + 1) {
|
||||
@apply row-span-2 lg:col-span-2 bg-violet;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(12n + 8) {
|
||||
@apply row-span-2 lg:col-span-2 bg-cyan;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 3) {
|
||||
@apply bg-pink;
|
||||
}
|
||||
}
|
||||
|
||||
.layoutD {
|
||||
& > div:nth-child(12n + 2) {
|
||||
@apply row-span-2 lg:col-span-2 bg-violet;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(12n + 7) {
|
||||
@apply row-span-2 lg:col-span-2 bg-cyan;
|
||||
height: var(--row-height);
|
||||
}
|
||||
|
||||
& > div:nth-child(6n + 3) {
|
||||
@apply bg-pink;
|
||||
}
|
||||
}
|
40
components/ui/Grid/Grid.tsx
Normal file
40
components/ui/Grid/Grid.tsx
Normal file
@ -0,0 +1,40 @@
|
||||
import cn from 'classnames'
|
||||
import { FC, ReactNode, Component } from 'react'
|
||||
import s from './Grid.module.css'
|
||||
|
||||
interface Props {
|
||||
className?: string
|
||||
children?: any
|
||||
items: [any] | any
|
||||
layout?: 'A' | 'B' | 'C' | 'D'
|
||||
wrapper?: ReactNode | Component | any
|
||||
}
|
||||
|
||||
const DefaultWrapper: FC<Props> = ({ children }) => <div>{children}</div> // DEFAULT ITEMS WRAPPER
|
||||
|
||||
const Grid: FC<Props> = ({
|
||||
items = [],
|
||||
className,
|
||||
layout = 'A',
|
||||
wrapper: Component = DefaultWrapper,
|
||||
}) => {
|
||||
const rootClassName = cn(
|
||||
s.root,
|
||||
{
|
||||
[s.layoutA]: layout === 'A',
|
||||
[s.layoutB]: layout === 'B',
|
||||
[s.layoutC]: layout === 'C',
|
||||
[s.layoutD]: layout === 'D',
|
||||
},
|
||||
className
|
||||
)
|
||||
return (
|
||||
<div className={rootClassName}>
|
||||
{items.map((data: any) => (
|
||||
<Component {...data} />
|
||||
))}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Grid
|
1
components/ui/Grid/index.ts
Normal file
1
components/ui/Grid/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export { default } from './Grid'
|
3
components/ui/Hero/Hero.module.css
Normal file
3
components/ui/Hero/Hero.module.css
Normal file
@ -0,0 +1,3 @@
|
||||
.root {
|
||||
@apply bg-black py-12;
|
||||
}
|
27
components/ui/Hero/Hero.tsx
Normal file
27
components/ui/Hero/Hero.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import cn from 'classnames'
|
||||
import React, { FC } from 'react'
|
||||
import s from './Hero.module.css'
|
||||
import { Container } from '@components/ui'
|
||||
interface Props {
|
||||
className?: string
|
||||
headline: string
|
||||
description: string
|
||||
}
|
||||
|
||||
const Hero: FC<Props> = ({ headline, description, className }) => {
|
||||
const rootClassName = cn(s.root, className)
|
||||
return (
|
||||
<div className={rootClassName}>
|
||||
<Container>
|
||||
<div className="max-w-xl">
|
||||
<h2 className="text-4xl leading-10 font-extrabold text-white sm:text-5xl sm:leading-none sm:tracking-tight lg:text-6xl">
|
||||
{headline}
|
||||
</h2>
|
||||
<p className="mt-5 text-xl leading-7 text-gray-400">{description}</p>
|
||||
</div>
|
||||
</Container>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default Hero
|
1
components/ui/Hero/index.ts
Normal file
1
components/ui/Hero/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export { default } from './Hero'
|
21
components/ui/Marquee/Marquee.module.css
Normal file
21
components/ui/Marquee/Marquee.module.css
Normal file
@ -0,0 +1,21 @@
|
||||
.root {
|
||||
@apply w-full relative;
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.container {
|
||||
@apply flex flex-row;
|
||||
|
||||
& > * {
|
||||
@apply flex-1;
|
||||
min-width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.primary {
|
||||
@apply bg-white;
|
||||
}
|
||||
|
||||
.secondary {
|
||||
@apply bg-black;
|
||||
}
|
57
components/ui/Marquee/Marquee.tsx
Normal file
57
components/ui/Marquee/Marquee.tsx
Normal file
@ -0,0 +1,57 @@
|
||||
import cn from 'classnames'
|
||||
import s from './Marquee.module.css'
|
||||
import { FC } from 'react'
|
||||
import Ticker from 'react-ticker'
|
||||
|
||||
interface Props {
|
||||
className?: string
|
||||
children?: any
|
||||
items: any[]
|
||||
wrapper?: React.Component | any
|
||||
variant?: 'primary' | 'secondary'
|
||||
}
|
||||
|
||||
const DefaultWrapper: FC<Props> = ({ children }) => <div>{children}</div> // DEFAULT PRODUCT WRAPPER
|
||||
|
||||
const M: FC<Props> = ({
|
||||
className = '',
|
||||
items,
|
||||
wrapper: Component = DefaultWrapper,
|
||||
variant = 'primary',
|
||||
min = 'none',
|
||||
}) => {
|
||||
const rootClassName = cn(
|
||||
s.root,
|
||||
{
|
||||
[s.primary]: variant === 'primary',
|
||||
[s.secondary]: variant === 'secondary',
|
||||
},
|
||||
className
|
||||
)
|
||||
|
||||
// return (
|
||||
// <div className={rootClassName}>
|
||||
// <div className={s.container}>
|
||||
// {items.map((p: any) => (
|
||||
// <Component {...p} />
|
||||
// ))}
|
||||
// </div>
|
||||
// </div>
|
||||
// )
|
||||
|
||||
return (
|
||||
<Ticker>
|
||||
{({ index }) => (
|
||||
<div className={rootClassName}>
|
||||
<div className={s.container}>
|
||||
{items.map((p: any) => (
|
||||
<Component {...p} key={index} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</Ticker>
|
||||
)
|
||||
}
|
||||
|
||||
export default M
|
1
components/ui/Marquee/index.ts
Normal file
1
components/ui/Marquee/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export { default } from './Marquee'
|
@ -2,3 +2,6 @@ export { default as Button } from './Button'
|
||||
export { default as Container } from './Container'
|
||||
export { default as Sidebar } from './Sidebar'
|
||||
export { default as Logo } from './Logo'
|
||||
export { default as Grid } from './Grid'
|
||||
export { default as Marquee } from './Marquee'
|
||||
export { default as Hero } from './Hero'
|
||||
|
@ -25,10 +25,10 @@
|
||||
"js-cookie": "^2.2.1",
|
||||
"lodash": "^4.17.20",
|
||||
"next": "^9.5.4-canary.23",
|
||||
"postcss-nested": "^5.0.1",
|
||||
"postcss-nesting": "^7.0.1",
|
||||
"react": "^16.13.1",
|
||||
"react-dom": "^16.13.1",
|
||||
"react-ticker": "^1.2.2",
|
||||
"swr": "^0.3.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
122
pages/index.tsx
122
pages/index.tsx
@ -1,12 +1,13 @@
|
||||
import { GetStaticPropsContext, InferGetStaticPropsType } from 'next'
|
||||
import getAllProducts from '@lib/bigcommerce/api/operations/get-all-products'
|
||||
import { Layout } from '@components/core'
|
||||
import { ProductGrid } from '@components/product'
|
||||
import { Grid, Marquee, Hero } from '@components/ui'
|
||||
import { ProductCard } from '@components/product'
|
||||
|
||||
export async function getStaticProps({ preview }: GetStaticPropsContext) {
|
||||
const { products } = await getAllProducts()
|
||||
return {
|
||||
props: { products: products.slice(0, 6) },
|
||||
props: { products },
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,18 +16,113 @@ export default function Home({
|
||||
}: InferGetStaticPropsType<typeof getStaticProps>) {
|
||||
return (
|
||||
<>
|
||||
<ProductGrid
|
||||
products={[
|
||||
...products,
|
||||
...products,
|
||||
...products,
|
||||
...products,
|
||||
...products,
|
||||
...products,
|
||||
]}
|
||||
<Grid items={products.slice(0, 3)} wrapper={ProductCard} />
|
||||
<Hero
|
||||
headline="Release Details: The Yeezy BOOST 350 V2 ‘Natural'"
|
||||
description="
|
||||
The Yeezy BOOST 350 V2 lineup continues to grow. We recently had the
|
||||
‘Carbon’ iteration, and now release details have been locked in for
|
||||
this ‘Natural’ joint. Revealed by Yeezy Mafia earlier this year, the
|
||||
shoe was originally called ‘Abez’, which translated to ‘Tin’ in
|
||||
Hebrew. It’s now undergone a name change, and will be referred to as
|
||||
‘Natural’."
|
||||
/>
|
||||
<div>asdsasad</div>
|
||||
<ProductGrid products={products.slice(3)} />
|
||||
<Marquee
|
||||
items={[...products.slice(0, 3)]}
|
||||
wrapper={(p: any) => (
|
||||
<div className="relative overflow-hidden p-6 box-border">
|
||||
<img
|
||||
className="object-scale-down h-24"
|
||||
src={p.node.images.edges[0].node.urlSmall}
|
||||
/>
|
||||
<div className="absolute inset-0 flex items-center justify-end mr-8">
|
||||
<span className="bg-black text-white inline-block p-3 font-bold text-xl break-words">
|
||||
{p.node.name}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
/>
|
||||
<Grid items={products.slice(3, 6)} layout="B" wrapper={ProductCard} />
|
||||
<Marquee
|
||||
variant="secondary"
|
||||
items={products.slice(0, 3)}
|
||||
wrapper={() => (
|
||||
<div className="flex">
|
||||
<h3 className="bg-black text-white inline p-2 px-3 font-bold text-2xl">
|
||||
This is a very short title
|
||||
</h3>
|
||||
</div>
|
||||
)}
|
||||
/>
|
||||
|
||||
<div className="py-12 max-h-80">
|
||||
<div className="break-word w-24">
|
||||
ALL CATEGORIES ACCESSORIES BAGS CLOTHING SHOES ALL DESIGNERS 032c 1017
|
||||
ALYX 9SM 11 by Boris Bidjan Saberi 132 5. ISSEY MIYAKE 3.1 Phillip Lim
|
||||
424 99% IS A-COLD-WALL* A.P.C. AAPE by A Bathing Ape Acne Studios
|
||||
ACRONYM adidas Originals adidas Originals x Pharrell Williams Affix
|
||||
AGR Ahluwalia Aimé Leon Dore Alan Crocetti Alexander McQueen All Blues
|
||||
Ambush AMI Alexandre Mattiussi Amiri Andersson Bell Ann Demeulemeester
|
||||
Aries Article No. Asics Awake NY Axel Arigato Balenciaga Balmain Bao
|
||||
Bao Issey Miyake BAPE Barena Bather BEAMS PLUS Belstaff Benjamin Edgar
|
||||
Bianca Saunders Billionaire Boys Club Blackmerle Bless Bleue Burnham
|
||||
Bode Boris Bidjan Saberi Boss both Bottega Veneta Brain Dead Brioni
|
||||
Burberry C.P. Company C2H4 Calvin Klein Underwear Canada Goose
|
||||
Carhartt Work In Progress Carlota Barrera Carne Bollente Casablanca
|
||||
Castañer CDLP Charles Jeffrey Loverboy Chemist Creations Chin Teo
|
||||
Christian Louboutin Clarks Originals Coach 1941 Comme des Garçons
|
||||
Homme Comme des Garçons Homme Deux Comme des Garçons Homme Plus Comme
|
||||
des Garçons Play Comme des Garçons Shirt Comme des Garçons Wallets
|
||||
Common Projects Converse Cornerstone Côte & Ciel Craig Green Cutler
|
||||
And Gross Daniel W. Fletcher Dear Letterman Diesel Diesel Red Tag Dion
|
||||
Lee Dior Homme District Vision Dita Dolce & Gabbana Double Rainbouu
|
||||
Doublet Dr. Martens Drake's Dries Van Noten Dsquared2 Dunhill Eastpak
|
||||
Eastwood Danso Eidos Emanuele Bicocchi Enfants Riches Déprimés
|
||||
Ermenegildo Zegna Essentials Etro Études Eytys Fear of God Fendi Feng
|
||||
Chen Wang Frame FREI-MUT Frenckenberger Fumito Ganryu Garrett Leight
|
||||
GCDS Georges Wendell Giorgio Armani Giuseppe Zanotti Givenchy GmbH
|
||||
Golden Goose Goodfight GR10K Greg Lauren Grey Ant Gucci Guidi Haider
|
||||
Ackermann Han Kjobenhavn Harmony Harris Wharf London Hatton Labs
|
||||
Helmut Lang Herno Heron Preston Hoka One One Homme Plissé Issey Miyake
|
||||
Hugo Human Recreational Services Husbands IN GOLD WE TRUST PARIS
|
||||
Innerraum Isabel Benenato Isabel Marant Issey Miyake Men Jacquemus
|
||||
JACQUES Jan-Jan Van Essche JERIH Jil Sander John Elliott
|
||||
Johnlawrencesullivan Julius Junghans Junya Watanabe Juun.J JW Anderson
|
||||
Kanuk Kara Kassl Editions Keenkee Kenzo Kiko Kostadinov Ksubi Kuboraum
|
||||
Lacoste Landlord Lanvin Le Gramme Lemaire Levi's Levi's Made & Crafted
|
||||
Levi's Vintage Clothing Loewe Ludovic de Saint Sernin Mackage Maison
|
||||
Kitsuné Maison Margiela Malibu Sandals Marc Jacobs Marcelo Burlon
|
||||
County of Milan Marine Serre Marni Marsèll Martin Asbjorn Martine Ali
|
||||
Martine Rose Master & Dynamic Master-Piece Co mastermind WORLD Matsuda
|
||||
Maximum Henry MCQ McQ Alexander McQueen Miharayasuhiro MISBHV Missoni
|
||||
Molly Goddard Moncler Moncler Genius Moncler Grenoble Moschino Moussy
|
||||
Vintage Mowalola Mr & Mrs Italy MSGM Mugler Museum of Peace & Quiet
|
||||
Mykita N.Hoolywood Naked & Famous Denim NAMESAKE Nanamica Nanushka
|
||||
Needles Neighborhood Neil Barrett New Balance Nicholas Daley Nike ACG
|
||||
Noah NYC nonnative Noon Goons Norse Projects Nudie Jeans OAMC
|
||||
Off-White Officine Creative Officine Générale Oliver Peoples Oliver
|
||||
Peoples The Row Opening Ceremony Our Legacy Paco Rabanne Palm Angels
|
||||
Parajumpers Paul Smith Pearls Before Swine Perks and Mini Persol
|
||||
Phipps Polo Ralph Lauren Port Tanger PS by Paul Smith Pyer Moss R13
|
||||
RAEN Raf Simons rag & bone Random Identities Ray-Ban Re/Done Reebok
|
||||
Classics RETROSUPERFUTURE Rhude Rick Owens Rick Owens Drkshdw ROA
|
||||
Robert Geller Rochambeau S.R. STUDIO. LA. CA. Sacai Saint Laurent
|
||||
Salomon Salvatore Ferragamo Sankuanz Sasquatchfabrix. Satisfy
|
||||
Saturdays NYC Saul Nash Sean Suen Second/Layer Shinola Sies Marjan
|
||||
Snow Peak Solid Homme Song for the Mute St-Henri Stay Made Stella
|
||||
McCartney Stolen Girlfriends Club Stone Island Stone Island Shadow
|
||||
Project Stüssy Stutterheim Suicoke Sulvam Sunflower Sunspel
|
||||
SWEETLIMEJUICE TAKAHIROMIYASHITA TheSoloist. Tekla Telfar The Elder
|
||||
Statesman The North Face The Row The Very Warm The Viridi-anne Thom
|
||||
Browne Tibi Tiger of Sweden Tiger of Sweden Jeans Toga Virilis Tom
|
||||
Ford Tom Wood Toogood Ugo Cacciatori Undercover Valentino Vans
|
||||
Veilance Versace Versace Jeans Couture Versace Underwear VETEMENTS VIP
|
||||
Visvim VIU Vyner Articles WACKO MARIA We11done Wood Wood Wooyoungmi
|
||||
WWW.WILLSHOTT Xander Zhou Y-3 Y/Project Yohji Yamamoto Yves Salomon
|
||||
Yves Salomon - Army Z Zegna
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
76
yarn.lock
76
yarn.lock
@ -3077,6 +3077,11 @@ des.js@^1.0.0:
|
||||
inherits "^2.0.1"
|
||||
minimalistic-assert "^1.0.0"
|
||||
|
||||
desandro-matches-selector@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz#717beed4dc13e7d8f3762f707a6d58a6774218e1"
|
||||
integrity sha1-cXvu1NwT59jzdi9wem1YpndCGOE=
|
||||
|
||||
detect-indent@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd"
|
||||
@ -3390,6 +3395,11 @@ esutils@^2.0.2:
|
||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
|
||||
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
|
||||
|
||||
ev-emitter@^1.0.0, ev-emitter@^1.0.1, ev-emitter@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a"
|
||||
integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==
|
||||
|
||||
event-target-shim@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
|
||||
@ -3607,11 +3617,30 @@ find-up@^4.0.0, find-up@^4.1.0:
|
||||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
fizzy-ui-utils@^2.0.7:
|
||||
version "2.0.7"
|
||||
resolved "https://registry.yarnpkg.com/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz#7df45dcc4eb374a08b65d39bb9a4beedf7330505"
|
||||
integrity sha512-CZXDVXQ1If3/r8s0T+v+qVeMshhfcuq0rqIFgJnrtd+Bu8GmDmqMjntjUePypVtjHXKJ6V4sw9zeyox34n9aCg==
|
||||
dependencies:
|
||||
desandro-matches-selector "^2.0.0"
|
||||
|
||||
flatten@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b"
|
||||
integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==
|
||||
|
||||
flickity@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/flickity/-/flickity-2.2.1.tgz#81126e3d656cb54577358a5f959ffdbda088e670"
|
||||
integrity sha512-fCZJGNqabgDrIhaUBqt2ydE8c5V6iiB3KQAf6dH3Z45MoDUm7g6+uZmteN0aLV9pzVItNqCbfOJQjsJM/rHuSA==
|
||||
dependencies:
|
||||
desandro-matches-selector "^2.0.0"
|
||||
ev-emitter "^1.1.1"
|
||||
fizzy-ui-utils "^2.0.7"
|
||||
get-size "^2.0.3"
|
||||
unidragger "^2.3.0"
|
||||
unipointer "^2.3.0"
|
||||
|
||||
for-in@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
|
||||
@ -3706,6 +3735,11 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-size@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/get-size/-/get-size-2.0.3.tgz#54a1d0256b20ea7ac646516756202769941ad2ef"
|
||||
integrity sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==
|
||||
|
||||
get-stream@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
|
||||
@ -4024,6 +4058,13 @@ ignore@^5.1.4:
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
|
||||
integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
|
||||
|
||||
imagesloaded@^4.1.4:
|
||||
version "4.1.4"
|
||||
resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7"
|
||||
integrity sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA==
|
||||
dependencies:
|
||||
ev-emitter "^1.0.0"
|
||||
|
||||
immutable@~3.7.6:
|
||||
version "3.7.6"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.7.6.tgz#13b4d3cb12befa15482a26fe1b2ebae640071e4b"
|
||||
@ -5971,7 +6012,7 @@ promise@^7.1.1:
|
||||
dependencies:
|
||||
asap "~2.0.3"
|
||||
|
||||
prop-types@15.7.2, prop-types@^15.6.2:
|
||||
prop-types@15.7.2, prop-types@^15.6.2, prop-types@^15.7.2:
|
||||
version "15.7.2"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
|
||||
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
|
||||
@ -6065,16 +6106,35 @@ react-dom@^16.13.1:
|
||||
prop-types "^15.6.2"
|
||||
scheduler "^0.19.1"
|
||||
|
||||
react-flickity-component@^3.5.0:
|
||||
version "3.5.0"
|
||||
resolved "https://registry.yarnpkg.com/react-flickity-component/-/react-flickity-component-3.5.0.tgz#cc4d5ae2dcd8a37c3b95775946d7f4ae7843ea1a"
|
||||
integrity sha512-79REAm9HRT7R+ksLA1kqzPqlntrzD7JBortIAKRoC36/BgXBfzOOF99tCGvptZvew0bMrHTkEzsFv9iSfW6wbA==
|
||||
dependencies:
|
||||
fbjs "^1.0.0"
|
||||
imagesloaded "^4.1.4"
|
||||
prop-types "^15.7.2"
|
||||
|
||||
react-is@16.13.1, react-is@^16.8.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
react-marquee-slider@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/react-marquee-slider/-/react-marquee-slider-1.1.2.tgz#a3df0201d17ee7b20627944c7efd8af78522bc6d"
|
||||
integrity sha512-Fjkwphr+vYqR4yJ9adv0rJgFsKeb5/kx35lA5gVdPFiBDno6r/nHVRg/gdGVLp/SF4dHwoJwZBwa4mKTOpHnqQ==
|
||||
|
||||
react-refresh@0.8.3:
|
||||
version "0.8.3"
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
|
||||
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
|
||||
|
||||
react-ticker@^1.2.2:
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/react-ticker/-/react-ticker-1.2.2.tgz#12cda5ff8266c6fe90ffcd8c58e12ba1596ddf24"
|
||||
integrity sha512-PXUujoPJvajxwOfosuuujlrBUrjgGp4FB4haWFOI25ujhMppW4SuLkiOdQ9AylrWN3yTHWdk2kbQWe3n9SjFGA==
|
||||
|
||||
react@^16.13.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
|
||||
@ -7119,6 +7179,13 @@ unicode-property-aliases-ecmascript@^1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
|
||||
integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
|
||||
|
||||
unidragger@^2.3.0:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/unidragger/-/unidragger-2.3.1.tgz#2e8c34feff61affa96dc895234ddfc1ea4ec7515"
|
||||
integrity sha512-u+IgG7AG0MXJTKcdzAIYxCm+W5FcnA9M28203Awl6jIcE3/+9OtEyUX4Wv64y7XNKEVRKPot52IV4V6x7FlF5Q==
|
||||
dependencies:
|
||||
unipointer "^2.3.0"
|
||||
|
||||
union-value@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
|
||||
@ -7129,6 +7196,13 @@ union-value@^1.0.0:
|
||||
is-extendable "^0.1.1"
|
||||
set-value "^2.0.1"
|
||||
|
||||
unipointer@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/unipointer/-/unipointer-2.3.0.tgz#ba0dc462ce31c2a88e80810e19c3bae0ce47ed9f"
|
||||
integrity sha512-m85sAoELCZhogI1owtJV3Dva7GxkHk2lI7A0otw3o0OwCuC/Q9gi7ehddigEYIAYbhkqNdri+dU1QQkrcBvirQ==
|
||||
dependencies:
|
||||
ev-emitter "^1.0.1"
|
||||
|
||||
uniq@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
|
||||
|
Loading…
x
Reference in New Issue
Block a user