@luxfi/core 4.3.11 → 4.3.13
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/auth/login-panel.tsx +6 -3
- package/components/commerce/checkout-panel/dt-checkout-panel.tsx +26 -41
- package/components/commerce/checkout-panel/index.tsx +1 -10
- package/components/commerce/checkout-panel/mb-checkout-panel.tsx +10 -14
- package/package.json +4 -4
- package/site-def/footer/legal.ts +2 -2
@@ -7,6 +7,7 @@ import { LoginPanel as Login } from '@hanzo/auth/components'
|
|
7
7
|
|
8
8
|
import { Logo } from '..'
|
9
9
|
import LuxLogo from '../icons/lux-logo'
|
10
|
+
import { legal } from '../../site-def/footer'
|
10
11
|
|
11
12
|
const LoginPanel: React.FC<{
|
12
13
|
close: () => void
|
@@ -21,6 +22,9 @@ const LoginPanel: React.FC<{
|
|
21
22
|
className='',
|
22
23
|
reviews
|
23
24
|
}) => {
|
25
|
+
const termsOfServiceUrl = legal.find(({title}) => title === 'Terms and Conditions')?.href || ''
|
26
|
+
const privacyPolicyUrl = legal.find(({title}) => title === 'Privacy Policy')?.href || ''
|
27
|
+
|
24
28
|
return (
|
25
29
|
<div className={cn('grid grid-cols-1 md:grid-cols-2', className)}>
|
26
30
|
<div className='hidden md:flex w-full h-full bg-level-1 flex-row items-end justify-end overflow-y-auto min-h-screen'>
|
@@ -62,13 +66,12 @@ const LoginPanel: React.FC<{
|
|
62
66
|
>
|
63
67
|
<LuxLogo className='w-5 h-5'/>
|
64
68
|
</Button>
|
65
|
-
{/* TODO: add Terms of Service and Privacy Policy links */}
|
66
69
|
<Login
|
67
70
|
getStartedUrl={getStartedUrl}
|
68
71
|
redirectUrl={redirectUrl}
|
69
72
|
className='w-full max-w-sm'
|
70
|
-
termsOfServiceUrl=
|
71
|
-
privacyPolicyUrl=
|
73
|
+
termsOfServiceUrl={termsOfServiceUrl}
|
74
|
+
privacyPolicyUrl={privacyPolicyUrl}
|
72
75
|
/>
|
73
76
|
</div>
|
74
77
|
</div>
|
@@ -1,66 +1,51 @@
|
|
1
1
|
'use client'
|
2
|
+
|
2
3
|
import React, { type PropsWithChildren } from 'react'
|
3
4
|
|
4
|
-
import {
|
5
|
+
import { StepIndicator } from '@hanzo/ui/primitives'
|
5
6
|
import { cn } from '@hanzo/ui/util'
|
6
|
-
import { AuthWidget } from '@hanzo/auth/components'
|
7
7
|
import { CartPanel } from '@hanzo/commerce'
|
8
8
|
|
9
9
|
import * as Icons from '../../icons'
|
10
10
|
import DesktopBagCarousel from './dt-bag-carousel'
|
11
|
-
import CloseButton from './close-button'
|
12
|
-
import LinksRow from './links-row'
|
13
|
-
import StepsIndicator from './steps-indicator'
|
14
11
|
|
15
12
|
const DesktopCheckoutPanel: React.FC<PropsWithChildren & {
|
16
13
|
index: number
|
17
14
|
stepNames: string[]
|
18
|
-
close:() => void
|
19
15
|
className?: string
|
20
16
|
}> = ({
|
21
17
|
index,
|
22
18
|
stepNames,
|
23
|
-
close,
|
24
19
|
className='',
|
25
20
|
children
|
26
21
|
}) => (
|
27
22
|
|
28
23
|
<div /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', className)}>
|
29
|
-
<
|
30
|
-
<div className='
|
31
|
-
<
|
32
|
-
|
33
|
-
<div className='flex flex-col gap-3 h-30 justify-center'>
|
34
|
-
<CloseButton close={close} />
|
35
|
-
<StepsIndicator currentStep={index} stepNames={stepNames}/>
|
36
|
-
</div>
|
37
|
-
{children}
|
38
|
-
<LinksRow className='mt-auto mb-3' />
|
39
|
-
</div>
|
40
|
-
</div>
|
41
|
-
</div>
|
42
|
-
</ScrollArea>
|
43
|
-
<div className='w-full h-full bg-background flex flex-row items-start justify-start'>
|
44
|
-
<div className='w-full max-w-[750px] relative flex flex-col items-center justify-start px-8 pt-0'>
|
45
|
-
<AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
|
46
|
-
<div className='flex items-center justify-center h-30'>
|
47
|
-
<Icons.bag className='fill-foreground mr-2 relative -top-1 w-6 h-7'/>
|
48
|
-
<p className='font-heading text-default'>Order Summary</p>
|
49
|
-
</div>
|
50
|
-
<div className='w-full max-w-[550px] mx-auto'>
|
51
|
-
<DesktopBagCarousel className='h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
|
52
|
-
<CartPanel
|
53
|
-
className='w-full border-none p-0 pr-3'
|
54
|
-
itemClx='mb-3'
|
55
|
-
totalClx='sticky bottom-0 p-1 bg-background'
|
56
|
-
scrollAfter={5}
|
57
|
-
scrollHeightClx='h-[50vh]'
|
58
|
-
selectItems
|
59
|
-
showPromoCode
|
60
|
-
showShipping
|
61
|
-
/>
|
62
|
-
</div>
|
24
|
+
<div className='w-full h-full flex flex-col items-center py-8 px-10'>
|
25
|
+
<div className='flex items-center justify-center pt-2'>
|
26
|
+
<Icons.bag className='fill-foreground mr-2 relative -top-1 w-6 h-7'/>
|
27
|
+
<p className='font-heading text-default'>Order Summary</p>
|
63
28
|
</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
|
+
</div>
|
41
|
+
<div className='w-full h-full flex flex-col gap-3 min-h-screen items-center py-8 px-10 bg-level-1'>
|
42
|
+
<StepIndicator
|
43
|
+
dotSizeRem={1.2}
|
44
|
+
steps={stepNames}
|
45
|
+
currentStep={index}
|
46
|
+
className='gap-2 text-sm w-pr-70'
|
47
|
+
/>
|
48
|
+
{children}
|
64
49
|
</div>
|
65
50
|
</div>
|
66
51
|
)
|
@@ -30,10 +30,8 @@ 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
|
34
33
|
className?: string
|
35
34
|
}> = ({
|
36
|
-
close,
|
37
35
|
className=''
|
38
36
|
}) => {
|
39
37
|
|
@@ -74,11 +72,6 @@ const CheckoutPanel: React.FC<{
|
|
74
72
|
}
|
75
73
|
}
|
76
74
|
|
77
|
-
const _close = () => {
|
78
|
-
setStep('first')
|
79
|
-
close()
|
80
|
-
}
|
81
|
-
|
82
75
|
// Determine if mobile or desktop based on visibility of desktopElement
|
83
76
|
// https://stackoverflow.com/a/21696585/11378853
|
84
77
|
const desktopElement = useRef<HTMLDivElement | null>(null)
|
@@ -101,8 +94,7 @@ const CheckoutPanel: React.FC<{
|
|
101
94
|
|
102
95
|
return (<>
|
103
96
|
<DesktopCP
|
104
|
-
className={cn('h-full', className, 'hidden md:
|
105
|
-
close={_close}
|
97
|
+
className={cn('h-full', className, 'hidden md:grid')}
|
106
98
|
index={stepIndex}
|
107
99
|
stepNames={STEP_NAMES}
|
108
100
|
>
|
@@ -112,7 +104,6 @@ const CheckoutPanel: React.FC<{
|
|
112
104
|
</DesktopCP>
|
113
105
|
<MobileCP
|
114
106
|
className={cn('h-full overflow-y-auto', className, 'md:hidden' )}
|
115
|
-
close={_close}
|
116
107
|
index={stepIndex}
|
117
108
|
stepNames={STEP_NAMES}
|
118
109
|
>
|
@@ -1,35 +1,32 @@
|
|
1
1
|
'use client'
|
2
|
+
|
2
3
|
import React, { type PropsWithChildren } from 'react'
|
3
4
|
|
4
5
|
import { cn } from '@hanzo/ui/util'
|
5
|
-
import { AuthWidget } from '@hanzo/auth/components'
|
6
6
|
import { CartAccordian } from '@hanzo/commerce'
|
7
7
|
|
8
|
-
import CloseButton from './close-button'
|
9
8
|
import BagButton from '../bag-button'
|
10
|
-
import
|
11
|
-
import StepsIndicator from './steps-indicator'
|
9
|
+
import { StepIndicator } from '@hanzo/ui/primitives'
|
12
10
|
|
13
11
|
const MobileCheckoutPanel: React.FC<PropsWithChildren & {
|
14
12
|
index: number
|
15
13
|
stepNames: string[]
|
16
|
-
close:() => void
|
17
14
|
className?: string
|
18
15
|
}> = ({
|
19
16
|
index,
|
20
17
|
stepNames,
|
21
|
-
close,
|
22
18
|
className='',
|
23
19
|
children
|
24
20
|
}) => (
|
25
21
|
|
26
|
-
<div /* id='MOBILE_GRID' */ className={cn('
|
27
|
-
<
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
22
|
+
<div /* id='MOBILE_GRID' */ className={cn('flex flex-col items-center justify-start px-4 pt-11', className)}>
|
23
|
+
<StepIndicator
|
24
|
+
dotSizeRem={0.8}
|
25
|
+
steps={stepNames}
|
26
|
+
currentStep={index}
|
27
|
+
className='text-xs w-full'
|
28
|
+
muted
|
29
|
+
/>
|
33
30
|
<CartAccordian
|
34
31
|
icon={
|
35
32
|
<BagButton
|
@@ -44,7 +41,6 @@ const MobileCheckoutPanel: React.FC<PropsWithChildren & {
|
|
44
41
|
className='flex items-center justify-center py-2 w-full'
|
45
42
|
/>
|
46
43
|
{children}
|
47
|
-
<LinksRow className='mt-auto mb-3 pt-2' />
|
48
44
|
</div>
|
49
45
|
)
|
50
46
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@luxfi/core",
|
3
|
-
"version": "4.3.
|
3
|
+
"version": "4.3.13",
|
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/",
|
@@ -19,7 +19,7 @@
|
|
19
19
|
"luxdefi"
|
20
20
|
],
|
21
21
|
"scripts": {
|
22
|
-
"lat": "npm show @luxfi/
|
22
|
+
"lat": "npm show @luxfi/core version",
|
23
23
|
"pub": "npm publish",
|
24
24
|
"build": "tsc",
|
25
25
|
"tc": "tsc",
|
@@ -39,8 +39,8 @@
|
|
39
39
|
"./conf": "./conf/index.ts"
|
40
40
|
},
|
41
41
|
"dependencies": {
|
42
|
-
"@hanzo/auth": "2.3.
|
43
|
-
"@hanzo/commerce": "6.3.
|
42
|
+
"@hanzo/auth": "2.3.6",
|
43
|
+
"@hanzo/commerce": "6.3.3",
|
44
44
|
"@hanzo/ui": "3.6.3",
|
45
45
|
"@next/third-parties": "^14.1.0",
|
46
46
|
"embla-carousel-autoplay": "^8.0.1",
|
package/site-def/footer/legal.ts
CHANGED
@@ -3,12 +3,12 @@ import type { LinkDef } from '@hanzo/ui/types'
|
|
3
3
|
const legal: LinkDef[] = [
|
4
4
|
{
|
5
5
|
title: 'Terms and Conditions',
|
6
|
-
href: '/
|
6
|
+
href: 'https://docs.google.com/document/d/1mvkjr1w8Rv8ttirs1mu-_2fw_PXclOyS/preview',
|
7
7
|
newTab: true,
|
8
8
|
},
|
9
9
|
{
|
10
10
|
title: 'Privacy Policy',
|
11
|
-
href: '/
|
11
|
+
href: 'https://docs.google.com/document/d/1vZjOKaNdOoThDIaVLERWxflQLtOsuvLn/preview',
|
12
12
|
newTab: true,
|
13
13
|
},
|
14
14
|
]
|