@simple-reporting/base 1.0.15 → 1.0.17

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 (101) hide show
  1. package/dev/eslint.config.js +5 -0
  2. package/dev/package.json +1 -1
  3. package/dev/src/App.vue +2 -7
  4. package/dev/src/assets/scss/components/icons.scss +287 -0
  5. package/dev/src/assets/scss/components/note/accordion.scss +57 -24
  6. package/dev/src/assets/scss/components/round-button.scss +75 -0
  7. package/dev/src/assets/scss/general.scss +2 -0
  8. package/dev/src/assets/scss/placeholders.scss +315 -1
  9. package/dev/src/assets/scss/web.scss +1 -0
  10. package/dev/src/components/{PageHeader.vue → Page/Header.vue} +1 -2
  11. package/dev/src/views/ArticleView.vue +2 -3
  12. package/dev/srl.config.json +23 -8
  13. package/livingdocs/010.Titles/020.title-h2/title-h2.html +5 -6
  14. package/livingdocs/010.Titles/030.title-h3/title-h3.html +4 -5
  15. package/livingdocs/010.Titles/040.title-h4/title-h4.html +4 -5
  16. package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +1 -0
  17. package/livingdocs/040.Media/010.table/ld-conf.json +1 -6
  18. package/livingdocs/040.Media/010.table/scss/general.scss +53 -1
  19. package/livingdocs/040.Media/010.table/table.html +11 -9
  20. package/livingdocs/040.Media/010.table/table.vue +0 -1
  21. package/livingdocs/040.Media/030.video/ld-conf.json +3 -0
  22. package/livingdocs/040.Media/030.video/scss/general.scss +4 -0
  23. package/livingdocs/040.Media/030.video/scss/web.scss +23 -32
  24. package/livingdocs/040.Media/030.video/video.html +13 -12
  25. package/livingdocs/040.Media/030.video/video.vue +53 -0
  26. package/livingdocs/060.Buttons/010.button-container/button-container.html +5 -0
  27. package/livingdocs/060.Buttons/010.button-container/ld-conf.json +19 -0
  28. package/livingdocs/060.Buttons/010.button-container/properties.json +1 -0
  29. package/livingdocs/060.Buttons/010.button-container/scss/app.scss +1 -0
  30. package/livingdocs/060.Buttons/010.button-container/scss/editor.scss +1 -0
  31. package/livingdocs/060.Buttons/010.button-container/scss/general.scss +6 -0
  32. package/livingdocs/060.Buttons/010.button-container/scss/pdf.scss +1 -0
  33. package/livingdocs/060.Buttons/010.button-container/scss/web.scss +1 -0
  34. package/livingdocs/060.Buttons/010.button-container/scss/word.scss +1 -0
  35. package/livingdocs/060.Buttons/010.button-container/scss/xbrl.scss +2 -0
  36. package/livingdocs/060.Buttons/020.button/button.html +4 -0
  37. package/livingdocs/060.Buttons/020.button/ld-conf.json +15 -0
  38. package/livingdocs/060.Buttons/020.button/scss/app.scss +1 -0
  39. package/livingdocs/060.Buttons/020.button/scss/editor.scss +1 -0
  40. package/livingdocs/060.Buttons/020.button/scss/general.scss +89 -0
  41. package/livingdocs/060.Buttons/020.button/scss/pdf.scss +1 -0
  42. package/livingdocs/060.Buttons/020.button/scss/web.scss +1 -0
  43. package/livingdocs/060.Buttons/020.button/scss/word.scss +1 -0
  44. package/livingdocs/060.Buttons/020.button/scss/xbrl.scss +3 -0
  45. package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +1 -0
  46. package/livingdocs/110.PDF/040.pdf-chapter-title/scss/editor.scss +0 -6
  47. package/livingdocs/999.Properties/hide-quote-characters/properties.json +1 -1
  48. package/livingdocs/999.Properties/icon/properties.json +19 -0
  49. package/livingdocs/999.Properties/reverse/properties.json +7 -0
  50. package/package.json +1 -1
  51. package/plugins/viteSrlPlugin.d.ts +5 -1
  52. package/plugins/viteSrlPlugin.js +7 -3
  53. package/scripts/build.js +118 -17
  54. package/scripts/ldd/mapLdd.js +2 -2
  55. package/scripts/vue/components.js +14 -15
  56. package/srl/components/Srl/{Note → Category}/Accordion/Content.vue +7 -1
  57. package/srl/components/Srl/{Note → Category}/Accordion.vue +2 -1
  58. package/srl/components/Srl/Menu/Item.vue +7 -3
  59. package/srl/components/Srl/Menu.vue +2 -1
  60. package/srl/composables/config.ts +13 -14
  61. package/srl/composables/cssStyles.ts +1 -1
  62. package/srl/composables/menu.ts +5 -1
  63. package/srl/composables/viewPort.ts +4 -3
  64. package/srl/plugins/initProject.ts +1 -1
  65. package/srl/utils/html.ts +3 -3
  66. package/dev/src/components/SrlPage/KFCApplication/KFCApplication.vue +0 -715
  67. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownCharts.vue +0 -112
  68. package/dev/src/components/SrlPage/KFCApplication/KFCDropdownPeriod.vue +0 -85
  69. package/dev/src/components/SrlPage/KFCApplication/KFCTable.vue +0 -63
  70. package/dev/src/components/SrlPage/KFCApplication/hooks/kfcData.ts +0 -9
  71. package/dev/src/components/SrlPage/KFCApplication/models/KFCApplication.ts +0 -183
  72. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-basic.scss +0 -1136
  73. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-custom.scss +0 -71
  74. package/dev/src/components/SrlPage/KFCApplication/scss/_highcharts-general.scss +0 -113
  75. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison-dropdown.scss +0 -189
  76. package/dev/src/components/SrlPage/KFCApplication/scss/_iz-keyfigure-comparison.scss +0 -151
  77. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-loading.scss +0 -40
  78. package/dev/src/components/SrlPage/KFCApplication/scss/_kfc-print.scss +0 -20
  79. package/dev/src/components/SrlPage/KFCApplication/scss/_srl-button-kfc.scss +0 -21
  80. package/dev/src/components/SrlPage/KFCApplication/scss/_variables.scss +0 -10
  81. package/dev/src/components/SrlPage/KFCApplication/services/xlsxParser.ts +0 -194
  82. package/dev/src/components/SrlPage/KFCApplication/theme/SvgColumnView.vue +0 -28
  83. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDownloadChart.vue +0 -26
  84. package/dev/src/components/SrlPage/KFCApplication/theme/SvgDropdown.vue +0 -18
  85. package/dev/src/components/SrlPage/KFCApplication/theme/SvgIndexedValues.vue +0 -18
  86. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLegendSwap.vue +0 -18
  87. package/dev/src/components/SrlPage/KFCApplication/theme/SvgLineView.vue +0 -28
  88. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPDFChart.vue +0 -26
  89. package/dev/src/components/SrlPage/KFCApplication/theme/SvgPrintChart.vue +0 -33
  90. package/dev/src/components/SrlPage/KFCApplication/theme/SvgTableView.vue +0 -67
  91. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloader.js +0 -455
  92. package/dev/src/components/SrlPage/KFCApplication/utils/XDownloaderStyle.js +0 -44
  93. package/dev/src/components/SrlPage/KFCApplication/utils/XTableNamer.js +0 -68
  94. /package/dev/src/components/{BypassLinks.vue → Page/BypassLinks.vue} +0 -0
  95. /package/dev/src/components/{PageFooter.vue → Page/Footer.vue} +0 -0
  96. /package/dev/src/components/{PageMain.vue → Page/Main.vue} +0 -0
  97. /package/dev/src/components/{MainNavigation.vue → Page/MainNavigation.vue} +0 -0
  98. /package/dev/src/components/{NavLanguages.vue → Page/NavLanguages.vue} +0 -0
  99. /package/dev/src/components/{PrevNext.vue → Page/PrevNext.vue} +0 -0
  100. /package/srl/{components/App.vue → App.vue} +0 -0
  101. /package/srl/components/Srl/{Note → Category}/Accordion/Toggle.vue +0 -0
@@ -1,5 +1,6 @@
1
1
  @use "srl";
2
2
  @use "placeholders";
3
+ @use "./components/note/accordion";
3
4
 
4
5
  .srl-grid {
5
6
  @extend %srl-grid-base;
@@ -1,5 +1,4 @@
1
1
  <script lang="ts" setup>
2
- import NavLanguages from '@/components/NavLanguages.vue'
3
2
  import { useLocale } from '#composables'
4
3
 
5
4
  const locale = useLocale()
@@ -12,7 +11,7 @@ const locale = useLocale()
12
11
  <img class="srl-logo__img" src="@/assets/images/mms-logo-white.svg" alt="MMS Solutions" />
13
12
  </router-link>
14
13
  </div>
15
- <NavLanguages />
14
+ <PageNavLanguages />
16
15
  </header>
17
16
  </template>
18
17
 
@@ -1,12 +1,11 @@
1
1
  <script setup lang="ts">
2
- import PrevNext from '@/components/PrevNext.vue'
3
2
  const props = defineProps<{
4
3
  mainNavigation: NsWowNavigationItem[]
5
4
  }>()
6
5
  </script>
7
6
 
8
7
  <template>
9
- <PrevNext :mainNavigation="props.mainNavigation">
8
+ <PagePrevNext :mainNavigation="props.mainNavigation">
10
9
  <SrlArticleRoot />
11
- </PrevNext>
10
+ </PagePrevNext>
12
11
  </template>
@@ -203,9 +203,6 @@
203
203
  "up": {
204
204
  "tablet-pt": {
205
205
  "font-size": 16
206
- },
207
- "desktop": {
208
- "font-size": 16
209
206
  }
210
207
  }
211
208
  }
@@ -227,9 +224,6 @@
227
224
  "up": {
228
225
  "tablet-pt": {
229
226
  "font-size": 16
230
- },
231
- "desktop": {
232
- "font-size": 16
233
227
  }
234
228
  }
235
229
  }
@@ -514,7 +508,7 @@
514
508
  "name": "button-text",
515
509
  "font-family": "Inter",
516
510
  "font-size": 12,
517
- "line-height": 1.5,
511
+ "line-height": 1,
518
512
  "font-style": "normal",
519
513
  "font-weight": 400,
520
514
  "color": "black-1000",
@@ -522,7 +516,7 @@
522
516
  "media": {
523
517
  "print": {
524
518
  "font-size": "7pt",
525
- "line-height": 1.429
519
+ "line-height": 1
526
520
  },
527
521
  "up": {
528
522
  "tablet-pt": {
@@ -765,6 +759,27 @@
765
759
  "name": "secondary-1000",
766
760
  "color": "#001987"
767
761
  },
762
+
763
+ {
764
+ "name": "tertiary-200",
765
+ "color": "#ccd1e7"
766
+ },
767
+ {
768
+ "name": "tertiary-400",
769
+ "color": "#99a3cf"
770
+ },
771
+ {
772
+ "name": "tertiary-600",
773
+ "color": "#6675b7"
774
+ },
775
+ {
776
+ "name": "tertiary-800",
777
+ "color": "#33479f"
778
+ },
779
+ {
780
+ "name": "tertiary-1000",
781
+ "color": "#001987"
782
+ },
768
783
  {
769
784
  "name": "yellow-200",
770
785
  "color": "#fff7dc"
@@ -1,10 +1,9 @@
1
- <h2 class="srl-grid srl-title-h2 srl-linkable">
1
+ <h2 class="srl-grid srl-title-h2 srl-linkable" data-category-marker="container">
2
2
  <span
3
- class="srl-grid__inner srl-title-h2__number-text-container js-notes-marker"
4
- data-category-marker="container"
3
+ class="srl-grid__inner srl-title-h2__number-text-container"
5
4
  >
6
5
  <span
7
- class="srl-title-h2__number js-notes-marker-number"
6
+ class="srl-title-h2__number"
8
7
  data-category-marker="number"
9
8
  doc-optional
10
9
  doc-editable="title-h2-number"
@@ -12,11 +11,11 @@
12
11
  1
13
12
  </span>
14
13
  <span
15
- class="srl-title-h2__text js-notes-marker-text"
14
+ class="srl-title-h2__text"
16
15
  data-category-marker="text"
17
16
  doc-editable="title-h2-text"
18
17
  >
19
18
  Title h2 Lorem ipsum dolor sit amet
20
19
  </span>
21
20
  </span>
22
- </h2>
21
+ </h2>
@@ -1,10 +1,9 @@
1
- <h3 class="srl-grid srl-title-h3 srl-linkable">
1
+ <h3 class="srl-grid srl-title-h3 srl-linkable" data-category-marker="container">
2
2
  <span
3
- class="srl-grid__inner srl-title-h3__number-text-container js-notes-marker"
4
- data-category-marker="container"
3
+ class="srl-grid__inner srl-title-h3__number-text-container"
5
4
  >
6
5
  <span
7
- class="srl-title-h3__number js-notes-marker-number"
6
+ class="srl-title-h3__number"
8
7
  data-category-marker="number"
9
8
  doc-optional
10
9
  doc-editable="title-h3-number"
@@ -12,7 +11,7 @@
12
11
  1.1.
13
12
  </span>
14
13
  <span
15
- class="srl-title-h3__text js-notes-marker-text"
14
+ class="srl-title-h3__text"
16
15
  data-category-marker="text"
17
16
  doc-editable="title-h3-text"
18
17
  >
@@ -1,10 +1,9 @@
1
- <h4 class="srl-grid srl-title-h4 srl-linkable">
1
+ <h4 class="srl-grid srl-title-h4 srl-linkable" data-category-marker="container">
2
2
  <span
3
- class="srl-grid__inner srl-title-h4__number-text-container js-notes-marker"
4
- data-category-marker="container"
3
+ class="srl-grid__inner srl-title-h4__number-text-container"
5
4
  >
6
5
  <span
7
- class="srl-title-h4__number js-notes-marker-number"
6
+ class="srl-title-h4__number"
8
7
  data-category-marker="number"
9
8
  doc-optional
10
9
  doc-editable="title-h4-number"
@@ -12,7 +11,7 @@
12
11
  1.1.1.
13
12
  </span>
14
13
  <span
15
- class="srl-title-h4__text js-notes-marker-text"
14
+ class="srl-title-h4__text"
16
15
  data-category-marker="text"
17
16
  doc-editable="title-h4-text"
18
17
  >
@@ -7,6 +7,7 @@ $quote-close: map.get(srl.$meta, quote, quote-close);
7
7
 
8
8
  .srl-quote {
9
9
  align-items: center;
10
+ row-gap: srl.spacer-get(300);
10
11
  @include srl.spacer-margin-top(400);
11
12
  }
12
13
 
@@ -4,12 +4,7 @@
4
4
  "properties": ["pdf-padding", "pdf-font-size", "width-reduced", "pdf-spacer"],
5
5
  "directives": {
6
6
  "nswow-table": {
7
- "services": [
8
- {
9
- "service": "nswow-table",
10
- "label": "ns.wow Table"
11
- }
12
- ]
7
+ "service": "nswow-table"
13
8
  }
14
9
  }
15
10
  }
@@ -10,6 +10,7 @@ $table-border-bold: map.get(srl.$meta, table, border, bold);
10
10
  @include srl.system-add-root-style(srl-table-border-bold-width, srl.system-size-unit(map.get($table-border-bold, media, print, width)), print);
11
11
 
12
12
  .srl-table {
13
+ display: block;
13
14
  @include srl.spacer-margin-top(300);
14
15
  }
15
16
 
@@ -22,9 +23,17 @@ $table-border-bold: map.get(srl.$meta, table, border, bold);
22
23
  table {
23
24
  border-collapse: collapse;
24
25
  border-spacing: 0;
25
- width: 100%;
26
+ min-width: 100%;
26
27
  margin: 0;
27
28
  table-layout: fixed;
29
+
30
+ .responsive-table & {
31
+ table-layout: auto;
32
+ }
33
+
34
+ @-moz-document url-prefix() {
35
+ border-collapse: inherit;
36
+ }
28
37
  }
29
38
 
30
39
  th,
@@ -294,6 +303,31 @@ td {
294
303
  /*
295
304
  Responsive CSS tables
296
305
  */
306
+ &:first-child {
307
+ .responsive-table & {
308
+ background: white;
309
+ position: sticky;
310
+ left: 0;
311
+ z-index: 2;
312
+ }
313
+
314
+ &:not(:first-child) {
315
+ .responsive-table & {
316
+ position: relative;
317
+ z-index: 1;
318
+ }
319
+ }
320
+
321
+ .has-shadow & {
322
+ box-shadow: 0 15px 15px rgba(0, 0, 0, 0.1);
323
+ }
324
+ }
325
+
326
+ &:nth-child(2) {
327
+ .has-shadow & {
328
+ padding-left: calc(#{srl.spacer-get(map.get(srl.$meta, table, padding, regular, left))} + 24px);
329
+ }
330
+ }
297
331
 
298
332
  /*
299
333
  Paragraphs and spans
@@ -325,4 +359,22 @@ td {
325
359
  .note-link {
326
360
  color: srl.colors-primary-1000();
327
361
  text-decoration: none;
362
+ -webkit-appearance: none;
363
+ border: none;
364
+ padding: 0;
365
+ background: none;
366
+ cursor: pointer;
367
+ transition: color 0.3s ease;
368
+
369
+ @media (prefers-reduced-motion: reduce) {
370
+ transition-duration: 0s;
371
+ }
372
+
373
+ &:hover {
374
+ color: srl.colors-primary-1000();
375
+ }
376
+
377
+ &:focus {
378
+ color: srl.colors-primary-1000();
379
+ }
328
380
  }
@@ -1,9 +1,11 @@
1
- <srl-ld-table class="srl-table">
2
- <div class="srl-table__container" doc-include="nswow-table">
3
- <p class="srl-grid srl-paragraph">
4
- <span class="srl-grid__inner srl-paragraph__text">
5
- Table placeholder
6
- </span>
7
- </p>
8
- </div>
9
- </srl-ld-table>
1
+ <div class="srl-table">
2
+ <srl-ld-table data-remove-from-xbrl="transient" data-remove-from-pdf="transient">
3
+ <div ref="wrapper" class="srl-table__container" doc-include="nswow-table">
4
+ <p class="srl-grid srl-paragraph">
5
+ <span class="srl-grid__inner srl-paragraph__text">
6
+ Table placeholder
7
+ </span>
8
+ </p>
9
+ </div>
10
+ </srl-ld-table>
11
+ </div>
@@ -1,5 +1,4 @@
1
1
  <script setup lang="ts">
2
-
3
2
  const props = withDefaults(defineProps<{
4
3
  responsive?: boolean
5
4
  download?: boolean
@@ -14,6 +14,9 @@
14
14
  },
15
15
  "link": {
16
16
  "plainText": true
17
+ },
18
+ "text": {
19
+ "plainText": true
17
20
  }
18
21
  }
19
22
  }
@@ -1,5 +1,9 @@
1
1
  @use 'srl';
2
2
 
3
+ .srl-video {
4
+ display: block;
5
+ }
6
+
3
7
  .srl-video__video-link-container {
4
8
  @include srl.spacer-margin-top(100);
5
9
  }
@@ -23,6 +23,15 @@
23
23
  width: 100%;
24
24
  height: 100%;
25
25
  }
26
+
27
+ video {
28
+ position: absolute;
29
+ top: 0;
30
+ left: 0;
31
+ width: 100%;
32
+ height: 100%;
33
+ object-fit: cover;
34
+ }
26
35
  }
27
36
 
28
37
  .srl-video__thumbnail {
@@ -30,43 +39,17 @@
30
39
  top: 0;
31
40
  left: 0;
32
41
  bottom: 0;
42
+ opacity: 1;
43
+ transition: opacity 0.3s ease;
33
44
  }
34
45
 
35
46
  .srl-video__play {
36
47
  position: absolute;
37
- top: 50%;
38
- left: 50%;
39
- transform: translate(-50%, -50%);
48
+ top: srl.spacer-get(300);
49
+ left: srl.spacer-get(300);
40
50
  z-index: 5;
41
- }
42
-
43
- .srl-video__play-button {
44
- width: 48px;
45
- height: 48px;
46
- background-color: srl.colors-white-1000();
47
- cursor: pointer;
48
- padding: 0;
49
- border-radius: 50%;
50
- transition: background-color 0.3s ease;
51
- -webkit-appearance: none;
52
- border: 1px solid srl.colors-primary-1000();
53
- color: srl.colors-primary-1000();
54
-
55
- @media (prefers-reduced-motion: reduce) {
56
- transition-duration: 0s;
57
- }
58
-
59
- &:hover {
60
- background-color: srl.colors-primary-1000();
61
- border-color: srl.colors-primary-1000();
62
- color: srl.colors-white-1000();
63
- }
64
-
65
- &:focus {
66
- background-color: srl.colors-secondary-1000();
67
- border-color: srl.colors-secondary-1000();
68
- color: srl.colors-white-1000();
69
- }
51
+ opacity: 1;
52
+ transition: opacity 0.3s ease;
70
53
  }
71
54
 
72
55
  .srl-video__play-button-inner {
@@ -92,4 +75,12 @@
92
75
 
93
76
  .srl-video__video-link-container {
94
77
  @extend %srl-regular-width;
78
+ }
79
+
80
+ .srl-video__started {
81
+ .srl-video__thumbnail,
82
+ .srl-video__play {
83
+ opacity: 0;
84
+ pointer-events: none;
85
+ }
95
86
  }
@@ -1,17 +1,18 @@
1
- <div class="srl-video" data-autoload="video">
1
+ <div class="srl-video">
2
2
  <div class="srl-grid srl-grid--media">
3
3
  <div class="srl-grid__inner srl-video__inner">
4
- <div class="srl-video__video-container" doc-html="free-html" data-remove-from-pdf="complete"></div>
5
- <img class="srl-video__thumbnail" doc-image="video-thumbnail"></img>
6
- <div class="srl-video__play" data-remove-from-pdf="complete">
7
- <button class="srl-video__play-button" type="button">
8
- <div class="srl-video__play-button-inner">
9
- <svg class="svg svg-play" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
10
- <path d="M5 3L19 12L5 21V3Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
11
- </svg>
12
- </div>
13
- </button>
14
- </div>
4
+ <srl-ld-video data-remove-from-xbrl="transient" data-remove-from-pdf="transient">
5
+ <div class="srl-video__video-container" doc-html="free-html" data-remove-from-pdf="complete"></div>
6
+ <img class="srl-video__thumbnail" doc-image="video-thumbnail"></img>
7
+ <div class="srl-video__play" data-remove-from-pdf="complete">
8
+ <button class="srl-button srl-has-icon" type="button">
9
+ <svg class="svg svg-play" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
10
+ <path d="M5 3L19 12L5 21V3Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"/>
11
+ </svg>
12
+ <span doc-editable="text">Video abspielen</span>
13
+ </button>
14
+ </div>
15
+ </srl-ld-video>
15
16
  </div>
16
17
  </div>
17
18
  <div class="srl-grid">
@@ -0,0 +1,53 @@
1
+ <script setup lang="ts">
2
+ import { onMounted, ref, useId } from 'vue'
3
+
4
+ const id = useId()
5
+ const rootEl = ref<HTMLDivElement>()
6
+ const button = ref<HTMLButtonElement>()
7
+ const video = ref<HTMLVideoElement>()
8
+
9
+ onMounted(() => {
10
+ video.value = rootEl.value?.querySelector('video') || undefined
11
+ 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
+ }
41
+ }
42
+ })
43
+ </script>
44
+
45
+ <template>
46
+ <div ref="rootEl">
47
+ <slot/>
48
+ </div>
49
+ </template>
50
+
51
+ <style scoped lang="scss">
52
+
53
+ </style>
@@ -0,0 +1,5 @@
1
+ <div class="srl-grid srl-button-container">
2
+ <div class="srl-grid__inner srl-button-container__inner" doc-container="button-container">
3
+
4
+ </div>
5
+ </div>
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "button-container",
3
+ "label": "Button container",
4
+ "directives": {
5
+ "button-container": {
6
+ "allowedChildren": [
7
+ "button"
8
+ ],
9
+ "defaultComponents": {
10
+ "paragraph": "button"
11
+ },
12
+ "defaultContent": [
13
+ {
14
+ "component": "button"
15
+ }
16
+ ]
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,6 @@
1
+ @use "srl";
2
+
3
+ .srl-button-container__inner {
4
+ display: flex;
5
+ gap: srl.spacer-get(300);
6
+ }
@@ -0,0 +1,2 @@
1
+ @use "srl";
2
+ @use "general";
@@ -0,0 +1,4 @@
1
+ <a doc-link="href" class="srl-button">
2
+ <i class="srl-button__icon" aria-hidden="true"></i>
3
+ <span class="srl-button__text" doc-editable="button-text">Button</span>
4
+ </a>
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "button",
3
+ "label": "Button",
4
+ "properties": [
5
+ "icon"
6
+ ],
7
+ "allowedParents": [
8
+ "button-container"
9
+ ],
10
+ "directives": {
11
+ "button-text": {
12
+ "plainText": true
13
+ }
14
+ }
15
+ }
@@ -0,0 +1 @@
1
+ @use "web";
@@ -0,0 +1 @@
1
+ @use "web";