spree_storefront 5.0.6 → 5.1.0.beta
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/controllers/concerns/spree/locale_urls.rb +13 -1
- data/app/controllers/concerns/spree/storefront/devise_concern.rb +0 -6
- data/app/controllers/spree/addresses_controller.rb +5 -1
- data/app/controllers/spree/checkout_controller.rb +27 -9
- data/app/controllers/spree/contacts_controller.rb +1 -1
- data/app/controllers/spree/line_items_controller.rb +7 -14
- data/app/controllers/spree/products_controller.rb +2 -4
- data/app/controllers/spree/search_controller.rb +1 -1
- data/app/controllers/spree/store_controller.rb +31 -26
- data/app/controllers/spree/taxons_controller.rb +1 -3
- data/app/helpers/spree/analytics_helper.rb +6 -2
- data/app/helpers/spree/cart_helper.rb +1 -1
- data/app/helpers/spree/checkout_analytics_helper.rb +1 -1
- data/app/helpers/spree/checkout_helper.rb +1 -1
- data/app/helpers/spree/filters_helper.rb +2 -6
- data/app/helpers/spree/page_helper.rb +15 -0
- data/app/helpers/spree/products_helper.rb +14 -6
- data/app/helpers/spree/storefront_helper.rb +14 -10
- data/app/helpers/spree/storefront_locale_helper.rb +3 -0
- data/app/helpers/spree/theme_helper.rb +76 -0
- data/app/helpers/spree/wishlist_helper.rb +3 -0
- data/app/javascript/spree/storefront/controllers/card_validation_controller.js +0 -2
- data/app/javascript/spree/storefront/controllers/cart_controller.js +0 -5
- data/app/javascript/spree/storefront/controllers/product_form_controller.js +21 -18
- data/app/javascript/spree/storefront/controllers/slideover_controller.js +2 -0
- data/app/views/devise/passwords/edit.html.erb +1 -1
- data/app/views/devise/registrations/_form.html.erb +2 -2
- data/app/views/devise/registrations/new.html.erb +1 -1
- data/app/views/devise/sessions/new.html.erb +16 -0
- data/app/views/devise/shared/_links.html.erb +3 -3
- data/app/views/spree/account/wished_items/create.turbo_stream.erb +1 -0
- data/app/views/spree/addresses/edit.html.erb +6 -2
- data/app/views/spree/addresses/new.html.erb +3 -0
- data/app/views/spree/checkout/_address.html.erb +4 -3
- data/app/views/spree/checkout/_coupon_code.html.erb +1 -1
- data/app/views/spree/checkout/_delivery.html.erb +2 -1
- data/app/views/spree/checkout/_missing_all_line_items.html.erb +2 -2
- data/app/views/spree/checkout/_payment_methods.html.erb +1 -1
- data/app/views/spree/checkout/_summary.html.erb +44 -45
- data/app/views/spree/checkout/edit.html.erb +5 -3
- data/app/views/spree/checkout/payment/_gateway.html.erb +12 -12
- data/app/views/spree/line_items/create.turbo_stream.erb +1 -0
- data/app/views/spree/line_items/destroy.turbo_stream.erb +10 -14
- data/app/views/spree/products/show.html.erb +2 -1
- data/app/views/spree/seo/sitemap.xml.erb +2 -2
- data/app/views/themes/default/spree/account/_order.html.erb +5 -5
- data/app/views/themes/default/spree/account/addresses/_address.html.erb +14 -4
- data/app/views/themes/default/spree/account/addresses/_edit_address_modal.html.erb +38 -0
- data/app/views/themes/default/spree/account/addresses/_new_address_modal.html.erb +38 -0
- data/app/views/themes/default/spree/account/addresses/index.html.erb +22 -2
- data/app/views/themes/default/spree/checkout/complete.html.erb +1 -1
- data/app/views/themes/default/spree/orders/_line_item.html.erb +3 -3
- data/app/views/themes/default/spree/orders/edit.html.erb +2 -0
- data/app/views/themes/default/spree/page_sections/_featured_product.html.erb +1 -1
- data/app/views/themes/default/spree/page_sections/_featured_taxon.html.erb +2 -2
- data/app/views/themes/default/spree/page_sections/_featured_taxons.html.erb +5 -4
- data/app/views/themes/default/spree/policies/show.html.erb +7 -11
- data/app/views/themes/default/spree/posts/_post.html.erb +11 -20
- data/app/views/themes/default/spree/products/_add_to_cart_button.html.erb +12 -6
- data/app/views/themes/default/spree/products/_details.html.erb +1 -1
- data/app/views/themes/default/spree/products/_json_ld.html.erb +1 -1
- data/app/views/themes/default/spree/products/_json_ld_variant.html.erb +1 -1
- data/app/views/themes/default/spree/products/_media_gallery.html.erb +2 -1
- data/app/views/themes/default/spree/products/filters/_availability.html.erb +1 -1
- data/app/views/themes/default/spree/products/filters/_price.html.erb +4 -4
- data/app/views/themes/default/spree/products/filters/_taxons.erb +5 -5
- data/app/views/themes/default/spree/shared/_account_pane.html.erb +1 -1
- data/app/views/themes/default/spree/shared/_cart_icon.html.erb +2 -4
- data/app/views/themes/default/spree/shared/_cart_pane.html.erb +3 -6
- data/app/views/themes/default/spree/shared/_error_messages.html.erb +1 -1
- data/app/views/themes/default/spree/shared/_meta_tags.html.erb +2 -2
- data/config/locales/en.yml +0 -8
- data/lib/generators/spree/storefront/theme/templates/model.rb.tt +4 -91
- data/lib/spree/storefront/engine.rb +7 -1
- metadata +8 -7
- data/app/views/themes/default/spree/page_sections/_featured_posts.html.erb +0 -56
@@ -1,6 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<%= turbo_frame_tag "cart-icon-#{item_count}", target: '_top' do %>
|
1
|
+
<%= turbo_frame_tag "cart-icon-#{current_order&.item_count}", target: '_top' do %>
|
4
2
|
<%= link_to spree.cart_path,
|
5
3
|
class: 'relative block w-6',
|
6
4
|
id: "cart-pane-link",
|
@@ -8,7 +6,7 @@
|
|
8
6
|
onclick: 'event.preventDefault()' do %>
|
9
7
|
<%= render 'spree/shared/icons/cart' %>
|
10
8
|
<span class='cart-counter w-full text-[8px] font-extrabold absolute top-[10px] text-center'>
|
11
|
-
<%= item_count if item_count&.positive? %>
|
9
|
+
<%= current_order.item_count if current_order&.item_count&.positive? %>
|
12
10
|
</span>
|
13
11
|
<span class='sr-only'><%= Spree.t('storefront.cart.items_in_cart') %>, <%= Spree.t('storefront.cart.view_bag') %></span>
|
14
12
|
<% end %>
|
@@ -1,6 +1,3 @@
|
|
1
|
-
<% order ||= current_order %>
|
2
|
-
<% item_count ||= order&.item_count %>
|
3
|
-
|
4
1
|
<!-- begin sidebar/slideover -->
|
5
2
|
<div
|
6
3
|
id="cart-pane"
|
@@ -24,17 +21,17 @@
|
|
24
21
|
) do %>
|
25
22
|
<%= render 'spree/shared/icons/close' %>
|
26
23
|
<% end %>
|
27
|
-
<span class='text-xl font-medium uppercase leading-
|
24
|
+
<span class='text-xl font-medium uppercase leading-loose'><%= Spree.t(:cart) %></span>
|
28
25
|
<span class='relative block w-6'>
|
29
26
|
<%= render 'spree/shared/icons/cart' %>
|
30
27
|
<span class='cart-counter w-full text-[8px] font-extrabold absolute top-[10px] text-center'>
|
31
|
-
<%= item_count if
|
28
|
+
<%= current_order.item_count if current_order.present? && current_order.item_count.to_i > 0 %>
|
32
29
|
</span>
|
33
30
|
<span class='sr-only'><%= Spree.t('storefront.cart.items_in_cart') %>, <%= Spree.t('storefront.cart.view_bag') %></span>
|
34
31
|
</span>
|
35
32
|
</div>
|
36
33
|
<div class='flex-1 h-0 overflow-y-auto'>
|
37
|
-
<%= turbo_frame_tag cart_id(
|
34
|
+
<%= turbo_frame_tag cart_id(current_order), class: 'cart-contents', src: spree.cart_path, data: { turbo_permanent: true } %>
|
38
35
|
</div>
|
39
36
|
</div>
|
40
37
|
</div>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<% if target && target.errors.any? %>
|
2
|
-
<div id="errorExplanation" class="alert-error text-center mb-4 p-2">
|
2
|
+
<div id="errorExplanation" class="<%= local_assigns[:class] || 'alert-error text-center mb-4 p-2' %>">
|
3
3
|
<ul>
|
4
4
|
<% target.errors.full_messages.each do |msg| %>
|
5
5
|
<li><%= msg %></li>
|
@@ -32,9 +32,9 @@
|
|
32
32
|
<meta property="twitter:image" content="<%= image_url %>" />
|
33
33
|
<% end %>
|
34
34
|
|
35
|
-
<% if @product
|
35
|
+
<% if @product && @product.price_in(current_currency).present? %>
|
36
36
|
<meta property="og:price:amount" content="<%= @product.price_in(current_currency).amount.to_s %>">
|
37
|
-
<meta property="og:price:currency" content="<%=
|
37
|
+
<meta property="og:price:currency" content="<%= current_order&.currency || current_store.default_currency %>">
|
38
38
|
<% end %>
|
39
39
|
|
40
40
|
<% if current_store.twitter.present? %>
|
data/config/locales/en.yml
CHANGED
@@ -20,7 +20,6 @@ en:
|
|
20
20
|
checkout:
|
21
21
|
all_transactions_are_secure_and_encrypted: All transactions are secure and encrypted
|
22
22
|
already_have_an_account: Already have an account?
|
23
|
-
backorder_notice: 'Some products in your cart will be dispatched a bit later than the rest of your order:'
|
24
23
|
by_placing_this_order_you_agree_to: By placing this order you agree to
|
25
24
|
calculated_at_next_step: Calculated at next step
|
26
25
|
continue_to_cart: Continue to cart
|
@@ -31,13 +30,11 @@ en:
|
|
31
30
|
one: This item will be removed from your cart because there are no delivery methods available for your address.
|
32
31
|
other: These %{count} items will be removed from your cart because there are no delivery methods available for your address.
|
33
32
|
gift_card_amount_applied: Gift card %{code} applied %{amount} to your order.
|
34
|
-
it_seems_you_already_have_an_account_html: It seems you already have an account with us. Please %{link} to continue.
|
35
33
|
or_continue_below: or continue below
|
36
34
|
order_already_paid: You don't need to pay anything, just click Place now button to confirm the order.
|
37
35
|
order_success: Your order is confirmed!
|
38
36
|
order_success_message: When your order is ready, you will receive an email confirmation.
|
39
37
|
payment_processing_message: You will receive an email confirmation when your payment is processed.
|
40
|
-
return_to_cart: Return to cart
|
41
38
|
shipping_not_available: Shipping not available
|
42
39
|
signup_for_an_account: Create an account for faster future purchases, order tracking, and more.
|
43
40
|
store_credits_amount_applied: You applied a %{amount} store credit to your order.
|
@@ -53,10 +50,6 @@ en:
|
|
53
50
|
description: Take control of your settings and tailor your experience according to your preferences. Customize your notifications to suit your needs.
|
54
51
|
join: Email me about new products, sales, and more. You can unsubscribe at any time.
|
55
52
|
status: You are currently %{status} to the newsletters.
|
56
|
-
policies:
|
57
|
-
last_update_at: Last update %{date}
|
58
|
-
products:
|
59
|
-
pinch_to_zoom_html: Pinch to<br>zoom
|
60
53
|
refund_action_not_required_message:
|
61
54
|
order_canceled:
|
62
55
|
fully: This order has been canceled. No further action is required. You will receive a refund within couple business days.
|
@@ -73,7 +66,6 @@ en:
|
|
73
66
|
partially: This order has been partially refunded. The amount paid by the selected payment method will be refunded within couple business days. Please reach out to %{customer_support_email} to receive new voucher.
|
74
67
|
variant_picker:
|
75
68
|
please_choose: Please choose %{option_type}
|
76
|
-
please_choose_all_options: Please choose all options
|
77
69
|
wished_items:
|
78
70
|
add: Add to wishlist
|
79
71
|
no_wished_items:
|
@@ -8,97 +8,10 @@ module Spree
|
|
8
8
|
}
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
preference :danger_color, :string, default: '#C73528'
|
16
|
-
preference :neutral_color, :string, default: '#999999'
|
17
|
-
preference :background_color, :string, default: '#FFFFFF'
|
18
|
-
preference :text_color, :string, default: '#000000'
|
19
|
-
preference :success_color, :string, default: '#00C773'
|
20
|
-
|
21
|
-
# buttons
|
22
|
-
preference :button_background_color, :string
|
23
|
-
preference :button_text_color, :string, default: '#ffffff'
|
24
|
-
preference :button_hover_background_color, :string
|
25
|
-
preference :button_hover_text_color, :string
|
26
|
-
preference :button_border_color, :string
|
27
|
-
|
28
|
-
# borders
|
29
|
-
preference :border_color, :string, default: '#E9E7DC'
|
30
|
-
preference :sidebar_border_color, :string
|
31
|
-
|
32
|
-
preference :secondary_button_background_color, :string
|
33
|
-
preference :secondary_button_text_color, :string
|
34
|
-
preference :secondary_button_hover_background_color, :string
|
35
|
-
preference :secondary_button_hover_text_color, :string
|
36
|
-
|
37
|
-
# inputs
|
38
|
-
preference :input_text_color, :string, default: '#6b7280'
|
39
|
-
preference :input_background_color, :string, default: '#ffffff'
|
40
|
-
preference :input_border_color, :string
|
41
|
-
preference :input_focus_border_color, :string
|
42
|
-
preference :input_focus_background_color, :string
|
43
|
-
preference :input_focus_text_color, :string
|
44
|
-
|
45
|
-
# sidebar (checkout)
|
46
|
-
preference :checkout_sidebar_background_color, :string, default: '#f3f4f6'
|
47
|
-
preference :checkout_divider_background_color, :string
|
48
|
-
preference :checkout_sidebar_text_color, :string
|
49
|
-
|
50
|
-
# TYPOGRAPHY
|
51
|
-
preference :custom_font_code, :string, default: nil
|
52
|
-
# body
|
53
|
-
preference :font_family, :string, default: 'Inter'
|
54
|
-
preference :font_size_scale, :integer, default: 100
|
55
|
-
# headers
|
56
|
-
preference :header_font_family, :string, default: 'Inter'
|
57
|
-
preference :header_font_size_scale, :integer, default: 100
|
58
|
-
preference :headings_uppercase, :boolean, default: true
|
59
|
-
|
60
|
-
# BUTTONS
|
61
|
-
preference :button_border_thickness, :integer, default: 1
|
62
|
-
preference :button_border_opacity, :integer, default: 100
|
63
|
-
preference :button_border_radius, :integer, default: 100
|
64
|
-
preference :button_shadow_opacity, :integer, default: 0
|
65
|
-
preference :button_shadow_horizontal_offset, :integer, default: 0
|
66
|
-
preference :button_shadow_vertical_offset, :integer, default: 4
|
67
|
-
preference :button_shadow_blur, :integer, default: 5
|
68
|
-
|
69
|
-
# INPUTS
|
70
|
-
preference :input_border_thickness, :integer, default: 1
|
71
|
-
preference :input_border_opacity, :integer, default: 100
|
72
|
-
preference :input_border_radius, :integer, default: 8
|
73
|
-
preference :input_shadow_opacity, :integer, default: 0
|
74
|
-
preference :input_shadow_horizontal_offset, :integer, default: 0
|
75
|
-
preference :input_shadow_vertical_offset, :integer, default: 4
|
76
|
-
preference :input_shadow_blur, :integer, default: 5
|
77
|
-
|
78
|
-
# BORDERS
|
79
|
-
preference :border_width, :integer, default: 1
|
80
|
-
preference :border_radius, :integer, default: 6
|
81
|
-
preference :border_shadow_opacity, :integer, default: 0
|
82
|
-
preference :border_shadow_horizontal_offset, :integer, default: 0
|
83
|
-
preference :border_shadow_vertical_offset, :integer, default: 4
|
84
|
-
preference :border_shadow_blur, :integer, default: 5
|
85
|
-
|
86
|
-
# PRODUCT IMAGES
|
87
|
-
preference :product_listing_image_height, :integer, default: 300
|
88
|
-
preference :product_listing_image_width, :integer, default: 300
|
89
|
-
preference :product_listing_image_height_mobile, :integer, default: 190
|
90
|
-
preference :product_listing_image_width_mobile, :integer, default: 190
|
91
|
-
|
92
|
-
# Returns an array of available layout section classes for the theme, eg. header, footer, newsletter, etc.
|
93
|
-
#
|
94
|
-
# @return [Array<Class>]
|
95
|
-
def available_layout_sections
|
96
|
-
[
|
97
|
-
Spree::PageSections::AnnouncementBar,
|
98
|
-
Spree::PageSections::Header,
|
99
|
-
Spree::PageSections::Newsletter,
|
100
|
-
Spree::PageSections::Footer
|
101
|
-
]
|
11
|
+
def custom_page_sections
|
12
|
+
# you can override this method in your theme to return a list of custom page sections for your theme
|
13
|
+
# [Spree::PageSections::Custom, Spree::PageSections::Custom2]
|
14
|
+
[]
|
102
15
|
end
|
103
16
|
end
|
104
17
|
end
|
@@ -7,11 +7,14 @@ module Spree
|
|
7
7
|
:head_partials,
|
8
8
|
:body_start_partials,
|
9
9
|
:body_end_partials,
|
10
|
+
:cart_partials,
|
10
11
|
:add_to_cart_partials,
|
11
12
|
:remove_from_cart_partials,
|
12
13
|
:checkout_partials,
|
13
14
|
:checkout_complete_partials,
|
14
|
-
:quick_checkout_partials
|
15
|
+
:quick_checkout_partials,
|
16
|
+
:product_partials,
|
17
|
+
:add_to_wishlist_partials
|
15
18
|
)
|
16
19
|
|
17
20
|
# accessible via Rails.application.config.spree_storefront
|
@@ -44,11 +47,14 @@ module Spree
|
|
44
47
|
Rails.application.config.spree_storefront.head_partials = []
|
45
48
|
Rails.application.config.spree_storefront.body_start_partials = []
|
46
49
|
Rails.application.config.spree_storefront.body_end_partials = []
|
50
|
+
Rails.application.config.spree_storefront.cart_partials = []
|
47
51
|
Rails.application.config.spree_storefront.add_to_cart_partials = []
|
48
52
|
Rails.application.config.spree_storefront.remove_from_cart_partials = []
|
49
53
|
Rails.application.config.spree_storefront.checkout_partials = []
|
50
54
|
Rails.application.config.spree_storefront.checkout_complete_partials = []
|
51
55
|
Rails.application.config.spree_storefront.quick_checkout_partials = []
|
56
|
+
Rails.application.config.spree_storefront.product_partials = []
|
57
|
+
Rails.application.config.spree_storefront.add_to_wishlist_partials = []
|
52
58
|
end
|
53
59
|
end
|
54
60
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_storefront
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.1.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vendo Connect Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree_core
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 5.0.
|
19
|
+
version: 5.1.0.beta
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 5.0.
|
26
|
+
version: 5.1.0.beta
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: active_link_to
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -372,6 +372,8 @@ files:
|
|
372
372
|
- app/views/themes/default/spree/account/_order.html.erb
|
373
373
|
- app/views/themes/default/spree/account/_orders.html.erb
|
374
374
|
- app/views/themes/default/spree/account/addresses/_address.html.erb
|
375
|
+
- app/views/themes/default/spree/account/addresses/_edit_address_modal.html.erb
|
376
|
+
- app/views/themes/default/spree/account/addresses/_new_address_modal.html.erb
|
375
377
|
- app/views/themes/default/spree/account/addresses/index.html.erb
|
376
378
|
- app/views/themes/default/spree/account/newsletter/_newsletter_settings.html.erb
|
377
379
|
- app/views/themes/default/spree/account/newsletter/edit.html.erb
|
@@ -393,7 +395,6 @@ files:
|
|
393
395
|
- app/views/themes/default/spree/orders/show.html.erb
|
394
396
|
- app/views/themes/default/spree/page_sections/_announcement_bar.html.erb
|
395
397
|
- app/views/themes/default/spree/page_sections/_custom_code.html.erb
|
396
|
-
- app/views/themes/default/spree/page_sections/_featured_posts.html.erb
|
397
398
|
- app/views/themes/default/spree/page_sections/_featured_product.html.erb
|
398
399
|
- app/views/themes/default/spree/page_sections/_featured_taxon.html.erb
|
399
400
|
- app/views/themes/default/spree/page_sections/_featured_taxons.html.erb
|
@@ -548,9 +549,9 @@ licenses:
|
|
548
549
|
- AGPL-3.0-or-later
|
549
550
|
metadata:
|
550
551
|
bug_tracker_uri: https://github.com/spree/spree/issues
|
551
|
-
changelog_uri: https://github.com/spree/spree/releases/tag/v5.0.
|
552
|
+
changelog_uri: https://github.com/spree/spree/releases/tag/v5.1.0.beta
|
552
553
|
documentation_uri: https://docs.spreecommerce.org/
|
553
|
-
source_code_uri: https://github.com/spree/spree/tree/v5.0.
|
554
|
+
source_code_uri: https://github.com/spree/spree/tree/v5.1.0.beta
|
554
555
|
post_install_message:
|
555
556
|
rdoc_options: []
|
556
557
|
require_paths:
|
@@ -1,56 +0,0 @@
|
|
1
|
-
<div style='<%= section_styles(section) %>' class='animate-fadeIn'>
|
2
|
-
<div class='page-container'>
|
3
|
-
<% heading_size =
|
4
|
-
case section.preferred_heading_size
|
5
|
-
when "small"
|
6
|
-
"text-base font-medium"
|
7
|
-
when "medium"
|
8
|
-
"text-lg lg:text-xl font-medium"
|
9
|
-
when "large"
|
10
|
-
"text-xl lg:text-2xl font-medium"
|
11
|
-
end %>
|
12
|
-
<% if section.preferred_heading.present? %>
|
13
|
-
<div class='mb-8 flex flex-col'>
|
14
|
-
<h3
|
15
|
-
class='
|
16
|
-
<%= heading_size %> featured-taxon--title font-medium
|
17
|
-
text-<%= section.preferred_heading_alignment %>
|
18
|
-
'
|
19
|
-
data-title="<%= section.preferred_heading.downcase %>"
|
20
|
-
style='<%= section_heading_styles(section) %>'
|
21
|
-
>
|
22
|
-
<%= section.preferred_heading %>
|
23
|
-
</h3>
|
24
|
-
|
25
|
-
<% if section.description.present? %>
|
26
|
-
<div class='pt-4 text-<%= section.preferred_description_alignment %>'>
|
27
|
-
<%= section.description %>
|
28
|
-
</div>
|
29
|
-
<% end %>
|
30
|
-
</div>
|
31
|
-
<% end %>
|
32
|
-
<div class='flex h-full relative'>
|
33
|
-
<div
|
34
|
-
class='
|
35
|
-
swiper-container overflow-hidden flex-1 pr-8 lg:pr-0 -mx-4 lg:mx-0 flex flex-col
|
36
|
-
lg:flex-col-reverse
|
37
|
-
'
|
38
|
-
data-controller='carousel'
|
39
|
-
data-carousel-options-value='{ "slidesPerView": 1, "centeredSlides": false, "spaceBetween": 16, "grabCursor": true, "breakpoints": { "768": { "slidesPerView": 3, "spaceBetween": 24 } }, "navigation": { "nextEl": ".swiper-custom-button-next-<%= section.id %>", "prevEl": ".swiper-custom-button-prev-<%= section.id %>" } }'
|
40
|
-
>
|
41
|
-
<div class='swiper-wrapper px-4 lg:px-0 h-auto'>
|
42
|
-
<%= render partial: "spree/posts/post",
|
43
|
-
collection: section.posts,
|
44
|
-
cached: spree_base_cache_scope,
|
45
|
-
as: :post %>
|
46
|
-
</div>
|
47
|
-
<%= button_tag class: "absolute p-2 bg-white rounded-full z-10 border border-accent left-0 disabled:hidden hover:border-primary ml-2 lg:ml-0 swiper-custom-button-prev-#{section.id} block top-[100px]", aria: { label: "Previous posts" }, style: "transform: translate(-50%, -50%);" do %>
|
48
|
-
<%= render "spree/shared/icons/chevron" %>
|
49
|
-
<% end %>
|
50
|
-
<%= button_tag class: "absolute p-2 bg-white rounded-full z-10 border border-accent right-0 disabled:hidden hover:border-primary mr-2 lg:mr-0 swiper-custom-button-next-#{section.id} block top-[100px]", aria: { label: "Next posts" }, style: "transform: translate(50%, -50%);" do %>
|
51
|
-
<%= render "spree/shared/icons/chevron_right" %>
|
52
|
-
<% end %>
|
53
|
-
</div>
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
</div>
|