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.
- package/README.md +2 -2
- package/dist/bin/cli.js +22 -8
- package/dist/server/index.js +10 -7
- package/dist/template/theme/config.json +19 -3
- package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/config.json +107 -0
- package/dist/template/theme/home-sections/Tilted-Scrolling-Marque/template.liquid +171 -0
- package/dist/template/theme/home-sections/category-mosaic/config.json +89 -4
- package/dist/template/theme/home-sections/category-mosaic/template.liquid +84 -69
- package/dist/template/theme/home-sections/different-hero/config.json +199 -0
- package/dist/template/theme/home-sections/different-hero/template.liquid +219 -0
- package/dist/template/theme/home-sections/editorial-feature/config.json +27 -1
- package/dist/template/theme/home-sections/editorial-feature/template.liquid +11 -10
- package/dist/template/theme/home-sections/newsletter-luxe/config.json +28 -2
- package/dist/template/theme/home-sections/newsletter-luxe/template.liquid +19 -13
- package/dist/template/theme/home-sections/runway-hero/config.json +87 -30
- package/dist/template/theme/home-sections/runway-hero/template.liquid +59 -29
- package/dist/template/theme/home-sections/shop-the-look/config.json +93 -1
- package/dist/template/theme/home-sections/shop-the-look/template.liquid +41 -19
- package/dist/template/theme/home-sections/slider-before-after/config.json +213 -0
- package/dist/template/theme/home-sections/slider-before-after/template.liquid +336 -0
- package/dist/template/theme/home-sections/test-hero-allbird/config.json +130 -0
- package/dist/template/theme/home-sections/test-hero-allbird/template.liquid +149 -0
- package/dist/template/theme/home-sections/trust-promise/config.json +76 -2
- package/dist/template/theme/home-sections/trust-promise/template.liquid +34 -11
- package/dist/template/theme/home-sections/zoom-parallax/config.json +48 -0
- package/dist/template/theme/home-sections/zoom-parallax/template.liquid +135 -0
- package/dist/template/theme/product-data-schema.json +27 -0
- package/dist/template/theme/schema.json +114 -129
- package/dist/template/theme/script.js +694 -185
- package/dist/template/theme/sections/categories.liquid +20 -4
- package/dist/template/theme/sections/featured-products.liquid +65 -32
- package/dist/template/theme/sections/fixed-buy-button.liquid +6 -1
- package/dist/template/theme/sections/footer.liquid +90 -91
- package/dist/template/theme/sections/gallery.liquid +37 -33
- package/dist/template/theme/sections/header.liquid +105 -25
- package/dist/template/theme/sections/home-products-grid.liquid +68 -10
- package/dist/template/theme/sections/list-products.liquid +73 -30
- package/dist/template/theme/sections/order-invoice.liquid +39 -91
- package/dist/template/theme/sections/product-description.liquid +18 -8
- package/dist/template/theme/sections/product-details.liquid +9 -24
- package/dist/template/theme/sections/products-grid.liquid +102 -54
- package/dist/template/theme/sections/related-products.liquid +124 -60
- package/dist/template/theme/sections/reviews.liquid +43 -28
- package/dist/template/theme/style.css +2283 -589
- package/dist/template/theme/theme-data.json +25 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ npm install -g easyorders
|
|
|
21
21
|
### Create a new theme project
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
|
-
easyorders create
|
|
24
|
+
easyorders create my-theme
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
This scaffolds a new directory `my-theme/` containing only the `theme/` folder and a minimal `package.json`. No server code is included — the server runs from the CLI package itself.
|
|
@@ -57,7 +57,7 @@ Create a `.env` file in your theme project root (or export the variables) to cus
|
|
|
57
57
|
|
|
58
58
|
## Theme Project Structure
|
|
59
59
|
|
|
60
|
-
After running `create
|
|
60
|
+
After running `create`, your project will look like:
|
|
61
61
|
|
|
62
62
|
```
|
|
63
63
|
my-theme/
|
package/dist/bin/cli.js
CHANGED
|
@@ -95,7 +95,7 @@ async function startDev() {
|
|
|
95
95
|
const themeDir = path.join(cwd, "theme");
|
|
96
96
|
if (!fs.existsSync(themeDir)) {
|
|
97
97
|
console.error(`\n ${RED}${BOLD}✖ No "theme" folder found in the current directory.${RESET}`);
|
|
98
|
-
console.error(` ${DIM}Run ${CYAN}npx easyorders create
|
|
98
|
+
console.error(` ${DIM}Run ${CYAN}npx easyorders create <name>${DIM} first to create a project.${RESET}\n`);
|
|
99
99
|
process.exit(1);
|
|
100
100
|
}
|
|
101
101
|
// The server files are bundled inside the CLI package
|
|
@@ -139,8 +139,9 @@ function showMenu() {
|
|
|
139
139
|
console.log(` ${CYAN}${BOLD}Easy Orders CLI${RESET}`);
|
|
140
140
|
console.log("");
|
|
141
141
|
console.log(` ${BOLD}Usage:${RESET}`);
|
|
142
|
-
console.log(` ${CYAN}npx easyorders create
|
|
142
|
+
console.log(` ${CYAN}npx easyorders create ${DIM}<name>${RESET} Create a new theme project`);
|
|
143
143
|
console.log(` ${CYAN}npx easyorders start${RESET} Start the dev server`);
|
|
144
|
+
console.log(` ${CYAN}npx easyorders -v${RESET} Show CLI version`);
|
|
144
145
|
console.log("");
|
|
145
146
|
}
|
|
146
147
|
async function interactiveMenu() {
|
|
@@ -165,12 +166,19 @@ async function interactiveMenu() {
|
|
|
165
166
|
process.exit(1);
|
|
166
167
|
}
|
|
167
168
|
}
|
|
168
|
-
// ── Version
|
|
169
|
-
|
|
169
|
+
// ── Version ─────────────────────────────────────────────────
|
|
170
|
+
function getPackageInfo() {
|
|
170
171
|
const pkgPath = path.resolve(__dirname, "..", "..", "package.json");
|
|
171
172
|
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
return { name: pkg.name, version: pkg.version };
|
|
174
|
+
}
|
|
175
|
+
function showVersion() {
|
|
176
|
+
const { version } = getPackageInfo();
|
|
177
|
+
console.log(version);
|
|
178
|
+
}
|
|
179
|
+
// ── Version check ───────────────────────────────────────────
|
|
180
|
+
async function checkForUpdates() {
|
|
181
|
+
const { name: packageName, version: localVersion } = getPackageInfo();
|
|
174
182
|
try {
|
|
175
183
|
const res = await fetch(`https://registry.npmjs.org/${packageName}/latest`);
|
|
176
184
|
if (!res.ok)
|
|
@@ -193,13 +201,18 @@ async function checkForUpdates() {
|
|
|
193
201
|
}
|
|
194
202
|
// ── Entry point ─────────────────────────────────────────────
|
|
195
203
|
(async () => {
|
|
196
|
-
await checkForUpdates();
|
|
197
204
|
const command = process.argv[2];
|
|
198
205
|
switch (command) {
|
|
199
|
-
case "
|
|
206
|
+
case "-v":
|
|
207
|
+
case "--version":
|
|
208
|
+
showVersion();
|
|
209
|
+
break;
|
|
210
|
+
case "create":
|
|
211
|
+
await checkForUpdates();
|
|
200
212
|
await createTheme();
|
|
201
213
|
break;
|
|
202
214
|
case "start":
|
|
215
|
+
await checkForUpdates();
|
|
203
216
|
await startDev();
|
|
204
217
|
break;
|
|
205
218
|
case "--help":
|
|
@@ -207,6 +220,7 @@ async function checkForUpdates() {
|
|
|
207
220
|
showMenu();
|
|
208
221
|
break;
|
|
209
222
|
default:
|
|
223
|
+
await checkForUpdates();
|
|
210
224
|
await interactiveMenu();
|
|
211
225
|
break;
|
|
212
226
|
}
|
package/dist/server/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import express from "express";
|
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import readline from "node:readline";
|
|
7
|
-
import {
|
|
7
|
+
import { execFile } from "node:child_process";
|
|
8
8
|
import { generateCliToken, checkTokenStatus } from "./api.js";
|
|
9
9
|
import { getToken, saveToken } from "./token-store.js";
|
|
10
10
|
const CYAN = "\x1b[36m";
|
|
@@ -116,12 +116,15 @@ function promptStoreName() {
|
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
118
|
function openBrowser(url) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
119
|
+
if (process.platform === "darwin") {
|
|
120
|
+
execFile("open", [url]);
|
|
121
|
+
}
|
|
122
|
+
else if (process.platform === "win32") {
|
|
123
|
+
execFile("cmd", ["/c", "start", "", url], { windowsHide: true });
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
execFile("xdg-open", [url]);
|
|
127
|
+
}
|
|
125
128
|
}
|
|
126
129
|
function waitForApproval(tokenId) {
|
|
127
130
|
return new Promise((resolve, reject) => {
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
"is_use_config": true
|
|
56
56
|
},
|
|
57
57
|
"palette": {
|
|
58
|
-
"hd_bg": "",
|
|
58
|
+
"hd_bg": "#fff",
|
|
59
59
|
"hd_text": "",
|
|
60
|
-
"ann_bg": "",
|
|
60
|
+
"ann_bg": "#212121",
|
|
61
61
|
"ann_text": "",
|
|
62
62
|
"ft_bg": "",
|
|
63
63
|
"ft_text": "",
|
|
@@ -84,8 +84,24 @@
|
|
|
84
84
|
"color_primary": "#1A1A2E",
|
|
85
85
|
"hero_headline": "Welcome to Our Store",
|
|
86
86
|
"font_size_base": 16,
|
|
87
|
+
"main_container_padding_top": 40,
|
|
87
88
|
"hero_show_overlay": true,
|
|
88
|
-
"product_badge_types": ["sale", "new"]
|
|
89
|
+
"product_badge_types": ["sale", "new"],
|
|
90
|
+
"sale_badge_bg_color": "#c94a4a",
|
|
91
|
+
"sale_badge_text_color": "#ffffff",
|
|
92
|
+
"card_background_product": "color",
|
|
93
|
+
"card_background_product_color": "#f5f4f2",
|
|
94
|
+
"footer_newsletter_title": "",
|
|
95
|
+
"footer_newsletter_description": "",
|
|
96
|
+
"footer_newsletter_text_color": "#ffffff",
|
|
97
|
+
"hide_newsletter_mobile": false,
|
|
98
|
+
"pgrid_hero_cta_text_color": "#1f272b",
|
|
99
|
+
"pgrid_hero_cta_font_weight": "600",
|
|
100
|
+
"featured_hero_subtitle_text_color": "#ffffff",
|
|
101
|
+
"featured_hero_cta_background_color": "#ffffff",
|
|
102
|
+
"featured_hero_cta_text_color": "#1f272b",
|
|
103
|
+
"header_category_strip_bg_color": "#e1dbd1",
|
|
104
|
+
"header_category_strip_text_color": "#212a2f"
|
|
89
105
|
},
|
|
90
106
|
"announcement_bar": {
|
|
91
107
|
"text": ["it works", "Free shipping for 1000 EGP", "Genuine Quality"],
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
{
|
|
2
|
+
"icon": "https://files.easy-orders.net/1778107485984969174.png",
|
|
3
|
+
"label": "Scrolling Marquee (Infinite)",
|
|
4
|
+
"section_schema": [
|
|
5
|
+
{
|
|
6
|
+
"name": "bg_color",
|
|
7
|
+
"type": "color",
|
|
8
|
+
"default": "#000000",
|
|
9
|
+
"description": "خلفية الشريط"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "text_color",
|
|
13
|
+
"type": "color",
|
|
14
|
+
"default": "#ffffff",
|
|
15
|
+
"description": "لون النص"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "messages",
|
|
19
|
+
"type": "object_array",
|
|
20
|
+
"fields": [
|
|
21
|
+
{
|
|
22
|
+
"name": "text",
|
|
23
|
+
"type": "string",
|
|
24
|
+
"default": "LIMITED EDITION COLLECTION",
|
|
25
|
+
"description": "الجملة"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"description": "الجمل المكررة"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "text_language",
|
|
32
|
+
"type": "select",
|
|
33
|
+
"default": "auto",
|
|
34
|
+
"description": "لغة المحتوى واتجاه الحركة",
|
|
35
|
+
"options": [
|
|
36
|
+
{ "label": "تلقائي", "value": "auto" },
|
|
37
|
+
{ "label": "عربي (حركة من الشمال لليمين)", "value": "ar" },
|
|
38
|
+
{ "label": "إنجليزي/لاتيني", "value": "en" }
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "tilt_direction",
|
|
43
|
+
"type": "select",
|
|
44
|
+
"default": "straight",
|
|
45
|
+
"description": "ميل الشريط",
|
|
46
|
+
"options": [
|
|
47
|
+
{ "label": "مستقيم", "value": "straight" },
|
|
48
|
+
{ "label": "مائل لليمين (5°)", "value": "right" },
|
|
49
|
+
{ "label": "مائل لليسار (-5°)", "value": "left" }
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "font_weight",
|
|
54
|
+
"type": "select",
|
|
55
|
+
"default": "700",
|
|
56
|
+
"description": "وزن الخط",
|
|
57
|
+
"options": [
|
|
58
|
+
{ "label": "Normal", "value": "400" },
|
|
59
|
+
{ "label": "Medium", "value": "500" },
|
|
60
|
+
{ "label": "Bold", "value": "700" },
|
|
61
|
+
{ "label": "Black", "value": "900" }
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "letter_spacing",
|
|
66
|
+
"type": "number",
|
|
67
|
+
"default": 2,
|
|
68
|
+
"description": "تباعد الحروف (px)"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "desktop_font_size",
|
|
72
|
+
"type": "number",
|
|
73
|
+
"default": 48,
|
|
74
|
+
"description": "حجم الخط - ديسكتوب (px)"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "desktop_line_height",
|
|
78
|
+
"type": "number",
|
|
79
|
+
"default": 68,
|
|
80
|
+
"description": "ارتفاع الشريط - ديسكتوب (px)"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "mobile_font_size",
|
|
84
|
+
"type": "number",
|
|
85
|
+
"default": 24,
|
|
86
|
+
"description": "حجم الخط - موبايل (px)"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "mobile_line_height",
|
|
90
|
+
"type": "number",
|
|
91
|
+
"default": 48,
|
|
92
|
+
"description": "ارتفاع الشريط - موبايل (px)"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "desktop_speed",
|
|
96
|
+
"type": "number",
|
|
97
|
+
"default": 20,
|
|
98
|
+
"description": "مدة الدورة - ديسكتوب (ثواني - أقل أسرع)"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "mobile_speed",
|
|
102
|
+
"type": "number",
|
|
103
|
+
"default": 10,
|
|
104
|
+
"description": "مدة الدورة - موبايل (ثواني)"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
{% assign tilt_val = "0deg" %}
|
|
2
|
+
{% if section_data.tilt_direction == "right" %}
|
|
3
|
+
{% assign tilt_val = "5deg" %}
|
|
4
|
+
{% elsif section_data.tilt_direction == "left" %}
|
|
5
|
+
{% assign tilt_val = "-5deg" %}
|
|
6
|
+
{% endif %}
|
|
7
|
+
{% assign first_msg = section_data.messages | first %}
|
|
8
|
+
{% assign first_msg_text = "" %}
|
|
9
|
+
{% if first_msg and first_msg.text %}
|
|
10
|
+
{% assign first_msg_text = first_msg.text %}
|
|
11
|
+
{% endif %}
|
|
12
|
+
{% assign marquee_is_arabic = false %}
|
|
13
|
+
{% if section_data.text_language == "ar" %}
|
|
14
|
+
{% assign marquee_is_arabic = true %}
|
|
15
|
+
{% elsif section_data.text_language == "auto" %}
|
|
16
|
+
{% if lang == "ar" or first_msg_text contains "ا" or first_msg_text contains "ب" or first_msg_text contains "ت" or first_msg_text contains "ث" or first_msg_text contains "ج" or first_msg_text contains "ح" or first_msg_text contains "خ" %}
|
|
17
|
+
{% assign marquee_is_arabic = true %}
|
|
18
|
+
{% endif %}
|
|
19
|
+
{% endif %}
|
|
20
|
+
{% assign marquee_repeat_count = 4 %}
|
|
21
|
+
{% if section_data.messages.size <= 1 %}
|
|
22
|
+
{% assign marquee_repeat_count = 8 %}
|
|
23
|
+
{% elsif section_data.messages.size == 2 %}
|
|
24
|
+
{% assign marquee_repeat_count = 6 %}
|
|
25
|
+
{% endif %}
|
|
26
|
+
|
|
27
|
+
<section
|
|
28
|
+
class="ab-marquee-section{% if marquee_is_arabic %} ab-marquee--arabic{% endif %}"
|
|
29
|
+
style="
|
|
30
|
+
--mq-bg: {{ section_data.bg_color | default: '#000' }};
|
|
31
|
+
--mq-color: {{ section_data.text_color | default: '#fff' }};
|
|
32
|
+
--mq-font-size-dt: {{ section_data.desktop_font_size | default: 48 }}px;
|
|
33
|
+
--mq-font-size-mb: {{ section_data.mobile_font_size | default: 24 }}px;
|
|
34
|
+
--mq-lh-dt: {{ section_data.desktop_line_height | default: 68 }}px;
|
|
35
|
+
--mq-lh-mb: {{ section_data.mobile_line_height | default: 48 }}px;
|
|
36
|
+
--mq-weight: {{ section_data.font_weight | default: '700' }};
|
|
37
|
+
--mq-letter-spacing: {{ section_data.letter_spacing | default: 2 }}px;
|
|
38
|
+
--mq-speed-dt: {{ section_data.desktop_speed | default: 20 }}s;
|
|
39
|
+
--mq-speed-mb: {{ section_data.mobile_speed | default: 10 }}s;
|
|
40
|
+
--mq-tilt: {{ tilt_val }};
|
|
41
|
+
"
|
|
42
|
+
>
|
|
43
|
+
<div class="ab-marquee-clip">
|
|
44
|
+
<div class="ab-marquee-band">
|
|
45
|
+
<div class="ab-marquee-wrapper">
|
|
46
|
+
<div class="ab-marquee-track">
|
|
47
|
+
<div class="ab-marquee-content">
|
|
48
|
+
{% for repeat_index in (1..marquee_repeat_count) %}
|
|
49
|
+
{% for item in section_data.messages %}
|
|
50
|
+
<span class="ab-marquee-item">{{ item.text }}</span>
|
|
51
|
+
{% endfor %}
|
|
52
|
+
{% endfor %}
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div class="ab-marquee-content" aria-hidden="true">
|
|
56
|
+
{% for repeat_index in (1..marquee_repeat_count) %}
|
|
57
|
+
{% for item in section_data.messages %}
|
|
58
|
+
<span class="ab-marquee-item">{{ item.text }}</span>
|
|
59
|
+
{% endfor %}
|
|
60
|
+
{% endfor %}
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
</section>
|
|
67
|
+
|
|
68
|
+
<style>
|
|
69
|
+
.ab-marquee-section {
|
|
70
|
+
margin: 20px 0;
|
|
71
|
+
overflow-x: clip;
|
|
72
|
+
overflow-y: visible;
|
|
73
|
+
position: relative;
|
|
74
|
+
margin-left: -10px;
|
|
75
|
+
margin-right: -10px;
|
|
76
|
+
background-color: transparent;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.ab-marquee-clip {
|
|
80
|
+
width: 100%;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.ab-marquee-band {
|
|
84
|
+
transform: rotate(var(--mq-tilt));
|
|
85
|
+
transform-origin: center;
|
|
86
|
+
width: calc(100% + 160px);
|
|
87
|
+
margin-left: -80px;
|
|
88
|
+
background-color: transparent; /* خلفية الباند شفافة */
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ab-marquee-wrapper {
|
|
92
|
+
display: flex;
|
|
93
|
+
align-items: center;
|
|
94
|
+
background-color: transparent;
|
|
95
|
+
direction: ltr;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.ab-marquee-track {
|
|
99
|
+
display: flex;
|
|
100
|
+
width: max-content;
|
|
101
|
+
animation: marquee-scroll var(--mq-speed-dt) linear infinite;
|
|
102
|
+
will-change: transform;
|
|
103
|
+
background-color: var(--mq-bg); /* لون الخلفية اتنقل هنا زي ما طلبت */
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.ab-marquee-content {
|
|
107
|
+
display: flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
flex-shrink: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.ab-marquee-item {
|
|
113
|
+
color: var(--mq-color);
|
|
114
|
+
font-size: var(--mq-font-size-dt);
|
|
115
|
+
font-weight: var(--mq-weight);
|
|
116
|
+
letter-spacing: var(--mq-letter-spacing); /* تحكم تباعد الحروف */
|
|
117
|
+
line-height: var(--mq-lh-dt); /* التحكم في الارتفاع للديسكتوب */
|
|
118
|
+
white-space: nowrap;
|
|
119
|
+
padding: 0 40px;
|
|
120
|
+
text-transform: uppercase;
|
|
121
|
+
display: inline-flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.ab-marquee-item::after {
|
|
126
|
+
content: "•";
|
|
127
|
+
margin-inline-start: 80px;
|
|
128
|
+
opacity: 0.3;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.ab-marquee--arabic .ab-marquee-track {
|
|
132
|
+
animation-name: marquee-scroll-ar;
|
|
133
|
+
}
|
|
134
|
+
.ab-marquee--arabic .ab-marquee-item {
|
|
135
|
+
text-transform: none;
|
|
136
|
+
letter-spacing: 0;
|
|
137
|
+
direction: rtl;
|
|
138
|
+
unicode-bidi: plaintext;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@keyframes marquee-scroll {
|
|
142
|
+
from { transform: translateX(0); }
|
|
143
|
+
to { transform: translateX(-50%); }
|
|
144
|
+
}
|
|
145
|
+
@keyframes marquee-scroll-ar {
|
|
146
|
+
from { transform: translateX(-50%); }
|
|
147
|
+
to { transform: translateX(0); }
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* ريسبونسيف الموبايل */
|
|
151
|
+
@media (max-width: 768px) {
|
|
152
|
+
.ab-marquee-track {
|
|
153
|
+
animation-duration: var(--mq-speed-mb);
|
|
154
|
+
}
|
|
155
|
+
.ab-marquee-item {
|
|
156
|
+
font-size: var(--mq-font-size-mb);
|
|
157
|
+
line-height: var(--mq-lh-mb); /* التحكم في الارتفاع للموبايل */
|
|
158
|
+
padding: 0 20px;
|
|
159
|
+
}
|
|
160
|
+
.ab-marquee-item::after {
|
|
161
|
+
margin-inline-start: 40px;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
{% if section_data.tilt_direction != 'straight' %}
|
|
167
|
+
.ab-marquee-section {
|
|
168
|
+
margin-block: 72px;
|
|
169
|
+
}
|
|
170
|
+
{% endif %}
|
|
171
|
+
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"icon": "https://
|
|
2
|
+
"icon": "https://files.easy-orders.net/1778107568557501919.png",
|
|
3
3
|
"label": "Category mosaic",
|
|
4
4
|
"section_schema": [
|
|
5
5
|
{
|
|
@@ -14,6 +14,66 @@
|
|
|
14
14
|
"default": "Curated drops for work, weekend, and everything between.",
|
|
15
15
|
"description": "Subheading under the title"
|
|
16
16
|
},
|
|
17
|
+
{
|
|
18
|
+
"name": "heading_title_color",
|
|
19
|
+
"type": "color",
|
|
20
|
+
"default": "",
|
|
21
|
+
"group": "controls_title",
|
|
22
|
+
"description": "Heading title color (leave empty for default)"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "heading_title_size",
|
|
26
|
+
"type": "number",
|
|
27
|
+
"group": "controls_title",
|
|
28
|
+
"default": 38,
|
|
29
|
+
"description": "Heading title size (px)"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "heading_title_weight",
|
|
33
|
+
"type": "select",
|
|
34
|
+
"default": "500",
|
|
35
|
+
"group": "controls_title",
|
|
36
|
+
"description": "Heading title font weight",
|
|
37
|
+
"options": [
|
|
38
|
+
{ "label": "Regular 400", "value": "400" },
|
|
39
|
+
{ "label": "Medium 500", "value": "500" },
|
|
40
|
+
{ "label": "SemiBold 600", "value": "600" },
|
|
41
|
+
{ "label": "Bold 700", "value": "700" }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "heading_subtitle_color",
|
|
46
|
+
"type": "color",
|
|
47
|
+
"default": "",
|
|
48
|
+
"group": "controls_subtitle",
|
|
49
|
+
"description": "Subtitle color (leave empty for default)"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "heading_subtitle_size",
|
|
53
|
+
"type": "number",
|
|
54
|
+
"group": "controls_subtitle",
|
|
55
|
+
"default": 16,
|
|
56
|
+
"description": "Subtitle size (px)"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "heading_subtitle_weight",
|
|
60
|
+
"type": "select",
|
|
61
|
+
"default": "400",
|
|
62
|
+
"group": "controls_subtitle",
|
|
63
|
+
"description": "Subtitle font weight",
|
|
64
|
+
"options": [
|
|
65
|
+
{ "label": "Regular 400", "value": "400" },
|
|
66
|
+
{ "label": "Medium 500", "value": "500" },
|
|
67
|
+
{ "label": "SemiBold 600", "value": "600" },
|
|
68
|
+
{ "label": "Bold 700", "value": "700" }
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "section_background",
|
|
73
|
+
"type": "color",
|
|
74
|
+
"default": "",
|
|
75
|
+
"description": "Section background color (leave empty for default white)"
|
|
76
|
+
},
|
|
17
77
|
{
|
|
18
78
|
"name": "columns",
|
|
19
79
|
"type": "select",
|
|
@@ -32,9 +92,34 @@
|
|
|
32
92
|
"description": "Use tighter spacing between tiles"
|
|
33
93
|
},
|
|
34
94
|
{
|
|
35
|
-
"name": "
|
|
36
|
-
"type": "
|
|
37
|
-
"description": "
|
|
95
|
+
"name": "tiles",
|
|
96
|
+
"type": "object_array",
|
|
97
|
+
"description": "Category or collection tiles",
|
|
98
|
+
"fields": [
|
|
99
|
+
{
|
|
100
|
+
"name": "image",
|
|
101
|
+
"type": "image",
|
|
102
|
+
"default": "",
|
|
103
|
+
"description": "صورة القسم"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"name": "label",
|
|
107
|
+
"type": "string",
|
|
108
|
+
"default": "Dresses",
|
|
109
|
+
"description": "اسم القسم على الصورة"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"name": "tagline",
|
|
113
|
+
"type": "string",
|
|
114
|
+
"default": "Fluid lines",
|
|
115
|
+
"description": "وصف قصير تحت الاسم"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"name": "category_id",
|
|
119
|
+
"type": "category_single_select",
|
|
120
|
+
"description": "اختيار القسم (اللينك يتجاب أوتوماتيك)"
|
|
121
|
+
}
|
|
122
|
+
]
|
|
38
123
|
}
|
|
39
124
|
]
|
|
40
125
|
}
|