213 | {/* Date */}
214 |
215 | {date}
216 |
217 |
218 | {/* Timeline dot and connector */}
219 |
220 |
221 |
222 |
223 | {showConnector && (
224 |
225 | )}
226 |
227 |
228 | {/* Content */}
229 |
230 |
231 | {title}
232 |
233 | {description}
234 |
235 |
236 | );
237 |
238 | // Filter out Framer Motion specific props
239 | const {
240 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
241 | style,
242 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
243 | onDrag,
244 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
245 | onDragStart,
246 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
247 | onDragEnd,
248 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
249 | onAnimationStart,
250 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
251 | onAnimationComplete,
252 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
253 | transformTemplate,
254 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
255 | whileHover,
256 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
257 | whileTap,
258 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
259 | whileDrag,
260 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
261 | whileFocus,
262 | // eslint-disable-next-line @typescript-eslint/no-unused-vars
263 | whileInView,
264 | ...filteredProps
265 | } = props;
266 |
267 | return (
268 |