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/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: all 0.2s ease;
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: #eff6ff;
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: 8px;
46
+ margin-bottom: 12px;
59
47
  }
60
48
  .store-name {
61
49
  margin: 0;
62
- font-size: 16px;
63
- font-weight: 700;
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
- margin-top: 2px;
74
+ font-size: 11px;
75
+ font-weight: 700;
76
+ cursor: pointer;
71
77
  }
72
- .store-price {
73
- color: #059669;
74
- font-weight: 800;
75
- font-size: 15px;
76
- background: #ecfdf5;
77
- padding: 2px 8px;
78
- border-radius: 6px;
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
- font-size: 12.5px;
100
+ flex: 1;
101
+ font-size: 12px;
82
102
  color: #4b5563;
83
103
  line-height: 1.6;
84
- margin: 8px 0;
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-details-wrapper {
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
- gap: 8px;
106
- padding-bottom: 6px;
112
+ justify-content: space-between;
113
+ align-items: center;
114
+ border-top: 1px dashed #e5e7eb;
115
+ padding-top: 12px;
107
116
  }
108
- .btn {
109
- flex: 1;
110
- padding: 10px 5px;
111
- border-radius: 8px;
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
- .btn:active {
120
- transform: scale(0.95);
122
+ .price-value {
123
+ font-size: 16px;
124
+ font-weight: 900;
125
+ color: #111827;
121
126
  }
122
- .btn-call {
123
- background: #2563eb;
127
+ .price-unit {
128
+ font-size: 11px;
129
+ color: #6b7280;
130
+ font-weight: 600;
124
131
  }
125
- .btn-wa {
126
- background: #10b981;
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
- .btn-route {
129
- background: #7c3aed;
140
+ .arrow-icon {
141
+ transition: transform 0.3s ease;
142
+ transform: rotate(180deg);
130
143
  }
131
- .neshan-marker-container {
132
- pointer-events: auto;
144
+ .arrow-icon.open {
145
+ transform: rotate(0deg);
133
146
  }
134
- .neshan-marker-body {
147
+ .action-buttons.vertical {
135
148
  display: flex;
136
149
  flex-direction: column;
137
- align-items: center;
138
- transform-origin: bottom center;
150
+ gap: 10px;
151
+ margin-top: 15px;
139
152
  }
140
- .neshan-marker-label {
141
- background: #2563eb;
142
- color: #ffffff !important;
143
- font-size: 12px;
144
- font-weight: 900;
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
- .neshan-cluster-marker {
159
+ .btn-content {
154
160
  display: flex;
155
161
  align-items: center;
156
- justify-content: center;
157
- background: #ffffff;
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
- .neshan-cluster-marker:hover {
167
- transform: scale(1.05);
165
+ .map-container {
166
+ flex: 1;
167
+ position: relative;
168
+ background: #f3f4f6;
168
169
  }
169
- .neshan-cluster-count {
170
- color: #2563eb;
171
- font-weight: 900;
172
- font-size: 16px;
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
- .neshan-marker-selected .neshan-marker-body {
175
- animation: marker-bounce 0.8s infinite alternate cubic-bezier(0.45, 0.05, 0.55, 0.95);
176
- z-index: 100;
176
+ .active .store-details-wrapper {
177
+ grid-template-rows: 1fr;
177
178
  }
178
- @keyframes marker-bounce {
179
- from {
180
- transform: translateY(0) scale(1.1);
181
- }
182
- to {
183
- transform: translateY(-12px) scale(1.15);
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: 290px;
206
- max-width: 80vw;
207
- background: #ffffff;
208
- border-radius: 18px;
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
- top: 15px;
220
- right: 15px;
217
+ bottom: 20px;
218
+ right: 20px;
221
219
  background: rgba(255, 255, 255, 0.95);
222
- backdrop-filter: blur(4px);
223
- padding: 8px 16px;
224
- border-radius: 10px;
225
- box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
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: 13px;
228
- color: #1f2937;
229
- z-index: 5;
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 */
@@ -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/* Sidebar Desktop */\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 background: #fafafa;\r\n}\r\n\r\n.sidebar-list {\r\n flex: 1;\r\n overflow-y: auto;\r\n scrollbar-width: thin;\r\n}\r\n\r\n/* Map Section */\r\n.map-container {\r\n flex: 1;\r\n position: relative;\r\n background: #f3f4f6;\r\n}\r\n\r\n/* Store Card Style */\r\n.store-card {\r\n padding: 16px;\r\n border-bottom: 1px solid #f3f4f6;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n border-right: 4px solid transparent;\r\n background: #ffffff;\r\n}\r\n\r\n.store-card:hover {\r\n background: #f9fafb;\r\n}\r\n\r\n.store-card.active {\r\n background: #eff6ff;\r\n border-right-color: #2563eb;\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: 8px;\r\n}\r\n\r\n.store-name {\r\n margin: 0;\r\n font-size: 16px;\r\n font-weight: 700;\r\n color: #111827;\r\n}\r\n\r\n.store-city {\r\n display: block;\r\n font-size: 12px;\r\n color: #6b7280;\r\n margin-top: 2px;\r\n}\r\n\r\n.store-price {\r\n color: #059669;\r\n font-weight: 800;\r\n font-size: 15px;\r\n background: #ecfdf5;\r\n padding: 2px 8px;\r\n border-radius: 6px;\r\n}\r\n\r\n.store-desc {\r\n font-size: 12.5px;\r\n color: #4b5563;\r\n line-height: 1.6;\r\n margin: 8px 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-details-wrapper {\r\n display: grid;\r\n grid-template-rows: 0fr;\r\n transition: grid-template-rows 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n overflow: hidden;\r\n}\r\n\r\n.active .store-details-wrapper {\r\n grid-template-rows: 1fr;\r\n margin-top: 14px;\r\n}\r\n\r\n.store-details-content {\r\n min-height: 0;\r\n}\r\n\r\n.action-buttons {\r\n display: flex;\r\n gap: 8px;\r\n padding-bottom: 6px;\r\n}\r\n\r\n.btn {\r\n flex: 1;\r\n padding: 10px 5px;\r\n border-radius: 8px;\r\n text-align: center;\r\n text-decoration: none;\r\n font-size: 13px;\r\n font-weight: 700;\r\n color: #fff;\r\n transition: transform 0.1s, opacity 0.2s;\r\n}\r\n\r\n.btn:active { transform: scale(0.95); }\r\n.btn-call { background: #2563eb; }\r\n.btn-wa { background: #10b981; }\r\n.btn-route { background: #7c3aed; }\r\n\r\n/* مارکرها */\r\n.neshan-marker-container {\r\n pointer-events: auto;\r\n}\r\n\r\n.neshan-marker-body {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n transform-origin: bottom center;\r\n}\r\n\r\n.neshan-marker-label {\r\n background: #2563eb;\r\n color: #ffffff !important;\r\n font-size: 12px;\r\n font-weight: 900;\r\n padding: 4px 12px;\r\n border-radius: 20px;\r\n margin-top: 6px;\r\n box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4);\r\n border: 2px solid #ffffff;\r\n white-space: nowrap;\r\n pointer-events: none;\r\n}\r\n\r\n/* کلاسترها */\r\n.neshan-cluster-marker {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n background: #ffffff;\r\n border: 3px solid #2563eb;\r\n border-radius: 50%;\r\n width: 42px;\r\n height: 42px;\r\n box-shadow: 0 4px 20px rgba(0, 0, 0, 0.25);\r\n cursor: pointer;\r\n transition: none;\r\n}\r\n\r\n.neshan-cluster-marker:hover {\r\n transform: scale(1.05);\r\n}\r\n\r\n.neshan-cluster-count {\r\n color: #2563eb;\r\n font-weight: 900;\r\n font-size: 16px;\r\n}\r\n\r\n/* انیمیشن مارکر انتخاب شده */\r\n.neshan-marker-selected .neshan-marker-body {\r\n animation: marker-bounce 0.8s infinite alternate cubic-bezier(0.45, 0.05, 0.55, 0.95);\r\n z-index: 100;\r\n}\r\n\r\n@keyframes marker-bounce {\r\n from { transform: translateY(0) scale(1.1); }\r\n to { transform: translateY(-12px) scale(1.15); }\r\n}\r\n\r\n/* 📱 موبایل و اسلایدر (اصلاح شده) */\r\n.is-mobile .mobile-slider {\r\n position: absolute;\r\n bottom: 0; /* چسبیده به پایین برای مدیریت بهتر پدینگ */\r\n left: 0;\r\n right: 0;\r\n display: flex;\r\n gap: 12px;\r\n padding: 20px 20px 40px 20px; /* افزایش پدینگ پایین برای جلوگیری از مخفی شدن دکمه‌ها */\r\n overflow-x: auto;\r\n scroll-snap-type: x mandatory;\r\n pointer-events: none;\r\n z-index: 20;\r\n align-items: flex-end; /* هم‌تراز کردن از پایین */\r\n scrollbar-width: none;\r\n}\r\n\r\n.is-mobile .mobile-slider::-webkit-scrollbar { display: none; }\r\n\r\n.is-mobile .store-card {\r\n min-width: 290px;\r\n max-width: 80vw;\r\n background: #ffffff;\r\n border-radius: 18px;\r\n box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);\r\n pointer-events: auto;\r\n scroll-snap-align: center;\r\n border: none;\r\n flex-shrink: 0;\r\n /* جلوگیری از بزرگ شدن بیش از حد کارت در موبایل‌های کوچک */\r\n max-height: 70vh; \r\n overflow-y: auto;\r\n}\r\n\r\n/* باج محصول */\r\n.product-badge {\r\n position: absolute;\r\n top: 15px;\r\n right: 15px;\r\n background: rgba(255, 255, 255, 0.95);\r\n backdrop-filter: blur(4px);\r\n padding: 8px 16px;\r\n border-radius: 10px;\r\n box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);\r\n font-weight: 800;\r\n font-size: 13px;\r\n color: #1f2937;\r\n z-index: 5;\r\n}"],"mappings":"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","names":[]}
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__ */ jsx2("span", { className: "store-city", children: store.city })
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("div", { className: "store-price", children: [
224
- store.price,
225
- " \u062A\u0648\u0645\u0627\u0646"
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__ */ jsx2("p", { className: "store-desc", children: store.desc }),
229
- /* @__PURE__ */ jsx2("div", { className: "store-details-wrapper", children: /* @__PURE__ */ jsx2("div", { className: "store-details-content", children: /* @__PURE__ */ jsxs("div", { className: "action-buttons", children: [
230
- store.phone && /* @__PURE__ */ jsx2(
231
- "a",
232
- {
233
- href: `tel:${store.phone}`,
234
- className: "btn btn-call",
235
- onClick: handleActionClick,
236
- children: /* @__PURE__ */ jsx2("span", { children: "\u062A\u0645\u0627\u0633" })
237
- }
238
- ),
239
- store.whatsapp && /* @__PURE__ */ jsx2(
240
- "a",
241
- {
242
- href: `https://wa.me/${store.whatsapp}`,
243
- target: "_blank",
244
- rel: "noreferrer",
245
- className: "btn btn-wa",
246
- onClick: handleActionClick,
247
- children: /* @__PURE__ */ jsx2("span", { children: "\u0648\u0627\u062A\u0633\u0627\u067E" })
248
- }
249
- ),
250
- /* @__PURE__ */ jsx2(
251
- "a",
252
- {
253
- href: googleMapUrl,
254
- target: "_blank",
255
- rel: "noreferrer",
256
- className: "btn btn-route",
257
- onClick: handleActionClick,
258
- children: /* @__PURE__ */ jsx2("span", { children: "\u0645\u0633\u06CC\u0631\u06CC\u0627\u0628\u06CC" })
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
- }, 100);
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__ */ jsx3("div", { className: "product-badge", children: /* @__PURE__ */ jsx3("span", { children: props.productName }) }),
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
  )) })