@luxfi/core 5.3.1 → 5.3.3
Sign up to get free protection for your applications and to get access to all the features.
- package/commerce/ui/conf.ts +13 -13
- package/commerce/ui/context.tsx +123 -126
- package/commerce/ui/store.ts +289 -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/{checkout-widget → _to_deprecate_checkout-widget}/const.ts +13 -13
- package/components/commerce/{checkout-widget/index.tsx → _to_deprecate_checkout-widget/index.tsx_} +188 -192
- package/components/commerce/{checkout-widget → _to_deprecate_checkout-widget}/obs-string-set.ts +48 -48
- package/components/commerce/{checkout-widget → _to_deprecate_checkout-widget}/use-anim-clx-set.ts +58 -58
- 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/desktop-bag-popup.tsx +78 -78
- package/components/commerce/desktop-nav-menu.tsx +130 -130
- package/components/commerce/drawer/index.tsx +88 -99
- package/components/commerce/drawer/micro.tsx +145 -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 +107 -107
- package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
- package/components/commerce/mobile-nav-menu-ai.tsx +50 -51
- 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 +51 -51
- package/components/header/index.tsx +50 -50
- 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-act.tsx +47 -47
- 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-act.tsx +14 -14
- package/components/icons/blog.tsx +20 -20
- package/components/icons/bridge-act.tsx +18 -18
- package/components/icons/bridge.tsx +68 -68
- package/components/icons/changelog-act.tsx +15 -15
- package/components/icons/changelog.tsx +21 -21
- package/components/icons/chrome.tsx +45 -45
- package/components/icons/coins-act.tsx +29 -29
- package/components/icons/coins.tsx +20 -20
- package/components/icons/compare-cards-act.tsx +30 -30
- package/components/icons/compare-cards.tsx +21 -21
- package/components/icons/credit-act.tsx +29 -29
- package/components/icons/credit.tsx +20 -20
- package/components/icons/customer-support-act.tsx +27 -27
- package/components/icons/customer-support.tsx +21 -21
- package/components/icons/customers-act.tsx +65 -65
- package/components/icons/customers.tsx +33 -33
- package/components/icons/developer-docs-act.tsx +26 -26
- package/components/icons/developer-docs.tsx +20 -20
- package/components/icons/exchange-act.tsx +27 -27
- package/components/icons/exchange.tsx +21 -21
- package/components/icons/explorer-act.tsx +27 -27
- package/components/icons/explorer.tsx +22 -22
- package/components/icons/faqs-act.tsx +27 -27
- package/components/icons/faqs.tsx +21 -21
- package/components/icons/github.tsx +14 -14
- package/components/icons/guides-act.tsx +26 -26
- 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-act.tsx +41 -41
- 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/launchsubnet-act.tsx +29 -29
- package/components/icons/left-arrow.tsx +11 -11
- package/components/icons/lux-finance-act.tsx +34 -34
- package/components/icons/lux-finance.tsx +23 -23
- package/components/icons/lux-logo.tsx +10 -10
- package/components/icons/lux-pass-act.tsx +41 -41
- package/components/icons/lux-pass.tsx +25 -25
- package/components/icons/lux-quests-act.tsx +15 -15
- package/components/icons/lux-quests.tsx +21 -21
- package/components/icons/market-act.tsx +39 -39
- package/components/icons/market.tsx +24 -24
- package/components/icons/mirrored-titanium.tsx +46 -46
- package/components/icons/more-benefits-act.tsx +29 -29
- package/components/icons/more-benefits.tsx +21 -21
- package/components/icons/open-source-act.tsx +41 -41
- package/components/icons/open-source.tsx +26 -26
- package/components/icons/right-arrow.tsx +10 -10
- package/components/icons/safe-act.tsx +77 -77
- 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-act.tsx +29 -29
- 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-act.tsx +29 -29
- package/components/icons/templates.tsx +21 -21
- package/components/icons/validators-act.tsx +42 -42
- package/components/icons/validators.tsx +41 -41
- package/components/icons/view-all-card-act.tsx +28 -28
- package/components/icons/view-all-card.tsx +20 -20
- package/components/icons/wallet-act.tsx +29 -29
- 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 +25 -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 +458 -458
- 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 +50 -50
- 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/add-widget.tsx +0 -20
- 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
package/style/lux-global.css
CHANGED
@@ -1,51 +1,51 @@
|
|
1
|
-
/* Note, preflight is applied first:
|
2
|
-
https://unpkg.com/tailwindcss@3.3.5/src/css/preflight.css
|
3
|
-
*/
|
4
|
-
@import "tailwindcss/base";
|
5
|
-
|
6
|
-
/* see https://stackoverflow.com/questions/69746121/using-nextjs-how-can-you-import-in-css-using-tailwind-css */
|
7
|
-
@import "@hanzo/ui/style/hanzo-common";
|
8
|
-
@import "lux-colors";
|
9
|
-
|
10
|
-
@import "tailwindcss/components";
|
11
|
-
@import "tailwindcss/utilities";
|
12
|
-
|
13
|
-
div.nextjs-toast-errors-parent[data-nextjs-toast="true"] {
|
14
|
-
display: none;
|
15
|
-
}
|
16
|
-
|
17
|
-
.font-heading {
|
18
|
-
@apply uppercase;
|
19
|
-
}
|
20
|
-
|
21
|
-
/* Specific style fixes for react-square-web-payments-sdk -
|
22
|
-
* reduce gap between card input and pay button
|
23
|
-
*/
|
24
|
-
#rswps-card-container {
|
25
|
-
min-height: unset !important;
|
26
|
-
}
|
27
|
-
|
28
|
-
.sq-card-wrapper .sq-card-message {
|
29
|
-
margin-top: 0 !important;
|
30
|
-
margin-bottom: 0 !important;
|
31
|
-
}
|
32
|
-
|
33
|
-
|
34
|
-
.element-container:hover .icon-container-nor {
|
35
|
-
display: none;
|
36
|
-
}
|
37
|
-
|
38
|
-
.icon-container-hov {
|
39
|
-
display: none;
|
40
|
-
}
|
41
|
-
|
42
|
-
.element-container:hover .icon-container-hov {
|
43
|
-
display: block !important;
|
44
|
-
}
|
45
|
-
|
46
|
-
.element-container:hover .text-container {
|
47
|
-
background: transparent;
|
48
|
-
}
|
49
|
-
.overflow-scroll::-webkit-scrollbar{
|
50
|
-
display:none;
|
1
|
+
/* Note, preflight is applied first:
|
2
|
+
https://unpkg.com/tailwindcss@3.3.5/src/css/preflight.css
|
3
|
+
*/
|
4
|
+
@import "tailwindcss/base";
|
5
|
+
|
6
|
+
/* see https://stackoverflow.com/questions/69746121/using-nextjs-how-can-you-import-in-css-using-tailwind-css */
|
7
|
+
@import "@hanzo/ui/style/hanzo-common";
|
8
|
+
@import "lux-colors";
|
9
|
+
|
10
|
+
@import "tailwindcss/components";
|
11
|
+
@import "tailwindcss/utilities";
|
12
|
+
|
13
|
+
div.nextjs-toast-errors-parent[data-nextjs-toast="true"] {
|
14
|
+
display: none;
|
15
|
+
}
|
16
|
+
|
17
|
+
.font-heading {
|
18
|
+
@apply uppercase;
|
19
|
+
}
|
20
|
+
|
21
|
+
/* Specific style fixes for react-square-web-payments-sdk -
|
22
|
+
* reduce gap between card input and pay button
|
23
|
+
*/
|
24
|
+
#rswps-card-container {
|
25
|
+
min-height: unset !important;
|
26
|
+
}
|
27
|
+
|
28
|
+
.sq-card-wrapper .sq-card-message {
|
29
|
+
margin-top: 0 !important;
|
30
|
+
margin-bottom: 0 !important;
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
.element-container:hover .icon-container-nor {
|
35
|
+
display: none;
|
36
|
+
}
|
37
|
+
|
38
|
+
.icon-container-hov {
|
39
|
+
display: none;
|
40
|
+
}
|
41
|
+
|
42
|
+
.element-container:hover .icon-container-hov {
|
43
|
+
display: block !important;
|
44
|
+
}
|
45
|
+
|
46
|
+
.element-container:hover .text-container {
|
47
|
+
background: transparent;
|
48
|
+
}
|
49
|
+
.overflow-scroll::-webkit-scrollbar{
|
50
|
+
display:none;
|
51
51
|
}
|
@@ -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", "components/commerce/_to_deprecate_checkout-widget/index.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,20 +0,0 @@
|
|
1
|
-
'use client'
|
2
|
-
import React from 'react'
|
3
|
-
|
4
|
-
import type { LineItem } from '@hanzo/commerce/types'
|
5
|
-
import { AddToCartWidget } from '@hanzo/commerce'
|
6
|
-
|
7
|
-
import { useRecentActivity } from '../../commerce/ui/context'
|
8
|
-
|
9
|
-
const AddWidget: React.FC<{
|
10
|
-
item: LineItem
|
11
|
-
disabled?: boolean
|
12
|
-
className?: string
|
13
|
-
buttonClx?: string
|
14
|
-
variant?: 'minimal' | 'primary' | 'outline'
|
15
|
-
}> = (props) => {
|
16
|
-
const l = useRecentActivity()
|
17
|
-
return <AddToCartWidget {...props} onQuantityChanged={l.quantityChanged.bind(l)}/>
|
18
|
-
}
|
19
|
-
|
20
|
-
export default AddWidget
|
@@ -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
|