orionplace-svelte 0.1.0 → 0.2.1

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 (556) hide show
  1. package/README.md +334 -19
  2. package/bin/orionplace-svelte.mjs +4 -1
  3. package/package.json +19 -6
  4. package/runtime/app.d.mts +10 -0
  5. package/runtime/app.mjs +94 -0
  6. package/runtime/marketplace.d.mts +13 -8
  7. package/runtime/marketplace.mjs +287 -211
  8. package/src/project-readme.mjs +74 -18
  9. package/src/setup.mjs +17 -11
  10. package/templates/.vscode/settings.json +5 -0
  11. package/templates/orionplace/COMPONENT-DOWNLOAD.md +3 -0
  12. package/templates/orionplace/COMPONENTS.md +170 -0
  13. package/templates/src/app.d.ts +15 -7
  14. package/templates/src/app.html +15 -9
  15. package/templates/src/hooks.server.ts +27 -1
  16. package/templates/src/lib/assets/css/orionplace-tokens.css +21 -0
  17. package/templates/src/lib/assets/css/orionplace.css +28 -0
  18. package/templates/src/lib/components/orionplace/account/AccountActivity.README.md +10 -0
  19. package/templates/src/lib/components/orionplace/account/AccountActivity.svelte +75 -0
  20. package/templates/src/lib/components/orionplace/account/AccountPromocodes.README.md +14 -0
  21. package/templates/src/lib/components/orionplace/account/AccountPromocodes.svelte +296 -0
  22. package/templates/src/lib/components/orionplace/account/AccountSection.README.md +15 -0
  23. package/templates/src/lib/components/orionplace/account/AccountSection.svelte +163 -0
  24. package/templates/src/lib/components/orionplace/account/ProfileAvatar.README.md +24 -0
  25. package/templates/src/lib/components/orionplace/account/ProfileAvatar.svelte +168 -0
  26. package/templates/src/lib/components/orionplace/account/ProfileDeleteAccount.README.md +25 -0
  27. package/templates/src/lib/components/orionplace/account/ProfileDeleteAccount.svelte +201 -0
  28. package/templates/src/lib/components/orionplace/account/ProfileDetailsForm.README.md +23 -0
  29. package/templates/src/lib/components/orionplace/account/ProfileDetailsForm.svelte +213 -0
  30. package/templates/src/lib/components/orionplace/account/ProfileEmailSettings.README.md +24 -0
  31. package/templates/src/lib/components/orionplace/account/ProfileEmailSettings.svelte +297 -0
  32. package/templates/src/lib/components/orionplace/account/ProfilePasswordForm.README.md +24 -0
  33. package/templates/src/lib/components/orionplace/account/ProfilePasswordForm.svelte +238 -0
  34. package/templates/src/lib/components/orionplace/account/ProfileSignIn.README.md +29 -0
  35. package/templates/src/lib/components/orionplace/account/ProfileSignIn.svelte +511 -0
  36. package/templates/src/lib/components/orionplace/account/SignInHistory.README.md +10 -0
  37. package/templates/src/lib/components/orionplace/account/SignInHistory.svelte +238 -0
  38. package/templates/src/lib/components/orionplace/account/StorefrontLogout.README.md +26 -0
  39. package/templates/src/lib/components/orionplace/account/StorefrontLogout.svelte +157 -0
  40. package/templates/src/lib/components/orionplace/account/StorefrontProfile.README.md +25 -0
  41. package/templates/src/lib/components/orionplace/account/StorefrontProfile.svelte +219 -0
  42. package/templates/src/lib/components/orionplace/account/account.css +1047 -0
  43. package/templates/src/lib/components/orionplace/account/profile.css +697 -0
  44. package/templates/src/lib/components/orionplace/address/AddressForm.README.md +26 -0
  45. package/templates/src/lib/components/orionplace/address/AddressForm.svelte +620 -0
  46. package/templates/src/lib/components/orionplace/address/StorefrontAddresses.README.md +13 -0
  47. package/templates/src/lib/components/orionplace/address/StorefrontAddresses.svelte +488 -0
  48. package/templates/src/lib/components/orionplace/banners/MainBanner.README.md +22 -0
  49. package/templates/src/lib/components/orionplace/banners/MainBanner.svelte +196 -0
  50. package/templates/src/lib/components/orionplace/blog/BlogArticle.README.md +41 -0
  51. package/templates/src/lib/components/orionplace/blog/BlogArticle.svelte +934 -0
  52. package/templates/src/lib/components/orionplace/blog/BlogCommentForm.README.md +28 -0
  53. package/templates/src/lib/components/orionplace/blog/BlogCommentForm.svelte +181 -0
  54. package/templates/src/lib/components/orionplace/blog/BlogComments.README.md +14 -0
  55. package/templates/src/lib/components/orionplace/blog/BlogComments.svelte +416 -0
  56. package/templates/src/lib/components/orionplace/blog/BlogPostCard.README.md +20 -0
  57. package/templates/src/lib/components/orionplace/blog/BlogPostCard.svelte +347 -0
  58. package/templates/src/lib/components/orionplace/blog/BlogPostGroup.README.md +23 -0
  59. package/templates/src/lib/components/orionplace/blog/BlogPostGroup.svelte +138 -0
  60. package/templates/src/lib/components/orionplace/blog/StorefrontJournal.README.md +30 -0
  61. package/templates/src/lib/components/orionplace/blog/StorefrontJournal.svelte +719 -0
  62. package/templates/src/lib/components/orionplace/branding/BrandLogos.README.md +13 -0
  63. package/templates/src/lib/components/orionplace/branding/BrandLogos.svelte +38 -0
  64. package/templates/src/lib/components/orionplace/cart/CartCheckoutDetails.README.md +12 -0
  65. package/templates/src/lib/components/orionplace/cart/CartCheckoutDetails.svelte +404 -0
  66. package/templates/src/lib/components/orionplace/cart/CartDeliverySelector.README.md +70 -0
  67. package/templates/src/lib/components/orionplace/cart/CartDeliverySelector.svelte +772 -0
  68. package/templates/src/lib/components/orionplace/cart/CartItemOptions.README.md +74 -0
  69. package/templates/src/lib/components/orionplace/cart/CartItemOptions.svelte +725 -0
  70. package/templates/src/lib/components/orionplace/cart/CartLineItem.README.md +54 -0
  71. package/templates/src/lib/components/orionplace/cart/CartLineItem.svelte +304 -0
  72. package/templates/src/lib/components/orionplace/cart/CartPreview.README.md +36 -0
  73. package/templates/src/lib/components/orionplace/cart/CartPreview.svelte +318 -0
  74. package/templates/src/lib/components/orionplace/cart/DeliveryMap.README.md +26 -0
  75. package/templates/src/lib/components/orionplace/cart/DeliveryMap.svelte +184 -0
  76. package/templates/src/lib/components/orionplace/cart/StorefrontCart.README.md +37 -0
  77. package/templates/src/lib/components/orionplace/cart/StorefrontCart.svelte +759 -0
  78. package/templates/src/lib/components/orionplace/catalog/CatalogHeader.README.md +49 -0
  79. package/templates/src/lib/components/orionplace/catalog/CatalogHeader.svelte +853 -0
  80. package/templates/src/lib/components/orionplace/catalog/CatalogRepresentative.README.md +37 -0
  81. package/templates/src/lib/components/orionplace/catalog/CatalogRepresentative.svelte +135 -0
  82. package/templates/src/lib/components/orionplace/catalog/StorefrontCatalog.README.md +23 -0
  83. package/templates/src/lib/components/orionplace/catalog/StorefrontCatalog.svelte +198 -0
  84. package/templates/src/lib/components/orionplace/categories/CategoryGroup.README.md +25 -0
  85. package/templates/src/lib/components/orionplace/categories/CategoryGroup.svelte +149 -0
  86. package/templates/src/lib/components/orionplace/categories/StorefrontCategory.README.md +53 -0
  87. package/templates/src/lib/components/orionplace/categories/StorefrontCategory.svelte +448 -0
  88. package/templates/src/lib/components/orionplace/contact/AboutPage.README.md +11 -0
  89. package/templates/src/lib/components/orionplace/contact/AboutPage.svelte +422 -0
  90. package/templates/src/lib/components/orionplace/contact/ContactForm.README.md +14 -0
  91. package/templates/src/lib/components/orionplace/contact/ContactForm.svelte +326 -0
  92. package/templates/src/lib/components/orionplace/contact/EmailUnsubscribe.README.md +17 -0
  93. package/templates/src/lib/components/orionplace/contact/EmailUnsubscribe.svelte +117 -0
  94. package/templates/src/lib/components/orionplace/contact/StorefrontContact.README.md +10 -0
  95. package/templates/src/lib/components/orionplace/contact/StorefrontContact.svelte +92 -0
  96. package/templates/src/lib/components/orionplace/currencies/MainCurrencySwitcher.README.md +20 -0
  97. package/templates/src/lib/components/orionplace/currencies/MainCurrencySwitcher.svelte +87 -0
  98. package/templates/src/lib/components/orionplace/events/EventEnrollmentDialog.README.md +24 -0
  99. package/templates/src/lib/components/orionplace/events/EventEnrollmentDialog.svelte +340 -0
  100. package/templates/src/lib/components/orionplace/events/EventsBlock.README.md +21 -0
  101. package/templates/src/lib/components/orionplace/events/EventsBlock.svelte +171 -0
  102. package/templates/src/lib/components/orionplace/locale/MainLanguageSwitcher.README.md +20 -0
  103. package/templates/src/lib/components/orionplace/locale/MainLanguageSwitcher.svelte +543 -0
  104. package/templates/src/lib/components/orionplace/manufacturers/ManufacturerIndex.README.md +30 -0
  105. package/templates/src/lib/components/orionplace/manufacturers/ManufacturerIndex.svelte +546 -0
  106. package/templates/src/lib/components/orionplace/manufacturers/StorefrontManufacturers.README.md +21 -0
  107. package/templates/src/lib/components/orionplace/manufacturers/StorefrontManufacturers.svelte +296 -0
  108. package/templates/src/lib/components/orionplace/orders/OrderDetails.README.md +25 -0
  109. package/templates/src/lib/components/orionplace/orders/OrderDetails.svelte +1329 -0
  110. package/templates/src/lib/components/orionplace/orders/OrderPaymentForm.README.md +54 -0
  111. package/templates/src/lib/components/orionplace/orders/OrderPaymentForm.svelte +111 -0
  112. package/templates/src/lib/components/orionplace/orders/StorefrontOrders.README.md +16 -0
  113. package/templates/src/lib/components/orionplace/orders/StorefrontOrders.svelte +970 -0
  114. package/templates/src/lib/components/orionplace/orders/orders.css +612 -0
  115. package/templates/src/lib/components/orionplace/payments/PaymentPanel.README.md +70 -0
  116. package/templates/src/lib/components/orionplace/payments/PaymentPanel.svelte +140 -0
  117. package/templates/src/lib/components/orionplace/products/HoverImageViewer.README.md +21 -0
  118. package/templates/src/lib/components/orionplace/products/HoverImageViewer.svelte +232 -0
  119. package/templates/src/lib/components/orionplace/products/ProductCard.README.md +49 -0
  120. package/templates/src/lib/components/orionplace/products/ProductCard.svelte +1080 -0
  121. package/templates/src/lib/components/orionplace/products/ProductCardActions.README.md +29 -0
  122. package/templates/src/lib/components/orionplace/products/ProductCardActions.svelte +474 -0
  123. package/templates/src/lib/components/orionplace/products/ProductCardBadges.README.md +17 -0
  124. package/templates/src/lib/components/orionplace/products/ProductCardBadges.svelte +106 -0
  125. package/templates/src/lib/components/orionplace/products/ProductCardDescription.README.md +13 -0
  126. package/templates/src/lib/components/orionplace/products/ProductCardDescription.svelte +55 -0
  127. package/templates/src/lib/components/orionplace/products/ProductCardFavorite.README.md +23 -0
  128. package/templates/src/lib/components/orionplace/products/ProductCardFavorite.svelte +130 -0
  129. package/templates/src/lib/components/orionplace/products/ProductCardPrice.README.md +13 -0
  130. package/templates/src/lib/components/orionplace/products/ProductCardPrice.svelte +85 -0
  131. package/templates/src/lib/components/orionplace/products/ProductCardRating.README.md +14 -0
  132. package/templates/src/lib/components/orionplace/products/ProductCardRating.svelte +84 -0
  133. package/templates/src/lib/components/orionplace/products/ProductCardSeller.README.md +20 -0
  134. package/templates/src/lib/components/orionplace/products/ProductCardSeller.svelte +94 -0
  135. package/templates/src/lib/components/orionplace/products/ProductCardStockNotice.README.md +15 -0
  136. package/templates/src/lib/components/orionplace/products/ProductCardStockNotice.svelte +63 -0
  137. package/templates/src/lib/components/orionplace/products/ProductCardTitle.README.md +13 -0
  138. package/templates/src/lib/components/orionplace/products/ProductCardTitle.svelte +57 -0
  139. package/templates/src/lib/components/orionplace/products/ProductCardVariants.README.md +29 -0
  140. package/templates/src/lib/components/orionplace/products/ProductCardVariants.svelte +484 -0
  141. package/templates/src/lib/components/orionplace/products/ProductGroup.README.md +36 -0
  142. package/templates/src/lib/components/orionplace/products/ProductGroup.svelte +332 -0
  143. package/templates/src/lib/components/orionplace/products/ProductPreorderDialog.README.md +37 -0
  144. package/templates/src/lib/components/orionplace/products/ProductPreorderDialog.svelte +507 -0
  145. package/templates/src/lib/components/orionplace/products/ProductReviewForm.README.md +40 -0
  146. package/templates/src/lib/components/orionplace/products/ProductReviewForm.svelte +369 -0
  147. package/templates/src/lib/components/orionplace/products/ProductReviewGallery.README.md +25 -0
  148. package/templates/src/lib/components/orionplace/products/ProductReviewGallery.svelte +177 -0
  149. package/templates/src/lib/components/orionplace/products/ProductReviewImageViewer.README.md +26 -0
  150. package/templates/src/lib/components/orionplace/products/ProductReviewImageViewer.svelte +396 -0
  151. package/templates/src/lib/components/orionplace/products/ProductReviews.README.md +16 -0
  152. package/templates/src/lib/components/orionplace/products/ProductReviews.svelte +1140 -0
  153. package/templates/src/lib/components/orionplace/products/ProductSecondaryVariantModal.README.md +40 -0
  154. package/templates/src/lib/components/orionplace/products/ProductSecondaryVariantModal.svelte +535 -0
  155. package/templates/src/lib/components/orionplace/products/ProductSpecificationsDialog.README.md +22 -0
  156. package/templates/src/lib/components/orionplace/products/ProductSpecificationsDialog.svelte +205 -0
  157. package/templates/src/lib/components/orionplace/products/StorefrontProduct.README.md +27 -0
  158. package/templates/src/lib/components/orionplace/products/StorefrontProduct.svelte +1802 -0
  159. package/templates/src/lib/components/orionplace/products/StorefrontWishlist.README.md +40 -0
  160. package/templates/src/lib/components/orionplace/products/StorefrontWishlist.svelte +379 -0
  161. package/templates/src/lib/components/orionplace/promo/PromoProducts.README.md +42 -0
  162. package/templates/src/lib/components/orionplace/promo/PromoProducts.svelte +378 -0
  163. package/templates/src/lib/components/orionplace/search/MainSearch.README.md +28 -0
  164. package/templates/src/lib/components/orionplace/search/MainSearch.svelte +307 -0
  165. package/templates/src/lib/components/orionplace/search/ProductSearchResults.README.md +52 -0
  166. package/templates/src/lib/components/orionplace/search/ProductSearchResults.svelte +628 -0
  167. package/templates/src/lib/components/orionplace/search/SearchFilters.README.md +23 -0
  168. package/templates/src/lib/components/orionplace/search/SearchFilters.svelte +649 -0
  169. package/templates/src/lib/components/orionplace/sellers/SellerFilters.README.md +19 -0
  170. package/templates/src/lib/components/orionplace/sellers/SellerFilters.svelte +360 -0
  171. package/templates/src/lib/components/orionplace/sellers/SellerPhotoGallery.README.md +21 -0
  172. package/templates/src/lib/components/orionplace/sellers/SellerPhotoGallery.svelte +442 -0
  173. package/templates/src/lib/components/orionplace/sellers/SellerSummary.README.md +20 -0
  174. package/templates/src/lib/components/orionplace/sellers/SellerSummary.svelte +203 -0
  175. package/templates/src/lib/components/orionplace/sellers/StorefrontSellers.README.md +26 -0
  176. package/templates/src/lib/components/orionplace/sellers/StorefrontSellers.svelte +343 -0
  177. package/templates/src/lib/components/orionplace/shared/OrionplaceAvatar.README.md +18 -0
  178. package/templates/src/lib/components/orionplace/shared/OrionplaceAvatar.svelte +99 -0
  179. package/templates/src/lib/components/orionplace/shared/OrionplaceBreadcrumbs.README.md +19 -0
  180. package/templates/src/lib/components/orionplace/shared/OrionplaceBreadcrumbs.svelte +129 -0
  181. package/templates/src/lib/components/orionplace/shared/OrionplaceEmptyState.README.md +21 -0
  182. package/templates/src/lib/components/orionplace/shared/OrionplaceEmptyState.svelte +167 -0
  183. package/templates/src/lib/components/orionplace/shared/OrionplaceImage.README.md +18 -0
  184. package/templates/src/lib/components/orionplace/shared/OrionplaceImage.svelte +123 -0
  185. package/templates/src/lib/components/orionplace/shared/OrionplaceInfoHint.README.md +17 -0
  186. package/templates/src/lib/components/orionplace/shared/OrionplaceInfoHint.svelte +176 -0
  187. package/templates/src/lib/components/orionplace/shared/OrionplacePasswordInput.README.md +20 -0
  188. package/templates/src/lib/components/orionplace/shared/OrionplacePasswordInput.svelte +225 -0
  189. package/templates/src/lib/components/orionplace/shared/OrionplaceSearchSelect.README.md +37 -0
  190. package/templates/src/lib/components/orionplace/shared/OrionplaceSearchSelect.svelte +510 -0
  191. package/templates/src/lib/components/orionplace/shared/OrionplaceSelect.README.md +33 -0
  192. package/templates/src/lib/components/orionplace/shared/OrionplaceSelect.svelte +609 -0
  193. package/templates/src/lib/components/orionplace/shared/StorefrontErrorPage.README.md +49 -0
  194. package/templates/src/lib/components/orionplace/shared/StorefrontErrorPage.svelte +186 -0
  195. package/templates/src/lib/components/orionplace/shared/StorefrontPagination.README.md +26 -0
  196. package/templates/src/lib/components/orionplace/shared/StorefrontPagination.svelte +136 -0
  197. package/templates/src/lib/components/orionplace/shared/dialogs.css +36 -0
  198. package/templates/src/lib/components/orionplace/shared/features.css +364 -0
  199. package/templates/src/lib/components/orionplace/social/SocialLinks.README.md +9 -0
  200. package/templates/src/lib/components/orionplace/social/SocialLinks.svelte +79 -0
  201. package/templates/src/lib/components/orionplace/storefront/StorefrontAccount.README.md +21 -0
  202. package/templates/src/lib/components/orionplace/storefront/StorefrontAccount.svelte +354 -0
  203. package/templates/src/lib/components/orionplace/storefront/StorefrontCartButton.README.md +20 -0
  204. package/templates/src/lib/components/orionplace/storefront/StorefrontCartButton.svelte +98 -0
  205. package/templates/src/lib/components/orionplace/storefront/StorefrontFooter.README.md +29 -0
  206. package/templates/src/lib/components/orionplace/storefront/StorefrontFooter.svelte +258 -0
  207. package/templates/src/lib/components/orionplace/storefront/StorefrontHeader.README.md +52 -0
  208. package/templates/src/lib/components/orionplace/storefront/StorefrontHeader.svelte +699 -0
  209. package/templates/src/lib/components/orionplace/storefront/StorefrontHome.README.md +43 -0
  210. package/templates/src/lib/components/orionplace/storefront/StorefrontHome.svelte +423 -0
  211. package/templates/src/lib/components/orionplace/storefront/StorefrontWishlistButton.README.md +21 -0
  212. package/templates/src/lib/components/orionplace/storefront/StorefrontWishlistButton.svelte +131 -0
  213. package/templates/src/lib/components/orionplace/stores/StorefrontStores.README.md +27 -0
  214. package/templates/src/lib/components/orionplace/stores/StorefrontStores.svelte +402 -0
  215. package/templates/src/lib/components/orionplace/subscriptions/StorefrontSubscriptions.README.md +65 -0
  216. package/templates/src/lib/components/orionplace/subscriptions/StorefrontSubscriptions.svelte +890 -0
  217. package/templates/src/lib/components/orionplace/subscriptions/StorefrontTariff.README.md +26 -0
  218. package/templates/src/lib/components/orionplace/subscriptions/StorefrontTariff.svelte +596 -0
  219. package/templates/src/lib/components/orionplace/subscriptions/StorefrontTariffs.README.md +15 -0
  220. package/templates/src/lib/components/orionplace/subscriptions/StorefrontTariffs.svelte +448 -0
  221. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionCancelDialog.README.md +30 -0
  222. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionCancelDialog.svelte +341 -0
  223. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionChangeDialog.README.md +36 -0
  224. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionChangeDialog.svelte +961 -0
  225. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionExtendDialog.README.md +30 -0
  226. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionExtendDialog.svelte +620 -0
  227. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionPlanSummary.README.md +73 -0
  228. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionPlanSummary.svelte +321 -0
  229. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionRemoteDetails.README.md +80 -0
  230. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionRemoteDetails.svelte +162 -0
  231. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionRenewalDialog.README.md +71 -0
  232. package/templates/src/lib/components/orionplace/subscriptions/SubscriptionRenewalDialog.svelte +431 -0
  233. package/templates/src/lib/components/orionplace/support/StorefrontSupport.README.md +27 -0
  234. package/templates/src/lib/components/orionplace/support/StorefrontSupport.svelte +544 -0
  235. package/templates/src/lib/components/orionplace/support/TicketConversation.README.md +33 -0
  236. package/templates/src/lib/components/orionplace/support/TicketConversation.svelte +644 -0
  237. package/templates/src/lib/components/orionplace/support/TicketImage.README.md +16 -0
  238. package/templates/src/lib/components/orionplace/support/TicketImage.svelte +203 -0
  239. package/templates/src/lib/components/orionplace/support/TicketItemCard.README.md +23 -0
  240. package/templates/src/lib/components/orionplace/support/TicketItemCard.svelte +218 -0
  241. package/templates/src/lib/components/orionplace/support/TicketMessageForm.README.md +38 -0
  242. package/templates/src/lib/components/orionplace/support/TicketMessageForm.svelte +311 -0
  243. package/templates/src/lib/components/orionplace/support/TicketSubscriptionCard.README.md +18 -0
  244. package/templates/src/lib/components/orionplace/support/TicketSubscriptionCard.svelte +183 -0
  245. package/templates/src/lib/components/orionplace/tariffs/TariffCard.README.md +28 -0
  246. package/templates/src/lib/components/orionplace/tariffs/TariffCard.svelte +321 -0
  247. package/templates/src/lib/components/orionplace/tariffs/TariffCardDescription.README.md +12 -0
  248. package/templates/src/lib/components/orionplace/tariffs/TariffCardDescription.svelte +106 -0
  249. package/templates/src/lib/components/orionplace/tariffs/TariffCardFeatures.README.md +14 -0
  250. package/templates/src/lib/components/orionplace/tariffs/TariffCardFeatures.svelte +203 -0
  251. package/templates/src/lib/components/orionplace/tariffs/TariffCardImage.README.md +12 -0
  252. package/templates/src/lib/components/orionplace/tariffs/TariffCardImage.svelte +44 -0
  253. package/templates/src/lib/components/orionplace/tariffs/TariffCardPrices.README.md +23 -0
  254. package/templates/src/lib/components/orionplace/tariffs/TariffCardPrices.svelte +329 -0
  255. package/templates/src/lib/components/orionplace/tariffs/TariffCardTitle.README.md +12 -0
  256. package/templates/src/lib/components/orionplace/tariffs/TariffCardTitle.svelte +44 -0
  257. package/templates/src/lib/components/orionplace/tariffs/TariffCards.README.md +29 -0
  258. package/templates/src/lib/components/orionplace/tariffs/TariffCards.svelte +132 -0
  259. package/templates/src/lib/components/orionplace/tariffs/TariffSubscriptionModal.README.md +31 -0
  260. package/templates/src/lib/components/orionplace/tariffs/TariffSubscriptionModal.svelte +499 -0
  261. package/templates/src/lib/components/orionplace/theme/OrionplaceThemeProvider.README.md +15 -0
  262. package/templates/src/lib/components/orionplace/theme/OrionplaceThemeProvider.svelte +60 -0
  263. package/templates/src/lib/components/orionplace/units/UnitSwitcher.README.md +20 -0
  264. package/templates/src/lib/components/orionplace/units/UnitSwitcher.svelte +90 -0
  265. package/templates/src/lib/components/orionplace/wallet/StorefrontWallet.README.md +70 -0
  266. package/templates/src/lib/components/orionplace/wallet/StorefrontWallet.svelte +901 -0
  267. package/templates/src/lib/components/orionplace/wallet/WalletBalance.README.md +13 -0
  268. package/templates/src/lib/components/orionplace/wallet/WalletBalance.svelte +68 -0
  269. package/templates/src/lib/components/orionplace/wallet/WalletTopUpForm.README.md +26 -0
  270. package/templates/src/lib/components/orionplace/wallet/WalletTopUpForm.svelte +259 -0
  271. package/templates/src/lib/composables/useOrionplaceActionMenu.svelte.ts +131 -0
  272. package/templates/src/lib/composables/useOrionplaceAddressEditor.svelte.ts +348 -0
  273. package/templates/src/lib/composables/useOrionplaceAddresses.svelte.ts +75 -0
  274. package/templates/src/lib/composables/useOrionplaceApi.svelte.ts +111 -0
  275. package/templates/src/lib/composables/useOrionplaceAppLoad.svelte.ts +20 -0
  276. package/templates/src/lib/composables/useOrionplaceBlogComments.svelte.ts +331 -0
  277. package/templates/src/lib/composables/useOrionplaceBlogReading.svelte.ts +276 -0
  278. package/templates/src/lib/composables/useOrionplaceCart.svelte.ts +233 -0
  279. package/templates/src/lib/composables/useOrionplaceCartPreview.svelte.ts +146 -0
  280. package/templates/src/lib/composables/useOrionplaceCategoryLink.svelte.ts +24 -0
  281. package/templates/src/lib/composables/useOrionplaceCategoryProducts.svelte.ts +16 -0
  282. package/templates/src/lib/composables/useOrionplaceFeature.svelte.ts +105 -0
  283. package/templates/src/lib/composables/useOrionplaceFeaturedProducts.svelte.ts +14 -0
  284. package/templates/src/lib/composables/useOrionplaceGeolocation.svelte.ts +28 -0
  285. package/templates/src/lib/composables/useOrionplaceHomeProducts.svelte.ts +95 -0
  286. package/templates/src/lib/composables/useOrionplaceManufacturerIndex.svelte.ts +83 -0
  287. package/templates/src/lib/composables/useOrionplaceMap.svelte.ts +238 -0
  288. package/templates/src/lib/composables/useOrionplaceMediaFormat.svelte.ts +28 -0
  289. package/templates/src/lib/composables/useOrionplaceMissingPage.svelte.ts +67 -0
  290. package/templates/src/lib/composables/useOrionplaceOrders.svelte.ts +190 -0
  291. package/templates/src/lib/composables/useOrionplacePageSeo.svelte.ts +38 -0
  292. package/templates/src/lib/composables/useOrionplaceProductActions.svelte.ts +116 -0
  293. package/templates/src/lib/composables/useOrionplaceProductLink.svelte.ts +24 -0
  294. package/templates/src/lib/composables/useOrionplaceProductSearch.svelte.ts +266 -0
  295. package/templates/src/lib/composables/useOrionplaceProductVariants.svelte.ts +176 -0
  296. package/templates/src/lib/composables/useOrionplaceProfile.svelte.ts +313 -0
  297. package/templates/src/lib/composables/useOrionplaceProgress.svelte.ts +37 -0
  298. package/templates/src/lib/composables/useOrionplaceReviews.svelte.ts +242 -0
  299. package/templates/src/lib/composables/useOrionplaceSearchHistory.svelte.ts +27 -0
  300. package/templates/src/lib/composables/useOrionplaceSearchScopeNames.svelte.ts +103 -0
  301. package/templates/src/lib/composables/useOrionplaceServerData.svelte.ts +13 -0
  302. package/templates/src/lib/composables/useOrionplaceSignIn.svelte.ts +69 -0
  303. package/templates/src/lib/composables/useOrionplaceStableHeight.svelte.ts +74 -0
  304. package/templates/src/lib/composables/useOrionplaceStorefront.svelte.ts +29 -0
  305. package/templates/src/lib/composables/useOrionplaceSubscriptions.svelte.ts +222 -0
  306. package/templates/src/lib/composables/useOrionplaceTheme.svelte.ts +27 -0
  307. package/templates/src/lib/composables/useOrionplaceTicketSubject.svelte.ts +186 -0
  308. package/templates/src/lib/composables/useOrionplaceTickets.svelte.ts +340 -0
  309. package/templates/src/lib/composables/useOrionplaceWallet.svelte.ts +166 -0
  310. package/templates/src/lib/interfaces/orionplace/accounts/IContact.ts +21 -0
  311. package/templates/src/lib/interfaces/orionplace/accounts/IEmailNotificationLocale.ts +17 -0
  312. package/templates/src/lib/interfaces/orionplace/accounts/IEmailVerification.ts +59 -0
  313. package/templates/src/lib/interfaces/orionplace/accounts/IProfileActions.ts +38 -0
  314. package/templates/src/lib/interfaces/orionplace/accounts/IProfileData.ts +123 -0
  315. package/templates/src/lib/interfaces/orionplace/accounts/IProfileMedia.ts +17 -0
  316. package/templates/src/lib/interfaces/orionplace/accounts/IStorefrontProfile.ts +54 -0
  317. package/templates/src/lib/interfaces/orionplace/address/IAddressCitySuggestion.ts +19 -0
  318. package/templates/src/lib/interfaces/orionplace/address/IAddressEditor.ts +9 -0
  319. package/templates/src/lib/interfaces/orionplace/address/IAddressLocationSuggestion.ts +22 -0
  320. package/templates/src/lib/interfaces/orionplace/address/IAddressRegionSearch.ts +30 -0
  321. package/templates/src/lib/interfaces/orionplace/address/IAddressSuggestion.ts +20 -0
  322. package/templates/src/lib/interfaces/orionplace/address/IUserAddress.ts +90 -0
  323. package/templates/src/lib/interfaces/orionplace/apiBase/TMethod.ts +1 -1
  324. package/templates/src/lib/interfaces/orionplace/appBase/IAppLoad.ts +13 -12
  325. package/templates/src/lib/interfaces/orionplace/appBase/IAppLoadCommon.ts +42 -38
  326. package/templates/src/lib/interfaces/orionplace/appBase/IApploadUserProfile.ts +11 -11
  327. package/templates/src/lib/interfaces/orionplace/appBase/IForm.ts +1 -1
  328. package/templates/src/lib/interfaces/orionplace/appBase/ISEO.ts +10 -10
  329. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonBanner.ts +7 -7
  330. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonContact.ts +6 -6
  331. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonCurrency.ts +10 -10
  332. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonEvents.ts +14 -14
  333. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLocale.ts +9 -9
  334. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonLogos.ts +4 -4
  335. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonPath.ts +13 -13
  336. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSEO.ts +20 -7
  337. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonSocial.ts +10 -10
  338. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonTariff.ts +4 -4
  339. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonUnit.ts +7 -7
  340. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVariables.ts +6 -5
  341. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonVisualSettings.ts +9 -9
  342. package/templates/src/lib/interfaces/orionplace/appBase/appLoadCommon/IAppLoadCommonWalletValue.ts +1 -1
  343. package/templates/src/lib/interfaces/orionplace/blog/IBlogApi.ts +247 -0
  344. package/templates/src/lib/interfaces/orionplace/blog/IBlogPostPreview.ts +30 -0
  345. package/templates/src/lib/interfaces/orionplace/cart/ICartActions.ts +67 -0
  346. package/templates/src/lib/interfaces/orionplace/cart/ICartData.ts +391 -0
  347. package/templates/src/lib/interfaces/orionplace/cart/ICartDeliveryActions.ts +68 -0
  348. package/templates/src/lib/interfaces/orionplace/cart/ICartModal.ts +22 -0
  349. package/templates/src/lib/interfaces/orionplace/cart/IDeliveryMap.ts +29 -0
  350. package/templates/src/lib/interfaces/orionplace/catalog/ICatalogDirectory.ts +78 -0
  351. package/templates/src/lib/interfaces/orionplace/category/ICategory.ts +38 -34
  352. package/templates/src/lib/interfaces/orionplace/domains/IDomain.ts +7 -7
  353. package/templates/src/lib/interfaces/orionplace/forms/ICustomerSubfilter.ts +19 -0
  354. package/templates/src/lib/interfaces/orionplace/index.ts +57 -30
  355. package/templates/src/lib/interfaces/orionplace/marketing/IPromoActions.ts +51 -0
  356. package/templates/src/lib/interfaces/orionplace/orders/IOrderActions.ts +99 -0
  357. package/templates/src/lib/interfaces/orionplace/orders/IOrderHistory.ts +260 -0
  358. package/templates/src/lib/interfaces/orionplace/orders/IProductPreorder.ts +31 -0
  359. package/templates/src/lib/interfaces/orionplace/payments/IInvoice.ts +147 -0
  360. package/templates/src/lib/interfaces/orionplace/products/IProduct.ts +178 -151
  361. package/templates/src/lib/interfaces/orionplace/products/IProductFeedbackApi.ts +218 -0
  362. package/templates/src/lib/interfaces/orionplace/products/IProductSearchApi.ts +149 -0
  363. package/templates/src/lib/interfaces/orionplace/products/IProductSearchFacets.ts +35 -0
  364. package/templates/src/lib/interfaces/orionplace/products/IProductSecondaryVariantRequest.ts +15 -0
  365. package/templates/src/lib/interfaces/orionplace/products/IProductSpecification.ts +14 -0
  366. package/templates/src/lib/interfaces/orionplace/products/IWishlist.ts +22 -0
  367. package/templates/src/lib/interfaces/orionplace/sellers/ISellerDirectory.ts +70 -0
  368. package/templates/src/lib/interfaces/orionplace/shared/IBreadcrumb.ts +10 -0
  369. package/templates/src/lib/interfaces/orionplace/shared/IGeoCoordinates.ts +2 -2
  370. package/templates/src/lib/interfaces/orionplace/shared/IStorefrontControls.ts +13 -0
  371. package/templates/src/lib/interfaces/orionplace/shared/ITransformValue.ts +1 -1
  372. package/templates/src/lib/interfaces/orionplace/state.ts +1 -1
  373. package/templates/src/lib/interfaces/orionplace/stores/IStoreDirectory.ts +66 -0
  374. package/templates/src/lib/interfaces/orionplace/subscribeOptions/ISubscribeOption.ts +4 -4
  375. package/templates/src/lib/interfaces/orionplace/subscribeTariff/ISubscribeTariff.ts +41 -31
  376. package/templates/src/lib/interfaces/orionplace/subscribeTariff/ITariffSelection.ts +11 -0
  377. package/templates/src/lib/interfaces/orionplace/subscribes/ISubscribe.ts +14 -14
  378. package/templates/src/lib/interfaces/orionplace/subscribes/ISubscriptionApi.ts +123 -0
  379. package/templates/src/lib/interfaces/orionplace/tickets/ICustomerTicketApi.ts +226 -0
  380. package/templates/src/lib/interfaces/orionplace/transport.ts +7 -3
  381. package/templates/src/lib/layouts/StorefrontLayout.svelte +379 -0
  382. package/templates/src/lib/layouts/StorefrontPageHead.svelte +25 -0
  383. package/templates/src/lib/layouts/StorefrontPageState.svelte +16 -0
  384. package/templates/src/lib/layouts/StorefrontUnavailable.svelte +28 -0
  385. package/templates/src/lib/orionplace/appLoadClient.ts +63 -21
  386. package/templates/src/lib/orionplace/appLoadData.ts +24 -9
  387. package/templates/src/lib/orionplace/appLoadResult.ts +73 -19
  388. package/templates/src/lib/orionplace/appLoadServer.ts +97 -39
  389. package/templates/src/lib/orionplace/appRoutes.ts +77 -0
  390. package/templates/src/lib/orionplace/appSession.ts +19 -0
  391. package/templates/src/lib/orionplace/domain.ts +1 -1
  392. package/templates/src/lib/orionplace/navigation.svelte.ts +188 -0
  393. package/templates/src/lib/orionplace/pageLoad.ts +161 -0
  394. package/templates/src/lib/orionplace/pageServer.ts +14 -0
  395. package/templates/src/lib/orionplace/pageState.ts +37 -0
  396. package/templates/src/lib/orionplace/productSeller.ts +28 -0
  397. package/templates/src/lib/orionplace/reactivity.svelte.ts +255 -0
  398. package/templates/src/lib/orionplace/scope.svelte.ts +53 -0
  399. package/templates/src/lib/orionplace/serverApi.ts +81 -0
  400. package/templates/src/lib/orionplace/store.svelte.ts +349 -95
  401. package/templates/src/lib/stores/orionplace.svelte.ts +434 -0
  402. package/templates/src/lib/stores/orionplaceBrowse.svelte.ts +81 -0
  403. package/templates/src/lib/stores/orionplaceCatalog.svelte.ts +124 -0
  404. package/templates/src/lib/stores/orionplaceDomainAccess.svelte.ts +56 -0
  405. package/templates/src/lib/stores/orionplaceProducts.svelte.ts +254 -0
  406. package/templates/src/lib/stores/orionplaceSelections.svelte.ts +139 -0
  407. package/templates/src/lib/themes/orionplace.ts +108 -0
  408. package/templates/src/lib/utils/orionplace/accountLabels.ts +22 -0
  409. package/templates/src/lib/utils/orionplace/activityLabels.ts +65 -0
  410. package/templates/src/lib/utils/orionplace/activityPresentation.ts +10 -0
  411. package/templates/src/lib/utils/orionplace/addressChanges.ts +26 -0
  412. package/templates/src/lib/utils/orionplace/addressRegions.ts +17 -0
  413. package/templates/src/lib/utils/orionplace/api.ts +333 -0
  414. package/templates/src/lib/utils/orionplace/blogArticleHtml.ts +398 -0
  415. package/templates/src/lib/utils/orionplace/blogComments.ts +132 -0
  416. package/templates/src/lib/utils/orionplace/blogLabels.ts +111 -0
  417. package/templates/src/lib/utils/orionplace/blogLayout.ts +95 -0
  418. package/templates/src/lib/utils/orionplace/breadcrumbLabels.ts +11 -0
  419. package/templates/src/lib/utils/orionplace/browseLabels.ts +98 -0
  420. package/templates/src/lib/utils/orionplace/cartAddress.ts +95 -0
  421. package/templates/src/lib/utils/orionplace/cartLabels.ts +261 -0
  422. package/templates/src/lib/utils/orionplace/cartOptions.ts +144 -0
  423. package/templates/src/lib/utils/orionplace/cartPreview.ts +108 -0
  424. package/templates/src/lib/utils/orionplace/cartPromo.ts +150 -0
  425. package/templates/src/lib/utils/orionplace/cartShipment.ts +72 -0
  426. package/templates/src/lib/utils/orionplace/cartSnapshot.ts +20 -0
  427. package/templates/src/lib/utils/orionplace/catalog.ts +106 -0
  428. package/templates/src/lib/utils/orionplace/category.ts +52 -0
  429. package/templates/src/lib/utils/orionplace/categoryLabels.ts +31 -0
  430. package/templates/src/lib/utils/orionplace/contactLabels.ts +102 -0
  431. package/templates/src/lib/utils/orionplace/currency.ts +128 -0
  432. package/templates/src/lib/utils/orionplace/deliveryMap.ts +89 -0
  433. package/templates/src/lib/utils/orionplace/directoryLabels.ts +131 -0
  434. package/templates/src/lib/utils/orionplace/emptyStateArt.ts +194 -0
  435. package/templates/src/lib/utils/orionplace/errorPageLabels.ts +83 -0
  436. package/templates/src/lib/utils/orionplace/featureData.ts +25 -0
  437. package/templates/src/lib/utils/orionplace/featureLabels.ts +271 -0
  438. package/templates/src/lib/utils/orionplace/featuredLabels.ts +28 -0
  439. package/templates/src/lib/utils/orionplace/files.ts +71 -0
  440. package/templates/src/lib/utils/orionplace/footerLabels.ts +35 -0
  441. package/templates/src/lib/utils/orionplace/guestSession.ts +55 -0
  442. package/templates/src/lib/utils/orionplace/headerLabels.ts +68 -0
  443. package/templates/src/lib/utils/orionplace/homeContent.ts +127 -0
  444. package/templates/src/lib/utils/orionplace/homeLabels.ts +52 -0
  445. package/templates/src/lib/utils/orionplace/htmlText.ts +59 -0
  446. package/templates/src/lib/utils/orionplace/links.ts +14 -0
  447. package/templates/src/lib/utils/orionplace/manufacturerIndex.ts +91 -0
  448. package/templates/src/lib/utils/orionplace/modalWindow.ts +109 -0
  449. package/templates/src/lib/utils/orionplace/nativeApp.ts +367 -0
  450. package/templates/src/lib/utils/orionplace/notice.ts +22 -0
  451. package/templates/src/lib/utils/orionplace/orderLabels.ts +311 -0
  452. package/templates/src/lib/utils/orionplace/orderPresentation.ts +574 -0
  453. package/templates/src/lib/utils/orionplace/pageSeo.ts +274 -0
  454. package/templates/src/lib/utils/orionplace/paginationScroll.ts +131 -0
  455. package/templates/src/lib/utils/orionplace/phone.ts +22 -0
  456. package/templates/src/lib/utils/orionplace/presentation.ts +72 -0
  457. package/templates/src/lib/utils/orionplace/productActionLabels.ts +60 -0
  458. package/templates/src/lib/utils/orionplace/productActions.svelte.ts +547 -0
  459. package/templates/src/lib/utils/orionplace/productAvailability.ts +36 -0
  460. package/templates/src/lib/utils/orionplace/productGallery.ts +72 -0
  461. package/templates/src/lib/utils/orionplace/productLabels.ts +82 -0
  462. package/templates/src/lib/utils/orionplace/productManufacturer.ts +30 -0
  463. package/templates/src/lib/utils/orionplace/productPage.ts +46 -0
  464. package/templates/src/lib/utils/orionplace/productPhotos.ts +67 -0
  465. package/templates/src/lib/utils/orionplace/productSearchScope.ts +233 -0
  466. package/templates/src/lib/utils/orionplace/productSeller.ts +51 -0
  467. package/templates/src/lib/utils/orionplace/profile.ts +140 -0
  468. package/templates/src/lib/utils/orionplace/profileLabels.ts +151 -0
  469. package/templates/src/lib/utils/orionplace/promoLabels.ts +75 -0
  470. package/templates/src/lib/utils/orionplace/promoPresentation.ts +381 -0
  471. package/templates/src/lib/utils/orionplace/reviewLabels.ts +172 -0
  472. package/templates/src/lib/utils/orionplace/reviewScope.ts +41 -0
  473. package/templates/src/lib/utils/orionplace/richText.ts +13 -0
  474. package/templates/src/lib/utils/orionplace/searchFilters.ts +99 -0
  475. package/templates/src/lib/utils/orionplace/searchHistory.ts +144 -0
  476. package/templates/src/lib/utils/orionplace/sellerDirectory.ts +136 -0
  477. package/templates/src/lib/utils/orionplace/seo.ts +52 -0
  478. package/templates/src/lib/utils/orionplace/serverCookies.ts +88 -0
  479. package/templates/src/lib/utils/orionplace/sessionLabels.ts +27 -0
  480. package/templates/src/lib/utils/orionplace/signInReturn.ts +89 -0
  481. package/templates/src/lib/utils/orionplace/storeDirectory.ts +50 -0
  482. package/templates/src/lib/utils/orionplace/subscriptionChanges.ts +170 -0
  483. package/templates/src/lib/utils/orionplace/subscriptionLabels.ts +67 -0
  484. package/templates/src/lib/utils/orionplace/subscriptionManageLabels.ts +306 -0
  485. package/templates/src/lib/utils/orionplace/subscriptionPlans.ts +159 -0
  486. package/templates/src/lib/utils/orionplace/subscriptionRemote.ts +111 -0
  487. package/templates/src/lib/utils/orionplace/subscriptionUsage.ts +82 -0
  488. package/templates/src/lib/utils/orionplace/tariffLabels.ts +126 -0
  489. package/templates/src/lib/utils/orionplace/tariffPage.ts +77 -0
  490. package/templates/src/lib/utils/orionplace/tariffVariables.ts +165 -0
  491. package/templates/src/lib/utils/orionplace/tariffs.ts +284 -0
  492. package/templates/src/lib/utils/orionplace/ticketItems.ts +90 -0
  493. package/templates/src/lib/utils/orionplace/ticketLabels.ts +335 -0
  494. package/templates/src/lib/utils/orionplace/ticketLocation.ts +79 -0
  495. package/templates/src/lib/utils/orionplace/walletTransaction.ts +135 -0
  496. package/templates/src/routes/+error.svelte +24 -0
  497. package/templates/src/routes/+layout.server.ts +32 -6
  498. package/templates/src/routes/+layout.svelte +154 -14
  499. package/templates/src/routes/+page.server.ts +7 -0
  500. package/templates/src/routes/+page.svelte +216 -104
  501. package/templates/src/routes/activity/+page.server.ts +7 -0
  502. package/templates/src/routes/activity/+page.svelte +25 -0
  503. package/templates/src/routes/addresses/+page.server.ts +7 -0
  504. package/templates/src/routes/addresses/+page.svelte +27 -0
  505. package/templates/src/routes/api/[...orionplace]/+server.ts +11 -9
  506. package/templates/src/routes/browse/+page.server.ts +7 -0
  507. package/templates/src/routes/browse/+page.svelte +270 -0
  508. package/templates/src/routes/cart/+page.server.ts +7 -0
  509. package/templates/src/routes/cart/+page.svelte +25 -0
  510. package/templates/src/routes/catalog/+page.server.ts +7 -0
  511. package/templates/src/routes/catalog/+page.svelte +23 -0
  512. package/templates/src/routes/category/[id]/+page.server.ts +7 -0
  513. package/templates/src/routes/category/[id]/+page.svelte +172 -0
  514. package/templates/src/routes/contact/+page.server.ts +7 -0
  515. package/templates/src/routes/contact/+page.svelte +23 -0
  516. package/templates/src/routes/featured/+page.server.ts +7 -0
  517. package/templates/src/routes/featured/+page.svelte +168 -0
  518. package/templates/src/routes/journal/+page.server.ts +7 -0
  519. package/templates/src/routes/journal/+page.svelte +71 -0
  520. package/templates/src/routes/journal/[id]/+page.server.ts +7 -0
  521. package/templates/src/routes/journal/[id]/+page.svelte +146 -0
  522. package/templates/src/routes/logout/+page.server.ts +7 -0
  523. package/templates/src/routes/logout/+page.svelte +81 -0
  524. package/templates/src/routes/manufacturers/+page.server.ts +7 -0
  525. package/templates/src/routes/manufacturers/+page.svelte +40 -0
  526. package/templates/src/routes/orders/+page.server.ts +7 -0
  527. package/templates/src/routes/orders/+page.svelte +45 -0
  528. package/templates/src/routes/product/[id]/+page.server.ts +7 -0
  529. package/templates/src/routes/product/[id]/+page.svelte +136 -0
  530. package/templates/src/routes/profile/+page.server.ts +7 -0
  531. package/templates/src/routes/profile/+page.svelte +125 -0
  532. package/templates/src/routes/promo/[id]/+page.server.ts +7 -0
  533. package/templates/src/routes/promo/[id]/+page.svelte +92 -0
  534. package/templates/src/routes/promocodes/+page.server.ts +7 -0
  535. package/templates/src/routes/promocodes/+page.svelte +17 -0
  536. package/templates/src/routes/ps3/blog/[...orionplace]/+server.ts +12 -0
  537. package/templates/src/routes/sellers/+page.server.ts +7 -0
  538. package/templates/src/routes/sellers/+page.svelte +245 -0
  539. package/templates/src/routes/stores/+page.server.ts +7 -0
  540. package/templates/src/routes/stores/+page.svelte +43 -0
  541. package/templates/src/routes/subscriptions/+page.server.ts +7 -0
  542. package/templates/src/routes/subscriptions/+page.svelte +27 -0
  543. package/templates/src/routes/tariffs/+page.server.ts +7 -0
  544. package/templates/src/routes/tariffs/+page.svelte +55 -0
  545. package/templates/src/routes/tariffs/[slug]/[id]/+page.server.ts +7 -0
  546. package/templates/src/routes/tariffs/[slug]/[id]/+page.svelte +141 -0
  547. package/templates/src/routes/tickets/+page.server.ts +7 -0
  548. package/templates/src/routes/tickets/+page.svelte +70 -0
  549. package/templates/src/routes/unsubscribe/+page.server.ts +7 -0
  550. package/templates/src/routes/unsubscribe/+page.svelte +39 -0
  551. package/templates/src/routes/wallet/+page.server.ts +7 -0
  552. package/templates/src/routes/wallet/+page.svelte +27 -0
  553. package/templates/src/routes/wishlist/+page.server.ts +7 -0
  554. package/templates/src/routes/wishlist/+page.svelte +61 -0
  555. package/templates/svelte.config.js +10 -4
  556. package/templates/vite.config.ts +13 -9
package/README.md CHANGED
@@ -1,12 +1,69 @@
1
1
  # orionplace-svelte
2
2
 
3
- Set up a SvelteKit 2 storefront for your personal Orionplace marketplace API.
4
- The package includes a setup CLI, the SvelteKit starter with typed AppLoad
5
- initialization, and commented server source that is copied into your project
6
- alongside an integration README.
3
+ **A complete SvelteKit 2 storefront for your Orionplace marketplace, set up with one command.**
4
+
5
+ `orionplace-svelte` creates a server-rendered shop connected to your personal
6
+ marketplace API: catalog and search, product pages, cart and checkout, customer
7
+ account, journal and support, in English and Russian. The package includes a
8
+ setup CLI and the full storefront source, so every page and component in your
9
+ project is yours to change.
10
+
11
+ - **Setup CLI:** `init`, `set backend`, `add frontend`, `set mimic` and `update`.
12
+ - **API gateway:** the browser calls `/api/...` on your own domain; the server
13
+ forwards it to your marketplace backend with cookies bound to the storefront.
14
+ - **Typed store:** one Application Load request fills it before the first render.
15
+ - **124 storefront components**, each with an English and Russian README
16
+ ([list](#components)).
17
+ - **Several storefront domains** on one backend, each with its own mapping.
18
+ - **Android app** from the same project with Capacitor 8.
19
+
20
+ **Contents:** [Quick start](#quick-start-from-zero) ·
21
+ [Existing project](#existing-sveltekit-2-project) · [Components](#components) ·
22
+ [Commands](#commands) · [Android app](#android-app) ·
23
+ [Update](#update-an-existing-project)
7
24
 
8
25
  Requires Node.js 20.19+, Svelte 5 and `@sveltejs/adapter-node`. Static and
9
- edge-only adapters cannot read the domain files this integration uses.
26
+ edge-only adapters cannot read the domain files this integration uses; only the
27
+ Android app build below uses `@sveltejs/adapter-static`.
28
+
29
+ ## Android app
30
+
31
+ The same project builds as an Android app with Capacitor 8. Set
32
+ `ORIONPLACE_APP_ORIGIN` to your deployed public storefront (HTTPS) for that
33
+ build: `androidAppKit` in `svelte.config.js` (`orionplace/runtime/app.mjs`)
34
+ then builds a client-only app to `build/` with `@sveltejs/adapter-static`. The
35
+ route server loads run in the app as universal loads
36
+ (`src/lib/orionplace/appRoutes.ts`), and every API request goes to
37
+ `<origin>/api/...` through Capacitor's native HTTP with the storefront Origin
38
+ (`src/lib/utils/orionplace/nativeApp.ts`). A route with its own server load
39
+ stops the app build with its path. With the `@capacitor/app` plugin installed,
40
+ the Android back button closes an open dialog, opens the previous page, or
41
+ leaves the app on the first page. With `@capacitor/filesystem` and
42
+ `@capacitor/share`, a purchased file is saved in the app and opened from the
43
+ Android share sheet. Without the variable the website build is
44
+ unchanged. Setup, build and release steps:
45
+ [Android app guide](https://orionmarket.place/en/sandbox/android-app?framework=svelte).
46
+
47
+ ```bash
48
+ npm install -D @sveltejs/adapter-static
49
+ ORIONPLACE_APP_ORIGIN=https://shop.example.com npx vite build
50
+ npx cap sync android
51
+ ```
52
+
53
+ ## Error pages
54
+
55
+ `src/routes/+error.svelte` uses the native `StorefrontErrorPage` for missing
56
+ pages and unhandled errors. Its title, description, keywords and HTML language
57
+ follow the selected locale. Error pages use `noindex, nofollow`. Home and Catalog
58
+ keep the locale; Retry reloads the current address. Failure pages render without
59
+ the storefront header and footer.
60
+
61
+ ## Asset loading
62
+
63
+ The starter loads route code and route data after pointer or keyboard
64
+ interaction instead of preloading every visible link. New storefront images
65
+ must provide intrinsic dimensions or a stable aspect ratio; the package audit
66
+ checks this rule for every maintained Svelte template.
10
67
 
11
68
  ## Quick start from zero
12
69
 
@@ -28,9 +85,9 @@ npm run dev
28
85
 
29
86
  The first command creates the SvelteKit configuration, starter routes and
30
87
  integration README. The first frontend becomes the local MIMIC domain. Open the
31
- local URL printed by Vite (normally http://localhost:5173); the starter's AppLoad
32
- state should show `Loaded`. If it shows `Failed`, check your domain mapping and
33
- backend response. The backend command accepts either a hostname or its full HTTPS
88
+ local URL printed by Vite (normally http://localhost:5173). The storefront shows
89
+ the catalog, products and events returned by Application Load. If initialization
90
+ fails, it shows a retry action; check your domain mapping and backend response. The backend command accepts either a hostname or its full HTTPS
34
91
  `/api` URL. The frontend command accepts a public hostname or its root HTTPS URL.
35
92
 
36
93
  ## Existing SvelteKit 2 project
@@ -55,6 +112,205 @@ No install or postinstall hook changes your application. Only explicitly running
55
112
  the CLI writes files. Use `--cwd <directory>` to select a project and `--dry-run`
56
113
  to inspect planned changes without writing them.
57
114
 
115
+ ## Import aliases
116
+
117
+ Application imports use `@/`. Add these entries to `kit.alias` in your existing
118
+ `svelte.config.js` (or its `.ts`/`.mjs` equivalent), keeping the Node adapter and
119
+ other settings. New projects already contain them:
120
+
121
+ ```javascript
122
+ alias: {
123
+ '@': './src',
124
+ '@orionplace-runtime': './orionplace/runtime',
125
+ },
126
+ ```
127
+
128
+ SvelteKit applies them to both Vite and the generated TypeScript configuration.
129
+ The gateway stays in the project-root `orionplace/runtime/` directory. Framework
130
+ imports such as `$app`, `$env` and generated `./$types` retain their own names.
131
+
132
+ <!-- components:start (generated by scripts/generate-package-readme-components.mjs) -->
133
+ ## Components
134
+
135
+ The starter includes **124 storefront components**, copied into
136
+ `src/lib/components/orionplace/` of your project. Each one has a README in English and Russian
137
+ next to its source that describes its inputs, data and actions.
138
+
139
+ ### Storefront structure
140
+
141
+ Main pages and the shared storefront frame.
142
+
143
+ | Component | Name | What it does |
144
+ | --- | --- | --- |
145
+ | **Header** | `StorefrontHeader` | The storefront header and its search, catalog, manufacturer and journal links, locale, currency, account, wishlist and cart controls. |
146
+ | **Storefront logo** | `BrandLogos` | Displays one logo from store.init.logos. |
147
+ | **Product search** | `MainSearch` | A search input with suggestions in the storefront language. |
148
+ | **Language selector** | `MainLanguageSwitcher` | Selects the storefront language and its associated currency and measurement units. |
149
+ | **Currency selector** | `MainCurrencySwitcher` | Selects the current storefront currency from the available options. |
150
+ | **Storefront account** | `StorefrontAccount` | Guest sign-in button and signed-in account menu with profile and wallet actions. |
151
+ | **Wallet balance** | `WalletBalance` | Displays the wallet balance in the selected storefront currency. |
152
+ | **Sign-out page** | `StorefrontLogout` | Session sign-out, failure retry and return to the storefront. |
153
+ | **Wishlist button** | `StorefrontWishlistButton` | Displays the wishlist count and links to the wishlist page. |
154
+ | **Cart button** | `StorefrontCartButton` | Displays the cart count and emits a request to open the cart page. |
155
+ | **Cart preview** | `CartPreview` | A compact dropdown under the header's cart button with cart products, quantities and amounts in the selected currency. |
156
+ | **Catalog menu** | `CatalogHeader` | Category navigation with nested sections and representative product cards. |
157
+ | **Catalog representative** | `CatalogRepresentative` | A compact product card used in the catalog menu, with the same navigation, variant, wishlist and purchase actions. |
158
+ | **Storefront home** | `StorefrontHome` | Banners, the optional Popular categories block, product sections, storefront events and recommendations. |
159
+ | **Storefront banners** | `MainBanner` | A carousel of banner images for the current storefront language, with responsive image formats. |
160
+ | **Popular categories block** | `CategoryGroup` | Optional home-page block of public category tiles. |
161
+ | **Product group** | `ProductGroup` | Displays a collection of product cards with images, prices, variant selection and purchase controls. |
162
+ | **Product card** | `ProductCard` | Combines a product’s image, name, price, variants, wishlist button and purchase controls in one card. |
163
+ | **Product photo viewer** | `HoverImageViewer` | A separate product photo viewer with dot buttons: it switches photos with the pointer, with a swipe and from the keyboard, and a click passes the chosen photo's address to the application. |
164
+ | **Product card title** | `ProductCardTitle` | Displays the localized product name in the card. |
165
+ | **Product card description** | `ProductCardDescription` | Displays the localized short product description as plain text, with HTML tags removed. |
166
+ | **Product card badges** | `ProductCardBadges` | Marks new, popular, good-deal and low-stock products with badges in the card. |
167
+ | **Product card wishlist button** | `ProductCardFavorite` | Requests adding or removing the product from the wishlist; the supplied storefront sends guests to sign-in. |
168
+ | **Seller in the product card** | `ProductCardSeller` | Displays the product seller’s name and rating in the card. |
169
+ | **Product card rating** | `ProductCardRating` | Displays the product’s average rating and review count in the card. |
170
+ | **Product card variants** | `ProductCardVariants` | Selects a primary or secondary product variant. |
171
+ | **Secondary variant selector** | `ProductSecondaryVariantModal` | Shows primary and secondary product choices in a modal and can continue the selected purchase action. |
172
+ | **Product card price** | `ProductCardPrice` | Displays the price in the selected currency and the original price when the product is discounted. |
173
+ | **Low-stock notice** | `ProductCardStockNotice` | Warns that the product will soon run out of stock. |
174
+ | **Product card purchase controls** | `ProductCardActions` | Product-card controls for the cart, quantity, availability notifications and preorder when available. |
175
+ | **Preorder dialog** | `ProductPreorderDialog` | The selected product and contact details for a preorder request. |
176
+ | **Storefront events** | `EventsBlock` | A full-width carousel of layout-event images for the current storefront language, with responsive image formats. |
177
+ | **Event block and promotion enrollment** | `EventEnrollmentDialog` | Displaying the event block and opening promotion enrollment from the selected event. |
178
+ | **Footer** | `StorefrontFooter` | Store identity, navigation, a contact-page link and social links. |
179
+ | **Social links** | `SocialLinks` | Display the store’s published social links and icons. |
180
+ | **Error page** | `StorefrontErrorPage` | Page-not-found (404) and failure (500) page with Home, Catalog and Retry actions. |
181
+ | **Storefront theme** | `OrionplaceThemeProvider` | Applies the selected light or dark storefront theme and optional color overrides to its content. |
182
+
183
+ ### Catalog and discovery
184
+
185
+ Browse categories, search results and product sources.
186
+
187
+ | Component | Name | What it does |
188
+ | --- | --- | --- |
189
+ | **Catalog component** | `StorefrontCatalog` | The component shows store categories, subcategories and product links. |
190
+ | **Category page** | `StorefrontCategory` | A category with its breadcrumb path, subcategories, filters and paginated product cards. |
191
+ | **Search results** | `ProductSearchResults` | Filters, products, loading and empty states for search, category, seller and recommendation results. |
192
+ | **Search filters** | `SearchFilters` | Price, discount, rating, review, category, seller, manufacturer and variant facets with selectable values and optional result counts. |
193
+ | **Sellers** | `StorefrontSellers` | Seller directory with filters and sorting, and a seller profile with its products. |
194
+ | **Seller filters** | `SellerFilters` | Seller name, minimum rating and category filters for the seller directory. |
195
+ | **Seller summary** | `SellerSummary` | Seller logo, name, rating, selling-since badge, product count and description. |
196
+ | **Seller photos** | `SellerPhotoGallery` | The seller’s approved photos as a square grid with a photo viewer. |
197
+ | **Stores** | `StorefrontStores` | Store addresses, map, phone numbers, opening hours and products. |
198
+ | **Manufacturers and their products** | `StorefrontManufacturers` | Alphabetical index, letter-based lists and manufacturer details. |
199
+ | **Manufacturer index** | `ManufacturerIndex` | Manufacturer logos and letter groups. |
200
+
201
+ ### Products and shopping
202
+
203
+ Product details, saved items and the cart.
204
+
205
+ | Component | Name | What it does |
206
+ | --- | --- | --- |
207
+ | **Product details** | `StorefrontProduct` | Loads and displays a published product or a secret-key preview with images, purchase choices, details and reviews. |
208
+ | **Page path** | `OrionplaceBreadcrumbs` | Linked path from the storefront home page through parent categories to the current page. |
209
+ | **Product characteristics** | `ProductSpecificationsDialog` | Every characteristic of the product in a dialog over the page. |
210
+ | **Product reviews** | `ProductReviews` | Reviews, replies, ratings and the user’s submissions. |
211
+ | **Review form** | `ProductReviewForm` | Rating, text and photos for a review or reply. |
212
+ | **Customer review photos** | `ProductReviewGallery` | Review photos for the selected product. |
213
+ | **Review photo viewer** | `ProductReviewImageViewer` | The photos of one review, shown large on the same page. |
214
+ | **Promo code products** | `PromoProducts` | The products a promo code offer applies to, with the offer’s conditions. |
215
+ | **Wishlist and availability notices** | `StorefrontWishlist` | Saved products and products with availability notifications, shown as standard product cards. |
216
+ | **Cart and checkout** | `StorefrontCart` | Cart items, promo codes, delivery, payment and order creation. |
217
+ | **Cart item** | `CartLineItem` | Item name, image, price, quantity and removal. |
218
+ | **Cart item options** | `CartItemOptions` | Option products as product cards, with text and file attachment for an item. |
219
+ | **Checkout details** | `CartCheckoutDetails` | Delivery address, payment method, recipient and comment. |
220
+ | **Shipment delivery selection** | `CartDeliverySelector` | Delivery methods with icons, pickup points and their map for one shipment. |
221
+ | **Delivery map** | `DeliveryMap` | Selectable locations on Yandex Maps for delivery pickup and the store directory. |
222
+
223
+ ### Customer account
224
+
225
+ Profile, orders, addresses and account activity.
226
+
227
+ | Component | Name | What it does |
228
+ | --- | --- | --- |
229
+ | **Account sections** | `AccountSection` | Account navigation and sign-in for private storefront sections. |
230
+ | **Personal profile** | `StorefrontProfile` | Account overview and forms for personal details, verified email, notification preferences, avatar, password and account deletion. |
231
+ | **Profile photo** | `ProfileAvatar` | Upload or remove the current account’s avatar. |
232
+ | **Personal details** | `ProfileDetailsForm` | Edit the account holder’s name and date of birth. |
233
+ | **Email and notifications** | `ProfileEmailSettings` | Verify an email address and choose optional email-notification and email-language preferences. |
234
+ | **Account password** | `ProfilePasswordForm` | Create or change the account password. |
235
+ | **Password field** | `OrionplacePasswordInput` | Password input with a button that shows or hides the entered password. |
236
+ | **Delete account** | `ProfileDeleteAccount` | Delete the signed-in customer's own account. |
237
+ | **Account sign-in** | `ProfileSignIn` | Phone-based account sign-in and registration. |
238
+ | **User promo codes** | `AccountPromocodes` | Available promo codes and applying a selected code to the cart. |
239
+ | **My activity** | `AccountActivity` | The user’s promo codes, reviews and sign-in history. |
240
+ | **Sign-in history** | `SignInHistory` | The user’s sign-in dates, devices, browsers and IP addresses. |
241
+ | **User orders** | `StorefrontOrders` | Order history, purchased items, payment, cancellation and repeat. |
242
+ | **Order details** | `OrderDetails` | Order items, shipments, tracking, purchased content and attachments. |
243
+ | **Order payment selection** | `OrderPaymentForm` | Available payment-method selection for an existing order. |
244
+ | **User addresses** | `StorefrontAddresses` | Saved addresses, address editing and default delivery selection. |
245
+ | **Address form** | `AddressForm` | Address creation and editing with country selection, region search, text suggestions and location lookup. |
246
+ | **Value selector** | `OrionplaceSelect` | Selects one value from a labeled list, with keyboard controls, country flags and option icons. |
247
+ | **Search selector** | `OrionplaceSearchSelect` | Selects one value from options searched as the user types, with a loading spinner and retry. |
248
+ | **Wallet and payments** | `StorefrontWallet` | Payment history, balance top-ups and cancellation of unpaid invoices. |
249
+ | **Wallet top-up form** | `WalletTopUpForm` | Amount, currency and payment-method selection for a wallet top-up. |
250
+ | **Payment panel** | `PaymentPanel` | Opens the payment link and lets the user refresh its status. |
251
+ | **Pagination** | `StorefrontPagination` | Previous and next controls with the current page for a returned list. |
252
+
253
+ ### Subscriptions and support
254
+
255
+ Plans, active subscriptions and support requests.
256
+
257
+ | Component | Name | What it does |
258
+ | --- | --- | --- |
259
+ | **Subscription plans** | `StorefrontTariffs` | Plans grouped by subscription, with search, sign-in for guests and subscription purchase. |
260
+ | **Subscription plan details** | `StorefrontTariff` | One public plan with its media, description, features, periods, options and subscription purchase. |
261
+ | **Subscription plans** | `TariffCards` | Plan cards in a responsive grid. |
262
+ | **Subscription plan card** | `TariffCard` | A plan card with its image, trial badge, name, description, the modules and limits of the plan, the option chooser, period prices and subscribe actions. |
263
+ | **Plan image** | `TariffCardImage` | The first small plan image. |
264
+ | **Plan name** | `TariffCardTitle` | The tariff name in its card, in the selected language. |
265
+ | **Plan description** | `TariffCardDescription` | The short plan description without HTML tags, and the full description under Details. |
266
+ | **Plan modules, limits and options** | `TariffCardFeatures` | The modules and limits of a plan from `tariff_variables_json`, each with its explanation, and the chooser of the plan options. |
267
+ | **Information hint** | `OrionplaceInfoHint` | Small information button that explains the term beside it. |
268
+ | **Plan prices** | `TariffCardPrices` | The period switcher, the price for the chosen period and the Subscribe and Try actions. |
269
+ | **Plan purchase** | `TariffSubscriptionModal` | Select an option, enter a promotion code and confirm a subscription purchase. |
270
+ | **My subscriptions** | `StorefrontSubscriptions` | Subscription dates, plan, usage, service details, automatic renewal, renewal payment and support. |
271
+ | **Renewal payment** | `SubscriptionExtendDialog` | The period, the promo code and the amount for extending a subscription. |
272
+ | **Automatic renewal** | `SubscriptionRenewalDialog` | The period that is paid automatically, or turning it off. |
273
+ | **Plan and option change** | `SubscriptionChangeDialog` | The new plan or service option, its period and the amount that is charged. |
274
+ | **Subscription cancellation** | `SubscriptionCancelDialog` | The confirmation that stops automatic renewal and keeps the paid period. |
275
+ | **Plan and usage** | `SubscriptionPlanSummary` | The plan picture, description and parameters with the usage the subscription service reported. |
276
+ | **Subscription service details** | `SubscriptionRemoteDetails` | The identifier, confirmation time and host a subscription service returned. |
277
+ | **Support conversations** | `StorefrontSupport` | Customer support conversations for general questions, sellers, order items and subscriptions. |
278
+ | **Conversation messages** | `TicketConversation` | Messages, attachments, conversation closing and support rating. |
279
+ | **Conversation item** | `TicketItemCard` | The purchased item a conversation is about, with its image, variant or option, quantity and paid amount. |
280
+ | **Subscription of a conversation** | `TicketSubscriptionCard` | The subscription a support conversation is about: plan, number, state, paid-until date and automatic renewal. |
281
+ | **Conversation image** | `TicketImage` | Loading and viewing an image from the user’s conversation. |
282
+ | **Support message form** | `TicketMessageForm` | Message text and images for a new conversation or reply. |
283
+
284
+ ### Content and contact
285
+
286
+ Journal content and customer contact flows.
287
+
288
+ | Component | Name | What it does |
289
+ | --- | --- | --- |
290
+ | **Journal** | `StorefrontJournal` | Paged journal of store articles with category and author filters. |
291
+ | **Journal article** | `BlogArticle` | An article, subscription access and its discussion. |
292
+ | **Article comments** | `BlogComments` | Discussion, replies and the user’s own comments. |
293
+ | **Comment form** | `BlogCommentForm` | Text for a new comment, reply or edit. |
294
+ | **Blog posts** | `BlogPostGroup` | Publication previews in a grid, list or layout with a lead card. |
295
+ | **Blog post card** | `BlogPostCard` | Publication image, localized title, plain-text preview and reading time. |
296
+ | **Contact page** | `StorefrontContact` | Company contact and registration details, with a form for messaging the store. |
297
+ | **Contact details** | `AboutPage` | Display the store’s published company and contact information. |
298
+ | **Contact form** | `ContactForm` | Sending a question to the store. |
299
+ | **Unsubscribe from emails** | `EmailUnsubscribe` | Confirming an unsubscribe request from an email link. |
300
+
301
+ ### Shared interface
302
+
303
+ Small reusable states and identity elements.
304
+
305
+ | Component | Name | What it does |
306
+ | --- | --- | --- |
307
+ | **Empty state** | `OrionplaceEmptyState` | Line drawing and message shown when a list, history or search result has no items. |
308
+ | **Avatar** | `OrionplaceAvatar` | Round user photo with initials when no photo is available. |
309
+ | **Storefront image** | `OrionplaceImage` | Loads a safe public image lazily and shows an accessible placeholder when the image is missing or fails. |
310
+ | **Measurement unit selector** | `UnitSwitcher` | Selects a weight or length unit from those available in the storefront. |
311
+
312
+ <!-- components:end -->
313
+
58
314
  ## Commands
59
315
 
60
316
  ```bash
@@ -89,20 +345,28 @@ change your account, create DNS records, configure TLS, or deploy a VPS.
89
345
  | Path | Purpose |
90
346
  | --- | --- |
91
347
  | `src/routes/api/[...orionplace]/+server.ts` | Route serving `/api/...` from your project. |
92
- | `src/routes/+layout.server.ts` | Initializes AppLoad before your pages render. |
348
+ | `src/routes/ps3/blog/[...orionplace]/+server.ts` | Route serving guarded blog images and videos under `/ps3/blog/...`. |
349
+ | `src/routes/+layout.server.ts` | Initializes Application Load before your pages render. |
93
350
  | `src/routes/+layout.svelte` | Creates the store for this session and puts it in context. |
94
- | `src/routes/+page.svelte` | Starter page showing the AppLoad state; replace it with your storefront. |
351
+ | `src/routes/+page.svelte` | Home page using the maintained storefront components. |
95
352
  | `src/hooks.server.ts` | Marks personalized pages `private, no-store` and varies them by domain. |
96
353
  | `src/lib/orionplace/` | Server transport with cookie relay, browser transport, envelope checks, domain resolution. |
97
354
  | `src/lib/orionplace/store.svelte.ts` | Typed snapshot, status, merged discovery and derived data as Svelte 5 runes. |
98
- | `src/lib/interfaces/orionplace/` | The AppLoad response envelope and every nested model. |
355
+ | `src/lib/interfaces/orionplace/` | The Application Load response envelope and every nested model. |
99
356
  | `svelte.config.js`, `vite.config.ts` | Node adapter, and your storefront domains as allowed development hosts. |
100
357
  | `orionplace/runtime/marketplace.mjs` | Commented domain lookup and HTTP transport. |
358
+ | `orionplace/runtime/app.mjs` | `androidAppKit` and `androidAppDefine`: the Android app build switch. |
101
359
  | `orionplace/README.md` | Your settings, API examples, file explanations, verification and VPS deployment. |
102
360
  | `orionplace/settings.json` | Domain values selected by the CLI. |
103
361
  | `orionplace/.generated.json` | File hashes used to preserve your edits on subsequent setup. |
104
362
  | `sitemaps/shop.example.com.cfg` | One line: `https://your-project.orionplace.app/api`. |
105
363
  | `.env` | `MIMIC_FRONT_DOMAIN="shop.example.com"` for localhost. |
364
+ | `.vscode/settings.json` | Tells the editor's CSS checker to accept Tailwind's `@apply`, `@reference` and `@theme`. An existing file is kept. |
365
+
366
+ `npm run check` runs `svelte-check` with TypeScript and Svelte diagnostics
367
+ (`--diagnostic-sources "js,svelte"`): the CSS checker does not know Tailwind's
368
+ at-rules and would report every `@apply` as unknown. Setup upgrades the former
369
+ default script and keeps a script you changed.
106
370
 
107
371
  All generated source is yours to read and customize. Later setup runs preserve
108
372
  edited files and report which ones were preserved. Unchanged generated files can
@@ -159,9 +423,27 @@ Deploy `sitemaps` with the production server, or set an absolute `SITEMAPS_DIR`.
159
423
  The production process reads `MIMIC_FRONT_DOMAIN` without rebuilding. Run the
160
424
  server from the project root or explicitly point it at the configuration directory.
161
425
 
162
- ## AppLoad starter
426
+ ## Native storefront
427
+
428
+ The starter includes Svelte components and SvelteKit routes for catalog and
429
+ product search, product details and variants, journal articles and comments,
430
+ manufacturer, seller and store directories, contact, tariffs, account, addresses,
431
+ cart, orders, wallet, subscriptions and tickets. Public route loads reuse the
432
+ layout snapshot and request the detail data needed for their first render.
433
+ Protected routes take a guest to sign-in and preserve the return path.
434
+
435
+ Components in `src/lib/components/orionplace/` use scoped Svelte state and
436
+ controllers in `src/lib/composables/`. Their callback payloads correspond to
437
+ the maintained Nuxt events. The package's component READMEs describe inputs,
438
+ data and actions; `orionplace/COMPONENTS.md` lists their customer paths.
439
+
440
+ Page titles, descriptions and link-preview metadata follow the current page
441
+ and selected language, including client navigation. Public events and banner
442
+ images come from Application Load.
443
+
444
+ ## Application Load starter
163
445
 
164
- The root layout load awaits `POST /api/appload` in light mode before your pages
446
+ The root layout load awaits `POST /api/appload` before your pages
165
447
  render and returns the snapshot to every route, so `await parent()` in a page load
166
448
  reuses it instead of requesting again. The root layout component creates one store
167
449
  per browser session and hydrates it from that snapshot; components read it with
@@ -176,7 +458,7 @@ Discovery describes availability; the backend still checks permissions on each c
176
458
 
177
459
  ### Session and CSRF cookies
178
460
 
179
- AppLoad establishes the guest/customer session and CSRF cookie through HTTP
461
+ Application Load establishes the guest/customer session and CSRF cookie through HTTP
180
462
  `Set-Cookie` headers, not through `page_data.init`. The browser handles the signed
181
463
  HttpOnly `sessionid` cookie; never parse, rewrite, log or store its value in the
182
464
  store or localStorage. The readable `csrftoken` supplies `X-CSRFToken` for later
@@ -189,11 +471,20 @@ the exact signed value and its attributes. Cookies established this way are also
189
471
  visible to later calls in the same render. Never share a cookie jar across visitors.
190
472
 
191
473
  Use `POST /api/csrf_renew` with `{}` to renew CSRF, then re-read the cookie.
192
- The backend signals CSRF rejection with HTTP `419` and `page_data.csrf: false`;
193
- a general `403` may mean permissions or origin rejection. Do not automatically
194
- replay mutations. After confirmed login/logout, reset and refresh AppLoad.
474
+ The backend signals CSRF rejection with HTTP `419`, or HTTP `403` with
475
+ `page_data.csrf: false`. A `403` without that flag may mean permissions or
476
+ origin rejection. The shared API client renews the token for the next action
477
+ and returns the failed request; the customer retries explicitly. After
478
+ confirmed login/logout, reset and refresh Application Load.
195
479
  Those store actions update data; they do not authenticate or delete cookies.
196
480
 
481
+
482
+ When a request returns HTTP `401` while the store is signed in, the shared API
483
+ client clears profile, wallet, authenticated discovery, cart and wishlist counters
484
+ and account fields of cached products, then reloads Application Load as a guest.
485
+ Public data and the current selections remain available during that refresh.
486
+ The failed request is not repeated and no sign-in dialog opens automatically.
487
+
197
488
  ## Update an existing project
198
489
 
199
490
  After the initial setup, use one command to get the latest package and components:
@@ -229,11 +520,18 @@ installation fails after source generation, run `npm install` and retry `update`
229
520
 
230
521
  ## Documentation
231
522
 
232
- - [Create a SvelteKit frontend](https://orionmarket.place/sandbox/new-project/svelte)
233
- - [Marketplace API documentation](https://orionmarket.place/sandbox/)
523
+ - [Create a SvelteKit frontend](https://orionmarket.place/en/sandbox/new-project/svelte)
524
+ - [Marketplace API documentation](https://orionmarket.place/en/sandbox/)
234
525
 
235
526
  ## Development
236
527
 
528
+ In this repository checkout, the package demo uses its own
529
+ `packages/orionplace-svelte/.env` and
530
+ `packages/orionplace-svelte/sitemaps/<storefront-domain>.cfg`.
531
+ Set the storefront's `MIMIC_FRONT_DOMAIN` and personal backend mapping there.
532
+ See [local demo configuration](DEVELOPMENT.md#local-demo-configuration).
533
+
534
+
237
535
  ```bash
238
536
  npm install
239
537
  npm test
@@ -242,3 +540,20 @@ npm pack --dry-run
242
540
 
243
541
  The published tarball includes only the CLI, runtime source, README, license,
244
542
  starter templates, and package metadata.
543
+
544
+ ## Storefront flows
545
+
546
+ The generated storefront includes product and category pages, search, wishlist,
547
+ cart and checkout, orders, support tickets, profile and phone sign-in, addresses,
548
+ wallet, subscriptions, tariffs, journal, promotions, contacts and event enrollment.
549
+ Public product, category, search, featured, journal, article and tariff routes
550
+ await their first response during server loading and hydrate the same data.
551
+ Account routes send a confirmed guest to the profile sign-in flow and preserve
552
+ the return address. Form requests begin after visitor interaction.
553
+
554
+ Component source lives in `src/lib/components/orionplace/`; controllers live in
555
+ `src/lib/composables/`. `orionplace/COMPONENTS.md` describes the component catalog.
556
+ The store is scoped to one render on the server and the root layout in the
557
+ browser. It preserves valid selections when Application Load refreshes. HTTP
558
+ 401 clears account data and refreshes the guest session without repeating the
559
+ failed mutation. API validation errors remain beside the affected form.
@@ -17,7 +17,7 @@ From zero (Node.js 20.19+ with npm; run from the parent folder):
17
17
 
18
18
  Replace the backend with the domain from your orionmarket.place profile,
19
19
  and the frontend with your storefront domain. Open the local URL printed by Vite;
20
- the starter's AppLoad state should show Loaded.
20
+ the storefront opens after Application Load succeeds.
21
21
 
22
22
  Commands for an existing project (run from its root):
23
23
  npx orionplace-svelte help
@@ -90,6 +90,9 @@ try {
90
90
  : `Next: ${result.settings.backend ? 'add frontend' : 'set backend'} to complete the domain mapping.`);
91
91
  if (result.changed.some(path => path.endsWith('.cfg') || path === '.env')) console.log('Restart a running development server to reload MIMIC and domain mappings. Reload your production environment when changing MIMIC.');
92
92
  if (result.isNewKit) console.log('Run npm install in the project, then npm run dev.');
93
+ if ([...result.preserved, ...result.skipped].some(path => /^svelte\.config\./.test(path))) {
94
+ console.log('Merge the import aliases into your retained configuration; see Import aliases in orionplace/README.md.');
95
+ }
93
96
  console.log('Project documentation: orionplace/README.md');
94
97
  if (command === 'update') console.log(dryRun
95
98
  ? 'Dependency installation would run after applying these changes. Project files were not changed.'
package/package.json CHANGED
@@ -1,16 +1,28 @@
1
1
  {
2
2
  "name": "orionplace-svelte",
3
- "version": "0.1.0",
4
- "description": "SvelteKit integration and setup CLI for your Orionplace personal marketplace backend.",
3
+ "version": "0.2.1",
4
+ "description": "SvelteKit 2 storefront for your Orionplace marketplace: setup CLI, server API gateway, typed store and ready-made catalog, cart, checkout and account components in English and Russian, plus an Android app build.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Orionplace",
8
- "homepage": "https://orionmarket.place/sandbox/new-project/svelte",
8
+ "homepage": "https://orionmarket.place/en/sandbox/new-project/svelte",
9
9
  "keywords": [
10
10
  "svelte",
11
+ "svelte5",
11
12
  "sveltekit",
12
13
  "orionplace",
13
- "marketplace"
14
+ "orionmarketplace",
15
+ "marketplace",
16
+ "storefront",
17
+ "ecommerce",
18
+ "e-commerce",
19
+ "shop",
20
+ "cart",
21
+ "checkout",
22
+ "ssr",
23
+ "cli",
24
+ "android",
25
+ "capacitor"
14
26
  ],
15
27
  "engines": {
16
28
  "node": ">=20.19.0"
@@ -39,7 +51,7 @@
39
51
  "LICENSE"
40
52
  ],
41
53
  "scripts": {
42
- "test": "node --test test/*.test.mjs"
54
+ "test": "node --import ../../scripts/register-test-aliases.mjs --test test/*.test.mjs"
43
55
  },
44
56
  "peerDependencies": {
45
57
  "@sveltejs/kit": "^2.4.0",
@@ -51,6 +63,7 @@
51
63
  },
52
64
  "devDependencies": {
53
65
  "esbuild": "^0.27.7",
54
- "svelte": "^5.57.0"
66
+ "svelte": "^5.57.0",
67
+ "happy-dom": "^20.14.5"
55
68
  }
56
69
  }
@@ -0,0 +1,10 @@
1
+ import type { KitConfig } from '@sveltejs/kit';
2
+
3
+ /** The validated storefront origin of an Android app build; empty for the website. */
4
+ export function androidAppOrigin(value?: string): string;
5
+ /** Vite `define` with the storefront origin the app's requests go to. */
6
+ export function androidAppDefine(): Record<string, string>;
7
+ /** The SvelteKit options, made static with the app's routes for the Android app build. */
8
+ export function androidAppKit(kit: KitConfig, root?: string): Promise<KitConfig>;
9
+ /** Copies the routes for the app build, with app loads instead of server loads. */
10
+ export function writeAndroidAppRoutes(source: string, target: string): void;
@@ -0,0 +1,94 @@
1
+ import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { join, relative, resolve } from 'node:path';
3
+
4
+ /*
5
+ * Android app build: ORIONPLACE_APP_ORIGIN=https://shop.example.com vite build
6
+ *
7
+ * The app is a client-only build (adapter-static, written to build/) that
8
+ * Capacitor wraps. Its API requests go to the public storefront named by the
9
+ * variable, through its /api gateway (see src/lib/utils/orionplace/nativeApp.ts).
10
+ * Without the variable the project builds the website as before.
11
+ */
12
+
13
+ const hostname = /^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$/;
14
+
15
+ /** The validated storefront origin of an app build; empty for the website. */
16
+ export function androidAppOrigin(value = process.env.ORIONPLACE_APP_ORIGIN) {
17
+ const text = value?.trim() ?? '';
18
+ if (!text) return '';
19
+ if (/^http:/i.test(text)) throw new Error('ORIONPLACE_APP_ORIGIN must use HTTPS.');
20
+ let url;
21
+ try { url = new URL(text.includes('://') ? text : `https://${text}`); }
22
+ catch { url = null; }
23
+ const host = url?.hostname.toLowerCase().replace(/\.$/, '') ?? '';
24
+ if (!url || url.protocol !== 'https:' || !hostname.test(host) || /^[\d.]+$/.test(host) ||
25
+ url.username || url.password || url.port || url.search || url.hash || url.pathname !== '/') {
26
+ throw new Error('ORIONPLACE_APP_ORIGIN must be your public storefront, for example https://shop.example.com.');
27
+ }
28
+ return `https://${host}`;
29
+ }
30
+
31
+ /** Vite `define`: the storefront origin the app's requests go to. */
32
+ export function androidAppDefine() {
33
+ return { __ORIONPLACE_APP_ORIGIN__: JSON.stringify(androidAppOrigin()) };
34
+ }
35
+
36
+ const appLayout = `// Generated for the Android app build (orionplace/runtime/app.mjs).
37
+ export const ssr = false;
38
+ export const prerender = false;
39
+ export { loadAppLayout as load } from '@/lib/orionplace/appRoutes';
40
+ `;
41
+ const appPage = `// Generated for the Android app build (orionplace/runtime/app.mjs).
42
+ export { loadAppPage as load } from '@/lib/orionplace/appRoutes';
43
+ `;
44
+ const server = /^\+(page|layout)\.server\.[jt]s$/;
45
+
46
+ /*
47
+ * The app has no server, so its routes are a copy of src/routes with the
48
+ * server loads replaced by loads that run in the app. Endpoints (+server.ts)
49
+ * stay on the storefront, which answers the app's requests.
50
+ */
51
+ export function writeAndroidAppRoutes(source, target) {
52
+ rmSync(target, { recursive: true, force: true });
53
+ mkdirSync(target, { recursive: true });
54
+ for (const entry of readdirSync(source, { withFileTypes: true })) {
55
+ const from = join(source, entry.name);
56
+ const to = join(target, entry.name);
57
+ if (entry.isDirectory()) {
58
+ writeAndroidAppRoutes(from, to);
59
+ } else if (/^\+server\.[jt]s$/.test(entry.name)) {
60
+ continue;
61
+ } else if (server.test(entry.name)) {
62
+ const kind = entry.name.startsWith('+page') ? 'page' : 'layout';
63
+ const code = readFileSync(from, 'utf8');
64
+ const ours = kind === 'page' ? /\bloadStorefrontPage\b/ : /\bloadOrionplaceAppLoad\b/;
65
+ if (!ours.test(code)) {
66
+ throw new Error(`${relative(process.cwd(), from)} runs only on a server. Add a +${kind}.ts load for the Android app, or remove the page.`);
67
+ }
68
+ if (!existsSync(join(source, `+${kind}.ts`)) && !existsSync(join(source, `+${kind}.js`))) {
69
+ writeFileSync(join(target, `+${kind}.ts`), kind === 'page' ? appPage : appLayout);
70
+ }
71
+ } else {
72
+ cpSync(from, to);
73
+ }
74
+ }
75
+ }
76
+
77
+ /**
78
+ * The SvelteKit options: unchanged for the website; for the app build a
79
+ * static build with an index.html fallback and the app's copy of the routes.
80
+ * @param {import('@sveltejs/kit').KitConfig} kit
81
+ */
82
+ export async function androidAppKit(kit, root = process.cwd()) {
83
+ if (!androidAppOrigin()) return kit;
84
+ let adapter;
85
+ try { ({ default: adapter } = await import('@sveltejs/adapter-static')); }
86
+ catch { throw new Error('The Android app build needs @sveltejs/adapter-static: npm install -D @sveltejs/adapter-static'); }
87
+ const routes = resolve(root, '.svelte-kit/orionplace-app/routes');
88
+ writeAndroidAppRoutes(resolve(root, kit.files?.routes ?? 'src/routes'), routes);
89
+ return {
90
+ ...kit,
91
+ adapter: adapter({ pages: 'build', assets: 'build', fallback: 'index.html' }),
92
+ files: { ...kit.files, routes },
93
+ };
94
+ }
@@ -1,22 +1,27 @@
1
1
  export interface MarketplaceConfiguration {
2
- mimicFrontDomain?: string;
2
+ mimicFrontDomain?: string;
3
3
  }
4
4
 
5
5
  export interface MarketplaceTenant {
6
- domain: string;
7
- api: URL;
6
+ domain: string;
7
+ api: URL;
8
8
  }
9
9
 
10
10
  export declare function normalizeFrontDomain(value: unknown): string | null;
11
11
 
12
- export declare function resolveFrontDomain(request: Request, mimic?: string): string | null;
12
+ export declare function isMarketplaceMediaPath(pathname: string): boolean;
13
+
14
+ export declare function resolveFrontDomain(
15
+ request: Request,
16
+ mimic?: string,
17
+ ): string | null;
13
18
 
14
19
  export declare function readMarketplace(
15
- request: Request,
16
- configuration?: MarketplaceConfiguration,
20
+ request: Request,
21
+ configuration?: MarketplaceConfiguration,
17
22
  ): Promise<MarketplaceTenant>;
18
23
 
19
24
  export declare function forwardMarketplace(
20
- request: Request,
21
- configuration?: MarketplaceConfiguration,
25
+ request: Request,
26
+ configuration?: MarketplaceConfiguration,
22
27
  ): Promise<Response>;