@mohasinac/appkit 3.2.20 → 3.3.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 (857) hide show
  1. package/dist/_internal/client/features/classified/ClassifiedDetailView.d.ts +2 -1
  2. package/dist/_internal/client/features/digital-code/CodeRevealPanel.d.ts +2 -1
  3. package/dist/_internal/client/features/digital-code/DigitalCodeDetailView.d.ts +2 -1
  4. package/dist/_internal/client/features/layout/DashboardLayoutClient.d.ts +1 -1
  5. package/dist/_internal/client/features/layout/RoleGuard.d.ts +1 -1
  6. package/dist/_internal/client/features/live/LiveItemDetailView.d.ts +1 -1
  7. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +2 -1
  8. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.d.ts +2 -1
  9. package/dist/_internal/client/features/lottery/LotteryDetailView.d.ts +2 -1
  10. package/dist/_internal/client/features/lottery/LotteryEntriesView.d.ts +2 -1
  11. package/dist/_internal/client/features/lottery/LotteryListView.d.ts +2 -1
  12. package/dist/_internal/client/features/lottery/LotteryPullForm.d.ts +2 -1
  13. package/dist/_internal/client/features/lottery/LotterySlotGrid.d.ts +2 -1
  14. package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.d.ts +2 -1
  15. package/dist/_internal/client/features/tour/TourProvider.d.ts +1 -1
  16. package/dist/_internal/client/i18n/LabelsProvider.d.ts +1 -1
  17. package/dist/_internal/client/scaffolds/AppShell.d.ts +1 -1
  18. package/dist/_internal/client/scaffolds/DashboardScaffold.d.ts +1 -1
  19. package/dist/_internal/client/theme/ThemeProvider.d.ts +1 -1
  20. package/dist/_internal/server/features/checkout/actions.d.ts +2 -0
  21. package/dist/_internal/server/features/checkout/actions.js +239 -190
  22. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  23. package/dist/_internal/server/functions/scheduled.js +9 -1
  24. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +8 -11
  25. package/dist/_internal/server/jobs/core/emiInstallmentReminder.d.ts +8 -0
  26. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +78 -0
  27. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.d.ts +2 -2
  28. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +15 -10
  29. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.d.ts +2 -0
  30. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.js +2 -0
  31. package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
  32. package/dist/_internal/server/jobs/handlers/index.js +2 -0
  33. package/dist/_internal/server/providers/index.d.ts +4 -4
  34. package/dist/_internal/server/providers/index.js +4 -4
  35. package/dist/_internal/server/providers/payment/razorpay-mock.d.ts +3 -2
  36. package/dist/_internal/server/providers/payment/razorpay-mock.js +3 -1
  37. package/dist/_internal/server/providers/resolve.d.ts +10 -13
  38. package/dist/_internal/server/providers/resolve.js +9 -15
  39. package/dist/_internal/shared/actions/action-registry.js +28 -0
  40. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -0
  41. package/dist/_internal/shared/checkout/rules/_registry.js +4 -0
  42. package/dist/_internal/shared/checkout/rules/art.rule.d.ts +9 -0
  43. package/dist/_internal/shared/checkout/rules/art.rule.js +5 -0
  44. package/dist/_internal/shared/checkout/rules/auction.rule.js +1 -0
  45. package/dist/_internal/shared/checkout/rules/classified.rule.js +1 -0
  46. package/dist/_internal/shared/checkout/rules/index.d.ts +2 -0
  47. package/dist/_internal/shared/checkout/rules/index.js +2 -0
  48. package/dist/_internal/shared/checkout/rules/stickers.rule.d.ts +9 -0
  49. package/dist/_internal/shared/checkout/rules/stickers.rule.js +5 -0
  50. package/dist/_internal/shared/checkout/rules/types.d.ts +6 -0
  51. package/dist/_internal/shared/features/checkout/config.d.ts +16 -1
  52. package/dist/_internal/shared/features/checkout/config.js +16 -1
  53. package/dist/_internal/shared/features/emi/schedule.d.ts +63 -0
  54. package/dist/_internal/shared/features/emi/schedule.js +62 -0
  55. package/dist/_internal/shared/fees/calculator.d.ts +53 -0
  56. package/dist/_internal/shared/fees/calculator.js +40 -0
  57. package/dist/_internal/shared/listing-types/_registry.d.ts +22 -66
  58. package/dist/_internal/shared/listing-types/_registry.js +19 -2
  59. package/dist/_internal/shared/listing-types/art/config.d.ts +15 -0
  60. package/dist/_internal/shared/listing-types/art/config.js +14 -0
  61. package/dist/_internal/shared/listing-types/art/ctas.d.ts +1 -0
  62. package/dist/_internal/shared/listing-types/art/ctas.js +3 -0
  63. package/dist/_internal/shared/listing-types/art/og.d.ts +1 -0
  64. package/dist/_internal/shared/listing-types/art/og.js +1 -0
  65. package/dist/_internal/shared/listing-types/art/schema.d.ts +2 -0
  66. package/dist/_internal/shared/listing-types/art/schema.js +3 -0
  67. package/dist/_internal/shared/listing-types/art/seed-factory.d.ts +1 -0
  68. package/dist/_internal/shared/listing-types/art/seed-factory.js +1 -0
  69. package/dist/_internal/shared/listing-types/auction/config.d.ts +8 -0
  70. package/dist/_internal/shared/listing-types/auction/config.js +6 -0
  71. package/dist/_internal/shared/listing-types/capabilities.js +17 -0
  72. package/dist/_internal/shared/listing-types/classified/config.d.ts +8 -0
  73. package/dist/_internal/shared/listing-types/classified/config.js +6 -0
  74. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +8 -0
  75. package/dist/_internal/shared/listing-types/digital-code/config.js +6 -0
  76. package/dist/_internal/shared/listing-types/live/config.d.ts +8 -0
  77. package/dist/_internal/shared/listing-types/live/config.js +6 -0
  78. package/dist/_internal/shared/listing-types/pre-order/config.d.ts +8 -0
  79. package/dist/_internal/shared/listing-types/pre-order/config.js +6 -0
  80. package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +8 -0
  81. package/dist/_internal/shared/listing-types/prize-draw/config.js +6 -0
  82. package/dist/_internal/shared/listing-types/standard/config.d.ts +8 -0
  83. package/dist/_internal/shared/listing-types/standard/config.js +6 -0
  84. package/dist/_internal/shared/listing-types/stickers/config.d.ts +15 -0
  85. package/dist/_internal/shared/listing-types/stickers/config.js +14 -0
  86. package/dist/_internal/shared/listing-types/stickers/ctas.d.ts +1 -0
  87. package/dist/_internal/shared/listing-types/stickers/ctas.js +3 -0
  88. package/dist/_internal/shared/listing-types/stickers/og.d.ts +1 -0
  89. package/dist/_internal/shared/listing-types/stickers/og.js +1 -0
  90. package/dist/_internal/shared/listing-types/stickers/schema.d.ts +2 -0
  91. package/dist/_internal/shared/listing-types/stickers/schema.js +3 -0
  92. package/dist/_internal/shared/listing-types/stickers/seed-factory.d.ts +1 -0
  93. package/dist/_internal/shared/listing-types/stickers/seed-factory.js +1 -0
  94. package/dist/client.d.ts +7 -2
  95. package/dist/client.js +4 -2
  96. package/dist/constants/field-names.d.ts +2 -6
  97. package/dist/constants/field-names.js +2 -6
  98. package/dist/contracts/index.d.ts +4 -2
  99. package/dist/contracts/index.js +6 -0
  100. package/dist/contracts/payment.d.ts +14 -9
  101. package/dist/contracts/payment.js +11 -1
  102. package/dist/contracts/shipping.d.ts +14 -9
  103. package/dist/contracts/shipping.js +11 -1
  104. package/dist/features/about/components/AboutView.d.ts +1 -1
  105. package/dist/features/about/components/FAQPageView.d.ts +1 -1
  106. package/dist/features/about/components/FeesView.d.ts +1 -1
  107. package/dist/features/about/components/HelpPageView.d.ts +1 -1
  108. package/dist/features/about/components/HowAuctionsWorkView.d.ts +1 -1
  109. package/dist/features/about/components/HowCheckoutWorksView.d.ts +1 -1
  110. package/dist/features/about/components/HowOffersWorkView.d.ts +1 -1
  111. package/dist/features/about/components/HowOrdersWorkView.d.ts +1 -1
  112. package/dist/features/about/components/HowPayoutsWorkView.d.ts +1 -1
  113. package/dist/features/about/components/HowPreOrdersWorkView.d.ts +1 -1
  114. package/dist/features/about/components/HowReviewsWorkView.d.ts +1 -1
  115. package/dist/features/about/components/PolicyPageView.d.ts +1 -1
  116. package/dist/features/about/components/PublicProfileView.d.ts +1 -1
  117. package/dist/features/about/components/PublicProfileView.js +3 -6
  118. package/dist/features/about/components/SecurityPrivacyView.d.ts +1 -1
  119. package/dist/features/about/components/ShippingPolicyView.d.ts +1 -1
  120. package/dist/features/about/components/TrackOrderView.d.ts +1 -1
  121. package/dist/features/about/components/UnauthorizedView.d.ts +1 -1
  122. package/dist/features/account/components/AddressBook.d.ts +2 -2
  123. package/dist/features/account/components/AddressFilters.d.ts +1 -1
  124. package/dist/features/account/components/AddressForm.d.ts +1 -1
  125. package/dist/features/account/components/AddressInlineSelect.d.ts +2 -1
  126. package/dist/features/account/components/AddressSelectorCreate.d.ts +1 -1
  127. package/dist/features/account/components/AddressesIndexListing.d.ts +2 -1
  128. package/dist/features/account/components/BecomeSellerView.d.ts +1 -1
  129. package/dist/features/account/components/BuyerAccountGuideView.d.ts +2 -1
  130. package/dist/features/account/components/BuyerAuctionsGuideView.d.ts +2 -1
  131. package/dist/features/account/components/BuyerOrdersGuideView.d.ts +2 -1
  132. package/dist/features/account/components/BuyerShoppingGuideView.d.ts +2 -1
  133. package/dist/features/account/components/ChatList.d.ts +1 -1
  134. package/dist/features/account/components/ChatWindow.d.ts +1 -1
  135. package/dist/features/account/components/MessagesView.d.ts +1 -1
  136. package/dist/features/account/components/NotificationBell.d.ts +1 -1
  137. package/dist/features/account/components/NotificationPreferencesPanel.d.ts +1 -1
  138. package/dist/features/account/components/OrderDetailView.d.ts +1 -1
  139. package/dist/features/account/components/ProfileView.d.ts +1 -1
  140. package/dist/features/account/components/UserAccountHubView.d.ts +1 -1
  141. package/dist/features/account/components/UserAddressesView.d.ts +1 -1
  142. package/dist/features/account/components/UserNotificationsView.d.ts +1 -1
  143. package/dist/features/account/components/UserOffersPanel.d.ts +1 -1
  144. package/dist/features/account/components/UserOffersView.d.ts +1 -1
  145. package/dist/features/account/components/UserOrderTrackView.d.ts +1 -1
  146. package/dist/features/account/components/UserOrdersView.d.ts +1 -1
  147. package/dist/features/account/components/UserReturnsView.d.ts +1 -1
  148. package/dist/features/account/components/UserSettingsView.d.ts +1 -1
  149. package/dist/features/account/components/UserSidebar.d.ts +1 -1
  150. package/dist/features/account/components/UserSupportView.d.ts +2 -1
  151. package/dist/features/admin/components/AdminAdEditorView.d.ts +2 -1
  152. package/dist/features/admin/components/AdminAddressBookView.d.ts +11 -0
  153. package/dist/features/admin/components/AdminAddressBookView.js +30 -0
  154. package/dist/features/admin/components/AdminAddressClustersView.d.ts +1 -1
  155. package/dist/features/admin/components/AdminAddressEditorView.d.ts +2 -1
  156. package/dist/features/admin/components/AdminAddressesView.d.ts +1 -1
  157. package/dist/features/admin/components/AdminAdsView.d.ts +1 -1
  158. package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +2 -1
  159. package/dist/features/admin/components/AdminAnalyticsGuideView.d.ts +2 -1
  160. package/dist/features/admin/components/AdminAnalyticsView.d.ts +1 -1
  161. package/dist/features/admin/components/AdminArtView.d.ts +4 -0
  162. package/dist/features/admin/components/AdminArtView.js +45 -0
  163. package/dist/features/admin/components/AdminBidsView.d.ts +2 -1
  164. package/dist/features/admin/components/AdminBlogEditorView.d.ts +2 -1
  165. package/dist/features/admin/components/AdminBlogView.d.ts +2 -1
  166. package/dist/features/admin/components/AdminBrandEditorView.d.ts +2 -1
  167. package/dist/features/admin/components/AdminBrandsView.d.ts +2 -1
  168. package/dist/features/admin/components/AdminBundleEditorView.d.ts +14 -1
  169. package/dist/features/admin/components/AdminBundlesView.d.ts +2 -1
  170. package/dist/features/admin/components/AdminCarouselEditorView.d.ts +2 -1
  171. package/dist/features/admin/components/AdminCarouselView.d.ts +2 -1
  172. package/dist/features/admin/components/AdminCartsView.d.ts +2 -1
  173. package/dist/features/admin/components/AdminCatalogGuideView.d.ts +2 -1
  174. package/dist/features/admin/components/AdminCategoriesView.d.ts +2 -1
  175. package/dist/features/admin/components/AdminCategoryEditorView.d.ts +2 -1
  176. package/dist/features/admin/components/AdminClassifiedView.d.ts +2 -1
  177. package/dist/features/admin/components/AdminContactEditorView.d.ts +2 -1
  178. package/dist/features/admin/components/AdminContactView.d.ts +2 -1
  179. package/dist/features/admin/components/AdminContentGuideView.d.ts +2 -1
  180. package/dist/features/admin/components/AdminCouponEditorView.d.ts +2 -1
  181. package/dist/features/admin/components/AdminCouponsView.d.ts +2 -1
  182. package/dist/features/admin/components/AdminDashboardView.d.ts +1 -1
  183. package/dist/features/admin/components/AdminDigitalCodesView.d.ts +2 -1
  184. package/dist/features/admin/components/AdminEmployeeEditorView.d.ts +2 -1
  185. package/dist/features/admin/components/AdminFaqEditorView.d.ts +2 -1
  186. package/dist/features/admin/components/AdminFaqsView.d.ts +2 -1
  187. package/dist/features/admin/components/AdminFeatureEditorView.d.ts +2 -1
  188. package/dist/features/admin/components/AdminFeatureFlagsView.d.ts +1 -1
  189. package/dist/features/admin/components/AdminFeaturesView.d.ts +2 -1
  190. package/dist/features/admin/components/AdminFilterBar.d.ts +1 -1
  191. package/dist/features/admin/components/AdminFulfillmentView.d.ts +2 -1
  192. package/dist/features/admin/components/AdminGroupedListingsView.d.ts +2 -1
  193. package/dist/features/admin/components/AdminGuideHubView.d.ts +2 -1
  194. package/dist/features/admin/components/AdminHistoryView.d.ts +2 -1
  195. package/dist/features/admin/components/AdminLiveView.d.ts +2 -1
  196. package/dist/features/admin/components/AdminMediaView.d.ts +1 -1
  197. package/dist/features/admin/components/AdminNavEditorView.d.ts +2 -1
  198. package/dist/features/admin/components/AdminNavigationView.d.ts +2 -1
  199. package/dist/features/admin/components/AdminNewsletterView.d.ts +2 -1
  200. package/dist/features/admin/components/AdminNotificationsView.d.ts +2 -1
  201. package/dist/features/admin/components/AdminOrderEditorView.d.ts +2 -1
  202. package/dist/features/admin/components/AdminOrdersGuideView.d.ts +2 -1
  203. package/dist/features/admin/components/AdminOrdersView.d.ts +2 -1
  204. package/dist/features/admin/components/AdminPageHeader.d.ts +1 -1
  205. package/dist/features/admin/components/AdminPaymentClustersView.d.ts +1 -1
  206. package/dist/features/admin/components/AdminPaymentMethodsView.d.ts +1 -1
  207. package/dist/features/admin/components/AdminPayoutsView.d.ts +2 -1
  208. package/dist/features/admin/components/AdminPrizeDrawsView.d.ts +2 -1
  209. package/dist/features/admin/components/AdminProductEditorView.d.ts +2 -1
  210. package/dist/features/admin/components/AdminProductsView.d.ts +2 -1
  211. package/dist/features/admin/components/AdminReturnRequestsView.d.ts +1 -1
  212. package/dist/features/admin/components/AdminReviewsView.d.ts +2 -1
  213. package/dist/features/admin/components/AdminScammerEditorView.d.ts +2 -1
  214. package/dist/features/admin/components/AdminScammersView.d.ts +2 -1
  215. package/dist/features/admin/components/AdminSectionsView.d.ts +1 -1
  216. package/dist/features/admin/components/AdminSessionsManager.d.ts +1 -1
  217. package/dist/features/admin/components/AdminSessionsView.d.ts +2 -1
  218. package/dist/features/admin/components/AdminSidebar.d.ts +1 -1
  219. package/dist/features/admin/components/AdminSiteConfigGuideView.d.ts +2 -1
  220. package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
  221. package/dist/features/admin/components/AdminSiteSettingsView.d.ts +2 -1
  222. package/dist/features/admin/components/AdminSiteSettingsView.js +14 -9
  223. package/dist/features/admin/components/AdminSiteView.d.ts +1 -1
  224. package/dist/features/admin/components/AdminStickersView.d.ts +4 -0
  225. package/dist/features/admin/components/AdminStickersView.js +45 -0
  226. package/dist/features/admin/components/AdminStoreAddressesView.d.ts +1 -1
  227. package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
  228. package/dist/features/admin/components/AdminStoresGuideView.d.ts +2 -1
  229. package/dist/features/admin/components/AdminStoresView.d.ts +2 -1
  230. package/dist/features/admin/components/AdminSublistingCategoriesView.d.ts +2 -1
  231. package/dist/features/admin/components/AdminSublistingCategoryEditorView.d.ts +2 -1
  232. package/dist/features/admin/components/AdminSupportTicketDetailView.d.ts +2 -1
  233. package/dist/features/admin/components/AdminSupportTicketsView.d.ts +2 -1
  234. package/dist/features/admin/components/AdminTeamGuideView.d.ts +2 -1
  235. package/dist/features/admin/components/AdminTeamView.d.ts +2 -1
  236. package/dist/features/admin/components/AdminTopBar.d.ts +1 -1
  237. package/dist/features/admin/components/AdminTrustGuideView.d.ts +2 -1
  238. package/dist/features/admin/components/AdminUserEditorView.d.ts +2 -1
  239. package/dist/features/admin/components/AdminUsersGuideView.d.ts +2 -1
  240. package/dist/features/admin/components/AdminUsersView.d.ts +2 -1
  241. package/dist/features/admin/components/AdminViewCards.d.ts +2 -1
  242. package/dist/features/admin/components/AdminWishlistsView.d.ts +2 -1
  243. package/dist/features/admin/components/BrandQuickCreateForm.d.ts +2 -1
  244. package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +2 -1
  245. package/dist/features/admin/components/DashboardStats.d.ts +1 -1
  246. package/dist/features/admin/components/DataListingView.d.ts +1 -1
  247. package/dist/features/admin/components/DataTable.d.ts +1 -1
  248. package/dist/features/admin/components/DemoSeedView.d.ts +1 -1
  249. package/dist/features/admin/components/DrawerFormFooter.d.ts +1 -1
  250. package/dist/features/admin/components/QuickActionsPanel.d.ts +1 -1
  251. package/dist/features/admin/components/QuickEditMenu.d.ts +1 -1
  252. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.d.ts +3 -2
  253. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +1 -1
  254. package/dist/features/admin/components/analytics/AdminTopProductsTable.d.ts +1 -1
  255. package/dist/features/admin/components/index.d.ts +6 -0
  256. package/dist/features/admin/components/index.js +4 -0
  257. package/dist/features/admin/schemas/firestore.d.ts +19 -11
  258. package/dist/features/admin/schemas/firestore.js +12 -2
  259. package/dist/features/auctions/components/AuctionBidsTable.d.ts +1 -1
  260. package/dist/features/auctions/components/AuctionDetailPageView.d.ts +1 -1
  261. package/dist/features/auctions/components/AuctionFilters.d.ts +1 -1
  262. package/dist/features/auctions/components/AuctionsListView.d.ts +1 -1
  263. package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +2 -1
  264. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +4 -3
  265. package/dist/features/auctions/components/MarketplaceAuctionGrid.d.ts +1 -1
  266. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +3 -2
  267. package/dist/features/auth/components/AuthStatusPanel.d.ts +1 -1
  268. package/dist/features/auth/components/ForgotPasswordView.d.ts +1 -1
  269. package/dist/features/auth/components/Guards.d.ts +2 -2
  270. package/dist/features/auth/components/LoginForm.d.ts +1 -1
  271. package/dist/features/auth/components/OAuthLoadingView.d.ts +1 -1
  272. package/dist/features/auth/components/RegisterForm.d.ts +1 -1
  273. package/dist/features/auth/components/ResetPasswordView.d.ts +1 -1
  274. package/dist/features/auth/components/SocialAuthButtons.d.ts +1 -1
  275. package/dist/features/auth/components/VerifyEmailView.d.ts +1 -1
  276. package/dist/features/auth/hooks/useAuth.js +35 -9
  277. package/dist/features/auth/schemas/firestore.d.ts +2 -6
  278. package/dist/features/before-after/components/BeforeAfterGallery.d.ts +1 -1
  279. package/dist/features/before-after/components/BeforeAfterSlider.d.ts +2 -1
  280. package/dist/features/blog/components/BlogFeaturedCard.d.ts +2 -1
  281. package/dist/features/blog/components/BlogFilters.d.ts +1 -1
  282. package/dist/features/blog/components/BlogIndexListing.d.ts +2 -1
  283. package/dist/features/blog/components/BlogIndexPageView.d.ts +2 -1
  284. package/dist/features/blog/components/BlogListView.d.ts +4 -3
  285. package/dist/features/blog/components/BlogPostForm.d.ts +1 -1
  286. package/dist/features/blog/components/BlogPostView.d.ts +1 -1
  287. package/dist/features/cart/components/CartDrawer.d.ts +2 -2
  288. package/dist/features/cart/components/CartSummary.d.ts +1 -1
  289. package/dist/features/cart/components/CartView.d.ts +1 -1
  290. package/dist/features/cart/components/CheckoutAddressStep.d.ts +1 -1
  291. package/dist/features/cart/components/CheckoutOtpModal.d.ts +1 -1
  292. package/dist/features/cart/components/CheckoutSuccessView.d.ts +1 -1
  293. package/dist/features/cart/components/CheckoutView.d.ts +1 -1
  294. package/dist/features/cart/components/ShippingPicker.d.ts +9 -1
  295. package/dist/features/cart/schemas/firestore.d.ts +3 -2
  296. package/dist/features/categories/components/BrandDetailPageView.d.ts +2 -1
  297. package/dist/features/categories/components/BrandDetailTabs.d.ts +2 -1
  298. package/dist/features/categories/components/BreadcrumbTrail.d.ts +2 -1
  299. package/dist/features/categories/components/BundleBuyNowCta.d.ts +9 -1
  300. package/dist/features/categories/components/BundleCollage.d.ts +10 -1
  301. package/dist/features/categories/components/BundleDetailView.d.ts +2 -1
  302. package/dist/features/categories/components/BundleDynamicRuleEditor.d.ts +15 -1
  303. package/dist/features/categories/components/BundleItemsPicker.d.ts +15 -1
  304. package/dist/features/categories/components/BundlesListView.d.ts +2 -1
  305. package/dist/features/categories/components/CategoriesIndexListing.d.ts +2 -1
  306. package/dist/features/categories/components/CategoriesIndexPageView.d.ts +2 -1
  307. package/dist/features/categories/components/CategoryBundlesListing.d.ts +2 -1
  308. package/dist/features/categories/components/CategoryDetailPageView.d.ts +2 -1
  309. package/dist/features/categories/components/CategoryDetailTabs.d.ts +2 -1
  310. package/dist/features/categories/components/CategoryFilters.d.ts +1 -1
  311. package/dist/features/categories/components/CategoryForm.d.ts +1 -1
  312. package/dist/features/categories/components/CategoryGrid.d.ts +3 -2
  313. package/dist/features/categories/components/CategoryProductsListing.d.ts +2 -1
  314. package/dist/features/categories/components/CategoryProductsView.d.ts +1 -1
  315. package/dist/features/categories/components/CategorySelectorCreate.d.ts +1 -1
  316. package/dist/features/categories/components/CategorySortSelect.d.ts +1 -1
  317. package/dist/features/categories/components/CategoryStoresListing.d.ts +2 -1
  318. package/dist/features/categories/components/CategoryTableColumns.d.ts +3 -3
  319. package/dist/features/categories/components/CategoryTree.d.ts +1 -1
  320. package/dist/features/categories/components/ConcernCard.d.ts +1 -1
  321. package/dist/features/categories/components/ConcernGrid.d.ts +1 -1
  322. package/dist/features/checkout/components/CheckoutStepper.d.ts +2 -1
  323. package/dist/features/classified/components/ClassifiedFilters.d.ts +1 -1
  324. package/dist/features/classified/components/ClassifiedIndexListing.d.ts +2 -1
  325. package/dist/features/classified/components/ClassifiedListView.d.ts +1 -1
  326. package/dist/features/collections/components/CollectionCard.d.ts +3 -2
  327. package/dist/features/consultation/components/ConsultationForm.d.ts +2 -1
  328. package/dist/features/consultation/schemas/index.d.ts +2 -2
  329. package/dist/features/contact/components/ContactForm.d.ts +2 -1
  330. package/dist/features/contact/components/ContactInfoSidebar.d.ts +1 -1
  331. package/dist/features/contact/components/ContactPageView.d.ts +2 -1
  332. package/dist/features/copilot/components/AdminCopilotView.d.ts +1 -1
  333. package/dist/features/corporate/components/CorporateInquiryForm.d.ts +2 -1
  334. package/dist/features/digital-codes/components/DigitalCodeFilters.d.ts +1 -1
  335. package/dist/features/digital-codes/components/DigitalCodesIndexListing.d.ts +2 -1
  336. package/dist/features/digital-codes/components/DigitalCodesListView.d.ts +1 -1
  337. package/dist/features/email/primitives.d.ts +11 -11
  338. package/dist/features/events/components/AdminEventEditorView.d.ts +2 -1
  339. package/dist/features/events/components/AdminEventEntriesView.d.ts +1 -1
  340. package/dist/features/events/components/AdminEventsView.d.ts +2 -1
  341. package/dist/features/events/components/EventBanner.d.ts +2 -1
  342. package/dist/features/events/components/EventCard.d.ts +1 -1
  343. package/dist/features/events/components/EventDetailView.d.ts +1 -1
  344. package/dist/features/events/components/EventFilters.d.ts +1 -1
  345. package/dist/features/events/components/EventFormDrawer.d.ts +1 -1
  346. package/dist/features/events/components/EventLeaderboard.d.ts +1 -1
  347. package/dist/features/events/components/EventOfferCard.d.ts +2 -1
  348. package/dist/features/events/components/EventParticipateView.d.ts +1 -1
  349. package/dist/features/events/components/EventPollWidget.d.ts +1 -1
  350. package/dist/features/events/components/EventRaffleEntryForm.d.ts +2 -1
  351. package/dist/features/events/components/EventRaffleWinnerView.d.ts +1 -1
  352. package/dist/features/events/components/EventRafflesSection.d.ts +1 -1
  353. package/dist/features/events/components/EventSaleBanner.d.ts +2 -1
  354. package/dist/features/events/components/EventStatusBadge.d.ts +1 -1
  355. package/dist/features/events/components/EventsIndexListing.d.ts +2 -1
  356. package/dist/features/events/components/EventsListPageView.d.ts +2 -1
  357. package/dist/features/events/components/EventsListView.d.ts +2 -1
  358. package/dist/features/events/components/SpinWheelView.d.ts +1 -1
  359. package/dist/features/faq/components/ContactCTA.d.ts +1 -1
  360. package/dist/features/faq/components/FAQAccordion.d.ts +2 -2
  361. package/dist/features/faq/components/FAQCategorySidebar.d.ts +1 -1
  362. package/dist/features/faq/components/FAQHelpfulButtons.d.ts +1 -1
  363. package/dist/features/faq/components/FAQPageContent.d.ts +1 -1
  364. package/dist/features/faq/components/FAQSortDropdown.d.ts +1 -1
  365. package/dist/features/faq/components/RelatedFAQs.d.ts +1 -1
  366. package/dist/features/filters/AsyncFacetSection.d.ts +2 -1
  367. package/dist/features/filters/FilterFacetSection.d.ts +1 -1
  368. package/dist/features/filters/FilterPanel.d.ts +1 -1
  369. package/dist/features/filters/RangeFilter.d.ts +1 -1
  370. package/dist/features/filters/SwitchFilter.d.ts +1 -1
  371. package/dist/features/forms/Checkbox.d.ts +1 -1
  372. package/dist/features/forms/Radio.d.ts +2 -1
  373. package/dist/features/forms/Select.d.ts +1 -1
  374. package/dist/features/forms/Slider.d.ts +2 -1
  375. package/dist/features/forms/Toggle.d.ts +2 -1
  376. package/dist/features/homepage/components/AdSlot.d.ts +1 -1
  377. package/dist/features/homepage/components/AdvertisementBanner.d.ts +2 -1
  378. package/dist/features/homepage/components/AnnouncementBar.d.ts +2 -1
  379. package/dist/features/homepage/components/BeforeAfterCard.d.ts +1 -1
  380. package/dist/features/homepage/components/BlogArticlesSection.d.ts +2 -1
  381. package/dist/features/homepage/components/BrandsSection.d.ts +1 -1
  382. package/dist/features/homepage/components/CTABannerSection.d.ts +2 -1
  383. package/dist/features/homepage/components/CharacterHotspot.d.ts +1 -1
  384. package/dist/features/homepage/components/CharacterHotspotForm.d.ts +2 -1
  385. package/dist/features/homepage/components/CollectionCardsSection.d.ts +1 -1
  386. package/dist/features/homepage/components/CustomCardsSection.d.ts +2 -1
  387. package/dist/features/homepage/components/CustomerReviewsSection.d.ts +1 -1
  388. package/dist/features/homepage/components/EventsSection.d.ts +2 -1
  389. package/dist/features/homepage/components/FAQSection.d.ts +2 -1
  390. package/dist/features/homepage/components/FeaturedAuctionsSection.d.ts +2 -1
  391. package/dist/features/homepage/components/FeaturedBundlesSection.d.ts +2 -1
  392. package/dist/features/homepage/components/FeaturedPreOrdersSection.d.ts +2 -1
  393. package/dist/features/homepage/components/FeaturedProductsSection.d.ts +1 -1
  394. package/dist/features/homepage/components/FeaturedResultsSection.d.ts +1 -1
  395. package/dist/features/homepage/components/FeaturedStoresSection.d.ts +2 -1
  396. package/dist/features/homepage/components/GoogleReviewsSection.d.ts +2 -1
  397. package/dist/features/homepage/components/HeroBanner.d.ts +1 -1
  398. package/dist/features/homepage/components/HeroCarousel.d.ts +2 -1
  399. package/dist/features/homepage/components/HeroSection.d.ts +1 -1
  400. package/dist/features/homepage/components/HomepageCustomerReviewsSection.d.ts +2 -1
  401. package/dist/features/homepage/components/HomepageSkeleton.d.ts +1 -1
  402. package/dist/features/homepage/components/HomepageView.d.ts +1 -1
  403. package/dist/features/homepage/components/HowItWorksInfoView.d.ts +1 -1
  404. package/dist/features/homepage/components/HowItWorksSection.d.ts +1 -1
  405. package/dist/features/homepage/components/MarketplaceHomepageView.d.ts +1 -1
  406. package/dist/features/homepage/components/NewsletterBanner.d.ts +2 -1
  407. package/dist/features/homepage/components/NewsletterSection.d.ts +1 -1
  408. package/dist/features/homepage/components/PromoGrid.d.ts +1 -1
  409. package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
  410. package/dist/features/homepage/components/SecurityHighlightsSection.d.ts +1 -1
  411. package/dist/features/homepage/components/ShopByCategorySection.d.ts +1 -1
  412. package/dist/features/homepage/components/SiteFeaturesSection.d.ts +2 -1
  413. package/dist/features/homepage/components/SocialFeedSection.d.ts +1 -1
  414. package/dist/features/homepage/components/SocialPostCard.d.ts +1 -1
  415. package/dist/features/homepage/components/StatsCounterSection.d.ts +1 -1
  416. package/dist/features/homepage/components/TestimonialsCarousel.d.ts +1 -1
  417. package/dist/features/homepage/components/TrustBadges.d.ts +2 -1
  418. package/dist/features/homepage/components/TrustFeaturesSection.d.ts +1 -1
  419. package/dist/features/homepage/components/TrustIndicatorsSection.d.ts +2 -1
  420. package/dist/features/homepage/components/WelcomeSection.d.ts +2 -1
  421. package/dist/features/homepage/components/WhatsAppCommunitySection.d.ts +2 -1
  422. package/dist/features/layout/AppLayoutShell.d.ts +1 -1
  423. package/dist/features/layout/AutoBreadcrumbs.d.ts +1 -1
  424. package/dist/features/layout/BackToTop.d.ts +2 -2
  425. package/dist/features/layout/BottomActions.d.ts +1 -1
  426. package/dist/features/layout/BottomActionsContext.d.ts +1 -1
  427. package/dist/features/layout/BottomNavItem.d.ts +1 -1
  428. package/dist/features/layout/BottomNavLayout.d.ts +1 -1
  429. package/dist/features/layout/BottomNavbar.d.ts +1 -1
  430. package/dist/features/layout/BottomSheet.d.ts +1 -1
  431. package/dist/features/layout/Breadcrumbs.d.ts +2 -2
  432. package/dist/features/layout/DashboardNavContext.d.ts +1 -1
  433. package/dist/features/layout/FooterLayout.d.ts +1 -1
  434. package/dist/features/layout/LayoutClient.d.ts +1 -1
  435. package/dist/features/layout/LocaleSwitcher.d.ts +1 -1
  436. package/dist/features/layout/MainNavbar.d.ts +1 -1
  437. package/dist/features/layout/NavItem.d.ts +1 -1
  438. package/dist/features/layout/NavbarLayout.d.ts +1 -1
  439. package/dist/features/layout/NavbarWithSettings.d.ts +1 -1
  440. package/dist/features/layout/TitleBar.d.ts +1 -1
  441. package/dist/features/layout/TitleBarLayout.d.ts +1 -1
  442. package/dist/features/live/components/LiveItemFilters.d.ts +1 -1
  443. package/dist/features/live/components/LiveItemsIndexListing.d.ts +2 -1
  444. package/dist/features/live/components/LiveItemsListView.d.ts +1 -1
  445. package/dist/features/loyalty/components/CoinsDisplay.d.ts +3 -2
  446. package/dist/features/loyalty/schemas/index.d.ts +6 -6
  447. package/dist/features/media/AvatarUpload.d.ts +2 -1
  448. package/dist/features/media/MediaAudio.d.ts +1 -1
  449. package/dist/features/media/MediaAvatar.d.ts +1 -1
  450. package/dist/features/media/MediaImage.d.ts +1 -1
  451. package/dist/features/media/MediaLightbox.d.ts +2 -1
  452. package/dist/features/media/MediaPickerModal.d.ts +2 -1
  453. package/dist/features/media/MediaVideo.d.ts +1 -1
  454. package/dist/features/media/components/MediaSlider.d.ts +2 -1
  455. package/dist/features/media/modals/ImageCropModal.d.ts +8 -1
  456. package/dist/features/media/modals/ImageEditor.d.ts +8 -1
  457. package/dist/features/media/modals/VideoThumbnailSelector.d.ts +1 -1
  458. package/dist/features/media/modals/VideoTrimModal.d.ts +1 -1
  459. package/dist/features/media/upload/CameraCapture.d.ts +1 -1
  460. package/dist/features/media/upload/ImageUpload.d.ts +1 -1
  461. package/dist/features/media/upload/MediaUploadField.d.ts +1 -1
  462. package/dist/features/media/upload/MediaUploadList.d.ts +1 -1
  463. package/dist/features/orders/components/MarketplaceOrderCard.d.ts +1 -1
  464. package/dist/features/orders/components/OrderFilters.d.ts +1 -1
  465. package/dist/features/orders/components/OrderSiblingPayments.d.ts +10 -1
  466. package/dist/features/orders/components/OrdersList.d.ts +2 -2
  467. package/dist/features/orders/components/RefundHistoryTable.d.ts +2 -1
  468. package/dist/features/orders/components/RefundRequestView.d.ts +13 -1
  469. package/dist/features/orders/repository/orders.repository.d.ts +20 -2
  470. package/dist/features/orders/repository/orders.repository.js +34 -5
  471. package/dist/features/orders/schemas/firestore.d.ts +33 -7
  472. package/dist/features/orders/schemas/firestore.js +1 -1
  473. package/dist/features/orders/schemas/index.d.ts +176 -31
  474. package/dist/features/orders/schemas/index.js +20 -6
  475. package/dist/features/orders/types/index.d.ts +3 -3
  476. package/dist/features/payments/repository/payout.repository.js +2 -2
  477. package/dist/features/payments/schemas/firestore.d.ts +3 -3
  478. package/dist/features/payments/schemas/firestore.js +2 -2
  479. package/dist/features/payments/schemas/index.d.ts +5 -5
  480. package/dist/features/payments/schemas/index.js +2 -2
  481. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +1 -1
  482. package/dist/features/pre-orders/components/PreOrderActionsClient.d.ts +2 -1
  483. package/dist/features/pre-orders/components/PreOrderBadge.d.ts +2 -2
  484. package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +1 -1
  485. package/dist/features/pre-orders/components/PreOrderFilters.d.ts +1 -1
  486. package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +2 -1
  487. package/dist/features/pre-orders/components/PreOrdersListView.d.ts +1 -1
  488. package/dist/features/pre-orders/components/PreorderCard.d.ts +2 -1
  489. package/dist/features/products/api/[id]/route.js +4 -1
  490. package/dist/features/products/api/route.js +4 -1
  491. package/dist/features/products/columns/productTableColumns.d.ts +2 -1
  492. package/dist/features/products/components/AuctionDetailView.d.ts +1 -1
  493. package/dist/features/products/components/AuctionsIndexListing.d.ts +2 -1
  494. package/dist/features/products/components/BidHistory.d.ts +1 -1
  495. package/dist/features/products/components/CompareOverlay.d.ts +1 -1
  496. package/dist/features/products/components/CompareOverlay.js +7 -9
  497. package/dist/features/products/components/CustomFieldsEditor.d.ts +2 -1
  498. package/dist/features/products/components/CustomSectionTabContent.d.ts +2 -1
  499. package/dist/features/products/components/CustomSectionsEditor.d.ts +2 -1
  500. package/dist/features/products/components/FeatureBadge.d.ts +2 -2
  501. package/dist/features/products/components/GroupSettingsPanel.d.ts +2 -1
  502. package/dist/features/products/components/InteractiveProductCard.d.ts +2 -1
  503. package/dist/features/products/components/MakeOfferButton.d.ts +2 -1
  504. package/dist/features/products/components/MakeOfferForm.d.ts +1 -1
  505. package/dist/features/products/components/MarketplaceBundleCard.d.ts +1 -1
  506. package/dist/features/products/components/MarketplacePrizeDrawCard.d.ts +1 -1
  507. package/dist/features/products/components/NonRefundableConsentModal.d.ts +14 -1
  508. package/dist/features/products/components/PlaceBidForm.d.ts +1 -1
  509. package/dist/features/products/components/PreOrderDetailView.d.ts +1 -1
  510. package/dist/features/products/components/PrizeDrawCollage.d.ts +2 -1
  511. package/dist/features/products/components/PrizeDrawDetailPageView.d.ts +1 -1
  512. package/dist/features/products/components/PrizeDrawEntryActions.d.ts +1 -1
  513. package/dist/features/products/components/PrizeDrawItemsEditor.d.ts +1 -1
  514. package/dist/features/products/components/PrizeDrawsIndexListing.d.ts +1 -1
  515. package/dist/features/products/components/PrizeDrawsListingView.d.ts +1 -1
  516. package/dist/features/products/components/PrizeDrawsSection.d.ts +1 -1
  517. package/dist/features/products/components/PrizeRevealModal.d.ts +1 -1
  518. package/dist/features/products/components/ProductCardMetadataSection.d.ts +2 -1
  519. package/dist/features/products/components/ProductDetailActions.d.ts +1 -1
  520. package/dist/features/products/components/ProductDetailPageView.d.ts +3 -1
  521. package/dist/features/products/components/ProductDetailPageView.js +2 -2
  522. package/dist/features/products/components/ProductDetailView.d.ts +1 -1
  523. package/dist/features/products/components/ProductFeatureBadges.d.ts +1 -1
  524. package/dist/features/products/components/ProductFeaturesContext.d.ts +1 -1
  525. package/dist/features/products/components/ProductFeaturesSelector.d.ts +2 -1
  526. package/dist/features/products/components/ProductFilters.d.ts +1 -1
  527. package/dist/features/products/components/ProductForm.d.ts +1 -1
  528. package/dist/features/products/components/ProductForm.js +18 -7
  529. package/dist/features/products/components/ProductGalleryClient.d.ts +2 -1
  530. package/dist/features/products/components/ProductGradingTab.d.ts +2 -1
  531. package/dist/features/products/components/ProductGrid.d.ts +2 -2
  532. package/dist/features/products/components/ProductGrid.js +7 -12
  533. package/dist/features/products/components/ProductInfo.d.ts +1 -1
  534. package/dist/features/products/components/ProductTabs.d.ts +1 -1
  535. package/dist/features/products/components/ProductTabsShell.d.ts +1 -1
  536. package/dist/features/products/components/ProductsIndexListing.d.ts +2 -1
  537. package/dist/features/products/components/ProductsIndexPageView.d.ts +2 -1
  538. package/dist/features/products/components/ProductsView.d.ts +1 -1
  539. package/dist/features/products/components/RelatedProducts.d.ts +1 -1
  540. package/dist/features/products/components/RelatedProductsCarousel.d.ts +2 -1
  541. package/dist/features/products/components/ShareButton.d.ts +1 -1
  542. package/dist/features/products/components/ShowGroupSection.d.ts +2 -1
  543. package/dist/features/products/components/ShowGroupSection.js +3 -5
  544. package/dist/features/products/components/SublistingCarouselSection.d.ts +2 -1
  545. package/dist/features/products/components/SublistingCarouselSection.js +3 -6
  546. package/dist/features/products/components/SublistingCategorySelect.d.ts +2 -1
  547. package/dist/features/products/constants/listing-tabs.d.ts +32 -0
  548. package/dist/features/products/constants/listing-tabs.js +8 -0
  549. package/dist/features/products/index.d.ts +1 -1
  550. package/dist/features/products/index.js +3 -1
  551. package/dist/features/products/schemas/firestore.d.ts +20 -1
  552. package/dist/features/products/schemas/firestore.js +2 -0
  553. package/dist/features/products/schemas/index.d.ts +48 -0
  554. package/dist/features/products/schemas/index.js +9 -0
  555. package/dist/features/products/schemas/product-features.d.ts +1 -1
  556. package/dist/features/products/types/index.d.ts +5 -3
  557. package/dist/features/products/utils/listing-type.d.ts +6 -0
  558. package/dist/features/products/utils/listing-type.js +3 -0
  559. package/dist/features/promotions/components/CouponCard.d.ts +1 -1
  560. package/dist/features/promotions/components/CouponsIndexListing.d.ts +2 -1
  561. package/dist/features/promotions/components/PromotionsView.d.ts +3 -3
  562. package/dist/features/reviews/api/[id]/route.js +5 -4
  563. package/dist/features/reviews/components/ReviewDetailPageView.d.ts +2 -1
  564. package/dist/features/reviews/components/ReviewDetailShell.d.ts +2 -1
  565. package/dist/features/reviews/components/ReviewFilters.d.ts +1 -1
  566. package/dist/features/reviews/components/ReviewModal.d.ts +1 -1
  567. package/dist/features/reviews/components/ReviewSummary.d.ts +2 -1
  568. package/dist/features/reviews/components/ReviewsIndexListing.d.ts +2 -1
  569. package/dist/features/reviews/components/ReviewsIndexPageView.d.ts +2 -1
  570. package/dist/features/reviews/components/ReviewsList.d.ts +3 -2
  571. package/dist/features/scams/components/ScamAwarenessModal.d.ts +2 -1
  572. package/dist/features/scams/components/ScamProfileView.d.ts +2 -1
  573. package/dist/features/scams/components/ScamRegistryView.d.ts +2 -1
  574. package/dist/features/search/components/Search.d.ts +2 -1
  575. package/dist/features/search/components/SearchFiltersRow.d.ts +1 -1
  576. package/dist/features/search/components/SearchResultsSection.d.ts +1 -1
  577. package/dist/features/search/components/SearchView.d.ts +1 -1
  578. package/dist/features/seller/actions/seller-actions.d.ts +29 -14
  579. package/dist/features/seller/actions/seller-actions.js +101 -27
  580. package/dist/features/seller/components/BarcodeField.d.ts +2 -1
  581. package/dist/features/seller/components/BrandInlineSelect.d.ts +2 -1
  582. package/dist/features/seller/components/CategoryInlineSelect.d.ts +2 -1
  583. package/dist/features/seller/components/CouponInlineSelect.d.ts +2 -1
  584. package/dist/features/seller/components/FulfillmentView.d.ts +2 -1
  585. package/dist/features/seller/components/GroupInlineSelect.d.ts +2 -1
  586. package/dist/features/seller/components/PhysicalLocationModal.d.ts +2 -1
  587. package/dist/features/seller/components/PrintCenterView.d.ts +2 -1
  588. package/dist/features/seller/components/ProductInlineSelect.d.ts +2 -1
  589. package/dist/features/seller/components/QuickProductForm.d.ts +2 -1
  590. package/dist/features/seller/components/SellerAddressesView.d.ts +2 -1
  591. package/dist/features/seller/components/SellerAnalyticsAlertsView.d.ts +2 -1
  592. package/dist/features/seller/components/SellerAnalyticsView.d.ts +1 -1
  593. package/dist/features/seller/components/SellerArtView.d.ts +8 -0
  594. package/dist/features/seller/components/SellerArtView.js +114 -0
  595. package/dist/features/seller/components/SellerAuctionsView.d.ts +1 -1
  596. package/dist/features/seller/components/SellerBidsView.d.ts +2 -1
  597. package/dist/features/seller/components/SellerBundlesView.d.ts +2 -1
  598. package/dist/features/seller/components/SellerClassifiedView.d.ts +2 -1
  599. package/dist/features/seller/components/SellerCouponEditorView.d.ts +1 -1
  600. package/dist/features/seller/components/SellerCouponsView.d.ts +2 -1
  601. package/dist/features/seller/components/SellerCreateProductView.d.ts +1 -1
  602. package/dist/features/seller/components/SellerDashboardView.d.ts +1 -1
  603. package/dist/features/seller/components/SellerDigitalCodesView.d.ts +2 -1
  604. package/dist/features/seller/components/SellerEditProductView.d.ts +1 -1
  605. package/dist/features/seller/components/SellerFeaturesView.d.ts +2 -1
  606. package/dist/features/seller/components/SellerGoogleReviewsView.d.ts +2 -1
  607. package/dist/features/seller/components/SellerGroupedListingsView.d.ts +2 -1
  608. package/dist/features/seller/components/SellerGuideView.d.ts +1 -1
  609. package/dist/features/seller/components/SellerLiveView.d.ts +2 -1
  610. package/dist/features/seller/components/SellerOffersPanel.d.ts +2 -1
  611. package/dist/features/seller/components/SellerOffersView.d.ts +2 -1
  612. package/dist/features/seller/components/SellerOrdersView.d.ts +2 -1
  613. package/dist/features/seller/components/SellerOrdersView.js +38 -1
  614. package/dist/features/seller/components/SellerPayoutHistoryTable.d.ts +1 -1
  615. package/dist/features/seller/components/SellerPayoutMethodsView.d.ts +2 -1
  616. package/dist/features/seller/components/SellerPayoutRequestView.d.ts +1 -1
  617. package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +1 -1
  618. package/dist/features/seller/components/SellerPayoutSettingsView.js +4 -1
  619. package/dist/features/seller/components/SellerPayoutStats.d.ts +1 -1
  620. package/dist/features/seller/components/SellerPayoutsView.d.ts +2 -1
  621. package/dist/features/seller/components/SellerPreOrdersView.d.ts +2 -1
  622. package/dist/features/seller/components/SellerPrizeDrawsView.d.ts +2 -1
  623. package/dist/features/seller/components/SellerProductShell.d.ts +6 -2
  624. package/dist/features/seller/components/SellerProductShell.js +69 -59
  625. package/dist/features/seller/components/SellerProductsCards.d.ts +2 -1
  626. package/dist/features/seller/components/SellerProductsFilterDrawer.d.ts +2 -1
  627. package/dist/features/seller/components/SellerProductsView.d.ts +2 -1
  628. package/dist/features/seller/components/SellerReviewsView.d.ts +1 -1
  629. package/dist/features/seller/components/SellerShippingConfigsView.d.ts +2 -1
  630. package/dist/features/seller/components/SellerShippingView.d.ts +1 -1
  631. package/dist/features/seller/components/SellerShippingView.js +6 -25
  632. package/dist/features/seller/components/SellerSidebar.d.ts +1 -1
  633. package/dist/features/seller/components/SellerStickersView.d.ts +8 -0
  634. package/dist/features/seller/components/SellerStickersView.js +114 -0
  635. package/dist/features/seller/components/SellerStoreCategoriesView.d.ts +2 -1
  636. package/dist/features/seller/components/SellerStoreSetupView.d.ts +1 -1
  637. package/dist/features/seller/components/SellerStoreView.d.ts +1 -1
  638. package/dist/features/seller/components/SellerStorefrontView.d.ts +1 -1
  639. package/dist/features/seller/components/SellerTemplatesView.d.ts +2 -1
  640. package/dist/features/seller/components/SellersListView.d.ts +2 -1
  641. package/dist/features/seller/components/SublistingInlineSelect.d.ts +2 -1
  642. package/dist/features/seller/components/analytics/SellerAnalyticsStats.d.ts +2 -1
  643. package/dist/features/seller/components/analytics/SellerRevenueChart.d.ts +2 -1
  644. package/dist/features/seller/components/analytics/SellerTopProducts.d.ts +1 -1
  645. package/dist/features/seller/components/index.d.ts +4 -0
  646. package/dist/features/seller/components/index.js +2 -0
  647. package/dist/features/seller/messages/en.json +1 -1
  648. package/dist/features/seller/schemas/index.d.ts +7 -7
  649. package/dist/features/seller/schemas/index.js +1 -1
  650. package/dist/features/seller/types/index.d.ts +1 -1
  651. package/dist/features/shell/FormShell.d.ts +1 -1
  652. package/dist/features/shell/QuickFormDrawer.d.ts +1 -1
  653. package/dist/features/shell/StepForm.d.ts +3 -3
  654. package/dist/features/shell/field-groups/ImageFieldGroup.d.ts +2 -2
  655. package/dist/features/shell/field-groups/SeoFieldGroup.d.ts +2 -2
  656. package/dist/features/shell/field-groups/StatusFieldGroup.d.ts +2 -2
  657. package/dist/features/shell/field-groups/TitleDescriptionGroup.d.ts +2 -2
  658. package/dist/features/site-settings/components/ActionPermissionsManager.d.ts +2 -1
  659. package/dist/features/site-settings/components/NavPermissionsManager.d.ts +2 -1
  660. package/dist/features/site-settings/components/ThemeManagerView.d.ts +15 -1
  661. package/dist/features/stores/components/InteractiveStoreCard.d.ts +1 -1
  662. package/dist/features/stores/components/StoreAboutView.d.ts +1 -1
  663. package/dist/features/stores/components/StoreAddressSelectorCreate.d.ts +1 -1
  664. package/dist/features/stores/components/StoreAuctionsListing.d.ts +2 -1
  665. package/dist/features/stores/components/StoreAuctionsPageView.d.ts +2 -1
  666. package/dist/features/stores/components/StoreAuctionsView.d.ts +1 -1
  667. package/dist/features/stores/components/StoreBundlesPageView.d.ts +2 -1
  668. package/dist/features/stores/components/StoreCapabilitiesGuideView.d.ts +2 -1
  669. package/dist/features/stores/components/StoreClassifiedsListing.d.ts +2 -1
  670. package/dist/features/stores/components/StoreClassifiedsPageView.d.ts +2 -1
  671. package/dist/features/stores/components/StoreDetailLayoutView.d.ts +2 -1
  672. package/dist/features/stores/components/StoreDetailLayoutView.js +18 -2
  673. package/dist/features/stores/components/StoreDigitalCodesListing.d.ts +2 -1
  674. package/dist/features/stores/components/StoreDigitalCodesPageView.d.ts +2 -1
  675. package/dist/features/stores/components/StoreFilters.d.ts +1 -1
  676. package/dist/features/stores/components/StoreFinanceGuideView.d.ts +2 -1
  677. package/dist/features/stores/components/StoreGuideHubView.d.ts +2 -1
  678. package/dist/features/stores/components/StoreHeader.d.ts +1 -1
  679. package/dist/features/stores/components/StoreListingsGuideView.d.ts +2 -1
  680. package/dist/features/stores/components/StoreLiveItemsListing.d.ts +2 -1
  681. package/dist/features/stores/components/StoreLiveItemsPageView.d.ts +2 -1
  682. package/dist/features/stores/components/StoreNavTabs.d.ts +1 -1
  683. package/dist/features/stores/components/StoreOrdersGuideView.d.ts +2 -1
  684. package/dist/features/stores/components/StorePreOrdersListing.d.ts +2 -1
  685. package/dist/features/stores/components/StorePreOrdersPageView.d.ts +2 -1
  686. package/dist/features/stores/components/StorePrizeDrawsPageView.d.ts +2 -1
  687. package/dist/features/stores/components/StoreProductsListing.d.ts +2 -1
  688. package/dist/features/stores/components/StoreProductsPageView.d.ts +2 -1
  689. package/dist/features/stores/components/StoreProductsView.d.ts +1 -1
  690. package/dist/features/stores/components/StoreReviewsListing.d.ts +2 -1
  691. package/dist/features/stores/components/StoreReviewsPageView.d.ts +2 -1
  692. package/dist/features/stores/components/StoreReviewsView.d.ts +1 -1
  693. package/dist/features/stores/components/StoreScopedSearch.d.ts +2 -1
  694. package/dist/features/stores/components/StoreSettingsGuideView.d.ts +2 -1
  695. package/dist/features/stores/components/StoresIndexListing.d.ts +2 -1
  696. package/dist/features/stores/components/StoresIndexPageView.d.ts +2 -1
  697. package/dist/features/stores/schemas/firestore.d.ts +7 -1
  698. package/dist/features/stores/schemas/index.d.ts +19 -16
  699. package/dist/features/stores/schemas/index.js +1 -1
  700. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +2 -1
  701. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +2 -1
  702. package/dist/features/wishlist/components/WishlistPage.d.ts +2 -2
  703. package/dist/features/wishlist/components/WishlistToggleButton.d.ts +1 -1
  704. package/dist/features/wishlist/components/WishlistView.d.ts +1 -1
  705. package/dist/index.d.ts +21 -36
  706. package/dist/index.js +27 -39
  707. package/dist/next/ErrorBoundary.d.ts +1 -1
  708. package/dist/next/components/ErrorView.d.ts +1 -1
  709. package/dist/next/components/GlobalError.d.ts +1 -1
  710. package/dist/next/components/NotFoundView.d.ts +1 -1
  711. package/dist/next/components/UnauthorizedView.d.ts +1 -1
  712. package/dist/next/routing/route-map.d.ts +22 -0
  713. package/dist/next/routing/route-map.js +10 -0
  714. package/dist/providers/payment-manual/index.d.ts +40 -0
  715. package/dist/providers/payment-manual/index.js +91 -0
  716. package/dist/providers/payment-razorpay/index.d.ts +4 -2
  717. package/dist/providers/payment-razorpay/index.js +4 -1
  718. package/dist/providers/shipping-manual/index.d.ts +22 -0
  719. package/dist/providers/shipping-manual/index.js +47 -0
  720. package/dist/providers.d.ts +2 -2
  721. package/dist/providers.js +5 -3
  722. package/dist/react/ErrorBoundary.d.ts +1 -1
  723. package/dist/react/contexts/SessionContext.d.ts +1 -1
  724. package/dist/schemas/registry.d.ts +129 -70
  725. package/dist/schemas/registry.js +0 -4
  726. package/dist/security/pii-encrypt.js +0 -7
  727. package/dist/security/pii-redact.js +0 -1
  728. package/dist/seed/conversations-seed-data.js +2 -2
  729. package/dist/seed/faq-seed-data.js +7 -7
  730. package/dist/seed/grouped-listings-seed-data.d.ts +2 -0
  731. package/dist/seed/index.d.ts +2 -0
  732. package/dist/seed/index.js +2 -0
  733. package/dist/seed/manifest.js +20 -16
  734. package/dist/seed/payouts-seed-data.js +5 -5
  735. package/dist/seed/products-art-seed-data.d.ts +11 -0
  736. package/dist/seed/products-art-seed-data.js +125 -0
  737. package/dist/seed/products-preorders-seed-data.d.ts +2 -0
  738. package/dist/seed/products-stickers-seed-data.d.ts +11 -0
  739. package/dist/seed/products-stickers-seed-data.js +125 -0
  740. package/dist/seed/site-settings-seed-data.js +13 -4
  741. package/dist/seed/stores-seed-data.js +11 -11
  742. package/dist/server.d.ts +7 -15
  743. package/dist/server.js +17 -42
  744. package/dist/ui/DataTable.d.ts +1 -1
  745. package/dist/ui/components/Accordion.d.ts +2 -2
  746. package/dist/ui/components/ActiveFilterChips.d.ts +2 -1
  747. package/dist/ui/components/Alert.d.ts +1 -1
  748. package/dist/ui/components/Anchor.d.ts +1 -1
  749. package/dist/ui/components/Avatar.d.ts +2 -2
  750. package/dist/ui/components/AvatarDisplay.d.ts +2 -1
  751. package/dist/ui/components/BackgroundRenderer.d.ts +1 -1
  752. package/dist/ui/components/Badge.d.ts +1 -1
  753. package/dist/ui/components/BaseListingCard.d.ts +5 -5
  754. package/dist/ui/components/Breadcrumb.d.ts +1 -1
  755. package/dist/ui/components/BulkActionBar.d.ts +1 -1
  756. package/dist/ui/components/Button.d.ts +1 -1
  757. package/dist/ui/components/Card.d.ts +4 -4
  758. package/dist/ui/components/Checkbox.d.ts +1 -1
  759. package/dist/ui/components/ConfirmDeleteModal.d.ts +1 -1
  760. package/dist/ui/components/CountdownDisplay.d.ts +1 -1
  761. package/dist/ui/components/DateInput.d.ts +1 -1
  762. package/dist/ui/components/DescriptionField.d.ts +1 -1
  763. package/dist/ui/components/DetailPageGallery.d.ts +2 -2
  764. package/dist/ui/components/DetailPageHero.d.ts +2 -2
  765. package/dist/ui/components/DetailPageTabs.d.ts +2 -2
  766. package/dist/ui/components/DetailViewShell.d.ts +2 -2
  767. package/dist/ui/components/Details.d.ts +2 -2
  768. package/dist/ui/components/Dialog.d.ts +1 -1
  769. package/dist/ui/components/Divider.d.ts +1 -1
  770. package/dist/ui/components/Dropdown.d.ts +5 -5
  771. package/dist/ui/components/DynamicBgDiv.d.ts +1 -1
  772. package/dist/ui/components/EmptyState.d.ts +1 -1
  773. package/dist/ui/components/FallbackShell.d.ts +1 -1
  774. package/dist/ui/components/Fieldset.d.ts +2 -2
  775. package/dist/ui/components/FilterChipGroup.d.ts +2 -1
  776. package/dist/ui/components/FilterDrawer.d.ts +1 -1
  777. package/dist/ui/components/FlowDiagram.d.ts +1 -1
  778. package/dist/ui/components/Form.d.ts +4 -4
  779. package/dist/ui/components/FormActionBar.d.ts +2 -1
  780. package/dist/ui/components/FormField.d.ts +2 -1
  781. package/dist/ui/components/FormGrid.d.ts +3 -2
  782. package/dist/ui/components/HorizontalRule.d.ts +1 -1
  783. package/dist/ui/components/HorizontalScroller.d.ts +1 -1
  784. package/dist/ui/components/HotspotMarker.d.ts +1 -1
  785. package/dist/ui/components/IconBox.d.ts +1 -1
  786. package/dist/ui/components/IconButton.d.ts +1 -1
  787. package/dist/ui/components/Iframe.d.ts +1 -1
  788. package/dist/ui/components/ImageGallery.d.ts +2 -1
  789. package/dist/ui/components/ItemRow.d.ts +1 -1
  790. package/dist/ui/components/Kbd.d.ts +1 -1
  791. package/dist/ui/components/Layout.d.ts +4 -4
  792. package/dist/ui/components/ListingFilterDrawer.d.ts +1 -1
  793. package/dist/ui/components/ListingLayout.d.ts +1 -1
  794. package/dist/ui/components/ListingToolbar.d.ts +1 -1
  795. package/dist/ui/components/LoginRequiredModal.d.ts +2 -1
  796. package/dist/ui/components/Menu.d.ts +5 -5
  797. package/dist/ui/components/Modal.d.ts +1 -1
  798. package/dist/ui/components/Motion.d.ts +14 -14
  799. package/dist/ui/components/NavbarChevron.d.ts +1 -1
  800. package/dist/ui/components/NavigationLoader.d.ts +1 -1
  801. package/dist/ui/components/OtpInput.d.ts +1 -1
  802. package/dist/ui/components/PageLoader.d.ts +1 -1
  803. package/dist/ui/components/PaginatedSelect.d.ts +2 -2
  804. package/dist/ui/components/Pagination.d.ts +2 -1
  805. package/dist/ui/components/PasswordStrengthIndicator.d.ts +2 -1
  806. package/dist/ui/components/PriceDisplay.d.ts +1 -1
  807. package/dist/ui/components/Progress.d.ts +3 -2
  808. package/dist/ui/components/ProgressBarFill.d.ts +1 -1
  809. package/dist/ui/components/Quote.d.ts +1 -1
  810. package/dist/ui/components/Radio.d.ts +2 -2
  811. package/dist/ui/components/RatingDisplay.d.ts +1 -1
  812. package/dist/ui/components/Responsive.d.ts +2 -2
  813. package/dist/ui/components/ResponsiveView.d.ts +1 -1
  814. package/dist/ui/components/RichTextEditor.d.ts +2 -1
  815. package/dist/ui/components/RoleBadge.d.ts +2 -1
  816. package/dist/ui/components/RowActionMenu.d.ts +1 -1
  817. package/dist/ui/components/Scrim.d.ts +1 -1
  818. package/dist/ui/components/Select.d.ts +1 -1
  819. package/dist/ui/components/Semantic.d.ts +21 -21
  820. package/dist/ui/components/SettingsSection.d.ts +3 -2
  821. package/dist/ui/components/SideDrawer.d.ts +1 -1
  822. package/dist/ui/components/SideModal.d.ts +1 -1
  823. package/dist/ui/components/SiteLogo.d.ts +1 -1
  824. package/dist/ui/components/Skeleton.d.ts +2 -1
  825. package/dist/ui/components/SkipToMain.d.ts +2 -1
  826. package/dist/ui/components/Slider.d.ts +1 -1
  827. package/dist/ui/components/SlottedListingView.d.ts +2 -2
  828. package/dist/ui/components/SortDropdown.d.ts +1 -1
  829. package/dist/ui/components/Spinner.d.ts +1 -1
  830. package/dist/ui/components/StackedViewShell.d.ts +2 -2
  831. package/dist/ui/components/StarRating.d.ts +1 -1
  832. package/dist/ui/components/StatsGrid.d.ts +1 -1
  833. package/dist/ui/components/StatusBadge.d.ts +1 -1
  834. package/dist/ui/components/StepperNav.d.ts +1 -1
  835. package/dist/ui/components/StickyToolbar.d.ts +1 -1
  836. package/dist/ui/components/SummaryCard.d.ts +1 -1
  837. package/dist/ui/components/TabStrip.d.ts +2 -1
  838. package/dist/ui/components/TablePagination.d.ts +2 -1
  839. package/dist/ui/components/Tabs.d.ts +4 -4
  840. package/dist/ui/components/TagInput.d.ts +2 -1
  841. package/dist/ui/components/TextLink.d.ts +1 -1
  842. package/dist/ui/components/Toast.d.ts +1 -1
  843. package/dist/ui/components/Toggle.d.ts +1 -1
  844. package/dist/ui/components/Tooltip.d.ts +1 -1
  845. package/dist/ui/components/Typography.d.ts +4 -4
  846. package/dist/ui/components/UnsavedChangesModal.d.ts +1 -1
  847. package/dist/ui/components/VacationBanner.d.ts +2 -1
  848. package/dist/ui/components/ViewToggle.d.ts +1 -1
  849. package/dist/ui/forms/ColorPickerField.d.ts +1 -1
  850. package/dist/ui/forms/FieldCheckbox.d.ts +2 -1
  851. package/dist/ui/forms/FieldInput.d.ts +1 -1
  852. package/dist/ui/forms/FieldSelect.d.ts +2 -1
  853. package/dist/ui/forms/FieldTextarea.d.ts +1 -1
  854. package/dist/ui/forms/FormShell.d.ts +2 -2
  855. package/dist/ui/rich-text/RichText.d.ts +1 -1
  856. package/dist/ui/rich-text/RichTextRenderer.d.ts +2 -1
  857. package/package.json +1 -1
@@ -1 +1,2 @@
1
- export declare function AdminSiteConfigGuideView(): import("react/jsx-runtime").JSX.Element;
1
+ import React from "react";
2
+ export declare function AdminSiteConfigGuideView(): React.JSX.Element;
@@ -12,7 +12,7 @@ export function AdminSiteConfigGuideView() {
12
12
  { name: "contactSocial", desc: "Email, phone, social media URLs, WhatsApp business number." },
13
13
  { name: "watermark", desc: "Watermark text and opacity applied to all product images via the /api/media proxy." },
14
14
  { name: "fees", desc: "platformFee (%), Razorpay gateway fee pass-through toggle, GST rate on platform fees." },
15
- { name: "integrations", desc: "API keys: Razorpay (live/test), Shiprocket, Resend, WhatsApp Cloud API. Keys are encrypted at rest — never log or export." },
15
+ { name: "integrations", desc: "API keys: Razorpay (live/test, disabled by default — manual payment is the default), Resend, WhatsApp Cloud API. Keys are encrypted at rest — never log or export." },
16
16
  { name: "shipping", desc: "Default shipping carriers, free shipping threshold (paise), COD availability toggle." },
17
17
  { name: "auctionConfig", desc: "Global bid increment default, auto-extend window (minutes), minimum auction duration." },
18
18
  { name: "platformLimits", desc: "Cart item cap (50), wishlist cap (20), history cap (50), support ticket limits (2 general + 1 per order)." },
@@ -1,7 +1,8 @@
1
+ import React from "react";
1
2
  import type { StackedViewShellProps } from "../../../ui";
2
3
  export interface AdminSiteSettingsViewProps extends Omit<StackedViewShellProps, "sections"> {
3
4
  labels?: {
4
5
  title?: string;
5
6
  };
6
7
  }
7
- export declare function AdminSiteSettingsView({ labels, ...rest }: AdminSiteSettingsViewProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function AdminSiteSettingsView({ labels, ...rest }: AdminSiteSettingsViewProps): React.JSX.Element;
@@ -112,7 +112,6 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
112
112
  // ⑧ Integrations
113
113
  const [razorpayKeyId, setRazorpayKeyId] = React.useState("");
114
114
  const [razorpaySecret, setRazorpaySecret] = React.useState("");
115
- const [shiprocketToken, setShiprocketToken] = React.useState("");
116
115
  const [smtpHost, setSmtpHost] = React.useState("");
117
116
  const [smtpPort, setSmtpPort] = React.useState("587");
118
117
  const [smtpUser, setSmtpUser] = React.useState("");
@@ -131,9 +130,12 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
131
130
  const [deviantartClientSecret, setDeviantartClientSecret] = React.useState("");
132
131
  // ⑨ Shipping
133
132
  const [freeShippingThreshold, setFreeShippingThreshold] = React.useState(999);
134
- const [codEnabled, setCodEnabled] = React.useState(true);
135
- const [defaultCarrier, setDefaultCarrier] = React.useState("shiprocket");
133
+ const [defaultCarrier, setDefaultCarrier] = React.useState("custom");
136
134
  const [maxDeliveryRadius, setMaxDeliveryRadius] = React.useState(0);
135
+ // ⑨ Payment methods (siteSettings.payment — read by checkout for method eligibility)
136
+ const [razorpayEnabled, setRazorpayEnabled] = React.useState(false);
137
+ const [upiManualEnabled, setUpiManualEnabled] = React.useState(true);
138
+ const [codEnabled, setCodEnabled] = React.useState(true);
137
139
  // ⑩ Auction
138
140
  const [minBidIncrement, setMinBidIncrement] = React.useState(50);
139
141
  const [autoExtendWindow, setAutoExtendWindow] = React.useState(5);
@@ -231,7 +233,6 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
231
233
  setPromotedSlotFee(s.commissions?.promotedSlotFee ?? 499);
232
234
  setRazorpayKeyId(s.credentialsMasked?.razorpayKeyId ?? "");
233
235
  setRazorpaySecret(s.credentialsMasked?.razorpaySecret ?? "");
234
- setShiprocketToken(s.credentialsMasked?.shiprocketToken ?? "");
235
236
  setSmtpHost(s.emailSettings?.host ?? "");
236
237
  setSmtpPort(String(s.emailSettings?.port ?? 587));
237
238
  setSmtpUser(s.emailSettings?.user ?? "");
@@ -248,9 +249,11 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
248
249
  setDeviantartClientId(s.credentialsMasked?.deviantartClientId ?? "");
249
250
  setDeviantartClientSecret(s.credentialsMasked?.deviantartClientSecret ?? "");
250
251
  setFreeShippingThreshold(Math.round((s.shipping?.freeShippingThreshold ?? 99900) / 100));
251
- setCodEnabled(s.shipping?.codEnabled ?? true);
252
- setDefaultCarrier(s.shipping?.defaultCarrier ?? "shiprocket");
252
+ setDefaultCarrier(s.shipping?.defaultCarrier ?? "custom");
253
253
  setMaxDeliveryRadius(s.shipping?.maxDeliveryRadius ?? 0);
254
+ setRazorpayEnabled(s.payment?.razorpayEnabled ?? false);
255
+ setUpiManualEnabled(s.payment?.upiManualEnabled ?? true);
256
+ setCodEnabled(s.payment?.codEnabled ?? true);
254
257
  setMinBidIncrement(Math.round((s.auctionConfig?.minBidIncrement ?? 5000) / 100));
255
258
  setAutoExtendWindow(s.auctionConfig?.autoExtendWindowMinutes ?? 5);
256
259
  setSettlementGrace(s.auctionConfig?.settlementGracePeriodHours ?? 24);
@@ -328,7 +331,7 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
328
331
  }));
329
332
  const integrationsMutation = useSave("Integrations", () => ({
330
333
  credentials: {
331
- razorpayKeyId, razorpaySecret, shiprocketToken, smtpPassword,
334
+ razorpayKeyId, razorpaySecret, smtpPassword,
332
335
  metaPageAccessToken, metaPageId,
333
336
  tiktokClientKey, tiktokClientSecret, tiktokAccessToken,
334
337
  deviantartClientId, deviantartClientSecret,
@@ -337,7 +340,8 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
337
340
  integrations: { googleAnalyticsId: gaMeasurementId, facebookPixelId: fbPixelId, gtmContainerId },
338
341
  }));
339
342
  const shippingMutation = useSave("Shipping", () => ({
340
- shipping: { freeShippingThreshold: freeShippingThreshold * 100, codEnabled, defaultCarrier, maxDeliveryRadius },
343
+ shipping: { freeShippingThreshold: freeShippingThreshold * 100, defaultCarrier, maxDeliveryRadius },
344
+ payment: { razorpayEnabled, upiManualEnabled, codEnabled },
341
345
  }));
342
346
  const auctionMutation = useSave("Auction Config", () => ({
343
347
  auctionConfig: { minBidIncrement: minBidIncrement * 100, autoExtendWindowMinutes: autoExtendWindow, settlementGracePeriodHours: settlementGrace },
@@ -380,6 +384,7 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
380
384
  { label: "System", value: "system" },
381
385
  ];
382
386
  const CARRIER_OPTIONS = [
387
+ { label: "Custom / Other", value: "custom" },
383
388
  { label: "Shiprocket", value: "shiprocket" },
384
389
  { label: "Delhivery", value: "delhivery" },
385
390
  { label: "Bluedart", value: "bluedart" },
@@ -408,7 +413,7 @@ export function AdminSiteSettingsView({ labels = {}, ...rest }) {
408
413
  ].map(([value, label]) => (_jsx(TabsTrigger, { value: value, children: label }, value))) }), _jsx(TabsContent, { value: "about", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); aboutMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Override the About page hero and mission text. Leave blank to use the platform defaults." }), _jsx(Input, { label: "Hero title", value: aboutTitle, onChange: (e) => setAboutTitle(e.target.value), placeholder: "About LetItRip" }), _jsx(Input, { label: "Hero subtitle", value: aboutSubtitle, onChange: (e) => setAboutSubtitle(e.target.value), placeholder: "Connecting buyers, sellers, and bidders in one vibrant marketplace" }), _jsx(Input, { label: "Mission section title", value: aboutMissionTitle, onChange: (e) => setAboutMissionTitle(e.target.value), placeholder: "Our Mission" }), _jsxs(_Fragment, { children: [_jsx(Text, { className: "mb-1", color: "muted", size: "sm", weight: "medium", children: "Mission text" }), _jsx("textarea", { value: aboutMissionText, onChange: (e) => setAboutMissionText(e.target.value), placeholder: "LetItRip was built to democratise commerce\u2026", rows: 4, className: CLS_TEXTAREA })] }), _jsx(Input, { label: "CTA banner title", value: aboutCtaTitle, onChange: (e) => setAboutCtaTitle(e.target.value), placeholder: "Ready to get started?" }), _jsx(GroupSaveButton, { isPending: aboutMutation.isPending })] }) }), _jsx(TabsContent, { value: "branding", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); brandingMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Site name", value: siteName, onChange: (e) => setSiteName(e.target.value), placeholder: "LetItRip" }), _jsx(Input, { label: "Tagline", value: tagline, onChange: (e) => setTagline(e.target.value), placeholder: "India's Largest Collectibles Marketplace" }), _jsx(ImageUpload, { label: "Logo", currentImage: logoUrl, onUpload: (file) => upload(file, "store"), onChange: setLogoUrl }), _jsx(ImageUpload, { label: "Favicon", currentImage: faviconUrl, onUpload: (file) => upload(file, "store"), onChange: setFaviconUrl }), _jsxs(Stack, { gap: "sm", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "Maintenance mode", checked: maintenanceMode, onChange: setMaintenanceMode }), _jsx(Input, { label: "Maintenance message", value: maintenanceMessage, onChange: (e) => setMaintenanceMessage(e.target.value), placeholder: "We're back soon.", disabled: !maintenanceMode })] }), _jsx(GroupSaveButton, { isPending: brandingMutation.isPending })] }) }), _jsx(TabsContent, { value: "appearance", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); appearanceMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { gap: "md", className: "grid-cols-3", children: [_jsxs(Stack, { gap: "none", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", className: "mb-1", children: "Primary color" }), _jsx(Input, { type: "color", value: primaryColor || "#000000", onChange: (e) => setPrimaryColor(e.target.value), className: "h-10 w-full cursor-pointer", bare: true }), " "] }), _jsxs(Stack, { gap: "none", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", className: "mb-1", children: "Secondary color" }), _jsx(Input, { type: "color", value: secondaryColor || "#000000", onChange: (e) => setSecondaryColor(e.target.value), className: "h-10 w-full cursor-pointer", bare: true }), " "] }), _jsxs(Stack, { gap: "none", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", className: "mb-1", children: "Accent color" }), _jsx(Input, { type: "color", value: accentColor || "#000000", onChange: (e) => setAccentColor(e.target.value), className: "h-10 w-full cursor-pointer", bare: true }), " "] })] }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Select, { label: "Default theme", options: THEME_OPTIONS, value: defaultTheme, onValueChange: setDefaultTheme }), _jsx(Select, { label: "Font family", options: FONT_OPTIONS, value: fontFamily, onValueChange: setFontFamily })] }), _jsx(GroupSaveButton, { isPending: appearanceMutation.isPending })] }) }), _jsx(TabsContent, { value: "themes", children: _jsxs(Form, { onSubmit: (e) => {
409
414
  e.preventDefault();
410
415
  themeMutation.mutate();
411
- }, className: "pt-4", spacing: "md", children: [_jsx(ThemeManagerView, { value: themeRegistry, onChange: setThemeRegistry, previewOrigin: "/" }), _jsx(GroupSaveButton, { isPending: themeMutation.isPending })] }) }), _jsx(TabsContent, { value: "announcement", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); announcementMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Toggle, { label: "Show announcement bar", checked: announcementEnabled, onChange: setAnnouncementEnabled }), _jsx(Input, { label: "Announcement text", value: announcementText, onChange: (e) => setAnnouncementText(e.target.value), placeholder: "\uD83C\uDF89 Free shipping on orders \u20B9999+", disabled: !announcementEnabled }), _jsx(Input, { label: "Link URL (optional)", value: announcementLink, onChange: (e) => setAnnouncementLink(e.target.value), placeholder: "/products", disabled: !announcementEnabled }), _jsxs(Stack, { gap: "none", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", className: "mb-1", children: "Background color" }), _jsx(Input, { type: "color", value: announcementBg || "#1d4ed8", onChange: (e) => setAnnouncementBg(e.target.value), className: "h-10 w-32 cursor-pointer", bare: true, disabled: !announcementEnabled }), " "] }), _jsx(GroupSaveButton, { isPending: announcementMutation.isPending })] }) }), _jsx(TabsContent, { value: "seo", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); seoMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Default meta title", value: seoTitle, onChange: (e) => setSeoTitle(e.target.value), placeholder: "LetItRip \u2014 Buy, Sell & Auction Collectibles in India", maxLength: 60, helperText: "Max 60 chars. Use {page} token for dynamic insertion." }), _jsx(Input, { label: "Default meta description", value: seoDescription, onChange: (e) => setSeoDescription(e.target.value), placeholder: "India's largest collectibles marketplace\u2026", maxLength: 160, helperText: "Max 160 chars." }), _jsx(ImageUpload, { label: "Default OG image", currentImage: seoOgImage, onUpload: (file) => upload(file, "store"), onChange: setSeoOgImage }), _jsx(Input, { label: "Canonical base URL", value: canonicalUrl, onChange: (e) => setCanonicalUrl(e.target.value), placeholder: "https://letitrip.in" }), _jsx(Toggle, { label: "Robots noindex (disables search indexing \u2014 use carefully)", checked: seoNoIndex, onChange: setSeoNoIndex }), _jsx(GroupSaveButton, { isPending: seoMutation.isPending })] }) }), _jsx(TabsContent, { value: "contact", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); contactMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Support email", value: supportEmail, onChange: (e) => setSupportEmail(e.target.value), type: "email", placeholder: "support@letitrip.in" }), _jsx(Input, { label: "Support phone", value: supportPhone, onChange: (e) => setSupportPhone(e.target.value), placeholder: "+91 XXXXX XXXXX" })] }), _jsx(Input, { label: "Physical address", value: supportAddress, onChange: (e) => setSupportAddress(e.target.value), placeholder: "Mumbai, Maharashtra, India" }), _jsx(Input, { label: "Support hours", value: supportHours, onChange: (e) => setSupportHours(e.target.value), placeholder: "Mon\u2013Fri, 10 AM \u2013 6 PM IST" }), _jsx(Text, { className: "pt-[0.5rem]", color: "muted", size: "sm", weight: "medium", children: "Social links" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Instagram URL", value: instagram, onChange: (e) => setInstagram(e.target.value), placeholder: "https://instagram.com/letitrip" }), _jsx(Input, { label: "Twitter / X URL", value: twitter, onChange: (e) => setTwitter(e.target.value), placeholder: "https://twitter.com/letitrip" }), _jsx(Input, { label: "Facebook URL", value: facebook, onChange: (e) => setFacebook(e.target.value), placeholder: "https://facebook.com/letitrip" }), _jsx(Input, { label: "YouTube URL", value: youtube, onChange: (e) => setYoutube(e.target.value), placeholder: "https://youtube.com/@letitrip" }), _jsx(Input, { label: "WhatsApp number", value: whatsapp, onChange: (e) => setWhatsapp(e.target.value), placeholder: "+91XXXXXXXXXX" }), _jsx(Input, { label: "LinkedIn URL", value: linkedin, onChange: (e) => setLinkedin(e.target.value), placeholder: "https://linkedin.com/company/letitrip" }), _jsx(Input, { label: "Pinterest URL", value: pinterest, onChange: (e) => setPinterest(e.target.value), placeholder: "https://pinterest.com/letitrip" })] }), _jsx(GroupSaveButton, { isPending: contactMutation.isPending })] }) }), _jsx(TabsContent, { value: "watermark", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); watermarkMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Select, { label: "Watermark type", options: [{ label: "Text", value: "text" }, { label: "Image", value: "image" }], value: watermarkType, onValueChange: (v) => setWatermarkType(v) }), watermarkType === "text" ? (_jsx(Input, { label: "Watermark text", value: watermarkText, onChange: (e) => setWatermarkText(e.target.value), placeholder: "letitrip.in" })) : (_jsx(ImageUpload, { label: "Watermark image", currentImage: watermarkImageUrl, onUpload: (file) => upload(file, "store"), onChange: setWatermarkImageUrl })), _jsx(Slider, { label: `Size — ${watermarkSize}% of image width`, value: watermarkSize, onChange: setWatermarkSize, min: 5, max: 100, step: 5 }), _jsx(Slider, { label: `Opacity — ${watermarkOpacity}%`, value: watermarkOpacity, onChange: setWatermarkOpacity, min: 5, max: 100, step: 5 }), _jsxs(Stack, { gap: "xs", surface: "muted", rounded: "lg", border: "default", padding: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Preview (text watermark only)" }), _jsx(Row, { surface: "default", justify: "end", align: "end", className: `relative h-32 ${__O.hidden}`, rounded: "default", children: _jsx("span", { ref: watermarkPreviewRef, className: "select-none font-medium p-1 text-[var(--appkit-color-text-faint)]", children: watermarkText }) })] }), _jsx(GroupSaveButton, { isPending: watermarkMutation.isPending })] }) }), _jsx(TabsContent, { value: "fees", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); feesMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Platform fee \u2014 our cut (%)", helperText: "% charged on order value. Buyer pays this.", value: String(platformFeePercent), onChange: (e) => setPlatformFeePercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 100, step: 0.1 }), _jsx(Input, { label: "GST on platform fee (%)", helperText: "Applied to our fee only (not full order). Usually 18%.", value: String(gstPercent), onChange: (e) => setGstPercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 100, step: 0.1 }), _jsx(Input, { label: "Razorpay gateway cost (%)", helperText: "Gateway's own fee \u2014 absorbed by platform, not passed through.", value: String(gatewayFeePercent), onChange: (e) => setGatewayFeePercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 10, step: 0.01 }), _jsx(Input, { label: "Minimum transaction fee (\u20B9)", helperText: "Per-transaction floor. Total charge will never be below base + this.", value: String(minimumTransactionFee), onChange: (e) => setMinimumTransactionFee(parseFloat(e.target.value) || 0), type: "number", min: 0, step: 0.01 }), _jsx(Input, { label: "Seller payout hold (days)", value: String(payoutHoldDays), onChange: (e) => setPayoutHoldDays(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Minimum payout amount (\u20B9)", value: String(minPayoutAmount), onChange: (e) => setMinPayoutAmount(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Auction listing fee (\u20B9)", value: String(auctionListingFee), onChange: (e) => setAuctionListingFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Pre-order listing fee (\u20B9)", value: String(preOrderListingFee), onChange: (e) => setPreOrderListingFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Featured slot fee (\u20B9)", value: String(featuredSlotFee), onChange: (e) => setFeaturedSlotFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Promoted slot fee (\u20B9)", value: String(promotedSlotFee), onChange: (e) => setPromotedSlotFee(parseInt(e.target.value) || 0), type: "number", min: 0 })] }), _jsx(GroupSaveButton, { isPending: feesMutation.isPending })] }) }), _jsx(TabsContent, { value: "integrations", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); integrationsMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Keys are masked in transit and stored encrypted. Click Reveal to view." }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Razorpay" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Razorpay Key ID", value: razorpayKeyId, onChange: setRazorpayKeyId, placeholder: "rzp_live_\u2026" }), _jsx(MaskedInput, { label: "Razorpay Secret", value: razorpaySecret, onChange: setRazorpaySecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Shiprocket" }), _jsx(MaskedInput, { label: "Shiprocket API token", value: shiprocketToken, onChange: setShiprocketToken, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "SMTP / Email" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "SMTP host", value: smtpHost, onChange: (e) => setSmtpHost(e.target.value), placeholder: "smtp.sendgrid.net" }), _jsx(Input, { label: "SMTP port", value: smtpPort, onChange: (e) => setSmtpPort(e.target.value), type: "number", placeholder: "587" }), _jsx(Input, { label: "SMTP user", value: smtpUser, onChange: (e) => setSmtpUser(e.target.value), placeholder: "apikey" }), _jsx(MaskedInput, { label: "SMTP password", value: smtpPassword, onChange: setSmtpPassword, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] }), _jsx(Input, { label: "From address", value: smtpFrom, onChange: (e) => setSmtpFrom(e.target.value), placeholder: "noreply@letitrip.in", type: "email" })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Analytics & Tracking" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Google Analytics ID", value: gaMeasurementId, onChange: (e) => setGaMeasurementId(e.target.value), placeholder: "G-XXXXXXXXXX" }), _jsx(Input, { label: "Facebook Pixel ID", value: fbPixelId, onChange: (e) => setFbPixelId(e.target.value), placeholder: "XXXXXXXXXXXXXXXX" }), _jsx(Input, { label: "GTM Container ID", value: gtmContainerId, onChange: (e) => setGtmContainerId(e.target.value), placeholder: "GTM-XXXXXXX" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Meta (Instagram & Facebook Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Used by the Social Feed section to fetch Instagram and Facebook posts via Meta Graph API v19." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Page Access Token", value: metaPageAccessToken, onChange: setMetaPageAccessToken, placeholder: "EAAxxxxxxx\u2026" }), _jsx(Input, { label: "Page ID (or handle)", value: metaPageId, onChange: (e) => setMetaPageId(e.target.value), placeholder: "letitrip" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "TikTok for Developers (Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Client credentials + long-lived access token from TikTok for Developers. Used to list your account's public videos." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Client Key", value: tiktokClientKey, onChange: setTiktokClientKey, placeholder: "aw\u2026" }), _jsx(MaskedInput, { label: "Client Secret", value: tiktokClientSecret, onChange: setTiktokClientSecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }), _jsx(MaskedInput, { label: "Access Token (long-lived)", value: tiktokAccessToken, onChange: setTiktokAccessToken, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "DeviantArt OAuth2 (Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Client credentials for DeviantArt gallery fetching (client-credentials OAuth2 flow \u2014 no user login required)." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Client ID", value: deviantartClientId, onChange: setDeviantartClientId, placeholder: "1234" }), _jsx(MaskedInput, { label: "Client Secret", value: deviantartClientSecret, onChange: setDeviantartClientSecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsx(GroupSaveButton, { isPending: integrationsMutation.isPending })] }) }), _jsx(TabsContent, { value: "shipping", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); shippingMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Free shipping threshold (\u20B9)", value: String(freeShippingThreshold), onChange: (e) => setFreeShippingThreshold(parseInt(e.target.value) || 0), type: "number", min: 0, helperText: "Orders above this amount get free shipping." }), _jsx(Toggle, { label: "Cash on delivery (COD) enabled", checked: codEnabled, onChange: setCodEnabled }), _jsx(Select, { label: "Default carrier", options: CARRIER_OPTIONS, value: defaultCarrier, onValueChange: setDefaultCarrier }), _jsx(Input, { label: "Max delivery radius (km, 0 = no limit)", value: String(maxDeliveryRadius), onChange: (e) => setMaxDeliveryRadius(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(GroupSaveButton, { isPending: shippingMutation.isPending })] }) }), _jsx(TabsContent, { value: "auction", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); auctionMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Minimum bid increment (\u20B9)", value: String(minBidIncrement), onChange: (e) => setMinBidIncrement(parseInt(e.target.value) || 0), type: "number", min: 1, helperText: "Global default \u2014 individual auctions may override." }), _jsx(Input, { label: "Auto-extend window (minutes before end)", value: String(autoExtendWindow), onChange: (e) => setAutoExtendWindow(parseInt(e.target.value) || 0), type: "number", min: 0, helperText: "Extend auction end time if a bid arrives within this window." }), _jsx(Input, { label: "Settlement grace period (hours)", value: String(settlementGrace), onChange: (e) => setSettlementGrace(parseInt(e.target.value) || 0), type: "number", min: 1, helperText: "Time winner has to pay before the auction is re-listed." }), _jsx(GroupSaveButton, { isPending: auctionMutation.isPending })] }) }), _jsx(TabsContent, { value: "limits", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); limitsMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Max products per store", value: String(maxProductsPerStore), onChange: (e) => setMaxProductsPerStore(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max images per product", value: String(maxImagesPerProduct), onChange: (e) => setMaxImagesPerProduct(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max video size (MB)", value: String(maxVideoSizeMb), onChange: (e) => setMaxVideoSizeMb(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max custom fields per product", value: String(maxCustomFields), onChange: (e) => setMaxCustomFields(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Max custom sections per product", value: String(maxCustomSections), onChange: (e) => setMaxCustomSections(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Order cancellation window (hours)", value: String(orderCancelWindow), onChange: (e) => setOrderCancelWindow(parseInt(e.target.value) || 0), type: "number", min: 0 })] }), _jsx(GroupSaveButton, { isPending: limitsMutation.isPending })] }) }), _jsx(TabsContent, { value: "whatsapp", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); whatsappMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Platform-level WhatsApp Business Cloud API credentials. Used for automated purchase announcements to admin numbers when orders are placed. Store owners configure their own credentials in Store \u2192 WhatsApp." }), _jsx(Input, { label: "Phone Number ID", value: waPhoneNumberId, onChange: (e) => setWaPhoneNumberId(e.target.value), placeholder: "987654321098765", helperText: "From Meta for Developers \u2192 App \u2192 WhatsApp \u2192 API Setup" }), _jsx(MaskedInput, { label: "Cloud API System User Token", value: waCloudApiToken, onChange: setWaCloudApiToken, placeholder: "EAAxxxxxxxx\u2026", helperText: "Long-lived system user access token with WhatsApp Business permissions" }), _jsx(Input, { label: "Admin Notify Numbers", value: waAdminNotifyNumbers, onChange: (e) => setWaAdminNotifyNumbers(e.target.value), placeholder: "919876543210,918765432109", helperText: "Comma-separated, digits-only, include country code. These receive a WhatsApp message when any order is placed." }), _jsx(GroupSaveButton, { isPending: whatsappMutation.isPending })] }) }), _jsx(TabsContent, { value: "notifications", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); notifChannelsMutation.mutate(); }, className: "pt-4", spacing: "lg", children: [_jsx(Text, { size: "xs", color: "muted", children: "In-app notifications are always on. Enable external channels below to let the platform fan out to email, WhatsApp, or SMS. Users can further restrict which types they receive." }), _jsxs(Stack, { gap: "xs", surface: "muted", rounded: "lg", border: "default", padding: "md", children: [_jsxs(Row, { justify: "between", gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "In-app (notification bell)" }), _jsx(Span, { color: "success", surface: "success-surface", size: "xs", weight: "semibold", rounded: "full", padding: "pill-xs", children: "Always on" })] }), _jsx(Text, { size: "xs", color: "muted", children: "Displayed in the notification bell and inbox. Cannot be disabled." })] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "Email notifications", checked: notifEmailEnabled, onChange: setNotifEmailEnabled }), notifEmailEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send email", options: PRIORITY_OPTIONS, value: notifEmailMinPriority, onValueChange: setNotifEmailMinPriority }), _jsx(Text, { size: "xs", weight: "medium", color: "muted", className: "pt-[0.25rem]", children: "Resend API (for transactional email)" }), _jsx(MaskedInput, { label: "Resend API Key", value: resendApiKey, onChange: setResendApiKey, placeholder: "re_live_\u2026", helperText: "Get your key at resend.com \u2014 used for all transactional notifications." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "From email", value: notifFromEmail, onChange: (e) => setNotifFromEmail(e.target.value), placeholder: "noreply@letitrip.in", type: "email" }), _jsx(Input, { label: "From name", value: notifFromName, onChange: (e) => setNotifFromName(e.target.value), placeholder: "LetItRip" })] })] }))] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "WhatsApp notifications", checked: notifWhatsappEnabled, onChange: setNotifWhatsappEnabled }), notifWhatsappEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send WhatsApp", options: PRIORITY_OPTIONS, value: notifWhatsappMinPriority, onValueChange: setNotifWhatsappMinPriority }), _jsx(Toggle, { label: "Enable WhatsApp OTP (for login and verification)", checked: notifWhatsappOtpEnabled, onChange: setNotifWhatsappOtpEnabled }), _jsx(Text, { size: "xs", color: "muted", children: "WhatsApp credentials are configured in the WhatsApp tab (\u246C). OTP messages use the same phone number." })] }))] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "SMS notifications", checked: notifSmsEnabled, onChange: setNotifSmsEnabled }), notifSmsEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send SMS", options: PRIORITY_OPTIONS, value: notifSmsMinPriority, onValueChange: setNotifSmsMinPriority }), _jsx(Text, { size: "xs", color: "muted", children: "SMS gateway credentials (e.g. Twilio, MSG91) can be configured in the Integrations tab once an SMS provider is connected." })] }))] }), _jsx(GroupSaveButton, { isPending: notifChannelsMutation.isPending })] }) }), _jsx(TabsContent, { value: "legal", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); legalMutation.mutate(); }, className: "pt-4", spacing: "md", children: [[
416
+ }, className: "pt-4", spacing: "md", children: [_jsx(ThemeManagerView, { value: themeRegistry, onChange: setThemeRegistry, previewOrigin: "/" }), _jsx(GroupSaveButton, { isPending: themeMutation.isPending })] }) }), _jsx(TabsContent, { value: "announcement", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); announcementMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Toggle, { label: "Show announcement bar", checked: announcementEnabled, onChange: setAnnouncementEnabled }), _jsx(Input, { label: "Announcement text", value: announcementText, onChange: (e) => setAnnouncementText(e.target.value), placeholder: "\uD83C\uDF89 Free shipping on orders \u20B9999+", disabled: !announcementEnabled }), _jsx(Input, { label: "Link URL (optional)", value: announcementLink, onChange: (e) => setAnnouncementLink(e.target.value), placeholder: "/products", disabled: !announcementEnabled }), _jsxs(Stack, { gap: "none", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", className: "mb-1", children: "Background color" }), _jsx(Input, { type: "color", value: announcementBg || "#1d4ed8", onChange: (e) => setAnnouncementBg(e.target.value), className: "h-10 w-32 cursor-pointer", bare: true, disabled: !announcementEnabled }), " "] }), _jsx(GroupSaveButton, { isPending: announcementMutation.isPending })] }) }), _jsx(TabsContent, { value: "seo", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); seoMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Default meta title", value: seoTitle, onChange: (e) => setSeoTitle(e.target.value), placeholder: "LetItRip \u2014 Buy, Sell & Auction Collectibles in India", maxLength: 60, helperText: "Max 60 chars. Use {page} token for dynamic insertion." }), _jsx(Input, { label: "Default meta description", value: seoDescription, onChange: (e) => setSeoDescription(e.target.value), placeholder: "India's largest collectibles marketplace\u2026", maxLength: 160, helperText: "Max 160 chars." }), _jsx(ImageUpload, { label: "Default OG image", currentImage: seoOgImage, onUpload: (file) => upload(file, "store"), onChange: setSeoOgImage }), _jsx(Input, { label: "Canonical base URL", value: canonicalUrl, onChange: (e) => setCanonicalUrl(e.target.value), placeholder: "https://letitrip.in" }), _jsx(Toggle, { label: "Robots noindex (disables search indexing \u2014 use carefully)", checked: seoNoIndex, onChange: setSeoNoIndex }), _jsx(GroupSaveButton, { isPending: seoMutation.isPending })] }) }), _jsx(TabsContent, { value: "contact", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); contactMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Support email", value: supportEmail, onChange: (e) => setSupportEmail(e.target.value), type: "email", placeholder: "support@letitrip.in" }), _jsx(Input, { label: "Support phone", value: supportPhone, onChange: (e) => setSupportPhone(e.target.value), placeholder: "+91 XXXXX XXXXX" })] }), _jsx(Input, { label: "Physical address", value: supportAddress, onChange: (e) => setSupportAddress(e.target.value), placeholder: "Mumbai, Maharashtra, India" }), _jsx(Input, { label: "Support hours", value: supportHours, onChange: (e) => setSupportHours(e.target.value), placeholder: "Mon\u2013Fri, 10 AM \u2013 6 PM IST" }), _jsx(Text, { className: "pt-[0.5rem]", color: "muted", size: "sm", weight: "medium", children: "Social links" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Instagram URL", value: instagram, onChange: (e) => setInstagram(e.target.value), placeholder: "https://instagram.com/letitrip" }), _jsx(Input, { label: "Twitter / X URL", value: twitter, onChange: (e) => setTwitter(e.target.value), placeholder: "https://twitter.com/letitrip" }), _jsx(Input, { label: "Facebook URL", value: facebook, onChange: (e) => setFacebook(e.target.value), placeholder: "https://facebook.com/letitrip" }), _jsx(Input, { label: "YouTube URL", value: youtube, onChange: (e) => setYoutube(e.target.value), placeholder: "https://youtube.com/@letitrip" }), _jsx(Input, { label: "WhatsApp number", value: whatsapp, onChange: (e) => setWhatsapp(e.target.value), placeholder: "+91XXXXXXXXXX" }), _jsx(Input, { label: "LinkedIn URL", value: linkedin, onChange: (e) => setLinkedin(e.target.value), placeholder: "https://linkedin.com/company/letitrip" }), _jsx(Input, { label: "Pinterest URL", value: pinterest, onChange: (e) => setPinterest(e.target.value), placeholder: "https://pinterest.com/letitrip" })] }), _jsx(GroupSaveButton, { isPending: contactMutation.isPending })] }) }), _jsx(TabsContent, { value: "watermark", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); watermarkMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Select, { label: "Watermark type", options: [{ label: "Text", value: "text" }, { label: "Image", value: "image" }], value: watermarkType, onValueChange: (v) => setWatermarkType(v) }), watermarkType === "text" ? (_jsx(Input, { label: "Watermark text", value: watermarkText, onChange: (e) => setWatermarkText(e.target.value), placeholder: "letitrip.in" })) : (_jsx(ImageUpload, { label: "Watermark image", currentImage: watermarkImageUrl, onUpload: (file) => upload(file, "store"), onChange: setWatermarkImageUrl })), _jsx(Slider, { label: `Size — ${watermarkSize}% of image width`, value: watermarkSize, onChange: setWatermarkSize, min: 5, max: 100, step: 5 }), _jsx(Slider, { label: `Opacity — ${watermarkOpacity}%`, value: watermarkOpacity, onChange: setWatermarkOpacity, min: 5, max: 100, step: 5 }), _jsxs(Stack, { gap: "xs", surface: "muted", rounded: "lg", border: "default", padding: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Preview (text watermark only)" }), _jsx(Row, { surface: "default", justify: "end", align: "end", className: `relative h-32 ${__O.hidden}`, rounded: "default", children: _jsx("span", { ref: watermarkPreviewRef, className: "select-none font-medium p-1 text-[var(--appkit-color-text-faint)]", children: watermarkText }) })] }), _jsx(GroupSaveButton, { isPending: watermarkMutation.isPending })] }) }), _jsx(TabsContent, { value: "fees", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); feesMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Platform fee \u2014 our cut (%)", helperText: "% charged on order value. Buyer pays this.", value: String(platformFeePercent), onChange: (e) => setPlatformFeePercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 100, step: 0.1 }), _jsx(Input, { label: "GST on platform fee (%)", helperText: "Applied to our fee only (not full order). Usually 18%.", value: String(gstPercent), onChange: (e) => setGstPercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 100, step: 0.1 }), _jsx(Input, { label: "Razorpay gateway cost (%)", helperText: "Gateway's own fee \u2014 absorbed by platform, not passed through.", value: String(gatewayFeePercent), onChange: (e) => setGatewayFeePercent(parseFloat(e.target.value) || 0), type: "number", min: 0, max: 10, step: 0.01 }), _jsx(Input, { label: "Minimum transaction fee (\u20B9)", helperText: "Per-transaction floor. Total charge will never be below base + this.", value: String(minimumTransactionFee), onChange: (e) => setMinimumTransactionFee(parseFloat(e.target.value) || 0), type: "number", min: 0, step: 0.01 }), _jsx(Input, { label: "Seller payout hold (days)", value: String(payoutHoldDays), onChange: (e) => setPayoutHoldDays(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Minimum payout amount (\u20B9)", value: String(minPayoutAmount), onChange: (e) => setMinPayoutAmount(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Auction listing fee (\u20B9)", value: String(auctionListingFee), onChange: (e) => setAuctionListingFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Pre-order listing fee (\u20B9)", value: String(preOrderListingFee), onChange: (e) => setPreOrderListingFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Featured slot fee (\u20B9)", value: String(featuredSlotFee), onChange: (e) => setFeaturedSlotFee(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Promoted slot fee (\u20B9)", value: String(promotedSlotFee), onChange: (e) => setPromotedSlotFee(parseInt(e.target.value) || 0), type: "number", min: 0 })] }), _jsx(GroupSaveButton, { isPending: feesMutation.isPending })] }) }), _jsx(TabsContent, { value: "integrations", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); integrationsMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Keys are masked in transit and stored encrypted. Click Reveal to view." }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Razorpay" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Razorpay Key ID", value: razorpayKeyId, onChange: setRazorpayKeyId, placeholder: "rzp_live_\u2026" }), _jsx(MaskedInput, { label: "Razorpay Secret", value: razorpaySecret, onChange: setRazorpaySecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "SMTP / Email" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "SMTP host", value: smtpHost, onChange: (e) => setSmtpHost(e.target.value), placeholder: "smtp.sendgrid.net" }), _jsx(Input, { label: "SMTP port", value: smtpPort, onChange: (e) => setSmtpPort(e.target.value), type: "number", placeholder: "587" }), _jsx(Input, { label: "SMTP user", value: smtpUser, onChange: (e) => setSmtpUser(e.target.value), placeholder: "apikey" }), _jsx(MaskedInput, { label: "SMTP password", value: smtpPassword, onChange: setSmtpPassword, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] }), _jsx(Input, { label: "From address", value: smtpFrom, onChange: (e) => setSmtpFrom(e.target.value), placeholder: "noreply@letitrip.in", type: "email" })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Analytics & Tracking" }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Google Analytics ID", value: gaMeasurementId, onChange: (e) => setGaMeasurementId(e.target.value), placeholder: "G-XXXXXXXXXX" }), _jsx(Input, { label: "Facebook Pixel ID", value: fbPixelId, onChange: (e) => setFbPixelId(e.target.value), placeholder: "XXXXXXXXXXXXXXXX" }), _jsx(Input, { label: "GTM Container ID", value: gtmContainerId, onChange: (e) => setGtmContainerId(e.target.value), placeholder: "GTM-XXXXXXX" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Meta (Instagram & Facebook Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Used by the Social Feed section to fetch Instagram and Facebook posts via Meta Graph API v19." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Page Access Token", value: metaPageAccessToken, onChange: setMetaPageAccessToken, placeholder: "EAAxxxxxxx\u2026" }), _jsx(Input, { label: "Page ID (or handle)", value: metaPageId, onChange: (e) => setMetaPageId(e.target.value), placeholder: "letitrip" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "TikTok for Developers (Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Client credentials + long-lived access token from TikTok for Developers. Used to list your account's public videos." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Client Key", value: tiktokClientKey, onChange: setTiktokClientKey, placeholder: "aw\u2026" }), _jsx(MaskedInput, { label: "Client Secret", value: tiktokClientSecret, onChange: setTiktokClientSecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" }), _jsx(MaskedInput, { label: "Access Token (long-lived)", value: tiktokAccessToken, onChange: setTiktokAccessToken, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsxs(Stack, { gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "DeviantArt OAuth2 (Social Feed)" }), _jsx(Text, { size: "xs", color: "muted", children: "Client credentials for DeviantArt gallery fetching (client-credentials OAuth2 flow \u2014 no user login required)." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(MaskedInput, { label: "Client ID", value: deviantartClientId, onChange: setDeviantartClientId, placeholder: "1234" }), _jsx(MaskedInput, { label: "Client Secret", value: deviantartClientSecret, onChange: setDeviantartClientSecret, placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022" })] })] }), _jsx(GroupSaveButton, { isPending: integrationsMutation.isPending })] }) }), _jsx(TabsContent, { value: "shipping", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); shippingMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "Payment methods" }), _jsx(Toggle, { label: "Razorpay (online card/UPI) enabled \u2014 disabled by default, manual payment is the default", checked: razorpayEnabled, onChange: setRazorpayEnabled }), _jsx(Toggle, { label: "Manual UPI/bank transfer enabled", checked: upiManualEnabled, onChange: setUpiManualEnabled }), _jsx(Toggle, { label: "Cash on delivery (COD) enabled", checked: codEnabled, onChange: setCodEnabled }), _jsx(Input, { label: "Free shipping threshold (\u20B9)", value: String(freeShippingThreshold), onChange: (e) => setFreeShippingThreshold(parseInt(e.target.value) || 0), type: "number", min: 0, helperText: "Orders above this amount get free shipping." }), _jsx(Select, { label: "Default carrier", options: CARRIER_OPTIONS, value: defaultCarrier, onValueChange: setDefaultCarrier }), _jsx(Input, { label: "Max delivery radius (km, 0 = no limit)", value: String(maxDeliveryRadius), onChange: (e) => setMaxDeliveryRadius(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(GroupSaveButton, { isPending: shippingMutation.isPending })] }) }), _jsx(TabsContent, { value: "auction", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); auctionMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Input, { label: "Minimum bid increment (\u20B9)", value: String(minBidIncrement), onChange: (e) => setMinBidIncrement(parseInt(e.target.value) || 0), type: "number", min: 1, helperText: "Global default \u2014 individual auctions may override." }), _jsx(Input, { label: "Auto-extend window (minutes before end)", value: String(autoExtendWindow), onChange: (e) => setAutoExtendWindow(parseInt(e.target.value) || 0), type: "number", min: 0, helperText: "Extend auction end time if a bid arrives within this window." }), _jsx(Input, { label: "Settlement grace period (hours)", value: String(settlementGrace), onChange: (e) => setSettlementGrace(parseInt(e.target.value) || 0), type: "number", min: 1, helperText: "Time winner has to pay before the auction is re-listed." }), _jsx(GroupSaveButton, { isPending: auctionMutation.isPending })] }) }), _jsx(TabsContent, { value: "limits", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); limitsMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "Max products per store", value: String(maxProductsPerStore), onChange: (e) => setMaxProductsPerStore(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max images per product", value: String(maxImagesPerProduct), onChange: (e) => setMaxImagesPerProduct(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max video size (MB)", value: String(maxVideoSizeMb), onChange: (e) => setMaxVideoSizeMb(parseInt(e.target.value) || 0), type: "number", min: 1 }), _jsx(Input, { label: "Max custom fields per product", value: String(maxCustomFields), onChange: (e) => setMaxCustomFields(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Max custom sections per product", value: String(maxCustomSections), onChange: (e) => setMaxCustomSections(parseInt(e.target.value) || 0), type: "number", min: 0 }), _jsx(Input, { label: "Order cancellation window (hours)", value: String(orderCancelWindow), onChange: (e) => setOrderCancelWindow(parseInt(e.target.value) || 0), type: "number", min: 0 })] }), _jsx(GroupSaveButton, { isPending: limitsMutation.isPending })] }) }), _jsx(TabsContent, { value: "whatsapp", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); whatsappMutation.mutate(); }, className: "pt-4", spacing: "md", children: [_jsx(Text, { size: "xs", color: "muted", children: "Platform-level WhatsApp Business Cloud API credentials. Used for automated purchase announcements to admin numbers when orders are placed. Store owners configure their own credentials in Store \u2192 WhatsApp." }), _jsx(Input, { label: "Phone Number ID", value: waPhoneNumberId, onChange: (e) => setWaPhoneNumberId(e.target.value), placeholder: "987654321098765", helperText: "From Meta for Developers \u2192 App \u2192 WhatsApp \u2192 API Setup" }), _jsx(MaskedInput, { label: "Cloud API System User Token", value: waCloudApiToken, onChange: setWaCloudApiToken, placeholder: "EAAxxxxxxxx\u2026", helperText: "Long-lived system user access token with WhatsApp Business permissions" }), _jsx(Input, { label: "Admin Notify Numbers", value: waAdminNotifyNumbers, onChange: (e) => setWaAdminNotifyNumbers(e.target.value), placeholder: "919876543210,918765432109", helperText: "Comma-separated, digits-only, include country code. These receive a WhatsApp message when any order is placed." }), _jsx(GroupSaveButton, { isPending: whatsappMutation.isPending })] }) }), _jsx(TabsContent, { value: "notifications", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); notifChannelsMutation.mutate(); }, className: "pt-4", spacing: "lg", children: [_jsx(Text, { size: "xs", color: "muted", children: "In-app notifications are always on. Enable external channels below to let the platform fan out to email, WhatsApp, or SMS. Users can further restrict which types they receive." }), _jsxs(Stack, { gap: "xs", surface: "muted", rounded: "lg", border: "default", padding: "md", children: [_jsxs(Row, { justify: "between", gap: "sm", children: [_jsx(Text, { size: "sm", weight: "medium", color: "muted", children: "In-app (notification bell)" }), _jsx(Span, { color: "success", surface: "success-surface", size: "xs", weight: "semibold", rounded: "full", padding: "pill-xs", children: "Always on" })] }), _jsx(Text, { size: "xs", color: "muted", children: "Displayed in the notification bell and inbox. Cannot be disabled." })] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "Email notifications", checked: notifEmailEnabled, onChange: setNotifEmailEnabled }), notifEmailEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send email", options: PRIORITY_OPTIONS, value: notifEmailMinPriority, onValueChange: setNotifEmailMinPriority }), _jsx(Text, { size: "xs", weight: "medium", color: "muted", className: "pt-[0.25rem]", children: "Resend API (for transactional email)" }), _jsx(MaskedInput, { label: "Resend API Key", value: resendApiKey, onChange: setResendApiKey, placeholder: "re_live_\u2026", helperText: "Get your key at resend.com \u2014 used for all transactional notifications." }), _jsxs(Grid, { cols: 2, gap: "md", children: [_jsx(Input, { label: "From email", value: notifFromEmail, onChange: (e) => setNotifFromEmail(e.target.value), placeholder: "noreply@letitrip.in", type: "email" }), _jsx(Input, { label: "From name", value: notifFromName, onChange: (e) => setNotifFromName(e.target.value), placeholder: "LetItRip" })] })] }))] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "WhatsApp notifications", checked: notifWhatsappEnabled, onChange: setNotifWhatsappEnabled }), notifWhatsappEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send WhatsApp", options: PRIORITY_OPTIONS, value: notifWhatsappMinPriority, onValueChange: setNotifWhatsappMinPriority }), _jsx(Toggle, { label: "Enable WhatsApp OTP (for login and verification)", checked: notifWhatsappOtpEnabled, onChange: setNotifWhatsappOtpEnabled }), _jsx(Text, { size: "xs", color: "muted", children: "WhatsApp credentials are configured in the WhatsApp tab (\u246C). OTP messages use the same phone number." })] }))] }), _jsxs(Stack, { gap: "md", rounded: "lg", border: "default", padding: "md", children: [_jsx(Toggle, { label: "SMS notifications", checked: notifSmsEnabled, onChange: setNotifSmsEnabled }), notifSmsEnabled && (_jsxs(Stack, { gap: "md", className: NOTIF_CHANNEL_INDENT, children: [_jsx(Select, { label: "Minimum priority to send SMS", options: PRIORITY_OPTIONS, value: notifSmsMinPriority, onValueChange: setNotifSmsMinPriority }), _jsx(Text, { size: "xs", color: "muted", children: "SMS gateway credentials (e.g. Twilio, MSG91) can be configured in the Integrations tab once an SMS provider is connected." })] }))] }), _jsx(GroupSaveButton, { isPending: notifChannelsMutation.isPending })] }) }), _jsx(TabsContent, { value: "legal", children: _jsxs(Form, { onSubmit: (e) => { e.preventDefault(); legalMutation.mutate(); }, className: "pt-4", spacing: "md", children: [[
412
417
  ["Terms of Service", termsHtml, setTermsHtml],
413
418
  ["Privacy Policy", privacyHtml, setPrivacyHtml],
414
419
  ["Refund Policy", refundHtml, setRefundHtml],
@@ -7,4 +7,4 @@ export interface AdminSiteViewProps extends Omit<StackedViewShellProps, "section
7
7
  renderTabs?: () => React.ReactNode;
8
8
  renderForm?: () => React.ReactNode;
9
9
  }
10
- export declare function AdminSiteView({ labels, renderTabs, renderForm, ...rest }: AdminSiteViewProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function AdminSiteView({ labels, renderTabs, renderForm, ...rest }: AdminSiteViewProps): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { ListingLayoutProps } from "../../../ui";
3
+ export type AdminStickersViewProps = ListingLayoutProps;
4
+ export declare function AdminStickersView({ children, ...props }: AdminStickersViewProps): React.JSX.Element;
@@ -0,0 +1,45 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ /**
4
+ * AdminStickersView — admin browse of sticker listings (EMI/art-stickers session).
5
+ * Mirrors AdminClassifiedView's thin config-driven pattern.
6
+ */
7
+ import { sortBy } from "@mohasinac/appkit";
8
+ import React from "react";
9
+ import { ListingLayout } from "../../../ui";
10
+ import { ADMIN_ENDPOINTS } from "../../../constants/api-endpoints";
11
+ import { toRecordArray, toRelativeDate, toRupees, toStringValue, } from "../hooks/useAdminListingData";
12
+ import { DataListingView } from "./DataListingView";
13
+ const ADMIN_STICKERS_CONFIG = {
14
+ portal: "admin",
15
+ title: "Stickers",
16
+ searchPlaceholder: "Search stickers by name or seller",
17
+ emptyLabel: "No sticker listings",
18
+ filterKeys: [],
19
+ defaultSort: sortBy("createdAt", "DESC"),
20
+ queryKey: ["admin", "stickers", "listing"],
21
+ endpoint: ADMIN_ENDPOINTS.PRODUCTS,
22
+ sortOptions: [
23
+ { value: sortBy("createdAt", "DESC"), label: "Newest" },
24
+ { value: sortBy("createdAt", "ASC"), label: "Oldest" },
25
+ { value: "title", label: "Title A–Z" },
26
+ ],
27
+ mapRows: (response) => toRecordArray(response.items).map((item, index) => ({
28
+ id: toStringValue(item.id, `stickers-${index}`),
29
+ primary: toStringValue(item.title ?? item.productTitle, "Untitled sticker listing"),
30
+ secondary: [
31
+ toStringValue(item.sellerName, "Unknown seller"),
32
+ toRupees(item.price),
33
+ ].join(" · "),
34
+ status: toStringValue(item.status, "draft"),
35
+ updatedAt: toRelativeDate(item.updatedAt ?? item.createdAt),
36
+ })),
37
+ getTotal: (response, mappedRows) => typeof response.total === "number" ? response.total : mappedRows.length,
38
+ buildFilters: () => "listingType==stickers",
39
+ };
40
+ export function AdminStickersView({ children, ...props }) {
41
+ if (React.Children.count(children) > 0) {
42
+ return (_jsx(ListingLayout, { portal: "admin", ...props, children: children }));
43
+ }
44
+ return _jsx(DataListingView, { config: ADMIN_STICKERS_CONFIG });
45
+ }
@@ -2,4 +2,4 @@ import React from "react";
2
2
  export interface AdminStoreAddressesViewProps {
3
3
  children?: React.ReactNode;
4
4
  }
5
- export declare function AdminStoreAddressesView(_props: AdminStoreAddressesViewProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function AdminStoreAddressesView(_props: AdminStoreAddressesViewProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  export interface AdminStoreEditorViewProps {
2
3
  open: boolean;
3
4
  onClose: () => void;
@@ -7,4 +8,4 @@ export interface AdminStoreEditorViewProps {
7
8
  currentIsVerified?: boolean;
8
9
  currentCapabilities?: string[];
9
10
  }
10
- export declare function AdminStoreEditorView({ open, onClose, storeId, storeName, currentStatus, currentIsVerified, currentCapabilities, }: AdminStoreEditorViewProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function AdminStoreEditorView({ open, onClose, storeId, storeName, currentStatus, currentIsVerified, currentCapabilities, }: AdminStoreEditorViewProps): React.JSX.Element;
@@ -1 +1,2 @@
1
- export declare function AdminStoresGuideView(): import("react/jsx-runtime").JSX.Element;
1
+ import React from "react";
2
+ export declare function AdminStoresGuideView(): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { ListingLayoutProps } from "../../../ui";
2
3
  export type AdminStoresViewProps = ListingLayoutProps;
3
- export declare function AdminStoresView({ children, ...props }: AdminStoresViewProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function AdminStoresView({ children, ...props }: AdminStoresViewProps): React.JSX.Element;
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  interface AdminSublistingCategoriesViewProps {
2
3
  onBulkDelete?: (ids: string[]) => Promise<void>;
3
4
  }
4
- export declare function AdminSublistingCategoriesView({ onBulkDelete, }: AdminSublistingCategoriesViewProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function AdminSublistingCategoriesView({ onBulkDelete, }: AdminSublistingCategoriesViewProps): React.JSX.Element;
5
6
  export {};
@@ -1,7 +1,8 @@
1
+ import React from "react";
1
2
  import type { StackedViewShellProps } from "../../../ui";
2
3
  export interface AdminSublistingCategoryEditorViewProps extends Omit<StackedViewShellProps, "sections"> {
3
4
  categoryId?: string;
4
5
  onSaved?: (id: string) => void;
5
6
  onDeleted?: () => void;
6
7
  }
7
- export declare function AdminSublistingCategoryEditorView({ categoryId, onSaved, onDeleted, ...rest }: AdminSublistingCategoryEditorViewProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function AdminSublistingCategoryEditorView({ categoryId, onSaved, onDeleted, ...rest }: AdminSublistingCategoryEditorViewProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  interface TicketMessageClient {
2
3
  id?: string;
3
4
  authorId?: string;
@@ -28,5 +29,5 @@ export interface AdminSupportTicketDetailViewProps {
28
29
  /** ST-6 — current relatedParties snapshot from the ticket document. */
29
30
  relatedParties?: RelatedPartiesClient;
30
31
  }
31
- export declare function AdminSupportTicketDetailView({ open, onClose, ticketId, subject, userDisplayName, category, currentStatus, currentPriority, description, messages, internalNotes, orderId, relatedParties, }: AdminSupportTicketDetailViewProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function AdminSupportTicketDetailView({ open, onClose, ticketId, subject, userDisplayName, category, currentStatus, currentPriority, description, messages, internalNotes, orderId, relatedParties, }: AdminSupportTicketDetailViewProps): React.JSX.Element;
32
33
  export {};
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { ListingLayoutProps } from "../../../ui";
2
3
  export type AdminSupportTicketsViewProps = ListingLayoutProps;
3
- export declare function AdminSupportTicketsView({ children, ...props }: AdminSupportTicketsViewProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function AdminSupportTicketsView({ children, ...props }: AdminSupportTicketsViewProps): React.JSX.Element;
@@ -1 +1,2 @@
1
- export declare function AdminTeamGuideView(): import("react/jsx-runtime").JSX.Element;
1
+ import React from "react";
2
+ export declare function AdminTeamGuideView(): React.JSX.Element;
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  import type { ListingLayoutProps } from "../../../ui";
2
3
  export interface AdminTeamViewProps extends ListingLayoutProps {
3
4
  onBulkRemove?: (ids: string[]) => Promise<void>;
4
5
  }
5
- export declare function AdminTeamView({ children, onBulkRemove, ...props }: AdminTeamViewProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function AdminTeamView({ children, onBulkRemove, ...props }: AdminTeamViewProps): React.JSX.Element;
@@ -5,4 +5,4 @@ export interface AdminTopBarProps {
5
5
  renderSearch?: (value: string, onChange: (v: string) => void) => React.ReactNode;
6
6
  className?: string;
7
7
  }
8
- export declare function AdminTopBar({ renderLeft, renderRight, renderSearch, className }: AdminTopBarProps): import("react/jsx-runtime").JSX.Element;
8
+ export declare function AdminTopBar({ renderLeft, renderRight, renderSearch, className }: AdminTopBarProps): React.JSX.Element;
@@ -1 +1,2 @@
1
- export declare function AdminTrustGuideView(): import("react/jsx-runtime").JSX.Element;
1
+ import React from "react";
2
+ export declare function AdminTrustGuideView(): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  interface SoftBanEntry {
2
3
  action: string;
3
4
  reason: string;
@@ -32,5 +33,5 @@ export interface AdminUserEditorViewProps {
32
33
  linkedin?: string;
33
34
  };
34
35
  }
35
- export declare function AdminUserEditorView({ open, onClose, userId, displayName, currentRole, currentIsDisabled, currentEmailVerified, ownedStoreId, ownedStoreName, currentSoftBans, currentIsHardBanned, currentHardBanReason, currentPhoneNumber, currentBio, currentLocation, currentWebsite, currentSocialLinks, }: AdminUserEditorViewProps): import("react/jsx-runtime").JSX.Element;
36
+ export declare function AdminUserEditorView({ open, onClose, userId, displayName, currentRole, currentIsDisabled, currentEmailVerified, ownedStoreId, ownedStoreName, currentSoftBans, currentIsHardBanned, currentHardBanReason, currentPhoneNumber, currentBio, currentLocation, currentWebsite, currentSocialLinks, }: AdminUserEditorViewProps): React.JSX.Element;
36
37
  export {};
@@ -1 +1,2 @@
1
- export declare function AdminUsersGuideView(): import("react/jsx-runtime").JSX.Element;
1
+ import React from "react";
2
+ export declare function AdminUsersGuideView(): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { ListingLayoutProps } from "../../../ui";
2
3
  export type AdminUsersViewProps = ListingLayoutProps;
3
- export declare function AdminUsersView({ children, ...props }: AdminUsersViewProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function AdminUsersView({ children, ...props }: AdminUsersViewProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { AdminListingScaffoldRow } from "./DataListingView";
2
3
  interface AdminViewCardsProps {
3
4
  rows: AdminListingScaffoldRow[];
@@ -8,5 +9,5 @@ interface AdminViewCardsProps {
8
9
  selectedIdSet?: Set<string>;
9
10
  onToggleSelect?: (id: string) => void;
10
11
  }
11
- export declare function AdminViewCards({ rows, view, isLoading, emptyLabel, onRowClick, selectedIdSet, onToggleSelect, }: AdminViewCardsProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function AdminViewCards({ rows, view, isLoading, emptyLabel, onRowClick, selectedIdSet, onToggleSelect, }: AdminViewCardsProps): React.JSX.Element;
12
13
  export {};
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { ListingLayoutProps } from "../../../ui";
2
3
  export type AdminWishlistsViewProps = ListingLayoutProps;
3
- export declare function AdminWishlistsView({ children, ...props }: AdminWishlistsViewProps): import("react/jsx-runtime").JSX.Element;
4
+ export declare function AdminWishlistsView({ children, ...props }: AdminWishlistsViewProps): React.JSX.Element;
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  export interface BrandQuickCreateFormProps {
2
3
  onSaved: (id: string, name: string) => void;
3
4
  onCancel: () => void;
4
5
  }
5
- export declare function BrandQuickCreateForm({ onSaved, onCancel }: BrandQuickCreateFormProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function BrandQuickCreateForm({ onSaved, onCancel }: BrandQuickCreateFormProps): React.JSX.Element;
@@ -1,5 +1,6 @@
1
+ import React from "react";
1
2
  export interface CategoryQuickCreateFormProps {
2
3
  onSaved: (id: string, name: string) => void;
3
4
  onCancel: () => void;
4
5
  }
5
- export declare function CategoryQuickCreateForm({ onSaved, onCancel }: CategoryQuickCreateFormProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CategoryQuickCreateForm({ onSaved, onCancel }: CategoryQuickCreateFormProps): React.JSX.Element;
@@ -4,5 +4,5 @@ interface DashboardStatsGridProps {
4
4
  isLoading?: boolean;
5
5
  labels?: Partial<Record<keyof DashboardStats | string, string>>;
6
6
  }
7
- export declare function DashboardStatsGrid({ stats, isLoading, labels, }: DashboardStatsGridProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function DashboardStatsGrid({ stats, isLoading, labels, }: DashboardStatsGridProps): import("react").JSX.Element;
8
8
  export {};
@@ -120,4 +120,4 @@ export declare function DataListingView<TResponse, TRow extends {
120
120
  id: string;
121
121
  }>({ config, }: {
122
122
  config: ListingViewConfig<TResponse, TRow>;
123
- }): import("react/jsx-runtime").JSX.Element;
123
+ }): React.JSX.Element;
@@ -23,5 +23,5 @@ interface DataTableProps<T extends {
23
23
  }
24
24
  export declare function DataTable<T extends {
25
25
  id: string;
26
- }>({ columns: columnsProp, rows, isLoading, sortKey, sortDir, onSort, totalPages, currentPage, onPageChange, emptyLabel, getRowHref, onRowClick, renderRowActions, selectedIds, onToggleSelect, onToggleSelectAll, }: DataTableProps<T>): import("react/jsx-runtime").JSX.Element;
26
+ }>({ columns: columnsProp, rows, isLoading, sortKey, sortDir, onSort, totalPages, currentPage, onPageChange, emptyLabel, getRowHref, onRowClick, renderRowActions, selectedIds, onToggleSelect, onToggleSelectAll, }: DataTableProps<T>): React.JSX.Element;
27
27
  export {};
@@ -8,4 +8,4 @@ export interface DemoSeedViewProps extends Omit<StackedViewShellProps, "sections
8
8
  renderLog?: () => React.ReactNode;
9
9
  isLoading?: boolean;
10
10
  }
11
- export declare function DemoSeedView({ labels, renderActions, renderLog, isLoading, ...rest }: DemoSeedViewProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function DemoSeedView({ labels, renderActions, renderLog, isLoading, ...rest }: DemoSeedViewProps): React.JSX.Element;
@@ -38,5 +38,5 @@ export interface DrawerFormFooterProps {
38
38
  variant?: "footer" | "inline";
39
39
  themeConfig?: DrawerFormFooterThemeConfig;
40
40
  }
41
- export declare function DrawerFormFooter({ onCancel, onSubmit, onDelete, isLoading, isSubmitDisabled, className, labels, variant, themeConfig, }: DrawerFormFooterProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function DrawerFormFooter({ onCancel, onSubmit, onDelete, isLoading, isSubmitDisabled, className, labels, variant, themeConfig, }: DrawerFormFooterProps): import("react").JSX.Element;
42
42
  export {};
@@ -12,4 +12,4 @@ export interface QuickActionsPanelProps {
12
12
  renderAction?: (action: QuickActionItem) => React.ReactNode;
13
13
  className?: string;
14
14
  }
15
- export declare function QuickActionsPanel({ title, actions, renderAction, className, }: QuickActionsPanelProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function QuickActionsPanel({ title, actions, renderAction, className, }: QuickActionsPanelProps): React.JSX.Element;
@@ -21,4 +21,4 @@ export interface QuickEditMenuProps {
21
21
  actions: QuickEditAction[];
22
22
  align?: "left" | "right";
23
23
  }
24
- export declare function QuickEditMenu({ actions, align }: QuickEditMenuProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function QuickEditMenu({ actions, align }: QuickEditMenuProps): React.JSX.Element;
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { AnalyticsMonthEntry } from "../../types";
2
3
  export interface AdminRevenueChartProps {
3
4
  data: AnalyticsMonthEntry[];
@@ -6,7 +7,7 @@ export interface AdminRevenueChartProps {
6
7
  };
7
8
  className?: string;
8
9
  }
9
- export declare function AdminRevenueChart({ data, labels, className, }: AdminRevenueChartProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function AdminRevenueChart({ data, labels, className, }: AdminRevenueChartProps): React.JSX.Element;
10
11
  export interface AdminOrdersChartProps {
11
12
  data: AnalyticsMonthEntry[];
12
13
  labels?: {
@@ -14,4 +15,4 @@ export interface AdminOrdersChartProps {
14
15
  };
15
16
  className?: string;
16
17
  }
17
- export declare function AdminOrdersChart({ data, labels, className, }: AdminOrdersChartProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function AdminOrdersChart({ data, labels, className, }: AdminOrdersChartProps): React.JSX.Element;
@@ -10,5 +10,5 @@ export interface AdminStatCardProps {
10
10
  gradient?: keyof typeof GRADIENTS | string;
11
11
  className?: string;
12
12
  }
13
- export declare function AdminStatCard({ label, value, sub, icon, gradient, className, }: AdminStatCardProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function AdminStatCard({ label, value, sub, icon, gradient, className, }: AdminStatCardProps): React.JSX.Element;
14
14
  export {};
@@ -14,4 +14,4 @@ export interface AdminTopProductsTableProps {
14
14
  renderProductLink?: (product: AnalyticsTopProduct) => React.ReactNode;
15
15
  className?: string;
16
16
  }
17
- export declare function AdminTopProductsTable({ products, labels, formatRevenue, renderProductLink, className, }: AdminTopProductsTableProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare function AdminTopProductsTable({ products, labels, formatRevenue, renderProductLink, className, }: AdminTopProductsTableProps): React.JSX.Element;
@@ -40,6 +40,10 @@ export { AdminDigitalCodesView } from "./AdminDigitalCodesView";
40
40
  export type { AdminDigitalCodesViewProps } from "./AdminDigitalCodesView";
41
41
  export { AdminLiveView } from "./AdminLiveView";
42
42
  export type { AdminLiveViewProps } from "./AdminLiveView";
43
+ export { AdminArtView } from "./AdminArtView";
44
+ export type { AdminArtViewProps } from "./AdminArtView";
45
+ export { AdminStickersView } from "./AdminStickersView";
46
+ export type { AdminStickersViewProps } from "./AdminStickersView";
43
47
  export { AdminGroupedListingsView } from "./AdminGroupedListingsView";
44
48
  export type { AdminGroupedListingsViewProps } from "./AdminGroupedListingsView";
45
49
  export { AdminBundlesView } from "./AdminBundlesView";
@@ -157,6 +161,8 @@ export { AdminFulfillmentView } from "./AdminFulfillmentView";
157
161
  export type { AdminFulfillmentViewProps } from "./AdminFulfillmentView";
158
162
  export { AdminAddressesView } from "./AdminAddressesView";
159
163
  export type { AdminAddressesViewProps } from "./AdminAddressesView";
164
+ export { AdminAddressBookView } from "./AdminAddressBookView";
165
+ export type { AdminAddressBookViewProps } from "./AdminAddressBookView";
160
166
  export { AdminAddressClustersView } from "./AdminAddressClustersView";
161
167
  export type { AdminAddressClustersViewProps } from "./AdminAddressClustersView";
162
168
  export { AdminPaymentMethodsView } from "./AdminPaymentMethodsView";
@@ -22,6 +22,9 @@ export { AdminPrizeDrawsView } from "./AdminPrizeDrawsView";
22
22
  export { AdminClassifiedView } from "./AdminClassifiedView";
23
23
  export { AdminDigitalCodesView } from "./AdminDigitalCodesView";
24
24
  export { AdminLiveView } from "./AdminLiveView";
25
+ // EMI/art-stickers session — admin listing views for art / stickers.
26
+ export { AdminArtView } from "./AdminArtView";
27
+ export { AdminStickersView } from "./AdminStickersView";
25
28
  export { AdminGroupedListingsView } from "./AdminGroupedListingsView";
26
29
  // S-SBUNI-4 2026-05-13 — admin bundle CRUD views.
27
30
  export { AdminBundlesView } from "./AdminBundlesView";
@@ -82,6 +85,7 @@ export { AdminScammersView } from "./AdminScammersView";
82
85
  export { AdminScammerEditorView } from "./AdminScammerEditorView";
83
86
  export { AdminFulfillmentView } from "./AdminFulfillmentView";
84
87
  export { AdminAddressesView } from "./AdminAddressesView";
88
+ export { AdminAddressBookView } from "./AdminAddressBookView";
85
89
  export { AdminAddressClustersView } from "./AdminAddressClustersView";
86
90
  export { AdminPaymentMethodsView } from "./AdminPaymentMethodsView";
87
91
  export { AdminPaymentClustersView } from "./AdminPaymentClustersView";