spree_core 4.1.5 → 4.2.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +1 -0
  3. data/app/finders/spree/products/find.rb +46 -11
  4. data/app/helpers/spree/base_helper.rb +26 -3
  5. data/app/helpers/spree/mail_helper.rb +24 -0
  6. data/app/helpers/spree/products_helper.rb +15 -14
  7. data/app/mailers/spree/base_mailer.rb +17 -3
  8. data/app/mailers/spree/order_mailer.rb +11 -2
  9. data/app/mailers/spree/reimbursement_mailer.rb +4 -2
  10. data/app/mailers/spree/shipment_mailer.rb +4 -2
  11. data/app/models/concerns/spree/default_price.rb +2 -1
  12. data/app/models/concerns/spree/product_scopes.rb +2 -2
  13. data/app/models/concerns/spree/user_methods.rb +11 -5
  14. data/app/models/spree/app_configuration.rb +6 -0
  15. data/app/models/spree/line_item.rb +10 -1
  16. data/app/models/spree/option_type.rb +5 -1
  17. data/app/models/spree/order.rb +26 -5
  18. data/app/models/spree/price.rb +26 -2
  19. data/app/models/spree/product.rb +19 -9
  20. data/app/models/spree/promotion/actions/create_item_adjustments.rb +1 -1
  21. data/app/models/spree/promotion_handler/coupon.rb +1 -1
  22. data/app/models/spree/reimbursement.rb +2 -0
  23. data/app/models/spree/shipment.rb +2 -5
  24. data/app/models/spree/stock_location.rb +13 -2
  25. data/app/models/spree/store.rb +19 -2
  26. data/app/models/spree/taxon.rb +6 -0
  27. data/app/models/spree/variant.rb +29 -2
  28. data/app/presenters/spree/variant_presenter.rb +7 -0
  29. data/app/presenters/spree/variants/option_types_presenter.rb +1 -0
  30. data/app/services/spree/checkout/get_shipping_rates.rb +7 -10
  31. data/app/views/layouts/spree/base_mailer.html.erb +45 -40
  32. data/app/views/spree/order_mailer/cancel_email.html.erb +19 -25
  33. data/app/views/spree/order_mailer/cancel_email.text.erb +24 -2
  34. data/app/views/spree/order_mailer/confirm_email.html.erb +18 -65
  35. data/app/views/spree/order_mailer/confirm_email.text.erb +2 -1
  36. data/app/views/spree/order_mailer/store_owner_notification_email.html.erb +23 -0
  37. data/app/views/spree/order_mailer/store_owner_notification_email.text.erb +38 -0
  38. data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +53 -58
  39. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +3 -1
  40. data/app/views/spree/shared/_base_mailer_footer.html.erb +6 -14
  41. data/app/views/spree/shared/_base_mailer_header.html.erb +12 -32
  42. data/app/views/spree/shared/_base_mailer_stylesheets.html.erb +293 -625
  43. data/app/views/spree/shared/_purchased_items_table.html.erb +60 -0
  44. data/app/views/spree/shared/purchased_items_table/_adjustment.html.erb +13 -0
  45. data/app/views/spree/shared/purchased_items_table/_line_item.html.erb +27 -0
  46. data/app/views/spree/shared/purchased_items_table/_subtotal.html.erb +13 -0
  47. data/app/views/spree/shared/purchased_items_table/_total.html.erb +13 -0
  48. data/app/views/spree/shipment_mailer/shipped_email.html.erb +31 -36
  49. data/app/views/spree/shipment_mailer/shipped_email.text.erb +2 -1
  50. data/config/initializers/assets.rb +1 -0
  51. data/config/locales/en.yml +113 -13
  52. data/db/default/spree/stores.rb +11 -10
  53. data/db/migrate/20140309033438_create_store_from_preferences.rb +1 -1
  54. data/db/migrate/20191017121054_add_supported_currencies_to_store.rb +10 -0
  55. data/db/migrate/20200102141311_add_social_to_spree_stores.rb +3 -0
  56. data/db/migrate/20200308210757_add_default_locale_to_spree_store.rb +7 -0
  57. data/db/migrate/20200310145140_add_customer_support_email_to_spree_store.rb +7 -0
  58. data/db/migrate/20200421095017_add_compare_at_amount_to_spree_prices.rb +7 -0
  59. data/db/migrate/20200423123001_add_default_country_id_to_spree_store.rb +9 -0
  60. data/db/migrate/20200430072209_add_footer_fields_to_spree_stores.rb +8 -0
  61. data/db/migrate/20200513154939_add_show_property_to_spree_product_properties.rb +5 -0
  62. data/db/migrate/20200607161221_add_store_owner_order_notification_delivered_to_spree_orders.rb +7 -0
  63. data/db/migrate/20200607161222_add_new_order_notifications_email_to_spree_stores.rb +7 -0
  64. data/db/migrate/20200826075557_add_unique_index_on_taxon_id_and_product_id_to_spree_products_taxons.rb +5 -0
  65. data/lib/generators/spree/install/templates/config/initializers/spree.rb +1 -0
  66. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -2
  67. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -2
  68. data/lib/generators/spree/mailers_preview/mailers_preview_generator.rb +23 -0
  69. data/lib/generators/spree/mailers_preview/templates/mailers/previews/order_preview.rb +13 -0
  70. data/lib/generators/spree/mailers_preview/templates/mailers/previews/reimbursement_preview.rb +5 -0
  71. data/lib/generators/spree/mailers_preview/templates/mailers/previews/shipment_preview.rb +5 -0
  72. data/lib/generators/spree/mailers_preview/templates/mailers/previews/user_preview.rb +11 -0
  73. data/lib/spree/core.rb +1 -0
  74. data/lib/spree/core/controller_helpers/common.rb +1 -0
  75. data/lib/spree/core/controller_helpers/currency_helpers.rb +15 -0
  76. data/lib/spree/core/controller_helpers/store.rb +12 -1
  77. data/lib/spree/core/version.rb +1 -1
  78. data/lib/spree/permitted_attributes.rb +7 -4
  79. data/lib/spree/testing_support/authorization_helpers.rb +7 -4
  80. data/lib/spree/testing_support/factories/store_factory.rb +11 -8
  81. data/spree_core.gemspec +14 -8
  82. data/vendor/assets/javascripts/cleave.js +1669 -0
  83. metadata +43 -22
  84. data/app/views/spree/order_mailer/_adjustment.html.erb +0 -8
  85. data/app/views/spree/order_mailer/_subtotal.html.erb +0 -8
  86. data/app/views/spree/order_mailer/_total.html.erb +0 -8
@@ -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]-->