@simple-reporting/base 1.0.16 → 1.0.18

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 (66) hide show
  1. package/cli.js +4 -2
  2. package/dev/eslint.config.js +5 -0
  3. package/dev/livingdocs.config.json +29 -16
  4. package/dev/package.json +1 -1
  5. package/dev/src/assets/scss/components/icons.scss +287 -0
  6. package/dev/src/assets/scss/components/note/accordion.scss +60 -27
  7. package/dev/src/assets/scss/components/round-button.scss +75 -0
  8. package/dev/src/assets/scss/general.scss +2 -0
  9. package/dev/src/assets/scss/pdf.scss +3 -3
  10. package/dev/src/assets/scss/placeholders.scss +315 -1
  11. package/dev/src/assets/scss/web.scss +1 -0
  12. package/dev/srl.config.json +29 -14
  13. package/livingdocs/010.Titles/020.title-h2/scss/general.scss +1 -1
  14. package/livingdocs/010.Titles/020.title-h2/title-h2.html +5 -6
  15. package/livingdocs/010.Titles/030.title-h3/scss/general.scss +1 -1
  16. package/livingdocs/010.Titles/030.title-h3/title-h3.html +4 -5
  17. package/livingdocs/010.Titles/040.title-h4/scss/general.scss +1 -1
  18. package/livingdocs/010.Titles/040.title-h4/title-h4.html +4 -5
  19. package/livingdocs/020.Text/010.lead/scss/general.scss +1 -1
  20. package/livingdocs/020.Text/050.quote/scss/general.scss +1 -1
  21. package/livingdocs/020.Text/060.quote-with-portrait/scss/general.scss +2 -1
  22. package/livingdocs/020.Text/070.footnote-container/scss/general.scss +1 -0
  23. package/livingdocs/020.Text/070.footnote-container/scss/pdf.scss +9 -0
  24. package/livingdocs/040.Media/010.table/ld-conf.json +1 -6
  25. package/livingdocs/040.Media/010.table/scss/general.scss +55 -3
  26. package/livingdocs/040.Media/010.table/table.html +11 -9
  27. package/livingdocs/040.Media/010.table/table.vue +0 -1
  28. package/livingdocs/040.Media/020.image/scss/general.scss +1 -1
  29. package/livingdocs/040.Media/030.video/ld-conf.json +3 -0
  30. package/livingdocs/040.Media/030.video/scss/general.scss +4 -0
  31. package/livingdocs/040.Media/030.video/scss/web.scss +23 -32
  32. package/livingdocs/040.Media/030.video/video.html +13 -12
  33. package/livingdocs/040.Media/030.video/video.vue +53 -0
  34. package/livingdocs/060.Buttons/010.button-container/button-container.html +5 -0
  35. package/livingdocs/060.Buttons/010.button-container/ld-conf.json +19 -0
  36. package/livingdocs/060.Buttons/010.button-container/properties.json +1 -0
  37. package/livingdocs/060.Buttons/010.button-container/scss/app.scss +1 -0
  38. package/livingdocs/060.Buttons/010.button-container/scss/editor.scss +1 -0
  39. package/livingdocs/060.Buttons/010.button-container/scss/general.scss +6 -0
  40. package/livingdocs/060.Buttons/010.button-container/scss/pdf.scss +1 -0
  41. package/livingdocs/060.Buttons/010.button-container/scss/web.scss +1 -0
  42. package/livingdocs/060.Buttons/010.button-container/scss/word.scss +1 -0
  43. package/livingdocs/060.Buttons/010.button-container/scss/xbrl.scss +2 -0
  44. package/livingdocs/060.Buttons/020.button/button.html +4 -0
  45. package/livingdocs/060.Buttons/020.button/ld-conf.json +15 -0
  46. package/livingdocs/060.Buttons/020.button/scss/app.scss +1 -0
  47. package/livingdocs/060.Buttons/020.button/scss/editor.scss +1 -0
  48. package/livingdocs/060.Buttons/020.button/scss/general.scss +89 -0
  49. package/livingdocs/060.Buttons/020.button/scss/pdf.scss +1 -0
  50. package/livingdocs/060.Buttons/020.button/scss/web.scss +1 -0
  51. package/livingdocs/060.Buttons/020.button/scss/word.scss +1 -0
  52. package/livingdocs/060.Buttons/020.button/scss/xbrl.scss +3 -0
  53. package/livingdocs/090.Signatures/010.signature-container/scss/general.scss +1 -1
  54. package/livingdocs/090.Signatures/010.signature-container/scss/web.scss +1 -0
  55. package/livingdocs/110.PDF/040.pdf-chapter-title/scss/editor.scss +0 -6
  56. package/livingdocs/999.Properties/hide-quote-characters/properties.json +1 -1
  57. package/livingdocs/999.Properties/icon/properties.json +19 -0
  58. package/livingdocs/999.Properties/reverse/properties.json +7 -0
  59. package/package.json +1 -1
  60. package/plugins/viteSrlPlugin.d.ts +5 -1
  61. package/plugins/viteSrlPlugin.js +4 -1
  62. package/scripts/build.d.ts +1 -1
  63. package/scripts/build.js +135 -34
  64. package/srl/components/Srl/Category/Accordion/Content.vue +7 -1
  65. package/srl/components/Srl/Category/Accordion.vue +2 -1
  66. package/srl/components/Srl/Menu.vue +1 -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;
@@ -2,7 +2,7 @@
2
2
  "meta": {
3
3
  "meta": {
4
4
  "title": {
5
- "number-width": 400,
5
+ "number-width": 800,
6
6
  "number-width-pdf": 400
7
7
  },
8
8
  "list": {
@@ -154,8 +154,8 @@
154
154
  "letter-spacing": 0,
155
155
  "media": {
156
156
  "print": {
157
- "font-size": "20pt",
158
- "line-height": 1.2
157
+ "font-size": "16pt",
158
+ "line-height": 1.25
159
159
  },
160
160
  "up": {
161
161
  "tablet-pt": {
@@ -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"
@@ -852,7 +867,7 @@
852
867
  }
853
868
  }
854
869
  },
855
- "300": {
870
+ "400": {
856
871
  "size": 32,
857
872
  "media": {
858
873
  "print": {
@@ -860,7 +875,7 @@
860
875
  }
861
876
  }
862
877
  },
863
- "400": {
878
+ "800": {
864
879
  "size": 64,
865
880
  "media": {
866
881
  "print": {
@@ -868,7 +883,7 @@
868
883
  }
869
884
  }
870
885
  },
871
- "500": {
886
+ "1600": {
872
887
  "size": 128,
873
888
  "media": {
874
889
  "print": {
@@ -5,7 +5,7 @@ $number-width: srl.spacer-get(map.get(srl.$meta, title, number-width));
5
5
 
6
6
  .srl-title-h2 {
7
7
  @include srl.typography-title-h2();
8
- @include srl.spacer-margin-top(400);
8
+ @include srl.spacer-margin-top(800);
9
9
  }
10
10
 
11
11
  .srl-title-h2__number-text-container {
@@ -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>
@@ -5,7 +5,7 @@ $number-width: srl.spacer-get(map.get(srl.$meta, title, number-width));
5
5
 
6
6
  .srl-title-h3 {
7
7
  @include srl.typography-title-h3();
8
- @include srl.spacer-margin-top(300);
8
+ @include srl.spacer-margin-top(400);
9
9
  }
10
10
 
11
11
  .srl-title-h3__number-text-container {
@@ -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
  >
@@ -5,7 +5,7 @@ $number-width: srl.spacer-get(map.get(srl.$meta, title, number-width));
5
5
 
6
6
  .srl-title-h4 {
7
7
  @include srl.typography-title-h4();
8
- @include srl.spacer-margin-top(300);
8
+ @include srl.spacer-margin-top(400);
9
9
  }
10
10
 
11
11
  .srl-title-h4__number-text-container {
@@ -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
  >
@@ -2,5 +2,5 @@
2
2
 
3
3
  .srl-lead {
4
4
  @include srl.typography-lead();
5
- @include srl.spacer-margin-top(300);
5
+ @include srl.spacer-margin-top(400);
6
6
  }
@@ -1,7 +1,7 @@
1
1
  @use 'srl';
2
2
 
3
3
  .srl-quote {
4
- @include srl.spacer-margin-top(400);
4
+ @include srl.spacer-margin-top(800);
5
5
  }
6
6
 
7
7
  .srl-quote__quote {
@@ -7,7 +7,8 @@ $quote-close: map.get(srl.$meta, quote, quote-close);
7
7
 
8
8
  .srl-quote {
9
9
  align-items: center;
10
- @include srl.spacer-margin-top(400);
10
+ row-gap: srl.spacer-get(400);
11
+ @include srl.spacer-margin-top(800);
11
12
  }
12
13
 
13
14
  .srl-quote__quote {
@@ -1,5 +1,6 @@
1
1
  @use "srl";
2
2
 
3
3
  .srl-footnote-container {
4
+ overflow: hidden;
4
5
  @include srl.spacer-margin-top(200);
5
6
  }
@@ -0,0 +1,9 @@
1
+ @use 'srl';
2
+
3
+ .srl-footnote-container:not(.srl-grid) {
4
+ @include srl.grid-pdf-flex-col(6);
5
+
6
+ .srl-wide-width & {
7
+ @include srl.grid-pdf-flex-col(8);
8
+ }
9
+ }
@@ -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,7 +10,8 @@ $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
- @include srl.spacer-margin-top(300);
13
+ display: block;
14
+ @include srl.spacer-margin-top(400);
14
15
  }
15
16
 
16
17
  .srl-table__container {
@@ -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,
@@ -201,7 +210,7 @@ td {
201
210
 
202
211
  &[class*="ind_ind"] {
203
212
  &:first-child {
204
- padding-left: srl.spacer-get(300);
213
+ padding-left: srl.spacer-get(400);
205
214
  }
206
215
  }
207
216
 
@@ -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
@@ -2,7 +2,7 @@
2
2
  @use "assets/scss/placeholders";
3
3
 
4
4
  .srl-image {
5
- @include srl.spacer-margin-top(400);
5
+ @include srl.spacer-margin-top(800);
6
6
  }
7
7
 
8
8
  .srl-grid--media {
@@ -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(400);
49
+ left: srl.spacer-get(400);
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(400);
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>