orionplace-react 0.1.0 → 0.2.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.
Files changed (633) hide show
  1. package/README.md +276 -35
  2. package/bin/orionplace-react.mjs +4 -1
  3. package/package.json +18 -5
  4. package/runtime/app.d.mts +6 -0
  5. package/runtime/app.mjs +48 -0
  6. package/runtime/marketplace.d.mts +13 -8
  7. package/runtime/marketplace.mjs +287 -211
  8. package/src/project-readme.mjs +95 -35
  9. package/src/setup.mjs +36 -13
  10. package/templates/app/StorefrontShell.tsx +435 -0
  11. package/templates/app/[[...path]]/page.app.tsx +11 -0
  12. package/templates/app/_storefront/ActivityPage.tsx +23 -0
  13. package/templates/app/_storefront/AddressesPage.tsx +29 -0
  14. package/templates/app/_storefront/AppRoutes.tsx +182 -0
  15. package/templates/app/_storefront/ArticlePage.tsx +81 -0
  16. package/templates/app/_storefront/CartPage.tsx +53 -0
  17. package/templates/app/_storefront/CatalogPage.tsx +37 -0
  18. package/templates/app/_storefront/CategoryPage.tsx +64 -0
  19. package/templates/app/_storefront/ContactPage.tsx +32 -0
  20. package/templates/app/_storefront/HomePage.tsx +140 -0
  21. package/templates/app/_storefront/JournalPage.tsx +36 -0
  22. package/templates/app/_storefront/LogoutPage.tsx +91 -0
  23. package/templates/app/_storefront/ManufacturersPage.tsx +64 -0
  24. package/templates/app/_storefront/OrdersPage.tsx +129 -0
  25. package/templates/app/_storefront/ProductPage.tsx +105 -0
  26. package/templates/app/_storefront/ProfilePage.tsx +75 -0
  27. package/templates/app/_storefront/PromoPage.tsx +66 -0
  28. package/templates/app/_storefront/PromocodesPage.tsx +17 -0
  29. package/templates/app/_storefront/SearchPage.tsx +220 -0
  30. package/templates/app/_storefront/SellersPage.tsx +160 -0
  31. package/templates/app/_storefront/StorefrontErrorRoute.tsx +42 -0
  32. package/templates/app/_storefront/StorefrontPageMetadata.tsx +74 -0
  33. package/templates/app/_storefront/StorefrontPageStatus.tsx +61 -0
  34. package/templates/app/_storefront/StoresPage.tsx +53 -0
  35. package/templates/app/_storefront/SubscriptionsPage.tsx +62 -0
  36. package/templates/app/_storefront/SupportPage.tsx +141 -0
  37. package/templates/app/_storefront/TariffsPage.tsx +180 -0
  38. package/templates/app/_storefront/UnsubscribePage.tsx +29 -0
  39. package/templates/app/_storefront/WalletPage.tsx +78 -0
  40. package/templates/app/_storefront/WishlistPage.tsx +79 -0
  41. package/templates/app/_storefront/storefrontRoutes.tsx +738 -0
  42. package/templates/app/_storefront/useAccountWallet.ts +27 -0
  43. package/templates/app/_storefront/useBlogComments.ts +389 -0
  44. package/templates/app/_storefront/useProductSearch.ts +171 -0
  45. package/templates/app/_storefront/useStorefrontNavigation.ts +36 -0
  46. package/templates/app/activity/page.tsx +9 -0
  47. package/templates/app/addresses/page.tsx +9 -0
  48. package/templates/app/api/[...orionplace]/route.ts +11 -4
  49. package/templates/app/browse/page.tsx +27 -0
  50. package/templates/app/cart/page.tsx +9 -0
  51. package/templates/app/catalog/page.tsx +9 -0
  52. package/templates/app/category/[id]/page.tsx +9 -0
  53. package/templates/app/contact/page.tsx +9 -0
  54. package/templates/app/error.tsx +7 -0
  55. package/templates/app/featured/page.tsx +9 -0
  56. package/templates/app/global-error.tsx +61 -0
  57. package/templates/app/globals.css +50 -2
  58. package/templates/app/journal/[id]/page.tsx +9 -0
  59. package/templates/app/journal/page.tsx +9 -0
  60. package/templates/app/layout.app.tsx +20 -0
  61. package/templates/app/layout.tsx +44 -10
  62. package/templates/app/logout/page.tsx +9 -0
  63. package/templates/app/manufacturers/page.tsx +9 -0
  64. package/templates/app/not-found.tsx +5 -0
  65. package/templates/app/orders/page.tsx +9 -0
  66. package/templates/app/page.module.css +12 -8
  67. package/templates/app/page.tsx +8 -79
  68. package/templates/app/product/[id]/page.tsx +9 -0
  69. package/templates/app/profile/page.tsx +9 -0
  70. package/templates/app/promo/[id]/page.tsx +9 -0
  71. package/templates/app/promocodes/page.tsx +9 -0
  72. package/templates/app/ps3/blog/[...orionplace]/route.ts +13 -0
  73. package/templates/app/sellers/page.tsx +9 -0
  74. package/templates/app/storefront.module.css +406 -0
  75. package/templates/app/stores/page.tsx +9 -0
  76. package/templates/app/subscriptions/page.tsx +9 -0
  77. package/templates/app/tariffs/[slug]/[id]/page.tsx +9 -0
  78. package/templates/app/tariffs/page.tsx +9 -0
  79. package/templates/app/tickets/page.tsx +9 -0
  80. package/templates/app/unsubscribe/page.tsx +9 -0
  81. package/templates/app/wallet/page.tsx +9 -0
  82. package/templates/app/wishlist/page.tsx +9 -0
  83. package/templates/components/orionplace/account/AccountActivity.README.md +70 -0
  84. package/templates/components/orionplace/account/AccountActivity.module.css +16 -0
  85. package/templates/components/orionplace/account/AccountActivity.tsx +94 -0
  86. package/templates/components/orionplace/account/AccountPromocodes.README.md +70 -0
  87. package/templates/components/orionplace/account/AccountPromocodes.module.css +92 -0
  88. package/templates/components/orionplace/account/AccountPromocodes.tsx +257 -0
  89. package/templates/components/orionplace/account/AccountSection.README.md +46 -0
  90. package/templates/components/orionplace/account/AccountSection.module.css +110 -0
  91. package/templates/components/orionplace/account/AccountSection.tsx +109 -0
  92. package/templates/components/orionplace/account/ProfileAvatar.README.md +48 -0
  93. package/templates/components/orionplace/account/ProfileAvatar.module.css +31 -0
  94. package/templates/components/orionplace/account/ProfileAvatar.tsx +138 -0
  95. package/templates/components/orionplace/account/ProfileDeleteAccount.README.md +59 -0
  96. package/templates/components/orionplace/account/ProfileDeleteAccount.module.css +51 -0
  97. package/templates/components/orionplace/account/ProfileDeleteAccount.tsx +171 -0
  98. package/templates/components/orionplace/account/ProfileDetailsForm.README.md +44 -0
  99. package/templates/components/orionplace/account/ProfileDetailsForm.module.css +35 -0
  100. package/templates/components/orionplace/account/ProfileDetailsForm.tsx +178 -0
  101. package/templates/components/orionplace/account/ProfileEmailSettings.README.md +52 -0
  102. package/templates/components/orionplace/account/ProfileEmailSettings.module.css +51 -0
  103. package/templates/components/orionplace/account/ProfileEmailSettings.tsx +276 -0
  104. package/templates/components/orionplace/account/ProfilePasswordForm.README.md +45 -0
  105. package/templates/components/orionplace/account/ProfilePasswordForm.module.css +43 -0
  106. package/templates/components/orionplace/account/ProfilePasswordForm.tsx +227 -0
  107. package/templates/components/orionplace/account/ProfileSignIn.README.md +64 -0
  108. package/templates/components/orionplace/account/ProfileSignIn.module.css +86 -0
  109. package/templates/components/orionplace/account/ProfileSignIn.tsx +463 -0
  110. package/templates/components/orionplace/account/SignInHistory.README.md +52 -0
  111. package/templates/components/orionplace/account/SignInHistory.module.css +81 -0
  112. package/templates/components/orionplace/account/SignInHistory.tsx +231 -0
  113. package/templates/components/orionplace/account/StorefrontLogout.README.md +48 -0
  114. package/templates/components/orionplace/account/StorefrontLogout.module.css +166 -0
  115. package/templates/components/orionplace/account/StorefrontLogout.tsx +73 -0
  116. package/templates/components/orionplace/account/StorefrontProfile.README.md +71 -0
  117. package/templates/components/orionplace/account/StorefrontProfile.module.css +65 -0
  118. package/templates/components/orionplace/account/StorefrontProfile.tsx +189 -0
  119. package/templates/components/orionplace/account/account.module.css +1180 -0
  120. package/templates/components/orionplace/account/profile.module.css +696 -0
  121. package/templates/components/orionplace/address/AddressForm.README.md +152 -0
  122. package/templates/components/orionplace/address/AddressForm.module.css +336 -0
  123. package/templates/components/orionplace/address/AddressForm.tsx +827 -0
  124. package/templates/components/orionplace/address/StorefrontAddresses.README.md +99 -0
  125. package/templates/components/orionplace/address/StorefrontAddresses.module.css +271 -0
  126. package/templates/components/orionplace/address/StorefrontAddresses.tsx +438 -0
  127. package/templates/components/orionplace/banners/MainBanner.README.md +65 -0
  128. package/templates/components/orionplace/banners/MainBanner.module.css +112 -0
  129. package/templates/components/orionplace/banners/MainBanner.tsx +159 -0
  130. package/templates/components/orionplace/blog/BlogArticle.README.md +143 -0
  131. package/templates/components/orionplace/blog/BlogArticle.module.css +304 -0
  132. package/templates/components/orionplace/blog/BlogArticle.tsx +371 -0
  133. package/templates/components/orionplace/blog/BlogCommentForm.README.md +51 -0
  134. package/templates/components/orionplace/blog/BlogCommentForm.module.css +93 -0
  135. package/templates/components/orionplace/blog/BlogCommentForm.tsx +125 -0
  136. package/templates/components/orionplace/blog/BlogComments.README.md +98 -0
  137. package/templates/components/orionplace/blog/BlogComments.module.css +151 -0
  138. package/templates/components/orionplace/blog/BlogComments.tsx +590 -0
  139. package/templates/components/orionplace/blog/BlogPostCard.README.md +51 -0
  140. package/templates/components/orionplace/blog/BlogPostCard.module.css +167 -0
  141. package/templates/components/orionplace/blog/BlogPostCard.tsx +177 -0
  142. package/templates/components/orionplace/blog/BlogPostGroup.README.md +49 -0
  143. package/templates/components/orionplace/blog/BlogPostGroup.module.css +37 -0
  144. package/templates/components/orionplace/blog/BlogPostGroup.tsx +129 -0
  145. package/templates/components/orionplace/blog/StorefrontJournal.README.md +105 -0
  146. package/templates/components/orionplace/blog/StorefrontJournal.module.css +387 -0
  147. package/templates/components/orionplace/blog/StorefrontJournal.tsx +548 -0
  148. package/templates/components/orionplace/branding/BrandLogos.README.md +29 -0
  149. package/templates/components/orionplace/branding/BrandLogos.module.css +7 -0
  150. package/templates/components/orionplace/branding/BrandLogos.tsx +30 -0
  151. package/templates/components/orionplace/cart/CartCheckoutDetails.README.md +92 -0
  152. package/templates/components/orionplace/cart/CartCheckoutDetails.module.css +159 -0
  153. package/templates/components/orionplace/cart/CartCheckoutDetails.tsx +370 -0
  154. package/templates/components/orionplace/cart/CartDeliverySelector.README.md +166 -0
  155. package/templates/components/orionplace/cart/CartDeliverySelector.module.css +105 -0
  156. package/templates/components/orionplace/cart/CartDeliverySelector.tsx +679 -0
  157. package/templates/components/orionplace/cart/CartItemOptions.README.md +172 -0
  158. package/templates/components/orionplace/cart/CartItemOptions.module.css +113 -0
  159. package/templates/components/orionplace/cart/CartItemOptions.tsx +503 -0
  160. package/templates/components/orionplace/cart/CartLineItem.README.md +138 -0
  161. package/templates/components/orionplace/cart/CartLineItem.module.css +57 -0
  162. package/templates/components/orionplace/cart/CartLineItem.tsx +263 -0
  163. package/templates/components/orionplace/cart/CartPreview.README.md +99 -0
  164. package/templates/components/orionplace/cart/CartPreview.module.css +225 -0
  165. package/templates/components/orionplace/cart/CartPreview.tsx +188 -0
  166. package/templates/components/orionplace/cart/DeliveryMap.README.md +65 -0
  167. package/templates/components/orionplace/cart/DeliveryMap.module.css +32 -0
  168. package/templates/components/orionplace/cart/DeliveryMap.tsx +131 -0
  169. package/templates/components/orionplace/cart/StorefrontCart.README.md +281 -0
  170. package/templates/components/orionplace/cart/StorefrontCart.module.css +460 -0
  171. package/templates/components/orionplace/cart/StorefrontCart.tsx +937 -0
  172. package/templates/components/orionplace/catalog/CatalogHeader.README.md +136 -0
  173. package/templates/components/orionplace/catalog/CatalogHeader.module.css +387 -0
  174. package/templates/components/orionplace/catalog/CatalogHeader.tsx +644 -0
  175. package/templates/components/orionplace/catalog/CatalogRepresentative.README.md +68 -0
  176. package/templates/components/orionplace/catalog/CatalogRepresentative.tsx +51 -0
  177. package/templates/components/orionplace/catalog/StorefrontCatalog.README.md +120 -0
  178. package/templates/components/orionplace/catalog/StorefrontCatalog.module.css +179 -0
  179. package/templates/components/orionplace/catalog/StorefrontCatalog.tsx +304 -0
  180. package/templates/components/orionplace/categories/CategoryGroup.README.md +68 -0
  181. package/templates/components/orionplace/categories/CategoryGroup.module.css +110 -0
  182. package/templates/components/orionplace/categories/CategoryGroup.tsx +123 -0
  183. package/templates/components/orionplace/categories/StorefrontCategory.README.md +155 -0
  184. package/templates/components/orionplace/categories/StorefrontCategory.module.css +148 -0
  185. package/templates/components/orionplace/categories/StorefrontCategory.tsx +225 -0
  186. package/templates/components/orionplace/contact/AboutPage.README.md +40 -0
  187. package/templates/components/orionplace/contact/AboutPage.module.css +216 -0
  188. package/templates/components/orionplace/contact/AboutPage.tsx +191 -0
  189. package/templates/components/orionplace/contact/ContactForm.README.md +93 -0
  190. package/templates/components/orionplace/contact/ContactForm.module.css +264 -0
  191. package/templates/components/orionplace/contact/ContactForm.tsx +382 -0
  192. package/templates/components/orionplace/contact/EmailUnsubscribe.README.md +67 -0
  193. package/templates/components/orionplace/contact/EmailUnsubscribe.module.css +94 -0
  194. package/templates/components/orionplace/contact/EmailUnsubscribe.tsx +130 -0
  195. package/templates/components/orionplace/contact/StorefrontContact.README.md +73 -0
  196. package/templates/components/orionplace/contact/StorefrontContact.module.css +101 -0
  197. package/templates/components/orionplace/contact/StorefrontContact.tsx +62 -0
  198. package/templates/components/orionplace/currencies/MainCurrencySwitcher.README.md +37 -0
  199. package/templates/components/orionplace/currencies/MainCurrencySwitcher.tsx +68 -0
  200. package/templates/components/orionplace/events/EventEnrollmentDialog.README.md +108 -0
  201. package/templates/components/orionplace/events/EventEnrollmentDialog.module.css +110 -0
  202. package/templates/components/orionplace/events/EventEnrollmentDialog.tsx +315 -0
  203. package/templates/components/orionplace/events/EventsBlock.README.md +58 -0
  204. package/templates/components/orionplace/events/EventsBlock.module.css +101 -0
  205. package/templates/components/orionplace/events/EventsBlock.tsx +109 -0
  206. package/templates/components/orionplace/locale/MainLanguageSwitcher.README.md +46 -0
  207. package/templates/components/orionplace/locale/MainLanguageSwitcher.module.css +196 -0
  208. package/templates/components/orionplace/locale/MainLanguageSwitcher.tsx +387 -0
  209. package/templates/components/orionplace/manufacturers/ManufacturerIndex.README.md +83 -0
  210. package/templates/components/orionplace/manufacturers/ManufacturerIndex.module.css +271 -0
  211. package/templates/components/orionplace/manufacturers/ManufacturerIndex.tsx +218 -0
  212. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.README.md +122 -0
  213. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.module.css +92 -0
  214. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.tsx +455 -0
  215. package/templates/components/orionplace/orders/OrderDetails.README.md +116 -0
  216. package/templates/components/orionplace/orders/OrderDetails.module.css +730 -0
  217. package/templates/components/orionplace/orders/OrderDetails.tsx +693 -0
  218. package/templates/components/orionplace/orders/OrderPaymentForm.README.md +92 -0
  219. package/templates/components/orionplace/orders/OrderPaymentForm.module.css +105 -0
  220. package/templates/components/orionplace/orders/OrderPaymentForm.tsx +90 -0
  221. package/templates/components/orionplace/orders/StorefrontOrders.README.md +131 -0
  222. package/templates/components/orionplace/orders/StorefrontOrders.module.css +633 -0
  223. package/templates/components/orionplace/orders/StorefrontOrders.tsx +922 -0
  224. package/templates/components/orionplace/payments/PaymentPanel.README.md +114 -0
  225. package/templates/components/orionplace/payments/PaymentPanel.module.css +134 -0
  226. package/templates/components/orionplace/payments/PaymentPanel.tsx +76 -0
  227. package/templates/components/orionplace/products/HoverImageViewer.README.md +62 -0
  228. package/templates/components/orionplace/products/HoverImageViewer.module.css +88 -0
  229. package/templates/components/orionplace/products/HoverImageViewer.tsx +179 -0
  230. package/templates/components/orionplace/products/ProductCard.README.md +152 -0
  231. package/templates/components/orionplace/products/ProductCard.module.css +333 -0
  232. package/templates/components/orionplace/products/ProductCard.tsx +716 -0
  233. package/templates/components/orionplace/products/ProductCardActions.README.md +84 -0
  234. package/templates/components/orionplace/products/ProductCardActions.module.css +146 -0
  235. package/templates/components/orionplace/products/ProductCardActions.tsx +311 -0
  236. package/templates/components/orionplace/products/ProductCardBadges.README.md +44 -0
  237. package/templates/components/orionplace/products/ProductCardBadges.module.css +15 -0
  238. package/templates/components/orionplace/products/ProductCardBadges.tsx +78 -0
  239. package/templates/components/orionplace/products/ProductCardDescription.README.md +33 -0
  240. package/templates/components/orionplace/products/ProductCardDescription.module.css +6 -0
  241. package/templates/components/orionplace/products/ProductCardDescription.tsx +43 -0
  242. package/templates/components/orionplace/products/ProductCardFavorite.README.md +52 -0
  243. package/templates/components/orionplace/products/ProductCardFavorite.module.css +64 -0
  244. package/templates/components/orionplace/products/ProductCardFavorite.tsx +90 -0
  245. package/templates/components/orionplace/products/ProductCardPrice.README.md +33 -0
  246. package/templates/components/orionplace/products/ProductCardPrice.module.css +22 -0
  247. package/templates/components/orionplace/products/ProductCardPrice.tsx +50 -0
  248. package/templates/components/orionplace/products/ProductCardRating.README.md +33 -0
  249. package/templates/components/orionplace/products/ProductCardRating.module.css +7 -0
  250. package/templates/components/orionplace/products/ProductCardRating.tsx +56 -0
  251. package/templates/components/orionplace/products/ProductCardSeller.README.md +36 -0
  252. package/templates/components/orionplace/products/ProductCardSeller.module.css +31 -0
  253. package/templates/components/orionplace/products/ProductCardSeller.tsx +61 -0
  254. package/templates/components/orionplace/products/ProductCardStockNotice.README.md +36 -0
  255. package/templates/components/orionplace/products/ProductCardStockNotice.module.css +8 -0
  256. package/templates/components/orionplace/products/ProductCardStockNotice.tsx +35 -0
  257. package/templates/components/orionplace/products/ProductCardTitle.README.md +30 -0
  258. package/templates/components/orionplace/products/ProductCardTitle.module.css +13 -0
  259. package/templates/components/orionplace/products/ProductCardTitle.tsx +31 -0
  260. package/templates/components/orionplace/products/ProductCardVariants.README.md +77 -0
  261. package/templates/components/orionplace/products/ProductCardVariants.module.css +97 -0
  262. package/templates/components/orionplace/products/ProductCardVariants.tsx +350 -0
  263. package/templates/components/orionplace/products/ProductGroup.README.md +89 -0
  264. package/templates/components/orionplace/products/ProductGroup.module.css +64 -0
  265. package/templates/components/orionplace/products/ProductGroup.tsx +183 -0
  266. package/templates/components/orionplace/products/ProductPreorderDialog.README.md +89 -0
  267. package/templates/components/orionplace/products/ProductPreorderDialog.module.css +320 -0
  268. package/templates/components/orionplace/products/ProductPreorderDialog.tsx +346 -0
  269. package/templates/components/orionplace/products/ProductReviewForm.README.md +72 -0
  270. package/templates/components/orionplace/products/ProductReviewForm.module.css +217 -0
  271. package/templates/components/orionplace/products/ProductReviewForm.tsx +288 -0
  272. package/templates/components/orionplace/products/ProductReviewGallery.README.md +61 -0
  273. package/templates/components/orionplace/products/ProductReviewGallery.module.css +108 -0
  274. package/templates/components/orionplace/products/ProductReviewGallery.tsx +110 -0
  275. package/templates/components/orionplace/products/ProductReviewImageViewer.README.md +49 -0
  276. package/templates/components/orionplace/products/ProductReviewImageViewer.module.css +50 -0
  277. package/templates/components/orionplace/products/ProductReviewImageViewer.tsx +260 -0
  278. package/templates/components/orionplace/products/ProductReviews.README.md +137 -0
  279. package/templates/components/orionplace/products/ProductReviews.module.css +602 -0
  280. package/templates/components/orionplace/products/ProductReviews.tsx +944 -0
  281. package/templates/components/orionplace/products/ProductSecondaryVariantModal.README.md +67 -0
  282. package/templates/components/orionplace/products/ProductSecondaryVariantModal.module.css +79 -0
  283. package/templates/components/orionplace/products/ProductSecondaryVariantModal.tsx +324 -0
  284. package/templates/components/orionplace/products/ProductSpecificationsDialog.README.md +52 -0
  285. package/templates/components/orionplace/products/ProductSpecificationsDialog.module.css +138 -0
  286. package/templates/components/orionplace/products/ProductSpecificationsDialog.tsx +117 -0
  287. package/templates/components/orionplace/products/StorefrontProduct.README.md +200 -0
  288. package/templates/components/orionplace/products/StorefrontProduct.module.css +767 -0
  289. package/templates/components/orionplace/products/StorefrontProduct.tsx +1339 -0
  290. package/templates/components/orionplace/products/StorefrontWishlist.README.md +162 -0
  291. package/templates/components/orionplace/products/StorefrontWishlist.module.css +71 -0
  292. package/templates/components/orionplace/products/StorefrontWishlist.tsx +402 -0
  293. package/templates/components/orionplace/promo/PromoProducts.README.md +133 -0
  294. package/templates/components/orionplace/promo/PromoProducts.module.css +68 -0
  295. package/templates/components/orionplace/promo/PromoProducts.tsx +345 -0
  296. package/templates/components/orionplace/search/MainSearch.README.md +73 -0
  297. package/templates/components/orionplace/search/MainSearch.module.css +202 -0
  298. package/templates/components/orionplace/search/MainSearch.tsx +217 -0
  299. package/templates/components/orionplace/search/ProductSearchResults.README.md +166 -0
  300. package/templates/components/orionplace/search/ProductSearchResults.module.css +358 -0
  301. package/templates/components/orionplace/search/ProductSearchResults.tsx +308 -0
  302. package/templates/components/orionplace/search/SearchFilters.README.md +109 -0
  303. package/templates/components/orionplace/search/SearchFilters.module.css +274 -0
  304. package/templates/components/orionplace/search/SearchFilters.tsx +439 -0
  305. package/templates/components/orionplace/sellers/SellerFilters.README.md +66 -0
  306. package/templates/components/orionplace/sellers/SellerFilters.module.css +232 -0
  307. package/templates/components/orionplace/sellers/SellerFilters.tsx +201 -0
  308. package/templates/components/orionplace/sellers/SellerPhotoGallery.README.md +72 -0
  309. package/templates/components/orionplace/sellers/SellerPhotoGallery.module.css +314 -0
  310. package/templates/components/orionplace/sellers/SellerPhotoGallery.tsx +335 -0
  311. package/templates/components/orionplace/sellers/SellerSummary.README.md +62 -0
  312. package/templates/components/orionplace/sellers/SellerSummary.module.css +182 -0
  313. package/templates/components/orionplace/sellers/SellerSummary.tsx +107 -0
  314. package/templates/components/orionplace/sellers/StorefrontSellers.README.md +120 -0
  315. package/templates/components/orionplace/sellers/StorefrontSellers.module.css +147 -0
  316. package/templates/components/orionplace/sellers/StorefrontSellers.tsx +360 -0
  317. package/templates/components/orionplace/shared/OrionplaceAvatar.README.md +35 -0
  318. package/templates/components/orionplace/shared/OrionplaceAvatar.module.css +35 -0
  319. package/templates/components/orionplace/shared/OrionplaceAvatar.tsx +61 -0
  320. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +33 -0
  321. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.module.css +81 -0
  322. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.tsx +91 -0
  323. package/templates/components/orionplace/shared/OrionplaceEmptyState.README.md +37 -0
  324. package/templates/components/orionplace/shared/OrionplaceEmptyState.module.css +126 -0
  325. package/templates/components/orionplace/shared/OrionplaceEmptyState.tsx +78 -0
  326. package/templates/components/orionplace/shared/OrionplaceImage.README.md +45 -0
  327. package/templates/components/orionplace/shared/OrionplaceImage.module.css +22 -0
  328. package/templates/components/orionplace/shared/OrionplaceImage.tsx +96 -0
  329. package/templates/components/orionplace/shared/OrionplaceInfoHint.README.md +31 -0
  330. package/templates/components/orionplace/shared/OrionplaceInfoHint.module.css +59 -0
  331. package/templates/components/orionplace/shared/OrionplaceInfoHint.tsx +126 -0
  332. package/templates/components/orionplace/shared/OrionplacePasswordInput.README.md +39 -0
  333. package/templates/components/orionplace/shared/OrionplacePasswordInput.module.css +79 -0
  334. package/templates/components/orionplace/shared/OrionplacePasswordInput.tsx +103 -0
  335. package/templates/components/orionplace/shared/OrionplaceSearchSelect.README.md +97 -0
  336. package/templates/components/orionplace/shared/OrionplaceSearchSelect.module.css +246 -0
  337. package/templates/components/orionplace/shared/OrionplaceSearchSelect.tsx +367 -0
  338. package/templates/components/orionplace/shared/OrionplaceSelect.README.md +69 -0
  339. package/templates/components/orionplace/shared/OrionplaceSelect.module.css +233 -0
  340. package/templates/components/orionplace/shared/OrionplaceSelect.tsx +439 -0
  341. package/templates/components/orionplace/shared/StorefrontErrorPage.README.md +52 -0
  342. package/templates/components/orionplace/shared/StorefrontErrorPage.module.css +141 -0
  343. package/templates/components/orionplace/shared/StorefrontErrorPage.tsx +103 -0
  344. package/templates/components/orionplace/shared/StorefrontPagination.README.md +39 -0
  345. package/templates/components/orionplace/shared/StorefrontPagination.module.css +69 -0
  346. package/templates/components/orionplace/shared/StorefrontPagination.tsx +102 -0
  347. package/templates/components/orionplace/shared/dialogs.css +36 -0
  348. package/templates/components/orionplace/shared/emptyStateArt.ts +231 -0
  349. package/templates/components/orionplace/shared/features.module.css +162 -0
  350. package/templates/components/orionplace/social/SocialLinks.README.md +16 -0
  351. package/templates/components/orionplace/social/SocialLinks.module.css +36 -0
  352. package/templates/components/orionplace/social/SocialLinks.tsx +59 -0
  353. package/templates/components/orionplace/storefront/StorefrontAccount.README.md +59 -0
  354. package/templates/components/orionplace/storefront/StorefrontAccount.module.css +159 -0
  355. package/templates/components/orionplace/storefront/StorefrontAccount.tsx +303 -0
  356. package/templates/components/orionplace/storefront/StorefrontCartButton.README.md +47 -0
  357. package/templates/components/orionplace/storefront/StorefrontCartButton.module.css +88 -0
  358. package/templates/components/orionplace/storefront/StorefrontCartButton.tsx +54 -0
  359. package/templates/components/orionplace/storefront/StorefrontFooter.README.md +55 -0
  360. package/templates/components/orionplace/storefront/StorefrontFooter.module.css +118 -0
  361. package/templates/components/orionplace/storefront/StorefrontFooter.tsx +165 -0
  362. package/templates/components/orionplace/storefront/StorefrontHeader.README.md +150 -0
  363. package/templates/components/orionplace/storefront/StorefrontHeader.module.css +186 -0
  364. package/templates/components/orionplace/storefront/StorefrontHeader.tsx +389 -0
  365. package/templates/components/orionplace/storefront/StorefrontHome.README.md +138 -0
  366. package/templates/components/orionplace/storefront/StorefrontHome.module.css +116 -0
  367. package/templates/components/orionplace/storefront/StorefrontHome.tsx +282 -0
  368. package/templates/components/orionplace/storefront/StorefrontWishlistButton.README.md +51 -0
  369. package/templates/components/orionplace/storefront/StorefrontWishlistButton.module.css +95 -0
  370. package/templates/components/orionplace/storefront/StorefrontWishlistButton.tsx +80 -0
  371. package/templates/components/orionplace/stores/StorefrontStores.README.md +87 -0
  372. package/templates/components/orionplace/stores/StorefrontStores.module.css +218 -0
  373. package/templates/components/orionplace/stores/StorefrontStores.tsx +396 -0
  374. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +183 -0
  375. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.module.css +347 -0
  376. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.tsx +884 -0
  377. package/templates/components/orionplace/subscriptions/StorefrontTariff.README.md +111 -0
  378. package/templates/components/orionplace/subscriptions/StorefrontTariff.module.css +311 -0
  379. package/templates/components/orionplace/subscriptions/StorefrontTariff.tsx +474 -0
  380. package/templates/components/orionplace/subscriptions/StorefrontTariffs.README.md +102 -0
  381. package/templates/components/orionplace/subscriptions/StorefrontTariffs.module.css +219 -0
  382. package/templates/components/orionplace/subscriptions/StorefrontTariffs.tsx +350 -0
  383. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +67 -0
  384. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.tsx +175 -0
  385. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +95 -0
  386. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.tsx +634 -0
  387. package/templates/components/orionplace/subscriptions/SubscriptionDialog.module.css +453 -0
  388. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +75 -0
  389. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.tsx +384 -0
  390. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +116 -0
  391. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.module.css +168 -0
  392. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.tsx +236 -0
  393. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +123 -0
  394. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.module.css +57 -0
  395. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.tsx +101 -0
  396. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +109 -0
  397. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.tsx +253 -0
  398. package/templates/components/orionplace/support/StorefrontSupport.README.md +157 -0
  399. package/templates/components/orionplace/support/StorefrontSupport.tsx +1040 -0
  400. package/templates/components/orionplace/support/Support.module.css +1133 -0
  401. package/templates/components/orionplace/support/TicketConversation.README.md +105 -0
  402. package/templates/components/orionplace/support/TicketConversation.tsx +502 -0
  403. package/templates/components/orionplace/support/TicketImage.README.md +52 -0
  404. package/templates/components/orionplace/support/TicketImage.tsx +254 -0
  405. package/templates/components/orionplace/support/TicketItemCard.README.md +66 -0
  406. package/templates/components/orionplace/support/TicketItemCard.tsx +140 -0
  407. package/templates/components/orionplace/support/TicketMessageForm.README.md +88 -0
  408. package/templates/components/orionplace/support/TicketMessageForm.tsx +261 -0
  409. package/templates/components/orionplace/support/TicketSubscriptionCard.README.md +53 -0
  410. package/templates/components/orionplace/support/TicketSubscriptionCard.tsx +118 -0
  411. package/templates/components/orionplace/tariffs/TariffCard.README.md +108 -0
  412. package/templates/components/orionplace/tariffs/TariffCard.module.css +86 -0
  413. package/templates/components/orionplace/tariffs/TariffCard.tsx +218 -0
  414. package/templates/components/orionplace/tariffs/TariffCardDescription.README.md +40 -0
  415. package/templates/components/orionplace/tariffs/TariffCardDescription.module.css +72 -0
  416. package/templates/components/orionplace/tariffs/TariffCardDescription.tsx +58 -0
  417. package/templates/components/orionplace/tariffs/TariffCardFeatures.README.md +58 -0
  418. package/templates/components/orionplace/tariffs/TariffCardFeatures.module.css +60 -0
  419. package/templates/components/orionplace/tariffs/TariffCardFeatures.tsx +140 -0
  420. package/templates/components/orionplace/tariffs/TariffCardImage.README.md +36 -0
  421. package/templates/components/orionplace/tariffs/TariffCardImage.module.css +8 -0
  422. package/templates/components/orionplace/tariffs/TariffCardImage.tsx +32 -0
  423. package/templates/components/orionplace/tariffs/TariffCardPrices.README.md +74 -0
  424. package/templates/components/orionplace/tariffs/TariffCardPrices.module.css +142 -0
  425. package/templates/components/orionplace/tariffs/TariffCardPrices.tsx +181 -0
  426. package/templates/components/orionplace/tariffs/TariffCardTitle.README.md +32 -0
  427. package/templates/components/orionplace/tariffs/TariffCardTitle.module.css +9 -0
  428. package/templates/components/orionplace/tariffs/TariffCardTitle.tsx +29 -0
  429. package/templates/components/orionplace/tariffs/TariffCards.README.md +88 -0
  430. package/templates/components/orionplace/tariffs/TariffCards.module.css +24 -0
  431. package/templates/components/orionplace/tariffs/TariffCards.tsx +44 -0
  432. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.README.md +92 -0
  433. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.module.css +214 -0
  434. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.tsx +299 -0
  435. package/templates/components/orionplace/theme/OrionplaceThemeProvider.README.md +30 -0
  436. package/templates/components/orionplace/theme/OrionplaceThemeProvider.module.css +8 -0
  437. package/templates/components/orionplace/theme/OrionplaceThemeProvider.tsx +32 -0
  438. package/templates/components/orionplace/units/UnitSwitcher.README.md +35 -0
  439. package/templates/components/orionplace/units/UnitSwitcher.tsx +58 -0
  440. package/templates/components/orionplace/wallet/StorefrontWallet.README.md +154 -0
  441. package/templates/components/orionplace/wallet/StorefrontWallet.module.css +507 -0
  442. package/templates/components/orionplace/wallet/StorefrontWallet.tsx +915 -0
  443. package/templates/components/orionplace/wallet/WalletBalance.README.md +46 -0
  444. package/templates/components/orionplace/wallet/WalletBalance.module.css +46 -0
  445. package/templates/components/orionplace/wallet/WalletBalance.tsx +51 -0
  446. package/templates/components/orionplace/wallet/WalletTopUpForm.README.md +54 -0
  447. package/templates/components/orionplace/wallet/WalletTopUpForm.module.css +152 -0
  448. package/templates/components/orionplace/wallet/WalletTopUpForm.tsx +181 -0
  449. package/templates/hooks/useAccountActivity.ts +251 -0
  450. package/templates/hooks/useAccountAddresses.ts +81 -0
  451. package/templates/hooks/useAccountPromocodes.ts +91 -0
  452. package/templates/hooks/useOrionplaceActionMenu.ts +118 -0
  453. package/templates/hooks/useOrionplaceAddressForm.ts +262 -0
  454. package/templates/hooks/useOrionplaceApi.ts +98 -0
  455. package/templates/hooks/useOrionplaceAppLoad.ts +38 -6
  456. package/templates/hooks/useOrionplaceBlogReading.ts +351 -0
  457. package/templates/hooks/useOrionplaceDialog.ts +85 -0
  458. package/templates/hooks/useOrionplaceHomeProducts.ts +97 -0
  459. package/templates/hooks/useOrionplaceMap.tsx +230 -0
  460. package/templates/hooks/useOrionplaceMediaFormat.ts +33 -0
  461. package/templates/hooks/useOrionplaceProduct.ts +28 -0
  462. package/templates/hooks/useOrionplaceProfile.ts +347 -0
  463. package/templates/hooks/useOrionplaceReviews.ts +352 -0
  464. package/templates/hooks/useOrionplaceStableHeight.ts +65 -0
  465. package/templates/hooks/useOrionplaceStorefront.tsx +575 -0
  466. package/templates/hooks/useOrionplaceTariffPurchase.ts +152 -0
  467. package/templates/interfaces/orionplace/accounts/IContact.ts +21 -0
  468. package/templates/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +17 -0
  469. package/templates/interfaces/orionplace/accounts/IEmailVerification.ts +59 -0
  470. package/templates/interfaces/orionplace/accounts/IProfileActions.ts +38 -0
  471. package/templates/interfaces/orionplace/accounts/IProfileData.ts +123 -0
  472. package/templates/interfaces/orionplace/accounts/IProfileMedia.ts +17 -0
  473. package/templates/interfaces/orionplace/accounts/IStorefrontProfile.ts +54 -0
  474. package/templates/interfaces/orionplace/address/IAddressCitySuggestion.ts +19 -0
  475. package/templates/interfaces/orionplace/address/IAddressEditor.ts +9 -0
  476. package/templates/interfaces/orionplace/address/IAddressLocationSuggestion.ts +22 -0
  477. package/templates/interfaces/orionplace/address/IAddressRegionSearch.ts +30 -0
  478. package/templates/interfaces/orionplace/address/IAddressSuggestion.ts +20 -0
  479. package/templates/interfaces/orionplace/address/IUserAddress.ts +87 -0
  480. package/templates/interfaces/orionplace/appBase/IAppLoad.ts +4 -3
  481. package/templates/interfaces/orionplace/appBase/IAppLoadCommon.ts +22 -31
  482. package/templates/interfaces/orionplace/appBase/IApploadUserProfile.ts +1 -1
  483. package/templates/interfaces/orionplace/appBase/IForm.ts +1 -1
  484. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +7 -7
  485. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +2 -2
  486. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +20 -7
  487. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +2 -2
  488. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +1 -0
  489. package/templates/interfaces/orionplace/blog/IBlogApi.ts +247 -0
  490. package/templates/interfaces/orionplace/blog/IBlogPostPreview.ts +30 -0
  491. package/templates/interfaces/orionplace/cart/ICartActions.ts +67 -0
  492. package/templates/interfaces/orionplace/cart/ICartData.ts +382 -0
  493. package/templates/interfaces/orionplace/cart/ICartDeliveryActions.ts +68 -0
  494. package/templates/interfaces/orionplace/cart/ICartModal.ts +22 -0
  495. package/templates/interfaces/orionplace/cart/IDeliveryMap.ts +29 -0
  496. package/templates/interfaces/orionplace/catalog/ICatalogDirectory.ts +75 -0
  497. package/templates/interfaces/orionplace/category/ICategory.ts +2 -1
  498. package/templates/interfaces/orionplace/domains/IDomain.ts +2 -2
  499. package/templates/interfaces/orionplace/forms/ICustomerSubfilter.ts +19 -0
  500. package/templates/interfaces/orionplace/index.ts +64 -30
  501. package/templates/interfaces/orionplace/marketing/IPromoActions.ts +51 -0
  502. package/templates/interfaces/orionplace/orders/IOrderActions.ts +99 -0
  503. package/templates/interfaces/orionplace/orders/IOrderHistory.ts +259 -0
  504. package/templates/interfaces/orionplace/orders/IProductPreorder.ts +31 -0
  505. package/templates/interfaces/orionplace/payments/IInvoice.ts +147 -0
  506. package/templates/interfaces/orionplace/products/IProduct.ts +178 -151
  507. package/templates/interfaces/orionplace/products/IProductFeedbackApi.ts +218 -0
  508. package/templates/interfaces/orionplace/products/IProductSearchApi.ts +146 -0
  509. package/templates/interfaces/orionplace/products/IProductSearchFacets.ts +35 -0
  510. package/templates/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +15 -0
  511. package/templates/interfaces/orionplace/products/IProductSpecification.ts +14 -0
  512. package/templates/interfaces/orionplace/products/IWishlist.ts +22 -0
  513. package/templates/interfaces/orionplace/sellers/ISellerDirectory.ts +70 -0
  514. package/templates/interfaces/orionplace/shared/IBreadcrumb.ts +10 -0
  515. package/templates/interfaces/orionplace/shared/IStorefrontControls.ts +6 -0
  516. package/templates/interfaces/orionplace/state.ts +1 -1
  517. package/templates/interfaces/orionplace/stores/IStoreDirectory.ts +63 -0
  518. package/templates/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +41 -31
  519. package/templates/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +11 -0
  520. package/templates/interfaces/orionplace/subscribes/ISubscribe.ts +1 -1
  521. package/templates/interfaces/orionplace/subscribes/ISubscriptionApi.ts +125 -0
  522. package/templates/interfaces/orionplace/tickets/ICustomerTicketApi.ts +223 -0
  523. package/templates/interfaces/orionplace/transport.ts +7 -3
  524. package/templates/lib/orionplace/accountLabels.ts +22 -0
  525. package/templates/lib/orionplace/activityLabels.ts +65 -0
  526. package/templates/lib/orionplace/activityPresentation.ts +9 -0
  527. package/templates/lib/orionplace/addressChanges.ts +26 -0
  528. package/templates/lib/orionplace/addressPresentation.ts +58 -0
  529. package/templates/lib/orionplace/api.ts +326 -0
  530. package/templates/lib/orionplace/appLoadClient.ts +63 -21
  531. package/templates/lib/orionplace/appLoadResult.ts +75 -21
  532. package/templates/lib/orionplace/appLoadServer.ts +66 -21
  533. package/templates/lib/orionplace/blogArticle.ts +97 -0
  534. package/templates/lib/orionplace/blogArticleHtml.ts +370 -0
  535. package/templates/lib/orionplace/blogComments.ts +102 -0
  536. package/templates/lib/orionplace/blogJournal.ts +115 -0
  537. package/templates/lib/orionplace/blogLabels.ts +108 -0
  538. package/templates/lib/orionplace/blogPresentation.ts +67 -0
  539. package/templates/lib/orionplace/browseLabels.ts +98 -0
  540. package/templates/lib/orionplace/cartAddress.ts +86 -0
  541. package/templates/lib/orionplace/cartController.ts +104 -0
  542. package/templates/lib/orionplace/cartLabels.ts +261 -0
  543. package/templates/lib/orionplace/cartOptions.ts +115 -0
  544. package/templates/lib/orionplace/cartPreview.ts +120 -0
  545. package/templates/lib/orionplace/cartPromo.ts +150 -0
  546. package/templates/lib/orionplace/cartShipment.ts +61 -0
  547. package/templates/lib/orionplace/cartSnapshot.ts +21 -0
  548. package/templates/lib/orionplace/catalog.ts +150 -0
  549. package/templates/lib/orionplace/categoryLabels.ts +21 -0
  550. package/templates/lib/orionplace/contact.ts +47 -0
  551. package/templates/lib/orionplace/contactLabels.ts +102 -0
  552. package/templates/lib/orionplace/currency.ts +128 -0
  553. package/templates/lib/orionplace/deliveryMap.ts +86 -0
  554. package/templates/lib/orionplace/directoryLabels.ts +133 -0
  555. package/templates/lib/orionplace/domain.ts +11 -6
  556. package/templates/lib/orionplace/errorPageLabels.ts +74 -0
  557. package/templates/lib/orionplace/eventEnrollment.ts +22 -0
  558. package/templates/lib/orionplace/featureData.ts +28 -0
  559. package/templates/lib/orionplace/featureLabels.ts +271 -0
  560. package/templates/lib/orionplace/featuredLabels.ts +28 -0
  561. package/templates/lib/orionplace/footerLabels.ts +35 -0
  562. package/templates/lib/orionplace/guestSession.ts +55 -0
  563. package/templates/lib/orionplace/headerLabels.ts +68 -0
  564. package/templates/lib/orionplace/homeContent.ts +193 -0
  565. package/templates/lib/orionplace/homeLabels.ts +52 -0
  566. package/templates/lib/orionplace/htmlText.ts +51 -0
  567. package/templates/lib/orionplace/manufacturerDirectory.ts +71 -0
  568. package/templates/lib/orionplace/manufacturerIndex.ts +92 -0
  569. package/templates/lib/orionplace/modalWindow.ts +109 -0
  570. package/templates/lib/orionplace/nativeApp.ts +365 -0
  571. package/templates/lib/orionplace/navigation.tsx +121 -0
  572. package/templates/lib/orionplace/notice.ts +22 -0
  573. package/templates/lib/orionplace/orderLabels.ts +311 -0
  574. package/templates/lib/orionplace/orderPresentation.ts +574 -0
  575. package/templates/lib/orionplace/pageMetadata.ts +247 -0
  576. package/templates/lib/orionplace/pageSeo.ts +274 -0
  577. package/templates/lib/orionplace/paginationScroll.ts +131 -0
  578. package/templates/lib/orionplace/phone.ts +22 -0
  579. package/templates/lib/orionplace/presentation.ts +84 -0
  580. package/templates/lib/orionplace/productActionLabels.ts +60 -0
  581. package/templates/lib/orionplace/productAvailability.ts +30 -0
  582. package/templates/lib/orionplace/productGallery.ts +64 -0
  583. package/templates/lib/orionplace/productLabels.ts +82 -0
  584. package/templates/lib/orionplace/productPage.ts +308 -0
  585. package/templates/lib/orionplace/productPhotos.ts +67 -0
  586. package/templates/lib/orionplace/productSearch.ts +232 -0
  587. package/templates/lib/orionplace/productSeller.ts +56 -0
  588. package/templates/lib/orionplace/profile.ts +157 -0
  589. package/templates/lib/orionplace/profileLabels.ts +151 -0
  590. package/templates/lib/orionplace/promoLabels.ts +75 -0
  591. package/templates/lib/orionplace/promoPresentation.ts +381 -0
  592. package/templates/lib/orionplace/reviewLabels.ts +172 -0
  593. package/templates/lib/orionplace/reviewPresentation.ts +64 -0
  594. package/templates/lib/orionplace/reviewScope.ts +38 -0
  595. package/templates/lib/orionplace/searchFilters.ts +99 -0
  596. package/templates/lib/orionplace/searchHistory.ts +144 -0
  597. package/templates/lib/orionplace/sellerDirectory.ts +120 -0
  598. package/templates/lib/orionplace/seo.ts +52 -0
  599. package/templates/lib/orionplace/serverApi.ts +158 -0
  600. package/templates/lib/orionplace/serverLocale.ts +29 -0
  601. package/templates/lib/orionplace/serverMetadata.ts +86 -0
  602. package/templates/lib/orionplace/serverRecords.ts +25 -0
  603. package/templates/lib/orionplace/serverRoute.tsx +51 -0
  604. package/templates/lib/orionplace/sessionLabels.ts +27 -0
  605. package/templates/lib/orionplace/signInReturn.ts +89 -0
  606. package/templates/lib/orionplace/storeDirectory.ts +47 -0
  607. package/templates/lib/orionplace/storefrontRecords.ts +29 -0
  608. package/templates/lib/orionplace/subscriptionChanges.ts +120 -0
  609. package/templates/lib/orionplace/subscriptionLabels.ts +67 -0
  610. package/templates/lib/orionplace/subscriptionManageLabels.ts +306 -0
  611. package/templates/lib/orionplace/subscriptionPlans.ts +122 -0
  612. package/templates/lib/orionplace/subscriptionRemote.ts +85 -0
  613. package/templates/lib/orionplace/subscriptionUsage.ts +58 -0
  614. package/templates/lib/orionplace/tariffLabels.ts +123 -0
  615. package/templates/lib/orionplace/tariffPage.ts +54 -0
  616. package/templates/lib/orionplace/tariffVariables.ts +136 -0
  617. package/templates/lib/orionplace/tariffs.ts +192 -0
  618. package/templates/lib/orionplace/ticketItems.ts +75 -0
  619. package/templates/lib/orionplace/ticketLabels.ts +335 -0
  620. package/templates/lib/orionplace/ticketLocation.ts +79 -0
  621. package/templates/lib/orionplace/ticketRequests.ts +70 -0
  622. package/templates/lib/orionplace/walletTransaction.ts +105 -0
  623. package/templates/orionplace/COMPONENT-DOWNLOAD.md +66 -0
  624. package/templates/orionplace/COMPONENTS.md +35 -0
  625. package/templates/providers/OrionplaceProvider.tsx +164 -12
  626. package/templates/proxy.ts +8 -3
  627. package/templates/stores/orionplace.ts +212 -49
  628. package/templates/stores/orionplaceBrowse.ts +89 -0
  629. package/templates/stores/orionplaceCatalog.ts +144 -0
  630. package/templates/stores/orionplaceProducts.ts +389 -0
  631. package/templates/stores/orionplaceScope.ts +104 -0
  632. package/templates/stores/orionplaceSelections.ts +130 -0
  633. package/templates/themes/orionplace.ts +106 -0
@@ -0,0 +1,232 @@
1
+ import type {
2
+ IProductSearchFacets,
3
+ ProductFacetSelection,
4
+ } from '@/interfaces/orionplace/products/IProductSearchFacets';
5
+ import type {
6
+ IProductSearchFilters,
7
+ IProductSearchResponse,
8
+ } from '@/interfaces/orionplace/products/IProductSearchApi';
9
+ import type { OrionplaceApi } from '@/lib/orionplace/api';
10
+
11
+ export type ProductSearchPage = NonNullable<
12
+ IProductSearchResponse['page_data']
13
+ >;
14
+
15
+ export interface ProductSearchScope {
16
+ query?: string;
17
+ categoryId?: number;
18
+ // The category and its public descendants (`catalogBranchIds`).
19
+ categoryIds?: number[];
20
+ sellerId?: number;
21
+ manufacturerId?: number;
22
+ storeId?: number;
23
+ featured?: boolean;
24
+ }
25
+
26
+ export interface ProductSearchScopeNames {
27
+ manufacturer?: string;
28
+ seller?: string;
29
+ store?: string;
30
+ }
31
+
32
+ export interface ProductSearchScopeLabels {
33
+ home: string;
34
+ searchCrumb: string;
35
+ searchResults: string;
36
+ products: string;
37
+ manufacturers: string;
38
+ sellers: string;
39
+ stores: string;
40
+ manufacturerProducts: string;
41
+ sellerProducts: string;
42
+ storeProducts: string;
43
+ }
44
+
45
+ export interface ProductSearchCrumb {
46
+ label: string;
47
+ path?: string;
48
+ query?: Record<string, string | number>;
49
+ }
50
+
51
+ interface DirectoryScope {
52
+ queryKey: 'manufacturer' | 'seller' | 'store';
53
+ id: number;
54
+ name: string;
55
+ section: string;
56
+ sectionPath: string;
57
+ caption: string;
58
+ }
59
+
60
+ function directoryScopes(
61
+ scope: ProductSearchScope,
62
+ names: ProductSearchScopeNames,
63
+ labels: ProductSearchScopeLabels,
64
+ ): DirectoryScope[] {
65
+ const entries: Array<DirectoryScope | undefined> = [
66
+ scope.manufacturerId
67
+ ? {
68
+ queryKey: 'manufacturer',
69
+ id: scope.manufacturerId,
70
+ name: names.manufacturer ?? '',
71
+ section: labels.manufacturers,
72
+ sectionPath: '/manufacturers',
73
+ caption: labels.manufacturerProducts,
74
+ }
75
+ : undefined,
76
+ scope.sellerId
77
+ ? {
78
+ queryKey: 'seller',
79
+ id: scope.sellerId,
80
+ name: names.seller ?? '',
81
+ section: labels.sellers,
82
+ sectionPath: '/sellers',
83
+ caption: labels.sellerProducts,
84
+ }
85
+ : undefined,
86
+ scope.storeId
87
+ ? {
88
+ queryKey: 'store',
89
+ id: scope.storeId,
90
+ name: names.store ?? '',
91
+ section: labels.stores,
92
+ sectionPath: '/stores',
93
+ caption: labels.storeProducts,
94
+ }
95
+ : undefined,
96
+ ];
97
+
98
+ return entries.filter((entry): entry is DirectoryScope => Boolean(entry));
99
+ }
100
+
101
+ export function productSearchTrail(
102
+ scope: ProductSearchScope,
103
+ names: ProductSearchScopeNames,
104
+ labels: ProductSearchScopeLabels,
105
+ ): ProductSearchCrumb[] {
106
+ const query = scope.query?.trim() ?? '';
107
+ const directories = directoryScopes(scope, names, labels);
108
+ const trail: ProductSearchCrumb[] = [{ label: labels.home, path: '/' }];
109
+ const scopeQuery: Record<string, number> = {};
110
+
111
+ if (directories[0]) {
112
+ trail.push({
113
+ label: directories[0].section,
114
+ path: directories[0].sectionPath,
115
+ });
116
+ } else {
117
+ trail.push({ label: labels.searchCrumb });
118
+ }
119
+
120
+ for (const directory of directories) {
121
+ scopeQuery[directory.queryKey] = directory.id;
122
+ trail.push({
123
+ label: directory.name || directory.caption,
124
+ path: '/browse',
125
+ query: { ...scopeQuery },
126
+ });
127
+ }
128
+
129
+ if (query) {
130
+ trail.push({ label: `«${query}»` });
131
+ }
132
+
133
+ const current = trail.at(-1);
134
+ if (current && trail.length > 1) {
135
+ delete current.path;
136
+ delete current.query;
137
+ }
138
+
139
+ return trail;
140
+ }
141
+
142
+ export function productSearchHeading(
143
+ scope: ProductSearchScope,
144
+ names: ProductSearchScopeNames,
145
+ labels: ProductSearchScopeLabels,
146
+ ) {
147
+ const [directory] = directoryScopes(scope, names, labels);
148
+
149
+ if (!directory) {
150
+ return { title: labels.searchResults, caption: '', named: false };
151
+ }
152
+
153
+ return {
154
+ title: directory.name || directory.caption,
155
+ caption: directory.caption,
156
+ named: Boolean(directory.name),
157
+ };
158
+ }
159
+
160
+ export function productSearchSeoTitle(
161
+ scope: ProductSearchScope,
162
+ names: ProductSearchScopeNames,
163
+ labels: ProductSearchScopeLabels,
164
+ ) {
165
+ const query = scope.query?.trim() ?? '';
166
+ const heading = productSearchHeading(scope, names, labels);
167
+ const base = heading.named
168
+ ? `${heading.title} — ${labels.products}`
169
+ : heading.title;
170
+
171
+ return query ? `${base} · ${query}` : base;
172
+ }
173
+
174
+ export function productSearchFixedFilters(
175
+ scope: ProductSearchScope,
176
+ ): IProductSearchFilters {
177
+ return {
178
+ ...(scope.query ? { search_string: scope.query } : {}),
179
+ ...(scope.categoryId
180
+ ? { categories: scope.categoryIds ?? [scope.categoryId] }
181
+ : {}),
182
+ ...(scope.sellerId ? { product_owner: [scope.sellerId] } : {}),
183
+ ...(scope.manufacturerId
184
+ ? { product_manufacture: [scope.manufacturerId] }
185
+ : {}),
186
+ ...(scope.storeId ? { physical_store: scope.storeId } : {}),
187
+ ...(scope.featured ? { only_featured: true } : {}),
188
+ };
189
+ }
190
+
191
+ export function productSearchFacetData(
192
+ page: ProductSearchPage | undefined,
193
+ ): IProductSearchFacets | null {
194
+ if (!page?.selects && !page?.variants) {
195
+ return null;
196
+ }
197
+ return {
198
+ selects: page.selects ?? {},
199
+ variants: page.variants,
200
+ } as IProductSearchFacets;
201
+ }
202
+
203
+ /** Products per result page, as in the Nuxt and Svelte packages. */
204
+ export const productSearchPageSize = 12;
205
+
206
+ export function productSearchRequest(
207
+ scope: ProductSearchScope,
208
+ filters: ProductFacetSelection,
209
+ page: number,
210
+ ) {
211
+ return {
212
+ filters: {
213
+ ...filters,
214
+ ...productSearchFixedFilters(scope),
215
+ } as IProductSearchFilters,
216
+ paginate: { page, pp_items: productSearchPageSize },
217
+ };
218
+ }
219
+
220
+ export async function loadProductSearch(
221
+ api: OrionplaceApi,
222
+ scope: ProductSearchScope,
223
+ filters: ProductFacetSelection = {},
224
+ page = 1,
225
+ signal?: AbortSignal,
226
+ ) {
227
+ return api.request<ProductSearchPage>(
228
+ 'products_search',
229
+ productSearchRequest(scope, filters, page),
230
+ signal,
231
+ );
232
+ }
@@ -0,0 +1,56 @@
1
+ import type {
2
+ IAppLoadProduct,
3
+ IProduct,
4
+ IProductSearchSeller,
5
+ IProductSeller,
6
+ } from '@/interfaces/orionplace/products/IProduct';
7
+
8
+ type LegacyAppLoadProduct = IAppLoadProduct & {
9
+ seller?: IProductSeller;
10
+ };
11
+
12
+ export function resolveAppLoadProducts(
13
+ products: readonly IAppLoadProduct[] | undefined,
14
+ sellers: Readonly<Record<string, IProductSeller>> | undefined,
15
+ ): IProduct[] {
16
+ const resolved: IProduct[] = [];
17
+
18
+ for (const product of products ?? []) {
19
+ const legacySeller = (product as LegacyAppLoadProduct).seller;
20
+ const seller = legacySeller ?? sellers?.[String(product.seller_id)];
21
+ if (!seller) {
22
+ continue;
23
+ }
24
+
25
+ resolved.push({ ...product, seller });
26
+ }
27
+
28
+ return resolved;
29
+ }
30
+
31
+ /**
32
+ * A product search response lists the preorder permission of each seller in
33
+ * `selects.sellers`. A product without its own `is_accepting_preorders`
34
+ * receives the permission of its seller; an existing value is kept.
35
+ */
36
+ export function productWithSellerPermission(
37
+ product: IProduct,
38
+ sellers: readonly IProductSearchSeller[] = [],
39
+ ): IProduct {
40
+ if (product.seller.is_accepting_preorders != null) {
41
+ return product;
42
+ }
43
+
44
+ const seller = sellers.find((item) => item.id === product.seller.id);
45
+ if (typeof seller?.is_accepting_preorders !== 'boolean') {
46
+ return product;
47
+ }
48
+
49
+ return {
50
+ ...product,
51
+ seller: {
52
+ ...product.seller,
53
+ is_accepting_preorders: seller.is_accepting_preorders,
54
+ },
55
+ };
56
+ }
@@ -0,0 +1,157 @@
1
+ import type { IStorefrontProfileState } from '@/interfaces/orionplace/accounts/IStorefrontProfile';
2
+ import { fieldErrorText, type OrionplaceApiResponse } from '@/lib/orionplace/api';
3
+
4
+ export function profileState(): IStorefrontProfileState {
5
+ return {
6
+ loaded: false,
7
+ pending: '',
8
+ error: '',
9
+ errors: {},
10
+ message: '',
11
+ saved: 0,
12
+ emailStep: 'step_email',
13
+ notificationLocale: '',
14
+ authStep: 'step_phone',
15
+ authPurpose: 'auth',
16
+ authCodeType: '',
17
+ authEmail: '',
18
+ otpDelay: 0,
19
+ refreshRequired: false,
20
+ };
21
+ }
22
+
23
+ /** Application Load uses day.month.year; date fields and requests use ISO dates. */
24
+ export function profileDate(value: string | null | undefined) {
25
+ if (!value) {
26
+ return '';
27
+ }
28
+ if (/^\d{4}-\d{2}-\d{2}$/.test(value)) {
29
+ return value;
30
+ }
31
+ const parts = /^(\d{1,2})[./](\d{1,2})[./](\d{4})$/.exec(value);
32
+ return parts
33
+ ? `${parts[3]}-${parts[2]!.padStart(2, '0')}-${parts[1]!.padStart(2, '0')}`
34
+ : '';
35
+ }
36
+
37
+ export class ProfileRequestError extends Error {
38
+ readonly kind = 'profile-request';
39
+ readonly fields: Record<string, string>;
40
+
41
+ constructor(fields: Record<string, string>) {
42
+ super(fieldErrorText(fields));
43
+ this.name = 'ProfileRequestError';
44
+ this.fields = fields;
45
+ }
46
+ }
47
+
48
+ export function profileResponse(
49
+ response: OrionplaceApiResponse,
50
+ allowNextStep = false,
51
+ ) {
52
+ const body = response.body as {
53
+ form_errors?: Record<string, { message: string }[]> | null;
54
+ success_message?: string | null;
55
+ page_data?: Record<string, unknown> | null;
56
+ } | null;
57
+ const errors = Object.fromEntries(
58
+ Object.entries(body?.form_errors ?? {}).map(([key, values]) => [
59
+ key,
60
+ Array.isArray(values) ? values.map((item) => item.message).join(' ') : '',
61
+ ]),
62
+ );
63
+ if (
64
+ response.status < 200 ||
65
+ response.status >= 300 ||
66
+ body?.form_errors !== null ||
67
+ (!body.success_message &&
68
+ !(allowNextStep && typeof body.page_data?.next_step === 'string'))
69
+ ) {
70
+ throw new ProfileRequestError(errors);
71
+ }
72
+ return body.page_data ?? {};
73
+ }
74
+
75
+ export function applyProfileAuthenticationData(
76
+ state: IStorefrontProfileState,
77
+ data: Record<string, unknown>,
78
+ ) {
79
+ const next = { ...state };
80
+ const steps = ['step_phone', 'step_password', 'step_otp', 'step_additional'];
81
+ if (steps.includes(String(data.next_step))) {
82
+ next.authStep = data.next_step as IStorefrontProfileState['authStep'];
83
+ }
84
+ if (data.purpose === 'auth' || data.purpose === 'reg') {
85
+ next.authPurpose = data.purpose;
86
+ }
87
+ if (data.code_type !== undefined) {
88
+ next.authCodeType = ['sms', 'call', 'email'].includes(
89
+ String(data.code_type),
90
+ )
91
+ ? (data.code_type as IStorefrontProfileState['authCodeType'])
92
+ : '';
93
+ next.authEmail =
94
+ next.authCodeType === 'email' && typeof data.email === 'string'
95
+ ? data.email
96
+ : '';
97
+ }
98
+ if (data.otp_delay !== undefined) {
99
+ const seconds = Number(data.otp_delay);
100
+ next.otpDelay = Number.isFinite(seconds)
101
+ ? Math.max(0, Math.ceil(seconds))
102
+ : 0;
103
+ }
104
+ if (next.authStep !== 'step_otp') {
105
+ next.authCodeType = '';
106
+ next.authEmail = '';
107
+ }
108
+ return next;
109
+ }
110
+
111
+ /**
112
+ * Applies the step data of one profile response. A successful sign-in
113
+ * response can change the step or extend the resend countdown, including
114
+ * one that also returns form errors. Email verification returns to the
115
+ * address step after repeated invalid codes.
116
+ */
117
+ export function profileResponseState(
118
+ state: IStorefrontProfileState,
119
+ name: string,
120
+ response: OrionplaceApiResponse,
121
+ ): IStorefrontProfileState {
122
+ const body = response.body as {
123
+ page_data?: Record<string, unknown> | null;
124
+ } | null;
125
+ const pageData = body?.page_data;
126
+ const transportedOk = response.status >= 200 && response.status < 300;
127
+
128
+ if (name === 'email_enroll' && pageData?.next_step === 'step_email') {
129
+ return { ...state, emailStep: 'step_email' };
130
+ }
131
+ if (name.startsWith('auth_') && pageData && transportedOk) {
132
+ return applyProfileAuthenticationData(state, pageData);
133
+ }
134
+
135
+ return state;
136
+ }
137
+
138
+ /**
139
+ * Returns to the phone step. The resend countdown keeps running, so the
140
+ * phone step still blocks another code request until it ends.
141
+ */
142
+ export function restartProfileAuthentication(
143
+ state: IStorefrontProfileState,
144
+ ): IStorefrontProfileState {
145
+ return applyProfileAuthenticationData(
146
+ { ...state, error: '', errors: {}, message: '' },
147
+ { next_step: 'step_phone' },
148
+ );
149
+ }
150
+
151
+ /** Field errors keep their backend text; other failures use one message. */
152
+ export function profileFailure(reason: unknown, failed: string) {
153
+ const fields = reason instanceof ProfileRequestError ? reason.fields : {};
154
+ const text = reason instanceof ProfileRequestError ? reason.message : '';
155
+
156
+ return { errors: fields, error: text || failed };
157
+ }
@@ -0,0 +1,151 @@
1
+ export function profileLabels(locale: string) {
2
+ return locale.toLowerCase().startsWith('ru')
3
+ ? {
4
+ title: 'Личный профиль',
5
+ intro: 'Личные данные, уведомления и безопасность аккаунта.',
6
+ overview: 'Аккаунт',
7
+ home: 'Главная',
8
+ saved: 'Изменения сохранены.',
9
+ loading: 'Загружаем профиль…',
10
+ retry: 'Повторить',
11
+ failed: 'Не удалось выполнить запрос. Попробуйте ещё раз.',
12
+ details: 'Личные данные',
13
+ detailsHint: 'Имя, номер телефона для входа и дата рождения.',
14
+ firstName: 'Имя',
15
+ lastName: 'Фамилия',
16
+ phone: 'Номер телефона',
17
+ phoneHint: 'Номер телефона для входа.',
18
+ dob: 'Дата рождения',
19
+ save: 'Сохранить',
20
+ pending: 'Сохраняем…',
21
+ emailTitle: 'Почта и уведомления',
22
+ email: 'Электронная почта',
23
+ emailHint:
24
+ 'Подтвердите адрес для получения уведомлений о заказах и рассылки.',
25
+ sendCode: 'Отправить',
26
+ sendCodeHint: 'Отправить код подтверждения',
27
+ code: 'Код подтверждения',
28
+ verify: 'Подтвердить',
29
+ changeEmail: 'Изменить',
30
+ changeEmailHint: 'Изменить адрес почты',
31
+ resend: 'Повторить',
32
+ resendHint: 'Повторить отправку кода',
33
+ notifications: 'Уведомления по почте',
34
+ notificationsHint: 'Письма о заказах, обращениях и подписках, о поступлении товаров и предложения. Коды для входа приходят всегда.',
35
+ notificationLocale: 'Язык писем',
36
+ chooseLocale: 'Выберите язык',
37
+ oldPassword: 'Текущий пароль',
38
+ newPassword: 'Новый пароль',
39
+ confirmPassword: 'Повторите новый пароль',
40
+ passwordHint: 'Не менее 6 символов.',
41
+ mismatch: 'Пароли не совпадают.',
42
+ changePassword: 'Изменить пароль',
43
+ createPassword: 'Создать пароль',
44
+ showPassword: 'Показать пароль',
45
+ hidePassword: 'Скрыть пароль',
46
+ avatar: 'Фотография профиля',
47
+ upload: 'Выбрать фото',
48
+ change: 'Изменить фото',
49
+ remove: 'Удалить фото',
50
+ signIn: 'Вход в аккаунт',
51
+ signInOrRegister: 'Вход и регистрация',
52
+ signUp: 'Регистрация',
53
+ signInHint:
54
+ 'Введите номер телефона. Новый аккаунт можно создать после подтверждения номера.',
55
+ next: 'Продолжить',
56
+ password: 'Пароль',
57
+ back: 'Назад',
58
+ otpHint: 'Введите полученный код подтверждения.',
59
+ otpSms: 'Введите 4 цифры кода из СМС.',
60
+ otpCall: 'Введите последние 4 цифры номера входящего звонка.',
61
+ otpEmail: 'Введите код из письма, отправленного на',
62
+ signingIn: 'Выполняем вход…',
63
+ refreshFailed: 'Вход выполнен, но данные аккаунта не загрузились.',
64
+ cooldown: 'Новый код через',
65
+ phoneCooldown: 'Повторите через',
66
+ seconds: 'с',
67
+ deleteTitle: 'Удаление аккаунта',
68
+ deleteHint:
69
+ 'Удаляет имя, номер телефона, почту, фото, адреса и корзину и выполняет выход. Заказы и отзывы остаются без ваших данных.',
70
+ deleteBlocked:
71
+ 'Недоступно, пока есть открытый заказ, невыплаченный возврат, деньги на балансе или действующая платная подписка.',
72
+ deleteConfirm: 'Я понимаю, что аккаунт нельзя восстановить',
73
+ deleteAction: 'Удалить аккаунт',
74
+ deleting: 'Удаляем…',
75
+ deleted: 'Аккаунт удалён.',
76
+ }
77
+ : {
78
+ title: 'Personal profile',
79
+ intro: 'Your details, contact preferences and account security.',
80
+ overview: 'Account',
81
+ home: 'Home',
82
+ saved: 'Changes saved.',
83
+ loading: 'Loading your profile…',
84
+ retry: 'Retry',
85
+ failed: 'Could not complete the request. Please try again.',
86
+ details: 'Personal details',
87
+ detailsHint: 'Your name, sign-in phone number and date of birth.',
88
+ firstName: 'First name',
89
+ lastName: 'Last name',
90
+ phone: 'Phone number',
91
+ phoneHint: 'Your sign-in phone number.',
92
+ dob: 'Date of birth',
93
+ save: 'Save',
94
+ pending: 'Saving…',
95
+ emailTitle: 'Email & notifications',
96
+ email: 'Email address',
97
+ emailHint:
98
+ 'Verify your address before receiving order updates and email notifications.',
99
+ sendCode: 'Send',
100
+ sendCodeHint: 'Send verification code',
101
+ code: 'Verification code',
102
+ verify: 'Verify',
103
+ changeEmail: 'Change',
104
+ changeEmailHint: 'Change email address',
105
+ resend: 'Resend',
106
+ resendHint: 'Send a new code',
107
+ notifications: 'Email notifications',
108
+ notificationsHint: 'Order, support and subscription updates, availability alerts and offers. Sign-in codes are always sent.',
109
+ notificationLocale: 'Email language',
110
+ chooseLocale: 'Choose a language',
111
+ oldPassword: 'Current password',
112
+ newPassword: 'New password',
113
+ confirmPassword: 'Confirm new password',
114
+ passwordHint: 'Use at least 6 characters.',
115
+ mismatch: 'The passwords do not match.',
116
+ changePassword: 'Update password',
117
+ createPassword: 'Create password',
118
+ showPassword: 'Show password',
119
+ hidePassword: 'Hide password',
120
+ avatar: 'Profile photo',
121
+ upload: 'Choose a photo',
122
+ change: 'Change photo',
123
+ remove: 'Remove photo',
124
+ signIn: 'Sign in to your account',
125
+ signInOrRegister: 'Sign in or register',
126
+ signUp: 'Create an account',
127
+ signInHint:
128
+ 'Enter your phone number to continue. New customers can create an account here.',
129
+ next: 'Continue',
130
+ password: 'Password',
131
+ back: 'Back',
132
+ otpHint: 'Enter the verification code you received.',
133
+ otpSms: 'Enter the 4-digit code from the text message.',
134
+ otpCall: 'Enter the last 4 digits of the number calling you.',
135
+ otpEmail: 'Enter the code from the email sent to',
136
+ signingIn: 'Signing in…',
137
+ refreshFailed: 'Signed in, but account data could not be loaded.',
138
+ cooldown: 'Request another code in',
139
+ phoneCooldown: 'Try again in',
140
+ seconds: 's',
141
+ deleteTitle: 'Delete account',
142
+ deleteHint:
143
+ 'Removes your name, phone number, email, photo, addresses and cart, and signs you out. Orders and reviews stay without your details.',
144
+ deleteBlocked:
145
+ 'Not possible while an order is open, a refund is unpaid, money is on your balance or a paid subscription is active.',
146
+ deleteConfirm: 'I understand that the account cannot be restored',
147
+ deleteAction: 'Delete account',
148
+ deleting: 'Deleting…',
149
+ deleted: 'Your account has been deleted.',
150
+ };
151
+ }
@@ -0,0 +1,75 @@
1
+ const en = {
2
+ conditions: 'Conditions',
3
+ discount: 'Discount',
4
+ freeShipping: 'Free delivery',
5
+ scope: 'Applies to',
6
+ scopeSellers: 'Sellers',
7
+ scopeCategories: 'Categories',
8
+ scopeProducts: 'Products',
9
+ scopeEverything: 'Every product in the store',
10
+ minimumOrderAmount: 'Minimum order',
11
+ maximumDiscount: 'Maximum discount',
12
+ firstOrder: 'First purchase',
13
+ firstOrderOnly: 'Only for the first purchase in the store',
14
+ stacking: 'Discounted items',
15
+ stackingAllowed: 'The code also applies to them',
16
+ stackingBlocked: 'The code does not apply to them',
17
+ period: 'Valid',
18
+ until: 'Until',
19
+ untilLower: 'until',
20
+ since: 'From',
21
+ noPeriod: 'No end date',
22
+ usage: 'Uses left',
23
+ ofTotal: 'of',
24
+ unlimited: 'Unlimited',
25
+ separator: ', ',
26
+ crumbPromocodes: 'Promo codes',
27
+ crumbProducts: 'Products',
28
+ products: 'Products this code applies to',
29
+ productsHint:
30
+ 'These products match the offer. A code still needs the conditions above.',
31
+ productsEmpty: 'No products match this offer right now.',
32
+ productsMissing: 'This offer is no longer running.',
33
+ openProducts: 'Show the products',
34
+ backToPromocodes: 'My promo codes',
35
+ };
36
+
37
+ const ru: typeof en = {
38
+ conditions: 'Условия',
39
+ discount: 'Скидка',
40
+ freeShipping: 'Бесплатная доставка',
41
+ scope: 'Действует на',
42
+ scopeSellers: 'Продавцы',
43
+ scopeCategories: 'Категории',
44
+ scopeProducts: 'Товары',
45
+ scopeEverything: 'Все товары магазина',
46
+ minimumOrderAmount: 'Минимальная сумма заказа',
47
+ maximumDiscount: 'Максимальная скидка',
48
+ firstOrder: 'Первая покупка',
49
+ firstOrderOnly: 'Только для первой покупки в магазине',
50
+ stacking: 'Товары со скидкой',
51
+ stackingAllowed: 'Промокод действует и на них',
52
+ stackingBlocked: 'Промокод на них не действует',
53
+ period: 'Срок действия',
54
+ until: 'До',
55
+ untilLower: 'до',
56
+ since: 'С',
57
+ noPeriod: 'Без даты окончания',
58
+ usage: 'Осталось применений',
59
+ ofTotal: 'из',
60
+ unlimited: 'Без ограничений',
61
+ separator: ', ',
62
+ crumbPromocodes: 'Промокоды',
63
+ crumbProducts: 'Товары',
64
+ products: 'Товары, на которые действует промокод',
65
+ productsHint:
66
+ 'Эти товары подходят под акцию. Промокод применится, если выполнены условия выше.',
67
+ productsEmpty: 'Сейчас под эту акцию не подходит ни один товар.',
68
+ productsMissing: 'Эта акция больше не действует.',
69
+ openProducts: 'Показать товары',
70
+ backToPromocodes: 'Мои промокоды',
71
+ };
72
+
73
+ export function promoLabels(locale: string) {
74
+ return locale.toLowerCase().startsWith('ru') ? ru : en;
75
+ }