@mohasinac/appkit 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.d.ts +54 -18
- package/dist/client.js +29 -10
- package/dist/constants/api-endpoints.d.ts +384 -22
- package/dist/constants/api-endpoints.js +68 -13
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/core/contact-submissions.repository.d.ts +32 -0
- package/dist/core/contact-submissions.repository.js +49 -0
- package/dist/core/hooks/useSyncManager.d.ts +1 -0
- package/dist/core/hooks/useSyncManager.js +83 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +1 -0
- package/dist/core/integration-keys.d.ts +4 -0
- package/dist/core/integration-keys.js +8 -0
- package/dist/features/about/components/FAQPageView.js +9 -11
- package/dist/features/about/components/HowPayoutsWorkView.js +1 -1
- package/dist/features/about/components/PolicyPageView.js +32 -11
- package/dist/features/about/components/PublicProfileView.js +77 -11
- package/dist/features/account/components/AddressFilters.d.ts +5 -0
- package/dist/features/account/components/AddressFilters.js +20 -0
- package/dist/features/account/components/AddressesIndexListing.d.ts +6 -0
- package/dist/features/account/components/AddressesIndexListing.js +76 -0
- package/dist/features/account/components/UserOffersPanel.d.ts +8 -0
- package/dist/features/account/components/UserOffersPanel.js +81 -0
- package/dist/features/account/components/UserSettingsView.d.ts +2 -1
- package/dist/features/account/components/UserSettingsView.js +2 -1
- package/dist/features/account/components/UserSidebar.d.ts +12 -3
- package/dist/features/account/components/UserSidebar.js +64 -10
- package/dist/features/account/components/index.d.ts +2 -0
- package/dist/features/account/components/index.js +1 -0
- package/dist/features/account/hooks/useAddresses.d.ts +7 -0
- package/dist/features/account/hooks/useAddresses.js +12 -1
- package/dist/features/admin/actions/admin-actions.d.ts +1 -1
- package/dist/features/admin/actions/admin-actions.js +13 -3
- package/dist/features/admin/actions/admin-read-actions.d.ts +12 -0
- package/dist/features/admin/actions/admin-read-actions.js +18 -0
- package/dist/features/admin/components/AdminAdEditorView.js +6 -7
- package/dist/features/admin/components/AdminAllEventEntriesView.d.ts +4 -0
- package/dist/features/admin/components/AdminAllEventEntriesView.js +102 -0
- package/dist/features/admin/components/AdminBidsView.js +94 -8
- package/dist/features/admin/components/AdminBlogEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminBlogEditorView.js +162 -0
- package/dist/features/admin/components/AdminBlogView.d.ts +4 -1
- package/dist/features/admin/components/AdminBlogView.js +64 -10
- package/dist/features/admin/components/AdminBrandEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminBrandEditorView.js +104 -0
- package/dist/features/admin/components/AdminBrandsView.d.ts +4 -0
- package/dist/features/admin/components/AdminBrandsView.js +76 -0
- package/dist/features/admin/components/AdminCarouselEditorView.d.ts +8 -0
- package/dist/features/admin/components/AdminCarouselEditorView.js +204 -0
- package/dist/features/admin/components/AdminCarouselView.js +155 -20
- package/dist/features/admin/components/AdminCartsView.d.ts +4 -0
- package/dist/features/admin/components/AdminCartsView.js +82 -0
- package/dist/features/admin/components/AdminCategoriesView.d.ts +4 -1
- package/dist/features/admin/components/AdminCategoriesView.js +69 -26
- package/dist/features/admin/components/AdminCategoryEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminCategoryEditorView.js +115 -0
- package/dist/features/admin/components/AdminContactEditorView.d.ts +11 -0
- package/dist/features/admin/components/AdminContactEditorView.js +32 -0
- package/dist/features/admin/components/AdminContactView.d.ts +4 -0
- package/dist/features/admin/components/AdminContactView.js +141 -0
- package/dist/features/admin/components/AdminCouponEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminCouponEditorView.js +179 -0
- package/dist/features/admin/components/AdminCouponsView.d.ts +4 -1
- package/dist/features/admin/components/AdminCouponsView.js +57 -9
- package/dist/features/admin/components/AdminDashboardView.js +3 -0
- package/dist/features/admin/components/AdminFaqEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminFaqEditorView.js +128 -0
- package/dist/features/admin/components/AdminFaqsView.d.ts +4 -1
- package/dist/features/admin/components/AdminFaqsView.js +55 -6
- package/dist/features/admin/components/AdminFeatureFlagsView.js +33 -24
- package/dist/features/admin/components/AdminListingScaffold.d.ts +17 -2
- package/dist/features/admin/components/AdminListingScaffold.js +14 -3
- package/dist/features/admin/components/AdminMediaView.js +18 -8
- package/dist/features/admin/components/AdminNavEditorView.d.ts +20 -0
- package/dist/features/admin/components/AdminNavEditorView.js +84 -0
- package/dist/features/admin/components/AdminNavigationView.d.ts +1 -7
- package/dist/features/admin/components/AdminNavigationView.js +84 -72
- package/dist/features/admin/components/AdminNewsletterView.d.ts +4 -0
- package/dist/features/admin/components/AdminNewsletterView.js +132 -0
- package/dist/features/admin/components/AdminNotificationsView.d.ts +4 -0
- package/dist/features/admin/components/AdminNotificationsView.js +119 -0
- package/dist/features/admin/components/AdminOrderEditorView.d.ts +8 -0
- package/dist/features/admin/components/AdminOrderEditorView.js +74 -0
- package/dist/features/admin/components/AdminOrdersView.js +64 -8
- package/dist/features/admin/components/AdminPayoutsView.js +122 -13
- package/dist/features/admin/components/AdminProductEditorView.d.ts +7 -0
- package/dist/features/admin/components/AdminProductEditorView.js +143 -0
- package/dist/features/admin/components/AdminProductsView.d.ts +4 -1
- package/dist/features/admin/components/AdminProductsView.js +124 -7
- package/dist/features/admin/components/AdminReturnRequestsView.d.ts +5 -0
- package/dist/features/admin/components/AdminReturnRequestsView.js +101 -0
- package/dist/features/admin/components/AdminReviewsView.js +140 -6
- package/dist/features/admin/components/AdminSectionsView.js +361 -472
- package/dist/features/admin/components/AdminSessionsView.d.ts +4 -0
- package/dist/features/admin/components/AdminSessionsView.js +119 -0
- package/dist/features/admin/components/AdminSidebar.d.ts +18 -3
- package/dist/features/admin/components/AdminSidebar.js +51 -4
- package/dist/features/admin/components/AdminSiteSettingsView.d.ts +7 -0
- package/dist/features/admin/components/AdminSiteSettingsView.js +319 -0
- package/dist/features/admin/components/AdminStoreAddressesView.d.ts +5 -0
- package/dist/features/admin/components/AdminStoreAddressesView.js +52 -0
- package/dist/features/admin/components/AdminStoreEditorView.d.ts +9 -0
- package/dist/features/admin/components/AdminStoreEditorView.js +55 -0
- package/dist/features/admin/components/AdminStoresView.js +62 -5
- package/dist/features/admin/components/AdminUserEditorView.d.ts +10 -0
- package/dist/features/admin/components/AdminUserEditorView.js +72 -0
- package/dist/features/admin/components/AdminUsersView.js +73 -14
- package/dist/features/admin/components/AdminWishlistsView.d.ts +4 -0
- package/dist/features/admin/components/AdminWishlistsView.js +53 -0
- package/dist/features/admin/components/BrandQuickCreateForm.d.ts +5 -0
- package/dist/features/admin/components/BrandQuickCreateForm.js +36 -0
- package/dist/features/admin/components/CategoryQuickCreateForm.d.ts +5 -0
- package/dist/features/admin/components/CategoryQuickCreateForm.js +35 -0
- package/dist/features/admin/components/DataTable.d.ts +5 -2
- package/dist/features/admin/components/DataTable.js +38 -4
- package/dist/features/admin/components/index.d.ts +53 -1
- package/dist/features/admin/components/index.js +26 -0
- package/dist/features/admin/components/sections/adminSectionsBuildParse.d.ts +48 -0
- package/dist/features/admin/components/sections/adminSectionsBuildParse.js +653 -0
- package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +298 -0
- package/dist/features/admin/components/sections/adminSectionsTypes.js +278 -0
- package/dist/features/admin/hooks/useAdminListingData.d.ts +3 -1
- package/dist/features/admin/hooks/useAdminListingData.js +12 -7
- package/dist/features/admin/schemas/firestore.d.ts +26 -0
- package/dist/features/admin/schemas/firestore.js +1 -0
- package/dist/features/admin/server.d.ts +3 -0
- package/dist/features/admin/server.js +2 -0
- package/dist/features/admin/types/product.types.d.ts +2 -3
- package/dist/features/auctions/actions/bid-actions.js +6 -2
- package/dist/features/auctions/components/AuctionDetailPageView.d.ts +3 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +125 -53
- package/dist/features/auctions/components/AuctionFilters.d.ts +10 -0
- package/dist/features/auctions/components/AuctionFilters.js +16 -0
- package/dist/features/auctions/components/AuctionsListView.d.ts +6 -1
- package/dist/features/auctions/components/AuctionsListView.js +37 -5
- package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +7 -0
- package/dist/features/auctions/components/CollapsibleBidHistory.js +8 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +4 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +43 -9
- package/dist/features/auctions/components/MarketplaceAuctionGrid.js +1 -0
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +18 -0
- package/dist/features/auctions/components/PlaceBidFormClient.js +33 -0
- package/dist/features/auctions/hooks/useAuctions.d.ts +1 -0
- package/dist/features/auctions/hooks/useAuctions.js +1 -0
- package/dist/features/auctions/schemas/index.d.ts +18 -8
- package/dist/features/auth/actions/profile-actions.d.ts +5 -3
- package/dist/features/auth/actions/profile-actions.js +30 -11
- package/dist/features/auth/auth-helpers.js +1 -0
- package/dist/features/auth/components/LoginForm.js +2 -1
- package/dist/features/auth/hooks/useAuth.js +16 -4
- package/dist/features/auth/permissions/constants.d.ts +63 -0
- package/dist/features/auth/permissions/constants.js +323 -0
- package/dist/features/auth/schemas/firestore.d.ts +20 -0
- package/dist/features/auth/schemas/index.d.ts +4 -4
- package/dist/features/auth/schemas/index.js +3 -2
- package/dist/features/auth/types/index.d.ts +1 -1
- package/dist/features/before-after/schemas/index.d.ts +2 -2
- package/dist/features/blog/actions/blog-actions.d.ts +15 -15
- package/dist/features/blog/components/BlogFeaturedCard.d.ts +1 -7
- package/dist/features/blog/components/BlogFeaturedCard.js +4 -5
- package/dist/features/blog/components/BlogFilters.js +2 -1
- package/dist/features/blog/components/BlogIndexListing.js +66 -9
- package/dist/features/blog/components/BlogIndexPageView.d.ts +6 -1
- package/dist/features/blog/components/BlogIndexPageView.js +24 -4
- package/dist/features/blog/components/BlogListView.d.ts +2 -1
- package/dist/features/blog/components/BlogListView.js +10 -3
- package/dist/features/blog/components/BlogPostForm.js +6 -2
- package/dist/features/blog/components/BlogPostView.js +2 -1
- package/dist/features/blog/hooks/useBlog.d.ts +2 -0
- package/dist/features/blog/hooks/useBlog.js +2 -0
- package/dist/features/blog/schemas/index.d.ts +46 -12
- package/dist/features/brands/actions/brand-actions.d.ts +2 -0
- package/dist/features/brands/actions/brand-actions.js +5 -0
- package/dist/features/brands/index.d.ts +3 -0
- package/dist/features/brands/index.js +3 -0
- package/dist/features/brands/repository/brands.repository.d.ts +13 -0
- package/dist/features/brands/repository/brands.repository.js +60 -0
- package/dist/features/brands/schemas/index.d.ts +33 -0
- package/dist/features/brands/schemas/index.js +15 -0
- package/dist/features/brands/server.d.ts +7 -0
- package/dist/features/brands/server.js +7 -0
- package/dist/features/cart/actions/cart-actions.js +2 -2
- package/dist/features/cart/components/CartDrawer.d.ts +5 -1
- package/dist/features/cart/components/CartDrawer.js +3 -3
- package/dist/features/cart/hooks/useCartCount.d.ts +3 -2
- package/dist/features/cart/hooks/useCartCount.js +4 -2
- package/dist/features/cart/hooks/useGuestCartMerge.js +1 -1
- package/dist/features/cart/index.d.ts +1 -0
- package/dist/features/cart/index.js +1 -0
- package/dist/features/cart/repository/cart.repository.d.ts +5 -1
- package/dist/features/cart/repository/cart.repository.js +36 -5
- package/dist/features/cart/schemas/firestore.d.ts +25 -6
- package/dist/features/cart/schemas/firestore.js +2 -2
- package/dist/features/cart/schemas/index.d.ts +9 -9
- package/dist/features/cart/schemas/index.js +1 -1
- package/dist/features/cart/types/index.d.ts +1 -1
- package/dist/features/cart/utils/pending-ops.d.ts +33 -0
- package/dist/features/cart/utils/pending-ops.js +102 -0
- package/dist/features/categories/components/BrandDetailPageView.d.ts +4 -0
- package/dist/features/categories/components/BrandDetailPageView.js +54 -0
- package/dist/features/categories/components/BrandDetailTabs.d.ts +10 -0
- package/dist/features/categories/components/BrandDetailTabs.js +22 -0
- package/dist/features/categories/components/CategoriesIndexListing.d.ts +3 -1
- package/dist/features/categories/components/CategoriesIndexListing.js +117 -38
- package/dist/features/categories/components/CategoriesIndexPageView.d.ts +6 -1
- package/dist/features/categories/components/CategoriesIndexPageView.js +41 -2
- package/dist/features/categories/components/CategoryDetailPageView.js +47 -19
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +11 -0
- package/dist/features/categories/components/CategoryDetailTabs.js +22 -0
- package/dist/features/categories/components/CategoryFilters.js +2 -1
- package/dist/features/categories/components/CategoryForm.js +10 -4
- package/dist/features/categories/components/CategoryGrid.d.ts +2 -1
- package/dist/features/categories/components/CategoryGrid.js +8 -6
- package/dist/features/categories/components/CategoryProductsListing.d.ts +4 -1
- package/dist/features/categories/components/CategoryProductsListing.js +53 -13
- package/dist/features/categories/components/ConcernCard.js +1 -1
- package/dist/features/categories/components/index.d.ts +2 -0
- package/dist/features/categories/components/index.js +1 -0
- package/dist/features/categories/hooks/useCategories.d.ts +20 -0
- package/dist/features/categories/hooks/useCategories.js +52 -1
- package/dist/features/categories/hooks/useCategoryTree.d.ts +17 -0
- package/dist/features/categories/hooks/useCategoryTree.js +65 -0
- package/dist/features/categories/repository/categories.repository.js +2 -3
- package/dist/features/categories/schemas/firestore.d.ts +23 -2
- package/dist/features/categories/schemas/firestore.js +8 -0
- package/dist/features/categories/schemas/index.d.ts +8 -8
- package/dist/features/categories/types/index.d.ts +1 -0
- package/dist/features/collections/schemas/index.d.ts +2 -2
- package/dist/features/events/components/AdminEventEditorView.d.ts +6 -0
- package/dist/features/events/components/AdminEventEditorView.js +203 -0
- package/dist/features/events/components/AdminEventsView.d.ts +4 -1
- package/dist/features/events/components/AdminEventsView.js +66 -14
- package/dist/features/events/components/EventCard.js +4 -2
- package/dist/features/events/components/EventFilters.js +2 -1
- package/dist/features/events/components/EventPollWidget.d.ts +12 -0
- package/dist/features/events/components/EventPollWidget.js +62 -0
- package/dist/features/events/components/EventsIndexListing.js +92 -10
- package/dist/features/events/components/EventsListPageView.d.ts +6 -1
- package/dist/features/events/components/EventsListPageView.js +40 -7
- package/dist/features/events/components/index.d.ts +4 -0
- package/dist/features/events/components/index.js +2 -0
- package/dist/features/events/hooks/useEvents.d.ts +1 -0
- package/dist/features/events/hooks/useEvents.js +3 -0
- package/dist/features/events/repository/events.repository.js +3 -0
- package/dist/features/events/schemas/firestore.d.ts +1 -0
- package/dist/features/events/schemas/index.d.ts +44 -0
- package/dist/features/events/types/index.d.ts +3 -0
- package/dist/features/faq/actions/faq-actions.d.ts +16 -16
- package/dist/features/faq/hooks/useFaqList.js +1 -1
- package/dist/features/faq/schemas/firestore.d.ts +2 -2
- package/dist/features/faq/schemas/firestore.js +2 -1
- package/dist/features/faq/schemas/index.d.ts +4 -4
- package/dist/features/filters/FilterFacetSection.d.ts +1 -0
- package/dist/features/filters/FilterFacetSection.js +13 -1
- package/dist/features/filters/SwitchFilter.js +1 -1
- package/dist/features/grouped/schemas/firestore.d.ts +32 -0
- package/dist/features/grouped/schemas/firestore.js +19 -0
- package/dist/features/homepage/components/AdSlot.d.ts +1 -3
- package/dist/features/homepage/components/AdSlot.js +15 -14
- package/dist/features/homepage/components/BlogArticlesSection.d.ts +3 -1
- package/dist/features/homepage/components/BlogArticlesSection.js +3 -3
- package/dist/features/homepage/components/BrandsSection.d.ts +3 -1
- package/dist/features/homepage/components/BrandsSection.js +4 -3
- package/dist/features/homepage/components/CustomCardsSection.d.ts +3 -0
- package/dist/features/homepage/components/CustomCardsSection.js +76 -0
- package/dist/features/homepage/components/EventsSection.d.ts +3 -1
- package/dist/features/homepage/components/EventsSection.js +3 -3
- package/dist/features/homepage/components/FeaturedAuctionsSection.d.ts +4 -1
- package/dist/features/homepage/components/FeaturedAuctionsSection.js +3 -3
- package/dist/features/homepage/components/FeaturedPreOrdersSection.d.ts +4 -1
- package/dist/features/homepage/components/FeaturedPreOrdersSection.js +3 -3
- package/dist/features/homepage/components/FeaturedProductsSection.d.ts +4 -1
- package/dist/features/homepage/components/FeaturedProductsSection.js +8 -3
- package/dist/features/homepage/components/FeaturedStoresSection.d.ts +3 -1
- package/dist/features/homepage/components/FeaturedStoresSection.js +3 -3
- package/dist/features/homepage/components/GoogleReviewsSection.d.ts +3 -0
- package/dist/features/homepage/components/GoogleReviewsSection.js +65 -0
- package/dist/features/homepage/components/HeroCarousel.js +129 -85
- package/dist/features/homepage/components/MarketplaceHomepageView.d.ts +2 -20
- package/dist/features/homepage/components/MarketplaceHomepageView.js +73 -220
- package/dist/features/homepage/components/SectionCarousel.d.ts +1 -1
- package/dist/features/homepage/components/SectionCarousel.js +6 -4
- package/dist/features/homepage/components/ShopByCategorySection.d.ts +3 -1
- package/dist/features/homepage/components/ShopByCategorySection.js +8 -4
- package/dist/features/homepage/components/SocialFeedSection.d.ts +3 -0
- package/dist/features/homepage/components/SocialFeedSection.js +86 -0
- package/dist/features/homepage/components/SocialPostCard.d.ts +7 -0
- package/dist/features/homepage/components/SocialPostCard.js +39 -0
- package/dist/features/homepage/components/StatsCounterSection.js +1 -1
- package/dist/features/homepage/components/WelcomeSection.js +1 -1
- package/dist/features/homepage/components/WhatsAppCommunitySection.js +1 -1
- package/dist/features/homepage/hooks/useActiveAd.d.ts +23 -0
- package/dist/features/homepage/hooks/useActiveAd.js +20 -0
- package/dist/features/homepage/hooks/useBlogArticles.d.ts +1 -0
- package/dist/features/homepage/hooks/useBlogArticles.js +10 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +4 -1
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +8 -4
- package/dist/features/homepage/hooks/useFeaturedPreOrders.d.ts +4 -1
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +8 -4
- package/dist/features/homepage/hooks/useFeaturedProducts.d.ts +1 -0
- package/dist/features/homepage/hooks/useFeaturedProducts.js +6 -3
- package/dist/features/homepage/hooks/useFeaturedStores.d.ts +3 -1
- package/dist/features/homepage/hooks/useFeaturedStores.js +2 -1
- package/dist/features/homepage/hooks/useHomepageEvents.d.ts +3 -1
- package/dist/features/homepage/hooks/useHomepageEvents.js +2 -1
- package/dist/features/homepage/hooks/useTopBrands.d.ts +3 -1
- package/dist/features/homepage/hooks/useTopBrands.js +2 -1
- package/dist/features/homepage/index.d.ts +2 -0
- package/dist/features/homepage/index.js +1 -0
- package/dist/features/homepage/lib/google-reviews-fetcher.d.ts +14 -0
- package/dist/features/homepage/lib/google-reviews-fetcher.js +27 -0
- package/dist/features/homepage/lib/live-stats.d.ts +14 -0
- package/dist/features/homepage/lib/live-stats.js +62 -0
- package/dist/features/homepage/lib/section-defaults.d.ts +11 -0
- package/dist/features/homepage/lib/section-defaults.js +45 -0
- package/dist/features/homepage/lib/section-helpers.d.ts +5 -0
- package/dist/features/homepage/lib/section-helpers.js +25 -0
- package/dist/features/homepage/lib/section-renderer.d.ts +33 -0
- package/dist/features/homepage/lib/section-renderer.js +164 -0
- package/dist/features/homepage/lib/social-feed-fetcher.d.ts +5 -0
- package/dist/features/homepage/lib/social-feed-fetcher.js +193 -0
- package/dist/features/homepage/schemas/firestore.d.ts +180 -29
- package/dist/features/homepage/schemas/firestore.js +7 -1
- package/dist/features/homepage/types/index.d.ts +48 -19
- package/dist/features/layout/AppLayoutShell.d.ts +11 -2
- package/dist/features/layout/AppLayoutShell.js +30 -10
- package/dist/features/layout/BottomActions.js +1 -1
- package/dist/features/layout/BottomNavbar.d.ts +15 -1
- package/dist/features/layout/BottomNavbar.js +8 -2
- package/dist/features/layout/FooterLayout.d.ts +7 -1
- package/dist/features/layout/FooterLayout.js +3 -3
- package/dist/features/layout/ListingLayout.js +2 -2
- package/dist/features/layout/MainNavbar.d.ts +6 -14
- package/dist/features/layout/MainNavbar.js +4 -16
- package/dist/features/layout/NavItem.js +1 -1
- package/dist/features/layout/NavbarLayout.d.ts +3 -1
- package/dist/features/layout/NavbarLayout.js +5 -5
- package/dist/features/layout/TitleBar.d.ts +4 -2
- package/dist/features/layout/TitleBar.js +5 -3
- package/dist/features/layout/TitleBarLayout.d.ts +3 -1
- package/dist/features/layout/TitleBarLayout.js +2 -2
- package/dist/features/layout/index.d.ts +1 -1
- package/dist/features/media/MediaPickerModal.d.ts +30 -0
- package/dist/features/media/MediaPickerModal.js +72 -0
- package/dist/features/media/index.d.ts +3 -1
- package/dist/features/media/index.js +1 -0
- package/dist/features/media/types/index.d.ts +12 -0
- package/dist/features/media/types/index.js +4 -2
- package/dist/features/media/upload/MediaUploadField.d.ts +5 -1
- package/dist/features/media/upload/MediaUploadField.js +56 -3
- package/dist/features/messages/schemas/firestore.d.ts +36 -0
- package/dist/features/messages/schemas/firestore.js +16 -0
- package/dist/features/orders/repository/orders.repository.d.ts +2 -2
- package/dist/features/orders/repository/orders.repository.js +2 -2
- package/dist/features/orders/schemas/firestore.d.ts +17 -4
- package/dist/features/orders/schemas/firestore.js +2 -2
- package/dist/features/orders/schemas/index.d.ts +18 -18
- package/dist/features/orders/schemas/index.js +3 -3
- package/dist/features/orders/types/index.d.ts +1 -1
- package/dist/features/orders/utils/order-splitter.d.ts +1 -1
- package/dist/features/orders/utils/order-splitter.js +2 -2
- package/dist/features/payments/repository/payout.repository.d.ts +4 -4
- package/dist/features/payments/repository/payout.repository.js +7 -7
- package/dist/features/payments/schemas/firestore.d.ts +6 -6
- package/dist/features/payments/schemas/firestore.js +6 -6
- package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +3 -1
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +13 -8
- package/dist/features/pre-orders/components/PreOrderActionsClient.d.ts +11 -0
- package/dist/features/pre-orders/components/PreOrderActionsClient.js +28 -0
- package/dist/features/pre-orders/components/PreOrderDetailPageView.d.ts +2 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +100 -14
- package/dist/features/pre-orders/components/PreOrderFilters.d.ts +10 -0
- package/dist/features/pre-orders/components/PreOrderFilters.js +24 -0
- package/dist/features/pre-orders/components/PreOrdersIndexListing.d.ts +4 -1
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +166 -11
- package/dist/features/pre-orders/components/PreOrdersListView.d.ts +6 -1
- package/dist/features/pre-orders/components/PreOrdersListView.js +26 -7
- package/dist/features/pre-orders/components/PreorderCard.js +1 -1
- package/dist/features/pre-orders/components/index.d.ts +2 -0
- package/dist/features/pre-orders/components/index.js +1 -0
- package/dist/features/pre-orders/schemas/index.d.ts +10 -0
- package/dist/features/products/actions/product-actions.d.ts +2 -2
- package/dist/features/products/actions/product-actions.js +5 -5
- package/dist/features/products/api/[id]/route.js +5 -2
- package/dist/features/products/api/route.js +10 -14
- package/dist/features/products/columns/productTableColumns.js +2 -2
- package/dist/features/products/components/AuctionDetailView.d.ts +2 -1
- package/dist/features/products/components/AuctionDetailView.js +2 -2
- package/dist/features/products/components/AuctionsIndexListing.d.ts +4 -1
- package/dist/features/products/components/AuctionsIndexListing.js +124 -10
- package/dist/features/products/components/BidHistory.d.ts +2 -1
- package/dist/features/products/components/BidHistory.js +18 -2
- package/dist/features/products/components/InteractiveProductCard.d.ts +2 -4
- package/dist/features/products/components/InteractiveProductCard.js +2 -2
- package/dist/features/products/components/MakeOfferButton.d.ts +10 -0
- package/dist/features/products/components/MakeOfferButton.js +68 -0
- package/dist/features/products/components/ProductDetailPageView.d.ts +11 -1
- package/dist/features/products/components/ProductDetailPageView.js +136 -26
- package/dist/features/products/components/ProductFilters.d.ts +13 -12
- package/dist/features/products/components/ProductFilters.js +8 -4
- package/dist/features/products/components/ProductForm.d.ts +19 -1
- package/dist/features/products/components/ProductForm.js +24 -6
- package/dist/features/products/components/ProductGrid.d.ts +16 -2
- package/dist/features/products/components/ProductGrid.js +80 -18
- package/dist/features/products/components/ProductTabsShell.d.ts +3 -11
- package/dist/features/products/components/ProductTabsShell.js +14 -14
- package/dist/features/products/components/ProductsIndexListing.js +160 -10
- package/dist/features/products/components/ProductsIndexPageView.d.ts +6 -1
- package/dist/features/products/components/ProductsIndexPageView.js +39 -6
- package/dist/features/products/components/RelatedProductsCarousel.d.ts +7 -0
- package/dist/features/products/components/RelatedProductsCarousel.js +11 -0
- package/dist/features/products/components/ShareButton.d.ts +7 -0
- package/dist/features/products/components/ShareButton.js +22 -0
- package/dist/features/products/components/index.d.ts +3 -0
- package/dist/features/products/components/index.js +2 -0
- package/dist/features/products/hooks/useProducts.d.ts +7 -0
- package/dist/features/products/hooks/useProducts.js +20 -2
- package/dist/features/products/repository/products.repository.d.ts +9 -5
- package/dist/features/products/repository/products.repository.js +19 -50
- package/dist/features/products/schemas/firestore.d.ts +11 -9
- package/dist/features/products/schemas/firestore.js +11 -3
- package/dist/features/products/schemas/index.d.ts +43 -42
- package/dist/features/products/schemas/index.js +2 -5
- package/dist/features/products/types/index.d.ts +24 -4
- package/dist/features/promotions/actions/coupon-actions.d.ts +2 -2
- package/dist/features/promotions/actions/coupon-actions.js +1 -1
- package/dist/features/promotions/actions/seller-coupon-actions.js +11 -6
- package/dist/features/promotions/api/route.js +3 -3
- package/dist/features/promotions/components/CouponCard.js +16 -7
- package/dist/features/promotions/components/CouponsIndexListing.d.ts +9 -0
- package/dist/features/promotions/components/CouponsIndexListing.js +80 -0
- package/dist/features/promotions/components/PromotionsView.d.ts +11 -5
- package/dist/features/promotions/components/PromotionsView.js +6 -1
- package/dist/features/promotions/components/index.d.ts +4 -2
- package/dist/features/promotions/components/index.js +2 -1
- package/dist/features/promotions/hooks/useCouponValidate.d.ts +1 -1
- package/dist/features/promotions/hooks/usePromotions.js +2 -2
- package/dist/features/promotions/repository/coupons.repository.d.ts +21 -15
- package/dist/features/promotions/repository/coupons.repository.js +97 -125
- package/dist/features/promotions/schemas/firestore.d.ts +31 -2
- package/dist/features/promotions/schemas/firestore.js +29 -0
- package/dist/features/promotions/schemas/index.d.ts +9 -12
- package/dist/features/promotions/schemas/index.js +1 -2
- package/dist/features/promotions/types/index.d.ts +1 -2
- package/dist/features/reviews/actions/review-actions.js +3 -2
- package/dist/features/reviews/components/ReviewDetailPageView.d.ts +4 -0
- package/dist/features/reviews/components/ReviewDetailPageView.js +16 -0
- package/dist/features/reviews/components/ReviewDetailShell.d.ts +7 -0
- package/dist/features/reviews/components/ReviewDetailShell.js +80 -0
- package/dist/features/reviews/components/ReviewFilters.d.ts +3 -3
- package/dist/features/reviews/components/ReviewFilters.js +5 -4
- package/dist/features/reviews/components/ReviewsIndexListing.d.ts +4 -3
- package/dist/features/reviews/components/ReviewsIndexListing.js +86 -51
- package/dist/features/reviews/components/ReviewsIndexPageView.d.ts +6 -1
- package/dist/features/reviews/components/ReviewsIndexPageView.js +49 -3
- package/dist/features/reviews/components/ReviewsList.js +9 -1
- package/dist/features/reviews/components/index.d.ts +1 -0
- package/dist/features/reviews/hooks/useReviews.d.ts +1 -0
- package/dist/features/reviews/hooks/useReviews.js +16 -1
- package/dist/features/reviews/repository/reviews.repository.d.ts +9 -4
- package/dist/features/reviews/repository/reviews.repository.js +18 -7
- package/dist/features/reviews/schemas/firestore.d.ts +5 -2
- package/dist/features/reviews/schemas/firestore.js +1 -0
- package/dist/features/reviews/schemas/index.d.ts +19 -16
- package/dist/features/reviews/schemas/index.js +3 -2
- package/dist/features/reviews/types/index.d.ts +9 -3
- package/dist/features/scams/actions/scam-actions.d.ts +29 -0
- package/dist/features/scams/actions/scam-actions.js +62 -0
- package/dist/features/scams/components/ScamProfileView.d.ts +7 -0
- package/dist/features/scams/components/ScamProfileView.js +49 -0
- package/dist/features/scams/components/ScamRegistryView.d.ts +6 -0
- package/dist/features/scams/components/ScamRegistryView.js +41 -0
- package/dist/features/scams/components/index.d.ts +4 -0
- package/dist/features/scams/components/index.js +2 -0
- package/dist/features/scams/constants/scam-types.d.ts +38 -0
- package/dist/features/scams/constants/scam-types.js +443 -0
- package/dist/features/scams/repository/scammer.repository.d.ts +67 -0
- package/dist/features/scams/repository/scammer.repository.js +160 -0
- package/dist/features/scams/schemas/firestore.d.ts +362 -0
- package/dist/features/scams/schemas/firestore.js +233 -0
- package/dist/features/search/components/Search.d.ts +12 -2
- package/dist/features/search/components/Search.js +26 -7
- package/dist/features/search/components/index.d.ts +1 -1
- package/dist/features/search/hooks/useNavSuggestions.d.ts +1 -1
- package/dist/features/search/hooks/useNavSuggestions.js +2 -2
- package/dist/features/search/schemas/index.d.ts +7 -7
- package/dist/features/seller/actions/offer-actions.js +52 -36
- package/dist/features/seller/actions/seller-actions.js +19 -13
- package/dist/features/seller/api/products/route.js +9 -4
- package/dist/features/seller/components/SellerAddressesView.d.ts +3 -12
- package/dist/features/seller/components/SellerAddressesView.js +144 -4
- package/dist/features/seller/components/SellerAuctionsView.js +58 -5
- package/dist/features/seller/components/SellerBidsView.d.ts +4 -0
- package/dist/features/seller/components/SellerBidsView.js +131 -0
- package/dist/features/seller/components/SellerCouponEditorView.d.ts +19 -0
- package/dist/features/seller/components/SellerCouponEditorView.js +67 -0
- package/dist/features/seller/components/SellerCouponsView.d.ts +5 -3
- package/dist/features/seller/components/SellerCouponsView.js +135 -13
- package/dist/features/seller/components/SellerCreateProductView.d.ts +4 -10
- package/dist/features/seller/components/SellerCreateProductView.js +4 -3
- package/dist/features/seller/components/SellerEditProductView.d.ts +4 -10
- package/dist/features/seller/components/SellerEditProductView.js +4 -3
- package/dist/features/seller/components/SellerOffersPanel.d.ts +20 -0
- package/dist/features/seller/components/SellerOffersPanel.js +138 -0
- package/dist/features/seller/components/SellerOffersView.js +56 -5
- package/dist/features/seller/components/SellerOrdersView.d.ts +2 -1
- package/dist/features/seller/components/SellerOrdersView.js +185 -16
- package/dist/features/seller/components/SellerPayoutRequestView.d.ts +7 -0
- package/dist/features/seller/components/SellerPayoutRequestView.js +63 -0
- package/dist/features/seller/components/SellerPayoutSettingsView.d.ts +3 -10
- package/dist/features/seller/components/SellerPayoutSettingsView.js +89 -3
- package/dist/features/seller/components/SellerPayoutsView.js +56 -5
- package/dist/features/seller/components/SellerProductShell.d.ts +68 -0
- package/dist/features/seller/components/SellerProductShell.js +179 -0
- package/dist/features/seller/components/SellerProductsView.d.ts +2 -3
- package/dist/features/seller/components/SellerProductsView.js +194 -18
- package/dist/features/seller/components/SellerReviewsView.d.ts +5 -0
- package/dist/features/seller/components/SellerReviewsView.js +100 -0
- package/dist/features/seller/components/SellerShippingView.d.ts +3 -11
- package/dist/features/seller/components/SellerShippingView.js +87 -3
- package/dist/features/seller/components/SellerSidebar.d.ts +18 -6
- package/dist/features/seller/components/SellerSidebar.js +54 -8
- package/dist/features/seller/components/SellerStorefrontView.d.ts +26 -11
- package/dist/features/seller/components/SellerStorefrontView.js +45 -7
- package/dist/features/seller/components/index.d.ts +45 -1
- package/dist/features/seller/components/index.js +24 -0
- package/dist/features/seller/hooks/useSellerListingData.d.ts +3 -1
- package/dist/features/seller/hooks/useSellerListingData.js +6 -4
- package/dist/features/seller/hooks/useSellerStore.d.ts +2 -0
- package/dist/features/seller/hooks/useSellerStore.js +2 -0
- package/dist/features/seller/permission-map.d.ts +4 -2
- package/dist/features/seller/permission-map.js +16 -14
- package/dist/features/seller/repository/offer.repository.d.ts +3 -3
- package/dist/features/seller/repository/offer.repository.js +6 -6
- package/dist/features/seller/schemas/firestore.d.ts +7 -7
- package/dist/features/seller/schemas/firestore.js +4 -4
- package/dist/features/seller/schemas/index.d.ts +18 -18
- package/dist/features/shell/FormShell.d.ts +29 -0
- package/dist/features/shell/FormShell.js +103 -0
- package/dist/features/shell/QuickFormDrawer.d.ts +29 -0
- package/dist/features/shell/QuickFormDrawer.js +117 -0
- package/dist/features/shell/StepForm.d.ts +44 -0
- package/dist/features/shell/StepForm.js +81 -0
- package/dist/features/shell/index.d.ts +6 -0
- package/dist/features/shell/index.js +3 -0
- package/dist/features/stores/actions/store-query-actions.js +3 -3
- package/dist/features/stores/api/[storeSlug]/auctions/route.js +1 -1
- package/dist/features/stores/api/[storeSlug]/products/route.js +1 -1
- package/dist/features/stores/api/[storeSlug]/reviews/route.d.ts +1 -1
- package/dist/features/stores/api/[storeSlug]/reviews/route.js +25 -20
- package/dist/features/stores/components/InteractiveStoreCard.d.ts +2 -7
- package/dist/features/stores/components/InteractiveStoreCard.js +24 -10
- package/dist/features/stores/components/StoreAboutView.js +1 -1
- package/dist/features/stores/components/StoreAuctionsListing.d.ts +5 -2
- package/dist/features/stores/components/StoreAuctionsListing.js +103 -12
- package/dist/features/stores/components/StoreAuctionsPageView.js +8 -7
- package/dist/features/stores/components/StoreDetailLayoutView.d.ts +1 -0
- package/dist/features/stores/components/StoreDetailLayoutView.js +30 -4
- package/dist/features/stores/components/StoreFilters.d.ts +5 -0
- package/dist/features/stores/components/StoreFilters.js +20 -0
- package/dist/features/stores/components/StoreHeader.js +3 -2
- package/dist/features/stores/components/StorePreOrdersListing.d.ts +7 -0
- package/dist/features/stores/components/StorePreOrdersListing.js +92 -0
- package/dist/features/stores/components/StorePreOrdersPageView.d.ts +4 -0
- package/dist/features/stores/components/StorePreOrdersPageView.js +22 -0
- package/dist/features/stores/components/StoreProductsListing.d.ts +5 -2
- package/dist/features/stores/components/StoreProductsListing.js +113 -14
- package/dist/features/stores/components/StoreProductsPageView.js +8 -7
- package/dist/features/stores/components/StoreReviewsListing.js +4 -9
- package/dist/features/stores/components/StoresIndexListing.js +106 -9
- package/dist/features/stores/components/StoresIndexPageView.d.ts +6 -1
- package/dist/features/stores/components/StoresIndexPageView.js +9 -2
- package/dist/features/stores/components/StoresListView.js +1 -1
- package/dist/features/stores/components/index.d.ts +3 -0
- package/dist/features/stores/components/index.js +1 -0
- package/dist/features/stores/hooks/useStores.d.ts +8 -1
- package/dist/features/stores/hooks/useStores.js +17 -3
- package/dist/features/stores/schemas/firestore.d.ts +34 -0
- package/dist/features/stores/schemas/index.d.ts +10 -10
- package/dist/features/stores/types/index.d.ts +3 -0
- package/dist/features/sublisting/schemas/firestore.d.ts +30 -0
- package/dist/features/sublisting/schemas/firestore.js +19 -0
- package/dist/features/support/schemas/firestore.d.ts +113 -0
- package/dist/features/support/schemas/firestore.js +95 -0
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +5 -0
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +143 -0
- package/dist/features/whatsapp-bot/components/index.d.ts +2 -0
- package/dist/features/whatsapp-bot/components/index.js +1 -0
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +23 -1
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +104 -0
- package/dist/features/whatsapp-bot/server.d.ts +1 -0
- package/dist/features/whatsapp-bot/server.js +1 -0
- package/dist/features/whatsapp-bot/types/index.d.ts +49 -0
- package/dist/features/wishlist/components/WishlistView.d.ts +0 -10
- package/dist/features/wishlist/components/WishlistView.js +13 -6
- package/dist/features/wishlist/hooks/useGuestWishlist.d.ts +20 -0
- package/dist/features/wishlist/hooks/useGuestWishlist.js +49 -0
- package/dist/features/wishlist/hooks/useWishlist.js +2 -0
- package/dist/features/wishlist/hooks/useWishlistCount.d.ts +15 -0
- package/dist/features/wishlist/hooks/useWishlistCount.js +95 -0
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +56 -0
- package/dist/features/wishlist/hooks/useWishlistWithGuest.js +57 -0
- package/dist/features/wishlist/index.d.ts +3 -0
- package/dist/features/wishlist/index.js +3 -0
- package/dist/features/wishlist/schemas/index.d.ts +2 -2
- package/dist/features/wishlist/types/index.d.ts +16 -0
- package/dist/features/wishlist/utils/guest-wishlist.d.ts +22 -0
- package/dist/features/wishlist/utils/guest-wishlist.js +70 -0
- package/dist/http/api-handler.js +8 -1
- package/dist/index.d.ts +158 -13
- package/dist/index.js +188 -21
- package/dist/monitoring/server-logger.js +9 -3
- package/dist/next/routing/route-map.d.ts +184 -36
- package/dist/next/routing/route-map.js +81 -22
- package/dist/providers/db-firebase/realtime.d.ts +1 -1
- package/dist/react/contexts/SessionContext.js +17 -26
- package/dist/react/hooks/useBulkSelection.d.ts +7 -24
- package/dist/react/hooks/useBulkSelection.js +27 -34
- package/dist/react/hooks/useLongPress.d.ts +3 -16
- package/dist/react/hooks/useLongPress.js +6 -25
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.js +2 -0
- package/dist/repositories/index.d.ts +3 -0
- package/dist/repositories/index.js +2 -0
- package/dist/seed/actions/demo-seed-actions.d.ts +2 -2
- package/dist/seed/actions/demo-seed-actions.js +1 -1
- package/dist/seed/addresses-seed-data.js +62 -261
- package/dist/seed/anime-figures-seed-data.d.ts +8 -0
- package/dist/seed/anime-figures-seed-data.js +1033 -0
- package/dist/seed/beyblade-seed-data.d.ts +7 -0
- package/dist/seed/beyblade-seed-data.js +1129 -0
- package/dist/seed/bids-seed-data.d.ts +4 -2
- package/dist/seed/bids-seed-data.js +343 -1067
- package/dist/seed/blog-posts-seed-data.d.ts +3 -2
- package/dist/seed/blog-posts-seed-data.js +258 -181
- package/dist/seed/brands-seed-data.d.ts +7 -0
- package/dist/seed/brands-seed-data.js +410 -0
- package/dist/seed/carousel-slides-seed-data.d.ts +3 -2
- package/dist/seed/carousel-slides-seed-data.js +177 -216
- package/dist/seed/cart-seed-data.d.ts +8 -8
- package/dist/seed/cart-seed-data.js +73 -74
- package/dist/seed/categories-seed-data.d.ts +4 -2
- package/dist/seed/categories-seed-data.js +720 -879
- package/dist/seed/conversations-seed-data.d.ts +8 -0
- package/dist/seed/conversations-seed-data.js +388 -0
- package/dist/seed/cosplay-accessories-seed-data.d.ts +8 -0
- package/dist/seed/cosplay-accessories-seed-data.js +647 -0
- package/dist/seed/coupon-usage-seed-data.d.ts +25 -0
- package/dist/seed/coupon-usage-seed-data.js +69 -0
- package/dist/seed/coupons-seed-data.d.ts +4 -2
- package/dist/seed/coupons-seed-data.js +204 -338
- package/dist/seed/events-seed-data.d.ts +4 -2
- package/dist/seed/events-seed-data.js +125 -588
- package/dist/seed/factories/cart.factory.d.ts +0 -1
- package/dist/seed/factories/cart.factory.js +2 -2
- package/dist/seed/faq-seed-data.d.ts +11 -41
- package/dist/seed/faq-seed-data.js +833 -1977
- package/dist/seed/grouped-listings-seed-data.d.ts +8 -0
- package/dist/seed/grouped-listings-seed-data.js +201 -0
- package/dist/seed/homepage-sections-seed-data.d.ts +3 -13
- package/dist/seed/homepage-sections-seed-data.js +228 -252
- package/dist/seed/hot-wheels-seed-data.d.ts +7 -0
- package/dist/seed/hot-wheels-seed-data.js +1612 -0
- package/dist/seed/index.d.ts +12 -6
- package/dist/seed/index.js +10 -7
- package/dist/seed/letitrip-official-seed-data.d.ts +8 -0
- package/dist/seed/letitrip-official-seed-data.js +399 -0
- package/dist/seed/manifest.d.ts +15 -0
- package/dist/seed/manifest.js +140 -0
- package/dist/seed/notifications-seed-data.d.ts +4 -2
- package/dist/seed/notifications-seed-data.js +117 -440
- package/dist/seed/orders-seed-data.d.ts +4 -2
- package/dist/seed/orders-seed-data.js +1090 -521
- package/dist/seed/payouts-seed-data.d.ts +4 -2
- package/dist/seed/payouts-seed-data.js +522 -145
- package/dist/seed/pokemon-carousel-slides-seed-data.d.ts +4 -2
- package/dist/seed/pokemon-carousel-slides-seed-data.js +157 -268
- package/dist/seed/pokemon-categories-seed-data.d.ts +18 -21
- package/dist/seed/pokemon-categories-seed-data.js +445 -1025
- package/dist/seed/pokemon-coupons-seed-data.d.ts +6 -0
- package/dist/seed/pokemon-coupons-seed-data.js +465 -0
- package/dist/seed/pokemon-homepage-sections-seed-data.d.ts +3 -2
- package/dist/seed/pokemon-homepage-sections-seed-data.js +120 -249
- package/dist/seed/pokemon-products-seed-data.d.ts +1 -1
- package/dist/seed/pokemon-products-seed-data.js +720 -48
- package/dist/seed/pokemon-seed-bundle.d.ts +36 -11
- package/dist/seed/pokemon-seed-bundle.js +60 -11
- package/dist/seed/pokemon-stores-seed-data.d.ts +2 -3
- package/dist/seed/pokemon-stores-seed-data.js +135 -34
- package/dist/seed/pokemon-users-seed-data.d.ts +2 -2
- package/dist/seed/pokemon-users-seed-data.js +344 -261
- package/dist/seed/products-auctions-seed-data.d.ts +10 -0
- package/dist/seed/products-auctions-seed-data.js +689 -0
- package/dist/seed/products-preorders-seed-data.d.ts +9 -0
- package/dist/seed/products-preorders-seed-data.js +483 -0
- package/dist/seed/products-seed-data.js +34 -13
- package/dist/seed/products-standard-seed-data.d.ts +8 -0
- package/dist/seed/products-standard-seed-data.js +4179 -0
- package/dist/seed/retro-gaming-seed-data.d.ts +8 -0
- package/dist/seed/retro-gaming-seed-data.js +801 -0
- package/dist/seed/reviews-seed-data.d.ts +4 -2
- package/dist/seed/reviews-seed-data.js +1005 -441
- package/dist/seed/scammers-seed-data.d.ts +17 -0
- package/dist/seed/scammers-seed-data.js +118 -0
- package/dist/seed/site-settings-seed-data.js +39 -16
- package/dist/seed/store-addresses-seed-data.js +187 -65
- package/dist/seed/stores-seed-data.d.ts +3 -9
- package/dist/seed/stores-seed-data.js +212 -102
- package/dist/seed/sublisting-categories-seed-data.d.ts +7 -0
- package/dist/seed/sublisting-categories-seed-data.js +315 -0
- package/dist/seed/transformers-seed-data.d.ts +7 -0
- package/dist/seed/transformers-seed-data.js +530 -0
- package/dist/seed/users-seed-data.d.ts +3 -2
- package/dist/seed/users-seed-data.js +531 -440
- package/dist/seed/wishlists-seed-data.d.ts +5 -1
- package/dist/seed/wishlists-seed-data.js +84 -6
- package/dist/server.d.ts +10 -2
- package/dist/server.js +14 -4
- package/dist/tokens/index.d.ts +6 -0
- package/dist/tokens/index.js +2 -0
- package/dist/tokens/tokens.css +76 -31
- package/dist/ui/components/Avatar.style.css +10 -12
- package/dist/ui/components/BaseListingCard.d.ts +8 -3
- package/dist/ui/components/BaseListingCard.js +39 -30
- package/dist/ui/components/BaseListingCard.style.css +8 -6
- package/dist/ui/components/BulkActionsBar.d.ts +16 -0
- package/dist/ui/components/BulkActionsBar.js +22 -0
- package/dist/ui/components/Button.style.css +23 -23
- package/dist/ui/components/Card.style.css +60 -62
- package/dist/ui/components/Checkbox.style.css +19 -21
- package/dist/ui/components/DashboardStatsCard.style.css +12 -14
- package/dist/ui/components/Drawer.style.css +18 -14
- package/dist/ui/components/Dropdown.style.css +25 -27
- package/dist/ui/components/EmptyState.style.css +2 -4
- package/dist/ui/components/HorizontalScroller.d.ts +3 -1
- package/dist/ui/components/HorizontalScroller.js +130 -21
- package/dist/ui/components/HorizontalScroller.style.css +2 -2
- package/dist/ui/components/ImageLightbox.d.ts +0 -9
- package/dist/ui/components/ImageLightbox.js +43 -9
- package/dist/ui/components/InlineCreateSelect.d.ts +38 -0
- package/dist/ui/components/InlineCreateSelect.js +70 -0
- package/dist/ui/components/ListingLayout.style.css +41 -77
- package/dist/ui/components/ListingToolbar.d.ts +54 -0
- package/dist/ui/components/ListingToolbar.js +34 -0
- package/dist/ui/components/Modal.style.css +14 -10
- package/dist/ui/components/PageLoader.d.ts +11 -0
- package/dist/ui/components/PageLoader.js +21 -0
- package/dist/ui/components/Radio.style.css +34 -36
- package/dist/ui/components/RichTextEditor.js +1 -1
- package/dist/ui/components/RowActionMenu.d.ts +1 -0
- package/dist/ui/components/RowActionMenu.js +4 -2
- package/dist/ui/components/SectionTabs.js +1 -1
- package/dist/ui/components/SectionTabs.style.css +1 -0
- package/dist/ui/components/SideDrawer.style.css +3 -11
- package/dist/ui/components/SideModal.style.css +4 -8
- package/dist/ui/components/Slider.style.css +2 -4
- package/dist/ui/components/Tabs.style.css +8 -10
- package/dist/ui/components/Toast.style.css +22 -24
- package/dist/ui/components/Toggle.style.css +11 -13
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.js +5 -0
- package/dist/ui/rich-text/RichText.js +21 -2
- package/dist/ui/rich-text/RichText.style.css +292 -5
- package/dist/ui/rich-text/RichTextRenderer.d.ts +15 -0
- package/dist/ui/rich-text/RichTextRenderer.js +15 -0
- package/dist/utils/id-generators.d.ts +10 -0
- package/dist/utils/id-generators.js +12 -0
- package/dist/validation/schemas.d.ts +9 -9
- package/package.json +5 -1
- package/README.md +0 -116
|
@@ -1,5 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
|
+
import { Alert, Badge, Button, Div, FormField, Heading, Stack, Text, } from "../../../ui";
|
|
2
5
|
import { StackedViewShell } from "../../../ui";
|
|
3
|
-
|
|
4
|
-
|
|
6
|
+
import { StoreAddressSelectorCreate } from "../../stores/components/StoreAddressSelectorCreate";
|
|
7
|
+
const DEFAULT_DRAFT = {
|
|
8
|
+
method: "custom",
|
|
9
|
+
customCarrierName: "",
|
|
10
|
+
customShippingPrice: "",
|
|
11
|
+
shiprocketEmail: "",
|
|
12
|
+
shiprocketPassword: "",
|
|
13
|
+
pickupAddressId: "",
|
|
14
|
+
};
|
|
15
|
+
export function SellerShippingView({ apiBase = "/api/store/shipping" }) {
|
|
16
|
+
const [draft, setDraft] = useState(DEFAULT_DRAFT);
|
|
17
|
+
const [current, setCurrent] = useState(null);
|
|
18
|
+
const [loading, setLoading] = useState(true);
|
|
19
|
+
const [saving, setSaving] = useState(false);
|
|
20
|
+
const [error, setError] = useState(null);
|
|
21
|
+
const [success, setSuccess] = useState(false);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
fetch(apiBase)
|
|
24
|
+
.then((r) => r.json())
|
|
25
|
+
.then((res) => {
|
|
26
|
+
const cfg = res?.data?.shippingConfig ?? { method: "custom", isConfigured: false };
|
|
27
|
+
setCurrent(cfg);
|
|
28
|
+
setDraft({
|
|
29
|
+
method: cfg.method,
|
|
30
|
+
customCarrierName: cfg.customCarrierName ?? "",
|
|
31
|
+
customShippingPrice: cfg.customShippingPrice ? String(cfg.customShippingPrice / 100) : "",
|
|
32
|
+
shiprocketEmail: cfg.shiprocketEmail ?? "",
|
|
33
|
+
shiprocketPassword: "",
|
|
34
|
+
pickupAddressId: "",
|
|
35
|
+
});
|
|
36
|
+
})
|
|
37
|
+
.catch(() => { })
|
|
38
|
+
.finally(() => setLoading(false));
|
|
39
|
+
}, [apiBase]);
|
|
40
|
+
const update = useCallback((key, value) => {
|
|
41
|
+
setDraft((prev) => ({ ...prev, [key]: value }));
|
|
42
|
+
setSuccess(false);
|
|
43
|
+
}, []);
|
|
44
|
+
const handleSave = async () => {
|
|
45
|
+
setError(null);
|
|
46
|
+
setSuccess(false);
|
|
47
|
+
setSaving(true);
|
|
48
|
+
try {
|
|
49
|
+
const body = draft.method === "custom"
|
|
50
|
+
? {
|
|
51
|
+
method: "custom",
|
|
52
|
+
customCarrierName: draft.customCarrierName.trim(),
|
|
53
|
+
customShippingPrice: Math.round(parseFloat(draft.customShippingPrice || "0") * 100),
|
|
54
|
+
}
|
|
55
|
+
: {
|
|
56
|
+
method: "shiprocket",
|
|
57
|
+
...(draft.shiprocketPassword
|
|
58
|
+
? { shiprocketCredentials: { email: draft.shiprocketEmail, password: draft.shiprocketPassword } }
|
|
59
|
+
: {}),
|
|
60
|
+
};
|
|
61
|
+
const res = await fetch(apiBase, {
|
|
62
|
+
method: "PATCH",
|
|
63
|
+
headers: { "Content-Type": "application/json" },
|
|
64
|
+
body: JSON.stringify(body),
|
|
65
|
+
});
|
|
66
|
+
const json = await res.json();
|
|
67
|
+
if (!res.ok)
|
|
68
|
+
throw new Error(json?.error ?? "Failed to save");
|
|
69
|
+
setSuccess(true);
|
|
70
|
+
const cfg = json?.data?.shippingConfig ?? { method: draft.method, isConfigured: false };
|
|
71
|
+
setCurrent(cfg);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
setError(err.message);
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
setSaving(false);
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
const isCustom = draft.method === "custom";
|
|
81
|
+
const busy = loading || saving;
|
|
82
|
+
return (_jsx(StackedViewShell, { portal: "seller", title: "Shipping Configuration", sections: [
|
|
83
|
+
_jsxs(Stack, { gap: "lg", children: [current && (_jsxs(Div, { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: current.isConfigured ? "success" : "warning", children: current.isConfigured ? "Configured" : "Not configured" }), current.method === "shiprocket" && (_jsx(Badge, { variant: current.isTokenValid ? "success" : "danger", children: current.isTokenValid ? "Shiprocket connected" : "Shiprocket token expired" }))] })), error && _jsx(Alert, { variant: "error", children: error }), success && _jsx(Alert, { variant: "success", children: "Shipping configuration saved." }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-3", children: "Shipping Method" }), _jsx(Stack, { gap: "sm", children: ["custom", "shiprocket"].map((m) => (_jsxs("label", { className: "flex items-center gap-3 p-3 rounded-lg border border-[var(--appkit-color-border)] cursor-pointer has-[:checked]:border-[var(--appkit-color-primary)] has-[:checked]:bg-[var(--appkit-color-primary)]/5", children: [_jsx("input", { type: "radio", name: "method", value: m, checked: draft.method === m, onChange: () => update("method", m), className: "accent-[var(--appkit-color-primary)]", disabled: busy }), _jsxs(Div, { children: [_jsx(Text, { className: "font-medium capitalize", children: m === "custom" ? "Custom / Manual" : "Shiprocket" }), _jsx(Text, { className: "text-sm text-[var(--appkit-color-text-muted)]", children: m === "custom"
|
|
84
|
+
? "Set a fixed shipping fee and carrier name for all orders."
|
|
85
|
+
: "Automated shipping via Shiprocket — connect your account for label generation and tracking." })] })] }, m))) })] }), isCustom && (_jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-3", children: "Custom Shipping Details" }), _jsxs(Stack, { gap: "md", children: [_jsx(FormField, { name: "customCarrierName", label: "Carrier Name", type: "text", value: draft.customCarrierName, onChange: (v) => update("customCarrierName", v), placeholder: "e.g. India Post, DTDC, Delhivery", disabled: busy }), _jsx(FormField, { name: "customShippingPrice", label: "Shipping Price (\u20B9)", type: "number", value: draft.customShippingPrice, onChange: (v) => update("customShippingPrice", v), placeholder: "0 for free shipping", helpText: "Charged to buyer at checkout. Enter 0 for free shipping.", disabled: busy })] })] })), !isCustom && (_jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-3", children: "Shiprocket Account" }), _jsxs(Stack, { gap: "md", children: [_jsx(FormField, { name: "shiprocketEmail", label: "Shiprocket Email", type: "email", value: draft.shiprocketEmail, onChange: (v) => update("shiprocketEmail", v), placeholder: "your@email.com", disabled: busy }), _jsx(FormField, { name: "shiprocketPassword", label: current?.isTokenValid ? "Password (leave blank to keep existing token)" : "Password", type: "password", value: draft.shiprocketPassword, onChange: (v) => update("shiprocketPassword", v), placeholder: "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022", helpText: current?.isTokenValid ? "Only fill this to re-authenticate." : "Required to connect your Shiprocket account.", disabled: busy }), _jsxs(Div, { children: [_jsx(StoreAddressSelectorCreate, { value: draft.pickupAddressId, onChange: (id) => update("pickupAddressId", id), label: "Pickup Address (optional)", disabled: busy }), _jsx(Text, { className: "mt-1 text-xs text-[var(--appkit-color-text-muted)]", children: "Registering a pickup address sends an OTP to your phone for verification." })] }), current?.pickupAddress && (_jsxs(Alert, { variant: "info", children: ["Current pickup: ", current.pickupAddress.locationName ?? "", current.pickupAddress.city ? `, ${current.pickupAddress.city}` : "", current.pickupAddress.isVerified
|
|
86
|
+
? " — ✓ Verified"
|
|
87
|
+
: " — Pending OTP verification"] }))] })] })), _jsx(Div, { className: "flex justify-end pt-2 border-t border-[var(--appkit-color-border)]", children: _jsx(Button, { variant: "primary", onClick: handleSave, disabled: busy, isLoading: saving, children: "Save Configuration" }) })] }, "shipping"),
|
|
88
|
+
] }));
|
|
5
89
|
}
|
|
@@ -1,20 +1,32 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export interface
|
|
2
|
+
export interface StoreNavItem {
|
|
3
3
|
href: string;
|
|
4
4
|
label: string;
|
|
5
5
|
icon?: React.ReactNode;
|
|
6
6
|
badge?: number;
|
|
7
7
|
}
|
|
8
|
-
interface
|
|
9
|
-
|
|
8
|
+
export interface StoreNavGroup {
|
|
9
|
+
title: string;
|
|
10
|
+
items: StoreNavItem[];
|
|
11
|
+
defaultOpen?: boolean;
|
|
12
|
+
}
|
|
13
|
+
interface StoreSidebarProps {
|
|
14
|
+
items: StoreNavItem[];
|
|
15
|
+
groups?: StoreNavGroup[];
|
|
10
16
|
activeHref: string;
|
|
11
17
|
storeName?: string;
|
|
12
18
|
storeLogoURL?: string;
|
|
13
|
-
/** Whether the mobile drawer is open */
|
|
14
19
|
mobileOpen?: boolean;
|
|
15
|
-
|
|
20
|
+
desktopOpen?: boolean;
|
|
21
|
+
variant?: "sidebar" | "overlay";
|
|
16
22
|
onCloseMobile?: () => void;
|
|
23
|
+
/** Toggle callback for the desktop sidebar tab (open ↔ close). */
|
|
24
|
+
onToggle?: () => void;
|
|
17
25
|
className?: string;
|
|
18
26
|
}
|
|
19
|
-
export declare function
|
|
27
|
+
export declare function StoreSidebar({ items, groups, activeHref, storeName, storeLogoURL, mobileOpen, desktopOpen, variant, onCloseMobile, onToggle, }: StoreSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
/** @deprecated Use StoreSidebar */
|
|
29
|
+
export declare const SellerSidebar: typeof StoreSidebar;
|
|
30
|
+
/** @deprecated Use StoreNavItem */
|
|
31
|
+
export type SellerNavItem = StoreNavItem;
|
|
20
32
|
export {};
|
|
@@ -1,16 +1,62 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState, useCallback } from "react";
|
|
4
|
+
import { createPortal } from "react-dom";
|
|
3
5
|
import Link from "next/link";
|
|
4
|
-
import {
|
|
6
|
+
import { Div, Li, Nav, Row, Span, Text, Ul } from "../../../ui";
|
|
5
7
|
import { BottomSheet } from "../../layout/BottomSheet";
|
|
6
|
-
function
|
|
7
|
-
return (_jsxs(
|
|
8
|
+
function NavLink({ item, isActive, onClick }) {
|
|
9
|
+
return (_jsxs(Link, { href: item.href, onClick: onClick, className: `flex items-center gap-2.5 rounded-lg px-3 py-2 text-[0.8125rem] font-medium leading-tight transition-colors ${isActive
|
|
10
|
+
? "bg-orange-50 dark:bg-orange-900/20 text-orange-700 dark:text-orange-300"
|
|
11
|
+
: "text-zinc-500 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-slate-800/60 hover:text-zinc-800 dark:hover:text-zinc-200"}`, children: [item.icon && _jsx(Span, { className: "shrink-0 text-base opacity-60", children: item.icon }), _jsx(Span, { className: "flex-1 truncate", children: item.label }), item.badge != null && item.badge > 0 && (_jsx(Span, { className: "shrink-0 rounded-full bg-orange-500 px-1.5 py-0.5 text-[10px] font-bold text-white leading-none", children: item.badge }))] }));
|
|
12
|
+
}
|
|
13
|
+
function FlatContent({ items, activeHref, storeName, storeLogoURL, onItemClick, }) {
|
|
14
|
+
return (_jsxs(_Fragment, { children: [storeName && (_jsxs(Row, { gap: "3", className: "px-4 py-3 border-b border-zinc-100 dark:border-slate-700", children: [storeLogoURL ? (_jsx(Div, { role: "img", "aria-label": storeName, className: "h-7 w-7 rounded-full bg-center bg-cover shrink-0", style: { backgroundImage: `url(${storeLogoURL})` } })) : (_jsx(Div, { className: "h-7 w-7 rounded-full bg-orange-100 dark:bg-orange-900/30 flex items-center justify-center text-orange-600 dark:text-orange-400 font-bold text-xs shrink-0", children: storeName[0]?.toUpperCase() })), _jsx(Text, { className: "font-semibold text-zinc-800 dark:text-zinc-100 text-sm truncate", children: storeName })] })), _jsx(Nav, { "aria-label": "Store navigation", className: "py-3", children: _jsx(Ul, { className: "space-y-0.5 px-3", children: items.map((item) => {
|
|
8
15
|
const isActive = activeHref === item.href;
|
|
9
|
-
return (_jsx(Li, { children:
|
|
10
|
-
? "bg-orange-50 dark:bg-orange-900/20 text-orange-600 dark:text-orange-400 font-medium"
|
|
11
|
-
: "text-gray-600 dark:text-zinc-300 hover:bg-gray-50 dark:hover:bg-slate-800 hover:text-gray-900 dark:hover:text-zinc-100"}`, children: [item.icon && (_jsx(Span, { className: "shrink-0 text-[1.1rem]", children: item.icon })), _jsx(Span, { className: "flex-1 truncate", children: item.label }), item.badge != null && item.badge > 0 && (_jsx(Span, { className: "shrink-0 rounded-full bg-orange-500 px-1.5 py-0.5 text-[10px] font-bold text-white", children: item.badge }))] }) }, item.href));
|
|
16
|
+
return (_jsx(Li, { children: _jsx(NavLink, { item: item, isActive: isActive, onClick: onItemClick }) }, item.href));
|
|
12
17
|
}) }) })] }));
|
|
13
18
|
}
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
function GroupsContent({ groups, activeHref, storeName, storeLogoURL, onItemClick, }) {
|
|
20
|
+
const [openGroups, setOpenGroups] = useState(() => Object.fromEntries(groups.map((g) => [
|
|
21
|
+
g.title,
|
|
22
|
+
g.defaultOpen ?? g.items.some((i) => activeHref === i.href),
|
|
23
|
+
])));
|
|
24
|
+
const toggle = useCallback((title) => setOpenGroups((p) => ({ ...p, [title]: !p[title] })), []);
|
|
25
|
+
return (_jsxs(_Fragment, { children: [storeName && (_jsxs(Row, { gap: "3", className: "px-4 py-3 border-b border-zinc-100 dark:border-slate-700", children: [storeLogoURL ? (_jsx(Div, { role: "img", "aria-label": storeName, className: "h-7 w-7 rounded-full bg-center bg-cover shrink-0", style: { backgroundImage: `url(${storeLogoURL})` } })) : (_jsx(Div, { className: "h-7 w-7 rounded-full bg-orange-100 dark:bg-orange-900/30 flex items-center justify-center text-orange-600 dark:text-orange-400 font-bold text-xs shrink-0", children: storeName[0]?.toUpperCase() })), _jsx(Text, { className: "font-semibold text-zinc-800 dark:text-zinc-100 text-sm truncate", children: storeName })] })), _jsx(Nav, { "aria-label": "Store navigation", className: "py-2", children: groups.map((group) => {
|
|
26
|
+
const isOpen = openGroups[group.title] ?? false;
|
|
27
|
+
const hasActive = group.items.some((i) => activeHref === i.href);
|
|
28
|
+
return (_jsxs("div", { className: "mb-0.5", children: [_jsxs("button", { type: "button", onClick: () => toggle(group.title), className: `flex w-full items-center justify-between px-4 py-2 text-[0.6875rem] font-semibold uppercase tracking-widest transition-colors ${hasActive && !isOpen
|
|
29
|
+
? "text-orange-600 dark:text-orange-400"
|
|
30
|
+
: "text-zinc-400 dark:text-zinc-500 hover:text-zinc-600 dark:hover:text-zinc-300"}`, children: [_jsx("span", { children: group.title }), _jsx("svg", { className: `w-3 h-3 transition-transform duration-150 ${isOpen ? "rotate-180" : ""}`, fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M19 9l-7 7-7-7" }) })] }), isOpen && (_jsx(Ul, { className: "space-y-0.5 px-3 pb-1", children: group.items.map((item) => {
|
|
31
|
+
const isActive = activeHref === item.href;
|
|
32
|
+
return (_jsx(Li, { children: _jsx(NavLink, { item: item, isActive: isActive, onClick: onItemClick }) }, item.href));
|
|
33
|
+
}) }))] }, group.title));
|
|
34
|
+
}) })] }));
|
|
35
|
+
}
|
|
36
|
+
function DrawerPanel({ title, onClose, children }) {
|
|
37
|
+
return (_jsxs("div", { className: "hidden md:block", children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40 backdrop-blur-sm", onClick: onClose, "aria-hidden": "true" }), _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": title, className: "fixed top-0 right-0 z-50 h-full w-64 bg-white dark:bg-slate-900 border-l border-zinc-200 dark:border-slate-700 flex flex-col shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between px-4 py-3.5 border-b border-zinc-100 dark:border-slate-800 shrink-0", children: [_jsx("span", { className: "text-xs font-semibold uppercase tracking-widest text-zinc-400 dark:text-zinc-500", children: title }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "flex items-center justify-center w-7 h-7 rounded-md text-zinc-400 hover:bg-zinc-100 dark:hover:bg-slate-800 hover:text-zinc-700 dark:hover:text-zinc-200 transition-colors", children: _jsx("svg", { className: "w-4 h-4", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: children })] })] }));
|
|
38
|
+
}
|
|
39
|
+
export function StoreSidebar({ items, groups, activeHref, storeName, storeLogoURL, mobileOpen = false, desktopOpen = false, variant = "overlay", onCloseMobile, onToggle, }) {
|
|
40
|
+
const close = onCloseMobile ?? (() => { });
|
|
41
|
+
const [mounted, setMounted] = useState(false);
|
|
42
|
+
useEffect(() => { setMounted(true); }, []);
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
document.body.style.overflow = mobileOpen ? "hidden" : "";
|
|
45
|
+
return () => { document.body.style.overflow = ""; };
|
|
46
|
+
}, [mobileOpen]);
|
|
47
|
+
const panelTitle = storeName ?? "Store Panel";
|
|
48
|
+
const navContent = groups ? (_jsx(GroupsContent, { groups: groups, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close })) : (_jsx(FlatContent, { items: items, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close }));
|
|
49
|
+
if (variant === "sidebar") {
|
|
50
|
+
const handleToggle = onToggle ?? close;
|
|
51
|
+
return (_jsxs(_Fragment, { children: [desktopOpen && (_jsx("div", { className: "hidden md:block fixed inset-0 bg-black/40 backdrop-blur-[2px] z-30", onClick: handleToggle, "aria-hidden": "true" })), _jsxs("div", { className: "hidden md:flex fixed left-0 z-40 transition-transform duration-300", style: {
|
|
52
|
+
top: "var(--header-height, 3.5rem)",
|
|
53
|
+
height: "calc(100vh - var(--header-height, 3.5rem))",
|
|
54
|
+
width: "18rem",
|
|
55
|
+
transform: desktopOpen ? "translateX(0)" : "translateX(calc(-100% + 1.25rem))",
|
|
56
|
+
}, children: [_jsxs("div", { className: "flex-1 bg-white dark:bg-slate-950 border-r border-zinc-200 dark:border-slate-700 flex flex-col overflow-hidden shadow-xl", children: [_jsx("div", { className: "px-4 py-3.5 border-b border-zinc-100 dark:border-slate-800 shrink-0", children: _jsxs("div", { className: "flex items-center gap-3 min-w-0", children: [storeLogoURL ? (_jsx(Div, { role: "img", "aria-label": storeName, className: "h-7 w-7 rounded-full bg-center bg-cover shrink-0", style: { backgroundImage: `url(${storeLogoURL})` } })) : (_jsx(Div, { className: "h-7 w-7 rounded-full bg-orange-100 dark:bg-orange-900/30 flex items-center justify-center text-orange-600 dark:text-orange-400 font-bold text-xs shrink-0", children: storeName?.[0]?.toUpperCase() })), _jsx(Text, { className: "font-semibold text-zinc-800 dark:text-zinc-100 text-sm truncate", children: storeName || panelTitle })] }) }), _jsx("div", { className: "flex-1 overflow-y-auto", children: navContent })] }), _jsx("button", { type: "button", onClick: handleToggle, "aria-label": desktopOpen ? "Collapse sidebar" : "Expand sidebar", className: "w-5 shrink-0 bg-primary dark:bg-secondary hover:bg-primary-600 dark:hover:bg-secondary-600 flex items-center justify-center transition-colors rounded-r-md shadow-md", children: _jsx("svg", { className: "w-3 h-3 text-white", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true", children: desktopOpen ? (_jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M11 19l-7-7 7-7m8 14l-7-7 7-7" })) : (_jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2.5, d: "M13 5l7 7-7 7M5 5l7 7-7 7" })) }) })] }), _jsx("div", { className: "md:hidden", children: _jsx(BottomSheet, { open: mobileOpen, onClose: close, title: panelTitle, children: groups ? (_jsx(GroupsContent, { groups: groups, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close })) : (_jsx(FlatContent, { items: items, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close })) }) })] }));
|
|
57
|
+
}
|
|
58
|
+
return (_jsxs(_Fragment, { children: [mounted && mobileOpen &&
|
|
59
|
+
createPortal(_jsx(DrawerPanel, { title: panelTitle, onClose: close, children: navContent }), document.body), _jsx("div", { className: "md:hidden", children: _jsx(BottomSheet, { open: mobileOpen, onClose: close, title: panelTitle, children: groups ? (_jsx(GroupsContent, { groups: groups, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close })) : (_jsx(FlatContent, { items: items, activeHref: activeHref, storeName: storeName, storeLogoURL: storeLogoURL, onItemClick: close })) }) })] }));
|
|
16
60
|
}
|
|
61
|
+
/** @deprecated Use StoreSidebar */
|
|
62
|
+
export const SellerSidebar = StoreSidebar;
|
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export interface StorefrontDraft {
|
|
2
|
+
storeName?: string;
|
|
3
|
+
storeDescription?: string;
|
|
4
|
+
storeCategory?: string;
|
|
5
|
+
storeLogoURL?: string;
|
|
6
|
+
storeBannerURL?: string;
|
|
7
|
+
returnPolicy?: string;
|
|
8
|
+
shippingPolicy?: string;
|
|
9
|
+
bio?: string;
|
|
10
|
+
website?: string;
|
|
11
|
+
location?: string;
|
|
12
|
+
socialLinks?: {
|
|
13
|
+
twitter?: string;
|
|
14
|
+
instagram?: string;
|
|
15
|
+
facebook?: string;
|
|
16
|
+
linkedin?: string;
|
|
7
17
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
renderFooter?: () => React.ReactNode;
|
|
18
|
+
isVacationMode?: boolean;
|
|
19
|
+
vacationMessage?: string;
|
|
20
|
+
isPublic?: boolean;
|
|
12
21
|
}
|
|
13
|
-
export
|
|
22
|
+
export interface SellerStorefrontViewProps {
|
|
23
|
+
initialValues?: StorefrontDraft;
|
|
24
|
+
onSave: (data: StorefrontDraft) => void | Promise<void>;
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
storeSlug?: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function SellerStorefrontView({ initialValues, onSave, isLoading, storeSlug, }: SellerStorefrontViewProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,10 +1,48 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
2
4
|
import { StackedViewShell } from "../../../ui";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { Alert, Button, FormField, FormGroup, Heading, Stack, Text, Toggle, } from "../../../ui";
|
|
6
|
+
import { ImageUpload, useMediaUpload } from "../../media";
|
|
7
|
+
import { useFormShell } from "../../shell";
|
|
8
|
+
export function SellerStorefrontView({ initialValues, onSave, isLoading = false, storeSlug = "store", }) {
|
|
9
|
+
const [draft, setDraft] = useState(initialValues ?? {});
|
|
10
|
+
const [saving, setSaving] = useState(false);
|
|
11
|
+
const [saved, setSaved] = useState(false);
|
|
12
|
+
const { isDirty, markDirty, markClean } = useFormShell();
|
|
13
|
+
const { upload } = useMediaUpload();
|
|
14
|
+
const update = useCallback((partial) => {
|
|
15
|
+
setDraft((prev) => ({ ...prev, ...partial }));
|
|
16
|
+
markDirty();
|
|
17
|
+
setSaved(false);
|
|
18
|
+
}, [markDirty]);
|
|
19
|
+
const updateSocial = (key, value) => {
|
|
20
|
+
update({ socialLinks: { ...draft.socialLinks, [key]: value } });
|
|
21
|
+
};
|
|
22
|
+
const handleSave = async () => {
|
|
23
|
+
setSaving(true);
|
|
24
|
+
setSaved(false);
|
|
25
|
+
try {
|
|
26
|
+
await onSave(draft);
|
|
27
|
+
markClean();
|
|
28
|
+
setSaved(true);
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
setSaving(false);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
const busy = saving || isLoading;
|
|
35
|
+
return (_jsx(StackedViewShell, { portal: "seller", title: "Storefront Settings", sections: [
|
|
36
|
+
_jsxs(Stack, { gap: "lg", children: [saved && (_jsx(Alert, { variant: "success", children: "Changes saved successfully." })), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Store Profile" }), _jsxs(Stack, { gap: "md", children: [_jsx(FormField, { name: "storeName", label: "Store Name", type: "text", value: draft.storeName ?? "", onChange: (v) => update({ storeName: v }), placeholder: "e.g. Pok\u00E9mon Palace", disabled: busy }), _jsx(FormField, { name: "bio", label: "Short Bio (shown in search results)", type: "textarea", value: draft.bio ?? "", onChange: (v) => update({ bio: v }), placeholder: "One-liner about your store (max 300 chars)", disabled: busy }), _jsxs(FormGroup, { columns: 2, children: [_jsx(ImageUpload, { label: "Store Logo", currentImage: draft.storeLogoURL, onUpload: (file) => {
|
|
37
|
+
return upload(file, "stores", true, {
|
|
38
|
+
type: "store-logo",
|
|
39
|
+
store: storeSlug,
|
|
40
|
+
});
|
|
41
|
+
}, onChange: (url) => update({ storeLogoURL: url }), helperText: "Square image, min 200\u00D7200px" }), _jsx(ImageUpload, { label: "Store Banner", currentImage: draft.storeBannerURL, onUpload: (file) => {
|
|
42
|
+
return upload(file, "stores", true, {
|
|
43
|
+
type: "store-banner",
|
|
44
|
+
store: storeSlug,
|
|
45
|
+
});
|
|
46
|
+
}, onChange: (url) => update({ storeBannerURL: url }), helperText: "Recommended: 1200\u00D7300px" })] })] })] }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Store Details" }), _jsxs(Stack, { gap: "md", children: [_jsx(FormField, { name: "storeCategory", label: "Store Category", type: "text", value: draft.storeCategory ?? "", onChange: (v) => update({ storeCategory: v }), placeholder: "e.g. Trading Cards, Action Figures", disabled: busy }), _jsx(FormField, { name: "storeDescription", label: "Full Description", type: "textarea", value: draft.storeDescription ?? "", onChange: (v) => update({ storeDescription: v }), placeholder: "Detailed store description shown on your public store page\u2026", disabled: busy })] })] }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Policies" }), _jsxs(Stack, { gap: "md", children: [_jsx(FormField, { name: "returnPolicy", label: "Return Policy", type: "textarea", value: draft.returnPolicy ?? "", onChange: (v) => update({ returnPolicy: v }), placeholder: "Describe your return policy\u2026", disabled: busy }), _jsx(FormField, { name: "shippingPolicy", label: "Shipping Policy", type: "textarea", value: draft.shippingPolicy ?? "", onChange: (v) => update({ shippingPolicy: v }), placeholder: "How and when you ship orders\u2026", disabled: busy })] })] }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Contact & Social" }), _jsxs(Stack, { gap: "md", children: [_jsxs(FormGroup, { columns: 2, children: [_jsx(FormField, { name: "website", label: "Website", type: "text", value: draft.website ?? "", onChange: (v) => update({ website: v }), placeholder: "https://example.com", disabled: busy }), _jsx(FormField, { name: "location", label: "Location", type: "text", value: draft.location ?? "", onChange: (v) => update({ location: v }), placeholder: "e.g. Mumbai, India", disabled: busy })] }), _jsxs(FormGroup, { columns: 2, children: [_jsx(FormField, { name: "twitter", label: "Twitter / X URL", type: "text", value: draft.socialLinks?.twitter ?? "", onChange: (v) => updateSocial("twitter", v), placeholder: "https://twitter.com/...", disabled: busy }), _jsx(FormField, { name: "instagram", label: "Instagram URL", type: "text", value: draft.socialLinks?.instagram ?? "", onChange: (v) => updateSocial("instagram", v), placeholder: "https://instagram.com/...", disabled: busy })] }), _jsxs(FormGroup, { columns: 2, children: [_jsx(FormField, { name: "facebook", label: "Facebook URL", type: "text", value: draft.socialLinks?.facebook ?? "", onChange: (v) => updateSocial("facebook", v), placeholder: "https://facebook.com/...", disabled: busy }), _jsx(FormField, { name: "linkedin", label: "LinkedIn URL", type: "text", value: draft.socialLinks?.linkedin ?? "", onChange: (v) => updateSocial("linkedin", v), placeholder: "https://linkedin.com/...", disabled: busy })] })] })] }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Vacation Mode" }), _jsxs(Stack, { gap: "md", children: [_jsx(Toggle, { checked: !!draft.isVacationMode, onChange: (checked) => update({ isVacationMode: checked }), label: "Enable vacation mode \u2014 your store will show a notice to buyers", disabled: busy }), draft.isVacationMode && (_jsx(FormField, { name: "vacationMessage", label: "Vacation Message", type: "textarea", value: draft.vacationMessage ?? "", onChange: (v) => update({ vacationMessage: v }), placeholder: "I'm away until\u2026 Orders placed now will ship when I return.", disabled: busy }))] })] }), _jsxs("section", { children: [_jsx(Heading, { level: 3, className: "mb-4", children: "Visibility" }), _jsx(Toggle, { checked: draft.isPublic !== false, onChange: (checked) => update({ isPublic: checked }), label: "Make store public \u2014 visible to all buyers", disabled: busy }), draft.isPublic === false && (_jsx(Text, { className: "mt-2 text-sm text-[var(--appkit-color-text-muted)]", children: "Your store is hidden. Existing orders are unaffected." }))] }), _jsxs("div", { className: "flex items-center justify-end gap-3 pt-2 border-t border-[var(--appkit-color-border)]", children: [isDirty && !saving && (_jsx(Text, { className: "text-sm text-[var(--appkit-color-text-muted)]", children: "You have unsaved changes." })), _jsx(Button, { variant: "primary", onClick: handleSave, disabled: busy || !isDirty, isLoading: saving, children: "Save Changes" })] })] }, "profile"),
|
|
9
47
|
] }));
|
|
10
48
|
}
|
|
@@ -11,8 +11,14 @@ export { SellerOrdersView } from "./SellerOrdersView";
|
|
|
11
11
|
export type { SellerOrdersViewProps } from "./SellerOrdersView";
|
|
12
12
|
export { SellerOffersView } from "./SellerOffersView";
|
|
13
13
|
export type { SellerOffersViewProps } from "./SellerOffersView";
|
|
14
|
+
export { SellerOffersPanel } from "./SellerOffersPanel";
|
|
15
|
+
export type { SellerOffersPanelProps, SellerOfferAction } from "./SellerOffersPanel";
|
|
14
16
|
export { SellerCouponsView } from "./SellerCouponsView";
|
|
15
17
|
export type { SellerCouponsViewProps } from "./SellerCouponsView";
|
|
18
|
+
export { SellerCouponEditorView } from "./SellerCouponEditorView";
|
|
19
|
+
export type { SellerCouponEditorViewProps, CouponEditorDraft } from "./SellerCouponEditorView";
|
|
20
|
+
export { SellerBidsView } from "./SellerBidsView";
|
|
21
|
+
export type { SellerBidsViewProps } from "./SellerBidsView";
|
|
16
22
|
export { SellersListView } from "./SellersListView";
|
|
17
23
|
export type { SellersListViewProps } from "./SellersListView";
|
|
18
24
|
export { SellerPayoutsView } from "./SellerPayoutsView";
|
|
@@ -29,16 +35,54 @@ export { SellerCreateProductView } from "./SellerCreateProductView";
|
|
|
29
35
|
export type { SellerCreateProductViewProps } from "./SellerCreateProductView";
|
|
30
36
|
export { SellerEditProductView } from "./SellerEditProductView";
|
|
31
37
|
export type { SellerEditProductViewProps } from "./SellerEditProductView";
|
|
38
|
+
export { SellerProductShell } from "./SellerProductShell";
|
|
39
|
+
export type { SellerProductShellProps, SellerProductDraft, ProductListingMode } from "./SellerProductShell";
|
|
32
40
|
export { SellerStoreSetupView } from "./SellerStoreSetupView";
|
|
33
41
|
export type { SellerStoreSetupViewProps } from "./SellerStoreSetupView";
|
|
34
42
|
export { SellerStoreView } from "./SellerStoreView";
|
|
35
43
|
export type { SellerStoreViewProps } from "./SellerStoreView";
|
|
36
44
|
export { SellerStorefrontView } from "./SellerStorefrontView";
|
|
37
|
-
export type { SellerStorefrontViewProps } from "./SellerStorefrontView";
|
|
45
|
+
export type { SellerStorefrontViewProps, StorefrontDraft } from "./SellerStorefrontView";
|
|
38
46
|
export { SellerShippingView } from "./SellerShippingView";
|
|
39
47
|
export type { SellerShippingViewProps } from "./SellerShippingView";
|
|
40
48
|
export { SellerAddressesView } from "./SellerAddressesView";
|
|
41
49
|
export type { SellerAddressesViewProps } from "./SellerAddressesView";
|
|
42
50
|
export { SellerGuideView } from "./SellerGuideView";
|
|
43
51
|
export type { SellerGuideViewProps } from "./SellerGuideView";
|
|
52
|
+
export { SellerReviewsView } from "./SellerReviewsView";
|
|
53
|
+
export type { SellerReviewsViewProps } from "./SellerReviewsView";
|
|
54
|
+
export { SellerPayoutRequestView } from "./SellerPayoutRequestView";
|
|
55
|
+
export type { SellerPayoutRequestViewProps } from "./SellerPayoutRequestView";
|
|
44
56
|
export * from "./analytics";
|
|
57
|
+
export { StoreSidebar } from "./SellerSidebar";
|
|
58
|
+
export type { StoreNavItem, StoreNavGroup } from "./SellerSidebar";
|
|
59
|
+
export { SellerDashboardView as StoreDashboardView } from "./SellerDashboardView";
|
|
60
|
+
export type { SellerDashboardViewProps as StoreDashboardViewProps } from "./SellerDashboardView";
|
|
61
|
+
export { SellerProductsView as StoreProductListingsView } from "./SellerProductsView";
|
|
62
|
+
export type { SellerProductsViewProps as StoreProductListingsViewProps } from "./SellerProductsView";
|
|
63
|
+
export { SellerAuctionsView as StoreAuctionsView } from "./SellerAuctionsView";
|
|
64
|
+
export type { SellerAuctionsViewProps as StoreAuctionsViewProps } from "./SellerAuctionsView";
|
|
65
|
+
export { SellerOrdersView as StoreOrdersView } from "./SellerOrdersView";
|
|
66
|
+
export type { SellerOrdersViewProps as StoreOrdersViewProps } from "./SellerOrdersView";
|
|
67
|
+
export { SellerOffersView as StoreOffersView } from "./SellerOffersView";
|
|
68
|
+
export type { SellerOffersViewProps as StoreOffersViewProps } from "./SellerOffersView";
|
|
69
|
+
export { SellerCouponsView as StoreCouponsView } from "./SellerCouponsView";
|
|
70
|
+
export type { SellerCouponsViewProps as StoreCouponsViewProps } from "./SellerCouponsView";
|
|
71
|
+
export { SellerPayoutsView as StorePayoutsView } from "./SellerPayoutsView";
|
|
72
|
+
export type { SellerPayoutsViewProps as StorePayoutsViewProps } from "./SellerPayoutsView";
|
|
73
|
+
export { SellerPayoutSettingsView as StorePayoutSettingsView } from "./SellerPayoutSettingsView";
|
|
74
|
+
export type { SellerPayoutSettingsViewProps as StorePayoutSettingsViewProps } from "./SellerPayoutSettingsView";
|
|
75
|
+
export { SellerAnalyticsView as StoreAnalyticsView } from "./SellerAnalyticsView";
|
|
76
|
+
export type { SellerAnalyticsViewProps as StoreAnalyticsViewProps } from "./SellerAnalyticsView";
|
|
77
|
+
export { SellerCreateProductView as StoreCreateProductView } from "./SellerCreateProductView";
|
|
78
|
+
export type { SellerCreateProductViewProps as StoreCreateProductViewProps } from "./SellerCreateProductView";
|
|
79
|
+
export { SellerEditProductView as StoreEditProductView } from "./SellerEditProductView";
|
|
80
|
+
export type { SellerEditProductViewProps as StoreEditProductViewProps } from "./SellerEditProductView";
|
|
81
|
+
export { SellerStoreView as StoreStorefrontView } from "./SellerStoreView";
|
|
82
|
+
export type { SellerStoreViewProps as StoreStorefrontViewProps } from "./SellerStoreView";
|
|
83
|
+
export { SellerShippingView as StoreShippingView } from "./SellerShippingView";
|
|
84
|
+
export type { SellerShippingViewProps as StoreShippingViewProps } from "./SellerShippingView";
|
|
85
|
+
export { SellerAddressesView as StoreAddressesView } from "./SellerAddressesView";
|
|
86
|
+
export type { SellerAddressesViewProps as StoreAddressesViewProps } from "./SellerAddressesView";
|
|
87
|
+
export { SellerBidsView as StoreBidsView } from "./SellerBidsView";
|
|
88
|
+
export type { SellerBidsViewProps as StoreBidsViewProps } from "./SellerBidsView";
|
|
@@ -5,7 +5,10 @@ export { SellerProductsView } from "./SellerProductsView";
|
|
|
5
5
|
export { SellerAuctionsView } from "./SellerAuctionsView";
|
|
6
6
|
export { SellerOrdersView } from "./SellerOrdersView";
|
|
7
7
|
export { SellerOffersView } from "./SellerOffersView";
|
|
8
|
+
export { SellerOffersPanel } from "./SellerOffersPanel";
|
|
8
9
|
export { SellerCouponsView } from "./SellerCouponsView";
|
|
10
|
+
export { SellerCouponEditorView } from "./SellerCouponEditorView";
|
|
11
|
+
export { SellerBidsView } from "./SellerBidsView";
|
|
9
12
|
export { SellersListView } from "./SellersListView";
|
|
10
13
|
export { SellerPayoutsView } from "./SellerPayoutsView";
|
|
11
14
|
export { SellerPayoutStats } from "./SellerPayoutStats";
|
|
@@ -14,10 +17,31 @@ export { SellerPayoutSettingsView } from "./SellerPayoutSettingsView";
|
|
|
14
17
|
export { SellerAnalyticsView } from "./SellerAnalyticsView";
|
|
15
18
|
export { SellerCreateProductView } from "./SellerCreateProductView";
|
|
16
19
|
export { SellerEditProductView } from "./SellerEditProductView";
|
|
20
|
+
export { SellerProductShell } from "./SellerProductShell";
|
|
17
21
|
export { SellerStoreSetupView } from "./SellerStoreSetupView";
|
|
18
22
|
export { SellerStoreView } from "./SellerStoreView";
|
|
19
23
|
export { SellerStorefrontView } from "./SellerStorefrontView";
|
|
20
24
|
export { SellerShippingView } from "./SellerShippingView";
|
|
21
25
|
export { SellerAddressesView } from "./SellerAddressesView";
|
|
22
26
|
export { SellerGuideView } from "./SellerGuideView";
|
|
27
|
+
export { SellerReviewsView } from "./SellerReviewsView";
|
|
28
|
+
export { SellerPayoutRequestView } from "./SellerPayoutRequestView";
|
|
23
29
|
export * from "./analytics";
|
|
30
|
+
// Store* aliases — same components, renamed for store-centric terminology
|
|
31
|
+
export { StoreSidebar } from "./SellerSidebar";
|
|
32
|
+
export { SellerDashboardView as StoreDashboardView } from "./SellerDashboardView";
|
|
33
|
+
// SellerProductsView aliased as StoreProductListingsView (StoreProductsView is the public customer-facing store listing)
|
|
34
|
+
export { SellerProductsView as StoreProductListingsView } from "./SellerProductsView";
|
|
35
|
+
export { SellerAuctionsView as StoreAuctionsView } from "./SellerAuctionsView";
|
|
36
|
+
export { SellerOrdersView as StoreOrdersView } from "./SellerOrdersView";
|
|
37
|
+
export { SellerOffersView as StoreOffersView } from "./SellerOffersView";
|
|
38
|
+
export { SellerCouponsView as StoreCouponsView } from "./SellerCouponsView";
|
|
39
|
+
export { SellerPayoutsView as StorePayoutsView } from "./SellerPayoutsView";
|
|
40
|
+
export { SellerPayoutSettingsView as StorePayoutSettingsView } from "./SellerPayoutSettingsView";
|
|
41
|
+
export { SellerAnalyticsView as StoreAnalyticsView } from "./SellerAnalyticsView";
|
|
42
|
+
export { SellerCreateProductView as StoreCreateProductView } from "./SellerCreateProductView";
|
|
43
|
+
export { SellerEditProductView as StoreEditProductView } from "./SellerEditProductView";
|
|
44
|
+
export { SellerStoreView as StoreStorefrontView } from "./SellerStoreView";
|
|
45
|
+
export { SellerShippingView as StoreShippingView } from "./SellerShippingView";
|
|
46
|
+
export { SellerAddressesView as StoreAddressesView } from "./SellerAddressesView";
|
|
47
|
+
export { SellerBidsView as StoreBidsView } from "./SellerBidsView";
|
|
@@ -8,6 +8,7 @@ interface UseSellerListingDataOptions<TResponse, TRow extends {
|
|
|
8
8
|
pageSize?: number;
|
|
9
9
|
sorts?: string;
|
|
10
10
|
filters?: string;
|
|
11
|
+
q?: string;
|
|
11
12
|
mapRows: (response: TResponse) => TRow[];
|
|
12
13
|
getTotal?: (response: TResponse, rows: TRow[]) => number;
|
|
13
14
|
}
|
|
@@ -18,10 +19,11 @@ export interface UseSellerListingDataResult<TRow extends {
|
|
|
18
19
|
total: number;
|
|
19
20
|
isLoading: boolean;
|
|
20
21
|
errorMessage?: string;
|
|
22
|
+
refetch: () => void;
|
|
21
23
|
}
|
|
22
24
|
export declare function useSellerListingData<TResponse, TRow extends {
|
|
23
25
|
id: string;
|
|
24
|
-
}>({ queryKey, endpoint, page, pageSize, sorts, filters, mapRows, getTotal, }: UseSellerListingDataOptions<TResponse, TRow>): UseSellerListingDataResult<TRow>;
|
|
26
|
+
}>({ queryKey, endpoint, page, pageSize, sorts, filters, q, mapRows, getTotal, }: UseSellerListingDataOptions<TResponse, TRow>): UseSellerListingDataResult<TRow>;
|
|
25
27
|
export declare function toRecordArray(value: unknown): UnknownRecord[];
|
|
26
28
|
export declare function toStringValue(value: unknown, fallback?: string): string;
|
|
27
29
|
export declare function toRupees(value: unknown): string;
|
|
@@ -6,17 +6,18 @@ function withQueryParams(endpoint, params) {
|
|
|
6
6
|
const query = new URLSearchParams(params).toString();
|
|
7
7
|
return `${endpoint}${hasQuery ? "&" : "?"}${query}`;
|
|
8
8
|
}
|
|
9
|
-
export function useSellerListingData({ queryKey, endpoint, page = 1, pageSize = 25, sorts = "-createdAt", filters = "", mapRows, getTotal, }) {
|
|
9
|
+
export function useSellerListingData({ queryKey, endpoint, page = 1, pageSize = 25, sorts = "-createdAt", filters = "", q, mapRows, getTotal, }) {
|
|
10
10
|
const params = {
|
|
11
11
|
page: String(page),
|
|
12
12
|
pageSize: String(pageSize),
|
|
13
13
|
sorts,
|
|
14
14
|
};
|
|
15
|
-
if (filters)
|
|
15
|
+
if (filters)
|
|
16
16
|
params.filters = filters;
|
|
17
|
-
|
|
17
|
+
if (q)
|
|
18
|
+
params.q = q;
|
|
18
19
|
const query = useQuery({
|
|
19
|
-
queryKey: [...queryKey, page, pageSize, sorts, filters],
|
|
20
|
+
queryKey: [...queryKey, page, pageSize, sorts, filters, q ?? ""],
|
|
20
21
|
queryFn: () => apiClient.get(withQueryParams(endpoint, params)),
|
|
21
22
|
staleTime: 60000,
|
|
22
23
|
});
|
|
@@ -33,6 +34,7 @@ export function useSellerListingData({ queryKey, endpoint, page = 1, pageSize =
|
|
|
33
34
|
: query.error
|
|
34
35
|
? "Unable to load records"
|
|
35
36
|
: undefined,
|
|
37
|
+
refetch: query.refetch,
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
40
|
export function toRecordArray(value) {
|
|
@@ -26,3 +26,5 @@ export declare function useSellerAnalytics(period?: string, opts?: {
|
|
|
26
26
|
error: string | null;
|
|
27
27
|
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<SellerAnalytics, Error>>;
|
|
28
28
|
};
|
|
29
|
+
/** @deprecated Use useStoreDashboard */
|
|
30
|
+
export { useSellerDashboard as useStoreDashboard };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { Permission } from "../../security";
|
|
2
|
-
/** Required permission for each
|
|
3
|
-
export declare const
|
|
2
|
+
/** Required permission for each store management route path */
|
|
3
|
+
export declare const STORE_PAGE_PERMISSIONS: Record<string, Permission>;
|
|
4
|
+
/** @deprecated Use STORE_PAGE_PERMISSIONS */
|
|
5
|
+
export declare const SELLER_PAGE_PERMISSIONS: Record<string, string>;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
/** Required permission for each
|
|
2
|
-
export const
|
|
3
|
-
"/
|
|
4
|
-
"/
|
|
5
|
-
"/
|
|
6
|
-
"/
|
|
7
|
-
"/
|
|
8
|
-
"/
|
|
9
|
-
"/
|
|
10
|
-
"/
|
|
11
|
-
"/
|
|
12
|
-
"/
|
|
13
|
-
"/
|
|
14
|
-
"/
|
|
1
|
+
/** Required permission for each store management route path */
|
|
2
|
+
export const STORE_PAGE_PERMISSIONS = {
|
|
3
|
+
"/store": "seller:access",
|
|
4
|
+
"/store/dashboard": "seller:analytics",
|
|
5
|
+
"/store/products": "seller:products:read",
|
|
6
|
+
"/store/products/new": "seller:products:write",
|
|
7
|
+
"/store/products/[id]": "seller:products:write",
|
|
8
|
+
"/store/orders": "seller:orders:read",
|
|
9
|
+
"/store/orders/[id]": "seller:orders:read",
|
|
10
|
+
"/store/analytics": "seller:analytics",
|
|
11
|
+
"/store/coupons": "seller:coupons",
|
|
12
|
+
"/store/storefront": "seller:store",
|
|
13
|
+
"/store/payouts": "seller:payouts:read",
|
|
14
|
+
"/store/shipping": "seller:shipping",
|
|
15
15
|
};
|
|
16
|
+
/** @deprecated Use STORE_PAGE_PERMISSIONS */
|
|
17
|
+
export const SELLER_PAGE_PERMISSIONS = STORE_PAGE_PERMISSIONS;
|
|
@@ -24,7 +24,7 @@ declare class OfferRepository extends BaseRepository<OfferDocument> {
|
|
|
24
24
|
readonly canFilter: true;
|
|
25
25
|
readonly canSort: false;
|
|
26
26
|
};
|
|
27
|
-
readonly
|
|
27
|
+
readonly storeId: {
|
|
28
28
|
readonly canFilter: true;
|
|
29
29
|
readonly canSort: false;
|
|
30
30
|
};
|
|
@@ -35,8 +35,8 @@ declare class OfferRepository extends BaseRepository<OfferDocument> {
|
|
|
35
35
|
};
|
|
36
36
|
create(input: OfferCreateInput): Promise<OfferDocument>;
|
|
37
37
|
findByBuyer(buyerUid: string, model?: SieveModel): Promise<FirebaseSieveResult<OfferDocument>>;
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
findByStore(storeId: string, model?: SieveModel): Promise<FirebaseSieveResult<OfferDocument>>;
|
|
39
|
+
findPendingByStore(storeId: string): Promise<OfferDocument[]>;
|
|
40
40
|
/** Returns all pending or countered offers past their expiresAt — used by expiry sweep job */
|
|
41
41
|
findExpired(): Promise<OfferDocument[]>;
|
|
42
42
|
/**
|