spree_storefront 5.2.0.rc1 → 5.2.0.rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/checkout_controller.rb +2 -2
  3. data/app/controllers/spree/line_items_controller.rb +1 -1
  4. data/app/helpers/spree/turbo_helper.rb +4 -2
  5. data/app/views/spree/checkout/_coupon_code.html.erb +3 -3
  6. data/app/views/spree/checkout/_delivery_backorder_notice.html.erb +1 -1
  7. data/app/views/spree/checkout/_line_item.html.erb +2 -2
  8. data/app/views/spree/checkout/_missing_all_line_items.html.erb +1 -1
  9. data/app/views/spree/checkout/_missing_line_items.html.erb +1 -1
  10. data/app/views/themes/default/spree/orders/_line_item.html.erb +1 -1
  11. data/app/views/themes/default/spree/page_sections/_featured_taxon.html.erb +14 -14
  12. data/app/views/themes/default/spree/page_sections/_header.html.erb +1 -1
  13. data/app/views/themes/default/spree/page_sections/_video.html.erb +1 -1
  14. data/app/views/themes/default/spree/page_sections/nav/_mobile.html.erb +1 -1
  15. data/app/views/themes/default/spree/products/_filters.html.erb +2 -2
  16. data/app/views/themes/default/spree/products/_media_gallery.html.erb +5 -5
  17. data/app/views/themes/default/spree/products/_metafields.html.erb +1 -1
  18. data/app/views/themes/default/spree/products/_product.html.erb +2 -2
  19. data/app/views/themes/default/spree/products/_sort.html.erb +1 -1
  20. data/app/views/themes/default/spree/products/_swiper.html.erb +2 -2
  21. data/app/views/themes/default/spree/products/_variant_options.html.erb +1 -1
  22. data/app/views/themes/default/spree/products/filters/_availability.html.erb +1 -1
  23. data/app/views/themes/default/spree/products/filters/_colors.html.erb +1 -1
  24. data/app/views/themes/default/spree/products/filters/_generic.html.erb +1 -1
  25. data/app/views/themes/default/spree/products/filters/_price.html.erb +1 -1
  26. data/app/views/themes/default/spree/search/_suggestions.html.erb +8 -8
  27. data/app/views/themes/default/spree/settings/show.html.erb +1 -1
  28. data/app/views/themes/default/spree/shared/_account_pane.html.erb +2 -2
  29. data/app/views/themes/default/spree/shared/_cart_pane.html.erb +2 -2
  30. data/app/views/themes/default/spree/shared/_order_line_item.html.erb +1 -1
  31. data/app/views/themes/default/spree/shared/_search.html.erb +1 -1
  32. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71287481dfb84dcfac62b0ea895963b668c6c83d01fbc885ee60bb5eb45fb246
4
- data.tar.gz: 477e4b5aeacaaed2c4d2005530b5497544130d38da3e5e7f051115dc81a5bd65
3
+ metadata.gz: 041ff9428cf289493366a10c4dbede17a6b1e140f708e845565d72910eea3e5d
4
+ data.tar.gz: 3c1484b3030904f58497478656e940efab8ba9bec556a43e42e1a71738ddfbd8
5
5
  SHA512:
6
- metadata.gz: 37a4b4d6a5e37ea78850ebcf07e2d7f37b1a6637b6f87c5d7759d9104d5ae9ce6476acdd1052009d5670255134baf7d3ed7b427edd084b25f07ab7faba9375ec
7
- data.tar.gz: aa5c9fd3881d86d4acfeaa1c0c09a6184c6c11e3d2fcda18cc73f5738d036a077d4c915f23a264ab27950e7b71973a41bd684cc3babba930170abb35d7837906
6
+ metadata.gz: 1aa1ce2c16cd40d68ee775812099d95129d113d6abf4a0573f8ef05429e906250e90ef4a19ecec78ffb9b3e46cc6eb7511f3e0ea06d27adc1cd88e3dfe59fd30
7
+ data.tar.gz: f1d96a1119c82876ba3e41bc6f620e6948218f0e095065506b1e42d7fb32c7cef205ec1bb9ce0481862c08ab431bf2c6dd41828e12aed1604ee5160e87c546d5
@@ -182,7 +182,7 @@ module Spree
182
182
  end
183
183
 
184
184
  reset_session
185
- cookies.permanent.signed[:token] = @order.token
185
+ create_token_cookie(@order.token)
186
186
 
187
187
  redirect_to spree.checkout_path(@order.token)
188
188
  else
@@ -204,7 +204,7 @@ module Spree
204
204
  end
205
205
 
206
206
  def allow_access_to_complete_order_with_new_user?
207
- cookies_order_token = cookies.permanent.signed[:token]
207
+ cookies_order_token = cookies.signed[:token]
208
208
 
209
209
  @order.completed? && @order.signup_for_an_account? && @order.user_id.present? && cookies_order_token.present? && cookies_order_token == @order.token
210
210
  end
@@ -15,7 +15,7 @@ module Spree
15
15
  @quantity = params[:quantity].to_i || 1
16
16
  options = params[:options] || {}
17
17
 
18
- cookies.permanent.signed[:token] = { value: @order.token, domain: current_store.url_or_custom_domain } if @order.persisted?
18
+ create_token_cookie(@order.token) if @order.persisted?
19
19
 
20
20
  result = cart_add_item_service.call(order: @order,
21
21
  variant: @variant,
@@ -7,8 +7,10 @@ module Spree
7
7
  end
8
8
 
9
9
  def spree_turbo_update_cart(order = current_order)
10
- turbo_stream.update_all '.cart-counter', order&.item_count&.positive? ? order&.item_count : ''
11
- turbo_stream.update_all '.cart-total', order&.display_item_total.to_s
10
+ [
11
+ turbo_stream.update_all('.cart-counter', order&.item_count&.positive? ? order&.item_count : ''),
12
+ turbo_stream.update_all('.cart-total', order&.display_item_total.to_s)
13
+ ].join.html_safe
12
14
  end
13
15
  end
14
16
  end
@@ -16,7 +16,7 @@
16
16
  <%= hidden_field_tag :coupon_code, promotion.code_for_order(@order) %>
17
17
  <div class="m-0">
18
18
  <div class="flex items-center justify-between text-sm">
19
- <span class="max-w-[250px] truncate flex items-center p-2 rounded bg-gray-200">
19
+ <span class="max-w-[250px] truncate flex items-center p-2 rounded-sm bg-gray-200">
20
20
  <%= heroicon('tag', options: { class: 'h-4 w-4 mr-2' }) %>
21
21
  <%= promotion.name_for_order(@order) %>
22
22
  </span>
@@ -31,7 +31,7 @@
31
31
  <%= hidden_field_tag :gift_card, @order.gift_card.code %>
32
32
  <div class="m-0">
33
33
  <div class="flex items-center justify-between text-sm">
34
- <span class="max-w-[250px] truncate flex items-center p-2 rounded bg-gray-200">
34
+ <span class="max-w-[250px] truncate flex items-center p-2 rounded-sm bg-gray-200">
35
35
  <%= heroicon('gift', options: { class: 'h-4 w-4 mr-2' }) %>
36
36
  <%= @order.gift_card.code.upcase %>
37
37
  </span>
@@ -45,7 +45,7 @@
45
45
 
46
46
  <% if local_assigns[:result] && action_name == 'apply_coupon_code' %>
47
47
  <% if result.error.blank? %>
48
- <div class="alert-success p-2 text-xs rounded"><%= result.success %></div>
48
+ <div class="alert-success p-2 text-xs rounded-sm"><%= result.success %></div>
49
49
  <% else %>
50
50
  <div class="text-red-500 !text-md text-xs ">
51
51
  <span><%= result.error %></span>
@@ -1,5 +1,5 @@
1
1
  <% if order.backordered_variants.any? %>
2
- <div class="alert rounded border border-default text-sm p-5 mb-6">
2
+ <div class="alert rounded-sm border border-default text-sm p-5 mb-6">
3
3
  <%= Spree.t("storefront.checkout.backorder_notice") %>
4
4
  <ul class="list-disc list-inside flex-col flex space-y-1 mt-2">
5
5
  <% order.backordered_variants.each do |variant| %>
@@ -5,9 +5,9 @@
5
5
  </span>
6
6
  <% image = line_item.variant.default_image %>
7
7
  <% if image.present? && image.attached? && image.variable? %>
8
- <%= spree_image_tag(image, class: 'rounded border border-default bg-transparent object-cover object-center', loading: :lazy, width: 64, height: 64) %>
8
+ <%= spree_image_tag(image, class: 'rounded-sm border border-default bg-transparent object-cover object-center', loading: :lazy, width: 64, height: 64) %>
9
9
  <% else %>
10
- <div class="w-16 h-16 bg-accent border border-default rounded"></div>
10
+ <div class="w-16 h-16 bg-accent border border-default rounded-sm"></div>
11
11
  <% end %>
12
12
  </div>
13
13
  <div class="flex-1 pr-3 text-sm">
@@ -1,7 +1,7 @@
1
1
  <div data-controller="modal" data-modal-opened-value="true" data-modal-allow-background-close="false">
2
2
  <div data-modal-target="container" data-action="click->modal#closeBackground keyup@window->modal#closeWithKeyboard" class="hidden animated fadeIn fixed inset-0 overflow-y-auto flex items-center justify-center" style="z-index: 9999;">
3
3
  <div class="max-h-screen w-full max-w-lg relative">
4
- <div class="m-1 bg-white rounded shadow">
4
+ <div class="m-1 bg-white rounded-sm shadow">
5
5
  <div class="p-8">
6
6
  <h2 class="text-xl mb-4"><%= Spree.t(:shipping_not_available) %></h2>
7
7
  <p class="mb-4"><%= Spree.t('errors.messages.no_shipping_methods_available') %> </p>
@@ -1,7 +1,7 @@
1
1
  <div data-controller="modal" data-modal-opened-value="true" data-modal-allow-background-close="false">
2
2
  <div data-modal-target="container" data-action="click->modal#closeBackground keyup@window->modal#closeWithKeyboard" class="hidden animated fadeIn fixed inset-0 overflow-y-auto flex items-center justify-center" style="z-index: 9999;">
3
3
  <div class="max-h-screen w-full max-w-lg relative">
4
- <div class="m-1 bg-white rounded shadow">
4
+ <div class="m-1 bg-white rounded-sm shadow">
5
5
  <div class="p-8">
6
6
  <h2 class="text-xl mb-4"><%= Spree.t('storefront.checkout.shipping_not_available') %></h2>
7
7
  <p class="mb-4">
@@ -1,7 +1,7 @@
1
1
  <%= turbo_frame_tag dom_id(line_item) do %>
2
2
  <li class="cart-line-item flex items-top py-6 px-4 w-full">
3
3
  <div class="line-item-overlay"></div>
4
- <div class="cart-product-image flex-shrink-0" id="<%= dom_id(line_item) %>-image" data-turbo-permanent>
4
+ <div class="cart-product-image shrink-0" id="<%= dom_id(line_item) %>-image" data-turbo-permanent>
5
5
  <% image = line_item.variant.default_image %>
6
6
  <% if image.present? && image.attached? && image.variable? %>
7
7
  <%= link_to spree_storefront_resource_url(line_item.product), data: { 'turbo-frame': '_top' } do %>
@@ -68,18 +68,18 @@
68
68
  <div class='grid gap-4 md:gap-6 grid-cols-8 md:grid-cols-5'>
69
69
  <div class='col-span-6 md:col-span-2'>
70
70
  <div class='aspect-1 bg-accent w-full'></div>
71
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
72
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
71
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
72
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
73
73
  </div>
74
74
  <div class='col-span-2 flex flex-col h-full overflow-hidden'>
75
75
  <div class='h-full md:aspect-1 bg-accent w-full'></div>
76
- <div class='h-6 mt-2 w-32 bg-accent rounded shrink-0'></div>
77
- <div class='h-8 mt-2 w-16 bg-accent rounded shrink-0'></div>
76
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm shrink-0'></div>
77
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm shrink-0'></div>
78
78
  </div>
79
79
  <div class='hidden md:block'>
80
80
  <div class='aspect-[1/2] bg-accent w-full'></div>
81
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
82
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
81
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
82
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
83
83
  </div>
84
84
  </div>
85
85
  <div class='md:flex <%= section.preferred_show_more_button ? "justify-between" : "justify-end" %> items-end'>
@@ -90,23 +90,23 @@
90
90
  <div class='grid gap-4 md:gap-6 grid-cols-8 relative'>
91
91
  <div class='col-span-6 md:col-span-2'>
92
92
  <div class='aspect-1 bg-accent w-full'></div>
93
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
94
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
93
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
94
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
95
95
  </div>
96
96
  <div class='col-span-2 md:col-span-2 flex flex-col'>
97
97
  <div class='aspect-[1/3] md:aspect-1 bg-accent w-full flex-1'></div>
98
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
99
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
98
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
99
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
100
100
  </div>
101
101
  <div class='col-span-2 hidden md:block'>
102
102
  <div class='aspect-1 bg-accent w-full'></div>
103
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
104
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
103
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
104
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
105
105
  </div>
106
106
  <div class='col-span-2 hidden md:block'>
107
107
  <div class='aspect-1 bg-accent w-full'></div>
108
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
109
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
108
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
109
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
110
110
  </div>
111
111
  </div>
112
112
  <div class="md:hidden w-full block rounded-button bg-accent h-12 mt-8"></div>
@@ -143,7 +143,7 @@
143
143
  aria-modal='true'
144
144
  >
145
145
  <div
146
- class='flex justify-between flex-col lg:hidden w-full transition-transform translate-x-[-50%] has-[.currency-and-locale-modal:not(.hidden)]:transform-none body header--mobile-menu'
146
+ class='flex justify-between flex-col lg:hidden w-full transition-transform has-[.currency-and-locale-modal:not(.hidden)]:transform-none body header--mobile-menu'
147
147
  data-toggle-menu-target='content'
148
148
  style='background-color: <%= section.preferred_background_color %>; height: calc(100dvh - 58px - 36px);'
149
149
  >
@@ -14,7 +14,7 @@
14
14
 
15
15
  <% if section.video_embed.present? %>
16
16
  <div class="<%= 'lg:col-span-5' if separated_vertically %>">
17
- <div class="mx-auto <%= 'lg:mr-0' if separated_vertically %> rounded overflow-hidden">
17
+ <div class="mx-auto <%= 'lg:mr-0' if separated_vertically %> rounded-sm overflow-hidden">
18
18
  <div class="video-embed-container">
19
19
  <%= section.video_embed.raw_html.html_safe %>
20
20
  </div>
@@ -1,6 +1,6 @@
1
1
  <div class="bg-background border-default border-t overflow-x-hidden h-full w-screen overflow-y-hidden">
2
2
  <div class="h-full flex transform has-[.currency-and-locale-modal:not(.hidden)]:transform-none relative transition-transform duration-300" data-controller="mobile-nav">
3
- <div class="w-screen shrink-0 flex flex-col h-full flex-grow-0">
3
+ <div class="w-screen shrink-0 flex flex-col h-full grow-0">
4
4
  <div class="flex-grow overflow-y-scroll">
5
5
  <% if section.blocks.any? %>
6
6
  <% section.blocks.each do |block| %>
@@ -2,10 +2,10 @@
2
2
  id="slideover-filters"
3
3
  data-slideover-target="menu"
4
4
  class="sidebar-pane relative flex-1 !flex flex-col w-full pt-4 bg-background md:border-r border-default transition duration-300 -translate-x-full">
5
- <div class="flex-shrink-0 flex items-center justify-between pb-4 px-4 border-b border-default">
5
+ <div class="shrink-0 flex items-center justify-between pb-4 px-4 border-b border-default">
6
6
  <span class="text-xl uppercase font-medium"><%= Spree.t(:filter) %></span>
7
7
  <%= button_tag type: 'button',
8
- class: "flex items-center justify-center rounded-full focus:outline-none focus:bg-background",
8
+ class: "flex items-center justify-center rounded-full focus:outline-hidden focus:bg-background",
9
9
  aria: { label: Spree.t(:close_sidebar) },
10
10
  data: { action: "slideover#toggle" } do %>
11
11
  <%= render 'spree/shared/icons/cross' %>
@@ -6,17 +6,17 @@
6
6
  class="media-gallery w-full h-full media-gallery-desktop"
7
7
  id="media-gallery-<%= product.id %>-desktop"
8
8
  data-controller="lightbox pdp-desktop-gallery">
9
- <div class="grid grid-cols-[6.5rem,_1fr] grid-rows-1 gap-2 w-full media-gallery-desktop__wrapper">
10
- <div class="flex flex-col h-full w-full aspect-1 overflow-hidden">
9
+ <div class="grid grid-cols-[6.5rem_1fr] grid-rows-1 gap-2 w-full media-gallery-desktop__wrapper">
10
+ <div class="flex flex-col h-full overflow-hidden">
11
11
  <%= button_tag class: "w-full bg-background py-2 flex justify-center items-center disabled:opacity-50 media-gallery-desktop-arrow", data: { pdp_desktop_gallery_target: "prevArrow" } do %>
12
12
  <span class="rotate-180">
13
13
  <%= render 'spree/shared/icons/chevron_down' %>
14
14
  </span>
15
15
  <% end %>
16
- <div class="swiper h-full w-full block" data-pdp-desktop-gallery-target="imagesThumbsSlider">
17
- <div class="swiper-wrapper w-full h-full block">
16
+ <div class="swiper h-full block" data-pdp-desktop-gallery-target="imagesThumbsSlider">
17
+ <div class="swiper-wrapper h-full block">
18
18
  <% images.each do |image| %>
19
- <div class="swiper-slide !h-min cursor-pointer w-full">
19
+ <div class="swiper-slide !h-min cursor-pointer">
20
20
  <div
21
21
  class="relative aspect-1 w-full block "
22
22
  id="thumb-desktop-product-image-<%= image.id %>"
@@ -6,7 +6,7 @@
6
6
  <% next unless metafield.metafield_definition.available_on_front_end? %>
7
7
 
8
8
  <details class="product-metafield border-b border-default group" id="metafield_<%= metafield.id %>">
9
- <summary class="text-sm uppercase tracking-widest inline-flex w-full justify-between items-center py-4 cursor-pointer focus:outline-none">
9
+ <summary class="text-sm uppercase tracking-widest inline-flex w-full justify-between items-center py-4 cursor-pointer focus:outline-hidden">
10
10
  <span><%= metafield.name %></span>
11
11
  <span class="ml-2 transition-transform group-open:rotate-180">
12
12
  <%= render 'spree/shared/icons/chevron_down' %>
@@ -34,7 +34,7 @@
34
34
  <%= product.name %>
35
35
  <% else %>
36
36
  <div class="grid grid-cols-3 gap-4">
37
- <div class="h-5 bg-accent rounded col-span-2"></div>
37
+ <div class="h-5 bg-accent rounded-sm col-span-2"></div>
38
38
  </div>
39
39
  <% end %>
40
40
  </h3>
@@ -49,7 +49,7 @@
49
49
  </div>
50
50
  <% else %>
51
51
  <div class="mt-2 grid grid-cols-3 gap-4">
52
- <div class="h-7 bg-accent rounded col-span-1"></div>
52
+ <div class="h-7 bg-accent rounded-sm col-span-1"></div>
53
53
  </div>
54
54
  <% end %>
55
55
  </div>
@@ -31,7 +31,7 @@
31
31
  class: 'hidden',
32
32
  data: { action: 'change->auto-submit#submit' },
33
33
  checked: option[:value] == products_sort %>
34
- <%= f.label "sort-#{option[:value]}", class: 'text-sm cursor-pointer flex items-center justify-between px-4 py-2.5 hover:bg-accent focus:outline-none focus:bg-accent transition ease-in-out' do %>
34
+ <%= f.label "sort-#{option[:value]}", class: 'text-sm cursor-pointer flex items-center justify-between px-4 py-2.5 hover:bg-accent focus:outline-hidden focus:bg-accent transition ease-in-out' do %>
35
35
  <%= option[:name] %>
36
36
  <% if option[:value] == products_sort %>
37
37
  <%= render 'spree/shared/icons/check' %>
@@ -75,10 +75,10 @@
75
75
  <% end %>
76
76
  </div>
77
77
  </div>
78
- <%= 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 #{arrows_on_top ? '' : 'md:hidden'} top-[--top] lg:top-[--desktop-top]", aria: { hidden: true }, style: "--top: calc(#{theme_setting('product_listing_image_height_mobile')}px/2); --desktop-top: calc(#{theme_setting('product_listing_image_height')}px/2); transform: translate(-50%, -50%);" do %>
78
+ <%= 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 #{arrows_on_top ? '' : 'md:hidden'} top-(--top) lg:top-(--desktop-top)", aria: { hidden: true }, style: "--top: calc(#{theme_setting('product_listing_image_height_mobile')}px/2); --desktop-top: calc(#{theme_setting('product_listing_image_height')}px/2); transform: translate(-50%, -50%);" do %>
79
79
  <%= render 'spree/shared/icons/chevron' %>
80
80
  <% end %>
81
- <%= 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 #{arrows_on_top ? '' : 'md:hidden'} top-[--top] lg:top-[--desktop-top]", aria: { hidden: true }, style: "--top: calc(#{theme_setting('product_listing_image_height_mobile')}px/2); --desktop-top: calc(#{theme_setting('product_listing_image_height')}px/2); transform: translate(50%, -50%);" do %>
81
+ <%= 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 #{arrows_on_top ? '' : 'md:hidden'} top-(--top) lg:top-(--desktop-top)", aria: { hidden: true }, style: "--top: calc(#{theme_setting('product_listing_image_height_mobile')}px/2); --desktop-top: calc(#{theme_setting('product_listing_image_height')}px/2); transform: translate(50%, -50%);" do %>
82
82
  <%= render 'spree/shared/icons/chevron_right' %>
83
83
  <% end %>
84
84
  </div>
@@ -60,7 +60,7 @@
60
60
  %>
61
61
  <label
62
62
  for='product-option-<%= product.id %>-<%= position %>-<%= index %>'
63
- class='text-sm cursor-pointer flex items-center justify-between px-4 py-2.5 hover:bg-accent focus:outline-none focus:bg-accent transition duration-150 ease-in-out <%= option_disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-accent" %>'
63
+ class='text-sm cursor-pointer flex items-center justify-between px-4 py-2.5 hover:bg-accent focus:outline-hidden focus:bg-accent transition duration-150 ease-in-out <%= option_disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-accent" %>'
64
64
  >
65
65
  <p><%=h value.presentation %></p>
66
66
  <% if selected_option == value %>
@@ -3,7 +3,7 @@
3
3
  data-controller='accordion'
4
4
  data-accordion-close-others-value="false">
5
5
  <% availability_filter_opened = permitted_products_params.dig(:filter, :purchasable).present? || permitted_products_params.dig(:filter, :out_of_stock).present? %>
6
- <%= link_to "#availability_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-none transition duration-150 ease-in-out #{'st-accordion__icon--opened' if availability_filter_opened}", data: { action: 'accordion#toggle:prevent' } do %>
6
+ <%= link_to "#availability_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-hidden transition duration-150 ease-in-out #{'st-accordion__icon--opened' if availability_filter_opened}", data: { action: 'accordion#toggle:prevent' } do %>
7
7
  <%= Spree.t(:availability).capitalize %>
8
8
  <%= render 'spree/shared/icons/chevron_down' %>
9
9
  <% end %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <% if filter_values.any? %>
4
4
  <div class="st-accordion" data-controller='accordion' data-accordion-close-others-value="false">
5
- <%= link_to "#colors_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-none transition duration-150 ease-in-out #{'st-accordion__icon--opened' if params.dig(:filter, :options, :color).present?}", data: { action: 'accordion#toggle:prevent' } do %>
5
+ <%= link_to "#colors_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-hidden transition duration-150 ease-in-out #{'st-accordion__icon--opened' if params.dig(:filter, :options, :color).present?}", data: { action: 'accordion#toggle:prevent' } do %>
6
6
  <%= filter.presentation %>
7
7
  <%= render 'spree/shared/icons/chevron_down' %>
8
8
  <% end %>
@@ -5,7 +5,7 @@
5
5
  class="st-accordion"
6
6
  data-controller="accordion"
7
7
  data-accordion-close-others-value="false">
8
- <%= link_to "##{filter.id}", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-none transition duration-150 ease-in-out #{'st-accordion__icon--opened' if permitted_products_params.dig(:filter, :options, filter.name).present?}", data: { action: 'accordion#toggle:prevent' } do %>
8
+ <%= link_to "##{filter.id}", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-hidden transition duration-150 ease-in-out #{'st-accordion__icon--opened' if permitted_products_params.dig(:filter, :options, filter.name).present?}", data: { action: 'accordion#toggle:prevent' } do %>
9
9
  <%= filter.presentation %>
10
10
  <%= render 'spree/shared/icons/chevron_down' %>
11
11
  <% end %>
@@ -2,7 +2,7 @@
2
2
  class="st-accordion"
3
3
  data-controller='accordion'
4
4
  data-accordion-close-others-value="false">
5
- <%= link_to "#price_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-none transition duration-150 ease-in-out #{'st-accordion__icon--opened' if params.dig(:filter, :min_price).present? || params.dig(:filter, :max_price).present?}", data: { action: 'accordion#toggle:prevent' } do %>
5
+ <%= link_to "#price_filter", class: "cursor-pointer uppercase flex items-center justify-between h-10 px-4 lg:px-10 text-sm tracking-widest focus:outline-hidden transition duration-150 ease-in-out #{'st-accordion__icon--opened' if params.dig(:filter, :min_price).present? || params.dig(:filter, :max_price).present?}", data: { action: 'accordion#toggle:prevent' } do %>
6
6
  <%=Spree.t(:price) %>
7
7
  <%= render 'spree/shared/icons/chevron_down' %>
8
8
  <% end %>
@@ -26,7 +26,7 @@
26
26
  <div class="fixed md:sticky py-6 px-4 bottom-0 left-0 bg-accent w-full z-[60]">
27
27
  <%= link_to spree.search_path(q: query), class: "btn-primary text-center uppercase flex items-baseline justify-center" do %>
28
28
  <span class="whitespace-nowrap"><%= Spree.t(:search_all) %> "</span>
29
- <span class="whitespace-nowrap overflow-ellipsis w-min max-w-[12ch] overflow-hidden inline"><%= query %></span>
29
+ <span class="whitespace-nowrap text-ellipsis w-min max-w-[12ch] overflow-hidden inline"><%= query %></span>
30
30
  <span>"</span>
31
31
  <% end %>
32
32
  </div>
@@ -54,7 +54,7 @@
54
54
  <div class="fixed md:relative md:col-span-2 lg:col-span-1 py-6 px-10 bottom-0 left-0 bg-accent w-full z-[60]">
55
55
  <%= link_to spree.search_path(q: query), class: "btn-primary text-center uppercase flex items-baseline justify-center" do %>
56
56
  <span class="whitespace-nowrap"><%= Spree.t(:search_all) %> "</span>
57
- <span class="whitespace-nowrap overflow-ellipsis w-min max-w-[12ch] overflow-hidden inline"><%= query %></span>
57
+ <span class="whitespace-nowrap text-ellipsis w-min max-w-[12ch] overflow-hidden inline"><%= query %></span>
58
58
  <span>"</span>
59
59
  <% end %>
60
60
  </div>
@@ -71,18 +71,18 @@
71
71
  <div class='grid gap-4 lg:gap-6 grid-cols-8 lg:grid-cols-12'>
72
72
  <div class='col-span-6 lg:col-span-4'>
73
73
  <div class='aspect-1 bg-accent w-full'></div>
74
- <div class='h-6 mt-2 w-32 bg-accent rounded'></div>
75
- <div class='h-8 mt-2 w-16 bg-accent rounded'></div>
74
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm'></div>
75
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm'></div>
76
76
  </div>
77
77
  <div class='col-span-2 lg:col-span-4 flex flex-col h-full overflow-hidden'>
78
78
  <div class='h-full lg:aspect-1 bg-accent w-full'></div>
79
- <div class='h-6 mt-2 w-32 bg-accent rounded shrink-0'></div>
80
- <div class='h-8 mt-2 w-16 bg-accent rounded shrink-0'></div>
79
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm shrink-0'></div>
80
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm shrink-0'></div>
81
81
  </div>
82
82
  <div class='hidden col-span-2 lg:col-span-4 lg:flex flex-col h-full overflow-hidden'>
83
83
  <div class='h-full lg:aspect-1 bg-accent w-full'></div>
84
- <div class='h-6 mt-2 w-32 bg-accent rounded shrink-0'></div>
85
- <div class='h-8 mt-2 w-16 bg-accent rounded shrink-0'></div>
84
+ <div class='h-6 mt-2 w-32 bg-accent rounded-sm shrink-0'></div>
85
+ <div class='h-8 mt-2 w-16 bg-accent rounded-sm shrink-0'></div>
86
86
  </div>
87
87
  </div>
88
88
  </div>
@@ -2,7 +2,7 @@
2
2
  <div
3
3
  data-modal-target="container"
4
4
  data-action="click->modal#closeBackground keyup@window->modal#closeWithKeyboard"
5
- class="currency-and-locale-modal hidden fixed inset-0 overflow-y-auto flex items-end md:items-start justify-center z-[9999] h-dvh w-full"
5
+ class="currency-and-locale-modal hidden fixed inset-0 overflow-y-auto flex items-end md:items-start justify-center z-[9999] w-full"
6
6
  style="animation-duration: 150ms;">
7
7
  <div class="w-full lg:w-[600px] relative h-auto lg:max-h-screen flex justify-center flex-col gap-4 bg-background p-5 border border-default mt-12">
8
8
  <button
@@ -12,10 +12,10 @@
12
12
  data-slideover-account-target='menu'
13
13
  class='relative sidebar-pane flex-1 !flex flex-col w-full bg-background text-text md:border-l border-default transition ease-in-out duration-300 translate-x-full'
14
14
  >
15
- <div class='p-4 gap-4 flex-shrink-0 flex items-center justify-between border-b border-default z-50'>
15
+ <div class='p-4 gap-4 shrink-0 flex items-center justify-between border-b border-default z-50'>
16
16
  <button
17
17
  data-action='slideover-account#toggle'
18
- class='flex items-center justify-center rounded-full focus:outline-none focus:bg-background'
18
+ class='flex items-center justify-center rounded-full focus:outline-hidden focus:bg-background'
19
19
  aria-label='Close account sidebar'
20
20
  >
21
21
  <%= render 'spree/shared/icons/cross' %>
@@ -15,11 +15,11 @@
15
15
  data-slideover-target='menu'
16
16
  class='relative sidebar-pane flex-1 !flex flex-col w-full bg-background text-text md:border-l border-default transition ease-in-out duration-300 translate-x-full'
17
17
  >
18
- <div class='p-4 gap-4 flex-shrink-0 flex items-center justify-between border-b border-default z-50'>
18
+ <div class='p-4 gap-4 shrink-0 flex items-center justify-between border-b border-default z-50'>
19
19
  <%= button_tag(
20
20
  type: 'button',
21
21
  data: { action: 'slideover#toggle' },
22
- class: 'flex items-center justify-center rounded-full focus:outline-none focus:bg-background',
22
+ class: 'flex items-center justify-center rounded-full focus:outline-hidden focus:bg-background',
23
23
  aria: { label: 'Close sidebar' }
24
24
  ) do %>
25
25
  <%= render 'spree/shared/icons/close' %>
@@ -2,7 +2,7 @@
2
2
 
3
3
  <div class="flex flex-col gap-4">
4
4
  <div class="flex gap-4">
5
- <div class="flex-shrink-0">
5
+ <div class="shrink-0">
6
6
  <% image = line_item.variant.default_image %>
7
7
  <% if image.present? && image.attached? && image.variable? %>
8
8
  <%= link_to spree_storefront_resource_url(line_item.product, relative: true) do %>
@@ -15,7 +15,7 @@
15
15
  <%= render 'spree/shared/icons/search' %>
16
16
  <% end %>
17
17
 
18
- <%= text_field_tag :q, params[:q], class: 'p-2 lg:text-sm !leading-6 pl-10 !h-auto bg-accent w-full uppercase pr-14 focus:outline-none text-input', placeholder: Spree.t(:search), data: { search_suggestions_target: 'input', clear_input_target: 'input' } %>
18
+ <%= text_field_tag :q, params[:q], class: 'p-2 lg:text-sm !leading-6 pl-10 !h-auto bg-accent w-full uppercase pr-14 focus:outline-hidden text-input', placeholder: Spree.t(:search), data: { search_suggestions_target: 'input', clear_input_target: 'input' } %>
19
19
  <%= button_tag class: 'hidden text-sm font-semibold absolute top-2 right-2 uppercase h-6 tracking-widest', data: { clear_input_target: 'button', action: 'click->clear-input#clear touch->clear-input#clear click->search-suggestions#clear touch->search-suggestions#clear' } do %>
20
20
  <%= Spree.t(:clear) %>
21
21
  <% 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.2.0.rc1
4
+ version: 5.2.0.rc3
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-04 00:00:00.000000000 Z
11
+ date: 2025-11-18 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.2.0.rc1
19
+ version: 5.2.0.rc3
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.2.0.rc1
26
+ version: 5.2.0.rc3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: active_link_to
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -571,9 +571,9 @@ licenses:
571
571
  - AGPL-3.0-or-later
572
572
  metadata:
573
573
  bug_tracker_uri: https://github.com/spree/spree/issues
574
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.0.rc1
574
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.2.0.rc3
575
575
  documentation_uri: https://docs.spreecommerce.org/
576
- source_code_uri: https://github.com/spree/spree/tree/v5.2.0.rc1
576
+ source_code_uri: https://github.com/spree/spree/tree/v5.2.0.rc3
577
577
  post_install_message:
578
578
  rdoc_options: []
579
579
  require_paths: