@mohasinac/appkit 2.3.2 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (677) hide show
  1. package/dist/client.d.ts +48 -12
  2. package/dist/client.js +25 -6
  3. package/dist/constants/api-endpoints.d.ts +380 -22
  4. package/dist/constants/api-endpoints.js +66 -13
  5. package/dist/constants/index.d.ts +1 -1
  6. package/dist/constants/index.js +1 -1
  7. package/dist/core/hooks/useSyncManager.d.ts +1 -0
  8. package/dist/core/hooks/useSyncManager.js +83 -0
  9. package/dist/core/integration-keys.d.ts +4 -0
  10. package/dist/core/integration-keys.js +8 -0
  11. package/dist/features/about/components/FAQPageView.js +9 -11
  12. package/dist/features/about/components/PolicyPageView.js +32 -11
  13. package/dist/features/about/components/PublicProfileView.js +77 -11
  14. package/dist/features/account/components/AddressesIndexListing.js +63 -38
  15. package/dist/features/account/components/UserOffersPanel.d.ts +8 -0
  16. package/dist/features/account/components/UserOffersPanel.js +81 -0
  17. package/dist/features/account/components/UserSettingsView.d.ts +2 -1
  18. package/dist/features/account/components/UserSettingsView.js +2 -1
  19. package/dist/features/account/components/UserSidebar.d.ts +6 -1
  20. package/dist/features/account/components/UserSidebar.js +48 -42
  21. package/dist/features/account/components/index.d.ts +2 -0
  22. package/dist/features/account/components/index.js +1 -0
  23. package/dist/features/admin/actions/admin-actions.d.ts +1 -1
  24. package/dist/features/admin/actions/admin-actions.js +13 -3
  25. package/dist/features/admin/components/AdminAdEditorView.js +6 -7
  26. package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +4 -0
  27. package/dist/features/admin/components/AdminAllEventEntriesView.js +102 -0
  28. package/dist/features/admin/components/AdminBidsView.js +94 -8
  29. package/dist/features/admin/components/AdminBlogEditorView.d.ts +7 -0
  30. package/dist/features/admin/components/AdminBlogEditorView.js +162 -0
  31. package/dist/features/admin/components/AdminBlogView.d.ts +4 -1
  32. package/dist/features/admin/components/AdminBlogView.js +61 -31
  33. package/dist/features/admin/components/AdminBrandEditorView.d.ts +7 -0
  34. package/dist/features/admin/components/AdminBrandEditorView.js +104 -0
  35. package/dist/features/admin/components/AdminBrandsView.d.ts +4 -0
  36. package/dist/features/admin/components/AdminBrandsView.js +76 -0
  37. package/dist/features/admin/components/AdminCarouselEditorView.d.ts +8 -0
  38. package/dist/features/admin/components/AdminCarouselEditorView.js +204 -0
  39. package/dist/features/admin/components/AdminCarouselView.js +153 -34
  40. package/dist/features/admin/components/AdminCartsView.d.ts +4 -0
  41. package/dist/features/admin/components/AdminCartsView.js +82 -0
  42. package/dist/features/admin/components/AdminCategoriesView.d.ts +4 -1
  43. package/dist/features/admin/components/AdminCategoriesView.js +66 -48
  44. package/dist/features/admin/components/AdminCategoryEditorView.d.ts +7 -0
  45. package/dist/features/admin/components/AdminCategoryEditorView.js +115 -0
  46. package/dist/features/admin/components/AdminContactEditorView.d.ts +11 -0
  47. package/dist/features/admin/components/AdminContactEditorView.js +32 -0
  48. package/dist/features/admin/components/AdminContactView.js +111 -20
  49. package/dist/features/admin/components/AdminCouponEditorView.d.ts +7 -0
  50. package/dist/features/admin/components/AdminCouponEditorView.js +179 -0
  51. package/dist/features/admin/components/AdminCouponsView.d.ts +4 -1
  52. package/dist/features/admin/components/AdminCouponsView.js +57 -9
  53. package/dist/features/admin/components/AdminDashboardView.js +3 -0
  54. package/dist/features/admin/components/AdminFaqEditorView.d.ts +7 -0
  55. package/dist/features/admin/components/AdminFaqEditorView.js +128 -0
  56. package/dist/features/admin/components/AdminFaqsView.d.ts +4 -1
  57. package/dist/features/admin/components/AdminFaqsView.js +55 -23
  58. package/dist/features/admin/components/AdminFeatureFlagsView.js +33 -24
  59. package/dist/features/admin/components/AdminListingScaffold.d.ts +7 -1
  60. package/dist/features/admin/components/AdminListingScaffold.js +2 -2
  61. package/dist/features/admin/components/AdminMediaView.js +18 -8
  62. package/dist/features/admin/components/AdminNavEditorView.d.ts +20 -0
  63. package/dist/features/admin/components/AdminNavEditorView.js +84 -0
  64. package/dist/features/admin/components/AdminNavigationView.d.ts +1 -7
  65. package/dist/features/admin/components/AdminNavigationView.js +84 -72
  66. package/dist/features/admin/components/AdminNewsletterView.js +102 -20
  67. package/dist/features/admin/components/AdminNotificationsView.d.ts +4 -0
  68. package/dist/features/admin/components/AdminNotificationsView.js +119 -0
  69. package/dist/features/admin/components/AdminOrderEditorView.d.ts +8 -0
  70. package/dist/features/admin/components/AdminOrderEditorView.js +74 -0
  71. package/dist/features/admin/components/AdminOrdersView.js +64 -8
  72. package/dist/features/admin/components/AdminPayoutsView.js +122 -13
  73. package/dist/features/admin/components/AdminProductEditorView.d.ts +7 -0
  74. package/dist/features/admin/components/AdminProductEditorView.js +143 -0
  75. package/dist/features/admin/components/AdminProductsView.d.ts +4 -1
  76. package/dist/features/admin/components/AdminProductsView.js +119 -30
  77. package/dist/features/admin/components/AdminReturnRequestsView.d.ts +5 -0
  78. package/dist/features/admin/components/AdminReturnRequestsView.js +101 -0
  79. package/dist/features/admin/components/AdminReviewsView.js +138 -28
  80. package/dist/features/admin/components/AdminSectionsView.js +361 -472
  81. package/dist/features/admin/components/AdminSessionsView.d.ts +4 -0
  82. package/dist/features/admin/components/AdminSessionsView.js +119 -0
  83. package/dist/features/admin/components/AdminSidebar.d.ts +18 -3
  84. package/dist/features/admin/components/AdminSidebar.js +51 -4
  85. package/dist/features/admin/components/AdminSiteSettingsView.d.ts +7 -0
  86. package/dist/features/admin/components/AdminSiteSettingsView.js +319 -0
  87. package/dist/features/admin/components/AdminStoreAddressesView.d.ts +5 -0
  88. package/dist/features/admin/components/AdminStoreAddressesView.js +52 -0
  89. package/dist/features/admin/components/AdminStoreEditorView.d.ts +9 -0
  90. package/dist/features/admin/components/AdminStoreEditorView.js +55 -0
  91. package/dist/features/admin/components/AdminStoresView.js +62 -20
  92. package/dist/features/admin/components/AdminUserEditorView.d.ts +10 -0
  93. package/dist/features/admin/components/AdminUserEditorView.js +72 -0
  94. package/dist/features/admin/components/AdminUsersView.js +70 -36
  95. package/dist/features/admin/components/AdminWishlistsView.d.ts +4 -0
  96. package/dist/features/admin/components/AdminWishlistsView.js +53 -0
  97. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +5 -0
  98. package/dist/features/admin/components/BrandQuickCreateForm.js +36 -0
  99. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +5 -0
  100. package/dist/features/admin/components/CategoryQuickCreateForm.js +35 -0
  101. package/dist/features/admin/components/DataTable.d.ts +4 -2
  102. package/dist/features/admin/components/DataTable.js +26 -6
  103. package/dist/features/admin/components/index.d.ts +47 -1
  104. package/dist/features/admin/components/index.js +23 -0
  105. package/dist/features/admin/components/sections/adminSectionsBuildParse.d.ts +48 -0
  106. package/dist/features/admin/components/sections/adminSectionsBuildParse.js +653 -0
  107. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +298 -0
  108. package/dist/features/admin/components/sections/adminSectionsTypes.js +278 -0
  109. package/dist/features/admin/schemas/firestore.d.ts +26 -0
  110. package/dist/features/admin/schemas/firestore.js +1 -0
  111. package/dist/features/admin/types/product.types.d.ts +2 -3
  112. package/dist/features/auctions/actions/bid-actions.js +6 -2
  113. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +3 -1
  114. package/dist/features/auctions/components/AuctionDetailPageView.js +38 -12
  115. package/dist/features/auctions/components/AuctionFilters.d.ts +3 -1
  116. package/dist/features/auctions/components/AuctionFilters.js +6 -2
  117. package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +7 -0
  118. package/dist/features/auctions/components/CollapsibleBidHistory.js +8 -0
  119. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +4 -0
  120. package/dist/features/auctions/components/MarketplaceAuctionCard.js +43 -9
  121. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +1 -0
  122. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +18 -0
  123. package/dist/features/auctions/components/PlaceBidFormClient.js +33 -0
  124. package/dist/features/auctions/hooks/useAuctions.d.ts +1 -0
  125. package/dist/features/auctions/hooks/useAuctions.js +1 -0
  126. package/dist/features/auctions/schemas/index.d.ts +22 -12
  127. package/dist/features/auth/actions/profile-actions.d.ts +5 -3
  128. package/dist/features/auth/actions/profile-actions.js +30 -11
  129. package/dist/features/auth/auth-helpers.js +1 -0
  130. package/dist/features/auth/components/LoginForm.js +2 -1
  131. package/dist/features/auth/hooks/useAuth.js +16 -4
  132. package/dist/features/auth/permissions/constants.d.ts +63 -0
  133. package/dist/features/auth/permissions/constants.js +323 -0
  134. package/dist/features/auth/schemas/firestore.d.ts +20 -0
  135. package/dist/features/auth/schemas/index.d.ts +4 -4
  136. package/dist/features/auth/schemas/index.js +3 -2
  137. package/dist/features/auth/types/index.d.ts +1 -1
  138. package/dist/features/before-after/schemas/index.d.ts +2 -2
  139. package/dist/features/blog/actions/blog-actions.d.ts +15 -15
  140. package/dist/features/blog/components/BlogFilters.js +1 -1
  141. package/dist/features/blog/components/BlogIndexListing.js +57 -5
  142. package/dist/features/blog/components/BlogIndexPageView.js +14 -2
  143. package/dist/features/blog/components/BlogPostForm.js +6 -2
  144. package/dist/features/blog/components/BlogPostView.js +2 -1
  145. package/dist/features/blog/hooks/useBlog.d.ts +2 -0
  146. package/dist/features/blog/hooks/useBlog.js +2 -0
  147. package/dist/features/blog/schemas/index.d.ts +46 -12
  148. package/dist/features/brands/actions/brand-actions.d.ts +2 -0
  149. package/dist/features/brands/actions/brand-actions.js +5 -0
  150. package/dist/features/brands/index.d.ts +3 -0
  151. package/dist/features/brands/index.js +3 -0
  152. package/dist/features/brands/repository/brands.repository.d.ts +13 -0
  153. package/dist/features/brands/repository/brands.repository.js +60 -0
  154. package/dist/features/brands/schemas/index.d.ts +33 -0
  155. package/dist/features/brands/schemas/index.js +15 -0
  156. package/dist/features/brands/server.d.ts +7 -0
  157. package/dist/features/brands/server.js +7 -0
  158. package/dist/features/cart/actions/cart-actions.js +2 -2
  159. package/dist/features/cart/components/CartDrawer.d.ts +5 -1
  160. package/dist/features/cart/components/CartDrawer.js +3 -3
  161. package/dist/features/cart/hooks/useCartCount.d.ts +3 -2
  162. package/dist/features/cart/hooks/useCartCount.js +4 -2
  163. package/dist/features/cart/hooks/useGuestCartMerge.js +1 -1
  164. package/dist/features/cart/index.d.ts +1 -0
  165. package/dist/features/cart/index.js +1 -0
  166. package/dist/features/cart/repository/cart.repository.d.ts +5 -1
  167. package/dist/features/cart/repository/cart.repository.js +36 -5
  168. package/dist/features/cart/schemas/firestore.d.ts +25 -6
  169. package/dist/features/cart/schemas/firestore.js +2 -2
  170. package/dist/features/cart/schemas/index.d.ts +9 -9
  171. package/dist/features/cart/schemas/index.js +1 -1
  172. package/dist/features/cart/types/index.d.ts +1 -1
  173. package/dist/features/cart/utils/pending-ops.d.ts +33 -0
  174. package/dist/features/cart/utils/pending-ops.js +102 -0
  175. package/dist/features/categories/components/BrandDetailPageView.d.ts +4 -0
  176. package/dist/features/categories/components/BrandDetailPageView.js +54 -0
  177. package/dist/features/categories/components/BrandDetailTabs.d.ts +10 -0
  178. package/dist/features/categories/components/BrandDetailTabs.js +22 -0
  179. package/dist/features/categories/components/CategoriesIndexListing.d.ts +3 -1
  180. package/dist/features/categories/components/CategoriesIndexListing.js +83 -7
  181. package/dist/features/categories/components/CategoryDetailPageView.js +42 -21
  182. package/dist/features/categories/components/CategoryDetailTabs.d.ts +7 -1
  183. package/dist/features/categories/components/CategoryDetailTabs.js +12 -7
  184. package/dist/features/categories/components/CategoryFilters.js +1 -1
  185. package/dist/features/categories/components/CategoryForm.js +10 -4
  186. package/dist/features/categories/components/CategoryProductsListing.d.ts +4 -1
  187. package/dist/features/categories/components/CategoryProductsListing.js +34 -5
  188. package/dist/features/categories/components/ConcernCard.js +1 -1
  189. package/dist/features/categories/hooks/useCategories.js +2 -0
  190. package/dist/features/categories/repository/categories.repository.js +2 -3
  191. package/dist/features/categories/schemas/firestore.d.ts +23 -2
  192. package/dist/features/categories/schemas/firestore.js +8 -0
  193. package/dist/features/categories/schemas/index.d.ts +8 -8
  194. package/dist/features/categories/types/index.d.ts +1 -0
  195. package/dist/features/collections/schemas/index.d.ts +2 -2
  196. package/dist/features/events/components/AdminEventEditorView.js +2 -2
  197. package/dist/features/events/components/AdminEventsView.d.ts +4 -1
  198. package/dist/features/events/components/AdminEventsView.js +64 -38
  199. package/dist/features/events/components/EventCard.js +1 -1
  200. package/dist/features/events/components/EventFilters.js +1 -1
  201. package/dist/features/events/components/EventPollWidget.d.ts +12 -0
  202. package/dist/features/events/components/EventPollWidget.js +62 -0
  203. package/dist/features/events/components/EventsIndexListing.js +57 -5
  204. package/dist/features/events/components/EventsListPageView.js +1 -1
  205. package/dist/features/events/components/index.d.ts +2 -0
  206. package/dist/features/events/components/index.js +1 -0
  207. package/dist/features/events/hooks/useEvents.d.ts +1 -0
  208. package/dist/features/events/hooks/useEvents.js +1 -0
  209. package/dist/features/events/repository/events.repository.js +3 -0
  210. package/dist/features/events/schemas/firestore.d.ts +1 -0
  211. package/dist/features/events/schemas/index.d.ts +44 -0
  212. package/dist/features/events/types/index.d.ts +2 -0
  213. package/dist/features/faq/actions/faq-actions.d.ts +16 -16
  214. package/dist/features/faq/hooks/useFaqList.js +1 -1
  215. package/dist/features/faq/schemas/firestore.d.ts +2 -2
  216. package/dist/features/faq/schemas/firestore.js +2 -1
  217. package/dist/features/faq/schemas/index.d.ts +4 -4
  218. package/dist/features/filters/FilterFacetSection.d.ts +1 -0
  219. package/dist/features/filters/FilterFacetSection.js +13 -1
  220. package/dist/features/filters/SwitchFilter.js +1 -1
  221. package/dist/features/grouped/schemas/firestore.d.ts +32 -0
  222. package/dist/features/grouped/schemas/firestore.js +19 -0
  223. package/dist/features/homepage/components/AdSlot.d.ts +1 -3
  224. package/dist/features/homepage/components/AdSlot.js +15 -14
  225. package/dist/features/homepage/components/BlogArticlesSection.d.ts +3 -1
  226. package/dist/features/homepage/components/BlogArticlesSection.js +2 -2
  227. package/dist/features/homepage/components/BrandsSection.d.ts +3 -1
  228. package/dist/features/homepage/components/BrandsSection.js +4 -3
  229. package/dist/features/homepage/components/CustomCardsSection.d.ts +3 -0
  230. package/dist/features/homepage/components/CustomCardsSection.js +76 -0
  231. package/dist/features/homepage/components/EventsSection.d.ts +3 -1
  232. package/dist/features/homepage/components/EventsSection.js +2 -2
  233. package/dist/features/homepage/components/FeaturedAuctionsSection.d.ts +4 -1
  234. package/dist/features/homepage/components/FeaturedAuctionsSection.js +2 -2
  235. package/dist/features/homepage/components/FeaturedPreOrdersSection.d.ts +4 -1
  236. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +2 -2
  237. package/dist/features/homepage/components/FeaturedProductsSection.d.ts +4 -1
  238. package/dist/features/homepage/components/FeaturedProductsSection.js +8 -3
  239. package/dist/features/homepage/components/FeaturedStoresSection.d.ts +3 -1
  240. package/dist/features/homepage/components/FeaturedStoresSection.js +2 -2
  241. package/dist/features/homepage/components/GoogleReviewsSection.d.ts +3 -0
  242. package/dist/features/homepage/components/GoogleReviewsSection.js +65 -0
  243. package/dist/features/homepage/components/HeroCarousel.js +128 -84
  244. package/dist/features/homepage/components/MarketplaceHomepageView.d.ts +2 -20
  245. package/dist/features/homepage/components/MarketplaceHomepageView.js +73 -230
  246. package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
  247. package/dist/features/homepage/components/SectionCarousel.js +2 -0
  248. package/dist/features/homepage/components/ShopByCategorySection.d.ts +3 -1
  249. package/dist/features/homepage/components/ShopByCategorySection.js +8 -4
  250. package/dist/features/homepage/components/SocialFeedSection.d.ts +3 -0
  251. package/dist/features/homepage/components/SocialFeedSection.js +86 -0
  252. package/dist/features/homepage/components/SocialPostCard.d.ts +7 -0
  253. package/dist/features/homepage/components/SocialPostCard.js +39 -0
  254. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  255. package/dist/features/homepage/components/WelcomeSection.js +1 -1
  256. package/dist/features/homepage/components/WhatsAppCommunitySection.js +1 -1
  257. package/dist/features/homepage/hooks/useActiveAd.d.ts +23 -0
  258. package/dist/features/homepage/hooks/useActiveAd.js +20 -0
  259. package/dist/features/homepage/hooks/useBlogArticles.d.ts +1 -0
  260. package/dist/features/homepage/hooks/useBlogArticles.js +10 -0
  261. package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +4 -1
  262. package/dist/features/homepage/hooks/useFeaturedAuctions.js +8 -4
  263. package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +4 -1
  264. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +8 -4
  265. package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +1 -0
  266. package/dist/features/homepage/hooks/useFeaturedProducts.js +6 -3
  267. package/dist/features/homepage/hooks/useFeaturedStores.d.ts +3 -1
  268. package/dist/features/homepage/hooks/useFeaturedStores.js +2 -1
  269. package/dist/features/homepage/hooks/useHomepageEvents.d.ts +3 -1
  270. package/dist/features/homepage/hooks/useHomepageEvents.js +2 -1
  271. package/dist/features/homepage/hooks/useTopBrands.d.ts +3 -1
  272. package/dist/features/homepage/hooks/useTopBrands.js +2 -1
  273. package/dist/features/homepage/index.d.ts +2 -0
  274. package/dist/features/homepage/index.js +1 -0
  275. package/dist/features/homepage/lib/google-reviews-fetcher.d.ts +14 -0
  276. package/dist/features/homepage/lib/google-reviews-fetcher.js +27 -0
  277. package/dist/features/homepage/lib/live-stats.d.ts +14 -0
  278. package/dist/features/homepage/lib/live-stats.js +62 -0
  279. package/dist/features/homepage/lib/section-defaults.d.ts +11 -0
  280. package/dist/features/homepage/lib/section-defaults.js +45 -0
  281. package/dist/features/homepage/lib/section-helpers.d.ts +5 -0
  282. package/dist/features/homepage/lib/section-helpers.js +25 -0
  283. package/dist/features/homepage/lib/section-renderer.d.ts +33 -0
  284. package/dist/features/homepage/lib/section-renderer.js +164 -0
  285. package/dist/features/homepage/lib/social-feed-fetcher.d.ts +5 -0
  286. package/dist/features/homepage/lib/social-feed-fetcher.js +193 -0
  287. package/dist/features/homepage/schemas/firestore.d.ts +180 -29
  288. package/dist/features/homepage/schemas/firestore.js +5 -0
  289. package/dist/features/homepage/types/index.d.ts +48 -19
  290. package/dist/features/layout/AppLayoutShell.d.ts +6 -1
  291. package/dist/features/layout/AppLayoutShell.js +25 -9
  292. package/dist/features/layout/BottomActions.js +1 -1
  293. package/dist/features/layout/BottomNavbar.d.ts +15 -1
  294. package/dist/features/layout/BottomNavbar.js +8 -2
  295. package/dist/features/layout/FooterLayout.d.ts +7 -1
  296. package/dist/features/layout/FooterLayout.js +3 -3
  297. package/dist/features/layout/ListingLayout.js +2 -2
  298. package/dist/features/layout/MainNavbar.d.ts +6 -14
  299. package/dist/features/layout/MainNavbar.js +4 -16
  300. package/dist/features/layout/NavItem.js +1 -1
  301. package/dist/features/layout/NavbarLayout.d.ts +3 -1
  302. package/dist/features/layout/NavbarLayout.js +5 -5
  303. package/dist/features/layout/TitleBar.d.ts +4 -2
  304. package/dist/features/layout/TitleBar.js +5 -3
  305. package/dist/features/layout/TitleBarLayout.d.ts +3 -1
  306. package/dist/features/layout/TitleBarLayout.js +2 -2
  307. package/dist/features/layout/index.d.ts +1 -1
  308. package/dist/features/media/MediaPickerModal.d.ts +30 -0
  309. package/dist/features/media/MediaPickerModal.js +72 -0
  310. package/dist/features/media/index.d.ts +3 -1
  311. package/dist/features/media/index.js +1 -0
  312. package/dist/features/media/types/index.d.ts +12 -0
  313. package/dist/features/media/types/index.js +4 -2
  314. package/dist/features/media/upload/MediaUploadField.d.ts +5 -1
  315. package/dist/features/media/upload/MediaUploadField.js +56 -3
  316. package/dist/features/messages/schemas/firestore.d.ts +36 -0
  317. package/dist/features/messages/schemas/firestore.js +16 -0
  318. package/dist/features/orders/repository/orders.repository.d.ts +2 -2
  319. package/dist/features/orders/repository/orders.repository.js +2 -2
  320. package/dist/features/orders/schemas/firestore.d.ts +17 -4
  321. package/dist/features/orders/schemas/firestore.js +2 -2
  322. package/dist/features/orders/schemas/index.d.ts +18 -18
  323. package/dist/features/orders/schemas/index.js +3 -3
  324. package/dist/features/orders/types/index.d.ts +1 -1
  325. package/dist/features/orders/utils/order-splitter.d.ts +1 -1
  326. package/dist/features/orders/utils/order-splitter.js +2 -2
  327. package/dist/features/payments/repository/payout.repository.d.ts +4 -4
  328. package/dist/features/payments/repository/payout.repository.js +7 -7
  329. package/dist/features/payments/schemas/firestore.d.ts +6 -6
  330. package/dist/features/payments/schemas/firestore.js +6 -6
  331. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +11 -10
  332. package/dist/features/pre-orders/components/PreOrderActionsClient.d.ts +11 -0
  333. package/dist/features/pre-orders/components/PreOrderActionsClient.js +28 -0
  334. package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +2 -1
  335. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +27 -9
  336. package/dist/features/pre-orders/components/PreOrderFilters.d.ts +3 -1
  337. package/dist/features/pre-orders/components/PreOrderFilters.js +9 -6
  338. package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +3 -1
  339. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +132 -36
  340. package/dist/features/pre-orders/components/PreOrdersListView.js +3 -3
  341. package/dist/features/pre-orders/components/PreorderCard.js +1 -1
  342. package/dist/features/pre-orders/schemas/index.d.ts +10 -0
  343. package/dist/features/products/actions/product-actions.d.ts +2 -2
  344. package/dist/features/products/actions/product-actions.js +5 -5
  345. package/dist/features/products/api/[id]/route.js +5 -2
  346. package/dist/features/products/api/route.js +10 -14
  347. package/dist/features/products/columns/productTableColumns.js +2 -2
  348. package/dist/features/products/components/AuctionDetailView.d.ts +2 -1
  349. package/dist/features/products/components/AuctionDetailView.js +2 -2
  350. package/dist/features/products/components/AuctionsIndexListing.d.ts +3 -1
  351. package/dist/features/products/components/AuctionsIndexListing.js +93 -31
  352. package/dist/features/products/components/BidHistory.d.ts +2 -1
  353. package/dist/features/products/components/BidHistory.js +18 -2
  354. package/dist/features/products/components/MakeOfferButton.d.ts +10 -0
  355. package/dist/features/products/components/MakeOfferButton.js +68 -0
  356. package/dist/features/products/components/ProductDetailPageView.d.ts +11 -1
  357. package/dist/features/products/components/ProductDetailPageView.js +27 -8
  358. package/dist/features/products/components/ProductFilters.d.ts +7 -1
  359. package/dist/features/products/components/ProductFilters.js +4 -2
  360. package/dist/features/products/components/ProductForm.d.ts +19 -1
  361. package/dist/features/products/components/ProductForm.js +24 -6
  362. package/dist/features/products/components/ProductGrid.d.ts +10 -2
  363. package/dist/features/products/components/ProductGrid.js +76 -29
  364. package/dist/features/products/components/ProductsIndexListing.js +131 -45
  365. package/dist/features/products/components/RelatedProductsCarousel.js +1 -1
  366. package/dist/features/products/components/ShareButton.d.ts +7 -0
  367. package/dist/features/products/components/ShareButton.js +22 -0
  368. package/dist/features/products/components/index.d.ts +2 -0
  369. package/dist/features/products/components/index.js +1 -0
  370. package/dist/features/products/hooks/useProducts.d.ts +7 -0
  371. package/dist/features/products/hooks/useProducts.js +6 -4
  372. package/dist/features/products/repository/products.repository.d.ts +4 -8
  373. package/dist/features/products/repository/products.repository.js +17 -50
  374. package/dist/features/products/schemas/firestore.d.ts +11 -9
  375. package/dist/features/products/schemas/firestore.js +11 -3
  376. package/dist/features/products/schemas/index.d.ts +51 -50
  377. package/dist/features/products/schemas/index.js +2 -5
  378. package/dist/features/products/types/index.d.ts +13 -5
  379. package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
  380. package/dist/features/promotions/actions/coupon-actions.js +1 -1
  381. package/dist/features/promotions/actions/seller-coupon-actions.js +11 -6
  382. package/dist/features/promotions/api/route.js +3 -3
  383. package/dist/features/promotions/components/CouponCard.js +16 -7
  384. package/dist/features/promotions/components/CouponsIndexListing.js +3 -9
  385. package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
  386. package/dist/features/promotions/hooks/usePromotions.js +2 -2
  387. package/dist/features/promotions/repository/coupons.repository.d.ts +21 -15
  388. package/dist/features/promotions/repository/coupons.repository.js +97 -125
  389. package/dist/features/promotions/schemas/firestore.d.ts +31 -2
  390. package/dist/features/promotions/schemas/firestore.js +29 -0
  391. package/dist/features/promotions/schemas/index.d.ts +9 -12
  392. package/dist/features/promotions/schemas/index.js +1 -2
  393. package/dist/features/promotions/types/index.d.ts +1 -2
  394. package/dist/features/reviews/actions/review-actions.js +3 -2
  395. package/dist/features/reviews/components/ReviewDetailPageView.js +5 -9
  396. package/dist/features/reviews/components/ReviewFilters.js +1 -1
  397. package/dist/features/reviews/components/ReviewsIndexListing.js +58 -7
  398. package/dist/features/reviews/components/ReviewsList.js +2 -2
  399. package/dist/features/reviews/hooks/useReviews.d.ts +1 -0
  400. package/dist/features/reviews/hooks/useReviews.js +2 -1
  401. package/dist/features/reviews/repository/reviews.repository.d.ts +9 -4
  402. package/dist/features/reviews/repository/reviews.repository.js +18 -7
  403. package/dist/features/reviews/schemas/firestore.d.ts +5 -2
  404. package/dist/features/reviews/schemas/firestore.js +1 -0
  405. package/dist/features/reviews/schemas/index.d.ts +19 -16
  406. package/dist/features/reviews/schemas/index.js +3 -2
  407. package/dist/features/reviews/types/index.d.ts +3 -2
  408. package/dist/features/scams/actions/scam-actions.d.ts +29 -0
  409. package/dist/features/scams/actions/scam-actions.js +62 -0
  410. package/dist/features/scams/components/ScamProfileView.d.ts +10 -0
  411. package/dist/features/scams/components/ScamProfileView.js +51 -0
  412. package/dist/features/scams/components/ScamRegistryView.d.ts +6 -0
  413. package/dist/features/scams/components/ScamRegistryView.js +41 -0
  414. package/dist/features/scams/components/index.d.ts +4 -0
  415. package/dist/features/scams/components/index.js +2 -0
  416. package/dist/features/scams/constants/scam-types.d.ts +38 -0
  417. package/dist/features/scams/constants/scam-types.js +443 -0
  418. package/dist/features/scams/repository/scammer.repository.d.ts +67 -0
  419. package/dist/features/scams/repository/scammer.repository.js +160 -0
  420. package/dist/features/scams/schemas/firestore.d.ts +362 -0
  421. package/dist/features/scams/schemas/firestore.js +233 -0
  422. package/dist/features/search/components/Search.d.ts +12 -2
  423. package/dist/features/search/components/Search.js +26 -7
  424. package/dist/features/search/components/index.d.ts +1 -1
  425. package/dist/features/search/hooks/useNavSuggestions.d.ts +1 -1
  426. package/dist/features/search/hooks/useNavSuggestions.js +2 -2
  427. package/dist/features/search/schemas/index.d.ts +7 -7
  428. package/dist/features/seller/actions/offer-actions.js +52 -36
  429. package/dist/features/seller/actions/seller-actions.js +19 -13
  430. package/dist/features/seller/api/products/route.js +9 -4
  431. package/dist/features/seller/components/SellerAddressesView.d.ts +3 -12
  432. package/dist/features/seller/components/SellerAddressesView.js +144 -4
  433. package/dist/features/seller/components/SellerAuctionsView.js +58 -5
  434. package/dist/features/seller/components/SellerBidsView.d.ts +4 -0
  435. package/dist/features/seller/components/SellerBidsView.js +131 -0
  436. package/dist/features/seller/components/SellerCouponEditorView.d.ts +19 -0
  437. package/dist/features/seller/components/SellerCouponEditorView.js +67 -0
  438. package/dist/features/seller/components/SellerCouponsView.d.ts +5 -3
  439. package/dist/features/seller/components/SellerCouponsView.js +135 -13
  440. package/dist/features/seller/components/SellerCreateProductView.d.ts +4 -10
  441. package/dist/features/seller/components/SellerCreateProductView.js +4 -3
  442. package/dist/features/seller/components/SellerEditProductView.d.ts +4 -10
  443. package/dist/features/seller/components/SellerEditProductView.js +4 -3
  444. package/dist/features/seller/components/SellerOffersPanel.d.ts +20 -0
  445. package/dist/features/seller/components/SellerOffersPanel.js +138 -0
  446. package/dist/features/seller/components/SellerOffersView.js +56 -5
  447. package/dist/features/seller/components/SellerOrdersView.d.ts +2 -1
  448. package/dist/features/seller/components/SellerOrdersView.js +185 -16
  449. package/dist/features/seller/components/SellerPayoutRequestView.d.ts +7 -0
  450. package/dist/features/seller/components/SellerPayoutRequestView.js +63 -0
  451. package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +3 -10
  452. package/dist/features/seller/components/SellerPayoutSettingsView.js +89 -3
  453. package/dist/features/seller/components/SellerPayoutsView.js +56 -5
  454. package/dist/features/seller/components/SellerProductShell.d.ts +68 -0
  455. package/dist/features/seller/components/SellerProductShell.js +179 -0
  456. package/dist/features/seller/components/SellerProductsView.d.ts +2 -3
  457. package/dist/features/seller/components/SellerProductsView.js +194 -18
  458. package/dist/features/seller/components/SellerReviewsView.d.ts +5 -0
  459. package/dist/features/seller/components/SellerReviewsView.js +100 -0
  460. package/dist/features/seller/components/SellerShippingView.d.ts +3 -11
  461. package/dist/features/seller/components/SellerShippingView.js +87 -3
  462. package/dist/features/seller/components/SellerSidebar.d.ts +11 -3
  463. package/dist/features/seller/components/SellerSidebar.js +52 -8
  464. package/dist/features/seller/components/SellerStorefrontView.d.ts +26 -11
  465. package/dist/features/seller/components/SellerStorefrontView.js +45 -7
  466. package/dist/features/seller/components/index.d.ts +16 -2
  467. package/dist/features/seller/components/index.js +7 -0
  468. package/dist/features/seller/hooks/useSellerListingData.d.ts +3 -1
  469. package/dist/features/seller/hooks/useSellerListingData.js +6 -4
  470. package/dist/features/seller/repository/offer.repository.d.ts +3 -3
  471. package/dist/features/seller/repository/offer.repository.js +6 -6
  472. package/dist/features/seller/schemas/firestore.d.ts +7 -7
  473. package/dist/features/seller/schemas/firestore.js +4 -4
  474. package/dist/features/seller/schemas/index.d.ts +16 -16
  475. package/dist/features/shell/FormShell.d.ts +29 -0
  476. package/dist/features/shell/FormShell.js +103 -0
  477. package/dist/features/shell/QuickFormDrawer.d.ts +29 -0
  478. package/dist/features/shell/QuickFormDrawer.js +117 -0
  479. package/dist/features/shell/StepForm.d.ts +44 -0
  480. package/dist/features/shell/StepForm.js +81 -0
  481. package/dist/features/shell/index.d.ts +6 -0
  482. package/dist/features/shell/index.js +3 -0
  483. package/dist/features/stores/actions/store-query-actions.js +3 -3
  484. package/dist/features/stores/api/[storeSlug]/auctions/route.js +1 -1
  485. package/dist/features/stores/api/[storeSlug]/products/route.js +1 -1
  486. package/dist/features/stores/api/[storeSlug]/reviews/route.js +1 -1
  487. package/dist/features/stores/components/InteractiveStoreCard.d.ts +2 -2
  488. package/dist/features/stores/components/InteractiveStoreCard.js +21 -7
  489. package/dist/features/stores/components/StoreAboutView.js +1 -1
  490. package/dist/features/stores/components/StoreAuctionsListing.d.ts +5 -2
  491. package/dist/features/stores/components/StoreAuctionsListing.js +81 -8
  492. package/dist/features/stores/components/StoreAuctionsPageView.js +8 -7
  493. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -0
  494. package/dist/features/stores/components/StoreDetailLayoutView.js +29 -5
  495. package/dist/features/stores/components/StoreHeader.js +2 -1
  496. package/dist/features/stores/components/StorePreOrdersListing.d.ts +4 -2
  497. package/dist/features/stores/components/StorePreOrdersListing.js +59 -7
  498. package/dist/features/stores/components/StorePreOrdersPageView.js +8 -7
  499. package/dist/features/stores/components/StoreProductsListing.d.ts +5 -2
  500. package/dist/features/stores/components/StoreProductsListing.js +97 -8
  501. package/dist/features/stores/components/StoreProductsPageView.js +8 -7
  502. package/dist/features/stores/components/StoreReviewsListing.js +2 -2
  503. package/dist/features/stores/components/StoresIndexListing.js +74 -11
  504. package/dist/features/stores/components/StoresListView.js +1 -1
  505. package/dist/features/stores/hooks/useStores.d.ts +1 -0
  506. package/dist/features/stores/hooks/useStores.js +1 -0
  507. package/dist/features/stores/schemas/firestore.d.ts +34 -0
  508. package/dist/features/stores/schemas/index.d.ts +8 -8
  509. package/dist/features/sublisting/schemas/firestore.d.ts +30 -0
  510. package/dist/features/sublisting/schemas/firestore.js +19 -0
  511. package/dist/features/support/schemas/firestore.d.ts +113 -0
  512. package/dist/features/support/schemas/firestore.js +95 -0
  513. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +5 -0
  514. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +143 -0
  515. package/dist/features/whatsapp-bot/components/index.d.ts +2 -0
  516. package/dist/features/whatsapp-bot/components/index.js +1 -0
  517. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +23 -1
  518. package/dist/features/whatsapp-bot/helpers/whatsapp.js +104 -0
  519. package/dist/features/whatsapp-bot/server.d.ts +1 -0
  520. package/dist/features/whatsapp-bot/server.js +1 -0
  521. package/dist/features/whatsapp-bot/types/index.d.ts +49 -0
  522. package/dist/features/wishlist/components/WishlistView.d.ts +0 -10
  523. package/dist/features/wishlist/components/WishlistView.js +13 -6
  524. package/dist/features/wishlist/hooks/useWishlist.js +2 -0
  525. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +11 -3
  526. package/dist/features/wishlist/hooks/useWishlistCount.js +89 -25
  527. package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
  528. package/dist/features/wishlist/schemas/index.d.ts +2 -2
  529. package/dist/features/wishlist/types/index.d.ts +16 -0
  530. package/dist/http/api-handler.js +8 -1
  531. package/dist/index.d.ts +114 -16
  532. package/dist/index.js +136 -28
  533. package/dist/monitoring/server-logger.js +9 -3
  534. package/dist/next/routing/route-map.d.ts +120 -6
  535. package/dist/next/routing/route-map.js +53 -2
  536. package/dist/providers/db-firebase/realtime.d.ts +1 -1
  537. package/dist/react/contexts/SessionContext.js +17 -26
  538. package/dist/react/hooks/useBulkSelection.d.ts +7 -24
  539. package/dist/react/hooks/useBulkSelection.js +27 -34
  540. package/dist/react/hooks/useLongPress.d.ts +3 -16
  541. package/dist/react/hooks/useLongPress.js +6 -25
  542. package/dist/react/index.d.ts +1 -0
  543. package/dist/react/index.js +2 -0
  544. package/dist/repositories/index.d.ts +3 -0
  545. package/dist/repositories/index.js +2 -0
  546. package/dist/seed/actions/demo-seed-actions.d.ts +2 -2
  547. package/dist/seed/actions/demo-seed-actions.js +1 -1
  548. package/dist/seed/anime-figures-seed-data.d.ts +8 -0
  549. package/dist/seed/anime-figures-seed-data.js +1033 -0
  550. package/dist/seed/beyblade-seed-data.js +206 -24
  551. package/dist/seed/bids-seed-data.d.ts +4 -10
  552. package/dist/seed/bids-seed-data.js +365 -238
  553. package/dist/seed/blog-posts-seed-data.d.ts +3 -2
  554. package/dist/seed/blog-posts-seed-data.js +250 -511
  555. package/dist/seed/brands-seed-data.d.ts +7 -0
  556. package/dist/seed/brands-seed-data.js +410 -0
  557. package/dist/seed/carousel-slides-seed-data.d.ts +3 -2
  558. package/dist/seed/carousel-slides-seed-data.js +177 -216
  559. package/dist/seed/cart-seed-data.d.ts +9 -9
  560. package/dist/seed/cart-seed-data.js +73 -73
  561. package/dist/seed/categories-seed-data.d.ts +4 -2
  562. package/dist/seed/categories-seed-data.js +720 -879
  563. package/dist/seed/conversations-seed-data.d.ts +8 -0
  564. package/dist/seed/conversations-seed-data.js +388 -0
  565. package/dist/seed/cosplay-accessories-seed-data.d.ts +8 -0
  566. package/dist/seed/cosplay-accessories-seed-data.js +647 -0
  567. package/dist/seed/coupon-usage-seed-data.d.ts +25 -0
  568. package/dist/seed/coupon-usage-seed-data.js +69 -0
  569. package/dist/seed/coupons-seed-data.d.ts +6 -3
  570. package/dist/seed/coupons-seed-data.js +375 -3
  571. package/dist/seed/events-seed-data.d.ts +4 -2
  572. package/dist/seed/events-seed-data.js +128 -430
  573. package/dist/seed/factories/cart.factory.d.ts +0 -1
  574. package/dist/seed/factories/cart.factory.js +2 -2
  575. package/dist/seed/faq-seed-data.d.ts +11 -18
  576. package/dist/seed/faq-seed-data.js +786 -1817
  577. package/dist/seed/grouped-listings-seed-data.d.ts +8 -0
  578. package/dist/seed/grouped-listings-seed-data.js +201 -0
  579. package/dist/seed/homepage-sections-seed-data.d.ts +3 -13
  580. package/dist/seed/homepage-sections-seed-data.js +228 -252
  581. package/dist/seed/hot-wheels-seed-data.js +285 -38
  582. package/dist/seed/index.d.ts +12 -11
  583. package/dist/seed/index.js +10 -12
  584. package/dist/seed/letitrip-official-seed-data.d.ts +8 -0
  585. package/dist/seed/letitrip-official-seed-data.js +399 -0
  586. package/dist/seed/manifest.d.ts +15 -0
  587. package/dist/seed/manifest.js +140 -0
  588. package/dist/seed/notifications-seed-data.d.ts +4 -2
  589. package/dist/seed/notifications-seed-data.js +117 -440
  590. package/dist/seed/orders-seed-data.d.ts +4 -2
  591. package/dist/seed/orders-seed-data.js +1090 -521
  592. package/dist/seed/payouts-seed-data.d.ts +4 -2
  593. package/dist/seed/payouts-seed-data.js +522 -145
  594. package/dist/seed/pokemon-carousel-slides-seed-data.js +6 -1
  595. package/dist/seed/pokemon-categories-seed-data.js +81 -81
  596. package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +1 -1
  597. package/dist/seed/pokemon-homepage-sections-seed-data.js +116 -23
  598. package/dist/seed/pokemon-products-seed-data.d.ts +1 -1
  599. package/dist/seed/pokemon-products-seed-data.js +83 -73
  600. package/dist/seed/pokemon-seed-bundle.d.ts +5 -1
  601. package/dist/seed/pokemon-seed-bundle.js +21 -2
  602. package/dist/seed/pokemon-stores-seed-data.js +85 -9
  603. package/dist/seed/pokemon-users-seed-data.js +107 -8
  604. package/dist/seed/products-auctions-seed-data.d.ts +10 -0
  605. package/dist/seed/products-auctions-seed-data.js +689 -0
  606. package/dist/seed/products-preorders-seed-data.d.ts +9 -0
  607. package/dist/seed/products-preorders-seed-data.js +483 -0
  608. package/dist/seed/products-seed-data.js +34 -13
  609. package/dist/seed/products-standard-seed-data.d.ts +8 -0
  610. package/dist/seed/products-standard-seed-data.js +4179 -0
  611. package/dist/seed/retro-gaming-seed-data.d.ts +8 -0
  612. package/dist/seed/retro-gaming-seed-data.js +801 -0
  613. package/dist/seed/reviews-seed-data.d.ts +4 -17
  614. package/dist/seed/reviews-seed-data.js +1043 -515
  615. package/dist/seed/scammers-seed-data.d.ts +17 -0
  616. package/dist/seed/scammers-seed-data.js +118 -0
  617. package/dist/seed/site-settings-seed-data.js +25 -2
  618. package/dist/seed/store-addresses-seed-data.js +188 -84
  619. package/dist/seed/stores-seed-data.d.ts +3 -9
  620. package/dist/seed/stores-seed-data.js +212 -102
  621. package/dist/seed/sublisting-categories-seed-data.d.ts +7 -0
  622. package/dist/seed/sublisting-categories-seed-data.js +315 -0
  623. package/dist/seed/transformers-seed-data.js +34 -14
  624. package/dist/seed/users-seed-data.d.ts +3 -2
  625. package/dist/seed/users-seed-data.js +531 -440
  626. package/dist/seed/wishlists-seed-data.js +13 -13
  627. package/dist/server.d.ts +9 -2
  628. package/dist/server.js +12 -4
  629. package/dist/tokens/tokens.css +76 -31
  630. package/dist/ui/components/Avatar.style.css +10 -12
  631. package/dist/ui/components/BaseListingCard.d.ts +8 -3
  632. package/dist/ui/components/BaseListingCard.js +17 -6
  633. package/dist/ui/components/BaseListingCard.style.css +3 -1
  634. package/dist/ui/components/BulkActionsBar.d.ts +16 -0
  635. package/dist/ui/components/BulkActionsBar.js +22 -0
  636. package/dist/ui/components/Button.style.css +23 -23
  637. package/dist/ui/components/Card.style.css +60 -62
  638. package/dist/ui/components/Checkbox.style.css +19 -21
  639. package/dist/ui/components/DashboardStatsCard.style.css +12 -14
  640. package/dist/ui/components/Drawer.style.css +18 -14
  641. package/dist/ui/components/Dropdown.style.css +25 -27
  642. package/dist/ui/components/EmptyState.style.css +2 -4
  643. package/dist/ui/components/HorizontalScroller.d.ts +3 -1
  644. package/dist/ui/components/HorizontalScroller.js +116 -21
  645. package/dist/ui/components/HorizontalScroller.style.css +2 -2
  646. package/dist/ui/components/ImageLightbox.d.ts +0 -9
  647. package/dist/ui/components/ImageLightbox.js +43 -9
  648. package/dist/ui/components/InlineCreateSelect.d.ts +38 -0
  649. package/dist/ui/components/InlineCreateSelect.js +70 -0
  650. package/dist/ui/components/ListingLayout.style.css +41 -77
  651. package/dist/ui/components/ListingToolbar.d.ts +54 -0
  652. package/dist/ui/components/ListingToolbar.js +34 -0
  653. package/dist/ui/components/Modal.style.css +14 -10
  654. package/dist/ui/components/PageLoader.d.ts +11 -0
  655. package/dist/ui/components/PageLoader.js +21 -0
  656. package/dist/ui/components/Radio.style.css +34 -36
  657. package/dist/ui/components/RichTextEditor.js +1 -1
  658. package/dist/ui/components/RowActionMenu.d.ts +1 -0
  659. package/dist/ui/components/RowActionMenu.js +4 -2
  660. package/dist/ui/components/SectionTabs.js +1 -1
  661. package/dist/ui/components/SectionTabs.style.css +1 -0
  662. package/dist/ui/components/SideModal.style.css +4 -8
  663. package/dist/ui/components/Slider.style.css +2 -4
  664. package/dist/ui/components/Tabs.style.css +8 -10
  665. package/dist/ui/components/Toast.style.css +22 -24
  666. package/dist/ui/components/Toggle.style.css +11 -13
  667. package/dist/ui/index.d.ts +9 -0
  668. package/dist/ui/index.js +5 -0
  669. package/dist/ui/rich-text/RichText.js +2 -1
  670. package/dist/ui/rich-text/RichText.style.css +292 -5
  671. package/dist/ui/rich-text/RichTextRenderer.d.ts +15 -0
  672. package/dist/ui/rich-text/RichTextRenderer.js +15 -0
  673. package/dist/utils/id-generators.d.ts +10 -0
  674. package/dist/utils/id-generators.js +12 -0
  675. package/dist/validation/schemas.d.ts +9 -9
  676. package/package.json +5 -1
  677. package/README.md +0 -116
@@ -9,7 +9,12 @@ const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
9
9
  const daysAhead = (n) => new Date(NOW.getTime() + n * 86400000);
10
10
  const ADMIN = "user-admin-user-admin";
11
11
  const cardImg = (num) => `https://images.pokemontcg.io/base1/${num}_hires.png`;
12
- const picsumImg = (seed, w = 1200, h = 500) => `https://picsum.photos/seed/${seed}/${w}/${h}`;
12
+ const picsumImg = (seed, w = 1200, h = 500) => {
13
+ let hash = 0;
14
+ for (const c of seed)
15
+ hash = (hash * 31 + c.charCodeAt(0)) & 0x7fff;
16
+ return `https://loremflickr.com/${w}/${h}/collectibles,toy,merchandise?lock=${hash % 800}`;
17
+ };
13
18
  export const pokemonCarouselSlidesSeedData = [
14
19
  // ── Slide 1 — Multi-Franchise Welcome Hero (ACTIVE) ──────────────────────
15
20
  {
@@ -37,13 +37,13 @@ function mkCat(partial) {
37
37
  };
38
38
  }
39
39
  export const pokemonCategoriesSeedData = [
40
- // ═══════════════════════════════════════════════════
41
- // POKÉMON TCG
42
- // ═══════════════════════════════════════════════════
40
+ // ═══════════════════════════════════════════════════
41
+ // POKÉMON TCG
42
+ // ═══════════════════════════════════════════════════
43
43
  mkCat({
44
44
  id: "category-pokemon-cards",
45
45
  name: "Pokémon Cards",
46
- slug: "pokemon-cards",
46
+ slug: "category-pokemon-cards",
47
47
  description: "Original Pokémon Base Set 151 cards — singles, lots, graded, and sealed",
48
48
  rootId: "category-pokemon-cards",
49
49
  parentIds: [],
@@ -68,13 +68,13 @@ export const pokemonCategoriesSeedData = [
68
68
  description: "Buy and sell original Pokémon Base Set 151 singles, holos, and sealed packs.",
69
69
  keywords: ["pokemon cards", "base set", "151", "charizard", "pikachu"],
70
70
  },
71
- display: { showInFooter: true, icon: "🃏", coverImage: "https://images.pokemontcg.io/base1/logo.png", color: "#FFCB05", showInMenu: true },
71
+ display: { showInFooter: true, icon: "🃏", coverImage: "https://images.pokemontcg.io/base1/logo.png", color: "#FFCB05", showInMenu: true },
72
72
  ancestors: [],
73
73
  }),
74
74
  mkCat({
75
75
  id: "category-card-type-pokemon-cards",
76
76
  name: "Card Type",
77
- slug: "card-type",
77
+ slug: "category-card-type-pokemon-cards",
78
78
  description: "Filter by Pokémon, Trainer, or Energy card",
79
79
  rootId: "category-pokemon-cards",
80
80
  parentIds: ["category-pokemon-cards"],
@@ -82,13 +82,13 @@ export const pokemonCategoriesSeedData = [
82
82
  tier: 1, path: "pokemon-cards/card-type", order: 1, isLeaf: false,
83
83
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 45, totalAuctionCount: 4, totalItemCount: 49, lastUpdated: daysAgo(1) },
84
84
  seo: { title: "Card Type — Pokémon TCG", description: "Shop by card type.", keywords: ["pokemon card type"] },
85
- display: { showInFooter: false, icon: "🎴", showInMenu: true },
85
+ display: { showInFooter: false, icon: "🎴", showInMenu: true },
86
86
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }],
87
87
  }),
88
88
  mkCat({
89
89
  id: "category-pokemon-type-card-type",
90
90
  name: "Pokémon Cards",
91
- slug: "pokemon-type",
91
+ slug: "category-pokemon-type-card-type",
92
92
  description: "Individual creature cards — the core of the Base Set",
93
93
  rootId: "category-pokemon-cards",
94
94
  parentIds: ["category-card-type-pokemon-cards"],
@@ -96,39 +96,39 @@ export const pokemonCategoriesSeedData = [
96
96
  isFeatured: true, featuredPriority: 2, showOnHomepage: true,
97
97
  metrics: { productCount: 35, productIds: [], auctionCount: 4, auctionIds: [], totalProductCount: 35, totalAuctionCount: 4, totalItemCount: 39, lastUpdated: daysAgo(1) },
98
98
  seo: { title: "Pokémon Cards — Base Set Singles", description: "Shop all Base Set creature singles.", keywords: ["pokemon singles", "charizard", "blastoise"] },
99
- display: { showInFooter: false, icon: "", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", showInMenu: true },
99
+ display: { showInFooter: false, icon: "âš¡", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", showInMenu: true },
100
100
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-card-type-pokemon-cards", name: "Card Type", tier: 1 }],
101
101
  }),
102
102
  mkCat({
103
103
  id: "category-trainer-type-card-type",
104
104
  name: "Trainer Cards",
105
- slug: "trainer-type",
105
+ slug: "category-trainer-type-card-type",
106
106
  description: "Supporter, Item, and Stadium trainer cards from Base Set",
107
107
  rootId: "category-pokemon-cards",
108
108
  parentIds: ["category-card-type-pokemon-cards"],
109
109
  childrenIds: [], tier: 2, path: "pokemon-cards/card-type/trainer-type", order: 2, isLeaf: true,
110
110
  metrics: { productCount: 8, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 8, totalAuctionCount: 0, totalItemCount: 8, lastUpdated: daysAgo(1) },
111
111
  seo: { title: "Trainer Cards — Pokémon Base Set", description: "Professor Oak, Bill, Energy Removal and more.", keywords: ["trainer cards", "professor oak", "item cards"] },
112
- display: { showInFooter: false, icon: "🧑‍🏫", showInMenu: true },
112
+ display: { showInFooter: false, icon: "🧑‍🏫", showInMenu: true },
113
113
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-card-type-pokemon-cards", name: "Card Type", tier: 1 }],
114
114
  }),
115
115
  mkCat({
116
116
  id: "category-energy-type-card-type",
117
117
  name: "Energy Cards",
118
- slug: "energy-type",
118
+ slug: "category-energy-type-card-type",
119
119
  description: "Basic and Special Energy cards to power your Pokémon",
120
120
  rootId: "category-pokemon-cards",
121
121
  parentIds: ["category-card-type-pokemon-cards"],
122
122
  childrenIds: [], tier: 2, path: "pokemon-cards/card-type/energy-type", order: 3, isLeaf: true,
123
123
  metrics: { productCount: 5, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 5, totalAuctionCount: 0, totalItemCount: 5, lastUpdated: daysAgo(1) },
124
124
  seo: { title: "Energy Cards — Pokémon Base Set", description: "Basic Energy sets from the original print runs.", keywords: ["energy cards", "fire energy", "water energy"] },
125
- display: { showInFooter: false, icon: "", showInMenu: true },
125
+ display: { showInFooter: false, icon: "⚪", showInMenu: true },
126
126
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-card-type-pokemon-cards", name: "Card Type", tier: 1 }],
127
127
  }),
128
128
  mkCat({
129
129
  id: "category-element-type-pokemon-cards",
130
130
  name: "Element Type",
131
- slug: "element-type",
131
+ slug: "category-element-type-pokemon-cards",
132
132
  description: "Shop by Pokémon energy type",
133
133
  rootId: "category-pokemon-cards",
134
134
  parentIds: ["category-pokemon-cards"],
@@ -136,39 +136,39 @@ export const pokemonCategoriesSeedData = [
136
136
  tier: 1, path: "pokemon-cards/element-type", order: 2, isLeaf: false,
137
137
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 35, totalAuctionCount: 4, totalItemCount: 39, lastUpdated: daysAgo(1) },
138
138
  seo: { title: "Element Types — Pokémon TCG", description: "Water, Fire, Electric, Grass, Psychic, Fighting, and Colorless types.", keywords: ["pokemon elements", "fire type", "water type"] },
139
- display: { showInFooter: false, icon: "🌊", showInMenu: true },
139
+ display: { showInFooter: false, icon: "🌊", showInMenu: true },
140
140
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }],
141
141
  }),
142
142
  mkCat({
143
143
  id: "category-water-element",
144
144
  name: "Water",
145
- slug: "water",
145
+ slug: "category-water-element",
146
146
  description: "Water-type Pokémon cards — Blastoise, Lapras, Starmie, Gyarados",
147
147
  rootId: "category-pokemon-cards",
148
148
  parentIds: ["category-element-type-pokemon-cards"],
149
149
  childrenIds: [], tier: 2, path: "pokemon-cards/element-type/water", order: 1, isLeaf: true,
150
150
  metrics: { productCount: 6, productIds: [], auctionCount: 1, auctionIds: [], totalProductCount: 6, totalAuctionCount: 1, totalItemCount: 7, lastUpdated: daysAgo(1) },
151
151
  seo: { title: "Water-Type Pokémon Cards", description: "Blastoise, Lapras, Starmie and more.", keywords: ["water pokemon", "blastoise"] },
152
- display: { showInFooter: false, icon: "💧", color: "#6DB6D4", showInMenu: true },
152
+ display: { showInFooter: false, icon: "💧", color: "#6DB6D4", showInMenu: true },
153
153
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
154
154
  }),
155
155
  mkCat({
156
156
  id: "category-electric-element",
157
157
  name: "Electric",
158
- slug: "electric",
158
+ slug: "category-electric-element",
159
159
  description: "Electric-type Pokémon cards — Pikachu, Raichu, Zapdos, Electabuzz",
160
160
  rootId: "category-pokemon-cards",
161
161
  parentIds: ["category-element-type-pokemon-cards"],
162
162
  childrenIds: [], tier: 2, path: "pokemon-cards/element-type/electric", order: 2, isLeaf: true,
163
163
  metrics: { productCount: 5, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 5, totalAuctionCount: 0, totalItemCount: 5, lastUpdated: daysAgo(1) },
164
164
  seo: { title: "Electric-Type Pokémon Cards", description: "Pikachu, Zapdos, Raichu and more.", keywords: ["electric pokemon", "pikachu", "zapdos"] },
165
- display: { showInFooter: false, icon: "", color: "#F7D02C", showInMenu: true },
165
+ display: { showInFooter: false, icon: "âš¡", color: "#F7D02C", showInMenu: true },
166
166
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
167
167
  }),
168
168
  mkCat({
169
169
  id: "category-fire-element",
170
170
  name: "Fire",
171
- slug: "fire",
171
+ slug: "category-fire-element",
172
172
  description: "Fire-type Pokémon cards — Charizard, Arcanine, Ninetales, Moltres",
173
173
  rootId: "category-pokemon-cards",
174
174
  parentIds: ["category-element-type-pokemon-cards"],
@@ -176,26 +176,26 @@ export const pokemonCategoriesSeedData = [
176
176
  isFeatured: true, featuredPriority: 3, showOnHomepage: true,
177
177
  metrics: { productCount: 6, productIds: [], auctionCount: 2, auctionIds: [], totalProductCount: 6, totalAuctionCount: 2, totalItemCount: 8, lastUpdated: daysAgo(1) },
178
178
  seo: { title: "Fire-Type Pokémon Cards", description: "Charizard, Arcanine, Ninetales and more.", keywords: ["fire pokemon", "charizard"] },
179
- display: { showInFooter: false, icon: "🔥", color: "#EE8130", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", showInMenu: true },
179
+ display: { showInFooter: false, icon: "🔥", color: "#EE8130", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", showInMenu: true },
180
180
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
181
181
  }),
182
182
  mkCat({
183
183
  id: "category-grass-element",
184
184
  name: "Grass",
185
- slug: "grass",
185
+ slug: "category-grass-element",
186
186
  description: "Grass-type Pokémon cards — Venusaur, Scyther, Pinsir, Clefairy",
187
187
  rootId: "category-pokemon-cards",
188
188
  parentIds: ["category-element-type-pokemon-cards"],
189
189
  childrenIds: [], tier: 2, path: "pokemon-cards/element-type/grass", order: 4, isLeaf: true,
190
190
  metrics: { productCount: 4, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 4, totalAuctionCount: 0, totalItemCount: 4, lastUpdated: daysAgo(1) },
191
191
  seo: { title: "Grass-Type Pokémon Cards", description: "Venusaur, Scyther, Pinsir and more.", keywords: ["grass pokemon", "venusaur"] },
192
- display: { showInFooter: false, icon: "🌿", color: "#7AC74C", showInMenu: true },
192
+ display: { showInFooter: false, icon: "🌿", color: "#7AC74C", showInMenu: true },
193
193
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
194
194
  }),
195
195
  mkCat({
196
196
  id: "category-psychic-element",
197
197
  name: "Psychic",
198
- slug: "psychic",
198
+ slug: "category-psychic-element",
199
199
  description: "Psychic-type Pokémon cards — Mewtwo, Gengar, Jynx, Alakazam",
200
200
  rootId: "category-pokemon-cards",
201
201
  parentIds: ["category-element-type-pokemon-cards"],
@@ -203,39 +203,39 @@ export const pokemonCategoriesSeedData = [
203
203
  isFeatured: true, featuredPriority: 4,
204
204
  metrics: { productCount: 5, productIds: [], auctionCount: 1, auctionIds: [], totalProductCount: 5, totalAuctionCount: 1, totalItemCount: 6, lastUpdated: daysAgo(1) },
205
205
  seo: { title: "Psychic-Type Pokémon Cards", description: "Mewtwo, Gengar, Alakazam and more.", keywords: ["psychic pokemon", "mewtwo", "gengar"] },
206
- display: { showInFooter: false, icon: "🔮", color: "#F95587", coverImage: "https://images.pokemontcg.io/base1/10_hires.png", showInMenu: true },
206
+ display: { showInFooter: false, icon: "🔮", color: "#F95587", coverImage: "https://images.pokemontcg.io/base1/10_hires.png", showInMenu: true },
207
207
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
208
208
  }),
209
209
  mkCat({
210
210
  id: "category-fighting-element",
211
211
  name: "Fighting",
212
- slug: "fighting",
212
+ slug: "category-fighting-element",
213
213
  description: "Fighting-type Pokémon cards — Machamp, Hitmonchan, Primeape, Onix",
214
214
  rootId: "category-pokemon-cards",
215
215
  parentIds: ["category-element-type-pokemon-cards"],
216
216
  childrenIds: [], tier: 2, path: "pokemon-cards/element-type/fighting", order: 6, isLeaf: true,
217
217
  metrics: { productCount: 3, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 3, totalAuctionCount: 0, totalItemCount: 3, lastUpdated: daysAgo(1) },
218
218
  seo: { title: "Fighting-Type Pokémon Cards", description: "Machamp, Hitmonchan and more.", keywords: ["fighting pokemon", "machamp"] },
219
- display: { showInFooter: false, icon: "🥊", color: "#C22E28", showInMenu: true },
219
+ display: { showInFooter: false, icon: "🥊", color: "#C22E28", showInMenu: true },
220
220
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
221
221
  }),
222
222
  mkCat({
223
223
  id: "category-colorless-element",
224
224
  name: "Colorless",
225
- slug: "colorless",
225
+ slug: "category-colorless-element",
226
226
  description: "Colorless-type Pokémon cards — Chansey, Snorlax, Dragonite, Kangaskhan",
227
227
  rootId: "category-pokemon-cards",
228
228
  parentIds: ["category-element-type-pokemon-cards"],
229
229
  childrenIds: [], tier: 2, path: "pokemon-cards/element-type/colorless", order: 7, isLeaf: true,
230
230
  metrics: { productCount: 4, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 4, totalAuctionCount: 0, totalItemCount: 4, lastUpdated: daysAgo(1) },
231
231
  seo: { title: "Colorless-Type Pokémon Cards", description: "Chansey, Snorlax, Dragonite and more.", keywords: ["colorless pokemon", "chansey", "snorlax"] },
232
- display: { showInFooter: false, icon: "", color: "#A8A77A", showInMenu: true },
232
+ display: { showInFooter: false, icon: "⚪", color: "#A8A77A", showInMenu: true },
233
233
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-element-type-pokemon-cards", name: "Element Type", tier: 1 }],
234
234
  }),
235
235
  mkCat({
236
236
  id: "category-rarity-pokemon-cards",
237
237
  name: "Rarity",
238
- slug: "rarity",
238
+ slug: "category-rarity-pokemon-cards",
239
239
  description: "Shop by card rarity level",
240
240
  rootId: "category-pokemon-cards",
241
241
  parentIds: ["category-pokemon-cards"],
@@ -243,13 +243,13 @@ export const pokemonCategoriesSeedData = [
243
243
  tier: 1, path: "pokemon-cards/rarity", order: 3, isLeaf: false,
244
244
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 35, totalAuctionCount: 4, totalItemCount: 39, lastUpdated: daysAgo(1) },
245
245
  seo: { title: "Rarity — Pokémon TCG", description: "Browse Holo Rare, Uncommon, and Common Pokémon cards.", keywords: ["pokemon rarity", "holo rare", "uncommon"] },
246
- display: { showInFooter: false, icon: "", showInMenu: true },
246
+ display: { showInFooter: false, icon: "⭐", showInMenu: true },
247
247
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }],
248
248
  }),
249
249
  mkCat({
250
250
  id: "category-holo-rare-rarity",
251
251
  name: "Holo Rare",
252
- slug: "holo-rare",
252
+ slug: "category-holo-rare-rarity",
253
253
  description: "Holographic Rare cards — the crown jewels of any Base Set collection",
254
254
  rootId: "category-pokemon-cards",
255
255
  parentIds: ["category-rarity-pokemon-cards"],
@@ -257,55 +257,55 @@ export const pokemonCategoriesSeedData = [
257
257
  isFeatured: true, featuredPriority: 1, showOnHomepage: true,
258
258
  metrics: { productCount: 16, productIds: [], auctionCount: 4, auctionIds: [], totalProductCount: 16, totalAuctionCount: 4, totalItemCount: 20, lastUpdated: daysAgo(1) },
259
259
  seo: { title: "Holo Rare Pokémon Cards — Base Set", description: "All 16 Holo Rares from the original Pokémon Base Set.", keywords: ["holo rare", "holographic", "charizard", "mewtwo"] },
260
- display: { showInFooter: true, icon: "", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", color: "#B8860B", showInMenu: true },
260
+ display: { showInFooter: true, icon: "✨", coverImage: "https://images.pokemontcg.io/base1/4_hires.png", color: "#B8860B", showInMenu: true },
261
261
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-rarity-pokemon-cards", name: "Rarity", tier: 1 }],
262
262
  }),
263
263
  mkCat({
264
264
  id: "category-non-holo-rare-rarity",
265
265
  name: "Non-Holo Rare",
266
- slug: "non-holo-rare",
266
+ slug: "category-non-holo-rare-rarity",
267
267
  description: "Rare cards without holo foiling — often overlooked, great value",
268
268
  rootId: "category-pokemon-cards",
269
269
  parentIds: ["category-rarity-pokemon-cards"],
270
270
  childrenIds: [], tier: 2, path: "pokemon-cards/rarity/non-holo-rare", order: 2, isLeaf: true,
271
271
  metrics: { productCount: 10, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 10, totalAuctionCount: 0, totalItemCount: 10, lastUpdated: daysAgo(1) },
272
272
  seo: { title: "Non-Holo Rare Pokémon Cards", description: "Rare cards without holo foil from Base Set.", keywords: ["non holo rare", "rare pokemon cards"] },
273
- display: { showInFooter: false, icon: "🌟", showInMenu: true },
273
+ display: { showInFooter: false, icon: "🌟", showInMenu: true },
274
274
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-rarity-pokemon-cards", name: "Rarity", tier: 1 }],
275
275
  }),
276
276
  mkCat({
277
277
  id: "category-uncommon-rarity",
278
278
  name: "Uncommon",
279
- slug: "uncommon",
279
+ slug: "category-uncommon-rarity",
280
280
  description: "Uncommon cards — playable staples at accessible prices",
281
281
  rootId: "category-pokemon-cards",
282
282
  parentIds: ["category-rarity-pokemon-cards"],
283
283
  childrenIds: [], tier: 2, path: "pokemon-cards/rarity/uncommon", order: 3, isLeaf: true,
284
284
  metrics: { productCount: 6, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 6, totalAuctionCount: 0, totalItemCount: 6, lastUpdated: daysAgo(1) },
285
285
  seo: { title: "Uncommon Pokémon Cards — Base Set", description: "Budget-friendly uncommon singles from the original print run.", keywords: ["uncommon pokemon cards", "base set uncommon"] },
286
- display: { showInFooter: false, icon: "💎", showInMenu: true },
286
+ display: { showInFooter: false, icon: "💎", showInMenu: true },
287
287
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-rarity-pokemon-cards", name: "Rarity", tier: 1 }],
288
288
  }),
289
289
  mkCat({
290
290
  id: "category-common-rarity",
291
291
  name: "Common",
292
- slug: "common",
292
+ slug: "category-common-rarity",
293
293
  description: "Common cards — great for play sets and completing your collection",
294
294
  rootId: "category-pokemon-cards",
295
295
  parentIds: ["category-rarity-pokemon-cards"],
296
296
  childrenIds: [], tier: 2, path: "pokemon-cards/rarity/common", order: 4, isLeaf: true,
297
297
  metrics: { productCount: 6, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 6, totalAuctionCount: 0, totalItemCount: 6, lastUpdated: daysAgo(1) },
298
298
  seo: { title: "Common Pokémon Cards — Base Set", description: "Affordable common singles from the original Base Set.", keywords: ["common pokemon cards", "base set common"] },
299
- display: { showInFooter: false, icon: "🃏", showInMenu: true },
299
+ display: { showInFooter: false, icon: "🃏", showInMenu: true },
300
300
  ancestors: [{ id: "category-pokemon-cards", name: "Pokémon Cards", tier: 0 }, { id: "category-rarity-pokemon-cards", name: "Rarity", tier: 1 }],
301
301
  }),
302
- // ═══════════════════════════════════════════════════
302
+ // ═══════════════════════════════════════════════════
303
303
  // HOT WHEELS
304
- // ═══════════════════════════════════════════════════
304
+ // ═══════════════════════════════════════════════════
305
305
  mkCat({
306
306
  id: "category-hot-wheels",
307
307
  name: "Hot Wheels",
308
- slug: "hot-wheels",
308
+ slug: "category-hot-wheels",
309
309
  description: "Die-cast Hot Wheels cars — basic, premium, Treasure Hunt, and track sets",
310
310
  rootId: "category-hot-wheels",
311
311
  parentIds: [],
@@ -314,13 +314,13 @@ export const pokemonCategoriesSeedData = [
314
314
  isFeatured: true, featuredPriority: 2, showOnHomepage: true,
315
315
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 35, totalAuctionCount: 3, totalItemCount: 38, lastUpdated: daysAgo(1) },
316
316
  seo: { title: "Hot Wheels Die-Cast Cars | LetItRip", description: "Shop Hot Wheels basic, premium, Treasure Hunt, and collector cars.", keywords: ["hot wheels", "die cast", "toy cars", "treasure hunt"] },
317
- display: { showInFooter: true, icon: "🚗", color: "#e74c3c", coverImage: "https://picsum.photos/seed/hw-root/600/400", showInMenu: true },
317
+ display: { showInFooter: true, icon: "🚗", color: "#e74c3c", coverImage: "https://picsum.photos/seed/hw-root/600/400", showInMenu: true },
318
318
  ancestors: [],
319
319
  }),
320
320
  mkCat({
321
321
  id: "category-hw-basic-cars",
322
322
  name: "Basic Die-Cast Cars",
323
- slug: "hw-basic-cars",
323
+ slug: "category-hw-basic-cars",
324
324
  description: "Everyday Hot Wheels cars — from movie vehicles to original designs",
325
325
  rootId: "category-hot-wheels",
326
326
  parentIds: ["category-hot-wheels"],
@@ -328,13 +328,13 @@ export const pokemonCategoriesSeedData = [
328
328
  isFeatured: true, featuredPriority: 5,
329
329
  metrics: { productCount: 15, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 15, totalAuctionCount: 0, totalItemCount: 15, lastUpdated: daysAgo(1) },
330
330
  seo: { title: "Hot Wheels Basic Cars", description: "Everyday mainline Hot Wheels die-cast cars.", keywords: ["hot wheels basic", "mainline", "die cast cars"] },
331
- display: { showInFooter: false, icon: "🚙", color: "#e74c3c", showInMenu: true },
331
+ display: { showInFooter: false, icon: "🚙", color: "#e74c3c", showInMenu: true },
332
332
  ancestors: [{ id: "category-hot-wheels", name: "Hot Wheels", tier: 0 }],
333
333
  }),
334
334
  mkCat({
335
335
  id: "category-hw-premium",
336
336
  name: "Premium Cars",
337
- slug: "hw-premium",
337
+ slug: "category-hw-premium",
338
338
  description: "Hot Wheels premium lines — Car Culture, Boulevard, Real Riders with rubber tyres",
339
339
  rootId: "category-hot-wheels",
340
340
  parentIds: ["category-hot-wheels"],
@@ -342,13 +342,13 @@ export const pokemonCategoriesSeedData = [
342
342
  isFeatured: true, featuredPriority: 6,
343
343
  metrics: { productCount: 10, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 10, totalAuctionCount: 0, totalItemCount: 10, lastUpdated: daysAgo(1) },
344
344
  seo: { title: "Hot Wheels Premium Cars — Car Culture, Boulevard", description: "Premium Hot Wheels with real rubber tyres and premium packaging.", keywords: ["hot wheels premium", "car culture", "boulevard", "real riders"] },
345
- display: { showInFooter: false, icon: "🏎️", color: "#c0392b", showInMenu: true },
345
+ display: { showInFooter: false, icon: "🏎️", color: "#c0392b", showInMenu: true },
346
346
  ancestors: [{ id: "category-hot-wheels", name: "Hot Wheels", tier: 0 }],
347
347
  }),
348
348
  mkCat({
349
349
  id: "category-hw-treasure-hunt",
350
350
  name: "Treasure Hunt",
351
- slug: "hw-treasure-hunt",
351
+ slug: "category-hw-treasure-hunt",
352
352
  description: "Super Treasure Hunt (STH) and regular Treasure Hunt — the most sought-after Hot Wheels",
353
353
  rootId: "category-hot-wheels",
354
354
  parentIds: ["category-hot-wheels"],
@@ -356,29 +356,29 @@ export const pokemonCategoriesSeedData = [
356
356
  isFeatured: true, featuredPriority: 7,
357
357
  metrics: { productCount: 5, productIds: [], auctionCount: 3, auctionIds: [], totalProductCount: 5, totalAuctionCount: 3, totalItemCount: 8, lastUpdated: daysAgo(1) },
358
358
  seo: { title: "Hot Wheels Treasure Hunt & Super Treasure Hunt", description: "Rare and super-rare Treasure Hunt Hot Wheels cars.", keywords: ["super treasure hunt", "STH", "hot wheels rare"] },
359
- display: { showInFooter: false, icon: "🏆", color: "#d4ac0d", showInMenu: true },
359
+ display: { showInFooter: false, icon: "🏆", color: "#d4ac0d", showInMenu: true },
360
360
  ancestors: [{ id: "category-hot-wheels", name: "Hot Wheels", tier: 0 }],
361
361
  }),
362
362
  mkCat({
363
363
  id: "category-hw-track-sets",
364
364
  name: "Track Sets & Playsets",
365
- slug: "hw-track-sets",
365
+ slug: "category-hw-track-sets",
366
366
  description: "Hot Wheels track sets, loop launchers, garages, and city playsets",
367
367
  rootId: "category-hot-wheels",
368
368
  parentIds: ["category-hot-wheels"],
369
369
  childrenIds: [], tier: 1, path: "hot-wheels/track-sets", order: 4, isLeaf: true,
370
370
  metrics: { productCount: 5, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 5, totalAuctionCount: 0, totalItemCount: 5, lastUpdated: daysAgo(1) },
371
371
  seo: { title: "Hot Wheels Track Sets and Playsets", description: "Loops, launchers, garages, and city sets from Hot Wheels.", keywords: ["hot wheels track", "loop set", "playset", "garage"] },
372
- display: { showInFooter: false, icon: "🛤️", showInMenu: true },
372
+ display: { showInFooter: false, icon: "🛤️", showInMenu: true },
373
373
  ancestors: [{ id: "category-hot-wheels", name: "Hot Wheels", tier: 0 }],
374
374
  }),
375
- // ═══════════════════════════════════════════════════
375
+ // ═══════════════════════════════════════════════════
376
376
  // BEYBLADE BURST
377
- // ═══════════════════════════════════════════════════
377
+ // ═══════════════════════════════════════════════════
378
378
  mkCat({
379
379
  id: "category-beyblade-burst",
380
380
  name: "Beyblade Burst",
381
- slug: "beyblade-burst",
381
+ slug: "category-beyblade-burst",
382
382
  description: "Beyblade Burst spinning tops — Attack, Defense, Stamina, and Balance types",
383
383
  rootId: "category-beyblade-burst",
384
384
  parentIds: [],
@@ -387,13 +387,13 @@ export const pokemonCategoriesSeedData = [
387
387
  isFeatured: true, featuredPriority: 3, showOnHomepage: true,
388
388
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 24, totalAuctionCount: 2, totalItemCount: 26, lastUpdated: daysAgo(1) },
389
389
  seo: { title: "Beyblade Burst Tops | LetItRip", description: "Shop Beyblade Burst spinning tops — all types and series.", keywords: ["beyblade burst", "spinning top", "beyblade", "valtryek", "spriggan"] },
390
- display: { showInFooter: true, icon: "🌀", color: "#2980b9", coverImage: "https://picsum.photos/seed/bb-root/600/400", showInMenu: true },
390
+ display: { showInFooter: true, icon: "🌀", color: "#2980b9", coverImage: "https://picsum.photos/seed/bb-root/600/400", showInMenu: true },
391
391
  ancestors: [],
392
392
  }),
393
393
  mkCat({
394
394
  id: "category-bb-attack-type",
395
395
  name: "Attack Type",
396
- slug: "bb-attack-type",
396
+ slug: "category-bb-attack-type",
397
397
  description: "Aggressive attack-type Beyblade Burst tops — built for raw power and KOs",
398
398
  rootId: "category-beyblade-burst",
399
399
  parentIds: ["category-beyblade-burst"],
@@ -401,68 +401,68 @@ export const pokemonCategoriesSeedData = [
401
401
  isFeatured: true, featuredPriority: 8,
402
402
  metrics: { productCount: 6, productIds: [], auctionCount: 1, auctionIds: [], totalProductCount: 6, totalAuctionCount: 1, totalItemCount: 7, lastUpdated: daysAgo(1) },
403
403
  seo: { title: "Attack Type Beyblades — Burst", description: "Valtryek, Spriggan, Achilles and top attack-type Beyblade Burst tops.", keywords: ["attack type beyblade", "valtryek", "achilles"] },
404
- display: { showInFooter: false, icon: "⚔️", color: "#e74c3c", showInMenu: true },
404
+ display: { showInFooter: false, icon: "⚔️", color: "#e74c3c", showInMenu: true },
405
405
  ancestors: [{ id: "category-beyblade-burst", name: "Beyblade Burst", tier: 0 }],
406
406
  }),
407
407
  mkCat({
408
408
  id: "category-bb-defense-type",
409
409
  name: "Defense Type",
410
- slug: "bb-defense-type",
410
+ slug: "category-bb-defense-type",
411
411
  description: "Defense-type Beyblade Burst tops — wide, heavy layers that resist attacks",
412
412
  rootId: "category-beyblade-burst",
413
413
  parentIds: ["category-beyblade-burst"],
414
414
  childrenIds: [], tier: 1, path: "beyblade-burst/defense-type", order: 2, isLeaf: true,
415
415
  metrics: { productCount: 4, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 4, totalAuctionCount: 0, totalItemCount: 4, lastUpdated: daysAgo(1) },
416
416
  seo: { title: "Defense Type Beyblades — Burst", description: "Garuda, Balkesh, and top defense-type Beyblades.", keywords: ["defense type beyblade", "garuda"] },
417
- display: { showInFooter: false, icon: "🛡️", color: "#2c3e50", showInMenu: true },
417
+ display: { showInFooter: false, icon: "🛡️", color: "#2c3e50", showInMenu: true },
418
418
  ancestors: [{ id: "category-beyblade-burst", name: "Beyblade Burst", tier: 0 }],
419
419
  }),
420
420
  mkCat({
421
421
  id: "category-bb-stamina-type",
422
422
  name: "Stamina Type",
423
- slug: "bb-stamina-type",
423
+ slug: "category-bb-stamina-type",
424
424
  description: "Stamina-type tops — long-spinning, outlast opponents in the stadium",
425
425
  rootId: "category-beyblade-burst",
426
426
  parentIds: ["category-beyblade-burst"],
427
427
  childrenIds: [], tier: 1, path: "beyblade-burst/stamina-type", order: 3, isLeaf: true,
428
428
  metrics: { productCount: 5, productIds: [], auctionCount: 1, auctionIds: [], totalProductCount: 5, totalAuctionCount: 1, totalItemCount: 6, lastUpdated: daysAgo(1) },
429
429
  seo: { title: "Stamina Type Beyblades — Burst", description: "Nepstrius, Phoenix, and top stamina-type Beyblades.", keywords: ["stamina type beyblade", "nepstrius", "phoenix"] },
430
- display: { showInFooter: false, icon: "🌀", color: "#27ae60", showInMenu: true },
430
+ display: { showInFooter: false, icon: "🌀", color: "#27ae60", showInMenu: true },
431
431
  ancestors: [{ id: "category-beyblade-burst", name: "Beyblade Burst", tier: 0 }],
432
432
  }),
433
433
  mkCat({
434
434
  id: "category-bb-balance-type",
435
435
  name: "Balance Type",
436
- slug: "bb-balance-type",
436
+ slug: "category-bb-balance-type",
437
437
  description: "Balance-type tops — versatile performance across attack, defense, and stamina",
438
438
  rootId: "category-beyblade-burst",
439
439
  parentIds: ["category-beyblade-burst"],
440
440
  childrenIds: [], tier: 1, path: "beyblade-burst/balance-type", order: 4, isLeaf: true,
441
441
  metrics: { productCount: 3, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 3, totalAuctionCount: 0, totalItemCount: 3, lastUpdated: daysAgo(1) },
442
442
  seo: { title: "Balance Type Beyblades — Burst", description: "Genesis Drago, Achilles, Dead Hades — all-round balance tops.", keywords: ["balance type beyblade", "genesis drago"] },
443
- display: { showInFooter: false, icon: "⚖️", color: "#8e44ad", showInMenu: true },
443
+ display: { showInFooter: false, icon: "⚖️", color: "#8e44ad", showInMenu: true },
444
444
  ancestors: [{ id: "category-beyblade-burst", name: "Beyblade Burst", tier: 0 }],
445
445
  }),
446
446
  mkCat({
447
447
  id: "category-bb-stadium",
448
448
  name: "Stadiums & Accessories",
449
- slug: "bb-stadium",
449
+ slug: "category-bb-stadium",
450
450
  description: "Beyblade Burst stadiums, launchers, string tops, and customisation parts",
451
451
  rootId: "category-beyblade-burst",
452
452
  parentIds: ["category-beyblade-burst"],
453
453
  childrenIds: [], tier: 1, path: "beyblade-burst/stadium", order: 5, isLeaf: true,
454
454
  metrics: { productCount: 4, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 4, totalAuctionCount: 0, totalItemCount: 4, lastUpdated: daysAgo(1) },
455
455
  seo: { title: "Beyblade Burst Stadiums & Accessories", description: "Official Beyblade stadiums, launchers, and custom parts.", keywords: ["beyblade stadium", "beystadium", "launcher"] },
456
- display: { showInFooter: false, icon: "🏟️", showInMenu: true },
456
+ display: { showInFooter: false, icon: "🏟️", showInMenu: true },
457
457
  ancestors: [{ id: "category-beyblade-burst", name: "Beyblade Burst", tier: 0 }],
458
458
  }),
459
- // ═══════════════════════════════════════════════════
459
+ // ═══════════════════════════════════════════════════
460
460
  // TRANSFORMERS
461
- // ═══════════════════════════════════════════════════
461
+ // ═══════════════════════════════════════════════════
462
462
  mkCat({
463
463
  id: "category-transformers",
464
464
  name: "Transformers",
465
- slug: "transformers",
465
+ slug: "category-transformers",
466
466
  description: "Transformers action figures — Autobots, Decepticons, Combiners, G1 and modern",
467
467
  rootId: "category-transformers",
468
468
  parentIds: [],
@@ -471,13 +471,13 @@ export const pokemonCategoriesSeedData = [
471
471
  isFeatured: true, featuredPriority: 4, showOnHomepage: true,
472
472
  metrics: { productCount: 0, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 12, totalAuctionCount: 1, totalItemCount: 13, lastUpdated: daysAgo(1) },
473
473
  seo: { title: "Transformers Action Figures | LetItRip", description: "Shop Transformers figures — Autobots, Decepticons, and Combiners.", keywords: ["transformers", "optimus prime", "megatron", "autobots"] },
474
- display: { showInFooter: true, icon: "🤖", color: "#e67e22", coverImage: "https://picsum.photos/seed/tf-root/600/400", showInMenu: true },
474
+ display: { showInFooter: true, icon: "🤖", color: "#e67e22", coverImage: "https://picsum.photos/seed/tf-root/600/400", showInMenu: true },
475
475
  ancestors: [],
476
476
  }),
477
477
  mkCat({
478
478
  id: "category-tf-autobots",
479
479
  name: "Autobots",
480
- slug: "tf-autobots",
480
+ slug: "category-tf-autobots",
481
481
  description: "Autobot Transformers — Optimus Prime, Bumblebee, Jazz, Ironhide and more",
482
482
  rootId: "category-transformers",
483
483
  parentIds: ["category-transformers"],
@@ -485,42 +485,42 @@ export const pokemonCategoriesSeedData = [
485
485
  isFeatured: true, featuredPriority: 9,
486
486
  metrics: { productCount: 6, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 6, totalAuctionCount: 0, totalItemCount: 6, lastUpdated: daysAgo(1) },
487
487
  seo: { title: "Autobot Transformers Figures", description: "Optimus Prime, Bumblebee, Jazz, and all Autobot figures.", keywords: ["autobots", "optimus prime", "bumblebee", "transformers"] },
488
- display: { showInFooter: false, icon: "🔵", color: "#2980b9", showInMenu: true },
488
+ display: { showInFooter: false, icon: "🔵", color: "#2980b9", showInMenu: true },
489
489
  ancestors: [{ id: "category-transformers", name: "Transformers", tier: 0 }],
490
490
  }),
491
491
  mkCat({
492
492
  id: "category-tf-decepticons",
493
493
  name: "Decepticons",
494
- slug: "tf-decepticons",
494
+ slug: "category-tf-decepticons",
495
495
  description: "Decepticon Transformers — Megatron, Starscream, Soundwave, Shockwave",
496
496
  rootId: "category-transformers",
497
497
  parentIds: ["category-transformers"],
498
498
  childrenIds: [], tier: 1, path: "transformers/decepticons", order: 2, isLeaf: true,
499
499
  metrics: { productCount: 4, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 4, totalAuctionCount: 0, totalItemCount: 4, lastUpdated: daysAgo(1) },
500
500
  seo: { title: "Decepticon Transformers Figures", description: "Megatron, Starscream, Soundwave, and all Decepticon figures.", keywords: ["decepticons", "megatron", "starscream", "soundwave"] },
501
- display: { showInFooter: false, icon: "🔴", color: "#922b21", showInMenu: true },
501
+ display: { showInFooter: false, icon: "🔴", color: "#922b21", showInMenu: true },
502
502
  ancestors: [{ id: "category-transformers", name: "Transformers", tier: 0 }],
503
503
  }),
504
504
  mkCat({
505
505
  id: "category-tf-combiners",
506
506
  name: "Combiners & Special Teams",
507
- slug: "tf-combiners",
507
+ slug: "category-tf-combiners",
508
508
  description: "Combiner Wars, Siege, and Legacy combiner sets — Devastator, Superion and more",
509
509
  rootId: "category-transformers",
510
510
  parentIds: ["category-transformers"],
511
511
  childrenIds: [], tier: 1, path: "transformers/combiners", order: 3, isLeaf: true,
512
512
  metrics: { productCount: 2, productIds: [], auctionCount: 1, auctionIds: [], totalProductCount: 2, totalAuctionCount: 1, totalItemCount: 3, lastUpdated: daysAgo(1) },
513
513
  seo: { title: "Transformers Combiner Sets", description: "Devastator, Superion, Menasor — all Transformers combiner sets.", keywords: ["combiners", "devastator", "superion", "combiner wars"] },
514
- display: { showInFooter: false, icon: "🦾", color: "#641e16", showInMenu: true },
514
+ display: { showInFooter: false, icon: "🦾", color: "#641e16", showInMenu: true },
515
515
  ancestors: [{ id: "category-transformers", name: "Transformers", tier: 0 }],
516
516
  }),
517
- // ═══════════════════════════════════════════════════
517
+ // ═══════════════════════════════════════════════════
518
518
  // CROSS-FRANCHISE
519
- // ═══════════════════════════════════════════════════
519
+ // ═══════════════════════════════════════════════════
520
520
  mkCat({
521
521
  id: "category-sealed-products",
522
522
  name: "Sealed Products",
523
- slug: "sealed-products",
523
+ slug: "category-sealed-products",
524
524
  description: "Factory-sealed booster boxes, packs, starter sets, and collector bundles",
525
525
  rootId: "category-sealed-products",
526
526
  parentIds: [],
@@ -528,20 +528,20 @@ export const pokemonCategoriesSeedData = [
528
528
  isFeatured: true, featuredPriority: 10, showOnHomepage: true,
529
529
  metrics: { productCount: 8, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 8, totalAuctionCount: 0, totalItemCount: 8, lastUpdated: daysAgo(1) },
530
530
  seo: { title: "Sealed Products — Pokémon, Hot Wheels & More | LetItRip", description: "Factory-sealed collectibles — Pokémon packs, Hot Wheels cases, Beyblade sets.", keywords: ["sealed products", "booster box", "factory sealed"] },
531
- display: { showInFooter: true, icon: "📦", showInMenu: true },
531
+ display: { showInFooter: true, icon: "📦", showInMenu: true },
532
532
  ancestors: [],
533
533
  }),
534
534
  mkCat({
535
535
  id: "category-accessories",
536
536
  name: "Accessories & Display",
537
- slug: "accessories",
537
+ slug: "category-accessories",
538
538
  description: "Card sleeves, top-loaders, binders, display stands, and storage solutions",
539
539
  rootId: "category-accessories",
540
540
  parentIds: [],
541
541
  childrenIds: [], tier: 0, path: "accessories", order: 6, isLeaf: true,
542
542
  metrics: { productCount: 6, productIds: [], auctionCount: 0, auctionIds: [], totalProductCount: 6, totalAuctionCount: 0, totalItemCount: 6, lastUpdated: daysAgo(1) },
543
543
  seo: { title: "Accessories & Display Products | LetItRip", description: "Card sleeves, binders, top-loaders, display cases, and storage.", keywords: ["card sleeves", "top loader", "binder", "display case"] },
544
- display: { showInFooter: true, icon: "🗂️", showInMenu: true },
544
+ display: { showInFooter: true, icon: "🗂️", showInMenu: true },
545
545
  ancestors: [],
546
546
  }),
547
547
  ];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Multi-Franchise Collectibles — Homepage Sections Seed Data (5 sections)
2
+ * Multi-Franchise Collectibles — Homepage Sections Seed Data
3
3
  *
4
4
  * Covers Pokémon TCG · Hot Wheels · Beyblade Burst · Transformers
5
5
  */