ultimate-jekyll-manager 0.0.97 → 0.0.98
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.
- package/CLAUDE.md +42 -0
- package/README.md +66 -0
- package/_backup/checkout copy 2.html +392 -0
- package/_backup/checkout copy 3.html +376 -0
- package/_backup/checkout copy 4.html +365 -0
- package/_backup/checkout copy.html +331 -0
- package/_backup/checkout-semi.html +331 -0
- package/dist/assets/css/core/bindings.scss +7 -2
- package/dist/assets/css/core/utilities.scss +8 -2
- package/dist/assets/css/pages/payment/checkout/index.scss +52 -7
- package/dist/assets/js/core/complete.js +56 -0
- package/dist/assets/js/core/initialize.js +11 -0
- package/dist/assets/js/pages/app/index.js +72 -17
- package/dist/assets/js/pages/download/index.js +0 -6
- package/dist/assets/js/pages/payment/checkout/index.js +58 -52
- package/dist/assets/js/pages/payment/checkout/modules/discount-bindings.js +51 -0
- package/dist/assets/js/pages/payment/checkout/modules/pricing.js +55 -30
- package/dist/assets/js/pages/payment/checkout/modules/state.js +68 -14
- package/dist/assets/js/pages/payment/checkout/modules/ui-bindings.js +160 -0
- package/dist/assets/js/pages/payment/checkout/modules/ui.js +27 -42
- package/dist/assets/js/pages/payment/confirmation/index.js +58 -53
- package/dist/assets/js/pages/payment/confirmation/modules/bindings.js +28 -0
- package/dist/assets/js/pages/payment/confirmation/modules/state.js +19 -0
- package/dist/assets/js/ultimate-jekyll-manager.js +6 -2
- package/dist/assets/themes/classy/css/base/_spacing.scss +27 -0
- package/dist/defaults/dist/_includes/core/body.html +31 -0
- package/dist/defaults/dist/_includes/core/foot.html +35 -0
- package/dist/defaults/dist/_layouts/blueprint/payment/checkout.html +6 -1
- package/dist/defaults/dist/_layouts/blueprint/payment/confirmation.html +6 -1
- package/dist/defaults/dist/_layouts/core/root.html +1 -0
- package/dist/defaults/dist/_layouts/modules/utilities/redirect.html +43 -32
- package/dist/defaults/dist/_layouts/themes/classy/backend/core/base.html +0 -35
- package/dist/defaults/dist/_layouts/themes/classy/frontend/core/base.html +0 -34
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/404.html +35 -44
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/account/index.html +1 -1
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/app.html +3 -3
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/oauth2.html +37 -37
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/reset.html +45 -45
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signin.html +2 -1
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signup.html +58 -58
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/download.html +1 -4
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/payment/checkout.html +291 -240
- package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/payment/confirmation.html +43 -47
- package/dist/defaults/dist/pages/test/libraries/cover.html +1 -1
- package/firebase-debug.log +380 -0
- package/package.json +1 -1
- package/dist/assets/js/core/init.js +0 -36
|
@@ -35,3 +35,30 @@
|
|
|
35
35
|
.min-vh-80 { min-height: 80vh !important; }
|
|
36
36
|
.min-vh-90 { min-height: 90vh !important; }
|
|
37
37
|
.min-vh-100 { min-height: 100vh !important; }
|
|
38
|
+
|
|
39
|
+
// ============================================
|
|
40
|
+
// Max Width Utilities (Bootstrap Breakpoints)
|
|
41
|
+
// ============================================
|
|
42
|
+
// Max width utility classes based on Bootstrap grid breakpoints
|
|
43
|
+
// Usage: mw-sm, mw-md, mw-lg, mw-xl, mw-xxl
|
|
44
|
+
// These set the max-width to match Bootstrap's container breakpoints
|
|
45
|
+
|
|
46
|
+
.mw-sm {
|
|
47
|
+
max-width: 576px !important;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.mw-md {
|
|
51
|
+
max-width: 768px !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.mw-lg {
|
|
55
|
+
max-width: 992px !important;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.mw-xl {
|
|
59
|
+
max-width: 1200px !important;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.mw-xxl {
|
|
63
|
+
max-width: 1400px !important;
|
|
64
|
+
}
|
|
@@ -34,3 +34,34 @@
|
|
|
34
34
|
Save <strong>15%</strong> at checkout—today only! <a href="{{ site.url }}/pricing" target="_blank">Claim discount</a>.
|
|
35
35
|
</div>
|
|
36
36
|
</div>
|
|
37
|
+
|
|
38
|
+
<!-- Script to prevent clicks on disabled elements during page load -->
|
|
39
|
+
<script type="text/javascript">
|
|
40
|
+
(function() {
|
|
41
|
+
'use strict';
|
|
42
|
+
// Attach click listener immediately to prevent clicks on disabled elements
|
|
43
|
+
document.addEventListener('click', function(e) {
|
|
44
|
+
var target = e.target;
|
|
45
|
+
|
|
46
|
+
// Check if click is on a disabled element OR a button/form element during page load
|
|
47
|
+
if (
|
|
48
|
+
target.closest('*[disabled], *.disabled, :disabled')
|
|
49
|
+
|| (
|
|
50
|
+
document.documentElement.hasAttribute('data-page-loading')
|
|
51
|
+
&& target.closest('button, input[type="submit"], input[type="button"], input[type="reset"], .btn-action')
|
|
52
|
+
)
|
|
53
|
+
) {
|
|
54
|
+
// Log disabled click attempt in development
|
|
55
|
+
if (window.location.hostname === 'localhost' || window.location.hostname.startsWith('192.168')) {
|
|
56
|
+
console.log('Click prevented (disabled):', target);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Prevent all actions
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
e.stopImmediatePropagation();
|
|
62
|
+
e.stopPropagation();
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}, { capture: true });
|
|
66
|
+
}());
|
|
67
|
+
</script>
|
|
@@ -78,6 +78,41 @@
|
|
|
78
78
|
<!-- JS Bundle -->
|
|
79
79
|
<script type="text/javascript" src="{{ site.url }}/assets/js/main.bundle.js?cb={{ site.uj.cache_breaker }}" async></script>
|
|
80
80
|
|
|
81
|
+
<!-- Script to quickly handle nav user state -->
|
|
82
|
+
<script type="text/javascript">
|
|
83
|
+
try {
|
|
84
|
+
(function() {
|
|
85
|
+
'use strict';
|
|
86
|
+
// Read and parse localStorage data
|
|
87
|
+
var managerData = localStorage.getItem('_manager');
|
|
88
|
+
var parsedData = managerData ? JSON.parse(managerData) : null;
|
|
89
|
+
var isLoggedIn = !!(parsedData && parsedData.auth && parsedData.auth.user && parsedData.auth.user.uid);
|
|
90
|
+
|
|
91
|
+
// Quit if NOT logged in
|
|
92
|
+
if (!isLoggedIn) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Process binds
|
|
97
|
+
var $bindElements = document.querySelectorAll('[data-wm-bind]');
|
|
98
|
+
|
|
99
|
+
$bindElements.forEach(function($el) {
|
|
100
|
+
var bindValue = $el.getAttribute('data-wm-bind');
|
|
101
|
+
|
|
102
|
+
if (bindValue === '@show auth.user') {
|
|
103
|
+
// Show element when user is logged in
|
|
104
|
+
$el.removeAttribute('hidden');
|
|
105
|
+
} else if (bindValue === '@show !auth.user') {
|
|
106
|
+
// Hide element when user is logged in (show when not logged in)
|
|
107
|
+
$el.setAttribute('hidden', '');
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}());
|
|
111
|
+
} catch (error) {
|
|
112
|
+
console.error('Error occurred while selecting elements:', error);
|
|
113
|
+
}
|
|
114
|
+
</script>
|
|
115
|
+
|
|
81
116
|
<!-- Script - Google Analytics Tracking Script -->
|
|
82
117
|
{% iftruthy page.resolved.tracking.google-analytics %}
|
|
83
118
|
<script type="text/javascript" src="https://www.googletagmanager.com/gtag/js?id={{ site.tracking.google-analytics }}" async></script>
|
|
@@ -13,40 +13,51 @@ meta:
|
|
|
13
13
|
{% capture querystring %}{{ page.resolved.redirect.querystring }}{% endcapture %}
|
|
14
14
|
{% capture modifier %}{{ page.resolved.redirect.modifier | default: "" }}{% endcapture %}
|
|
15
15
|
|
|
16
|
-
<
|
|
17
|
-
<div class="
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
<section class="col-12 col-md-8 col-lg-6 col-xl-5 mw-sm">
|
|
17
|
+
<div class="card border-0 shadow-lg">
|
|
18
|
+
<div class="card-body p-3 p-md-5">
|
|
19
|
+
<!-- Logo -->
|
|
20
|
+
<div class="text-center mb-3">
|
|
21
|
+
<a href="{{ site.url }}">
|
|
22
|
+
<div class="avatar avatar-xl">
|
|
23
|
+
<img src="{{ site.brand.images.brandmark }}?cb={{ site.uj.cache_breaker }}" alt="{{ site.brand.name }}"/>
|
|
24
|
+
</div>
|
|
25
|
+
</a>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- Header -->
|
|
29
|
+
<div class="text-center mb-4">
|
|
30
|
+
<div class="d-inline-flex align-items-center">
|
|
31
|
+
<h1 class="h3 mb-0">Redirecting...</h1>
|
|
32
|
+
<div class="spinner-border spinner-border-sm text-primary ms-3" role="status">
|
|
33
|
+
<span class="visually-hidden">Loading...</span>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
<p class="text-muted mt-2 mb-0">
|
|
37
|
+
Taking you to the page you requested
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<!-- Action Buttons -->
|
|
42
|
+
<div class="d-grid gap-2 d-sm-block text-center">
|
|
43
|
+
<a id="home-button" class="btn btn-outline-adaptive btn-lg mb-2 mb-sm-0 me-sm-2" href="{{ site.url }}">
|
|
44
|
+
<span class="d-inline-flex align-items-center">
|
|
45
|
+
{% uj_icon "house", "fa-lg me-2" %}
|
|
46
|
+
Return home
|
|
47
|
+
</span>
|
|
48
|
+
</a>
|
|
49
|
+
<noscript>
|
|
50
|
+
<a id="redirect-button" class="btn btn-adaptive btn-lg mb-2 mb-sm-0" href="{{ url }}">
|
|
51
|
+
<span class="d-inline-flex align-items-center">
|
|
52
|
+
{% uj_icon "rocket", "fa-lg me-2" %}
|
|
53
|
+
Take me there
|
|
54
|
+
</span>
|
|
55
|
+
</a>
|
|
56
|
+
</noscript>
|
|
21
57
|
</div>
|
|
22
|
-
</a>
|
|
23
|
-
</div>
|
|
24
|
-
<div class="d-inline-flex justify-content-between align-items-center">
|
|
25
|
-
<h1 class="h1">Redirecting...</h1>
|
|
26
|
-
<div class="spinner-border spinner-border-md text-primary ms-3" role="status">
|
|
27
|
-
<span class="visually-hidden">Loading...</span>
|
|
28
58
|
</div>
|
|
29
59
|
</div>
|
|
30
|
-
|
|
31
|
-
Taking you to the page you requested.
|
|
32
|
-
</p>
|
|
33
|
-
<div class="d-grid gap-2 d-sm-block">
|
|
34
|
-
<a id="home-button" class="btn btn-outline-primary btn-lg mb-2 mb-sm-0 me-md-2" href="{{ site.url }}">
|
|
35
|
-
<span class="d-inline-flex align-items-center">
|
|
36
|
-
{% uj_icon "house", "fa-lg me-2" %}
|
|
37
|
-
Return home
|
|
38
|
-
</span>
|
|
39
|
-
</a>
|
|
40
|
-
<noscript>
|
|
41
|
-
<a id="redirect-button" class="btn btn-primary btn-lg mb-2 mb-sm-0 me-md-2" href="{{ url }}">
|
|
42
|
-
<span class="d-inline-flex align-items-center">
|
|
43
|
-
{% uj_icon "rocket", "fa-lg me-2" %}
|
|
44
|
-
Take me there
|
|
45
|
-
</span>
|
|
46
|
-
</a>
|
|
47
|
-
</noscript>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
60
|
+
</section>
|
|
50
61
|
|
|
51
62
|
<!-- Redirect configuration for external script -->
|
|
52
63
|
<div id="redirect-config" style="display: none;"
|
|
@@ -58,4 +69,4 @@ meta:
|
|
|
58
69
|
</div>
|
|
59
70
|
|
|
60
71
|
<!-- Load redirect module script -->
|
|
61
|
-
|
|
72
|
+
<script type="text/javascript" src="{{ site.url }}/assets/js/modules/redirect.bundle.js?cb={{ site.uj.cache_breaker }}" async></script>
|
|
@@ -53,38 +53,3 @@ web_manager:
|
|
|
53
53
|
</main>
|
|
54
54
|
</div>
|
|
55
55
|
</div>
|
|
56
|
-
|
|
57
|
-
<!-- Script to quickly handle user state -->
|
|
58
|
-
<script type="text/javascript">
|
|
59
|
-
try {
|
|
60
|
-
(function() {
|
|
61
|
-
'use strict';
|
|
62
|
-
// Read and parse localStorage data
|
|
63
|
-
var managerData = localStorage.getItem('_manager');
|
|
64
|
-
var parsedData = managerData ? JSON.parse(managerData) : null;
|
|
65
|
-
var isLoggedIn = !!(parsedData && parsedData.auth && parsedData.auth.user && parsedData.auth.user.uid);
|
|
66
|
-
|
|
67
|
-
// Quit if NOT logged in
|
|
68
|
-
if (!isLoggedIn) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Process binds
|
|
73
|
-
var $bindElements = document.querySelectorAll('[data-wm-bind]');
|
|
74
|
-
|
|
75
|
-
$bindElements.forEach(function($el) {
|
|
76
|
-
var bindValue = $el.getAttribute('data-wm-bind');
|
|
77
|
-
|
|
78
|
-
if (bindValue === '@show auth.user') {
|
|
79
|
-
// Show element when user is logged in
|
|
80
|
-
$el.removeAttribute('hidden');
|
|
81
|
-
} else if (bindValue === '@show !auth.user') {
|
|
82
|
-
// Hide element when user is logged in (show when not logged in)
|
|
83
|
-
$el.setAttribute('hidden', '');
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}());
|
|
87
|
-
} catch (error) {
|
|
88
|
-
console.error('Error occurred while selecting elements:', error);
|
|
89
|
-
}
|
|
90
|
-
</script>
|
|
@@ -30,37 +30,3 @@ theme:
|
|
|
30
30
|
{%- include /frontend/sections/footer.html -%}
|
|
31
31
|
{% endunless %}
|
|
32
32
|
|
|
33
|
-
<!-- Script to quickly handle nav user state -->
|
|
34
|
-
<script type="text/javascript">
|
|
35
|
-
try {
|
|
36
|
-
(function() {
|
|
37
|
-
'use strict';
|
|
38
|
-
// Read and parse localStorage data
|
|
39
|
-
var managerData = localStorage.getItem('_manager');
|
|
40
|
-
var parsedData = managerData ? JSON.parse(managerData) : null;
|
|
41
|
-
var isLoggedIn = !!(parsedData && parsedData.auth && parsedData.auth.user && parsedData.auth.user.uid);
|
|
42
|
-
|
|
43
|
-
// Quit if NOT logged in
|
|
44
|
-
if (!isLoggedIn) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Process binds
|
|
49
|
-
var $bindElements = document.querySelectorAll('[data-wm-bind]');
|
|
50
|
-
|
|
51
|
-
$bindElements.forEach(function($el) {
|
|
52
|
-
var bindValue = $el.getAttribute('data-wm-bind');
|
|
53
|
-
|
|
54
|
-
if (bindValue === '@show auth.user') {
|
|
55
|
-
// Show element when user is logged in
|
|
56
|
-
$el.removeAttribute('hidden');
|
|
57
|
-
} else if (bindValue === '@show !auth.user') {
|
|
58
|
-
// Hide element when user is logged in (show when not logged in)
|
|
59
|
-
$el.setAttribute('hidden', '');
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}());
|
|
63
|
-
} catch (error) {
|
|
64
|
-
console.error('Error occurred while selecting elements:', error);
|
|
65
|
-
}
|
|
66
|
-
</script>
|
|
@@ -22,56 +22,47 @@ suggested_pages:
|
|
|
22
22
|
link: "/team"
|
|
23
23
|
---
|
|
24
24
|
|
|
25
|
-
<
|
|
26
|
-
<div class="
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
<
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
<!-- Main Content -->
|
|
37
|
-
<h1 class="h1 text-primary mb-3">
|
|
38
|
-
404
|
|
39
|
-
</h1>
|
|
40
|
-
<h2 class="h3 mb-3">Oops! Page Not Found</h2>
|
|
41
|
-
<p class="fs-5 text-muted mb-4">
|
|
42
|
-
Sorry, the page you're looking for doesn't exist or has been moved. Don't worry, it happens to the best of us!
|
|
43
|
-
</p>
|
|
25
|
+
<section class="col-12 col-md-10 col-lg-8 col-xl-6 mw-md">
|
|
26
|
+
<div class="card border-0 shadow-lg">
|
|
27
|
+
<div class="card-body p-3 p-md-5">
|
|
28
|
+
<!-- Header -->
|
|
29
|
+
<div class="text-center mb-4">
|
|
30
|
+
<h1 class="display-1 mb-3">404</h1>
|
|
31
|
+
<!-- <h2 class="h3 mb-3">Oops! Page Not Found</h2> -->
|
|
32
|
+
<p class="text-muted">
|
|
33
|
+
Sorry, the page you're looking for doesn't exist or has been moved. Don't worry, it happens to the best of us!
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
44
36
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<strong>Requested URL:</strong> <code id="page-url">{{ page.canonical.url }}</code>
|
|
37
|
+
<!-- URL Display -->
|
|
38
|
+
<div class="alert alert-warning text-center mb-4" role="alert">
|
|
39
|
+
<small class="text-body">
|
|
40
|
+
<strong>Requested URL:</strong> <span id="page-url" class="text-break">{{ page.canonical.url }}</span>
|
|
50
41
|
</small>
|
|
51
42
|
</div>
|
|
52
|
-
</div>
|
|
53
43
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
44
|
+
<!-- Primary Actions -->
|
|
45
|
+
<div class="d-grid gap-2 d-sm-block text-center mb-4">
|
|
46
|
+
<a href="{{ site.url }}" class="btn btn-adaptive btn-lg mb-2 mb-sm-0 me-sm-2">
|
|
47
|
+
{% uj_icon "house", "me-2" %}
|
|
48
|
+
Back to Home
|
|
49
|
+
</a>
|
|
50
|
+
<button class="btn btn-outline-adaptive btn-lg mb-2 mb-sm-0" onclick="window.history.back()">
|
|
51
|
+
{% uj_icon "arrow-left", "me-2" %}
|
|
52
|
+
Go Back
|
|
53
|
+
</button>
|
|
54
|
+
</div>
|
|
65
55
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
56
|
+
<!-- Help Section -->
|
|
57
|
+
<div class="text-center pt-4 border-top">
|
|
58
|
+
<p class="text-muted mb-0">
|
|
59
|
+
Still can't find what you're looking for?
|
|
60
|
+
<a href="/contact" class="text-decoration-none fw-semibold">Contact our support team</a>
|
|
61
|
+
and we'll help you out!
|
|
62
|
+
</p>
|
|
63
|
+
</div>
|
|
73
64
|
</div>
|
|
74
65
|
</div>
|
|
75
|
-
</
|
|
66
|
+
</section>
|
|
76
67
|
|
|
77
68
|
{{ content | uj_content_format }}
|
|
@@ -101,7 +101,7 @@ badges:
|
|
|
101
101
|
---
|
|
102
102
|
|
|
103
103
|
<!-- Fixed Header -->
|
|
104
|
-
<header class="position-fixed top-0 start-0 w-100 bg-body-secondary border-bottom" style="z-index: 1030;">
|
|
104
|
+
<header class="position-fixed top-0 start-0 w-100 bg-body-secondary border-bottom shadow-sm" style="z-index: 1030;">
|
|
105
105
|
<div class="container-fluid px-4">
|
|
106
106
|
<div class="d-flex align-items-center justify-content-between py-3">
|
|
107
107
|
<!-- Left: Brand -->
|
|
@@ -9,7 +9,7 @@ app:
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<!-- App Launch Section -->
|
|
12
|
-
<section class="col-12 col-md-8 col-lg-6 col-xl-5
|
|
12
|
+
<section class="col-12 col-md-8 col-lg-6 col-xl-5 mw-sm">
|
|
13
13
|
<div class="card border-0 shadow-lg">
|
|
14
14
|
<div class="card-body p-3 p-md-5">
|
|
15
15
|
<!-- Logo -->
|
|
@@ -45,7 +45,7 @@ app:
|
|
|
45
45
|
|
|
46
46
|
<!-- Action Buttons -->
|
|
47
47
|
<div class="d-grid gap-2 mb-4">
|
|
48
|
-
<a id="launch-button" href="{{ page.resolved.app.protocol }}" class="btn btn-primary"
|
|
48
|
+
<a id="launch-button" href="{{ page.resolved.app.protocol }}" class="btn btn-primary">
|
|
49
49
|
{% uj_icon "rocket", "me-2" %}
|
|
50
50
|
<span>Launch App</span>
|
|
51
51
|
</a>
|
|
@@ -55,7 +55,7 @@ app:
|
|
|
55
55
|
<div class="text-center">
|
|
56
56
|
<p class="text-muted small mb-3">Don't have the app?</p>
|
|
57
57
|
|
|
58
|
-
<a id="download-button" href="/download" class="btn btn-adaptive"
|
|
58
|
+
<a id="download-button" href="/download" class="btn btn-adaptive">
|
|
59
59
|
{% uj_icon "download", "me-2" %}
|
|
60
60
|
<span>Download App</span>
|
|
61
61
|
</a>
|
|
@@ -5,7 +5,7 @@ layout: themes/[ site.theme.id ]/frontend/core/cover
|
|
|
5
5
|
### PAGE CONFIG ###
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<section class="col-12 col-md-8 col-lg-6 col-xl-5
|
|
8
|
+
<section class="col-12 col-md-8 col-lg-6 col-xl-5 mw-sm">
|
|
9
9
|
<div class="card border-0 shadow-lg">
|
|
10
10
|
<div class="card-body p-3 p-md-5">
|
|
11
11
|
<!-- Logo -->
|
|
@@ -15,45 +15,45 @@ layout: themes/[ site.theme.id ]/frontend/core/cover
|
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
<!-- Loading State -->
|
|
19
|
+
<div id="oauth2-loading" class="text-center">
|
|
20
|
+
<h1 class="h3 mb-2">Authorizing <span id="oauth2-provider">Provider</span>...</h1>
|
|
21
|
+
<p class="text-muted">Please wait while we complete the connection.</p>
|
|
22
|
+
<div class="spinner-border text-primary mb-0" role="status">
|
|
23
|
+
<span class="visually-hidden">Loading...</span>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
<!-- Result State -->
|
|
28
|
+
<div id="oauth2-result" class="d-none">
|
|
29
|
+
<!-- Success -->
|
|
30
|
+
<div id="result-success" class="d-none text-center">
|
|
31
|
+
<h1 class="h3 mb-2">Success!</h1>
|
|
32
|
+
<p class="text-muted mb-4">Your account has been connected. Redirecting you now...</p>
|
|
33
|
+
</div>
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
<!-- Error -->
|
|
36
|
+
<div id="result-error" class="d-none mb-3">
|
|
37
|
+
<div class="text-center mb-3">
|
|
38
|
+
<h1 class="h3 mb-2">Connection Failed</h1>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="alert alert-danger mb-3" role="alert">
|
|
41
|
+
<p id="error-message" class="mb-0">An error occurred while connecting your account.</p>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="text-center mb-0">
|
|
44
|
+
<a id="return-button" href="/account#connections" class="btn btn-primary">
|
|
45
|
+
{% uj_icon "arrow-left", "me-2" %}<span class="button-text">Return to Account</span>
|
|
46
|
+
</a>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
51
|
+
<!-- Footer Links -->
|
|
52
|
+
<div class="mt-3 pt-4 border-top text-center">
|
|
53
|
+
<p class="text-muted small mb-2">Need help?</p>
|
|
54
|
+
<a href="/contact" class="btn btn-outline-adaptive btn-sm">
|
|
55
|
+
{% uj_icon "headset", "me-1" %}<span class="button-text">Contact Support</span>
|
|
56
|
+
</a>
|
|
57
57
|
</div>
|
|
58
58
|
</div>
|
|
59
59
|
</div>
|
|
@@ -5,7 +5,7 @@ layout: themes/[ site.theme.id ]/frontend/core/cover
|
|
|
5
5
|
### PAGE CONFIG ###
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
<section class="col-12 col-md-8 col-lg-6 col-xl-5
|
|
8
|
+
<section class="col-12 col-md-8 col-lg-6 col-xl-5 mw-sm">
|
|
9
9
|
<div class="card border-0 shadow-lg">
|
|
10
10
|
<div class="card-body p-3 p-md-5">
|
|
11
11
|
<!-- Logo -->
|
|
@@ -21,54 +21,54 @@ layout: themes/[ site.theme.id ]/frontend/core/cover
|
|
|
21
21
|
<p class="text-muted">Enter your email address and we'll send you a link to reset your password.</p>
|
|
22
22
|
</div>
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
24
|
+
<!-- Reset Form -->
|
|
25
|
+
<form id="reset-form" autocomplete="on" novalidate>
|
|
26
|
+
<div class="mb-4 text-start">
|
|
27
|
+
<label for="email" class="form-label fw-semibold">
|
|
28
|
+
Email <span class="text-danger">*</span>
|
|
29
|
+
</label>
|
|
30
|
+
<input type="email" class="form-control form-control-md" id="email" name="email" placeholder="Enter your email" autocomplete="email" autofocus required>
|
|
31
|
+
</div>
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
<button type="submit" class="btn btn-success _btn-lg w-100 mb-4" data-provider="email" disabled>
|
|
34
|
+
{% uj_icon "paper-plane", "me-2" %}
|
|
35
|
+
<span class="button-text">Send Reset Link</span>
|
|
36
|
+
</button>
|
|
37
|
+
</form>
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
<!-- Back to Sign In -->
|
|
40
|
+
<div class="text-center">
|
|
41
|
+
<p class="text-muted mb-0">
|
|
42
|
+
Remember your password?
|
|
43
|
+
<a href="/signin" class="text-decoration-none fw-semibold">
|
|
44
|
+
Sign in
|
|
45
|
+
</a>
|
|
46
|
+
</p>
|
|
47
|
+
</div>
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
<!-- Help Section -->
|
|
50
|
+
<div class="mt-4 pt-4 border-top text-center">
|
|
51
|
+
<p class="text-muted small mb-2">Need help?</p>
|
|
52
|
+
<a href="/contact" class="btn btn-outline-adaptive btn-sm">
|
|
53
|
+
{% uj_icon "headset", "me-1" %}
|
|
54
|
+
Contact Support
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
58
|
+
<!-- Additional Info -->
|
|
59
|
+
{% comment %}
|
|
60
|
+
<div class="text-center mt-4">
|
|
61
|
+
<div class="bg-body rounded-3 p-4">
|
|
62
|
+
<div class="d-flex align-items-center justify-content-center mb-3">
|
|
63
|
+
{% uj_icon "shield-check", "text-success fs-3 me-2" %}
|
|
64
|
+
<h3 class="h6 fw-bold mb-0">Secure & Private</h3>
|
|
65
|
+
</div>
|
|
66
|
+
<p class="text-muted small mb-0">
|
|
67
|
+
We'll only send a password reset link to your registered email address.
|
|
68
|
+
The link expires in 1 hour for your security.
|
|
69
|
+
</p>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
72
|
{% endcomment %}
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|