mehdi-akbari-map 1.0.8 → 1.2.0
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/dist/components/InteractiveMap.d.ts.map +1 -1
- package/dist/components/StoreCard.d.ts +1 -0
- package/dist/components/StoreCard.d.ts.map +1 -1
- package/dist/index.cjs +59 -48
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +154 -128
- package/dist/index.css.map +1 -1
- package/dist/index.js +59 -48
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +59 -48
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +59 -48
- package/dist/react.js.map +1 -1
- package/dist/styles.css +152 -145
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -24,164 +24,172 @@
|
|
|
24
24
|
font-size: 18px;
|
|
25
25
|
color: #111827;
|
|
26
26
|
border-bottom: 1px solid #f3f4f6;
|
|
27
|
-
background: #fafafa;
|
|
28
27
|
}
|
|
29
28
|
.sidebar-list {
|
|
30
29
|
flex: 1;
|
|
31
30
|
overflow-y: auto;
|
|
32
|
-
scrollbar-width: thin;
|
|
33
|
-
}
|
|
34
|
-
.map-container {
|
|
35
|
-
flex: 1;
|
|
36
|
-
position: relative;
|
|
37
|
-
background: #f3f4f6;
|
|
38
31
|
}
|
|
39
32
|
.store-card {
|
|
40
33
|
padding: 16px;
|
|
41
34
|
border-bottom: 1px solid #f3f4f6;
|
|
42
35
|
cursor: pointer;
|
|
43
|
-
transition:
|
|
44
|
-
border-right: 4px solid transparent;
|
|
36
|
+
transition: background 0.2s ease;
|
|
45
37
|
background: #ffffff;
|
|
46
38
|
}
|
|
47
|
-
.store-card:hover {
|
|
48
|
-
background: #f9fafb;
|
|
49
|
-
}
|
|
50
39
|
.store-card.active {
|
|
51
|
-
background: #
|
|
52
|
-
border-right-color: #2563eb;
|
|
40
|
+
background: #f8fafc;
|
|
53
41
|
}
|
|
54
42
|
.store-card-header {
|
|
55
43
|
display: flex;
|
|
56
44
|
justify-content: space-between;
|
|
57
45
|
align-items: flex-start;
|
|
58
|
-
margin-bottom:
|
|
46
|
+
margin-bottom: 12px;
|
|
59
47
|
}
|
|
60
48
|
.store-name {
|
|
61
49
|
margin: 0;
|
|
62
|
-
font-size:
|
|
63
|
-
font-weight:
|
|
50
|
+
font-size: 15px;
|
|
51
|
+
font-weight: 800;
|
|
64
52
|
color: #111827;
|
|
65
53
|
}
|
|
54
|
+
.store-location-tag {
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 4px;
|
|
58
|
+
color: #6b7280;
|
|
59
|
+
margin-top: 4px;
|
|
60
|
+
}
|
|
66
61
|
.store-city {
|
|
67
|
-
display: block;
|
|
68
62
|
font-size: 12px;
|
|
63
|
+
font-weight: 600;
|
|
64
|
+
}
|
|
65
|
+
.report-btn {
|
|
66
|
+
display: flex;
|
|
67
|
+
align-items: center;
|
|
68
|
+
gap: 4px;
|
|
69
|
+
background: #f3f4f6;
|
|
70
|
+
border: none;
|
|
71
|
+
padding: 4px 10px;
|
|
72
|
+
border-radius: 8px;
|
|
69
73
|
color: #6b7280;
|
|
70
|
-
|
|
74
|
+
font-size: 11px;
|
|
75
|
+
font-weight: 700;
|
|
76
|
+
cursor: pointer;
|
|
71
77
|
}
|
|
72
|
-
.store-
|
|
73
|
-
|
|
74
|
-
font-weight:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
.store-performance {
|
|
79
|
+
font-size: 12px;
|
|
80
|
+
font-weight: 700;
|
|
81
|
+
margin-bottom: 10px;
|
|
82
|
+
}
|
|
83
|
+
.perf-value {
|
|
84
|
+
color: #10b981;
|
|
85
|
+
}
|
|
86
|
+
.store-desc-section {
|
|
87
|
+
display: flex;
|
|
88
|
+
align-items: flex-start;
|
|
89
|
+
gap: 10px;
|
|
90
|
+
margin-bottom: 16px;
|
|
91
|
+
}
|
|
92
|
+
.store-mini-logo {
|
|
93
|
+
width: 40px;
|
|
94
|
+
height: 40px;
|
|
95
|
+
border-radius: 8px;
|
|
96
|
+
object-fit: cover;
|
|
97
|
+
border: 1px solid #e5e7eb;
|
|
79
98
|
}
|
|
80
99
|
.store-desc {
|
|
81
|
-
|
|
100
|
+
flex: 1;
|
|
101
|
+
font-size: 12px;
|
|
82
102
|
color: #4b5563;
|
|
83
103
|
line-height: 1.6;
|
|
84
|
-
margin:
|
|
104
|
+
margin: 0;
|
|
85
105
|
display: -webkit-box;
|
|
86
106
|
-webkit-line-clamp: 2;
|
|
87
107
|
-webkit-box-orient: vertical;
|
|
88
108
|
overflow: hidden;
|
|
89
109
|
}
|
|
90
|
-
.store-
|
|
91
|
-
display: grid;
|
|
92
|
-
grid-template-rows: 0fr;
|
|
93
|
-
transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
94
|
-
overflow: hidden;
|
|
95
|
-
}
|
|
96
|
-
.active .store-details-wrapper {
|
|
97
|
-
grid-template-rows: 1fr;
|
|
98
|
-
margin-top: 14px;
|
|
99
|
-
}
|
|
100
|
-
.store-details-content {
|
|
101
|
-
min-height: 0;
|
|
102
|
-
}
|
|
103
|
-
.action-buttons {
|
|
110
|
+
.store-card-footer {
|
|
104
111
|
display: flex;
|
|
105
|
-
|
|
106
|
-
|
|
112
|
+
justify-content: space-between;
|
|
113
|
+
align-items: center;
|
|
114
|
+
border-top: 1px dashed #e5e7eb;
|
|
115
|
+
padding-top: 12px;
|
|
107
116
|
}
|
|
108
|
-
.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
text-align: center;
|
|
113
|
-
text-decoration: none;
|
|
114
|
-
font-size: 13px;
|
|
115
|
-
font-weight: 700;
|
|
116
|
-
color: #fff;
|
|
117
|
-
transition: transform 0.1s, opacity 0.2s;
|
|
117
|
+
.price-container {
|
|
118
|
+
display: flex;
|
|
119
|
+
align-items: baseline;
|
|
120
|
+
gap: 4px;
|
|
118
121
|
}
|
|
119
|
-
.
|
|
120
|
-
|
|
122
|
+
.price-value {
|
|
123
|
+
font-size: 16px;
|
|
124
|
+
font-weight: 900;
|
|
125
|
+
color: #111827;
|
|
121
126
|
}
|
|
122
|
-
.
|
|
123
|
-
|
|
127
|
+
.price-unit {
|
|
128
|
+
font-size: 11px;
|
|
129
|
+
color: #6b7280;
|
|
130
|
+
font-weight: 600;
|
|
124
131
|
}
|
|
125
|
-
.
|
|
126
|
-
|
|
132
|
+
.contact-trigger {
|
|
133
|
+
display: flex;
|
|
134
|
+
align-items: center;
|
|
135
|
+
gap: 6px;
|
|
136
|
+
color: #1d4ed8;
|
|
137
|
+
font-size: 13px;
|
|
138
|
+
font-weight: 800;
|
|
127
139
|
}
|
|
128
|
-
.
|
|
129
|
-
|
|
140
|
+
.arrow-icon {
|
|
141
|
+
transition: transform 0.3s ease;
|
|
142
|
+
transform: rotate(180deg);
|
|
130
143
|
}
|
|
131
|
-
.
|
|
132
|
-
|
|
144
|
+
.arrow-icon.open {
|
|
145
|
+
transform: rotate(0deg);
|
|
133
146
|
}
|
|
134
|
-
.
|
|
147
|
+
.action-buttons.vertical {
|
|
135
148
|
display: flex;
|
|
136
149
|
flex-direction: column;
|
|
137
|
-
|
|
138
|
-
|
|
150
|
+
gap: 10px;
|
|
151
|
+
margin-top: 15px;
|
|
139
152
|
}
|
|
140
|
-
.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
padding: 4px 12px;
|
|
146
|
-
border-radius: 20px;
|
|
147
|
-
margin-top: 6px;
|
|
148
|
-
box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4);
|
|
149
|
-
border: 2px solid #ffffff;
|
|
150
|
-
white-space: nowrap;
|
|
151
|
-
pointer-events: none;
|
|
153
|
+
.btn.full-width {
|
|
154
|
+
width: 100%;
|
|
155
|
+
padding: 12px;
|
|
156
|
+
border-radius: 12px;
|
|
157
|
+
text-decoration: none;
|
|
152
158
|
}
|
|
153
|
-
.
|
|
159
|
+
.btn-content {
|
|
154
160
|
display: flex;
|
|
155
161
|
align-items: center;
|
|
156
|
-
justify-content:
|
|
157
|
-
|
|
158
|
-
border: 3px solid #2563eb;
|
|
159
|
-
border-radius: 50%;
|
|
160
|
-
width: 42px;
|
|
161
|
-
height: 42px;
|
|
162
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);
|
|
163
|
-
cursor: pointer;
|
|
164
|
-
transition: none;
|
|
162
|
+
justify-content: space-between;
|
|
163
|
+
padding: 0 10px;
|
|
165
164
|
}
|
|
166
|
-
.
|
|
167
|
-
|
|
165
|
+
.map-container {
|
|
166
|
+
flex: 1;
|
|
167
|
+
position: relative;
|
|
168
|
+
background: #f3f4f6;
|
|
168
169
|
}
|
|
169
|
-
.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
170
|
+
.store-details-wrapper {
|
|
171
|
+
display: grid;
|
|
172
|
+
grid-template-rows: 0fr;
|
|
173
|
+
transition: grid-template-rows 0.3s ease;
|
|
174
|
+
overflow: hidden;
|
|
173
175
|
}
|
|
174
|
-
.
|
|
175
|
-
|
|
176
|
-
z-index: 100;
|
|
176
|
+
.active .store-details-wrapper {
|
|
177
|
+
grid-template-rows: 1fr;
|
|
177
178
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
179
|
+
.store-details-content {
|
|
180
|
+
min-height: 0;
|
|
181
|
+
}
|
|
182
|
+
.btn-call {
|
|
183
|
+
background: #1d4ed8;
|
|
184
|
+
color: white;
|
|
185
|
+
}
|
|
186
|
+
.btn-wa {
|
|
187
|
+
background: #10b981;
|
|
188
|
+
color: white;
|
|
189
|
+
}
|
|
190
|
+
.btn-route {
|
|
191
|
+
background: #7c3aed;
|
|
192
|
+
color: white;
|
|
185
193
|
}
|
|
186
194
|
.is-mobile .mobile-slider {
|
|
187
195
|
position: absolute;
|
|
@@ -193,39 +201,57 @@
|
|
|
193
201
|
padding: 20px 20px 40px 20px;
|
|
194
202
|
overflow-x: auto;
|
|
195
203
|
scroll-snap-type: x mandatory;
|
|
196
|
-
pointer-events: none;
|
|
197
204
|
z-index: 20;
|
|
198
205
|
align-items: flex-end;
|
|
199
|
-
scrollbar-width: none;
|
|
200
|
-
}
|
|
201
|
-
.is-mobile .mobile-slider::-webkit-scrollbar {
|
|
202
|
-
display: none;
|
|
203
206
|
}
|
|
204
207
|
.is-mobile .store-card {
|
|
205
|
-
min-width:
|
|
206
|
-
max-width:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
|
|
210
|
-
pointer-events: auto;
|
|
208
|
+
min-width: 300px;
|
|
209
|
+
max-width: 85vw;
|
|
210
|
+
border-radius: 20px;
|
|
211
|
+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
|
|
211
212
|
scroll-snap-align: center;
|
|
212
213
|
border: none;
|
|
213
|
-
flex-shrink: 0;
|
|
214
|
-
max-height: 70vh;
|
|
215
|
-
overflow-y: auto;
|
|
216
214
|
}
|
|
217
215
|
.product-badge {
|
|
218
216
|
position: absolute;
|
|
219
|
-
|
|
220
|
-
right:
|
|
217
|
+
bottom: 20px;
|
|
218
|
+
right: 20px;
|
|
221
219
|
background: rgba(255, 255, 255, 0.95);
|
|
222
|
-
backdrop-filter: blur(
|
|
223
|
-
padding:
|
|
224
|
-
border-radius:
|
|
225
|
-
box-shadow: 0
|
|
220
|
+
backdrop-filter: blur(8px);
|
|
221
|
+
padding: 10px 16px;
|
|
222
|
+
border-radius: 14px;
|
|
223
|
+
box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
|
|
224
|
+
display: flex;
|
|
225
|
+
align-items: center;
|
|
226
|
+
gap: 12px;
|
|
227
|
+
z-index: 30;
|
|
228
|
+
border: 1px solid rgba(0, 0, 0, 0.05);
|
|
229
|
+
transition: all 0.3s ease;
|
|
230
|
+
}
|
|
231
|
+
.product-badge-logo {
|
|
232
|
+
width: 35px;
|
|
233
|
+
height: 35px;
|
|
234
|
+
object-fit: contain;
|
|
235
|
+
background: #f3f4f6;
|
|
236
|
+
border-radius: 8px;
|
|
237
|
+
padding: 4px;
|
|
238
|
+
}
|
|
239
|
+
.product-badge-text {
|
|
226
240
|
font-weight: 800;
|
|
227
|
-
font-size:
|
|
228
|
-
color: #
|
|
229
|
-
|
|
241
|
+
font-size: 14px;
|
|
242
|
+
color: #111827;
|
|
243
|
+
white-space: nowrap;
|
|
244
|
+
}
|
|
245
|
+
.is-mobile .product-badge {
|
|
246
|
+
bottom: 180px;
|
|
247
|
+
right: 15px;
|
|
248
|
+
padding: 8px 12px;
|
|
249
|
+
}
|
|
250
|
+
.is-mobile .product-badge-logo {
|
|
251
|
+
width: 28px;
|
|
252
|
+
height: 28px;
|
|
253
|
+
}
|
|
254
|
+
.is-mobile .product-badge-text {
|
|
255
|
+
font-size: 12px;
|
|
230
256
|
}
|
|
231
257
|
/*# sourceMappingURL=index.css.map */
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/styles.css"],"sourcesContent":["@import \"@neshan-maps-platform/mapbox-gl/dist/NeshanMapboxGl.css\";\r\n\r\n.map-layout-root {\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n direction: rtl;\r\n font-family: inherit;\r\n overflow: hidden;\r\n}\r\n\r\n
|
|
1
|
+
{"version":3,"sources":["../src/styles.css"],"sourcesContent":["@import \"@neshan-maps-platform/mapbox-gl/dist/NeshanMapboxGl.css\";\r\n\r\n.map-layout-root {\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n direction: rtl;\r\n font-family: inherit;\r\n overflow: hidden;\r\n}\r\n\r\n\r\n.sidebar {\r\n width: 350px;\r\n background: #ffffff;\r\n border-left: 1px solid #e5e7eb;\r\n display: flex;\r\n flex-direction: column;\r\n z-index: 10;\r\n box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.sidebar-header {\r\n padding: 20px;\r\n font-weight: 800;\r\n font-size: 18px;\r\n color: #111827;\r\n border-bottom: 1px solid #f3f4f6;\r\n}\r\n\r\n.sidebar-list {\r\n flex: 1;\r\n overflow-y: auto;\r\n}\r\n\r\n\r\n.store-card {\r\n padding: 16px;\r\n border-bottom: 1px solid #f3f4f6;\r\n cursor: pointer;\r\n transition: background 0.2s ease;\r\n background: #ffffff;\r\n}\r\n\r\n.store-card.active {\r\n background: #f8fafc;\r\n}\r\n\r\n.store-card-header {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: flex-start;\r\n margin-bottom: 12px;\r\n}\r\n\r\n.store-name {\r\n margin: 0;\r\n font-size: 15px;\r\n font-weight: 800;\r\n color: #111827;\r\n}\r\n\r\n.store-location-tag {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n color: #6b7280;\r\n margin-top: 4px;\r\n}\r\n\r\n.store-city {\r\n font-size: 12px;\r\n font-weight: 600;\r\n}\r\n\r\n.report-btn {\r\n display: flex;\r\n align-items: center;\r\n gap: 4px;\r\n background: #f3f4f6;\r\n border: none;\r\n padding: 4px 10px;\r\n border-radius: 8px;\r\n color: #6b7280;\r\n font-size: 11px;\r\n font-weight: 700;\r\n cursor: pointer;\r\n}\r\n\r\n.store-performance {\r\n font-size: 12px;\r\n font-weight: 700;\r\n margin-bottom: 10px;\r\n}\r\n\r\n.perf-value {\r\n color: #10b981;\r\n}\r\n\r\n\r\n.store-desc-section {\r\n display: flex;\r\n align-items: flex-start;\r\n gap: 10px;\r\n margin-bottom: 16px;\r\n}\r\n\r\n.store-mini-logo {\r\n width: 40px;\r\n height: 40px;\r\n border-radius: 8px;\r\n object-fit: cover;\r\n border: 1px solid #e5e7eb;\r\n}\r\n\r\n.store-desc {\r\n flex: 1;\r\n font-size: 12px;\r\n color: #4b5563;\r\n line-height: 1.6;\r\n margin: 0;\r\n display: -webkit-box;\r\n -webkit-line-clamp: 2;\r\n -webkit-box-orient: vertical;\r\n overflow: hidden;\r\n}\r\n\r\n\r\n.store-card-footer {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n border-top: 1px dashed #e5e7eb;\r\n padding-top: 12px;\r\n}\r\n\r\n.price-container {\r\n display: flex;\r\n align-items: baseline;\r\n gap: 4px;\r\n}\r\n\r\n.price-value {\r\n font-size: 16px;\r\n font-weight: 900;\r\n color: #111827;\r\n}\r\n\r\n.price-unit {\r\n font-size: 11px;\r\n color: #6b7280;\r\n font-weight: 600;\r\n}\r\n\r\n.contact-trigger {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n color: #1d4ed8;\r\n font-size: 13px;\r\n font-weight: 800;\r\n}\r\n\r\n.arrow-icon {\r\n transition: transform 0.3s ease;\r\n transform: rotate(180deg);\r\n}\r\n\r\n.arrow-icon.open {\r\n transform: rotate(0deg);\r\n}\r\n\r\n\r\n.action-buttons.vertical {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 10px;\r\n margin-top: 15px;\r\n}\r\n\r\n.btn.full-width {\r\n width: 100%;\r\n padding: 12px;\r\n border-radius: 12px;\r\n text-decoration: none;\r\n}\r\n\r\n.btn-content {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 0 10px;\r\n}\r\n\r\n\r\n.map-container { flex: 1; position: relative; background: #f3f4f6; }\r\n.store-details-wrapper { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.3s ease; overflow: hidden; }\r\n.active .store-details-wrapper { grid-template-rows: 1fr; }\r\n.store-details-content { min-height: 0; }\r\n.btn-call { background: #1d4ed8; color: white; }\r\n.btn-wa { background: #10b981; color: white; }\r\n.btn-route { background: #7c3aed; color: white; }\r\n\r\n.is-mobile .mobile-slider {\r\n position: absolute; bottom: 0; left: 0; right: 0;\r\n display: flex; gap: 12px; padding: 20px 20px 40px 20px;\r\n overflow-x: auto; scroll-snap-type: x mandatory;\r\n z-index: 20; align-items: flex-end;\r\n}\r\n.is-mobile .store-card {\r\n min-width: 300px; max-width: 85vw;\r\n border-radius: 20px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);\r\n scroll-snap-align: center; border: none;\r\n}\r\n.product-badge {\r\n position: absolute;\r\n bottom: 20px;\r\n right: 20px;\r\n background: rgba(255, 255, 255, 0.95);\r\n backdrop-filter: blur(8px);\r\n padding: 10px 16px;\r\n border-radius: 14px;\r\n box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n z-index: 30;\r\n border: 1px solid rgba(0, 0, 0, 0.05);\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.product-badge-logo {\r\n width: 35px;\r\n height: 35px;\r\n object-fit: contain;\r\n background: #f3f4f6;\r\n border-radius: 8px;\r\n padding: 4px;\r\n}\r\n\r\n.product-badge-text {\r\n font-weight: 800;\r\n font-size: 14px;\r\n color: #111827;\r\n white-space: nowrap;\r\n}\r\n\r\n\r\n.is-mobile .product-badge {\r\n bottom: 180px;\r\n right: 15px;\r\n padding: 8px 12px;\r\n}\r\n\r\n.is-mobile .product-badge-logo {\r\n width: 28px;\r\n height: 28px;\r\n}\r\n\r\n.is-mobile .product-badge-text {\r\n font-size: 12px;\r\n}"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -203,7 +203,7 @@ var Map_default = Map;
|
|
|
203
203
|
|
|
204
204
|
// src/components/StoreCard.tsx
|
|
205
205
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
206
|
-
var StoreCard = ({ store, isSelected, onSelect }) => {
|
|
206
|
+
var StoreCard = ({ store, isSelected, onSelect, shopLogoUrl }) => {
|
|
207
207
|
const googleMapUrl = `https://www.google.com/maps/dir/?api=1&destination=${store.lat},${store.lng}`;
|
|
208
208
|
const handleActionClick = (e) => {
|
|
209
209
|
e.stopPropagation();
|
|
@@ -216,48 +216,58 @@ var StoreCard = ({ store, isSelected, onSelect }) => {
|
|
|
216
216
|
"data-id": store.id,
|
|
217
217
|
children: [
|
|
218
218
|
/* @__PURE__ */ jsxs("div", { className: "store-card-header", children: [
|
|
219
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
219
|
+
/* @__PURE__ */ jsxs("div", { className: "store-info-main", children: [
|
|
220
220
|
/* @__PURE__ */ jsx2("h4", { className: "store-name", children: store.name }),
|
|
221
|
-
/* @__PURE__ */
|
|
221
|
+
/* @__PURE__ */ jsxs("div", { className: "store-location-tag", children: [
|
|
222
|
+
/* @__PURE__ */ jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
223
|
+
/* @__PURE__ */ jsx2("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
|
|
224
|
+
/* @__PURE__ */ jsx2("circle", { cx: "12", cy: "10", r: "3" })
|
|
225
|
+
] }),
|
|
226
|
+
/* @__PURE__ */ jsx2("span", { className: "store-city", children: store.city })
|
|
227
|
+
] })
|
|
222
228
|
] }),
|
|
223
|
-
/* @__PURE__ */ jsxs("
|
|
224
|
-
|
|
225
|
-
|
|
229
|
+
/* @__PURE__ */ jsxs("button", { className: "report-btn", onClick: handleActionClick, children: [
|
|
230
|
+
/* @__PURE__ */ jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "#6b7280", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
231
|
+
/* @__PURE__ */ jsx2("path", { d: "M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z" }),
|
|
232
|
+
/* @__PURE__ */ jsx2("line", { x1: "4", y1: "22", x2: "4", y2: "15" })
|
|
233
|
+
] }),
|
|
234
|
+
/* @__PURE__ */ jsx2("span", { children: "\u06AF\u0632\u0627\u0631\u0634" })
|
|
226
235
|
] })
|
|
227
236
|
] }),
|
|
228
|
-
/* @__PURE__ */
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
}
|
|
260
|
-
|
|
237
|
+
store.performance && /* @__PURE__ */ jsxs("div", { className: "store-performance", children: [
|
|
238
|
+
"\u0639\u0645\u0644\u06A9\u0631\u062F ",
|
|
239
|
+
/* @__PURE__ */ jsx2("span", { className: "perf-value", children: store.performance })
|
|
240
|
+
] }),
|
|
241
|
+
/* @__PURE__ */ jsxs("div", { className: "store-desc-section", children: [
|
|
242
|
+
shopLogoUrl && /* @__PURE__ */ jsx2("img", { src: shopLogoUrl, alt: "shop logo", className: "store-mini-logo" }),
|
|
243
|
+
/* @__PURE__ */ jsx2("p", { className: "store-desc", children: store.desc })
|
|
244
|
+
] }),
|
|
245
|
+
/* @__PURE__ */ jsxs("div", { className: "store-card-footer", children: [
|
|
246
|
+
/* @__PURE__ */ jsxs("div", { className: "price-container", children: [
|
|
247
|
+
/* @__PURE__ */ jsx2("span", { className: "price-value", children: store.price }),
|
|
248
|
+
/* @__PURE__ */ jsx2("span", { className: "price-unit", children: "\u062A\u0648\u0645\u0627\u0646" })
|
|
249
|
+
] }),
|
|
250
|
+
/* @__PURE__ */ jsxs("div", { className: "contact-trigger", children: [
|
|
251
|
+
/* @__PURE__ */ jsx2("span", { children: "\u0627\u0637\u0644\u0627\u0639\u0627\u062A \u062A\u0645\u0627\u0633" }),
|
|
252
|
+
/* @__PURE__ */ jsx2("svg", { className: `arrow-icon ${isSelected ? "open" : ""}`, width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx2("polyline", { points: "18 15 12 9 6 15" }) })
|
|
253
|
+
] })
|
|
254
|
+
] }),
|
|
255
|
+
/* @__PURE__ */ jsx2("div", { className: "store-details-wrapper", children: /* @__PURE__ */ jsx2("div", { className: "store-details-content", children: /* @__PURE__ */ jsxs("div", { className: "action-buttons vertical", children: [
|
|
256
|
+
store.phone && /* @__PURE__ */ jsx2("a", { href: `tel:${store.phone}`, className: "btn btn-call full-width", onClick: handleActionClick, children: /* @__PURE__ */ jsxs("div", { className: "btn-content", children: [
|
|
257
|
+
/* @__PURE__ */ jsx2("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx2("path", { d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" }) }),
|
|
258
|
+
/* @__PURE__ */ jsxs("span", { children: [
|
|
259
|
+
"\u062A\u0645\u0627\u0633: ",
|
|
260
|
+
store.phone
|
|
261
|
+
] })
|
|
262
|
+
] }) }),
|
|
263
|
+
store.whatsapp && /* @__PURE__ */ jsx2("a", { href: `https://wa.me/${store.whatsapp}`, target: "_blank", rel: "noreferrer", className: "btn btn-wa full-width", onClick: handleActionClick, children: /* @__PURE__ */ jsxs("div", { className: "btn-content", children: [
|
|
264
|
+
/* @__PURE__ */ jsx2("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx2("path", { d: "M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" }) }),
|
|
265
|
+
/* @__PURE__ */ jsx2("span", { children: "\u0627\u0631\u0633\u0627\u0644 \u067E\u06CC\u0627\u0645 \u062F\u0631 \u0648\u0627\u062A\u0633\u0627\u067E" })
|
|
266
|
+
] }) }),
|
|
267
|
+
/* @__PURE__ */ jsx2("a", { href: googleMapUrl, target: "_blank", rel: "noreferrer", className: "btn btn-route full-width", onClick: handleActionClick, children: /* @__PURE__ */ jsxs("div", { className: "btn-content", children: [
|
|
268
|
+
/* @__PURE__ */ jsx2("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx2("polygon", { points: "3 11 22 2 13 21 11 13 3 11" }) }),
|
|
269
|
+
/* @__PURE__ */ jsx2("span", { children: "\u0645\u0633\u06CC\u0631\u06CC\u0627\u0628\u06CC \u0631\u0648\u06CC \u0646\u0642\u0634\u0647" })
|
|
270
|
+
] }) })
|
|
261
271
|
] }) }) })
|
|
262
272
|
]
|
|
263
273
|
}
|
|
@@ -281,13 +291,9 @@ var InteractiveMap = (props) => {
|
|
|
281
291
|
const timer = setTimeout(() => {
|
|
282
292
|
const selectedCard = sliderRef.current?.querySelector(`[data-id="${props.selectedMarkerId}"]`);
|
|
283
293
|
if (selectedCard) {
|
|
284
|
-
selectedCard.scrollIntoView({
|
|
285
|
-
behavior: "smooth",
|
|
286
|
-
inline: "center",
|
|
287
|
-
block: "nearest"
|
|
288
|
-
});
|
|
294
|
+
selectedCard.scrollIntoView({ behavior: "smooth", inline: "center", block: "nearest" });
|
|
289
295
|
}
|
|
290
|
-
},
|
|
296
|
+
}, 150);
|
|
291
297
|
return () => clearTimeout(timer);
|
|
292
298
|
}
|
|
293
299
|
}, [props.selectedMarkerId, isMobile]);
|
|
@@ -305,7 +311,8 @@ var InteractiveMap = (props) => {
|
|
|
305
311
|
{
|
|
306
312
|
store,
|
|
307
313
|
isSelected: props.selectedMarkerId === store.id,
|
|
308
|
-
onSelect: () => handleStoreSelect(store, idx)
|
|
314
|
+
onSelect: () => handleStoreSelect(store, idx),
|
|
315
|
+
shopLogoUrl: store.logoUrl
|
|
309
316
|
},
|
|
310
317
|
store.id
|
|
311
318
|
)) })
|
|
@@ -323,13 +330,17 @@ var InteractiveMap = (props) => {
|
|
|
323
330
|
}
|
|
324
331
|
}
|
|
325
332
|
),
|
|
326
|
-
props.productName && /* @__PURE__ */
|
|
333
|
+
props.productName && /* @__PURE__ */ jsxs2("div", { className: "product-badge", children: [
|
|
334
|
+
props.productLogoUrl && /* @__PURE__ */ jsx3("img", { src: props.productLogoUrl, alt: "product", className: "product-badge-logo" }),
|
|
335
|
+
/* @__PURE__ */ jsx3("span", { className: "product-badge-text", children: props.productName })
|
|
336
|
+
] }),
|
|
327
337
|
isMobile && /* @__PURE__ */ jsx3("div", { className: "mobile-slider", ref: sliderRef, children: safeMarkers.map((store, idx) => /* @__PURE__ */ jsx3(
|
|
328
338
|
StoreCard,
|
|
329
339
|
{
|
|
330
340
|
store,
|
|
331
341
|
isSelected: props.selectedMarkerId === store.id,
|
|
332
|
-
onSelect: () => handleStoreSelect(store, idx)
|
|
342
|
+
onSelect: () => handleStoreSelect(store, idx),
|
|
343
|
+
shopLogoUrl: store.logoUrl
|
|
333
344
|
},
|
|
334
345
|
store.id
|
|
335
346
|
)) })
|