@mohasinac/appkit 3.4.8 → 3.5.1

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.
Files changed (605) hide show
  1. package/dist/_internal/client/features/classified/ClassifiedDetailView.js +1 -1
  2. package/dist/_internal/client/features/digital-code/CodeRevealPanel.js +1 -1
  3. package/dist/_internal/client/features/digital-code/DigitalCodeDetailView.js +1 -1
  4. package/dist/_internal/client/features/filters/filter-load-options.js +10 -9
  5. package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +6 -1
  6. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +11 -4
  7. package/dist/_internal/client/features/live/LiveItemDetailView.js +2 -2
  8. package/dist/_internal/client/features/maintenance/views/AnalysisRunnerView.js +10 -3
  9. package/dist/_internal/client/features/maintenance/views/ServerErrorsListView.js +2 -2
  10. package/dist/_internal/client/scaffolds/DashboardScaffold.js +3 -1
  11. package/dist/_internal/server/features/checkout/actions.d.ts +16 -0
  12. package/dist/_internal/server/features/checkout/actions.js +149 -35
  13. package/dist/_internal/server/features/checkout/bundle-expansion.d.ts +31 -0
  14. package/dist/_internal/server/features/checkout/bundle-expansion.js +41 -0
  15. package/dist/_internal/server/features/lottery/actions.js +14 -4
  16. package/dist/_internal/server/features/maintenance/analyze.js +4 -2
  17. package/dist/_internal/server/features/orders/actions.js +9 -0
  18. package/dist/_internal/server/features/orders/adapters.js +19 -0
  19. package/dist/_internal/server/features/seo/robots.js +1 -1
  20. package/dist/_internal/server/functions/firestore.d.ts +47 -1
  21. package/dist/_internal/server/functions/firestore.js +56 -1
  22. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  23. package/dist/_internal/server/functions/scheduled.js +9 -1
  24. package/dist/_internal/server/jobs/core/catalogueImageStalenessReminder.d.ts +10 -0
  25. package/dist/_internal/server/jobs/core/catalogueImageStalenessReminder.js +49 -0
  26. package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +32 -0
  27. package/dist/_internal/server/jobs/core/hardBanCascade.d.ts +26 -0
  28. package/dist/_internal/server/jobs/core/hardBanCascade.js +181 -0
  29. package/dist/_internal/server/jobs/core/index.d.ts +4 -1
  30. package/dist/_internal/server/jobs/core/index.js +4 -1
  31. package/dist/_internal/server/jobs/core/jobRunners.d.ts +28 -0
  32. package/dist/_internal/server/jobs/core/jobRunners.js +37 -0
  33. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.d.ts +15 -0
  34. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.js +38 -0
  35. package/dist/_internal/server/jobs/core/onJobCreated.d.ts +22 -0
  36. package/dist/_internal/server/jobs/core/onJobCreated.js +59 -0
  37. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.d.ts +6 -1
  38. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +5 -2
  39. package/dist/_internal/server/jobs/handlers/catalogueImageStalenessReminder.d.ts +2 -0
  40. package/dist/_internal/server/jobs/handlers/catalogueImageStalenessReminder.js +2 -0
  41. package/dist/_internal/server/jobs/handlers/index.d.ts +6 -0
  42. package/dist/_internal/server/jobs/handlers/index.js +8 -0
  43. package/dist/_internal/server/jobs/handlers/onCatalogueSubmittedForApproval.d.ts +12 -0
  44. package/dist/_internal/server/jobs/handlers/onCatalogueSubmittedForApproval.js +20 -0
  45. package/dist/_internal/server/jobs/handlers/onJobCreated.d.ts +3 -0
  46. package/dist/_internal/server/jobs/handlers/onJobCreated.js +9 -0
  47. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.d.ts +25 -0
  48. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +71 -0
  49. package/dist/_internal/server/jobs/handlers/onShipmentDeleted.d.ts +14 -0
  50. package/dist/_internal/server/jobs/handlers/onShipmentDeleted.js +23 -0
  51. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.d.ts +17 -0
  52. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.js +26 -0
  53. package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.js +3 -1
  54. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  55. package/dist/_internal/shared/actions/action-registry.js +136 -0
  56. package/dist/_internal/shared/features/blog/schema.d.ts +8 -8
  57. package/dist/_internal/shared/features/brands/schema.d.ts +4 -4
  58. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +8 -8
  59. package/dist/_internal/shared/features/events/schema.d.ts +4 -4
  60. package/dist/_internal/shared/features/products/schema.d.ts +8 -8
  61. package/dist/_internal/shared/features/promotions/schema.d.ts +4 -4
  62. package/dist/_internal/shared/features/reviews/schema.d.ts +4 -4
  63. package/dist/client/api/useFeatureFlags.d.ts +22 -0
  64. package/dist/client/api/useFeatureFlags.js +27 -0
  65. package/dist/client/observability/reportClientError.js +3 -2
  66. package/dist/client.d.ts +4 -2
  67. package/dist/client.js +2 -1
  68. package/dist/configs/next.js +1 -0
  69. package/dist/constants/api-endpoints.d.ts +279 -3
  70. package/dist/constants/api-endpoints.js +130 -2
  71. package/dist/core/hooks/useSyncManager.js +5 -4
  72. package/dist/errors/conflict-error.d.ts +4 -0
  73. package/dist/errors/conflict-error.js +6 -0
  74. package/dist/errors/index.d.ts +1 -0
  75. package/dist/errors/index.js +1 -0
  76. package/dist/features/about/components/FeesView.js +2 -2
  77. package/dist/features/about/components/HelpPageView.js +2 -2
  78. package/dist/features/about/components/HowAuctionsWorkView.js +2 -2
  79. package/dist/features/about/components/HowCheckoutWorksView.js +2 -2
  80. package/dist/features/about/components/HowEmiWorksView.js +2 -2
  81. package/dist/features/about/components/HowOffersWorkView.js +3 -3
  82. package/dist/features/about/components/HowOrdersWorkView.js +3 -3
  83. package/dist/features/about/components/HowPayoutsWorkView.js +2 -2
  84. package/dist/features/about/components/HowPreOrdersWorkView.js +2 -2
  85. package/dist/features/about/components/HowReviewsWorkView.js +2 -2
  86. package/dist/features/about/components/PublicProfileView.d.ts +8 -1
  87. package/dist/features/about/components/PublicProfileView.js +11 -9
  88. package/dist/features/about/components/SecurityPrivacyView.js +2 -2
  89. package/dist/features/about/components/UnauthorizedView.js +2 -2
  90. package/dist/features/account/components/AddressBook.js +1 -1
  91. package/dist/features/account/components/AddressesIndexListing.js +1 -1
  92. package/dist/features/account/components/NotificationBell.js +5 -5
  93. package/dist/features/account/components/NotificationPreferencesPanel.js +5 -2
  94. package/dist/features/account/components/UserOffersPanel.js +5 -4
  95. package/dist/features/account/components/UserSidebar.js +2 -2
  96. package/dist/features/account/components/UserSupportView.js +3 -3
  97. package/dist/features/account/schemas/index.d.ts +12 -12
  98. package/dist/features/addresses/schemas/index.d.ts +6 -6
  99. package/dist/features/admin/components/AdminAdEditorView.js +3 -3
  100. package/dist/features/admin/components/AdminAddressEditorView.js +3 -3
  101. package/dist/features/admin/components/AdminAdsView.js +3 -3
  102. package/dist/features/admin/components/AdminBlogEditorView.js +1 -1
  103. package/dist/features/admin/components/AdminBlogView.js +12 -15
  104. package/dist/features/admin/components/AdminBrandEditorView.js +1 -1
  105. package/dist/features/admin/components/AdminBrandsView.js +12 -13
  106. package/dist/features/admin/components/AdminBundleEditorView.js +5 -4
  107. package/dist/features/admin/components/AdminBundlesView.js +32 -23
  108. package/dist/features/admin/components/AdminCarouselEditorView.js +5 -5
  109. package/dist/features/admin/components/AdminCarouselView.js +2 -2
  110. package/dist/features/admin/components/AdminCatalogGuideView.js +1 -1
  111. package/dist/features/admin/components/AdminCategoriesView.js +12 -13
  112. package/dist/features/admin/components/AdminCategoryEditorView.js +2 -2
  113. package/dist/features/admin/components/AdminContactEditorView.js +2 -2
  114. package/dist/features/admin/components/AdminCouponEditorView.d.ts +10 -1
  115. package/dist/features/admin/components/AdminCouponEditorView.js +7 -2
  116. package/dist/features/admin/components/AdminCouponsView.js +32 -27
  117. package/dist/features/admin/components/AdminEmployeeEditorView.js +3 -3
  118. package/dist/features/admin/components/AdminFaqEditorView.js +1 -1
  119. package/dist/features/admin/components/AdminFaqsView.js +20 -20
  120. package/dist/features/admin/components/AdminFeatureEditorView.js +5 -5
  121. package/dist/features/admin/components/AdminFeaturesView.js +9 -10
  122. package/dist/features/admin/components/AdminFilterBar.js +1 -1
  123. package/dist/features/admin/components/AdminFulfillmentView.js +4 -4
  124. package/dist/features/admin/components/AdminGuideHubView.js +2 -2
  125. package/dist/features/admin/components/AdminMediaView.js +3 -2
  126. package/dist/features/admin/components/AdminNavigationView.js +1 -1
  127. package/dist/features/admin/components/AdminOrderEditorView.js +3 -3
  128. package/dist/features/admin/components/AdminOrdersView.js +21 -30
  129. package/dist/features/admin/components/AdminPageHeader.js +3 -3
  130. package/dist/features/admin/components/AdminPayoutsView.js +8 -8
  131. package/dist/features/admin/components/AdminPrizeDrawsView.js +8 -9
  132. package/dist/features/admin/components/AdminProductEditorView.d.ts +9 -1
  133. package/dist/features/admin/components/AdminProductEditorView.js +7 -4
  134. package/dist/features/admin/components/AdminProductsView.js +30 -41
  135. package/dist/features/admin/components/AdminReviewsView.js +14 -17
  136. package/dist/features/admin/components/AdminScammerEditorView.js +5 -5
  137. package/dist/features/admin/components/AdminSectionsView.js +3 -3
  138. package/dist/features/admin/components/AdminSessionsView.js +8 -10
  139. package/dist/features/admin/components/AdminSidebar.js +2 -2
  140. package/dist/features/admin/components/AdminSiteSettingsView.js +10 -3
  141. package/dist/features/admin/components/AdminStoreEditorView.js +4 -5
  142. package/dist/features/admin/components/AdminStoresView.js +18 -13
  143. package/dist/features/admin/components/AdminSupportTicketDetailView.js +7 -7
  144. package/dist/features/admin/components/AdminTeamView.js +9 -5
  145. package/dist/features/admin/components/AdminUsersView.js +19 -15
  146. package/dist/features/admin/components/AdminViewCards.js +5 -5
  147. package/dist/features/admin/components/DashboardStats.js +1 -1
  148. package/dist/features/admin/components/DataListingView.js +2 -2
  149. package/dist/features/admin/components/DataTable.js +2 -2
  150. package/dist/features/admin/components/DrawerFormFooter.js +1 -1
  151. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +2 -2
  152. package/dist/features/admin/components/analytics/AdminStatCard.js +1 -1
  153. package/dist/features/admin/hooks/useAdminListing.d.ts +3 -2
  154. package/dist/features/admin/hooks/useAdminListing.js +8 -2
  155. package/dist/features/admin/permission-map.js +2 -0
  156. package/dist/features/admin/schemas/firestore.d.ts +7 -0
  157. package/dist/features/admin/schemas/firestore.js +4 -0
  158. package/dist/features/auctions/components/AuctionBidsTable.js +1 -1
  159. package/dist/features/auctions/components/AuctionDetailPageView.js +7 -7
  160. package/dist/features/auctions/components/MarketplaceAuctionCard.js +3 -3
  161. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +4 -4
  162. package/dist/features/auctions/components/PlaceBidFormClient.js +1 -1
  163. package/dist/features/auctions/schemas/index.d.ts +16 -16
  164. package/dist/features/auth/permissions/constants.d.ts +1 -1
  165. package/dist/features/auth/permissions/constants.js +2 -0
  166. package/dist/features/auth/schemas/index.d.ts +6 -6
  167. package/dist/features/before-after/schemas/index.d.ts +3 -3
  168. package/dist/features/blog/actions/blog-actions.d.ts +32 -32
  169. package/dist/features/blog/components/BlogFeaturedCard.js +2 -2
  170. package/dist/features/blog/components/BlogIndexListing.js +2 -2
  171. package/dist/features/blog/components/BlogListView.js +4 -4
  172. package/dist/features/blog/components/BlogPostView.js +4 -4
  173. package/dist/features/blog/schemas/index.d.ts +77 -77
  174. package/dist/features/cart/components/CartDrawer.js +2 -2
  175. package/dist/features/catalogue/actions/approve-catalogue-listing.d.ts +12 -0
  176. package/dist/features/catalogue/actions/approve-catalogue-listing.js +50 -0
  177. package/dist/features/catalogue/actions/list-from-catalogue.d.ts +17 -0
  178. package/dist/features/catalogue/actions/list-from-catalogue.js +50 -0
  179. package/dist/features/catalogue/actions/submit-for-approval.d.ts +8 -0
  180. package/dist/features/catalogue/actions/submit-for-approval.js +30 -0
  181. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.d.ts +2 -0
  182. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +53 -0
  183. package/dist/features/catalogue/components/CatalogueItemEditorView.d.ts +7 -0
  184. package/dist/features/catalogue/components/CatalogueItemEditorView.js +79 -0
  185. package/dist/features/catalogue/components/PublicCatalogueView.d.ts +5 -0
  186. package/dist/features/catalogue/components/PublicCatalogueView.js +22 -0
  187. package/dist/features/catalogue/components/UserCatalogueView.d.ts +12 -0
  188. package/dist/features/catalogue/components/UserCatalogueView.js +51 -0
  189. package/dist/features/catalogue/index.d.ts +12 -0
  190. package/dist/features/catalogue/index.js +9 -0
  191. package/dist/features/catalogue/repository/catalogue.repository.d.ts +39 -0
  192. package/dist/features/catalogue/repository/catalogue.repository.js +68 -0
  193. package/dist/features/catalogue/schemas/firestore.d.ts +47 -0
  194. package/dist/features/catalogue/schemas/firestore.js +22 -0
  195. package/dist/features/catalogue/schemas/index.d.ts +2 -0
  196. package/dist/features/catalogue/schemas/index.js +2 -0
  197. package/dist/features/catalogue/schemas/validation.d.ts +71 -0
  198. package/dist/features/catalogue/schemas/validation.js +25 -0
  199. package/dist/features/catalogue/utils/freshness.d.ts +10 -0
  200. package/dist/features/catalogue/utils/freshness.js +15 -0
  201. package/dist/features/catalogue/utils/product-from-item.d.ts +15 -0
  202. package/dist/features/catalogue/utils/product-from-item.js +34 -0
  203. package/dist/features/categories/components/BrandDetailPageView.js +1 -1
  204. package/dist/features/categories/components/BrandDetailTabs.js +2 -2
  205. package/dist/features/categories/components/BundleCollage.js +2 -2
  206. package/dist/features/categories/components/BundleItemsPicker.js +3 -2
  207. package/dist/features/categories/components/CategoriesIndexListing.js +8 -6
  208. package/dist/features/categories/components/CategoryBundlesListing.js +10 -4
  209. package/dist/features/categories/components/CategoryDetailPageView.js +1 -1
  210. package/dist/features/categories/components/CategoryDetailTabs.js +2 -2
  211. package/dist/features/categories/components/CategoryGrid.js +3 -3
  212. package/dist/features/categories/components/CategoryProductsListing.js +1 -1
  213. package/dist/features/categories/components/CategorySortSelect.js +1 -1
  214. package/dist/features/categories/components/CategoryStoresListing.js +1 -1
  215. package/dist/features/categories/components/CategoryTableColumns.js +1 -1
  216. package/dist/features/categories/components/CategoryTree.js +2 -2
  217. package/dist/features/categories/components/ConcernCard.js +1 -1
  218. package/dist/features/categories/hooks/useCategories.js +1 -1
  219. package/dist/features/categories/schemas/index.d.ts +32 -32
  220. package/dist/features/classified/components/ClassifiedFilters.js +2 -2
  221. package/dist/features/classified/components/ClassifiedIndexListing.js +9 -3
  222. package/dist/features/collections/schemas/index.d.ts +2 -2
  223. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  224. package/dist/features/consultation/schemas/index.d.ts +10 -10
  225. package/dist/features/contact/components/ContactForm.js +4 -4
  226. package/dist/features/contact/components/ContactInfoSidebar.js +1 -1
  227. package/dist/features/contact/components/ContactPageView.js +2 -1
  228. package/dist/features/copilot/components/AdminCopilotView.js +5 -4
  229. package/dist/features/corporate/schemas/index.d.ts +2 -2
  230. package/dist/features/digital-codes/components/DigitalCodesIndexListing.js +3 -3
  231. package/dist/features/events/components/AdminEventEditorView.js +4 -4
  232. package/dist/features/events/components/AdminEventEntriesView.js +2 -2
  233. package/dist/features/events/components/AdminEventsView.js +8 -8
  234. package/dist/features/events/components/EventBanner.js +1 -1
  235. package/dist/features/events/components/EventCard.js +3 -3
  236. package/dist/features/events/components/EventLeaderboard.js +1 -1
  237. package/dist/features/events/components/EventOfferCard.js +1 -1
  238. package/dist/features/events/components/EventPollWidget.js +6 -5
  239. package/dist/features/events/components/EventRaffleEntryForm.js +1 -1
  240. package/dist/features/events/components/EventRaffleWinnerView.js +5 -5
  241. package/dist/features/events/components/EventRafflesSection.js +1 -1
  242. package/dist/features/events/components/EventSaleBanner.js +1 -1
  243. package/dist/features/events/components/EventsIndexListing.js +4 -2
  244. package/dist/features/events/components/EventsListView.js +2 -2
  245. package/dist/features/events/components/SpinWheelView.js +11 -5
  246. package/dist/features/events/schemas/index.d.ts +100 -100
  247. package/dist/features/faq/actions/faq-actions.d.ts +6 -6
  248. package/dist/features/faq/components/ContactCTA.js +3 -3
  249. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  250. package/dist/features/faq/components/FAQHelpfulButtons.js +3 -3
  251. package/dist/features/faq/schemas/index.d.ts +12 -12
  252. package/dist/features/filters/AsyncFacetSection.js +4 -4
  253. package/dist/features/filters/FilterFacetSection.js +8 -8
  254. package/dist/features/filters/RangeFilter.js +2 -2
  255. package/dist/features/filters/SwitchFilter.js +1 -1
  256. package/dist/features/forms/Checkbox.js +2 -8
  257. package/dist/features/forms/Input.js +2 -1
  258. package/dist/features/forms/Radio.js +3 -3
  259. package/dist/features/forms/Select.d.ts +1 -1
  260. package/dist/features/forms/Select.js +3 -2
  261. package/dist/features/forms/Slider.js +5 -11
  262. package/dist/features/forms/Textarea.js +2 -1
  263. package/dist/features/grouped/schemas/index.d.ts +6 -6
  264. package/dist/features/homepage/actions/homepage-section-actions.d.ts +4 -4
  265. package/dist/features/homepage/components/AdvertisementBanner.js +4 -4
  266. package/dist/features/homepage/components/AnnouncementBar.js +3 -3
  267. package/dist/features/homepage/components/BeforeAfterCard.js +1 -1
  268. package/dist/features/homepage/components/BrandsSection.js +9 -9
  269. package/dist/features/homepage/components/CTABannerSection.js +1 -1
  270. package/dist/features/homepage/components/CharacterHotspot.js +4 -4
  271. package/dist/features/homepage/components/CharacterHotspotForm.js +15 -13
  272. package/dist/features/homepage/components/CollectionCardsSection.js +1 -1
  273. package/dist/features/homepage/components/CustomCardsSection.js +6 -6
  274. package/dist/features/homepage/components/CustomerReviewsSection.js +2 -2
  275. package/dist/features/homepage/components/FAQSection.js +2 -2
  276. package/dist/features/homepage/components/FeaturedBundlesSection.js +3 -3
  277. package/dist/features/homepage/components/FeaturedResultsSection.js +2 -2
  278. package/dist/features/homepage/components/GoogleReviewsSection.js +6 -6
  279. package/dist/features/homepage/components/HeroBanner.js +1 -1
  280. package/dist/features/homepage/components/HeroCarousel.js +5 -4
  281. package/dist/features/homepage/components/HeroSection.js +1 -7
  282. package/dist/features/homepage/components/HomepageSkeleton.js +1 -1
  283. package/dist/features/homepage/components/HowItWorksInfoView.js +1 -1
  284. package/dist/features/homepage/components/HowItWorksSection.js +2 -2
  285. package/dist/features/homepage/components/NewsletterBanner.js +2 -2
  286. package/dist/features/homepage/components/NewsletterSection.js +1 -1
  287. package/dist/features/homepage/components/PromoGrid.js +1 -1
  288. package/dist/features/homepage/components/SectionCarousel.js +6 -6
  289. package/dist/features/homepage/components/SecurityHighlightsSection.js +2 -2
  290. package/dist/features/homepage/components/ShopByCategorySection.js +10 -10
  291. package/dist/features/homepage/components/SiteFeaturesSection.js +2 -2
  292. package/dist/features/homepage/components/SocialFeedSection.js +5 -5
  293. package/dist/features/homepage/components/SocialPostCard.js +1 -1
  294. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  295. package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
  296. package/dist/features/homepage/components/TrustBadges.js +1 -1
  297. package/dist/features/homepage/components/TrustFeaturesSection.js +2 -2
  298. package/dist/features/homepage/components/TrustIndicatorsSection.js +2 -2
  299. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  300. package/dist/features/homepage/components/WhatsAppCommunitySection.js +1 -1
  301. package/dist/features/homepage/hooks/useActiveAd.js +2 -1
  302. package/dist/features/homepage/schemas/firestore.d.ts +10 -0
  303. package/dist/features/homepage/schemas/index.d.ts +116 -116
  304. package/dist/features/jobs/actions/enqueue-job.d.ts +24 -0
  305. package/dist/features/jobs/actions/enqueue-job.js +44 -0
  306. package/dist/features/jobs/repository/jobs.repository.d.ts +21 -0
  307. package/dist/features/jobs/repository/jobs.repository.js +48 -0
  308. package/dist/features/jobs/schemas/firestore.d.ts +54 -0
  309. package/dist/features/jobs/schemas/firestore.js +24 -0
  310. package/dist/features/layout/AppLayoutShell.js +17 -11
  311. package/dist/features/layout/AutoBreadcrumbs.js +1 -1
  312. package/dist/features/layout/BackToTop.js +2 -2
  313. package/dist/features/layout/BottomActions.js +7 -7
  314. package/dist/features/layout/BottomNavItem.js +2 -2
  315. package/dist/features/layout/BottomNavLayout.js +13 -4
  316. package/dist/features/layout/BottomNavbar.d.ts +9 -1
  317. package/dist/features/layout/BottomNavbar.js +12 -5
  318. package/dist/features/layout/BottomSheet.js +1 -1
  319. package/dist/features/layout/Breadcrumbs.js +1 -1
  320. package/dist/features/layout/FooterLayout.js +2 -2
  321. package/dist/features/layout/NavItem.js +3 -3
  322. package/dist/features/layout/NavbarLayout.js +6 -6
  323. package/dist/features/layout/SidebarLayout.d.ts +3 -0
  324. package/dist/features/layout/SidebarLayout.js +3 -3
  325. package/dist/features/layout/TitleBarLayout.js +4 -4
  326. package/dist/features/live/components/LiveItemFilters.js +2 -2
  327. package/dist/features/live/components/LiveItemsIndexListing.js +3 -3
  328. package/dist/features/lottery/types/index.d.ts +3 -1
  329. package/dist/features/lottery/types/index.js +16 -3
  330. package/dist/features/loyalty/components/CoinsDisplay.js +2 -2
  331. package/dist/features/media/MediaImage.d.ts +6 -1
  332. package/dist/features/media/MediaImage.js +10 -4
  333. package/dist/features/media/MediaLightbox.js +1 -1
  334. package/dist/features/media/MediaPickerModal.js +4 -3
  335. package/dist/features/media/MediaVideo.js +1 -1
  336. package/dist/features/media/modals/ImageCropModal.js +1 -1
  337. package/dist/features/media/modals/ImageEditor.js +1 -1
  338. package/dist/features/media/repository/media-assets.repository.d.ts +9 -0
  339. package/dist/features/media/types/index.d.ts +4 -4
  340. package/dist/features/media/upload/MediaUploadField.js +3 -3
  341. package/dist/features/media/upload/MediaUploadList.js +1 -1
  342. package/dist/features/messages/hooks/useConversation.js +4 -3
  343. package/dist/features/messages/hooks/useConversations.js +2 -1
  344. package/dist/features/messages/schemas/index.d.ts +6 -6
  345. package/dist/features/orders/components/MarketplaceOrderCard.js +1 -1
  346. package/dist/features/orders/components/OrderPaymentSummary.d.ts +16 -0
  347. package/dist/features/orders/components/OrderPaymentSummary.js +32 -0
  348. package/dist/features/orders/components/OrderSiblingPayments.js +1 -1
  349. package/dist/features/orders/components/OrdersList.d.ts +7 -2
  350. package/dist/features/orders/components/OrdersList.js +5 -5
  351. package/dist/features/orders/components/RefundHistoryTable.js +1 -1
  352. package/dist/features/orders/components/RefundRequestView.js +1 -1
  353. package/dist/features/orders/components/index.d.ts +2 -0
  354. package/dist/features/orders/components/index.js +1 -0
  355. package/dist/features/orders/repository/orders.repository.d.ts +8 -0
  356. package/dist/features/orders/repository/orders.repository.js +24 -0
  357. package/dist/features/orders/schemas/firestore.d.ts +59 -0
  358. package/dist/features/orders/schemas/firestore.js +5 -0
  359. package/dist/features/orders/schemas/index.d.ts +91 -40
  360. package/dist/features/orders/schemas/index.js +10 -0
  361. package/dist/features/orders/types/index.d.ts +15 -0
  362. package/dist/features/payments/schemas/index.d.ts +12 -12
  363. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +5 -5
  364. package/dist/features/pre-orders/components/PreOrderActionsClient.js +1 -1
  365. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  366. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +7 -7
  367. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +3 -3
  368. package/dist/features/pre-orders/schemas/index.d.ts +12 -12
  369. package/dist/features/products/columns/productTableColumns.js +2 -2
  370. package/dist/features/products/components/AuctionsIndexListing.js +3 -3
  371. package/dist/features/products/components/CompareOverlay.js +15 -10
  372. package/dist/features/products/components/CustomFieldsEditor.js +2 -2
  373. package/dist/features/products/components/CustomSectionsEditor.js +3 -3
  374. package/dist/features/products/components/FeatureBadge.js +2 -2
  375. package/dist/features/products/components/GroupSettingsPanel.js +5 -4
  376. package/dist/features/products/components/MakeOfferButton.js +4 -4
  377. package/dist/features/products/components/MarketplaceBundleCard.js +3 -2
  378. package/dist/features/products/components/MarketplacePrizeDrawCard.js +1 -1
  379. package/dist/features/products/components/PrizeDrawCollage.js +6 -6
  380. package/dist/features/products/components/PrizeDrawDetailPageView.js +5 -5
  381. package/dist/features/products/components/PrizeDrawEntryActions.js +1 -1
  382. package/dist/features/products/components/PrizeDrawItemsEditor.js +4 -4
  383. package/dist/features/products/components/PrizeDrawsIndexListing.js +11 -4
  384. package/dist/features/products/components/PrizeDrawsSection.js +1 -1
  385. package/dist/features/products/components/PrizeRevealModal.js +9 -4
  386. package/dist/features/products/components/ProductDetailActions.js +2 -1
  387. package/dist/features/products/components/ProductDetailPageView.js +16 -16
  388. package/dist/features/products/components/ProductFeaturesSelector.js +5 -5
  389. package/dist/features/products/components/ProductForm.js +1 -1
  390. package/dist/features/products/components/ProductGalleryClient.js +5 -3
  391. package/dist/features/products/components/ProductGrid.js +11 -11
  392. package/dist/features/products/components/ProductTabs.js +2 -2
  393. package/dist/features/products/components/ProductTabsShell.js +2 -1
  394. package/dist/features/products/components/ProductsIndexListing.js +6 -1
  395. package/dist/features/products/components/ShareButton.js +2 -1
  396. package/dist/features/products/components/ShowGroupSection.js +9 -5
  397. package/dist/features/products/components/SublistingCarouselSection.js +8 -4
  398. package/dist/features/products/constants/action-defs.d.ts +10 -2
  399. package/dist/features/products/constants/action-defs.js +20 -2
  400. package/dist/features/products/schemas/firestore.d.ts +5 -0
  401. package/dist/features/products/schemas/index.d.ts +40 -40
  402. package/dist/features/products/schemas/product-features.validators.d.ts +14 -14
  403. package/dist/features/promotions/components/CouponCard.js +13 -7
  404. package/dist/features/promotions/components/CouponsIndexListing.js +4 -6
  405. package/dist/features/promotions/components/PromotionsView.js +2 -2
  406. package/dist/features/promotions/schemas/index.d.ts +26 -26
  407. package/dist/features/reviews/components/ReviewDetailPageView.js +1 -1
  408. package/dist/features/reviews/components/ReviewDetailShell.js +11 -11
  409. package/dist/features/reviews/components/ReviewModal.js +1 -1
  410. package/dist/features/reviews/components/ReviewsIndexListing.js +2 -2
  411. package/dist/features/reviews/components/ReviewsList.js +2 -2
  412. package/dist/features/reviews/schemas/index.d.ts +22 -22
  413. package/dist/features/scams/components/ScamAwarenessModal.js +2 -2
  414. package/dist/features/scams/components/ScamProfileView.js +3 -3
  415. package/dist/features/scams/components/ScamRegistryView.js +2 -2
  416. package/dist/features/scams/schemas/index.d.ts +20 -20
  417. package/dist/features/search/components/Search.js +9 -9
  418. package/dist/features/search/components/SearchFiltersRow.js +1 -1
  419. package/dist/features/search/components/SearchResultsSection.js +3 -3
  420. package/dist/features/search/components/SearchView.js +1 -1
  421. package/dist/features/search/hooks/useNavSuggestions.js +2 -1
  422. package/dist/features/search/hooks/useSearch.js +2 -2
  423. package/dist/features/search/schemas/index.d.ts +3 -3
  424. package/dist/features/seller/components/BrandInlineSelect.js +2 -2
  425. package/dist/features/seller/components/CategoryInlineSelect.js +2 -2
  426. package/dist/features/seller/components/QuickProductForm.js +1 -1
  427. package/dist/features/seller/components/SellerAddressesView.js +4 -4
  428. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +3 -3
  429. package/dist/features/seller/components/SellerAnalyticsView.js +2 -2
  430. package/dist/features/seller/components/SellerArtView.js +11 -11
  431. package/dist/features/seller/components/SellerAuctionsView.js +11 -11
  432. package/dist/features/seller/components/SellerBidsView.js +3 -3
  433. package/dist/features/seller/components/SellerBundlesView.js +12 -12
  434. package/dist/features/seller/components/SellerClassifiedView.js +11 -11
  435. package/dist/features/seller/components/SellerCouponEditorView.js +2 -2
  436. package/dist/features/seller/components/SellerDigitalCodesView.js +11 -11
  437. package/dist/features/seller/components/SellerFeaturesView.js +4 -4
  438. package/dist/features/seller/components/SellerLiveView.js +11 -11
  439. package/dist/features/seller/components/SellerOffersPanel.js +3 -2
  440. package/dist/features/seller/components/SellerOrdersView.js +2 -2
  441. package/dist/features/seller/components/SellerPayoutMethodsView.js +1 -1
  442. package/dist/features/seller/components/SellerPayoutRequestView.js +6 -5
  443. package/dist/features/seller/components/SellerPayoutSettingsView.js +5 -4
  444. package/dist/features/seller/components/SellerPreOrdersView.js +1 -1
  445. package/dist/features/seller/components/SellerPrizeDrawsView.js +1 -1
  446. package/dist/features/seller/components/SellerProductShell.js +20 -6
  447. package/dist/features/seller/components/SellerProductsCards.js +3 -3
  448. package/dist/features/seller/components/SellerProductsView.js +4 -4
  449. package/dist/features/seller/components/SellerReviewsView.js +7 -6
  450. package/dist/features/seller/components/SellerShippingView.js +2 -1
  451. package/dist/features/seller/components/SellerSidebar.js +5 -5
  452. package/dist/features/seller/components/SellerStickersView.js +11 -11
  453. package/dist/features/seller/components/SellerTemplatesView.js +1 -1
  454. package/dist/features/seller/schemas/index.d.ts +20 -20
  455. package/dist/features/server-errors/schemas/index.d.ts +6 -6
  456. package/dist/features/shell/CommandPalette.d.ts +27 -0
  457. package/dist/features/shell/CommandPalette.js +92 -0
  458. package/dist/features/shell/FormShell.js +4 -3
  459. package/dist/features/shell/QuickFormDrawer.js +3 -2
  460. package/dist/features/shell/StepForm.js +2 -2
  461. package/dist/features/shell/index.d.ts +2 -0
  462. package/dist/features/shell/index.js +1 -0
  463. package/dist/features/shipments/components/AdminShipmentEditorView.d.ts +7 -0
  464. package/dist/features/shipments/components/AdminShipmentEditorView.js +123 -0
  465. package/dist/features/shipments/components/AdminShipmentLotItemsView.d.ts +6 -0
  466. package/dist/features/shipments/components/AdminShipmentLotItemsView.js +96 -0
  467. package/dist/features/shipments/components/AdminShipmentProjectionsView.d.ts +9 -0
  468. package/dist/features/shipments/components/AdminShipmentProjectionsView.js +44 -0
  469. package/dist/features/shipments/components/AdminShipmentsView.d.ts +8 -0
  470. package/dist/features/shipments/components/AdminShipmentsView.js +82 -0
  471. package/dist/features/shipments/components/ShipmentItemLinkModal.d.ts +15 -0
  472. package/dist/features/shipments/components/ShipmentItemLinkModal.js +37 -0
  473. package/dist/features/shipments/hooks/useShipments.d.ts +69 -0
  474. package/dist/features/shipments/hooks/useShipments.js +96 -0
  475. package/dist/features/shipments/index.d.ts +10 -0
  476. package/dist/features/shipments/index.js +7 -0
  477. package/dist/features/shipments/manifest.d.ts +2 -0
  478. package/dist/features/shipments/manifest.js +26 -0
  479. package/dist/features/shipments/repository/shipment-items.repository.d.ts +56 -0
  480. package/dist/features/shipments/repository/shipment-items.repository.js +78 -0
  481. package/dist/features/shipments/repository/shipment-lots.repository.d.ts +48 -0
  482. package/dist/features/shipments/repository/shipment-lots.repository.js +55 -0
  483. package/dist/features/shipments/repository/shipments.repository.d.ts +50 -0
  484. package/dist/features/shipments/repository/shipments.repository.js +77 -0
  485. package/dist/features/shipments/schemas/firestore.d.ts +150 -0
  486. package/dist/features/shipments/schemas/firestore.js +76 -0
  487. package/dist/features/shipments/schemas/index.d.ts +2 -0
  488. package/dist/features/shipments/schemas/index.js +2 -0
  489. package/dist/features/shipments/schemas/validation.d.ts +350 -0
  490. package/dist/features/shipments/schemas/validation.js +96 -0
  491. package/dist/features/shipments/utils/cost-allocation.d.ts +25 -0
  492. package/dist/features/shipments/utils/cost-allocation.js +83 -0
  493. package/dist/features/site-settings/components/ActionPermissionsManager.js +2 -2
  494. package/dist/features/stores/components/InteractiveStoreCard.js +2 -2
  495. package/dist/features/stores/components/StoreAboutView.js +1 -1
  496. package/dist/features/stores/components/StoreAuctionsListing.js +3 -3
  497. package/dist/features/stores/components/StoreAuctionsView.js +1 -1
  498. package/dist/features/stores/components/StoreCapabilitiesGuideView.js +1 -1
  499. package/dist/features/stores/components/StoreClassifiedsListing.js +2 -2
  500. package/dist/features/stores/components/StoreDetailLayoutView.js +1 -1
  501. package/dist/features/stores/components/StoreDigitalCodesListing.js +2 -2
  502. package/dist/features/stores/components/StoreFinanceGuideView.js +2 -2
  503. package/dist/features/stores/components/StoreGuideHubView.js +2 -2
  504. package/dist/features/stores/components/StoreHeader.js +4 -4
  505. package/dist/features/stores/components/StoreLiveItemsListing.js +2 -2
  506. package/dist/features/stores/components/StoreNavTabs.js +2 -2
  507. package/dist/features/stores/components/StoreOrdersGuideView.js +1 -1
  508. package/dist/features/stores/components/StorePreOrdersListing.js +3 -3
  509. package/dist/features/stores/components/StoreProductsListing.js +1 -1
  510. package/dist/features/stores/components/StoreReviewsListing.js +2 -2
  511. package/dist/features/stores/components/StoreReviewsView.js +1 -1
  512. package/dist/features/stores/components/StoreSettingsGuideView.js +1 -1
  513. package/dist/features/stores/components/StoresIndexListing.js +9 -3
  514. package/dist/features/stores/schemas/index.d.ts +10 -10
  515. package/dist/features/support/schemas/index.d.ts +22 -22
  516. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +3 -3
  517. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +1 -1
  518. package/dist/features/wishlist/hooks/useWishlistCount.js +1 -2
  519. package/dist/index.d.ts +44 -1
  520. package/dist/index.js +37 -1
  521. package/dist/next/routing/route-map.d.ts +18 -0
  522. package/dist/next/routing/route-map.js +9 -0
  523. package/dist/react/hooks/useVisualViewportInset.d.ts +1 -0
  524. package/dist/react/hooks/useVisualViewportInset.js +59 -0
  525. package/dist/react/index.d.ts +1 -0
  526. package/dist/react/index.js +1 -0
  527. package/dist/repositories/index.d.ts +5 -0
  528. package/dist/repositories/index.js +5 -0
  529. package/dist/schemas/registry.d.ts +398 -364
  530. package/dist/schemas/sieve.d.ts +2 -2
  531. package/dist/schemas/webhooks/google-oauth.d.ts +2 -2
  532. package/dist/schemas/webhooks/razorpay.d.ts +100 -100
  533. package/dist/seed/_helpers/media.js +1 -0
  534. package/dist/seed/actions/demo-seed-actions.d.ts +1 -1
  535. package/dist/seed/catalogue-seed-data.d.ts +2 -0
  536. package/dist/seed/catalogue-seed-data.js +112 -0
  537. package/dist/seed/grouped-listings-seed-data.d.ts +5 -0
  538. package/dist/seed/homepage-sections-seed-data.js +0 -1
  539. package/dist/seed/index.d.ts +2 -0
  540. package/dist/seed/index.js +2 -0
  541. package/dist/seed/manifest.js +6 -0
  542. package/dist/seed/products-preorders-seed-data.d.ts +5 -0
  543. package/dist/seed/shipments-seed-data.d.ts +5 -0
  544. package/dist/seed/shipments-seed-data.js +185 -0
  545. package/dist/server.d.ts +4 -0
  546. package/dist/server.js +5 -0
  547. package/dist/styles.css +75 -19
  548. package/dist/tailwind-utilities.css +1 -1
  549. package/dist/tokens/index.d.ts +0 -2
  550. package/dist/tokens/index.js +0 -2
  551. package/dist/tokens/tokens.css +12 -2
  552. package/dist/ui/DataTable.js +4 -3
  553. package/dist/ui/components/Button.d.ts +4 -1
  554. package/dist/ui/components/Button.js +11 -5
  555. package/dist/ui/components/Checkbox.d.ts +9 -1
  556. package/dist/ui/components/Checkbox.js +5 -2
  557. package/dist/ui/components/ClaimCouponButton.js +2 -1
  558. package/dist/ui/components/ConfirmDeleteModal.style.css +1 -1
  559. package/dist/ui/components/Drawer.style.css +13 -1
  560. package/dist/ui/components/Dropdown.style.css +2 -2
  561. package/dist/ui/components/FilterDrawer.d.ts +4 -1
  562. package/dist/ui/components/FilterDrawer.js +8 -2
  563. package/dist/ui/components/Form.d.ts +1 -1
  564. package/dist/ui/components/Form.js +2 -2
  565. package/dist/ui/components/FormActionBar.style.css +6 -1
  566. package/dist/ui/components/IconButton.d.ts +6 -1
  567. package/dist/ui/components/IconButton.js +5 -2
  568. package/dist/ui/components/IconButton.style.css +11 -0
  569. package/dist/ui/components/ImageGallery.style.css +2 -0
  570. package/dist/ui/components/ImageLightbox.style.css +1 -0
  571. package/dist/ui/components/ListingFilterDrawer.d.ts +4 -1
  572. package/dist/ui/components/ListingFilterDrawer.js +4 -3
  573. package/dist/ui/components/ListingLayout.style.css +2 -2
  574. package/dist/ui/components/Modal.style.css +1 -1
  575. package/dist/ui/components/Pagination.d.ts +5 -1
  576. package/dist/ui/components/Pagination.js +4 -2
  577. package/dist/ui/components/RowActionMenu.js +1 -1
  578. package/dist/ui/components/RowActionMenu.style.css +1 -1
  579. package/dist/ui/components/Select.d.ts +6 -1
  580. package/dist/ui/components/Select.js +18 -13
  581. package/dist/ui/components/Select.style.css +1 -1
  582. package/dist/ui/components/Semantic.d.ts +13 -0
  583. package/dist/ui/components/Semantic.js +16 -3
  584. package/dist/ui/components/SideDrawer.style.css +16 -4
  585. package/dist/ui/components/SideModal.style.css +1 -1
  586. package/dist/ui/components/StickyToolbar.d.ts +3 -2
  587. package/dist/ui/components/StickyToolbar.js +1 -1
  588. package/dist/ui/components/Textarea.d.ts +5 -0
  589. package/dist/ui/components/Textarea.js +8 -4
  590. package/dist/ui/components/Toast.style.css +3 -0
  591. package/dist/ui/components/UnsavedChangesModal.style.css +1 -1
  592. package/dist/ui/components/surface-tokens.d.ts +121 -113
  593. package/dist/ui/components/surface-tokens.js +110 -104
  594. package/dist/ui/forms/FormShell.d.ts +8 -27
  595. package/dist/ui/forms/FormShell.js +1 -194
  596. package/dist/ui/forms/index.d.ts +2 -2
  597. package/dist/ui/forms/index.js +1 -1
  598. package/dist/ui/index.d.ts +8 -4
  599. package/dist/ui/index.js +4 -2
  600. package/dist/utils/id-generators.d.ts +27 -0
  601. package/dist/utils/id-generators.js +45 -0
  602. package/dist/utils/number.formatter.d.ts +7 -0
  603. package/dist/utils/number.formatter.js +9 -0
  604. package/dist/validation/schemas.d.ts +5 -5
  605. package/package.json +1 -1
@@ -7,6 +7,7 @@ import { MediaImage } from "../../media/MediaImage";
7
7
  import { formatCurrency } from "../../../utils/number.formatter";
8
8
  import { normalizeListingType } from "../utils/listing-type";
9
9
  import { pluginFor } from "../../../_internal/shared/listing-types/_registry";
10
+ import { PRODUCT_ENDPOINTS } from "../../../constants/api-endpoints";
10
11
  const __O = {
11
12
  hidden: "overflow-hidden",
12
13
  xAuto: "overflow-x-auto",
@@ -19,15 +20,15 @@ function MemberThumb({ member, isCurrent }) {
19
20
  const image = member.images?.[0] ?? "";
20
21
  const href = memberHref(member);
21
22
  const price = formatCurrency(member.price, member.currency ?? "INR");
22
- return (_jsxs(Link, { href: href, "aria-label": member.title, className: "flex flex-col items-center gap-1.5 flex-shrink-0 w-16 group", children: [_jsxs(Div, { rounded: "full", className: `relative w-14 h-14 overflow-hidden border-2 transition-all ${isCurrent
23
+ return (_jsxs(Link, { href: href, "aria-label": member.title, className: "flex flex-col items-center gap-[var(--appkit-space-1-5)] flex-shrink-0 w-16 group", children: [_jsxs(Div, { rounded: "full", className: `relative w-14 h-14 overflow-hidden border-2 transition-all ${isCurrent
23
24
  ? "border-[var(--appkit-color-primary)] ring-2 ring-[var(--appkit-color-primary)]/30"
24
- : "border-[var(--appkit-color-border)] group-hover:border-[var(--appkit-color-primary)]"}`, children: [_jsx(MediaImage, { src: image, alt: member.title, size: "card" }), member.isGroupParent && (_jsx(Span, { color: "inverse", rounded: "sm", className: "absolute bottom-0 right-0 bg-[var(--appkit-color-primary)] text-[8px] leading-none px-[0.25rem] py-[0.125rem]", children: "Set" }))] }), _jsx(Text, { className: "text-[10px] leading-tight line-clamp-2 w-full", color: "muted", align: "center", children: member.title }), _jsx(Text, { className: "text-[10px]", color: "primary", weight: "semibold", children: price })] }));
25
+ : "border-[var(--appkit-color-border)] group-hover:border-[var(--appkit-color-primary)]"}`, children: [_jsx(MediaImage, { src: image, alt: member.title, size: "card" }), member.isGroupParent && (_jsx(Span, { color: "inverse", rounded: "sm", className: "absolute bottom-0 right-0 bg-[var(--appkit-color-primary)] text-[8px] leading-none px-[0.25rem] py-[0.125rem]", children: "Set" }))] }), _jsx(Text, { className: "text-[10px] leading-tight line-clamp-2 w-full", color: "muted", align: "start", children: member.title }), _jsx(Text, { className: "text-[10px]", color: "primary", weight: "semibold", children: price })] }));
25
26
  }
26
27
  function GroupTableRow({ member }) {
27
28
  const href = memberHref(member);
28
29
  const price = formatCurrency(member.price, member.currency ?? "INR");
29
30
  const image = member.images?.[0] ?? "";
30
- return (_jsxs(Tr, { className: "last:border-0", border: "subtle", children: [_jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Div, { className: `w-10 h-10 ${__O.hidden}`, rounded: "full", border: "default", children: _jsx(MediaImage, { src: image, alt: member.title, size: "thumbnail" }) }) }), _jsxs(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: [_jsx(Text, { className: "line-clamp-2", color: "primary", size: "sm", weight: "medium", children: member.title }), member.isGroupParent && (_jsx(Span, { weight: "semibold", className: "text-[10px] text-[var(--appkit-color-primary)]", children: "Parent" }))] }), _jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Text, { size: "sm", color: "muted", children: price }) }), _jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Text, { size: "xs", transform: "capitalize", color: "muted", children: member.condition ?? "—" }) }), _jsx(Td, { padding: "xs-tall", children: _jsx(Link, { href: href, className: "text-xs text-[var(--appkit-color-primary)] hover:underline", children: "View \u00E2\u2020\u2019" }) })] }));
31
+ return (_jsxs(Tr, { className: "last:border-0", border: "subtle", children: [_jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Div, { className: `w-10 h-10 ${__O.hidden}`, rounded: "full", border: "default", children: _jsx(MediaImage, { src: image, alt: member.title, size: "thumbnail" }) }) }), _jsxs(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: [_jsx(Text, { className: "line-clamp-2", color: "primary", size: "sm", weight: "medium", children: member.title }), member.isGroupParent && (_jsx(Span, { weight: "semibold", className: "text-[10px] text-[var(--appkit-color-primary)]", children: "Parent" }))] }), _jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Text, { size: "sm", color: "muted", children: price }) }), _jsx(Td, { paddingSide: "pr-sm", padding: "xs-tall", children: _jsx(Text, { size: "xs", transform: "capitalize", color: "muted", children: member.condition ?? "—" }) }), _jsx(Td, { padding: "xs-tall", children: _jsx(Link, { href: href, className: "text-[length:var(--appkit-text-xs)] text-[var(--appkit-color-primary)] hover:underline", children: "View \u00E2\u2020\u2019" }) })] }));
31
32
  }
32
33
  export function ShowGroupSection({ groupId, currentSlug, isParent, groupTitle }) {
33
34
  const [open, setOpen] = useState(false);
@@ -38,7 +39,7 @@ export function ShowGroupSection({ groupId, currentSlug, isParent, groupTitle })
38
39
  if (!groupId)
39
40
  return;
40
41
  setLoading(true);
41
- fetch(`/api/products/group/${encodeURIComponent(groupId)}`)
42
+ fetch(PRODUCT_ENDPOINTS.GROUP_BY_ID(groupId))
42
43
  .then((r) => r.json())
43
44
  .then((res) => setMembers(res.data?.items ?? []))
44
45
  .catch(console.error)
@@ -50,7 +51,10 @@ export function ShowGroupSection({ groupId, currentSlug, isParent, groupTitle })
50
51
  const parentLabel = isParent ? `Parts in this group: ${label}` : `Part of: ${label}`;
51
52
  const useDrawer = members.length >= 5;
52
53
  const tableContent = (_jsx(Div, { className: `${__O.xAuto}`, children: _jsxs(Table, { className: "text-left min-w-[400px]", children: [_jsx(Thead, { children: _jsxs(Tr, { border: "default", children: [_jsx(Th, { paddingY: "sm", paddingSide: "pr-sm", color: "muted", size: "xs", weight: "semibold", children: "Image" }), _jsx(Th, { paddingY: "sm", paddingSide: "pr-sm", color: "muted", size: "xs", weight: "semibold", children: "Name" }), _jsx(Th, { paddingY: "sm", paddingSide: "pr-sm", color: "muted", size: "xs", weight: "semibold", children: "Price" }), _jsx(Th, { paddingY: "sm", paddingSide: "pr-sm", color: "muted", size: "xs", weight: "semibold", children: "Condition" }), _jsx(Th, { paddingY: "sm", paddingSide: "pb-sm", color: "muted", size: "xs", weight: "semibold" })] }) }), _jsx(Tbody, { children: members.map((m) => _jsx(GroupTableRow, { member: m }, m.id)) })] }) }));
53
- return (_jsxs(_Fragment, { children: [_jsxs(Div, { className: `${__O.hidden}`, surface: "muted", rounded: "xl", border: "default", children: [_jsxs("button", { type: "button", onClick: () => setOpen((v) => !v), className: "w-full flex items-center justify-between px-4 py-3 text-left hover:bg-[var(--appkit-color-surface)]/70 hover:bg-[var(--appkit-color-surface-elevated)]/70 transition-colors", "aria-expanded": open, children: [_jsxs(Row, { align: "center", gap: "xs", children: [_jsx(Span, { size: "xs", className: "mr-1", color: "faint", children: open ? "â–¼" : "â–¶" }), _jsx(Text, { size: "sm", weight: "medium", color: "primary", children: parentLabel }), _jsx(Span, { size: "xs", className: "ml-1", rounded: "full", padding: "pill-xs", surface: "subtle", color: "muted", children: members.length })] }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: (e) => { e.stopPropagation(); setShowAll(true); }, className: "text-xs text-[var(--appkit-color-primary)] hover:underline ml-3 flex-shrink-0", children: "View whole group \u00E2\u2020\u2019" })] }), open && (_jsx(Div, { className: `pb-[1rem] pt-[0.25rem] ${__O.xAuto}`, padding: "x-md", children: _jsx(Row, { gap: "3", className: "min-w-0", children: [...members]
54
+ return (_jsxs(_Fragment, { children: [_jsxs(Div, { className: `${__O.hidden}`, surface: "muted", rounded: "xl", border: "default", children: [_jsxs(Row, { role: "button", tabIndex: 0, onClick: () => setOpen((v) => !v), onKeyDown: (e) => { if (e.key === "Enter" || e.key === " ") {
55
+ e.preventDefault();
56
+ setOpen((v) => !v);
57
+ } }, justify: "between", paddingX: "x-md", paddingY: "y-sm", className: "w-full cursor-pointer text-left hover:bg-[var(--appkit-color-surface-elevated)]/70 transition-colors", "aria-expanded": open, children: [_jsxs(Row, { align: "center", gap: "xs", children: [_jsx(Span, { size: "xs", className: "mr-1", color: "faint", children: open ? "â–¼" : "â–¶" }), _jsx(Text, { size: "sm", weight: "medium", color: "primary", children: parentLabel }), _jsx(Span, { size: "xs", className: "ml-1", rounded: "full", padding: "pill-xs", surface: "subtle", color: "muted", children: members.length })] }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", onClick: (e) => { e.stopPropagation(); setShowAll(true); }, className: "text-[length:var(--appkit-text-xs)] text-[var(--appkit-color-primary)] hover:underline ml-3 flex-shrink-0", children: "View whole group \u00E2\u2020\u2019" })] }), open && (_jsx(Div, { className: `pb-[1rem] pt-[0.25rem] ${__O.xAuto}`, padding: "x-md", children: _jsx(Row, { gap: "3", className: "min-w-0", children: [...members]
54
58
  .sort((a, b) => (b.isGroupParent ? 1 : 0) - (a.isGroupParent ? 1 : 0))
55
59
  .map((m) => (_jsx(MemberThumb, { member: m, isCurrent: m.slug === currentSlug || m.id === currentSlug }, m.id))) }) }))] }), useDrawer ? (_jsx(SideDrawer, { isOpen: showAll, onClose: () => setShowAll(false), title: label, children: tableContent })) : (_jsx(Modal, { open: showAll, onClose: () => setShowAll(false), title: label, children: tableContent }))] }));
56
60
  }
@@ -8,6 +8,7 @@ import { MediaImage } from "../../media/MediaImage";
8
8
  import { formatCurrency } from "../../../utils/number.formatter";
9
9
  import { normalizeListingType } from "../utils/listing-type";
10
10
  import { pluginFor } from "../../../_internal/shared/listing-types/_registry";
11
+ import { SUBLISTING_CATEGORY_ENDPOINTS } from "../../../constants/api-endpoints";
11
12
  const __O = {
12
13
  hidden: "overflow-hidden",
13
14
  xAuto: "overflow-x-auto",
@@ -20,9 +21,9 @@ function ListingThumb({ listing, isCurrent, }) {
20
21
  const image = listing.images?.[0] ?? listing.mainImage ?? "";
21
22
  const href = getHref(listing);
22
23
  const price = formatCurrency(listing.price, listing.currency ?? "INR");
23
- return (_jsxs(Link, { href: href, "aria-label": listing.title, className: "flex flex-col items-center gap-1.5 flex-shrink-0 w-16 group", children: [_jsx(Div, { rounded: "full", className: `relative w-14 h-14 overflow-hidden border-2 transition-all ${isCurrent
24
+ return (_jsxs(Link, { href: href, "aria-label": listing.title, className: "flex flex-col items-center gap-[var(--appkit-space-1-5)] flex-shrink-0 w-16 group", children: [_jsx(Div, { rounded: "full", className: `relative w-14 h-14 overflow-hidden border-2 transition-all ${isCurrent
24
25
  ? "border-[var(--appkit-color-primary)] ring-2 ring-[var(--appkit-color-primary)]/30"
25
- : "border-[var(--appkit-color-border)] group-hover:border-[var(--appkit-color-primary)]"}`, children: image ? (_jsx(MediaImage, { src: image, alt: listing.title, size: "avatar" })) : (_jsx(Row, { textSize: "xs", color: "faint", className: "w-full h-full", surface: "subtle", align: "center", justify: "center", children: "\u00E2\u2014\u00AF" })) }), _jsx(Text, { className: "text-[10px] leading-tight line-clamp-2 w-full", color: "muted", align: "center", children: listing.title }), _jsx(Text, { className: "text-[10px]", color: "primary", weight: "semibold", children: price })] }));
26
+ : "border-[var(--appkit-color-border)] group-hover:border-[var(--appkit-color-primary)]"}`, children: image ? (_jsx(MediaImage, { src: image, alt: listing.title, size: "avatar" })) : (_jsx(Row, { textSize: "xs", color: "faint", className: "w-full h-full", surface: "subtle", align: "center", justify: "center", children: "\u00E2\u2014\u00AF" })) }), _jsx(Text, { className: "text-[10px] leading-tight line-clamp-2 w-full", color: "muted", align: "start", children: listing.title }), _jsx(Text, { className: "text-[10px]", color: "primary", weight: "semibold", children: price })] }));
26
27
  }
27
28
  export function SublistingCarouselSection({ sublistingCategoryId, currentListingId }) {
28
29
  const [open, setOpen] = useState(false);
@@ -33,7 +34,7 @@ export function SublistingCarouselSection({ sublistingCategoryId, currentListing
33
34
  if (!sublistingCategoryId)
34
35
  return;
35
36
  setLoading(true);
36
- fetch(`/api/sublisting-categories/${encodeURIComponent(sublistingCategoryId)}`)
37
+ fetch(SUBLISTING_CATEGORY_ENDPOINTS.BY_ID(sublistingCategoryId))
37
38
  .then((r) => r.json())
38
39
  .then((res) => {
39
40
  setCategory(res.data?.category ?? null);
@@ -50,5 +51,8 @@ export function SublistingCarouselSection({ sublistingCategoryId, currentListing
50
51
  if (others.length === 0)
51
52
  return null;
52
53
  const label = category?.name ?? "More listings like this";
53
- return (_jsxs(Div, { className: `${__O.hidden}`, surface: "muted", rounded: "xl", border: "default", children: [_jsxs("button", { type: "button", onClick: () => setOpen((v) => !v), className: "w-full flex items-center justify-between px-4 py-3 text-left hover:bg-[var(--appkit-color-surface)]/70 hover:bg-[var(--appkit-color-surface-elevated)]/70 transition-colors", "aria-expanded": open, children: [_jsxs(Row, { align: "center", gap: "xs", children: [_jsx(Span, { size: "xs", className: "mr-1", color: "faint", children: open ? "â–¼" : "â–¶" }), _jsxs(Text, { size: "sm", weight: "medium", color: "primary", children: ["More listings like this:", " ", _jsx(Span, { className: "text-[var(--appkit-color-primary)]", children: label })] }), _jsx(Span, { size: "xs", className: "ml-1", rounded: "full", padding: "pill-xs", surface: "subtle", color: "muted", children: listings.length })] }), category && (_jsx(Link, { href: String(ROUTES.PUBLIC.SUBLISTING_CATEGORY(category.slug)), onClick: (e) => e.stopPropagation(), className: "text-xs text-[var(--appkit-color-primary)] hover:underline ml-3 flex-shrink-0", children: "View all \u00E2\u2020\u2019" }))] }), open && (_jsx(Div, { className: `pb-[1rem] pt-[0.25rem] ${__O.xAuto}`, padding: "x-md", children: _jsx(Row, { gap: "3", className: "min-w-0", children: listings.map((listing) => (_jsx(ListingThumb, { listing: listing, isCurrent: listing.id === currentListingId }, listing.id))) }) }))] }));
54
+ return (_jsxs(Div, { className: `${__O.hidden}`, surface: "muted", rounded: "xl", border: "default", children: [_jsxs(Row, { role: "button", tabIndex: 0, onClick: () => setOpen((v) => !v), onKeyDown: (e) => { if (e.key === "Enter" || e.key === " ") {
55
+ e.preventDefault();
56
+ setOpen((v) => !v);
57
+ } }, justify: "between", paddingX: "x-md", paddingY: "y-sm", className: "w-full cursor-pointer text-left hover:bg-[var(--appkit-color-surface-elevated)]/70 transition-colors", "aria-expanded": open, children: [_jsxs(Row, { align: "center", gap: "xs", children: [_jsx(Span, { size: "xs", className: "mr-1", color: "faint", children: open ? "â–¼" : "â–¶" }), _jsxs(Text, { size: "sm", weight: "medium", color: "primary", children: ["More listings like this:", " ", _jsx(Span, { className: "text-[var(--appkit-color-primary)]", children: label })] }), _jsx(Span, { size: "xs", className: "ml-1", rounded: "full", padding: "pill-xs", surface: "subtle", color: "muted", children: listings.length })] }), category && (_jsx(Link, { href: String(ROUTES.PUBLIC.SUBLISTING_CATEGORY(category.slug)), onClick: (e) => e.stopPropagation(), className: "text-[length:var(--appkit-text-xs)] text-[var(--appkit-color-primary)] hover:underline ml-3 flex-shrink-0", children: "View all \u00E2\u2020\u2019" }))] }), open && (_jsx(Div, { className: `pb-[1rem] pt-[0.25rem] ${__O.xAuto}`, padding: "x-md", children: _jsx(Row, { gap: "3", className: "min-w-0", children: listings.map((listing) => (_jsx(ListingThumb, { listing: listing, isCurrent: listing.id === currentListingId }, listing.id))) }) }))] }));
54
58
  }
@@ -130,6 +130,7 @@ export declare const ROW_ACTION_ID: {
130
130
  readonly EDIT: "row-edit";
131
131
  readonly VIEW: "row-view";
132
132
  readonly DELETE: "row-delete";
133
+ readonly REMOVE: "row-remove";
133
134
  readonly APPROVE: "row-approve";
134
135
  readonly REJECT: "row-reject";
135
136
  readonly SUSPEND: "row-suspend";
@@ -147,6 +148,7 @@ export declare const ROW_ACTION_ID: {
147
148
  readonly MARK_SHIPPED: "row-mark-shipped";
148
149
  readonly MARK_DELIVERED: "row-mark-delivered";
149
150
  readonly MARK_PAID: "row-mark-paid";
151
+ readonly MARK_RECEIVED: "row-mark-received";
150
152
  readonly REVOKE: "row-revoke";
151
153
  readonly MARK_READ: "row-mark-read";
152
154
  readonly ACTIVATE: "row-activate";
@@ -208,6 +210,7 @@ export declare const ADMIN_ROW_ACTIONS: {
208
210
  readonly supportTickets: readonly ["row-view", "row-reply"];
209
211
  readonly eventEntries: readonly ["row-view", "row-approve", "row-reject"];
210
212
  readonly returnRequests: readonly ["row-view", "row-approve", "row-reject"];
213
+ readonly shipments: readonly ["row-view", "row-edit", "row-mark-received", "row-delete"];
211
214
  };
212
215
  export declare const SELLER_ROW_ACTIONS: {
213
216
  readonly products: readonly ["row-view", "row-edit", "row-duplicate", "row-archive", "row-delete"];
@@ -311,8 +314,8 @@ export declare const DASHBOARD_QUICK_ACTIONS: {
311
314
  readonly user: readonly ["dqa-user-view-orders", "dqa-user-view-wishlist", "dqa-user-edit-profile", "dqa-user-add-address"];
312
315
  };
313
316
  export declare const ADMIN_BULK_ACTIONS: {
314
- readonly users: readonly ["row-suspend", "row-restore", "row-delete"];
315
- readonly stores: readonly ["row-approve", "row-reject", "row-suspend"];
317
+ readonly users: readonly ["row-manage", "row-suspend", "row-restore", "row-delete"];
318
+ readonly stores: readonly ["row-manage", "row-approve", "row-reject", "row-suspend"];
316
319
  readonly products: readonly ["row-feature", "row-promote", "row-sale"];
317
320
  readonly orders: readonly ["row-mark-shipped", "row-mark-delivered", "row-cancel"];
318
321
  readonly reviews: readonly ["row-approve", "row-reject", "row-delete"];
@@ -339,6 +342,9 @@ export declare const ADMIN_BULK_ACTIONS: {
339
342
  readonly eventEntries: readonly ["row-approve", "row-reject"];
340
343
  readonly returnRequests: readonly ["row-approve", "row-reject"];
341
344
  readonly coupons: readonly ["row-archive", "row-delete"];
345
+ readonly deals: readonly ["row-remove"];
346
+ readonly featured: readonly ["row-remove"];
347
+ readonly shipments: readonly ["row-mark-received", "row-delete"];
342
348
  };
343
349
  export declare const SELLER_BULK_ACTIONS: {
344
350
  readonly products: readonly ["row-publish", "row-archive", "row-delete"];
@@ -348,6 +354,8 @@ export declare const SELLER_BULK_ACTIONS: {
348
354
  readonly classified: readonly ["row-delete"];
349
355
  readonly digitalCodes: readonly ["row-delete"];
350
356
  readonly live: readonly ["row-delete"];
357
+ readonly art: readonly ["row-delete"];
358
+ readonly stickers: readonly ["row-delete"];
351
359
  readonly auctions: readonly ["row-delete"];
352
360
  readonly preOrders: readonly ["row-delete"];
353
361
  readonly prizeDraws: readonly ["row-delete"];
@@ -177,6 +177,7 @@ export const ROW_ACTION_ID = {
177
177
  EDIT: "row-edit",
178
178
  VIEW: "row-view",
179
179
  DELETE: "row-delete",
180
+ REMOVE: "row-remove",
180
181
  APPROVE: "row-approve",
181
182
  REJECT: "row-reject",
182
183
  SUSPEND: "row-suspend",
@@ -194,6 +195,7 @@ export const ROW_ACTION_ID = {
194
195
  MARK_SHIPPED: "row-mark-shipped",
195
196
  MARK_DELIVERED: "row-mark-delivered",
196
197
  MARK_PAID: "row-mark-paid",
198
+ MARK_RECEIVED: "row-mark-received",
197
199
  REVOKE: "row-revoke",
198
200
  MARK_READ: "row-mark-read",
199
201
  ACTIVATE: "row-activate",
@@ -209,6 +211,10 @@ export const ROW_ACTION_META = {
209
211
  [ROW_ACTION_ID.EDIT]: { id: ROW_ACTION_ID.EDIT, label: "Edit", iconName: "Pencil", requiresAuth: true },
210
212
  [ROW_ACTION_ID.VIEW]: { id: ROW_ACTION_ID.VIEW, label: "View", iconName: "Eye", requiresAuth: true },
211
213
  [ROW_ACTION_ID.DELETE]: { id: ROW_ACTION_ID.DELETE, label: "Delete", iconName: "Trash2", requiresAuth: true, destructive: true, separator: true },
214
+ // REMOVE — for curation-list actions ("remove from Deals/Featured") that
215
+ // don't delete/archive the underlying record, just its membership in a
216
+ // homepage curation list. Added 2026-08-11 for admin/deals + admin/featured.
217
+ [ROW_ACTION_ID.REMOVE]: { id: ROW_ACTION_ID.REMOVE, label: "Remove", iconName: "X", requiresAuth: true, destructive: true },
212
218
  [ROW_ACTION_ID.APPROVE]: { id: ROW_ACTION_ID.APPROVE, label: "Approve", iconName: "Check", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.content.approve" },
213
219
  [ROW_ACTION_ID.REJECT]: { id: ROW_ACTION_ID.REJECT, label: "Reject", iconName: "X", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.content.approve", destructive: true },
214
220
  [ROW_ACTION_ID.SUSPEND]: { id: ROW_ACTION_ID.SUSPEND, label: "Suspend", iconName: "Ban", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.users.suspend", destructive: true, separator: true },
@@ -226,6 +232,7 @@ export const ROW_ACTION_META = {
226
232
  [ROW_ACTION_ID.MARK_SHIPPED]: { id: ROW_ACTION_ID.MARK_SHIPPED, label: "Mark as Shipped", iconName: "Truck", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.orders.update" },
227
233
  [ROW_ACTION_ID.MARK_DELIVERED]: { id: ROW_ACTION_ID.MARK_DELIVERED, label: "Mark as Delivered", iconName: "PackageCheck", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.orders.update" },
228
234
  [ROW_ACTION_ID.MARK_PAID]: { id: ROW_ACTION_ID.MARK_PAID, label: "Mark Paid", iconName: "Banknote", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.payouts.approve" },
235
+ [ROW_ACTION_ID.MARK_RECEIVED]: { id: ROW_ACTION_ID.MARK_RECEIVED, label: "Mark Received", iconName: "PackageCheck", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.shipments.write" },
229
236
  [ROW_ACTION_ID.REVOKE]: { id: ROW_ACTION_ID.REVOKE, label: "Revoke", iconName: "ShieldOff", requiresAuth: true, requiredRole: "admin", requiredPermission: "admin.sessions.revoke", destructive: true },
230
237
  [ROW_ACTION_ID.MARK_READ]: { id: ROW_ACTION_ID.MARK_READ, label: "Mark Read", iconName: "CheckCheck", requiresAuth: true, requiredRole: "admin" },
231
238
  [ROW_ACTION_ID.ACTIVATE]: { id: ROW_ACTION_ID.ACTIVATE, label: "Activate", iconName: "ToggleRight", requiresAuth: true },
@@ -267,6 +274,7 @@ export const ADMIN_ROW_ACTIONS = {
267
274
  supportTickets: [ROW_ACTION_ID.VIEW, ROW_ACTION_ID.REPLY],
268
275
  eventEntries: [ROW_ACTION_ID.VIEW, ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT],
269
276
  returnRequests: [ROW_ACTION_ID.VIEW, ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT],
277
+ shipments: [ROW_ACTION_ID.VIEW, ROW_ACTION_ID.EDIT, ROW_ACTION_ID.MARK_RECEIVED, ROW_ACTION_ID.DELETE],
270
278
  };
271
279
  // Seller / Store dashboard row action groups per entity type
272
280
  export const SELLER_ROW_ACTIONS = {
@@ -401,8 +409,13 @@ export const DASHBOARD_QUICK_ACTIONS = {
401
409
  };
402
410
  // Admin bulk actions per listing entity — used in BulkActionsBar on admin tables
403
411
  export const ADMIN_BULK_ACTIONS = {
404
- users: [ROW_ACTION_ID.SUSPEND, ROW_ACTION_ID.RESTORE, ROW_ACTION_ID.DELETE],
405
- stores: [ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT, ROW_ACTION_ID.SUSPEND],
412
+ // MANAGE added 2026-08-11 — AdminUsersView's existing bulk action opens
413
+ // the user management drawer for the first selection.
414
+ users: [ROW_ACTION_ID.MANAGE, ROW_ACTION_ID.SUSPEND, ROW_ACTION_ID.RESTORE, ROW_ACTION_ID.DELETE],
415
+ // MANAGE added 2026-08-11 — AdminStoresView's existing bulk action opens
416
+ // the store editor for the first selection; APPROVE/REJECT/SUSPEND cover
417
+ // the moderation actions.
418
+ stores: [ROW_ACTION_ID.MANAGE, ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT, ROW_ACTION_ID.SUSPEND],
406
419
  products: [ROW_ACTION_ID.FEATURE, ROW_ACTION_ID.PROMOTE, ROW_ACTION_ID.SALE],
407
420
  orders: [ROW_ACTION_ID.MARK_SHIPPED, ROW_ACTION_ID.MARK_DELIVERED, ROW_ACTION_ID.CANCEL],
408
421
  reviews: [ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT, ROW_ACTION_ID.DELETE],
@@ -429,6 +442,9 @@ export const ADMIN_BULK_ACTIONS = {
429
442
  eventEntries: [ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT],
430
443
  returnRequests: [ROW_ACTION_ID.APPROVE, ROW_ACTION_ID.REJECT],
431
444
  coupons: [ROW_ACTION_ID.ARCHIVE, ROW_ACTION_ID.DELETE],
445
+ deals: [ROW_ACTION_ID.REMOVE],
446
+ featured: [ROW_ACTION_ID.REMOVE],
447
+ shipments: [ROW_ACTION_ID.MARK_RECEIVED, ROW_ACTION_ID.DELETE],
432
448
  };
433
449
  // Seller bulk actions per listing entity
434
450
  export const SELLER_BULK_ACTIONS = {
@@ -439,6 +455,8 @@ export const SELLER_BULK_ACTIONS = {
439
455
  classified: [ROW_ACTION_ID.DELETE],
440
456
  digitalCodes: [ROW_ACTION_ID.DELETE],
441
457
  live: [ROW_ACTION_ID.DELETE],
458
+ art: [ROW_ACTION_ID.DELETE],
459
+ stickers: [ROW_ACTION_ID.DELETE],
442
460
  auctions: [ROW_ACTION_ID.DELETE],
443
461
  preOrders: [ROW_ACTION_ID.DELETE],
444
462
  prizeDraws: [ROW_ACTION_ID.DELETE],
@@ -246,6 +246,11 @@ export interface ProductDocument extends BaseDocument {
246
246
  partOfBundleTitles?: string[];
247
247
  /** Denormalised flag — true when partOfBundleIds has at least one entry. Enables Firestore isPartOfBundle==true query. */
248
248
  isPartOfBundle?: boolean;
249
+ sourceShipmentId?: string;
250
+ sourceShipmentLotId?: string;
251
+ sourceShipmentItemId?: string;
252
+ sourceCatalogueItemId?: string;
253
+ sourceCatalogueOwnerId?: string;
249
254
  prizeDrawItems?: PrizeDrawItem[];
250
255
  pricePerEntry?: number;
251
256
  prizeMaxEntries?: number;
@@ -77,18 +77,18 @@ export declare const productItemSchema: z.ZodObject<{
77
77
  source: z.ZodOptional<z.ZodEnum<["upload", "youtube", "external"]>>;
78
78
  youtubeId: z.ZodOptional<z.ZodString>;
79
79
  }, "strip", z.ZodTypeAny, {
80
+ type: "video" | "image" | "file";
80
81
  url: string;
81
- type: "image" | "video" | "file";
82
+ source?: "upload" | "youtube" | "external" | undefined;
82
83
  alt?: string | undefined;
83
84
  thumbnailUrl?: string | undefined;
84
- source?: "upload" | "youtube" | "external" | undefined;
85
85
  youtubeId?: string | undefined;
86
86
  }, {
87
+ type: "video" | "image" | "file";
87
88
  url: string;
88
- type: "image" | "video" | "file";
89
+ source?: "upload" | "youtube" | "external" | undefined;
89
90
  alt?: string | undefined;
90
91
  thumbnailUrl?: string | undefined;
91
- source?: "upload" | "youtube" | "external" | undefined;
92
92
  youtubeId?: string | undefined;
93
93
  }>, "many">>;
94
94
  video: z.ZodOptional<z.ZodObject<{
@@ -267,12 +267,12 @@ export declare const productItemSchema: z.ZodObject<{
267
267
  unit: z.ZodOptional<z.ZodString>;
268
268
  }, "strip", z.ZodTypeAny, {
269
269
  value: string;
270
- type: "number" | "boolean" | "url" | "text";
270
+ type: "number" | "boolean" | "text" | "url";
271
271
  key: string;
272
272
  unit?: string | undefined;
273
273
  }, {
274
274
  value: string;
275
- type: "number" | "boolean" | "url" | "text";
275
+ type: "number" | "boolean" | "text" | "url";
276
276
  key: string;
277
277
  unit?: string | undefined;
278
278
  }>, "many">>;
@@ -287,56 +287,57 @@ export declare const productItemSchema: z.ZodObject<{
287
287
  unit: z.ZodOptional<z.ZodString>;
288
288
  }, "strip", z.ZodTypeAny, {
289
289
  value: string;
290
- type: "number" | "boolean" | "url" | "text";
290
+ type: "number" | "boolean" | "text" | "url";
291
291
  key: string;
292
292
  unit?: string | undefined;
293
293
  }, {
294
294
  value: string;
295
- type: "number" | "boolean" | "url" | "text";
295
+ type: "number" | "boolean" | "text" | "url";
296
296
  key: string;
297
297
  unit?: string | undefined;
298
298
  }>, "many">>;
299
299
  }, "strip", z.ZodTypeAny, {
300
- title: string;
301
300
  id: string;
301
+ title: string;
302
302
  text?: string | undefined;
303
303
  fields?: {
304
304
  value: string;
305
- type: "number" | "boolean" | "url" | "text";
305
+ type: "number" | "boolean" | "text" | "url";
306
306
  key: string;
307
307
  unit?: string | undefined;
308
308
  }[] | undefined;
309
309
  }, {
310
- title: string;
311
310
  id: string;
311
+ title: string;
312
312
  text?: string | undefined;
313
313
  fields?: {
314
314
  value: string;
315
- type: "number" | "boolean" | "url" | "text";
315
+ type: "number" | "boolean" | "text" | "url";
316
316
  key: string;
317
317
  unit?: string | undefined;
318
318
  }[] | undefined;
319
319
  }>, "many">>;
320
320
  }, "strip", z.ZodTypeAny, {
321
321
  status: "draft" | "published" | "archived" | "in_review";
322
+ id: string;
322
323
  title: string;
323
324
  price: number;
324
- id: string;
325
325
  currency?: string | undefined;
326
+ brand?: string | undefined;
326
327
  video?: {
327
328
  url: string;
328
329
  thumbnailUrl?: string | undefined;
329
330
  } | undefined;
331
+ createdAt?: string | undefined;
332
+ updatedAt?: string | undefined;
330
333
  storeId?: string | undefined;
331
334
  category?: string | undefined;
332
335
  featured?: boolean | undefined;
333
336
  listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
334
337
  isPromoted?: boolean | undefined;
335
- createdAt?: string | undefined;
336
338
  description?: string | undefined;
337
339
  slug?: string | undefined;
338
340
  subcategory?: string | undefined;
339
- brand?: string | undefined;
340
341
  stockQuantity?: number | undefined;
341
342
  availableQuantity?: number | undefined;
342
343
  mainImage?: string | undefined;
@@ -392,17 +393,17 @@ export declare const productItemSchema: z.ZodObject<{
392
393
  minOfferPercent?: number | undefined;
393
394
  customFields?: {
394
395
  value: string;
395
- type: "number" | "boolean" | "url" | "text";
396
+ type: "number" | "boolean" | "text" | "url";
396
397
  key: string;
397
398
  unit?: string | undefined;
398
399
  }[] | undefined;
399
400
  customSections?: {
400
- title: string;
401
401
  id: string;
402
+ title: string;
402
403
  text?: string | undefined;
403
404
  fields?: {
404
405
  value: string;
405
- type: "number" | "boolean" | "url" | "text";
406
+ type: "number" | "boolean" | "text" | "url";
406
407
  key: string;
407
408
  unit?: string | undefined;
408
409
  }[] | undefined;
@@ -428,16 +429,15 @@ export declare const productItemSchema: z.ZodObject<{
428
429
  prizeCurrentEntries?: number | undefined;
429
430
  prizeRevealWindowStart?: string | Date | undefined;
430
431
  prizeRevealWindowEnd?: string | Date | undefined;
431
- prizeRevealStatus?: "pending" | "open" | "closed" | undefined;
432
+ prizeRevealStatus?: "closed" | "open" | "pending" | undefined;
432
433
  prizeRevealDeadlineDays?: number | undefined;
433
434
  prizeGithubFileUrl?: string | undefined;
434
- updatedAt?: string | undefined;
435
435
  media?: {
436
+ type: "video" | "image" | "file";
436
437
  url: string;
437
- type: "image" | "video" | "file";
438
+ source?: "upload" | "youtube" | "external" | undefined;
438
439
  alt?: string | undefined;
439
440
  thumbnailUrl?: string | undefined;
440
- source?: "upload" | "youtube" | "external" | undefined;
441
441
  youtubeId?: string | undefined;
442
442
  }[] | undefined;
443
443
  inStock?: boolean | undefined;
@@ -455,24 +455,25 @@ export declare const productItemSchema: z.ZodObject<{
455
455
  publishedAt?: string | undefined;
456
456
  }, {
457
457
  status: "draft" | "published" | "archived" | "in_review";
458
+ id: string;
458
459
  title: string;
459
460
  price: number;
460
- id: string;
461
461
  currency?: string | undefined;
462
+ brand?: string | undefined;
462
463
  video?: {
463
464
  url: string;
464
465
  thumbnailUrl?: string | undefined;
465
466
  } | undefined;
467
+ createdAt?: string | undefined;
468
+ updatedAt?: string | undefined;
466
469
  storeId?: string | undefined;
467
470
  category?: string | undefined;
468
471
  featured?: boolean | undefined;
469
472
  listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
470
473
  isPromoted?: boolean | undefined;
471
- createdAt?: string | undefined;
472
474
  description?: string | undefined;
473
475
  slug?: string | undefined;
474
476
  subcategory?: string | undefined;
475
- brand?: string | undefined;
476
477
  stockQuantity?: number | undefined;
477
478
  availableQuantity?: number | undefined;
478
479
  mainImage?: string | undefined;
@@ -528,17 +529,17 @@ export declare const productItemSchema: z.ZodObject<{
528
529
  minOfferPercent?: number | undefined;
529
530
  customFields?: {
530
531
  value: string;
531
- type: "number" | "boolean" | "url" | "text";
532
+ type: "number" | "boolean" | "text" | "url";
532
533
  key: string;
533
534
  unit?: string | undefined;
534
535
  }[] | undefined;
535
536
  customSections?: {
536
- title: string;
537
537
  id: string;
538
+ title: string;
538
539
  text?: string | undefined;
539
540
  fields?: {
540
541
  value: string;
541
- type: "number" | "boolean" | "url" | "text";
542
+ type: "number" | "boolean" | "text" | "url";
542
543
  key: string;
543
544
  unit?: string | undefined;
544
545
  }[] | undefined;
@@ -564,16 +565,15 @@ export declare const productItemSchema: z.ZodObject<{
564
565
  prizeCurrentEntries?: number | undefined;
565
566
  prizeRevealWindowStart?: string | Date | undefined;
566
567
  prizeRevealWindowEnd?: string | Date | undefined;
567
- prizeRevealStatus?: "pending" | "open" | "closed" | undefined;
568
+ prizeRevealStatus?: "closed" | "open" | "pending" | undefined;
568
569
  prizeRevealDeadlineDays?: number | undefined;
569
570
  prizeGithubFileUrl?: string | undefined;
570
- updatedAt?: string | undefined;
571
571
  media?: {
572
+ type: "video" | "image" | "file";
572
573
  url: string;
573
- type: "image" | "video" | "file";
574
+ source?: "upload" | "youtube" | "external" | undefined;
574
575
  alt?: string | undefined;
575
576
  thumbnailUrl?: string | undefined;
576
- source?: "upload" | "youtube" | "external" | undefined;
577
577
  youtubeId?: string | undefined;
578
578
  }[] | undefined;
579
579
  inStock?: boolean | undefined;
@@ -606,30 +606,30 @@ export declare const productListParamsSchema: z.ZodObject<{
606
606
  perPage: z.ZodOptional<z.ZodNumber>;
607
607
  featured: z.ZodOptional<z.ZodBoolean>;
608
608
  }, "strip", z.ZodTypeAny, {
609
- status?: "draft" | "published" | "archived" | "in_review" | undefined;
610
609
  sort?: string | undefined;
610
+ status?: "draft" | "published" | "archived" | "in_review" | undefined;
611
+ page?: number | undefined;
612
+ q?: string | undefined;
613
+ perPage?: number | undefined;
611
614
  storeId?: string | undefined;
612
615
  category?: string | undefined;
613
616
  featured?: boolean | undefined;
614
617
  listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
615
618
  condition?: "new" | "used" | "refurbished" | "like_new" | "good" | "fair" | "poor" | "broken" | "graded" | undefined;
616
- page?: number | undefined;
617
- q?: string | undefined;
618
- perPage?: number | undefined;
619
619
  minPrice?: number | undefined;
620
620
  maxPrice?: number | undefined;
621
621
  inStock?: boolean | undefined;
622
622
  }, {
623
- status?: "draft" | "published" | "archived" | "in_review" | undefined;
624
623
  sort?: string | undefined;
624
+ status?: "draft" | "published" | "archived" | "in_review" | undefined;
625
+ page?: number | undefined;
626
+ q?: string | undefined;
627
+ perPage?: number | undefined;
625
628
  storeId?: string | undefined;
626
629
  category?: string | undefined;
627
630
  featured?: boolean | undefined;
628
631
  listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
629
632
  condition?: "new" | "used" | "refurbished" | "like_new" | "good" | "fair" | "poor" | "broken" | "graded" | undefined;
630
- page?: number | undefined;
631
- q?: string | undefined;
632
- perPage?: number | undefined;
633
633
  minPrice?: number | undefined;
634
634
  maxPrice?: number | undefined;
635
635
  inStock?: boolean | undefined;
@@ -22,24 +22,24 @@ export declare const productFeatureAdminCreateSchema: z.ZodObject<{
22
22
  isActive: z.ZodBoolean;
23
23
  displayOrder: z.ZodNumber;
24
24
  }, "strip", z.ZodTypeAny, {
25
- category: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform";
26
25
  label: string;
27
26
  scope: "store" | "platform";
28
27
  icon: string;
28
+ category: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform";
29
29
  isActive: boolean;
30
30
  displayOrder: number;
31
- productTypes: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[];
31
+ productTypes: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[];
32
32
  storeId?: string | undefined;
33
33
  description?: string | undefined;
34
34
  iconColor?: string | undefined;
35
35
  }, {
36
- category: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform";
37
36
  label: string;
38
37
  scope: "store" | "platform";
39
38
  icon: string;
39
+ category: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform";
40
40
  isActive: boolean;
41
41
  displayOrder: number;
42
- productTypes: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[];
42
+ productTypes: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[];
43
43
  storeId?: string | undefined;
44
44
  description?: string | undefined;
45
45
  iconColor?: string | undefined;
@@ -55,21 +55,21 @@ export declare const productFeatureStoreCreateSchema: z.ZodObject<{
55
55
  isActive: z.ZodBoolean;
56
56
  displayOrder: z.ZodNumber;
57
57
  }, "strip", z.ZodTypeAny, {
58
- category: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform";
59
58
  label: string;
60
59
  icon: string;
60
+ category: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform";
61
61
  isActive: boolean;
62
62
  displayOrder: number;
63
- productTypes: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[];
63
+ productTypes: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[];
64
64
  description?: string | undefined;
65
65
  iconColor?: string | undefined;
66
66
  }, {
67
- category: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform";
68
67
  label: string;
69
68
  icon: string;
69
+ category: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform";
70
70
  isActive: boolean;
71
71
  displayOrder: number;
72
- productTypes: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[];
72
+ productTypes: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[];
73
73
  description?: string | undefined;
74
74
  iconColor?: string | undefined;
75
75
  }>;
@@ -84,23 +84,23 @@ export declare const productFeatureUpdateSchema: z.ZodObject<{
84
84
  isActive: z.ZodOptional<z.ZodBoolean>;
85
85
  displayOrder: z.ZodOptional<z.ZodNumber>;
86
86
  }, "strip", z.ZodTypeAny, {
87
- category?: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform" | undefined;
88
- description?: string | undefined;
89
87
  label?: string | undefined;
90
88
  icon?: string | undefined;
89
+ category?: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform" | undefined;
90
+ description?: string | undefined;
91
91
  isActive?: boolean | undefined;
92
92
  displayOrder?: number | undefined;
93
93
  iconColor?: string | undefined;
94
- productTypes?: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[] | undefined;
94
+ productTypes?: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[] | undefined;
95
95
  }, {
96
- category?: "seller" | "custom" | "auction" | "condition" | "shipping" | "preorder" | "platform" | undefined;
97
- description?: string | undefined;
98
96
  label?: string | undefined;
99
97
  icon?: string | undefined;
98
+ category?: "shipping" | "custom" | "seller" | "auction" | "condition" | "preorder" | "platform" | undefined;
99
+ description?: string | undefined;
100
100
  isActive?: boolean | undefined;
101
101
  displayOrder?: number | undefined;
102
102
  iconColor?: string | undefined;
103
- productTypes?: ("auction" | "prize-draw" | "classified" | "digital-code" | "live" | "all" | "product" | "preorder")[] | undefined;
103
+ productTypes?: ("all" | "auction" | "prize-draw" | "classified" | "digital-code" | "live" | "product" | "preorder")[] | undefined;
104
104
  }>;
105
105
  export type ProductFeatureAdminCreatePayload = z.infer<typeof productFeatureAdminCreateSchema>;
106
106
  export type ProductFeatureStoreCreatePayload = z.infer<typeof productFeatureStoreCreateSchema>;