cloudcommerce 0.33.0 → 0.33.2
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.
- package/.github/workflows/test-apps.yml +2 -2
- package/CHANGELOG.md +37 -0
- package/action.yml +2 -2
- package/ecomplus-stores/barra-doce/.github/workflows/build-and-deploy.yml +1 -1
- package/ecomplus-stores/barra-doce/.github/workflows/calibreapp-image-actions.yml +1 -1
- package/ecomplus-stores/barra-doce/.vscode/settings.json +3 -0
- package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/content/extra-pages/terms.json +1 -1
- package/ecomplus-stores/barra-doce/functions/ssr/content/pages/home.json +20 -0
- package/ecomplus-stores/barra-doce/functions/ssr/content/pages/products.json +2 -1
- package/ecomplus-stores/barra-doce/functions/ssr/content/settings.json +4 -1
- package/ecomplus-stores/barra-doce/functions/ssr/package.json +9 -8
- package/ecomplus-stores/barra-doce/functions/ssr/public/robots.txt +1 -1
- package/ecomplus-stores/barra-doce/functions/ssr/src/assets/style.css +15 -4
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountMenu.vue +5 -3
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/AccountPage.vue +62 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/Banner.vue +6 -3
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/Breadcrumbs.astro +44 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/CartItem.vue +11 -11
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/CartSidebar.vue +16 -13
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/CheckoutPage.vue +33 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/Collapse.vue +19 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/DocDescription.vue +28 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/FooterStamps.vue +62 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/HeroSlider.vue +14 -9
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ImagesGallery.vue +151 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/LoginForm.vue +107 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/PitchBar.vue +6 -8
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/Prices.vue +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductCard.vue +22 -22
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductDetails.vue +122 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductShelf.vue +10 -12
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ProductSpecifications.vue +42 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/SearchModal.vue +1 -1
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopFooter.vue +7 -58
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeader.vue +33 -34
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeaderMenu.vue +5 -5
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopHeaderSubmenu.vue +19 -11
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopSidenav.vue +10 -11
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/ShopSidenavCategory.vue +9 -10
- package/ecomplus-stores/barra-doce/functions/ssr/src/components/SkuSelector.vue +58 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageFooter.astro +3 -1
- package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/PageHeader.astro +1 -2
- package/ecomplus-stores/barra-doce/functions/ssr/src/main/Home.astro +1 -2
- package/ecomplus-stores/barra-doce/functions/ssr/src/main/Sections.astro +25 -2
- package/ecomplus-stores/barra-doce/functions/ssr/src/main/Wildcard.astro +12 -12
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/[...slug].astro +2 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/_vue.ts +17 -1
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/app/account.astro +34 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/app/index.astro +62 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/index.astro +0 -5
- package/ecomplus-stores/barra-doce/functions/ssr/src/pages/~fallback.astro +0 -2
- package/ecomplus-stores/barra-doce/functions/ssr/tailwind.config.cjs +0 -1
- package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barra-doce/package.json +2 -2
- package/ecomplus-stores/monocard/.editorconfig +13 -0
- package/ecomplus-stores/monocard/.eslintrc.cjs +1 -1
- package/ecomplus-stores/monocard/.vscode/settings.json +5 -1
- package/ecomplus-stores/monocard/functions/many/package.json +3 -3
- package/ecomplus-stores/monocard/functions/ssr/content/extra-pages/terms.json +1 -1
- package/ecomplus-stores/monocard/functions/ssr/content/pages/home.json +1 -44
- package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +2 -1
- package/ecomplus-stores/monocard/functions/ssr/content/settings.json +4 -1
- package/ecomplus-stores/monocard/functions/ssr/package.json +8 -7
- package/ecomplus-stores/monocard/functions/ssr/public/robots.txt +2 -4
- package/ecomplus-stores/monocard/functions/ssr/src/assets/style.css +7 -2
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +16 -14
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountPage.vue +62 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/Banner.vue +3 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/Breadcrumbs.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/CartItem.vue +11 -11
- package/ecomplus-stores/monocard/functions/ssr/src/components/CartSidebar.vue +16 -13
- package/ecomplus-stores/monocard/functions/ssr/src/components/CheckoutPage.vue +33 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/Collapse.vue +19 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/DemoVideo.vue +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.vue +3 -8
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +73 -79
- package/ecomplus-stores/monocard/functions/ssr/src/components/FooterStamps.vue +63 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/ImagesGallery.vue +154 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/LoginForm.vue +107 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/LottiePhoneNFC.vue +1 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/MonocardCustomizer.vue +21 -22
- package/ecomplus-stores/monocard/functions/ssr/src/components/PitchBar.vue +7 -7
- package/ecomplus-stores/monocard/functions/ssr/src/components/Prices.vue +3 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductCard.vue +24 -24
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductDetails.vue +122 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductShelf.vue +11 -11
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductSpecifications.vue +42 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/SearchModal.vue +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopFooter.vue +10 -62
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +25 -31
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +8 -8
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenav.vue +10 -11
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenavCategory.vue +9 -10
- package/ecomplus-stores/monocard/functions/ssr/src/components/SkuSelector.vue +58 -0
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageFooter.astro +4 -3
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageHeader.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +2 -1
- package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +18 -4
- package/ecomplus-stores/monocard/functions/ssr/src/main/Wildcard.astro +10 -1
- package/ecomplus-stores/monocard/functions/ssr/src/pages/app/account.astro +34 -0
- package/ecomplus-stores/monocard/functions/ssr/src/pages/app/index.astro +62 -0
- package/ecomplus-stores/monocard/functions/ssr/src/pages/index.astro +0 -5
- package/ecomplus-stores/monocard/functions/ssr/src/pages/~fallback.astro +0 -2
- package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +0 -1
- package/ecomplus-stores/monocard/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/monocard/package.json +2 -2
- package/package.json +7 -7
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +1 -1
- package/packages/apps/correios/package.json +3 -3
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +2 -2
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +3 -3
- package/packages/apps/flash-courier/package.json +2 -2
- package/packages/apps/frenet/package.json +2 -2
- package/packages/apps/galaxpay/package.json +2 -2
- package/packages/apps/google-analytics/package.json +2 -2
- package/packages/apps/jadlog/package.json +2 -2
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/mandae/package.json +2 -2
- package/packages/apps/melhor-envio/package.json +2 -2
- package/packages/apps/mercadopago/package.json +2 -2
- package/packages/apps/pagarme/package.json +2 -2
- package/packages/apps/pagarme-v5/package.json +3 -3
- package/packages/apps/paghiper/package.json +2 -2
- package/packages/apps/pix/package.json +2 -2
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/webhooks/package.json +2 -2
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +4 -4
- package/packages/eslint/package.json +4 -4
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +2 -2
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +2 -2
- package/packages/storefront/client.d.ts +3 -0
- package/packages/storefront/config/astro/context-directive.mjs +2 -2
- package/packages/storefront/package.json +9 -7
- package/packages/storefront/src/analytics/event-to-fbq.ts +82 -0
- package/packages/storefront/src/analytics/event-to-ttq.ts +15 -0
- package/packages/storefront/src/helpers/afetch.ts +20 -8
- package/packages/storefront/src/helpers/sf-utils.ts +15 -0
- package/packages/storefront/src/lib/components/Carousel.vue +19 -14
- package/packages/storefront/src/lib/composables/use-product-card.ts +12 -0
- package/packages/storefront/src/lib/layouts/Base.astro +1 -0
- package/packages/storefront/src/lib/layouts/BaseHead.astro +9 -2
- package/packages/storefront/src/lib/scripts/push-analytics-events.ts +88 -0
- package/packages/storefront/src/lib/scripts/session-utm.ts +16 -6
- package/packages/storefront/src/lib/scripts/vbeta-app.ts +4 -0
- package/packages/storefront/src/lib/ssr-context.ts +2 -2
- package/packages/storefront/src/lib/state/shopping-cart.ts +35 -2
- package/packages/storefront/src/lib/state/use-analytics.ts +283 -0
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/banner2.webp +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/headphone.webp +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/logo.png +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/passion.webp +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/rect8589.png +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/rect859.png +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/public/img/uploads/rect89.webp +0 -0
- package/ecomplus-stores/barra-doce/functions/ssr/src/layouts/Checkout.astro +0 -0
- package/ecomplus-stores/monocard/functions/ssr/content/extra-pages/contato.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/fluxo.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Checkout.astro +0 -0
|
@@ -10,7 +10,7 @@ const { breadcrumbs, inlineJSONLd } = await useBreadcrumbs(Astro.props);
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
{breadcrumbs.length > 0 &&
|
|
13
|
-
<section class=
|
|
13
|
+
<section class={`ui-section-slim ${breadcrumbs.length > 1 ? '' : 'hidden lg:block'}`}>
|
|
14
14
|
<nav aria-label="Breadcrumb" class="w-full overflow-hidden text-lg md:text-sm">
|
|
15
15
|
<ol class="flex items-center gap-1 text-base-600">
|
|
16
16
|
<li>
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<article class="relative bg-white shadow-sm">
|
|
3
|
-
<ALink :href="link" class="flex items-center gap-5 p-4
|
|
3
|
+
<ALink :href="link" class="group flex items-center gap-5 p-4">
|
|
4
4
|
<AImg
|
|
5
5
|
v-if="image"
|
|
6
6
|
:picture="image"
|
|
7
7
|
:alt="title"
|
|
8
|
-
class="
|
|
8
|
+
class="h-20 w-20 object-cover"
|
|
9
9
|
/>
|
|
10
|
-
<p class="
|
|
11
|
-
|
|
10
|
+
<p class="text-base-700 group-hover:text-base-900 flex-auto py-2
|
|
11
|
+
text-sm group-hover:underline">
|
|
12
12
|
{{ title }}
|
|
13
13
|
</p>
|
|
14
14
|
</ALink>
|
|
15
15
|
<button
|
|
16
16
|
v-if="cartItem._id"
|
|
17
17
|
@click.stop="removeCartItem(cartItem._id)"
|
|
18
|
-
class="absolute
|
|
18
|
+
class="absolute right-0 top-0 p-2 opacity-70 hover:opacity-100"
|
|
19
19
|
:aria-label="$t.i19remove"
|
|
20
20
|
>
|
|
21
|
-
<span class="
|
|
22
|
-
rounded-full
|
|
23
|
-
<i class="i-close my-0
|
|
21
|
+
<span class="border-3 text-danger-800 border-danger-700/30 flex h-5 w-5 flex-col
|
|
22
|
+
justify-center rounded-full text-sm leading-none">
|
|
23
|
+
<i class="i-close mx-auto my-0"></i>
|
|
24
24
|
</span>
|
|
25
25
|
</button>
|
|
26
|
-
<div class="flex justify-between
|
|
27
|
-
<div class="border-
|
|
26
|
+
<div class="border-base-100 flex items-center justify-between border-t-2">
|
|
27
|
+
<div class="border-base-100 border-r-2">
|
|
28
28
|
<QuantitySelector
|
|
29
29
|
v-model="cartItem.quantity"
|
|
30
30
|
:min="cartItem.min_quantity"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
:price="finalPrice"
|
|
37
37
|
:has-cashback="false"
|
|
38
38
|
:has-price-options="false"
|
|
39
|
-
class="px-4 py-2.5 text-[95%]
|
|
39
|
+
class="px-4 py-2.5 text-right text-[95%]"
|
|
40
40
|
/>
|
|
41
41
|
</div>
|
|
42
42
|
</article>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<aside class="flex flex-col
|
|
3
|
-
<header class="
|
|
4
|
-
shadow ring-1 ring-black/5
|
|
5
|
-
<span class="text-
|
|
2
|
+
<aside class="flex h-screen flex-col bg-white">
|
|
3
|
+
<header class="z-10 flex items-center justify-end gap-3 px-6
|
|
4
|
+
py-4 shadow ring-1 ring-black/5">
|
|
5
|
+
<span class="text-base-600 text-right text-base font-medium">
|
|
6
6
|
{{ $t.i19myShoppingCart }}
|
|
7
7
|
</span>
|
|
8
8
|
<span class="min-w-[3rem] text-right">
|
|
@@ -11,35 +11,38 @@
|
|
|
11
11
|
</span>
|
|
12
12
|
</span>
|
|
13
13
|
</header>
|
|
14
|
-
<article class="grow overflow-y-auto
|
|
15
|
-
<div v-if="freeShippingFromValue" class="text-
|
|
14
|
+
<article class="bg-base-50 grow overflow-y-auto">
|
|
15
|
+
<div v-if="freeShippingFromValue" class="text-center text-sm">
|
|
16
16
|
<div
|
|
17
17
|
v-if="freeShippingFromValue > shoppingCart.subtotal"
|
|
18
|
-
class="p-3
|
|
18
|
+
class="secondary-subtle p-3"
|
|
19
19
|
>
|
|
20
20
|
{{ $t.i19add$1ToEarn.replace('$1',
|
|
21
21
|
$money(freeShippingFromValue - shoppingCart.subtotal)) }}
|
|
22
22
|
<strong class="lowercase">{{ $t.i19freeShipping }}</strong>
|
|
23
23
|
</div>
|
|
24
|
-
<div v-else class="
|
|
24
|
+
<div v-else class="bg-success-50 text-success-800 p-3">
|
|
25
25
|
<i class="text-success-900 i-check mr-1"></i>
|
|
26
26
|
{{ $t.i19freeShippingFrom }} {{ $money(freeShippingFromValue) }}
|
|
27
27
|
</div>
|
|
28
28
|
</div>
|
|
29
|
-
<ul class="px-4 pt-4
|
|
29
|
+
<ul class="px-4 pb-2 pt-4">
|
|
30
30
|
<li v-for="(item, i) in shoppingCart.items" :key="i">
|
|
31
31
|
<CartItem :item="item" class="mb-3" />
|
|
32
32
|
</li>
|
|
33
33
|
</ul>
|
|
34
34
|
</article>
|
|
35
|
-
<footer class="px-5 pt-4
|
|
36
|
-
<div class="grid grid-cols-5 gap-3
|
|
35
|
+
<footer class="z-10 px-5 pb-3 pt-4 ring-2 ring-black/5">
|
|
36
|
+
<div class="grid grid-cols-5 items-center gap-3 text-right">
|
|
37
37
|
<div class="col-span-2">
|
|
38
38
|
{{ $t.i19subtotal }}
|
|
39
39
|
</div>
|
|
40
40
|
<Prices :price="shoppingCart.subtotal" class="col-span-3 text-lg" />
|
|
41
41
|
</div>
|
|
42
|
-
<CheckoutLink
|
|
42
|
+
<CheckoutLink
|
|
43
|
+
to="checkout"
|
|
44
|
+
class="ui-btn-lg ui-btn-primary my-2.5 w-full text-right"
|
|
45
|
+
>
|
|
43
46
|
<i class="i-check mr-2"></i>
|
|
44
47
|
{{ $t.i19checkout }}
|
|
45
48
|
</CheckoutLink>
|
|
@@ -48,7 +51,7 @@
|
|
|
48
51
|
@click.prevent="emit('close')"
|
|
49
52
|
class="ui-link text-base-500 hover:text-base-700 text-sm"
|
|
50
53
|
>
|
|
51
|
-
<i class="i-arrow-
|
|
54
|
+
<i class="i-arrow-right-line mr-1 rotate-180"></i>
|
|
52
55
|
{{ $t.i19continueShopping }}
|
|
53
56
|
</a>
|
|
54
57
|
</footer>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<article class="flex min-h-screen flex-col justify-end">
|
|
3
|
+
<section class="grow">
|
|
4
|
+
<article id="storefront-app"></article>
|
|
5
|
+
</section>
|
|
6
|
+
<section class="bg-base-50 mt-4 lg:mt-8">
|
|
7
|
+
<nav class="ui-section-slim">
|
|
8
|
+
<ul class="mt-6 flex flex-wrap justify-center gap-6 lg:gap-8">
|
|
9
|
+
<li
|
|
10
|
+
v-for="({ title, href }, i) in $settings.serviceLinks"
|
|
11
|
+
:key="`s-${i}`"
|
|
12
|
+
>
|
|
13
|
+
<ALink :href="href" target="blank" class="ui-link text-base-700">
|
|
14
|
+
{{ title }}
|
|
15
|
+
<i class="bg-base-300 i-arrow-top-right-on-square ml-0.5"></i>
|
|
16
|
+
</ALink>
|
|
17
|
+
</li>
|
|
18
|
+
</ul>
|
|
19
|
+
</nav>
|
|
20
|
+
<FooterStamps :stamps="footerStamps" />
|
|
21
|
+
</section>
|
|
22
|
+
</article>
|
|
23
|
+
</template>
|
|
24
|
+
|
|
25
|
+
<script setup lang="ts">
|
|
26
|
+
import FooterStamps from '~/components/FooterStamps.vue';
|
|
27
|
+
|
|
28
|
+
export interface Props {
|
|
29
|
+
footerStamps: InstanceType<typeof FooterStamps>['$props']['stamps'];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
defineProps<Props>();
|
|
33
|
+
</script>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<details class="[&_i]:open:rotate-180">
|
|
3
|
+
<summary role="button" class="text-base-700 hover:text-base-800
|
|
4
|
+
[&>i]:hover:text-primary my-4 list-none text-2xl
|
|
5
|
+
font-medium lowercase md:my-5">
|
|
6
|
+
<i class="i-chevron-down mr-1"></i>
|
|
7
|
+
<span>{{ title }}</span>
|
|
8
|
+
</summary>
|
|
9
|
+
<slot />
|
|
10
|
+
</details>
|
|
11
|
+
</template>
|
|
12
|
+
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
export interface Props {
|
|
15
|
+
title: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
defineProps<Props>();
|
|
19
|
+
</script>
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<section v-if="html" class="ui-section">
|
|
3
|
-
<
|
|
4
|
-
<summary role="button" class="text-base-700 hover:text-base-800
|
|
5
|
-
[&>i]:hover:text-primary my-4 list-none text-2xl
|
|
6
|
-
font-medium lowercase md:my-5">
|
|
7
|
-
<i class="i-chevron-down mr-1"></i>
|
|
8
|
-
<span>{{ title || $t.i19description }}</span>
|
|
9
|
-
</summary>
|
|
3
|
+
<Collapse :title="title || $t.i19description" open>
|
|
10
4
|
<ContentClearfix :html="html" />
|
|
11
|
-
</
|
|
5
|
+
</Collapse>
|
|
12
6
|
</section>
|
|
13
7
|
</template>
|
|
14
8
|
|
|
@@ -20,6 +14,7 @@ import type {
|
|
|
20
14
|
Collections,
|
|
21
15
|
} from '@cloudcommerce/api/types';
|
|
22
16
|
import ContentClearfix from '@@sf/components/ContentClearfix.vue';
|
|
17
|
+
import Collapse from '~/components/Collapse.vue';
|
|
23
18
|
|
|
24
19
|
export interface Props {
|
|
25
20
|
apiDoc?: Partial<Products | Categories | Brands | Collections>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<article class="container
|
|
2
|
+
<article class="container mx-auto my-4 px-8 text-center">
|
|
3
3
|
<h3
|
|
4
4
|
ref="title"
|
|
5
|
-
class="text-
|
|
6
|
-
|
|
5
|
+
class="text-base-700 inline-block text-xl font-semibold md:text-2xl
|
|
6
|
+
lg:text-left lg:text-3xl"
|
|
7
7
|
:style="{ minWidth: titleMinWidth, minHeight: titleMinHeight }"
|
|
8
8
|
>
|
|
9
9
|
<span class="block lg:inline">
|
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
<Fade speed="slow">
|
|
13
13
|
<span
|
|
14
14
|
v-if="copyKeyword"
|
|
15
|
-
class="
|
|
16
|
-
|
|
15
|
+
class="from-secondary-600 to-secondary-900 bg-gradient-to-tr bg-clip-text text-3xl
|
|
16
|
+
font-bold text-transparent"
|
|
17
17
|
>
|
|
18
18
|
{{ copyKeyword }}
|
|
19
19
|
</span>
|
|
20
20
|
</Fade>
|
|
21
21
|
</h3>
|
|
22
|
-
<TabGroup as="div" class="
|
|
23
|
-
<TabList class="flex space-x-1 rounded-md
|
|
22
|
+
<TabGroup as="div" class="mx-auto mt-9 max-w-3xl">
|
|
23
|
+
<TabList class="bg-base-100/70 flex space-x-1 rounded-md p-1">
|
|
24
24
|
<Tab
|
|
25
25
|
as="template"
|
|
26
26
|
v-for="(step, i) in [
|
|
@@ -31,43 +31,43 @@
|
|
|
31
31
|
v-slot="{ selected }"
|
|
32
32
|
>
|
|
33
33
|
<button
|
|
34
|
-
class="
|
|
34
|
+
class="ring-primary-100/60 ring-offset-primary-400
|
|
35
|
+
relative block w-full rounded-sm px-4 py-2.5 text-sm
|
|
35
36
|
font-medium leading-5 text-black
|
|
36
|
-
ring-
|
|
37
|
-
focus:outline-none focus:ring-2 block relative"
|
|
37
|
+
ring-offset-2 focus:outline-none focus:ring-2 md:text-base"
|
|
38
38
|
:class="selected ? 'bg-primary-100/30 text-black' : null"
|
|
39
39
|
>
|
|
40
|
-
<span class="z-10
|
|
40
|
+
<span class="relative z-10">{{ step }}</span>
|
|
41
41
|
</button>
|
|
42
42
|
</Tab>
|
|
43
43
|
</TabList>
|
|
44
|
-
<TabPanels class="
|
|
44
|
+
<TabPanels class="mx-auto mt-4 w-72 text-left sm:w-auto sm:px-5
|
|
45
45
|
md:min-h-[870px] lg:min-h-[880px] xl:min-h-[915px]">
|
|
46
46
|
<TabPanel v-motion-fade>
|
|
47
47
|
<div class="prose mb-8">
|
|
48
|
-
<h4 class="
|
|
48
|
+
<h4 class="mb-5 text-2xl leading-snug xl:text-3xl">
|
|
49
49
|
Conecte instantaneamente
|
|
50
|
-
<small class="text-
|
|
51
|
-
|
|
50
|
+
<small class="text-base-500 block text-lg
|
|
51
|
+
font-normal leading-tight xl:text-xl">
|
|
52
52
|
e compartilhe todos os seus contatos
|
|
53
53
|
</small>
|
|
54
54
|
</h4>
|
|
55
|
-
<div class="
|
|
55
|
+
<div class="text-base-700 mb-4 flex items-center gap-4 text-2xl">
|
|
56
56
|
<div class="flex items-center">
|
|
57
|
-
<div class="bg-base-300 text-base-900
|
|
58
|
-
|
|
57
|
+
<div class="bg-base-300 text-base-900 flex h-8
|
|
58
|
+
items-center gap-2 rounded-l pl-2 pr-0.5 text-lg">
|
|
59
59
|
<i class="i-loader-2-fill my-0"></i>
|
|
60
60
|
<i class="i-qr-code-line my-0"></i>
|
|
61
61
|
<i class="i-link-m my-0"></i>
|
|
62
62
|
</div>
|
|
63
|
-
<div class="relative w-6
|
|
64
|
-
<div class="absolute -top-0.5 w-6 overflow-hidden
|
|
65
|
-
<div class="
|
|
66
|
-
|
|
63
|
+
<div class="relative h-8 w-6 overflow-hidden">
|
|
64
|
+
<div class="absolute -top-0.5 inline-block w-6 overflow-hidden">
|
|
65
|
+
<div class="bg-base-300 h-9
|
|
66
|
+
origin-top-left rotate-45"></div>
|
|
67
67
|
</div>
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
|
-
<div class="grid grid-cols-4 md:grid-cols-8
|
|
70
|
+
<div class="grid grid-cols-4 gap-4 md:grid-cols-8">
|
|
71
71
|
<i class="i-pix my-0"></i>
|
|
72
72
|
<i class="i-whatsapp my-0"></i>
|
|
73
73
|
<i class="i-instagram my-0"></i>
|
|
@@ -75,16 +75,16 @@
|
|
|
75
75
|
<i class="i-linkedin my-0"></i>
|
|
76
76
|
<i class="i-facebook my-0"></i>
|
|
77
77
|
<i class="i-mail-send-line my-0"></i>
|
|
78
|
-
<i class="i-add-circle-fill
|
|
78
|
+
<i class="i-add-circle-fill text-secondary-700 my-0"></i>
|
|
79
79
|
</div>
|
|
80
80
|
</div>
|
|
81
81
|
</div>
|
|
82
|
-
<div class="grid grid-cols-1 sm:grid-cols-2
|
|
82
|
+
<div class="grid grid-cols-1 gap-x-10 sm:grid-cols-2">
|
|
83
83
|
<div class="prose">
|
|
84
84
|
<slot name="picture-nfc" />
|
|
85
|
-
<h4 class="flex gap-3
|
|
86
|
-
<i class="i-loader-2-fill text-4xl
|
|
87
|
-
<span class="font-
|
|
85
|
+
<h4 class="flex items-center gap-3">
|
|
86
|
+
<i class="i-loader-2-fill my-0 text-4xl"></i>
|
|
87
|
+
<span class="font-brand font-normal lowercase">
|
|
88
88
|
Aproximação
|
|
89
89
|
</span>
|
|
90
90
|
</h4>
|
|
@@ -96,9 +96,9 @@
|
|
|
96
96
|
</div>
|
|
97
97
|
<div class="prose mt-5 sm:mt-0">
|
|
98
98
|
<slot name="picture-qrcode" />
|
|
99
|
-
<h4 class="flex gap-3
|
|
100
|
-
<i class="i-qr-code-line text-4xl
|
|
101
|
-
<span class="font-
|
|
99
|
+
<h4 class="flex items-center gap-3">
|
|
100
|
+
<i class="i-qr-code-line my-0 text-4xl"></i>
|
|
101
|
+
<span class="font-brand font-normal lowercase">
|
|
102
102
|
QR Code
|
|
103
103
|
</span>
|
|
104
104
|
</h4>
|
|
@@ -110,17 +110,17 @@
|
|
|
110
110
|
</div>
|
|
111
111
|
<div class="sm:col-span-2">
|
|
112
112
|
<div class="prose">
|
|
113
|
-
<h4 class="flex flex-wrap gap-3
|
|
114
|
-
<i class="i-link-m text-4xl
|
|
115
|
-
<span class="font-
|
|
113
|
+
<h4 class="flex flex-wrap items-center gap-3">
|
|
114
|
+
<i class="i-link-m my-0 text-4xl"></i>
|
|
115
|
+
<span class="font-brand font-normal lowercase">
|
|
116
116
|
Link
|
|
117
117
|
</span>
|
|
118
118
|
<ALink
|
|
119
119
|
class="text-base-700 decoration-base-300"
|
|
120
120
|
href="https://mono.direct/carlos"
|
|
121
121
|
>
|
|
122
|
-
<small class="
|
|
123
|
-
|
|
122
|
+
<small class="bg-base-200 rounded-sm px-2
|
|
123
|
+
py-1 font-mono text-sm font-normal">
|
|
124
124
|
https://mono.direct/<b>seunome</b>
|
|
125
125
|
</small>
|
|
126
126
|
</ALink>
|
|
@@ -132,22 +132,22 @@
|
|
|
132
132
|
</div>
|
|
133
133
|
</div>
|
|
134
134
|
</div>
|
|
135
|
-
<div class="mt-5 flex gap-3
|
|
136
|
-
text-xl lg:text-2xl
|
|
135
|
+
<div class="font-brand mt-5 flex gap-3
|
|
136
|
+
text-xl lowercase lg:gap-4 lg:text-2xl">
|
|
137
137
|
<a
|
|
138
138
|
:href="$settings.metafields?.monocardSlug"
|
|
139
|
-
class="primary border-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
class="primary border-primary hover:border-primary-bold
|
|
140
|
+
active:primary-bold rounded-full
|
|
141
|
+
border-4 px-4 py-1.5 lg:px-7 lg:py-3"
|
|
142
142
|
>
|
|
143
143
|
Monte seu Monocard
|
|
144
144
|
</a>
|
|
145
145
|
<a
|
|
146
146
|
:href="$settings.metafields?.businessLpUrl"
|
|
147
|
-
class="
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
147
|
+
class="border-primary hover:bg-primary-100
|
|
148
|
+
hover:border-primary-bold active:primary-bold hidden rounded-full
|
|
149
|
+
border-4 bg-transparent px-4
|
|
150
|
+
py-2 text-black sm:block lg:px-6 lg:py-3"
|
|
151
151
|
>
|
|
152
152
|
Para empresas
|
|
153
153
|
</a>
|
|
@@ -155,8 +155,8 @@
|
|
|
155
155
|
</TabPanel>
|
|
156
156
|
<TabPanel v-motion-fade>
|
|
157
157
|
<slot name="picture-edit" />
|
|
158
|
-
<div class="flex flex-wrap md:flex-nowrap
|
|
159
|
-
<div class="md:basis-1/2
|
|
158
|
+
<div class="flex flex-wrap gap-x-10 md:flex-nowrap">
|
|
159
|
+
<div class="prose md:basis-1/2">
|
|
160
160
|
<h4 class="text-xl">
|
|
161
161
|
Editar o perfil é rápido e fácil
|
|
162
162
|
</h4>
|
|
@@ -166,8 +166,8 @@
|
|
|
166
166
|
LinkedIn, Instagram, TikTok, Twitter, loja, website
|
|
167
167
|
e até Pix.
|
|
168
168
|
</p>
|
|
169
|
-
<p class="
|
|
170
|
-
text-2xl
|
|
169
|
+
<p class="text-base-800 grid max-w-[170px] grid-cols-4 gap-5
|
|
170
|
+
text-2xl lg:max-w-[200px]">
|
|
171
171
|
<i class="i-pix my-0"></i>
|
|
172
172
|
<i class="i-whatsapp my-0"></i>
|
|
173
173
|
<i class="i-instagram my-0"></i>
|
|
@@ -175,29 +175,29 @@
|
|
|
175
175
|
<i class="i-linkedin my-0"></i>
|
|
176
176
|
<i class="i-facebook my-0"></i>
|
|
177
177
|
<i class="i-mail-send-line my-0"></i>
|
|
178
|
-
<i class="i-add-circle-fill
|
|
178
|
+
<i class="i-add-circle-fill text-secondary-700 my-0"></i>
|
|
179
179
|
</p>
|
|
180
180
|
<p class="font-medium">
|
|
181
181
|
Tudo em um único link apontado diretamente pelo
|
|
182
182
|
seu cartão de visitas inteligente.
|
|
183
183
|
</p>
|
|
184
184
|
</div>
|
|
185
|
-
<div class="md:basis-1/2
|
|
186
|
-
<h4 class="flex gap-3
|
|
187
|
-
<i class="i-translate-2 text-4xl
|
|
188
|
-
<span class="font-
|
|
185
|
+
<div class="prose md:basis-1/2">
|
|
186
|
+
<h4 class="flex items-center gap-3">
|
|
187
|
+
<i class="i-translate-2 my-0 text-4xl"></i>
|
|
188
|
+
<span class="font-brand font-normal lowercase">
|
|
189
189
|
Multilingual
|
|
190
190
|
</span>
|
|
191
191
|
</h4>
|
|
192
192
|
<p>
|
|
193
193
|
Traduz automaticamente o perfil para inglês.
|
|
194
|
-
<small class="
|
|
194
|
+
<small class="text-base-500 block">
|
|
195
195
|
Tradução para outras línguas em breve.
|
|
196
196
|
</small>
|
|
197
197
|
</p>
|
|
198
|
-
<h4 class="flex gap-3
|
|
199
|
-
<i class="i-menu-add-fill text-4xl
|
|
200
|
-
<span class="font-
|
|
198
|
+
<h4 class="flex items-center gap-3 md:mt-9">
|
|
199
|
+
<i class="i-menu-add-fill my-0 text-4xl"></i>
|
|
200
|
+
<span class="font-brand font-normal lowercase">
|
|
201
201
|
Ilimitado
|
|
202
202
|
</span>
|
|
203
203
|
</h4>
|
|
@@ -207,33 +207,33 @@
|
|
|
207
207
|
</p>
|
|
208
208
|
</div>
|
|
209
209
|
</div>
|
|
210
|
-
<div class="mt-5 flex flex-wrap gap-3
|
|
211
|
-
text-lg lg:text-xl
|
|
210
|
+
<div class="font-brand mt-5 flex flex-wrap gap-3
|
|
211
|
+
text-lg lowercase lg:gap-4 lg:text-xl">
|
|
212
212
|
<a
|
|
213
213
|
href="#produtos"
|
|
214
|
-
class="
|
|
215
|
-
primary
|
|
216
|
-
|
|
217
|
-
rounded-full px-6 py-1.5
|
|
218
|
-
|
|
214
|
+
class="primary border-primary
|
|
215
|
+
hover:border-primary-bold active:primary-bold flex
|
|
216
|
+
grow items-center
|
|
217
|
+
rounded-full border-4 px-6 py-1.5 sm:grow-0
|
|
218
|
+
lg:px-8 lg:py-3"
|
|
219
219
|
>
|
|
220
|
-
<span class="leading-tight
|
|
220
|
+
<span class="block leading-tight">
|
|
221
221
|
Compre agora
|
|
222
|
-
<small class="block text-sm
|
|
222
|
+
<small class="text-base-700 block text-sm">
|
|
223
223
|
Seu Monocard ou Monodot
|
|
224
224
|
</small>
|
|
225
225
|
</span>
|
|
226
226
|
</a>
|
|
227
227
|
<a
|
|
228
228
|
:href="$settings.metafields?.businessLpUrl"
|
|
229
|
-
class="
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
229
|
+
class="border-primary hover:bg-primary-100
|
|
230
|
+
hover:border-primary-bold active:primary-bold grow rounded-full
|
|
231
|
+
border-4 bg-transparent px-6
|
|
232
|
+
py-1.5 text-black sm:grow-0 lg:px-8 lg:py-3"
|
|
233
233
|
>
|
|
234
|
-
<span class="leading-tight
|
|
234
|
+
<span class="block leading-tight">
|
|
235
235
|
Para grandes times
|
|
236
|
-
<small class="block text-sm
|
|
236
|
+
<small class="text-base-700 block text-sm">
|
|
237
237
|
Fale conosco
|
|
238
238
|
</small>
|
|
239
239
|
</span>
|
|
@@ -246,12 +246,6 @@
|
|
|
246
246
|
</template>
|
|
247
247
|
|
|
248
248
|
<script setup lang="ts">
|
|
249
|
-
import {
|
|
250
|
-
ref,
|
|
251
|
-
nextTick,
|
|
252
|
-
onMounted,
|
|
253
|
-
onBeforeUnmount,
|
|
254
|
-
} from 'vue';
|
|
255
249
|
import { useDebounceFn } from '@vueuse/core';
|
|
256
250
|
import {
|
|
257
251
|
TabGroup,
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="ui-section">
|
|
3
|
+
<div class="flex flex-wrap items-start justify-between gap-5 lg:flex-nowrap">
|
|
4
|
+
<ul class="mx-auto flex items-center gap-x-6 gap-y-3
|
|
5
|
+
overflow-x-auto md:mx-0 md:flex-wrap md:overflow-hidden lg:gap-x-8">
|
|
6
|
+
<li v-for="(stamp, i) in stamps" :key="i">
|
|
7
|
+
<ALink :href="stamp.href?.replace('{domain}', $settings.domain || '')">
|
|
8
|
+
<slot :name="`picture-${i}`" />
|
|
9
|
+
<span v-if="!stamp.img" class="flex items-center">
|
|
10
|
+
<span
|
|
11
|
+
v-if="stamp.icon"
|
|
12
|
+
class="[&>*]:from-success-200 [&>*]:to-success-700
|
|
13
|
+
mr-2 text-4xl [&>*]:bg-gradient-to-br"
|
|
14
|
+
>
|
|
15
|
+
<i v-if="stamp.icon === 'lock'" class="i-lock-closed"></i>
|
|
16
|
+
<i v-else-if="stamp.icon === 'check'" class="i-check-badge"></i>
|
|
17
|
+
<i v-else class="i-arrow-path-rounded-square"></i>
|
|
18
|
+
</span>
|
|
19
|
+
<span class="text-base-300 max-w-[140px] text-sm font-medium">
|
|
20
|
+
{{ stamp.alt }}
|
|
21
|
+
<i
|
|
22
|
+
v-if="stamp.href && stamp.href.charAt(0) !== '/'"
|
|
23
|
+
class="bg-base-400 i-arrow-top-right-on-square ml-0.5"
|
|
24
|
+
></i>
|
|
25
|
+
</span>
|
|
26
|
+
</span>
|
|
27
|
+
</ALink>
|
|
28
|
+
</li>
|
|
29
|
+
</ul>
|
|
30
|
+
<div class="mx-auto flex flex-wrap items-center justify-end
|
|
31
|
+
gap-4 overflow-x-auto text-2xl md:mx-0 md:flex-nowrap md:overflow-hidden">
|
|
32
|
+
<PaymentMethodFlag
|
|
33
|
+
v-for="paymentMethod in $settings.paymentMethods"
|
|
34
|
+
:key="paymentMethod"
|
|
35
|
+
:flag="paymentMethod"
|
|
36
|
+
class="!text-base-50"
|
|
37
|
+
/>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="mt-7 justify-between gap-4 text-center
|
|
41
|
+
text-xs md:flex md:text-left">
|
|
42
|
+
<div class="mb-3 md:mb-0">
|
|
43
|
+
@ {{ new Date().getFullYear() }} {{ $settings.corporateName }}
|
|
44
|
+
{{ $settings.address ? `/ ${$settings.address}` : '' }}
|
|
45
|
+
/ {{ $settings.docNumber }}
|
|
46
|
+
</div>
|
|
47
|
+
<ALink href="https://www.ecomplus.io/" class="italic text-[rgb(239,235,240)]">
|
|
48
|
+
powered by <b>E-Com Plus</b>
|
|
49
|
+
</ALink>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<script setup lang="ts">
|
|
55
|
+
import type { LayoutContent } from '@@sf/content';
|
|
56
|
+
import PaymentMethodFlag from '@@sf/components/PaymentMethodFlag.vue';
|
|
57
|
+
|
|
58
|
+
export interface Props {
|
|
59
|
+
stamps?: LayoutContent['footer']['stamps'];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
defineProps<Props>();
|
|
63
|
+
</script>
|