ultimate-jekyll-manager 0.0.286 → 0.0.289
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.
|
@@ -245,6 +245,92 @@
|
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
// Instruction step container
|
|
248
249
|
.instruction-step-container {
|
|
249
250
|
min-height: 200px;
|
|
250
251
|
}
|
|
252
|
+
|
|
253
|
+
// Steps slideshow
|
|
254
|
+
.steps-slideshow {
|
|
255
|
+
position: relative;
|
|
256
|
+
|
|
257
|
+
.step-slide {
|
|
258
|
+
display: none;
|
|
259
|
+
text-align: center;
|
|
260
|
+
animation: step-fade-in 0.35s ease-out;
|
|
261
|
+
|
|
262
|
+
&.active {
|
|
263
|
+
display: block;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Big step number badge
|
|
269
|
+
.step-number-badge {
|
|
270
|
+
display: inline-flex;
|
|
271
|
+
align-items: center;
|
|
272
|
+
justify-content: center;
|
|
273
|
+
width: 56px;
|
|
274
|
+
height: 56px;
|
|
275
|
+
border-radius: 50%;
|
|
276
|
+
background: var(--bs-primary);
|
|
277
|
+
color: #fff;
|
|
278
|
+
font-size: 1.5rem;
|
|
279
|
+
font-weight: 700;
|
|
280
|
+
margin-bottom: 0.75rem;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// Step title
|
|
284
|
+
.step-title {
|
|
285
|
+
font-weight: 600;
|
|
286
|
+
margin-bottom: 0.25rem;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// Navigation bar
|
|
290
|
+
.steps-slideshow-nav {
|
|
291
|
+
display: flex;
|
|
292
|
+
align-items: center;
|
|
293
|
+
justify-content: space-between;
|
|
294
|
+
margin-top: 1.25rem;
|
|
295
|
+
padding-top: 1rem;
|
|
296
|
+
border-top: 1px solid var(--bs-border-color);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// Progress dots
|
|
300
|
+
.steps-dots {
|
|
301
|
+
display: flex;
|
|
302
|
+
gap: 8px;
|
|
303
|
+
align-items: center;
|
|
304
|
+
|
|
305
|
+
.step-dot {
|
|
306
|
+
width: 10px;
|
|
307
|
+
height: 10px;
|
|
308
|
+
border-radius: 50%;
|
|
309
|
+
background: var(--bs-border-color);
|
|
310
|
+
border: none;
|
|
311
|
+
padding: 0;
|
|
312
|
+
cursor: pointer;
|
|
313
|
+
transition: background 0.2s, transform 0.2s;
|
|
314
|
+
|
|
315
|
+
&.active {
|
|
316
|
+
background: var(--bs-primary);
|
|
317
|
+
transform: scale(1.3);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
&:hover:not(.active) {
|
|
321
|
+
background: var(--bs-secondary);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// Slide fade-in animation
|
|
327
|
+
@keyframes step-fade-in {
|
|
328
|
+
from {
|
|
329
|
+
opacity: 0;
|
|
330
|
+
transform: translateX(20px);
|
|
331
|
+
}
|
|
332
|
+
to {
|
|
333
|
+
opacity: 1;
|
|
334
|
+
transform: translateX(0);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
@@ -100,6 +100,12 @@ function setupDownloadTracking() {
|
|
|
100
100
|
});
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
// Slideshow auto-advance interval (ms)
|
|
104
|
+
const SLIDESHOW_INTERVAL = 5000;
|
|
105
|
+
|
|
106
|
+
// Active slideshow timer
|
|
107
|
+
let slideshowTimer = null;
|
|
108
|
+
|
|
103
109
|
// Show onboarding modal with platform-specific instructions
|
|
104
110
|
function showOnboardingModal(platform) {
|
|
105
111
|
const $modal = document.getElementById('onboardingModal');
|
|
@@ -117,8 +123,117 @@ function showOnboardingModal(platform) {
|
|
|
117
123
|
}
|
|
118
124
|
});
|
|
119
125
|
|
|
126
|
+
// Initialize slideshow for the active platform
|
|
127
|
+
const $activeInstructions = $modal.querySelector(`.platform-instructions[data-platform="${platform}"]`);
|
|
128
|
+
const $slideshow = $activeInstructions ? $activeInstructions.querySelector('.steps-slideshow') : null;
|
|
129
|
+
if ($slideshow) {
|
|
130
|
+
initSlideshow($slideshow);
|
|
131
|
+
}
|
|
132
|
+
|
|
120
133
|
const modal = new bootstrap.Modal($modal);
|
|
121
134
|
modal.show();
|
|
135
|
+
|
|
136
|
+
// Stop auto-advance when modal closes
|
|
137
|
+
$modal.addEventListener('hidden.bs.modal', () => {
|
|
138
|
+
clearInterval(slideshowTimer);
|
|
139
|
+
slideshowTimer = null;
|
|
140
|
+
}, { once: true });
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Initialize a slideshow: build dots, show first slide, start auto-advance
|
|
144
|
+
function initSlideshow($slideshow) {
|
|
145
|
+
const $slides = $slideshow.querySelectorAll('.step-slide');
|
|
146
|
+
const $dotsContainer = $slideshow.querySelector('.steps-dots');
|
|
147
|
+
const $prevBtn = $slideshow.querySelector('.step-prev');
|
|
148
|
+
const $nextBtn = $slideshow.querySelector('.step-next');
|
|
149
|
+
const totalSteps = $slides.length;
|
|
150
|
+
|
|
151
|
+
// Build dots
|
|
152
|
+
$dotsContainer.innerHTML = '';
|
|
153
|
+
for (let i = 0; i < totalSteps; i++) {
|
|
154
|
+
const $dot = document.createElement('button');
|
|
155
|
+
$dot.type = 'button';
|
|
156
|
+
$dot.className = 'step-dot';
|
|
157
|
+
$dot.setAttribute('aria-label', `Step ${i + 1}`);
|
|
158
|
+
$dot.addEventListener('click', () => goToSlide($slideshow, i));
|
|
159
|
+
$dotsContainer.appendChild($dot);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Show first slide
|
|
163
|
+
goToSlide($slideshow, 0);
|
|
164
|
+
|
|
165
|
+
// Nav button handlers
|
|
166
|
+
$prevBtn.addEventListener('click', () => {
|
|
167
|
+
const current = getCurrentSlideIndex($slideshow);
|
|
168
|
+
if (current > 0) {
|
|
169
|
+
goToSlide($slideshow, current - 1);
|
|
170
|
+
resetAutoAdvance($slideshow);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
$nextBtn.addEventListener('click', () => {
|
|
175
|
+
const current = getCurrentSlideIndex($slideshow);
|
|
176
|
+
const $slides = $slideshow.querySelectorAll('.step-slide');
|
|
177
|
+
goToSlide($slideshow, (current + 1) % $slides.length);
|
|
178
|
+
resetAutoAdvance($slideshow);
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// Start auto-advance
|
|
182
|
+
startAutoAdvance($slideshow);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Navigate to a specific slide
|
|
186
|
+
function goToSlide($slideshow, index) {
|
|
187
|
+
const $slides = $slideshow.querySelectorAll('.step-slide');
|
|
188
|
+
const $dots = $slideshow.querySelectorAll('.step-dot');
|
|
189
|
+
const $prevBtn = $slideshow.querySelector('.step-prev');
|
|
190
|
+
|
|
191
|
+
// Update slides
|
|
192
|
+
$slides.forEach(($slide, i) => {
|
|
193
|
+
$slide.classList.toggle('active', i === index);
|
|
194
|
+
});
|
|
195
|
+
|
|
196
|
+
// Update dots
|
|
197
|
+
$dots.forEach(($dot, i) => {
|
|
198
|
+
$dot.classList.toggle('active', i === index);
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
// Update nav button states (next always enabled since it loops)
|
|
202
|
+
$prevBtn.disabled = index === 0;
|
|
203
|
+
|
|
204
|
+
// Update next button text on last slide
|
|
205
|
+
const $nextBtn = $slideshow.querySelector('.step-next');
|
|
206
|
+
const $nextText = $nextBtn.querySelector('.button-text');
|
|
207
|
+
$nextText.textContent = index === $slides.length - 1 ? 'Restart' : 'Next';
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Get current active slide index
|
|
211
|
+
function getCurrentSlideIndex($slideshow) {
|
|
212
|
+
const $slides = $slideshow.querySelectorAll('.step-slide');
|
|
213
|
+
for (let i = 0; i < $slides.length; i++) {
|
|
214
|
+
if ($slides[i].classList.contains('active')) {
|
|
215
|
+
return i;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return 0;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// Start auto-advance timer
|
|
222
|
+
function startAutoAdvance($slideshow) {
|
|
223
|
+
clearInterval(slideshowTimer);
|
|
224
|
+
|
|
225
|
+
slideshowTimer = setInterval(() => {
|
|
226
|
+
const $slides = $slideshow.querySelectorAll('.step-slide');
|
|
227
|
+
const current = getCurrentSlideIndex($slideshow);
|
|
228
|
+
const next = (current + 1) % $slides.length;
|
|
229
|
+
|
|
230
|
+
goToSlide($slideshow, next);
|
|
231
|
+
}, SLIDESHOW_INTERVAL);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Reset auto-advance (restart timer after manual interaction)
|
|
235
|
+
function resetAutoAdvance($slideshow) {
|
|
236
|
+
startAutoAdvance($slideshow);
|
|
122
237
|
}
|
|
123
238
|
|
|
124
239
|
// Tracking functions
|
|
@@ -640,281 +640,335 @@ cta:
|
|
|
640
640
|
|
|
641
641
|
<!-- Windows Instructions -->
|
|
642
642
|
<div class="platform-instructions" data-platform="windows" hidden>
|
|
643
|
-
<div class="
|
|
644
|
-
<div class="
|
|
645
|
-
<
|
|
646
|
-
<
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
643
|
+
<div class="steps-slideshow">
|
|
644
|
+
<div class="step-slide" data-step="1">
|
|
645
|
+
<div class="step-number-badge">1</div>
|
|
646
|
+
<h5 class="step-title">Open your Downloads folder</h5>
|
|
647
|
+
<!-- <p class="text-muted mb-3">Find the <strong>Downloads</strong> folder on your computer</p> -->
|
|
648
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
649
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
650
|
+
<div class="folder-icon animation-flex position-relative d-flex align-items-center justify-content-center">
|
|
651
|
+
{% uj_icon "download", "display-4" %}
|
|
652
|
+
</div>
|
|
653
|
+
<span class="fw-bold">Downloads</span>
|
|
652
654
|
</div>
|
|
653
|
-
<span class="fw-bold">Downloads</span>
|
|
654
655
|
</div>
|
|
655
656
|
</div>
|
|
656
|
-
</div>
|
|
657
657
|
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
<
|
|
661
|
-
<
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
658
|
+
<div class="step-slide" data-step="2">
|
|
659
|
+
<div class="step-number-badge">2</div>
|
|
660
|
+
<h5 class="step-title">Double-click {{ site.brand.name }}-Setup.exe</h5>
|
|
661
|
+
<!-- <p class="text-muted mb-3">Click <strong>"Yes"</strong> if Windows asks for permission</p> -->
|
|
662
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
663
|
+
<div class="d-flex flex-column align-items-center gap-2 position-relative">
|
|
664
|
+
<div class="file-to-click bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
665
|
+
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
666
|
+
</div>
|
|
667
|
+
<span class="fw-bold">{{ site.brand.name }}-Setup.exe</span>
|
|
668
|
+
<div class="click-indicator position-absolute top-50 start-50">
|
|
669
|
+
<div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
|
|
670
|
+
<div class="pointer-icon">
|
|
671
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/><path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/></svg>
|
|
672
|
+
</div>
|
|
673
673
|
</div>
|
|
674
674
|
</div>
|
|
675
675
|
</div>
|
|
676
676
|
</div>
|
|
677
|
-
</div>
|
|
678
677
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
<
|
|
682
|
-
<
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
678
|
+
<div class="step-slide" data-step="3">
|
|
679
|
+
<div class="step-number-badge">3</div>
|
|
680
|
+
<h5 class="step-title">Follow the installation setup</h5>
|
|
681
|
+
<!-- <p class="text-muted mb-3">Click <strong>"Next"</strong> through the steps and accept the terms</p> -->
|
|
682
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
683
|
+
<div class="wizard-window card border-2 rounded-3 shadow overflow-hidden">
|
|
684
|
+
<div class="wizard-header bg-primary text-light d-flex align-items-center px-2 small fw-bold">
|
|
685
|
+
{{ site.brand.name }} Setup
|
|
686
|
+
</div>
|
|
687
|
+
<div class="wizard-content bg-adaptive-inverse d-flex flex-column justify-content-center p-3">
|
|
688
|
+
<div class="small text-adaptive mb-2 text-center">Installing...</div>
|
|
689
|
+
<div class="progress-bar-container bg-secondary rounded-pill overflow-hidden w-100">
|
|
690
|
+
<div class="progress-fill"></div>
|
|
691
|
+
</div>
|
|
693
692
|
</div>
|
|
694
693
|
</div>
|
|
695
694
|
</div>
|
|
696
695
|
</div>
|
|
697
|
-
</div>
|
|
698
696
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
<
|
|
702
|
-
<
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
697
|
+
<div class="step-slide" data-step="4">
|
|
698
|
+
<div class="step-number-badge">4</div>
|
|
699
|
+
<h5 class="step-title">Launch the app</h5>
|
|
700
|
+
<!-- <p class="text-muted mb-3">Find {{ site.brand.name }} in your <strong>Start Menu</strong> or <strong>Desktop</strong> shortcut</p> -->
|
|
701
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
702
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
703
|
+
<div class="app-icon animation-flex bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
704
|
+
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
705
|
+
</div>
|
|
706
|
+
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
708
707
|
</div>
|
|
709
|
-
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
710
708
|
</div>
|
|
711
709
|
</div>
|
|
710
|
+
|
|
711
|
+
<div class="steps-slideshow-nav">
|
|
712
|
+
<button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
|
|
713
|
+
{% uj_icon "chevron-left", "me-1" %} Back
|
|
714
|
+
</button>
|
|
715
|
+
<div class="steps-dots"></div>
|
|
716
|
+
<button type="button" class="btn btn-primary btn-sm step-next">
|
|
717
|
+
<span class="button-text">Next</span> {% uj_icon "chevron-right", "ms-1" %}
|
|
718
|
+
</button>
|
|
719
|
+
</div>
|
|
712
720
|
</div>
|
|
713
721
|
</div>
|
|
714
722
|
|
|
715
723
|
<!-- macOS Instructions -->
|
|
716
724
|
<div class="platform-instructions" data-platform="mac" hidden>
|
|
717
|
-
<div class="
|
|
718
|
-
<div class="
|
|
719
|
-
<
|
|
720
|
-
<
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
</div>
|
|
727
|
-
<span class="fw-bold">Downloads</span>
|
|
728
|
-
</div>
|
|
729
|
-
</div>
|
|
730
|
-
</div>
|
|
731
|
-
|
|
732
|
-
<div class="position-relative mb-3">
|
|
733
|
-
<div class="mb-1">
|
|
734
|
-
<h6 class="mb-0">2. Double-click {{ site.brand.name }}.dmg</h6>
|
|
735
|
-
<small class="text-muted">This will mount the disk image</small>
|
|
736
|
-
</div>
|
|
737
|
-
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
738
|
-
<div class="d-flex flex-column align-items-center gap-2 position-relative">
|
|
739
|
-
<div class="file-to-click bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
740
|
-
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
741
|
-
</div>
|
|
742
|
-
<span class="fw-bold">{{ site.brand.name }}.dmg</span>
|
|
743
|
-
<div class="click-indicator position-absolute top-50 start-50">
|
|
744
|
-
<div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
|
|
745
|
-
<div class="pointer-icon">
|
|
746
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/><path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/></svg>
|
|
725
|
+
<div class="steps-slideshow">
|
|
726
|
+
<div class="step-slide" data-step="1">
|
|
727
|
+
<div class="step-number-badge">1</div>
|
|
728
|
+
<h5 class="step-title">Open your Downloads folder</h5>
|
|
729
|
+
<!-- <p class="text-muted mb-3">Find the <strong>Downloads</strong> folder on your Mac</p> -->
|
|
730
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
731
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
732
|
+
<div class="folder-icon animation-flex position-relative d-flex align-items-center justify-content-center">
|
|
733
|
+
{% uj_icon "download", "display-4" %}
|
|
747
734
|
</div>
|
|
735
|
+
<span class="fw-bold">Downloads</span>
|
|
748
736
|
</div>
|
|
749
737
|
</div>
|
|
750
738
|
</div>
|
|
751
|
-
</div>
|
|
752
739
|
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
<
|
|
756
|
-
<
|
|
757
|
-
|
|
758
|
-
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
759
|
-
<div class="d-flex gap-5 align-items-center position-relative">
|
|
740
|
+
<div class="step-slide" data-step="2">
|
|
741
|
+
<div class="step-number-badge">2</div>
|
|
742
|
+
<h5 class="step-title">Double-click {{ site.brand.name }}.dmg</h5>
|
|
743
|
+
<!-- <p class="text-muted mb-3">This will mount the disk image</p> -->
|
|
744
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
760
745
|
<div class="d-flex flex-column align-items-center gap-2 position-relative">
|
|
761
746
|
<div class="file-to-click bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
762
747
|
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
763
748
|
</div>
|
|
764
|
-
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
765
|
-
<div class="
|
|
749
|
+
<span class="fw-bold">{{ site.brand.name }}.dmg</span>
|
|
750
|
+
<div class="click-indicator position-absolute top-50 start-50">
|
|
766
751
|
<div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
|
|
767
752
|
<div class="pointer-icon">
|
|
768
|
-
<svg xmlns="http://www.w3.org/2000/svg"
|
|
753
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/><path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/></svg>
|
|
769
754
|
</div>
|
|
770
755
|
</div>
|
|
771
756
|
</div>
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
757
|
+
</div>
|
|
758
|
+
</div>
|
|
759
|
+
|
|
760
|
+
<div class="step-slide" data-step="3">
|
|
761
|
+
<div class="step-number-badge">3</div>
|
|
762
|
+
<h5 class="step-title">Drag {{ site.brand.name }} to Applications folder</h5>
|
|
763
|
+
<!-- <p class="text-muted mb-3">This installs the app for all users</p> -->
|
|
764
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
765
|
+
<div class="d-flex gap-5 align-items-center position-relative">
|
|
766
|
+
<div class="d-flex flex-column align-items-center gap-2 position-relative">
|
|
767
|
+
<div class="file-to-click bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
768
|
+
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
769
|
+
</div>
|
|
770
|
+
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
771
|
+
<div class="drag-indicator position-absolute top-50 start-50">
|
|
772
|
+
<div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
|
|
773
|
+
<div class="pointer-icon">
|
|
774
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/><path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/></svg>
|
|
775
|
+
</div>
|
|
776
|
+
</div>
|
|
777
|
+
</div>
|
|
778
|
+
<div class="text-primary animation-pulse-right">
|
|
779
|
+
{% uj_icon "arrow-right", "fs-1" %}
|
|
780
|
+
</div>
|
|
781
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
782
|
+
<div class="folder-icon position-relative d-flex align-items-center justify-content-center">
|
|
783
|
+
<i class="fa display-4">
|
|
784
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
785
|
+
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
|
786
|
+
<path fill="#1D81F3" d="M3,17 C2.44771525,17 2,16.5522847 2,16 C2,15.4477153 2.44771525,15 3,15 L13.5,15 C14.5,15 15.5,17 15,17 L3,17 Z M17,17 C16.4477153,17 16,16.5522847 16,16 C16,15.4477153 16.4477153,15 17,15 L21,15 C21.5522847,15 22,15.4477153 22,16 C22,16.5522847 21.5522847,17 21,17 L17,17 Z M12.6333775,3.50103556 C12.908948,3.02241319 13.5203421,2.85780709 13.9989644,3.13337754 C14.4775868,3.408948 14.6421929,4.02034208 14.3666225,4.49896444 L7.45953351,16.4954873 C7.18396306,16.9741097 6.57256898,17.1387158 6.09394661,16.8631454 C5.61532424,16.5875749 5.45071815,15.9761808 5.7262886,15.4975585 L12.6333775,3.50103556 Z M4,18.5 C4.5,17.5 7.5,16.5 6.5,18.2208385 C6.32221095,18.5267848 5.77775177,19.4528267 4.86662246,20.9989644 C4.591052,21.4775868 3.97965792,21.6421929 3.50103556,21.3666225 C3.02241319,21.091052 2.85780709,20.4796579 3.13337754,20.0010356 L4,18.5 Z M9.13337754,4.49896444 C8.85780709,4.02034208 9.02241319,3.408948 9.50103556,3.13337754 C9.97965792,2.85780709 10.591052,3.02241319 10.8666225,3.50103556 L12.6104584,6.52980328 C12.8860289,7.00842564 12.7214228,7.61981972 12.2428004,7.89539018 C11.764178,8.17096063 11.152784,8.00635453 10.8772135,7.52773217 L9.13337754,4.49896444 Z M13,11.5 C12.1018662,10 13,7 13.7163439,8.49589818 L20.3666225,20.0010356 C20.6421929,20.4796579 20.4775868,21.091052 19.9989644,21.3666225 C19.5203421,21.6421929 18.908948,21.4775868 18.6333775,20.9989644 L13,11.5 Z"/>
|
|
787
|
+
</svg>
|
|
788
|
+
</i>
|
|
789
|
+
</div>
|
|
790
|
+
<span class="fw-bold">Applications</span>
|
|
783
791
|
</div>
|
|
784
|
-
<span class="fw-bold">Applications</span>
|
|
785
792
|
</div>
|
|
786
793
|
</div>
|
|
787
794
|
</div>
|
|
788
|
-
</div>
|
|
789
795
|
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
<
|
|
793
|
-
<
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
796
|
+
<div class="step-slide" data-step="4">
|
|
797
|
+
<div class="step-number-badge">4</div>
|
|
798
|
+
<h5 class="step-title">Launch the app</h5>
|
|
799
|
+
<!-- <p class="text-muted mb-3">Find {{ site.brand.name }} in your <strong>Applications</strong> folder or use <strong>Spotlight</strong></p> -->
|
|
800
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
801
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
802
|
+
<div class="app-icon animation-flex bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
803
|
+
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
804
|
+
</div>
|
|
805
|
+
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
799
806
|
</div>
|
|
800
|
-
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
801
807
|
</div>
|
|
802
808
|
</div>
|
|
809
|
+
|
|
810
|
+
<div class="steps-slideshow-nav">
|
|
811
|
+
<button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
|
|
812
|
+
{% uj_icon "chevron-left", "me-1" %} Back
|
|
813
|
+
</button>
|
|
814
|
+
<div class="steps-dots"></div>
|
|
815
|
+
<button type="button" class="btn btn-primary btn-sm step-next">
|
|
816
|
+
<span class="button-text">Next</span> {% uj_icon "chevron-right", "ms-1" %}
|
|
817
|
+
</button>
|
|
818
|
+
</div>
|
|
803
819
|
</div>
|
|
804
820
|
</div>
|
|
805
821
|
|
|
806
822
|
<!-- Linux Instructions -->
|
|
807
823
|
<div class="platform-instructions" data-platform="linux" hidden>
|
|
808
|
-
<div class="
|
|
809
|
-
<div class="
|
|
810
|
-
<
|
|
811
|
-
<
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
824
|
+
<div class="steps-slideshow">
|
|
825
|
+
<div class="step-slide" data-step="1">
|
|
826
|
+
<div class="step-number-badge">1</div>
|
|
827
|
+
<h5 class="step-title">Open Terminal</h5>
|
|
828
|
+
<!-- <p class="text-muted mb-3">Press <strong>Ctrl+Alt+T</strong></p> -->
|
|
829
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
830
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
831
|
+
<div class="app-icon animation-flex bg-dark text-light rounded-3 d-flex align-items-center justify-content-center">
|
|
832
|
+
{% uj_icon "terminal", "display-4" %}
|
|
833
|
+
</div>
|
|
834
|
+
<span class="fw-bold">Terminal</span>
|
|
817
835
|
</div>
|
|
818
|
-
<span class="fw-bold">Terminal</span>
|
|
819
836
|
</div>
|
|
820
837
|
</div>
|
|
821
|
-
</div>
|
|
822
838
|
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
<
|
|
826
|
-
<
|
|
827
|
-
|
|
828
|
-
<div class="bg-body-tertiary rounded-4 p-4 overflow-hidden position-relative">
|
|
829
|
-
<div class="input-group">
|
|
830
|
-
<input type="text" class="form-control font-monospace bg-dark text-light border-0" name="linux-command-1" value="cd ~/Downloads" readonly aria-labelledby="linux-step-2-label">
|
|
831
|
-
<button type="button" class="btn btn-outline-adaptive copy-command-btn">
|
|
832
|
-
{% uj_icon "copy", "me-2" %}
|
|
833
|
-
<span class="button-text d-none d-sm-inline">Copy</span>
|
|
834
|
-
</button>
|
|
835
|
-
</div>
|
|
836
|
-
</div>
|
|
837
|
-
</div>
|
|
838
|
-
|
|
839
|
-
<div class="position-relative mb-3">
|
|
840
|
-
<div class="mb-1">
|
|
841
|
-
<h6 class="mb-0" id="linux-step-3-label">3. Install the package</h6>
|
|
842
|
-
<small class="text-muted">Run the appropriate command for your distribution</small>
|
|
843
|
-
</div>
|
|
844
|
-
<div class="bg-body-tertiary rounded-4 p-4 overflow-hidden position-relative">
|
|
845
|
-
<div class="mb-3">
|
|
846
|
-
<small class="text-muted d-block mb-2 fw-bold" id="linux-debian-label">For Debian/Ubuntu:</small>
|
|
839
|
+
<div class="step-slide" data-step="2">
|
|
840
|
+
<div class="step-number-badge">2</div>
|
|
841
|
+
<h5 class="step-title" id="linux-step-2-label">Navigate to Downloads</h5>
|
|
842
|
+
<!-- <p class="text-muted mb-3">Run the command below</p> -->
|
|
843
|
+
<div class="bg-body-tertiary rounded-4 p-4 overflow-hidden position-relative">
|
|
847
844
|
<div class="input-group">
|
|
848
|
-
<input type="text" class="form-control font-monospace bg-dark text-light border-0" name="linux-command-
|
|
845
|
+
<input type="text" class="form-control font-monospace bg-dark text-light border-0" name="linux-command-1" value="cd ~/Downloads" readonly aria-labelledby="linux-step-2-label">
|
|
849
846
|
<button type="button" class="btn btn-outline-adaptive copy-command-btn">
|
|
850
847
|
{% uj_icon "copy", "me-2" %}
|
|
851
848
|
<span class="button-text d-none d-sm-inline">Copy</span>
|
|
852
849
|
</button>
|
|
853
850
|
</div>
|
|
854
851
|
</div>
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
852
|
+
</div>
|
|
853
|
+
|
|
854
|
+
<div class="step-slide" data-step="3">
|
|
855
|
+
<div class="step-number-badge">3</div>
|
|
856
|
+
<h5 class="step-title" id="linux-step-3-label">Install the package</h5>
|
|
857
|
+
<!-- <p class="text-muted mb-3">Run the appropriate command for your distribution</p> -->
|
|
858
|
+
<div class="bg-body-tertiary rounded-4 p-4 overflow-hidden position-relative">
|
|
859
|
+
<div class="mb-3">
|
|
860
|
+
<small class="text-muted d-block mb-2 fw-bold" id="linux-debian-label">For Debian/Ubuntu:</small>
|
|
861
|
+
<div class="input-group">
|
|
862
|
+
<input type="text" class="form-control font-monospace bg-dark text-light border-0" name="linux-command-2" value="sudo dpkg -i {{ site.brand.name | downcase }}_amd64.deb" readonly aria-labelledby="linux-debian-label">
|
|
863
|
+
<button type="button" class="btn btn-outline-adaptive copy-command-btn">
|
|
864
|
+
{% uj_icon "copy", "me-2" %}
|
|
865
|
+
<span class="button-text d-none d-sm-inline">Copy</span>
|
|
866
|
+
</button>
|
|
867
|
+
</div>
|
|
868
|
+
</div>
|
|
869
|
+
<div>
|
|
870
|
+
<small class="text-muted d-block mb-2 fw-bold" id="linux-fedora-label">For Fedora/RHEL:</small>
|
|
871
|
+
<div class="input-group">
|
|
872
|
+
<input type="text" class="form-control font-monospace bg-dark text-light border-0" name="linux-command-3" value="sudo rpm -i {{ site.brand.name | downcase }}_amd64.rpm" readonly aria-labelledby="linux-fedora-label">
|
|
873
|
+
<button type="button" class="btn btn-outline-adaptive copy-command-btn">
|
|
874
|
+
{% uj_icon "copy", "me-2" %}
|
|
875
|
+
<span class="button-text d-none d-sm-inline">Copy</span>
|
|
876
|
+
</button>
|
|
877
|
+
</div>
|
|
863
878
|
</div>
|
|
864
879
|
</div>
|
|
865
880
|
</div>
|
|
866
|
-
</div>
|
|
867
881
|
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
<
|
|
871
|
-
<
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
882
|
+
<div class="step-slide" data-step="4">
|
|
883
|
+
<div class="step-number-badge">4</div>
|
|
884
|
+
<h5 class="step-title">Launch the app</h5>
|
|
885
|
+
<!-- <p class="text-muted mb-3">Find {{ site.brand.name }} in your <strong>Applications</strong> menu</p> -->
|
|
886
|
+
<div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
|
|
887
|
+
<div class="d-flex flex-column align-items-center gap-2">
|
|
888
|
+
<div class="app-icon animation-flex bg-white border border-primary border-3 rounded-3 d-flex align-items-center justify-content-center">
|
|
889
|
+
<img src="{{ site.uj.placeholder.src }}" data-lazy="@src {{ site.brand.images.brandmark }}" class="brandmark" alt="{{ site.brand.name }} Logo"/>
|
|
890
|
+
</div>
|
|
891
|
+
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
877
892
|
</div>
|
|
878
|
-
<span class="fw-bold">{{ site.brand.name }}</span>
|
|
879
893
|
</div>
|
|
880
894
|
</div>
|
|
895
|
+
|
|
896
|
+
<div class="steps-slideshow-nav">
|
|
897
|
+
<button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
|
|
898
|
+
{% uj_icon "chevron-left", "me-1" %} Back
|
|
899
|
+
</button>
|
|
900
|
+
<div class="steps-dots"></div>
|
|
901
|
+
<button type="button" class="btn btn-primary btn-sm step-next">
|
|
902
|
+
<span class="button-text">Next</span> {% uj_icon "chevron-right", "ms-1" %}
|
|
903
|
+
</button>
|
|
904
|
+
</div>
|
|
881
905
|
</div>
|
|
882
906
|
</div>
|
|
883
907
|
|
|
884
908
|
<!-- Android Instructions -->
|
|
885
909
|
<div class="platform-instructions" data-platform="android" hidden>
|
|
886
|
-
<
|
|
887
|
-
<
|
|
888
|
-
<
|
|
889
|
-
<
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
<
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
910
|
+
<div class="steps-slideshow">
|
|
911
|
+
<div class="step-slide" data-step="1">
|
|
912
|
+
<div class="step-number-badge">1</div>
|
|
913
|
+
<h5 class="step-title">Open the Play Store app</h5>
|
|
914
|
+
<!-- <p class="text-muted mb-3">Or follow the download link that opened</p> -->
|
|
915
|
+
</div>
|
|
916
|
+
|
|
917
|
+
<div class="step-slide" data-step="2">
|
|
918
|
+
<div class="step-number-badge">2</div>
|
|
919
|
+
<h5 class="step-title">Tap "Install"</h5>
|
|
920
|
+
<!-- <p class="text-muted mb-3">Grant any required permissions</p> -->
|
|
921
|
+
</div>
|
|
922
|
+
|
|
923
|
+
<div class="step-slide" data-step="3">
|
|
924
|
+
<div class="step-number-badge">3</div>
|
|
925
|
+
<h5 class="step-title">Tap "Open"</h5>
|
|
926
|
+
<!-- <p class="text-muted mb-3">Or find the app icon on your home screen</p> -->
|
|
927
|
+
</div>
|
|
928
|
+
|
|
929
|
+
<div class="steps-slideshow-nav">
|
|
930
|
+
<button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
|
|
931
|
+
{% uj_icon "chevron-left", "me-1" %} Back
|
|
932
|
+
</button>
|
|
933
|
+
<div class="steps-dots"></div>
|
|
934
|
+
<button type="button" class="btn btn-primary btn-sm step-next">
|
|
935
|
+
<span class="button-text">Next</span> {% uj_icon "chevron-right", "ms-1" %}
|
|
936
|
+
</button>
|
|
937
|
+
</div>
|
|
938
|
+
</div>
|
|
900
939
|
</div>
|
|
901
940
|
|
|
902
941
|
<!-- iOS Instructions -->
|
|
903
942
|
<div class="platform-instructions" data-platform="ios" hidden>
|
|
904
|
-
<
|
|
905
|
-
<
|
|
906
|
-
<
|
|
907
|
-
<
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
<
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
943
|
+
<div class="steps-slideshow">
|
|
944
|
+
<div class="step-slide" data-step="1">
|
|
945
|
+
<div class="step-number-badge">1</div>
|
|
946
|
+
<h5 class="step-title">Open the App Store</h5>
|
|
947
|
+
<!-- <p class="text-muted mb-3">Or follow the link that opened</p> -->
|
|
948
|
+
</div>
|
|
949
|
+
|
|
950
|
+
<div class="step-slide" data-step="2">
|
|
951
|
+
<div class="step-number-badge">2</div>
|
|
952
|
+
<h5 class="step-title">Tap "Get" or the download button</h5>
|
|
953
|
+
<!-- <p class="text-muted mb-3">You may need to verify with Face ID or Touch ID</p> -->
|
|
954
|
+
</div>
|
|
955
|
+
|
|
956
|
+
<div class="step-slide" data-step="3">
|
|
957
|
+
<div class="step-number-badge">3</div>
|
|
958
|
+
<h5 class="step-title">Tap "Open"</h5>
|
|
959
|
+
<!-- <p class="text-muted mb-3">Or find the app icon on your home screen</p> -->
|
|
960
|
+
</div>
|
|
961
|
+
|
|
962
|
+
<div class="steps-slideshow-nav">
|
|
963
|
+
<button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
|
|
964
|
+
{% uj_icon "chevron-left", "me-1" %} Back
|
|
965
|
+
</button>
|
|
966
|
+
<div class="steps-dots"></div>
|
|
967
|
+
<button type="button" class="btn btn-primary btn-sm step-next">
|
|
968
|
+
<span class="button-text">Next</span> {% uj_icon "chevron-right", "ms-1" %}
|
|
969
|
+
</button>
|
|
970
|
+
</div>
|
|
971
|
+
</div>
|
|
918
972
|
</div>
|
|
919
973
|
|
|
920
974
|
<div class="alert alert-info mt-4" role="alert">
|
|
@@ -94,13 +94,15 @@ function shouldHaveStableName(name) {
|
|
|
94
94
|
return bundleNaming.stable.some(pattern => pattern.test(name));
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
// Sanitize chunk
|
|
97
|
+
// Sanitize chunk data: strip leading underscores from name and id
|
|
98
98
|
// Jekyll ignores files starting with "_" so these won't be copied to _site
|
|
99
|
-
function
|
|
100
|
-
if (
|
|
101
|
-
|
|
99
|
+
function sanitizeChunk(data) {
|
|
100
|
+
if (data.chunk.name?.startsWith('_')) {
|
|
101
|
+
data.chunk.name = data.chunk.name.replace(/^_+/, '');
|
|
102
|
+
}
|
|
103
|
+
if (data.chunk.id?.startsWith?.('_')) {
|
|
104
|
+
data.chunk.id = data.chunk.id.replace(/^_+/, '');
|
|
102
105
|
}
|
|
103
|
-
return name.replace(/^_+/, '');
|
|
104
106
|
}
|
|
105
107
|
|
|
106
108
|
// Helper function to get webpack settings (called at runtime)
|
|
@@ -193,18 +195,22 @@ function getSettings() {
|
|
|
193
195
|
|
|
194
196
|
// https://github.com/webpack/webpack/issues/959
|
|
195
197
|
chunkFilename: (data) => {
|
|
196
|
-
|
|
198
|
+
sanitizeChunk(data);
|
|
199
|
+
|
|
200
|
+
const name = data.chunk.name;
|
|
197
201
|
|
|
198
202
|
// Check if this chunk should have a stable name
|
|
199
203
|
if (shouldHaveStableName(name)) {
|
|
200
|
-
return
|
|
204
|
+
return '[name].chunk.js';
|
|
201
205
|
}
|
|
202
206
|
|
|
203
207
|
// Otherwise, use hashed filename
|
|
204
|
-
return
|
|
208
|
+
return '[name].chunk.[chunkhash].js';
|
|
205
209
|
},
|
|
206
210
|
filename: (data) => {
|
|
207
|
-
|
|
211
|
+
sanitizeChunk(data);
|
|
212
|
+
|
|
213
|
+
const name = data.chunk.name;
|
|
208
214
|
|
|
209
215
|
// Check for special output paths
|
|
210
216
|
if (bundleNaming.specialPaths[name]) {
|
|
@@ -213,11 +219,11 @@ function getSettings() {
|
|
|
213
219
|
|
|
214
220
|
// Check if this bundle should have a stable name
|
|
215
221
|
if (shouldHaveStableName(name)) {
|
|
216
|
-
return
|
|
222
|
+
return '[name].bundle.js';
|
|
217
223
|
}
|
|
218
224
|
|
|
219
225
|
// Everything else gets hashed
|
|
220
|
-
return
|
|
226
|
+
return '[name].bundle.[contenthash].js';
|
|
221
227
|
},
|
|
222
228
|
},
|
|
223
229
|
resolveLoader: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ultimate-jekyll-manager",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.289",
|
|
4
4
|
"description": "Ultimate Jekyll dependency manager",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -71,13 +71,13 @@
|
|
|
71
71
|
"@popperjs/core": "^2.11.8",
|
|
72
72
|
"@prettier/plugin-xml": "^3.4.2",
|
|
73
73
|
"adm-zip": "^0.5.16",
|
|
74
|
-
"babel-loader": "^10.
|
|
74
|
+
"babel-loader": "^10.1.0",
|
|
75
75
|
"browser-sync": "^3.0.4",
|
|
76
76
|
"chalk": "^5.6.2",
|
|
77
77
|
"cheerio": "^1.2.0",
|
|
78
78
|
"chrome-launcher": "^1.2.1",
|
|
79
79
|
"dotenv": "^17.3.1",
|
|
80
|
-
"fast-xml-parser": "^5.4.
|
|
80
|
+
"fast-xml-parser": "^5.4.2",
|
|
81
81
|
"fs-jetpack": "^5.1.0",
|
|
82
82
|
"glob": "^13.0.6",
|
|
83
83
|
"gulp-clean-css": "^4.3.0",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"gulp-responsive-modern": "^1.0.0",
|
|
88
88
|
"gulp-sass": "^6.0.1",
|
|
89
89
|
"html-minifier-terser": "^7.2.0",
|
|
90
|
-
"html-validate": "^10.
|
|
90
|
+
"html-validate": "^10.11.1",
|
|
91
91
|
"itwcw-package-analytics": "^1.0.8",
|
|
92
92
|
"js-yaml": "^4.1.1",
|
|
93
93
|
"json5": "^2.2.3",
|
|
@@ -96,13 +96,13 @@
|
|
|
96
96
|
"minimatch": "^10.2.4",
|
|
97
97
|
"node-powertools": "^2.3.2",
|
|
98
98
|
"npm-api": "^1.0.1",
|
|
99
|
-
"postcss": "^8.5.
|
|
99
|
+
"postcss": "^8.5.8",
|
|
100
100
|
"prettier": "^3.8.1",
|
|
101
101
|
"sass": "^1.97.3",
|
|
102
102
|
"spellchecker": "^3.7.1",
|
|
103
103
|
"through2": "^4.0.2",
|
|
104
104
|
"web-manager": "^4.1.15",
|
|
105
|
-
"webpack": "^5.105.
|
|
105
|
+
"webpack": "^5.105.4",
|
|
106
106
|
"wonderful-fetch": "^1.3.4",
|
|
107
107
|
"wonderful-version": "^1.3.2",
|
|
108
108
|
"yargs": "^18.0.0"
|