@simple-reporting/base 1.0.39 → 1.0.40

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 (96) hide show
  1. package/dev/package.json +1 -1
  2. package/dev/src/App.vue +1 -0
  3. package/dev/src/assets/scss/editor.scss +1 -0
  4. package/dev/src/assets/scss/general.scss +18 -0
  5. package/dev/src/assets/scss/margins.scss +4 -2
  6. package/dev/src/entries/pdf.ts +5 -0
  7. package/dev/srl.config.json +60 -6
  8. package/livingdocs/010.Titles/010.title-h1/scss/_spacing-variations.scss +0 -2
  9. package/livingdocs/010.Titles/010.title-h1/scss/web.scss +7 -0
  10. package/livingdocs/010.Titles/020.title-h2/scss/_spacing-variations.scss +0 -2
  11. package/livingdocs/010.Titles/020.title-h2/scss/general.scss +10 -0
  12. package/livingdocs/010.Titles/030.title-h3/scss/_spacing-variations.scss +0 -2
  13. package/livingdocs/010.Titles/040.title-h4/scss/_spacing-variations.scss +0 -2
  14. package/livingdocs/010.Titles/050.title-h5/scss/_spacing-variations.scss +0 -2
  15. package/livingdocs/010.Titles/060.title-h6/scss/_spacing-variations.scss +0 -2
  16. package/livingdocs/020.Text/020.paragraph/scss/_spacing-variations.scss +1 -2
  17. package/livingdocs/020.Text/020.paragraph/scss/general.scss +4 -0
  18. package/livingdocs/020.Text/040.link/scss/general.scss +8 -0
  19. package/livingdocs/020.Text/060.quote-with-portrait/scss/_spacing-variations.scss +1 -2
  20. package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +12 -0
  21. package/livingdocs/020.Text/060.quote-with-portrait/scss/web.scss +7 -0
  22. package/livingdocs/020.Text/070.footnote-container/scss/_spacing-variations.scss +0 -2
  23. package/livingdocs/020.Text/080.footnote-item/scss/word.scss +8 -0
  24. package/livingdocs/030.Lists/010.unordered-list/scss/_spacing-variations.scss +0 -2
  25. package/livingdocs/040.Media/010.table/scss/_spacing-variations.scss +0 -2
  26. package/livingdocs/040.Media/020.image/scss/_spacing-variations.scss +0 -2
  27. package/livingdocs/040.Media/020.image/scss/web.scss +19 -5
  28. package/livingdocs/040.Media/030.video/ld-conf.json +1 -6
  29. package/livingdocs/040.Media/030.video/properties.json +7 -0
  30. package/livingdocs/040.Media/030.video/scss/_spacing-variations.scss +0 -2
  31. package/livingdocs/040.Media/030.video/scss/editor.scss +10 -0
  32. package/livingdocs/040.Media/030.video/scss/general.scss +6 -1
  33. package/livingdocs/040.Media/030.video/scss/pdf.scss +8 -0
  34. package/livingdocs/040.Media/030.video/video.html +27 -30
  35. package/livingdocs/040.Media/030.video/video.vue +71 -32
  36. package/livingdocs/060.Buttons/020.button/scss/general.scss +2 -2
  37. package/livingdocs/070.Container/010.aside-content-container/scss/pdf.scss +15 -0
  38. package/livingdocs/070.Container/010.aside-content-container/scss/web.scss +4 -0
  39. package/livingdocs/070.Container/020.columns-container/scss/app.scss +1 -0
  40. package/livingdocs/070.Container/020.columns-container/scss/editor.scss +1 -0
  41. package/livingdocs/070.Container/020.columns-container/scss/general.scss +5 -0
  42. package/livingdocs/070.Container/020.columns-container/scss/pdf.scss +8 -0
  43. package/livingdocs/070.Container/020.columns-container/scss/web.scss +1 -0
  44. package/livingdocs/070.Container/020.columns-container/scss/word.scss +1 -0
  45. package/livingdocs/070.Container/020.columns-container/scss/xbrl.scss +2 -0
  46. package/livingdocs/080.CV/010.cv/scss/editor.scss +10 -1
  47. package/livingdocs/080.CV/010.cv/scss/web.scss +1 -1
  48. package/livingdocs/080.CV/020.cv-time-span/scss/_spacing-variations.scss +0 -2
  49. package/livingdocs/100.Misc/010.anchor/scss/editor.scss +4 -0
  50. package/livingdocs/100.Misc/020.accordion/accordion.html +9 -9
  51. package/livingdocs/110.PDF/010.pdf-pagebreak/scss/editor.scss +1 -0
  52. package/livingdocs/110.PDF/021.pdf-columnbreak/scss/editor.scss +1 -0
  53. package/livingdocs/110.PDF/070.pdf-cover/properties.json +2 -2
  54. package/livingdocs/110.PDF/070.pdf-cover/scss/general.scss +3 -0
  55. package/livingdocs/110.PDF/100.pdf-toc-item/scss/general.scss +6 -8
  56. package/livingdocs/120.Startpage/010.hero-video/hero-video.html +10 -0
  57. package/livingdocs/120.Startpage/010.hero-video/ld-conf.json +5 -0
  58. package/livingdocs/120.Startpage/010.hero-video/properties.json +1 -0
  59. package/livingdocs/120.Startpage/010.hero-video/scss/_spacing-variations.scss +3 -0
  60. package/livingdocs/120.Startpage/010.hero-video/scss/app.scss +2 -0
  61. package/livingdocs/120.Startpage/010.hero-video/scss/editor.scss +9 -0
  62. package/livingdocs/120.Startpage/010.hero-video/scss/web.scss +78 -0
  63. package/livingdocs/120.Startpage/020.teaser-title-image-quote/ld-conf.json +18 -0
  64. package/livingdocs/120.Startpage/020.teaser-title-image-quote/properties.json +1 -0
  65. package/livingdocs/120.Startpage/020.teaser-title-image-quote/scss/_spacing-variations.scss +4 -0
  66. package/livingdocs/120.Startpage/020.teaser-title-image-quote/scss/app.scss +2 -0
  67. package/livingdocs/120.Startpage/020.teaser-title-image-quote/scss/editor.scss +22 -0
  68. package/livingdocs/120.Startpage/020.teaser-title-image-quote/scss/web.scss +41 -0
  69. package/livingdocs/120.Startpage/020.teaser-title-image-quote/teaser-title-image-quote.html +45 -0
  70. package/livingdocs/120.Startpage/030.teaser-quote/ld-conf.json +25 -0
  71. package/livingdocs/120.Startpage/030.teaser-quote/properties.json +1 -0
  72. package/livingdocs/120.Startpage/030.teaser-quote/scss/_spacing-variations.scss +3 -0
  73. package/livingdocs/120.Startpage/030.teaser-quote/scss/app.scss +2 -0
  74. package/livingdocs/120.Startpage/030.teaser-quote/scss/editor.scss +6 -0
  75. package/livingdocs/120.Startpage/030.teaser-quote/scss/web.scss +126 -0
  76. package/livingdocs/120.Startpage/030.teaser-quote/teaser-quote.html +48 -0
  77. package/livingdocs/120.Startpage/040.teaser/ld-conf.json +23 -0
  78. package/livingdocs/120.Startpage/040.teaser/scss/_spacing-variations.scss +3 -0
  79. package/livingdocs/120.Startpage/040.teaser/scss/app.scss +2 -0
  80. package/livingdocs/120.Startpage/040.teaser/scss/editor.scss +6 -0
  81. package/livingdocs/120.Startpage/040.teaser/scss/web.scss +73 -0
  82. package/livingdocs/120.Startpage/040.teaser/teaser.html +34 -0
  83. package/livingdocs/130.Hosting_Components/010.download-center/download-center.html +5 -1
  84. package/livingdocs/130.Hosting_Components/020.search/scss/web.scss +7 -44
  85. package/livingdocs/130.Hosting_Components/020.search/search.html +7 -1
  86. package/livingdocs/130.Hosting_Components/020.search/search.vue +1 -1
  87. package/livingdocs/130.Hosting_Components/020.search/searchHighlightOnTarget.vue +246 -0
  88. package/livingdocs/999.Properties/font-color/properties.json +15 -0
  89. package/package.json +1 -1
  90. package/scripts/config.js +2 -0
  91. package/scss/spacer/mixins.scss +64 -12
  92. package/srl/srl/fa/index.scss +2 -2
  93. package/srl/srl/fa/source-free.scss +1 -4
  94. package/srl/srl/pdf/PDFNestedContainers.ts +110 -0
  95. package/srl/srl/pdf/PDFNotes.ts +4 -2
  96. package/srl/srl/pdf/PDFSetPageNumbers.ts +3 -1
@@ -3,41 +3,80 @@ import { onMounted, ref, useId } from 'vue'
3
3
 
4
4
  const id = useId()
5
5
  const rootEl = ref<HTMLDivElement>()
6
- const button = ref<HTMLButtonElement>()
7
- const video = ref<HTMLVideoElement>()
6
+ const button = ref<HTMLButtonElement | null>(null)
7
+ const thumbnail = ref<HTMLImageElement | null>(null)
8
+ const video = ref<HTMLVideoElement | null>(null)
9
+ const iframe = ref<HTMLIFrameElement | null>(null)
10
+ const iframeSrc = ref<string | null>(null)
8
11
 
9
12
  onMounted(() => {
10
- video.value = rootEl.value?.querySelector('video') || undefined
13
+ button.value = rootEl.value?.querySelector('button') || null
14
+ if (button.value) {
15
+ const buttonEl = button.value as HTMLButtonElement
16
+ const label = buttonEl.textContent || 'Play Video'
17
+ buttonEl.setAttribute('aria-label', label)
18
+ buttonEl.setAttribute('title', label)
19
+ buttonEl.setAttribute('aria-controls', id)
20
+ }
21
+
22
+ thumbnail.value = rootEl.value?.querySelector('.srl-video__thumbnail') || null
23
+
24
+ video.value = rootEl.value?.querySelector('video') || null
11
25
  if (video.value) {
12
- video.value.id = id
13
- video.value.playsInline = true
14
- video.value.controls = true
15
- video.value.tabIndex = -1
16
- button.value = rootEl.value?.querySelector('button') || undefined
17
- if (button.value) {
18
- const label = button.value.textContent || 'Play Video'
19
- button.value.setAttribute('aria-label', label)
20
- button.value.setAttribute('title', label)
21
- button.value.setAttribute('aria-controls', id)
22
- button.value.addEventListener('click', () => {
23
- rootEl.value?.classList.add('srl-video__started')
24
- if (video.value) {
25
- video.value.tabIndex = 0
26
- }
27
-
28
- if (button.value) {
29
- button.value.setAttribute('aria-hidden', 'true')
30
- button.value.setAttribute('tabindex', '-1')
31
- }
32
-
33
- const thumbnail = rootEl.value?.querySelector('.srl-video__thumbnail') as HTMLImageElement
34
- if (thumbnail) {
35
- thumbnail.ariaHidden = 'true'
36
- }
37
- video.value?.focus()
38
- video.value?.play()
39
- })
40
- }
26
+ const videoEl = video.value as HTMLVideoElement
27
+ videoEl.id = id
28
+ videoEl.playsInline = true
29
+ videoEl.controls = true
30
+ videoEl.tabIndex = -1
31
+ }
32
+
33
+ iframe.value = rootEl.value?.querySelector('iframe') || null
34
+ if (iframe.value) {
35
+ const iframeEl = iframe.value as HTMLIFrameElement
36
+ iframeSrc.value = iframeEl.getAttribute('src')
37
+ iframeEl.removeAttribute('src')
38
+ iframeEl.id = id
39
+ iframeEl.tabIndex = -1
40
+ }
41
+
42
+ if (
43
+ button.value
44
+ && thumbnail.value
45
+ && (
46
+ video.value
47
+ || (
48
+ iframe.value
49
+ && iframeSrc.value
50
+ )
51
+ )
52
+ ) {
53
+ const buttonEl = button.value as HTMLButtonElement
54
+ const thumbnailEl = thumbnail.value as HTMLImageElement
55
+ buttonEl.addEventListener('click', () => {
56
+ rootEl.value?.classList.add('srl-video__started')
57
+
58
+ buttonEl.setAttribute('aria-hidden', 'true')
59
+ buttonEl.setAttribute('tabindex', '-1')
60
+
61
+ if (video.value) {
62
+ const videoEl = video.value as HTMLVideoElement
63
+ videoEl.tabIndex = 0
64
+ videoEl.focus()
65
+ videoEl.play()
66
+ } else if (iframe.value && iframeSrc.value) {
67
+ const iframeEl = iframe.value as HTMLVideoElement
68
+ const iframeSrcString = iframeSrc.value as string
69
+ const seperator = iframeSrcString.includes('?') ? '&' : '?'
70
+ iframeEl.setAttribute(
71
+ 'src',
72
+ `${iframeSrcString}${seperator}autoplay=1`
73
+ )
74
+ iframeEl.tabIndex = 0
75
+ iframeEl.focus()
76
+ }
77
+
78
+ thumbnailEl.setAttribute('hidden', '')
79
+ })
41
80
  }
42
81
  })
43
82
  </script>
@@ -15,11 +15,11 @@
15
15
  }
16
16
 
17
17
  .srl-button-icon-arrow-left-before & {
18
- @include fa.icon(chevron-left);
18
+ @include fa.icon(arrow-left);
19
19
  }
20
20
 
21
21
  .srl-button-icon-arrow-right-after & {
22
- @include fa.icon(chevron-right);
22
+ @include fa.icon(arrow-right);
23
23
  }
24
24
 
25
25
  .srl-button-icon-download-after & {
@@ -1,3 +1,18 @@
1
+ @use 'srl';
2
+ @use "sass:map";
3
+
1
4
  .srl-aside-content-container {
2
5
  justify-content: space-between;
6
+ flex-direction: row;
7
+ align-items: flex-start;
8
+ }
9
+
10
+ .srl-aside-content-container__aside {
11
+ &:before {
12
+ content: "";
13
+ display: block;
14
+ background: srl.colors-grey-200();
15
+ height: srl.system-size-unit(1pt);
16
+ width: srl.system-size-unit(80pt);
17
+ }
3
18
  }
@@ -1 +1,5 @@
1
1
  @use "srl";
2
+
3
+ .srl-aside-content-container {
4
+ gap: srl.spacer-get(200);
5
+ }
@@ -0,0 +1,5 @@
1
+ @use "srl";
2
+
3
+ .srl-columns__column {
4
+ flex: 1 0 0;
5
+ }
@@ -0,0 +1,8 @@
1
+ @use "srl";
2
+ @use "@/assets/scss/margins";
3
+
4
+ @include srl.system-add-root-style(srl-model-flex-direction, row);
5
+
6
+ .srl-columns__column * {
7
+ width: 100%;
8
+ }
@@ -0,0 +1,2 @@
1
+ @use "srl";
2
+ @use "general";
@@ -1 +1,10 @@
1
- @use "web";
1
+ @use "srl";
2
+ @use "web";
3
+
4
+ .srl-cv {
5
+ display: block;
6
+ }
7
+
8
+ .srl-cv__button-container {
9
+ @include srl.spacer-margin-block(400);
10
+ }
@@ -24,7 +24,7 @@
24
24
  margin: 0;
25
25
  padding: 0;
26
26
  position: relative;
27
- top: calc((srl.spacer-get(150) + (#{srl.typography-get-line-height(button-text)}) / 2) * -1);
27
+ top: calc((var(--srl-button-height, unset) - 7px) / 2 * -1);
28
28
  z-index: -1;
29
29
  border-top: 0;
30
30
  border-bottom: 1px solid srl.colors-grey-200();
@@ -9,6 +9,4 @@ $margins: (
9
9
  ('.srl-cv-time-span', '.srl-title-h4'): 400,
10
10
  ('.srl-cv-time-span', '.srl-title-h5'): 400,
11
11
  ('.srl-cv-time-span', '.srl-title-h6'): 400,
12
- ('.srl-cv-time-span', '.srl-pdf-pagebreak'): 800,
13
- ('.srl-cv-time-span', '.srl-anchor'): 800,
14
12
  )
@@ -1,6 +1,10 @@
1
1
  @use 'srl';
2
2
  @use 'web';
3
3
 
4
+ .srl-anchor {
5
+ @include srl.spacer-margin-block(1600);
6
+ }
7
+
4
8
  .srl-anchor__text {
5
9
  @extend %srl-regular-width;
6
10
  @include srl.typography-pdf-header()
@@ -1,42 +1,42 @@
1
1
  <srl-ld-accordion class="srl-category-accordion srl-category-accordion--category"
2
2
  data-remove-from-pdf="transient"
3
3
  data-remove-from-word="transient"
4
- data-remove-from-xbrl="transient"
4
+ data-remove-from-xhtml="transient"
5
5
  >
6
6
  <div class="srl-category-accordion__inner"
7
7
  data-remove-from-web="transient"
8
8
  data-remove-from-pdf="transient"
9
9
  data-remove-from-word="transient"
10
- data-remove-from-xbrl="transient"
10
+ data-remove-from-xhtml="transient"
11
11
  >
12
12
  <div class="srl-category-accordion__inner-head"
13
13
  data-remove-from-web="transient"
14
14
  data-remove-from-pdf="transient"
15
15
  data-remove-from-word="transient"
16
- data-remove-from-xbrl="transient"
16
+ data-remove-from-xhtml="transient"
17
17
  >
18
18
  <div class="srl-category-accordion__head"
19
19
  data-remove-from-web="transient"
20
20
  data-remove-from-pdf="transient"
21
21
  data-remove-from-word="transient"
22
- data-remove-from-xbrl="transient"
22
+ data-remove-from-xhtml="transient"
23
23
  >
24
24
  <div class="srl-category-accordion__head--btn"
25
25
  data-remove-from-web="transient"
26
26
  data-remove-from-pdf="transient"
27
27
  data-remove-from-word="transient"
28
- data-remove-from-xbrl="transient"
28
+ data-remove-from-xhtml="transient"
29
29
  >
30
30
  <template-header doc-container="header"
31
31
  data-remove-from-pdf="transient"
32
32
  data-remove-from-word="transient"
33
- data-remove-from-xbrl="transient"
33
+ data-remove-from-xhtml="transient"
34
34
  ></template-header>
35
35
  <span class="srl-category-accordion__icon"
36
36
  data-remove-from-web="complete"
37
37
  data-remove-from-pdf="complete"
38
38
  data-remove-from-word="complete"
39
- data-remove-from-xbrl="complete"
39
+ data-remove-from-xhtml="complete"
40
40
  ></span>
41
41
  </div>
42
42
  </div>
@@ -45,12 +45,12 @@
45
45
  data-remove-from-web="transient"
46
46
  data-remove-from-pdf="transient"
47
47
  data-remove-from-word="transient"
48
- data-remove-from-xbrl="transient"
48
+ data-remove-from-xhtml="transient"
49
49
  >
50
50
  <template-content class="srl-category-accordion__content-inner" doc-container="content"
51
51
  data-remove-from-pdf="transient"
52
52
  data-remove-from-word="transient"
53
- data-remove-from-xbrl="transient"
53
+ data-remove-from-xhtml="transient"
54
54
  ></template-content>
55
55
  </div>
56
56
  </div>
@@ -3,6 +3,7 @@
3
3
 
4
4
  .srl-pdf-pagebreak {
5
5
  text-align: center;
6
+ @include srl.spacer-margin-block(1600);
6
7
  }
7
8
 
8
9
  .srl-pdf-pagebreak__editor-text {
@@ -3,6 +3,7 @@
3
3
 
4
4
  .srl-pdf-columnbreak {
5
5
  text-align: center;
6
+ @include srl.spacer-margin-block(1600);
6
7
  }
7
8
 
8
9
  .srl-pdf-columnbreak__editor-text {
@@ -7,8 +7,8 @@
7
7
  "caption": "Normal"
8
8
  },
9
9
  {
10
- "caption": "Black",
11
- "value": "srl-cover--font-color-black"
10
+ "caption": "White",
11
+ "value": "srl-color-white-1000"
12
12
  },
13
13
  {
14
14
  "caption": "Primary",
@@ -20,3 +20,6 @@ $page-margin-left: srl.system-size-unit(map.get(srl.$meta, pdf, margin, left));
20
20
  justify-content: space-between;
21
21
  }
22
22
 
23
+ .srl-pdf-cover__logo {
24
+ max-width: 118pt;
25
+ }
@@ -8,19 +8,17 @@
8
8
  border-top: srl.system-size-unit(1pt) solid srl.colors-black-1000();
9
9
  text-decoration: none;
10
10
  @include srl.typography-toc-item();
11
+ color: srl.colors-black-1000();
11
12
  }
12
13
 
13
14
  .srl-pdf-toc__text {
14
15
  width: calc(100% - srl.system-size-unit(24pt) - srl.spacer-get(100));
16
+ }
15
17
 
16
- &:after {
17
- .srl-pdf-toc__link:not([href]) & {
18
- content: "No link provided";
19
- color: #FF0000;
20
- display: inline-block;
21
- margin-left: srl.spacer-get(100)
22
- }
23
- }
18
+ .srl-pdf-toc__item:not([href]) .srl-pdf-toc__text:after {
19
+ content: 'No link provided';
20
+ color: #ff0000;
21
+ display: block;
24
22
  }
25
23
 
26
24
  .srl-pdf-toc__page-number {
@@ -0,0 +1,10 @@
1
+ <div class="srl-hero-video">
2
+ <div class="srl-hero-video__video-container" doc-html="free-html">
3
+
4
+ </div>
5
+ <div class="srl-hero-video__content-container">
6
+ <h1 class="srl-title-h1 srl-linkable">
7
+ <span class="srl-title-h1__text" doc-editable="title-h1">Geschäftsbericht 2025</span>
8
+ </h1>
9
+ </div>
10
+ </div>
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "hero-video",
3
+ "label": "Hero video",
4
+ "properties": [ "font-color" ]
5
+ }
@@ -0,0 +1,3 @@
1
+ $margins: (
2
+ ('.srl-hero-video', '*'): 3200,
3
+ );
@@ -0,0 +1,2 @@
1
+ @use "srl";
2
+ @use "web";
@@ -0,0 +1,9 @@
1
+ @use "srl";
2
+ @use "web";
3
+
4
+ .srl-hero-video {
5
+ height: 100%;
6
+ width: 100%;
7
+ aspect-ratio: 16 / 9;
8
+ background: srl.colors-primary-1000();
9
+ }
@@ -0,0 +1,78 @@
1
+ @use "srl";
2
+ @use "@/assets/scss/margins";
3
+ @use "spacing-variations";
4
+
5
+ .srl-hero-video {
6
+ @extend %srl-breakout-grid-base;
7
+
8
+ @include srl.grid-media-up(tablet-ls) {
9
+ gap: var(--srl-gutter-column-gap);
10
+ }
11
+ }
12
+
13
+ @include margins.srl-component-margin(spacing-variations.$margins);
14
+
15
+ .srl-hero-video__video-container {
16
+ position: relative;
17
+ z-index: 0;
18
+ overflow: clip;
19
+ width: 100vw;
20
+ grid-row: 1;
21
+ grid-column: full-start / full-end;
22
+ overflow: hidden;
23
+ max-height: calc(100dvh - var(--srl-header-height, 0px));
24
+ aspect-ratio: 10 / 16;
25
+
26
+ @include srl.grid-media-up(tablet-pt) {
27
+ aspect-ratio: 834 / 702;
28
+ width: 100%;
29
+ }
30
+
31
+ @include srl.grid-media-up(desktop-large) {
32
+ aspect-ratio: inherit;
33
+ }
34
+ }
35
+
36
+ .srl-hero-video__video {
37
+ width: 100%;
38
+ max-width: 100%;
39
+ height: 100%;
40
+ object-fit: cover;
41
+ display: block;
42
+ }
43
+
44
+ .srl-hero-video__video--mobile {
45
+ @include srl.grid-media-up(tablet-pt) {
46
+ display: none;
47
+ }
48
+ }
49
+
50
+ .srl-hero-video__video--desktop {
51
+ display: none;
52
+
53
+ @include srl.grid-media-up(tablet-pt) {
54
+ display: block;
55
+ }
56
+ }
57
+
58
+ .srl-hero-video__content-container {
59
+ padding: 0 var(--srl-container-padding, unset) var(--srl-container-padding, unset);
60
+ grid-column: content-start / content-end;
61
+ display: grid;
62
+ grid-template-columns: subgrid;
63
+ position: relative;
64
+ grid-row: 1;
65
+ align-self: end;
66
+
67
+ @include srl.grid-media-up(tablet-ls) {
68
+ padding: 0 0 var(--srl-container-padding, unset);
69
+ }
70
+
71
+ @include srl.grid-media-up(desktop-large) {
72
+ padding-bottom: srl.spacer-get(800);
73
+ }
74
+
75
+ > * {
76
+ grid-column: inherit;
77
+ }
78
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "teaser-title-image-quote",
3
+ "label": "Teaser title/image/quote",
4
+ "properties": [
5
+ "icon"
6
+ ],
7
+ "directives": {
8
+ "show-alt-text": {
9
+ "type": "toggle",
10
+ "label": "Show alt text",
11
+ "default": false
12
+ },
13
+ "image": {
14
+ "imageRatios": ["1:1", "3:2", "4:3", "16:9"],
15
+ "allowOriginalRatio": true
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,4 @@
1
+ $margins: (
2
+ ('.srl-title-image-quote', '*'): 3200,
3
+ ('.srl-title-image-quote__title-container', '*'): 400
4
+ )
@@ -0,0 +1,2 @@
1
+ @use "srl";
2
+ @use "web";
@@ -0,0 +1,22 @@
1
+ @use "srl";
2
+ @use "web";
3
+
4
+ .srl-title-image-quote__alt-text {
5
+ // Mobile
6
+ @include srl.grid-col(4);
7
+
8
+ // Mobile landscape
9
+ @include srl.grid-col(4, phone-ls);
10
+
11
+ // Tablet portrait
12
+ @include srl.grid-col(8, tablet-pt);
13
+
14
+ // Tablet landscape
15
+ @include srl.grid-col(6, tablet-ls);
16
+
17
+ // Desktop
18
+ @include srl.grid-col(6, desktop);
19
+
20
+ // Desktop large
21
+ @include srl.grid-col(6, desktop-large);
22
+ }
@@ -0,0 +1,41 @@
1
+ @use "srl";
2
+ @use "@/assets/scss/margins";
3
+ @use "spacing-variations";
4
+
5
+ @include margins.srl-component-margin(spacing-variations.$margins);
6
+
7
+ .srl-title-image-quote__title-container {
8
+ @extend %srl-wide-width;
9
+ }
10
+
11
+ .srl-title-image-quote__image-content-container {
12
+ display: grid;
13
+ grid-template-columns: subgrid;
14
+ grid-column: 1 / calc(var(--srl-gutter-columns) + 1);
15
+ row-gap: srl.spacer-get(200);
16
+ }
17
+
18
+ .srl-title-image-quote__image-container,
19
+ .srl-title-image-quote__content-container {
20
+ // Mobile
21
+ @include srl.grid-col(4);
22
+
23
+ // Mobile landscape
24
+ @include srl.grid-col(4, phone-ls);
25
+
26
+ // Tablet portrait
27
+ @include srl.grid-col(8, tablet-pt);
28
+
29
+ // Tablet landscape
30
+ @include srl.grid-col(6, tablet-ls);
31
+
32
+ // Desktop
33
+ @include srl.grid-col(6, desktop);
34
+
35
+ // Desktop large
36
+ @include srl.grid-col(6, desktop-large);
37
+
38
+ @include srl.grid-media-up(tablet-ls) {
39
+ grid-row: 1;
40
+ }
41
+ }
@@ -0,0 +1,45 @@
1
+ <div class="srl-grid srl-title-image-quote">
2
+ <div class="srl-title-image-quote__title-container">
3
+ <h2 class="srl-title-h2">
4
+ <span class="srl-title-h2__number-text-container">
5
+ <span class="srl-title-h2__text" doc-editable="title-h2">
6
+ Continually coordinate interactive infrastructures for goal-oriented
7
+ </span>
8
+ </span>
9
+ </h2>
10
+ </div>
11
+ <div class="srl-title-image-quote__image-content-container">
12
+ <div class="srl-title-image-quote__alt-text" doc-editable="alt-tag" doc-toggle="show-alt-text"
13
+ data-alt-text-source="alt">
14
+ Write the alt text here (optional, but recommended)
15
+ </div>
16
+ <div class="srl-title-image-quote__image-container">
17
+ <img doc-image="image" data-alt-text-target="alt">
18
+ </div>
19
+ <div class="srl-title-image-quote__content-container">
20
+ <blockquote class="srl-quote">
21
+ <div class="srl-quote__text">
22
+ <p class="srl-quote__quote srl-linkable" doc-editable="quote-text">
23
+ Duis autem vel eum iriure dolor esse.
24
+ </p>
25
+ <cite class="srl-quote__cite">
26
+ <p class="srl-quote__name" doc-editable="quote-name" doc-optional>
27
+ Max Mustermann
28
+ </p>
29
+ <p class="srl-quote__position" doc-editable="quote-position" doc-optional>
30
+ CEO
31
+ </p>
32
+ </cite>
33
+ </div>
34
+ </blockquote>
35
+ <div class="srl-button-container">
36
+ <div class="srl-button-container__inner">
37
+ <a doc-link="href" class="srl-button srl-button-icon-arrow-right-after">
38
+ <i class="srl-button__icon srl-icon srl-icon-arrow-right" aria-hidden="true"></i>
39
+ <span class="srl-button__text" doc-editable="button-text">Button</span>
40
+ </a>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ </div>
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "teaser-quote",
3
+ "label": "Teaser quote",
4
+ "properties": [
5
+ "icon",
6
+ "reverse",
7
+ "hide-quote-characters",
8
+ "font-color"
9
+ ],
10
+ "directives": {
11
+ "show-alt-text": {
12
+ "type": "toggle",
13
+ "label": "Show alt text",
14
+ "default": false
15
+ },
16
+ "image-mobile": {
17
+ "imageRatios": ["393:702"],
18
+ "allowOriginalRatio": false
19
+ },
20
+ "image": {
21
+ "imageRatios": ["16:9"],
22
+ "allowOriginalRatio": false
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,3 @@
1
+ $margins: (
2
+ ('.srl-teaser-quote', '*'): 3200
3
+ )