@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,68 +1,68 @@
|
|
|
1
|
-
// import { Inter } from 'next/font/google'
|
|
2
|
-
import localFont from 'next/font/local'
|
|
3
|
-
|
|
4
|
-
import type { TwFontDesc } from '@hanzo/ui/tailwind' // TODO
|
|
5
|
-
import type NextFontDesc from './next-font-desc'
|
|
6
|
-
|
|
7
|
-
import twFonts from '../../tailwind/lux-tw-fonts'
|
|
8
|
-
|
|
9
|
-
/*
|
|
10
|
-
Creating NextFontDesc's and TwFontDesc's has to be seperated because they are needed
|
|
11
|
-
at different times during the next compile / build. Otherwise a nasty
|
|
12
|
-
race condition happens!
|
|
13
|
-
|
|
14
|
-
Also, requires that "Font loaders must be called and assigned to a const in the module scope"
|
|
15
|
-
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
const drukWide = localFont({
|
|
19
|
-
src: [
|
|
20
|
-
{
|
|
21
|
-
path: './local/Druk-Wide-Bold.ttf',
|
|
22
|
-
weight: '700',
|
|
23
|
-
style: 'normal'
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
path: './local/Druk-Wide-Medium.ttf',
|
|
27
|
-
weight: '500',
|
|
28
|
-
style: 'normal',
|
|
29
|
-
},
|
|
30
|
-
],
|
|
31
|
-
display: 'swap',
|
|
32
|
-
variable: '--font-druk-wide',
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
const inter = localFont({
|
|
36
|
-
src: './local/InterVariable.ttf',
|
|
37
|
-
display: 'swap',
|
|
38
|
-
variable: '--font-inter',
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
export default [
|
|
42
|
-
{
|
|
43
|
-
font: inter,
|
|
44
|
-
twName: 'sans'
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
font: inter,
|
|
48
|
-
twName: 'nav'
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
font: drukWide,
|
|
52
|
-
twName: 'heading'
|
|
53
|
-
}
|
|
54
|
-
].map (
|
|
55
|
-
(el) => {
|
|
56
|
-
const twFont: TwFontDesc | undefined = twFonts.find((twf: TwFontDesc) => (el.twName === twf.twName))
|
|
57
|
-
if (!twFont) {
|
|
58
|
-
throw new Error('lux-next-fonts: Next font is not paired to a TW font!')
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return ({
|
|
62
|
-
...twFont,
|
|
63
|
-
nextFont: el.font,
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
) satisfies NextFontDesc[]
|
|
67
|
-
|
|
68
|
-
|
|
1
|
+
// import { Inter } from 'next/font/google'
|
|
2
|
+
import localFont from 'next/font/local'
|
|
3
|
+
|
|
4
|
+
import type { TwFontDesc } from '@hanzo/ui/tailwind' // TODO
|
|
5
|
+
import type NextFontDesc from './next-font-desc'
|
|
6
|
+
|
|
7
|
+
import twFonts from '../../tailwind/lux-tw-fonts'
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
Creating NextFontDesc's and TwFontDesc's has to be seperated because they are needed
|
|
11
|
+
at different times during the next compile / build. Otherwise a nasty
|
|
12
|
+
race condition happens!
|
|
13
|
+
|
|
14
|
+
Also, requires that "Font loaders must be called and assigned to a const in the module scope"
|
|
15
|
+
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const drukWide = localFont({
|
|
19
|
+
src: [
|
|
20
|
+
{
|
|
21
|
+
path: './local/Druk-Wide-Bold.ttf',
|
|
22
|
+
weight: '700',
|
|
23
|
+
style: 'normal'
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
path: './local/Druk-Wide-Medium.ttf',
|
|
27
|
+
weight: '500',
|
|
28
|
+
style: 'normal',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
display: 'swap',
|
|
32
|
+
variable: '--font-druk-wide',
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
const inter = localFont({
|
|
36
|
+
src: './local/InterVariable.ttf',
|
|
37
|
+
display: 'swap',
|
|
38
|
+
variable: '--font-inter',
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
export default [
|
|
42
|
+
{
|
|
43
|
+
font: inter,
|
|
44
|
+
twName: 'sans'
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
font: inter,
|
|
48
|
+
twName: 'nav'
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
font: drukWide,
|
|
52
|
+
twName: 'heading'
|
|
53
|
+
}
|
|
54
|
+
].map (
|
|
55
|
+
(el) => {
|
|
56
|
+
const twFont: TwFontDesc | undefined = twFonts.find((twf: TwFontDesc) => (el.twName === twf.twName))
|
|
57
|
+
if (!twFont) {
|
|
58
|
+
throw new Error('lux-next-fonts: Next font is not paired to a TW font!')
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return ({
|
|
62
|
+
...twFont,
|
|
63
|
+
nextFont: el.font,
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
) satisfies NextFontDesc[]
|
|
67
|
+
|
|
68
|
+
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
-
|
|
3
|
-
// from next repo
|
|
4
|
-
type NextFont = {
|
|
5
|
-
className: string
|
|
6
|
-
style: { fontFamily: string; fontWeight?: number; fontStyle?: string }
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
// from next repo
|
|
10
|
-
type NextFontWithVariable = NextFont & {
|
|
11
|
-
variable: string
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/*
|
|
16
|
-
NextFontDesc and TwFontDesc have to be seperate because they are needed
|
|
17
|
-
at different times during the next compile / build. Otherwise a nasty
|
|
18
|
-
race condition happens! That's why they are in different files.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
interface NextFontDesc extends TwFontDesc {
|
|
22
|
-
nextFont: NextFontWithVariable
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export {
|
|
26
|
-
type NextFontDesc as default,
|
|
27
|
-
type NextFontWithVariable,
|
|
1
|
+
import type { TwFontDesc } from '@hanzo/ui/tailwind'
|
|
2
|
+
|
|
3
|
+
// from next repo
|
|
4
|
+
type NextFont = {
|
|
5
|
+
className: string
|
|
6
|
+
style: { fontFamily: string; fontWeight?: number; fontStyle?: string }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// from next repo
|
|
10
|
+
type NextFontWithVariable = NextFont & {
|
|
11
|
+
variable: string
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
NextFontDesc and TwFontDesc have to be seperate because they are needed
|
|
17
|
+
at different times during the next compile / build. Otherwise a nasty
|
|
18
|
+
race condition happens! That's why they are in different files.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
interface NextFontDesc extends TwFontDesc {
|
|
22
|
+
nextFont: NextFontWithVariable
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
type NextFontDesc as default,
|
|
27
|
+
type NextFontWithVariable,
|
|
28
28
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
import nextFonts from './load-and-return-lux-next-fonts-on-import'
|
|
3
|
-
import type NextFontDesc from './next-font-desc'
|
|
4
|
-
|
|
5
|
-
const PagesRouterFontVars: React.FC = () => {
|
|
6
|
-
|
|
7
|
-
const fontVars = nextFonts.map((fd: NextFontDesc) => (
|
|
8
|
-
`${fd.cssVar}: ${fd.nextFont.style.fontFamily};`
|
|
9
|
-
)).join('\n')
|
|
10
|
-
|
|
11
|
-
return <style jsx global>{`
|
|
12
|
-
html {
|
|
13
|
-
${fontVars}
|
|
14
|
-
}
|
|
15
|
-
`}</style>
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export default PagesRouterFontVars
|
|
1
|
+
|
|
2
|
+
import nextFonts from './load-and-return-lux-next-fonts-on-import'
|
|
3
|
+
import type NextFontDesc from './next-font-desc'
|
|
4
|
+
|
|
5
|
+
const PagesRouterFontVars: React.FC = () => {
|
|
6
|
+
|
|
7
|
+
const fontVars = nextFonts.map((fd: NextFontDesc) => (
|
|
8
|
+
`${fd.cssVar}: ${fd.nextFont.style.fontFamily};`
|
|
9
|
+
)).join('\n')
|
|
10
|
+
|
|
11
|
+
return <style jsx global>{`
|
|
12
|
+
html {
|
|
13
|
+
${fontVars}
|
|
14
|
+
}
|
|
15
|
+
`}</style>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default PagesRouterFontVars
|
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* Metadata types
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export interface DeprecatedMetadataFields {
|
|
8
|
-
/**
|
|
9
|
-
* Deprecated options that have a preferred method
|
|
10
|
-
* @deprecated Use appWebApp to configure apple-mobile-web-app-capable which provides
|
|
11
|
-
* @see https://www.appsloveworld.com/coding/iphone/11/difference-between-apple-mobile-web-app-capable-and-apple-touch-fullscreen-ipho
|
|
12
|
-
*/
|
|
13
|
-
'apple-touch-fullscreen'?: never
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Obsolete since iOS 7.
|
|
17
|
-
* @see https://web.dev/apple-touch-icon/
|
|
18
|
-
* @deprecated use icons.apple or instead
|
|
19
|
-
*/
|
|
20
|
-
'apple-touch-icon-precomposed'?: never
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export type TemplateString =
|
|
24
|
-
| DefaultTemplateString
|
|
25
|
-
| AbsoluteTemplateString
|
|
26
|
-
| AbsoluteString
|
|
27
|
-
export type DefaultTemplateString = {
|
|
28
|
-
default: string
|
|
29
|
-
template: string
|
|
30
|
-
}
|
|
31
|
-
export type AbsoluteTemplateString = {
|
|
32
|
-
absolute: string
|
|
33
|
-
template: string | null
|
|
34
|
-
}
|
|
35
|
-
export type AbsoluteString = {
|
|
36
|
-
absolute: string
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export type Author = {
|
|
40
|
-
// renders as <link rel="author"...
|
|
41
|
-
url?: string | URL
|
|
42
|
-
// renders as <meta name="author"...
|
|
43
|
-
name?: string
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// does not include "unsafe-URL". to use this users should
|
|
47
|
-
// use '"unsafe-URL" as ReferrerEnum'
|
|
48
|
-
export type ReferrerEnum =
|
|
49
|
-
| 'no-referrer'
|
|
50
|
-
| 'origin'
|
|
51
|
-
| 'no-referrer-when-downgrade'
|
|
52
|
-
| 'origin-when-cross-origin'
|
|
53
|
-
| 'same-origin'
|
|
54
|
-
| 'strict-origin'
|
|
55
|
-
| 'strict-origin-when-cross-origin'
|
|
56
|
-
|
|
57
|
-
export type ColorSchemeEnum =
|
|
58
|
-
| 'normal'
|
|
59
|
-
| 'light'
|
|
60
|
-
| 'dark'
|
|
61
|
-
| 'light dark'
|
|
62
|
-
| 'dark light'
|
|
63
|
-
| 'only light'
|
|
64
|
-
|
|
65
|
-
type RobotsInfo = {
|
|
66
|
-
// all and none will be inferred from index/follow boolean options
|
|
67
|
-
index?: boolean
|
|
68
|
-
follow?: boolean
|
|
69
|
-
|
|
70
|
-
/** @deprecated set index to false instead */
|
|
71
|
-
noindex?: never
|
|
72
|
-
/** @deprecated set follow to false instead */
|
|
73
|
-
nofollow?: never
|
|
74
|
-
|
|
75
|
-
noarchive?: boolean
|
|
76
|
-
nosnippet?: boolean
|
|
77
|
-
noimageindex?: boolean
|
|
78
|
-
nocache?: boolean
|
|
79
|
-
notranslate?: boolean
|
|
80
|
-
indexifembedded?: boolean
|
|
81
|
-
nositelinkssearchbox?: boolean
|
|
82
|
-
unavailable_after?: string
|
|
83
|
-
'max-video-preview'?: number | string
|
|
84
|
-
'max-image-preview'?: 'none' | 'standard' | 'large'
|
|
85
|
-
'max-snippet'?: number
|
|
86
|
-
}
|
|
87
|
-
export type Robots = RobotsInfo & {
|
|
88
|
-
// if you want to specify an alternate robots just for google
|
|
89
|
-
googleBot?: string | RobotsInfo
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export type ResolvedRobots = {
|
|
93
|
-
basic: string | null
|
|
94
|
-
googleBot: string | null
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export type IconURL = string | URL
|
|
98
|
-
export type Icon = IconURL | IconDescriptor
|
|
99
|
-
export type IconDescriptor = {
|
|
100
|
-
url: string | URL
|
|
101
|
-
type?: string
|
|
102
|
-
sizes?: string
|
|
103
|
-
color?: string
|
|
104
|
-
/** defaults to rel="icon" unless superseded by Icons map */
|
|
105
|
-
rel?: string
|
|
106
|
-
media?: string
|
|
107
|
-
/**
|
|
108
|
-
* @see https://developer.mozilla.org/docs/Web/API/HTMLImageElement/fetchPriority
|
|
109
|
-
*/
|
|
110
|
-
fetchPriority?: 'high' | 'low' | 'auto'
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export type Icons = {
|
|
114
|
-
/** rel="icon" */
|
|
115
|
-
icon?: Icon | Icon[]
|
|
116
|
-
/** rel="shortcut icon" */
|
|
117
|
-
shortcut?: Icon | Icon[]
|
|
118
|
-
/**
|
|
119
|
-
* @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
|
|
120
|
-
* rel="apple-touch-icon"
|
|
121
|
-
*/
|
|
122
|
-
apple?: Icon | Icon[]
|
|
123
|
-
/** rel inferred from descriptor, defaults to "icon" */
|
|
124
|
-
other?: IconDescriptor | IconDescriptor[]
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export type Verification = {
|
|
128
|
-
google?: null | string | number | (string | number)[]
|
|
129
|
-
yahoo?: null | string | number | (string | number)[]
|
|
130
|
-
yandex?: null | string | number | (string | number)[]
|
|
131
|
-
me?: null | string | number | (string | number)[]
|
|
132
|
-
// if you ad-hoc additional verification
|
|
133
|
-
other?: {
|
|
134
|
-
[name: string]: string | number | (string | number)[]
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
export type ResolvedVerification = {
|
|
139
|
-
google?: null | (string | number)[]
|
|
140
|
-
yahoo?: null | (string | number)[]
|
|
141
|
-
yandex?: null | (string | number)[]
|
|
142
|
-
me?: null | (string | number)[]
|
|
143
|
-
other?: {
|
|
144
|
-
[name: string]: (string | number)[]
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
export type ResolvedIcons = {
|
|
149
|
-
icon: IconDescriptor[]
|
|
150
|
-
apple: IconDescriptor[]
|
|
151
|
-
shortcut?: IconDescriptor[]
|
|
152
|
-
other?: IconDescriptor[]
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export type ThemeColorDescriptor = {
|
|
156
|
-
color: string
|
|
157
|
-
media?: string
|
|
158
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
*
|
|
3
|
+
* Metadata types
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export interface DeprecatedMetadataFields {
|
|
8
|
+
/**
|
|
9
|
+
* Deprecated options that have a preferred method
|
|
10
|
+
* @deprecated Use appWebApp to configure apple-mobile-web-app-capable which provides
|
|
11
|
+
* @see https://www.appsloveworld.com/coding/iphone/11/difference-between-apple-mobile-web-app-capable-and-apple-touch-fullscreen-ipho
|
|
12
|
+
*/
|
|
13
|
+
'apple-touch-fullscreen'?: never
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Obsolete since iOS 7.
|
|
17
|
+
* @see https://web.dev/apple-touch-icon/
|
|
18
|
+
* @deprecated use icons.apple or instead
|
|
19
|
+
*/
|
|
20
|
+
'apple-touch-icon-precomposed'?: never
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type TemplateString =
|
|
24
|
+
| DefaultTemplateString
|
|
25
|
+
| AbsoluteTemplateString
|
|
26
|
+
| AbsoluteString
|
|
27
|
+
export type DefaultTemplateString = {
|
|
28
|
+
default: string
|
|
29
|
+
template: string
|
|
30
|
+
}
|
|
31
|
+
export type AbsoluteTemplateString = {
|
|
32
|
+
absolute: string
|
|
33
|
+
template: string | null
|
|
34
|
+
}
|
|
35
|
+
export type AbsoluteString = {
|
|
36
|
+
absolute: string
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export type Author = {
|
|
40
|
+
// renders as <link rel="author"...
|
|
41
|
+
url?: string | URL
|
|
42
|
+
// renders as <meta name="author"...
|
|
43
|
+
name?: string
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// does not include "unsafe-URL". to use this users should
|
|
47
|
+
// use '"unsafe-URL" as ReferrerEnum'
|
|
48
|
+
export type ReferrerEnum =
|
|
49
|
+
| 'no-referrer'
|
|
50
|
+
| 'origin'
|
|
51
|
+
| 'no-referrer-when-downgrade'
|
|
52
|
+
| 'origin-when-cross-origin'
|
|
53
|
+
| 'same-origin'
|
|
54
|
+
| 'strict-origin'
|
|
55
|
+
| 'strict-origin-when-cross-origin'
|
|
56
|
+
|
|
57
|
+
export type ColorSchemeEnum =
|
|
58
|
+
| 'normal'
|
|
59
|
+
| 'light'
|
|
60
|
+
| 'dark'
|
|
61
|
+
| 'light dark'
|
|
62
|
+
| 'dark light'
|
|
63
|
+
| 'only light'
|
|
64
|
+
|
|
65
|
+
type RobotsInfo = {
|
|
66
|
+
// all and none will be inferred from index/follow boolean options
|
|
67
|
+
index?: boolean
|
|
68
|
+
follow?: boolean
|
|
69
|
+
|
|
70
|
+
/** @deprecated set index to false instead */
|
|
71
|
+
noindex?: never
|
|
72
|
+
/** @deprecated set follow to false instead */
|
|
73
|
+
nofollow?: never
|
|
74
|
+
|
|
75
|
+
noarchive?: boolean
|
|
76
|
+
nosnippet?: boolean
|
|
77
|
+
noimageindex?: boolean
|
|
78
|
+
nocache?: boolean
|
|
79
|
+
notranslate?: boolean
|
|
80
|
+
indexifembedded?: boolean
|
|
81
|
+
nositelinkssearchbox?: boolean
|
|
82
|
+
unavailable_after?: string
|
|
83
|
+
'max-video-preview'?: number | string
|
|
84
|
+
'max-image-preview'?: 'none' | 'standard' | 'large'
|
|
85
|
+
'max-snippet'?: number
|
|
86
|
+
}
|
|
87
|
+
export type Robots = RobotsInfo & {
|
|
88
|
+
// if you want to specify an alternate robots just for google
|
|
89
|
+
googleBot?: string | RobotsInfo
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export type ResolvedRobots = {
|
|
93
|
+
basic: string | null
|
|
94
|
+
googleBot: string | null
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export type IconURL = string | URL
|
|
98
|
+
export type Icon = IconURL | IconDescriptor
|
|
99
|
+
export type IconDescriptor = {
|
|
100
|
+
url: string | URL
|
|
101
|
+
type?: string
|
|
102
|
+
sizes?: string
|
|
103
|
+
color?: string
|
|
104
|
+
/** defaults to rel="icon" unless superseded by Icons map */
|
|
105
|
+
rel?: string
|
|
106
|
+
media?: string
|
|
107
|
+
/**
|
|
108
|
+
* @see https://developer.mozilla.org/docs/Web/API/HTMLImageElement/fetchPriority
|
|
109
|
+
*/
|
|
110
|
+
fetchPriority?: 'high' | 'low' | 'auto'
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export type Icons = {
|
|
114
|
+
/** rel="icon" */
|
|
115
|
+
icon?: Icon | Icon[]
|
|
116
|
+
/** rel="shortcut icon" */
|
|
117
|
+
shortcut?: Icon | Icon[]
|
|
118
|
+
/**
|
|
119
|
+
* @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
|
|
120
|
+
* rel="apple-touch-icon"
|
|
121
|
+
*/
|
|
122
|
+
apple?: Icon | Icon[]
|
|
123
|
+
/** rel inferred from descriptor, defaults to "icon" */
|
|
124
|
+
other?: IconDescriptor | IconDescriptor[]
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export type Verification = {
|
|
128
|
+
google?: null | string | number | (string | number)[]
|
|
129
|
+
yahoo?: null | string | number | (string | number)[]
|
|
130
|
+
yandex?: null | string | number | (string | number)[]
|
|
131
|
+
me?: null | string | number | (string | number)[]
|
|
132
|
+
// if you ad-hoc additional verification
|
|
133
|
+
other?: {
|
|
134
|
+
[name: string]: string | number | (string | number)[]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export type ResolvedVerification = {
|
|
139
|
+
google?: null | (string | number)[]
|
|
140
|
+
yahoo?: null | (string | number)[]
|
|
141
|
+
yandex?: null | (string | number)[]
|
|
142
|
+
me?: null | (string | number)[]
|
|
143
|
+
other?: {
|
|
144
|
+
[name: string]: (string | number)[]
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export type ResolvedIcons = {
|
|
149
|
+
icon: IconDescriptor[]
|
|
150
|
+
apple: IconDescriptor[]
|
|
151
|
+
shortcut?: IconDescriptor[]
|
|
152
|
+
other?: IconDescriptor[]
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export type ThemeColorDescriptor = {
|
|
156
|
+
color: string
|
|
157
|
+
media?: string
|
|
158
|
+
}
|