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,827 +0,0 @@
1
- 'use client';
2
-
3
- import {
4
- useEffect,
5
- useId,
6
- useRef,
7
- useState,
8
- type ChangeEvent,
9
- type FormEvent,
10
- } from 'react';
11
- import {
12
- useOrionplace,
13
- useOrionplaceSelections,
14
- } from '@/providers/OrionplaceProvider';
15
- import { selectInit } from '@/stores/orionplace';
16
- import type {
17
- IAddressCitySuggestion,
18
- } from '@/interfaces/orionplace/address/IAddressCitySuggestion';
19
- import type { IAddressCountryOption } from '@/interfaces/orionplace/address/IAddressEditor';
20
- import type {
21
- IAddressLocationSuggestion,
22
- } from '@/interfaces/orionplace/address/IAddressLocationSuggestion';
23
- import type {
24
- IAddressRegion,
25
- IAddressRegionSearchRequest,
26
- } from '@/interfaces/orionplace/address/IAddressRegionSearch';
27
- import type {
28
- IAddressSuggestion,
29
- IAddressSuggestionRequest,
30
- } from '@/interfaces/orionplace/address/IAddressSuggestion';
31
- import type {
32
- IUserAddress,
33
- IUserAddressRequest,
34
- } from '@/interfaces/orionplace/address/IUserAddress';
35
- import { featureLabels } from '@/lib/orionplace/featureLabels';
36
- import {
37
- addressCountryName,
38
- addressRegionName,
39
- uniqueAddressRegions,
40
- } from '@/lib/orionplace/addressPresentation';
41
- import {
42
- refinedAddressFields,
43
- type RefinableAddressField,
44
- } from '@/lib/orionplace/addressChanges';
45
- import { getAvailableNestedValueFromObject } from '@/lib/orionplace/presentation';
46
- import { OrionplaceSearchSelect } from '@/components/orionplace/shared/OrionplaceSearchSelect';
47
- import { OrionplaceSelect } from '@/components/orionplace/shared/OrionplaceSelect';
48
- import styles from './AddressForm.module.css';
49
-
50
- export interface AddressCountriesAction {
51
- endpoint: 'reload_customer_app';
52
- request: {
53
- form: 'fUserAddress';
54
- field_name: 'country';
55
- filters: Record<string, never>;
56
- };
57
- }
58
-
59
- export interface AddressSaveAction {
60
- endpoint: 'address_add' | 'address_edit';
61
- addressId?: number;
62
- request: IUserAddressRequest;
63
- }
64
-
65
- export interface AddressLocationResult {
66
- location: IAddressLocationSuggestion;
67
- countryId: number;
68
- region?: IAddressRegion;
69
- }
70
-
71
- export interface AddressFormProps {
72
- address?: IUserAddress;
73
- countries?: readonly IAddressCountryOption[];
74
- regions?: readonly IAddressRegion[];
75
- cities?: readonly IAddressCitySuggestion[];
76
- streets?: readonly IAddressSuggestion[];
77
- pending?: boolean;
78
- error?: string;
79
- fieldErrors?: Readonly<Record<string, string>>;
80
- optionsPending?: boolean;
81
- optionsError?: string;
82
- regionPending?: boolean;
83
- regionError?: string;
84
- hintPending?: '' | 'city' | 'street';
85
- hintError?: string;
86
- geoPending?: boolean;
87
- geoError?: string;
88
- onLoadCountries?: (
89
- action: AddressCountriesAction,
90
- ) => Promise<void> | void;
91
- onSearchRegions?: (request: IAddressRegionSearchRequest) => void;
92
- onSuggestCity?: (request: {
93
- country: number;
94
- region: number;
95
- search_string: string;
96
- }) => void;
97
- onSuggestStreet?: (request: IAddressSuggestionRequest) => void;
98
- onLocate?: () => Promise<AddressLocationResult | null> |
99
- AddressLocationResult | null;
100
- onSave?: (action: AddressSaveAction) =>
101
- Promise<IUserAddress[] | void> | IUserAddress[] | void;
102
- onSaved?: (addresses: IUserAddress[]) => void;
103
- onCancel?: () => void;
104
- onDone?: () => void;
105
- }
106
-
107
- const emptyFields: IUserAddressRequest = {
108
- address_label: '',
109
- country: 0,
110
- state: 0,
111
- city: '',
112
- line1: '',
113
- line2: '',
114
- house_number: '',
115
- postcode: '',
116
- entrance: '',
117
- intercom: '',
118
- floor: '',
119
- apt_number: '',
120
- is_default_for_shipping: false,
121
- };
122
-
123
- function initialFields(address?: IUserAddress): IUserAddressRequest {
124
- return address ? {
125
- address_label: address.address_label,
126
- country: address.country?.id ?? 0,
127
- state: address.state?.id ?? 0,
128
- city: address.city,
129
- line1: address.line1,
130
- line2: address.line2,
131
- house_number: address.house_number,
132
- postcode: address.postcode,
133
- entrance: address.entrance,
134
- intercom: address.intercom,
135
- floor: address.floor,
136
- apt_number: address.apt_number,
137
- is_default_for_shipping: address.is_default_for_shipping,
138
- } : { ...emptyFields };
139
- }
140
-
141
- export function AddressForm({
142
- address,
143
- countries = [],
144
- regions = [],
145
- cities = [],
146
- streets = [],
147
- pending = false,
148
- error = '',
149
- fieldErrors = {},
150
- optionsPending = false,
151
- optionsError = '',
152
- regionPending = false,
153
- regionError = '',
154
- hintPending = '',
155
- hintError = '',
156
- geoPending = false,
157
- geoError = '',
158
- onLoadCountries,
159
- onSearchRegions,
160
- onSuggestCity,
161
- onSuggestStreet,
162
- onLocate,
163
- onSave,
164
- onSaved,
165
- onCancel,
166
- onDone,
167
- }: AddressFormProps) {
168
- const locale = useOrionplaceSelections((state) => state.localeCode);
169
- const init = useOrionplace(selectInit);
170
- const labels = featureLabels(locale);
171
- const copy = labels.addresses;
172
- const detailsId = useId();
173
- const requested = useRef(false);
174
- const mounted = useRef(false);
175
- const hintTimer = useRef<ReturnType<typeof setTimeout>>(undefined);
176
- const savedHeading = useRef<HTMLHeadingElement>(null);
177
- const [fields, setFields] = useState(() => initialFields(address));
178
- // The address as the last save returned it; later saves edit it.
179
- const [saved, setSaved] = useState(address);
180
- const [reviewing, setReviewing] = useState(false);
181
- const [refined, setRefined] = useState<RefinableAddressField[]>([]);
182
- const [selectedRegion, setSelectedRegion] = useState(address?.state ?? null);
183
- const [activeSuggestions, setActiveSuggestions] = useState<
184
- '' | 'city' | 'street'
185
- >('');
186
- const busy = pending || geoPending;
187
- const country = countries.find((item) => item.value === fields.country);
188
- const suggestionsEnabled = Boolean(country?.suggestions && fields.state);
189
- const countryOptions = {
190
- '0': copy.chooseCountry,
191
- ...Object.fromEntries(countries.map((item) => [
192
- String(item.value),
193
- getAvailableNestedValueFromObject(
194
- item.locale,
195
- locale,
196
- 'printable_name',
197
- ) || item.iso_3166_1_a2,
198
- ])),
199
- };
200
- const countryCodes = Object.fromEntries(countries.map((item) => [
201
- String(item.value),
202
- item.iso_3166_1_a2,
203
- ]));
204
- const regionOptions = uniqueAddressRegions(regions).map((region) => ({
205
- value: String(region.id),
206
- label: addressRegionName(region, locale),
207
- }));
208
- // Editing never clears the default mark; the address menu does.
209
- const defaultKept = Boolean(saved?.is_default_for_shipping);
210
- // No delivery to the chosen country: the address can be saved, but the
211
- // backend refuses it as the default.
212
- const noShipping = country !== undefined && !country.is_shipping_country;
213
-
214
- // `mounted` is a ref: React runs effects twice in development, and the
215
- // countries requested by the first run must still bring the regions.
216
- useEffect(() => {
217
- mounted.current = true;
218
- if (!requested.current) {
219
- requested.current = true;
220
- void loadCountries().then(() => {
221
- if (mounted.current && fields.country) {
222
- requestRegions(fields.country);
223
- }
224
- }).catch(() => undefined);
225
- }
226
- return () => {
227
- mounted.current = false;
228
- clearTimeout(hintTimer.current);
229
- };
230
- }, []);
231
-
232
- useEffect(() => {
233
- if (reviewing) {
234
- savedHeading.current?.focus();
235
- }
236
- }, [reviewing]);
237
-
238
- function countriesAction(): AddressCountriesAction {
239
- return {
240
- endpoint: 'reload_customer_app',
241
- request: {
242
- form: 'fUserAddress',
243
- field_name: 'country',
244
- filters: {},
245
- },
246
- };
247
- }
248
-
249
- async function loadCountries() {
250
- await onLoadCountries?.(countriesAction());
251
- }
252
-
253
- function requestRegions(countryId: number, query = '') {
254
- onSearchRegions?.({
255
- filters: {
256
- country: countryId,
257
- region_name: query,
258
- },
259
- });
260
- }
261
-
262
- function update<Key extends keyof IUserAddressRequest>(
263
- name: Key,
264
- value: IUserAddressRequest[Key],
265
- ) {
266
- setFields((current) => ({ ...current, [name]: value }));
267
- }
268
-
269
- function selectCountry(value: string) {
270
- clearTimeout(hintTimer.current);
271
- setActiveSuggestions('');
272
- const countryId = Number(value);
273
- setSelectedRegion(null);
274
- setFields((current) => ({
275
- ...current,
276
- country: countryId,
277
- state: 0,
278
- city: '',
279
- line1: '',
280
- house_number: '',
281
- postcode: '',
282
- }));
283
- if (countryId) {
284
- requestRegions(countryId);
285
- }
286
- }
287
-
288
- function selectRegion(value: string) {
289
- clearTimeout(hintTimer.current);
290
- setActiveSuggestions('');
291
- const regionId = Number(value);
292
- setSelectedRegion(regions.find((item) => item.id === regionId) ?? null);
293
- setFields((current) => ({
294
- ...current,
295
- state: regionId,
296
- city: '',
297
- line1: '',
298
- house_number: '',
299
- postcode: '',
300
- }));
301
- }
302
-
303
- function scheduleSuggestion(mode: 'city' | 'street', value: string) {
304
- clearTimeout(hintTimer.current);
305
- setActiveSuggestions('');
306
- if (
307
- !suggestionsEnabled ||
308
- value.trim().length < 2 ||
309
- (mode === 'street' && !fields.city)
310
- ) {
311
- return;
312
- }
313
- setActiveSuggestions(mode);
314
- hintTimer.current = setTimeout(() => {
315
- if (mode === 'city') {
316
- onSuggestCity?.({
317
- country: fields.country,
318
- region: fields.state,
319
- search_string: value,
320
- });
321
- } else {
322
- onSuggestStreet?.({
323
- country: fields.country,
324
- region: fields.state,
325
- city: fields.city,
326
- address_string: value,
327
- });
328
- }
329
- }, 300);
330
- }
331
-
332
- function changeCity(event: ChangeEvent<HTMLInputElement>) {
333
- const value = event.target.value;
334
- update('city', value);
335
- scheduleSuggestion('city', value);
336
- }
337
-
338
- function changeStreet(event: ChangeEvent<HTMLInputElement>) {
339
- const value = event.target.value;
340
- update('line1', value);
341
- scheduleSuggestion('street', value);
342
- }
343
-
344
- async function locate() {
345
- if (!onLocate || busy) {
346
- return;
347
- }
348
- try {
349
- const result = await onLocate();
350
- if (!result) {
351
- return;
352
- }
353
- setSelectedRegion(result.region ?? null);
354
- setActiveSuggestions('');
355
- setFields((current) => ({
356
- ...current,
357
- country: result.countryId,
358
- state: result.region?.id ?? 0,
359
- city: result.location.city ?? '',
360
- line1: result.location.street ?? '',
361
- house_number: result.location.house ?? '',
362
- postcode: result.location.postal_code ?? '',
363
- }));
364
- } catch {
365
- return;
366
- }
367
- }
368
-
369
- async function save(event: FormEvent<HTMLFormElement>) {
370
- event.preventDefault();
371
- if (!onSave || !fields.country || !fields.state || busy) {
372
- return;
373
- }
374
- const sent = {
375
- ...fields,
376
- is_default_for_shipping: Boolean(fields.is_default_for_shipping) && !noShipping,
377
- };
378
- try {
379
- const result = await onSave({
380
- endpoint: saved ? 'address_edit' : 'address_add',
381
- addressId: saved?.id,
382
- request: sent,
383
- });
384
- const value = result?.[0];
385
- // The form then shows the address as the backend saved it: an address
386
- // plugin may have normalized city, street, house, second line and
387
- // postcode.
388
- if (value) {
389
- clearTimeout(hintTimer.current);
390
- setActiveSuggestions('');
391
- setSaved(value);
392
- setRefined(refinedAddressFields(sent, value));
393
- setSelectedRegion(value.state);
394
- setFields(initialFields(value));
395
- setReviewing(true);
396
- }
397
- if (result) {
398
- onSaved?.(result);
399
- }
400
- } catch {
401
- return;
402
- }
403
- }
404
-
405
- // «Edit» returns from the saved address to the form with its saved values.
406
- function edit() {
407
- setReviewing(false);
408
- setRefined([]);
409
- }
410
-
411
- if (reviewing && saved) {
412
- const rows = ([
413
- ['address_label', copy.label, saved.address_label],
414
- ['country', copy.country, addressCountryName(saved.country, locale)],
415
- [
416
- 'state',
417
- copy.region,
418
- saved.state ? addressRegionName(saved.state, locale) : '',
419
- ],
420
- ['city', copy.city, saved.city],
421
- ['line1', copy.street, saved.line1],
422
- ['house_number', copy.house, saved.house_number],
423
- ['postcode', copy.postcode, saved.postcode],
424
- ['line2', copy.line2, saved.line2],
425
- ['entrance', copy.entrance, saved.entrance],
426
- ['intercom', copy.intercom, saved.intercom],
427
- ['floor', copy.floor, saved.floor],
428
- ['apt_number', copy.apartment, saved.apt_number],
429
- ] as const)
430
- .map(([name, label, text]) => ({
431
- name,
432
- label,
433
- text,
434
- refined: (refined as readonly string[]).includes(name),
435
- }))
436
- .filter((row) => row.text || row.refined);
437
- return (
438
- <section
439
- className={`${styles.form} ${styles.saved}`}
440
- data-feature-part="AddressForm"
441
- data-address-saved
442
- >
443
- <h2
444
- ref={savedHeading}
445
- className={styles.savedTitle}
446
- tabIndex={-1}
447
- >
448
- {copy.savedTitle}
449
- </h2>
450
- <p
451
- className={styles.savedNotice}
452
- data-tone={refined.length ? 'attention' : 'success'}
453
- role="status"
454
- >
455
- {refined.length ? copy.savedRefined : copy.savedAsSent}
456
- </p>
457
- <dl className={styles.savedFields}>
458
- {rows.map((row) => (
459
- <div
460
- key={row.name}
461
- data-address-saved-field={row.name}
462
- data-address-refined={row.refined || undefined}
463
- >
464
- <dt>{row.label}</dt>
465
- <dd>
466
- {row.text || '—'}
467
- {row.refined ? (
468
- <span className={styles.refined}>{copy.refined}</span>
469
- ) : null}
470
- </dd>
471
- </div>
472
- ))}
473
- </dl>
474
- {saved.is_default_for_shipping ? (
475
- <p className={styles.savedDefault}>{copy.default}</p>
476
- ) : null}
477
- <div className={styles.actions}>
478
- <button
479
- type="button"
480
- className={styles.primary}
481
- data-address-saved-done
482
- onClick={() => onDone?.()}
483
- >
484
- {copy.done}
485
- </button>
486
- <button
487
- type="button"
488
- data-address-saved-edit
489
- onClick={edit}
490
- >
491
- {labels.edit}
492
- </button>
493
- </div>
494
- </section>
495
- );
496
- }
497
-
498
- return (
499
- <form
500
- className={styles.form}
501
- aria-busy={busy}
502
- data-feature-part="AddressForm"
503
- onSubmit={save}
504
- >
505
- <div className={styles.heading}>
506
- <h2>{saved ? copy.edit : copy.add}</h2>
507
- {init?.geo_location_enabled ? (
508
- <button
509
- type="button"
510
- disabled={busy || !countries.length}
511
- data-address-locate
512
- onClick={() => void locate()}
513
- >
514
- {geoPending ? labels.loading : copy.locate}
515
- </button>
516
- ) : null}
517
- </div>
518
- {error || geoError ? (
519
- <p className={styles.errorNotice} role="alert">{error || geoError}</p>
520
- ) : null}
521
- {optionsError ? (
522
- <div className={styles.errorNotice} role="alert">
523
- <span>{optionsError}</span>
524
- <button
525
- type="button"
526
- onClick={() => void loadCountries()}
527
- >
528
- {labels.retry}
529
- </button>
530
- </div>
531
- ) : null}
532
- <TextField
533
- label={copy.label}
534
- name="address_label"
535
- value={fields.address_label}
536
- required
537
- minLength={3}
538
- maxLength={32}
539
- disabled={busy}
540
- error={fieldErrors.address_label}
541
- onChange={(value) => update('address_label', value)}
542
- />
543
- <div className={styles.fields}>
544
- <OrionplaceSelect
545
- value={String(fields.country)}
546
- options={countryOptions}
547
- countryCodes={countryCodes}
548
- label={copy.country}
549
- disabled={busy || optionsPending}
550
- required
551
- onValueChange={selectCountry}
552
- />
553
- <OrionplaceSearchSelect
554
- value={fields.state ? String(fields.state) : ''}
555
- options={regionOptions}
556
- selectedLabel={selectedRegion
557
- ? addressRegionName(selectedRegion, locale)
558
- : ''}
559
- label={copy.region}
560
- placeholder={copy.findRegion}
561
- loadingLabel={labels.loading}
562
- emptyLabel={labels.noMatches}
563
- retryLabel={labels.retry}
564
- pending={regionPending}
565
- error={regionError}
566
- disabled={busy || !fields.country}
567
- required
568
- onSearch={(query) => onSearchRegions?.({
569
- filters: {
570
- country: fields.country,
571
- region_name: query,
572
- },
573
- })}
574
- onValueChange={selectRegion}
575
- />
576
- <SuggestionField
577
- label={copy.city}
578
- name="city"
579
- value={fields.city}
580
- maxLength={128}
581
- suggestions={activeSuggestions === 'city'
582
- ? cities.map((item) => ({ label: item.city, value: item }))
583
- : []}
584
- pending={hintPending === 'city'}
585
- disabled={busy}
586
- autoComplete="address-level2"
587
- error={fieldErrors.city}
588
- onChange={changeCity}
589
- onSelect={(item) => {
590
- clearTimeout(hintTimer.current);
591
- setActiveSuggestions('');
592
- setFields((current) => ({
593
- ...current,
594
- city: item.city,
595
- line1: '',
596
- postcode: item.postal_code ?? '',
597
- }));
598
- }}
599
- />
600
- <SuggestionField
601
- label={copy.street}
602
- name="line1"
603
- value={fields.line1}
604
- maxLength={128}
605
- suggestions={activeSuggestions === 'street'
606
- ? streets.map((item) => ({ label: item.street, value: item }))
607
- : []}
608
- pending={hintPending === 'street'}
609
- disabled={busy}
610
- autoComplete="address-line1"
611
- error={fieldErrors.line1}
612
- onChange={changeStreet}
613
- onSelect={(item) => {
614
- clearTimeout(hintTimer.current);
615
- setActiveSuggestions('');
616
- setFields((current) => ({
617
- ...current,
618
- line1: item.street,
619
- postcode: item.postal_code ?? current.postcode,
620
- }));
621
- }}
622
- />
623
- <TextField
624
- label={copy.house}
625
- name="house_number"
626
- value={fields.house_number}
627
- required
628
- maxLength={20}
629
- disabled={busy}
630
- error={fieldErrors.house_number}
631
- onChange={(value) => update('house_number', value)}
632
- />
633
- <TextField
634
- label={copy.postcode}
635
- name="postcode"
636
- value={fields.postcode ?? ''}
637
- maxLength={64}
638
- autoComplete="postal-code"
639
- disabled={busy}
640
- error={fieldErrors.postcode}
641
- onChange={(value) => update('postcode', value)}
642
- />
643
- </div>
644
- <span className={styles.srOnly} role="status">
645
- {hintPending ? copy.suggestionsLoading : ''}
646
- </span>
647
- {hintError ? <p className={styles.hintError} role="status">{hintError}</p> : null}
648
- <section className={styles.details} aria-labelledby={detailsId}>
649
- <h3 id={detailsId}>{copy.details}</h3>
650
- <div className={styles.fields}>
651
- {([
652
- ['line2', copy.line2, 128],
653
- ['entrance', copy.entrance, 20],
654
- ['intercom', copy.intercom, 20],
655
- ['floor', copy.floor, 20],
656
- ['apt_number', copy.apartment, 20],
657
- ] as const).map(([name, label, maxLength]) => (
658
- <TextField
659
- key={name}
660
- label={label}
661
- name={name}
662
- value={String(fields[name] ?? '')}
663
- maxLength={maxLength}
664
- disabled={busy}
665
- error={fieldErrors[name]}
666
- onChange={(value) => update(name, value)}
667
- />
668
- ))}
669
- </div>
670
- </section>
671
- <label className={styles.checkbox}>
672
- <input
673
- type="checkbox"
674
- checked={Boolean(fields.is_default_for_shipping) && !noShipping}
675
- disabled={busy || defaultKept || noShipping}
676
- onChange={(event) => update(
677
- 'is_default_for_shipping',
678
- event.target.checked,
679
- )}
680
- />
681
- <span>{copy.default}</span>
682
- </label>
683
- {noShipping ? (
684
- <p
685
- className={styles.note}
686
- data-address-no-shipping
687
- >
688
- {copy.noShippingDefault}
689
- </p>
690
- ) : defaultKept ? (
691
- <p className={styles.note}>{copy.defaultKept}</p>
692
- ) : null}
693
- <div className={styles.actions}>
694
- <button
695
- type="submit"
696
- className={styles.primary}
697
- disabled={busy || !fields.country || !fields.state}
698
- >
699
- {busy ? labels.loading : labels.save}
700
- </button>
701
- <button type="button" disabled={busy} onClick={() => onCancel?.()}>
702
- {labels.cancel}
703
- </button>
704
- </div>
705
- </form>
706
- );
707
- }
708
-
709
- interface TextFieldProps {
710
- label: string;
711
- name: string;
712
- value: string;
713
- required?: boolean;
714
- minLength?: number;
715
- maxLength?: number;
716
- autoComplete?: string;
717
- disabled?: boolean;
718
- error?: string;
719
- onChange: (value: string) => void;
720
- }
721
-
722
- function TextField({
723
- label,
724
- name,
725
- value,
726
- required = false,
727
- minLength,
728
- maxLength,
729
- autoComplete,
730
- disabled = false,
731
- error,
732
- onChange,
733
- }: TextFieldProps) {
734
- return (
735
- <label className={styles.field}>
736
- <span>{label} {required ? <Required /> : null}</span>
737
- <input
738
- name={name}
739
- value={value}
740
- required={required}
741
- minLength={minLength}
742
- maxLength={maxLength}
743
- autoComplete={autoComplete}
744
- disabled={disabled}
745
- aria-invalid={Boolean(error)}
746
- onChange={(event) => onChange(event.target.value)}
747
- />
748
- {/* The form's notice announces the error; the field only shows it. */}
749
- {error ? <small>{error}</small> : null}
750
- </label>
751
- );
752
- }
753
-
754
- interface SuggestionFieldProps<Value> {
755
- label: string;
756
- name: string;
757
- value: string;
758
- maxLength: number;
759
- suggestions: { label: string; value: Value }[];
760
- pending: boolean;
761
- disabled: boolean;
762
- autoComplete?: string;
763
- error?: string;
764
- onChange: (event: ChangeEvent<HTMLInputElement>) => void;
765
- onSelect: (value: Value) => void;
766
- }
767
-
768
- function SuggestionField<Value>({
769
- label,
770
- name,
771
- value,
772
- maxLength,
773
- suggestions,
774
- pending,
775
- disabled,
776
- autoComplete,
777
- error,
778
- onChange,
779
- onSelect,
780
- }: SuggestionFieldProps<Value>) {
781
- return (
782
- <div className={styles.suggestionField}>
783
- <label className={styles.field}>
784
- <span>{label} <Required /></span>
785
- <span className={styles.inputWithStatus}>
786
- <input
787
- name={name}
788
- value={value}
789
- required
790
- maxLength={maxLength}
791
- disabled={disabled}
792
- autoComplete={autoComplete}
793
- aria-invalid={Boolean(error)}
794
- aria-busy={pending || undefined}
795
- onChange={onChange}
796
- />
797
- {pending ? (
798
- <span
799
- className={styles.spinner}
800
- data-address-hint-spinner={name === 'city' ? 'city' : 'street'}
801
- aria-hidden="true"
802
- />
803
- ) : null}
804
- </span>
805
- {error ? <small>{error}</small> : null}
806
- </label>
807
- {suggestions.length ? (
808
- <div className={styles.suggestions} aria-label={label}>
809
- {suggestions.map((item) => (
810
- <button
811
- key={item.label}
812
- type="button"
813
- disabled={disabled}
814
- onClick={() => onSelect(item.value)}
815
- >
816
- {item.label}
817
- </button>
818
- ))}
819
- </div>
820
- ) : null}
821
- </div>
822
- );
823
- }
824
-
825
- function Required() {
826
- return <span className={styles.required} aria-hidden="true">*</span>;
827
- }