cloudcommerce 0.24.1 → 0.26.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 (217) hide show
  1. package/.github/workflows/test-e2e.yml +2 -2
  2. package/CHANGELOG.md +43 -0
  3. package/action.yml +2 -2
  4. package/ecomplus-stores/barra-doce/.idx/dev.nix +24 -0
  5. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  6. package/ecomplus-stores/barra-doce/functions/ssr/content/extra-pages/contato.json +11 -0
  7. package/ecomplus-stores/barra-doce/functions/ssr/content/extra-pages/terms.json +11 -0
  8. package/ecomplus-stores/barra-doce/functions/ssr/content/extra-pages/trocas.json +11 -0
  9. package/ecomplus-stores/barra-doce/functions/ssr/content/layout.json +30 -0
  10. package/ecomplus-stores/barra-doce/functions/ssr/content/settings.json +3 -3
  11. package/ecomplus-stores/barra-doce/functions/ssr/package.json +7 -7
  12. package/ecomplus-stores/barra-doce/functions/ssr/src/assets/style.css +2 -2
  13. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopFooter.vue +149 -0
  14. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +2 -2
  15. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageFooter.astro +68 -0
  16. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageHeader.astro +1 -1
  17. package/ecomplus-stores/barra-doce/functions/ssr/src/main/Home.astro +6 -6
  18. package/ecomplus-stores/barra-doce/functions/ssr/src/pages/index.astro +2 -0
  19. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  20. package/ecomplus-stores/barra-doce/package.json +2 -2
  21. package/ecomplus-stores/iluminim/.idx/dev.nix +24 -0
  22. package/ecomplus-stores/iluminim/functions/many/package.json +3 -3
  23. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/contato.json +11 -0
  24. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/terms.json +11 -0
  25. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/trocas.json +11 -0
  26. package/ecomplus-stores/iluminim/functions/ssr/content/layout.json +30 -0
  27. package/ecomplus-stores/iluminim/functions/ssr/package.json +7 -7
  28. package/ecomplus-stores/iluminim/functions/ssr/src/assets/style.css +2 -2
  29. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopFooter.vue +149 -0
  30. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +2 -2
  31. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/PageFooter.astro +68 -0
  32. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/PageHeader.astro +1 -1
  33. package/ecomplus-stores/iluminim/functions/ssr/src/pages/index.astro +2 -0
  34. package/ecomplus-stores/iluminim/functions/with-apps/package.json +3 -3
  35. package/ecomplus-stores/iluminim/package.json +2 -2
  36. package/ecomplus-stores/monocard/.idx/dev.nix +24 -0
  37. package/ecomplus-stores/monocard/functions/ssr/package.json +1 -1
  38. package/ecomplus-stores/tia-sonia/.idx/dev.nix +24 -0
  39. package/package.json +6 -6
  40. package/packages/api/package.json +1 -1
  41. package/packages/apps/affilate-program/package.json +1 -1
  42. package/packages/apps/correios/package.json +5 -3
  43. package/packages/apps/correios/tests/calculate-shipping.test.mjs +45 -0
  44. package/packages/apps/custom-payment/package.json +1 -1
  45. package/packages/apps/custom-shipping/package.json +4 -2
  46. package/packages/apps/custom-shipping/tests/calculate-shipping.test.mjs +37 -0
  47. package/packages/apps/datafrete/package.json +2 -2
  48. package/packages/apps/discounts/package.json +1 -1
  49. package/packages/apps/emails/package.json +1 -1
  50. package/packages/apps/fb-conversions/package.json +2 -2
  51. package/packages/apps/flash-courier/package.json +2 -2
  52. package/packages/apps/frenet/package.json +2 -2
  53. package/packages/apps/galaxpay/package.json +2 -2
  54. package/packages/apps/google-analytics/package.json +2 -2
  55. package/packages/apps/jadlog/package.json +2 -2
  56. package/packages/apps/loyalty-points/package.json +4 -2
  57. package/packages/apps/loyalty-points/tests/1-list-payments.test.mjs +37 -0
  58. package/packages/apps/loyalty-points/tests/2-create-transaction.test.mjs +41 -0
  59. package/packages/apps/melhor-envio/package.json +2 -2
  60. package/packages/apps/mercadopago/package.json +5 -3
  61. package/packages/apps/mercadopago/tests/1-list-payments.test.mjs +37 -0
  62. package/packages/apps/mercadopago/tests/2-create-transaction.test.mjs +42 -0
  63. package/packages/apps/pagarme/package.json +2 -2
  64. package/packages/apps/paghiper/package.json +2 -2
  65. package/packages/apps/pix/package.json +2 -2
  66. package/packages/apps/tiny-erp/package.json +2 -2
  67. package/packages/apps/webhooks/package.json +2 -2
  68. package/packages/cli/lib/cli.js +5 -1
  69. package/packages/cli/package.json +1 -1
  70. package/packages/cli/src/cli.ts +5 -1
  71. package/packages/config/package.json +1 -1
  72. package/packages/emails/package.json +2 -2
  73. package/packages/eslint/package.json +5 -5
  74. package/packages/events/package.json +1 -1
  75. package/packages/feeds/package.json +1 -1
  76. package/packages/firebase/package.json +2 -2
  77. package/packages/i18n/lib/en_us/i19allProducts.txt +1 -0
  78. package/packages/i18n/lib/en_us/i19institutional.txt +1 -0
  79. package/packages/i18n/lib/en_us.d.ts +2 -0
  80. package/packages/i18n/lib/en_us.js +2 -0
  81. package/packages/i18n/lib/en_us.js.map +1 -1
  82. package/packages/i18n/lib/pt_br/i19allProducts.txt +1 -0
  83. package/packages/i18n/lib/pt_br/i19institutional.txt +1 -0
  84. package/packages/i18n/lib/pt_br.d.ts +2 -0
  85. package/packages/i18n/lib/pt_br.js +2 -0
  86. package/packages/i18n/lib/pt_br.js.map +1 -1
  87. package/packages/i18n/package.json +1 -1
  88. package/packages/i18n/src/en_us.ts +2 -0
  89. package/packages/i18n/src/pt_br.ts +2 -0
  90. package/packages/modules/package.json +4 -3
  91. package/packages/modules/tests/modules.test.mjs +7 -8
  92. package/packages/passport/package.json +1 -1
  93. package/packages/ssr/lib/firebase/serve-storefront.js +44 -33
  94. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  95. package/packages/ssr/package.json +6 -6
  96. package/packages/ssr/src/firebase/serve-storefront.ts +45 -34
  97. package/packages/storefront/config/storefront.cms.js +3 -1
  98. package/packages/storefront/config/storefront.config.mjs +8 -2
  99. package/packages/storefront/dist/client/_astro/{Carousel.63d511ab.js → Carousel.926668f2.js} +1 -1
  100. package/packages/storefront/dist/client/_astro/CartSidebar.eadba34f.js +1 -0
  101. package/packages/storefront/dist/client/_astro/HeroSlider.1f0524aa.js +1 -0
  102. package/packages/storefront/dist/client/_astro/PitchBar.7407eeaf.js +1 -0
  103. package/packages/storefront/dist/client/_astro/Prices.562a32ab.js +1 -0
  104. package/packages/storefront/dist/client/_astro/ProductShelf.763cd2ca.js +1 -0
  105. package/packages/storefront/dist/client/_astro/SearchModal.cffd4c2d.js +1 -0
  106. package/packages/storefront/dist/client/_astro/ShopHeader.126900a6.js +4 -0
  107. package/packages/storefront/dist/client/_astro/_...slug_.36cd433d.css +1 -0
  108. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.ee681fa8.js +1 -0
  109. package/packages/storefront/dist/client/_astro/api.a2eda23e.js +1 -0
  110. package/packages/storefront/dist/client/_astro/client.e6d9439a.js +1 -0
  111. package/packages/storefront/dist/client/_astro/{firebase-app.1df8af9a.js → firebase-app.93857bfb.js} +121 -91
  112. package/packages/storefront/dist/client/_astro/format-money.923559cc.js +1 -0
  113. package/packages/storefront/dist/client/_astro/img.ec6ba316.js +1 -0
  114. package/packages/storefront/dist/client/_astro/index.709ac149.js +1 -0
  115. package/packages/storefront/dist/client/_astro/modules-info.48980668.js +1 -0
  116. package/packages/storefront/dist/client/manifest.webmanifest +1 -1
  117. package/packages/storefront/dist/client/sw.js +1 -1
  118. package/packages/storefront/dist/server/chunks/CartSidebar.2b555408.mjs +393 -0
  119. package/packages/storefront/dist/server/chunks/SearchModal.f418e188.mjs +44 -0
  120. package/packages/storefront/dist/server/chunks/_...d32bcc0c.mjs +35 -0
  121. package/packages/storefront/dist/server/chunks/{account@_@astro.a02ffb0b.mjs → account@_@astro.0106855f.mjs} +12 -4
  122. package/packages/storefront/dist/server/chunks/{astro.a7611b51.mjs → astro.bb5b7191.mjs} +141 -91
  123. package/packages/storefront/dist/server/chunks/{_...5323ec5a.mjs → endpoint@_@js.35807882.mjs} +12 -4
  124. package/packages/storefront/dist/server/chunks/{index@_@astro.d898498a.mjs → index@_@astro.477f5af1.mjs} +12 -4
  125. package/packages/storefront/dist/server/chunks/{index@_@astro.42c693b9.mjs → index@_@astro.e5a61d6e.mjs} +12 -4
  126. package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.0f33557e.mjs → _...slug_.astro.fd8a229f.mjs} +673 -937
  127. package/packages/storefront/dist/server/chunks/pages/{account.astro.9325adb2.mjs → account.astro.3b21bff8.mjs} +1 -1
  128. package/packages/storefront/dist/server/chunks/pages/endpoint.js.247079ba.mjs +119 -0
  129. package/packages/storefront/dist/server/chunks/pages/{index.astro.0f31fa39.mjs → index.astro.dab642f5.mjs} +605 -58
  130. package/packages/storefront/dist/server/chunks/pages/{~fallback.astro.bd93f01e.mjs → ~fallback.astro.7630c0d6.mjs} +25 -7
  131. package/packages/storefront/dist/server/chunks/{~fallback@_@astro.d17419ae.mjs → ~fallback@_@astro.65227dd7.mjs} +12 -4
  132. package/packages/storefront/dist/server/entry.mjs +28 -11
  133. package/packages/storefront/dist/server/manifest.webmanifest +1 -1
  134. package/packages/storefront/dist/server/renderers.mjs +80 -25
  135. package/packages/storefront/package.json +9 -8
  136. package/packages/storefront/src/helpers/server-data.ts +14 -17
  137. package/packages/storefront/src/images/use-ssr-picture.ts +18 -3
  138. package/packages/storefront/src/lib/components/BannerPictures.astro +4 -4
  139. package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +2 -2
  140. package/packages/storefront/src/lib/components/SharedData.astro +1 -1
  141. package/packages/storefront/src/lib/composables/use-shared-data.ts +18 -3
  142. package/packages/storefront/src/lib/content.d.ts +36 -2
  143. package/packages/storefront/src/lib/layouts/Base.astro +3 -2
  144. package/packages/storefront/src/lib/layouts/use-page-main.ts +2 -2
  145. package/packages/storefront/src/lib/ssr-context.ts +1 -1
  146. package/packages/test-base/CHANGELOG.md +1 -0
  147. package/packages/test-base/README.md +7 -0
  148. package/packages/test-base/lib/endpoints.js +23 -0
  149. package/packages/test-base/lib/endpoints.js.map +1 -0
  150. package/packages/test-base/lib/index.js +4 -0
  151. package/packages/test-base/lib/index.js.map +1 -0
  152. package/packages/test-base/lib/playloads.js +14 -0
  153. package/packages/test-base/lib/playloads.js.map +1 -0
  154. package/packages/test-base/package.json +28 -0
  155. package/packages/test-base/payloads/calculate-shipping.json +37 -0
  156. package/packages/test-base/payloads/create-transaction.json +116 -0
  157. package/packages/test-base/payloads/list-payments.json +125 -0
  158. package/packages/test-base/src/endpoints.ts +37 -0
  159. package/packages/test-base/src/index.ts +3 -0
  160. package/packages/test-base/src/playloads.ts +24 -0
  161. package/packages/test-base/tsconfig.json +3 -0
  162. package/packages/types/package.json +1 -1
  163. package/ecomplus-stores/barra-doce/functions/ssr/content/extra-pages/.gitkeep +0 -0
  164. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/.gitkeep +0 -0
  165. package/packages/storefront/dist/client/_astro/HeroSlider.8d2ea532.js +0 -1
  166. package/packages/storefront/dist/client/_astro/PitchBar.c2a2ad79.js +0 -1
  167. package/packages/storefront/dist/client/_astro/Prices.8572765c.js +0 -1
  168. package/packages/storefront/dist/client/_astro/ProductShelf.4a105932.js +0 -1
  169. package/packages/storefront/dist/client/_astro/ShopHeader.2400b065.js +0 -4
  170. package/packages/storefront/dist/client/_astro/_...slug_.a786e016.css +0 -1
  171. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.48e557ba.js +0 -1
  172. package/packages/storefront/dist/client/_astro/client.9dbf6b61.js +0 -1
  173. package/packages/storefront/dist/client/_astro/ecom-icon_CDmhA.png +0 -0
  174. package/packages/storefront/dist/client/_astro/ecom-icon_Z27EX9f.png +0 -0
  175. package/packages/storefront/dist/client/_astro/ecom-icon_Zo1CLq.png +0 -0
  176. package/packages/storefront/dist/client/_astro/headphone_22qtrt.avif +0 -0
  177. package/packages/storefront/dist/client/_astro/headphone_247ud8.avif +0 -0
  178. package/packages/storefront/dist/client/_astro/headphone_Z1hoMcQ.webp +0 -0
  179. package/packages/storefront/dist/client/_astro/headphone_Z1j5MXv.webp +0 -0
  180. package/packages/storefront/dist/client/_astro/img.7def76a1.js +0 -1
  181. package/packages/storefront/dist/client/_astro/index.c0c35ead.js +0 -1
  182. package/packages/storefront/dist/client/_astro/logo_144owC.webp +0 -0
  183. package/packages/storefront/dist/client/_astro/logo_1ug3XF.png +0 -0
  184. package/packages/storefront/dist/client/_astro/logo_Z1EIN1I.avif +0 -0
  185. package/packages/storefront/dist/client/_astro/passion_29BEzB.webp +0 -0
  186. package/packages/storefront/dist/client/_astro/passion_2sykkb.avif +0 -0
  187. package/packages/storefront/dist/client/_astro/passion_HYj6i.webp +0 -0
  188. package/packages/storefront/dist/client/_astro/passion_Z18ANwS.avif +0 -0
  189. package/packages/storefront/dist/client/_astro/passion_ZK2FPz.webp +0 -0
  190. package/packages/storefront/dist/client/_astro/passion_pVNbE.avif +0 -0
  191. package/packages/storefront/dist/client/_astro/rect8589_1EUYOa.webp +0 -0
  192. package/packages/storefront/dist/client/_astro/rect8589_1Sqf3x.png +0 -0
  193. package/packages/storefront/dist/client/_astro/rect8589_1VeSii.avif +0 -0
  194. package/packages/storefront/dist/client/_astro/rect8589_2wFECM.png +0 -0
  195. package/packages/storefront/dist/client/_astro/rect8589_7mg8W.png +0 -0
  196. package/packages/storefront/dist/client/_astro/rect8589_Kv492.webp +0 -0
  197. package/packages/storefront/dist/client/_astro/rect8589_Z1DNkkN.webp +0 -0
  198. package/packages/storefront/dist/client/_astro/rect8589_Z1IS4wy.avif +0 -0
  199. package/packages/storefront/dist/client/_astro/rect8589_Zt4vbx.avif +0 -0
  200. package/packages/storefront/dist/client/_astro/rect859_1Bqr36.webp +0 -0
  201. package/packages/storefront/dist/client/_astro/rect859_1pj5UP.png +0 -0
  202. package/packages/storefront/dist/client/_astro/rect859_2dVuzq.avif +0 -0
  203. package/packages/storefront/dist/client/_astro/rect859_HaXay.png +0 -0
  204. package/packages/storefront/dist/client/_astro/rect859_Z100iy0.png +0 -0
  205. package/packages/storefront/dist/client/_astro/rect859_Z2i1RBz.avif +0 -0
  206. package/packages/storefront/dist/client/_astro/rect859_ZMRWqJ.webp +0 -0
  207. package/packages/storefront/dist/client/_astro/rect859_mPQHw.avif +0 -0
  208. package/packages/storefront/dist/client/_astro/rect859_xyq7d.webp +0 -0
  209. package/packages/storefront/dist/client/_astro/rect89_1DkX0O.webp +0 -0
  210. package/packages/storefront/dist/client/_astro/rect89_2uIqYp.avif +0 -0
  211. package/packages/storefront/dist/client/_astro/rect89_Z1rGPGT.webp +0 -0
  212. package/packages/storefront/dist/client/_astro/rect89_ZAjmIj.avif +0 -0
  213. package/packages/storefront/dist/client/~fallback.html +0 -98
  214. package/packages/storefront/dist/client/~index.html +0 -134
  215. package/packages/storefront/dist/server/images.dist.csv +0 -38
  216. package/packages/storefront/dist/server/images.src.csv +0 -11
  217. package/packages/storefront/dist/server/stylesheets.csv +0 -1
@@ -1,11 +1,214 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate, b as renderComponent, m as maybeRenderHead, d as addAttribute, u as unescapeHTML, F as Fragment$1 } from '../astro.a7611b51.mjs';
2
- import { $ as $$Picture, p as parseShippingPhrase, _ as _export_sfc, C as Carousel, a as CarouselControl, b as addProductToCart, P as Prices, l as loadRouteContext, c as $$BaseHead, d as $$PageHeader, e as $$Base } from './_...slug_.astro.0f33557e.mjs';
3
- import { ref, shallowReactive, computed, useSSRContext, defineComponent, mergeProps, createVNode, resolveDynamicComponent, withCtx, renderSlot, createTextVNode, toDisplayString, withDirectives, vShow, openBlock, createBlock, Fragment, renderList, resolveComponent, createCommentVNode, withModifiers, withAsyncContext } from 'vue';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate, b as renderComponent, F as Fragment, m as maybeRenderHead, d as addAttribute, u as unescapeHTML } from '../astro.bb5b7191.mjs';
2
+ import { _ as _export_sfc, s as socialNetworks, S as SocialNetworkLink, $ as $$Picture, p as parseShippingPhrase, C as Carousel, a as CarouselControl, b as availableExtraDiscount, c as installmentsOption, d as discountOption, l as loyaltyPointsPrograms, e as addProductToCart, f as loadRouteContext, g as $$BaseHead, h as $$PageHeader, j as $$Base } from './_...slug_.astro.fd8a229f.mjs';
3
+ import { useSSRContext, defineComponent, computed, mergeProps, createVNode, resolveDynamicComponent, resolveComponent, withCtx, renderSlot, openBlock, createBlock, createCommentVNode, createTextVNode, toDisplayString, ref, shallowReactive, withDirectives, vShow, Fragment as Fragment$1, renderList, withModifiers, withAsyncContext } from 'vue';
4
+ import { ssrRenderAttrs, ssrInterpolate, ssrRenderVNode, ssrRenderSlot, ssrRenderList, ssrRenderComponent, ssrRenderStyle, ssrRenderClass, ssrRenderAttr } from 'vue/server-renderer';
4
5
  import api from '@cloudcommerce/api';
5
6
  import { inStock, price, name, img, onPromotion } from '@ecomplus/utils';
6
- import { ssrRenderAttrs, ssrRenderVNode, ssrRenderSlot, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderList } from 'vue/server-renderer';
7
7
  import { useElementHover, watchOnce } from '@vueuse/core';
8
8
 
9
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
10
+ __name: "PaymentMethodFlag",
11
+ props: {
12
+ as: { default: "i" },
13
+ flag: {}
14
+ },
15
+ setup(__props, { expose: __expose }) {
16
+ __expose();
17
+ const props = __props;
18
+ const iconClassName = computed(() => {
19
+ switch (props.flag) {
20
+ case "pix":
21
+ return "i-pix text-[#77B6A8]";
22
+ case "visa":
23
+ return "i-visa";
24
+ case "mastercard":
25
+ return "i-mastercard";
26
+ case "elo":
27
+ return "i-elo";
28
+ case "amex":
29
+ return "i-amex";
30
+ case "hipercard":
31
+ return "i-hipercard";
32
+ case "diners":
33
+ return "i-dinersclub";
34
+ case "discover":
35
+ return "i-discover";
36
+ default:
37
+ return "";
38
+ }
39
+ });
40
+ const __returned__ = { props, iconClassName };
41
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
42
+ return __returned__;
43
+ }
44
+ });
45
+ function _sfc_ssrRender$6(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
46
+ if (!$setup.iconClassName) {
47
+ _push(`<b${ssrRenderAttrs(mergeProps({ class: "tracking-tighter leading-none mb-1 text-black text-[57%]" }, _attrs))}>${ssrInterpolate($setup.props.flag)}</b>`);
48
+ } else {
49
+ ssrRenderVNode(_push, createVNode(resolveDynamicComponent($props.as), mergeProps({ class: $setup.iconClassName }, _attrs), null), _parent);
50
+ }
51
+ }
52
+ const _sfc_setup$6 = _sfc_main$6.setup;
53
+ _sfc_main$6.setup = (props, ctx) => {
54
+ const ssrContext = useSSRContext();
55
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/PaymentMethodFlag.vue");
56
+ return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
57
+ };
58
+ const PaymentMethodFlag = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["ssrRender", _sfc_ssrRender$6]]);
59
+
60
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
61
+ __name: "ShopFooter",
62
+ props: {
63
+ stamps: {}
64
+ },
65
+ setup(__props, { expose: __expose }) {
66
+ __expose();
67
+ const __returned__ = { get socialNetworks() {
68
+ return socialNetworks;
69
+ }, SocialNetworkLink, PaymentMethodFlag };
70
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
71
+ return __returned__;
72
+ }
73
+ });
74
+ function _sfc_ssrRender$5(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
75
+ const _component_ALink = resolveComponent("ALink");
76
+ _push(`<footer${ssrRenderAttrs(mergeProps({ class: "w-screen bg-base-50 border-t border-base-100 py-2" }, _attrs))}><div class="ui-section"><div class="pb-7 border-b border-base-200 flex"><div class="text-base">`);
77
+ ssrRenderSlot(_ctx.$slots, "logo", {}, null, _push, _parent);
78
+ _push(`<p class="my-3">${ssrInterpolate(_ctx.$settings.description)}</p><div class="flex gap-2 text-base-500"><!--[-->`);
79
+ ssrRenderList($setup.socialNetworks, (href, network) => {
80
+ _push(`<span>`);
81
+ _push(ssrRenderComponent($setup["SocialNetworkLink"], {
82
+ network,
83
+ class: "p-1 hover:text-primary"
84
+ }, null, _parent));
85
+ _push(`</span>`);
86
+ });
87
+ _push(`<!--]--></div></div></div></div><div class="ui-section"><div class="flex justify-between items-start gap-5"><ul class="flex flex-wrap gap-y-3 gap-x-6 lg:gap-x-8"><!--[-->`);
88
+ ssrRenderList($props.stamps, (stamp, i) => {
89
+ _push(`<li>`);
90
+ _push(ssrRenderComponent(_component_ALink, {
91
+ href: stamp.href?.replace("{domain}", _ctx.$settings.domain || "")
92
+ }, {
93
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
94
+ if (_push2) {
95
+ ssrRenderSlot(_ctx.$slots, `picture-${i}`, {}, null, _push2, _parent2, _scopeId);
96
+ if (!stamp.img) {
97
+ _push2(`<span class="flex items-center"${_scopeId}>`);
98
+ if (stamp.icon) {
99
+ _push2(`<span class="text-4xl mr-2 [&amp;&gt;*]:bg-gradient-to-br [&amp;&gt;*]:from-success-200 [&amp;&gt;*]:to-success-700"${_scopeId}>`);
100
+ if (stamp.icon === "lock") {
101
+ _push2(`<i class="i-lock-closed"${_scopeId}></i>`);
102
+ } else if (stamp.icon === "check") {
103
+ _push2(`<i class="i-check-badge"${_scopeId}></i>`);
104
+ } else {
105
+ _push2(`<i class="i-arrow-path-rounded-square"${_scopeId}></i>`);
106
+ }
107
+ _push2(`</span>`);
108
+ } else {
109
+ _push2(`<!---->`);
110
+ }
111
+ _push2(`<span class="text-sm font-medium text-base-600 max-w-[140px]"${_scopeId}>${ssrInterpolate(stamp.alt)} `);
112
+ if (stamp.href && stamp.href.charAt(0) !== "/") {
113
+ _push2(`<i class="bg-base-400 ml-0.5 i-arrow-top-right-on-square"${_scopeId}></i>`);
114
+ } else {
115
+ _push2(`<!---->`);
116
+ }
117
+ _push2(`</span></span>`);
118
+ } else {
119
+ _push2(`<!---->`);
120
+ }
121
+ } else {
122
+ return [
123
+ renderSlot(_ctx.$slots, `picture-${i}`),
124
+ !stamp.img ? (openBlock(), createBlock("span", {
125
+ key: 0,
126
+ class: "flex items-center"
127
+ }, [
128
+ stamp.icon ? (openBlock(), createBlock("span", {
129
+ key: 0,
130
+ class: "text-4xl mr-2 [&>*]:bg-gradient-to-br [&>*]:from-success-200 [&>*]:to-success-700"
131
+ }, [
132
+ stamp.icon === "lock" ? (openBlock(), createBlock("i", {
133
+ key: 0,
134
+ class: "i-lock-closed"
135
+ })) : stamp.icon === "check" ? (openBlock(), createBlock("i", {
136
+ key: 1,
137
+ class: "i-check-badge"
138
+ })) : (openBlock(), createBlock("i", {
139
+ key: 2,
140
+ class: "i-arrow-path-rounded-square"
141
+ }))
142
+ ])) : createCommentVNode("", true),
143
+ createVNode("span", { class: "text-sm font-medium text-base-600 max-w-[140px]" }, [
144
+ createTextVNode(toDisplayString(stamp.alt) + " ", 1),
145
+ stamp.href && stamp.href.charAt(0) !== "/" ? (openBlock(), createBlock("i", {
146
+ key: 0,
147
+ class: "bg-base-400 ml-0.5 i-arrow-top-right-on-square"
148
+ })) : createCommentVNode("", true)
149
+ ])
150
+ ])) : createCommentVNode("", true)
151
+ ];
152
+ }
153
+ }),
154
+ _: 2
155
+ }, _parent));
156
+ _push(`</li>`);
157
+ });
158
+ _push(`<!--]--></ul><div class="flex flex-wrap md:flex-nowrap justify-end items-center gap-4 text-3xl md:text-2xl"><!--[-->`);
159
+ ssrRenderList(_ctx.$settings.payment_methods, (paymentMethod) => {
160
+ _push(ssrRenderComponent($setup["PaymentMethodFlag"], {
161
+ key: paymentMethod,
162
+ flag: paymentMethod
163
+ }, null, _parent));
164
+ });
165
+ _push(`<!--]--></div></div><div class="mt-6 text-xs text-center md:text-left md:flex justify-between gap-4"><div class="mb-3 md:mb-0"> @ ${ssrInterpolate(( new Date()).getFullYear())} ${ssrInterpolate(_ctx.$settings.corporate_name)} ${ssrInterpolate(_ctx.$settings.address ? `/ ${_ctx.$settings.address}` : "")} / ${ssrInterpolate(_ctx.$settings.doc_number)}</div>`);
166
+ _push(ssrRenderComponent(_component_ALink, {
167
+ href: "https://www.ecomplus.io/",
168
+ class: "italic text-[#37003c]"
169
+ }, {
170
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
171
+ if (_push2) {
172
+ _push2(` powered by <b${_scopeId}>E-Com Plus</b>`);
173
+ } else {
174
+ return [
175
+ createTextVNode(" powered by "),
176
+ createVNode("b", null, "E-Com Plus")
177
+ ];
178
+ }
179
+ }),
180
+ _: 1
181
+ }, _parent));
182
+ _push(`</div></div></footer>`);
183
+ }
184
+ const _sfc_setup$5 = _sfc_main$5.setup;
185
+ _sfc_main$5.setup = (props, ctx) => {
186
+ const ssrContext = useSSRContext();
187
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/ShopFooter.vue");
188
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
189
+ };
190
+ const ShopFooter = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["ssrRender", _sfc_ssrRender$5]]);
191
+
192
+ const $$Astro$6 = createAstro("https://ecom2-demo.web.app");
193
+ const $$PageFooter = createComponent(async ($$result, $$props, $$slots) => {
194
+ const Astro2 = $$result.createAstro($$Astro$6, $$props, $$slots);
195
+ Astro2.self = $$PageFooter;
196
+ const { routeContext } = Astro2.locals;
197
+ const { settings, getContent, isHomepage } = routeContext;
198
+ const LogoHeading = isHomepage ? "h2" : "h3";
199
+ const layoutContent = await getContent("layout");
200
+ const {
201
+ footer: { stamps }
202
+ } = layoutContent;
203
+ return renderTemplate`${renderComponent($$result, "ShopFooter", ShopFooter, { "stamps": stamps }, { "logo": ($$result2) => renderTemplate`${renderComponent($$result2, "Fragment", Fragment, { "slot": "logo" }, { "default": ($$result3) => renderTemplate`
204
+ ${maybeRenderHead()}<a href="/">
205
+ ${renderComponent($$result3, "LogoHeading", LogoHeading, {}, { "default": ($$result4) => renderTemplate`
206
+ ${renderComponent($$result4, "Picture", $$Picture, { "src": settings.logo, "alt": settings.name, "widths": [300], "loading": "lazy", "class": "max-w-[150px]" })}
207
+ ` })}
208
+ </a>
209
+ ` })}` })}`;
210
+ }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/PageFooter.astro", void 0);
211
+
9
212
  const useProductShelf = (props) => {
10
213
  const title = ref(props.title || "");
11
214
  const titleLink = ref(props.titleLink || "");
@@ -216,8 +419,8 @@ const $$BannerPictures = createComponent(async ($$result, $$props, $$slots) => {
216
419
  subtitle,
217
420
  buttonText,
218
421
  index,
219
- class: className = "max-w-screen-2xl",
220
- mobileClass = "max-w-screen-sm"
422
+ class: className = "max-w-screen-sm sm:max-w-[828px] md:max-w-screen-2xl",
423
+ mobileClass = "max-w-screen-sm sm:max-w-screen-lg"
221
424
  } = Astro2.props;
222
425
  const hasHeader = title || subtitle || buttonText;
223
426
  let { widths, mobileWidths } = Astro2.props;
@@ -225,16 +428,17 @@ const $$BannerPictures = createComponent(async ($$result, $$props, $$slots) => {
225
428
  if (mobileImg) {
226
429
  widths = [1536, 2048];
227
430
  } else {
228
- widths = [856, 1536, 2048];
431
+ widths = [640, 828, 1536, 2048];
229
432
  if (hasHeader) {
230
433
  widths = widths.map((w) => w / 2);
231
434
  }
232
435
  }
233
436
  }
234
437
  if (!mobileWidths?.length) {
235
- mobileWidths = [720, 856];
438
+ mobileWidths = [640, 1024];
236
439
  }
237
- return renderTemplate`${img && renderTemplate`${renderComponent($$result, "Picture", $$Picture, { "src": img, "alt": alt || "", "widths": widths, "fetchpriority": index === 0 ? "high" : "low", "loading": index === 0 ? "eager" : "lazy", "class": `${mobileImg ? "hidden md:block " : ""}mx-auto ${className}` })}`}${mobileImg && renderTemplate`${renderComponent($$result, "Picture", $$Picture, { "src": mobileImg, "alt": alt || "", "widths": mobileWidths, "fetchpriority": index === 0 ? "high" : "low", "loading": index === 0 ? "eager" : "lazy", "class": `md:hidden mx-auto ${mobileClass}` })}`}`;
440
+ return renderTemplate`${img && renderTemplate`${renderComponent($$result, "Picture", $$Picture, { "src": img, "alt": alt || "", "widths": widths, "fetchpriority": index === 0 ? "high" : "low", "loading": index === 0 ? "eager" : "lazy", "class": `${mobileImg ? "hidden md:block " : ""}mx-auto text-sm text-opacity-70 ${className}` })}`}
441
+ ${mobileImg && renderTemplate`${renderComponent($$result, "Picture", $$Picture, { "src": mobileImg, "alt": alt || "", "widths": mobileWidths, "fetchpriority": index === 0 ? "high" : "low", "loading": index === 0 ? "eager" : "lazy", "class": `md:hidden mx-auto text-sm text-opacity-70 ${mobileClass}` })}`}`;
238
442
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/components/BannerPictures.astro", void 0);
239
443
 
240
444
  const useBanner = (props) => {
@@ -258,7 +462,7 @@ const useBanner = (props) => {
258
462
  };
259
463
  };
260
464
 
261
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
465
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
262
466
  __name: "Banner",
263
467
  props: {
264
468
  img: {},
@@ -285,11 +489,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
285
489
  return __returned__;
286
490
  }
287
491
  });
288
- function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
492
+ function _sfc_ssrRender$4(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
493
+ const _component_ALink = resolveComponent("ALink");
289
494
  _push(`<div${ssrRenderAttrs(mergeProps({
290
495
  class: ["mx-auto overflow-x-hidden", $setup.hasHeader ? "grid grid-cols-1 sm:grid-cols-2 items-center" : null]
291
496
  }, _attrs))}>`);
292
- ssrRenderVNode(_push, createVNode(resolveDynamicComponent($props.href ? "a-link" : "span"), {
497
+ _push(ssrRenderComponent(_component_ALink, {
293
498
  href: $props.href,
294
499
  class: $setup.hasHeader ? "sm:order-last [&_img]:max-w-full sm:[&_img]:max-w-none [&_img]:aspect-video sm:[&_img]:aspect-[2.5] [&_img]:object-cover" : "[&_img]:max-w-full"
295
500
  }, {
@@ -303,7 +508,7 @@ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
303
508
  }
304
509
  }),
305
510
  _: 3
306
- }), _parent);
511
+ }, _parent));
307
512
  if ($setup.hasHeader) {
308
513
  _push(`<div class="p-12 xl:ps-32 mb-3 sm:mb-0">`);
309
514
  if ($setup.parsedTitle) {
@@ -328,7 +533,7 @@ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
328
533
  _push(`<!---->`);
329
534
  }
330
535
  if ($setup.parsedButtonText) {
331
- ssrRenderVNode(_push, createVNode(resolveDynamicComponent($props.buttonLink ? "a-link" : "span"), {
536
+ _push(ssrRenderComponent(_component_ALink, {
332
537
  href: $props.buttonLink,
333
538
  class: "ui-btn-lg ui-btn-contrast min-w-[150px] mt-7 md:mt-10"
334
539
  }, {
@@ -342,7 +547,7 @@ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
342
547
  }
343
548
  }),
344
549
  _: 1
345
- }), _parent);
550
+ }, _parent));
346
551
  } else {
347
552
  _push(`<!---->`);
348
553
  }
@@ -352,15 +557,15 @@ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
352
557
  }
353
558
  _push(`</div>`);
354
559
  }
355
- const _sfc_setup$3 = _sfc_main$3.setup;
356
- _sfc_main$3.setup = (props, ctx) => {
560
+ const _sfc_setup$4 = _sfc_main$4.setup;
561
+ _sfc_main$4.setup = (props, ctx) => {
357
562
  const ssrContext = useSSRContext();
358
563
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/Banner.vue");
359
- return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
564
+ return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
360
565
  };
361
- const Banner = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["ssrRender", _sfc_ssrRender$3]]);
566
+ const Banner = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["ssrRender", _sfc_ssrRender$4]]);
362
567
 
363
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
568
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
364
569
  __name: "HeroSlider",
365
570
  props: {
366
571
  autoplay: {},
@@ -373,7 +578,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
373
578
  return __returned__;
374
579
  }
375
580
  });
376
- function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
581
+ function _sfc_ssrRender$3(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
377
582
  _push(`<section${ssrRenderAttrs(mergeProps({ class: "relative mx-auto" }, _attrs))}>`);
378
583
  _push(ssrRenderComponent($setup["Carousel"], {
379
584
  autoplay: $props.autoplay,
@@ -458,7 +663,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
458
663
  _push2(`<!--]-->`);
459
664
  } else {
460
665
  return [
461
- (openBlock(true), createBlock(Fragment, null, renderList($props.slides, (slide, i) => {
666
+ (openBlock(true), createBlock(Fragment$1, null, renderList($props.slides, (slide, i) => {
462
667
  return openBlock(), createBlock("li", {
463
668
  key: i,
464
669
  class: "shrink-0 basis-full"
@@ -478,20 +683,26 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
478
683
  }, _parent));
479
684
  _push(`</section>`);
480
685
  }
481
- const _sfc_setup$2 = _sfc_main$2.setup;
482
- _sfc_main$2.setup = (props, ctx) => {
686
+ const _sfc_setup$3 = _sfc_main$3.setup;
687
+ _sfc_main$3.setup = (props, ctx) => {
483
688
  const ssrContext = useSSRContext();
484
689
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/HeroSlider.vue");
485
- return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
690
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
486
691
  };
487
- const HeroSlider = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender$2]]);
692
+ const HeroSlider = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["ssrRender", _sfc_ssrRender$3]]);
488
693
 
489
694
  const $$Astro$4 = createAstro("https://ecom2-demo.web.app");
490
695
  const $$BannersGrid = createComponent(async ($$result, $$props, $$slots) => {
491
696
  const Astro2 = $$result.createAstro($$Astro$4, $$props, $$slots);
492
697
  Astro2.self = $$BannersGrid;
493
698
  const { banners } = Astro2.props;
494
- return renderTemplate`${maybeRenderHead()}<section class="ui-section"><ul class="flex flex-wrap lg:flex-nowrap gap-4">${banners.map((banner) => renderTemplate`<li class="lg:flex-1 [&_img]:w-full [&_img]:object-cover">${renderComponent($$result, "Banner", Banner, { ...banner }, { "picture": ($$result2) => renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { ...banner, "slot": "picture" })}` })}</li>`)}</ul></section>`;
699
+ return renderTemplate`${maybeRenderHead()}<section class="ui-section">
700
+ <ul class="flex flex-wrap lg:flex-nowrap gap-4">
701
+ ${banners.map((banner) => renderTemplate`<li class="lg:flex-1 [&_img]:w-full [&_img]:object-cover">
702
+ ${renderComponent($$result, "Banner", Banner, { ...banner }, { "picture": ($$result2) => renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { ...banner, "slot": "picture" })}` })}
703
+ </li>`)}
704
+ </ul>
705
+ </section>`;
495
706
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/components/BannersGrid.astro", void 0);
496
707
 
497
708
  const useProductCard = (props) => {
@@ -572,6 +783,329 @@ const useProductCard = (props) => {
572
783
  };
573
784
  };
574
785
 
786
+ const getPriceWithDiscount = (price, discount) => {
787
+ const { type, value } = discount;
788
+ let priceWithDiscount;
789
+ if (value) {
790
+ if (type === "percentage") {
791
+ priceWithDiscount = price * ((100 - value) / 100);
792
+ } else {
793
+ priceWithDiscount = price - value;
794
+ }
795
+ return priceWithDiscount > 0 ? priceWithDiscount : 0;
796
+ }
797
+ return price;
798
+ };
799
+ const usePrices = (props) => {
800
+ const _product = computed(() => {
801
+ return props.product || {
802
+ price: props.price || 0,
803
+ base_price: props.basePrice
804
+ };
805
+ });
806
+ const hasVariedPrices = computed(() => {
807
+ const { variations } = _product.value;
808
+ if (variations) {
809
+ const productPrice = price(_product.value);
810
+ for (let i = 0; i < variations.length; i++) {
811
+ const price$1 = price({
812
+ ..._product.value,
813
+ ...variations[i]
814
+ });
815
+ if (price$1 > productPrice) {
816
+ return true;
817
+ }
818
+ }
819
+ }
820
+ return false;
821
+ });
822
+ const salePrice = computed(() => {
823
+ const price$1 = price(_product.value);
824
+ const discount = availableExtraDiscount.value;
825
+ if (discount && (!discount.min_amount || price$1 > discount.min_amount)) {
826
+ return getPriceWithDiscount(price$1, discount);
827
+ }
828
+ return price$1;
829
+ });
830
+ const comparePrice = computed(() => {
831
+ if (onPromotion(_product.value)) {
832
+ return _product.value.base_price;
833
+ }
834
+ const price$1 = price(_product.value);
835
+ if (price$1 > salePrice.value) {
836
+ return price$1;
837
+ }
838
+ return 0;
839
+ });
840
+ const installmentsObject = computed(() => {
841
+ return props.installmentsOption || installmentsOption.value || { max_number: 1 };
842
+ });
843
+ const installmentsNumber = computed(() => {
844
+ if (installmentsObject.value.max_number <= 1) {
845
+ return 1;
846
+ }
847
+ const minInstallment = installmentsObject.value.min_installment || 5;
848
+ const maxInstallmentsNumber = Math.floor(salePrice.value / minInstallment);
849
+ return Math.min(maxInstallmentsNumber, installmentsObject.value.max_number);
850
+ });
851
+ const monthlyInterest = computed(() => {
852
+ return installmentsObject.value.monthly_interest || 0;
853
+ });
854
+ const installmentValue = computed(() => {
855
+ if (installmentsNumber.value >= 2) {
856
+ if (!monthlyInterest.value) {
857
+ return salePrice.value / installmentsNumber.value;
858
+ }
859
+ const interest = monthlyInterest.value / 100;
860
+ return salePrice.value * interest / (1 - (1 + interest) ** -installmentsNumber.value);
861
+ }
862
+ return 0;
863
+ });
864
+ const discountObject = computed(() => {
865
+ const discount = props.discountOption || discountOption.value;
866
+ if (discount && (!discount.min_amount || discount.min_amount <= salePrice.value) && (!props.isAmountTotal || discount.apply_at === "total")) {
867
+ return discount;
868
+ }
869
+ return {};
870
+ });
871
+ const discountLabel = computed(() => {
872
+ const { label } = discountObject.value;
873
+ if (label) {
874
+ if (label.includes(" ")) {
875
+ return label;
876
+ }
877
+ return `via ${label}`;
878
+ }
879
+ return "";
880
+ });
881
+ const priceWithDiscount = computed(() => {
882
+ return getPriceWithDiscount(salePrice.value, discountObject.value);
883
+ });
884
+ const pointsProgramObject = computed(() => {
885
+ if (props.loyaltyPointsProgram) {
886
+ return props.loyaltyPointsProgram;
887
+ }
888
+ const pointsPrograms = loyaltyPointsPrograms.value;
889
+ if (pointsPrograms) {
890
+ const programIds = Object.keys(pointsPrograms);
891
+ for (let i = 0; i < programIds.length; i++) {
892
+ const program = pointsPrograms[programIds[i]];
893
+ if (program?.earn_percentage && program.earn_percentage > 0) {
894
+ return program;
895
+ }
896
+ }
897
+ }
898
+ return { ratio: 0 };
899
+ });
900
+ const pointsMinPrice = computed(() => {
901
+ return pointsProgramObject.value.min_subtotal_to_earn || 0;
902
+ });
903
+ const pointsProgramName = computed(() => {
904
+ return pointsProgramObject.value.name || "";
905
+ });
906
+ const earnPointsPercentage = computed(() => {
907
+ return pointsProgramObject.value.earn_percentage || 0;
908
+ });
909
+ const cashbackPercentage = computed(() => {
910
+ return earnPointsPercentage.value * pointsProgramObject.value.ratio;
911
+ });
912
+ const cashbackValue = computed(() => {
913
+ return cashbackPercentage.value >= 1 ? salePrice.value * (cashbackPercentage.value / 100) : 0;
914
+ });
915
+ return {
916
+ hasVariedPrices,
917
+ salePrice,
918
+ comparePrice,
919
+ installmentsObject,
920
+ installmentsNumber,
921
+ monthlyInterest,
922
+ installmentValue,
923
+ discountObject,
924
+ discountLabel,
925
+ priceWithDiscount,
926
+ pointsProgramObject,
927
+ pointsMinPrice,
928
+ pointsProgramName,
929
+ earnPointsPercentage,
930
+ cashbackPercentage,
931
+ cashbackValue
932
+ };
933
+ };
934
+
935
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
936
+ __name: "Prices",
937
+ props: {
938
+ isBig: { type: Boolean },
939
+ isLiteral: { type: Boolean },
940
+ hasCashback: { type: Boolean, default: true },
941
+ hasPriceOptions: { type: Boolean, default: true },
942
+ product: {},
943
+ price: {},
944
+ basePrice: {},
945
+ isAmountTotal: { type: Boolean },
946
+ installmentsOption: {},
947
+ discountOption: {},
948
+ loyaltyPointsProgram: {}
949
+ },
950
+ setup(__props, { expose: __expose }) {
951
+ __expose();
952
+ const props = __props;
953
+ const {
954
+ hasVariedPrices,
955
+ salePrice,
956
+ comparePrice,
957
+ cashbackPercentage,
958
+ cashbackValue,
959
+ installmentsNumber,
960
+ monthlyInterest,
961
+ installmentValue,
962
+ priceWithDiscount,
963
+ discountLabel
964
+ } = usePrices(props);
965
+ const __returned__ = { props, hasVariedPrices, salePrice, comparePrice, cashbackPercentage, cashbackValue, installmentsNumber, monthlyInterest, installmentValue, priceWithDiscount, discountLabel };
966
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
967
+ return __returned__;
968
+ }
969
+ });
970
+ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
971
+ const _component_Fade = resolveComponent("Fade");
972
+ _push(`<div${ssrRenderAttrs(mergeProps({
973
+ class: ["text-base-600 [&>div]:[font-size:90%] [&_small]:lowercase [&_small]:[font-size:92%]", $props.isBig ? "text-lg" : null],
974
+ "data-prices": ""
975
+ }, _attrs))}>`);
976
+ if ($setup.comparePrice) {
977
+ _push(`<span class="text-base-500 mr-1 text-[87%]">`);
978
+ if ($props.isLiteral) {
979
+ _push(`<small>${ssrInterpolate(`${"De"} `)}</small>`);
980
+ } else {
981
+ _push(`<!---->`);
982
+ }
983
+ _push(`<s>${ssrInterpolate(_ctx.$money($setup.comparePrice))}</s>`);
984
+ if ($props.isLiteral) {
985
+ _push(`<small>${ssrInterpolate(` ${"Por"}`)}</small>`);
986
+ } else {
987
+ _push(`<!---->`);
988
+ }
989
+ _push(`</span>`);
990
+ } else {
991
+ _push(`<!---->`);
992
+ }
993
+ _push(`<strong class="${ssrRenderClass([$props.isBig ? "text-5xl block" : null, "inline-block text-base-800"])}">`);
994
+ if ($setup.hasVariedPrices) {
995
+ _push(`<small>${ssrInterpolate(`${"A partir de"} `)}</small>`);
996
+ } else {
997
+ _push(`<!---->`);
998
+ }
999
+ _push(` ${ssrInterpolate(_ctx.$money($setup.salePrice))}</strong>`);
1000
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
1001
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1002
+ if (_push2) {
1003
+ if ($setup.cashbackValue && $props.hasCashback) {
1004
+ _push2(`<div class="relative z-10"${_scopeId}><span${ssrRenderAttr("data-tooltip", "Receba $1 de volta".replace("$1", _ctx.$percentage($setup.cashbackPercentage)))}${_scopeId}><i class="i-arrow-uturn-left mr-1"${_scopeId}></i><span class="font-medium"${_scopeId}>${ssrInterpolate(_ctx.$money($setup.cashbackValue))}</span><small${_scopeId}> cashback</small></span></div>`);
1005
+ } else {
1006
+ _push2(`<!---->`);
1007
+ }
1008
+ } else {
1009
+ return [
1010
+ $setup.cashbackValue && $props.hasCashback ? (openBlock(), createBlock("div", {
1011
+ key: 0,
1012
+ class: "relative z-10"
1013
+ }, [
1014
+ createVNode("span", {
1015
+ "data-tooltip": "Receba $1 de volta".replace("$1", _ctx.$percentage($setup.cashbackPercentage))
1016
+ }, [
1017
+ createVNode("i", { class: "i-arrow-uturn-left mr-1" }),
1018
+ createVNode("span", { class: "font-medium" }, toDisplayString(_ctx.$money($setup.cashbackValue)), 1),
1019
+ createVNode("small", null, " cashback")
1020
+ ], 8, ["data-tooltip"])
1021
+ ])) : createCommentVNode("", true)
1022
+ ];
1023
+ }
1024
+ }),
1025
+ _: 1
1026
+ }, _parent));
1027
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
1028
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1029
+ if (_push2) {
1030
+ if ($setup.installmentValue && $props.hasPriceOptions) {
1031
+ _push2(`<div${_scopeId}>`);
1032
+ if ($props.isLiteral) {
1033
+ _push2(`<small${_scopeId}>${ssrInterpolate(`${"At\xE9"} `)}</small>`);
1034
+ } else {
1035
+ _push2(`<!---->`);
1036
+ }
1037
+ _push2(` ${ssrInterpolate($setup.installmentsNumber)}x `);
1038
+ if ($props.isLiteral) {
1039
+ _push2(`<small${_scopeId}>${ssrInterpolate(` ${"De"} `)}</small>`);
1040
+ } else {
1041
+ _push2(`<!---->`);
1042
+ }
1043
+ _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money($setup.installmentValue))}</span>`);
1044
+ if (!$setup.monthlyInterest && $props.isLiteral) {
1045
+ _push2(`<small${_scopeId}>${ssrInterpolate("Sem juros")}</small>`);
1046
+ } else {
1047
+ _push2(`<!---->`);
1048
+ }
1049
+ _push2(`</div>`);
1050
+ } else {
1051
+ _push2(`<!---->`);
1052
+ }
1053
+ } else {
1054
+ return [
1055
+ $setup.installmentValue && $props.hasPriceOptions ? (openBlock(), createBlock("div", { key: 0 }, [
1056
+ $props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"At\xE9"} `))) : createCommentVNode("", true),
1057
+ createTextVNode(" " + toDisplayString($setup.installmentsNumber) + "x ", 1),
1058
+ $props.isLiteral ? (openBlock(), createBlock("small", { key: 1 }, toDisplayString(` ${"De"} `))) : createCommentVNode("", true),
1059
+ createVNode("span", null, toDisplayString(_ctx.$money($setup.installmentValue)), 1),
1060
+ !$setup.monthlyInterest && $props.isLiteral ? (openBlock(), createBlock("small", { key: 2 }, toDisplayString("Sem juros"))) : createCommentVNode("", true)
1061
+ ])) : createCommentVNode("", true)
1062
+ ];
1063
+ }
1064
+ }),
1065
+ _: 1
1066
+ }, _parent));
1067
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
1068
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1069
+ if (_push2) {
1070
+ if ($setup.priceWithDiscount < $setup.salePrice && $props.hasPriceOptions) {
1071
+ _push2(`<div${_scopeId}>`);
1072
+ if (!$setup.discountLabel) {
1073
+ _push2(`<small${_scopeId}>${ssrInterpolate(`${"A partir de"} `)}</small>`);
1074
+ } else {
1075
+ _push2(`<!---->`);
1076
+ }
1077
+ _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money($setup.priceWithDiscount))}</span>`);
1078
+ if ($setup.discountLabel) {
1079
+ _push2(`<small${_scopeId}>${ssrInterpolate(` ${$setup.discountLabel}`)}</small>`);
1080
+ } else {
1081
+ _push2(`<!---->`);
1082
+ }
1083
+ _push2(`</div>`);
1084
+ } else {
1085
+ _push2(`<!---->`);
1086
+ }
1087
+ } else {
1088
+ return [
1089
+ $setup.priceWithDiscount < $setup.salePrice && $props.hasPriceOptions ? (openBlock(), createBlock("div", { key: 0 }, [
1090
+ !$setup.discountLabel ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"A partir de"} `))) : createCommentVNode("", true),
1091
+ createVNode("span", null, toDisplayString(_ctx.$money($setup.priceWithDiscount)), 1),
1092
+ $setup.discountLabel ? (openBlock(), createBlock("small", { key: 1 }, toDisplayString(` ${$setup.discountLabel}`), 1)) : createCommentVNode("", true)
1093
+ ])) : createCommentVNode("", true)
1094
+ ];
1095
+ }
1096
+ }),
1097
+ _: 1
1098
+ }, _parent));
1099
+ _push(`</div>`);
1100
+ }
1101
+ const _sfc_setup$2 = _sfc_main$2.setup;
1102
+ _sfc_main$2.setup = (props, ctx) => {
1103
+ const ssrContext = useSSRContext();
1104
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/Prices.vue");
1105
+ return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
1106
+ };
1107
+ const Prices = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["ssrRender", _sfc_ssrRender$2]]);
1108
+
575
1109
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
576
1110
  __name: "ProductCard",
577
1111
  props: {
@@ -606,13 +1140,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
606
1140
  }
607
1141
  });
608
1142
  function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
1143
+ const _component_ALink = resolveComponent("ALink");
609
1144
  const _component_AImg = resolveComponent("AImg");
610
1145
  _push(`<article${ssrRenderAttrs(mergeProps({
611
1146
  ref: "card",
612
1147
  "data-sku": $setup.product.sku,
613
1148
  class: "relative h-full max-w-[350px] mx-auto py-3 group"
614
1149
  }, _attrs))}>`);
615
- ssrRenderVNode(_push, createVNode(resolveDynamicComponent($setup.link ? "ALink" : "span"), {
1150
+ _push(ssrRenderComponent(_component_ALink, {
616
1151
  href: $setup.link,
617
1152
  class: "flex flex-col h-full rounded overflow-hidden group-hover:shadow group-hover:ring-1 ring-black/5"
618
1153
  }, {
@@ -620,7 +1155,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
620
1155
  if (_push2) {
621
1156
  _push2(`<div class="aspect-square p-2 motion-safe:group-hover:scale-110 transition-transform"${_scopeId}><div class="relative w-full h-full bg-white rounded overflow-hidden group-hover:rounded-none"${_scopeId}>`);
622
1157
  if ($setup.images?.length) {
623
- _push2(`<!--[-->`);
1158
+ _push2(`<span class="text-xs text-opacity-70"${_scopeId}>`);
624
1159
  _push2(ssrRenderComponent(_component_AImg, {
625
1160
  picture: $setup.images[0],
626
1161
  alt: $setup.title,
@@ -635,7 +1170,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
635
1170
  } else {
636
1171
  _push2(`<!---->`);
637
1172
  }
638
- _push2(`<!--]-->`);
1173
+ _push2(`</span>`);
639
1174
  } else {
640
1175
  _push2(`<div class="w-full h-full bg-gradient-to-br from-base-50/20 to-base-100"${_scopeId}></div>`);
641
1176
  }
@@ -682,7 +1217,10 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
682
1217
  return [
683
1218
  createVNode("div", { class: "aspect-square p-2 motion-safe:group-hover:scale-110 transition-transform" }, [
684
1219
  createVNode("div", { class: "relative w-full h-full bg-white rounded overflow-hidden group-hover:rounded-none" }, [
685
- $setup.images?.length ? (openBlock(), createBlock(Fragment, { key: 0 }, [
1220
+ $setup.images?.length ? (openBlock(), createBlock("span", {
1221
+ key: 0,
1222
+ class: "text-xs text-opacity-70"
1223
+ }, [
686
1224
  createVNode(_component_AImg, {
687
1225
  picture: $setup.images[0],
688
1226
  alt: $setup.title,
@@ -694,7 +1232,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
694
1232
  alt: $setup.title,
695
1233
  class: "absolute top-0 left-0 block w-full h-full object-cover opacity-0 group-hover:opacity-100 transition-opacity motion-safe:duration-300 text-transparent z-10"
696
1234
  }, null, 8, ["picture", "alt"])) : createCommentVNode("", true)
697
- ], 64)) : (openBlock(), createBlock("div", {
1235
+ ])) : (openBlock(), createBlock("div", {
698
1236
  key: 1,
699
1237
  class: "w-full h-full bg-gradient-to-br from-base-50/20 to-base-100"
700
1238
  }))
@@ -741,7 +1279,7 @@ function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
741
1279
  }
742
1280
  }),
743
1281
  _: 1
744
- }), _parent);
1282
+ }, _parent));
745
1283
  _push(`</article>`);
746
1284
  }
747
1285
  const _sfc_setup$1 = _sfc_main$1.setup;
@@ -788,25 +1326,21 @@ function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $op
788
1326
  _push(`<section${ssrRenderAttrs(mergeProps({ class: "ui-section" }, _attrs))}>`);
789
1327
  if ($setup.title) {
790
1328
  _push(`<div class="max-w-prose mx-auto text-center mb-2"><h2 class="ui-text-brand text-3xl">`);
791
- if ($setup.titleLink) {
792
- _push(ssrRenderComponent(_component_ALink, {
793
- href: $setup.titleLink,
794
- class: "ui-link"
795
- }, {
796
- default: withCtx((_, _push2, _parent2, _scopeId) => {
797
- if (_push2) {
798
- _push2(`${ssrInterpolate($setup.title)}`);
799
- } else {
800
- return [
801
- createTextVNode(toDisplayString($setup.title), 1)
802
- ];
803
- }
804
- }),
805
- _: 1
806
- }, _parent));
807
- } else {
808
- _push(`<span class="text-base-700">${ssrInterpolate($setup.title)}</span>`);
809
- }
1329
+ _push(ssrRenderComponent(_component_ALink, {
1330
+ href: $setup.titleLink,
1331
+ class: $setup.titleLink ? "ui-link" : "text-base-700"
1332
+ }, {
1333
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
1334
+ if (_push2) {
1335
+ _push2(`${ssrInterpolate($setup.title)}`);
1336
+ } else {
1337
+ return [
1338
+ createTextVNode(toDisplayString($setup.title), 1)
1339
+ ];
1340
+ }
1341
+ }),
1342
+ _: 1
1343
+ }, _parent));
810
1344
  _push(`</h2></div>`);
811
1345
  } else {
812
1346
  _push(`<!---->`);
@@ -846,7 +1380,7 @@ function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $op
846
1380
  _push2(`<!--]-->`);
847
1381
  } else {
848
1382
  return [
849
- (openBlock(true), createBlock(Fragment, null, renderList($setup.products, (product) => {
1383
+ (openBlock(true), createBlock(Fragment$1, null, renderList($setup.products, (product) => {
850
1384
  return openBlock(), createBlock("li", {
851
1385
  key: product._id,
852
1386
  class: "basis-1/2 md:basis-1/3 lg:basis-1/4 shrink-0"
@@ -882,7 +1416,8 @@ const $$Sections = createComponent(async ($$result, $$props, $$slots) => {
882
1416
  return { props: content };
883
1417
  }
884
1418
  });
885
- return renderTemplate`${maybeRenderHead()}<article class="my-9 md:my-12">${sections.map(({ type, props }) => {
1419
+ return renderTemplate`${maybeRenderHead()}<article class="my-9 md:my-12">
1420
+ ${sections.map(({ type, props }) => {
886
1421
  switch (type) {
887
1422
  case "product-shelf":
888
1423
  return renderTemplate`${renderComponent($$result, "ProductShelf", ProductShelf, { ...props, "client:visible": true, "client:component-hydration": "visible", "client:component-path": "~/components/ProductShelf.vue", "client:component-export": "default" })}`;
@@ -893,7 +1428,8 @@ const $$Sections = createComponent(async ($$result, $$props, $$slots) => {
893
1428
  default:
894
1429
  return renderTemplate`<div${addAttribute(type, "data-section")}></div>`;
895
1430
  }
896
- })}</article>`;
1431
+ })}
1432
+ </article>`;
897
1433
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Sections.astro", void 0);
898
1434
 
899
1435
  const $$Astro$2 = createAstro("https://ecom2-demo.web.app");
@@ -903,7 +1439,10 @@ const $$Home = createComponent(async ($$result, $$props, $$slots) => {
903
1439
  const { routeContext } = Astro2.locals;
904
1440
  const { heroSlider } = await usePageHero({ routeContext });
905
1441
  const heroSlides = heroSlider.slides;
906
- return renderTemplate`${maybeRenderHead()}<main>${heroSlider.slides.length && renderTemplate`${renderComponent($$result, "HeroSlider", HeroSlider, { ...heroSlider, "client:load": true, "client:component-hydration": "load", "client:component-path": "~/components/HeroSlider.vue", "client:component-export": "default" }, { "picture-0": ($$result2) => renderTemplate`${heroSlides[0] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-0", ...heroSlides[0], "index": 0 })}`}`, "picture-1": ($$result2) => renderTemplate`${heroSlides[1] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-1", ...heroSlides[1], "index": 1 })}`}`, "picture-2": ($$result2) => renderTemplate`${heroSlides[2] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-2", ...heroSlides[2], "index": 2 })}`}`, "picture-3": ($$result2) => renderTemplate`${heroSlides[3] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-3", ...heroSlides[3], "index": 3 })}`}`, "picture-4": ($$result2) => renderTemplate`${heroSlides[4] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-4", ...heroSlides[4], "index": 4 })}`}`, "picture-5": ($$result2) => renderTemplate`${heroSlides[5] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-5", ...heroSlides[5], "index": 5 })}`}`, "picture-6": ($$result2) => renderTemplate`${heroSlides[6] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-6", ...heroSlides[6], "index": 6 })}`}`, "picture-7": ($$result2) => renderTemplate`${heroSlides[7] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-7", ...heroSlides[7], "index": 7 })}`}`, "picture-8": ($$result2) => renderTemplate`${heroSlides[8] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-8", ...heroSlides[8], "index": 8 })}`}`, "picture-9": ($$result2) => renderTemplate`${heroSlides[9] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-9", ...heroSlides[9], "index": 9 })}`}` })}`}${renderComponent($$result, "Sections", $$Sections, {})}</main>`;
1442
+ return renderTemplate`${maybeRenderHead()}<main>
1443
+ ${heroSlider.slides.length && renderTemplate`${renderComponent($$result, "HeroSlider", HeroSlider, { ...heroSlider, "client:load": true, "client:component-hydration": "load", "client:component-path": "~/components/HeroSlider.vue", "client:component-export": "default" }, { "picture-0": ($$result2) => renderTemplate`${heroSlides[0] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-0", ...heroSlides[0], "index": 0 })}`}`, "picture-1": ($$result2) => renderTemplate`${heroSlides[1] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-1", ...heroSlides[1], "index": 1 })}`}`, "picture-2": ($$result2) => renderTemplate`${heroSlides[2] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-2", ...heroSlides[2], "index": 2 })}`}`, "picture-3": ($$result2) => renderTemplate`${heroSlides[3] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-3", ...heroSlides[3], "index": 3 })}`}`, "picture-4": ($$result2) => renderTemplate`${heroSlides[4] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-4", ...heroSlides[4], "index": 4 })}`}`, "picture-5": ($$result2) => renderTemplate`${heroSlides[5] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-5", ...heroSlides[5], "index": 5 })}`}`, "picture-6": ($$result2) => renderTemplate`${heroSlides[6] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-6", ...heroSlides[6], "index": 6 })}`}`, "picture-7": ($$result2) => renderTemplate`${heroSlides[7] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-7", ...heroSlides[7], "index": 7 })}`}`, "picture-8": ($$result2) => renderTemplate`${heroSlides[8] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-8", ...heroSlides[8], "index": 8 })}`}`, "picture-9": ($$result2) => renderTemplate`${heroSlides[9] && renderTemplate`${renderComponent($$result2, "BannerPictures", $$BannerPictures, { "slot": "picture-9", ...heroSlides[9], "index": 9 })}`}` })}`}
1444
+ ${renderComponent($$result, "Sections", $$Sections, {})}
1445
+ </main>`;
907
1446
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/main/Home.astro", void 0);
908
1447
 
909
1448
  const $$Astro$1 = createAstro("https://ecom2-demo.web.app");
@@ -920,7 +1459,15 @@ const $$Index$1 = createComponent(async ($$result, $$props, $$slots) => {
920
1459
  }
921
1460
  loadError = err;
922
1461
  }
923
- return renderTemplate`<html${addAttribute(routeContext?.lang.replace("_", "-"), "lang")}>${routeContext && renderTemplate`${renderComponent($$result, "Base", $$Base, {}, { "base-head": ($$result2) => renderTemplate`${renderComponent($$result2, "BaseHead", $$BaseHead, { "slot": "base-head" })}`, "default": ($$result2) => renderTemplate`${renderComponent($$result2, "PageHeader", $$PageHeader, {})}${renderComponent($$result2, "HomeMain", $$Home, {})}` })}`}${loadError && renderTemplate`${renderComponent($$result, "Fragment", Fragment$1, {}, { "default": ($$result2) => renderTemplate`${unescapeHTML(loadError.responseHTML)}` })}`}</html>`;
1462
+ return renderTemplate`<html${addAttribute(routeContext?.lang.replace("_", "-"), "lang")}>
1463
+ ${routeContext && renderTemplate`${renderComponent($$result, "Base", $$Base, {}, { "base-head": ($$result2) => renderTemplate`${renderComponent($$result2, "BaseHead", $$BaseHead, { "slot": "base-head" })}`, "default": ($$result2) => renderTemplate`
1464
+
1465
+ ${renderComponent($$result2, "PageHeader", $$PageHeader, {})}
1466
+ ${renderComponent($$result2, "HomeMain", $$Home, {})}
1467
+ ${renderComponent($$result2, "PageFooter", $$PageFooter, {})}
1468
+ ` })}`}
1469
+ ${loadError && renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": ($$result2) => renderTemplate`${unescapeHTML(loadError.responseHTML)}` })}`}
1470
+ </html>`;
924
1471
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro", void 0);
925
1472
 
926
1473
  const $$file$1 = "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/pages/index.astro";
@@ -950,4 +1497,4 @@ const index = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
950
1497
  url: $$url
951
1498
  }, Symbol.toStringTag, { value: 'Module' }));
952
1499
 
953
- export { index as a, index$1 as i };
1500
+ export { Prices as P, index as a, index$1 as i };