@kickstartds/ds-agency-premium 1.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.
- package/README.md +96 -0
- package/dist/ButtonProps-03ff6d21.d.ts +41 -0
- package/dist/CtaProps-93230a76.d.ts +113 -0
- package/dist/FaqProps-ad618cd5.d.ts +35 -0
- package/dist/FeaturesProps-79dea880.d.ts +284 -0
- package/dist/GalleryProps-76e7de44.d.ts +331 -0
- package/dist/HeadlineProps-d413a2cc.d.ts +48 -0
- package/dist/HeroProps-cf82a16d.d.ts +104 -0
- package/dist/ImageStoryProps-03ff6d21.d.ts +70 -0
- package/dist/ImageTextProps-9286cca4.d.ts +38 -0
- package/dist/LogosProps-8af8b3c7.d.ts +929 -0
- package/dist/MosaicProps-aacb9422.d.ts +84 -0
- package/dist/SliderProps-69b2f1d7.d.ts +43 -0
- package/dist/SplitProps-89ef39c4.d.ts +9 -0
- package/dist/StatsProps-afa48599.d.ts +41 -0
- package/dist/TeaserCardProps-b52479e5.d.ts +49 -0
- package/dist/TestimonialsProps-d27ae4b4.d.ts +54 -0
- package/dist/TextProps-a23170d2.d.ts +31 -0
- package/dist/VideoCurtainProps-6c625a69.d.ts +82 -0
- package/dist/components/blog-aside/blog-aside.css +9 -0
- package/dist/components/blog-aside/blog-aside.schema.dereffed.json +130 -0
- package/dist/components/blog-aside/blog-aside.schema.json +99 -0
- package/dist/components/blog-aside/index.d.ts +76 -0
- package/dist/components/blog-aside/index.js +55 -0
- package/dist/components/blog-head/blog-head.css +3 -0
- package/dist/components/blog-head/blog-head.schema.dereffed.json +54 -0
- package/dist/components/blog-head/blog-head.schema.json +40 -0
- package/dist/components/blog-head/index.d.ts +34 -0
- package/dist/components/blog-head/index.js +11 -0
- package/dist/components/blog-teaser/blog-teaser.css +58 -0
- package/dist/components/blog-teaser/blog-teaser.schema.dereffed.json +135 -0
- package/dist/components/blog-teaser/blog-teaser.schema.json +102 -0
- package/dist/components/blog-teaser/index.d.ts +81 -0
- package/dist/components/blog-teaser/index.js +37 -0
- package/dist/components/button/button.css +67 -0
- package/dist/components/button/button.schema.dereffed.json +63 -0
- package/dist/components/button/button.schema.json +48 -0
- package/dist/components/button/index.d.ts +6 -0
- package/dist/components/button/index.js +18 -0
- package/dist/components/button-group/button-group.schema.dereffed.json +115 -0
- package/dist/components/button-group/button-group.schema.json +27 -0
- package/dist/components/button-group/index.d.ts +40 -0
- package/dist/components/button-group/index.js +30 -0
- package/dist/components/component-teaser/component-teaser.schema.dereffed.json +43 -0
- package/dist/components/component-teaser/component-teaser.schema.json +40 -0
- package/dist/components/cta/cta.css +100 -0
- package/dist/components/cta/cta.schema.dereffed.json +158 -0
- package/dist/components/cta/cta.schema.json +127 -0
- package/dist/components/cta/index.d.ts +4 -0
- package/dist/components/cta/index.js +40 -0
- package/dist/components/faq/faq.css +17 -0
- package/dist/components/faq/faq.schema.dereffed.json +48 -0
- package/dist/components/faq/faq.schema.json +36 -0
- package/dist/components/faq/index.d.ts +4 -0
- package/dist/components/faq/index.js +9 -0
- package/dist/components/feature/index.d.ts +49 -0
- package/dist/components/feature/index.js +23 -0
- package/dist/components/features/features.css +115 -0
- package/dist/components/features/features.schema.dereffed.json +121 -0
- package/dist/components/features/features.schema.json +93 -0
- package/dist/components/features/index.d.ts +4 -0
- package/dist/components/features/index.js +32 -0
- package/dist/components/footer/footer.css +53 -0
- package/dist/components/footer/footer.schema.dereffed.json +178 -0
- package/dist/components/footer/footer.schema.json +47 -0
- package/dist/components/footer/index.d.ts +22 -0
- package/dist/components/footer/index.js +11 -0
- package/dist/components/gallery/gallery.css +50 -0
- package/dist/components/gallery/gallery.schema.dereffed.json +84 -0
- package/dist/components/gallery/gallery.schema.json +62 -0
- package/dist/components/gallery/index.d.ts +4 -0
- package/dist/components/gallery/index.js +35 -0
- package/dist/components/header/header.css +78 -0
- package/dist/components/header/header.schema.dereffed.json +188 -0
- package/dist/components/header/header.schema.json +25 -0
- package/dist/components/header/index.d.ts +26 -0
- package/dist/components/header/index.js +16 -0
- package/dist/components/headline/headline.css +78 -0
- package/dist/components/headline/headline.schema.dereffed.json +86 -0
- package/dist/components/headline/headline.schema.json +60 -0
- package/dist/components/headline/index.d.ts +11 -0
- package/dist/components/headline/index.js +18 -0
- package/dist/components/hero/hero.css +95 -0
- package/dist/components/hero/hero.schema.dereffed.json +166 -0
- package/dist/components/hero/hero.schema.json +79 -0
- package/dist/components/hero/index.d.ts +4 -0
- package/dist/components/hero/index.js +55 -0
- package/dist/components/image/image.css +12 -0
- package/dist/components/image/image.schema.dereffed.json +105 -0
- package/dist/components/image/image.schema.json +95 -0
- package/dist/components/image/index.d.ts +87 -0
- package/dist/components/image/index.js +11 -0
- package/dist/components/image-story/image-story.css +26 -0
- package/dist/components/image-story/image-story.schema.dereffed.json +165 -0
- package/dist/components/image-story/image-story.schema.json +81 -0
- package/dist/components/image-story/index.d.ts +4 -0
- package/dist/components/image-story/index.js +39 -0
- package/dist/components/image-text/image-text.css +4 -0
- package/dist/components/image-text/image-text.schema.dereffed.json +68 -0
- package/dist/components/image-text/image-text.schema.json +46 -0
- package/dist/components/image-text/index.d.ts +5 -0
- package/dist/components/image-text/index.js +20 -0
- package/dist/components/logos/index.d.ts +4 -0
- package/dist/components/logos/index.js +12 -0
- package/dist/components/logos/logos.css +91 -0
- package/dist/components/logos/logos.schema.dereffed.json +131 -0
- package/dist/components/logos/logos.schema.json +106 -0
- package/dist/components/mosaic/index.d.ts +4 -0
- package/dist/components/mosaic/index.js +33 -0
- package/dist/components/mosaic/mosaic.css +35 -0
- package/dist/components/mosaic/mosaic.schema.dereffed.json +122 -0
- package/dist/components/mosaic/mosaic.schema.json +86 -0
- package/dist/components/nav-main/index.d.ts +26 -0
- package/dist/components/nav-main/index.js +17 -0
- package/dist/components/nav-main/js/NavToggle.client.d.ts +16 -0
- package/dist/components/nav-main/js/NavToggle.client.js +57 -0
- package/dist/components/nav-main/js/body.client.d.ts +5 -0
- package/dist/components/nav-main/js/body.client.js +41 -0
- package/dist/components/nav-main/js/navMainEvents.client.d.ts +5 -0
- package/dist/components/nav-main/js/navMainEvents.client.js +13 -0
- package/dist/components/nav-main/nav-main.css +170 -0
- package/dist/components/nav-main/nav-main.schema.dereffed.json +182 -0
- package/dist/components/nav-main/nav-main.schema.json +53 -0
- package/dist/components/nav-main/nav-toggle.css +85 -0
- package/dist/components/page/page.schema.dereffed.json +1945 -0
- package/dist/components/page/page.schema.json +58 -0
- package/dist/components/page-intro/index.d.ts +17 -0
- package/dist/components/page-intro/index.js +18 -0
- package/dist/components/page-intro/page-intro.css +8 -0
- package/dist/components/page-intro/page-intro.schema.dereffed.json +30 -0
- package/dist/components/page-intro/page-intro.schema.json +26 -0
- package/dist/components/page-wrapper/index.d.ts +2 -0
- package/dist/components/page-wrapper/index.js +28 -0
- package/dist/components/page-wrapper/tokens.css +1556 -0
- package/dist/components/picture/picture.schema.json +88 -0
- package/dist/components/providers/index.d.ts +6 -0
- package/dist/components/providers/index.js +38 -0
- package/dist/components/raw-page-wrapper/index.d.ts +3 -0
- package/dist/components/raw-page-wrapper/index.js +492 -0
- package/dist/components/section/index.d.ts +147 -0
- package/dist/components/section/index.js +48 -0
- package/dist/components/section/js/Section.client.d.ts +2 -0
- package/dist/components/section/js/Section.client.js +26 -0
- package/dist/components/section/js/spotlight.client.d.ts +2 -0
- package/dist/components/section/js/spotlight.client.js +14 -0
- package/dist/components/section/section.css +110 -0
- package/dist/components/section/section.schema.dereffed.json +1875 -0
- package/dist/components/section/section.schema.json +222 -0
- package/dist/components/slider/index.d.ts +4 -0
- package/dist/components/slider/index.js +7 -0
- package/dist/components/slider/slider.css +24 -0
- package/dist/components/slider/slider.schema.dereffed.json +54 -0
- package/dist/components/slider/slider.schema.json +30 -0
- package/dist/components/split/index.d.ts +4 -0
- package/dist/components/split/index.js +7 -0
- package/dist/components/split/split.css +24 -0
- package/dist/components/split/split.schema.dereffed.json +20 -0
- package/dist/components/split/split.schema.json +13 -0
- package/dist/components/stats/index.d.ts +4 -0
- package/dist/components/stats/index.js +11 -0
- package/dist/components/stats/stats.css +49 -0
- package/dist/components/stats/stats.schema.dereffed.json +71 -0
- package/dist/components/stats/stats.schema.json +49 -0
- package/dist/components/teaser-card/index.d.ts +6 -0
- package/dist/components/teaser-card/index.js +25 -0
- package/dist/components/teaser-card/teaser-card.css +98 -0
- package/dist/components/teaser-card/teaser-card.schema.dereffed.json +69 -0
- package/dist/components/teaser-card/teaser-card.schema.json +58 -0
- package/dist/components/teaser-component/component-teaser.css +33 -0
- package/dist/components/teaser-component/index.d.ts +41 -0
- package/dist/components/teaser-component/index.js +18 -0
- package/dist/components/testimonials/index.d.ts +9 -0
- package/dist/components/testimonials/index.js +22 -0
- package/dist/components/testimonials/testimonials.css +63 -0
- package/dist/components/testimonials/testimonials.schema.dereffed.json +93 -0
- package/dist/components/testimonials/testimonials.schema.json +71 -0
- package/dist/components/text/index.d.ts +4 -0
- package/dist/components/text/index.js +13 -0
- package/dist/components/text/text.css +15 -0
- package/dist/components/text/text.schema.dereffed.json +50 -0
- package/dist/components/text/text.schema.json +39 -0
- package/dist/components/video-curtain/index.d.ts +4 -0
- package/dist/components/video-curtain/index.js +47 -0
- package/dist/components/video-curtain/video-curtain.css +51 -0
- package/dist/components/video-curtain/video-curtain.schema.dereffed.json +123 -0
- package/dist/components/video-curtain/video-curtain.schema.json +67 -0
- package/dist/global-35f78d6d.js +1 -0
- package/dist/global.client.d.ts +2 -0
- package/dist/global.client.js +8 -0
- package/dist/global.css +564 -0
- package/dist/static/.gitkeep +0 -0
- package/dist/static/favicon/.gitkeep +0 -0
- package/dist/static/favicon/android-chrome-192x192.png +0 -0
- package/dist/static/favicon/android-chrome-512x512.png +0 -0
- package/dist/static/favicon/apple-touch-icon.png +0 -0
- package/dist/static/favicon/browserconfig.xml +9 -0
- package/dist/static/favicon/favicon-16x16.png +0 -0
- package/dist/static/favicon/favicon-192-192.png +20 -0
- package/dist/static/favicon/favicon-32x32.png +0 -0
- package/dist/static/favicon/favicon.ico +0 -0
- package/dist/static/favicon/mstile-144x144.png +0 -0
- package/dist/static/favicon/mstile-150x150.png +0 -0
- package/dist/static/favicon/mstile-310x150.png +0 -0
- package/dist/static/favicon/mstile-310x310.png +0 -0
- package/dist/static/favicon/mstile-70x70.png +0 -0
- package/dist/static/favicon/safari-pinned-tab.svg +30 -0
- package/dist/static/favicon/site.webmanifest +19 -0
- package/dist/static/fonts/dsa/Fredoka-Bold.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Bold.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Light.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Light.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Medium.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Medium.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-Regular.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-Regular.woff2 +0 -0
- package/dist/static/fonts/dsa/Fredoka-SemiBold.woff +0 -0
- package/dist/static/fonts/dsa/Fredoka-SemiBold.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-300.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-300.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-600.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-600.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-800.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-800.woff2 +0 -0
- package/dist/static/fonts/dsa/Mulish-Regular.woff +0 -0
- package/dist/static/fonts/dsa/Mulish-Regular.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-18pt.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-display.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-text-medium.woff2 +0 -0
- package/dist/static/fonts/google/google-sans-text.woff2 +0 -0
- package/dist/static/fonts/lughausen/novelpro-regular.woff +0 -0
- package/dist/static/fonts/lughausen/novelsanspro-bold.woff +0 -0
- package/dist/static/fonts/lughausen/novelsanspro-regular.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-bold-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-extrabold-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-medium-woff-data.woff +0 -0
- package/dist/static/fonts/telekom/teleneo-thin-woff-data.woff +0 -0
- package/dist/static/img/02.jpg +0 -0
- package/dist/static/img/angled-image.png +0 -0
- package/dist/static/img/bg_dot-carpet-blue.svg +346 -0
- package/dist/static/img/close-up-young-business-team-working.png +0 -0
- package/dist/static/img/colleagues-work-office-using-computers-looking-aside.png +0 -0
- package/dist/static/img/colored-square.png +0 -0
- package/dist/static/img/contact-person.png +0 -0
- package/dist/static/img/full-shot-different-people-working-together.png +0 -0
- package/dist/static/img/grid-bg.svg +19 -0
- package/dist/static/img/logos/castaway.svg +111 -0
- package/dist/static/img/logos/logoipsum-212.svg +12 -0
- package/dist/static/img/logos/logoipsum-217.svg +4 -0
- package/dist/static/img/logos/logoipsum-239.svg +16 -0
- package/dist/static/img/logos/logoipsum-244.svg +19 -0
- package/dist/static/img/logos/logoipsum-250.svg +21 -0
- package/dist/static/img/logos/logoipsum-286.svg +20 -0
- package/dist/static/img/low-angle-tall-building-with-many-windows_23-2148230392.png +0 -0
- package/dist/static/img/mosaic-1.png +0 -0
- package/dist/static/img/mosaic-2.png +0 -0
- package/dist/static/img/mosaic-2_1.svg +34 -0
- package/dist/static/img/mosaic-2_2.svg +25 -0
- package/dist/static/img/mosaic-2_3.svg +32 -0
- package/dist/static/img/mosaic-3.png +0 -0
- package/dist/static/img/office-divider-image.png +0 -0
- package/dist/static/img/offset-image.png +0 -0
- package/dist/static/img/people/author-alex.png +0 -0
- package/dist/static/img/people/author-emily.png +0 -0
- package/dist/static/img/people/author-john.png +0 -0
- package/dist/static/img/people-brainstorming-work-meeting.png +0 -0
- package/dist/static/img/responsive_image-1680.png +0 -0
- package/dist/static/img/responsive_image-420.png +0 -0
- package/dist/static/img/responsive_image-980.png +0 -0
- package/dist/static/img/showcases/audio_bg.svg +10 -0
- package/dist/static/img/showcases/comp_audio01.jpg +0 -0
- package/dist/static/img/showcases/comp_audio04.png +0 -0
- package/dist/static/img/showcases/comp_eco01.jpg +0 -0
- package/dist/static/img/showcases/comp_eco01.png +0 -0
- package/dist/static/img/showcases/comp_eco02.png +0 -0
- package/dist/static/img/showcases/comp_eco03.png +0 -0
- package/dist/static/img/showcases/comp_eco04.jpg +0 -0
- package/dist/static/img/showcases/comp_eco04.png +0 -0
- package/dist/static/img/showcases/comp_tfe01.jpg +0 -0
- package/dist/static/img/showcases/eco_bg.png +0 -0
- package/dist/static/img/showcases/preview_audio.png +0 -0
- package/dist/static/img/showcases/preview_eco.png +0 -0
- package/dist/static/img/showcases/preview_tfe.png +0 -0
- package/dist/static/img/showcases/tfe_bg.svg +48 -0
- package/dist/static/img/top-view-desk-with-keyboard-drawing-pad.png +0 -0
- package/dist/static/img/videos/handshake-bw.mp4 +0 -0
- package/dist/static/img/videos/video-720.mp4 +0 -0
- package/dist/static/img/videos/video-agency.mp4 +0 -0
- package/dist/static/img/view-modern-office.jpg +0 -0
- package/dist/static/logo-google.svg +1 -0
- package/dist/static/logo-lughausen.svg +27 -0
- package/dist/static/logo-telekom.svg +8 -0
- package/dist/static/logo.svg +26 -0
- package/dist/static/tokens-google.css +1553 -0
- package/dist/static/tokens-lughausen.css +1549 -0
- package/dist/static/tokens-telekom.css +1549 -0
- package/dist/static/tokens.css +1554 -0
- package/dist/tokens/IconSprite.js +467 -0
- package/dist/tokens/icon-sprite.html +37 -0
- package/dist/tokens/tokens.css +1554 -0
- package/dist/tokens/tokens.js +652 -0
- package/package.json +138 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { HTMLAttributes, FC } from "react";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
5
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
6
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The name of the author
|
|
10
|
+
*/
|
|
11
|
+
type Name = string;
|
|
12
|
+
/**
|
|
13
|
+
* The byline of the author
|
|
14
|
+
*/
|
|
15
|
+
type Byline = string;
|
|
16
|
+
/**
|
|
17
|
+
* The image URL of the author
|
|
18
|
+
*/
|
|
19
|
+
type Image = string;
|
|
20
|
+
/**
|
|
21
|
+
* The Twitter name of the author
|
|
22
|
+
*/
|
|
23
|
+
type Twitter = string;
|
|
24
|
+
/**
|
|
25
|
+
* The Email of the author
|
|
26
|
+
*/
|
|
27
|
+
type Email = string;
|
|
28
|
+
/**
|
|
29
|
+
* The icon name for the social link
|
|
30
|
+
*/
|
|
31
|
+
type Icon = string;
|
|
32
|
+
/**
|
|
33
|
+
* The href for the social link
|
|
34
|
+
*/
|
|
35
|
+
type Href = string;
|
|
36
|
+
/**
|
|
37
|
+
* The title for the social link
|
|
38
|
+
*/
|
|
39
|
+
type Title = string;
|
|
40
|
+
/**
|
|
41
|
+
* The social sharing links for the blog post
|
|
42
|
+
*/
|
|
43
|
+
type SocialSharing = {
|
|
44
|
+
icon: Icon;
|
|
45
|
+
href: Href;
|
|
46
|
+
title: Title;
|
|
47
|
+
}[];
|
|
48
|
+
/**
|
|
49
|
+
* The reading time for the blog post
|
|
50
|
+
*/
|
|
51
|
+
type ReadingTime = string;
|
|
52
|
+
/**
|
|
53
|
+
* The date when the blog post was published
|
|
54
|
+
*/
|
|
55
|
+
type PublishedDate = string;
|
|
56
|
+
/**
|
|
57
|
+
* Meta info for a singular blog entry
|
|
58
|
+
*/
|
|
59
|
+
interface BlogAsideProps {
|
|
60
|
+
author: Author;
|
|
61
|
+
socialSharing?: SocialSharing;
|
|
62
|
+
readingTime?: ReadingTime;
|
|
63
|
+
date: PublishedDate;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The author of the blog post
|
|
67
|
+
*/
|
|
68
|
+
interface Author {
|
|
69
|
+
name: Name;
|
|
70
|
+
byline?: Byline;
|
|
71
|
+
image?: Image;
|
|
72
|
+
twitter?: Twitter;
|
|
73
|
+
email?: Email;
|
|
74
|
+
}
|
|
75
|
+
declare const BlogAside: FC<BlogAsideProps & HTMLAttributes<HTMLElement>>;
|
|
76
|
+
export { BlogAside };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import "./blog-aside.css";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { PostAside } from '@kickstartds/blog/lib/post-aside';
|
|
4
|
+
|
|
5
|
+
const BlogAside = ({ author, socialSharing, readingTime, date, }) => {
|
|
6
|
+
const socialLinks = socialSharing?.map((link) => {
|
|
7
|
+
return {
|
|
8
|
+
icon: link.icon,
|
|
9
|
+
href: link.href,
|
|
10
|
+
title: link.title,
|
|
11
|
+
};
|
|
12
|
+
});
|
|
13
|
+
const metaItems = [
|
|
14
|
+
{
|
|
15
|
+
icon: "date",
|
|
16
|
+
text: date,
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
if (readingTime)
|
|
20
|
+
metaItems.push({
|
|
21
|
+
icon: "time",
|
|
22
|
+
text: readingTime,
|
|
23
|
+
});
|
|
24
|
+
const authorLinks = [];
|
|
25
|
+
if (author.twitter)
|
|
26
|
+
authorLinks.push({
|
|
27
|
+
href: `https://twitter.com/${author.twitter}`,
|
|
28
|
+
icon: "twitter",
|
|
29
|
+
newTab: true,
|
|
30
|
+
label: `@${author.twitter}`,
|
|
31
|
+
});
|
|
32
|
+
if (author.email)
|
|
33
|
+
authorLinks.push({
|
|
34
|
+
href: `mailto:${author.email}`,
|
|
35
|
+
icon: "email",
|
|
36
|
+
newTab: false,
|
|
37
|
+
label: author.email,
|
|
38
|
+
});
|
|
39
|
+
return (jsx(PostAside, { author: {
|
|
40
|
+
title: author.name,
|
|
41
|
+
image: author.image && { src: author.image },
|
|
42
|
+
copy: author.byline,
|
|
43
|
+
links: authorLinks,
|
|
44
|
+
}, shareBar: {
|
|
45
|
+
headline: {
|
|
46
|
+
text: "Share this post",
|
|
47
|
+
level: "h3",
|
|
48
|
+
},
|
|
49
|
+
links: socialLinks,
|
|
50
|
+
}, meta: {
|
|
51
|
+
items: metaItems,
|
|
52
|
+
} }));
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { BlogAside };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/blog-head.schema.json",
|
|
4
|
+
"title": "Blog Head",
|
|
5
|
+
"description": "Intro portion of a singular blog entry",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"date": {
|
|
9
|
+
"title": "Published Date",
|
|
10
|
+
"description": "The date when the blog post was published",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "date",
|
|
13
|
+
"examples": [
|
|
14
|
+
"12/30/2022"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"tags": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"title": "Tags",
|
|
20
|
+
"description": "The tags associated with the blog post",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"examples": [
|
|
24
|
+
"tech",
|
|
25
|
+
"programming"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"headline": {
|
|
30
|
+
"title": "Headline",
|
|
31
|
+
"description": "The headline of the blog post",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"examples": [
|
|
34
|
+
"This is a blog post headline"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"image": {
|
|
38
|
+
"title": "Cover Image",
|
|
39
|
+
"description": "The source of the cover image for the blog post",
|
|
40
|
+
"type": "string",
|
|
41
|
+
"format": "uri",
|
|
42
|
+
"examples": [
|
|
43
|
+
"img/close-up-young-business-team-working.png"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
"type": {
|
|
47
|
+
"const": "blog-head"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"additionalProperties": false,
|
|
51
|
+
"required": [
|
|
52
|
+
"headline"
|
|
53
|
+
]
|
|
54
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/blog-head.schema.json",
|
|
4
|
+
"title": "Blog Head",
|
|
5
|
+
"description": "Intro portion of a singular blog entry",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"date": {
|
|
9
|
+
"title": "Published Date",
|
|
10
|
+
"description": "The date when the blog post was published",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "date",
|
|
13
|
+
"examples": ["12/30/2022"]
|
|
14
|
+
},
|
|
15
|
+
"tags": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"title": "Tags",
|
|
18
|
+
"description": "The tags associated with the blog post",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"examples": ["tech", "programming"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"headline": {
|
|
25
|
+
"title": "Headline",
|
|
26
|
+
"description": "The headline of the blog post",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"examples": ["This is a blog post headline"]
|
|
29
|
+
},
|
|
30
|
+
"image": {
|
|
31
|
+
"title": "Cover Image",
|
|
32
|
+
"description": "The source of the cover image for the blog post",
|
|
33
|
+
"type": "string",
|
|
34
|
+
"format": "uri",
|
|
35
|
+
"examples": ["img/close-up-young-business-team-working.png"]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"additionalProperties": false,
|
|
39
|
+
"required": ["headline"]
|
|
40
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { HTMLAttributes, FC } from "react";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
5
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
6
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The date when the blog post was published
|
|
10
|
+
*/
|
|
11
|
+
type PublishedDate = string;
|
|
12
|
+
/**
|
|
13
|
+
* The tags associated with the blog post
|
|
14
|
+
*/
|
|
15
|
+
type Tags = string[];
|
|
16
|
+
/**
|
|
17
|
+
* The headline of the blog post
|
|
18
|
+
*/
|
|
19
|
+
type Headline = string;
|
|
20
|
+
/**
|
|
21
|
+
* The source of the cover image for the blog post
|
|
22
|
+
*/
|
|
23
|
+
type CoverImage = string;
|
|
24
|
+
/**
|
|
25
|
+
* Intro portion of a singular blog entry
|
|
26
|
+
*/
|
|
27
|
+
interface BlogHeadProps {
|
|
28
|
+
date?: PublishedDate;
|
|
29
|
+
tags?: Tags;
|
|
30
|
+
headline: Headline;
|
|
31
|
+
image?: CoverImage;
|
|
32
|
+
}
|
|
33
|
+
declare const BlogHead: FC<BlogHeadProps & HTMLAttributes<HTMLElement>>;
|
|
34
|
+
export { BlogHead };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./blog-head.css";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { PostHead } from '@kickstartds/blog/lib/post-head';
|
|
4
|
+
|
|
5
|
+
const BlogHead = ({ date, tags, headline, image, }) => {
|
|
6
|
+
return (jsx(PostHead, { date: date, headline: { text: headline, level: "h1", align: "left" }, image: { src: image }, categories: tags.map((tag) => {
|
|
7
|
+
return { label: tag };
|
|
8
|
+
}) }));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export { BlogHead };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
.l-container--post-teaser {
|
|
2
|
+
/* stylelint-disable-next-line property-no-unknown */
|
|
3
|
+
container-name: post-teaser;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
article.c-post-teaser {
|
|
7
|
+
--c-teaser--background: transparent;
|
|
8
|
+
--c-post-teaser--gap: var(--ks-spacing-stack-s) var(--ks-spacing-inline-s);
|
|
9
|
+
--c-teaser_text--spacing: var(--ks-spacing-stack-s);
|
|
10
|
+
--g-topic--font: var(--ks-font-display-s);
|
|
11
|
+
}
|
|
12
|
+
@container post-teaser (min-width: 640px) {
|
|
13
|
+
article.c-post-teaser {
|
|
14
|
+
--g-topic--font: var(--ks-font-display-l);
|
|
15
|
+
--c-rich-text--font: var(--ks-font-copy-m);
|
|
16
|
+
}
|
|
17
|
+
article.c-post-teaser .c-tag-label--s {
|
|
18
|
+
--c-tag-label--font: var(--ks-font-interface-s);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
@container post-teaser (min-width: 1000px) {
|
|
22
|
+
article.c-post-teaser {
|
|
23
|
+
--g-topic--font: var(--ks-font-display-xl);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
article.c-post-teaser .c-teaser {
|
|
27
|
+
overflow: visible;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
}
|
|
30
|
+
article.c-post-teaser .c-teaser:hover .c-teaser__topic {
|
|
31
|
+
text-shadow: 0 0 15px var(--ks-color-fg-alpha-5);
|
|
32
|
+
}
|
|
33
|
+
article.c-post-teaser .c-teaser:hover .c-rich-text {
|
|
34
|
+
color: var(--ks-color-fg);
|
|
35
|
+
}
|
|
36
|
+
article.c-post-teaser .c-teaser:hover .c-rich-text > :not(.c-post-meta) {
|
|
37
|
+
text-decoration: none;
|
|
38
|
+
}
|
|
39
|
+
article.c-post-teaser .c-post-teaser__image img {
|
|
40
|
+
border-radius: var(--ks-border-radius-card);
|
|
41
|
+
}
|
|
42
|
+
article.c-post-teaser .c-post-meta {
|
|
43
|
+
--c-post-meta_author--font-weight: var(--ks-font-weight-semi-bold);
|
|
44
|
+
--c-post-meta--gap: 0.5em 1em;
|
|
45
|
+
margin: 0;
|
|
46
|
+
}
|
|
47
|
+
article.c-post-teaser .c-rich-text {
|
|
48
|
+
transition: var(--ks-transition-hover);
|
|
49
|
+
transition-property: color;
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-direction: column;
|
|
52
|
+
gap: var(--c-post-teaser--gap);
|
|
53
|
+
}
|
|
54
|
+
article.c-post-teaser .c-teaser__topic {
|
|
55
|
+
text-align: left;
|
|
56
|
+
transition: var(--ks-transition-hover);
|
|
57
|
+
transition-property: text-shadow;
|
|
58
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/blog-teaser.schema.json",
|
|
4
|
+
"title": "Blog Teaser",
|
|
5
|
+
"description": "Display a blog teaser with date, tags, headline, teaser text and author",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"date": {
|
|
9
|
+
"title": "Date",
|
|
10
|
+
"description": "The date of the blog post",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "date",
|
|
13
|
+
"examples": [
|
|
14
|
+
"12/30/2022"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"tags": {
|
|
18
|
+
"type": "array",
|
|
19
|
+
"title": "Tags",
|
|
20
|
+
"description": "The tags for the blog post",
|
|
21
|
+
"items": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"examples": [
|
|
24
|
+
"tech",
|
|
25
|
+
"programming"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"headline": {
|
|
30
|
+
"title": "Headline",
|
|
31
|
+
"description": "The headline of the blog post",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"examples": [
|
|
34
|
+
"This is a blog post headline"
|
|
35
|
+
]
|
|
36
|
+
},
|
|
37
|
+
"teaserText": {
|
|
38
|
+
"title": "Teaser Text",
|
|
39
|
+
"description": "The teaser text of the blog post",
|
|
40
|
+
"type": "string",
|
|
41
|
+
"examples": [
|
|
42
|
+
"This is a teaser text for the blog post"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"image": {
|
|
46
|
+
"title": "Image",
|
|
47
|
+
"description": "The preview image for the blog post",
|
|
48
|
+
"type": "string",
|
|
49
|
+
"format": "image",
|
|
50
|
+
"examples": [
|
|
51
|
+
"img/close-up-young-business-team-working.png"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"link": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"title": "Link",
|
|
57
|
+
"description": "URL and label for the blog post linked",
|
|
58
|
+
"properties": {
|
|
59
|
+
"url": {
|
|
60
|
+
"title": "URL",
|
|
61
|
+
"description": "The blog entry URL to link",
|
|
62
|
+
"type": "string",
|
|
63
|
+
"format": "uri",
|
|
64
|
+
"examples": [
|
|
65
|
+
"https://example.com"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"label": {
|
|
69
|
+
"title": "Label",
|
|
70
|
+
"description": "The label to use for the link",
|
|
71
|
+
"type": "string",
|
|
72
|
+
"examples": [
|
|
73
|
+
"Read more"
|
|
74
|
+
],
|
|
75
|
+
"default": "Read more"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"additionalProperties": false,
|
|
79
|
+
"required": [
|
|
80
|
+
"url"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"readingTime": {
|
|
84
|
+
"title": "Reading Time",
|
|
85
|
+
"description": "Time to read for the blog post",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"examples": [
|
|
88
|
+
"5 min read"
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"author": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"title": "Author",
|
|
94
|
+
"description": "The author of the blog post",
|
|
95
|
+
"properties": {
|
|
96
|
+
"name": {
|
|
97
|
+
"title": "Name",
|
|
98
|
+
"description": "The name of the author",
|
|
99
|
+
"type": "string",
|
|
100
|
+
"examples": [
|
|
101
|
+
"John Doe"
|
|
102
|
+
]
|
|
103
|
+
},
|
|
104
|
+
"title": {
|
|
105
|
+
"title": "Title",
|
|
106
|
+
"description": "The title of the author",
|
|
107
|
+
"type": "string",
|
|
108
|
+
"examples": [
|
|
109
|
+
"CEO"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"image": {
|
|
113
|
+
"title": "Image",
|
|
114
|
+
"description": "The image URL of the author",
|
|
115
|
+
"type": "string",
|
|
116
|
+
"examples": [
|
|
117
|
+
"img/people/author-emily.png"
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"additionalProperties": false,
|
|
122
|
+
"required": [
|
|
123
|
+
"name"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"type": {
|
|
127
|
+
"const": "blog-teaser"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"additionalProperties": false,
|
|
131
|
+
"required": [
|
|
132
|
+
"headline",
|
|
133
|
+
"teaserText"
|
|
134
|
+
]
|
|
135
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "http://schema.mydesignsystem.com/blog-teaser.schema.json",
|
|
4
|
+
"title": "Blog Teaser",
|
|
5
|
+
"description": "Display a blog teaser with date, tags, headline, teaser text and author",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"date": {
|
|
9
|
+
"title": "Date",
|
|
10
|
+
"description": "The date of the blog post",
|
|
11
|
+
"type": "string",
|
|
12
|
+
"format": "date",
|
|
13
|
+
"examples": ["12/30/2022"]
|
|
14
|
+
},
|
|
15
|
+
"tags": {
|
|
16
|
+
"type": "array",
|
|
17
|
+
"title": "Tags",
|
|
18
|
+
"description": "The tags for the blog post",
|
|
19
|
+
"items": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"examples": ["tech", "programming"]
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"headline": {
|
|
25
|
+
"title": "Headline",
|
|
26
|
+
"description": "The headline of the blog post",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"examples": ["This is a blog post headline"]
|
|
29
|
+
},
|
|
30
|
+
"teaserText": {
|
|
31
|
+
"title": "Teaser Text",
|
|
32
|
+
"description": "The teaser text of the blog post",
|
|
33
|
+
"type": "string",
|
|
34
|
+
"examples": ["This is a teaser text for the blog post"]
|
|
35
|
+
},
|
|
36
|
+
"image": {
|
|
37
|
+
"title": "Image",
|
|
38
|
+
"description": "The preview image for the blog post",
|
|
39
|
+
"type": "string",
|
|
40
|
+
"format": "image",
|
|
41
|
+
"examples": ["img/close-up-young-business-team-working.png"]
|
|
42
|
+
},
|
|
43
|
+
"link": {
|
|
44
|
+
"type": "object",
|
|
45
|
+
"title": "Link",
|
|
46
|
+
"description": "URL and label for the blog post linked",
|
|
47
|
+
"properties": {
|
|
48
|
+
"url": {
|
|
49
|
+
"title": "URL",
|
|
50
|
+
"description": "The blog entry URL to link",
|
|
51
|
+
"type": "string",
|
|
52
|
+
"format": "uri",
|
|
53
|
+
"examples": ["https://example.com"]
|
|
54
|
+
},
|
|
55
|
+
"label": {
|
|
56
|
+
"title": "Label",
|
|
57
|
+
"description": "The label to use for the link",
|
|
58
|
+
"type": "string",
|
|
59
|
+
"examples": ["Read more"],
|
|
60
|
+
"default": "Read more"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"required": ["url"]
|
|
65
|
+
},
|
|
66
|
+
"readingTime": {
|
|
67
|
+
"title": "Reading Time",
|
|
68
|
+
"description": "Time to read for the blog post",
|
|
69
|
+
"type": "string",
|
|
70
|
+
"examples": ["5 min read"]
|
|
71
|
+
},
|
|
72
|
+
"author": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"title": "Author",
|
|
75
|
+
"description": "The author of the blog post",
|
|
76
|
+
"properties": {
|
|
77
|
+
"name": {
|
|
78
|
+
"title": "Name",
|
|
79
|
+
"description": "The name of the author",
|
|
80
|
+
"type": "string",
|
|
81
|
+
"examples": ["John Doe"]
|
|
82
|
+
},
|
|
83
|
+
"title": {
|
|
84
|
+
"title": "Title",
|
|
85
|
+
"description": "The title of the author",
|
|
86
|
+
"type": "string",
|
|
87
|
+
"examples": ["CEO"]
|
|
88
|
+
},
|
|
89
|
+
"image": {
|
|
90
|
+
"title": "Image",
|
|
91
|
+
"description": "The image URL of the author",
|
|
92
|
+
"type": "string",
|
|
93
|
+
"examples": ["img/people/author-emily.png"]
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"additionalProperties": false,
|
|
97
|
+
"required": ["name"]
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"additionalProperties": false,
|
|
101
|
+
"required": ["headline", "teaserText"]
|
|
102
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { HTMLAttributes, FC } from "react";
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
/**
|
|
4
|
+
* This file was automatically generated by json-schema-to-typescript.
|
|
5
|
+
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
6
|
+
* and run json-schema-to-typescript to regenerate this file.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The date of the blog post
|
|
10
|
+
*/
|
|
11
|
+
type Date = string;
|
|
12
|
+
/**
|
|
13
|
+
* The tags for the blog post
|
|
14
|
+
*/
|
|
15
|
+
type Tags = string[];
|
|
16
|
+
/**
|
|
17
|
+
* The headline of the blog post
|
|
18
|
+
*/
|
|
19
|
+
type Headline = string;
|
|
20
|
+
/**
|
|
21
|
+
* The teaser text of the blog post
|
|
22
|
+
*/
|
|
23
|
+
type TeaserText = string;
|
|
24
|
+
/**
|
|
25
|
+
* The preview image for the blog post
|
|
26
|
+
*/
|
|
27
|
+
type Image = string;
|
|
28
|
+
/**
|
|
29
|
+
* The blog entry URL to link
|
|
30
|
+
*/
|
|
31
|
+
type URL = string;
|
|
32
|
+
/**
|
|
33
|
+
* The label to use for the link
|
|
34
|
+
*/
|
|
35
|
+
type Label = string;
|
|
36
|
+
/**
|
|
37
|
+
* Time to read for the blog post
|
|
38
|
+
*/
|
|
39
|
+
type ReadingTime = string;
|
|
40
|
+
/**
|
|
41
|
+
* The name of the author
|
|
42
|
+
*/
|
|
43
|
+
type Name = string;
|
|
44
|
+
/**
|
|
45
|
+
* The title of the author
|
|
46
|
+
*/
|
|
47
|
+
type Title = string;
|
|
48
|
+
/**
|
|
49
|
+
* The image URL of the author
|
|
50
|
+
*/
|
|
51
|
+
type Image1 = string;
|
|
52
|
+
/**
|
|
53
|
+
* Display a blog teaser with date, tags, headline, teaser text and author
|
|
54
|
+
*/
|
|
55
|
+
interface BlogTeaserProps {
|
|
56
|
+
date?: Date;
|
|
57
|
+
tags?: Tags;
|
|
58
|
+
headline: Headline;
|
|
59
|
+
teaserText: TeaserText;
|
|
60
|
+
image?: Image;
|
|
61
|
+
link?: Link;
|
|
62
|
+
readingTime?: ReadingTime;
|
|
63
|
+
author?: Author;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* URL and label for the blog post linked
|
|
67
|
+
*/
|
|
68
|
+
interface Link {
|
|
69
|
+
url: URL;
|
|
70
|
+
label?: Label;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The author of the blog post
|
|
74
|
+
*/
|
|
75
|
+
interface Author {
|
|
76
|
+
name: Name;
|
|
77
|
+
title?: Title;
|
|
78
|
+
image?: Image1;
|
|
79
|
+
}
|
|
80
|
+
declare const BlogTeaser: FC<BlogTeaserProps & HTMLAttributes<HTMLElement>>;
|
|
81
|
+
export { BlogTeaser };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import "./blog-teaser.css";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { PostTeaserContextDefault } from '@kickstartds/blog/lib/post-teaser';
|
|
4
|
+
import { Container } from '@kickstartds/core/lib/container';
|
|
5
|
+
|
|
6
|
+
const BlogTeaser = ({ date, tags, headline, teaserText, image, link, readingTime, author, }) => {
|
|
7
|
+
const teaserMetaItems = [];
|
|
8
|
+
if (date)
|
|
9
|
+
teaserMetaItems.push({
|
|
10
|
+
icon: "date",
|
|
11
|
+
text: typeof date === "number" ? new Date(date).toLocaleDateString() : date,
|
|
12
|
+
});
|
|
13
|
+
if (readingTime)
|
|
14
|
+
teaserMetaItems.push({
|
|
15
|
+
icon: "time",
|
|
16
|
+
text: readingTime,
|
|
17
|
+
});
|
|
18
|
+
return (jsx(Container, { name: "post-teaser", children: jsx(PostTeaserContextDefault
|
|
19
|
+
// @ts-expect-error
|
|
20
|
+
, {
|
|
21
|
+
// @ts-expect-error
|
|
22
|
+
image: { src: image }, meta: {
|
|
23
|
+
author: {
|
|
24
|
+
image: author.image && { src: author.image },
|
|
25
|
+
name: author.name,
|
|
26
|
+
},
|
|
27
|
+
items: teaserMetaItems,
|
|
28
|
+
}, link: {
|
|
29
|
+
label: link.label || "Read more",
|
|
30
|
+
// @ts-expect-error
|
|
31
|
+
target: link.url,
|
|
32
|
+
}, title: headline, body: teaserText, categories: tags.map((tag) => {
|
|
33
|
+
return { label: tag };
|
|
34
|
+
}) }) }));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { BlogTeaser };
|