@mohasinac/appkit 2.3.2 → 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 (677) hide show
  1. package/dist/client.d.ts +44 -12
  2. package/dist/client.js +22 -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 +7 -0
  411. package/dist/features/scams/components/ScamProfileView.js +49 -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 +112 -16
  532. package/dist/index.js +133 -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
@@ -31,13 +31,63 @@ function filenameFromUrl(url) {
31
31
  return url;
32
32
  }
33
33
  }
34
- export function MediaUploadField({ label, value, onChange, onChangeField, onUpload, accept = "*", maxSizeMB = 50, disabled = false, helperText, captureSource = "file-only", captureMode = "photo", enableTrim = true, enableThumbnail = true, onThumbnailChange, onAbort, onStagedUrlsChange, isPersisted = false, }) {
34
+ function extractYouTubeId(input) {
35
+ const trimmed = input.trim();
36
+ // Already just an ID (11 chars, alphanumeric + _ -)
37
+ if (/^[\w-]{11}$/.test(trimmed))
38
+ return trimmed;
39
+ try {
40
+ const url = new URL(trimmed);
41
+ return (url.searchParams.get("v") ||
42
+ (url.hostname === "youtu.be" ? url.pathname.slice(1) : null));
43
+ }
44
+ catch {
45
+ return null;
46
+ }
47
+ }
48
+ export function MediaUploadField({ label, value, onChange, onChangeField, onUpload, accept = "*", maxSizeMB = 50, disabled = false, helperText, captureSource = "both", captureMode = "photo", enableTrim = true, enableThumbnail = true, onThumbnailChange, showYoutube = false, showExternal = false, onAbort, onStagedUrlsChange, isPersisted = false, }) {
35
49
  const [isLoading, setIsLoading] = useState(false);
36
50
  const [error, setError] = useState(null);
37
51
  const [pendingVideoUrl, setPendingVideoUrl] = useState(null);
38
52
  const [showTrimModal, setShowTrimModal] = useState(false);
39
53
  const [showThumbnailModal, setShowThumbnailModal] = useState(false);
40
54
  const [inputMode, setInputMode] = useState("file");
55
+ const [sourceTab, setSourceTab] = useState("upload");
56
+ const [ytInput, setYtInput] = useState("");
57
+ const [ytError, setYtError] = useState("");
58
+ const [extInput, setExtInput] = useState("");
59
+ const [extError, setExtError] = useState("");
60
+ const hasAlternateSources = showYoutube || showExternal;
61
+ function handleYtApply() {
62
+ const id = extractYouTubeId(ytInput);
63
+ if (!id) {
64
+ setYtError("Enter a valid YouTube video ID or URL.");
65
+ return;
66
+ }
67
+ const url = `https://www.youtube.com/watch?v=${id}`;
68
+ const thumb = `https://img.youtube.com/vi/${id}/maxresdefault.jpg`;
69
+ onChange(url);
70
+ onChangeField?.({ url, type: "video", source: "youtube", youtubeId: id, thumbnailUrl: thumb });
71
+ setYtError("");
72
+ }
73
+ function handleExtApply() {
74
+ const trimmed = extInput.trim();
75
+ if (!trimmed) {
76
+ setExtError("Enter a URL.");
77
+ return;
78
+ }
79
+ try {
80
+ new URL(trimmed);
81
+ }
82
+ catch {
83
+ setExtError("Enter a valid URL.");
84
+ return;
85
+ }
86
+ const type = /\.(mp4|webm|ogg|mov|avi)(\?|$)/i.test(trimmed) ? "video" : "image";
87
+ onChange(trimmed);
88
+ onChangeField?.({ url: trimmed, type, source: "external" });
89
+ setExtError("");
90
+ }
41
91
  const fileInputRef = useRef(null);
42
92
  const mobileCaptureRef = useRef(null);
43
93
  const stagedUrlsRef = useRef([]);
@@ -194,11 +244,14 @@ export function MediaUploadField({ label, value, onChange, onChangeField, onUplo
194
244
  setIsLoading(false);
195
245
  }
196
246
  };
197
- return (_jsxs(Div, { className: "space-y-2", children: [_jsx(Label, { className: "block text-sm font-medium text-zinc-600 dark:text-zinc-400", children: label }), value && !isLoading && (_jsxs(Div, { className: "rounded-lg border border-zinc-200 dark:border-zinc-700 bg-zinc-50 dark:bg-zinc-900 p-3", children: [isVideo(value) ? (_jsx(Div, { className: "relative aspect-video overflow-hidden rounded-lg", children: _jsx(MediaVideo, { src: value, alt: label, controls: true, objectFit: "contain" }) })) : isImage(value) ? (_jsx(Div, { className: "relative aspect-video overflow-hidden rounded-lg", children: _jsx(MediaImage, { src: value, alt: label, size: "card", objectFit: "contain" }) })) : (_jsx("a", { href: value, target: "_blank", rel: "noopener noreferrer", className: "text-sm underline break-all text-blue-600 dark:text-blue-400", children: filenameFromUrl(value) })), !disabled && (_jsxs(Row, { wrap: true, gap: "sm", className: "mt-2", children: [isVideo(value) && (enableTrim || enableThumbnail) && (_jsx(Button, { type: "button", onClick: () => {
247
+ return (_jsxs(Div, { className: "space-y-2", children: [_jsx(Label, { className: "block text-sm font-medium text-zinc-600 dark:text-zinc-400", children: label }), hasAlternateSources && !disabled && (_jsx(Row, { gap: "none", className: "appkit-media-upload__source-tabs", children: ["upload", ...(showYoutube ? ["youtube"] : []), ...(showExternal ? ["external"] : [])].map((tab) => (_jsx("button", { type: "button", onClick: () => setSourceTab(tab), className: [
248
+ "appkit-media-upload__source-tab",
249
+ sourceTab === tab ? "appkit-media-upload__source-tab--active" : "",
250
+ ].filter(Boolean).join(" "), children: tab === "upload" ? "Upload" : tab === "youtube" ? "YouTube" : "External URL" }, tab))) })), hasAlternateSources && sourceTab === "youtube" && !disabled && (_jsxs(Div, { className: "space-y-2", children: [_jsxs(Row, { gap: "sm", children: [_jsx("input", { type: "text", value: ytInput, onChange: (e) => { setYtInput(e.target.value); setYtError(""); }, placeholder: "YouTube video ID or URL", className: "appkit-input flex-1" }), _jsx(Button, { type: "button", variant: "primary", size: "sm", onClick: handleYtApply, children: "Apply" })] }), ytError && _jsx(Alert, { variant: "error", children: ytError }), value?.includes("youtube.com") && (_jsxs(Text, { size: "xs", variant: "secondary", children: ["YouTube embed: ", value] }))] })), hasAlternateSources && sourceTab === "external" && !disabled && (_jsxs(Div, { className: "space-y-2", children: [_jsxs(Row, { gap: "sm", children: [_jsx("input", { type: "url", value: extInput, onChange: (e) => { setExtInput(e.target.value); setExtError(""); }, placeholder: "https://example.com/image.jpg", className: "appkit-input flex-1" }), _jsx(Button, { type: "button", variant: "primary", size: "sm", onClick: handleExtApply, children: "Apply" })] }), extError && _jsx(Alert, { variant: "error", children: extError }), _jsx(Text, { size: "xs", variant: "secondary", children: "External URLs are stored as-is and are not watermarked." })] })), (!hasAlternateSources || sourceTab === "upload") && value && !isLoading && (_jsxs(Div, { className: "rounded-lg border border-zinc-200 dark:border-zinc-700 bg-zinc-50 dark:bg-zinc-900 p-3", children: [isVideo(value) ? (_jsx(Div, { className: "relative aspect-video overflow-hidden rounded-lg", children: _jsx(MediaVideo, { src: value, alt: label, controls: true, objectFit: "contain" }) })) : isImage(value) ? (_jsx(Div, { className: "relative aspect-video overflow-hidden rounded-lg", children: _jsx(MediaImage, { src: value, alt: label, size: "card", objectFit: "contain" }) })) : (_jsx("a", { href: value, target: "_blank", rel: "noopener noreferrer", className: "text-sm underline break-all text-blue-600 dark:text-blue-400", children: filenameFromUrl(value) })), !disabled && (_jsxs(Row, { wrap: true, gap: "sm", className: "mt-2", children: [isVideo(value) && (enableTrim || enableThumbnail) && (_jsx(Button, { type: "button", onClick: () => {
198
251
  setPendingVideoUrl(value);
199
252
  if (enableTrim)
200
253
  setShowTrimModal(true);
201
254
  else
202
255
  setShowThumbnailModal(true);
203
- }, variant: "secondary", size: "sm", children: tMediaEditor("editVideo") })), _jsx(Button, { type: "button", onClick: handleRemove, variant: "danger", size: "sm", children: tUpload("remove") })] }))] })), !disabled && !isLoading && (_jsxs(_Fragment, { children: [captureSource === "both" && isCameraSupported && (_jsxs(Row, { className: "gap-2", children: [_jsx(Button, { type: "button", variant: inputMode === "file" ? "primary" : "outline", size: "sm", onClick: () => setInputMode("file"), children: t("switchToUpload") }), _jsx(Button, { type: "button", variant: inputMode === "camera" ? "primary" : "outline", size: "sm", onClick: () => setInputMode("camera"), children: t("switchToCamera") })] })), showCamera && isCameraSupported && (_jsx(CameraCapture, { mode: captureMode, facingMode: "environment", onCapture: handleCameraCapture, onError: (msg) => setError(msg) })), showCamera && !isCameraSupported && (_jsx(Button, { type: "button", onClick: () => mobileCaptureRef.current?.click(), variant: "ghost", className: "w-full py-3 border-2 border-dashed border-zinc-200 dark:border-zinc-700 rounded-xl text-sm text-zinc-500 dark:text-zinc-400", children: t("switchToCamera") })), showFileInput && (_jsx(Button, { type: "button", onClick: () => fileInputRef.current?.click(), variant: "ghost", className: "w-full py-3 border-2 border-dashed border-zinc-200 dark:border-zinc-700 rounded-xl text-sm text-zinc-500 dark:text-zinc-400", children: value ? tUpload("replaceFile") : tUpload("chooseFile") }))] })), isLoading && (_jsxs(Row, { className: "gap-2", children: [_jsx(Spinner, { size: "sm" }), _jsx(Text, { size: "sm", variant: "secondary", children: tUpload("uploading") })] })), _jsx("input", { ref: fileInputRef, type: "file", accept: accept, onChange: handleFileChange, className: "hidden", "aria-hidden": "true" }), showCamera && !isCameraSupported && (_jsx("input", { ref: mobileCaptureRef, type: "file", accept: captureModeAccept, capture: "environment", onChange: handleFileChange, className: "hidden", "aria-hidden": "true" })), helperText && !error && (_jsx(Text, { variant: "secondary", size: "xs", children: helperText })), error && _jsx(Alert, { variant: "error", children: error }), pendingVideoUrl && (_jsx(VideoTrimModal, { isOpen: showTrimModal, videoUrl: pendingVideoUrl, onClose: handleTrimClose, onSave: handleTrimSave })), pendingVideoUrl && (_jsx(VideoThumbnailSelector, { isOpen: showThumbnailModal, videoUrl: pendingVideoUrl, onClose: handleThumbnailClose, onSelect: handleThumbnailSelect, onUpload: onUpload }))] }));
256
+ }, variant: "secondary", size: "sm", children: tMediaEditor("editVideo") })), _jsx(Button, { type: "button", onClick: handleRemove, variant: "danger", size: "sm", children: tUpload("remove") })] }))] })), !disabled && !isLoading && (!hasAlternateSources || sourceTab === "upload") && (_jsxs(_Fragment, { children: [captureSource === "both" && isCameraSupported && (_jsxs(Row, { className: "gap-2", children: [_jsx(Button, { type: "button", variant: inputMode === "file" ? "primary" : "outline", size: "sm", onClick: () => setInputMode("file"), children: t("switchToUpload") }), _jsx(Button, { type: "button", variant: inputMode === "camera" ? "primary" : "outline", size: "sm", onClick: () => setInputMode("camera"), children: t("switchToCamera") })] })), showCamera && isCameraSupported && (_jsx(CameraCapture, { mode: captureMode, facingMode: "environment", onCapture: handleCameraCapture, onError: (msg) => setError(msg) })), showCamera && !isCameraSupported && (_jsx(Button, { type: "button", onClick: () => mobileCaptureRef.current?.click(), variant: "ghost", className: "w-full py-3 border-2 border-dashed border-zinc-200 dark:border-zinc-700 rounded-xl text-sm text-zinc-500 dark:text-zinc-400", children: t("switchToCamera") })), showFileInput && (_jsx(Button, { type: "button", onClick: () => fileInputRef.current?.click(), variant: "ghost", className: "w-full py-3 border-2 border-dashed border-zinc-200 dark:border-zinc-700 rounded-xl text-sm text-zinc-500 dark:text-zinc-400", children: value ? tUpload("replaceFile") : tUpload("chooseFile") }))] })), isLoading && (_jsxs(Row, { className: "gap-2", children: [_jsx(Spinner, { size: "sm" }), _jsx(Text, { size: "sm", variant: "secondary", children: tUpload("uploading") })] })), _jsx("input", { ref: fileInputRef, type: "file", accept: accept, onChange: handleFileChange, className: "hidden", "aria-hidden": "true" }), showCamera && !isCameraSupported && (_jsx("input", { ref: mobileCaptureRef, type: "file", accept: captureModeAccept, capture: "environment", onChange: handleFileChange, className: "hidden", "aria-hidden": "true" })), helperText && !error && (_jsx(Text, { variant: "secondary", size: "xs", children: helperText })), error && _jsx(Alert, { variant: "error", children: error }), pendingVideoUrl && (_jsx(VideoTrimModal, { isOpen: showTrimModal, videoUrl: pendingVideoUrl, onClose: handleTrimClose, onSave: handleTrimSave })), pendingVideoUrl && (_jsx(VideoThumbnailSelector, { isOpen: showThumbnailModal, videoUrl: pendingVideoUrl, onClose: handleThumbnailClose, onSelect: handleThumbnailSelect, onUpload: onUpload }))] }));
204
257
  }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Messages / Conversations Firestore Document Types & Constants
3
+ *
4
+ * Architecture: one `conversations` document per buyer↔seller pair on a product.
5
+ * Messages are embedded as an array for seed purposes; production can migrate to
6
+ * a subcollection when the thread exceeds ~200 messages.
7
+ */
8
+ export interface ConversationMessage {
9
+ id: string;
10
+ senderId: string;
11
+ senderRole: "buyer" | "seller";
12
+ body: string;
13
+ isRead: boolean;
14
+ sentAt: Date;
15
+ attachments?: string[];
16
+ }
17
+ export interface ConversationDocument {
18
+ id: string;
19
+ buyerId: string;
20
+ buyerDisplayName: string;
21
+ storeId: string;
22
+ storeName: string;
23
+ sellerDisplayName: string;
24
+ productId?: string;
25
+ productTitle?: string;
26
+ messages: ConversationMessage[];
27
+ lastMessage: string;
28
+ lastMessageAt: Date;
29
+ unreadBuyer: number;
30
+ unreadSeller: number;
31
+ status: "active" | "archived" | "blocked";
32
+ createdAt: Date;
33
+ updatedAt: Date;
34
+ }
35
+ export declare const CONVERSATIONS_COLLECTION: "conversations";
36
+ export declare const CONVERSATIONS_INDEXED_FIELDS: readonly ["buyerId", "storeId", "productId", "status", "lastMessageAt", "createdAt"];
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Messages / Conversations Firestore Document Types & Constants
3
+ *
4
+ * Architecture: one `conversations` document per buyer↔seller pair on a product.
5
+ * Messages are embedded as an array for seed purposes; production can migrate to
6
+ * a subcollection when the thread exceeds ~200 messages.
7
+ */
8
+ export const CONVERSATIONS_COLLECTION = "conversations";
9
+ export const CONVERSATIONS_INDEXED_FIELDS = [
10
+ "buyerId",
11
+ "storeId",
12
+ "productId",
13
+ "status",
14
+ "lastMessageAt",
15
+ "createdAt",
16
+ ];
@@ -85,7 +85,7 @@ declare class OrderRepository extends BaseRepository<OrderDocument> {
85
85
  canFilter: boolean;
86
86
  canSort: boolean;
87
87
  };
88
- sellerId: {
88
+ storeId: {
89
89
  canFilter: boolean;
90
90
  canSort: boolean;
91
91
  };
@@ -176,7 +176,7 @@ declare class OrderRepository extends BaseRepository<OrderDocument> {
176
176
  userId: string;
177
177
  userName: string;
178
178
  userEmail: string;
179
- sellerId?: string;
179
+ storeId?: string;
180
180
  amount: number;
181
181
  currency: string;
182
182
  auctionProductId: string;
@@ -249,7 +249,7 @@ class OrderRepository extends BaseRepository {
249
249
  userId: input.userId,
250
250
  userName: input.userName,
251
251
  userEmail: input.userEmail,
252
- sellerId: input.sellerId ?? null,
252
+ storeId: input.storeId ?? null,
253
253
  quantity: 1,
254
254
  unitPrice: input.amount,
255
255
  totalPrice: input.amount,
@@ -282,7 +282,7 @@ OrderRepository.ADMIN_SIEVE_FIELDS = {
282
282
  userId: { canFilter: true, canSort: false },
283
283
  userName: { canFilter: true, canSort: true },
284
284
  userEmail: { canFilter: true, canSort: true },
285
- sellerId: { canFilter: true, canSort: false },
285
+ storeId: { canFilter: true, canSort: false },
286
286
  productId: { canFilter: true, canSort: false },
287
287
  productTitle: { canFilter: true, canSort: true },
288
288
  status: { canFilter: true, canSort: true },
@@ -54,6 +54,15 @@ export interface OrderDocumentItem {
54
54
  unitPrice: number;
55
55
  totalPrice: number;
56
56
  }
57
+ /** One applied discount/coupon saved on the order for accounting and display */
58
+ export interface AppliedOrderDiscount {
59
+ code: string;
60
+ couponId?: string;
61
+ type: "coupon" | "deal" | "auto";
62
+ discountAmount: number;
63
+ scope?: "admin" | "seller";
64
+ storeId?: string;
65
+ }
57
66
  export interface OrderDocument {
58
67
  id: string;
59
68
  productId: string;
@@ -61,8 +70,8 @@ export interface OrderDocument {
61
70
  userId: string;
62
71
  userName: string;
63
72
  userEmail: string;
64
- sellerId?: string;
65
- sellerName?: string;
73
+ storeId?: string;
74
+ storeName?: string;
66
75
  items?: OrderDocumentItem[];
67
76
  orderType?: OrderType;
68
77
  imageUrls?: string[];
@@ -87,6 +96,10 @@ export interface OrderDocument {
87
96
  refundFeeDeducted?: number;
88
97
  refundNetAmount?: number;
89
98
  refundNote?: string;
99
+ couponCode?: string;
100
+ couponDiscount?: number;
101
+ /** Full list of all applied coupons/discounts for this order group */
102
+ appliedDiscounts?: AppliedOrderDiscount[];
90
103
  platformFee?: number;
91
104
  depositAmount?: number;
92
105
  codRemainingAmount?: number;
@@ -106,7 +119,7 @@ export interface OrderDocument {
106
119
  updatedAt: Date;
107
120
  }
108
121
  export declare const ORDER_COLLECTION: "orders";
109
- export declare const ORDER_INDEXED_FIELDS: readonly ["userId", "productId", "sellerId", "status", "paymentStatus", "payoutStatus", "shippingMethod", "orderDate", "createdAt"];
122
+ export declare const ORDER_INDEXED_FIELDS: readonly ["userId", "productId", "storeId", "status", "paymentStatus", "payoutStatus", "shippingMethod", "orderDate", "createdAt"];
110
123
  export declare const DEFAULT_ORDER_DATA: Partial<OrderDocument>;
111
124
  export declare const ORDER_PUBLIC_FIELDS: readonly ["id", "productId", "productTitle", "quantity", "unitPrice", "totalPrice", "currency", "status", "paymentStatus", "shippingAddress", "trackingNumber", "notes", "orderDate", "shippingDate", "deliveryDate", "createdAt"];
112
125
  export declare const ORDER_UPDATABLE_FIELDS: readonly ["notes", "shippingAddress"];
@@ -115,7 +128,7 @@ export type OrderUpdateInput = Partial<Pick<OrderDocument, (typeof ORDER_UPDATAB
115
128
  export type OrderAdminUpdateInput = Partial<Omit<OrderDocument, "id" | "createdAt">>;
116
129
  export declare const orderQueryHelpers: {
117
130
  readonly byUser: (userId: string) => readonly ["userId", "==", string];
118
- readonly bySeller: (sellerId: string) => readonly ["sellerId", "==", string];
131
+ readonly byStore: (storeId: string) => readonly ["storeId", "==", string];
119
132
  readonly byProduct: (productId: string) => readonly ["productId", "==", string];
120
133
  readonly byStatus: (status: OrderStatus) => readonly ["status", "==", OrderStatus];
121
134
  readonly byPaymentStatus: (status: PaymentStatus) => readonly ["paymentStatus", "==", PaymentStatus];
@@ -46,7 +46,7 @@ export const ORDER_COLLECTION = "orders";
46
46
  export const ORDER_INDEXED_FIELDS = [
47
47
  "userId",
48
48
  "productId",
49
- "sellerId",
49
+ "storeId",
50
50
  "status",
51
51
  "paymentStatus",
52
52
  "payoutStatus",
@@ -80,7 +80,7 @@ export const ORDER_PUBLIC_FIELDS = [
80
80
  export const ORDER_UPDATABLE_FIELDS = ["notes", "shippingAddress"];
81
81
  export const orderQueryHelpers = {
82
82
  byUser: (userId) => ["userId", "==", userId],
83
- bySeller: (sellerId) => ["sellerId", "==", sellerId],
83
+ byStore: (storeId) => ["storeId", "==", storeId],
84
84
  byProduct: (productId) => ["productId", "==", productId],
85
85
  byStatus: (status) => ["status", "==", status],
86
86
  byPaymentStatus: (status) => ["paymentStatus", "==", status],
@@ -8,24 +8,24 @@ export declare const orderItemSchema: z.ZodObject<{
8
8
  price: z.ZodNumber;
9
9
  quantity: z.ZodNumber;
10
10
  currency: z.ZodOptional<z.ZodString>;
11
- sellerId: z.ZodOptional<z.ZodString>;
11
+ storeId: z.ZodOptional<z.ZodString>;
12
12
  attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
13
13
  }, "strip", z.ZodTypeAny, {
14
14
  title: string;
15
15
  productId: string;
16
- price: number;
17
16
  quantity: number;
17
+ price: number;
18
18
  image?: string | undefined;
19
- sellerId?: string | undefined;
19
+ storeId?: string | undefined;
20
20
  currency?: string | undefined;
21
21
  attributes?: Record<string, string> | undefined;
22
22
  }, {
23
23
  title: string;
24
24
  productId: string;
25
- price: number;
26
25
  quantity: number;
26
+ price: number;
27
27
  image?: string | undefined;
28
- sellerId?: string | undefined;
28
+ storeId?: string | undefined;
29
29
  currency?: string | undefined;
30
30
  attributes?: Record<string, string> | undefined;
31
31
  }>;
@@ -68,24 +68,24 @@ export declare const orderSchema: z.ZodObject<{
68
68
  price: z.ZodNumber;
69
69
  quantity: z.ZodNumber;
70
70
  currency: z.ZodOptional<z.ZodString>;
71
- sellerId: z.ZodOptional<z.ZodString>;
71
+ storeId: z.ZodOptional<z.ZodString>;
72
72
  attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
73
73
  }, "strip", z.ZodTypeAny, {
74
74
  title: string;
75
75
  productId: string;
76
- price: number;
77
76
  quantity: number;
77
+ price: number;
78
78
  image?: string | undefined;
79
- sellerId?: string | undefined;
79
+ storeId?: string | undefined;
80
80
  currency?: string | undefined;
81
81
  attributes?: Record<string, string> | undefined;
82
82
  }, {
83
83
  title: string;
84
84
  productId: string;
85
- price: number;
86
85
  quantity: number;
86
+ price: number;
87
87
  image?: string | undefined;
88
- sellerId?: string | undefined;
88
+ storeId?: string | undefined;
89
89
  currency?: string | undefined;
90
90
  attributes?: Record<string, string> | undefined;
91
91
  }>, "many">;
@@ -127,10 +127,10 @@ export declare const orderSchema: z.ZodObject<{
127
127
  items: {
128
128
  title: string;
129
129
  productId: string;
130
- price: number;
131
130
  quantity: number;
131
+ price: number;
132
132
  image?: string | undefined;
133
- sellerId?: string | undefined;
133
+ storeId?: string | undefined;
134
134
  currency?: string | undefined;
135
135
  attributes?: Record<string, string> | undefined;
136
136
  }[];
@@ -143,13 +143,13 @@ export declare const orderSchema: z.ZodObject<{
143
143
  createdAt?: string | undefined;
144
144
  updatedAt?: string | undefined;
145
145
  notes?: string | undefined;
146
- tax?: number | undefined;
147
146
  trackingNumber?: string | undefined;
147
+ tax?: number | undefined;
148
+ couponCode?: string | undefined;
148
149
  shippingCarrier?: string | undefined;
149
150
  paymentGateway?: string | undefined;
150
151
  shippingCost?: number | undefined;
151
152
  discount?: number | undefined;
152
- couponCode?: string | undefined;
153
153
  timeline?: {
154
154
  status: "pending" | "processing" | "refunded" | "confirmed" | "shipped" | "delivered" | "cancelled" | "returned" | "return_requested";
155
155
  timestamp: string;
@@ -162,10 +162,10 @@ export declare const orderSchema: z.ZodObject<{
162
162
  items: {
163
163
  title: string;
164
164
  productId: string;
165
- price: number;
166
165
  quantity: number;
166
+ price: number;
167
167
  image?: string | undefined;
168
- sellerId?: string | undefined;
168
+ storeId?: string | undefined;
169
169
  currency?: string | undefined;
170
170
  attributes?: Record<string, string> | undefined;
171
171
  }[];
@@ -178,13 +178,13 @@ export declare const orderSchema: z.ZodObject<{
178
178
  createdAt?: string | undefined;
179
179
  updatedAt?: string | undefined;
180
180
  notes?: string | undefined;
181
- tax?: number | undefined;
182
181
  trackingNumber?: string | undefined;
182
+ tax?: number | undefined;
183
+ couponCode?: string | undefined;
183
184
  shippingCarrier?: string | undefined;
184
185
  paymentGateway?: string | undefined;
185
186
  shippingCost?: number | undefined;
186
187
  discount?: number | undefined;
187
- couponCode?: string | undefined;
188
188
  timeline?: {
189
189
  status: "pending" | "processing" | "refunded" | "confirmed" | "shipped" | "delivered" | "cancelled" | "returned" | "return_requested";
190
190
  timestamp: string;
@@ -19,8 +19,8 @@ export const orderItemSchema = z.object({
19
19
  price: z.number(),
20
20
  quantity: z.number(),
21
21
  currency: z.string().optional(),
22
- sellerId: z.string().optional(),
23
- attributes: z.record(z.string()).optional(),
22
+ storeId: z.string().optional(),
23
+ attributes: z.record(z.string(), z.string()).optional(),
24
24
  });
25
25
  export const orderTimelineSchema = z.object({
26
26
  status: orderStatusSchema,
@@ -47,7 +47,7 @@ export const orderSchema = z.object({
47
47
  userId: z.string(),
48
48
  items: z.array(orderItemSchema),
49
49
  // address shape is intentionally open to allow extending apps
50
- address: z.record(z.unknown()),
50
+ address: z.record(z.string(), z.unknown()),
51
51
  orderStatus: orderStatusSchema,
52
52
  paymentStatus: z.string(),
53
53
  paymentGateway: z.string().optional(),
@@ -21,7 +21,7 @@ export interface OrderItem {
21
21
  price: number;
22
22
  quantity: number;
23
23
  currency?: string;
24
- sellerId?: string;
24
+ storeId?: string;
25
25
  attributes?: Record<string, string>;
26
26
  }
27
27
  export interface OrderTimeline {
@@ -6,7 +6,7 @@ export interface OrderGroup<T> {
6
6
  export declare function splitCartIntoOrderGroups<T extends {
7
7
  item: {
8
8
  itemId: string;
9
- sellerId?: string;
9
+ storeId?: string;
10
10
  isAuction?: boolean;
11
11
  isPreOrder?: boolean;
12
12
  isOffer?: boolean;
@@ -13,11 +13,11 @@ export function splitCartIntoOrderGroups(checks) {
13
13
  orderType = "offer";
14
14
  }
15
15
  else if (item.isPreOrder) {
16
- key = `preorder:${item.sellerId ?? "unknown"}`;
16
+ key = `preorder:${item.storeId ?? "unknown"}`;
17
17
  orderType = "preorder";
18
18
  }
19
19
  else {
20
- key = `standard:${item.sellerId ?? "unknown"}`;
20
+ key = `standard:${item.storeId ?? "unknown"}`;
21
21
  orderType = "standard";
22
22
  }
23
23
  if (!groups.has(key)) {
@@ -24,11 +24,11 @@ export declare class PayoutRepository extends BaseRepository<PayoutDocument> {
24
24
  /**
25
25
  * Find all payouts for a specific seller, newest first
26
26
  */
27
- findBySeller(sellerId: string): Promise<PayoutDocument[]>;
27
+ findByStore(storeId: string): Promise<PayoutDocument[]>;
28
28
  /**
29
29
  * Find payouts for a seller by status, newest first
30
30
  */
31
- findBySellerAndStatus(sellerId: string, status: PayoutStatus): Promise<PayoutDocument[]>;
31
+ findByStoreAndStatus(storeId: string, status: PayoutStatus): Promise<PayoutDocument[]>;
32
32
  /**
33
33
  * Find payouts by status
34
34
  */
@@ -56,13 +56,13 @@ export declare class PayoutRepository extends BaseRepository<PayoutDocument> {
56
56
  * Get all order IDs that have already been paid out for a seller.
57
57
  * Used to avoid double-paying the same orders.
58
58
  */
59
- getPaidOutOrderIds(sellerId: string): Promise<Set<string>>;
59
+ getPaidOutOrderIds(storeId: string): Promise<Set<string>>;
60
60
  static readonly SIEVE_FIELDS: {
61
61
  id: {
62
62
  canFilter: boolean;
63
63
  canSort: boolean;
64
64
  };
65
- sellerId: {
65
+ storeId: {
66
66
  canFilter: boolean;
67
67
  canSort: boolean;
68
68
  };
@@ -67,10 +67,10 @@ export class PayoutRepository extends BaseRepository {
67
67
  /**
68
68
  * Find all payouts for a specific seller, newest first
69
69
  */
70
- async findBySeller(sellerId) {
70
+ async findByStore(storeId) {
71
71
  const snapshot = await this.db
72
72
  .collection(this.collection)
73
- .where(PAYOUT_FIELDS.SELLER_ID, "==", sellerId)
73
+ .where(PAYOUT_FIELDS.STORE_ID, "==", storeId)
74
74
  .orderBy(PAYOUT_FIELDS.CREATED_AT, "desc")
75
75
  .get();
76
76
  return snapshot.docs.map((doc) => this.decryptPayout({
@@ -81,10 +81,10 @@ export class PayoutRepository extends BaseRepository {
81
81
  /**
82
82
  * Find payouts for a seller by status, newest first
83
83
  */
84
- async findBySellerAndStatus(sellerId, status) {
84
+ async findByStoreAndStatus(storeId, status) {
85
85
  const snapshot = await this.db
86
86
  .collection(this.collection)
87
- .where(PAYOUT_FIELDS.SELLER_ID, "==", sellerId)
87
+ .where(PAYOUT_FIELDS.STORE_ID, "==", storeId)
88
88
  .where(PAYOUT_FIELDS.STATUS, "==", status)
89
89
  .orderBy(PAYOUT_FIELDS.CREATED_AT, "desc")
90
90
  .get();
@@ -159,10 +159,10 @@ export class PayoutRepository extends BaseRepository {
159
159
  * Get all order IDs that have already been paid out for a seller.
160
160
  * Used to avoid double-paying the same orders.
161
161
  */
162
- async getPaidOutOrderIds(sellerId) {
162
+ async getPaidOutOrderIds(storeId) {
163
163
  const snapshot = await this.db
164
164
  .collection(this.collection)
165
- .where(PAYOUT_FIELDS.SELLER_ID, "==", sellerId)
165
+ .where(PAYOUT_FIELDS.STORE_ID, "==", storeId)
166
166
  .where(PAYOUT_FIELDS.STATUS, "in", ["pending", "processing", "completed"])
167
167
  .get();
168
168
  const ids = new Set();
@@ -187,7 +187,7 @@ export class PayoutRepository extends BaseRepository {
187
187
  // ---------------------------------------------------------------------------
188
188
  PayoutRepository.SIEVE_FIELDS = {
189
189
  id: { canFilter: true, canSort: false },
190
- sellerId: { canFilter: true, canSort: false },
190
+ storeId: { canFilter: true, canSort: false },
191
191
  sellerEmailIndex: { canFilter: true, canSort: false },
192
192
  sellerName: { canFilter: true, canSort: true },
193
193
  sellerEmail: { canFilter: false, canSort: false }, // encrypted — use sellerEmailIndex
@@ -18,7 +18,7 @@ export declare const PayoutStatusValues: {
18
18
  export type PayoutPaymentMethod = "bank_transfer" | "upi";
19
19
  export interface PayoutDocument {
20
20
  id: string;
21
- sellerId: string;
21
+ storeId: string;
22
22
  sellerName: string;
23
23
  sellerEmail: string;
24
24
  amount: number;
@@ -44,11 +44,11 @@ export interface PayoutDocument {
44
44
  updatedAt: Date;
45
45
  }
46
46
  export declare const PAYOUT_COLLECTION: "payouts";
47
- export declare const PAYOUT_INDEXED_FIELDS: readonly ["sellerId", "status", "requestedAt", "createdAt"];
47
+ export declare const PAYOUT_INDEXED_FIELDS: readonly ["storeId", "status", "requestedAt", "createdAt"];
48
48
  export declare const DEFAULT_PLATFORM_FEE_RATE: 0.05;
49
49
  export declare const DEFAULT_PAYOUT_DATA: Partial<PayoutDocument>;
50
50
  export declare const PAYOUT_FIELDS: {
51
- readonly SELLER_ID: "sellerId";
51
+ readonly STORE_ID: "storeId";
52
52
  readonly SELLER_NAME: "sellerName";
53
53
  readonly SELLER_EMAIL: "sellerEmail";
54
54
  readonly SELLER_EMAIL_INDEX: "sellerEmailIndex";
@@ -62,13 +62,13 @@ export declare const PAYOUT_FIELDS: {
62
62
  readonly FAILED: PayoutStatus;
63
63
  };
64
64
  };
65
- export declare const PAYOUT_PUBLIC_FIELDS: readonly ["id", "sellerId", "amount", "currency", "status", "paymentMethod", "requestedAt", "processedAt", "createdAt"];
65
+ export declare const PAYOUT_PUBLIC_FIELDS: readonly ["id", "storeId", "amount", "currency", "status", "paymentMethod", "requestedAt", "processedAt", "createdAt"];
66
66
  export declare const PAYOUT_ADMIN_UPDATEABLE_FIELDS: readonly ["status", "adminNote", "processedAt"];
67
67
  export type PayoutCreateInput = Omit<PayoutDocument, "id" | "createdAt" | "updatedAt" | "status" | "requestedAt">;
68
68
  export type PayoutUpdateInput = Partial<Pick<PayoutDocument, (typeof PAYOUT_ADMIN_UPDATEABLE_FIELDS)[number]>>;
69
69
  export declare const payoutQueryHelpers: {
70
- readonly bySeller: (sellerId: string) => readonly ["sellerId", "==", string];
70
+ readonly byStore: (storeId: string) => readonly ["storeId", "==", string];
71
71
  readonly byStatus: (status: PayoutStatus) => readonly ["status", "==", PayoutStatus];
72
- readonly pendingForSeller: (sellerId: string) => readonly [readonly ["sellerId", "==", string], readonly ["status", "==", "pending"]];
72
+ readonly pendingForStore: (storeId: string) => readonly [readonly ["storeId", "==", string], readonly ["status", "==", "pending"]];
73
73
  };
74
74
  export declare function createPayoutId(input: GeneratePayoutIdInput): string;
@@ -10,7 +10,7 @@ export const PayoutStatusValues = {
10
10
  };
11
11
  export const PAYOUT_COLLECTION = "payouts";
12
12
  export const PAYOUT_INDEXED_FIELDS = [
13
- "sellerId",
13
+ "storeId",
14
14
  "status",
15
15
  "requestedAt",
16
16
  "createdAt",
@@ -22,7 +22,7 @@ export const DEFAULT_PAYOUT_DATA = {
22
22
  orderIds: [],
23
23
  };
24
24
  export const PAYOUT_FIELDS = {
25
- SELLER_ID: "sellerId",
25
+ STORE_ID: "storeId",
26
26
  SELLER_NAME: "sellerName",
27
27
  SELLER_EMAIL: "sellerEmail",
28
28
  SELLER_EMAIL_INDEX: "sellerEmailIndex",
@@ -38,7 +38,7 @@ export const PAYOUT_FIELDS = {
38
38
  };
39
39
  export const PAYOUT_PUBLIC_FIELDS = [
40
40
  "id",
41
- "sellerId",
41
+ "storeId",
42
42
  "amount",
43
43
  "currency",
44
44
  "status",
@@ -53,10 +53,10 @@ export const PAYOUT_ADMIN_UPDATEABLE_FIELDS = [
53
53
  "processedAt",
54
54
  ];
55
55
  export const payoutQueryHelpers = {
56
- bySeller: (sellerId) => ["sellerId", "==", sellerId],
56
+ byStore: (storeId) => ["storeId", "==", storeId],
57
57
  byStatus: (status) => ["status", "==", status],
58
- pendingForSeller: (sellerId) => [
59
- ["sellerId", "==", sellerId],
58
+ pendingForStore: (storeId) => [
59
+ ["storeId", "==", storeId],
60
60
  ["status", "==", "pending"],
61
61
  ],
62
62
  };