@automattic/social-previews 2.0.1-beta.8 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/cjs/facebook-preview/custom-text.js.map +1 -1
  2. package/dist/cjs/facebook-preview/hooks/use-image-hook.js.map +1 -1
  3. package/dist/cjs/facebook-preview/post/header/index.js.map +1 -1
  4. package/dist/cjs/helpers.js +22 -1
  5. package/dist/cjs/helpers.js.map +1 -1
  6. package/dist/cjs/index.js +1 -0
  7. package/dist/cjs/index.js.map +1 -1
  8. package/dist/cjs/instagram-preview/style.scss +6 -1
  9. package/dist/cjs/linkedin-preview/link-preview.js +2 -1
  10. package/dist/cjs/linkedin-preview/link-preview.js.map +1 -1
  11. package/dist/cjs/linkedin-preview/post-preview.js +1 -1
  12. package/dist/cjs/linkedin-preview/post-preview.js.map +1 -1
  13. package/dist/cjs/mastodon-preview/constants.js +2 -1
  14. package/dist/cjs/mastodon-preview/constants.js.map +1 -1
  15. package/dist/cjs/mastodon-preview/post/actions/index.js +1 -31
  16. package/dist/cjs/mastodon-preview/post/actions/index.js.map +1 -1
  17. package/dist/cjs/mastodon-preview/post/actions/styles.scss +8 -23
  18. package/dist/cjs/mastodon-preview/post/body/index.js +8 -3
  19. package/dist/cjs/mastodon-preview/post/body/index.js.map +1 -1
  20. package/dist/cjs/mastodon-preview/post/card/index.js +4 -2
  21. package/dist/cjs/mastodon-preview/post/card/index.js.map +1 -1
  22. package/dist/cjs/mastodon-preview/post/card/styles.scss +37 -13
  23. package/dist/cjs/mastodon-preview/post/header/index.js +4 -6
  24. package/dist/cjs/mastodon-preview/post/header/index.js.map +1 -1
  25. package/dist/cjs/mastodon-preview/post/icons/index.js +5 -3
  26. package/dist/cjs/mastodon-preview/post/icons/index.js.map +1 -1
  27. package/dist/cjs/mastodon-preview/post-preview.js +6 -4
  28. package/dist/cjs/mastodon-preview/post-preview.js.map +1 -1
  29. package/dist/cjs/mastodon-preview/styles.scss +31 -0
  30. package/dist/cjs/nextdoor-preview/constants.js +6 -0
  31. package/dist/cjs/nextdoor-preview/constants.js.map +1 -0
  32. package/dist/cjs/nextdoor-preview/footer-actions.js +13 -0
  33. package/dist/cjs/nextdoor-preview/footer-actions.js.map +1 -0
  34. package/dist/cjs/nextdoor-preview/icons/chevron-icon.js +9 -0
  35. package/dist/cjs/nextdoor-preview/icons/chevron-icon.js.map +1 -0
  36. package/dist/cjs/nextdoor-preview/icons/comment-icon.js +9 -0
  37. package/dist/cjs/nextdoor-preview/icons/comment-icon.js.map +1 -0
  38. package/dist/cjs/nextdoor-preview/icons/default-avatar.js +9 -0
  39. package/dist/cjs/nextdoor-preview/icons/default-avatar.js.map +1 -0
  40. package/dist/cjs/nextdoor-preview/icons/default-image.js +9 -0
  41. package/dist/cjs/nextdoor-preview/icons/default-image.js.map +1 -0
  42. package/dist/cjs/nextdoor-preview/icons/globe-icon.js +9 -0
  43. package/dist/cjs/nextdoor-preview/icons/globe-icon.js.map +1 -0
  44. package/dist/cjs/nextdoor-preview/icons/like-icon.js +9 -0
  45. package/dist/cjs/nextdoor-preview/icons/like-icon.js.map +1 -0
  46. package/dist/cjs/nextdoor-preview/icons/share-icon.js +9 -0
  47. package/dist/cjs/nextdoor-preview/icons/share-icon.js.map +1 -0
  48. package/dist/cjs/nextdoor-preview/index.js +7 -0
  49. package/dist/cjs/nextdoor-preview/index.js.map +1 -0
  50. package/dist/cjs/nextdoor-preview/link-preview.js +13 -0
  51. package/dist/cjs/nextdoor-preview/link-preview.js.map +1 -0
  52. package/dist/cjs/nextdoor-preview/post-preview.js +31 -0
  53. package/dist/cjs/nextdoor-preview/post-preview.js.map +1 -0
  54. package/dist/cjs/nextdoor-preview/previews.js +19 -0
  55. package/dist/cjs/nextdoor-preview/previews.js.map +1 -0
  56. package/dist/cjs/nextdoor-preview/style.scss +211 -0
  57. package/dist/cjs/nextdoor-preview/types.js +3 -0
  58. package/dist/cjs/nextdoor-preview/types.js.map +1 -0
  59. package/dist/cjs/tumblr-preview/post/icons/index.js.map +1 -1
  60. package/dist/cjs/tumblr-preview/previews.js +2 -1
  61. package/dist/cjs/tumblr-preview/previews.js.map +1 -1
  62. package/dist/cjs/tumblr-preview/variables.scss +0 -1
  63. package/dist/cjs/twitter-preview/card.js +2 -2
  64. package/dist/cjs/twitter-preview/card.js.map +1 -1
  65. package/dist/cjs/twitter-preview/media.js +2 -2
  66. package/dist/cjs/twitter-preview/media.js.map +1 -1
  67. package/dist/cjs/twitter-preview/post-preview.js +1 -1
  68. package/dist/cjs/twitter-preview/post-preview.js.map +1 -1
  69. package/dist/cjs/twitter-preview/previews.js +2 -2
  70. package/dist/cjs/twitter-preview/previews.js.map +1 -1
  71. package/dist/cjs/twitter-preview/quote-tweet.js.map +1 -1
  72. package/dist/cjs/twitter-preview/text.js.map +1 -1
  73. package/dist/esm/facebook-preview/custom-text.js.map +1 -1
  74. package/dist/esm/facebook-preview/hooks/use-image-hook.js.map +1 -1
  75. package/dist/esm/facebook-preview/post/header/index.js.map +1 -1
  76. package/dist/esm/helpers.js +20 -0
  77. package/dist/esm/helpers.js.map +1 -1
  78. package/dist/esm/index.js +1 -0
  79. package/dist/esm/index.js.map +1 -1
  80. package/dist/esm/instagram-preview/style.scss +6 -1
  81. package/dist/esm/linkedin-preview/link-preview.js +2 -1
  82. package/dist/esm/linkedin-preview/link-preview.js.map +1 -1
  83. package/dist/esm/linkedin-preview/post-preview.js +2 -2
  84. package/dist/esm/linkedin-preview/post-preview.js.map +1 -1
  85. package/dist/esm/mastodon-preview/constants.js +1 -0
  86. package/dist/esm/mastodon-preview/constants.js.map +1 -1
  87. package/dist/esm/mastodon-preview/post/actions/index.js +1 -30
  88. package/dist/esm/mastodon-preview/post/actions/index.js.map +1 -1
  89. package/dist/esm/mastodon-preview/post/actions/styles.scss +8 -23
  90. package/dist/esm/mastodon-preview/post/body/index.js +8 -3
  91. package/dist/esm/mastodon-preview/post/body/index.js.map +1 -1
  92. package/dist/esm/mastodon-preview/post/card/index.js +4 -3
  93. package/dist/esm/mastodon-preview/post/card/index.js.map +1 -1
  94. package/dist/esm/mastodon-preview/post/card/styles.scss +37 -13
  95. package/dist/esm/mastodon-preview/post/header/index.js +5 -6
  96. package/dist/esm/mastodon-preview/post/header/index.js.map +1 -1
  97. package/dist/esm/mastodon-preview/post/icons/index.js +3 -3
  98. package/dist/esm/mastodon-preview/post/icons/index.js.map +1 -1
  99. package/dist/esm/mastodon-preview/post-preview.js +6 -4
  100. package/dist/esm/mastodon-preview/post-preview.js.map +1 -1
  101. package/dist/esm/mastodon-preview/styles.scss +31 -0
  102. package/dist/esm/nextdoor-preview/constants.js +3 -0
  103. package/dist/esm/nextdoor-preview/constants.js.map +1 -0
  104. package/dist/esm/nextdoor-preview/footer-actions.js +9 -0
  105. package/dist/esm/nextdoor-preview/footer-actions.js.map +1 -0
  106. package/dist/esm/nextdoor-preview/icons/chevron-icon.js +5 -0
  107. package/dist/esm/nextdoor-preview/icons/chevron-icon.js.map +1 -0
  108. package/dist/esm/nextdoor-preview/icons/comment-icon.js +5 -0
  109. package/dist/esm/nextdoor-preview/icons/comment-icon.js.map +1 -0
  110. package/dist/esm/nextdoor-preview/icons/default-avatar.js +5 -0
  111. package/dist/esm/nextdoor-preview/icons/default-avatar.js.map +1 -0
  112. package/dist/esm/nextdoor-preview/icons/default-image.js +5 -0
  113. package/dist/esm/nextdoor-preview/icons/default-image.js.map +1 -0
  114. package/dist/esm/nextdoor-preview/icons/globe-icon.js +5 -0
  115. package/dist/esm/nextdoor-preview/icons/globe-icon.js.map +1 -0
  116. package/dist/esm/nextdoor-preview/icons/like-icon.js +5 -0
  117. package/dist/esm/nextdoor-preview/icons/like-icon.js.map +1 -0
  118. package/dist/esm/nextdoor-preview/icons/share-icon.js +5 -0
  119. package/dist/esm/nextdoor-preview/icons/share-icon.js.map +1 -0
  120. package/dist/esm/nextdoor-preview/index.js +4 -0
  121. package/dist/esm/nextdoor-preview/index.js.map +1 -0
  122. package/dist/esm/nextdoor-preview/link-preview.js +9 -0
  123. package/dist/esm/nextdoor-preview/link-preview.js.map +1 -0
  124. package/dist/esm/nextdoor-preview/post-preview.js +26 -0
  125. package/dist/esm/nextdoor-preview/post-preview.js.map +1 -0
  126. package/dist/esm/nextdoor-preview/previews.js +14 -0
  127. package/dist/esm/nextdoor-preview/previews.js.map +1 -0
  128. package/dist/esm/nextdoor-preview/style.scss +211 -0
  129. package/dist/esm/nextdoor-preview/types.js +2 -0
  130. package/dist/esm/nextdoor-preview/types.js.map +1 -0
  131. package/dist/esm/tumblr-preview/post/icons/index.js.map +1 -1
  132. package/dist/esm/tumblr-preview/previews.js +2 -1
  133. package/dist/esm/tumblr-preview/previews.js.map +1 -1
  134. package/dist/esm/tumblr-preview/variables.scss +0 -1
  135. package/dist/esm/twitter-preview/card.js +2 -2
  136. package/dist/esm/twitter-preview/card.js.map +1 -1
  137. package/dist/esm/twitter-preview/media.js +2 -2
  138. package/dist/esm/twitter-preview/media.js.map +1 -1
  139. package/dist/esm/twitter-preview/post-preview.js +1 -1
  140. package/dist/esm/twitter-preview/post-preview.js.map +1 -1
  141. package/dist/esm/twitter-preview/previews.js +2 -2
  142. package/dist/esm/twitter-preview/previews.js.map +1 -1
  143. package/dist/esm/twitter-preview/quote-tweet.js.map +1 -1
  144. package/dist/esm/twitter-preview/text.js.map +1 -1
  145. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/dist/types/helpers.d.ts +11 -3
  148. package/dist/types/helpers.d.ts.map +1 -1
  149. package/dist/types/index.d.ts +1 -0
  150. package/dist/types/index.d.ts.map +1 -1
  151. package/dist/types/linkedin-preview/link-preview.d.ts.map +1 -1
  152. package/dist/types/linkedin-preview/post-preview.d.ts.map +1 -1
  153. package/dist/types/mastodon-preview/constants.d.ts +1 -0
  154. package/dist/types/mastodon-preview/constants.d.ts.map +1 -1
  155. package/dist/types/mastodon-preview/post/actions/index.d.ts.map +1 -1
  156. package/dist/types/mastodon-preview/post/body/index.d.ts.map +1 -1
  157. package/dist/types/mastodon-preview/post/card/index.d.ts.map +1 -1
  158. package/dist/types/mastodon-preview/post/header/index.d.ts.map +1 -1
  159. package/dist/types/mastodon-preview/post/icons/index.d.ts +1 -6
  160. package/dist/types/mastodon-preview/post/icons/index.d.ts.map +1 -1
  161. package/dist/types/mastodon-preview/post-preview.d.ts.map +1 -1
  162. package/dist/types/nextdoor-preview/constants.d.ts +3 -0
  163. package/dist/types/nextdoor-preview/constants.d.ts.map +1 -0
  164. package/dist/types/nextdoor-preview/footer-actions.d.ts +2 -0
  165. package/dist/types/nextdoor-preview/footer-actions.d.ts.map +1 -0
  166. package/dist/types/nextdoor-preview/icons/chevron-icon.d.ts +2 -0
  167. package/dist/types/nextdoor-preview/icons/chevron-icon.d.ts.map +1 -0
  168. package/dist/types/nextdoor-preview/icons/comment-icon.d.ts +2 -0
  169. package/dist/types/nextdoor-preview/icons/comment-icon.d.ts.map +1 -0
  170. package/dist/types/nextdoor-preview/icons/default-avatar.d.ts +3 -0
  171. package/dist/types/nextdoor-preview/icons/default-avatar.d.ts.map +1 -0
  172. package/dist/types/nextdoor-preview/icons/default-image.d.ts +2 -0
  173. package/dist/types/nextdoor-preview/icons/default-image.d.ts.map +1 -0
  174. package/dist/types/nextdoor-preview/icons/globe-icon.d.ts +2 -0
  175. package/dist/types/nextdoor-preview/icons/globe-icon.d.ts.map +1 -0
  176. package/dist/types/nextdoor-preview/icons/like-icon.d.ts +2 -0
  177. package/dist/types/nextdoor-preview/icons/like-icon.d.ts.map +1 -0
  178. package/dist/types/nextdoor-preview/icons/share-icon.d.ts +2 -0
  179. package/dist/types/nextdoor-preview/icons/share-icon.d.ts.map +1 -0
  180. package/dist/types/nextdoor-preview/index.d.ts +4 -0
  181. package/dist/types/nextdoor-preview/index.d.ts.map +1 -0
  182. package/dist/types/nextdoor-preview/link-preview.d.ts +6 -0
  183. package/dist/types/nextdoor-preview/link-preview.d.ts.map +1 -0
  184. package/dist/types/nextdoor-preview/post-preview.d.ts +4 -0
  185. package/dist/types/nextdoor-preview/post-preview.d.ts.map +1 -0
  186. package/dist/types/nextdoor-preview/previews.d.ts +4 -0
  187. package/dist/types/nextdoor-preview/previews.d.ts.map +1 -0
  188. package/dist/types/nextdoor-preview/types.d.ts +8 -0
  189. package/dist/types/nextdoor-preview/types.d.ts.map +1 -0
  190. package/dist/types/tumblr-preview/previews.d.ts.map +1 -1
  191. package/package.json +71 -71
  192. package/src/helpers.tsx +26 -3
  193. package/src/index.ts +1 -0
  194. package/src/instagram-preview/style.scss +6 -1
  195. package/src/linkedin-preview/link-preview.tsx +2 -0
  196. package/src/linkedin-preview/post-preview.tsx +4 -2
  197. package/src/mastodon-preview/constants.ts +3 -0
  198. package/src/mastodon-preview/post/actions/index.tsx +57 -42
  199. package/src/mastodon-preview/post/actions/styles.scss +8 -23
  200. package/src/mastodon-preview/post/body/index.tsx +14 -10
  201. package/src/mastodon-preview/post/card/index.tsx +21 -4
  202. package/src/mastodon-preview/post/card/styles.scss +37 -13
  203. package/src/mastodon-preview/post/header/index.tsx +7 -9
  204. package/src/mastodon-preview/post/icons/index.tsx +13 -7
  205. package/src/mastodon-preview/post-preview.tsx +23 -11
  206. package/src/mastodon-preview/styles.scss +31 -0
  207. package/src/nextdoor-preview/constants.ts +2 -0
  208. package/src/nextdoor-preview/footer-actions.tsx +23 -0
  209. package/src/nextdoor-preview/icons/chevron-icon.tsx +11 -0
  210. package/src/nextdoor-preview/icons/comment-icon.tsx +12 -0
  211. package/src/nextdoor-preview/icons/default-avatar.tsx +3 -0
  212. package/src/nextdoor-preview/icons/default-image.tsx +23 -0
  213. package/src/nextdoor-preview/icons/globe-icon.tsx +12 -0
  214. package/src/nextdoor-preview/icons/like-icon.tsx +12 -0
  215. package/src/nextdoor-preview/icons/share-icon.tsx +12 -0
  216. package/src/nextdoor-preview/index.tsx +3 -0
  217. package/src/nextdoor-preview/link-preview.tsx +22 -0
  218. package/src/nextdoor-preview/post-preview.tsx +117 -0
  219. package/src/nextdoor-preview/previews.tsx +53 -0
  220. package/src/nextdoor-preview/style.scss +211 -0
  221. package/src/nextdoor-preview/types.ts +9 -0
  222. package/src/tumblr-preview/previews.tsx +3 -1
  223. package/src/tumblr-preview/variables.scss +0 -1
  224. package/src/twitter-preview/card.tsx +2 -2
  225. package/src/twitter-preview/media.tsx +2 -2
  226. package/src/twitter-preview/post-preview.tsx +3 -3
  227. package/src/twitter-preview/previews.tsx +2 -2
  228. package/CHANGELOG.md +0 -62
  229. package/dist/cjs/mastodon-preview/post/icons/styles.scss +0 -50
  230. package/dist/esm/mastodon-preview/post/icons/styles.scss +0 -50
  231. package/src/mastodon-preview/post/icons/styles.scss +0 -50
@@ -0,0 +1,117 @@
1
+ import { __ } from '@wordpress/i18n';
2
+ import clsx from 'clsx';
3
+ import {
4
+ baseDomain,
5
+ formatNextdoorDate,
6
+ getTitleFromDescription,
7
+ preparePreviewText,
8
+ } from '../helpers';
9
+ import { FEED_TEXT_MAX_LENGTH, FEED_TEXT_MAX_LINES } from './constants';
10
+ import { FooterActions } from './footer-actions';
11
+ import { ChevronIcon } from './icons/chevron-icon';
12
+ import { DefaultAvatar } from './icons/default-avatar';
13
+ import { DefaultImage } from './icons/default-image';
14
+ import { GlobeIcon } from './icons/globe-icon';
15
+ import { NextdoorPreviewProps } from './types';
16
+
17
+ import './style.scss';
18
+
19
+ export function NextdoorPostPreview( {
20
+ image,
21
+ name,
22
+ profileImage,
23
+ description,
24
+ neighborhood,
25
+ media,
26
+ title,
27
+ url,
28
+ }: NextdoorPreviewProps ) {
29
+ const hasMedia = !! media?.length;
30
+
31
+ return (
32
+ <div className="nextdoor-preview__wrapper">
33
+ <section className={ `nextdoor-preview__container ${ hasMedia ? 'has-media' : '' }` }>
34
+ <div className="nextdoor-preview__content">
35
+ <div className="nextdoor-preview__header">
36
+ <div className="nextdoor-preview__header--avatar">
37
+ { profileImage ? <img src={ profileImage } alt="" /> : <DefaultAvatar /> }
38
+ </div>
39
+ <div className="nextdoor-preview__header--details">
40
+ <div className="nextdoor-preview__header--name">
41
+ { name || __( 'Account Name', 'social-previews' ) }
42
+ </div>
43
+ <div className="nextdoor-preview__header--meta">
44
+ <span>{ neighborhood || __( 'Neighborhood', 'social-previews' ) }</span>
45
+ <span>•</span>
46
+ <span>{ formatNextdoorDate( Date.now() ) }</span>
47
+ <span>•</span>
48
+ { /* This is the Globe SVG that represents visibility to be "public" */ }
49
+ <GlobeIcon />
50
+ </div>
51
+ </div>
52
+ </div>
53
+ <div className="nextdoor-preview__body">
54
+ { description ? (
55
+ <div className="nextdoor-preview__caption">
56
+ { preparePreviewText( description, {
57
+ platform: 'nextdoor',
58
+ maxChars: FEED_TEXT_MAX_LENGTH,
59
+ maxLines: FEED_TEXT_MAX_LINES,
60
+ } ) }
61
+ </div>
62
+ ) : null }
63
+ { hasMedia ? (
64
+ <div className="nextdoor-preview__media">
65
+ { media.map( ( mediaItem, index ) => {
66
+ return (
67
+ <div
68
+ key={ `nextdoor-preview__media-item-${ index }` }
69
+ className="nextdoor-preview__media-item"
70
+ >
71
+ { mediaItem?.type?.startsWith( 'video/' ) ? (
72
+ // eslint-disable-next-line jsx-a11y/media-has-caption
73
+ <video controls>
74
+ <source src={ mediaItem.url } type={ mediaItem.type } />
75
+ </video>
76
+ ) : (
77
+ <img alt={ mediaItem.alt || '' } src={ mediaItem.url } />
78
+ ) }
79
+ </div>
80
+ );
81
+ } ) }
82
+ </div>
83
+ ) : null }
84
+
85
+ <article
86
+ className={ clsx( 'nextdoor-preview__card', {
87
+ 'small-preview': ! image || hasMedia,
88
+ } ) }
89
+ >
90
+ { image ? (
91
+ <img className="nextdoor-preview__image" src={ image } alt="" />
92
+ ) : (
93
+ <DefaultImage />
94
+ ) }
95
+ { url ? (
96
+ <div className="nextdoor-preview__description">
97
+ <h2 className="nextdoor-preview__description--title">
98
+ { title || getTitleFromDescription( description ) }
99
+ </h2>
100
+ <span className="nextdoor-preview__description--url">{ baseDomain( url ) }</span>
101
+ </div>
102
+ ) : null }
103
+ { hasMedia ? (
104
+ <div className="nextdoor-preview__card--chevron-wrapper">
105
+ <ChevronIcon />
106
+ </div>
107
+ ) : null }
108
+ </article>
109
+ </div>
110
+ <div className="nextdoor-preview__footer">
111
+ <FooterActions />
112
+ </div>
113
+ </div>
114
+ </section>
115
+ </div>
116
+ );
117
+ }
@@ -0,0 +1,53 @@
1
+ import { ExternalLink } from '@wordpress/components';
2
+ import { __ } from '@wordpress/i18n';
3
+ import SectionHeading from '../shared/section-heading';
4
+ import { NextdoorLinkPreview } from './link-preview';
5
+ import { NextdoorPostPreview } from './post-preview';
6
+ import type { NextdoorPreviewsProps } from './types';
7
+
8
+ export const NextdoorPreviews: React.FC< NextdoorPreviewsProps > = ( {
9
+ headingLevel,
10
+ hideLinkPreview,
11
+ hidePostPreview,
12
+ ...props
13
+ } ) => {
14
+ return (
15
+ <div className="social-preview nextdoor-preview">
16
+ { ! hidePostPreview && (
17
+ <section className="social-preview__section nextdoor-preview__section">
18
+ <SectionHeading level={ headingLevel }>
19
+ {
20
+ // translators: refers to a social post on Nextdoor
21
+ __( 'Your post', 'social-previews' )
22
+ }
23
+ </SectionHeading>
24
+ <p className="social-preview__section-desc">
25
+ { __( 'This is what your social post will look like on Nextdoor:', 'social-previews' ) }
26
+ </p>
27
+ <NextdoorPostPreview { ...props } />
28
+ </section>
29
+ ) }
30
+ { ! hideLinkPreview && (
31
+ <section className="social-preview__section nextdoor-preview__section">
32
+ <SectionHeading level={ headingLevel }>
33
+ {
34
+ // translators: refers to a link to a Nextdoor post
35
+ __( 'Link preview', 'social-previews' )
36
+ }
37
+ </SectionHeading>
38
+ <p className="social-preview__section-desc">
39
+ { __(
40
+ 'This is what it will look like when someone shares the link to your WordPress post on Nextdoor.',
41
+ 'social-previews'
42
+ ) }
43
+ &nbsp;
44
+ <ExternalLink href="https://jetpack.com/support/jetpack-social-image-generator">
45
+ { __( 'Learn more about links', 'social-previews' ) }
46
+ </ExternalLink>
47
+ </p>
48
+ <NextdoorLinkPreview { ...props } name="" profileImage="" />
49
+ </section>
50
+ ) }
51
+ </div>
52
+ );
53
+ };
@@ -0,0 +1,211 @@
1
+ .nextdoor-preview {
2
+ &__wrapper {
3
+ max-width: clamp(200px, 100%, 600px);
4
+ }
5
+
6
+ // When the preview is in a section of all previews
7
+ &__section &__wrapper {
8
+ padding: 0;
9
+ }
10
+
11
+ &__section.social-preview__section {
12
+ width: clamp(200px, 100%, 600px);
13
+ }
14
+
15
+ &__container {
16
+
17
+ box-shadow: rgba(0, 0, 0, 0.1) 0 0 8px;
18
+ /* stylelint-disable-next-line scales/radii */
19
+ border-radius: 8px;
20
+ overflow: hidden;
21
+ background-color: #fff;
22
+
23
+ &.small-preview {
24
+ // When the preview has media, we want to hide the border radius on the bottom
25
+ border-end-end-radius: 0;
26
+ border-end-start-radius: 0;
27
+ }
28
+ }
29
+
30
+ &__header {
31
+ display: flex;
32
+ gap: 0.5rem;
33
+ margin-bottom: 8px;
34
+ align-items: center;
35
+
36
+ &--avatar {
37
+ width: 40px;
38
+ height: 40px;
39
+ border-radius: 50%;
40
+ overflow: hidden;
41
+ display: flex;
42
+ align-items: center;
43
+ flex-shrink: 0;
44
+ }
45
+
46
+ &--avatar img {
47
+ width: 100%;
48
+ object-fit: contain;
49
+ }
50
+
51
+ &--details {
52
+ display: flex;
53
+ flex-direction: column;
54
+ }
55
+
56
+ &--name {
57
+ white-space: nowrap;
58
+ overflow: hidden;
59
+ text-overflow: ellipsis;
60
+ font-weight: 600;
61
+ font-size: 1rem;
62
+ line-height: 20px;
63
+ letter-spacing: -0.32px;
64
+ }
65
+
66
+ &--meta {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: 0.25rem;
70
+ color: #666;
71
+ letter-spacing: -0.32px;
72
+ /* stylelint-disable-next-line declaration-property-unit-allowed-list */
73
+ font-size: 14px;
74
+ line-height: 19px;
75
+ white-space: pre-wrap;
76
+ }
77
+ }
78
+
79
+ &__footer {
80
+ margin-top: 24px;
81
+ display: flex;
82
+ flex-direction: row;
83
+ justify-content: flex-end;
84
+
85
+ &--actions {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 1rem;
89
+ }
90
+
91
+ &--actions-item {
92
+ display: flex;
93
+ align-items: center;
94
+ gap: 0.25rem;
95
+ /* stylelint-disable-next-line declaration-property-unit-allowed-list */
96
+ font-size: 13px;
97
+ font-weight: 600;
98
+ line-height: 16px;
99
+ }
100
+ }
101
+
102
+ &__content {
103
+ padding: 12px 16px;
104
+ }
105
+
106
+ &__card {
107
+ /* stylelint-disable-next-line scales/radii */
108
+ border-radius: 16px;
109
+ box-shadow: rgba(0, 0, 0, 0.08) 0 1px 4px 0, rgba(0, 0, 0, 0.2) 0 0 2px 0;
110
+ display: flex;
111
+ flex-direction: column;
112
+ margin-top: 12px;
113
+ overflow: hidden;
114
+
115
+ &.small-preview {
116
+ flex-direction: row;
117
+ align-items: center;
118
+ }
119
+
120
+ &--chevron-wrapper {
121
+ width: 40px;
122
+ min-width: 40px;
123
+ display: flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ }
127
+ }
128
+
129
+ &__caption {
130
+ margin-bottom: 20px;
131
+ font-size: 1rem;
132
+ line-height: 20px;
133
+ font-weight: 400;
134
+ }
135
+
136
+ &__media-item {
137
+ display: flex;
138
+
139
+ img,
140
+ video {
141
+ width: 100%;
142
+ object-fit: cover;
143
+ }
144
+ }
145
+
146
+ &__description {
147
+ padding: 16px;
148
+ display: flex;
149
+ flex-direction: column;
150
+ overflow: hidden;
151
+
152
+ .small-preview & {
153
+ padding: 10px;
154
+ flex-grow: 1;
155
+ }
156
+
157
+ &--title {
158
+ margin: 0;
159
+ font-weight: 600;
160
+ white-space: nowrap;
161
+ text-overflow: ellipsis;
162
+ overflow: hidden;
163
+ /* stylelint-disable-next-line declaration-property-unit-allowed-list */
164
+ font-size: 15px;
165
+ line-height: 20px;
166
+ }
167
+
168
+ &--url {
169
+ /* stylelint-disable-next-line declaration-property-unit-allowed-list */
170
+ font-size: 13px;
171
+ color: #666;
172
+ }
173
+ }
174
+
175
+ &__media {
176
+ // compensate for the content padding
177
+ margin-inline: -16px;
178
+ }
179
+
180
+ &__image {
181
+ object-fit: cover;
182
+ width: 100%;
183
+ aspect-ratio: 16/9;
184
+
185
+ .small-preview & {
186
+ width: 62px;
187
+ height: 62px;
188
+ }
189
+ }
190
+
191
+ &__default-avatar {
192
+ width: 40px;
193
+ height: 40px;
194
+ border-radius: 50%;
195
+ background-color: rgb(140 110 99);
196
+ color: #fff;
197
+ display: flex;
198
+ justify-content: center;
199
+ align-items: center;
200
+ font-size: x-large;
201
+ }
202
+
203
+ &__default-image {
204
+ background-color: #f1ffca;
205
+ height: 62px;
206
+ width: 62px;
207
+ display: flex;
208
+ align-items: center;
209
+ justify-content: center;
210
+ }
211
+ }
@@ -0,0 +1,9 @@
1
+ import { SocialPreviewBaseProps, SocialPreviewsBaseProps } from '../types';
2
+
3
+ export type NextdoorPreviewProps = SocialPreviewBaseProps & {
4
+ neighborhood?: string;
5
+ name: string;
6
+ profileImage: string;
7
+ };
8
+
9
+ export type NextdoorPreviewsProps = NextdoorPreviewProps & SocialPreviewsBaseProps;
@@ -14,6 +14,8 @@ export const TumblrPreviews: React.FC< TumblrPreviewsProps > = ( {
14
14
  hidePostPreview,
15
15
  ...props
16
16
  } ) => {
17
+ const hasMedia = !! props.media?.length;
18
+
17
19
  return (
18
20
  <div className="social-preview tumblr-preview">
19
21
  { ! hidePostPreview && (
@@ -27,7 +29,7 @@ export const TumblrPreviews: React.FC< TumblrPreviewsProps > = ( {
27
29
  <p className="social-preview__section-desc">
28
30
  { __( 'This is what your social post will look like on Tumblr:', 'social-previews' ) }
29
31
  </p>
30
- <TumblrPostPreview { ...props } />
32
+ { hasMedia ? <TumblrPostPreview { ...props } /> : <TumblrLinkPreview { ...props } /> }
31
33
  </section>
32
34
  ) }
33
35
  { ! hideLinkPreview && (
@@ -4,7 +4,6 @@ $tumblr-preview-text-color: #000;
4
4
  $tumblr-preview-background-color: #fff;
5
5
  $tumblr-preview-action-text-color: rgba(0, 0, 0, 0.65);
6
6
  $tumblr-preview-font-family: "Favorit", "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif;
7
- /* stylelint-disable-next-line scales/radii */
8
7
  $tumblr-preview-border-radius: 3px;
9
8
  /* stylelint-disable-next-line scales/radii */
10
9
  $tumblr-preview-window-border-radius: 6px;
@@ -1,4 +1,4 @@
1
- import classnames from 'classnames';
1
+ import clsx from 'clsx';
2
2
  import { baseDomain, firstValid, hardTruncation, shortEnough, stripHtmlTags } from '../helpers';
3
3
  import { TwitterCardProps } from './types';
4
4
 
@@ -16,7 +16,7 @@ export const Card: React.FC< TwitterCardProps > = ( {
16
16
  cardType,
17
17
  url,
18
18
  } ) => {
19
- const cardClassNames = classnames( `twitter-preview__card-${ cardType }`, {
19
+ const cardClassNames = clsx( `twitter-preview__card-${ cardType }`, {
20
20
  'twitter-preview__card-has-image': !! image,
21
21
  } );
22
22
 
@@ -1,4 +1,4 @@
1
- import classnames from 'classnames';
1
+ import clsx from 'clsx';
2
2
  import { Fragment } from 'react';
3
3
  import { MediaProps } from './types';
4
4
 
@@ -37,7 +37,7 @@ export const Media: React.FC< MediaProps > = ( { media } ) => {
37
37
 
38
38
  const isVideo = filteredMedia[ 0 ].type.startsWith( 'video/' );
39
39
 
40
- const mediaClasses = classnames( [
40
+ const mediaClasses = clsx( [
41
41
  'twitter-preview__media',
42
42
  'twitter-preview__media-children-' + filteredMedia.length,
43
43
  ] );
@@ -36,11 +36,11 @@ export const TwitterPostPreview: React.FC< TwitterPreviewProps > = ( {
36
36
  { text ? <Text text={ text } url={ url || '' } retainUrl={ hasMedia } /> : null }
37
37
  { hasMedia ? <Media media={ media } /> : null }
38
38
  { tweet ? <QuoteTweet tweet={ tweet } /> : null }
39
- { ! hasMedia && title && description && url && (
39
+ { ! hasMedia && url && (
40
40
  <Card
41
- description={ description }
41
+ description={ description || '' }
42
42
  image={ image }
43
- title={ title }
43
+ title={ title || '' }
44
44
  cardType={ cardType || '' }
45
45
  url={ url }
46
46
  />
@@ -26,7 +26,7 @@ export const TwitterPreviews: React.FC< TwitterPreviewsProps > = ( {
26
26
  }
27
27
  </SectionHeading>
28
28
  <p className="social-preview__section-desc">
29
- { __( 'This is what your social post will look like on Twitter:', 'social-previews' ) }
29
+ { __( 'This is what your social post will look like on X:', 'social-previews' ) }
30
30
  </p>
31
31
  { tweets.map( ( tweet, index ) => {
32
32
  const isLast = index + 1 === tweets.length;
@@ -50,7 +50,7 @@ export const TwitterPreviews: React.FC< TwitterPreviewsProps > = ( {
50
50
  </SectionHeading>
51
51
  <p className="social-preview__section-desc">
52
52
  { __(
53
- 'This is what it will look like when someone shares the link to your WordPress post on Twitter.',
53
+ 'This is what it will look like when someone shares the link to your WordPress post on X.',
54
54
  'social-previews'
55
55
  ) }
56
56
  &nbsp;
package/CHANGELOG.md DELETED
@@ -1,62 +0,0 @@
1
- # Changelog
2
-
3
- ## v2.0.1-beta
4
-
5
- - Added Mastodon and Instagram previews
6
- - Fixed hyperlinks for Facebook
7
- - Fixed multiple empty lines issue in preview text
8
-
9
- ## v2.0.0 (2023-05-24)
10
-
11
- - Converted the package to TypeScript.
12
- - Added LinkedIn and Tumblr previews.
13
- - Updated Google Search, Facebook and Twitter previews to match their latest designs.
14
- - Created separate components for each of the Social Media previews e.g. `TumblrLinkPreview`, `TumblrPostPreview` and `TumblrPreviews`.
15
-
16
- ## v1.1.5 (2022-08-24)
17
-
18
- - Declare an optional peer dependency on `@babel/runtime`, for CommonJS environments. This dependency already existed previously, it just wasn't declared.
19
-
20
- ## v1.1.4 (2022-05-25)
21
-
22
- - Add missing dependency on `@emotion/react`.
23
-
24
- ## v1.1.3 (2022-05-16)
25
-
26
- - Remove unnecessary peer dependencies on `@wordpress/data`, `reakit-utils`, and `redux`.
27
- - Add missing peer dependency on `react-dom`.
28
-
29
- ## v1.1.2 (2022-05-13)
30
-
31
- - Dependency updates and internal code cleanup.
32
-
33
- ## v1.1.1 (2021-04-05)
34
-
35
- - Ensure that lengthy text doesn't overflow in the Twitter preview.
36
-
37
- ## v1.1.0 (2020-09-10)
38
-
39
- - Twitter: Add previewing for attached images, videos, or quoted tweets.
40
- - Twitter: Add support for previewing entire threads.
41
-
42
- ## v1.0.4 (2020-08-24)
43
-
44
- - Fixed Twitter styles for viewports < 600px in width
45
-
46
- ## v1.0.3 (2020-08-21)
47
-
48
- - Refreshed styles of Twitter, Facebook and Google previews to match their latest design.
49
-
50
- ## v1.0.2 (2020-08-03)
51
-
52
- - Remove `i18n-calypso` dependency by removing search preview header.
53
- - Strip html tags from descriptions for social previews.
54
- - Add helper function with enhanced regex for stripping html tags.
55
-
56
- ## v1.0.1 (2020-07-23)
57
-
58
- - Mark CSS and SCSS files as `sideEffects` to ensure they are not discarded during build processes tree-shaking.
59
-
60
- ## v1.0.0 (2020-07-22)
61
-
62
- - Initial release after extracting from Calypso.
@@ -1,50 +0,0 @@
1
- .mastodon-preview__post-icon {
2
- display: inline-block;
3
-
4
- /* stylelint-disable-next-line function-url-quotes */
5
- background-image: url("data:image/png;base64,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");
6
- background-repeat: no-repeat;
7
- background-size: 99px 17px;
8
- }
9
-
10
- .mastodon-preview__post-icon-reply {
11
- width: 19px;
12
- height: 17px;
13
-
14
- background-position: 0 0;
15
- }
16
-
17
- .mastodon-preview__post-icon-boost {
18
- width: 21px;
19
- height: 13px;
20
-
21
- background-position: -19px 0;
22
- }
23
-
24
- .mastodon-preview__post-icon-like {
25
- width: 17px;
26
- height: 17px;
27
-
28
- background-position: -40px 0;
29
- }
30
-
31
- .mastodon-preview__post-icon-bookmark {
32
- width: 14px;
33
- height: 16px;
34
-
35
- background-position: -57px 0;
36
- }
37
-
38
- .mastodon-preview__post-icon-more {
39
- width: 15px;
40
- height: 4px;
41
-
42
- background-position: -71px 0;
43
- }
44
-
45
- .mastodon-preview__post-icon-globe {
46
- width: 13px;
47
- height: 14px;
48
-
49
- background-position: -86px 0;
50
- }
@@ -1,50 +0,0 @@
1
- .mastodon-preview__post-icon {
2
- display: inline-block;
3
-
4
- /* stylelint-disable-next-line function-url-quotes */
5
- background-image: url("data:image/png;base64,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");
6
- background-repeat: no-repeat;
7
- background-size: 99px 17px;
8
- }
9
-
10
- .mastodon-preview__post-icon-reply {
11
- width: 19px;
12
- height: 17px;
13
-
14
- background-position: 0 0;
15
- }
16
-
17
- .mastodon-preview__post-icon-boost {
18
- width: 21px;
19
- height: 13px;
20
-
21
- background-position: -19px 0;
22
- }
23
-
24
- .mastodon-preview__post-icon-like {
25
- width: 17px;
26
- height: 17px;
27
-
28
- background-position: -40px 0;
29
- }
30
-
31
- .mastodon-preview__post-icon-bookmark {
32
- width: 14px;
33
- height: 16px;
34
-
35
- background-position: -57px 0;
36
- }
37
-
38
- .mastodon-preview__post-icon-more {
39
- width: 15px;
40
- height: 4px;
41
-
42
- background-position: -71px 0;
43
- }
44
-
45
- .mastodon-preview__post-icon-globe {
46
- width: 13px;
47
- height: 14px;
48
-
49
- background-position: -86px 0;
50
- }