@luxfi/core 5.3.0 → 5.3.1
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 -123
- package/commerce/ui/store.ts +304 -289
- 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 +42 -49
- package/components/chat-widget.tsx +85 -85
- package/components/commerce/add-widget.tsx +20 -0
- 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/{desktop-bag-carousel.tsx → dt-bag-carousel.tsx} +36 -36
- package/components/commerce/checkout-panel/dt-checkout-panel.tsx +85 -0
- package/components/commerce/checkout-panel/index.tsx +129 -126
- package/components/commerce/checkout-panel/links-row.tsx +21 -0
- package/components/commerce/checkout-panel/mb-checkout-panel.tsx +55 -0
- package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
- package/components/commerce/checkout-panel/thank-you.tsx +18 -18
- package/components/commerce/{_to_deprecate_checkout-widget → checkout-widget}/const.ts +13 -13
- package/components/commerce/{_to_deprecate_checkout-widget/index.tsx_ → checkout-widget/index.tsx} +192 -188
- package/components/commerce/{_to_deprecate_checkout-widget → checkout-widget}/obs-string-set.ts +48 -48
- package/components/commerce/{_to_deprecate_checkout-widget → 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 -88
- 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 +107 -101
- package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
- package/components/commerce/mobile-nav-menu-ai.tsx +51 -47
- 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 -50
- package/components/header/index.tsx +50 -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-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 +27 -25
- 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 -47
- 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/cart-accordian.tsx +0 -66
- package/components/commerce/checkout-panel/checkout-panel-props.ts +0 -10
- package/components/commerce/checkout-panel/desktop-cp.tsx +0 -83
- package/components/commerce/checkout-panel/mobile-cp.tsx +0 -67
- package/components/commerce/checkout-panel/policy-links.tsx +0 -29
package/style/lux-global.css
CHANGED
|
@@ -1,48 +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;
|
|
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;
|
|
48
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",
|
|
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,66 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
import React from 'react'
|
|
3
|
-
import { observer } from 'mobx-react-lite'
|
|
4
|
-
|
|
5
|
-
import { ChevronRight } from 'lucide-react'
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
Accordion,
|
|
9
|
-
AccordionContent,
|
|
10
|
-
AccordionItem,
|
|
11
|
-
AccordionTrigger,
|
|
12
|
-
} from '@hanzo/ui/primitives'
|
|
13
|
-
import { cn } from '@hanzo/ui/util'
|
|
14
|
-
|
|
15
|
-
import { useCommerce, CartPanel, formatCurrencyValue } from '@hanzo/commerce'
|
|
16
|
-
|
|
17
|
-
const CartAccordian: React.FC<{
|
|
18
|
-
icon?: React.ReactNode
|
|
19
|
-
clx?: string
|
|
20
|
-
triggerClx?: string
|
|
21
|
-
panelClx?: string
|
|
22
|
-
scrollAfter: number
|
|
23
|
-
scrollHeightClx: string
|
|
24
|
-
}> = observer(({
|
|
25
|
-
icon,
|
|
26
|
-
clx='',
|
|
27
|
-
panelClx='',
|
|
28
|
-
triggerClx='',
|
|
29
|
-
scrollAfter,
|
|
30
|
-
scrollHeightClx
|
|
31
|
-
}) => {
|
|
32
|
-
const cmmc = useCommerce()
|
|
33
|
-
return (
|
|
34
|
-
<Accordion type="single" collapsible className={clx}>
|
|
35
|
-
<AccordionItem value="cart" className='w-full border-b-0'>
|
|
36
|
-
<AccordionTrigger className={'!no-underline group flex justify-between '} headerClx={ triggerClx}>
|
|
37
|
-
<div className='flex gap-0 items-center'>
|
|
38
|
-
{icon}
|
|
39
|
-
<h5 className='text-sm sm:text-xl grow'>
|
|
40
|
-
<span className='group-data-[state=open]:hidden' >Order Total:</span>
|
|
41
|
-
<span className='group-data-[state=closed]:hidden' >Your Order</span>
|
|
42
|
-
</h5>
|
|
43
|
-
</div>
|
|
44
|
-
<div className='flex gap-1 items-center'>
|
|
45
|
-
<h5 className='text-sm sm:text-xl grow truncate'>{formatCurrencyValue(cmmc.promoAppliedCartTotal)}</h5>
|
|
46
|
-
<ChevronRight className="h-5 w-5 -mr-2 shrink-0 transition-transform duration-200 group-data-[state=open]:rotate-90" />
|
|
47
|
-
</div>
|
|
48
|
-
</AccordionTrigger>
|
|
49
|
-
<AccordionContent className='data-[state=open]:mb-4'>
|
|
50
|
-
<CartPanel
|
|
51
|
-
className={cn('w-full', panelClx)}
|
|
52
|
-
scrollAfter={scrollAfter}
|
|
53
|
-
scrollHeightClx={scrollHeightClx}
|
|
54
|
-
listClx='mt-0'
|
|
55
|
-
itemClx='mt-0.5 mb-0'
|
|
56
|
-
totalClx='sticky px-1 pr-2 border-t -bottom-[1px] bg-background'
|
|
57
|
-
showShipping
|
|
58
|
-
showPromoCode
|
|
59
|
-
/>
|
|
60
|
-
</AccordionContent>
|
|
61
|
-
</AccordionItem>
|
|
62
|
-
</Accordion>
|
|
63
|
-
)
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
export default CartAccordian
|
|
@@ -1,83 +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 './desktop-bag-carousel'
|
|
12
|
-
import LinksRow from './policy-links'
|
|
13
|
-
import type CheckoutPanelProps from './checkout-panel-props'
|
|
14
|
-
|
|
15
|
-
const DesktopCheckoutPanel: React.FC<PropsWithChildren & CheckoutPanelProps> = observer(({
|
|
16
|
-
step,
|
|
17
|
-
stepNames,
|
|
18
|
-
onLeave,
|
|
19
|
-
clx='',
|
|
20
|
-
children
|
|
21
|
-
}) => {
|
|
22
|
-
|
|
23
|
-
const cmmc = useCommerce()
|
|
24
|
-
return (
|
|
25
|
-
<div /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', clx)}>
|
|
26
|
-
<div key={1} className='w-full h-full bg-background flex flex-row items-start justify-end'>
|
|
27
|
-
<div className='w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8'>
|
|
28
|
-
<div key={1} className='h-[80px] grow-0 flex flex-row items-center z-10' >
|
|
29
|
-
<Logo size='md' href='/' onClick={onLeave} variant='text-only' outerClx='logo-outer-tooltip-class' />
|
|
30
|
-
<Tooltip select='.logo-outer-tooltip-class' text='home' position='right' offset={6}/>
|
|
31
|
-
</div>
|
|
32
|
-
<BackButton
|
|
33
|
-
size='sm'
|
|
34
|
-
clx={
|
|
35
|
-
'z-10 absolute top-14 left-6 !px-0 aspect-square ' +
|
|
36
|
-
'rounded-full hover:!bg-level-3 ' +
|
|
37
|
-
'back-button-tooltip-class '
|
|
38
|
-
}
|
|
39
|
-
onBack={onLeave}
|
|
40
|
-
/>
|
|
41
|
-
<Tooltip select='.back-button-tooltip-class' text='back' position='right' offset={5}/>
|
|
42
|
-
<div key={2} className={cn(
|
|
43
|
-
'w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3',
|
|
44
|
-
(cmmc.cartItems.length > 4 ? 'justify-between' : 'justify-start gap-10 pt-10')
|
|
45
|
-
)}>
|
|
46
|
-
<DesktopBagCarousel className='grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
|
|
47
|
-
<CartPanel
|
|
48
|
-
className='w-full border-none p-0'
|
|
49
|
-
itemClx='mb-2'
|
|
50
|
-
totalClx='sticky bottom-0 bg-background'
|
|
51
|
-
listClx='pr-3'
|
|
52
|
-
scrollAfter={4}
|
|
53
|
-
scrollHeightClx='min-h-[50vh] grow'
|
|
54
|
-
showPromoCode
|
|
55
|
-
showShipping
|
|
56
|
-
selectItems
|
|
57
|
-
/>
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
<div key={2} className='w-full h-full flex flex-col bg-level-1 min-h-screen justify-between'>
|
|
62
|
-
<ScrollArea className='w-full flex flex-row items-start justify-start overflow-y-auto'>
|
|
63
|
-
<div className='h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
|
64
|
-
<div key={1} className='bg-level-1 sticky h-[80px] bg-[#aaaaff] w-full top-0 flex justify-center items-end'>
|
|
65
|
-
<AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
|
|
66
|
-
<StepIndicator dotSizeRem={1.35} steps={stepNames} currentStep={step} className='gap-2 text-base w-pr-70' />
|
|
67
|
-
</div>
|
|
68
|
-
<div key={2} className='w-full max-w-[550px] mx-auto py-8'>
|
|
69
|
-
{children}
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
</ScrollArea>
|
|
73
|
-
<div className='w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
|
|
74
|
-
<div className='w-full max-w-[550px] mx-auto flex flex-col items-center'>
|
|
75
|
-
<LinksRow clx='w-full' />
|
|
76
|
-
</div>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
)
|
|
81
|
-
})
|
|
82
|
-
|
|
83
|
-
export default DesktopCheckoutPanel
|
|
@@ -1,67 +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
|
-
|
|
8
|
-
import { BackButton, Logo } from '../..'
|
|
9
|
-
import BagButton from '../bag-button'
|
|
10
|
-
import PolicyLinks from './policy-links'
|
|
11
|
-
import CartAccordian from './cart-accordian'
|
|
12
|
-
import type CheckoutPanelProps from './checkout-panel-props'
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const MobileCheckoutPanel: React.FC<PropsWithChildren & CheckoutPanelProps> = ({
|
|
16
|
-
step,
|
|
17
|
-
stepNames,
|
|
18
|
-
onLeave,
|
|
19
|
-
clx='',
|
|
20
|
-
children
|
|
21
|
-
}) => (
|
|
22
|
-
|
|
23
|
-
<div /* id='MOBILE_GRID' */ className={cn('bg-background flex flex-col justify-start px-4 pt-[101px]', clx)}>
|
|
24
|
-
<div className='fixed z-11 top-0 h-[45px] w-full flex justify-between items-stretch bg-background'>
|
|
25
|
-
<div className='flex items-stretch gap-1 grow-0'>
|
|
26
|
-
<BackButton
|
|
27
|
-
size='sm'
|
|
28
|
-
clx={
|
|
29
|
-
'-ml-5 !px-0 aspect-square h-full ' +
|
|
30
|
-
'rounded-full active:!bg-level-3 '
|
|
31
|
-
}
|
|
32
|
-
onBack={onLeave}
|
|
33
|
-
/>
|
|
34
|
-
<Logo size='xs' variant='text-only' href='/' onClick={onLeave} outerClx='-ml-2'/>
|
|
35
|
-
</div>
|
|
36
|
-
<StepIndicator
|
|
37
|
-
dotSizeRem={1}
|
|
38
|
-
steps={stepNames}
|
|
39
|
-
currentStep={step}
|
|
40
|
-
className='relative grow mx-2 top-[14px] text-xs font-semibold w-full'
|
|
41
|
-
/>
|
|
42
|
-
|
|
43
|
-
{/* 72px by observation (for centering). Need wrapper div since 'noLogin' returns null if no logged in user */}
|
|
44
|
-
<div className='w-[72px] grow-0 shrink-0 flex items-center justify-center'><AuthWidget noLogin className=''/></div>
|
|
45
|
-
</div>
|
|
46
|
-
<CartAccordian
|
|
47
|
-
icon={
|
|
48
|
-
<BagButton
|
|
49
|
-
animateOnHover={false}
|
|
50
|
-
showIfEmpty
|
|
51
|
-
size='sm'
|
|
52
|
-
className='mr-1 relative w-5 h-6 sm:w-6 sm:h-7'
|
|
53
|
-
iconClx='fill-foreground'
|
|
54
|
-
/>
|
|
55
|
-
}
|
|
56
|
-
clx='flex items-center justify-center w-full'
|
|
57
|
-
triggerClx='bg-background fixed z-11 top-[45px] left-0 right-0 !m-0 px-4'
|
|
58
|
-
panelClx='!py-0'
|
|
59
|
-
scrollAfter={3}
|
|
60
|
-
scrollHeightClx='h-[385px]'
|
|
61
|
-
/>
|
|
62
|
-
{children}
|
|
63
|
-
<PolicyLinks clx='mt-auto mb-3 pt-2' />
|
|
64
|
-
</div>
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
export default MobileCheckoutPanel
|