ultimate-jekyll-manager 0.0.142 → 0.0.144

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 (28) hide show
  1. package/dist/assets/css/core/_lazy-loading.scss +13 -0
  2. package/dist/assets/js/libs/form-manager.js +3 -3
  3. package/dist/assets/js/pages/index.js +0 -4
  4. package/dist/assets/themes/classy/_config.scss +2 -1
  5. package/dist/assets/themes/classy/_theme.js +5 -0
  6. package/dist/assets/themes/classy/css/base/_spacing.scss +4 -0
  7. package/dist/assets/themes/classy/css/components/_buttons.scss +14 -19
  8. package/dist/assets/themes/classy/js/hero-demo-form.js +42 -0
  9. package/dist/defaults/dist/_includes/core/foot.html +27 -1
  10. package/dist/defaults/dist/_layouts/blueprint/admin/firebase/index.html +9 -7
  11. package/dist/defaults/dist/_layouts/blueprint/admin/notifications/new.html +3 -1
  12. package/dist/defaults/dist/_layouts/blueprint/admin/users/index.html +4 -4
  13. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/account/index.html +1 -1
  14. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/blog/post.html +2 -1
  15. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/download.html +7 -7
  16. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/index.html +177 -117
  17. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/payment/checkout.html +1 -0
  18. package/dist/defaults/dist/_layouts/themes/classy/frontend/pages/pricing.html +14 -2
  19. package/dist/defaults/dist/pages/test/components/hero-demo-custom.html +60 -0
  20. package/dist/defaults/dist/pages/test/components/hero-demo-form.html +83 -0
  21. package/dist/defaults/dist/pages/test/components/hero-demo-input.html +47 -0
  22. package/dist/defaults/dist/pages/test/components/hero-demo-side.html +43 -0
  23. package/dist/defaults/dist/pages/test/components/hero-demo-video.html +43 -0
  24. package/dist/defaults/dist/pages/test/translation/index.md +2 -1
  25. package/dist/defaults/dist/robots.txt +18 -0
  26. package/dist/index.js +7 -0
  27. package/firebase-debug.log +338 -0
  28. package/package.json +1 -1
@@ -14,35 +14,32 @@ hero:
14
14
  headline: "The #1 platform <br> for business"
15
15
  headline_accent: "success"
16
16
  description: "AI automation for modern businesses made simple"
17
+ demo:
18
+ enabled: false
19
+ type: "input"
20
+ placement: "bottom"
21
+ options:
22
+ class: "mw-md"
23
+ placeholder: "Enter your email"
24
+ name: "email"
25
+ input_type: "email"
26
+ required: true
27
+ redirect: "/dashboard"
28
+ subtext: "No credit card required"
29
+ button:
30
+ text: "Start Free Trial"
31
+ icon: "rocket"
32
+ class: "btn-adaptive-inverse"
17
33
  primary_button:
18
34
  text: "Get Started Free"
19
35
  icon: "rocket"
20
36
  href: "/dashboard"
37
+ class: "btn-light"
21
38
  secondary_button:
22
39
  text: "Explore Solutions"
23
40
  icon: "book-open"
24
41
  href: "/pricing"
25
- cards:
26
- - number: "50K+"
27
- label: "Active Users"
28
- icon: "users"
29
- color: "primary"
30
- height: "200px"
31
- - number: "98%"
32
- label: "Success Rate"
33
- icon: "certificate"
34
- color: "success"
35
- height: "150px"
36
- - number: "200+"
37
- label: "Solutions"
38
- icon: "book"
39
- color: "warning"
40
- height: "150px"
41
- - number: "4.9/5"
42
- label: "Average Rating"
43
- icon: "star"
44
- color: "info"
45
- height: "200px"
42
+ class: "btn-outline-light"
46
43
  badge:
47
44
  title: "Industry Leader"
48
45
  subtitle: "2024 Award"
@@ -214,106 +211,158 @@ cta:
214
211
  href: "/contact"
215
212
  ---
216
213
 
217
- {% comment %}
218
- <section>
219
- <div class="container">
220
- <div class="row align-items-center min-vh-80">
221
- <div class="col-lg-6">
222
- <div class="mb-4" data-lazy="@class animation-slide-up">
223
- <div class="d-flex align-items-center mb-3">
224
- {% uj_icon "rocket", "text-primary fs-2 me-2" %}
225
- <span class="text-primary fw-semibold fs-5">{{ page.resolved.hero.tagline }}</span>
226
- </div>
227
-
228
- <h1 class="h1 mb-3">
229
- {{ page.resolved.hero.headline | split: " " | slice: 0, -2 | join: " " }} <span class="text-gradient-rainbow">{{ page.resolved.hero.headline | split: " " | slice: -2, 2 | join: " " }}</span><br>
230
- {{ page.resolved.hero.headline_accent }}
231
- </h1>
232
-
233
- <p class="fs-5 text-muted mb-4">
234
- {{ page.resolved.hero.description }}
235
- </p>
236
-
237
- <ul class="list-unstyled mb-4">
238
- {% for feature in page.resolved.features.items limit: 3 %}
239
- <li class="d-flex align-items-center mb-3">
240
- {% uj_icon "check-circle", "text-success fs-5 me-3" %}
241
- <span class="fs-6">{{ feature.title }}</span>
242
- </li>
243
- {% endfor %}
244
- </ul>
245
-
246
- <div class="d-flex flex-column flex-sm-row gap-3">
247
- <a href="{{ page.resolved.hero.primary_button.href }}" class="btn btn-primary btn-lg px-4 py-3">
248
- {% uj_icon page.resolved.hero.primary_button.icon, "me-2" %}
249
- {{ page.resolved.hero.primary_button.text }}
250
- </a>
251
- <a href="{{ page.resolved.hero.secondary_button.href }}" class="btn btn-outline-adaptive btn-lg px-4 py-3">
252
- {% uj_icon page.resolved.hero.secondary_button.icon, "me-2" %}
253
- {{ page.resolved.hero.secondary_button.text }}
254
- </a>
255
- </div>
256
- </div>
214
+ <!-- Hero Section -->
215
+ {% assign demo = page.resolved.hero.demo %}
216
+ {% assign demo_placement = demo.placement | default: "bottom" %}
217
+ {% assign is_side_layout = false %}
218
+ {% if demo.enabled and demo_placement == "side" %}
219
+ {% assign is_side_layout = true %}
220
+ {% endif %}
221
+
222
+ {% comment %} Capture demo content once to avoid duplication {% endcomment %}
223
+ {% capture hero_demo_content %}
224
+ {% if demo.type == "input" %}
225
+ <!-- Input Demo: Single input with button -->
226
+ <div class="card bg-glassy border-0 {% unless is_side_layout %}mx-auto{% endunless %} {{ demo.options.class }}">
227
+ <div class="card-body">
228
+ <form id="hero-demo-form" class="d-flex flex-column {% unless is_side_layout %}flex-sm-row justify-content-center{% endunless %} gap-3" {% iftruthy demo.options.redirect %}data-redirect="{{ demo.options.redirect }}"{% endiftruthy %}>
229
+ <input
230
+ type="{{ demo.options.input_type | default: 'text' }}"
231
+ name="{{ demo.options.name | default: 'input' }}"
232
+ class="form-control form-control-lg border-0"
233
+ placeholder="{{ demo.options.placeholder }}"
234
+ {% iftruthy demo.options.required %}required{% endiftruthy %}
235
+ autofocus
236
+ disabled
237
+ >
238
+ {% assign demo_btn_class = demo.options.button.class | default: "btn-adaptive-inverse" %}
239
+ <button type="submit" class="btn {{ demo_btn_class }} btn-lg text-nowrap flex-shrink-0" disabled>
240
+ {% iftruthy demo.options.button.icon %}
241
+ {% uj_icon demo.options.button.icon, "me-2" %}
242
+ {% endiftruthy %}
243
+ {{ demo.options.button.text }}
244
+ </button>
245
+ </form>
257
246
  </div>
247
+ </div>
258
248
 
259
- <div class="col-lg-6 mt-5 mt-lg-0">
260
- <div class="position-relative" data-lazy="@class animation-slide-up">
261
- <div class="row g-4">
262
- <div class="col-6">
263
- <div class="bg-{{ page.resolved.hero.cards[0].color }} rounded-4 p-4 text-light text-center" style="height: {{ page.resolved.hero.cards[0].height }};">
264
- <div class="d-flex flex-column justify-content-center h-100">
265
- {% uj_icon page.resolved.hero.cards[0].icon, "display-4 mb-3 text-light" %}
266
- <h3 class="mb-1">{{ page.resolved.hero.cards[0].number }}</h3>
267
- <p class="mb-0">{{ page.resolved.hero.cards[0].label }}</p>
268
- </div>
269
- </div>
270
- <div class="bg-{{ page.resolved.hero.cards[1].color }} rounded-4 p-4 text-light text-center mt-4" style="height: {{ page.resolved.hero.cards[1].height }};">
271
- <div class="d-flex flex-column justify-content-center h-100">
272
- {% uj_icon page.resolved.hero.cards[1].icon, "fs-1 mb-2 text-light" %}
273
- <h3 class="h4 mb-1">{{ page.resolved.hero.cards[1].number }}</h3>
274
- <p class="mb-0 small">{{ page.resolved.hero.cards[1].label }}</p>
275
- </div>
276
- </div>
277
- </div>
278
- <div class="col-6 d-flex flex-column">
279
- <div class="bg-{{ page.resolved.hero.cards[2].color }} rounded-4 p-4 text-light text-center mb-4" style="height: {{ page.resolved.hero.cards[2].height }};">
280
- <div class="d-flex flex-column justify-content-center h-100">
281
- {% uj_icon page.resolved.hero.cards[2].icon, "fs-1 mb-2 text-light" %}
282
- <h3 class="h4 mb-1">{{ page.resolved.hero.cards[2].number }}</h3>
283
- <p class="mb-0 small">{{ page.resolved.hero.cards[2].label }}</p>
284
- </div>
285
- </div>
286
- <div class="bg-{{ page.resolved.hero.cards[3].color }} rounded-4 p-4 text-light text-center" style="height: {{ page.resolved.hero.cards[3].height }};">
287
- <div class="d-flex flex-column justify-content-center h-100">
288
- {% uj_icon page.resolved.hero.cards[3].icon, "display-4 mb-3 text-light" %}
289
- <h3 class="mb-1">{{ page.resolved.hero.cards[3].number }}</h3>
290
- <p class="mb-0">{{ page.resolved.hero.cards[3].label }}</p>
249
+ {% elsif demo.type == "form" %}
250
+ <!-- Form Demo: Multiple fields with card styling -->
251
+ <div class="{% unless is_side_layout %}mx-auto{% endunless %} {{ demo.options.class }}">
252
+ <form id="hero-demo-form" {% iftruthy demo.options.redirect %}data-redirect="{{ demo.options.redirect }}"{% endiftruthy %}>
253
+ <div class="row g-3 {% unless is_side_layout %}justify-content-center{% endunless %}">
254
+ {% assign autofocus_set = false %}
255
+ {% for field in demo.options.fields %}
256
+ {% assign field_size = field.size | default: "half" %}
257
+ <div class="col-12 {% if field_size == 'half' %}col-sm-6{% endif %}">
258
+ <div class="card bg-glassy border-0">
259
+ <div class="card-body p-3">
260
+ {% iftruthy field.label %}
261
+ <label for="hero-demo-{{ field.name }}" class="form-label d-flex align-items-center mb-2">
262
+ {% iftruthy field.icon %}
263
+ {% uj_icon field.icon, "me-2" %}
264
+ {% endiftruthy %}
265
+ {{ field.label }}
266
+ {% iftruthy field.required %}<span class="text-danger ms-1">*</span>{% endiftruthy %}
267
+ </label>
268
+ {% endiftruthy %}
269
+ {% if field.type == "select" %}
270
+ <select
271
+ id="hero-demo-{{ field.name }}"
272
+ name="{{ field.name }}"
273
+ class="form-select form-select-lg border-0"
274
+ {% iftruthy field.required %}required{% endiftruthy %}
275
+ disabled
276
+ >
277
+ <option value="" disabled selected>{{ field.placeholder }}</option>
278
+ {% for option in field.options %}
279
+ <option value="{{ option.value }}">{{ option.label }}</option>
280
+ {% endfor %}
281
+ </select>
282
+ {% elsif field.type == "textarea" %}
283
+ <textarea
284
+ id="hero-demo-{{ field.name }}"
285
+ name="{{ field.name }}"
286
+ class="form-control form-control-lg border-0"
287
+ placeholder="{{ field.placeholder }}"
288
+ rows="{{ field.rows | default: 3 }}"
289
+ {% iftruthy field.required %}required{% endiftruthy %}
290
+ {% unless autofocus_set %}autofocus{% assign autofocus_set = true %}{% endunless %}
291
+ disabled
292
+ ></textarea>
293
+ {% else %}
294
+ <input
295
+ id="hero-demo-{{ field.name }}"
296
+ type="{{ field.type | default: 'text' }}"
297
+ name="{{ field.name }}"
298
+ class="form-control form-control-lg border-0"
299
+ placeholder="{{ field.placeholder }}"
300
+ {% iftruthy field.required %}required{% endiftruthy %}
301
+ {% unless autofocus_set %}autofocus{% assign autofocus_set = true %}{% endunless %}
302
+ disabled
303
+ >
304
+ {% endif %}
291
305
  </div>
292
306
  </div>
293
307
  </div>
308
+ {% endfor %}
309
+ {% assign form_btn_class = demo.options.button.class | default: "btn-adaptive-inverse" %}
310
+ <div class="col-12 {% if demo.options.button.full_width != true %}col-sm-auto{% endif %}">
311
+ <button type="submit" class="btn {{ form_btn_class }} btn-lg w-100 h-100" disabled>
312
+ {% iftruthy demo.options.button.icon %}
313
+ {% uj_icon demo.options.button.icon, "me-2" %}
314
+ {% endiftruthy %}
315
+ {{ demo.options.button.text }}
316
+ </button>
294
317
  </div>
318
+ </div>
319
+ </form>
320
+ </div>
295
321
 
296
- <div class="position-absolute top-0 end-0 rounded-4 p-3 shadow-lg" style="transform: translate(20px, -20px);">
297
- <div class="d-flex align-items-center">
298
- {% uj_icon page.resolved.hero.badge.icon, "text-warning fs-4 me-2" %}
299
- <div>
300
- <div class="small">{{ page.resolved.hero.badge.title }}</div>
301
- <div class="text-muted small">{{ page.resolved.hero.badge.subtitle }}</div>
302
- </div>
303
- </div>
304
- </div>
322
+ {% elsif demo.type == "video" %}
323
+ <!-- Video Demo: Embedded video player -->
324
+ <div class="{% unless is_side_layout %}mx-auto{% endunless %} {{ demo.options.class }}">
325
+ <div class="card border-0 shadow-lg rounded-4 overflow-hidden">
326
+ <div class="ratio ratio-16x9">
327
+ {% uj_video demo.options.src, class="w-100 d-block object-fit-cover border-0", controls="{{ demo.options.controls }}", loop="{{ demo.options.loop }}", autoplay="{{ demo.options.autoplay }}", playsinline="true", muted="{{ demo.options.muted }}", preload="metadata" %}
305
328
  </div>
306
329
  </div>
307
330
  </div>
331
+
332
+ {% elsif demo.type == "custom" %}
333
+ <!-- Custom Demo: Renders content block -->
334
+ <div id="hero-demo-custom" class="{% unless is_side_layout %}mx-auto{% endunless %} {{ demo.options.class }}">
335
+ {{ demo.options.content }}
336
+ </div>
337
+
338
+ {% endif %}
339
+
340
+ {% iftruthy demo.options.subtext %}
341
+ <p class="small mt-3 opacity-70 {% if is_side_layout %}text-center mb-0{% endif %}">{{ demo.options.subtext }}</p>
342
+ {% endiftruthy %}
343
+ {% endcapture %}
344
+
345
+ {% comment %} Capture CTA buttons {% endcomment %}
346
+ {% capture hero_cta_buttons %}
347
+ {% assign primary_btn_class = page.resolved.hero.primary_button.class | default: "btn-adaptive" %}
348
+ {% assign secondary_btn_class = page.resolved.hero.secondary_button.class | default: "btn-outline-adaptive" %}
349
+ <div class="d-flex flex-row flex-wrap gap-3 justify-content-center {% if is_side_layout %}justify-content-lg-start{% endif %}">
350
+ <a href="{{ page.resolved.hero.primary_button.href }}" class="btn {{ primary_btn_class }} btn-lg py-3 {% if is_side_layout %}px-4{% else %}px-5{% endif %}">
351
+ {% uj_icon page.resolved.hero.primary_button.icon, "me-2" %}
352
+ {{ page.resolved.hero.primary_button.text }}
353
+ </a>
354
+ <a href="{{ page.resolved.hero.secondary_button.href }}" class="btn {{ secondary_btn_class }} btn-lg py-3 {% if is_side_layout %}px-4{% else %}px-5{% endif %}">
355
+ {% uj_icon page.resolved.hero.secondary_button.icon, "me-2" %}
356
+ {{ page.resolved.hero.secondary_button.text }}
357
+ </a>
308
358
  </div>
309
- </section>
310
- {% endcomment %}
359
+ {% endcapture %}
311
360
 
312
- <!-- Hero Section -->
313
361
  <section class="bg-gradient-rainbow gradient-animated gradient-grain text-light overflow-hidden position-relative min-vh-80 d-flex align-items-center rounded-bottom-4 shadow-lg">
314
362
  <div class="container py-5">
315
- <div class="row justify-content-center">
316
- <div class="col-lg-10 text-center py-5">
363
+ <div class="row justify-content-center {% if is_side_layout %}align-items-center{% endif %}">
364
+ <!-- Text Column -->
365
+ <div class="{% if is_side_layout %}col-lg-6 text-center text-lg-start{% else %}col-lg-10 text-center py-5{% endif %}">
317
366
  <div data-lazy="@class animation-slide-up">
318
367
  <p class="text-uppercase fw-semibold mb-3 opacity-80">{{ page.resolved.hero.tagline }}</p>
319
368
 
@@ -325,18 +374,29 @@ cta:
325
374
  {{ page.resolved.hero.description }}
326
375
  </p>
327
376
 
328
- <div class="d-flex flex-column flex-sm-row gap-3 justify-content-center">
329
- <a href="{{ page.resolved.hero.primary_button.href }}" class="btn btn-light btn-lg px-5 py-3">
330
- {% uj_icon page.resolved.hero.primary_button.icon, "me-2" %}
331
- {{ page.resolved.hero.primary_button.text }}
332
- </a>
333
- <a href="{{ page.resolved.hero.secondary_button.href }}" class="btn btn-outline-light btn-lg px-5 py-3">
334
- {% uj_icon page.resolved.hero.secondary_button.icon, "me-2" %}
335
- {{ page.resolved.hero.secondary_button.text }}
336
- </a>
337
- </div>
377
+ {% if is_side_layout %}
378
+ <!-- Side layout: CTA buttons go here, demo goes in right column -->
379
+ {{ hero_cta_buttons }}
380
+ {% else %}
381
+ <!-- Bottom layout: CTA buttons, then demo below -->
382
+ {{ hero_cta_buttons }}
383
+ {% if demo.enabled %}
384
+ <div class="mt-5">
385
+ {{ hero_demo_content }}
386
+ </div>
387
+ {% endif %}
388
+ {% endif %}
338
389
  </div>
339
390
  </div>
391
+
392
+ {% if is_side_layout %}
393
+ <!-- Demo Column (Side Placement) -->
394
+ <div class="col-lg-6 mt-5 mt-lg-0">
395
+ <div data-lazy="@class animation-slide-up">
396
+ {{ hero_demo_content }}
397
+ </div>
398
+ </div>
399
+ {% endif %}
340
400
  </div>
341
401
  </div>
342
402
  </section>
@@ -262,6 +262,7 @@ web_manager:
262
262
  <!-- Discount Code -->
263
263
  <div class="mb-4 wm-binding-skeleton" data-wm-bind="@show checkout">
264
264
  <div class="input-group" data-wm-bind="@show checkout" hidden>
265
+ <label for="discount-code" class="visually-hidden">Discount code</label>
265
266
  <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">
266
267
  <button class="btn btn-adaptive rounded-end-3 border px-4" type="button" id="apply-discount" data-action="apply-discount">Apply</button>
267
268
  </div>
@@ -37,6 +37,7 @@ pricing:
37
37
  monthly: 0
38
38
  annually: 0
39
39
  features:
40
+ # Common features
40
41
  - id: "credits"
41
42
  name: "Credits"
42
43
  value: 10
@@ -45,6 +46,11 @@ pricing:
45
46
  name: "Exports"
46
47
  value: "Watermarked"
47
48
  icon: "download"
49
+ # Additional features
50
+ - id: "storage"
51
+ name: "Logo Storage"
52
+ value: "7 days"
53
+ icon: "clock"
48
54
 
49
55
  - id: "starter"
50
56
  name: "Starter"
@@ -54,6 +60,7 @@ pricing:
54
60
  monthly: 28
55
61
  annually: 276 # Total annual price (~20% off monthly)
56
62
  features:
63
+ # Common features
57
64
  - id: "credits"
58
65
  name: "Credits"
59
66
  value: 100
@@ -62,6 +69,7 @@ pricing:
62
69
  name: "Exports"
63
70
  value: "Unlimited"
64
71
  icon: "download"
72
+ # Additional features
65
73
  - id: "api_access"
66
74
  name: "API Access"
67
75
  value: "Full"
@@ -80,6 +88,7 @@ pricing:
80
88
  monthly: 50
81
89
  annually: 504 # Total annual price (~16% off monthly)
82
90
  features:
91
+ # Common features
83
92
  - id: "credits"
84
93
  name: "Credits"
85
94
  value: 200
@@ -88,6 +97,7 @@ pricing:
88
97
  name: "Exports"
89
98
  value: "Unlimited"
90
99
  icon: "download"
100
+ # Additional features
91
101
 
92
102
  - id: "max"
93
103
  name: "Max"
@@ -97,6 +107,7 @@ pricing:
97
107
  monthly: 100
98
108
  annually: 960 # Total annual price (20% off monthly)
99
109
  features:
110
+ # Common features
100
111
  - id: "credits"
101
112
  name: "Credits"
102
113
  value: 500
@@ -105,6 +116,7 @@ pricing:
105
116
  name: "Exports"
106
117
  value: "Unlimited"
107
118
  icon: "download"
119
+ # Additional features
108
120
  - id: "team_collaboration"
109
121
  name: "Team Collaboration"
110
122
  value: "Included"
@@ -438,7 +450,7 @@ faqs:
438
450
  {% endfor %}
439
451
  </ul>
440
452
 
441
- <!-- Show unique features for the first (Basic) plan -->
453
+ <!-- Show Additional features for the first (Basic) plan -->
442
454
  {% if forloop.index == 1 %}
443
455
  {% assign has_unique_basic = false %}
444
456
  {% for feature in plan.features %}
@@ -511,7 +523,7 @@ faqs:
511
523
  </em>
512
524
  </div>
513
525
 
514
- <!-- Additional/unique features if they exist -->
526
+ <!-- Additional/Additional features if they exist -->
515
527
  {% if has_additional %}
516
528
  <ul class="list-unstyled mb-0">
517
529
  {% for feature in plan.features %}
@@ -0,0 +1,60 @@
1
+ ---
2
+ ### ALL PAGES ###
3
+ layout: blueprint/index
4
+ permalink: /test/components/hero-demo-custom
5
+
6
+ ### PAGE CONFIG ###
7
+ asset_path: index
8
+ sitemap:
9
+ include: false
10
+ meta:
11
+ title: "Hero Demo: Custom Type"
12
+ description: "Test page demonstrating the custom hero demo type"
13
+ index: false
14
+
15
+ # Hero Section
16
+ hero:
17
+ tagline: "Custom demo"
18
+ headline: "Design your"
19
+ headline_accent: "brand"
20
+ description: "Try our interactive brand builder right here"
21
+ demo:
22
+ enabled: true
23
+ type: "custom"
24
+ placement: "bottom"
25
+ options:
26
+ class: "bg-glassy rounded-4 p-4 mw-md"
27
+ subtext: "Customize and preview in real-time"
28
+ content: |
29
+ <div class="row g-3 text-start">
30
+ <div class="col-12">
31
+ <label for="color-picker" class="form-label fw-bold">{% uj_icon "palette", "me-1" %}Choose your brand color:</label>
32
+ <input type="color" class="form-control form-control-color form-control-lg border-0 w-100" id="color-picker" value="#6366f1" aria-label="Choose your brand color">
33
+ </div>
34
+ <div class="col-12">
35
+ <label for="style-select" class="form-label fw-bold">{% uj_icon "swatchbook", "me-1" %}Select style:</label>
36
+ <select class="form-select form-select-lg border-0" id="style-select" aria-label="Select style">
37
+ <option value="modern">Modern</option>
38
+ <option value="classic">Classic</option>
39
+ <option value="minimal">Minimal</option>
40
+ <option value="bold">Bold</option>
41
+ </select>
42
+ </div>
43
+ <div class="col-12">
44
+ <a href="/dashboard" class="btn btn-adaptive-inverse btn-lg px-4 w-100">
45
+ {% uj_icon "palette", "me-2" %}
46
+ Apply Theme
47
+ </a>
48
+ </div>
49
+ </div>
50
+ primary_button:
51
+ text: "Get Started Free"
52
+ icon: "rocket"
53
+ href: "/dashboard"
54
+ class: "btn-light"
55
+ secondary_button:
56
+ text: "Explore Solutions"
57
+ icon: "book-open"
58
+ href: "/pricing"
59
+ class: "btn-outline-light"
60
+ ---
@@ -0,0 +1,83 @@
1
+ ---
2
+ ### ALL PAGES ###
3
+ layout: blueprint/index
4
+ permalink: /test/components/hero-demo-form
5
+
6
+ ### PAGE CONFIG ###
7
+ asset_path: index
8
+ sitemap:
9
+ include: false
10
+ meta:
11
+ title: "Hero Demo: Form Type"
12
+ description: "Test page demonstrating the form hero demo type"
13
+ index: false
14
+
15
+ # Hero Section
16
+ hero:
17
+ tagline: "Form demo"
18
+ headline: "Get your custom"
19
+ headline_accent: "quote"
20
+ description: "Tell us about your project and we'll get back to you within 24 hours"
21
+ demo:
22
+ enabled: true
23
+ type: "form"
24
+ placement: "bottom"
25
+ options:
26
+ class: "mw-lg"
27
+ redirect: "/contact"
28
+ subtext: "We respond within 24 hours"
29
+ fields:
30
+ - name: "industry"
31
+ label: "Industry"
32
+ icon: "building"
33
+ type: "select"
34
+ size: "half"
35
+ placeholder: "Select industry"
36
+ options:
37
+ - value: "technology"
38
+ label: "Technology"
39
+ - value: "healthcare"
40
+ label: "Healthcare"
41
+ - value: "finance"
42
+ label: "Finance"
43
+ - value: "retail"
44
+ label: "Retail"
45
+ - name: "company_size"
46
+ label: "Company Size"
47
+ icon: "users"
48
+ type: "select"
49
+ size: "half"
50
+ placeholder: "Select size"
51
+ options:
52
+ - value: "1-10"
53
+ label: "1-10 employees"
54
+ - value: "11-50"
55
+ label: "11-50 employees"
56
+ - value: "51-200"
57
+ label: "51-200 employees"
58
+ - value: "200+"
59
+ label: "200+ employees"
60
+ - name: "message"
61
+ label: "Tell us about your project"
62
+ icon: "comment"
63
+ type: "textarea"
64
+ size: "full"
65
+ placeholder: "Describe your goals, challenges, or questions..."
66
+ rows: 4
67
+ required: true
68
+ button:
69
+ text: "Get Quote"
70
+ icon: "paper-plane"
71
+ full_width: true
72
+ class: "btn-adaptive-inverse"
73
+ primary_button:
74
+ text: "Get Started Free"
75
+ icon: "rocket"
76
+ href: "/dashboard"
77
+ class: "btn-light"
78
+ secondary_button:
79
+ text: "Explore Solutions"
80
+ icon: "book-open"
81
+ href: "/pricing"
82
+ class: "btn-outline-light"
83
+ ---
@@ -0,0 +1,47 @@
1
+ ---
2
+ ### ALL PAGES ###
3
+ layout: blueprint/index
4
+ permalink: /test/components/hero-demo-input
5
+
6
+ ### PAGE CONFIG ###
7
+ asset_path: index
8
+ sitemap:
9
+ include: false
10
+ meta:
11
+ title: "Hero Demo: Input Type"
12
+ description: "Test page demonstrating the input hero demo type"
13
+ index: false
14
+
15
+ # Hero Section
16
+ hero:
17
+ tagline: "Input demo"
18
+ headline: "Create your logo in"
19
+ headline_accent: "seconds"
20
+ description: "Enter your business name and watch the magic happen"
21
+ demo:
22
+ enabled: true
23
+ type: "input"
24
+ placement: "bottom"
25
+ options:
26
+ class: "mw-md"
27
+ placeholder: "Enter your business name..."
28
+ name: "business_name"
29
+ input_type: "text"
30
+ required: true
31
+ redirect: "/dashboard"
32
+ subtext: "No credit card required - 5 free logos"
33
+ button:
34
+ text: "Generate Logo"
35
+ icon: "sparkles"
36
+ class: "btn-adaptive-inverse"
37
+ primary_button:
38
+ text: "Get Started Free"
39
+ icon: "rocket"
40
+ href: "/dashboard"
41
+ class: "btn-light"
42
+ secondary_button:
43
+ text: "Explore Solutions"
44
+ icon: "book-open"
45
+ href: "/pricing"
46
+ class: "btn-outline-light"
47
+ ---