@runwell/shopify-toolkit 0.15.2 → 0.15.4
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.
- package/modules/comparison-table/variants/feature-columns/sections/runwell-comparison-table.liquid +1 -1
- package/modules/exit-intent/assets/runwell-exit-intent.js +10 -2
- package/modules/pdp-journal-link/sections/runwell-pdp-journal.liquid +2 -2
- package/modules/post-purchase-upsell/assets/runwell-thank-you.css +3 -3
- package/modules/post-purchase-upsell/assets/runwell-thank-you.js +2 -2
- package/modules/recently-viewed/assets/runwell-recently-viewed.js +12 -4
- package/modules/risk-reversal/sections/runwell-risk-reversal.liquid +1 -1
- package/modules/sticky-atc/assets/runwell-sticky-atc.css +5 -5
- package/package.json +1 -1
package/modules/comparison-table/variants/feature-columns/sections/runwell-comparison-table.liquid
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
</th>
|
|
39
39
|
{%- for block in section.blocks -%}
|
|
40
40
|
<th style="text-align: left; padding: 0.8rem 1rem; vertical-align: bottom; border-bottom: 2px solid currentColor;">
|
|
41
|
-
<div style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-
|
|
41
|
+
<div style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-h4-size); line-height: 1.2; margin-bottom: 0.2rem;">
|
|
42
42
|
{{ block.settings.column_title }}
|
|
43
43
|
</div>
|
|
44
44
|
{%- if block.settings.column_subtitle != blank -%}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
/*
|
|
1
|
+
/* Runwell exit-intent popup. Triggers on mouseleave to top of viewport
|
|
2
2
|
on desktop, after 30s of activity on mobile. Suppressed for 30 days
|
|
3
3
|
after dismiss or sign-up. */
|
|
4
4
|
(function () {
|
|
5
5
|
if (typeof window === 'undefined') return;
|
|
6
|
-
var KEY = '
|
|
6
|
+
var KEY = 'runwell_exit_seen';
|
|
7
|
+
// Migrate from legacy Lushi-flavored key once. Drop after 2026-Q3.
|
|
8
|
+
try {
|
|
9
|
+
var legacy = localStorage.getItem('lushi_exit_seen');
|
|
10
|
+
if (legacy && !localStorage.getItem(KEY)) {
|
|
11
|
+
localStorage.setItem(KEY, legacy);
|
|
12
|
+
localStorage.removeItem('lushi_exit_seen');
|
|
13
|
+
}
|
|
14
|
+
} catch (e) { /* private mode or storage disabled */ }
|
|
7
15
|
var DAYS = 30;
|
|
8
16
|
var modal = document.querySelector('[data-runwell-exit-intent]');
|
|
9
17
|
if (!modal) return;
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
{{ linked_article.excerpt_or_content | strip_html | truncate: 180 }}
|
|
35
35
|
</p>
|
|
36
36
|
<a href="{{ linked_article.url }}"
|
|
37
|
-
style="display: inline-block; padding: 0.85rem 1.4rem; border-radius: 4px; background: {{ section.settings.text_color }}; color: {{ section.settings.background_color }}; font-weight: 700; font-size: var(--runwell-
|
|
37
|
+
style="display: inline-block; padding: 0.85rem 1.4rem; border-radius: 4px; background: {{ section.settings.text_color }}; color: {{ section.settings.background_color }}; font-weight: 700; font-size: var(--runwell-cta-size); letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none;">
|
|
38
38
|
Read the journal →
|
|
39
39
|
</a>
|
|
40
40
|
{%- else -%}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
{%- endif -%}
|
|
49
49
|
{%- if section.settings.fallback_link_url != blank -%}
|
|
50
50
|
<a href="{{ section.settings.fallback_link_url }}"
|
|
51
|
-
style="display: inline-block; padding: 0.85rem 1.4rem; border-radius: 4px; background: {{ section.settings.text_color }}; color: {{ section.settings.background_color }}; font-weight: 700; font-size: var(--runwell-
|
|
51
|
+
style="display: inline-block; padding: 0.85rem 1.4rem; border-radius: 4px; background: {{ section.settings.text_color }}; color: {{ section.settings.background_color }}; font-weight: 700; font-size: var(--runwell-cta-size); letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none;">
|
|
52
52
|
{{ section.settings.fallback_link_label | default: 'Read more' }} →
|
|
53
53
|
</a>
|
|
54
54
|
{%- endif -%}
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
margin: 0 0 0.8rem 0;
|
|
36
36
|
}
|
|
37
37
|
.runwell-ty-upsell__lede {
|
|
38
|
-
font-size: var(--runwell-
|
|
38
|
+
font-size: var(--runwell-body-size);
|
|
39
39
|
line-height: 1.5;
|
|
40
40
|
margin: 0;
|
|
41
41
|
opacity: 0.85;
|
|
@@ -98,11 +98,11 @@
|
|
|
98
98
|
line-height: 1.2;
|
|
99
99
|
}
|
|
100
100
|
.runwell-ty-card__price {
|
|
101
|
-
font-size: var(--runwell-
|
|
101
|
+
font-size: var(--runwell-cta-size);
|
|
102
102
|
opacity: 0.7;
|
|
103
103
|
}
|
|
104
104
|
.runwell-ty-card__cta {
|
|
105
|
-
font-size: var(--runwell-
|
|
105
|
+
font-size: var(--runwell-cta-size);
|
|
106
106
|
font-weight: 700;
|
|
107
107
|
text-decoration: underline;
|
|
108
108
|
text-underline-offset: 4px;
|
|
@@ -124,11 +124,11 @@
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
function inject() {
|
|
127
|
-
var host = document.querySelector('[data-
|
|
127
|
+
var host = document.querySelector('[data-runwell-upsell]');
|
|
128
128
|
if (host) return host;
|
|
129
129
|
var anchor = document.querySelector('.os-step__info, .os-step, .step__sections, .main__content, main') || document.body;
|
|
130
130
|
var div = document.createElement('div');
|
|
131
|
-
div.setAttribute('data-
|
|
131
|
+
div.setAttribute('data-runwell-upsell', '');
|
|
132
132
|
anchor.appendChild(div);
|
|
133
133
|
return div;
|
|
134
134
|
}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
/*
|
|
2
|
-
"Recently viewed" section on PDP and home. Replaces the
|
|
3
|
-
Viewed" feature from Vitals/Pagefly without the app overhead. */
|
|
1
|
+
/* Runwell recently-viewed: track recently viewed products in localStorage
|
|
2
|
+
and render a "Recently viewed" section on PDP and home. Replaces the
|
|
3
|
+
"Recently Viewed" feature from Vitals/Pagefly without the app overhead. */
|
|
4
4
|
(function () {
|
|
5
5
|
if (typeof window === 'undefined') return;
|
|
6
|
-
var KEY = '
|
|
6
|
+
var KEY = 'runwell_recently_viewed';
|
|
7
|
+
// Migrate from legacy Lushi-flavored key once. Drop after 2026-Q3.
|
|
8
|
+
try {
|
|
9
|
+
var legacy = localStorage.getItem('lushi_recently_viewed');
|
|
10
|
+
if (legacy && !localStorage.getItem(KEY)) {
|
|
11
|
+
localStorage.setItem(KEY, legacy);
|
|
12
|
+
localStorage.removeItem('lushi_recently_viewed');
|
|
13
|
+
}
|
|
14
|
+
} catch (e) { /* private mode or storage disabled */ }
|
|
7
15
|
var MAX = 8;
|
|
8
16
|
|
|
9
17
|
function read() {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{%- endif -%}
|
|
18
18
|
<div style="flex: 1 1 auto;">
|
|
19
19
|
{%- if section.settings.heading != blank -%}
|
|
20
|
-
<h3 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-
|
|
20
|
+
<h3 style="font-family: var(--font-heading-family); font-style: italic; font-weight: 400; font-size: var(--runwell-h4-size); line-height: 1.2; margin: 0 0 0.3rem 0;">
|
|
21
21
|
{{ section.settings.heading }}
|
|
22
22
|
</h3>
|
|
23
23
|
{%- endif -%}
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
.runwell-sticky-atc__title {
|
|
58
58
|
font-family: var(--font-heading-family, serif);
|
|
59
59
|
font-style: italic;
|
|
60
|
-
font-size: var(--runwell-
|
|
60
|
+
font-size: var(--runwell-body-size);
|
|
61
61
|
font-weight: 400;
|
|
62
62
|
line-height: 1.2;
|
|
63
63
|
color: var(--runwell-primary, #1A1A1A);
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
|
|
69
69
|
.runwell-sticky-atc__price {
|
|
70
70
|
font-family: var(--font-body-family, sans-serif);
|
|
71
|
-
font-size: var(--runwell-
|
|
71
|
+
font-size: var(--runwell-body-size);
|
|
72
72
|
font-weight: 500;
|
|
73
73
|
color: var(--runwell-primary, #1A1A1A);
|
|
74
74
|
opacity: 0.8;
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
border-radius: 0;
|
|
87
87
|
padding: 0.75rem 1.5rem;
|
|
88
88
|
font-family: var(--font-body-family, sans-serif);
|
|
89
|
-
font-size: var(--runwell-
|
|
89
|
+
font-size: var(--runwell-body-size);
|
|
90
90
|
font-weight: 600;
|
|
91
91
|
letter-spacing: 0.04em;
|
|
92
92
|
text-transform: uppercase;
|
|
@@ -108,10 +108,10 @@
|
|
|
108
108
|
padding: 0.6rem 0.9rem;
|
|
109
109
|
}
|
|
110
110
|
.runwell-sticky-atc__title {
|
|
111
|
-
font-size: var(--runwell-
|
|
111
|
+
font-size: var(--runwell-body-size);
|
|
112
112
|
}
|
|
113
113
|
.runwell-sticky-atc__cta {
|
|
114
114
|
padding: 0.6rem 1.1rem;
|
|
115
|
-
font-size: var(--runwell-
|
|
115
|
+
font-size: var(--runwell-cta-size);
|
|
116
116
|
}
|
|
117
117
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@runwell/shopify-toolkit",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.4",
|
|
4
4
|
"description": "Reusable Shopify theme modules from Runwell. Replaces typically app-driven features (reviews, wishlist, urgency, FAQ, post-purchase upsell, exit popups, free-ship progress, sticky ATC, testimonials, badges, bundles) with native Liquid + JS + CSS that ship across multiple client themes via a config-driven sync CLI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|