@automattic/social-previews 2.1.0-beta.8 → 3.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/CHANGELOG.md +35 -16
- package/LICENSE.txt +355 -0
- package/README.md +15 -24
- package/SECURITY.md +47 -0
- package/dist/index.css +1627 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +280 -0
- package/dist/index.d.ts +280 -0
- package/dist/index.js +2435 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +2435 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +71 -72
- package/dist/cjs/bluesky-preview/helpers.js +0 -21
- package/dist/cjs/bluesky-preview/helpers.js.map +0 -1
- package/dist/cjs/bluesky-preview/index.js +0 -7
- package/dist/cjs/bluesky-preview/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/link-preview.js +0 -10
- package/dist/cjs/bluesky-preview/link-preview.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/actions/index.js +0 -7
- package/dist/cjs/bluesky-preview/post/actions/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/actions/styles.scss +0 -20
- package/dist/cjs/bluesky-preview/post/body/index.js +0 -10
- package/dist/cjs/bluesky-preview/post/body/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/body/styles.scss +0 -12
- package/dist/cjs/bluesky-preview/post/card/index.js +0 -11
- package/dist/cjs/bluesky-preview/post/card/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/card/styles.scss +0 -70
- package/dist/cjs/bluesky-preview/post/header/index.js +0 -11
- package/dist/cjs/bluesky-preview/post/header/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/header/styles.scss +0 -33
- package/dist/cjs/bluesky-preview/post/sidebar/index.js +0 -11
- package/dist/cjs/bluesky-preview/post/sidebar/index.js.map +0 -1
- package/dist/cjs/bluesky-preview/post/sidebar/styles.scss +0 -6
- package/dist/cjs/bluesky-preview/post-preview.js +0 -20
- package/dist/cjs/bluesky-preview/post-preview.js.map +0 -1
- package/dist/cjs/bluesky-preview/previews.js +0 -18
- package/dist/cjs/bluesky-preview/previews.js.map +0 -1
- package/dist/cjs/bluesky-preview/styles.scss +0 -65
- package/dist/cjs/bluesky-preview/types.js +0 -3
- package/dist/cjs/bluesky-preview/types.js.map +0 -1
- package/dist/cjs/bluesky-preview/variables.scss +0 -6
- package/dist/cjs/constants.js +0 -11
- package/dist/cjs/constants.js.map +0 -1
- package/dist/cjs/facebook-preview/custom-text.js +0 -17
- package/dist/cjs/facebook-preview/custom-text.js.map +0 -1
- package/dist/cjs/facebook-preview/helpers.js +0 -16
- package/dist/cjs/facebook-preview/helpers.js.map +0 -1
- package/dist/cjs/facebook-preview/hooks/use-image-hook.js +0 -28
- package/dist/cjs/facebook-preview/hooks/use-image-hook.js.map +0 -1
- package/dist/cjs/facebook-preview/index.js +0 -7
- package/dist/cjs/facebook-preview/index.js.map +0 -1
- package/dist/cjs/facebook-preview/link-preview-details.js +0 -17
- package/dist/cjs/facebook-preview/link-preview-details.js.map +0 -1
- package/dist/cjs/facebook-preview/link-preview.js +0 -26
- package/dist/cjs/facebook-preview/link-preview.js.map +0 -1
- package/dist/cjs/facebook-preview/post/actions/index.js +0 -26
- package/dist/cjs/facebook-preview/post/actions/index.js.map +0 -1
- package/dist/cjs/facebook-preview/post/actions/styles.scss +0 -28
- package/dist/cjs/facebook-preview/post/header/index.js +0 -28
- package/dist/cjs/facebook-preview/post/header/index.js.map +0 -1
- package/dist/cjs/facebook-preview/post/header/styles.scss +0 -65
- package/dist/cjs/facebook-preview/post/icons/index.js +0 -7
- package/dist/cjs/facebook-preview/post/icons/index.js.map +0 -1
- package/dist/cjs/facebook-preview/post/icons/styles.scss +0 -45
- package/dist/cjs/facebook-preview/post-preview.js +0 -20
- package/dist/cjs/facebook-preview/post-preview.js.map +0 -1
- package/dist/cjs/facebook-preview/previews.js +0 -22
- package/dist/cjs/facebook-preview/previews.js.map +0 -1
- package/dist/cjs/facebook-preview/style.scss +0 -210
- package/dist/cjs/facebook-preview/types.js +0 -3
- package/dist/cjs/facebook-preview/types.js.map +0 -1
- package/dist/cjs/facebook-preview/variables.scss +0 -12
- package/dist/cjs/google-search-preview/index.js +0 -23
- package/dist/cjs/google-search-preview/index.js.map +0 -1
- package/dist/cjs/google-search-preview/style.scss +0 -82
- package/dist/cjs/helpers.js +0 -169
- package/dist/cjs/helpers.js.map +0 -1
- package/dist/cjs/index.js +0 -16
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/instagram-preview/constants.js +0 -6
- package/dist/cjs/instagram-preview/constants.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/bookmark.js +0 -9
- package/dist/cjs/instagram-preview/icons/bookmark.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/comment.js +0 -9
- package/dist/cjs/instagram-preview/icons/comment.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/default-avatar.js +0 -9
- package/dist/cjs/instagram-preview/icons/default-avatar.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/heart.js +0 -9
- package/dist/cjs/instagram-preview/icons/heart.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/menu.js +0 -9
- package/dist/cjs/instagram-preview/icons/menu.js.map +0 -1
- package/dist/cjs/instagram-preview/icons/share.js +0 -9
- package/dist/cjs/instagram-preview/icons/share.js.map +0 -1
- package/dist/cjs/instagram-preview/index.js +0 -6
- package/dist/cjs/instagram-preview/index.js.map +0 -1
- package/dist/cjs/instagram-preview/post-preview.js +0 -27
- package/dist/cjs/instagram-preview/post-preview.js.map +0 -1
- package/dist/cjs/instagram-preview/previews.js +0 -15
- package/dist/cjs/instagram-preview/previews.js.map +0 -1
- package/dist/cjs/instagram-preview/style.scss +0 -107
- package/dist/cjs/instagram-preview/types.js +0 -3
- package/dist/cjs/instagram-preview/types.js.map +0 -1
- package/dist/cjs/linkedin-preview/constants.js +0 -6
- package/dist/cjs/linkedin-preview/constants.js.map +0 -1
- package/dist/cjs/linkedin-preview/icons/default-avatar.js +0 -9
- package/dist/cjs/linkedin-preview/icons/default-avatar.js.map +0 -1
- package/dist/cjs/linkedin-preview/index.js +0 -7
- package/dist/cjs/linkedin-preview/index.js.map +0 -1
- package/dist/cjs/linkedin-preview/link-preview.js +0 -13
- package/dist/cjs/linkedin-preview/link-preview.js.map +0 -1
- package/dist/cjs/linkedin-preview/post-preview.js +0 -27
- package/dist/cjs/linkedin-preview/post-preview.js.map +0 -1
- package/dist/cjs/linkedin-preview/previews.js +0 -19
- package/dist/cjs/linkedin-preview/previews.js.map +0 -1
- package/dist/cjs/linkedin-preview/style.scss +0 -132
- package/dist/cjs/linkedin-preview/types.js +0 -3
- package/dist/cjs/linkedin-preview/types.js.map +0 -1
- package/dist/cjs/mastodon-preview/constants.js +0 -6
- package/dist/cjs/mastodon-preview/constants.js.map +0 -1
- package/dist/cjs/mastodon-preview/helpers.js +0 -32
- package/dist/cjs/mastodon-preview/helpers.js.map +0 -1
- package/dist/cjs/mastodon-preview/index.js +0 -7
- package/dist/cjs/mastodon-preview/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/link-preview.js +0 -16
- package/dist/cjs/mastodon-preview/link-preview.js.map +0 -1
- package/dist/cjs/mastodon-preview/post/actions/index.js +0 -7
- package/dist/cjs/mastodon-preview/post/actions/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/post/actions/styles.scss +0 -25
- package/dist/cjs/mastodon-preview/post/body/index.js +0 -34
- package/dist/cjs/mastodon-preview/post/body/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/post/body/styles.scss +0 -12
- package/dist/cjs/mastodon-preview/post/card/index.js +0 -14
- package/dist/cjs/mastodon-preview/post/card/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/post/card/styles.scss +0 -76
- package/dist/cjs/mastodon-preview/post/header/index.js +0 -16
- package/dist/cjs/mastodon-preview/post/header/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/post/header/styles.scss +0 -37
- package/dist/cjs/mastodon-preview/post/icons/index.js +0 -9
- package/dist/cjs/mastodon-preview/post/icons/index.js.map +0 -1
- package/dist/cjs/mastodon-preview/post-preview.js +0 -19
- package/dist/cjs/mastodon-preview/post-preview.js.map +0 -1
- package/dist/cjs/mastodon-preview/previews.js +0 -18
- package/dist/cjs/mastodon-preview/previews.js.map +0 -1
- package/dist/cjs/mastodon-preview/styles.scss +0 -73
- package/dist/cjs/mastodon-preview/types.js +0 -3
- package/dist/cjs/mastodon-preview/types.js.map +0 -1
- package/dist/cjs/mastodon-preview/variables.scss +0 -7
- package/dist/cjs/nextdoor-preview/constants.js +0 -6
- package/dist/cjs/nextdoor-preview/constants.js.map +0 -1
- package/dist/cjs/nextdoor-preview/footer-actions.js +0 -13
- package/dist/cjs/nextdoor-preview/footer-actions.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/chevron-icon.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/chevron-icon.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/comment-icon.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/comment-icon.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/default-avatar.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/default-avatar.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/default-image.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/default-image.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/globe-icon.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/globe-icon.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/like-icon.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/like-icon.js.map +0 -1
- package/dist/cjs/nextdoor-preview/icons/share-icon.js +0 -9
- package/dist/cjs/nextdoor-preview/icons/share-icon.js.map +0 -1
- package/dist/cjs/nextdoor-preview/index.js +0 -7
- package/dist/cjs/nextdoor-preview/index.js.map +0 -1
- package/dist/cjs/nextdoor-preview/link-preview.js +0 -13
- package/dist/cjs/nextdoor-preview/link-preview.js.map +0 -1
- package/dist/cjs/nextdoor-preview/post-preview.js +0 -31
- package/dist/cjs/nextdoor-preview/post-preview.js.map +0 -1
- package/dist/cjs/nextdoor-preview/previews.js +0 -19
- package/dist/cjs/nextdoor-preview/previews.js.map +0 -1
- package/dist/cjs/nextdoor-preview/style.scss +0 -211
- package/dist/cjs/nextdoor-preview/types.js +0 -3
- package/dist/cjs/nextdoor-preview/types.js.map +0 -1
- package/dist/cjs/shared/section-heading/index.js +0 -12
- package/dist/cjs/shared/section-heading/index.js.map +0 -1
- package/dist/cjs/shared.scss +0 -40
- package/dist/cjs/threads-preview/card.js +0 -16
- package/dist/cjs/threads-preview/card.js.map +0 -1
- package/dist/cjs/threads-preview/footer.js +0 -9
- package/dist/cjs/threads-preview/footer.js.map +0 -1
- package/dist/cjs/threads-preview/header.js +0 -12
- package/dist/cjs/threads-preview/header.js.map +0 -1
- package/dist/cjs/threads-preview/helpers.js +0 -9
- package/dist/cjs/threads-preview/helpers.js.map +0 -1
- package/dist/cjs/threads-preview/icons/default-avatar.js +0 -9
- package/dist/cjs/threads-preview/icons/default-avatar.js.map +0 -1
- package/dist/cjs/threads-preview/index.js +0 -7
- package/dist/cjs/threads-preview/index.js.map +0 -1
- package/dist/cjs/threads-preview/link-preview.js +0 -12
- package/dist/cjs/threads-preview/link-preview.js.map +0 -1
- package/dist/cjs/threads-preview/media.js +0 -43
- package/dist/cjs/threads-preview/media.js.map +0 -1
- package/dist/cjs/threads-preview/post-preview.js +0 -22
- package/dist/cjs/threads-preview/post-preview.js.map +0 -1
- package/dist/cjs/threads-preview/previews.js +0 -25
- package/dist/cjs/threads-preview/previews.js.map +0 -1
- package/dist/cjs/threads-preview/sidebar.js +0 -11
- package/dist/cjs/threads-preview/sidebar.js.map +0 -1
- package/dist/cjs/threads-preview/style.scss +0 -203
- package/dist/cjs/threads-preview/types.js +0 -3
- package/dist/cjs/threads-preview/types.js.map +0 -1
- package/dist/cjs/threads-preview/variables.scss +0 -5
- package/dist/cjs/tumblr-preview/helpers.js +0 -11
- package/dist/cjs/tumblr-preview/helpers.js.map +0 -1
- package/dist/cjs/tumblr-preview/index.js +0 -7
- package/dist/cjs/tumblr-preview/index.js.map +0 -1
- package/dist/cjs/tumblr-preview/link-preview.js +0 -17
- package/dist/cjs/tumblr-preview/link-preview.js.map +0 -1
- package/dist/cjs/tumblr-preview/post/actions/index.js +0 -44
- package/dist/cjs/tumblr-preview/post/actions/index.js.map +0 -1
- package/dist/cjs/tumblr-preview/post/actions/styles.scss +0 -47
- package/dist/cjs/tumblr-preview/post/header/index.js +0 -12
- package/dist/cjs/tumblr-preview/post/header/index.js.map +0 -1
- package/dist/cjs/tumblr-preview/post/header/styles.scss +0 -16
- package/dist/cjs/tumblr-preview/post/icons/index.js +0 -36
- package/dist/cjs/tumblr-preview/post/icons/index.js.map +0 -1
- package/dist/cjs/tumblr-preview/post/icons/styles.scss +0 -56
- package/dist/cjs/tumblr-preview/post-preview.js +0 -19
- package/dist/cjs/tumblr-preview/post-preview.js.map +0 -1
- package/dist/cjs/tumblr-preview/previews.js +0 -19
- package/dist/cjs/tumblr-preview/previews.js.map +0 -1
- package/dist/cjs/tumblr-preview/styles.scss +0 -148
- package/dist/cjs/tumblr-preview/types.js +0 -3
- package/dist/cjs/tumblr-preview/types.js.map +0 -1
- package/dist/cjs/tumblr-preview/variables.scss +0 -12
- package/dist/cjs/twitter-preview/card.js +0 -17
- package/dist/cjs/twitter-preview/card.js.map +0 -1
- package/dist/cjs/twitter-preview/footer.js +0 -9
- package/dist/cjs/twitter-preview/footer.js.map +0 -1
- package/dist/cjs/twitter-preview/header.js +0 -11
- package/dist/cjs/twitter-preview/header.js.map +0 -1
- package/dist/cjs/twitter-preview/icons/default-avatar.js +0 -9
- package/dist/cjs/twitter-preview/icons/default-avatar.js.map +0 -1
- package/dist/cjs/twitter-preview/index.js +0 -7
- package/dist/cjs/twitter-preview/index.js.map +0 -1
- package/dist/cjs/twitter-preview/link-preview.js +0 -12
- package/dist/cjs/twitter-preview/link-preview.js.map +0 -1
- package/dist/cjs/twitter-preview/media.js +0 -43
- package/dist/cjs/twitter-preview/media.js.map +0 -1
- package/dist/cjs/twitter-preview/post-preview.js +0 -18
- package/dist/cjs/twitter-preview/post-preview.js.map +0 -1
- package/dist/cjs/twitter-preview/previews.js +0 -25
- package/dist/cjs/twitter-preview/previews.js.map +0 -1
- package/dist/cjs/twitter-preview/quote-tweet.js +0 -13
- package/dist/cjs/twitter-preview/quote-tweet.js.map +0 -1
- package/dist/cjs/twitter-preview/sidebar.js +0 -11
- package/dist/cjs/twitter-preview/sidebar.js.map +0 -1
- package/dist/cjs/twitter-preview/style.scss +0 -249
- package/dist/cjs/twitter-preview/text.js +0 -17
- package/dist/cjs/twitter-preview/text.js.map +0 -1
- package/dist/cjs/twitter-preview/types.js +0 -3
- package/dist/cjs/twitter-preview/types.js.map +0 -1
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/types.js.map +0 -1
- package/dist/cjs/variables.scss +0 -14
- package/dist/esm/bluesky-preview/helpers.js +0 -15
- package/dist/esm/bluesky-preview/helpers.js.map +0 -1
- package/dist/esm/bluesky-preview/index.js +0 -4
- package/dist/esm/bluesky-preview/index.js.map +0 -1
- package/dist/esm/bluesky-preview/link-preview.js +0 -6
- package/dist/esm/bluesky-preview/link-preview.js.map +0 -1
- package/dist/esm/bluesky-preview/post/actions/index.js +0 -5
- package/dist/esm/bluesky-preview/post/actions/index.js.map +0 -1
- package/dist/esm/bluesky-preview/post/actions/styles.scss +0 -20
- package/dist/esm/bluesky-preview/post/body/index.js +0 -8
- package/dist/esm/bluesky-preview/post/body/index.js.map +0 -1
- package/dist/esm/bluesky-preview/post/body/styles.scss +0 -12
- package/dist/esm/bluesky-preview/post/card/index.js +0 -9
- package/dist/esm/bluesky-preview/post/card/index.js.map +0 -1
- package/dist/esm/bluesky-preview/post/card/styles.scss +0 -70
- package/dist/esm/bluesky-preview/post/header/index.js +0 -9
- package/dist/esm/bluesky-preview/post/header/index.js.map +0 -1
- package/dist/esm/bluesky-preview/post/header/styles.scss +0 -33
- package/dist/esm/bluesky-preview/post/sidebar/index.js +0 -7
- package/dist/esm/bluesky-preview/post/sidebar/index.js.map +0 -1
- package/dist/esm/bluesky-preview/post/sidebar/styles.scss +0 -6
- package/dist/esm/bluesky-preview/post-preview.js +0 -15
- package/dist/esm/bluesky-preview/post-preview.js.map +0 -1
- package/dist/esm/bluesky-preview/previews.js +0 -14
- package/dist/esm/bluesky-preview/previews.js.map +0 -1
- package/dist/esm/bluesky-preview/styles.scss +0 -65
- package/dist/esm/bluesky-preview/types.js +0 -2
- package/dist/esm/bluesky-preview/types.js.map +0 -1
- package/dist/esm/bluesky-preview/variables.scss +0 -6
- package/dist/esm/constants.js +0 -8
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/facebook-preview/custom-text.js +0 -15
- package/dist/esm/facebook-preview/custom-text.js.map +0 -1
- package/dist/esm/facebook-preview/helpers.js +0 -10
- package/dist/esm/facebook-preview/helpers.js.map +0 -1
- package/dist/esm/facebook-preview/hooks/use-image-hook.js +0 -26
- package/dist/esm/facebook-preview/hooks/use-image-hook.js.map +0 -1
- package/dist/esm/facebook-preview/index.js +0 -4
- package/dist/esm/facebook-preview/index.js.map +0 -1
- package/dist/esm/facebook-preview/link-preview-details.js +0 -12
- package/dist/esm/facebook-preview/link-preview-details.js.map +0 -1
- package/dist/esm/facebook-preview/link-preview.js +0 -21
- package/dist/esm/facebook-preview/link-preview.js.map +0 -1
- package/dist/esm/facebook-preview/post/actions/index.js +0 -23
- package/dist/esm/facebook-preview/post/actions/index.js.map +0 -1
- package/dist/esm/facebook-preview/post/actions/styles.scss +0 -28
- package/dist/esm/facebook-preview/post/header/index.js +0 -25
- package/dist/esm/facebook-preview/post/header/index.js.map +0 -1
- package/dist/esm/facebook-preview/post/header/styles.scss +0 -65
- package/dist/esm/facebook-preview/post/icons/index.js +0 -5
- package/dist/esm/facebook-preview/post/icons/index.js.map +0 -1
- package/dist/esm/facebook-preview/post/icons/styles.scss +0 -45
- package/dist/esm/facebook-preview/post-preview.js +0 -15
- package/dist/esm/facebook-preview/post-preview.js.map +0 -1
- package/dist/esm/facebook-preview/previews.js +0 -17
- package/dist/esm/facebook-preview/previews.js.map +0 -1
- package/dist/esm/facebook-preview/style.scss +0 -210
- package/dist/esm/facebook-preview/types.js +0 -2
- package/dist/esm/facebook-preview/types.js.map +0 -1
- package/dist/esm/facebook-preview/variables.scss +0 -12
- package/dist/esm/google-search-preview/index.js +0 -19
- package/dist/esm/google-search-preview/index.js.map +0 -1
- package/dist/esm/google-search-preview/style.scss +0 -82
- package/dist/esm/helpers.js +0 -157
- package/dist/esm/helpers.js.map +0 -1
- package/dist/esm/index.js +0 -13
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/instagram-preview/constants.js +0 -3
- package/dist/esm/instagram-preview/constants.js.map +0 -1
- package/dist/esm/instagram-preview/icons/bookmark.js +0 -5
- package/dist/esm/instagram-preview/icons/bookmark.js.map +0 -1
- package/dist/esm/instagram-preview/icons/comment.js +0 -5
- package/dist/esm/instagram-preview/icons/comment.js.map +0 -1
- package/dist/esm/instagram-preview/icons/default-avatar.js +0 -5
- package/dist/esm/instagram-preview/icons/default-avatar.js.map +0 -1
- package/dist/esm/instagram-preview/icons/heart.js +0 -5
- package/dist/esm/instagram-preview/icons/heart.js.map +0 -1
- package/dist/esm/instagram-preview/icons/menu.js +0 -5
- package/dist/esm/instagram-preview/icons/menu.js.map +0 -1
- package/dist/esm/instagram-preview/icons/share.js +0 -5
- package/dist/esm/instagram-preview/icons/share.js.map +0 -1
- package/dist/esm/instagram-preview/index.js +0 -3
- package/dist/esm/instagram-preview/index.js.map +0 -1
- package/dist/esm/instagram-preview/post-preview.js +0 -23
- package/dist/esm/instagram-preview/post-preview.js.map +0 -1
- package/dist/esm/instagram-preview/previews.js +0 -10
- package/dist/esm/instagram-preview/previews.js.map +0 -1
- package/dist/esm/instagram-preview/style.scss +0 -107
- package/dist/esm/instagram-preview/types.js +0 -2
- package/dist/esm/instagram-preview/types.js.map +0 -1
- package/dist/esm/linkedin-preview/constants.js +0 -3
- package/dist/esm/linkedin-preview/constants.js.map +0 -1
- package/dist/esm/linkedin-preview/icons/default-avatar.js +0 -5
- package/dist/esm/linkedin-preview/icons/default-avatar.js.map +0 -1
- package/dist/esm/linkedin-preview/index.js +0 -4
- package/dist/esm/linkedin-preview/index.js.map +0 -1
- package/dist/esm/linkedin-preview/link-preview.js +0 -9
- package/dist/esm/linkedin-preview/link-preview.js.map +0 -1
- package/dist/esm/linkedin-preview/post-preview.js +0 -23
- package/dist/esm/linkedin-preview/post-preview.js.map +0 -1
- package/dist/esm/linkedin-preview/previews.js +0 -14
- package/dist/esm/linkedin-preview/previews.js.map +0 -1
- package/dist/esm/linkedin-preview/style.scss +0 -132
- package/dist/esm/linkedin-preview/types.js +0 -2
- package/dist/esm/linkedin-preview/types.js.map +0 -1
- package/dist/esm/mastodon-preview/constants.js +0 -3
- package/dist/esm/mastodon-preview/constants.js.map +0 -1
- package/dist/esm/mastodon-preview/helpers.js +0 -25
- package/dist/esm/mastodon-preview/helpers.js.map +0 -1
- package/dist/esm/mastodon-preview/index.js +0 -4
- package/dist/esm/mastodon-preview/index.js.map +0 -1
- package/dist/esm/mastodon-preview/link-preview.js +0 -11
- package/dist/esm/mastodon-preview/link-preview.js.map +0 -1
- package/dist/esm/mastodon-preview/post/actions/index.js +0 -5
- package/dist/esm/mastodon-preview/post/actions/index.js.map +0 -1
- package/dist/esm/mastodon-preview/post/actions/styles.scss +0 -25
- package/dist/esm/mastodon-preview/post/body/index.js +0 -32
- package/dist/esm/mastodon-preview/post/body/index.js.map +0 -1
- package/dist/esm/mastodon-preview/post/body/styles.scss +0 -12
- package/dist/esm/mastodon-preview/post/card/index.js +0 -11
- package/dist/esm/mastodon-preview/post/card/index.js.map +0 -1
- package/dist/esm/mastodon-preview/post/card/styles.scss +0 -76
- package/dist/esm/mastodon-preview/post/header/index.js +0 -14
- package/dist/esm/mastodon-preview/post/header/index.js.map +0 -1
- package/dist/esm/mastodon-preview/post/header/styles.scss +0 -37
- package/dist/esm/mastodon-preview/post/icons/index.js +0 -5
- package/dist/esm/mastodon-preview/post/icons/index.js.map +0 -1
- package/dist/esm/mastodon-preview/post-preview.js +0 -14
- package/dist/esm/mastodon-preview/post-preview.js.map +0 -1
- package/dist/esm/mastodon-preview/previews.js +0 -14
- package/dist/esm/mastodon-preview/previews.js.map +0 -1
- package/dist/esm/mastodon-preview/styles.scss +0 -73
- package/dist/esm/mastodon-preview/types.js +0 -2
- package/dist/esm/mastodon-preview/types.js.map +0 -1
- package/dist/esm/mastodon-preview/variables.scss +0 -7
- package/dist/esm/nextdoor-preview/constants.js +0 -3
- package/dist/esm/nextdoor-preview/constants.js.map +0 -1
- package/dist/esm/nextdoor-preview/footer-actions.js +0 -9
- package/dist/esm/nextdoor-preview/footer-actions.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/chevron-icon.js +0 -5
- package/dist/esm/nextdoor-preview/icons/chevron-icon.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/comment-icon.js +0 -5
- package/dist/esm/nextdoor-preview/icons/comment-icon.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/default-avatar.js +0 -5
- package/dist/esm/nextdoor-preview/icons/default-avatar.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/default-image.js +0 -5
- package/dist/esm/nextdoor-preview/icons/default-image.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/globe-icon.js +0 -5
- package/dist/esm/nextdoor-preview/icons/globe-icon.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/like-icon.js +0 -5
- package/dist/esm/nextdoor-preview/icons/like-icon.js.map +0 -1
- package/dist/esm/nextdoor-preview/icons/share-icon.js +0 -5
- package/dist/esm/nextdoor-preview/icons/share-icon.js.map +0 -1
- package/dist/esm/nextdoor-preview/index.js +0 -4
- package/dist/esm/nextdoor-preview/index.js.map +0 -1
- package/dist/esm/nextdoor-preview/link-preview.js +0 -9
- package/dist/esm/nextdoor-preview/link-preview.js.map +0 -1
- package/dist/esm/nextdoor-preview/post-preview.js +0 -26
- package/dist/esm/nextdoor-preview/post-preview.js.map +0 -1
- package/dist/esm/nextdoor-preview/previews.js +0 -14
- package/dist/esm/nextdoor-preview/previews.js.map +0 -1
- package/dist/esm/nextdoor-preview/style.scss +0 -211
- package/dist/esm/nextdoor-preview/types.js +0 -2
- package/dist/esm/nextdoor-preview/types.js.map +0 -1
- package/dist/esm/shared/section-heading/index.js +0 -8
- package/dist/esm/shared/section-heading/index.js.map +0 -1
- package/dist/esm/shared.scss +0 -40
- package/dist/esm/threads-preview/card.js +0 -11
- package/dist/esm/threads-preview/card.js.map +0 -1
- package/dist/esm/threads-preview/footer.js +0 -5
- package/dist/esm/threads-preview/footer.js.map +0 -1
- package/dist/esm/threads-preview/header.js +0 -8
- package/dist/esm/threads-preview/header.js.map +0 -1
- package/dist/esm/threads-preview/helpers.js +0 -5
- package/dist/esm/threads-preview/helpers.js.map +0 -1
- package/dist/esm/threads-preview/icons/default-avatar.js +0 -5
- package/dist/esm/threads-preview/icons/default-avatar.js.map +0 -1
- package/dist/esm/threads-preview/index.js +0 -4
- package/dist/esm/threads-preview/index.js.map +0 -1
- package/dist/esm/threads-preview/link-preview.js +0 -8
- package/dist/esm/threads-preview/link-preview.js.map +0 -1
- package/dist/esm/threads-preview/media.js +0 -38
- package/dist/esm/threads-preview/media.js.map +0 -1
- package/dist/esm/threads-preview/post-preview.js +0 -18
- package/dist/esm/threads-preview/post-preview.js.map +0 -1
- package/dist/esm/threads-preview/previews.js +0 -20
- package/dist/esm/threads-preview/previews.js.map +0 -1
- package/dist/esm/threads-preview/sidebar.js +0 -7
- package/dist/esm/threads-preview/sidebar.js.map +0 -1
- package/dist/esm/threads-preview/style.scss +0 -203
- package/dist/esm/threads-preview/types.js +0 -2
- package/dist/esm/threads-preview/types.js.map +0 -1
- package/dist/esm/threads-preview/variables.scss +0 -5
- package/dist/esm/tumblr-preview/helpers.js +0 -6
- package/dist/esm/tumblr-preview/helpers.js.map +0 -1
- package/dist/esm/tumblr-preview/index.js +0 -4
- package/dist/esm/tumblr-preview/index.js.map +0 -1
- package/dist/esm/tumblr-preview/link-preview.js +0 -12
- package/dist/esm/tumblr-preview/link-preview.js.map +0 -1
- package/dist/esm/tumblr-preview/post/actions/index.js +0 -41
- package/dist/esm/tumblr-preview/post/actions/index.js.map +0 -1
- package/dist/esm/tumblr-preview/post/actions/styles.scss +0 -47
- package/dist/esm/tumblr-preview/post/header/index.js +0 -9
- package/dist/esm/tumblr-preview/post/header/index.js.map +0 -1
- package/dist/esm/tumblr-preview/post/header/styles.scss +0 -16
- package/dist/esm/tumblr-preview/post/icons/index.js +0 -34
- package/dist/esm/tumblr-preview/post/icons/index.js.map +0 -1
- package/dist/esm/tumblr-preview/post/icons/styles.scss +0 -56
- package/dist/esm/tumblr-preview/post-preview.js +0 -14
- package/dist/esm/tumblr-preview/post-preview.js.map +0 -1
- package/dist/esm/tumblr-preview/previews.js +0 -15
- package/dist/esm/tumblr-preview/previews.js.map +0 -1
- package/dist/esm/tumblr-preview/styles.scss +0 -148
- package/dist/esm/tumblr-preview/types.js +0 -2
- package/dist/esm/tumblr-preview/types.js.map +0 -1
- package/dist/esm/tumblr-preview/variables.scss +0 -12
- package/dist/esm/twitter-preview/card.js +0 -12
- package/dist/esm/twitter-preview/card.js.map +0 -1
- package/dist/esm/twitter-preview/footer.js +0 -5
- package/dist/esm/twitter-preview/footer.js.map +0 -1
- package/dist/esm/twitter-preview/header.js +0 -7
- package/dist/esm/twitter-preview/header.js.map +0 -1
- package/dist/esm/twitter-preview/icons/default-avatar.js +0 -5
- package/dist/esm/twitter-preview/icons/default-avatar.js.map +0 -1
- package/dist/esm/twitter-preview/index.js +0 -4
- package/dist/esm/twitter-preview/index.js.map +0 -1
- package/dist/esm/twitter-preview/link-preview.js +0 -8
- package/dist/esm/twitter-preview/link-preview.js.map +0 -1
- package/dist/esm/twitter-preview/media.js +0 -38
- package/dist/esm/twitter-preview/media.js.map +0 -1
- package/dist/esm/twitter-preview/post-preview.js +0 -14
- package/dist/esm/twitter-preview/post-preview.js.map +0 -1
- package/dist/esm/twitter-preview/previews.js +0 -20
- package/dist/esm/twitter-preview/previews.js.map +0 -1
- package/dist/esm/twitter-preview/quote-tweet.js +0 -9
- package/dist/esm/twitter-preview/quote-tweet.js.map +0 -1
- package/dist/esm/twitter-preview/sidebar.js +0 -7
- package/dist/esm/twitter-preview/sidebar.js.map +0 -1
- package/dist/esm/twitter-preview/style.scss +0 -249
- package/dist/esm/twitter-preview/text.js +0 -13
- package/dist/esm/twitter-preview/text.js.map +0 -1
- package/dist/esm/twitter-preview/types.js +0 -2
- package/dist/esm/twitter-preview/types.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/esm/variables.scss +0 -14
- package/dist/tsconfig-cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types/bluesky-preview/helpers.d.ts +0 -8
- package/dist/types/bluesky-preview/helpers.d.ts.map +0 -1
- package/dist/types/bluesky-preview/index.d.ts +0 -4
- package/dist/types/bluesky-preview/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/link-preview.d.ts +0 -4
- package/dist/types/bluesky-preview/link-preview.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post/actions/index.d.ts +0 -5
- package/dist/types/bluesky-preview/post/actions/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post/body/index.d.ts +0 -9
- package/dist/types/bluesky-preview/post/body/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post/card/index.d.ts +0 -6
- package/dist/types/bluesky-preview/post/card/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post/header/index.d.ts +0 -7
- package/dist/types/bluesky-preview/post/header/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post/sidebar/index.d.ts +0 -7
- package/dist/types/bluesky-preview/post/sidebar/index.d.ts.map +0 -1
- package/dist/types/bluesky-preview/post-preview.d.ts +0 -5
- package/dist/types/bluesky-preview/post-preview.d.ts.map +0 -1
- package/dist/types/bluesky-preview/previews.d.ts +0 -6
- package/dist/types/bluesky-preview/previews.d.ts.map +0 -1
- package/dist/types/bluesky-preview/types.d.ts +0 -13
- package/dist/types/bluesky-preview/types.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -8
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/facebook-preview/custom-text.d.ts +0 -9
- package/dist/types/facebook-preview/custom-text.d.ts.map +0 -1
- package/dist/types/facebook-preview/helpers.d.ts +0 -6
- package/dist/types/facebook-preview/helpers.d.ts.map +0 -1
- package/dist/types/facebook-preview/hooks/use-image-hook.d.ts +0 -14
- package/dist/types/facebook-preview/hooks/use-image-hook.d.ts.map +0 -1
- package/dist/types/facebook-preview/index.d.ts +0 -4
- package/dist/types/facebook-preview/index.d.ts.map +0 -1
- package/dist/types/facebook-preview/link-preview-details.d.ts +0 -4
- package/dist/types/facebook-preview/link-preview-details.d.ts.map +0 -1
- package/dist/types/facebook-preview/link-preview.d.ts +0 -8
- package/dist/types/facebook-preview/link-preview.d.ts.map +0 -1
- package/dist/types/facebook-preview/post/actions/index.d.ts +0 -5
- package/dist/types/facebook-preview/post/actions/index.d.ts.map +0 -1
- package/dist/types/facebook-preview/post/header/index.d.ts +0 -11
- package/dist/types/facebook-preview/post/header/index.d.ts.map +0 -1
- package/dist/types/facebook-preview/post/icons/index.d.ts +0 -7
- package/dist/types/facebook-preview/post/icons/index.d.ts.map +0 -1
- package/dist/types/facebook-preview/post-preview.d.ts +0 -5
- package/dist/types/facebook-preview/post-preview.d.ts.map +0 -1
- package/dist/types/facebook-preview/previews.d.ts +0 -6
- package/dist/types/facebook-preview/previews.d.ts.map +0 -1
- package/dist/types/facebook-preview/types.d.ts +0 -15
- package/dist/types/facebook-preview/types.d.ts.map +0 -1
- package/dist/types/google-search-preview/index.d.ts +0 -8
- package/dist/types/google-search-preview/index.d.ts.map +0 -1
- package/dist/types/helpers.d.ts +0 -38
- package/dist/types/helpers.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -13
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/instagram-preview/constants.d.ts +0 -3
- package/dist/types/instagram-preview/constants.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/bookmark.d.ts +0 -3
- package/dist/types/instagram-preview/icons/bookmark.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/comment.d.ts +0 -3
- package/dist/types/instagram-preview/icons/comment.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/default-avatar.d.ts +0 -3
- package/dist/types/instagram-preview/icons/default-avatar.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/heart.d.ts +0 -3
- package/dist/types/instagram-preview/icons/heart.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/menu.d.ts +0 -3
- package/dist/types/instagram-preview/icons/menu.d.ts.map +0 -1
- package/dist/types/instagram-preview/icons/share.d.ts +0 -3
- package/dist/types/instagram-preview/icons/share.d.ts.map +0 -1
- package/dist/types/instagram-preview/index.d.ts +0 -3
- package/dist/types/instagram-preview/index.d.ts.map +0 -1
- package/dist/types/instagram-preview/post-preview.d.ts +0 -4
- package/dist/types/instagram-preview/post-preview.d.ts.map +0 -1
- package/dist/types/instagram-preview/previews.d.ts +0 -4
- package/dist/types/instagram-preview/previews.d.ts.map +0 -1
- package/dist/types/instagram-preview/types.d.ts +0 -8
- package/dist/types/instagram-preview/types.d.ts.map +0 -1
- package/dist/types/linkedin-preview/constants.d.ts +0 -3
- package/dist/types/linkedin-preview/constants.d.ts.map +0 -1
- package/dist/types/linkedin-preview/icons/default-avatar.d.ts +0 -3
- package/dist/types/linkedin-preview/icons/default-avatar.d.ts.map +0 -1
- package/dist/types/linkedin-preview/index.d.ts +0 -4
- package/dist/types/linkedin-preview/index.d.ts.map +0 -1
- package/dist/types/linkedin-preview/link-preview.d.ts +0 -6
- package/dist/types/linkedin-preview/link-preview.d.ts.map +0 -1
- package/dist/types/linkedin-preview/post-preview.d.ts +0 -4
- package/dist/types/linkedin-preview/post-preview.d.ts.map +0 -1
- package/dist/types/linkedin-preview/previews.d.ts +0 -4
- package/dist/types/linkedin-preview/previews.d.ts.map +0 -1
- package/dist/types/linkedin-preview/types.d.ts +0 -9
- package/dist/types/linkedin-preview/types.d.ts.map +0 -1
- package/dist/types/mastodon-preview/constants.d.ts +0 -3
- package/dist/types/mastodon-preview/constants.d.ts.map +0 -1
- package/dist/types/mastodon-preview/helpers.d.ts +0 -11
- package/dist/types/mastodon-preview/helpers.d.ts.map +0 -1
- package/dist/types/mastodon-preview/index.d.ts +0 -4
- package/dist/types/mastodon-preview/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/link-preview.d.ts +0 -5
- package/dist/types/mastodon-preview/link-preview.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post/actions/index.d.ts +0 -5
- package/dist/types/mastodon-preview/post/actions/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post/body/index.d.ts +0 -9
- package/dist/types/mastodon-preview/post/body/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post/card/index.d.ts +0 -6
- package/dist/types/mastodon-preview/post/card/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post/header/index.d.ts +0 -7
- package/dist/types/mastodon-preview/post/header/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post/icons/index.d.ts +0 -2
- package/dist/types/mastodon-preview/post/icons/index.d.ts.map +0 -1
- package/dist/types/mastodon-preview/post-preview.d.ts +0 -5
- package/dist/types/mastodon-preview/post-preview.d.ts.map +0 -1
- package/dist/types/mastodon-preview/previews.d.ts +0 -6
- package/dist/types/mastodon-preview/previews.d.ts.map +0 -1
- package/dist/types/mastodon-preview/types.d.ts +0 -17
- package/dist/types/mastodon-preview/types.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/constants.d.ts +0 -3
- package/dist/types/nextdoor-preview/constants.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/footer-actions.d.ts +0 -2
- package/dist/types/nextdoor-preview/footer-actions.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/chevron-icon.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/chevron-icon.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/comment-icon.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/comment-icon.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/default-avatar.d.ts +0 -3
- package/dist/types/nextdoor-preview/icons/default-avatar.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/default-image.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/default-image.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/globe-icon.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/globe-icon.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/like-icon.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/like-icon.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/icons/share-icon.d.ts +0 -2
- package/dist/types/nextdoor-preview/icons/share-icon.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/index.d.ts +0 -4
- package/dist/types/nextdoor-preview/index.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/link-preview.d.ts +0 -6
- package/dist/types/nextdoor-preview/link-preview.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/post-preview.d.ts +0 -4
- package/dist/types/nextdoor-preview/post-preview.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/previews.d.ts +0 -4
- package/dist/types/nextdoor-preview/previews.d.ts.map +0 -1
- package/dist/types/nextdoor-preview/types.d.ts +0 -8
- package/dist/types/nextdoor-preview/types.d.ts.map +0 -1
- package/dist/types/shared/section-heading/index.d.ts +0 -10
- package/dist/types/shared/section-heading/index.d.ts.map +0 -1
- package/dist/types/threads-preview/card.d.ts +0 -4
- package/dist/types/threads-preview/card.d.ts.map +0 -1
- package/dist/types/threads-preview/footer.d.ts +0 -3
- package/dist/types/threads-preview/footer.d.ts.map +0 -1
- package/dist/types/threads-preview/header.d.ts +0 -4
- package/dist/types/threads-preview/header.d.ts.map +0 -1
- package/dist/types/threads-preview/helpers.d.ts +0 -4
- package/dist/types/threads-preview/helpers.d.ts.map +0 -1
- package/dist/types/threads-preview/icons/default-avatar.d.ts +0 -3
- package/dist/types/threads-preview/icons/default-avatar.d.ts.map +0 -1
- package/dist/types/threads-preview/index.d.ts +0 -4
- package/dist/types/threads-preview/index.d.ts.map +0 -1
- package/dist/types/threads-preview/link-preview.d.ts +0 -4
- package/dist/types/threads-preview/link-preview.d.ts.map +0 -1
- package/dist/types/threads-preview/media.d.ts +0 -4
- package/dist/types/threads-preview/media.d.ts.map +0 -1
- package/dist/types/threads-preview/post-preview.d.ts +0 -5
- package/dist/types/threads-preview/post-preview.d.ts.map +0 -1
- package/dist/types/threads-preview/previews.d.ts +0 -4
- package/dist/types/threads-preview/previews.d.ts.map +0 -1
- package/dist/types/threads-preview/sidebar.d.ts +0 -4
- package/dist/types/threads-preview/sidebar.d.ts.map +0 -1
- package/dist/types/threads-preview/types.d.ts +0 -18
- package/dist/types/threads-preview/types.d.ts.map +0 -1
- package/dist/types/tumblr-preview/helpers.d.ts +0 -4
- package/dist/types/tumblr-preview/helpers.d.ts.map +0 -1
- package/dist/types/tumblr-preview/index.d.ts +0 -4
- package/dist/types/tumblr-preview/index.d.ts.map +0 -1
- package/dist/types/tumblr-preview/link-preview.d.ts +0 -5
- package/dist/types/tumblr-preview/link-preview.d.ts.map +0 -1
- package/dist/types/tumblr-preview/post/actions/index.d.ts +0 -5
- package/dist/types/tumblr-preview/post/actions/index.d.ts.map +0 -1
- package/dist/types/tumblr-preview/post/header/index.d.ts +0 -7
- package/dist/types/tumblr-preview/post/header/index.d.ts.map +0 -1
- package/dist/types/tumblr-preview/post/icons/index.d.ts +0 -7
- package/dist/types/tumblr-preview/post/icons/index.d.ts.map +0 -1
- package/dist/types/tumblr-preview/post-preview.d.ts +0 -5
- package/dist/types/tumblr-preview/post-preview.d.ts.map +0 -1
- package/dist/types/tumblr-preview/previews.d.ts +0 -6
- package/dist/types/tumblr-preview/previews.d.ts.map +0 -1
- package/dist/types/tumblr-preview/types.d.ts +0 -10
- package/dist/types/tumblr-preview/types.d.ts.map +0 -1
- package/dist/types/twitter-preview/card.d.ts +0 -4
- package/dist/types/twitter-preview/card.d.ts.map +0 -1
- package/dist/types/twitter-preview/footer.d.ts +0 -3
- package/dist/types/twitter-preview/footer.d.ts.map +0 -1
- package/dist/types/twitter-preview/header.d.ts +0 -4
- package/dist/types/twitter-preview/header.d.ts.map +0 -1
- package/dist/types/twitter-preview/icons/default-avatar.d.ts +0 -3
- package/dist/types/twitter-preview/icons/default-avatar.d.ts.map +0 -1
- package/dist/types/twitter-preview/index.d.ts +0 -4
- package/dist/types/twitter-preview/index.d.ts.map +0 -1
- package/dist/types/twitter-preview/link-preview.d.ts +0 -4
- package/dist/types/twitter-preview/link-preview.d.ts.map +0 -1
- package/dist/types/twitter-preview/media.d.ts +0 -4
- package/dist/types/twitter-preview/media.d.ts.map +0 -1
- package/dist/types/twitter-preview/post-preview.d.ts +0 -5
- package/dist/types/twitter-preview/post-preview.d.ts.map +0 -1
- package/dist/types/twitter-preview/previews.d.ts +0 -4
- package/dist/types/twitter-preview/previews.d.ts.map +0 -1
- package/dist/types/twitter-preview/quote-tweet.d.ts +0 -4
- package/dist/types/twitter-preview/quote-tweet.d.ts.map +0 -1
- package/dist/types/twitter-preview/sidebar.d.ts +0 -4
- package/dist/types/twitter-preview/sidebar.d.ts.map +0 -1
- package/dist/types/twitter-preview/text.d.ts +0 -4
- package/dist/types/twitter-preview/text.d.ts.map +0 -1
- package/dist/types/twitter-preview/types.d.ts +0 -29
- package/dist/types/twitter-preview/types.d.ts.map +0 -1
- package/dist/types/types.d.ts +0 -56
- package/dist/types/types.d.ts.map +0 -1
- package/src/bluesky-preview/helpers.ts +0 -31
- package/src/bluesky-preview/index.tsx +0 -3
- package/src/bluesky-preview/link-preview.tsx +0 -6
- package/src/bluesky-preview/post/actions/index.tsx +0 -72
- package/src/bluesky-preview/post/actions/styles.scss +0 -20
- package/src/bluesky-preview/post/body/index.tsx +0 -29
- package/src/bluesky-preview/post/body/styles.scss +0 -12
- package/src/bluesky-preview/post/card/index.tsx +0 -26
- package/src/bluesky-preview/post/card/styles.scss +0 -70
- package/src/bluesky-preview/post/header/index.tsx +0 -34
- package/src/bluesky-preview/post/header/styles.scss +0 -33
- package/src/bluesky-preview/post/sidebar/index.tsx +0 -36
- package/src/bluesky-preview/post/sidebar/styles.scss +0 -6
- package/src/bluesky-preview/post-preview.tsx +0 -45
- package/src/bluesky-preview/previews.tsx +0 -56
- package/src/bluesky-preview/styles.scss +0 -65
- package/src/bluesky-preview/types.ts +0 -14
- package/src/bluesky-preview/variables.scss +0 -6
- package/src/constants.ts +0 -9
- package/src/facebook-preview/custom-text.tsx +0 -39
- package/src/facebook-preview/helpers.ts +0 -22
- package/src/facebook-preview/hooks/use-image-hook.ts +0 -41
- package/src/facebook-preview/index.tsx +0 -3
- package/src/facebook-preview/link-preview-details.tsx +0 -38
- package/src/facebook-preview/link-preview.tsx +0 -78
- package/src/facebook-preview/post/actions/index.tsx +0 -33
- package/src/facebook-preview/post/actions/styles.scss +0 -28
- package/src/facebook-preview/post/header/index.tsx +0 -67
- package/src/facebook-preview/post/header/styles.scss +0 -65
- package/src/facebook-preview/post/icons/index.tsx +0 -7
- package/src/facebook-preview/post/icons/styles.scss +0 -45
- package/src/facebook-preview/post-preview.tsx +0 -50
- package/src/facebook-preview/previews.tsx +0 -64
- package/src/facebook-preview/style.scss +0 -210
- package/src/facebook-preview/types.ts +0 -17
- package/src/facebook-preview/variables.scss +0 -12
- package/src/google-search-preview/index.tsx +0 -79
- package/src/google-search-preview/style.scss +0 -82
- package/src/helpers.tsx +0 -233
- package/src/index.ts +0 -12
- package/src/instagram-preview/constants.tsx +0 -2
- package/src/instagram-preview/icons/bookmark.tsx +0 -21
- package/src/instagram-preview/icons/comment.tsx +0 -20
- package/src/instagram-preview/icons/default-avatar.tsx +0 -10
- package/src/instagram-preview/icons/heart.tsx +0 -14
- package/src/instagram-preview/icons/menu.tsx +0 -24
- package/src/instagram-preview/icons/share.tsx +0 -30
- package/src/instagram-preview/index.tsx +0 -2
- package/src/instagram-preview/post-preview.tsx +0 -86
- package/src/instagram-preview/previews.tsx +0 -32
- package/src/instagram-preview/style.scss +0 -107
- package/src/instagram-preview/types.ts +0 -9
- package/src/linkedin-preview/constants.ts +0 -2
- package/src/linkedin-preview/icons/default-avatar.tsx +0 -16
- package/src/linkedin-preview/index.tsx +0 -3
- package/src/linkedin-preview/link-preview.tsx +0 -22
- package/src/linkedin-preview/post-preview.tsx +0 -117
- package/src/linkedin-preview/previews.tsx +0 -53
- package/src/linkedin-preview/style.scss +0 -132
- package/src/linkedin-preview/types.ts +0 -10
- package/src/mastodon-preview/constants.ts +0 -4
- package/src/mastodon-preview/helpers.ts +0 -45
- package/src/mastodon-preview/index.tsx +0 -3
- package/src/mastodon-preview/link-preview.tsx +0 -20
- package/src/mastodon-preview/post/actions/index.tsx +0 -65
- package/src/mastodon-preview/post/actions/styles.scss +0 -25
- package/src/mastodon-preview/post/body/index.tsx +0 -51
- package/src/mastodon-preview/post/body/styles.scss +0 -12
- package/src/mastodon-preview/post/card/index.tsx +0 -50
- package/src/mastodon-preview/post/card/styles.scss +0 -76
- package/src/mastodon-preview/post/header/index.tsx +0 -37
- package/src/mastodon-preview/post/header/styles.scss +0 -37
- package/src/mastodon-preview/post/icons/index.tsx +0 -13
- package/src/mastodon-preview/post-preview.tsx +0 -41
- package/src/mastodon-preview/previews.tsx +0 -56
- package/src/mastodon-preview/styles.scss +0 -73
- package/src/mastodon-preview/types.ts +0 -19
- package/src/mastodon-preview/variables.scss +0 -7
- package/src/nextdoor-preview/constants.ts +0 -2
- package/src/nextdoor-preview/footer-actions.tsx +0 -23
- package/src/nextdoor-preview/icons/chevron-icon.tsx +0 -11
- package/src/nextdoor-preview/icons/comment-icon.tsx +0 -12
- package/src/nextdoor-preview/icons/default-avatar.tsx +0 -3
- package/src/nextdoor-preview/icons/default-image.tsx +0 -23
- package/src/nextdoor-preview/icons/globe-icon.tsx +0 -12
- package/src/nextdoor-preview/icons/like-icon.tsx +0 -12
- package/src/nextdoor-preview/icons/share-icon.tsx +0 -12
- package/src/nextdoor-preview/index.tsx +0 -3
- package/src/nextdoor-preview/link-preview.tsx +0 -22
- package/src/nextdoor-preview/post-preview.tsx +0 -117
- package/src/nextdoor-preview/previews.tsx +0 -53
- package/src/nextdoor-preview/style.scss +0 -211
- package/src/nextdoor-preview/types.ts +0 -9
- package/src/shared/section-heading/index.tsx +0 -21
- package/src/shared.scss +0 -40
- package/src/threads-preview/card.tsx +0 -22
- package/src/threads-preview/footer.tsx +0 -43
- package/src/threads-preview/header.tsx +0 -18
- package/src/threads-preview/helpers.ts +0 -11
- package/src/threads-preview/icons/default-avatar.tsx +0 -35
- package/src/threads-preview/index.tsx +0 -3
- package/src/threads-preview/link-preview.tsx +0 -13
- package/src/threads-preview/media.tsx +0 -61
- package/src/threads-preview/post-preview.tsx +0 -50
- package/src/threads-preview/previews.tsx +0 -77
- package/src/threads-preview/sidebar.tsx +0 -18
- package/src/threads-preview/style.scss +0 -203
- package/src/threads-preview/types.ts +0 -23
- package/src/threads-preview/variables.scss +0 -5
- package/src/tumblr-preview/helpers.ts +0 -16
- package/src/tumblr-preview/index.tsx +0 -3
- package/src/tumblr-preview/link-preview.tsx +0 -52
- package/src/tumblr-preview/post/actions/index.tsx +0 -71
- package/src/tumblr-preview/post/actions/styles.scss +0 -47
- package/src/tumblr-preview/post/header/index.tsx +0 -20
- package/src/tumblr-preview/post/header/styles.scss +0 -16
- package/src/tumblr-preview/post/icons/index.tsx +0 -73
- package/src/tumblr-preview/post/icons/styles.scss +0 -56
- package/src/tumblr-preview/post-preview.tsx +0 -61
- package/src/tumblr-preview/previews.tsx +0 -58
- package/src/tumblr-preview/styles.scss +0 -148
- package/src/tumblr-preview/types.ts +0 -11
- package/src/tumblr-preview/variables.scss +0 -12
- package/src/twitter-preview/card.tsx +0 -37
- package/src/twitter-preview/footer.tsx +0 -31
- package/src/twitter-preview/header.tsx +0 -16
- package/src/twitter-preview/icons/default-avatar.tsx +0 -17
- package/src/twitter-preview/index.tsx +0 -3
- package/src/twitter-preview/link-preview.tsx +0 -13
- package/src/twitter-preview/media.tsx +0 -61
- package/src/twitter-preview/post-preview.tsx +0 -54
- package/src/twitter-preview/previews.tsx +0 -66
- package/src/twitter-preview/quote-tweet.tsx +0 -19
- package/src/twitter-preview/sidebar.tsx +0 -18
- package/src/twitter-preview/style.scss +0 -249
- package/src/twitter-preview/text.tsx +0 -19
- package/src/twitter-preview/types.ts +0 -38
- package/src/types.ts +0 -67
- package/src/variables.scss +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/helpers.tsx","../src/google-search-preview/index.tsx","../src/twitter-preview/card.tsx","../src/twitter-preview/footer.tsx","../src/twitter-preview/header.tsx","../src/twitter-preview/media.tsx","../src/twitter-preview/quote-tweet.tsx","../src/twitter-preview/sidebar.tsx","../src/twitter-preview/icons/default-avatar.tsx","../src/twitter-preview/text.tsx","../src/twitter-preview/post-preview.tsx","../src/twitter-preview/link-preview.tsx","../src/twitter-preview/previews.tsx","../src/shared/section-heading/index.tsx","../src/linkedin-preview/post-preview.tsx","../src/linkedin-preview/constants.ts","../src/linkedin-preview/icons/default-avatar.tsx","../src/linkedin-preview/link-preview.tsx","../src/linkedin-preview/previews.tsx","../src/tumblr-preview/link-preview.tsx","../src/tumblr-preview/helpers.ts","../src/tumblr-preview/post/actions/index.tsx","../src/tumblr-preview/post/icons/index.tsx","../src/tumblr-preview/post/header/index.tsx","../src/tumblr-preview/post-preview.tsx","../src/tumblr-preview/previews.tsx","../src/facebook-preview/previews.tsx","../src/facebook-preview/link-preview.tsx","../src/constants.ts","../src/facebook-preview/helpers.ts","../src/facebook-preview/custom-text.tsx","../src/facebook-preview/hooks/use-image-hook.ts","../src/facebook-preview/post/actions/index.tsx","../src/facebook-preview/post/icons/index.tsx","../src/facebook-preview/post/header/index.tsx","../src/facebook-preview/link-preview-details.tsx","../src/facebook-preview/post-preview.tsx","../src/mastodon-preview/post/actions/index.tsx","../src/mastodon-preview/constants.ts","../src/mastodon-preview/helpers.ts","../src/mastodon-preview/post/body/index.tsx","../src/mastodon-preview/post/card/index.tsx","../src/mastodon-preview/post/header/index.tsx","../src/mastodon-preview/post/icons/index.tsx","../src/mastodon-preview/link-preview.tsx","../src/mastodon-preview/post-preview.tsx","../src/mastodon-preview/previews.tsx","../src/nextdoor-preview/post-preview.tsx","../src/nextdoor-preview/constants.ts","../src/nextdoor-preview/footer-actions.tsx","../src/nextdoor-preview/icons/comment-icon.tsx","../src/nextdoor-preview/icons/like-icon.tsx","../src/nextdoor-preview/icons/share-icon.tsx","../src/nextdoor-preview/icons/chevron-icon.tsx","../src/nextdoor-preview/icons/default-avatar.tsx","../src/nextdoor-preview/icons/default-image.tsx","../src/nextdoor-preview/icons/globe-icon.tsx","../src/nextdoor-preview/link-preview.tsx","../src/nextdoor-preview/previews.tsx","../src/bluesky-preview/post-preview.tsx","../src/bluesky-preview/post/actions/index.tsx","../src/bluesky-preview/helpers.ts","../src/bluesky-preview/post/body/index.tsx","../src/bluesky-preview/post/card/index.tsx","../src/bluesky-preview/post/header/index.tsx","../src/bluesky-preview/post/sidebar/index.tsx","../src/bluesky-preview/link-preview.tsx","../src/bluesky-preview/previews.tsx","../src/threads-preview/card.tsx","../src/threads-preview/helpers.ts","../src/threads-preview/footer.tsx","../src/threads-preview/header.tsx","../src/threads-preview/media.tsx","../src/threads-preview/sidebar.tsx","../src/threads-preview/icons/default-avatar.tsx","../src/threads-preview/post-preview.tsx","../src/threads-preview/link-preview.tsx","../src/threads-preview/previews.tsx","../src/instagram-preview/post-preview.tsx","../src/instagram-preview/constants.tsx","../src/instagram-preview/icons/bookmark.tsx","../src/instagram-preview/icons/comment.tsx","../src/instagram-preview/icons/default-avatar.tsx","../src/instagram-preview/icons/heart.tsx","../src/instagram-preview/icons/menu.tsx","../src/instagram-preview/icons/share.tsx","../src/instagram-preview/previews.tsx"],"sourcesContent":["import { createInterpolateElement } from '@wordpress/element';\nimport { sprintf } from '@wordpress/i18n';\n\nexport type Formatter< Options = unknown > = ( text: string, options?: Options ) => string;\ntype AugmentFormatterReturnType< T extends Formatter, TNewReturn > = (\n\t...a: Parameters< T >\n) => ReturnType< T > | TNewReturn;\ntype ConditionalFormatter = AugmentFormatterReturnType< Formatter, boolean >;\ntype NullableFormatter = AugmentFormatterReturnType< Formatter, undefined >;\n\nexport const baseDomain: Formatter = url => {\n\t// Strip leading protocol\n\tconst withoutProtocol = url.replace( /^[^/]+:\\/\\//, '' );\n\t// Strip everything after the domain using indexOf to avoid ReDoS\n\tconst slashIndex = withoutProtocol.indexOf( '/' );\n\treturn slashIndex === -1 ? withoutProtocol : withoutProtocol.substring( 0, slashIndex );\n};\n\nexport const shortEnough: ( n: number ) => ConditionalFormatter = limit => title =>\n\ttitle.length <= limit ? title : false;\n\nexport const truncatedAtSpace: ( a: number, b: number ) => ConditionalFormatter =\n\t( lower, upper ) => fullTitle => {\n\t\tconst title = fullTitle.slice( 0, upper );\n\t\tconst lastSpace = title.lastIndexOf( ' ' );\n\n\t\treturn lastSpace > lower && lastSpace < upper\n\t\t\t? title.slice( 0, lastSpace ).concat( '…' )\n\t\t\t: false;\n\t};\n\nexport const hardTruncation: ( n: number ) => Formatter = limit => title =>\n\ttitle.slice( 0, limit ).concat( '…' );\n\nexport const firstValid: ( ...args: ConditionalFormatter[] ) => NullableFormatter =\n\t( ...predicates ) =>\n\ta =>\n\t\t( predicates.find( p => false !== p( a ) ) as Formatter )?.( a );\n\nexport const stripHtmlTags: Formatter< Array< string > > = ( description, allowedTags = [] ) => {\n\tconst pattern = new RegExp( `(<([^${ allowedTags.join( '' ) }>]+)>)`, 'gi' );\n\n\treturn description ? description.replace( pattern, '' ) : '';\n};\n\n/**\n * For social note posts we use the first 50 characters of the description.\n * @param description - The post description.\n * @return The first 50 characters of the description.\n */\nexport const getTitleFromDescription = ( description: string ): string => {\n\treturn stripHtmlTags( description ).substring( 0, 50 );\n};\n\nexport const hasTag = ( text: string, tag: string ): boolean => {\n\tconst pattern = new RegExp( `<${ tag }[^>]*>`, 'gi' );\n\n\treturn pattern.test( text );\n};\n\nexport const formatNextdoorDate = new Intl.DateTimeFormat( 'en-GB', {\n\t// Result: \"7 Oct\", \"31 Dec\"\n\tday: 'numeric',\n\tmonth: 'short',\n} ).format;\n\nexport const formatThreadsDate = new Intl.DateTimeFormat( 'en-US', {\n\t// Result: \"'06/21/2024\"\n\tday: '2-digit',\n\tmonth: '2-digit',\n\tyear: 'numeric',\n} ).format;\n\nexport const formatTweetDate = new Intl.DateTimeFormat( 'en-US', {\n\t// Result: \"Apr 7\", \"Dec 31\"\n\tmonth: 'short',\n\tday: 'numeric',\n} ).format;\n\nexport const formatMastodonDate = new Intl.DateTimeFormat( 'en-US', {\n\t// Result: \"Apr 7, 2024\", \"Dec 31, 2023\"\n\tmonth: 'short',\n\tday: 'numeric',\n\tyear: 'numeric',\n} ).format;\n\nexport type Platform =\n\t| 'bluesky'\n\t| 'facebook'\n\t| 'instagram'\n\t| 'linkedin'\n\t| 'mastodon'\n\t| 'nextdoor'\n\t| 'threads'\n\t| 'tumblr'\n\t| 'twitter';\n\ntype PreviewTextOptions = {\n\tplatform: Platform;\n\tmaxChars?: number;\n\tmaxLines?: number;\n\thyperlinkUrls?: boolean;\n\thyperlinkHashtags?: boolean;\n\thashtagDomain?: string;\n};\n\nexport const hashtagUrlMap = {\n\ttwitter: 'https://twitter.com/hashtag/%1$s',\n\tfacebook: 'https://www.facebook.com/hashtag/%1$s',\n\tlinkedin: 'https://www.linkedin.com/feed/hashtag/?keywords=%1$s',\n\tinstagram: 'https://www.instagram.com/explore/tags/%1$s',\n\tmastodon: 'https://%2$s/tags/%1$s',\n\tnextdoor: 'https://nextdoor.com/hashtag/%1$s',\n\tthreads: 'https://www.threads.net/search?q=%1$s&serp_type=tags',\n\ttumblr: 'https://www.tumblr.com/tagged/%1$s',\n\tbluesky: 'https://bsky.app/hashtag/%1$s',\n} as const;\n\n/**\n * Prepares the text for the preview.\n * @param {string} text - The text to prepare.\n * @param {PreviewTextOptions} options - The options for preparing the text.\n * @return The prepared text as React nodes.\n */\nexport function preparePreviewText( text: string, options: PreviewTextOptions ): React.ReactNode {\n\tconst {\n\t\tplatform,\n\t\tmaxChars,\n\t\tmaxLines,\n\t\thyperlinkHashtags = true,\n\t\t// Instagram doesn't support hyperlink URLs at the moment.\n\t\thyperlinkUrls = 'instagram' !== platform,\n\t} = options;\n\n\tlet result = stripHtmlTags( text );\n\n\t// Replace multiple new lines (2+) with 2 new lines\n\t// There can be any whitespace characters in empty lines\n\t// That is why \"\\s*\"\n\tresult = result.replaceAll( /(?:\\s*[\\n\\r]){2,}/g, '\\n\\n' );\n\n\tif ( maxChars && result.length > maxChars ) {\n\t\tresult = hardTruncation( maxChars )( result );\n\t}\n\n\tif ( maxLines ) {\n\t\tconst lines = result.split( '\\n' );\n\n\t\tif ( lines.length > maxLines ) {\n\t\t\tresult = lines.slice( 0, maxLines ).join( '\\n' );\n\t\t}\n\t}\n\n\tconst componentMap: Record< string, React.ReactElement > = {};\n\n\tif ( hyperlinkUrls ) {\n\t\t// Convert URLs to hyperlinks.\n\t\t// TODO: Use a better regex here to match the URLs without protocol.\n\t\tconst urls = result.match( /(https?:\\/\\/\\S+)/g ) || [];\n\n\t\t/**\n\t\t * BEFORE:\n\t\t * result = 'Check out this cool site: https://wordpress.org and this one: https://wordpress.com'\n\t\t */\n\t\turls.forEach( ( url, index ) => {\n\t\t\t// Add the element to the component map.\n\t\t\tcomponentMap[ `Link${ index }` ] = (\n\t\t\t\t<a href={ url } rel=\"noopener noreferrer\" target=\"_blank\">\n\t\t\t\t\t{ url }\n\t\t\t\t</a>\n\t\t\t);\n\t\t\t// Replace the URL with the component placeholder.\n\t\t\tresult = result.replace( url, `<Link${ index } />` );\n\t\t} );\n\t\t/**\n\t\t * AFTER:\n\t\t * result = 'Check out this cool site: <Link0 /> and this one: <Link1 />'\n\t\t * componentMap = {\n\t\t * Link0: <a href=\"https://wordpress.org\" ...>https://wordpress.org</a>,\n\t\t * Link1: <a href=\"https://wordpress.com\" ...>https://wordpress.com</a>\n\t\t * }\n\t\t */\n\t}\n\n\t// Convert hashtags to hyperlinks.\n\tif ( hyperlinkHashtags && hashtagUrlMap[ platform ] ) {\n\t\t/**\n\t\t * We need to ensure that only the standalone hashtags are matched.\n\t\t * For example, we don't want to match the hash in the URL.\n\t\t * Thus we need to match the whitespace character before the hashtag or the beginning of the string.\n\t\t */\n\t\tconst hashtags = result.matchAll( /(^|\\s)#(\\w+)/g );\n\n\t\tconst hashtagUrl = hashtagUrlMap[ platform ];\n\n\t\t/**\n\t\t * BEFORE:\n\t\t * result = `#breaking text with a #hashtag on the #web\n\t\t * with a url https://github.com/Automattic/wp-calypso#security that has a hash in it`\n\t\t */\n\t\t[ ...hashtags ].forEach( ( [ fullMatch, whitespace, hashtag ], index ) => {\n\t\t\tconst url = sprintf( hashtagUrl, hashtag, options.hashtagDomain );\n\n\t\t\t// Add the element to the component map.\n\t\t\tcomponentMap[ `Hashtag${ index }` ] = (\n\t\t\t\t<a href={ url } rel=\"noopener noreferrer\" target=\"_blank\">\n\t\t\t\t\t{ `#${ hashtag }` }\n\t\t\t\t</a>\n\t\t\t);\n\n\t\t\t// Replace the hashtag with the component placeholder.\n\t\t\tresult = result.replace( fullMatch, `${ whitespace }<Hashtag${ index } />` );\n\t\t} );\n\t\t/**\n\t\t * AFTER:\n\t\t * result = `<Hashtag0 /> text with a <Hashtag1 /> on the <Hashtag2 />\n\t\t * with a url https://github.com/Automattic/wp-calypso#security that has a hash in it`\n\t\t *\n\t\t * componentMap = {\n\t\t * Hashtag0: <a href=\"https://twitter.com/hashtag/breaking\" ...>#breaking</a>,\n\t\t * Hashtag1: <a href=\"https://twitter.com/hashtag/hashtag\" ...>#hashtag</a>,\n\t\t * Hashtag2: <a href=\"https://twitter.com/hashtag/web\" ...>#web</a>\n\t\t * }\n\t\t */\n\t}\n\n\t// Convert newlines to <br> tags.\n\t/**\n\t * BEFORE:\n\t * result = 'This is a text\\nwith a newline\\nin it'\n\t */\n\tresult = result.replace( /\\n/g, '<br />' );\n\tcomponentMap.br = <br />;\n\t/**\n\t * AFTER:\n\t * result = 'This is a text<br />with a newline<br />in it'\n\t * componentMap = { br: <br /> }\n\t */\n\n\treturn createInterpolateElement( result, componentMap );\n}\n","import {\n\tfirstValid,\n\thardTruncation,\n\tshortEnough,\n\ttruncatedAtSpace,\n\tstripHtmlTags,\n\tbaseDomain,\n} from '../helpers';\nimport { SocialPreviewBaseProps } from '../types';\n\nimport './style.scss';\n\nconst URL_LENGTH = 68;\nconst TITLE_LENGTH = 63;\nconst DESCRIPTION_LENGTH = 160;\n\nconst googleUrl = ( url: string ) => {\n\tconst protocol = url.startsWith( 'https://' ) ? 'https://' : 'http://';\n\n\tconst breadcrumb = protocol + url.replace( protocol, '' ).split( '/' ).join( ' › ' );\n\n\tconst truncateBreadcrumb = firstValid( shortEnough( URL_LENGTH ), hardTruncation( URL_LENGTH ) );\n\n\treturn truncateBreadcrumb( breadcrumb );\n};\n\nconst googleTitle = firstValid(\n\tshortEnough( TITLE_LENGTH ),\n\ttruncatedAtSpace( TITLE_LENGTH - 40, TITLE_LENGTH + 10 ),\n\thardTruncation( TITLE_LENGTH )\n);\n\nconst googleDescription = firstValid(\n\tshortEnough( DESCRIPTION_LENGTH ),\n\ttruncatedAtSpace( DESCRIPTION_LENGTH - 80, DESCRIPTION_LENGTH + 10 ),\n\thardTruncation( DESCRIPTION_LENGTH )\n);\n\nexport type GoogleSearchPreviewProps = Omit< SocialPreviewBaseProps, 'image' > & {\n\tsiteTitle?: string;\n};\n\nexport const GoogleSearchPreview: React.FC< Partial< GoogleSearchPreviewProps > > = ( {\n\tdescription = '',\n\tsiteTitle,\n\ttitle = '',\n\turl = '',\n} ) => {\n\tconst domain = baseDomain( url );\n\n\treturn (\n\t\t<div className=\"search-preview\">\n\t\t\t<div className=\"search-preview__display\">\n\t\t\t\t<div className=\"search-preview__header\">\n\t\t\t\t\t<div className=\"search-preview__branding\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName=\"search-preview__icon\"\n\t\t\t\t\t\t\tsrc={ `https://www.google.com/s2/favicons?sz=128&domain_url=${ domain }` }\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"search-preview__site\">\n\t\t\t\t\t\t\t<div className=\"search-preview__site--title\">{ siteTitle || domain }</div>\n\t\t\t\t\t\t\t<div className=\"search-preview__url\">{ googleUrl( url ) }</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"search-preview__menu\">\n\t\t\t\t\t\t<svg focusable=\"false\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t\t\t\t\t\t<path d=\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"search-preview__title\">{ googleTitle( title ) }</div>\n\t\t\t\t<div className=\"search-preview__description\">\n\t\t\t\t\t{ googleDescription( stripHtmlTags( description ) ) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport { baseDomain, firstValid, hardTruncation, shortEnough, stripHtmlTags } from '../helpers';\nimport { TwitterCardProps } from './types';\n\nconst DESCRIPTION_LENGTH = 200;\n\nconst twitterDescription = firstValid(\n\tshortEnough( DESCRIPTION_LENGTH ),\n\thardTruncation( DESCRIPTION_LENGTH )\n);\n\nexport const Card: React.FC< TwitterCardProps > = ( {\n\tdescription,\n\timage,\n\ttitle,\n\tcardType,\n\turl,\n} ) => {\n\tconst cardClassNames = clsx( `twitter-preview__card-${ cardType }`, {\n\t\t'twitter-preview__card-has-image': !! image,\n\t} );\n\n\treturn (\n\t\t<div className=\"twitter-preview__card\">\n\t\t\t<div className={ cardClassNames }>\n\t\t\t\t{ image && <img className=\"twitter-preview__card-image\" src={ image } alt=\"\" /> }\n\t\t\t\t<div className=\"twitter-preview__card-body\">\n\t\t\t\t\t<div className=\"twitter-preview__card-url\">{ baseDomain( url || '' ) }</div>\n\t\t\t\t\t<div className=\"twitter-preview__card-title\">{ title }</div>\n\t\t\t\t\t<div className=\"twitter-preview__card-description\">\n\t\t\t\t\t\t{ twitterDescription( stripHtmlTags( description ) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","export const Footer: React.FC = () => {\n\treturn (\n\t\t<div className=\"twitter-preview__footer\">\n\t\t\t<span className=\"twitter-preview__icon-replies\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M1.751 10c0-4.42 3.584-8 8.005-8h4.366c4.49 0 8.129 3.64 8.129 8.13 0 2.96-1.607 5.68-4.196 7.11l-8.054 4.46v-3.69h-.067c-4.49.1-8.183-3.51-8.183-8.01zm8.005-6c-3.317 0-6.005 2.69-6.005 6 0 3.37 2.77 6.08 6.138 6.01l.351-.01h1.761v2.3l5.087-2.81c1.951-1.08 3.163-3.13 3.163-5.36 0-3.39-2.744-6.13-6.129-6.13H9.756z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"twitter-preview__icon-retweets\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M4.5 3.88l4.432 4.14-1.364 1.46L5.5 7.55V16c0 1.1.896 2 2 2H13v2H7.5c-2.209 0-4-1.79-4-4V7.55L1.432 9.48.068 8.02 4.5 3.88zM16.5 6H11V4h5.5c2.209 0 4 1.79 4 4v8.45l2.068-1.93 1.364 1.46-4.432 4.14-4.432-4.14 1.364-1.46 2.068 1.93V8c0-1.1-.896-2-2-2z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"twitter-preview__icon-likes\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M16.697 5.5c-1.222-.06-2.679.51-3.89 2.16l-.805 1.09-.806-1.09C9.984 6.01 8.526 5.44 7.304 5.5c-1.243.07-2.349.78-2.91 1.91-.552 1.12-.633 2.78.479 4.82 1.074 1.97 3.257 4.27 7.129 6.61 3.87-2.34 6.052-4.64 7.126-6.61 1.111-2.04 1.03-3.7.477-4.82-.561-1.13-1.666-1.84-2.908-1.91zm4.187 7.69c-1.351 2.48-4.001 5.12-8.379 7.67l-.503.3-.504-.3c-4.379-2.55-7.029-5.19-8.382-7.67-1.36-2.5-1.41-4.86-.514-6.67.887-1.79 2.647-2.91 4.601-3.01 1.651-.09 3.368.56 4.798 2.01 1.429-1.45 3.146-2.1 4.796-2.01 1.954.1 3.714 1.22 4.601 3.01.896 1.81.846 4.17-.514 6.67z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"twitter-preview__icon-analytics\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M8.75 21V3h2v18h-2zM18 21V8.5h2V21h-2zM4 21l.004-10h2L6 21H4zm9.248 0v-7h2v7h-2z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"twitter-preview__icon-share\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M12 2.59l5.7 5.7-1.41 1.42L13 6.41V16h-2V6.41l-3.3 3.3-1.41-1.42L12 2.59zM21 15l-.02 3.51c0 1.38-1.12 2.49-2.5 2.49H5.5C4.11 21 3 19.88 3 18.5V15h2v3.5c0 .28.22.5.5.5h12.98c.28 0 .5-.22.5-.5L19 15h2z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { formatTweetDate } from '../helpers';\nimport { HeaderProps } from './types';\n\nexport const Header: React.FC< HeaderProps > = ( { name, screenName, date } ) => {\n\treturn (\n\t\t<div className=\"twitter-preview__header\">\n\t\t\t<span className=\"twitter-preview__name\">\n\t\t\t\t{ name || __( 'Account Name', 'social-previews' ) }\n\t\t\t</span>\n\t\t\t<span className=\"twitter-preview__screen-name\">{ screenName || '@account' }</span>\n\t\t\t<span>·</span>\n\t\t\t<span className=\"twitter-preview__date\">{ formatTweetDate( date || Date.now() ) }</span>\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport { Fragment } from 'react';\nimport { MediaProps } from './types';\n\nexport const Media: React.FC< MediaProps > = ( { media } ) => {\n\t// Ensure we're only trying to show valid media, and the correct quantity.\n\tconst filteredMedia = media\n\t\t// Only image/ and video/ mime types are supported.\n\t\t.filter(\n\t\t\tmediaItem => mediaItem.type.startsWith( 'image/' ) || mediaItem.type.startsWith( 'video/' )\n\t\t)\n\t\t.filter( ( mediaItem, idx, array ) => {\n\t\t\t// We'll always keep the first item.\n\t\t\tif ( 0 === idx ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// If the first item was a video or GIF, discard all subsequent items.\n\t\t\tif ( array[ 0 ].type.startsWith( 'video/' ) || 'image/gif' === array[ 0 ].type ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// The first item wasn't a video or GIF, so discard all subsequent videos and GIFs.\n\t\t\tif ( mediaItem.type.startsWith( 'video/' ) || 'image/gif' === mediaItem.type ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} )\n\t\t// We only want the first four items of the array, at most.\n\t\t.slice( 0, 4 );\n\n\tif ( 0 === filteredMedia.length ) {\n\t\treturn null;\n\t}\n\n\tconst isVideo = filteredMedia[ 0 ].type.startsWith( 'video/' );\n\n\tconst mediaClasses = clsx( [\n\t\t'twitter-preview__media',\n\t\t'twitter-preview__media-children-' + filteredMedia.length,\n\t] );\n\n\treturn (\n\t\t<div className={ mediaClasses }>\n\t\t\t{ filteredMedia.map( ( mediaItem, index ) => (\n\t\t\t\t<Fragment key={ `twitter-preview__media-item-${ index }` }>\n\t\t\t\t\t{ isVideo ? (\n\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t</video>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t) ) }\n\t\t</div>\n\t);\n};\n","import { SandBox } from '@wordpress/components';\nimport { QuoteTweetProps } from './types';\n\nexport const QuoteTweet: React.FC< QuoteTweetProps > = ( { tweetUrl } ) => {\n\tif ( ! tweetUrl ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"twitter-preview__quote-tweet\">\n\t\t\t<SandBox\n\t\t\t\thtml={ `<blockquote class=\"twitter-tweet\" data-conversation=\"none\" data-dnt=\"true\"><a href=\"${ tweetUrl }\"></a></blockquote>` }\n\t\t\t\tscripts={ [ 'https://platform.twitter.com/widgets.js' ] }\n\t\t\t\ttitle=\"Embedded tweet\"\n\t\t\t/>\n\t\t\t<div className=\"twitter-preview__quote-tweet-overlay\" />\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { DefaultAvatar } from './icons/default-avatar';\nimport { SidebarProps } from './types';\n\nexport const Sidebar: React.FC< SidebarProps > = ( { profileImage, showThreadConnector } ) => {\n\treturn (\n\t\t<div className=\"twitter-preview__sidebar\">\n\t\t\t<div className=\"twitter-preview__profile-image\">\n\t\t\t\t{ profileImage ? (\n\t\t\t\t\t<img alt={ __( 'Twitter profile image', 'social-previews' ) } src={ profileImage } />\n\t\t\t\t) : (\n\t\t\t\t\t<DefaultAvatar />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ showThreadConnector && <div className=\"twitter-preview__connector\" /> }\n\t\t</div>\n\t);\n};\n","export const DefaultAvatar: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\tversion=\"1.0\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\twidth=\"271pt\"\n\t\t\theight=\"270pt\"\n\t\t\tviewBox=\"0 0 271 270\"\n\t\t>\n\t\t\t<rect width=\"100%\" height=\"100%\" fill=\"#ccd5de\" />\n\t\t\t<g transform=\"translate(0,270) scale(0.1,-0.1)\" fill=\"#647785\" stroke=\"none\">\n\t\t\t\t<path d=\"M1251 2089 c-81 -14 -178 -65 -239 -125 -64 -65 -124 -185 -149 -299 -24 -111 -24 -339 -1 -415 38 -121 108 -193 227 -231 83 -27 339 -38 449 -19 139 23 236 91 286 200 59 130 52 395 -15 577 -88 235 -301 354 -558 312z\" />\n\t\t\t\t<path d=\"M1197 795 c-358 -68 -643 -357 -721 -732 l-14 -63 890 0 890 0 -7 42 c-11 70 -64 218 -102 288 -121 224 -336 394 -573 454 -92 24 -267 29 -363 11z\" />\n\t\t\t</g>\n\t\t</svg>\n\t);\n};\n","import { preparePreviewText } from '../helpers';\nimport { TextProps } from './types';\n\nexport const Text: React.FC< TextProps > = ( { text, url, retainUrl } ) => {\n\tif ( ! text ) {\n\t\treturn null;\n\t}\n\t// If the text ends with the card URL, remove it.\n\tconst tweetText =\n\t\turl && ! retainUrl && text.endsWith( url )\n\t\t\t? text.substring( 0, text.lastIndexOf( url ) )\n\t\t\t: text;\n\n\treturn (\n\t\t<div className=\"twitter-preview__text\">\n\t\t\t{ preparePreviewText( tweetText, { platform: 'twitter' } ) }\n\t\t</div>\n\t);\n};\n","import { Card } from './card';\nimport { Footer } from './footer';\nimport { Header } from './header';\nimport { Media } from './media';\nimport { QuoteTweet } from './quote-tweet';\nimport { Sidebar } from './sidebar';\nimport { Text } from './text';\nimport { TwitterPreviewProps } from './types';\n\nimport './style.scss';\n\nexport const TwitterPostPreview: React.FC< TwitterPreviewProps > = ( {\n\tdate,\n\tdescription,\n\timage,\n\tmedia,\n\tname,\n\tprofileImage,\n\tscreenName,\n\tshowThreadConnector,\n\ttext,\n\ttitle,\n\ttweetUrl,\n\tcardType,\n\turl,\n} ) => {\n\tconst hasMedia = !! media?.length;\n\n\treturn (\n\t\t<div className=\"twitter-preview__wrapper\">\n\t\t\t<div className=\"twitter-preview__container\">\n\t\t\t\t<Sidebar profileImage={ profileImage } showThreadConnector={ showThreadConnector } />\n\t\t\t\t<div className=\"twitter-preview__main\">\n\t\t\t\t\t<Header name={ name } screenName={ screenName } date={ date } />\n\t\t\t\t\t<div className=\"twitter-preview__content\">\n\t\t\t\t\t\t{ text ? <Text text={ text } url={ url || '' } retainUrl={ hasMedia } /> : null }\n\t\t\t\t\t\t{ hasMedia ? <Media media={ media } /> : null }\n\t\t\t\t\t\t{ tweetUrl ? <QuoteTweet tweetUrl={ tweetUrl } /> : null }\n\t\t\t\t\t\t{ ! hasMedia && url && (\n\t\t\t\t\t\t\t<Card\n\t\t\t\t\t\t\t\tdescription={ description || '' }\n\t\t\t\t\t\t\t\timage={ image }\n\t\t\t\t\t\t\t\ttitle={ title || '' }\n\t\t\t\t\t\t\t\tcardType={ cardType || '' }\n\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<Footer />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { TwitterPostPreview } from './post-preview';\nimport { TwitterPreviewProps } from './types';\n\nexport const TwitterLinkPreview: React.FC< TwitterPreviewProps > = props => {\n\treturn (\n\t\t<TwitterPostPreview\n\t\t\t{ ...props }\n\t\t\t// Override the props that are irrelevant to link preview\n\t\t\ttext=\"\"\n\t\t\tmedia={ undefined }\n\t\t/>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { TwitterLinkPreview } from './link-preview';\nimport { TwitterPostPreview } from './post-preview';\nimport type { TwitterPreviewsProps } from './types';\n\nexport const TwitterPreviews: React.FC< TwitterPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\ttweets,\n} ) => {\n\tif ( ! tweets?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"social-preview twitter-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section twitter-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Twitter\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on X:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ tweets.map( ( tweet, index ) => {\n\t\t\t\t\t\tconst isLast = index + 1 === tweets.length;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TwitterPostPreview\n\t\t\t\t\t\t\t\tkey={ `twitter-preview__tweet-${ index }` }\n\t\t\t\t\t\t\t\t{ ...tweet }\n\t\t\t\t\t\t\t\tshowThreadConnector={ ! isLast }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section twitter-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Twitter post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on X.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<TwitterLinkPreview { ...tweets[ 0 ] } name=\"\" profileImage=\"\" screenName=\"\" />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","const HEADING_LEVELS = [ 2, 3, 4, 5, 6 ] as const;\n\nexport type SectionHeadingProps = {\n\tclassName?: string;\n\tlevel?: ( typeof HEADING_LEVELS )[ number ];\n\tchildren?: React.ReactNode;\n};\n\nexport const SectionHeading: React.FC< SectionHeadingProps > = ( {\n\tclassName,\n\tlevel,\n\tchildren,\n} ) => {\n\tconst Tag = `h${ level && HEADING_LEVELS.includes( level ) ? level : 3 }` as const;\n\n\treturn (\n\t\t<Tag className={ `social-preview__section-heading ${ className ?? '' }` }>{ children }</Tag>\n\t);\n};\n\nexport default SectionHeading;\n","import { __, sprintf } from '@wordpress/i18n';\nimport { baseDomain, getTitleFromDescription, preparePreviewText } from '../helpers';\nimport { FEED_TEXT_MAX_LENGTH } from './constants';\nimport { DefaultAvatar } from './icons/default-avatar';\nimport { LinkedInPreviewProps } from './types';\n\nimport './style.scss';\n\n/**\n * LinkedIn Post Preview Component\n *\n * @param {LinkedInPreviewProps} props - The props for the LinkedIn post preview.\n *\n * @return The LinkedIn post preview component.\n */\nexport function LinkedInPostPreview( {\n\tarticleReadTime = 5,\n\timage,\n\tjobTitle,\n\tname,\n\tprofileImage,\n\tdescription,\n\tmedia,\n\ttitle,\n\turl,\n}: LinkedInPreviewProps ) {\n\tconst hasMedia = !! media?.length;\n\n\treturn (\n\t\t<div className=\"linkedin-preview__wrapper\">\n\t\t\t<section className={ `linkedin-preview__container ${ hasMedia ? 'has-media' : '' }` }>\n\t\t\t\t<div className=\"linkedin-preview__header\">\n\t\t\t\t\t<div className=\"linkedin-preview__header--avatar\">\n\t\t\t\t\t\t{ profileImage ? <img src={ profileImage } alt=\"\" /> : <DefaultAvatar /> }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"linkedin-preview__header--profile\">\n\t\t\t\t\t\t<div className=\"linkedin-preview__header--profile-info\">\n\t\t\t\t\t\t\t<div className=\"linkedin-preview__header--profile-name\">\n\t\t\t\t\t\t\t\t{ name || __( 'Account Name', 'social-previews' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<span>•</span>\n\t\t\t\t\t\t\t<div className=\"linkedin-preview__header--profile-actor\">\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: refers to the actor level of the post being shared, e.g. \"1st\", \"2nd\", \"3rd\", etc.\n\t\t\t\t\t\t\t\t\t__( '1st', 'social-previews' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ jobTitle ? (\n\t\t\t\t\t\t\t<div className=\"linkedin-preview__header--profile-title\">{ jobTitle }</div>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<div className=\"linkedin-preview__header--profile-meta\">\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t// translators: refers to the time since the post was published, e.g. \"1h\"\n\t\t\t\t\t\t\t\t\t__( '1h', 'social-previews' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span>•</span>\n\t\t\t\t\t\t\t{ /* This is the Globe SVG that represents visibility to be \"public\" */ }\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 16 16\" fill=\"currentColor\" width=\"16\" height=\"16\" focusable=\"false\">\n\t\t\t\t\t\t\t\t<path d=\"M8 1a7 7 0 107 7 7 7 0 00-7-7zM3 8a5 5 0 011-3l.55.55A1.5 1.5 0 015 6.62v1.07a.75.75 0 00.22.53l.56.56a.75.75 0 00.53.22H7v.69a.75.75 0 00.22.53l.56.56a.75.75 0 01.22.53V13a5 5 0 01-5-5zm6.24 4.83l2-2.46a.75.75 0 00.09-.8l-.58-1.16A.76.76 0 0010 8H7v-.19a.51.51 0 01.28-.45l.38-.19a.74.74 0 01.68 0L9 7.5l.38-.7a1 1 0 00.12-.48v-.85a.78.78 0 01.21-.53l1.07-1.09a5 5 0 01-1.54 9z\" />\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"linkedin-preview__content\">\n\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t<div className=\"linkedin-preview__caption\">\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{ preparePreviewText( description, {\n\t\t\t\t\t\t\t\t\tplatform: 'linkedin',\n\t\t\t\t\t\t\t\t\tmaxChars: FEED_TEXT_MAX_LENGTH,\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{ hasMedia && url && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ ' - ' }\n\t\t\t\t\t\t\t\t\t<a href={ url } rel=\"nofollow noopener noreferrer\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t{ url }\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : null }\n\t\t\t\t\t{ hasMedia ? (\n\t\t\t\t\t\t<div className=\"linkedin-preview__media\">\n\t\t\t\t\t\t\t{ media.map( ( mediaItem, index ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ `linkedin-preview__media-item-${ index }` }\n\t\t\t\t\t\t\t\t\tclassName=\"linkedin-preview__media-item\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<article>\n\t\t\t\t\t\t\t{ image ? <img className=\"linkedin-preview__image\" src={ image } alt=\"\" /> : null }\n\t\t\t\t\t\t\t{ url ? (\n\t\t\t\t\t\t\t\t<div className=\"linkedin-preview__description\">\n\t\t\t\t\t\t\t\t\t<h2 className=\"linkedin-preview__description--title\">\n\t\t\t\t\t\t\t\t\t\t{ title || getTitleFromDescription( description ) }\n\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t<div className=\"linkedin-preview__description--meta\">\n\t\t\t\t\t\t\t\t\t\t<span className=\"linkedin-preview__description--url\">\n\t\t\t\t\t\t\t\t\t\t\t{ baseDomain( url ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span>•</span>\n\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t\t\t// translators: %d is the number of minutes it takes to read the article\n\t\t\t\t\t\t\t\t\t\t\t\t__( '%d min read', 'social-previews' ),\n\t\t\t\t\t\t\t\t\t\t\t\tarticleReadTime\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t</article>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\t);\n}\n","export const FEED_TEXT_MAX_LENGTH = 550;\n","export const DefaultAvatar: React.FC = () => {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" width=\"128\" height=\"128\">\n\t\t\t<path fill=\"#e7e2dc\" d=\"M0 0h128v128H0z\" />\n\t\t\t<path d=\"M88.41 84.67a32 32 0 10-48.82 0 66.13 66.13 0 0148.82 0z\" fill=\"#788fa5\" />\n\t\t\t<path\n\t\t\t\td=\"M88.41 84.67a32 32 0 01-48.82 0A66.79 66.79 0 000 128h128a66.79 66.79 0 00-39.59-43.33z\"\n\t\t\t\tfill=\"#9db3c8\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M64 96a31.93 31.93 0 0024.41-11.33 66.13 66.13 0 00-48.82 0A31.93 31.93 0 0064 96z\"\n\t\t\t\tfill=\"#56687a\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\n","import { getTitleFromDescription } from '../helpers';\nimport { LinkedInPostPreview } from './post-preview';\nimport { LinkedInPreviewProps } from './types';\n\ntype OptionalProps = Partial< Pick< LinkedInPreviewProps, 'name' | 'profileImage' > >;\n\nexport type LinkedInLinkPreviewProps = Omit< LinkedInPreviewProps, keyof OptionalProps > &\n\tOptionalProps;\n\n/**\n * LinkedIn Link Preview Component\n * @param {LinkedInLinkPreviewProps} props - The props for the LinkedIn link preview.\n * @return The LinkedIn link preview component.\n */\nexport function LinkedInLinkPreview( props: LinkedInLinkPreviewProps ) {\n\treturn (\n\t\t<LinkedInPostPreview\n\t\t\tname=\"\"\n\t\t\tprofileImage=\"\"\n\t\t\t{ ...props }\n\t\t\t// Override the props that are irrelevant to link preview\n\t\t\tdescription=\"\"\n\t\t\tmedia={ undefined }\n\t\t\ttitle={ props.title || getTitleFromDescription( props.description ) }\n\t\t/>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { LinkedInLinkPreview } from './link-preview';\nimport { LinkedInPostPreview } from './post-preview';\nimport type { LinkedInPreviewsProps } from './types';\n\nexport const LinkedInPreviews: React.FC< LinkedInPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\t...props\n} ) => {\n\treturn (\n\t\t<div className=\"social-preview linkedin-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section linkedin-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on LinkedIn\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on LinkedIn:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<LinkedInPostPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section linkedin-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a LinkedIn post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on LinkedIn.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<LinkedInLinkPreview { ...props } name=\"\" profileImage=\"\" />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { baseDomain } from '../helpers';\nimport { tumblrTitle, tumblrDescription } from './helpers';\nimport TumblrPostActions from './post/actions';\nimport TumblrPostHeader from './post/header';\nimport type { TumblrPreviewProps } from './types';\n\nimport './styles.scss';\n\nexport const TumblrLinkPreview: React.FC< TumblrPreviewProps > = ( {\n\ttitle,\n\tdescription,\n\timage,\n\tuser,\n\turl,\n} ) => {\n\tconst avatarUrl = user?.avatarUrl;\n\n\treturn (\n\t\t<div className=\"tumblr-preview__post\">\n\t\t\t{ avatarUrl && <img className=\"tumblr-preview__avatar\" src={ avatarUrl } alt=\"\" /> }\n\t\t\t<div className=\"tumblr-preview__card\">\n\t\t\t\t<TumblrPostHeader user={ user } />\n\t\t\t\t<div className=\"tumblr-preview__window\">\n\t\t\t\t\t{ image && (\n\t\t\t\t\t\t<div className=\"tumblr-preview__window-top\">\n\t\t\t\t\t\t\t<div className=\"tumblr-preview__overlay\">\n\t\t\t\t\t\t\t\t<div className=\"tumblr-preview__title\">{ tumblrTitle( title ) }</div>\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tclassName=\"tumblr-preview__image\"\n\t\t\t\t\t\t\t\tsrc={ image }\n\t\t\t\t\t\t\t\talt={ __( 'Tumblr preview thumbnail', 'social-previews' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<div className={ `tumblr-preview__window-bottom ${ ! image ? 'is-full' : '' }` }>\n\t\t\t\t\t\t{ ! image && <div className=\"tumblr-preview__title\">{ tumblrTitle( title ) }</div> }\n\t\t\t\t\t\t{ description && image && (\n\t\t\t\t\t\t\t<div className=\"tumblr-preview__description\">\n\t\t\t\t\t\t\t\t{ tumblrDescription( description ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ url && <div className=\"tumblr-preview__site-name\">{ baseDomain( url ) }</div> }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<TumblrPostActions />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { firstValid, hardTruncation, shortEnough, stripHtmlTags, Formatter } from '../helpers';\n\nconst TITLE_LENGTH = 1000;\nconst DESCRIPTION_LENGTH = 400;\n\nexport const tumblrTitle: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( TITLE_LENGTH ),\n\t\thardTruncation( TITLE_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n\nexport const tumblrDescription: Formatter = text => {\n\t// Remove Gutenberg block comments using a safer approach to avoid ReDoS\n\tlet processedText = text;\n\tlet startIndex = processedText.indexOf( '<!--' );\n\twhile ( startIndex !== -1 ) {\n\t\tconst endIndex = processedText.indexOf( '-->', startIndex );\n\t\tif ( endIndex === -1 ) {\n\t\t\t// Incomplete comment, remove from startIndex to end\n\t\t\tprocessedText = processedText.substring( 0, startIndex );\n\t\t\tbreak;\n\t\t}\n\t\t// Remove the comment\n\t\tprocessedText =\n\t\t\tprocessedText.substring( 0, startIndex ) + processedText.substring( endIndex + 3 );\n\t\tstartIndex = processedText.indexOf( '<!--' );\n\t}\n\n\t// Convert closing paragraph tags to line breaks to preserve paragraph structure\n\tprocessedText = processedText.replace( /<\\/p>/g, '</p>\\n\\n' );\n\n\treturn (\n\t\tfirstValid(\n\t\t\tshortEnough( DESCRIPTION_LENGTH ),\n\t\t\thardTruncation( DESCRIPTION_LENGTH )\n\t\t)( stripHtmlTags( processedText ) ) || ''\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport TumblrPostIcon from '../icons';\n\nimport './styles.scss';\n\nconst TumblrPostActions: React.FC = () => (\n\t<div className=\"tumblr-preview__post-actions\">\n\t\t<div className=\"tumblr-preview__post-manage-actions\">\n\t\t\t<div className=\"tumblr-preview__post-actions-blaze\">\n\t\t\t\t<TumblrPostIcon name=\"blaze\" />\n\t\t\t\t Blaze\n\t\t\t</div>\n\t\t\t<ul>\n\t\t\t\t{ [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'delete',\n\t\t\t\t\t\t// translators: \"Delete\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Delete', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'edit',\n\t\t\t\t\t\t// translators: \"Edit\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Edit', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t].map( ( { icon, label } ) => (\n\t\t\t\t\t<li key={ icon } aria-label={ label }>\n\t\t\t\t\t\t<TumblrPostIcon name={ icon } />\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</div>\n\t\t<div className=\"tumblr-preview__post-social-actions\">\n\t\t\t<div>\n\t\t\t\t{\n\t\t\t\t\t// translators: count of notes on a Tumblr post\n\t\t\t\t\t__( '0 notes', 'social-previews' )\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<ul>\n\t\t\t\t{ [\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'share',\n\t\t\t\t\t\t// translators: \"Share\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Share', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'reply',\n\t\t\t\t\t\t// translators: \"Reply\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Reply', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'reblog',\n\t\t\t\t\t\t// translators: \"Reblog\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Reblog', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ticon: 'like',\n\t\t\t\t\t\t// translators: \"Like\" action on a Tumblr post\n\t\t\t\t\t\tlabel: __( 'Like', 'social-previews' ),\n\t\t\t\t\t},\n\t\t\t\t].map( ( { icon, label } ) => (\n\t\t\t\t\t<li key={ icon } aria-label={ label }>\n\t\t\t\t\t\t<TumblrPostIcon name={ icon } />\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n);\n\nexport default TumblrPostActions;\n","import './styles.scss';\n\nconst TumblrPostIcon: React.FC< { name: string } > = ( { name } ) => {\n\tlet svg;\n\n\tswitch ( name ) {\n\t\tcase 'blaze':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 25 22\">\n\t\t\t\t\t<path d=\"m7.5059-0.24414c-0.79843 0.057223-1.2169 0.88587-1.1635 1.6128-0.2266 2.0449-1.4898 3.8696-3.1975 4.9778-3.0182 2.414-4.2201 6.8066-2.8033 10.411 0.92417 2.4679 2.9589 4.5674 5.4768 5.3928 0.95914 0.16102 1.7233-0.94358 1.3074-1.8059-0.11578-0.51062-0.17482-0.96516-0.17845-1.487 1.0413 1.5607 2.5484 2.8986 4.341 3.4975 1.0396-0.0154 1.98-0.64458 2.8516-1.1608 3.3821-2.1786 4.9604-6.7097 3.6597-10.518-0.49144-1.4599-1.2948-2.8935-2.5028-3.8698-0.7512-0.45498-1.661 0.09677-1.9202 0.86038-0.12274 0.16822-0.70352 1.1955-0.6191 0.61976 0.25488-3.4397-1.6789-7.0066-4.8123-8.4958-0.14322-0.037843-0.292-0.049464-0.43945-0.035156zm1.0586 3.5605c1.8947 2.0016 2.2326 5.1984 0.89062 7.5879-0.38498 0.96148 0.71762 2.0063 1.6567 1.5681 1.4159-0.4624 2.6998-1.3259 3.6577-2.4665 1.6442 2.5888 1.1465 6.2819-1.0629 8.3379-0.62378 0.60782-1.3666 1.0945-2.1754 1.4179-1.9543-0.989-3.3534-3.0966-3.5625-5.3125-0.25636-1.0253-1.81-1.2013-2.2852-0.25781-0.75058 1.3054-1.1846 2.7948-1.2305 4.3008-2.2396-1.9852-2.8468-5.4435-1.4609-8.0527 0.58926-1.239 1.651-2.13 2.724-2.9329 1.2958-1.1271 2.2791-2.62 2.7682-4.2683l0.071578 0.069832z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'delete':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 14 17\">\n\t\t\t\t\t<path d=\"M12 5v9c.1.7-.3 1-1 1H3c-.5 0-.9-.3-1-1V5c0-.6-.4-1-1-1-.5 0-1 .4-1 1v9.5C0 16.1 1.4 17 3 17h8c1.8 0 3-.8 3-2.5V5c0-.6-.5-1-1-1-.6 0-1 .5-1 1z\"></path>\n\t\t\t\t\t<path d=\"M4 12s0 1 1 1 1-1 1-1V5c0-.5-.4-1-1-1-.5 0-1 .5-1 1v7zm4 0s0 1 1 1 1-1 1-1V5c0-.5-.4-1-1-1-.5 0-1 .5-1 1v7zm5-10c.5 0 1-.4 1-1 0-.5-.4-.9-1-1H1C.5.1 0 .5 0 1c0 .6.6 1 1.1 1H13z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'edit':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 17.6 17.6\">\n\t\t\t\t\t<path d=\"M5.3 13.8l-2.1.7.7-2.1L10.3 6l1.4 1.4-6.4 6.4zm6.4-9.3l-1.4-1.4-1.4 1.4-6.7 6.7-.2.5-2 5.9 3.8-1.3 2.1-.7.4-.1.3-.3 7.8-7.8c.1 0-2.7-2.9-2.7-2.9zm5.6-1.4L14.5.3c-.4-.4-1-.4-1.4 0l-1.4 1.4L15.9 6l1.4-1.4c.4-.5.4-1.1 0-1.5\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'share':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 24 24\">\n\t\t\t\t\t<path d=\"M12.6173 1.07612C12.991 0.921338 13.4211 1.00689 13.7071 1.29289L22.7071 10.2929C23.0832 10.669 23.0991 11.2736 22.7433 11.669L13.7433 21.669C13.4663 21.9767 13.0283 22.082 12.6417 21.9336C12.2552 21.7853 12 21.414 12 21V16H11.5C7.31775 16 3.92896 18.2486 2.95256 21.3044C2.80256 21.7738 2.33292 22.064 1.84598 21.9881C1.35904 21.9122 1 21.4928 1 21V18.5C1 12.3162 5.88069 7.27245 12 7.01067V2C12 1.59554 12.2436 1.2309 12.6173 1.07612ZM14 4.41421V8C14 8.55228 13.5523 9 13 9H12.5C7.64534 9 3.64117 12.6414 3.06988 17.3419C5.09636 15.2366 8.18218 14 11.5 14H13C13.5523 14 14 14.4477 14 15V18.394L20.622 11.0362L14 4.41421Z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'reply':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 17 17\">\n\t\t\t\t\t<path d=\"M8.7 0C4.1 0 .4 3.7.4 8.3c0 1.2.2 2.3.7 3.4-.2.6-.4 1.5-.7 2.5L0 15.8c-.2.7.5 1.4 1.2 1.2l1.6-.4 2.4-.7c1.1.5 2.2.7 3.4.7 4.6 0 8.3-3.7 8.3-8.3C17 3.7 13.3 0 8.7 0zM15 8.3c0 3.5-2.8 6.3-6.4 6.3-1.2 0-2.3-.3-3.2-.9l-3.2.9.9-3.2c-.5-.9-.9-2-.9-3.2.1-3.4 3-6.2 6.5-6.2S15 4.8 15 8.3z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'reblog':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 17 18.1\">\n\t\t\t\t\t<path d=\"M12.8.2c-.4-.4-.8-.2-.8.4v2H2c-2 0-2 2-2 2v5s0 1 1 1 1-1 1-1v-4c0-1 .5-1 1-1h9v2c0 .6.3.7.8.4L17 3.6 12.8.2zM4.2 17.9c.5.4.8.2.8-.3v-2h10c2 0 2-2 2-2v-5s0-1-1-1-1 1-1 1v4c0 1-.5 1-1 1H5v-2c0-.6-.3-.7-.8-.4L0 14.6l4.2 3.3z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'like':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 20 18\">\n\t\t\t\t\t<path d=\"M14.658 0c-1.625 0-3.21.767-4.463 2.156-.06.064-.127.138-.197.225-.074-.085-.137-.159-.196-.225C8.547.766 6.966 0 5.35 0 4.215 0 3.114.387 2.162 1.117c-2.773 2.13-2.611 5.89-1.017 8.5 2.158 3.535 6.556 7.18 7.416 7.875A2.3 2.3 0 0 0 9.998 18c.519 0 1.028-.18 1.436-.508.859-.695 5.257-4.34 7.416-7.875 1.595-2.616 1.765-6.376-1-8.5C16.895.387 15.792 0 14.657 0h.001zm0 2.124c.645 0 1.298.208 1.916.683 1.903 1.461 1.457 4.099.484 5.695-1.973 3.23-6.16 6.7-6.94 7.331a.191.191 0 0 1-.241 0c-.779-.631-4.966-4.101-6.94-7.332-.972-1.595-1.4-4.233.5-5.694.619-.475 1.27-.683 1.911-.683 1.064 0 2.095.574 2.898 1.461.495.549 1.658 2.082 1.753 2.203.095-.12 1.259-1.654 1.752-2.203.8-.887 1.842-1.461 2.908-1.461h-.001z\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t\tcase 'ellipsis':\n\t\t\tsvg = (\n\t\t\t\t<svg viewBox=\"0 0 17.5 3.9\">\n\t\t\t\t\t<path d=\"M17.5 1.9c0 1.1-.9 1.9-1.9 1.9-1.1 0-1.9-.9-1.9-1.9S14.5 0 15.6 0c1 0 1.9.9 1.9 1.9m-6.8 0c0 1.1-.9 1.9-1.9 1.9-1.1.1-2-.8-2-1.9 0-1 .9-1.9 2-1.9s1.9.9 1.9 1.9m-6.8 0c0 1.1-.9 2-2 2-1 0-1.9-.9-1.9-2S.9 0 1.9 0c1.1 0 2 .9 2 1.9\"></path>\n\t\t\t\t</svg>\n\t\t\t);\n\t\t\tbreak;\n\t}\n\n\treturn (\n\t\t<span className={ `tumblr-preview__post-icon tumblr-preview__post-icon-${ name }` }>\n\t\t\t{ svg }\n\t\t</span>\n\t);\n};\n\nexport default TumblrPostIcon;\n","import { __ } from '@wordpress/i18n';\nimport TumblrPostIcon from '../icons';\nimport type { TumblrPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = Pick< TumblrPreviewProps, 'user' >;\n\nconst TumblrPostHeader: React.FC< Props > = ( { user } ) => (\n\t<div className=\"tumblr-preview__post-header\">\n\t\t<div className=\"tumblr-preview__post-header-username\">\n\t\t\t{ user?.displayName ||\n\t\t\t\t// translators: username of a fictional Tumblr User\n\t\t\t\t__( 'anonymous-user', 'social-previews' ) }\n\t\t</div>\n\t\t<TumblrPostIcon name=\"ellipsis\" />\n\t</div>\n);\n\nexport default TumblrPostHeader;\n","import { __ } from '@wordpress/i18n';\nimport { preparePreviewText } from '../helpers';\nimport { tumblrTitle, tumblrDescription } from './helpers';\nimport TumblrPostActions from './post/actions';\nimport TumblrPostHeader from './post/header';\nimport type { TumblrPreviewProps } from './types';\n\nimport './styles.scss';\n\nexport const TumblrPostPreview: React.FC< TumblrPreviewProps > = ( {\n\ttitle,\n\tdescription,\n\timage,\n\tuser,\n\turl,\n\tcustomText,\n\tmedia,\n} ) => {\n\tconst avatarUrl = user?.avatarUrl;\n\n\tconst mediaItem = media?.[ 0 ];\n\n\treturn (\n\t\t<div className=\"tumblr-preview__post\">\n\t\t\t{ avatarUrl && <img className=\"tumblr-preview__avatar\" src={ avatarUrl } alt=\"\" /> }\n\t\t\t<div className=\"tumblr-preview__card\">\n\t\t\t\t<TumblrPostHeader user={ user } />\n\t\t\t\t<div className=\"tumblr-preview__body\">\n\t\t\t\t\t<div className=\"tumblr-preview__title\">{ tumblrTitle( title ) }</div>\n\t\t\t\t\t{ customText && <div className=\"tumblr-preview__custom-text\">{ customText }</div> }\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<div className=\"tumblr-preview__description\">\n\t\t\t\t\t\t\t{ preparePreviewText( tumblrDescription( description ), {\n\t\t\t\t\t\t\t\tplatform: 'tumblr',\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t{ mediaItem ? (\n\t\t\t\t\t\t<div className=\"tumblr-preview__media-item\">\n\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t<video controls className=\"tumblr-preview__media--video\">\n\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<img className=\"tumblr-preview__image\" src={ mediaItem.url } alt=\"\" />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\timage && (\n\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tclassName=\"tumblr-preview__image\"\n\t\t\t\t\t\t\t\tsrc={ image }\n\t\t\t\t\t\t\t\talt={ __( 'Tumblr preview thumbnail', 'social-previews' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t) }\n\t\t\t\t\t<a className=\"tumblr-preview__url\" href={ url } target=\"_blank\" rel=\"noreferrer\">\n\t\t\t\t\t\t{ __( 'View On WordPress', 'social-previews' ) }\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t\t<TumblrPostActions />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { SectionHeading } from '../shared/section-heading';\nimport { SocialPreviewsBaseProps } from '../types';\nimport { TumblrLinkPreview } from './link-preview';\nimport { TumblrPostPreview } from './post-preview';\nimport { TumblrPreviewProps } from './types';\n\nexport type TumblrPreviewsProps = TumblrPreviewProps & SocialPreviewsBaseProps;\n\nexport const TumblrPreviews: React.FC< TumblrPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\t...props\n} ) => {\n\tconst hasMedia = !! props.media?.length;\n\n\treturn (\n\t\t<div className=\"social-preview tumblr-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section tumblr-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Tumblr\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Tumblr:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ hasMedia ? <TumblrPostPreview { ...props } /> : <TumblrLinkPreview { ...props } /> }\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section tumblr-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link on Tumblr\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Tumblr.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<TumblrLinkPreview { ...props } user={ undefined } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { SocialPreviewsBaseProps } from '../types';\nimport { FacebookLinkPreview } from './link-preview';\nimport { LinkPreviewDetails } from './link-preview-details';\nimport { FacebookPostPreview } from './post-preview';\nimport type { FacebookPreviewProps } from './types';\n\nexport type FacebookPreviewsProps = FacebookPreviewProps & SocialPreviewsBaseProps;\n\nexport const FacebookPreviews: React.FC< FacebookPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\t...props\n} ) => {\n\tconst hasMedia = !! props.media?.length;\n\tconst hasCustomImage = !! props.customImage;\n\n\treturn (\n\t\t<div className=\"social-preview facebook-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section facebook-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Facebook\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Facebook:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ hasMedia ? <FacebookPostPreview { ...props } /> : <FacebookLinkPreview { ...props } /> }\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section facebook-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Facebook post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Facebook.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ hasCustomImage ? (\n\t\t\t\t\t\t<LinkPreviewDetails { ...props } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<FacebookLinkPreview { ...props } compactDescription customText=\"\" user={ undefined } />\n\t\t\t\t\t) }\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { TYPE_ARTICLE, PORTRAIT_MODE } from '../constants';\nimport { baseDomain } from '../helpers';\nimport CustomText from './custom-text';\nimport { facebookTitle, facebookDescription } from './helpers';\nimport useImage from './hooks/use-image-hook';\nimport FacebookPostActions from './post/actions';\nimport FacebookPostHeader from './post/header';\nimport FacebookPostIcon from './post/icons';\nimport type { FacebookPreviewProps } from './types';\n\nimport './style.scss';\n\nexport type FacebookLinkPreviewProps = FacebookPreviewProps & {\n\tcompactDescription?: boolean;\n};\n\nexport const FacebookLinkPreview: React.FC< FacebookLinkPreviewProps > = ( {\n\turl,\n\ttitle,\n\tdescription,\n\timage,\n\tuser,\n\tcustomText,\n\ttype,\n\timageMode,\n\tcompactDescription,\n} ) => {\n\tconst [ mode, isLoadingImage, imgProps ] = useImage( { mode: imageMode } );\n\tconst isArticle = type === TYPE_ARTICLE;\n\tconst portraitMode = ( isArticle && ! image ) || mode === PORTRAIT_MODE;\n\tconst modeClass = `is-${ portraitMode ? 'portrait' : 'landscape' }`;\n\n\treturn (\n\t\t<div className=\"facebook-preview__post\">\n\t\t\t<FacebookPostHeader user={ user } />\n\t\t\t<div className=\"facebook-preview__content\">\n\t\t\t\t{ customText && <CustomText text={ customText } url={ url } /> }\n\t\t\t\t<div\n\t\t\t\t\tclassName={ `facebook-preview__body ${ modeClass } ${\n\t\t\t\t\t\timage && isLoadingImage ? 'is-loading' : ''\n\t\t\t\t\t}` }\n\t\t\t\t>\n\t\t\t\t\t{ ( image || isArticle ) && (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ `facebook-preview__image ${ image ? '' : 'is-empty' } ${ modeClass }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ /* eslint-disable jsx-a11y/alt-text */ }\n\t\t\t\t\t\t\t{ image && <img src={ image } { ...imgProps } /> }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t\t<div className=\"facebook-preview__text\">\n\t\t\t\t\t\t<div className=\"facebook-preview__text-wrapper\">\n\t\t\t\t\t\t\t<div className=\"facebook-preview__url\">{ baseDomain( url ) }</div>\n\t\t\t\t\t\t\t<div className=\"facebook-preview__title\">\n\t\t\t\t\t\t\t\t{ facebookTitle( title ) || baseDomain( url ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={ `facebook-preview__description ${\n\t\t\t\t\t\t\t\t\tcompactDescription ? 'is-compact' : ''\n\t\t\t\t\t\t\t\t}` }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ description && facebookDescription( description ) }\n\t\t\t\t\t\t\t\t{ isArticle &&\n\t\t\t\t\t\t\t\t\t! description &&\n\t\t\t\t\t\t\t\t\t// translators: Default description for a Facebook post\n\t\t\t\t\t\t\t\t\t__( 'Visit the post for more.', 'social-previews' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"facebook-preview__info\">\n\t\t\t\t\t\t\t\t<FacebookPostIcon name=\"info\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<FacebookPostActions />\n\t\t</div>\n\t);\n};\n","export const AUTO_SHARED_SOCIAL_POST_PREVIEW = 'AUTO_SHARED_SOCIAL_POST_PREVIEW';\nexport const AUTO_SHARED_LINK_PREVIEW = 'AUTO_SHARED_LINK_PREVIEW';\nexport const DEFAULT_LINK_PREVIEW = 'DEFAULT_LINK_PREVIEW';\n\nexport const TYPE_WEBSITE = 'website';\nexport const TYPE_ARTICLE = 'article';\n\nexport const LANDSCAPE_MODE = 'landscape';\nexport const PORTRAIT_MODE = 'portrait';\n","import { firstValid, hardTruncation, shortEnough, stripHtmlTags, Formatter } from '../helpers';\n\nconst TITLE_LENGTH = 110;\nconst DESCRIPTION_LENGTH = 200;\nexport const CUSTOM_TEXT_LENGTH = 440;\n\nexport const facebookTitle: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( TITLE_LENGTH ),\n\t\thardTruncation( TITLE_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n\nexport const facebookDescription: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( DESCRIPTION_LENGTH ),\n\t\thardTruncation( DESCRIPTION_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n","import { hasTag, preparePreviewText } from '../helpers';\nimport { CUSTOM_TEXT_LENGTH } from './helpers';\n\ntype Props = {\n\ttext: string;\n\turl: string;\n\tforceUrlDisplay?: boolean;\n};\n\nconst CustomText: React.FC< Props > = ( { text, url, forceUrlDisplay } ) => {\n\tlet postLink;\n\n\tif ( forceUrlDisplay || hasTag( text, 'a' ) ) {\n\t\tpostLink = (\n\t\t\t<a\n\t\t\t\tclassName=\"facebook-preview__custom-text-post-url\"\n\t\t\t\thref={ url }\n\t\t\t\trel=\"nofollow noopener noreferrer\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t>\n\t\t\t\t{ url }\n\t\t\t</a>\n\t\t);\n\t}\n\n\treturn (\n\t\t<p className=\"facebook-preview__custom-text\">\n\t\t\t<span>\n\t\t\t\t{ preparePreviewText( text, {\n\t\t\t\t\tplatform: 'facebook',\n\t\t\t\t\tmaxChars: CUSTOM_TEXT_LENGTH,\n\t\t\t\t} ) }\n\t\t\t</span>\n\t\t\t{ postLink }\n\t\t</p>\n\t);\n};\n\nexport default CustomText;\n","import { __ } from '@wordpress/i18n';\nimport { useCallback, useState } from 'react';\nimport { LANDSCAPE_MODE, PORTRAIT_MODE } from '../../constants';\nimport type { ImageMode } from '../types';\n\ntype ImageEventHandler = ( event: React.SyntheticEvent< HTMLImageElement > ) => void;\ntype ImgProps = {\n\talt: string;\n\tonLoad: ImageEventHandler;\n\tonError: ImageEventHandler;\n};\ntype UseImage = ( arg0: { mode?: ImageMode } ) => [ ImageMode | undefined, boolean, ImgProps ];\n\nconst useImage: UseImage = ( { mode: initialMode } ) => {\n\tconst [ mode, setMode ] = useState< ImageMode | undefined >( initialMode );\n\tconst [ isLoadingImage, setLoadingImage ] = useState< boolean >( true );\n\n\tconst onLoad = useCallback< ImageEventHandler >(\n\t\t( { target } ) => {\n\t\t\tif ( ! mode ) {\n\t\t\t\tconst image = target as HTMLImageElement;\n\t\t\t\tsetMode( image.naturalWidth > image.naturalHeight ? LANDSCAPE_MODE : PORTRAIT_MODE );\n\t\t\t}\n\t\t\tsetLoadingImage( false );\n\t\t},\n\t\t[ mode ]\n\t);\n\tconst onError = useCallback( () => setLoadingImage( false ), [] );\n\n\treturn [\n\t\tmode,\n\t\tisLoadingImage,\n\t\t{\n\t\t\talt: __( 'Facebook Preview Thumbnail', 'social-previews' ),\n\t\t\tonLoad,\n\t\t\tonError,\n\t\t},\n\t];\n};\n\nexport default useImage;\n","import { __ } from '@wordpress/i18n';\nimport FacebookPostIcon from '../icons';\n\nimport './styles.scss';\n\nconst FacebookPostActions: React.FC = () => (\n\t<ul className=\"facebook-preview__post-actions\">\n\t\t{ [\n\t\t\t{\n\t\t\t\ticon: 'like',\n\t\t\t\t// translators: Facebook \"Like\" action\n\t\t\t\tlabel: __( 'Like', 'social-previews' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'comment',\n\t\t\t\t// translators: Facebook \"Comment\" action\n\t\t\t\tlabel: __( 'Comment', 'social-previews' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'share',\n\t\t\t\t// translators: Facebook \"Share\" action\n\t\t\t\tlabel: __( 'Share', 'social-previews' ),\n\t\t\t},\n\t\t].map( ( { icon, label } ) => (\n\t\t\t<li key={ icon }>\n\t\t\t\t<FacebookPostIcon name={ icon } />\n\t\t\t\t<span>{ label }</span>\n\t\t\t</li>\n\t\t) ) }\n\t</ul>\n);\n\nexport default FacebookPostActions;\n","import './styles.scss';\n\nconst FacebookPostIcon: React.FC< { name: string } > = ( { name } ) => (\n\t<i className={ `facebook-preview__post-icon facebook-preview__post-icon-${ name }` } />\n);\n\nexport default FacebookPostIcon;\n","import { __, _x } from '@wordpress/i18n';\nimport { useCallback, useState } from 'react';\nimport FacebookPostIcon from '../icons';\nimport type { FacebookUser } from '../../types';\n\nimport './styles.scss';\n\nconst defaultAvatar =\n\t'data:image/png;base64,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';\n\ntype Props = {\n\tuser?: FacebookUser;\n\ttimeElapsed?: boolean;\n\thideOptions?: boolean;\n};\n\nconst FacebookPostHeader: React.FC< Props > = ( { user, timeElapsed, hideOptions } ) => {\n\tconst [ avatarSrc, setAvatarSrc ] = useState< string >( user?.avatarUrl || defaultAvatar );\n\tconst onImageError = useCallback( () => {\n\t\tif ( avatarSrc !== defaultAvatar ) {\n\t\t\tsetAvatarSrc( defaultAvatar );\n\t\t}\n\t}, [ avatarSrc ] );\n\n\treturn (\n\t\t<div className=\"facebook-preview__post-header\">\n\t\t\t<div className=\"facebook-preview__post-header-content\">\n\t\t\t\t<img\n\t\t\t\t\tclassName=\"facebook-preview__post-header-avatar\"\n\t\t\t\t\tsrc={ avatarSrc }\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tonError={ onImageError }\n\t\t\t\t/>\n\t\t\t\t<div>\n\t\t\t\t\t<div className=\"facebook-preview__post-header-name\">\n\t\t\t\t\t\t{ user?.displayName ||\n\t\t\t\t\t\t\t// translators: name of a fictional Facebook User\n\t\t\t\t\t\t\t__( 'Anonymous User', 'social-previews' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"facebook-preview__post-header-share\">\n\t\t\t\t\t\t<span className=\"facebook-preview__post-header-time\">\n\t\t\t\t\t\t\t{ timeElapsed\n\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t// translators: short version of `1 hour`\n\t\t\t\t\t\t\t\t\t\t'1h',\n\t\t\t\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: _x(\n\t\t\t\t\t\t\t\t\t\t// translators: temporal indication of when a post was published\n\t\t\t\t\t\t\t\t\t\t'Just now',\n\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className=\"facebook-preview__post-header-dot\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t·\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<FacebookPostIcon name=\"public\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ ! hideOptions && <div className=\"facebook-preview__post-header-more\"></div> }\n\t\t</div>\n\t);\n};\n\nexport default FacebookPostHeader;\n","import { PORTRAIT_MODE } from '../constants';\nimport CustomText from './custom-text';\nimport useImage from './hooks/use-image-hook';\nimport FacebookPostActions from './post/actions';\nimport FacebookPostHeader from './post/header';\nimport type { FacebookPreviewProps } from './types';\n\nexport const LinkPreviewDetails: React.FC< FacebookPreviewProps > = ( {\n\turl,\n\tcustomImage,\n\tuser,\n\tcustomText,\n\timageMode,\n} ) => {\n\tconst [ mode, isLoadingImage, imgProps ] = useImage( { mode: imageMode } );\n\tconst modeClass = `is-${ mode === PORTRAIT_MODE ? 'portrait' : 'landscape' }`;\n\n\treturn (\n\t\t<div className=\"facebook-preview__post\">\n\t\t\t<FacebookPostHeader user={ undefined } />\n\t\t\t<div className=\"facebook-preview__content\">\n\t\t\t\t<div\n\t\t\t\t\tclassName={ `facebook-preview__window ${ modeClass } ${\n\t\t\t\t\t\tcustomImage && isLoadingImage ? 'is-loading' : ''\n\t\t\t\t\t}` }\n\t\t\t\t>\n\t\t\t\t\t<div className={ `facebook-preview__custom-image ${ modeClass }` }>\n\t\t\t\t\t\t{ /* eslint-disable jsx-a11y/alt-text */ }\n\t\t\t\t\t\t<img src={ customImage } { ...imgProps } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<FacebookPostHeader user={ user } timeElapsed hideOptions />\n\t\t\t\t\t{ customText && <CustomText text={ customText } url={ url } forceUrlDisplay /> }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<FacebookPostActions />\n\t\t</div>\n\t);\n};\n","import { PORTRAIT_MODE } from '../constants';\nimport CustomText from './custom-text';\nimport useImage from './hooks/use-image-hook';\nimport FacebookPostActions from './post/actions';\nimport FacebookPostHeader from './post/header';\nimport type { FacebookPreviewProps } from './types';\n\nimport './style.scss';\n\nexport const FacebookPostPreview: React.FC< FacebookPreviewProps > = ( {\n\turl,\n\tuser,\n\tcustomText,\n\tmedia,\n\timageMode,\n} ) => {\n\tconst [ mode ] = useImage( { mode: imageMode } );\n\tconst modeClass = `is-${ mode === PORTRAIT_MODE ? 'portrait' : 'landscape' }`;\n\n\treturn (\n\t\t<div className=\"facebook-preview__post\">\n\t\t\t<FacebookPostHeader user={ user } />\n\t\t\t<div className=\"facebook-preview__content\">\n\t\t\t\t{ customText && <CustomText text={ customText } url={ url } forceUrlDisplay /> }\n\t\t\t\t<div className=\"facebook-preview__body\">\n\t\t\t\t\t{ media ? (\n\t\t\t\t\t\t<div className={ `facebook-preview__media ${ modeClass }` }>\n\t\t\t\t\t\t\t{ media.map( ( mediaItem, index ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ `facebook-preview__media-item-${ index }` }\n\t\t\t\t\t\t\t\t\tclassName={ `facebook-preview__media-item ${ modeClass }` }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : null }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<FacebookPostActions />\n\t\t</div>\n\t);\n};\n","import './styles.scss';\n\nconst MastodonPostActions: React.FC = () => (\n\t<div className=\"mastodon-preview__post-actions\">\n\t\t<div>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\twidth=\"24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"M760-200v-160q0-50-35-85t-85-35H273l144 144-57 56-240-240 240-240 57 56-144 144h367q83 0 141.5 58.5T840-360v160h-80Z\"></path>\n\t\t\t</svg>\n\t\t\t \n\t\t\t<span>{ 0 }</span>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\twidth=\"24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"M280-80 120-240l160-160 56 58-62 62h406v-160h80v240H274l62 62-56 58Zm-80-440v-240h486l-62-62 56-58 160 160-160 160-56-58 62-62H280v160h-80Z\"></path>\n\t\t\t</svg>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\twidth=\"24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"m354-287 126-76 126 77-33-144 111-96-146-13-58-136-58 135-146 13 111 97-33 143ZM233-120l65-281L80-590l288-25 112-265 112 265 288 25-218 189 65 281-247-149-247 149Zm247-350Z\"></path>\n\t\t\t</svg>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\twidth=\"24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Zm80-122 200-86 200 86v-518H280v518Zm0-518h400-400Z\"></path>\n\t\t\t</svg>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\theight=\"24\"\n\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\twidth=\"24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"M240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400Z\"></path>\n\t\t\t</svg>\n\t\t</div>\n\t</div>\n);\n\nexport default MastodonPostActions;\n","export const DEFAULT_MASTODON_INSTANCE = 'mastodon.social';\n\nexport const DEFAULT_AVATAR =\n\t'data:image/png;base64,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';\n","import {\n\tfirstValid,\n\thardTruncation,\n\tshortEnough,\n\tstripHtmlTags,\n\tpreparePreviewText,\n\tFormatter,\n} from '../helpers';\nimport { DEFAULT_MASTODON_INSTANCE } from './constants';\nimport { MastodonAddressDetails } from './types';\n\nconst TITLE_LENGTH = 200;\nconst BODY_LENGTH = 500;\nconst URL_LENGTH = 30;\n\nconst ADDRESS_PATTERN = /^@([^@]*)@([^@]*)$/i;\n\nexport const mastodonTitle: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( TITLE_LENGTH ),\n\t\thardTruncation( TITLE_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n\nexport const mastodonBody = ( text: string, options: { offset: number; instance: string } ) => {\n\tconst { instance, offset } = options;\n\n\treturn preparePreviewText( text, {\n\t\tplatform: 'mastodon',\n\t\tmaxChars: BODY_LENGTH - URL_LENGTH - offset,\n\t\thashtagDomain: instance,\n\t} );\n};\n\nexport const mastodonUrl: Formatter = text =>\n\tfirstValid( shortEnough( URL_LENGTH ), hardTruncation( URL_LENGTH ) )( stripHtmlTags( text ) ) ||\n\t'';\n\nexport const getMastodonAddressDetails = ( address: string ): MastodonAddressDetails => {\n\tconst matches = address.match( ADDRESS_PATTERN );\n\n\treturn {\n\t\tusername: matches?.[ 1 ] || '',\n\t\tinstance: matches?.[ 2 ] || DEFAULT_MASTODON_INSTANCE,\n\t};\n};\n","import { stripHtmlTags } from '../../../helpers';\nimport { getMastodonAddressDetails, mastodonBody, mastodonUrl } from '../../helpers';\nimport type { MastodonPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = MastodonPreviewProps & { children?: React.ReactNode };\n\nconst MastonPostBody: React.FC< Props > = props => {\n\tconst { title, description, customText, url, user, children } = props;\n\tconst instance = user?.address ? getMastodonAddressDetails( user.address ).instance : '';\n\tconst options = {\n\t\tinstance,\n\t\toffset: 0,\n\t};\n\n\tlet bodyTxt;\n\n\tif ( customText ) {\n\t\tbodyTxt = <p>{ mastodonBody( customText, options ) }</p>;\n\t} else if ( description ) {\n\t\tif ( title ) {\n\t\t\tconst renderedTitle = stripHtmlTags( title );\n\n\t\t\toptions.offset = renderedTitle.length;\n\n\t\t\tbodyTxt = (\n\t\t\t\t<>\n\t\t\t\t\t<p>{ renderedTitle }</p>\n\t\t\t\t\t<p>{ mastodonBody( description, options ) }</p>\n\t\t\t\t</>\n\t\t\t);\n\t\t} else {\n\t\t\tbodyTxt = <p>{ mastodonBody( description, options ) }</p>;\n\t\t}\n\t} else {\n\t\tbodyTxt = <p>{ mastodonBody( title, options ) }</p>;\n\t}\n\n\treturn (\n\t\t<div className=\"mastodon-preview__body\">\n\t\t\t{ bodyTxt }\n\t\t\t<a href={ url } target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t\t{ mastodonUrl( url.replace( /^https?:\\/\\//, '' ) ) }\n\t\t\t</a>\n\t\t\t{ children }\n\t\t</div>\n\t);\n};\n\nexport default MastonPostBody;\n","import { __ } from '@wordpress/i18n';\nimport clsx from 'clsx';\nimport { baseDomain, getTitleFromDescription, stripHtmlTags } from '../../../helpers';\nimport { mastodonTitle } from '../../helpers';\nimport { MastodonPreviewProps } from '../../types';\n\nimport './styles.scss';\n\nconst MastodonPostCard: React.FC< MastodonPreviewProps > = ( {\n\tsiteName,\n\ttitle,\n\tdescription,\n\turl,\n\timage,\n\tcustomImage,\n} ) => {\n\treturn (\n\t\t<div className={ clsx( 'mastodon-preview__card', { 'has-image': image } ) }>\n\t\t\t<div className=\"mastodon-preview__card-img\">\n\t\t\t\t{ image || customImage ? (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ image || customImage }\n\t\t\t\t\t\talt={ __( 'Mastodon preview thumbnail', 'social-previews' ) }\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"mastodon-preview__card-img--fallback\">\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\theight=\"24\"\n\t\t\t\t\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\t\t\t\t\twidth=\"24\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<path d=\"M320-240h320v-80H320v80Zm0-160h320v-80H320v80ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520h200L520-800v200Z\"></path>\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<div className=\"mastodon-preview__card-text\">\n\t\t\t\t<span className=\"mastodon-preview__card-site\">{ siteName || baseDomain( url ) }</span>\n\t\t\t\t<span className=\"mastodon-preview__card-title\">\n\t\t\t\t\t{ mastodonTitle( title ) || getTitleFromDescription( description ) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"mastodon-preview__card-description\">{ stripHtmlTags( description ) }</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MastodonPostCard;\n","import { __ } from '@wordpress/i18n';\nimport { formatMastodonDate } from '../../../helpers';\nimport { DEFAULT_AVATAR, DEFAULT_MASTODON_INSTANCE } from '../../constants';\nimport { GlobeIcon } from '../icons';\nimport type { MastodonPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = Pick< MastodonPreviewProps, 'user' >;\n\nconst MastodonPostHeader: React.FC< Props > = ( { user } ) => {\n\tconst { displayName, address, avatarUrl } = user || {};\n\n\treturn (\n\t\t<div className=\"mastodon-preview__post-header\">\n\t\t\t<div className=\"mastodon-preview__post-header-user\">\n\t\t\t\t<img className=\"mastodon-preview__post-avatar\" src={ avatarUrl || DEFAULT_AVATAR } alt=\"\" />\n\t\t\t\t<div>\n\t\t\t\t\t<div className=\"mastodon-preview__post-header-displayname\">\n\t\t\t\t\t\t{ displayName ||\n\t\t\t\t\t\t\t// translators: username of a fictional Mastodon User\n\t\t\t\t\t\t\t__( 'anonymous-user', 'social-previews' ) }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"mastodon-preview__post-header-username\">\n\t\t\t\t\t\t{ address?.replace( `@${ DEFAULT_MASTODON_INSTANCE }`, '' ) || '@username' }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"mastodon-preview__post-header-audience\">\n\t\t\t\t<GlobeIcon />\n\t\t\t\t{ formatMastodonDate( new Date() ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default MastodonPostHeader;\n","/**\n * Globe Icon Component\n *\n * @return The Globe SVG icon component.\n */\nexport function GlobeIcon() {\n\treturn (\n\t\t<svg\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\theight=\"15\"\n\t\t\tviewBox=\"0 -960 960 960\"\n\t\t\twidth=\"15\"\n\t\t\trole=\"img\"\n\t\t>\n\t\t\t<path d=\"M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm-40-82v-78q-33 0-56.5-23.5T360-320v-40L168-552q-3 18-5.5 36t-2.5 36q0 121 79.5 212T440-162Zm276-102q20-22 36-47.5t26.5-53q10.5-27.5 16-56.5t5.5-59q0-98-54.5-179T600-776v16q0 33-23.5 56.5T520-680h-80v80q0 17-11.5 28.5T400-560h-80v80h240q17 0 28.5 11.5T600-440v120h40q26 0 47 15.5t29 40.5Z\"></path>\n\t\t</svg>\n\t);\n}\n","import MastodonPostActions from './post/actions';\nimport MastonPostBody from './post/body';\nimport MastodonPostCard from './post/card';\nimport MastodonPostHeader from './post/header';\nimport type { MastodonPreviewProps } from './types';\n\nimport './styles.scss';\n\nexport const MastodonLinkPreview: React.FC< MastodonPreviewProps > = props => {\n\tconst { user } = props;\n\n\treturn (\n\t\t<div className=\"mastodon-preview__post\">\n\t\t\t<MastodonPostHeader user={ user } />\n\t\t\t<MastonPostBody { ...props } />\n\t\t\t<MastodonPostCard { ...props } customImage=\"\" />\n\t\t\t<MastodonPostActions />\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport MastodonPostActions from './post/actions';\nimport MastonPostBody from './post/body';\nimport MastodonPostCard from './post/card';\nimport MastodonPostHeader from './post/header';\nimport type { MastodonPreviewProps } from './types';\n\nimport './styles.scss';\n\nexport const MastodonPostPreview: React.FC< MastodonPreviewProps > = props => {\n\tconst { user, media } = props;\n\n\treturn (\n\t\t<div className=\"mastodon-preview__post\">\n\t\t\t<MastodonPostHeader user={ user } />\n\t\t\t<MastonPostBody { ...props }>\n\t\t\t\t{ media?.length ? (\n\t\t\t\t\t<div className={ clsx( 'mastodon-preview__media', { 'as-grid': media.length > 1 } ) }>\n\t\t\t\t\t\t{ media.map( ( mediaItem, index ) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ `mastodon-preview__media-item-${ index }` }\n\t\t\t\t\t\t\t\tclassName=\"mastodon-preview__media-item\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t) : null }\n\t\t\t</MastonPostBody>\n\t\t\t{ ! media?.length ? <MastodonPostCard { ...props } /> : null }\n\t\t\t<MastodonPostActions />\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { SectionHeading } from '../shared/section-heading';\nimport { SocialPreviewsBaseProps } from '../types';\nimport { MastodonLinkPreview } from './link-preview';\nimport { MastodonPostPreview } from './post-preview';\nimport { MastodonPreviewProps } from './types';\n\nexport type MastodonPreviewsProps = MastodonPreviewProps & SocialPreviewsBaseProps;\n\nexport const MastodonPreviews: React.FC< MastodonPreviewsProps > = ( {\n\theadingLevel,\n\thidePostPreview,\n\thideLinkPreview,\n\t...props\n} ) => {\n\treturn (\n\t\t<div className=\"social-preview mastodon-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section mastodon-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Mastodon\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Mastodon:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<MastodonPostPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section mastodon-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Mastodon post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Mastodon.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<MastodonLinkPreview { ...props } user={ undefined } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport clsx from 'clsx';\nimport {\n\tbaseDomain,\n\tformatNextdoorDate,\n\tgetTitleFromDescription,\n\tpreparePreviewText,\n} from '../helpers';\nimport { FEED_TEXT_MAX_LENGTH } from './constants';\nimport { FooterActions } from './footer-actions';\nimport { ChevronIcon } from './icons/chevron-icon';\nimport { DefaultAvatar } from './icons/default-avatar';\nimport { DefaultImage } from './icons/default-image';\nimport { GlobeIcon } from './icons/globe-icon';\nimport { NextdoorPreviewProps } from './types';\n\nimport './style.scss';\n\n/**\n * Nextdoor Post Preview Component.\n *\n * @param {NextdoorPreviewProps} props - The preview properties.\n * @return The Nextdoor post preview component.\n */\nexport function NextdoorPostPreview( {\n\timage,\n\tname,\n\tprofileImage,\n\tdescription,\n\tneighborhood,\n\tmedia,\n\ttitle,\n\turl,\n}: NextdoorPreviewProps ) {\n\tconst hasMedia = !! media?.length;\n\n\treturn (\n\t\t<div className=\"nextdoor-preview__wrapper\">\n\t\t\t<section className={ `nextdoor-preview__container ${ hasMedia ? 'has-media' : '' }` }>\n\t\t\t\t<div className=\"nextdoor-preview__content\">\n\t\t\t\t\t<div className=\"nextdoor-preview__header\">\n\t\t\t\t\t\t<div className=\"nextdoor-preview__header--avatar\">\n\t\t\t\t\t\t\t{ profileImage ? <img src={ profileImage } alt=\"\" /> : <DefaultAvatar /> }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"nextdoor-preview__header--details\">\n\t\t\t\t\t\t\t<div className=\"nextdoor-preview__header--name\">\n\t\t\t\t\t\t\t\t{ name || __( 'Account Name', 'social-previews' ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"nextdoor-preview__header--meta\">\n\t\t\t\t\t\t\t\t<span>{ neighborhood || __( 'Neighborhood', 'social-previews' ) }</span>\n\t\t\t\t\t\t\t\t<span>•</span>\n\t\t\t\t\t\t\t\t<span>{ formatNextdoorDate( Date.now() ) }</span>\n\t\t\t\t\t\t\t\t<span>•</span>\n\t\t\t\t\t\t\t\t{ /* This is the Globe SVG that represents visibility to be \"public\" */ }\n\t\t\t\t\t\t\t\t<GlobeIcon />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"nextdoor-preview__body\">\n\t\t\t\t\t\t{ description ? (\n\t\t\t\t\t\t\t<div className=\"nextdoor-preview__caption\">\n\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t{ preparePreviewText( description, {\n\t\t\t\t\t\t\t\t\t\tplatform: 'nextdoor',\n\t\t\t\t\t\t\t\t\t\tmaxChars: FEED_TEXT_MAX_LENGTH,\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t{ ! hasMedia && url && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t<a href={ url } rel=\"nofollow noopener noreferrer\" target=\"_blank\">\n\t\t\t\t\t\t\t\t\t\t\t{ url }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t{ hasMedia ? (\n\t\t\t\t\t\t\t<div className=\"nextdoor-preview__media\">\n\t\t\t\t\t\t\t\t{ media.map( ( mediaItem, index ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tkey={ `nextdoor-preview__media-item-${ index }` }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"nextdoor-preview__media-item\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ mediaItem?.type?.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null }\n\n\t\t\t\t\t\t<article\n\t\t\t\t\t\t\tclassName={ clsx( 'nextdoor-preview__card', {\n\t\t\t\t\t\t\t\t'small-preview': ! image || hasMedia,\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ image ? (\n\t\t\t\t\t\t\t\t<img className=\"nextdoor-preview__image\" src={ image } alt=\"\" />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<DefaultImage />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ url ? (\n\t\t\t\t\t\t\t\t<div className=\"nextdoor-preview__description\">\n\t\t\t\t\t\t\t\t\t<h2 className=\"nextdoor-preview__description--title\">\n\t\t\t\t\t\t\t\t\t\t{ title || getTitleFromDescription( description ) }\n\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t<span className=\"nextdoor-preview__description--url\">{ baseDomain( url ) }</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t{ hasMedia ? (\n\t\t\t\t\t\t\t\t<div className=\"nextdoor-preview__card--chevron-wrapper\">\n\t\t\t\t\t\t\t\t\t<ChevronIcon />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t</article>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"nextdoor-preview__footer\">\n\t\t\t\t\t\t<FooterActions />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\t);\n}\n","export const FEED_TEXT_MAX_LENGTH = 500;\n","import { __ } from '@wordpress/i18n';\nimport { CommentIcon } from './icons/comment-icon';\nimport { LikeIcon } from './icons/like-icon';\nimport { ShareIcon } from './icons/share-icon';\n\n/**\n * Footer Actions Component\n *\n * @return The Nextdoor footer actions component.\n */\nexport function FooterActions() {\n\treturn (\n\t\t<div className=\"nextdoor-preview__footer--actions\">\n\t\t\t<div className=\"nextdoor-preview__footer--actions-item\">\n\t\t\t\t<LikeIcon />\n\t\t\t\t<span>{ __( 'Like', 'social-previews' ) }</span>\n\t\t\t</div>\n\t\t\t<div className=\"nextdoor-preview__footer--actions-item\">\n\t\t\t\t<CommentIcon />\n\t\t\t\t<span>{ __( 'Comment', 'social-previews' ) }</span>\n\t\t\t</div>\n\t\t\t<div className=\"nextdoor-preview__footer--actions-item\">\n\t\t\t\t<ShareIcon />\n\t\t\t\t<span>{ __( 'Share', 'social-previews' ) }</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","/**\n * Comment Icon Component\n *\n * @return The Comment SVG icon component.\n */\nexport function CommentIcon() {\n\treturn (\n\t\t<svg width=\"20\" height=\"20\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M2 10.031C2 5.596 5.574 2 10 2h4c4.427 0 8 3.596 8 8.031 0 4.435-3.573 8.031-8 8.031h-1.52a17.033 17.033 0 0 1-1.377 1.467c-.991.938-2.456 2.079-4.086 2.437a1.403 1.403 0 0 1-1.458-.565 1.55 1.55 0 0 1-.195-1.394c.28-.823.395-1.734.434-2.464.014-.257.018-.485.018-.672A8.017 8.017 0 0 1 2 10.031Zm5.798 6.178a7.02 7.02 0 0 1 .016.418c.005.252.004.606-.019 1.023-.03.573-.103 1.285-.266 2.024.775-.377 1.54-.974 2.202-1.598a15.066 15.066 0 0 0 1.448-1.586l.017-.022.003-.004a1 1 0 0 1 .801-.402h2c3.314 0 6-2.692 6-6.03C20 6.691 17.314 4 14 4h-4c-3.314 0-6 2.692-6 6.031 0 2.336 1.32 4.36 3.258 5.359.308.159.515.474.54.82Z\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n}\n","/**\n * Like Icon component.\n *\n * @return Like Icon component.\n */\nexport function LikeIcon() {\n\treturn (\n\t\t<svg width=\"20\" height=\"20\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M13.275 8.752a1.5 1.5 0 0 1-2.55 0C9.75 7.18 8.719 5.617 6.565 6.074 5.248 6.352 4 7.433 4 9.644c0 2.153 1.348 4.592 4.259 7.236A28.475 28.475 0 0 0 12 19.74a28.475 28.475 0 0 0 3.741-2.86C18.651 14.236 20 11.797 20 9.643c0-2.21-1.25-3.29-2.564-3.57-2.155-.456-3.187 1.106-4.16 2.68Zm-2.581-3.48C7.634 2.58 2 4.217 2 9.643c0 2.996 1.85 5.934 4.914 8.717 1.478 1.343 3.1 2.585 4.839 3.575a.5.5 0 0 0 .494 0c1.739-.99 3.361-2.232 4.84-3.575C20.148 15.577 22 12.64 22 9.643c0-5.426-5.634-7.062-8.694-4.371A5.287 5.287 0 0 0 12 7.04a5.287 5.287 0 0 0-1.306-1.77Z\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n}\n","/**\n * Share Icon Component\n *\n * @return The Share SVG icon component.\n */\nexport function ShareIcon() {\n\treturn (\n\t\t<svg width=\"20\" height=\"20\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M11.617 2.076a1 1 0 0 1 1.09.217l9 9a1 1 0 0 1 0 1.414l-9 9A1 1 0 0 1 11 21v-4.436c-2.849.366-5.261 2.271-6.384 4.837a1 1 0 0 1-1.856-.06C2.338 20.182 2 18.86 2 17.5a9.959 9.959 0 0 1 9-9.951V3a1 1 0 0 1 .617-.924ZM13 5.414V8.5a1 1 0 0 1-1 1c-4.448 0-8 3.552-8 8 0 .31.023.625.066.94C5.905 16.067 8.776 14.5 12 14.5a1 1 0 0 1 1 1v3.086L19.586 12 13 5.414Z\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n}\n","/**\n * Chevron Icon Component\n *\n * @return The Chevron SVG icon component.\n */\nexport function ChevronIcon() {\n\treturn (\n\t\t<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n\t\t\t<path\n\t\t\t\tfill=\"#dfe1e4\"\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M7.127 13.876a.732.732 0 1 0 1.035 1.035l4.75-4.749a.732.732 0 0 0 0-1.035L8.123 4.34A.732.732 0 0 0 7.09 5.375l4.27 4.27-4.232 4.23Z\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n}\n","export const DefaultAvatar: React.FC = () => {\n\treturn <div className=\"nextdoor-preview__default-avatar\">A</div>;\n};\n","/**\n * Default Image Icon Component\n *\n * @return The Default Image SVG icon component.\n */\nexport function DefaultImage() {\n\treturn (\n\t\t<div className=\"nextdoor-preview__default-image\">\n\t\t\t<svg\n\t\t\t\twidth=\"24\"\n\t\t\t\theight=\"24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\tcolor=\"#055c00\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\td=\"M13.207 5.207c1.51-1.51 4.076-1.51 5.586 0 1.51 1.51 1.51 4.076 0 5.586l-2.1 2.1c-1.51 1.51-4.077 1.51-5.586 0a1 1 0 1 0-1.414 1.414c2.29 2.29 6.123 2.29 8.414 0l2.1-2.1c2.29-2.29 2.29-6.124 0-8.414s-6.124-2.29-8.414 0l-.7.7a1 1 0 0 0 1.414 1.414l.7-.7Z\"\n\t\t\t\t></path>\n\t\t\t\t<path\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\td=\"M7.307 11.107c1.51-1.51 4.076-1.51 5.586 0a1 1 0 0 0 1.414-1.414c-2.29-2.29-6.124-2.29-8.414 0l-2.1 2.1c-2.29 2.29-2.29 6.123 0 8.414 2.29 2.29 6.124 2.29 8.414 0l.7-.7a1 1 0 0 0-1.414-1.414l-.7.7c-1.51 1.51-4.076 1.51-5.586 0-1.51-1.51-1.51-4.076 0-5.586l2.1-2.1Z\"\n\t\t\t\t></path>\n\t\t\t</svg>\n\t\t</div>\n\t);\n}\n","/**\n * Globe Icon Component\n *\n * @return The Globe SVG icon component.\n */\nexport function GlobeIcon() {\n\treturn (\n\t\t<svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n\t\t\t<path\n\t\t\t\tfill=\"currentColor\"\n\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\td=\"M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12Zm9.495-7.643c.286-.335.46-.357.505-.357.045 0 .219.022.505.357.282.33.581.868.852 1.619.464 1.283.79 3.034.872 5.024H9.771c.082-1.99.408-3.741.871-5.024.272-.751.571-1.289.854-1.62ZM7.77 11c.084-2.181.439-4.171.992-5.704.093-.255.192-.502.298-.738A8.009 8.009 0 0 0 4.062 11h3.707Zm-3.707 2h3.707c.084 2.181.439 4.171.992 5.704.093.255.192.502.298.738A8.009 8.009 0 0 1 4.062 13Zm15.876-2a8.009 8.009 0 0 0-4.997-6.442c.106.236.205.483.298.738.553 1.533.908 3.523.992 5.704h3.707Zm-3.707 2h3.707a8.009 8.009 0 0 1-4.997 6.442c.106-.236.205-.483.298-.738.553-1.533.908-3.523.992-5.704Zm-2.002 0c-.082 1.99-.408 3.741-.871 5.024-.272.751-.571 1.289-.854 1.62-.285.334-.46.356-.504.356-.045 0-.219-.022-.505-.357-.282-.33-.581-.868-.852-1.619-.464-1.283-.79-3.034-.872-5.024h4.458Z\"\n\t\t\t\tclipRule=\"evenodd\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n}\n","import { getTitleFromDescription } from '../helpers';\nimport { NextdoorPostPreview } from './post-preview';\nimport { NextdoorPreviewProps } from './types';\n\ntype OptionalProps = Partial< Pick< NextdoorPreviewProps, 'name' | 'profileImage' > >;\n\nexport type NextdoorLinkPreviewProps = Omit< NextdoorPreviewProps, keyof OptionalProps > &\n\tOptionalProps;\n\n/**\n * Nextdoor Link Preview Component\n *\n * @param {NextdoorLinkPreviewProps} props - The props for the Nextdoor link preview.\n *\n * @return The Nextdoor link preview component.\n */\nexport function NextdoorLinkPreview( props: NextdoorLinkPreviewProps ) {\n\treturn (\n\t\t<NextdoorPostPreview\n\t\t\tname=\"\"\n\t\t\tprofileImage=\"\"\n\t\t\t{ ...props }\n\t\t\t// Override the props that are irrelevant to link preview\n\t\t\tdescription=\"\"\n\t\t\tmedia={ undefined }\n\t\t\ttitle={ props.title || getTitleFromDescription( props.description ) }\n\t\t/>\n\t);\n}\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { NextdoorLinkPreview } from './link-preview';\nimport { NextdoorPostPreview } from './post-preview';\nimport type { NextdoorPreviewsProps } from './types';\n\nexport const NextdoorPreviews: React.FC< NextdoorPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\t...props\n} ) => {\n\treturn (\n\t\t<div className=\"social-preview nextdoor-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section nextdoor-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Nextdoor\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Nextdoor:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<NextdoorPostPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section nextdoor-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Nextdoor post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Nextdoor.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<NextdoorLinkPreview { ...props } name=\"\" profileImage=\"\" />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport BlueskyPostActions from './post/actions';\nimport BlueskyPostBody from './post/body';\nimport BlueskyPostCard from './post/card';\nimport BlueskyPostHeader from './post/header';\nimport { BlueskyPostSidebar } from './post/sidebar';\nimport type { BlueskyPreviewProps } from './types';\n\nimport './styles.scss';\n\nexport const BlueskyPostPreview: React.FC< BlueskyPreviewProps > = props => {\n\tconst { user, media, appendUrl } = props;\n\n\treturn (\n\t\t<div className=\"bluesky-preview__post\">\n\t\t\t<BlueskyPostSidebar user={ user } />\n\t\t\t<div>\n\t\t\t\t<BlueskyPostHeader user={ user } />\n\t\t\t\t<BlueskyPostBody { ...props } appendUrl={ appendUrl ?? Boolean( media?.length ) }>\n\t\t\t\t\t{ media?.length ? (\n\t\t\t\t\t\t<div className={ clsx( 'bluesky-preview__media', { 'as-grid': media.length > 1 } ) }>\n\t\t\t\t\t\t\t{ media.map( ( mediaItem, index ) => (\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tkey={ `bluesky-preview__media-item-${ index }` }\n\t\t\t\t\t\t\t\t\tclassName=\"bluesky-preview__media-item\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : null }\n\t\t\t\t</BlueskyPostBody>\n\t\t\t\t{ ! media?.length ? <BlueskyPostCard { ...props } /> : null }\n\t\t\t\t<BlueskyPostActions />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import './styles.scss';\n\nconst BlueskyPostActions: React.FC = () => (\n\t<div className=\"bluesky-preview__post-actions\">\n\t\t<div>\n\t\t\t<svg\n\t\t\t\tfill=\"none\"\n\t\t\t\twidth=\"18\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\theight=\"18\"\n\t\t\t\tstyle={ { color: 'rgb(111, 134, 159)' } }\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfill=\"hsl(211, 20%, 53%)\"\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M2.002 6a3 3 0 0 1 3-3h14a3 3 0 0 1 3 3v10a3 3 0 0 1-3 3H12.28l-4.762 2.858A1 1 0 0 1 6.002 21v-2h-1a3 3 0 0 1-3-3V6Zm3-1a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h2a1 1 0 0 1 1 1v1.234l3.486-2.092a1 1 0 0 1 .514-.142h7a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-14Z\"\n\t\t\t\t></path>\n\t\t\t</svg>\n\t\t\t<span>{ 0 }</span>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\tfill=\"none\"\n\t\t\t\twidth=\"18\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\theight=\"18\"\n\t\t\t\tstyle={ { color: 'rgb(111, 134, 159)' } }\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfill=\"hsl(211, 20%, 53%)\"\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M17.957 2.293a1 1 0 1 0-1.414 1.414L17.836 5H6a3 3 0 0 0-3 3v3a1 1 0 1 0 2 0V8a1 1 0 0 1 1-1h11.836l-1.293 1.293a1 1 0 0 0 1.414 1.414l2.47-2.47a1.75 1.75 0 0 0 0-2.474l-2.47-2.47ZM20 12a1 1 0 0 1 1 1v3a3 3 0 0 1-3 3H6.164l1.293 1.293a1 1 0 1 1-1.414 1.414l-2.47-2.47a1.75 1.75 0 0 1 0-2.474l2.47-2.47a1 1 0 0 1 1.414 1.414L6.164 17H18a1 1 0 0 0 1-1v-3a1 1 0 0 1 1-1Z\"\n\t\t\t\t></path>\n\t\t\t</svg>\n\t\t\t<span>{ 0 }</span>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg\n\t\t\t\tfill=\"none\"\n\t\t\t\twidth=\"18\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\theight=\"18\"\n\t\t\t\tstyle={ { color: 'rgb(111, 134, 159)' } }\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path\n\t\t\t\t\tfill=\"hsl(211, 20%, 53%)\"\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M16.734 5.091c-1.238-.276-2.708.047-4.022 1.38a1 1 0 0 1-1.424 0C9.974 5.137 8.504 4.814 7.266 5.09c-1.263.282-2.379 1.206-2.92 2.556C3.33 10.18 4.252 14.84 12 19.348c7.747-4.508 8.67-9.168 7.654-11.7-.541-1.351-1.657-2.275-2.92-2.557Zm4.777 1.812c1.604 4-.494 9.69-9.022 14.47a1 1 0 0 1-.978 0C2.983 16.592.885 10.902 2.49 6.902c.779-1.942 2.414-3.334 4.342-3.764 1.697-.378 3.552.003 5.169 1.286 1.617-1.283 3.472-1.664 5.17-1.286 1.927.43 3.562 1.822 4.34 3.764Z\"\n\t\t\t\t></path>\n\t\t\t</svg>\n\t\t\t<span>{ 0 }</span>\n\t\t</div>\n\t\t<div>\n\t\t\t<svg fill=\"none\" viewBox=\"0 0 24 24\" width=\"20\" height=\"20\" aria-hidden=\"true\">\n\t\t\t\t<path\n\t\t\t\t\tfill=\"hsl(211, 20%, 53%)\"\n\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\td=\"M2 12a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm16 0a2 2 0 1 1 4 0 2 2 0 0 1-4 0Zm-6-2a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z\"\n\t\t\t\t></path>\n\t\t\t</svg>\n\t\t</div>\n\t</div>\n);\n\nexport default BlueskyPostActions;\n","import {\n\tfirstValid,\n\thardTruncation,\n\tshortEnough,\n\tstripHtmlTags,\n\tpreparePreviewText,\n\tFormatter,\n} from '../helpers';\n\nconst TITLE_LENGTH = 200;\nconst BODY_LENGTH = 300;\nconst URL_LENGTH = 40;\n\nexport const blueskyTitle: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( TITLE_LENGTH ),\n\t\thardTruncation( TITLE_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n\nexport const blueskyBody = ( text: string, options: { offset?: number } = {} ) => {\n\tconst { offset = 0 } = options;\n\n\treturn preparePreviewText( text, {\n\t\tplatform: 'bluesky',\n\t\tmaxChars: BODY_LENGTH - URL_LENGTH - offset,\n\t} );\n};\n\nexport const blueskyUrl: Formatter = text =>\n\tfirstValid( shortEnough( URL_LENGTH ), hardTruncation( URL_LENGTH ) )( stripHtmlTags( text ) ) ||\n\t'';\n","import { blueskyBody, blueskyUrl } from '../../helpers';\nimport type { BlueskyPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = BlueskyPreviewProps & { children?: React.ReactNode };\n\nconst BlueskyPostBody: React.FC< Props > = ( { customText, url, children, appendUrl } ) => {\n\treturn (\n\t\t<div className=\"bluesky-preview__body\">\n\t\t\t{ customText ? (\n\t\t\t\t<>\n\t\t\t\t\t<div>{ blueskyBody( customText ) }</div>\n\t\t\t\t\t{ appendUrl && url ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t<a href={ url } target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t\t\t\t\t\t{ blueskyUrl( url.replace( /^https?:\\/\\//, '' ) ) }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : null }\n\t\t\t\t</>\n\t\t\t) : null }\n\t\t\t{ children }\n\t\t</div>\n\t);\n};\n\nexport default BlueskyPostBody;\n","import { baseDomain, getTitleFromDescription, stripHtmlTags } from '../../../helpers';\nimport { blueskyTitle } from '../../helpers';\nimport { BlueskyPreviewProps } from '../../types';\n\nimport './styles.scss';\n\nconst BlueskyPostCard: React.FC< BlueskyPreviewProps > = ( { title, description, url, image } ) => {\n\treturn (\n\t\t<div className=\"bluesky-preview__card\">\n\t\t\t{ image ? (\n\t\t\t\t<div className=\"bluesky-preview__card-image\">\n\t\t\t\t\t<img src={ image } alt=\"\" />\n\t\t\t\t</div>\n\t\t\t) : null }\n\t\t\t<div className=\"bluesky-preview__card-text\">\n\t\t\t\t<div className=\"bluesky-preview__card-site\">{ baseDomain( url ) }</div>\n\t\t\t\t<div className=\"bluesky-preview__card-title\">\n\t\t\t\t\t{ blueskyTitle( title ) || getTitleFromDescription( description ) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"bluesky-preview__card-description\">{ stripHtmlTags( description ) }</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default BlueskyPostCard;\n","import { __, _x } from '@wordpress/i18n';\nimport type { BlueskyPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = Pick< BlueskyPreviewProps, 'user' >;\n\nconst BlueskyPostHeader: React.FC< Props > = ( { user } ) => {\n\tconst { displayName, address } = user || {};\n\n\tlet handle = address || 'username.bsky.social';\n\t// Ensure that the handle starts with the '@' symbol.\n\tif ( ! handle.startsWith( '@' ) ) {\n\t\thandle = '@' + handle;\n\t}\n\n\treturn (\n\t\t<div className=\"bluesky-preview__post-header\">\n\t\t\t<div className=\"bluesky-preview__post-header-user\">\n\t\t\t\t<span className=\"bluesky-preview__post-header--displayname\">\n\t\t\t\t\t{ displayName || __( 'Account name', 'social-previews' ) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"bluesky-preview__post-header--username\">{ handle }</span>\n\t\t\t</div>\n\t\t\t<div className=\"bluesky-preview__post-header--separator\">·</div>\n\t\t\t<div className=\"bluesky-preview__post-header--date\">\n\t\t\t\t{ _x(\n\t\t\t\t\t'1h',\n\t\t\t\t\t'refers to the time since the post was published, e.g. \"1h\"',\n\t\t\t\t\t'social-previews'\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default BlueskyPostHeader;\n","import type { BlueskyPreviewProps } from '../../types';\n\nimport './styles.scss';\n\ntype Props = Pick< BlueskyPreviewProps, 'user' >;\n\nexport const BlueskyPostSidebar: React.FC< Props > = ( { user } ) => {\n\tconst { avatarUrl } = user || {};\n\n\treturn (\n\t\t<div className=\"bluesky-preview__post-sidebar\">\n\t\t\t<div className=\"bluesky-preview__post-sidebar-user\">\n\t\t\t\t{ avatarUrl ? (\n\t\t\t\t\t<img className=\"bluesky-preview__post-avatar\" src={ avatarUrl } alt=\"\" />\n\t\t\t\t) : (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"bluesky-preview__post-avatar\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tstroke=\"none\"\n\t\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<circle cx=\"12\" cy=\"12\" r=\"12\" fill=\"#0070ff\"></circle>\n\t\t\t\t\t\t<circle cx=\"12\" cy=\"9.5\" r=\"3.5\" fill=\"#fff\"></circle>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\tfill=\"#fff\"\n\t\t\t\t\t\t\td=\"M 12.058 22.784 C 9.422 22.784 7.007 21.836 5.137 20.262 C 5.667 17.988 8.534 16.25 11.99 16.25 C 15.494 16.25 18.391 18.036 18.864 20.357 C 17.01 21.874 14.64 22.784 12.058 22.784 Z\"\n\t\t\t\t\t\t></path>\n\t\t\t\t\t</svg>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { BlueskyPostPreview } from './post-preview';\nimport type { BlueskyPreviewProps } from './types';\n\nexport const BlueskyLinkPreview: React.FC< BlueskyPreviewProps > = props => {\n\treturn <BlueskyPostPreview { ...props } user={ undefined } media={ undefined } customText=\"\" />;\n};\n","import { __ } from '@wordpress/i18n';\nimport { SectionHeading } from '../shared/section-heading';\nimport { SocialPreviewsBaseProps } from '../types';\nimport { BlueskyLinkPreview } from './link-preview';\nimport { BlueskyPostPreview } from './post-preview';\nimport { BlueskyPreviewProps } from './types';\n\nexport type BlueskyPreviewsProps = BlueskyPreviewProps & SocialPreviewsBaseProps;\n\nexport const BlueskyPreviews: React.FC< BlueskyPreviewsProps > = ( {\n\theadingLevel,\n\thidePostPreview,\n\thideLinkPreview,\n\t...props\n} ) => {\n\treturn (\n\t\t<div className=\"social-preview bluesky-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section bluesky-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Bluesky\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Bluesky:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<BlueskyPostPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview && (\n\t\t\t\t<section className=\"social-preview__section bluesky-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Bluesky post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Bluesky.',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<BlueskyLinkPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport { baseDomain } from '../helpers';\nimport { threadsTitle } from './helpers';\nimport { ThreadsCardProps } from './types';\n\nexport const Card: React.FC< ThreadsCardProps > = ( { image, title, url } ) => {\n\tconst cardClassNames = clsx( {\n\t\t'threads-preview__card-has-image': !! image,\n\t} );\n\n\treturn (\n\t\t<div className=\"threads-preview__card\">\n\t\t\t<div className={ cardClassNames }>\n\t\t\t\t{ image && <img className=\"threads-preview__card-image\" src={ image } alt=\"\" /> }\n\t\t\t\t<div className=\"threads-preview__card-body\">\n\t\t\t\t\t<div className=\"threads-preview__card-url\">{ baseDomain( url || '' ) }</div>\n\t\t\t\t\t<div className=\"threads-preview__card-title\">{ threadsTitle( title ) }</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { firstValid, hardTruncation, shortEnough, stripHtmlTags, Formatter } from '../helpers';\n\nconst TITLE_LENGTH = 120;\n\nexport const CAPTION_MAX_CHARS = 500;\n\nexport const threadsTitle: Formatter = text =>\n\tfirstValid(\n\t\tshortEnough( TITLE_LENGTH ),\n\t\thardTruncation( TITLE_LENGTH )\n\t)( stripHtmlTags( text ) ) || '';\n","export const Footer: React.FC = () => {\n\treturn (\n\t\t<div className=\"threads-preview__footer\">\n\t\t\t<span className=\"threads-preview__icon--like\">\n\t\t\t\t<svg role=\"img\" viewBox=\"0 0 18 18\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M1.34375 7.53125L1.34375 7.54043C1.34374 8.04211 1.34372 8.76295 1.6611 9.65585C1.9795 10.5516 2.60026 11.5779 3.77681 12.7544C5.59273 14.5704 7.58105 16.0215 8.33387 16.5497C8.73525 16.8313 9.26573 16.8313 9.66705 16.5496C10.4197 16.0213 12.4074 14.5703 14.2232 12.7544C15.3997 11.5779 16.0205 10.5516 16.3389 9.65585C16.6563 8.76296 16.6563 8.04211 16.6562 7.54043V7.53125C16.6562 5.23466 15.0849 3.25 12.6562 3.25C11.5214 3.25 10.6433 3.78244 9.99228 4.45476C9.59009 4.87012 9.26356 5.3491 9 5.81533C8.73645 5.3491 8.40991 4.87012 8.00772 4.45476C7.35672 3.78244 6.47861 3.25 5.34375 3.25C2.9151 3.25 1.34375 5.23466 1.34375 7.53125Z\"\n\t\t\t\t\t\tstrokeWidth=\"1.25\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"threads-preview__icon--reply\">\n\t\t\t\t<svg role=\"img\" viewBox=\"0 0 18 18\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M15.376 13.2177L16.2861 16.7955L12.7106 15.8848C12.6781 15.8848 12.6131 15.8848 12.5806 15.8848C11.3779 16.5678 9.94767 16.8931 8.41995 16.7955C4.94194 16.5353 2.08152 13.7381 1.72397 10.2578C1.2689 5.63919 5.13697 1.76863 9.75264 2.22399C13.2307 2.58177 16.0261 5.41151 16.2861 8.92429C16.4161 10.453 16.0586 11.8841 15.376 13.0876C15.376 13.1526 15.376 13.1852 15.376 13.2177Z\"\n\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\tstrokeWidth=\"1.25\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"threads-preview__icon--repost\">\n\t\t\t\t<svg role=\"img\" viewBox=\"0 0 18 18\">\n\t\t\t\t\t<path d=\"M6.41256 1.23531C6.6349 0.971277 7.02918 0.937481 7.29321 1.15982L9.96509 3.40982C10.1022 3.52528 10.1831 3.69404 10.1873 3.87324C10.1915 4.05243 10.1186 4.2248 9.98706 4.34656L7.31518 6.81971C7.06186 7.05419 6.66643 7.03892 6.43196 6.7856C6.19748 6.53228 6.21275 6.13685 6.46607 5.90237L7.9672 4.51289H5.20312C3.68434 4.51289 2.45312 5.74411 2.45312 7.26289V9.51289V11.7629C2.45312 13.2817 3.68434 14.5129 5.20312 14.5129C5.5483 14.5129 5.82812 14.7927 5.82812 15.1379C5.82812 15.4831 5.5483 15.7629 5.20312 15.7629C2.99399 15.7629 1.20312 13.972 1.20312 11.7629V9.51289V7.26289C1.20312 5.05375 2.99399 3.26289 5.20312 3.26289H7.85002L6.48804 2.11596C6.22401 1.89362 6.19021 1.49934 6.41256 1.23531Z\"></path>\n\t\t\t\t\t<path d=\"M11.5874 17.7904C11.3651 18.0545 10.9708 18.0883 10.7068 17.8659L8.03491 15.6159C7.89781 15.5005 7.81687 15.3317 7.81267 15.1525C7.80847 14.9733 7.8814 14.801 8.01294 14.6792L10.6848 12.206C10.9381 11.9716 11.3336 11.9868 11.568 12.2402C11.8025 12.4935 11.7872 12.8889 11.5339 13.1234L10.0328 14.5129H12.7969C14.3157 14.5129 15.5469 13.2816 15.5469 11.7629V9.51286V7.26286C15.5469 5.74408 14.3157 4.51286 12.7969 4.51286C12.4517 4.51286 12.1719 4.23304 12.1719 3.88786C12.1719 3.54269 12.4517 3.26286 12.7969 3.26286C15.006 3.26286 16.7969 5.05373 16.7969 7.26286V9.51286V11.7629C16.7969 13.972 15.006 15.7629 12.7969 15.7629H10.15L11.512 16.9098C11.776 17.1321 11.8098 17.5264 11.5874 17.7904Z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t\t<span className=\"threads-preview__icon--share\">\n\t\t\t\t<svg role=\"img\" viewBox=\"0 0 18 18\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M15.6097 4.09082L6.65039 9.11104\"\n\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\tstrokeWidth=\"1.25\"\n\t\t\t\t\t></path>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M7.79128 14.439C8.00463 15.3275 8.11131 15.7718 8.33426 15.932C8.52764 16.071 8.77617 16.1081 9.00173 16.0318C9.26179 15.9438 9.49373 15.5501 9.95761 14.7628L15.5444 5.2809C15.8883 4.69727 16.0603 4.40546 16.0365 4.16566C16.0159 3.95653 15.9071 3.76612 15.7374 3.64215C15.5428 3.5 15.2041 3.5 14.5267 3.5H3.71404C2.81451 3.5 2.36474 3.5 2.15744 3.67754C1.97758 3.83158 1.88253 4.06254 1.90186 4.29856C1.92415 4.57059 2.24363 4.88716 2.88259 5.52032L6.11593 8.7243C6.26394 8.87097 6.33795 8.94431 6.39784 9.02755C6.451 9.10144 6.4958 9.18101 6.53142 9.26479C6.57153 9.35916 6.59586 9.46047 6.64451 9.66309L7.79128 14.439Z\"\n\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\tstrokeWidth=\"1.25\"\n\t\t\t\t\t></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { formatThreadsDate } from '../helpers';\nimport { HeaderProps } from './types';\n\nexport const Header: React.FC< HeaderProps > = ( { name, date } ) => {\n\tconst postDate = date || new Date();\n\n\treturn (\n\t\t<div className=\"threads-preview__header\">\n\t\t\t<span className=\"threads-preview__name\">\n\t\t\t\t{ name || __( 'Account Name', 'social-previews' ) }\n\t\t\t</span>\n\t\t\t<time className=\"threads-preview__date\" dateTime={ postDate.toISOString() }>\n\t\t\t\t{ formatThreadsDate( postDate ) }\n\t\t\t</time>\n\t\t</div>\n\t);\n};\n","import clsx from 'clsx';\nimport { Fragment } from 'react';\nimport { MediaProps } from './types';\n\nexport const Media: React.FC< MediaProps > = ( { media } ) => {\n\t// Ensure we're only trying to show valid media, and the correct quantity.\n\tconst filteredMedia = media\n\t\t// Only image/ and video/ mime types are supported.\n\t\t.filter(\n\t\t\tmediaItem => mediaItem.type.startsWith( 'image/' ) || mediaItem.type.startsWith( 'video/' )\n\t\t)\n\t\t.filter( ( mediaItem, idx, array ) => {\n\t\t\t// We'll always keep the first item.\n\t\t\tif ( 0 === idx ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// If the first item was a video or GIF, discard all subsequent items.\n\t\t\tif ( array[ 0 ].type.startsWith( 'video/' ) || 'image/gif' === array[ 0 ].type ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// The first item wasn't a video or GIF, so discard all subsequent videos and GIFs.\n\t\t\tif ( mediaItem.type.startsWith( 'video/' ) || 'image/gif' === mediaItem.type ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t} )\n\t\t// We only want the first four items of the array, at most.\n\t\t.slice( 0, 4 );\n\n\tif ( 0 === filteredMedia.length ) {\n\t\treturn null;\n\t}\n\n\tconst isVideo = filteredMedia[ 0 ].type.startsWith( 'video/' );\n\n\tconst mediaClasses = clsx( [\n\t\t'threads-preview__media',\n\t\t'threads-preview__media-children-' + filteredMedia.length,\n\t] );\n\n\treturn (\n\t\t<div className={ mediaClasses }>\n\t\t\t{ filteredMedia.map( ( mediaItem, index ) => (\n\t\t\t\t<Fragment key={ `threads-preview__media-item-${ index }` }>\n\t\t\t\t\t{ isVideo ? (\n\t\t\t\t\t\t<video controls>\n\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t</video>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<img alt={ mediaItem.alt || '' } src={ mediaItem.url } />\n\t\t\t\t\t) }\n\t\t\t\t</Fragment>\n\t\t\t) ) }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { DefaultAvatar } from './icons/default-avatar';\nimport { SidebarProps } from './types';\n\nexport const Sidebar: React.FC< SidebarProps > = ( { profileImage, showThreadConnector } ) => {\n\treturn (\n\t\t<div className=\"threads-preview__sidebar\">\n\t\t\t<div className=\"threads-preview__profile-image\">\n\t\t\t\t{ profileImage ? (\n\t\t\t\t\t<img alt={ __( 'Threads profile image', 'social-previews' ) } src={ profileImage } />\n\t\t\t\t) : (\n\t\t\t\t\t<DefaultAvatar />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ showThreadConnector && <div className=\"threads-preview__connector\" /> }\n\t\t</div>\n\t);\n};\n","export const DefaultAvatar: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"36\"\n\t\t\theight=\"36\"\n\t\t\tviewBox=\"0 0 6.3500001 6.3500001\"\n\t\t\tversion=\"1.1\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t>\n\t\t\t<g>\n\t\t\t\t<g>\n\t\t\t\t\t<circle\n\t\t\t\t\t\tfill=\"#fff\"\n\t\t\t\t\t\tfillOpacity=\"1\"\n\t\t\t\t\t\tstroke=\"#dbdbdb\"\n\t\t\t\t\t\tstrokeWidth=\"0.144331\"\n\t\t\t\t\t\tstrokeOpacity=\"1\"\n\t\t\t\t\t\tstrokeDasharray=\"none\"\n\t\t\t\t\t\tcx=\"3.175\"\n\t\t\t\t\t\tcy=\"3.175\"\n\t\t\t\t\t\tr=\"3.1028347\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\tfill=\"#dbdbdb\"\n\t\t\t\t\t\tfillOpacity=\"1\"\n\t\t\t\t\t\tstroke=\"#dbdbdb\"\n\t\t\t\t\t\tstrokeWidth=\"0.00924637\"\n\t\t\t\t\t\tstrokeOpacity=\"1\"\n\t\t\t\t\t\td=\"m 3.175,0.10128581 c -0.2931267,2e-6 -0.5848453,0.0419523 -0.866097,0.1245402 C 2.0276513,0.30840593 1.7596787,0.43063749 1.5130859,0.58911133 1.1424103,0.82733009 0.82733009,1.1424103 0.58911133,1.5130859 0.43063749,1.7596787 0.30840793,2.0276513 0.22582601,2.308903 0.14323609,2.5901547 0.10128781,2.8818733 0.10128581,3.175 c 5.02e-4,0.1391369 0.0101356,0.2782044 0.0294556,0.4159953 0.01723,0.1151309 0.0411535,0.2291443 0.0713135,0.3415812 0.0045,0.0218 0.009469,0.043412 0.0144694,0.065112 0.03449,0.1203489 0.076152,0.2387347 0.12505697,0.3539836 0.0045,0.01235 0.009253,0.0244 0.0139526,0.03669 0.05201,0.1191279 0.111111,0.235155 0.17776693,0.3467489 0.0038,0.0071 0.008066,0.013651 0.0118856,0.020671 0.0694099,0.1145998 0.14620121,0.2246049 0.22996012,0.3291788 0.0022,0.0029 0.004001,0.00589 0.006201,0.00879 0.0861099,0.1069859 0.17942183,0.208301 0.27905277,0.3028239 0.3233817,-0.5511754 0.8330913,-0.701365 1.065568,-0.697115 h 2.0629232 c 0.5904654,-0.0058 0.9954919,0.5335544 1.1032918,0.6945312 0.0993,-0.09444 0.1921923,-0.1954752 0.2780192,-0.3023071 0.0023,-0.0031 0.00442,-0.0062 0.00672,-0.0093 0.08334,-0.1042929 0.1598386,-0.2139114 0.2289266,-0.3281453 0.004,-0.0073 0.00841,-0.014891 0.012402,-0.022221 0.0663,-0.1112249 0.1254962,-0.2265057 0.1772502,-0.3451986 0.0048,-0.01266 0.00934,-0.025004 0.013953,-0.037724 0.04856,-0.1146958 0.090239,-0.2321796 0.1245402,-0.3519165 0.0053,-0.02288 0.010256,-0.046256 0.014986,-0.069246 0.02971,-0.1111369 0.05321,-0.2236822 0.07028,-0.3374471 0.01929,-0.1376588 0.028946,-0.2764746 0.029456,-0.4154785 0,-0.0503 -0.00112,-0.1006562 -0.00362,-0.1508952 -0.0049,-0.1004917 -0.014695,-0.20073 -0.029455,-0.3002469 C 6.2008813,2.6243448 6.1811701,2.5258685 6.1567301,2.4282756 6.1445102,2.3794856 6.1310225,2.330673 6.1164225,2.282548 6.0286626,1.9932503 5.8988742,1.7184607 5.7309163,1.4670939 5.6750164,1.383444 5.6149083,1.3030201 5.5510824,1.2252482 5.5191724,1.1863682 5.4861603,1.1477995 5.4523804,1.1105265 5.3848104,1.0359766 5.3140214,0.96518559 5.2394735,0.89761963 5.1276256,0.79624473 5.008419,0.70295057 4.8829061,0.61908366 4.7573922,0.53522374 4.6255915,0.46089717 4.4891317,0.39635824 c -0.09095,-0.04302 -0.1838061,-0.0813435 -0.278536,-0.11523845 -0.09473,-0.0339 -0.1912764,-0.0634 -0.2888713,-0.0878499 C 3.7752926,0.15658989 3.6265025,0.13054519 3.4762736,0.11575521 3.3761487,0.10585522 3.2756099,0.10128581 3.175,0.10128581 Z m 0,1.44125569 A 1.4106187,1.4106187 0 0 1 4.5857666,2.9533081 1.4106187,1.4106187 0 0 1 3.175,4.3635579 1.4106187,1.4106187 0 0 1 1.7642334,2.9533081 1.4106187,1.4106187 0 0 1 3.175,1.5425415 Z\"\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t);\n};\n","import { preparePreviewText } from '../helpers';\nimport { Card } from './card';\nimport { Footer } from './footer';\nimport { Header } from './header';\nimport { CAPTION_MAX_CHARS } from './helpers';\nimport { Media } from './media';\nimport { Sidebar } from './sidebar';\nimport { ThreadsPreviewProps } from './types';\n\nimport './style.scss';\n\nexport const ThreadsPostPreview: React.FC< ThreadsPreviewProps > = ( {\n\tcaption,\n\tdate,\n\timage,\n\tmedia,\n\tname,\n\tprofileImage,\n\tshowThreadConnector,\n\ttitle,\n\turl,\n} ) => {\n\tconst hasMedia = !! media?.length;\n\n\tconst displayAsCard = url && image && ! hasMedia;\n\n\treturn (\n\t\t<div className=\"threads-preview__wrapper\">\n\t\t\t<div className=\"threads-preview__container\">\n\t\t\t\t<Sidebar profileImage={ profileImage } showThreadConnector={ showThreadConnector } />\n\t\t\t\t<div className=\"threads-preview__main\">\n\t\t\t\t\t<Header name={ name } date={ date } />\n\t\t\t\t\t<div className=\"threads-preview__content\">\n\t\t\t\t\t\t{ caption ? (\n\t\t\t\t\t\t\t<div className=\"threads-preview__text\">\n\t\t\t\t\t\t\t\t{ preparePreviewText( caption, {\n\t\t\t\t\t\t\t\t\tplatform: 'threads',\n\t\t\t\t\t\t\t\t\tmaxChars: CAPTION_MAX_CHARS,\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t{ hasMedia ? <Media media={ media } /> : null }\n\t\t\t\t\t\t{ displayAsCard ? <Card image={ image } title={ title || '' } url={ url } /> : null }\n\t\t\t\t\t</div>\n\t\t\t\t\t<Footer />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { ThreadsPostPreview } from './post-preview';\nimport { ThreadsPreviewProps } from './types';\n\nexport const ThreadsLinkPreview: React.FC< ThreadsPreviewProps > = props => {\n\treturn (\n\t\t<ThreadsPostPreview\n\t\t\t{ ...props }\n\t\t\t// Override the props that are irrelevant to link preview\n\t\t\tcaption=\"\"\n\t\t\tmedia={ undefined }\n\t\t/>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { ThreadsLinkPreview } from './link-preview';\nimport { ThreadsPostPreview } from './post-preview';\nimport type { ThreadsPreviewsProps } from './types';\n\nexport const ThreadsPreviews: React.FC< ThreadsPreviewsProps > = ( {\n\theadingLevel,\n\thideLinkPreview,\n\thidePostPreview,\n\tposts,\n} ) => {\n\tif ( ! posts?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"social-preview threads-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section threads-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Threads\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __( 'This is what your social post will look like on Threads:', 'social-previews' ) }\n\t\t\t\t\t</p>\n\t\t\t\t\t{ posts.map( ( post, index ) => {\n\t\t\t\t\t\tconst isLast = index + 1 === posts.length;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ThreadsPostPreview\n\t\t\t\t\t\t\t\tkey={ `threads-preview__post-${ index }` }\n\t\t\t\t\t\t\t\t{ ...post }\n\t\t\t\t\t\t\t\tshowThreadConnector={ ! isLast }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</section>\n\t\t\t) }\n\t\t\t{ ! hideLinkPreview ? (\n\t\t\t\t<section className=\"social-preview__section threads-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a link to a Threads post\n\t\t\t\t\t\t\t__( 'Link preview', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t{ posts[ 0 ].image ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'This is what it will look like when someone shares the link to your WordPress post on Threads.',\n\t\t\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<ThreadsLinkPreview { ...posts[ 0 ] } name=\"\" profileImage=\"\" />\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Threads link preview requires an image to be set for the post. Please add an image to see the preview.',\n\t\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t) }\n\t\t\t\t</section>\n\t\t\t) : null }\n\t\t</div>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport { preparePreviewText } from '../helpers';\nimport { FEED_TEXT_MAX_LENGTH } from './constants';\nimport { Bookmark as BookmarkIcon } from './icons/bookmark';\nimport { Comment as CommentIcon } from './icons/comment';\nimport { DefaultAvatar } from './icons/default-avatar';\nimport { Heart as HeartIcon } from './icons/heart';\nimport { Menu as MenuIcon } from './icons/menu';\nimport { Share as ShareIcon } from './icons/share';\nimport { InstagramPreviewProps } from './types';\n\nimport './style.scss';\n\n/**\n * Instagram Post Preview Component\n *\n * @param {InstagramPreviewProps} props - The props for the Instagram post preview.\n *\n * @return The Instagram post preview component.\n */\nexport function InstagramPostPreview( {\n\timage,\n\tmedia,\n\tname,\n\tprofileImage,\n\tcaption,\n\turl,\n}: InstagramPreviewProps ) {\n\tconst username = name || 'username';\n\n\tconst mediaItem = media?.[ 0 ];\n\n\treturn (\n\t\t<div className=\"instagram-preview__wrapper\">\n\t\t\t<section className=\"instagram-preview__container\">\n\t\t\t\t<div className=\"instagram-preview__header\">\n\t\t\t\t\t<div className=\"instagram-preview__header--avatar\">\n\t\t\t\t\t\t{ profileImage ? <img src={ profileImage } alt=\"\" /> : <DefaultAvatar /> }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"instagram-preview__header--profile\">\n\t\t\t\t\t\t<div className=\"instagram-preview__header--profile-name\">{ username }</div>\n\t\t\t\t\t\t<div className=\"instagram-preview__header--profile-menu\">\n\t\t\t\t\t\t\t<MenuIcon />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"instagram-preview__media\">\n\t\t\t\t\t{ mediaItem ? (\n\t\t\t\t\t\t<div className=\"instagram-preview__media-item\">\n\t\t\t\t\t\t\t{ mediaItem.type.startsWith( 'video/' ) ? (\n\t\t\t\t\t\t\t\t<video controls={ false } className=\"instagram-preview__media--video\">\n\t\t\t\t\t\t\t\t\t<source src={ mediaItem.url } type={ mediaItem.type } />\n\t\t\t\t\t\t\t\t</video>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<img className=\"instagram-preview__media--image\" src={ mediaItem.url } alt=\"\" />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<img className=\"instagram-preview__media--image\" src={ image } alt=\"\" />\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"instagram-preview__content\">\n\t\t\t\t\t<section className=\"instagram-preview__content--actions\">\n\t\t\t\t\t\t<div className=\"instagram-preview__content--actions-primary\">\n\t\t\t\t\t\t\t<HeartIcon />\n\t\t\t\t\t\t\t<CommentIcon />\n\t\t\t\t\t\t\t<ShareIcon />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"instagram-preview__content--actions-secondary\">\n\t\t\t\t\t\t\t<BookmarkIcon />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</section>\n\t\t\t\t\t<div className=\"instagram-preview__content--body\">\n\t\t\t\t\t\t<div className=\"instagram-preview__content--name\">{ username }</div>\n\t\t\t\t\t\t \n\t\t\t\t\t\t{ caption ? (\n\t\t\t\t\t\t\t<div className=\"instagram-preview__content--text\">\n\t\t\t\t\t\t\t\t{ preparePreviewText( caption, {\n\t\t\t\t\t\t\t\t\tplatform: 'instagram',\n\t\t\t\t\t\t\t\t\tmaxChars: FEED_TEXT_MAX_LENGTH,\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t{ media && url && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t{ url }\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"instagram-preview__content--footer\">\n\t\t\t\t\t\t<span>{ __( 'View one comment', 'social-previews' ) }</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</section>\n\t\t</div>\n\t);\n}\n","export const FEED_TEXT_MAX_LENGTH = 520;\n","export const Bookmark: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\tcolor=\"rgb(38, 38, 38)\"\n\t\t\tfill=\"rgb(38, 38, 38)\"\n\t\t\theight=\"24\"\n\t\t\trole=\"img\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"24\"\n\t\t>\n\t\t\t<polygon\n\t\t\t\tfill=\"none\"\n\t\t\t\tpoints=\"20 21 12 13.44 4 21 4 3 20 3 20 21\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t></polygon>\n\t\t</svg>\n\t);\n};\n","export const Comment: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\tcolor=\"rgb(38, 38, 38)\"\n\t\t\tfill=\"rgb(38, 38, 38)\"\n\t\t\theight=\"24\"\n\t\t\trole=\"img\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"24\"\n\t\t>\n\t\t\t<path\n\t\t\t\td=\"M20.656 17.008a9.993 9.993 0 1 0-3.59 3.615L22 22Z\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t></path>\n\t\t</svg>\n\t);\n};\n","export const DefaultAvatar: React.FC = () => {\n\treturn (\n\t\t<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 340 340\" width=\"340\" height=\"340\">\n\t\t\t<path\n\t\t\t\tfill=\"#DDD\"\n\t\t\t\td=\"m169,.5a169,169 0 1,0 2,0zm0,86a76,76 0 1 1-2,0zM57,287q27-35 67-35h92q40,0 67,35a164,164 0 0,1-226,0\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\n","export const Heart: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\tcolor=\"rgb(38, 38, 38)\"\n\t\t\tfill=\"rgb(38, 38, 38)\"\n\t\t\theight=\"24\"\n\t\t\trole=\"img\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"24\"\n\t\t>\n\t\t\t<path d=\"M16.792 3.904A4.989 4.989 0 0 1 21.5 9.122c0 3.072-2.652 4.959-5.197 7.222-2.512 2.243-3.865 3.469-4.303 3.752-.477-.309-2.143-1.823-4.303-3.752C5.141 14.072 2.5 12.167 2.5 9.122a4.989 4.989 0 0 1 4.708-5.218 4.21 4.21 0 0 1 3.675 1.941c.84 1.175.98 1.763 1.12 1.763s.278-.588 1.11-1.766a4.17 4.17 0 0 1 3.679-1.938m0-2a6.04 6.04 0 0 0-4.797 2.127 6.052 6.052 0 0 0-4.787-2.127A6.985 6.985 0 0 0 .5 9.122c0 3.61 2.55 5.827 5.015 7.97.283.246.569.494.853.747l1.027.918a44.998 44.998 0 0 0 3.518 3.018 2 2 0 0 0 2.174 0 45.263 45.263 0 0 0 3.626-3.115l.922-.824c.293-.26.59-.519.885-.774 2.334-2.025 4.98-4.32 4.98-7.94a6.985 6.985 0 0 0-6.708-7.218Z\"></path>\n\t\t</svg>\n\t);\n};\n","export const Menu: React.FC = () => {\n\treturn (\n\t\t<svg width=\"17\" height=\"5\" viewBox=\"0 0 17 5\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<path\n\t\t\t\td=\"M2.11865 3.5C2.67094 3.5 3.11865 3.05228 3.11865 2.5C3.11865 1.94772 2.67094 1.5 2.11865 1.5C1.56637 1.5 1.11865 1.94772 1.11865 2.5C1.11865 3.05228 1.56637 3.5 2.11865 3.5Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t\tstroke=\"black\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M8.55933 3.5C9.11161 3.5 9.55933 3.05228 9.55933 2.5C9.55933 1.94772 9.11161 1.5 8.55933 1.5C8.00704 1.5 7.55933 1.94772 7.55933 2.5C7.55933 3.05228 8.00704 3.5 8.55933 3.5Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t\tstroke=\"black\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td=\"M15 3.5C15.5523 3.5 16 3.05228 16 2.5C16 1.94772 15.5523 1.5 15 1.5C14.4477 1.5 14 1.94772 14 2.5C14 3.05228 14.4477 3.5 15 3.5Z\"\n\t\t\t\tfill=\"black\"\n\t\t\t\tstroke=\"black\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t/>\n\t\t</svg>\n\t);\n};\n","export const Share: React.FC = () => {\n\treturn (\n\t\t<svg\n\t\t\tcolor=\"rgb(38, 38, 38)\"\n\t\t\tfill=\"rgb(38, 38, 38)\"\n\t\t\theight=\"24\"\n\t\t\trole=\"img\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\twidth=\"24\"\n\t\t>\n\t\t\t<line\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\tx1=\"22\"\n\t\t\t\tx2=\"9.218\"\n\t\t\t\ty1=\"3\"\n\t\t\t\ty2=\"10.083\"\n\t\t\t></line>\n\t\t\t<polygon\n\t\t\t\tfill=\"none\"\n\t\t\t\tpoints=\"11.698 20.334 22 3.001 2 3.001 9.218 10.084 11.698 20.334\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t></polygon>\n\t\t</svg>\n\t);\n};\n","import { __ } from '@wordpress/i18n';\nimport SectionHeading from '../shared/section-heading';\nimport { InstagramPostPreview } from './post-preview';\nimport type { InstagramPreviewsProps } from './types';\n\nexport const InstagramPreviews: React.FC< InstagramPreviewsProps > = ( {\n\theadingLevel,\n\thidePostPreview,\n\t...props\n} ) => {\n\treturn (\n\t\t<div className=\"social-preview instagram-preview\">\n\t\t\t{ ! hidePostPreview && (\n\t\t\t\t<section className=\"social-preview__section instagram-preview__section\">\n\t\t\t\t\t<SectionHeading level={ headingLevel }>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// translators: refers to a social post on Instagram\n\t\t\t\t\t\t\t__( 'Your post', 'social-previews' )\n\t\t\t\t\t\t}\n\t\t\t\t\t</SectionHeading>\n\t\t\t\t\t<p className=\"social-preview__section-desc\">\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'This is what your social post will look like on Instagram:',\n\t\t\t\t\t\t\t'social-previews'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</p>\n\t\t\t\t\t<InstagramPostPreview { ...props } />\n\t\t\t\t</section>\n\t\t\t) }\n\t\t</div>\n\t);\n};\n"],"mappings":"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","names":["jsx","jsx","jsxs","DESCRIPTION_LENGTH","jsx","jsxs","jsx","jsxs","clsx","jsx","jsx","jsxs","__","jsx","jsxs","jsx","jsxs","__","jsx","jsx","jsxs","jsx","__","jsx","jsx","jsxs","__","__","sprintf","jsx","jsxs","DefaultAvatar","Fragment","jsx","jsxs","DefaultAvatar","__","sprintf","jsx","__","jsx","jsxs","__","__","TITLE_LENGTH","DESCRIPTION_LENGTH","__","jsx","jsxs","jsx","jsxs","__","__","jsx","jsxs","__","jsx","jsxs","__","__","jsx","jsxs","__","__","jsx","jsxs","__","__","__","TITLE_LENGTH","DESCRIPTION_LENGTH","jsx","jsxs","__","__","__","jsx","icons_default","jsx","jsxs","__","icons_default","actions_default","__","useCallback","useState","jsx","jsxs","useState","useCallback","__","icons_default","header_default","jsx","jsxs","header_default","__","icons_default","actions_default","jsx","jsxs","header_default","actions_default","jsx","jsxs","header_default","actions_default","jsx","jsxs","__","jsx","jsxs","actions_default","TITLE_LENGTH","URL_LENGTH","Fragment","jsx","jsxs","__","clsx","jsx","jsxs","clsx","__","__","jsx","jsx","jsxs","__","header_default","jsx","jsxs","header_default","actions_default","clsx","jsx","jsxs","header_default","clsx","actions_default","__","jsx","jsxs","__","__","clsx","FEED_TEXT_MAX_LENGTH","__","jsx","jsx","jsx","jsx","jsxs","__","jsx","jsx","DefaultAvatar","jsx","jsxs","jsx","GlobeIcon","Fragment","jsx","jsxs","DefaultAvatar","__","GlobeIcon","FEED_TEXT_MAX_LENGTH","clsx","jsx","__","jsx","jsxs","__","clsx","jsx","jsxs","actions_default","TITLE_LENGTH","BODY_LENGTH","URL_LENGTH","Fragment","jsx","jsxs","body_default","jsx","jsxs","card_default","__","_x","jsx","jsxs","__","_x","header_default","jsx","jsxs","jsx","jsxs","header_default","body_default","clsx","card_default","actions_default","jsx","__","jsx","jsxs","__","clsx","TITLE_LENGTH","jsx","jsxs","Card","clsx","jsx","jsxs","Footer","__","jsx","jsxs","Header","__","clsx","Fragment","jsx","Media","__","jsx","jsxs","DefaultAvatar","jsx","jsxs","Sidebar","__","DefaultAvatar","jsx","jsxs","Sidebar","Header","Media","Card","Footer","jsx","__","Fragment","jsx","jsxs","__","__","FEED_TEXT_MAX_LENGTH","jsx","jsx","jsx","DefaultAvatar","jsx","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","DefaultAvatar","FEED_TEXT_MAX_LENGTH","__","__","jsx","jsxs","__"]}
|