maglevcms-hyperui-kit 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/maglev/hyperui/install/install_generator.rb +16 -0
  3. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/banner/banner_01.yml +97 -0
  4. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/banner/banner_02.yml +97 -0
  5. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/banner/banner_03.yml +102 -0
  6. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/cta/cta_01.yml +73 -0
  7. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/cta/cta_02.yml +73 -0
  8. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/cta/cta_03.yml +79 -0
  9. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/faq/faq_01.yml +64 -0
  10. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/faq/faq_02.yml +64 -0
  11. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/faq/faq_03.yml +73 -0
  12. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/feature/feature_01.yml +105 -0
  13. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/feature/feature_02.yml +127 -0
  14. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/feature/feature_03.yml +127 -0
  15. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/footer/footer_01.yml +220 -0
  16. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/footer/footer_02.yml +232 -0
  17. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/footer/footer_03.yml +217 -0
  18. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/footer/footer_04.yml +94 -0
  19. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/nav/nav_01.yml +135 -0
  20. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/nav/nav_02.yml +135 -0
  21. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/nav/nav_03.yml +135 -0
  22. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/nav/nav_04.yml +129 -0
  23. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/review/review_01.yml +105 -0
  24. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/stat/stat_01.yml +85 -0
  25. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/testimonial/testimonial_01.yml +69 -0
  26. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/testimonial/testimonial_02.yml +107 -0
  27. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/sections/testimonial/testimonial_03.yml +103 -0
  28. data/lib/generators/maglev/hyperui/install/templates/app_pro/themes/%theme_name%/theme.yml.tt +178 -0
  29. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/maglev/editor/_header.html.erb +2 -0
  30. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/layout.html.erb +26 -0
  31. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/banner/banner_01.html.erb +20 -0
  32. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/banner/banner_02.html.erb +23 -0
  33. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/banner/banner_03.html.erb +25 -0
  34. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/cta/cta_01.html.erb +15 -0
  35. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/cta/cta_02.html.erb +38 -0
  36. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/cta/cta_03.html.erb +23 -0
  37. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/faq/faq_01.html.erb +30 -0
  38. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/faq/faq_02.html.erb +30 -0
  39. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/faq/faq_03.html.erb +49 -0
  40. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/feature/feature_01.html.erb +27 -0
  41. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/feature/feature_02.html.erb +29 -0
  42. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/feature/feature_03.html.erb +26 -0
  43. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/footer/footer_01.html.erb +60 -0
  44. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/footer/footer_02.html.erb +47 -0
  45. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/footer/footer_03.html.erb +69 -0
  46. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/footer/footer_04.html.erb +29 -0
  47. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/nav/nav_01.html.erb +62 -0
  48. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/nav/nav_02.html.erb +65 -0
  49. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/nav/nav_03.html.erb +65 -0
  50. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/nav/nav_04.html.erb +65 -0
  51. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/review/_grades.html.erb +25 -0
  52. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/review/review_01.html.erb +39 -0
  53. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/stat/stat_01.html.erb +21 -0
  54. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/testimonial/testimonial_01.html.erb +20 -0
  55. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/testimonial/testimonial_02.html.erb +33 -0
  56. data/lib/generators/maglev/hyperui/install/templates/app_pro/views/themes/%theme_name%/sections/testimonial/testimonial_03.html.erb +24 -0
  57. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/banner/banner_01.jpg +0 -0
  58. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/banner/banner_02.jpg +0 -0
  59. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/banner/banner_03.jpg +0 -0
  60. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/cta/cta_01.jpg +0 -0
  61. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/cta/cta_02.jpg +0 -0
  62. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/cta/cta_03.jpg +0 -0
  63. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/faq/faq_01.jpg +0 -0
  64. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/faq/faq_02.jpg +0 -0
  65. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/faq/faq_03.jpg +0 -0
  66. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/feature/feature_01.jpg +0 -0
  67. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/feature/feature_02.jpg +0 -0
  68. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/feature/feature_03.jpg +0 -0
  69. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/footer/footer_01.jpg +0 -0
  70. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/footer/footer_02.jpg +0 -0
  71. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/footer/footer_03.jpg +0 -0
  72. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/footer/footer_04.jpg +0 -0
  73. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/nav/nav_01.jpg +0 -0
  74. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/nav/nav_02.jpg +0 -0
  75. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/nav/nav_03.jpg +0 -0
  76. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/nav/nav_04.jpg +0 -0
  77. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/review/review_01.jpg +0 -0
  78. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/stat/stat_01.jpg +0 -0
  79. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/testimonial/testimonial_01.jpg +0 -0
  80. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/testimonial/testimonial_02.jpg +0 -0
  81. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/%theme_name%/testimonial/testimonial_03.jpg +0 -0
  82. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/image-placeholder.jpg +0 -0
  83. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/logoipsum-white.svg +1 -0
  84. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/logoipsum.svg +1 -0
  85. data/lib/generators/maglev/hyperui/install/templates/public_pro/themes/marie-curie.jpg +0 -0
  86. data/lib/maglev/hyperui/railtie.rb +3 -0
  87. data/lib/maglev/hyperui/version.rb +1 -1
  88. data/lib/tasks/maglev_hyperui_kit.rake +61 -0
  89. metadata +90 -6
@@ -0,0 +1,15 @@
1
+ <%= maglev_section.wrapper_tag.aside class: 'overflow-hidden bg-gray-50 sm:grid sm:grid-cols-2' do %>
2
+ <div class="p-8 md:p-12 lg:px-16 lg:py-24">
3
+ <div class="max-w-xl mx-auto text-center sm:text-left">
4
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-2xl font-bold text-gray-900 md:text-3xl' %>
5
+
6
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'hidden text-gray-500 md:mt-4 md:block' %>
7
+
8
+ <div class="mt-4 md:mt-8">
9
+ <%= maglev_section.setting_tag :button, class: "inline-block px-12 py-3 text-sm font-medium text-white transition rounded bg-emerald-600 hover:bg-emerald-700 focus:outline-none focus:ring focus:ring-yellow-400" %>
10
+ </div>
11
+ </div>
12
+ </div>
13
+
14
+ <%= maglev_section.setting_tag :image, class: 'object-cover w-full h-56 sm:h-full' %>
15
+ <% end %>
@@ -0,0 +1,38 @@
1
+ <%= maglev_section.wrapper_tag.aside class: "overflow-hidden bg-[url(#{maglev_section.settings.background_image.url})] bg-center bg-no-repeat bg-cover" do %>
2
+ <div class="bg-black/25">
3
+ <div class="mx-auto max-w-screen-xl ">
4
+ <div class="p-8 md:p-12 lg:px-16 lg:py-24">
5
+ <div class="max-w-lg text-center sm:text-left">
6
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-2xl font-bold text-white sm:text-3xl md:text-5xl' %>
7
+
8
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'hidden max-w-md text-white/90 md:mt-6 md:text-lg md:leading-relaxed md:block' %>
9
+
10
+ <div class="mt-4 sm:mt-8">
11
+ <a
12
+ href="<%= section.settings.button.href %>"
13
+ class="inline-flex items-center px-8 py-3 text-white transition bg-indigo-700 rounded-full shadow-lg focus:outline-none focus:ring hover:bg-indigo-600"
14
+ <% if section.settings.button.open_new_window? %>target="_blank"<% end %>
15
+ >
16
+ <span class="text-sm font-medium"><%= section.settings.button.text %></span>
17
+
18
+ <svg
19
+ class="w-5 h-5 ml-3"
20
+ xmlns="http://www.w3.org/2000/svg"
21
+ fill="none"
22
+ viewBox="0 0 24 24"
23
+ stroke="currentColor"
24
+ >
25
+ <path
26
+ stroke-linecap="round"
27
+ stroke-linejoin="round"
28
+ stroke-width="2"
29
+ d="M17 8l4 4m0 0l-4 4m4-4H3"
30
+ />
31
+ </svg>
32
+ </a>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ <% end %>
@@ -0,0 +1,23 @@
1
+ <%= maglev_section.wrapper_tag.aside do %>
2
+ <div class="px-4 py-8 mx-auto max-w-screen-2xl sm:px-6 lg:px-8">
3
+ <div class="grid grid-cols-1 gap-4 md:grid-cols-2">
4
+ <div class="p-8 bg-blue-600 md:p-12 lg:px-16 lg:py-24">
5
+ <div class="max-w-xl mx-auto text-center">
6
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-2xl font-bold text-white md:text-3xl' %>
7
+
8
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'hidden sm:block sm:mt-4 text-white/90' %>
9
+
10
+ <div class="mt-4 md:mt-8">
11
+ <%= maglev_section.setting_tag :button, class: "inline-block px-12 py-3 text-sm font-medium text-blue-500 transition bg-white border border-white rounded hover:bg-transparent hover:text-white focus:outline-none focus:ring focus:ring-yellow-400" %>
12
+ </div>
13
+ </div>
14
+ </div>
15
+
16
+ <div class="grid grid-cols-2 gap-4 md:grid-cols-1 lg:grid-cols-2">
17
+ <%= maglev_section.setting_tag :first_image, class: 'object-cover w-full h-40 sm:h-56 md:h-full' %>
18
+
19
+ <%= maglev_section.setting_tag :second_image, class: 'object-cover w-full h-40 sm:h-56 md:h-full' %>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ <% end %>
@@ -0,0 +1,30 @@
1
+ <%= maglev_section.wrapper_tag.div do %>
2
+ <div class="px-4 py-8 mx-auto max-w-screen-2xl sm:px-6 lg:px-8 space-y-4">
3
+ <% maglev_section.blocks.each do |maglev_block| %>
4
+ <%= maglev_block.wrapper_tag.details class: 'group' do %>
5
+ <summary
6
+ class="flex items-center justify-between p-4 rounded-lg cursor-pointer bg-gray-50"
7
+ >
8
+ <%= maglev_block.setting_tag :question, html_tag: 'h5', class: 'font-medium text-gray-900' %>
9
+
10
+ <svg
11
+ class="flex-shrink-0 ml-1.5 w-5 h-5 transition duration-300 group-open:-rotate-180"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ fill="none"
14
+ viewBox="0 0 24 24"
15
+ stroke="currentColor"
16
+ >
17
+ <path
18
+ stroke-linecap="round"
19
+ stroke-linejoin="round"
20
+ stroke-width="2"
21
+ d="M19 9l-7 7-7-7"
22
+ />
23
+ </svg>
24
+ </summary>
25
+
26
+ <%= maglev_block.setting_tag :answer, html_tag: 'p', class: 'px-4 mt-4 leading-relaxed text-gray-700' %>
27
+ <% end %>
28
+ <% end %>
29
+ </div>
30
+ <% end %>
@@ -0,0 +1,30 @@
1
+ <%= maglev_section.wrapper_tag.div do %>
2
+ <div class="px-4 py-8 mx-auto max-w-screen-2xl sm:px-6 lg:px-8 space-y-4">
3
+ <% maglev_section.blocks.each do |maglev_block| %>
4
+ <%= maglev_block.wrapper_tag.details class: 'p-6 border-l-4 border-green-500 bg-gray-50 group' do %>
5
+ <summary class="flex items-center justify-between cursor-pointer">
6
+ <%= maglev_block.setting_tag :question, html_tag: 'h5', class: 'text-lg font-medium text-gray-900' %>
7
+
8
+ <span
9
+ class="flex-shrink-0 ml-1.5 p-1.5 text-gray-900 bg-white rounded-full sm:p-3"
10
+ >
11
+ <svg
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ class="flex-shrink-0 w-5 h-5 transition duration-300 group-open:-rotate-45"
14
+ viewBox="0 0 20 20"
15
+ fill="currentColor"
16
+ >
17
+ <path
18
+ fill-rule="evenodd"
19
+ d="M10 3a1 1 0 011 1v5h5a1 1 0 110 2h-5v5a1 1 0 11-2 0v-5H4a1 1 0 110-2h5V4a1 1 0 011-1z"
20
+ clip-rule="evenodd"
21
+ />
22
+ </svg>
23
+ </span>
24
+ </summary>
25
+
26
+ <%= maglev_block.setting_tag :answer, html_tag: 'p', class: 'mt-4 leading-relaxed text-gray-700' %>
27
+ <% end %>
28
+ <% end %>
29
+ </div>
30
+ <% end %>
@@ -0,0 +1,49 @@
1
+ <%= maglev_section.wrapper_tag.div class: 'bg-gray-50' do %>
2
+ <div class="px-4 py-8 mx-auto max-w-screen-2xl sm:px-6 lg:px-8">
3
+ <div
4
+ class="bg-white border border-gray-200 divide-y divide-gray-200 rounded-xl"
5
+ >
6
+ <% maglev_section.blocks.each do |maglev_block| %>
7
+ <%= maglev_block.wrapper_tag.details class: 'p-6 group' do %>
8
+ <summary class="flex items-center justify-between cursor-pointer">
9
+ <%= maglev_block.setting_tag :question, html_tag: 'h5', class: 'text-lg font-medium text-gray-900' %>
10
+
11
+ <span class="relative flex-shrink-0 ml-1.5 w-5 h-5">
12
+ <svg
13
+ xmlns="http://www.w3.org/2000/svg"
14
+ class="absolute inset-0 w-5 h-5 opacity-100 group-open:opacity-0"
15
+ fill="none"
16
+ viewBox="0 0 24 24"
17
+ stroke="currentColor"
18
+ stroke-width="2"
19
+ >
20
+ <path
21
+ stroke-linecap="round"
22
+ stroke-linejoin="round"
23
+ d="M12 9v3m0 0v3m0-3h3m-3 0H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"
24
+ />
25
+ </svg>
26
+
27
+ <svg
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ class="absolute inset-0 w-5 h-5 opacity-0 group-open:opacity-100"
30
+ fill="none"
31
+ viewBox="0 0 24 24"
32
+ stroke="currentColor"
33
+ stroke-width="2"
34
+ >
35
+ <path
36
+ stroke-linecap="round"
37
+ stroke-linejoin="round"
38
+ d="M15 12H9m12 0a9 9 0 11-18 0 9 9 0 0118 0z"
39
+ />
40
+ </svg>
41
+ </span>
42
+ </summary>
43
+
44
+ <%= maglev_block.setting_tag :answer, html_tag: 'p', class: 'mt-4 leading-relaxed text-gray-700' %>
45
+ <% end %>
46
+ <% end %>
47
+ </div>
48
+ </div>
49
+ <% end %>
@@ -0,0 +1,27 @@
1
+ <%= maglev_section.wrapper_tag.div class: 'text-white bg-gray-900' do %>
2
+ <div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
3
+ <div class="max-w-xl">
4
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-3xl font-bold sm:text-4xl' %>
5
+
6
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'mt-4 text-gray-300' %>
7
+ </div>
8
+
9
+ <div
10
+ class="grid grid-cols-1 gap-8 mt-8 md:gap-12 md:mt-16 md:grid-cols-2 lg:grid-cols-3"
11
+ >
12
+ <% maglev_section.blocks.each do |maglev_block| %>
13
+ <%= maglev_block.wrapper_tag.div class: 'flex items-start' do %>
14
+ <span class="flex-shrink-0 h-12 w-12 flex items-center justify-center bg-gray-800 rounded-lg">
15
+ <%= maglev_block.setting_tag :icon, class: 'text-xl' %>
16
+ </span>
17
+
18
+ <div class="ml-4">
19
+ <%= maglev_block.setting_tag :name, html_tag: 'h3', class: 'text-lg font-bold' %>
20
+
21
+ <%= maglev_block.setting_tag :description, html_tag: 'p', class: 'mt-1 text-sm text-gray-300' %>
22
+ </div>
23
+ <% end %>
24
+ <% end %>
25
+ </div>
26
+ </div>
27
+ <% end %>
@@ -0,0 +1,29 @@
1
+ <%= maglev_section.wrapper_tag.section do %>
2
+ <div class="mx-auto max-w-screen-xl px-4 py-16 sm:px-6 lg:px-8">
3
+ <div
4
+ class="grid grid-cols-1 lg:grid-cols-2 gap-y-8 lg:gap-x-16 lg:items-center"
5
+ >
6
+ <div class="max-w-lg mx-auto text-center lg:text-left lg:mx-0">
7
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-3xl font-bold sm:text-4xl' %>
8
+
9
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'mt-4 text-gray-600' %>
10
+
11
+ <%= maglev_section.setting_tag :button, class: 'inline-flex items-center px-8 py-3 mt-8 text-white bg-indigo-600 border border-indigo-600 rounded hover:bg-transparent hover:text-indigo-600 active:text-indigo-500 focus:outline-none focus:ring text-sm font-medium' %>
12
+ </div>
13
+
14
+ <div class="grid grid-cols-2 gap-4 sm:grid-cols-3">
15
+ <% maglev_section.blocks.each do |maglev_block| %>
16
+ <%= maglev_block.wrapper_tag.a class: 'block p-4 border border-gray-100 shadow-sm rounded-xl focus:outline-none focus:ring hover:border-gray-200 hover:ring-1 hover:ring-gray-200', href: maglev_block.settings.link.href do %>
17
+ <span class="inline-block h-12 w-12 flex items-center justify-center rounded-lg bg-gray-50">
18
+ <%= maglev_block.setting_tag :icon, class: 'text-xl' %>
19
+ </span>
20
+
21
+ <%= maglev_block.setting_tag :name, html_tag: 'h6', class: 'mt-2 font-bold' %>
22
+
23
+ <%= maglev_block.setting_tag :description, html_tag: 'p', class: 'hidden sm:mt-1 sm:text-sm sm:text-gray-600 sm:block' %>
24
+ <% end %>
25
+ <% end %>
26
+ </div>
27
+ </div>
28
+ </div>
29
+ <% end %>
@@ -0,0 +1,26 @@
1
+ <%= maglev_section.wrapper_tag.section class: 'text-white bg-gray-900' do %>
2
+ <div class="max-w-screen-xl px-4 py-16 mx-auto sm:px-6 lg:px-8">
3
+ <div class="max-w-lg mx-auto text-center">
4
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-3xl font-bold sm:text-4xl' %>
5
+
6
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'mt-4 text-gray-300' %>
7
+ </div>
8
+
9
+ <div class="grid grid-cols-1 gap-8 mt-8 md:grid-cols-2 lg:grid-cols-3">
10
+ <% maglev_section.blocks.each do |maglev_block| %>
11
+ <%= maglev_block.wrapper_tag.a class: 'block p-8 transition border border-gray-800 shadow-xl rounded-xl hover:shadow-pink-500/10 hover:border-pink-500/10' do %>
12
+
13
+ <%= maglev_block.setting_tag :icon, class: 'text-3xl text-pink-500' %>
14
+
15
+ <%= maglev_block.setting_tag :name, html_tag: 'h3', class: 'mt-4 text-xl font-bold text-white' %>
16
+
17
+ <%= maglev_block.setting_tag :description, html_tag: 'p', class: 'mt-1 text-sm text-gray-300' %>
18
+ <% end %>
19
+ <% end %>
20
+ </div>
21
+
22
+ <div class="mt-12 text-center">
23
+ <%= maglev_section.setting_tag :button, class: 'inline-flex items-center px-8 py-3 mt-8 text-white bg-pink-600 border border-pink-600 rounded hover:bg-transparent active:text-pink-500 focus:outline-none focus:ring text-sm font-medium' %>
24
+ </div>
25
+ </div>
26
+ <% end %>
@@ -0,0 +1,60 @@
1
+ <%= maglev_section.wrapper_tag.footer class: 'bg-gray-900' do %>
2
+ <div class="max-w-screen-xl px-4 py-16 mx-auto sm:px-6 lg:px-8">
3
+ <div class="lg:flex lg:gap-8">
4
+ <div>
5
+ <%= maglev_section.setting_tag :logo, class: 'block max-h-10' %>
6
+ </div>
7
+
8
+ <div
9
+ class="grid grid-cols-2 gap-8 mt-8 lg:mt-0 lg:grid-cols-5 lg:gap-y-16"
10
+ >
11
+ <div class="col-span-2">
12
+ <div>
13
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-2xl font-bold text-white' %>
14
+
15
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'mt-6 text-gray-400' %>
16
+ </div>
17
+ </div>
18
+
19
+ <div class="col-span-2 lg:col-span-3 lg:flex lg:items-end">
20
+ <form class="w-full text-white">
21
+ <label for="email" class="sr-only">Email</label>
22
+
23
+ <div class="p-2 border sm:flex sm:items-center border-white/10">
24
+ <input
25
+ class="w-full h-12 p-3 text-sm font-medium tracking-widest placeholder-gray-400 uppercase bg-transparent border-none"
26
+ type="email"
27
+ id="email"
28
+ placeholder="Enter your email"
29
+ />
30
+
31
+ <%= maglev_section.setting_tag :button_label, html_tag: 'button', class: 'w-full h-12 px-6 py-3 mt-1 text-sm font-bold tracking-wide uppercase bg-red-700 sm:ml-4 sm:flex-shrink-0 sm:w-auto sm:mt-0', type: 'submit' %>
32
+ </div>
33
+ </form>
34
+ </div>
35
+
36
+ <% maglev_section.blocks.each do |maglev_block| %>
37
+ <%= maglev_block.wrapper_tag.div class: 'col-span-2 pt-6 border-t sm:col-span-1 border-white/10' do %>
38
+ <%= maglev_block.setting_tag :title, html_tag: 'p', class: 'font-bold text-white' %>
39
+
40
+ <nav class="flex flex-col mt-6 space-y-4 text-sm text-gray-300">
41
+ <% maglev_block.children.each do |nested_maglev_block| %>
42
+ <%= nested_maglev_block.wrapper_tag.span class: 'inline-block' do %>
43
+ <%= nested_maglev_block.setting_tag :link %>
44
+ <% end %>
45
+ <% end %>
46
+ </nav>
47
+ <% end %>
48
+ <% end %>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="pt-8 mt-12 border-t border-white/10">
53
+ <div class="grid grid-cols-1 gap-8 lg:grid-cols-2">
54
+ <%= maglev_section.setting_tag :copyright, html_tag: 'p', class: 'text-xs text-center text-gray-400 lg:text-left' %>
55
+
56
+ <%= maglev_section.setting_tag :quick_links, html_tag: 'nav', class: 'flex justify-center gap-4 text-xs text-gray-400 lg:justify-end' %>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ <% end %>
@@ -0,0 +1,47 @@
1
+ <%= maglev_section.wrapper_tag.footer class: 'bg-gray-50' do %>
2
+ <div class="max-w-screen-xl px-4 py-16 mx-auto space-y-12 sm:px-6 lg:px-8">
3
+ <div class="sm:items-center sm:justify-between sm:flex">
4
+ <%= maglev_section.setting_tag :logo, class: 'block max-h-10' %>
5
+
6
+ <% maglev_section.blocks.each do |maglev_block| %>
7
+ <% next if maglev_block.type != 'social_links_row' %>
8
+ <%= maglev_block.wrapper_tag.div class: 'flex gap-6 mt-8 text-gray-500 sm:mt-0' do %>
9
+ <% maglev_block.children.each do |nested_maglev_block| %>
10
+ <%= nested_maglev_block.wrapper_tag.span do %>
11
+ <a
12
+ class="hover:opacity-75 text-2xl"
13
+ href="<%= nested_maglev_block.settings.link.href %>"
14
+ <% if nested_maglev_block.settings.link.open_new_window? %>target="_blank"<% end %>
15
+ rel="noreferrer"
16
+ >
17
+ <span class="sr-only"><%= nested_maglev_block.settings.name %></span>
18
+ <%= nested_maglev_block.setting_tag :icon %>
19
+ </a>
20
+ <% end %>
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
24
+ </div>
25
+
26
+ <div
27
+ class="grid grid-cols-1 gap-8 pt-12 border-t border-gray-100 sm:grid-cols-2 lg:grid-cols-4"
28
+ >
29
+ <% maglev_section.blocks.each do |maglev_block| %>
30
+ <% next if maglev_block.type != 'column' %>
31
+ <%= maglev_block.wrapper_tag.div do %>
32
+ <%= maglev_block.setting_tag :title, html_tag: 'p', class: 'font-medium' %>
33
+
34
+ <nav class="flex flex-col mt-4 space-y-2 text-sm text-gray-500">
35
+ <% maglev_block.children.each do |nested_maglev_block| %>
36
+ <%= nested_maglev_block.wrapper_tag.span do %>
37
+ <%= nested_maglev_block.setting_tag :link %>
38
+ <% end %>
39
+ <% end %>
40
+ </nav>
41
+ <% end %>
42
+ <% end %>
43
+ </div>
44
+
45
+ <%= maglev_section.setting_tag :copyright, html_tag: 'p', class: 'text-xs text-gray-500' %>
46
+ </div>
47
+ <% end %>
@@ -0,0 +1,69 @@
1
+ <%= maglev_section.wrapper_tag.footer class: 'text-white bg-gray-900 lg:grid lg:grid-cols-5' do %>
2
+ <aside class="hidden lg:relative lg:col-span-2 lg:block">
3
+ <%= maglev_section.setting_tag :image, class: 'absolute inset-0 object-cover w-full h-full' %>
4
+ </aside>
5
+
6
+ <div class="px-4 py-16 sm:px-6 lg:px-8 lg:col-span-3">
7
+ <div class="grid grid-cols-1 gap-8 sm:grid-cols-2">
8
+ <div>
9
+ <p class="font-medium">
10
+ <span class="text-xs tracking-widest uppercase">Call</span>
11
+
12
+ <a class="block text-2xl sm:text-3xl hover:opacity-75" href="tel:<%= maglev_section.settings.phone_number %>">
13
+ <%= maglev_section.setting_tag :phone_number %>
14
+ </a>
15
+ </p>
16
+
17
+ <%= maglev_section.setting_tag :opening_hours, html_tag: 'p', class: 'mt-8 space-y-2 text-sm' %>
18
+
19
+ <% maglev_section.blocks.each do |maglev_block| %>
20
+ <% next if maglev_block.type != 'social_links_row' %>
21
+ <%= maglev_block.wrapper_tag.div class: 'flex gap-3 mt-16' do %>
22
+ <% maglev_block.children.each do |nested_maglev_block| %>
23
+ <%= nested_maglev_block.wrapper_tag.span do %>
24
+ <a
25
+ class="w-8 h-8 border rounded-full border-white/25 hover:opacity-75 flex items-center justify-center"
26
+ href="<%= nested_maglev_block.settings.link.href %>"
27
+ <% if nested_maglev_block.settings.link.open_new_window? %>target="_blank"<% end %>
28
+ rel="noreferrer"
29
+ >
30
+ <span class="sr-only"><%= nested_maglev_block.settings.name %></span>
31
+ <%= nested_maglev_block.setting_tag :icon %>
32
+ </a>
33
+ <% end %>
34
+ <% end %>
35
+ <% end %>
36
+ <% end %>
37
+ </div>
38
+
39
+ <div class="grid grid-cols-1 gap-4 sm:grid-cols-2">
40
+ <% maglev_section.blocks.each do |maglev_block| %>
41
+ <% next if maglev_block.type != 'column' %>
42
+ <%= maglev_block.wrapper_tag.div do %>
43
+ <%= maglev_block.setting_tag :title, html_tag: 'p', class: 'font-medium' %>
44
+
45
+ <nav class="flex flex-col mt-4 space-y-2 text-sm text-gray-300">
46
+ <% maglev_block.children.each do |nested_maglev_block| %>
47
+ <%= nested_maglev_block.wrapper_tag.span do %>
48
+ <%= nested_maglev_block.setting_tag :link, class: 'hover:opacity-75' %>
49
+ <% end %>
50
+ <% end %>
51
+ </nav>
52
+ <% end %>
53
+ <% end %>
54
+ </div>
55
+ </div>
56
+
57
+ <div class="pt-12 mt-12 border-t border-gray-800">
58
+ <div
59
+ class="text-sm text-gray-300 sm:items-center sm:justify-between sm:flex"
60
+ >
61
+ <%= maglev_section.setting_tag :quick_links, html_tag: 'div', class: 'flex gap-3' %>
62
+
63
+ <%= maglev_section.setting_tag :copyright, html_tag: 'p', class: 'mt-4 sm:mt-0' %>
64
+ </div>
65
+
66
+ <%= maglev_section.setting_tag :text, html_tag: 'p', class: 'mt-8 text-xs text-gray-500' %>
67
+ </div>
68
+ </div>
69
+ <% end %>
@@ -0,0 +1,29 @@
1
+ <%= maglev_section.wrapper_tag.footer class: 'bg-gray-100' do %>
2
+ <div
3
+ class="relative max-w-screen-xl px-4 py-16 mx-auto sm:px-6 lg:px-8 lg:pt-24"
4
+ >
5
+ <div class="lg:flex lg:items-end lg:justify-between">
6
+ <div>
7
+ <div class="flex justify-center lg:justify-start">
8
+ <%= maglev_section.setting_tag :logo, class: 'block max-h-14' %>
9
+ </div>
10
+
11
+ <%= maglev_section.setting_tag :text, html_tag: 'p', class: 'max-w-md mx-auto mt-6 leading-relaxed text-center text-gray-500 lg:text-left' %>
12
+ </div>
13
+
14
+ <nav class="mt-12 lg:mt-0" aria-labelledby="footer-navigation">
15
+ <h2 class="sr-only" id="footer-navigation">Footer navigation</h2>
16
+
17
+ <ul class="flex flex-wrap justify-center gap-6 lg:justify-end md:gap-8 lg:gap-12">
18
+ <% maglev_section.blocks.each do |maglev_block| %>
19
+ <%= maglev_block.wrapper_tag.li do %>
20
+ <%= maglev_block.setting_tag :link, class: 'text-gray-700 transition hover:text-gray-700/75' %>
21
+ <% end %>
22
+ <% end %>
23
+ </ul>
24
+ </nav>
25
+ </div>
26
+
27
+ <%= maglev_section.setting_tag :copyright, html_tag: 'p', class: 'mt-12 text-sm text-center text-gray-500 lg:text-right' %>
28
+ </div>
29
+ <% end %>
@@ -0,0 +1,62 @@
1
+ <%= maglev_section.wrapper_tag.header class: 'bg-white' do %>
2
+ <div
3
+ class="flex items-center h-16 max-w-screen-xl gap-8 px-4 mx-auto sm:px-6 lg:px-8"
4
+ >
5
+ <a class="block text-teal-600" href="/">
6
+ <span class="sr-only">Home</span>
7
+ <%= maglev_section.setting_tag :logo, class: 'max-h-10' %>
8
+ </a>
9
+
10
+ <div class="flex items-center justify-end flex-1 md:justify-between">
11
+ <nav class="hidden md:block" aria-labelledby="header-navigation">
12
+ <h2 class="sr-only" id="header-navigation">Header navigation</h2>
13
+
14
+ <ul class="flex items-center gap-6 text-sm">
15
+ <% maglev_section.blocks.each do |maglev_block| %>
16
+ <% next if maglev_block.type != 'link_group' %>
17
+ <% maglev_block.children.each do |nested_maglev_block| %>
18
+ <%= nested_maglev_block.wrapper_tag.li do %>
19
+ <%= nested_maglev_block.setting_tag :link, class: 'text-gray-500 transition hover:text-gray-500/75' %>
20
+ <% end %>
21
+ <% end %>
22
+ <% end %>
23
+ </ul>
24
+ </nav>
25
+
26
+ <div class="flex items-center gap-4">
27
+ <div class="sm:gap-4 sm:flex">
28
+ <% maglev_section.blocks.each do |maglev_block| %>
29
+ <% next if maglev_block.type != 'button_group' %>
30
+ <% maglev_block.children.each do |nested_maglev_block| %>
31
+ <%= nested_maglev_block.wrapper_tag.div do %>
32
+ <%= nested_maglev_block.setting_tag :button, class: 'block px-5 py-2.5 text-sm font-medium text-white bg-teal-600 hover:bg-teal-700 transition rounded-md' if nested_maglev_block.settings.is_primary.true? %>
33
+
34
+ <%= nested_maglev_block.setting_tag :button, class: 'hidden sm:block px-5 py-2.5 text-sm font-medium text-teal-600 bg-gray-100 rounded-md hover:text-teal-600/75 transition' if nested_maglev_block.settings.is_primary.false? %>
35
+ <% end %>
36
+ <% end %>
37
+ <% end %>
38
+ </div>
39
+
40
+ <button
41
+ class="block p-2.5 text-gray-600 transition bg-gray-100 rounded md:hidden hover:text-gray-600/75"
42
+ >
43
+ <span class="sr-only">Toggle menu</span>
44
+ <svg
45
+ xmlns="http://www.w3.org/2000/svg"
46
+ class="w-5 h-5"
47
+ fill="none"
48
+ viewBox="0 0 24 24"
49
+ stroke="currentColor"
50
+ stroke-width="2"
51
+ >
52
+ <path
53
+ stroke-linecap="round"
54
+ stroke-linejoin="round"
55
+ d="M4 6h16M4 12h16M4 18h16"
56
+ />
57
+ </svg>
58
+ </button>
59
+ </div>
60
+ </div>
61
+ </div>
62
+ <% end %>
@@ -0,0 +1,65 @@
1
+ <%= maglev_section.wrapper_tag.header class: 'bg-white' do %>
2
+ <div class="max-w-screen-xl px-4 mx-auto sm:px-6 lg:px-8">
3
+ <div class="flex items-center justify-between h-16">
4
+ <div class="md:flex md:items-center md:gap-12">
5
+ <a class="block text-teal-600" href="/">
6
+ <span class="sr-only">Home</span>
7
+ <%= maglev_section.setting_tag :logo, class: 'max-h-10' %>
8
+ </a>
9
+ </div>
10
+
11
+ <div class="hidden md:block">
12
+ <nav aria-labelledby="header-navigation">
13
+ <h2 class="sr-only" id="header-navigation">Header navigation</h2>
14
+
15
+ <ul class="flex items-center gap-6 text-sm">
16
+ <% maglev_section.blocks.each do |maglev_block| %>
17
+ <% next if maglev_block.type != 'link_group' %>
18
+ <% maglev_block.children.each do |nested_maglev_block| %>
19
+ <%= nested_maglev_block.wrapper_tag.li do %>
20
+ <%= nested_maglev_block.setting_tag :link, class: 'text-gray-500 transition hover:text-gray-500/75' %>
21
+ <% end %>
22
+ <% end %>
23
+ <% end %>
24
+ </ul>
25
+ </nav>
26
+ </div>
27
+
28
+ <div class="flex items-center gap-4">
29
+ <div class="sm:gap-4 sm:flex">
30
+ <% maglev_section.blocks.each do |maglev_block| %>
31
+ <% next if maglev_block.type != 'button_group' %>
32
+ <% maglev_block.children.each do |nested_maglev_block| %>
33
+ <%= nested_maglev_block.wrapper_tag.div do %>
34
+ <%= nested_maglev_block.setting_tag :button, class: 'block px-5 py-2.5 text-sm font-medium text-white bg-teal-600 hover:bg-teal-700 transition rounded-md' if nested_maglev_block.settings.is_primary.true? %>
35
+
36
+ <%= nested_maglev_block.setting_tag :button, class: 'hidden sm:block px-5 py-2.5 text-sm font-medium text-teal-600 bg-gray-100 rounded-md hover:text-teal-600/75 transition' if nested_maglev_block.settings.is_primary.false? %>
37
+ <% end %>
38
+ <% end %>
39
+ <% end %>
40
+ </div>
41
+
42
+ <div class="block md:hidden">
43
+ <button
44
+ class="p-2 text-gray-600 transition bg-gray-100 rounded hover:text-gray-600/75"
45
+ >
46
+ <svg
47
+ xmlns="http://www.w3.org/2000/svg"
48
+ class="w-5 h-5"
49
+ fill="none"
50
+ viewBox="0 0 24 24"
51
+ stroke="currentColor"
52
+ stroke-width="2"
53
+ >
54
+ <path
55
+ stroke-linecap="round"
56
+ stroke-linejoin="round"
57
+ d="M4 6h16M4 12h16M4 18h16"
58
+ />
59
+ </svg>
60
+ </button>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <% end %>