@fayz-ai/storefront 0.9.0 → 0.10.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/README.md +3 -3
- package/dist/app/createStorefrontApp.d.ts +65 -0
- package/dist/app/createStorefrontApp.d.ts.map +1 -0
- package/dist/{define.d.ts → app/define.d.ts} +3 -3
- package/dist/app/define.d.ts.map +1 -0
- package/dist/app/hydration.d.ts +37 -0
- package/dist/app/hydration.d.ts.map +1 -0
- package/dist/app/prerender.d.ts +57 -0
- package/dist/app/prerender.d.ts.map +1 -0
- package/dist/{router.d.ts → app/router.d.ts} +140 -113
- package/dist/app/router.d.ts.map +1 -0
- package/dist/{scaffold.d.ts → app/scaffold.d.ts} +2 -2
- package/dist/app/scaffold.d.ts.map +1 -0
- package/dist/app/serving.d.ts +70 -0
- package/dist/app/serving.d.ts.map +1 -0
- package/dist/app/static-render.d.ts +46 -0
- package/dist/app/static-render.d.ts.map +1 -0
- package/dist/blocks/block-at-path.d.ts +59 -0
- package/dist/blocks/block-at-path.d.ts.map +1 -0
- package/dist/blocks/page-blocks.d.ts +163 -0
- package/dist/blocks/page-blocks.d.ts.map +1 -0
- package/dist/blocks/page-data.d.ts +105 -0
- package/dist/blocks/page-data.d.ts.map +1 -0
- package/dist/{blocks.d.ts → blocks/registry.d.ts} +1 -1
- package/dist/blocks/registry.d.ts.map +1 -0
- package/dist/{sections.d.ts → blocks/sections.d.ts} +40 -2
- package/dist/blocks/sections.d.ts.map +1 -0
- package/dist/chunk-6B7H3IZ6.js +10232 -0
- package/dist/chunk-6B7H3IZ6.js.map +1 -0
- package/dist/chunk-6IXTENLB.js +162 -0
- package/dist/chunk-6IXTENLB.js.map +1 -0
- package/dist/components/PaymentTerms.d.ts +34 -0
- package/dist/components/PaymentTerms.d.ts.map +1 -0
- package/dist/components/SmoothImage.d.ts +1 -1
- package/dist/components/SmoothImage.d.ts.map +1 -1
- package/dist/components/account/CustomerAccountShell.d.ts.map +1 -0
- package/dist/components/account/SignInModal.d.ts.map +1 -0
- package/dist/components/cart/CartDrawer.d.ts.map +1 -0
- package/dist/components/cart/QuantityInput.d.ts.map +1 -0
- package/dist/components/checkout/DeliveryEstimator.d.ts.map +1 -0
- package/dist/components/collection/CategoryShowcase.d.ts +44 -0
- package/dist/components/collection/CategoryShowcase.d.ts.map +1 -0
- package/dist/components/collection/FiltersPanel.d.ts +19 -0
- package/dist/components/collection/FiltersPanel.d.ts.map +1 -0
- package/dist/components/collection/ProductGrid.d.ts.map +1 -0
- package/dist/components/layout/PageBodyBlocks.d.ts +40 -0
- package/dist/components/layout/PageBodyBlocks.d.ts.map +1 -0
- package/dist/components/layout/SearchOverlay.d.ts +13 -0
- package/dist/components/layout/SearchOverlay.d.ts.map +1 -0
- package/dist/components/layout/StorefrontErrorBoundary.d.ts.map +1 -0
- package/dist/components/layout/StorefrontFooter.d.ts.map +1 -0
- package/dist/components/layout/StorefrontHeader.d.ts.map +1 -0
- package/dist/components/layout/Toaster.d.ts.map +1 -0
- package/dist/components/marketing/CollectionSections.d.ts +463 -0
- package/dist/components/marketing/CollectionSections.d.ts.map +1 -0
- package/dist/components/marketing/ConversionSections.d.ts +221 -0
- package/dist/components/marketing/ConversionSections.d.ts.map +1 -0
- package/dist/components/marketing/EditorialSections.d.ts +248 -0
- package/dist/components/marketing/EditorialSections.d.ts.map +1 -0
- package/dist/components/marketing/EntityList.d.ts +97 -0
- package/dist/components/marketing/EntityList.d.ts.map +1 -0
- package/dist/components/marketing/FormBlock.d.ts +167 -0
- package/dist/components/marketing/FormBlock.d.ts.map +1 -0
- package/dist/components/marketing/HeroSection.d.ts +125 -0
- package/dist/components/marketing/HeroSection.d.ts.map +1 -0
- package/dist/components/marketing/MediaCarousel.d.ts +135 -0
- package/dist/components/marketing/MediaCarousel.d.ts.map +1 -0
- package/dist/components/marketing/MiscSections.d.ts +252 -0
- package/dist/components/marketing/MiscSections.d.ts.map +1 -0
- package/dist/components/order/OrderTrackingTimeline.d.ts.map +1 -0
- package/dist/components/product/ProductCard.d.ts +14 -0
- package/dist/components/product/ProductCard.d.ts.map +1 -0
- package/dist/components/product/ProductEnquiryForm.d.ts.map +1 -0
- package/dist/components/product/ProductGallery.d.ts +36 -0
- package/dist/components/product/ProductGallery.d.ts.map +1 -0
- package/dist/components/{ProductOptionSelector.d.ts → product/ProductOptionSelector.d.ts} +1 -1
- package/dist/components/product/ProductOptionSelector.d.ts.map +1 -0
- package/dist/components/product/ProductRail.d.ts +93 -0
- package/dist/components/product/ProductRail.d.ts.map +1 -0
- package/dist/components/product/ProductReviews.d.ts +39 -0
- package/dist/components/product/ProductReviews.d.ts.map +1 -0
- package/dist/components/product/ProductSlider.d.ts +169 -0
- package/dist/components/product/ProductSlider.d.ts.map +1 -0
- package/dist/components/product/ProductSpecs.d.ts.map +1 -0
- package/dist/components/product/RelatedProducts.d.ts.map +1 -0
- package/dist/{auth.d.ts → data/auth.d.ts} +9 -0
- package/dist/data/auth.d.ts.map +1 -0
- package/dist/data/facets.d.ts +39 -0
- package/dist/data/facets.d.ts.map +1 -0
- package/dist/data/loaders.d.ts +56 -0
- package/dist/data/loaders.d.ts.map +1 -0
- package/dist/data/order-status.d.ts.map +1 -0
- package/dist/data/product-options.d.ts +36 -0
- package/dist/data/product-options.d.ts.map +1 -0
- package/dist/diagnostics/seo-audit.d.ts +54 -0
- package/dist/diagnostics/seo-audit.d.ts.map +1 -0
- package/dist/diagnostics/seo-audit.js +3 -0
- package/dist/diagnostics/seo-audit.js.map +1 -0
- package/dist/document/change.d.ts +100 -0
- package/dist/document/change.d.ts.map +1 -0
- package/dist/{config.d.ts → document/config.d.ts} +126 -7
- package/dist/document/config.d.ts.map +1 -0
- package/dist/document/describe.d.ts +135 -0
- package/dist/document/describe.d.ts.map +1 -0
- package/dist/document/overlay.d.ts +58 -0
- package/dist/document/overlay.d.ts.map +1 -0
- package/dist/{presets.d.ts → document/presets.d.ts} +2 -2
- package/dist/document/presets.d.ts.map +1 -0
- package/dist/document/render.d.ts +171 -0
- package/dist/document/render.d.ts.map +1 -0
- package/dist/document/round-trip.d.ts +46 -0
- package/dist/document/round-trip.d.ts.map +1 -0
- package/dist/document/sections.d.ts +194 -0
- package/dist/document/sections.d.ts.map +1 -0
- package/dist/document/upgrade.d.ts +112 -0
- package/dist/document/upgrade.d.ts.map +1 -0
- package/dist/document/validate.d.ts +24 -0
- package/dist/document/validate.d.ts.map +1 -0
- package/dist/{component-contracts.d.ts → extend/component-contracts.d.ts} +74 -22
- package/dist/extend/component-contracts.d.ts.map +1 -0
- package/dist/extend/component-override.d.ts +38 -0
- package/dist/extend/component-override.d.ts.map +1 -0
- package/dist/extend/component-selectors.d.ts.map +1 -0
- package/dist/extend/editor-bridge.d.ts +59 -0
- package/dist/extend/editor-bridge.d.ts.map +1 -0
- package/dist/extend/extension-points.d.ts +103 -0
- package/dist/extend/extension-points.d.ts.map +1 -0
- package/dist/extend/slots.d.ts +216 -0
- package/dist/extend/slots.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +25 -6
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/use-address.d.ts +26 -0
- package/dist/hooks/use-address.d.ts.map +1 -0
- package/dist/hooks/use-cart.d.ts +3 -0
- package/dist/hooks/use-cart.d.ts.map +1 -0
- package/dist/hooks/use-catalog.d.ts +24 -0
- package/dist/hooks/use-catalog.d.ts.map +1 -0
- package/dist/hooks/use-categories.d.ts +19 -0
- package/dist/hooks/use-categories.d.ts.map +1 -0
- package/dist/hooks/use-checkout.d.ts +41 -0
- package/dist/hooks/use-checkout.d.ts.map +1 -0
- package/dist/hooks/use-discount-validator.d.ts +20 -0
- package/dist/hooks/use-discount-validator.d.ts.map +1 -0
- package/dist/hooks/use-enquiry.d.ts +7 -0
- package/dist/hooks/use-enquiry.d.ts.map +1 -0
- package/dist/hooks/{useMyOrders.d.ts → use-my-orders.d.ts} +1 -1
- package/dist/hooks/use-my-orders.d.ts.map +1 -0
- package/dist/hooks/use-order.d.ts +17 -0
- package/dist/hooks/use-order.d.ts.map +1 -0
- package/dist/hooks/use-payment-methods.d.ts +19 -0
- package/dist/hooks/use-payment-methods.d.ts.map +1 -0
- package/dist/hooks/use-policies.d.ts +25 -0
- package/dist/hooks/use-policies.d.ts.map +1 -0
- package/dist/hooks/use-product.d.ts +15 -0
- package/dist/hooks/use-product.d.ts.map +1 -0
- package/dist/hooks/{useProducts.d.ts → use-products.d.ts} +1 -1
- package/dist/hooks/use-products.d.ts.map +1 -0
- package/dist/hooks/use-region.d.ts +15 -0
- package/dist/hooks/use-region.d.ts.map +1 -0
- package/dist/hooks/use-shipping.d.ts +29 -0
- package/dist/hooks/use-shipping.d.ts.map +1 -0
- package/dist/hooks/use-storefront-actions.d.ts +12 -0
- package/dist/hooks/use-storefront-actions.d.ts.map +1 -0
- package/dist/hooks/use-storefront-head.d.ts +19 -0
- package/dist/hooks/use-storefront-head.d.ts.map +1 -0
- package/dist/hooks/use-storefront.d.ts +3 -0
- package/dist/hooks/use-storefront.d.ts.map +1 -0
- package/dist/index.d.ts +123 -54
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1311 -5012
- package/dist/index.js.map +1 -1
- package/dist/lib/format.d.ts.map +1 -0
- package/dist/lib/motion.d.ts.map +1 -0
- package/dist/lib/seo.d.ts +26 -0
- package/dist/lib/seo.d.ts.map +1 -0
- package/dist/{testids.d.ts → lib/testids.d.ts} +21 -0
- package/dist/lib/testids.d.ts.map +1 -0
- package/dist/{theme.d.ts → lib/theme.d.ts} +41 -3
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/render.d.ts +5 -0
- package/dist/render.d.ts.map +1 -0
- package/dist/render.js +359 -0
- package/dist/render.js.map +1 -0
- package/dist/stores/cart.store.d.ts +6 -2
- package/dist/stores/cart.store.d.ts.map +1 -1
- package/dist/stores/catalog.store.d.ts +11 -0
- package/dist/stores/catalog.store.d.ts.map +1 -1
- package/dist/views/CatalogPage.d.ts.map +1 -0
- package/dist/views/CheckoutPage.d.ts.map +1 -0
- package/dist/views/ContentPage.d.ts +11 -0
- package/dist/views/ContentPage.d.ts.map +1 -0
- package/dist/views/HomePage.d.ts +9 -0
- package/dist/views/HomePage.d.ts.map +1 -0
- package/dist/views/MyPurchasesPage.d.ts.map +1 -0
- package/dist/views/NotFoundPage.d.ts.map +1 -0
- package/dist/{pages → views}/OrderConfirmationPage.d.ts.map +1 -1
- package/dist/{pages → views}/PolicyPage.d.ts.map +1 -1
- package/dist/views/ProductDetailPage.d.ts.map +1 -0
- package/dist/views/StorefrontPage.d.ts +35 -0
- package/dist/views/StorefrontPage.d.ts.map +1 -0
- package/dist/workflows/checkout.d.ts +1 -1
- package/dist/workflows/checkout.d.ts.map +1 -1
- package/package.json +21 -14
- package/dist/auth.d.ts.map +0 -1
- package/dist/blocks.d.ts.map +0 -1
- package/dist/component-contracts.d.ts.map +0 -1
- package/dist/component-selectors.d.ts.map +0 -1
- package/dist/components/CartDrawer.d.ts.map +0 -1
- package/dist/components/CustomerAccountShell.d.ts.map +0 -1
- package/dist/components/DeliveryEstimator.d.ts.map +0 -1
- package/dist/components/FiltersPanel.d.ts +0 -3
- package/dist/components/FiltersPanel.d.ts.map +0 -1
- package/dist/components/OrderTrackingTimeline.d.ts.map +0 -1
- package/dist/components/ProductCard.d.ts +0 -4
- package/dist/components/ProductCard.d.ts.map +0 -1
- package/dist/components/ProductEnquiryForm.d.ts.map +0 -1
- package/dist/components/ProductGallery.d.ts +0 -22
- package/dist/components/ProductGallery.d.ts.map +0 -1
- package/dist/components/ProductGrid.d.ts.map +0 -1
- package/dist/components/ProductOptionSelector.d.ts.map +0 -1
- package/dist/components/ProductSpecs.d.ts.map +0 -1
- package/dist/components/QuantityInput.d.ts.map +0 -1
- package/dist/components/RelatedProducts.d.ts.map +0 -1
- package/dist/components/SignInModal.d.ts.map +0 -1
- package/dist/components/StorefrontErrorBoundary.d.ts.map +0 -1
- package/dist/components/StorefrontFooter.d.ts.map +0 -1
- package/dist/components/StorefrontHeader.d.ts.map +0 -1
- package/dist/components/Toaster.d.ts.map +0 -1
- package/dist/components/sections/CategoryShowcase.d.ts +0 -6
- package/dist/components/sections/CategoryShowcase.d.ts.map +0 -1
- package/dist/components/sections/HeroSection.d.ts +0 -9
- package/dist/components/sections/HeroSection.d.ts.map +0 -1
- package/dist/components/sections/MediaCarousel.d.ts +0 -11
- package/dist/components/sections/MediaCarousel.d.ts.map +0 -1
- package/dist/components/sections/MiscSections.d.ts +0 -33
- package/dist/components/sections/MiscSections.d.ts.map +0 -1
- package/dist/components/sections/ProductRail.d.ts +0 -9
- package/dist/components/sections/ProductRail.d.ts.map +0 -1
- package/dist/components/sections/ProductSlider.d.ts +0 -15
- package/dist/components/sections/ProductSlider.d.ts.map +0 -1
- package/dist/config.d.ts.map +0 -1
- package/dist/createStorefrontApp.d.ts +0 -28
- package/dist/createStorefrontApp.d.ts.map +0 -1
- package/dist/define.d.ts.map +0 -1
- package/dist/format.d.ts.map +0 -1
- package/dist/hooks/useCategories.d.ts +0 -6
- package/dist/hooks/useCategories.d.ts.map +0 -1
- package/dist/hooks/useDiscountValidator.d.ts +0 -14
- package/dist/hooks/useDiscountValidator.d.ts.map +0 -1
- package/dist/hooks/useMyOrders.d.ts.map +0 -1
- package/dist/hooks/useProduct.d.ts +0 -7
- package/dist/hooks/useProduct.d.ts.map +0 -1
- package/dist/hooks/useProducts.d.ts.map +0 -1
- package/dist/hooks/useStorefront.d.ts +0 -35
- package/dist/hooks/useStorefront.d.ts.map +0 -1
- package/dist/hooks/useStorefrontHead.d.ts +0 -11
- package/dist/hooks/useStorefrontHead.d.ts.map +0 -1
- package/dist/motion.d.ts.map +0 -1
- package/dist/order-status.d.ts.map +0 -1
- package/dist/pages/CatalogPage.d.ts.map +0 -1
- package/dist/pages/CheckoutPage.d.ts.map +0 -1
- package/dist/pages/HomePage.d.ts +0 -9
- package/dist/pages/HomePage.d.ts.map +0 -1
- package/dist/pages/MyPurchasesPage.d.ts.map +0 -1
- package/dist/pages/NotFoundPage.d.ts.map +0 -1
- package/dist/pages/ProductDetailPage.d.ts.map +0 -1
- package/dist/presets.d.ts.map +0 -1
- package/dist/product-options.d.ts +0 -12
- package/dist/product-options.d.ts.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/dist/scaffold.d.ts.map +0 -1
- package/dist/sections.d.ts.map +0 -1
- package/dist/testids.d.ts.map +0 -1
- package/dist/theme.d.ts.map +0 -1
- package/src/auth.ts +0 -227
- package/src/blocks.tsx +0 -51
- package/src/catalog.ts +0 -3
- package/src/component-contracts.ts +0 -154
- package/src/component-selectors.ts +0 -31
- package/src/components/CartDrawer.tsx +0 -279
- package/src/components/CustomerAccountShell.tsx +0 -102
- package/src/components/DeliveryEstimator.tsx +0 -157
- package/src/components/FiltersPanel.tsx +0 -109
- package/src/components/OrderTrackingTimeline.tsx +0 -135
- package/src/components/Price.tsx +0 -32
- package/src/components/ProductCard.tsx +0 -120
- package/src/components/ProductEnquiryForm.tsx +0 -175
- package/src/components/ProductGallery.tsx +0 -174
- package/src/components/ProductGrid.tsx +0 -43
- package/src/components/ProductOptionSelector.tsx +0 -50
- package/src/components/ProductSpecs.tsx +0 -75
- package/src/components/QuantityInput.tsx +0 -52
- package/src/components/RelatedProducts.tsx +0 -40
- package/src/components/SignInModal.tsx +0 -120
- package/src/components/SmoothImage.tsx +0 -59
- package/src/components/StorefrontErrorBoundary.tsx +0 -51
- package/src/components/StorefrontFooter.tsx +0 -110
- package/src/components/StorefrontHeader.tsx +0 -477
- package/src/components/Toaster.tsx +0 -60
- package/src/components/sections/CategoryShowcase.tsx +0 -80
- package/src/components/sections/HeroSection.tsx +0 -193
- package/src/components/sections/MediaCarousel.tsx +0 -141
- package/src/components/sections/MiscSections.tsx +0 -158
- package/src/components/sections/ProductRail.tsx +0 -81
- package/src/components/sections/ProductSlider.tsx +0 -119
- package/src/config.ts +0 -229
- package/src/createStorefrontApp.tsx +0 -247
- package/src/define.ts +0 -34
- package/src/format.ts +0 -7
- package/src/hooks/index.ts +0 -6
- package/src/hooks/useCategories.ts +0 -26
- package/src/hooks/useDiscountValidator.ts +0 -43
- package/src/hooks/useMyOrders.ts +0 -41
- package/src/hooks/useProduct.ts +0 -36
- package/src/hooks/useProducts.ts +0 -39
- package/src/hooks/useStorefront.ts +0 -58
- package/src/hooks/useStorefrontHead.ts +0 -25
- package/src/index.ts +0 -202
- package/src/motion.tsx +0 -94
- package/src/order-status.ts +0 -33
- package/src/pages/CatalogPage.tsx +0 -118
- package/src/pages/CheckoutPage.tsx +0 -689
- package/src/pages/HomePage.tsx +0 -16
- package/src/pages/MyPurchasesPage.tsx +0 -311
- package/src/pages/NotFoundPage.tsx +0 -25
- package/src/pages/OrderConfirmationPage.tsx +0 -190
- package/src/pages/PolicyPage.tsx +0 -47
- package/src/pages/ProductDetailPage.tsx +0 -264
- package/src/presets.ts +0 -324
- package/src/product-options.ts +0 -63
- package/src/router.ts +0 -49
- package/src/scaffold.tsx +0 -115
- package/src/sections.ts +0 -116
- package/src/shop.ts +0 -4
- package/src/stores/cart.store.ts +0 -185
- package/src/stores/catalog.store.ts +0 -39
- package/src/stores/delivery.store.ts +0 -152
- package/src/stores/session.store.ts +0 -28
- package/src/stores/toast.store.ts +0 -43
- package/src/testids.ts +0 -136
- package/src/theme.ts +0 -194
- package/src/ui.ts +0 -5
- package/src/workflows/checkout.ts +0 -119
- /package/dist/components/{CustomerAccountShell.d.ts → account/CustomerAccountShell.d.ts} +0 -0
- /package/dist/components/{SignInModal.d.ts → account/SignInModal.d.ts} +0 -0
- /package/dist/components/{CartDrawer.d.ts → cart/CartDrawer.d.ts} +0 -0
- /package/dist/components/{QuantityInput.d.ts → cart/QuantityInput.d.ts} +0 -0
- /package/dist/components/{DeliveryEstimator.d.ts → checkout/DeliveryEstimator.d.ts} +0 -0
- /package/dist/components/{ProductGrid.d.ts → collection/ProductGrid.d.ts} +0 -0
- /package/dist/components/{StorefrontErrorBoundary.d.ts → layout/StorefrontErrorBoundary.d.ts} +0 -0
- /package/dist/components/{StorefrontFooter.d.ts → layout/StorefrontFooter.d.ts} +0 -0
- /package/dist/components/{StorefrontHeader.d.ts → layout/StorefrontHeader.d.ts} +0 -0
- /package/dist/components/{Toaster.d.ts → layout/Toaster.d.ts} +0 -0
- /package/dist/components/{OrderTrackingTimeline.d.ts → order/OrderTrackingTimeline.d.ts} +0 -0
- /package/dist/components/{ProductEnquiryForm.d.ts → product/ProductEnquiryForm.d.ts} +0 -0
- /package/dist/components/{ProductSpecs.d.ts → product/ProductSpecs.d.ts} +0 -0
- /package/dist/components/{RelatedProducts.d.ts → product/RelatedProducts.d.ts} +0 -0
- /package/dist/{order-status.d.ts → data/order-status.d.ts} +0 -0
- /package/dist/{component-selectors.d.ts → extend/component-selectors.d.ts} +0 -0
- /package/dist/{format.d.ts → lib/format.d.ts} +0 -0
- /package/dist/{motion.d.ts → lib/motion.d.ts} +0 -0
- /package/dist/{pages → views}/CatalogPage.d.ts +0 -0
- /package/dist/{pages → views}/CheckoutPage.d.ts +0 -0
- /package/dist/{pages → views}/MyPurchasesPage.d.ts +0 -0
- /package/dist/{pages → views}/NotFoundPage.d.ts +0 -0
- /package/dist/{pages → views}/OrderConfirmationPage.d.ts +0 -0
- /package/dist/{pages → views}/PolicyPage.d.ts +0 -0
- /package/dist/{pages → views}/ProductDetailPage.d.ts +0 -0
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
`@fayz-ai/storefront` is the customer-facing surface of the Fayz SDK: a storefront scaffold that renders a page as a tree of **blocks** (hero, products, manifesto, cart, …) defined in the app manifest. Two completely different brands come out of the same template with zero custom components — the storefront is *data*, not a fork.
|
|
11
11
|
|
|
12
|
-
It reads commerce from `@fayz-ai/shop`, so the same engine powering an admin also powers the public store. Customize from labels to a fully bespoke section via the [customization ladder](../../docs/CUSTOMIZATION.md) — never by editing this package.
|
|
12
|
+
It reads commerce from `@fayz-ai/shop`, so the same engine powering an admin also powers the public store. Customize from labels to a fully bespoke section via the [customization ladder](../../docs/saas/CUSTOMIZATION.md) — never by editing this package.
|
|
13
13
|
|
|
14
14
|
## What's inside
|
|
15
15
|
- **Scaffold** — `defineStorefront(config)` + `StorefrontScaffold` rendered by `renderApp`
|
|
@@ -35,7 +35,7 @@ export function App() {
|
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Part of the Fayz SDK
|
|
38
|
-
The storefront surface over `@fayz-ai/shop`. The admin counterpart is built with `@fayz-ai/
|
|
38
|
+
The storefront surface over `@fayz-ai/shop`. The admin counterpart is built with `@fayz-ai/admin`; both are surfaces of one manifest.
|
|
39
39
|
|
|
40
40
|
## Roadmap & contributing
|
|
41
|
-
Built and evolving in the open. See the [Fayz SDK roadmap](../../docs/ROADMAP.md).
|
|
41
|
+
Built and evolving in the open. See the [Fayz SDK roadmap](../../docs/platform/ROADMAP.md).
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ShopProvider } from '@fayz-ai/shop/provider';
|
|
3
|
+
import type { StorefrontConfig } from '../document/config';
|
|
4
|
+
import type { StorefrontComponents } from '../extend/component-contracts';
|
|
5
|
+
import type { StorefrontSection } from '../blocks/sections';
|
|
6
|
+
import type { RouterAdapter } from '@fayz-ai/core';
|
|
7
|
+
/**
|
|
8
|
+
* Register the config's declared entities.
|
|
9
|
+
*
|
|
10
|
+
* They register BEFORE the provider exists: the mock provider's entity stores
|
|
11
|
+
* validate their seed against these declarations, and the `entity.*` loaders
|
|
12
|
+
* resolve them at read time (I2 for unknown keys). Shared with the headless
|
|
13
|
+
* renderer so a preview of an entity-backed page reads the same declarations
|
|
14
|
+
* the live store does.
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerStorefrontEntities(config: StorefrontConfig): void;
|
|
17
|
+
/**
|
|
18
|
+
* The shop provider a config implies: its explicit provider, or a mock seeded
|
|
19
|
+
* from its catalog, discounts and declared promotions.
|
|
20
|
+
*
|
|
21
|
+
* Extracted so `renderStore` binds the SAME provider the browser runtime would
|
|
22
|
+
* — a headless render that invented its own data source would preview a store
|
|
23
|
+
* nobody ships.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveStorefrontProvider(config: StorefrontConfig): ShopProvider;
|
|
26
|
+
export declare function initStorefrontRuntime(config: StorefrontConfig): void;
|
|
27
|
+
export interface StorefrontShellProps {
|
|
28
|
+
/**
|
|
29
|
+
* Addressing scheme and history owner. Omitted → hash addressing in a
|
|
30
|
+
* browser, or a static adapter bound to `path` when one is given. Supply one
|
|
31
|
+
* to serve the store at real URLs, or to hand history to a host router.
|
|
32
|
+
*/
|
|
33
|
+
router?: RouterAdapter;
|
|
34
|
+
/**
|
|
35
|
+
* Render this path instead of the live hash location.
|
|
36
|
+
*
|
|
37
|
+
* The headless seam (spine M8): `renderStore` and the preview server drive
|
|
38
|
+
* the shell by path, so a static render never depends on a global
|
|
39
|
+
* `window.location` and one process can render many paths — including
|
|
40
|
+
* concurrently, which a location-mutating renderer could not.
|
|
41
|
+
*/
|
|
42
|
+
path?: string;
|
|
43
|
+
}
|
|
44
|
+
/** The inner storefront UI. Reads everything from the config context, so it is
|
|
45
|
+
* shared by createStorefrontApp and the manifest-driven StorefrontScaffold. */
|
|
46
|
+
export declare function StorefrontShell({ path: pathOverride, router }?: StorefrontShellProps): React.JSX.Element;
|
|
47
|
+
/**
|
|
48
|
+
* Declarative storefront factory — the customer-facing counterpart of
|
|
49
|
+
* createSaasApp. Sugar over the manifest path: it is equivalent to
|
|
50
|
+
* renderApp(defineStorefront(config)), sharing initStorefrontRuntime +
|
|
51
|
+
* StorefrontShell with the scaffold.
|
|
52
|
+
*
|
|
53
|
+
* const App = createStorefrontApp({ name: 'Aurora Goods', currency: 'BRL' })
|
|
54
|
+
*/
|
|
55
|
+
export declare function createStorefrontApp(config: StorefrontConfig): React.ComponentType;
|
|
56
|
+
export interface CreateStorefrontOptions {
|
|
57
|
+
config: StorefrontConfig;
|
|
58
|
+
provider?: ShopProvider;
|
|
59
|
+
components?: StorefrontComponents;
|
|
60
|
+
routes?: StorefrontConfig['routes'];
|
|
61
|
+
pages?: StorefrontConfig['routes'];
|
|
62
|
+
sections?: readonly StorefrontSection[];
|
|
63
|
+
}
|
|
64
|
+
export declare function createStorefront(options: CreateStorefrontOptions): React.ComponentType;
|
|
65
|
+
//# sourceMappingURL=createStorefrontApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createStorefrontApp.d.ts","sourceRoot":"","sources":["../../src/app/createStorefrontApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAI1D,OAAO,KAAK,EAAE,gBAAgB,EAA4B,MAAM,oBAAoB,CAAA;AACpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAU3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAiIlD;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAIzE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,GAAG,YAAY,CAEhF;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAyCpE;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;gFACgF;AAChF,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAE,oBAAyB,qBAcxF;AA6CD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAiBjF;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,gBAAgB,CAAA;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,UAAU,CAAC,EAAE,oBAAoB,CAAA;IACjC,MAAM,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAClC,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;CACxC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAgBtF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { StorefrontConfig, StorefrontRouteDefinition } from '
|
|
2
|
-
import type { StorefrontComponents } from '
|
|
3
|
-
import type { StorefrontSection } from '
|
|
1
|
+
import type { StorefrontConfig, StorefrontRouteDefinition } from '../document/config';
|
|
2
|
+
import type { StorefrontComponents } from '../extend/component-contracts';
|
|
3
|
+
import type { StorefrontSection } from '../blocks/sections';
|
|
4
4
|
import type { CreateStorefrontOptions } from './createStorefrontApp';
|
|
5
5
|
/**
|
|
6
6
|
* Identity helpers for generated/custom storefronts.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/app/define.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAA;AAEpE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,gBAAgB,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAErF;AAED,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,CAAC,SAAS,oBAAoB,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAEjG;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,yBAAyB,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEzG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAErG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,CAAC,SAAS,uBAAuB,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAE1F"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PageDataEntry } from '../blocks/page-data';
|
|
2
|
+
/** Where the payload lives in the document. */
|
|
3
|
+
export declare const PAGE_DATA_SCRIPT_ID = "__fayz_page_data__";
|
|
4
|
+
export interface HydrationPayload {
|
|
5
|
+
/** Resolved page data, keyed by `dataNeedKey`. */
|
|
6
|
+
entries: Record<string, PageDataEntry>;
|
|
7
|
+
/** The path the server rendered, so a mismatch is detectable rather than silent. */
|
|
8
|
+
path: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The `<script>` tag carrying `payload`, for a renderer to place in the body.
|
|
12
|
+
*
|
|
13
|
+
* Only `ready` entries are carried. An entry that errored server-side is
|
|
14
|
+
* deliberately dropped so the browser retries it: a transient provider failure
|
|
15
|
+
* during a prerender would otherwise be baked into the page for as long as the
|
|
16
|
+
* HTML is cached.
|
|
17
|
+
*/
|
|
18
|
+
export declare function serializePageData(payload: HydrationPayload): string;
|
|
19
|
+
/**
|
|
20
|
+
* The payload this document was rendered with, or null.
|
|
21
|
+
*
|
|
22
|
+
* Read once and memoised: the tag describes the FIRST render only. After a
|
|
23
|
+
* client-side navigation the document still contains it, and re-reading would
|
|
24
|
+
* seed a new page with the previous one's data.
|
|
25
|
+
*/
|
|
26
|
+
export declare function readHydratedPageData(): HydrationPayload | null;
|
|
27
|
+
/**
|
|
28
|
+
* Entries to seed a page at `path`, or undefined.
|
|
29
|
+
*
|
|
30
|
+
* Path-guarded: the payload belongs to the document the server rendered, so
|
|
31
|
+
* handing it to a different route would seed that route with another page's
|
|
32
|
+
* answers. Query strings are ignored — they address state within a page.
|
|
33
|
+
*/
|
|
34
|
+
export declare function hydratedEntriesFor(path: string): Record<string, PageDataEntry> | undefined;
|
|
35
|
+
/** Test seam: forget the memoised read. */
|
|
36
|
+
export declare function resetHydratedPageData(): void;
|
|
37
|
+
//# sourceMappingURL=hydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../src/app/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAexD,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IACtC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAA;CACb;AAiBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAOnE;AAKD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,GAAG,IAAI,CAc9D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,SAAS,CAK1F;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { historyRouterAdapter } from '@fayz-ai/core';
|
|
2
|
+
import type { ShopProvider } from '@fayz-ai/shop/provider';
|
|
3
|
+
import type { RenderStoreOptions } from '../document/render';
|
|
4
|
+
import type { StoreDocument } from '../document/sections';
|
|
5
|
+
export interface PrerenderPage {
|
|
6
|
+
path: string;
|
|
7
|
+
html: string;
|
|
8
|
+
/** Where a file-writing host should put it: `/product/x` → `product/x/index.html`. */
|
|
9
|
+
outputPath: string;
|
|
10
|
+
title: string;
|
|
11
|
+
/** False when the path rendered the not-found page — excluded from `pages`. */
|
|
12
|
+
found: boolean;
|
|
13
|
+
ok: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface PrerenderResult {
|
|
16
|
+
pages: PrerenderPage[];
|
|
17
|
+
/** Paths that rendered not-found or errored, with the reason. */
|
|
18
|
+
skipped: Array<{
|
|
19
|
+
path: string;
|
|
20
|
+
reason: string;
|
|
21
|
+
}>;
|
|
22
|
+
sitemapXml: string;
|
|
23
|
+
robotsTxt: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PrerenderOptions extends Omit<RenderStoreOptions, 'path' | 'router' | 'html'> {
|
|
26
|
+
provider: ShopProvider;
|
|
27
|
+
/** Absolute origin. Required for a sitemap — its URLs must be absolute. */
|
|
28
|
+
origin: string;
|
|
29
|
+
/** Defaults to every public path the store has. */
|
|
30
|
+
paths?: readonly string[];
|
|
31
|
+
/** Bounded so a large catalogue does not open one connection per product. */
|
|
32
|
+
concurrency?: number;
|
|
33
|
+
/** Reported per page, so a long run is observable rather than silent. */
|
|
34
|
+
onPage?: (page: PrerenderPage) => void;
|
|
35
|
+
}
|
|
36
|
+
/** `/` → `index.html`; `/product/x` → `product/x/index.html`. */
|
|
37
|
+
export declare function outputPathFor(path: string): string;
|
|
38
|
+
export declare function buildSitemapXml(origin: string, paths: readonly string[]): string;
|
|
39
|
+
/**
|
|
40
|
+
* Disallows the per-shopper routes explicitly.
|
|
41
|
+
*
|
|
42
|
+
* They are not linked from anywhere crawlable, but a crawler that finds one
|
|
43
|
+
* anyway would index a checkout — and crawl budget spent there is budget not
|
|
44
|
+
* spent on products.
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildRobotsTxt(origin: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Render every public page of a store.
|
|
49
|
+
*
|
|
50
|
+
* The router is fixed to real-URL addressing: prerendering a hash-addressed
|
|
51
|
+
* store would write files no URL can reach, which is the whole reason the
|
|
52
|
+
* addressing seam exists.
|
|
53
|
+
*/
|
|
54
|
+
export declare function prerenderStore(document: StoreDocument | Record<string, unknown>, options: PrerenderOptions): Promise<PrerenderResult>;
|
|
55
|
+
/** The adapter a browser app should use to serve a prerendered store. */
|
|
56
|
+
export declare const prerenderClientRouter: typeof historyRouterAdapter;
|
|
57
|
+
//# sourceMappingURL=prerender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prerender.d.ts","sourceRoot":"","sources":["../../src/app/prerender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,eAAe,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,oBAAoB,CAAA;AAI/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAezD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,+EAA+E;IAC/E,KAAK,EAAE,OAAO,CAAA;IACd,EAAE,EAAE,OAAO,CAAA;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,iEAAiE;IACjE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5D,QAAQ,EAAE,YAAY,CAAA;IACtB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAA;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;CACvC;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAUD,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAMhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAYrD;AAoBD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjD,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CAmD1B;AAED,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,6BAAuB,CAAA"}
|
|
@@ -1,128 +1,153 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type RouterAdapter } from '@fayz-ai/core';
|
|
3
|
+
export declare const StorefrontRouterProvider: React.Provider<RouterAdapter | null>;
|
|
4
|
+
export declare function useRouterAdapter(): RouterAdapter;
|
|
5
|
+
/** The current in-app path, re-rendering on every navigation. */
|
|
6
|
+
export declare function useRoutePath(): string;
|
|
7
|
+
/** Scroll to top on route change. Separate from path tracking so a host that
|
|
8
|
+
* manages its own scroll restoration can simply not call it. */
|
|
9
|
+
export declare function useScrollToTopOnNavigate(path: string): void;
|
|
10
|
+
export declare function useNavigate(): (to: string) => void;
|
|
11
|
+
/** @deprecated Use `useRoutePath()`. Kept so existing imports keep compiling. */
|
|
12
|
+
export declare const useHashPath: typeof useRoutePath;
|
|
13
|
+
/** Imperative navigation from an event handler. See `_activeAdapter` above. */
|
|
2
14
|
export declare function navigateTo(to: string): void;
|
|
3
|
-
|
|
15
|
+
/**
|
|
16
|
+
* The adapter a shell should install for a given render.
|
|
17
|
+
*
|
|
18
|
+
* A `path` override means a static render (`renderStore`, the preview server, a
|
|
19
|
+
* node test): there is no history to own, but anchors must still carry real,
|
|
20
|
+
* crawlable hrefs — which is the whole point of rendering headlessly.
|
|
21
|
+
*/
|
|
22
|
+
export declare function shellRouterAdapter(pathOverride: string | undefined, live: RouterAdapter): RouterAdapter;
|
|
4
23
|
/** Match '/product/:slug' against '/product/leather-backpack' → { slug: 'leather-backpack' } */
|
|
5
24
|
export declare function matchPath(pattern: string, path: string): Record<string, string> | null;
|
|
6
|
-
export interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
25
|
+
export interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
|
|
7
26
|
to: string;
|
|
8
27
|
}
|
|
9
|
-
/**
|
|
10
|
-
|
|
28
|
+
/**
|
|
29
|
+
* A real anchor, always — middle-click, cmd-click, "copy link address" and
|
|
30
|
+
* Playwright all keep working, and a crawler sees a real href.
|
|
31
|
+
*
|
|
32
|
+
* Under hash addressing the browser handles the fragment itself, so the click
|
|
33
|
+
* is left alone. Under real-URL addressing a plain left-click must be
|
|
34
|
+
* intercepted or the browser would do a full document load; modified clicks and
|
|
35
|
+
* explicit targets are still handed to the browser.
|
|
36
|
+
*/
|
|
37
|
+
export declare function Link({ to, children, onClick, target, ...rest }: LinkProps): React.DetailedReactHTMLElement<{
|
|
38
|
+
prefix?: string | undefined | undefined;
|
|
39
|
+
style?: React.CSSProperties | undefined;
|
|
40
|
+
slot?: string | undefined | undefined;
|
|
41
|
+
title?: string | undefined | undefined;
|
|
11
42
|
download?: any;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
target?: React.HTMLAttributeAnchorTarget | undefined;
|
|
17
|
-
type?: string | undefined;
|
|
43
|
+
hrefLang?: string | undefined | undefined;
|
|
44
|
+
media?: string | undefined | undefined;
|
|
45
|
+
ping?: string | undefined | undefined;
|
|
46
|
+
type?: string | undefined | undefined;
|
|
18
47
|
referrerPolicy?: React.HTMLAttributeReferrerPolicy | undefined;
|
|
19
|
-
defaultChecked?: boolean | undefined;
|
|
48
|
+
defaultChecked?: boolean | undefined | undefined;
|
|
20
49
|
defaultValue?: string | number | readonly string[] | undefined;
|
|
21
|
-
suppressContentEditableWarning?: boolean | undefined;
|
|
22
|
-
suppressHydrationWarning?: boolean | undefined;
|
|
23
|
-
accessKey?: string | undefined;
|
|
24
|
-
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
|
|
25
|
-
autoFocus?: boolean | undefined;
|
|
26
|
-
className?: string | undefined;
|
|
27
|
-
contentEditable?: (boolean | "
|
|
28
|
-
contextMenu?: string | undefined;
|
|
29
|
-
dir?: string | undefined;
|
|
30
|
-
draggable?: (boolean | "
|
|
31
|
-
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
|
|
32
|
-
hidden?: boolean | undefined;
|
|
33
|
-
id?: string | undefined;
|
|
34
|
-
lang?: string | undefined;
|
|
35
|
-
nonce?: string | undefined;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
title?: string | undefined;
|
|
41
|
-
translate?: "yes" | "no" | undefined;
|
|
42
|
-
radioGroup?: string | undefined;
|
|
50
|
+
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
51
|
+
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
52
|
+
accessKey?: string | undefined | undefined;
|
|
53
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
54
|
+
autoFocus?: boolean | undefined | undefined;
|
|
55
|
+
className?: string | undefined | undefined;
|
|
56
|
+
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
57
|
+
contextMenu?: string | undefined | undefined;
|
|
58
|
+
dir?: string | undefined | undefined;
|
|
59
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
60
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
61
|
+
hidden?: boolean | undefined | undefined;
|
|
62
|
+
id?: string | undefined | undefined;
|
|
63
|
+
lang?: string | undefined | undefined;
|
|
64
|
+
nonce?: string | undefined | undefined;
|
|
65
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
66
|
+
tabIndex?: number | undefined | undefined;
|
|
67
|
+
translate?: "yes" | "no" | undefined | undefined;
|
|
68
|
+
radioGroup?: string | undefined | undefined;
|
|
43
69
|
role?: React.AriaRole | undefined;
|
|
44
|
-
about?: string | undefined;
|
|
45
|
-
content?: string | undefined;
|
|
46
|
-
datatype?: string | undefined;
|
|
70
|
+
about?: string | undefined | undefined;
|
|
71
|
+
content?: string | undefined | undefined;
|
|
72
|
+
datatype?: string | undefined | undefined;
|
|
47
73
|
inlist?: any;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
"aria-
|
|
71
|
-
"aria-
|
|
72
|
-
"aria-
|
|
73
|
-
"aria-
|
|
74
|
-
"aria-
|
|
75
|
-
"aria-
|
|
76
|
-
"aria-
|
|
77
|
-
"aria-
|
|
78
|
-
"aria-
|
|
79
|
-
"aria-
|
|
80
|
-
"aria-
|
|
81
|
-
"aria-
|
|
82
|
-
"aria-
|
|
83
|
-
"aria-
|
|
84
|
-
"aria-
|
|
85
|
-
"aria-
|
|
86
|
-
"aria-
|
|
87
|
-
"aria-
|
|
88
|
-
"aria-
|
|
89
|
-
"aria-
|
|
90
|
-
"aria-
|
|
91
|
-
"aria-
|
|
92
|
-
"aria-
|
|
93
|
-
"aria-
|
|
94
|
-
"aria-
|
|
95
|
-
"aria-
|
|
96
|
-
"aria-
|
|
97
|
-
"aria-
|
|
98
|
-
"aria-
|
|
99
|
-
"aria-
|
|
100
|
-
"aria-
|
|
101
|
-
"aria-
|
|
102
|
-
"aria-
|
|
103
|
-
"aria-
|
|
104
|
-
"aria-
|
|
105
|
-
"aria-
|
|
106
|
-
"aria-
|
|
107
|
-
"aria-
|
|
108
|
-
"aria-
|
|
109
|
-
"aria-
|
|
110
|
-
"aria-
|
|
111
|
-
"aria-
|
|
112
|
-
"aria-
|
|
113
|
-
"aria-
|
|
114
|
-
"aria-
|
|
115
|
-
"aria-
|
|
116
|
-
"aria-
|
|
117
|
-
"aria-
|
|
118
|
-
"aria-
|
|
119
|
-
"aria-
|
|
120
|
-
"aria-
|
|
121
|
-
"aria-
|
|
122
|
-
"aria-valuetext"?: string | undefined;
|
|
74
|
+
property?: string | undefined | undefined;
|
|
75
|
+
rel?: string | undefined | undefined;
|
|
76
|
+
resource?: string | undefined | undefined;
|
|
77
|
+
rev?: string | undefined | undefined;
|
|
78
|
+
typeof?: string | undefined | undefined;
|
|
79
|
+
vocab?: string | undefined | undefined;
|
|
80
|
+
autoCorrect?: string | undefined | undefined;
|
|
81
|
+
autoSave?: string | undefined | undefined;
|
|
82
|
+
color?: string | undefined | undefined;
|
|
83
|
+
itemProp?: string | undefined | undefined;
|
|
84
|
+
itemScope?: boolean | undefined | undefined;
|
|
85
|
+
itemType?: string | undefined | undefined;
|
|
86
|
+
itemID?: string | undefined | undefined;
|
|
87
|
+
itemRef?: string | undefined | undefined;
|
|
88
|
+
results?: number | undefined | undefined;
|
|
89
|
+
security?: string | undefined | undefined;
|
|
90
|
+
unselectable?: "on" | "off" | undefined | undefined;
|
|
91
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
92
|
+
is?: string | undefined | undefined;
|
|
93
|
+
exportparts?: string | undefined | undefined;
|
|
94
|
+
part?: string | undefined | undefined;
|
|
95
|
+
"aria-activedescendant"?: string | undefined | undefined;
|
|
96
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
97
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
98
|
+
"aria-braillelabel"?: string | undefined | undefined;
|
|
99
|
+
"aria-brailleroledescription"?: string | undefined | undefined;
|
|
100
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
101
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
102
|
+
"aria-colcount"?: number | undefined | undefined;
|
|
103
|
+
"aria-colindex"?: number | undefined | undefined;
|
|
104
|
+
"aria-colindextext"?: string | undefined | undefined;
|
|
105
|
+
"aria-colspan"?: number | undefined | undefined;
|
|
106
|
+
"aria-controls"?: string | undefined | undefined;
|
|
107
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
|
|
108
|
+
"aria-describedby"?: string | undefined | undefined;
|
|
109
|
+
"aria-description"?: string | undefined | undefined;
|
|
110
|
+
"aria-details"?: string | undefined | undefined;
|
|
111
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
112
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
|
|
113
|
+
"aria-errormessage"?: string | undefined | undefined;
|
|
114
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
115
|
+
"aria-flowto"?: string | undefined | undefined;
|
|
116
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
117
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
|
|
118
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
119
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
|
|
120
|
+
"aria-keyshortcuts"?: string | undefined | undefined;
|
|
121
|
+
"aria-label"?: string | undefined | undefined;
|
|
122
|
+
"aria-labelledby"?: string | undefined | undefined;
|
|
123
|
+
"aria-level"?: number | undefined | undefined;
|
|
124
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
|
|
125
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
126
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
127
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
128
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
|
|
129
|
+
"aria-owns"?: string | undefined | undefined;
|
|
130
|
+
"aria-placeholder"?: string | undefined | undefined;
|
|
131
|
+
"aria-posinset"?: number | undefined | undefined;
|
|
132
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
133
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
134
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
|
|
135
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
136
|
+
"aria-roledescription"?: string | undefined | undefined;
|
|
137
|
+
"aria-rowcount"?: number | undefined | undefined;
|
|
138
|
+
"aria-rowindex"?: number | undefined | undefined;
|
|
139
|
+
"aria-rowindextext"?: string | undefined | undefined;
|
|
140
|
+
"aria-rowspan"?: number | undefined | undefined;
|
|
141
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
142
|
+
"aria-setsize"?: number | undefined | undefined;
|
|
143
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
|
|
144
|
+
"aria-valuemax"?: number | undefined | undefined;
|
|
145
|
+
"aria-valuemin"?: number | undefined | undefined;
|
|
146
|
+
"aria-valuenow"?: number | undefined | undefined;
|
|
147
|
+
"aria-valuetext"?: string | undefined | undefined;
|
|
123
148
|
dangerouslySetInnerHTML?: {
|
|
124
149
|
__html: string | TrustedHTML;
|
|
125
|
-
} | undefined;
|
|
150
|
+
} | undefined | undefined;
|
|
126
151
|
onCopy?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
127
152
|
onCopyCapture?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
128
153
|
onCut?: React.ClipboardEventHandler<HTMLAnchorElement> | undefined;
|
|
@@ -207,7 +232,6 @@ export declare function Link({ to, children, ...rest }: LinkProps): React.Detail
|
|
|
207
232
|
onWaitingCapture?: React.ReactEventHandler<HTMLAnchorElement> | undefined;
|
|
208
233
|
onAuxClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
209
234
|
onAuxClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
210
|
-
onClick?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
211
235
|
onClickCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
212
236
|
onContextMenu?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
213
237
|
onContextMenuCapture?: React.MouseEventHandler<HTMLAnchorElement> | undefined;
|
|
@@ -281,5 +305,8 @@ export declare function Link({ to, children, ...rest }: LinkProps): React.Detail
|
|
|
281
305
|
onAnimationIterationCapture?: React.AnimationEventHandler<HTMLAnchorElement> | undefined;
|
|
282
306
|
onTransitionEnd?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
283
307
|
onTransitionEndCapture?: React.TransitionEventHandler<HTMLAnchorElement> | undefined;
|
|
308
|
+
href: string;
|
|
309
|
+
onClick: (event: React.MouseEvent<HTMLAnchorElement>) => void;
|
|
310
|
+
target: React.HTMLAttributeAnchorTarget | undefined;
|
|
284
311
|
}, HTMLElement>;
|
|
285
312
|
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/app/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAqE,MAAM,OAAO,CAAA;AACzF,OAAO,EAA6C,KAAK,aAAa,EAAE,MAAM,eAAe,CAAA;AAwB7F,eAAO,MAAM,wBAAwB,sCAAgC,CAAA;AAuBrE,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,IAAI,MAAM,CAOrC;AAED;iEACiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3D;AAED,wBAAgB,WAAW,IAAI,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAGlD;AAED,iFAAiF;AACjF,eAAO,MAAM,WAAW,qBAAe,CAAA;AAEvC,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAOvG;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAatF;AAED,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC5F,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAG5C,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC;;gBAgBhE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { AppManifest } from '@fayz-ai/core';
|
|
3
|
-
import type { StorefrontConfig } from '
|
|
4
|
-
import '
|
|
3
|
+
import type { StorefrontConfig } from '../document/config';
|
|
4
|
+
import '../blocks/registry';
|
|
5
5
|
/** StorefrontConfig → AppManifest (the sugar-to-data direction). */
|
|
6
6
|
export declare function defineStorefront(config: StorefrontConfig): AppManifest;
|
|
7
7
|
export declare function StorefrontScaffold({ manifest, surface }: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/app/scaffold.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,eAAe,CAAA;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAK1D,OAAO,oBAAoB,CAAA;AAgB3B,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CA6BtE;AA4CD,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,qBAanG;yBAbe,kBAAkB;;;AAoBlC,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ShopProvider } from '@fayz-ai/shop/provider';
|
|
2
|
+
import type { StorefrontConfig, ResolvedStorefrontConfig } from '../document/config';
|
|
3
|
+
export type StorefrontRouteMatch = {
|
|
4
|
+
kind: 'custom';
|
|
5
|
+
route: NonNullable<ResolvedStorefrontConfig['routes']>[number];
|
|
6
|
+
params: Record<string, string>;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'product';
|
|
9
|
+
params: Record<string, string>;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'order';
|
|
12
|
+
params: Record<string, string>;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'checkout';
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'account';
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'catalog';
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'searchResults';
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'policy';
|
|
23
|
+
policy: 'privacy' | 'terms' | 'returns';
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'content';
|
|
26
|
+
slug: string;
|
|
27
|
+
params: Record<string, string>;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'home';
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'notFound';
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* What a path means, resolved once.
|
|
35
|
+
*
|
|
36
|
+
* The shell renders from this, cacheability is derived from it, and a host
|
|
37
|
+
* framework asks it whether a URL exists at all before choosing a status code.
|
|
38
|
+
* Those three answering separately is how a page ends up rendered as one thing
|
|
39
|
+
* and cached or statused as another.
|
|
40
|
+
*
|
|
41
|
+
* The query string is stripped first: it addresses state WITHIN a page, so
|
|
42
|
+
* `/?utm_source=instagram` is the home page — the single most common shape of
|
|
43
|
+
* inbound marketing link, and a 404 for it is a silent, expensive bug.
|
|
44
|
+
*/
|
|
45
|
+
export declare function resolveStorefrontRoute(config: StorefrontConfig | ResolvedStorefrontConfig, rawPath: string): StorefrontRouteMatch;
|
|
46
|
+
/** Whether a URL exists at all — what a host needs before choosing a status. */
|
|
47
|
+
export declare function isKnownPath(config: StorefrontConfig | ResolvedStorefrontConfig, path: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Whether `path`'s HTML is identical for every visitor.
|
|
50
|
+
*
|
|
51
|
+
* Conservative by construction: a store's own route is private unless it says
|
|
52
|
+
* otherwise, because guessing "public" is the direction that leaks one
|
|
53
|
+
* shopper's page to another.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isPublicPath(config: StorefrontConfig | ResolvedStorefrontConfig, path: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Every path worth prerendering, and the same list a sitemap should carry.
|
|
58
|
+
*
|
|
59
|
+
* Product URLs come from the catalogue rather than the route table, so the
|
|
60
|
+
* provider is asked rather than guessed at. Custom routes with parameters are
|
|
61
|
+
* skipped: the SDK cannot know what values a store's own route accepts, and
|
|
62
|
+
* emitting `/colecao/:slug` into a sitemap is worse than omitting it.
|
|
63
|
+
*/
|
|
64
|
+
export declare function storefrontPaths(input: {
|
|
65
|
+
config: StorefrontConfig | ResolvedStorefrontConfig;
|
|
66
|
+
provider: ShopProvider;
|
|
67
|
+
/** Include per-shopper routes. Off by default — they are not prerenderable. */
|
|
68
|
+
includePrivate?: boolean;
|
|
69
|
+
}): Promise<string[]>;
|
|
70
|
+
//# sourceMappingURL=serving.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serving.d.ts","sourceRoot":"","sources":["../../src/app/serving.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAI1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAcpF,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClH;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAA;AAExB;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,EACnD,OAAO,EAAE,MAAM,GACd,oBAAoB,CAgCtB;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CACzB,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,EACnD,IAAI,EAAE,MAAM,GACX,OAAO,CAET;AAcD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,EACnD,IAAI,EAAE,MAAM,GACX,OAAO,CAgBT;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,CAAA;IACnD,QAAQ,EAAE,YAAY,CAAA;IACtB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAapB"}
|