orionplace-react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/README.md +276 -35
  2. package/bin/orionplace-react.mjs +4 -1
  3. package/package.json +18 -5
  4. package/runtime/app.d.mts +6 -0
  5. package/runtime/app.mjs +48 -0
  6. package/runtime/marketplace.d.mts +13 -8
  7. package/runtime/marketplace.mjs +287 -211
  8. package/src/project-readme.mjs +95 -35
  9. package/src/setup.mjs +36 -13
  10. package/templates/app/StorefrontShell.tsx +435 -0
  11. package/templates/app/[[...path]]/page.app.tsx +11 -0
  12. package/templates/app/_storefront/ActivityPage.tsx +23 -0
  13. package/templates/app/_storefront/AddressesPage.tsx +29 -0
  14. package/templates/app/_storefront/AppRoutes.tsx +182 -0
  15. package/templates/app/_storefront/ArticlePage.tsx +81 -0
  16. package/templates/app/_storefront/CartPage.tsx +53 -0
  17. package/templates/app/_storefront/CatalogPage.tsx +37 -0
  18. package/templates/app/_storefront/CategoryPage.tsx +64 -0
  19. package/templates/app/_storefront/ContactPage.tsx +32 -0
  20. package/templates/app/_storefront/HomePage.tsx +140 -0
  21. package/templates/app/_storefront/JournalPage.tsx +36 -0
  22. package/templates/app/_storefront/LogoutPage.tsx +91 -0
  23. package/templates/app/_storefront/ManufacturersPage.tsx +64 -0
  24. package/templates/app/_storefront/OrdersPage.tsx +129 -0
  25. package/templates/app/_storefront/ProductPage.tsx +105 -0
  26. package/templates/app/_storefront/ProfilePage.tsx +75 -0
  27. package/templates/app/_storefront/PromoPage.tsx +66 -0
  28. package/templates/app/_storefront/PromocodesPage.tsx +17 -0
  29. package/templates/app/_storefront/SearchPage.tsx +220 -0
  30. package/templates/app/_storefront/SellersPage.tsx +160 -0
  31. package/templates/app/_storefront/StorefrontErrorRoute.tsx +42 -0
  32. package/templates/app/_storefront/StorefrontPageMetadata.tsx +74 -0
  33. package/templates/app/_storefront/StorefrontPageStatus.tsx +61 -0
  34. package/templates/app/_storefront/StoresPage.tsx +53 -0
  35. package/templates/app/_storefront/SubscriptionsPage.tsx +62 -0
  36. package/templates/app/_storefront/SupportPage.tsx +141 -0
  37. package/templates/app/_storefront/TariffsPage.tsx +180 -0
  38. package/templates/app/_storefront/UnsubscribePage.tsx +29 -0
  39. package/templates/app/_storefront/WalletPage.tsx +78 -0
  40. package/templates/app/_storefront/WishlistPage.tsx +79 -0
  41. package/templates/app/_storefront/storefrontRoutes.tsx +738 -0
  42. package/templates/app/_storefront/useAccountWallet.ts +27 -0
  43. package/templates/app/_storefront/useBlogComments.ts +389 -0
  44. package/templates/app/_storefront/useProductSearch.ts +171 -0
  45. package/templates/app/_storefront/useStorefrontNavigation.ts +36 -0
  46. package/templates/app/activity/page.tsx +9 -0
  47. package/templates/app/addresses/page.tsx +9 -0
  48. package/templates/app/api/[...orionplace]/route.ts +11 -4
  49. package/templates/app/browse/page.tsx +27 -0
  50. package/templates/app/cart/page.tsx +9 -0
  51. package/templates/app/catalog/page.tsx +9 -0
  52. package/templates/app/category/[id]/page.tsx +9 -0
  53. package/templates/app/contact/page.tsx +9 -0
  54. package/templates/app/error.tsx +7 -0
  55. package/templates/app/featured/page.tsx +9 -0
  56. package/templates/app/global-error.tsx +61 -0
  57. package/templates/app/globals.css +50 -2
  58. package/templates/app/journal/[id]/page.tsx +9 -0
  59. package/templates/app/journal/page.tsx +9 -0
  60. package/templates/app/layout.app.tsx +20 -0
  61. package/templates/app/layout.tsx +44 -10
  62. package/templates/app/logout/page.tsx +9 -0
  63. package/templates/app/manufacturers/page.tsx +9 -0
  64. package/templates/app/not-found.tsx +5 -0
  65. package/templates/app/orders/page.tsx +9 -0
  66. package/templates/app/page.module.css +12 -8
  67. package/templates/app/page.tsx +8 -79
  68. package/templates/app/product/[id]/page.tsx +9 -0
  69. package/templates/app/profile/page.tsx +9 -0
  70. package/templates/app/promo/[id]/page.tsx +9 -0
  71. package/templates/app/promocodes/page.tsx +9 -0
  72. package/templates/app/ps3/blog/[...orionplace]/route.ts +13 -0
  73. package/templates/app/sellers/page.tsx +9 -0
  74. package/templates/app/storefront.module.css +406 -0
  75. package/templates/app/stores/page.tsx +9 -0
  76. package/templates/app/subscriptions/page.tsx +9 -0
  77. package/templates/app/tariffs/[slug]/[id]/page.tsx +9 -0
  78. package/templates/app/tariffs/page.tsx +9 -0
  79. package/templates/app/tickets/page.tsx +9 -0
  80. package/templates/app/unsubscribe/page.tsx +9 -0
  81. package/templates/app/wallet/page.tsx +9 -0
  82. package/templates/app/wishlist/page.tsx +9 -0
  83. package/templates/components/orionplace/account/AccountActivity.README.md +70 -0
  84. package/templates/components/orionplace/account/AccountActivity.module.css +16 -0
  85. package/templates/components/orionplace/account/AccountActivity.tsx +94 -0
  86. package/templates/components/orionplace/account/AccountPromocodes.README.md +70 -0
  87. package/templates/components/orionplace/account/AccountPromocodes.module.css +92 -0
  88. package/templates/components/orionplace/account/AccountPromocodes.tsx +257 -0
  89. package/templates/components/orionplace/account/AccountSection.README.md +46 -0
  90. package/templates/components/orionplace/account/AccountSection.module.css +110 -0
  91. package/templates/components/orionplace/account/AccountSection.tsx +109 -0
  92. package/templates/components/orionplace/account/ProfileAvatar.README.md +48 -0
  93. package/templates/components/orionplace/account/ProfileAvatar.module.css +31 -0
  94. package/templates/components/orionplace/account/ProfileAvatar.tsx +138 -0
  95. package/templates/components/orionplace/account/ProfileDeleteAccount.README.md +59 -0
  96. package/templates/components/orionplace/account/ProfileDeleteAccount.module.css +51 -0
  97. package/templates/components/orionplace/account/ProfileDeleteAccount.tsx +171 -0
  98. package/templates/components/orionplace/account/ProfileDetailsForm.README.md +44 -0
  99. package/templates/components/orionplace/account/ProfileDetailsForm.module.css +35 -0
  100. package/templates/components/orionplace/account/ProfileDetailsForm.tsx +178 -0
  101. package/templates/components/orionplace/account/ProfileEmailSettings.README.md +52 -0
  102. package/templates/components/orionplace/account/ProfileEmailSettings.module.css +51 -0
  103. package/templates/components/orionplace/account/ProfileEmailSettings.tsx +276 -0
  104. package/templates/components/orionplace/account/ProfilePasswordForm.README.md +45 -0
  105. package/templates/components/orionplace/account/ProfilePasswordForm.module.css +43 -0
  106. package/templates/components/orionplace/account/ProfilePasswordForm.tsx +227 -0
  107. package/templates/components/orionplace/account/ProfileSignIn.README.md +64 -0
  108. package/templates/components/orionplace/account/ProfileSignIn.module.css +86 -0
  109. package/templates/components/orionplace/account/ProfileSignIn.tsx +463 -0
  110. package/templates/components/orionplace/account/SignInHistory.README.md +52 -0
  111. package/templates/components/orionplace/account/SignInHistory.module.css +81 -0
  112. package/templates/components/orionplace/account/SignInHistory.tsx +231 -0
  113. package/templates/components/orionplace/account/StorefrontLogout.README.md +48 -0
  114. package/templates/components/orionplace/account/StorefrontLogout.module.css +166 -0
  115. package/templates/components/orionplace/account/StorefrontLogout.tsx +73 -0
  116. package/templates/components/orionplace/account/StorefrontProfile.README.md +71 -0
  117. package/templates/components/orionplace/account/StorefrontProfile.module.css +65 -0
  118. package/templates/components/orionplace/account/StorefrontProfile.tsx +189 -0
  119. package/templates/components/orionplace/account/account.module.css +1180 -0
  120. package/templates/components/orionplace/account/profile.module.css +696 -0
  121. package/templates/components/orionplace/address/AddressForm.README.md +152 -0
  122. package/templates/components/orionplace/address/AddressForm.module.css +336 -0
  123. package/templates/components/orionplace/address/AddressForm.tsx +827 -0
  124. package/templates/components/orionplace/address/StorefrontAddresses.README.md +99 -0
  125. package/templates/components/orionplace/address/StorefrontAddresses.module.css +271 -0
  126. package/templates/components/orionplace/address/StorefrontAddresses.tsx +438 -0
  127. package/templates/components/orionplace/banners/MainBanner.README.md +65 -0
  128. package/templates/components/orionplace/banners/MainBanner.module.css +112 -0
  129. package/templates/components/orionplace/banners/MainBanner.tsx +159 -0
  130. package/templates/components/orionplace/blog/BlogArticle.README.md +143 -0
  131. package/templates/components/orionplace/blog/BlogArticle.module.css +304 -0
  132. package/templates/components/orionplace/blog/BlogArticle.tsx +371 -0
  133. package/templates/components/orionplace/blog/BlogCommentForm.README.md +51 -0
  134. package/templates/components/orionplace/blog/BlogCommentForm.module.css +93 -0
  135. package/templates/components/orionplace/blog/BlogCommentForm.tsx +125 -0
  136. package/templates/components/orionplace/blog/BlogComments.README.md +98 -0
  137. package/templates/components/orionplace/blog/BlogComments.module.css +151 -0
  138. package/templates/components/orionplace/blog/BlogComments.tsx +590 -0
  139. package/templates/components/orionplace/blog/BlogPostCard.README.md +51 -0
  140. package/templates/components/orionplace/blog/BlogPostCard.module.css +167 -0
  141. package/templates/components/orionplace/blog/BlogPostCard.tsx +177 -0
  142. package/templates/components/orionplace/blog/BlogPostGroup.README.md +49 -0
  143. package/templates/components/orionplace/blog/BlogPostGroup.module.css +37 -0
  144. package/templates/components/orionplace/blog/BlogPostGroup.tsx +129 -0
  145. package/templates/components/orionplace/blog/StorefrontJournal.README.md +105 -0
  146. package/templates/components/orionplace/blog/StorefrontJournal.module.css +387 -0
  147. package/templates/components/orionplace/blog/StorefrontJournal.tsx +548 -0
  148. package/templates/components/orionplace/branding/BrandLogos.README.md +29 -0
  149. package/templates/components/orionplace/branding/BrandLogos.module.css +7 -0
  150. package/templates/components/orionplace/branding/BrandLogos.tsx +30 -0
  151. package/templates/components/orionplace/cart/CartCheckoutDetails.README.md +92 -0
  152. package/templates/components/orionplace/cart/CartCheckoutDetails.module.css +159 -0
  153. package/templates/components/orionplace/cart/CartCheckoutDetails.tsx +370 -0
  154. package/templates/components/orionplace/cart/CartDeliverySelector.README.md +166 -0
  155. package/templates/components/orionplace/cart/CartDeliverySelector.module.css +105 -0
  156. package/templates/components/orionplace/cart/CartDeliverySelector.tsx +679 -0
  157. package/templates/components/orionplace/cart/CartItemOptions.README.md +172 -0
  158. package/templates/components/orionplace/cart/CartItemOptions.module.css +113 -0
  159. package/templates/components/orionplace/cart/CartItemOptions.tsx +503 -0
  160. package/templates/components/orionplace/cart/CartLineItem.README.md +138 -0
  161. package/templates/components/orionplace/cart/CartLineItem.module.css +57 -0
  162. package/templates/components/orionplace/cart/CartLineItem.tsx +263 -0
  163. package/templates/components/orionplace/cart/CartPreview.README.md +99 -0
  164. package/templates/components/orionplace/cart/CartPreview.module.css +225 -0
  165. package/templates/components/orionplace/cart/CartPreview.tsx +188 -0
  166. package/templates/components/orionplace/cart/DeliveryMap.README.md +65 -0
  167. package/templates/components/orionplace/cart/DeliveryMap.module.css +32 -0
  168. package/templates/components/orionplace/cart/DeliveryMap.tsx +131 -0
  169. package/templates/components/orionplace/cart/StorefrontCart.README.md +281 -0
  170. package/templates/components/orionplace/cart/StorefrontCart.module.css +460 -0
  171. package/templates/components/orionplace/cart/StorefrontCart.tsx +937 -0
  172. package/templates/components/orionplace/catalog/CatalogHeader.README.md +136 -0
  173. package/templates/components/orionplace/catalog/CatalogHeader.module.css +387 -0
  174. package/templates/components/orionplace/catalog/CatalogHeader.tsx +644 -0
  175. package/templates/components/orionplace/catalog/CatalogRepresentative.README.md +68 -0
  176. package/templates/components/orionplace/catalog/CatalogRepresentative.tsx +51 -0
  177. package/templates/components/orionplace/catalog/StorefrontCatalog.README.md +120 -0
  178. package/templates/components/orionplace/catalog/StorefrontCatalog.module.css +179 -0
  179. package/templates/components/orionplace/catalog/StorefrontCatalog.tsx +304 -0
  180. package/templates/components/orionplace/categories/CategoryGroup.README.md +68 -0
  181. package/templates/components/orionplace/categories/CategoryGroup.module.css +110 -0
  182. package/templates/components/orionplace/categories/CategoryGroup.tsx +123 -0
  183. package/templates/components/orionplace/categories/StorefrontCategory.README.md +155 -0
  184. package/templates/components/orionplace/categories/StorefrontCategory.module.css +148 -0
  185. package/templates/components/orionplace/categories/StorefrontCategory.tsx +225 -0
  186. package/templates/components/orionplace/contact/AboutPage.README.md +40 -0
  187. package/templates/components/orionplace/contact/AboutPage.module.css +216 -0
  188. package/templates/components/orionplace/contact/AboutPage.tsx +191 -0
  189. package/templates/components/orionplace/contact/ContactForm.README.md +93 -0
  190. package/templates/components/orionplace/contact/ContactForm.module.css +264 -0
  191. package/templates/components/orionplace/contact/ContactForm.tsx +382 -0
  192. package/templates/components/orionplace/contact/EmailUnsubscribe.README.md +67 -0
  193. package/templates/components/orionplace/contact/EmailUnsubscribe.module.css +94 -0
  194. package/templates/components/orionplace/contact/EmailUnsubscribe.tsx +130 -0
  195. package/templates/components/orionplace/contact/StorefrontContact.README.md +73 -0
  196. package/templates/components/orionplace/contact/StorefrontContact.module.css +101 -0
  197. package/templates/components/orionplace/contact/StorefrontContact.tsx +62 -0
  198. package/templates/components/orionplace/currencies/MainCurrencySwitcher.README.md +37 -0
  199. package/templates/components/orionplace/currencies/MainCurrencySwitcher.tsx +68 -0
  200. package/templates/components/orionplace/events/EventEnrollmentDialog.README.md +108 -0
  201. package/templates/components/orionplace/events/EventEnrollmentDialog.module.css +110 -0
  202. package/templates/components/orionplace/events/EventEnrollmentDialog.tsx +315 -0
  203. package/templates/components/orionplace/events/EventsBlock.README.md +58 -0
  204. package/templates/components/orionplace/events/EventsBlock.module.css +101 -0
  205. package/templates/components/orionplace/events/EventsBlock.tsx +109 -0
  206. package/templates/components/orionplace/locale/MainLanguageSwitcher.README.md +46 -0
  207. package/templates/components/orionplace/locale/MainLanguageSwitcher.module.css +196 -0
  208. package/templates/components/orionplace/locale/MainLanguageSwitcher.tsx +387 -0
  209. package/templates/components/orionplace/manufacturers/ManufacturerIndex.README.md +83 -0
  210. package/templates/components/orionplace/manufacturers/ManufacturerIndex.module.css +271 -0
  211. package/templates/components/orionplace/manufacturers/ManufacturerIndex.tsx +218 -0
  212. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.README.md +122 -0
  213. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.module.css +92 -0
  214. package/templates/components/orionplace/manufacturers/StorefrontManufacturers.tsx +455 -0
  215. package/templates/components/orionplace/orders/OrderDetails.README.md +116 -0
  216. package/templates/components/orionplace/orders/OrderDetails.module.css +730 -0
  217. package/templates/components/orionplace/orders/OrderDetails.tsx +693 -0
  218. package/templates/components/orionplace/orders/OrderPaymentForm.README.md +92 -0
  219. package/templates/components/orionplace/orders/OrderPaymentForm.module.css +105 -0
  220. package/templates/components/orionplace/orders/OrderPaymentForm.tsx +90 -0
  221. package/templates/components/orionplace/orders/StorefrontOrders.README.md +131 -0
  222. package/templates/components/orionplace/orders/StorefrontOrders.module.css +633 -0
  223. package/templates/components/orionplace/orders/StorefrontOrders.tsx +922 -0
  224. package/templates/components/orionplace/payments/PaymentPanel.README.md +114 -0
  225. package/templates/components/orionplace/payments/PaymentPanel.module.css +134 -0
  226. package/templates/components/orionplace/payments/PaymentPanel.tsx +76 -0
  227. package/templates/components/orionplace/products/HoverImageViewer.README.md +62 -0
  228. package/templates/components/orionplace/products/HoverImageViewer.module.css +88 -0
  229. package/templates/components/orionplace/products/HoverImageViewer.tsx +179 -0
  230. package/templates/components/orionplace/products/ProductCard.README.md +152 -0
  231. package/templates/components/orionplace/products/ProductCard.module.css +333 -0
  232. package/templates/components/orionplace/products/ProductCard.tsx +716 -0
  233. package/templates/components/orionplace/products/ProductCardActions.README.md +84 -0
  234. package/templates/components/orionplace/products/ProductCardActions.module.css +146 -0
  235. package/templates/components/orionplace/products/ProductCardActions.tsx +311 -0
  236. package/templates/components/orionplace/products/ProductCardBadges.README.md +44 -0
  237. package/templates/components/orionplace/products/ProductCardBadges.module.css +15 -0
  238. package/templates/components/orionplace/products/ProductCardBadges.tsx +78 -0
  239. package/templates/components/orionplace/products/ProductCardDescription.README.md +33 -0
  240. package/templates/components/orionplace/products/ProductCardDescription.module.css +6 -0
  241. package/templates/components/orionplace/products/ProductCardDescription.tsx +43 -0
  242. package/templates/components/orionplace/products/ProductCardFavorite.README.md +52 -0
  243. package/templates/components/orionplace/products/ProductCardFavorite.module.css +64 -0
  244. package/templates/components/orionplace/products/ProductCardFavorite.tsx +90 -0
  245. package/templates/components/orionplace/products/ProductCardPrice.README.md +33 -0
  246. package/templates/components/orionplace/products/ProductCardPrice.module.css +22 -0
  247. package/templates/components/orionplace/products/ProductCardPrice.tsx +50 -0
  248. package/templates/components/orionplace/products/ProductCardRating.README.md +33 -0
  249. package/templates/components/orionplace/products/ProductCardRating.module.css +7 -0
  250. package/templates/components/orionplace/products/ProductCardRating.tsx +56 -0
  251. package/templates/components/orionplace/products/ProductCardSeller.README.md +36 -0
  252. package/templates/components/orionplace/products/ProductCardSeller.module.css +31 -0
  253. package/templates/components/orionplace/products/ProductCardSeller.tsx +61 -0
  254. package/templates/components/orionplace/products/ProductCardStockNotice.README.md +36 -0
  255. package/templates/components/orionplace/products/ProductCardStockNotice.module.css +8 -0
  256. package/templates/components/orionplace/products/ProductCardStockNotice.tsx +35 -0
  257. package/templates/components/orionplace/products/ProductCardTitle.README.md +30 -0
  258. package/templates/components/orionplace/products/ProductCardTitle.module.css +13 -0
  259. package/templates/components/orionplace/products/ProductCardTitle.tsx +31 -0
  260. package/templates/components/orionplace/products/ProductCardVariants.README.md +77 -0
  261. package/templates/components/orionplace/products/ProductCardVariants.module.css +97 -0
  262. package/templates/components/orionplace/products/ProductCardVariants.tsx +350 -0
  263. package/templates/components/orionplace/products/ProductGroup.README.md +89 -0
  264. package/templates/components/orionplace/products/ProductGroup.module.css +64 -0
  265. package/templates/components/orionplace/products/ProductGroup.tsx +183 -0
  266. package/templates/components/orionplace/products/ProductPreorderDialog.README.md +89 -0
  267. package/templates/components/orionplace/products/ProductPreorderDialog.module.css +320 -0
  268. package/templates/components/orionplace/products/ProductPreorderDialog.tsx +346 -0
  269. package/templates/components/orionplace/products/ProductReviewForm.README.md +72 -0
  270. package/templates/components/orionplace/products/ProductReviewForm.module.css +217 -0
  271. package/templates/components/orionplace/products/ProductReviewForm.tsx +288 -0
  272. package/templates/components/orionplace/products/ProductReviewGallery.README.md +61 -0
  273. package/templates/components/orionplace/products/ProductReviewGallery.module.css +108 -0
  274. package/templates/components/orionplace/products/ProductReviewGallery.tsx +110 -0
  275. package/templates/components/orionplace/products/ProductReviewImageViewer.README.md +49 -0
  276. package/templates/components/orionplace/products/ProductReviewImageViewer.module.css +50 -0
  277. package/templates/components/orionplace/products/ProductReviewImageViewer.tsx +260 -0
  278. package/templates/components/orionplace/products/ProductReviews.README.md +137 -0
  279. package/templates/components/orionplace/products/ProductReviews.module.css +602 -0
  280. package/templates/components/orionplace/products/ProductReviews.tsx +944 -0
  281. package/templates/components/orionplace/products/ProductSecondaryVariantModal.README.md +67 -0
  282. package/templates/components/orionplace/products/ProductSecondaryVariantModal.module.css +79 -0
  283. package/templates/components/orionplace/products/ProductSecondaryVariantModal.tsx +324 -0
  284. package/templates/components/orionplace/products/ProductSpecificationsDialog.README.md +52 -0
  285. package/templates/components/orionplace/products/ProductSpecificationsDialog.module.css +138 -0
  286. package/templates/components/orionplace/products/ProductSpecificationsDialog.tsx +117 -0
  287. package/templates/components/orionplace/products/StorefrontProduct.README.md +200 -0
  288. package/templates/components/orionplace/products/StorefrontProduct.module.css +767 -0
  289. package/templates/components/orionplace/products/StorefrontProduct.tsx +1339 -0
  290. package/templates/components/orionplace/products/StorefrontWishlist.README.md +162 -0
  291. package/templates/components/orionplace/products/StorefrontWishlist.module.css +71 -0
  292. package/templates/components/orionplace/products/StorefrontWishlist.tsx +402 -0
  293. package/templates/components/orionplace/promo/PromoProducts.README.md +133 -0
  294. package/templates/components/orionplace/promo/PromoProducts.module.css +68 -0
  295. package/templates/components/orionplace/promo/PromoProducts.tsx +345 -0
  296. package/templates/components/orionplace/search/MainSearch.README.md +73 -0
  297. package/templates/components/orionplace/search/MainSearch.module.css +202 -0
  298. package/templates/components/orionplace/search/MainSearch.tsx +217 -0
  299. package/templates/components/orionplace/search/ProductSearchResults.README.md +166 -0
  300. package/templates/components/orionplace/search/ProductSearchResults.module.css +358 -0
  301. package/templates/components/orionplace/search/ProductSearchResults.tsx +308 -0
  302. package/templates/components/orionplace/search/SearchFilters.README.md +109 -0
  303. package/templates/components/orionplace/search/SearchFilters.module.css +274 -0
  304. package/templates/components/orionplace/search/SearchFilters.tsx +439 -0
  305. package/templates/components/orionplace/sellers/SellerFilters.README.md +66 -0
  306. package/templates/components/orionplace/sellers/SellerFilters.module.css +232 -0
  307. package/templates/components/orionplace/sellers/SellerFilters.tsx +201 -0
  308. package/templates/components/orionplace/sellers/SellerPhotoGallery.README.md +72 -0
  309. package/templates/components/orionplace/sellers/SellerPhotoGallery.module.css +314 -0
  310. package/templates/components/orionplace/sellers/SellerPhotoGallery.tsx +335 -0
  311. package/templates/components/orionplace/sellers/SellerSummary.README.md +62 -0
  312. package/templates/components/orionplace/sellers/SellerSummary.module.css +182 -0
  313. package/templates/components/orionplace/sellers/SellerSummary.tsx +107 -0
  314. package/templates/components/orionplace/sellers/StorefrontSellers.README.md +120 -0
  315. package/templates/components/orionplace/sellers/StorefrontSellers.module.css +147 -0
  316. package/templates/components/orionplace/sellers/StorefrontSellers.tsx +360 -0
  317. package/templates/components/orionplace/shared/OrionplaceAvatar.README.md +35 -0
  318. package/templates/components/orionplace/shared/OrionplaceAvatar.module.css +35 -0
  319. package/templates/components/orionplace/shared/OrionplaceAvatar.tsx +61 -0
  320. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +33 -0
  321. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.module.css +81 -0
  322. package/templates/components/orionplace/shared/OrionplaceBreadcrumbs.tsx +91 -0
  323. package/templates/components/orionplace/shared/OrionplaceEmptyState.README.md +37 -0
  324. package/templates/components/orionplace/shared/OrionplaceEmptyState.module.css +126 -0
  325. package/templates/components/orionplace/shared/OrionplaceEmptyState.tsx +78 -0
  326. package/templates/components/orionplace/shared/OrionplaceImage.README.md +45 -0
  327. package/templates/components/orionplace/shared/OrionplaceImage.module.css +22 -0
  328. package/templates/components/orionplace/shared/OrionplaceImage.tsx +96 -0
  329. package/templates/components/orionplace/shared/OrionplaceInfoHint.README.md +31 -0
  330. package/templates/components/orionplace/shared/OrionplaceInfoHint.module.css +59 -0
  331. package/templates/components/orionplace/shared/OrionplaceInfoHint.tsx +126 -0
  332. package/templates/components/orionplace/shared/OrionplacePasswordInput.README.md +39 -0
  333. package/templates/components/orionplace/shared/OrionplacePasswordInput.module.css +79 -0
  334. package/templates/components/orionplace/shared/OrionplacePasswordInput.tsx +103 -0
  335. package/templates/components/orionplace/shared/OrionplaceSearchSelect.README.md +97 -0
  336. package/templates/components/orionplace/shared/OrionplaceSearchSelect.module.css +246 -0
  337. package/templates/components/orionplace/shared/OrionplaceSearchSelect.tsx +367 -0
  338. package/templates/components/orionplace/shared/OrionplaceSelect.README.md +69 -0
  339. package/templates/components/orionplace/shared/OrionplaceSelect.module.css +233 -0
  340. package/templates/components/orionplace/shared/OrionplaceSelect.tsx +439 -0
  341. package/templates/components/orionplace/shared/StorefrontErrorPage.README.md +52 -0
  342. package/templates/components/orionplace/shared/StorefrontErrorPage.module.css +141 -0
  343. package/templates/components/orionplace/shared/StorefrontErrorPage.tsx +103 -0
  344. package/templates/components/orionplace/shared/StorefrontPagination.README.md +39 -0
  345. package/templates/components/orionplace/shared/StorefrontPagination.module.css +69 -0
  346. package/templates/components/orionplace/shared/StorefrontPagination.tsx +102 -0
  347. package/templates/components/orionplace/shared/dialogs.css +36 -0
  348. package/templates/components/orionplace/shared/emptyStateArt.ts +231 -0
  349. package/templates/components/orionplace/shared/features.module.css +162 -0
  350. package/templates/components/orionplace/social/SocialLinks.README.md +16 -0
  351. package/templates/components/orionplace/social/SocialLinks.module.css +36 -0
  352. package/templates/components/orionplace/social/SocialLinks.tsx +59 -0
  353. package/templates/components/orionplace/storefront/StorefrontAccount.README.md +59 -0
  354. package/templates/components/orionplace/storefront/StorefrontAccount.module.css +159 -0
  355. package/templates/components/orionplace/storefront/StorefrontAccount.tsx +303 -0
  356. package/templates/components/orionplace/storefront/StorefrontCartButton.README.md +47 -0
  357. package/templates/components/orionplace/storefront/StorefrontCartButton.module.css +88 -0
  358. package/templates/components/orionplace/storefront/StorefrontCartButton.tsx +54 -0
  359. package/templates/components/orionplace/storefront/StorefrontFooter.README.md +55 -0
  360. package/templates/components/orionplace/storefront/StorefrontFooter.module.css +118 -0
  361. package/templates/components/orionplace/storefront/StorefrontFooter.tsx +165 -0
  362. package/templates/components/orionplace/storefront/StorefrontHeader.README.md +150 -0
  363. package/templates/components/orionplace/storefront/StorefrontHeader.module.css +186 -0
  364. package/templates/components/orionplace/storefront/StorefrontHeader.tsx +389 -0
  365. package/templates/components/orionplace/storefront/StorefrontHome.README.md +138 -0
  366. package/templates/components/orionplace/storefront/StorefrontHome.module.css +116 -0
  367. package/templates/components/orionplace/storefront/StorefrontHome.tsx +282 -0
  368. package/templates/components/orionplace/storefront/StorefrontWishlistButton.README.md +51 -0
  369. package/templates/components/orionplace/storefront/StorefrontWishlistButton.module.css +95 -0
  370. package/templates/components/orionplace/storefront/StorefrontWishlistButton.tsx +80 -0
  371. package/templates/components/orionplace/stores/StorefrontStores.README.md +87 -0
  372. package/templates/components/orionplace/stores/StorefrontStores.module.css +218 -0
  373. package/templates/components/orionplace/stores/StorefrontStores.tsx +396 -0
  374. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +183 -0
  375. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.module.css +347 -0
  376. package/templates/components/orionplace/subscriptions/StorefrontSubscriptions.tsx +884 -0
  377. package/templates/components/orionplace/subscriptions/StorefrontTariff.README.md +111 -0
  378. package/templates/components/orionplace/subscriptions/StorefrontTariff.module.css +311 -0
  379. package/templates/components/orionplace/subscriptions/StorefrontTariff.tsx +474 -0
  380. package/templates/components/orionplace/subscriptions/StorefrontTariffs.README.md +102 -0
  381. package/templates/components/orionplace/subscriptions/StorefrontTariffs.module.css +219 -0
  382. package/templates/components/orionplace/subscriptions/StorefrontTariffs.tsx +350 -0
  383. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +67 -0
  384. package/templates/components/orionplace/subscriptions/SubscriptionCancelDialog.tsx +175 -0
  385. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +95 -0
  386. package/templates/components/orionplace/subscriptions/SubscriptionChangeDialog.tsx +634 -0
  387. package/templates/components/orionplace/subscriptions/SubscriptionDialog.module.css +453 -0
  388. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +75 -0
  389. package/templates/components/orionplace/subscriptions/SubscriptionExtendDialog.tsx +384 -0
  390. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +116 -0
  391. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.module.css +168 -0
  392. package/templates/components/orionplace/subscriptions/SubscriptionPlanSummary.tsx +236 -0
  393. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +123 -0
  394. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.module.css +57 -0
  395. package/templates/components/orionplace/subscriptions/SubscriptionRemoteDetails.tsx +101 -0
  396. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +109 -0
  397. package/templates/components/orionplace/subscriptions/SubscriptionRenewalDialog.tsx +253 -0
  398. package/templates/components/orionplace/support/StorefrontSupport.README.md +157 -0
  399. package/templates/components/orionplace/support/StorefrontSupport.tsx +1040 -0
  400. package/templates/components/orionplace/support/Support.module.css +1133 -0
  401. package/templates/components/orionplace/support/TicketConversation.README.md +105 -0
  402. package/templates/components/orionplace/support/TicketConversation.tsx +502 -0
  403. package/templates/components/orionplace/support/TicketImage.README.md +52 -0
  404. package/templates/components/orionplace/support/TicketImage.tsx +254 -0
  405. package/templates/components/orionplace/support/TicketItemCard.README.md +66 -0
  406. package/templates/components/orionplace/support/TicketItemCard.tsx +140 -0
  407. package/templates/components/orionplace/support/TicketMessageForm.README.md +88 -0
  408. package/templates/components/orionplace/support/TicketMessageForm.tsx +261 -0
  409. package/templates/components/orionplace/support/TicketSubscriptionCard.README.md +53 -0
  410. package/templates/components/orionplace/support/TicketSubscriptionCard.tsx +118 -0
  411. package/templates/components/orionplace/tariffs/TariffCard.README.md +108 -0
  412. package/templates/components/orionplace/tariffs/TariffCard.module.css +86 -0
  413. package/templates/components/orionplace/tariffs/TariffCard.tsx +218 -0
  414. package/templates/components/orionplace/tariffs/TariffCardDescription.README.md +40 -0
  415. package/templates/components/orionplace/tariffs/TariffCardDescription.module.css +72 -0
  416. package/templates/components/orionplace/tariffs/TariffCardDescription.tsx +58 -0
  417. package/templates/components/orionplace/tariffs/TariffCardFeatures.README.md +58 -0
  418. package/templates/components/orionplace/tariffs/TariffCardFeatures.module.css +60 -0
  419. package/templates/components/orionplace/tariffs/TariffCardFeatures.tsx +140 -0
  420. package/templates/components/orionplace/tariffs/TariffCardImage.README.md +36 -0
  421. package/templates/components/orionplace/tariffs/TariffCardImage.module.css +8 -0
  422. package/templates/components/orionplace/tariffs/TariffCardImage.tsx +32 -0
  423. package/templates/components/orionplace/tariffs/TariffCardPrices.README.md +74 -0
  424. package/templates/components/orionplace/tariffs/TariffCardPrices.module.css +142 -0
  425. package/templates/components/orionplace/tariffs/TariffCardPrices.tsx +181 -0
  426. package/templates/components/orionplace/tariffs/TariffCardTitle.README.md +32 -0
  427. package/templates/components/orionplace/tariffs/TariffCardTitle.module.css +9 -0
  428. package/templates/components/orionplace/tariffs/TariffCardTitle.tsx +29 -0
  429. package/templates/components/orionplace/tariffs/TariffCards.README.md +88 -0
  430. package/templates/components/orionplace/tariffs/TariffCards.module.css +24 -0
  431. package/templates/components/orionplace/tariffs/TariffCards.tsx +44 -0
  432. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.README.md +92 -0
  433. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.module.css +214 -0
  434. package/templates/components/orionplace/tariffs/TariffSubscriptionModal.tsx +299 -0
  435. package/templates/components/orionplace/theme/OrionplaceThemeProvider.README.md +30 -0
  436. package/templates/components/orionplace/theme/OrionplaceThemeProvider.module.css +8 -0
  437. package/templates/components/orionplace/theme/OrionplaceThemeProvider.tsx +32 -0
  438. package/templates/components/orionplace/units/UnitSwitcher.README.md +35 -0
  439. package/templates/components/orionplace/units/UnitSwitcher.tsx +58 -0
  440. package/templates/components/orionplace/wallet/StorefrontWallet.README.md +154 -0
  441. package/templates/components/orionplace/wallet/StorefrontWallet.module.css +507 -0
  442. package/templates/components/orionplace/wallet/StorefrontWallet.tsx +915 -0
  443. package/templates/components/orionplace/wallet/WalletBalance.README.md +46 -0
  444. package/templates/components/orionplace/wallet/WalletBalance.module.css +46 -0
  445. package/templates/components/orionplace/wallet/WalletBalance.tsx +51 -0
  446. package/templates/components/orionplace/wallet/WalletTopUpForm.README.md +54 -0
  447. package/templates/components/orionplace/wallet/WalletTopUpForm.module.css +152 -0
  448. package/templates/components/orionplace/wallet/WalletTopUpForm.tsx +181 -0
  449. package/templates/hooks/useAccountActivity.ts +251 -0
  450. package/templates/hooks/useAccountAddresses.ts +81 -0
  451. package/templates/hooks/useAccountPromocodes.ts +91 -0
  452. package/templates/hooks/useOrionplaceActionMenu.ts +118 -0
  453. package/templates/hooks/useOrionplaceAddressForm.ts +262 -0
  454. package/templates/hooks/useOrionplaceApi.ts +98 -0
  455. package/templates/hooks/useOrionplaceAppLoad.ts +38 -6
  456. package/templates/hooks/useOrionplaceBlogReading.ts +351 -0
  457. package/templates/hooks/useOrionplaceDialog.ts +85 -0
  458. package/templates/hooks/useOrionplaceHomeProducts.ts +97 -0
  459. package/templates/hooks/useOrionplaceMap.tsx +230 -0
  460. package/templates/hooks/useOrionplaceMediaFormat.ts +33 -0
  461. package/templates/hooks/useOrionplaceProduct.ts +28 -0
  462. package/templates/hooks/useOrionplaceProfile.ts +347 -0
  463. package/templates/hooks/useOrionplaceReviews.ts +352 -0
  464. package/templates/hooks/useOrionplaceStableHeight.ts +65 -0
  465. package/templates/hooks/useOrionplaceStorefront.tsx +575 -0
  466. package/templates/hooks/useOrionplaceTariffPurchase.ts +152 -0
  467. package/templates/interfaces/orionplace/accounts/IContact.ts +21 -0
  468. package/templates/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +17 -0
  469. package/templates/interfaces/orionplace/accounts/IEmailVerification.ts +59 -0
  470. package/templates/interfaces/orionplace/accounts/IProfileActions.ts +38 -0
  471. package/templates/interfaces/orionplace/accounts/IProfileData.ts +123 -0
  472. package/templates/interfaces/orionplace/accounts/IProfileMedia.ts +17 -0
  473. package/templates/interfaces/orionplace/accounts/IStorefrontProfile.ts +54 -0
  474. package/templates/interfaces/orionplace/address/IAddressCitySuggestion.ts +19 -0
  475. package/templates/interfaces/orionplace/address/IAddressEditor.ts +9 -0
  476. package/templates/interfaces/orionplace/address/IAddressLocationSuggestion.ts +22 -0
  477. package/templates/interfaces/orionplace/address/IAddressRegionSearch.ts +30 -0
  478. package/templates/interfaces/orionplace/address/IAddressSuggestion.ts +20 -0
  479. package/templates/interfaces/orionplace/address/IUserAddress.ts +87 -0
  480. package/templates/interfaces/orionplace/appBase/IAppLoad.ts +4 -3
  481. package/templates/interfaces/orionplace/appBase/IAppLoadCommon.ts +22 -31
  482. package/templates/interfaces/orionplace/appBase/IApploadUserProfile.ts +1 -1
  483. package/templates/interfaces/orionplace/appBase/IForm.ts +1 -1
  484. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +7 -7
  485. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +2 -2
  486. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +20 -7
  487. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +2 -2
  488. package/templates/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +1 -0
  489. package/templates/interfaces/orionplace/blog/IBlogApi.ts +247 -0
  490. package/templates/interfaces/orionplace/blog/IBlogPostPreview.ts +30 -0
  491. package/templates/interfaces/orionplace/cart/ICartActions.ts +67 -0
  492. package/templates/interfaces/orionplace/cart/ICartData.ts +382 -0
  493. package/templates/interfaces/orionplace/cart/ICartDeliveryActions.ts +68 -0
  494. package/templates/interfaces/orionplace/cart/ICartModal.ts +22 -0
  495. package/templates/interfaces/orionplace/cart/IDeliveryMap.ts +29 -0
  496. package/templates/interfaces/orionplace/catalog/ICatalogDirectory.ts +75 -0
  497. package/templates/interfaces/orionplace/category/ICategory.ts +2 -1
  498. package/templates/interfaces/orionplace/domains/IDomain.ts +2 -2
  499. package/templates/interfaces/orionplace/forms/ICustomerSubfilter.ts +19 -0
  500. package/templates/interfaces/orionplace/index.ts +64 -30
  501. package/templates/interfaces/orionplace/marketing/IPromoActions.ts +51 -0
  502. package/templates/interfaces/orionplace/orders/IOrderActions.ts +99 -0
  503. package/templates/interfaces/orionplace/orders/IOrderHistory.ts +259 -0
  504. package/templates/interfaces/orionplace/orders/IProductPreorder.ts +31 -0
  505. package/templates/interfaces/orionplace/payments/IInvoice.ts +147 -0
  506. package/templates/interfaces/orionplace/products/IProduct.ts +178 -151
  507. package/templates/interfaces/orionplace/products/IProductFeedbackApi.ts +218 -0
  508. package/templates/interfaces/orionplace/products/IProductSearchApi.ts +146 -0
  509. package/templates/interfaces/orionplace/products/IProductSearchFacets.ts +35 -0
  510. package/templates/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +15 -0
  511. package/templates/interfaces/orionplace/products/IProductSpecification.ts +14 -0
  512. package/templates/interfaces/orionplace/products/IWishlist.ts +22 -0
  513. package/templates/interfaces/orionplace/sellers/ISellerDirectory.ts +70 -0
  514. package/templates/interfaces/orionplace/shared/IBreadcrumb.ts +10 -0
  515. package/templates/interfaces/orionplace/shared/IStorefrontControls.ts +6 -0
  516. package/templates/interfaces/orionplace/state.ts +1 -1
  517. package/templates/interfaces/orionplace/stores/IStoreDirectory.ts +63 -0
  518. package/templates/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +41 -31
  519. package/templates/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +11 -0
  520. package/templates/interfaces/orionplace/subscribes/ISubscribe.ts +1 -1
  521. package/templates/interfaces/orionplace/subscribes/ISubscriptionApi.ts +125 -0
  522. package/templates/interfaces/orionplace/tickets/ICustomerTicketApi.ts +223 -0
  523. package/templates/interfaces/orionplace/transport.ts +7 -3
  524. package/templates/lib/orionplace/accountLabels.ts +22 -0
  525. package/templates/lib/orionplace/activityLabels.ts +65 -0
  526. package/templates/lib/orionplace/activityPresentation.ts +9 -0
  527. package/templates/lib/orionplace/addressChanges.ts +26 -0
  528. package/templates/lib/orionplace/addressPresentation.ts +58 -0
  529. package/templates/lib/orionplace/api.ts +326 -0
  530. package/templates/lib/orionplace/appLoadClient.ts +63 -21
  531. package/templates/lib/orionplace/appLoadResult.ts +75 -21
  532. package/templates/lib/orionplace/appLoadServer.ts +66 -21
  533. package/templates/lib/orionplace/blogArticle.ts +97 -0
  534. package/templates/lib/orionplace/blogArticleHtml.ts +370 -0
  535. package/templates/lib/orionplace/blogComments.ts +102 -0
  536. package/templates/lib/orionplace/blogJournal.ts +115 -0
  537. package/templates/lib/orionplace/blogLabels.ts +108 -0
  538. package/templates/lib/orionplace/blogPresentation.ts +67 -0
  539. package/templates/lib/orionplace/browseLabels.ts +98 -0
  540. package/templates/lib/orionplace/cartAddress.ts +86 -0
  541. package/templates/lib/orionplace/cartController.ts +104 -0
  542. package/templates/lib/orionplace/cartLabels.ts +261 -0
  543. package/templates/lib/orionplace/cartOptions.ts +115 -0
  544. package/templates/lib/orionplace/cartPreview.ts +120 -0
  545. package/templates/lib/orionplace/cartPromo.ts +150 -0
  546. package/templates/lib/orionplace/cartShipment.ts +61 -0
  547. package/templates/lib/orionplace/cartSnapshot.ts +21 -0
  548. package/templates/lib/orionplace/catalog.ts +150 -0
  549. package/templates/lib/orionplace/categoryLabels.ts +21 -0
  550. package/templates/lib/orionplace/contact.ts +47 -0
  551. package/templates/lib/orionplace/contactLabels.ts +102 -0
  552. package/templates/lib/orionplace/currency.ts +128 -0
  553. package/templates/lib/orionplace/deliveryMap.ts +86 -0
  554. package/templates/lib/orionplace/directoryLabels.ts +133 -0
  555. package/templates/lib/orionplace/domain.ts +11 -6
  556. package/templates/lib/orionplace/errorPageLabels.ts +74 -0
  557. package/templates/lib/orionplace/eventEnrollment.ts +22 -0
  558. package/templates/lib/orionplace/featureData.ts +28 -0
  559. package/templates/lib/orionplace/featureLabels.ts +271 -0
  560. package/templates/lib/orionplace/featuredLabels.ts +28 -0
  561. package/templates/lib/orionplace/footerLabels.ts +35 -0
  562. package/templates/lib/orionplace/guestSession.ts +55 -0
  563. package/templates/lib/orionplace/headerLabels.ts +68 -0
  564. package/templates/lib/orionplace/homeContent.ts +193 -0
  565. package/templates/lib/orionplace/homeLabels.ts +52 -0
  566. package/templates/lib/orionplace/htmlText.ts +51 -0
  567. package/templates/lib/orionplace/manufacturerDirectory.ts +71 -0
  568. package/templates/lib/orionplace/manufacturerIndex.ts +92 -0
  569. package/templates/lib/orionplace/modalWindow.ts +109 -0
  570. package/templates/lib/orionplace/nativeApp.ts +365 -0
  571. package/templates/lib/orionplace/navigation.tsx +121 -0
  572. package/templates/lib/orionplace/notice.ts +22 -0
  573. package/templates/lib/orionplace/orderLabels.ts +311 -0
  574. package/templates/lib/orionplace/orderPresentation.ts +574 -0
  575. package/templates/lib/orionplace/pageMetadata.ts +247 -0
  576. package/templates/lib/orionplace/pageSeo.ts +274 -0
  577. package/templates/lib/orionplace/paginationScroll.ts +131 -0
  578. package/templates/lib/orionplace/phone.ts +22 -0
  579. package/templates/lib/orionplace/presentation.ts +84 -0
  580. package/templates/lib/orionplace/productActionLabels.ts +60 -0
  581. package/templates/lib/orionplace/productAvailability.ts +30 -0
  582. package/templates/lib/orionplace/productGallery.ts +64 -0
  583. package/templates/lib/orionplace/productLabels.ts +82 -0
  584. package/templates/lib/orionplace/productPage.ts +308 -0
  585. package/templates/lib/orionplace/productPhotos.ts +67 -0
  586. package/templates/lib/orionplace/productSearch.ts +232 -0
  587. package/templates/lib/orionplace/productSeller.ts +56 -0
  588. package/templates/lib/orionplace/profile.ts +157 -0
  589. package/templates/lib/orionplace/profileLabels.ts +151 -0
  590. package/templates/lib/orionplace/promoLabels.ts +75 -0
  591. package/templates/lib/orionplace/promoPresentation.ts +381 -0
  592. package/templates/lib/orionplace/reviewLabels.ts +172 -0
  593. package/templates/lib/orionplace/reviewPresentation.ts +64 -0
  594. package/templates/lib/orionplace/reviewScope.ts +38 -0
  595. package/templates/lib/orionplace/searchFilters.ts +99 -0
  596. package/templates/lib/orionplace/searchHistory.ts +144 -0
  597. package/templates/lib/orionplace/sellerDirectory.ts +120 -0
  598. package/templates/lib/orionplace/seo.ts +52 -0
  599. package/templates/lib/orionplace/serverApi.ts +158 -0
  600. package/templates/lib/orionplace/serverLocale.ts +29 -0
  601. package/templates/lib/orionplace/serverMetadata.ts +86 -0
  602. package/templates/lib/orionplace/serverRecords.ts +25 -0
  603. package/templates/lib/orionplace/serverRoute.tsx +51 -0
  604. package/templates/lib/orionplace/sessionLabels.ts +27 -0
  605. package/templates/lib/orionplace/signInReturn.ts +89 -0
  606. package/templates/lib/orionplace/storeDirectory.ts +47 -0
  607. package/templates/lib/orionplace/storefrontRecords.ts +29 -0
  608. package/templates/lib/orionplace/subscriptionChanges.ts +120 -0
  609. package/templates/lib/orionplace/subscriptionLabels.ts +67 -0
  610. package/templates/lib/orionplace/subscriptionManageLabels.ts +306 -0
  611. package/templates/lib/orionplace/subscriptionPlans.ts +122 -0
  612. package/templates/lib/orionplace/subscriptionRemote.ts +85 -0
  613. package/templates/lib/orionplace/subscriptionUsage.ts +58 -0
  614. package/templates/lib/orionplace/tariffLabels.ts +123 -0
  615. package/templates/lib/orionplace/tariffPage.ts +54 -0
  616. package/templates/lib/orionplace/tariffVariables.ts +136 -0
  617. package/templates/lib/orionplace/tariffs.ts +192 -0
  618. package/templates/lib/orionplace/ticketItems.ts +75 -0
  619. package/templates/lib/orionplace/ticketLabels.ts +335 -0
  620. package/templates/lib/orionplace/ticketLocation.ts +79 -0
  621. package/templates/lib/orionplace/ticketRequests.ts +70 -0
  622. package/templates/lib/orionplace/walletTransaction.ts +105 -0
  623. package/templates/orionplace/COMPONENT-DOWNLOAD.md +66 -0
  624. package/templates/orionplace/COMPONENTS.md +35 -0
  625. package/templates/providers/OrionplaceProvider.tsx +164 -12
  626. package/templates/proxy.ts +8 -3
  627. package/templates/stores/orionplace.ts +212 -49
  628. package/templates/stores/orionplaceBrowse.ts +89 -0
  629. package/templates/stores/orionplaceCatalog.ts +144 -0
  630. package/templates/stores/orionplaceProducts.ts +389 -0
  631. package/templates/stores/orionplaceScope.ts +104 -0
  632. package/templates/stores/orionplaceSelections.ts +130 -0
  633. package/templates/themes/orionplace.ts +106 -0
@@ -0,0 +1,384 @@
1
+ 'use client';
2
+
3
+ import '@/components/orionplace/shared/dialogs.css';
4
+
5
+ import {
6
+ useEffect,
7
+ useId,
8
+ useMemo,
9
+ useState,
10
+ type FormEvent,
11
+ type MouseEvent,
12
+ } from 'react';
13
+ import { useOrionplaceSelections } from '@/providers/OrionplaceProvider';
14
+ import { useOrionplaceDialog } from '@/hooks/useOrionplaceDialog';
15
+ import type {
16
+ ISubscribeTariff,
17
+ ISubscribeTariffOption,
18
+ } from '@/interfaces/orionplace/subscribeTariff/ISubscribeTariff';
19
+ import type {
20
+ ICustomerSubscription,
21
+ ISubscriptionRenewRequest,
22
+ } from '@/interfaces/orionplace/subscribes/ISubscriptionApi';
23
+ import { getAvailableNestedValueFromObject } from '@/lib/orionplace/presentation';
24
+ import {
25
+ subscriptionDays,
26
+ subscriptionManageLabels,
27
+ } from '@/lib/orionplace/subscriptionManageLabels';
28
+ import { subscriptionPeriodChoices } from '@/lib/orionplace/subscriptionPlans';
29
+ import { tariffMoney, tariffOptionAmount } from '@/lib/orionplace/tariffs';
30
+ import { OrionplaceSelect } from '@/components/orionplace/shared/OrionplaceSelect';
31
+ import { SubscriptionPlanSummary } from './SubscriptionPlanSummary';
32
+ import styles from './SubscriptionDialog.module.css';
33
+
34
+ export interface SubscriptionExtendDialogProps {
35
+ subscription?: ICustomerSubscription;
36
+ plan?: ISubscribeTariff;
37
+ option?: ISubscribeTariffOption;
38
+ pending?: boolean;
39
+ error?: string;
40
+ modal?: boolean;
41
+ balance?: number;
42
+ walletHref?: (locale: string) => string;
43
+ onSubmit?: (request: ISubscriptionRenewRequest) => void;
44
+ onClose?: () => void;
45
+ }
46
+
47
+ export function SubscriptionExtendDialog({
48
+ subscription,
49
+ plan,
50
+ option,
51
+ pending = false,
52
+ error = '',
53
+ modal = true,
54
+ balance: balanceOverride,
55
+ walletHref = (locale) => `/wallet?locale=${encodeURIComponent(locale)}`,
56
+ onSubmit,
57
+ onClose,
58
+ }: SubscriptionExtendDialogProps) {
59
+ const locale = useOrionplaceSelections((state) => state.localeCode);
60
+ const currencyId = useOrionplaceSelections((state) => state.currencyId);
61
+ const currency = useOrionplaceSelections(
62
+ (state) => state.init?.currencies[state.currencyId],
63
+ );
64
+ const storedBalance = useOrionplaceSelections(
65
+ (state) => state.init?.wallet?.[state.currencyId]?.transform_value,
66
+ );
67
+ const balance = balanceOverride ?? storedBalance;
68
+ const copy = subscriptionManageLabels(locale);
69
+ const id = useId();
70
+ const { dialog, initialFocus } = useOrionplaceDialog(subscription?.id, modal);
71
+ const choices = useMemo(
72
+ () =>
73
+ subscriptionPeriodChoices(plan, currencyId).map((choice) => ({
74
+ ...choice,
75
+ length: subscriptionDays(choice.days, locale),
76
+ price: tariffMoney(choice.amount, locale, currency),
77
+ })),
78
+ [plan, currencyId, locale, currency],
79
+ );
80
+ const choiceKey = choices.map((choice) => choice.id).join(',');
81
+ const initialPeriod =
82
+ choices.find(
83
+ (choice) => choice.days === subscription?.renew_period?.days,
84
+ ) ?? choices[0];
85
+ const [period, setPeriod] = useState<number | undefined>(initialPeriod?.id);
86
+ const [renewalChoice, setRenewalChoice] = useState(
87
+ initialPeriod && initialPeriod.days === subscription?.renew_period?.days
88
+ ? String(initialPeriod.id)
89
+ : '',
90
+ );
91
+ const [promo, setPromo] = useState('');
92
+ const [confirming, setConfirming] = useState(false);
93
+ const chosen = choices.find((choice) => choice.id === period);
94
+ const renewal = choices.find((choice) => String(choice.id) === renewalChoice);
95
+ const planName =
96
+ getAvailableNestedValueFromObject(plan?.locales, locale, 'tariff_name') ||
97
+ copy.manage;
98
+ const optionName =
99
+ getAvailableNestedValueFromObject(option?.locale, locale, 'option_name') ||
100
+ copy.optionPrice;
101
+ const optionAmount =
102
+ option && chosen
103
+ ? tariffOptionAmount(option, chosen.periodId, currencyId)
104
+ : undefined;
105
+ const visibleOptionAmount =
106
+ typeof optionAmount === 'number' && optionAmount > 0
107
+ ? optionAmount
108
+ : undefined;
109
+ const low =
110
+ chosen?.amount !== undefined &&
111
+ balance !== undefined &&
112
+ chosen.amount > balance;
113
+ const renewalOptions: Record<string, string> = {
114
+ '': copy.renewalOff,
115
+ ...Object.fromEntries(
116
+ choices.map((choice) => [
117
+ String(choice.id),
118
+ `${choice.length} · ${choice.price}`,
119
+ ]),
120
+ ),
121
+ };
122
+ const renewalNote = renewal
123
+ ? copy.renewalEffectOn
124
+ .replace('{price}', renewal.price)
125
+ .replace('{days}', renewal.length)
126
+ : copy.renewalEffectOff;
127
+ const after = copy.extendAfter.replace('{period}', chosen?.length || '—');
128
+
129
+ useEffect(() => {
130
+ const matching = choices.find(
131
+ (choice) => choice.days === subscription?.renew_period?.days,
132
+ );
133
+ setPeriod((matching ?? choices[0])?.id);
134
+ setRenewalChoice(matching ? String(matching.id) : '');
135
+ setPromo('');
136
+ setConfirming(false);
137
+ }, [subscription?.id, choiceKey]);
138
+
139
+ function money(amount: number | undefined) {
140
+ return tariffMoney(amount, locale, currency);
141
+ }
142
+
143
+ function close() {
144
+ if (!pending) {
145
+ onClose?.();
146
+ }
147
+ }
148
+
149
+ function back() {
150
+ if (confirming) {
151
+ setConfirming(false);
152
+ } else {
153
+ close();
154
+ }
155
+ }
156
+
157
+ function submit(event: FormEvent<HTMLFormElement>) {
158
+ event.preventDefault();
159
+ if (pending || !subscription || !chosen) {
160
+ return;
161
+ }
162
+ if (!confirming) {
163
+ setConfirming(true);
164
+ return;
165
+ }
166
+ onSubmit?.({
167
+ paid_subscription: subscription.id,
168
+ period_to_add: chosen.id,
169
+ ...(renewal ? { renew_period: renewal.id } : {}),
170
+ ...(promo.trim() ? { attach_issue: promo.trim() } : {}),
171
+ });
172
+ }
173
+
174
+ function backdrop(event: MouseEvent<HTMLDialogElement>) {
175
+ const bounds = dialog.current?.getBoundingClientRect();
176
+ if (
177
+ modal &&
178
+ event.target === dialog.current &&
179
+ bounds &&
180
+ (event.clientX < bounds.left ||
181
+ event.clientX > bounds.right ||
182
+ event.clientY < bounds.top ||
183
+ event.clientY > bounds.bottom)
184
+ ) {
185
+ close();
186
+ }
187
+ }
188
+
189
+ if (!subscription) {
190
+ return null;
191
+ }
192
+
193
+ return (
194
+ <dialog
195
+ data-stable-modal="wide"
196
+ ref={dialog}
197
+ className={`${styles.dialog} ${styles.wide} ${modal ? '' : styles.inline}`.trim()}
198
+ aria-labelledby={`${id}-title`}
199
+ aria-describedby={`${id}-summary`}
200
+ aria-busy={pending}
201
+ data-feature-part="SubscriptionExtendDialog"
202
+ data-subscription-extend-dialog
203
+ onCancel={(event) => {
204
+ event.preventDefault();
205
+ close();
206
+ }}
207
+ onKeyDown={(event) => {
208
+ // Escape belongs to this window, not to the page behind it.
209
+ if (event.key === 'Escape') {
210
+ event.stopPropagation();
211
+ }
212
+ }}
213
+ onClick={backdrop}
214
+ >
215
+ <form
216
+ className={styles.form}
217
+ onSubmit={submit}
218
+ >
219
+ <header className={styles.header}>
220
+ <div>
221
+ <p className={styles.eyebrow}>{planName}</p>
222
+ <h2
223
+ id={`${id}-title`}
224
+ className={styles.title}
225
+ >
226
+ {copy.extendTitle}
227
+ </h2>
228
+ </div>
229
+ <button
230
+ ref={initialFocus}
231
+ type="button"
232
+ className={styles.close}
233
+ disabled={pending}
234
+ aria-label={copy.close}
235
+ onClick={close}
236
+ >
237
+ ×
238
+ </button>
239
+ </header>
240
+ <div className={styles.columns}>
241
+ <div className={styles.controls}>
242
+ <p
243
+ id={`${id}-summary`}
244
+ className={styles.description}
245
+ >
246
+ {copy.extendSummary}
247
+ </p>
248
+ {!confirming && choices.length > 1 ? (
249
+ <fieldset
250
+ className={styles.fieldset}
251
+ data-subscription-extend-periods
252
+ >
253
+ <legend>{copy.period}</legend>
254
+ {choices.map((choice) => (
255
+ <label
256
+ key={choice.id}
257
+ className={styles.choice}
258
+ >
259
+ <span>
260
+ <input
261
+ type="radio"
262
+ name="period_to_add"
263
+ value={choice.id}
264
+ checked={period === choice.id}
265
+ disabled={pending}
266
+ onChange={() => setPeriod(choice.id)}
267
+ />
268
+ <span>{choice.length}</span>
269
+ </span>
270
+ <span>{choice.price}</span>
271
+ </label>
272
+ ))}
273
+ </fieldset>
274
+ ) : null}
275
+ {!confirming ? (
276
+ <label className={styles.label}>
277
+ <span>{copy.promo}</span>
278
+ <input
279
+ name="attach_issue"
280
+ maxLength={20}
281
+ autoComplete="off"
282
+ placeholder={copy.promoHint}
283
+ value={promo}
284
+ disabled={pending}
285
+ onChange={(event) => setPromo(event.currentTarget.value)}
286
+ />
287
+ </label>
288
+ ) : null}
289
+ {!confirming ? (
290
+ <div className={styles.selectField}>
291
+ <OrionplaceSelect
292
+ value={renewalChoice}
293
+ options={renewalOptions}
294
+ label={copy.renewalSettings}
295
+ disabled={pending}
296
+ onValueChange={setRenewalChoice}
297
+ />
298
+ <span className={styles.renewalNote}>{renewalNote}</span>
299
+ </div>
300
+ ) : null}
301
+ </div>
302
+ <aside
303
+ className={styles.summaryColumn}
304
+ data-subscription-extend-plan
305
+ >
306
+ <SubscriptionPlanSummary
307
+ plan={plan}
308
+ className={styles.planBox}
309
+ />
310
+ <dl className={styles.summary}>
311
+ <div>
312
+ <dt>{copy.period}</dt>
313
+ <dd>{chosen?.length || '—'}</dd>
314
+ </div>
315
+ <div>
316
+ <dt>{copy.planPrice}</dt>
317
+ <dd>{chosen?.price || '—'}</dd>
318
+ </div>
319
+ {visibleOptionAmount !== undefined ? (
320
+ <div>
321
+ <dt>{optionName}</dt>
322
+ <dd>{money(visibleOptionAmount)}</dd>
323
+ </div>
324
+ ) : null}
325
+ <div className={styles.total}>
326
+ <dt>{copy.balance}</dt>
327
+ <dd>{money(balance)}</dd>
328
+ </div>
329
+ </dl>
330
+ </aside>
331
+ </div>
332
+ {confirming ? (
333
+ <p
334
+ className={styles.notice}
335
+ role="status"
336
+ >
337
+ {after}
338
+ </p>
339
+ ) : null}
340
+ {low ? (
341
+ <>
342
+ <p className={styles.attention}>{copy.insufficient}</p>
343
+ <a
344
+ className={styles.wallet}
345
+ href={walletHref(locale)}
346
+ >
347
+ {copy.topUp}
348
+ </a>
349
+ </>
350
+ ) : null}
351
+ {error ? (
352
+ <p
353
+ role="alert"
354
+ className={styles.error}
355
+ >
356
+ {error}
357
+ </p>
358
+ ) : null}
359
+ <div className={styles.actions}>
360
+ <button
361
+ type="button"
362
+ className={styles.secondary}
363
+ disabled={pending}
364
+ onClick={back}
365
+ >
366
+ {confirming ? copy.cancel : copy.close}
367
+ </button>
368
+ <button
369
+ type="submit"
370
+ className={styles.primary}
371
+ disabled={pending || !chosen}
372
+ >
373
+ {pending ? <span className={styles.spinner} aria-hidden="true" /> : null}
374
+ {pending
375
+ ? copy.extendPending
376
+ : confirming
377
+ ? copy.extendSubmit
378
+ : copy.extendConfirm}
379
+ </button>
380
+ </div>
381
+ </form>
382
+ </dialog>
383
+ );
384
+ }
@@ -0,0 +1,116 @@
1
+ # SubscriptionPlanSummary · React
2
+
3
+ ## English
4
+
5
+ `SubscriptionPlanSummary` combines the selected plan with usage reported for
6
+ one customer subscription. `plan` supplies the first small image, localized
7
+ plain-text short description, module flags and numeric limits. Image space is
8
+ reserved at 48 by 48. Known limits use their maintained units, and zero storage
9
+ or API-request limits read as unlimited.
10
+
11
+ When `subscription` is supplied, numeric values from
12
+ `plugin.remote_subscription_tariff_usages` are matched to the plan field named
13
+ `max_` plus the usage key. For example, `files_size` uses
14
+ `max_files_size`. A positive limit shows a bounded meter and changes tone near
15
+ and at the limit. Without a positive limit, the used amount remains visible
16
+ without a meter. Credential-shaped keys and nonnumeric values are omitted. A
17
+ limit represented by a usage row is not repeated in the feature list.
18
+
19
+ The component emits nothing and makes no request. It renders nothing when the
20
+ plan has no visible identity or features and the service reported no usable
21
+ usage. Source is maintained in
22
+ `components/orionplace/subscriptions/SubscriptionPlanSummary.tsx`.
23
+
24
+ ### Props
25
+
26
+ | Prop | Meaning |
27
+ | -------------------------------------- | ------------------------------------------------------------- |
28
+ | `plan?: ISubscribeTariff` | Tariff plan associated with the current card or subscription. |
29
+ | `subscription?: ICustomerSubscription` | Customer subscription displayed or changed by the component. |
30
+ | `className?: string` | Additional CSS class for the component root. |
31
+
32
+ ## Русский
33
+
34
+ `SubscriptionPlanSummary` объединяет выбранный тариф и использование одной
35
+ подписки покупателя. `plan` задаёт первое малое изображение, локализованное
36
+ краткое описание обычным текстом, флаги модулей и числовые ограничения. Для
37
+ изображения заранее выделяется область 48 на 48. Известные ограничения
38
+ показываются с поддерживаемыми единицами, а нулевой лимит хранилища или
39
+ API-запросов означает отсутствие ограничения.
40
+
41
+ При наличии `subscription` числовые значения из
42
+ `plugin.remote_subscription_tariff_usages` сопоставляются с полем тарифа,
43
+ названным `max_` плюс ключ использования. Например, `files_size` использует
44
+ `max_files_size`. Положительный лимит выводится ограниченным индикатором,
45
+ который меняет цвет рядом с пределом и на пределе. Без положительного лимита
46
+ видна использованная величина без индикатора. Ключи, похожие на учётные данные,
47
+ и нечисловые значения скрываются. Лимит с отдельной строкой использования не
48
+ повторяется в списке возможностей.
49
+
50
+ Компонент не отправляет события и запросы. Если у тарифа нет видимого
51
+ изображения, описания или возможностей и сервис не передал подходящие данные
52
+ использования, компонент ничего не выводит. Исходный файл:
53
+ `components/orionplace/subscriptions/SubscriptionPlanSummary.tsx`.
54
+
55
+ ### Свойства
56
+
57
+ | Свойство | Назначение |
58
+ | -------------------------------------- | --------------------------------------------------------------- |
59
+ | `plan?: ISubscribeTariff` | Тарифный план текущей карточки или подписки. |
60
+ | `subscription?: ICustomerSubscription` | Подписка покупателя, которую показывает или изменяет компонент. |
61
+ | `className?: string` | Дополнительный CSS-класс корневого элемента. |
62
+ ## Response fields and application actions
63
+
64
+ The following tables describe the response and the supplied composition’s follow-up actions. The framework-specific props and events above identify which work belongs to the component and which belongs to its parent.
65
+
66
+ ### English
67
+
68
+ ### Usage values and their limits
69
+
70
+ `subscription.plugin.remote_subscription_tariff_usages` — Service-reported usage from `subscriptions_get`. The component matches each numeric key to max_ plus that key in plan.tariff_variables_json; it does not measure usage in the browser.
71
+
72
+ | Field or condition | Meaning and application action |
73
+ | --- | --- |
74
+ | `files_size` → `max_files_size` | Storage in MB. Whole multiples of 1024 MB are displayed in GB. A zero limit means unlimited storage; zero usage still means 0 MB. |
75
+ | `api_requests` → `max_api_requests` | Request count for the calendar month. The monthly counter starts again next month. A zero limit means unlimited requests. |
76
+ | `front_hosts` → `max_front_hosts` | Number of connected storefront domains. A zero limit is displayed as zero. |
77
+ | `sellers` → `max_sellers` | Seller account count. A zero limit means unlimited sellers. |
78
+ | Missing or nonnumeric limit | Display the reported usage without a limit or progress bar. Other service-defined keys retain their key as the label; their meaning and unit depend on that service. |
79
+ | Nonnumeric usage | Strings, booleans, arrays, nested objects and nonfinite numbers do not become usage meters. Credential/storage-location keys are omitted. |
80
+ | Positive numeric limit | The bar shows usage divided by the limit, bounded between empty and full. The displayed usage retains the reported number even above the limit; zero limits have no bar. |
81
+
82
+ ### Optional inputs and plan settings
83
+
84
+ | Field or condition | Meaning and application action |
85
+ | --- | --- |
86
+ | Only `plan` | Show the plan description, image and supported parameters; there are no service usage readings. |
87
+ | Only `subscription` | Show eligible usage values without plan limits. With neither plan details nor eligible usage, the block is hidden. |
88
+ | `sales_module`, `blog_module`, `qr_module` | Boolean plan capabilities for sales, blog and QR stock labelling. The built-in parameter reference is on `subscriptions_guest_search`. |
89
+ | A parameter already shown beside usage | Its limit is omitted from the separate plan parameter list so it appears once. |
90
+
91
+ ### Русский
92
+
93
+ ### Показатели использования и пределы
94
+
95
+ `subscription.plugin.remote_subscription_tariff_usages` — Показатели сервиса из `subscriptions_get`. Каждому числовому ключу компонент сопоставляет max_ плюс этот ключ в plan.tariff_variables_json; браузер сам использование не измеряет.
96
+
97
+ | Поле или условие | Значение и действие приложения |
98
+ | --- | --- |
99
+ | `files_size` → `max_files_size` | Хранилище в МБ. Целые кратные 1024 МБ выводятся в ГБ. Нулевой предел означает отсутствие ограничения; нулевое использование остаётся 0 МБ. |
100
+ | `api_requests` → `max_api_requests` | Число запросов за календарный месяц. В следующем месяце счётчик начинается заново. Нулевой предел означает отсутствие ограничения. |
101
+ | `front_hosts` → `max_front_hosts` | Количество подключённых доменов магазина. Нулевой предел выводится как ноль. |
102
+ | `sellers` → `max_sellers` | Количество аккаунтов продавцов. Нулевой предел означает отсутствие ограничения. |
103
+ | Предел отсутствует или не является числом | Выводится использование без предела и шкалы. Другие ключи сервиса сохраняют своё имя в подписи; их смысл и единицы определяет этот сервис. |
104
+ | Использование не является числом | Строки, логические значения, массивы, вложенные объекты и неконечные числа не становятся показателями. Ключи учётных данных и расположения хранилищ пропускаются. |
105
+ | Положительный числовой предел | Шкала показывает отношение использования к пределу от пустой до полной. Само число сохраняется и при превышении предела; для нулевого предела шкалы нет. |
106
+
107
+ ### Необязательные данные и параметры тарифа
108
+
109
+ | Поле или условие | Значение и действие приложения |
110
+ | --- | --- |
111
+ | Только `plan` | Выводятся описание, изображение и поддерживаемые параметры тарифа; показателей использования сервиса нет. |
112
+ | Только `subscription` | Выводятся подходящие показатели без пределов тарифа. Если нет ни данных тарифа, ни подходящих показателей, блок скрывается. |
113
+ | `sales_module`, `blog_module`, `qr_module` | Логические признаки модулей продаж, блога и QR-маркировки остатков. Справочник встроенных параметров находится в `subscriptions_guest_search`. |
114
+ | Параметр уже показан рядом с использованием | Его предел исключается из отдельного списка параметров тарифа, чтобы выводиться один раз. |
115
+
116
+ [English guide](https://orionmarket.place/en/sandbox/components/react/subscription-plan) · [Русский](https://orionmarket.place/ru/sandbox/components/react/subscription-plan)
@@ -0,0 +1,168 @@
1
+ .root {
2
+ display: grid;
3
+ min-width: 0;
4
+ gap: 1.5rem;
5
+ color: var(--orionplace-text);
6
+ font-family: inherit;
7
+ font-size: 0.875rem;
8
+ line-height: calc(1.25 / 0.875);
9
+ }
10
+
11
+ .block {
12
+ display: grid;
13
+ min-width: 0;
14
+ align-content: start;
15
+ gap: 1rem;
16
+ }
17
+
18
+ .block h4 {
19
+ display: flex;
20
+ align-items: center;
21
+ gap: 0.5rem;
22
+ margin: 0;
23
+ color: var(--orionplace-muted);
24
+ font-size: 0.875rem;
25
+ font-weight: 400;
26
+ line-height: 1.25rem;
27
+ }
28
+
29
+ .block h4 svg,
30
+ .meterHeading svg {
31
+ width: 1rem;
32
+ height: 1rem;
33
+ flex: 0 0 auto;
34
+ }
35
+
36
+ .identity {
37
+ display: flex;
38
+ min-width: 0;
39
+ align-items: start;
40
+ gap: 0.75rem;
41
+ }
42
+
43
+ .identity img,
44
+ .identity [data-image-placeholder] {
45
+ box-sizing: border-box;
46
+ width: 3rem;
47
+ height: 3rem;
48
+ flex: 0 0 auto;
49
+ border: 1px solid var(--orionplace-border);
50
+ object-fit: contain;
51
+ }
52
+
53
+ .identity p {
54
+ min-width: 0;
55
+ margin: 0;
56
+ color: var(--orionplace-muted);
57
+ line-height: 1.5rem;
58
+ }
59
+
60
+ .block ul {
61
+ display: grid;
62
+ gap: 0.5rem;
63
+ margin: 0;
64
+ padding: 0;
65
+ list-style: none;
66
+ }
67
+
68
+ .block li {
69
+ display: flex;
70
+ min-width: 0;
71
+ align-items: start;
72
+ gap: 0.5rem;
73
+ line-height: 1.25rem;
74
+ }
75
+
76
+ .block li[data-included='false'] {
77
+ color: var(--orionplace-muted);
78
+ }
79
+
80
+ .block li > svg {
81
+ width: 1rem;
82
+ height: 1rem;
83
+ flex-shrink: 0;
84
+ margin-top: .125rem;
85
+ }
86
+
87
+ /* A hint sits 4px after its label, as in the other packages. */
88
+ .block li > span > [data-feature-part='OrionplaceInfoHint'],
89
+ .meterHeading [data-feature-part='OrionplaceInfoHint'] {
90
+ margin-left: 0.25rem;
91
+ }
92
+
93
+ .meter {
94
+ display: grid;
95
+ min-width: 0;
96
+ gap: 0.5rem;
97
+ }
98
+
99
+ .meterHeading,
100
+ .meterHeading > span:first-child {
101
+ display: flex;
102
+ min-width: 0;
103
+ align-items: center;
104
+ gap: 0.5rem;
105
+ }
106
+
107
+ .meterHeading {
108
+ justify-content: space-between;
109
+ gap: 0.75rem;
110
+ }
111
+
112
+ .meterHeading svg {
113
+ color: var(--orionplace-muted);
114
+ }
115
+
116
+ .meterHeading > span:last-child {
117
+ flex: 0 0 auto;
118
+ font-variant-numeric: tabular-nums;
119
+ }
120
+
121
+ .track {
122
+ width: 100%;
123
+ height: 0.375rem;
124
+ overflow: hidden;
125
+ background: var(--orionplace-muted-surface);
126
+ }
127
+
128
+ .track > span {
129
+ display: block;
130
+ height: 100%;
131
+ background: var(--orionplace-accent);
132
+ }
133
+
134
+ .track > span[data-tone='attention'] {
135
+ background: var(--orionplace-attention);
136
+ }
137
+
138
+ .track > span[data-tone='danger'] {
139
+ background: var(--orionplace-danger);
140
+ }
141
+
142
+ .screenReaderOnly {
143
+ position: absolute;
144
+ width: 1px;
145
+ height: 1px;
146
+ overflow: hidden;
147
+ clip-path: inset(50%);
148
+ white-space: nowrap;
149
+ }
150
+
151
+ /*
152
+ * The subscriptions page's own width, as in the other packages: the plan's
153
+ * features in two columns from 592px, the plan beside its usage from 720px
154
+ * (the page's width on a 768px screen).
155
+ */
156
+ @container (min-width: 592px) {
157
+ .featureColumns {
158
+ grid-template-columns: repeat(2, minmax(0, 1fr));
159
+ column-gap: 2rem;
160
+ }
161
+ }
162
+
163
+ @container (min-width: 720px) {
164
+ .split {
165
+ grid-template-columns: repeat(2, minmax(0, 1fr));
166
+ gap: 2rem;
167
+ }
168
+ }