orionplace-react 0.7.8 → 0.8.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 +7 -614
- package/bin/orionplace-react.mjs +10 -176
- package/package.json +7 -59
- package/LICENSE +0 -21
- package/runtime/app.d.mts +0 -6
- package/runtime/app.mjs +0 -48
- package/runtime/marketplace.d.mts +0 -129
- package/runtime/marketplace.mjs +0 -905
- package/src/install.mjs +0 -356
- package/src/project-readme.mjs +0 -442
- package/src/service.mjs +0 -186
- package/src/setup.mjs +0 -274
- package/src/sitemap.mjs +0 -93
- package/src/update.mjs +0 -36
- package/src/validation.mjs +0 -27
- package/templates/app/StorefrontShell.tsx +0 -443
- package/templates/app/[[...path]]/page.app.tsx +0 -11
- package/templates/app/_storefront/ActivityPage.tsx +0 -23
- package/templates/app/_storefront/AddressesPage.tsx +0 -29
- package/templates/app/_storefront/AppRoutes.tsx +0 -184
- package/templates/app/_storefront/ArticlePage.tsx +0 -84
- package/templates/app/_storefront/CartPage.tsx +0 -53
- package/templates/app/_storefront/CatalogPage.tsx +0 -37
- package/templates/app/_storefront/CategoryPage.tsx +0 -68
- package/templates/app/_storefront/ContactPage.tsx +0 -32
- package/templates/app/_storefront/HomePage.tsx +0 -140
- package/templates/app/_storefront/JournalPage.tsx +0 -36
- package/templates/app/_storefront/LogoutPage.tsx +0 -91
- package/templates/app/_storefront/ManufacturersPage.tsx +0 -64
- package/templates/app/_storefront/OrdersPage.tsx +0 -129
- package/templates/app/_storefront/PrivacyPage.tsx +0 -15
- package/templates/app/_storefront/ProductPage.tsx +0 -113
- package/templates/app/_storefront/ProfilePage.tsx +0 -75
- package/templates/app/_storefront/PromoPage.tsx +0 -66
- package/templates/app/_storefront/PromocodesPage.tsx +0 -17
- package/templates/app/_storefront/SearchPage.tsx +0 -225
- package/templates/app/_storefront/SellersPage.tsx +0 -166
- package/templates/app/_storefront/StorefrontErrorRoute.tsx +0 -42
- package/templates/app/_storefront/StorefrontPageMetadata.tsx +0 -117
- package/templates/app/_storefront/StorefrontPageStatus.tsx +0 -61
- package/templates/app/_storefront/StorefrontProductStructuredData.tsx +0 -77
- package/templates/app/_storefront/StoresPage.tsx +0 -53
- package/templates/app/_storefront/SubscriptionsPage.tsx +0 -62
- package/templates/app/_storefront/SupportPage.tsx +0 -141
- package/templates/app/_storefront/TariffsPage.tsx +0 -180
- package/templates/app/_storefront/UnsubscribePage.tsx +0 -29
- package/templates/app/_storefront/WalletPage.tsx +0 -78
- package/templates/app/_storefront/WishlistPage.tsx +0 -79
- package/templates/app/_storefront/storefrontRoutes.tsx +0 -769
- package/templates/app/_storefront/useAccountWallet.ts +0 -27
- package/templates/app/_storefront/useBlogComments.ts +0 -389
- package/templates/app/_storefront/useProductSearch.ts +0 -242
- package/templates/app/_storefront/useStorefrontNavigation.ts +0 -36
- package/templates/app/activity/page.tsx +0 -9
- package/templates/app/addresses/page.tsx +0 -9
- package/templates/app/api/[...orionplace]/route.ts +0 -21
- package/templates/app/browse/page.tsx +0 -27
- package/templates/app/cart/page.tsx +0 -9
- package/templates/app/catalog/page.tsx +0 -9
- package/templates/app/category/[id]/page.tsx +0 -9
- package/templates/app/contact/page.tsx +0 -9
- package/templates/app/error.tsx +0 -7
- package/templates/app/featured/page.tsx +0 -9
- package/templates/app/global-error.tsx +0 -61
- package/templates/app/globals.css +0 -58
- package/templates/app/journal/[id]/page.tsx +0 -9
- package/templates/app/journal/page.tsx +0 -9
- package/templates/app/layout.app.tsx +0 -20
- package/templates/app/layout.tsx +0 -66
- package/templates/app/logout/page.tsx +0 -9
- package/templates/app/manufacturers/page.tsx +0 -9
- package/templates/app/not-found.tsx +0 -5
- package/templates/app/orders/page.tsx +0 -9
- package/templates/app/page.module.css +0 -137
- package/templates/app/page.tsx +0 -9
- package/templates/app/privacy/page.tsx +0 -9
- package/templates/app/product/[id]/page.tsx +0 -9
- package/templates/app/profile/page.tsx +0 -9
- package/templates/app/promo/[id]/page.tsx +0 -9
- package/templates/app/promocodes/page.tsx +0 -9
- package/templates/app/ps3/blog/[...orionplace]/route.ts +0 -13
- package/templates/app/robots.txt/route.ts +0 -11
- package/templates/app/sellers/page.tsx +0 -9
- package/templates/app/sitemap.xml/route.ts +0 -12
- package/templates/app/storefront.module.css +0 -406
- package/templates/app/stores/page.tsx +0 -9
- package/templates/app/subscriptions/page.tsx +0 -9
- package/templates/app/tariffs/[slug]/[id]/page.tsx +0 -9
- package/templates/app/tariffs/page.tsx +0 -9
- package/templates/app/tickets/page.tsx +0 -9
- package/templates/app/unsubscribe/page.tsx +0 -9
- package/templates/app/wallet/page.tsx +0 -9
- package/templates/app/wishlist/page.tsx +0 -9
- package/templates/components/orionplace/account/AccountActivity.README.md +0 -70
- package/templates/components/orionplace/account/AccountActivity.module.css +0 -16
- package/templates/components/orionplace/account/AccountActivity.tsx +0 -94
- package/templates/components/orionplace/account/AccountPromocodes.README.md +0 -70
- package/templates/components/orionplace/account/AccountPromocodes.module.css +0 -92
- package/templates/components/orionplace/account/AccountPromocodes.tsx +0 -257
- package/templates/components/orionplace/account/AccountSection.README.md +0 -46
- package/templates/components/orionplace/account/AccountSection.module.css +0 -110
- package/templates/components/orionplace/account/AccountSection.tsx +0 -109
- package/templates/components/orionplace/account/ProfileAvatar.README.md +0 -48
- package/templates/components/orionplace/account/ProfileAvatar.module.css +0 -31
- package/templates/components/orionplace/account/ProfileAvatar.tsx +0 -138
- package/templates/components/orionplace/account/ProfileDeleteAccount.README.md +0 -59
- package/templates/components/orionplace/account/ProfileDeleteAccount.module.css +0 -51
- package/templates/components/orionplace/account/ProfileDeleteAccount.tsx +0 -171
- package/templates/components/orionplace/account/ProfileDetailsForm.README.md +0 -48
- package/templates/components/orionplace/account/ProfileDetailsForm.module.css +0 -35
- package/templates/components/orionplace/account/ProfileDetailsForm.tsx +0 -183
- package/templates/components/orionplace/account/ProfileEmailSettings.README.md +0 -52
- package/templates/components/orionplace/account/ProfileEmailSettings.module.css +0 -51
- package/templates/components/orionplace/account/ProfileEmailSettings.tsx +0 -276
- package/templates/components/orionplace/account/ProfilePasswordForm.README.md +0 -45
- package/templates/components/orionplace/account/ProfilePasswordForm.module.css +0 -43
- package/templates/components/orionplace/account/ProfilePasswordForm.tsx +0 -227
- package/templates/components/orionplace/account/ProfileSignIn.README.md +0 -64
- package/templates/components/orionplace/account/ProfileSignIn.module.css +0 -86
- package/templates/components/orionplace/account/ProfileSignIn.tsx +0 -463
- package/templates/components/orionplace/account/SignInHistory.README.md +0 -52
- package/templates/components/orionplace/account/SignInHistory.module.css +0 -81
- package/templates/components/orionplace/account/SignInHistory.tsx +0 -231
- package/templates/components/orionplace/account/StorefrontLogout.README.md +0 -48
- package/templates/components/orionplace/account/StorefrontLogout.module.css +0 -166
- package/templates/components/orionplace/account/StorefrontLogout.tsx +0 -73
- package/templates/components/orionplace/account/StorefrontProfile.README.md +0 -71
- package/templates/components/orionplace/account/StorefrontProfile.module.css +0 -65
- package/templates/components/orionplace/account/StorefrontProfile.tsx +0 -189
- package/templates/components/orionplace/account/account.module.css +0 -1180
- package/templates/components/orionplace/account/profile.module.css +0 -696
- package/templates/components/orionplace/address/AddressForm.README.md +0 -152
- package/templates/components/orionplace/address/AddressForm.module.css +0 -336
- package/templates/components/orionplace/address/AddressForm.tsx +0 -827
- package/templates/components/orionplace/address/StorefrontAddresses.README.md +0 -99
- package/templates/components/orionplace/address/StorefrontAddresses.module.css +0 -271
- package/templates/components/orionplace/address/StorefrontAddresses.tsx +0 -438
- package/templates/components/orionplace/banners/MainBanner.README.md +0 -65
- package/templates/components/orionplace/banners/MainBanner.module.css +0 -112
- package/templates/components/orionplace/banners/MainBanner.tsx +0 -159
- package/templates/components/orionplace/blog/BlogArticle.README.md +0 -183
- package/templates/components/orionplace/blog/BlogArticle.module.css +0 -333
- package/templates/components/orionplace/blog/BlogArticle.tsx +0 -545
- package/templates/components/orionplace/blog/BlogCommentForm.README.md +0 -51
- package/templates/components/orionplace/blog/BlogCommentForm.module.css +0 -93
- package/templates/components/orionplace/blog/BlogCommentForm.tsx +0 -125
- package/templates/components/orionplace/blog/BlogComments.README.md +0 -98
- package/templates/components/orionplace/blog/BlogComments.module.css +0 -151
- package/templates/components/orionplace/blog/BlogComments.tsx +0 -590
- package/templates/components/orionplace/blog/BlogPostCard.README.md +0 -51
- package/templates/components/orionplace/blog/BlogPostCard.module.css +0 -167
- package/templates/components/orionplace/blog/BlogPostCard.tsx +0 -177
- package/templates/components/orionplace/blog/BlogPostGroup.README.md +0 -49
- package/templates/components/orionplace/blog/BlogPostGroup.module.css +0 -37
- package/templates/components/orionplace/blog/BlogPostGroup.tsx +0 -129
- package/templates/components/orionplace/blog/StorefrontJournal.README.md +0 -105
- package/templates/components/orionplace/blog/StorefrontJournal.module.css +0 -387
- package/templates/components/orionplace/blog/StorefrontJournal.tsx +0 -549
- package/templates/components/orionplace/branding/BrandLogos.README.md +0 -29
- package/templates/components/orionplace/branding/BrandLogos.module.css +0 -7
- package/templates/components/orionplace/branding/BrandLogos.tsx +0 -30
- package/templates/components/orionplace/cart/CartCheckoutDetails.README.md +0 -96
- package/templates/components/orionplace/cart/CartCheckoutDetails.module.css +0 -159
- package/templates/components/orionplace/cart/CartCheckoutDetails.tsx +0 -381
- package/templates/components/orionplace/cart/CartDeliverySelector.README.md +0 -166
- package/templates/components/orionplace/cart/CartDeliverySelector.module.css +0 -105
- package/templates/components/orionplace/cart/CartDeliverySelector.tsx +0 -679
- package/templates/components/orionplace/cart/CartItemOptions.README.md +0 -172
- package/templates/components/orionplace/cart/CartItemOptions.module.css +0 -113
- package/templates/components/orionplace/cart/CartItemOptions.tsx +0 -503
- package/templates/components/orionplace/cart/CartLineItem.README.md +0 -138
- package/templates/components/orionplace/cart/CartLineItem.module.css +0 -57
- package/templates/components/orionplace/cart/CartLineItem.tsx +0 -263
- package/templates/components/orionplace/cart/CartPreview.README.md +0 -99
- package/templates/components/orionplace/cart/CartPreview.module.css +0 -225
- package/templates/components/orionplace/cart/CartPreview.tsx +0 -188
- package/templates/components/orionplace/cart/DeliveryMap.README.md +0 -65
- package/templates/components/orionplace/cart/DeliveryMap.module.css +0 -32
- package/templates/components/orionplace/cart/DeliveryMap.tsx +0 -131
- package/templates/components/orionplace/cart/StorefrontCart.README.md +0 -281
- package/templates/components/orionplace/cart/StorefrontCart.module.css +0 -460
- package/templates/components/orionplace/cart/StorefrontCart.tsx +0 -937
- package/templates/components/orionplace/catalog/CatalogHeader.README.md +0 -136
- package/templates/components/orionplace/catalog/CatalogHeader.module.css +0 -387
- package/templates/components/orionplace/catalog/CatalogHeader.tsx +0 -644
- package/templates/components/orionplace/catalog/CatalogRepresentative.README.md +0 -68
- package/templates/components/orionplace/catalog/CatalogRepresentative.tsx +0 -51
- package/templates/components/orionplace/catalog/StorefrontCatalog.README.md +0 -120
- package/templates/components/orionplace/catalog/StorefrontCatalog.module.css +0 -179
- package/templates/components/orionplace/catalog/StorefrontCatalog.tsx +0 -304
- package/templates/components/orionplace/categories/CategoryGroup.README.md +0 -68
- package/templates/components/orionplace/categories/CategoryGroup.module.css +0 -110
- package/templates/components/orionplace/categories/CategoryGroup.tsx +0 -123
- package/templates/components/orionplace/categories/StorefrontCategory.README.md +0 -155
- package/templates/components/orionplace/categories/StorefrontCategory.module.css +0 -148
- package/templates/components/orionplace/categories/StorefrontCategory.tsx +0 -225
- package/templates/components/orionplace/contact/AboutPage.README.md +0 -40
- package/templates/components/orionplace/contact/AboutPage.module.css +0 -216
- package/templates/components/orionplace/contact/AboutPage.tsx +0 -191
- package/templates/components/orionplace/contact/ContactForm.README.md +0 -93
- package/templates/components/orionplace/contact/ContactForm.module.css +0 -264
- package/templates/components/orionplace/contact/ContactForm.tsx +0 -382
- package/templates/components/orionplace/contact/EmailUnsubscribe.README.md +0 -67
- package/templates/components/orionplace/contact/EmailUnsubscribe.module.css +0 -95
- package/templates/components/orionplace/contact/EmailUnsubscribe.tsx +0 -130
- package/templates/components/orionplace/contact/StorefrontContact.README.md +0 -73
- package/templates/components/orionplace/contact/StorefrontContact.module.css +0 -101
- package/templates/components/orionplace/contact/StorefrontContact.tsx +0 -62
- package/templates/components/orionplace/currencies/MainCurrencySwitcher.README.md +0 -37
- package/templates/components/orionplace/currencies/MainCurrencySwitcher.tsx +0 -68
- package/templates/components/orionplace/events/EventEnrollmentDialog.README.md +0 -108
- package/templates/components/orionplace/events/EventEnrollmentDialog.module.css +0 -110
- package/templates/components/orionplace/events/EventEnrollmentDialog.tsx +0 -315
- package/templates/components/orionplace/events/EventsBlock.README.md +0 -58
- package/templates/components/orionplace/events/EventsBlock.module.css +0 -101
- package/templates/components/orionplace/events/EventsBlock.tsx +0 -109
- package/templates/components/orionplace/legal/CookieNotice.README.md +0 -42
- package/templates/components/orionplace/legal/CookieNotice.module.css +0 -48
- package/templates/components/orionplace/legal/CookieNotice.tsx +0 -82
- package/templates/components/orionplace/legal/StorefrontPrivacy.README.md +0 -49
- package/templates/components/orionplace/legal/StorefrontPrivacy.module.css +0 -166
- package/templates/components/orionplace/legal/StorefrontPrivacy.tsx +0 -83
- package/templates/components/orionplace/locale/MainLanguageSwitcher.README.md +0 -46
- package/templates/components/orionplace/locale/MainLanguageSwitcher.module.css +0 -196
- package/templates/components/orionplace/locale/MainLanguageSwitcher.tsx +0 -387
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.README.md +0 -83
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.module.css +0 -271
- package/templates/components/orionplace/manufacturers/ManufacturerIndex.tsx +0 -218
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.README.md +0 -122
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.module.css +0 -92
- package/templates/components/orionplace/manufacturers/StorefrontManufacturers.tsx +0 -455
- package/templates/components/orionplace/orders/OrderDetails.README.md +0 -116
- package/templates/components/orionplace/orders/OrderDetails.module.css +0 -730
- package/templates/components/orionplace/orders/OrderDetails.tsx +0 -693
- package/templates/components/orionplace/orders/OrderPaymentForm.README.md +0 -92
- package/templates/components/orionplace/orders/OrderPaymentForm.module.css +0 -105
- package/templates/components/orionplace/orders/OrderPaymentForm.tsx +0 -90
- package/templates/components/orionplace/orders/StorefrontOrders.README.md +0 -131
- package/templates/components/orionplace/orders/StorefrontOrders.module.css +0 -633
- package/templates/components/orionplace/orders/StorefrontOrders.tsx +0 -922
- package/templates/components/orionplace/payments/PaymentPanel.README.md +0 -114
- package/templates/components/orionplace/payments/PaymentPanel.module.css +0 -134
- package/templates/components/orionplace/payments/PaymentPanel.tsx +0 -76
- package/templates/components/orionplace/products/HoverImageViewer.README.md +0 -62
- package/templates/components/orionplace/products/HoverImageViewer.module.css +0 -88
- package/templates/components/orionplace/products/HoverImageViewer.tsx +0 -179
- package/templates/components/orionplace/products/ProductCard.README.md +0 -154
- package/templates/components/orionplace/products/ProductCard.module.css +0 -333
- package/templates/components/orionplace/products/ProductCard.tsx +0 -730
- package/templates/components/orionplace/products/ProductCardActions.README.md +0 -84
- package/templates/components/orionplace/products/ProductCardActions.module.css +0 -146
- package/templates/components/orionplace/products/ProductCardActions.tsx +0 -311
- package/templates/components/orionplace/products/ProductCardBadges.README.md +0 -44
- package/templates/components/orionplace/products/ProductCardBadges.module.css +0 -15
- package/templates/components/orionplace/products/ProductCardBadges.tsx +0 -78
- package/templates/components/orionplace/products/ProductCardDescription.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardDescription.module.css +0 -6
- package/templates/components/orionplace/products/ProductCardDescription.tsx +0 -43
- package/templates/components/orionplace/products/ProductCardFavorite.README.md +0 -52
- package/templates/components/orionplace/products/ProductCardFavorite.module.css +0 -64
- package/templates/components/orionplace/products/ProductCardFavorite.tsx +0 -90
- package/templates/components/orionplace/products/ProductCardPrice.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardPrice.module.css +0 -22
- package/templates/components/orionplace/products/ProductCardPrice.tsx +0 -50
- package/templates/components/orionplace/products/ProductCardRating.README.md +0 -33
- package/templates/components/orionplace/products/ProductCardRating.module.css +0 -7
- package/templates/components/orionplace/products/ProductCardRating.tsx +0 -56
- package/templates/components/orionplace/products/ProductCardSeller.README.md +0 -36
- package/templates/components/orionplace/products/ProductCardSeller.module.css +0 -31
- package/templates/components/orionplace/products/ProductCardSeller.tsx +0 -61
- package/templates/components/orionplace/products/ProductCardStockNotice.README.md +0 -36
- package/templates/components/orionplace/products/ProductCardStockNotice.module.css +0 -8
- package/templates/components/orionplace/products/ProductCardStockNotice.tsx +0 -35
- package/templates/components/orionplace/products/ProductCardTitle.README.md +0 -30
- package/templates/components/orionplace/products/ProductCardTitle.module.css +0 -13
- package/templates/components/orionplace/products/ProductCardTitle.tsx +0 -31
- package/templates/components/orionplace/products/ProductCardVariants.README.md +0 -77
- package/templates/components/orionplace/products/ProductCardVariants.module.css +0 -97
- package/templates/components/orionplace/products/ProductCardVariants.tsx +0 -350
- package/templates/components/orionplace/products/ProductGroup.README.md +0 -91
- package/templates/components/orionplace/products/ProductGroup.module.css +0 -64
- package/templates/components/orionplace/products/ProductGroup.tsx +0 -186
- package/templates/components/orionplace/products/ProductPreorderDialog.README.md +0 -89
- package/templates/components/orionplace/products/ProductPreorderDialog.module.css +0 -320
- package/templates/components/orionplace/products/ProductPreorderDialog.tsx +0 -346
- package/templates/components/orionplace/products/ProductReviewForm.README.md +0 -72
- package/templates/components/orionplace/products/ProductReviewForm.module.css +0 -217
- package/templates/components/orionplace/products/ProductReviewForm.tsx +0 -288
- package/templates/components/orionplace/products/ProductReviewGallery.README.md +0 -61
- package/templates/components/orionplace/products/ProductReviewGallery.module.css +0 -108
- package/templates/components/orionplace/products/ProductReviewGallery.tsx +0 -110
- package/templates/components/orionplace/products/ProductReviewImageViewer.README.md +0 -60
- package/templates/components/orionplace/products/ProductReviewImageViewer.module.css +0 -59
- package/templates/components/orionplace/products/ProductReviewImageViewer.tsx +0 -312
- package/templates/components/orionplace/products/ProductReviews.README.md +0 -137
- package/templates/components/orionplace/products/ProductReviews.module.css +0 -602
- package/templates/components/orionplace/products/ProductReviews.tsx +0 -944
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.README.md +0 -67
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.module.css +0 -79
- package/templates/components/orionplace/products/ProductSecondaryVariantModal.tsx +0 -324
- package/templates/components/orionplace/products/ProductSpecificationsDialog.README.md +0 -52
- package/templates/components/orionplace/products/ProductSpecificationsDialog.module.css +0 -138
- package/templates/components/orionplace/products/ProductSpecificationsDialog.tsx +0 -117
- package/templates/components/orionplace/products/StorefrontProduct.README.md +0 -200
- package/templates/components/orionplace/products/StorefrontProduct.module.css +0 -767
- package/templates/components/orionplace/products/StorefrontProduct.tsx +0 -1339
- package/templates/components/orionplace/products/StorefrontWishlist.README.md +0 -162
- package/templates/components/orionplace/products/StorefrontWishlist.module.css +0 -71
- package/templates/components/orionplace/products/StorefrontWishlist.tsx +0 -402
- package/templates/components/orionplace/promo/PromoProducts.README.md +0 -133
- package/templates/components/orionplace/promo/PromoProducts.module.css +0 -68
- package/templates/components/orionplace/promo/PromoProducts.tsx +0 -345
- package/templates/components/orionplace/search/MainSearch.README.md +0 -73
- package/templates/components/orionplace/search/MainSearch.module.css +0 -202
- package/templates/components/orionplace/search/MainSearch.tsx +0 -217
- package/templates/components/orionplace/search/ProductSearchResults.README.md +0 -166
- package/templates/components/orionplace/search/ProductSearchResults.module.css +0 -361
- package/templates/components/orionplace/search/ProductSearchResults.tsx +0 -359
- package/templates/components/orionplace/search/SearchFilters.README.md +0 -109
- package/templates/components/orionplace/search/SearchFilters.module.css +0 -274
- package/templates/components/orionplace/search/SearchFilters.tsx +0 -439
- package/templates/components/orionplace/sellers/SellerFilters.README.md +0 -66
- package/templates/components/orionplace/sellers/SellerFilters.module.css +0 -232
- package/templates/components/orionplace/sellers/SellerFilters.tsx +0 -201
- package/templates/components/orionplace/sellers/SellerPhotoGallery.README.md +0 -72
- package/templates/components/orionplace/sellers/SellerPhotoGallery.module.css +0 -314
- package/templates/components/orionplace/sellers/SellerPhotoGallery.tsx +0 -335
- package/templates/components/orionplace/sellers/SellerSummary.README.md +0 -62
- package/templates/components/orionplace/sellers/SellerSummary.module.css +0 -182
- package/templates/components/orionplace/sellers/SellerSummary.tsx +0 -107
- package/templates/components/orionplace/sellers/StorefrontSellers.README.md +0 -120
- package/templates/components/orionplace/sellers/StorefrontSellers.module.css +0 -147
- package/templates/components/orionplace/sellers/StorefrontSellers.tsx +0 -360
- package/templates/components/orionplace/shared/OrionplaceAvatar.README.md +0 -35
- package/templates/components/orionplace/shared/OrionplaceAvatar.module.css +0 -35
- package/templates/components/orionplace/shared/OrionplaceAvatar.tsx +0 -61
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +0 -33
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.module.css +0 -81
- package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.tsx +0 -91
- package/templates/components/orionplace/shared/OrionplaceEmptyState.README.md +0 -37
- package/templates/components/orionplace/shared/OrionplaceEmptyState.module.css +0 -126
- package/templates/components/orionplace/shared/OrionplaceEmptyState.tsx +0 -78
- package/templates/components/orionplace/shared/OrionplaceImage.README.md +0 -45
- package/templates/components/orionplace/shared/OrionplaceImage.module.css +0 -22
- package/templates/components/orionplace/shared/OrionplaceImage.tsx +0 -97
- package/templates/components/orionplace/shared/OrionplaceInfoHint.README.md +0 -31
- package/templates/components/orionplace/shared/OrionplaceInfoHint.module.css +0 -59
- package/templates/components/orionplace/shared/OrionplaceInfoHint.tsx +0 -126
- package/templates/components/orionplace/shared/OrionplacePasswordInput.README.md +0 -39
- package/templates/components/orionplace/shared/OrionplacePasswordInput.module.css +0 -79
- package/templates/components/orionplace/shared/OrionplacePasswordInput.tsx +0 -103
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.README.md +0 -97
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.module.css +0 -246
- package/templates/components/orionplace/shared/OrionplaceSearchSelect.tsx +0 -367
- package/templates/components/orionplace/shared/OrionplaceSelect.README.md +0 -69
- package/templates/components/orionplace/shared/OrionplaceSelect.module.css +0 -233
- package/templates/components/orionplace/shared/OrionplaceSelect.tsx +0 -439
- package/templates/components/orionplace/shared/StorefrontErrorPage.README.md +0 -52
- package/templates/components/orionplace/shared/StorefrontErrorPage.module.css +0 -141
- package/templates/components/orionplace/shared/StorefrontErrorPage.tsx +0 -103
- package/templates/components/orionplace/shared/StorefrontPagination.README.md +0 -45
- package/templates/components/orionplace/shared/StorefrontPagination.module.css +0 -69
- package/templates/components/orionplace/shared/StorefrontPagination.tsx +0 -158
- package/templates/components/orionplace/shared/dialogs.css +0 -36
- package/templates/components/orionplace/shared/emptyStateArt.ts +0 -231
- package/templates/components/orionplace/shared/features.module.css +0 -162
- package/templates/components/orionplace/social/SocialLinks.README.md +0 -16
- package/templates/components/orionplace/social/SocialLinks.module.css +0 -36
- package/templates/components/orionplace/social/SocialLinks.tsx +0 -59
- package/templates/components/orionplace/storefront/StorefrontAccount.README.md +0 -59
- package/templates/components/orionplace/storefront/StorefrontAccount.module.css +0 -159
- package/templates/components/orionplace/storefront/StorefrontAccount.tsx +0 -303
- package/templates/components/orionplace/storefront/StorefrontCartButton.README.md +0 -47
- package/templates/components/orionplace/storefront/StorefrontCartButton.module.css +0 -88
- package/templates/components/orionplace/storefront/StorefrontCartButton.tsx +0 -54
- package/templates/components/orionplace/storefront/StorefrontFooter.README.md +0 -55
- package/templates/components/orionplace/storefront/StorefrontFooter.module.css +0 -118
- package/templates/components/orionplace/storefront/StorefrontFooter.tsx +0 -168
- package/templates/components/orionplace/storefront/StorefrontHeader.README.md +0 -150
- package/templates/components/orionplace/storefront/StorefrontHeader.module.css +0 -186
- package/templates/components/orionplace/storefront/StorefrontHeader.tsx +0 -389
- package/templates/components/orionplace/storefront/StorefrontHome.README.md +0 -138
- package/templates/components/orionplace/storefront/StorefrontHome.module.css +0 -116
- package/templates/components/orionplace/storefront/StorefrontHome.tsx +0 -282
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.README.md +0 -51
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.module.css +0 -95
- package/templates/components/orionplace/storefront/StorefrontWishlistButton.tsx +0 -80
- package/templates/components/orionplace/stores/StorefrontStores.README.md +0 -87
- package/templates/components/orionplace/stores/StorefrontStores.module.css +0 -218
- package/templates/components/orionplace/stores/StorefrontStores.tsx +0 -397
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +0 -183
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.module.css +0 -347
- package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.tsx +0 -884
- package/templates/components/orionplace/subscriptions/StorefrontTariff.README.md +0 -124
- package/templates/components/orionplace/subscriptions/StorefrontTariff.module.css +0 -311
- package/templates/components/orionplace/subscriptions/StorefrontTariff.tsx +0 -485
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.README.md +0 -115
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.module.css +0 -219
- package/templates/components/orionplace/subscriptions/StorefrontTariffs.tsx +0 -367
- package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +0 -67
- package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.tsx +0 -175
- package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +0 -95
- package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.tsx +0 -634
- package/templates/components/orionplace/subscriptions/SubscriptionDialog.module.css +0 -453
- package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +0 -75
- package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.tsx +0 -384
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +0 -116
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.module.css +0 -168
- package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.tsx +0 -236
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +0 -123
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.module.css +0 -57
- package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.tsx +0 -101
- package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +0 -109
- package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.tsx +0 -253
- package/templates/components/orionplace/support/StorefrontSupport.README.md +0 -157
- package/templates/components/orionplace/support/StorefrontSupport.tsx +0 -1040
- package/templates/components/orionplace/support/Support.module.css +0 -1133
- package/templates/components/orionplace/support/TicketConversation.README.md +0 -105
- package/templates/components/orionplace/support/TicketConversation.tsx +0 -502
- package/templates/components/orionplace/support/TicketImage.README.md +0 -52
- package/templates/components/orionplace/support/TicketImage.tsx +0 -254
- package/templates/components/orionplace/support/TicketItemCard.README.md +0 -66
- package/templates/components/orionplace/support/TicketItemCard.tsx +0 -140
- package/templates/components/orionplace/support/TicketMessageForm.README.md +0 -88
- package/templates/components/orionplace/support/TicketMessageForm.tsx +0 -261
- package/templates/components/orionplace/support/TicketSubscriptionCard.README.md +0 -53
- package/templates/components/orionplace/support/TicketSubscriptionCard.tsx +0 -118
- package/templates/components/orionplace/tariffs/TariffCard.README.md +0 -108
- package/templates/components/orionplace/tariffs/TariffCard.module.css +0 -86
- package/templates/components/orionplace/tariffs/TariffCard.tsx +0 -225
- package/templates/components/orionplace/tariffs/TariffCardDescription.README.md +0 -40
- package/templates/components/orionplace/tariffs/TariffCardDescription.module.css +0 -72
- package/templates/components/orionplace/tariffs/TariffCardDescription.tsx +0 -58
- package/templates/components/orionplace/tariffs/TariffCardFeatures.README.md +0 -58
- package/templates/components/orionplace/tariffs/TariffCardFeatures.module.css +0 -60
- package/templates/components/orionplace/tariffs/TariffCardFeatures.tsx +0 -140
- package/templates/components/orionplace/tariffs/TariffCardImage.README.md +0 -36
- package/templates/components/orionplace/tariffs/TariffCardImage.module.css +0 -8
- package/templates/components/orionplace/tariffs/TariffCardImage.tsx +0 -32
- package/templates/components/orionplace/tariffs/TariffCardPrices.README.md +0 -82
- package/templates/components/orionplace/tariffs/TariffCardPrices.module.css +0 -142
- package/templates/components/orionplace/tariffs/TariffCardPrices.tsx +0 -191
- package/templates/components/orionplace/tariffs/TariffCardTitle.README.md +0 -32
- package/templates/components/orionplace/tariffs/TariffCardTitle.module.css +0 -9
- package/templates/components/orionplace/tariffs/TariffCardTitle.tsx +0 -29
- package/templates/components/orionplace/tariffs/TariffCards.README.md +0 -88
- package/templates/components/orionplace/tariffs/TariffCards.module.css +0 -24
- package/templates/components/orionplace/tariffs/TariffCards.tsx +0 -44
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.README.md +0 -92
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.module.css +0 -214
- package/templates/components/orionplace/tariffs/TariffSubscriptionModal.tsx +0 -299
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.README.md +0 -30
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.module.css +0 -8
- package/templates/components/orionplace/theme/OrionplaceThemeProvider.tsx +0 -32
- package/templates/components/orionplace/units/UnitSwitcher.README.md +0 -35
- package/templates/components/orionplace/units/UnitSwitcher.tsx +0 -58
- package/templates/components/orionplace/wallet/StorefrontWallet.README.md +0 -154
- package/templates/components/orionplace/wallet/StorefrontWallet.module.css +0 -507
- package/templates/components/orionplace/wallet/StorefrontWallet.tsx +0 -915
- package/templates/components/orionplace/wallet/WalletBalance.README.md +0 -46
- package/templates/components/orionplace/wallet/WalletBalance.module.css +0 -46
- package/templates/components/orionplace/wallet/WalletBalance.tsx +0 -51
- package/templates/components/orionplace/wallet/WalletTopUpForm.README.md +0 -54
- package/templates/components/orionplace/wallet/WalletTopUpForm.module.css +0 -152
- package/templates/components/orionplace/wallet/WalletTopUpForm.tsx +0 -181
- package/templates/hooks/useAccountActivity.ts +0 -251
- package/templates/hooks/useAccountAddresses.ts +0 -81
- package/templates/hooks/useAccountPromocodes.ts +0 -91
- package/templates/hooks/useOrionplaceActionMenu.ts +0 -118
- package/templates/hooks/useOrionplaceAddressForm.ts +0 -262
- package/templates/hooks/useOrionplaceApi.ts +0 -98
- package/templates/hooks/useOrionplaceAppLoad.ts +0 -66
- package/templates/hooks/useOrionplaceBlogReading.ts +0 -351
- package/templates/hooks/useOrionplaceDialog.ts +0 -85
- package/templates/hooks/useOrionplaceHomeProducts.ts +0 -97
- package/templates/hooks/useOrionplaceMap.tsx +0 -230
- package/templates/hooks/useOrionplaceMediaFormat.ts +0 -33
- package/templates/hooks/useOrionplaceProduct.ts +0 -28
- package/templates/hooks/useOrionplaceProfile.ts +0 -347
- package/templates/hooks/useOrionplaceReviews.ts +0 -352
- package/templates/hooks/useOrionplaceStableHeight.ts +0 -65
- package/templates/hooks/useOrionplaceStorefront.tsx +0 -593
- package/templates/hooks/useOrionplaceTariffPurchase.ts +0 -212
- package/templates/interfaces/orionplace/accounts/IContact.ts +0 -21
- package/templates/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +0 -17
- package/templates/interfaces/orionplace/accounts/IEmailVerification.ts +0 -59
- package/templates/interfaces/orionplace/accounts/IProfileActions.ts +0 -38
- package/templates/interfaces/orionplace/accounts/IProfileData.ts +0 -125
- package/templates/interfaces/orionplace/accounts/IProfileMedia.ts +0 -17
- package/templates/interfaces/orionplace/accounts/IStorefrontProfile.ts +0 -54
- package/templates/interfaces/orionplace/address/IAddressCitySuggestion.ts +0 -19
- package/templates/interfaces/orionplace/address/IAddressEditor.ts +0 -9
- package/templates/interfaces/orionplace/address/IAddressLocationSuggestion.ts +0 -22
- package/templates/interfaces/orionplace/address/IAddressRegionSearch.ts +0 -30
- package/templates/interfaces/orionplace/address/IAddressSuggestion.ts +0 -20
- package/templates/interfaces/orionplace/address/IUserAddress.ts +0 -87
- package/templates/interfaces/orionplace/apiBase/TMethod.ts +0 -1
- package/templates/interfaces/orionplace/appBase/IAppLoad.ts +0 -16
- package/templates/interfaces/orionplace/appBase/IAppLoadCommon.ts +0 -47
- package/templates/interfaces/orionplace/appBase/IApploadUserProfile.ts +0 -15
- package/templates/interfaces/orionplace/appBase/IForm.ts +0 -21
- package/templates/interfaces/orionplace/appBase/ISEO.ts +0 -21
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +0 -11
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonContact.ts +0 -8
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonCurrency.ts +0 -15
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonEvents.ts +0 -18
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLocale.ts +0 -14
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLogos.ts +0 -6
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +0 -22
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +0 -26
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSocial.ts +0 -15
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +0 -7
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonUnit.ts +0 -12
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +0 -8
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVisualSettings.ts +0 -11
- package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonWalletValue.ts +0 -3
- package/templates/interfaces/orionplace/blog/IBlogApi.ts +0 -247
- package/templates/interfaces/orionplace/blog/IBlogPostPreview.ts +0 -30
- package/templates/interfaces/orionplace/cart/ICartActions.ts +0 -67
- package/templates/interfaces/orionplace/cart/ICartData.ts +0 -382
- package/templates/interfaces/orionplace/cart/ICartDeliveryActions.ts +0 -68
- package/templates/interfaces/orionplace/cart/ICartModal.ts +0 -22
- package/templates/interfaces/orionplace/cart/IDeliveryMap.ts +0 -29
- package/templates/interfaces/orionplace/catalog/ICatalogDirectory.ts +0 -75
- package/templates/interfaces/orionplace/category/ICategory.ts +0 -41
- package/templates/interfaces/orionplace/domains/IDomain.ts +0 -13
- package/templates/interfaces/orionplace/forms/ICustomerSubfilter.ts +0 -19
- package/templates/interfaces/orionplace/index.ts +0 -64
- package/templates/interfaces/orionplace/marketing/IPromoActions.ts +0 -51
- package/templates/interfaces/orionplace/orders/IOrderActions.ts +0 -99
- package/templates/interfaces/orionplace/orders/IOrderHistory.ts +0 -259
- package/templates/interfaces/orionplace/orders/IProductPreorder.ts +0 -31
- package/templates/interfaces/orionplace/payments/IInvoice.ts +0 -147
- package/templates/interfaces/orionplace/products/IProduct.ts +0 -262
- package/templates/interfaces/orionplace/products/IProductFeedbackApi.ts +0 -218
- package/templates/interfaces/orionplace/products/IProductSearchApi.ts +0 -146
- package/templates/interfaces/orionplace/products/IProductSearchFacets.ts +0 -35
- package/templates/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +0 -15
- package/templates/interfaces/orionplace/products/IProductSpecification.ts +0 -14
- package/templates/interfaces/orionplace/products/IWishlist.ts +0 -22
- package/templates/interfaces/orionplace/sellers/ISellerDirectory.ts +0 -70
- package/templates/interfaces/orionplace/shared/IBreadcrumb.ts +0 -10
- package/templates/interfaces/orionplace/shared/IGeoCoordinates.ts +0 -4
- package/templates/interfaces/orionplace/shared/IStorefrontControls.ts +0 -6
- package/templates/interfaces/orionplace/shared/ITransformValue.ts +0 -3
- package/templates/interfaces/orionplace/state.ts +0 -4
- package/templates/interfaces/orionplace/stores/IStoreDirectory.ts +0 -63
- package/templates/interfaces/orionplace/subscribeOptions/ISubscribeOption.ts +0 -9
- package/templates/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +0 -56
- package/templates/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +0 -11
- package/templates/interfaces/orionplace/subscribes/ISubscribe.ts +0 -28
- package/templates/interfaces/orionplace/subscribes/ISubscriptionApi.ts +0 -127
- package/templates/interfaces/orionplace/tickets/ICustomerTicketApi.ts +0 -223
- package/templates/interfaces/orionplace/transport.ts +0 -34
- package/templates/lib/orionplace/accountLabels.ts +0 -29
- package/templates/lib/orionplace/activityLabels.ts +0 -96
- package/templates/lib/orionplace/activityPresentation.ts +0 -9
- package/templates/lib/orionplace/addressChanges.ts +0 -26
- package/templates/lib/orionplace/addressPresentation.ts +0 -58
- package/templates/lib/orionplace/api.ts +0 -326
- package/templates/lib/orionplace/appLoadClient.ts +0 -80
- package/templates/lib/orionplace/appLoadResult.ts +0 -120
- package/templates/lib/orionplace/appLoadServer.ts +0 -183
- package/templates/lib/orionplace/blogArticle.ts +0 -122
- package/templates/lib/orionplace/blogArticleHtml.ts +0 -371
- package/templates/lib/orionplace/blogComments.ts +0 -102
- package/templates/lib/orionplace/blogImageViewer.ts +0 -84
- package/templates/lib/orionplace/blogJournal.ts +0 -128
- package/templates/lib/orionplace/blogLabels.ts +0 -158
- package/templates/lib/orionplace/blogPresentation.ts +0 -67
- package/templates/lib/orionplace/blogProductPlacements.ts +0 -105
- package/templates/lib/orionplace/browseLabels.ts +0 -145
- package/templates/lib/orionplace/cartAddress.ts +0 -86
- package/templates/lib/orionplace/cartController.ts +0 -104
- package/templates/lib/orionplace/cartLabels.ts +0 -390
- package/templates/lib/orionplace/cartOptions.ts +0 -115
- package/templates/lib/orionplace/cartPreview.ts +0 -135
- package/templates/lib/orionplace/cartPromo.ts +0 -150
- package/templates/lib/orionplace/cartShipment.ts +0 -61
- package/templates/lib/orionplace/cartSnapshot.ts +0 -21
- package/templates/lib/orionplace/catalog.ts +0 -150
- package/templates/lib/orionplace/categoryLabels.ts +0 -29
- package/templates/lib/orionplace/contact.ts +0 -47
- package/templates/lib/orionplace/contactLabels.ts +0 -152
- package/templates/lib/orionplace/currency.ts +0 -128
- package/templates/lib/orionplace/deliveryMap.ts +0 -86
- package/templates/lib/orionplace/directoryLabels.ts +0 -198
- package/templates/lib/orionplace/domain.ts +0 -21
- package/templates/lib/orionplace/errorPageLabels.ts +0 -89
- package/templates/lib/orionplace/eventEnrollment.ts +0 -22
- package/templates/lib/orionplace/featureData.ts +0 -28
- package/templates/lib/orionplace/featureLabels.ts +0 -406
- package/templates/lib/orionplace/featuredLabels.ts +0 -38
- package/templates/lib/orionplace/footerLabels.ts +0 -53
- package/templates/lib/orionplace/guestSession.ts +0 -55
- package/templates/lib/orionplace/headerLabels.ts +0 -98
- package/templates/lib/orionplace/homeContent.ts +0 -193
- package/templates/lib/orionplace/homeLabels.ts +0 -74
- package/templates/lib/orionplace/htmlText.ts +0 -51
- package/templates/lib/orionplace/manufacturerDirectory.ts +0 -71
- package/templates/lib/orionplace/manufacturerIndex.ts +0 -107
- package/templates/lib/orionplace/modalWindow.ts +0 -109
- package/templates/lib/orionplace/nativeApp.ts +0 -365
- package/templates/lib/orionplace/navigation.tsx +0 -121
- package/templates/lib/orionplace/notice.ts +0 -22
- package/templates/lib/orionplace/orderLabels.ts +0 -458
- package/templates/lib/orionplace/orderPresentation.ts +0 -617
- package/templates/lib/orionplace/pageMetadata.ts +0 -361
- package/templates/lib/orionplace/pageSeo.ts +0 -662
- package/templates/lib/orionplace/paginationScroll.ts +0 -131
- package/templates/lib/orionplace/phone.ts +0 -22
- package/templates/lib/orionplace/presentation.ts +0 -84
- package/templates/lib/orionplace/privacyLabels.ts +0 -273
- package/templates/lib/orionplace/productActionLabels.ts +0 -108
- package/templates/lib/orionplace/productAvailability.ts +0 -30
- package/templates/lib/orionplace/productGallery.ts +0 -64
- package/templates/lib/orionplace/productLabels.ts +0 -119
- package/templates/lib/orionplace/productListLocation.ts +0 -130
- package/templates/lib/orionplace/productPage.ts +0 -308
- package/templates/lib/orionplace/productPhotos.ts +0 -67
- package/templates/lib/orionplace/productSearch.ts +0 -280
- package/templates/lib/orionplace/productSeller.ts +0 -56
- package/templates/lib/orionplace/productStructuredData.ts +0 -221
- package/templates/lib/orionplace/profile.ts +0 -169
- package/templates/lib/orionplace/profileLabels.ts +0 -227
- package/templates/lib/orionplace/promoLabels.ts +0 -111
- package/templates/lib/orionplace/promoPresentation.ts +0 -381
- package/templates/lib/orionplace/reviewLabels.ts +0 -256
- package/templates/lib/orionplace/reviewPresentation.ts +0 -64
- package/templates/lib/orionplace/reviewScope.ts +0 -38
- package/templates/lib/orionplace/searchFilters.ts +0 -99
- package/templates/lib/orionplace/searchHistory.ts +0 -144
- package/templates/lib/orionplace/sellerDirectory.ts +0 -120
- package/templates/lib/orionplace/seo.ts +0 -52
- package/templates/lib/orionplace/serverApi.ts +0 -158
- package/templates/lib/orionplace/serverLocale.ts +0 -29
- package/templates/lib/orionplace/serverMetadata.ts +0 -93
- package/templates/lib/orionplace/serverRecords.ts +0 -31
- package/templates/lib/orionplace/serverRoute.tsx +0 -59
- package/templates/lib/orionplace/sessionLabels.ts +0 -38
- package/templates/lib/orionplace/signInReturn.ts +0 -89
- package/templates/lib/orionplace/storeDirectory.ts +0 -47
- package/templates/lib/orionplace/storefrontRecords.ts +0 -42
- package/templates/lib/orionplace/subscriptionChanges.ts +0 -120
- package/templates/lib/orionplace/subscriptionLabels.ts +0 -100
- package/templates/lib/orionplace/subscriptionManageLabels.ts +0 -422
- package/templates/lib/orionplace/subscriptionPlans.ts +0 -122
- package/templates/lib/orionplace/subscriptionRemote.ts +0 -85
- package/templates/lib/orionplace/subscriptionUsage.ts +0 -58
- package/templates/lib/orionplace/tariffLabels.ts +0 -176
- package/templates/lib/orionplace/tariffPage.ts +0 -54
- package/templates/lib/orionplace/tariffVariables.ts +0 -174
- package/templates/lib/orionplace/tariffs.ts +0 -241
- package/templates/lib/orionplace/ticketItems.ts +0 -75
- package/templates/lib/orionplace/ticketLabels.ts +0 -428
- package/templates/lib/orionplace/ticketLocation.ts +0 -79
- package/templates/lib/orionplace/ticketRequests.ts +0 -70
- package/templates/lib/orionplace/walletTransaction.ts +0 -105
- package/templates/orionplace/COMPONENT-DOWNLOAD.md +0 -66
- package/templates/orionplace/COMPONENTS.md +0 -35
- package/templates/providers/OrionplaceProvider.tsx +0 -191
- package/templates/proxy.ts +0 -63
- package/templates/stores/orionplace.ts +0 -282
- package/templates/stores/orionplaceBrowse.ts +0 -89
- package/templates/stores/orionplaceCatalog.ts +0 -162
- package/templates/stores/orionplaceProducts.ts +0 -389
- package/templates/stores/orionplaceScope.ts +0 -104
- package/templates/stores/orionplaceSelections.ts +0 -130
- package/templates/themes/orionplace.ts +0 -106
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
// What a modal window does to the page behind it: the page stops scrolling
|
|
2
|
-
// while the window is open, and the focus goes back when it closes.
|
|
3
|
-
//
|
|
4
|
-
// The lock is on the root element (<html>), whose scrollbar is the page
|
|
5
|
-
// scrollbar. `scrollbar-gutter: stable` keeps that scrollbar's space while
|
|
6
|
-
// it is hidden, so the page does not shift sideways when a window opens.
|
|
7
|
-
//
|
|
8
|
-
// A window can open over another one. Open windows share one lock: the first
|
|
9
|
-
// saves the root's own `overflow` and `scrollbar-gutter`, and the page gets
|
|
10
|
-
// them back only when the last window closes, in whatever order they close.
|
|
11
|
-
|
|
12
|
-
let openLocks = 0;
|
|
13
|
-
let previousOverflow = '';
|
|
14
|
-
let previousGutter = '';
|
|
15
|
-
|
|
16
|
-
// One lock per window: locking twice or unlocking twice counts once.
|
|
17
|
-
export function createPageScrollLock() {
|
|
18
|
-
let locked = false;
|
|
19
|
-
|
|
20
|
-
return {
|
|
21
|
-
get locked() {
|
|
22
|
-
return locked;
|
|
23
|
-
},
|
|
24
|
-
lock() {
|
|
25
|
-
if (locked || typeof document === 'undefined') {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const root = document.documentElement;
|
|
30
|
-
|
|
31
|
-
if (openLocks === 0) {
|
|
32
|
-
previousOverflow = root.style.overflow;
|
|
33
|
-
previousGutter = root.style.scrollbarGutter;
|
|
34
|
-
root.style.overflow = 'hidden';
|
|
35
|
-
root.style.scrollbarGutter = 'stable';
|
|
36
|
-
}
|
|
37
|
-
openLocks += 1;
|
|
38
|
-
locked = true;
|
|
39
|
-
},
|
|
40
|
-
unlock() {
|
|
41
|
-
if (!locked) {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const root = document.documentElement;
|
|
46
|
-
|
|
47
|
-
openLocks -= 1;
|
|
48
|
-
locked = false;
|
|
49
|
-
if (openLocks === 0) {
|
|
50
|
-
root.style.overflow = previousOverflow;
|
|
51
|
-
root.style.scrollbarGutter = previousGutter;
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// The element that has the focus, if any. A window that opens keeps it as
|
|
58
|
-
// its opener.
|
|
59
|
-
export function focusedElement() {
|
|
60
|
-
if (typeof document === 'undefined') {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const active = document.activeElement;
|
|
65
|
-
|
|
66
|
-
return active instanceof HTMLElement ? active : undefined;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Focus goes back to the element that opened the window. The page stays
|
|
70
|
-
// where the visitor left it instead of scrolling to that element.
|
|
71
|
-
//
|
|
72
|
-
// `reveal` is for an element that can be outside the browser window when it
|
|
73
|
-
// gets the focus, such as a gallery tile that appears only after the grid
|
|
74
|
-
// expands. The page then scrolls just enough to show the whole element,
|
|
75
|
-
// smoothly unless the visitor prefers reduced motion, and stays where it is
|
|
76
|
-
// when the element is already in view.
|
|
77
|
-
export function restoreFocus(
|
|
78
|
-
target: HTMLElement | null | undefined,
|
|
79
|
-
{ reveal = false }: { reveal?: boolean } = {},
|
|
80
|
-
) {
|
|
81
|
-
if (!target?.isConnected) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
target.focus({ preventScroll: true });
|
|
86
|
-
if (reveal && !inView(target)) {
|
|
87
|
-
const reduce = window.matchMedia?.(
|
|
88
|
-
'(prefers-reduced-motion: reduce)',
|
|
89
|
-
).matches;
|
|
90
|
-
|
|
91
|
-
target.scrollIntoView({
|
|
92
|
-
block: 'nearest',
|
|
93
|
-
inline: 'nearest',
|
|
94
|
-
behavior: reduce ? 'auto' : 'smooth',
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Whether the whole element is inside the browser window.
|
|
100
|
-
function inView(element: HTMLElement) {
|
|
101
|
-
const bounds = element.getBoundingClientRect();
|
|
102
|
-
|
|
103
|
-
return (
|
|
104
|
-
bounds.top >= 0 &&
|
|
105
|
-
bounds.left >= 0 &&
|
|
106
|
-
bounds.bottom <= window.innerHeight &&
|
|
107
|
-
bounds.right <= window.innerWidth
|
|
108
|
-
);
|
|
109
|
-
}
|
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
OrionplaceApiRequest,
|
|
3
|
-
OrionplaceApiResponse,
|
|
4
|
-
} from '@/lib/orionplace/api';
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
* Android app build (ORIONPLACE_APP_ORIGIN, see orionplace/README.md and
|
|
8
|
-
* orionplace/runtime/app.mjs).
|
|
9
|
-
*
|
|
10
|
-
* The app runs from https://localhost inside the Android WebView. Its API
|
|
11
|
-
* requests go to the public storefront (for example
|
|
12
|
-
* https://shop.example.com/api/...) through Capacitor's native HTTP, so the
|
|
13
|
-
* storefront answers them exactly as the website's requests. The requests
|
|
14
|
-
* carry the storefront Origin and Referer, which the backend needs for CSRF
|
|
15
|
-
* checks and which a WebView fetch can not set. The session and CSRF cookies
|
|
16
|
-
* live in the native cookie store, which neither document.cookie nor
|
|
17
|
-
* Capacitor's getCookies shows for the storefront, so the CSRF token is read
|
|
18
|
-
* from the responses' Set-Cookie headers.
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
interface NativeHttpResponse {
|
|
22
|
-
status: number;
|
|
23
|
-
headers: Record<string, string>;
|
|
24
|
-
data: unknown;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
interface AppPlugin {
|
|
28
|
-
addListener?: (
|
|
29
|
-
event: 'backButton',
|
|
30
|
-
listener: (data: { canGoBack: boolean }) => void,
|
|
31
|
-
) => unknown;
|
|
32
|
-
exitApp?: () => Promise<void>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
interface CapacitorBridge {
|
|
36
|
-
nativePromise?: <T>(
|
|
37
|
-
plugin: string,
|
|
38
|
-
method: string,
|
|
39
|
-
options: Record<string, unknown>,
|
|
40
|
-
) => Promise<T>;
|
|
41
|
-
isPluginAvailable?: (name: string) => boolean;
|
|
42
|
-
Plugins?: { App?: AppPlugin };
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/** Storefront cookies received in this app run, by name. */
|
|
46
|
-
const storefrontCookies = new Map<string, string>();
|
|
47
|
-
|
|
48
|
-
function bridge() {
|
|
49
|
-
const nativePromise = (globalThis as { Capacitor?: CapacitorBridge })
|
|
50
|
-
.Capacitor?.nativePromise;
|
|
51
|
-
if (!nativePromise) {
|
|
52
|
-
throw new Error('The Android app bridge is not available.');
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
return nativePromise;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/** The public storefront origin of an app build; empty on the website. */
|
|
59
|
-
export function nativeAppOrigin(configured: unknown): string {
|
|
60
|
-
return typeof configured === 'string' ? configured : '';
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* The backend serves some media itself (blog images and videos) and sends
|
|
65
|
-
* them as root-relative `/ps3/...` paths. The website's gateway answers
|
|
66
|
-
* them; an app build has no server of its own, so they load from the
|
|
67
|
-
* storefront. Other addresses stay as they are.
|
|
68
|
-
*/
|
|
69
|
-
export function appMediaUrl(url: string, origin: string): string {
|
|
70
|
-
return origin && url.startsWith('/') && !url.startsWith('//')
|
|
71
|
-
? origin + url
|
|
72
|
-
: url;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/** This build's storefront origin: next.config.ts sets it for the app build. */
|
|
76
|
-
export const APP_ORIGIN = nativeAppOrigin(process.env.ORIONPLACE_APP_ORIGIN);
|
|
77
|
-
|
|
78
|
-
const LOCALE_KEY = 'orionplace-app-locale';
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* The language the customer picked last. The app opens at its start page
|
|
82
|
-
* without `?locale`, so the device keeps the choice between launches.
|
|
83
|
-
*/
|
|
84
|
-
export function savedAppLocale(): string {
|
|
85
|
-
try {
|
|
86
|
-
return localStorage.getItem(LOCALE_KEY) ?? '';
|
|
87
|
-
} catch {
|
|
88
|
-
return '';
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function saveAppLocale(code: string) {
|
|
93
|
-
try {
|
|
94
|
-
localStorage.setItem(LOCALE_KEY, code);
|
|
95
|
-
} catch {
|
|
96
|
-
// Without storage the app starts in the storefront's language.
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/*
|
|
101
|
-
* The last open menu (language, currency, catalog…) gets the Escape key; it
|
|
102
|
-
* tells it closed by preventing the key's default.
|
|
103
|
-
*/
|
|
104
|
-
function closeOpenMenu(): boolean {
|
|
105
|
-
const open = [...document.querySelectorAll('[aria-expanded="true"]')]
|
|
106
|
-
.filter((control) => control.getClientRects().length > 0);
|
|
107
|
-
const escape = new KeyboardEvent('keydown', {
|
|
108
|
-
key: 'Escape',
|
|
109
|
-
bubbles: true,
|
|
110
|
-
cancelable: true,
|
|
111
|
-
});
|
|
112
|
-
open.at(-1)?.dispatchEvent(escape);
|
|
113
|
-
return escape.defaultPrevented;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* The Android back button closes the open dialog or menu, otherwise goes
|
|
118
|
-
* one page back and leaves the app on the first page. It needs the
|
|
119
|
-
* @capacitor/app plugin; without it Android closes the app on the first press.
|
|
120
|
-
*/
|
|
121
|
-
export function handleAppBackButton(): boolean {
|
|
122
|
-
const app = (globalThis as { Capacitor?: CapacitorBridge }).Capacitor
|
|
123
|
-
?.Plugins?.App;
|
|
124
|
-
if (!app?.addListener) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
app.addListener('backButton', ({ canGoBack }) => {
|
|
128
|
-
const dialogs = document.querySelectorAll('dialog[open]');
|
|
129
|
-
const dialog = dialogs[dialogs.length - 1] as HTMLDialogElement | undefined;
|
|
130
|
-
if (dialog) {
|
|
131
|
-
// Dialogs close themselves on `cancel`, as on the Escape key.
|
|
132
|
-
if (dialog.dispatchEvent(new Event('cancel', { cancelable: true }))) {
|
|
133
|
-
dialog.close();
|
|
134
|
-
}
|
|
135
|
-
} else if (closeOpenMenu()) {
|
|
136
|
-
// An open menu closed, as on the Escape key; the page stays.
|
|
137
|
-
} else if (canGoBack) {
|
|
138
|
-
history.back();
|
|
139
|
-
} else {
|
|
140
|
-
void app.exitApp?.();
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/** A file as base64, the form Capacitor's Filesystem writes. */
|
|
148
|
-
function base64(file: Blob): Promise<string> {
|
|
149
|
-
return new Promise((resolve, reject) => {
|
|
150
|
-
const reader = new FileReader();
|
|
151
|
-
reader.onload = () => resolve(String(reader.result).replace(/^data:[^,]*,/, ''));
|
|
152
|
-
reader.onerror = () => reject(reader.error);
|
|
153
|
-
reader.readAsDataURL(file);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Saves a downloaded file in the Android app and opens Android's sheet to
|
|
159
|
-
* open or share it: the WebView ignores a download link. It needs the
|
|
160
|
-
* @capacitor/filesystem and @capacitor/share plugins; without them (and on
|
|
161
|
-
* the website) it returns false and the page uses its download link.
|
|
162
|
-
*/
|
|
163
|
-
export async function saveAppFile(file: Blob, filename: string): Promise<boolean> {
|
|
164
|
-
const capacitor = (globalThis as { Capacitor?: CapacitorBridge }).Capacitor;
|
|
165
|
-
if (
|
|
166
|
-
!capacitor?.nativePromise ||
|
|
167
|
-
!capacitor.isPluginAvailable?.('Filesystem') ||
|
|
168
|
-
!capacitor.isPluginAvailable('Share')
|
|
169
|
-
) {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
const name = filename
|
|
173
|
-
.split(/[\\/]/)
|
|
174
|
-
.pop()
|
|
175
|
-
?.replace(/[\u0000-\u001f\u007f]/g, '') || 'download';
|
|
176
|
-
const { uri } = await capacitor.nativePromise<{ uri: string }>('Filesystem', 'writeFile', {
|
|
177
|
-
path: `downloads/${name}`,
|
|
178
|
-
data: await base64(file),
|
|
179
|
-
directory: 'CACHE',
|
|
180
|
-
recursive: true,
|
|
181
|
-
});
|
|
182
|
-
try {
|
|
183
|
-
await capacitor.nativePromise('Share', 'share', {
|
|
184
|
-
title: name,
|
|
185
|
-
dialogTitle: name,
|
|
186
|
-
files: [uri],
|
|
187
|
-
});
|
|
188
|
-
} catch {
|
|
189
|
-
// Closing the sheet without a choice rejects too; the file is saved.
|
|
190
|
-
}
|
|
191
|
-
return true;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
/** The storefront cookies as a Cookie header string, for the CSRF token. */
|
|
195
|
-
export function nativeAppCookies(): string {
|
|
196
|
-
return [...storefrontCookies]
|
|
197
|
-
.map(([name, value]) => `${name}=${value}`)
|
|
198
|
-
.join('; ');
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/*
|
|
202
|
-
* Android joins several Set-Cookie headers with a comma. A comma inside an
|
|
203
|
-
* Expires date is not followed by `name=`, so it does not split a cookie.
|
|
204
|
-
* A storefront proxy may expire a host-only copy next to the real cookie
|
|
205
|
-
* (`csrftoken=; Max-Age=0` beside `csrftoken=…; Domain=…`): a value set in
|
|
206
|
-
* the same response wins over that expiry.
|
|
207
|
-
*/
|
|
208
|
-
function rememberCookies(header: string) {
|
|
209
|
-
const live = new Map<string, string>();
|
|
210
|
-
const expired = new Set<string>();
|
|
211
|
-
for (const cookie of header.split(/,\s*(?=[\w!#$%&'*+.^`|~-]+=)/)) {
|
|
212
|
-
const [pair = '', ...attributes] = cookie.split(';');
|
|
213
|
-
const separator = pair.indexOf('=');
|
|
214
|
-
const name = pair.slice(0, separator).trim();
|
|
215
|
-
if (separator < 1) {
|
|
216
|
-
continue;
|
|
217
|
-
}
|
|
218
|
-
const removed = attributes.some((attribute) =>
|
|
219
|
-
/^\s*max-age\s*=\s*0*\s*$|^\s*max-age\s*=\s*-/i.test(attribute),
|
|
220
|
-
);
|
|
221
|
-
if (removed) {
|
|
222
|
-
expired.add(name);
|
|
223
|
-
} else {
|
|
224
|
-
live.set(name, pair.slice(separator + 1).trim());
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
for (const name of expired) {
|
|
228
|
-
if (!live.has(name)) {
|
|
229
|
-
storefrontCookies.delete(name);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
for (const [name, value] of live) {
|
|
233
|
-
storefrontCookies.set(name, value);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// GET parameters, encoded as the website's requests encode them.
|
|
238
|
-
function withQuery(url: string, data: object) {
|
|
239
|
-
const query = new URLSearchParams();
|
|
240
|
-
for (const [name, value] of Object.entries(data)) {
|
|
241
|
-
for (const item of Array.isArray(value) ? value : [value]) {
|
|
242
|
-
if (item === undefined) {
|
|
243
|
-
continue;
|
|
244
|
-
}
|
|
245
|
-
query.append(
|
|
246
|
-
name,
|
|
247
|
-
item !== null && typeof item === 'object'
|
|
248
|
-
? JSON.stringify(item)
|
|
249
|
-
: String(item ?? ''),
|
|
250
|
-
);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
const text = query.toString();
|
|
254
|
-
|
|
255
|
-
return text ? `${url}${url.includes('?') ? '&' : '?'}${text}` : url;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
async function base64File(file: File) {
|
|
259
|
-
const bytes = new Uint8Array(await file.arrayBuffer());
|
|
260
|
-
let binary = '';
|
|
261
|
-
for (let index = 0; index < bytes.length; index += 0x8000) {
|
|
262
|
-
binary += String.fromCharCode(...bytes.subarray(index, index + 0x8000));
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
return btoa(binary);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
async function nativeBody(data: OrionplaceApiRequest['data']) {
|
|
269
|
-
if (!(data instanceof FormData)) {
|
|
270
|
-
return { data: JSON.stringify(data), dataType: 'json' };
|
|
271
|
-
}
|
|
272
|
-
const entries = [];
|
|
273
|
-
for (const [key, value] of data.entries()) {
|
|
274
|
-
entries.push(
|
|
275
|
-
value instanceof File
|
|
276
|
-
? {
|
|
277
|
-
key,
|
|
278
|
-
value: await base64File(value),
|
|
279
|
-
type: 'base64File',
|
|
280
|
-
contentType: value.type,
|
|
281
|
-
fileName: value.name,
|
|
282
|
-
}
|
|
283
|
-
: { key, value, type: 'string' },
|
|
284
|
-
);
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
return { data: entries, dataType: 'formData' };
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
function header(headers: Record<string, string>, name: string) {
|
|
291
|
-
const entry = Object.entries(headers).find(
|
|
292
|
-
([key]) => key.toLowerCase() === name,
|
|
293
|
-
);
|
|
294
|
-
|
|
295
|
-
return entry?.[1] ?? '';
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/** Sends one API request of the Android app to the storefront origin. */
|
|
299
|
-
export async function nativeAppRequest(
|
|
300
|
-
origin: string,
|
|
301
|
-
path: string,
|
|
302
|
-
request: OrionplaceApiRequest,
|
|
303
|
-
): Promise<OrionplaceApiResponse> {
|
|
304
|
-
const isGet = request.method === 'GET';
|
|
305
|
-
const url =
|
|
306
|
-
isGet && !(request.data instanceof FormData)
|
|
307
|
-
? withQuery(`${origin}${path}`, request.data)
|
|
308
|
-
: `${origin}${path}`;
|
|
309
|
-
const headers = {
|
|
310
|
-
...request.headers,
|
|
311
|
-
Origin: origin,
|
|
312
|
-
Referer: `${origin}/`,
|
|
313
|
-
} as Record<string, string>;
|
|
314
|
-
if (request.data instanceof FormData) {
|
|
315
|
-
// Android writes no body without this type; it adds the boundary itself.
|
|
316
|
-
for (const name of Object.keys(headers)) {
|
|
317
|
-
if (name.toLowerCase() === 'content-type') {
|
|
318
|
-
delete headers[name];
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
headers['Content-Type'] = 'multipart/form-data';
|
|
322
|
-
}
|
|
323
|
-
request.signal?.throwIfAborted();
|
|
324
|
-
const call = bridge();
|
|
325
|
-
const options = {
|
|
326
|
-
url,
|
|
327
|
-
method: request.method,
|
|
328
|
-
headers,
|
|
329
|
-
// JSON answers arrive parsed; files arrive as base64.
|
|
330
|
-
responseType: 'blob',
|
|
331
|
-
connectTimeout: 35_000,
|
|
332
|
-
readTimeout: 35_000,
|
|
333
|
-
...(isGet ? {} : await nativeBody(request.data)),
|
|
334
|
-
};
|
|
335
|
-
let response: NativeHttpResponse;
|
|
336
|
-
try {
|
|
337
|
-
response = await call<NativeHttpResponse>('CapacitorHttp', 'request', options);
|
|
338
|
-
} catch {
|
|
339
|
-
// No network or no answer: fail as fetch does (a TypeError), so pages
|
|
340
|
-
// show their translated network message, not Android's own text.
|
|
341
|
-
request.signal?.throwIfAborted();
|
|
342
|
-
throw new TypeError('Network request failed');
|
|
343
|
-
}
|
|
344
|
-
request.signal?.throwIfAborted();
|
|
345
|
-
rememberCookies(header(response.headers, 'set-cookie'));
|
|
346
|
-
|
|
347
|
-
const type = header(response.headers, 'content-type');
|
|
348
|
-
let body = response.data;
|
|
349
|
-
if (!type.includes('json') && typeof body === 'string' && response.status < 300) {
|
|
350
|
-
const bytes = Uint8Array.from(atob(body), (character) =>
|
|
351
|
-
character.charCodeAt(0),
|
|
352
|
-
);
|
|
353
|
-
body = new Blob([bytes], { type });
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
return {
|
|
357
|
-
body,
|
|
358
|
-
status: response.status,
|
|
359
|
-
cookies: [],
|
|
360
|
-
headers: {
|
|
361
|
-
'content-type': type,
|
|
362
|
-
'content-disposition': header(response.headers, 'content-disposition'),
|
|
363
|
-
},
|
|
364
|
-
};
|
|
365
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import NextLink from 'next/link';
|
|
4
|
-
import { useRouter } from 'next/navigation';
|
|
5
|
-
import type { ComponentProps, MouseEvent } from 'react';
|
|
6
|
-
import { APP_ORIGIN } from '@/lib/orionplace/nativeApp';
|
|
7
|
-
|
|
8
|
-
/*
|
|
9
|
-
* Navigation of the storefront. The website uses the Next.js router. The
|
|
10
|
-
* Android app build is one static page (app/[[...path]]/page.app.tsx), so it
|
|
11
|
-
* changes the address with the History API, which Next.js reports to
|
|
12
|
-
* usePathname and useSearchParams; app/_storefront/AppRoutes.tsx then shows
|
|
13
|
-
* the page of that address.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
type Href = ComponentProps<typeof NextLink>['href'];
|
|
17
|
-
|
|
18
|
-
/** Set by a push that asks for the top of the next page. */
|
|
19
|
-
let scrollOnNextPage = false;
|
|
20
|
-
|
|
21
|
-
/** Set by a replace: the page changed its own address (a tab, a page number). */
|
|
22
|
-
let replacedAddress = '';
|
|
23
|
-
|
|
24
|
-
/** The address of a link: a string, or Next.js's { pathname, query } object. */
|
|
25
|
-
export function hrefText(href: Href): string {
|
|
26
|
-
if (typeof href === 'string') {
|
|
27
|
-
return href;
|
|
28
|
-
}
|
|
29
|
-
const query = new URLSearchParams();
|
|
30
|
-
for (const [name, value] of Object.entries(href.query ?? {})) {
|
|
31
|
-
for (const item of Array.isArray(value) ? value : [value]) {
|
|
32
|
-
if (item !== undefined && item !== null) {
|
|
33
|
-
query.append(name, String(item));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const search = query.toString();
|
|
38
|
-
return `${href.pathname ?? ''}${search ? `?${search}` : ''}${href.hash ?? ''}`;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const appRouter = {
|
|
42
|
-
push(href: string, options?: { scroll?: boolean }) {
|
|
43
|
-
scrollOnNextPage = options?.scroll !== false;
|
|
44
|
-
replacedAddress = '';
|
|
45
|
-
history.pushState(null, '', href);
|
|
46
|
-
},
|
|
47
|
-
replace(href: string, options?: { scroll?: boolean }) {
|
|
48
|
-
scrollOnNextPage = options?.scroll !== false;
|
|
49
|
-
replacedAddress = href;
|
|
50
|
-
history.replaceState(null, '', href);
|
|
51
|
-
},
|
|
52
|
-
back() {
|
|
53
|
-
history.back();
|
|
54
|
-
},
|
|
55
|
-
forward() {
|
|
56
|
-
history.forward();
|
|
57
|
-
},
|
|
58
|
-
refresh() {},
|
|
59
|
-
prefetch() {},
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
/** Whether the page shown next opens at the top; reading it clears it. */
|
|
63
|
-
export function takeAppPageScroll() {
|
|
64
|
-
const scroll = scrollOnNextPage;
|
|
65
|
-
scrollOnNextPage = false;
|
|
66
|
-
return scroll;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Whether the page replaced its own address with the current one; reading it
|
|
71
|
-
* clears it, so Back after a replace to the same address is not taken for one.
|
|
72
|
-
*/
|
|
73
|
-
export function takeAppPageReplace() {
|
|
74
|
-
const replaced = replacedAddress ? new URL(replacedAddress, location.href) : null;
|
|
75
|
-
replacedAddress = '';
|
|
76
|
-
return replaced?.pathname === location.pathname && replaced.search === location.search;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/** The storefront router: Next.js's on the website, the History API in the app. */
|
|
80
|
-
export function useStorefrontRouter() {
|
|
81
|
-
const router = useRouter();
|
|
82
|
-
return APP_ORIGIN ? appRouter : router;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/** Opens a storefront address in the app without reloading it. */
|
|
86
|
-
export function openAppAddress(href: string) {
|
|
87
|
-
appRouter.push(href);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function plainClick(event: MouseEvent<HTMLAnchorElement>) {
|
|
91
|
-
return (
|
|
92
|
-
event.button === 0 &&
|
|
93
|
-
!event.metaKey &&
|
|
94
|
-
!event.ctrlKey &&
|
|
95
|
-
!event.shiftKey &&
|
|
96
|
-
!event.altKey
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/** next/link on the website; in the app a link that the app opens itself. */
|
|
101
|
-
export function StorefrontLink(props: ComponentProps<typeof NextLink>) {
|
|
102
|
-
if (!APP_ORIGIN) {
|
|
103
|
-
return <NextLink {...props} />;
|
|
104
|
-
}
|
|
105
|
-
const { href, onClick, prefetch: _prefetch, replace, scroll, ...anchor } = props;
|
|
106
|
-
const address = hrefText(href);
|
|
107
|
-
return (
|
|
108
|
-
<a
|
|
109
|
-
{...anchor}
|
|
110
|
-
href={address}
|
|
111
|
-
onClick={(event) => {
|
|
112
|
-
onClick?.(event);
|
|
113
|
-
if (event.defaultPrevented || !plainClick(event) || anchor.target) {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
event.preventDefault();
|
|
117
|
-
(replace ? appRouter.replace : appRouter.push)(address, { scroll });
|
|
118
|
-
}}
|
|
119
|
-
/>
|
|
120
|
-
);
|
|
121
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Brings a notice that just appeared into view. A cart action started far
|
|
3
|
-
* down the page (an option, a delivery) answers with its error at the top of
|
|
4
|
-
* the cart, out of sight, so the customer saw nothing happen (option refusal
|
|
5
|
-
* «The package is too large», 2026-10-15). Instant with reduced motion.
|
|
6
|
-
*/
|
|
7
|
-
export function revealNotice(element: Element | null | undefined) {
|
|
8
|
-
if (!element || typeof window === 'undefined') {
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const bounds = element.getBoundingClientRect();
|
|
13
|
-
if (bounds.top >= 0 && bounds.bottom <= window.innerHeight) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const reduce = window.matchMedia?.('(prefers-reduced-motion: reduce)').matches;
|
|
18
|
-
element.scrollIntoView({
|
|
19
|
-
block: 'center',
|
|
20
|
-
behavior: reduce ? 'auto' : 'smooth',
|
|
21
|
-
});
|
|
22
|
-
}
|