cloudcommerce 0.26.6 → 0.27.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.
- package/.github/workflows/test-apps.yml +2 -2
- package/.gitmodules +0 -3
- package/.vscode/settings.json +3 -1
- package/CHANGELOG.md +50 -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/ssr/src/components/ShopHeader.vue +4 -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/barra-doce/scripts/install.sh +12 -2
- package/ecomplus-stores/monocard/.firebaserc +1 -1
- package/ecomplus-stores/monocard/.github/build-and-deploy +1 -0
- package/ecomplus-stores/monocard/.github/workflows/build-and-deploy.yml +1 -0
- package/ecomplus-stores/monocard/README.md +11 -82
- package/ecomplus-stores/{iluminim → monocard}/SETUP.md +12 -0
- package/ecomplus-stores/{iluminim → monocard}/SETUP.pt-BR.md +12 -0
- package/ecomplus-stores/monocard/functions/config.json +1 -1
- package/ecomplus-stores/monocard/functions/{core → many}/package.json +4 -2
- package/ecomplus-stores/monocard/functions/ssr/.eslintrc.cjs +1 -1
- package/ecomplus-stores/monocard/functions/ssr/content/layout.json +25 -10
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/pages/home.json +12 -19
- package/ecomplus-stores/monocard/functions/ssr/content/pages/products.json +19 -0
- package/ecomplus-stores/monocard/functions/ssr/content/settings.json +22 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +8 -9
- package/ecomplus-stores/monocard/functions/ssr/src/assets/card.css +99 -0
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/assets/style.css +16 -7
- package/ecomplus-stores/monocard/functions/ssr/src/components/AccountMenu.vue +5 -14
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/Banner.vue +6 -4
- package/ecomplus-stores/monocard/functions/ssr/src/components/Breadcrumbs.astro +44 -0
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/CartSidebar.vue +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/DemoVideo.vue +8 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/DocDescription.astro +30 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.vue +2 -2
- package/ecomplus-stores/monocard/functions/ssr/src/components/LottiePhoneNFC.vue +12 -9
- package/ecomplus-stores/monocard/functions/ssr/src/components/MonocardCustomizer.vue +8 -105
- package/ecomplus-stores/monocard/functions/ssr/src/components/Prices.vue +10 -27
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ProductCard.vue +1 -1
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ShopFooter.vue +9 -35
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeader.vue +85 -32
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopHeaderMenu.vue +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenav.vue +3 -3
- package/ecomplus-stores/monocard/functions/ssr/src/components/ShopSidenavCategory.vue +2 -2
- package/ecomplus-stores/monocard/functions/ssr/src/env.d.ts +9 -1
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Base.astro +9 -44
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/layouts/PageFooter.astro +3 -19
- package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/layouts/PageHeader.astro +7 -14
- package/ecomplus-stores/monocard/functions/ssr/src/main/Fallback.astro +0 -5
- package/ecomplus-stores/monocard/functions/ssr/src/main/Home.astro +6 -12
- package/ecomplus-stores/monocard/functions/ssr/src/main/Sections.astro +38 -0
- package/ecomplus-stores/monocard/functions/ssr/src/main/Wildcard.astro +4 -18
- package/ecomplus-stores/monocard/functions/ssr/src/pages/[...slug].astro +15 -9
- package/ecomplus-stores/monocard/functions/ssr/src/pages/comprar/index.astro +19 -9
- package/ecomplus-stores/monocard/functions/ssr/src/pages/index.astro +16 -10
- package/ecomplus-stores/monocard/functions/ssr/src/scripts/InlineScripts.astro +6 -6
- package/ecomplus-stores/monocard/functions/ssr/tailwind.config.cjs +1 -11
- package/ecomplus-stores/monocard/functions/{events → with-apps}/package.json +4 -3
- package/ecomplus-stores/monocard/package.json +4 -1
- package/ecomplus-stores/monocard/scripts/install.sh +12 -2
- package/ecomplus-stores/tia-sonia/scripts/install.sh +12 -2
- package/package.json +7 -7
- package/packages/api/package.json +1 -1
- package/packages/apps/affilate-program/package.json +2 -2
- package/packages/apps/correios/package.json +3 -4
- package/packages/apps/custom-payment/package.json +1 -1
- package/packages/apps/custom-shipping/package.json +1 -1
- package/packages/apps/datafrete/package.json +3 -3
- package/packages/apps/discounts/package.json +1 -1
- package/packages/apps/emails/package.json +2 -2
- package/packages/apps/fb-conversions/package.json +3 -3
- package/packages/apps/flash-courier/package.json +2 -2
- package/packages/apps/frenet/package.json +3 -3
- package/packages/apps/galaxpay/package.json +3 -3
- package/packages/apps/google-analytics/package.json +3 -3
- package/packages/apps/jadlog/package.json +2 -2
- package/packages/apps/loyalty-points/package.json +1 -1
- package/packages/apps/melhor-envio/package.json +3 -3
- package/packages/apps/mercadopago/package.json +3 -3
- package/packages/apps/pagarme/package.json +4 -4
- package/packages/apps/paghiper/package.json +3 -3
- package/packages/apps/pix/package.json +3 -3
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js +22 -0
- package/packages/apps/tiny-erp/lib/integration/export-order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js +2 -2
- package/packages/apps/tiny-erp/lib/integration/helpers/format-tiny-date.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js +7 -1
- package/packages/apps/tiny-erp/lib/integration/import-order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js +14 -5
- package/packages/apps/tiny-erp/lib/integration/import-product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js +9 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js +8 -6
- package/packages/apps/tiny-erp/lib/integration/parsers/order-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js +118 -38
- package/packages/apps/tiny-erp/lib/integration/parsers/product-from-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js +8 -0
- package/packages/apps/tiny-erp/lib/integration/parsers/product-to-tiny.js.map +1 -1
- package/packages/apps/tiny-erp/package.json +3 -3
- package/packages/apps/tiny-erp/src/integration/export-order-to-tiny.ts +24 -0
- package/packages/apps/tiny-erp/src/integration/helpers/format-tiny-date.ts +2 -2
- package/packages/apps/tiny-erp/src/integration/import-order-from-tiny.ts +8 -1
- package/packages/apps/tiny-erp/src/integration/import-product-from-tiny.ts +17 -5
- package/packages/apps/tiny-erp/src/integration/parsers/order-from-tiny.ts +13 -1
- package/packages/apps/tiny-erp/src/integration/parsers/order-to-tiny.ts +11 -6
- package/packages/apps/tiny-erp/src/integration/parsers/product-from-tiny.ts +144 -41
- package/packages/apps/tiny-erp/src/integration/parsers/product-to-tiny.ts +10 -0
- package/packages/apps/webhooks/package.json +3 -3
- package/packages/cli/package.json +2 -2
- package/packages/config/package.json +1 -1
- package/packages/emails/package.json +4 -4
- package/packages/eslint/base.eslintrc.cjs +3 -0
- package/packages/eslint/package.json +5 -4
- package/packages/eslint/storefront.eslintrc.cjs +8 -1
- package/packages/events/package.json +2 -2
- package/packages/feeds/package.json +1 -1
- package/packages/firebase/package.json +3 -3
- package/packages/i18n/package.json +1 -1
- package/packages/modules/package.json +3 -3
- package/packages/passport/package.json +2 -2
- package/packages/ssr/lib/firebase/serve-storefront.js +23 -8
- package/packages/ssr/lib/firebase/serve-storefront.js.map +1 -1
- package/packages/ssr/package.json +3 -3
- package/packages/ssr/src/firebase/serve-storefront.ts +24 -8
- package/packages/storefront/.auto-imports.d.ts +65 -0
- package/packages/storefront/astro.config.mjs +24 -1
- package/packages/storefront/client.d.ts +1 -0
- package/packages/storefront/config/astro/context-directive.mjs +21 -0
- package/packages/storefront/config/astro/index.d.ts +8 -0
- package/packages/storefront/config/storefront.tailwind.cjs +0 -1
- package/packages/storefront/dist/client/_astro/{Carousel.9ad2e1dc.js → Carousel.4bf71bce.js} +1 -1
- package/packages/storefront/dist/client/_astro/{CartSidebar.a6c6a885.js → CartSidebar.05b12b39.js} +1 -1
- package/packages/storefront/dist/client/_astro/{HeroSlider.ee1e6200.js → HeroSlider.fe108a14.js} +1 -1
- package/packages/storefront/dist/client/_astro/{PitchBar.6111676e.js → PitchBar.2c821b77.js} +1 -1
- package/packages/storefront/dist/client/_astro/{Prices.04ff8fce.js → Prices.78eb0a61.js} +1 -1
- package/packages/storefront/dist/client/_astro/{ProductShelf.085721d6.js → ProductShelf.46d8a51c.js} +1 -1
- package/packages/storefront/dist/client/_astro/ShopHeader.3694a82b.js +4 -0
- package/packages/storefront/dist/client/_astro/_...slug_.a4a7a874.css +1 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_CDmhA.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_Z27EX9f.png +0 -0
- package/packages/storefront/dist/client/_astro/ecom-icon_Zo1CLq.png +0 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.8c541cce.js → firebase-app.3f59f3c7.js} +3 -3
- package/packages/storefront/dist/client/_astro/headphone_1Ekzdh.avif +0 -0
- package/packages/storefront/dist/client/_astro/headphone_Z1GbHcH.webp +0 -0
- package/packages/storefront/dist/client/_astro/{hoisted.85fdcf03.js → hoisted.648beb9d.js} +1 -1
- package/packages/storefront/dist/client/_astro/index.fadf28bd.js +1 -0
- package/packages/storefront/dist/client/_astro/logo_144owC.webp +0 -0
- package/packages/storefront/dist/client/_astro/logo_1ug3XF.png +0 -0
- package/packages/storefront/dist/client/_astro/logo_Z1EIN1I.avif +0 -0
- package/packages/storefront/dist/client/_astro/{modules-info.e5d77bf3.js → modules-info.df822732.js} +1 -1
- package/packages/storefront/dist/client/_astro/passion_1LvKlp.webp +0 -0
- package/packages/storefront/dist/client/_astro/passion_2PSWs.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1A8K2Q.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1ND0he.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_1mIaKd.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_LhopI.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z1NFjiR.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z2a06Gx.png +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_Z2nulUU.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_ZH7hsH.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect8589_ZorpIx.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1CcLjM.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1IVKep.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_1zkdb4.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_299fN7.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_CnIof.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_Z1OtQaE.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect859_flB3g.png +0 -0
- package/packages/storefront/dist/client/_astro/rect859_rsWaw.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect859_sLbkT.webp +0 -0
- package/packages/storefront/dist/client/_astro/rect89_1yf5jS.avif +0 -0
- package/packages/storefront/dist/client/_astro/rect89_GQBli.webp +0 -0
- package/packages/storefront/dist/client/~fallback.html +67 -0
- package/packages/storefront/dist/client/~index.html +113 -0
- package/packages/storefront/dist/server/chunks/{CartSidebar.41b20543.mjs → CartSidebar.4179ad81.mjs} +4 -12
- package/packages/storefront/dist/server/chunks/{SearchModal.5f5e6a15.mjs → SearchModal.146ce2f7.mjs} +4 -11
- package/packages/storefront/dist/server/chunks/_...05c626ea.mjs +28 -0
- package/packages/storefront/dist/server/chunks/{account@_@astro.204fba92.mjs → account@_@astro.5eaddaf8.mjs} +2 -9
- package/packages/storefront/dist/server/chunks/{index@_@astro.19e0f502.mjs → index@_@astro.25a343cc.mjs} +3 -10
- package/packages/storefront/dist/server/chunks/{index@_@astro.b37a6ac9.mjs → index@_@astro.2d2f2e33.mjs} +3 -10
- package/packages/storefront/dist/server/chunks/pages/{_...slug_.astro.36e8882b.mjs → _...slug_.astro.0808946e.mjs} +1836 -450
- package/packages/storefront/dist/server/chunks/pages/index.astro.d4145872.mjs +186 -0
- package/packages/storefront/dist/server/chunks/pages/{~fallback.astro.ba4c2475.mjs → ~fallback.astro.84d4765b.mjs} +6 -23
- package/packages/storefront/dist/server/chunks/{~fallback@_@astro.6bb4c4b4.mjs → ~fallback@_@astro.86d710c3.mjs} +3 -10
- package/packages/storefront/dist/server/entry.mjs +7 -14
- package/packages/storefront/dist/server/images.dist.csv +30 -0
- package/packages/storefront/dist/server/images.src.csv +11 -0
- package/packages/storefront/dist/server/renderers.mjs +2 -9
- package/packages/storefront/dist/server/static-builds.csv +51 -0
- package/packages/storefront/package.json +6 -5
- package/packages/storefront/scripts/build-prod.sh +3 -2
- package/packages/storefront/server.d.ts +1 -0
- package/packages/storefront/src/lib/$storefront.d.ts +8 -8
- package/packages/storefront/src/lib/assets/base.css +13 -0
- package/packages/storefront/src/lib/assets/reset.css +11 -2
- package/packages/storefront/src/lib/components/Carousel.vue +93 -72
- package/packages/storefront/src/lib/components/CarouselControl.vue +13 -7
- package/packages/storefront/src/lib/components/ContentClearfix.vue +17 -0
- package/packages/storefront/src/lib/components/Drawer.vue +3 -3
- package/packages/storefront/src/lib/components/PaymentMethodFlag.vue +1 -1
- package/packages/storefront/src/lib/components/QuantitySelector.vue +4 -4
- package/packages/storefront/src/lib/components/QuantitySelectorControl.vue +2 -2
- package/packages/storefront/src/lib/components/ViewTransitions.astro +409 -0
- package/packages/storefront/src/lib/components/globals/AImg.vue +2 -1
- package/packages/storefront/src/lib/layouts/BaseBody.astro +1 -1
- package/packages/storefront/src/lib/layouts/BaseHead.astro +28 -5
- package/packages/storefront/src/lib/layouts/use-page-header.ts +2 -2
- package/packages/test-base/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/pnpm-workspace.yaml +2 -0
- package/ecomplus-stores/iluminim/.devcontainer/devcontainer.json +0 -30
- package/ecomplus-stores/iluminim/.editorconfig +0 -13
- package/ecomplus-stores/iluminim/.eslintrc.cjs +0 -3
- package/ecomplus-stores/iluminim/.firebaserc +0 -5
- package/ecomplus-stores/iluminim/.github/renovate.json +0 -5
- package/ecomplus-stores/iluminim/.github/workflows/build-and-deploy.yml +0 -36
- package/ecomplus-stores/iluminim/.github/workflows/calibreapp-image-actions.yml +0 -23
- package/ecomplus-stores/iluminim/.gitpod.yml +0 -12
- package/ecomplus-stores/iluminim/.idx/dev.nix +0 -24
- package/ecomplus-stores/iluminim/.nvmrc +0 -1
- package/ecomplus-stores/iluminim/.vscode/extensions.json +0 -8
- package/ecomplus-stores/iluminim/.vscode/launch.json +0 -11
- package/ecomplus-stores/iluminim/.vscode/settings.json +0 -10
- package/ecomplus-stores/iluminim/README.md +0 -31
- package/ecomplus-stores/iluminim/functions/config.json +0 -3
- package/ecomplus-stores/iluminim/functions/example.env +0 -10
- package/ecomplus-stores/iluminim/functions/many/package.json +0 -22
- package/ecomplus-stores/iluminim/functions/ssr/.eslintrc.cjs +0 -6
- package/ecomplus-stores/iluminim/functions/ssr/astro.config.mjs +0 -4
- package/ecomplus-stores/iluminim/functions/ssr/content/layout.json +0 -57
- package/ecomplus-stores/iluminim/functions/ssr/content/settings.json +0 -65
- package/ecomplus-stores/iluminim/functions/ssr/index.js +0 -18
- package/ecomplus-stores/iluminim/functions/ssr/package.json +0 -31
- package/ecomplus-stores/iluminim/functions/ssr/public/admin/.gitkeep +0 -2
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms-preview.css +0 -274
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/cms.css +0 -114
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/cvv.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/img-placeholder.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/payments.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/assets/ssl-safe.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/icon.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/large-icon.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner-chamada-desktop-9x81zmd91q.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/banner2.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/chamada-mobile-q1c6om6jx4.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/headphone.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/logo.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/og-image.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/passion.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect8589.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect859.png +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/img/uploads/rect89.webp +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/public/robots.txt +0 -6
- package/ecomplus-stores/iluminim/functions/ssr/scripts/build.sh +0 -14
- package/ecomplus-stores/iluminim/functions/ssr/src/components/AccountMenu.vue +0 -95
- package/ecomplus-stores/iluminim/functions/ssr/src/components/Countdown.vue +0 -79
- package/ecomplus-stores/iluminim/functions/ssr/src/components/HeroSlider.vue +0 -52
- package/ecomplus-stores/iluminim/functions/ssr/src/components/PitchBar.vue +0 -56
- package/ecomplus-stores/iluminim/functions/ssr/src/components/Prices.vue +0 -95
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ProductsCountdown.vue +0 -20
- package/ecomplus-stores/iluminim/functions/ssr/src/components/SearchModal.vue +0 -6
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeader.vue +0 -158
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderMenu.vue +0 -58
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopHeaderSubmenu.vue +0 -88
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenav.vue +0 -61
- package/ecomplus-stores/iluminim/functions/ssr/src/components/ShopSidenavCategory.vue +0 -80
- package/ecomplus-stores/iluminim/functions/ssr/src/env.d.ts +0 -13
- package/ecomplus-stores/iluminim/functions/ssr/src/layouts/Base.astro +0 -16
- package/ecomplus-stores/iluminim/functions/ssr/src/main/Fallback.astro +0 -10
- package/ecomplus-stores/iluminim/functions/ssr/src/main/Home.astro +0 -49
- package/ecomplus-stores/iluminim/functions/ssr/src/main/Sections.astro +0 -42
- package/ecomplus-stores/iluminim/functions/ssr/src/main/Wildcard.astro +0 -18
- package/ecomplus-stores/iluminim/functions/ssr/src/pages/[...slug].astro +0 -40
- package/ecomplus-stores/iluminim/functions/ssr/src/pages/_vue.ts +0 -3
- package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/account.astro +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/src/pages/app/index.astro +0 -0
- package/ecomplus-stores/iluminim/functions/ssr/src/pages/index.astro +0 -37
- package/ecomplus-stores/iluminim/functions/ssr/src/scripts/InlineScripts.astro +0 -10
- package/ecomplus-stores/iluminim/functions/ssr/tailwind.config.cjs +0 -13
- package/ecomplus-stores/iluminim/functions/ssr/tsconfig.json +0 -12
- package/ecomplus-stores/iluminim/functions/ssr/uno.config.cjs +0 -5
- package/ecomplus-stores/iluminim/functions/with-apps/package.json +0 -22
- package/ecomplus-stores/iluminim/package.json +0 -31
- package/ecomplus-stores/iluminim/scripts/install.sh +0 -14
- package/ecomplus-stores/monocard/README.pt-BR.md +0 -102
- package/ecomplus-stores/monocard/functions/core/index.js +0 -9
- package/ecomplus-stores/monocard/functions/events/index.js +0 -9
- package/ecomplus-stores/monocard/functions/modules/index.js +0 -9
- package/ecomplus-stores/monocard/functions/modules/package.json +0 -21
- package/ecomplus-stores/monocard/functions/passport/index.js +0 -9
- package/ecomplus-stores/monocard/functions/passport/package.json +0 -21
- package/ecomplus-stores/monocard/functions/ssr/content/blog.json +0 -18
- package/ecomplus-stores/monocard/functions/ssr/content/brands.json +0 -24
- package/ecomplus-stores/monocard/functions/ssr/content/categories.json +0 -24
- package/ecomplus-stores/monocard/functions/ssr/content/collections.json +0 -24
- package/ecomplus-stores/monocard/functions/ssr/content/home.json +0 -45
- package/ecomplus-stores/monocard/functions/ssr/content/maintenance.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/contato.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/entrega.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/faq.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/pagamentos.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/privacidade.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/sobre-nos.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/termos.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/pages/trocas.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/posts/esta-loja-e-um-pwa.json +0 -9
- package/ecomplus-stores/monocard/functions/ssr/content/products.json +0 -32
- package/ecomplus-stores/monocard/functions/ssr/content/search.json +0 -8
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/analytics.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/compre-confie.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/ebit.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/fb-pixel.json +0 -12
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/gmc-ratings.json +0 -12
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/minicart.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/offers-notification.json +0 -11
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/opinioes-verificadas.json +0 -18
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/product-card.json +0 -10
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/product.json +0 -13
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/search-engine.json +0 -8
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/search.json +0 -6
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/tag-manager.json +0 -12
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/tawkto.json +0 -12
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/trustvox.json +0 -15
- package/ecomplus-stores/monocard/functions/ssr/content/widgets/user.json +0 -5
- package/ecomplus-stores/monocard/functions/ssr/public/admin/config.json +0 -1
- package/ecomplus-stores/monocard/functions/ssr/public/assets/cms-preview.css +0 -274
- package/ecomplus-stores/monocard/functions/ssr/public/assets/cms.css +0 -114
- package/ecomplus-stores/monocard/functions/ssr/public/assets/cvv.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/fonts/FavoritPro-Regular.woff2 +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/fonts/MyriadPro-Regular.woff2 +0 -0
- package/ecomplus-stores/monocard/functions/ssr/public/assets/ssl-safe.png +0 -0
- package/ecomplus-stores/monocard/functions/ssr/src/layouts/Pages.astro +0 -50
- package/ecomplus-stores/monocard/functions/ssr/src/pages/fallback.astro +0 -21
- package/packages/storefront/dist/client/_astro/ShopHeader.7e485e35.js +0 -4
- package/packages/storefront/dist/client/_astro/_...slug_.b693913e.css +0 -1
- package/packages/storefront/dist/client/_astro/index.ea57babe.js +0 -1
- package/packages/storefront/dist/server/chunks/_...4a2548d2.mjs +0 -35
- package/packages/storefront/dist/server/chunks/endpoint@_@js.11be892a.mjs +0 -35
- package/packages/storefront/dist/server/chunks/pages/endpoint.js.f7a896a1.mjs +0 -119
- package/packages/storefront/dist/server/chunks/pages/index.astro.3145bd93.mjs +0 -1649
- package/packages/storefront/src/lib/components/ContentClearfix.astro +0 -12
- /package/ecomplus-stores/{iluminim → monocard}/functions/many/index.js +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/blog/.gitkeep +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/contato.json +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/terms.json +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/content/extra-pages/trocas.json +0 -0
- /package/ecomplus-stores/{iluminim/functions/ssr/src/layouts/Checkout.astro → monocard/functions/ssr/public/admin/.gitkeep} +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/public/img/uploads/ecom-icon.png +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/BannersGrid.astro +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/CartItem.vue +0 -0
- /package/ecomplus-stores/monocard/functions/ssr/src/components/{FeatureTabs.astro → FeaturesSection.astro} +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/components/ProductShelf.vue +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/ssr/src/pages/~fallback.astro +0 -0
- /package/ecomplus-stores/{iluminim → monocard}/functions/with-apps/index.js +0 -0
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<header
|
|
3
|
-
ref="header"
|
|
4
|
-
class="relative top-0 z-50 transition-colors"
|
|
5
|
-
:class="[
|
|
6
|
-
isSticky && !isSidenavOpen ? 'bg-white/80' : 'bg-white',
|
|
7
|
-
isSticky ? 'backdrop-blur-md shadow py-2 md:py-3' : 'py-3 sm:py-4 md:py-5',
|
|
8
|
-
]"
|
|
9
|
-
>
|
|
10
|
-
<div class="w-screen lg:w-[calc(100vw-1rem)] xl:max-w-[82rem] 2xl:max-w-[85rem]
|
|
11
|
-
mx-auto px-1 sm:pl-2 sm:pr-2.5 lg:px-1
|
|
12
|
-
flex md:grid grid-flow-col grid-cols-3 lg:grid-cols-none lg:auto-cols-max
|
|
13
|
-
justify-between items-center">
|
|
14
|
-
<div class="basis-1/4 lg:hidden">
|
|
15
|
-
<button
|
|
16
|
-
class="px-2 my-1"
|
|
17
|
-
:aria-label="$t.i19toggleMenu"
|
|
18
|
-
@click="isSidenavOpen = !isSidenavOpen"
|
|
19
|
-
>
|
|
20
|
-
<i
|
|
21
|
-
class="text-base-500 text-3xl"
|
|
22
|
-
:class="isSidenavOpen ? 'i-close' : 'i-bars-3-bottom-left'"
|
|
23
|
-
></i>
|
|
24
|
-
</button>
|
|
25
|
-
</div>
|
|
26
|
-
<slot name="logo" />
|
|
27
|
-
<ShopHeaderMenu class="hidden lg:block" v-bind="{ inlineMenuTrees }" />
|
|
28
|
-
<div class="basis-1/4 px-2
|
|
29
|
-
flex justify-end items-center gap-3 lg:gap-4 text-base-800">
|
|
30
|
-
<button
|
|
31
|
-
:aria-label="$t.i19searchProducts"
|
|
32
|
-
@click="isSearchOpen = !isSearchOpen"
|
|
33
|
-
>
|
|
34
|
-
<i class="i-magnifying-glass w-7 h-7
|
|
35
|
-
hover:text-primary hover:scale-110 active:scale-125"></i>
|
|
36
|
-
</button>
|
|
37
|
-
<AccountMenu class="hidden sm:block">
|
|
38
|
-
<template #button="{ open }">
|
|
39
|
-
<i
|
|
40
|
-
class="i-user-circle w-7 h-7
|
|
41
|
-
hover:text-primary hover:scale-110 active:scale-125"
|
|
42
|
-
:class="open ? 'text-black scale-110' : null"
|
|
43
|
-
></i>
|
|
44
|
-
</template>
|
|
45
|
-
</AccountMenu>
|
|
46
|
-
<button
|
|
47
|
-
:aria-label="$t.i19openCart"
|
|
48
|
-
@click="isCartOpen = !isCartOpen"
|
|
49
|
-
class="relative group"
|
|
50
|
-
>
|
|
51
|
-
<i class="i-carbon:shopping-cart w-7 h-7 group-hover:text-primary
|
|
52
|
-
text-secondary-900 group-hover:scale-110 group-active:scale-125"></i>
|
|
53
|
-
<span
|
|
54
|
-
v-if="delayedTotalItems"
|
|
55
|
-
class="ui-badge-pill-sm absolute -top-1 -right-1.5"
|
|
56
|
-
>
|
|
57
|
-
{{ delayedTotalItems }}
|
|
58
|
-
</span>
|
|
59
|
-
</button>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
<Drawer
|
|
63
|
-
v-model="isSidenavOpen"
|
|
64
|
-
:has-close-button="false"
|
|
65
|
-
position="absolute"
|
|
66
|
-
:class="isSticky ? 'mt-2 md:mt-3' : 'mt-3 sm:mt-4 md:mt-5'"
|
|
67
|
-
:style="{ height: `calc(100vh - ${positionY}px + .5rem)` }"
|
|
68
|
-
>
|
|
69
|
-
<ShopSidenav class="bg-white pt-6" v-bind="{ categoryTrees }" />
|
|
70
|
-
</Drawer>
|
|
71
|
-
<Drawer
|
|
72
|
-
v-model="isSearchOpen"
|
|
73
|
-
:has-close-button="false"
|
|
74
|
-
placement="top"
|
|
75
|
-
>
|
|
76
|
-
<Suspense>
|
|
77
|
-
<SearchModal v-if="isSearchOpenOnce" />
|
|
78
|
-
<template #fallback>
|
|
79
|
-
<div class="container mx-auto">
|
|
80
|
-
<Skeleton class="p-6" is-large />
|
|
81
|
-
</div>
|
|
82
|
-
</template>
|
|
83
|
-
</Suspense>
|
|
84
|
-
</Drawer>
|
|
85
|
-
<Teleport v-if="isMounted" to="#teleported-overlap">
|
|
86
|
-
<Drawer
|
|
87
|
-
v-model="isCartOpen"
|
|
88
|
-
placement="end"
|
|
89
|
-
backdrop-target="#teleported-overlap"
|
|
90
|
-
>
|
|
91
|
-
<Suspense>
|
|
92
|
-
<CartSidebar v-if="isCartOpenOnce" @close="isCartOpen = false" />
|
|
93
|
-
<template #fallback>
|
|
94
|
-
<Skeleton class="pt-16 px-6" is-bold />
|
|
95
|
-
</template>
|
|
96
|
-
</Suspense>
|
|
97
|
-
</Drawer>
|
|
98
|
-
</Teleport>
|
|
99
|
-
</header>
|
|
100
|
-
</template>
|
|
101
|
-
|
|
102
|
-
<script setup lang="ts">
|
|
103
|
-
import {
|
|
104
|
-
ref,
|
|
105
|
-
watch,
|
|
106
|
-
onMounted,
|
|
107
|
-
defineAsyncComponent,
|
|
108
|
-
} from 'vue';
|
|
109
|
-
import { watchOnce } from '@vueuse/core';
|
|
110
|
-
import { totalItems } from '@@sf/state/shopping-cart';
|
|
111
|
-
import {
|
|
112
|
-
type Props as UseShopHeaderProps,
|
|
113
|
-
useShopHeader,
|
|
114
|
-
} from '@@sf/composables/use-shop-header';
|
|
115
|
-
import Drawer from '@@sf/components/Drawer.vue';
|
|
116
|
-
import ShopSidenav from '~/components/ShopSidenav.vue';
|
|
117
|
-
import ShopHeaderMenu from '~/components/ShopHeaderMenu.vue';
|
|
118
|
-
import AccountMenu from '~/components/AccountMenu.vue';
|
|
119
|
-
|
|
120
|
-
export interface Props extends Omit<UseShopHeaderProps, 'header'> {}
|
|
121
|
-
|
|
122
|
-
const SearchModal = defineAsyncComponent(() => import('~/components/SearchModal.vue'));
|
|
123
|
-
const CartSidebar = defineAsyncComponent(() => import('~/components/CartSidebar.vue'));
|
|
124
|
-
const props = defineProps<Props>();
|
|
125
|
-
const header = ref<HTMLElement | null>(null);
|
|
126
|
-
const {
|
|
127
|
-
isSticky,
|
|
128
|
-
positionY,
|
|
129
|
-
categoryTrees,
|
|
130
|
-
inlineMenuTrees,
|
|
131
|
-
} = useShopHeader({ ...props, header });
|
|
132
|
-
const isSidenavOpen = ref(false);
|
|
133
|
-
const isSearchOpen = ref(false);
|
|
134
|
-
const isSearchOpenOnce = ref(false);
|
|
135
|
-
watchOnce(isSearchOpen, () => {
|
|
136
|
-
isSearchOpenOnce.value = true;
|
|
137
|
-
});
|
|
138
|
-
const isCartOpen = ref(false);
|
|
139
|
-
const isCartOpenOnce = ref(false);
|
|
140
|
-
watchOnce(isCartOpen, () => {
|
|
141
|
-
isCartOpenOnce.value = true;
|
|
142
|
-
});
|
|
143
|
-
const isMounted = ref(false);
|
|
144
|
-
const delayedTotalItems = ref(0);
|
|
145
|
-
onMounted(() => {
|
|
146
|
-
isMounted.value = true;
|
|
147
|
-
watch(totalItems, (newTotalItems, prevTotalItems) => {
|
|
148
|
-
if (typeof prevTotalItems === 'number') {
|
|
149
|
-
if (prevTotalItems < newTotalItems) {
|
|
150
|
-
isCartOpen.value = true;
|
|
151
|
-
} else if (prevTotalItems && !newTotalItems) {
|
|
152
|
-
isCartOpen.value = false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
delayedTotalItems.value = newTotalItems;
|
|
156
|
-
}, { immediate: true });
|
|
157
|
-
});
|
|
158
|
-
</script>
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<nav>
|
|
3
|
-
<ul
|
|
4
|
-
class="flex gap-4 xl:gap-5 text-base-700"
|
|
5
|
-
:class="inlineMenuTrees.length < 7 ? 'text-base' : 'text-sm'"
|
|
6
|
-
>
|
|
7
|
-
<li v-for="(categoryTree, i) in inlineMenuTrees" :key="i">
|
|
8
|
-
<ShopHeaderSubmenu
|
|
9
|
-
v-if="categoryTree.subcategories.length"
|
|
10
|
-
:category-tree="categoryTree"
|
|
11
|
-
>
|
|
12
|
-
<template #button="{ open }">
|
|
13
|
-
<span class="hover:text-primary group">
|
|
14
|
-
<h3
|
|
15
|
-
class="group-hover:underline inline"
|
|
16
|
-
:class="[
|
|
17
|
-
inlineMenuTrees.length < 7 ? 'decoration-2' : null,
|
|
18
|
-
open ? 'underline' : null,
|
|
19
|
-
]"
|
|
20
|
-
>
|
|
21
|
-
{{ categoryTree.name }}
|
|
22
|
-
</h3>
|
|
23
|
-
<i
|
|
24
|
-
v-if="hasOneLevelSubcategories"
|
|
25
|
-
class="i-chevron-down ml-1 transition-transform
|
|
26
|
-
text-base-400 group-hover:text-primary-subtle"
|
|
27
|
-
:class="open ? 'rotate-180' : null"
|
|
28
|
-
></i>
|
|
29
|
-
</span>
|
|
30
|
-
</template>
|
|
31
|
-
</ShopHeaderSubmenu>
|
|
32
|
-
<a
|
|
33
|
-
v-else
|
|
34
|
-
:href="`/${categoryTree.slug}`"
|
|
35
|
-
class="hover:text-primary hover:underline"
|
|
36
|
-
:class="inlineMenuTrees.length < 7 ? 'decoration-2' : null"
|
|
37
|
-
>
|
|
38
|
-
<h3 class="inline">{{ categoryTree.name }}</h3>
|
|
39
|
-
</a>
|
|
40
|
-
</li>
|
|
41
|
-
</ul>
|
|
42
|
-
</nav>
|
|
43
|
-
</template>
|
|
44
|
-
|
|
45
|
-
<script setup lang="ts">
|
|
46
|
-
import type { CategoryTree } from '@@sf/composables/use-shop-header';
|
|
47
|
-
import { computed } from 'vue';
|
|
48
|
-
import ShopHeaderSubmenu from '~/components/ShopHeaderSubmenu.vue';
|
|
49
|
-
|
|
50
|
-
export interface Props {
|
|
51
|
-
inlineMenuTrees: CategoryTree[];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const props = defineProps<Props>();
|
|
55
|
-
const hasOneLevelSubcategories = computed(() => {
|
|
56
|
-
return !!props.inlineMenuTrees.find(({ subcategories }) => !subcategories.length);
|
|
57
|
-
});
|
|
58
|
-
</script>
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<Popover v-slot="{ open }">
|
|
3
|
-
<PopoverButton class="outline-none">
|
|
4
|
-
<slot name="button" v-bind="{ open }" />
|
|
5
|
-
</PopoverButton>
|
|
6
|
-
<div class="relative">
|
|
7
|
-
<Fade>
|
|
8
|
-
<PopoverPanel
|
|
9
|
-
class="absolute z-20 top-3 left-1/2 -translate-x-1/2 !transform
|
|
10
|
-
px-6 py-4 rounded backdrop-blur-md shadow bg-white/80
|
|
11
|
-
text-base text-base-700"
|
|
12
|
-
:class="countMenuCols === 1 ? 'w-60'
|
|
13
|
-
: countMenuCols === 2 ? `w-screen ${(categoryPicture ? 'max-w-lg' : 'max-w-sm')}`
|
|
14
|
-
: countMenuCols === 3 ? `w-screen ${(categoryPicture ? 'max-w-xl' : 'max-w-md')}`
|
|
15
|
-
: countMenuCols < 6 ? 'w-screen max-w-3xl' : 'w-screen max-w-5xl'"
|
|
16
|
-
>
|
|
17
|
-
<div class="flex gap-6 w-full">
|
|
18
|
-
<ul v-if="subcategoryLinks.length" class="flex-1">
|
|
19
|
-
<li
|
|
20
|
-
v-for="(subcategory, i) in subcategoryLinks"
|
|
21
|
-
:key="`link-${i}`"
|
|
22
|
-
:class="subcategoryLinks.length > 10 ? 'text-sm mb-1' : 'mb-2'"
|
|
23
|
-
>
|
|
24
|
-
<a :href="`/${subcategory.slug}`" class="hover:text-primary">
|
|
25
|
-
<h3>{{ subcategory.name }}</h3>
|
|
26
|
-
</a>
|
|
27
|
-
</li>
|
|
28
|
-
</ul>
|
|
29
|
-
<div
|
|
30
|
-
v-for="(subcategory, i) in subcategoryCols"
|
|
31
|
-
:key="i"
|
|
32
|
-
class="flex-1"
|
|
33
|
-
>
|
|
34
|
-
<a :href="`/${subcategory.slug}`" class="hover:text-primary">
|
|
35
|
-
<h3>{{ subcategory.name }}</h3>
|
|
36
|
-
</a>
|
|
37
|
-
<ul class="text-sm text-base-600 mt-1 mb-1.5">
|
|
38
|
-
<li
|
|
39
|
-
v-for="(nestedSubcategory, ii) in subcategory.subcategories"
|
|
40
|
-
:key="`${i}-${ii}`"
|
|
41
|
-
class="mb-0.5"
|
|
42
|
-
>
|
|
43
|
-
<a
|
|
44
|
-
:href="`/${nestedSubcategory.slug}`"
|
|
45
|
-
class="hover:text-primary hover:underline"
|
|
46
|
-
>
|
|
47
|
-
<h3>{{ nestedSubcategory.name }}</h3>
|
|
48
|
-
</a>
|
|
49
|
-
</li>
|
|
50
|
-
</ul>
|
|
51
|
-
</div>
|
|
52
|
-
<div
|
|
53
|
-
v-if="categoryPicture"
|
|
54
|
-
:class="countMenuCols === 2 ? 'basis-1/2'
|
|
55
|
-
: countMenuCols < 5 ? 'basis-2/5' : 'basis-1/3'"
|
|
56
|
-
>
|
|
57
|
-
<AImg :picture="categoryPicture" class="ml-auto rounded" />
|
|
58
|
-
</div>
|
|
59
|
-
</div>
|
|
60
|
-
<a
|
|
61
|
-
:href="`/${categoryTree.slug}`"
|
|
62
|
-
class="block mt-1 text-xs text-base-600 leading-snug underline"
|
|
63
|
-
>
|
|
64
|
-
{{ $t.i19seeAll$1Category.replace('$1', categoryTree.name) }}
|
|
65
|
-
</a>
|
|
66
|
-
</PopoverPanel>
|
|
67
|
-
</Fade>
|
|
68
|
-
</div>
|
|
69
|
-
</Popover>
|
|
70
|
-
</template>
|
|
71
|
-
|
|
72
|
-
<script setup lang="ts">
|
|
73
|
-
import { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue';
|
|
74
|
-
import {
|
|
75
|
-
type Props as UseShopHeaderSubmenuProps,
|
|
76
|
-
useShopHeaderSubmenu,
|
|
77
|
-
} from '@@sf/composables/use-shop-header-submenu';
|
|
78
|
-
|
|
79
|
-
export interface Props extends UseShopHeaderSubmenuProps {}
|
|
80
|
-
|
|
81
|
-
const props = defineProps<Props>();
|
|
82
|
-
const {
|
|
83
|
-
categoryPicture,
|
|
84
|
-
subcategoryLinks,
|
|
85
|
-
subcategoryCols,
|
|
86
|
-
countMenuCols,
|
|
87
|
-
} = useShopHeaderSubmenu(props);
|
|
88
|
-
</script>
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<aside class="flex flex-col h-full">
|
|
3
|
-
<nav class="py-4 grow">
|
|
4
|
-
<ul class="relative h-full">
|
|
5
|
-
<ShopSidenavCategory
|
|
6
|
-
v-for="(categoryTree, i) in categoryTrees"
|
|
7
|
-
:key="i"
|
|
8
|
-
:category-tree="categoryTree"
|
|
9
|
-
/>
|
|
10
|
-
</ul>
|
|
11
|
-
</nav>
|
|
12
|
-
<footer class="text-base">
|
|
13
|
-
<div class="flex items-center px-2 py-4 bg-base-100">
|
|
14
|
-
<AccountLink class="p-2 grow flex items-center gap-3">
|
|
15
|
-
<i class="i-user-circle text-4xl text-base-500 m-0"></i>
|
|
16
|
-
<span class="leading-tight">
|
|
17
|
-
{{ `${$t.i19hello} ${customerName || $t.i19visitor}` }}
|
|
18
|
-
<small class="block lowercase font-semibold text-primary">
|
|
19
|
-
{{ $t.i19myOrders }}, {{ $t.i19myAccount }}
|
|
20
|
-
</small>
|
|
21
|
-
</span>
|
|
22
|
-
</AccountLink>
|
|
23
|
-
<button
|
|
24
|
-
v-if="isLogged"
|
|
25
|
-
@click="logout"
|
|
26
|
-
class="p-2 text-right text-base-800"
|
|
27
|
-
>
|
|
28
|
-
<span class="text-base-600">{{ $t.i19logout }}</span>
|
|
29
|
-
<i class="i-arrow-right-on-rectangle text-lg ml-1"></i>
|
|
30
|
-
</button>
|
|
31
|
-
</div>
|
|
32
|
-
<ul class="flex gap-3 p-4 bg-base-200 text-xl text-base-700">
|
|
33
|
-
<li v-for="(href, network) in socialNetworks" :key="network">
|
|
34
|
-
<SocialNetworkLink :network="network" class="p-1 active:text-primary" />
|
|
35
|
-
</li>
|
|
36
|
-
</ul>
|
|
37
|
-
</footer>
|
|
38
|
-
</aside>
|
|
39
|
-
</template>
|
|
40
|
-
|
|
41
|
-
<script setup lang="ts">
|
|
42
|
-
import type { CategoryTree } from '@@sf/composables/use-shop-header';
|
|
43
|
-
import { onMounted } from 'vue';
|
|
44
|
-
import { socialNetworks } from '@@sf/sf-lib';
|
|
45
|
-
import {
|
|
46
|
-
customerName,
|
|
47
|
-
initializeFirebaseAuth,
|
|
48
|
-
isLogged,
|
|
49
|
-
logout,
|
|
50
|
-
} from '@@sf/state/customer-session';
|
|
51
|
-
import AccountLink from '@@sf/components/AccountLink.vue';
|
|
52
|
-
import SocialNetworkLink from '@@sf/components/SocialNetworkLink.vue';
|
|
53
|
-
import ShopSidenavCategory from '~/components/ShopSidenavCategory.vue';
|
|
54
|
-
|
|
55
|
-
export interface Props {
|
|
56
|
-
categoryTrees: CategoryTree[];
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
defineProps<Props>();
|
|
60
|
-
onMounted(() => initializeFirebaseAuth());
|
|
61
|
-
</script>
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<li class="text-lg text-base-800">
|
|
3
|
-
<details
|
|
4
|
-
v-if="categoryTree.subcategories.length"
|
|
5
|
-
class="bg-white overflow-y-auto overflow-x-hidden z-10
|
|
6
|
-
open:absolute open:top-0 open:left-0 open:w-full open:h-full"
|
|
7
|
-
@toggle="isOpen = !isOpen"
|
|
8
|
-
>
|
|
9
|
-
<summary
|
|
10
|
-
class="cursor-pointer list-none px-6 py-3 active:bg-base-100 transition-colors"
|
|
11
|
-
:class="isOpen ? 'bg-base-100' : null"
|
|
12
|
-
>
|
|
13
|
-
<i :class="!isOpen
|
|
14
|
-
? 'i-arrow-right float-right mb-0 mt-1 text-xl text-base-500'
|
|
15
|
-
: 'i-arrow-left text-lg'"></i>
|
|
16
|
-
<AImg
|
|
17
|
-
v-if="!isOpen && categoryTree.icon"
|
|
18
|
-
:picture="categoryTree.icon"
|
|
19
|
-
:alt="categoryTree.name"
|
|
20
|
-
class="w-auto h-5 inline mr-3"
|
|
21
|
-
/>
|
|
22
|
-
<h3 class="inline" :class="isOpen ? 'ml-4 text-base' : null">
|
|
23
|
-
{{ categoryTree.name }}
|
|
24
|
-
</h3>
|
|
25
|
-
</summary>
|
|
26
|
-
<ul
|
|
27
|
-
class="mt-2 transition-opacity"
|
|
28
|
-
:class="isFaded ? 'opacity-20' : 'opacity-100'"
|
|
29
|
-
tabindex="-1"
|
|
30
|
-
>
|
|
31
|
-
<ShopSidenavCategory
|
|
32
|
-
v-for="(subcategoryTree, i) in categoryTree.subcategories"
|
|
33
|
-
:key="i"
|
|
34
|
-
:category-tree="subcategoryTree"
|
|
35
|
-
/>
|
|
36
|
-
<li>
|
|
37
|
-
<a
|
|
38
|
-
:href="`/${categoryTree.slug}`"
|
|
39
|
-
class="block px-6 py-3 text-base underline active:bg-base-200"
|
|
40
|
-
>
|
|
41
|
-
{{ $t.i19seeAll$1Category.replace('$1', categoryTree.name) }}
|
|
42
|
-
</a>
|
|
43
|
-
</li>
|
|
44
|
-
</ul>
|
|
45
|
-
</details>
|
|
46
|
-
<a
|
|
47
|
-
v-else
|
|
48
|
-
:href="`/${categoryTree.slug}`"
|
|
49
|
-
class="block px-6 py-3 active:bg-base-200"
|
|
50
|
-
>
|
|
51
|
-
<AImg
|
|
52
|
-
v-if="!isOpen && categoryTree.icon"
|
|
53
|
-
:picture="categoryTree.icon"
|
|
54
|
-
:alt="categoryTree.name"
|
|
55
|
-
class="w-auto h-5 inline mr-3"
|
|
56
|
-
/>
|
|
57
|
-
<h3 class="inline">{{ categoryTree.name }}</h3>
|
|
58
|
-
</a>
|
|
59
|
-
</li>
|
|
60
|
-
</template>
|
|
61
|
-
|
|
62
|
-
<script setup lang="ts">
|
|
63
|
-
import type { CategoryTree, SubcategoryTree } from '@@sf/composables/use-shop-header';
|
|
64
|
-
import { ref, watch } from 'vue';
|
|
65
|
-
|
|
66
|
-
export interface Props {
|
|
67
|
-
categoryTree: CategoryTree | SubcategoryTree;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
defineProps<Props>();
|
|
71
|
-
const isOpen = ref(false);
|
|
72
|
-
const isFaded = ref(true);
|
|
73
|
-
watch(isOpen, (_isOpen) => {
|
|
74
|
-
if (_isOpen) {
|
|
75
|
-
setTimeout(() => { isFaded.value = false; }, 25);
|
|
76
|
-
} else {
|
|
77
|
-
isFaded.value = true;
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
</script>
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="@astrojs/image/client" />
|
|
2
|
-
/// <reference types="vite-plugin-pwa/client" />
|
|
3
|
-
/// <reference types="vue/ref-macros" />
|
|
4
|
-
/// <reference types="@cloudcommerce/storefront/client" />
|
|
5
|
-
/// <reference types="@cloudcommerce/storefront/server" />
|
|
6
|
-
|
|
7
|
-
/* eslint-disable import/newline-after-import */
|
|
8
|
-
|
|
9
|
-
declare module '*.vue' {
|
|
10
|
-
import { type DefineComponent } from 'vue';
|
|
11
|
-
const component: DefineComponent<{}, {}, any>;
|
|
12
|
-
export default component;
|
|
13
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import SfBase from '@@sf/layouts/Base.astro';
|
|
3
|
-
import InlineScripts from '~/scripts/InlineScripts.astro';
|
|
4
|
-
import '~/assets/style.css';
|
|
5
|
-
import 'uno.css';
|
|
6
|
-
// Supports weights 100-900
|
|
7
|
-
import '@fontsource-variable/heebo/index.css';
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
<SfBase>
|
|
11
|
-
<Fragment slot="base-head">
|
|
12
|
-
<slot name="base-head" />
|
|
13
|
-
</Fragment>
|
|
14
|
-
<InlineScripts slot="before-head-end" />
|
|
15
|
-
<slot />
|
|
16
|
-
</SfBase>
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import api from '@cloudcommerce/api';
|
|
3
|
-
import { usePageHero } from '@@sf/layouts/use-page-main';
|
|
4
|
-
import BannerPictures from '@@sf/components/BannerPictures.astro';
|
|
5
|
-
import HeroSlider from '~/components/HeroSlider.vue';
|
|
6
|
-
import Sections from '~/main/Sections.astro';
|
|
7
|
-
import Countdown from '~/components/Countdown.vue';
|
|
8
|
-
|
|
9
|
-
const { routeContext } = Astro.locals;
|
|
10
|
-
const { heroSlider } = await usePageHero({ routeContext });
|
|
11
|
-
const heroSlides = heroSlider.slides;
|
|
12
|
-
const {
|
|
13
|
-
data: {
|
|
14
|
-
result: products,
|
|
15
|
-
},
|
|
16
|
-
} = await api.get('products', {
|
|
17
|
-
limit: 500,
|
|
18
|
-
fields: ['sku', 'name', 'pictures'] as const,
|
|
19
|
-
});
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
<main>
|
|
23
|
-
{heroSlider.slides.length &&
|
|
24
|
-
<HeroSlider {...heroSlider} client:load>
|
|
25
|
-
{heroSlides[0] && <BannerPictures slot="picture-0" {...heroSlides[0]} index={0} />}
|
|
26
|
-
{heroSlides[1] && <BannerPictures slot="picture-1" {...heroSlides[1]} index={1} />}
|
|
27
|
-
{heroSlides[2] && <BannerPictures slot="picture-2" {...heroSlides[2]} index={2} />}
|
|
28
|
-
{heroSlides[3] && <BannerPictures slot="picture-3" {...heroSlides[3]} index={3} />}
|
|
29
|
-
{heroSlides[4] && <BannerPictures slot="picture-4" {...heroSlides[4]} index={4} />}
|
|
30
|
-
{heroSlides[5] && <BannerPictures slot="picture-5" {...heroSlides[5]} index={5} />}
|
|
31
|
-
{heroSlides[6] && <BannerPictures slot="picture-6" {...heroSlides[6]} index={6} />}
|
|
32
|
-
{heroSlides[7] && <BannerPictures slot="picture-7" {...heroSlides[7]} index={7} />}
|
|
33
|
-
{heroSlides[8] && <BannerPictures slot="picture-8" {...heroSlides[8]} index={8} />}
|
|
34
|
-
{heroSlides[9] && <BannerPictures slot="picture-9" {...heroSlides[9]} index={9} />}
|
|
35
|
-
<!-- https://github.com/withastro/astro/issues/5066#issuecomment-1277998365 -->
|
|
36
|
-
</HeroSlider>
|
|
37
|
-
}
|
|
38
|
-
<Sections />
|
|
39
|
-
<div class="container mx-auto py-4">
|
|
40
|
-
<Countdown client:visible />
|
|
41
|
-
</div>
|
|
42
|
-
<article class="container">
|
|
43
|
-
{products.map((product) => (
|
|
44
|
-
<span>{product.sku}</span>
|
|
45
|
-
<span> {product.name}</span>
|
|
46
|
-
<br>
|
|
47
|
-
))}
|
|
48
|
-
</article>
|
|
49
|
-
</main>
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import api from '@cloudcommerce/api';
|
|
3
|
-
import { usePageSections } from '@@sf/layouts/use-page-main';
|
|
4
|
-
import BannersGrid from '~/components/BannersGrid.astro';
|
|
5
|
-
import ProductShelf from '~/components/ProductShelf.vue';
|
|
6
|
-
import ProductsCountdown, { type Props as ProductsCountdownProps }
|
|
7
|
-
from '~/components/ProductsCountdown.vue';
|
|
8
|
-
|
|
9
|
-
const { routeContext } = Astro.locals;
|
|
10
|
-
const { sections } = await usePageSections({
|
|
11
|
-
routeContext,
|
|
12
|
-
handleCustomSection: async (type, content) => {
|
|
13
|
-
if (type === 'c:products-countdown') {
|
|
14
|
-
const {
|
|
15
|
-
data: {
|
|
16
|
-
result: products,
|
|
17
|
-
},
|
|
18
|
-
} = await api.get('search/v1', {
|
|
19
|
-
params: { sku: content.skus },
|
|
20
|
-
});
|
|
21
|
-
const props: ProductsCountdownProps = { products };
|
|
22
|
-
return { props };
|
|
23
|
-
}
|
|
24
|
-
return { props: content };
|
|
25
|
-
},
|
|
26
|
-
});
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
<article class="my-9 md:my-12">
|
|
30
|
-
{sections.map(({ type, props }) => {
|
|
31
|
-
switch (type) {
|
|
32
|
-
case 'product-shelf':
|
|
33
|
-
return <ProductShelf {...props} client:visible />
|
|
34
|
-
case 'banners-grid':
|
|
35
|
-
return <BannersGrid {...props} />
|
|
36
|
-
case 'c:products-countdown':
|
|
37
|
-
return <ProductsCountdown {...props} />
|
|
38
|
-
default:
|
|
39
|
-
return <div data-section={type}></div>
|
|
40
|
-
}
|
|
41
|
-
})}
|
|
42
|
-
</article>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
const { fetchingApiContext, apiContext } = Astro.locals.routeContext;
|
|
3
|
-
|
|
4
|
-
await fetchingApiContext;
|
|
5
|
-
const apiDoc = apiContext.doc;
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<main>
|
|
9
|
-
{apiDoc &&
|
|
10
|
-
<h1>Hello <span class="text-gradient">{apiDoc.name}</span></h1>
|
|
11
|
-
<hr>
|
|
12
|
-
<div class="mt-3">
|
|
13
|
-
<mark>{apiDoc._id}</mark> from <i>{apiContext.resource}</i>
|
|
14
|
-
<p>{Math.random()}</p>
|
|
15
|
-
<em>Lorem ipsum dolor sit amet</em>
|
|
16
|
-
</div>
|
|
17
|
-
}
|
|
18
|
-
</main>
|
|
@@ -1,40 +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 WildcardMain from '~/main/Wildcard.astro';
|
|
8
|
-
|
|
9
|
-
if (String(Astro.params.slug).endsWith('.css.map')) {
|
|
10
|
-
return new Response(null, { status: 404 });
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
let routeContext: RouteContext | undefined;
|
|
14
|
-
let loadError: any;
|
|
15
|
-
try {
|
|
16
|
-
routeContext = await loadRouteContext(Astro);
|
|
17
|
-
} catch (err: any) {
|
|
18
|
-
if (err.astroResponse) {
|
|
19
|
-
return err.astroResponse;
|
|
20
|
-
}
|
|
21
|
-
loadError = err;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export async function getStaticPaths() {
|
|
25
|
-
return (await api.get('products?sort=-sales&limit=4&fields=slug'))
|
|
26
|
-
.data.result.map(({ slug }) => ({ params: { slug } }));
|
|
27
|
-
}
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
<!DOCTYPE html>
|
|
31
|
-
<html lang={routeContext?.lang.replace('_', '-')}>
|
|
32
|
-
{routeContext &&
|
|
33
|
-
<Base>
|
|
34
|
-
<BaseHead slot="base-head" />
|
|
35
|
-
<PageHeader />
|
|
36
|
-
<WildcardMain />
|
|
37
|
-
</Base>
|
|
38
|
-
}
|
|
39
|
-
{loadError && <Fragment set:html={loadError.responseHTML} />}
|
|
40
|
-
</html>
|
|
File without changes
|
|
File without changes
|