@luxfi/core 4.3.14 → 4.3.17
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/components/commerce/bag-button.tsx +1 -1
- package/components/commerce/checkout-panel/close-button.tsx +4 -1
- package/components/commerce/checkout-panel/dt-checkout-panel.tsx +41 -27
- package/components/commerce/checkout-panel/index.tsx +12 -3
- package/components/commerce/checkout-panel/links-row.tsx +2 -2
- package/components/commerce/checkout-panel/mb-checkout-panel.tsx +21 -12
- package/components/commerce/desktop-bag-popup.tsx +1 -1
- package/components/commerce/mobile-bag-drawer.tsx +1 -1
- package/components/icons/bag-icon.tsx +2 -2
- package/next/font/load-and-return-lux-next-fonts-on-import.ts +1 -7
- package/package.json +1 -1
- package/next/font/local/GeistMonoVF.ttf +0 -0
- package/next/font/local/GeistMonoVF.woff +0 -0
- package/next/font/local/GeistMonoVF.woff2 +0 -0
- package/next/font/local/GeistVF.ttf +0 -0
- package/next/font/local/GeistVF.woff +0 -0
- package/next/font/local/GeistVF.woff2 +0 -0
@@ -47,7 +47,7 @@ const BagButton: React.FC<{
|
|
47
47
|
<div className={
|
48
48
|
'z-above-content flex flex-col justify-center items-center ' +
|
49
49
|
'absolute left-0 right-0 top-0 bottom-0 ' +
|
50
|
-
'leading-none font-sans font-bold text-
|
50
|
+
'leading-none font-sans font-bold text-foreground text-xs '
|
51
51
|
}>
|
52
52
|
<div className='h-[3px] w-full' />
|
53
53
|
<div>{c.cartQuantity}</div>
|
@@ -4,19 +4,22 @@ import React from 'react'
|
|
4
4
|
import { cn } from '@hanzo/ui/util'
|
5
5
|
|
6
6
|
import Logo from '../../logo'
|
7
|
+
import type { TShirtSize } from '@hanzo/ui/types'
|
7
8
|
|
8
9
|
const CloseButton: React.FC<{
|
9
10
|
close: () => void
|
11
|
+
size?: TShirtSize
|
10
12
|
className?: string
|
11
13
|
}> = ({
|
12
14
|
close,
|
15
|
+
size,
|
13
16
|
className=''
|
14
17
|
}) => (
|
15
18
|
<div
|
16
19
|
onClick={close}
|
17
20
|
className={cn('md:self-start', className)}
|
18
21
|
>
|
19
|
-
<Logo layout='text-only' href='/'/>
|
22
|
+
<Logo layout='text-only' href='/' size={size}/>
|
20
23
|
</div>
|
21
24
|
)
|
22
25
|
|
@@ -1,53 +1,67 @@
|
|
1
1
|
'use client'
|
2
|
-
|
3
2
|
import React, { type PropsWithChildren } from 'react'
|
4
3
|
|
5
|
-
import { StepIndicator } from '@hanzo/ui/primitives'
|
6
|
-
import {
|
4
|
+
import { ScrollArea, StepIndicator } from '@hanzo/ui/primitives'
|
5
|
+
import { AuthWidget } from '@hanzo/auth/components'
|
7
6
|
import { CartPanel } from '@hanzo/commerce'
|
8
7
|
|
9
8
|
import * as Icons from '../../icons'
|
10
9
|
import DesktopBagCarousel from './dt-bag-carousel'
|
10
|
+
import CloseButton from './close-button'
|
11
|
+
import { cn } from '@hanzo/ui/util'
|
12
|
+
import LinksRow from './links-row'
|
11
13
|
|
12
14
|
const DesktopCheckoutPanel: React.FC<PropsWithChildren & {
|
13
15
|
index: number
|
14
16
|
stepNames: string[]
|
17
|
+
close:() => void
|
15
18
|
className?: string
|
16
19
|
}> = ({
|
17
20
|
index,
|
18
21
|
stepNames,
|
22
|
+
close,
|
19
23
|
className='',
|
20
24
|
children
|
21
25
|
}) => (
|
22
26
|
|
23
27
|
<div /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', className)}>
|
24
|
-
<div className='w-full h-full flex flex-
|
25
|
-
<div className='flex items-center justify-
|
26
|
-
<
|
27
|
-
<
|
28
|
+
<div className='w-full h-full bg-background flex flex-row items-start justify-end'>
|
29
|
+
<div className='w-full max-w-[750px] relative flex flex-col items-center justify-start p-8'>
|
30
|
+
<CloseButton close={close} size='md'/>
|
31
|
+
<div className='w-full max-w-[550px] mx-auto flex flex-col gap-3'>
|
32
|
+
<DesktopBagCarousel className='h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
|
33
|
+
<CartPanel
|
34
|
+
className='w-full border-none p-0'
|
35
|
+
itemClx='mb-3'
|
36
|
+
totalClx='sticky -bottom-1 p-1 bg-background'
|
37
|
+
listClx='pr-3'
|
38
|
+
scrollAfter={5}
|
39
|
+
scrollHeightClx='h-[50vh]'
|
40
|
+
showPromoCode
|
41
|
+
showShipping
|
42
|
+
/>
|
43
|
+
</div>
|
28
44
|
</div>
|
29
|
-
<DesktopBagCarousel className='mx-auto' constrainTo={{w: 250, h: 250}}/>
|
30
|
-
<CartPanel
|
31
|
-
className='w-full border-none p-0 pr-3'
|
32
|
-
itemClx='mb-3'
|
33
|
-
totalClx='sticky -bottom-1 p-1 bg-background'
|
34
|
-
scrollAfter={5}
|
35
|
-
scrollHeightClx='h-[45vh]'
|
36
|
-
selectItems
|
37
|
-
showPromoCode
|
38
|
-
showShipping
|
39
|
-
/>
|
40
45
|
</div>
|
41
|
-
<div className='w-full h-full flex flex-col
|
42
|
-
<
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
<div className='w-full h-full flex flex-col bg-level-1 min-h-screen justify-between'>
|
47
|
+
<ScrollArea className='w-full flex flex-row items-start justify-start overflow-y-auto'>
|
48
|
+
<div className='h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
49
|
+
<div className='bg-level-1 sticky h-30 pb-8 w-full top-0 flex justify-center items-end'>
|
50
|
+
<AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
|
51
|
+
<StepIndicator dotSizeRem={1.5} steps={stepNames} currentStep={index} className='gap-2 text-base w-pr-70' />
|
52
|
+
</div>
|
53
|
+
<div className='w-full max-w-[550px] mx-auto pb-10'>
|
54
|
+
{children}
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
</ScrollArea>
|
58
|
+
<div className='w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
59
|
+
<div className='w-full max-w-[550px] mx-auto flex flex-col items-center'>
|
60
|
+
<LinksRow className='w-full' />
|
61
|
+
</div>
|
62
|
+
</div>
|
49
63
|
</div>
|
50
64
|
</div>
|
51
65
|
)
|
52
66
|
|
53
|
-
export default DesktopCheckoutPanel
|
67
|
+
export default DesktopCheckoutPanel
|
@@ -30,8 +30,10 @@ import DesktopCP from './dt-checkout-panel'
|
|
30
30
|
import MobileCP from './mb-checkout-panel'
|
31
31
|
|
32
32
|
const CheckoutPanel: React.FC<{
|
33
|
+
close: () => void
|
33
34
|
className?: string
|
34
35
|
}> = ({
|
36
|
+
close,
|
35
37
|
className=''
|
36
38
|
}) => {
|
37
39
|
|
@@ -72,6 +74,11 @@ const CheckoutPanel: React.FC<{
|
|
72
74
|
}
|
73
75
|
}
|
74
76
|
|
77
|
+
const _close = () => {
|
78
|
+
setStep('first')
|
79
|
+
close()
|
80
|
+
}
|
81
|
+
|
75
82
|
// Determine if mobile or desktop based on visibility of desktopElement
|
76
83
|
// https://stackoverflow.com/a/21696585/11378853
|
77
84
|
const desktopElement = useRef<HTMLDivElement | null>(null)
|
@@ -90,11 +97,12 @@ const CheckoutPanel: React.FC<{
|
|
90
97
|
}
|
91
98
|
}, [])
|
92
99
|
|
93
|
-
const StepToRender = STEPS[stepIndex].Comp
|
100
|
+
const StepToRender = STEPS[stepIndex].Comp
|
94
101
|
|
95
102
|
return (<>
|
96
103
|
<DesktopCP
|
97
|
-
className={cn('h-full', className, 'hidden md:
|
104
|
+
className={cn('h-full', className, 'hidden md:flex')}
|
105
|
+
close={_close}
|
98
106
|
index={stepIndex}
|
99
107
|
stepNames={STEP_NAMES}
|
100
108
|
>
|
@@ -104,6 +112,7 @@ const CheckoutPanel: React.FC<{
|
|
104
112
|
</DesktopCP>
|
105
113
|
<MobileCP
|
106
114
|
className={cn('h-full overflow-y-auto', className, 'md:hidden' )}
|
115
|
+
close={_close}
|
107
116
|
index={stepIndex}
|
108
117
|
stepNames={STEP_NAMES}
|
109
118
|
>
|
@@ -112,4 +121,4 @@ const CheckoutPanel: React.FC<{
|
|
112
121
|
</>)
|
113
122
|
}
|
114
123
|
|
115
|
-
export default CheckoutPanel
|
124
|
+
export default CheckoutPanel
|
@@ -9,8 +9,8 @@ const LinksRow: React.FC<{
|
|
9
9
|
className=''
|
10
10
|
}) => (
|
11
11
|
<div className={cn('flex flex-col', className)}>
|
12
|
-
<Separator
|
13
|
-
<div className='flex gap-4 text-sm'>
|
12
|
+
<Separator/>
|
13
|
+
<div className='flex gap-4 text-sm py-2'>
|
14
14
|
{/* TODO: add Refund policy and Privacy policy links */}
|
15
15
|
<Link href=''>Refund policy</Link>
|
16
16
|
<Link href=''>Privacy policy</Link>
|
@@ -1,32 +1,34 @@
|
|
1
1
|
'use client'
|
2
|
-
|
3
2
|
import React, { type PropsWithChildren } from 'react'
|
4
3
|
|
4
|
+
import { StepIndicator } from '@hanzo/ui/primitives'
|
5
5
|
import { cn } from '@hanzo/ui/util'
|
6
|
+
import { AuthWidget } from '@hanzo/auth/components'
|
6
7
|
import { CartAccordian } from '@hanzo/commerce'
|
7
8
|
|
9
|
+
import CloseButton from './close-button'
|
8
10
|
import BagButton from '../bag-button'
|
9
|
-
import
|
11
|
+
import LinksRow from './links-row'
|
10
12
|
|
11
13
|
const MobileCheckoutPanel: React.FC<PropsWithChildren & {
|
12
14
|
index: number
|
13
15
|
stepNames: string[]
|
16
|
+
close:() => void
|
14
17
|
className?: string
|
15
18
|
}> = ({
|
16
19
|
index,
|
17
20
|
stepNames,
|
21
|
+
close,
|
18
22
|
className='',
|
19
23
|
children
|
20
24
|
}) => (
|
21
25
|
|
22
|
-
<div /* id='MOBILE_GRID' */ className={cn('flex flex-col
|
23
|
-
<
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
muted
|
29
|
-
/>
|
26
|
+
<div /* id='MOBILE_GRID' */ className={cn('bg-background flex flex-col justify-start px-4', className)}>
|
27
|
+
<div className='sticky top-0 w-full flex flex-row justify-between items-center bg-background'>
|
28
|
+
<CloseButton close={close} size='xs' />
|
29
|
+
{/* Need wrapper div since 'noLogin' returns null if no logged in user */}
|
30
|
+
<div className='w-10 h-10 flex items-center justify-center'><AuthWidget noLogin className=''/></div>
|
31
|
+
</div>
|
30
32
|
<CartAccordian
|
31
33
|
icon={
|
32
34
|
<BagButton
|
@@ -38,10 +40,17 @@ const MobileCheckoutPanel: React.FC<PropsWithChildren & {
|
|
38
40
|
iconClx='fill-foreground '
|
39
41
|
/>
|
40
42
|
}
|
41
|
-
className='flex items-center justify-center
|
43
|
+
className='flex items-center justify-center w-full'
|
44
|
+
/>
|
45
|
+
<StepIndicator
|
46
|
+
dotSizeRem={1}
|
47
|
+
steps={stepNames}
|
48
|
+
currentStep={index}
|
49
|
+
className='text-xs font-semibold w-full pb-3'
|
42
50
|
/>
|
43
51
|
{children}
|
52
|
+
<LinksRow className='mt-auto mb-3 pt-2' />
|
44
53
|
</div>
|
45
54
|
)
|
46
55
|
|
47
|
-
export default MobileCheckoutPanel
|
56
|
+
export default MobileCheckoutPanel
|
@@ -57,7 +57,7 @@ const DesktopBagPopup: React.FC<{
|
|
57
57
|
<CartPanel
|
58
58
|
handleCheckout={() => {router.push('/checkout')}}
|
59
59
|
className='mt-4 mb-4 border-none py-0 px-4'
|
60
|
-
listClx='rounded-sm'
|
60
|
+
listClx='rounded-sm pr-3'
|
61
61
|
scrollAfter={5}
|
62
62
|
scrollHeightClx='h-[70vh]'
|
63
63
|
itemClx='mt-3'
|
@@ -25,7 +25,7 @@ const MobileBagDrawer: React.FC<{
|
|
25
25
|
<CartPanel
|
26
26
|
handleCheckout={handleCheckout}
|
27
27
|
className='mt-4 mb-4 border-none py-0 px-4 w-full '
|
28
|
-
listClx='rounded-sm'
|
28
|
+
listClx='rounded-sm pr-3'
|
29
29
|
scrollAfter={5}
|
30
30
|
itemClx='mt-2'
|
31
31
|
totalClx='sticky px-1 pr-2 border rounded-sm -bottom-[1px] bg-background'
|
@@ -2,8 +2,8 @@ import React from 'react'
|
|
2
2
|
import { type LucideProps } from 'lucide-react'
|
3
3
|
|
4
4
|
const BagIcon: React.FC<LucideProps> = (props: LucideProps) => (
|
5
|
-
<svg fill="
|
6
|
-
<path
|
5
|
+
<svg fill="none" viewBox="0 0 15 18" {...props}>
|
6
|
+
<path d="m13.6501 5.19282h-2.3255v-.82146c0-2.01258-1.74959-3.634971-3.87568-3.634971s-3.87572 1.622401-3.87572 3.634971v.82146h-2.32543c-.31008 0-.553678.22588-.553678.51341v10.26827c0 .7393.642278 1.3349 1.439548 1.3349h10.63056c.7973 0 1.4395-.5956 1.4395-1.3349v-10.26827c0-.28753-.2436-.51341-.5536-.51341zm-8.96955-.84198c0-1.43756 1.24021-2.60814 2.76837-2.60814 1.52815 0 2.76838 1.17055 2.76838 2.60814v.82146h-5.53675zm8.08365 11.93176h-10.63056c-.1772 0-.3322-.1438-.3322-.3081v-9.75484h1.77176v2.83405c0 .28753.2436.51341.55367.51341.31008 0 .55368-.22588.55368-.51341v-2.83405h5.53675v2.83405c0 .28753.2436.51341.5537.51341.31 0 .5536-.22588.5536-.51341v-2.83405h1.7718v9.75484c0 .1643-.155.3081-.3322.3081z" fill="currentColor"/>
|
7
7
|
</svg>
|
8
8
|
)
|
9
9
|
|
@@ -33,17 +33,11 @@ const drukWide = localFont({
|
|
33
33
|
})
|
34
34
|
|
35
35
|
const inter = localFont({
|
36
|
-
src: './local/
|
36
|
+
src: './local/InterVariable.ttf',
|
37
37
|
display: 'swap',
|
38
38
|
variable: '--font-inter',
|
39
39
|
})
|
40
40
|
|
41
|
-
//const inter = localFont({
|
42
|
-
// src: './local/InterVariable.ttf',
|
43
|
-
// display: 'swap',
|
44
|
-
// variable: '--font-inter',
|
45
|
-
//})
|
46
|
-
|
47
41
|
export default [
|
48
42
|
{
|
49
43
|
font: inter,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@luxfi/core",
|
3
|
-
"version": "4.3.
|
3
|
+
"version": "4.3.17",
|
4
4
|
"description": "Library that contains shared UI primitives, support for a common design system, and other boilerplate support.",
|
5
5
|
"publishConfig": {
|
6
6
|
"registry": "https://registry.npmjs.org/",
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|