@mohasinac/appkit 4.13.1 → 4.14.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/_internal/client/features/layout/DashboardLayoutClient.js +14 -5
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +3 -0
- package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +6 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.d.ts +8 -0
- package/dist/_internal/client/features/lottery/LotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/LotteryListView.d.ts +7 -0
- package/dist/_internal/client/features/lottery/LotteryListView.js +1 -1
- package/dist/_internal/client/features/lottery/PrizeDrawLotteryDetailView.js +4 -1
- package/dist/_internal/client/features/lottery/slot-collage-items.d.ts +15 -0
- package/dist/_internal/client/features/lottery/slot-collage-items.js +13 -0
- package/dist/_internal/server/features/auctions/actions.js +6 -0
- package/dist/_internal/server/features/bundles/data.d.ts +16 -0
- package/dist/_internal/server/features/bundles/data.js +26 -0
- package/dist/_internal/server/features/bundles/index.d.ts +1 -1
- package/dist/_internal/server/features/bundles/index.js +1 -1
- package/dist/_internal/server/features/checkout/actions.js +6 -0
- package/dist/_internal/server/features/checkout/locked-lines.d.ts +38 -0
- package/dist/_internal/server/features/checkout/locked-lines.js +171 -0
- package/dist/_internal/server/features/homepage/index.d.ts +0 -1
- package/dist/_internal/server/features/homepage/index.js +7 -1
- package/dist/_internal/server/features/lottery/adapters.js +4 -0
- package/dist/_internal/server/features/products/data.js +15 -37
- package/dist/_internal/server/features/products/index.d.ts +1 -1
- package/dist/_internal/server/features/products/index.js +1 -1
- package/dist/_internal/server/features/products/list-public.d.ts +46 -20
- package/dist/_internal/server/features/products/list-public.js +266 -90
- package/dist/_internal/server/features/products/listing-tab-counts.d.ts +44 -0
- package/dist/_internal/server/features/products/listing-tab-counts.js +97 -0
- package/dist/_internal/server/features/site-settings/adapters.d.ts +51 -0
- package/dist/_internal/server/features/site-settings/adapters.js +75 -0
- package/dist/_internal/server/features/site-settings/index.d.ts +1 -0
- package/dist/_internal/server/features/site-settings/index.js +1 -0
- package/dist/_internal/server/features/stores/adapters.d.ts +56 -0
- package/dist/_internal/server/features/stores/adapters.js +91 -0
- package/dist/_internal/server/features/stores/index.d.ts +1 -0
- package/dist/_internal/server/features/stores/index.js +1 -0
- package/dist/_internal/server/jobs/core/auctionSettlement.js +56 -2
- package/dist/_internal/server/jobs/core/offerExpiry.js +45 -9
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +5 -0
- package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +33 -1
- package/dist/_internal/server/jobs/handlers/messages.d.ts +7 -0
- package/dist/_internal/server/jobs/handlers/messages.js +10 -0
- package/dist/_internal/shared/actions/action-registry.js +15 -1
- package/dist/_internal/shared/checkout/lanes.d.ts +25 -0
- package/dist/_internal/shared/checkout/lanes.js +26 -0
- package/dist/_internal/shared/features/auctions/config.d.ts +27 -0
- package/dist/_internal/shared/features/auctions/config.js +27 -0
- package/dist/_internal/shared/features/blog/schema.d.ts +2 -2
- package/dist/_internal/shared/features/cart/schema.d.ts +12 -12
- package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +32 -32
- package/dist/_internal/shared/features/emi/schedule.d.ts +24 -3
- package/dist/_internal/shared/features/emi/schedule.js +20 -5
- package/dist/_internal/shared/features/events/schema.d.ts +2 -2
- package/dist/_internal/shared/features/homepage/section-gate.d.ts +14 -0
- package/dist/_internal/shared/features/homepage/section-gate.js +51 -0
- package/dist/_internal/shared/features/offers/config.d.ts +30 -0
- package/dist/_internal/shared/features/offers/config.js +59 -0
- package/dist/_internal/shared/features/orders/schema.d.ts +8 -8
- package/dist/_internal/shared/features/products/schema.d.ts +32 -32
- package/dist/_internal/shared/features/products/to-product-item.js +6 -0
- package/dist/_internal/shared/features/reviews/schema.d.ts +2 -2
- package/dist/_internal/shared/features/site-settings/fees.d.ts +60 -0
- package/dist/_internal/shared/features/site-settings/fees.js +39 -0
- package/dist/_internal/shared/features/site-settings/types.d.ts +40 -0
- package/dist/_internal/shared/features/site-settings/types.js +1 -0
- package/dist/_internal/shared/history/history.d.ts +66 -0
- package/dist/_internal/shared/history/history.js +158 -0
- package/dist/_internal/shared/history/index.d.ts +4 -0
- package/dist/_internal/shared/history/index.js +2 -0
- package/dist/_internal/shared/history/types.d.ts +61 -0
- package/dist/_internal/shared/history/types.js +6 -0
- package/dist/_internal/shared/listing-types/_registry.d.ts +54 -1
- package/dist/_internal/shared/listing-types/_registry.js +67 -0
- package/dist/_internal/shared/listing-types/art/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/art/config.js +5 -0
- package/dist/_internal/shared/listing-types/auction/config.d.ts +13 -0
- package/dist/_internal/shared/listing-types/auction/config.js +21 -0
- package/dist/_internal/shared/listing-types/availability.d.ts +79 -0
- package/dist/_internal/shared/listing-types/availability.js +104 -0
- package/dist/_internal/shared/listing-types/capabilities.d.ts +15 -0
- package/dist/_internal/shared/listing-types/capabilities.js +12 -0
- package/dist/_internal/shared/listing-types/classified/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/classified/config.js +5 -0
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/digital-code/config.js +22 -2
- package/dist/_internal/shared/listing-types/live/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/live/config.js +5 -0
- package/dist/_internal/shared/listing-types/pre-order/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/pre-order/config.js +19 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +11 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +15 -0
- package/dist/_internal/shared/listing-types/standard/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/standard/config.js +5 -0
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +3 -0
- package/dist/_internal/shared/listing-types/stickers/config.js +5 -0
- package/dist/client.d.ts +7 -5
- package/dist/client.js +2 -2
- package/dist/constants/api-endpoints.d.ts +6 -0
- package/dist/constants/api-endpoints.js +2 -0
- package/dist/constants/field-names.d.ts +49 -2
- package/dist/constants/field-names.js +53 -2
- package/dist/constants/table-keys.d.ts +17 -0
- package/dist/constants/table-keys.js +17 -0
- package/dist/errors/error-codes.d.ts +13 -1
- package/dist/errors/error-codes.js +13 -1
- package/dist/errors/error-display-map.js +12 -3
- package/dist/errors/messages.d.ts +10 -2
- package/dist/errors/messages.js +10 -2
- package/dist/features/about/components/AboutView.d.ts +3 -0
- package/dist/features/about/components/AboutView.js +3 -2
- package/dist/features/about/components/PolicyPageView.d.ts +2 -1
- package/dist/features/about/components/PolicyPageView.js +61 -23
- package/dist/features/about/components/PublicProfileView.js +5 -0
- package/dist/features/about/schemas/firestore.d.ts +3 -0
- package/dist/features/account/components/UserOrdersView.js +7 -0
- package/dist/features/account/components/index.d.ts +0 -2
- package/dist/features/account/components/index.js +0 -1
- package/dist/features/account/schemas/index.d.ts +2 -2
- package/dist/features/account/types/index.d.ts +21 -2
- package/dist/features/addresses/schemas/index.d.ts +4 -4
- package/dist/features/admin/components/AdminArtView.js +8 -3
- package/dist/features/admin/components/AdminClassifiedView.js +8 -3
- package/dist/features/admin/components/AdminDigitalCodesView.js +8 -3
- package/dist/features/admin/components/AdminFeatureFlagsView.js +1 -0
- package/dist/features/admin/components/AdminLiveView.js +8 -3
- package/dist/features/admin/components/AdminOffersView.d.ts +4 -0
- package/dist/features/admin/components/AdminOffersView.js +186 -0
- package/dist/features/admin/components/AdminOrdersView.js +10 -1
- package/dist/features/admin/components/AdminPrizeDrawsView.js +5 -0
- package/dist/features/admin/components/AdminProductsView.js +16 -29
- package/dist/features/admin/components/AdminSiteSettingsView.js +31 -13
- package/dist/features/admin/components/AdminSiteView.js +6 -2
- package/dist/features/admin/components/AdminStickersView.js +8 -3
- package/dist/features/admin/components/index.d.ts +2 -0
- package/dist/features/admin/components/index.js +1 -0
- package/dist/features/admin/constants/filter-tabs.d.ts +86 -0
- package/dist/features/admin/constants/filter-tabs.js +55 -0
- package/dist/features/admin/schemas/firestore.d.ts +122 -3
- package/dist/features/admin/schemas/firestore.js +1 -0
- package/dist/features/auctions/actions/bid-actions.d.ts +20 -5
- package/dist/features/auctions/actions/bid-actions.js +93 -20
- package/dist/features/auctions/components/AuctionDetailPageView.js +11 -6
- package/dist/features/auctions/components/AuctionsListView.js +5 -6
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +7 -0
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +19 -2
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +1 -2
- package/dist/features/auctions/components/PlaceBidFormClient.js +8 -4
- package/dist/features/auctions/repository/bid.repository.d.ts +13 -0
- package/dist/features/auctions/repository/bid.repository.js +23 -0
- package/dist/features/auctions/schemas/firestore.d.ts +17 -0
- package/dist/features/auctions/schemas/index.d.ts +12 -12
- package/dist/features/auth/permissions/constants.d.ts +1 -1
- package/dist/features/auth/permissions/constants.js +10 -1
- package/dist/features/blog/actions/blog-actions.d.ts +7 -7
- package/dist/features/blog/schemas/index.d.ts +6 -6
- package/dist/features/cart/repository/cart.repository.js +1 -0
- package/dist/features/cart/schemas/firestore.d.ts +15 -0
- package/dist/features/catalogue/schemas/validation.d.ts +4 -4
- package/dist/features/categories/components/BrandDetailPageView.js +23 -40
- package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -7
- package/dist/features/categories/components/BrandDetailTabs.js +8 -12
- package/dist/features/categories/components/BundleCollage.js +1 -1
- package/dist/features/categories/components/CategoryDetailPageView.js +53 -57
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +10 -8
- package/dist/features/categories/components/CategoryDetailTabs.js +11 -16
- package/dist/features/categories/components/CategoryProductsListing.js +11 -1
- package/dist/features/categories/components/ConcernCard.js +7 -1
- package/dist/features/categories/schemas/firestore.d.ts +13 -0
- package/dist/features/categories/schemas/index.d.ts +26 -26
- package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +16 -1
- package/dist/features/classified/components/ClassifiedDetailPageView.js +23 -3
- package/dist/features/events/components/AdminEventsView.js +15 -11
- package/dist/features/events/components/EventFilters.d.ts +9 -1
- package/dist/features/events/components/EventFilters.js +45 -21
- package/dist/features/events/components/EventsIndexListing.d.ts +6 -1
- package/dist/features/events/components/EventsIndexListing.js +2 -2
- package/dist/features/events/components/EventsListPageView.js +13 -4
- package/dist/features/events/repository/events.repository.d.ts +17 -0
- package/dist/features/events/repository/events.repository.js +27 -0
- package/dist/features/events/schemas/firestore.d.ts +12 -0
- package/dist/features/events/schemas/firestore.js +12 -0
- package/dist/features/events/schemas/index.d.ts +50 -50
- package/dist/features/events/types/index.d.ts +11 -0
- package/dist/features/events/types/index.js +57 -1
- package/dist/features/faq/actions/faq-actions.d.ts +12 -12
- package/dist/features/faq/schemas/index.d.ts +8 -8
- package/dist/features/filters/FilterFacetSection.d.ts +7 -1
- package/dist/features/filters/FilterFacetSection.js +11 -3
- package/dist/features/grouped/schemas/index.d.ts +4 -4
- package/dist/features/homepage/components/AnnouncementBar.d.ts +7 -1
- package/dist/features/homepage/components/AnnouncementBar.js +3 -3
- package/dist/features/homepage/components/MarketplaceHomepageView.js +20 -6
- package/dist/features/homepage/hooks/homepage-query.d.ts +16 -0
- package/dist/features/homepage/hooks/homepage-query.js +45 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.d.ts +10 -0
- package/dist/features/homepage/hooks/useFeaturedAuctions.js +28 -8
- package/dist/features/homepage/hooks/useFeaturedPreOrders.js +17 -8
- package/dist/features/homepage/hooks/useFeaturedProducts.js +15 -8
- package/dist/features/homepage/schemas/index.d.ts +2 -2
- package/dist/features/layout/AppLayoutShell.d.ts +11 -1
- package/dist/features/layout/AppLayoutShell.js +15 -14
- package/dist/features/layout/BackToTop.d.ts +9 -0
- package/dist/features/layout/BackToTop.js +10 -1
- package/dist/features/layout/BottomActions.js +28 -25
- package/dist/features/layout/BottomChrome.d.ts +34 -0
- package/dist/features/layout/BottomChrome.js +55 -0
- package/dist/features/layout/BottomNavLayout.d.ts +6 -0
- package/dist/features/layout/BottomNavLayout.js +7 -1
- package/dist/features/layout/BottomNavbar.js +15 -2
- package/dist/features/layout/FooterLayout.js +11 -1
- package/dist/features/layout/NavbarLayout.js +1 -1
- package/dist/features/layout/TitleBarLayout.d.ts +7 -0
- package/dist/features/layout/TitleBarLayout.js +28 -5
- package/dist/features/layout/index.d.ts +2 -0
- package/dist/features/layout/index.js +1 -0
- package/dist/features/lottery/types/index.d.ts +3 -0
- package/dist/features/media/MediaPickerModal.js +5 -1
- package/dist/features/messages/schemas/index.d.ts +2 -2
- package/dist/features/orders/components/OrderScopeTabs.d.ts +20 -0
- package/dist/features/orders/components/OrderScopeTabs.js +31 -0
- package/dist/features/orders/constants/order-scope.d.ts +48 -0
- package/dist/features/orders/constants/order-scope.js +111 -0
- package/dist/features/orders/repository/orders.repository.d.ts +54 -7
- package/dist/features/orders/repository/orders.repository.js +116 -22
- package/dist/features/orders/schemas/firestore.d.ts +117 -0
- package/dist/features/orders/schemas/firestore.js +30 -0
- package/dist/features/orders/schemas/index.d.ts +18 -18
- package/dist/features/pre-orders/components/PreOrdersIndexListing.js +14 -9
- package/dist/features/pre-orders/components/PreOrdersListView.js +6 -5
- package/dist/features/pre-orders/schemas/index.d.ts +1 -1
- package/dist/features/products/actions/product-actions.d.ts +14 -0
- package/dist/features/products/actions/product-actions.js +49 -11
- package/dist/features/products/api/route.d.ts +12 -0
- package/dist/features/products/api/route.js +42 -100
- package/dist/features/products/components/ArtStickersListView.js +2 -2
- package/dist/features/products/components/AuctionsIndexListing.js +13 -11
- package/dist/features/products/components/AvailabilityTabs.d.ts +11 -0
- package/dist/features/products/components/AvailabilityTabs.js +47 -0
- package/dist/features/products/components/MakeOfferButton.js +48 -49
- package/dist/features/products/components/PrizeDrawCollage.d.ts +20 -4
- package/dist/features/products/components/PrizeDrawCollage.js +9 -1
- package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -12
- package/dist/features/products/components/PrizeDrawsListingView.js +2 -2
- package/dist/features/products/components/PrizeDrawsSection.d.ts +7 -1
- package/dist/features/products/components/PrizeDrawsSection.js +23 -18
- package/dist/features/products/components/ProductDetailPageView.d.ts +4 -1
- package/dist/features/products/components/ProductDetailPageView.js +18 -4
- package/dist/features/products/components/ProductForm.js +5 -2
- package/dist/features/products/components/ProductGrid.js +6 -1
- package/dist/features/products/components/ProductsIndexListing.js +22 -32
- package/dist/features/products/components/ProductsIndexPageView.js +6 -9
- package/dist/features/products/components/index.d.ts +2 -2
- package/dist/features/products/components/index.js +1 -1
- package/dist/features/products/config/listing-type-listing-config.d.ts +20 -0
- package/dist/features/products/config/listing-type-listing-config.js +22 -10
- package/dist/features/products/constants/action-defs.d.ts +2 -0
- package/dist/features/products/constants/action-defs.js +6 -0
- package/dist/features/products/hooks/useAvailabilityScope.d.ts +13 -0
- package/dist/features/products/hooks/useAvailabilityScope.js +19 -0
- package/dist/features/products/hooks/useProducts.d.ts +5 -0
- package/dist/features/products/hooks/useProducts.js +13 -2
- package/dist/features/products/repository/products.repository.d.ts +31 -2
- package/dist/features/products/repository/products.repository.js +53 -21
- package/dist/features/products/schemas/firestore.d.ts +17 -3
- package/dist/features/products/schemas/firestore.js +7 -2
- package/dist/features/products/schemas/index.d.ts +66 -66
- package/dist/features/products/schemas/product-features.validators.d.ts +6 -6
- package/dist/features/products/types/index.d.ts +16 -1
- package/dist/features/promotions/schemas/index.d.ts +2 -2
- package/dist/features/reviews/schemas/index.d.ts +16 -16
- package/dist/features/search/schemas/index.d.ts +4 -4
- package/dist/features/seller/actions/offer-actions.js +25 -2
- package/dist/features/seller/components/SellerArtView.js +5 -0
- package/dist/features/seller/components/SellerAuctionsView.js +13 -15
- package/dist/features/seller/components/SellerClassifiedView.js +5 -0
- package/dist/features/seller/components/SellerDigitalCodesView.js +5 -0
- package/dist/features/seller/components/SellerLiveView.js +5 -0
- package/dist/features/seller/components/SellerOrdersView.js +31 -9
- package/dist/features/seller/components/SellerPayoutSettingsView.js +19 -18
- package/dist/features/seller/components/SellerPreOrdersView.js +5 -0
- package/dist/features/seller/components/SellerPrizeDrawsView.js +14 -16
- package/dist/features/seller/components/SellerProductShell.js +7 -1
- package/dist/features/seller/components/SellerProductsView.js +11 -8
- package/dist/features/seller/components/SellerStickersView.js +5 -0
- package/dist/features/seller/components/index.d.ts +0 -2
- package/dist/features/seller/components/index.js +0 -1
- package/dist/features/seller/repository/offer.repository.d.ts +73 -16
- package/dist/features/seller/repository/offer.repository.js +38 -3
- package/dist/features/seller/schemas/index.d.ts +2 -2
- package/dist/features/seller/schemas/offer-forms.d.ts +25 -0
- package/dist/features/seller/schemas/offer-forms.js +21 -0
- package/dist/features/seller/server.d.ts +0 -1
- package/dist/features/seller/server.js +0 -1
- package/dist/features/shell/SectionForm.d.ts +99 -0
- package/dist/features/shell/SectionForm.js +128 -0
- package/dist/features/shell/entity-form.d.ts +109 -0
- package/dist/features/shell/entity-form.js +96 -0
- package/dist/features/shell/index.d.ts +4 -0
- package/dist/features/shell/index.js +2 -0
- package/dist/features/stores/api/[storeSlug]/route.js +2 -25
- package/dist/features/stores/components/StoreAuctionsListing.js +15 -1
- package/dist/features/stores/components/StoreClassifiedsListing.js +12 -2
- package/dist/features/stores/components/StoreDetailLayoutView.js +24 -71
- package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -2
- package/dist/features/stores/components/StoreLiveItemsListing.js +12 -2
- package/dist/features/stores/components/StorePreOrdersListing.js +12 -1
- package/dist/features/stores/components/StoreProductsListing.js +11 -1
- package/dist/features/stores/repository/store.repository.js +6 -0
- package/dist/features/stores/schemas/index.d.ts +6 -6
- package/dist/features/support/schemas/index.d.ts +4 -4
- package/dist/features/tester/actions/checklist-item-actions.d.ts +4 -4
- package/dist/features/tester/seed-data/offers-tester-seed-data.js +119 -3
- package/dist/features/tester/seed-data/products-tester-seed-data.js +131 -1
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +105 -1
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
- package/dist/index.d.ts +13 -10
- package/dist/index.js +14 -9
- package/dist/next/routing/route-map.d.ts +7 -1
- package/dist/next/routing/route-map.js +5 -0
- package/dist/providers/db-firebase/base.repository.d.ts +30 -0
- package/dist/providers/db-firebase/base.repository.js +50 -1
- package/dist/providers/db-firebase/index.d.ts +1 -1
- package/dist/providers/db-firebase/index.js +1 -1
- package/dist/providers/db-firebase/sieve.d.ts +25 -0
- package/dist/providers/db-firebase/sieve.js +52 -18
- package/dist/react/hooks/useUrlTable.js +10 -1
- package/dist/schemas/registry.d.ts +68 -68
- package/dist/seed/_helpers/category-forest.d.ts +2 -0
- package/dist/seed/_helpers/category-forest.js +309 -0
- package/dist/seed/_helpers/category-tree.d.ts +27 -0
- package/dist/seed/_helpers/category-tree.js +103 -0
- package/dist/seed/catalogue-seed-data.js +12 -12
- package/dist/seed/categories-seed-data.js +177 -162
- package/dist/seed/events-seed-data.js +61 -10
- package/dist/seed/homepage-sections-seed-data.js +5 -1
- package/dist/seed/offers-seed-data.js +32 -27
- package/dist/seed/products-art-seed-data.js +50 -12
- package/dist/seed/products-auctions-seed-data.js +97 -18
- package/dist/seed/products-classifieds-seed-data.js +80 -16
- package/dist/seed/products-digital-codes-seed-data.js +66 -18
- package/dist/seed/products-live-items-seed-data.js +64 -13
- package/dist/seed/products-preorders-seed-data.d.ts +0 -1
- package/dist/seed/products-preorders-seed-data.js +52 -13
- package/dist/seed/products-prize-draws-seed-data.js +63 -14
- package/dist/seed/products-standard-seed-data.js +99 -26
- package/dist/seed/products-stickers-seed-data.js +47 -12
- package/dist/seed/reviews-seed-data.js +6 -1
- package/dist/seed/site-settings-seed-data.d.ts +1 -38
- package/dist/seed/site-settings-seed-data.js +38 -76
- package/dist/seed/stores-seed-data.js +71 -1
- package/dist/seed/users-seed-data.js +15 -5
- package/dist/server-entry.d.ts +1 -2
- package/dist/server-entry.js +4 -3
- package/dist/server.d.ts +4 -3
- package/dist/server.js +8 -4
- package/dist/styles.css +78 -12
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/Button.style.css +19 -4
- package/dist/ui/components/CollapsibleSection.d.ts +17 -1
- package/dist/ui/components/CollapsibleSection.js +6 -2
- package/dist/ui/components/FilterChipGroup.d.ts +25 -1
- package/dist/ui/components/FilterChipGroup.js +21 -4
- package/dist/ui/components/HandMode.style.css +47 -0
- package/dist/ui/components/Layout.d.ts +9 -2
- package/dist/ui/components/Layout.js +1 -1
- package/dist/ui/components/ListingLayout.js +8 -8
- package/dist/ui/components/ListingLayout.style.css +8 -7
- package/dist/ui/components/StickyToolbar.d.ts +3 -1
- package/dist/ui/components/StickyToolbar.js +62 -20
- package/dist/ui/components/bottom-chrome-slot.d.ts +21 -0
- package/dist/ui/components/bottom-chrome-slot.js +29 -0
- package/dist/ui/components/index.style.css +3 -0
- package/dist/ui/forms/FormShell.d.ts +43 -13
- package/dist/ui/forms/FormShell.js +22 -11
- package/dist/ui/forms/index.d.ts +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* `codesAvailable === codePoolSize` (i.e. no fixture ever showed a partially-redeemed
|
|
5
5
|
* or sold-out pool, and `manual-email` delivery was never exercised at all) — see
|
|
6
6
|
* CLAUDE.md seed-data blandness sweep, 2026-08-20 session.
|
|
7
|
-
* WHAT: Exports
|
|
7
|
+
* WHAT: Exports 8 digital-code listings on Beyblade Arena — mixed auto-claim/manual-email
|
|
8
8
|
* delivery, partially-redeemed and fully-sold-out pools, and expiring codes.
|
|
9
9
|
*
|
|
10
10
|
* EXPORTS:
|
|
11
|
-
* productsDigitalCodesSeedData — Array of
|
|
11
|
+
* productsDigitalCodesSeedData — Array of 8 Partial<ProductDocument> with listingType:"digital-code"
|
|
12
12
|
*
|
|
13
13
|
* @tag domain:products,digital-codes
|
|
14
14
|
* @tag layer:seed
|
|
@@ -26,8 +26,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
26
26
|
slug: "digitalcode-beyblade-x-app-starter-pack",
|
|
27
27
|
title: "Beyblade X App — Starter Pack Code",
|
|
28
28
|
description: "Digital redemption code for the Beyblade X companion app's Starter Pack — instantly unlocks 5 exclusive digital tops.",
|
|
29
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
30
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
29
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
30
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
31
31
|
brandSlug: "brand-takara-tomy",
|
|
32
32
|
brand: "Takara-Tomy",
|
|
33
33
|
price: 199,
|
|
@@ -66,8 +66,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
66
66
|
slug: "digitalcode-beyblade-x-app-legendary-pack",
|
|
67
67
|
title: "Beyblade X App — Legendary Pack Code (Partially Claimed)",
|
|
68
68
|
description: "Unlocks 3 legendary digital tops in the companion app. Popular pack — most of the batch has already been claimed.",
|
|
69
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
70
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
69
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
70
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
71
71
|
brandSlug: "brand-takara-tomy",
|
|
72
72
|
brand: "Takara-Tomy",
|
|
73
73
|
price: 349,
|
|
@@ -104,15 +104,20 @@ export const productsDigitalCodesSeedData = [
|
|
|
104
104
|
slug: "digitalcode-beyblade-burst-app-sold-out",
|
|
105
105
|
title: "Beyblade Burst App — Anniversary Pack Code (Sold Out)",
|
|
106
106
|
description: "Limited-run anniversary code pack for the Beyblade Burst app — every code in this batch has been claimed.",
|
|
107
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
108
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
107
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
108
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
109
109
|
brandSlug: "brand-beyblade",
|
|
110
110
|
brand: "Beyblade",
|
|
111
111
|
price: 299,
|
|
112
112
|
currency: "INR",
|
|
113
|
-
stockQuantity: 15,
|
|
113
|
+
// `stockQuantity: 15` / `isSold: false` until 2026-08-24, contradicting
|
|
114
|
+
// both `availableQuantity: 0` and the drained `codesAvailable` below.
|
|
115
|
+
// digital-code's own config comment claimed stockQuantity mirrors the pool
|
|
116
|
+
// count; this fixture is the proof it does not, which is why the per-type
|
|
117
|
+
// predicate reads the nested pool counter rather than trusting the mirror.
|
|
118
|
+
stockQuantity: 0,
|
|
114
119
|
availableQuantity: 0,
|
|
115
|
-
isSold:
|
|
120
|
+
isSold: true,
|
|
116
121
|
mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900"),
|
|
117
122
|
images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-burst-sold-out-1-20260810/900/900")],
|
|
118
123
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
@@ -141,8 +146,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
141
146
|
slug: "digitalcode-beyblade-x-manual-tournament-pass",
|
|
142
147
|
title: "Beyblade X Regional Tournament — Digital Entry Pass",
|
|
143
148
|
description: "Digital entry pass for the next regional tournament, emailed manually by the organizer within 24 hours of purchase.",
|
|
144
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
145
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
149
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
150
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
146
151
|
brandSlug: "brand-takara-tomy",
|
|
147
152
|
brand: "Takara-Tomy",
|
|
148
153
|
price: 499,
|
|
@@ -182,8 +187,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
182
187
|
slug: "digitalcode-beyblade-metal-app-classic-pack",
|
|
183
188
|
title: "Beyblade Metal Fight App — Classic Pack Code",
|
|
184
189
|
description: "Unlocks the Metal Fight classic-era top roster in the companion app — Storm Pegasus, Lightning L-Drago, and more.",
|
|
185
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
186
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
190
|
+
categorySlugs: ["category-metal-fury", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
191
|
+
categoryNames: ["Metal Fury", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
187
192
|
brandSlug: "brand-takara-tomy",
|
|
188
193
|
brand: "Takara-Tomy",
|
|
189
194
|
price: 249,
|
|
@@ -219,8 +224,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
219
224
|
slug: "digitalcode-beyblade-burst-app-avatar-skins",
|
|
220
225
|
title: "Beyblade Burst App — Avatar Skin Bundle Code",
|
|
221
226
|
description: "Cosmetic-only code bundle — unlocks 8 exclusive player avatar skins in the Beyblade Burst app, no gameplay advantage.",
|
|
222
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
223
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
227
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
228
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
224
229
|
brandSlug: "brand-beyblade",
|
|
225
230
|
brand: "Beyblade",
|
|
226
231
|
price: 149,
|
|
@@ -256,8 +261,8 @@ export const productsDigitalCodesSeedData = [
|
|
|
256
261
|
slug: "digitalcode-beyblade-x-manual-coaching-session",
|
|
257
262
|
title: "1-on-1 Beyblade X Coaching Session — Digital Booking Code",
|
|
258
263
|
description: "Redeem this code for a 30-minute 1-on-1 video coaching session with a tournament-ranked Beyblade X player. Booking link emailed manually.",
|
|
259
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
260
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
264
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
265
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
261
266
|
brandSlug: "brand-takara-tomy",
|
|
262
267
|
brand: "Takara-Tomy",
|
|
263
268
|
price: 799,
|
|
@@ -295,4 +300,47 @@ export const productsDigitalCodesSeedData = [
|
|
|
295
300
|
updatedAt: new Date("2026-08-18"),
|
|
296
301
|
searchTokens: buildSearchTokens("1-on-1 Beyblade X Coaching Session — Digital Booking Code", "30-minute 1-on-1 video coaching session, booking link emailed manually.", "Takara-Tomy", "brand-takara-tomy", ["Beyblade X", "Spinning Tops"], ["digital-code", "coaching"]),
|
|
297
302
|
},
|
|
303
|
+
{
|
|
304
|
+
// Pool drained, but `stockQuantity: 5` and `isSold: false`.
|
|
305
|
+
//
|
|
306
|
+
// The NESTED-field fixture: the only row that fails purely on
|
|
307
|
+
// `digitalCode.codesAvailable`. The old related-items predicate read
|
|
308
|
+
// `row.codesAvailable` at the TOP level, which is undefined on every
|
|
309
|
+
// document, so its digital-code branch had never once fired. Without a
|
|
310
|
+
// fixture in this exact shape that bug is untestable.
|
|
311
|
+
id: "digitalcode-beyblade-x-app-launch-codes-depleted",
|
|
312
|
+
slug: "digitalcode-beyblade-x-app-launch-codes-depleted",
|
|
313
|
+
title: "Beyblade X App — Launch Bonus Code (Pool Empty)",
|
|
314
|
+
description: "Launch-bonus codes for the Beyblade X app. Every code in the pool has been claimed; restock pending.",
|
|
315
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
316
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
317
|
+
brandSlug: "brand-takara-tomy",
|
|
318
|
+
brand: "Takara-Tomy",
|
|
319
|
+
price: 399,
|
|
320
|
+
currency: "INR",
|
|
321
|
+
stockQuantity: 5,
|
|
322
|
+
availableQuantity: 5,
|
|
323
|
+
isSold: false,
|
|
324
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900"),
|
|
325
|
+
images: [seedExtMedia("https://picsum.photos/seed/digitalcode-image-beyblade-x-depleted-1-20260824/900/900")],
|
|
326
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
327
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
328
|
+
listingType: "digital-code",
|
|
329
|
+
storeId: "store-beyblade-arena",
|
|
330
|
+
storeName: "Beyblade Arena",
|
|
331
|
+
digitalCode: {
|
|
332
|
+
codeDeliveryMethod: "auto-claim",
|
|
333
|
+
codePoolSize: 30,
|
|
334
|
+
codesAvailable: 0,
|
|
335
|
+
redemptionInstructions: "Open the Beyblade X app, tap Settings → Redeem, and paste your code.",
|
|
336
|
+
},
|
|
337
|
+
customFields: [],
|
|
338
|
+
customSections: [],
|
|
339
|
+
featured: false,
|
|
340
|
+
isPromoted: false,
|
|
341
|
+
isOnSale: false,
|
|
342
|
+
tags: ["digital-code"],
|
|
343
|
+
createdAt: new Date("2026-08-24"),
|
|
344
|
+
updatedAt: new Date("2026-08-24"),
|
|
345
|
+
},
|
|
298
346
|
];
|
|
@@ -9,13 +9,19 @@
|
|
|
9
9
|
* panels, the Phase 4 full-parity detail page) has permanent data to exercise —
|
|
10
10
|
* following the shape already established by the tester-sandbox's dog fixture.
|
|
11
11
|
* Deliberately kept small (3 items) since this doesn't fit the demo brand.
|
|
12
|
-
* WHAT: Exports
|
|
12
|
+
* WHAT: Exports 4 live listings on Beyblade Arena — a dog, a reptile, and a plant —
|
|
13
13
|
* covering varied transport methods, vendor-verification states, and one CITES-
|
|
14
|
-
* restricted example.
|
|
15
|
-
*
|
|
14
|
+
* restricted example.
|
|
15
|
+
*
|
|
16
|
+
* These carried `categorySlugs: []` and a `brand: "Beyblade Arena"` string (a
|
|
17
|
+
* STORE name in a brand field, matching no brand row) until 2026-08-24, which
|
|
18
|
+
* made them unreachable from every category and brand page. Once empty tabs
|
|
19
|
+
* started hiding, that would have meant the Live Items tab never appeared
|
|
20
|
+
* anywhere at all. They now sit under the `category-living-collectibles` root
|
|
21
|
+
* added for exactly this purpose, with the `brand-independent-keepers` brand.
|
|
16
22
|
*
|
|
17
23
|
* EXPORTS:
|
|
18
|
-
* productsLiveItemsSeedData — Array of
|
|
24
|
+
* productsLiveItemsSeedData — Array of 4 Partial<ProductDocument> with listingType:"live"
|
|
19
25
|
*
|
|
20
26
|
* @tag domain:products,live-items
|
|
21
27
|
* @tag layer:seed
|
|
@@ -33,9 +39,10 @@ export const productsLiveItemsSeedData = [
|
|
|
33
39
|
slug: "live-golden-retriever-puppy",
|
|
34
40
|
title: "Golden Retriever Puppy — 6 Months, Vaccinated",
|
|
35
41
|
description: "Friendly, vaccinated Golden Retriever puppy from a verified breeder. Comes with vaccination records and a starter care guide.",
|
|
36
|
-
categorySlugs: [],
|
|
37
|
-
categoryNames: [],
|
|
38
|
-
brand: "
|
|
42
|
+
categorySlugs: ["category-dogs-retrievers", "category-animals-dogs", "category-companion-animals", "category-living-collectibles"],
|
|
43
|
+
categoryNames: ["Retrievers", "Dogs", "Companion Animals", "Living Collectibles"],
|
|
44
|
+
brand: "Independent Keepers",
|
|
45
|
+
brandSlug: "brand-independent-keepers",
|
|
39
46
|
price: 25000,
|
|
40
47
|
currency: "INR",
|
|
41
48
|
stockQuantity: 1,
|
|
@@ -75,9 +82,10 @@ export const productsLiveItemsSeedData = [
|
|
|
75
82
|
slug: "live-bearded-dragon-juvenile",
|
|
76
83
|
title: "Bearded Dragon — Juvenile, Captive-Bred",
|
|
77
84
|
description: "Healthy captive-bred bearded dragon, eating well on a staple diet of greens and insects. Specialist courier transport only.",
|
|
78
|
-
categorySlugs: [],
|
|
79
|
-
categoryNames: [],
|
|
80
|
-
brand: "
|
|
85
|
+
categorySlugs: ["category-reptiles-lizards", "category-animals-reptiles", "category-companion-animals", "category-living-collectibles"],
|
|
86
|
+
categoryNames: ["Lizards", "Reptiles", "Companion Animals", "Living Collectibles"],
|
|
87
|
+
brand: "Independent Keepers",
|
|
88
|
+
brandSlug: "brand-independent-keepers",
|
|
81
89
|
price: 6500,
|
|
82
90
|
currency: "INR",
|
|
83
91
|
stockQuantity: 1,
|
|
@@ -115,9 +123,10 @@ export const productsLiveItemsSeedData = [
|
|
|
115
123
|
slug: "live-bonsai-juniper-10yr",
|
|
116
124
|
title: "Juniper Bonsai — 10 Years Trained",
|
|
117
125
|
description: "A 10-year trained juniper bonsai in a glazed ceramic pot. Low-maintenance, shipped by courier with root-ball protection.",
|
|
118
|
-
categorySlugs: [],
|
|
119
|
-
categoryNames: [],
|
|
120
|
-
brand: "
|
|
126
|
+
categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
|
|
127
|
+
categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
|
|
128
|
+
brand: "Independent Keepers",
|
|
129
|
+
brandSlug: "brand-independent-keepers",
|
|
121
130
|
price: 3200,
|
|
122
131
|
currency: "INR",
|
|
123
132
|
stockQuantity: 1,
|
|
@@ -151,4 +160,46 @@ export const productsLiveItemsSeedData = [
|
|
|
151
160
|
updatedAt: new Date("2026-08-18"),
|
|
152
161
|
searchTokens: buildSearchTokens("Juniper Bonsai — 10 Years Trained", "A 10-year trained juniper bonsai in a glazed ceramic pot.", "Beyblade Arena", undefined, [], ["live-item"]),
|
|
153
162
|
},
|
|
163
|
+
{
|
|
164
|
+
// Sold live item. Keeps species / sex / jurisdiction populated so those
|
|
165
|
+
// per-type facets still have a row inside the Sold scope.
|
|
166
|
+
id: "live-bonsai-juniper-5yr-sold",
|
|
167
|
+
slug: "live-bonsai-juniper-5yr-sold",
|
|
168
|
+
title: "Juniper Bonsai, 5 Years — Sold",
|
|
169
|
+
description: "A five-year-old shimpaku juniper bonsai, already rehomed. Listing kept up for reference.",
|
|
170
|
+
categorySlugs: ["category-bonsai-juniper", "category-plants-bonsai", "category-live-plants", "category-living-collectibles"],
|
|
171
|
+
categoryNames: ["Juniper Bonsai", "Bonsai", "Live Plants", "Living Collectibles"],
|
|
172
|
+
brandSlug: "brand-independent-keepers",
|
|
173
|
+
brand: "Independent Keepers",
|
|
174
|
+
price: 4500,
|
|
175
|
+
currency: "INR",
|
|
176
|
+
stockQuantity: 0,
|
|
177
|
+
availableQuantity: 0,
|
|
178
|
+
isSold: true,
|
|
179
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
|
|
180
|
+
images: [
|
|
181
|
+
seedExtMedia("https://picsum.photos/seed/live-image-juniper-bonsai-sold-1-20260824/900/900"),
|
|
182
|
+
],
|
|
183
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
184
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
185
|
+
listingType: "live",
|
|
186
|
+
storeId: "store-beyblade-arena",
|
|
187
|
+
storeName: "Beyblade Arena",
|
|
188
|
+
liveItem: {
|
|
189
|
+
species: "Juniperus chinensis Shimpaku",
|
|
190
|
+
ageMonths: 60,
|
|
191
|
+
careInfo: "Full sun, water when the topsoil dries, wire-trained.",
|
|
192
|
+
transport: { method: "in-person", insuranceIncluded: false },
|
|
193
|
+
jurisdictionAllowed: ["MH", "KA", "DL"],
|
|
194
|
+
vendorVerified: true,
|
|
195
|
+
},
|
|
196
|
+
customFields: [],
|
|
197
|
+
customSections: [],
|
|
198
|
+
featured: false,
|
|
199
|
+
isPromoted: false,
|
|
200
|
+
isOnSale: false,
|
|
201
|
+
tags: ["bonsai", "sold"],
|
|
202
|
+
createdAt: new Date("2026-08-24"),
|
|
203
|
+
updatedAt: new Date("2026-08-24"),
|
|
204
|
+
},
|
|
154
205
|
];
|
|
@@ -50,7 +50,6 @@ export declare const productsPreordersSeedData: {
|
|
|
50
50
|
auctionExtensionMinutes?: number | undefined;
|
|
51
51
|
auctionOriginalEndDate?: Date | undefined;
|
|
52
52
|
auctionShippingPaidBy?: "seller" | "winner" | undefined;
|
|
53
|
-
buyItNowPrice?: number | undefined;
|
|
54
53
|
bidsHaveStarted?: boolean | undefined;
|
|
55
54
|
grading?: import("../features/products").ProductGrading | undefined;
|
|
56
55
|
card?: import("../features/products").ProductCardMetadata | undefined;
|
|
@@ -35,8 +35,8 @@ const _rawPreordersSeedData = [
|
|
|
35
35
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
36
36
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
37
37
|
listingType: "pre-order",
|
|
38
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
39
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
38
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
39
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
40
40
|
brand: "Takara-Tomy",
|
|
41
41
|
images: [
|
|
42
42
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-08-wave-1-20260101/900/900"),
|
|
@@ -77,8 +77,8 @@ const _rawPreordersSeedData = [
|
|
|
77
77
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
78
78
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
79
79
|
listingType: "pre-order",
|
|
80
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
81
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
80
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
81
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
82
82
|
brand: "Takara-Tomy",
|
|
83
83
|
images: [
|
|
84
84
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-09-glide-ring-1-20260814/900/900"),
|
|
@@ -113,8 +113,8 @@ const _rawPreordersSeedData = [
|
|
|
113
113
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
114
114
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
115
115
|
listingType: "pre-order",
|
|
116
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
117
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
116
|
+
categorySlugs: ["category-burst-superking", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
117
|
+
categoryNames: ["Superking", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
118
118
|
brand: "Beyblade",
|
|
119
119
|
images: [
|
|
120
120
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-210-union-1-20260814/900/900"),
|
|
@@ -152,13 +152,17 @@ const _rawPreordersSeedData = [
|
|
|
152
152
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
153
153
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
154
154
|
listingType: "pre-order",
|
|
155
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
156
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
155
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
156
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
157
157
|
brand: "Takara-Tomy",
|
|
158
158
|
images: [
|
|
159
159
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-11-sold-out-1-20260812/900/900"),
|
|
160
160
|
],
|
|
161
|
-
isSold: false,
|
|
161
|
+
// `isSold: false` until 2026-08-24, contradicting both the zero
|
|
162
|
+
// availability and the filled allocation immediately below it — so the
|
|
163
|
+
// one fixture whose whole purpose is to be sold out read as available to
|
|
164
|
+
// any predicate that trusted the flag.
|
|
165
|
+
isSold: true,
|
|
162
166
|
availableQuantity: 0,
|
|
163
167
|
tags: ["limited-run"],
|
|
164
168
|
customFields: [],
|
|
@@ -187,8 +191,8 @@ const _rawPreordersSeedData = [
|
|
|
187
191
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
188
192
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
189
193
|
listingType: "pre-order",
|
|
190
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
191
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
194
|
+
categorySlugs: ["category-burst-classic", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
195
|
+
categoryNames: ["Burst Classic", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
192
196
|
brand: "Beyblade",
|
|
193
197
|
images: [
|
|
194
198
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-burst-b-215-hells-scythe-1-20260817/900/900"),
|
|
@@ -226,8 +230,8 @@ const _rawPreordersSeedData = [
|
|
|
226
230
|
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
227
231
|
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
228
232
|
listingType: "pre-order",
|
|
229
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
230
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
233
|
+
categorySlugs: ["category-original-hms", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
234
|
+
categoryNames: ["Heavy Metal System", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
231
235
|
brand: "Beyblade",
|
|
232
236
|
images: [
|
|
233
237
|
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-original-remaster-1-20260818/900/900"),
|
|
@@ -256,6 +260,41 @@ const _rawPreordersSeedData = [
|
|
|
256
260
|
createdAt: new Date("2026-08-18"),
|
|
257
261
|
updatedAt: new Date("2026-08-18"),
|
|
258
262
|
},
|
|
263
|
+
{
|
|
264
|
+
id: "preorder-beyblade-x-bx-12-closed",
|
|
265
|
+
storeId: "store-beyblade-arena",
|
|
266
|
+
brandSlug: "brand-takara-tomy",
|
|
267
|
+
title: "Beyblade X BX-12 Wave — Allocation Closed",
|
|
268
|
+
slug: "preorder-beyblade-x-bx-12-closed",
|
|
269
|
+
description: "Every slot in this wave is spoken for and the units are ready to ship to existing pre-orderers.",
|
|
270
|
+
price: 1299,
|
|
271
|
+
currency: "INR",
|
|
272
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
273
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
274
|
+
listingType: "pre-order",
|
|
275
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
276
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
277
|
+
brand: "Takara-Tomy",
|
|
278
|
+
images: [
|
|
279
|
+
seedExtMedia("https://picsum.photos/seed/preorder-image-beyblade-x-bx-12-closed-1-20260824/900/900"),
|
|
280
|
+
],
|
|
281
|
+
isSold: true,
|
|
282
|
+
availableQuantity: 0,
|
|
283
|
+
tags: ["limited-run"],
|
|
284
|
+
customFields: [],
|
|
285
|
+
customSections: [],
|
|
286
|
+
featured: false,
|
|
287
|
+
isPromoted: false,
|
|
288
|
+
isOnSale: false,
|
|
289
|
+
preOrderDeliveryDate: new Date(Date.now() + 14 * 24 * 60 * 60 * 1000),
|
|
290
|
+
preOrderProductionStatus: "ready_to_ship",
|
|
291
|
+
preOrderDepositPercent: 30,
|
|
292
|
+
preOrderMaxQuantity: 40,
|
|
293
|
+
preOrderCurrentCount: 40,
|
|
294
|
+
preOrderCancellable: false,
|
|
295
|
+
createdAt: new Date("2026-08-24"),
|
|
296
|
+
updatedAt: new Date("2026-08-24"),
|
|
297
|
+
},
|
|
259
298
|
];
|
|
260
299
|
export const productsPreordersSeedData = _rawPreordersSeedData.map((p) => ({
|
|
261
300
|
tags: [],
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* content, not just the disposable 7-day tester sandbox item. Previously an empty
|
|
5
5
|
* stub — "out of scope for the minimal Beyblade-focused demo catalog" — now populated
|
|
6
6
|
* with two platform-run mystery-box draws, on-theme for the spinning-tops catalog.
|
|
7
|
-
* WHAT: Exports
|
|
7
|
+
* WHAT: Exports 7 prize-draw listings (classic reveal mode) run by the platform's own
|
|
8
8
|
* store, letitrip-official — one "instant" mode (4 prizes), one "scheduled" mode
|
|
9
9
|
* (2 prizes, small pool for easy manual sellout testing).
|
|
10
10
|
*
|
|
11
11
|
* EXPORTS:
|
|
12
|
-
* productsPrizeDrawsSeedData — Array of
|
|
12
|
+
* productsPrizeDrawsSeedData — Array of 7 Partial<ProductDocument> with listingType:"prize-draw"
|
|
13
13
|
*
|
|
14
14
|
* @tag domain:products,prize-draws
|
|
15
15
|
* @tag layer:seed
|
|
@@ -27,8 +27,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
27
27
|
slug: "prizedraw-beyblade-mystery-box",
|
|
28
28
|
title: "Beyblade Mystery Box — Prize Draw",
|
|
29
29
|
description: "Buy an entry for ₹99 and reveal your prize instantly — win anything from a rare limited-edition Beyblade down to a spare launcher grip. 4 prizes available, revealed on a first-come basis.",
|
|
30
|
-
categorySlugs: ["category-spinning-tops"],
|
|
31
|
-
categoryNames: ["Spinning Tops"],
|
|
30
|
+
categorySlugs: ["category-storage-cases", "category-gear-storage", "category-battle-gear", "category-spinning-tops"],
|
|
31
|
+
categoryNames: ["Cases & Trays", "Storage & Care", "Battle Gear", "Spinning Tops"],
|
|
32
32
|
brandSlug: "brand-beyblade",
|
|
33
33
|
brand: "Beyblade",
|
|
34
34
|
price: 99,
|
|
@@ -73,8 +73,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
73
73
|
slug: "prizedraw-beyblade-scheduled-demo",
|
|
74
74
|
title: "Beyblade Champion's Draw — Prize Draw",
|
|
75
75
|
description: "Two entries, two prizes — the winners are revealed automatically the moment the draw closes (3 days) or sells out, whichever comes first.",
|
|
76
|
-
categorySlugs: ["category-spinning-tops"],
|
|
77
|
-
categoryNames: ["Spinning Tops"],
|
|
76
|
+
categorySlugs: ["category-stadiums-standard", "category-gear-stadiums", "category-battle-gear", "category-spinning-tops"],
|
|
77
|
+
categoryNames: ["Standard Stadiums", "Stadiums", "Battle Gear", "Spinning Tops"],
|
|
78
78
|
brandSlug: "brand-beyblade",
|
|
79
79
|
brand: "Beyblade",
|
|
80
80
|
price: 149,
|
|
@@ -118,8 +118,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
118
118
|
slug: "prizedraw-beyblade-x-legendary-vault",
|
|
119
119
|
title: "Beyblade X Legendary Vault — Prize Draw",
|
|
120
120
|
description: "6 entries, 6 prizes ranging from a legendary chase top to spare parts — over half the draw is already sold, don't miss the remaining slots.",
|
|
121
|
-
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
122
|
-
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
121
|
+
categorySlugs: ["category-x-starters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
122
|
+
categoryNames: ["Starter Sets", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
123
123
|
brandSlug: "brand-takara-tomy",
|
|
124
124
|
brand: "Takara-Tomy",
|
|
125
125
|
price: 199,
|
|
@@ -170,8 +170,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
170
170
|
slug: "prizedraw-beyblade-metal-closed-revealed",
|
|
171
171
|
title: "Metal Fight Mystery Draw — Ended (Revealed)",
|
|
172
172
|
description: "This draw has closed and every prize has been revealed to its winner. Browse the results below.",
|
|
173
|
-
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
174
|
-
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
173
|
+
categorySlugs: ["category-metal-fusion", "category-metal-tops", "category-beyblade-metal", "category-spinning-tops"],
|
|
174
|
+
categoryNames: ["Metal Fusion", "Metal Fight Tops", "Beyblade Metal Fight", "Spinning Tops"],
|
|
175
175
|
brandSlug: "brand-takara-tomy",
|
|
176
176
|
brand: "Takara-Tomy",
|
|
177
177
|
price: 129,
|
|
@@ -216,8 +216,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
216
216
|
slug: "prizedraw-beyblade-burst-collectors-draw",
|
|
217
217
|
title: "Beyblade Burst Collector's Draw — Almost Sold Out",
|
|
218
218
|
description: "Only 1 entry left — 4 of 5 slots are already claimed for this Burst-generation collector's draw. Winners revealed the moment the draw closes.",
|
|
219
|
-
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
220
|
-
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
219
|
+
categorySlugs: ["category-burst-cho-z", "category-burst-tops", "category-beyblade-burst", "category-spinning-tops"],
|
|
220
|
+
categoryNames: ["Cho-Z", "Burst Tops", "Beyblade Burst", "Spinning Tops"],
|
|
221
221
|
brandSlug: "brand-beyblade",
|
|
222
222
|
brand: "Beyblade",
|
|
223
223
|
price: 179,
|
|
@@ -267,8 +267,8 @@ export const productsPrizeDrawsSeedData = [
|
|
|
267
267
|
slug: "prizedraw-beyblade-original-vintage-vault",
|
|
268
268
|
title: "Beyblade Original Vintage Vault — Prize Draw",
|
|
269
269
|
description: "A high-value original-series vault — 3 entries, each prize photographed from multiple angles so you know exactly what you might win.",
|
|
270
|
-
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
271
|
-
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
270
|
+
categorySlugs: ["category-original-plastic-gen", "category-original-tops", "category-beyblade-original", "category-spinning-tops"],
|
|
271
|
+
categoryNames: ["Plastic Generation", "Original Tops", "Beyblade Original", "Spinning Tops"],
|
|
272
272
|
brandSlug: "brand-beyblade",
|
|
273
273
|
brand: "Beyblade",
|
|
274
274
|
price: 299,
|
|
@@ -310,4 +310,53 @@ export const productsPrizeDrawsSeedData = [
|
|
|
310
310
|
updatedAt: new Date("2026-08-18"),
|
|
311
311
|
searchTokens: buildSearchTokens("Beyblade Original Vintage Vault — Prize Draw", "High-value original-series vault, multi-angle photos per prize.", "Beyblade", "brand-beyblade", ["Beyblade Original", "Spinning Tops"], ["prize-draw", "mystery-box", "vintage-collectible"]),
|
|
312
312
|
},
|
|
313
|
+
{
|
|
314
|
+
// Closed, but with slots still unsold and `isSold: false`.
|
|
315
|
+
//
|
|
316
|
+
// This is the fixture that proves the prize-draw branch reads
|
|
317
|
+
// `prizeRevealStatus`. The other closed draw has availableQuantity 0 AND
|
|
318
|
+
// isSold true, so it is caught by the shared base check and would still
|
|
319
|
+
// look correct even if the type-specific rule were deleted.
|
|
320
|
+
id: "prizedraw-beyblade-x-vault-closed-pending-reveal",
|
|
321
|
+
slug: "prizedraw-beyblade-x-vault-closed-pending-reveal",
|
|
322
|
+
title: "Beyblade X Vault Draw — Closed Early",
|
|
323
|
+
description: "The seller closed this draw before every slot sold. Remaining entries were refunded; no further entries are accepted.",
|
|
324
|
+
categorySlugs: ["category-x-boosters", "category-x-tops", "category-beyblade-x", "category-spinning-tops"],
|
|
325
|
+
categoryNames: ["Boosters", "Beyblade X Tops", "Beyblade X", "Spinning Tops"],
|
|
326
|
+
brandSlug: "brand-takara-tomy",
|
|
327
|
+
brand: "Takara-Tomy",
|
|
328
|
+
price: 249,
|
|
329
|
+
currency: "INR",
|
|
330
|
+
stockQuantity: 5,
|
|
331
|
+
availableQuantity: 3,
|
|
332
|
+
isSold: false,
|
|
333
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/prizedraw-image-beyblade-x-vault-closed-1-20260824/900/900"),
|
|
334
|
+
images: [seedExtMedia("https://picsum.photos/seed/prizedraw-image-beyblade-x-vault-closed-1-20260824/900/900")],
|
|
335
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
336
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
337
|
+
listingType: "prize-draw",
|
|
338
|
+
storeId: "store-beyblade-arena",
|
|
339
|
+
storeName: "Beyblade Arena",
|
|
340
|
+
prizeDrawMode: "reveal",
|
|
341
|
+
prizeRevealMode: "instant",
|
|
342
|
+
pricePerEntry: 249,
|
|
343
|
+
prizeMaxEntries: 5,
|
|
344
|
+
prizeCurrentEntries: 2,
|
|
345
|
+
prizeDrawDurationDays: 7,
|
|
346
|
+
prizeRevealWindowStart: new Date("2026-08-17"),
|
|
347
|
+
prizeRevealWindowEnd: new Date("2026-08-24"),
|
|
348
|
+
prizeRevealStatus: "closed",
|
|
349
|
+
prizeDrawItems: [
|
|
350
|
+
{ itemNumber: 1, title: "Dran Sword 3-60F", description: "Beyblade X starter attack top.", images: [seedExtMedia("https://picsum.photos/seed/prizedraw-item-x-vault-1-20260824/600/600")], condition: "new", estimatedValue: 1499, isWon: false },
|
|
351
|
+
{ itemNumber: 2, title: "Hells Scythe 4-60T", description: "Beyblade X defence top.", images: [seedExtMedia("https://picsum.photos/seed/prizedraw-item-x-vault-2-20260824/600/600")], condition: "new", estimatedValue: 1499, isWon: false },
|
|
352
|
+
],
|
|
353
|
+
customFields: [],
|
|
354
|
+
customSections: [],
|
|
355
|
+
featured: false,
|
|
356
|
+
isPromoted: false,
|
|
357
|
+
isOnSale: false,
|
|
358
|
+
tags: ["prize-draw"],
|
|
359
|
+
createdAt: new Date("2026-08-17"),
|
|
360
|
+
updatedAt: new Date("2026-08-24"),
|
|
361
|
+
},
|
|
313
362
|
];
|