cloudcommerce 0.26.7 → 0.28.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 (248) hide show
  1. package/.github/workflows/test-apps.yml +2 -2
  2. package/.gitmodules +0 -3
  3. package/.vscode/settings.json +3 -1
  4. package/CHANGELOG.md +51 -0
  5. package/action.yml +2 -2
  6. package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
  7. package/ecomplus-stores/barra-doce/functions/ssr/content/layout.json +13 -13
  8. package/ecomplus-stores/barra-doce/functions/ssr/content/pages/home.json +10 -10
  9. package/ecomplus-stores/barra-doce/functions/ssr/content/pages/products.json +17 -0
  10. package/ecomplus-stores/barra-doce/functions/ssr/content/settings.json +8 -8
  11. package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
  12. package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountMenu.vue +11 -11
  13. package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopFooter.vue +24 -24
  14. package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageFooter.astro +4 -4
  15. package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
  16. package/ecomplus-stores/barra-doce/package.json +2 -2
  17. package/ecomplus-stores/monocard/functions/many/package.json +3 -3
  18. package/ecomplus-stores/monocard/functions/ssr/content/layout.json +11 -11
  19. package/ecomplus-stores/monocard/functions/ssr/content/pages/home.json +16 -16
  20. package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +2 -4
  21. package/ecomplus-stores/monocard/functions/ssr/content/settings.json +11 -11
  22. package/ecomplus-stores/monocard/functions/ssr/package.json +6 -6
  23. package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +1 -1
  24. package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.vue +33 -0
  25. package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +3 -3
  26. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopFooter.vue +3 -3
  27. package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +5 -13
  28. package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageFooter.astro +2 -2
  29. package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +1 -1
  30. package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +1 -1
  31. package/ecomplus-stores/monocard/functions/with-apps/package.json +3 -3
  32. package/ecomplus-stores/monocard/package.json +2 -2
  33. package/package.json +6 -6
  34. package/packages/api/package.json +1 -1
  35. package/packages/apps/affilate-program/package.json +2 -2
  36. package/packages/apps/correios/package.json +3 -4
  37. package/packages/apps/custom-payment/package.json +1 -1
  38. package/packages/apps/custom-shipping/package.json +1 -1
  39. package/packages/apps/datafrete/package.json +3 -3
  40. package/packages/apps/discounts/package.json +1 -1
  41. package/packages/apps/emails/lib/functios-lib/utils.js +1 -1
  42. package/packages/apps/emails/lib/functios-lib/utils.js.map +1 -1
  43. package/packages/apps/emails/package.json +2 -2
  44. package/packages/apps/emails/src/functios-lib/utils.ts +1 -1
  45. package/packages/apps/fb-conversions/package.json +3 -3
  46. package/packages/apps/flash-courier/package.json +2 -2
  47. package/packages/apps/frenet/package.json +3 -3
  48. package/packages/apps/galaxpay/package.json +3 -3
  49. package/packages/apps/google-analytics/package.json +3 -3
  50. package/packages/apps/jadlog/package.json +2 -2
  51. package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.d.ts +2 -0
  52. package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.js +98 -0
  53. package/packages/apps/loyalty-points/lib/functions-lib/cron-add-points.js.map +1 -0
  54. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js +59 -23
  55. package/packages/apps/loyalty-points/lib/functions-lib/handle-loyalty-points-event.js.map +1 -1
  56. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js +9 -4
  57. package/packages/apps/loyalty-points/lib/loyalty-create-transaction.js.map +1 -1
  58. package/packages/apps/loyalty-points/lib/loyalty-list-payments.js +7 -2
  59. package/packages/apps/loyalty-points/lib/loyalty-list-payments.js.map +1 -1
  60. package/packages/apps/loyalty-points/lib/loyalty-points-events.d.ts +3 -1
  61. package/packages/apps/loyalty-points/lib/loyalty-points-events.js +9 -0
  62. package/packages/apps/loyalty-points/lib/loyalty-points-events.js.map +1 -1
  63. package/packages/apps/loyalty-points/package.json +3 -2
  64. package/packages/apps/loyalty-points/src/functions-lib/cron-add-points.ts +104 -0
  65. package/packages/apps/loyalty-points/src/functions-lib/handle-loyalty-points-event.ts +67 -25
  66. package/packages/apps/loyalty-points/src/loyalty-create-transaction.ts +11 -4
  67. package/packages/apps/loyalty-points/src/loyalty-list-payments.ts +9 -2
  68. package/packages/apps/loyalty-points/src/loyalty-points-events.ts +12 -1
  69. package/packages/apps/melhor-envio/package.json +3 -3
  70. package/packages/apps/mercadopago/assets/onload-expression.js +5 -1
  71. package/packages/apps/mercadopago/assets/onload-expression.min.js +1 -1
  72. package/packages/apps/mercadopago/lib/mp-create-transaction.js +16 -6
  73. package/packages/apps/mercadopago/lib/mp-create-transaction.js.map +1 -1
  74. package/packages/apps/mercadopago/package.json +3 -3
  75. package/packages/apps/mercadopago/src/mp-create-transaction.ts +19 -7
  76. package/packages/apps/pagarme/package.json +3 -3
  77. package/packages/apps/paghiper/package.json +3 -3
  78. package/packages/apps/pix/package.json +3 -3
  79. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +22 -0
  80. package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
  81. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +2 -2
  82. package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +1 -1
  83. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +7 -1
  84. package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
  85. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +14 -5
  86. package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
  87. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +9 -1
  88. package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -1
  89. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +8 -6
  90. package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -1
  91. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +118 -38
  92. package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
  93. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +8 -0
  94. package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -1
  95. package/packages/apps/tiny-erp/package.json +3 -3
  96. package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +24 -0
  97. package/packages/apps/tiny-erp/src/integration/helpers/format-tiny-date.ts +2 -2
  98. package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +8 -1
  99. package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +17 -5
  100. package/packages/apps/tiny-erp/src/integration/parsers/order-from-tiny.ts +13 -1
  101. package/packages/apps/tiny-erp/src/integration/parsers/order-to-tiny.ts +11 -6
  102. package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +144 -41
  103. package/packages/apps/tiny-erp/src/integration/parsers/product-to-tiny.ts +10 -0
  104. package/packages/apps/webhooks/package.json +3 -3
  105. package/packages/cli/package.json +1 -1
  106. package/packages/config/lib/config.js +2 -2
  107. package/packages/config/lib/config.js.map +1 -1
  108. package/packages/config/package.json +1 -1
  109. package/packages/config/src/config.ts +2 -2
  110. package/packages/emails/package.json +4 -4
  111. package/packages/eslint/base.eslintrc.cjs +3 -0
  112. package/packages/eslint/package.json +5 -4
  113. package/packages/eslint/storefront.eslintrc.cjs +8 -1
  114. package/packages/events/package.json +2 -2
  115. package/packages/feeds/package.json +1 -1
  116. package/packages/firebase/package.json +2 -2
  117. package/packages/i18n/package.json +1 -1
  118. package/packages/modules/package.json +3 -3
  119. package/packages/passport/package.json +2 -2
  120. package/packages/ssr/package.json +3 -3
  121. package/packages/storefront/.auto-imports.d.ts +65 -0
  122. package/packages/storefront/astro.config.mjs +24 -1
  123. package/packages/storefront/client.d.ts +1 -0
  124. package/packages/storefront/config/astro/context-directive.mjs +21 -0
  125. package/packages/storefront/config/astro/index.d.ts +8 -0
  126. package/packages/storefront/config/storefront.cms.js +2 -2
  127. package/packages/storefront/config/storefront.tailwind.cjs +0 -1
  128. package/packages/storefront/package.json +4 -3
  129. package/packages/storefront/server.d.ts +1 -1
  130. package/packages/storefront/src/lib/$storefront.d.ts +8 -8
  131. package/packages/storefront/src/lib/assets/base.css +5 -0
  132. package/packages/storefront/src/lib/components/Carousel.vue +93 -72
  133. package/packages/storefront/src/lib/components/CarouselControl.vue +13 -7
  134. package/packages/storefront/src/lib/components/ContentClearfix.vue +17 -0
  135. package/packages/storefront/src/lib/components/Drawer.vue +2 -2
  136. package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +2 -2
  137. package/packages/storefront/src/lib/components/QuantitySelector.vue +4 -4
  138. package/packages/storefront/src/lib/components/QuantitySelectorControl.vue +2 -2
  139. package/packages/storefront/src/lib/components/ViewTransitions.astro +409 -0
  140. package/packages/storefront/src/lib/components/globals/AImg.vue +2 -1
  141. package/packages/storefront/src/lib/composables/use-pitch-bar.ts +2 -2
  142. package/packages/storefront/src/lib/content.d.ts +5 -5
  143. package/packages/storefront/src/lib/layouts/Base.astro +4 -4
  144. package/packages/storefront/src/lib/layouts/BaseBody.astro +0 -2
  145. package/packages/storefront/src/lib/layouts/BaseHead.astro +32 -14
  146. package/packages/storefront/src/lib/layouts/use-page-header.ts +9 -4
  147. package/packages/storefront/src/lib/layouts/use-page-main.ts +13 -33
  148. package/packages/test-base/package.json +1 -1
  149. package/packages/types/index.ts +14 -14
  150. package/packages/types/package.json +1 -1
  151. package/ecomplus-stores/iluminim/.devcontainer/devcontainer.json +0 -30
  152. package/ecomplus-stores/iluminim/.editorconfig +0 -13
  153. package/ecomplus-stores/iluminim/.eslintrc.cjs +0 -3
  154. package/ecomplus-stores/iluminim/.firebaserc +0 -5
  155. package/ecomplus-stores/iluminim/.github/renovate.json +0 -5
  156. package/ecomplus-stores/iluminim/.github/workflows/build-and-deploy.yml +0 -36
  157. package/ecomplus-stores/iluminim/.github/workflows/calibreapp-image-actions.yml +0 -23
  158. package/ecomplus-stores/iluminim/.gitpod.yml +0 -12
  159. package/ecomplus-stores/iluminim/.idx/dev.nix +0 -24
  160. package/ecomplus-stores/iluminim/.nvmrc +0 -1
  161. package/ecomplus-stores/iluminim/.vscode/extensions.json +0 -8
  162. package/ecomplus-stores/iluminim/.vscode/launch.json +0 -11
  163. package/ecomplus-stores/iluminim/.vscode/settings.json +0 -10
  164. package/ecomplus-stores/iluminim/README.md +0 -31
  165. package/ecomplus-stores/iluminim/SETUP.md +0 -117
  166. package/ecomplus-stores/iluminim/SETUP.pt-BR.md +0 -117
  167. package/ecomplus-stores/iluminim/functions/config.json +0 -3
  168. package/ecomplus-stores/iluminim/functions/example.env +0 -10
  169. package/ecomplus-stores/iluminim/functions/many/index.js +0 -14
  170. package/ecomplus-stores/iluminim/functions/many/package.json +0 -22
  171. package/ecomplus-stores/iluminim/functions/ssr/.eslintrc.cjs +0 -6
  172. package/ecomplus-stores/iluminim/functions/ssr/astro.config.mjs +0 -4
  173. package/ecomplus-stores/iluminim/functions/ssr/content/blog/.gitkeep +0 -0
  174. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/contato.json +0 -11
  175. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/terms.json +0 -11
  176. package/ecomplus-stores/iluminim/functions/ssr/content/extra-pages/trocas.json +0 -11
  177. package/ecomplus-stores/iluminim/functions/ssr/content/layout.json +0 -57
  178. package/ecomplus-stores/iluminim/functions/ssr/content/pages/home.json +0 -70
  179. package/ecomplus-stores/iluminim/functions/ssr/content/settings.json +0 -65
  180. package/ecomplus-stores/iluminim/functions/ssr/index.js +0 -18
  181. package/ecomplus-stores/iluminim/functions/ssr/package.json +0 -31
  182. package/ecomplus-stores/iluminim/functions/ssr/public/admin/.gitkeep +0 -2
  183. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms-preview.css +0 -274
  184. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms.css +0 -114
  185. package/ecomplus-stores/iluminim/functions/ssr/public/assets/cvv.png +0 -0
  186. package/ecomplus-stores/iluminim/functions/ssr/public/assets/img-placeholder.png +0 -0
  187. package/ecomplus-stores/iluminim/functions/ssr/public/assets/payments.png +0 -0
  188. package/ecomplus-stores/iluminim/functions/ssr/public/assets/ssl-safe.png +0 -0
  189. package/ecomplus-stores/iluminim/functions/ssr/public/img/icon.png +0 -0
  190. package/ecomplus-stores/iluminim/functions/ssr/public/img/large-icon.png +0 -0
  191. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner-chamada-desktop-9x81zmd91q.webp +0 -0
  192. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner2.webp +0 -0
  193. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/chamada-mobile-q1c6om6jx4.webp +0 -0
  194. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/ecom-icon.png +0 -0
  195. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/headphone.webp +0 -0
  196. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/logo.webp +0 -0
  197. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/og-image.png +0 -0
  198. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/passion.webp +0 -0
  199. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect8589.png +0 -0
  200. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect859.png +0 -0
  201. package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect89.webp +0 -0
  202. package/ecomplus-stores/iluminim/functions/ssr/public/robots.txt +0 -6
  203. package/ecomplus-stores/iluminim/functions/ssr/scripts/build.sh +0 -14
  204. package/ecomplus-stores/iluminim/functions/ssr/src/assets/style.css +0 -65
  205. package/ecomplus-stores/iluminim/functions/ssr/src/components/AccountMenu.vue +0 -95
  206. package/ecomplus-stores/iluminim/functions/ssr/src/components/Banner.vue +0 -57
  207. package/ecomplus-stores/iluminim/functions/ssr/src/components/BannersGrid.astro +0 -25
  208. package/ecomplus-stores/iluminim/functions/ssr/src/components/CartItem.vue +0 -64
  209. package/ecomplus-stores/iluminim/functions/ssr/src/components/CartSidebar.vue +0 -66
  210. package/ecomplus-stores/iluminim/functions/ssr/src/components/Countdown.vue +0 -79
  211. package/ecomplus-stores/iluminim/functions/ssr/src/components/HeroSlider.vue +0 -52
  212. package/ecomplus-stores/iluminim/functions/ssr/src/components/PitchBar.vue +0 -56
  213. package/ecomplus-stores/iluminim/functions/ssr/src/components/Prices.vue +0 -95
  214. package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductCard.vue +0 -117
  215. package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductShelf.vue +0 -57
  216. package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductsCountdown.vue +0 -20
  217. package/ecomplus-stores/iluminim/functions/ssr/src/components/SearchModal.vue +0 -6
  218. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopFooter.vue +0 -149
  219. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +0 -158
  220. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderMenu.vue +0 -58
  221. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderSubmenu.vue +0 -88
  222. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenav.vue +0 -61
  223. package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenavCategory.vue +0 -80
  224. package/ecomplus-stores/iluminim/functions/ssr/src/env.d.ts +0 -13
  225. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/Base.astro +0 -16
  226. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/Checkout.astro +0 -0
  227. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/PageFooter.astro +0 -68
  228. package/ecomplus-stores/iluminim/functions/ssr/src/layouts/PageHeader.astro +0 -42
  229. package/ecomplus-stores/iluminim/functions/ssr/src/main/Fallback.astro +0 -10
  230. package/ecomplus-stores/iluminim/functions/ssr/src/main/Home.astro +0 -49
  231. package/ecomplus-stores/iluminim/functions/ssr/src/main/Sections.astro +0 -42
  232. package/ecomplus-stores/iluminim/functions/ssr/src/main/Wildcard.astro +0 -18
  233. package/ecomplus-stores/iluminim/functions/ssr/src/pages/[...slug].astro +0 -40
  234. package/ecomplus-stores/iluminim/functions/ssr/src/pages/_vue.ts +0 -3
  235. package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/account.astro +0 -0
  236. package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/index.astro +0 -0
  237. package/ecomplus-stores/iluminim/functions/ssr/src/pages/index.astro +0 -37
  238. package/ecomplus-stores/iluminim/functions/ssr/src/pages/~fallback.astro +0 -25
  239. package/ecomplus-stores/iluminim/functions/ssr/src/scripts/InlineScripts.astro +0 -10
  240. package/ecomplus-stores/iluminim/functions/ssr/tailwind.config.cjs +0 -13
  241. package/ecomplus-stores/iluminim/functions/ssr/tsconfig.json +0 -12
  242. package/ecomplus-stores/iluminim/functions/ssr/uno.config.cjs +0 -5
  243. package/ecomplus-stores/iluminim/functions/with-apps/index.js +0 -12
  244. package/ecomplus-stores/iluminim/functions/with-apps/package.json +0 -22
  245. package/ecomplus-stores/iluminim/package.json +0 -31
  246. package/ecomplus-stores/iluminim/scripts/install.sh +0 -24
  247. package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.astro +0 -30
  248. package/packages/storefront/src/lib/components/ContentClearfix.astro +0 -15
@@ -1,52 +0,0 @@
1
- <template>
2
- <section class="bg-base-100 py-3">
3
- <div class="relative container mx-auto">
4
- <Carousel :autoplay="autoplay" class="[&>*]:items-center">
5
- <li
6
- v-for="(slide, i) in slides"
7
- :key="i"
8
- class="shrink-0 basis-full"
9
- >
10
- <Banner
11
- v-bind="{ ...slide, headingTag: i === 0 ? 'h2' : 'h3' }"
12
- class="w-full"
13
- >
14
- <template #picture>
15
- <slot :name="`picture-${i}`" />
16
- </template>
17
- </Banner>
18
- </li>
19
- <template #controls>
20
- <div
21
- v-show="slides.length > 1"
22
- class="absolute z-10 bottom-5 right-5 flex justify-end items-center"
23
- >
24
- <div class="relative w-20 h-10 rounded-full
25
- bg-primary/80 text-on-primary shadow-sm ring-1 ring-black/5">
26
- <CarouselControl class="w-10 h-10 rounded-full hover:bg-primary" is-prev>
27
- <i class="i-arrow-left"></i>
28
- </CarouselControl>
29
- <CarouselControl class="w-10 h-10 rounded-full hover:bg-primary">
30
- <i class="i-arrow-right"></i>
31
- </CarouselControl>
32
- </div>
33
- </div>
34
- </template>
35
- </Carousel>
36
- </div>
37
- </section>
38
- </template>
39
-
40
- <script setup lang="ts">
41
- import type { Props as UseBannerProps } from '@@sf/composables/use-banner';
42
- import Carousel from '@@sf/components/Carousel.vue';
43
- import CarouselControl from '@@sf/components/CarouselControl.vue';
44
- import Banner from '~/components/Banner.vue';
45
-
46
- export type Props = {
47
- autoplay?: number;
48
- slides: UseBannerProps[];
49
- }
50
-
51
- defineProps<Props>();
52
- </script>
@@ -1,56 +0,0 @@
1
- <template>
2
- <div class="bg-black relative z-20">
3
- <div class="container md:w-2/3 mx-auto px-3 py-1 md:py-1.5">
4
- <Carousel :autoplay="countValidSlides > 1 ? 7000 : undefined">
5
- <li
6
- v-for="(slide, i) in slides"
7
- :key="i"
8
- class="shrink-0 basis-full h-full text-center"
9
- >
10
- <ALink
11
- :href="slide.href"
12
- :target="slide.target"
13
- class="inline-block px-8"
14
- :class="slide.href ? 'hover:underline' : null"
15
- >
16
- <span
17
- v-if="parsedContents[i]"
18
- v-html="parsedContents[i]"
19
- class="prose text-sm md:text-base lg:tracking-wide
20
- text-base-200 uppercase font-semibold
21
- [&_b]:text-base-100 [&_strong]:font-black
22
- [&_strong]:text-transparent [&_strong]:bg-clip-text [&_strong]:bg-gradient-to-r
23
- [&_strong]:from-yellow-200 [&_strong]:to-yellow-400"
24
- ></span>
25
- </ALink>
26
- </li>
27
- <template #controls>
28
- <div
29
- v-show="countValidSlides > 1"
30
- class="text-xl leading-none text-base-300"
31
- >
32
- <CarouselControl class="pr-2 bg-black hover:text-white" is-prev />
33
- <CarouselControl class="pl-2 bg-black hover:text-white" />
34
- </div>
35
- </template>
36
- </Carousel>
37
- </div>
38
- </div>
39
- </template>
40
-
41
- <script setup lang="ts">
42
- import {
43
- type Props as UsePitchBarProps,
44
- usePitchBar,
45
- } from '@@sf/composables/use-pitch-bar';
46
- import Carousel from '@@sf/components/Carousel.vue';
47
- import CarouselControl from '@@sf/components/CarouselControl.vue';
48
-
49
- export interface Props extends UsePitchBarProps {}
50
-
51
- const props = defineProps<Props>();
52
- const {
53
- parsedContents,
54
- countValidSlides,
55
- } = usePitchBar(props);
56
- </script>
@@ -1,95 +0,0 @@
1
- <template>
2
- <div
3
- class="text-base-600
4
- [&>div]:[font-size:90%] [&_small]:[font-size:92%] [&_small]:lowercase"
5
- :class="isBig ? 'text-lg' : null"
6
- >
7
- <span v-if="comparePrice" class="text-base-500 mr-1 [font-size:87%]">
8
- <small v-if="isLiteral">
9
- {{ `${$t.i19from} ` }}
10
- </small>
11
- <s>{{ $money(comparePrice) }}</s>
12
- <small v-if="isLiteral">
13
- {{ ` ${$t.i19to}` }}
14
- </small>
15
- </span>
16
- <strong
17
- class="inline-block text-base-800"
18
- :class="isBig ? 'text-5xl block' : null"
19
- >
20
- <small v-if="hasVariedPrices">
21
- {{ `${$t.i19asOf} ` }}
22
- </small>
23
- {{ $money(salePrice) }}
24
- </strong>
25
- <Fade slide="down">
26
- <div v-if="cashbackValue && hasCashback" class="relative z-10">
27
- <span :data-tooltip="$t.i19get$1back
28
- .replace('$1', $percentage(cashbackPercentage))">
29
- <i class="i-arrow-uturn-left mr-1"></i>
30
- <span class="font-medium">
31
- {{ $money(cashbackValue) }}
32
- </span>
33
- <small> cashback</small>
34
- </span>
35
- </div>
36
- </Fade>
37
- <Fade slide="down">
38
- <div v-if="installmentValue && hasPriceOptions">
39
- <small v-if="isLiteral">
40
- {{ `${$t.i19upTo} ` }}
41
- </small>
42
- {{ installmentsNumber }}x
43
- <small v-if="isLiteral">
44
- {{ ` ${$t.i19of} ` }}
45
- </small>
46
- <span>{{ $money(installmentValue) }}</span>
47
- <small v-if="!monthlyInterest && isLiteral">
48
- {{ ` ${$t.i19interestFree}` }}
49
- </small>
50
- </div>
51
- </Fade>
52
- <Fade slide="down">
53
- <div v-if="priceWithDiscount < salePrice && hasPriceOptions">
54
- <small v-if="!discountLabel">
55
- {{ `${$t.i19asOf} ` }}
56
- </small>
57
- <span>{{ $money(priceWithDiscount) }}</span>
58
- <small v-if="discountLabel">
59
- {{ ` ${discountLabel}` }}
60
- </small>
61
- </div>
62
- </Fade>
63
- </div>
64
- </template>
65
-
66
- <script setup lang="ts">
67
- import {
68
- type Props as UsePricesProps,
69
- usePrices,
70
- } from '@@sf/composables/use-prices';
71
-
72
- export interface Props extends UsePricesProps {
73
- isBig?: boolean;
74
- isLiteral?: boolean;
75
- hasCashback?: boolean;
76
- hasPriceOptions?: boolean;
77
- }
78
-
79
- const props = withDefaults(defineProps<Props>(), {
80
- hasCashback: true,
81
- hasPriceOptions: true,
82
- });
83
- const {
84
- hasVariedPrices,
85
- salePrice,
86
- comparePrice,
87
- cashbackPercentage,
88
- cashbackValue,
89
- installmentsNumber,
90
- monthlyInterest,
91
- installmentValue,
92
- priceWithDiscount,
93
- discountLabel,
94
- } = usePrices(props);
95
- </script>
@@ -1,117 +0,0 @@
1
- <template>
2
- <article
3
- ref="card"
4
- :data-sku="product.sku"
5
- class="relative h-full max-w-[350px] mx-auto py-3 group"
6
- >
7
- <ALink
8
- :href="link"
9
- class="flex flex-col h-full rounded overflow-hidden
10
- group-hover:shadow group-hover:ring-1 ring-black/5"
11
- >
12
- <div class="aspect-square p-2
13
- motion-safe:group-hover:scale-110 transition-transform">
14
- <div class="relative w-full h-full bg-white rounded overflow-hidden
15
- group-hover:rounded-none">
16
- <span v-if="images?.length" class="text-xs text-opacity-70">
17
- <AImg
18
- :picture="images[0]"
19
- :alt="title"
20
- class="absolute top-0 left-0 block w-full h-full object-cover"
21
- />
22
- <AImg
23
- v-if="images[1] && wasHoveredOnce"
24
- :picture="images[1]"
25
- :alt="title"
26
- class="absolute top-0 left-0 block w-full h-full object-cover
27
- opacity-0 group-hover:opacity-100 transition-opacity
28
- motion-safe:duration-300 text-transparent z-10"
29
- />
30
- </span>
31
- <div
32
- v-else
33
- class="w-full h-full bg-gradient-to-br from-base-50/20 to-base-100"
34
- />
35
- </div>
36
- </div>
37
- <span
38
- v-if="discountPercentage"
39
- class=":uno: absolute top-9 right-2
40
- group-hover:scale-110 group-hover:translate-x-2 transition-transform
41
- bg-secondary/70 text-on-secondary text-xs
42
- py-0.5 pr-1.5 pl-3 [clip-path:polygon(20%_0,100%_0,100%_100%,0_100%)]"
43
- >
44
- -<strong>{{ discountPercentage }}</strong>%
45
- </span>
46
- <div class="relative flex flex-col grow justify-between p-4
47
- group-hover:backdrop-blur-md bg-white/40 z-10">
48
- <component
49
- :is="headingTag"
50
- class="ui-link uppercase font-bold text-sm no-underline line-clamp-2"
51
- :class="[
52
- isActive ? 'text-base-700' : 'text-base-500',
53
- link ? 'group-hover:underline group-hover:text-primary' : null,
54
- ]"
55
- >
56
- {{ title }}
57
- </component>
58
- <div class="pt-2">
59
- <div v-if="isActive">
60
- <Prices :product="product" />
61
- </div>
62
- <span v-else class="ui-badge bg-warning-100 text-warning-700">
63
- {{ !isInStock ? $t.i19outOfStock : $t.i19inactive }}
64
- </span>
65
- </div>
66
- <button
67
- v-if="isActive && !hasVariations"
68
- class=":uno: hidden md:block ui-btn-sm ui-btn-primary
69
- absolute -top-6 left-0 w-full rounded-none
70
- opacity-0 group-hover:opacity-100 transition -z-10 group-hover:z-10"
71
- @click.prevent="addProductToCart(product)"
72
- >
73
- <span class="inline-block h-4 w-4 leading-none text-base text-center
74
- bg-on-primary text-primary opacity-80 rounded-full mr-1">
75
- &plus;
76
- </span>
77
- {{ $t.i19addToCart }}
78
- </button>
79
- </div>
80
- </ALink>
81
- </article>
82
- </template>
83
-
84
- <script setup lang="ts">
85
- import { ref } from 'vue';
86
- import { watchOnce, useElementHover } from '@vueuse/core';
87
- import { addProductToCart } from '@@sf/state/shopping-cart';
88
- import {
89
- type Props as UseProductCardProps,
90
- useProductCard,
91
- } from '@@sf/composables/use-product-card';
92
- import Prices from '~/components/Prices.vue';
93
-
94
- export type Props = UseProductCardProps & {
95
- headingTag?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
96
- };
97
-
98
- const props = withDefaults(defineProps<Props>(), {
99
- headingTag: 'h3',
100
- });
101
- const {
102
- product,
103
- title,
104
- link,
105
- images,
106
- isInStock,
107
- isActive,
108
- discountPercentage,
109
- hasVariations,
110
- } = useProductCard(props as UseProductCardProps);
111
- const card = ref<HTMLElement | null>(null);
112
- const isHovered = useElementHover(card);
113
- const wasHoveredOnce = ref(false);
114
- watchOnce(isHovered, () => {
115
- wasHoveredOnce.value = true;
116
- });
117
- </script>
@@ -1,57 +0,0 @@
1
- <template>
2
- <section class="ui-section">
3
- <div v-if="title" class="max-w-prose mx-auto text-center mb-2">
4
- <h2 class="ui-text-brand text-3xl">
5
- <ALink :href="titleLink" :class="titleLink ? 'ui-link' : 'text-base-700'">
6
- {{ title }}
7
- </ALink>
8
- </h2>
9
- </div>
10
- <Carousel class="group/shelf">
11
- <li
12
- v-for="product in products"
13
- :key="product._id"
14
- class="basis-1/2 md:basis-1/3 lg:basis-1/4 shrink-0"
15
- >
16
- <ProductCard :product="product" />
17
- </li>
18
- <template #controls>
19
- <div
20
- v-show="products.length > 2"
21
- class="text-3xl lg:text-2xl leading-none text-primary
22
- lg:opacity-0 group-hover/shelf:opacity-90 transition-opacity"
23
- >
24
- <CarouselControl class="!top-1/2 !-left-4 w-12 h-12
25
- bg-transparent lg:bg-white/80 lg:hover:bg-primary-300/60 rounded-full
26
- lg:shadow-sm lg:ring-1 ring-black/5" is-prev />
27
- <CarouselControl class="!top-1/2 !-right-4 w-12 h-12
28
- bg-transparent lg:bg-white/80 lg:hover:bg-primary-300/60 rounded-full
29
- lg:shadow-sm lg:ring-1 ring-black/5" />
30
- </div>
31
- </template>
32
- </Carousel>
33
- </section>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import {
38
- type Props as UseProductShelfProps,
39
- useProductShelf,
40
- } from '@@sf/composables/use-product-shelf';
41
- import Carousel from '@@sf/components/Carousel.vue';
42
- import CarouselControl from '@@sf/components/CarouselControl.vue';
43
- import ProductCard from '~/components/ProductCard.vue';
44
-
45
- export interface Props extends UseProductShelfProps {}
46
-
47
- const props = defineProps<Props>();
48
- const {
49
- title,
50
- titleLink,
51
- fetching,
52
- products,
53
- } = useProductShelf(props);
54
- if (import.meta.env.SSR) {
55
- await fetching;
56
- }
57
- </script>
@@ -1,20 +0,0 @@
1
- <template>
2
- <section class="ui-section">
3
- <Countdown />
4
- <article v-for="product in products" :key="product._id">
5
- <ProductCard :product="product" />
6
- </article>
7
- </section>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import type { ProductItem } from '@@sf/composables/use-product-card';
12
- import ProductCard from '~/components/ProductCard.vue';
13
- import Countdown from '~/components/Countdown.vue';
14
-
15
- export interface Props {
16
- products: ProductItem[];
17
- }
18
-
19
- defineProps<Props>();
20
- </script>
@@ -1,6 +0,0 @@
1
- <template>
2
- <div class="w-full h-40 bg-base-300"></div>
3
- </template>
4
-
5
- <script setup lang="ts">
6
- </script>
@@ -1,149 +0,0 @@
1
- <template>
2
- <footer class="w-screen bg-base-50 border-t border-base-100 py-2">
3
- <div class="ui-section">
4
- <div class="pb-7 border-b border-base-200
5
- flex justify-between flex-wrap lg:flex-nowrap sm:gap-x-10 gap-y-5">
6
- <div class="shrink">
7
- <slot name="logo" />
8
- <div v-if="$settings.description" class="prose">
9
- <p>{{ $settings.description }}</p>
10
- </div>
11
- <div class="flex gap-2 text-base-500">
12
- <span v-for="(href, network) in socialNetworks" :key="network">
13
- <SocialNetworkLink :network="network" class="p-1 hover:text-primary">
14
- <template v-if="network === 'whatsapp'" #append>
15
- <span class="ml-1 text-sm text-base-600">
16
- {{ $settings.whatsapp }}
17
- </span>
18
- </template>
19
- </SocialNetworkLink>
20
- </span>
21
- </div>
22
- <div v-if="$settings.address || $settings.phone" class="mt-3 text-base-700">
23
- <address v-if="$settings.address" class="inline-block mr-4">
24
- {{ $settings.address }}
25
- </address>
26
- <ALink
27
- v-if="$settings.phone"
28
- :href="`tel:${$settings.phone.replace(/\D/g, '')}`"
29
- class="hover:text-primary"
30
- >
31
- <i class="i-phone mr-0.5"></i>
32
- {{ $settings.phone }}
33
- </ALink>
34
- </div>
35
- </div>
36
- <div v-if="categories?.length" class="basis-1/2 sm:basis-auto">
37
- <div class="text-lg font-medium mb-2.5">
38
- {{ categoriesColTitle || $t.i19categories }}
39
- </div>
40
- <ul
41
- class="text-sm"
42
- :class="categories.length > 4
43
- ? 'grid md:grid-cols-2 gap-x-5 gap-y-1.5' : 'space-y-1.5'"
44
- >
45
- <li v-for="({ name, slug }, i) in categories" :key="`c-${i}`">
46
- <ALink :href="`/${slug}`" class="ui-link text-base-600">
47
- {{ name }}
48
- </ALink>
49
- </li>
50
- <li>
51
- <ALink href="/s" class="ui-link text-base-900">
52
- {{ $t.i19allProducts }}
53
- </ALink>
54
- </li>
55
- </ul>
56
- </div>
57
- <div v-if="pageLinks?.length" class="basis-1/2 sm:basis-auto">
58
- <div class="text-lg font-medium mb-2.5">
59
- {{ pagesColTitle || $t.i19institutional }}
60
- </div>
61
- <ul
62
- class="text-sm"
63
- :class="pageLinks.length > 5
64
- ? 'grid md:grid-cols-2 gap-x-5 gap-y-1.5' : 'space-y-1.5'"
65
- >
66
- <li v-for="({ title, href }, i) in pageLinks" :key="`p-${i}`">
67
- <ALink :href="href" class="ui-link text-base-600">
68
- {{ title }}
69
- </ALink>
70
- </li>
71
- </ul>
72
- </div>
73
- </div>
74
- </div>
75
- <div class="ui-section">
76
- <div class="flex flex-wrap lg:flex-nowrap justify-between items-start gap-5">
77
- <ul class="flex gap-y-3 gap-x-6 lg:gap-x-8 items-center
78
- md:flex-wrap mx-auto md:mx-0 overflow-x-auto md:overflow-hidden">
79
- <li v-for="(stamp, i) in stamps" :key="i">
80
- <ALink :href="stamp.href?.replace('{domain}', $settings.domain || '')">
81
- <slot :name="`picture-${i}`" />
82
- <span v-if="!stamp.img" class="flex items-center">
83
- <span
84
- v-if="stamp.icon"
85
- class="text-4xl mr-2
86
- [&>*]:bg-gradient-to-br [&>*]:from-success-200 [&>*]:to-success-700"
87
- >
88
- <i v-if="stamp.icon === 'lock'" class="i-lock-closed"></i>
89
- <i v-else-if="stamp.icon === 'check'" class="i-check-badge"></i>
90
- <i v-else class="i-arrow-path-rounded-square"></i>
91
- </span>
92
- <span class="text-sm font-medium text-base-600 max-w-[140px]">
93
- {{ stamp.alt }}
94
- <i
95
- v-if="stamp.href && stamp.href.charAt(0) !== '/'"
96
- class="bg-base-400 ml-0.5 i-arrow-top-right-on-square"
97
- ></i>
98
- </span>
99
- </span>
100
- </ALink>
101
- </li>
102
- </ul>
103
- <div class="flex flex-wrap md:flex-nowrap justify-end items-center
104
- gap-4 text-2xl mx-auto md:mx-0 overflow-x-auto md:overflow-hidden">
105
- <PaymentMethodFlag
106
- v-for="paymentMethod in $settings.payment_methods"
107
- :key="paymentMethod"
108
- :flag="paymentMethod"
109
- />
110
- </div>
111
- </div>
112
- <div class="mt-7 text-xs text-center md:text-left
113
- md:flex justify-between gap-4">
114
- <div class="mb-3 md:mb-0">
115
- @ {{ new Date().getFullYear() }} {{ $settings.corporate_name }}
116
- {{ $settings.address ? `/ ${$settings.address}` : '' }}
117
- / {{ $settings.doc_number }}
118
- </div>
119
- <ALink href="https://www.ecomplus.io/" class="italic text-[#37003c]">
120
- powered by <b>E-Com Plus</b>
121
- </ALink>
122
- </div>
123
- </div>
124
- </footer>
125
- </template>
126
-
127
- <script setup lang="ts">
128
- import type { Categories } from '@cloudcommerce/api/types';
129
- import type { LayoutContent } from '@@sf/content';
130
- import { socialNetworks } from '@@sf/sf-lib';
131
- import SocialNetworkLink from '@@sf/components/SocialNetworkLink.vue';
132
- import PaymentMethodFlag from '@@sf/components/PaymentMethodFlag.vue';
133
-
134
- export interface Props {
135
- stamps?: LayoutContent['footer']['stamps'];
136
- categories?: Array<Partial<Categories> & {
137
- name: string;
138
- slug: string;
139
- }>;
140
- categoriesColTitle?: string;
141
- pageLinks?: Array<{
142
- title: string;
143
- href: string;
144
- }>;
145
- pagesColTitle?: string;
146
- }
147
-
148
- defineProps<Props>();
149
- </script>