react-social-embeds 1.0.0
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/LICENSE +21 -0
- package/README.md +184 -0
- package/dist/index.d.mts +1289 -0
- package/dist/index.d.ts +1289 -0
- package/dist/index.js +8840 -0
- package/dist/index.mjs +8772 -0
- package/package.json +49 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,1289 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
type CardLayout = "classic" | "modern";
|
|
5
|
+
type CardLayoutProviderProps = {
|
|
6
|
+
layout: CardLayout;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
};
|
|
9
|
+
declare function CardLayoutProvider({ layout, children }: CardLayoutProviderProps): react_jsx_runtime.JSX.Element;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Badge configuration for EmbedCard.
|
|
13
|
+
*/
|
|
14
|
+
type EmbedBadge = {
|
|
15
|
+
/** Text to display in the badge */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Visual style of the badge */
|
|
18
|
+
tone?: "accent" | "alert" | "muted";
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Media content configuration for EmbedCard.
|
|
22
|
+
*/
|
|
23
|
+
type EmbedMedia = {
|
|
24
|
+
/** Type of media to render */
|
|
25
|
+
type: "image" | "video" | "link" | "iframe";
|
|
26
|
+
/** URL of the media content */
|
|
27
|
+
url: string;
|
|
28
|
+
/** Alt text for accessibility */
|
|
29
|
+
alt?: string;
|
|
30
|
+
/** Poster image for video content */
|
|
31
|
+
poster?: string;
|
|
32
|
+
/** CSS aspect ratio (e.g., "16/9") */
|
|
33
|
+
aspectRatio?: string;
|
|
34
|
+
/** Fixed height override (e.g., 152 for Spotify tracks) */
|
|
35
|
+
height?: string | number;
|
|
36
|
+
/** Optional width cap for iframe embeds */
|
|
37
|
+
maxWidth?: string | number;
|
|
38
|
+
/** Whether to use full-width wrapper for media */
|
|
39
|
+
fullWidth?: boolean;
|
|
40
|
+
/** Alignment for media embeds */
|
|
41
|
+
align?: "center" | "left" | "right";
|
|
42
|
+
/** Whether to show frame around iframe */
|
|
43
|
+
frame?: boolean;
|
|
44
|
+
/** Whether to use rounded corners */
|
|
45
|
+
rounded?: boolean;
|
|
46
|
+
/** Custom border radius for iframe */
|
|
47
|
+
iframeRadius?: number;
|
|
48
|
+
/** Background color for iframe wrapper */
|
|
49
|
+
background?: string;
|
|
50
|
+
/** Available quality options for video */
|
|
51
|
+
qualities?: {
|
|
52
|
+
label: string;
|
|
53
|
+
src: string;
|
|
54
|
+
}[];
|
|
55
|
+
/** Whether to autoplay video */
|
|
56
|
+
autoPlay?: boolean;
|
|
57
|
+
/** Whether to show video controls */
|
|
58
|
+
controls?: boolean;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Metadata item for EmbedCard footer.
|
|
62
|
+
*/
|
|
63
|
+
type EmbedMetaItem = {
|
|
64
|
+
/** Label for the metadata */
|
|
65
|
+
label: string;
|
|
66
|
+
/** Value to display */
|
|
67
|
+
value: string;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Props for the EmbedCard component.
|
|
71
|
+
*/
|
|
72
|
+
type EmbedCardProps = {
|
|
73
|
+
/** Platform/provider name (e.g., "YouTube", "Twitter") */
|
|
74
|
+
provider: string;
|
|
75
|
+
/** Main title of the embed */
|
|
76
|
+
title?: string;
|
|
77
|
+
/** Subtitle text */
|
|
78
|
+
subtitle?: string;
|
|
79
|
+
/** Icon to display before subtitle */
|
|
80
|
+
subtitleIcon?: React.ReactNode;
|
|
81
|
+
/** Author/creator name */
|
|
82
|
+
author?: string;
|
|
83
|
+
/** Timestamp or date string */
|
|
84
|
+
timestamp?: string;
|
|
85
|
+
/** Plain text body content */
|
|
86
|
+
body?: string;
|
|
87
|
+
/** HTML body content (rendered with dangerouslySetInnerHTML) */
|
|
88
|
+
bodyHtml?: string;
|
|
89
|
+
/** Media content configuration */
|
|
90
|
+
media?: EmbedMedia;
|
|
91
|
+
/** Poll data for rendering polls */
|
|
92
|
+
pollData?: {
|
|
93
|
+
options: Array<{
|
|
94
|
+
text: string;
|
|
95
|
+
vote_count?: number;
|
|
96
|
+
id: string;
|
|
97
|
+
}>;
|
|
98
|
+
total_vote_count: number;
|
|
99
|
+
is_prediction: boolean;
|
|
100
|
+
};
|
|
101
|
+
/** Badges to display in header */
|
|
102
|
+
badges?: EmbedBadge[];
|
|
103
|
+
/** Metadata items for footer */
|
|
104
|
+
footerMeta?: EmbedMetaItem[];
|
|
105
|
+
/** Link URL for the embed source */
|
|
106
|
+
href?: string;
|
|
107
|
+
/** Label for the CTA button */
|
|
108
|
+
ctaLabel?: string;
|
|
109
|
+
/** Whether to show platform icon in CTA */
|
|
110
|
+
ctaLabelIcon?: boolean;
|
|
111
|
+
/** Position of icon in CTA button */
|
|
112
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
113
|
+
/** Whether to use platform color for CTA button */
|
|
114
|
+
ctaUsePlatformColor?: boolean;
|
|
115
|
+
/** Whether to use platform color for CTA icon only */
|
|
116
|
+
ctaUsePlatformIconColor?: boolean;
|
|
117
|
+
/** How the link should behave */
|
|
118
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
119
|
+
/** Target for link opens */
|
|
120
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
121
|
+
/** Whether to disable card styling */
|
|
122
|
+
disableCard?: boolean;
|
|
123
|
+
/** Width of the card */
|
|
124
|
+
width?: string | number;
|
|
125
|
+
/** Maximum width of the card */
|
|
126
|
+
maxWidth?: string | number;
|
|
127
|
+
/** Current loading/error status */
|
|
128
|
+
status?: "ok" | "loading" | "error" | "removed";
|
|
129
|
+
/** Message to display for non-ok status */
|
|
130
|
+
statusMessage?: string;
|
|
131
|
+
/** Custom footer content */
|
|
132
|
+
footerChildren?: React.ReactNode;
|
|
133
|
+
/** Additional CSS class */
|
|
134
|
+
className?: string;
|
|
135
|
+
/** Inline styles */
|
|
136
|
+
style?: React.CSSProperties;
|
|
137
|
+
/** Whether to show CTA button */
|
|
138
|
+
showCTA?: boolean;
|
|
139
|
+
/** Custom platform icon */
|
|
140
|
+
platformIcon?: React.ReactNode;
|
|
141
|
+
/** Whether to show platform branding */
|
|
142
|
+
showBranding?: boolean;
|
|
143
|
+
/** Whether to hide provider title */
|
|
144
|
+
hideProviderTitle?: boolean;
|
|
145
|
+
/** Color theme */
|
|
146
|
+
theme?: "light" | "dark";
|
|
147
|
+
/** Card layout style */
|
|
148
|
+
layout?: CardLayout;
|
|
149
|
+
/** Where to place children content */
|
|
150
|
+
childrenPlacement?: "body" | "media";
|
|
151
|
+
/** Child elements to render */
|
|
152
|
+
children?: React.ReactNode;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Base UI component for displaying embedded social media content.
|
|
156
|
+
* Provides a consistent card layout with support for media, metadata, badges, and CTAs.
|
|
157
|
+
* Used as the foundation for all platform-specific embed components.
|
|
158
|
+
*
|
|
159
|
+
* @param props - Component configuration
|
|
160
|
+
* @returns Styled embed card element
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```tsx
|
|
164
|
+
* <EmbedCard
|
|
165
|
+
* provider="Twitter"
|
|
166
|
+
* title="Example Tweet"
|
|
167
|
+
* author="@username"
|
|
168
|
+
* body="This is the tweet content"
|
|
169
|
+
* href="https://twitter.com/user/status/123"
|
|
170
|
+
* theme="dark"
|
|
171
|
+
* />
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
declare function EmbedCard({ provider, title, subtitle, subtitleIcon, author, timestamp, body, bodyHtml, media, pollData, badges, footerMeta, href, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, linkBehavior, linkTarget, disableCard, width, maxWidth, status, statusMessage, footerChildren, className, style, showCTA, platformIcon, showBranding, hideProviderTitle, theme, layout, childrenPlacement, children }: EmbedCardProps): JSX.Element;
|
|
175
|
+
|
|
176
|
+
declare const PLATFORM_ICON_PATHS: {
|
|
177
|
+
readonly reddit: {
|
|
178
|
+
readonly viewBox: "0 0 24 24";
|
|
179
|
+
readonly path: "M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z";
|
|
180
|
+
};
|
|
181
|
+
readonly x: {
|
|
182
|
+
readonly viewBox: "0 0 24 24";
|
|
183
|
+
readonly path: "M14.234 10.162 22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299-.929-1.329L3.076 1.56h3.182l5.965 8.532.929 1.329 7.754 11.09h-3.182z";
|
|
184
|
+
};
|
|
185
|
+
readonly bluesky: {
|
|
186
|
+
readonly viewBox: "0 0 24 24";
|
|
187
|
+
readonly path: "M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026";
|
|
188
|
+
};
|
|
189
|
+
readonly mastodon: {
|
|
190
|
+
readonly viewBox: "0 0 16 16";
|
|
191
|
+
readonly path: "M11.19 12.195c2.016-.24 3.77-1.475 3.99-2.603.348-1.778.32-4.339.32-4.339 0-3.47-2.286-4.488-2.286-4.488C12.062.238 10.083.017 8.027 0h-.05C5.92.017 3.942.238 2.79.765c0 0-2.285 1.017-2.285 4.488l-.002.662c-.004.64-.007 1.35.011 2.091.083 3.394.626 6.74 3.78 7.57 1.454.383 2.703.463 3.709.408 1.823-.1 2.847-.647 2.847-.647l-.06-1.317s-1.303.41-2.767.36c-1.45-.05-2.98-.156-3.215-1.928a4 4 0 0 1-.033-.496s1.424.346 3.228.428c1.103.05 2.137-.064 3.188-.189zm1.613-2.47H11.13v-4.08c0-.859-.364-1.295-1.091-1.295-.804 0-1.207.517-1.207 1.541v2.233H7.168V5.89c0-1.024-.403-1.541-1.207-1.541-.727 0-1.091.436-1.091 1.296v4.079H3.197V5.522q0-1.288.66-2.046c.456-.505 1.052-.764 1.793-.764.856 0 1.504.328 1.933.983L8 4.39l.417-.695c.429-.655 1.077-.983 1.934-.983.74 0 1.336.259 1.791.764q.662.757.661 2.046z";
|
|
192
|
+
};
|
|
193
|
+
readonly threads: {
|
|
194
|
+
readonly viewBox: "0 0 24 24";
|
|
195
|
+
readonly path: "M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z";
|
|
196
|
+
};
|
|
197
|
+
readonly truthSocial: {
|
|
198
|
+
readonly viewBox: "0 0 48 48";
|
|
199
|
+
readonly path: "";
|
|
200
|
+
};
|
|
201
|
+
readonly telegram: {
|
|
202
|
+
readonly viewBox: "0 0 24 24";
|
|
203
|
+
readonly path: "M12 0C5.374 0 0 5.373 0 12s5.374 12 12 12 12-5.373 12-12S18.626 0 12 0zm5.562 8.161c-.18 1.897-.962 6.502-1.359 8.627-.168.9-.5 1.201-.82 1.23-.697.064-1.226-.461-1.901-.903-1.056-.692-1.653-1.123-2.678-1.799-1.185-.781-.417-1.21.258-1.911.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.139-5.062 3.345-.479.329-.913.489-1.302.481-.428-.008-1.252-.241-1.865-.44-.751-.244-1.349-.374-1.296-.789.027-.216.324-.437.893-.663 3.498-1.524 5.831-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.477-1.635.099-.002.321.023.465.141.119.098.152.228.166.33.016.115.025.234.015.366z";
|
|
204
|
+
};
|
|
205
|
+
readonly linkedin: {
|
|
206
|
+
readonly viewBox: "0 0 24 24";
|
|
207
|
+
readonly path: "M22.225 0H1.771C.792 0 0 .774 0 1.727v20.545C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.273V1.727C24 .774 23.2 0 22.222 0h.003zM7.433 20.452H4.114V9h3.319v11.452zM5.774 7.433a1.926 1.926 0 1 1 0-3.852 1.926 1.926 0 0 1 0 3.852zM20.452 20.452h-3.319v-5.569c0-1.328-.027-3.038-1.853-3.038-1.853 0-2.136 1.445-2.136 2.939v5.668h-3.319V9h3.186v1.561h.045c.444-.84 1.528-1.726 3.145-1.726 3.364 0 3.983 2.214 3.983 5.093v6.524z";
|
|
208
|
+
};
|
|
209
|
+
readonly bilibili: {
|
|
210
|
+
readonly viewBox: "0 0 24 24";
|
|
211
|
+
readonly path: "M21.723 5.779a2.278 2.278 0 0 0-2.28-2.278h-2.567L18.67.64a.32.32 0 0 0-.26-.14H15.57a.32.32 0 0 0-.26.14l-1.42 2.861H10.11L8.69.64A.32.32 0 0 0 8.43.5H5.59a.32.32 0 0 0-.26.14L7.124 3.5H4.556A2.278 2.278 0 0 0 2.277 5.78v12.442A2.278 2.278 0 0 0 4.556 20.5h14.887a2.278 2.278 0 0 0 2.28-2.278zm-2.278 11.582a.608.608 0 0 1-.61.608H5.165a.608.608 0 0 1-.61-.608V6.639c0-.337.273-.61.61-.61h13.67c.337 0 .61.273.61.61zm-8.416-8.383a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 0 0 0-3.2zm6.14 0a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 0 0 0-3.2z";
|
|
212
|
+
};
|
|
213
|
+
readonly instagram: {
|
|
214
|
+
readonly viewBox: "0 0 24 24";
|
|
215
|
+
readonly path: "M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077";
|
|
216
|
+
};
|
|
217
|
+
readonly tiktok: {
|
|
218
|
+
readonly viewBox: "0 0 24 24";
|
|
219
|
+
readonly path: "M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z";
|
|
220
|
+
};
|
|
221
|
+
readonly facebook: {
|
|
222
|
+
readonly viewBox: "0 0 24 24";
|
|
223
|
+
readonly path: "M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z";
|
|
224
|
+
};
|
|
225
|
+
readonly youtube: {
|
|
226
|
+
readonly viewBox: "0 0 24 24";
|
|
227
|
+
readonly path: "M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z";
|
|
228
|
+
};
|
|
229
|
+
readonly rumble: {
|
|
230
|
+
readonly viewBox: "0 0 24 24";
|
|
231
|
+
readonly path: "M14.4528 13.5458c.8064-.6542.9297-1.8381.2756-2.6445a1.8802 1.8802 0 0 0-.2756-.2756 21.2127 21.2127 0 0 0-4.3121-2.776c-1.066-.51-2.256.2-2.4261 1.414a23.5226 23.5226 0 0 0-.14 5.5021c.116 1.23 1.292 1.964 2.372 1.492a19.6285 19.6285 0 0 0 4.5062-2.704v-.008zm6.9322-5.4002c2.0335 2.228 2.0396 5.637.014 7.8723A26.1487 26.1487 0 0 1 8.2946 23.846c-2.6848.6713-5.4168-.914-6.1662-3.5781-1.524-5.2002-1.3-11.0803.17-16.3045.772-2.744 3.3521-4.4661 6.0102-3.832 4.9242 1.174 9.5443 4.196 13.0764 8.0121v.002z";
|
|
232
|
+
};
|
|
233
|
+
readonly dailymotion: {
|
|
234
|
+
readonly viewBox: "0 0 24 24";
|
|
235
|
+
readonly path: "M21.823 7.327a11.928 11.928 0 0 0-2.606-3.814 12.126 12.126 0 0 0-3.866-2.57A12.246 12.246 0 0 0 10.617 0H1.831a.602.602 0 0 0-.609.603v3.764c0 .162.064.312.179.426l4.164 4.123a.612.612 0 0 0 .439.177h4.56c.806 0 1.56.313 2.125.88.557.559.856 1.296.843 2.075-.029 1.571-1.343 2.849-2.931 2.849h-6.74a.613.613 0 0 0-.432.176.619.619 0 0 0-.178.427v3.764c0 .162.063.312.178.427l4.139 4.099a.647.647 0 0 0 .476.21h2.572a12.276 12.276 0 0 0 4.733-.945 12.145 12.145 0 0 0 3.866-2.571 11.959 11.959 0 0 0 2.607-3.813c.633-1.479.956-3.051.956-4.67 0-1.619-.321-3.19-.956-4.669l.001-.005Z";
|
|
236
|
+
};
|
|
237
|
+
readonly odysee: {
|
|
238
|
+
readonly viewBox: "0 0 24 24";
|
|
239
|
+
readonly path: "M11.965 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12 12 12 0 0 0-3.209-8.167 7.272 7.272 0 0 1-.799 3.218c-.548.957-2.281 2.77-3.264 3.699a.723.723 0 0 0 .056 1.104c.996.74 2.658 2.151 2.788 3.422.176 1.835 1.6 4.02 1.675 4.159a.67.67 0 0 1-.105.327 12.067 12.067 0 0 1-2.03 1.898 2.435 2.435 0 0 1-.807.126c-1.944-.04-1.526-1.866-1.712-2.905s-.78-3.085-2.716-2.788c0 0 .484 4.243-1.489 5.546s-5.843 2.27-6.55-.408 2.46-2.384 2.684-2.384c.223 0 2.233-.632 1.267-2.53-.967-1.898-2.01-3.5-2.01-3.5a11.37 11.37 0 0 0-2.735 1.285 5.42 5.42 0 0 0-1.061.82c-1.065 1.104-2.19 1.713-2.954 1.358a1.368 1.368 0 0 1-.32-.221A11.926 11.926 0 0 1 .1 13.503c.43-.641 2.082-2.038 3.696-2.906 1.304-.702 2.737-.988 3.118-1.355-.671-2.235-1.882-5.703.832-7.33C9.881.634 12.69-.142 13.77 2.958c1.08 3.1.802 3.796 1.267 3.796.465 0 1.608.223 2.09-1.75.356-1.445.574-2.685 1.379-3.087A12 12 0 0 0 12 0a12 12 0 0 0-.035 0z";
|
|
240
|
+
};
|
|
241
|
+
readonly archive: {
|
|
242
|
+
readonly viewBox: "0 0 24 24";
|
|
243
|
+
readonly path: "M22.667 22.884V24H1.333v-1.116zm-.842-1.675v1.396H2.175v-1.396zM4.233 6.14l.234.118.118 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.332.098H3.062l-.352-.098-.136-2.47-.118-3.646v-2.941l.118-3.078.107-1.892.244-.107zm16.842 0l.235.118.117 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.332.098h-1.171l-.352-.098-.137-2.47-.117-3.646v-2.941l.117-3.078.108-1.892.244-.107zm-11.79 0l.235.118.117 1.882.117 3.058v2.941l-.117 3.666-.02 2.47-.331.098H8.114l-.352-.098-.136-2.47-.117-3.646v-2.941l.117-3.078.107-1.892.244-.107zm6.457 0l.234.118.117 1.882.118 3.058v2.941l-.118 3.666-.019 2.47-.332.098H14.57l-.351-.098-.137-2.47-.117-3.646v-2.941l.117-3.078.108-1.892.244-.107zm6.083-2.511V5.58H2.175V3.628zM11.798 0l10.307 2.347-.413.723H1.951l-.618-.587Z";
|
|
244
|
+
};
|
|
245
|
+
readonly kick: {
|
|
246
|
+
readonly viewBox: "0 0 24 24";
|
|
247
|
+
readonly path: "M1.333 0h8v5.333H12V2.667h2.667V0h8v8H20v2.667h-2.667v2.666H20V16h2.667v8h-8v-2.667H12v-2.666H9.333V24h-8Z";
|
|
248
|
+
};
|
|
249
|
+
readonly twitch: {
|
|
250
|
+
readonly viewBox: "0 0 24 24";
|
|
251
|
+
readonly path: "M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z";
|
|
252
|
+
};
|
|
253
|
+
readonly tumblr: {
|
|
254
|
+
readonly viewBox: "0 0 24 24";
|
|
255
|
+
readonly path: "M14.563 24c-5.093 0-7.031-3.756-7.031-6.411V9.747H5.116V6.648c3.63-1.313 4.512-4.596 4.71-6.469C9.84.051 9.941 0 9.999 0h3.517v6.114h4.801v3.633h-4.82v7.47c.016 1.001.375 2.371 2.207 2.371h.09c.631-.02 1.486-.205 1.936-.419l1.156 3.425c-.436.636-2.4 1.374-4.156 1.404h-.178l.011.002z";
|
|
256
|
+
};
|
|
257
|
+
readonly pinterest: {
|
|
258
|
+
readonly viewBox: "0 0 24 24";
|
|
259
|
+
readonly path: "M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z";
|
|
260
|
+
};
|
|
261
|
+
readonly spotify: {
|
|
262
|
+
readonly viewBox: "0 0 24 24";
|
|
263
|
+
readonly path: "M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z";
|
|
264
|
+
};
|
|
265
|
+
readonly appleMusic: {
|
|
266
|
+
readonly viewBox: "0 0 24 24";
|
|
267
|
+
readonly path: "M23.994 6.124a9.23 9.23 0 00-.24-2.19c-.317-1.31-1.062-2.31-2.18-3.043a5.022 5.022 0 00-1.877-.726 10.496 10.496 0 00-1.564-.15c-.04-.003-.083-.01-.124-.013H5.986c-.152.01-.303.017-.455.026-.747.043-1.49.123-2.193.4-1.336.53-2.3 1.452-2.865 2.78-.192.448-.292.925-.363 1.408-.056.392-.088.785-.1 1.18 0 .032-.007.062-.01.093v12.223c.01.14.017.283.027.424.05.815.154 1.624.497 2.373.65 1.42 1.738 2.353 3.234 2.801.42.127.856.187 1.293.228.555.053 1.11.06 1.667.06h11.03a12.5 12.5 0 001.57-.1c.822-.106 1.596-.35 2.295-.81a5.046 5.046 0 001.88-2.207c.186-.42.293-.87.37-1.324.113-.675.138-1.358.137-2.04-.002-3.8 0-7.595-.003-11.393zm-6.423 3.99v5.712c0 .417-.058.827-.244 1.206-.29.59-.76.962-1.388 1.14-.35.1-.706.157-1.07.173-.95.045-1.773-.6-1.943-1.536a1.88 1.88 0 011.038-2.022c.323-.16.67-.25 1.018-.324.378-.082.758-.153 1.134-.24.274-.063.457-.23.51-.516a.904.904 0 00.02-.193c0-1.815 0-3.63-.002-5.443a.725.725 0 00-.026-.185c-.04-.15-.15-.243-.304-.234-.16.01-.318.035-.475.066-.76.15-1.52.303-2.28.456l-2.325.47-1.374.278c-.016.003-.032.01-.048.013-.277.077-.377.203-.39.49-.002.042 0 .086 0 .13-.002 2.602 0 5.204-.003 7.805 0 .42-.047.836-.215 1.227-.278.64-.77 1.04-1.434 1.233-.35.1-.71.16-1.075.172-.96.036-1.755-.6-1.92-1.544-.14-.812.23-1.685 1.154-2.075.357-.15.73-.232 1.108-.31.287-.06.575-.116.86-.177.383-.083.583-.323.6-.714v-.15c0-2.96 0-5.922.002-8.882 0-.123.013-.25.042-.37.07-.285.273-.448.546-.518.255-.066.515-.112.774-.165.733-.15 1.466-.296 2.2-.444l2.27-.46c.67-.134 1.34-.27 2.01-.403.22-.043.442-.088.663-.106.31-.025.523.17.554.482.008.073.012.148.012.223.002 1.91.002 3.822 0 5.732z";
|
|
268
|
+
};
|
|
269
|
+
readonly deezer: {
|
|
270
|
+
readonly viewBox: "0 0 24 24";
|
|
271
|
+
readonly path: "M18.81 4.16v3.03H24V4.16h-5.19zM6.27 8.38v3.027h5.189V8.38h-5.19zm12.54 0v3.027H24V8.38h-5.19zM6.27 12.594v3.027h5.189v-3.027h-5.19zm6.271 0v3.027h5.19v-3.027h-5.19zm6.27 0v3.027H24v-3.027h-5.19zM0 16.81v3.029h5.19v-3.03H0zm6.27 0v3.029h5.189v-3.03h-5.19zm6.271 0v3.029h5.19v-3.03h-5.19zm6.27 0v3.029H24v-3.03h-5.19Z";
|
|
272
|
+
};
|
|
273
|
+
readonly tidal: {
|
|
274
|
+
readonly viewBox: "0 0 24 24";
|
|
275
|
+
readonly path: "M12.012 3.992L8.008 7.996 4.004 3.992 0 7.996 4.004 12l4.004-4.004L12.012 12l-4.004 4.004 4.004 4.004 4.004-4.004L12.012 12l4.004-4.004-4.004-4.004zM16.042 7.996l3.979-3.979L24 7.996l-3.979 3.979z";
|
|
276
|
+
};
|
|
277
|
+
readonly soundcloud: {
|
|
278
|
+
readonly viewBox: "0 0 24 24";
|
|
279
|
+
readonly path: "M23.999 14.165c-.052 1.796-1.612 3.169-3.4 3.169h-8.18a.68.68 0 0 1-.675-.683V7.862a.747.747 0 0 1 .452-.724s.75-.513 2.333-.513a5.364 5.364 0 0 1 2.763.755 5.433 5.433 0 0 1 2.57 3.54c.282-.08.574-.121.868-.12.884 0 1.73.358 2.347.992s.948 1.49.922 2.373ZM10.721 8.421c.247 2.98.427 5.697 0 8.672a.264.264 0 0 1-.53 0c-.395-2.946-.22-5.718 0-8.672a.264.264 0 0 1 .53 0ZM9.072 9.448c.285 2.659.37 4.986-.006 7.655a.277.277 0 0 1-.55 0c-.331-2.63-.256-5.02 0-7.655a.277.277 0 0 1 .556 0Zm-1.663-.257c.27 2.726.39 5.171 0 7.904a.266.266 0 0 1-.532 0c-.38-2.69-.257-5.21 0-7.904a.266.266 0 0 1 .532 0Zm-1.647.77a26.108 26.108 0 0 1-.008 7.147.272.272 0 0 1-.542 0 27.955 27.955 0 0 1 0-7.147.275.275 0 0 1 .55 0Zm-1.67 1.769c.421 1.865.228 3.5-.029 5.388a.257.257 0 0 1-.514 0c-.21-1.858-.398-3.549 0-5.389a.272.272 0 0 1 .543 0Zm-1.655-.273c.388 1.897.26 3.508-.01 5.412-.026.28-.514.283-.54 0-.244-1.878-.347-3.54-.01-5.412a.283.283 0 0 1 .56 0Zm-1.668.911c.4 1.268.257 2.292-.026 3.572a.257.257 0 0 1-.514 0c-.241-1.262-.354-2.312-.023-3.572a.283.283 0 0 1 .563 0Z";
|
|
280
|
+
};
|
|
281
|
+
readonly applePodcasts: {
|
|
282
|
+
readonly viewBox: "0 0 24 24";
|
|
283
|
+
readonly path: "M5.34 0A5.328 5.328 0 000 5.34v13.32A5.328 5.328 0 005.34 24h13.32A5.328 5.328 0 0024 18.66V5.34A5.328 5.328 0 0018.66 0zm6.525 2.568c2.336 0 4.448.902 6.056 2.587 1.224 1.272 1.912 2.619 2.264 4.392.12.59.12 2.2.007 2.864a8.506 8.506 0 01-3.24 5.296c-.608.46-2.096 1.261-2.336 1.261-.088 0-.096-.091-.056-.46.072-.592.144-.715.48-.856.536-.224 1.448-.874 2.008-1.435a7.644 7.644 0 002.008-3.536c.208-.824.184-2.656-.048-3.504-.728-2.696-2.928-4.792-5.624-5.352-.784-.16-2.208-.16-3 0-2.728.56-4.984 2.76-5.672 5.528-.184.752-.184 2.584 0 3.336.456 1.832 1.64 3.512 3.192 4.512.304.2.672.408.824.472.336.144.408.264.472.856.04.36.03.464-.056.464-.056 0-.464-.176-.896-.384l-.04-.03c-2.472-1.216-4.056-3.274-4.632-6.012-.144-.706-.168-2.392-.03-3.04.36-1.74 1.048-3.1 2.192-4.304 1.648-1.737 3.768-2.656 6.128-2.656zm.134 2.81c.409.004.803.04 1.106.106 2.784.62 4.76 3.408 4.376 6.174-.152 1.114-.536 2.03-1.216 2.88-.336.43-1.152 1.15-1.296 1.15-.023 0-.048-.272-.048-.603v-.605l.416-.496c1.568-1.878 1.456-4.502-.256-6.224-.664-.67-1.432-1.064-2.424-1.246-.64-.118-.776-.118-1.448-.008-1.02.167-1.81.562-2.512 1.256-1.72 1.704-1.832 4.342-.264 6.222l.413.496v.608c0 .336-.027.608-.06.608-.03 0-.264-.16-.512-.36l-.034-.011c-.832-.664-1.568-1.842-1.872-2.997-.184-.698-.184-2.024.008-2.72.504-1.878 1.888-3.335 3.808-4.019.41-.145 1.133-.22 1.814-.211zm-.13 2.99c.31 0 .62.06.844.178.488.253.888.745 1.04 1.259.464 1.578-1.208 2.96-2.72 2.254h-.015c-.712-.331-1.096-.956-1.104-1.77 0-.733.408-1.371 1.112-1.745.224-.117.534-.176.844-.176zm-.011 4.728c.988-.004 1.706.349 1.97.97.198.464.124 1.932-.218 4.302-.232 1.656-.36 2.074-.68 2.356-.44.39-1.064.498-1.656.288h-.003c-.716-.257-.87-.605-1.164-2.644-.341-2.37-.416-3.838-.218-4.302.262-.616.974-.966 1.97-.97z";
|
|
284
|
+
};
|
|
285
|
+
readonly snapchat: {
|
|
286
|
+
readonly viewBox: "0 0 24 24";
|
|
287
|
+
readonly path: "M12 0C8.74 0 6.06 2.67 6.06 5.96c0 1.6.63 3.26 1.78 4.55.16.18.26.35.25.46-.03.27-.62 1.15-1.25 1.45-.39.19-.94.36-1.52.54-.37.11-.75.22-1.11.35-.6.22-.7.6-.67.88.07.66.92.99 2.49 1.31.6.12 1.27.25 1.38.35.1.62.3 1.29.61 1.89.6 1.2 1.9 1.9 3.87 1.9s3.28-.7 3.88-1.9c.31-.6.5-1.27.6-1.89.11-.1.79-.23 1.39-.35 1.56-.32 2.41-.65 2.49-1.31.03-.28-.07-.66-.67-.88-.36-.13-.74-.24-1.11-.35-.58-.18-1.13-.35-1.52-.54-.63-.3-1.22-1.18-1.25-1.45-.01-.11.09-.28.25-.46 1.15-1.29 1.78-2.95 1.78-4.55C17.94 2.67 15.26 0 12 0z";
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
type PlatformIconName = keyof typeof PLATFORM_ICON_PATHS;
|
|
291
|
+
type PlatformIconProps = React.SVGProps<SVGSVGElement> & {
|
|
292
|
+
platform: PlatformIconName;
|
|
293
|
+
size?: number;
|
|
294
|
+
};
|
|
295
|
+
declare function PlatformIcon({ platform, size, color, ...props }: PlatformIconProps): react_jsx_runtime.JSX.Element;
|
|
296
|
+
|
|
297
|
+
/**
|
|
298
|
+
* Props for the MediaPlayer component.
|
|
299
|
+
*/
|
|
300
|
+
type MediaPlayerProps = {
|
|
301
|
+
/** Source URL for the video (supports MP4, HLS .m3u8, DASH .mpd) */
|
|
302
|
+
src: string;
|
|
303
|
+
/** Poster image URL to show before playback */
|
|
304
|
+
poster?: string;
|
|
305
|
+
/** Alt text for accessibility */
|
|
306
|
+
alt?: string;
|
|
307
|
+
/** Whether to autoplay the video */
|
|
308
|
+
autoPlay?: boolean;
|
|
309
|
+
/** Available quality options for manual quality switching */
|
|
310
|
+
qualities?: {
|
|
311
|
+
label: string;
|
|
312
|
+
src: string;
|
|
313
|
+
}[];
|
|
314
|
+
/** Callback when quality is changed */
|
|
315
|
+
onQualityChange?: (quality: {
|
|
316
|
+
label: string;
|
|
317
|
+
src: string;
|
|
318
|
+
}) => void;
|
|
319
|
+
};
|
|
320
|
+
/**
|
|
321
|
+
* Custom video player with support for native video, HLS, and DASH streaming.
|
|
322
|
+
* Provides a consistent UI with playback controls, volume, quality selection,
|
|
323
|
+
* fullscreen, and picture-in-picture support.
|
|
324
|
+
*
|
|
325
|
+
* @param props - Player configuration
|
|
326
|
+
* @returns Video player element with custom controls
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```tsx
|
|
330
|
+
* <MediaPlayer
|
|
331
|
+
* src="https://example.com/video.m3u8"
|
|
332
|
+
* poster="https://example.com/poster.jpg"
|
|
333
|
+
* autoPlay={false}
|
|
334
|
+
* />
|
|
335
|
+
* ```
|
|
336
|
+
*
|
|
337
|
+
* @remarks
|
|
338
|
+
* - HLS playback requires the `hls.js` peer dependency
|
|
339
|
+
* - DASH playback requires the `dashjs` peer dependency
|
|
340
|
+
* - Both are loaded dynamically and are optional
|
|
341
|
+
*/
|
|
342
|
+
declare function MediaPlayer(props: MediaPlayerProps): JSX.Element;
|
|
343
|
+
|
|
344
|
+
type RedditEmbedProps = {
|
|
345
|
+
url: string;
|
|
346
|
+
maxBodyLength?: number;
|
|
347
|
+
showTitle?: boolean;
|
|
348
|
+
showSubreddit?: boolean;
|
|
349
|
+
showAuthor?: boolean;
|
|
350
|
+
showDate?: boolean;
|
|
351
|
+
showBody?: boolean;
|
|
352
|
+
showMedia?: boolean;
|
|
353
|
+
showUpvotes?: boolean;
|
|
354
|
+
showCommentCount?: boolean;
|
|
355
|
+
showPostType?: boolean;
|
|
356
|
+
showBranding?: boolean;
|
|
357
|
+
showCTA?: boolean;
|
|
358
|
+
ctaLabel?: string;
|
|
359
|
+
ctaLabelIcon?: boolean;
|
|
360
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
361
|
+
ctaUsePlatformColor?: boolean;
|
|
362
|
+
ctaUsePlatformIconColor?: boolean;
|
|
363
|
+
disableCard?: boolean;
|
|
364
|
+
theme?: "light" | "dark";
|
|
365
|
+
width?: string | number;
|
|
366
|
+
maxWidth?: string | number;
|
|
367
|
+
cardLayout?: CardLayout;
|
|
368
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
369
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
370
|
+
className?: string;
|
|
371
|
+
style?: React.CSSProperties;
|
|
372
|
+
};
|
|
373
|
+
declare function RedditEmbed({ url, maxBodyLength, showTitle, showSubreddit, showAuthor, showDate, showBody, showMedia, showUpvotes, showCommentCount, showPostType, showBranding, showCTA, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, disableCard, theme, width, maxWidth, cardLayout, linkBehavior, linkTarget, className, style }: RedditEmbedProps): react_jsx_runtime.JSX.Element;
|
|
374
|
+
|
|
375
|
+
type XEmbedProps = {
|
|
376
|
+
url: string;
|
|
377
|
+
width?: string | number;
|
|
378
|
+
height?: string | number;
|
|
379
|
+
theme?: "light" | "dark";
|
|
380
|
+
showBranding?: boolean;
|
|
381
|
+
showCTA?: boolean;
|
|
382
|
+
disableCard?: boolean;
|
|
383
|
+
ctaLabel?: string;
|
|
384
|
+
ctaLabelIcon?: boolean;
|
|
385
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
386
|
+
ctaUsePlatformColor?: boolean;
|
|
387
|
+
ctaUsePlatformIconColor?: boolean;
|
|
388
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
389
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
390
|
+
/**
|
|
391
|
+
* @deprecated logic for FxTwitter has been removed. This prop is ignored.
|
|
392
|
+
*/
|
|
393
|
+
useFxTwitter?: boolean;
|
|
394
|
+
showAuthor?: boolean;
|
|
395
|
+
showHandle?: boolean;
|
|
396
|
+
showDate?: boolean;
|
|
397
|
+
showBody?: boolean;
|
|
398
|
+
showMedia?: boolean;
|
|
399
|
+
iframeAlignment?: "center" | "left" | "right";
|
|
400
|
+
constrainWidthByViewport?: boolean;
|
|
401
|
+
maxWidth?: string | number;
|
|
402
|
+
cardLayout?: CardLayout;
|
|
403
|
+
};
|
|
404
|
+
/**
|
|
405
|
+
* Embed component for X (formerly Twitter) posts.
|
|
406
|
+
* Fetches oEmbed data and renders the native Twitter widget.
|
|
407
|
+
*
|
|
408
|
+
* @param props - Component configuration
|
|
409
|
+
* @returns Embedded X post
|
|
410
|
+
*
|
|
411
|
+
* @example
|
|
412
|
+
* ```tsx
|
|
413
|
+
* <XEmbed url="https://x.com/Interior/status/463440424141459456" theme="dark" />
|
|
414
|
+
* ```
|
|
415
|
+
*/
|
|
416
|
+
declare function XEmbed({ url, width, height, theme, showBranding, showCTA, disableCard, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, linkBehavior, linkTarget, iframeAlignment, constrainWidthByViewport, maxWidth, cardLayout }: XEmbedProps): JSX.Element;
|
|
417
|
+
|
|
418
|
+
type InstagramEmbedProps = {
|
|
419
|
+
url: string;
|
|
420
|
+
width?: string | number;
|
|
421
|
+
maxWidth?: string | number;
|
|
422
|
+
className?: string;
|
|
423
|
+
style?: React.CSSProperties;
|
|
424
|
+
theme?: "light" | "dark";
|
|
425
|
+
/** Layout controls for the official Instagram iframe embed. */
|
|
426
|
+
iframeAlignment?: "center" | "left" | "right";
|
|
427
|
+
/** Constrain iframe width based on viewport height. */
|
|
428
|
+
constrainWidthByViewport?: boolean;
|
|
429
|
+
/** Limit card width to the embed width. */
|
|
430
|
+
constrainWidthByEmbed?: boolean;
|
|
431
|
+
showBranding?: boolean;
|
|
432
|
+
showCTA?: boolean;
|
|
433
|
+
ctaLabel?: string;
|
|
434
|
+
ctaLabelIcon?: boolean;
|
|
435
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
436
|
+
ctaUsePlatformColor?: boolean;
|
|
437
|
+
ctaUsePlatformIconColor?: boolean;
|
|
438
|
+
disableCard?: boolean;
|
|
439
|
+
cardLayout?: CardLayout;
|
|
440
|
+
};
|
|
441
|
+
/**
|
|
442
|
+
* Embed component for Instagram posts and reels.
|
|
443
|
+
* Renders the official Instagram iframe embed widget.
|
|
444
|
+
*
|
|
445
|
+
* @param props - Component configuration
|
|
446
|
+
* @returns Embedded Instagram post
|
|
447
|
+
*
|
|
448
|
+
* @example
|
|
449
|
+
* ```tsx
|
|
450
|
+
* <InstagramEmbed url="https://www.instagram.com/p/CG0UU3J" theme="dark" />
|
|
451
|
+
* ```
|
|
452
|
+
*/
|
|
453
|
+
declare function InstagramEmbed({ url, width, maxWidth, className, style, theme, iframeAlignment, constrainWidthByViewport, constrainWidthByEmbed, showBranding, showCTA, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, disableCard, cardLayout }: InstagramEmbedProps): react_jsx_runtime.JSX.Element;
|
|
454
|
+
|
|
455
|
+
interface BlueskyEmbedProps {
|
|
456
|
+
url: string;
|
|
457
|
+
width?: number | string;
|
|
458
|
+
height?: number | string;
|
|
459
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
460
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
461
|
+
showCTA?: boolean;
|
|
462
|
+
ctaLabel?: string;
|
|
463
|
+
ctaLabelIcon?: boolean;
|
|
464
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
465
|
+
ctaUsePlatformColor?: boolean;
|
|
466
|
+
ctaUsePlatformIconColor?: boolean;
|
|
467
|
+
showAuthor?: boolean;
|
|
468
|
+
showHandle?: boolean;
|
|
469
|
+
showDate?: boolean;
|
|
470
|
+
showBody?: boolean;
|
|
471
|
+
showMedia?: boolean;
|
|
472
|
+
theme?: "light" | "dark";
|
|
473
|
+
retryDelay?: number;
|
|
474
|
+
maxRetries?: number;
|
|
475
|
+
style?: React.CSSProperties;
|
|
476
|
+
disableCard?: boolean;
|
|
477
|
+
maxWidth?: number | string;
|
|
478
|
+
showBranding?: boolean;
|
|
479
|
+
cardLayout?: CardLayout;
|
|
480
|
+
}
|
|
481
|
+
declare const BlueskyEmbed: React.FC<BlueskyEmbedProps>;
|
|
482
|
+
|
|
483
|
+
type MastodonEmbedProps = {
|
|
484
|
+
url: string;
|
|
485
|
+
width?: number | string;
|
|
486
|
+
maxWidth?: number | string;
|
|
487
|
+
maxHeight?: number;
|
|
488
|
+
theme?: "light" | "dark";
|
|
489
|
+
renderMode?: "card" | "oembed";
|
|
490
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
491
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
492
|
+
showCTA?: boolean;
|
|
493
|
+
ctaLabel?: string;
|
|
494
|
+
ctaLabelIcon?: boolean;
|
|
495
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
496
|
+
ctaUsePlatformColor?: boolean;
|
|
497
|
+
ctaUsePlatformIconColor?: boolean;
|
|
498
|
+
showBranding?: boolean;
|
|
499
|
+
showAuthor?: boolean;
|
|
500
|
+
showHandle?: boolean;
|
|
501
|
+
showDate?: boolean;
|
|
502
|
+
showBody?: boolean;
|
|
503
|
+
showMedia?: boolean;
|
|
504
|
+
showFavorites?: boolean;
|
|
505
|
+
showReblogs?: boolean;
|
|
506
|
+
showReplies?: boolean;
|
|
507
|
+
maxBodyLength?: number;
|
|
508
|
+
disableCard?: boolean;
|
|
509
|
+
className?: string;
|
|
510
|
+
style?: React.CSSProperties;
|
|
511
|
+
oembedProxyUrl?: string;
|
|
512
|
+
cardLayout?: CardLayout;
|
|
513
|
+
};
|
|
514
|
+
declare const MastodonEmbed: React.FC<MastodonEmbedProps>;
|
|
515
|
+
|
|
516
|
+
type ThreadsEmbedProps = {
|
|
517
|
+
url: string;
|
|
518
|
+
width?: number | string;
|
|
519
|
+
maxWidth?: number | string;
|
|
520
|
+
className?: string;
|
|
521
|
+
style?: React.CSSProperties;
|
|
522
|
+
theme?: "light" | "dark";
|
|
523
|
+
showCTA?: boolean;
|
|
524
|
+
ctaLabel?: string;
|
|
525
|
+
ctaLabelIcon?: boolean;
|
|
526
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
527
|
+
ctaUsePlatformColor?: boolean;
|
|
528
|
+
ctaUsePlatformIconColor?: boolean;
|
|
529
|
+
ctaAlignment?: "left" | "center" | "right";
|
|
530
|
+
showBranding?: boolean;
|
|
531
|
+
disableCard?: boolean;
|
|
532
|
+
cardLayout?: CardLayout;
|
|
533
|
+
};
|
|
534
|
+
declare const ThreadsEmbed: React.FC<ThreadsEmbedProps>;
|
|
535
|
+
|
|
536
|
+
type TruthSocialEmbedProps = {
|
|
537
|
+
url: string;
|
|
538
|
+
width?: number | string;
|
|
539
|
+
maxWidth?: number | string;
|
|
540
|
+
maxHeight?: number;
|
|
541
|
+
theme?: "light" | "dark";
|
|
542
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
543
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
544
|
+
showCTA?: boolean;
|
|
545
|
+
ctaLabel?: string;
|
|
546
|
+
ctaLabelIcon?: boolean;
|
|
547
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
548
|
+
ctaUsePlatformColor?: boolean;
|
|
549
|
+
ctaUsePlatformIconColor?: boolean;
|
|
550
|
+
ctaAlignment?: "left" | "center" | "right";
|
|
551
|
+
showBranding?: boolean;
|
|
552
|
+
disableCard?: boolean;
|
|
553
|
+
className?: string;
|
|
554
|
+
style?: React.CSSProperties;
|
|
555
|
+
oembedProxyUrl?: string;
|
|
556
|
+
cardLayout?: CardLayout;
|
|
557
|
+
};
|
|
558
|
+
declare const TruthSocialEmbed: React.FC<TruthSocialEmbedProps>;
|
|
559
|
+
|
|
560
|
+
type LinkedInEmbedProps = {
|
|
561
|
+
url: string;
|
|
562
|
+
width?: number | string;
|
|
563
|
+
maxWidth?: number | string;
|
|
564
|
+
height?: number;
|
|
565
|
+
collapsed?: boolean;
|
|
566
|
+
theme?: "light" | "dark";
|
|
567
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
568
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
569
|
+
showCTA?: boolean;
|
|
570
|
+
ctaLabel?: string;
|
|
571
|
+
ctaLabelIcon?: boolean;
|
|
572
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
573
|
+
ctaUsePlatformColor?: boolean;
|
|
574
|
+
ctaUsePlatformIconColor?: boolean;
|
|
575
|
+
ctaAlignment?: "left" | "center" | "right";
|
|
576
|
+
showBranding?: boolean;
|
|
577
|
+
disableCard?: boolean;
|
|
578
|
+
className?: string;
|
|
579
|
+
style?: React.CSSProperties;
|
|
580
|
+
/**
|
|
581
|
+
* Alignment of the iframe within the container.
|
|
582
|
+
*/
|
|
583
|
+
iframeAlignment?: "center" | "left" | "right";
|
|
584
|
+
/**
|
|
585
|
+
* Optional custom width for the embed.
|
|
586
|
+
*/
|
|
587
|
+
/**
|
|
588
|
+
* Maximum height for the embed. If contents exceed this, it will scroll.
|
|
589
|
+
*/
|
|
590
|
+
maxHeight?: number | string;
|
|
591
|
+
constrainWidthByEmbed?: boolean;
|
|
592
|
+
cardLayout?: CardLayout;
|
|
593
|
+
};
|
|
594
|
+
declare const LinkedInEmbed: React.FC<LinkedInEmbedProps>;
|
|
595
|
+
|
|
596
|
+
type BilibiliEmbedProps = {
|
|
597
|
+
url: string;
|
|
598
|
+
width?: number | string;
|
|
599
|
+
maxWidth?: number | string;
|
|
600
|
+
height?: number | string;
|
|
601
|
+
aspectRatio?: string;
|
|
602
|
+
autoplay?: boolean;
|
|
603
|
+
highQuality?: boolean;
|
|
604
|
+
danmaku?: boolean;
|
|
605
|
+
page?: number;
|
|
606
|
+
theme?: "light" | "dark";
|
|
607
|
+
showCTA?: boolean;
|
|
608
|
+
ctaLabel?: string;
|
|
609
|
+
ctaLabelIcon?: boolean;
|
|
610
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
611
|
+
ctaUsePlatformColor?: boolean;
|
|
612
|
+
ctaUsePlatformIconColor?: boolean;
|
|
613
|
+
showBranding?: boolean;
|
|
614
|
+
disableCard?: boolean;
|
|
615
|
+
constrainWidthByEmbed?: boolean;
|
|
616
|
+
className?: string;
|
|
617
|
+
style?: React.CSSProperties;
|
|
618
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
619
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
620
|
+
cardLayout?: CardLayout;
|
|
621
|
+
};
|
|
622
|
+
declare const BilibiliEmbed: React.FC<BilibiliEmbedProps>;
|
|
623
|
+
|
|
624
|
+
type TikTokEmbedProps = {
|
|
625
|
+
url: string;
|
|
626
|
+
width?: string | number;
|
|
627
|
+
height?: string | number;
|
|
628
|
+
theme?: "light" | "dark";
|
|
629
|
+
showBranding?: boolean;
|
|
630
|
+
showCTA?: boolean;
|
|
631
|
+
ctaLabel?: string;
|
|
632
|
+
ctaLabelIcon?: boolean;
|
|
633
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
634
|
+
ctaUsePlatformColor?: boolean;
|
|
635
|
+
ctaUsePlatformIconColor?: boolean;
|
|
636
|
+
disableCard?: boolean;
|
|
637
|
+
showAuthor?: boolean;
|
|
638
|
+
showTitle?: boolean;
|
|
639
|
+
controls?: boolean;
|
|
640
|
+
progressBar?: boolean;
|
|
641
|
+
playButton?: boolean;
|
|
642
|
+
volumeControl?: boolean;
|
|
643
|
+
fullscreenButton?: boolean;
|
|
644
|
+
timestamp?: boolean;
|
|
645
|
+
loop?: boolean;
|
|
646
|
+
autoPlay?: boolean;
|
|
647
|
+
musicInfo?: boolean;
|
|
648
|
+
description?: boolean;
|
|
649
|
+
rel?: boolean;
|
|
650
|
+
nativeContextMenu?: boolean;
|
|
651
|
+
closedCaption?: boolean;
|
|
652
|
+
cardLayout?: CardLayout;
|
|
653
|
+
};
|
|
654
|
+
/**
|
|
655
|
+
* Embed component for TikTok videos.
|
|
656
|
+
* Uses the TikTok iframe player API with configurable player options.
|
|
657
|
+
*
|
|
658
|
+
* @param props - Component configuration including player options
|
|
659
|
+
* @returns Embedded TikTok video player
|
|
660
|
+
*
|
|
661
|
+
* @example
|
|
662
|
+
* ```tsx
|
|
663
|
+
* <TikTokEmbed url="https://www.tiktok.com/@user/video/123" theme="dark" />
|
|
664
|
+
* ```
|
|
665
|
+
*/
|
|
666
|
+
declare function TikTokEmbed({ url, width, height, theme, showBranding, showCTA, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, disableCard, showAuthor, showTitle, controls, progressBar, playButton, volumeControl, fullscreenButton, timestamp, loop, autoPlay, musicInfo, description, rel, nativeContextMenu, closedCaption, cardLayout }: TikTokEmbedProps): JSX.Element;
|
|
667
|
+
|
|
668
|
+
type FacebookEmbedProps = {
|
|
669
|
+
url: string;
|
|
670
|
+
width?: string | number;
|
|
671
|
+
maxWidth?: string | number;
|
|
672
|
+
className?: string;
|
|
673
|
+
style?: React.CSSProperties;
|
|
674
|
+
theme?: "light" | "dark";
|
|
675
|
+
/** Limit card width to the embed width. */
|
|
676
|
+
constrainWidthByEmbed?: boolean;
|
|
677
|
+
showBranding?: boolean;
|
|
678
|
+
showCTA?: boolean;
|
|
679
|
+
ctaLabel?: string;
|
|
680
|
+
ctaLabelIcon?: boolean;
|
|
681
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
682
|
+
ctaUsePlatformColor?: boolean;
|
|
683
|
+
ctaUsePlatformIconColor?: boolean;
|
|
684
|
+
disableCard?: boolean;
|
|
685
|
+
cardLayout?: CardLayout;
|
|
686
|
+
};
|
|
687
|
+
declare function FacebookEmbed({ url, width, maxWidth, className, style, theme, constrainWidthByEmbed, showBranding, showCTA, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, disableCard, cardLayout }: FacebookEmbedProps): react_jsx_runtime.JSX.Element;
|
|
688
|
+
|
|
689
|
+
declare global {
|
|
690
|
+
interface Window {
|
|
691
|
+
YT: typeof YT;
|
|
692
|
+
onYouTubeIframeAPIReady: () => void;
|
|
693
|
+
}
|
|
694
|
+
}
|
|
695
|
+
declare namespace YT {
|
|
696
|
+
class Player {
|
|
697
|
+
constructor(elementId: string | HTMLElement, options: PlayerOptions);
|
|
698
|
+
destroy(): void;
|
|
699
|
+
playVideo(): void;
|
|
700
|
+
pauseVideo(): void;
|
|
701
|
+
stopVideo(): void;
|
|
702
|
+
getPlayerState(): number;
|
|
703
|
+
}
|
|
704
|
+
interface PlayerOptions {
|
|
705
|
+
width?: number | string;
|
|
706
|
+
height?: number | string;
|
|
707
|
+
videoId?: string;
|
|
708
|
+
playerVars?: PlayerVars;
|
|
709
|
+
events?: PlayerEvents;
|
|
710
|
+
}
|
|
711
|
+
interface PlayerVars {
|
|
712
|
+
autoplay?: 0 | 1;
|
|
713
|
+
controls?: 0 | 1;
|
|
714
|
+
disablekb?: 0 | 1;
|
|
715
|
+
fs?: 0 | 1;
|
|
716
|
+
iv_load_policy?: 1 | 3;
|
|
717
|
+
modestbranding?: 0 | 1;
|
|
718
|
+
playsinline?: 0 | 1;
|
|
719
|
+
rel?: 0 | 1;
|
|
720
|
+
origin?: string;
|
|
721
|
+
}
|
|
722
|
+
interface PlayerEvents {
|
|
723
|
+
onReady?: (event: {
|
|
724
|
+
target: Player;
|
|
725
|
+
}) => void;
|
|
726
|
+
onStateChange?: (event: {
|
|
727
|
+
data: number;
|
|
728
|
+
target: Player;
|
|
729
|
+
}) => void;
|
|
730
|
+
onError?: (event: {
|
|
731
|
+
data: number;
|
|
732
|
+
target: Player;
|
|
733
|
+
}) => void;
|
|
734
|
+
}
|
|
735
|
+
const PlayerState: {
|
|
736
|
+
UNSTARTED: -1;
|
|
737
|
+
ENDED: 0;
|
|
738
|
+
PLAYING: 1;
|
|
739
|
+
PAUSED: 2;
|
|
740
|
+
BUFFERING: 3;
|
|
741
|
+
CUED: 5;
|
|
742
|
+
};
|
|
743
|
+
}
|
|
744
|
+
type YouTubeEmbedProps = {
|
|
745
|
+
url: string;
|
|
746
|
+
showTitle?: boolean;
|
|
747
|
+
showAuthor?: boolean;
|
|
748
|
+
showMedia?: boolean;
|
|
749
|
+
showBranding?: boolean;
|
|
750
|
+
showCTA?: boolean;
|
|
751
|
+
ctaLabel?: string;
|
|
752
|
+
ctaLabelIcon?: boolean;
|
|
753
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
754
|
+
ctaUsePlatformColor?: boolean;
|
|
755
|
+
ctaUsePlatformIconColor?: boolean;
|
|
756
|
+
disableCard?: boolean;
|
|
757
|
+
width?: string | number;
|
|
758
|
+
maxWidth?: string | number;
|
|
759
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
760
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
761
|
+
className?: string;
|
|
762
|
+
style?: React.CSSProperties;
|
|
763
|
+
theme?: "light" | "dark";
|
|
764
|
+
cardLayout?: CardLayout;
|
|
765
|
+
};
|
|
766
|
+
/**
|
|
767
|
+
* Embed component for YouTube videos.
|
|
768
|
+
* Fetches video metadata and uses the YouTube IFrame Player API for playback.
|
|
769
|
+
*
|
|
770
|
+
* @param props - Component configuration
|
|
771
|
+
* @returns Embedded YouTube video player with metadata
|
|
772
|
+
*
|
|
773
|
+
* @example
|
|
774
|
+
* ```tsx
|
|
775
|
+
* <YouTubeEmbed url="https://www.youtube.com/watch?v=dQw4w9WgXcQ" theme="dark" />
|
|
776
|
+
* ```
|
|
777
|
+
*/
|
|
778
|
+
declare function YouTubeEmbed({ url, showTitle, showAuthor, showMedia, showBranding, showCTA, ctaLabel, ctaLabelIcon, ctaLabelIconPosition, ctaUsePlatformColor, ctaUsePlatformIconColor, disableCard, width, maxWidth, linkBehavior, linkTarget, className, style, theme, cardLayout, }: YouTubeEmbedProps): react_jsx_runtime.JSX.Element;
|
|
779
|
+
|
|
780
|
+
interface RumbleEmbedProps {
|
|
781
|
+
url: string;
|
|
782
|
+
width?: string | number;
|
|
783
|
+
maxWidth?: string | number;
|
|
784
|
+
theme?: 'light' | 'dark';
|
|
785
|
+
showTitle?: boolean;
|
|
786
|
+
showAuthor?: boolean;
|
|
787
|
+
showDate?: boolean;
|
|
788
|
+
showMedia?: boolean;
|
|
789
|
+
showBranding?: boolean;
|
|
790
|
+
ctaLabel?: string;
|
|
791
|
+
ctaLabelIcon?: boolean;
|
|
792
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
793
|
+
ctaUsePlatformColor?: boolean;
|
|
794
|
+
ctaUsePlatformIconColor?: boolean;
|
|
795
|
+
disableCard?: boolean;
|
|
796
|
+
className?: string;
|
|
797
|
+
style?: React.CSSProperties;
|
|
798
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
799
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
800
|
+
showDuration?: boolean;
|
|
801
|
+
showMeta?: boolean;
|
|
802
|
+
cardLayout?: CardLayout;
|
|
803
|
+
}
|
|
804
|
+
declare const RumbleEmbed: React.FC<RumbleEmbedProps>;
|
|
805
|
+
|
|
806
|
+
interface KickEmbedProps {
|
|
807
|
+
url: string;
|
|
808
|
+
width?: string | number;
|
|
809
|
+
maxWidth?: string | number;
|
|
810
|
+
height?: string | number;
|
|
811
|
+
theme?: 'light' | 'dark';
|
|
812
|
+
/** Show Title (defaults to true) */
|
|
813
|
+
showTitle?: boolean;
|
|
814
|
+
/** Show Author (defaults to true) */
|
|
815
|
+
showAuthor?: boolean;
|
|
816
|
+
/** Show Date (defaults to true) */
|
|
817
|
+
showDate?: boolean;
|
|
818
|
+
/** Show Body/Description (defaults to true) */
|
|
819
|
+
showBody?: boolean;
|
|
820
|
+
/** Show Media/Content (defaults to true) */
|
|
821
|
+
showMedia?: boolean;
|
|
822
|
+
/** Show Thumbnail (defaults to true) */
|
|
823
|
+
showThumbnail?: boolean;
|
|
824
|
+
/** Show Live Badge (defaults to true) */
|
|
825
|
+
showLiveBadge?: boolean;
|
|
826
|
+
/** Show View Count (defaults to true) */
|
|
827
|
+
showViews?: boolean;
|
|
828
|
+
/** Show Description/Bio (defaults to true) */
|
|
829
|
+
showDescription?: boolean;
|
|
830
|
+
/** Show Category/Game (defaults to true) */
|
|
831
|
+
showCategory?: boolean;
|
|
832
|
+
/** Show Language Badge (defaults to true) */
|
|
833
|
+
showLanguage?: boolean;
|
|
834
|
+
/** Show Mature/18+ Badge (defaults to true) */
|
|
835
|
+
showMature?: boolean;
|
|
836
|
+
/** Show Followers Count (defaults to true) */
|
|
837
|
+
showFollowers?: boolean;
|
|
838
|
+
/** Show Stream Tags (defaults to true) */
|
|
839
|
+
showTags?: boolean;
|
|
840
|
+
showBranding?: boolean;
|
|
841
|
+
showCTA?: boolean;
|
|
842
|
+
ctaLabel?: string;
|
|
843
|
+
ctaLabelIcon?: boolean;
|
|
844
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
845
|
+
ctaUsePlatformColor?: boolean;
|
|
846
|
+
ctaUsePlatformIconColor?: boolean;
|
|
847
|
+
disableCard?: boolean;
|
|
848
|
+
className?: string;
|
|
849
|
+
style?: React.CSSProperties;
|
|
850
|
+
cardLayout?: CardLayout;
|
|
851
|
+
}
|
|
852
|
+
declare const KickEmbed: React.FC<KickEmbedProps>;
|
|
853
|
+
|
|
854
|
+
interface DailymotionEmbedProps {
|
|
855
|
+
url: string;
|
|
856
|
+
width?: string | number;
|
|
857
|
+
maxWidth?: string | number;
|
|
858
|
+
theme?: 'light' | 'dark';
|
|
859
|
+
showTitle?: boolean;
|
|
860
|
+
showAuthor?: boolean;
|
|
861
|
+
showBody?: boolean;
|
|
862
|
+
/** Maximum characters for description before truncating with "..." (defaults to 100) */
|
|
863
|
+
bodyMaxLength?: number;
|
|
864
|
+
showMedia?: boolean;
|
|
865
|
+
showBranding?: boolean;
|
|
866
|
+
showCTA?: boolean;
|
|
867
|
+
ctaLabel?: string;
|
|
868
|
+
ctaLabelIcon?: boolean;
|
|
869
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
870
|
+
ctaUsePlatformColor?: boolean;
|
|
871
|
+
ctaUsePlatformIconColor?: boolean;
|
|
872
|
+
disableCard?: boolean;
|
|
873
|
+
className?: string;
|
|
874
|
+
style?: React.CSSProperties;
|
|
875
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
876
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
877
|
+
/** Enable autoplay (defaults to false) */
|
|
878
|
+
autoPlay?: boolean;
|
|
879
|
+
/** Enable click-to-play behavior - show thumbnail with play button until clicked (defaults to true) */
|
|
880
|
+
clickToPlay?: boolean;
|
|
881
|
+
cardLayout?: CardLayout;
|
|
882
|
+
}
|
|
883
|
+
declare const DailymotionEmbed: React.FC<DailymotionEmbedProps>;
|
|
884
|
+
|
|
885
|
+
interface OdyseeEmbedProps {
|
|
886
|
+
url: string;
|
|
887
|
+
width?: string | number;
|
|
888
|
+
maxWidth?: string | number;
|
|
889
|
+
theme?: 'light' | 'dark';
|
|
890
|
+
showTitle?: boolean;
|
|
891
|
+
showAuthor?: boolean;
|
|
892
|
+
showBody?: boolean;
|
|
893
|
+
/** Maximum characters for description before truncating with "..." (defaults to 100) */
|
|
894
|
+
bodyMaxLength?: number;
|
|
895
|
+
showMedia?: boolean;
|
|
896
|
+
showBranding?: boolean;
|
|
897
|
+
showCTA?: boolean;
|
|
898
|
+
ctaLabel?: string;
|
|
899
|
+
ctaLabelIcon?: boolean;
|
|
900
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
901
|
+
ctaUsePlatformColor?: boolean;
|
|
902
|
+
ctaUsePlatformIconColor?: boolean;
|
|
903
|
+
disableCard?: boolean;
|
|
904
|
+
className?: string;
|
|
905
|
+
style?: React.CSSProperties;
|
|
906
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
907
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
908
|
+
/** Enable autoplay (defaults to false) */
|
|
909
|
+
autoPlay?: boolean;
|
|
910
|
+
/** Enable click-to-play behavior - show thumbnail with play button until clicked (defaults to true) */
|
|
911
|
+
clickToPlay?: boolean;
|
|
912
|
+
cardLayout?: CardLayout;
|
|
913
|
+
}
|
|
914
|
+
declare const OdyseeEmbed: React.FC<OdyseeEmbedProps>;
|
|
915
|
+
|
|
916
|
+
interface ArchiveOrgEmbedProps {
|
|
917
|
+
url: string;
|
|
918
|
+
width?: string | number;
|
|
919
|
+
maxWidth?: string | number;
|
|
920
|
+
theme?: 'light' | 'dark';
|
|
921
|
+
showTitle?: boolean;
|
|
922
|
+
showAuthor?: boolean;
|
|
923
|
+
showBody?: boolean;
|
|
924
|
+
showDate?: boolean;
|
|
925
|
+
showViews?: boolean;
|
|
926
|
+
showSize?: boolean;
|
|
927
|
+
showReviews?: boolean;
|
|
928
|
+
/** Maximum characters for description before truncating with "..." (defaults to 100) */
|
|
929
|
+
bodyMaxLength?: number;
|
|
930
|
+
showMedia?: boolean;
|
|
931
|
+
showBranding?: boolean;
|
|
932
|
+
showCTA?: boolean;
|
|
933
|
+
ctaLabel?: string;
|
|
934
|
+
ctaLabelIcon?: boolean;
|
|
935
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
936
|
+
ctaUsePlatformColor?: boolean;
|
|
937
|
+
ctaUsePlatformIconColor?: boolean;
|
|
938
|
+
disableCard?: boolean;
|
|
939
|
+
className?: string;
|
|
940
|
+
style?: React.CSSProperties;
|
|
941
|
+
linkBehavior?: "card" | "title" | "cta" | "none";
|
|
942
|
+
linkTarget?: "_blank" | "_self" | "_parent" | "_top";
|
|
943
|
+
/** Enable autoplay (defaults to false) */
|
|
944
|
+
autoPlay?: boolean;
|
|
945
|
+
cardLayout?: CardLayout;
|
|
946
|
+
}
|
|
947
|
+
declare const ArchiveOrgEmbed: React.FC<ArchiveOrgEmbedProps>;
|
|
948
|
+
|
|
949
|
+
interface TwitchEmbedProps {
|
|
950
|
+
url: string;
|
|
951
|
+
clientId?: string;
|
|
952
|
+
width?: string | number;
|
|
953
|
+
maxWidth?: string | number;
|
|
954
|
+
height?: string | number;
|
|
955
|
+
theme?: 'light' | 'dark';
|
|
956
|
+
showViews?: boolean;
|
|
957
|
+
showFollowers?: boolean;
|
|
958
|
+
showBranding?: boolean;
|
|
959
|
+
showCTA?: boolean;
|
|
960
|
+
ctaLabel?: string;
|
|
961
|
+
ctaLabelIcon?: boolean;
|
|
962
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
963
|
+
ctaUsePlatformColor?: boolean;
|
|
964
|
+
ctaUsePlatformIconColor?: boolean;
|
|
965
|
+
disableCard?: boolean;
|
|
966
|
+
className?: string;
|
|
967
|
+
style?: React.CSSProperties;
|
|
968
|
+
cardLayout?: CardLayout;
|
|
969
|
+
}
|
|
970
|
+
declare const TwitchEmbed: React.FC<TwitchEmbedProps>;
|
|
971
|
+
|
|
972
|
+
interface TumblrEmbedProps {
|
|
973
|
+
/** Tumblr post URL */
|
|
974
|
+
url: string;
|
|
975
|
+
/** Width of the embed */
|
|
976
|
+
width?: string | number;
|
|
977
|
+
/** Maximum width of the embed */
|
|
978
|
+
maxWidth?: string | number;
|
|
979
|
+
/** Theme (light/dark) */
|
|
980
|
+
theme?: 'light' | 'dark';
|
|
981
|
+
/** Show blog avatar */
|
|
982
|
+
showAvatar?: boolean;
|
|
983
|
+
/** Show post title */
|
|
984
|
+
showTitle?: boolean;
|
|
985
|
+
/** Show post body/content */
|
|
986
|
+
showBody?: boolean;
|
|
987
|
+
/** Show post media (images, video) */
|
|
988
|
+
showMedia?: boolean;
|
|
989
|
+
/** Show blog author name */
|
|
990
|
+
showAuthor?: boolean;
|
|
991
|
+
/** Show post date */
|
|
992
|
+
showDate?: boolean;
|
|
993
|
+
/** Show note count */
|
|
994
|
+
showNotes?: boolean;
|
|
995
|
+
/** Show post tags */
|
|
996
|
+
showTags?: boolean;
|
|
997
|
+
/** Show Tumblr branding */
|
|
998
|
+
showBranding?: boolean;
|
|
999
|
+
/** Show CTA button */
|
|
1000
|
+
showCTA?: boolean;
|
|
1001
|
+
/** CTA label */
|
|
1002
|
+
ctaLabel?: string;
|
|
1003
|
+
/** CTA icon */
|
|
1004
|
+
ctaLabelIcon?: boolean;
|
|
1005
|
+
/** CTA icon position */
|
|
1006
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1007
|
+
ctaUsePlatformColor?: boolean;
|
|
1008
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1009
|
+
/** Disable card styling */
|
|
1010
|
+
disableCard?: boolean;
|
|
1011
|
+
/** Additional CSS class */
|
|
1012
|
+
className?: string;
|
|
1013
|
+
/** Additional inline styles */
|
|
1014
|
+
style?: React.CSSProperties;
|
|
1015
|
+
/** Link behavior */
|
|
1016
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1017
|
+
/** Link target */
|
|
1018
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1019
|
+
cardLayout?: CardLayout;
|
|
1020
|
+
}
|
|
1021
|
+
/**
|
|
1022
|
+
* TumblrEmbed component
|
|
1023
|
+
*
|
|
1024
|
+
* Displays Tumblr posts using the public v1 API (no authentication required).
|
|
1025
|
+
* Features:
|
|
1026
|
+
* - Direct API fetch (no proxy needed - CORS enabled)
|
|
1027
|
+
* - Custom EmbedCard rendering
|
|
1028
|
+
* - Support for text, photo, quote, video, and link posts
|
|
1029
|
+
*/
|
|
1030
|
+
declare const TumblrEmbed: React.FC<TumblrEmbedProps>;
|
|
1031
|
+
|
|
1032
|
+
interface PinterestEmbedProps {
|
|
1033
|
+
/** Pinterest pin URL */
|
|
1034
|
+
url: string;
|
|
1035
|
+
/** Width of the embed */
|
|
1036
|
+
width?: string | number;
|
|
1037
|
+
/** Maximum width of the embed */
|
|
1038
|
+
maxWidth?: string | number;
|
|
1039
|
+
/** Theme (light/dark) */
|
|
1040
|
+
theme?: 'light' | 'dark';
|
|
1041
|
+
/** Show pin description/caption */
|
|
1042
|
+
showDescription?: boolean;
|
|
1043
|
+
/** Show pin media */
|
|
1044
|
+
showMedia?: boolean;
|
|
1045
|
+
/** Show pinner/author info */
|
|
1046
|
+
showAuthor?: boolean;
|
|
1047
|
+
/** Show standard stats (saves, comments) */
|
|
1048
|
+
showStats?: boolean;
|
|
1049
|
+
/** Show save count in stats */
|
|
1050
|
+
showSaves?: boolean;
|
|
1051
|
+
/** Show Pinterest branding */
|
|
1052
|
+
showBranding?: boolean;
|
|
1053
|
+
/** Show CTA button */
|
|
1054
|
+
showCTA?: boolean;
|
|
1055
|
+
/** CTA label */
|
|
1056
|
+
ctaLabel?: string;
|
|
1057
|
+
/** CTA icon */
|
|
1058
|
+
ctaLabelIcon?: boolean;
|
|
1059
|
+
/** CTA icon position */
|
|
1060
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1061
|
+
ctaUsePlatformColor?: boolean;
|
|
1062
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1063
|
+
/** Limit the image width within the card */
|
|
1064
|
+
constrainImageWidth?: boolean;
|
|
1065
|
+
/** Align the image within the card */
|
|
1066
|
+
imageAlignment?: "center" | "left" | "right";
|
|
1067
|
+
/** Max width for the image when constrainImageWidth is enabled */
|
|
1068
|
+
imageMaxWidth?: string | number;
|
|
1069
|
+
/** Disable card styling */
|
|
1070
|
+
disableCard?: boolean;
|
|
1071
|
+
/** Additional CSS class */
|
|
1072
|
+
className?: string;
|
|
1073
|
+
/** Additional inline styles */
|
|
1074
|
+
style?: React.CSSProperties;
|
|
1075
|
+
/** Link behavior */
|
|
1076
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1077
|
+
/** Link target */
|
|
1078
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1079
|
+
cardLayout?: CardLayout;
|
|
1080
|
+
}
|
|
1081
|
+
declare const PinterestEmbed: React.FC<PinterestEmbedProps>;
|
|
1082
|
+
|
|
1083
|
+
interface SnapchatEmbedProps {
|
|
1084
|
+
url: string;
|
|
1085
|
+
width?: string | number;
|
|
1086
|
+
maxWidth?: string | number;
|
|
1087
|
+
height?: string | number;
|
|
1088
|
+
className?: string;
|
|
1089
|
+
style?: React.CSSProperties;
|
|
1090
|
+
/** Whether to include script tag (default: true). Set false if loading globally. */
|
|
1091
|
+
scriptLoad?: boolean;
|
|
1092
|
+
disableCard?: boolean;
|
|
1093
|
+
showCTA?: boolean;
|
|
1094
|
+
ctaLabel?: string;
|
|
1095
|
+
ctaLabelIcon?: boolean;
|
|
1096
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1097
|
+
ctaUsePlatformColor?: boolean;
|
|
1098
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1099
|
+
ctaAlignment?: "left" | "center" | "right";
|
|
1100
|
+
embedAlignment?: "left" | "center" | "right";
|
|
1101
|
+
showBranding?: boolean;
|
|
1102
|
+
constrainWidthByEmbed?: boolean;
|
|
1103
|
+
theme?: "light" | "dark";
|
|
1104
|
+
cardLayout?: CardLayout;
|
|
1105
|
+
}
|
|
1106
|
+
declare const SnapchatEmbed: React.FC<SnapchatEmbedProps>;
|
|
1107
|
+
|
|
1108
|
+
interface TelegramEmbedProps {
|
|
1109
|
+
url: string;
|
|
1110
|
+
width?: string | number;
|
|
1111
|
+
maxWidth?: string | number;
|
|
1112
|
+
/** Accent color for the embed (hex code without #, e.g. "F646A4") */
|
|
1113
|
+
accentColor?: string;
|
|
1114
|
+
dark?: boolean;
|
|
1115
|
+
className?: string;
|
|
1116
|
+
style?: React.CSSProperties;
|
|
1117
|
+
/** Show comments (data-comments). Default: true via widget but prop can control if we supported it */
|
|
1118
|
+
showComments?: boolean;
|
|
1119
|
+
disableCard?: boolean;
|
|
1120
|
+
showCTA?: boolean;
|
|
1121
|
+
ctaLabel?: string;
|
|
1122
|
+
ctaLabelIcon?: boolean;
|
|
1123
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1124
|
+
ctaUsePlatformColor?: boolean;
|
|
1125
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1126
|
+
ctaAlignment?: "left" | "center" | "right";
|
|
1127
|
+
embedAlignment?: "left" | "center" | "right";
|
|
1128
|
+
showBranding?: boolean;
|
|
1129
|
+
constrainWidthByEmbed?: boolean;
|
|
1130
|
+
cardLayout?: CardLayout;
|
|
1131
|
+
}
|
|
1132
|
+
declare const TelegramEmbed: React.FC<TelegramEmbedProps>;
|
|
1133
|
+
|
|
1134
|
+
interface SpotifyEmbedProps {
|
|
1135
|
+
/** Spotify URL (track, album, playlist, artist, episode, show, user) */
|
|
1136
|
+
url: string;
|
|
1137
|
+
/** Width of the embed */
|
|
1138
|
+
width?: string | number;
|
|
1139
|
+
/** Max width of the embed */
|
|
1140
|
+
maxWidth?: string | number;
|
|
1141
|
+
/** Height of the embed (defaults to 152px for tracks, 352px for others) */
|
|
1142
|
+
height?: string | number;
|
|
1143
|
+
/** Theme (light/dark) - Spotify iframe handles its own theme usually, but we keep prop for consistency */
|
|
1144
|
+
theme?: 'light' | 'dark';
|
|
1145
|
+
/** Show Spotify branding */
|
|
1146
|
+
showBranding?: boolean;
|
|
1147
|
+
/** Show CTA button */
|
|
1148
|
+
showCTA?: boolean;
|
|
1149
|
+
/** CTA label */
|
|
1150
|
+
ctaLabel?: string;
|
|
1151
|
+
/** CTA icon */
|
|
1152
|
+
ctaLabelIcon?: boolean;
|
|
1153
|
+
/** CTA icon position */
|
|
1154
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1155
|
+
ctaUsePlatformColor?: boolean;
|
|
1156
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1157
|
+
/** Disable card styling (flush) */
|
|
1158
|
+
disableCard?: boolean;
|
|
1159
|
+
/** Limit card width to embed width */
|
|
1160
|
+
constrainWidthByEmbed?: boolean;
|
|
1161
|
+
/** Additional CSS class */
|
|
1162
|
+
className?: string;
|
|
1163
|
+
/** Additional inline styles */
|
|
1164
|
+
style?: React.CSSProperties;
|
|
1165
|
+
/** Link behavior for the card wrapper */
|
|
1166
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1167
|
+
/** Link target */
|
|
1168
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1169
|
+
cardLayout?: CardLayout;
|
|
1170
|
+
}
|
|
1171
|
+
declare const SpotifyEmbed: React.FC<SpotifyEmbedProps>;
|
|
1172
|
+
|
|
1173
|
+
interface AppleMusicEmbedProps {
|
|
1174
|
+
url: string;
|
|
1175
|
+
width?: string | number;
|
|
1176
|
+
maxWidth?: string | number;
|
|
1177
|
+
height?: string | number;
|
|
1178
|
+
theme?: 'light' | 'dark';
|
|
1179
|
+
showBranding?: boolean;
|
|
1180
|
+
showCTA?: boolean;
|
|
1181
|
+
ctaLabel?: string;
|
|
1182
|
+
ctaLabelIcon?: boolean;
|
|
1183
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1184
|
+
ctaUsePlatformColor?: boolean;
|
|
1185
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1186
|
+
disableCard?: boolean;
|
|
1187
|
+
constrainWidthByEmbed?: boolean;
|
|
1188
|
+
className?: string;
|
|
1189
|
+
style?: React.CSSProperties;
|
|
1190
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1191
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1192
|
+
cardLayout?: CardLayout;
|
|
1193
|
+
}
|
|
1194
|
+
declare const AppleMusicEmbed: React.FC<AppleMusicEmbedProps>;
|
|
1195
|
+
|
|
1196
|
+
interface DeezerEmbedProps {
|
|
1197
|
+
url: string;
|
|
1198
|
+
width?: string | number;
|
|
1199
|
+
maxWidth?: string | number;
|
|
1200
|
+
height?: string | number;
|
|
1201
|
+
theme?: 'light' | 'dark';
|
|
1202
|
+
showBranding?: boolean;
|
|
1203
|
+
showCTA?: boolean;
|
|
1204
|
+
ctaLabel?: string;
|
|
1205
|
+
ctaLabelIcon?: boolean;
|
|
1206
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1207
|
+
ctaUsePlatformColor?: boolean;
|
|
1208
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1209
|
+
disableCard?: boolean;
|
|
1210
|
+
constrainWidthByEmbed?: boolean;
|
|
1211
|
+
className?: string;
|
|
1212
|
+
style?: React.CSSProperties;
|
|
1213
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1214
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1215
|
+
cardLayout?: CardLayout;
|
|
1216
|
+
}
|
|
1217
|
+
declare const DeezerEmbed: React.FC<DeezerEmbedProps>;
|
|
1218
|
+
|
|
1219
|
+
interface TidalEmbedProps {
|
|
1220
|
+
url: string;
|
|
1221
|
+
width?: string | number;
|
|
1222
|
+
maxWidth?: string | number;
|
|
1223
|
+
height?: string | number;
|
|
1224
|
+
theme?: 'light' | 'dark';
|
|
1225
|
+
showBranding?: boolean;
|
|
1226
|
+
showCTA?: boolean;
|
|
1227
|
+
ctaLabel?: string;
|
|
1228
|
+
ctaLabelIcon?: boolean;
|
|
1229
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1230
|
+
ctaUsePlatformColor?: boolean;
|
|
1231
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1232
|
+
disableCard?: boolean;
|
|
1233
|
+
constrainWidthByEmbed?: boolean;
|
|
1234
|
+
className?: string;
|
|
1235
|
+
style?: React.CSSProperties;
|
|
1236
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1237
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1238
|
+
cardLayout?: CardLayout;
|
|
1239
|
+
}
|
|
1240
|
+
declare const TidalEmbed: React.FC<TidalEmbedProps>;
|
|
1241
|
+
|
|
1242
|
+
interface SoundCloudEmbedProps {
|
|
1243
|
+
url: string;
|
|
1244
|
+
width?: string | number;
|
|
1245
|
+
maxWidth?: string | number;
|
|
1246
|
+
height?: string | number;
|
|
1247
|
+
theme?: 'light' | 'dark';
|
|
1248
|
+
showBranding?: boolean;
|
|
1249
|
+
showCTA?: boolean;
|
|
1250
|
+
ctaLabel?: string;
|
|
1251
|
+
ctaLabelIcon?: boolean;
|
|
1252
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1253
|
+
ctaUsePlatformColor?: boolean;
|
|
1254
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1255
|
+
disableCard?: boolean;
|
|
1256
|
+
constrainWidthByEmbed?: boolean;
|
|
1257
|
+
className?: string;
|
|
1258
|
+
style?: React.CSSProperties;
|
|
1259
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1260
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1261
|
+
autoPlay?: boolean;
|
|
1262
|
+
cardLayout?: CardLayout;
|
|
1263
|
+
}
|
|
1264
|
+
declare const SoundCloudEmbed: React.FC<SoundCloudEmbedProps>;
|
|
1265
|
+
|
|
1266
|
+
interface ApplePodcastsEmbedProps {
|
|
1267
|
+
url: string;
|
|
1268
|
+
width?: string | number;
|
|
1269
|
+
maxWidth?: string | number;
|
|
1270
|
+
height?: string | number;
|
|
1271
|
+
theme?: 'light' | 'dark';
|
|
1272
|
+
showBranding?: boolean;
|
|
1273
|
+
showCTA?: boolean;
|
|
1274
|
+
ctaLabel?: string;
|
|
1275
|
+
ctaLabelIcon?: boolean;
|
|
1276
|
+
ctaLabelIconPosition?: "before" | "after";
|
|
1277
|
+
ctaUsePlatformColor?: boolean;
|
|
1278
|
+
ctaUsePlatformIconColor?: boolean;
|
|
1279
|
+
disableCard?: boolean;
|
|
1280
|
+
constrainWidthByEmbed?: boolean;
|
|
1281
|
+
className?: string;
|
|
1282
|
+
style?: React.CSSProperties;
|
|
1283
|
+
linkBehavior?: 'card' | 'title' | 'cta' | 'none';
|
|
1284
|
+
linkTarget?: '_blank' | '_self' | '_parent' | '_top';
|
|
1285
|
+
cardLayout?: CardLayout;
|
|
1286
|
+
}
|
|
1287
|
+
declare const ApplePodcastsEmbed: React.FC<ApplePodcastsEmbedProps>;
|
|
1288
|
+
|
|
1289
|
+
export { AppleMusicEmbed, type AppleMusicEmbedProps, ApplePodcastsEmbed, type ApplePodcastsEmbedProps, ArchiveOrgEmbed, type ArchiveOrgEmbedProps, BilibiliEmbed, type BilibiliEmbedProps, BlueskyEmbed, type BlueskyEmbedProps, type CardLayout, CardLayoutProvider, DailymotionEmbed, type DailymotionEmbedProps, DeezerEmbed, type DeezerEmbedProps, type EmbedBadge, EmbedCard, type EmbedCardProps, type EmbedMedia, type EmbedMetaItem, FacebookEmbed, type FacebookEmbedProps, InstagramEmbed, type InstagramEmbedProps, KickEmbed, type KickEmbedProps, LinkedInEmbed, type LinkedInEmbedProps, MastodonEmbed, type MastodonEmbedProps, MediaPlayer, type MediaPlayerProps, OdyseeEmbed, type OdyseeEmbedProps, PinterestEmbed, type PinterestEmbedProps, PlatformIcon, type PlatformIconName, RedditEmbed, type RedditEmbedProps, RumbleEmbed, type RumbleEmbedProps, SnapchatEmbed, type SnapchatEmbedProps, SoundCloudEmbed, type SoundCloudEmbedProps, SpotifyEmbed, type SpotifyEmbedProps, TelegramEmbed, type TelegramEmbedProps, ThreadsEmbed, type ThreadsEmbedProps, TidalEmbed, type TidalEmbedProps, TikTokEmbed, type TikTokEmbedProps, TruthSocialEmbed, type TruthSocialEmbedProps, TumblrEmbed, type TumblrEmbedProps, TwitchEmbed, type TwitchEmbedProps, XEmbed, type XEmbedProps, YouTubeEmbed, type YouTubeEmbedProps };
|