@luxfi/core 5.2.8 → 5.2.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. package/commerce/ui/conf.ts +13 -13
  2. package/commerce/ui/context.tsx +126 -126
  3. package/commerce/ui/store.ts +304 -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 +42 -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/dt-bag-carousel.tsx +36 -36
  17. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +84 -84
  18. package/components/commerce/checkout-panel/index.tsx +129 -129
  19. package/components/commerce/checkout-panel/links-row.tsx +21 -21
  20. package/components/commerce/checkout-panel/mb-checkout-panel.tsx +54 -54
  21. package/components/commerce/checkout-panel/steps-indicator.tsx +39 -39
  22. package/components/commerce/checkout-panel/thank-you.tsx +18 -18
  23. package/components/commerce/checkout-widget/const.ts +13 -13
  24. package/components/commerce/checkout-widget/index.tsx +192 -192
  25. package/components/commerce/checkout-widget/obs-string-set.ts +48 -48
  26. package/components/commerce/checkout-widget/use-anim-clx-set.ts +58 -58
  27. package/components/commerce/desktop-bag-popup.tsx +78 -78
  28. package/components/commerce/desktop-nav-menu.tsx +131 -130
  29. package/components/commerce/drawer/index.tsx +99 -99
  30. package/components/commerce/drawer/micro.tsx +144 -144
  31. package/components/commerce/drawer/shell.tsx +85 -85
  32. package/components/commerce/mobile-bag-drawer.tsx +51 -51
  33. package/components/commerce/mobile-login-button.tsx +101 -101
  34. package/components/commerce/mobile-menu-toggle-button.tsx +35 -35
  35. package/components/commerce/mobile-nav-menu-ai.tsx +48 -42
  36. package/components/commerce/mobile-nav-menu-item.tsx +49 -49
  37. package/components/commerce/mobile-nav-menu.tsx +102 -68
  38. package/components/contact-dialog/contact-form.tsx +113 -113
  39. package/components/contact-dialog/disclaimer.tsx +13 -13
  40. package/components/contact-dialog/index.tsx +64 -64
  41. package/components/copyright.tsx +21 -21
  42. package/components/drawer-margin.tsx +25 -25
  43. package/components/footer.tsx +77 -77
  44. package/components/header/desktop.tsx +50 -49
  45. package/components/header/index.tsx +52 -52
  46. package/components/header/mobile.tsx +163 -163
  47. package/components/header/theme-toggle.tsx +26 -26
  48. package/components/icons/24k-gold-card.tsx +43 -0
  49. package/components/icons/ai-chat.tsx +29 -0
  50. package/components/icons/anodized-titanium.tsx +45 -0
  51. package/components/icons/avatar.tsx +11 -11
  52. package/components/icons/bag-icon.tsx +10 -10
  53. package/components/icons/blog.tsx +20 -0
  54. package/components/icons/bridge.tsx +68 -0
  55. package/components/icons/changelog.tsx +21 -0
  56. package/components/icons/chrome.tsx +45 -0
  57. package/components/icons/coins.tsx +20 -0
  58. package/components/icons/compare-cards.tsx +21 -0
  59. package/components/icons/credit.tsx +20 -0
  60. package/components/icons/customer-support.tsx +21 -0
  61. package/components/icons/customers.tsx +33 -0
  62. package/components/icons/developer-docs.tsx +20 -0
  63. package/components/icons/exchange.tsx +21 -0
  64. package/components/icons/explorer.tsx +22 -0
  65. package/components/icons/faqs.tsx +21 -0
  66. package/components/icons/github.tsx +14 -14
  67. package/components/icons/guides.tsx +21 -0
  68. package/components/icons/gun-metal.tsx +44 -0
  69. package/components/icons/index.tsx +43 -43
  70. package/components/icons/integrations.tsx +25 -0
  71. package/components/icons/irradescent.tsx +41 -0
  72. package/components/icons/launch-subnet.tsx +21 -0
  73. package/components/icons/left-arrow.tsx +11 -11
  74. package/components/icons/lux-finance.tsx +23 -0
  75. package/components/icons/lux-logo.tsx +10 -10
  76. package/components/icons/lux-pass.tsx +25 -0
  77. package/components/icons/lux-quests.tsx +21 -0
  78. package/components/icons/market.tsx +24 -0
  79. package/components/icons/mirrored-titanium.tsx +46 -0
  80. package/components/icons/more-benefits.tsx +21 -0
  81. package/components/icons/open-source.tsx +26 -0
  82. package/components/icons/right-arrow.tsx +10 -10
  83. package/components/icons/safe.tsx +37 -0
  84. package/components/icons/search.tsx +12 -12
  85. package/components/icons/secure-delivery.tsx +13 -13
  86. package/components/icons/shop.tsx +20 -0
  87. package/components/icons/social-icon.tsx +35 -35
  88. package/components/icons/social-svg.css +3 -3
  89. package/components/icons/sterling-silver-card.tsx +44 -0
  90. package/components/icons/templates.tsx +21 -0
  91. package/components/icons/validators.tsx +41 -0
  92. package/components/icons/view-all-card.tsx +20 -0
  93. package/components/icons/wallet.tsx +20 -0
  94. package/components/icons/warpcast.tsx +58 -58
  95. package/components/icons/youtube-logo.tsx +59 -59
  96. package/components/index.ts +27 -27
  97. package/components/logo.tsx +89 -89
  98. package/components/main.tsx +27 -27
  99. package/components/mini-chart/index.tsx +7 -7
  100. package/components/mini-chart/mini-chart-props.ts +43 -43
  101. package/components/mini-chart/mini-chart.tsx +85 -85
  102. package/components/mini-chart/wrapper.tsx +23 -23
  103. package/components/not-found/index.tsx +28 -28
  104. package/components/not-found/not-found-content.mdx +5 -5
  105. package/components/scripts.tsx +24 -24
  106. package/components/tooltip.tsx +31 -31
  107. package/environment.d.ts +5 -5
  108. package/next/analytics/fpixel.ts +15 -15
  109. package/next/analytics/google-analytics.ts +13 -13
  110. package/next/analytics/index.ts +3 -3
  111. package/next/analytics/pixel-analytics.tsx +54 -54
  112. package/next/font/get-app-router-font-classes.ts +12 -12
  113. package/next/font/load-and-return-lux-next-fonts-on-import.ts +68 -68
  114. package/next/font/next-font-desc.ts +27 -27
  115. package/next/font/pages-router-font-vars.tsx +18 -18
  116. package/next/head-metadata/from-next/metadata-types.ts +158 -158
  117. package/next/head-metadata/from-next/opengraph-types.ts +267 -267
  118. package/next/head-metadata/from-next/twitter-types.ts +92 -92
  119. package/next/head-metadata/index.tsx +208 -208
  120. package/next/middleware/determine-device-mw.ts +16 -16
  121. package/package.json +79 -79
  122. package/root-layout/WHY_THIS_IS_SEPARATE.txt +1 -1
  123. package/root-layout/index.tsx +112 -112
  124. package/server-actions/firebase-app.ts +14 -14
  125. package/server-actions/index.ts +5 -5
  126. package/server-actions/store-contact.ts +51 -51
  127. package/site-def/footer/community.tsx +67 -67
  128. package/site-def/footer/company.ts +37 -37
  129. package/site-def/footer/ecosystem.ts +37 -37
  130. package/site-def/footer/index.tsx +26 -26
  131. package/site-def/footer/legal.ts +28 -28
  132. package/site-def/footer/network.ts +45 -45
  133. package/site-def/footer/svg/warpcast-logo.svg +11 -11
  134. package/site-def/index.ts +2 -2
  135. package/site-def/main-nav.tsx +392 -338
  136. package/style/cart-animation.css +29 -29
  137. package/style/checkout-animation.css +23 -23
  138. package/style/drawer-handle-overrides.css +160 -160
  139. package/style/lux-colors.css +85 -85
  140. package/style/lux-global.css +30 -30
  141. package/tailwind/fontFamily.tailwind.lux.ts +18 -18
  142. package/tailwind/index.ts +2 -2
  143. package/tailwind/lux-tw-fonts.ts +39 -39
  144. package/tailwind/tailwind.config.lux-preset.ts +10 -10
  145. package/tsconfig.json +15 -15
  146. package/types/chatbot-config.ts +6 -6
  147. package/types/chatbot-suggested-question.ts +7 -7
  148. package/types/contact-info.ts +10 -10
  149. package/types/index.ts +4 -4
  150. package/types/site-def.ts +43 -43
@@ -1,267 +1,267 @@
1
- import type { AbsoluteTemplateString, TemplateString } from './metadata-types'
2
-
3
- export type OpenGraphType =
4
- | 'article'
5
- | 'book'
6
- | 'music.song'
7
- | 'music.album'
8
- | 'music.playlist'
9
- | 'music.radio_station'
10
- | 'profile'
11
- | 'website'
12
- | 'video.tv_show'
13
- | 'video.other'
14
- | 'video.movie'
15
- | 'video.episode'
16
-
17
- export type OpenGraph =
18
- | OpenGraphWebsite
19
- | OpenGraphArticle
20
- | OpenGraphBook
21
- | OpenGraphProfile
22
- | OpenGraphMusicSong
23
- | OpenGraphMusicAlbum
24
- | OpenGraphMusicPlaylist
25
- | OpenGraphRadioStation
26
- | OpenGraphVideoMovie
27
- | OpenGraphVideoEpisode
28
- | OpenGraphVideoTVShow
29
- | OpenGraphVideoOther
30
- | OpenGraphMetadata
31
-
32
- // update this type to reflect actual locales
33
- type Locale = string
34
-
35
- type OpenGraphMetadata = {
36
- determiner?: 'a' | 'an' | 'the' | 'auto' | ''
37
- title?: string | TemplateString
38
- description?: string
39
- emails?: string | Array<string>
40
- phoneNumbers?: string | Array<string>
41
- faxNumbers?: string | Array<string>
42
- siteName?: string
43
- locale?: Locale
44
- alternateLocale?: Locale | Array<Locale>
45
- images?: OGImage | Array<OGImage>
46
- audio?: OGAudio | Array<OGAudio>
47
- videos?: OGVideo | Array<OGVideo>
48
- url?: string | URL
49
- countryName?: string
50
- ttl?: number
51
- }
52
- export type OpenGraphWebsite = OpenGraphMetadata & {
53
- type: 'website'
54
- }
55
- type OpenGraphArticle = OpenGraphMetadata & {
56
- type: 'article'
57
- publishedTime?: string // datetime
58
- modifiedTime?: string // datetime
59
- expirationTime?: string // datetime
60
- authors?: null | string | URL | Array<string | URL>
61
- section?: null | string
62
- tags?: null | string | Array<string>
63
- }
64
- type OpenGraphBook = OpenGraphMetadata & {
65
- type: 'book'
66
- isbn?: null | string
67
- releaseDate?: null | string // datetime
68
- authors?: null | string | URL | Array<string | URL>
69
- tags?: null | string | Array<string>
70
- }
71
- type OpenGraphProfile = OpenGraphMetadata & {
72
- type: 'profile'
73
- firstName?: null | string
74
- lastName?: null | string
75
- username?: null | string
76
- gender?: null | string
77
- }
78
- type OpenGraphMusicSong = OpenGraphMetadata & {
79
- type: 'music.song'
80
- duration?: null | number
81
- albums?: null | string | URL | OGAlbum | Array<string | URL | OGAlbum>
82
- musicians?: null | string | URL | Array<string | URL>
83
- }
84
- type OpenGraphMusicAlbum = OpenGraphMetadata & {
85
- type: 'music.album'
86
- songs?: null | string | URL | OGSong | Array<string | URL | OGSong>
87
- musicians?: null | string | URL | Array<string | URL>
88
- releaseDate?: null | string // datetime
89
- }
90
- type OpenGraphMusicPlaylist = OpenGraphMetadata & {
91
- type: 'music.playlist'
92
- songs?: null | string | URL | OGSong | Array<string | URL | OGSong>
93
- creators?: null | string | URL | Array<string | URL>
94
- }
95
- type OpenGraphRadioStation = OpenGraphMetadata & {
96
- type: 'music.radio_station'
97
- creators?: null | string | URL | Array<string | URL>
98
- }
99
- type OpenGraphVideoMovie = OpenGraphMetadata & {
100
- type: 'video.movie'
101
- actors?: null | string | URL | OGActor | Array<string | URL | OGActor>
102
- directors?: null | string | URL | Array<string | URL>
103
- writers?: null | string | URL | Array<string | URL>
104
- duration?: null | number
105
- releaseDate?: null | string // datetime
106
- tags?: null | string | Array<string>
107
- }
108
- type OpenGraphVideoEpisode = OpenGraphMetadata & {
109
- type: 'video.episode'
110
- actors?: null | string | URL | OGActor | Array<string | URL | OGActor>
111
- directors?: null | string | URL | Array<string | URL>
112
- writers?: null | string | URL | Array<string | URL>
113
- duration?: null | number
114
- releaseDate?: null | string // datetime
115
- tags?: null | string | Array<string>
116
- series?: null | string | URL
117
- }
118
- type OpenGraphVideoTVShow = OpenGraphMetadata & {
119
- type: 'video.tv_show'
120
- }
121
- type OpenGraphVideoOther = OpenGraphMetadata & {
122
- type: 'video.other'
123
- }
124
-
125
- export type OGImage = string | OGImageDescriptor | URL
126
- type OGImageDescriptor = {
127
- url: string | URL
128
- secureUrl?: string | URL
129
- alt?: string
130
- type?: string
131
- width?: string | number
132
- height?: string | number
133
- }
134
- type OGAudio = string | OGAudioDescriptor | URL
135
- type OGAudioDescriptor = {
136
- url: string | URL
137
- secureUrl?: string | URL
138
- type?: string
139
- }
140
- type OGVideo = string | OGVideoDescriptor | URL
141
- type OGVideoDescriptor = {
142
- url: string | URL
143
- secureUrl?: string | URL
144
- type?: string
145
- width?: string | number
146
- height?: string | number
147
- }
148
-
149
- export type ResolvedOpenGraph =
150
- | ResolvedOpenGraphWebsite
151
- | ResolvedOpenGraphArticle
152
- | ResolvedOpenGraphBook
153
- | ResolvedOpenGraphProfile
154
- | ResolvedOpenGraphMusicSong
155
- | ResolvedOpenGraphMusicAlbum
156
- | ResolvedOpenGraphMusicPlaylist
157
- | ResolvedOpenGraphRadioStation
158
- | ResolvedOpenGraphVideoMovie
159
- | ResolvedOpenGraphVideoEpisode
160
- | ResolvedOpenGraphVideoTVShow
161
- | ResolvedOpenGraphVideoOther
162
- | ResolvedOpenGraphMetadata
163
-
164
- type ResolvedOpenGraphMetadata = {
165
- determiner?: 'a' | 'an' | 'the' | 'auto' | ''
166
- title: AbsoluteTemplateString
167
- description?: string
168
- emails?: Array<string>
169
- phoneNumbers?: Array<string>
170
- faxNumbers?: Array<string>
171
- siteName?: string
172
- locale?: Locale
173
- alternateLocale?: Array<Locale>
174
- images?: Array<OGImage>
175
- audio?: Array<OGAudio>
176
- videos?: Array<OGVideo>
177
- url: null | URL | string
178
- countryName?: string
179
- ttl?: number
180
- }
181
- type ResolvedOpenGraphWebsite = ResolvedOpenGraphMetadata & {
182
- type: 'website'
183
- }
184
- type ResolvedOpenGraphArticle = ResolvedOpenGraphMetadata & {
185
- type: 'article'
186
- publishedTime?: string // datetime
187
- modifiedTime?: string // datetime
188
- expirationTime?: string // datetime
189
- authors?: Array<string>
190
- section?: string
191
- tags?: Array<string>
192
- }
193
- type ResolvedOpenGraphBook = ResolvedOpenGraphMetadata & {
194
- type: 'book'
195
- isbn?: string
196
- releaseDate?: string // datetime
197
- authors?: Array<string>
198
- tags?: Array<string>
199
- }
200
- type ResolvedOpenGraphProfile = ResolvedOpenGraphMetadata & {
201
- type: 'profile'
202
- firstName?: string
203
- lastName?: string
204
- username?: string
205
- gender?: string
206
- }
207
- type ResolvedOpenGraphMusicSong = ResolvedOpenGraphMetadata & {
208
- type: 'music.song'
209
- duration?: number
210
- albums?: Array<OGAlbum>
211
- musicians?: Array<string | URL>
212
- }
213
- type ResolvedOpenGraphMusicAlbum = ResolvedOpenGraphMetadata & {
214
- type: 'music.album'
215
- songs?: Array<string | URL | OGSong>
216
- musicians?: Array<string | URL>
217
- releaseDate?: string // datetime
218
- }
219
- type ResolvedOpenGraphMusicPlaylist = ResolvedOpenGraphMetadata & {
220
- type: 'music.playlist'
221
- songs?: Array<string | URL | OGSong>
222
- creators?: Array<string | URL>
223
- }
224
- type ResolvedOpenGraphRadioStation = ResolvedOpenGraphMetadata & {
225
- type: 'music.radio_station'
226
- creators?: Array<string | URL>
227
- }
228
- type ResolvedOpenGraphVideoMovie = ResolvedOpenGraphMetadata & {
229
- type: 'video.movie'
230
- actors?: Array<string | URL | OGActor>
231
- directors?: Array<string | URL>
232
- writers?: Array<string | URL>
233
- duration?: number
234
- releaseDate?: string // datetime
235
- tags?: Array<string>
236
- }
237
- type ResolvedOpenGraphVideoEpisode = ResolvedOpenGraphMetadata & {
238
- type: 'video.episode'
239
- actors?: Array<string | URL | OGActor>
240
- directors?: Array<string | URL>
241
- writers?: Array<string | URL>
242
- duration?: number
243
- releaseDate?: string // datetime
244
- tags?: Array<string>
245
- series?: string | URL
246
- }
247
- type ResolvedOpenGraphVideoTVShow = ResolvedOpenGraphMetadata & {
248
- type: 'video.tv_show'
249
- }
250
- type ResolvedOpenGraphVideoOther = ResolvedOpenGraphMetadata & {
251
- type: 'video.other'
252
- }
253
-
254
- type OGSong = {
255
- url: string | URL
256
- disc?: number
257
- track?: number
258
- }
259
- type OGAlbum = {
260
- url: string | URL
261
- disc?: number
262
- track?: number
263
- }
264
- type OGActor = {
265
- url: string | URL
266
- role?: string
267
- }
1
+ import type { AbsoluteTemplateString, TemplateString } from './metadata-types'
2
+
3
+ export type OpenGraphType =
4
+ | 'article'
5
+ | 'book'
6
+ | 'music.song'
7
+ | 'music.album'
8
+ | 'music.playlist'
9
+ | 'music.radio_station'
10
+ | 'profile'
11
+ | 'website'
12
+ | 'video.tv_show'
13
+ | 'video.other'
14
+ | 'video.movie'
15
+ | 'video.episode'
16
+
17
+ export type OpenGraph =
18
+ | OpenGraphWebsite
19
+ | OpenGraphArticle
20
+ | OpenGraphBook
21
+ | OpenGraphProfile
22
+ | OpenGraphMusicSong
23
+ | OpenGraphMusicAlbum
24
+ | OpenGraphMusicPlaylist
25
+ | OpenGraphRadioStation
26
+ | OpenGraphVideoMovie
27
+ | OpenGraphVideoEpisode
28
+ | OpenGraphVideoTVShow
29
+ | OpenGraphVideoOther
30
+ | OpenGraphMetadata
31
+
32
+ // update this type to reflect actual locales
33
+ type Locale = string
34
+
35
+ type OpenGraphMetadata = {
36
+ determiner?: 'a' | 'an' | 'the' | 'auto' | ''
37
+ title?: string | TemplateString
38
+ description?: string
39
+ emails?: string | Array<string>
40
+ phoneNumbers?: string | Array<string>
41
+ faxNumbers?: string | Array<string>
42
+ siteName?: string
43
+ locale?: Locale
44
+ alternateLocale?: Locale | Array<Locale>
45
+ images?: OGImage | Array<OGImage>
46
+ audio?: OGAudio | Array<OGAudio>
47
+ videos?: OGVideo | Array<OGVideo>
48
+ url?: string | URL
49
+ countryName?: string
50
+ ttl?: number
51
+ }
52
+ export type OpenGraphWebsite = OpenGraphMetadata & {
53
+ type: 'website'
54
+ }
55
+ type OpenGraphArticle = OpenGraphMetadata & {
56
+ type: 'article'
57
+ publishedTime?: string // datetime
58
+ modifiedTime?: string // datetime
59
+ expirationTime?: string // datetime
60
+ authors?: null | string | URL | Array<string | URL>
61
+ section?: null | string
62
+ tags?: null | string | Array<string>
63
+ }
64
+ type OpenGraphBook = OpenGraphMetadata & {
65
+ type: 'book'
66
+ isbn?: null | string
67
+ releaseDate?: null | string // datetime
68
+ authors?: null | string | URL | Array<string | URL>
69
+ tags?: null | string | Array<string>
70
+ }
71
+ type OpenGraphProfile = OpenGraphMetadata & {
72
+ type: 'profile'
73
+ firstName?: null | string
74
+ lastName?: null | string
75
+ username?: null | string
76
+ gender?: null | string
77
+ }
78
+ type OpenGraphMusicSong = OpenGraphMetadata & {
79
+ type: 'music.song'
80
+ duration?: null | number
81
+ albums?: null | string | URL | OGAlbum | Array<string | URL | OGAlbum>
82
+ musicians?: null | string | URL | Array<string | URL>
83
+ }
84
+ type OpenGraphMusicAlbum = OpenGraphMetadata & {
85
+ type: 'music.album'
86
+ songs?: null | string | URL | OGSong | Array<string | URL | OGSong>
87
+ musicians?: null | string | URL | Array<string | URL>
88
+ releaseDate?: null | string // datetime
89
+ }
90
+ type OpenGraphMusicPlaylist = OpenGraphMetadata & {
91
+ type: 'music.playlist'
92
+ songs?: null | string | URL | OGSong | Array<string | URL | OGSong>
93
+ creators?: null | string | URL | Array<string | URL>
94
+ }
95
+ type OpenGraphRadioStation = OpenGraphMetadata & {
96
+ type: 'music.radio_station'
97
+ creators?: null | string | URL | Array<string | URL>
98
+ }
99
+ type OpenGraphVideoMovie = OpenGraphMetadata & {
100
+ type: 'video.movie'
101
+ actors?: null | string | URL | OGActor | Array<string | URL | OGActor>
102
+ directors?: null | string | URL | Array<string | URL>
103
+ writers?: null | string | URL | Array<string | URL>
104
+ duration?: null | number
105
+ releaseDate?: null | string // datetime
106
+ tags?: null | string | Array<string>
107
+ }
108
+ type OpenGraphVideoEpisode = OpenGraphMetadata & {
109
+ type: 'video.episode'
110
+ actors?: null | string | URL | OGActor | Array<string | URL | OGActor>
111
+ directors?: null | string | URL | Array<string | URL>
112
+ writers?: null | string | URL | Array<string | URL>
113
+ duration?: null | number
114
+ releaseDate?: null | string // datetime
115
+ tags?: null | string | Array<string>
116
+ series?: null | string | URL
117
+ }
118
+ type OpenGraphVideoTVShow = OpenGraphMetadata & {
119
+ type: 'video.tv_show'
120
+ }
121
+ type OpenGraphVideoOther = OpenGraphMetadata & {
122
+ type: 'video.other'
123
+ }
124
+
125
+ export type OGImage = string | OGImageDescriptor | URL
126
+ type OGImageDescriptor = {
127
+ url: string | URL
128
+ secureUrl?: string | URL
129
+ alt?: string
130
+ type?: string
131
+ width?: string | number
132
+ height?: string | number
133
+ }
134
+ type OGAudio = string | OGAudioDescriptor | URL
135
+ type OGAudioDescriptor = {
136
+ url: string | URL
137
+ secureUrl?: string | URL
138
+ type?: string
139
+ }
140
+ type OGVideo = string | OGVideoDescriptor | URL
141
+ type OGVideoDescriptor = {
142
+ url: string | URL
143
+ secureUrl?: string | URL
144
+ type?: string
145
+ width?: string | number
146
+ height?: string | number
147
+ }
148
+
149
+ export type ResolvedOpenGraph =
150
+ | ResolvedOpenGraphWebsite
151
+ | ResolvedOpenGraphArticle
152
+ | ResolvedOpenGraphBook
153
+ | ResolvedOpenGraphProfile
154
+ | ResolvedOpenGraphMusicSong
155
+ | ResolvedOpenGraphMusicAlbum
156
+ | ResolvedOpenGraphMusicPlaylist
157
+ | ResolvedOpenGraphRadioStation
158
+ | ResolvedOpenGraphVideoMovie
159
+ | ResolvedOpenGraphVideoEpisode
160
+ | ResolvedOpenGraphVideoTVShow
161
+ | ResolvedOpenGraphVideoOther
162
+ | ResolvedOpenGraphMetadata
163
+
164
+ type ResolvedOpenGraphMetadata = {
165
+ determiner?: 'a' | 'an' | 'the' | 'auto' | ''
166
+ title: AbsoluteTemplateString
167
+ description?: string
168
+ emails?: Array<string>
169
+ phoneNumbers?: Array<string>
170
+ faxNumbers?: Array<string>
171
+ siteName?: string
172
+ locale?: Locale
173
+ alternateLocale?: Array<Locale>
174
+ images?: Array<OGImage>
175
+ audio?: Array<OGAudio>
176
+ videos?: Array<OGVideo>
177
+ url: null | URL | string
178
+ countryName?: string
179
+ ttl?: number
180
+ }
181
+ type ResolvedOpenGraphWebsite = ResolvedOpenGraphMetadata & {
182
+ type: 'website'
183
+ }
184
+ type ResolvedOpenGraphArticle = ResolvedOpenGraphMetadata & {
185
+ type: 'article'
186
+ publishedTime?: string // datetime
187
+ modifiedTime?: string // datetime
188
+ expirationTime?: string // datetime
189
+ authors?: Array<string>
190
+ section?: string
191
+ tags?: Array<string>
192
+ }
193
+ type ResolvedOpenGraphBook = ResolvedOpenGraphMetadata & {
194
+ type: 'book'
195
+ isbn?: string
196
+ releaseDate?: string // datetime
197
+ authors?: Array<string>
198
+ tags?: Array<string>
199
+ }
200
+ type ResolvedOpenGraphProfile = ResolvedOpenGraphMetadata & {
201
+ type: 'profile'
202
+ firstName?: string
203
+ lastName?: string
204
+ username?: string
205
+ gender?: string
206
+ }
207
+ type ResolvedOpenGraphMusicSong = ResolvedOpenGraphMetadata & {
208
+ type: 'music.song'
209
+ duration?: number
210
+ albums?: Array<OGAlbum>
211
+ musicians?: Array<string | URL>
212
+ }
213
+ type ResolvedOpenGraphMusicAlbum = ResolvedOpenGraphMetadata & {
214
+ type: 'music.album'
215
+ songs?: Array<string | URL | OGSong>
216
+ musicians?: Array<string | URL>
217
+ releaseDate?: string // datetime
218
+ }
219
+ type ResolvedOpenGraphMusicPlaylist = ResolvedOpenGraphMetadata & {
220
+ type: 'music.playlist'
221
+ songs?: Array<string | URL | OGSong>
222
+ creators?: Array<string | URL>
223
+ }
224
+ type ResolvedOpenGraphRadioStation = ResolvedOpenGraphMetadata & {
225
+ type: 'music.radio_station'
226
+ creators?: Array<string | URL>
227
+ }
228
+ type ResolvedOpenGraphVideoMovie = ResolvedOpenGraphMetadata & {
229
+ type: 'video.movie'
230
+ actors?: Array<string | URL | OGActor>
231
+ directors?: Array<string | URL>
232
+ writers?: Array<string | URL>
233
+ duration?: number
234
+ releaseDate?: string // datetime
235
+ tags?: Array<string>
236
+ }
237
+ type ResolvedOpenGraphVideoEpisode = ResolvedOpenGraphMetadata & {
238
+ type: 'video.episode'
239
+ actors?: Array<string | URL | OGActor>
240
+ directors?: Array<string | URL>
241
+ writers?: Array<string | URL>
242
+ duration?: number
243
+ releaseDate?: string // datetime
244
+ tags?: Array<string>
245
+ series?: string | URL
246
+ }
247
+ type ResolvedOpenGraphVideoTVShow = ResolvedOpenGraphMetadata & {
248
+ type: 'video.tv_show'
249
+ }
250
+ type ResolvedOpenGraphVideoOther = ResolvedOpenGraphMetadata & {
251
+ type: 'video.other'
252
+ }
253
+
254
+ type OGSong = {
255
+ url: string | URL
256
+ disc?: number
257
+ track?: number
258
+ }
259
+ type OGAlbum = {
260
+ url: string | URL
261
+ disc?: number
262
+ track?: number
263
+ }
264
+ type OGActor = {
265
+ url: string | URL
266
+ role?: string
267
+ }