cloudcommerce 0.36.2 → 0.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test-apps.yml +2 -2
- package/.gitmodules +0 -3
- package/.vscode/settings.json +0 -1
- package/CHANGELOG.md +38 -0
- package/action.yml +2 -2
- package/ecomplus-stores/barra-doce/functions/many/package.json +3 -3
- package/ecomplus-stores/barra-doce/functions/ssr/package.json +6 -6
- package/ecomplus-stores/barra-doce/functions/with-apps/package.json +3 -3
- package/ecomplus-stores/barra-doce/package.json +2 -2
- package/package.json +5 -5
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +1 -1
- package/packages/apps/correios/package.json +1 -1
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +1 -1
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +1 -1
- package/packages/apps/fb-conversions/package.json +2 -2
- package/packages/apps/flash-courier/package.json +1 -1
- package/packages/apps/frenet/package.json +1 -1
- package/packages/apps/galaxpay/package.json +1 -1
- package/packages/apps/google-analytics/package.json +1 -1
- package/packages/apps/jadlog/package.json +1 -1
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/mandae/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +1 -1
- package/packages/apps/mercadopago/package.json +1 -1
- package/packages/apps/pagarme/package.json +1 -1
- package/packages/apps/pagarme-v5/package.json +1 -1
- package/packages/apps/paghiper/package.json +1 -1
- package/packages/apps/pix/package.json +1 -1
- package/packages/apps/tiny-erp/package.json +1 -1
- package/packages/apps/webhooks/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +1 -1
- package/packages/eslint/package.json +5 -5
- package/packages/events/package.json +1 -1
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +1 -1
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/ssr/package.json +4 -4
- package/packages/storefront/package.json +11 -10
- package/packages/storefront/src/helpers/sf-utils.ts +8 -5
- package/packages/storefront/src/lib/components/CarouselControl.vue +1 -1
- package/packages/storefront/src/lib/composables/use-search-modal.ts +90 -0
- package/packages/storefront/src/lib/composables/use-shop-header.ts +69 -1
- package/packages/storefront/src/lib/state/search-engine.ts +39 -13
- package/packages/storefront/src/lib/state/shopping-cart.ts +2 -1
- package/packages/storefront/src/lib/state/use-analytics.ts +27 -11
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/ecomplus-stores/monocard/.devcontainer/devcontainer.json +0 -30
- package/ecomplus-stores/monocard/.editorconfig +0 -13
- package/ecomplus-stores/monocard/.eslintrc.cjs +0 -3
- package/ecomplus-stores/monocard/.firebaserc +0 -5
- package/ecomplus-stores/monocard/.github/build-and-deploy +0 -1
- package/ecomplus-stores/monocard/.github/renovate.json +0 -5
- package/ecomplus-stores/monocard/.github/workflows/build-and-deploy.yml +0 -37
- package/ecomplus-stores/monocard/.github/workflows/calibreapp-image-actions.yml +0 -23
- package/ecomplus-stores/monocard/.gitpod.yml +0 -12
- package/ecomplus-stores/monocard/.idx/dev.nix +0 -24
- package/ecomplus-stores/monocard/.nvmrc +0 -1
- package/ecomplus-stores/monocard/.vscode/extensions.json +0 -8
- package/ecomplus-stores/monocard/.vscode/launch.json +0 -11
- package/ecomplus-stores/monocard/.vscode/settings.json +0 -13
- package/ecomplus-stores/monocard/LICENSE.md +0 -230
- package/ecomplus-stores/monocard/README.md +0 -31
- package/ecomplus-stores/monocard/SETUP.md +0 -129
- package/ecomplus-stores/monocard/SETUP.pt-BR.md +0 -129
- package/ecomplus-stores/monocard/functions/config.json +0 -3
- package/ecomplus-stores/monocard/functions/example.env +0 -10
- package/ecomplus-stores/monocard/functions/many/index.js +0 -14
- package/ecomplus-stores/monocard/functions/many/package.json +0 -22
- package/ecomplus-stores/monocard/functions/ssr/.eslintrc.cjs +0 -6
- package/ecomplus-stores/monocard/functions/ssr/astro.config.mjs +0 -4
- package/ecomplus-stores/monocard/functions/ssr/content/blog/.gitkeep +0 -0
- package/ecomplus-stores/monocard/functions/ssr/content/extra-pages/terms.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/extra-pages/trocas.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/layout.json +0 -52
- package/ecomplus-stores/monocard/functions/ssr/content/pages/home.json +0 -20
- package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +0 -18
- package/ecomplus-stores/monocard/functions/ssr/content/settings.json +0 -78
- package/ecomplus-stores/monocard/functions/ssr/index.js +0 -18
- package/ecomplus-stores/monocard/functions/ssr/package.json +0 -36
- package/ecomplus-stores/monocard/functions/ssr/public/admin/.gitkeep +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/lotties/img_1.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/lotties/img_1.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/lotties/phone-nfc.json +0 -1
- package/ecomplus-stores/monocard/functions/ssr/public/img/icon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/large-icon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/card-phone.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/devices.jpg +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/ecom-icon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/edit-suit.jpg +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/favicon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/icon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/large-icon.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-arcelor-mittal.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-azul.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-banco-pan.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-brinks.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-mastercard.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-pfizer.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-prudential.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo-unimed.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/logo.webp +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/mockup-editar.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/og-image.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/padronagem-tilada.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/qrcode-camera.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/img/uploads/sua-logo-aqui.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/robots.txt +0 -6
- package/ecomplus-stores/monocard/functions/ssr/scripts/build.sh +0 -14
- package/ecomplus-stores/monocard/functions/ssr/src/assets/card.css +0 -99
- package/ecomplus-stores/monocard/functions/ssr/src/assets/style.css +0 -79
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +0 -97
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountPage.vue +0 -62
- package/ecomplus-stores/monocard/functions/ssr/src/components/Banner.vue +0 -59
- package/ecomplus-stores/monocard/functions/ssr/src/components/BannersGrid.astro +0 -25
- package/ecomplus-stores/monocard/functions/ssr/src/components/Breadcrumbs.astro +0 -44
- package/ecomplus-stores/monocard/functions/ssr/src/components/CartItem.vue +0 -64
- package/ecomplus-stores/monocard/functions/ssr/src/components/CartSidebar.vue +0 -69
- package/ecomplus-stores/monocard/functions/ssr/src/components/CasesGrid.astro +0 -49
- package/ecomplus-stores/monocard/functions/ssr/src/components/CheckoutPage.vue +0 -33
- package/ecomplus-stores/monocard/functions/ssr/src/components/Collapse.vue +0 -19
- package/ecomplus-stores/monocard/functions/ssr/src/components/DemoVideo.vue +0 -10
- package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.vue +0 -28
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +0 -286
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeaturesSection.astro +0 -28
- package/ecomplus-stores/monocard/functions/ssr/src/components/FooterStamps.vue +0 -63
- package/ecomplus-stores/monocard/functions/ssr/src/components/ImagesGallery.vue +0 -154
- package/ecomplus-stores/monocard/functions/ssr/src/components/LoginForm.vue +0 -107
- package/ecomplus-stores/monocard/functions/ssr/src/components/LottiePhoneNFC.vue +0 -20
- package/ecomplus-stores/monocard/functions/ssr/src/components/MonocardCustomizer.vue +0 -261
- package/ecomplus-stores/monocard/functions/ssr/src/components/PitchBar.vue +0 -61
- package/ecomplus-stores/monocard/functions/ssr/src/components/Prices.vue +0 -95
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductCard.vue +0 -117
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductDetails.vue +0 -122
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductShelf.vue +0 -57
- package/ecomplus-stores/monocard/functions/ssr/src/components/ProductSpecifications.vue +0 -42
- package/ecomplus-stores/monocard/functions/ssr/src/components/SearchModal.vue +0 -6
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopFooter.vue +0 -71
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +0 -137
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +0 -92
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenav.vue +0 -64
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenavCategory.vue +0 -77
- package/ecomplus-stores/monocard/functions/ssr/src/components/SkuSelector.vue +0 -58
- package/ecomplus-stores/monocard/functions/ssr/src/env.d.ts +0 -13
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Base.astro +0 -15
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageFooter.astro +0 -53
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/PageHeader.astro +0 -35
- package/ecomplus-stores/monocard/functions/ssr/src/main/Fallback.astro +0 -10
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +0 -95
- package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +0 -52
- package/ecomplus-stores/monocard/functions/ssr/src/main/Wildcard.astro +0 -18
- package/ecomplus-stores/monocard/functions/ssr/src/pages/[...slug].astro +0 -42
- package/ecomplus-stores/monocard/functions/ssr/src/pages/_vue.ts +0 -10
- package/ecomplus-stores/monocard/functions/ssr/src/pages/app/account.astro +0 -34
- package/ecomplus-stores/monocard/functions/ssr/src/pages/app/index.astro +0 -62
- package/ecomplus-stores/monocard/functions/ssr/src/pages/comprar/index.astro +0 -52
- package/ecomplus-stores/monocard/functions/ssr/src/pages/index.astro +0 -32
- package/ecomplus-stores/monocard/functions/ssr/src/pages/~fallback.astro +0 -23
- package/ecomplus-stores/monocard/functions/ssr/src/scripts/InlineScripts.astro +0 -10
- package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +0 -18
- package/ecomplus-stores/monocard/functions/ssr/tsconfig.json +0 -12
- package/ecomplus-stores/monocard/functions/ssr/uno.config.cjs +0 -5
- package/ecomplus-stores/monocard/functions/with-apps/index.js +0 -12
- package/ecomplus-stores/monocard/functions/with-apps/package.json +0 -22
- package/ecomplus-stores/monocard/package.json +0 -31
- package/ecomplus-stores/monocard/scripts/install.sh +0 -24
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import {
|
|
3
|
-
type Props as ShopFooterProps,
|
|
4
|
-
default as ShopFooter,
|
|
5
|
-
} from '~/components/ShopFooter.vue';
|
|
6
|
-
|
|
7
|
-
const { routeContext } = Astro.locals;
|
|
8
|
-
const { settings, getContent, isHomepage } = routeContext;
|
|
9
|
-
const LogoHeading = isHomepage ? 'h2' : 'h3';
|
|
10
|
-
const layoutContent = await getContent('layout');
|
|
11
|
-
const {
|
|
12
|
-
footer: {
|
|
13
|
-
stamps,
|
|
14
|
-
pagesList,
|
|
15
|
-
},
|
|
16
|
-
} = layoutContent;
|
|
17
|
-
let pageLinks: ShopFooterProps['pageLinks'];
|
|
18
|
-
if (pagesList?.isActive) {
|
|
19
|
-
if (pagesList.links?.length) {
|
|
20
|
-
pageLinks = pagesList.links;
|
|
21
|
-
} else {
|
|
22
|
-
pageLinks = settings.serviceLinks || [];
|
|
23
|
-
const pageSlugs = await getContent('extra-pages/');
|
|
24
|
-
for (let i = 0; i < pageSlugs.length; i++) {
|
|
25
|
-
const { title } = await getContent(`extra-pages/${pageSlugs[i]}`);
|
|
26
|
-
const href = `/p/${pageSlugs[i]}`;
|
|
27
|
-
if (title && !pageLinks.find((pageLink) => pageLink.href === href)) {
|
|
28
|
-
pageLinks.push({ title, href });
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
<ShopFooter
|
|
36
|
-
{stamps}
|
|
37
|
-
{pageLinks}
|
|
38
|
-
pagesColTitle={pagesList?.title}
|
|
39
|
-
>
|
|
40
|
-
<Fragment slot="logo">
|
|
41
|
-
<a href="/">
|
|
42
|
-
<LogoHeading>
|
|
43
|
-
<img
|
|
44
|
-
src={settings.logo}
|
|
45
|
-
alt={settings.name}
|
|
46
|
-
width="150"
|
|
47
|
-
height="24.5"
|
|
48
|
-
loading="lazy"
|
|
49
|
-
/>
|
|
50
|
-
</LogoHeading>
|
|
51
|
-
</a>
|
|
52
|
-
</Fragment>
|
|
53
|
-
</ShopFooter>
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import usePageHeader from '@@sf/layouts/use-page-header';
|
|
3
|
-
import PitchBar from '~/components/PitchBar.vue';
|
|
4
|
-
import ShopHeader from '~/components/ShopHeader.vue';
|
|
5
|
-
|
|
6
|
-
const { routeContext } = Astro.locals;
|
|
7
|
-
const { settings, isHomepage } = routeContext;
|
|
8
|
-
const LogoHeading = isHomepage ? 'h1' : 'h2';
|
|
9
|
-
const { pitchBar, shopHeader } = await usePageHeader({
|
|
10
|
-
routeContext,
|
|
11
|
-
listedCategoryFields: null,
|
|
12
|
-
});
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
<slot name="pitch-bar">
|
|
16
|
-
{pitchBar.slides.length > 1 && <PitchBar {...pitchBar} client:idle />}
|
|
17
|
-
{pitchBar.slides.length === 1 && <PitchBar {...pitchBar} />}
|
|
18
|
-
</slot>
|
|
19
|
-
<ShopHeader {...shopHeader} client:context>
|
|
20
|
-
<Fragment slot="logo">
|
|
21
|
-
<a href="/">
|
|
22
|
-
<LogoHeading>
|
|
23
|
-
<img
|
|
24
|
-
src={settings.logo}
|
|
25
|
-
alt={settings.name}
|
|
26
|
-
width="150"
|
|
27
|
-
height="24.5"
|
|
28
|
-
fetchpriority="high"
|
|
29
|
-
loading="eager"
|
|
30
|
-
class="hover:drop-shadow-sm mx-auto"
|
|
31
|
-
/>
|
|
32
|
-
</LogoHeading>
|
|
33
|
-
</a>
|
|
34
|
-
</Fragment>
|
|
35
|
-
</ShopHeader>
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import LottiePhoneNFC from '~/components/LottiePhoneNFC.vue';
|
|
3
|
-
import CasesGrid from '~/components/CasesGrid.astro';
|
|
4
|
-
import FeaturesSection from '~/components/FeaturesSection.astro';
|
|
5
|
-
import Sections from '~/main/Sections.astro';
|
|
6
|
-
|
|
7
|
-
const { routeContext } = Astro.locals;
|
|
8
|
-
const { settings } = routeContext;
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
<main>
|
|
12
|
-
<section class="bg-white">
|
|
13
|
-
<article class="container mx-auto px-8">
|
|
14
|
-
<div class="grid grid-cols-1 lg:grid-cols-7">
|
|
15
|
-
<div class="lg:col-span-3 pt-5 lg:py-18 xl:py-20 lg:text-right prose">
|
|
16
|
-
<h3 class="text-5xl lg:text-6xl xl:text-7xl 2xl:text-8xl font-bold mt-7">
|
|
17
|
-
A melhor forma de se
|
|
18
|
-
<span class="text-transparent bg-clip-text bg-gradient-to-br
|
|
19
|
-
from-base-900 to-secondary-500">
|
|
20
|
-
conectar</span>
|
|
21
|
-
</h3>
|
|
22
|
-
<h2 class="text-lg lg:text-lg 2xl:text-2xl font-medium">
|
|
23
|
-
O Monocard é o cartão de visitas tecnológico e digital
|
|
24
|
-
perfeito para pessoas e empresas
|
|
25
|
-
</h2>
|
|
26
|
-
<div class="not-prose mt-5 flex gap-3 lg:gap-4 text-center lg:justify-end
|
|
27
|
-
text-lg sm:text-xl lg:text-2xl xl:text-3xl font-brand lowercase">
|
|
28
|
-
<a role="button" href="/#produtos"
|
|
29
|
-
class="primary lg:border-4 border-primary
|
|
30
|
-
hover:border-primary-bold active:primary-bold
|
|
31
|
-
basis-1/2 lg:basis-auto rounded-full px-4 py-2.5 xl:px-7 xl:py-4">
|
|
32
|
-
Compre agora
|
|
33
|
-
</a>
|
|
34
|
-
<a role="button" href={settings.metafields.businessLpUrl}
|
|
35
|
-
class="bg-primary/40 text-primary-900 lg:border-4 border-primary/20
|
|
36
|
-
hover:primary hover:border-primary-bold active:primary-bold
|
|
37
|
-
basis-1/2 lg:basis-auto rounded-full px-4 py-2.5 xl:px-7 xl:py-4">
|
|
38
|
-
<i class="i-chat-1-line"></i> Empresas
|
|
39
|
-
</a>
|
|
40
|
-
</div>
|
|
41
|
-
<div class="hidden lg:block pt-7 xl:pt-10 text-sm">
|
|
42
|
-
<div class="flex items-center lg:justify-end">
|
|
43
|
-
<b class="text-lg">Instantâneo</b>
|
|
44
|
-
<i class="i-wpf:define-location text-2xl ml-2"></i>
|
|
45
|
-
</div>
|
|
46
|
-
<div class="mt-2 mb-4">Compartilhe suas informações com um toque</div>
|
|
47
|
-
<div class="flex items-center lg:justify-end">
|
|
48
|
-
<b class="text-lg">Fácil e compatível</b>
|
|
49
|
-
<i class="i-wpf:nfc-checkpoint text-2xl ml-2"></i>
|
|
50
|
-
<i class="i-wpf:android text-2xl ml-1"></i>
|
|
51
|
-
<i class="i-wpf:iphone text-2xl ml-1"></i>
|
|
52
|
-
</div>
|
|
53
|
-
<div class="mt-2">
|
|
54
|
-
Seus prospects não precisam de app
|
|
55
|
-
<br>Funciona em Android e iPhone
|
|
56
|
-
</div>
|
|
57
|
-
</div>
|
|
58
|
-
<div class="lg:hidden pt-5 flex gap-2 justify-between items-center">
|
|
59
|
-
<div>Instantâneo, fácil e compatível</div>
|
|
60
|
-
<div class="text-2xl">
|
|
61
|
-
<i class="i-wpf:nfc-checkpoint"></i>
|
|
62
|
-
<i class="i-wpf:android"></i>
|
|
63
|
-
<i class="i-wpf:iphone"></i>
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
66
|
-
</div>
|
|
67
|
-
<div class="lg:col-span-4 mt-5 lg:mt-7 h-96 sm:h-auto">
|
|
68
|
-
<LottiePhoneNFC client:idle />
|
|
69
|
-
</div>
|
|
70
|
-
</div>
|
|
71
|
-
</article>
|
|
72
|
-
</section>
|
|
73
|
-
<section id="cases" class="bg-white pb-9">
|
|
74
|
-
<CasesGrid />
|
|
75
|
-
<div class="max-w-lg mx-auto mt-7">
|
|
76
|
-
<a href="/#avaliacoes" class="text-lg text-primary-600 hover:text-primary-800
|
|
77
|
-
font-brand lowercase flex gap-1 sm:gap-2 items-center justify-center">
|
|
78
|
-
<i class="i-arrow-down-s-line text-3xl animate-bounce -mb-1.5"></i>
|
|
79
|
-
<span class="underline underline-offset-4 decoration-primary">
|
|
80
|
-
O que profissionais e times dizem</span>
|
|
81
|
-
<div class="hidden sm:flex gap-0.5 text-xs text-yellow-400">
|
|
82
|
-
<i class="i-star-fill"></i>
|
|
83
|
-
<i class="i-star-fill"></i>
|
|
84
|
-
<i class="i-star-fill"></i>
|
|
85
|
-
<i class="i-star-fill"></i>
|
|
86
|
-
<i class="i-star-fill"></i>
|
|
87
|
-
</div>
|
|
88
|
-
</a>
|
|
89
|
-
</div>
|
|
90
|
-
</section>
|
|
91
|
-
<section class="bg-gradient-to-br from-white to-base-100 py-9">
|
|
92
|
-
<FeaturesSection />
|
|
93
|
-
</section>
|
|
94
|
-
<Sections id="produtos" />
|
|
95
|
-
</main>
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import { usePageSections } from '@@sf/layouts/use-page-main';
|
|
3
|
-
import BannersGrid from '~/components/BannersGrid.astro';
|
|
4
|
-
import ProductShelf from '~/components/ProductShelf.vue';
|
|
5
|
-
import Breadcrumbs from '~/components/Breadcrumbs.astro';
|
|
6
|
-
import DocDescription from '~/components/DocDescription.vue';
|
|
7
|
-
import ProductDetails from '~/components/ProductDetails.vue';
|
|
8
|
-
import ProductSpecifications from '~/components/ProductSpecifications.vue';
|
|
9
|
-
|
|
10
|
-
const { routeContext } = Astro.locals;
|
|
11
|
-
const { sections } = await usePageSections({
|
|
12
|
-
routeContext,
|
|
13
|
-
handleCustomSection: async (type, content) => {
|
|
14
|
-
if (type === 'c:foo') return { props: { ...content, foo: 'bar' } };
|
|
15
|
-
return { props: content };
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
const { isHomepage } = routeContext;
|
|
19
|
-
/* `apiContext` is surelly set here (from Wildcard.astro)
|
|
20
|
-
cause route resource is required to define sections from content. */
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
<article class="my-9 md:my-12">
|
|
24
|
-
{sections.map(async ({ type, props }) => {
|
|
25
|
-
switch (type) {
|
|
26
|
-
case 'product-shelf':
|
|
27
|
-
return isHomepage
|
|
28
|
-
? <ProductShelf {...props} client:idle />
|
|
29
|
-
: <ProductShelf {...props} client:visible />
|
|
30
|
-
case 'banners-grid':
|
|
31
|
-
return <BannersGrid {...props} />
|
|
32
|
-
case 'breadcrumbs':
|
|
33
|
-
return <Breadcrumbs />
|
|
34
|
-
case 'doc-description':
|
|
35
|
-
return <DocDescription />
|
|
36
|
-
case 'product-details':
|
|
37
|
-
const { hasDescription, hasSpecifications, ...detailsProps } = props;
|
|
38
|
-
return <>
|
|
39
|
-
<ProductDetails {...detailsProps} client:context>
|
|
40
|
-
<Fragment slot="description">
|
|
41
|
-
{hasDescription && <DocDescription />}
|
|
42
|
-
{hasSpecifications && <ProductSpecifications />}
|
|
43
|
-
</Fragment>
|
|
44
|
-
</ProductDetails>
|
|
45
|
-
</>
|
|
46
|
-
case 'c:foo':
|
|
47
|
-
return <div data-foo={props.foo}></div>
|
|
48
|
-
default:
|
|
49
|
-
return <div data-section={type}></div>
|
|
50
|
-
}
|
|
51
|
-
})}
|
|
52
|
-
</article>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import api from '@cloudcommerce/api';
|
|
3
|
-
import SharedData from '@@sf/components/SharedData.astro';
|
|
4
|
-
import Sections from '~/main/Sections.astro';
|
|
5
|
-
|
|
6
|
-
const { fetchingApiContext } = Astro.locals.routeContext;
|
|
7
|
-
const [
|
|
8
|
-
{ data: { result: grids } },
|
|
9
|
-
] = await Promise.all([
|
|
10
|
-
api.get('grids'),
|
|
11
|
-
fetchingApiContext,
|
|
12
|
-
]);
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
<main>
|
|
16
|
-
<SharedData field="grids" value={grids} />
|
|
17
|
-
<Sections />
|
|
18
|
-
</main>
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import api from '@cloudcommerce/api';
|
|
3
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
4
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
5
|
-
import Base from '~/layouts/Base.astro';
|
|
6
|
-
import PageHeader from '~/layouts/PageHeader.astro';
|
|
7
|
-
import PageFooter from '~/layouts/PageFooter.astro';
|
|
8
|
-
import WildcardMain from '~/main/Wildcard.astro';
|
|
9
|
-
|
|
10
|
-
if (String(Astro.params.slug).endsWith('.css.map')) {
|
|
11
|
-
return new Response(null, { status: 404 });
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
let routeContext: RouteContext | undefined;
|
|
15
|
-
let loadError: any;
|
|
16
|
-
try {
|
|
17
|
-
routeContext = await loadRouteContext(Astro);
|
|
18
|
-
} catch (err: any) {
|
|
19
|
-
if (err.astroResponse) {
|
|
20
|
-
return err.astroResponse;
|
|
21
|
-
}
|
|
22
|
-
loadError = err;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export async function getStaticPaths() {
|
|
26
|
-
return (await api.get('products?sort=-sales&limit=4&fields=slug'))
|
|
27
|
-
.data.result.map(({ slug }) => ({ params: { slug } }));
|
|
28
|
-
}
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
<!DOCTYPE html>
|
|
32
|
-
<html lang={routeContext?.lang.replace('_', '-')}>
|
|
33
|
-
{routeContext &&
|
|
34
|
-
<Base>
|
|
35
|
-
<BaseHead slot="base-head" />
|
|
36
|
-
<PageHeader />
|
|
37
|
-
<WildcardMain />
|
|
38
|
-
<PageFooter />
|
|
39
|
-
</Base>
|
|
40
|
-
}
|
|
41
|
-
{loadError && <Fragment set:html={loadError.responseHTML} />}
|
|
42
|
-
</html>
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
3
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
4
|
-
import Base from '~/layouts/Base.astro';
|
|
5
|
-
import AccountPage from '~/components/AccountPage.vue';
|
|
6
|
-
|
|
7
|
-
let routeContext: RouteContext;
|
|
8
|
-
try {
|
|
9
|
-
routeContext = await loadRouteContext(Astro);
|
|
10
|
-
} catch (err: any) {
|
|
11
|
-
return err.astroResponse;
|
|
12
|
-
}
|
|
13
|
-
const { settings } = routeContext;
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
<!DOCTYPE html>
|
|
17
|
-
<html lang={routeContext.lang.replace('_', '-')}>
|
|
18
|
-
<Base>
|
|
19
|
-
<BaseHead slot="base-head" />
|
|
20
|
-
<main>
|
|
21
|
-
<AccountPage client:only>
|
|
22
|
-
<img
|
|
23
|
-
slot="logo"
|
|
24
|
-
src={settings.logo}
|
|
25
|
-
alt={settings.name}
|
|
26
|
-
width="150"
|
|
27
|
-
height="24.5"
|
|
28
|
-
fetchpriority="high"
|
|
29
|
-
loading="eager"
|
|
30
|
-
/>
|
|
31
|
-
</AccountPage>
|
|
32
|
-
</main>
|
|
33
|
-
</Base>
|
|
34
|
-
</html>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
3
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
4
|
-
import Base from '~/layouts/Base.astro';
|
|
5
|
-
import CheckoutPage from '~/components/CheckoutPage.vue';
|
|
6
|
-
|
|
7
|
-
let routeContext: RouteContext;
|
|
8
|
-
try {
|
|
9
|
-
routeContext = await loadRouteContext(Astro);
|
|
10
|
-
} catch (err: any) {
|
|
11
|
-
return err.astroResponse;
|
|
12
|
-
}
|
|
13
|
-
const layoutContent = await routeContext.getContent('layout');
|
|
14
|
-
const { footer: { stamps } } = layoutContent;
|
|
15
|
-
---
|
|
16
|
-
|
|
17
|
-
<!DOCTYPE html>
|
|
18
|
-
<html lang={routeContext.lang.replace('_', '-')}>
|
|
19
|
-
<Base>
|
|
20
|
-
<Fragment slot="base-head">
|
|
21
|
-
<BaseHead />
|
|
22
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@ecomplus/storefront-twbs@7/dist/cdn/storefront-twbs.min.css">
|
|
23
|
-
<style is:inline>
|
|
24
|
-
body {
|
|
25
|
-
--primary: var(--c-primary);
|
|
26
|
-
--primary-yiq: var(--c-on-primary);
|
|
27
|
-
--primary-rgb: var(--rgb-primary);
|
|
28
|
-
--primary-darken: var(--c-primary);
|
|
29
|
-
--primary-darken-yiq: var(--c-on-primary);
|
|
30
|
-
--primary-darken-rgb: var(--rgb-primary);
|
|
31
|
-
--primary-dark: var(--c-primary-bold);
|
|
32
|
-
--primary-dark-yiq: var(--c-on-primary-bold);
|
|
33
|
-
--primary-dark-rgb: var(--rgb-primary-bold);
|
|
34
|
-
--primary-darker: var(--c-primary-bold);
|
|
35
|
-
--primary-darker-yiq: var(--c-on-primary-bold);
|
|
36
|
-
--primary-darker-rgb: var(--rgb-primary-bold);
|
|
37
|
-
--primary-darkest: rgb(var(--rgb-primary-900));
|
|
38
|
-
--primary-darkest-yiq: var(--c-on-dark);
|
|
39
|
-
--primary-darkest-rgb: var(--rgb-primary-900);
|
|
40
|
-
--primary-black: rgb(var(--rgb-primary-950));
|
|
41
|
-
--primary-lighten: var(--c-primary);
|
|
42
|
-
--primary-lighten-yiq: var(--c-on-primary);
|
|
43
|
-
--primary-lighten-rgb: var(--rgb-primary);
|
|
44
|
-
--primary-light: var(--c-primary-subtle);
|
|
45
|
-
--primary-light-yiq: var(--c-on-primary-subtle);
|
|
46
|
-
--primary-light-rgb: var(--rgb-primary-subtle);
|
|
47
|
-
--primary-lighter: var(--c-primary-subtle);
|
|
48
|
-
--primary-lighter-yiq: var(--c-on-primary-subtle);
|
|
49
|
-
--primary-lighter-rgb: var(--rgb-primary-subtle);
|
|
50
|
-
--primary-lightest: rgb(var(--rgb-primary-200));
|
|
51
|
-
--primary-lightest-yiq: var(--c-on-light);
|
|
52
|
-
--primary-lightest-rgb: var(--rgb-primary-200);
|
|
53
|
-
}
|
|
54
|
-
.lead {
|
|
55
|
-
margin-bottom: 1.25rem;
|
|
56
|
-
}
|
|
57
|
-
</style>
|
|
58
|
-
</Fragment>
|
|
59
|
-
<CheckoutPage footerStamps={stamps} />
|
|
60
|
-
<script src="@@sf/scripts/vbeta-app"></script>
|
|
61
|
-
</Base>
|
|
62
|
-
</html>
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
3
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
4
|
-
import Base from '~/layouts/Base.astro';
|
|
5
|
-
import PageHeader from '~/layouts/PageHeader.astro';
|
|
6
|
-
import PageFooter from '~/layouts/PageFooter.astro';
|
|
7
|
-
import MonocardCustomizer from '~/components/MonocardCustomizer.vue';
|
|
8
|
-
import DemoVideo from '~/components/DemoVideo.vue';
|
|
9
|
-
import cardCSS from '~/assets/card.css?raw';
|
|
10
|
-
|
|
11
|
-
let routeContext: RouteContext | undefined;
|
|
12
|
-
let loadError: any;
|
|
13
|
-
try {
|
|
14
|
-
routeContext = await loadRouteContext(Astro);
|
|
15
|
-
} catch (err: any) {
|
|
16
|
-
if (err.astroResponse) {
|
|
17
|
-
return err.astroResponse;
|
|
18
|
-
}
|
|
19
|
-
loadError = err;
|
|
20
|
-
}
|
|
21
|
-
const monocard = await (await fetch('https://ioapi.ecvol.com/51301/v1/products/634830dc73321213f8aa199f.json')).json();
|
|
22
|
-
const monocardWithLogo = await (await fetch('https://ioapi.ecvol.com/51301/v1/products/62eab3eaeb85911216a3c430.json')).json();
|
|
23
|
-
const inlineClientJS = `
|
|
24
|
-
window.monocard = ${JSON.stringify(monocard)};
|
|
25
|
-
window.monocardWithLogo = ${JSON.stringify(monocardWithLogo)};`;
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
<!DOCTYPE html>
|
|
29
|
-
<html lang={routeContext?.lang.replace('_', '-')}>
|
|
30
|
-
{routeContext &&
|
|
31
|
-
<Base>
|
|
32
|
-
<Fragment slot="base-head">
|
|
33
|
-
<BaseHead />
|
|
34
|
-
<style is:inline set:html={cardCSS}></style>
|
|
35
|
-
</Fragment>
|
|
36
|
-
<PageHeader />
|
|
37
|
-
<script is:inline set:html={inlineClientJS} />
|
|
38
|
-
<MonocardCustomizer client:load {monocard} />
|
|
39
|
-
<div class="max-w-3xl mx-auto mt-14">
|
|
40
|
-
<div class="my-10 text-center">
|
|
41
|
-
<a id="como-funciona"></a>
|
|
42
|
-
<DemoVideo width="900" />
|
|
43
|
-
<a href="#comprar" role="button" class="text-xl mt-10">
|
|
44
|
-
Crie seu Monocard
|
|
45
|
-
</a>
|
|
46
|
-
</div>
|
|
47
|
-
</div>
|
|
48
|
-
<PageFooter />
|
|
49
|
-
</Base>
|
|
50
|
-
}
|
|
51
|
-
{loadError && <Fragment set:html={loadError.responseHTML} />}
|
|
52
|
-
</html>
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
3
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
4
|
-
import Base from '~/layouts/Base.astro';
|
|
5
|
-
import PageHeader from '~/layouts/PageHeader.astro';
|
|
6
|
-
import PageFooter from '~/layouts/PageFooter.astro';
|
|
7
|
-
import HomeMain from '~/main/Home.astro';
|
|
8
|
-
|
|
9
|
-
let routeContext: RouteContext | undefined;
|
|
10
|
-
let loadError: any;
|
|
11
|
-
try {
|
|
12
|
-
routeContext = await loadRouteContext(Astro);
|
|
13
|
-
} catch (err: any) {
|
|
14
|
-
if (err.astroResponse) {
|
|
15
|
-
return err.astroResponse;
|
|
16
|
-
}
|
|
17
|
-
loadError = err;
|
|
18
|
-
}
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
<!DOCTYPE html>
|
|
22
|
-
<html lang={routeContext?.lang.replace('_', '-')}>
|
|
23
|
-
{routeContext &&
|
|
24
|
-
<Base>
|
|
25
|
-
<BaseHead slot="base-head" />
|
|
26
|
-
<PageHeader />
|
|
27
|
-
<HomeMain />
|
|
28
|
-
<PageFooter />
|
|
29
|
-
</Base>
|
|
30
|
-
}
|
|
31
|
-
{loadError && <Fragment set:html={loadError.responseHTML} />}
|
|
32
|
-
</html>
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import loadRouteContext, { RouteContext } from '@@sf/ssr-context';
|
|
3
|
-
import BaseHead from '@@sf/layouts/BaseHead.astro';
|
|
4
|
-
import Base from '~/layouts/Base.astro';
|
|
5
|
-
import PageHeader from '~/layouts/PageHeader.astro';
|
|
6
|
-
import FallbackMain from '~/main/Fallback.astro';
|
|
7
|
-
|
|
8
|
-
let routeContext: RouteContext;
|
|
9
|
-
try {
|
|
10
|
-
routeContext = await loadRouteContext(Astro);
|
|
11
|
-
} catch (err: any) {
|
|
12
|
-
return err.astroResponse;
|
|
13
|
-
}
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
<!DOCTYPE html>
|
|
17
|
-
<html lang={routeContext?.lang.replace('_', '-')}>
|
|
18
|
-
<Base>
|
|
19
|
-
<BaseHead slot="base-head" />
|
|
20
|
-
<PageHeader />
|
|
21
|
-
<FallbackMain />
|
|
22
|
-
</Base>
|
|
23
|
-
</html>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<script is:inline>
|
|
2
|
-
window.$firebaseConfig = {
|
|
3
|
-
apiKey: "AIzaSyARN-7-wRzEtgEa1j7fpV4x2bLaqcs9Kco",
|
|
4
|
-
authDomain: "ecom2monocard.firebaseapp.com",
|
|
5
|
-
projectId: "ecom2monocard",
|
|
6
|
-
storageBucket: "ecom2monocard.appspot.com",
|
|
7
|
-
messagingSenderId: "328381577936",
|
|
8
|
-
appId: "1:328381577936:web:bd04a59a1646f988923cd5"
|
|
9
|
-
};
|
|
10
|
-
</script>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
process.env.STOREFRONT_BASE_DIR = __dirname;
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
4
|
-
const { genTailwindConfig } = require('@cloudcommerce/storefront/config/storefront.tailwind.cjs');
|
|
5
|
-
|
|
6
|
-
const themeOptions = {
|
|
7
|
-
baseColor: 'gray',
|
|
8
|
-
generalIconSets: ['ri'],
|
|
9
|
-
iconAliases: {
|
|
10
|
-
close: 'close-fill',
|
|
11
|
-
'chevron-right': 'arrow-right-s-line',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
module.exports = {
|
|
16
|
-
...genTailwindConfig(themeOptions),
|
|
17
|
-
themeOptions,
|
|
18
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "@cloudcommerce/storefront/tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"baseUrl": ".",
|
|
5
|
-
"paths": {
|
|
6
|
-
"@@i18n": ["./node_modules/@cloudcommerce/i18n/src/pt_br.ts"],
|
|
7
|
-
"@@sf/*": ["./node_modules/@cloudcommerce/storefront/src/lib/*"],
|
|
8
|
-
"~/*": ["./src/*"],
|
|
9
|
-
"content/*": ["./content/*"],
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import '@cloudcommerce/firebase/lib/init';
|
|
2
|
-
import config from '@cloudcommerce/firebase/config';
|
|
3
|
-
import mergeConfig from './config.json' assert { type: 'json' };
|
|
4
|
-
|
|
5
|
-
config.set({
|
|
6
|
-
...mergeConfig,
|
|
7
|
-
hello: 'from store',
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
export * from '@cloudcommerce/modules/firebase';
|
|
11
|
-
|
|
12
|
-
export * from '@cloudcommerce/events/firebase';
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "monocard-with-apps",
|
|
3
|
-
"private": true,
|
|
4
|
-
"type": "module",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"build": "echo '>> Run build from repository root'",
|
|
7
|
-
"serve": "firebase emulators:start --only functions",
|
|
8
|
-
"shell": "firebase functions:shell",
|
|
9
|
-
"start": "npm run shell",
|
|
10
|
-
"deploy": "firebase deploy --only functions",
|
|
11
|
-
"logs": "firebase functions:log"
|
|
12
|
-
},
|
|
13
|
-
"engines": {
|
|
14
|
-
"node": "18"
|
|
15
|
-
},
|
|
16
|
-
"main": "index.js",
|
|
17
|
-
"dependencies": {
|
|
18
|
-
"@cloudcommerce/events": "^0.33.4",
|
|
19
|
-
"@cloudcommerce/firebase": "^0.33.4",
|
|
20
|
-
"@cloudcommerce/modules": "^0.33.4"
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@ecomplus-stores/monocard",
|
|
3
|
-
"private": true,
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "E-Com Plus Cloud Commerce starter store",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"dev": "cloudcommerce",
|
|
8
|
-
"logs": "cloudcommerce logs",
|
|
9
|
-
"serve": "cloudcommerce serve",
|
|
10
|
-
"shell": "cloudcommerce shell",
|
|
11
|
-
"start": "cloudcommerce start",
|
|
12
|
-
"build": "cloudcommerce build",
|
|
13
|
-
"predeploy": "cloudcommerce predeploy",
|
|
14
|
-
"deploy": "cloudcommerce deploy",
|
|
15
|
-
"login": "cloudcommerce login",
|
|
16
|
-
"setup": "bash scripts/install.sh && cloudcommerce setup",
|
|
17
|
-
"setup:quiet": "cloudcommerce setup --no-deploy --no-commit"
|
|
18
|
-
},
|
|
19
|
-
"main": "functions/index.js",
|
|
20
|
-
"author": "E-Com Club Softwares para E-commerce <ti@e-com.club>",
|
|
21
|
-
"license": "Apache 2.0 with Commons Clause",
|
|
22
|
-
"bugs": {
|
|
23
|
-
"url": "https://github.com/ecomplus/cloud-commerce/issues"
|
|
24
|
-
},
|
|
25
|
-
"dependencies": {
|
|
26
|
-
"@cloudcommerce/cli": "^0.33.4"
|
|
27
|
-
},
|
|
28
|
-
"devDependencies": {
|
|
29
|
-
"@cloudcommerce/eslint": "^0.33.4"
|
|
30
|
-
}
|
|
31
|
-
}
|