@luxfi/core 4.3.11
Sign up to get free protection for your applications and to get access to all the features.
- package/components/access-code-input.tsx +71 -0
- package/components/auth/login-panel.tsx +80 -0
- package/components/chat-widget.tsx +77 -0
- package/components/commerce/bag-button.tsx +67 -0
- package/components/commerce/checkout-panel/close-button.tsx +23 -0
- package/components/commerce/checkout-panel/dt-bag-carousel.tsx +36 -0
- package/components/commerce/checkout-panel/dt-checkout-panel.tsx +68 -0
- package/components/commerce/checkout-panel/index.tsx +124 -0
- package/components/commerce/checkout-panel/links-row.tsx +21 -0
- package/components/commerce/checkout-panel/mb-checkout-panel.tsx +51 -0
- package/components/commerce/checkout-panel/steps-indicator.tsx +39 -0
- package/components/commerce/checkout-panel/thank-you.tsx +18 -0
- package/components/commerce/desktop-bag-popup.tsx +78 -0
- package/components/commerce/mobile-bag-drawer.tsx +51 -0
- package/components/commerce/mobile-menu-toggle-button.tsx +35 -0
- package/components/commerce/mobile-nav-menu.tsx +64 -0
- package/components/contact-dialog/contact-form.tsx +112 -0
- package/components/contact-dialog/disclaimer.tsx +13 -0
- package/components/contact-dialog/index.tsx +64 -0
- package/components/copyright.tsx +21 -0
- package/components/footer.tsx +78 -0
- package/components/header/desktop.tsx +54 -0
- package/components/header/index.tsx +26 -0
- package/components/header/mobile.tsx +161 -0
- package/components/header/theme-toggle.tsx +26 -0
- package/components/icons/bag-icon.tsx +10 -0
- package/components/icons/github.tsx +14 -0
- package/components/icons/index.tsx +35 -0
- package/components/icons/lux-logo.tsx +10 -0
- package/components/icons/secure-delivery.tsx +13 -0
- package/components/icons/social-icon.tsx +35 -0
- package/components/icons/social-svg.css +3 -0
- package/components/icons/youtube-logo.tsx +59 -0
- package/components/index.ts +26 -0
- package/components/logo.tsx +81 -0
- package/components/mini-chart/index.tsx +8 -0
- package/components/mini-chart/mini-chart-props.ts +44 -0
- package/components/mini-chart/mini-chart.tsx +85 -0
- package/components/mini-chart/wrapper.tsx +23 -0
- package/components/not-found/index.tsx +27 -0
- package/components/not-found/not-found-content.mdx +5 -0
- package/components/root-layout.tsx +71 -0
- package/components/scripts.tsx +23 -0
- package/conf/index.ts +50 -0
- package/environment.d.ts +6 -0
- package/next/analytics/fpixel.ts +16 -0
- package/next/analytics/google-analytics.ts +14 -0
- package/next/analytics/index.ts +3 -0
- package/next/analytics/pixel-analytics.tsx +55 -0
- package/next/determine-device-mw.ts +16 -0
- package/next/font/get-app-router-font-classes.ts +12 -0
- package/next/font/load-and-return-lux-next-fonts-on-import.ts +67 -0
- package/next/font/local/Druk-Wide-Bold.ttf +0 -0
- package/next/font/local/Druk-Wide-Medium.ttf +0 -0
- package/next/font/next-font-desc.ts +28 -0
- package/next/font/pages-router-font-vars.tsx +18 -0
- package/next/head-metadata/from-next/metadata-types.ts +158 -0
- package/next/head-metadata/from-next/opengraph-types.ts +267 -0
- package/next/head-metadata/from-next/twitter-types.ts +92 -0
- package/next/head-metadata/index.tsx +208 -0
- package/next/index.ts +1 -0
- package/package.json +72 -0
- package/server-actions/firebase-app.ts +14 -0
- package/server-actions/index.ts +5 -0
- package/server-actions/store-contact.ts +51 -0
- package/site-def/footer/community.tsx +67 -0
- package/site-def/footer/company.ts +37 -0
- package/site-def/footer/ecosystem.ts +37 -0
- package/site-def/footer/index.tsx +26 -0
- package/site-def/footer/legal.ts +28 -0
- package/site-def/footer/network.ts +45 -0
- package/site-def/footer/svg/warpcast-logo.svg +12 -0
- package/site-def/index.ts +3 -0
- package/site-def/main-nav.ts +35 -0
- package/site-def/site-def.ts +37 -0
- package/style/lux-colors.css +85 -0
- package/style/lux-global.css +19 -0
- package/tailwind/fontFamily.tailwind.lux.ts +18 -0
- package/tailwind/index.ts +2 -0
- package/tailwind/lux-tw-fonts.ts +40 -0
- package/tailwind/tailwind.config.lux-preset.ts +10 -0
- package/tsconfig.json +10 -0
- package/types/contact-info.ts +11 -0
- package/types/index.ts +1 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
'use server'
|
2
|
+
|
3
|
+
import {
|
4
|
+
getFirestore,
|
5
|
+
collection,
|
6
|
+
setDoc,
|
7
|
+
doc,
|
8
|
+
serverTimestamp,
|
9
|
+
type Firestore,
|
10
|
+
} from 'firebase/firestore'
|
11
|
+
|
12
|
+
import firebaseApp from './firebase-app'
|
13
|
+
import type { ContactInfo } from '../types'
|
14
|
+
|
15
|
+
let dbInstance: Firestore | undefined = undefined
|
16
|
+
|
17
|
+
const getDBInstance = (name: string): Firestore => {
|
18
|
+
if (!dbInstance) {
|
19
|
+
dbInstance = getFirestore(firebaseApp, name)
|
20
|
+
}
|
21
|
+
return dbInstance
|
22
|
+
}
|
23
|
+
|
24
|
+
const storeContact = async ( formData: ContactInfo, enclosure: any ) => {
|
25
|
+
const email = formData.email
|
26
|
+
const phone = formData.phone
|
27
|
+
const dbName = enclosure?.dbId
|
28
|
+
const tableName = enclosure?.listId
|
29
|
+
|
30
|
+
let error: any | null = null
|
31
|
+
const tableRef = collection(getDBInstance(dbName), tableName)
|
32
|
+
|
33
|
+
try {
|
34
|
+
await setDoc(doc(tableRef, email), {
|
35
|
+
email,
|
36
|
+
phone,
|
37
|
+
timestamp: serverTimestamp(),
|
38
|
+
})
|
39
|
+
return { success: !error, error, id: email }
|
40
|
+
}
|
41
|
+
catch (e) {
|
42
|
+
console.error('Error writing contact info to database: ', e)
|
43
|
+
error = e
|
44
|
+
}
|
45
|
+
|
46
|
+
return { success: !error, error }
|
47
|
+
}
|
48
|
+
|
49
|
+
export {
|
50
|
+
storeContact as default
|
51
|
+
}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
import { Icons } from '../../components'
|
3
|
+
|
4
|
+
// @ts-ignore (will build in project that has @svgr support)
|
5
|
+
import SVG_warp_logo from './svg/warpcast-logo.svg'
|
6
|
+
|
7
|
+
const SOC_ICON_SIZE = 18
|
8
|
+
|
9
|
+
export default [
|
10
|
+
{
|
11
|
+
title: 'Community',
|
12
|
+
href: '',
|
13
|
+
variant: 'linkFG',
|
14
|
+
},
|
15
|
+
|
16
|
+
{
|
17
|
+
title: 'Lux Channel',
|
18
|
+
href: 'https://warpcast.com/~/channel/lux',
|
19
|
+
icon: <SVG_warp_logo width={SOC_ICON_SIZE} height={SOC_ICON_SIZE} /> //<Icons.SocialIcon network='warpcast' size={SOC_ICON_SIZE} />
|
20
|
+
},
|
21
|
+
{
|
22
|
+
title: 'Lux Discussions',
|
23
|
+
href: 'https://github.com/orgs/luxfi/discussions',
|
24
|
+
icon: <Icons.SocialIcon network='github' size={SOC_ICON_SIZE} />
|
25
|
+
},
|
26
|
+
|
27
|
+
/*
|
28
|
+
{
|
29
|
+
title: 'Discord',
|
30
|
+
href: 'https://discord.gg/luxdefi',
|
31
|
+
external: true,
|
32
|
+
icon: <Icons.SocialIcon network='discord' size={SOC_ICON_SIZE} />
|
33
|
+
},
|
34
|
+
{
|
35
|
+
title: 'Telegram',
|
36
|
+
href: 'https://t.me/luxdefi',
|
37
|
+
external: true,
|
38
|
+
icon: <Icons.SocialIcon network='telegram' size={SOC_ICON_SIZE} />
|
39
|
+
},
|
40
|
+
*/
|
41
|
+
|
42
|
+
{
|
43
|
+
title: '@luxdefi',
|
44
|
+
href: 'https://twitter.com/luxdefi',
|
45
|
+
icon: <Icons.SocialIcon network='x' size={SOC_ICON_SIZE} />
|
46
|
+
},
|
47
|
+
{
|
48
|
+
title: '@luxdefi',
|
49
|
+
href: 'https://facebook.com/luxdefi',
|
50
|
+
icon: <Icons.SocialIcon network='facebook' size={SOC_ICON_SIZE + 2} />
|
51
|
+
},
|
52
|
+
{
|
53
|
+
title: '@luxdefi',
|
54
|
+
href: 'https://www.instagram.com/luxdefi',
|
55
|
+
icon: <Icons.SocialIcon network='instagram' size={SOC_ICON_SIZE + 2} />
|
56
|
+
},
|
57
|
+
{
|
58
|
+
title: '@luxdefi',
|
59
|
+
href: 'https://linkedin.com/company/luxdefi',
|
60
|
+
icon: <Icons.SocialIcon network='linkedin' size={SOC_ICON_SIZE + 2} />
|
61
|
+
},
|
62
|
+
{
|
63
|
+
title: '@luxdefi',
|
64
|
+
href: 'https://www.youtube.com/@luxdefi',
|
65
|
+
icon: <Icons.SocialIcon network='youtube' size={SOC_ICON_SIZE + 2} />
|
66
|
+
},
|
67
|
+
] satisfies LinkDef[]
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
export default [
|
4
|
+
{
|
5
|
+
title: 'Company',
|
6
|
+
href: "https://lux.partners/",
|
7
|
+
variant: 'linkFG',
|
8
|
+
newTab: false,
|
9
|
+
},
|
10
|
+
{
|
11
|
+
title: 'About',
|
12
|
+
href: 'https://lux.partners',
|
13
|
+
newTab: false,
|
14
|
+
},
|
15
|
+
{
|
16
|
+
title: 'Brand',
|
17
|
+
href: 'https://drive.google.com/drive/folders/14OJtKLVakGY6883XO9yGbiHtlFxQUUm5?usp=share_link',
|
18
|
+
},
|
19
|
+
{
|
20
|
+
title: 'Careers',
|
21
|
+
href: 'https://docs.google.com/document/d/1SCt0Hg7EIs06TootKCA1am1xo4mcXoKF/edit#heading=h.30j0zll',
|
22
|
+
newTab: true,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
title: 'Partnerships',
|
26
|
+
href: 'https://apply.lux.partners/',
|
27
|
+
newTab: false,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
title: 'Press',
|
31
|
+
href: 'mailto:ai@lux.partners?subject=%E2%96%BC%20Press',
|
32
|
+
},
|
33
|
+
{
|
34
|
+
title: 'Help',
|
35
|
+
href: 'mailto:ai@lux.partners?subject=%E2%96%BC%20Help',
|
36
|
+
},
|
37
|
+
] satisfies LinkDef[]
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
export default [
|
4
|
+
{
|
5
|
+
title: 'Ecosystem',
|
6
|
+
href: 'https://lux.link',
|
7
|
+
variant: 'linkFG'
|
8
|
+
},
|
9
|
+
{
|
10
|
+
title: 'Lux AI',
|
11
|
+
href: 'https://lux.chat',
|
12
|
+
},
|
13
|
+
{
|
14
|
+
title: 'Lux Credit',
|
15
|
+
href: 'https://lux.credit',
|
16
|
+
},
|
17
|
+
{
|
18
|
+
title: 'Lux Exchange',
|
19
|
+
href: 'https://lux.exchange',
|
20
|
+
},
|
21
|
+
{
|
22
|
+
title: 'Lux Finance',
|
23
|
+
href: 'https://lux.finance',
|
24
|
+
},
|
25
|
+
{
|
26
|
+
title: 'Lux Market',
|
27
|
+
href: 'https://lux.market',
|
28
|
+
},
|
29
|
+
{
|
30
|
+
title: 'Lux Shop',
|
31
|
+
href: 'https://lux.shop',
|
32
|
+
},
|
33
|
+
{
|
34
|
+
title: 'Lux Quest',
|
35
|
+
href: 'https://lux.quest',
|
36
|
+
},
|
37
|
+
] satisfies LinkDef[]
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
import ecosystem from './ecosystem'
|
4
|
+
import network from './network'
|
5
|
+
import company from './company'
|
6
|
+
import community from './community'
|
7
|
+
import { legal, legalColumn } from './legal'
|
8
|
+
|
9
|
+
|
10
|
+
const standard = [
|
11
|
+
ecosystem,
|
12
|
+
network,
|
13
|
+
company,
|
14
|
+
community,
|
15
|
+
] satisfies LinkDef[][]
|
16
|
+
|
17
|
+
export {
|
18
|
+
ecosystem,
|
19
|
+
network,
|
20
|
+
company,
|
21
|
+
community,
|
22
|
+
legal,
|
23
|
+
legalColumn,
|
24
|
+
standard
|
25
|
+
}
|
26
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
const legal: LinkDef[] = [
|
4
|
+
{
|
5
|
+
title: 'Terms and Conditions',
|
6
|
+
href: '/terms',
|
7
|
+
newTab: true,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
title: 'Privacy Policy',
|
11
|
+
href: '/privacy',
|
12
|
+
newTab: true,
|
13
|
+
},
|
14
|
+
]
|
15
|
+
|
16
|
+
const title: LinkDef =
|
17
|
+
{
|
18
|
+
title: 'Legal',
|
19
|
+
href: '',
|
20
|
+
variant: 'linkFG',
|
21
|
+
}
|
22
|
+
|
23
|
+
const legalColumn: LinkDef[] = [title, ...legal]
|
24
|
+
|
25
|
+
export {
|
26
|
+
legal,
|
27
|
+
legalColumn
|
28
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
export default [
|
4
|
+
{
|
5
|
+
title: 'Network',
|
6
|
+
href: "https://lux.network/",
|
7
|
+
variant: 'linkFG'
|
8
|
+
},
|
9
|
+
{
|
10
|
+
title: 'Lux Bridge',
|
11
|
+
href: "https://bridge.lux.network/",
|
12
|
+
},
|
13
|
+
{
|
14
|
+
title: 'Lux Explorer',
|
15
|
+
href: "https://explore.lux.network/",
|
16
|
+
},
|
17
|
+
{
|
18
|
+
title: 'Lux Wallet',
|
19
|
+
href: "https://wallet.lux.network/",
|
20
|
+
},
|
21
|
+
{
|
22
|
+
title: 'Lux Safe',
|
23
|
+
href: "https://safe.lux.network/",
|
24
|
+
},
|
25
|
+
{
|
26
|
+
title: 'Lux Validator',
|
27
|
+
href: "https://lux.network/validator",
|
28
|
+
},
|
29
|
+
{
|
30
|
+
title: 'Lux Coin',
|
31
|
+
href: "https://lux.network/coin",
|
32
|
+
},
|
33
|
+
{
|
34
|
+
title: 'Governance',
|
35
|
+
href: "https://lux.vote",
|
36
|
+
},
|
37
|
+
{
|
38
|
+
title: 'Open Source',
|
39
|
+
href: 'https://github.com/luxfi',
|
40
|
+
},
|
41
|
+
{
|
42
|
+
title: 'Launch Subnet',
|
43
|
+
href: 'https://docs.lux.network/build/subnet/hello-subnet',
|
44
|
+
},
|
45
|
+
] satisfies LinkDef[]
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<svg viewBox="0 0 1260 1260" fill="none" xmlns="http://www.w3.org/2000/svg">
|
2
|
+
<g clip-path="url(#clip0_1_2)">
|
3
|
+
<!-- path d="M947.747 1259.61H311.861C139.901 1259.61 0 1119.72 0 947.752V311.871C0 139.907 139.901 0.00541362 311.861 0.00541362H947.747C1119.71 0.00541362 1259.61 139.907 1259.61 311.871V947.752C1259.61 1119.72 1119.71 1259.61 947.747 1259.61Z" fill="#472A91"></path -->
|
4
|
+
<path d="M826.513 398.633L764.404 631.889L702.093 398.633H558.697L495.789 633.607L433.087 398.633H269.764L421.528 914.36H562.431L629.807 674.876L697.181 914.36H838.388L989.819 398.633H826.513Z" fill="currentColor">
|
5
|
+
</path>
|
6
|
+
</g>
|
7
|
+
<defs>
|
8
|
+
<clipPath id="clip0_1_2">
|
9
|
+
<rect width="1259.61" height="1259.61" fill="white"></rect>
|
10
|
+
</clipPath>
|
11
|
+
</defs>
|
12
|
+
</svg>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
2
|
+
|
3
|
+
export default [
|
4
|
+
{
|
5
|
+
title: "AI",
|
6
|
+
href: "https://lux.chat",
|
7
|
+
newTab: false,
|
8
|
+
},
|
9
|
+
{
|
10
|
+
title: "Credit",
|
11
|
+
href: "https://lux.credit",
|
12
|
+
newTab: false,
|
13
|
+
},
|
14
|
+
{
|
15
|
+
title: "Exchange",
|
16
|
+
href: "https://lux.exchange",
|
17
|
+
newTab: false,
|
18
|
+
},
|
19
|
+
{
|
20
|
+
title: "Finance",
|
21
|
+
href: "https://lux.finance",
|
22
|
+
newTab: false,
|
23
|
+
},
|
24
|
+
{
|
25
|
+
title: "Market",
|
26
|
+
href: "https://lux.market",
|
27
|
+
newTab: false,
|
28
|
+
},
|
29
|
+
{
|
30
|
+
title: "Network",
|
31
|
+
href: "https://lux.network",
|
32
|
+
newTab: false,
|
33
|
+
},
|
34
|
+
] satisfies LinkDef[]
|
35
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import type { LinkDef } from '@hanzo/ui/types'
|
3
|
+
|
4
|
+
interface SiteDef {
|
5
|
+
/** url of this site. All nav links in the system will show it in 'current' state */
|
6
|
+
currentAs?: string
|
7
|
+
nav: {
|
8
|
+
/** common elements (will auto-select currentAs if it's provide) */
|
9
|
+
/** optional feature element. right-most after 'elements' (any min-w is ignored) */
|
10
|
+
common: LinkDef[]
|
11
|
+
featured?: LinkDef[]
|
12
|
+
auth?: boolean
|
13
|
+
cart?: React.ReactNode
|
14
|
+
}
|
15
|
+
|
16
|
+
/**
|
17
|
+
* Array of columns, each of which itself is an array of links
|
18
|
+
* (or "title defs" where href='' and variant='linkFG')
|
19
|
+
* Common use case: To render a site-specific first column:
|
20
|
+
* {
|
21
|
+
* footer[myColumn, ...commonColumnsFromUi]
|
22
|
+
* }
|
23
|
+
* see: @hanzo/ui/siteDef/footer (default export)
|
24
|
+
* or @hanzo/ui/siteDef/footer/common
|
25
|
+
*/
|
26
|
+
footer: LinkDef[][]
|
27
|
+
|
28
|
+
/** optional override of default 'above copyright' horizantal links */
|
29
|
+
/** default (undefined or absent): @ui/sideDef/footer/legal are rendered */
|
30
|
+
/** [] renders nothing above the copyright */
|
31
|
+
aboveCopyright?: LinkDef[]
|
32
|
+
|
33
|
+
/** any site-specific stuff we'd like access to (link urls, etc) */
|
34
|
+
ext?: any
|
35
|
+
}
|
36
|
+
|
37
|
+
export { type SiteDef as default }
|
@@ -0,0 +1,85 @@
|
|
1
|
+
@tailwind base;
|
2
|
+
/* see https://stackoverflow.com/questions/69746121/using-nextjs-how-can-you-import-in-css-using-tailwind-css */
|
3
|
+
|
4
|
+
@layer base {
|
5
|
+
|
6
|
+
:root, .hanzo-ui-light-theme {
|
7
|
+
--hz-ui-fg-0: hsl(0 0% 0%);
|
8
|
+
--hz-ui-fg-body: hsl(0 0% 10%);
|
9
|
+
--hz-ui-fg-1: hsl(0 0% 20%);
|
10
|
+
--hz-ui-fg-2: hsl(0 0% 35%);
|
11
|
+
--hz-ui-fg-3: hsl(0 0% 50%);
|
12
|
+
--hz-ui-fg-4: hsl(0 0% 70%);
|
13
|
+
--hz-ui-fg-5: hsl(0 0% 90%);
|
14
|
+
|
15
|
+
--hz-ui-bg-0: hsl(0 0% 100%);
|
16
|
+
--hz-ui-bg-1: hsl(0 0% 90%);
|
17
|
+
--hz-ui-bg-2: hsl(0 0% 75%);
|
18
|
+
--hz-ui-bg-3: hsl(0 0% 55%);
|
19
|
+
|
20
|
+
--hz-ui-bg-overlay: hsla(0 0% 100% 0.60);
|
21
|
+
|
22
|
+
--hz-ui-bg-inverted: var(--hz-ui-fg-0);
|
23
|
+
--hz-ui-bg-inverted-hover: hsla(0, 0%, 0%, 0.85);
|
24
|
+
|
25
|
+
--hz-ui-fg-inverted: var(--hz-ui-bg-0);
|
26
|
+
|
27
|
+
--hz-ui-secondary-0: hsl(262, 7%, 82%);
|
28
|
+
--hz-ui-secondary-1: hsl(258, 7%, 72%);
|
29
|
+
--hz-ui-secondary-2: hsl(254, 7%, 62%);
|
30
|
+
--hz-ui-secondary-3: hsl(250, 5%, 53%);
|
31
|
+
|
32
|
+
--hz-ui-primary: var(--hz-ui-bg-inverted);
|
33
|
+
--hz-ui-primary-hover: var(--hz-ui-bg-inverted-hover);
|
34
|
+
--hz-ui-primary-fg: var(--hz-ui-fg-inverted);
|
35
|
+
|
36
|
+
--hz-ui-secondary: var(--hz-ui-secondary-0);
|
37
|
+
--hz-ui-secondary-hover: var(--hz-ui-secondary-2);
|
38
|
+
--hz-ui-secondary-fg: var(--hz-ui-bg-0);
|
39
|
+
|
40
|
+
--hz-ui-nav: var(--hz-ui-fg-4);
|
41
|
+
--hz-ui-nav-current: var(--hz-ui-fg-0);
|
42
|
+
--hz-ui-nav-hover: var(--hz-ui-fg-0);
|
43
|
+
|
44
|
+
--hz-ui-destructive: hsl(0 62.8% 45%);
|
45
|
+
--hz-ui-destructive-hover: hsl(0 62.8% 25%);
|
46
|
+
--hz-ui-destructive-fg: hsl(0 0% 100%);
|
47
|
+
|
48
|
+
--hz-ui-ring: var(--hz-ui-fg-1);
|
49
|
+
|
50
|
+
--hz-ui-radius: 0.5rem;
|
51
|
+
}
|
52
|
+
|
53
|
+
.hanzo-ui-dark-theme {
|
54
|
+
|
55
|
+
--hz-ui-fg-0: hsl(0 0% 100%);
|
56
|
+
--hz-ui-fg-body: hsl(0, 0%, 97%);
|
57
|
+
--hz-ui-fg-1: hsl(0 0% 85%);
|
58
|
+
--hz-ui-fg-2: hsl(0 0% 70%);
|
59
|
+
--hz-ui-fg-3: hsl(0 0% 55%);
|
60
|
+
--hz-ui-fg-4: hsl(0 0% 40%);
|
61
|
+
--hz-ui-fg-5: hsl(0 0% 25%);
|
62
|
+
|
63
|
+
--hz-ui-bg-inverted: var(--hz-ui-fg-0);
|
64
|
+
--hz-ui-bg-inverted-hover: hsla(0, 0%, 100%, 0.85);
|
65
|
+
|
66
|
+
--hz-ui-bg-3: hsl(0 0% 25%);
|
67
|
+
--hz-ui-bg-2: hsl(0 0% 18%);
|
68
|
+
--hz-ui-bg-1: hsl(0 0% 12%);
|
69
|
+
--hz-ui-bg-0: hsl(0 0% 0%);
|
70
|
+
|
71
|
+
--hz-ui-bg-overlay: hsla(0 0% 0% 0.60);
|
72
|
+
|
73
|
+
--hz-ui-fg-inverted: var(--hz-ui-bg-0);
|
74
|
+
|
75
|
+
--hz-ui-secondary-0: hsl(250, 5%, 53%);
|
76
|
+
--hz-ui-secondary-1: hsl(254, 7%, 62%);
|
77
|
+
--hz-ui-secondary-2: hsl(258, 7%, 72%);
|
78
|
+
--hz-ui-secondary-3: hsl(262, 7%, 82%);
|
79
|
+
|
80
|
+
--hz-ui-secondary-fg: var(--hz-ui-fg-0);
|
81
|
+
|
82
|
+
}
|
83
|
+
|
84
|
+
}
|
85
|
+
|
@@ -0,0 +1,19 @@
|
|
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
|
+
.nextjs-toast-errors-parent {
|
14
|
+
display: none;
|
15
|
+
}
|
16
|
+
|
17
|
+
.font-heading, h1, h2, h3 {
|
18
|
+
@apply uppercase;
|
19
|
+
}
|
@@ -0,0 +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
|
+
}
|
@@ -0,0 +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
|
+
|
40
|
+
] as TwFontDesc[]
|
package/tsconfig.json
ADDED
package/types/index.ts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export type { ContactInfo, ContactInfoFields } from './contact-info'
|