maglevcms-hyperui-kit 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +42 -0
  4. data/Rakefile +42 -0
  5. data/lib/generators/maglev/hyperui/install/USAGE +7 -0
  6. data/lib/generators/maglev/hyperui/install/install_generator.rb +13 -0
  7. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/banner/banner_01.yml +97 -0
  8. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/banner/banner_02.yml +97 -0
  9. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/banner/banner_03.yml +102 -0
  10. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/cta/cta_01.yml +73 -0
  11. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/cta/cta_02.yml +73 -0
  12. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/cta/cta_03.yml +79 -0
  13. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/faq/faq_01.yml +64 -0
  14. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/faq/faq_02.yml +64 -0
  15. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/faq/faq_03.yml +73 -0
  16. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/feature/feature_01.yml +105 -0
  17. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/feature/feature_02.yml +127 -0
  18. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/feature/feature_03.yml +127 -0
  19. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/footer/footer_01.yml +220 -0
  20. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/footer/footer_02.yml +232 -0
  21. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/footer/footer_03.yml +217 -0
  22. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/footer/footer_04.yml +94 -0
  23. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/nav/nav_01.yml +135 -0
  24. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/nav/nav_02.yml +135 -0
  25. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/nav/nav_03.yml +135 -0
  26. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/nav/nav_04.yml +129 -0
  27. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/review/review_01.yml +105 -0
  28. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/stat/stat_01.yml +85 -0
  29. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/testimonial/testimonial_01.yml +69 -0
  30. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/testimonial/testimonial_02.yml +107 -0
  31. data/lib/generators/maglev/hyperui/install/templates/app/theme/sections/testimonial/testimonial_03.yml +103 -0
  32. data/lib/generators/maglev/hyperui/install/templates/app/theme/theme.yml +172 -0
  33. data/lib/generators/maglev/hyperui/install/templates/app/views/maglev/editor/_header.html.erb +2 -0
  34. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/layout.html.erb +24 -0
  35. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/banner/banner_01.html.erb +20 -0
  36. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/banner/banner_02.html.erb +23 -0
  37. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/banner/banner_03.html.erb +25 -0
  38. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/cta/cta_01.html.erb +15 -0
  39. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/cta/cta_02.html.erb +38 -0
  40. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/cta/cta_03.html.erb +23 -0
  41. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/faq/faq_01.html.erb +30 -0
  42. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/faq/faq_02.html.erb +30 -0
  43. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/faq/faq_03.html.erb +49 -0
  44. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/feature/feature_01.html.erb +27 -0
  45. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/feature/feature_02.html.erb +29 -0
  46. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/feature/feature_03.html.erb +26 -0
  47. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/footer/footer_01.html.erb +60 -0
  48. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/footer/footer_02.html.erb +47 -0
  49. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/footer/footer_03.html.erb +69 -0
  50. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/footer/footer_04.html.erb +29 -0
  51. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/nav/nav_01.html.erb +62 -0
  52. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/nav/nav_02.html.erb +65 -0
  53. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/nav/nav_03.html.erb +65 -0
  54. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/nav/nav_04.html.erb +65 -0
  55. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/review/_grades.html.erb +25 -0
  56. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/review/review_01.html.erb +39 -0
  57. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/stat/stat_01.html.erb +21 -0
  58. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/testimonial/testimonial_01.html.erb +20 -0
  59. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/testimonial/testimonial_02.html.erb +33 -0
  60. data/lib/generators/maglev/hyperui/install/templates/app/views/theme/sections/testimonial/testimonial_03.html.erb +24 -0
  61. data/lib/generators/maglev/hyperui/install/templates/public/banner/banner_01.jpg +0 -0
  62. data/lib/generators/maglev/hyperui/install/templates/public/banner/banner_02.jpg +0 -0
  63. data/lib/generators/maglev/hyperui/install/templates/public/banner/banner_03.jpg +0 -0
  64. data/lib/generators/maglev/hyperui/install/templates/public/cta/cta_01.jpg +0 -0
  65. data/lib/generators/maglev/hyperui/install/templates/public/cta/cta_02.jpg +0 -0
  66. data/lib/generators/maglev/hyperui/install/templates/public/cta/cta_03.jpg +0 -0
  67. data/lib/generators/maglev/hyperui/install/templates/public/faq/faq_01.jpg +0 -0
  68. data/lib/generators/maglev/hyperui/install/templates/public/faq/faq_02.jpg +0 -0
  69. data/lib/generators/maglev/hyperui/install/templates/public/faq/faq_03.jpg +0 -0
  70. data/lib/generators/maglev/hyperui/install/templates/public/feature/feature_01.jpg +0 -0
  71. data/lib/generators/maglev/hyperui/install/templates/public/feature/feature_02.jpg +0 -0
  72. data/lib/generators/maglev/hyperui/install/templates/public/feature/feature_03.jpg +0 -0
  73. data/lib/generators/maglev/hyperui/install/templates/public/footer/footer_01.jpg +0 -0
  74. data/lib/generators/maglev/hyperui/install/templates/public/footer/footer_02.jpg +0 -0
  75. data/lib/generators/maglev/hyperui/install/templates/public/footer/footer_03.jpg +0 -0
  76. data/lib/generators/maglev/hyperui/install/templates/public/footer/footer_04.jpg +0 -0
  77. data/lib/generators/maglev/hyperui/install/templates/public/image-placeholder.jpg +0 -0
  78. data/lib/generators/maglev/hyperui/install/templates/public/nav/nav_01.jpg +0 -0
  79. data/lib/generators/maglev/hyperui/install/templates/public/nav/nav_02.jpg +0 -0
  80. data/lib/generators/maglev/hyperui/install/templates/public/nav/nav_03.jpg +0 -0
  81. data/lib/generators/maglev/hyperui/install/templates/public/nav/nav_04.jpg +0 -0
  82. data/lib/generators/maglev/hyperui/install/templates/public/review/review_01.jpg +0 -0
  83. data/lib/generators/maglev/hyperui/install/templates/public/stat/stat_01.jpg +0 -0
  84. data/lib/generators/maglev/hyperui/install/templates/public/testimonial/testimonial_01.jpg +0 -0
  85. data/lib/generators/maglev/hyperui/install/templates/public/testimonial/testimonial_02.jpg +0 -0
  86. data/lib/generators/maglev/hyperui/install/templates/public/testimonial/testimonial_03.jpg +0 -0
  87. data/lib/generators/maglev/hyperui/install/templates/public/theme/banner/banner_01.jpg +0 -0
  88. data/lib/generators/maglev/hyperui/install/templates/public/theme/banner/banner_02.jpg +0 -0
  89. data/lib/generators/maglev/hyperui/install/templates/public/theme/banner/banner_03.jpg +0 -0
  90. data/lib/generators/maglev/hyperui/install/templates/public/theme/cta/cta_01.jpg +0 -0
  91. data/lib/generators/maglev/hyperui/install/templates/public/theme/cta/cta_02.jpg +0 -0
  92. data/lib/generators/maglev/hyperui/install/templates/public/theme/cta/cta_03.jpg +0 -0
  93. data/lib/generators/maglev/hyperui/install/templates/public/theme/faq/faq_01.jpg +0 -0
  94. data/lib/generators/maglev/hyperui/install/templates/public/theme/faq/faq_02.jpg +0 -0
  95. data/lib/generators/maglev/hyperui/install/templates/public/theme/faq/faq_03.jpg +0 -0
  96. data/lib/generators/maglev/hyperui/install/templates/public/theme/feature/feature_01.jpg +0 -0
  97. data/lib/generators/maglev/hyperui/install/templates/public/theme/feature/feature_02.jpg +0 -0
  98. data/lib/generators/maglev/hyperui/install/templates/public/theme/feature/feature_03.jpg +0 -0
  99. data/lib/generators/maglev/hyperui/install/templates/public/theme/footer/footer_01.jpg +0 -0
  100. data/lib/generators/maglev/hyperui/install/templates/public/theme/footer/footer_02.jpg +0 -0
  101. data/lib/generators/maglev/hyperui/install/templates/public/theme/footer/footer_03.jpg +0 -0
  102. data/lib/generators/maglev/hyperui/install/templates/public/theme/footer/footer_04.jpg +0 -0
  103. data/lib/generators/maglev/hyperui/install/templates/public/theme/image-placeholder.jpg +0 -0
  104. data/lib/generators/maglev/hyperui/install/templates/public/theme/logoipsum-white.svg +1 -0
  105. data/lib/generators/maglev/hyperui/install/templates/public/theme/logoipsum.svg +1 -0
  106. data/lib/generators/maglev/hyperui/install/templates/public/theme/marie-curie.jpg +0 -0
  107. data/lib/generators/maglev/hyperui/install/templates/public/theme/nav/nav_01.jpg +0 -0
  108. data/lib/generators/maglev/hyperui/install/templates/public/theme/nav/nav_02.jpg +0 -0
  109. data/lib/generators/maglev/hyperui/install/templates/public/theme/nav/nav_03.jpg +0 -0
  110. data/lib/generators/maglev/hyperui/install/templates/public/theme/nav/nav_04.jpg +0 -0
  111. data/lib/generators/maglev/hyperui/install/templates/public/theme/review/review_01.jpg +0 -0
  112. data/lib/generators/maglev/hyperui/install/templates/public/theme/stat/stat_01.jpg +0 -0
  113. data/lib/generators/maglev/hyperui/install/templates/public/theme/testimonial/testimonial_01.jpg +0 -0
  114. data/lib/generators/maglev/hyperui/install/templates/public/theme/testimonial/testimonial_02.jpg +0 -0
  115. data/lib/generators/maglev/hyperui/install/templates/public/theme/testimonial/testimonial_03.jpg +0 -0
  116. data/lib/maglev/hyperui/railtie.rb +6 -0
  117. data/lib/maglev/hyperui/version.rb +5 -0
  118. data/lib/maglev/hyperui.rb +8 -0
  119. metadata +176 -0
@@ -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 %>
@@ -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="flex-1 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="md:flex md:items-center md:gap-12">
12
+ <nav class="hidden md:block" 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
+
27
+ <div class="flex items-center gap-4">
28
+ <div class="sm:gap-4 sm:flex">
29
+ <% maglev_section.blocks.each do |maglev_block| %>
30
+ <% next if maglev_block.type != 'button_group' %>
31
+ <% maglev_block.children.each do |nested_maglev_block| %>
32
+ <%= nested_maglev_block.wrapper_tag.div do %>
33
+ <%= 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? %>
34
+
35
+ <%= 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? %>
36
+ <% end %>
37
+ <% end %>
38
+ <% end %>
39
+ </div>
40
+
41
+ <div class="block md:hidden">
42
+ <button
43
+ class="p-2 text-gray-600 transition bg-gray-100 rounded hover:text-gray-600/75"
44
+ >
45
+ <svg
46
+ xmlns="http://www.w3.org/2000/svg"
47
+ class="w-5 h-5"
48
+ fill="none"
49
+ viewBox="0 0 24 24"
50
+ stroke="currentColor"
51
+ stroke-width="2"
52
+ >
53
+ <path
54
+ stroke-linecap="round"
55
+ stroke-linejoin="round"
56
+ d="M4 6h16M4 12h16M4 18h16"
57
+ />
58
+ </svg>
59
+ </button>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <% end %>
@@ -0,0 +1,65 @@
1
+ <%= maglev_section.wrapper_tag.header class: 'border-b border-gray-100' do %>
2
+ <div
3
+ class="flex items-center justify-between h-16 mx-auto max-w-screen-2xl sm:px-6 lg:px-8"
4
+ >
5
+ <div class="flex items-center">
6
+ <button type="button" class="p-2 sm:mr-4 lg:hidden">
7
+ <svg
8
+ class="w-6 h-6"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ fill="none"
11
+ viewBox="0 0 24 24"
12
+ stroke="currentColor"
13
+ >
14
+ <path
15
+ stroke-linecap="round"
16
+ stroke-linejoin="round"
17
+ stroke-width="2"
18
+ d="M4 6h16M4 12h16M4 18h16"
19
+ />
20
+ </svg>
21
+ </button>
22
+
23
+ <a href="/" class="flex">
24
+ <%= maglev_section.setting_tag :logo, class: 'max-h-10' %>
25
+ </a>
26
+ </div>
27
+
28
+ <div class="flex items-center justify-end flex-1">
29
+ <nav
30
+ class="hidden lg:uppercase lg:text-gray-500 lg:tracking-wide lg:font-bold lg:text-xs lg:gap-4 lg:flex"
31
+ >
32
+ <% maglev_section.blocks.each do |maglev_block| %>
33
+ <% next if maglev_block.type != 'link_group' %>
34
+ <% maglev_block.children.each do |nested_maglev_block| %>
35
+ <%= nested_maglev_block.wrapper_tag.span do %>
36
+ <%= nested_maglev_block.setting_tag :link, class: 'block h-16 leading-[4rem] border-b-4 border-transparent hover:text-red-700 hover:border-current' %>
37
+ <% end %>
38
+ <% end %>
39
+ <% end %>
40
+ </nav>
41
+
42
+ <div class="flex items-center ml-8">
43
+ <div
44
+ class="flex items-center border-gray-100 divide-x divide-gray-100 border-x"
45
+ >
46
+ <% maglev_section.blocks.each do |maglev_block| %>
47
+ <% next if maglev_block.type != 'button_group' %>
48
+ <% maglev_block.children.each do |nested_maglev_block| %>
49
+ <%= nested_maglev_block.wrapper_tag.span do %>
50
+ <a
51
+ href="<%= nested_maglev_block.settings.button.href %>"
52
+ <% if nested_maglev_block.settings.button.open_new_window? %>target="_blank"<% end %>
53
+ class="flex items-center h-16 px-6 border-b-4 border-transparent hover:border-red-700"
54
+ >
55
+ <%= nested_maglev_block.setting_tag :icon %>
56
+ <span class="sr-only"><%= nested_maglev_block.settings.button.text %></span>
57
+ </a>
58
+ <% end %>
59
+ <% end %>
60
+ <% end %>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <% grade.times do %>
2
+ <svg
3
+ xmlns="http://www.w3.org/2000/svg"
4
+ class="w-5 h-5 text-yellow-400"
5
+ viewBox="0 0 20 20"
6
+ fill="currentColor"
7
+ >
8
+ <path
9
+ d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
10
+ />
11
+ </svg>
12
+ <% end %>
13
+
14
+ <% (5 - grade).times do %>
15
+ <svg
16
+ xmlns="http://www.w3.org/2000/svg"
17
+ class="w-5 h-5 text-gray-200"
18
+ viewBox="0 0 20 20"
19
+ fill="currentColor"
20
+ >
21
+ <path
22
+ d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"
23
+ />
24
+ </svg>
25
+ <% end %>
@@ -0,0 +1,39 @@
1
+ <%= maglev_section.wrapper_tag.section do %>
2
+ <div class="max-w-screen-xl px-4 py-8 mx-auto sm:px-6 lg:px-8">
3
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-xl font-bold sm:text-2xl' %>
4
+
5
+ <div class="flex items-center mt-4">
6
+ <%= maglev_section.setting_tag :grade, html_tag: 'p', class: 'text-3xl font-medium' %>
7
+
8
+ <div class="ml-4">
9
+ <div class="flex -ml-1">
10
+ <%= render 'theme/sections/review/grades', grade: maglev_section.settings.grade.to_s.to_f.round %>
11
+ </div>
12
+
13
+ <p class="mt-0.5 text-xs text-gray-500">
14
+ Based on <%= pluralize(maglev_section.settings.number_of_reviews, 'review') %>
15
+ </p>
16
+ </div>
17
+ </div>
18
+
19
+ <div class="grid grid-cols-1 mt-8 lg:grid-cols-2 gap-x-16 gap-y-12">
20
+ <% maglev_section.blocks.each do |maglev_block| %>
21
+ <%= maglev_block.wrapper_tag.blockquote do %>
22
+ <header class="sm:items-center sm:flex">
23
+ <div class="flex -ml-1">
24
+ <%= render 'theme/sections/review/grades', grade: maglev_block.settings.grade.to_s.to_f.round %>
25
+ </div>
26
+
27
+ <%= maglev_block.setting_tag :highlight, html_tag: 'p', class: 'mt-2 font-medium sm:ml-4 sm:mt-0' %>
28
+ </header>
29
+
30
+ <%= maglev_block.setting_tag :testimonial, html_tag: 'p', class: 'mt-2 text-gray-700' %>
31
+
32
+ <footer class="mt-4">
33
+ <%= maglev_block.setting_tag :person, html_tag: 'p', class: 'text-xs text-gray-500' %>
34
+ </footer>
35
+ <% end %>
36
+ <% end %>
37
+ </div>
38
+ </div>
39
+ <% end %>
@@ -0,0 +1,21 @@
1
+ <%= maglev_section.wrapper_tag.section class: 'bg-white' do %>
2
+ <div class="max-w-screen-xl px-4 py-12 mx-auto md:py-16 sm:px-6 lg:px-8">
3
+ <div class="max-w-3xl mx-auto text-center">
4
+ <%= maglev_section.setting_tag :title, html_tag: 'h2', class: 'text-3xl font-bold text-gray-900 sm:text-4xl' %>
5
+
6
+ <%= maglev_section.setting_tag :body, html_tag: 'p', class: 'mt-4 text-gray-500 sm:text-xl' %>
7
+ </div>
8
+
9
+ <div class="mt-8 sm:mt-12">
10
+ <dl class="grid grid-cols-1 gap-4 sm:grid-cols-3">
11
+ <% maglev_section.blocks.each do |maglev_block| %>
12
+ <%= maglev_block.wrapper_tag.div class: 'flex flex-col px-4 py-8 text-center border border-gray-100 rounded-lg' do %>
13
+ <%= maglev_block.setting_tag :legend, html_tag: 'dt', class: 'order-last text-lg font-medium text-gray-500' %>
14
+
15
+ <%= maglev_block.setting_tag :number, html_tag: 'dd', class: 'text-4xl font-extrabold text-blue-600 md:text-5xl' %>
16
+ <% end %>
17
+ <% end %>
18
+ </dl>
19
+ </div>
20
+ </div>
21
+ <% end %>