spree_frontend 4.1.0 → 4.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (314) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +120 -0
  3. data/.codeclimate.yml +36 -0
  4. data/.deepsource.toml +19 -0
  5. data/.editorconfig +22 -0
  6. data/.eslintignore +7 -0
  7. data/.eslintrc +36 -0
  8. data/.gem_release.yml +7 -0
  9. data/.github/CONTRIBUTING.md +1 -0
  10. data/.github/ISSUE_TEMPLATE/bug_report.md +47 -0
  11. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  12. data/.github/ISSUE_TEMPLATE.md +39 -0
  13. data/.github/dependabot.yml +32 -0
  14. data/.gitignore +58 -0
  15. data/.rubocop.yml +197 -0
  16. data/.solargraph.yml +20 -0
  17. data/.stylelintignore +4 -0
  18. data/.stylelintrc +6 -0
  19. data/CODE_OF_CONDUCT.md +22 -0
  20. data/Gemfile +57 -3
  21. data/LICENSE +1 -1
  22. data/README.md +89 -0
  23. data/Rakefile +1 -1
  24. data/SECURITY.md +1 -0
  25. data/app/assets/config/spree_frontend_manifest.js +5 -0
  26. data/app/assets/images/arrow-down.svg +12 -0
  27. data/app/assets/images/arrow-right-circle-fill.svg +3 -0
  28. data/app/assets/images/card-image.svg +4 -0
  29. data/app/assets/images/edit.svg +1 -1
  30. data/app/assets/images/favicon.ico +0 -0
  31. data/app/assets/images/file-image.svg +4 -0
  32. data/app/assets/images/global.svg +1 -0
  33. data/app/assets/images/image.svg +4 -0
  34. data/app/assets/images/info.svg +7 -0
  35. data/app/assets/images/logo/spree_50.png +0 -0
  36. data/app/assets/images/logo-spree.png +0 -0
  37. data/app/assets/images/logo.png +0 -0
  38. data/app/assets/images/logo.svg +10 -1
  39. data/app/assets/images/logo@2x.png +0 -0
  40. data/app/assets/images/logo@3x.png +0 -0
  41. data/app/assets/images/noimage/large.png +0 -0
  42. data/app/assets/images/noimage/mini.png +0 -0
  43. data/app/assets/images/noimage/plp.png +0 -0
  44. data/app/assets/images/noimage/plp.svg +16 -0
  45. data/app/assets/images/noimage/product.png +0 -0
  46. data/app/assets/images/noimage/small.png +0 -0
  47. data/app/assets/images/pagination-arrow-right.svg +3 -10
  48. data/app/assets/images/pagination-double-arrow-right.svg +6 -13
  49. data/app/assets/images/plus.svg +1 -1
  50. data/app/assets/images/search.svg +1 -1
  51. data/app/assets/javascripts/spree/frontend/account.js +1 -1
  52. data/app/assets/javascripts/spree/frontend/api/main.js +36 -0
  53. data/app/assets/javascripts/spree/frontend/api/storefront/cart.js +49 -0
  54. data/app/assets/javascripts/spree/frontend/cart.js +24 -2
  55. data/app/assets/javascripts/spree/frontend/checkout/address.js +78 -52
  56. data/app/assets/javascripts/spree/frontend/checkout/address_book.js +38 -40
  57. data/app/assets/javascripts/spree/frontend/checkout/payment.js +63 -23
  58. data/app/assets/javascripts/spree/frontend/checkout/shipment.js +15 -2
  59. data/app/assets/javascripts/spree/frontend/checkout.js +17 -1
  60. data/app/assets/javascripts/spree/frontend/coupon_manager.js +1 -1
  61. data/app/assets/javascripts/spree/frontend/currency.js +44 -0
  62. data/app/assets/javascripts/spree/frontend/locale.es6 +12 -0
  63. data/app/assets/javascripts/spree/frontend/login.js +5 -0
  64. data/app/assets/javascripts/spree/frontend/main.js +78 -0
  65. data/app/assets/javascripts/spree/frontend/main_nav_bar.js +86 -0
  66. data/app/assets/javascripts/spree/frontend/{turbolinks_scroll_fix.js → turbo_scroll_fix.js} +3 -3
  67. data/app/assets/javascripts/spree/frontend/views/spree/home/product_carousels.js +4 -4
  68. data/app/assets/javascripts/spree/frontend/views/spree/product/related.js +3 -3
  69. data/app/assets/javascripts/spree/frontend/views/spree/products/cart_form.js +67 -18
  70. data/app/assets/javascripts/spree/frontend/views/spree/products/description.js +1 -1
  71. data/app/assets/javascripts/spree/frontend/views/spree/products/index.js +76 -15
  72. data/app/assets/javascripts/spree/frontend/views/spree/products/price_filters.es6 +46 -0
  73. data/app/assets/javascripts/spree/frontend/views/spree/shared/mobile_navigation.js +9 -10
  74. data/app/assets/javascripts/spree/frontend/views/spree/shared/product_added_modal.js +7 -0
  75. data/app/assets/javascripts/spree/frontend/views/spree/shared/variant_select.js +93 -0
  76. data/app/assets/javascripts/spree/frontend.js +68 -11
  77. data/app/assets/stylesheets/spree/frontend/application.scss +5 -2
  78. data/app/assets/stylesheets/spree/frontend/components-bootstrap/button.scss +8 -0
  79. data/app/assets/stylesheets/spree/frontend/components-bootstrap/carousel.scss +4 -0
  80. data/app/assets/stylesheets/spree/frontend/components-custom/inputs.scss +80 -1
  81. data/app/assets/stylesheets/spree/frontend/flags/_flag-icon-base.scss +23 -0
  82. data/app/assets/stylesheets/spree/frontend/flags/_flag-icon-list.scss +265 -0
  83. data/app/assets/stylesheets/spree/frontend/flags/_variables.scss +2 -0
  84. data/app/assets/stylesheets/spree/frontend/flags/flag-icon.scss +3 -0
  85. data/app/assets/stylesheets/spree/frontend/functions.scss +1 -0
  86. data/app/assets/stylesheets/spree/frontend/helpers/spree/frontend_helper.scss +48 -0
  87. data/app/assets/stylesheets/spree/frontend/variables/bootstrap-overrides.scss +2 -2
  88. data/app/assets/stylesheets/spree/frontend/variables/helper-variables.scss +1 -0
  89. data/app/assets/stylesheets/spree/frontend/variables/variables.scss +54 -0
  90. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/confirm.scss +27 -26
  91. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/delivery.scss +6 -0
  92. data/app/assets/stylesheets/spree/frontend/views/spree/checkout/edit.scss +24 -10
  93. data/app/assets/stylesheets/spree/frontend/views/spree/cms_sections/_index.scss +1 -0
  94. data/app/assets/stylesheets/spree/frontend/views/spree/cms_sections/product_buy_bar.scss +20 -0
  95. data/app/assets/stylesheets/spree/frontend/views/spree/home/index.scss +54 -67
  96. data/app/assets/stylesheets/spree/frontend/views/spree/orders/edit.scss +4 -3
  97. data/app/assets/stylesheets/spree/frontend/views/spree/orders/show.scss +3 -0
  98. data/app/assets/stylesheets/spree/frontend/views/spree/products/cart_form.scss +8 -0
  99. data/app/assets/stylesheets/spree/frontend/views/spree/products/gallery_modal.scss +7 -0
  100. data/app/assets/stylesheets/spree/frontend/views/spree/products/index.scss +55 -26
  101. data/app/assets/stylesheets/spree/frontend/views/spree/products/show.scss +7 -0
  102. data/app/assets/stylesheets/spree/frontend/views/spree/shared/_color_select.scss +10 -9
  103. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/single.scss +1 -1
  104. data/app/assets/stylesheets/spree/frontend/views/spree/shared/carousel/thumbnails.scss +1 -0
  105. data/app/assets/stylesheets/spree/frontend/views/spree/shared/cart.scss +9 -4
  106. data/app/assets/stylesheets/spree/frontend/views/spree/shared/category_nav_bar.scss +3 -3
  107. data/app/assets/stylesheets/spree/frontend/views/spree/shared/change_store.scss +7 -0
  108. data/app/assets/stylesheets/spree/frontend/views/spree/shared/footer.scss +4 -0
  109. data/app/assets/stylesheets/spree/frontend/views/spree/shared/main_nav_bar.scss +42 -26
  110. data/app/assets/stylesheets/spree/frontend/views/spree/shared/mobile_navigation.scss +34 -3
  111. data/app/assets/stylesheets/spree/frontend/views/spree/shared/nav_bar.scss +24 -7
  112. data/app/assets/stylesheets/spree/frontend/views/spree/shared/quantity_select.scss +9 -12
  113. data/app/assets/stylesheets/spree/frontend/views/spree/shared/search_form.scss +12 -0
  114. data/app/assets/stylesheets/spree/frontend/views/spree/users/show.scss +7 -13
  115. data/app/assets/stylesheets/spree/frontend.css +0 -1
  116. data/app/controllers/concerns/spree/checkout/address_book.rb +9 -7
  117. data/app/controllers/concerns/spree/locale_urls.rb +21 -0
  118. data/app/controllers/spree/addresses_controller.rb +16 -33
  119. data/app/controllers/spree/checkout_controller.rb +15 -13
  120. data/app/controllers/spree/cms_pages_controller.rb +29 -0
  121. data/app/controllers/spree/content_controller.rb +0 -2
  122. data/app/controllers/spree/currency_controller.rb +17 -0
  123. data/app/controllers/spree/errors_controller.rb +11 -0
  124. data/app/controllers/spree/home_controller.rb +38 -1
  125. data/app/controllers/spree/locale_controller.rb +35 -6
  126. data/app/controllers/spree/orders_controller.rb +12 -10
  127. data/app/controllers/spree/products_controller.rb +46 -28
  128. data/app/controllers/spree/store_controller.rb +77 -12
  129. data/app/controllers/spree/taxons_controller.rb +16 -8
  130. data/app/helpers/spree/addresses_helper.rb +64 -12
  131. data/app/helpers/spree/cache_helper.rb +7 -0
  132. data/app/helpers/spree/cms_pages_helper.rb +23 -0
  133. data/app/helpers/spree/frontend_helper.rb +170 -18
  134. data/app/helpers/spree/navigation_helper.rb +81 -4
  135. data/app/helpers/spree/products_filters_helper.rb +168 -0
  136. data/app/helpers/spree/store_helper.rb +41 -0
  137. data/app/helpers/spree/structured_data_helper.rb +6 -2
  138. data/app/helpers/spree/taxons_helper.rb +2 -2
  139. data/app/services/spree/build_localized_redirect_url.rb +141 -0
  140. data/app/views/kaminari/twitter-bootstrap-4/_first_page.html.erb +3 -3
  141. data/app/views/kaminari/twitter-bootstrap-4/_gap.html.erb +2 -2
  142. data/app/views/kaminari/twitter-bootstrap-4/_last_page.html.erb +3 -3
  143. data/app/views/kaminari/twitter-bootstrap-4/_next_page.html.erb +3 -3
  144. data/app/views/kaminari/twitter-bootstrap-4/_page.html.erb +2 -2
  145. data/app/views/kaminari/twitter-bootstrap-4/_paginator.html.erb +2 -2
  146. data/app/views/kaminari/twitter-bootstrap-4/_prev_page.html.erb +3 -3
  147. data/app/views/spree/address/_form.html.erb +26 -27
  148. data/app/views/spree/addresses/_form.html.erb +15 -6
  149. data/app/views/spree/addresses/edit.html.erb +13 -8
  150. data/app/views/spree/addresses/new.html.erb +8 -4
  151. data/app/views/spree/checkout/_address.html.erb +19 -23
  152. data/app/views/spree/checkout/_confirm.html.erb +1 -75
  153. data/app/views/spree/checkout/_credit_card.html.erb +3 -2
  154. data/app/views/spree/checkout/_delivery.html.erb +11 -4
  155. data/app/views/spree/checkout/_delivery_informations.html.erb +51 -0
  156. data/app/views/spree/checkout/_payment.html.erb +5 -24
  157. data/app/views/spree/checkout/_payment_sources.html.erb +17 -0
  158. data/app/views/spree/checkout/_summary.html.erb +22 -19
  159. data/app/views/spree/checkout/edit.html.erb +22 -2
  160. data/app/views/spree/checkout/payment/_gateway.html.erb +2 -2
  161. data/app/views/spree/checkout/registration.html.erb +3 -3
  162. data/app/views/spree/cms_pages/show.html.erb +16 -0
  163. data/app/views/spree/errors/not_found.html.erb +2 -2
  164. data/app/views/spree/home/index.html.erb +17 -123
  165. data/app/views/spree/layouts/checkout.html.erb +3 -1
  166. data/app/views/spree/layouts/spree_application.html.erb +3 -2
  167. data/app/views/spree/locale/index.html.erb +1 -0
  168. data/app/views/spree/orders/_coupon_code.html.erb +3 -4
  169. data/app/views/spree/orders/_line_item.html.erb +4 -4
  170. data/app/views/spree/orders/_line_item_data.html.erb +3 -3
  171. data/app/views/spree/orders/edit.html.erb +2 -3
  172. data/app/views/spree/orders/show.html.erb +2 -72
  173. data/app/views/spree/products/_cart_form.html.erb +5 -2
  174. data/app/views/spree/products/_color_option_type.html.erb +14 -14
  175. data/app/views/spree/products/_description.html.erb +19 -14
  176. data/app/views/spree/products/_filters_desktop.html.erb +80 -40
  177. data/app/views/spree/products/_filters_mobile.html.erb +47 -15
  178. data/app/views/spree/products/_gallery.html.erb +4 -6
  179. data/app/views/spree/products/_gallery_modal.html.erb +4 -6
  180. data/app/views/spree/products/_option_type.html.erb +1 -3
  181. data/app/views/spree/products/_product.html.erb +1 -1
  182. data/app/views/spree/products/_properties.html.erb +6 -4
  183. data/app/views/spree/products/_sort_desktop.html.erb +20 -14
  184. data/app/views/spree/products/_sort_mobile.html.erb +24 -8
  185. data/app/views/spree/products/_thumbnails.html.erb +2 -2
  186. data/app/views/spree/products/index.html.erb +7 -4
  187. data/app/views/spree/products/related.html.erb +11 -5
  188. data/app/views/spree/products/show.html.erb +2 -3
  189. data/app/views/spree/shared/_breadcrumbs.html.erb +2 -2
  190. data/app/views/spree/shared/_carousel_4_products.html.erb +14 -20
  191. data/app/views/spree/shared/_cart.html.erb +1 -1
  192. data/app/views/spree/shared/_checkout_header.html.erb +22 -21
  193. data/app/views/spree/shared/_color_select.html.erb +3 -3
  194. data/app/views/spree/shared/_copyright.html.erb +1 -10
  195. data/app/views/spree/shared/_currency_dropdown.html.erb +13 -0
  196. data/app/views/spree/shared/_delete_address_popup.html.erb +1 -2
  197. data/app/views/spree/shared/_error_messages.html.erb +2 -2
  198. data/app/views/spree/shared/_footer.html.erb +31 -21
  199. data/app/views/spree/shared/_get_started.html.erb +32 -0
  200. data/app/views/spree/shared/_head.html.erb +8 -5
  201. data/app/views/spree/shared/_header.html.erb +4 -4
  202. data/app/views/spree/shared/_internationalization_options.html.erb +31 -0
  203. data/app/views/spree/shared/_line_item.html.erb +3 -3
  204. data/app/views/spree/shared/_link_to_account.html.erb +7 -4
  205. data/app/views/spree/shared/_link_to_cart.html.erb +1 -2
  206. data/app/views/spree/shared/_locale_and_currency.html.erb +6 -0
  207. data/app/views/spree/shared/_locale_dropdown.html.erb +13 -0
  208. data/app/views/spree/shared/_login.html.erb +5 -5
  209. data/app/views/spree/shared/_main_nav_bar.html.erb +69 -45
  210. data/app/views/spree/shared/_mobile_internationalization_options.html.erb +37 -0
  211. data/app/views/spree/shared/_mobile_navigation.html.erb +48 -63
  212. data/app/views/spree/shared/_nav_bar.html.erb +9 -19
  213. data/app/views/spree/shared/_no_product_available.html.erb +1 -1
  214. data/app/views/spree/shared/_option_values.html.erb +2 -21
  215. data/app/views/spree/shared/_order_details.html.erb +117 -174
  216. data/app/views/spree/shared/_paths.html.erb +8 -0
  217. data/app/views/spree/shared/_payment.html.erb +2 -2
  218. data/app/views/spree/shared/_payment_sources.html.erb +2 -2
  219. data/app/views/spree/shared/_product_added_modal.html.erb +3 -3
  220. data/app/views/spree/shared/_properties.html.erb +4 -0
  221. data/app/views/spree/shared/_quantity_select.html.erb +2 -2
  222. data/app/views/spree/shared/_search.html.erb +9 -13
  223. data/app/views/spree/shared/_translations.html.erb +8 -7
  224. data/app/views/spree/shared/carousel/_single.html.erb +9 -14
  225. data/app/views/spree/shared/carousel/_thumbnails.html.erb +35 -39
  226. data/app/views/spree/shared/cms/pages/_edit_mode.html.erb +13 -0
  227. data/app/views/spree/shared/cms/sections/_featured_article.html.erb +27 -0
  228. data/app/views/spree/shared/cms/sections/_hero_image.html.erb +60 -0
  229. data/app/views/spree/shared/cms/sections/_image_gallery.html.erb +171 -0
  230. data/app/views/spree/shared/cms/sections/_product_carousel.html.erb +5 -0
  231. data/app/views/spree/shared/cms/sections/_rich_text_content.html.erb +3 -0
  232. data/app/views/spree/shared/cms/sections/_side_by_side_images.html.erb +118 -0
  233. data/app/views/spree/taxons/_header.html.erb +7 -2
  234. data/app/views/spree/users/_address.html.erb +16 -24
  235. data/app/views/spree/users/_address_controls.html.erb +10 -0
  236. data/app/views/spree/users/show.html.erb +21 -16
  237. data/config/initializers/admin_actions.rb +18 -0
  238. data/config/initializers/assets.rb +4 -13
  239. data/config/initializers/canonical_rails.rb +1 -1
  240. data/config/routes.rb +30 -26
  241. data/lib/generators/spree/frontend/copy_storefront/copy_storefront_generator.rb +1 -7
  242. data/lib/generators/spree/frontend/install/install_generator.rb +34 -0
  243. data/lib/generators/spree/frontend/install/templates/app/assets/config/manifest.js +2 -0
  244. data/lib/generators/spree/frontend/install/templates/vendor/assets/javascripts/spree/frontend/all.js +8 -0
  245. data/lib/generators/spree/frontend/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +9 -0
  246. data/lib/spree/frontend/configuration.rb +18 -0
  247. data/lib/spree/frontend/engine.rb +3 -1
  248. data/lib/spree/frontend/version.rb +9 -0
  249. data/lib/spree/frontend.rb +8 -4
  250. data/license.md +13 -0
  251. data/spec/fixtures/files/store_favicon.ico +0 -0
  252. data/spree_frontend.gemspec +26 -14
  253. data/vendor/assets/javascripts/cleave.js +8 -0
  254. data/vendor/assets/javascripts/fetch.umd.js +531 -0
  255. data/vendor/assets/javascripts/jquery.payment.js +652 -0
  256. data/vendor/assets/javascripts/jsuri.js +458 -0
  257. data/vendor/assets/javascripts/polyfill.min.js +1 -0
  258. metadata +224 -86
  259. data/app/assets/images/homepage/big_category_banner.jpg +0 -0
  260. data/app/assets/images/homepage/big_category_banner_mobile.jpg +0 -0
  261. data/app/assets/images/homepage/big_category_banner_tablet_landscape.jpg +0 -0
  262. data/app/assets/images/homepage/big_category_banner_tablet_portrait.jpg +0 -0
  263. data/app/assets/images/homepage/category_banner_lower.jpg +0 -0
  264. data/app/assets/images/homepage/category_banner_lower_mobile.jpg +0 -0
  265. data/app/assets/images/homepage/category_banner_lower_tablet_landscape.jpg +0 -0
  266. data/app/assets/images/homepage/category_banner_lower_tablet_portrait.jpg +0 -0
  267. data/app/assets/images/homepage/category_banner_upper.jpg +0 -0
  268. data/app/assets/images/homepage/category_banner_upper_mobile.jpg +0 -0
  269. data/app/assets/images/homepage/category_banner_upper_tablet_landscape.jpg +0 -0
  270. data/app/assets/images/homepage/category_banner_upper_tablet_portrait.jpg +0 -0
  271. data/app/assets/images/homepage/main_banner.jpg +0 -0
  272. data/app/assets/images/homepage/main_banner_mobile.jpg +0 -0
  273. data/app/assets/images/homepage/main_banner_tablet_landscape.jpg +0 -0
  274. data/app/assets/images/homepage/main_banner_tablet_portrait.jpg +0 -0
  275. data/app/assets/images/homepage/promo_banner_left.jpg +0 -0
  276. data/app/assets/images/homepage/promo_banner_left_mobile.jpg +0 -0
  277. data/app/assets/images/homepage/promo_banner_left_tablet_landscape.jpg +0 -0
  278. data/app/assets/images/homepage/promo_banner_left_tablet_portrait.jpg +0 -0
  279. data/app/assets/images/homepage/promo_banner_right.jpg +0 -0
  280. data/app/assets/images/homepage/promo_banner_right_mobile.jpg +0 -0
  281. data/app/assets/images/homepage/promo_banner_right_tablet_landscape.jpg +0 -0
  282. data/app/assets/images/homepage/promo_banner_right_tablet_portrait.jpg +0 -0
  283. data/app/assets/images/meganav/promo_banner_left-first-category.jpg +0 -0
  284. data/app/assets/images/meganav/promo_banner_left-second-category.jpg +0 -0
  285. data/app/assets/images/meganav/promo_banner_left-third-category.jpg +0 -0
  286. data/app/assets/images/meganav/promo_banner_right-first-category.jpg +0 -0
  287. data/app/assets/images/meganav/promo_banner_right-second-category.jpg +0 -0
  288. data/app/assets/images/meganav/promo_banner_right-third-category.jpg +0 -0
  289. data/app/assets/images/noimage/big_category_banner.jpg +0 -0
  290. data/app/assets/images/noimage/big_category_banner_mobile.jpg +0 -0
  291. data/app/assets/images/noimage/big_category_banner_tablet_landscape.jpg +0 -0
  292. data/app/assets/images/noimage/big_category_banner_tablet_portrait.jpg +0 -0
  293. data/app/assets/images/noimage/category_banner.jpg +0 -0
  294. data/app/assets/images/noimage/category_banner_mobile.jpg +0 -0
  295. data/app/assets/images/noimage/category_banner_plp.jpg +0 -0
  296. data/app/assets/images/noimage/category_banner_tablet_landscape.jpg +0 -0
  297. data/app/assets/images/noimage/category_banner_tablet_portrait.jpg +0 -0
  298. data/app/assets/images/noimage/main_banner.jpg +0 -0
  299. data/app/assets/images/noimage/main_banner_mobile.jpg +0 -0
  300. data/app/assets/images/noimage/main_banner_tablet_landscape.jpg +0 -0
  301. data/app/assets/images/noimage/main_banner_tablet_portrait.jpg +0 -0
  302. data/app/assets/images/noimage/product_photo.jpg +0 -0
  303. data/app/assets/images/noimage/promo_banner.jpg +0 -0
  304. data/app/assets/images/noimage/promo_banner_megamenu.jpg +0 -0
  305. data/app/assets/images/noimage/promo_banner_mobile.jpg +0 -0
  306. data/app/assets/images/noimage/promo_banner_tablet_landscape.jpg +0 -0
  307. data/app/assets/images/noimage/promo_banner_tablet_portrait.jpg +0 -0
  308. data/app/assets/images/spark-logo@3x.png +0 -0
  309. data/app/assets/stylesheets/spree/frontend/_glyphicons_urls_fix.scss +0 -10
  310. data/app/assets/stylesheets/spree/frontend/address_book.scss +0 -8
  311. data/app/models/spree/frontend_configuration.rb +0 -7
  312. data/app/views/spree/shared/_taxonomies.html.erb +0 -16
  313. /data/app/views/spree/{shared → errors}/forbidden.html.erb +0 -0
  314. /data/app/views/spree/{shared → errors}/unauthorized.html.erb +0 -0
@@ -1,6 +1,26 @@
1
+ .position-absolute-center {
2
+ position:absolute;
3
+ left:50%;
4
+ top:50%;
5
+ transform:translate(-50%, -50%);
6
+ }
7
+
8
+ .position-absolute-x-center {
9
+ position:absolute;
10
+ left:50%;
11
+ transform:translate(-50%, 0);
12
+ }
13
+
14
+ .position-absolute-y-center {
15
+ position:absolute;
16
+ top:50%;
17
+ transform:translate(0, -50%);
18
+ }
19
+
1
20
  #breadcrumbs {
2
21
  padding: 0;
3
22
  }
23
+
4
24
  .breadcrumb {
5
25
  background: none;
6
26
  padding: 0.5rem 0;
@@ -23,3 +43,31 @@
23
43
  .breadcrumb-product-name {
24
44
  padding-right: 9.5px;
25
45
  }
46
+
47
+ .truncate {
48
+ white-space: nowrap;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+ }
52
+
53
+ // Aspect Ratios
54
+ [style*="--aspect-ratio"] > img,
55
+ [style*="--aspect-ratio"] > svg {
56
+ width: 100%;
57
+ height: 100%;
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ }
62
+
63
+ @supports (--custom:property) {
64
+ [style*="--aspect-ratio"] {
65
+ position: relative;
66
+ }
67
+
68
+ [style*="--aspect-ratio"]::before {
69
+ content: "";
70
+ display: block;
71
+ padding-bottom: calc(100% / (var(--aspect-ratio)));
72
+ }
73
+ }
@@ -1,3 +1,4 @@
1
+ // we're keeping this file for legacy installations relying on it
1
2
  $grid-gutter-width: 19px;
2
3
  $body-color: $font-color;
3
4
  $theme-colors: (
@@ -35,6 +36,5 @@ $grid-breakpoints: (
35
36
  $container-max-widths: (
36
37
  sm: 768px,
37
38
  md: 992px,
38
- lg: 1200px,
39
- xl: 1200px
39
+ lg: 1200px
40
40
  );
@@ -1,3 +1,4 @@
1
+ // we're keeping this file for legacy installations relying on it
1
2
  $container-padding: 17px;
2
3
  $photo-width-to-height-ratio: 30001/ 37500;
3
4
  $photo-width-to-height-ratio-zoom: 28015 / 37500;
@@ -1,3 +1,4 @@
1
+ // main spree variables
1
2
  $primary-color: #0074c2;
2
3
  $secondary-color: #4c4c4c;
3
4
  $primary-background: #ffffff;
@@ -18,3 +19,56 @@ $spree-header-max-width: 1440px;
18
19
  $spree-header-mobile-height: 50px;
19
20
  $spree-header-tablet-height: 75px;
20
21
  $spree-header-desktop-height: 75px;
22
+
23
+ // bootstrap overrides
24
+ $grid-gutter-width: 1rem;
25
+ $body-color: $font-color;
26
+ $theme-colors: (
27
+ // standard bootstrap colors
28
+ "primary": $primary-color,
29
+ "secondary": $secondary-color,
30
+ "danger": #f53737,
31
+ "info": #999999,
32
+ "warning": #ffc107,
33
+ "light-secondary": #999999,
34
+ "borders": $second-global-border,
35
+ "dark-borders": $global-border-style,
36
+ "light-background": $primary-background,
37
+ "dark-text": $font-color,
38
+ "overlay": rgba(76, 76, 76, 0.5),
39
+ "shadow": rgba(0, 0, 0, 0.16)
40
+ );
41
+ $enable-rounded: false;
42
+ $enable-shadows: false;
43
+ $enable-gradients: false;
44
+ $font-family-sans-serif: $font-family;
45
+ $font-weight-medium: 500;
46
+ .font-weight-medium {
47
+ font-weight: $font-weight-medium;
48
+ }
49
+ $btn-border-width: 2px;
50
+ $modal-dialog-margin: 0;
51
+ $grid-breakpoints: (
52
+ xs: 0,
53
+ sm: 576px,
54
+ md: 768px,
55
+ lg: 992px,
56
+ xl: 1200px
57
+ );
58
+ $container-max-widths: (
59
+ sm: 768px,
60
+ md: 992px,
61
+ lg: 1200px
62
+ );
63
+
64
+ // helper variables
65
+ $container-padding: $grid-gutter-width / 2;
66
+ $photo-width-to-height-ratio: 30001/ 37500;
67
+ $photo-width-to-height-ratio-zoom: 28015 / 37500;
68
+ $thumbnails-carousel-single-height: 100% / $photo-width-to-height-ratio;
69
+ $thumbnails-carousel-single-height-zoom: 100% /
70
+ $photo-width-to-height-ratio-zoom;
71
+ $zoom-height-breakpoint: calc(
72
+ 650px / #{$photo-width-to-height-ratio-zoom} + 102px * 2
73
+ );
74
+ $spree-plp-filter-desktop-position: $spree-header-desktop-height + 77px;
@@ -2,11 +2,6 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
 
5
- div:first-child {
6
- -webkit-flex: 0;
7
- flex-shrink: 0;
8
- }
9
-
10
5
  &-order-details {
11
6
  padding-bottom: 40px;
12
7
  font-weight: 500;
@@ -36,6 +31,9 @@
36
31
  }
37
32
 
38
33
  &-line-items {
34
+ @include media-breakpoint-down(sm) {
35
+ flex-basis: 100%;
36
+ }
39
37
  @include media-breakpoint-up(lg) {
40
38
  border: none;
41
39
  flex: 1 1 0;
@@ -48,15 +46,6 @@
48
46
  &-line-item {
49
47
  $self: &;
50
48
 
51
- a {
52
- max-width: 50%;
53
- margin-right: 20px;
54
-
55
- @include media-breakpoint-up(lg) {
56
- margin-right: 40px;
57
- }
58
- }
59
-
60
49
  img {
61
50
  width: 90px;
62
51
  height: auto;
@@ -73,14 +62,28 @@
73
62
  &-name {
74
63
  font-size: font-px-to-rem(14px);
75
64
  border-top: 1px solid $global-border-style;
65
+ margin-right: 20px;
76
66
 
77
- @include media-breakpoint-up(sm) {
78
- font-size: font-px-to-rem(27px);
67
+ &-image {
68
+ padding-right: 16px;
79
69
  }
80
70
 
81
- @include media-breakpoint-up(lg) {
82
- font-size: font-px-to-rem(22px);
83
- width: 55%;
71
+ &-link {
72
+ max-width: 50%;
73
+
74
+ @include media-breakpoint-up(lg) {
75
+ margin-right: 40px;
76
+ }
77
+
78
+
79
+ @include media-breakpoint-up(sm) {
80
+ font-size: font-px-to-rem(27px);
81
+ }
82
+
83
+ @include media-breakpoint-up(lg) {
84
+ font-size: font-px-to-rem(22px);
85
+ width: 55%;
86
+ }
84
87
  }
85
88
 
86
89
  &-options {
@@ -185,6 +188,8 @@
185
188
  }
186
189
 
187
190
  &-delivery-informations {
191
+ flex-basis: 100%;
192
+
188
193
  div:first-child {
189
194
  flex-shrink: unset;
190
195
  -webkit-flex: unset;
@@ -253,13 +258,9 @@
253
258
  }
254
259
 
255
260
  #checkout-summary {
256
- margin-top: 20px;
257
- @include media-breakpoint-up(sm) {
258
- margin-top: 70px;
259
- }
260
- @include media-breakpoint-up(lg) {
261
- flex: 0 0 40%;
262
- align-self: flex-start;
261
+ flex: 1 1 0;
262
+ @include media-breakpoint-down(sm) {
263
+ margin-top: 20px;
263
264
  }
264
265
  }
265
266
  }
@@ -0,0 +1,6 @@
1
+ #shipToLocation {
2
+ font-size: font-px-to-rem(10px);
3
+ @include media-breakpoint-up(md) {
4
+ font-size: font-px-to-rem(14px);
5
+ }
6
+ }
@@ -32,9 +32,21 @@
32
32
  }
33
33
  }
34
34
  &-text {
35
- padding-left: 15px;
35
+ color: black;
36
+ font-size: 0.8rem;
37
+ @include media-breakpoint-up(sm) {
38
+ font-size: 1rem;
39
+ }
40
+ @include media-breakpoint-up(lg) {
41
+ font-size: 1.25rem;
42
+ }
43
+ svg {
44
+ height: 15px;
45
+ padding-top: 2px;
46
+ }
36
47
  &:hover {
37
48
  text-decoration: underline;
49
+ color: black;
38
50
  }
39
51
  }
40
52
  }
@@ -149,7 +161,7 @@
149
161
  }
150
162
  hr {
151
163
  margin: 0;
152
- width: 33%;
164
+ flex: 1;
153
165
  border: 1px solid theme-color('info');
154
166
  }
155
167
  }
@@ -160,8 +172,11 @@
160
172
  .nav-item {
161
173
  color: theme-color('info');
162
174
  font-weight: 600;
175
+ max-width: 70px;
176
+ text-align: center;
163
177
  @include media-breakpoint-up(sm) {
164
178
  font-weight: 500;
179
+ max-width: 100px;
165
180
  }
166
181
  a {
167
182
  color: inherit;
@@ -385,19 +400,19 @@
385
400
  }
386
401
  &-header {
387
402
  font-size: font-px-to-rem(16px);
403
+ hyphens: auto;
404
+ overflow-wrap: break-word;
405
+ word-wrap: break-word;
388
406
  font-weight: 500;
389
- line-height: 1.06;
390
407
  letter-spacing: 0.4px;
391
- margin-bottom: 35px;
408
+ margin-bottom: 30px;
392
409
  @include media-breakpoint-up(sm) {
393
410
  font-size: font-px-to-rem(29px);
394
- line-height: 1.1;
395
411
  letter-spacing: 0.73px;
396
412
  margin-bottom: 74px;
397
413
  }
398
414
  @include media-breakpoint-up(lg) {
399
415
  font-size: font-px-to-rem(26px);
400
- line-height: 0.65;
401
416
  letter-spacing: 0.65px;
402
417
  margin-bottom: 35px;
403
418
  }
@@ -494,9 +509,6 @@
494
509
  font-size: font-px-to-rem(16px);
495
510
  }
496
511
  }
497
- .delete-address-img {
498
- color: $primary-color;
499
- }
500
512
  }
501
513
 
502
514
  #checkout-summary {
@@ -508,7 +520,8 @@
508
520
  height: 100%;
509
521
  padding: 0;
510
522
  max-width: 380px;
511
- align-self: flex-end;
523
+ margin-right: 0;
524
+ margin-left: auto;
512
525
  }
513
526
  }
514
527
 
@@ -517,3 +530,4 @@
517
530
  }
518
531
  }
519
532
  }
533
+
@@ -0,0 +1 @@
1
+ @import "spree/frontend/views/spree/cms_sections/product_buy_bar";
@@ -0,0 +1,20 @@
1
+ .row.section-row.sticky-top {
2
+ z-index: 3;
3
+ background-color: rgba(255, 255, 255, 0.95);
4
+ padding: 5px 0;
5
+ border-top: 1px solid $global-border-style;
6
+ border-bottom: 1px solid $global-border-style;
7
+ top: $spree-header-mobile-height + 24px;
8
+
9
+ .buy-container {
10
+ min-height: $spree-header-mobile-height;
11
+ }
12
+
13
+ li.buy-bar {
14
+ a { color: grey;
15
+ &.active {
16
+ color: $header-font-color;
17
+ }
18
+ }
19
+ }
20
+ }
@@ -1,10 +1,29 @@
1
+ :root {
2
+ --spree-border-color: transparent;
3
+ }
4
+
5
+ .brand {
6
+ img {
7
+ width: 85%;
8
+ max-width: 140px;
9
+ }
10
+ }
11
+
12
+ .section-row {
13
+ margin-bottom: #{$grid-gutter-width};
14
+ }
15
+
16
+ .match-col-gap {
17
+ padding-left: $container-padding;
18
+ padding-right: $container-padding;
19
+ }
20
+
1
21
  .homepage {
2
22
  &-hero-image {
3
23
  display: flex;
4
- justify-content: center;
24
+ justify-content: flex-start;
5
25
  flex-direction: column;
6
26
  text-align: center;
7
- height: 204px;
8
27
  width: 100%;
9
28
  overflow: hidden;
10
29
 
@@ -16,16 +35,7 @@
16
35
  height: 100%;
17
36
  }
18
37
 
19
- @include media-breakpoint-up(md) {
20
- height: 418px;
21
- }
22
-
23
- @include media-breakpoint-up(lg) {
24
- height: 600px;
25
- }
26
-
27
38
  .hero-content {
28
- position: absolute;
29
39
  z-index: 1;
30
40
  right: 10%;
31
41
  }
@@ -40,7 +50,7 @@
40
50
 
41
51
  @include media-breakpoint-up(md) {
42
52
  font-size: font-px-to-rem(44px);
43
- width: 288px;
53
+ width: 398px;
44
54
  }
45
55
 
46
56
  @include media-breakpoint-up(lg) {
@@ -65,17 +75,6 @@
65
75
 
66
76
  &-taxon-box {
67
77
  display: block;
68
- flex-direction: column;
69
- height: 140px;
70
- position: relative;
71
- overflow: hidden;
72
-
73
- img {
74
- display: block;
75
- object-fit: cover;
76
- width: 100%;
77
- height: 100%;
78
- }
79
78
 
80
79
  h3 {
81
80
  margin: 0;
@@ -97,14 +96,6 @@
97
96
  }
98
97
  }
99
98
 
100
- @include media-breakpoint-up(md) {
101
- height: 324px;
102
- }
103
-
104
- @include media-breakpoint-up(lg) {
105
- height: 390px;
106
- }
107
-
108
99
  &-text {
109
100
  width: 100%;
110
101
  text-transform: uppercase;
@@ -133,10 +124,10 @@
133
124
  &-fashion-trends-box {
134
125
  background: $secondary-background;
135
126
  color: $secondary-font-color;
136
- padding: 30px 0px;
127
+ padding: 30px 15px;
137
128
 
138
129
  @include media-breakpoint-up(md) {
139
- padding: 60px 0px;
130
+ padding: 5vw 0px;
140
131
  }
141
132
 
142
133
  &-summer-text {
@@ -178,11 +169,12 @@
178
169
  color: $font-color;
179
170
  margin: auto;
180
171
  font-size: font-px-to-rem(12px);
181
- width: 283px;
172
+ max-width: 283px;
182
173
 
183
174
  @include media-breakpoint-up(md) {
184
175
  font-size: font-px-to-rem(16px);
185
- width: 608px;
176
+ width: 90%;
177
+ max-width: 608px;
186
178
  }
187
179
  }
188
180
  .spree-btn {
@@ -190,58 +182,36 @@
190
182
  border: solid 2px theme-color('primary');
191
183
  font-size: font-px-to-rem(12px);
192
184
  font-weight: bold;
185
+ max-width: 100%;
193
186
  @include media-breakpoint-up(md) {
194
187
  font-size: font-px-to-rem(22px);
195
- width: 400px;
196
- padding-top: 0.7rem;
197
188
  }
198
189
  @include media-breakpoint-up(lg) {
199
190
  font-size: font-px-to-rem(20px);
200
- width: 497.2px;
201
191
  }
202
192
  }
203
193
  }
204
194
  }
205
195
 
206
196
  &-bottom-box {
207
- background: $secondary-background;
208
- color: $secondary-font-color;
209
- display: flex;
210
- justify-content: center;
211
- flex-direction: column;
212
- text-align: center;
213
- height: 168px;
214
- overflow: hidden;
215
-
216
197
  img {
217
198
  width: 100%;
218
199
  object-fit: cover;
219
200
  }
220
201
 
221
- @include media-breakpoint-up(md) {
222
- height: 363px;
223
- }
224
- @include media-breakpoint-up(lg) {
225
- height: 350px;
226
- }
227
-
228
202
  &-inner {
229
203
  background: $primary-background;
230
204
  margin: auto;
231
- padding: 10px 30px;
232
205
  position: absolute;
233
- width: 70%;
234
- left: 15%;
235
-
236
- @include media-breakpoint-up(md) {
237
- padding: 30px 100px;
238
- }
206
+ max-height: 70%;
207
+ min-width: 60%;
208
+ max-width: 80%;
209
+ bottom: 35px;
239
210
 
240
211
  &-small-text {
241
212
  font-weight: 500;
242
213
  line-height: 0.9;
243
214
  letter-spacing: 0.25px;
244
- text-align: center;
245
215
  color: theme-color('primary');
246
216
  font-size: font-px-to-rem(10px);
247
217
 
@@ -257,9 +227,12 @@
257
227
  font-weight: 600;
258
228
  line-height: 1.2;
259
229
  letter-spacing: 0.38px;
260
- text-align: center;
261
230
  color: $font-color;
262
- font-size: font-px-to-rem(15px);
231
+ font-size: font-px-to-rem(14px);
232
+
233
+ @include media-breakpoint-up(sm) {
234
+ font-size: font-px-to-rem(22px);
235
+ }
263
236
 
264
237
  @include media-breakpoint-up(md) {
265
238
  font-size: font-px-to-rem(27px);
@@ -280,14 +253,28 @@
280
253
  text-decoration: none !important;
281
254
  }
282
255
  &-text {
283
- font-size: 12px;
256
+ font-size: font-px-to-rem(12px);
284
257
 
285
258
  @include media-breakpoint-up(md) {
286
- font-size: 22px;
259
+ font-size: font-px-to-rem(22px);
287
260
  }
288
261
  @include media-breakpoint-up(lg) {
289
- font-size: 24px;
262
+ font-size: font-px-to-rem(24px);
290
263
  }
291
264
  }
292
265
  }
266
+
267
+ &-hpb {
268
+ border: 3px solid var(--spree-border-color);
269
+ }
270
+ }
271
+
272
+ #missingHomepage {
273
+ .missing-homepage-logo-container {
274
+ width: 160px;
275
+
276
+ img {
277
+ max-width: 100%;
278
+ }
279
+ }
293
280
  }
@@ -42,7 +42,7 @@
42
42
  }
43
43
  }
44
44
  &-continue-link {
45
- margin-top: 234px;
45
+ margin-top: 100px;
46
46
  margin-bottom: 30px;
47
47
  @include media-breakpoint-up(sm) {
48
48
  padding: 20px 12px;
@@ -131,7 +131,7 @@
131
131
  }
132
132
  }
133
133
  &-description {
134
- h4 {
134
+ h2 {
135
135
  font-size: font-px-to-rem(14px);
136
136
  @include media-breakpoint-up(sm) {
137
137
  font-size: font-px-to-rem(22px);
@@ -227,6 +227,7 @@
227
227
  border-width: 1px !important;
228
228
  border-style: solid;
229
229
  color: color-yiq($input-background);
230
+ touch-action: manipulation;
230
231
  @include media-breakpoint-up(sm) {
231
232
  height: 51.4px;
232
233
  font-size: font-px-to-rem(24px);
@@ -358,7 +359,7 @@
358
359
  }
359
360
  }
360
361
  }
361
- input[type=text] {
362
+ input[type="text"] {
362
363
  -webkit-appearance: none;
363
364
  -moz-appearance: none;
364
365
  appearance: none;
@@ -261,6 +261,9 @@
261
261
  }
262
262
  #checkout-summary {
263
263
  margin-top: 30px;
264
+ @include media-breakpoint-down(sm) {
265
+ flex-basis: 100%;
266
+ }
264
267
  @include media-breakpoint-up(sm) {
265
268
  margin-top: 75px;
266
269
  }
@@ -6,6 +6,11 @@
6
6
  @include media-breakpoint-up(sm) {
7
7
  font-size: font-px-to-rem(36px);
8
8
  }
9
+
10
+ .compare-at-price {
11
+ color: theme-color("info");
12
+ text-decoration: line-through;
13
+ }
9
14
  }
10
15
  &-general-availability {
11
16
  font-size: font-px-to-rem(12px);
@@ -87,6 +92,9 @@
87
92
  border-color: theme-color("dark-text");
88
93
  }
89
94
  }
95
+ &:focus + label, &:focus + svg {
96
+ outline: theme-color("dark-text") dotted 2px;
97
+ }
90
98
  &--bad-combination {
91
99
  & + #{$self2}-label {
92
100
  position: relative;
@@ -0,0 +1,7 @@
1
+ #picturesModal {
2
+ .close {
3
+ right: 0;
4
+ z-index: 3;
5
+ padding: 10px 15px;
6
+ }
7
+ }