@luxfi/core 5.2.10 → 5.2.11
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/commerce/ui/conf.ts +13 -13
- package/commerce/ui/context.tsx +126 -126
- package/commerce/ui/store.ts +306 -304
- package/components/access-code-input.tsx +71 -71
- package/components/auth/auth-listener.tsx +29 -29
- package/components/auth/auth-token/clear-auth-token.tsx +12 -12
- package/components/auth/auth-token/set-auth-token.tsx +16 -16
- package/components/auth/common-auth-domains.ts +16 -16
- package/components/auth/login-panel.tsx +107 -107
- package/components/back-button.tsx +49 -42
- package/components/chat-widget.tsx +85 -85
- package/components/commerce/add-widget.tsx +20 -20
- package/components/commerce/bag-button.tsx +98 -98
- package/components/commerce/buy-button.tsx +34 -34
- package/components/commerce/checkout-button.tsx +129 -129
- package/components/commerce/checkout-panel/cart-accordian.tsx +66 -0
- package/components/commerce/checkout-panel/checkout-panel-props.ts +10 -0
- package/components/commerce/checkout-panel/{dt-bag-carousel.tsx → desktop-bag-carousel.tsx} +36 -36
- package/components/commerce/checkout-panel/desktop-cp.tsx +83 -0
- package/components/commerce/checkout-panel/index.tsx +126 -129
- package/components/commerce/checkout-panel/mobile-cp.tsx +67 -0
- package/components/commerce/checkout-panel/policy-links.tsx +29 -0
- package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
- package/components/commerce/checkout-panel/thank-you.tsx +18 -18
- package/components/commerce/checkout-widget/const.ts +13 -13
- package/components/commerce/checkout-widget/index.tsx +192 -192
- package/components/commerce/checkout-widget/obs-string-set.ts +48 -48
- package/components/commerce/checkout-widget/use-anim-clx-set.ts +58 -58
- package/components/commerce/desktop-bag-popup.tsx +78 -78
- package/components/commerce/desktop-nav-menu.tsx +130 -130
- package/components/commerce/drawer/index.tsx +99 -99
- package/components/commerce/drawer/micro.tsx +144 -144
- package/components/commerce/drawer/shell.tsx +85 -85
- package/components/commerce/mobile-bag-drawer.tsx +51 -51
- package/components/commerce/mobile-login-button.tsx +101 -101
- package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
- package/components/commerce/mobile-nav-menu-ai.tsx +47 -48
- package/components/commerce/mobile-nav-menu-item.tsx +49 -49
- package/components/commerce/mobile-nav-menu.tsx +101 -101
- package/components/contact-dialog/contact-form.tsx +113 -113
- package/components/contact-dialog/disclaimer.tsx +13 -13
- package/components/contact-dialog/index.tsx +64 -64
- package/components/copyright.tsx +21 -21
- package/components/drawer-margin.tsx +25 -25
- package/components/footer.tsx +77 -77
- package/components/header/desktop.tsx +50 -50
- package/components/header/index.tsx +52 -52
- package/components/header/mobile.tsx +163 -163
- package/components/header/theme-toggle.tsx +26 -26
- package/components/icons/24k-gold-card.tsx +43 -43
- package/components/icons/ai-chat.tsx +29 -29
- package/components/icons/anodized-titanium.tsx +45 -45
- package/components/icons/avatar.tsx +11 -11
- package/components/icons/bag-icon.tsx +10 -10
- package/components/icons/blog.tsx +20 -20
- package/components/icons/bridge.tsx +68 -68
- package/components/icons/changelog.tsx +21 -21
- package/components/icons/chrome.tsx +45 -45
- package/components/icons/coins.tsx +20 -20
- package/components/icons/compare-cards.tsx +21 -21
- package/components/icons/credit.tsx +20 -20
- package/components/icons/customer-support.tsx +21 -21
- package/components/icons/customers.tsx +33 -33
- package/components/icons/developer-docs.tsx +20 -20
- package/components/icons/exchange.tsx +21 -21
- package/components/icons/explorer.tsx +22 -22
- package/components/icons/faqs.tsx +21 -21
- package/components/icons/github.tsx +14 -14
- package/components/icons/guides.tsx +21 -21
- package/components/icons/gun-metal.tsx +44 -44
- package/components/icons/index.tsx +43 -43
- package/components/icons/integrations.tsx +25 -25
- package/components/icons/irradescent.tsx +41 -41
- package/components/icons/launch-subnet.tsx +21 -21
- package/components/icons/left-arrow.tsx +11 -11
- package/components/icons/lux-finance.tsx +23 -23
- package/components/icons/lux-logo.tsx +10 -10
- package/components/icons/lux-pass.tsx +25 -25
- package/components/icons/lux-quests.tsx +21 -21
- package/components/icons/market.tsx +24 -24
- package/components/icons/mirrored-titanium.tsx +46 -46
- package/components/icons/more-benefits.tsx +21 -21
- package/components/icons/open-source.tsx +26 -26
- package/components/icons/right-arrow.tsx +10 -10
- package/components/icons/safe.tsx +37 -37
- package/components/icons/search.tsx +12 -12
- package/components/icons/secure-delivery.tsx +13 -13
- package/components/icons/shop.tsx +20 -20
- package/components/icons/social-icon.tsx +35 -35
- package/components/icons/social-svg.css +3 -3
- package/components/icons/sterling-silver-card.tsx +44 -44
- package/components/icons/templates.tsx +21 -21
- package/components/icons/validators.tsx +41 -41
- package/components/icons/view-all-card.tsx +20 -20
- package/components/icons/wallet.tsx +20 -20
- package/components/icons/warpcast.tsx +58 -58
- package/components/icons/youtube-logo.tsx +59 -59
- package/components/index.ts +27 -27
- package/components/logo.tsx +89 -89
- package/components/main.tsx +27 -27
- package/components/mini-chart/index.tsx +7 -7
- package/components/mini-chart/mini-chart-props.ts +43 -43
- package/components/mini-chart/mini-chart.tsx +85 -85
- package/components/mini-chart/wrapper.tsx +23 -23
- package/components/not-found/index.tsx +28 -28
- package/components/not-found/not-found-content.mdx +5 -5
- package/components/scripts.tsx +24 -24
- package/components/tooltip.tsx +31 -31
- package/environment.d.ts +5 -5
- package/next/analytics/fpixel.ts +15 -15
- package/next/analytics/google-analytics.ts +13 -13
- package/next/analytics/index.ts +3 -3
- package/next/analytics/pixel-analytics.tsx +54 -54
- package/next/font/get-app-router-font-classes.ts +12 -12
- package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
- package/next/font/next-font-desc.ts +27 -27
- package/next/font/pages-router-font-vars.tsx +18 -18
- package/next/head-metadata/from-next/metadata-types.ts +158 -158
- package/next/head-metadata/from-next/opengraph-types.ts +267 -267
- package/next/head-metadata/from-next/twitter-types.ts +92 -92
- package/next/head-metadata/index.tsx +208 -208
- package/next/middleware/determine-device-mw.ts +16 -16
- package/package.json +79 -79
- package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
- package/root-layout/index.tsx +112 -112
- package/server-actions/firebase-app.ts +14 -14
- package/server-actions/index.ts +5 -5
- package/server-actions/store-contact.ts +51 -51
- package/site-def/footer/community.tsx +67 -67
- package/site-def/footer/company.ts +37 -37
- package/site-def/footer/ecosystem.ts +37 -37
- package/site-def/footer/index.tsx +26 -26
- package/site-def/footer/legal.ts +28 -28
- package/site-def/footer/network.ts +45 -45
- package/site-def/footer/svg/warpcast-logo.svg +11 -11
- package/site-def/index.ts +2 -2
- package/site-def/main-nav.tsx +392 -392
- package/style/cart-animation.css +29 -29
- package/style/checkout-animation.css +23 -23
- package/style/drawer-handle-overrides.css +160 -160
- package/style/lux-colors.css +85 -85
- package/style/lux-global.css +30 -30
- package/tailwind/fontFamily.tailwind.lux.ts +18 -18
- package/tailwind/index.ts +2 -2
- package/tailwind/lux-tw-fonts.ts +39 -39
- package/tailwind/tailwind.config.lux-preset.ts +10 -10
- package/tsconfig.json +15 -15
- package/types/chatbot-config.ts +6 -6
- package/types/chatbot-suggested-question.ts +7 -7
- package/types/contact-info.ts +10 -10
- package/types/index.ts +4 -4
- package/types/site-def.ts +43 -43
- package/components/commerce/checkout-panel/dt-checkout-panel.tsx +0 -85
- package/components/commerce/checkout-panel/links-row.tsx +0 -21
- package/components/commerce/checkout-panel/mb-checkout-panel.tsx +0 -55
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
-
|
|
3
|
-
import luxTwFonts from './lux-tw-fonts'
|
|
4
|
-
|
|
5
|
-
export const fontFamily = (ignoreTheme: any): {
|
|
6
|
-
[key: string]: string[]
|
|
7
|
-
} => {
|
|
8
|
-
|
|
9
|
-
let result: any = {}
|
|
10
|
-
luxTwFonts.forEach((font: TwFontDesc) => {
|
|
11
|
-
result[font.twName] = font.fontFamily
|
|
12
|
-
// eg: heading: ['var(--font-druk-text-wide)']
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
return result as {
|
|
16
|
-
[key: string]: string[]
|
|
17
|
-
}
|
|
18
|
-
}
|
|
1
|
+
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
+
|
|
3
|
+
import luxTwFonts from './lux-tw-fonts'
|
|
4
|
+
|
|
5
|
+
export const fontFamily = (ignoreTheme: any): {
|
|
6
|
+
[key: string]: string[]
|
|
7
|
+
} => {
|
|
8
|
+
|
|
9
|
+
let result: any = {}
|
|
10
|
+
luxTwFonts.forEach((font: TwFontDesc) => {
|
|
11
|
+
result[font.twName] = font.fontFamily
|
|
12
|
+
// eg: heading: ['var(--font-druk-text-wide)']
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
return result as {
|
|
16
|
+
[key: string]: string[]
|
|
17
|
+
}
|
|
18
|
+
}
|
package/tailwind/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export {default as preset} from './tailwind.config.lux-preset'
|
|
1
|
+
|
|
2
|
+
export {default as preset} from './tailwind.config.lux-preset'
|
package/tailwind/lux-tw-fonts.ts
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/* NOTE: /next/load-and-return....ts depends on this file! */
|
|
5
|
-
|
|
6
|
-
export default [
|
|
7
|
-
{
|
|
8
|
-
fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
|
|
9
|
-
cssVar: '--font-inter',
|
|
10
|
-
twName: 'sans'
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
fontFamily: ['var(--font-druk-text-wide)'], // do not provide fall-backs due to next bug
|
|
14
|
-
cssVar: '--font-druk-text-wide',
|
|
15
|
-
twName: 'nav'
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
fontFamily: ['var(--font-druk-wide)'], // do not provide fall-backs due to next bug
|
|
19
|
-
cssVar: '--font-druk-wide',
|
|
20
|
-
twName: 'heading'
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
twName: 'serif',
|
|
24
|
-
fontFamily: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times']
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
twName: 'mono',
|
|
28
|
-
fontFamily: [
|
|
29
|
-
'ui-monospace',
|
|
30
|
-
'SFMono-Regular',
|
|
31
|
-
'Menlo',
|
|
32
|
-
'Monaco',
|
|
33
|
-
'Consolas',
|
|
34
|
-
'"Liberation Mono"',
|
|
35
|
-
'"Courier New"',
|
|
36
|
-
'monospace',
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
|
|
1
|
+
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
/* NOTE: /next/load-and-return....ts depends on this file! */
|
|
5
|
+
|
|
6
|
+
export default [
|
|
7
|
+
{
|
|
8
|
+
fontFamily: ['var(--font-inter)'], // do not provide fall-backs due to next bug
|
|
9
|
+
cssVar: '--font-inter',
|
|
10
|
+
twName: 'sans'
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
fontFamily: ['var(--font-druk-text-wide)'], // do not provide fall-backs due to next bug
|
|
14
|
+
cssVar: '--font-druk-text-wide',
|
|
15
|
+
twName: 'nav'
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
fontFamily: ['var(--font-druk-wide)'], // do not provide fall-backs due to next bug
|
|
19
|
+
cssVar: '--font-druk-wide',
|
|
20
|
+
twName: 'heading'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
twName: 'serif',
|
|
24
|
+
fontFamily: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times']
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
twName: 'mono',
|
|
28
|
+
fontFamily: [
|
|
29
|
+
'ui-monospace',
|
|
30
|
+
'SFMono-Regular',
|
|
31
|
+
'Menlo',
|
|
32
|
+
'Monaco',
|
|
33
|
+
'Consolas',
|
|
34
|
+
'"Liberation Mono"',
|
|
35
|
+
'"Courier New"',
|
|
36
|
+
'monospace',
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
|
|
40
40
|
] as TwFontDesc[]
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Config } from 'tailwindcss'
|
|
2
|
-
import { preset } from '@hanzo/ui/tailwind'
|
|
3
|
-
import { fontFamily } from './fontFamily.tailwind.lux'
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
presets: [preset],
|
|
7
|
-
content: [],
|
|
8
|
-
theme: { fontFamily }
|
|
9
|
-
} satisfies Config
|
|
10
|
-
|
|
1
|
+
import type { Config } from 'tailwindcss'
|
|
2
|
+
import { preset } from '@hanzo/ui/tailwind'
|
|
3
|
+
import { fontFamily } from './fontFamily.tailwind.lux'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
presets: [preset],
|
|
7
|
+
content: [],
|
|
8
|
+
theme: { fontFamily }
|
|
9
|
+
} satisfies Config
|
|
10
|
+
|
package/tsconfig.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../tsconfig.modules.base.json",
|
|
3
|
-
"include": [
|
|
4
|
-
"**/*.ts",
|
|
5
|
-
"**/*.tsx",
|
|
6
|
-
],
|
|
7
|
-
"exclude": [
|
|
8
|
-
"node_modules",
|
|
9
|
-
],
|
|
10
|
-
"compilerOptions": {
|
|
11
|
-
"paths": {
|
|
12
|
-
"react": [ "./node_modules/@types/react" ],
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"extends": "../tsconfig.modules.base.json",
|
|
3
|
+
"include": [
|
|
4
|
+
"**/*.ts",
|
|
5
|
+
"**/*.tsx",
|
|
6
|
+
],
|
|
7
|
+
"exclude": [
|
|
8
|
+
"node_modules",
|
|
9
|
+
],
|
|
10
|
+
"compilerOptions": {
|
|
11
|
+
"paths": {
|
|
12
|
+
"react": [ "./node_modules/@types/react" ],
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
package/types/chatbot-config.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type ChatbotSuggestQuestion from './chatbot-suggested-question'
|
|
2
|
-
|
|
3
|
-
interface ChatbotConfig {
|
|
4
|
-
suggestedQuestions?: ChatbotSuggestQuestion[]
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
import type ChatbotSuggestQuestion from './chatbot-suggested-question'
|
|
2
|
+
|
|
3
|
+
interface ChatbotConfig {
|
|
4
|
+
suggestedQuestions?: ChatbotSuggestQuestion[]
|
|
5
|
+
}
|
|
6
|
+
|
|
7
7
|
export { type ChatbotConfig as default }
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
interface ChatbotSuggestedQuestion {
|
|
2
|
-
heading: string
|
|
3
|
-
message: string
|
|
4
|
-
icon?: string
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export { type ChatbotSuggestedQuestion as default }
|
|
1
|
+
interface ChatbotSuggestedQuestion {
|
|
2
|
+
heading: string
|
|
3
|
+
message: string
|
|
4
|
+
icon?: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export { type ChatbotSuggestedQuestion as default }
|
package/types/contact-info.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
interface ContactInfo {
|
|
2
|
-
email: string
|
|
3
|
-
phone?: string
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
type ContactInfoFields = keyof ContactInfo
|
|
7
|
-
|
|
8
|
-
export {
|
|
9
|
-
type ContactInfo,
|
|
10
|
-
type ContactInfoFields
|
|
1
|
+
interface ContactInfo {
|
|
2
|
+
email: string
|
|
3
|
+
phone?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
type ContactInfoFields = keyof ContactInfo
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
type ContactInfo,
|
|
10
|
+
type ContactInfoFields
|
|
11
11
|
}
|
package/types/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ContactInfo, ContactInfoFields } from './contact-info'
|
|
2
|
-
export type { default as SiteDef } from './site-def'
|
|
3
|
-
export type { default as ChatbotSuggestedQuestion } from './chatbot-suggested-question'
|
|
4
|
-
export type { default as ChatbotConfig } from './chatbot-config'
|
|
1
|
+
export type { ContactInfo, ContactInfoFields } from './contact-info'
|
|
2
|
+
export type { default as SiteDef } from './site-def'
|
|
3
|
+
export type { default as ChatbotSuggestedQuestion } from './chatbot-suggested-question'
|
|
4
|
+
export type { default as ChatbotConfig } from './chatbot-config'
|
package/types/site-def.ts
CHANGED
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
|
|
3
|
-
import type { LinkDef } from '@hanzo/ui/types'
|
|
4
|
-
import type { CommerceConfig } from '@hanzo/commerce/types'
|
|
5
|
-
|
|
6
|
-
import type ChatbotConfig from './chatbot-config'
|
|
7
|
-
|
|
8
|
-
interface SiteDef {
|
|
9
|
-
|
|
10
|
-
/** url of this site. All nav links in the system will show it in 'current' state */
|
|
11
|
-
currentAs?: string
|
|
12
|
-
|
|
13
|
-
nav: {
|
|
14
|
-
/** common elements (will auto-select currentAs if it's provide) */
|
|
15
|
-
/** optional feature element. right-most after 'elements' (any min-w is ignored) */
|
|
16
|
-
common: LinkDef[]
|
|
17
|
-
featured?: LinkDef[]
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Array of columns, each of which itself is an array of links
|
|
22
|
-
* (or "title defs" where href='' and variant='linkFG')
|
|
23
|
-
* Common use case: To render a site-specific first column:
|
|
24
|
-
* {
|
|
25
|
-
* footer[myColumn, ...commonColumnsFromUi]
|
|
26
|
-
* }
|
|
27
|
-
* see: @hanzo/ui/siteDef/footer (default export)
|
|
28
|
-
* or @hanzo/ui/siteDef/footer/common
|
|
29
|
-
*/
|
|
30
|
-
footer: LinkDef[][]
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* optional override of default 'above copyright' horizantal links
|
|
34
|
-
default (undefined / absent): links in side-def/footer/legal are rendered
|
|
35
|
-
[] renders nothing above the copyright
|
|
36
|
-
*/
|
|
37
|
-
aboveCopyright?: LinkDef[]
|
|
38
|
-
|
|
39
|
-
commerce?: CommerceConfig
|
|
40
|
-
chatbot?: ChatbotConfig
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export { type SiteDef as default }
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
|
4
|
+
import type { CommerceConfig } from '@hanzo/commerce/types'
|
|
5
|
+
|
|
6
|
+
import type ChatbotConfig from './chatbot-config'
|
|
7
|
+
|
|
8
|
+
interface SiteDef {
|
|
9
|
+
|
|
10
|
+
/** url of this site. All nav links in the system will show it in 'current' state */
|
|
11
|
+
currentAs?: string
|
|
12
|
+
|
|
13
|
+
nav: {
|
|
14
|
+
/** common elements (will auto-select currentAs if it's provide) */
|
|
15
|
+
/** optional feature element. right-most after 'elements' (any min-w is ignored) */
|
|
16
|
+
common: LinkDef[]
|
|
17
|
+
featured?: LinkDef[]
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Array of columns, each of which itself is an array of links
|
|
22
|
+
* (or "title defs" where href='' and variant='linkFG')
|
|
23
|
+
* Common use case: To render a site-specific first column:
|
|
24
|
+
* {
|
|
25
|
+
* footer[myColumn, ...commonColumnsFromUi]
|
|
26
|
+
* }
|
|
27
|
+
* see: @hanzo/ui/siteDef/footer (default export)
|
|
28
|
+
* or @hanzo/ui/siteDef/footer/common
|
|
29
|
+
*/
|
|
30
|
+
footer: LinkDef[][]
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* optional override of default 'above copyright' horizantal links
|
|
34
|
+
default (undefined / absent): links in side-def/footer/legal are rendered
|
|
35
|
+
[] renders nothing above the copyright
|
|
36
|
+
*/
|
|
37
|
+
aboveCopyright?: LinkDef[]
|
|
38
|
+
|
|
39
|
+
commerce?: CommerceConfig
|
|
40
|
+
chatbot?: ChatbotConfig
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export { type SiteDef as default }
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
import React, { type PropsWithChildren } from 'react'
|
|
3
|
-
import { observer } from 'mobx-react-lite'
|
|
4
|
-
|
|
5
|
-
import { ScrollArea, StepIndicator } from '@hanzo/ui/primitives'
|
|
6
|
-
import { AuthWidget } from '@hanzo/auth/components'
|
|
7
|
-
import { CartPanel, useCommerce } from '@hanzo/commerce'
|
|
8
|
-
import { cn } from '@hanzo/ui/util'
|
|
9
|
-
|
|
10
|
-
import { BackButton, Logo, Tooltip } from '../..'
|
|
11
|
-
import DesktopBagCarousel from './dt-bag-carousel'
|
|
12
|
-
import LinksRow from './links-row'
|
|
13
|
-
|
|
14
|
-
const DesktopCheckoutPanel: React.FC<PropsWithChildren & {
|
|
15
|
-
index: number
|
|
16
|
-
stepNames: string[]
|
|
17
|
-
close: () => void
|
|
18
|
-
className?: string
|
|
19
|
-
}> = observer(({
|
|
20
|
-
index,
|
|
21
|
-
stepNames,
|
|
22
|
-
close,
|
|
23
|
-
className='',
|
|
24
|
-
children
|
|
25
|
-
}) => {
|
|
26
|
-
|
|
27
|
-
const cmmc = useCommerce()
|
|
28
|
-
|
|
29
|
-
return (
|
|
30
|
-
<div /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', className)}>
|
|
31
|
-
<div key={1} className='w-full h-full bg-background flex flex-row items-start justify-end'>
|
|
32
|
-
<div className='w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8'>
|
|
33
|
-
<div key={1} className='h-[80px] grow-0 flex flex-row items-center z-10' >
|
|
34
|
-
<Logo onClick={close} size='md' href='/' variant='text-only' outerClx='logo-outer-tooltip-class' />
|
|
35
|
-
<Tooltip select='.logo-outer-tooltip-class' text='home' position='right' offset={6}/>
|
|
36
|
-
</div>
|
|
37
|
-
<BackButton size='sm' clx={
|
|
38
|
-
'z-10 absolute top-14 left-6 !px-0 aspect-square ' +
|
|
39
|
-
'rounded-full hover:!bg-level-3 ' +
|
|
40
|
-
//'border border-transparent hover:border-muted-2 ' +
|
|
41
|
-
'back-button-tooltip-class '
|
|
42
|
-
}/>
|
|
43
|
-
<Tooltip select='.back-button-tooltip-class' text='back' position='right' offset={5}/>
|
|
44
|
-
<div key={2} className={cn(
|
|
45
|
-
'w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3',
|
|
46
|
-
(cmmc.cartItems.length > 4 ? 'justify-between' : 'justify-start gap-10 pt-10')
|
|
47
|
-
)}>
|
|
48
|
-
<DesktopBagCarousel className='grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
|
|
49
|
-
<CartPanel
|
|
50
|
-
className='w-full border-none p-0'
|
|
51
|
-
itemClx='mb-2'
|
|
52
|
-
totalClx='sticky bottom-0 bg-background'
|
|
53
|
-
listClx='pr-3'
|
|
54
|
-
scrollAfter={5}
|
|
55
|
-
scrollHeightClx='min-h-[50vh] grow'
|
|
56
|
-
showPromoCode
|
|
57
|
-
showShipping
|
|
58
|
-
selectItems
|
|
59
|
-
/>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
<div key={2} className='w-full h-full flex flex-col bg-level-1 min-h-screen justify-between'>
|
|
64
|
-
<ScrollArea className='w-full flex flex-row items-start justify-start overflow-y-auto'>
|
|
65
|
-
<div className='h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
|
66
|
-
<div key={1} className='bg-level-1 sticky h-30 pb-8 w-full top-0 flex justify-center items-end'>
|
|
67
|
-
<AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
|
|
68
|
-
<StepIndicator dotSizeRem={1.5} steps={stepNames} currentStep={index} className='gap-2 text-base w-pr-70' />
|
|
69
|
-
</div>
|
|
70
|
-
<div key={2} className='w-full max-w-[550px] mx-auto pb-10'>
|
|
71
|
-
{children}
|
|
72
|
-
</div>
|
|
73
|
-
</div>
|
|
74
|
-
</ScrollArea>
|
|
75
|
-
<div className='w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
|
76
|
-
<div className='w-full max-w-[550px] mx-auto flex flex-col items-center'>
|
|
77
|
-
<LinksRow className='w-full' />
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
)
|
|
83
|
-
})
|
|
84
|
-
|
|
85
|
-
export default DesktopCheckoutPanel
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import Link from 'next/link'
|
|
2
|
-
|
|
3
|
-
import { Separator } from '@hanzo/ui/primitives'
|
|
4
|
-
import { cn } from '@hanzo/ui/util'
|
|
5
|
-
|
|
6
|
-
const LinksRow: React.FC<{
|
|
7
|
-
className?: string
|
|
8
|
-
}> = ({
|
|
9
|
-
className=''
|
|
10
|
-
}) => (
|
|
11
|
-
<div className={cn('flex flex-col', className)}>
|
|
12
|
-
<Separator/>
|
|
13
|
-
<div className='flex gap-4 text-sm py-2'>
|
|
14
|
-
{/* TODO: add Refund policy and Privacy policy links */}
|
|
15
|
-
<Link href=''>Refund policy</Link>
|
|
16
|
-
<Link href=''>Privacy policy</Link>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
export default LinksRow
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
import React, { type PropsWithChildren } from 'react'
|
|
3
|
-
|
|
4
|
-
import { StepIndicator } from '@hanzo/ui/primitives'
|
|
5
|
-
import { cn } from '@hanzo/ui/util'
|
|
6
|
-
import { AuthWidget } from '@hanzo/auth/components'
|
|
7
|
-
import { CartAccordian } from '@hanzo/commerce'
|
|
8
|
-
|
|
9
|
-
import { Logo } from '../..'
|
|
10
|
-
import BagButton from '../bag-button'
|
|
11
|
-
import LinksRow from './links-row'
|
|
12
|
-
|
|
13
|
-
const MobileCheckoutPanel: React.FC<PropsWithChildren & {
|
|
14
|
-
index: number
|
|
15
|
-
stepNames: string[]
|
|
16
|
-
close:() => void
|
|
17
|
-
className?: string
|
|
18
|
-
}> = ({
|
|
19
|
-
index,
|
|
20
|
-
stepNames,
|
|
21
|
-
close,
|
|
22
|
-
className='',
|
|
23
|
-
children
|
|
24
|
-
}) => (
|
|
25
|
-
|
|
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
|
-
<Logo onClick={close} size='xs' href='/' />
|
|
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>
|
|
32
|
-
<CartAccordian
|
|
33
|
-
icon={
|
|
34
|
-
<BagButton
|
|
35
|
-
animateOnHover={false}
|
|
36
|
-
showIfEmpty
|
|
37
|
-
size='sm'
|
|
38
|
-
className='mr-1 relative w-5 h-6 sm:w-6 sm:h-7'
|
|
39
|
-
iconClx='fill-foreground'
|
|
40
|
-
/>
|
|
41
|
-
}
|
|
42
|
-
className='flex items-center justify-center w-full'
|
|
43
|
-
/>
|
|
44
|
-
<StepIndicator
|
|
45
|
-
dotSizeRem={1}
|
|
46
|
-
steps={stepNames}
|
|
47
|
-
currentStep={index}
|
|
48
|
-
className='text-xs font-semibold w-full pb-3'
|
|
49
|
-
/>
|
|
50
|
-
{children}
|
|
51
|
-
<LinksRow className='mt-auto mb-3 pt-2' />
|
|
52
|
-
</div>
|
|
53
|
-
)
|
|
54
|
-
|
|
55
|
-
export default MobileCheckoutPanel
|