orionplace-react 0.7.7 → 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.
Files changed (669) hide show
  1. package/README.md +7 -614
  2. package/bin/orionplace-react.mjs +10 -176
  3. package/package.json +7 -59
  4. package/LICENSE +0 -21
  5. package/runtime/app.d.mts +0 -6
  6. package/runtime/app.mjs +0 -48
  7. package/runtime/marketplace.d.mts +0 -129
  8. package/runtime/marketplace.mjs +0 -905
  9. package/src/install.mjs +0 -356
  10. package/src/project-readme.mjs +0 -442
  11. package/src/service.mjs +0 -186
  12. package/src/setup.mjs +0 -274
  13. package/src/sitemap.mjs +0 -93
  14. package/src/update.mjs +0 -36
  15. package/src/validation.mjs +0 -27
  16. package/templates/app/StorefrontShell.tsx +0 -443
  17. package/templates/app/[[...path]]/page.app.tsx +0 -11
  18. package/templates/app/_storefront/ActivityPage.tsx +0 -23
  19. package/templates/app/_storefront/AddressesPage.tsx +0 -29
  20. package/templates/app/_storefront/AppRoutes.tsx +0 -184
  21. package/templates/app/_storefront/ArticlePage.tsx +0 -84
  22. package/templates/app/_storefront/CartPage.tsx +0 -53
  23. package/templates/app/_storefront/CatalogPage.tsx +0 -37
  24. package/templates/app/_storefront/CategoryPage.tsx +0 -68
  25. package/templates/app/_storefront/ContactPage.tsx +0 -32
  26. package/templates/app/_storefront/HomePage.tsx +0 -140
  27. package/templates/app/_storefront/JournalPage.tsx +0 -36
  28. package/templates/app/_storefront/LogoutPage.tsx +0 -91
  29. package/templates/app/_storefront/ManufacturersPage.tsx +0 -64
  30. package/templates/app/_storefront/OrdersPage.tsx +0 -129
  31. package/templates/app/_storefront/PrivacyPage.tsx +0 -15
  32. package/templates/app/_storefront/ProductPage.tsx +0 -113
  33. package/templates/app/_storefront/ProfilePage.tsx +0 -75
  34. package/templates/app/_storefront/PromoPage.tsx +0 -66
  35. package/templates/app/_storefront/PromocodesPage.tsx +0 -17
  36. package/templates/app/_storefront/SearchPage.tsx +0 -225
  37. package/templates/app/_storefront/SellersPage.tsx +0 -166
  38. package/templates/app/_storefront/StorefrontErrorRoute.tsx +0 -42
  39. package/templates/app/_storefront/StorefrontPageMetadata.tsx +0 -117
  40. package/templates/app/_storefront/StorefrontPageStatus.tsx +0 -61
  41. package/templates/app/_storefront/StorefrontProductStructuredData.tsx +0 -77
  42. package/templates/app/_storefront/StoresPage.tsx +0 -53
  43. package/templates/app/_storefront/SubscriptionsPage.tsx +0 -62
  44. package/templates/app/_storefront/SupportPage.tsx +0 -141
  45. package/templates/app/_storefront/TariffsPage.tsx +0 -180
  46. package/templates/app/_storefront/UnsubscribePage.tsx +0 -29
  47. package/templates/app/_storefront/WalletPage.tsx +0 -78
  48. package/templates/app/_storefront/WishlistPage.tsx +0 -79
  49. package/templates/app/_storefront/storefrontRoutes.tsx +0 -769
  50. package/templates/app/_storefront/useAccountWallet.ts +0 -27
  51. package/templates/app/_storefront/useBlogComments.ts +0 -389
  52. package/templates/app/_storefront/useProductSearch.ts +0 -242
  53. package/templates/app/_storefront/useStorefrontNavigation.ts +0 -36
  54. package/templates/app/activity/page.tsx +0 -9
  55. package/templates/app/addresses/page.tsx +0 -9
  56. package/templates/app/api/[...orionplace]/route.ts +0 -21
  57. package/templates/app/browse/page.tsx +0 -27
  58. package/templates/app/cart/page.tsx +0 -9
  59. package/templates/app/catalog/page.tsx +0 -9
  60. package/templates/app/category/[id]/page.tsx +0 -9
  61. package/templates/app/contact/page.tsx +0 -9
  62. package/templates/app/error.tsx +0 -7
  63. package/templates/app/featured/page.tsx +0 -9
  64. package/templates/app/global-error.tsx +0 -61
  65. package/templates/app/globals.css +0 -58
  66. package/templates/app/journal/[id]/page.tsx +0 -9
  67. package/templates/app/journal/page.tsx +0 -9
  68. package/templates/app/layout.app.tsx +0 -20
  69. package/templates/app/layout.tsx +0 -66
  70. package/templates/app/logout/page.tsx +0 -9
  71. package/templates/app/manufacturers/page.tsx +0 -9
  72. package/templates/app/not-found.tsx +0 -5
  73. package/templates/app/orders/page.tsx +0 -9
  74. package/templates/app/page.module.css +0 -137
  75. package/templates/app/page.tsx +0 -9
  76. package/templates/app/privacy/page.tsx +0 -9
  77. package/templates/app/product/[id]/page.tsx +0 -9
  78. package/templates/app/profile/page.tsx +0 -9
  79. package/templates/app/promo/[id]/page.tsx +0 -9
  80. package/templates/app/promocodes/page.tsx +0 -9
  81. package/templates/app/ps3/blog/[...orionplace]/route.ts +0 -13
  82. package/templates/app/robots.txt/route.ts +0 -11
  83. package/templates/app/sellers/page.tsx +0 -9
  84. package/templates/app/sitemap.xml/route.ts +0 -12
  85. package/templates/app/storefront.module.css +0 -406
  86. package/templates/app/stores/page.tsx +0 -9
  87. package/templates/app/subscriptions/page.tsx +0 -9
  88. package/templates/app/tariffs/[slug]/[id]/page.tsx +0 -9
  89. package/templates/app/tariffs/page.tsx +0 -9
  90. package/templates/app/tickets/page.tsx +0 -9
  91. package/templates/app/unsubscribe/page.tsx +0 -9
  92. package/templates/app/wallet/page.tsx +0 -9
  93. package/templates/app/wishlist/page.tsx +0 -9
  94. package/templates/components/orionplace/account/AccountActivity.README.md +0 -70
  95. package/templates/components/orionplace/account/AccountActivity.module.css +0 -16
  96. package/templates/components/orionplace/account/AccountActivity.tsx +0 -94
  97. package/templates/components/orionplace/account/AccountPromocodes.README.md +0 -70
  98. package/templates/components/orionplace/account/AccountPromocodes.module.css +0 -92
  99. package/templates/components/orionplace/account/AccountPromocodes.tsx +0 -257
  100. package/templates/components/orionplace/account/AccountSection.README.md +0 -46
  101. package/templates/components/orionplace/account/AccountSection.module.css +0 -110
  102. package/templates/components/orionplace/account/AccountSection.tsx +0 -109
  103. package/templates/components/orionplace/account/ProfileAvatar.README.md +0 -48
  104. package/templates/components/orionplace/account/ProfileAvatar.module.css +0 -31
  105. package/templates/components/orionplace/account/ProfileAvatar.tsx +0 -138
  106. package/templates/components/orionplace/account/ProfileDeleteAccount.README.md +0 -59
  107. package/templates/components/orionplace/account/ProfileDeleteAccount.module.css +0 -51
  108. package/templates/components/orionplace/account/ProfileDeleteAccount.tsx +0 -171
  109. package/templates/components/orionplace/account/ProfileDetailsForm.README.md +0 -48
  110. package/templates/components/orionplace/account/ProfileDetailsForm.module.css +0 -35
  111. package/templates/components/orionplace/account/ProfileDetailsForm.tsx +0 -183
  112. package/templates/components/orionplace/account/ProfileEmailSettings.README.md +0 -52
  113. package/templates/components/orionplace/account/ProfileEmailSettings.module.css +0 -51
  114. package/templates/components/orionplace/account/ProfileEmailSettings.tsx +0 -276
  115. package/templates/components/orionplace/account/ProfilePasswordForm.README.md +0 -45
  116. package/templates/components/orionplace/account/ProfilePasswordForm.module.css +0 -43
  117. package/templates/components/orionplace/account/ProfilePasswordForm.tsx +0 -227
  118. package/templates/components/orionplace/account/ProfileSignIn.README.md +0 -64
  119. package/templates/components/orionplace/account/ProfileSignIn.module.css +0 -86
  120. package/templates/components/orionplace/account/ProfileSignIn.tsx +0 -463
  121. package/templates/components/orionplace/account/SignInHistory.README.md +0 -52
  122. package/templates/components/orionplace/account/SignInHistory.module.css +0 -81
  123. package/templates/components/orionplace/account/SignInHistory.tsx +0 -231
  124. package/templates/components/orionplace/account/StorefrontLogout.README.md +0 -48
  125. package/templates/components/orionplace/account/StorefrontLogout.module.css +0 -166
  126. package/templates/components/orionplace/account/StorefrontLogout.tsx +0 -73
  127. package/templates/components/orionplace/account/StorefrontProfile.README.md +0 -71
  128. package/templates/components/orionplace/account/StorefrontProfile.module.css +0 -65
  129. package/templates/components/orionplace/account/StorefrontProfile.tsx +0 -189
  130. package/templates/components/orionplace/account/account.module.css +0 -1180
  131. package/templates/components/orionplace/account/profile.module.css +0 -696
  132. package/templates/components/orionplace/address/AddressForm.README.md +0 -152
  133. package/templates/components/orionplace/address/AddressForm.module.css +0 -336
  134. package/templates/components/orionplace/address/AddressForm.tsx +0 -827
  135. package/templates/components/orionplace/address/StorefrontAddresses.README.md +0 -99
  136. package/templates/components/orionplace/address/StorefrontAddresses.module.css +0 -271
  137. package/templates/components/orionplace/address/StorefrontAddresses.tsx +0 -438
  138. package/templates/components/orionplace/banners/MainBanner.README.md +0 -65
  139. package/templates/components/orionplace/banners/MainBanner.module.css +0 -112
  140. package/templates/components/orionplace/banners/MainBanner.tsx +0 -159
  141. package/templates/components/orionplace/blog/BlogArticle.README.md +0 -183
  142. package/templates/components/orionplace/blog/BlogArticle.module.css +0 -333
  143. package/templates/components/orionplace/blog/BlogArticle.tsx +0 -545
  144. package/templates/components/orionplace/blog/BlogCommentForm.README.md +0 -51
  145. package/templates/components/orionplace/blog/BlogCommentForm.module.css +0 -93
  146. package/templates/components/orionplace/blog/BlogCommentForm.tsx +0 -125
  147. package/templates/components/orionplace/blog/BlogComments.README.md +0 -98
  148. package/templates/components/orionplace/blog/BlogComments.module.css +0 -151
  149. package/templates/components/orionplace/blog/BlogComments.tsx +0 -590
  150. package/templates/components/orionplace/blog/BlogPostCard.README.md +0 -51
  151. package/templates/components/orionplace/blog/BlogPostCard.module.css +0 -167
  152. package/templates/components/orionplace/blog/BlogPostCard.tsx +0 -177
  153. package/templates/components/orionplace/blog/BlogPostGroup.README.md +0 -49
  154. package/templates/components/orionplace/blog/BlogPostGroup.module.css +0 -37
  155. package/templates/components/orionplace/blog/BlogPostGroup.tsx +0 -129
  156. package/templates/components/orionplace/blog/StorefrontJournal.README.md +0 -105
  157. package/templates/components/orionplace/blog/StorefrontJournal.module.css +0 -387
  158. package/templates/components/orionplace/blog/StorefrontJournal.tsx +0 -549
  159. package/templates/components/orionplace/branding/BrandLogos.README.md +0 -29
  160. package/templates/components/orionplace/branding/BrandLogos.module.css +0 -7
  161. package/templates/components/orionplace/branding/BrandLogos.tsx +0 -30
  162. package/templates/components/orionplace/cart/CartCheckoutDetails.README.md +0 -96
  163. package/templates/components/orionplace/cart/CartCheckoutDetails.module.css +0 -159
  164. package/templates/components/orionplace/cart/CartCheckoutDetails.tsx +0 -381
  165. package/templates/components/orionplace/cart/CartDeliverySelector.README.md +0 -166
  166. package/templates/components/orionplace/cart/CartDeliverySelector.module.css +0 -105
  167. package/templates/components/orionplace/cart/CartDeliverySelector.tsx +0 -679
  168. package/templates/components/orionplace/cart/CartItemOptions.README.md +0 -172
  169. package/templates/components/orionplace/cart/CartItemOptions.module.css +0 -113
  170. package/templates/components/orionplace/cart/CartItemOptions.tsx +0 -503
  171. package/templates/components/orionplace/cart/CartLineItem.README.md +0 -138
  172. package/templates/components/orionplace/cart/CartLineItem.module.css +0 -57
  173. package/templates/components/orionplace/cart/CartLineItem.tsx +0 -263
  174. package/templates/components/orionplace/cart/CartPreview.README.md +0 -99
  175. package/templates/components/orionplace/cart/CartPreview.module.css +0 -225
  176. package/templates/components/orionplace/cart/CartPreview.tsx +0 -188
  177. package/templates/components/orionplace/cart/DeliveryMap.README.md +0 -65
  178. package/templates/components/orionplace/cart/DeliveryMap.module.css +0 -32
  179. package/templates/components/orionplace/cart/DeliveryMap.tsx +0 -131
  180. package/templates/components/orionplace/cart/StorefrontCart.README.md +0 -281
  181. package/templates/components/orionplace/cart/StorefrontCart.module.css +0 -460
  182. package/templates/components/orionplace/cart/StorefrontCart.tsx +0 -937
  183. package/templates/components/orionplace/catalog/CatalogHeader.README.md +0 -136
  184. package/templates/components/orionplace/catalog/CatalogHeader.module.css +0 -387
  185. package/templates/components/orionplace/catalog/CatalogHeader.tsx +0 -644
  186. package/templates/components/orionplace/catalog/CatalogRepresentative.README.md +0 -68
  187. package/templates/components/orionplace/catalog/CatalogRepresentative.tsx +0 -51
  188. package/templates/components/orionplace/catalog/StorefrontCatalog.README.md +0 -120
  189. package/templates/components/orionplace/catalog/StorefrontCatalog.module.css +0 -179
  190. package/templates/components/orionplace/catalog/StorefrontCatalog.tsx +0 -304
  191. package/templates/components/orionplace/categories/CategoryGroup.README.md +0 -68
  192. package/templates/components/orionplace/categories/CategoryGroup.module.css +0 -110
  193. package/templates/components/orionplace/categories/CategoryGroup.tsx +0 -123
  194. package/templates/components/orionplace/categories/StorefrontCategory.README.md +0 -155
  195. package/templates/components/orionplace/categories/StorefrontCategory.module.css +0 -148
  196. package/templates/components/orionplace/categories/StorefrontCategory.tsx +0 -225
  197. package/templates/components/orionplace/contact/AboutPage.README.md +0 -40
  198. package/templates/components/orionplace/contact/AboutPage.module.css +0 -216
  199. package/templates/components/orionplace/contact/AboutPage.tsx +0 -191
  200. package/templates/components/orionplace/contact/ContactForm.README.md +0 -93
  201. package/templates/components/orionplace/contact/ContactForm.module.css +0 -264
  202. package/templates/components/orionplace/contact/ContactForm.tsx +0 -382
  203. package/templates/components/orionplace/contact/EmailUnsubscribe.README.md +0 -67
  204. package/templates/components/orionplace/contact/EmailUnsubscribe.module.css +0 -95
  205. package/templates/components/orionplace/contact/EmailUnsubscribe.tsx +0 -130
  206. package/templates/components/orionplace/contact/StorefrontContact.README.md +0 -73
  207. package/templates/components/orionplace/contact/StorefrontContact.module.css +0 -101
  208. package/templates/components/orionplace/contact/StorefrontContact.tsx +0 -62
  209. package/templates/components/orionplace/currencies/MainCurrencySwitcher.README.md +0 -37
  210. package/templates/components/orionplace/currencies/MainCurrencySwitcher.tsx +0 -68
  211. package/templates/components/orionplace/events/EventEnrollmentDialog.README.md +0 -108
  212. package/templates/components/orionplace/events/EventEnrollmentDialog.module.css +0 -110
  213. package/templates/components/orionplace/events/EventEnrollmentDialog.tsx +0 -315
  214. package/templates/components/orionplace/events/EventsBlock.README.md +0 -58
  215. package/templates/components/orionplace/events/EventsBlock.module.css +0 -101
  216. package/templates/components/orionplace/events/EventsBlock.tsx +0 -109
  217. package/templates/components/orionplace/legal/CookieNotice.README.md +0 -42
  218. package/templates/components/orionplace/legal/CookieNotice.module.css +0 -48
  219. package/templates/components/orionplace/legal/CookieNotice.tsx +0 -82
  220. package/templates/components/orionplace/legal/StorefrontPrivacy.README.md +0 -49
  221. package/templates/components/orionplace/legal/StorefrontPrivacy.module.css +0 -166
  222. package/templates/components/orionplace/legal/StorefrontPrivacy.tsx +0 -83
  223. package/templates/components/orionplace/locale/MainLanguageSwitcher.README.md +0 -46
  224. package/templates/components/orionplace/locale/MainLanguageSwitcher.module.css +0 -196
  225. package/templates/components/orionplace/locale/MainLanguageSwitcher.tsx +0 -387
  226. package/templates/components/orionplace/manufacturers/ManufacturerIndex.README.md +0 -83
  227. package/templates/components/orionplace/manufacturers/ManufacturerIndex.module.css +0 -271
  228. package/templates/components/orionplace/manufacturers/ManufacturerIndex.tsx +0 -218
  229. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.README.md +0 -122
  230. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.module.css +0 -92
  231. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.tsx +0 -455
  232. package/templates/components/orionplace/orders/OrderDetails.README.md +0 -116
  233. package/templates/components/orionplace/orders/OrderDetails.module.css +0 -730
  234. package/templates/components/orionplace/orders/OrderDetails.tsx +0 -693
  235. package/templates/components/orionplace/orders/OrderPaymentForm.README.md +0 -92
  236. package/templates/components/orionplace/orders/OrderPaymentForm.module.css +0 -105
  237. package/templates/components/orionplace/orders/OrderPaymentForm.tsx +0 -90
  238. package/templates/components/orionplace/orders/StorefrontOrders.README.md +0 -131
  239. package/templates/components/orionplace/orders/StorefrontOrders.module.css +0 -633
  240. package/templates/components/orionplace/orders/StorefrontOrders.tsx +0 -922
  241. package/templates/components/orionplace/payments/PaymentPanel.README.md +0 -114
  242. package/templates/components/orionplace/payments/PaymentPanel.module.css +0 -134
  243. package/templates/components/orionplace/payments/PaymentPanel.tsx +0 -76
  244. package/templates/components/orionplace/products/HoverImageViewer.README.md +0 -62
  245. package/templates/components/orionplace/products/HoverImageViewer.module.css +0 -88
  246. package/templates/components/orionplace/products/HoverImageViewer.tsx +0 -179
  247. package/templates/components/orionplace/products/ProductCard.README.md +0 -154
  248. package/templates/components/orionplace/products/ProductCard.module.css +0 -333
  249. package/templates/components/orionplace/products/ProductCard.tsx +0 -730
  250. package/templates/components/orionplace/products/ProductCardActions.README.md +0 -84
  251. package/templates/components/orionplace/products/ProductCardActions.module.css +0 -146
  252. package/templates/components/orionplace/products/ProductCardActions.tsx +0 -311
  253. package/templates/components/orionplace/products/ProductCardBadges.README.md +0 -44
  254. package/templates/components/orionplace/products/ProductCardBadges.module.css +0 -15
  255. package/templates/components/orionplace/products/ProductCardBadges.tsx +0 -78
  256. package/templates/components/orionplace/products/ProductCardDescription.README.md +0 -33
  257. package/templates/components/orionplace/products/ProductCardDescription.module.css +0 -6
  258. package/templates/components/orionplace/products/ProductCardDescription.tsx +0 -43
  259. package/templates/components/orionplace/products/ProductCardFavorite.README.md +0 -52
  260. package/templates/components/orionplace/products/ProductCardFavorite.module.css +0 -64
  261. package/templates/components/orionplace/products/ProductCardFavorite.tsx +0 -90
  262. package/templates/components/orionplace/products/ProductCardPrice.README.md +0 -33
  263. package/templates/components/orionplace/products/ProductCardPrice.module.css +0 -22
  264. package/templates/components/orionplace/products/ProductCardPrice.tsx +0 -50
  265. package/templates/components/orionplace/products/ProductCardRating.README.md +0 -33
  266. package/templates/components/orionplace/products/ProductCardRating.module.css +0 -7
  267. package/templates/components/orionplace/products/ProductCardRating.tsx +0 -56
  268. package/templates/components/orionplace/products/ProductCardSeller.README.md +0 -36
  269. package/templates/components/orionplace/products/ProductCardSeller.module.css +0 -31
  270. package/templates/components/orionplace/products/ProductCardSeller.tsx +0 -61
  271. package/templates/components/orionplace/products/ProductCardStockNotice.README.md +0 -36
  272. package/templates/components/orionplace/products/ProductCardStockNotice.module.css +0 -8
  273. package/templates/components/orionplace/products/ProductCardStockNotice.tsx +0 -35
  274. package/templates/components/orionplace/products/ProductCardTitle.README.md +0 -30
  275. package/templates/components/orionplace/products/ProductCardTitle.module.css +0 -13
  276. package/templates/components/orionplace/products/ProductCardTitle.tsx +0 -31
  277. package/templates/components/orionplace/products/ProductCardVariants.README.md +0 -77
  278. package/templates/components/orionplace/products/ProductCardVariants.module.css +0 -97
  279. package/templates/components/orionplace/products/ProductCardVariants.tsx +0 -350
  280. package/templates/components/orionplace/products/ProductGroup.README.md +0 -91
  281. package/templates/components/orionplace/products/ProductGroup.module.css +0 -64
  282. package/templates/components/orionplace/products/ProductGroup.tsx +0 -186
  283. package/templates/components/orionplace/products/ProductPreorderDialog.README.md +0 -89
  284. package/templates/components/orionplace/products/ProductPreorderDialog.module.css +0 -320
  285. package/templates/components/orionplace/products/ProductPreorderDialog.tsx +0 -346
  286. package/templates/components/orionplace/products/ProductReviewForm.README.md +0 -72
  287. package/templates/components/orionplace/products/ProductReviewForm.module.css +0 -217
  288. package/templates/components/orionplace/products/ProductReviewForm.tsx +0 -288
  289. package/templates/components/orionplace/products/ProductReviewGallery.README.md +0 -61
  290. package/templates/components/orionplace/products/ProductReviewGallery.module.css +0 -108
  291. package/templates/components/orionplace/products/ProductReviewGallery.tsx +0 -110
  292. package/templates/components/orionplace/products/ProductReviewImageViewer.README.md +0 -60
  293. package/templates/components/orionplace/products/ProductReviewImageViewer.module.css +0 -59
  294. package/templates/components/orionplace/products/ProductReviewImageViewer.tsx +0 -312
  295. package/templates/components/orionplace/products/ProductReviews.README.md +0 -137
  296. package/templates/components/orionplace/products/ProductReviews.module.css +0 -602
  297. package/templates/components/orionplace/products/ProductReviews.tsx +0 -944
  298. package/templates/components/orionplace/products/ProductSecondaryVariantModal.README.md +0 -67
  299. package/templates/components/orionplace/products/ProductSecondaryVariantModal.module.css +0 -79
  300. package/templates/components/orionplace/products/ProductSecondaryVariantModal.tsx +0 -324
  301. package/templates/components/orionplace/products/ProductSpecificationsDialog.README.md +0 -52
  302. package/templates/components/orionplace/products/ProductSpecificationsDialog.module.css +0 -138
  303. package/templates/components/orionplace/products/ProductSpecificationsDialog.tsx +0 -117
  304. package/templates/components/orionplace/products/StorefrontProduct.README.md +0 -200
  305. package/templates/components/orionplace/products/StorefrontProduct.module.css +0 -767
  306. package/templates/components/orionplace/products/StorefrontProduct.tsx +0 -1339
  307. package/templates/components/orionplace/products/StorefrontWishlist.README.md +0 -162
  308. package/templates/components/orionplace/products/StorefrontWishlist.module.css +0 -71
  309. package/templates/components/orionplace/products/StorefrontWishlist.tsx +0 -402
  310. package/templates/components/orionplace/promo/PromoProducts.README.md +0 -133
  311. package/templates/components/orionplace/promo/PromoProducts.module.css +0 -68
  312. package/templates/components/orionplace/promo/PromoProducts.tsx +0 -345
  313. package/templates/components/orionplace/search/MainSearch.README.md +0 -73
  314. package/templates/components/orionplace/search/MainSearch.module.css +0 -202
  315. package/templates/components/orionplace/search/MainSearch.tsx +0 -217
  316. package/templates/components/orionplace/search/ProductSearchResults.README.md +0 -166
  317. package/templates/components/orionplace/search/ProductSearchResults.module.css +0 -361
  318. package/templates/components/orionplace/search/ProductSearchResults.tsx +0 -359
  319. package/templates/components/orionplace/search/SearchFilters.README.md +0 -109
  320. package/templates/components/orionplace/search/SearchFilters.module.css +0 -274
  321. package/templates/components/orionplace/search/SearchFilters.tsx +0 -439
  322. package/templates/components/orionplace/sellers/SellerFilters.README.md +0 -66
  323. package/templates/components/orionplace/sellers/SellerFilters.module.css +0 -232
  324. package/templates/components/orionplace/sellers/SellerFilters.tsx +0 -201
  325. package/templates/components/orionplace/sellers/SellerPhotoGallery.README.md +0 -72
  326. package/templates/components/orionplace/sellers/SellerPhotoGallery.module.css +0 -314
  327. package/templates/components/orionplace/sellers/SellerPhotoGallery.tsx +0 -335
  328. package/templates/components/orionplace/sellers/SellerSummary.README.md +0 -62
  329. package/templates/components/orionplace/sellers/SellerSummary.module.css +0 -182
  330. package/templates/components/orionplace/sellers/SellerSummary.tsx +0 -107
  331. package/templates/components/orionplace/sellers/StorefrontSellers.README.md +0 -120
  332. package/templates/components/orionplace/sellers/StorefrontSellers.module.css +0 -147
  333. package/templates/components/orionplace/sellers/StorefrontSellers.tsx +0 -360
  334. package/templates/components/orionplace/shared/OrionplaceAvatar.README.md +0 -35
  335. package/templates/components/orionplace/shared/OrionplaceAvatar.module.css +0 -35
  336. package/templates/components/orionplace/shared/OrionplaceAvatar.tsx +0 -61
  337. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +0 -33
  338. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.module.css +0 -81
  339. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.tsx +0 -91
  340. package/templates/components/orionplace/shared/OrionplaceEmptyState.README.md +0 -37
  341. package/templates/components/orionplace/shared/OrionplaceEmptyState.module.css +0 -126
  342. package/templates/components/orionplace/shared/OrionplaceEmptyState.tsx +0 -78
  343. package/templates/components/orionplace/shared/OrionplaceImage.README.md +0 -45
  344. package/templates/components/orionplace/shared/OrionplaceImage.module.css +0 -22
  345. package/templates/components/orionplace/shared/OrionplaceImage.tsx +0 -97
  346. package/templates/components/orionplace/shared/OrionplaceInfoHint.README.md +0 -31
  347. package/templates/components/orionplace/shared/OrionplaceInfoHint.module.css +0 -59
  348. package/templates/components/orionplace/shared/OrionplaceInfoHint.tsx +0 -126
  349. package/templates/components/orionplace/shared/OrionplacePasswordInput.README.md +0 -39
  350. package/templates/components/orionplace/shared/OrionplacePasswordInput.module.css +0 -79
  351. package/templates/components/orionplace/shared/OrionplacePasswordInput.tsx +0 -103
  352. package/templates/components/orionplace/shared/OrionplaceSearchSelect.README.md +0 -97
  353. package/templates/components/orionplace/shared/OrionplaceSearchSelect.module.css +0 -246
  354. package/templates/components/orionplace/shared/OrionplaceSearchSelect.tsx +0 -367
  355. package/templates/components/orionplace/shared/OrionplaceSelect.README.md +0 -69
  356. package/templates/components/orionplace/shared/OrionplaceSelect.module.css +0 -233
  357. package/templates/components/orionplace/shared/OrionplaceSelect.tsx +0 -439
  358. package/templates/components/orionplace/shared/StorefrontErrorPage.README.md +0 -52
  359. package/templates/components/orionplace/shared/StorefrontErrorPage.module.css +0 -141
  360. package/templates/components/orionplace/shared/StorefrontErrorPage.tsx +0 -103
  361. package/templates/components/orionplace/shared/StorefrontPagination.README.md +0 -45
  362. package/templates/components/orionplace/shared/StorefrontPagination.module.css +0 -69
  363. package/templates/components/orionplace/shared/StorefrontPagination.tsx +0 -158
  364. package/templates/components/orionplace/shared/dialogs.css +0 -36
  365. package/templates/components/orionplace/shared/emptyStateArt.ts +0 -231
  366. package/templates/components/orionplace/shared/features.module.css +0 -162
  367. package/templates/components/orionplace/social/SocialLinks.README.md +0 -16
  368. package/templates/components/orionplace/social/SocialLinks.module.css +0 -36
  369. package/templates/components/orionplace/social/SocialLinks.tsx +0 -59
  370. package/templates/components/orionplace/storefront/StorefrontAccount.README.md +0 -59
  371. package/templates/components/orionplace/storefront/StorefrontAccount.module.css +0 -159
  372. package/templates/components/orionplace/storefront/StorefrontAccount.tsx +0 -303
  373. package/templates/components/orionplace/storefront/StorefrontCartButton.README.md +0 -47
  374. package/templates/components/orionplace/storefront/StorefrontCartButton.module.css +0 -88
  375. package/templates/components/orionplace/storefront/StorefrontCartButton.tsx +0 -54
  376. package/templates/components/orionplace/storefront/StorefrontFooter.README.md +0 -55
  377. package/templates/components/orionplace/storefront/StorefrontFooter.module.css +0 -118
  378. package/templates/components/orionplace/storefront/StorefrontFooter.tsx +0 -168
  379. package/templates/components/orionplace/storefront/StorefrontHeader.README.md +0 -150
  380. package/templates/components/orionplace/storefront/StorefrontHeader.module.css +0 -186
  381. package/templates/components/orionplace/storefront/StorefrontHeader.tsx +0 -389
  382. package/templates/components/orionplace/storefront/StorefrontHome.README.md +0 -138
  383. package/templates/components/orionplace/storefront/StorefrontHome.module.css +0 -116
  384. package/templates/components/orionplace/storefront/StorefrontHome.tsx +0 -282
  385. package/templates/components/orionplace/storefront/StorefrontWishlistButton.README.md +0 -51
  386. package/templates/components/orionplace/storefront/StorefrontWishlistButton.module.css +0 -95
  387. package/templates/components/orionplace/storefront/StorefrontWishlistButton.tsx +0 -80
  388. package/templates/components/orionplace/stores/StorefrontStores.README.md +0 -87
  389. package/templates/components/orionplace/stores/StorefrontStores.module.css +0 -218
  390. package/templates/components/orionplace/stores/StorefrontStores.tsx +0 -397
  391. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +0 -183
  392. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.module.css +0 -347
  393. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.tsx +0 -884
  394. package/templates/components/orionplace/subscriptions/StorefrontTariff.README.md +0 -124
  395. package/templates/components/orionplace/subscriptions/StorefrontTariff.module.css +0 -311
  396. package/templates/components/orionplace/subscriptions/StorefrontTariff.tsx +0 -485
  397. package/templates/components/orionplace/subscriptions/StorefrontTariffs.README.md +0 -115
  398. package/templates/components/orionplace/subscriptions/StorefrontTariffs.module.css +0 -219
  399. package/templates/components/orionplace/subscriptions/StorefrontTariffs.tsx +0 -367
  400. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +0 -67
  401. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.tsx +0 -175
  402. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +0 -95
  403. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.tsx +0 -634
  404. package/templates/components/orionplace/subscriptions/SubscriptionDialog.module.css +0 -453
  405. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +0 -75
  406. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.tsx +0 -384
  407. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +0 -116
  408. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.module.css +0 -168
  409. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.tsx +0 -236
  410. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +0 -123
  411. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.module.css +0 -57
  412. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.tsx +0 -101
  413. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +0 -109
  414. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.tsx +0 -253
  415. package/templates/components/orionplace/support/StorefrontSupport.README.md +0 -157
  416. package/templates/components/orionplace/support/StorefrontSupport.tsx +0 -1040
  417. package/templates/components/orionplace/support/Support.module.css +0 -1133
  418. package/templates/components/orionplace/support/TicketConversation.README.md +0 -105
  419. package/templates/components/orionplace/support/TicketConversation.tsx +0 -502
  420. package/templates/components/orionplace/support/TicketImage.README.md +0 -52
  421. package/templates/components/orionplace/support/TicketImage.tsx +0 -254
  422. package/templates/components/orionplace/support/TicketItemCard.README.md +0 -66
  423. package/templates/components/orionplace/support/TicketItemCard.tsx +0 -140
  424. package/templates/components/orionplace/support/TicketMessageForm.README.md +0 -88
  425. package/templates/components/orionplace/support/TicketMessageForm.tsx +0 -261
  426. package/templates/components/orionplace/support/TicketSubscriptionCard.README.md +0 -53
  427. package/templates/components/orionplace/support/TicketSubscriptionCard.tsx +0 -118
  428. package/templates/components/orionplace/tariffs/TariffCard.README.md +0 -108
  429. package/templates/components/orionplace/tariffs/TariffCard.module.css +0 -86
  430. package/templates/components/orionplace/tariffs/TariffCard.tsx +0 -225
  431. package/templates/components/orionplace/tariffs/TariffCardDescription.README.md +0 -40
  432. package/templates/components/orionplace/tariffs/TariffCardDescription.module.css +0 -72
  433. package/templates/components/orionplace/tariffs/TariffCardDescription.tsx +0 -58
  434. package/templates/components/orionplace/tariffs/TariffCardFeatures.README.md +0 -58
  435. package/templates/components/orionplace/tariffs/TariffCardFeatures.module.css +0 -60
  436. package/templates/components/orionplace/tariffs/TariffCardFeatures.tsx +0 -140
  437. package/templates/components/orionplace/tariffs/TariffCardImage.README.md +0 -36
  438. package/templates/components/orionplace/tariffs/TariffCardImage.module.css +0 -8
  439. package/templates/components/orionplace/tariffs/TariffCardImage.tsx +0 -32
  440. package/templates/components/orionplace/tariffs/TariffCardPrices.README.md +0 -82
  441. package/templates/components/orionplace/tariffs/TariffCardPrices.module.css +0 -142
  442. package/templates/components/orionplace/tariffs/TariffCardPrices.tsx +0 -191
  443. package/templates/components/orionplace/tariffs/TariffCardTitle.README.md +0 -32
  444. package/templates/components/orionplace/tariffs/TariffCardTitle.module.css +0 -9
  445. package/templates/components/orionplace/tariffs/TariffCardTitle.tsx +0 -29
  446. package/templates/components/orionplace/tariffs/TariffCards.README.md +0 -88
  447. package/templates/components/orionplace/tariffs/TariffCards.module.css +0 -24
  448. package/templates/components/orionplace/tariffs/TariffCards.tsx +0 -44
  449. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.README.md +0 -92
  450. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.module.css +0 -214
  451. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.tsx +0 -299
  452. package/templates/components/orionplace/theme/OrionplaceThemeProvider.README.md +0 -30
  453. package/templates/components/orionplace/theme/OrionplaceThemeProvider.module.css +0 -8
  454. package/templates/components/orionplace/theme/OrionplaceThemeProvider.tsx +0 -32
  455. package/templates/components/orionplace/units/UnitSwitcher.README.md +0 -35
  456. package/templates/components/orionplace/units/UnitSwitcher.tsx +0 -58
  457. package/templates/components/orionplace/wallet/StorefrontWallet.README.md +0 -154
  458. package/templates/components/orionplace/wallet/StorefrontWallet.module.css +0 -507
  459. package/templates/components/orionplace/wallet/StorefrontWallet.tsx +0 -915
  460. package/templates/components/orionplace/wallet/WalletBalance.README.md +0 -46
  461. package/templates/components/orionplace/wallet/WalletBalance.module.css +0 -46
  462. package/templates/components/orionplace/wallet/WalletBalance.tsx +0 -51
  463. package/templates/components/orionplace/wallet/WalletTopUpForm.README.md +0 -54
  464. package/templates/components/orionplace/wallet/WalletTopUpForm.module.css +0 -152
  465. package/templates/components/orionplace/wallet/WalletTopUpForm.tsx +0 -181
  466. package/templates/hooks/useAccountActivity.ts +0 -251
  467. package/templates/hooks/useAccountAddresses.ts +0 -81
  468. package/templates/hooks/useAccountPromocodes.ts +0 -91
  469. package/templates/hooks/useOrionplaceActionMenu.ts +0 -118
  470. package/templates/hooks/useOrionplaceAddressForm.ts +0 -262
  471. package/templates/hooks/useOrionplaceApi.ts +0 -98
  472. package/templates/hooks/useOrionplaceAppLoad.ts +0 -66
  473. package/templates/hooks/useOrionplaceBlogReading.ts +0 -351
  474. package/templates/hooks/useOrionplaceDialog.ts +0 -85
  475. package/templates/hooks/useOrionplaceHomeProducts.ts +0 -97
  476. package/templates/hooks/useOrionplaceMap.tsx +0 -230
  477. package/templates/hooks/useOrionplaceMediaFormat.ts +0 -33
  478. package/templates/hooks/useOrionplaceProduct.ts +0 -28
  479. package/templates/hooks/useOrionplaceProfile.ts +0 -347
  480. package/templates/hooks/useOrionplaceReviews.ts +0 -352
  481. package/templates/hooks/useOrionplaceStableHeight.ts +0 -65
  482. package/templates/hooks/useOrionplaceStorefront.tsx +0 -575
  483. package/templates/hooks/useOrionplaceTariffPurchase.ts +0 -212
  484. package/templates/interfaces/orionplace/accounts/IContact.ts +0 -21
  485. package/templates/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +0 -17
  486. package/templates/interfaces/orionplace/accounts/IEmailVerification.ts +0 -59
  487. package/templates/interfaces/orionplace/accounts/IProfileActions.ts +0 -38
  488. package/templates/interfaces/orionplace/accounts/IProfileData.ts +0 -125
  489. package/templates/interfaces/orionplace/accounts/IProfileMedia.ts +0 -17
  490. package/templates/interfaces/orionplace/accounts/IStorefrontProfile.ts +0 -54
  491. package/templates/interfaces/orionplace/address/IAddressCitySuggestion.ts +0 -19
  492. package/templates/interfaces/orionplace/address/IAddressEditor.ts +0 -9
  493. package/templates/interfaces/orionplace/address/IAddressLocationSuggestion.ts +0 -22
  494. package/templates/interfaces/orionplace/address/IAddressRegionSearch.ts +0 -30
  495. package/templates/interfaces/orionplace/address/IAddressSuggestion.ts +0 -20
  496. package/templates/interfaces/orionplace/address/IUserAddress.ts +0 -87
  497. package/templates/interfaces/orionplace/apiBase/TMethod.ts +0 -1
  498. package/templates/interfaces/orionplace/appBase/IAppLoad.ts +0 -16
  499. package/templates/interfaces/orionplace/appBase/IAppLoadCommon.ts +0 -47
  500. package/templates/interfaces/orionplace/appBase/IApploadUserProfile.ts +0 -15
  501. package/templates/interfaces/orionplace/appBase/IForm.ts +0 -21
  502. package/templates/interfaces/orionplace/appBase/ISEO.ts +0 -21
  503. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +0 -11
  504. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonContact.ts +0 -8
  505. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonCurrency.ts +0 -15
  506. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonEvents.ts +0 -18
  507. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLocale.ts +0 -14
  508. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLogos.ts +0 -6
  509. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +0 -22
  510. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +0 -26
  511. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSocial.ts +0 -15
  512. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +0 -7
  513. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonUnit.ts +0 -12
  514. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +0 -8
  515. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVisualSettings.ts +0 -11
  516. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonWalletValue.ts +0 -3
  517. package/templates/interfaces/orionplace/blog/IBlogApi.ts +0 -247
  518. package/templates/interfaces/orionplace/blog/IBlogPostPreview.ts +0 -30
  519. package/templates/interfaces/orionplace/cart/ICartActions.ts +0 -67
  520. package/templates/interfaces/orionplace/cart/ICartData.ts +0 -382
  521. package/templates/interfaces/orionplace/cart/ICartDeliveryActions.ts +0 -68
  522. package/templates/interfaces/orionplace/cart/ICartModal.ts +0 -22
  523. package/templates/interfaces/orionplace/cart/IDeliveryMap.ts +0 -29
  524. package/templates/interfaces/orionplace/catalog/ICatalogDirectory.ts +0 -75
  525. package/templates/interfaces/orionplace/category/ICategory.ts +0 -41
  526. package/templates/interfaces/orionplace/domains/IDomain.ts +0 -13
  527. package/templates/interfaces/orionplace/forms/ICustomerSubfilter.ts +0 -19
  528. package/templates/interfaces/orionplace/index.ts +0 -64
  529. package/templates/interfaces/orionplace/marketing/IPromoActions.ts +0 -51
  530. package/templates/interfaces/orionplace/orders/IOrderActions.ts +0 -99
  531. package/templates/interfaces/orionplace/orders/IOrderHistory.ts +0 -259
  532. package/templates/interfaces/orionplace/orders/IProductPreorder.ts +0 -31
  533. package/templates/interfaces/orionplace/payments/IInvoice.ts +0 -147
  534. package/templates/interfaces/orionplace/products/IProduct.ts +0 -262
  535. package/templates/interfaces/orionplace/products/IProductFeedbackApi.ts +0 -218
  536. package/templates/interfaces/orionplace/products/IProductSearchApi.ts +0 -146
  537. package/templates/interfaces/orionplace/products/IProductSearchFacets.ts +0 -35
  538. package/templates/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +0 -15
  539. package/templates/interfaces/orionplace/products/IProductSpecification.ts +0 -14
  540. package/templates/interfaces/orionplace/products/IWishlist.ts +0 -22
  541. package/templates/interfaces/orionplace/sellers/ISellerDirectory.ts +0 -70
  542. package/templates/interfaces/orionplace/shared/IBreadcrumb.ts +0 -10
  543. package/templates/interfaces/orionplace/shared/IGeoCoordinates.ts +0 -4
  544. package/templates/interfaces/orionplace/shared/IStorefrontControls.ts +0 -6
  545. package/templates/interfaces/orionplace/shared/ITransformValue.ts +0 -3
  546. package/templates/interfaces/orionplace/state.ts +0 -4
  547. package/templates/interfaces/orionplace/stores/IStoreDirectory.ts +0 -63
  548. package/templates/interfaces/orionplace/subscribeOptions/ISubscribeOption.ts +0 -9
  549. package/templates/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +0 -56
  550. package/templates/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +0 -11
  551. package/templates/interfaces/orionplace/subscribes/ISubscribe.ts +0 -28
  552. package/templates/interfaces/orionplace/subscribes/ISubscriptionApi.ts +0 -127
  553. package/templates/interfaces/orionplace/tickets/ICustomerTicketApi.ts +0 -223
  554. package/templates/interfaces/orionplace/transport.ts +0 -34
  555. package/templates/lib/orionplace/accountLabels.ts +0 -29
  556. package/templates/lib/orionplace/activityLabels.ts +0 -96
  557. package/templates/lib/orionplace/activityPresentation.ts +0 -9
  558. package/templates/lib/orionplace/addressChanges.ts +0 -26
  559. package/templates/lib/orionplace/addressPresentation.ts +0 -58
  560. package/templates/lib/orionplace/api.ts +0 -326
  561. package/templates/lib/orionplace/appLoadClient.ts +0 -80
  562. package/templates/lib/orionplace/appLoadResult.ts +0 -120
  563. package/templates/lib/orionplace/appLoadServer.ts +0 -183
  564. package/templates/lib/orionplace/blogArticle.ts +0 -122
  565. package/templates/lib/orionplace/blogArticleHtml.ts +0 -371
  566. package/templates/lib/orionplace/blogComments.ts +0 -102
  567. package/templates/lib/orionplace/blogImageViewer.ts +0 -84
  568. package/templates/lib/orionplace/blogJournal.ts +0 -128
  569. package/templates/lib/orionplace/blogLabels.ts +0 -158
  570. package/templates/lib/orionplace/blogPresentation.ts +0 -67
  571. package/templates/lib/orionplace/blogProductPlacements.ts +0 -105
  572. package/templates/lib/orionplace/browseLabels.ts +0 -145
  573. package/templates/lib/orionplace/cartAddress.ts +0 -86
  574. package/templates/lib/orionplace/cartController.ts +0 -104
  575. package/templates/lib/orionplace/cartLabels.ts +0 -390
  576. package/templates/lib/orionplace/cartOptions.ts +0 -115
  577. package/templates/lib/orionplace/cartPreview.ts +0 -135
  578. package/templates/lib/orionplace/cartPromo.ts +0 -150
  579. package/templates/lib/orionplace/cartShipment.ts +0 -61
  580. package/templates/lib/orionplace/cartSnapshot.ts +0 -21
  581. package/templates/lib/orionplace/catalog.ts +0 -150
  582. package/templates/lib/orionplace/categoryLabels.ts +0 -29
  583. package/templates/lib/orionplace/contact.ts +0 -47
  584. package/templates/lib/orionplace/contactLabels.ts +0 -152
  585. package/templates/lib/orionplace/currency.ts +0 -128
  586. package/templates/lib/orionplace/deliveryMap.ts +0 -86
  587. package/templates/lib/orionplace/directoryLabels.ts +0 -198
  588. package/templates/lib/orionplace/domain.ts +0 -21
  589. package/templates/lib/orionplace/errorPageLabels.ts +0 -89
  590. package/templates/lib/orionplace/eventEnrollment.ts +0 -22
  591. package/templates/lib/orionplace/featureData.ts +0 -28
  592. package/templates/lib/orionplace/featureLabels.ts +0 -406
  593. package/templates/lib/orionplace/featuredLabels.ts +0 -38
  594. package/templates/lib/orionplace/footerLabels.ts +0 -53
  595. package/templates/lib/orionplace/guestSession.ts +0 -55
  596. package/templates/lib/orionplace/headerLabels.ts +0 -98
  597. package/templates/lib/orionplace/homeContent.ts +0 -193
  598. package/templates/lib/orionplace/homeLabels.ts +0 -74
  599. package/templates/lib/orionplace/htmlText.ts +0 -51
  600. package/templates/lib/orionplace/manufacturerDirectory.ts +0 -71
  601. package/templates/lib/orionplace/manufacturerIndex.ts +0 -107
  602. package/templates/lib/orionplace/modalWindow.ts +0 -109
  603. package/templates/lib/orionplace/nativeApp.ts +0 -365
  604. package/templates/lib/orionplace/navigation.tsx +0 -121
  605. package/templates/lib/orionplace/notice.ts +0 -22
  606. package/templates/lib/orionplace/orderLabels.ts +0 -458
  607. package/templates/lib/orionplace/orderPresentation.ts +0 -574
  608. package/templates/lib/orionplace/pageMetadata.ts +0 -361
  609. package/templates/lib/orionplace/pageSeo.ts +0 -662
  610. package/templates/lib/orionplace/paginationScroll.ts +0 -131
  611. package/templates/lib/orionplace/phone.ts +0 -22
  612. package/templates/lib/orionplace/presentation.ts +0 -84
  613. package/templates/lib/orionplace/privacyLabels.ts +0 -273
  614. package/templates/lib/orionplace/productActionLabels.ts +0 -87
  615. package/templates/lib/orionplace/productAvailability.ts +0 -30
  616. package/templates/lib/orionplace/productGallery.ts +0 -64
  617. package/templates/lib/orionplace/productLabels.ts +0 -119
  618. package/templates/lib/orionplace/productListLocation.ts +0 -130
  619. package/templates/lib/orionplace/productPage.ts +0 -308
  620. package/templates/lib/orionplace/productPhotos.ts +0 -67
  621. package/templates/lib/orionplace/productSearch.ts +0 -280
  622. package/templates/lib/orionplace/productSeller.ts +0 -56
  623. package/templates/lib/orionplace/productStructuredData.ts +0 -221
  624. package/templates/lib/orionplace/profile.ts +0 -169
  625. package/templates/lib/orionplace/profileLabels.ts +0 -227
  626. package/templates/lib/orionplace/promoLabels.ts +0 -111
  627. package/templates/lib/orionplace/promoPresentation.ts +0 -381
  628. package/templates/lib/orionplace/reviewLabels.ts +0 -256
  629. package/templates/lib/orionplace/reviewPresentation.ts +0 -64
  630. package/templates/lib/orionplace/reviewScope.ts +0 -38
  631. package/templates/lib/orionplace/searchFilters.ts +0 -99
  632. package/templates/lib/orionplace/searchHistory.ts +0 -144
  633. package/templates/lib/orionplace/sellerDirectory.ts +0 -120
  634. package/templates/lib/orionplace/seo.ts +0 -52
  635. package/templates/lib/orionplace/serverApi.ts +0 -158
  636. package/templates/lib/orionplace/serverLocale.ts +0 -29
  637. package/templates/lib/orionplace/serverMetadata.ts +0 -93
  638. package/templates/lib/orionplace/serverRecords.ts +0 -31
  639. package/templates/lib/orionplace/serverRoute.tsx +0 -59
  640. package/templates/lib/orionplace/sessionLabels.ts +0 -38
  641. package/templates/lib/orionplace/signInReturn.ts +0 -89
  642. package/templates/lib/orionplace/storeDirectory.ts +0 -47
  643. package/templates/lib/orionplace/storefrontRecords.ts +0 -42
  644. package/templates/lib/orionplace/subscriptionChanges.ts +0 -120
  645. package/templates/lib/orionplace/subscriptionLabels.ts +0 -100
  646. package/templates/lib/orionplace/subscriptionManageLabels.ts +0 -422
  647. package/templates/lib/orionplace/subscriptionPlans.ts +0 -122
  648. package/templates/lib/orionplace/subscriptionRemote.ts +0 -85
  649. package/templates/lib/orionplace/subscriptionUsage.ts +0 -58
  650. package/templates/lib/orionplace/tariffLabels.ts +0 -176
  651. package/templates/lib/orionplace/tariffPage.ts +0 -54
  652. package/templates/lib/orionplace/tariffVariables.ts +0 -174
  653. package/templates/lib/orionplace/tariffs.ts +0 -241
  654. package/templates/lib/orionplace/ticketItems.ts +0 -75
  655. package/templates/lib/orionplace/ticketLabels.ts +0 -428
  656. package/templates/lib/orionplace/ticketLocation.ts +0 -79
  657. package/templates/lib/orionplace/ticketRequests.ts +0 -70
  658. package/templates/lib/orionplace/walletTransaction.ts +0 -105
  659. package/templates/orionplace/COMPONENT-DOWNLOAD.md +0 -66
  660. package/templates/orionplace/COMPONENTS.md +0 -35
  661. package/templates/providers/OrionplaceProvider.tsx +0 -191
  662. package/templates/proxy.ts +0 -63
  663. package/templates/stores/orionplace.ts +0 -282
  664. package/templates/stores/orionplaceBrowse.ts +0 -89
  665. package/templates/stores/orionplaceCatalog.ts +0 -162
  666. package/templates/stores/orionplaceProducts.ts +0 -389
  667. package/templates/stores/orionplaceScope.ts +0 -104
  668. package/templates/stores/orionplaceSelections.ts +0 -130
  669. package/templates/themes/orionplace.ts +0 -106
@@ -1,162 +0,0 @@
1
- # StorefrontWishlist · React
2
-
3
- ## English
4
-
5
- `StorefrontWishlist` shows saved products and products with active availability
6
- notifications. Pass a server response through `initial` when the account page
7
- has already loaded it. Otherwise `loadOnMount` calls `onLoad` with
8
- `products_search`. The Wishlist tab sends `show_whishlist=true`; Notifications
9
- sends `subscription_exists=true`. Tab and page changes replace the cards and
10
- keep the returned pagination.
11
-
12
- The component stores every returned product in the isolated product store and
13
- renders the current page as standard `ProductGroup` cards. `productHref`
14
- supplies their product links. `productActionsDisabled`, a pending list request
15
- or a removal request disables product actions until the request finishes.
16
-
17
- Remove on the Wishlist tab calls `onRemoveWishlist` with
18
- `products_whishlist_delete_by_whish_id` and the listed product's
19
- `whishlist_id`. The returned `count` updates the shared wishlist counter.
20
- When the entry already ended elsewhere, for example in another tab, the
21
- backend answers “Wish not found” with the current `count`; the component
22
- applies it, clears the heart and loads the page again instead of showing the
23
- error.
24
- Unsubscribe on the Notifications tab calls `onUnsubscribeEntry` with
25
- `product_subscription_delete` and the listed product ID. A confirmed change
26
- updates ordinary, featured and secondary-variant copies of that product, then
27
- reloads the current page. If that reload fails, the entry stays removed and
28
- other entries remain usable. Retry requests the first page of the selected list.
29
-
30
- The card controls forward these independent events:
31
-
32
- - `onSelect(product)` receives the displayed `IProduct`.
33
- - `onSelectSeller(seller)` receives that product's `IProductSeller`.
34
- - `onSelectVariant({ product, variant })` receives the listed product ID and
35
- selected main-variant value.
36
- - `onRequestSecondaryVariants(request)` receives the product group and main
37
- variant value needed for the secondary lookup.
38
- - `onSelectSecondaryVariant({ product, variant })` receives the listed product
39
- ID and the selected secondary variant with its product.
40
- - `onToggleFavorite({ product, selected })` reports the requested wishlist
41
- state.
42
- - `onAdd({ product, quantity })` and `onRemove({ product, cartItem })` report
43
- cart changes.
44
- - `onSubscribe({ product })`, `onUnsubscribe({ product })` and
45
- `onPreorder({ product })` report availability actions.
46
-
47
- When a forwarded wishlist or notification action removes an entry from the
48
- product store, the component hides that card and reloads the current page to
49
- fill the available space.
50
-
51
- Source is maintained in
52
- `components/orionplace/products/StorefrontWishlist.tsx`; wishlist response
53
- fields are in `interfaces/orionplace/products/IWishlist.ts` and
54
- `interfaces/orionplace/products/IProductSearchApi.ts`.
55
-
56
- ### Props
57
-
58
- | Prop | Meaning |
59
- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
60
- | `initial?: { products?: { data: IProduct[]; rpag: IApiPagination; }; min_max?: IProductSearchRanges; variants?: Record<string, IProductVariantFilter>; selects?: IProductSearchChoices; c_cat_products?: number; promo?: IPromoDefinition \| null; }` | Server-provided initial data used for the first render and hydration. |
61
- | `initialError?: string` | Server-provided initial error used for the first render and hydration. |
62
- | `initialMode?: "wishlist" \| "notifications"` | Server-provided initial mode used for the first render and hydration. |
63
- | `loadOnMount?: boolean` | Starts the load callback after hydration when server data was not supplied. |
64
- | `productActionsDisabled?: boolean` | Disables cart, wishlist, subscription and preorder actions. |
65
- | `productHref?: (id: number) => string` | Builds the product destination from the callback arguments. |
66
- | `onLoad: (action: WishlistLoadAction) => Promise<WishlistPage> \| WishlistPage` | Called when the component needs its primary data. The callback payload is shown in its type. |
67
- | `onRemoveWishlist?: (action: WishlistRemoveAction) => Promise<{ count: number; }> \| { count: number; }` | Called when the visitor removes a product from the current wishlist list. The callback payload is shown in its type. |
68
- | `onUnsubscribeEntry?: (action: WishlistUnsubscribeAction) => Promise<void> \| void` | Called when the visitor removes an availability notification. The callback payload is shown in its type. |
69
- | `onModeChange?: (mode: "wishlist" \| "notifications") => void` | Called when the visitor changes the current list mode. The callback payload is shown in its type. |
70
- | `onPageChange?: (page: number) => void` | Called when the visitor requests another page. The callback payload is shown in its type. |
71
- | `onSelect?: (product: IProduct) => void` | Passes the displayed product object when its image or name is selected. The application handles product navigation. |
72
- | `onSelectSeller?: (seller: IProductSeller) => void` | Passes the displayed product’s seller object when the seller is selected. The application opens the seller page. |
73
- | `onSelectVariant?: (selection: ProductActionSelection & { variant: IProductVariantValue; }) => void` | Passes the previously displayed product ID in `product` and chosen primary variant in `variant`. An available variant product replaces the card; the application loads missing product data. |
74
- | `onRequestSecondaryVariants?: (request: IProductSecondaryVariantRequest) => void` | Passes the product ID in `product`, product group ID in `productGroup` and primary variant in `variant` when its secondary variants need loading. The application loads them and supplies them to the product store. |
75
- | `onSelectSecondaryVariant?: (selection: ProductActionSelection & { variant: IProductSecondaryVariant; }) => void` | Passes the previously displayed product ID in `product` and chosen secondary variant in `variant` after replacing the displayed product. The secondary-variant data remains available. |
76
- | `onToggleFavorite?: (selection: ProductActionSelection & { selected: boolean; }) => void` | Passes the product ID in `product` and desired wishlist state in `selected` after the heart is pressed. The application confirms the change with a request and updates product data. |
77
- | `onAdd?: (selection: ProductActionSelection & { quantity: number; }) => void` | Passes the product ID in `product` and the requested total quantity in `quantity` when adding an item or changing its quantity. The application sends the request and supplies confirmed product data. |
78
- | `onRemove?: (selection: ProductActionSelection & { cartItem: number; }) => void` | Passes the product ID in `product` and cart item ID in `cartItem` when removing the last unit. The application removes that cart item and supplies confirmed product data. |
79
- | `onSubscribe?: (selection: ProductActionSelection) => void` | Passes the product ID in `product` when an availability notification is requested. The application handles any required sign-in, sends the request and updates subscription state. |
80
- | `onUnsubscribe?: (selection: ProductActionSelection) => void` | Passes the product ID in `product` when cancelling an availability notification. The application sends the request and supplies the confirmed subscription state. |
81
- | `onPreorder?: (selection: ProductActionSelection) => void` | Passes the product ID in `product` when preorder is selected. The application collects the required contact details and submits the request. |
82
-
83
- ## Русский
84
-
85
- `StorefrontWishlist` показывает сохранённые товары и товары с действующими
86
- уведомлениями о наличии. Если страница личного кабинета уже загрузила ответ на
87
- сервере, передайте его через `initial`. Иначе `loadOnMount` вызывает `onLoad` с
88
- методом `products_search`. Вкладка «Избранное» отправляет
89
- `show_whishlist=true`, а «Уведомления» — `subscription_exists=true`. Смена
90
- вкладки или страницы заменяет карточки и сохраняет полученную пагинацию.
91
-
92
- Компонент сохраняет каждый полученный товар в отдельном хранилище товаров и
93
- показывает текущую страницу стандартными карточками `ProductGroup`.
94
- `productHref` задаёт ссылки товаров. `productActionsDisabled`, выполняемый
95
- запрос списка или удаления блокируют действия карточек до завершения запроса.
96
-
97
- Кнопка «Убрать» в избранном вызывает `onRemoveWishlist` с методом
98
- `products_whishlist_delete_by_whish_id` и `whishlist_id` сохранённой позиции.
99
- Поле `count` из ответа обновляет общий счётчик избранного. Если позиция уже
100
- удалена в другом месте, например в другой вкладке, сервер отвечает «Wish not
101
- found» с текущим `count`: компонент применяет счётчик, снимает отметку с
102
- товара и загружает страницу заново вместо показа ошибки. Кнопка «Отписаться»
103
- во вкладке уведомлений вызывает `onUnsubscribeEntry` с методом
104
- `product_subscription_delete` и ID товара. Подтверждённое изменение обновляет
105
- основную, рекомендованную и вложенные копии вариантов товара, затем повторно
106
- загружает
107
- текущую страницу. Если эта загрузка завершается ошибкой, позиция остаётся
108
- удалённой, а остальные позиции остаются доступны. Кнопка повтора загружает
109
- первую страницу выбранного списка.
110
-
111
- Элементы карточки независимо передают следующие события:
112
-
113
- - `onSelect(product)` получает показанный `IProduct`.
114
- - `onSelectSeller(seller)` получает `IProductSeller` этого товара.
115
- - `onSelectVariant({ product, variant })` получает ID товара из списка и
116
- выбранное значение основного варианта.
117
- - `onRequestSecondaryVariants(request)` получает группу товара и значение
118
- основного варианта для загрузки дополнительных вариантов.
119
- - `onSelectSecondaryVariant({ product, variant })` получает ID товара из
120
- списка и выбранный дополнительный вариант с его товаром.
121
- - `onToggleFavorite({ product, selected })` сообщает запрошенное состояние
122
- избранного.
123
- - `onAdd({ product, quantity })` и `onRemove({ product, cartItem })` сообщают
124
- изменения корзины.
125
- - `onSubscribe({ product })`, `onUnsubscribe({ product })` и
126
- `onPreorder({ product })` сообщают действия с доступностью товара.
127
-
128
- Если переданное действие избранного или уведомления удалило позицию из
129
- хранилища товаров, компонент скрывает карточку и повторно загружает текущую
130
- страницу, чтобы дополнить список.
131
-
132
- Исходный файл:
133
- `components/orionplace/products/StorefrontWishlist.tsx`; поля ответа находятся
134
- в `interfaces/orionplace/products/IWishlist.ts` и
135
- `interfaces/orionplace/products/IProductSearchApi.ts`.
136
-
137
- ### Свойства
138
-
139
- | Свойство | Назначение |
140
- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
141
- | `initial?: { products?: { data: IProduct[]; rpag: IApiPagination; }; min_max?: IProductSearchRanges; variants?: Record<string, IProductVariantFilter>; selects?: IProductSearchChoices; c_cat_products?: number; promo?: IPromoDefinition \| null; }` | Начальные данные с сервера для первого рендера и гидратации. |
142
- | `initialError?: string` | Начальное значение ошибки, полученное на сервере для первого рендера и гидратации. |
143
- | `initialMode?: "wishlist" \| "notifications"` | Начальное значение режима, полученное на сервере для первого рендера и гидратации. |
144
- | `loadOnMount?: boolean` | Запускает загрузку после гидратации, если серверные данные не переданы. |
145
- | `productActionsDisabled?: boolean` | Блокирует корзину, избранное, подписку и предзаказ. |
146
- | `productHref?: (id: number) => string` | Строит адрес ссылки товара из аргументов обработчика. |
147
- | `onLoad: (action: WishlistLoadAction) => Promise<WishlistPage> \| WishlistPage` | Вызывается, когда компоненту нужны основные данные. Данные обработчика указаны в его типе. |
148
- | `onRemoveWishlist?: (action: WishlistRemoveAction) => Promise<{ count: number; }> \| { count: number; }` | Вызывается, когда покупатель удаляет товар из текущего списка избранного. Данные обработчика указаны в его типе. |
149
- | `onUnsubscribeEntry?: (action: WishlistUnsubscribeAction) => Promise<void> \| void` | Вызывается, когда покупатель отключает уведомление о наличии. Данные обработчика указаны в его типе. |
150
- | `onModeChange?: (mode: "wishlist" \| "notifications") => void` | Вызывается, когда покупатель меняет режим списка. Данные обработчика указаны в его типе. |
151
- | `onPageChange?: (page: number) => void` | Вызывается, когда покупатель открывает другую страницу. Данные обработчика указаны в его типе. |
152
- | `onSelect?: (product: IProduct) => void` | Передаёт объект отображаемого товара при выборе его изображения или названия. Приложение выполняет переход к товару. |
153
- | `onSelectSeller?: (seller: IProductSeller) => void` | Передаёт объект продавца отображаемого товара при выборе продавца. Приложение открывает его страницу. |
154
- | `onSelectVariant?: (selection: ProductActionSelection & { variant: IProductVariantValue; }) => void` | Передаёт ID ранее отображаемого товара в `product` и выбранный основной вариант в `variant`. Доступный товар выбранного варианта заменяет карточку; отсутствующие данные загружает приложение. |
155
- | `onRequestSecondaryVariants?: (request: IProductSecondaryVariantRequest) => void` | Передаёт ID товара в `product`, ID группы товаров в `productGroup` и основной вариант в `variant`, когда для него нужно загрузить дополнительные варианты. Приложение загружает и передаёт их в хранилище товаров. |
156
- | `onSelectSecondaryVariant?: (selection: ProductActionSelection & { variant: IProductSecondaryVariant; }) => void` | Передаёт ID ранее отображаемого товара в `product` и выбранный дополнительный вариант в `variant` после замены отображаемого товара. Выбор сохраняет данные дополнительных вариантов. |
157
- | `onToggleFavorite?: (selection: ProductActionSelection & { selected: boolean; }) => void` | Передаёт ID товара в `product` и желаемое состояние избранного в `selected` после нажатия сердца. Приложение подтверждает изменение запросом и обновляет данные товара. |
158
- | `onAdd?: (selection: ProductActionSelection & { quantity: number; }) => void` | Передаёт `product` — ID товара и `quantity` — запрошенное итоговое количество при добавлении или изменении количества. Приложение выполняет запрос и передаёт подтверждённые данные товара. |
159
- | `onRemove?: (selection: ProductActionSelection & { cartItem: number; }) => void` | Передаёт ID товара в `product` и ID позиции корзины в `cartItem` при удалении последней единицы. Приложение удаляет эту позицию и передаёт подтверждённые данные товара. |
160
- | `onSubscribe?: (selection: ProductActionSelection) => void` | Передаёт ID товара в `product` при выборе уведомления о поступлении. Приложение выполняет вход, если он нужен, отправляет запрос и обновляет состояние подписки. |
161
- | `onUnsubscribe?: (selection: ProductActionSelection) => void` | Передаёт ID товара в `product` при отмене уведомления о поступлении. Приложение отправляет запрос и передаёт подтверждённое состояние подписки. |
162
- | `onPreorder?: (selection: ProductActionSelection) => void` | Передаёт ID товара в `product` при выборе предзаказа. Приложение собирает необходимые контактные данные и отправляет запрос. |
@@ -1,71 +0,0 @@
1
- .root {
2
- composes: feature featureStack from '../account/account.module.css';
3
- container-type: inline-size;
4
- }
5
-
6
- .title {
7
- composes: featureTitle from '../account/account.module.css';
8
- }
9
-
10
- .tabs {
11
- composes: featureActions from '../account/account.module.css';
12
- }
13
-
14
- .button {
15
- composes: featureButton from '../account/account.module.css';
16
- }
17
-
18
- .error {
19
- composes: notice noticeError from '../account/account.module.css';
20
- }
21
-
22
- .remove {
23
- justify-self: start;
24
- padding: 0 0 0.125rem;
25
- border: 0;
26
- border-bottom: 1px solid currentColor;
27
- border-radius: 0;
28
- background: transparent;
29
- color: var(--orionplace-muted);
30
- font-family: inherit;
31
- font-size: 11px;
32
- line-height: normal;
33
- letter-spacing: 0.08em;
34
- text-transform: uppercase;
35
- cursor: pointer;
36
- outline: none;
37
- transition: color 150ms;
38
- }
39
-
40
- .remove:focus-visible {
41
- color: var(--orionplace-text);
42
- }
43
-
44
- @media (hover: hover) {
45
- .remove:hover {
46
- color: var(--orionplace-text);
47
- }
48
- }
49
-
50
- .remove:disabled {
51
- cursor: default;
52
- opacity: 0.4;
53
- }
54
-
55
- .screenReaderOnly {
56
- position: absolute;
57
- width: 1px;
58
- height: 1px;
59
- padding: 0;
60
- margin: -1px;
61
- overflow: hidden;
62
- clip: rect(0, 0, 0, 0);
63
- white-space: nowrap;
64
- border: 0;
65
- }
66
-
67
- @media (prefers-reduced-motion: reduce) {
68
- .remove {
69
- transition: none;
70
- }
71
- }
@@ -1,402 +0,0 @@
1
- 'use client';
2
-
3
- import { useEffect, useRef, useState } from 'react';
4
- import {
5
- useOrionplaceProducts,
6
- useOrionplaceProductsStore,
7
- useOrionplaceSelections,
8
- } from '@/providers/OrionplaceProvider';
9
- import type { IApiPagination } from '@/interfaces/orionplace/accounts/IProfileData';
10
- import type { IProduct } from '@/interfaces/orionplace/products/IProduct';
11
- import type {
12
- IProductSearchRequest,
13
- IProductSearchResponse,
14
- } from '@/interfaces/orionplace/products/IProductSearchApi';
15
- import { fieldErrorText, OrionplaceApiError } from '@/lib/orionplace/api';
16
- import { activityLabels } from '@/lib/orionplace/activityLabels';
17
- import { featureLabels } from '@/lib/orionplace/featureLabels';
18
- import { mergePagination } from '@/lib/orionplace/featureData';
19
- import { productLabels } from '@/lib/orionplace/productLabels';
20
- import { OrionplaceEmptyState } from '@/components/orionplace/shared/OrionplaceEmptyState';
21
- import { StorefrontPagination } from '@/components/orionplace/shared/StorefrontPagination';
22
- import {
23
- ProductGroup,
24
- type ProductGroupEvents,
25
- type ProductGroupProps,
26
- } from './ProductGroup';
27
- import styles from './StorefrontWishlist.module.css';
28
-
29
- type WishlistPage = NonNullable<IProductSearchResponse['page_data']>;
30
-
31
- export interface WishlistLoadAction {
32
- endpoint: 'products_search';
33
- request: IProductSearchRequest;
34
- signal: AbortSignal;
35
- }
36
-
37
- export interface WishlistRemoveAction {
38
- endpoint: 'products_whishlist_delete_by_whish_id';
39
- request: Record<string, never>;
40
- path: { whishlist_id: number };
41
- signal: AbortSignal;
42
- }
43
-
44
- export interface WishlistUnsubscribeAction {
45
- endpoint: 'product_subscription_delete';
46
- request: Record<string, never>;
47
- path: { product_id: number };
48
- signal: AbortSignal;
49
- }
50
-
51
- export interface StorefrontWishlistProps extends ProductGroupEvents {
52
- initial?: WishlistPage;
53
- initialError?: string;
54
- initialMode?: 'wishlist' | 'notifications';
55
- loadOnMount?: boolean;
56
- productActionsDisabled?: boolean;
57
- productHref?: ProductGroupProps['productHref'];
58
- onLoad: (action: WishlistLoadAction) => Promise<WishlistPage> | WishlistPage;
59
- onRemoveWishlist?: (
60
- action: WishlistRemoveAction,
61
- ) => Promise<{ count: number }> | { count: number };
62
- onUnsubscribeEntry?: (
63
- action: WishlistUnsubscribeAction,
64
- ) => Promise<void> | void;
65
- onModeChange?: (mode: 'wishlist' | 'notifications') => void;
66
- onPageChange?: (page: number) => void;
67
- }
68
-
69
- export function StorefrontWishlist({
70
- initial,
71
- initialError = '',
72
- initialMode = 'wishlist',
73
- loadOnMount = true,
74
- productActionsDisabled = false,
75
- productHref,
76
- onLoad,
77
- onRemoveWishlist,
78
- onUnsubscribeEntry,
79
- onModeChange,
80
- onPageChange,
81
- ...events
82
- }: StorefrontWishlistProps) {
83
- const locale = useOrionplaceSelections((state) => state.localeCode);
84
- const updates = useOrionplaceProducts((state) => state.updates.products);
85
- const productStore = useOrionplaceProductsStore();
86
- const labels = activityLabels(locale);
87
- const common = featureLabels(locale);
88
- const productsCopy = productLabels(locale);
89
- const [mode, setMode] = useState(initialMode);
90
- const [products, setProducts] = useState<IProduct[]>(
91
- initial?.products?.data ?? [],
92
- );
93
- const [pagination, setPagination] = useState<Partial<IApiPagination>>(
94
- initial?.products?.rpag ?? {},
95
- );
96
- const [loaded, setLoaded] = useState(Boolean(initial));
97
- const [pending, setPending] = useState(
98
- loadOnMount && !initial && !initialError,
99
- );
100
- const [error, setError] = useState(initialError);
101
- const activeRequest = useRef<AbortController | undefined>(undefined);
102
- const requested = useRef(false);
103
- const callbacks = useRef({ onLoad, onRemoveWishlist, onUnsubscribeEntry });
104
- callbacks.current = { onLoad, onRemoveWishlist, onUnsubscribeEntry };
105
-
106
- const currentProducts = products.map(
107
- (product) => updates[product.id] ?? product,
108
- );
109
- const visibleProducts = currentProducts.filter((product) =>
110
- mode === 'notifications'
111
- ? Boolean(product.subscription_id)
112
- : Boolean(product.whishlist_id),
113
- );
114
- const disabled = productActionsDisabled || pending;
115
-
116
- function requestBody(
117
- page: number,
118
- selectedMode = mode,
119
- ): IProductSearchRequest {
120
- return {
121
- filters:
122
- selectedMode === 'notifications'
123
- ? { subscription_exists: true }
124
- : { show_whishlist: true },
125
- paginate: { page, pp_items: 12 },
126
- };
127
- }
128
-
129
- async function fetchPage(
130
- controller: AbortController,
131
- page: number,
132
- selectedMode = mode,
133
- ) {
134
- const data = await callbacks.current.onLoad({
135
- endpoint: 'products_search',
136
- request: requestBody(page, selectedMode),
137
- signal: controller.signal,
138
- });
139
- if (controller.signal.aborted) {
140
- return;
141
- }
142
- if (!data.products) {
143
- throw new Error('Missing product list');
144
- }
145
-
146
- for (const product of data.products.data) {
147
- productStore
148
- .getState()
149
- .setProduct(product, 'products', data.selects?.sellers);
150
- }
151
- setProducts(data.products.data);
152
- setPagination((previous) =>
153
- mergePagination(page === 1 ? {} : previous, data.products?.rpag),
154
- );
155
- setLoaded(true);
156
- }
157
-
158
- async function run(work: (controller: AbortController) => Promise<void>) {
159
- if (activeRequest.current) {
160
- return;
161
- }
162
- const controller = new AbortController();
163
- activeRequest.current = controller;
164
- setPending(true);
165
- setError('');
166
- try {
167
- await work(controller);
168
- } catch (reason) {
169
- if (!controller.signal.aborted) {
170
- const fields = (reason as { fields?: Record<string, string> })?.fields;
171
- setError(
172
- fieldErrorText(fields ?? {}) || common.failed,
173
- );
174
- }
175
- } finally {
176
- if (activeRequest.current === controller) {
177
- activeRequest.current = undefined;
178
- setPending(false);
179
- }
180
- }
181
- }
182
-
183
- function load(page = 1, selectedMode = mode) {
184
- return run((controller) => fetchPage(controller, page, selectedMode));
185
- }
186
-
187
- function selectMode(selectedMode: 'wishlist' | 'notifications') {
188
- if (pending) {
189
- return;
190
- }
191
- setMode(selectedMode);
192
- setProducts([]);
193
- setPagination({});
194
- setLoaded(false);
195
- onModeChange?.(selectedMode);
196
- void load(1, selectedMode);
197
- }
198
-
199
- function changePage(page: number) {
200
- onPageChange?.(page);
201
- void load(page);
202
- }
203
-
204
- function removeEntry(listed: IProduct) {
205
- const product = productStore.getState().getProduct(listed.id) ?? listed;
206
- if (mode === 'notifications' && !callbacks.current.onUnsubscribeEntry) {
207
- return;
208
- }
209
- if (
210
- mode === 'wishlist' &&
211
- (!product.whishlist_id || !callbacks.current.onRemoveWishlist)
212
- ) {
213
- setError(common.failed);
214
- return;
215
- }
216
-
217
- void run(async (controller) => {
218
- if (mode === 'notifications') {
219
- await callbacks.current.onUnsubscribeEntry?.({
220
- endpoint: 'product_subscription_delete',
221
- request: {},
222
- path: { product_id: product.id },
223
- signal: controller.signal,
224
- });
225
- if (controller.signal.aborted) {
226
- return;
227
- }
228
- productStore.getState().patchProduct(product.id, {
229
- subscription_id: null,
230
- });
231
- } else {
232
- let result: { count?: number } | undefined;
233
- try {
234
- result = await callbacks.current.onRemoveWishlist?.({
235
- endpoint: 'products_whishlist_delete_by_whish_id',
236
- request: {},
237
- path: { whishlist_id: Number(product.whishlist_id) },
238
- signal: controller.signal,
239
- });
240
- if (!result) {
241
- return;
242
- }
243
- } catch (reason) {
244
- // "Wish not found": the entry already ended, for example in another
245
- // tab. OrionMarketplace sends the current counter with the error, and the page
246
- // is read again after this.
247
- if (
248
- !(reason instanceof OrionplaceApiError) ||
249
- reason.kind !== 'failed' ||
250
- reason.status === 401 ||
251
- !Object.keys(reason.fields).length
252
- ) {
253
- throw reason;
254
- }
255
- result = reason.data as { count?: number } | undefined;
256
- }
257
- if (controller.signal.aborted) {
258
- return;
259
- }
260
- if (Number.isInteger(result?.count)) {
261
- productStore
262
- .getState()
263
- .setProductCounters({ c_wishlist: result!.count });
264
- }
265
- productStore
266
- .getState()
267
- .patchProduct(product.id, { whishlist_id: null });
268
- }
269
-
270
- await fetchPage(controller, pagination.page ?? 1);
271
- });
272
- }
273
-
274
- useEffect(() => {
275
- for (const product of initial?.products?.data ?? []) {
276
- productStore
277
- .getState()
278
- .setProduct(product, 'products', initial?.selects?.sellers);
279
- }
280
- }, [initial, productStore]);
281
-
282
- useEffect(() => {
283
- if (!requested.current && loadOnMount && !initial && !initialError) {
284
- requested.current = true;
285
- void load();
286
- }
287
- return () => {
288
- activeRequest.current?.abort();
289
- activeRequest.current = undefined;
290
- requested.current = false;
291
- };
292
- }, []);
293
-
294
- useEffect(() => {
295
- if (loaded && !pending && visibleProducts.length < products.length) {
296
- void load(pagination.page ?? 1);
297
- }
298
- }, [visibleProducts.length, products.length]);
299
-
300
- return (
301
- <section
302
- className={styles.root}
303
- data-feature-part="StorefrontWishlist"
304
- aria-busy={pending || undefined}
305
- >
306
- <h1 className={styles.title}>{labels.wishlist}</h1>
307
- <div className={styles.tabs}>
308
- <button
309
- className={styles.button}
310
- type="button"
311
- disabled={pending}
312
- aria-pressed={mode === 'wishlist'}
313
- data-wishlist-tab="wishlist"
314
- onClick={() => selectMode('wishlist')}
315
- >
316
- {labels.wishlist}
317
- </button>
318
- <button
319
- className={styles.button}
320
- type="button"
321
- disabled={pending}
322
- aria-pressed={mode === 'notifications'}
323
- data-wishlist-tab="notifications"
324
- onClick={() => selectMode('notifications')}
325
- >
326
- {labels.notifications}
327
- </button>
328
- </div>
329
-
330
- {error ? (
331
- <div
332
- role="alert"
333
- className={styles.error}
334
- >
335
- {error}
336
- <button
337
- className={styles.button}
338
- type="button"
339
- disabled={pending}
340
- onClick={() => void load()}
341
- >
342
- {common.retry}
343
- </button>
344
- </div>
345
- ) : null}
346
- {pending ? (
347
- <p
348
- role="status"
349
- className="op-feature-loading"
350
- >
351
- <span className={styles.screenReaderOnly}>{common.loading}</span>
352
- </p>
353
- ) : null}
354
-
355
- {visibleProducts.length ? (
356
- <div data-wishlist-products>
357
- <ProductGroup
358
- products={visibleProducts}
359
- productIds={visibleProducts.map((product) => product.id)}
360
- layout="grid"
361
- disabled={disabled}
362
- productHref={productHref}
363
- {...events}
364
- renderFooter={(product) => (
365
- <button
366
- type="button"
367
- className={styles.remove}
368
- data-wishlist-remove
369
- disabled={pending}
370
- aria-label={
371
- mode === 'notifications'
372
- ? productsCopy.unsubscribeHint
373
- : productsCopy.removeFavorite
374
- }
375
- onClick={() => removeEntry(product)}
376
- >
377
- {mode === 'notifications'
378
- ? labels.stopNotification
379
- : labels.removeWish}
380
- </button>
381
- )}
382
- />
383
- </div>
384
- ) : loaded && !pending ? (
385
- <OrionplaceEmptyState
386
- kind={mode === 'notifications' ? 'notifications' : 'wishlist'}
387
- message={
388
- mode === 'notifications'
389
- ? labels.notificationsEmpty
390
- : labels.wishlistEmpty
391
- }
392
- />
393
- ) : null}
394
-
395
- <StorefrontPagination
396
- pagination={pagination}
397
- pending={pending}
398
- onChange={changePage}
399
- />
400
- </section>
401
- );
402
- }