easyorders 0.1.15 → 0.1.17

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 (46) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/cli.js +22 -8
  3. package/dist/server/index.js +10 -7
  4. package/dist/template/theme/config.json +19 -3
  5. package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/config.json +107 -0
  6. package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/template.liquid +171 -0
  7. package/dist/template/theme/home-sections/category-mosaic/config.json +89 -4
  8. package/dist/template/theme/home-sections/category-mosaic/template.liquid +84 -69
  9. package/dist/template/theme/home-sections/different-hero/config.json +199 -0
  10. package/dist/template/theme/home-sections/different-hero/template.liquid +219 -0
  11. package/dist/template/theme/home-sections/editorial-feature/config.json +27 -1
  12. package/dist/template/theme/home-sections/editorial-feature/template.liquid +11 -10
  13. package/dist/template/theme/home-sections/newsletter-luxe/config.json +28 -2
  14. package/dist/template/theme/home-sections/newsletter-luxe/template.liquid +19 -13
  15. package/dist/template/theme/home-sections/runway-hero/config.json +87 -30
  16. package/dist/template/theme/home-sections/runway-hero/template.liquid +59 -29
  17. package/dist/template/theme/home-sections/shop-the-look/config.json +93 -1
  18. package/dist/template/theme/home-sections/shop-the-look/template.liquid +41 -19
  19. package/dist/template/theme/home-sections/slider-before-after/config.json +213 -0
  20. package/dist/template/theme/home-sections/slider-before-after/template.liquid +336 -0
  21. package/dist/template/theme/home-sections/test-hero-allbird/config.json +130 -0
  22. package/dist/template/theme/home-sections/test-hero-allbird/template.liquid +149 -0
  23. package/dist/template/theme/home-sections/trust-promise/config.json +76 -2
  24. package/dist/template/theme/home-sections/trust-promise/template.liquid +34 -11
  25. package/dist/template/theme/home-sections/zoom-parallax/config.json +48 -0
  26. package/dist/template/theme/home-sections/zoom-parallax/template.liquid +135 -0
  27. package/dist/template/theme/product-data-schema.json +27 -0
  28. package/dist/template/theme/schema.json +114 -129
  29. package/dist/template/theme/script.js +694 -185
  30. package/dist/template/theme/sections/categories.liquid +20 -4
  31. package/dist/template/theme/sections/featured-products.liquid +65 -32
  32. package/dist/template/theme/sections/fixed-buy-button.liquid +6 -1
  33. package/dist/template/theme/sections/footer.liquid +90 -91
  34. package/dist/template/theme/sections/gallery.liquid +37 -33
  35. package/dist/template/theme/sections/header.liquid +105 -25
  36. package/dist/template/theme/sections/home-products-grid.liquid +68 -10
  37. package/dist/template/theme/sections/list-products.liquid +73 -30
  38. package/dist/template/theme/sections/order-invoice.liquid +39 -91
  39. package/dist/template/theme/sections/product-description.liquid +18 -8
  40. package/dist/template/theme/sections/product-details.liquid +9 -24
  41. package/dist/template/theme/sections/products-grid.liquid +102 -54
  42. package/dist/template/theme/sections/related-products.liquid +124 -60
  43. package/dist/template/theme/sections/reviews.liquid +43 -28
  44. package/dist/template/theme/style.css +2283 -589
  45. package/dist/template/theme/theme-data.json +25 -8
  46. package/package.json +2 -2
@@ -1,8 +1,21 @@
1
1
  <section
2
- class="shop-the-look shop-the-look--{{ section_data.surface | default: 'cream' }}"
3
- style="--stl-accent: {{ section_data.accent_color | default: '#C9A962' }};"
2
+ class="eo-home-section shop-the-look shop-the-look--{{ section_data.surface | default: 'cream' }}"
3
+ {% if section_data.enable_animation != false %}data-section-anim="{{ section_data.animation_style | default: 'fade-up' }}"{% endif %}
4
+ style="
5
+ --stl-accent: {{ section_data.accent_color | default: '#C9A962' }};
6
+ --stl-card-bg: {{ section_data.card_bg_color | default: '' }};
7
+ --stl-card-title: {{ section_data.card_title_color | default: '' }};
8
+ --stl-card-price: {{ section_data.card_price_color | default: '' }};
9
+ --stl-card-old-price: {{ section_data.card_old_price_color | default: '' }};
10
+ {% if section_data.heading_title_color != blank %}--stl-head-title-color: {{ section_data.heading_title_color }};{% endif %}
11
+ --stl-head-title-size: {{ section_data.heading_title_size | default: 38 }}px;
12
+ --stl-head-title-weight: {{ section_data.heading_title_weight | default: '500' }};
13
+ {% if section_data.heading_subtitle_color != blank %}--stl-head-subtitle-color: {{ section_data.heading_subtitle_color }};--stl-head-subtitle-opacity: 1;{% endif %}
14
+ --stl-head-subtitle-size: {{ section_data.heading_subtitle_size | default: 16 }}px;
15
+ --stl-head-subtitle-weight: {{ section_data.heading_subtitle_weight | default: '400' }};
16
+ "
4
17
  >
5
- <header class="shop-the-look__head">
18
+ <header class="shop-the-look__head ab-anim-el">
6
19
  {% if section_data.eyebrow != blank %}
7
20
  <p class="shop-the-look__eyebrow">{{ section_data.eyebrow }}</p>
8
21
  {% endif %}
@@ -15,7 +28,7 @@
15
28
  </header>
16
29
 
17
30
  <div class="shop-the-look__layout">
18
- <a class="shop-the-look__hero" href="{{ section_data.look_url | default: '/products' }}">
31
+ <a class="shop-the-look__hero ab-anim-el" href="{{ section_data.look_url | default: '/products' }}">
19
32
  <div class="shop-the-look__hero-visual">
20
33
  {% if section_data.look_image != blank %}
21
34
  <img
@@ -45,9 +58,10 @@
45
58
  </a>
46
59
 
47
60
  <div
48
- class="shop-the-look__picks eo-hs{% if section_data.pick_product_ids == blank or section_data.pick_product_ids.size == 0 %} eo-hs--empty{% endif %}"
61
+ class="shop-the-look__picks eo-hs ab-anim-el{% if section_data.pick_product_ids == blank or section_data.pick_product_ids.size == 0 %} eo-hs--empty{% endif %}"
49
62
  data-eo-hs-entity="products"
50
63
  data-eo-hs-ids="{{ section_data.pick_product_ids | join: ',' | strip }}"
64
+ data-eo-hs-currency="{{ currency }}"
51
65
  >
52
66
  <div class="shop-the-look__picks-inner" data-eo-hs-mount>
53
67
  {% if section_data.pick_product_ids and section_data.pick_product_ids.size > 0 %}
@@ -68,6 +82,7 @@
68
82
  }
69
83
  .shop-the-look--cream {
70
84
  background: #f3efe8;
85
+ margin-block: 15px;
71
86
  color: #1c1a17;
72
87
  }
73
88
  .shop-the-look--charcoal {
@@ -75,8 +90,8 @@
75
90
  color: #f4eee6;
76
91
  }
77
92
  .shop-the-look__head {
78
- max-width: 40rem;
79
- margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
93
+ max-width: 1160px;
94
+ margin: 0 auto 30px;
80
95
  }
81
96
  .shop-the-look__eyebrow {
82
97
  margin: 0 0 0.4rem;
@@ -89,15 +104,18 @@
89
104
  .shop-the-look__title {
90
105
  margin: 0 0 0.5rem;
91
106
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
92
- font-weight: 500;
93
- font-size: clamp(1.75rem, 4vw, 2.35rem);
107
+ font-weight: var(--stl-head-title-weight, 500);
108
+ font-size: clamp(1.25rem, 3vw, var(--stl-head-title-size, 38px));
94
109
  line-height: 1.15;
110
+ color: var(--stl-head-title-color, inherit);
95
111
  }
96
112
  .shop-the-look__subtitle {
97
113
  margin: 0;
98
- font-size: 1rem;
114
+ font-size: var(--stl-head-subtitle-size, 16px);
115
+ font-weight: var(--stl-head-subtitle-weight, 400);
99
116
  line-height: 1.65;
100
- opacity: 0.82;
117
+ opacity: var(--stl-head-subtitle-opacity, 0.82);
118
+ color: var(--stl-head-subtitle-color, inherit);
101
119
  }
102
120
  .shop-the-look__layout {
103
121
  max-width: 1160px;
@@ -118,9 +136,8 @@
118
136
  overflow: hidden;
119
137
  text-decoration: none;
120
138
  color: inherit;
121
- min-height: clamp(300px, 52vh, 540px);
122
- box-shadow: 0 24px 60px rgba(0, 0, 0, 0.12);
123
- transition: transform 0.25s ease, box-shadow 0.25s ease;
139
+ min-height: clamp(300px, 60vh, 540px);
140
+ transition: transform 0.25s ease, box-shadow 0.25s ease;
124
141
  }
125
142
  .shop-the-look--charcoal .shop-the-look__hero {
126
143
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
@@ -208,14 +225,13 @@
208
225
  }
209
226
  @media (max-width: 959px) {
210
227
  .shop-the-look__picks-inner {
211
- flex-flow: row nowrap;
212
- overflow-x: auto;
228
+ overflow-x: auto;
213
229
  padding-bottom: 0.35rem;
214
230
  scroll-snap-type: x mandatory;
215
231
  -webkit-overflow-scrolling: touch;
216
232
  }
217
233
  .shop-the-look__picks-inner .eo-hs-card--product {
218
- flex: 0 0 min(220px, 72vw);
234
+ flex: 0 0 min(140px, 72vw);
219
235
  scroll-snap-align: start;
220
236
  }
221
237
  }
@@ -239,7 +255,7 @@
239
255
  color: inherit;
240
256
  padding: 0.65rem;
241
257
  border-radius: 8px;
242
- background: rgba(255, 255, 255, 0.55);
258
+ background: var(--stl-card-bg, rgba(255, 255, 255, 0.55));
243
259
  border: 1px solid rgba(28, 26, 23, 0.06);
244
260
  transition: background 0.2s ease, transform 0.2s ease;
245
261
  }
@@ -280,11 +296,17 @@
280
296
  font-size: 0.9rem;
281
297
  font-weight: 600;
282
298
  line-height: 1.35;
299
+ color: var(--stl-card-title, inherit);
283
300
  }
284
301
  .shop-the-look__picks-inner .eo-hs-card--product .eo-hs-card__meta {
285
302
  font-size: 0.82rem;
286
- opacity: 0.75;
287
303
  letter-spacing: 0.03em;
304
+ color: var(--stl-card-price, inherit);
305
+ opacity: 0.85;DISPLAY: flex;
306
+ GAP: 8PX;
307
+ }
308
+ .shop-the-look__picks-inner .eo-hs-card--product .eo-hs-card__meta del {
309
+ color: var(--stl-card-old-price, inherit);
288
310
  }
289
311
  .shop-the-look__picks .eo-hs-error {
290
312
  margin: 0;
@@ -0,0 +1,213 @@
1
+ {
2
+ "icon": "https://files.easy-orders.net/1778106742691912104.png",
3
+ "label": "Before/After Slider",
4
+ "section_schema": [
5
+ {
6
+ "name": "bg_color",
7
+ "type": "color",
8
+ "default": "#f9f9f9",
9
+ "description": "خلفية السيكشن"
10
+ },
11
+ {
12
+ "name": "title",
13
+ "type": "string",
14
+ "default": "See the Transformation",
15
+ "description": "عنوان القسم"
16
+ },
17
+ {
18
+ "name": "title_color",
19
+ "type": "color",
20
+ "default": "#1a1a1a",
21
+ "description": "لون العنوان"
22
+ },
23
+ {
24
+ "name": "description",
25
+ "type": "string",
26
+ "default": "",
27
+ "description": "وصف تحت العنوان"
28
+ },
29
+ {
30
+ "name": "description_color",
31
+ "type": "color",
32
+ "default": "#555555",
33
+ "description": "لون الوصف"
34
+ },
35
+ {
36
+ "name": "description_size",
37
+ "type": "number",
38
+ "default": 16,
39
+ "description": "حجم الوصف (px)"
40
+ },
41
+ {
42
+ "name": "image_before",
43
+ "type": "image",
44
+ "default": "",
45
+ "description": "صورة «قبل» (رفع)"
46
+ },
47
+ {
48
+ "name": "image_after",
49
+ "type": "image",
50
+ "default": "",
51
+ "description": "صورة «بعد» (رفع)"
52
+ },
53
+ {
54
+ "name": "before_label",
55
+ "type": "string",
56
+ "default": "Before",
57
+ "description": "النص أعلى صورة الشمال"
58
+ },
59
+ {
60
+ "name": "after_label",
61
+ "type": "string",
62
+ "default": "After",
63
+ "description": "النص أعلى صورة اليمين"
64
+ },
65
+ {
66
+ "name": "before_product_label",
67
+ "type": "string",
68
+ "default": "",
69
+ "description": "نص زر المنتج على صورة «قبل» (فارغ = إخفاء الزر)"
70
+ },
71
+ {
72
+ "name": "before_product_id",
73
+ "type": "product_single_select",
74
+ "description": "منتج صورة «قبل» (الرابط تلقائي)"
75
+ },
76
+ {
77
+ "name": "after_product_label",
78
+ "type": "string",
79
+ "default": "",
80
+ "description": "نص زر المنتج على صورة «بعد» (فارغ = إخفاء الزر)"
81
+ },
82
+ {
83
+ "name": "after_product_id",
84
+ "type": "product_single_select",
85
+ "description": "منتج صورة «بعد» (الرابط تلقائي)"
86
+ },
87
+ {
88
+ "name": "label_color",
89
+ "type": "color",
90
+ "default": "#ffffff",
91
+ "description": "لون النص"
92
+ },
93
+ {
94
+ "name": "label_size",
95
+ "type": "number",
96
+ "default": 18,
97
+ "description": "حجم النص (px)"
98
+ },
99
+ {
100
+ "name": "label_weight",
101
+ "type": "select",
102
+ "default": "700",
103
+ "description": "وزن الخط",
104
+ "options": [
105
+ { "label": "Normal 400", "value": "400" },
106
+ { "label": "Medium 500", "value": "500" },
107
+ { "label": "SemiBold 600", "value": "600" },
108
+ { "label": "Bold 700", "value": "700" },
109
+ { "label": "ExtraBold 800", "value": "800" }
110
+ ]
111
+ },
112
+ {
113
+ "name": "show_label_border",
114
+ "type": "boolean",
115
+ "default": false,
116
+ "description": "إظهار بوردر حول النص"
117
+ },
118
+ {
119
+ "name": "label_border_color",
120
+ "type": "color",
121
+ "default": "#ffffff",
122
+ "description": "لون البوردر"
123
+ },
124
+ {
125
+ "name": "shape",
126
+ "type": "select",
127
+ "default": "square",
128
+ "description": "شكل الحاوية",
129
+ "options": [
130
+ { "label": "مربع / مستطيل", "value": "square" },
131
+ { "label": "دائري", "value": "circle" }
132
+ ]
133
+ },
134
+ {
135
+ "name": "max_width",
136
+ "type": "number",
137
+ "default": 800,
138
+ "description": "أقصى عرض للصور (px)"
139
+ },
140
+ {
141
+ "name": "product_cta_text_color",
142
+ "type": "color",
143
+ "default": "#ffffff",
144
+ "description": "لون نص الزرار"
145
+ },
146
+ {
147
+ "name": "product_cta_font_size",
148
+ "type": "number",
149
+ "default": 14,
150
+ "description": "حجم خط الزرار (px)"
151
+ },
152
+ {
153
+ "name": "product_cta_font_weight",
154
+ "type": "select",
155
+ "default": "600",
156
+ "description": "وزن خط الزرار",
157
+ "options": [
158
+ { "label": "Normal 400", "value": "400" },
159
+ { "label": "Medium 500", "value": "500" },
160
+ { "label": "SemiBold 600", "value": "600" },
161
+ { "label": "Bold 700", "value": "700" }
162
+ ]
163
+ },
164
+ {
165
+ "name": "product_cta_letter_spacing",
166
+ "type": "number",
167
+ "default": 0.06,
168
+ "description": "تباعد الحروف (em)"
169
+ },
170
+ {
171
+ "name": "product_cta_text_transform",
172
+ "type": "select",
173
+ "default": "uppercase",
174
+ "description": "تحويل النص",
175
+ "options": [
176
+ { "label": "بدون", "value": "none" },
177
+ { "label": "UPPERCASE", "value": "uppercase" },
178
+ { "label": "lowercase", "value": "lowercase" },
179
+ { "label": "Capitalize", "value": "capitalize" }
180
+ ]
181
+ },
182
+ {
183
+ "name": "product_cta_border_width",
184
+ "type": "number",
185
+ "default": 0,
186
+ "description": "عرض إطار الزرار (px، 0 = بدون)"
187
+ },
188
+ {
189
+ "name": "product_cta_border_color",
190
+ "type": "color",
191
+ "default": "#1a1a1a",
192
+ "description": "لون إطار الزرار"
193
+ },
194
+ {
195
+ "name": "product_cta_radius",
196
+ "type": "number",
197
+ "default": 999,
198
+ "description": "استدارة حواف الزرار (px)"
199
+ },
200
+ {
201
+ "name": "product_cta_padding_x",
202
+ "type": "number",
203
+ "default": 22,
204
+ "description": "مسافة أفقية للزرار (px)"
205
+ },
206
+ {
207
+ "name": "product_cta_padding_y",
208
+ "type": "number",
209
+ "default": 12,
210
+ "description": "مسافة رأسية للزرار (px)"
211
+ }
212
+ ]
213
+ }
@@ -0,0 +1,336 @@
1
+ <section
2
+ class="eo-home-section ab-comparison-section ab-comparison--{{ section_data.shape | default: 'square' }}"
3
+ style="
4
+ --comp-bg: {{ section_data.bg_color | default: '#f9f9f9' }};
5
+ --comp-title-color: {{ section_data.title_color | default: '#1a1a1a' }};
6
+ --comp-max-width: {{ section_data.max_width | default: 800 }}px;
7
+ --comp-label-color: {{ section_data.label_color | default: '#ffffff' }};
8
+ --comp-label-size: {{ section_data.label_size | default: 18 }}px;
9
+ --comp-label-weight: {{ section_data.label_weight | default: 700 }};
10
+ --comp-label-border-color: {{ section_data.label_border_color | default: '#ffffff' }};
11
+ --comp-label-border-width: {% if section_data.show_label_border %}1px{% else %}0px{% endif %};
12
+ --comp-desc-color: {{ section_data.description_color | default: '#555555' }};
13
+ --comp-desc-size: {{ section_data.description_size | default: 16 }}px;
14
+ --comp-cta-bg: {{ section_data.product_cta_bg | default: '#1a1a1a' }};
15
+ --comp-cta-color: {{ section_data.product_cta_text_color | default: '#ffffff' }};
16
+ --comp-cta-fs: {{ section_data.product_cta_font_size | default: 14 }}px;
17
+ --comp-cta-fw: {{ section_data.product_cta_font_weight | default: '600' }};
18
+ --comp-cta-ls: {{ section_data.product_cta_letter_spacing | default: 0.06 }}em;
19
+ --comp-cta-tt: {{ section_data.product_cta_text_transform | default: 'uppercase' }};
20
+ --comp-cta-border-w: {{ section_data.product_cta_border_width | default: 0 }}px;
21
+ --comp-cta-border-c: {{ section_data.product_cta_border_color | default: '#1a1a1a' }};
22
+ --comp-cta-rad: {{ section_data.product_cta_radius | default: 999 }}px;
23
+ --comp-cta-px: {{ section_data.product_cta_padding_x | default: 22 }}px;
24
+ --comp-cta-py: {{ section_data.product_cta_padding_y | default: 12 }}px;
25
+ "
26
+ >
27
+ <div class="ab-comparison-container">
28
+ {% if section_data.title != blank %}
29
+ <h2 class="ab-comparison-title">{{ section_data.title }}</h2>
30
+ {% endif %}
31
+ {% if section_data.description != blank %}
32
+ <p class="ab-comparison-desc">{{ section_data.description }}</p>
33
+ {% endif %}
34
+
35
+ <div class="ab-comparison-slider-wrap">
36
+ <div class="ab-comparison-slider ab-orientation-horizontal" id="comparison-{{ section_id }}">
37
+
38
+ <div class="ab-comp-image ab-after-image">
39
+ {% if section_data.image_after != blank %}
40
+ <img src="{{ section_data.image_after }}" alt="After" draggable="false">
41
+ {% else %}
42
+ <div class="ab-comp-placeholder">After Image Placeholder</div>
43
+ {% endif %}
44
+ {% if section_data.after_label != blank %}
45
+ <span class="ab-comp-image-label ab-comp-image-label--right">{{ section_data.after_label }}</span>
46
+ {% endif %}
47
+ {% if section_data.after_product_label != blank %}
48
+ {% if section_data.after_product_id != blank %}
49
+ <a
50
+ class="ab-comp-product-cta ab-comp-product-cta--after"
51
+ href="#"
52
+ data-eo-hs-cta="1"
53
+ data-eo-hs-cta-entity="products"
54
+ data-eo-hs-cta-id="{{ section_data.after_product_id }}"
55
+ >{{ section_data.after_product_label }}</a>
56
+ {% else %}
57
+ <a class="ab-comp-product-cta ab-comp-product-cta--after" href="/products">{{ section_data.after_product_label }}</a>
58
+ {% endif %}
59
+ {% endif %}
60
+ </div>
61
+
62
+ <div class="ab-comp-image ab-before-image" id="before-img-{{ section_id }}">
63
+ {% if section_data.image_before != blank %}
64
+ <img src="{{ section_data.image_before }}" alt="Before" draggable="false">
65
+ {% else %}
66
+ <div class="ab-comp-placeholder" style="background: #eee;">Before Image Placeholder</div>
67
+ {% endif %}
68
+ {% if section_data.before_label != blank %}
69
+ <span class="ab-comp-image-label ab-comp-image-label--left">{{ section_data.before_label }}</span>
70
+ {% endif %}
71
+ {% if section_data.before_product_label != blank %}
72
+ {% if section_data.before_product_id != blank %}
73
+ <a
74
+ class="ab-comp-product-cta ab-comp-product-cta--before"
75
+ href="#"
76
+ data-eo-hs-cta="1"
77
+ data-eo-hs-cta-entity="products"
78
+ data-eo-hs-cta-id="{{ section_data.before_product_id }}"
79
+ >{{ section_data.before_product_label }}</a>
80
+ {% else %}
81
+ <a class="ab-comp-product-cta ab-comp-product-cta--before" href="/products">{{ section_data.before_product_label }}</a>
82
+ {% endif %}
83
+ {% endif %}
84
+ </div>
85
+
86
+ <div class="ab-comp-handle" id="handle-{{ section_id }}">
87
+ <div class="ab-comp-handle-circle">
88
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
89
+ <polyline points="10 7 5 12 10 17"/><polyline points="14 7 19 12 14 17"/>
90
+ </svg>
91
+ </div>
92
+ </div>
93
+
94
+ <input type="range" min="0" max="100" value="50" class="ab-comp-range" id="range-{{ section_id }}" aria-label="Comparison slider">
95
+ </div>
96
+
97
+ </div>
98
+ </div>
99
+ </section>
100
+
101
+ <style>
102
+ .ab-comparison-section {
103
+ background-color: var(--comp-bg);
104
+ padding: 20px 0px;
105
+ display: flex; direction: ltr;
106
+ justify-content: center;
107
+ }
108
+
109
+ .ab-comparison-container {
110
+ width: 100%;
111
+ max-width: var(--comp-max-width);
112
+ text-align: center;
113
+ }
114
+
115
+ .ab-comparison-slider-wrap {
116
+ width: 100%;
117
+ text-align: initial;
118
+ }
119
+
120
+ .ab-comp-product-cta {
121
+ position: absolute;
122
+ z-index: 4;text-decoration-line: underline;
123
+ text-underline-offset: 5px;
124
+ pointer-events: auto;
125
+ display: inline-flex;
126
+ align-items: center;
127
+ justify-content: center;
128
+
129
+ box-sizing: border-box;
130
+ background: transparent;
131
+ color: var(--comp-cta-color, #fff);
132
+ font-size: var(--comp-cta-fs, 14px);
133
+ font-weight: var(--comp-cta-fw, 600);
134
+ letter-spacing: var(--comp-cta-ls, 0.06em);
135
+ text-transform: var(--comp-cta-tt, uppercase);
136
+ border: var(--comp-cta-border-w, 0px) solid var(--comp-cta-border-c, #1a1a1a);
137
+ border-radius: var(--comp-cta-rad, 999px);
138
+ padding: var(--comp-cta-py, 12px) var(--comp-cta-px, 22px);
139
+ transition: opacity 0.2s ease, transform 0.2s ease;
140
+ max-width: min(92%, 320px);
141
+ text-align: center;
142
+ line-height: 1.2;
143
+ }
144
+
145
+ .ab-orientation-horizontal .ab-comp-product-cta--before {
146
+ bottom: 14px;
147
+ left: 14px;
148
+ top: auto;
149
+ right: auto;
150
+ }
151
+
152
+ .ab-orientation-horizontal .ab-comp-product-cta--after {
153
+ bottom: 14px;
154
+ right: 14px;
155
+ top: auto;
156
+ left: auto;
157
+ }
158
+
159
+ .ab-comp-product-cta:hover {
160
+ opacity: 0.9;
161
+ transform: translateY(-1px);
162
+ }
163
+
164
+ .ab-comp-product-cta:focus-visible {
165
+ outline: 2px solid var(--comp-cta-border-c, #1a1a1a);
166
+ outline-offset: 2px;
167
+ }
168
+
169
+ .ab-comparison-title {
170
+ color: var(--comp-title-color);
171
+ font-size: clamp(1.5rem, 4vw, 2.2rem);
172
+ margin-bottom: 8px;
173
+ font-weight: 600;
174
+ }
175
+
176
+ .ab-comparison-desc {
177
+ color: var(--comp-desc-color);
178
+ font-size: var(--comp-desc-size);
179
+ margin: 0 auto 25px;
180
+ max-width: 600px;
181
+ line-height: 1.6;
182
+ }
183
+
184
+ .ab-comparison-title:last-child {
185
+ margin-bottom: 40px;
186
+ }
187
+
188
+ .ab-comparison-slider {
189
+ position: relative;
190
+ width: 100%;
191
+ aspect-ratio: 16 / 9; /* مقاس مستطيل افتراضي للديسكتوب */
192
+ overflow: hidden;
193
+ user-select: none;
194
+ touch-action: pan-y;
195
+ box-shadow: 0 20px 40px rgba(0,0,0,0.1);
196
+ cursor: default;
197
+ }
198
+
199
+ /* شكل الحاوية */
200
+ .ab-comparison--circle .ab-comparison-slider {
201
+ border-radius: 50%;
202
+ aspect-ratio: 1 / 1; /* دائرة مثالية */
203
+ }
204
+
205
+
206
+ .ab-comp-image {
207
+ position: absolute;
208
+ top: 0;
209
+ left: 0;
210
+ width: 100%;
211
+ height: 100%;
212
+ }
213
+
214
+ .ab-comp-image img {
215
+ width: 100%;
216
+ height: 100%;
217
+ object-fit: cover;
218
+ display: block;
219
+ user-select: none;
220
+ -webkit-user-drag: none;
221
+ pointer-events: none;
222
+ }
223
+
224
+ .ab-comp-image-label {
225
+ position: absolute;
226
+ top: 14px;
227
+ z-index: 2;
228
+ pointer-events: none;
229
+ color: var(--comp-label-color);
230
+ font-size: var(--comp-label-size);
231
+ font-weight: var(--comp-label-weight);
232
+ line-height: 1;
233
+ border: var(--comp-label-border-width) solid var(--comp-label-border-color);
234
+ padding: 6px 12px;
235
+ border-radius: 999px;
236
+ background: transparent;
237
+ }
238
+
239
+ .ab-comp-image-label--left {
240
+ left: 14px;
241
+ }
242
+
243
+ .ab-comp-image-label--right {
244
+ right: 14px;
245
+ }
246
+
247
+ .ab-comp-placeholder {
248
+ width: 100%;
249
+ height: 100%;
250
+ background: #ddd;
251
+ display: flex;
252
+ align-items: center;
253
+ justify-content: center;
254
+ font-size: 14px;
255
+ color: #666;
256
+ }
257
+
258
+ /* تحت: صورة «بعد» كاملة العرض */
259
+ .ab-after-image {
260
+ z-index: 0;
261
+ clip-path: none;
262
+ }
263
+
264
+ /* فوق: صورة «قبل» تُقصّ بالسلايدر */
265
+ .ab-before-image {
266
+ z-index: 1;
267
+ overflow: hidden;
268
+ clip-path: inset(0 50% 0 0);
269
+ }
270
+
271
+ /* حقل النطاق للوصول من لوحة المفاتيح فقط — السحب من المقبض (script.js) */
272
+ .ab-comp-range {
273
+ position: absolute;
274
+ top: 0;
275
+ left: 0;
276
+ width: 100%;
277
+ height: 100%;
278
+ z-index: 10;
279
+ opacity: 0;
280
+ cursor: inherit;
281
+ margin: 0;
282
+ pointer-events: none;
283
+ }
284
+
285
+ /* المقبض — السحب يبدأ هنا فقط (script.js) */
286
+ .ab-comp-handle {
287
+ position: absolute;
288
+ z-index: 8;
289
+ pointer-events: auto;
290
+ cursor: ew-resize;
291
+ touch-action: none;
292
+ display: flex;
293
+ align-items: center;
294
+ justify-content: center;
295
+ }
296
+
297
+ .ab-orientation-horizontal .ab-comp-handle {
298
+ top: 0;
299
+ bottom: 0;
300
+ left: 50%;
301
+ width: 2px;
302
+ background: white;
303
+ transform: translateX(-50%);
304
+ }
305
+
306
+ /* الدايرة اللي في نص المقبض */
307
+ .ab-comp-handle-circle {
308
+ min-width: 44px;
309
+ height: 44px;
310
+ background: white;
311
+ border-radius: 50%;
312
+ display: flex;
313
+ align-items: center;
314
+ justify-content: center;
315
+ box-shadow: 0 4px 10px rgba(0,0,0,0.2);
316
+ color: #333;
317
+ }
318
+
319
+ .ab-comp-handle-circle svg {
320
+ width: 24px;
321
+ height: 24px;
322
+ }
323
+
324
+ /* تعديل مقاس المستطيل للموبايل */
325
+ @media (max-width: 768px) {
326
+ .ab-comparison-slider{
327
+
328
+ aspect-ratio: 5 / 4;
329
+ }
330
+ .ab-comparison--circle .ab-comparison-slider {
331
+ aspect-ratio: 1 / 1;
332
+ }
333
+ }
334
+ </style>
335
+
336
+