cloudcommerce 0.18.2 → 0.19.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 (96) hide show
  1. package/.github/renovate.json +1 -2
  2. package/CHANGELOG.md +26 -0
  3. package/package.json +6 -6
  4. package/packages/api/package.json +1 -1
  5. package/packages/apps/affilate-program/package.json +2 -2
  6. package/packages/apps/correios/package.json +1 -1
  7. package/packages/apps/custom-payment/package.json +1 -1
  8. package/packages/apps/custom-shipping/package.json +1 -1
  9. package/packages/apps/datafrete/package.json +2 -2
  10. package/packages/apps/discounts/package.json +1 -1
  11. package/packages/apps/emails/package.json +2 -2
  12. package/packages/apps/fb-conversions/package.json +2 -2
  13. package/packages/apps/flash-courier/package.json +1 -1
  14. package/packages/apps/frenet/package.json +2 -2
  15. package/packages/apps/galaxpay/package.json +2 -2
  16. package/packages/apps/google-analytics/package.json +2 -2
  17. package/packages/apps/jadlog/package.json +1 -1
  18. package/packages/apps/loyalty-points/package.json +1 -1
  19. package/packages/apps/melhor-envio/package.json +2 -2
  20. package/packages/apps/mercadopago/package.json +2 -2
  21. package/packages/apps/pagarme/package.json +2 -2
  22. package/packages/apps/paghiper/package.json +2 -2
  23. package/packages/apps/pix/package.json +2 -2
  24. package/packages/apps/tiny-erp/package.json +2 -2
  25. package/packages/apps/webhooks/package.json +2 -2
  26. package/packages/cli/package.json +1 -1
  27. package/packages/config/package.json +1 -1
  28. package/packages/emails/package.json +1 -1
  29. package/packages/events/package.json +2 -2
  30. package/packages/feeds/package.json +1 -1
  31. package/packages/firebase/package.json +2 -2
  32. package/packages/i18n/package.json +1 -1
  33. package/packages/modules/package.json +2 -2
  34. package/packages/passport/package.json +2 -2
  35. package/packages/ssr/lib/firebase/serve-storefront.js +81 -72
  36. package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
  37. package/packages/ssr/package.json +3 -3
  38. package/packages/ssr/src/firebase/serve-storefront.ts +89 -84
  39. package/packages/storefront/config/storefront.tailwind.cjs +5 -8
  40. package/packages/storefront/dist/client/_astro/Carousel.62c97a79.js +1 -0
  41. package/packages/storefront/dist/client/_astro/HeroSlider.b2622951.js +1 -0
  42. package/packages/storefront/dist/client/_astro/PitchBar.ed85833a.js +1 -0
  43. package/packages/storefront/dist/client/_astro/ProductShelf.f63b3dc2.js +1 -0
  44. package/packages/storefront/dist/client/_astro/ShopHeader.61f52cad.js +4 -0
  45. package/packages/storefront/dist/client/_astro/_...slug_.c58d7d89.css +1 -0
  46. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.4cb7dd76.js +1 -0
  47. package/packages/storefront/dist/client/_astro/api.4984c5be.js +1 -0
  48. package/packages/storefront/dist/client/_astro/client.8035a95a.js +1 -0
  49. package/packages/storefront/dist/client/_astro/img.abbe849f.js +1 -0
  50. package/packages/storefront/dist/client/_astro/index.b93f3d06.js +1 -0
  51. package/packages/storefront/dist/client/sw.js +1 -1
  52. package/packages/storefront/dist/server/chunks/{_...4cff750f.mjs → _...38dc610a.mjs} +3 -3
  53. package/packages/storefront/dist/server/chunks/{account@_@astro.9bc80fb8.mjs → account@_@astro.691bc27d.mjs} +3 -3
  54. package/packages/storefront/dist/server/chunks/{astro.2df8d1c5.mjs → astro.45d3047f.mjs} +10 -3
  55. package/packages/storefront/dist/server/chunks/{endpoint@_@js.36a1cfa7.mjs → endpoint@_@js.59bf44fe.mjs} +3 -3
  56. package/packages/storefront/dist/server/chunks/{fallback@_@astro.6af59549.mjs → fallback@_@astro.c8a88451.mjs} +3 -3
  57. package/packages/storefront/dist/server/chunks/{index@_@astro.846e70bb.mjs → index@_@astro.d808b7a7.mjs} +3 -3
  58. package/packages/storefront/dist/server/chunks/{index@_@astro.1ea814dc.mjs → index@_@astro.d93b7b12.mjs} +3 -3
  59. package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.906634b2.mjs → _...slug_.astro.b5433bcf.mjs} +119 -30
  60. package/packages/storefront/dist/server/chunks/pages/{account.astro.f630663e.mjs → account.astro.f07cf19e.mjs} +1 -1
  61. package/packages/storefront/dist/server/chunks/pages/{endpoint.js.ffec1d05.mjs → endpoint.js.2c6d6e4a.mjs} +1 -1
  62. package/packages/storefront/dist/server/chunks/pages/{fallback.astro.0a073a86.mjs → fallback.astro.09db7801.mjs} +2 -2
  63. package/packages/storefront/dist/server/chunks/pages/{index.astro.fb8fe537.mjs → index.astro.753ff02c.mjs} +91 -77
  64. package/packages/storefront/dist/server/entry.mjs +9 -9
  65. package/packages/storefront/dist/server/renderers.mjs +2 -2
  66. package/packages/storefront/package.json +5 -5
  67. package/packages/storefront/src/images/get-built-picture.ts +1 -0
  68. package/packages/storefront/src/images/use-ssr-picture.ts +11 -6
  69. package/packages/storefront/src/lib/components/{HeroPicture.astro → Banner.astro} +8 -4
  70. package/packages/storefront/src/lib/composables/use-product-card.ts +10 -11
  71. package/packages/storefront/src/lib/state/shopping-cart/parse-product.ts +6 -3
  72. package/packages/storefront/src/lib/state/shopping-cart.ts +3 -3
  73. package/packages/types/package.json +1 -1
  74. package/packages/storefront/dist/client/_astro/Carousel.533b4b19.js +0 -1
  75. package/packages/storefront/dist/client/_astro/HeroSlider.359c76cc.js +0 -1
  76. package/packages/storefront/dist/client/_astro/PitchBar.75d2999f.js +0 -1
  77. package/packages/storefront/dist/client/_astro/Prices.bd0d3474.js +0 -1
  78. package/packages/storefront/dist/client/_astro/ProductShelf.83c66e3e.js +0 -1
  79. package/packages/storefront/dist/client/_astro/ShopHeader.a06de422.js +0 -4
  80. package/packages/storefront/dist/client/_astro/_...slug_.b19aabfc.css +0 -1
  81. package/packages/storefront/dist/client/_astro/_plugin-vue_export-helper.4e6dc3af.js +0 -1
  82. package/packages/storefront/dist/client/_astro/api.7f62c1ff.js +0 -1
  83. package/packages/storefront/dist/client/_astro/client.24201f93.js +0 -1
  84. package/packages/storefront/dist/client/_astro/img.22ad29ec.js +0 -1
  85. package/packages/storefront/dist/client/_astro/index.ddc27a3a.js +0 -1
  86. package/packages/storefront/dist/client/_astro/modules-info.d6bd555b.js +0 -1
  87. package/packages/storefront/dist/client/_astro/runtime-dom.esm-bundler.578d6e91.js +0 -1
  88. package/packages/storefront/dist/client/img/uploads/banner1.png +0 -0
  89. package/packages/storefront/dist/client/img/uploads/banner2.png +0 -0
  90. package/packages/storefront/dist/client/img/uploads/favicon.png +0 -0
  91. package/packages/storefront/dist/client/img/uploads/headless.png +0 -0
  92. package/packages/storefront/dist/client/img/uploads/headphone.png +0 -0
  93. package/packages/storefront/dist/client/img/uploads/passion.png +0 -0
  94. package/packages/storefront/dist/client/img/uploads/pwa-reliable.png +0 -0
  95. package/packages/storefront/dist/client/img/uploads/rect89.png +0 -0
  96. package/packages/storefront/dist/client/img/uploads/ssl-safe.png +0 -0
@@ -1,6 +1,6 @@
1
1
  export { renderers } from '../renderers.mjs';
2
2
  export { onRequest } from '../_empty-middleware.mjs';
3
- import './astro.2df8d1c5.mjs';
3
+ import './astro.45d3047f.mjs';
4
4
  import 'path-to-regexp';
5
5
  import 'cookie';
6
6
  import '@astrojs/internal-helpers/path';
@@ -14,7 +14,7 @@ import 'string-width';
14
14
  import 'vue';
15
15
  import 'vue/server-renderer';
16
16
  import '@ecomplus/utils';
17
- import './pages/_...slug_.astro.906634b2.mjs';
17
+ import './pages/_...slug_.astro.b5433bcf.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'node:path';
20
20
  import 'node:url';
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
30
30
  /* empty css */import '@vueuse/core';
31
31
  import '@headlessui/vue';
32
32
 
33
- const page = () => import('./pages/account.astro.f630663e.mjs');
33
+ const page = () => import('./pages/account.astro.f07cf19e.mjs');
34
34
 
35
35
  export { page };
@@ -463,8 +463,8 @@ Expected \`${defaultExpectedValue}\` value but got \`${suffix}\`.`;
463
463
  title: "Unsupported image format",
464
464
  message: (format, imagePath, supportedFormats) => `Received unsupported format \`${format}\` from \`${imagePath}\`. Currently only ${supportedFormats.join(
465
465
  ", "
466
- )} are supported for optimization.`,
467
- hint: "If you do not need optimization, using an `img` tag directly instead of the `Image` component might be what you're looking for."
466
+ )} are supported by our image services.`,
467
+ hint: "Using an `img` tag directly instead of the `Image` component might be what you're looking for."
468
468
  },
469
469
  /**
470
470
  * @docs
@@ -1145,7 +1145,7 @@ function createComponent(arg1, moduleId) {
1145
1145
  }
1146
1146
  }
1147
1147
 
1148
- const ASTRO_VERSION = "2.8.0";
1148
+ const ASTRO_VERSION = "2.8.3";
1149
1149
 
1150
1150
  function createAstroGlobFn() {
1151
1151
  const globHandler = (importMetaGlobResult) => {
@@ -2763,6 +2763,13 @@ function createResponseClass() {
2763
2763
  }
2764
2764
  return super.arrayBuffer();
2765
2765
  }
2766
+ clone() {
2767
+ return new StreamingCompatibleResponse(this.#body, {
2768
+ status: this.status,
2769
+ statusText: this.statusText,
2770
+ headers: this.headers
2771
+ });
2772
+ }
2766
2773
  };
2767
2774
  return StreamingCompatibleResponse;
2768
2775
  }
@@ -1,6 +1,6 @@
1
1
  export { renderers } from '../renderers.mjs';
2
2
  export { onRequest } from '../_empty-middleware.mjs';
3
- import './astro.2df8d1c5.mjs';
3
+ import './astro.45d3047f.mjs';
4
4
  import 'path-to-regexp';
5
5
  import 'cookie';
6
6
  import '@astrojs/internal-helpers/path';
@@ -14,7 +14,7 @@ import 'string-width';
14
14
  import 'vue';
15
15
  import 'vue/server-renderer';
16
16
  import '@ecomplus/utils';
17
- import './pages/_...slug_.astro.906634b2.mjs';
17
+ import './pages/_...slug_.astro.b5433bcf.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'node:path';
20
20
  import 'node:url';
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
30
30
  /* empty css */import '@vueuse/core';
31
31
  import '@headlessui/vue';
32
32
 
33
- const page = () => import('./pages/endpoint.js.ffec1d05.mjs').then(n => n.e);
33
+ const page = () => import('./pages/endpoint.js.2c6d6e4a.mjs').then(n => n.e);
34
34
 
35
35
  export { page };
@@ -1,6 +1,6 @@
1
1
  export { renderers } from '../renderers.mjs';
2
2
  export { onRequest } from '../_empty-middleware.mjs';
3
- import './astro.2df8d1c5.mjs';
3
+ import './astro.45d3047f.mjs';
4
4
  import 'path-to-regexp';
5
5
  import 'cookie';
6
6
  import '@astrojs/internal-helpers/path';
@@ -14,7 +14,7 @@ import 'string-width';
14
14
  import 'vue';
15
15
  import 'vue/server-renderer';
16
16
  import '@ecomplus/utils';
17
- import './pages/_...slug_.astro.906634b2.mjs';
17
+ import './pages/_...slug_.astro.b5433bcf.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'node:path';
20
20
  import 'node:url';
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
30
30
  /* empty css */import '@vueuse/core';
31
31
  import '@headlessui/vue';
32
32
 
33
- const page = () => import('./pages/fallback.astro.0a073a86.mjs');
33
+ const page = () => import('./pages/fallback.astro.09db7801.mjs');
34
34
 
35
35
  export { page };
@@ -1,6 +1,6 @@
1
1
  export { renderers } from '../renderers.mjs';
2
2
  export { onRequest } from '../_empty-middleware.mjs';
3
- import './astro.2df8d1c5.mjs';
3
+ import './astro.45d3047f.mjs';
4
4
  import 'path-to-regexp';
5
5
  import 'cookie';
6
6
  import '@astrojs/internal-helpers/path';
@@ -14,7 +14,7 @@ import 'string-width';
14
14
  import 'vue';
15
15
  import 'vue/server-renderer';
16
16
  import '@ecomplus/utils';
17
- import './pages/_...slug_.astro.906634b2.mjs';
17
+ import './pages/_...slug_.astro.b5433bcf.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'node:path';
20
20
  import 'node:url';
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
30
30
  /* empty css */import '@vueuse/core';
31
31
  import '@headlessui/vue';
32
32
 
33
- const page = () => import('./pages/index.astro.fb8fe537.mjs').then(n => n.a);
33
+ const page = () => import('./pages/index.astro.753ff02c.mjs').then(n => n.a);
34
34
 
35
35
  export { page };
@@ -1,6 +1,6 @@
1
1
  export { renderers } from '../renderers.mjs';
2
2
  export { onRequest } from '../_empty-middleware.mjs';
3
- import './astro.2df8d1c5.mjs';
3
+ import './astro.45d3047f.mjs';
4
4
  import 'path-to-regexp';
5
5
  import 'cookie';
6
6
  import '@astrojs/internal-helpers/path';
@@ -14,7 +14,7 @@ import 'string-width';
14
14
  import 'vue';
15
15
  import 'vue/server-renderer';
16
16
  import '@ecomplus/utils';
17
- import './pages/_...slug_.astro.906634b2.mjs';
17
+ import './pages/_...slug_.astro.b5433bcf.mjs';
18
18
  import 'node:fs/promises';
19
19
  import 'node:path';
20
20
  import 'node:url';
@@ -30,6 +30,6 @@ import '@cloudcommerce/config';
30
30
  /* empty css */import '@vueuse/core';
31
31
  import '@headlessui/vue';
32
32
 
33
- const page = () => import('./pages/index.astro.fb8fe537.mjs').then(n => n.i);
33
+ const page = () => import('./pages/index.astro.753ff02c.mjs').then(n => n.i);
34
34
 
35
35
  export { page };
@@ -8,12 +8,12 @@ import sizeOf from 'image-size';
8
8
  import 'magic-string';
9
9
  import mime from 'mime';
10
10
  import 'node:stream';
11
- import { c as createAstro, a as createComponent, r as renderTemplate, b as addAttribute, d as renderComponent, u as unescapeHTML, F as Fragment, m as maybeRenderHead, s as spreadAttributes, e as renderSlot, f as renderHead } from '../astro.2df8d1c5.mjs';
11
+ import { c as createAstro, a as createComponent, r as renderTemplate, b as addAttribute, d as renderComponent, u as unescapeHTML, F as Fragment, m as maybeRenderHead, s as spreadAttributes, e as renderSlot, f as renderHead } from '../astro.45d3047f.mjs';
12
12
  import api from '@cloudcommerce/api';
13
13
  import { EventEmitter } from 'node:events';
14
14
  import fs from 'node:fs';
15
15
  import config from '@cloudcommerce/config';
16
- import { img, price, formatMoney, nickname } from '@ecomplus/utils';
16
+ import { img, price, formatMoney, randomObjectId, nickname } from '@ecomplus/utils';
17
17
  /* empty css */import { reactive, computed, shallowRef, useSSRContext, defineComponent, inject, mergeProps, ref, watch, toRef, onMounted, onBeforeUnmount, provide, createVNode, resolveDynamicComponent, withCtx, renderSlot as renderSlot$1, withDirectives, vShow, openBlock, createBlock, createCommentVNode, Fragment as Fragment$1, renderList, resolveComponent, withModifiers, Teleport, createTextVNode, toDisplayString } from 'vue';
18
18
  import { useScroll, useElementHover, useDebounceFn, useTimeout, promiseTimeout } from '@vueuse/core';
19
19
  import { ssrRenderAttrs, ssrRenderSlot, ssrRenderClass, ssrRenderVNode, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrIncludeBooleanAttr, ssrRenderAttr, ssrRenderTeleport, ssrInterpolate } from 'vue/server-renderer';
@@ -615,7 +615,7 @@ async function getImage(transform) {
615
615
  }
616
616
  let loader = (_a = globalThis.astroImage) == null ? void 0 : _a.loader;
617
617
  if (!loader) {
618
- const { default: mod } = await import('./endpoint.js.ffec1d05.mjs').then(n => n.s).catch(() => {
618
+ const { default: mod } = await import('./endpoint.js.2c6d6e4a.mjs').then(n => n.s).catch(() => {
619
619
  throw new Error(
620
620
  "[@astrojs/image] Builtin image loader not found. (Did you remember to add the integration to your Astro config?)"
621
621
  );
@@ -771,7 +771,7 @@ const useSSRPicture = async (params) => {
771
771
  "2xl": 1536
772
772
  };
773
773
  [
774
- [""],
774
+ ["", 0],
775
775
  ...Object.entries(breakpoints)
776
776
  ].forEach(([breakpoint, minWidth]) => {
777
777
  const classRegex = breakpoint ? new RegExp(`^${breakpoint}:max-w-(\\[\\w+\\]|screen-\\w+)$`) : /^max-w-(\[\w+\]|screen-\w+)$/;
@@ -1499,6 +1499,81 @@ const useStorage = (key, initialValue, storage = globalThis.localStorage) => {
1499
1499
  return state;
1500
1500
  };
1501
1501
 
1502
+ const matchItemsFlags = (item, { flags: newItemFlags }) => {
1503
+ if (!item.flags && !newItemFlags) {
1504
+ return true;
1505
+ }
1506
+ if (!item.flags || !newItemFlags || item.flags.length !== newItemFlags.length) {
1507
+ return false;
1508
+ }
1509
+ return item.flags.every((flag) => newItemFlags.includes(flag));
1510
+ };
1511
+ const addCartItem$1 = (cart, newItem) => {
1512
+ if (typeof newItem.product_id !== "string" || typeof newItem.quantity !== "number" || !(newItem.quantity >= 0) || typeof newItem.price !== "number" || !(newItem.price >= 0)) {
1513
+ return null;
1514
+ }
1515
+ const { items } = cart;
1516
+ if (!newItem.kit_product) {
1517
+ for (let i = 0; i < items.length; i++) {
1518
+ const item = items[i];
1519
+ if (!item.kit_product && item.product_id === newItem.product_id && item.variation_id === newItem.variation_id && (!item.customizations || !item.customizations.length) && matchItemsFlags(item, newItem)) {
1520
+ item.quantity += newItem.quantity;
1521
+ if (newItem.price) {
1522
+ item.price = newItem.price;
1523
+ }
1524
+ if (newItem.final_price) {
1525
+ item.final_price = newItem.final_price;
1526
+ }
1527
+ return item;
1528
+ }
1529
+ }
1530
+ }
1531
+ const itemCopy = { ...newItem };
1532
+ if (!newItem._id || newItem._id === newItem.variation_id || items.find(({ _id }) => _id === newItem._id)) {
1533
+ itemCopy._id = randomObjectId();
1534
+ }
1535
+ if (newItem.customizations) {
1536
+ const customizationsCopy = [];
1537
+ newItem.customizations.forEach((customization, i) => {
1538
+ customizationsCopy[i] = { ...customization };
1539
+ });
1540
+ itemCopy.customizations = customizationsCopy;
1541
+ }
1542
+ items.push(itemCopy);
1543
+ return itemCopy;
1544
+ };
1545
+
1546
+ const parseProduct = (product, variationId, quantity) => {
1547
+ if (typeof quantity !== "number" || Number.isNaN(quantity)) {
1548
+ quantity = product.min_quantity || 1;
1549
+ }
1550
+ const item = { ...product };
1551
+ if (variationId && product.variations) {
1552
+ Object.assign(item, product.variations.find(({ _id }) => _id === variationId));
1553
+ delete item.variations;
1554
+ }
1555
+ item.product_id = product._id;
1556
+ if (variationId) {
1557
+ item.variation_id = variationId;
1558
+ if (item.picture_id && product.pictures) {
1559
+ const pictures = product.pictures.filter((picture) => {
1560
+ return picture._id === item.picture_id;
1561
+ });
1562
+ if (pictures.length) {
1563
+ [item.picture] = pictures;
1564
+ }
1565
+ }
1566
+ }
1567
+ if (!item.picture && product.pictures) {
1568
+ [item.picture] = product.pictures;
1569
+ }
1570
+ item.max_quantity = item.quantity || product.quantity;
1571
+ const minQuantity = item.min_quantity || product.min_quantity;
1572
+ item.quantity = minQuantity > 0 ? Math.max(minQuantity, quantity) : quantity;
1573
+ item.price = price(item) || price(product);
1574
+ return item;
1575
+ };
1576
+
1502
1577
  const storageKey$1 = "ecomShoppingCart";
1503
1578
  const emptyCart = {
1504
1579
  items: []
@@ -1549,6 +1624,14 @@ const shoppingCart = computed({
1549
1624
  });
1550
1625
  }
1551
1626
  });
1627
+ const addCartItem = (newItem) => {
1628
+ const cartObj = shoppingCart.value;
1629
+ const upsertedItem = addCartItem$1(cartObj, newItem);
1630
+ if (upsertedItem) {
1631
+ shoppingCart.value.items = cartObj.items;
1632
+ }
1633
+ };
1634
+ const addProductToCart = (product, variationId, quantity) => addCartItem(parseProduct(product, variationId, quantity));
1552
1635
 
1553
1636
  const useStickyHeader = (props) => {
1554
1637
  const {
@@ -2180,10 +2263,10 @@ function _sfc_ssrRender$6(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2180
2263
  _push(ssrRenderComponent($setup["AccountLink"], { class: "p-2 grow flex items-center gap-3" }, {
2181
2264
  default: withCtx((_, _push2, _parent2, _scopeId) => {
2182
2265
  if (_push2) {
2183
- _push2(`<i class="i-account text-4xl text-base-500 m-0"${_scopeId}></i><span class="leading-tight"${_scopeId}>${ssrInterpolate(`${"Ol\xE1"} ${$setup.customerName || "Visitante"}`)} <small class="block lowercase font-semibold text-primary"${_scopeId}>${ssrInterpolate("Meus pedidos")}, ${ssrInterpolate("Minha conta")}</small></span>`);
2266
+ _push2(`<i class="i-user-circle text-4xl text-base-500 m-0"${_scopeId}></i><span class="leading-tight"${_scopeId}>${ssrInterpolate(`${"Ol\xE1"} ${$setup.customerName || "Visitante"}`)} <small class="block lowercase font-semibold text-primary"${_scopeId}>${ssrInterpolate("Meus pedidos")}, ${ssrInterpolate("Minha conta")}</small></span>`);
2184
2267
  } else {
2185
2268
  return [
2186
- createVNode("i", { class: "i-account text-4xl text-base-500 m-0" }),
2269
+ createVNode("i", { class: "i-user-circle text-4xl text-base-500 m-0" }),
2187
2270
  createVNode("span", { class: "leading-tight" }, [
2188
2271
  createTextVNode(toDisplayString(`${"Ol\xE1"} ${$setup.customerName || "Visitante"}`) + " ", 1),
2189
2272
  createVNode("small", { class: "block lowercase font-semibold text-primary" }, toDisplayString("Meus pedidos") + ", " + toDisplayString("Minha conta"))
@@ -2194,7 +2277,7 @@ function _sfc_ssrRender$6(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2194
2277
  _: 1
2195
2278
  }, _parent));
2196
2279
  if ($setup.isLogged) {
2197
- _push(`<button class="p-2 text-right text-base-800"><span class="text-base-600">${ssrInterpolate("Sair")}</span><i class="i-logout text-lg ml-1"></i></button>`);
2280
+ _push(`<button class="p-2 text-right text-base-800"><span class="text-base-600">${ssrInterpolate("Sair")}</span><i class="i-arrow-right-on-rectangle text-lg ml-1"></i></button>`);
2198
2281
  } else {
2199
2282
  _push(`<!---->`);
2200
2283
  }
@@ -2801,10 +2884,10 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2801
2884
  }, {
2802
2885
  default: withCtx((_3, _push6, _parent6, _scopeId5) => {
2803
2886
  if (_push6) {
2804
- _push6(`<i class="i-favorites mr-1"${_scopeId5}></i> ${ssrInterpolate("Meus favoritos")}`);
2887
+ _push6(`<i class="i-heart mr-1"${_scopeId5}></i> ${ssrInterpolate("Meus favoritos")}`);
2805
2888
  } else {
2806
2889
  return [
2807
- createVNode("i", { class: "i-favorites mr-1" }),
2890
+ createVNode("i", { class: "i-heart mr-1" }),
2808
2891
  createTextVNode(" " + toDisplayString("Meus favoritos"))
2809
2892
  ];
2810
2893
  }
@@ -2818,7 +2901,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2818
2901
  class: ["block p-2", active ? "bg-base-100 text-primary" : null]
2819
2902
  }, {
2820
2903
  default: withCtx(() => [
2821
- createVNode("i", { class: "i-favorites mr-1" }),
2904
+ createVNode("i", { class: "i-heart mr-1" }),
2822
2905
  createTextVNode(" " + toDisplayString("Meus favoritos"))
2823
2906
  ]),
2824
2907
  _: 2
@@ -2903,7 +2986,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2903
2986
  _push4(ssrRenderComponent($setup["MenuItem"], { as: "li" }, {
2904
2987
  default: withCtx((_3, _push5, _parent5, _scopeId4) => {
2905
2988
  if (_push5) {
2906
- _push5(`<button class="p-2 text-right text-base-800"${_scopeId4}><span class="text-base-600"${_scopeId4}>${ssrInterpolate("Sair")}</span><i class="i-logout text-lg ml-1"${_scopeId4}></i></button>`);
2989
+ _push5(`<button class="p-2 text-right text-base-800"${_scopeId4}><span class="text-base-600"${_scopeId4}>${ssrInterpolate("Sair")}</span><i class="i-arrow-right-on-rectangle text-lg ml-1"${_scopeId4}></i></button>`);
2907
2990
  } else {
2908
2991
  return [
2909
2992
  createVNode("button", {
@@ -2911,7 +2994,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2911
2994
  class: "p-2 text-right text-base-800"
2912
2995
  }, [
2913
2996
  createVNode("span", { class: "text-base-600" }, toDisplayString("Sair")),
2914
- createVNode("i", { class: "i-logout text-lg ml-1" })
2997
+ createVNode("i", { class: "i-arrow-right-on-rectangle text-lg ml-1" })
2915
2998
  ], 8, ["onClick"])
2916
2999
  ];
2917
3000
  }
@@ -2968,7 +3051,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
2968
3051
  class: ["block p-2", active ? "bg-base-100 text-primary" : null]
2969
3052
  }, {
2970
3053
  default: withCtx(() => [
2971
- createVNode("i", { class: "i-favorites mr-1" }),
3054
+ createVNode("i", { class: "i-heart mr-1" }),
2972
3055
  createTextVNode(" " + toDisplayString("Meus favoritos"))
2973
3056
  ]),
2974
3057
  _: 2
@@ -3020,7 +3103,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
3020
3103
  class: "p-2 text-right text-base-800"
3021
3104
  }, [
3022
3105
  createVNode("span", { class: "text-base-600" }, toDisplayString("Sair")),
3023
- createVNode("i", { class: "i-logout text-lg ml-1" })
3106
+ createVNode("i", { class: "i-arrow-right-on-rectangle text-lg ml-1" })
3024
3107
  ], 8, ["onClick"])
3025
3108
  ]),
3026
3109
  _: 1
@@ -3079,7 +3162,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
3079
3162
  class: ["block p-2", active ? "bg-base-100 text-primary" : null]
3080
3163
  }, {
3081
3164
  default: withCtx(() => [
3082
- createVNode("i", { class: "i-favorites mr-1" }),
3165
+ createVNode("i", { class: "i-heart mr-1" }),
3083
3166
  createTextVNode(" " + toDisplayString("Meus favoritos"))
3084
3167
  ]),
3085
3168
  _: 2
@@ -3131,7 +3214,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
3131
3214
  class: "p-2 text-right text-base-800"
3132
3215
  }, [
3133
3216
  createVNode("span", { class: "text-base-600" }, toDisplayString("Sair")),
3134
- createVNode("i", { class: "i-logout text-lg ml-1" })
3217
+ createVNode("i", { class: "i-arrow-right-on-rectangle text-lg ml-1" })
3135
3218
  ], 8, ["onClick"])
3136
3219
  ]),
3137
3220
  _: 1
@@ -3206,7 +3289,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
3206
3289
  class: ["block p-2", active ? "bg-base-100 text-primary" : null]
3207
3290
  }, {
3208
3291
  default: withCtx(() => [
3209
- createVNode("i", { class: "i-favorites mr-1" }),
3292
+ createVNode("i", { class: "i-heart mr-1" }),
3210
3293
  createTextVNode(" " + toDisplayString("Meus favoritos"))
3211
3294
  ]),
3212
3295
  _: 2
@@ -3258,7 +3341,7 @@ function _sfc_ssrRender$2(_ctx, _push, _parent, _attrs, $props, $setup, $data, $
3258
3341
  class: "p-2 text-right text-base-800"
3259
3342
  }, [
3260
3343
  createVNode("span", { class: "text-base-600" }, toDisplayString("Sair")),
3261
- createVNode("i", { class: "i-logout text-lg ml-1" })
3344
+ createVNode("i", { class: "i-arrow-right-on-rectangle text-lg ml-1" })
3262
3345
  ], 8, ["onClick"])
3263
3346
  ]),
3264
3347
  _: 1
@@ -3300,12 +3383,18 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3300
3383
  }
3301
3384
  });
3302
3385
  function _sfc_ssrRender$1(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) {
3303
- _push(`<aside${ssrRenderAttrs(mergeProps({ class: "flex flex-col h-full" }, _attrs))}><header class="px-6 py-4 flex justify-end items-center gap-3"><span class="text-right text-base text-base-600 font-medium">${ssrInterpolate("Meu carrinho de compras")}</span><span class="ui-badge-lg">${ssrInterpolate($setup.totalItems)}</span></header><article class="grow bg-base-50 border-t-2 border-b-2 border-base-100">`);
3386
+ _push(`<aside${ssrRenderAttrs(mergeProps({ class: "flex flex-col h-full" }, _attrs))}><header class="px-6 py-4 flex justify-end items-center gap-3"><span class="text-right text-base text-base-600 font-medium">${ssrInterpolate("Meu carrinho de compras")}</span><span class="ui-badge-pill-lg">${ssrInterpolate($setup.totalItems)}</span></header><article class="grow bg-base-50 border-t-2 border-b-2 border-base-100">`);
3304
3387
  if ($setup.freeShippingFromValue) {
3305
- _push(`<div class="secondary-subtle p-3 text-sm text-center">${ssrInterpolate("Adicione $1 para ganhar".replace(
3306
- "$1",
3307
- _ctx.$money($setup.freeShippingFromValue - $setup.shoppingCart.subtotal)
3308
- ))} <strong class="lowercase">${ssrInterpolate("Frete gr\xE1tis")}</strong></div>`);
3388
+ _push(`<div class="text-sm text-center">`);
3389
+ if ($setup.freeShippingFromValue > $setup.shoppingCart.subtotal) {
3390
+ _push(`<div class="p-3 secondary-subtle">${ssrInterpolate("Adicione $1 para ganhar".replace(
3391
+ "$1",
3392
+ _ctx.$money($setup.freeShippingFromValue - $setup.shoppingCart.subtotal)
3393
+ ))} <strong class="lowercase">${ssrInterpolate("Frete gr\xE1tis")}</strong></div>`);
3394
+ } else {
3395
+ _push(`<div class="p-3 bg-success-50 text-success-800"><i class="text-success-900 i-check mr-1"></i> ${ssrInterpolate("Frete gr\xE1tis a partir de")} ${ssrInterpolate(_ctx.$money($setup.freeShippingFromValue))}</div>`);
3396
+ }
3397
+ _push(`</div>`);
3309
3398
  } else {
3310
3399
  _push(`<!---->`);
3311
3400
  }
@@ -3364,10 +3453,10 @@ function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $op
3364
3453
  $setup.isSticky && !$setup.isSidenavOpen ? "bg-white/80" : "bg-white",
3365
3454
  $setup.isSticky ? "backdrop-blur-md shadow py-2 md:py-3" : "py-3 sm:py-4 md:py-5"
3366
3455
  ]]
3367
- }, _attrs))}><div class="container 2xl:max-w-7xl mx-auto px-1 lg:pr-3 lg:pl-5 xl:pr-7 xl:pl-9 2xl:pr-0 2xl:pl-2 flex md:grid grid-flow-col grid-cols-3 lg:grid-cols-none lg:auto-cols-max justify-between items-center"><div class="basis-1/4 lg:hidden"><button class="px-2 my-1"${ssrRenderAttr("aria-label", "Abrir/fechar menu")}><i class="${ssrRenderClass([$setup.isSidenavOpen ? "i-close" : "i-menu", "text-base-500 text-3xl"])}"></i></button></div>`);
3456
+ }, _attrs))}><div class="container 2xl:max-w-7xl mx-auto px-1 lg:pr-3 lg:pl-5 xl:pr-7 xl:pl-9 2xl:pr-0 2xl:pl-2 flex md:grid grid-flow-col grid-cols-3 lg:grid-cols-none lg:auto-cols-max justify-between items-center"><div class="basis-1/4 lg:hidden"><button class="px-2 my-1"${ssrRenderAttr("aria-label", "Abrir/fechar menu")}><i class="${ssrRenderClass([$setup.isSidenavOpen ? "i-close" : "i-bars-3-bottom-left", "text-base-500 text-3xl"])}"></i></button></div>`);
3368
3457
  ssrRenderSlot(_ctx.$slots, "logo", {}, null, _push, _parent);
3369
3458
  _push(ssrRenderComponent($setup["ShopHeaderMenu"], mergeProps({ class: "hidden lg:block" }, { inlineMenuTrees: $setup.inlineMenuTrees }), null, _parent));
3370
- _push(`<div class="basis-1/4 px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"><button${ssrRenderAttr("aria-label", "Buscar produtos")}><i class="i-search w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"></i></button>`);
3459
+ _push(`<div class="basis-1/4 px-2 flex justify-end items-center gap-3 lg:gap-4 text-base-800"><button${ssrRenderAttr("aria-label", "Buscar produtos")}><i class="i-magnifying-glass w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"></i></button>`);
3371
3460
  _push(ssrRenderComponent($setup["AccountMenu"], {
3372
3461
  class: "hidden sm:block",
3373
3462
  "aria-label": "Minha conta",
@@ -3375,20 +3464,20 @@ function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $op
3375
3464
  }, {
3376
3465
  button: withCtx(({ open }, _push2, _parent2, _scopeId) => {
3377
3466
  if (_push2) {
3378
- _push2(`<i class="${ssrRenderClass([open ? "text-black scale-110" : null, "i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"])}"${_scopeId}></i>`);
3467
+ _push2(`<i class="${ssrRenderClass([open ? "text-black scale-110" : null, "i-user-circle w-7 h-7 hover:text-primary hover:scale-110 active:scale-125"])}"${_scopeId}></i>`);
3379
3468
  } else {
3380
3469
  return [
3381
3470
  createVNode("i", {
3382
- class: ["i-account w-7 h-7 hover:text-primary hover:scale-110 active:scale-125", open ? "text-black scale-110" : null]
3471
+ class: ["i-user-circle w-7 h-7 hover:text-primary hover:scale-110 active:scale-125", open ? "text-black scale-110" : null]
3383
3472
  }, null, 2)
3384
3473
  ];
3385
3474
  }
3386
3475
  }),
3387
3476
  _: 1
3388
3477
  }, _parent));
3389
- _push(`<button${ssrRenderAttr("aria-label", "Abrir carrinho")} class="relative group"><i class="i-shopping-cart w-7 h-7 group-hover:text-primary group-hover:scale-110 group-active:scale-125"></i>`);
3478
+ _push(`<button${ssrRenderAttr("aria-label", "Abrir carrinho")} class="relative group"><i class="i-shopping-bag w-7 h-7 group-hover:text-primary group-hover:scale-110 group-active:scale-125"></i>`);
3390
3479
  if ($setup.totalItems) {
3391
- _push(`<span class="ui-badge-sm absolute -top-1 -right-1.5">${ssrInterpolate($setup.totalItems)}</span>`);
3480
+ _push(`<span class="ui-badge-pill-sm absolute -top-1 -right-1.5">${ssrInterpolate($setup.totalItems)}</span>`);
3392
3481
  } else {
3393
3482
  _push(`<!---->`);
3394
3483
  }
@@ -3535,4 +3624,4 @@ const ____slug_ = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty(
3535
3624
  url: $$url
3536
3625
  }, Symbol.toStringTag, { value: 'Module' }));
3537
3626
 
3538
- export { $$PageHeader as $, BaseSSRService as B, Carousel as C, _export_sfc as _, $$Base as a, $$Picture as b, CarouselControl as c, availableExtraDiscount as d, installmentsOption as e, discountOption as f, loyaltyPointsPrograms as g, ____slug_ as h, isOutputFormatSupportsAlpha as i, loadRouteContext as l, parseShippingPhrase as p };
3627
+ export { $$PageHeader as $, BaseSSRService as B, Carousel as C, _export_sfc as _, $$Base as a, $$Picture as b, CarouselControl as c, availableExtraDiscount as d, installmentsOption as e, discountOption as f, loyaltyPointsPrograms as g, addProductToCart as h, isOutputFormatSupportsAlpha as i, ____slug_ as j, loadRouteContext as l, parseShippingPhrase as p };
@@ -1,4 +1,4 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate } from '../astro.2df8d1c5.mjs';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate } from '../astro.45d3047f.mjs';
2
2
  import 'path-to-regexp';
3
3
  import 'cookie';
4
4
  import '@astrojs/internal-helpers/path';
@@ -1,6 +1,6 @@
1
1
  import mime from 'mime';
2
2
  import sharp$1 from 'sharp';
3
- import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.906634b2.mjs';
3
+ import { B as BaseSSRService, i as isOutputFormatSupportsAlpha } from './_...slug_.astro.b5433bcf.mjs';
4
4
 
5
5
  class SharpService extends BaseSSRService {
6
6
  async transform(inputBuffer, transform) {
@@ -1,5 +1,5 @@
1
- import { c as createAstro, a as createComponent, r as renderTemplate, m as maybeRenderHead, b as addAttribute, d as renderComponent } from '../astro.2df8d1c5.mjs';
2
- import { l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.906634b2.mjs';
1
+ import { c as createAstro, a as createComponent, r as renderTemplate, m as maybeRenderHead, b as addAttribute, d as renderComponent } from '../astro.45d3047f.mjs';
2
+ import { l as loadRouteContext, $ as $$PageHeader, a as $$Base } from './_...slug_.astro.b5433bcf.mjs';
3
3
  import 'path-to-regexp';
4
4
  import 'cookie';
5
5
  import '@astrojs/internal-helpers/path';