@mohasinac/appkit 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (771) hide show
  1. package/dist/client.d.ts +54 -18
  2. package/dist/client.js +29 -10
  3. package/dist/constants/api-endpoints.d.ts +384 -22
  4. package/dist/constants/api-endpoints.js +68 -13
  5. package/dist/constants/index.d.ts +1 -1
  6. package/dist/constants/index.js +1 -1
  7. package/dist/core/contact-submissions.repository.d.ts +32 -0
  8. package/dist/core/contact-submissions.repository.js +49 -0
  9. package/dist/core/hooks/useSyncManager.d.ts +1 -0
  10. package/dist/core/hooks/useSyncManager.js +83 -0
  11. package/dist/core/index.d.ts +2 -0
  12. package/dist/core/index.js +1 -0
  13. package/dist/core/integration-keys.d.ts +4 -0
  14. package/dist/core/integration-keys.js +8 -0
  15. package/dist/features/about/components/FAQPageView.js +9 -11
  16. package/dist/features/about/components/HowPayoutsWorkView.js +1 -1
  17. package/dist/features/about/components/PolicyPageView.js +32 -11
  18. package/dist/features/about/components/PublicProfileView.js +77 -11
  19. package/dist/features/account/components/AddressFilters.d.ts +5 -0
  20. package/dist/features/account/components/AddressFilters.js +20 -0
  21. package/dist/features/account/components/AddressesIndexListing.d.ts +6 -0
  22. package/dist/features/account/components/AddressesIndexListing.js +76 -0
  23. package/dist/features/account/components/UserOffersPanel.d.ts +8 -0
  24. package/dist/features/account/components/UserOffersPanel.js +81 -0
  25. package/dist/features/account/components/UserSettingsView.d.ts +2 -1
  26. package/dist/features/account/components/UserSettingsView.js +2 -1
  27. package/dist/features/account/components/UserSidebar.d.ts +12 -3
  28. package/dist/features/account/components/UserSidebar.js +64 -10
  29. package/dist/features/account/components/index.d.ts +2 -0
  30. package/dist/features/account/components/index.js +1 -0
  31. package/dist/features/account/hooks/useAddresses.d.ts +7 -0
  32. package/dist/features/account/hooks/useAddresses.js +12 -1
  33. package/dist/features/admin/actions/admin-actions.d.ts +1 -1
  34. package/dist/features/admin/actions/admin-actions.js +13 -3
  35. package/dist/features/admin/actions/admin-read-actions.d.ts +12 -0
  36. package/dist/features/admin/actions/admin-read-actions.js +18 -0
  37. package/dist/features/admin/components/AdminAdEditorView.js +6 -7
  38. package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +4 -0
  39. package/dist/features/admin/components/AdminAllEventEntriesView.js +102 -0
  40. package/dist/features/admin/components/AdminBidsView.js +94 -8
  41. package/dist/features/admin/components/AdminBlogEditorView.d.ts +7 -0
  42. package/dist/features/admin/components/AdminBlogEditorView.js +162 -0
  43. package/dist/features/admin/components/AdminBlogView.d.ts +4 -1
  44. package/dist/features/admin/components/AdminBlogView.js +64 -10
  45. package/dist/features/admin/components/AdminBrandEditorView.d.ts +7 -0
  46. package/dist/features/admin/components/AdminBrandEditorView.js +104 -0
  47. package/dist/features/admin/components/AdminBrandsView.d.ts +4 -0
  48. package/dist/features/admin/components/AdminBrandsView.js +76 -0
  49. package/dist/features/admin/components/AdminCarouselEditorView.d.ts +8 -0
  50. package/dist/features/admin/components/AdminCarouselEditorView.js +204 -0
  51. package/dist/features/admin/components/AdminCarouselView.js +155 -20
  52. package/dist/features/admin/components/AdminCartsView.d.ts +4 -0
  53. package/dist/features/admin/components/AdminCartsView.js +82 -0
  54. package/dist/features/admin/components/AdminCategoriesView.d.ts +4 -1
  55. package/dist/features/admin/components/AdminCategoriesView.js +69 -26
  56. package/dist/features/admin/components/AdminCategoryEditorView.d.ts +7 -0
  57. package/dist/features/admin/components/AdminCategoryEditorView.js +115 -0
  58. package/dist/features/admin/components/AdminContactEditorView.d.ts +11 -0
  59. package/dist/features/admin/components/AdminContactEditorView.js +32 -0
  60. package/dist/features/admin/components/AdminContactView.d.ts +4 -0
  61. package/dist/features/admin/components/AdminContactView.js +141 -0
  62. package/dist/features/admin/components/AdminCouponEditorView.d.ts +7 -0
  63. package/dist/features/admin/components/AdminCouponEditorView.js +179 -0
  64. package/dist/features/admin/components/AdminCouponsView.d.ts +4 -1
  65. package/dist/features/admin/components/AdminCouponsView.js +57 -9
  66. package/dist/features/admin/components/AdminDashboardView.js +3 -0
  67. package/dist/features/admin/components/AdminFaqEditorView.d.ts +7 -0
  68. package/dist/features/admin/components/AdminFaqEditorView.js +128 -0
  69. package/dist/features/admin/components/AdminFaqsView.d.ts +4 -1
  70. package/dist/features/admin/components/AdminFaqsView.js +55 -6
  71. package/dist/features/admin/components/AdminFeatureFlagsView.js +33 -24
  72. package/dist/features/admin/components/AdminListingScaffold.d.ts +17 -2
  73. package/dist/features/admin/components/AdminListingScaffold.js +14 -3
  74. package/dist/features/admin/components/AdminMediaView.js +18 -8
  75. package/dist/features/admin/components/AdminNavEditorView.d.ts +20 -0
  76. package/dist/features/admin/components/AdminNavEditorView.js +84 -0
  77. package/dist/features/admin/components/AdminNavigationView.d.ts +1 -7
  78. package/dist/features/admin/components/AdminNavigationView.js +84 -72
  79. package/dist/features/admin/components/AdminNewsletterView.d.ts +4 -0
  80. package/dist/features/admin/components/AdminNewsletterView.js +132 -0
  81. package/dist/features/admin/components/AdminNotificationsView.d.ts +4 -0
  82. package/dist/features/admin/components/AdminNotificationsView.js +119 -0
  83. package/dist/features/admin/components/AdminOrderEditorView.d.ts +8 -0
  84. package/dist/features/admin/components/AdminOrderEditorView.js +74 -0
  85. package/dist/features/admin/components/AdminOrdersView.js +64 -8
  86. package/dist/features/admin/components/AdminPayoutsView.js +122 -13
  87. package/dist/features/admin/components/AdminProductEditorView.d.ts +7 -0
  88. package/dist/features/admin/components/AdminProductEditorView.js +143 -0
  89. package/dist/features/admin/components/AdminProductsView.d.ts +4 -1
  90. package/dist/features/admin/components/AdminProductsView.js +124 -7
  91. package/dist/features/admin/components/AdminReturnRequestsView.d.ts +5 -0
  92. package/dist/features/admin/components/AdminReturnRequestsView.js +101 -0
  93. package/dist/features/admin/components/AdminReviewsView.js +140 -6
  94. package/dist/features/admin/components/AdminSectionsView.js +361 -472
  95. package/dist/features/admin/components/AdminSessionsView.d.ts +4 -0
  96. package/dist/features/admin/components/AdminSessionsView.js +119 -0
  97. package/dist/features/admin/components/AdminSidebar.d.ts +18 -3
  98. package/dist/features/admin/components/AdminSidebar.js +51 -4
  99. package/dist/features/admin/components/AdminSiteSettingsView.d.ts +7 -0
  100. package/dist/features/admin/components/AdminSiteSettingsView.js +319 -0
  101. package/dist/features/admin/components/AdminStoreAddressesView.d.ts +5 -0
  102. package/dist/features/admin/components/AdminStoreAddressesView.js +52 -0
  103. package/dist/features/admin/components/AdminStoreEditorView.d.ts +9 -0
  104. package/dist/features/admin/components/AdminStoreEditorView.js +55 -0
  105. package/dist/features/admin/components/AdminStoresView.js +62 -5
  106. package/dist/features/admin/components/AdminUserEditorView.d.ts +10 -0
  107. package/dist/features/admin/components/AdminUserEditorView.js +72 -0
  108. package/dist/features/admin/components/AdminUsersView.js +73 -14
  109. package/dist/features/admin/components/AdminWishlistsView.d.ts +4 -0
  110. package/dist/features/admin/components/AdminWishlistsView.js +53 -0
  111. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +5 -0
  112. package/dist/features/admin/components/BrandQuickCreateForm.js +36 -0
  113. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +5 -0
  114. package/dist/features/admin/components/CategoryQuickCreateForm.js +35 -0
  115. package/dist/features/admin/components/DataTable.d.ts +5 -2
  116. package/dist/features/admin/components/DataTable.js +38 -4
  117. package/dist/features/admin/components/index.d.ts +53 -1
  118. package/dist/features/admin/components/index.js +26 -0
  119. package/dist/features/admin/components/sections/adminSectionsBuildParse.d.ts +48 -0
  120. package/dist/features/admin/components/sections/adminSectionsBuildParse.js +653 -0
  121. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +298 -0
  122. package/dist/features/admin/components/sections/adminSectionsTypes.js +278 -0
  123. package/dist/features/admin/hooks/useAdminListingData.d.ts +3 -1
  124. package/dist/features/admin/hooks/useAdminListingData.js +12 -7
  125. package/dist/features/admin/schemas/firestore.d.ts +26 -0
  126. package/dist/features/admin/schemas/firestore.js +1 -0
  127. package/dist/features/admin/server.d.ts +3 -0
  128. package/dist/features/admin/server.js +2 -0
  129. package/dist/features/admin/types/product.types.d.ts +2 -3
  130. package/dist/features/auctions/actions/bid-actions.js +6 -2
  131. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +3 -1
  132. package/dist/features/auctions/components/AuctionDetailPageView.js +125 -53
  133. package/dist/features/auctions/components/AuctionFilters.d.ts +10 -0
  134. package/dist/features/auctions/components/AuctionFilters.js +16 -0
  135. package/dist/features/auctions/components/AuctionsListView.d.ts +6 -1
  136. package/dist/features/auctions/components/AuctionsListView.js +37 -5
  137. package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +7 -0
  138. package/dist/features/auctions/components/CollapsibleBidHistory.js +8 -0
  139. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +4 -0
  140. package/dist/features/auctions/components/MarketplaceAuctionCard.js +43 -9
  141. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +1 -0
  142. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +18 -0
  143. package/dist/features/auctions/components/PlaceBidFormClient.js +33 -0
  144. package/dist/features/auctions/hooks/useAuctions.d.ts +1 -0
  145. package/dist/features/auctions/hooks/useAuctions.js +1 -0
  146. package/dist/features/auctions/schemas/index.d.ts +18 -8
  147. package/dist/features/auth/actions/profile-actions.d.ts +5 -3
  148. package/dist/features/auth/actions/profile-actions.js +30 -11
  149. package/dist/features/auth/auth-helpers.js +1 -0
  150. package/dist/features/auth/components/LoginForm.js +2 -1
  151. package/dist/features/auth/hooks/useAuth.js +16 -4
  152. package/dist/features/auth/permissions/constants.d.ts +63 -0
  153. package/dist/features/auth/permissions/constants.js +323 -0
  154. package/dist/features/auth/schemas/firestore.d.ts +20 -0
  155. package/dist/features/auth/schemas/index.d.ts +4 -4
  156. package/dist/features/auth/schemas/index.js +3 -2
  157. package/dist/features/auth/types/index.d.ts +1 -1
  158. package/dist/features/before-after/schemas/index.d.ts +2 -2
  159. package/dist/features/blog/actions/blog-actions.d.ts +15 -15
  160. package/dist/features/blog/components/BlogFeaturedCard.d.ts +1 -7
  161. package/dist/features/blog/components/BlogFeaturedCard.js +4 -5
  162. package/dist/features/blog/components/BlogFilters.js +2 -1
  163. package/dist/features/blog/components/BlogIndexListing.js +66 -9
  164. package/dist/features/blog/components/BlogIndexPageView.d.ts +6 -1
  165. package/dist/features/blog/components/BlogIndexPageView.js +24 -4
  166. package/dist/features/blog/components/BlogListView.d.ts +2 -1
  167. package/dist/features/blog/components/BlogListView.js +10 -3
  168. package/dist/features/blog/components/BlogPostForm.js +6 -2
  169. package/dist/features/blog/components/BlogPostView.js +2 -1
  170. package/dist/features/blog/hooks/useBlog.d.ts +2 -0
  171. package/dist/features/blog/hooks/useBlog.js +2 -0
  172. package/dist/features/blog/schemas/index.d.ts +46 -12
  173. package/dist/features/brands/actions/brand-actions.d.ts +2 -0
  174. package/dist/features/brands/actions/brand-actions.js +5 -0
  175. package/dist/features/brands/index.d.ts +3 -0
  176. package/dist/features/brands/index.js +3 -0
  177. package/dist/features/brands/repository/brands.repository.d.ts +13 -0
  178. package/dist/features/brands/repository/brands.repository.js +60 -0
  179. package/dist/features/brands/schemas/index.d.ts +33 -0
  180. package/dist/features/brands/schemas/index.js +15 -0
  181. package/dist/features/brands/server.d.ts +7 -0
  182. package/dist/features/brands/server.js +7 -0
  183. package/dist/features/cart/actions/cart-actions.js +2 -2
  184. package/dist/features/cart/components/CartDrawer.d.ts +5 -1
  185. package/dist/features/cart/components/CartDrawer.js +3 -3
  186. package/dist/features/cart/hooks/useCartCount.d.ts +3 -2
  187. package/dist/features/cart/hooks/useCartCount.js +4 -2
  188. package/dist/features/cart/hooks/useGuestCartMerge.js +1 -1
  189. package/dist/features/cart/index.d.ts +1 -0
  190. package/dist/features/cart/index.js +1 -0
  191. package/dist/features/cart/repository/cart.repository.d.ts +5 -1
  192. package/dist/features/cart/repository/cart.repository.js +36 -5
  193. package/dist/features/cart/schemas/firestore.d.ts +25 -6
  194. package/dist/features/cart/schemas/firestore.js +2 -2
  195. package/dist/features/cart/schemas/index.d.ts +9 -9
  196. package/dist/features/cart/schemas/index.js +1 -1
  197. package/dist/features/cart/types/index.d.ts +1 -1
  198. package/dist/features/cart/utils/pending-ops.d.ts +33 -0
  199. package/dist/features/cart/utils/pending-ops.js +102 -0
  200. package/dist/features/categories/components/BrandDetailPageView.d.ts +4 -0
  201. package/dist/features/categories/components/BrandDetailPageView.js +54 -0
  202. package/dist/features/categories/components/BrandDetailTabs.d.ts +10 -0
  203. package/dist/features/categories/components/BrandDetailTabs.js +22 -0
  204. package/dist/features/categories/components/CategoriesIndexListing.d.ts +3 -1
  205. package/dist/features/categories/components/CategoriesIndexListing.js +117 -38
  206. package/dist/features/categories/components/CategoriesIndexPageView.d.ts +6 -1
  207. package/dist/features/categories/components/CategoriesIndexPageView.js +41 -2
  208. package/dist/features/categories/components/CategoryDetailPageView.js +47 -19
  209. package/dist/features/categories/components/CategoryDetailTabs.d.ts +11 -0
  210. package/dist/features/categories/components/CategoryDetailTabs.js +22 -0
  211. package/dist/features/categories/components/CategoryFilters.js +2 -1
  212. package/dist/features/categories/components/CategoryForm.js +10 -4
  213. package/dist/features/categories/components/CategoryGrid.d.ts +2 -1
  214. package/dist/features/categories/components/CategoryGrid.js +8 -6
  215. package/dist/features/categories/components/CategoryProductsListing.d.ts +4 -1
  216. package/dist/features/categories/components/CategoryProductsListing.js +53 -13
  217. package/dist/features/categories/components/ConcernCard.js +1 -1
  218. package/dist/features/categories/components/index.d.ts +2 -0
  219. package/dist/features/categories/components/index.js +1 -0
  220. package/dist/features/categories/hooks/useCategories.d.ts +20 -0
  221. package/dist/features/categories/hooks/useCategories.js +52 -1
  222. package/dist/features/categories/hooks/useCategoryTree.d.ts +17 -0
  223. package/dist/features/categories/hooks/useCategoryTree.js +65 -0
  224. package/dist/features/categories/repository/categories.repository.js +2 -3
  225. package/dist/features/categories/schemas/firestore.d.ts +23 -2
  226. package/dist/features/categories/schemas/firestore.js +8 -0
  227. package/dist/features/categories/schemas/index.d.ts +8 -8
  228. package/dist/features/categories/types/index.d.ts +1 -0
  229. package/dist/features/collections/schemas/index.d.ts +2 -2
  230. package/dist/features/events/components/AdminEventEditorView.d.ts +6 -0
  231. package/dist/features/events/components/AdminEventEditorView.js +203 -0
  232. package/dist/features/events/components/AdminEventsView.d.ts +4 -1
  233. package/dist/features/events/components/AdminEventsView.js +66 -14
  234. package/dist/features/events/components/EventCard.js +4 -2
  235. package/dist/features/events/components/EventFilters.js +2 -1
  236. package/dist/features/events/components/EventPollWidget.d.ts +12 -0
  237. package/dist/features/events/components/EventPollWidget.js +62 -0
  238. package/dist/features/events/components/EventsIndexListing.js +92 -10
  239. package/dist/features/events/components/EventsListPageView.d.ts +6 -1
  240. package/dist/features/events/components/EventsListPageView.js +40 -7
  241. package/dist/features/events/components/index.d.ts +4 -0
  242. package/dist/features/events/components/index.js +2 -0
  243. package/dist/features/events/hooks/useEvents.d.ts +1 -0
  244. package/dist/features/events/hooks/useEvents.js +3 -0
  245. package/dist/features/events/repository/events.repository.js +3 -0
  246. package/dist/features/events/schemas/firestore.d.ts +1 -0
  247. package/dist/features/events/schemas/index.d.ts +44 -0
  248. package/dist/features/events/types/index.d.ts +3 -0
  249. package/dist/features/faq/actions/faq-actions.d.ts +16 -16
  250. package/dist/features/faq/hooks/useFaqList.js +1 -1
  251. package/dist/features/faq/schemas/firestore.d.ts +2 -2
  252. package/dist/features/faq/schemas/firestore.js +2 -1
  253. package/dist/features/faq/schemas/index.d.ts +4 -4
  254. package/dist/features/filters/FilterFacetSection.d.ts +1 -0
  255. package/dist/features/filters/FilterFacetSection.js +13 -1
  256. package/dist/features/filters/SwitchFilter.js +1 -1
  257. package/dist/features/grouped/schemas/firestore.d.ts +32 -0
  258. package/dist/features/grouped/schemas/firestore.js +19 -0
  259. package/dist/features/homepage/components/AdSlot.d.ts +1 -3
  260. package/dist/features/homepage/components/AdSlot.js +15 -14
  261. package/dist/features/homepage/components/BlogArticlesSection.d.ts +3 -1
  262. package/dist/features/homepage/components/BlogArticlesSection.js +3 -3
  263. package/dist/features/homepage/components/BrandsSection.d.ts +3 -1
  264. package/dist/features/homepage/components/BrandsSection.js +4 -3
  265. package/dist/features/homepage/components/CustomCardsSection.d.ts +3 -0
  266. package/dist/features/homepage/components/CustomCardsSection.js +76 -0
  267. package/dist/features/homepage/components/EventsSection.d.ts +3 -1
  268. package/dist/features/homepage/components/EventsSection.js +3 -3
  269. package/dist/features/homepage/components/FeaturedAuctionsSection.d.ts +4 -1
  270. package/dist/features/homepage/components/FeaturedAuctionsSection.js +3 -3
  271. package/dist/features/homepage/components/FeaturedPreOrdersSection.d.ts +4 -1
  272. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +3 -3
  273. package/dist/features/homepage/components/FeaturedProductsSection.d.ts +4 -1
  274. package/dist/features/homepage/components/FeaturedProductsSection.js +8 -3
  275. package/dist/features/homepage/components/FeaturedStoresSection.d.ts +3 -1
  276. package/dist/features/homepage/components/FeaturedStoresSection.js +3 -3
  277. package/dist/features/homepage/components/GoogleReviewsSection.d.ts +3 -0
  278. package/dist/features/homepage/components/GoogleReviewsSection.js +65 -0
  279. package/dist/features/homepage/components/HeroCarousel.js +129 -85
  280. package/dist/features/homepage/components/MarketplaceHomepageView.d.ts +2 -20
  281. package/dist/features/homepage/components/MarketplaceHomepageView.js +73 -220
  282. package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
  283. package/dist/features/homepage/components/SectionCarousel.js +6 -4
  284. package/dist/features/homepage/components/ShopByCategorySection.d.ts +3 -1
  285. package/dist/features/homepage/components/ShopByCategorySection.js +8 -4
  286. package/dist/features/homepage/components/SocialFeedSection.d.ts +3 -0
  287. package/dist/features/homepage/components/SocialFeedSection.js +86 -0
  288. package/dist/features/homepage/components/SocialPostCard.d.ts +7 -0
  289. package/dist/features/homepage/components/SocialPostCard.js +39 -0
  290. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  291. package/dist/features/homepage/components/WelcomeSection.js +1 -1
  292. package/dist/features/homepage/components/WhatsAppCommunitySection.js +1 -1
  293. package/dist/features/homepage/hooks/useActiveAd.d.ts +23 -0
  294. package/dist/features/homepage/hooks/useActiveAd.js +20 -0
  295. package/dist/features/homepage/hooks/useBlogArticles.d.ts +1 -0
  296. package/dist/features/homepage/hooks/useBlogArticles.js +10 -0
  297. package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +4 -1
  298. package/dist/features/homepage/hooks/useFeaturedAuctions.js +8 -4
  299. package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +4 -1
  300. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +8 -4
  301. package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +1 -0
  302. package/dist/features/homepage/hooks/useFeaturedProducts.js +6 -3
  303. package/dist/features/homepage/hooks/useFeaturedStores.d.ts +3 -1
  304. package/dist/features/homepage/hooks/useFeaturedStores.js +2 -1
  305. package/dist/features/homepage/hooks/useHomepageEvents.d.ts +3 -1
  306. package/dist/features/homepage/hooks/useHomepageEvents.js +2 -1
  307. package/dist/features/homepage/hooks/useTopBrands.d.ts +3 -1
  308. package/dist/features/homepage/hooks/useTopBrands.js +2 -1
  309. package/dist/features/homepage/index.d.ts +2 -0
  310. package/dist/features/homepage/index.js +1 -0
  311. package/dist/features/homepage/lib/google-reviews-fetcher.d.ts +14 -0
  312. package/dist/features/homepage/lib/google-reviews-fetcher.js +27 -0
  313. package/dist/features/homepage/lib/live-stats.d.ts +14 -0
  314. package/dist/features/homepage/lib/live-stats.js +62 -0
  315. package/dist/features/homepage/lib/section-defaults.d.ts +11 -0
  316. package/dist/features/homepage/lib/section-defaults.js +45 -0
  317. package/dist/features/homepage/lib/section-helpers.d.ts +5 -0
  318. package/dist/features/homepage/lib/section-helpers.js +25 -0
  319. package/dist/features/homepage/lib/section-renderer.d.ts +33 -0
  320. package/dist/features/homepage/lib/section-renderer.js +164 -0
  321. package/dist/features/homepage/lib/social-feed-fetcher.d.ts +5 -0
  322. package/dist/features/homepage/lib/social-feed-fetcher.js +193 -0
  323. package/dist/features/homepage/schemas/firestore.d.ts +180 -29
  324. package/dist/features/homepage/schemas/firestore.js +7 -1
  325. package/dist/features/homepage/types/index.d.ts +48 -19
  326. package/dist/features/layout/AppLayoutShell.d.ts +11 -2
  327. package/dist/features/layout/AppLayoutShell.js +30 -10
  328. package/dist/features/layout/BottomActions.js +1 -1
  329. package/dist/features/layout/BottomNavbar.d.ts +15 -1
  330. package/dist/features/layout/BottomNavbar.js +8 -2
  331. package/dist/features/layout/FooterLayout.d.ts +7 -1
  332. package/dist/features/layout/FooterLayout.js +3 -3
  333. package/dist/features/layout/ListingLayout.js +2 -2
  334. package/dist/features/layout/MainNavbar.d.ts +6 -14
  335. package/dist/features/layout/MainNavbar.js +4 -16
  336. package/dist/features/layout/NavItem.js +1 -1
  337. package/dist/features/layout/NavbarLayout.d.ts +3 -1
  338. package/dist/features/layout/NavbarLayout.js +5 -5
  339. package/dist/features/layout/TitleBar.d.ts +4 -2
  340. package/dist/features/layout/TitleBar.js +5 -3
  341. package/dist/features/layout/TitleBarLayout.d.ts +3 -1
  342. package/dist/features/layout/TitleBarLayout.js +2 -2
  343. package/dist/features/layout/index.d.ts +1 -1
  344. package/dist/features/media/MediaPickerModal.d.ts +30 -0
  345. package/dist/features/media/MediaPickerModal.js +72 -0
  346. package/dist/features/media/index.d.ts +3 -1
  347. package/dist/features/media/index.js +1 -0
  348. package/dist/features/media/types/index.d.ts +12 -0
  349. package/dist/features/media/types/index.js +4 -2
  350. package/dist/features/media/upload/MediaUploadField.d.ts +5 -1
  351. package/dist/features/media/upload/MediaUploadField.js +56 -3
  352. package/dist/features/messages/schemas/firestore.d.ts +36 -0
  353. package/dist/features/messages/schemas/firestore.js +16 -0
  354. package/dist/features/orders/repository/orders.repository.d.ts +2 -2
  355. package/dist/features/orders/repository/orders.repository.js +2 -2
  356. package/dist/features/orders/schemas/firestore.d.ts +17 -4
  357. package/dist/features/orders/schemas/firestore.js +2 -2
  358. package/dist/features/orders/schemas/index.d.ts +18 -18
  359. package/dist/features/orders/schemas/index.js +3 -3
  360. package/dist/features/orders/types/index.d.ts +1 -1
  361. package/dist/features/orders/utils/order-splitter.d.ts +1 -1
  362. package/dist/features/orders/utils/order-splitter.js +2 -2
  363. package/dist/features/payments/repository/payout.repository.d.ts +4 -4
  364. package/dist/features/payments/repository/payout.repository.js +7 -7
  365. package/dist/features/payments/schemas/firestore.d.ts +6 -6
  366. package/dist/features/payments/schemas/firestore.js +6 -6
  367. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +3 -1
  368. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +13 -8
  369. package/dist/features/pre-orders/components/PreOrderActionsClient.d.ts +11 -0
  370. package/dist/features/pre-orders/components/PreOrderActionsClient.js +28 -0
  371. package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +2 -1
  372. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +100 -14
  373. package/dist/features/pre-orders/components/PreOrderFilters.d.ts +10 -0
  374. package/dist/features/pre-orders/components/PreOrderFilters.js +24 -0
  375. package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +4 -1
  376. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +166 -11
  377. package/dist/features/pre-orders/components/PreOrdersListView.d.ts +6 -1
  378. package/dist/features/pre-orders/components/PreOrdersListView.js +26 -7
  379. package/dist/features/pre-orders/components/PreorderCard.js +1 -1
  380. package/dist/features/pre-orders/components/index.d.ts +2 -0
  381. package/dist/features/pre-orders/components/index.js +1 -0
  382. package/dist/features/pre-orders/schemas/index.d.ts +10 -0
  383. package/dist/features/products/actions/product-actions.d.ts +2 -2
  384. package/dist/features/products/actions/product-actions.js +5 -5
  385. package/dist/features/products/api/[id]/route.js +5 -2
  386. package/dist/features/products/api/route.js +10 -14
  387. package/dist/features/products/columns/productTableColumns.js +2 -2
  388. package/dist/features/products/components/AuctionDetailView.d.ts +2 -1
  389. package/dist/features/products/components/AuctionDetailView.js +2 -2
  390. package/dist/features/products/components/AuctionsIndexListing.d.ts +4 -1
  391. package/dist/features/products/components/AuctionsIndexListing.js +124 -10
  392. package/dist/features/products/components/BidHistory.d.ts +2 -1
  393. package/dist/features/products/components/BidHistory.js +18 -2
  394. package/dist/features/products/components/InteractiveProductCard.d.ts +2 -4
  395. package/dist/features/products/components/InteractiveProductCard.js +2 -2
  396. package/dist/features/products/components/MakeOfferButton.d.ts +10 -0
  397. package/dist/features/products/components/MakeOfferButton.js +68 -0
  398. package/dist/features/products/components/ProductDetailPageView.d.ts +11 -1
  399. package/dist/features/products/components/ProductDetailPageView.js +136 -26
  400. package/dist/features/products/components/ProductFilters.d.ts +13 -12
  401. package/dist/features/products/components/ProductFilters.js +8 -4
  402. package/dist/features/products/components/ProductForm.d.ts +19 -1
  403. package/dist/features/products/components/ProductForm.js +24 -6
  404. package/dist/features/products/components/ProductGrid.d.ts +16 -2
  405. package/dist/features/products/components/ProductGrid.js +80 -18
  406. package/dist/features/products/components/ProductTabsShell.d.ts +3 -11
  407. package/dist/features/products/components/ProductTabsShell.js +14 -14
  408. package/dist/features/products/components/ProductsIndexListing.js +160 -10
  409. package/dist/features/products/components/ProductsIndexPageView.d.ts +6 -1
  410. package/dist/features/products/components/ProductsIndexPageView.js +39 -6
  411. package/dist/features/products/components/RelatedProductsCarousel.d.ts +7 -0
  412. package/dist/features/products/components/RelatedProductsCarousel.js +11 -0
  413. package/dist/features/products/components/ShareButton.d.ts +7 -0
  414. package/dist/features/products/components/ShareButton.js +22 -0
  415. package/dist/features/products/components/index.d.ts +3 -0
  416. package/dist/features/products/components/index.js +2 -0
  417. package/dist/features/products/hooks/useProducts.d.ts +7 -0
  418. package/dist/features/products/hooks/useProducts.js +20 -2
  419. package/dist/features/products/repository/products.repository.d.ts +9 -5
  420. package/dist/features/products/repository/products.repository.js +19 -50
  421. package/dist/features/products/schemas/firestore.d.ts +11 -9
  422. package/dist/features/products/schemas/firestore.js +11 -3
  423. package/dist/features/products/schemas/index.d.ts +43 -42
  424. package/dist/features/products/schemas/index.js +2 -5
  425. package/dist/features/products/types/index.d.ts +24 -4
  426. package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
  427. package/dist/features/promotions/actions/coupon-actions.js +1 -1
  428. package/dist/features/promotions/actions/seller-coupon-actions.js +11 -6
  429. package/dist/features/promotions/api/route.js +3 -3
  430. package/dist/features/promotions/components/CouponCard.js +16 -7
  431. package/dist/features/promotions/components/CouponsIndexListing.d.ts +9 -0
  432. package/dist/features/promotions/components/CouponsIndexListing.js +80 -0
  433. package/dist/features/promotions/components/PromotionsView.d.ts +11 -5
  434. package/dist/features/promotions/components/PromotionsView.js +6 -1
  435. package/dist/features/promotions/components/index.d.ts +4 -2
  436. package/dist/features/promotions/components/index.js +2 -1
  437. package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
  438. package/dist/features/promotions/hooks/usePromotions.js +2 -2
  439. package/dist/features/promotions/repository/coupons.repository.d.ts +21 -15
  440. package/dist/features/promotions/repository/coupons.repository.js +97 -125
  441. package/dist/features/promotions/schemas/firestore.d.ts +31 -2
  442. package/dist/features/promotions/schemas/firestore.js +29 -0
  443. package/dist/features/promotions/schemas/index.d.ts +9 -12
  444. package/dist/features/promotions/schemas/index.js +1 -2
  445. package/dist/features/promotions/types/index.d.ts +1 -2
  446. package/dist/features/reviews/actions/review-actions.js +3 -2
  447. package/dist/features/reviews/components/ReviewDetailPageView.d.ts +4 -0
  448. package/dist/features/reviews/components/ReviewDetailPageView.js +16 -0
  449. package/dist/features/reviews/components/ReviewDetailShell.d.ts +7 -0
  450. package/dist/features/reviews/components/ReviewDetailShell.js +80 -0
  451. package/dist/features/reviews/components/ReviewFilters.d.ts +3 -3
  452. package/dist/features/reviews/components/ReviewFilters.js +5 -4
  453. package/dist/features/reviews/components/ReviewsIndexListing.d.ts +4 -3
  454. package/dist/features/reviews/components/ReviewsIndexListing.js +86 -51
  455. package/dist/features/reviews/components/ReviewsIndexPageView.d.ts +6 -1
  456. package/dist/features/reviews/components/ReviewsIndexPageView.js +49 -3
  457. package/dist/features/reviews/components/ReviewsList.js +9 -1
  458. package/dist/features/reviews/components/index.d.ts +1 -0
  459. package/dist/features/reviews/hooks/useReviews.d.ts +1 -0
  460. package/dist/features/reviews/hooks/useReviews.js +16 -1
  461. package/dist/features/reviews/repository/reviews.repository.d.ts +9 -4
  462. package/dist/features/reviews/repository/reviews.repository.js +18 -7
  463. package/dist/features/reviews/schemas/firestore.d.ts +5 -2
  464. package/dist/features/reviews/schemas/firestore.js +1 -0
  465. package/dist/features/reviews/schemas/index.d.ts +19 -16
  466. package/dist/features/reviews/schemas/index.js +3 -2
  467. package/dist/features/reviews/types/index.d.ts +9 -3
  468. package/dist/features/scams/actions/scam-actions.d.ts +29 -0
  469. package/dist/features/scams/actions/scam-actions.js +62 -0
  470. package/dist/features/scams/components/ScamProfileView.d.ts +7 -0
  471. package/dist/features/scams/components/ScamProfileView.js +49 -0
  472. package/dist/features/scams/components/ScamRegistryView.d.ts +6 -0
  473. package/dist/features/scams/components/ScamRegistryView.js +41 -0
  474. package/dist/features/scams/components/index.d.ts +4 -0
  475. package/dist/features/scams/components/index.js +2 -0
  476. package/dist/features/scams/constants/scam-types.d.ts +38 -0
  477. package/dist/features/scams/constants/scam-types.js +443 -0
  478. package/dist/features/scams/repository/scammer.repository.d.ts +67 -0
  479. package/dist/features/scams/repository/scammer.repository.js +160 -0
  480. package/dist/features/scams/schemas/firestore.d.ts +362 -0
  481. package/dist/features/scams/schemas/firestore.js +233 -0
  482. package/dist/features/search/components/Search.d.ts +12 -2
  483. package/dist/features/search/components/Search.js +26 -7
  484. package/dist/features/search/components/index.d.ts +1 -1
  485. package/dist/features/search/hooks/useNavSuggestions.d.ts +1 -1
  486. package/dist/features/search/hooks/useNavSuggestions.js +2 -2
  487. package/dist/features/search/schemas/index.d.ts +7 -7
  488. package/dist/features/seller/actions/offer-actions.js +52 -36
  489. package/dist/features/seller/actions/seller-actions.js +19 -13
  490. package/dist/features/seller/api/products/route.js +9 -4
  491. package/dist/features/seller/components/SellerAddressesView.d.ts +3 -12
  492. package/dist/features/seller/components/SellerAddressesView.js +144 -4
  493. package/dist/features/seller/components/SellerAuctionsView.js +58 -5
  494. package/dist/features/seller/components/SellerBidsView.d.ts +4 -0
  495. package/dist/features/seller/components/SellerBidsView.js +131 -0
  496. package/dist/features/seller/components/SellerCouponEditorView.d.ts +19 -0
  497. package/dist/features/seller/components/SellerCouponEditorView.js +67 -0
  498. package/dist/features/seller/components/SellerCouponsView.d.ts +5 -3
  499. package/dist/features/seller/components/SellerCouponsView.js +135 -13
  500. package/dist/features/seller/components/SellerCreateProductView.d.ts +4 -10
  501. package/dist/features/seller/components/SellerCreateProductView.js +4 -3
  502. package/dist/features/seller/components/SellerEditProductView.d.ts +4 -10
  503. package/dist/features/seller/components/SellerEditProductView.js +4 -3
  504. package/dist/features/seller/components/SellerOffersPanel.d.ts +20 -0
  505. package/dist/features/seller/components/SellerOffersPanel.js +138 -0
  506. package/dist/features/seller/components/SellerOffersView.js +56 -5
  507. package/dist/features/seller/components/SellerOrdersView.d.ts +2 -1
  508. package/dist/features/seller/components/SellerOrdersView.js +185 -16
  509. package/dist/features/seller/components/SellerPayoutRequestView.d.ts +7 -0
  510. package/dist/features/seller/components/SellerPayoutRequestView.js +63 -0
  511. package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +3 -10
  512. package/dist/features/seller/components/SellerPayoutSettingsView.js +89 -3
  513. package/dist/features/seller/components/SellerPayoutsView.js +56 -5
  514. package/dist/features/seller/components/SellerProductShell.d.ts +68 -0
  515. package/dist/features/seller/components/SellerProductShell.js +179 -0
  516. package/dist/features/seller/components/SellerProductsView.d.ts +2 -3
  517. package/dist/features/seller/components/SellerProductsView.js +194 -18
  518. package/dist/features/seller/components/SellerReviewsView.d.ts +5 -0
  519. package/dist/features/seller/components/SellerReviewsView.js +100 -0
  520. package/dist/features/seller/components/SellerShippingView.d.ts +3 -11
  521. package/dist/features/seller/components/SellerShippingView.js +87 -3
  522. package/dist/features/seller/components/SellerSidebar.d.ts +18 -6
  523. package/dist/features/seller/components/SellerSidebar.js +54 -8
  524. package/dist/features/seller/components/SellerStorefrontView.d.ts +26 -11
  525. package/dist/features/seller/components/SellerStorefrontView.js +45 -7
  526. package/dist/features/seller/components/index.d.ts +45 -1
  527. package/dist/features/seller/components/index.js +24 -0
  528. package/dist/features/seller/hooks/useSellerListingData.d.ts +3 -1
  529. package/dist/features/seller/hooks/useSellerListingData.js +6 -4
  530. package/dist/features/seller/hooks/useSellerStore.d.ts +2 -0
  531. package/dist/features/seller/hooks/useSellerStore.js +2 -0
  532. package/dist/features/seller/permission-map.d.ts +4 -2
  533. package/dist/features/seller/permission-map.js +16 -14
  534. package/dist/features/seller/repository/offer.repository.d.ts +3 -3
  535. package/dist/features/seller/repository/offer.repository.js +6 -6
  536. package/dist/features/seller/schemas/firestore.d.ts +7 -7
  537. package/dist/features/seller/schemas/firestore.js +4 -4
  538. package/dist/features/seller/schemas/index.d.ts +18 -18
  539. package/dist/features/shell/FormShell.d.ts +29 -0
  540. package/dist/features/shell/FormShell.js +103 -0
  541. package/dist/features/shell/QuickFormDrawer.d.ts +29 -0
  542. package/dist/features/shell/QuickFormDrawer.js +117 -0
  543. package/dist/features/shell/StepForm.d.ts +44 -0
  544. package/dist/features/shell/StepForm.js +81 -0
  545. package/dist/features/shell/index.d.ts +6 -0
  546. package/dist/features/shell/index.js +3 -0
  547. package/dist/features/stores/actions/store-query-actions.js +3 -3
  548. package/dist/features/stores/api/[storeSlug]/auctions/route.js +1 -1
  549. package/dist/features/stores/api/[storeSlug]/products/route.js +1 -1
  550. package/dist/features/stores/api/[storeSlug]/reviews/route.d.ts +1 -1
  551. package/dist/features/stores/api/[storeSlug]/reviews/route.js +25 -20
  552. package/dist/features/stores/components/InteractiveStoreCard.d.ts +2 -7
  553. package/dist/features/stores/components/InteractiveStoreCard.js +24 -10
  554. package/dist/features/stores/components/StoreAboutView.js +1 -1
  555. package/dist/features/stores/components/StoreAuctionsListing.d.ts +5 -2
  556. package/dist/features/stores/components/StoreAuctionsListing.js +103 -12
  557. package/dist/features/stores/components/StoreAuctionsPageView.js +8 -7
  558. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -0
  559. package/dist/features/stores/components/StoreDetailLayoutView.js +30 -4
  560. package/dist/features/stores/components/StoreFilters.d.ts +5 -0
  561. package/dist/features/stores/components/StoreFilters.js +20 -0
  562. package/dist/features/stores/components/StoreHeader.js +3 -2
  563. package/dist/features/stores/components/StorePreOrdersListing.d.ts +7 -0
  564. package/dist/features/stores/components/StorePreOrdersListing.js +92 -0
  565. package/dist/features/stores/components/StorePreOrdersPageView.d.ts +4 -0
  566. package/dist/features/stores/components/StorePreOrdersPageView.js +22 -0
  567. package/dist/features/stores/components/StoreProductsListing.d.ts +5 -2
  568. package/dist/features/stores/components/StoreProductsListing.js +113 -14
  569. package/dist/features/stores/components/StoreProductsPageView.js +8 -7
  570. package/dist/features/stores/components/StoreReviewsListing.js +4 -9
  571. package/dist/features/stores/components/StoresIndexListing.js +106 -9
  572. package/dist/features/stores/components/StoresIndexPageView.d.ts +6 -1
  573. package/dist/features/stores/components/StoresIndexPageView.js +9 -2
  574. package/dist/features/stores/components/StoresListView.js +1 -1
  575. package/dist/features/stores/components/index.d.ts +3 -0
  576. package/dist/features/stores/components/index.js +1 -0
  577. package/dist/features/stores/hooks/useStores.d.ts +8 -1
  578. package/dist/features/stores/hooks/useStores.js +17 -3
  579. package/dist/features/stores/schemas/firestore.d.ts +34 -0
  580. package/dist/features/stores/schemas/index.d.ts +10 -10
  581. package/dist/features/stores/types/index.d.ts +3 -0
  582. package/dist/features/sublisting/schemas/firestore.d.ts +30 -0
  583. package/dist/features/sublisting/schemas/firestore.js +19 -0
  584. package/dist/features/support/schemas/firestore.d.ts +113 -0
  585. package/dist/features/support/schemas/firestore.js +95 -0
  586. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +5 -0
  587. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +143 -0
  588. package/dist/features/whatsapp-bot/components/index.d.ts +2 -0
  589. package/dist/features/whatsapp-bot/components/index.js +1 -0
  590. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +23 -1
  591. package/dist/features/whatsapp-bot/helpers/whatsapp.js +104 -0
  592. package/dist/features/whatsapp-bot/server.d.ts +1 -0
  593. package/dist/features/whatsapp-bot/server.js +1 -0
  594. package/dist/features/whatsapp-bot/types/index.d.ts +49 -0
  595. package/dist/features/wishlist/components/WishlistView.d.ts +0 -10
  596. package/dist/features/wishlist/components/WishlistView.js +13 -6
  597. package/dist/features/wishlist/hooks/useGuestWishlist.d.ts +20 -0
  598. package/dist/features/wishlist/hooks/useGuestWishlist.js +49 -0
  599. package/dist/features/wishlist/hooks/useWishlist.js +2 -0
  600. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +15 -0
  601. package/dist/features/wishlist/hooks/useWishlistCount.js +95 -0
  602. package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +56 -0
  603. package/dist/features/wishlist/hooks/useWishlistWithGuest.js +57 -0
  604. package/dist/features/wishlist/index.d.ts +3 -0
  605. package/dist/features/wishlist/index.js +3 -0
  606. package/dist/features/wishlist/schemas/index.d.ts +2 -2
  607. package/dist/features/wishlist/types/index.d.ts +16 -0
  608. package/dist/features/wishlist/utils/guest-wishlist.d.ts +22 -0
  609. package/dist/features/wishlist/utils/guest-wishlist.js +70 -0
  610. package/dist/http/api-handler.js +8 -1
  611. package/dist/index.d.ts +158 -13
  612. package/dist/index.js +188 -21
  613. package/dist/monitoring/server-logger.js +9 -3
  614. package/dist/next/routing/route-map.d.ts +184 -36
  615. package/dist/next/routing/route-map.js +81 -22
  616. package/dist/providers/db-firebase/realtime.d.ts +1 -1
  617. package/dist/react/contexts/SessionContext.js +17 -26
  618. package/dist/react/hooks/useBulkSelection.d.ts +7 -24
  619. package/dist/react/hooks/useBulkSelection.js +27 -34
  620. package/dist/react/hooks/useLongPress.d.ts +3 -16
  621. package/dist/react/hooks/useLongPress.js +6 -25
  622. package/dist/react/index.d.ts +1 -0
  623. package/dist/react/index.js +2 -0
  624. package/dist/repositories/index.d.ts +3 -0
  625. package/dist/repositories/index.js +2 -0
  626. package/dist/seed/actions/demo-seed-actions.d.ts +2 -2
  627. package/dist/seed/actions/demo-seed-actions.js +1 -1
  628. package/dist/seed/addresses-seed-data.js +62 -261
  629. package/dist/seed/anime-figures-seed-data.d.ts +8 -0
  630. package/dist/seed/anime-figures-seed-data.js +1033 -0
  631. package/dist/seed/beyblade-seed-data.d.ts +7 -0
  632. package/dist/seed/beyblade-seed-data.js +1129 -0
  633. package/dist/seed/bids-seed-data.d.ts +4 -2
  634. package/dist/seed/bids-seed-data.js +343 -1067
  635. package/dist/seed/blog-posts-seed-data.d.ts +3 -2
  636. package/dist/seed/blog-posts-seed-data.js +258 -181
  637. package/dist/seed/brands-seed-data.d.ts +7 -0
  638. package/dist/seed/brands-seed-data.js +410 -0
  639. package/dist/seed/carousel-slides-seed-data.d.ts +3 -2
  640. package/dist/seed/carousel-slides-seed-data.js +177 -216
  641. package/dist/seed/cart-seed-data.d.ts +8 -8
  642. package/dist/seed/cart-seed-data.js +73 -74
  643. package/dist/seed/categories-seed-data.d.ts +4 -2
  644. package/dist/seed/categories-seed-data.js +720 -879
  645. package/dist/seed/conversations-seed-data.d.ts +8 -0
  646. package/dist/seed/conversations-seed-data.js +388 -0
  647. package/dist/seed/cosplay-accessories-seed-data.d.ts +8 -0
  648. package/dist/seed/cosplay-accessories-seed-data.js +647 -0
  649. package/dist/seed/coupon-usage-seed-data.d.ts +25 -0
  650. package/dist/seed/coupon-usage-seed-data.js +69 -0
  651. package/dist/seed/coupons-seed-data.d.ts +4 -2
  652. package/dist/seed/coupons-seed-data.js +204 -338
  653. package/dist/seed/events-seed-data.d.ts +4 -2
  654. package/dist/seed/events-seed-data.js +125 -588
  655. package/dist/seed/factories/cart.factory.d.ts +0 -1
  656. package/dist/seed/factories/cart.factory.js +2 -2
  657. package/dist/seed/faq-seed-data.d.ts +11 -41
  658. package/dist/seed/faq-seed-data.js +833 -1977
  659. package/dist/seed/grouped-listings-seed-data.d.ts +8 -0
  660. package/dist/seed/grouped-listings-seed-data.js +201 -0
  661. package/dist/seed/homepage-sections-seed-data.d.ts +3 -13
  662. package/dist/seed/homepage-sections-seed-data.js +228 -252
  663. package/dist/seed/hot-wheels-seed-data.d.ts +7 -0
  664. package/dist/seed/hot-wheels-seed-data.js +1612 -0
  665. package/dist/seed/index.d.ts +12 -6
  666. package/dist/seed/index.js +10 -7
  667. package/dist/seed/letitrip-official-seed-data.d.ts +8 -0
  668. package/dist/seed/letitrip-official-seed-data.js +399 -0
  669. package/dist/seed/manifest.d.ts +15 -0
  670. package/dist/seed/manifest.js +140 -0
  671. package/dist/seed/notifications-seed-data.d.ts +4 -2
  672. package/dist/seed/notifications-seed-data.js +117 -440
  673. package/dist/seed/orders-seed-data.d.ts +4 -2
  674. package/dist/seed/orders-seed-data.js +1090 -521
  675. package/dist/seed/payouts-seed-data.d.ts +4 -2
  676. package/dist/seed/payouts-seed-data.js +522 -145
  677. package/dist/seed/pokemon-carousel-slides-seed-data.d.ts +4 -2
  678. package/dist/seed/pokemon-carousel-slides-seed-data.js +157 -268
  679. package/dist/seed/pokemon-categories-seed-data.d.ts +18 -21
  680. package/dist/seed/pokemon-categories-seed-data.js +445 -1025
  681. package/dist/seed/pokemon-coupons-seed-data.d.ts +6 -0
  682. package/dist/seed/pokemon-coupons-seed-data.js +465 -0
  683. package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +3 -2
  684. package/dist/seed/pokemon-homepage-sections-seed-data.js +120 -249
  685. package/dist/seed/pokemon-products-seed-data.d.ts +1 -1
  686. package/dist/seed/pokemon-products-seed-data.js +720 -48
  687. package/dist/seed/pokemon-seed-bundle.d.ts +36 -11
  688. package/dist/seed/pokemon-seed-bundle.js +60 -11
  689. package/dist/seed/pokemon-stores-seed-data.d.ts +2 -3
  690. package/dist/seed/pokemon-stores-seed-data.js +135 -34
  691. package/dist/seed/pokemon-users-seed-data.d.ts +2 -2
  692. package/dist/seed/pokemon-users-seed-data.js +344 -261
  693. package/dist/seed/products-auctions-seed-data.d.ts +10 -0
  694. package/dist/seed/products-auctions-seed-data.js +689 -0
  695. package/dist/seed/products-preorders-seed-data.d.ts +9 -0
  696. package/dist/seed/products-preorders-seed-data.js +483 -0
  697. package/dist/seed/products-seed-data.js +34 -13
  698. package/dist/seed/products-standard-seed-data.d.ts +8 -0
  699. package/dist/seed/products-standard-seed-data.js +4179 -0
  700. package/dist/seed/retro-gaming-seed-data.d.ts +8 -0
  701. package/dist/seed/retro-gaming-seed-data.js +801 -0
  702. package/dist/seed/reviews-seed-data.d.ts +4 -2
  703. package/dist/seed/reviews-seed-data.js +1005 -441
  704. package/dist/seed/scammers-seed-data.d.ts +17 -0
  705. package/dist/seed/scammers-seed-data.js +118 -0
  706. package/dist/seed/site-settings-seed-data.js +39 -16
  707. package/dist/seed/store-addresses-seed-data.js +187 -65
  708. package/dist/seed/stores-seed-data.d.ts +3 -9
  709. package/dist/seed/stores-seed-data.js +212 -102
  710. package/dist/seed/sublisting-categories-seed-data.d.ts +7 -0
  711. package/dist/seed/sublisting-categories-seed-data.js +315 -0
  712. package/dist/seed/transformers-seed-data.d.ts +7 -0
  713. package/dist/seed/transformers-seed-data.js +530 -0
  714. package/dist/seed/users-seed-data.d.ts +3 -2
  715. package/dist/seed/users-seed-data.js +531 -440
  716. package/dist/seed/wishlists-seed-data.d.ts +5 -1
  717. package/dist/seed/wishlists-seed-data.js +84 -6
  718. package/dist/server.d.ts +10 -2
  719. package/dist/server.js +14 -4
  720. package/dist/tokens/index.d.ts +6 -0
  721. package/dist/tokens/index.js +2 -0
  722. package/dist/tokens/tokens.css +76 -31
  723. package/dist/ui/components/Avatar.style.css +10 -12
  724. package/dist/ui/components/BaseListingCard.d.ts +8 -3
  725. package/dist/ui/components/BaseListingCard.js +39 -30
  726. package/dist/ui/components/BaseListingCard.style.css +8 -6
  727. package/dist/ui/components/BulkActionsBar.d.ts +16 -0
  728. package/dist/ui/components/BulkActionsBar.js +22 -0
  729. package/dist/ui/components/Button.style.css +23 -23
  730. package/dist/ui/components/Card.style.css +60 -62
  731. package/dist/ui/components/Checkbox.style.css +19 -21
  732. package/dist/ui/components/DashboardStatsCard.style.css +12 -14
  733. package/dist/ui/components/Drawer.style.css +18 -14
  734. package/dist/ui/components/Dropdown.style.css +25 -27
  735. package/dist/ui/components/EmptyState.style.css +2 -4
  736. package/dist/ui/components/HorizontalScroller.d.ts +3 -1
  737. package/dist/ui/components/HorizontalScroller.js +130 -21
  738. package/dist/ui/components/HorizontalScroller.style.css +2 -2
  739. package/dist/ui/components/ImageLightbox.d.ts +0 -9
  740. package/dist/ui/components/ImageLightbox.js +43 -9
  741. package/dist/ui/components/InlineCreateSelect.d.ts +38 -0
  742. package/dist/ui/components/InlineCreateSelect.js +70 -0
  743. package/dist/ui/components/ListingLayout.style.css +41 -77
  744. package/dist/ui/components/ListingToolbar.d.ts +54 -0
  745. package/dist/ui/components/ListingToolbar.js +34 -0
  746. package/dist/ui/components/Modal.style.css +14 -10
  747. package/dist/ui/components/PageLoader.d.ts +11 -0
  748. package/dist/ui/components/PageLoader.js +21 -0
  749. package/dist/ui/components/Radio.style.css +34 -36
  750. package/dist/ui/components/RichTextEditor.js +1 -1
  751. package/dist/ui/components/RowActionMenu.d.ts +1 -0
  752. package/dist/ui/components/RowActionMenu.js +4 -2
  753. package/dist/ui/components/SectionTabs.js +1 -1
  754. package/dist/ui/components/SectionTabs.style.css +1 -0
  755. package/dist/ui/components/SideDrawer.style.css +3 -11
  756. package/dist/ui/components/SideModal.style.css +4 -8
  757. package/dist/ui/components/Slider.style.css +2 -4
  758. package/dist/ui/components/Tabs.style.css +8 -10
  759. package/dist/ui/components/Toast.style.css +22 -24
  760. package/dist/ui/components/Toggle.style.css +11 -13
  761. package/dist/ui/index.d.ts +9 -0
  762. package/dist/ui/index.js +5 -0
  763. package/dist/ui/rich-text/RichText.js +21 -2
  764. package/dist/ui/rich-text/RichText.style.css +292 -5
  765. package/dist/ui/rich-text/RichTextRenderer.d.ts +15 -0
  766. package/dist/ui/rich-text/RichTextRenderer.js +15 -0
  767. package/dist/utils/id-generators.d.ts +10 -0
  768. package/dist/utils/id-generators.js +12 -0
  769. package/dist/validation/schemas.d.ts +9 -9
  770. package/package.json +5 -1
  771. package/README.md +0 -116
@@ -39,35 +39,35 @@ function withRichTextDescription(item) {
39
39
  // Seller shortcuts
40
40
  const MISTY = {
41
41
  sellerId: "user-misty-water-gym-misty",
42
- storeId: "store-mistys-water-cards",
42
+ storeId: "mistys-water-cards",
43
43
  sellerName: "Misty's Water Cards",
44
44
  sellerEmail: "misty@letitrip.in",
45
45
  };
46
46
  const SURGE = {
47
47
  sellerId: "user-lt-surge-electric-surge",
48
- storeId: "store-surges-electric-emporium",
48
+ storeId: "surges-electric-emporium",
49
49
  sellerName: "Surge's Electric Emporium",
50
50
  sellerEmail: "surge@letitrip.in",
51
51
  };
52
52
  const BLAINE = {
53
53
  sellerId: "user-blaine-fire-gym-blaine",
54
- storeId: "store-blaines-fire-shoppe",
54
+ storeId: "blaines-fire-shoppe",
55
55
  sellerName: "Blaine's Fire Shoppe",
56
56
  sellerEmail: "blaine@letitrip.in",
57
57
  };
58
58
  // Helper — pokemontcg.io Base Set card image
59
59
  const cardImg = (num) => `https://images.pokemontcg.io/base1/${num}_hires.png`;
60
60
  export const pokemonProductsSeedData = [
61
- // ════════════════════════════════════════════════════════════
62
- // HOLO RARE SINGLES (cards 116)
63
- // ════════════════════════════════════════════════════════════
61
+ // ════════════════════════════════════════════════════════════
62
+ // HOLO RARE SINGLES (cards 1–16)
63
+ // ════════════════════════════════════════════════════════════
64
64
  // #4 — Charizard (the crown jewel)
65
65
  {
66
66
  id: "product-charizard-base1-4-holo-rare-fire-blaine-1",
67
67
  title: "Charizard — Base Set #4 Holo Rare (Near Mint)",
68
68
  description: "The most iconic card in Pokémon history. First-edition Base Set Charizard in Near Mint condition. " +
69
69
  "Lightly played centering, no scratches on holo surface. Comes in a hard sleeve and top-loader.",
70
- slug: "charizard-base1-4-holo-rare",
70
+ slug: "product-charizard-base1-4-holo-rare",
71
71
  category: "category-holo-rare-rarity",
72
72
  subcategory: "Fire",
73
73
  brand: "Wizards of the Coast",
@@ -113,7 +113,7 @@ export const pokemonProductsSeedData = [
113
113
  title: "Blastoise — Base Set #2 Holo Rare (Near Mint)",
114
114
  description: "Blastoise Holo Rare from the original Pokémon Base Set. Near Mint, light play centering. " +
115
115
  "A must-have Water-type collectible.",
116
- slug: "blastoise-base1-2-holo-rare",
116
+ slug: "product-blastoise-base1-2-holo-rare",
117
117
  category: "category-holo-rare-rarity",
118
118
  subcategory: "Water",
119
119
  brand: "Wizards of the Coast",
@@ -154,7 +154,7 @@ export const pokemonProductsSeedData = [
154
154
  id: "product-venusaur-base1-15-holo-rare-grass-blaine-1",
155
155
  title: "Venusaur — Base Set #15 Holo Rare (Lightly Played)",
156
156
  description: "Venusaur Holo Rare from Base Set. Lightly Played — minor corner wear, holo surface pristine.",
157
- slug: "venusaur-base1-15-holo-rare",
157
+ slug: "product-venusaur-base1-15-holo-rare",
158
158
  category: "category-holo-rare-rarity",
159
159
  subcategory: "Grass",
160
160
  brand: "Wizards of the Coast",
@@ -193,7 +193,7 @@ export const pokemonProductsSeedData = [
193
193
  id: "product-mewtwo-base1-10-holo-rare-psychic-surge-1",
194
194
  title: "Mewtwo — Base Set #10 Holo Rare (Near Mint)",
195
195
  description: "The Genetic Pokémon. Mewtwo Holo Rare from the original Base Set in Near Mint condition.",
196
- slug: "mewtwo-base1-10-holo-rare",
196
+ slug: "product-mewtwo-base1-10-holo-rare",
197
197
  category: "category-holo-rare-rarity",
198
198
  subcategory: "Psychic",
199
199
  brand: "Wizards of the Coast",
@@ -233,7 +233,7 @@ export const pokemonProductsSeedData = [
233
233
  id: "product-zapdos-base1-16-holo-rare-electric-surge-1",
234
234
  title: "Zapdos — Base Set #16 Holo Rare (Near Mint)",
235
235
  description: "Zapdos Holo Rare from Base Set. One of the three legendary birds — this one is pure Electric.",
236
- slug: "zapdos-base1-16-holo-rare",
236
+ slug: "product-zapdos-base1-16-holo-rare",
237
237
  category: "category-holo-rare-rarity",
238
238
  subcategory: "Electric",
239
239
  brand: "Wizards of the Coast",
@@ -272,7 +272,7 @@ export const pokemonProductsSeedData = [
272
272
  id: "product-chansey-base1-3-holo-rare-colorless-misty-1",
273
273
  title: "Chansey — Base Set #3 Holo Rare (Near Mint)",
274
274
  description: "Chansey with 120 HP — the tankiest Base Set card. Holo Rare, Near Mint.",
275
- slug: "chansey-base1-3-holo-rare",
275
+ slug: "product-chansey-base1-3-holo-rare",
276
276
  category: "category-holo-rare-rarity",
277
277
  subcategory: "Colorless",
278
278
  brand: "Wizards of the Coast",
@@ -311,7 +311,7 @@ export const pokemonProductsSeedData = [
311
311
  id: "product-gyarados-base1-6-holo-rare-water-misty-1",
312
312
  title: "Gyarados — Base Set #6 Holo Rare (Near Mint)",
313
313
  description: "The fearsome sea serpent. Gyarados Holo Rare from Base Set, Near Mint.",
314
- slug: "gyarados-base1-6-holo-rare",
314
+ slug: "product-gyarados-base1-6-holo-rare",
315
315
  category: "category-holo-rare-rarity",
316
316
  subcategory: "Water",
317
317
  brand: "Wizards of the Coast",
@@ -350,7 +350,7 @@ export const pokemonProductsSeedData = [
350
350
  id: "product-magneton-base1-9-holo-rare-electric-surge-1",
351
351
  title: "Magneton — Base Set #9 Holo Rare (Lightly Played)",
352
352
  description: "Magneton Holo Rare, Lightly Played. Light whitening on corners, holo face clean.",
353
- slug: "magneton-base1-9-holo-rare",
353
+ slug: "product-magneton-base1-9-holo-rare",
354
354
  category: "category-holo-rare-rarity",
355
355
  subcategory: "Electric",
356
356
  brand: "Wizards of the Coast",
@@ -384,15 +384,15 @@ export const pokemonProductsSeedData = [
384
384
  createdAt: daysAgo(28),
385
385
  updatedAt: daysAgo(9),
386
386
  },
387
- // ════════════════════════════════════════════════════════════
387
+ // ════════════════════════════════════════════════════════════
388
388
  // NON-HOLO RARE SINGLES
389
- // ════════════════════════════════════════════════════════════
389
+ // ════════════════════════════════════════════════════════════
390
390
  // #17 — Beedrill
391
391
  {
392
392
  id: "product-beedrill-base1-17-non-holo-rare-grass-blaine-1",
393
393
  title: "Beedrill — Base Set #17 Non-Holo Rare (Near Mint)",
394
394
  description: "Beedrill Non-Holo Rare. A Grass-type attacker classic from the original Base Set.",
395
- slug: "beedrill-base1-17-non-holo-rare",
395
+ slug: "product-beedrill-base1-17-non-holo-rare",
396
396
  category: "category-non-holo-rare-rarity",
397
397
  subcategory: "Grass",
398
398
  brand: "Wizards of the Coast",
@@ -431,7 +431,7 @@ export const pokemonProductsSeedData = [
431
431
  id: "product-dugtrio-base1-19-non-holo-rare-fighting-misty-1",
432
432
  title: "Dugtrio — Base Set #19 Non-Holo Rare (Near Mint)",
433
433
  description: "Dugtrio Non-Holo Rare from Base Set. Subsonic move artwork is iconic.",
434
- slug: "dugtrio-base1-19-non-holo-rare",
434
+ slug: "product-dugtrio-base1-19-non-holo-rare",
435
435
  category: "category-non-holo-rare-rarity",
436
436
  subcategory: "Fighting",
437
437
  brand: "Wizards of the Coast",
@@ -470,7 +470,7 @@ export const pokemonProductsSeedData = [
470
470
  id: "product-haunter-base1-24-non-holo-rare-psychic-surge-1",
471
471
  title: "Haunter — Base Set #24 Non-Holo Rare (Near Mint)",
472
472
  description: "Haunter Non-Holo Rare. A beloved Psychic-type card with the classic Lick attack.",
473
- slug: "haunter-base1-24-non-holo-rare",
473
+ slug: "product-haunter-base1-24-non-holo-rare",
474
474
  category: "category-non-holo-rare-rarity",
475
475
  subcategory: "Psychic",
476
476
  brand: "Wizards of the Coast",
@@ -504,15 +504,15 @@ export const pokemonProductsSeedData = [
504
504
  createdAt: daysAgo(22),
505
505
  updatedAt: daysAgo(7),
506
506
  },
507
- // ════════════════════════════════════════════════════════════
507
+ // ════════════════════════════════════════════════════════════
508
508
  // UNCOMMON SINGLES
509
- // ════════════════════════════════════════════════════════════
509
+ // ════════════════════════════════════════════════════════════
510
510
  // #35 — Clefairy
511
511
  {
512
512
  id: "product-clefairy-base1-35-uncommon-colorless-misty-1",
513
513
  title: "Clefairy — Base Set #35 Uncommon (Near Mint)",
514
514
  description: "Clefairy Uncommon from Base Set. Uses Metronome — a nostalgic fan favourite.",
515
- slug: "clefairy-base1-35-uncommon",
515
+ slug: "product-clefairy-base1-35-uncommon",
516
516
  category: "category-uncommon-rarity",
517
517
  subcategory: "Colorless",
518
518
  brand: "Wizards of the Coast",
@@ -551,7 +551,7 @@ export const pokemonProductsSeedData = [
551
551
  id: "product-growlithe-base1-40-uncommon-fire-blaine-1",
552
552
  title: "Growlithe — Base Set #40 Uncommon (Near Mint)",
553
553
  description: "Growlithe Uncommon from Base Set. A loyal Fire-type favourite.",
554
- slug: "growlithe-base1-40-uncommon",
554
+ slug: "product-growlithe-base1-40-uncommon",
555
555
  category: "category-uncommon-rarity",
556
556
  subcategory: "Fire",
557
557
  brand: "Wizards of the Coast",
@@ -590,7 +590,7 @@ export const pokemonProductsSeedData = [
590
590
  id: "product-pikachu-base1-58-common-electric-surge-1",
591
591
  title: "Pikachu — Base Set #58 Common (Near Mint)",
592
592
  description: "The Pokémon mascot himself. Base Set Pikachu, Common, Near Mint — yellow cheeks version.",
593
- slug: "pikachu-base1-58-common",
593
+ slug: "product-pikachu-base1-58-common",
594
594
  category: "category-common-rarity",
595
595
  subcategory: "Electric",
596
596
  brand: "Wizards of the Coast",
@@ -626,15 +626,15 @@ export const pokemonProductsSeedData = [
626
626
  createdAt: daysAgo(50),
627
627
  updatedAt: daysAgo(1),
628
628
  },
629
- // ════════════════════════════════════════════════════════════
629
+ // ════════════════════════════════════════════════════════════
630
630
  // TRAINER CARDS
631
- // ════════════════════════════════════════════════════════════
631
+ // ════════════════════════════════════════════════════════════
632
632
  // #88 — Professor Oak
633
633
  {
634
634
  id: "product-professor-oak-base1-88-uncommon-trainer-surge-1",
635
635
  title: "Professor Oak — Base Set #88 Trainer (Near Mint)",
636
636
  description: "Draw 7 cards. Professor Oak is one of the most powerful Trainer cards ever printed. Near Mint copy.",
637
- slug: "professor-oak-base1-88-trainer",
637
+ slug: "product-professor-oak-base1-88-trainer",
638
638
  category: "category-trainer-type-card-type",
639
639
  subcategory: "Trainer",
640
640
  brand: "Wizards of the Coast",
@@ -674,7 +674,7 @@ export const pokemonProductsSeedData = [
674
674
  id: "product-energy-retrieval-base1-91-common-trainer-misty-1",
675
675
  title: "Energy Retrieval — Base Set #91 Trainer (Near Mint)",
676
676
  description: "Return 2 Basic Energy from discard to hand. A staple in Water decks. Near Mint.",
677
- slug: "energy-retrieval-base1-91-trainer",
677
+ slug: "product-energy-retrieval-base1-91-trainer",
678
678
  category: "category-trainer-type-card-type",
679
679
  subcategory: "Trainer",
680
680
  brand: "Wizards of the Coast",
@@ -709,15 +709,15 @@ export const pokemonProductsSeedData = [
709
709
  createdAt: daysAgo(22),
710
710
  updatedAt: daysAgo(6),
711
711
  },
712
- // ════════════════════════════════════════════════════════════
712
+ // ════════════════════════════════════════════════════════════
713
713
  // ENERGY CARDS
714
- // ════════════════════════════════════════════════════════════
714
+ // ════════════════════════════════════════════════════════════
715
715
  // #99 — Water Energy (x10 lot)
716
716
  {
717
717
  id: "product-water-energy-base1-99-common-energy-misty-lot",
718
718
  title: "Water Energy — Base Set #99 x10 Lot (Near Mint)",
719
- description: "10× Water Energy from the original Base Set. Near Mint. Perfect for deck building.",
720
- slug: "water-energy-base1-99-x10-lot",
719
+ description: "10× Water Energy from the original Base Set. Near Mint. Perfect for deck building.",
720
+ slug: "product-water-energy-base1-99-x10-lot",
721
721
  category: "category-energy-type-card-type",
722
722
  subcategory: "Water",
723
723
  brand: "Wizards of the Coast",
@@ -757,8 +757,8 @@ export const pokemonProductsSeedData = [
757
757
  {
758
758
  id: "product-fire-energy-base1-100-common-energy-blaine-lot",
759
759
  title: "Fire Energy — Base Set #100 x10 Lot (Near Mint)",
760
- description: "10× Fire Energy from Base Set. Perfect for Charizard and Arcanine decks.",
761
- slug: "fire-energy-base1-100-x10-lot",
760
+ description: "10× Fire Energy from Base Set. Perfect for Charizard and Arcanine decks.",
761
+ slug: "product-fire-energy-base1-100-x10-lot",
762
762
  category: "category-energy-type-card-type",
763
763
  subcategory: "Fire",
764
764
  brand: "Wizards of the Coast",
@@ -798,8 +798,8 @@ export const pokemonProductsSeedData = [
798
798
  {
799
799
  id: "product-lightning-energy-base1-101-common-energy-surge-lot",
800
800
  title: "Lightning Energy — Base Set #101 x10 Lot (Near Mint)",
801
- description: "10× Lightning (Electric) Energy from Base Set. Fuel for Pikachu, Raichu, and Zapdos.",
802
- slug: "lightning-energy-base1-101-x10-lot",
801
+ description: "10× Lightning (Electric) Energy from Base Set. Fuel for Pikachu, Raichu, and Zapdos.",
802
+ slug: "product-lightning-energy-base1-101-x10-lot",
803
803
  category: "category-energy-type-card-type",
804
804
  subcategory: "Electric",
805
805
  brand: "Wizards of the Coast",
@@ -835,16 +835,16 @@ export const pokemonProductsSeedData = [
835
835
  createdAt: daysAgo(12),
836
836
  updatedAt: daysAgo(1),
837
837
  },
838
- // ════════════════════════════════════════════════════════════
838
+ // ════════════════════════════════════════════════════════════
839
839
  // SEALED PRODUCTS
840
- // ════════════════════════════════════════════════════════════
840
+ // ════════════════════════════════════════════════════════════
841
841
  // Booster Pack
842
842
  {
843
843
  id: "product-base-set-booster-pack-sealed-blaine-1",
844
844
  title: "Pokémon Base Set Booster Pack (Sealed, Random Art)",
845
845
  description: "Sealed Pokémon TCG Base Set booster pack with 11 cards and one guaranteed rare. " +
846
846
  "Perfect for vintage collectors searching for authentic Base Set pack openings and long-term sealed investments.",
847
- slug: "pokemon-tcg-base-set-sealed-booster-pack-random-art",
847
+ slug: "product-pokemon-tcg-base-set-sealed-booster-pack-random-art",
848
848
  category: "category-sealed-products",
849
849
  subcategory: "Booster Pack",
850
850
  brand: "Wizards of the Coast",
@@ -885,7 +885,7 @@ export const pokemonProductsSeedData = [
885
885
  title: "Pokémon Base Set 'Zap!' Theme Deck (Sealed)",
886
886
  description: "Factory-sealed Pokémon Base Set Zap! Theme Deck featuring Electric-type strategy cards led by Raichu. " +
887
887
  "Ideal for collectors who want original sealed WOTC era deck products.",
888
- slug: "pokemon-base-set-zap-theme-deck-sealed-raichu",
888
+ slug: "product-pokemon-base-set-zap-theme-deck-sealed-raichu",
889
889
  category: "category-sealed-products",
890
890
  subcategory: "Theme Deck",
891
891
  brand: "Wizards of the Coast",
@@ -919,14 +919,14 @@ export const pokemonProductsSeedData = [
919
919
  createdAt: daysAgo(25),
920
920
  updatedAt: daysAgo(4),
921
921
  },
922
- // ════════════════════════════════════════════════════════════
922
+ // ════════════════════════════════════════════════════════════
923
923
  // ACCESSORIES
924
- // ════════════════════════════════════════════════════════════
924
+ // ════════════════════════════════════════════════════════════
925
925
  {
926
926
  id: "product-pokemon-card-sleeves-standard-blaine-1",
927
927
  title: "Pokémon-Art Card Sleeves (100-pack, Pikachu)",
928
928
  description: "100 standard-size card sleeves featuring Pikachu artwork. Compatible with all Base Set singles.",
929
- slug: "pokemon-pikachu-card-sleeves-100pack",
929
+ slug: "product-pokemon-pikachu-card-sleeves-100pack",
930
930
  category: "category-accessories",
931
931
  subcategory: "Card Sleeves",
932
932
  brand: "Ultra PRO",
@@ -943,7 +943,7 @@ export const pokemonProductsSeedData = [
943
943
  specifications: [
944
944
  { name: "Brand", value: "Ultra PRO" },
945
945
  { name: "Quantity", value: "100 sleeves" },
946
- { name: "Size", value: "Standard (66 × 91 mm)" },
946
+ { name: "Size", value: "Standard (66 × 91 mm)" },
947
947
  { name: "Art", value: "Pikachu" },
948
948
  ],
949
949
  features: ["Acid-free", "Archival quality", "Fits Base Set cards"],
@@ -963,7 +963,7 @@ export const pokemonProductsSeedData = [
963
963
  id: "product-pokemon-9-pocket-binder-misty-1",
964
964
  title: "Pokémon 9-Pocket Binder (360 cards, Charizard Cover)",
965
965
  description: "9-pocket binder for storing and displaying up to 360 Pokémon cards. Charizard cover art.",
966
- slug: "pokemon-charizard-9-pocket-binder",
966
+ slug: "product-pokemon-charizard-9-pocket-binder",
967
967
  category: "category-accessories",
968
968
  subcategory: "Binder",
969
969
  brand: "Ultra PRO",
@@ -996,9 +996,9 @@ export const pokemonProductsSeedData = [
996
996
  createdAt: daysAgo(8),
997
997
  updatedAt: daysAgo(1),
998
998
  },
999
- // ════════════════════════════════════════════════════════════
999
+ // ════════════════════════════════════════════════════════════
1000
1000
  // AUCTION LISTINGS
1001
- // ════════════════════════════════════════════════════════════
1001
+ // ════════════════════════════════════════════════════════════
1002
1002
  // Auction: 1st Edition Charizard
1003
1003
  {
1004
1004
  id: "auction-charizard-1st-ed-base1-4-fire-blaine-auction-1",
@@ -1116,4 +1116,676 @@ export const pokemonProductsSeedData = [
1116
1116
  createdAt: daysAgo(2),
1117
1117
  updatedAt: daysAgo(0),
1118
1118
  },
1119
- ].map((item) => withRichTextDescription(item));
1119
+ // ════════════════════════════════════════════════════════════
1120
+ // MORE HOLO RARES
1121
+ // ════════════════════════════════════════════════════════════
1122
+ // #14 — Raichu
1123
+ {
1124
+ id: "product-raichu-base1-14-holo-rare-electric-surge-1",
1125
+ title: "Raichu — Base Set #14 Holo Rare (Near Mint)",
1126
+ description: "Raichu Holo Rare from Base Set. Powerful Electric-type evolution of Pikachu with 80 HP and the Thunder Punch attack.",
1127
+ slug: "product-raichu-base1-14-holo-rare",
1128
+ category: "category-holo-rare-rarity",
1129
+ subcategory: "Electric",
1130
+ brand: "Wizards of the Coast",
1131
+ price: 8999,
1132
+ currency: _CURRENCY,
1133
+ stockQuantity: 2,
1134
+ availableQuantity: 2,
1135
+ mainImage: cardImg(14),
1136
+ images: [cardImg(14)],
1137
+ status: "published",
1138
+ ...SURGE,
1139
+ featured: false,
1140
+ tags: ["raichu", "holo-rare", "base-set", "electric"],
1141
+ specifications: [
1142
+ { name: "Set", value: "Base Set" },
1143
+ { name: "Card Number", value: "14/102" },
1144
+ { name: "Rarity", value: "Holo Rare" },
1145
+ { name: "Condition", value: "Near Mint" },
1146
+ { name: "Language", value: "English" },
1147
+ ],
1148
+ features: ["Pikachu evolution", "Thunder Punch 30 attack", "Top-loader shipped"],
1149
+ shippingInfo: "Tracked bubble mailer.",
1150
+ returnPolicy: "7-day returns.",
1151
+ condition: "new",
1152
+ insurance: false,
1153
+ shippingPaidBy: "seller",
1154
+ isAuction: false,
1155
+ isPromoted: false,
1156
+ avgRating: 4.7,
1157
+ reviewCount: 3,
1158
+ createdAt: daysAgo(38),
1159
+ updatedAt: daysAgo(5),
1160
+ },
1161
+ // #12 — Ninetales
1162
+ {
1163
+ id: "product-ninetales-base1-12-holo-rare-fire-blaine-1",
1164
+ title: "Ninetales — Base Set #12 Holo Rare (Near Mint)",
1165
+ description: "Ninetales Holo Rare, one of the most visually stunning cards in Base Set. Beautiful fox artwork on a shimmering holo background.",
1166
+ slug: "product-ninetales-base1-12-holo-rare",
1167
+ category: "category-holo-rare-rarity",
1168
+ subcategory: "Fire",
1169
+ brand: "Wizards of the Coast",
1170
+ price: 11999,
1171
+ currency: _CURRENCY,
1172
+ stockQuantity: 1,
1173
+ availableQuantity: 1,
1174
+ mainImage: cardImg(12),
1175
+ images: [cardImg(12)],
1176
+ status: "published",
1177
+ ...BLAINE,
1178
+ featured: false,
1179
+ tags: ["ninetales", "holo-rare", "base-set", "fire"],
1180
+ specifications: [
1181
+ { name: "Set", value: "Base Set" },
1182
+ { name: "Card Number", value: "12/102" },
1183
+ { name: "Rarity", value: "Holo Rare" },
1184
+ { name: "Condition", value: "Near Mint" },
1185
+ { name: "Language", value: "English" },
1186
+ ],
1187
+ features: ["Iconic fox artwork", "Fire Blast 80 damage", "Top-loader shipped"],
1188
+ shippingInfo: "Bubble mailer tracked.",
1189
+ returnPolicy: "7-day returns.",
1190
+ condition: "new",
1191
+ insurance: false,
1192
+ shippingPaidBy: "seller",
1193
+ isAuction: false,
1194
+ isPromoted: false,
1195
+ avgRating: 4.8,
1196
+ reviewCount: 4,
1197
+ createdAt: daysAgo(32),
1198
+ updatedAt: daysAgo(4),
1199
+ },
1200
+ // #7 — Hitmonchan
1201
+ {
1202
+ id: "product-hitmonchan-base1-7-holo-rare-fighting-misty-1",
1203
+ title: "Hitmonchan — Base Set #7 Holo Rare (Near Mint)",
1204
+ description: "Hitmonchan Holo Rare — a staple Fighting-type card widely used in competitive Base Set format decks.",
1205
+ slug: "product-hitmonchan-base1-7-holo-rare",
1206
+ category: "category-holo-rare-rarity",
1207
+ subcategory: "Fighting",
1208
+ brand: "Wizards of the Coast",
1209
+ price: 9499,
1210
+ currency: _CURRENCY,
1211
+ stockQuantity: 3,
1212
+ availableQuantity: 3,
1213
+ mainImage: cardImg(7),
1214
+ images: [cardImg(7)],
1215
+ status: "published",
1216
+ ...MISTY,
1217
+ featured: false,
1218
+ tags: ["hitmonchan", "holo-rare", "base-set", "fighting"],
1219
+ specifications: [
1220
+ { name: "Set", value: "Base Set" },
1221
+ { name: "Card Number", value: "7/102" },
1222
+ { name: "Rarity", value: "Holo Rare" },
1223
+ { name: "Condition", value: "Near Mint" },
1224
+ { name: "Language", value: "English" },
1225
+ ],
1226
+ features: ["Competitive staple", "Jab 20 / Special Punch 40"],
1227
+ shippingInfo: "Tracked shipment.",
1228
+ returnPolicy: "7-day returns.",
1229
+ condition: "new",
1230
+ insurance: false,
1231
+ shippingPaidBy: "seller",
1232
+ isAuction: false,
1233
+ isPromoted: false,
1234
+ avgRating: 4.6,
1235
+ reviewCount: 5,
1236
+ createdAt: daysAgo(42),
1237
+ updatedAt: daysAgo(6),
1238
+ },
1239
+ // #1 — Alakazam
1240
+ {
1241
+ id: "product-alakazam-base1-1-holo-rare-psychic-surge-1",
1242
+ title: "Alakazam — Base Set #1 Holo Rare (Near Mint)",
1243
+ description: "Alakazam Holo Rare — card #1 in Base Set. Features the iconic Damage Swap Pokémon Power.",
1244
+ slug: "product-alakazam-base1-1-holo-rare",
1245
+ category: "category-holo-rare-rarity",
1246
+ subcategory: "Psychic",
1247
+ brand: "Wizards of the Coast",
1248
+ price: 13999,
1249
+ currency: _CURRENCY,
1250
+ stockQuantity: 2,
1251
+ availableQuantity: 2,
1252
+ mainImage: cardImg(1),
1253
+ images: [cardImg(1)],
1254
+ status: "published",
1255
+ ...SURGE,
1256
+ featured: false,
1257
+ tags: ["alakazam", "holo-rare", "base-set", "psychic"],
1258
+ specifications: [
1259
+ { name: "Set", value: "Base Set" },
1260
+ { name: "Card Number", value: "1/102" },
1261
+ { name: "Rarity", value: "Holo Rare" },
1262
+ { name: "Condition", value: "Near Mint" },
1263
+ { name: "Language", value: "English" },
1264
+ ],
1265
+ features: ["Damage Swap Pokémon Power", "Card #1 in set", "Top-loader shipped"],
1266
+ shippingInfo: "Tracked shipping.",
1267
+ returnPolicy: "7-day returns.",
1268
+ condition: "new",
1269
+ insurance: false,
1270
+ shippingPaidBy: "seller",
1271
+ isAuction: false,
1272
+ isPromoted: false,
1273
+ avgRating: 4.7,
1274
+ reviewCount: 3,
1275
+ createdAt: daysAgo(48),
1276
+ updatedAt: daysAgo(3),
1277
+ },
1278
+ // ════════════════════════════════════════════════════════════
1279
+ // MORE NON-HOLO RARES
1280
+ // ════════════════════════════════════════════════════════════
1281
+ // #23 — Arcanine
1282
+ {
1283
+ id: "product-arcanine-base1-23-non-holo-rare-fire-blaine-1",
1284
+ title: "Arcanine — Base Set #23 Non-Holo Rare (Near Mint)",
1285
+ description: "Arcanine Non-Holo Rare from Base Set — the Legendary Pokémon. Flame Wheel 50 damage, near mint condition.",
1286
+ slug: "product-arcanine-base1-23-non-holo-rare",
1287
+ category: "category-non-holo-rare-rarity",
1288
+ subcategory: "Fire",
1289
+ brand: "Wizards of the Coast",
1290
+ price: 1799,
1291
+ currency: _CURRENCY,
1292
+ stockQuantity: 7,
1293
+ availableQuantity: 7,
1294
+ mainImage: cardImg(23),
1295
+ images: [cardImg(23)],
1296
+ status: "published",
1297
+ ...BLAINE,
1298
+ featured: false,
1299
+ tags: ["arcanine", "non-holo-rare", "base-set", "fire"],
1300
+ specifications: [
1301
+ { name: "Set", value: "Base Set" },
1302
+ { name: "Card Number", value: "23/102" },
1303
+ { name: "Rarity", value: "Non-Holo Rare" },
1304
+ { name: "Condition", value: "Near Mint" },
1305
+ { name: "Language", value: "English" },
1306
+ ],
1307
+ features: ["Flare card", "Penny sleeved"],
1308
+ shippingInfo: "PWE with tracking.",
1309
+ returnPolicy: "7-day returns.",
1310
+ condition: "new",
1311
+ insurance: false,
1312
+ shippingPaidBy: "buyer",
1313
+ isAuction: false,
1314
+ isPromoted: false,
1315
+ avgRating: 4.4,
1316
+ reviewCount: 2,
1317
+ createdAt: daysAgo(16),
1318
+ updatedAt: daysAgo(7),
1319
+ },
1320
+ // #20 — Electabuzz
1321
+ {
1322
+ id: "product-electabuzz-base1-20-non-holo-rare-electric-surge-1",
1323
+ title: "Electabuzz — Base Set #20 Non-Holo Rare (Near Mint)",
1324
+ description: "Electabuzz Non-Holo Rare — another competitive Base Set staple with Thunderpunch.",
1325
+ slug: "product-electabuzz-base1-20-non-holo-rare",
1326
+ category: "category-non-holo-rare-rarity",
1327
+ subcategory: "Electric",
1328
+ brand: "Wizards of the Coast",
1329
+ price: 1599,
1330
+ currency: _CURRENCY,
1331
+ stockQuantity: 8,
1332
+ availableQuantity: 8,
1333
+ mainImage: cardImg(20),
1334
+ images: [cardImg(20)],
1335
+ status: "published",
1336
+ ...SURGE,
1337
+ featured: false,
1338
+ tags: ["electabuzz", "non-holo-rare", "base-set", "electric"],
1339
+ specifications: [
1340
+ { name: "Set", value: "Base Set" },
1341
+ { name: "Card Number", value: "20/102" },
1342
+ { name: "Rarity", value: "Non-Holo Rare" },
1343
+ { name: "Condition", value: "Near Mint" },
1344
+ { name: "Language", value: "English" },
1345
+ ],
1346
+ features: ["Competitive pick for Electric decks", "Penny sleeved"],
1347
+ shippingInfo: "PWE or tracked.",
1348
+ returnPolicy: "7-day returns.",
1349
+ condition: "new",
1350
+ insurance: false,
1351
+ shippingPaidBy: "buyer",
1352
+ isAuction: false,
1353
+ isPromoted: false,
1354
+ avgRating: 4.3,
1355
+ reviewCount: 2,
1356
+ createdAt: daysAgo(14),
1357
+ updatedAt: daysAgo(8),
1358
+ },
1359
+ // #30 — Magmar
1360
+ {
1361
+ id: "product-magmar-base1-30-non-holo-rare-fire-blaine-1",
1362
+ title: "Magmar — Base Set #30 Non-Holo Rare (Lightly Played)",
1363
+ description: "Magmar Non-Holo Rare, Lightly Played. Slight edge whitening but face clean.",
1364
+ slug: "product-magmar-base1-30-non-holo-rare-lp",
1365
+ category: "category-non-holo-rare-rarity",
1366
+ subcategory: "Fire",
1367
+ brand: "Wizards of the Coast",
1368
+ price: 999,
1369
+ currency: _CURRENCY,
1370
+ stockQuantity: 5,
1371
+ availableQuantity: 5,
1372
+ mainImage: cardImg(30),
1373
+ images: [cardImg(30)],
1374
+ status: "published",
1375
+ ...BLAINE,
1376
+ featured: false,
1377
+ tags: ["magmar", "non-holo-rare", "base-set", "fire"],
1378
+ specifications: [
1379
+ { name: "Set", value: "Base Set" },
1380
+ { name: "Card Number", value: "30/102" },
1381
+ { name: "Rarity", value: "Non-Holo Rare" },
1382
+ { name: "Condition", value: "Lightly Played" },
1383
+ { name: "Language", value: "English" },
1384
+ ],
1385
+ features: ["Budget Fire staple"],
1386
+ shippingInfo: "PWE.",
1387
+ returnPolicy: "No returns on LP.",
1388
+ condition: "used",
1389
+ insurance: false,
1390
+ shippingPaidBy: "buyer",
1391
+ isAuction: false,
1392
+ isPromoted: false,
1393
+ avgRating: 4.1,
1394
+ reviewCount: 1,
1395
+ createdAt: daysAgo(10),
1396
+ updatedAt: daysAgo(9),
1397
+ },
1398
+ // ════════════════════════════════════════════════════════════
1399
+ // MORE UNCOMMONS
1400
+ // ════════════════════════════════════════════════════════════
1401
+ // #37 — Dewgong
1402
+ {
1403
+ id: "product-dewgong-base1-37-uncommon-water-misty-1",
1404
+ title: "Dewgong — Base Set #37 Uncommon (Near Mint)",
1405
+ description: "Dewgong Uncommon from Base Set — an underrated Water-type with Aurora Beam.",
1406
+ slug: "product-dewgong-base1-37-uncommon",
1407
+ category: "category-uncommon-rarity",
1408
+ subcategory: "Water",
1409
+ brand: "Wizards of the Coast",
1410
+ price: 649,
1411
+ currency: _CURRENCY,
1412
+ stockQuantity: 12,
1413
+ availableQuantity: 12,
1414
+ mainImage: cardImg(37),
1415
+ images: [cardImg(37)],
1416
+ status: "published",
1417
+ ...MISTY,
1418
+ featured: false,
1419
+ tags: ["dewgong", "uncommon", "base-set", "water"],
1420
+ specifications: [
1421
+ { name: "Set", value: "Base Set" },
1422
+ { name: "Card Number", value: "37/102" },
1423
+ { name: "Rarity", value: "Uncommon" },
1424
+ { name: "Condition", value: "Near Mint" },
1425
+ { name: "Language", value: "English" },
1426
+ ],
1427
+ features: ["Water-type filler", "Penny sleeved"],
1428
+ shippingInfo: "PWE with tracking.",
1429
+ returnPolicy: "7-day returns.",
1430
+ condition: "new",
1431
+ insurance: false,
1432
+ shippingPaidBy: "seller",
1433
+ isAuction: false,
1434
+ isPromoted: false,
1435
+ avgRating: 4.2,
1436
+ reviewCount: 1,
1437
+ createdAt: daysAgo(8),
1438
+ updatedAt: daysAgo(3),
1439
+ },
1440
+ // #42 — Kadabra
1441
+ {
1442
+ id: "product-kadabra-base1-32-uncommon-psychic-surge-1",
1443
+ title: "Kadabra — Base Set #32 Uncommon (Near Mint)",
1444
+ description: "Kadabra Uncommon from Base Set. A notorious card rarely reprinted. Near Mint copy.",
1445
+ slug: "product-kadabra-base1-32-uncommon",
1446
+ category: "category-uncommon-rarity",
1447
+ subcategory: "Psychic",
1448
+ brand: "Wizards of the Coast",
1449
+ price: 2499,
1450
+ currency: _CURRENCY,
1451
+ stockQuantity: 4,
1452
+ availableQuantity: 4,
1453
+ mainImage: cardImg(32),
1454
+ images: [cardImg(32)],
1455
+ status: "published",
1456
+ ...SURGE,
1457
+ featured: false,
1458
+ tags: ["kadabra", "uncommon", "base-set", "psychic", "rare-reprint"],
1459
+ specifications: [
1460
+ { name: "Set", value: "Base Set" },
1461
+ { name: "Card Number", value: "32/102" },
1462
+ { name: "Rarity", value: "Uncommon" },
1463
+ { name: "Condition", value: "Near Mint" },
1464
+ { name: "Language", value: "English" },
1465
+ ],
1466
+ features: ["Rarely reprinted card", "Penny sleeved"],
1467
+ shippingInfo: "Tracked bubble mailer.",
1468
+ returnPolicy: "7-day returns.",
1469
+ condition: "new",
1470
+ insurance: false,
1471
+ shippingPaidBy: "seller",
1472
+ isAuction: false,
1473
+ isPromoted: false,
1474
+ avgRating: 4.6,
1475
+ reviewCount: 3,
1476
+ createdAt: daysAgo(20),
1477
+ updatedAt: daysAgo(6),
1478
+ },
1479
+ // ════════════════════════════════════════════════════════════
1480
+ // MORE TRAINERS
1481
+ // ════════════════════════════════════════════════════════════
1482
+ // #93 — Potion
1483
+ {
1484
+ id: "product-potion-base1-93-common-trainer-misty-1",
1485
+ title: "Potion — Base Set #93 Trainer Common (Near Mint)",
1486
+ description: "Remove 2 damage counters from one of your Pokémon. Potion is the most classic Trainer card ever printed.",
1487
+ slug: "product-potion-base1-93-trainer-common",
1488
+ category: "category-trainer-type-card-type",
1489
+ subcategory: "Trainer",
1490
+ brand: "Wizards of the Coast",
1491
+ price: 399,
1492
+ currency: _CURRENCY,
1493
+ stockQuantity: 40,
1494
+ availableQuantity: 40,
1495
+ mainImage: cardImg(93),
1496
+ images: [cardImg(93)],
1497
+ status: "published",
1498
+ ...MISTY,
1499
+ featured: false,
1500
+ tags: ["potion", "trainer", "base-set", "common"],
1501
+ specifications: [
1502
+ { name: "Set", value: "Base Set" },
1503
+ { name: "Card Number", value: "93/102" },
1504
+ { name: "Rarity", value: "Common" },
1505
+ { name: "Card Type", value: "Trainer" },
1506
+ { name: "Condition", value: "Near Mint" },
1507
+ { name: "Language", value: "English" },
1508
+ ],
1509
+ features: ["Iconic item card", "Bulk lot available on request"],
1510
+ shippingInfo: "PWE shipping.",
1511
+ returnPolicy: "7-day returns.",
1512
+ condition: "new",
1513
+ insurance: false,
1514
+ shippingPaidBy: "buyer",
1515
+ isAuction: false,
1516
+ isPromoted: false,
1517
+ avgRating: 4.3,
1518
+ reviewCount: 3,
1519
+ createdAt: daysAgo(25),
1520
+ updatedAt: daysAgo(5),
1521
+ },
1522
+ // #89 — Bill
1523
+ {
1524
+ id: "product-bill-base1-89-common-trainer-surge-1",
1525
+ title: "Bill — Base Set #89 Trainer Common (Near Mint)",
1526
+ description: "Draw 2 cards. Bill is a beloved draw supporter from Base Set — simple, effective, nostalgic.",
1527
+ slug: "product-bill-base1-89-trainer-common",
1528
+ category: "category-trainer-type-card-type",
1529
+ subcategory: "Trainer",
1530
+ brand: "Wizards of the Coast",
1531
+ price: 499,
1532
+ currency: _CURRENCY,
1533
+ stockQuantity: 35,
1534
+ availableQuantity: 35,
1535
+ mainImage: cardImg(89),
1536
+ images: [cardImg(89)],
1537
+ status: "published",
1538
+ ...SURGE,
1539
+ featured: false,
1540
+ tags: ["bill", "trainer", "base-set", "draw"],
1541
+ specifications: [
1542
+ { name: "Set", value: "Base Set" },
1543
+ { name: "Card Number", value: "89/102" },
1544
+ { name: "Rarity", value: "Common" },
1545
+ { name: "Card Type", value: "Trainer" },
1546
+ { name: "Condition", value: "Near Mint" },
1547
+ { name: "Language", value: "English" },
1548
+ ],
1549
+ features: ["Draw 2 cards", "Penny sleeved"],
1550
+ shippingInfo: "PWE or tracked.",
1551
+ returnPolicy: "7-day returns.",
1552
+ condition: "new",
1553
+ insurance: false,
1554
+ shippingPaidBy: "seller",
1555
+ isAuction: false,
1556
+ isPromoted: false,
1557
+ avgRating: 4.4,
1558
+ reviewCount: 2,
1559
+ createdAt: daysAgo(23),
1560
+ updatedAt: daysAgo(4),
1561
+ },
1562
+ // ════════════════════════════════════════════════════════════
1563
+ // GRADED SLAB (non-auction)
1564
+ // ════════════════════════════════════════════════════════════
1565
+ // Blastoise PSA 8
1566
+ {
1567
+ id: "product-blastoise-psa8-base1-2-water-misty-graded",
1568
+ title: "Blastoise — Base Set #2 Holo Rare (PSA 8 NM-MT)",
1569
+ description: "PSA graded 8 (NM-MT) Blastoise Holo Rare from Base Set. A certified investment-grade slab for serious collectors. No auction — buy it now.",
1570
+ slug: "product-blastoise-base1-2-psa8-holo-graded",
1571
+ category: "category-holo-rare-rarity",
1572
+ subcategory: "Water",
1573
+ brand: "Wizards of the Coast",
1574
+ price: 79999,
1575
+ currency: _CURRENCY,
1576
+ stockQuantity: 1,
1577
+ availableQuantity: 1,
1578
+ mainImage: cardImg(2),
1579
+ images: [cardImg(2)],
1580
+ status: "published",
1581
+ ...MISTY,
1582
+ featured: true,
1583
+ tags: ["blastoise", "holo-rare", "base-set", "psa", "graded", "water"],
1584
+ specifications: [
1585
+ { name: "Set", value: "Base Set" },
1586
+ { name: "Card Number", value: "2/102" },
1587
+ { name: "Rarity", value: "Holo Rare" },
1588
+ { name: "Grade", value: "PSA 8 NM-MT" },
1589
+ { name: "Language", value: "English" },
1590
+ ],
1591
+ features: ["PSA slab", "Investment-grade copy"],
1592
+ shippingInfo: "Insured tracked courier.",
1593
+ returnPolicy: "No returns on graded slabs.",
1594
+ condition: "new",
1595
+ insurance: true,
1596
+ insuranceCost: 2999,
1597
+ shippingPaidBy: "buyer",
1598
+ isAuction: false,
1599
+ isPromoted: true,
1600
+ promotionEndDate: daysAhead(21),
1601
+ avgRating: 5.0,
1602
+ reviewCount: 1,
1603
+ createdAt: daysAgo(15),
1604
+ updatedAt: daysAgo(1),
1605
+ },
1606
+ // Booster Box (sealed)
1607
+ {
1608
+ id: "product-base-set-booster-box-sealed-blaine-2",
1609
+ title: "Pokémon Base Set Booster Box (36 Packs, Sealed)",
1610
+ description: "Factory-sealed Base Set booster box containing 36 packs (11 cards each). The ultimate sealed vintage investment. Ships double-boxed.",
1611
+ slug: "product-pokemon-tcg-base-set-sealed-booster-box-36-packs",
1612
+ category: "category-sealed-products",
1613
+ subcategory: "Booster Box",
1614
+ brand: "Wizards of the Coast",
1615
+ price: 449999,
1616
+ currency: _CURRENCY,
1617
+ stockQuantity: 1,
1618
+ availableQuantity: 1,
1619
+ mainImage: cardImg(4),
1620
+ images: [cardImg(4), cardImg(2), cardImg(10)],
1621
+ status: "published",
1622
+ ...BLAINE,
1623
+ featured: true,
1624
+ tags: ["sealed", "booster-box", "base-set", "investment"],
1625
+ specifications: [
1626
+ { name: "Set", value: "Base Set" },
1627
+ { name: "Product Type", value: "Booster Box" },
1628
+ { name: "Packs", value: "36" },
1629
+ { name: "Cards per Pack", value: "11" },
1630
+ { name: "Condition", value: "Sealed" },
1631
+ ],
1632
+ features: ["Factory sealed", "36 packs", "Double-box shipped", "Insurance included"],
1633
+ shippingInfo: "Double-boxed, insured, signature required.",
1634
+ returnPolicy: "No returns on sealed products.",
1635
+ condition: "new",
1636
+ insurance: true,
1637
+ insuranceCost: 14999,
1638
+ shippingPaidBy: "buyer",
1639
+ isAuction: false,
1640
+ isPromoted: true,
1641
+ promotionEndDate: daysAhead(60),
1642
+ avgRating: 0,
1643
+ reviewCount: 0,
1644
+ createdAt: daysAgo(5),
1645
+ updatedAt: daysAgo(1),
1646
+ },
1647
+ // ════════════════════════════════════════════════════════════
1648
+ // PRE-ORDERS
1649
+ // ════════════════════════════════════════════════════════════
1650
+ {
1651
+ id: "preorder-pokemon-tcg-151-booster-box-misty-1",
1652
+ title: "Pokémon TCG: Scarlet & Violet — 151 Booster Box (Pre-Order)",
1653
+ description: "Pre-order the upcoming Scarlet & Violet: 151 booster box reprint run. 36 packs featuring original 151 Pokémon with modern card quality. " +
1654
+ "Estimated dispatch within 7 days of street date.",
1655
+ slug: "preorder-pokemon-sv-151-booster-box",
1656
+ category: "category-sealed-products",
1657
+ subcategory: "Booster Box",
1658
+ brand: "The Pokémon Company",
1659
+ price: 14999,
1660
+ currency: _CURRENCY,
1661
+ stockQuantity: 50,
1662
+ availableQuantity: 50,
1663
+ mainImage: cardImg(58),
1664
+ images: [cardImg(58), cardImg(4), cardImg(2)],
1665
+ status: "published",
1666
+ ...MISTY,
1667
+ featured: true,
1668
+ tags: ["pre-order", "sealed", "sv-151", "booster-box", "scarlet-violet"],
1669
+ specifications: [
1670
+ { name: "Set", value: "Scarlet & Violet: 151" },
1671
+ { name: "Product Type", value: "Booster Box" },
1672
+ { name: "Packs", value: "36" },
1673
+ { name: "Condition", value: "Pre-Order / Sealed" },
1674
+ { name: "Language", value: "English" },
1675
+ ],
1676
+ features: ["All 151 original Pokémon represented", "Modern card stock", "ETBs also available"],
1677
+ shippingInfo: "Ships within 7 days of street date via tracked courier.",
1678
+ returnPolicy: "No returns on pre-ordered sealed products once dispatched.",
1679
+ condition: "new",
1680
+ insurance: true,
1681
+ insuranceCost: 499,
1682
+ shippingPaidBy: "buyer",
1683
+ isAuction: false,
1684
+ isPreOrder: true,
1685
+ preOrderProductionStatus: "upcoming",
1686
+ preOrderDepositAmount: 2000,
1687
+ preOrderDeliveryDate: daysAhead(60),
1688
+ isPromoted: true,
1689
+ promotionEndDate: daysAhead(45),
1690
+ avgRating: 0,
1691
+ reviewCount: 0,
1692
+ createdAt: daysAgo(7),
1693
+ updatedAt: daysAgo(1),
1694
+ },
1695
+ {
1696
+ id: "preorder-pokemon-temporal-forces-elite-trainer-surge-1",
1697
+ title: "Pokémon TCG: Temporal Forces Elite Trainer Box (Pre-Order)",
1698
+ description: "Pre-order the Temporal Forces Elite Trainer Box featuring Walking Wake ex and Iron Leaves ex. " +
1699
+ "Includes 9 booster packs, promo card, sleeves, dice, and accessories.",
1700
+ slug: "preorder-pokemon-temporal-forces-etb",
1701
+ category: "category-sealed-products",
1702
+ subcategory: "Elite Trainer Box",
1703
+ brand: "The Pokémon Company",
1704
+ price: 5999,
1705
+ currency: _CURRENCY,
1706
+ stockQuantity: 30,
1707
+ availableQuantity: 30,
1708
+ mainImage: cardImg(10),
1709
+ images: [cardImg(10)],
1710
+ status: "published",
1711
+ ...SURGE,
1712
+ featured: false,
1713
+ tags: ["pre-order", "sealed", "temporal-forces", "etb", "elite-trainer-box"],
1714
+ specifications: [
1715
+ { name: "Set", value: "Temporal Forces" },
1716
+ { name: "Product Type", value: "Elite Trainer Box" },
1717
+ { name: "Booster Packs", value: "9" },
1718
+ { name: "Condition", value: "Pre-Order / Sealed" },
1719
+ { name: "Language", value: "English" },
1720
+ ],
1721
+ features: ["9 booster packs", "Promo card", "65 card sleeves", "Dice and counters"],
1722
+ shippingInfo: "Ships on street date via tracked courier.",
1723
+ returnPolicy: "No returns on sealed products.",
1724
+ condition: "new",
1725
+ insurance: false,
1726
+ shippingPaidBy: "seller",
1727
+ isAuction: false,
1728
+ isPreOrder: true,
1729
+ preOrderProductionStatus: "upcoming",
1730
+ preOrderDepositAmount: 1000,
1731
+ preOrderDeliveryDate: daysAhead(45),
1732
+ isPromoted: false,
1733
+ avgRating: 0,
1734
+ reviewCount: 0,
1735
+ createdAt: daysAgo(5),
1736
+ updatedAt: daysAgo(2),
1737
+ },
1738
+ {
1739
+ id: "preorder-pokemon-surging-sparks-booster-bundle-blaine-1",
1740
+ title: "Pokémon TCG: Surging Sparks Booster Bundle (Pre-Order)",
1741
+ description: "Pre-order the Surging Sparks Booster Bundle (6 packs) — featuring Pikachu ex SIR and Raichu VMAX. " +
1742
+ "Great entry-level sealed product for budget collectors.",
1743
+ slug: "preorder-pokemon-surging-sparks-booster-bundle",
1744
+ category: "category-sealed-products",
1745
+ subcategory: "Booster Bundle",
1746
+ brand: "The Pokémon Company",
1747
+ price: 2499,
1748
+ currency: _CURRENCY,
1749
+ stockQuantity: 60,
1750
+ availableQuantity: 60,
1751
+ mainImage: cardImg(14),
1752
+ images: [cardImg(14), cardImg(58)],
1753
+ status: "published",
1754
+ ...BLAINE,
1755
+ featured: false,
1756
+ tags: ["pre-order", "sealed", "surging-sparks", "booster-bundle"],
1757
+ specifications: [
1758
+ { name: "Set", value: "Surging Sparks" },
1759
+ { name: "Product Type", value: "Booster Bundle" },
1760
+ { name: "Booster Packs", value: "6" },
1761
+ { name: "Condition", value: "Pre-Order / Sealed" },
1762
+ { name: "Language", value: "English" },
1763
+ ],
1764
+ features: ["6 packs", "Budget-friendly", "Modern set"],
1765
+ shippingInfo: "Ships on street date.",
1766
+ returnPolicy: "No returns on sealed products.",
1767
+ condition: "new",
1768
+ insurance: false,
1769
+ shippingPaidBy: "buyer",
1770
+ isAuction: false,
1771
+ isPreOrder: true,
1772
+ preOrderProductionStatus: "upcoming",
1773
+ preOrderDepositAmount: 500,
1774
+ preOrderDeliveryDate: daysAhead(30),
1775
+ isPromoted: false,
1776
+ avgRating: 0,
1777
+ reviewCount: 0,
1778
+ createdAt: daysAgo(3),
1779
+ updatedAt: daysAgo(1),
1780
+ },
1781
+ ].map((item) => {
1782
+ const p = withRichTextDescription(item);
1783
+ const isSimplePublished = !p.isAuction &&
1784
+ !p.isPreOrder &&
1785
+ p.status === "published" &&
1786
+ (p.availableQuantity ?? p.stockQuantity ?? 1) > 0;
1787
+ return {
1788
+ ...p,
1789
+ allowOffers: isSimplePublished ? true : (p.allowOffers ?? false),
1790
+ };
1791
+ });