@mohasinac/appkit 2.7.2 → 2.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +18 -0
  2. package/dist/configs/next.d.ts +0 -21
  3. package/dist/configs/next.js +63 -0
  4. package/dist/features/account/components/AddressFilters.js +1 -0
  5. package/dist/features/admin/components/AdminAllEventEntriesView.js +1 -1
  6. package/dist/features/admin/components/AdminBidsView.js +1 -1
  7. package/dist/features/admin/components/AdminBlogView.js +1 -1
  8. package/dist/features/admin/components/AdminBrandsView.js +1 -1
  9. package/dist/features/admin/components/AdminCartsView.js +1 -1
  10. package/dist/features/admin/components/AdminCategoriesView.js +1 -1
  11. package/dist/features/admin/components/AdminContactView.js +1 -1
  12. package/dist/features/admin/components/AdminCouponsView.js +1 -1
  13. package/dist/features/admin/components/AdminFaqsView.js +1 -1
  14. package/dist/features/admin/components/AdminHistoryView.js +1 -1
  15. package/dist/features/admin/components/AdminNewsletterView.js +1 -1
  16. package/dist/features/admin/components/AdminNotificationsView.js +1 -1
  17. package/dist/features/admin/components/AdminOrdersView.js +1 -1
  18. package/dist/features/admin/components/AdminPayoutsView.js +1 -1
  19. package/dist/features/admin/components/AdminProductsView.js +1 -1
  20. package/dist/features/admin/components/AdminReturnRequestsView.js +1 -1
  21. package/dist/features/admin/components/AdminReviewsView.js +1 -1
  22. package/dist/features/admin/components/AdminSessionsView.js +1 -1
  23. package/dist/features/admin/components/AdminStoreAddressesView.js +1 -1
  24. package/dist/features/admin/components/AdminStoresView.js +1 -1
  25. package/dist/features/admin/components/AdminUsersView.js +1 -1
  26. package/dist/features/admin/components/AdminWishlistsView.js +1 -1
  27. package/dist/features/auctions/components/AuctionFilters.js +1 -0
  28. package/dist/features/blog/components/BlogFilters.js +1 -0
  29. package/dist/features/blog/components/BlogIndexListing.js +1 -1
  30. package/dist/features/categories/components/CategoriesIndexListing.js +1 -1
  31. package/dist/features/categories/components/CategoryFilters.js +1 -0
  32. package/dist/features/categories/components/CategoryProductsListing.js +1 -1
  33. package/dist/features/categories/hooks/useCategories.js +1 -0
  34. package/dist/features/events/components/AdminEventsView.js +1 -1
  35. package/dist/features/events/components/EventFilters.js +1 -0
  36. package/dist/features/events/components/EventsIndexListing.js +1 -1
  37. package/dist/features/orders/components/OrderFilters.js +1 -0
  38. package/dist/features/pre-orders/components/PreOrderFilters.js +1 -0
  39. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +1 -1
  40. package/dist/features/products/components/AuctionsIndexListing.js +1 -1
  41. package/dist/features/products/components/ProductFilters.js +1 -0
  42. package/dist/features/products/components/ProductsIndexListing.js +1 -1
  43. package/dist/features/promotions/components/CouponsIndexListing.js +2 -2
  44. package/dist/features/reviews/components/ReviewFilters.js +1 -0
  45. package/dist/features/reviews/components/ReviewsIndexListing.js +1 -1
  46. package/dist/features/seller/components/SellerAuctionsView.js +1 -1
  47. package/dist/features/seller/components/SellerBidsView.js +1 -1
  48. package/dist/features/seller/components/SellerCouponsView.js +1 -1
  49. package/dist/features/seller/components/SellerOffersView.js +1 -1
  50. package/dist/features/seller/components/SellerOrdersView.js +1 -1
  51. package/dist/features/seller/components/SellerPayoutsView.js +1 -1
  52. package/dist/features/seller/components/SellerPreOrdersView.js +1 -1
  53. package/dist/features/seller/components/SellerPrizeDrawsView.js +1 -1
  54. package/dist/features/seller/components/SellerProductsView.js +1 -1
  55. package/dist/features/stores/components/StoreAuctionsListing.js +1 -1
  56. package/dist/features/stores/components/StoreFilters.js +1 -0
  57. package/dist/features/stores/components/StorePreOrdersListing.js +1 -1
  58. package/dist/features/stores/components/StoreProductsListing.js +1 -1
  59. package/dist/features/stores/components/StoresIndexListing.js +1 -1
  60. package/dist/index.d.ts +0 -27
  61. package/dist/index.js +1720 -1762
  62. package/dist/server-entry.d.ts +25 -0
  63. package/dist/server-entry.js +28 -0
  64. package/package.json +2 -2
@@ -87,5 +87,5 @@ export function StorePreOrdersListing({ storeId, initialData }) {
87
87
  table.setPage(1);
88
88
  }, [searchInput, table]);
89
89
  const gridClass = "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 gap-4";
90
- return (_jsxs("div", { className: "min-h-[200px]", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search store pre-orders...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: PREORDER_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); table.setPage(1); }, view: view, onViewChange: (v) => { setView(v); table.set("view", v); }, onResetAll: resetAll, hasActiveState: hasActiveState }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: page, totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: gridClass, children: Array.from({ length: 8 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-square bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-3 space-y-2", children: [_jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-3/4" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" }), _jsx("div", { className: "h-8 bg-zinc-200 dark:bg-slate-700 rounded" })] })] }, i))) })) : preOrders.length === 0 ? (_jsx("p", { className: "py-12 text-center text-sm text-zinc-500 dark:text-zinc-400", children: "This store has no pre-orders yet." })) : view === "list" ? (_jsx("div", { className: "flex flex-col divide-y divide-zinc-100 dark:divide-zinc-800 rounded-xl border border-zinc-100 dark:border-zinc-800", children: preOrders.map((product) => (_jsx(MarketplacePreorderCard, { product: product, variant: "list", hrefBuilder: (p) => String(ROUTES.PUBLIC.PRE_ORDER_DETAIL(p.id)) }, product.id))) })) : (_jsx("div", { className: gridClass, children: preOrders.map((product) => (_jsx(MarketplacePreorderCard, { product: product, variant: "grid", hrefBuilder: (p) => String(ROUTES.PUBLIC.PRE_ORDER_DETAIL(p.id)) }, product.id))) })) }), filterOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40", "aria-hidden": "true", onClick: () => setFilterOpen(false) }), _jsxs("div", { className: "fixed inset-y-0 left-0 z-50 flex w-80 flex-col bg-white dark:bg-slate-900 shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: [_jsxs("span", { className: "flex items-center gap-2 text-base font-semibold text-zinc-900 dark:text-zinc-100", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Filters"] }), _jsxs("div", { className: "flex items-center gap-2", children: [activeFilterCount > 0 && (_jsx("button", { type: "button", onClick: clearFilters, className: "text-xs text-zinc-500 hover:text-rose-500 dark:text-zinc-400 transition-colors", children: "Clear all" })), _jsx("button", { type: "button", onClick: () => setFilterOpen(false), "aria-label": "Close filters", className: "rounded-lg p-1.5 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-4 py-4", children: _jsx(ProductFilters, { table: pendingTable, currencyPrefix: "\u20B9" }) }), _jsx("div", { className: "border-t border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: _jsxs("button", { type: "button", onClick: applyFilters, className: "w-full rounded-lg bg-primary py-2.5 text-sm font-semibold text-white hover:bg-primary-600 transition-colors active:scale-[0.98]", children: ["Apply Filters", activeFilterCount > 0 ? ` (${activeFilterCount})` : ""] }) })] })] }))] }));
90
+ return (_jsxs("div", { className: "min-h-[200px]", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search store pre-orders...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: PREORDER_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); }, view: view, onViewChange: (v) => { setView(v); table.set("view", v); }, onResetAll: resetAll, hasActiveState: hasActiveState }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: page, totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: gridClass, children: Array.from({ length: 8 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-square bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-3 space-y-2", children: [_jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-3/4" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" }), _jsx("div", { className: "h-8 bg-zinc-200 dark:bg-slate-700 rounded" })] })] }, i))) })) : preOrders.length === 0 ? (_jsx("p", { className: "py-12 text-center text-sm text-zinc-500 dark:text-zinc-400", children: "This store has no pre-orders yet." })) : view === "list" ? (_jsx("div", { className: "flex flex-col divide-y divide-zinc-100 dark:divide-zinc-800 rounded-xl border border-zinc-100 dark:border-zinc-800", children: preOrders.map((product) => (_jsx(MarketplacePreorderCard, { product: product, variant: "list", hrefBuilder: (p) => String(ROUTES.PUBLIC.PRE_ORDER_DETAIL(p.id)) }, product.id))) })) : (_jsx("div", { className: gridClass, children: preOrders.map((product) => (_jsx(MarketplacePreorderCard, { product: product, variant: "grid", hrefBuilder: (p) => String(ROUTES.PUBLIC.PRE_ORDER_DETAIL(p.id)) }, product.id))) })) }), filterOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40", "aria-hidden": "true", onClick: () => setFilterOpen(false) }), _jsxs("div", { className: "fixed inset-y-0 left-0 z-50 flex w-80 flex-col bg-white dark:bg-slate-900 shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: [_jsxs("span", { className: "flex items-center gap-2 text-base font-semibold text-zinc-900 dark:text-zinc-100", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Filters"] }), _jsxs("div", { className: "flex items-center gap-2", children: [activeFilterCount > 0 && (_jsx("button", { type: "button", onClick: clearFilters, className: "text-xs text-zinc-500 hover:text-rose-500 dark:text-zinc-400 transition-colors", children: "Clear all" })), _jsx("button", { type: "button", onClick: () => setFilterOpen(false), "aria-label": "Close filters", className: "rounded-lg p-1.5 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-4 py-4", children: _jsx(ProductFilters, { table: pendingTable, currencyPrefix: "\u20B9" }) }), _jsx("div", { className: "border-t border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: _jsxs("button", { type: "button", onClick: applyFilters, className: "w-full rounded-lg bg-primary py-2.5 text-sm font-semibold text-white hover:bg-primary-600 transition-colors active:scale-[0.98]", children: ["Apply Filters", activeFilterCount > 0 ? ` (${activeFilterCount})` : ""] }) })] })] }))] }));
91
91
  }
@@ -123,5 +123,5 @@ export function StoreProductsListing({ storeId, initialData }) {
123
123
  });
124
124
  showToast("Added to cart", "success");
125
125
  }, [localCart, showToast]);
126
- return (_jsxs("div", { className: "min-h-[200px]", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search store products...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: PRODUCT_PUBLIC_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); table.setPage(1); }, view: view === "card" ? "grid" : "list", onViewChange: (v) => handleViewToggle(v === "grid" ? "card" : "list"), onResetAll: resetAll, hasActiveState: hasActiveState }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: page, totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-6", children: Array.from({ length: 8 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-square bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-3 space-y-2", children: [_jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-3/4" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" }), _jsx("div", { className: "h-4 bg-zinc-200 dark:bg-slate-700 rounded w-1/3" })] })] }, i))) })) : (_jsx(ProductGrid, { products: products, getProductHref: (p) => String(ROUTES.PUBLIC.PRODUCT_DETAIL(p.slug || p.id)), view: view, emptyLabel: "This store has no products yet.", onWishlistToggle: handleWishlistToggle, wishlistedIds: wishlistedIds, onAddToCart: handleAddToCart })) }), filterOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40", "aria-hidden": "true", onClick: () => setFilterOpen(false) }), _jsxs("div", { className: "fixed inset-y-0 left-0 z-50 flex w-80 flex-col bg-white dark:bg-slate-900 shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: [_jsxs("span", { className: "flex items-center gap-2 text-base font-semibold text-zinc-900 dark:text-zinc-100", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Filters"] }), _jsxs("div", { className: "flex items-center gap-2", children: [activeFilterCount > 0 && (_jsx("button", { type: "button", onClick: clearFilters, className: "text-xs text-zinc-500 hover:text-rose-500 dark:text-zinc-400 transition-colors", children: "Clear all" })), _jsx("button", { type: "button", onClick: () => setFilterOpen(false), "aria-label": "Close filters", className: "rounded-lg p-1.5 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-4 py-4", children: _jsx(ProductFilters, { table: pendingTable, currencyPrefix: "\u20B9" }) }), _jsx("div", { className: "border-t border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: _jsxs("button", { type: "button", onClick: applyFilters, className: "w-full rounded-lg bg-primary py-2.5 text-sm font-semibold text-white hover:bg-primary-600 transition-colors active:scale-[0.98]", children: ["Apply Filters", activeFilterCount > 0 ? ` (${activeFilterCount})` : ""] }) })] })] }))] }));
126
+ return (_jsxs("div", { className: "min-h-[200px]", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search store products...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: PRODUCT_PUBLIC_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); }, view: view === "card" ? "grid" : "list", onViewChange: (v) => handleViewToggle(v === "grid" ? "card" : "list"), onResetAll: resetAll, hasActiveState: hasActiveState }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: page, totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: "grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-6", children: Array.from({ length: 8 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-square bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-3 space-y-2", children: [_jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-3/4" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" }), _jsx("div", { className: "h-4 bg-zinc-200 dark:bg-slate-700 rounded w-1/3" })] })] }, i))) })) : (_jsx(ProductGrid, { products: products, getProductHref: (p) => String(ROUTES.PUBLIC.PRODUCT_DETAIL(p.slug || p.id)), view: view, emptyLabel: "This store has no products yet.", onWishlistToggle: handleWishlistToggle, wishlistedIds: wishlistedIds, onAddToCart: handleAddToCart })) }), filterOpen && (_jsxs(_Fragment, { children: [_jsx("div", { className: "fixed inset-0 z-40 bg-black/40", "aria-hidden": "true", onClick: () => setFilterOpen(false) }), _jsxs("div", { className: "fixed inset-y-0 left-0 z-50 flex w-80 flex-col bg-white dark:bg-slate-900 shadow-2xl", children: [_jsxs("div", { className: "flex items-center justify-between border-b border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: [_jsxs("span", { className: "flex items-center gap-2 text-base font-semibold text-zinc-900 dark:text-zinc-100", children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Filters"] }), _jsxs("div", { className: "flex items-center gap-2", children: [activeFilterCount > 0 && (_jsx("button", { type: "button", onClick: clearFilters, className: "text-xs text-zinc-500 hover:text-rose-500 dark:text-zinc-400 transition-colors", children: "Clear all" })), _jsx("button", { type: "button", onClick: () => setFilterOpen(false), "aria-label": "Close filters", className: "rounded-lg p-1.5 text-zinc-500 hover:bg-zinc-100 dark:hover:bg-slate-800 transition-colors", children: _jsx(X, { className: "h-5 w-5" }) })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-4 py-4", children: _jsx(ProductFilters, { table: pendingTable, currencyPrefix: "\u20B9" }) }), _jsx("div", { className: "border-t border-zinc-200 dark:border-slate-700 px-4 py-3.5", children: _jsxs("button", { type: "button", onClick: applyFilters, className: "w-full rounded-lg bg-primary py-2.5 text-sm font-semibold text-white hover:bg-primary-600 transition-colors active:scale-[0.98]", children: ["Apply Filters", activeFilterCount > 0 ? ` (${activeFilterCount})` : ""] }) })] })] }))] }));
127
127
  }
@@ -102,7 +102,7 @@ export function StoresIndexListing({ initialData }) {
102
102
  filters: filterParts.length > 0 ? filterParts.join(",") : undefined,
103
103
  }, { initialData });
104
104
  const selection = useBulkSelection({ items: stores, keyExtractor: (s) => s.id ?? s.storeSlug });
105
- return (_jsxs("div", { className: "min-h-screen", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search stores...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: STORE_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); table.setPage(1); }, hideViewToggle: true, onResetAll: resetAll, hasActiveState: hasActiveState, bulkMode: selection.isSelecting, bulkSelectedCount: selection.selectedCount, bulkTotalCount: stores.length, onBulkSelectAll: selection.toggleAll, onBulkClear: selection.clearSelection }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: table.getNumber("page", 1), totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 6 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-video bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-4 space-y-2.5", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx("div", { className: "h-10 w-10 rounded-lg bg-zinc-200 dark:bg-slate-700" }) }), _jsx("div", { className: "h-4 bg-zinc-200 dark:bg-slate-700 rounded w-2/3" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-full" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" })] })] }, i))) })) : stores.length === 0 ? (_jsx("p", { className: "py-16 text-center text-sm text-zinc-500 dark:text-zinc-400", children: "No stores found." })) : (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", children: stores.map((store) => {
105
+ return (_jsxs("div", { className: "min-h-screen", children: [_jsx(ListingToolbar, { filterCount: activeFilterCount, onFiltersClick: openFilters, searchValue: searchInput, searchPlaceholder: "Search stores...", onSearchChange: setSearchInput, onSearchCommit: commitSearch, sortValue: table.get("sort") || "-createdAt", sortOptions: STORE_SORT_OPTIONS, onSortChange: (v) => { table.set("sort", v); }, hideViewToggle: true, onResetAll: resetAll, hasActiveState: hasActiveState, bulkMode: selection.isSelecting, bulkSelectedCount: selection.selectedCount, bulkTotalCount: stores.length, onBulkSelectAll: selection.toggleAll, onBulkClear: selection.clearSelection }), totalPages > 1 && (_jsx("div", { className: "sticky top-[calc(var(--header-height,0px)+44px)] z-10 flex justify-center bg-white/95 dark:bg-slate-900/95 backdrop-blur-sm border-b border-zinc-200 dark:border-slate-700 px-3 py-1.5", children: _jsx(Pagination, { currentPage: table.getNumber("page", 1), totalPages: totalPages, onPageChange: (p) => table.setPage(p) }) })), _jsx("div", { className: "py-6", children: isLoading ? (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", children: Array.from({ length: 6 }).map((_, i) => (_jsxs("div", { className: "rounded-xl border border-zinc-100 dark:border-slate-700 overflow-hidden animate-pulse", children: [_jsx("div", { className: "aspect-video bg-zinc-200 dark:bg-slate-700" }), _jsxs("div", { className: "p-4 space-y-2.5", children: [_jsx("div", { className: "flex items-center gap-2", children: _jsx("div", { className: "h-10 w-10 rounded-lg bg-zinc-200 dark:bg-slate-700" }) }), _jsx("div", { className: "h-4 bg-zinc-200 dark:bg-slate-700 rounded w-2/3" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-full" }), _jsx("div", { className: "h-3 bg-zinc-200 dark:bg-slate-700 rounded w-1/2" })] })] }, i))) })) : stores.length === 0 ? (_jsx("p", { className: "py-16 text-center text-sm text-zinc-500 dark:text-zinc-400", children: "No stores found." })) : (_jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", children: stores.map((store) => {
106
106
  const storeKey = store.storeSlug ?? store.id;
107
107
  return (_jsx(InteractiveStoreCard, { store: store, href: String(ROUTES.PUBLIC.STORE_DETAIL(storeKey)), selectable: selection.isSelecting, isSelected: selection.isSelected(store.id ?? store.storeSlug), onSelect: (id, sel) => { void sel; selection.toggle(id); } }, storeKey));
108
108
  }) })) }), _jsx(BulkActionsBar, { selectedCount: selection.selectedCount, onClearSelection: selection.clearSelection, actions: [
package/dist/index.d.ts CHANGED
@@ -569,7 +569,6 @@ export { eventEntriesSeedData } from "./seed/index";
569
569
  export { eventsSeedData } from "./seed/index";
570
570
  export { faqSeedData } from "./seed/index";
571
571
  export { formatSeedPrice } from "./seed/index";
572
- export { generateMergedFirestoreIndexFile } from "./seed/index";
573
572
  export { getSeedLocale } from "./seed/index";
574
573
  export { homepageSectionsSeedData } from "./seed/index";
575
574
  export { makeAddress } from "./seed/index";
@@ -601,7 +600,6 @@ export { makeSession } from "./seed/index";
601
600
  export { makeStore } from "./seed/index";
602
601
  export { makeUser } from "./seed/index";
603
602
  export { makeWinningBid } from "./seed/index";
604
- export { mergeFirestoreIndices } from "./seed/index";
605
603
  export { notificationsSeedData } from "./seed/index";
606
604
  export { ordersSeedData } from "./seed/index";
607
605
  export { payoutsSeedData } from "./seed/index";
@@ -893,7 +891,6 @@ export { HowOrdersWorkView } from "./features/about/index";
893
891
  export { HowPayoutsWorkView } from "./features/about/index";
894
892
  export { HowPreOrdersWorkView } from "./features/about/index";
895
893
  export { HowReviewsWorkView } from "./features/about/index";
896
- export { PolicyPageView } from "./features/about/index";
897
894
  export { PublicProfileView } from "./features/about/index";
898
895
  export { SecurityPrivacyView } from "./features/about/index";
899
896
  export { ShippingPolicyView } from "./features/about/index";
@@ -1449,7 +1446,6 @@ export { BlogCard } from "./features/blog/index";
1449
1446
  export { BlogCategoryTabs } from "./features/blog/index";
1450
1447
  export { BlogFeaturedCard } from "./features/blog/index";
1451
1448
  export { BlogFilters } from "./features/blog/index";
1452
- export { BlogIndexPageView } from "./features/blog/components/BlogIndexPageView";
1453
1449
  export { BlogIndexListing } from "./features/blog/index";
1454
1450
  export type { BlogIndexListingProps } from "./features/blog/index";
1455
1451
  export { BlogListView } from "./features/blog/index";
@@ -1533,9 +1529,6 @@ export { CATEGORY_FILTER_KEYS } from "./features/categories/index";
1533
1529
  export { CATEGORY_PUBLIC_SORT_OPTIONS } from "./features/categories/index";
1534
1530
  export { CATEGORY_SELLER_SORT_OPTIONS } from "./features/categories/index";
1535
1531
  export { CategoriesListView } from "./features/categories/index";
1536
- export { CategoriesIndexPageView } from "./features/categories/components/CategoriesIndexPageView";
1537
- export { CategoryDetailPageView } from "./features/categories/components/CategoryDetailPageView";
1538
- export { BrandDetailPageView } from "./features/categories/components/BrandDetailPageView";
1539
1532
  export { CategoryCard } from "./features/categories/index";
1540
1533
  export { CategoryFilters } from "./features/categories/index";
1541
1534
  export { CategoryForm } from "./features/categories/index";
@@ -1745,7 +1738,6 @@ export type { EventRaffleWinnerViewProps } from "./features/events/index";
1745
1738
  export { SpinWheelView } from "./features/events/index";
1746
1739
  export type { SpinWheelViewProps } from "./features/events/index";
1747
1740
  export { EventsListView } from "./features/events/index";
1748
- export { EventsListPageView } from "./features/events/components/EventsListPageView";
1749
1741
  export { EventsIndexListing } from "./features/events/index";
1750
1742
  export type { EventsIndexListingProps } from "./features/events/index";
1751
1743
  export { buildEventColumns } from "./features/events/index";
@@ -1912,7 +1904,6 @@ export { AdSlot } from "./features/homepage/index";
1912
1904
  export type { AdSlotProps } from "./features/homepage/index";
1913
1905
  export { registerAdSlot, registerAdSlots, getAdSlot, getAllAdSlots, unregisterAdSlot, clearAdRegistry, setAdConsentGranted, isAdConsentGranted, isAdSlotRenderable, } from "./features/homepage/index";
1914
1906
  export type { AdSlotId, AdProvider, AdSlotConfig } from "./features/homepage/index";
1915
- export { MarketplaceHomepageView } from "./features/homepage/index";
1916
1907
  export type { MarketplaceHomepageViewProps, MarketplaceHomepageViewAdSlots, } from "./features/homepage/index";
1917
1908
  export { BeforeAfterCard } from "./features/homepage/index";
1918
1909
  export { CharacterHotspot } from "./features/homepage/index";
@@ -2257,10 +2248,8 @@ export { PaymentsRepository } from "./features/payments/server";
2257
2248
  export { MarketplacePreorderCard } from "./features/pre-orders/index";
2258
2249
  export { PreorderBadge } from "./features/pre-orders/index";
2259
2250
  export { PreorderCard } from "./features/pre-orders/index";
2260
- export { PreOrdersListView } from "./features/pre-orders/index";
2261
2251
  export { PreOrdersIndexListing } from "./features/pre-orders/index";
2262
2252
  export type { PreOrdersIndexListingProps } from "./features/pre-orders/index";
2263
- export { PreOrderDetailPageView } from "./features/pre-orders/index";
2264
2253
  export { buildPreorderColumns } from "./features/pre-orders/index";
2265
2254
  export { getPreorderStatus } from "./features/pre-orders/index";
2266
2255
  export { preorderAdminColumns } from "./features/pre-orders/index";
@@ -2278,9 +2267,6 @@ export { PreordersRepository } from "./features/pre-orders/server";
2278
2267
  export { preOrdersGET } from "./features/pre-orders/server";
2279
2268
  export { preOrdersPOST } from "./features/pre-orders/server";
2280
2269
  export { AuctionDetailView } from "./features/products/index";
2281
- export { AuctionDetailPageView } from "./features/auctions/index";
2282
- export { AuctionsListView } from "./features/auctions/components/AuctionsListView";
2283
- export { BundlesListView } from "./features/categories/components/BundlesListView";
2284
2270
  export type { BundlesListViewProps } from "./features/categories/components/BundlesListView";
2285
2271
  export { BundleDetailView } from "./features/categories/components/BundleDetailView";
2286
2272
  export type { BundleDetailViewProps } from "./features/categories/components/BundleDetailView";
@@ -2318,19 +2304,16 @@ export { PRODUCT_UPDATABLE_FIELDS } from "./features/products/index";
2318
2304
  export { PlaceBidForm } from "./features/products/index";
2319
2305
  export { PreOrderDetailView } from "./features/products/index";
2320
2306
  export { PreOrdersView } from "./features/products/index";
2321
- export { PrizeDrawsListingView } from "./features/products/components/PrizeDrawsListingView";
2322
2307
  export type { PrizeDrawsListingViewProps } from "./features/products/components/PrizeDrawsListingView";
2323
2308
  export { PrizeDrawsIndexListing } from "./features/products/index";
2324
2309
  export type { PrizeDrawsIndexListingProps } from "./features/products/index";
2325
2310
  export { MarketplacePrizeDrawCard } from "./features/products/index";
2326
2311
  export type { MarketplacePrizeDrawCardProps, MarketplacePrizeDrawCardData, MarketplacePrizeDrawCardLabels, } from "./features/products/index";
2327
- export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
2328
2312
  export type { PrizeDrawDetailPageViewProps } from "./features/products/components/PrizeDrawDetailPageView";
2329
2313
  export { PrizeDrawEntryActions } from "./features/products/index";
2330
2314
  export type { PrizeDrawEntryActionsProps } from "./features/products/index";
2331
2315
  export { ProductCard } from "./features/products/index";
2332
2316
  export { ProductDetailView } from "./features/products/index";
2333
- export { ProductDetailPageView } from "./features/products/components/ProductDetailPageView";
2334
2317
  export type { ProductDetailPageViewProps } from "./features/products/components/ProductDetailPageView";
2335
2318
  export { ShareButton } from "./features/products/components/ShareButton";
2336
2319
  export { ProductFeatureBadges } from "./features/products/index";
@@ -2346,7 +2329,6 @@ export { ProductGrid } from "./features/products/index";
2346
2329
  export { ProductInfo } from "./features/products/index";
2347
2330
  export { ProductStatusValues } from "./features/products/index";
2348
2331
  export { ProductTabs } from "./features/products/index";
2349
- export { ProductsIndexPageView } from "./features/products/components/ProductsIndexPageView";
2350
2332
  export { ProductsView } from "./features/products/index";
2351
2333
  export { RelatedProducts } from "./features/products/index";
2352
2334
  export { buildProductColumns } from "./features/products/index";
@@ -2510,8 +2492,6 @@ export { ReviewStatusValues } from "./features/reviews/index";
2510
2492
  export { ReviewSummary } from "./features/reviews/index";
2511
2493
  export { ReviewsList } from "./features/reviews/index";
2512
2494
  export { ReviewsListView } from "./features/reviews/index";
2513
- export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
2514
- export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
2515
2495
  export type { ReviewDetailPageViewProps } from "./features/reviews/components/ReviewDetailPageView";
2516
2496
  export { ReviewsIndexListing } from "./features/reviews/components/ReviewsIndexListing";
2517
2497
  export type { ReviewsIndexListingProps } from "./features/reviews/components/ReviewsIndexListing";
@@ -2788,7 +2768,6 @@ export { StoreProductsView } from "./features/stores/index";
2788
2768
  export { StoreReviewsView } from "./features/stores/index";
2789
2769
  export { StoreStatusValues } from "./features/stores/index";
2790
2770
  export { StoresListView } from "./features/stores/index";
2791
- export { StoresIndexPageView } from "./features/stores/components/StoresIndexPageView";
2792
2771
  export { StoresIndexListing } from "./features/stores/index";
2793
2772
  export type { StoresIndexListingProps } from "./features/stores/index";
2794
2773
  export { StoreProductsListing } from "./features/stores/components/StoreProductsListing";
@@ -2797,14 +2776,8 @@ export { StoreAuctionsListing } from "./features/stores/components/StoreAuctions
2797
2776
  export type { StoreAuctionsListingProps } from "./features/stores/components/StoreAuctionsListing";
2798
2777
  export { StoreReviewsListing } from "./features/stores/components/StoreReviewsListing";
2799
2778
  export type { StoreReviewsListingProps } from "./features/stores/components/StoreReviewsListing";
2800
- export { StoreDetailLayoutView } from "./features/stores/components/StoreDetailLayoutView";
2801
- export { StoreProductsPageView } from "./features/stores/components/StoreProductsPageView";
2802
- export { StoreAuctionsPageView } from "./features/stores/components/StoreAuctionsPageView";
2803
2779
  export { StoreReviewsPageView } from "./features/stores/components/StoreReviewsPageView";
2804
- export { StorePreOrdersPageView } from "./features/stores/components/StorePreOrdersPageView";
2805
- export { StorePrizeDrawsPageView } from "./features/stores/components/StorePrizeDrawsPageView";
2806
2780
  export type { StorePrizeDrawsPageViewProps } from "./features/stores/components/StorePrizeDrawsPageView";
2807
- export { StoreBundlesPageView } from "./features/stores/components/StoreBundlesPageView";
2808
2781
  export type { StoreBundlesPageViewProps } from "./features/stores/components/StoreBundlesPageView";
2809
2782
  export { StorePreOrdersListing } from "./features/stores/components/StorePreOrdersListing";
2810
2783
  export type { StorePreOrdersListingProps } from "./features/stores/components/StorePreOrdersListing";