@mohasinac/appkit 4.53.1 → 4.54.0-next.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/.build-stamp.json +5 -5
- package/dist/_internal/client/theme/ThemeProvider.js +15 -1
- package/dist/_internal/server/features/auth/capabilities.js +7 -5
- package/dist/_internal/server/features/categories/price-guidance-resolve.d.ts +66 -0
- package/dist/_internal/server/features/categories/price-guidance-resolve.js +138 -0
- package/dist/_internal/server/features/checkout/supplier-identity.js +28 -6
- package/dist/_internal/server/features/price-index/market.d.ts +57 -0
- package/dist/_internal/server/features/price-index/market.js +120 -0
- package/dist/_internal/server/features/products/list-public.d.ts +12 -0
- package/dist/_internal/server/features/products/list-public.js +10 -1
- package/dist/_internal/server/features/products/listing-tab-counts.d.ts +25 -1
- package/dist/_internal/server/features/products/listing-tab-counts.js +184 -10
- package/dist/_internal/server/features/search/index-build/sources.js +43 -2
- package/dist/_internal/server/features/stores/tabs.d.ts +7 -2
- package/dist/_internal/server/features/stores/tabs.js +5 -3
- package/dist/_internal/server/jobs/core/jobRunners.js +0 -10
- package/dist/_internal/server/jobs/core/onOrderCreate.js +10 -104
- package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
- package/dist/_internal/shared/actions/action-registry.js +128 -0
- package/dist/_internal/shared/features/categories/bundle-copy.d.ts +1 -1
- package/dist/_internal/shared/features/site-settings/supplier-of-record.d.ts +56 -0
- package/dist/_internal/shared/features/site-settings/supplier-of-record.js +57 -0
- package/dist/_internal/shared/listing-types/tiers.d.ts +94 -0
- package/dist/_internal/shared/listing-types/tiers.js +150 -0
- package/dist/_internal/shared/search/match.js +28 -2
- package/dist/cli/index.js +0 -2
- package/dist/client.d.ts +21 -2
- package/dist/client.js +23 -4
- package/dist/constants/api-endpoints.d.ts +28 -0
- package/dist/constants/api-endpoints.js +14 -0
- package/dist/features/account/components/UserOrdersView.js +26 -7
- package/dist/features/addresses/utils/postal-autofill.d.ts +39 -0
- package/dist/features/addresses/utils/postal-autofill.js +54 -0
- package/dist/features/admin/components/AdminStoreEditorView.js +73 -34
- package/dist/features/admin/components/OwnerQuickActions.d.ts +29 -0
- package/dist/features/admin/components/OwnerQuickActions.js +142 -0
- package/dist/features/admin/schemas/admin-editor-forms.d.ts +1 -1
- package/dist/features/admin/schemas/admin-editor-forms.js +4 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +8 -7
- package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -1
- package/dist/features/auctions/components/MarketplaceAuctionCard.js +9 -2
- package/dist/features/auth/permissions/constants.d.ts +29 -2
- package/dist/features/auth/permissions/constants.js +68 -1
- package/dist/features/blog/components/BlogFeaturedCard.d.ts +11 -1
- package/dist/features/blog/components/BlogFeaturedCard.js +9 -2
- package/dist/features/cart/components/CartDrawer.js +3 -2
- package/dist/features/cart/components/CartGroupLineRow.js +2 -1
- package/dist/features/cart/hooks/useAddToCart.js +10 -5
- package/dist/features/cart/utils/pending-ops.d.ts +11 -1
- package/dist/features/cart/utils/pending-ops.js +14 -2
- package/dist/features/categories/api/[id]/price-guidance/route.js +1 -24
- package/dist/features/categories/components/BrandDetailPageView.js +15 -6
- package/dist/features/categories/components/BrandDetailTabs.d.ts +7 -1
- package/dist/features/categories/components/BrandDetailTabs.js +18 -3
- package/dist/features/categories/components/BundleCollage.js +3 -2
- package/dist/features/categories/components/BundleItemsPicker.js +3 -4
- package/dist/features/categories/components/CategoryDetailPageView.js +19 -8
- package/dist/features/categories/components/CategoryDetailTabs.d.ts +7 -1
- package/dist/features/categories/components/CategoryDetailTabs.js +29 -7
- package/dist/features/categories/components/CategoryGrid.d.ts +11 -1
- package/dist/features/categories/components/CategoryGrid.js +9 -2
- package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +10 -5
- package/dist/features/checkout/actions/checkout-value-otp-actions.js +2 -88
- package/dist/features/classified/components/ClassifiedDetailPageView.js +10 -1
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +10 -1
- package/dist/features/events/components/EventCard.d.ts +11 -1
- package/dist/features/events/components/EventCard.js +9 -2
- package/dist/features/layout/AppLayoutShell.js +2 -1
- package/dist/features/layout/BottomActions.d.ts +1 -0
- package/dist/features/layout/BottomActions.js +330 -0
- package/dist/features/layout/BottomChrome.d.ts +45 -0
- package/dist/features/layout/BottomChrome.js +5 -17
- package/dist/features/layout/SideActionDock.js +36 -13
- package/dist/features/layout/index.d.ts +2 -7
- package/dist/features/layout/index.js +7 -7
- package/dist/features/layout/useIsDesktop.d.ts +36 -0
- package/dist/features/layout/useIsDesktop.js +48 -0
- package/dist/features/live/components/LiveItemDetailPageView.js +10 -1
- package/dist/features/media/messages/en.json +67 -67
- package/dist/features/orders/components/YourPurchaseStrip.d.ts +24 -0
- package/dist/features/orders/components/YourPurchaseStrip.js +77 -0
- package/dist/features/orders/components/index.d.ts +2 -1
- package/dist/features/orders/components/index.js +1 -1
- package/dist/features/orders/utils/order-announcement-message.d.ts +18 -0
- package/dist/features/orders/utils/order-announcement-message.js +16 -0
- package/dist/features/orders/utils/payment-proof-message.d.ts +20 -0
- package/dist/features/orders/utils/payment-proof-message.js +17 -0
- package/dist/features/parts/schemas/firestore.d.ts +227 -0
- package/dist/features/parts/schemas/firestore.js +6 -6
- package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +11 -1
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +10 -3
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +8 -7
- package/dist/features/price-index/components/PriceIndexToolView.d.ts +21 -0
- package/dist/features/price-index/components/PriceIndexToolView.js +230 -27
- package/dist/features/price-index/lookup-target.d.ts +48 -0
- package/dist/features/price-index/lookup-target.js +107 -0
- package/dist/features/products/api/[id]/route.js +8 -1
- package/dist/features/products/api/route.js +16 -4
- package/dist/features/products/components/AvailabilityScopeHint.d.ts +22 -0
- package/dist/features/products/components/AvailabilityScopeHint.js +27 -0
- package/dist/features/products/components/CompareOverlay.d.ts +2 -1
- package/dist/features/products/components/CompareOverlay.js +2 -1
- package/dist/features/products/components/GroupSettingsPanel.js +2 -1
- package/dist/features/products/components/InteractiveProductCard.d.ts +7 -1
- package/dist/features/products/components/InteractiveProductCard.js +16 -4
- package/dist/features/products/components/MarketplaceBundleCard.d.ts +11 -1
- package/dist/features/products/components/MarketplaceBundleCard.js +9 -2
- package/dist/features/products/components/MarketplacePrizeDrawCard.d.ts +11 -1
- package/dist/features/products/components/MarketplacePrizeDrawCard.js +9 -2
- package/dist/features/products/components/ProductDetailPageView.js +34 -4
- package/dist/features/products/components/ProductGrid.d.ts +14 -1
- package/dist/features/products/components/ProductGrid.js +22 -5
- package/dist/features/products/components/ProductsIndexListing.js +2 -2
- package/dist/features/products/components/SublistingCarouselSection.js +2 -1
- package/dist/features/products/repository/products.repository.d.ts +1 -0
- package/dist/features/products/repository/products.repository.js +5 -1
- package/dist/features/products/utils/group-member-image.d.ts +9 -2
- package/dist/features/products/utils/group-member-image.js +2 -1
- package/dist/features/reviews/api/[id]/route.js +83 -23
- package/dist/features/reviews/components/PurchaseReviewAffordance.d.ts +6 -0
- package/dist/features/reviews/components/PurchaseReviewAffordance.js +42 -0
- package/dist/features/reviews/components/ReviewFormDrawer.d.ts +34 -0
- package/dist/features/reviews/components/ReviewFormDrawer.js +127 -0
- package/dist/features/reviews/components/index.d.ts +4 -0
- package/dist/features/reviews/components/index.js +2 -0
- package/dist/features/seller/actions/seller-actions.d.ts +1 -1
- package/dist/features/seller/actions/seller-actions.js +49 -3
- package/dist/features/seller/components/SellerPayoutSettingsView.js +30 -2
- package/dist/features/seller/components/SellerProductShell.d.ts +17 -1
- package/dist/features/seller/components/SellerProductsView.js +3 -2
- package/dist/features/seller/hooks/useStoreListingEntitlements.d.ts +8 -0
- package/dist/features/seller/hooks/useStoreListingEntitlements.js +70 -0
- package/dist/features/stores/components/InteractiveStoreCard.d.ts +11 -1
- package/dist/features/stores/components/InteractiveStoreCard.js +9 -2
- package/dist/features/stores/components/StoreAuctionsListing.js +2 -1
- package/dist/features/stores/components/index.d.ts +0 -2
- package/dist/features/stores/components/index.js +0 -1
- package/dist/features/stores/schemas/index.d.ts +1 -1
- package/dist/features/stores/schemas/index.js +10 -1
- package/dist/features/tester/seed-data/authored/content-discovery__authenticity-checker.js +114 -2
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +415 -0
- package/dist/index.d.ts +8 -27
- package/dist/index.js +14 -35
- package/dist/next/routing/route-map.d.ts +2 -0
- package/dist/next/routing/route-map.js +9 -0
- package/dist/providers/shipping-shiprocket/index.d.ts +98 -0
- package/dist/providers/shipping-shiprocket/index.js +353 -0
- package/dist/schemas/registry.d.ts +2 -2
- package/dist/security/csp.d.ts +16 -1
- package/dist/security/csp.js +5 -3
- package/dist/seed/_helpers/category-forest.js +27 -0
- package/dist/seed/_helpers/category-parts-glossary-map.js +1816 -86
- package/dist/seed/_helpers/category-parts.d.ts +1 -1
- package/dist/seed/_helpers/category-parts.js +13412 -3020
- package/dist/seed/categories-seed-data.js +48 -6
- package/dist/seed/homepage-sections-seed-data.js +41 -28
- package/dist/seed/model-composition-seed-data.js +6 -8
- package/dist/seed/part-glossary/chunk0.d.ts +9 -0
- package/dist/seed/part-glossary/chunk0.js +35044 -0
- package/dist/seed/part-glossary/chunk1.d.ts +9 -0
- package/dist/seed/part-glossary/chunk1.js +39955 -0
- package/dist/seed/part-glossary/chunk2.d.ts +9 -0
- package/dist/seed/part-glossary/chunk2.js +50335 -0
- package/dist/seed/part-glossary/chunk3.d.ts +9 -0
- package/dist/seed/part-glossary/chunk3.js +52386 -0
- package/dist/seed/part-glossary/chunk4.d.ts +9 -0
- package/dist/seed/part-glossary/chunk4.js +50549 -0
- package/dist/seed/part-glossary-seed-data.d.ts +1 -1
- package/dist/seed/part-glossary-seed-data.js +23 -47483
- package/dist/seed/products-beyblade-x-seed-data.js +36 -1
- package/dist/server.d.ts +6 -8
- package/dist/server.js +16 -20
- package/dist/styles.css +516 -358
- package/dist/tailwind-utilities.css +1 -1
- package/dist/tokens/themes/index.d.ts +3 -1
- package/dist/tokens/themes/index.js +11 -1
- package/dist/tokens/themes/technical-dark.d.ts +30 -0
- package/dist/tokens/themes/technical-dark.js +103 -0
- package/dist/tokens/themes/technical-light.d.ts +22 -0
- package/dist/tokens/themes/technical-light.js +89 -0
- package/dist/tokens/tokens.css +155 -0
- package/dist/ui/components/GatedPrice.js +30 -3
- package/dist/ui/components/GatedPrice.style.css +22 -19
- package/dist/ui/components/QuickCreateModal.style.css +78 -78
- package/dist/ui/forms/FormShell.style.css +260 -260
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +133 -27
- package/dist/_internal/server/jobs/core/whatsappCatalogImport.d.ts +0 -27
- package/dist/_internal/server/jobs/core/whatsappCatalogImport.js +0 -172
- package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +0 -35
- package/dist/_internal/server/jobs/core/whatsappNotify.js +0 -140
- package/dist/features/admin/components/AdminWhatsAppGuideView.d.ts +0 -2
- package/dist/features/admin/components/AdminWhatsAppGuideView.js +0 -35
- package/dist/features/orders/components/MarketplaceOrderCard.d.ts +0 -36
- package/dist/features/orders/components/MarketplaceOrderCard.js +0 -57
- package/dist/features/stores/components/StoreWhatsAppGuideView.d.ts +0 -3
- package/dist/features/stores/components/StoreWhatsAppGuideView.js +0 -12
- package/dist/features/whatsapp-bot/api/send-status/route.d.ts +0 -12
- package/dist/features/whatsapp-bot/api/send-status/route.js +0 -38
- package/dist/features/whatsapp-bot/api/webhook/route.d.ts +0 -12
- package/dist/features/whatsapp-bot/api/webhook/route.js +0 -43
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +0 -6
- package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +0 -270
- package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +0 -9
- package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +0 -7
- package/dist/features/whatsapp-bot/components/index.d.ts +0 -3
- package/dist/features/whatsapp-bot/components/index.js +0 -2
- package/dist/features/whatsapp-bot/helpers/payment-proof-message.d.ts +0 -14
- package/dist/features/whatsapp-bot/helpers/payment-proof-message.js +0 -17
- package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +0 -52
- package/dist/features/whatsapp-bot/helpers/whatsapp.js +0 -283
- package/dist/features/whatsapp-bot/index.d.ts +0 -3
- package/dist/features/whatsapp-bot/index.js +0 -3
- package/dist/features/whatsapp-bot/manifest.d.ts +0 -2
- package/dist/features/whatsapp-bot/manifest.js +0 -13
- package/dist/features/whatsapp-bot/messages/en.json +0 -7
- package/dist/features/whatsapp-bot/server.d.ts +0 -7
- package/dist/features/whatsapp-bot/server.js +0 -7
- package/dist/features/whatsapp-bot/types/index.d.ts +0 -126
- package/dist/features/whatsapp-bot/types/index.js +0 -1
|
@@ -57,8 +57,8 @@ import { withCategorySearchTxt } from "./_helpers/search-txt-wrappers.js";
|
|
|
57
57
|
import { CATEGORY_FOREST } from "./_helpers/category-forest.js";
|
|
58
58
|
import { BRAND_ROW_COUNT, buildBrandRows } from "./_helpers/brand-rows.js";
|
|
59
59
|
import { FRANCHISE_ROW_COUNT, buildFranchiseRows } from "./_helpers/franchise-rows.js";
|
|
60
|
-
import { MODEL_LEAF_COUNT } from "./_helpers/category-models.js";
|
|
61
|
-
import { PART_LEAF_COUNT } from "./_helpers/category-parts.js";
|
|
60
|
+
import { MODEL_LEAF_COUNT, MODEL_LEAVES } from "./_helpers/category-models.js";
|
|
61
|
+
import { PART_LEAF_COUNT, PART_LEAVES } from "./_helpers/category-parts.js";
|
|
62
62
|
import { MARKET_BAND_LEAF_IDS } from "./_helpers/category-content.js";
|
|
63
63
|
import { GENERATED_CATEGORY_CONTENT, GENERATED_CATEGORY_CONTENT_COUNT, } from "./_helpers/category-content-generated.js";
|
|
64
64
|
import { GENERATED_CATEGORY_IMAGES, GENERATED_CATEGORY_IMAGE_COUNT, GENERATED_CATEGORY_HASBRO_IMAGES, } from "./_helpers/category-images-generated.js";
|
|
@@ -743,11 +743,53 @@ if (allIds.length !== allCategoryRows.length) {
|
|
|
743
743
|
const tier4Rows = rawCategories.filter((c) => c.tier === 4).length;
|
|
744
744
|
const expectedTier4 = MODEL_LEAF_COUNT + PART_LEAF_COUNT;
|
|
745
745
|
if (tier4Rows !== expectedTier4) {
|
|
746
|
+
/*
|
|
747
|
+
* 🛑 NAME THE DROPPED LEAVES. A count told us 2,626 of 2,711 arrived and
|
|
748
|
+
* nothing more, which is unactionable: the ids are all distinct and every
|
|
749
|
+
* parent key exists in the forest, so the difference is in WHICH parent each
|
|
750
|
+
* leaf hangs off and at what depth — and that is only visible per leaf.
|
|
751
|
+
*
|
|
752
|
+
* The expensive version of this was a session spent inferring the cause from
|
|
753
|
+
* indentation in the forest literal. The cheap version is the set
|
|
754
|
+
* difference, grouped by the parent that owns each missing leaf, which also
|
|
755
|
+
* says the tier it actually landed at. One run names the fix.
|
|
756
|
+
*/
|
|
757
|
+
const reached = new Set(rawCategories.filter((c) => c.tier === 4).map((c) => String(c.id)));
|
|
758
|
+
const tierOf = new Map(rawCategories.map((c) => [String(c.id), c.tier]));
|
|
759
|
+
const declared = [];
|
|
760
|
+
for (const [parent, leaves] of Object.entries(MODEL_LEAVES)) {
|
|
761
|
+
for (const leaf of leaves)
|
|
762
|
+
declared.push({ id: leaf.id, parent });
|
|
763
|
+
}
|
|
764
|
+
for (const [parent, leaves] of Object.entries(PART_LEAVES)) {
|
|
765
|
+
for (const leaf of leaves)
|
|
766
|
+
declared.push({ id: leaf.id, parent });
|
|
767
|
+
}
|
|
768
|
+
const missing = declared.filter((d) => !reached.has(d.id));
|
|
769
|
+
const byParent = new Map();
|
|
770
|
+
for (const m of missing) {
|
|
771
|
+
if (!byParent.has(m.parent)) {
|
|
772
|
+
byParent.set(m.parent, { n: 0, landedAt: new Set(), sample: [] });
|
|
773
|
+
}
|
|
774
|
+
const g = byParent.get(m.parent);
|
|
775
|
+
g.n += 1;
|
|
776
|
+
g.landedAt.add(tierOf.has(m.id) ? `tier ${tierOf.get(m.id)}` : "absent");
|
|
777
|
+
if (g.sample.length < 3)
|
|
778
|
+
g.sample.push(m.id);
|
|
779
|
+
}
|
|
780
|
+
const detail = [...byParent.entries()]
|
|
781
|
+
.sort((a, b) => b[1].n - a[1].n)
|
|
782
|
+
.map(([parent, g]) => ` ${parent}: ${g.n} leaf/leaves landed at ${[...g.landedAt].join("+")} ` +
|
|
783
|
+
`(e.g. ${g.sample.join(", ")})`)
|
|
784
|
+
.join("\n");
|
|
746
785
|
throw new Error(`category seed: ${tier4Rows} tier-4 leaves reached the tree but the generated ` +
|
|
747
|
-
`maps declare ${expectedTier4} (${MODEL_LEAF_COUNT} models + ${PART_LEAF_COUNT} parts)
|
|
748
|
-
`
|
|
749
|
-
`
|
|
750
|
-
`
|
|
786
|
+
`maps declare ${expectedTier4} (${MODEL_LEAF_COUNT} models + ${PART_LEAF_COUNT} parts).\n` +
|
|
787
|
+
` ${missing.length} declared leaf/leaves did not arrive as tier 4, by parent:\n` +
|
|
788
|
+
`${detail}\n` +
|
|
789
|
+
` A parent at the wrong DEPTH puts its leaves at the wrong tier (a leaf is ` +
|
|
790
|
+
`always parentDepth+1); a parent id the forest renamed makes them absent ` +
|
|
791
|
+
`entirely. Fix the forest, then re-run node scripts/gen-category-models.mjs ` +
|
|
792
|
+
`and node scripts/gen-category-parts.mjs.`);
|
|
751
793
|
}
|
|
752
794
|
if (brandRows.length !== BRAND_ROW_COUNT) {
|
|
753
795
|
throw new Error(`category seed: ${brandRows.length} brand rows built, expected ${BRAND_ROW_COUNT}`);
|
|
@@ -21,24 +21,33 @@
|
|
|
21
21
|
* section type with a renderer and zero seeded rows is the same class of gap,
|
|
22
22
|
* just silent rather than colliding.
|
|
23
23
|
*
|
|
24
|
-
* ORDER
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* FAQ, brands).
|
|
24
|
+
* ORDER: hero → SHOP (products, auctions, pre-orders) → carousel → trust →
|
|
25
|
+
* orient (categories, systems matrix) → shop cont. (bundles) → supply
|
|
26
|
+
* (stores) → social proof (reviews) → engage (events, raffles, prize draws) →
|
|
27
|
+
* editorial (blog) → convert (seller banner, newsletter) → reassure (stats,
|
|
28
|
+
* security, community, FAQ, brands).
|
|
30
29
|
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
30
|
+
* 🛑 Products (2), auctions (3) and pre-orders (4) were lifted above the
|
|
31
|
+
* carousel on 2026-10-20 at the owner's request — real merchandise directly
|
|
32
|
+
* under the hero, promotions below it. That OVERRIDES the research arrangement
|
|
33
|
+
* this header used to describe (trust → orient → shop), so do not "restore"
|
|
34
|
+
* the old order on the strength of the paragraphs below; they explain the
|
|
35
|
+
* reasoning for the sections that are still in a research-driven position,
|
|
36
|
+
* not a mandate for the three that were deliberately moved. Pre-orders came
|
|
37
|
+
* up from 8 in a second pass, which is why the carousel/trust/categories/
|
|
38
|
+
* matrix block reads 5 → 8 rather than 4 → 7.
|
|
39
|
+
*
|
|
40
|
+
* The systems matrix still sits immediately after the generation tiles (7 → 8)
|
|
41
|
+
* because that is where the measured leader puts it: on worldhobbyshop
|
|
42
|
+
* "Browse Beyblade Systems & Series" (25 text links) follows "Shop Beyblades
|
|
43
|
+
* by Generation" (6 image tiles) — taxonomy routing stays together. See
|
|
36
44
|
* docs/research/competitor-crawl-2026-10/layout.md.
|
|
37
45
|
*
|
|
38
|
-
* Baymard's finding drives the
|
|
39
|
-
* the one documented carousel win came from demoting it BELOW a
|
|
40
|
-
* So `welcome` is first and owns the page's single <h1>;
|
|
41
|
-
*
|
|
46
|
+
* Baymard's finding still drives the hero: a static hero outperforms a
|
|
47
|
+
* carousel, and the one documented carousel win came from demoting it BELOW a
|
|
48
|
+
* static hero. So `welcome` is first and owns the page's single <h1>; the
|
|
49
|
+
* `carousel` is now demoted further still, under the first three product
|
|
50
|
+
* rails, and its slide titles render as <h2>.
|
|
42
51
|
*
|
|
43
52
|
* COPY IS CATALOGUE-NEUTRAL on purpose. "Shop by Category" stays correct
|
|
44
53
|
* however the catalogue changes; "Burst & X Series" goes stale the moment it
|
|
@@ -89,13 +98,13 @@ export const homepageSectionsSeedData = [
|
|
|
89
98
|
createdAt: daysAgo(90),
|
|
90
99
|
updatedAt: daysAgo(2),
|
|
91
100
|
},
|
|
92
|
-
// ----
|
|
101
|
+
// ---- 5. Promo carousel ---------------------------------------------------
|
|
93
102
|
// "medium" rather than "tall": it now sits UNDER a full hero, so a
|
|
94
103
|
// viewport-height band would push everything else below the fold.
|
|
95
104
|
{
|
|
96
105
|
id: "section-hero-carousel",
|
|
97
106
|
type: "carousel",
|
|
98
|
-
order:
|
|
107
|
+
order: 5,
|
|
99
108
|
enabled: true,
|
|
100
109
|
config: {
|
|
101
110
|
title: "Featured promotions",
|
|
@@ -108,13 +117,13 @@ export const homepageSectionsSeedData = [
|
|
|
108
117
|
createdAt: daysAgo(90),
|
|
109
118
|
updatedAt: daysAgo(5),
|
|
110
119
|
},
|
|
111
|
-
// ----
|
|
112
|
-
//
|
|
113
|
-
//
|
|
120
|
+
// ---- 6. Trust bar --------------------------------------------------------
|
|
121
|
+
// Research: ~80% of attention is above the fold and the first 3–4 trust
|
|
122
|
+
// elements carry nearly all of the lift.
|
|
114
123
|
{
|
|
115
124
|
id: "section-trust-indicators",
|
|
116
125
|
type: "trust-indicators",
|
|
117
|
-
order:
|
|
126
|
+
order: 6,
|
|
118
127
|
enabled: true,
|
|
119
128
|
config: {
|
|
120
129
|
title: "Why buyers trust us",
|
|
@@ -148,12 +157,12 @@ export const homepageSectionsSeedData = [
|
|
|
148
157
|
createdAt: daysAgo(90),
|
|
149
158
|
updatedAt: daysAgo(20),
|
|
150
159
|
},
|
|
151
|
-
// ----
|
|
160
|
+
// ---- 7. Orient: categories ----------------------------------------------
|
|
152
161
|
// Baymard's top homepage guideline, and the main internal-linking surface.
|
|
153
162
|
{
|
|
154
163
|
id: "section-collectibles-categories",
|
|
155
164
|
type: "categories",
|
|
156
|
-
order:
|
|
165
|
+
order: 7,
|
|
157
166
|
enabled: true,
|
|
158
167
|
config: {
|
|
159
168
|
title: "Shop by Category",
|
|
@@ -173,13 +182,17 @@ export const homepageSectionsSeedData = [
|
|
|
173
182
|
createdAt: daysAgo(90),
|
|
174
183
|
updatedAt: daysAgo(10),
|
|
175
184
|
},
|
|
176
|
-
// ----
|
|
185
|
+
// ---- 2–4, 9. Shop --------------------------------------------------------
|
|
186
|
+
// Products (2), auctions (3) and pre-orders (4) sit directly under the hero,
|
|
187
|
+
// ABOVE the carousel — a merchandising-first top of page, asked for
|
|
188
|
+
// 2026-10-20. Bundles (9) stay below the orientation band.
|
|
189
|
+
//
|
|
177
190
|
// maxItems stays <= 12 everywhere: SSR supplies exactly 12 via
|
|
178
191
|
// getFeatured*(12), so a larger cap would promise rows that cannot fill.
|
|
179
192
|
{
|
|
180
193
|
id: "section-featured-products",
|
|
181
194
|
type: "products",
|
|
182
|
-
order:
|
|
195
|
+
order: 2,
|
|
183
196
|
enabled: true,
|
|
184
197
|
config: {
|
|
185
198
|
title: "Featured Products",
|
|
@@ -210,7 +223,7 @@ export const homepageSectionsSeedData = [
|
|
|
210
223
|
{
|
|
211
224
|
id: "section-live-auctions",
|
|
212
225
|
type: "auctions",
|
|
213
|
-
order:
|
|
226
|
+
order: 3,
|
|
214
227
|
enabled: true,
|
|
215
228
|
config: {
|
|
216
229
|
title: "Live Auctions",
|
|
@@ -228,7 +241,7 @@ export const homepageSectionsSeedData = [
|
|
|
228
241
|
{
|
|
229
242
|
id: "section-pre-orders",
|
|
230
243
|
type: "pre-orders",
|
|
231
|
-
order:
|
|
244
|
+
order: 4,
|
|
232
245
|
enabled: true,
|
|
233
246
|
config: {
|
|
234
247
|
title: "Reserve Before It Ships",
|
|
@@ -635,7 +648,7 @@ export const homepageSectionsSeedData = [
|
|
|
635
648
|
{
|
|
636
649
|
id: "section-systems-matrix",
|
|
637
650
|
type: "custom-cards",
|
|
638
|
-
order:
|
|
651
|
+
order: 8,
|
|
639
652
|
enabled: true,
|
|
640
653
|
config: {
|
|
641
654
|
title: "Every system, every part family",
|
|
@@ -2493,7 +2493,7 @@ export const modelCompositionSeedData = [
|
|
|
2493
2493
|
"slotKey": "blade-base",
|
|
2494
2494
|
"slotLabel": "BLADE BASE (BB)",
|
|
2495
2495
|
"partName": "Metal Sharp Base",
|
|
2496
|
-
"partId": "blade-base--
|
|
2496
|
+
"partId": "blade-base--blade-base"
|
|
2497
2497
|
}
|
|
2498
2498
|
],
|
|
2499
2499
|
"source": "gen1/plastic/flash-leopard-2.md",
|
|
@@ -6587,14 +6587,12 @@ export const modelCompositionSeedData = [
|
|
|
6587
6587
|
{
|
|
6588
6588
|
"slotKey": "disc",
|
|
6589
6589
|
"slotLabel": "FORGE DISC",
|
|
6590
|
-
"partName": "variable per combo"
|
|
6591
|
-
"partId": "disc--variable-per-combo"
|
|
6590
|
+
"partName": "variable per combo"
|
|
6592
6591
|
},
|
|
6593
6592
|
{
|
|
6594
6593
|
"slotKey": "performance-tip",
|
|
6595
6594
|
"slotLabel": "PERFORMANCE TIP",
|
|
6596
|
-
"partName": "variable per combo"
|
|
6597
|
-
"partId": "performance-tip--variable-per-combo"
|
|
6595
|
+
"partName": "variable per combo"
|
|
6598
6596
|
}
|
|
6599
6597
|
],
|
|
6600
6598
|
"source": "gen3/bu/draciel-fortress.md",
|
|
@@ -7415,7 +7413,7 @@ export const modelCompositionSeedData = [
|
|
|
7415
7413
|
"slotKey": "driver",
|
|
7416
7414
|
"slotLabel": "DRIVER",
|
|
7417
7415
|
"partName": "Destroy'",
|
|
7418
|
-
"partId": "driver--destroy
|
|
7416
|
+
"partId": "driver--destroy"
|
|
7419
7417
|
}
|
|
7420
7418
|
],
|
|
7421
7419
|
"source": "gen3/db/rage-longinus-s5.md"
|
|
@@ -7925,7 +7923,7 @@ export const modelCompositionSeedData = [
|
|
|
7925
7923
|
"slotKey": "driver",
|
|
7926
7924
|
"slotLabel": "PERFORMANCE DRIVER",
|
|
7927
7925
|
"partName": "Evolution'",
|
|
7928
|
-
"partId": "driver--evolution
|
|
7926
|
+
"partId": "driver--evolution"
|
|
7929
7927
|
}
|
|
7930
7928
|
],
|
|
7931
7929
|
"source": "gen3/superking/brave-valtryek.md"
|
|
@@ -7972,7 +7970,7 @@ export const modelCompositionSeedData = [
|
|
|
7972
7970
|
"slotKey": "driver",
|
|
7973
7971
|
"slotLabel": "DRIVER",
|
|
7974
7972
|
"partName": "Destroy'",
|
|
7975
|
-
"partId": "driver--destroy
|
|
7973
|
+
"partId": "driver--destroy"
|
|
7976
7974
|
}
|
|
7977
7975
|
],
|
|
7978
7976
|
"source": "gen3/superking/rage-longinus-d3a.md"
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GENERATED by `scripts/generate-parts-seed.mjs` — do not hand-edit.
|
|
3
|
+
*
|
|
4
|
+
* Chunk 0 of the part glossary. See `../part-glossary-seed-data.ts` for
|
|
5
|
+
* provenance and for why the chunks are separate FILES rather than separate
|
|
6
|
+
* consts in one file.
|
|
7
|
+
*/
|
|
8
|
+
import type { PartGlossaryDocument } from "../../features/parts/schemas/firestore";
|
|
9
|
+
export declare const glossaryChunk0: Partial<PartGlossaryDocument>[];
|