cloudcommerce 0.32.0 → 0.33.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 +3 -3
- package/CHANGELOG.md +44 -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 +10 -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 +9 -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/ecomplus-stores/tia-sonia/functions/ssr/package.json +2 -1
- package/package.json +6 -6
- 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 +3 -3
- 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/lib/firebase.js +2 -2
- package/packages/modules/lib/firebase.js.map +1 -1
- package/packages/modules/package.json +2 -2
- package/packages/modules/src/firebase.ts +2 -2
- package/packages/passport/lib/firebase.js +13 -2
- package/packages/passport/lib/firebase.js.map +1 -1
- package/packages/passport/package.json +1 -1
- package/packages/passport/src/firebase.ts +16 -2
- package/packages/ssr/package.json +2 -3
- package/packages/storefront/client.d.ts +3 -0
- package/packages/storefront/config/astro/context-directive.mjs +2 -2
- package/packages/storefront/package.json +5 -5
- package/packages/storefront/src/analytics/event-to-fbq.ts +15 -0
- package/packages/storefront/src/helpers/afetch.ts +20 -8
- package/packages/storefront/src/lib/assets/base.css +5 -4
- package/packages/storefront/src/lib/assets/tooltip.css +1 -1
- package/packages/storefront/src/lib/components/Carousel.vue +19 -14
- package/packages/storefront/src/lib/composables/use-product-card.ts +11 -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 +82 -0
- package/packages/storefront/src/lib/scripts/session-utm.ts +16 -6
- package/packages/storefront/src/lib/scripts/vbeta-app.ts +5 -1
- package/packages/storefront/src/lib/ssr-context.ts +2 -2
- package/packages/storefront/src/lib/state/use-analytics.ts +242 -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/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
- /package/{ecomplus-stores/barra-doce/functions/ssr/src/layouts/Checkout.astro → packages/storefront/src/analytics/event-to-ttq.ts} +0 -0
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
${{ runner.os }}-pnpm-store-
|
|
65
65
|
|
|
66
66
|
- shell: bash
|
|
67
|
-
run: bash scripts/pre-install.sh && pnpm install --frozen-lockfile
|
|
67
|
+
run: bash scripts/pre-install.sh && pnpm install --no-frozen-lockfile
|
|
68
68
|
|
|
69
69
|
- uses: actions/cache@v3
|
|
70
70
|
with:
|
|
@@ -104,11 +104,11 @@ jobs:
|
|
|
104
104
|
${{ steps.npm-paths.outputs.LIB_PATH }}
|
|
105
105
|
${{ steps.npm-paths.outputs.BIN_PATH }}
|
|
106
106
|
~/.npm-global/bin
|
|
107
|
-
key: ${{ runner.os }}-npm-globals-firebase-tools-12.
|
|
107
|
+
key: ${{ runner.os }}-npm-globals-firebase-tools-12.9.0
|
|
108
108
|
|
|
109
109
|
- if: steps.npm-g-cache.outputs.cache-hit != 'true'
|
|
110
110
|
shell: bash
|
|
111
|
-
run: npm install -g firebase-tools@12.
|
|
111
|
+
run: npm install -g firebase-tools@12.9.0
|
|
112
112
|
|
|
113
113
|
- name: Initialize Firebase emulators
|
|
114
114
|
shell: bash
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,50 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.33.1](https://github.com/ecomplus/cloud-commerce/compare/v0.33.0...v0.33.1) (2023-11-16)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **storefront:** Add new `getGtagItem` method on `useAnalytics` state as reusable parser ([2f7cb99](https://github.com/ecomplus/cloud-commerce/commit/2f7cb99ccf37f9c0dfcd484068702e0e7291f0f6))
|
|
11
|
+
* **storefront:** New `send-gtag-events` script, auto emit first pageview ([a888870](https://github.com/ecomplus/cloud-commerce/commit/a88887013901aa42fbf1722fd7a5c578a810c6ed))
|
|
12
|
+
* **storefront:** New `state/use-analytics` module to send and watch events and retrieve session ([f2c10f5](https://github.com/ecomplus/cloud-commerce/commit/f2c10f5d0138755c9526b94f7d033de48123d89d))
|
|
13
|
+
* **storefront:** Send page view analytics event on each view transitions "SPA" page load ([914aec4](https://github.com/ecomplus/cloud-commerce/commit/914aec4e07f9b954d2a5da803d1a2fc1dd01f4b3))
|
|
14
|
+
* **storefront:** Typing analytics gtag events ([12d2325](https://github.com/ecomplus/cloud-commerce/commit/12d2325d4270b9f8233e4c854cccbd5c41098258))
|
|
15
|
+
* **storefront:** Update `scripts/push-analytics-events` to handle GTM `dataLayer` if globally set ([058fe1d](https://github.com/ecomplus/cloud-commerce/commit/058fe1d4b3a6bb6c4a683282a1de1bfc3f0c58c9))
|
|
16
|
+
* **storefront:** Update `useProductCard` composable to send view item gtag event ([f2dafd5](https://github.com/ecomplus/cloud-commerce/commit/f2dafd545471530f1e49f51147312aef169a4ad3))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **deps:** Update non-major dependencies ([#268](https://github.com/ecomplus/cloud-commerce/issues/268)) ([a2a2ebd](https://github.com/ecomplus/cloud-commerce/commit/a2a2ebdccb6153afb89b5df937ca0ea30fa16300))
|
|
22
|
+
* **storefront:** Ensure async components hydration with `client:context` on first load ([782ba4a](https://github.com/ecomplus/cloud-commerce/commit/782ba4a0d4b0388e2081c1181393b7c252ce99fe))
|
|
23
|
+
* **storefront:** Keep UTM on local storage and consider valid for 7 days ([b0b2d6e](https://github.com/ecomplus/cloud-commerce/commit/b0b2d6e33948798f8a564bc0ee9a0467a09f29d9))
|
|
24
|
+
* **storefront:** Properly set page meta title and description from route state and store settings ([39f1ce4](https://github.com/ecomplus/cloud-commerce/commit/39f1ce4b0f8c20777770b0eba67d0e20d4d4f84e))
|
|
25
|
+
* **storefront:** Update `<Carousel>` to properly handle partially fit slides ([86666f7](https://github.com/ecomplus/cloud-commerce/commit/86666f7451ebaa5be09df303b297f17b1ac7be58))
|
|
26
|
+
|
|
27
|
+
## [0.33.0](https://github.com/ecomplus/cloud-commerce/compare/v0.32.0...v0.33.0) (2023-11-09)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### ⚠ BREAKING CHANGES
|
|
31
|
+
|
|
32
|
+
* **ssr:** `@headlessui/vue` is no more dev dep of `@cloudcommerce/storefront`, not dep of `@cloudcommerce/ssr`, must be manually added as dependency if used
|
|
33
|
+
|
|
34
|
+
### Features
|
|
35
|
+
|
|
36
|
+
* **modules:** Optionally override any Function runtime option on `modulesFunctionOptions` config ([d1fed93](https://github.com/ecomplus/cloud-commerce/commit/d1fed93c4ae69c780efe690c62762b2a6ffd1da1))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* **passport:** Set CORS headers and accept OPTIONS request ([d15dc5a](https://github.com/ecomplus/cloud-commerce/commit/d15dc5a11f8d6a180269f8f48660d92ada5e9c38))
|
|
42
|
+
* **storefront:** Fix default styles for ::selection with new RGB syntax ([9497bfd](https://github.com/ecomplus/cloud-commerce/commit/9497bfd5dbcbf45136dc027327ea8abe3d8b748d))
|
|
43
|
+
* **storefront:** Update dark/light CSS vars to RGB spaces notation ([62ea62c](https://github.com/ecomplus/cloud-commerce/commit/62ea62cc9653b7a207b2da7e203524c6be6db387))
|
|
44
|
+
* **storefront:** Updating vbeta-app script version ([c0d50c0](https://github.com/ecomplus/cloud-commerce/commit/c0d50c028474ef0ccbc935b8253260ad978c13e7))
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
* **ssr:** Removing `@headlessui/vue` from pkg deps ([344916f](https://github.com/ecomplus/cloud-commerce/commit/344916fd49c4683023b188fa9ead66a5c1a346f3))
|
|
48
|
+
|
|
5
49
|
## [0.32.0](https://github.com/ecomplus/cloud-commerce/compare/v0.31.2...v0.32.0) (2023-11-07)
|
|
6
50
|
|
|
7
51
|
|
package/action.yml
CHANGED
|
@@ -145,11 +145,11 @@ runs:
|
|
|
145
145
|
${{ steps.npm-paths.outputs.LIB_PATH }}
|
|
146
146
|
${{ steps.npm-paths.outputs.BIN_PATH }}
|
|
147
147
|
~/.npm-global/bin
|
|
148
|
-
key: ${{ runner.os }}-npm-g-firebase-tools-12.
|
|
148
|
+
key: ${{ runner.os }}-npm-g-firebase-tools-12.9.0
|
|
149
149
|
|
|
150
150
|
- if: ${{ github.event_name == 'push' && steps.npm-g-cache.outputs.cache-hit != 'true' }}
|
|
151
151
|
shell: bash
|
|
152
|
-
run: npm i --location=global firebase-tools@12.
|
|
152
|
+
run: npm i --location=global firebase-tools@12.9.0
|
|
153
153
|
|
|
154
154
|
- if: steps.npm-cache-many.outputs.cache-hit != 'true'
|
|
155
155
|
name: Install codebase "many" dependencies
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@cloudcommerce/feeds": "^0.
|
|
19
|
-
"@cloudcommerce/firebase": "^0.
|
|
20
|
-
"@cloudcommerce/passport": "^0.
|
|
18
|
+
"@cloudcommerce/feeds": "^0.33.0",
|
|
19
|
+
"@cloudcommerce/firebase": "^0.33.0",
|
|
20
|
+
"@cloudcommerce/passport": "^0.33.0"
|
|
21
21
|
}
|
|
22
22
|
}
|
|
@@ -28,6 +28,26 @@
|
|
|
28
28
|
"isShuffle": false,
|
|
29
29
|
"limit": 12,
|
|
30
30
|
"page": 1
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "product-shelf",
|
|
34
|
+
"collectionIdAndInfo": null,
|
|
35
|
+
"sort": "-sales",
|
|
36
|
+
"title": "Ingredientes que fazem a diferença",
|
|
37
|
+
"isHeadless": false,
|
|
38
|
+
"isShuffle": false,
|
|
39
|
+
"limit": 12,
|
|
40
|
+
"page": 3
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"type": "product-shelf",
|
|
44
|
+
"collectionIdAndInfo": null,
|
|
45
|
+
"sort": "-created_at",
|
|
46
|
+
"title": "Fitas de Natal",
|
|
47
|
+
"isHeadless": false,
|
|
48
|
+
"isShuffle": false,
|
|
49
|
+
"limit": 12,
|
|
50
|
+
"page": 3
|
|
31
51
|
}
|
|
32
52
|
]
|
|
33
53
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"domain": "barradoce.ecomplus.app",
|
|
3
|
-
"assetsPrefix": "https://s2-barradoce.b-cdn.net",
|
|
4
3
|
"name": "BarraDoce",
|
|
5
4
|
"description": "Loja de utensílios de confeitaria e acessórios de festa. Tudo o que precisa para fazer bolos, chocolates, biscoitos e muito mais.",
|
|
6
5
|
"logo": "/img/uploads/logo-barradoce.webp",
|
|
@@ -28,6 +27,10 @@
|
|
|
28
27
|
{
|
|
29
28
|
"title": "Fale conosco",
|
|
30
29
|
"href": "/pages/contato"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"title": "Privacidade e termos",
|
|
33
|
+
"href": "/p/terms"
|
|
31
34
|
}
|
|
32
35
|
],
|
|
33
36
|
"paymentMethods": [
|
|
@@ -17,15 +17,17 @@
|
|
|
17
17
|
},
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@cloudcommerce/api": "^0.
|
|
21
|
-
"@cloudcommerce/firebase": "^0.
|
|
22
|
-
"@cloudcommerce/ssr": "^0.
|
|
20
|
+
"@cloudcommerce/api": "^0.33.0",
|
|
21
|
+
"@cloudcommerce/firebase": "^0.33.0",
|
|
22
|
+
"@cloudcommerce/ssr": "^0.33.0",
|
|
23
|
+
"@headlessui/vue": "^1.7.16"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@cloudcommerce/i18n": "^0.
|
|
26
|
-
"@cloudcommerce/storefront": "^0.
|
|
27
|
-
"@cloudcommerce/types": "^0.
|
|
28
|
-
"@fontsource/croissant-one": "^5.0.
|
|
29
|
-
"@iconify-json/mingcute": "^1.1.
|
|
26
|
+
"@cloudcommerce/i18n": "^0.33.0",
|
|
27
|
+
"@cloudcommerce/storefront": "^0.33.0",
|
|
28
|
+
"@cloudcommerce/types": "^0.33.0",
|
|
29
|
+
"@fontsource/croissant-one": "^5.0.17",
|
|
30
|
+
"@iconify-json/mingcute": "^1.1.11",
|
|
31
|
+
"photoswipe": "^5.4.2"
|
|
30
32
|
}
|
|
31
33
|
}
|
|
@@ -7,7 +7,7 @@ html {
|
|
|
7
7
|
body {
|
|
8
8
|
overflow-x: hidden;
|
|
9
9
|
}
|
|
10
|
-
a, button, button > * {
|
|
10
|
+
a, button, button > *, [role=button], [role=button] > * {
|
|
11
11
|
transition: background-color var(--transition),
|
|
12
12
|
color var(--transition), border-color var(--transition),
|
|
13
13
|
opacity var(--transition), transform var(--transition-fast);
|
|
@@ -20,13 +20,13 @@ a, button, button > * {
|
|
|
20
20
|
|
|
21
21
|
[class*=ui-btn] {
|
|
22
22
|
@apply not-prose inline-block text-base font-medium px-4 py-2 rounded
|
|
23
|
-
border-2 border-transparent focus:ring-1 active:ring-2;
|
|
23
|
+
border-2 border-transparent focus:ring-1 focus:ring-offset-1 active:ring-2;
|
|
24
24
|
}
|
|
25
25
|
.ui-btn-sm {
|
|
26
26
|
@apply text-sm px-3 py-1.5 border-1;
|
|
27
27
|
}
|
|
28
28
|
.ui-btn-lg {
|
|
29
|
-
@apply text-lg
|
|
29
|
+
@apply text-lg font-bold px-6 py-3 lg:text-base lg:py-2.5 active:ring-3;
|
|
30
30
|
}
|
|
31
31
|
.ui-btn-primary {
|
|
32
32
|
@apply primary border-primary hover:primary-bold ring-primary/30;
|
|
@@ -60,6 +60,17 @@ a, button, button > * {
|
|
|
60
60
|
@apply text-lg min-w-[1.75rem] px-2;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
.ui-
|
|
63
|
+
.ui-alert {
|
|
64
|
+
@apply bg-warning-100 text-warning-800 border-warning-200
|
|
65
|
+
border text-base rounded px-4 py-3;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
[class*=ui-section] {
|
|
64
69
|
@apply container 2xl:max-w-7xl mx-auto px-4 sm:px-2 my-6 md:my-8;
|
|
65
70
|
}
|
|
71
|
+
.ui-section {
|
|
72
|
+
@apply sm:px-2 my-6 md:my-8;
|
|
73
|
+
}
|
|
74
|
+
.ui-section-slim {
|
|
75
|
+
@apply my-3;
|
|
76
|
+
}
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
<div v-if="open">
|
|
8
8
|
<span v-once>{{ initializeFirebaseAuth() }}</span>
|
|
9
9
|
</div>
|
|
10
|
-
<
|
|
11
|
-
<
|
|
12
|
-
|
|
10
|
+
<AccountLink role="button" @click.prevent>
|
|
11
|
+
<MenuButton class="outline-none" :aria-label="$t.i19myAccount">
|
|
12
|
+
<slot name="button" v-bind="{ open }" />
|
|
13
|
+
</MenuButton>
|
|
14
|
+
</AccountLink>
|
|
13
15
|
<Fade>
|
|
14
16
|
<MenuItems class="divide-base-100 absolute -right-8 mt-2
|
|
15
17
|
w-56 divide-y rounded bg-white shadow
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<article class="from-secondary-700 to-secondary-950 flex
|
|
3
|
+
min-h-screen w-full flex-col justify-center bg-gradient-to-br">
|
|
4
|
+
<div class="mx-auto p-4">
|
|
5
|
+
<section class="ui-section text-center">
|
|
6
|
+
<a href="/" class="text-base-200 hover:text-white">
|
|
7
|
+
<i class="i-arrow-right-line mr-1 rotate-180"></i>
|
|
8
|
+
{{ $t.i19goToStore }}
|
|
9
|
+
</a>
|
|
10
|
+
</section>
|
|
11
|
+
<section class="overflow-hidden rounded-md
|
|
12
|
+
shadow-md ring-4 ring-black/10">
|
|
13
|
+
<LoginForm v-bind="{ loginLinkActionUrl }">
|
|
14
|
+
<template #head>
|
|
15
|
+
<div class="mb-5 text-center">
|
|
16
|
+
<a href="/" class="inline-block">
|
|
17
|
+
<slot name="logo" />
|
|
18
|
+
</a>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
</LoginForm>
|
|
22
|
+
</section>
|
|
23
|
+
<nav v-if="$settings.serviceLinks?.length" class="ui-section px-0">
|
|
24
|
+
<ul class="mx-auto flex max-w-sm flex-wrap items-center
|
|
25
|
+
justify-evenly gap-4 px-3">
|
|
26
|
+
<li
|
|
27
|
+
v-for="({ title, href }, i) in $settings.serviceLinks"
|
|
28
|
+
:key="`s-${i}`"
|
|
29
|
+
>
|
|
30
|
+
<ALink :href="href" class="ui-link text-base-200 hover:text-white">
|
|
31
|
+
{{ title }}
|
|
32
|
+
</ALink>
|
|
33
|
+
</li>
|
|
34
|
+
</ul>
|
|
35
|
+
</nav>
|
|
36
|
+
</div>
|
|
37
|
+
</article>
|
|
38
|
+
</template>
|
|
39
|
+
|
|
40
|
+
<script setup lang="ts">
|
|
41
|
+
import { isLogged } from '@@sf/state/customer-session';
|
|
42
|
+
import LoginForm from '~/components/LoginForm.vue';
|
|
43
|
+
|
|
44
|
+
let loginLinkActionUrl: string | null = null;
|
|
45
|
+
if (!import.meta.env.SSR) {
|
|
46
|
+
const { location } = window;
|
|
47
|
+
const returnUrl = new URLSearchParams(location.search).get('return_url');
|
|
48
|
+
if (!returnUrl) {
|
|
49
|
+
const url = new URL(location.toString());
|
|
50
|
+
url.pathname = '/app/';
|
|
51
|
+
url.hash = `#${location.pathname.replace('/app/', '/')}`;
|
|
52
|
+
loginLinkActionUrl = url.toString();
|
|
53
|
+
}
|
|
54
|
+
watch(isLogged, () => {
|
|
55
|
+
if (isLogged.value) {
|
|
56
|
+
location.href = (returnUrl || loginLinkActionUrl) as string;
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
immediate: true,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
</script>
|
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
>
|
|
16
16
|
<slot name="picture" />
|
|
17
17
|
</ALink>
|
|
18
|
-
<div
|
|
18
|
+
<div
|
|
19
|
+
v-if="hasHeader"
|
|
20
|
+
class="mb-3 p-8 md:mb-0 lg:col-span-2 lg:p-12 xl:ps-32"
|
|
21
|
+
>
|
|
19
22
|
<Component
|
|
20
23
|
v-if="parsedTitle"
|
|
21
24
|
:is="headingTag"
|
|
@@ -25,14 +28,14 @@
|
|
|
25
28
|
</Component>
|
|
26
29
|
<p
|
|
27
30
|
v-if="parsedSubtitle"
|
|
28
|
-
class="
|
|
31
|
+
class="text-base-800 mt-4 text-lg font-medium uppercase md:mt-6 lg:text-xl"
|
|
29
32
|
>
|
|
30
33
|
{{ parsedSubtitle }}
|
|
31
34
|
</p>
|
|
32
35
|
<ALink
|
|
33
36
|
v-if="parsedButtonText"
|
|
34
37
|
:href="buttonLink"
|
|
35
|
-
class="ui-btn-lg ui-btn-contrast min-w-[150px]
|
|
38
|
+
class="ui-btn-lg ui-btn-contrast mt-7 min-w-[150px] md:mt-10"
|
|
36
39
|
>
|
|
37
40
|
<i class="i-tag-chevron-fill mr-1"></i>
|
|
38
41
|
{{ parsedButtonText }}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
import {
|
|
3
|
+
type Props as UseBreadcrumbsProps,
|
|
4
|
+
useBreadcrumbs,
|
|
5
|
+
} from '@@sf/composables/use-breadcrumbs';
|
|
6
|
+
|
|
7
|
+
export interface Props extends UseBreadcrumbsProps {}
|
|
8
|
+
|
|
9
|
+
const { breadcrumbs, inlineJSONLd } = await useBreadcrumbs(Astro.props);
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
{breadcrumbs.length > 0 &&
|
|
13
|
+
<section class={`ui-section-slim ${breadcrumbs.length > 1 ? '' : 'hidden lg:block'}`}>
|
|
14
|
+
<nav aria-label="Breadcrumb" class="w-full overflow-hidden text-lg md:text-sm">
|
|
15
|
+
<ol class="flex items-center gap-1 text-base-600">
|
|
16
|
+
<li>
|
|
17
|
+
<a href="/" class="hover:text-primary">
|
|
18
|
+
<span class="sr-only"> Home </span>
|
|
19
|
+
<i class="i-home"></i>
|
|
20
|
+
</a>
|
|
21
|
+
</li>
|
|
22
|
+
{breadcrumbs.map(({ name, link }, i) =>
|
|
23
|
+
<>
|
|
24
|
+
{i + 1 < breadcrumbs.length
|
|
25
|
+
? <li class="text-base-300">
|
|
26
|
+
<i class="i-chevron-right"></i>
|
|
27
|
+
</li>
|
|
28
|
+
<li class="whitespace-nowrap">
|
|
29
|
+
<a href={link} class="hover:text-primary">{name}</a>
|
|
30
|
+
</li>
|
|
31
|
+
: <li class="hidden lg:block text-base-300">
|
|
32
|
+
<i class="i-chevron-right"></i>
|
|
33
|
+
</li>
|
|
34
|
+
<li class="hidden lg:block whitespace-nowrap overflow-hidden text-ellipsis">
|
|
35
|
+
<span class="text-base-500">{name}</span>
|
|
36
|
+
</li>
|
|
37
|
+
}
|
|
38
|
+
</>
|
|
39
|
+
)}
|
|
40
|
+
</ol>
|
|
41
|
+
</nav>
|
|
42
|
+
{inlineJSONLd && <script type="application/ld+json" set:html={inlineJSONLd} />}
|
|
43
|
+
</section>
|
|
44
|
+
}
|
|
@@ -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>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<section v-if="html" class="ui-section">
|
|
3
|
+
<Collapse :title="title || $t.i19description" open>
|
|
4
|
+
<ContentClearfix :html="html" />
|
|
5
|
+
</Collapse>
|
|
6
|
+
</section>
|
|
7
|
+
</template>
|
|
8
|
+
|
|
9
|
+
<script setup lang="ts">
|
|
10
|
+
import type {
|
|
11
|
+
Products,
|
|
12
|
+
Categories,
|
|
13
|
+
Brands,
|
|
14
|
+
Collections,
|
|
15
|
+
} from '@cloudcommerce/api/types';
|
|
16
|
+
import ContentClearfix from '@@sf/components/ContentClearfix.vue';
|
|
17
|
+
import Collapse from '~/components/Collapse.vue';
|
|
18
|
+
|
|
19
|
+
export interface Props {
|
|
20
|
+
apiDoc?: Partial<Products | Categories | Brands | Collections>;
|
|
21
|
+
title?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const props = withDefaults(defineProps<Props>(), {
|
|
25
|
+
apiDoc: () => globalThis.$storefront.apiContext?.doc as Products,
|
|
26
|
+
});
|
|
27
|
+
const html = computed(() => props.apiDoc.body_html || props.apiDoc.body_text);
|
|
28
|
+
</script>
|