cloudcommerce 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/action.yml +4 -0
  3. package/ecomplus-stores/monocard/functions/core/package.json +1 -1
  4. package/ecomplus-stores/monocard/functions/events/package.json +2 -2
  5. package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
  6. package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
  7. package/ecomplus-stores/monocard/functions/ssr/package.json +9 -6
  8. package/ecomplus-stores/monocard/package.json +1 -1
  9. package/ecomplus-stores/tia-sonia/functions/core/package.json +1 -1
  10. package/ecomplus-stores/tia-sonia/functions/events/package.json +2 -2
  11. package/ecomplus-stores/tia-sonia/functions/modules/package.json +2 -2
  12. package/ecomplus-stores/tia-sonia/functions/passport/package.json +2 -2
  13. package/ecomplus-stores/tia-sonia/functions/ssr/package.json +11 -7
  14. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-acucares.webp +0 -0
  15. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-barras.webp +0 -0
  16. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-bebidas-em-po.webp +0 -0
  17. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-cookies.webp +0 -0
  18. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-granola-tia-sonia.webp +0 -0
  19. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-integrais.webp +0 -0
  20. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-naturais.webp +0 -0
  21. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-pastas-tia-sonia.webp +0 -0
  22. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-snacks.webp +0 -0
  23. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/categoria-ultrabar.webp +0 -0
  24. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/daniel-cady.webp +0 -0
  25. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/granola-tradicional-lata-verso.webp +0 -0
  26. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/granola-tradicional-lata.webp +0 -0
  27. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/{acai-com-granola.jpg → hero-acai-granola.jpg} +0 -0
  28. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/{cafe-com-tapioca-e-aveia.jpg → hero-cafe-tapioca-aveia.jpg} +0 -0
  29. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/hero-piquenique-snack-cookies.jpg +0 -0
  30. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/machu-picchu-1500.jpg +0 -0
  31. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-ibd-120-80.webp +0 -0
  32. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-organico-120-80.webp +0 -0
  33. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-usda-120-80.webp +0 -0
  34. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-vegano-120-80.webp +0 -0
  35. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/tia-sonia-real.png +0 -0
  36. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/trustvox.png +0 -0
  37. package/ecomplus-stores/tia-sonia/functions/ssr/src/assets/prices.css +3 -0
  38. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/AboutUs.astro +77 -0
  39. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/BrandTestimonials.vue +134 -0
  40. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesGrid.vue +32 -0
  41. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesSlider.vue +117 -0
  42. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/HeroBanner.vue +112 -0
  43. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/PitchBar.vue +48 -16
  44. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/TheHeader.vue +39 -19
  45. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/header/HeaderNav.vue +4 -0
  46. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +10 -4
  47. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +1 -1
  48. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +158 -31
  49. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/head-scripts.ts +15 -0
  50. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/modules-info-preset.ts +27 -0
  51. package/ecomplus-stores/tia-sonia/package.json +1 -1
  52. package/package.json +13 -13
  53. package/packages/api/package.json +1 -1
  54. package/packages/apps/correios/package.json +2 -2
  55. package/packages/apps/custom-payment/package.json +1 -1
  56. package/packages/apps/custom-shipping/package.json +1 -1
  57. package/packages/apps/datafrete/CHANGELOG.md +1 -0
  58. package/packages/apps/datafrete/README.md +1 -0
  59. package/packages/apps/datafrete/lib/datafrete-webhook.d.ts +4 -0
  60. package/packages/apps/datafrete/lib/datafrete-webhook.js +108 -0
  61. package/packages/apps/datafrete/lib/datafrete-webhook.js.map +1 -0
  62. package/packages/apps/datafrete/lib/datafrete.d.ts +2 -0
  63. package/packages/apps/datafrete/lib/datafrete.js +6 -0
  64. package/packages/apps/datafrete/lib/datafrete.js.map +1 -0
  65. package/packages/apps/datafrete/lib/index.d.ts +1 -0
  66. package/packages/apps/datafrete/lib/index.js +2 -0
  67. package/packages/apps/datafrete/lib/index.js.map +1 -0
  68. package/packages/apps/datafrete/lib-mjs/calculate-datafrete.mjs +277 -0
  69. package/packages/apps/datafrete/package.json +37 -0
  70. package/packages/apps/datafrete/src/datafrete-webhook.ts +131 -0
  71. package/packages/apps/datafrete/src/datafrete.ts +7 -0
  72. package/packages/apps/datafrete/src/index.ts +1 -0
  73. package/packages/apps/datafrete/tsconfig.json +6 -0
  74. package/packages/apps/datafrete/webhook.js +1 -0
  75. package/packages/apps/discounts/package.json +1 -1
  76. package/packages/apps/emails/package.json +1 -1
  77. package/packages/apps/fb-conversions/package.json +2 -2
  78. package/packages/apps/frenet/package.json +3 -3
  79. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +3 -2
  80. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
  81. package/packages/apps/galaxpay/package.json +2 -2
  82. package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +3 -2
  83. package/packages/apps/google-analytics/CHANGELOG.md +1 -0
  84. package/packages/apps/google-analytics/README.md +1 -0
  85. package/packages/apps/google-analytics/lib/google-analytics-events.js +113 -0
  86. package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -0
  87. package/packages/apps/google-analytics/lib/index.js +2 -0
  88. package/packages/apps/google-analytics/lib/index.js.map +1 -0
  89. package/packages/apps/google-analytics/package.json +32 -0
  90. package/packages/apps/google-analytics/src/google-analytics-events.ts +151 -0
  91. package/packages/apps/google-analytics/src/index.ts +1 -0
  92. package/packages/apps/google-analytics/tsconfig.json +3 -0
  93. package/packages/apps/google-analytics/types.d.ts +43 -0
  94. package/packages/apps/infinitepay/package.json +2 -2
  95. package/packages/apps/jadlog/package.json +2 -2
  96. package/packages/apps/loyalty-points/package.json +1 -1
  97. package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
  98. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  99. package/packages/apps/mercadopago/lib/mp-webhook.js +2 -7
  100. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  101. package/packages/apps/mercadopago/package.json +2 -2
  102. package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
  103. package/packages/apps/mercadopago/src/mp-webhook.ts +3 -8
  104. package/packages/apps/pagarme/lib/pagarme-webhook.js +1 -1
  105. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
  106. package/packages/apps/pagarme/package.json +2 -2
  107. package/packages/apps/pagarme/src/pagarme-webhook.ts +1 -1
  108. package/packages/apps/pix/package.json +2 -2
  109. package/packages/apps/tiny-erp/package.json +2 -2
  110. package/packages/cli/package.json +1 -1
  111. package/packages/config/package.json +1 -1
  112. package/packages/emails/package.json +3 -3
  113. package/packages/events/lib/firebase.js +4 -0
  114. package/packages/events/lib/firebase.js.map +1 -1
  115. package/packages/events/package.json +3 -1
  116. package/packages/events/src/firebase.ts +4 -0
  117. package/packages/firebase/lib/config.d.ts +7 -0
  118. package/packages/firebase/lib/config.js +10 -0
  119. package/packages/firebase/lib/config.js.map +1 -1
  120. package/packages/firebase/package.json +1 -1
  121. package/packages/firebase/src/config.ts +11 -0
  122. package/packages/i18n/package.json +1 -1
  123. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  124. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  125. package/packages/modules/package.json +4 -3
  126. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  127. package/packages/passport/package.json +1 -1
  128. package/packages/ssr/package.json +4 -3
  129. package/packages/storefront/.eslintrc.cjs +5 -1
  130. package/packages/storefront/astro.config.mjs +9 -24
  131. package/packages/storefront/client.d.ts +7 -8
  132. package/packages/storefront/dist/client/PitchBar.afe7ff5c.js +1 -0
  133. package/packages/storefront/dist/client/Prices.eaf8a32c.js +1 -0
  134. package/packages/storefront/dist/client/ProductCard.1106b153.js +1 -0
  135. package/packages/storefront/dist/client/assets/_...slug_.fea84512.css +1 -0
  136. package/packages/storefront/dist/client/assets/index.90df622b.css +1 -0
  137. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.781b6501.js +1 -0
  138. package/packages/storefront/dist/client/chunks/ecom-utils.63984324.js +1 -0
  139. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.fa6cdb60.js +1 -0
  140. package/packages/storefront/dist/client/client.367a6497.js +1 -0
  141. package/packages/storefront/dist/client/hoisted.4671ed15.js +1 -0
  142. package/packages/storefront/dist/client/sw.js +1 -1
  143. package/packages/storefront/dist/client/workbox-e2ee76b5.js +1 -0
  144. package/packages/storefront/dist/server/entry.mjs +571 -737
  145. package/packages/storefront/package.json +11 -10
  146. package/packages/storefront/src/env.d.ts +9 -0
  147. package/packages/storefront/src/lib/assets/tooltip.css +6 -5
  148. package/packages/storefront/src/lib/components/Carousel.vue +259 -0
  149. package/packages/storefront/src/lib/components/CarouselControl.vue +29 -0
  150. package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
  151. package/packages/storefront/src/lib/components/PitchBar.vue +44 -0
  152. package/packages/storefront/src/lib/components/Prices.vue +116 -105
  153. package/packages/storefront/src/lib/components/ProductCard.vue +1 -1
  154. package/packages/storefront/src/lib/components/_injection-keys.ts +9 -0
  155. package/packages/storefront/src/lib/components/globals/ALink.vue +26 -0
  156. package/packages/storefront/src/lib/composables/use-prices.ts +19 -12
  157. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -5
  158. package/packages/storefront/src/lib/layouts/BaseHead.astro +7 -2
  159. package/packages/storefront/src/lib/layouts/PagesHeader.astro +38 -0
  160. package/packages/storefront/src/lib/pages/_vue.ts +3 -2
  161. package/packages/storefront/src/lib/ssr/image.ts +3 -2
  162. package/packages/storefront/src/lib/ssr-context.ts +6 -0
  163. package/packages/storefront/src/lib/state/modules-info.ts +10 -4
  164. package/packages/storefront/src/vue-globals.d.ts +5 -5
  165. package/packages/storefront/tailwind.config.cjs +12 -6
  166. package/packages/storefront/tsconfig.json +2 -2
  167. package/packages/storefront/uno.config.cjs +4 -4
  168. package/packages/types/package.json +1 -1
  169. package/ecomplus-stores/tia-sonia/functions/ssr/src/scripts/InlineScripts.astro +0 -10
  170. package/packages/storefront/dist/client/HeaderButtons.300c19e5.js +0 -1
  171. package/packages/storefront/dist/client/Prices.6c44a513.js +0 -1
  172. package/packages/storefront/dist/client/ProductCard.69bba7fc.js +0 -1
  173. package/packages/storefront/dist/client/assets/_...slug_.15bda576.css +0 -1
  174. package/packages/storefront/dist/client/assets/index.e6a09532.css +0 -1
  175. package/packages/storefront/dist/client/chunks/HeaderButtons.1abd5bf4.js +0 -1
  176. package/packages/storefront/dist/client/chunks/LoginForm.7e7d6137.js +0 -1441
  177. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.e4525076.js +0 -1
  178. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.fc452b02.js +0 -1
  179. package/packages/storefront/dist/client/chunks/ecom-utils.b0a26608.js +0 -1
  180. package/packages/storefront/dist/client/chunks/preload-helper.1de719f8.js +0 -1
  181. package/packages/storefront/dist/client/chunks/price.ecf7fed4.js +0 -1
  182. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.b4556b35.js +0 -1
  183. package/packages/storefront/dist/client/client.2a3e5a58.js +0 -1
  184. package/packages/storefront/dist/client/hoisted.f6ee2883.js +0 -1
  185. package/packages/storefront/dist/client/page.5a6f3db5.js +0 -1
  186. package/packages/storefront/dist/client/workbox-abdc68aa.js +0 -1
  187. package/packages/storefront/dist/client/~partytown/partytown-atomics.js +0 -2
  188. package/packages/storefront/dist/client/~partytown/partytown-media.js +0 -2
  189. package/packages/storefront/dist/client/~partytown/partytown-sw.js +0 -2
  190. package/packages/storefront/dist/client/~partytown/partytown.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { performance } from 'node:perf_hooks';
2
- import { setTimeout as setTimeout$2, clearTimeout as clearTimeout$1 } from 'node:timers';
2
+ import { setTimeout as setTimeout$2, clearTimeout as clearTimeout$2 } from 'node:timers';
3
3
  import { bootstrap } from 'global-agent';
4
4
  import nodeFetch, { Headers as Headers$1, Request as Request$1, Response as Response$1 } from 'node-fetch';
5
5
  import Stream from 'node:stream';
@@ -16,8 +16,8 @@ import { fileURLToPath } from 'url';
16
16
  import http from 'http';
17
17
  import https from 'https';
18
18
  import send from 'send';
19
- import { defineComponent, computed, unref, useSSRContext, h as h$2, createSSRApp, mergeProps, createVNode as createVNode$1, resolveDynamicComponent, withCtx, createTextVNode, toDisplayString, toRefs, ref, watch, toRef, defineAsyncComponent, renderSlot as renderSlot$1, openBlock, createBlock, Fragment as Fragment$1, createCommentVNode, renderList, reactive, resolveComponent } from 'vue';
20
- import { ssrRenderSlotInner, renderToString as renderToString$1, ssrRenderAttrs, ssrRenderSlot, ssrRenderVNode, ssrInterpolate, ssrRenderList, ssrRenderAttr, ssrRenderComponent, ssrRenderClass, ssrIncludeBooleanAttr } from 'vue/server-renderer';
19
+ import { defineComponent, computed, unref, useSSRContext, mergeProps, h as h$2, createSSRApp, inject, ref, watch, toRef, onMounted, onBeforeUnmount, provide, createVNode as createVNode$1, resolveDynamicComponent, withCtx, renderSlot as renderSlot$1, openBlock, createBlock, Fragment as Fragment$1, renderList, reactive, resolveComponent, toDisplayString, createCommentVNode, createTextVNode } from 'vue';
20
+ import { ssrRenderSlotInner, ssrRenderAttrs, ssrRenderSlot, renderToString as renderToString$1, ssrRenderClass, ssrRenderVNode, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderAttr } from 'vue/server-renderer';
21
21
  import { i18n, formatMoney, img, price, onPromotion } from '@ecomplus/utils';
22
22
  /* empty css */import sharp$1 from 'sharp';
23
23
  import api from '@cloudcommerce/api';
@@ -30,7 +30,9 @@ import 'node:path';
30
30
  import 'node:url';
31
31
  import 'magic-string';
32
32
  import 'slash';
33
- /* empty css *//* empty css */import { compile } from 'path-to-regexp';
33
+ /* empty css */import 'lodash/debounce.js';
34
+ import { useElementHover } from '@vueuse/core';
35
+ /* empty css */import { compile } from 'path-to-regexp';
34
36
 
35
37
  /** Returns the function bound to the given object. */
36
38
  const __function_bind = Function.bind.bind(Function.call);
@@ -5648,7 +5650,7 @@ function requestAnimationFrame(callback) {
5648
5650
  function cancelAnimationFrame(requestId) {
5649
5651
  const timeout = INTERNAL$2.pool.get(requestId);
5650
5652
  if (timeout) {
5651
- clearTimeout$1(timeout);
5653
+ clearTimeout$2(timeout);
5652
5654
  INTERNAL$2.pool.delete(requestId);
5653
5655
  }
5654
5656
  }
@@ -5876,7 +5878,7 @@ function requestIdleCallback(callback) {
5876
5878
  function cancelIdleCallback(requestId) {
5877
5879
  const timeout = INTERNAL$1.pool.get(requestId);
5878
5880
  if (timeout) {
5879
- clearTimeout$1(timeout);
5881
+ clearTimeout$2(timeout);
5880
5882
  INTERNAL$1.pool.delete(requestId);
5881
5883
  }
5882
5884
  }
@@ -6127,10 +6129,10 @@ function setTimeout$1(callback, delay = 0, ...args) {
6127
6129
  INTERNAL.pool.set(tick, timeout);
6128
6130
  return tick;
6129
6131
  }
6130
- function clearTimeout(timeoutId) {
6132
+ function clearTimeout$1(timeoutId) {
6131
6133
  const timeout = INTERNAL.pool.get(timeoutId);
6132
6134
  if (timeout) {
6133
- clearTimeout$1(timeout);
6135
+ clearTimeout$2(timeout);
6134
6136
  INTERNAL.pool.delete(timeoutId);
6135
6137
  }
6136
6138
  }
@@ -7102,7 +7104,7 @@ const polyfill = (target, options) => {
7102
7104
  btoa,
7103
7105
  cancelAnimationFrame,
7104
7106
  cancelIdleCallback,
7105
- clearTimeout,
7107
+ clearTimeout: clearTimeout$1,
7106
7108
  fetch: fetch$1,
7107
7109
  requestAnimationFrame,
7108
7110
  requestIdleCallback,
@@ -7435,7 +7437,7 @@ function createComponent(arg1, moduleId) {
7435
7437
  }
7436
7438
  }
7437
7439
 
7438
- const ASTRO_VERSION = "1.7.2";
7440
+ const ASTRO_VERSION = "1.9.2";
7439
7441
 
7440
7442
  function createDeprecatedFetchContentFn() {
7441
7443
  return () => {
@@ -8020,6 +8022,16 @@ Expected \`true\` value but got \`${suffix}\`.`;
8020
8022
  message: (legacyConfigKey) => `Legacy configuration detected: \`${legacyConfigKey}\`.`,
8021
8023
  hint: "Please update your configuration to the new format.\nSee https://astro.build/config for more information."
8022
8024
  },
8025
+ UnknownCLIError: {
8026
+ title: "Unknown CLI Error.",
8027
+ code: 8e3
8028
+ },
8029
+ GenerateContentTypesError: {
8030
+ title: "Failed to generate content types.",
8031
+ code: 8001,
8032
+ message: "`astro sync` command failed to generate content collection types.",
8033
+ hint: "Check your `src/content/config.*` file for typos."
8034
+ },
8023
8035
  UnknownError: {
8024
8036
  title: "Unknown Error.",
8025
8037
  code: 99999
@@ -10870,7 +10882,7 @@ const adapter = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
10870
10882
  start
10871
10883
  }, Symbol.toStringTag, { value: 'Module' }));
10872
10884
 
10873
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
10885
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
10874
10886
  __name: "Fade",
10875
10887
  __ssrInlineRender: true,
10876
10888
  props: {
@@ -10972,13 +10984,51 @@ const _export_sfc = (sfc, props) => {
10972
10984
  return target;
10973
10985
  };
10974
10986
 
10975
- const _sfc_setup$a = _sfc_main$a.setup;
10976
- _sfc_main$a.setup = (props, ctx) => {
10987
+ const _sfc_setup$6 = _sfc_main$6.setup;
10988
+ _sfc_main$6.setup = (props, ctx) => {
10977
10989
  const ssrContext = useSSRContext();
10978
10990
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/globals/Fade.vue");
10979
- return _sfc_setup$a ? _sfc_setup$a(props, ctx) : void 0;
10991
+ return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
10992
+ };
10993
+ const Fade = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-f3719df1"]]);
10994
+
10995
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
10996
+ __name: "ALink",
10997
+ __ssrInlineRender: true,
10998
+ props: {
10999
+ href: null,
11000
+ target: null
11001
+ },
11002
+ setup(__props) {
11003
+ const props = __props;
11004
+ const linkTarget = computed(() => {
11005
+ if (props.target)
11006
+ return props.target;
11007
+ if (props.href.startsWith("http") && globalThis.storefront.settings) {
11008
+ const domain = globalThis.storefront.settings.domain || window.location.host;
11009
+ if (props.href.startsWith(`https://${domain}`))
11010
+ return null;
11011
+ }
11012
+ return null;
11013
+ });
11014
+ return (_ctx, _push, _parent, _attrs) => {
11015
+ _push(`<a${ssrRenderAttrs(mergeProps({
11016
+ href: __props.href,
11017
+ target: unref(linkTarget),
11018
+ rel: unref(linkTarget) === "_blank" ? "noopener" : null
11019
+ }, _attrs))}>`);
11020
+ ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
11021
+ _push(`</a>`);
11022
+ };
11023
+ }
11024
+ });
11025
+
11026
+ const _sfc_setup$5 = _sfc_main$5.setup;
11027
+ _sfc_main$5.setup = (props, ctx) => {
11028
+ const ssrContext = useSSRContext();
11029
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/globals/ALink.vue");
11030
+ return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
10980
11031
  };
10981
- const Fade = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f3719df1"]]);
10982
11032
 
10983
11033
  const formatPercentage = (value, digits = 1) => {
10984
11034
  return Number.isInteger(value) ? `${value}%` : `${value.toFixed(digits)}%`;
@@ -10994,6 +11044,7 @@ const createApp = (app) => {
10994
11044
  }
10995
11045
  });
10996
11046
  app.component("Fade", Fade);
11047
+ app.component("ALink", _sfc_main$5);
10997
11048
  };
10998
11049
 
10999
11050
  /**
@@ -11354,6 +11405,9 @@ const getConfig = _getConfig;
11354
11405
  if (!globalThis.api_prefetch_endpoints) {
11355
11406
  globalThis.api_prefetch_endpoints = ["categories"];
11356
11407
  }
11408
+ if (!globalThis.storefront) {
11409
+ globalThis.storefront = { settings: {} };
11410
+ }
11357
11411
  const setResponseCache = (Astro, maxAge, sMaxAge) => {
11358
11412
  const headerName = "Cache-Control" ;
11359
11413
  let cacheControl = `public, max-age=${maxAge}, must-revalidate`;
@@ -11370,6 +11424,7 @@ const loadPageContext = async (Astro, {
11370
11424
  const urlPath = Astro.url.pathname;
11371
11425
  const { slug } = Astro.params;
11372
11426
  const config = getConfig();
11427
+ globalThis.storefront.settings = config.settings;
11373
11428
  let cmsContent;
11374
11429
  let apiResource;
11375
11430
  let apiDoc;
@@ -11439,6 +11494,8 @@ const loadPageContext = async (Astro, {
11439
11494
  };
11440
11495
  };
11441
11496
 
11497
+ const pwaInfo = {"pwaInDevEnvironment":false,"webManifest":{"href":"/manifest.webmanifest","useCredentials":false,"linkTag":"<link rel=\"manifest\" href=\"/manifest.webmanifest\">"}};
11498
+
11442
11499
  function isRemoteImage(src) {
11443
11500
  return /^(https?:)?\/\//.test(src);
11444
11501
  }
@@ -11575,7 +11632,7 @@ const getImage = async (options) => {
11575
11632
  options.aspectRatio = height ? width / height : 1;
11576
11633
  }
11577
11634
  }
11578
- const imgAttrs = await getImage$1(options);
11635
+ const imgAttrs = await getImage$1({ alt: "", ...options });
11579
11636
  imgAttrs.src += imgAttrs.src.includes("?") ? "&" : "?";
11580
11637
  imgAttrs.src += `V=${({}).DEPLOY_RAND || "_"}`;
11581
11638
  if (typeof imgAttrs.width === "number") {
@@ -11630,7 +11687,6 @@ const $$BaseHead = createComponent(async ($$result, $$props, $$slots) => {
11630
11687
  <meta name="viewport" content="width=device-width">
11631
11688
  <meta name="theme-color"${addAttribute(primaryColor, "content")}>
11632
11689
  <link rel="icon"${addAttribute(favicon, "href")}>
11633
- ${renderTemplate`<link rel="manifest" href="/manifest.webmanifest">`}
11634
11690
  <title>${title}</title>
11635
11691
  <meta name="description"${addAttribute(description, "content")}>
11636
11692
  <meta name="author"${addAttribute(settings.name, "content")}>
@@ -11650,6 +11706,8 @@ ${cmsSocial.fb_app_id && renderTemplate`<meta property="fb:app_id"${addAttribute
11650
11706
  <meta name="twitter:card" content="summary">
11651
11707
  ${cmsSocial.twitter_username && renderTemplate`<meta name="twitter:site"${addAttribute(cmsSocial.twitter_username, "content")}>`}
11652
11708
  <meta name="ecom-store-id"${addAttribute(String(storeId), "content")}>
11709
+ ${pwaInfo && renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": () => renderTemplate`${unescapeHTML(pwaInfo.webManifest.linkTag)}` })}`}
11710
+ ${maybeRenderHead($$result)}
11653
11711
  `;
11654
11712
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro");
11655
11713
 
@@ -11768,505 +11826,335 @@ const $$Base = createComponent(async ($$result, $$props, $$slots) => {
11768
11826
  `;
11769
11827
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Base.astro");
11770
11828
 
11771
- const i19buyOnWhatsApp = "Comprar pelo WhatsApp";
11772
- const i19close = "Fechar";
11773
- const i19myAccount = "Minha conta";
11774
- const i19myAccountAndOrders = "Minha conta e pedidos";
11775
- const i19myOrders = "Meus pedidos";
11776
- const i19openCart = "Abrir carrinho";
11829
+ const carouselKey = Symbol("carousel");
11777
11830
 
11778
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
11779
- __name: "TopBar",
11831
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
11832
+ __name: "CarouselControl",
11780
11833
  __ssrInlineRender: true,
11781
11834
  props: {
11782
- marketingStripe: null,
11783
- hasNavbar: { type: Boolean, default: true },
11784
- pageLinks: null,
11785
- contacts: null,
11786
- hasPhoneLinks: { type: Boolean, default: true },
11787
- hasNetworkLinks: { type: Boolean },
11788
- socialNetworks: { default() {
11789
- return ["facebook", "twitter", "youtube", "pinterest", "instagram", "tiktok"];
11790
- } }
11835
+ direction: { default: 1 }
11791
11836
  },
11792
11837
  setup(__props) {
11838
+ inject(carouselKey);
11793
11839
  return (_ctx, _push, _parent, _attrs) => {
11794
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "top-bar w-full bg-surface" }, _attrs))}>`);
11795
- ssrRenderSlot(_ctx.$slots, "countdown", { marketingStripe: __props.marketingStripe }, () => {
11796
- if (__props.marketingStripe && __props.marketingStripe.text) {
11797
- ssrRenderVNode(_push, createVNode$1(resolveDynamicComponent(__props.marketingStripe.link ? "a" : "div"), {
11798
- class: ["top-bar__countdown block text-sm text-center p-1 whitespace-nowrap overflow-x-auto", __props.marketingStripe.link ? "primary" : "secondary"],
11799
- href: __props.marketingStripe.link
11800
- }, {
11801
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11802
- if (_push2) {
11803
- _push2(`${ssrInterpolate(__props.marketingStripe.text)}`);
11804
- } else {
11805
- return [
11806
- createTextVNode(toDisplayString(__props.marketingStripe.text), 1)
11807
- ];
11808
- }
11809
- }),
11810
- _: 1
11811
- }), _parent);
11812
- } else {
11813
- _push(`<!---->`);
11814
- }
11840
+ _push(`<button${ssrRenderAttrs(mergeProps({
11841
+ type: "button",
11842
+ "aria-label": __props.direction > 0 ? "Pr\xF3ximo" : "Anterior",
11843
+ "data-carousel-control": __props.direction > 0 ? "next" : "previous"
11844
+ }, _attrs))}>`);
11845
+ ssrRenderSlot(_ctx.$slots, "default", {}, () => {
11846
+ _push(`<i class="${ssrRenderClass([__props.direction > 0 ? "i-chevron-right" : "i-chevron-left", "mb-0 z-10"])}"></i>`);
11815
11847
  }, _push, _parent);
11816
- if (__props.hasNavbar) {
11817
- _push(`<div class="top-bar__nav hidden md:block py-2"><div class="container"><div class="flex items-center lg:px-2 xl:px-4"><div class="grow text-xs">`);
11818
- ssrRenderSlot(_ctx.$slots, "page-links", { pageLinks: __props.pageLinks }, () => {
11819
- if (__props.pageLinks) {
11820
- _push(`<nav class="top-bar__page-links inline-block mr-4 font-semibold"><!--[-->`);
11821
- ssrRenderList(__props.pageLinks, ({ link, title }, i) => {
11822
- _push(`<a class="mr-2 lg:mr-3"${ssrRenderAttr("href", link)}>${ssrInterpolate(title)}</a>`);
11823
- });
11824
- _push(`<!--]--></nav>`);
11825
- } else {
11826
- _push(`<!---->`);
11827
- }
11828
- }, _push, _parent);
11829
- ssrRenderSlot(_ctx.$slots, "contact-links", { contacts: __props.contacts, hasPhoneLinks: __props.hasPhoneLinks }, () => {
11830
- if (__props.hasPhoneLinks) {
11831
- _push(`<div class="top-bar__contact-links inline-block">`);
11832
- if (__props.contacts.whatsapp) {
11833
- _push(`<a href="javascript:;" target="_blank" rel="noopener"${ssrRenderAttr("data-whatsapp-tel", __props.contacts.whatsapp.replace(/\D/g, ""))} class="mr-2"><i class="i-whatsapp"></i> ${ssrInterpolate(__props.contacts.whatsapp)}</a>`);
11834
- } else {
11835
- _push(`<!---->`);
11836
- }
11837
- if (__props.contacts.phone && __props.contacts.phone !== __props.contacts.whatsapp) {
11838
- _push(`<a${ssrRenderAttr("href", `tel:+${__props.contacts.phone.replace(/\D/g, "")}`)} target="_blank" rel="noopener" class="mr-2"><i class="i-phone"></i> ${ssrInterpolate(__props.contacts.phone)}</a>`);
11839
- } else {
11840
- _push(`<!---->`);
11841
- }
11842
- _push(`</div>`);
11843
- } else {
11844
- _push(`<!---->`);
11845
- }
11846
- }, _push, _parent);
11847
- _push(`</div>`);
11848
- ssrRenderSlot(_ctx.$slots, "social-networks", { contacts: __props.contacts, hasNetworkLinks: __props.hasNetworkLinks }, () => {
11849
- if (__props.hasNetworkLinks) {
11850
- _push(`<div class="top-bar__social-networks leading-none"><!--[-->`);
11851
- ssrRenderList(__props.socialNetworks, (network) => {
11852
- _push(`<!--[-->`);
11853
- if (__props.contacts[network]) {
11854
- _push(`<a${ssrRenderAttr("href", __props.contacts[network])} target="_blank" rel="noopener" class="ml-2"${ssrRenderAttr("aria-label", `Follow on ${network}`)}>`);
11855
- if (network === "facebook") {
11856
- _push(`<i class="i-facebook"></i>`);
11857
- } else if (network === "youtube") {
11858
- _push(`<i class="i-youtube"></i>`);
11859
- } else if (network === "twitter") {
11860
- _push(`<i class="i-twitter"></i>`);
11861
- } else if (network === "pinterest") {
11862
- _push(`<i class="i-pinterest"></i>`);
11863
- } else if (network === "instagram") {
11864
- _push(`<i class="i-instagram"></i>`);
11865
- } else if (network === "tiktok") {
11866
- _push(`<i class="i-tiktok"></i>`);
11867
- } else {
11868
- _push(`<!---->`);
11869
- }
11870
- _push(`</a>`);
11871
- } else {
11872
- _push(`<!---->`);
11873
- }
11874
- _push(`<!--]-->`);
11875
- });
11876
- _push(`<!--]--></div>`);
11877
- } else {
11878
- _push(`<!---->`);
11879
- }
11880
- }, _push, _parent);
11881
- _push(`</div></div></div>`);
11882
- } else {
11883
- _push(`<!---->`);
11884
- }
11885
- _push(`</div>`);
11848
+ _push(`</button>`);
11886
11849
  };
11887
11850
  }
11888
11851
  });
11889
11852
 
11890
- const _sfc_setup$9 = _sfc_main$9.setup;
11891
- _sfc_main$9.setup = (props, ctx) => {
11853
+ const _sfc_setup$4 = _sfc_main$4.setup;
11854
+ _sfc_main$4.setup = (props, ctx) => {
11892
11855
  const ssrContext = useSSRContext();
11893
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/TopBar.vue");
11894
- return _sfc_setup$9 ? _sfc_setup$9(props, ctx) : void 0;
11856
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/CarouselControl.vue");
11857
+ return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
11895
11858
  };
11896
11859
 
11897
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
11898
- __name: "TheHeader",
11860
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
11861
+ __name: "Carousel",
11899
11862
  __ssrInlineRender: true,
11900
11863
  props: {
11901
- logo: null,
11902
- logoAltHeading: { default: "h2" }
11864
+ as: { default: "ul" },
11865
+ modelValue: { default: 1 },
11866
+ autoplay: null
11903
11867
  },
11904
- setup(__props) {
11868
+ emits: [
11869
+ "update:modelValue",
11870
+ "bound-left",
11871
+ "bound-right"
11872
+ ],
11873
+ setup(__props, { emit }) {
11905
11874
  const props = __props;
11906
- const { logo } = toRefs(props);
11907
- return (_ctx, _push, _parent, _attrs) => {
11908
- _push(`<header${ssrRenderAttrs(mergeProps({ class: "header bg-opacity-90 backdrop-blur-md sticky top-0 z-50 py-1 sm:py-2" }, _attrs))}><div class="container"><div class="grid grid-flow-col auto-cols-max justify-between items-center">`);
11909
- ssrRenderSlot(_ctx.$slots, "aside", {}, () => {
11910
- _push(`<div class="header__aside md:hidden"><div class="i-bars-3-bottom-left"></div></div>`);
11911
- }, _push, _parent);
11912
- ssrRenderSlot(_ctx.$slots, "logo", { logo: unref(logo) }, () => {
11913
- if (unref(logo)) {
11914
- _push(`<a href="/">`);
11915
- ssrRenderVNode(_push, createVNode$1(resolveDynamicComponent(unref(logo).alt && __props.logoAltHeading || "span"), { class: "m-0" }, {
11916
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11917
- if (_push2) {
11918
- _push2(`<img${ssrRenderAttrs(unref(logo))}${_scopeId}>`);
11919
- } else {
11920
- return [
11921
- createVNode$1("img", unref(logo), null, 16)
11922
- ];
11923
- }
11924
- }),
11925
- _: 1
11926
- }), _parent);
11927
- _push(`</a>`);
11928
- } else {
11929
- _push(`<!---->`);
11930
- }
11931
- }, _push, _parent);
11932
- _push(`<div class="flex items-center">`);
11933
- ssrRenderSlot(_ctx.$slots, "actions", {}, () => {
11934
- ssrRenderSlot(_ctx.$slots, "nav", {}, null, _push, _parent);
11935
- ssrRenderSlot(_ctx.$slots, "search", {}, null, _push, _parent);
11936
- ssrRenderSlot(_ctx.$slots, "buttons", {}, null, _push, _parent);
11937
- }, _push, _parent);
11938
- _push(`</div></div></div></header>`);
11875
+ const approximatelyEqual = (v1, v2, epsilon) => {
11876
+ return Math.abs(v1 - v2) <= epsilon;
11939
11877
  };
11940
- }
11941
- });
11942
-
11943
- const _sfc_setup$8 = _sfc_main$8.setup;
11944
- _sfc_main$8.setup = (props, ctx) => {
11945
- const ssrContext = useSSRContext();
11946
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/TheHeader.vue");
11947
- return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
11948
- };
11949
-
11950
- const _sfc_main$7 = {};
11951
-
11952
- function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs) {
11953
- _push(`<a${ssrRenderAttrs(mergeProps({ class: "text-gray-accent hover:text-primary no-underline" }, _attrs))}>`);
11954
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
11955
- _push(`</a>`);
11956
- }
11957
- const _sfc_setup$7 = _sfc_main$7.setup;
11958
- _sfc_main$7.setup = (props, ctx) => {
11959
- const ssrContext = useSSRContext()
11960
- ;(ssrContext.modules || (ssrContext.modules = new Set())).add("src/components/header/HeaderNavLink.vue");
11961
- return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : undefined
11962
- };
11963
- const HeaderNavLink = /*#__PURE__*/_export_sfc(_sfc_main$7, [['ssrRender',_sfc_ssrRender$1]]);
11964
-
11965
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
11966
- __name: "HeaderNav",
11967
- __ssrInlineRender: true,
11968
- setup(__props) {
11969
- return (_ctx, _push, _parent, _attrs) => {
11970
- _push(`<nav${ssrRenderAttrs(mergeProps({ class: "font-semibold px-3" }, _attrs))}>`);
11971
- _push(ssrRenderComponent(HeaderNavLink, null, {
11972
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11973
- if (_push2) {
11974
- _push2(`nav`);
11975
- } else {
11976
- return [
11977
- createTextVNode("nav")
11978
- ];
11979
- }
11980
- }),
11981
- _: 1
11982
- }, _parent));
11983
- _push(`</nav>`);
11878
+ const currentPage = ref(props.modelValue - 1);
11879
+ watch(toRef(props, "modelValue"), (modelValue) => {
11880
+ currentPage.value = modelValue - 1;
11881
+ });
11882
+ watch(currentPage, (current, previous) => {
11883
+ if (current !== previous) {
11884
+ emit("update:modelValue", current + 1);
11885
+ }
11886
+ });
11887
+ const wrapper = ref(null);
11888
+ const isBoundLeft = ref(true);
11889
+ const isBoundRight = ref(false);
11890
+ const slidesWidth = ref([]);
11891
+ const wrapperScrollWidth = ref(0);
11892
+ const wrapperVisibleWidth = ref(0);
11893
+ const currentPos = ref(0);
11894
+ const maxPages = ref(0);
11895
+ ref(null);
11896
+ ref(null);
11897
+ const calcBounds = () => {
11898
+ const _isBoundLeft = approximatelyEqual(currentPos.value, 0, 5);
11899
+ const _isBoundRight = approximatelyEqual(
11900
+ wrapperScrollWidth.value - wrapperVisibleWidth.value,
11901
+ currentPos.value,
11902
+ 5
11903
+ );
11904
+ if (_isBoundLeft) {
11905
+ emit("bound-left", true);
11906
+ }
11907
+ isBoundLeft.value = _isBoundLeft;
11908
+ if (_isBoundRight) {
11909
+ emit("bound-right", true);
11910
+ }
11911
+ isBoundRight.value = _isBoundRight;
11984
11912
  };
11985
- }
11986
- });
11987
-
11988
- const _sfc_setup$6 = _sfc_main$6.setup;
11989
- _sfc_main$6.setup = (props, ctx) => {
11990
- const ssrContext = useSSRContext();
11991
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/header/HeaderNav.vue");
11992
- return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
11993
- };
11994
-
11995
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
11996
- __name: "ADrawer",
11997
- __ssrInlineRender: true,
11998
- props: {
11999
- modelValue: { type: Boolean, default: false },
12000
- placement: { default: "end" }
12001
- },
12002
- emits: ["update:modelValue"],
12003
- setup(__props, { emit }) {
12004
- const props = __props;
12005
- const close = () => emit("update:modelValue", false);
12006
- const container = ref(null);
12007
- const article = ref(null);
12008
- const outsideClickListener = (ev) => {
12009
- if (!article.value?.contains(ev.target)) {
12010
- close();
11913
+ const calcWrapperWidth = () => {
11914
+ wrapperScrollWidth.value = wrapper.value.scrollWidth;
11915
+ wrapperVisibleWidth.value = wrapper.value.offsetWidth;
11916
+ };
11917
+ const calcSlidesWidth = () => {
11918
+ const childNodes = [...wrapper.value.children];
11919
+ slidesWidth.value = childNodes.map((node) => ({
11920
+ offsetLeft: node.offsetLeft,
11921
+ width: node.offsetWidth
11922
+ }));
11923
+ };
11924
+ const calcNextWidth = (direction) => {
11925
+ const nextSlideIndex = direction > 0 ? currentPage.value : currentPage.value + direction;
11926
+ const width = slidesWidth.value[nextSlideIndex].width || 0;
11927
+ if (!width) {
11928
+ return 0;
12011
11929
  }
11930
+ return width * direction;
12012
11931
  };
12013
- const escClickListener = (ev) => {
12014
- if (ev.key === "Escape") {
12015
- close();
11932
+ const calcCurrentPage = () => {
11933
+ const getCurrentPage = slidesWidth.value.findIndex((slide) => {
11934
+ return approximatelyEqual(slide.offsetLeft, currentPos.value, 5);
11935
+ });
11936
+ if (getCurrentPage !== -1 && getCurrentPage !== -2) {
11937
+ currentPage.value = getCurrentPage || 0;
12016
11938
  }
12017
11939
  };
12018
- watch(toRef(props, "modelValue"), async (isOpen) => {
12019
- const header = container.value.closest('[class*="backdrop-"]');
12020
- if (isOpen) {
12021
- document.body.style.overflow = "hidden";
12022
- if (header) {
12023
- header.style.backdropFilter = "none";
12024
- }
12025
- setTimeout(() => {
12026
- document.addEventListener("click", outsideClickListener, { passive: true });
12027
- document.addEventListener("keydown", escClickListener, { passive: true });
12028
- }, 500);
11940
+ const calcCurrentPosition = () => {
11941
+ currentPos.value = wrapper.value.scrollLeft || 0;
11942
+ };
11943
+ const calcMaxPages = () => {
11944
+ const maxPos = wrapperScrollWidth.value - wrapperVisibleWidth.value;
11945
+ maxPages.value = slidesWidth.value.findIndex(({ offsetLeft }) => offsetLeft >= maxPos);
11946
+ };
11947
+ const calcOnInit = () => {
11948
+ if (!wrapper.value) {
11949
+ return;
11950
+ }
11951
+ calcWrapperWidth();
11952
+ calcSlidesWidth();
11953
+ calcCurrentPosition();
11954
+ calcCurrentPage();
11955
+ calcBounds();
11956
+ calcMaxPages();
11957
+ };
11958
+ let autoplayTimer = null;
11959
+ const restartAutoplay = () => {
11960
+ if (props.autoplay) {
11961
+ clearTimeout(autoplayTimer);
11962
+ autoplayTimer = setTimeout(() => {
11963
+ changeSlide(1);
11964
+ }, props.autoplay);
11965
+ }
11966
+ };
11967
+ const changeSlide = (direction) => {
11968
+ if (direction < 0) {
11969
+ if (isBoundLeft.value) {
11970
+ calcMaxPages();
11971
+ currentPage.value = maxPages.value - 1;
11972
+ changeSlide(1);
11973
+ return;
11974
+ }
11975
+ } else if (isBoundRight.value) {
11976
+ currentPage.value = 1;
11977
+ changeSlide(-1);
11978
+ return;
11979
+ }
11980
+ const nextSlideWidth = calcNextWidth(direction);
11981
+ if (nextSlideWidth) {
11982
+ wrapper.value.scrollBy({ left: nextSlideWidth, behavior: "smooth" });
11983
+ restartAutoplay();
11984
+ }
11985
+ };
11986
+ const carousel = ref(null);
11987
+ const isHovered = useElementHover(carousel);
11988
+ watch(isHovered, (_isHovered) => {
11989
+ if (_isHovered) {
11990
+ clearTimeout(autoplayTimer);
12029
11991
  } else {
12030
- document.body.style.overflow = null;
12031
- if (header) {
12032
- setTimeout(() => {
12033
- header.style.backdropFilter = null;
12034
- }, 500);
12035
- }
12036
- document.removeEventListener("click", outsideClickListener);
12037
- document.removeEventListener("keydown", escClickListener);
11992
+ restartAutoplay();
12038
11993
  }
12039
11994
  });
12040
- const transition3dTx = computed(() => {
12041
- return props.placement === "end" ? "100%" : "-100%";
11995
+ onMounted(() => {
11996
+ calcOnInit();
11997
+ });
11998
+ onBeforeUnmount(() => {
11999
+ });
12000
+ provide(carouselKey, {
12001
+ autoplay: toRef(props, "autoplay"),
12002
+ changeSlide,
12003
+ isBoundLeft,
12004
+ isBoundRight
12042
12005
  });
12043
12006
  return (_ctx, _push, _parent, _attrs) => {
12044
- const _cssVars = { style: {
12045
- "--23c6d983": unref(transition3dTx)
12046
- } };
12047
12007
  _push(`<div${ssrRenderAttrs(mergeProps({
12048
- ref_key: "container",
12049
- ref: container
12050
- }, _attrs, _cssVars))} data-v-30d58250>`);
12051
- if (__props.modelValue) {
12052
- _push(`<dialog class="${ssrRenderClass([__props.placement === "end" ? "justify-end" : "justify-start", "drawer p-0"])}"${ssrIncludeBooleanAttr(__props.modelValue) ? " open" : ""} data-v-30d58250><article class="card rounded-none h-full max-h-screen m-0" data-v-30d58250><a href="#close"${ssrRenderAttr("aria-label", unref(i19close))} class="close" data-target="modal-example" data-v-30d58250></a>`);
12053
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12054
- _push(`</article></dialog>`);
12055
- } else {
12056
- _push(`<!---->`);
12057
- }
12058
- _push(`</div>`);
12059
- };
12060
- }
12061
- });
12062
-
12063
- const _sfc_setup$5 = _sfc_main$5.setup;
12064
- _sfc_main$5.setup = (props, ctx) => {
12065
- const ssrContext = useSSRContext();
12066
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/ADrawer.vue");
12067
- return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
12068
- };
12069
- const ADrawer = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-30d58250"]]);
12070
-
12071
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
12072
- __name: "LoginDrawer",
12073
- __ssrInlineRender: true,
12074
- props: {
12075
- accountUrl: { default: "/app/account" },
12076
- additionalLinks: { default: () => [] }
12077
- },
12078
- setup(__props) {
12079
- const isVisible = ref(false);
12080
- const loadingLoginForm = Promise.resolve();
12081
- const LoginForm = defineAsyncComponent(() => loadingLoginForm);
12082
- const isLogged = ref(false);
12083
- return (_ctx, _push, _parent, _attrs) => {
12084
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "login-drawer" }, _attrs))}><div>`);
12085
- ssrRenderSlot(_ctx.$slots, "toggle", { isVisible: isVisible.value }, null, _push, _parent);
12086
- _push(`</div>`);
12087
- _push(ssrRenderComponent(ADrawer, {
12088
- modelValue: isVisible.value,
12089
- "onUpdate:modelValue": ($event) => isVisible.value = $event
12008
+ ref_key: "carousel",
12009
+ ref: carousel,
12010
+ "data-carousel": ""
12011
+ }, _attrs))}>`);
12012
+ ssrRenderVNode(_push, createVNode$1(resolveDynamicComponent(__props.as), {
12013
+ ref_key: "wrapper",
12014
+ ref: wrapper,
12015
+ "data-carousel-wrapper": ""
12090
12016
  }, {
12091
12017
  default: withCtx((_, _push2, _parent2, _scopeId) => {
12092
12018
  if (_push2) {
12093
- ssrRenderSlot(_ctx.$slots, "form", {}, () => {
12094
- _push2(`<div class="w-80"${_scopeId}>`);
12095
- _push2(ssrRenderComponent(unref(LoginForm), {
12096
- onLogin: ($event) => isLogged.value = true,
12097
- onLogout: ($event) => isLogged.value = false
12098
- }, {
12099
- "button-content": withCtx((_2, _push3, _parent3, _scopeId2) => {
12100
- if (_push3) {
12101
- ssrRenderSlot(_ctx.$slots, "form-button-content", {}, null, _push3, _parent3, _scopeId2);
12102
- } else {
12103
- return [
12104
- renderSlot$1(_ctx.$slots, "form-button-content")
12105
- ];
12106
- }
12107
- }),
12108
- _: 3
12109
- }, _parent2, _scopeId));
12110
- _push2(`</div>`);
12111
- }, _push2, _parent2, _scopeId);
12112
- ssrRenderSlot(_ctx.$slots, "nav", { isLogged: isLogged.value }, () => {
12113
- _push2(`<hr${_scopeId}><aside${_scopeId}><nav${_scopeId}><ul${_scopeId}>`);
12114
- if (isLogged.value) {
12115
- _push2(`<!--[--><li${_scopeId}><a${ssrRenderAttr("href", `${__props.accountUrl}/#/orders`)}${_scopeId}>${ssrInterpolate(unref(i19myOrders))}</a></li><li${_scopeId}><a${ssrRenderAttr("href", __props.accountUrl)}${_scopeId}>${ssrInterpolate(unref(i19myAccount))}</a></li><!--]-->`);
12116
- } else {
12117
- _push2(`<!---->`);
12118
- }
12119
- _push2(`<!--[-->`);
12120
- ssrRenderList(__props.additionalLinks, ({ href, isBlank, innerHTML }, i) => {
12121
- _push2(`<li${_scopeId}><a${ssrRenderAttr("href", href)}${ssrRenderAttr("target", isBlank ? "_blank" : null)}${ssrRenderAttr("rel", isBlank ? "noopener" : null)}${_scopeId}>${innerHTML}</a></li>`);
12122
- });
12123
- _push2(`<!--]--></ul></nav></aside>`);
12124
- }, _push2, _parent2, _scopeId);
12019
+ ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
12125
12020
  } else {
12126
12021
  return [
12127
- renderSlot$1(_ctx.$slots, "form", {}, () => [
12128
- createVNode$1("div", { class: "w-80" }, [
12129
- createVNode$1(unref(LoginForm), {
12130
- onLogin: ($event) => isLogged.value = true,
12131
- onLogout: ($event) => isLogged.value = false
12132
- }, {
12133
- "button-content": withCtx(() => [
12134
- renderSlot$1(_ctx.$slots, "form-button-content")
12135
- ]),
12136
- _: 3
12137
- }, 8, ["onLogin", "onLogout"])
12138
- ])
12139
- ]),
12140
- renderSlot$1(_ctx.$slots, "nav", { isLogged: isLogged.value }, () => [
12141
- createVNode$1("hr"),
12142
- createVNode$1("aside", null, [
12143
- createVNode$1("nav", null, [
12144
- createVNode$1("ul", null, [
12145
- isLogged.value ? (openBlock(), createBlock(Fragment$1, { key: 0 }, [
12146
- createVNode$1("li", null, [
12147
- createVNode$1("a", {
12148
- href: `${__props.accountUrl}/#/orders`
12149
- }, toDisplayString(unref(i19myOrders)), 9, ["href"])
12150
- ]),
12151
- createVNode$1("li", null, [
12152
- createVNode$1("a", { href: __props.accountUrl }, toDisplayString(unref(i19myAccount)), 9, ["href"])
12153
- ])
12154
- ], 64)) : createCommentVNode("", true),
12155
- (openBlock(true), createBlock(Fragment$1, null, renderList(__props.additionalLinks, ({ href, isBlank, innerHTML }, i) => {
12156
- return openBlock(), createBlock("li", { key: i }, [
12157
- createVNode$1("a", {
12158
- href,
12159
- target: isBlank ? "_blank" : null,
12160
- rel: isBlank ? "noopener" : null,
12161
- innerHTML
12162
- }, null, 8, ["href", "target", "rel", "innerHTML"])
12163
- ]);
12164
- }), 128))
12165
- ])
12166
- ])
12167
- ])
12168
- ])
12022
+ renderSlot$1(_ctx.$slots, "default")
12169
12023
  ];
12170
12024
  }
12171
12025
  }),
12172
12026
  _: 3
12173
- }, _parent));
12027
+ }), _parent);
12028
+ ssrRenderSlot(_ctx.$slots, "controls", { changeSlide, isBoundLeft: isBoundLeft.value, isBoundRight: isBoundRight.value }, () => {
12029
+ _push(ssrRenderComponent(_sfc_main$4, { direction: -1 }, {
12030
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12031
+ if (_push2) {
12032
+ ssrRenderSlot(_ctx.$slots, "previous", {}, null, _push2, _parent2, _scopeId);
12033
+ } else {
12034
+ return [
12035
+ renderSlot$1(_ctx.$slots, "previous")
12036
+ ];
12037
+ }
12038
+ }),
12039
+ _: 3
12040
+ }, _parent));
12041
+ _push(ssrRenderComponent(_sfc_main$4, null, {
12042
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12043
+ if (_push2) {
12044
+ ssrRenderSlot(_ctx.$slots, "next", {}, null, _push2, _parent2, _scopeId);
12045
+ } else {
12046
+ return [
12047
+ renderSlot$1(_ctx.$slots, "next")
12048
+ ];
12049
+ }
12050
+ }),
12051
+ _: 3
12052
+ }, _parent));
12053
+ }, _push, _parent);
12174
12054
  _push(`</div>`);
12175
12055
  };
12176
12056
  }
12177
12057
  });
12178
12058
 
12179
- const _sfc_setup$4 = _sfc_main$4.setup;
12180
- _sfc_main$4.setup = (props, ctx) => {
12181
- const ssrContext = useSSRContext();
12182
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/LoginDrawer.vue");
12183
- return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
12184
- };
12185
-
12186
- const _sfc_main$3 = {};
12187
-
12188
- function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
12189
- _push(`<a${ssrRenderAttrs(mergeProps({ class: "text-2xl text-gray-accent hover:text-primary no-underline ml-2" }, _attrs))}>`);
12190
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12191
- _push(`</a>`);
12192
- }
12193
12059
  const _sfc_setup$3 = _sfc_main$3.setup;
12194
12060
  _sfc_main$3.setup = (props, ctx) => {
12195
- const ssrContext = useSSRContext()
12196
- ;(ssrContext.modules || (ssrContext.modules = new Set())).add("src/components/header/HeaderButtonLink.vue");
12197
- return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : undefined
12061
+ const ssrContext = useSSRContext();
12062
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/Carousel.vue");
12063
+ return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
12198
12064
  };
12199
- const HeaderButtonLink = /*#__PURE__*/_export_sfc(_sfc_main$3, [['ssrRender',_sfc_ssrRender]]);
12200
12065
 
12201
12066
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12202
- __name: "HeaderButtons",
12067
+ __name: "PitchBar",
12203
12068
  __ssrInlineRender: true,
12204
12069
  props: {
12205
- accountUrl: { default: "/app/account" },
12206
- cartUrl: { default: "/app/#/cart" },
12207
- loginDrawerAdditionalLinks: null
12070
+ slides: null
12208
12071
  },
12209
12072
  setup(__props) {
12210
12073
  return (_ctx, _push, _parent, _attrs) => {
12211
- _push(`<!--[-->`);
12212
- ssrRenderSlot(_ctx.$slots, "account", {}, () => {
12213
- _push(ssrRenderComponent(_sfc_main$4, {
12214
- "account-url": __props.accountUrl,
12215
- "additional-links": __props.loginDrawerAdditionalLinks
12216
- }, {
12217
- toggle: withCtx((_, _push2, _parent2, _scopeId) => {
12218
- if (_push2) {
12219
- _push2(ssrRenderComponent(HeaderButtonLink, {
12220
- href: __props.accountUrl,
12221
- title: unref(i19myAccountAndOrders)
12074
+ _push(`<div${ssrRenderAttrs(mergeProps({
12075
+ "data-pitch-bar": "",
12076
+ class: "bg-base-100"
12077
+ }, _attrs))}><div class="container md:w-2/3 mx-auto px-3 py-1">`);
12078
+ _push(ssrRenderComponent(_sfc_main$3, { autoplay: 7e3 }, {
12079
+ controls: withCtx((_, _push2, _parent2, _scopeId) => {
12080
+ if (_push2) {
12081
+ _push2(`<div class="text-xl leading-none text-base-400"${_scopeId}>`);
12082
+ _push2(ssrRenderComponent(_sfc_main$4, {
12083
+ direction: -1,
12084
+ class: "pr-2 bg-base-100 hover:text-base-700"
12085
+ }, null, _parent2, _scopeId));
12086
+ _push2(ssrRenderComponent(_sfc_main$4, { class: "pl-2 bg-base-100 hover:text-base-700" }, null, _parent2, _scopeId));
12087
+ _push2(`</div>`);
12088
+ } else {
12089
+ return [
12090
+ createVNode$1("div", { class: "text-xl leading-none text-base-400" }, [
12091
+ createVNode$1(_sfc_main$4, {
12092
+ direction: -1,
12093
+ class: "pr-2 bg-base-100 hover:text-base-700"
12094
+ }),
12095
+ createVNode$1(_sfc_main$4, { class: "pl-2 bg-base-100 hover:text-base-700" })
12096
+ ])
12097
+ ];
12098
+ }
12099
+ }),
12100
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12101
+ if (_push2) {
12102
+ _push2(`<!--[-->`);
12103
+ ssrRenderList(__props.slides, ({ href, target, html }, i) => {
12104
+ _push2(`<li${_scopeId}>`);
12105
+ ssrRenderVNode(_push2, createVNode$1(resolveDynamicComponent(href ? "ALink" : "span"), {
12106
+ href,
12107
+ target,
12108
+ class: href ? "hover:underline" : null
12222
12109
  }, {
12223
12110
  default: withCtx((_2, _push3, _parent3, _scopeId2) => {
12224
12111
  if (_push3) {
12225
- _push3(`<div class="i-user-circle"${_scopeId2}></div>`);
12112
+ ssrRenderSlot(_ctx.$slots, "slide", {}, () => {
12113
+ _push3(`<span class="prose text-sm text-base-800"${_scopeId2}>${html}</span>`);
12114
+ }, _push3, _parent3, _scopeId2);
12226
12115
  } else {
12227
12116
  return [
12228
- createVNode$1("div", { class: "i-user-circle" })
12117
+ renderSlot$1(_ctx.$slots, "slide", {}, () => [
12118
+ createVNode$1("span", {
12119
+ innerHTML: html,
12120
+ class: "prose text-sm text-base-800"
12121
+ }, null, 8, ["innerHTML"])
12122
+ ])
12229
12123
  ];
12230
12124
  }
12231
12125
  }),
12232
- _: 1
12233
- }, _parent2, _scopeId));
12234
- } else {
12235
- return [
12236
- createVNode$1(HeaderButtonLink, {
12237
- href: __props.accountUrl,
12238
- title: unref(i19myAccountAndOrders)
12239
- }, {
12240
- default: withCtx(() => [
12241
- createVNode$1("div", { class: "i-user-circle" })
12242
- ]),
12243
- _: 1
12244
- }, 8, ["href", "title"])
12245
- ];
12246
- }
12247
- }),
12248
- _: 1
12249
- }, _parent));
12250
- }, _push, _parent);
12251
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12252
- ssrRenderSlot(_ctx.$slots, "cart", {}, () => {
12253
- _push(ssrRenderComponent(HeaderButtonLink, {
12254
- href: __props.cartUrl,
12255
- title: unref(i19openCart)
12256
- }, {
12257
- default: withCtx((_, _push2, _parent2, _scopeId) => {
12258
- if (_push2) {
12259
- _push2(`<div class="i-shopping-cart"${_scopeId}></div>`);
12260
- } else {
12261
- return [
12262
- createVNode$1("div", { class: "i-shopping-cart" })
12263
- ];
12264
- }
12265
- }),
12266
- _: 1
12267
- }, _parent));
12268
- }, _push, _parent);
12269
- _push(`<!--]-->`);
12126
+ _: 2
12127
+ }), _parent2, _scopeId);
12128
+ _push2(`</li>`);
12129
+ });
12130
+ _push2(`<!--]-->`);
12131
+ } else {
12132
+ return [
12133
+ (openBlock(true), createBlock(Fragment$1, null, renderList(__props.slides, ({ href, target, html }, i) => {
12134
+ return openBlock(), createBlock("li", { key: i }, [
12135
+ (openBlock(), createBlock(resolveDynamicComponent(href ? "ALink" : "span"), {
12136
+ href,
12137
+ target,
12138
+ class: href ? "hover:underline" : null
12139
+ }, {
12140
+ default: withCtx(() => [
12141
+ renderSlot$1(_ctx.$slots, "slide", {}, () => [
12142
+ createVNode$1("span", {
12143
+ innerHTML: html,
12144
+ class: "prose text-sm text-base-800"
12145
+ }, null, 8, ["innerHTML"])
12146
+ ])
12147
+ ]),
12148
+ _: 2
12149
+ }, 1032, ["href", "target", "class"]))
12150
+ ]);
12151
+ }), 128))
12152
+ ];
12153
+ }
12154
+ }),
12155
+ _: 3
12156
+ }, _parent));
12157
+ _push(`</div></div>`);
12270
12158
  };
12271
12159
  }
12272
12160
  });
@@ -12274,11 +12162,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12274
12162
  const _sfc_setup$2 = _sfc_main$2.setup;
12275
12163
  _sfc_main$2.setup = (props, ctx) => {
12276
12164
  const ssrContext = useSSRContext();
12277
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/header/HeaderButtons.vue");
12165
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/PitchBar.vue");
12278
12166
  return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
12279
12167
  };
12280
12168
 
12281
- const $$Astro$9 = createAstro("/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/PagesHeader.astro", "https://ecom2-002.web.app/", "file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/");
12169
+ const $$Astro$9 = createAstro("/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/PagesHeader.astro", "https://ecom2-002.web.app/", "file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/");
12282
12170
  const $$PagesHeader = createComponent(async ($$result, $$props, $$slots) => {
12283
12171
  const Astro2 = $$result.createAstro($$Astro$9, $$props, $$slots);
12284
12172
  Astro2.self = $$PagesHeader;
@@ -12287,78 +12175,23 @@ const $$PagesHeader = createComponent(async ($$result, $$props, $$slots) => {
12287
12175
  apiState,
12288
12176
  settings,
12289
12177
  cms
12290
- },
12291
- logoTransformOptions,
12292
- topBarProps,
12293
- theHeaderProps,
12294
- headerButtonsProps
12178
+ }
12295
12179
  } = Astro2.props;
12296
12180
  const header = cms("header");
12297
- const contacts = cms("contacts");
12298
- let headerCategories = [];
12299
- if (header.categories_list) {
12300
- if (header.categories_list.featured.length) {
12301
- headerCategories = header.categories_list.featured.map((pathAndName) => {
12302
- const [path, name] = pathAndName.split("?");
12303
- return { slug: path.slice(1), name };
12304
- });
12305
- }
12306
- if (header.categories_list.random) {
12307
- const mainCategories = apiState.categories?.filter(({ parent }) => !parent || !parent.slug);
12308
- if (mainCategories) {
12309
- for (let i = 0; i < header.categories_list.random && i < mainCategories.length; i++) {
12310
- if (!headerCategories.find(({ slug }) => mainCategories[i].slug === slug)) {
12311
- headerCategories.push({
12312
- slug: mainCategories[i].slug,
12313
- name: mainCategories[i].name
12314
- });
12315
- }
12316
- }
12317
- }
12318
- }
12319
- header.categories_list.full_width;
12320
- }
12321
- const loginDrawerAdditionalLinks = header.drawer_links?.map(({ title, link }) => ({ href: link, innerHTML: title })) || [];
12322
- if (contacts.whatsapp) {
12323
- loginDrawerAdditionalLinks.unshift({
12324
- href: `https://wa.me/55${contacts.whatsapp.replace(/\D/g, "")}`,
12325
- innerHTML: `<i class="i-whatsapp text-lg"></i> ${i19buyOnWhatsApp}`,
12326
- isBlank: true
12327
- });
12328
- }
12329
- globalThis.TopBarProps = {
12330
- marketingStripe: header.marketing_stripe,
12331
- pageLinks: header.contacts_stripe.pages,
12332
- hasPhoneLinks: header.contacts_stripe.phone_wpp,
12333
- hasNetworkLinks: header.contacts_stripe.socials,
12334
- contacts,
12335
- ...topBarProps
12336
- };
12337
- globalThis.TheHeaderProps = {
12338
- logo: {
12339
- ...await getImage({
12340
- src: settings.logo,
12341
- width: 150,
12342
- format: "webp",
12343
- quality: 90,
12344
- ...logoTransformOptions
12345
- }),
12346
- alt: settings.name
12347
- },
12348
- logoAltHeading: Astro2.url.pathname === "/" ? "h1" : "h2",
12349
- ...theHeaderProps
12350
- };
12351
- globalThis.HeaderButtonsProps = {
12352
- loginDrawerAdditionalLinks,
12353
- ...headerButtonsProps
12354
- };
12355
- return renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": () => renderTemplate`${renderSlot($$result, $$slots["top-bar"], renderTemplate`
12356
- ${renderComponent($$result, "TopBar", _sfc_main$9, { ...globalThis.TopBarProps })}
12357
- `)}${renderSlot($$result, $$slots["header"], renderTemplate`
12358
- ${renderComponent($$result, "TheHeader", _sfc_main$8, { ...globalThis.TheHeaderProps }, { "buttons": () => renderTemplate`${renderComponent($$result, "Fragment", Fragment, { "slot": "buttons" }, { "default": () => renderTemplate`${renderComponent($$result, "HeaderButtons", _sfc_main$2, { "client:idle": true, ...globalThis.HeaderButtonsProps, "client:component-hydration": "idle", "client:component-path": "@@components/header/HeaderButtons.vue", "client:component-export": "default" })}` })}`, "nav": () => renderTemplate`${renderComponent($$result, "Fragment", Fragment, { "slot": "nav" }, { "default": () => renderTemplate`${renderComponent($$result, "HeaderNav", _sfc_main$6, {})}` })}` })}
12181
+ const pitchBar = { slides: [] };
12182
+ if (header.pitch_bar) {
12183
+ pitchBar.slides = header.pitch_bar;
12184
+ } else if (header.marketing_stripe) {
12185
+ pitchBar.slides = [{
12186
+ href: header.marketing_stripe.link,
12187
+ html: header.marketing_stripe.text
12188
+ }];
12189
+ }
12190
+ return renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": () => renderTemplate`${renderSlot($$result, $$slots["pitch-bar"], renderTemplate`
12191
+ ${pitchBar.slides.length && renderTemplate`${renderComponent($$result, "PitchBar", _sfc_main$2, { ...pitchBar, "client:idle": true, "client:component-hydration": "idle", "client:component-path": "@@sf/components/PitchBar.vue", "client:component-export": "default" })}`}
12359
12192
  `)}` })}
12360
12193
  `;
12361
- }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/PagesHeader.astro");
12194
+ }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/PagesHeader.astro");
12362
12195
 
12363
12196
  const $$Astro$8 = createAstro("/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Pages.astro", "https://ecom2-002.web.app/", "file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/");
12364
12197
  const $$Pages = createComponent(async ($$result, $$props, $$slots) => {
@@ -12450,7 +12283,7 @@ const usePrices = (props) => {
12450
12283
  });
12451
12284
  const installmentValue = computed(() => {
12452
12285
  if (installmentsNumber.value >= 2) {
12453
- if (monthlyInterest.value) {
12286
+ if (!monthlyInterest.value) {
12454
12287
  return salePrice.value / installmentsNumber.value;
12455
12288
  }
12456
12289
  const interest = monthlyInterest.value / 100;
@@ -12466,7 +12299,14 @@ const usePrices = (props) => {
12466
12299
  return {};
12467
12300
  });
12468
12301
  const discountLabel = computed(() => {
12469
- return discountObject.value.label || "";
12302
+ const { label } = discountObject.value;
12303
+ if (label) {
12304
+ if (label.includes(" ")) {
12305
+ return label;
12306
+ }
12307
+ return `via ${label}`;
12308
+ }
12309
+ return "";
12470
12310
  });
12471
12311
  const priceWithDiscount = computed(() => {
12472
12312
  return getPriceWithDiscount(salePrice.value, discountObject.value);
@@ -12479,7 +12319,7 @@ const usePrices = (props) => {
12479
12319
  if (pointsPrograms) {
12480
12320
  const programIds = Object.keys(pointsPrograms);
12481
12321
  for (let i = 0; i < programIds.length; i++) {
12482
- const program = pointsPrograms[i];
12322
+ const program = pointsPrograms[programIds[i]];
12483
12323
  if (program && program.earn_percentage > 0) {
12484
12324
  return program;
12485
12325
  }
@@ -12496,11 +12336,11 @@ const usePrices = (props) => {
12496
12336
  const earnPointsPercentage = computed(() => {
12497
12337
  return pointsProgramObject.value.earn_percentage || 0;
12498
12338
  });
12499
- const earnPointsFactor = computed(() => {
12500
- return earnPointsPercentage.value / 100;
12339
+ const cashbackPercentage = computed(() => {
12340
+ return earnPointsPercentage.value * pointsProgramObject.value.ratio;
12501
12341
  });
12502
- const pointsCashback = computed(() => {
12503
- return earnPointsFactor.value > 0 ? salePrice.value * earnPointsFactor.value : 0;
12342
+ const cashbackValue = computed(() => {
12343
+ return cashbackPercentage.value >= 1 ? salePrice.value * (cashbackPercentage.value / 100) : 0;
12504
12344
  });
12505
12345
  return {
12506
12346
  hasVariedPrices,
@@ -12517,8 +12357,8 @@ const usePrices = (props) => {
12517
12357
  pointsMinPrice,
12518
12358
  pointsProgramName,
12519
12359
  earnPointsPercentage,
12520
- earnPointsFactor,
12521
- pointsCashback
12360
+ cashbackPercentage,
12361
+ cashbackValue
12522
12362
  };
12523
12363
  };
12524
12364
 
@@ -12556,8 +12396,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12556
12396
  hasVariedPrices,
12557
12397
  salePrice,
12558
12398
  comparePrice,
12559
- earnPointsPercentage,
12560
- pointsCashback,
12399
+ cashbackPercentage,
12400
+ cashbackValue,
12561
12401
  installmentsNumber,
12562
12402
  monthlyInterest,
12563
12403
  installmentValue,
@@ -12565,222 +12405,217 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12565
12405
  discountLabel
12566
12406
  } = prices;
12567
12407
  const componentVariant = useComponentVariant(props);
12568
- const isFade = ref(false);
12569
- setTimeout(() => {
12570
- isFade.value = true;
12571
- setTimeout(() => {
12572
- isFade.value = false;
12573
- }, 5e3);
12574
- }, 5e3);
12575
12408
  return (_ctx, _push, _parent, _attrs) => {
12576
12409
  const _component_Fade = resolveComponent("Fade");
12577
- ssrRenderSlot(_ctx.$slots, "default", unref(prices), () => {
12578
- _push(`<div${ssrRenderAttr("data-sf-prices", unref(componentVariant))} class="text-base-600">`);
12579
- if (unref(comparePrice)) {
12580
- ssrRenderSlot(_ctx.$slots, "compare", unref(prices), () => {
12581
- _push(`<span${ssrRenderAttr("data-sf-prices-compare", unref(comparePrice))} class="text-base-500 mr-1">`);
12582
- ssrRenderSlot(_ctx.$slots, "compare-pre", {}, () => {
12583
- if (__props.isLiteral) {
12584
- _push(`<small>${ssrInterpolate(`${"De"} `)}</small>`);
12585
- } else {
12586
- _push(`<!---->`);
12587
- }
12588
- }, _push, _parent);
12589
- ssrRenderSlot(_ctx.$slots, "compare-value", unref(prices), () => {
12590
- _push(`<s>${ssrInterpolate(_ctx.$money(unref(comparePrice)))}</s>`);
12591
- }, _push, _parent);
12592
- ssrRenderSlot(_ctx.$slots, "compare-post", {}, () => {
12593
- if (__props.isLiteral) {
12594
- _push(`<small>${ssrInterpolate(` ${"Por"}`)}</small>`);
12595
- } else {
12596
- _push(`<!---->`);
12597
- }
12598
- }, _push, _parent);
12599
- _push(`</span>`);
12600
- }, _push, _parent);
12601
- } else {
12602
- _push(`<!---->`);
12603
- }
12604
- ssrRenderSlot(_ctx.$slots, "sale", unref(prices), () => {
12605
- _push(`<strong${ssrRenderAttr("data-sf-prices-sale", unref(salePrice))} class="inline-block text-base-800">`);
12606
- ssrRenderSlot(_ctx.$slots, "sale-pre", {}, () => {
12607
- if (unref(hasVariedPrices)) {
12608
- _push(`<small>${ssrInterpolate(`${"A partir de"} `)}</small>`);
12410
+ _push(`<div${ssrRenderAttrs(mergeProps({
12411
+ "data-prices": unref(componentVariant),
12412
+ class: "text-base-600"
12413
+ }, _attrs))}>`);
12414
+ if (unref(comparePrice)) {
12415
+ ssrRenderSlot(_ctx.$slots, "compare", { salePrice: unref(salePrice), comparePrice: unref(comparePrice) }, () => {
12416
+ _push(`<span data-prices-compare class="text-base-500 mr-1">`);
12417
+ ssrRenderSlot(_ctx.$slots, "compare-pre", {}, () => {
12418
+ if (__props.isLiteral) {
12419
+ _push(`<small>${ssrInterpolate(`${"De"} `)}</small>`);
12609
12420
  } else {
12610
12421
  _push(`<!---->`);
12611
12422
  }
12612
12423
  }, _push, _parent);
12613
- ssrRenderSlot(_ctx.$slots, "sale-value", unref(prices), () => {
12614
- _push(`${ssrInterpolate(_ctx.$money(unref(salePrice)))}`);
12424
+ ssrRenderSlot(_ctx.$slots, "compare-value", { salePrice: unref(salePrice), comparePrice: unref(comparePrice) }, () => {
12425
+ _push(`<s>${ssrInterpolate(_ctx.$money(unref(comparePrice)))}</s>`);
12426
+ }, _push, _parent);
12427
+ ssrRenderSlot(_ctx.$slots, "compare-post", {}, () => {
12428
+ if (__props.isLiteral) {
12429
+ _push(`<small>${ssrInterpolate(` ${"Por"}`)}</small>`);
12430
+ } else {
12431
+ _push(`<!---->`);
12432
+ }
12615
12433
  }, _push, _parent);
12616
- ssrRenderSlot(_ctx.$slots, "sale-post", {}, null, _push, _parent);
12617
- _push(`</strong>`);
12434
+ _push(`</span>`);
12618
12435
  }, _push, _parent);
12619
- if (unref(pointsCashback)) {
12620
- ssrRenderSlot(_ctx.$slots, "cashback", unref(prices), () => {
12621
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12622
- default: withCtx((_, _push2, _parent2, _scopeId) => {
12623
- if (_push2) {
12624
- if (__props.hasCashback) {
12625
- _push2(`<div${ssrRenderAttr("data-sf-prices-cashback", unref(pointsCashback))}${_scopeId}><span${ssrRenderAttr("data-tooltip", "Receba $1 de volta".replace("$1", _ctx.$percentage(unref(earnPointsPercentage))))}${_scopeId}>`);
12626
- ssrRenderSlot(_ctx.$slots, "cashback-pre", {}, () => {
12627
- _push2(`<i class="i-cashback mr-1"${_scopeId}></i>`);
12628
- }, _push2, _parent2, _scopeId);
12629
- ssrRenderSlot(_ctx.$slots, "cashback-value", unref(prices), () => {
12630
- _push2(`<span class="font-medium"${_scopeId}>${ssrInterpolate(_ctx.$money(unref(pointsCashback)))}</span>`);
12631
- }, _push2, _parent2, _scopeId);
12632
- ssrRenderSlot(_ctx.$slots, "cashback-post", {}, () => {
12633
- _push2(`<small${_scopeId}> cashback</small>`);
12634
- }, _push2, _parent2, _scopeId);
12635
- _push2(`</span></div>`);
12636
- } else {
12637
- _push2(`<!---->`);
12638
- }
12436
+ } else {
12437
+ _push(`<!---->`);
12438
+ }
12439
+ ssrRenderSlot(_ctx.$slots, "sale", { salePrice: unref(salePrice) }, () => {
12440
+ _push(`<strong data-prices-sale class="inline-block text-base-800">`);
12441
+ ssrRenderSlot(_ctx.$slots, "sale-pre", {}, () => {
12442
+ if (unref(hasVariedPrices)) {
12443
+ _push(`<small>${ssrInterpolate(`${"A partir de"} `)}</small>`);
12444
+ } else {
12445
+ _push(`<!---->`);
12446
+ }
12447
+ }, _push, _parent);
12448
+ ssrRenderSlot(_ctx.$slots, "sale-value", { salePrice: unref(salePrice) }, () => {
12449
+ _push(`${ssrInterpolate(_ctx.$money(unref(salePrice)))}`);
12450
+ }, _push, _parent);
12451
+ ssrRenderSlot(_ctx.$slots, "sale-post", {}, null, _push, _parent);
12452
+ _push(`</strong>`);
12453
+ }, _push, _parent);
12454
+ if (unref(cashbackValue)) {
12455
+ ssrRenderSlot(_ctx.$slots, "cashback", { salePrice: unref(salePrice), cashbackValue: unref(cashbackValue), cashbackPercentage: unref(cashbackPercentage) }, () => {
12456
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12457
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12458
+ if (_push2) {
12459
+ if (__props.hasCashback) {
12460
+ _push2(`<div data-prices-cashback class="relative z-10"${_scopeId}><span${ssrRenderAttr("data-tooltip", "Receba $1 de volta".replace("$1", _ctx.$percentage(unref(cashbackPercentage))))}${_scopeId}>`);
12461
+ ssrRenderSlot(_ctx.$slots, "cashback-pre", {}, () => {
12462
+ _push2(`<i class="i-cashback mr-1"${_scopeId}></i>`);
12463
+ }, _push2, _parent2, _scopeId);
12464
+ ssrRenderSlot(_ctx.$slots, "cashback-value", { salePrice: unref(salePrice), cashbackValue: unref(cashbackValue), cashbackPercentage: unref(cashbackPercentage) }, () => {
12465
+ _push2(`<span class="font-medium"${_scopeId}>${ssrInterpolate(_ctx.$money(unref(cashbackValue)))}</span>`);
12466
+ }, _push2, _parent2, _scopeId);
12467
+ ssrRenderSlot(_ctx.$slots, "cashback-post", {}, () => {
12468
+ _push2(`<small${_scopeId}> cashback</small>`);
12469
+ }, _push2, _parent2, _scopeId);
12470
+ _push2(`</span></div>`);
12639
12471
  } else {
12640
- return [
12641
- __props.hasCashback ? (openBlock(), createBlock("div", {
12642
- key: 0,
12643
- "data-sf-prices-cashback": unref(pointsCashback)
12644
- }, [
12645
- createVNode$1("span", {
12646
- "data-tooltip": "Receba $1 de volta".replace("$1", _ctx.$percentage(unref(earnPointsPercentage)))
12647
- }, [
12648
- renderSlot$1(_ctx.$slots, "cashback-pre", {}, () => [
12649
- createVNode$1("i", { class: "i-cashback mr-1" })
12650
- ]),
12651
- renderSlot$1(_ctx.$slots, "cashback-value", unref(prices), () => [
12652
- createVNode$1("span", { class: "font-medium" }, toDisplayString(_ctx.$money(unref(pointsCashback))), 1)
12653
- ]),
12654
- renderSlot$1(_ctx.$slots, "cashback-post", {}, () => [
12655
- createVNode$1("small", null, " cashback")
12656
- ])
12657
- ], 8, ["data-tooltip"])
12658
- ], 8, ["data-sf-prices-cashback"])) : createCommentVNode("", true)
12659
- ];
12472
+ _push2(`<!---->`);
12660
12473
  }
12661
- }),
12662
- _: 3
12663
- }, _parent));
12664
- }, _push, _parent);
12665
- } else {
12666
- _push(`<!---->`);
12667
- }
12668
- if (unref(installmentValue)) {
12669
- ssrRenderSlot(_ctx.$slots, "installment", unref(prices), () => {
12670
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12671
- default: withCtx((_, _push2, _parent2, _scopeId) => {
12672
- if (_push2) {
12673
- if (__props.hasPriceOptions) {
12674
- _push2(`<div${ssrRenderAttr("data-sf-prices-installment", unref(installmentValue))}${_scopeId}>`);
12675
- ssrRenderSlot(_ctx.$slots, "installment-pre", {}, () => {
12676
- if (__props.isLiteral) {
12677
- _push2(`<small${_scopeId}>${ssrInterpolate(`${"At\xE9"} `)}</small>`);
12678
- } else {
12679
- _push2(`<!---->`);
12680
- }
12681
- }, _push2, _parent2, _scopeId);
12682
- ssrRenderSlot(_ctx.$slots, "installment-value", unref(prices), () => {
12683
- _push2(`${ssrInterpolate(unref(installmentsNumber))}x `);
12684
- if (__props.isLiteral) {
12685
- _push2(`<small${_scopeId}>${ssrInterpolate(` ${"De"} `)}</small>`);
12686
- } else {
12687
- _push2(`<!---->`);
12688
- }
12689
- _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money(unref(installmentValue)))}</span>`);
12690
- }, _push2, _parent2, _scopeId);
12691
- ssrRenderSlot(_ctx.$slots, "installment-post", {}, () => {
12692
- if (!unref(monthlyInterest) && __props.isLiteral) {
12693
- _push2(`<small${_scopeId}>${ssrInterpolate("Sem juros")}</small>`);
12694
- } else {
12695
- _push2(`<!---->`);
12696
- }
12697
- }, _push2, _parent2, _scopeId);
12698
- _push2(`</div>`);
12699
- } else {
12700
- _push2(`<!---->`);
12701
- }
12702
- } else {
12703
- return [
12704
- __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12705
- key: 0,
12706
- "data-sf-prices-installment": unref(installmentValue)
12474
+ } else {
12475
+ return [
12476
+ __props.hasCashback ? (openBlock(), createBlock("div", {
12477
+ key: 0,
12478
+ "data-prices-cashback": "",
12479
+ class: "relative z-10"
12480
+ }, [
12481
+ createVNode$1("span", {
12482
+ "data-tooltip": "Receba $1 de volta".replace("$1", _ctx.$percentage(unref(cashbackPercentage)))
12707
12483
  }, [
12708
- renderSlot$1(_ctx.$slots, "installment-pre", {}, () => [
12709
- __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"At\xE9"} `))) : createCommentVNode("", true)
12484
+ renderSlot$1(_ctx.$slots, "cashback-pre", {}, () => [
12485
+ createVNode$1("i", { class: "i-cashback mr-1" })
12710
12486
  ]),
12711
- renderSlot$1(_ctx.$slots, "installment-value", unref(prices), () => [
12712
- createTextVNode(toDisplayString(unref(installmentsNumber)) + "x ", 1),
12713
- __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(` ${"De"} `))) : createCommentVNode("", true),
12714
- createVNode$1("span", null, toDisplayString(_ctx.$money(unref(installmentValue))), 1)
12487
+ renderSlot$1(_ctx.$slots, "cashback-value", { salePrice: unref(salePrice), cashbackValue: unref(cashbackValue), cashbackPercentage: unref(cashbackPercentage) }, () => [
12488
+ createVNode$1("span", { class: "font-medium" }, toDisplayString(_ctx.$money(unref(cashbackValue))), 1)
12715
12489
  ]),
12716
- renderSlot$1(_ctx.$slots, "installment-post", {}, () => [
12717
- !unref(monthlyInterest) && __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString("Sem juros"))) : createCommentVNode("", true)
12490
+ renderSlot$1(_ctx.$slots, "cashback-post", {}, () => [
12491
+ createVNode$1("small", null, " cashback")
12718
12492
  ])
12719
- ], 8, ["data-sf-prices-installment"])) : createCommentVNode("", true)
12720
- ];
12493
+ ], 8, ["data-tooltip"])
12494
+ ])) : createCommentVNode("", true)
12495
+ ];
12496
+ }
12497
+ }),
12498
+ _: 3
12499
+ }, _parent));
12500
+ }, _push, _parent);
12501
+ } else {
12502
+ _push(`<!---->`);
12503
+ }
12504
+ if (unref(installmentValue)) {
12505
+ ssrRenderSlot(_ctx.$slots, "installment", { salePrice: unref(salePrice), installmentValue: unref(installmentValue), installmentsNumber: unref(installmentsNumber), monthlyInterest: unref(monthlyInterest) }, () => {
12506
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12507
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12508
+ if (_push2) {
12509
+ if (__props.hasPriceOptions) {
12510
+ _push2(`<div data-prices-installment${_scopeId}>`);
12511
+ ssrRenderSlot(_ctx.$slots, "installment-pre", {}, () => {
12512
+ if (__props.isLiteral) {
12513
+ _push2(`<small${_scopeId}>${ssrInterpolate(`${"At\xE9"} `)}</small>`);
12514
+ } else {
12515
+ _push2(`<!---->`);
12516
+ }
12517
+ }, _push2, _parent2, _scopeId);
12518
+ ssrRenderSlot(_ctx.$slots, "installment-value", { salePrice: unref(salePrice), installmentValue: unref(installmentValue), installmentsNumber: unref(installmentsNumber), monthlyInterest: unref(monthlyInterest) }, () => {
12519
+ _push2(`${ssrInterpolate(unref(installmentsNumber))}x `);
12520
+ if (__props.isLiteral) {
12521
+ _push2(`<small${_scopeId}>${ssrInterpolate(` ${"De"} `)}</small>`);
12522
+ } else {
12523
+ _push2(`<!---->`);
12524
+ }
12525
+ _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money(unref(installmentValue)))}</span>`);
12526
+ }, _push2, _parent2, _scopeId);
12527
+ ssrRenderSlot(_ctx.$slots, "installment-post", {}, () => {
12528
+ if (!unref(monthlyInterest) && __props.isLiteral) {
12529
+ _push2(`<small${_scopeId}>${ssrInterpolate("Sem juros")}</small>`);
12530
+ } else {
12531
+ _push2(`<!---->`);
12532
+ }
12533
+ }, _push2, _parent2, _scopeId);
12534
+ _push2(`</div>`);
12535
+ } else {
12536
+ _push2(`<!---->`);
12721
12537
  }
12722
- }),
12723
- _: 3
12724
- }, _parent));
12725
- }, _push, _parent);
12726
- } else {
12727
- _push(`<!---->`);
12728
- }
12729
- if (unref(priceWithDiscount) < unref(salePrice)) {
12730
- ssrRenderSlot(_ctx.$slots, "discount", unref(prices), () => {
12731
- _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12732
- default: withCtx((_, _push2, _parent2, _scopeId) => {
12733
- if (_push2) {
12734
- if (__props.hasPriceOptions) {
12735
- _push2(`<div${ssrRenderAttr("data-sf-prices-discount", unref(priceWithDiscount))}${_scopeId}>`);
12736
- ssrRenderSlot(_ctx.$slots, "discount-pre", {}, () => {
12737
- if (!unref(discountLabel)) {
12738
- _push2(`<small${_scopeId}>${ssrInterpolate(`${"A partir de"} `)}</small>`);
12739
- } else {
12740
- _push2(`<!---->`);
12741
- }
12742
- }, _push2, _parent2, _scopeId);
12743
- ssrRenderSlot(_ctx.$slots, "discount-value", unref(prices), () => {
12744
- _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money(unref(priceWithDiscount)))}</span>`);
12745
- }, _push2, _parent2, _scopeId);
12746
- ssrRenderSlot(_ctx.$slots, "discount-post", {}, () => {
12747
- if (unref(discountLabel)) {
12748
- _push2(`<small${_scopeId}>${ssrInterpolate(` ${unref(discountLabel)}`)}</small>`);
12749
- } else {
12750
- _push2(`<!---->`);
12751
- }
12752
- }, _push2, _parent2, _scopeId);
12753
- _push2(`</div>`);
12754
- } else {
12755
- _push2(`<!---->`);
12756
- }
12538
+ } else {
12539
+ return [
12540
+ __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12541
+ key: 0,
12542
+ "data-prices-installment": ""
12543
+ }, [
12544
+ renderSlot$1(_ctx.$slots, "installment-pre", {}, () => [
12545
+ __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"At\xE9"} `))) : createCommentVNode("", true)
12546
+ ]),
12547
+ renderSlot$1(_ctx.$slots, "installment-value", { salePrice: unref(salePrice), installmentValue: unref(installmentValue), installmentsNumber: unref(installmentsNumber), monthlyInterest: unref(monthlyInterest) }, () => [
12548
+ createTextVNode(toDisplayString(unref(installmentsNumber)) + "x ", 1),
12549
+ __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(` ${"De"} `))) : createCommentVNode("", true),
12550
+ createVNode$1("span", null, toDisplayString(_ctx.$money(unref(installmentValue))), 1)
12551
+ ]),
12552
+ renderSlot$1(_ctx.$slots, "installment-post", {}, () => [
12553
+ !unref(monthlyInterest) && __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString("Sem juros"))) : createCommentVNode("", true)
12554
+ ])
12555
+ ])) : createCommentVNode("", true)
12556
+ ];
12557
+ }
12558
+ }),
12559
+ _: 3
12560
+ }, _parent));
12561
+ }, _push, _parent);
12562
+ } else {
12563
+ _push(`<!---->`);
12564
+ }
12565
+ if (unref(priceWithDiscount) < unref(salePrice)) {
12566
+ ssrRenderSlot(_ctx.$slots, "discount", { salePrice: unref(salePrice), priceWithDiscount: unref(priceWithDiscount), discountLabel: unref(discountLabel) }, () => {
12567
+ _push(ssrRenderComponent(_component_Fade, { slide: "down" }, {
12568
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
12569
+ if (_push2) {
12570
+ if (__props.hasPriceOptions) {
12571
+ _push2(`<div data-prices-discount${_scopeId}>`);
12572
+ ssrRenderSlot(_ctx.$slots, "discount-pre", {}, () => {
12573
+ if (!unref(discountLabel)) {
12574
+ _push2(`<small${_scopeId}>${ssrInterpolate(`${"A partir de"} `)}</small>`);
12575
+ } else {
12576
+ _push2(`<!---->`);
12577
+ }
12578
+ }, _push2, _parent2, _scopeId);
12579
+ ssrRenderSlot(_ctx.$slots, "discount-value", { salePrice: unref(salePrice), priceWithDiscount: unref(priceWithDiscount), discountLabel: unref(discountLabel) }, () => {
12580
+ _push2(`<span${_scopeId}>${ssrInterpolate(_ctx.$money(unref(priceWithDiscount)))}</span>`);
12581
+ }, _push2, _parent2, _scopeId);
12582
+ ssrRenderSlot(_ctx.$slots, "discount-post", {}, () => {
12583
+ if (unref(discountLabel)) {
12584
+ _push2(`<small${_scopeId}>${ssrInterpolate(` ${unref(discountLabel)}`)}</small>`);
12585
+ } else {
12586
+ _push2(`<!---->`);
12587
+ }
12588
+ }, _push2, _parent2, _scopeId);
12589
+ _push2(`</div>`);
12757
12590
  } else {
12758
- return [
12759
- __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12760
- key: 0,
12761
- "data-sf-prices-discount": unref(priceWithDiscount)
12762
- }, [
12763
- renderSlot$1(_ctx.$slots, "discount-pre", {}, () => [
12764
- !unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"A partir de"} `))) : createCommentVNode("", true)
12765
- ]),
12766
- renderSlot$1(_ctx.$slots, "discount-value", unref(prices), () => [
12767
- createVNode$1("span", null, toDisplayString(_ctx.$money(unref(priceWithDiscount))), 1)
12768
- ]),
12769
- renderSlot$1(_ctx.$slots, "discount-post", {}, () => [
12770
- unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(` ${unref(discountLabel)}`), 1)) : createCommentVNode("", true)
12771
- ])
12772
- ], 8, ["data-sf-prices-discount"])) : createCommentVNode("", true)
12773
- ];
12591
+ _push2(`<!---->`);
12774
12592
  }
12775
- }),
12776
- _: 3
12777
- }, _parent));
12778
- }, _push, _parent);
12779
- } else {
12780
- _push(`<!---->`);
12781
- }
12782
- _push(`</div>`);
12783
- }, _push, _parent);
12593
+ } else {
12594
+ return [
12595
+ __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12596
+ key: 0,
12597
+ "data-prices-discount": ""
12598
+ }, [
12599
+ renderSlot$1(_ctx.$slots, "discount-pre", {}, () => [
12600
+ !unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"A partir de"} `))) : createCommentVNode("", true)
12601
+ ]),
12602
+ renderSlot$1(_ctx.$slots, "discount-value", { salePrice: unref(salePrice), priceWithDiscount: unref(priceWithDiscount), discountLabel: unref(discountLabel) }, () => [
12603
+ createVNode$1("span", null, toDisplayString(_ctx.$money(unref(priceWithDiscount))), 1)
12604
+ ]),
12605
+ renderSlot$1(_ctx.$slots, "discount-post", {}, () => [
12606
+ unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(` ${unref(discountLabel)}`), 1)) : createCommentVNode("", true)
12607
+ ])
12608
+ ])) : createCommentVNode("", true)
12609
+ ];
12610
+ }
12611
+ }),
12612
+ _: 3
12613
+ }, _parent));
12614
+ }, _push, _parent);
12615
+ } else {
12616
+ _push(`<!---->`);
12617
+ }
12618
+ _push(`</div>`);
12784
12619
  };
12785
12620
  }
12786
12621
  });
@@ -13122,15 +12957,14 @@ const _page5 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
13122
12957
  url: $$url
13123
12958
  }, Symbol.toStringTag, { value: 'Module' }));
13124
12959
 
13125
- const pageMap = new Map([['../../node_modules/.pnpm/@astrojs+image@0.12.1_sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js', _page0],['src/pages/index.astro', _page1],['src/pages/fallback.astro', _page2],['src/pages/app/index.astro', _page3],['src/pages/app/account.astro', _page4],['src/pages/[...slug].astro', _page5],]);
12960
+ const pageMap = new Map([["../../node_modules/.pnpm/@astrojs+image@0.12.1_sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js", _page0],["src/pages/index.astro", _page1],["src/pages/fallback.astro", _page2],["src/pages/app/index.astro", _page3],["src/pages/app/account.astro", _page4],["src/pages/[...slug].astro", _page5],]);
13126
12961
  const renderers = [Object.assign({"name":"astro:jsx","serverEntrypoint":"astro/jsx/server.js","jsxImportSource":"astro"}, { ssr: server_default }),Object.assign({"name":"@astrojs/vue","clientEntrypoint":"@astrojs/vue/client.js","serverEntrypoint":"@astrojs/vue/server.js"}, { ssr: _renderer1 }),];
13127
12962
 
13128
- const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.12.1_sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.15bda576.css","assets/index.e6a09532.css"],"scripts":[{"type":"external","value":"hoisted.f6ee2883.js"},{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.15bda576.css"],"scripts":[{"type":"external","value":"hoisted.f6ee2883.js"},{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.15bda576.css"],"scripts":[{"type":"external","value":"hoisted.f6ee2883.js"},{"type":"external","value":"page.5a6f3db5.js"},{"stage":"head-inline","children":"!(function(w,p,f,c){c=w[p]=Object.assign(w[p]||{},{\"lib\":\"/~partytown/\",\"debug\":false});c[f]=(c[f]||[])})(window,'partytown','forward');/* Partytown 0.7.3 - MIT builder.io */\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\"/\"==(a=(o.lib||\"/~partytown/\")+(o.debug?\"debug/\":\"\"))[0]&&(s=e.querySelectorAll('script[type=\"text/partytown\"]'),i!=t?i.dispatchEvent(new CustomEvent(\"pt1\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\"pt0\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\"partytown-sw.js\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\"statechange\",(function(t){\"activated\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\"script\":\"iframe\"),t||(c.setAttribute(\"style\",\"display:block;width:0;height:0;border:0;visibility:hidden\"),c.setAttribute(\"aria-hidden\",!0)),c.src=a+\"partytown-\"+(t?\"atomics.js?v=0.7.3\":\"sandbox-sw.html?\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t<s.length;t++)(n=e.createElement(\"script\")).innerHTML=s[t].innerHTML,e.head.appendChild(n);c&&c.parentNode.removeChild(c)}function f(){clearTimeout(d)}o=t.partytown||{},i==t&&(o.forward||[]).map((function(e){p=t,e.split(\".\").map((function(e,n,i){p=p[i[n]]=n+1<i.length?\"push\"==i[n+1]?[]:p[i[n]]||{}:function(){(t._ptf=t._ptf||[]).push(i,arguments)}}))})),\"complete\"==e.readyState?u():(t.addEventListener(\"DOMContentLoaded\",u),t.addEventListener(\"load\",u))}(window,document,navigator,top,window.crossOriginIsolated);"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-002.web.app/","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"extendDefaultPlugins":false,"isAstroFlavoredMd":false},"pageMap":null,"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"entry.mjs","@@sf/components/Prices.vue":"Prices.6c44a513.js","@@sf/components/ProductCard.vue":"ProductCard.69bba7fc.js","@astrojs/vue/client.js":"client.2a3e5a58.js","/astro/hoisted.js?q=0":"hoisted.f6ee2883.js","astro:scripts/page.js":"page.5a6f3db5.js","@@components/header/HeaderButtons.vue":"HeaderButtons.300c19e5.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/components/LoginForm.vue":"chunks/LoginForm.7e7d6137.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"chunks/workbox-window.prod.es5.10f2e5ac.js","astro:scripts/before-hydration.js":""},"assets":["/assets/index.e6a09532.css","/assets/server.4d9646d8.css","/assets/_...slug_.15bda576.css","/manifest.webmanifest","/registerSW.js","/HeaderButtons.300c19e5.js","/Prices.6c44a513.js","/ProductCard.69bba7fc.js","/client.2a3e5a58.js","/hoisted.f6ee2883.js","/page.5a6f3db5.js","/robots.txt","/sw.js","/workbox-abdc68aa.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/chunks/HeaderButtons.1abd5bf4.js","/chunks/LoginForm.7e7d6137.js","/chunks/Prices.vue_vue_type_script_setup_true_lang.e4525076.js","/chunks/_plugin-vue_export-helper.fc452b02.js","/chunks/ecom-utils.b0a26608.js","/chunks/preload-helper.1de719f8.js","/chunks/price.ecf7fed4.js","/chunks/runtime-core.esm-bundler.b4556b35.js","/chunks/session-utm.2de8b604.js","/chunks/workbox-window.prod.es5.10f2e5ac.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png","/assets/icons/bootstrap-icons/font/storefront-icons.woff2","/assets/icons/feather-icons/font/storefront-icons.woff2","/assets/icons/font-awesome/font/storefront-icons.woff2","/assets/icons/line-awesome/font/storefront-icons.woff2","/assets/icons/tabler-icons/font/storefront-icons.woff2","/page.5a6f3db5.js","/~partytown/partytown-atomics.js","/~partytown/partytown-media.js","/~partytown/partytown-sw.js","/~partytown/partytown.js"]}), {
12963
+ const _manifest = Object.assign(deserializeManifest({"adapterName":"@astrojs/node","routes":[{"file":"","links":[],"scripts":[],"routeData":{"type":"endpoint","route":"/_image","pattern":"^\\/_image$","segments":[[{"content":"_image","dynamic":false,"spread":false}]],"params":[],"component":"../../node_modules/.pnpm/@astrojs+image@0.12.1_sharp@0.31.3/node_modules/@astrojs/image/dist/endpoint.js","pathname":"/_image","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.fea84512.css","assets/index.90df622b.css"],"scripts":[{"type":"external","value":"hoisted.4671ed15.js"}],"routeData":{"route":"/","type":"page","pattern":"^\\/$","segments":[],"params":[],"component":"src/pages/index.astro","pathname":"/","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.fea84512.css"],"scripts":[{"type":"external","value":"hoisted.4671ed15.js"}],"routeData":{"route":"/fallback","type":"page","pattern":"^\\/fallback\\/?$","segments":[[{"content":"fallback","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/fallback.astro","pathname":"/fallback","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app","type":"page","pattern":"^\\/app\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/index.astro","pathname":"/app","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":[],"scripts":[],"routeData":{"route":"/app/account","type":"page","pattern":"^\\/app\\/account\\/?$","segments":[[{"content":"app","dynamic":false,"spread":false}],[{"content":"account","dynamic":false,"spread":false}]],"params":[],"component":"src/pages/app/account.astro","pathname":"/app/account","_meta":{"trailingSlash":"ignore"}}},{"file":"","links":["assets/_...slug_.fea84512.css"],"scripts":[{"type":"external","value":"hoisted.4671ed15.js"}],"routeData":{"route":"/[...slug]","type":"page","pattern":"^(?:\\/(.*?))?\\/?$","segments":[[{"content":"...slug","dynamic":true,"spread":true}]],"params":["...slug"],"component":"src/pages/[...slug].astro","_meta":{"trailingSlash":"ignore"}}}],"site":"https://ecom2-002.web.app/","base":"/","markdown":{"drafts":false,"syntaxHighlight":"shiki","shikiConfig":{"langs":[],"theme":"github-dark","wrap":false},"remarkPlugins":[],"rehypePlugins":[],"remarkRehype":{},"extendDefaultPlugins":false,"isAstroFlavoredMd":false,"isExperimentalContentCollections":false,"contentDir":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/content/"},"pageMap":null,"renderers":[],"entryModules":{"\u0000@astrojs-ssr-virtual-entry":"entry.mjs","@@sf/components/Prices.vue":"Prices.eaf8a32c.js","@@sf/components/ProductCard.vue":"ProductCard.1106b153.js","@@sf/components/PitchBar.vue":"PitchBar.afe7ff5c.js","@astrojs/vue/client.js":"client.367a6497.js","/astro/hoisted.js?q=0":"hoisted.4671ed15.js","/home/leo/code/ecomplus/cloud-commerce/node_modules/workbox-window/build/workbox-window.prod.es5.mjs":"chunks/workbox-window.prod.es5.10f2e5ac.js","astro:scripts/before-hydration.js":""},"assets":["/assets/index.90df622b.css","/assets/server.4d9646d8.css","/assets/_...slug_.fea84512.css","/manifest.webmanifest","/registerSW.js","/PitchBar.afe7ff5c.js","/Prices.eaf8a32c.js","/ProductCard.1106b153.js","/client.367a6497.js","/hoisted.4671ed15.js","/robots.txt","/sw.js","/workbox-e2ee76b5.js","/admin/config.json","/assets/cms-preview.css","/assets/cms.css","/assets/cvv.png","/assets/img-placeholder.png","/assets/payments.png","/assets/ssl-safe.png","/chunks/Prices.vue_vue_type_script_setup_true_lang.781b6501.js","/chunks/ecom-utils.63984324.js","/chunks/runtime-core.esm-bundler.fa6cdb60.js","/chunks/session-utm.2de8b604.js","/chunks/workbox-window.prod.es5.10f2e5ac.js","/img/icon.png","/img/large-icon.png","/img/uploads/banner1.png","/img/uploads/banner2.png","/img/uploads/banner2.webp","/img/uploads/favicon.png","/img/uploads/headless.png","/img/uploads/headphone.png","/img/uploads/headphone.webp","/img/uploads/icon.png","/img/uploads/large-icon.png","/img/uploads/logo.png","/img/uploads/logo.webp","/img/uploads/og-image.png","/img/uploads/passion.png","/img/uploads/passion.webp","/img/uploads/pwa-reliable.png","/img/uploads/rect8589.png","/img/uploads/rect859.png","/img/uploads/rect89.png","/img/uploads/rect89.webp","/img/uploads/ssl-safe.png","/assets/icons/bootstrap-icons/font/storefront-icons.woff2","/assets/icons/feather-icons/font/storefront-icons.woff2","/assets/icons/font-awesome/font/storefront-icons.woff2","/assets/icons/line-awesome/font/storefront-icons.woff2","/assets/icons/tabler-icons/font/storefront-icons.woff2"]}), {
13129
12964
  pageMap: pageMap,
13130
12965
  renderers: renderers
13131
12966
  });
13132
12967
  const _args = {"mode":"middleware","client":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/dist/client/","server":"file:///home/leo/code/ecomplus/cloud-commerce/packages/storefront/dist/server/","host":false,"port":3000};
13133
-
13134
12968
  const _exports = createExports(_manifest);
13135
12969
  const handler = _exports['handler'];
13136
12970