@mohasinac/appkit 2.7.32 → 2.7.34
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/_internal/server/features/faqs/index.d.ts +1 -0
- package/dist/_internal/server/features/faqs/index.js +1 -0
- package/dist/_internal/server/features/faqs/og.d.ts +9 -0
- package/dist/_internal/server/features/faqs/og.js +50 -0
- package/dist/_internal/server/features/reviews/index.d.ts +2 -0
- package/dist/_internal/server/features/reviews/index.js +2 -0
- package/dist/_internal/server/features/reviews/og-data.d.ts +1 -0
- package/dist/_internal/server/features/reviews/og-data.js +7 -0
- package/dist/_internal/server/features/reviews/og.d.ts +19 -0
- package/dist/_internal/server/features/reviews/og.js +70 -0
- package/dist/_internal/server/features/scams/index.d.ts +1 -0
- package/dist/_internal/server/features/scams/index.js +1 -0
- package/dist/_internal/server/features/scams/og.d.ts +18 -0
- package/dist/_internal/server/features/scams/og.js +59 -0
- package/dist/_internal/server/jobs/core/auctionSettlement.js +14 -14
- package/dist/_internal/server/jobs/core/offerExpiry.js +3 -2
- package/dist/_internal/server/jobs/core/onBidPlaced.js +14 -12
- package/dist/_internal/server/jobs/core/onOrderStatusChange.js +6 -71
- package/dist/_internal/server/jobs/core/onSupportTicketCreate.js +6 -8
- package/dist/_internal/server/jobs/core/onSupportTicketUpdate.js +6 -7
- package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +11 -10
- package/dist/_internal/server/jobs/core/prizeRevealExpiry.js +2 -2
- package/dist/_internal/server/jobs/core/prizeRevealOpen.js +2 -2
- package/dist/_internal/server/jobs/core/prizeRevealReminder.js +2 -2
- package/dist/features/admin/actions/notification-actions.js +18 -8
- package/dist/features/admin/schemas/firestore.d.ts +6 -2
- package/dist/features/admin/schemas/firestore.js +4 -0
- package/dist/features/orders/actions/refund-actions.js +2 -2
- package/dist/features/seller/actions/offer-actions.js +5 -5
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/seed/actions/demo-seed-actions.d.ts +1 -1
- package/dist/seed/conversations-seed-data.js +52 -0
- package/dist/seed/index.d.ts +1 -0
- package/dist/seed/index.js +1 -0
- package/dist/seed/manifest.js +5 -0
- package/dist/seed/notifications-seed-data.js +10 -0
- package/dist/seed/offers-seed-data.d.ts +10 -0
- package/dist/seed/offers-seed-data.js +264 -0
- package/dist/seed/orders-seed-data.js +116 -2
- package/dist/seed/sessions-seed-data.js +35 -1
- package/dist/seed/support-tickets-seed-data.js +43 -0
- package/dist/seed/users-seed-data.js +1 -1
- package/dist/seed/wishlists-seed-data.js +5 -1
- package/dist/server-entry.d.ts +3 -1
- package/dist/server-entry.js +3 -1
- package/dist/server.d.ts +5 -0
- package/dist/server.js +5 -0
- package/dist/ui/components/Input.style.css +42 -4
- package/package.json +1 -1
|
@@ -1405,9 +1405,123 @@ export const ordersSeedData = [
|
|
|
1405
1405
|
createdAt: daysAgo(3),
|
|
1406
1406
|
updatedAt: daysAgo(3),
|
|
1407
1407
|
},
|
|
1408
|
-
// ──
|
|
1408
|
+
// ── 43. DELIVERED — admin as buyer — ALTER Rem Wedding via accepted offer ────
|
|
1409
1409
|
{
|
|
1410
|
-
id: "order-admin-
|
|
1410
|
+
id: "order-admin-043-alter-rem-offer",
|
|
1411
|
+
productId: "product-alter-rem-wedding-scale",
|
|
1412
|
+
productTitle: "ALTER: Re:ZERO — Rem (Wedding Ver.) 1/7 Scale Figure",
|
|
1413
|
+
userId: "user-admin-letitrip",
|
|
1414
|
+
userName: "LetItRip Admin",
|
|
1415
|
+
userEmail: "admin@letitrip.in",
|
|
1416
|
+
storeId: "store-tokyo-toys-india",
|
|
1417
|
+
storeName: "Tokyo Toys India",
|
|
1418
|
+
offerId: "offer-admin-alter-rem-paid",
|
|
1419
|
+
items: [
|
|
1420
|
+
{
|
|
1421
|
+
productId: "product-alter-rem-wedding-scale",
|
|
1422
|
+
productTitle: "ALTER Rem Wedding Ver. 1/7 (offer price)",
|
|
1423
|
+
quantity: 1,
|
|
1424
|
+
unitPrice: 1099900,
|
|
1425
|
+
totalPrice: 1099900,
|
|
1426
|
+
},
|
|
1427
|
+
],
|
|
1428
|
+
quantity: 1,
|
|
1429
|
+
unitPrice: 1099900,
|
|
1430
|
+
totalPrice: 1099900,
|
|
1431
|
+
currency: "INR",
|
|
1432
|
+
status: OrderStatusValues.DELIVERED,
|
|
1433
|
+
paymentStatus: PaymentStatusValues.PAID,
|
|
1434
|
+
paymentMethod: PaymentMethodValues.RAZORPAY,
|
|
1435
|
+
paymentId: "pay_razorpay_043_demo",
|
|
1436
|
+
shippingAddress: "LetItRip HQ, 10th Floor, BKC G Block, Mumbai 400051",
|
|
1437
|
+
trackingNumber: "DTDC443322110",
|
|
1438
|
+
shippingCarrier: "DTDC",
|
|
1439
|
+
shippingFee: 0,
|
|
1440
|
+
platformFee: 54995,
|
|
1441
|
+
orderDate: daysAgo(11),
|
|
1442
|
+
shippingDate: daysAgo(9),
|
|
1443
|
+
deliveryDate: daysAgo(7),
|
|
1444
|
+
payoutStatus: "paid",
|
|
1445
|
+
createdAt: daysAgo(11),
|
|
1446
|
+
updatedAt: daysAgo(7),
|
|
1447
|
+
},
|
|
1448
|
+
// ── 44. DELIVERED — Arjun / BX-01 via accepted offer ─────────────────────
|
|
1449
|
+
{
|
|
1450
|
+
id: "order-arjun-044-bx01-offer",
|
|
1451
|
+
productId: "product-beyblade-x-bx01-dran-sword-starter-pack",
|
|
1452
|
+
productTitle: "Beyblade X: BX-01 Dran Sword 3-60F — Starter Pack",
|
|
1453
|
+
userId: "user-arjun-singh",
|
|
1454
|
+
userName: "Arjun Singh",
|
|
1455
|
+
userEmail: "arjun.singh@gmail.com",
|
|
1456
|
+
storeId: "store-beyblade-arena",
|
|
1457
|
+
storeName: "Beyblade Arena",
|
|
1458
|
+
offerId: "offer-arjun-bx01-paid",
|
|
1459
|
+
items: [
|
|
1460
|
+
{
|
|
1461
|
+
productId: "product-beyblade-x-bx01-dran-sword-starter-pack",
|
|
1462
|
+
productTitle: "BX-01 Dran Sword Starter Pack (offer price)",
|
|
1463
|
+
quantity: 1,
|
|
1464
|
+
unitPrice: 129900,
|
|
1465
|
+
totalPrice: 129900,
|
|
1466
|
+
},
|
|
1467
|
+
],
|
|
1468
|
+
quantity: 1,
|
|
1469
|
+
unitPrice: 129900,
|
|
1470
|
+
totalPrice: 129900,
|
|
1471
|
+
currency: "INR",
|
|
1472
|
+
status: OrderStatusValues.DELIVERED,
|
|
1473
|
+
paymentStatus: PaymentStatusValues.PAID,
|
|
1474
|
+
paymentMethod: PaymentMethodValues.UPI_MANUAL,
|
|
1475
|
+
shippingAddress: "78 Indiranagar 100 Ft Road, Bengaluru 560038",
|
|
1476
|
+
trackingNumber: "SHPR221100334",
|
|
1477
|
+
shippingCarrier: "Shiprocket",
|
|
1478
|
+
shippingFee: 0,
|
|
1479
|
+
platformFee: 6495,
|
|
1480
|
+
orderDate: daysAgo(19),
|
|
1481
|
+
shippingDate: daysAgo(17),
|
|
1482
|
+
deliveryDate: daysAgo(14),
|
|
1483
|
+
payoutStatus: "paid",
|
|
1484
|
+
createdAt: daysAgo(19),
|
|
1485
|
+
updatedAt: daysAgo(14),
|
|
1486
|
+
},
|
|
1487
|
+
// ── 45. DELIVERED — Kiran / Gundam Bundle (3 kits) ───────────────────────
|
|
1488
|
+
{
|
|
1489
|
+
id: "order-kiran-045-gundam-bundle",
|
|
1490
|
+
productId: "group-gundam-builder-essentials",
|
|
1491
|
+
productTitle: "Gundam Builder Essentials — MG + RG Bundle",
|
|
1492
|
+
userId: "user-kiran-reddy",
|
|
1493
|
+
userName: "Kiran Reddy",
|
|
1494
|
+
userEmail: "kiran.reddy@gmail.com",
|
|
1495
|
+
storeId: "store-gundam-galaxy",
|
|
1496
|
+
storeName: "Gundam Galaxy",
|
|
1497
|
+
items: [
|
|
1498
|
+
{ productId: "product-gundam-rx78-mg", productTitle: "MG RX-78-2 Gundam Ver. 3.0 1/100", quantity: 1, unitPrice: 399900, totalPrice: 399900 },
|
|
1499
|
+
{ productId: "product-gundam-wing-zero-rg", productTitle: "RG Wing Gundam Zero EW 1/144", quantity: 1, unitPrice: 249900, totalPrice: 249900 },
|
|
1500
|
+
{ productId: "product-hg-aerial-rebuild-gundam", productTitle: "HG Aerial Rebuild 1/144", quantity: 1, unitPrice: 249900, totalPrice: 249900 },
|
|
1501
|
+
],
|
|
1502
|
+
quantity: 3,
|
|
1503
|
+
unitPrice: 299900,
|
|
1504
|
+
totalPrice: 899700,
|
|
1505
|
+
currency: "INR",
|
|
1506
|
+
status: OrderStatusValues.DELIVERED,
|
|
1507
|
+
paymentStatus: PaymentStatusValues.PAID,
|
|
1508
|
+
paymentMethod: PaymentMethodValues.RAZORPAY,
|
|
1509
|
+
paymentId: "pay_razorpay_045_demo",
|
|
1510
|
+
shippingAddress: "18 Kondapur, Hyderabad, Telangana 500084",
|
|
1511
|
+
trackingNumber: "BLUE667788901",
|
|
1512
|
+
shippingCarrier: "Bluedart",
|
|
1513
|
+
shippingFee: 0,
|
|
1514
|
+
platformFee: 44985,
|
|
1515
|
+
orderDate: daysAgo(52),
|
|
1516
|
+
shippingDate: daysAgo(50),
|
|
1517
|
+
deliveryDate: daysAgo(47),
|
|
1518
|
+
payoutStatus: "paid",
|
|
1519
|
+
createdAt: daysAgo(52),
|
|
1520
|
+
updatedAt: daysAgo(47),
|
|
1521
|
+
},
|
|
1522
|
+
// ── Admin as buyer — 46. PROCESSING — admin / Good Smile Aqua Scale ────────
|
|
1523
|
+
{
|
|
1524
|
+
id: "order-admin-046-gsc-aqua",
|
|
1411
1525
|
productId: "product-gsc-aqua-konosuba-scale",
|
|
1412
1526
|
productTitle: "Good Smile Company: KonoSuba — Aqua 1/7 Scale Figure",
|
|
1413
1527
|
userId: "user-admin-letitrip",
|
|
@@ -24,7 +24,7 @@ export const sessionsSeedData = [
|
|
|
24
24
|
// -- Active: Admin — Chrome Desktop (Windows) ----------------------------
|
|
25
25
|
{
|
|
26
26
|
id: "session-admin-chrome-desktop-001",
|
|
27
|
-
userId: "user-admin-
|
|
27
|
+
userId: "user-admin-letitrip",
|
|
28
28
|
deviceInfo: {
|
|
29
29
|
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
|
|
30
30
|
browser: "Chrome 122",
|
|
@@ -351,4 +351,38 @@ export const sessionsSeedData = [
|
|
|
351
351
|
expiresAt: daysAhead(19),
|
|
352
352
|
isActive: true,
|
|
353
353
|
},
|
|
354
|
+
// -- Active: Admin — Chrome Android (admin monitors on mobile) -----------
|
|
355
|
+
{
|
|
356
|
+
id: "session-admin-chrome-android-001",
|
|
357
|
+
userId: "user-admin-letitrip",
|
|
358
|
+
deviceInfo: {
|
|
359
|
+
userAgent: "Mozilla/5.0 (Linux; Android 14; Samsung Galaxy S24 Ultra) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Mobile Safari/537.36",
|
|
360
|
+
browser: "Chrome 122",
|
|
361
|
+
os: "Android 14",
|
|
362
|
+
device: "Mobile",
|
|
363
|
+
ip: "203.0.113.2",
|
|
364
|
+
},
|
|
365
|
+
location: { country: _locale.countryName, city: "Mumbai" },
|
|
366
|
+
createdAt: daysAgo(3),
|
|
367
|
+
lastActivity: daysAgo(1),
|
|
368
|
+
expiresAt: daysAhead(26),
|
|
369
|
+
isActive: true,
|
|
370
|
+
},
|
|
371
|
+
// -- Active: Admin — Safari macOS (secondary workstation) ----------------
|
|
372
|
+
{
|
|
373
|
+
id: "session-admin-safari-macos-001",
|
|
374
|
+
userId: "user-admin-letitrip",
|
|
375
|
+
deviceInfo: {
|
|
376
|
+
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15",
|
|
377
|
+
browser: "Safari 17",
|
|
378
|
+
os: "macOS 14",
|
|
379
|
+
device: "Desktop",
|
|
380
|
+
ip: "203.0.113.3",
|
|
381
|
+
},
|
|
382
|
+
location: { country: _locale.countryName, city: "Mumbai" },
|
|
383
|
+
createdAt: daysAgo(1),
|
|
384
|
+
lastActivity: daysAgo(0),
|
|
385
|
+
expiresAt: daysAhead(29),
|
|
386
|
+
isActive: true,
|
|
387
|
+
},
|
|
354
388
|
];
|
|
@@ -133,4 +133,47 @@ export const supportTicketsSeedData = [
|
|
|
133
133
|
createdAt: daysBack(1),
|
|
134
134
|
updatedAt: daysBack(1),
|
|
135
135
|
},
|
|
136
|
+
// ── 7. Resolved — escalated fraud report (admin handled) ──────────────────
|
|
137
|
+
{
|
|
138
|
+
id: "ticket-meera-fraud-002",
|
|
139
|
+
userId: "user-meera-nair",
|
|
140
|
+
userEmail: "meera.nair@example.com",
|
|
141
|
+
userDisplayName: "Meera Nair",
|
|
142
|
+
category: "scam_report",
|
|
143
|
+
subject: "Seller sent empty box and is now unreachable",
|
|
144
|
+
description: "I paid Rs 8,499 for a S.H.Figuarts Broly via Razorpay. The seller (store-beyblade-arena) has not responded in 7 days and the tracking shows the box was 200g — way too light for the figure.",
|
|
145
|
+
status: SUPPORT_TICKET_FIELDS.STATUS_VALUES.RESOLVED,
|
|
146
|
+
priority: SUPPORT_TICKET_FIELDS.PRIORITY_VALUES.HIGH,
|
|
147
|
+
assignedTo: "user-admin-letitrip",
|
|
148
|
+
assignedToName: "LetItRip Admin",
|
|
149
|
+
messages: [
|
|
150
|
+
msg("msg-meera-002-u1", "user-meera-nair", "user", "I have the weight receipt from Delhivery. 200g is impossible for this figure. The seller is not replying on messages or phone.", 10),
|
|
151
|
+
msg("msg-meera-002-s1", "user-simran-kaur", "support", "Hi Meera, I have escalated this to our admin team for review as it qualifies as a potential fraud case. You will hear back within 24 hours.", 9),
|
|
152
|
+
msg("msg-meera-002-a1", "user-admin-letitrip", "support", "Hi Meera, this is the LetItRip admin. I have reviewed the shipment weight log and the seller communication history. We are initiating a full refund of Rs 8,499 under our buyer protection policy. The seller account has been suspended pending investigation.", 8),
|
|
153
|
+
msg("msg-meera-002-u2", "user-meera-nair", "user", "Thank you so much. I really appreciate the quick escalation.", 7),
|
|
154
|
+
],
|
|
155
|
+
resolvedAt: daysBack(7),
|
|
156
|
+
createdAt: daysBack(10),
|
|
157
|
+
updatedAt: daysBack(7),
|
|
158
|
+
},
|
|
159
|
+
// ── 8. In-progress — seller account ban appeal (admin handling) ────────────
|
|
160
|
+
{
|
|
161
|
+
id: "ticket-rohit-ban-appeal-001",
|
|
162
|
+
userId: "user-rohit-joshi",
|
|
163
|
+
userEmail: "rohit.joshi@example.com",
|
|
164
|
+
userDisplayName: "Rohit Joshi",
|
|
165
|
+
category: "account",
|
|
166
|
+
subject: "My store was suspended — I believe it was a mistake",
|
|
167
|
+
description: "My store Beyblade Arena was suspended 2 days ago. I received no email explanation. I have 100% positive reviews and have never violated any policy. Please review.",
|
|
168
|
+
status: SUPPORT_TICKET_FIELDS.STATUS_VALUES.IN_PROGRESS,
|
|
169
|
+
priority: SUPPORT_TICKET_FIELDS.PRIORITY_VALUES.HIGH,
|
|
170
|
+
assignedTo: "user-admin-letitrip",
|
|
171
|
+
assignedToName: "LetItRip Admin",
|
|
172
|
+
messages: [
|
|
173
|
+
msg("msg-rohit-001-u1", "user-rohit-joshi", "user", "I run a legitimate business. I have 47 verified reviews and never had a single complaint. Please explain the suspension.", 2),
|
|
174
|
+
msg("msg-rohit-001-a1", "user-admin-letitrip", "support", "Hi Rohit, your store was suspended as part of an automatic fraud flag triggered by a buyer report. I am manually reviewing your transaction history and the specific report. Please share your business GST number and a copy of your most recent bank statement showing the Razorpay settlements for verification.", 1),
|
|
175
|
+
],
|
|
176
|
+
createdAt: daysBack(2),
|
|
177
|
+
updatedAt: daysBack(1),
|
|
178
|
+
},
|
|
136
179
|
];
|
|
@@ -32,7 +32,7 @@ export const usersSeedData = [
|
|
|
32
32
|
showWishlist: false,
|
|
33
33
|
bio: "LetItRip platform administrator.",
|
|
34
34
|
},
|
|
35
|
-
stats: { totalOrders:
|
|
35
|
+
stats: { totalOrders: 7, auctionsWon: 1, itemsSold: 142, reviewsCount: 0 },
|
|
36
36
|
metadata: {
|
|
37
37
|
lastSignInTime: daysAgo(1),
|
|
38
38
|
creationTime: daysAgo(400).toISOString(),
|
|
@@ -56,11 +56,15 @@ export const wishlistsSeedData = [
|
|
|
56
56
|
{ productId: "preorder-beyblade-x-bx10-booster", productType: "preorder", addedAt: daysAgo(3) },
|
|
57
57
|
{ productId: "preorder-shf-broly-super-hero", productType: "preorder", addedAt: daysAgo(1) },
|
|
58
58
|
]),
|
|
59
|
-
// Admin's personal wishlist —
|
|
59
|
+
// Admin's personal wishlist — mix of listing types to test all flows
|
|
60
60
|
makeDoc("user-admin-letitrip", [
|
|
61
61
|
{ productId: "product-mafex-miles-morales-spiderman", productType: "product", addedAt: daysAgo(60) },
|
|
62
62
|
{ productId: "product-figma-link-totk", productType: "product", addedAt: daysAgo(45) },
|
|
63
63
|
{ productId: "auction-pokemon-mew-1st-edition-psa10", productType: "auction", addedAt: daysAgo(20) },
|
|
64
64
|
{ productId: "product-alter-rem-wedding-scale", productType: "product", addedAt: daysAgo(8) },
|
|
65
|
+
{ productId: "prize-pokemon-mystery-box-june", productType: "product", addedAt: daysAgo(5) },
|
|
66
|
+
{ productId: "prize-hot-wheels-treasure-hunt", productType: "product", addedAt: daysAgo(4) },
|
|
67
|
+
{ productId: "preorder-gundam-pg-unicorn-ver15", productType: "preorder", addedAt: daysAgo(3) },
|
|
68
|
+
{ productId: "auction-pokemon-charizard-base1-psa9", productType: "auction", addedAt: daysAgo(2) },
|
|
65
69
|
]),
|
|
66
70
|
];
|
package/dist/server-entry.d.ts
CHANGED
|
@@ -55,7 +55,9 @@ export { getCouponByCode, applyCouponAction, createCouponAction, updateCouponAct
|
|
|
55
55
|
export { getWishlistForUser, isProductInWishlist, addToWishlistAction, removeFromWishlistAction, mergeGuestWishlistAction, WISHLIST_MAX, WISHLIST_GUEST_STORAGE_KEY, WishlistCapError, } from "./_internal/server/features/wishlist/index";
|
|
56
56
|
export { getHistoryForUser, trackProductViewAction, mergeGuestHistoryAction, HISTORY_MAX, HISTORY_GUEST_STORAGE_KEY, } from "./_internal/server/features/history/index";
|
|
57
57
|
export { getHomepageInitial, getHomepageSections, getHeroCarouselSlides, } from "./_internal/server/features/homepage/index";
|
|
58
|
-
export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index";
|
|
58
|
+
export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, getReviewById, renderReviewOg, renderReviewOgImage, type ReviewOgData, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index";
|
|
59
|
+
export { renderFaqOg, renderFaqOgImage, type FaqOgData, } from "./_internal/server/features/faqs/index";
|
|
60
|
+
export { renderScamOg, renderScamOgImage, type ScamOgData, getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached, } from "./_internal/server/features/scams/index";
|
|
59
61
|
export { getSearchResults, searchAction, type SearchQuery, } from "./_internal/server/features/search/index";
|
|
60
62
|
export { getCategoryForDetail, listRootCategories, listFeaturedCategories, listMenuCategories, getCategoryTree, listSitemapCategories, CATEGORIES_PAGE_SIZE, CATEGORIES_ROOT_TIER, CATEGORIES_MAX_DEPTH, CATEGORIES_SITEMAP_LIMIT, CATEGORIES_FEATURED_LIMIT, CATEGORIES_MENU_LIMIT, } from "./_internal/server/features/categories/index";
|
|
61
63
|
export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, type GroupedListingWithItems, type ListGroupedListingsParams, type SitemapGroupedListing, } from "./_internal/server/features/grouped/index";
|
package/dist/server-entry.js
CHANGED
|
@@ -76,7 +76,9 @@ export { getHistoryForUser, trackProductViewAction, mergeGuestHistoryAction, HIS
|
|
|
76
76
|
// S5: homepage data layer
|
|
77
77
|
export { getHomepageInitial, getHomepageSections, getHeroCarouselSlides, } from "./_internal/server/features/homepage/index";
|
|
78
78
|
// S5: reviews data layer + actions
|
|
79
|
-
export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index";
|
|
79
|
+
export { getReviewsForProduct, getReviewsForStore, hasUserPurchasedProduct, getReviewById, renderReviewOg, renderReviewOgImage, createReviewAction, replyToReviewAction, deleteReviewAction, markReviewHelpfulAction, } from "./_internal/server/features/reviews/index";
|
|
80
|
+
export { renderFaqOg, renderFaqOgImage, } from "./_internal/server/features/faqs/index";
|
|
81
|
+
export { renderScamOg, renderScamOgImage, getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached, } from "./_internal/server/features/scams/index";
|
|
80
82
|
// S5: search data layer + action
|
|
81
83
|
export { getSearchResults, searchAction, } from "./_internal/server/features/search/index";
|
|
82
84
|
// S3: categories data layer
|
package/dist/server.d.ts
CHANGED
|
@@ -48,6 +48,7 @@ export { makeFullStore } from "./seed/index";
|
|
|
48
48
|
export { makeFullUser } from "./seed/index";
|
|
49
49
|
export { makeHomepageSection } from "./seed/index";
|
|
50
50
|
export { makeNotification } from "./seed/index";
|
|
51
|
+
export { sendNotification } from "./features/admin/actions/notification-actions";
|
|
51
52
|
export { makeOrder } from "./seed/index";
|
|
52
53
|
export { makePayout } from "./seed/index";
|
|
53
54
|
export { makeProduct } from "./seed/index";
|
|
@@ -470,6 +471,10 @@ export { renderBlogOg, renderBlogOgImage, type BlogOgData } from "./_internal/se
|
|
|
470
471
|
export { renderEventOg, renderEventOgImage, type EventOgData } from "./_internal/server/features/events/og";
|
|
471
472
|
export { renderSublistingCategoryOg, renderSublistingCategoryOgImage, type SublistingCategoryOgData } from "./_internal/server/features/sublisting-categories/og";
|
|
472
473
|
export { renderProfileOg, renderPrivateProfileOgImage, renderUserProfileOgImage, type UserProfileOgData } from "./_internal/server/features/profile/og";
|
|
474
|
+
export { renderReviewOg, renderReviewOgImage, type ReviewOgData } from "./_internal/server/features/reviews/og";
|
|
475
|
+
export { renderFaqOg, renderFaqOgImage, type FaqOgData } from "./_internal/server/features/faqs/og";
|
|
476
|
+
export { renderScamOg, renderScamOgImage, type ScamOgData } from "./_internal/server/features/scams/og";
|
|
477
|
+
export { getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached } from "./_internal/server/features/scams/data";
|
|
473
478
|
export { orderDocumentToOrder } from "./_internal/server/features/orders/adapters";
|
|
474
479
|
export { LISTING_TYPE_CAPABILITIES, capabilityFor, canAddToCart, canBid, supportsShipping, requiresVendorVerified, requiresJurisdictionCheck, hasInstantFulfillment, assertNever, } from "./_internal/shared/listing-types/capabilities";
|
|
475
480
|
export type { ListingTypeCapability } from "./_internal/shared/listing-types/capabilities";
|
package/dist/server.js
CHANGED
|
@@ -149,6 +149,7 @@ export { makeHomepageSection } from "./seed/index";
|
|
|
149
149
|
// [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
150
150
|
// makeNotification - Shared export for make notification.
|
|
151
151
|
export { makeNotification } from "./seed/index";
|
|
152
|
+
export { sendNotification } from "./features/admin/actions/notification-actions";
|
|
152
153
|
// [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
153
154
|
// makeOrder - Shared export for make order.
|
|
154
155
|
export { makeOrder } from "./seed/index";
|
|
@@ -1345,6 +1346,10 @@ export { renderBlogOg, renderBlogOgImage } from "./_internal/server/features/blo
|
|
|
1345
1346
|
export { renderEventOg, renderEventOgImage } from "./_internal/server/features/events/og";
|
|
1346
1347
|
export { renderSublistingCategoryOg, renderSublistingCategoryOgImage } from "./_internal/server/features/sublisting-categories/og";
|
|
1347
1348
|
export { renderProfileOg, renderPrivateProfileOgImage, renderUserProfileOgImage } from "./_internal/server/features/profile/og";
|
|
1349
|
+
export { renderReviewOg, renderReviewOgImage } from "./_internal/server/features/reviews/og";
|
|
1350
|
+
export { renderFaqOg, renderFaqOgImage } from "./_internal/server/features/faqs/og";
|
|
1351
|
+
export { renderScamOg, renderScamOgImage } from "./_internal/server/features/scams/og";
|
|
1352
|
+
export { getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached } from "./_internal/server/features/scams/data";
|
|
1348
1353
|
// Adapters
|
|
1349
1354
|
export { orderDocumentToOrder } from "./_internal/server/features/orders/adapters";
|
|
1350
1355
|
// Listing-type capability registry — SB-UNI X1.
|
|
@@ -7,22 +7,60 @@
|
|
|
7
7
|
padding: 0.375rem 0.625rem;
|
|
8
8
|
font-size: 0.875rem;
|
|
9
9
|
line-height: 1.4;
|
|
10
|
-
transition: border-color 0.
|
|
10
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.appkit-input::placeholder {
|
|
14
|
+
color: var(--appkit-color-text-faint);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.appkit-input:hover:not(:disabled):not(:focus-visible) {
|
|
18
|
+
border-color: var(--appkit-color-zinc-400);
|
|
11
19
|
}
|
|
12
20
|
|
|
13
21
|
.appkit-input:focus-visible {
|
|
14
22
|
outline: none;
|
|
15
23
|
border-color: var(--appkit-color-secondary);
|
|
16
|
-
box-shadow: 0 0 0
|
|
24
|
+
box-shadow: 0 0 0 3px rgba(101, 196, 8, 0.25), inset 0 0 0 1px rgba(101, 196, 8, 0.15);
|
|
17
25
|
}
|
|
18
26
|
|
|
19
27
|
.dark .appkit-input {
|
|
20
28
|
border-color: var(--appkit-color-border);
|
|
21
|
-
background: rgba(30, 41, 59, 0.
|
|
29
|
+
background: rgba(30, 41, 59, 0.7);
|
|
22
30
|
color: var(--appkit-color-text);
|
|
23
31
|
}
|
|
24
32
|
|
|
33
|
+
.dark .appkit-input::placeholder {
|
|
34
|
+
color: var(--appkit-color-text-muted);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.dark .appkit-input:hover:not(:disabled):not(:focus-visible) {
|
|
38
|
+
border-color: var(--appkit-color-slate-500);
|
|
39
|
+
}
|
|
40
|
+
|
|
25
41
|
.dark .appkit-input:focus-visible {
|
|
26
42
|
border-color: var(--appkit-color-primary);
|
|
27
|
-
box-shadow: 0 0 0
|
|
43
|
+
box-shadow: 0 0 0 3px rgba(233, 30, 140, 0.25), inset 0 0 0 1px rgba(233, 30, 140, 0.15);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Error variant */
|
|
47
|
+
.appkit-input--error {
|
|
48
|
+
border-color: var(--appkit-color-error);
|
|
49
|
+
background: rgba(254, 202, 202, 0.06);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.appkit-input--error:focus-visible {
|
|
53
|
+
border-color: var(--appkit-color-error);
|
|
54
|
+
box-shadow: 0 0 0 3px rgba(248, 113, 113, 0.25), inset 0 0 0 1px rgba(248, 113, 113, 0.15);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* Disabled state */
|
|
58
|
+
.appkit-input:disabled {
|
|
59
|
+
opacity: 0.55;
|
|
60
|
+
cursor: not-allowed;
|
|
61
|
+
background: var(--appkit-color-bg);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.dark .appkit-input:disabled {
|
|
65
|
+
background: rgba(30, 41, 59, 0.4);
|
|
28
66
|
}
|