easyorders 0.1.8 → 0.1.10

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.
@@ -0,0 +1,60 @@
1
+ {
2
+ "icon": "https://api.iconify.design/lucide:mail.svg",
3
+ "label": "Newsletter — luxe",
4
+ "section_schema": [
5
+ {
6
+ "name": "headline",
7
+ "type": "string",
8
+ "default": "Notes from the studio",
9
+ "description": "Heading"
10
+ },
11
+ {
12
+ "name": "body",
13
+ "type": "string",
14
+ "default": "Private previews, styling tips, and early access to drops—sent sparingly, never noisy.",
15
+ "description": "Supporting text"
16
+ },
17
+ {
18
+ "name": "placeholder",
19
+ "type": "string",
20
+ "default": "Email address",
21
+ "description": "Input placeholder"
22
+ },
23
+ {
24
+ "name": "button_label",
25
+ "type": "string",
26
+ "default": "Join the list",
27
+ "description": "Submit button label"
28
+ },
29
+ {
30
+ "name": "footnote",
31
+ "type": "string",
32
+ "default": "By subscribing you agree to receive marketing emails. Unsubscribe anytime.",
33
+ "description": "Fine print under the form"
34
+ },
35
+ {
36
+ "name": "show_footnote",
37
+ "type": "boolean",
38
+ "default": true,
39
+ "description": "Show the fine print"
40
+ },
41
+ {
42
+ "name": "bg_color",
43
+ "type": "color",
44
+ "default": "#1A1814",
45
+ "description": "Section background"
46
+ },
47
+ {
48
+ "name": "text_color",
49
+ "type": "color",
50
+ "default": "#F4EEE6",
51
+ "description": "Section text color"
52
+ },
53
+ {
54
+ "name": "button_color",
55
+ "type": "color",
56
+ "default": "#C9A962",
57
+ "description": "Button background"
58
+ }
59
+ ]
60
+ }
@@ -0,0 +1,144 @@
1
+ <section
2
+ class="newsletter-luxe"
3
+ style="
4
+ background: {{ section_data.bg_color | default: '#1A1814' }};
5
+ color: {{ section_data.text_color | default: '#F4EEE6' }};
6
+ --nl-btn: {{ section_data.button_color | default: '#C9A962' }};
7
+ "
8
+ >
9
+ <div class="newsletter-luxe__inner">
10
+ {% if section_data.headline != blank %}
11
+ <h2 class="newsletter-luxe__title">{{ section_data.headline }}</h2>
12
+ {% endif %}
13
+ {% if section_data.body != blank %}
14
+ <p class="newsletter-luxe__body">{{ section_data.body }}</p>
15
+ {% endif %}
16
+
17
+ <form
18
+ class="newsletter-luxe__form"
19
+ novalidate
20
+ onsubmit="
21
+ event.preventDefault();
22
+ if (!this.checkValidity()) {
23
+ this.reportValidity();
24
+ return;
25
+ }
26
+ var input = this.elements.email;
27
+ var email = input && input.value ? String(input.value).trim() : '';
28
+ this.dispatchEvent(
29
+ new CustomEvent('footer-subscribe', {
30
+ bubbles: true,
31
+ detail: { email: email }
32
+ })
33
+ );
34
+ this.reset();
35
+ "
36
+ >
37
+ <input
38
+ class="newsletter-luxe__input"
39
+ type="email"
40
+ name="email"
41
+ autocomplete="email"
42
+ inputmode="email"
43
+ maxlength="254"
44
+ pattern="[^@\s]+@[^@\s]+\.[^@\s]+"
45
+ title="Valid email required"
46
+ required
47
+ aria-required="true"
48
+ aria-label="{{ section_data.placeholder | default: 'Email address' }}"
49
+ placeholder="{{ section_data.placeholder | default: 'Email address' }}"
50
+ />
51
+ <button class="newsletter-luxe__submit" type="submit">
52
+ {{ section_data.button_label | default: 'Join the list' }}
53
+ </button>
54
+ </form>
55
+
56
+ {% if section_data.show_footnote and section_data.footnote != blank %}
57
+ <p class="newsletter-luxe__fine">{{ section_data.footnote }}</p>
58
+ {% endif %}
59
+ </div>
60
+ </section>
61
+
62
+ <style>
63
+ .newsletter-luxe {
64
+ padding: clamp(2.75rem, 6vw, 4rem) 1.25rem;
65
+ }
66
+ .newsletter-luxe__inner {
67
+ max-width: 520px;
68
+ margin: 0 auto;
69
+ text-align: center;
70
+ display: flex;
71
+ flex-direction: column;
72
+ gap: 1.25rem;
73
+ }
74
+ .newsletter-luxe__title {
75
+ margin: 0;
76
+ font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
77
+ font-weight: 500;
78
+ font-size: clamp(1.65rem, 4vw, 2.1rem);
79
+ line-height: 1.2;
80
+ }
81
+ .newsletter-luxe__body {
82
+ margin: 0;
83
+ font-size: 1rem;
84
+ line-height: 1.65;
85
+ opacity: 0.88;
86
+ }
87
+ .newsletter-luxe__form {
88
+ display: flex;
89
+ flex-wrap: wrap;
90
+ gap: 0.6rem;
91
+ justify-content: center;
92
+ margin-top: 0.25rem;
93
+ }
94
+ @media (min-width: 520px) {
95
+ .newsletter-luxe__form {
96
+ flex-wrap: nowrap;
97
+ }
98
+ }
99
+ .newsletter-luxe__input {
100
+ flex: 1 1 200px;
101
+ min-width: 0;
102
+ padding: 0.9rem 1.1rem;
103
+ border-radius: 999px;
104
+ border: 1px solid rgba(255, 255, 255, 0.18);
105
+ background: rgba(255, 255, 255, 0.06);
106
+ color: inherit;
107
+ font-size: 0.95rem;
108
+ outline: none;
109
+ transition: border-color 0.2s ease, background 0.2s ease;
110
+ }
111
+ .newsletter-luxe__input::placeholder {
112
+ color: rgba(244, 238, 230, 0.45);
113
+ }
114
+ .newsletter-luxe__input:focus {
115
+ border-color: var(--nl-btn, #c9a962);
116
+ background: rgba(255, 255, 255, 0.09);
117
+ }
118
+ .newsletter-luxe__submit {
119
+ flex-shrink: 0;
120
+ padding: 0.9rem 1.5rem;
121
+ border-radius: 999px;
122
+ border: none;
123
+ cursor: pointer;
124
+ font-size: 0.78rem;
125
+ font-weight: 700;
126
+ letter-spacing: 0.14em;
127
+ text-transform: uppercase;
128
+ background: var(--nl-btn, #c9a962);
129
+ color: #141218;
130
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
131
+ }
132
+ .newsletter-luxe__submit:hover {
133
+ transform: translateY(-1px);
134
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
135
+ }
136
+ .newsletter-luxe__fine {
137
+ margin: 0;
138
+ font-size: 0.72rem;
139
+ line-height: 1.5;
140
+ opacity: 0.55;
141
+ max-width: 36rem;
142
+ margin-inline: auto;
143
+ }
144
+ </style>
@@ -0,0 +1,91 @@
1
+ {
2
+ "icon": "https://api.iconify.design/lucide:sparkles.svg",
3
+ "label": "Runway hero",
4
+ "section_schema": [
5
+ {
6
+ "name": "image",
7
+ "type": "image",
8
+ "default": "",
9
+ "description": "Full-width background image"
10
+ },
11
+ {
12
+ "name": "kicker",
13
+ "type": "string",
14
+ "default": "New season",
15
+ "description": "Small line above the headline"
16
+ },
17
+ {
18
+ "name": "headline",
19
+ "type": "string",
20
+ "default": "The spring edit",
21
+ "description": "Main headline"
22
+ },
23
+ {
24
+ "name": "subheadline",
25
+ "type": "string",
26
+ "default": "Silhouettes, textures, and tones curated for everyday luxury.",
27
+ "description": "Supporting line under the headline"
28
+ },
29
+ {
30
+ "name": "primary_label",
31
+ "type": "string",
32
+ "default": "Shop collection",
33
+ "description": "Primary button label"
34
+ },
35
+ {
36
+ "name": "primary_category_id",
37
+ "type": "category_single_select",
38
+ "description": "Collection the primary button links to (resolved on the storefront)"
39
+ },
40
+ {
41
+ "name": "secondary_label",
42
+ "type": "string",
43
+ "default": "Lookbook",
44
+ "description": "Secondary button label (hidden if empty)"
45
+ },
46
+ {
47
+ "name": "secondary_page_id",
48
+ "type": "page_single_select",
49
+ "description": "Simple page the secondary button links to (when label is set)"
50
+ },
51
+ {
52
+ "name": "overlay_strength",
53
+ "type": "number",
54
+ "default": 42,
55
+ "description": "Dark overlay strength (0–100)"
56
+ },
57
+ {
58
+ "name": "accent_color",
59
+ "type": "color",
60
+ "default": "#C9A962",
61
+ "description": "Accent for buttons and kicker when no image"
62
+ },
63
+ {
64
+ "name": "text_color",
65
+ "type": "color",
66
+ "default": "#FAF7F2",
67
+ "description": "Hero text color"
68
+ },
69
+ {
70
+ "name": "alignment",
71
+ "type": "select",
72
+ "default": "center",
73
+ "description": "Content alignment",
74
+ "options": [
75
+ { "label": "Center", "value": "center" },
76
+ { "label": "Left", "value": "left" }
77
+ ]
78
+ },
79
+ {
80
+ "name": "min_height",
81
+ "type": "select",
82
+ "default": "tall",
83
+ "description": "Minimum height",
84
+ "options": [
85
+ { "label": "Compact", "value": "compact" },
86
+ { "label": "Tall", "value": "tall" },
87
+ { "label": "Near full screen", "value": "screen" }
88
+ ]
89
+ }
90
+ ]
91
+ }
@@ -0,0 +1,159 @@
1
+ <section
2
+ class="runway-hero runway-hero--{{ section_data.alignment | default: 'center' }}"
3
+ style="
4
+ --runway-text: {{ section_data.text_color | default: '#FAF7F2' }};
5
+ --runway-accent: {{ section_data.accent_color | default: '#C9A962' }};
6
+ --runway-overlay: {{ section_data.overlay_strength | default: 42 | divided_by: 100.0 }};
7
+ --runway-min-h: {% if section_data.min_height == 'compact' %}52vh{% elsif section_data.min_height == 'screen' %}92vh{% else %}72vh{% endif %};
8
+ {% if section_data.image != blank %}background-image: url('{{ section_data.image }}');{% endif %}
9
+ "
10
+ >
11
+ <div class="runway-hero__overlay" aria-hidden="true"></div>
12
+ <div class="runway-hero__inner">
13
+ {% if section_data.kicker != blank %}
14
+ <p class="runway-hero__kicker">{{ section_data.kicker }}</p>
15
+ {% endif %}
16
+ {% if section_data.headline != blank %}
17
+ <h1 class="runway-hero__title">{{ section_data.headline }}</h1>
18
+ {% endif %}
19
+ {% if section_data.subheadline != blank %}
20
+ <p class="runway-hero__lede">{{ section_data.subheadline }}</p>
21
+ {% endif %}
22
+ <div class="runway-hero__actions">
23
+ {% if section_data.primary_label != blank %}
24
+ <a
25
+ class="runway-hero__btn runway-hero__btn--primary"
26
+ href="{% if section_data.primary_category_id != blank %}#{% else %}/products{% endif %}"
27
+ {% if section_data.primary_category_id != blank %}
28
+ data-eo-hs-cta="1"
29
+ data-eo-hs-cta-entity="categories"
30
+ data-eo-hs-cta-id="{{ section_data.primary_category_id }}"
31
+ {% endif %}
32
+ >
33
+ {{ section_data.primary_label }}
34
+ </a>
35
+ {% endif %}
36
+ {% if section_data.secondary_label != blank %}
37
+ <a
38
+ class="runway-hero__btn runway-hero__btn--ghost"
39
+ href="#"
40
+ {% if section_data.secondary_page_id != blank %}
41
+ data-eo-hs-cta="1"
42
+ data-eo-hs-cta-entity="pages"
43
+ data-eo-hs-cta-id="{{ section_data.secondary_page_id }}"
44
+ {% endif %}
45
+ >
46
+ {{ section_data.secondary_label }}
47
+ </a>
48
+ {% endif %}
49
+ </div>
50
+ </div>
51
+ </section>
52
+
53
+ <style>
54
+ .runway-hero {
55
+ position: relative;
56
+ isolation: isolate;
57
+ min-height: var(--runway-min-h, 72vh);
58
+ display: flex;
59
+ align-items: center;
60
+ justify-content: center;
61
+ padding: clamp(2rem, 6vw, 5rem) 1.5rem;
62
+ background-color: #141218;
63
+ background-size: cover;
64
+ background-position: center;
65
+ color: var(--runway-text, #faf7f2);
66
+ text-align: center;
67
+ }
68
+ .runway-hero--left {
69
+ text-align: left;
70
+ justify-content: flex-start;
71
+ }
72
+ .runway-hero__overlay {
73
+ position: absolute;
74
+ inset: 0;
75
+ z-index: 0;
76
+ background: linear-gradient(
77
+ 105deg,
78
+ rgba(8, 6, 10, calc(var(--runway-overlay, 0.45) + 0.12)) 0%,
79
+ rgba(8, 6, 10, var(--runway-overlay, 0.45)) 45%,
80
+ rgba(8, 6, 10, calc(var(--runway-overlay, 0.45) * 0.55)) 100%
81
+ );
82
+ }
83
+ .runway-hero__inner {
84
+ position: relative;
85
+ z-index: 1;
86
+ max-width: 40rem;
87
+ display: flex;
88
+ flex-direction: column;
89
+ gap: 1rem;
90
+ }
91
+ .runway-hero--left .runway-hero__inner {
92
+ margin-right: auto;
93
+ }
94
+ .runway-hero__kicker {
95
+ margin: 0;
96
+ font-size: 0.75rem;
97
+ letter-spacing: 0.35em;
98
+ text-transform: uppercase;
99
+ color: var(--runway-accent, #c9a962);
100
+ font-weight: 600;
101
+ }
102
+ .runway-hero__title {
103
+ margin: 0;
104
+ font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
105
+ font-weight: 500;
106
+ font-size: clamp(2.25rem, 6vw, 3.75rem);
107
+ line-height: 1.05;
108
+ }
109
+ .runway-hero__lede {
110
+ margin: 0;
111
+ font-size: clamp(1rem, 2.2vw, 1.2rem);
112
+ line-height: 1.65;
113
+ opacity: 0.92;
114
+ max-width: 36rem;
115
+ }
116
+ .runway-hero--left .runway-hero__lede {
117
+ margin-left: 0;
118
+ }
119
+ .runway-hero__actions {
120
+ display: flex;
121
+ flex-wrap: wrap;
122
+ gap: 0.75rem;
123
+ margin-top: 0.5rem;
124
+ justify-content: center;
125
+ }
126
+ .runway-hero--left .runway-hero__actions {
127
+ justify-content: flex-start;
128
+ }
129
+ .runway-hero__btn {
130
+ display: inline-flex;
131
+ align-items: center;
132
+ justify-content: center;
133
+ padding: 0.85rem 1.75rem;
134
+ font-size: 0.8rem;
135
+ font-weight: 600;
136
+ letter-spacing: 0.12em;
137
+ text-transform: uppercase;
138
+ text-decoration: none;
139
+ border-radius: 999px;
140
+ transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
141
+ }
142
+ .runway-hero__btn--primary {
143
+ background: var(--runway-accent, #c9a962);
144
+ color: #141218;
145
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
146
+ }
147
+ .runway-hero__btn--primary:hover {
148
+ transform: translateY(-1px);
149
+ box-shadow: 0 16px 48px rgba(0, 0, 0, 0.3);
150
+ }
151
+ .runway-hero__btn--ghost {
152
+ border: 1px solid rgba(255, 255, 255, 0.45);
153
+ color: inherit;
154
+ background: rgba(255, 255, 255, 0.04);
155
+ }
156
+ .runway-hero__btn--ghost:hover {
157
+ background: rgba(255, 255, 255, 0.1);
158
+ }
159
+ </style>
@@ -0,0 +1,75 @@
1
+ {
2
+ "icon": "https://api.iconify.design/lucide:shirt.svg",
3
+ "label": "Shop the look",
4
+ "section_schema": [
5
+ {
6
+ "name": "eyebrow",
7
+ "type": "string",
8
+ "default": "Styling room",
9
+ "description": "Label above the section title"
10
+ },
11
+ {
12
+ "name": "title",
13
+ "type": "string",
14
+ "default": "Shop the look",
15
+ "description": "Section heading"
16
+ },
17
+ {
18
+ "name": "subtitle",
19
+ "type": "string",
20
+ "default": "One outfit, every piece linked—build yours in a single pass.",
21
+ "description": "Intro line beside the hero look"
22
+ },
23
+ {
24
+ "name": "look_image",
25
+ "type": "image",
26
+ "default": "",
27
+ "description": "Main outfit or editorial image"
28
+ },
29
+ {
30
+ "name": "look_title",
31
+ "type": "string",
32
+ "default": "City nights",
33
+ "description": "Title on the hero card"
34
+ },
35
+ {
36
+ "name": "look_caption",
37
+ "type": "string",
38
+ "default": "Layered wool, soft leather, and a hint of shine.",
39
+ "description": "Short caption under the title"
40
+ },
41
+ {
42
+ "name": "look_url",
43
+ "type": "string",
44
+ "default": "/products",
45
+ "description": "Link for the full look CTA"
46
+ },
47
+ {
48
+ "name": "look_cta_label",
49
+ "type": "string",
50
+ "default": "Shop full look",
51
+ "description": "Hero card button label"
52
+ },
53
+ {
54
+ "name": "accent_color",
55
+ "type": "color",
56
+ "default": "#C9A962",
57
+ "description": "Accent for labels and buttons"
58
+ },
59
+ {
60
+ "name": "surface",
61
+ "type": "select",
62
+ "default": "cream",
63
+ "description": "Background style",
64
+ "options": [
65
+ { "label": "Warm cream", "value": "cream" },
66
+ { "label": "Soft charcoal", "value": "charcoal" }
67
+ ]
68
+ },
69
+ {
70
+ "name": "pick_product_ids",
71
+ "type": "product_multi_select",
72
+ "description": "Products to show beside the hero (search and reorder in the picker)"
73
+ }
74
+ ]
75
+ }