@documental-xyz/core 0.1.0

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 (114) hide show
  1. package/README.md +424 -0
  2. package/integration.ts +113 -0
  3. package/package.json +83 -0
  4. package/src/admin/admin.astro +29 -0
  5. package/src/assets/scripts/App.js +70 -0
  6. package/src/assets/scripts/EnteringAnimations.js +34 -0
  7. package/src/assets/scripts/MapBoxHandler.js +680 -0
  8. package/src/assets/scripts/ScrollProgressionBar.js +24 -0
  9. package/src/assets/scripts/utils/ScrollObserver.js +166 -0
  10. package/src/assets/styles/config/_breakpoints.scss +37 -0
  11. package/src/assets/styles/config/_colors.scss +8 -0
  12. package/src/assets/styles/config/_config.scss +5 -0
  13. package/src/assets/styles/config/_functions.scss +90 -0
  14. package/src/assets/styles/config/_grrr.configs.scss +7 -0
  15. package/src/assets/styles/config/_mixins.scss +207 -0
  16. package/src/assets/styles/config/_type.scss +175 -0
  17. package/src/assets/styles/config/_vars.scss +16 -0
  18. package/src/assets/styles/globals/_content.scss +47 -0
  19. package/src/assets/styles/globals/_grrr.scss +18 -0
  20. package/src/assets/styles/globals/_html.scss +25 -0
  21. package/src/assets/styles/globals/_lists.scss +19 -0
  22. package/src/assets/styles/globals/_map-anchors.scss +32 -0
  23. package/src/assets/styles/globals/_reset.scss +240 -0
  24. package/src/assets/styles/globals/_reveal-animations.scss +104 -0
  25. package/src/assets/styles/globals/_root.scss +6 -0
  26. package/src/assets/styles/globals/_scroll-progression-bar.scss +8 -0
  27. package/src/assets/styles/main.scss +17 -0
  28. package/src/assets/styles/utils/.gitkeep +0 -0
  29. package/src/assets/styles/utils/grrr/_grrr.scss +433 -0
  30. package/src/assets/styles/utils/list-styles/_list-styles.scss +190 -0
  31. package/src/components/AnimationToggle.astro +19 -0
  32. package/src/components/BigNumbers.astro +83 -0
  33. package/src/components/Button.astro +49 -0
  34. package/src/components/Caption.astro +15 -0
  35. package/src/components/Card.astro +68 -0
  36. package/src/components/Cards.astro +66 -0
  37. package/src/components/CardsCall.astro +125 -0
  38. package/src/components/ChartBar.astro +217 -0
  39. package/src/components/ChartPercentage.astro +137 -0
  40. package/src/components/Column.astro +54 -0
  41. package/src/components/ColumnSticky.astro +129 -0
  42. package/src/components/Columns.astro +139 -0
  43. package/src/components/Compare.astro +266 -0
  44. package/src/components/Cta.astro +242 -0
  45. package/src/components/Gallery.astro +594 -0
  46. package/src/components/Group.astro +140 -0
  47. package/src/components/HtmlEmbed.astro +98 -0
  48. package/src/components/ImageBlock.astro +134 -0
  49. package/src/components/InnerColumns.astro +54 -0
  50. package/src/components/LogosGroup.astro +102 -0
  51. package/src/components/Map.astro +321 -0
  52. package/src/components/MapBox.astro +96 -0
  53. package/src/components/MapView.astro +30 -0
  54. package/src/components/Menu.astro +278 -0
  55. package/src/components/Pullquote.astro +46 -0
  56. package/src/components/Slider.astro +223 -0
  57. package/src/components/Spacer.astro +25 -0
  58. package/src/components/Text.astro +173 -0
  59. package/src/components/TextPlaceholder.astro +98 -0
  60. package/src/components/Timeline.astro +73 -0
  61. package/src/components/TimelineBullet.astro +67 -0
  62. package/src/components/VideoEmbed.astro +99 -0
  63. package/src/content/loader.ts +29 -0
  64. package/src/content/pages/alter-ameacada.md +80 -0
  65. package/src/content/pages/expulsions.md +1447 -0
  66. package/src/content/pages/home.md +346 -0
  67. package/src/content/pages/nhanderekoa-studio-autonoma.md +3113 -0
  68. package/src/content/pages/nhanderekoa-terra-ind/303/255gena-jaragu/303/241.md +3806 -0
  69. package/src/content/pages/nova-landing-page.md +546 -0
  70. package/src/content/pages/territ/303/263rios-de-exce/303/247/303/243o.md +2199 -0
  71. package/src/content/pages/teste-alter-do-chao.md +955 -0
  72. package/src/content/pages/teste-layout.md +1484 -0
  73. package/src/content/pages/thiago.md +93 -0
  74. package/src/content/schema/blog.ts +11 -0
  75. package/src/content/schema/geostorys.ts +13 -0
  76. package/src/content/schema/index.ts +3 -0
  77. package/src/content/schema/pages.ts +494 -0
  78. package/src/content.config.ts +49 -0
  79. package/src/env.d.ts +1 -0
  80. package/src/integration/override-aliases.ts +67 -0
  81. package/src/layouts/components/ButtonLayout.astro +8 -0
  82. package/src/layouts/components/CardLayout.astro +8 -0
  83. package/src/layouts/components/CardsCallLayout.astro +26 -0
  84. package/src/layouts/components/CardsLayout.astro +14 -0
  85. package/src/layouts/components/ChartBarLayout.astro +21 -0
  86. package/src/layouts/components/ChartPercentageLayout.astro +17 -0
  87. package/src/layouts/components/ColumnLayout.astro +11 -0
  88. package/src/layouts/components/ColumnStickyLayout.astro +10 -0
  89. package/src/layouts/components/ColumnsLayout.astro +13 -0
  90. package/src/layouts/components/CompareLayout.astro +22 -0
  91. package/src/layouts/components/CtaLayout.astro +91 -0
  92. package/src/layouts/components/GalleryLayout.astro +24 -0
  93. package/src/layouts/components/GroupLayout.astro +53 -0
  94. package/src/layouts/components/HtmlEmbedLayout.astro +18 -0
  95. package/src/layouts/components/ImageBlockLayout.astro +20 -0
  96. package/src/layouts/components/InnerColumnsLayout.astro +14 -0
  97. package/src/layouts/components/LogosGroupLayout.astro +22 -0
  98. package/src/layouts/components/MapLayout.astro +41 -0
  99. package/src/layouts/components/MapViewLayout.astro +8 -0
  100. package/src/layouts/components/MapboxLayout.astro +248 -0
  101. package/src/layouts/components/PullquoteLayout.astro +13 -0
  102. package/src/layouts/components/SliderLayout.astro +18 -0
  103. package/src/layouts/components/SpacerLayout.astro +8 -0
  104. package/src/layouts/components/TextLayout.astro +17 -0
  105. package/src/layouts/components/TextPlaceholderLayout.astro +7 -0
  106. package/src/layouts/components/TimelineBulletLayout.astro +14 -0
  107. package/src/layouts/components/TimelineLayout.astro +10 -0
  108. package/src/layouts/components/VideoEmbedLayout.astro +28 -0
  109. package/src/layouts/pages/Layout.astro +90 -0
  110. package/src/layouts/pages/PageLayout.astro +200 -0
  111. package/src/lib/collections.ts +1 -0
  112. package/src/routes/[slug].astro +17 -0
  113. package/src/routes/index.astro +5 -0
  114. package/src/vite/yaml-merge-plugin.ts +234 -0
@@ -0,0 +1,594 @@
1
+ ---
2
+ import "swiper/css";
3
+ import { Image } from 'astro:assets';
4
+ import Text from "./Text.astro";
5
+ const { uniqid, description, images } = Astro.props;
6
+ const amountLabel = `${images.length} imagens`; // prever que o termo "imagens" deve ser traduzido nas versões de outras línguas
7
+ ---
8
+
9
+ <div class="gallery-card reveal--fadeIn" aria-controls={`gallery-${uniqid}`}>
10
+ <div class="gallery-card__thumbs">
11
+ {
12
+ images &&
13
+ images.map((img, index) => {return index <= 2 && <div class="gallery-card__img">
14
+ <Image src={img.image} alt="" width="100%" height="100%" />
15
+ </div>;})
16
+ }
17
+ </div>
18
+ {
19
+ description && (
20
+ <div class="gallery-card__description">
21
+ <span class="gallery-card__amount-label">{amountLabel}</span>
22
+ {description}
23
+ </div>
24
+ )
25
+ }
26
+ </div>
27
+
28
+ <div
29
+ id={`gallery-${uniqid}`}
30
+ class="gallery-modal"
31
+ aria-modal="true"
32
+ aria-hidden="true"
33
+ >
34
+ <div class="gallery-modal__top">
35
+ <svg
36
+ width="37"
37
+ height="25"
38
+ viewBox="0 0 37 25"
39
+ fill="none"
40
+ xmlns="http://www.w3.org/2000/svg"
41
+ >
42
+ <path
43
+ d="M14.4167 12.4998C14.4167 13.5165 14.8206 14.4915 15.5395 15.2104C16.2584 15.9293 17.2334 16.3332 18.2501 16.3332C19.2667 16.3332 20.2418 15.9293 20.9607 15.2104C21.6795 14.4915 22.0834 13.5165 22.0834 12.4998C22.0834 11.4832 21.6795 10.5082 20.9607 9.78926C20.2418 9.07037 19.2667 8.6665 18.2501 8.6665C17.2334 8.6665 16.2584 9.07037 15.5395 9.78926C14.8206 10.5082 14.4167 11.4832 14.4167 12.4998Z"
44
+ stroke="#F0EAD9"
45
+ stroke-width="2"
46
+ stroke-linecap="round"
47
+ stroke-linejoin="round"></path>
48
+ <path
49
+ d="M35.5 12.5C30.9 20.1667 25.15 24 18.25 24C11.35 24 5.6 20.1667 1 12.5C5.6 4.83333 11.35 1 18.25 1C25.15 1 30.9 4.83333 35.5 12.5Z"
50
+ stroke="#F0EAD9"
51
+ stroke-width="2"
52
+ stroke-linecap="round"
53
+ stroke-linejoin="round"></path>
54
+ </svg>
55
+ <button class="gallery-modal__close" aria-controls={`gallery-${uniqid}`}>
56
+ <svg
57
+ width="23"
58
+ height="23"
59
+ viewBox="0 0 23 23"
60
+ fill="none"
61
+ xmlns="http://www.w3.org/2000/svg"
62
+ >
63
+ <path
64
+ fill-rule="evenodd"
65
+ clip-rule="evenodd"
66
+ d="M0.372583 1.41421L21.5858 22.6274L23 21.2132L1.7868 0L0.372583 1.41421Z"
67
+ fill="#F0EAD9"></path>
68
+ <path
69
+ fill-rule="evenodd"
70
+ clip-rule="evenodd"
71
+ d="M22.6274 1.41421L1.41421 22.6274L0 21.2132L21.2132 0L22.6274 1.41421Z"
72
+ fill="#F0EAD9"></path>
73
+ </svg>
74
+ </button>
75
+ </div>
76
+ <div class="gallery-modal__holder">
77
+ <div class="swiper gallery-modal__swiper">
78
+ <div class="swiper-wrapper">
79
+ {
80
+ images &&
81
+ images.map((img) => {
82
+ return (
83
+ <div class="swiper-slide">
84
+ <div class="gallery-modal__item">
85
+ <figure>
86
+ <Image src={img.image} alt="" width="100%" height="100%" />
87
+ </figure>
88
+ <div class="gallery-modal__description">
89
+ <div class="gallery-modal__description-holder">
90
+ <Text set:html={img.caption} />
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ );
96
+ })
97
+ }
98
+ </div>
99
+ <div class="gallery-modal__footer">
100
+ <div class="gallery-modal__footer-holder">
101
+ <div class="swiper-button-prev">
102
+ <svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
103
+ <path d="M16.0991 24.75L17.7331 23.2098L13.444 19.1317H27V16.8683L13.444 16.8683L17.7331 12.7969L16.0991 11.25L9 18L16.0991 24.75Z" fill="#F0EAD9"/>
104
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18 33.75C9.30151 33.75 2.25 26.6985 2.25 18C2.25 9.30151 9.30151 2.25 18 2.25C26.6985 2.25 33.75 9.30151 33.75 18C33.75 26.6985 26.6985 33.75 18 33.75ZM18 36C8.05888 36 0 27.9411 0 18C0 8.05887 8.05888 0 18 0C27.9411 0 36 8.05887 36 18C36 27.9411 27.9411 36 18 36Z" fill="#F0EAD9"/>
105
+ </svg>
106
+ </div>
107
+ <span class="gallery-modal__pagination"></span>
108
+ <div class="swiper-button-next">
109
+ <svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
110
+ <path d="M19.9009 24.75L18.2669 23.2098L22.556 19.1317H9V16.8683L22.556 16.8683L18.2669 12.7969L19.9009 11.25L27 18L19.9009 24.75Z" fill="#F0EAD9"/>
111
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18 33.75C26.6985 33.75 33.75 26.6985 33.75 18C33.75 9.30151 26.6985 2.25 18 2.25C9.30151 2.25 2.25 9.30151 2.25 18C2.25 26.6985 9.30151 33.75 18 33.75ZM18 36C27.9411 36 36 27.9411 36 18C36 8.05887 27.9411 0 18 0C8.05887 0 0 8.05887 0 18C0 27.9411 8.05887 36 18 36Z" fill="#F0EAD9"/>
112
+ </svg>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+ <style lang="scss">
121
+ @use "../assets/styles/config/config" as *;
122
+ @use "../assets/styles/utils/grrr/grrr" as *;
123
+
124
+ //card
125
+ .gallery-card {
126
+ $self: &;
127
+ cursor: pointer;
128
+ container-name: gallery-card;
129
+ container-type: inline-size;
130
+
131
+ &:not(:first-child),
132
+ & :global(+ *:not(.column)),
133
+ :global(.animation-disabled:not(:first-child) >) & {
134
+ margin-top: var(--mt-m);
135
+ }
136
+
137
+ @media (hover: "hover") {
138
+ &:hover #{$self}__img {
139
+ img {
140
+ box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.37);
141
+ }
142
+
143
+ &:nth-child(1) img {
144
+ transform: rotate(-5deg) translate(-10px, -40px);
145
+ }
146
+
147
+ &:nth-child(2) img {
148
+ transform: rotate(8deg) translate(15px, -40px);
149
+ }
150
+ }
151
+
152
+ :global(.animation-disabled) &:hover {
153
+ #{$self}__img img {
154
+ box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.2);
155
+ transform: rotate(0deg) translate(0,0) !important;
156
+ }
157
+ }
158
+ }
159
+
160
+ &__thumbs {
161
+ width: 100%;
162
+ aspect-ratio: 1 / 0.5902;
163
+ position: relative;
164
+ margin-bottom: -1px;
165
+
166
+ @container gallery-card (width < 440px) {
167
+ aspect-ratio: 1 / 1.258;
168
+ }
169
+
170
+ img {
171
+ width: 100%;
172
+ height: 100%;
173
+ object-fit: cover;
174
+ transform-origin: center bottom;
175
+ transition: 0.5s ease;
176
+ }
177
+ }
178
+
179
+ &__img {
180
+ width: 100%;
181
+ height: 100%;
182
+ object-fit: cover;
183
+ position: absolute;
184
+ top: 0;
185
+ left: 0;
186
+ transform-origin: center bottom;
187
+ // transition: 1s ease 1s;
188
+ box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.37);
189
+
190
+ &:nth-child(3) {
191
+ z-index: 2;
192
+ }
193
+
194
+ @include media-break-up(s) {
195
+ &:nth-child(1) {
196
+ transform: rotate(-5deg) translate(-10px, -40px);
197
+ }
198
+
199
+
200
+ &:nth-child(2) {
201
+ transform: rotate(8deg) translate(15px, -40px);
202
+ }
203
+ }
204
+
205
+ #{$self}.reveal & {
206
+ animation: imgInitial 1s ease forwards .2s;
207
+ }
208
+
209
+ :global(.animation-disabled) & {
210
+ animation: imgInitial 0s linear forwards;
211
+ }
212
+ }
213
+
214
+ &__description {
215
+ @include type("c-s");
216
+
217
+ display: block;
218
+ padding: 16px;
219
+ padding-left: 50px;
220
+ display: block;
221
+ border: 2px solid var(--clr-txt);
222
+ border-radius: 0 0 4px 4px;
223
+ position: relative;
224
+ z-index: 5;
225
+ background-color: var(--clr-bg);
226
+ }
227
+
228
+ &__amount-label {
229
+ display: block;
230
+ font-weight: 600;
231
+ position: relative;
232
+
233
+ &::before {
234
+ content: "";
235
+ width: 20px;
236
+ height: 20px;
237
+ display: block;
238
+ position: absolute;
239
+ mask-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.00006 9.99976C8.00006 10.5302 8.21078 11.0389 8.58585 11.414C8.96092 11.789 9.46963 11.9998 10.0001 11.9998C10.5305 11.9998 11.0392 11.789 11.4143 11.414C11.7893 11.0389 12.0001 10.5302 12.0001 9.99976C12.0001 9.46932 11.7893 8.96062 11.4143 8.58554C11.0392 8.21047 10.5305 7.99976 10.0001 7.99976C9.46963 7.99976 8.96092 8.21047 8.58585 8.58554C8.21078 8.96062 8.00006 9.46932 8.00006 9.99976Z' stroke='%23364849' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M19 10C16.6 14 13.6 16 10 16C6.4 16 3.4 14 1 10C3.4 6 6.4 4 10 4C13.6 4 16.6 6 19 10Z' stroke='%23364849' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
240
+ mask-repeat: no-repeat;
241
+ mask-size: contain;
242
+ background-color: var(--clr-txt);
243
+ top: 0;
244
+ left: -16px;
245
+ transform: translateX(-100%);
246
+ }
247
+ }
248
+ }
249
+
250
+ //modal
251
+ .gallery-modal {
252
+ $self: &;
253
+ --padding-block: 30px;
254
+ width: 100%;
255
+ height: 100dvh;
256
+ color: var(--clr-bg);
257
+ background-color: var(--clr-txt);
258
+ position: fixed;
259
+ bottom: 0;
260
+ left: 0;
261
+ overflow: hidden;
262
+ z-index: 900;
263
+ @extend %grrr--board;
264
+ transition: .8s ease;
265
+ overscroll-behavior: contain;
266
+
267
+ &:not(:first-child),
268
+ & :global(+ *) {
269
+ margin-top: var(--mt-m);
270
+ }
271
+
272
+ &[aria-hidden="true"] {
273
+ height: 0;
274
+ padding-block: 0;
275
+ transition: .3s ease;
276
+
277
+ #{$self}__holder {
278
+ transition: .2s ease;
279
+ opacity: 0;
280
+ }
281
+ }
282
+
283
+ @include media-break-up(l) {
284
+ --padding-block: 80px;
285
+ padding-block: var(--padding-block);
286
+ grid-template-rows: 100%;
287
+ }
288
+
289
+ &__holder {
290
+ grid-column: board-full;
291
+ transition: 1.2s ease;
292
+
293
+ @include media-break-up(l) {
294
+ grid-row: 1;
295
+ height: 100%;
296
+ }
297
+ }
298
+
299
+ &__top {
300
+ grid-column: board-full;
301
+ align-self: start;
302
+ width: grrr-cols-size(3);
303
+ display: flex;
304
+ align-items: center;
305
+ justify-content: space-between;
306
+ position: relative;
307
+ z-index: 5;
308
+ grid-row: 1;
309
+ pointer-events: none;
310
+
311
+ > svg {
312
+ path {
313
+ stroke: currentColor;
314
+ }
315
+ }
316
+
317
+ @include media-break-down(l) {
318
+ height: 80px;
319
+ top: 0;
320
+ position: absolute;
321
+
322
+ > svg {
323
+ display: none;
324
+ }
325
+ }
326
+
327
+ @include media-break-up(l) {
328
+ grid-column: board-start 10 / board-end 12;
329
+ }
330
+ }
331
+
332
+ &__close {
333
+ background-color: transparent;
334
+ border: none;
335
+ padding: 0;
336
+ margin: 0;
337
+ pointer-events: all;
338
+ cursor: pointer;
339
+
340
+ svg {
341
+ display: block;
342
+
343
+ path {
344
+ fill: currentColor;
345
+ }
346
+ }
347
+
348
+ @media (hover: 'hover') {
349
+ &:hover {
350
+ opacity: .7;
351
+ }
352
+ }
353
+ }
354
+
355
+ &__footer {
356
+ position: relative;
357
+ z-index: 10;
358
+ pointer-events: none;
359
+
360
+ @include grrr("board", 1, 4, false);
361
+
362
+ @include media-break-down(l) {
363
+ width: 100%;
364
+ height: 80px;
365
+ display: flex;
366
+ align-items: center;
367
+ position: absolute;
368
+ top: 0;
369
+
370
+ svg {
371
+ width: 24px;
372
+ height: 24px;
373
+ display: block;
374
+ }
375
+ }
376
+
377
+ @include media-break-up(l) {
378
+ @include grrr("board", 1, 12, false);
379
+ transform: translateY(-100%);
380
+ }
381
+
382
+ .swiper-button-prev, .swiper-button-next {
383
+ pointer-events: all;
384
+ cursor: pointer;
385
+
386
+ path {
387
+ fill: currentColor;
388
+ }
389
+
390
+ @media (hover: 'hover') {
391
+ &:hover {
392
+ opacity: .7;
393
+ }
394
+ }
395
+ }
396
+ }
397
+
398
+ &__footer-holder {
399
+ grid-column: board-full;
400
+ display: flex;
401
+ align-items: center;
402
+ justify-content: space-between;
403
+
404
+ @include media-break-down(l) {
405
+ width: 100%;
406
+ justify-content: flex-end;
407
+ gap: 9px;
408
+ }
409
+
410
+ @include media-break-up(l) {
411
+ grid-column: board-start 10 / board-end 12;
412
+ }
413
+ }
414
+
415
+ &__swiper {
416
+ max-width: 100vw;
417
+ height: 100%;
418
+
419
+ @include media-break-down(l) {
420
+ padding-block: 80px;
421
+ }
422
+
423
+ .swiper-wrapper {
424
+ height: 100%;
425
+ }
426
+ }
427
+
428
+ &__pagination {
429
+ text-align: center;
430
+ @include type('h-xs');
431
+
432
+ @include media-break-down(l) {
433
+ position: absolute;
434
+ top: 50%;
435
+ left: 50%;
436
+ transform: translate(-50%, -50%);
437
+ display: flex;
438
+ justify-content: center;
439
+ align-items: center;
440
+ }
441
+
442
+ @include media-break-up(l) {
443
+ @include type('h-m');
444
+ }
445
+ }
446
+
447
+ &__item {
448
+ @include grrr("board", 1, 4, false);
449
+
450
+ @include media-break-down(l) {
451
+ max-height: calc(100vh - 90px);
452
+ overflow: auto;
453
+ }
454
+
455
+ @include media-break-up(l) {
456
+ @include grrr("board", 1, 12, false);
457
+
458
+ grid-template-rows: 100%;
459
+ min-height: 100%;
460
+ }
461
+
462
+ figure {
463
+ height: 100%;
464
+ grid-column: board-full;
465
+ background-color: rgba(0,0,0,.05);
466
+
467
+ @include media-break-down(l) {
468
+ aspect-ratio: 1 / 1.238;
469
+ }
470
+
471
+ @include media-break-up(l) {
472
+ grid-column: board-start 1 / board-end 9;
473
+ }
474
+ }
475
+
476
+ img {
477
+ width: 100%;
478
+ height: 100%;
479
+ object-fit: contain;
480
+ }
481
+ }
482
+
483
+ &__description {
484
+ grid-column: board-full;
485
+ padding-top: 20px;
486
+ padding-bottom: 56px;
487
+ transition: .5s ease .3s;
488
+
489
+ .swiper-slide:not(.swiper-slide-active) & {
490
+ transition: .2s ease;
491
+ transform: translateX(-50px);
492
+ opacity: 0;
493
+ }
494
+
495
+ :global(.text > h1),
496
+ :global(.text > h2),
497
+ :global(.text > h3),
498
+ :global(.text > h4),
499
+ :global(.text > h5),
500
+ :global(.text > h6) {
501
+ @include type('h-xs');
502
+ @include media-break-up(l) {
503
+ @include type('h-m');
504
+ }
505
+ }
506
+
507
+ @include media-break-up(l) {
508
+ height: 100%;
509
+ padding-top: 90px;
510
+ grid-column: board-start 10 / board-end 12;
511
+ }
512
+ }
513
+
514
+ &__description-holder {
515
+ position: relative;
516
+ mask-image: linear-gradient(to bottom, transparent 0%, black 10%);
517
+
518
+ @include media-break-up(l) {
519
+ height: 100%;
520
+ :global(.text) {
521
+ max-height: 100%;
522
+ overflow: auto;
523
+ position: absolute;
524
+ padding-block: 40px;
525
+ mask-image: linear-gradient(to top, transparent 0%, black 10%);
526
+ -ms-overflow-style: none; /* IE and Edge */
527
+ scrollbar-width: none; /* Firefox */
528
+ overscroll-behavior: contain;
529
+
530
+ &::-webkit-scrollbar {
531
+ display: none;
532
+ }
533
+ }
534
+ }
535
+ }
536
+ }
537
+
538
+ @keyframes imgInitial {
539
+ to {
540
+ box-shadow: 0 0 0 0 rgba(0,0,0,0);
541
+ transform: rotate(0deg) translate(0, 0);
542
+ }
543
+ }
544
+ </style>
545
+
546
+ <script>
547
+ import Swiper from "swiper";
548
+ import { Navigation, Pagination } from "swiper/modules";
549
+
550
+ const swiper = new Swiper(".gallery-modal__swiper", {
551
+ spaceBetween: 40,
552
+ modules: [Navigation, Pagination],
553
+ loop: true,
554
+ navigation: {
555
+ prevEl: ".swiper-button-prev",
556
+ nextEl: ".swiper-button-next",
557
+ },
558
+ pagination: {
559
+ el: ".gallery-modal__pagination",
560
+ type: "fraction",
561
+ renderFraction: function (currentClass, totalClass) {
562
+ return (
563
+ '<span class="' +
564
+ currentClass +
565
+ '"></span>' +
566
+ " / " +
567
+ '<span class="' +
568
+ totalClass +
569
+ '"></span>'
570
+ );
571
+ },
572
+ },
573
+ });
574
+
575
+ //modal
576
+ function handleModal() {
577
+ const triggers = document.querySelectorAll('[aria-controls*="gallery"]');
578
+
579
+ triggers.forEach(trigger => {
580
+ trigger.addEventListener('click', e => {
581
+ e.preventDefault();
582
+
583
+ const targetId = trigger.getAttribute('aria-controls');
584
+ const target = document.querySelector(`#${targetId}`);
585
+ const targetState = target.getAttribute('aria-hidden')
586
+
587
+ target.setAttribute('aria-hidden', targetState === "true" ? "false" : "true");
588
+ })
589
+ })
590
+ }
591
+
592
+ handleModal();
593
+
594
+ </script>