word-games-theme 3.2.6 → 3.2.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b0c057449d1e565ca9c350c8bc2077538c5b395f357a3300a5c9b80b1f589f6d
4
- data.tar.gz: a5e088d621c1d7c996632606519be9413e56f4d561d09d0e31fc701c9b61b218
3
+ metadata.gz: 5540b3ab326d472126974f10230178b739ae1d59ada3e83a571e863fe8eb48e7
4
+ data.tar.gz: f0b2894cf7fdb159db7de3bb1f0d6cb10526c5a149ed0c4edf69161c32d93a25
5
5
  SHA512:
6
- metadata.gz: cf6f9de1093edc067efae1d92a53388aee6365c5ede52cfdcd00cf8e58d4f88f9a203a1a22e235115fddc195d49e18ad1b2638726926c04d90867b7d08392abd
7
- data.tar.gz: 6128ef644509ce0aecde85bb669c3930c0026a3b07b728b3cebebdba639afb62dc62e303c16cf639991f57e677e2538d7fdc7a8667f3fe19cac55c0d0498c591
6
+ metadata.gz: 390564f06becd3da7ababa0ca897b1408cd26f4b91db9b811e0eb8c825fae7c9693416c19895059fcc8e6266a1e57f3ba2ba2c445688678bd85449547d4f232c
7
+ data.tar.gz: a58ba654a01cd73e9d3e3cbbf965eb0a7aff8ed1d8d81a182e6f977b299daf5141f5a11d4ce273381bed47cc9baccc08f21542cab18b4e86a7520a32a5b94e3c
@@ -182,15 +182,15 @@
182
182
  "secondaryKeywords": [],
183
183
  "infographics": [
184
184
  {
185
- "image": "/assets/images/infographics/en/home-infographics-1.webp",
185
+ "image": "https://wordswithletters.org/uploads/11_13_2024_1731494518320_template.webp",
186
186
  "description": ""
187
187
  },
188
188
  {
189
- "image": "/assets/images/infographics/en/home-infographics-2.webp",
189
+ "image": "https://wordswithletters.org/uploads/11_13_2024_1731494791401_template.webp",
190
190
  "description": ""
191
191
  },
192
192
  {
193
- "image": "/assets/images/infographics/en/home-infographics-3.webp",
193
+ "image": "https://wordswithletters.org/uploads/11_13_2024_1731494978024_template.webp",
194
194
  "description": ""
195
195
  }
196
196
  ],
@@ -1,124 +1,224 @@
1
+ <style>
2
+ .slide img:hover {
3
+ transform: scale(1.02);
4
+ box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.12);
5
+ cursor: pointer;
6
+ }
7
+
8
+ .modal-arrow-btn {
9
+ position: absolute;
10
+ top: 50%;
11
+ width: 50px;
12
+ height: 50px;
13
+ background: rgba(0, 0, 0, 0.5);
14
+ color: #fff;
15
+ border: none;
16
+ cursor: pointer;
17
+ font-size: 24px;
18
+ text-align: center;
19
+ line-height: 50px;
20
+ border-radius: 50%;
21
+ transform: translateY(-50%);
22
+ }
23
+
24
+ .modal-arrow-btn.prev {
25
+ left: 10px;
26
+ }
27
+
28
+ .modal-arrow-btn.next {
29
+ right: 10px;
30
+ }
31
+
32
+ @media (max-width: 768px) {
33
+ .modal-arrow-btn {
34
+ top: 30%;
35
+ width: 40px;
36
+ height: 40px;
37
+ font-size: 20px;
38
+ line-height: 40px;
39
+ }
40
+
41
+ .modal-arrow-btn.prev {
42
+ left: 5px;
43
+ }
44
+
45
+ .modal-arrow-btn.next {
46
+ right: 5px;
47
+ }
48
+ }
49
+
50
+ @media (max-width: 480px) {
51
+ .modal-arrow-btn {
52
+ width: 30px;
53
+ height: 30px;
54
+ font-size: 16px;
55
+ line-height: 30px;
56
+ }
57
+
58
+ .modal-arrow-btn.prev {
59
+ left: 3px;
60
+ }
61
+
62
+ .modal-arrow-btn.next {
63
+ right: 3px;
64
+ }
65
+ }
66
+
67
+ .modal1 {
68
+ position: fixed;
69
+ z-index: 1000;
70
+ left: 0;
71
+ top: 0;
72
+ width: 100%;
73
+ height: 100%;
74
+ overflow: auto;
75
+ background-color: rgba(59, 58, 58, 0.9);
76
+ opacity: 0;
77
+ visibility: hidden;
78
+ transform: scale(0.8);
79
+ transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s linear 0.3s;
80
+ }
81
+
82
+ .modal1.show {
83
+ opacity: 1;
84
+ visibility: visible;
85
+ transform: scale(1);
86
+ transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s;
87
+ }
88
+
89
+ .modal1-content1 {
90
+ margin: auto;
91
+ display: block;
92
+ width: 80%;
93
+ max-width: 800px;
94
+ margin-top: 20px;
95
+ opacity: 0;
96
+ transform: translateY(-20px);
97
+ transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s;
98
+ }
99
+
100
+ .modal1.show .modal1-content1 {
101
+ opacity: 1;
102
+ transform: translateY(0);
103
+ }
104
+
105
+ .modal1-body img {
106
+ width: 100%;
107
+ height: auto;
108
+ }
109
+
110
+ .close1 {
111
+ position: absolute;
112
+ top: 10px;
113
+ right: 10px;
114
+ font-size: 24px;
115
+ color: #fff;
116
+ cursor: pointer;
117
+ }
118
+
119
+ .close1:hover {
120
+ color: #ccc;
121
+ }
122
+ </style>
1
123
  <div class="container" id="infographicsContainer">
2
- <h3 class="mb-5 infographics-title"><b>Other useful information</b></h3>
3
-
4
- <div class="inforgraphics_section">
5
- <div class="wrapper">
6
- <svg id="left" fill="#000000" viewBox="-12 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg">
7
- <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
8
- <g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
9
- <g id="SVGRepo_iconCarrier">
10
- <title>angle-left</title>
11
- <path
12
- d="M7.28 23.28c-0.2 0-0.44-0.080-0.6-0.24l-6.44-6.44c-0.32-0.32-0.32-0.84 0-1.2l6.44-6.44c0.32-0.32 0.84-0.32 1.2 0 0.32 0.32 0.32 0.84 0 1.2l-5.8 5.84 5.84 5.84c0.32 0.32 0.32 0.84 0 1.2-0.16 0.16-0.44 0.24-0.64 0.24z">
13
- </path>
14
- </g>
15
- </svg>
16
- <div class="carousel">
17
- {%- for item in dataToShow.infographics -%}
18
- <div class="slide">
19
- <img loading="lazy" src="{{ item.image }}" alt="img" draggable="false">
20
- <p class="text-center mt-3 infographic-desc">{{ item.description | capitalize }}</p>
124
+ <h3 class="mb-5 infographics-title" style="width:445px"><b>Other useful information</b></h3>
125
+ <div class="inforgraphics_section">
126
+ <div class="wrapper">
127
+ <i id="left" class="fas fa-angle-left"></i>
128
+ <div class="carousel">
129
+ <div class="carousel-inner">
130
+ {%- if dataToShow.infographics -%} {% for item in dataToShow.infographics %}
131
+ <div class="slide">
132
+ <img loading="lazy" src="{{ item.image }}" alt="{{item.alt}}" draggable="false"
133
+ class="infographic-img" onclick="openModal1('{{ item.image }}')" />
134
+ <p class="infographic-desc">{{ item.description | capitalize }}</p>
135
+ </div>
136
+ {% endfor %} {%- endif -%}
137
+ </div>
138
+ </div>
139
+ <i id="right" class="fas fa-angle-right"></i>
140
+ </div>
141
+ </div>
142
+ <div id="imageModal1" class="modal1" onclick="closeModal1()">
143
+ <span class="close1" onclick="closeModal1()">&times;</span>
144
+ <button class="modal-arrow-btn prev">&#10094;</button>
145
+ <button class="modal-arrow-btn next">&#10095;</button>
146
+ <div class="modal1-content1">
147
+ <div class="modal1-body">
148
+ <img id="modal1Image" src="" alt="Image" />
21
149
  </div>
22
- {% endfor %}
23
150
  </div>
24
- <svg id="right" fill="#000000" viewBox="-12 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg">
25
- <g id="SVGRepo_bgCarrier" stroke-width="0"></g>
26
- <g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
27
- <g id="SVGRepo_iconCarrier">
28
- <title>angle-right</title>
29
- <path
30
- d="M0.88 23.28c-0.2 0-0.44-0.080-0.6-0.24-0.32-0.32-0.32-0.84 0-1.2l5.76-5.84-5.8-5.84c-0.32-0.32-0.32-0.84 0-1.2 0.32-0.32 0.84-0.32 1.2 0l6.44 6.44c0.16 0.16 0.24 0.36 0.24 0.6s-0.080 0.44-0.24 0.6l-6.4 6.44c-0.2 0.16-0.4 0.24-0.6 0.24z">
31
- </path>
32
- </g>
33
- </svg>
34
151
  </div>
35
- </div>
36
-
37
152
  </div>
38
153
 
39
154
  <script>
40
- const carousel = document.querySelector(".carousel"),
41
- firstImg = carousel.querySelectorAll("img")[0],
42
- arrowIcons = document.querySelectorAll(".wrapper svg")
43
-
44
- const numImages = carousel.querySelectorAll("img").length;
45
- const isMobile = window.matchMedia("(max-width: 767px)").matches; // Check if screen width is less than or equal to 767px
46
-
47
- if (numImages > 3) {
48
- arrowIcons[1].style.display = "block"
49
- } else {
50
- arrowIcons[0].style.display = "none";
51
- arrowIcons[1].style.display = "none";
52
- }
53
-
54
- let isDragStart = false, isDragging = false, prevPageX, prevScrollLeft, positionDiff;
55
- const showHideIcons = () => {
56
- let scrollWidth = carousel.scrollWidth - carousel.clientWidth; // getting max scrollable width
57
- arrowIcons[0].style.display = carousel.scrollLeft == 0 ? "none" : "block";
58
- arrowIcons[1].style.display = carousel.scrollLeft == scrollWidth ? "none" : "block";
59
- }
155
+ document.addEventListener("DOMContentLoaded", () => {
156
+ let modal_array_of_images = [];
157
+ let current_modal_img = 0;
158
+
159
+ // Function to update the modal image
160
+ function updateModalImage() {
161
+ const modal1Img = document.getElementById("modal1Image");
162
+ if (modal_array_of_images.length > 0) {
163
+ modal1Img.src = modal_array_of_images[current_modal_img].src;
164
+ }
165
+ }
166
+
167
+ // Function to prepare the array of images for the modal
168
+ function readyallimages() {
169
+ modal_array_of_images = Array.from(document.querySelectorAll('.infographic-img'));
170
+ }
171
+
172
+ // Function to open the modal and set the current image
173
+ function openModal1(imageSrc) {
174
+ const modal1 = document.getElementById("imageModal1");
175
+ modal1.classList.add("show");
176
+ modal_array_of_images = Array.from(document.querySelectorAll('.infographic-img'));
177
+ current_modal_img = modal_array_of_images.findIndex(img => img.src === imageSrc);
178
+ updateModalImage();
179
+ }
180
+
181
+ // Function to close the modal
182
+ function closeModal1() {
183
+ const modal1 = document.getElementById("imageModal1");
184
+ modal1.classList.remove("show");
185
+ }
186
+
187
+ // Add click event listeners to each infographic image
188
+ document.querySelectorAll('.infographic-img').forEach(img => {
189
+ img.addEventListener('click', (event) => {
190
+ openModal1(event.target.src);
191
+ });
192
+ });
60
193
 
61
- arrowIcons.forEach(icon => {
62
- icon.addEventListener("click", () => {
63
- let firstImgWidth = firstImg.clientWidth + 40;
64
- const scrollAmount = icon.id === "left" ? -firstImgWidth : firstImgWidth;
65
- carousel.scrollBy({
66
- left: scrollAmount,
67
- behavior: "smooth",
194
+ // Event listeners for the modal arrow buttons
195
+ const modal_btns = document.querySelectorAll('.modal-arrow-btn');
196
+ modal_btns.forEach(modal_btn => {
197
+ modal_btn.addEventListener('click', (e) => {
198
+ e.stopPropagation();
199
+ if (modal_btn.classList.contains('prev')) {
200
+ current_modal_img = (current_modal_img > 0) ? current_modal_img - 1 : modal_array_of_images.length - 1;
201
+ } else {
202
+ current_modal_img = (current_modal_img < modal_array_of_images.length - 1) ? current_modal_img + 1 : 0;
203
+ }
204
+ updateModalImage();
68
205
  });
69
- setTimeout(() => showHideIcons(), 60); // calling showHideIcons after 60ms
70
206
  });
207
+
208
+ // Event listener for the close button
209
+ document.querySelectorAll(".close1").forEach(element => {
210
+ element.addEventListener("click", closeModal1);
211
+ });
212
+
213
+ // Event listener for closing the modal when clicking outside the image
214
+ document.getElementById("imageModal1").addEventListener("click", (event) => {
215
+ if (event.target === document.getElementById("imageModal1")) {
216
+ closeModal1();
217
+ }
218
+ });
219
+
220
+ // Initialize modal images on page load
221
+ readyallimages();
71
222
  });
72
223
 
73
- // const autoSlide = () => {
74
- // // if there is no image left to scroll then return from here
75
- // if (carousel.scrollLeft - (carousel.scrollWidth - carousel.clientWidth) > -1 || carousel.scrollLeft <= 0) return;
76
-
77
- // positionDiff = Math.abs(positionDiff); // making positionDiff value to positive
78
- // let firstImgWidth = firstImg.clientWidth + 14;
79
- // // getting difference value that needs to add or reduce from carousel left to take middle img center
80
- // let valDifference = firstImgWidth - positionDiff;
81
-
82
- // if (carousel.scrollLeft > prevScrollLeft) { // if user is scrolling to the right
83
- // return carousel.scrollLeft += positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
84
- // }
85
- // // if user is scrolling to the left
86
- // carousel.scrollLeft -= positionDiff > firstImgWidth / 3 ? valDifference : -positionDiff;
87
- // }
88
-
89
- // const dragStart = (e) => {
90
- // // updatating global variables value on mouse down event
91
- // isDragStart = true;
92
- // prevPageX = e.pageX || e.touches[0].pageX;
93
- // prevScrollLeft = carousel.scrollLeft;
94
- // }
95
-
96
- // const dragging = (e) => {
97
- // // scrolling images/carousel to left according to mouse pointer
98
- // if (!isDragStart) return;
99
- // e.preventDefault();
100
- // isDragging = true;
101
- // carousel.classList.add("dragging");
102
- // positionDiff = (e.pageX || e.touches[0].pageX) - prevPageX;
103
- // carousel.scrollLeft = prevScrollLeft - positionDiff;
104
- // showHideIcons();
105
- // }
106
-
107
- // const dragStop = () => {
108
- // isDragStart = false;
109
- // carousel.classList.remove("dragging");
110
-
111
- // if (!isDragging) return;
112
- // isDragging = false;
113
- // autoSlide();
114
- // }
115
-
116
- // carousel.addEventListener("mousedown", dragStart);
117
- // carousel.addEventListener("touchstart", dragStart);
118
-
119
- // document.addEventListener("mousemove", dragging);
120
- // carousel.addEventListener("touchmove", dragging);
121
-
122
- // document.addEventListener("mouseup", dragStop);
123
- // carousel.addEventListener("touchend", dragStop);
124
224
  </script>
@@ -600,7 +600,7 @@ details>summary::after {
600
600
  /* infographicss css */
601
601
  .inforgraphics_section {
602
602
  width: 100%;
603
- padding: 50px 0px 50px 0px;
603
+ /* padding: 50px 0px 50px 0px; */
604
604
  /* border-top: 1px solid rgb(224, 224, 224); */
605
605
  display: flex;
606
606
  flex-direction: column;
@@ -662,6 +662,7 @@ details>summary::after {
662
662
  }
663
663
 
664
664
  .slide {
665
+ cursor: pointer;
665
666
  flex: 0 0 calc(100% / 3);
666
667
  scroll-snap-align: start;
667
668
  padding: 20px;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: word-games-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - manpreet-appscms
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-26 00:00:00.000000000 Z
11
+ date: 2025-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll