ultimate-jekyll-manager 0.0.96 → 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.
Files changed (71) hide show
  1. package/.playwright-mcp/page-2025-10-22T19-11-27-666Z.png +0 -0
  2. package/.playwright-mcp/page-2025-10-22T19-11-57-357Z.png +0 -0
  3. package/CLAUDE.md +42 -0
  4. package/README.md +66 -0
  5. package/_backup/checkout copy 2.html +392 -0
  6. package/_backup/checkout copy 3.html +376 -0
  7. package/_backup/checkout copy 4.html +365 -0
  8. package/_backup/checkout copy.html +331 -0
  9. package/_backup/checkout-semi.html +331 -0
  10. package/_backup/cover-old.html +55 -0
  11. package/dist/assets/css/core/bindings.scss +7 -2
  12. package/dist/assets/css/core/utilities.scss +9 -1
  13. package/dist/assets/css/pages/payment/checkout/index.scss +52 -7
  14. package/dist/assets/js/core/complete.js +56 -0
  15. package/dist/assets/js/core/initialize.js +11 -0
  16. package/dist/assets/js/pages/app/index.js +82 -43
  17. package/dist/assets/js/pages/download/index.js +0 -6
  18. package/dist/assets/js/pages/payment/checkout/index.js +58 -52
  19. package/dist/assets/js/pages/payment/checkout/modules/discount-bindings.js +51 -0
  20. package/dist/assets/js/pages/payment/checkout/modules/pricing.js +55 -30
  21. package/dist/assets/js/pages/payment/checkout/modules/state.js +68 -14
  22. package/dist/assets/js/pages/payment/checkout/modules/ui-bindings.js +160 -0
  23. package/dist/assets/js/pages/payment/checkout/modules/ui.js +27 -42
  24. package/dist/assets/js/pages/payment/confirmation/index.js +58 -53
  25. package/dist/assets/js/pages/payment/confirmation/modules/bindings.js +28 -0
  26. package/dist/assets/js/pages/payment/confirmation/modules/state.js +19 -0
  27. package/dist/assets/js/ultimate-jekyll-manager.js +6 -2
  28. package/dist/assets/themes/classy/css/base/_spacing.scss +27 -0
  29. package/dist/defaults/dist/{redirects/authentication/helpers/well-known-change-password.html → .well-known/change-password.html} +4 -1
  30. package/dist/defaults/dist/.well-known/security.txt +15 -0
  31. package/dist/defaults/dist/_includes/core/body.html +31 -0
  32. package/dist/defaults/dist/_includes/core/foot.html +35 -0
  33. package/dist/defaults/dist/_layouts/blueprint/app.html +1 -1
  34. package/dist/defaults/dist/_layouts/blueprint/payment/checkout.html +6 -1
  35. package/dist/defaults/dist/_layouts/blueprint/payment/confirmation.html +6 -1
  36. package/dist/defaults/dist/_layouts/core/root.html +1 -0
  37. package/dist/defaults/dist/_layouts/modules/utilities/redirect.html +42 -31
  38. package/dist/defaults/dist/_layouts/themes/classy/backend/core/base.html +0 -35
  39. package/dist/defaults/dist/_layouts/themes/classy/frontend/core/base.html +0 -34
  40. package/dist/defaults/dist/_layouts/themes/classy/frontend/core/cover.html +6 -9
  41. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/404.html +35 -44
  42. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/account/index.html +1 -1
  43. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/app.html +83 -0
  44. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/oauth2.html +42 -44
  45. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/reset.html +57 -59
  46. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signin.html +67 -69
  47. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/auth/signup.html +76 -78
  48. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/download.html +1 -4
  49. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/payment/checkout.html +291 -240
  50. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/payment/confirmation.html +43 -47
  51. package/dist/defaults/dist/humans.txt +25 -0
  52. package/dist/defaults/dist/opensearch.xml +26 -0
  53. package/dist/defaults/dist/pages/test/account/dashboard.html +3 -0
  54. package/dist/defaults/dist/pages/test/index.md +2 -2
  55. package/dist/defaults/dist/pages/test/libraries/ads.html +3 -0
  56. package/dist/defaults/dist/pages/test/libraries/bootstrap-components.html +11 -2
  57. package/dist/defaults/dist/pages/test/libraries/cover.html +47 -0
  58. package/dist/defaults/dist/pages/test/libraries/error.html +3 -0
  59. package/dist/defaults/dist/pages/test/libraries/lazy-loading.html +3 -0
  60. package/dist/defaults/dist/pages/test/redirect/external.md +3 -0
  61. package/dist/defaults/dist/pages/test/redirect/internal.md +3 -0
  62. package/dist/defaults/dist/pages/test/translation/index.md +2 -2
  63. package/dist/defaults/dist/redirects/authentication/helpers/change-password.html +1 -1
  64. package/dist/defaults/dist/redirects/authentication/helpers/forgot.html +1 -1
  65. package/dist/defaults/dist/redirects/authentication/helpers/recover.html +1 -1
  66. package/dist/defaults/dist/redirects/authentication/helpers/reset-password.html +1 -1
  67. package/dist/defaults/dist/sitemap.html +112 -28
  68. package/dist/defaults/dist/sitemap.xml +6 -1
  69. package/firebase-debug.log +388 -0
  70. package/package.json +1 -1
  71. package/dist/assets/js/core/init.js +0 -36
@@ -0,0 +1,376 @@
1
+ ---
2
+ ### ALL PAGES ###
3
+ layout: themes/[ site.theme.id ]/frontend/core/cover
4
+
5
+ ### THEME CONFIG ###
6
+ theme:
7
+ main:
8
+ align: "start"
9
+
10
+ ### WEB MANAGER CONFIG ###
11
+ web_manager:
12
+ auth:
13
+ config:
14
+ policy: "authenticated"
15
+
16
+ ### PAGE CONFIG ###
17
+ ---
18
+
19
+ <style>
20
+ /* Custom CSS Grid layout for desktop checkout */
21
+ @media (min-width: 992px) {
22
+ #checkout-form .row {
23
+ display: grid !important;
24
+ grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
25
+ gap: 2rem;
26
+ align-items: start;
27
+ }
28
+
29
+ /* Billing & Customer Info - Top left */
30
+ .checkout-billing {
31
+ grid-column: 1 !important;
32
+ grid-row: 1 !important;
33
+ max-width: 100% !important;
34
+ width: 100% !important;
35
+ flex: unset !important;
36
+ }
37
+
38
+ /* Order Summary - Right side, spans both rows */
39
+ .checkout-summary {
40
+ grid-column: 2 !important;
41
+ grid-row: 1 / span 2 !important;
42
+ margin-left: 0 !important;
43
+ max-width: 100% !important;
44
+ width: 100% !important;
45
+ flex: unset !important;
46
+ align-self: start !important;
47
+ }
48
+
49
+ /* Payment Method - Bottom left, directly under billing */
50
+ .checkout-payment {
51
+ grid-column: 1 !important;
52
+ grid-row: 2 !important;
53
+ margin-top: 0 !important;
54
+ max-width: 100% !important;
55
+ width: 100% !important;
56
+ flex: unset !important;
57
+ }
58
+ }
59
+ </style>
60
+
61
+ <!-- Fullscreen Preloader -->
62
+ <div id="checkout-preloader" class="position-fixed top-0 start-0 w-100 h-100 d-flex align-items-center justify-content-center bg-body" style="z-index: 9999;">
63
+ <div class="text-center">
64
+ <div class="spinner-border spinner-border-lg text-primary mb-3" role="status">
65
+ <span class="visually-hidden">Loading...</span>
66
+ </div>
67
+ <h5 class="text-muted">Loading secure checkout...</h5>
68
+ <p class="text-muted small mb-0">Please be patient while your order is prepared.</p>
69
+ </div>
70
+ </div>
71
+
72
+ <!-- Error Message Container -->
73
+ <div id="checkout-error-container" class="d-none">
74
+ <div class="row justify-content-center">
75
+ <div class="col-lg-8">
76
+ <div class="alert alert-danger" role="alert">
77
+ <h4 class="alert-heading">Oops! Something went wrong</h4>
78
+ <p id="checkout-error-message"></p>
79
+ <hr>
80
+ <button class="btn btn-outline-danger" onclick="window.location.reload()">
81
+ Try again
82
+ </button>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+
88
+ <!-- Checkout Section -->
89
+ <section id="checkout-content" class="col-12 col-xl-10 mw-xl">
90
+ <div class="row mb-4">
91
+ <div class="col-12">
92
+ <h1 class="h2 mb-0 text-center text-lg-start">Checkout</h1>
93
+ </div>
94
+ </div>
95
+ <div class="card border-0 shadow-lg">
96
+ <div class="card-body p-3 p-md-5">
97
+ <!-- Title Row -->
98
+ <!-- <div class="row mb-4">
99
+ <div class="col-12">
100
+ <h1 class="h2 mb-0 text-center text-lg-start">Checkout</h1>
101
+ </div>
102
+ </div> -->
103
+
104
+ <!-- Main Checkout Form -->
105
+ <form id="checkout-form" autocomplete="on" novalidate>
106
+ <!-- Content Row -->
107
+ <div class="row d-lg-flex">
108
+ <!-- Section 1: Billing Cycle & Customer Info -->
109
+ <div class="col-12 col-lg-7 mb-4 order-1 checkout-billing">
110
+ <!-- Billing Cycle Selection -->
111
+ <div class="_card _border-1 _border-secondary _shadow-sm mb-4">
112
+ <div class="card-body">
113
+ <h3 class="h5 fw-bold mb-3">Billing Cycle</h3>
114
+ <div class="d-flex justify-content-between align-items-center mb-3">
115
+ <h6 class="fw-bold mb-0">
116
+ <span id="selected-plan-name">Loading...</span> Plan
117
+ </h6>
118
+ <a href="/pricing" class="small text-decoration-none">
119
+ {% uj_icon "arrow-left", "me-1" %}
120
+ Change plan
121
+ </a>
122
+ </div>
123
+
124
+ <!-- Subscription Toggle (hidden by default) -->
125
+ <div id="subscription-toggle" class="d-none">
126
+ <div class="row g-3">
127
+ <div class="col-6">
128
+ <input type="radio" class="btn-check" name="billing-cycle" id="annually" value="annually">
129
+ <label class="btn btn-outline-secondary text-body w-100 p-3 position-relative border-2 rounded-3 _animation-hover-up" for="annually">
130
+ <span id="savings-badge" class="position-absolute top-0 start-50 translate-middle badge rounded-pill bg-primary px-3 py-2">Save --</span>
131
+ <div class="d-flex align-items-center justify-content-center mb-2">
132
+ <span class="bg-secondary bg-opacity-25 text-secondary rounded-circle d-inline-flex align-items-center justify-content-center">
133
+ {% uj_icon "check", "fa-md p-1" %}
134
+ </span>
135
+ </div>
136
+ <div class="fs-4 mb-1">
137
+ <span id="annually-price-lg">$--</span>
138
+ <span class="text-muted fs-6 fw-normal">/mo</span>
139
+ </div>
140
+ <div class="text-muted small">Annual Plan</div>
141
+ </label>
142
+ </div>
143
+ <div class="col-6">
144
+ <input type="radio" class="btn-check" name="billing-cycle" id="monthly" value="monthly">
145
+ <label class="btn btn-outline-secondary text-body w-100 p-3 border-2 rounded-3 _animation-hover-up" for="monthly">
146
+ <div class="d-flex align-items-center justify-content-center mb-2">
147
+ <span class="bg-secondary bg-opacity-25 text-secondary rounded-circle d-inline-flex align-items-center justify-content-center">
148
+ {% uj_icon "check", "fa-md p-1" %}
149
+ </span>
150
+ </div>
151
+ <div class="fs-4 mb-1">
152
+ <span id="monthly-price-lg">$--</span>
153
+ <span class="text-muted fs-6 fw-normal">/mo</span>
154
+ </div>
155
+ <div class="text-muted small">Monthly Plan</div>
156
+ </label>
157
+ </div>
158
+ </div>
159
+
160
+ <!-- Payment text under the boxes -->
161
+ <div class="text-muted small text-center mt-2">
162
+ * Pay <span class="mb-0" id="billing-cycle-payment-text">$-- monthly</span>
163
+ </div>
164
+
165
+ <!-- Free Trial Badge -->
166
+ <div id="trial-badge" class="alert alert-success mt-3 mb-0 p-2 d-none">
167
+ <small class="d-flex align-items-center mb-0">
168
+ {% uj_icon "gift", "me-2" %}
169
+ <span id="trial-message"></span>
170
+ </small>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </div>
175
+
176
+ <hr>
177
+
178
+ <!-- Customer Information Card -->
179
+ <div class="_card _border-1 _border-secondary _shadow-sm mb-3">
180
+ <div class="card-body">
181
+ <h3 class="h5 fw-bold mb-3">Customer Information</h3>
182
+
183
+ <div class="text-start">
184
+ Managing order for <strong data-wm-bind="@text auth.user.email"></strong>, <a href="#" id="switch-account">switch account</a>.
185
+ </div>
186
+
187
+ <!-- Customer form fields will go here when needed -->
188
+ <div id="customer-fields" class="text-start">
189
+ <!-- Future form fields like shipping address, VAT number, etc. -->
190
+ <!-- <div class="mb-3">
191
+ <label for="customer-name" class="form-label fw-semibold">
192
+ Name <span class="text-danger">*</span>
193
+ </label>
194
+ <input type="text" class="form-control form-control-md" id="customer-name" name="customer_name" placeholder="Enter your full name" autocomplete="name" required>
195
+ </div> -->
196
+ </div>
197
+ </div>
198
+ </div>
199
+
200
+ <!-- HR separator (visible on desktop only) -->
201
+ <hr class="d-none d-lg-block">
202
+ </div>
203
+
204
+ <!-- Section 2: Order Summary -->
205
+ <div class="col-12 col-lg-5 mb-4 mb-lg-0 order-2 ms-lg-auto checkout-summary">
206
+ <div class="order-summary-sticky">
207
+ <div class="_card _border-1 _border-secondary _shadow-sm">
208
+ <div class="card-body">
209
+ <h3 class="h5 fw-bold mb-3">Order Summary</h3>
210
+
211
+ <!-- Product Item -->
212
+ <div class="order-item mb-4">
213
+ <div class="d-flex align-items-center">
214
+ <div class="position-relative me-3">
215
+ <div class="product-thumbnail bg-light rounded-3 d-flex align-items-center justify-content-center">
216
+ <img src="{{ site.brand.images.brandmark }}?cb={{ site.uj.cache_breaker }}" class="img-fluid p-3" alt="{{ site.brand.name }} Plan Icon"/>
217
+ </div>
218
+ <span class="position-absolute badge rounded-pill bg-primary" style="top: -0.375rem; right: -0.375rem;">
219
+ 1
220
+ <span class="visually-hidden">quantity</span>
221
+ </span>
222
+ </div>
223
+ <div class="flex-grow-1 text-start">
224
+ <h6 class="mb-1" id="product-name">Loading...</h6>
225
+ <p class="text-muted small mb-0" id="product-description">Loading product details...</p>
226
+ </div>
227
+ <div class="text-end d-none">
228
+ <div class="fw-bold" id="product-price">$--</div>
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
+ <!-- Discount Code -->
234
+ <div class="mb-4">
235
+ <div class="input-group">
236
+ <input type="text" class="form-control rounded-start-3 border py-2 px-3 text-start" id="discount-code" name="discount-code" placeholder="Discount code" autocomplete="off">
237
+ <button class="btn btn-adaptive rounded-end-3 border px-4" type="button" id="apply-discount" data-action="apply-discount">Apply</button>
238
+ </div>
239
+
240
+ <!-- Discount Messages -->
241
+ <div class="text-start">
242
+ <div id="discount-message-loading" class="mt-2 text-primary small d-none">
243
+ {% uj_icon "clock", "me-1" %} Checking code...
244
+ </div>
245
+ <div id="discount-message-success" class="mt-2 text-success small d-none">
246
+ {% uj_icon "check-circle", "me-1" %} <span id="confirmation-text">Discount applied</span>
247
+ </div>
248
+ <div id="discount-message-error" class="mt-2 text-danger small d-none">
249
+ {% uj_icon "times-circle", "me-1" %} <span id="error-text">Invalid discount code</span>
250
+ </div>
251
+ </div>
252
+ </div>
253
+
254
+ <!-- Price Breakdown -->
255
+ <div>
256
+ <div class="d-flex justify-content-between mb-2">
257
+ <span class="text-muted">Subtotal</span>
258
+ <span id="subtotal">$--</span>
259
+ </div>
260
+
261
+ <div class="d-flex justify-content-between mb-2 text-success d-none" id="discount-row">
262
+ <span>Discount (<span id="discount-percent"></span>)</span>
263
+ <span>-$<span id="discount-amount"></span></span>
264
+ </div>
265
+
266
+ <div class="d-flex justify-content-between mb-3 text-success d-none" id="trial-discount-row">
267
+ <span>Free Trial Discount</span>
268
+ <span>-$<span id="trial-discount-amount"></span></span>
269
+ </div>
270
+
271
+ <div class="d-flex justify-content-between align-items-center mb-3">
272
+ <span class="fw-bold fs-5">Total Due Today</span>
273
+ <span class="fw-bold fs-4" id="total-price">$--</span>
274
+ </div>
275
+
276
+ <hr class="my-3">
277
+
278
+ <div class="d-flex justify-content-between align-items-center text-muted">
279
+ <span>Recurring</span>
280
+ <span id="recurring-amount">$-- <span id="recurring-period">monthly</span></span>
281
+ </div>
282
+
283
+ <!-- Subscription Terms -->
284
+ <div id="subscription-terms" class="mt-3 rounded-3 small text-body-tertiary d-none text-start">
285
+ <span id="terms-text"></span>
286
+ </div>
287
+ </div>
288
+ </div>
289
+ </div>
290
+
291
+ <!-- Trust Badges -->
292
+ <div class="text-center mt-2">
293
+ <div class="d-flex justify-content-center align-items-center gap-3 text-muted">
294
+ <a href="javascript:;" class="text-decoration-none btn-link" id="checkout-help-button">
295
+ {% uj_icon "messages-question", "text-primary" %} Need help? Chat with us now!
296
+ </a>
297
+ </div>
298
+ </div>
299
+ </div>
300
+ </div>
301
+
302
+ <!-- Section 3: Payment Method -->
303
+ <div class="col-12 col-lg-7 mb-4 order-3 checkout-payment">
304
+ <!-- Payment Method Card (Mobile position) -->
305
+ <div class="_card _border-1 _border-secondary _shadow-sm mb-0">
306
+ <div class="card-body">
307
+ <h3 class="h5 fw-bold mb-3">Payment Method</h3>
308
+
309
+ <!-- Direct Payment Buttons -->
310
+ <div class="d-grid gap-3">
311
+ <!-- Credit/Debit Card Button -->
312
+ <button type="submit" class="btn btn-adaptive btn-lg py-3 d-flex align-items-center justify-content-center" id="pay-with-card" data-payment-method="card" data-action="pay-card">
313
+ {% uj_icon "credit-card", "me-2 fa-3xl" %}
314
+ <span class="fw-semibold">Credit/Debit</span>
315
+ </button>
316
+
317
+ <!-- PayPal Button -->
318
+ <button type="submit" class="btn btn-paypal btn-lg py-3 d-flex align-items-center justify-content-center" id="pay-with-paypal" data-payment-method="paypal" data-action="pay-paypal">
319
+ <img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-200px.png"
320
+ alt="PayPal"
321
+ height="28"
322
+ style="max-height: 28px;">
323
+ </button>
324
+
325
+ <!-- Apple Pay Button (shown conditionally) -->
326
+ <button type="submit" class="btn btn-dark btn-lg py-3 d-flex align-items-center justify-content-center d-none" id="pay-with-apple-pay" data-payment-method="apple-pay" data-action="pay-apple-pay">
327
+ {% uj_icon "apple", "me-2 fa-3xl" %}
328
+ <span class="fw-semibold">Apple Pay</span>
329
+ </button>
330
+
331
+ <!-- Google Pay Button (shown conditionally) -->
332
+ <button type="submit" class="btn btn-outline-dark btn-lg py-3 d-flex align-items-center justify-content-center d-none" id="pay-with-google-pay" data-payment-method="google-pay" data-action="pay-google-pay">
333
+ <img src="https://www.gstatic.com/instantbuy/svg/dark_gpay.svg"
334
+ alt="Google Pay"
335
+ height="24"
336
+ class="me-2">
337
+ <span class="fw-semibold">Google Pay</span>
338
+ </button>
339
+
340
+ <!-- Crypto Button -->
341
+ <button type="submit" class="btn btn-outline-adaptive btn-lg py-3 d-flex align-items-center justify-content-center" id="pay-with-crypto" data-payment-method="crypto" data-action="pay-crypto">
342
+ {% uj_icon "bitcoin", "me-2 fa-3xl" %}
343
+ <span class="fw-semibold">Crypto</span>
344
+ </button>
345
+
346
+ <!-- Divider -->
347
+ <!-- <div class="d-flex align-items-center my-2">
348
+ <hr class="flex-grow-1">
349
+ <span class="text-muted small px-3">or pay with cryptocurrency</span>
350
+ <hr class="flex-grow-1">
351
+ </div> -->
352
+
353
+ <p class="text-muted small text-center mb-0">
354
+ By purchasing, you agree to our <a href="/terms" target="_blank">Terms of Service</a> and <a href="/privacy" target="_blank">Privacy Policy</a>.
355
+ </p>
356
+ </div>
357
+ </div>
358
+ </div>
359
+
360
+ <!-- Security badges -->
361
+ <div class="text-center mt-2">
362
+ <div class="d-flex justify-content-center align-items-center gap-3 small text-muted">
363
+ <span>{% uj_icon "shield-check", "text-success" %} Secure Checkout</span>
364
+ <span>{% uj_icon "lock", "text-success" %} SSL Encrypted</span>
365
+ <span>{% uj_icon "check-circle", "text-success" %} Money-back guarantee</span>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+ </div>
371
+ </form>
372
+ </div>
373
+ </div>
374
+ </section>
375
+
376
+ {{ content | uj_content_format }}