cloudcommerce 0.1.7 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/CHANGELOG.md +40 -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 +6 -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 +8 -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/machu-picchu-1500.jpg +0 -0
  28. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-ibd-120-80.webp +0 -0
  29. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-organico-120-80.webp +0 -0
  30. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-usda-120-80.webp +0 -0
  31. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/selo-vegano-120-80.webp +0 -0
  32. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/tia-sonia-real.png +0 -0
  33. package/ecomplus-stores/tia-sonia/functions/ssr/public/img/uploads/trustvox.png +0 -0
  34. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/AboutUs.astro +77 -0
  35. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/BrandTestimonials.vue +134 -0
  36. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesGrid.vue +32 -0
  37. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/CategoriesSlider.vue +105 -7
  38. package/ecomplus-stores/tia-sonia/functions/ssr/src/components/HeroBanner.vue +2 -2
  39. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Base.astro +5 -1
  40. package/ecomplus-stores/tia-sonia/functions/ssr/src/layouts/Pages.astro +1 -1
  41. package/ecomplus-stores/tia-sonia/functions/ssr/src/main/Home.astro +116 -25
  42. package/ecomplus-stores/tia-sonia/package.json +1 -1
  43. package/package.json +12 -12
  44. package/packages/api/package.json +1 -1
  45. package/packages/apps/correios/package.json +1 -1
  46. package/packages/apps/custom-payment/package.json +1 -1
  47. package/packages/apps/custom-shipping/package.json +1 -1
  48. package/packages/apps/datafrete/CHANGELOG.md +1 -0
  49. package/packages/apps/datafrete/README.md +1 -0
  50. package/packages/apps/datafrete/lib/datafrete-webhook.d.ts +4 -0
  51. package/packages/apps/datafrete/lib/datafrete-webhook.js +108 -0
  52. package/packages/apps/datafrete/lib/datafrete-webhook.js.map +1 -0
  53. package/packages/apps/datafrete/lib/datafrete.d.ts +2 -0
  54. package/packages/apps/datafrete/lib/datafrete.js +6 -0
  55. package/packages/apps/datafrete/lib/datafrete.js.map +1 -0
  56. package/packages/apps/datafrete/lib/index.d.ts +1 -0
  57. package/packages/apps/datafrete/lib/index.js +2 -0
  58. package/packages/apps/datafrete/lib/index.js.map +1 -0
  59. package/packages/apps/datafrete/lib-mjs/calculate-datafrete.mjs +277 -0
  60. package/packages/apps/datafrete/package.json +37 -0
  61. package/packages/apps/datafrete/src/datafrete-webhook.ts +131 -0
  62. package/packages/apps/datafrete/src/datafrete.ts +7 -0
  63. package/packages/apps/datafrete/src/index.ts +1 -0
  64. package/packages/apps/datafrete/tsconfig.json +6 -0
  65. package/packages/apps/datafrete/webhook.js +1 -0
  66. package/packages/apps/discounts/package.json +1 -1
  67. package/packages/apps/emails/package.json +1 -1
  68. package/packages/apps/fb-conversions/package.json +2 -2
  69. package/packages/apps/frenet/package.json +1 -1
  70. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js +3 -2
  71. package/packages/apps/galaxpay/lib/functions-lib/galaxpay/webhook.js.map +1 -1
  72. package/packages/apps/galaxpay/package.json +1 -1
  73. package/packages/apps/galaxpay/src/functions-lib/galaxpay/webhook.ts +3 -2
  74. package/packages/apps/google-analytics/CHANGELOG.md +1 -0
  75. package/packages/apps/google-analytics/README.md +1 -0
  76. package/packages/apps/google-analytics/lib/google-analytics-events.js +113 -0
  77. package/packages/apps/google-analytics/lib/google-analytics-events.js.map +1 -0
  78. package/packages/apps/google-analytics/lib/index.js +2 -0
  79. package/packages/apps/google-analytics/lib/index.js.map +1 -0
  80. package/packages/apps/google-analytics/package.json +32 -0
  81. package/packages/apps/google-analytics/src/google-analytics-events.ts +151 -0
  82. package/packages/apps/google-analytics/src/index.ts +1 -0
  83. package/packages/apps/google-analytics/tsconfig.json +3 -0
  84. package/packages/apps/google-analytics/types.d.ts +43 -0
  85. package/packages/apps/infinitepay/package.json +1 -1
  86. package/packages/apps/jadlog/package.json +1 -1
  87. package/packages/apps/loyalty-points/package.json +1 -1
  88. package/packages/apps/mercadopago/lib/mp-create-transaction.js +1 -1
  89. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  90. package/packages/apps/mercadopago/lib/mp-webhook.js +2 -7
  91. package/packages/apps/mercadopago/lib/mp-webhook.js.map +1 -1
  92. package/packages/apps/mercadopago/package.json +1 -1
  93. package/packages/apps/mercadopago/src/mp-create-transaction.ts +1 -1
  94. package/packages/apps/mercadopago/src/mp-webhook.ts +3 -8
  95. package/packages/apps/pagarme/lib/pagarme-webhook.js +1 -1
  96. package/packages/apps/pagarme/lib/pagarme-webhook.js.map +1 -1
  97. package/packages/apps/pagarme/package.json +1 -1
  98. package/packages/apps/pagarme/src/pagarme-webhook.ts +1 -1
  99. package/packages/apps/pix/package.json +1 -1
  100. package/packages/apps/tiny-erp/package.json +1 -1
  101. package/packages/cli/package.json +1 -1
  102. package/packages/config/package.json +1 -1
  103. package/packages/emails/package.json +2 -2
  104. package/packages/events/lib/firebase.js +4 -0
  105. package/packages/events/lib/firebase.js.map +1 -1
  106. package/packages/events/package.json +3 -1
  107. package/packages/events/src/firebase.ts +4 -0
  108. package/packages/firebase/lib/config.d.ts +7 -0
  109. package/packages/firebase/lib/config.js +10 -0
  110. package/packages/firebase/lib/config.js.map +1 -1
  111. package/packages/firebase/package.json +1 -1
  112. package/packages/firebase/src/config.ts +11 -0
  113. package/packages/i18n/package.json +1 -1
  114. package/packages/modules/lib/firebase/call-app-module.js +5 -0
  115. package/packages/modules/lib/firebase/call-app-module.js.map +1 -1
  116. package/packages/modules/package.json +3 -2
  117. package/packages/modules/src/firebase/call-app-module.ts +5 -0
  118. package/packages/passport/package.json +1 -1
  119. package/packages/ssr/package.json +4 -3
  120. package/packages/storefront/.eslintrc.cjs +5 -1
  121. package/packages/storefront/astro.config.mjs +9 -24
  122. package/packages/storefront/client.d.ts +6 -8
  123. package/packages/storefront/dist/client/PitchBar.afe7ff5c.js +1 -0
  124. package/packages/storefront/dist/client/Prices.eaf8a32c.js +1 -0
  125. package/packages/storefront/dist/client/ProductCard.1106b153.js +1 -0
  126. package/packages/storefront/dist/client/assets/_...slug_.fea84512.css +1 -0
  127. package/packages/storefront/dist/client/assets/index.90df622b.css +1 -0
  128. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.781b6501.js +1 -0
  129. package/packages/storefront/dist/client/chunks/ecom-utils.63984324.js +1 -0
  130. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.fa6cdb60.js +1 -0
  131. package/packages/storefront/dist/client/client.367a6497.js +1 -0
  132. package/packages/storefront/dist/client/hoisted.4671ed15.js +1 -0
  133. package/packages/storefront/dist/client/sw.js +1 -1
  134. package/packages/storefront/dist/client/workbox-e2ee76b5.js +1 -0
  135. package/packages/storefront/dist/server/entry.mjs +359 -537
  136. package/packages/storefront/package.json +10 -9
  137. package/packages/storefront/src/env.d.ts +9 -0
  138. package/packages/storefront/src/lib/assets/tooltip.css +6 -5
  139. package/packages/storefront/src/lib/components/Carousel.vue +259 -0
  140. package/packages/storefront/src/lib/components/CarouselControl.vue +29 -0
  141. package/packages/storefront/src/lib/components/LoginDrawer.vue +1 -1
  142. package/packages/storefront/src/lib/components/PitchBar.vue +44 -0
  143. package/packages/storefront/src/lib/components/Prices.vue +13 -17
  144. package/packages/storefront/src/lib/components/ProductCard.vue +1 -1
  145. package/packages/storefront/src/lib/components/_injection-keys.ts +9 -0
  146. package/packages/storefront/src/lib/components/globals/ALink.vue +26 -0
  147. package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -5
  148. package/packages/storefront/src/lib/layouts/BaseHead.astro +7 -2
  149. package/packages/storefront/src/lib/layouts/PagesHeader.astro +38 -0
  150. package/packages/storefront/src/lib/pages/_vue.ts +3 -2
  151. package/packages/storefront/src/lib/ssr-context.ts +6 -0
  152. package/packages/storefront/src/vue-globals.d.ts +5 -5
  153. package/packages/storefront/tailwind.config.cjs +12 -6
  154. package/packages/storefront/tsconfig.json +2 -2
  155. package/packages/storefront/uno.config.cjs +4 -4
  156. package/packages/types/package.json +1 -1
  157. package/packages/storefront/dist/client/HeaderButtons.6f668467.js +0 -1
  158. package/packages/storefront/dist/client/Prices.2ada125b.js +0 -1
  159. package/packages/storefront/dist/client/ProductCard.e5bdea60.js +0 -1
  160. package/packages/storefront/dist/client/assets/_...slug_.81b9a00c.css +0 -1
  161. package/packages/storefront/dist/client/assets/index.e6a09532.css +0 -1
  162. package/packages/storefront/dist/client/chunks/HeaderButtons.cfa275db.js +0 -1
  163. package/packages/storefront/dist/client/chunks/LoginForm.1ba3ad0d.js +0 -1441
  164. package/packages/storefront/dist/client/chunks/Prices.vue_vue_type_script_setup_true_lang.9a6ab0d6.js +0 -1
  165. package/packages/storefront/dist/client/chunks/_plugin-vue_export-helper.0d33cd48.js +0 -1
  166. package/packages/storefront/dist/client/chunks/ecom-utils.b0a26608.js +0 -1
  167. package/packages/storefront/dist/client/chunks/preload-helper.1de719f8.js +0 -1
  168. package/packages/storefront/dist/client/chunks/price.ecf7fed4.js +0 -1
  169. package/packages/storefront/dist/client/chunks/runtime-core.esm-bundler.45ba83fa.js +0 -1
  170. package/packages/storefront/dist/client/client.4d2b3a73.js +0 -1
  171. package/packages/storefront/dist/client/hoisted.f6ee2883.js +0 -1
  172. package/packages/storefront/dist/client/page.5a6f3db5.js +0 -1
  173. package/packages/storefront/dist/client/workbox-abdc68aa.js +0 -1
  174. package/packages/storefront/dist/client/~partytown/partytown-atomics.js +0 -2
  175. package/packages/storefront/dist/client/~partytown/partytown-media.js +0 -2
  176. package/packages/storefront/dist/client/~partytown/partytown-sw.js +0 -2
  177. 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.8.0";
7440
+ const ASTRO_VERSION = "1.9.2";
7439
7441
 
7440
7442
  function createDeprecatedFetchContentFn() {
7441
7443
  return () => {
@@ -10880,7 +10882,7 @@ const adapter = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
10880
10882
  start
10881
10883
  }, Symbol.toStringTag, { value: 'Module' }));
10882
10884
 
10883
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
10885
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
10884
10886
  __name: "Fade",
10885
10887
  __ssrInlineRender: true,
10886
10888
  props: {
@@ -10982,13 +10984,51 @@ const _export_sfc = (sfc, props) => {
10982
10984
  return target;
10983
10985
  };
10984
10986
 
10985
- const _sfc_setup$a = _sfc_main$a.setup;
10986
- _sfc_main$a.setup = (props, ctx) => {
10987
+ const _sfc_setup$6 = _sfc_main$6.setup;
10988
+ _sfc_main$6.setup = (props, ctx) => {
10987
10989
  const ssrContext = useSSRContext();
10988
10990
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/globals/Fade.vue");
10989
- 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;
10990
11031
  };
10991
- const Fade = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-f3719df1"]]);
10992
11032
 
10993
11033
  const formatPercentage = (value, digits = 1) => {
10994
11034
  return Number.isInteger(value) ? `${value}%` : `${value.toFixed(digits)}%`;
@@ -11004,6 +11044,7 @@ const createApp = (app) => {
11004
11044
  }
11005
11045
  });
11006
11046
  app.component("Fade", Fade);
11047
+ app.component("ALink", _sfc_main$5);
11007
11048
  };
11008
11049
 
11009
11050
  /**
@@ -11364,6 +11405,9 @@ const getConfig = _getConfig;
11364
11405
  if (!globalThis.api_prefetch_endpoints) {
11365
11406
  globalThis.api_prefetch_endpoints = ["categories"];
11366
11407
  }
11408
+ if (!globalThis.storefront) {
11409
+ globalThis.storefront = { settings: {} };
11410
+ }
11367
11411
  const setResponseCache = (Astro, maxAge, sMaxAge) => {
11368
11412
  const headerName = "Cache-Control" ;
11369
11413
  let cacheControl = `public, max-age=${maxAge}, must-revalidate`;
@@ -11380,6 +11424,7 @@ const loadPageContext = async (Astro, {
11380
11424
  const urlPath = Astro.url.pathname;
11381
11425
  const { slug } = Astro.params;
11382
11426
  const config = getConfig();
11427
+ globalThis.storefront.settings = config.settings;
11383
11428
  let cmsContent;
11384
11429
  let apiResource;
11385
11430
  let apiDoc;
@@ -11449,6 +11494,8 @@ const loadPageContext = async (Astro, {
11449
11494
  };
11450
11495
  };
11451
11496
 
11497
+ const pwaInfo = {"pwaInDevEnvironment":false,"webManifest":{"href":"/manifest.webmanifest","useCredentials":false,"linkTag":"<link rel=\"manifest\" href=\"/manifest.webmanifest\">"}};
11498
+
11452
11499
  function isRemoteImage(src) {
11453
11500
  return /^(https?:)?\/\//.test(src);
11454
11501
  }
@@ -11640,7 +11687,6 @@ const $$BaseHead = createComponent(async ($$result, $$props, $$slots) => {
11640
11687
  <meta name="viewport" content="width=device-width">
11641
11688
  <meta name="theme-color"${addAttribute(primaryColor, "content")}>
11642
11689
  <link rel="icon"${addAttribute(favicon, "href")}>
11643
- ${renderTemplate`<link rel="manifest" href="/manifest.webmanifest">`}
11644
11690
  <title>${title}</title>
11645
11691
  <meta name="description"${addAttribute(description, "content")}>
11646
11692
  <meta name="author"${addAttribute(settings.name, "content")}>
@@ -11660,6 +11706,8 @@ ${cmsSocial.fb_app_id && renderTemplate`<meta property="fb:app_id"${addAttribute
11660
11706
  <meta name="twitter:card" content="summary">
11661
11707
  ${cmsSocial.twitter_username && renderTemplate`<meta name="twitter:site"${addAttribute(cmsSocial.twitter_username, "content")}>`}
11662
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)}
11663
11711
  `;
11664
11712
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/layouts/BaseHead.astro");
11665
11713
 
@@ -11778,505 +11826,335 @@ const $$Base = createComponent(async ($$result, $$props, $$slots) => {
11778
11826
  `;
11779
11827
  }, "/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/layouts/Base.astro");
11780
11828
 
11781
- const i19buyOnWhatsApp = "Comprar pelo WhatsApp";
11782
- const i19close = "Fechar";
11783
- const i19myAccount = "Minha conta";
11784
- const i19myAccountAndOrders = "Minha conta e pedidos";
11785
- const i19myOrders = "Meus pedidos";
11786
- const i19openCart = "Abrir carrinho";
11829
+ const carouselKey = Symbol("carousel");
11787
11830
 
11788
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
11789
- __name: "TopBar",
11831
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
11832
+ __name: "CarouselControl",
11790
11833
  __ssrInlineRender: true,
11791
11834
  props: {
11792
- marketingStripe: null,
11793
- hasNavbar: { type: Boolean, default: true },
11794
- pageLinks: null,
11795
- contacts: null,
11796
- hasPhoneLinks: { type: Boolean, default: true },
11797
- hasNetworkLinks: { type: Boolean },
11798
- socialNetworks: { default() {
11799
- return ["facebook", "twitter", "youtube", "pinterest", "instagram", "tiktok"];
11800
- } }
11835
+ direction: { default: 1 }
11801
11836
  },
11802
11837
  setup(__props) {
11838
+ inject(carouselKey);
11803
11839
  return (_ctx, _push, _parent, _attrs) => {
11804
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "top-bar w-full bg-surface" }, _attrs))}>`);
11805
- ssrRenderSlot(_ctx.$slots, "countdown", { marketingStripe: __props.marketingStripe }, () => {
11806
- if (__props.marketingStripe && __props.marketingStripe.text) {
11807
- ssrRenderVNode(_push, createVNode$1(resolveDynamicComponent(__props.marketingStripe.link ? "a" : "div"), {
11808
- class: ["top-bar__countdown block text-sm text-center p-1 whitespace-nowrap overflow-x-auto", __props.marketingStripe.link ? "primary" : "secondary"],
11809
- href: __props.marketingStripe.link
11810
- }, {
11811
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11812
- if (_push2) {
11813
- _push2(`${ssrInterpolate(__props.marketingStripe.text)}`);
11814
- } else {
11815
- return [
11816
- createTextVNode(toDisplayString(__props.marketingStripe.text), 1)
11817
- ];
11818
- }
11819
- }),
11820
- _: 1
11821
- }), _parent);
11822
- } else {
11823
- _push(`<!---->`);
11824
- }
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>`);
11825
11847
  }, _push, _parent);
11826
- if (__props.hasNavbar) {
11827
- _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">`);
11828
- ssrRenderSlot(_ctx.$slots, "page-links", { pageLinks: __props.pageLinks }, () => {
11829
- if (__props.pageLinks) {
11830
- _push(`<nav class="top-bar__page-links inline-block mr-4 font-semibold"><!--[-->`);
11831
- ssrRenderList(__props.pageLinks, ({ link, title }, i) => {
11832
- _push(`<a class="mr-2 lg:mr-3"${ssrRenderAttr("href", link)}>${ssrInterpolate(title)}</a>`);
11833
- });
11834
- _push(`<!--]--></nav>`);
11835
- } else {
11836
- _push(`<!---->`);
11837
- }
11838
- }, _push, _parent);
11839
- ssrRenderSlot(_ctx.$slots, "contact-links", { contacts: __props.contacts, hasPhoneLinks: __props.hasPhoneLinks }, () => {
11840
- if (__props.hasPhoneLinks) {
11841
- _push(`<div class="top-bar__contact-links inline-block">`);
11842
- if (__props.contacts.whatsapp) {
11843
- _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>`);
11844
- } else {
11845
- _push(`<!---->`);
11846
- }
11847
- if (__props.contacts.phone && __props.contacts.phone !== __props.contacts.whatsapp) {
11848
- _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>`);
11849
- } else {
11850
- _push(`<!---->`);
11851
- }
11852
- _push(`</div>`);
11853
- } else {
11854
- _push(`<!---->`);
11855
- }
11856
- }, _push, _parent);
11857
- _push(`</div>`);
11858
- ssrRenderSlot(_ctx.$slots, "social-networks", { contacts: __props.contacts, hasNetworkLinks: __props.hasNetworkLinks }, () => {
11859
- if (__props.hasNetworkLinks) {
11860
- _push(`<div class="top-bar__social-networks leading-none"><!--[-->`);
11861
- ssrRenderList(__props.socialNetworks, (network) => {
11862
- _push(`<!--[-->`);
11863
- if (__props.contacts[network]) {
11864
- _push(`<a${ssrRenderAttr("href", __props.contacts[network])} target="_blank" rel="noopener" class="ml-2"${ssrRenderAttr("aria-label", `Follow on ${network}`)}>`);
11865
- if (network === "facebook") {
11866
- _push(`<i class="i-facebook"></i>`);
11867
- } else if (network === "youtube") {
11868
- _push(`<i class="i-youtube"></i>`);
11869
- } else if (network === "twitter") {
11870
- _push(`<i class="i-twitter"></i>`);
11871
- } else if (network === "pinterest") {
11872
- _push(`<i class="i-pinterest"></i>`);
11873
- } else if (network === "instagram") {
11874
- _push(`<i class="i-instagram"></i>`);
11875
- } else if (network === "tiktok") {
11876
- _push(`<i class="i-tiktok"></i>`);
11877
- } else {
11878
- _push(`<!---->`);
11879
- }
11880
- _push(`</a>`);
11881
- } else {
11882
- _push(`<!---->`);
11883
- }
11884
- _push(`<!--]-->`);
11885
- });
11886
- _push(`<!--]--></div>`);
11887
- } else {
11888
- _push(`<!---->`);
11889
- }
11890
- }, _push, _parent);
11891
- _push(`</div></div></div>`);
11892
- } else {
11893
- _push(`<!---->`);
11894
- }
11895
- _push(`</div>`);
11848
+ _push(`</button>`);
11896
11849
  };
11897
11850
  }
11898
11851
  });
11899
11852
 
11900
- const _sfc_setup$9 = _sfc_main$9.setup;
11901
- _sfc_main$9.setup = (props, ctx) => {
11853
+ const _sfc_setup$4 = _sfc_main$4.setup;
11854
+ _sfc_main$4.setup = (props, ctx) => {
11902
11855
  const ssrContext = useSSRContext();
11903
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/TopBar.vue");
11904
- 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;
11905
11858
  };
11906
11859
 
11907
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
11908
- __name: "TheHeader",
11860
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
11861
+ __name: "Carousel",
11909
11862
  __ssrInlineRender: true,
11910
11863
  props: {
11911
- logo: null,
11912
- logoAltHeading: { default: "h2" }
11864
+ as: { default: "ul" },
11865
+ modelValue: { default: 1 },
11866
+ autoplay: null
11913
11867
  },
11914
- setup(__props) {
11868
+ emits: [
11869
+ "update:modelValue",
11870
+ "bound-left",
11871
+ "bound-right"
11872
+ ],
11873
+ setup(__props, { emit }) {
11915
11874
  const props = __props;
11916
- const { logo } = toRefs(props);
11917
- return (_ctx, _push, _parent, _attrs) => {
11918
- _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">`);
11919
- ssrRenderSlot(_ctx.$slots, "aside", {}, () => {
11920
- _push(`<div class="header__aside md:hidden"><div class="i-bars-3-bottom-left"></div></div>`);
11921
- }, _push, _parent);
11922
- ssrRenderSlot(_ctx.$slots, "logo", { logo: unref(logo) }, () => {
11923
- if (unref(logo)) {
11924
- _push(`<a href="/">`);
11925
- ssrRenderVNode(_push, createVNode$1(resolveDynamicComponent(unref(logo).alt && __props.logoAltHeading || "span"), { class: "m-0" }, {
11926
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11927
- if (_push2) {
11928
- _push2(`<img${ssrRenderAttrs(unref(logo))}${_scopeId}>`);
11929
- } else {
11930
- return [
11931
- createVNode$1("img", unref(logo), null, 16)
11932
- ];
11933
- }
11934
- }),
11935
- _: 1
11936
- }), _parent);
11937
- _push(`</a>`);
11938
- } else {
11939
- _push(`<!---->`);
11940
- }
11941
- }, _push, _parent);
11942
- _push(`<div class="flex items-center">`);
11943
- ssrRenderSlot(_ctx.$slots, "actions", {}, () => {
11944
- ssrRenderSlot(_ctx.$slots, "nav", {}, null, _push, _parent);
11945
- ssrRenderSlot(_ctx.$slots, "search", {}, null, _push, _parent);
11946
- ssrRenderSlot(_ctx.$slots, "buttons", {}, null, _push, _parent);
11947
- }, _push, _parent);
11948
- _push(`</div></div></div></header>`);
11875
+ const approximatelyEqual = (v1, v2, epsilon) => {
11876
+ return Math.abs(v1 - v2) <= epsilon;
11949
11877
  };
11950
- }
11951
- });
11952
-
11953
- const _sfc_setup$8 = _sfc_main$8.setup;
11954
- _sfc_main$8.setup = (props, ctx) => {
11955
- const ssrContext = useSSRContext();
11956
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/TheHeader.vue");
11957
- return _sfc_setup$8 ? _sfc_setup$8(props, ctx) : void 0;
11958
- };
11959
-
11960
- const _sfc_main$7 = {};
11961
-
11962
- function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs) {
11963
- _push(`<a${ssrRenderAttrs(mergeProps({ class: "text-gray-accent hover:text-primary no-underline" }, _attrs))}>`);
11964
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
11965
- _push(`</a>`);
11966
- }
11967
- const _sfc_setup$7 = _sfc_main$7.setup;
11968
- _sfc_main$7.setup = (props, ctx) => {
11969
- const ssrContext = useSSRContext()
11970
- ;(ssrContext.modules || (ssrContext.modules = new Set())).add("src/components/header/HeaderNavLink.vue");
11971
- return _sfc_setup$7 ? _sfc_setup$7(props, ctx) : undefined
11972
- };
11973
- const HeaderNavLink = /*#__PURE__*/_export_sfc(_sfc_main$7, [['ssrRender',_sfc_ssrRender$1]]);
11974
-
11975
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
11976
- __name: "HeaderNav",
11977
- __ssrInlineRender: true,
11978
- setup(__props) {
11979
- return (_ctx, _push, _parent, _attrs) => {
11980
- _push(`<nav${ssrRenderAttrs(mergeProps({ class: "font-semibold px-3" }, _attrs))}>`);
11981
- _push(ssrRenderComponent(HeaderNavLink, null, {
11982
- default: withCtx((_, _push2, _parent2, _scopeId) => {
11983
- if (_push2) {
11984
- _push2(`nav`);
11985
- } else {
11986
- return [
11987
- createTextVNode("nav")
11988
- ];
11989
- }
11990
- }),
11991
- _: 1
11992
- }, _parent));
11993
- _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;
11994
11912
  };
11995
- }
11996
- });
11997
-
11998
- const _sfc_setup$6 = _sfc_main$6.setup;
11999
- _sfc_main$6.setup = (props, ctx) => {
12000
- const ssrContext = useSSRContext();
12001
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/header/HeaderNav.vue");
12002
- return _sfc_setup$6 ? _sfc_setup$6(props, ctx) : void 0;
12003
- };
12004
-
12005
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
12006
- __name: "ADrawer",
12007
- __ssrInlineRender: true,
12008
- props: {
12009
- modelValue: { type: Boolean, default: false },
12010
- placement: { default: "end" }
12011
- },
12012
- emits: ["update:modelValue"],
12013
- setup(__props, { emit }) {
12014
- const props = __props;
12015
- const close = () => emit("update:modelValue", false);
12016
- const container = ref(null);
12017
- const article = ref(null);
12018
- const outsideClickListener = (ev) => {
12019
- if (!article.value?.contains(ev.target)) {
12020
- 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;
12021
11929
  }
11930
+ return width * direction;
12022
11931
  };
12023
- const escClickListener = (ev) => {
12024
- if (ev.key === "Escape") {
12025
- 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;
12026
11938
  }
12027
11939
  };
12028
- watch(toRef(props, "modelValue"), async (isOpen) => {
12029
- const header = container.value.closest('[class*="backdrop-"]');
12030
- if (isOpen) {
12031
- document.body.style.overflow = "hidden";
12032
- if (header) {
12033
- header.style.backdropFilter = "none";
12034
- }
12035
- setTimeout(() => {
12036
- document.addEventListener("click", outsideClickListener, { passive: true });
12037
- document.addEventListener("keydown", escClickListener, { passive: true });
12038
- }, 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);
12039
11991
  } else {
12040
- document.body.style.overflow = null;
12041
- if (header) {
12042
- setTimeout(() => {
12043
- header.style.backdropFilter = null;
12044
- }, 500);
12045
- }
12046
- document.removeEventListener("click", outsideClickListener);
12047
- document.removeEventListener("keydown", escClickListener);
11992
+ restartAutoplay();
12048
11993
  }
12049
11994
  });
12050
- const transition3dTx = computed(() => {
12051
- 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
12052
12005
  });
12053
12006
  return (_ctx, _push, _parent, _attrs) => {
12054
- const _cssVars = { style: {
12055
- "--23c6d983": unref(transition3dTx)
12056
- } };
12057
12007
  _push(`<div${ssrRenderAttrs(mergeProps({
12058
- ref_key: "container",
12059
- ref: container
12060
- }, _attrs, _cssVars))} data-v-30d58250>`);
12061
- if (__props.modelValue) {
12062
- _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>`);
12063
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12064
- _push(`</article></dialog>`);
12065
- } else {
12066
- _push(`<!---->`);
12067
- }
12068
- _push(`</div>`);
12069
- };
12070
- }
12071
- });
12072
-
12073
- const _sfc_setup$5 = _sfc_main$5.setup;
12074
- _sfc_main$5.setup = (props, ctx) => {
12075
- const ssrContext = useSSRContext();
12076
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/ADrawer.vue");
12077
- return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
12078
- };
12079
- const ADrawer = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-30d58250"]]);
12080
-
12081
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
12082
- __name: "LoginDrawer",
12083
- __ssrInlineRender: true,
12084
- props: {
12085
- accountUrl: { default: "/app/account" },
12086
- additionalLinks: { default: () => [] }
12087
- },
12088
- setup(__props) {
12089
- const isVisible = ref(false);
12090
- const loadingLoginForm = Promise.resolve();
12091
- const LoginForm = defineAsyncComponent(() => loadingLoginForm);
12092
- const isLogged = ref(false);
12093
- return (_ctx, _push, _parent, _attrs) => {
12094
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "login-drawer" }, _attrs))}><div>`);
12095
- ssrRenderSlot(_ctx.$slots, "toggle", { isVisible: isVisible.value }, null, _push, _parent);
12096
- _push(`</div>`);
12097
- _push(ssrRenderComponent(ADrawer, {
12098
- modelValue: isVisible.value,
12099
- "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": ""
12100
12016
  }, {
12101
12017
  default: withCtx((_, _push2, _parent2, _scopeId) => {
12102
12018
  if (_push2) {
12103
- ssrRenderSlot(_ctx.$slots, "form", {}, () => {
12104
- _push2(`<div class="w-80"${_scopeId}>`);
12105
- _push2(ssrRenderComponent(unref(LoginForm), {
12106
- onLogin: ($event) => isLogged.value = true,
12107
- onLogout: ($event) => isLogged.value = false
12108
- }, {
12109
- "button-content": withCtx((_2, _push3, _parent3, _scopeId2) => {
12110
- if (_push3) {
12111
- ssrRenderSlot(_ctx.$slots, "form-button-content", {}, null, _push3, _parent3, _scopeId2);
12112
- } else {
12113
- return [
12114
- renderSlot$1(_ctx.$slots, "form-button-content")
12115
- ];
12116
- }
12117
- }),
12118
- _: 3
12119
- }, _parent2, _scopeId));
12120
- _push2(`</div>`);
12121
- }, _push2, _parent2, _scopeId);
12122
- ssrRenderSlot(_ctx.$slots, "nav", { isLogged: isLogged.value }, () => {
12123
- _push2(`<hr${_scopeId}><aside${_scopeId}><nav${_scopeId}><ul${_scopeId}>`);
12124
- if (isLogged.value) {
12125
- _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><!--]-->`);
12126
- } else {
12127
- _push2(`<!---->`);
12128
- }
12129
- _push2(`<!--[-->`);
12130
- ssrRenderList(__props.additionalLinks, ({ href, isBlank, innerHTML }, i) => {
12131
- _push2(`<li${_scopeId}><a${ssrRenderAttr("href", href)}${ssrRenderAttr("target", isBlank ? "_blank" : null)}${ssrRenderAttr("rel", isBlank ? "noopener" : null)}${_scopeId}>${innerHTML}</a></li>`);
12132
- });
12133
- _push2(`<!--]--></ul></nav></aside>`);
12134
- }, _push2, _parent2, _scopeId);
12019
+ ssrRenderSlot(_ctx.$slots, "default", {}, null, _push2, _parent2, _scopeId);
12135
12020
  } else {
12136
12021
  return [
12137
- renderSlot$1(_ctx.$slots, "form", {}, () => [
12138
- createVNode$1("div", { class: "w-80" }, [
12139
- createVNode$1(unref(LoginForm), {
12140
- onLogin: ($event) => isLogged.value = true,
12141
- onLogout: ($event) => isLogged.value = false
12142
- }, {
12143
- "button-content": withCtx(() => [
12144
- renderSlot$1(_ctx.$slots, "form-button-content")
12145
- ]),
12146
- _: 3
12147
- }, 8, ["onLogin", "onLogout"])
12148
- ])
12149
- ]),
12150
- renderSlot$1(_ctx.$slots, "nav", { isLogged: isLogged.value }, () => [
12151
- createVNode$1("hr"),
12152
- createVNode$1("aside", null, [
12153
- createVNode$1("nav", null, [
12154
- createVNode$1("ul", null, [
12155
- isLogged.value ? (openBlock(), createBlock(Fragment$1, { key: 0 }, [
12156
- createVNode$1("li", null, [
12157
- createVNode$1("a", {
12158
- href: `${__props.accountUrl}/#/orders`
12159
- }, toDisplayString(unref(i19myOrders)), 9, ["href"])
12160
- ]),
12161
- createVNode$1("li", null, [
12162
- createVNode$1("a", { href: __props.accountUrl }, toDisplayString(unref(i19myAccount)), 9, ["href"])
12163
- ])
12164
- ], 64)) : createCommentVNode("", true),
12165
- (openBlock(true), createBlock(Fragment$1, null, renderList(__props.additionalLinks, ({ href, isBlank, innerHTML }, i) => {
12166
- return openBlock(), createBlock("li", { key: i }, [
12167
- createVNode$1("a", {
12168
- href,
12169
- target: isBlank ? "_blank" : null,
12170
- rel: isBlank ? "noopener" : null,
12171
- innerHTML
12172
- }, null, 8, ["href", "target", "rel", "innerHTML"])
12173
- ]);
12174
- }), 128))
12175
- ])
12176
- ])
12177
- ])
12178
- ])
12022
+ renderSlot$1(_ctx.$slots, "default")
12179
12023
  ];
12180
12024
  }
12181
12025
  }),
12182
12026
  _: 3
12183
- }, _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);
12184
12054
  _push(`</div>`);
12185
12055
  };
12186
12056
  }
12187
12057
  });
12188
12058
 
12189
- const _sfc_setup$4 = _sfc_main$4.setup;
12190
- _sfc_main$4.setup = (props, ctx) => {
12191
- const ssrContext = useSSRContext();
12192
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/lib/components/LoginDrawer.vue");
12193
- return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
12194
- };
12195
-
12196
- const _sfc_main$3 = {};
12197
-
12198
- function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
12199
- _push(`<a${ssrRenderAttrs(mergeProps({ class: "text-2xl text-gray-accent hover:text-primary no-underline ml-2" }, _attrs))}>`);
12200
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12201
- _push(`</a>`);
12202
- }
12203
12059
  const _sfc_setup$3 = _sfc_main$3.setup;
12204
12060
  _sfc_main$3.setup = (props, ctx) => {
12205
- const ssrContext = useSSRContext()
12206
- ;(ssrContext.modules || (ssrContext.modules = new Set())).add("src/components/header/HeaderButtonLink.vue");
12207
- 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;
12208
12064
  };
12209
- const HeaderButtonLink = /*#__PURE__*/_export_sfc(_sfc_main$3, [['ssrRender',_sfc_ssrRender]]);
12210
12065
 
12211
12066
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12212
- __name: "HeaderButtons",
12067
+ __name: "PitchBar",
12213
12068
  __ssrInlineRender: true,
12214
12069
  props: {
12215
- accountUrl: { default: "/app/account" },
12216
- cartUrl: { default: "/app/#/cart" },
12217
- loginDrawerAdditionalLinks: null
12070
+ slides: null
12218
12071
  },
12219
12072
  setup(__props) {
12220
12073
  return (_ctx, _push, _parent, _attrs) => {
12221
- _push(`<!--[-->`);
12222
- ssrRenderSlot(_ctx.$slots, "account", {}, () => {
12223
- _push(ssrRenderComponent(_sfc_main$4, {
12224
- "account-url": __props.accountUrl,
12225
- "additional-links": __props.loginDrawerAdditionalLinks
12226
- }, {
12227
- toggle: withCtx((_, _push2, _parent2, _scopeId) => {
12228
- if (_push2) {
12229
- _push2(ssrRenderComponent(HeaderButtonLink, {
12230
- href: __props.accountUrl,
12231
- 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
12232
12109
  }, {
12233
12110
  default: withCtx((_2, _push3, _parent3, _scopeId2) => {
12234
12111
  if (_push3) {
12235
- _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);
12236
12115
  } else {
12237
12116
  return [
12238
- 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
+ ])
12239
12123
  ];
12240
12124
  }
12241
12125
  }),
12242
- _: 1
12243
- }, _parent2, _scopeId));
12244
- } else {
12245
- return [
12246
- createVNode$1(HeaderButtonLink, {
12247
- href: __props.accountUrl,
12248
- title: unref(i19myAccountAndOrders)
12249
- }, {
12250
- default: withCtx(() => [
12251
- createVNode$1("div", { class: "i-user-circle" })
12252
- ]),
12253
- _: 1
12254
- }, 8, ["href", "title"])
12255
- ];
12256
- }
12257
- }),
12258
- _: 1
12259
- }, _parent));
12260
- }, _push, _parent);
12261
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
12262
- ssrRenderSlot(_ctx.$slots, "cart", {}, () => {
12263
- _push(ssrRenderComponent(HeaderButtonLink, {
12264
- href: __props.cartUrl,
12265
- title: unref(i19openCart)
12266
- }, {
12267
- default: withCtx((_, _push2, _parent2, _scopeId) => {
12268
- if (_push2) {
12269
- _push2(`<div class="i-shopping-cart"${_scopeId}></div>`);
12270
- } else {
12271
- return [
12272
- createVNode$1("div", { class: "i-shopping-cart" })
12273
- ];
12274
- }
12275
- }),
12276
- _: 1
12277
- }, _parent));
12278
- }, _push, _parent);
12279
- _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>`);
12280
12158
  };
12281
12159
  }
12282
12160
  });
@@ -12284,11 +12162,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12284
12162
  const _sfc_setup$2 = _sfc_main$2.setup;
12285
12163
  _sfc_main$2.setup = (props, ctx) => {
12286
12164
  const ssrContext = useSSRContext();
12287
- (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");
12288
12166
  return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
12289
12167
  };
12290
12168
 
12291
- 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/");
12292
12170
  const $$PagesHeader = createComponent(async ($$result, $$props, $$slots) => {
12293
12171
  const Astro2 = $$result.createAstro($$Astro$9, $$props, $$slots);
12294
12172
  Astro2.self = $$PagesHeader;
@@ -12297,78 +12175,23 @@ const $$PagesHeader = createComponent(async ($$result, $$props, $$slots) => {
12297
12175
  apiState,
12298
12176
  settings,
12299
12177
  cms
12300
- },
12301
- logoTransformOptions,
12302
- topBarProps,
12303
- theHeaderProps,
12304
- headerButtonsProps
12178
+ }
12305
12179
  } = Astro2.props;
12306
12180
  const header = cms("header");
12307
- const contacts = cms("contacts");
12308
- let headerCategories = [];
12309
- if (header.categories_list) {
12310
- if (header.categories_list.featured.length) {
12311
- headerCategories = header.categories_list.featured.map((pathAndName) => {
12312
- const [path, name] = pathAndName.split("?");
12313
- return { slug: path.slice(1), name };
12314
- });
12315
- }
12316
- if (header.categories_list.random) {
12317
- const mainCategories = apiState.categories?.filter(({ parent }) => !parent || !parent.slug);
12318
- if (mainCategories) {
12319
- for (let i = 0; i < header.categories_list.random && i < mainCategories.length; i++) {
12320
- if (!headerCategories.find(({ slug }) => mainCategories[i].slug === slug)) {
12321
- headerCategories.push({
12322
- slug: mainCategories[i].slug,
12323
- name: mainCategories[i].name
12324
- });
12325
- }
12326
- }
12327
- }
12328
- }
12329
- header.categories_list.full_width;
12330
- }
12331
- const loginDrawerAdditionalLinks = header.drawer_links?.map(({ title, link }) => ({ href: link, innerHTML: title })) || [];
12332
- if (contacts.whatsapp) {
12333
- loginDrawerAdditionalLinks.unshift({
12334
- href: `https://wa.me/55${contacts.whatsapp.replace(/\D/g, "")}`,
12335
- innerHTML: `<i class="i-whatsapp text-lg"></i> ${i19buyOnWhatsApp}`,
12336
- isBlank: true
12337
- });
12338
- }
12339
- globalThis.TopBarProps = {
12340
- marketingStripe: header.marketing_stripe,
12341
- pageLinks: header.contacts_stripe.pages,
12342
- hasPhoneLinks: header.contacts_stripe.phone_wpp,
12343
- hasNetworkLinks: header.contacts_stripe.socials,
12344
- contacts,
12345
- ...topBarProps
12346
- };
12347
- globalThis.TheHeaderProps = {
12348
- logo: {
12349
- ...await getImage({
12350
- src: settings.logo,
12351
- width: 150,
12352
- format: "webp",
12353
- quality: 90,
12354
- ...logoTransformOptions
12355
- }),
12356
- alt: settings.name
12357
- },
12358
- logoAltHeading: Astro2.url.pathname === "/" ? "h1" : "h2",
12359
- ...theHeaderProps
12360
- };
12361
- globalThis.HeaderButtonsProps = {
12362
- loginDrawerAdditionalLinks,
12363
- ...headerButtonsProps
12364
- };
12365
- return renderTemplate`${renderComponent($$result, "Fragment", Fragment, {}, { "default": () => renderTemplate`${renderSlot($$result, $$slots["top-bar"], renderTemplate`
12366
- ${renderComponent($$result, "TopBar", _sfc_main$9, { ...globalThis.TopBarProps })}
12367
- `)}${renderSlot($$result, $$slots["header"], renderTemplate`
12368
- ${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" })}`}
12369
12192
  `)}` })}
12370
12193
  `;
12371
- }, "/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");
12372
12195
 
12373
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/");
12374
12197
  const $$Pages = createComponent(async ($$result, $$props, $$slots) => {
@@ -12585,12 +12408,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12585
12408
  return (_ctx, _push, _parent, _attrs) => {
12586
12409
  const _component_Fade = resolveComponent("Fade");
12587
12410
  _push(`<div${ssrRenderAttrs(mergeProps({
12588
- "data-sf-prices": unref(componentVariant),
12411
+ "data-prices": unref(componentVariant),
12589
12412
  class: "text-base-600"
12590
12413
  }, _attrs))}>`);
12591
12414
  if (unref(comparePrice)) {
12592
12415
  ssrRenderSlot(_ctx.$slots, "compare", { salePrice: unref(salePrice), comparePrice: unref(comparePrice) }, () => {
12593
- _push(`<span${ssrRenderAttr("data-sf-prices-compare", unref(comparePrice))} class="text-base-500 mr-1">`);
12416
+ _push(`<span data-prices-compare class="text-base-500 mr-1">`);
12594
12417
  ssrRenderSlot(_ctx.$slots, "compare-pre", {}, () => {
12595
12418
  if (__props.isLiteral) {
12596
12419
  _push(`<small>${ssrInterpolate(`${"De"} `)}</small>`);
@@ -12614,7 +12437,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12614
12437
  _push(`<!---->`);
12615
12438
  }
12616
12439
  ssrRenderSlot(_ctx.$slots, "sale", { salePrice: unref(salePrice) }, () => {
12617
- _push(`<strong${ssrRenderAttr("data-sf-prices-sale", unref(salePrice))} class="inline-block text-base-800">`);
12440
+ _push(`<strong data-prices-sale class="inline-block text-base-800">`);
12618
12441
  ssrRenderSlot(_ctx.$slots, "sale-pre", {}, () => {
12619
12442
  if (unref(hasVariedPrices)) {
12620
12443
  _push(`<small>${ssrInterpolate(`${"A partir de"} `)}</small>`);
@@ -12634,7 +12457,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12634
12457
  default: withCtx((_, _push2, _parent2, _scopeId) => {
12635
12458
  if (_push2) {
12636
12459
  if (__props.hasCashback) {
12637
- _push2(`<div${ssrRenderAttr("data-sf-prices-cashback", unref(cashbackValue))} class="relative z-10"${_scopeId}><span${ssrRenderAttr("data-tooltip", "Receba $1 de volta".replace("$1", _ctx.$percentage(unref(cashbackPercentage))))}${_scopeId}>`);
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}>`);
12638
12461
  ssrRenderSlot(_ctx.$slots, "cashback-pre", {}, () => {
12639
12462
  _push2(`<i class="i-cashback mr-1"${_scopeId}></i>`);
12640
12463
  }, _push2, _parent2, _scopeId);
@@ -12652,7 +12475,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12652
12475
  return [
12653
12476
  __props.hasCashback ? (openBlock(), createBlock("div", {
12654
12477
  key: 0,
12655
- "data-sf-prices-cashback": unref(cashbackValue),
12478
+ "data-prices-cashback": "",
12656
12479
  class: "relative z-10"
12657
12480
  }, [
12658
12481
  createVNode$1("span", {
@@ -12668,7 +12491,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12668
12491
  createVNode$1("small", null, " cashback")
12669
12492
  ])
12670
12493
  ], 8, ["data-tooltip"])
12671
- ], 8, ["data-sf-prices-cashback"])) : createCommentVNode("", true)
12494
+ ])) : createCommentVNode("", true)
12672
12495
  ];
12673
12496
  }
12674
12497
  }),
@@ -12684,7 +12507,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12684
12507
  default: withCtx((_, _push2, _parent2, _scopeId) => {
12685
12508
  if (_push2) {
12686
12509
  if (__props.hasPriceOptions) {
12687
- _push2(`<div${ssrRenderAttr("data-sf-prices-installment", unref(installmentValue))}${_scopeId}>`);
12510
+ _push2(`<div data-prices-installment${_scopeId}>`);
12688
12511
  ssrRenderSlot(_ctx.$slots, "installment-pre", {}, () => {
12689
12512
  if (__props.isLiteral) {
12690
12513
  _push2(`<small${_scopeId}>${ssrInterpolate(`${"At\xE9"} `)}</small>`);
@@ -12716,7 +12539,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12716
12539
  return [
12717
12540
  __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12718
12541
  key: 0,
12719
- "data-sf-prices-installment": unref(installmentValue)
12542
+ "data-prices-installment": ""
12720
12543
  }, [
12721
12544
  renderSlot$1(_ctx.$slots, "installment-pre", {}, () => [
12722
12545
  __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"At\xE9"} `))) : createCommentVNode("", true)
@@ -12729,7 +12552,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12729
12552
  renderSlot$1(_ctx.$slots, "installment-post", {}, () => [
12730
12553
  !unref(monthlyInterest) && __props.isLiteral ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString("Sem juros"))) : createCommentVNode("", true)
12731
12554
  ])
12732
- ], 8, ["data-sf-prices-installment"])) : createCommentVNode("", true)
12555
+ ])) : createCommentVNode("", true)
12733
12556
  ];
12734
12557
  }
12735
12558
  }),
@@ -12745,7 +12568,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12745
12568
  default: withCtx((_, _push2, _parent2, _scopeId) => {
12746
12569
  if (_push2) {
12747
12570
  if (__props.hasPriceOptions) {
12748
- _push2(`<div${ssrRenderAttr("data-sf-prices-discount", unref(priceWithDiscount))}${_scopeId}>`);
12571
+ _push2(`<div data-prices-discount${_scopeId}>`);
12749
12572
  ssrRenderSlot(_ctx.$slots, "discount-pre", {}, () => {
12750
12573
  if (!unref(discountLabel)) {
12751
12574
  _push2(`<small${_scopeId}>${ssrInterpolate(`${"A partir de"} `)}</small>`);
@@ -12771,7 +12594,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12771
12594
  return [
12772
12595
  __props.hasPriceOptions ? (openBlock(), createBlock("div", {
12773
12596
  key: 0,
12774
- "data-sf-prices-discount": unref(priceWithDiscount)
12597
+ "data-prices-discount": ""
12775
12598
  }, [
12776
12599
  renderSlot$1(_ctx.$slots, "discount-pre", {}, () => [
12777
12600
  !unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(`${"A partir de"} `))) : createCommentVNode("", true)
@@ -12782,7 +12605,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
12782
12605
  renderSlot$1(_ctx.$slots, "discount-post", {}, () => [
12783
12606
  unref(discountLabel) ? (openBlock(), createBlock("small", { key: 0 }, toDisplayString(` ${unref(discountLabel)}`), 1)) : createCommentVNode("", true)
12784
12607
  ])
12785
- ], 8, ["data-sf-prices-discount"])) : createCommentVNode("", true)
12608
+ ])) : createCommentVNode("", true)
12786
12609
  ];
12787
12610
  }
12788
12611
  }),
@@ -13137,12 +12960,11 @@ const _page5 = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
13137
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],]);
13138
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 }),];
13139
12962
 
13140
- 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_.81b9a00c.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_.81b9a00c.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_.81b9a00c.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,"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.2ada125b.js","@@sf/components/ProductCard.vue":"ProductCard.e5bdea60.js","@astrojs/vue/client.js":"client.4d2b3a73.js","/astro/hoisted.js?q=0":"hoisted.f6ee2883.js","astro:scripts/page.js":"page.5a6f3db5.js","@@components/header/HeaderButtons.vue":"HeaderButtons.6f668467.js","/home/leo/code/ecomplus/cloud-commerce/packages/storefront/src/lib/components/LoginForm.vue":"chunks/LoginForm.1ba3ad0d.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_.81b9a00c.css","/manifest.webmanifest","/registerSW.js","/HeaderButtons.6f668467.js","/Prices.2ada125b.js","/ProductCard.e5bdea60.js","/client.4d2b3a73.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.cfa275db.js","/chunks/LoginForm.1ba3ad0d.js","/chunks/Prices.vue_vue_type_script_setup_true_lang.9a6ab0d6.js","/chunks/_plugin-vue_export-helper.0d33cd48.js","/chunks/ecom-utils.b0a26608.js","/chunks/preload-helper.1de719f8.js","/chunks/price.ecf7fed4.js","/chunks/runtime-core.esm-bundler.45ba83fa.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"]}), {
13141
12964
  pageMap: pageMap,
13142
12965
  renderers: renderers
13143
12966
  });
13144
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};
13145
-
13146
12968
  const _exports = createExports(_manifest);
13147
12969
  const handler = _exports['handler'];
13148
12970