spree_core 4.1.14 → 4.2.0.beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +1 -0
  3. data/app/helpers/spree/base_helper.rb +23 -2
  4. data/app/helpers/spree/mail_helper.rb +24 -0
  5. data/app/mailers/spree/base_mailer.rb +17 -3
  6. data/app/mailers/spree/order_mailer.rb +11 -2
  7. data/app/mailers/spree/reimbursement_mailer.rb +4 -2
  8. data/app/mailers/spree/shipment_mailer.rb +4 -2
  9. data/app/models/concerns/spree/default_price.rb +2 -1
  10. data/app/models/concerns/spree/user_methods.rb +11 -5
  11. data/app/models/spree/app_configuration.rb +5 -0
  12. data/app/models/spree/app_dependencies.rb +1 -7
  13. data/app/models/spree/line_item.rb +11 -3
  14. data/app/models/spree/option_type.rb +5 -1
  15. data/app/models/spree/order.rb +28 -12
  16. data/app/models/spree/order/address_book.rb +20 -7
  17. data/app/models/spree/price.rb +26 -2
  18. data/app/models/spree/product.rb +17 -7
  19. data/app/models/spree/promotion_handler/coupon.rb +3 -2
  20. data/app/models/spree/reimbursement.rb +2 -0
  21. data/app/models/spree/shipment.rb +2 -5
  22. data/app/models/spree/stock_location.rb +13 -2
  23. data/app/models/spree/store.rb +19 -2
  24. data/app/models/spree/variant.rb +15 -2
  25. data/app/presenters/spree/variant_presenter.rb +7 -0
  26. data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
  27. data/app/services/spree/checkout/update.rb +2 -13
  28. data/app/views/layouts/spree/base_mailer.html.erb +45 -40
  29. data/app/views/spree/order_mailer/cancel_email.html.erb +19 -25
  30. data/app/views/spree/order_mailer/cancel_email.text.erb +24 -2
  31. data/app/views/spree/order_mailer/confirm_email.html.erb +18 -65
  32. data/app/views/spree/order_mailer/confirm_email.text.erb +2 -1
  33. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
  34. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +38 -0
  35. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +53 -58
  36. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +3 -1
  37. data/app/views/spree/shared/_base_mailer_footer.html.erb +6 -14
  38. data/app/views/spree/shared/_base_mailer_header.html.erb +12 -32
  39. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +293 -625
  40. data/app/views/spree/shared/_purchased_items_table.html.erb +60 -0
  41. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
  42. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +27 -0
  43. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
  44. data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
  45. data/app/views/spree/shipment_mailer/shipped_email.html.erb +31 -36
  46. data/app/views/spree/shipment_mailer/shipped_email.text.erb +2 -1
  47. data/config/initializers/assets.rb +1 -0
  48. data/config/locales/en.yml +113 -13
  49. data/db/default/spree/stores.rb +11 -10
  50. data/db/migrate/20140309033438_create_store_from_preferences.rb +1 -1
  51. data/db/migrate/20191016134113_add_deafult_value_for_store_default_currency.rb +1 -1
  52. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +10 -0
  53. data/db/migrate/20200102141311_add_social_to_spree_stores.rb +4 -1
  54. data/db/migrate/20200212144523_add_hide_from_nav_to_taxons.rb +1 -1
  55. data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +7 -0
  56. data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +7 -0
  57. data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +7 -0
  58. data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +9 -0
  59. data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +8 -0
  60. data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +5 -0
  61. data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +7 -0
  62. data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +7 -0
  63. data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +5 -0
  64. data/lib/generators/spree/dummy/dummy_generator.rb +1 -0
  65. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -2
  66. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -2
  67. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +23 -0
  68. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +13 -0
  69. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +5 -0
  70. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +5 -0
  71. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +11 -0
  72. data/lib/spree/core.rb +1 -0
  73. data/lib/spree/core/controller_helpers/common.rb +1 -0
  74. data/lib/spree/core/controller_helpers/currency_helpers.rb +15 -0
  75. data/lib/spree/core/controller_helpers/store.rb +12 -1
  76. data/lib/spree/core/version.rb +1 -1
  77. data/lib/spree/permitted_attributes.rb +7 -4
  78. data/lib/spree/testing_support/authorization_helpers.rb +7 -4
  79. data/lib/spree/testing_support/capybara_ext.rb +0 -7
  80. data/lib/spree/testing_support/factories/store_factory.rb +11 -8
  81. data/spree_core.gemspec +6 -6
  82. data/vendor/assets/javascripts/cleave.js +1669 -0
  83. metadata +44 -31
  84. data/app/finders/spree/addresses/find.rb +0 -17
  85. data/app/services/spree/account/addresses/base.rb +0 -39
  86. data/app/services/spree/account/addresses/create.rb +0 -18
  87. data/app/services/spree/account/addresses/update.rb +0 -18
  88. data/app/views/spree/order_mailer/_adjustment.html.erb +0 -8
  89. data/app/views/spree/order_mailer/_subtotal.html.erb +0 -8
  90. data/app/views/spree/order_mailer/_total.html.erb +0 -8
@@ -1,4 +1,4 @@
1
- <%= Spree.t('order_mailer.cancel_email.dear_customer') %>
1
+ <%= Spree.t('order_mailer.cancel_email.dear_customer', name: name_for(@order)) %>
2
2
 
3
3
  <%= Spree.t('order_mailer.cancel_email.instructions') %>
4
4
 
@@ -10,7 +10,29 @@
10
10
  <% end %>
11
11
  ============================================================
12
12
  <%= Spree.t('order_mailer.subtotal') %> <%= @order.display_item_total %>
13
+ <% if @order.line_item_adjustments.exists? %>
14
+ <% if @order.all_adjustments.promotion.eligible.exists? %>
15
+ <% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
16
+ <%= Spree.t(:promotion) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
17
+ <% end %>
18
+ <% end %>
19
+ <% end %>
20
+
21
+ <% @order.shipments.group_by { |s| s.selected_shipping_rate.try(:name) }.each do |name, shipments| %>
22
+ <%= Spree.t(:shipping) %>: <%= name %> <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: @order.currency) %>
23
+ <% end %>
24
+
25
+ <% if @order.all_adjustments.eligible.tax.exists? %>
26
+ <% @order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
27
+ <%= Spree.t(:tax) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
28
+ <% end %>
29
+ <% end %>
30
+
13
31
  <% @order.adjustments.eligible.each do |adjustment| %>
14
- <%= raw(adjustment.label) %> <%= adjustment.display_amount %>
32
+ <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
33
+ <%= adjustment.label %> <%= adjustment.display_amount %>
15
34
  <% end %>
35
+ ============================================================
16
36
  <%= Spree.t('order_mailer.total') %> <%= @order.display_total %>
37
+ <%= Spree.t('order_mailer.cancel_email.thanks') %>
38
+ <%= Spree.t('order_mailer.store_team', store_name: current_store.name) %>
@@ -1,70 +1,23 @@
1
- <table class="row header">
1
+ <h1>
2
+ <%= Spree.t('order_mailer.confirm_email.dear_customer', name: name_for(@order)) %>
3
+ </h1>
4
+ <p>
5
+ <%= Spree.t('order_mailer.confirm_email.instructions') %>
6
+ </p>
7
+ <table class="purchase" role="presentation">
2
8
  <tr>
3
9
  <td>
4
- <p class="lede">
5
- <%= Spree.t('order_mailer.confirm_email.dear_customer') %>
6
- </p>
7
- <p>
8
- <%= Spree.t('order_mailer.confirm_email.instructions') %>
9
- </p>
10
- <p>
11
- <%= Spree.t('order_mailer.confirm_email.order_summary', number: @order.number) %>
12
- </p>
13
- <table class="container">
14
- <tr>
15
- <td class="wrapper last">
16
- <table class="twelve columns">
17
- <%= render collection: @order.line_items, partial: 'spree/shared/mailer_line_item', as: :line_item %>
18
- <%= render 'spree/order_mailer/subtotal', order: @order %>
19
- <% if @order.line_item_adjustments.exists? %>
20
- <% if @order.all_adjustments.promotion.eligible.exists? %>
21
- <% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
22
- <tr>
23
- <td class="six sub-columns">
24
- <%= Spree.t(:promotion) %> <%= label %>:
25
- </td>
26
- <td class="six sub-columns last right">
27
- <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
28
- </td>
29
- </tr>
30
- <% end %>
31
- <% end %>
32
- <% end %>
33
- <% @order.shipments.group_by { |s| s.selected_shipping_rate.try(:name) }.each do |name, shipments| %>
34
- <tr>
35
- <td class="six sub-columns">
36
- <%= Spree.t(:shipping) %> <%= name %>:
37
- </td>
38
- <td class="six sub-columns last right">
39
- <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: @order.currency) %>
40
- </td>
41
- </tr>
42
- <% end %>
43
- <% if @order.all_adjustments.eligible.tax.exists? %>
44
- <% @order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
45
- <tr>
46
- <td class="six sub-columns">
47
- <%= Spree.t(:tax) %> <%= label %>:
48
- </td>
49
- <td class="six sub-columns last right">
50
- <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
51
- </td>
52
- </tr>
53
- <% end %>
54
- <% end %>
55
- <% @order.adjustments.eligible.each do |adjustment| %>
56
- <% next if (adjustment.source_type == 'Spree::TaxRate') || (adjustment.amount == 0) %>
57
- <%= render 'spree/order_mailer/adjustment', adjustment: adjustment %>
58
- <% end %>
59
- <%= render 'spree/order_mailer/total', order: @order %>
60
- </table>
61
- </td>
62
- </tr>
63
- </table>
64
- <p>
65
- <%= Spree.t('order_mailer.confirm_email.thanks') %>
66
- </p>
10
+ <h3><%= Spree.t('order_mailer.confirm_email.order_summary', number: @order.number) %></h3>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <td colspan="2">
15
+ <%= render 'spree/shared/purchased_items_table', line_items: @order.line_items, order: @order %>
67
16
  </td>
68
- <td class="expander"></td>
69
17
  </tr>
70
18
  </table>
19
+ <p>
20
+ <%= Spree.t('order_mailer.confirm_email.thanks') %>
21
+ <br />
22
+ <%= Spree.t('order_mailer.store_team', store_name: current_store.name) %>
23
+ </p>
@@ -1,4 +1,4 @@
1
- <%= Spree.t('order_mailer.confirm_email.dear_customer') %>
1
+ <%= Spree.t('order_mailer.confirm_email.dear_customer', name: name_for(@order)) %>
2
2
 
3
3
  <%= Spree.t('order_mailer.confirm_email.instructions') %>
4
4
 
@@ -36,3 +36,4 @@
36
36
  <%= Spree.t('order_mailer.total') %> <%= @order.display_total %>
37
37
 
38
38
  <%= Spree.t('order_mailer.confirm_email.thanks') %>
39
+ <%= Spree.t('order_mailer.store_team', store_name: current_store.name) %>
@@ -0,0 +1,23 @@
1
+ <h1>
2
+ <%= Spree.t('order_mailer.store_owner_notification_email.heading') %>
3
+ </h1>
4
+ <p>
5
+ <%= Spree.t('order_mailer.store_owner_notification_email.instructions') %>
6
+ </p>
7
+ <table class="purchase" role="presentation">
8
+ <tr>
9
+ <td>
10
+ <h3><%= Spree.t('order_mailer.store_owner_notification_email.order_summary', number: @order.number) %></h3>
11
+ </td>
12
+ </tr>
13
+ <tr>
14
+ <td colspan="2">
15
+ <%= render 'spree/shared/purchased_items_table', line_items: @order.line_items, order: @order %>
16
+ </td>
17
+ </tr>
18
+ </table>
19
+ <p>
20
+ <%= Spree.t('order_mailer.store_owner_notification_email.thanks') %>
21
+ <br />
22
+ <%= Spree.t('order_mailer.store_team', store_name: current_store.name) %>
23
+ </p>
@@ -0,0 +1,38 @@
1
+ <%= Spree.t('order_mailer.store_owner_notification_email.heading') %>
2
+
3
+ <%= Spree.t('order_mailer.store_owner_notification_email.instructions') %>
4
+
5
+ ============================================================
6
+ <%= Spree.t('order_mailer.store_owner_notification_email.order_summary', number: @order.number) %>
7
+ ============================================================
8
+ <% @order.line_items.each do |item| %>
9
+ <%= item.variant.sku %> <%= raw(item.variant.product.name) %> <%= raw(item.variant.options_text) -%> (<%=item.quantity%>) <%= Spree.t('at_symbol') %> <%= item.single_money %> = <%= item.display_amount %>
10
+ <% end %>
11
+ ============================================================
12
+ <%= Spree.t('order_mailer.subtotal') %> <%= @order.display_item_total %>
13
+ <% if @order.line_item_adjustments.exists? %>
14
+ <% if @order.all_adjustments.promotion.eligible.exists? %>
15
+ <% @order.all_adjustments.promotion.eligible.group_by(&:label).each do |label, adjustments| %>
16
+ <%= Spree.t(:promotion) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
17
+ <% end %>
18
+ <% end %>
19
+ <% end %>
20
+
21
+ <% @order.shipments.group_by { |s| s.selected_shipping_rate.try(:name) }.each do |name, shipments| %>
22
+ <%= Spree.t(:shipping) %>: <%= name %> <%= Spree::Money.new(shipments.sum(&:discounted_cost), currency: @order.currency) %>
23
+ <% end %>
24
+
25
+ <% if @order.all_adjustments.eligible.tax.exists? %>
26
+ <% @order.all_adjustments.eligible.tax.group_by(&:label).each do |label, adjustments| %>
27
+ <%= Spree.t(:tax) %>: <%= label %> <%= Spree::Money.new(adjustments.sum(&:amount), currency: @order.currency) %>
28
+ <% end %>
29
+ <% end %>
30
+
31
+ <% @order.adjustments.eligible.each do |adjustment| %>
32
+ <% next if (adjustment.source_type == 'Spree::TaxRate') and (adjustment.amount == 0) %>
33
+ <%= adjustment.label %> <%= adjustment.display_amount %>
34
+ <% end %>
35
+ ============================================================
36
+ <%= Spree.t('order_mailer.total') %> <%= @order.display_total %>
37
+ <%= Spree.t('order_mailer.store_owner_notification_email.thanks') %>
38
+ <%= Spree.t('order_mailer.store_team', store_name: current_store.name) %>
@@ -1,61 +1,56 @@
1
- <table class="row header">
2
- <tr>
3
- <td>
4
- <p class="lede">
5
- <%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer') %>
6
- </p>
7
- <p>
8
- <%= Spree.t('reimbursement_mailer.reimbursement_email.instructions') %>
9
- </p>
10
- <p>
11
- <%= Spree.t('reimbursement_mailer.reimbursement_email.refund_summary') %>
12
- </p>
13
- <p>
14
- <%= Spree.t('reimbursement_mailer.reimbursement_email.total_refunded', total: @reimbursement.display_total) %>
15
- </p>
1
+ <h1>
2
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer', name: name_for(@order)) %>
3
+ </h1>
4
+ <p>
5
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.instructions') %>
6
+ </p>
7
+ <p>
8
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.refund_summary') %>
9
+ </p>
10
+ <p>
11
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.total_refunded', total: @reimbursement.display_total) %>
12
+ </p>
13
+ <% if @reimbursement.return_items.exchange_requested.present? %>
14
+ <p>
15
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.exchange_summary') %>
16
+ </p>
16
17
 
17
- <% if @reimbursement.return_items.exchange_requested.present? %>
18
-
19
- <p>
20
- <%= Spree.t('reimbursement_mailer.reimbursement_email.exchange_summary') %>
21
- </p>
22
-
23
- <table class="container">
24
- <tr>
25
- <td class="wrapper last">
26
- <table class="twelve columns">
27
-
28
- <% @reimbursement.return_items.exchange_requested.each do |return_item| %>
29
- <tr>
30
- <td class="six sub-columns">
31
- <%= return_item.variant.sku %>
32
- </td>
33
- <td>
34
- <%= link_to raw(return_item.variant.product.name),
35
- spree.product_url(return_item.variant.product) %>
36
- </td>
37
- <td>
38
- <%= "(#{raw(return_item.exchange_variant.options_text)})" if return_item.exchange_variant.options_text.present? -%>
39
- </td>
40
- </tr>
41
- <% end %>
42
-
43
- </table>
44
- </td>
45
- </tr>
46
- </table>
47
-
48
-
49
- <% if @reimbursement.return_items.awaiting_return.present? && Spree::Config[:expedited_exchanges] %>
50
- <p>
51
- <%= Spree.t('reimbursement_mailer.reimbursement_email.days_to_send', days: Spree::Config[:expedited_exchanges_days_window]) %>
18
+ <table class="purchase_content">
19
+ <% @reimbursement.return_items.exchange_requested.each do |return_item| %>
20
+ <tr>
21
+ <td class="purchase_image">
22
+ <% if frontend_available? %>
23
+ <%= link_to(image_tag(variant_image_url(return_item.variant)), spree.product_url(return_item.variant.product)) %>
24
+ <% else %>
25
+ <%= image_tag(variant_image_url(return_item.variant)) %>
26
+ <% end %>
27
+ </td>
28
+ <td class="purchase_item">
29
+ <strong>
30
+ <span class="f-fallback">
31
+ <% if frontend_available? %>
32
+ <%= link_to raw(return_item.variant.name), spree.product_url(return_item.variant.product) %>
33
+ <% else %>
34
+ <%= raw(return_item.variant.name) %>
35
+ <% end %>
36
+ </span>
37
+ </strong>
38
+ <p class="purchase_item--additional">
39
+ <%= "(#{raw(return_item.exchange_variant.options_text)})" if return_item.exchange_variant.options_text.present? -%>
52
40
  </p>
53
- <% end %>
41
+ </td>
42
+ </tr>
43
+ <% end %>
44
+ </table>
45
+ <% if @reimbursement.return_items.awaiting_return.present? && Spree::Config[:expedited_exchanges] %>
46
+ <p>
47
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.days_to_send', days: Spree::Config[:expedited_exchanges_days_window]) %>
48
+ </p>
49
+ <% end %>
50
+ <% end %>
54
51
 
55
- <% end %>
56
- <p>
57
- <%= Spree.t('reimbursement_mailer.reimbursement_email.thanks') %>
58
- </p>
59
- <td class="expander"></td>
60
- </tr>
61
- </table>
52
+ <p>
53
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.thanks') %>
54
+ <br />
55
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.store_team', store_name: current_store.name) %>
56
+ </p>
@@ -1,4 +1,4 @@
1
- <%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer') %>
1
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.dear_customer', name: name_for(@reimbursement.order)) %>
2
2
 
3
3
  <%= Spree.t('reimbursement_mailer.reimbursement_email.instructions') %>
4
4
 
@@ -20,3 +20,5 @@
20
20
  <%= Spree.t('reimbursement_mailer.reimbursement_email.days_to_send', days: Spree::Config[:expedited_exchanges_days_window]) %>
21
21
  <% end %>
22
22
  <% end %>
23
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.thanks') %>
24
+ <%= Spree.t('reimbursement_mailer.reimbursement_email.store_team', store_name: current_store.name) %>
@@ -1,19 +1,11 @@
1
1
  <!-- You can override this template to design your own footer.
2
- <table class="row footer">
2
+ <table class="email-footer" align="center" width="570" cellpadding="0" cellspacing="0" role="presentation">
3
3
  <tr>
4
- <td class="wrapper last">
5
-
6
- <table class="twelve columns">
7
- <tr>
8
- <td align="center">
9
- <center>
10
- <p style="text-align:center;"><a href="#">Terms</a> | <a href="#">Privacy</a> | <a href="#">Unsubscribe</a></p>
11
- </center>
12
- </td>
13
- <td class="expander"></td>
14
- </tr>
15
- </table>
16
-
4
+ <td class="content-cell" align="center">
5
+ <p class="f-fallback sub align-center">
6
+ <a href="#">Terms</a> | <a href="#">Privacy</a> |
7
+ <a href="#">Unsubscribe</a>
8
+ </p>
17
9
  </td>
18
10
  </tr>
19
11
  </table>
@@ -1,33 +1,13 @@
1
1
  <!-- You can override this template to design your own header. -->
2
- <table class="row header">
3
- <tr>
4
- <td class="center" align="center">
5
- <center>
6
-
7
- <table class="container">
8
- <tr>
9
- <td class="wrapper last">
10
-
11
- <table class="twelve columns">
12
- <tr>
13
- <td class="twelve sub-columns last">
14
- <% if frontend_available? %>
15
- <%= link_to spree.root_url, class: 'template-label' do %>
16
- <%= image_tag Spree::Config.logo, class: 'logo', alt: Spree::Store.current.name, title: Spree::Store.current.name %>
17
- <% end %>
18
- <% else %>
19
- <%= image_tag Spree::Config.logo, class: 'logo', alt: Spree::Store.current.name, title: Spree::Store.current.name %>
20
- <% end %>
21
- </td>
22
- <td class="expander"></td>
23
- </tr>
24
- </table>
25
-
26
- </td>
27
- </tr>
28
- </table>
29
-
30
- </center>
31
- </td>
32
- </tr>
33
- </table>
2
+ <% store_name = @order&.store&.name || current_store.name %>
3
+ <tr>
4
+ <td class="email-masthead">
5
+ <% if frontend_available? %>
6
+ <%= link_to spree.root_url, class: 'template-label' do %>
7
+ <%= image_tag logo_path, class: 'logo', alt: store_name, title: store_name %>
8
+ <% end %>
9
+ <% else %>
10
+ <%= image_tag logo_path, class: 'logo', alt: store_name, title: store_name %>
11
+ <% end %>
12
+ </td>
13
+ </tr>
@@ -1,777 +1,445 @@
1
- <style>
2
- /**********************************************
3
- * Ink v1.0.5 - Copyright 2013 ZURB Inc *
4
- **********************************************/
1
+ <style type="text/css" rel="stylesheet" media="all">
2
+ /* Base ------------------------------ */
5
3
 
6
- /* Client-specific Styles and Reset */
4
+ @import url("https://fonts.googleapis.com/css?family=Nunito+Sans:400,700&display=swap");
7
5
 
8
- #outlook a {
9
- padding:0;
10
- }
11
-
12
- body{
13
- width:100% !important;
14
- min-width: 100%;
15
- -webkit-text-size-adjust:100%;
16
- -ms-text-size-adjust:100%;
17
- margin:0;
18
- padding:0;
19
- }
20
-
21
- /* .ExternalClass applies to Outlook.com (the artist formerly known as Hotmail) */
22
-
23
- .ExternalClass {
24
- width:100%;
25
- }
26
-
27
- .ExternalClass,
28
- .ExternalClass p,
29
- .ExternalClass span,
30
- .ExternalClass font,
31
- .ExternalClass td,
32
- .ExternalClass div {
33
- line-height: 100%;
34
- }
35
-
36
- #backgroundTable {
37
- margin:0;
38
- padding:0;
39
- width:100% !important;
40
- line-height: 100% !important;
41
- }
42
-
43
- img {
44
- outline:none;
45
- text-decoration:none;
46
- -ms-interpolation-mode: bicubic;
47
- width: auto;
48
- max-width: 100%;
49
- float: left;
50
- clear: both;
51
- display: block;
6
+ body {
7
+ width: 100% !important;
8
+ height: 100%;
9
+ margin: 0;
10
+ -webkit-text-size-adjust: none;
52
11
  }
53
12
 
54
- center {
55
- width: 100%;
56
- min-width: 580px;
13
+ a {
14
+ color: #3869D4;
57
15
  }
58
16
 
59
17
  a img {
60
18
  border: none;
61
19
  }
62
20
 
63
- p {
64
- margin: 0 0 0 10px;
65
- }
66
-
67
- table {
68
- border-spacing: 0;
69
- border-collapse: collapse;
70
- }
71
-
72
21
  td {
73
22
  word-break: break-word;
74
- -webkit-hyphens: none;
75
- -moz-hyphens: none;
76
- hyphens: none;
77
- border-collapse: collapse !important;
78
- }
79
-
80
- table, tr, td {
81
- padding: 0;
82
- vertical-align: top;
83
- text-align: left;
84
23
  }
85
24
 
86
- hr {
87
- color: #d9d9d9;
88
- background-color: #d9d9d9;
89
- height: 1px;
90
- border: none;
25
+ .preheader {
26
+ display: none !important;
27
+ visibility: hidden;
28
+ mso-hide: all;
29
+ font-size: 1px;
30
+ line-height: 1px;
31
+ max-height: 0;
32
+ max-width: 0;
33
+ opacity: 0;
34
+ overflow: hidden;
91
35
  }
92
36
 
93
- /* Responsive Grid */
37
+ /* Type ------------------------------ */
94
38
 
95
- table.body {
96
- height: 100%;
97
- width: 100%;
39
+ body,
40
+ td,
41
+ th {
42
+ font-family: "Nunito Sans", Helvetica, Arial, sans-serif;
98
43
  }
99
44
 
100
- table.container {
101
- width: 580px;
102
- margin: 0 auto;
103
- text-align: inherit;
45
+ h1 {
46
+ margin-top: 0;
47
+ color: #333333;
48
+ font-size: 22px;
49
+ font-weight: bold;
50
+ text-align: left;
104
51
  }
105
52
 
106
- table.row {
107
- padding: 0px;
108
- width: 100%;
109
- position: relative;
53
+ h2 {
54
+ margin-top: 0;
55
+ color: #333333;
56
+ font-size: 16px;
57
+ font-weight: bold;
58
+ text-align: left;
110
59
  }
111
60
 
112
- table.container table.row {
113
- display: block;
61
+ h3 {
62
+ margin-top: 0;
63
+ color: #333333;
64
+ font-size: 14px;
65
+ font-weight: bold;
66
+ text-align: left;
114
67
  }
115
68
 
116
- td.wrapper {
117
- padding: 10px 20px 0px 0px;
118
- position: relative;
69
+ td,
70
+ th {
71
+ font-size: 16px;
119
72
  }
120
73
 
121
- table.columns,
122
- table.column {
123
- margin: 0 auto;
74
+ p,
75
+ ul,
76
+ ol,
77
+ blockquote {
78
+ margin: .4em 0 1.1875em;
79
+ font-size: 16px;
80
+ line-height: 1.625;
124
81
  }
125
82
 
126
- table.columns td,
127
- table.column td {
128
- padding: 0px 0px 10px;
129
- }
130
-
131
- table.columns td.sub-columns,
132
- table.column td.sub-columns,
133
- table.columns td.sub-column,
134
- table.column td.sub-column {
135
- padding-right: 10px;
136
- }
137
-
138
- td.sub-column, td.sub-columns {
139
- min-width: 0px;
140
- }
141
-
142
- table.row td.last,
143
- table.container td.last {
144
- padding-right: 0px;
145
- }
146
-
147
- table.one { width: 30px; }
148
- table.two { width: 80px; }
149
- table.three { width: 130px; }
150
- table.four { width: 180px; }
151
- table.five { width: 230px; }
152
- table.six { width: 280px; }
153
- table.seven { width: 330px; }
154
- table.eight { width: 380px; }
155
- table.nine { width: 430px; }
156
- table.ten { width: 480px; }
157
- table.eleven { width: 530px; }
158
- table.twelve { width: 580px; }
159
-
160
- table.one center { min-width: 30px; }
161
- table.two center { min-width: 80px; }
162
- table.three center { min-width: 130px; }
163
- table.four center { min-width: 180px; }
164
- table.five center { min-width: 230px; }
165
- table.six center { min-width: 280px; }
166
- table.seven center { min-width: 330px; }
167
- table.eight center { min-width: 380px; }
168
- table.nine center { min-width: 430px; }
169
- table.ten center { min-width: 480px; }
170
- table.eleven center { min-width: 530px; }
171
- table.twelve center { min-width: 580px; }
172
-
173
- table.one .panel center { min-width: 10px; }
174
- table.two .panel center { min-width: 60px; }
175
- table.three .panel center { min-width: 110px; }
176
- table.four .panel center { min-width: 160px; }
177
- table.five .panel center { min-width: 210px; }
178
- table.six .panel center { min-width: 260px; }
179
- table.seven .panel center { min-width: 310px; }
180
- table.eight .panel center { min-width: 360px; }
181
- table.nine .panel center { min-width: 410px; }
182
- table.ten .panel center { min-width: 460px; }
183
- table.eleven .panel center { min-width: 510px; }
184
- table.twelve .panel center { min-width: 560px; }
185
-
186
- .body .columns td.one,
187
- .body .column td.one { width: 8.333333%; }
188
- .body .columns td.two,
189
- .body .column td.two { width: 16.666666%; }
190
- .body .columns td.three,
191
- .body .column td.three { width: 25%; }
192
- .body .columns td.four,
193
- .body .column td.four { width: 33.333333%; }
194
- .body .columns td.five,
195
- .body .column td.five { width: 41.666666%; }
196
- .body .columns td.six,
197
- .body .column td.six { width: 50%; }
198
- .body .columns td.seven,
199
- .body .column td.seven { width: 58.333333%; }
200
- .body .columns td.eight,
201
- .body .column td.eight { width: 66.666666%; }
202
- .body .columns td.nine,
203
- .body .column td.nine { width: 75%; }
204
- .body .columns td.ten,
205
- .body .column td.ten { width: 83.333333%; }
206
- .body .columns td.eleven,
207
- .body .column td.eleven { width: 91.666666%; }
208
- .body .columns td.twelve,
209
- .body .column td.twelve { width: 100%; }
210
-
211
- td.offset-by-one { padding-left: 50px; }
212
- td.offset-by-two { padding-left: 100px; }
213
- td.offset-by-three { padding-left: 150px; }
214
- td.offset-by-four { padding-left: 200px; }
215
- td.offset-by-five { padding-left: 250px; }
216
- td.offset-by-six { padding-left: 300px; }
217
- td.offset-by-seven { padding-left: 350px; }
218
- td.offset-by-eight { padding-left: 400px; }
219
- td.offset-by-nine { padding-left: 450px; }
220
- td.offset-by-ten { padding-left: 500px; }
221
- td.offset-by-eleven { padding-left: 550px; }
222
-
223
- td.expander {
224
- visibility: hidden;
225
- width: 0px;
226
- padding: 0 !important;
83
+ p.sub {
84
+ font-size: 13px;
227
85
  }
228
86
 
229
- table.columns .text-pad,
230
- table.column .text-pad {
231
- padding-left: 10px;
232
- padding-right: 10px;
233
- }
87
+ /* Utilities ------------------------------ */
234
88
 
235
- table.columns .left-text-pad,
236
- table.columns .text-pad-left,
237
- table.column .left-text-pad,
238
- table.column .text-pad-left {
239
- padding-left: 10px;
89
+ .align-right {
90
+ text-align: right;
240
91
  }
241
92
 
242
- table.columns .right-text-pad,
243
- table.columns .text-pad-right,
244
- table.column .right-text-pad,
245
- table.column .text-pad-right {
246
- padding-right: 10px;
93
+ .align-left {
94
+ text-align: left;
247
95
  }
248
96
 
249
- /* Block Grid */
250
-
251
- .block-grid {
252
- width: 100%;
253
- max-width: 580px;
97
+ .align-center {
98
+ text-align: center;
254
99
  }
255
100
 
256
- .block-grid td {
101
+ /* Buttons ------------------------------ */
102
+
103
+ .button {
104
+ background-color: #3869D4;
105
+ border-top: 10px solid #3869D4;
106
+ border-right: 18px solid #3869D4;
107
+ border-bottom: 10px solid #3869D4;
108
+ border-left: 18px solid #3869D4;
257
109
  display: inline-block;
258
- padding:10px;
110
+ color: #FFF;
111
+ text-decoration: none;
112
+ border-radius: 3px;
113
+ box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16);
114
+ -webkit-text-size-adjust: none;
115
+ box-sizing: border-box;
259
116
  }
260
117
 
261
- .two-up td {
262
- width:270px;
118
+ .button--green {
119
+ background-color: #22BC66;
120
+ border-top: 10px solid #22BC66;
121
+ border-right: 18px solid #22BC66;
122
+ border-bottom: 10px solid #22BC66;
123
+ border-left: 18px solid #22BC66;
263
124
  }
264
125
 
265
- .three-up td {
266
- width:173px;
126
+ .button--red {
127
+ background-color: #FF6136;
128
+ border-top: 10px solid #FF6136;
129
+ border-right: 18px solid #FF6136;
130
+ border-bottom: 10px solid #FF6136;
131
+ border-left: 18px solid #FF6136;
267
132
  }
268
133
 
269
- .four-up td {
270
- width:125px;
134
+ @media only screen and (max-width: 500px) {
135
+ .button {
136
+ width: 100% !important;
137
+ text-align: center !important;
138
+ }
271
139
  }
272
140
 
273
- .five-up td {
274
- width:96px;
275
- }
141
+ /* Attribute list ------------------------------ */
276
142
 
277
- .six-up td {
278
- width:76px;
143
+ .attributes {
144
+ margin: 0 0 21px;
279
145
  }
280
146
 
281
- .seven-up td {
282
- width:62px;
147
+ .attributes_content {
148
+ background-color: #F4F4F7;
149
+ padding: 16px;
283
150
  }
284
151
 
285
- .eight-up td {
286
- width:52px;
152
+ .attributes_item {
153
+ padding: 0;
287
154
  }
288
155
 
289
- /* Alignment and Visibility Classes */
156
+ /* Related Items ------------------------------ */
290
157
 
291
- table.center, td.center {
292
- text-align: center;
158
+ .related {
159
+ width: 100%;
160
+ margin: 0;
161
+ padding: 25px 0 0 0;
162
+ -premailer-width: 100%;
163
+ -premailer-cellpadding: 0;
164
+ -premailer-cellspacing: 0;
293
165
  }
294
166
 
295
- h1.center,
296
- h2.center,
297
- h3.center,
298
- h4.center,
299
- h5.center,
300
- h6.center,
301
- p.center {
302
- text-align: center;
167
+ .related_item {
168
+ padding: 10px 0;
169
+ color: #CBCCCF;
170
+ font-size: 15px;
171
+ line-height: 18px;
303
172
  }
304
173
 
305
- span.center {
174
+ .related_item-title {
306
175
  display: block;
307
- width: 100%;
308
- text-align: center;
309
- }
310
-
311
- img.center {
312
- margin: 0 auto;
313
- float: none;
176
+ margin: .5em 0 0;
314
177
  }
315
178
 
316
- .show-for-small,
317
- .hide-for-desktop {
318
- display: none;
319
- width:0;
320
- mso-hide:all;
321
- overflow:hidden;
179
+ .related_item-thumb {
180
+ display: block;
181
+ padding-bottom: 10px;
322
182
  }
323
183
 
324
- .show-for-small *,
325
- .hide-for-desktop * {
326
- mso-hide:all;
184
+ .related_heading {
185
+ border-top: 1px solid #CBCCCF;
186
+ text-align: center;
187
+ padding: 25px 0 10px;
327
188
  }
328
189
 
329
- /* Typography */
190
+ /* Discount Code ------------------------------ */
330
191
 
331
- body, table.body, h1, h2, h3, h4, h5, h6, p, td {
332
- color: #222222;
333
- font-family: Helvetica, Arial, sans-serif;
334
- font-weight: normal;
335
- padding:0;
192
+ .discount {
193
+ width: 100%;
336
194
  margin: 0;
337
- text-align: left;
338
- line-height: 1.3;
339
- }
340
-
341
- h1, h2, h3, h4, h5, h6 {
342
- word-break: normal;
343
- }
344
-
345
- h1 {font-size: 40px;}
346
- h2 {font-size: 36px;}
347
- h3 {font-size: 32px;}
348
- h4 {font-size: 28px;}
349
- h5 {font-size: 24px;}
350
- h6 {font-size: 20px;}
351
- body, table.body, p, td {font-size: 14px;line-height:19px;}
352
-
353
- p.lead, p.lede, p.leed {
354
- font-size: 18px;
355
- line-height:21px;
356
- }
357
-
358
- p {
359
- margin-bottom: 10px;
360
- }
361
-
362
- small {
363
- font-size: 10px;
195
+ padding: 24px;
196
+ -premailer-width: 100%;
197
+ -premailer-cellpadding: 0;
198
+ -premailer-cellspacing: 0;
199
+ background-color: #F4F4F7;
200
+ border: 2px dashed #CBCCCF;
364
201
  }
365
202
 
366
- a {
367
- color: #2ba6cb;
368
- text-decoration: none;
203
+ .discount_heading {
204
+ text-align: center;
369
205
  }
370
206
 
371
- a:hover {
372
- color: #2795b6 !important;
207
+ .discount_body {
208
+ text-align: center;
209
+ font-size: 15px;
373
210
  }
374
211
 
375
- a:active {
376
- color: #2795b6 !important;
377
- }
212
+ /* Social Icons ------------------------------ */
378
213
 
379
- a:visited {
380
- color: #2ba6cb !important;
381
- }
382
-
383
- h1 a,
384
- h2 a,
385
- h3 a,
386
- h4 a,
387
- h5 a,
388
- h6 a {
389
- color: #2ba6cb;
214
+ .social {
215
+ width: auto;
390
216
  }
391
217
 
392
- h1 a:active,
393
- h2 a:active,
394
- h3 a:active,
395
- h4 a:active,
396
- h5 a:active,
397
- h6 a:active {
398
- color: #2ba6cb !important;
218
+ .social td {
219
+ padding: 0;
220
+ width: auto;
399
221
  }
400
222
 
401
- h1 a:visited,
402
- h2 a:visited,
403
- h3 a:visited,
404
- h4 a:visited,
405
- h5 a:visited,
406
- h6 a:visited {
407
- color: #2ba6cb !important;
223
+ .social_icon {
224
+ height: 20px;
225
+ margin: 0 8px 10px 8px;
226
+ padding: 0;
408
227
  }
409
228
 
410
- /* Panels */
411
-
412
- .panel {
413
- background: #f2f2f2;
414
- border: 1px solid #d9d9d9;
415
- padding: 10px !important;
416
- }
229
+ /* Data table ------------------------------ */
417
230
 
418
- .sub-grid table {
231
+ .purchase {
419
232
  width: 100%;
233
+ margin: 0;
234
+ -premailer-width: 100%;
235
+ -premailer-cellpadding: 0;
236
+ -premailer-cellspacing: 0;
420
237
  }
421
238
 
422
- .sub-grid td.sub-columns {
423
- padding-bottom: 0;
424
- }
425
-
426
- /* Buttons */
427
-
428
- table.button,
429
- table.tiny-button,
430
- table.small-button,
431
- table.medium-button,
432
- table.large-button {
239
+ .purchase_content {
433
240
  width: 100%;
434
- overflow: hidden;
435
- }
436
-
437
- table.button td,
438
- table.tiny-button td,
439
- table.small-button td,
440
- table.medium-button td,
441
- table.large-button td {
442
- box-sizing:border-box;
443
- -moz-box-sizing:border-box;
444
- -webkit-box-sizing:border-box;
445
- display: block;
446
- width: auto !important;
447
- text-align: center;
448
- background: #2ba6cb;
449
- border: 1px solid #2284a1;
450
- color: #ffffff;
451
- padding: 8px 0;
452
- line-height: initial !important;
241
+ margin: 0;
242
+ -premailer-width: 100%;
243
+ -premailer-cellpadding: 0;
244
+ -premailer-cellspacing: 0;
453
245
  }
454
246
 
455
- table.tiny-button td {
456
- padding: 5px 0;
247
+ .purchase_item {
248
+ padding: 10px 4px;
249
+ color: #51545E;
250
+ font-size: 15px;
251
+ line-height: 18px;
252
+ width: 62%;
457
253
  }
458
254
 
459
- table.small-button td {
460
- padding: 8px 0;
255
+ .purchase_image {
256
+ width: 18%;
257
+ padding: 5px;
461
258
  }
462
259
 
463
- table.medium-button td {
464
- padding: 12px 0;
260
+ .purchase_item p {
261
+ margin: 0;
262
+ padding: 0.1em 0;
465
263
  }
466
264
 
467
- table.large-button td {
468
- padding: 21px 0;
265
+ .purchase_item--additional {
266
+ font-size: 12px;
469
267
  }
470
268
 
471
- table.button td a,
472
- table.tiny-button td a,
473
- table.small-button td a,
474
- table.medium-button td a,
475
- table.large-button td a {
476
- font-weight: bold;
477
- text-decoration: none;
478
- font-family: Helvetica, Arial, sans-serif;
479
- color: #ffffff;
480
- font-size: 16px;
481
- display: block;
482
- height: 100%;
483
- width: 100%;
269
+ .purchase_heading {
270
+ padding-bottom: 8px;
271
+ border-bottom: 1px solid #EAEAEC;
484
272
  }
485
273
 
486
- table.tiny-button td a {
274
+ .purchase_heading p {
275
+ margin: 0;
276
+ color: #85878E;
487
277
  font-size: 12px;
488
- font-weight: normal;
489
278
  }
490
279
 
491
- table.small-button td a {
492
- font-size: 16px;
280
+ .purchase_footer {
281
+ padding-top: 15px;
282
+ border-top: 1px solid #EAEAEC;
493
283
  }
494
284
 
495
- table.medium-button td a {
496
- font-size: 20px;
285
+ .purchase_total {
286
+ margin: 0;
287
+ text-align: right;
288
+ font-weight: bold;
289
+ color: #333333;
497
290
  }
498
291
 
499
- table.large-button td a {
500
- font-size: 24px;
292
+ .purchase_total--label {
293
+ padding: 0 15px 0 0;
501
294
  }
502
295
 
503
- table.button:hover td,
504
- table.button:visited td,
505
- table.button:active td {
506
- background: #2795b6 !important;
296
+ body {
297
+ background-color: #F2F4F6;
298
+ color: #51545E;
507
299
  }
508
300
 
509
- table.button:hover td a,
510
- table.button:visited td a,
511
- table.button:active td a {
512
- color: #ffffff !important;
301
+ p {
302
+ color: #51545E;
513
303
  }
514
304
 
515
- table.button:hover td,
516
- table.tiny-button:hover td,
517
- table.small-button:hover td,
518
- table.medium-button:hover td,
519
- table.large-button:hover td {
520
- background: #2795b6 !important;
305
+ .email-wrapper {
306
+ width: 100%;
307
+ margin: 0;
308
+ padding: 0;
309
+ -premailer-width: 100%;
310
+ -premailer-cellpadding: 0;
311
+ -premailer-cellspacing: 0;
312
+ background-color: #F2F4F6;
521
313
  }
522
314
 
523
- table.button:hover td a,
524
- table.button:active td a,
525
- table.button td a:visited,
526
- table.tiny-button:hover td a,
527
- table.tiny-button:active td a,
528
- table.tiny-button td a:visited,
529
- table.small-button:hover td a,
530
- table.small-button:active td a,
531
- table.small-button td a:visited,
532
- table.medium-button:hover td a,
533
- table.medium-button:active td a,
534
- table.medium-button td a:visited,
535
- table.large-button:hover td a,
536
- table.large-button:active td a,
537
- table.large-button td a:visited {
538
- color: #ffffff !important;
315
+ .email-content {
316
+ width: 100%;
317
+ margin: 0;
318
+ padding: 0;
319
+ -premailer-width: 100%;
320
+ -premailer-cellpadding: 0;
321
+ -premailer-cellspacing: 0;
539
322
  }
540
323
 
541
- table.secondary td {
542
- background: #e9e9e9;
543
- border-color: #d0d0d0;
544
- color: #555555;
545
- }
324
+ /* Masthead ----------------------- */
546
325
 
547
- table.secondary td a {
548
- color: #555555;
326
+ .email-masthead {
327
+ padding: 25px 0;
328
+ text-align: center;
549
329
  }
550
330
 
551
- table.secondary:hover td {
552
- background: #d0d0d0 !important;
553
- color: #555555;
331
+ .email-masthead_logo {
332
+ width: 94px;
554
333
  }
555
334
 
556
- table.secondary:hover td a,
557
- table.secondary td a:visited,
558
- table.secondary:active td a {
559
- color: #555555 !important;
335
+ .email-masthead_name {
336
+ font-size: 16px;
337
+ font-weight: bold;
338
+ color: #A8AAAF;
339
+ text-decoration: none;
340
+ text-shadow: 0 1px 0 white;
560
341
  }
561
342
 
562
- table.success td {
563
- background: #5da423;
564
- border-color: #457a1a;
565
- }
343
+ /* Body ------------------------------ */
566
344
 
567
- table.success:hover td {
568
- background: #457a1a !important;
345
+ .email-body {
346
+ width: 100%;
347
+ margin: 0;
348
+ padding: 0;
349
+ -premailer-width: 100%;
350
+ -premailer-cellpadding: 0;
351
+ -premailer-cellspacing: 0;
569
352
  }
570
353
 
571
- table.alert td {
572
- background: #c60f13;
573
- border-color: #970b0e;
354
+ .email-body_inner {
355
+ width: 570px;
356
+ margin: 0 auto;
357
+ padding: 0;
358
+ -premailer-width: 570px;
359
+ -premailer-cellpadding: 0;
360
+ -premailer-cellspacing: 0;
361
+ background-color: #FFFFFF;
574
362
  }
575
363
 
576
- table.alert:hover td {
577
- background: #970b0e !important;
364
+ .email-footer {
365
+ width: 570px;
366
+ margin: 0 auto;
367
+ padding: 0;
368
+ -premailer-width: 570px;
369
+ -premailer-cellpadding: 0;
370
+ -premailer-cellspacing: 0;
371
+ text-align: center;
578
372
  }
579
373
 
580
- table.radius td {
581
- -webkit-border-radius: 3px;
582
- -moz-border-radius: 3px;
583
- border-radius: 3px;
374
+ .email-footer p {
375
+ color: #A8AAAF;
584
376
  }
585
377
 
586
- table.round td {
587
- -webkit-border-radius: 500px;
588
- -moz-border-radius: 500px;
589
- border-radius: 500px;
378
+ .body-action {
379
+ width: 100%;
380
+ margin: 30px auto;
381
+ padding: 0;
382
+ -premailer-width: 100%;
383
+ -premailer-cellpadding: 0;
384
+ -premailer-cellspacing: 0;
385
+ text-align: center;
590
386
  }
591
387
 
592
- /* Outlook First */
388
+ .body-sub {
389
+ margin-top: 25px;
390
+ padding-top: 25px;
391
+ border-top: 1px solid #EAEAEC;
392
+ }
593
393
 
594
- body.outlook p {
595
- display: inline !important;
394
+ .content-cell {
395
+ padding: 40px;
596
396
  }
597
397
 
598
- /* Media Queries */
398
+ /*Media Queries ------------------------------ */
599
399
 
600
400
  @media only screen and (max-width: 600px) {
601
-
602
- table[class="body"] img {
603
- max-width: auto !important;
604
- max-height: auto !important;
605
- }
606
-
607
- table[class="body"] center {
608
- min-width: 0 !important;
609
- }
610
-
611
- table[class="body"] .container {
612
- width: 95% !important;
613
- }
614
-
615
- table[class="body"] .row {
401
+ .email-body_inner,
402
+ .email-footer {
616
403
  width: 100% !important;
617
- display: block !important;
618
- }
619
-
620
- table[class="body"] .wrapper {
621
- display: block !important;
622
- padding-right: 0 !important;
623
- }
624
-
625
- table[class="body"] .columns,
626
- table[class="body"] .column {
627
- table-layout: fixed !important;
628
- float: none !important;
629
- width: 100% !important;
630
- padding-right: 0px !important;
631
- padding-left: 0px !important;
632
- display: block !important;
633
- }
634
-
635
- table[class="body"] .wrapper.first .columns,
636
- table[class="body"] .wrapper.first .column {
637
- display: table !important;
638
- }
639
-
640
- table[class="body"] table.columns td,
641
- table[class="body"] table.column td {
642
- width: 100% !important;
643
- }
644
-
645
- table[class="body"] .columns td.one,
646
- table[class="body"] .column td.one { width: 8.333333% !important; }
647
- table[class="body"] .columns td.two,
648
- table[class="body"] .column td.two { width: 16.666666% !important; }
649
- table[class="body"] .columns td.three,
650
- table[class="body"] .column td.three { width: 25% !important; }
651
- table[class="body"] .columns td.four,
652
- table[class="body"] .column td.four { width: 33.333333% !important; }
653
- table[class="body"] .columns td.five,
654
- table[class="body"] .column td.five { width: 41.666666% !important; }
655
- table[class="body"] .columns td.six,
656
- table[class="body"] .column td.six { width: 50% !important; }
657
- table[class="body"] .columns td.seven,
658
- table[class="body"] .column td.seven { width: 58.333333% !important; }
659
- table[class="body"] .columns td.eight,
660
- table[class="body"] .column td.eight { width: 66.666666% !important; }
661
- table[class="body"] .columns td.nine,
662
- table[class="body"] .column td.nine { width: 75% !important; }
663
- table[class="body"] .columns td.ten,
664
- table[class="body"] .column td.ten { width: 83.333333% !important; }
665
- table[class="body"] .columns td.eleven,
666
- table[class="body"] .column td.eleven { width: 91.666666% !important; }
667
- table[class="body"] .columns td.twelve,
668
- table[class="body"] .column td.twelve { width: 100% !important; }
669
-
670
- table[class="body"] td.offset-by-one,
671
- table[class="body"] td.offset-by-two,
672
- table[class="body"] td.offset-by-three,
673
- table[class="body"] td.offset-by-four,
674
- table[class="body"] td.offset-by-five,
675
- table[class="body"] td.offset-by-six,
676
- table[class="body"] td.offset-by-seven,
677
- table[class="body"] td.offset-by-eight,
678
- table[class="body"] td.offset-by-nine,
679
- table[class="body"] td.offset-by-ten,
680
- table[class="body"] td.offset-by-eleven {
681
- padding-left: 0 !important;
682
- }
683
-
684
- table[class="body"] table.columns td.expander {
685
- width: 1px !important;
686
404
  }
405
+ }
687
406
 
688
- table[class="body"] .right-text-pad,
689
- table[class="body"] .text-pad-right {
690
- padding-left: 10px !important;
407
+ @media (prefers-color-scheme: dark) {
408
+ body,
409
+ .email-body,
410
+ .email-body_inner,
411
+ .email-content,
412
+ .email-wrapper,
413
+ .email-masthead,
414
+ .email-footer {
415
+ background-color: #333333 !important;
416
+ color: #FFF !important;
691
417
  }
692
418
 
693
- table[class="body"] .left-text-pad,
694
- table[class="body"] .text-pad-left {
695
- padding-right: 10px !important;
419
+ p,
420
+ ul,
421
+ ol,
422
+ blockquote,
423
+ h1,
424
+ h2,
425
+ h3 {
426
+ color: #FFF !important;
696
427
  }
697
428
 
698
- table[class="body"] .hide-for-small,
699
- table[class="body"] .show-for-desktop {
700
- display: none !important;
429
+ .attributes_content,
430
+ .discount {
431
+ background-color: #222 !important;
701
432
  }
702
433
 
703
- table[class="body"] .show-for-small,
704
- table[class="body"] .hide-for-desktop {
705
- display : block !important;
706
- width : auto !important;
707
- overflow : visible !important;
434
+ .email-masthead_name {
435
+ text-shadow: none !important;
708
436
  }
709
437
  }
710
438
  </style>
711
-
712
- <style>
713
-
714
- table[class="body"] {
715
- margin-top: 20px;
716
- }
717
-
718
- .template-label {
719
- font-weight: bold;
720
- font-size: 11px;
721
- }
722
-
723
- .callout .wrapper {
724
- padding-bottom: 20px;
725
- }
726
-
727
- .callout .panel {
728
- background: #ECF8FF;
729
- border-color: #b9e5ff;
730
- }
731
-
732
- .header {
733
- background: #fff;
734
- }
735
-
736
- .footer .wrapper {
737
- background: #ebebeb;
738
- }
739
-
740
- .footer h5 {
741
- padding-bottom: 10px;
742
- }
743
-
744
- table.columns .text-pad {
745
- padding-left: 10px;
746
- padding-right: 10px;
747
- }
748
-
749
- table.columns .left-text-pad {
750
- padding-left: 10px;
751
- }
752
-
753
- table.columns .right-text-pad {
754
- padding-right: 10px;
755
- }
756
-
757
- td.right {
758
- text-align: right;
759
- }
760
-
761
- @media only screen and (max-width: 600px) {
762
-
763
- table[class="body"] .right-text-pad {
764
- padding-left: 10px !important;
765
- }
766
-
767
- table[class="body"] .left-text-pad {
768
- padding-right: 10px !important;
769
- }
770
-
771
- .logo {
772
- margin-left: auto;
773
- margin-right: auto;
774
- float: none !important;
775
- }
439
+ <!--[if mso]>
440
+ <style type="text/css">
441
+ .f-fallback {
442
+ font-family: Arial, sans-serif;
776
443
  }
777
444
  </style>
445
+ <![endif]-->