hey-pharmacist-ecommerce 1.1.41 → 1.1.43
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 +70 -8
- package/dist/index.d.mts +380 -2364
- package/dist/index.d.ts +380 -2364
- package/dist/index.js +576 -615
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +576 -612
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/AccountAddressesTab.tsx +9 -9
- package/src/components/AccountOrdersTab.tsx +11 -11
- package/src/components/AccountOverviewTab.tsx +26 -26
- package/src/components/AccountPaymentTab.tsx +2 -2
- package/src/components/AccountReviewsTab.tsx +1 -1
- package/src/components/AccountSettingsTab.tsx +6 -6
- package/src/components/AddressFormModal.tsx +2 -2
- package/src/components/CartItem.tsx +15 -15
- package/src/components/FilterChips.tsx +7 -7
- package/src/components/Footer.tsx +9 -9
- package/src/components/Header.tsx +7 -7
- package/src/components/Notification.tsx +3 -3
- package/src/components/NotificationBell.tsx +3 -3
- package/src/components/NotificationDrawer.tsx +1 -1
- package/src/components/NotificationModal.tsx +1 -1
- package/src/components/OrderCard.tsx +2 -2
- package/src/components/ProductCard.tsx +13 -13
- package/src/components/QuickViewModal.tsx +28 -28
- package/src/components/ReviewCard.tsx +6 -6
- package/src/components/TabNavigation.tsx +2 -2
- package/src/components/ui/Badge.tsx +2 -2
- package/src/components/ui/Button.tsx +3 -3
- package/src/components/ui/ConfirmModal.tsx +3 -3
- package/src/components/ui/Input.tsx +1 -1
- package/src/lib/Apis/api.ts +0 -1
- package/src/lib/Apis/models/group-with-no-users-dto.ts +0 -6
- package/src/lib/Apis/models/group-with-users-dto.ts +0 -6
- package/src/lib/Apis/models/index.ts +0 -35
- package/src/lib/Apis/models/order.ts +0 -6
- package/src/lib/Apis/models/populated-order.ts +0 -6
- package/src/lib/Apis/models/preference-update-item.ts +1 -0
- package/src/lib/Apis/models/update-user-dto.ts +0 -6
- package/src/lib/Apis/models/user-group.ts +0 -6
- package/src/lib/Apis/models/user-with-no-id.ts +0 -6
- package/src/lib/Apis/sharedConfig.ts +1 -1
- package/src/providers/ThemeProvider.tsx +2 -2
- package/src/screens/AddressesScreen.tsx +6 -6
- package/src/screens/CartScreen.tsx +23 -23
- package/src/screens/ChangePasswordScreen.tsx +2 -2
- package/src/screens/CheckoutScreen.tsx +28 -28
- package/src/screens/CurrentOrdersScreen.tsx +4 -4
- package/src/screens/EditProfileScreen.tsx +1 -1
- package/src/screens/ForgotPasswordScreen.tsx +11 -11
- package/src/screens/LoginScreen.tsx +12 -12
- package/src/screens/OrderDetailScreen.tsx +30 -30
- package/src/screens/OrdersScreen.tsx +3 -3
- package/src/screens/ProductDetailScreen.tsx +59 -59
- package/src/screens/ProfileScreen.tsx +2 -2
- package/src/screens/RegisterScreen.tsx +15 -15
- package/src/screens/ResetPasswordScreen.tsx +14 -14
- package/src/screens/SearchResultsScreen.tsx +7 -7
- package/src/screens/ShopScreen.tsx +55 -55
- package/src/screens/WishlistScreen.tsx +22 -22
- package/src/styles/globals.css +43 -43
- package/src/lib/Apis/apis/marketing-api.ts +0 -3099
- package/src/lib/Apis/models/add-contact-to-list-dto.ts +0 -33
- package/src/lib/Apis/models/browser-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-content-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-dto.ts +0 -175
- package/src/lib/Apis/models/campaign-draft-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-schedule-dto.ts +0 -49
- package/src/lib/Apis/models/campaign-draft-schedule-response-dto.ts +0 -40
- package/src/lib/Apis/models/campaign-draft-sending-dto.ts +0 -43
- package/src/lib/Apis/models/campaign-draft-sending-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-aggregated-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-full-dto.ts +0 -93
- package/src/lib/Apis/models/contact-full-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-list-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/contact-lists-response-dto.ts +0 -40
- package/src/lib/Apis/models/country-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/create-contact-dto.ts +0 -39
- package/src/lib/Apis/models/create-contact-list-dto.ts +0 -27
- package/src/lib/Apis/models/create-email-template-dto.ts +0 -51
- package/src/lib/Apis/models/create-marketing-campaign-dto.ts +0 -81
- package/src/lib/Apis/models/email-template-response-dto.ts +0 -117
- package/src/lib/Apis/models/general-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/link-stats-response-dto.ts +0 -40
- package/src/lib/Apis/models/marketing-campaign-content-dto.ts +0 -27
- package/src/lib/Apis/models/marketing-list-contact-dto.ts +0 -51
- package/src/lib/Apis/models/schedule-campaign-draft-dto.ts +0 -27
- package/src/lib/Apis/models/send-test-email-dto.ts +0 -28
- package/src/lib/Apis/models/single-browser-stats-dto.ts +0 -45
- package/src/lib/Apis/models/single-contact-aggregated-stats-dto.ts +0 -129
- package/src/lib/Apis/models/single-contact-list-stats-dto.ts +0 -117
- package/src/lib/Apis/models/single-country-stats-dto.ts +0 -39
- package/src/lib/Apis/models/single-general-stats.ts +0 -153
- package/src/lib/Apis/models/single-link-stats-dto.ts +0 -39
- package/src/lib/Apis/models/single-recipient-dto.ts +0 -33
- package/src/lib/Apis/models/update-campaign-draft-content-dto.ts +0 -27
- package/src/lib/Apis/models/update-marketing-camp-draft-dto.ts +0 -81
|
@@ -166,19 +166,19 @@ export default function WishlistScreen() {
|
|
|
166
166
|
<div className="max-w-lg text-center space-y-6">
|
|
167
167
|
<div className="flex justify-center">
|
|
168
168
|
<div className="rounded-full bg-gray-100 p-6">
|
|
169
|
-
<Heart className="h-12 w-12 text-
|
|
169
|
+
<Heart className="h-12 w-12 text-hsecondary" />
|
|
170
170
|
</div>
|
|
171
171
|
</div>
|
|
172
172
|
<div className="space-y-2">
|
|
173
|
-
<h2 className="text-2xl font-bold text-
|
|
174
|
-
<p className="text-
|
|
173
|
+
<h2 className="text-2xl font-bold text-hsecondary">Sign in to see your favourites</h2>
|
|
174
|
+
<p className="text-hmuted">
|
|
175
175
|
Create your curated shelf of products and we'll keep them ready whenever you return.
|
|
176
176
|
</p>
|
|
177
177
|
</div>
|
|
178
178
|
<button
|
|
179
179
|
type="button"
|
|
180
180
|
onClick={() => router.push(buildPath('/login'))}
|
|
181
|
-
className="rounded-xl border-2 border-
|
|
181
|
+
className="rounded-xl border-2 border-hprimary bg-hprimary text-white px-6 py-3 text-sm font-medium transition-colors hover:opacity-80"
|
|
182
182
|
>
|
|
183
183
|
Sign In
|
|
184
184
|
</button>
|
|
@@ -189,8 +189,8 @@ export default function WishlistScreen() {
|
|
|
189
189
|
{isAuthenticated && (
|
|
190
190
|
<>
|
|
191
191
|
<div className="mb-6">
|
|
192
|
-
<h1 className="text-2xl font-bold text-
|
|
193
|
-
<p className="text-sm text-
|
|
192
|
+
<h1 className="text-2xl font-bold text-hsecondary">Wishlist</h1>
|
|
193
|
+
<p className="text-sm text-hmuted mt-1">
|
|
194
194
|
{wishlistCount} {wishlistCount === 1 ? 'item' : 'items'} saved
|
|
195
195
|
{wishlistCount > 0 && ` • Total value: ${formatPrice(totalValue)}`}
|
|
196
196
|
</p>
|
|
@@ -199,19 +199,19 @@ export default function WishlistScreen() {
|
|
|
199
199
|
<div className="flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between mb-6">
|
|
200
200
|
<div className="space-y-1">
|
|
201
201
|
{onlyInStock && (
|
|
202
|
-
<p className="text-sm text-
|
|
202
|
+
<p className="text-sm text-hmuted">
|
|
203
203
|
Showing items ready to ship
|
|
204
204
|
</p>
|
|
205
205
|
)}
|
|
206
206
|
</div>
|
|
207
207
|
|
|
208
208
|
<div className="flex flex-wrap items-center gap-3">
|
|
209
|
-
<label className="inline-flex cursor-pointer items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-600 transition hover:border-
|
|
209
|
+
<label className="inline-flex cursor-pointer items-center gap-2 rounded-full border border-slate-200 bg-slate-50 px-3 py-1.5 text-sm font-medium text-slate-600 transition hover:border-hprimary hover:text-hsecondary">
|
|
210
210
|
<input
|
|
211
211
|
type="checkbox"
|
|
212
212
|
checked={onlyInStock}
|
|
213
213
|
onChange={(event) => setOnlyInStock(event.target.checked)}
|
|
214
|
-
className="h-4 w-4 rounded-sm border-slate-300 text-
|
|
214
|
+
className="h-4 w-4 rounded-sm border-slate-300 text-hsecondary focus:ring-hsecondary"
|
|
215
215
|
/>
|
|
216
216
|
Only show in-stock
|
|
217
217
|
</label>
|
|
@@ -236,7 +236,7 @@ export default function WishlistScreen() {
|
|
|
236
236
|
type="button"
|
|
237
237
|
onClick={() => setViewMode('grid')}
|
|
238
238
|
className={`flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === 'grid'
|
|
239
|
-
? 'bg-white text-
|
|
239
|
+
? 'bg-white text-hprimary shadow-md'
|
|
240
240
|
: 'text-slate-600 hover:bg-white'
|
|
241
241
|
}`}
|
|
242
242
|
>
|
|
@@ -246,7 +246,7 @@ export default function WishlistScreen() {
|
|
|
246
246
|
type="button"
|
|
247
247
|
onClick={() => setViewMode('list')}
|
|
248
248
|
className={`flex items-center gap-1 px-3 py-1.5 text-sm font-medium transition rounded-full ${viewMode === 'list'
|
|
249
|
-
? 'bg-white text-
|
|
249
|
+
? 'bg-white text-hprimary shadow-md'
|
|
250
250
|
: 'text-slate-600 hover:bg-white'
|
|
251
251
|
}`}
|
|
252
252
|
>
|
|
@@ -283,12 +283,12 @@ export default function WishlistScreen() {
|
|
|
283
283
|
<div className="text-center space-y-6 max-w-md">
|
|
284
284
|
<div className="flex justify-center">
|
|
285
285
|
<div className="rounded-full bg-gray-100 p-6">
|
|
286
|
-
<Heart className="h-12 w-12 text-
|
|
286
|
+
<Heart className="h-12 w-12 text-hsecondary" />
|
|
287
287
|
</div>
|
|
288
288
|
</div>
|
|
289
289
|
<div className="space-y-2">
|
|
290
|
-
<h2 className="text-2xl font-bold text-
|
|
291
|
-
<p className="text-
|
|
290
|
+
<h2 className="text-2xl font-bold text-hsecondary">Your wishlist is empty</h2>
|
|
291
|
+
<p className="text-hmuted">
|
|
292
292
|
Start adding products to your wishlist to see them here.
|
|
293
293
|
</p>
|
|
294
294
|
</div>
|
|
@@ -296,7 +296,7 @@ export default function WishlistScreen() {
|
|
|
296
296
|
<button
|
|
297
297
|
type="button"
|
|
298
298
|
onClick={() => router.push(buildPath('/shop'))}
|
|
299
|
-
className="rounded-xl border-2 border-
|
|
299
|
+
className="rounded-xl border-2 border-hsecondary bg-hsecondary text-white px-6 py-3 text-sm font-medium transition-colors flex items-center justify-center gap-2 hover:opacity-80"
|
|
300
300
|
>
|
|
301
301
|
Discover products
|
|
302
302
|
</button>
|
|
@@ -357,15 +357,15 @@ export default function WishlistScreen() {
|
|
|
357
357
|
<div className="flex flex-1 flex-col gap-2">
|
|
358
358
|
<div className="flex flex-wrap items-center justify-between gap-3">
|
|
359
359
|
<div>
|
|
360
|
-
<h3 className="text-lg font-semibold text-
|
|
360
|
+
<h3 className="text-lg font-semibold text-hsecondary">
|
|
361
361
|
{product.name}
|
|
362
362
|
</h3>
|
|
363
|
-
<p className="text-sm text-
|
|
363
|
+
<p className="text-sm text-hmuted">
|
|
364
364
|
General wellness
|
|
365
365
|
</p>
|
|
366
366
|
</div>
|
|
367
367
|
<div className="text-right">
|
|
368
|
-
<p className="text-lg font-bold text-
|
|
368
|
+
<p className="text-lg font-bold text-hprimary">
|
|
369
369
|
{formatPrice(product.summary?.minPrice ?? 0)}
|
|
370
370
|
</p>
|
|
371
371
|
{product.summary?.hasDiscount && (
|
|
@@ -391,7 +391,7 @@ export default function WishlistScreen() {
|
|
|
391
391
|
<Button
|
|
392
392
|
size="sm"
|
|
393
393
|
onClick={() => router.push(buildPath(`/products/${product._id}`))}
|
|
394
|
-
className='bg-
|
|
394
|
+
className='bg-hprimary-90 text-white hover:bg-hprimary-70'
|
|
395
395
|
>
|
|
396
396
|
View details
|
|
397
397
|
</Button>
|
|
@@ -417,15 +417,15 @@ export default function WishlistScreen() {
|
|
|
417
417
|
<div className="flex h-16 w-16 items-center justify-center rounded-full bg-gray-200 text-gray-500">
|
|
418
418
|
<Package className="h-8 w-8" />
|
|
419
419
|
</div>
|
|
420
|
-
<h3 className="mt-6 text-xl font-semibold text-
|
|
420
|
+
<h3 className="mt-6 text-xl font-semibold text-hsecondary">
|
|
421
421
|
Nothing matches those filters
|
|
422
422
|
</h3>
|
|
423
|
-
<p className="mt-2 max-w-md text-sm text-
|
|
423
|
+
<p className="mt-2 max-w-md text-sm text-hmuted">
|
|
424
424
|
Try showing out-of-stock items or adjust your sort order to revisit everything you've saved.
|
|
425
425
|
</p>
|
|
426
426
|
<button
|
|
427
427
|
type="button"
|
|
428
|
-
className="mt-6 rounded-xl border-2 border-
|
|
428
|
+
className="mt-6 rounded-xl border-2 border-hprimary bg-white px-6 py-3 text-sm font-medium text-hsecondary hover:opacity-80 transition-colors"
|
|
429
429
|
onClick={() => setOnlyInStock(false)}
|
|
430
430
|
>
|
|
431
431
|
Show all saved products
|
package/src/styles/globals.css
CHANGED
|
@@ -4,49 +4,49 @@
|
|
|
4
4
|
@source "../**/*.{js,jsx,ts,tsx,mdx}";
|
|
5
5
|
|
|
6
6
|
@theme {
|
|
7
|
-
--color-
|
|
8
|
-
--color-
|
|
9
|
-
--color-
|
|
10
|
-
--color-
|
|
11
|
-
--color-
|
|
12
|
-
--color-
|
|
13
|
-
--color-
|
|
14
|
-
--color-
|
|
15
|
-
--color-
|
|
16
|
-
--color-
|
|
17
|
-
--color-
|
|
18
|
-
--color-
|
|
19
|
-
--color-
|
|
20
|
-
--color-
|
|
21
|
-
|
|
22
|
-
--color-
|
|
23
|
-
--color-
|
|
24
|
-
--color-
|
|
25
|
-
--color-
|
|
26
|
-
--color-
|
|
27
|
-
--color-
|
|
28
|
-
--color-
|
|
29
|
-
--color-
|
|
30
|
-
--color-
|
|
31
|
-
--color-
|
|
32
|
-
--color-
|
|
33
|
-
--color-
|
|
34
|
-
|
|
35
|
-
--color-
|
|
36
|
-
--color-
|
|
37
|
-
--color-
|
|
38
|
-
--color-
|
|
39
|
-
--color-
|
|
40
|
-
--color-
|
|
41
|
-
--color-
|
|
42
|
-
--color-
|
|
43
|
-
--color-
|
|
44
|
-
--color-
|
|
45
|
-
--color-
|
|
46
|
-
--color-
|
|
47
|
-
--color-
|
|
48
|
-
|
|
49
|
-
--color-
|
|
7
|
+
--color-hprimary-50: rgb(var(--hp-primary-50));
|
|
8
|
+
--color-hprimary-100: rgb(var(--hp-primary-100));
|
|
9
|
+
--color-hprimary-200: rgb(var(--hp-primary-200));
|
|
10
|
+
--color-hprimary-300: rgb(var(--hp-primary-300));
|
|
11
|
+
--color-hprimary-400: rgb(var(--hp-primary-400));
|
|
12
|
+
--color-hprimary-500: rgb(var(--hp-primary-500));
|
|
13
|
+
--color-hprimary-600: var(--hp-primary-600, #E67E50);
|
|
14
|
+
--color-hprimary-700: rgb(var(--hp-primary-700));
|
|
15
|
+
--color-hprimary-800: rgb(var(--hp-primary-800));
|
|
16
|
+
--color-hprimary-900: rgb(var(--hp-primary-900));
|
|
17
|
+
--color-hprimary-950: rgb(var(--hp-primary-950));
|
|
18
|
+
--color-hprimary: var(--hp-primary, #5b9bd5);
|
|
19
|
+
--color-hprimary-dark: var(--hp-primary-dark, #4a8ac4);
|
|
20
|
+
--color-hprimary-bg: var(--hp-primary-bg, #e6ebf0);
|
|
21
|
+
|
|
22
|
+
--color-hsecondary-50: rgb(var(--hp-secondary-50));
|
|
23
|
+
--color-hsecondary-100: rgb(var(--hp-secondary-100));
|
|
24
|
+
--color-hsecondary-200: rgb(var(--hp-secondary-200));
|
|
25
|
+
--color-hsecondary-300: rgb(var(--hp-secondary-300));
|
|
26
|
+
--color-hsecondary-400: rgb(var(--hp-secondary-400));
|
|
27
|
+
--color-hsecondary-500: rgb(var(--hp-secondary-500));
|
|
28
|
+
--color-hsecondary-600: rgb(var(--hp-secondary-600));
|
|
29
|
+
--color-hsecondary-700: rgb(var(--hp-secondary-700));
|
|
30
|
+
--color-hsecondary-800: rgb(var(--hp-secondary-800));
|
|
31
|
+
--color-hsecondary-900: rgb(var(--hp-secondary-900));
|
|
32
|
+
--color-hsecondary-950: rgb(var(--hp-secondary-950));
|
|
33
|
+
--color-hsecondary: var(--hp-secondary, #2b4b7c);
|
|
34
|
+
|
|
35
|
+
--color-haccent-50: rgb(var(--hp-accent-50));
|
|
36
|
+
--color-haccent-100: rgb(var(--hp-accent-100));
|
|
37
|
+
--color-haccent-200: rgb(var(--hp-accent-200));
|
|
38
|
+
--color-haccent-300: rgb(var(--hp-accent-300));
|
|
39
|
+
--color-haccent-400: rgb(var(--hp-accent-400));
|
|
40
|
+
--color-haccent-500: rgb(var(--hp-accent-500));
|
|
41
|
+
--color-haccent-600: rgb(var(--hp-accent-600));
|
|
42
|
+
--color-haccent-700: rgb(var(--hp-accent-700));
|
|
43
|
+
--color-haccent-800: rgb(var(--hp-accent-800));
|
|
44
|
+
--color-haccent-900: rgb(var(--hp-accent-900));
|
|
45
|
+
--color-haccent-950: rgb(var(--hp-accent-950));
|
|
46
|
+
--color-haccent: var(--hp-accent, #e67e50);
|
|
47
|
+
--color-haccent-dark: var(--hp-accent-dark, #d66f45);
|
|
48
|
+
|
|
49
|
+
--color-hmuted: var(--hp-text-muted, #676c80);
|
|
50
50
|
|
|
51
51
|
--animate-fade-in: fadeIn 0.3s ease-in-out;
|
|
52
52
|
--animate-slide-up: slideUp 0.3s ease-out;
|