@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.
Files changed (155) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +126 -126
  3. package/commerce/ui/store.ts +306 -304
  4. package/components/access-code-input.tsx +71 -71
  5. package/components/auth/auth-listener.tsx +29 -29
  6. package/components/auth/auth-token/clear-auth-token.tsx +12 -12
  7. package/components/auth/auth-token/set-auth-token.tsx +16 -16
  8. package/components/auth/common-auth-domains.ts +16 -16
  9. package/components/auth/login-panel.tsx +107 -107
  10. package/components/back-button.tsx +49 -42
  11. package/components/chat-widget.tsx +85 -85
  12. package/components/commerce/add-widget.tsx +20 -20
  13. package/components/commerce/bag-button.tsx +98 -98
  14. package/components/commerce/buy-button.tsx +34 -34
  15. package/components/commerce/checkout-button.tsx +129 -129
  16. package/components/commerce/checkout-panel/cart-accordian.tsx +66 -0
  17. package/components/commerce/checkout-panel/checkout-panel-props.ts +10 -0
  18. package/components/commerce/checkout-panel/{dt-bag-carousel.tsx → desktop-bag-carousel.tsx} +36 -36
  19. package/components/commerce/checkout-panel/desktop-cp.tsx +83 -0
  20. package/components/commerce/checkout-panel/index.tsx +126 -129
  21. package/components/commerce/checkout-panel/mobile-cp.tsx +67 -0
  22. package/components/commerce/checkout-panel/policy-links.tsx +29 -0
  23. package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
  24. package/components/commerce/checkout-panel/thank-you.tsx +18 -18
  25. package/components/commerce/checkout-widget/const.ts +13 -13
  26. package/components/commerce/checkout-widget/index.tsx +192 -192
  27. package/components/commerce/checkout-widget/obs-string-set.ts +48 -48
  28. package/components/commerce/checkout-widget/use-anim-clx-set.ts +58 -58
  29. package/components/commerce/desktop-bag-popup.tsx +78 -78
  30. package/components/commerce/desktop-nav-menu.tsx +130 -130
  31. package/components/commerce/drawer/index.tsx +99 -99
  32. package/components/commerce/drawer/micro.tsx +144 -144
  33. package/components/commerce/drawer/shell.tsx +85 -85
  34. package/components/commerce/mobile-bag-drawer.tsx +51 -51
  35. package/components/commerce/mobile-login-button.tsx +101 -101
  36. package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
  37. package/components/commerce/mobile-nav-menu-ai.tsx +47 -48
  38. package/components/commerce/mobile-nav-menu-item.tsx +49 -49
  39. package/components/commerce/mobile-nav-menu.tsx +101 -101
  40. package/components/contact-dialog/contact-form.tsx +113 -113
  41. package/components/contact-dialog/disclaimer.tsx +13 -13
  42. package/components/contact-dialog/index.tsx +64 -64
  43. package/components/copyright.tsx +21 -21
  44. package/components/drawer-margin.tsx +25 -25
  45. package/components/footer.tsx +77 -77
  46. package/components/header/desktop.tsx +50 -50
  47. package/components/header/index.tsx +52 -52
  48. package/components/header/mobile.tsx +163 -163
  49. package/components/header/theme-toggle.tsx +26 -26
  50. package/components/icons/24k-gold-card.tsx +43 -43
  51. package/components/icons/ai-chat.tsx +29 -29
  52. package/components/icons/anodized-titanium.tsx +45 -45
  53. package/components/icons/avatar.tsx +11 -11
  54. package/components/icons/bag-icon.tsx +10 -10
  55. package/components/icons/blog.tsx +20 -20
  56. package/components/icons/bridge.tsx +68 -68
  57. package/components/icons/changelog.tsx +21 -21
  58. package/components/icons/chrome.tsx +45 -45
  59. package/components/icons/coins.tsx +20 -20
  60. package/components/icons/compare-cards.tsx +21 -21
  61. package/components/icons/credit.tsx +20 -20
  62. package/components/icons/customer-support.tsx +21 -21
  63. package/components/icons/customers.tsx +33 -33
  64. package/components/icons/developer-docs.tsx +20 -20
  65. package/components/icons/exchange.tsx +21 -21
  66. package/components/icons/explorer.tsx +22 -22
  67. package/components/icons/faqs.tsx +21 -21
  68. package/components/icons/github.tsx +14 -14
  69. package/components/icons/guides.tsx +21 -21
  70. package/components/icons/gun-metal.tsx +44 -44
  71. package/components/icons/index.tsx +43 -43
  72. package/components/icons/integrations.tsx +25 -25
  73. package/components/icons/irradescent.tsx +41 -41
  74. package/components/icons/launch-subnet.tsx +21 -21
  75. package/components/icons/left-arrow.tsx +11 -11
  76. package/components/icons/lux-finance.tsx +23 -23
  77. package/components/icons/lux-logo.tsx +10 -10
  78. package/components/icons/lux-pass.tsx +25 -25
  79. package/components/icons/lux-quests.tsx +21 -21
  80. package/components/icons/market.tsx +24 -24
  81. package/components/icons/mirrored-titanium.tsx +46 -46
  82. package/components/icons/more-benefits.tsx +21 -21
  83. package/components/icons/open-source.tsx +26 -26
  84. package/components/icons/right-arrow.tsx +10 -10
  85. package/components/icons/safe.tsx +37 -37
  86. package/components/icons/search.tsx +12 -12
  87. package/components/icons/secure-delivery.tsx +13 -13
  88. package/components/icons/shop.tsx +20 -20
  89. package/components/icons/social-icon.tsx +35 -35
  90. package/components/icons/social-svg.css +3 -3
  91. package/components/icons/sterling-silver-card.tsx +44 -44
  92. package/components/icons/templates.tsx +21 -21
  93. package/components/icons/validators.tsx +41 -41
  94. package/components/icons/view-all-card.tsx +20 -20
  95. package/components/icons/wallet.tsx +20 -20
  96. package/components/icons/warpcast.tsx +58 -58
  97. package/components/icons/youtube-logo.tsx +59 -59
  98. package/components/index.ts +27 -27
  99. package/components/logo.tsx +89 -89
  100. package/components/main.tsx +27 -27
  101. package/components/mini-chart/index.tsx +7 -7
  102. package/components/mini-chart/mini-chart-props.ts +43 -43
  103. package/components/mini-chart/mini-chart.tsx +85 -85
  104. package/components/mini-chart/wrapper.tsx +23 -23
  105. package/components/not-found/index.tsx +28 -28
  106. package/components/not-found/not-found-content.mdx +5 -5
  107. package/components/scripts.tsx +24 -24
  108. package/components/tooltip.tsx +31 -31
  109. package/environment.d.ts +5 -5
  110. package/next/analytics/fpixel.ts +15 -15
  111. package/next/analytics/google-analytics.ts +13 -13
  112. package/next/analytics/index.ts +3 -3
  113. package/next/analytics/pixel-analytics.tsx +54 -54
  114. package/next/font/get-app-router-font-classes.ts +12 -12
  115. package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
  116. package/next/font/next-font-desc.ts +27 -27
  117. package/next/font/pages-router-font-vars.tsx +18 -18
  118. package/next/head-metadata/from-next/metadata-types.ts +158 -158
  119. package/next/head-metadata/from-next/opengraph-types.ts +267 -267
  120. package/next/head-metadata/from-next/twitter-types.ts +92 -92
  121. package/next/head-metadata/index.tsx +208 -208
  122. package/next/middleware/determine-device-mw.ts +16 -16
  123. package/package.json +79 -79
  124. package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
  125. package/root-layout/index.tsx +112 -112
  126. package/server-actions/firebase-app.ts +14 -14
  127. package/server-actions/index.ts +5 -5
  128. package/server-actions/store-contact.ts +51 -51
  129. package/site-def/footer/community.tsx +67 -67
  130. package/site-def/footer/company.ts +37 -37
  131. package/site-def/footer/ecosystem.ts +37 -37
  132. package/site-def/footer/index.tsx +26 -26
  133. package/site-def/footer/legal.ts +28 -28
  134. package/site-def/footer/network.ts +45 -45
  135. package/site-def/footer/svg/warpcast-logo.svg +11 -11
  136. package/site-def/index.ts +2 -2
  137. package/site-def/main-nav.tsx +392 -392
  138. package/style/cart-animation.css +29 -29
  139. package/style/checkout-animation.css +23 -23
  140. package/style/drawer-handle-overrides.css +160 -160
  141. package/style/lux-colors.css +85 -85
  142. package/style/lux-global.css +30 -30
  143. package/tailwind/fontFamily.tailwind.lux.ts +18 -18
  144. package/tailwind/index.ts +2 -2
  145. package/tailwind/lux-tw-fonts.ts +39 -39
  146. package/tailwind/tailwind.config.lux-preset.ts +10 -10
  147. package/tsconfig.json +15 -15
  148. package/types/chatbot-config.ts +6 -6
  149. package/types/chatbot-suggested-question.ts +7 -7
  150. package/types/contact-info.ts +10 -10
  151. package/types/index.ts +4 -4
  152. package/types/site-def.ts +43 -43
  153. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +0 -85
  154. package/components/commerce/checkout-panel/links-row.tsx +0 -21
  155. 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
+ }