breeze_cms 1.0.3 → 1.1.0
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.
- checksums.yaml +4 -4
- data/app/assets/images/breeze/card_preview/big_card.png +0 -0
- data/app/assets/images/breeze/card_preview/card_image_wide.png +0 -0
- data/app/assets/stylesheets/breeze/breeze.css +301 -188
- data/app/assets/stylesheets/breeze/breeze.email.css +158 -39
- data/app/controllers/breeze/pages_controller.rb +8 -2
- data/app/controllers/breeze/translations_controller.rb +9 -2
- data/app/helpers/breeze/view_helper.rb +9 -3
- data/app/models/breeze/active_yaml.rb +1 -0
- data/app/models/breeze/page.rb +6 -0
- data/app/models/breeze/section.rb +5 -0
- data/app/models/breeze/translation.rb +15 -1
- data/app/models/breeze/view_base.rb +6 -1
- data/app/views/breeze/images/show.haml +4 -2
- data/app/views/breeze/pages/index.haml +5 -1
- data/app/views/breeze/translations/_row.haml +8 -0
- data/app/views/breeze/translations/show.haml +4 -4
- data/app/views/breeze/view/_form_section.haml +11 -9
- data/app/views/breeze/view/_section_faq.haml +11 -8
- data/app/views/breeze/view/_section_full_up.haml +3 -2
- data/app/views/breeze/view/_section_half_slider.haml +5 -3
- data/app/views/breeze/view/_section_slider.haml +6 -3
- data/app/views/breeze/view/cards/_big_card.haml +10 -0
- data/app/views/breeze/view/cards/_card_image_wide.haml +10 -0
- data/app/views/breeze/view/cards/_faq_item.haml +3 -3
- data/app/views/breeze/view/cards/_form_field.haml +4 -4
- data/app/views/layouts/breeze/_header.haml +1 -1
- data/config/breeze/card_styles.yml +43 -0
- data/config/breeze/option_definitions.yml +3 -3
- data/config/breeze/section_styles.yml +4 -0
- data/config/initializers/deepl.rb +5 -0
- data/config/routes.rb +5 -2
- data/lib/breeze/engine.rb +1 -1
- data/lib/breeze/version.rb +1 -1
- data/lib/breeze.rb +3 -1
- metadata +30 -5
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
%td.whitespace-nowrap.px-4.py-2.text-gray-700
|
|
24
24
|
= page.sections.length
|
|
25
25
|
%td.whitespace-nowrap.px-4.py-2.text-gray-700
|
|
26
|
-
|
|
26
|
+
.flex.justify-between
|
|
27
|
+
= link_to page.missing_translations , breeze.translation_path(page.id)
|
|
28
|
+
= form_tag( breeze.page_translate_path(page_id: page.id)) do
|
|
29
|
+
%button.ml-2.rounded.bg-amber-100.px-3.text-xs.font-medium.text-amber-700{:class => "py-1.5"}
|
|
30
|
+
Auto
|
|
27
31
|
%td.whitespace-nowrap.px-4.py-2.text-gray-700
|
|
28
32
|
=page.updated_by
|
|
29
33
|
- s = page.sections_update
|
|
@@ -5,14 +5,22 @@
|
|
|
5
5
|
%button{onclick: "button_ok(event)" , id: "#{trans.id}_idbutton"}
|
|
6
6
|
= trans.object.index_name
|
|
7
7
|
= trans.language
|
|
8
|
+
- if trans.is_manual?
|
|
9
|
+
.bg-orange-500.py-1.px-2.rounded-md
|
|
10
|
+
manual
|
|
8
11
|
.grow
|
|
9
12
|
.text{id: "#{trans.id}_headerfield" , onclick: "text_to_form(event)"}
|
|
10
13
|
= trans.header
|
|
14
|
+
= form_tag( breeze.translation_auto_path(translation_id: trans.id)) do
|
|
15
|
+
%button.button.change.mt-4
|
|
16
|
+
Auto
|
|
11
17
|
.grow
|
|
12
18
|
.text{id: "#{trans.id}_textfield" , onclick: "text_to_form(event)" }
|
|
13
19
|
= trans.text
|
|
14
20
|
.hidden.form{id: "#{trans.id}_form"}
|
|
21
|
+
= trans.object.header
|
|
15
22
|
%input.mt-1.w-full.rounded-md.border-gray-200.bg-white.text-sm.text-gray-800.shadow-sm{ id: "#{trans.id}_header", type: "text" , value: trans.header}
|
|
23
|
+
= trans.object.text
|
|
16
24
|
%textarea.mt-2.w-full.rounded-lg.border-gray-200.align-top.shadow-sm.sm:text-sm{ cols: 100 ,
|
|
17
25
|
id: "#{trans.id}_text" , rows: rows(trans.text) }
|
|
18
26
|
= trans.text
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
.mx-6.md:mx-12.mx-20.flex.h-16.items-center.gap-16
|
|
2
2
|
.text-xl.font-bold.text-gray-900
|
|
3
|
-
- previous = @page.previous_page
|
|
4
|
-
|
|
3
|
+
- if previous = @page.previous_page
|
|
4
|
+
= link_to( "<< previous (#{previous&.name})" , breeze.translation_path(id: previous&.id) )
|
|
5
5
|
.text-xl.font-bold.text-gray-900
|
|
6
6
|
Page
|
|
7
7
|
= @page.name
|
|
8
8
|
.text-xl.font-bold.text-gray-900
|
|
9
|
-
- next_page = @page.next_page
|
|
10
|
-
|
|
9
|
+
- if next_page = @page.next_page
|
|
10
|
+
= link_to( "(#{next_page.name}) next >> " , breeze.translation_path(id: next_page.id) )
|
|
11
11
|
|
|
12
12
|
-Breeze.language_strings.each do |lang|
|
|
13
13
|
-@page.sections.each do |section|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
.flex
|
|
3
|
-
.
|
|
4
|
-
%h1.text-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
%section{ options(section , :background , :margin) , id: section.type_id}
|
|
2
|
+
.flex{ options(section , :item_align )}
|
|
3
|
+
.px-4.py-4.md:py-10.lg:py-16.mx-5.md:mx-12.lg:mx-20{options(section , :text_align , :text_color)}
|
|
4
|
+
%h1.section_header.text-2xl.font-bold.tracking-tight.sm:text-4xl
|
|
5
|
+
= section.header_text(current_lang)
|
|
6
|
+
-unless( section.text_text(current_lang).blank?)
|
|
7
|
+
.section_text.mt-4.text-lg.pt-10{ prose_classes }
|
|
8
|
+
= markdown(section,current_lang)
|
|
9
|
+
.flex.items-center.justify-start.mx-10.md:mx-20.mb-20
|
|
8
10
|
.mx-auto.w-full.max-w-4xl{class: "max-w-[90%]"}
|
|
9
11
|
= form_tag( main_app.post_form_path , {class: "mt-10" }) do
|
|
10
12
|
- challenge = rand(8)
|
|
@@ -16,8 +18,8 @@
|
|
|
16
18
|
= render( template , card: card)
|
|
17
19
|
.grid.gap-6.md:grid-cols-2
|
|
18
20
|
.relative.z-0.mt-10
|
|
19
|
-
%input.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-
|
|
20
|
-
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-
|
|
21
|
+
%input.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-gray-900.focus:border-blue-600.focus:outline-none.focus:ring-0{:class => "py-2.5", :name => "challenge", :placeholder => " ", :type => "text"}
|
|
22
|
+
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-gray-500.duration-300.peer-placeholder-shown:translate-y-0.peer-placeholder-shown:scale-100.peer-focus:left-0.peer-focus:-translate-y-6.peer-focus:scale-75.peer-focus:text-blue-600.peer-focus:dark:text-blue-500{:class => "origin-[0]"}
|
|
21
23
|
= I18n.t("anti_bot")
|
|
22
24
|
= challenge
|
|
23
25
|
+
|
|
@@ -1,22 +1,25 @@
|
|
|
1
|
-
%section.m-6.md:m-12.lg:m-20{ options(section , :background , :text_color), id: section.type_id}
|
|
1
|
+
%section.m-6.md:m-12.lg:m-20{ options(section , :background , :text_color ), id: section.type_id}
|
|
2
2
|
.flex.justify-center
|
|
3
|
-
.px-4.py-4.md:py-10.lg:py-16{ options(section , :text_align)}
|
|
3
|
+
.px-4.py-4.md:py-10.lg:py-16{ options(section , :text_align , :margin)}
|
|
4
4
|
%h1.section_header.text-2xl.font-bold.tracking-tight.sm:text-4xl
|
|
5
5
|
= section.header_text(current_lang)
|
|
6
6
|
- unless section.text.blank?
|
|
7
7
|
.section_text.text-lg.pt-10{ prose_classes }
|
|
8
8
|
= markdown(section , current_lang)
|
|
9
9
|
- template = "breeze/view/cards/" + section.card_template
|
|
10
|
-
.
|
|
11
|
-
-
|
|
12
|
-
|
|
10
|
+
.flex.justify-center
|
|
11
|
+
.mt-8.space-y-4.md:mt-16{ options(section , :margin)}
|
|
12
|
+
- section.cards.each do |card|
|
|
13
|
+
= render( template , card: card )
|
|
13
14
|
|
|
14
15
|
:javascript
|
|
16
|
+
var section_id = "question#{section.id}" ;
|
|
15
17
|
// JavaScript to toggle the answers and rotate the arrows
|
|
16
|
-
document.querySelectorAll('[id^="question"]').forEach(function(button, index) {
|
|
18
|
+
document.querySelectorAll('[id^="question#{section.id}"]').forEach(function(button, index) {
|
|
17
19
|
button.addEventListener('click', function() {
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
+
var ind = button.id.split("_")[1];
|
|
21
|
+
var answer = document.getElementById('answer#{section.id}_' + ind);
|
|
22
|
+
var arrow = document.getElementById('arrow#{section.id}_' + ind);
|
|
20
23
|
|
|
21
24
|
if (answer.style.display === 'none' || answer.style.display === '') {
|
|
22
25
|
answer.style.display = 'block';
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
.px-4.py-4.md:py-10.lg:py-16.mx-5.md:mx-12.lg:mx-20{options(section , :text_align , :text_color)}
|
|
4
4
|
%h1.section_header.text-2xl.font-bold.tracking-tight.sm:text-4xl
|
|
5
5
|
= section.header_text(current_lang)
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
-unless( section.text_text(current_lang).blank?)
|
|
7
|
+
.section_text.mt-4.text-lg.pt-10{ prose_classes }
|
|
8
|
+
= markdown(section,current_lang)
|
|
8
9
|
=view_button(section , "my-4")
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
.swiper-button-prev
|
|
12
12
|
.swiper-button-next
|
|
13
13
|
|
|
14
|
-
.
|
|
15
|
-
.
|
|
14
|
+
.content-center.px-8.md:px-12.lg:px-16.lg:py-8{ background_option(section)}
|
|
15
|
+
.max-w-xl{options(section , :text_align , :text_color)}
|
|
16
16
|
%h2.section_header.text-2xl.font-bold.md:text-4xl
|
|
17
17
|
= section.header_text(current_lang)
|
|
18
18
|
.section_text.mt-8{ prose_classes }
|
|
@@ -30,7 +30,9 @@
|
|
|
30
30
|
loop: true,
|
|
31
31
|
speed: 1500,
|
|
32
32
|
breakpoints: breaks ,
|
|
33
|
-
autoplay:
|
|
33
|
+
autoplay: {
|
|
34
|
+
delay: #{1200 + rand(600)} ,
|
|
35
|
+
},
|
|
34
36
|
pagination: {
|
|
35
37
|
el: '.swiper-pagination',
|
|
36
38
|
},
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
.px-4.py-4.md:py-10.lg:py-16.mx-5.md:mx-12.lg:mx-20{options(section , :text_align , :text_color)}
|
|
5
5
|
%h1.section_header.text-2xl.font-bold.tracking-tight.sm:text-4xl
|
|
6
6
|
= section.header_text(current_lang)
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
-unless( section.text_text(current_lang).blank?)
|
|
8
|
+
.section_text.mt-4.text-lg.pt-10{ prose_classes }
|
|
9
|
+
= markdown(section,current_lang)
|
|
9
10
|
=view_button(section , "my-4")
|
|
10
11
|
.swiper{ class: "swiper-#{section.id}"}
|
|
11
12
|
.swiper-wrapper
|
|
@@ -29,7 +30,9 @@
|
|
|
29
30
|
loop: true,
|
|
30
31
|
speed: 1500,
|
|
31
32
|
breakpoints: breaks ,
|
|
32
|
-
autoplay:
|
|
33
|
+
autoplay: {
|
|
34
|
+
delay: #{slider_speed(section)} ,
|
|
35
|
+
},
|
|
33
36
|
pagination: {
|
|
34
37
|
el: '.swiper-pagination',
|
|
35
38
|
},
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
.flex.justify-center.flex-col.lg:flex-row{options(card , :margin , :background ), id: card.type_id}
|
|
2
|
+
.flex.justify-center.h-60.w-full.overflow-hidden{order_option(card, "lg:w-1/3")}
|
|
3
|
+
= image_for(card ,"object-cover")
|
|
4
|
+
.columns-1.md:columns-2.max-w-full.items-center.w-full.max-w.px-6.mx-auto.mt-6.lg:mt-0{text_color_option(card, "lg:w-2/3")}
|
|
5
|
+
-unless( card.header_text(current_lang).blank?)
|
|
6
|
+
%h2.section_header.text-4xl.font-bold.text-left.mb-4.lg:mb-8{text_align_option(card)}= card.header_text(current_lang)
|
|
7
|
+
-unless( card.text_text(current_lang).blank?)
|
|
8
|
+
.section_text.mt-3{ prose_classes }
|
|
9
|
+
= markdown(card,current_lang)
|
|
10
|
+
=view_button(card , "my-4")
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
%section.overflow-hidden.bg-cover.bg-no-repeat{bg(card , "h-full") , id: card.type_id}
|
|
2
|
+
.px-4.py-24.sm:px-6.lg:px-8
|
|
3
|
+
.flex{ item_align_option( card )}
|
|
4
|
+
.p-8.md:p-12.lg:px-16.lg:py-24{options(card , :shade )}
|
|
5
|
+
.mx-auto.max-w-xl{ options(card , :text_color, :text_align)}
|
|
6
|
+
%h2.section_header.text-2xl.font-bold.md:text-5xl
|
|
7
|
+
= card.header_text(current_lang)
|
|
8
|
+
.section_text.sm:mt-4.text-2xl{ prose_classes }
|
|
9
|
+
= markdown(card,current_lang)
|
|
10
|
+
=view_button(card , "my-4")
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
.transition-all.duration-200.bg-white.border.border-gray-200.shadow-lg.cursor-pointer.hover:bg-gray-50{options(card, :text_color)}
|
|
2
2
|
%button.flex.items-center.justify-between.w-full.px-4.py-5.sm:p-6{"data-state" => "closed",
|
|
3
|
-
:type => "button" , id: "question#{
|
|
3
|
+
:type => "button" , id: "question#{card.section.id}_#{card.id}" }
|
|
4
4
|
%span.flex.text-lg.font-semibold.text-black= card.header_text(current_lang)
|
|
5
|
-
%svg.w-6.h-6.text-gray-400{fill: :none, stroke: :currentColor, id: "arrow#{
|
|
5
|
+
%svg.w-6.h-6.text-gray-400{fill: :none, stroke: :currentColor, id: "arrow#{card.section.id}_#{card.id}",
|
|
6
6
|
:viewbox => "0 0 24 24", :xmlns => "http://www.w3.org/2000/svg"}
|
|
7
7
|
%path{:d => "M19 9l-7 7-7-7", "stroke-linecap" => "round", "stroke-linejoin" => "round", "stroke-width" => "2"}
|
|
8
|
-
.px-4.pb-5.sm:px-6.sm:pb-6{style: "display:none" , id: "answer#{
|
|
8
|
+
.px-4.pb-5.sm:px-6.sm:pb-6{style: "display:none" , id: "answer#{card.section.id}_#{card.id}"}
|
|
9
9
|
%p= markdown(card,current_lang)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
-if card.option("form_type") == "message"
|
|
2
2
|
.relative.z-0.col-span-2.mt-3
|
|
3
|
-
%textarea.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-
|
|
4
|
-
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-
|
|
3
|
+
%textarea.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-gray-900.focus:border-blue-600.focus:outline-none.focus:ring-0{:class => "py-2.5", :name => card.header_text(current_lang) , :placeholder => " ", :rows => "5"}=params[card.header_text(current_lang)]
|
|
4
|
+
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-gray-500.duration-300.peer-placeholder-shown:translate-y-0.peer-placeholder-shown:scale-100.peer-focus:left-0.peer-focus:-translate-y-6.peer-focus:scale-75.peer-focus:text-blue-600.peer-focus:dark:text-blue-500{:class => "origin-[0]"}= card.header_text(current_lang)
|
|
5
5
|
-else
|
|
6
6
|
.relative.z-0.mt-3
|
|
7
|
-
%input.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-
|
|
8
|
-
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-
|
|
7
|
+
%input.peer.block.w-full.appearance-none.border-0.border-b.border-gray-500.bg-transparent.px-0.text-gray-900.focus:border-blue-600.focus:outline-none.focus:ring-0{:class => "py-2.5", :name => card.header_text(current_lang), :placeholder => " " , "value" => params[card.header_text(current_lang)], :type => "text"}
|
|
8
|
+
%label.absolute.top-3.-z-10.-translate-y-6.scale-75.transform.text-gray-500.duration-300.peer-placeholder-shown:translate-y-0.peer-placeholder-shown:scale-100.peer-focus:left-0.peer-focus:-translate-y-6.peer-focus:scale-75.peer-focus:text-blue-600.peer-focus:dark:text-blue-500{:class => "origin-[0]"}= card_field_name(card)
|
|
@@ -43,6 +43,27 @@
|
|
|
43
43
|
- background
|
|
44
44
|
- text_color
|
|
45
45
|
- text_align
|
|
46
|
+
- :template: card_image_wide
|
|
47
|
+
:header: Full image header with adjustable text
|
|
48
|
+
:text: Really a section for use in slider, large picture background with
|
|
49
|
+
Header and text on top.
|
|
50
|
+
Adjustable text text alignment (left, center, right).
|
|
51
|
+
Text may be slightly shaded for readability,
|
|
52
|
+
text color can be changed too.
|
|
53
|
+
Image should be 1600 wide and can be between 400 and 900 for
|
|
54
|
+
different looks
|
|
55
|
+
:fields:
|
|
56
|
+
- header
|
|
57
|
+
- text
|
|
58
|
+
:options:
|
|
59
|
+
- fixed
|
|
60
|
+
- text_color
|
|
61
|
+
- text_align
|
|
62
|
+
- item_align
|
|
63
|
+
- image_align
|
|
64
|
+
- shade_color
|
|
65
|
+
- button_link
|
|
66
|
+
- button_text
|
|
46
67
|
- :template: card_large_image
|
|
47
68
|
:header: Image as is
|
|
48
69
|
:text: Image as is, ie no sizing
|
|
@@ -133,3 +154,25 @@
|
|
|
133
154
|
:options:
|
|
134
155
|
- background
|
|
135
156
|
- text_color
|
|
157
|
+
- :template: big_card
|
|
158
|
+
:header: Section card with one third image header and larger text area.
|
|
159
|
+
:text: Card to add text heacy content to slider. Not really in column
|
|
160
|
+
Smaller picture with Header and text offset that use more space.
|
|
161
|
+
Adjustable text alignment (left, center, right).
|
|
162
|
+
Text section may have background color.
|
|
163
|
+
Text color can be changed too
|
|
164
|
+
:fields:
|
|
165
|
+
- header
|
|
166
|
+
- text
|
|
167
|
+
:options:
|
|
168
|
+
:fields:
|
|
169
|
+
- header
|
|
170
|
+
- text
|
|
171
|
+
:options:
|
|
172
|
+
- margin
|
|
173
|
+
- order
|
|
174
|
+
- text_color
|
|
175
|
+
- text_align
|
|
176
|
+
- background
|
|
177
|
+
- button_link
|
|
178
|
+
- button_text
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
:id: 7
|
|
42
42
|
- :name: margin
|
|
43
43
|
:description: Most sections have standard margin of 20. This option makes it possible
|
|
44
|
-
to remove that
|
|
45
|
-
:values: none small medium large
|
|
44
|
+
to remove that. Also auto is possible with varying results (depends on content)
|
|
45
|
+
:values: none small medium large auto
|
|
46
46
|
:default: large
|
|
47
47
|
:id: 8
|
|
48
48
|
- :name: button_text
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
- :name: main_image
|
|
136
136
|
:description: Image that should be shown in posts (fb)
|
|
137
137
|
Should be the number of a breeze picture,
|
|
138
|
-
ie what is in the url eg 381 for /breeze/images/381
|
|
138
|
+
ie what is in the url eg 381 for /breeze/images/381
|
|
139
139
|
:values:
|
|
140
140
|
:default:
|
|
141
141
|
:id: 26
|
|
@@ -199,6 +199,9 @@
|
|
|
199
199
|
- handler
|
|
200
200
|
- background
|
|
201
201
|
- text_color
|
|
202
|
+
- margin
|
|
203
|
+
- text_align
|
|
204
|
+
- item_align
|
|
202
205
|
- :template: blog_header
|
|
203
206
|
:header: Start of blog, with image left or right
|
|
204
207
|
:text: Image on one side, header and text on the other.
|
|
@@ -225,6 +228,7 @@
|
|
|
225
228
|
- background
|
|
226
229
|
- text_color
|
|
227
230
|
- text_align
|
|
231
|
+
- margin
|
|
228
232
|
- :template: section_slider
|
|
229
233
|
:header: Slider with optional header with text
|
|
230
234
|
:text: Slider slides any (number) of cards. Columns means how many
|
data/config/routes.rb
CHANGED
|
@@ -9,6 +9,7 @@ Breeze::Engine.routes.draw do
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
resources :pages , except: [:edit , :new] , shallow: true do
|
|
12
|
+
post :translate
|
|
12
13
|
resources :sections , except: [:new] do
|
|
13
14
|
post :new #new is post because it already create the section
|
|
14
15
|
get :set_image
|
|
@@ -36,6 +37,8 @@ Breeze::Engine.routes.draw do
|
|
|
36
37
|
post :scale
|
|
37
38
|
end
|
|
38
39
|
|
|
39
|
-
resources :translations
|
|
40
|
-
|
|
40
|
+
resources :translations do
|
|
41
|
+
post :auto
|
|
42
|
+
end
|
|
43
|
+
|
|
41
44
|
end
|
data/lib/breeze/engine.rb
CHANGED
|
@@ -66,7 +66,7 @@ module ActionDispatch::Routing
|
|
|
66
66
|
Rails.application.routes.draw do
|
|
67
67
|
begin
|
|
68
68
|
if options[:root]
|
|
69
|
-
root "breeze/view#page" , id: 'index'
|
|
69
|
+
root "breeze/view#page" , id: 'index'
|
|
70
70
|
end
|
|
71
71
|
Breeze.language_strings.each do |lang|
|
|
72
72
|
get "/#{lang}/:id" , to: "breeze/view#page" , lang: lang , id: :id
|
data/lib/breeze/version.rb
CHANGED
data/lib/breeze.rb
CHANGED
|
@@ -44,7 +44,9 @@ module Breeze
|
|
|
44
44
|
@@margin = { "none" => "m-0",
|
|
45
45
|
"small" => " m-2 md:m-4 lg:6 xl:m-8",
|
|
46
46
|
"medium" => "m-5 md:m-8 lg:10 xl:m-14",
|
|
47
|
-
"large" => " m-8 md:m-12 lg:16 xl:m-20",
|
|
47
|
+
"large" => " m-8 md:m-12 lg:16 xl:m-20",
|
|
48
|
+
"auto" => "mx-auto" ,
|
|
49
|
+
}
|
|
48
50
|
|
|
49
51
|
# background colors
|
|
50
52
|
mattr_accessor :background
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: breeze_cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Torsten
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|
|
@@ -161,14 +161,14 @@ dependencies:
|
|
|
161
161
|
requirements:
|
|
162
162
|
- - "~>"
|
|
163
163
|
- !ruby/object:Gem::Version
|
|
164
|
-
version: '
|
|
164
|
+
version: '3.3'
|
|
165
165
|
type: :runtime
|
|
166
166
|
prerelease: false
|
|
167
167
|
version_requirements: !ruby/object:Gem::Requirement
|
|
168
168
|
requirements:
|
|
169
169
|
- - "~>"
|
|
170
170
|
- !ruby/object:Gem::Version
|
|
171
|
-
version: '
|
|
171
|
+
version: '3.3'
|
|
172
172
|
- !ruby/object:Gem::Dependency
|
|
173
173
|
name: rabl
|
|
174
174
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -183,6 +183,26 @@ dependencies:
|
|
|
183
183
|
- - "~>"
|
|
184
184
|
- !ruby/object:Gem::Version
|
|
185
185
|
version: '0.15'
|
|
186
|
+
- !ruby/object:Gem::Dependency
|
|
187
|
+
name: deepl-rb
|
|
188
|
+
requirement: !ruby/object:Gem::Requirement
|
|
189
|
+
requirements:
|
|
190
|
+
- - "~>"
|
|
191
|
+
- !ruby/object:Gem::Version
|
|
192
|
+
version: '3.6'
|
|
193
|
+
- - ">="
|
|
194
|
+
- !ruby/object:Gem::Version
|
|
195
|
+
version: 3.6.1
|
|
196
|
+
type: :runtime
|
|
197
|
+
prerelease: false
|
|
198
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
199
|
+
requirements:
|
|
200
|
+
- - "~>"
|
|
201
|
+
- !ruby/object:Gem::Version
|
|
202
|
+
version: '3.6'
|
|
203
|
+
- - ">="
|
|
204
|
+
- !ruby/object:Gem::Version
|
|
205
|
+
version: 3.6.1
|
|
186
206
|
description: |-
|
|
187
207
|
Breeze integrates a content editor into the rails workflow and lets developers define the layouts they create. It renders pages, that are made up of sections, that may include cards. Breeze also manages images, even lets you edit them, and manages translations when you go international.
|
|
188
208
|
All data is stored in yaml files, images as assets.
|
|
@@ -197,10 +217,12 @@ files:
|
|
|
197
217
|
- Rakefile
|
|
198
218
|
- app/assets/config/breeze_manifest.js
|
|
199
219
|
- app/assets/images/breeze/breeze_logo.png
|
|
220
|
+
- app/assets/images/breeze/card_preview/big_card.png
|
|
200
221
|
- app/assets/images/breeze/card_preview/card_feature_box.png
|
|
201
222
|
- app/assets/images/breeze/card_preview/card_feature_normal.png
|
|
202
223
|
- app/assets/images/breeze/card_preview/card_full_image.png
|
|
203
224
|
- app/assets/images/breeze/card_preview/card_gap_square.png
|
|
225
|
+
- app/assets/images/breeze/card_preview/card_image_wide.png
|
|
204
226
|
- app/assets/images/breeze/card_preview/card_large_image.png
|
|
205
227
|
- app/assets/images/breeze/card_preview/card_normal_round.png
|
|
206
228
|
- app/assets/images/breeze/card_preview/card_normal_square.png
|
|
@@ -310,10 +332,12 @@ files:
|
|
|
310
332
|
- app/views/breeze/view/_section_small_image.haml
|
|
311
333
|
- app/views/breeze/view/_section_spacer.haml
|
|
312
334
|
- app/views/breeze/view/_section_text.haml
|
|
335
|
+
- app/views/breeze/view/cards/_big_card.haml
|
|
313
336
|
- app/views/breeze/view/cards/_card_feature_box.haml
|
|
314
337
|
- app/views/breeze/view/cards/_card_feature_normal.haml
|
|
315
338
|
- app/views/breeze/view/cards/_card_full_image.haml
|
|
316
339
|
- app/views/breeze/view/cards/_card_gap_square.haml
|
|
340
|
+
- app/views/breeze/view/cards/_card_image_wide.haml
|
|
317
341
|
- app/views/breeze/view/cards/_card_large_image.haml
|
|
318
342
|
- app/views/breeze/view/cards/_card_normal_round.haml
|
|
319
343
|
- app/views/breeze/view/cards/_card_normal_square.haml
|
|
@@ -333,6 +357,7 @@ files:
|
|
|
333
357
|
- config/breeze/page_styles.yml
|
|
334
358
|
- config/breeze/section_styles.yml
|
|
335
359
|
- config/initializers/breeze.rb
|
|
360
|
+
- config/initializers/deepl.rb
|
|
336
361
|
- config/initializers/rabl.rb
|
|
337
362
|
- config/initializers/simple_form_tailwind.rb
|
|
338
363
|
- config/locales/breeze_en.yml
|
|
@@ -371,7 +396,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
371
396
|
- !ruby/object:Gem::Version
|
|
372
397
|
version: '0'
|
|
373
398
|
requirements: []
|
|
374
|
-
rubygems_version:
|
|
399
|
+
rubygems_version: 4.0.17
|
|
375
400
|
specification_version: 4
|
|
376
401
|
summary: The tailwind based, developers CMS
|
|
377
402
|
test_files: []
|